diff --git a/build/pdf.worker.js b/build/pdf.worker.js index f317f4feb1..2620435296 100644 --- a/build/pdf.worker.js +++ b/build/pdf.worker.js @@ -54385,6 +54385,10 @@ var BoundingBoxStack = function BoundingBoxStack() { end: function BoundingBoxStack_end() { let last = this.stack.pop(); + if (!last) { + return null; + } + if (last.mcid !== null) { return last; } else { diff --git a/build/pdf.worker.js.map b/build/pdf.worker.js.map index b133570096..b460b9f457 100644 --- a/build/pdf.worker.js.map +++ b/build/pdf.worker.js.map @@ -1 +1 @@ -{"version":3,"file":"pdf.worker.js","mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;;ACKA;;AAkBA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,MAAMA,UAAN,CAAiB;EACfC,YAAYC,IAAZ,EAAkB;IAChB,KAAKA,IAAL,GAAYA,IAAZ;IACA,KAAKC,UAAL,GAAkB,KAAlB;IACA,KAAKC,WAAL,GAAmBC,oCAAnB;EAJa;;EAOf,IAAIC,QAAJ,GAAe;IACb,OAAO,KAAKF,WAAL,CAAiBG,OAAxB;EARa;;EAWfC,SAAS;IACP,KAAKJ,WAAL,CAAiBK,OAAjB;EAZa;;EAefC,YAAY;IACV,KAAKP,UAAL,GAAkB,IAAlB;EAhBa;;EAmBfQ,sBAAsB;IACpB,IAAI,KAAKR,UAAT,EAAqB;MACnB,MAAM,IAAIS,KAAJ,CAAU,4BAAV,CAAN;IAFkB;EAnBP;;AAAA;;;;AA0BjB,MAAMC,oBAAN,CAA2B;EACzB,OAAOC,KAAP,CAAaC,OAAb,EAAsBC,IAAtB,EAA4B;IAC1B,IAAIC,uBAAuB,KAA3B;IACAF,QAAQG,EAARH,CAAW,MAAXA,EAAmB,SAASI,YAAT,CAAsBC,IAAtB,EAA4B;MAC7C,IAAIH,oBAAJ,EAA0B;QACxB;MAF2C;;MAI7CA,uBAAuB,IAAvBA;MAGAF,QAAQM,IAARN,CAAa,MAAbA,EAAqBK,gBAAgBE,UAArCP;IAPF;IAUAA,QAAQG,EAARH,CAAW,WAAXA,EAAwB,SAASQ,YAAT,CAAsBH,IAAtB,EAA4B;MAClDI,6BAAkBJ,KAAKK,SAAvBD;IADF;IAIAT,QAAQG,EAARH,CAAW,eAAXA,EAA4B,SAASW,WAAT,CAAqBN,IAArB,EAA2B;MACrD,OAAOP,qBAAqBc,qBAArBd,CAA2CO,IAA3CP,EAAiDG,IAAjDH,CAAP;IADF;EAjBuB;;EAsBzB,OAAOc,qBAAP,CAA6BC,SAA7B,EAAwCZ,IAAxC,EAA8C;IAG5C,IAAIa,UAAJ;IACA,IAAI1B,aAAa,KAAjB;IACA,IAAI2B,aAAa,IAAjB;IACA,MAAMC,cAAc,EAApB;IACA,MAAMN,YAAYO,8BAAlB;IAEA,MAAMC,aAAaL,UAAUK,UAA7B;IACA,MAAMC,gBAEA,UAFN;;IAIA,IAAID,eAAeC,aAAnB,EAAkC;MAChC,MAAM,IAAItB,KAAJ,CACH,oBAAmBqB,UAAW,mBAA/B,GACG,uBAAsBC,aAAc,IAFnC,CAAN;IAf0C;;IA4B1C,MAAMC,uBAAuB,EAA7B;;IACA,WAAWC,QAAX,IAAuB,EAAvB,EAA2B;MACzBD,qBAAqBE,IAArBF,CAA0BC,QAA1BD;IA9BwC;;IAgC1C,IAAIA,qBAAqBG,MAAzB,EAAiC;MAC/B,MAAM,IAAI1B,KAAJ,CACJ,sEACEuB,qBAAqBI,IAArBJ,CAA0B,IAA1BA,CADF,GAEE,wDAHE,CAAN;IAjCwC;;IA2C1C,IAAI,OAAOK,cAAP,KAA0B,WAA9B,EAA2C;MACzC,MAAMC,aACJ,+DACA,oEAFF;;MAIA,IAAIC,iBAAJ,EAAc;QACZ,MAAM,IAAI9B,KAAJ,CAAU6B,aAAa,sCAAvB,CAAN;MANuC;;MAQzC,MAAM,IAAI7B,KAAJ,CAAU6B,aAAa,uCAAvB,CAAN;IAnDwC;;IAuD5C,MAAME,QAAQf,UAAUe,KAAxB;IACA,MAAMC,aAAahB,UAAUgB,UAA7B;IACA,MAAMC,oBAAoBjB,UAAUe,KAAVf,GAAkB,SAA5C;IACA,IAAIb,UAAU,IAAI+B,+BAAJ,CAAmBD,iBAAnB,EAAsCF,KAAtC,EAA6C3B,IAA7C,CAAd;;IAEA,SAASL,mBAAT,GAA+B;MAC7B,IAAIR,UAAJ,EAAgB;QACd,MAAM,IAAIS,KAAJ,CAAU,uBAAV,CAAN;MAF2B;IA5Da;;IAkE5C,SAASmC,eAAT,CAAyBC,IAAzB,EAA+B;MAC7BjB,YAAYM,IAAZN,CAAiBiB,IAAjBjB;IAnE0C;;IAsE5C,SAASkB,gBAAT,CAA0BD,IAA1B,EAAgC;MAC9BA,KAAKxC,MAALwC;MACA,MAAME,IAAInB,YAAYoB,OAAZpB,CAAoBiB,IAApBjB,CAAV;MACAA,YAAYqB,MAAZrB,CAAmBmB,CAAnBnB,EAAsB,CAAtBA;IAzE0C;;IA4E5C,eAAesB,YAAf,CAA4BC,YAA5B,EAA0C;MACxC,MAAMzB,WAAW0B,SAAX1B,CAAqB,aAArBA,CAAN;MACA,MAAMA,WAAW0B,SAAX1B,CAAqB,gBAArBA,CAAN;MACA,MAAMA,WAAW0B,SAAX1B,CAAqB,OAArBA,EAA8B,CAACyB,YAAD,CAA9BzB,CAAN;MAIA,MAAMA,WAAW0B,SAAX1B,CAAqB,gBAArBA,EAAuC,CAACyB,YAAD,CAAvCzB,CAAN;MAGA,MAAMA,WAAW0B,SAAX1B,CAAqB,eAArBA,EAAsC,CAACyB,YAAD,CAAtCzB,CAAN;MAEA,MAAM2B,YAAY,MAAM3B,WAAW0B,SAAX1B,CAAqB,WAArBA,CAAxB;;MACA,IAAI2B,SAAJ,EAAe;QACb,MAAMR,OAAO,IAAIhD,UAAJ,CAAe,cAAf,CAAb;QACA+C,gBAAgBC,IAAhB;QACA,MAAMS,QAAQC,GAARD,CAAY,CAChB5B,WACG8B,YADH9B,CACgBd,OADhBc,EACyBmB,IADzBnB,EAEG+B,KAFH/B,CAESgC,UAAU,CAFnB,GAKGC,IALHjC,CAKQ,MAAMoB,iBAAiBD,IAAjB,CALdnB,CADgB,EAOhBA,WAAWkC,aAAXlC,EAPgB,CAAZ4B,CAAN;MAhBsC;;MA2BxC,MAAM,CAACO,QAAD,EAAWC,YAAX,EAAyBC,aAAzB,IAA0C,MAAMT,QAAQC,GAARD,CAAY,CAChE5B,WAAW0B,SAAX1B,CAAqB,UAArBA,CADgE,EAEhEA,WAAW0B,SAAX1B,CAAqB,cAArBA,CAFgE,EAGhEA,WAAW0B,SAAX1B,CAAqB,eAArBA,CAHgE,CAAZ4B,CAAtD;MAOA,MAAMU,aAAaX,YACf,MAAM3B,WAAW0B,SAAX1B,CAAqB,YAArBA,CADS,GAEf,IAFJ;MAIA,OAAO;QAAEmC,QAAF;QAAYC,YAAZ;QAA0BE,UAA1B;QAAsCD;MAAtC,CAAP;IAlH0C;;IAqH5C,SAASE,aAAT,CAAuBhD,IAAvB,EAA6BiD,gBAA7B,EAA+CC,SAA/C,EAA0D;MACxD,MAAMC,uBAAuBlE,oCAA7B;MACA,IAAImE,aAAJ;MAEA,MAAMC,SAASrD,KAAKqD,MAApB;;MACA,IAAIA,OAAOrD,IAAX,EAAiB;QACf,IAAI;UACFoD,gBAAgB,IAAIE,4BAAJ,CACd/B,KADc,EAEd8B,OAAOrD,IAFO,EAGdqD,OAAOE,QAHO,EAId5D,OAJc,EAKdsD,gBALc,EAMdC,SANc,EAOd1B,UAPc,CAAhB4B;UASAD,qBAAqB9D,OAArB8D,CAA6BC,aAA7BD;QAVF,EAWE,OAAOK,EAAP,EAAW;UACXL,qBAAqBM,MAArBN,CAA4BK,EAA5BL;QAba;;QAef,OAAOA,qBAAqBhE,OAA5B;MApBsD;;MAuBxD,IAAIuE,SAAJ;MAAA,IACEC,eAAe,EADjB;;MAEA,IAAI;QACFD,YAAY,IAAIE,8BAAJ,CAAoBjE,OAApB,CAAZ+D;MADF,EAEE,OAAOF,EAAP,EAAW;QACXL,qBAAqBM,MAArBN,CAA4BK,EAA5BL;QACA,OAAOA,qBAAqBhE,OAA5B;MA7BsD;;MAgCxD,MAAM0E,cAAcH,UAAUI,aAAVJ,EAApB;MACAG,YAAYE,YAAZF,CACGnB,IADHmB,CACQ,YAAY;QAChB,IAAI,CAACA,YAAYG,gBAAjB,EAAmC;UACjC;QAFc;;QAMhB,MAAMC,mBACJZ,OAAOY,gBAAPZ,IAA2BQ,YAAYK,oBADzC;QAEAd,gBAAgB,IAAIe,8BAAJ,CACd5C,KADc,EAEdmC,SAFc,EAGd;UACEU,YAAYzE,OADd;UAEE4D,UAAUF,OAAOE,QAFnB;UAGErC,QAAQ2C,YAAYQ,aAHtB;UAIEJ,gBAJF;UAKEK,gBAAgBjB,OAAOiB;QALzB,CAHc,EAUdrB,gBAVc,EAWdC,SAXc,EAYd1B,UAZc,CAAhB4B;;QAiBA,KAAK,IAAItB,IAAI,CAAb,EAAgBA,IAAI6B,aAAazC,MAAjC,EAAyCY,GAAzC,EAA8C;UAC5CsB,cAAcmB,mBAAdnB,CAAkCO,aAAa7B,CAAb,CAAlCsB;QA1Bc;;QA6BhBO,eAAe,EAAfA;QACAR,qBAAqB9D,OAArB8D,CAA6BC,aAA7BD;QACAzC,aAAa,IAAbA;MAhCJ,GAkCG8B,KAlCHqB,CAkCS,UAAUpB,MAAV,EAAkB;QACvBU,qBAAqBM,MAArBN,CAA4BV,MAA5BU;QACAzC,aAAa,IAAbA;MApCJ;MAuCA,IAAI8D,SAAS,CAAb;;MACA,MAAMC,cAAc,YAAY;QAC9B,MAAMC,UAAUC,yBAAchB,YAAdgB,CAAhB;;QACA,IAAItB,OAAOnC,MAAPmC,IAAiBqB,QAAQxD,MAARwD,KAAmBrB,OAAOnC,MAA/C,EAAuD;UACrD0D,gBAAK,+CAALA;QAH4B;;QAM9B,IAAI;UACFxB,gBAAgB,IAAIE,4BAAJ,CACd/B,KADc,EAEdmD,OAFc,EAGdrB,OAAOE,QAHO,EAId5D,OAJc,EAKdsD,gBALc,EAMdC,SANc,EAOd1B,UAPc,CAAhB4B;UASAD,qBAAqB9D,OAArB8D,CAA6BC,aAA7BD;QAVF,EAWE,OAAOK,EAAP,EAAW;UACXL,qBAAqBM,MAArBN,CAA4BK,EAA5BL;QAlB4B;;QAoB9BQ,eAAe,EAAfA;MApBF;;MAsBA,MAAMkB,cAAc,IAAIxC,OAAJ,CAAY,UAAUhD,OAAV,EAAmBoE,MAAnB,EAA2B;QACzD,MAAMqB,YAAY,UAAU;UAAEC,KAAF;UAASC;QAAT,CAAV,EAA2B;UAC3C,IAAI;YACFzF;;YACA,IAAIyF,IAAJ,EAAU;cACR,IAAI,CAAC5B,aAAL,EAAoB;gBAClBqB;cAFM;;cAIR/D,aAAa,IAAbA;cACA;YAPA;;YAUF8D,UAAUS,2BAAgBF,KAAhBE,CAAVT;;YACA,IAAI,CAACX,YAAYK,oBAAjB,EAAuC;cACrCvE,QAAQM,IAARN,CAAa,aAAbA,EAA4B;gBAC1B6E,MAD0B;gBAE1BU,OAAOC,KAAKC,GAALD,CAASX,MAATW,EAAiBtB,YAAYQ,aAAZR,IAA6B,CAA9CsB;cAFmB,CAA5BxF;YAZA;;YAkBF,IAAIyD,aAAJ,EAAmB;cACjBA,cAAcmB,mBAAdnB,CAAkC2B,KAAlC3B;YADF,OAEO;cACLO,aAAa1C,IAAb0C,CAAkBoB,KAAlBpB;YArBA;;YAwBFE,YAAYwB,IAAZxB,GAAmBnB,IAAnBmB,CAAwBiB,SAAxBjB,EAAmCJ,MAAnCI;UAxBF,EAyBE,OAAOyB,CAAP,EAAU;YACV7B,OAAO6B,CAAP;UA3ByC;QAA7C;;QA8BAzB,YAAYwB,IAAZxB,GAAmBnB,IAAnBmB,CAAwBiB,SAAxBjB,EAAmCJ,MAAnCI;MA/BkB,EAApB;MAiCAgB,YAAYrC,KAAZqC,CAAkB,UAAUS,CAAV,EAAa;QAC7BnC,qBAAqBM,MAArBN,CAA4BmC,CAA5BnC;QACAzC,aAAa,IAAbA;MAFF;;MAKAA,aAAa,UAAU+B,MAAV,EAAkB;QAC7BiB,UAAU6B,iBAAV7B,CAA4BjB,MAA5BiB;MADF;;MAIA,OAAOP,qBAAqBhE,OAA5B;IA9P0C;;IAiQ5C,SAASqG,QAAT,CAAkBxF,IAAlB,EAAwB;MACtB,SAASyF,SAAT,CAAmBC,GAAnB,EAAwB;QACtBnG;QACAI,QAAQM,IAARN,CAAa,QAAbA,EAAuB;UAAEgG,SAASD;QAAX,CAAvB/F;MAHoB;;MAMtB,SAASiG,SAAT,CAAmBpC,EAAnB,EAAuB;QACrBjE;;QAEA,IAAIiE,cAAcqC,uBAAlB,EAAqC;UACnC,MAAMjE,OAAO,IAAIhD,UAAJ,CAAgB,+BAA8B4E,GAAGsC,IAAlC,EAAf,CAAb;UACAnE,gBAAgBC,IAAhB;UAEAjC,QACGoG,eADHpG,CACmB,iBADnBA,EACsC6D,EADtC7D,EAEG+C,IAFH/C,CAEQ,UAAU;YAAE4D;UAAF,CAAV,EAAwB;YAC5B1B,iBAAiBD,IAAjB;YACAnB,WAAWuF,cAAXvF,CAA0B8C,QAA1B9C;YACAwF;UALJ,GAOGzD,KAPH7C,CAOS,YAAY;YACjBkC,iBAAiBD,IAAjB;YACAjC,QAAQM,IAARN,CAAa,cAAbA,EAA6B6D,EAA7B7D;UATJ;QAJF,OAeO,IACL6D,cAAc0C,yBAAd1C,IACAA,cAAc2C,yBADd3C,IAEAA,cAAc4C,iCAFd5C,IAGAA,cAAc6C,2BAJT,EAKL;UACA1G,QAAQM,IAARN,CAAa,cAAbA,EAA6B6D,EAA7B7D;QANK,OAOA;UACLA,QAAQM,IAARN,CACE,cADFA,EAEE,IAAI0G,2BAAJ,CAA0B7C,GAAG8C,OAA7B,EAAsC9C,GAAG+C,QAAH/C,EAAtC,CAFF7D;QA1BmB;MAND;;MAuCtB,SAASsG,eAAT,GAA2B;QACzB1G;QAEA0C,aAAa,KAAb,EAAoBS,IAApBT,CAAyBwD,SAAzBxD,EAAoC,UAAUQ,MAAV,EAAkB;UACpDlD;;UAGA,IAAI,EAAEkD,kBAAkB+D,8BAApB,CAAJ,EAA6C;YAC3CZ,UAAUnD,MAAV;YACA;UANkD;;UAQpDhC,WAAWgG,mBAAXhG;UACAA,WAAWiG,cAAXjG,GAA4BiC,IAA5BjC,CAAiC,YAAY;YAC3ClB;YAEA0C,aAAa,IAAb,EAAmBS,IAAnBT,CAAwBwD,SAAxBxD,EAAmC2D,SAAnC3D;UAHF;QATF;MA1CoB;;MA2DtB1C;MAEA,MAAM0D,mBAAmB;QACvB0D,cAAc3G,KAAK2G,YADI;QAEvBC,iBAAiB5G,KAAK4G,eAFC;QAGvBC,cAAc7G,KAAK6G,YAHI;QAIvBC,iBAAiB9G,KAAK8G,eAJC;QAKvBC,qBAAqB/G,KAAK+G,mBALH;QAMvBC,gBAAgBhH,KAAKgH,cANE;QAOvBC,SAASjH,KAAKiH,OAPS;QAQvBC,qBAAqBlH,KAAKkH;MARH,CAAzB;MAWAlE,cAAchD,IAAd,EAAoBiD,gBAApB,EAAsCjD,KAAKkD,SAA3C,EACGR,IADHM,CACQ,UAAUI,aAAV,EAAyB;QAC7B,IAAIrE,UAAJ,EAAgB;UAGdqE,cAAc9D,SAAd8D,CACE,IAAI+D,oBAAJ,CAAmB,wBAAnB,CADF/D;UAGA,MAAM,IAAI5D,KAAJ,CAAU,uBAAV,CAAN;QAP2B;;QAS7BiB,aAAa2C,aAAb3C;QAEAA,WAAWiG,cAAXjG,GAA4BiC,IAA5BjC,CAAiC,UAAU2G,MAAV,EAAkB;UACjDzH,QAAQM,IAARN,CAAa,YAAbA,EAA2B;YAAEuB,QAAQkG,OAAOC,KAAPD,CAAaE;UAAvB,CAA3B3H;QADF;MAZJ,GAgBG+C,IAhBHM,CAgBQiD,eAhBRjD,EAgByB4C,SAhBzB5C;IAzU0C;;IA4V5CrD,QAAQG,EAARH,CAAW,SAAXA,EAAsB,SAAS4H,eAAT,CAAyBvH,IAAzB,EAA+B;MACnD,OAAOS,WAAW+G,OAAX/G,CAAmBT,KAAKyH,SAAxBhH,EAAmCiC,IAAnCjC,CAAwC,UAAUiH,IAAV,EAAgB;QAC7D,OAAOrF,QAAQC,GAARD,CAAY,CACjB5B,WAAWkH,MAAXlH,CAAkBiH,IAAlBjH,EAAwB,QAAxBA,CADiB,EAEjBA,WAAWkH,MAAXlH,CAAkBiH,IAAlBjH,EAAwB,KAAxBA,CAFiB,EAGjBA,WAAWkH,MAAXlH,CAAkBiH,IAAlBjH,EAAwB,UAAxBA,CAHiB,EAIjBA,WAAWkH,MAAXlH,CAAkBiH,IAAlBjH,EAAwB,MAAxBA,CAJiB,CAAZ4B,EAKJK,IALIL,CAKC,UAAU,CAACuF,MAAD,EAASC,GAAT,EAAcC,QAAd,EAAwBC,IAAxB,CAAV,EAAyC;UAC/C,OAAO;YACLH,MADK;YAELC,GAFK;YAGLC,QAHK;YAILC;UAJK,CAAP;QANK,EAAP;MADK,EAAP;IADF;IAkBApI,QAAQG,EAARH,CAAW,cAAXA,EAA2B,SAASqI,oBAAT,CAA8BhI,IAA9B,EAAoC;MAC7D,MAAMiI,UAAUC,gBAAIC,GAAJD,CAAQlI,KAAKoI,GAAbF,EAAkBlI,KAAKqI,GAAvBH,CAAhB;;MACA,OAAOzH,WAAW6H,aAAX7H,CAAyB,cAAzBA,EAAyC,CAACwH,OAAD,CAAzCxH,CAAP;IAFF;IAKAd,QAAQG,EAARH,CAAW,iBAAXA,EAA8B,SAAS4I,uBAAT,CAAiCvI,IAAjC,EAAuC;MACnE,OAAOS,WAAW6H,aAAX7H,CAAyB,cAAzBA,CAAP;IADF;IAIAd,QAAQG,EAARH,CAAW,gBAAXA,EAA6B,SAAS6I,sBAAT,CAAgCxI,IAAhC,EAAsC;MACjE,OAAOS,WAAW6H,aAAX7H,CAAyB,gBAAzBA,EAA2C,CAACT,KAAKyI,EAAN,CAA3ChI,CAAP;IADF;IAIAd,QAAQG,EAARH,CAAW,eAAXA,EAA4B,SAAS+I,qBAAT,CAA+B1I,IAA/B,EAAqC;MAC/D,OAAOS,WAAW6H,aAAX7H,CAAyB,YAAzBA,CAAP;IADF;IAIAd,QAAQG,EAARH,CAAW,eAAXA,EAA4B,SAASgJ,qBAAT,CAA+B3I,IAA/B,EAAqC;MAC/D,OAAOS,WAAW6H,aAAX7H,CAAyB,YAAzBA,CAAP;IADF;IAIAd,QAAQG,EAARH,CAAW,aAAXA,EAA0B,SAASiJ,mBAAT,CAA6B5I,IAA7B,EAAmC;MAC3D,OAAOS,WAAW6H,aAAX7H,CAAyB,UAAzBA,CAAP;IADF;IAIAd,QAAQG,EAARH,CAAW,sBAAXA,EAAmC,UAAUK,IAAV,EAAgB;MACjD,OAAOS,WAAW6H,aAAX7H,CAAyB,mBAAzBA,CAAP;IADF;IAIAd,QAAQG,EAARH,CAAW,eAAXA,EAA4B,UAAUK,IAAV,EAAgB;MAC1C,OAAOS,WAAW6H,aAAX7H,CAAyB,YAAzBA,CAAP;IADF;IAIAd,QAAQG,EAARH,CAAW,gBAAXA,EAA6B,SAASkJ,sBAAT,CAAgC7I,IAAhC,EAAsC;MACjE,OAAOS,WAAW6H,aAAX7H,CAAyB,aAAzBA,CAAP;IADF;IAIAd,QAAQG,EAARH,CAAW,eAAXA,EAA4B,SAASmJ,qBAAT,CAA+B9I,IAA/B,EAAqC;MAC/D,OAAOS,WAAW6H,aAAX7H,CAAyB,YAAzBA,CAAP;IADF;IAIAd,QAAQG,EAARH,CAAW,iBAAXA,EAA8B,SAASoJ,uBAAT,CAAiC/I,IAAjC,EAAuC;MACnE,OAAOS,WAAW6H,aAAX7H,CAAyB,WAAzBA,CAAP;IADF;IAIAd,QAAQG,EAARH,CAAW,kBAAXA,EAA+B,UAAU;MAAE8H;IAAF,CAAV,EAAyB;MACtD,OAAOhH,WAAW+G,OAAX/G,CAAmBgH,SAAnBhH,EAA8BiC,IAA9BjC,CAAmC,UAAUiH,IAAV,EAAgB;QACxD,OAAOjH,WAAWkH,MAAXlH,CAAkBiH,IAAlBjH,EAAwB,WAAxBA,CAAP;MADK,EAAP;IADF;IAMAd,QAAQG,EAARH,CAAW,YAAXA,EAAyB,SAASqJ,kBAAT,CAA4BhJ,IAA5B,EAAkC;MACzD,OAAOS,WAAW6H,aAAX7H,CAAyB,iBAAzBA,CAAP;IADF;IAIAd,QAAQG,EAARH,CAAW,0BAAXA,EAAuC,UAAUK,IAAV,EAAgB;MACrD,OAAOS,WAAW6H,aAAX7H,CAAyB,uBAAzBA,CAAP;IADF;IAIAd,QAAQG,EAARH,CAAW,gBAAXA,EAA6B,UAAUK,IAAV,EAAgB;MAC3C,OAAOS,WAAW6H,aAAX7H,CAAyB,aAAzBA,CAAP;IADF;IAIAd,QAAQG,EAARH,CAAW,aAAXA,EAA0B,SAASsJ,mBAAT,CAA6BjJ,IAA7B,EAAmC;MAC3D,OAAOqC,QAAQC,GAARD,CAAY,CACjB5B,WAAW0B,SAAX1B,CAAqB,cAArBA,CADiB,EAEjBA,WAAW6H,aAAX7H,CAAyB,UAAzBA,CAFiB,CAAZ4B,CAAP;IADF;IAOA1C,QAAQG,EAARH,CAAW,aAAXA,EAA0B,SAASuJ,mBAAT,CAA6BlJ,IAA7B,EAAmC;MAC3D,OAAOS,WAAW6H,aAAX7H,CAAyB,UAAzBA,CAAP;IADF;IAIAd,QAAQG,EAARH,CAAW,SAAXA,EAAsB,SAASwJ,eAAT,CAAyBnJ,IAAzB,EAA+B;MACnDS,WAAWgG,mBAAXhG;MACA,OAAOA,WAAWiG,cAAXjG,GAA4BiC,IAA5BjC,CAAiC,UAAU2G,MAAV,EAAkB;QACxD,OAAOA,OAAOC,KAAd;MADK,EAAP;IAFF;IAOA1H,QAAQG,EAARH,CAAW,gBAAXA,EAA6B,UAAU;MAAE8H,SAAF;MAAa2B;IAAb,CAAV,EAAiC;MAC5D,OAAO3I,WAAW+G,OAAX/G,CAAmBgH,SAAnBhH,EAA8BiC,IAA9BjC,CAAmC,UAAUiH,IAAV,EAAgB;QACxD,OAAOA,KAAK2B,kBAAL3B,CAAwB0B,MAAxB1B,CAAP;MADK,EAAP;IADF;IAMA/H,QAAQG,EAARH,CAAW,iBAAXA,EAA8B,UAAUK,IAAV,EAAgB;MAC5C,OAAOS,WAAW0B,SAAX1B,CAAqB,cAArBA,CAAP;IADF;IAIAd,QAAQG,EAARH,CAAW,cAAXA,EAA2B,UAAUK,IAAV,EAAgB;MACzC,OAAOS,WAAW0B,SAAX1B,CAAqB,cAArBA,CAAP;IADF;IAIAd,QAAQG,EAARH,CAAW,wBAAXA,EAAqC,UAAUK,IAAV,EAAgB;MACnD,OAAOS,WAAW0B,SAAX1B,CAAqB,qBAArBA,CAAP;IADF;IAIAd,QAAQG,EAARH,CACE,cADFA,EAEE,UAAU;MAAEyC,SAAF;MAAaQ,QAAb;MAAuB0G,iBAAvB;MAA0CC;IAA1C,CAAV,EAAgE;MAC9D9I,WAAWgG,mBAAXhG;MAEA,MAAM+I,WAAW,CACf/I,WAAWiG,cAAXjG,EADe,EAEfA,WAAW6H,aAAX7H,CAAyB,UAAzBA,CAFe,EAGfA,WAAW6H,aAAX7H,CAAyB,aAAzBA,CAHe,EAIfA,WAAW0B,SAAX1B,CAAqB,MAArBA,CAJe,EAKfA,WAAW0B,SAAX1B,CAAqB,WAArBA,CALe,CAAjB;;MAQA,IAAI2B,SAAJ,EAAe;QACboH,SAASvI,IAATuI,CAAc/I,WAAWgJ,gBAAXhJ,CAA4B6I,iBAA5B7I,CAAd+I;MADF,OAEO;QACL,KAAK,IAAI/B,YAAY,CAArB,EAAwBA,YAAY7E,QAApC,EAA8C6E,WAA9C,EAA2D;UACzD+B,SAASvI,IAATuI,CACE/I,WAAW+G,OAAX/G,CAAmBgH,SAAnBhH,EAA8BiC,IAA9BjC,CAAmC,UAAUiH,IAAV,EAAgB;YACjD,MAAM9F,OAAO,IAAIhD,UAAJ,CAAgB,cAAa6I,SAAd,EAAf,CAAb;YACA,OAAOC,KACJgC,IADIhC,CACC/H,OADD+H,EACU9F,IADV8F,EACgB4B,iBADhB5B,EAEJiC,OAFIjC,CAEI,YAAY;cACnB7F,iBAAiBD,IAAjB;YAHG,EAAP;UAFF,EADF4H;QAFG;MAbuD;;MA4B9D,OAAOnH,QAAQC,GAARD,CAAYmH,QAAZnH,EAAsBK,IAAtBL,CAA2B,UAAU,CAC1C+E,MAD0C,EAE1CwC,QAF0C,EAG1CC,WAH0C,EAI1CC,IAJ0C,EAK1CC,SAL0C,EAM1C,OAN0C,CAAV,EAO/B;QACD,IAAIC,UAAU,EAAd;QACA,IAAIC,UAAU,IAAd;;QACA,IAAI7H,SAAJ,EAAe;UACb6H,UAAUC,KAAK,CAAL,CAAVD;;UACA,IAAI,CAACA,OAAL,EAAc;YACZ,OAAO7C,OAAOC,KAAd;UAHW;QAAf,OAKO;UACL,WAAWQ,GAAX,IAAkBqC,IAAlB,EAAwB;YACtBF,UAAUnC,IACPsC,MADOtC,CACAuC,KAAKA,MAAM,IADXvC,EAEPwC,MAFOxC,CAEA,CAACyC,CAAD,EAAIC,CAAJ,KAAUD,EAAEE,MAAFF,CAASC,CAATD,CAFVzC,EAEuBmC,OAFvBnC,CAAVmC;UAFG;;UAOL,IAAIA,QAAQ9I,MAAR8I,KAAmB,CAAvB,EAA0B;YAExB,OAAO5C,OAAOC,KAAd;UATG;QARN;;QAqBD,MAAMoD,MAAOb,oBAAoBc,gBAApBd,IAA4BA,SAASzB,GAATyB,CAAa,KAAbA,CAA5BA,IAAoD,IAAjE;QACA,IAAIe,iBAAiB,IAArB;QACA,IAAIC,sBAAsB,KAA1B;;QACA,IAAIC,MAAMC,OAAND,CAAcJ,GAAdI,CAAJ,EAAwB;UACtB,KAAK,IAAI/I,IAAI,CAAR,EAAWiJ,KAAKN,IAAIvJ,MAAzB,EAAiCY,IAAIiJ,EAArC,EAAyCjJ,KAAK,CAA9C,EAAiD;YAC/C,IAAI2I,IAAI3I,CAAJ,MAAW,UAAf,EAA2B;cACzB6I,iBAAiBF,IAAI3I,IAAI,CAAR,CAAjB6I;cACAd,cAAc,IAAdA;cACAe,sBAAsB,IAAtBA;YAJ6C;UAD3B;;UAQtB,IAAID,mBAAmB,IAAvB,EAA6B;YAC3BA,iBAAiBb,KAAKkB,SAALlB,EAAjBa;UAToB;QAAxB,OAWO,IAAIF,GAAJ,EAAS;UACdZ,cAAc,IAAdA;UAEAjF,gBAAK,uBAALA;QAtCD;;QAyCD,IAAIqG,cAAcC,OAAOC,MAAPD,CAAc,IAAdA,CAAlB;;QACA,IAAIpB,KAAKsB,OAAT,EAAkB;UAEhB,MAAMC,UAAUH,OAAOC,MAAPD,CAAc,IAAdA,CAAhB;UACA,MAAMI,WAAWxB,KAAKsB,OAALtB,CAAa3B,GAAb2B,CAAiB,MAAjBA,KAA4B,IAA7C;;UACA,IAAIwB,oBAAoBZ,gBAAxB,EAA8B;YAC5BY,SAASC,OAATD,CAAiB,CAACE,GAAD,EAAMzG,KAAN,KAAgB;cAC/B,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;gBAC7BsG,QAAQG,GAAR,IAAeC,6BAAkB1G,KAAlB0G,CAAfJ;cAF6B;YAAjC;UALc;;UAYhBJ,cAAc;YACZS,SAAS5B,KAAKsB,OAALtB,CAAa6B,MAAb7B,CAAoB,MAApBA,KAA+B,IAD5B;YAEZ8B,YAAY9B,KAAKsB,OAALtB,CAAa6B,MAAb7B,CAAoB,SAApBA,KAAkC,IAFlC;YAGZ+B,QAAQ/B,KAAKkB,SAALlB,EAHI;YAIZgC,SAAShC,KAAKsB,OAALtB,CAAa6B,MAAb7B,CAAoB,MAApBA,KAA+B,IAJ5B;YAKZiC,MAAMV,OALM;YAMZW,SAASlC,KAAKsB,OAALtB,CAAa3B,GAAb2B,CAAiB,IAAjBA,KAA0B,IANvB;YAOZC,SAPY;YAQZR;UARY,CAAd0B;QAtDD;;QAiEDnB,KAAKmC,WAALnC;QAEA,OAAOoC,+BAAkB;UACvBC,cAAc/E,OAAOC,KADE;UAEvBiE,UAAUL,WAFa;UAGvBjB,OAHuB;UAIvBF,IAJuB;UAKvBsC,QAAQ,CAAC,CAAC3B,GALa;UAMvBE,cANuB;UAOvBC,mBAPuB;UAQvBf,WARuB;UASvBD,QATuB;UAUvBK;QAVuB,CAAlBiC,CAAP;MA1EK,EAAP;IA9BJ;IAwHAvM,QAAQG,EAARH,CAAW,iBAAXA,EAA8B,SAAS0M,kBAAT,CAA4BrM,IAA5B,EAAkCsM,IAAlC,EAAwC;MACpE,MAAM7E,YAAYzH,KAAKyH,SAAvB;MACAhH,WAAW+G,OAAX/G,CAAmBgH,SAAnBhH,EAA8BiC,IAA9BjC,CAAmC,UAAUiH,IAAV,EAAgB;QACjD,MAAM9F,OAAO,IAAIhD,UAAJ,CAAgB,yBAAwB6I,SAAzB,EAAf,CAAb;QACA9F,gBAAgBC,IAAhB;QAGA,MAAM2K,QAAQlM,aAAamM,qBAAeC,KAA5BpM,GAAoCqM,KAAKC,GAALD,EAApCrM,GAAiD,CAA/D;QAGAqH,KACGkF,eADHlF,CACmB;UACf/H,OADe;UAEf2M,IAFe;UAGf1K,IAHe;UAIfwH,QAAQpJ,KAAKoJ,MAJE;UAKfyD,UAAU7M,KAAK6M,QALA;UAMfvD,mBAAmBtJ,KAAKsJ;QANT,CADnB5B,EASGhF,IATHgF,CAUI,UAAUoF,gBAAV,EAA4B;UAC1BjL,iBAAiBD,IAAjB;;UAEA,IAAI2K,KAAJ,EAAW;YACTR,gBACG,QAAOtE,YAAY,CAAE,2BAAtB,GACE,GAAGiF,KAAKC,GAALD,KAAaH,KAAM,WAAUO,iBAAiB5L,MAAjD,EAFJ6K;UAJwB;;UAS1BO,KAAKS,KAALT;QAnBN,GAqBI,UAAU7J,MAAV,EAAkB;UAChBZ,iBAAiBD,IAAjB;;UACA,IAAIA,KAAK7C,UAAT,EAAqB;YACnB;UAHc;;UAOhBY,QAAQM,IAARN,CAAa,oBAAbA,EAAmC;YACjCqN,WAAWC,2BAAqBC;UADC,CAAnCvN;UAIA2M,KAAKa,KAALb,CAAW7J,MAAX6J;QAhCN;MARF;IAFF;IAmDA3M,QAAQG,EAARH,CAAW,gBAAXA,EAA6B,SAASyN,cAAT,CAAwBpN,IAAxB,EAA8BsM,IAA9B,EAAoC;MAC/D,MAAM7E,YAAYzH,KAAKyH,SAAvB;MAEAhH,WAAW+G,OAAX/G,CAAmBgH,SAAnBhH,EAA8BiC,IAA9BjC,CAAmC,UAAUiH,IAAV,EAAgB;QACjD,MAAM9F,OAAO,IAAIhD,UAAJ,CAAe,0BAA0B6I,SAAzC,CAAb;QACA9F,gBAAgBC,IAAhB;QAGA,MAAM2K,QAAQlM,aAAamM,qBAAeC,KAA5BpM,GAAoCqM,KAAKC,GAALD,EAApCrM,GAAiD,CAA/D;QAEAqH,KACG2F,kBADH3F,CACsB;UAClB/H,OADkB;UAElBiC,IAFkB;UAGlB0K,IAHkB;UAIlBgB,sBAAsBtN,KAAKsN,oBAJT;UAKlBC,kBAAkBvN,KAAKuN;QALL,CADtB7F,EAQGhF,IARHgF,CASI,YAAY;UACV7F,iBAAiBD,IAAjB;;UAEA,IAAI2K,KAAJ,EAAW;YACTR,gBACG,QAAOtE,YAAY,CAAE,0BAAtB,GACE,GAAGiF,KAAKC,GAALD,KAAaH,KAAM,IAF1BR;UAJQ;;UASVO,KAAKS,KAALT;QAlBN,GAoBI,UAAU7J,MAAV,EAAkB;UAChBZ,iBAAiBD,IAAjB;;UACA,IAAIA,KAAK7C,UAAT,EAAqB;YACnB;UAHc;;UAKhBuN,KAAKa,KAALb,CAAW7J,MAAX6J;QAzBN;MAPF;IAHF;IA4CA3M,QAAQG,EAARH,CAAW,eAAXA,EAA4B,SAAS6N,gBAAT,CAA0BxN,IAA1B,EAAgC;MAC1D,OAAOS,WAAW+G,OAAX/G,CAAmBT,KAAKyH,SAAxBhH,EAAmCiC,IAAnCjC,CAAwC,UAAUiH,IAAV,EAAgB;QAC7D,OAAOjH,WAAWkH,MAAXlH,CAAkBiH,IAAlBjH,EAAwB,eAAxBA,CAAP;MADK,EAAP;IADF;IAMAd,QAAQG,EAARH,CAAW,cAAXA,EAA2B,UAAUK,IAAV,EAAgB;MACzC,OAAOS,WAAWgN,YAAXhN,CAAwBT,KAAKyI,EAA7BhI,EAAiCd,OAAjCc,CAAP;IADF;IAIAd,QAAQG,EAARH,CAAW,SAAXA,EAAsB,SAAS+N,UAAT,CAAoB1N,IAApB,EAA0B;MAC9C,OAAOS,WAAWkN,OAAXlN,CAA6C,IAA7CA,CAAP;IADF;IAIAd,QAAQG,EAARH,CAAW,WAAXA,EAAwB,SAASiO,YAAT,CAAsB5N,IAAtB,EAA4B;MAClDjB,aAAa,IAAbA;MAEA,MAAM8O,SAAS,EAAf;;MACA,IAAIpN,UAAJ,EAAgB;QACdA,WAAWnB,SAAXmB,CAAqB,IAAI0G,oBAAJ,CAAmB,wBAAnB,CAArB1G;QAEA,MAAMqN,iBAAiBrN,WAAWkN,OAAXlN,EAAvB;QACAoN,OAAO5M,IAAP4M,CAAYC,cAAZD;QAEApN,aAAa,IAAbA;MANF,OAOO;QACLsN;MAZgD;;MAclD,IAAIrN,UAAJ,EAAgB;QACdA,WAAW,IAAIyG,oBAAJ,CAAmB,wBAAnB,CAAX;MAfgD;;MAkBlD,WAAWvF,IAAX,IAAmBjB,WAAnB,EAAgC;QAC9BkN,OAAO5M,IAAP4M,CAAYjM,KAAK1C,QAAjB2O;QACAjM,KAAKtC,SAALsC;MApBgD;;MAuBlD,OAAOS,QAAQC,GAARD,CAAYwL,MAAZxL,EAAoBK,IAApBL,CAAyB,YAAY;QAG1C1C,QAAQqO,OAARrO;QACAA,UAAU,IAAVA;MAJK,EAAP;IAvBF;IA+BAA,QAAQG,EAARH,CAAW,OAAXA,EAAoB,SAASsO,QAAT,CAAkBjO,IAAlB,EAAwB;MAC1CwF,SAAShF,SAAT;MACAA,YAAY,IAAZA;IAFF;IAIA,OAAOiB,iBAAP;EA/uBuB;;EAkvBzB,OAAOyM,kBAAP,CAA0BtO,IAA1B,EAAgC;IAC9B,MAAMD,UAAU,IAAI+B,+BAAJ,CAAmB,QAAnB,EAA6B,MAA7B,EAAqC9B,IAArC,CAAhB;IACAH,qBAAqBC,KAArBD,CAA2BE,OAA3BF,EAAoCG,IAApCH;IACAE,QAAQM,IAARN,CAAa,OAAbA,EAAsB,IAAtBA;EArvBuB;;AAAA;;;;AAyvB3B,SAASwO,aAAT,CAAuBC,SAAvB,EAAkC;EAChC,OACE,OAAOA,UAAUC,WAAjB,KAAiC,UAAjC,IAA+C,eAAeD,SADhE;AA9zBF;;AAo0BA,IACE,OAAOE,MAAP,KAAkB,WAAlB,IACA,CAAChN,iBADD,IAEA,OAAOiN,IAAP,KAAgB,WAFhB,IAGAJ,cAAcI,IAAd,CAJF,EAKE;EACA9O,qBAAqByO,kBAArBzO,CAAwC8O,IAAxC9O;AA10BF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACeA;;AAEA,MAAM+O,kBAAkB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,CAAxB;;AACA,MAAMC,uBAAuB,CAAC,KAAD,EAAQ,CAAR,EAAW,CAAX,EAAc,KAAd,EAAqB,CAArB,EAAwB,CAAxB,CAA7B;;AAcA,MAAMC,sBAAsB;EAC1BC,KAAK,IADqB;EAE1BC,SAAS,IAFiB;EAG1BC,OAAO,IAHmB;EAI1BC,mBAAmB,IAJO;EAK1BC,qBAAqB,IALK;EAM1BC,qBAAqB,IANK;EAO1BC,QAAQ;AAPkB,CAA5B;;AAUA,MAAMC,iBAAiB;EACrBC,SAAS,CADY;EAErBC,QAAQ,CAFa;EAGrBC,cAAc,CAHO;EAIrBC,gBAAgB;AAJK,CAAvB;;AAQA,MAAMC,iBAAiB;EACrBV,OAAO,IADc;EAErBW,iBAAiB,IAFI;EAGrBC,MAAM,IAHe;EAIrBC,oBAAoB,IAJC;EAKrBC,wBAAwB,KALH;EAMrBC,wBAAwB,KANH;EAOrBC,UAAU,KAPW;EAQrBC,oBAAoB;AARC,CAAvB;;AAWA,MAAMC,oBAAoB;EACxBC,MAAM,CADkB;EAExBC,QAAQ,CAFgB;EAGxBC,aAAa,CAHW;EAIxBC,WAAW,CAJa;EAKxBC,kBAAkB,CALM;EAMxBC,oBAAoB,CANI;EAOxBC,yBAAyB,CAPD;EAQxBC,aAAa,CARW;EASxBC,kBAAkB,CATM;EAUxBC,kBAAkB;AAVM,CAA1B;;AAaA,MAAMC,YAAY;EAChBC,gBAAgB,CADA;EAEhBC,WAAW,CAFK;EAGhBC,YAAY;AAHI,CAAlB;;AAMA,MAAMC,iBAAiB;EACrBC,MAAM,CADe;EAErBC,MAAM,CAFe;EAGrBC,UAAU,CAHW;EAIrBC,MAAM,CAJe;EAKrBC,QAAQ,CALa;EAMrBC,QAAQ,CANa;EAOrBC,SAAS,CAPY;EAQrBC,UAAU,CARW;EASrBC,WAAW,CATU;EAUrBC,WAAW,EAVU;EAWrBC,UAAU,EAXW;EAYrBC,WAAW,EAZU;EAarBC,OAAO,EAbc;EAcrBC,OAAO,EAdc;EAerBC,KAAK,EAfgB;EAgBrBC,OAAO,EAhBc;EAiBrBC,gBAAgB,EAjBK;EAkBrBC,OAAO,EAlBc;EAmBrBC,OAAO,EAnBc;EAoBrBC,QAAQ,EApBa;EAqBrBC,QAAQ,EArBa;EAsBrBC,aAAa,EAtBQ;EAuBrBC,SAAS,EAvBY;EAwBrBC,WAAW,EAxBU;EAyBrBC,QAAQ,EAzBa;EA0BrBC,QAAQ;AA1Ba,CAAvB;;AA6BA,MAAMC,2BAA2B;EAC/BC,QAAQ,QADuB;EAE/BC,QAAQ;AAFuB,CAAjC;;AAKA,MAAMC,wBAAwB;EAC5BF,QAAQ,QADoB;EAE5BG,UAAU;AAFkB,CAA9B;;AAKA,MAAMC,wBAAwB;EAC5BC,UAAU,UADkB;EAE5BC,UAAU,UAFkB;EAG5BC,WAAW,WAHiB;EAI5BC,WAAW,WAJiB;EAK5BC,MAAM;AALsB,CAA9B;;AAQA,MAAMC,sBAAsB;EAC1BC,OAAO,OADmB;EAE1BC,OAAO;AAFmB,CAA5B;;AAKA,MAAMC,iBAAiB;EACrBpD,WAAW,IADU;EAErBqD,QAAQ,IAFa;EAGrB3E,OAAO,IAHc;EAIrB4E,QAAQ,IAJa;EAKrBC,UAAU,IALW;EAMrBC,QAAQ,IANa;EAOrBC,UAAU,IAPW;EAQrBC,QAAQ,IARa;EASrBC,cAAc,KATO;EAUrBC,gBAAgB;AAVK,CAAvB;;AAaA,MAAMC,sBAAsB;EAC1BJ,UAAU,SADgB;EAE1BK,UAAU,SAFgB;EAG1BC,UAAU,SAHgB;EAI1BC,WAAW,SAJe;EAK1BC,UAAU,SALgB;EAM1BC,eAAe,SANW;EAO1BC,OAAO,SAPmB;EAQ1BC,YAAY,SARc;EAS1BC,OAAO,SATmB;EAU1BC,MAAM,SAVoB;EAW1BC,MAAM,SAXoB;EAY1BC,YAAY,SAZc;EAa1BC,aAAa,SAba;EAc1BC,iBAAiB,SAdS;EAe1BC,aAAa,SAfa;EAgB1BC,MAAM,SAhBoB;EAiB1BC,UAAU,SAjBgB;EAkB1BC,gBAAgB,SAlBU;EAmB1BC,mBAAmB;AAnBO,CAA5B;;AAsBA,MAAMC,4BAA4B;EAChCC,OAAO,CADyB;EAEhCC,QAAQ,CAFwB;EAGhCC,SAAS,CAHuB;EAIhCC,OAAO,CAJyB;EAKhC/D,WAAW;AALqB,CAAlC;;AAQA,MAAMgE,4BAA4B;EAChCC,GAAG,aAD6B;EAEhCC,GAAG,YAF6B;EAGhCC,GAAG,YAH6B;EAIhCC,GAAG,UAJ6B;EAKhCC,IAAI,OAL4B;EAMhCC,IAAI,MAN4B;EAOhCC,IAAI,UAP4B;EAQhCC,IAAI,WAR4B;EAShCC,IAAI,aAT4B;EAUhCC,IAAI,eAV4B;EAWhCC,GAAG,WAX6B;EAYhCC,GAAG,QAZ6B;EAahCC,GAAG,UAb6B;EAchCC,GAAG;AAd6B,CAAlC;;AAiBA,MAAMC,0BAA0B;EAC9BC,IAAI,WAD0B;EAE9BC,IAAI,UAF0B;EAG9BC,IAAI,SAH0B;EAI9BC,IAAI,WAJ0B;EAK9BC,IAAI;AAL0B,CAAhC;;AAQA,MAAMC,sBAAsB;EAC1BC,GAAG,UADuB;EAE1BR,GAAG;AAFuB,CAA5B;;AAKA,MAAMS,aAAa;EACjBC,SAAS,SADQ;EAEjBC,OAAO,OAFU;EAGjBC,KAAK,KAHY;EAIjBC,KAAK,KAJY;EAKjBC,KAAK,KALY;EAMjBC,MAAM,MANW;EAOjBC,KAAK,KAPY;EAQjBC,KAAK,KARY;EASjBC,KAAK,KATY;EAUjBC,KAAK;AAVY,CAAnB;;AAaA,MAAMC,WAAW;EACfV,SAAS,SADM;EAEfW,OAAO,OAFQ;EAGfC,eAAe,eAHA;EAIfC,QAAQ,QAJO;EAKfC,cAAc,cALC;EAMfC,eAAe,eANA;EAOfC,UAAU,UAPK;EAQfC,cAAc,cARC;EASfC,OAAO,OATQ;EAUfC,UAAU,UAVK;EAWfC,OAAO,OAXQ;EAYfC,SAAS;AAZM,CAAjB;;AAeA,MAAM7L,iBAAiB;EACrB8L,QAAQ,CADa;EAErBC,UAAU,CAFW;EAGrB9L,OAAO;AAHc,CAAvB;;AAMA,MAAM+L,sBAAsB;EAC1BrF,MAAM,CADoB;EAE1BsF,QAAQ,CAFkB;EAG1BC,QAAQ;AAHkB,CAA5B;;AAOA,MAAMC,MAAM;EAGVC,YAAY,CAHF;EAIVC,cAAc,CAJJ;EAKVC,YAAY,CALF;EAMVC,aAAa,CANH;EAOVC,eAAe,CAPL;EAQVC,SAAS,CARC;EASVC,oBAAoB,CATV;EAUVC,aAAa,CAVH;EAWVC,WAAW,CAXD;EAYV1P,MAAM,EAZI;EAaV2P,SAAS,EAbC;EAcVC,WAAW,EAdD;EAeVC,QAAQ,EAfE;EAgBVC,QAAQ,EAhBE;EAiBVC,SAAS,EAjBC;EAkBVC,UAAU,EAlBA;EAmBVC,UAAU,EAnBA;EAoBVC,WAAW,EApBD;EAqBVC,WAAW,EArBD;EAsBVC,QAAQ,EAtBE;EAuBVC,aAAa,EAvBH;EAwBVC,MAAM,EAxBI;EAyBVC,QAAQ,EAzBE;EA0BVC,YAAY,EA1BF;EA2BVC,cAAc,EA3BJ;EA4BVC,iBAAiB,EA5BP;EA6BVC,mBAAmB,EA7BT;EA8BVC,SAAS,EA9BC;EA+BVC,MAAM,EA/BI;EAgCVC,QAAQ,EAhCE;EAiCVC,WAAW,EAjCD;EAkCVC,SAAS,EAlCC;EAmCVC,gBAAgB,EAnCN;EAoCVC,gBAAgB,EApCN;EAqCVC,WAAW,EArCD;EAsCVC,YAAY,EAtCF;EAuCVC,SAAS,EAvCC;EAwCVC,sBAAsB,EAxCZ;EAyCVC,aAAa,EAzCH;EA0CVC,UAAU,EA1CA;EA2CVC,oBAAoB,EA3CV;EA4CVC,eAAe,EA5CL;EA6CVC,UAAU,EA7CA;EA8CVC,UAAU,EA9CA;EA+CVC,gBAAgB,EA/CN;EAgDVC,kBAAkB,EAhDR;EAiDVC,4BAA4B,EAjDlB;EAkDVC,cAAc,EAlDJ;EAmDVC,uBAAuB,EAnDb;EAoDVC,qBAAqB,EApDX;EAqDVC,mBAAmB,EArDT;EAsDVC,gBAAgB,EAtDN;EAuDVC,iBAAiB,EAvDP;EAwDVC,cAAc,EAxDJ;EAyDVC,eAAe,EAzDL;EA0DVC,eAAe,EA1DL;EA2DVC,aAAa,EA3DH;EA4DVC,mBAAmB,EA5DT;EA6DVC,iBAAiB,EA7DP;EA8DVC,oBAAoB,EA9DV;EA+DVC,kBAAkB,EA/DR;EAgEVC,aAAa,EAhEH;EAiEVC,kBAAkB,EAjER;EAkEVC,gBAAgB,EAlEN;EAmEVC,gBAAgB,EAnEN;EAoEVC,cAAc,EApEJ;EAqEVC,WAAW,EArED;EAsEVC,gBAAgB,EAtEN;EAuEVC,oBAAoB,EAvEV;EAwEVC,yBAAyB,EAxEf;EAyEVC,kBAAkB,EAzER;EA0EVC,aAAa,EA1EH;EA2EVC,WAAW,EA3ED;EA4EVC,uBAAuB,EA5Eb;EA6EVC,qBAAqB,EA7EX;EA8EVC,YAAY,EA9EF;EA+EVC,UAAU,EA/EA;EAgFVC,kBAAkB,EAhFR;EAiFVC,gBAAgB,EAjFN;EAkFVC,iBAAiB,EAlFP;EAmFVC,eAAe,EAnFL;EAqFVC,kBAAkB,EArFR;EAsFVC,uBAAuB,EAtFb;EAuFVC,4BAA4B,EAvFlB;EAwFVC,mBAAmB,EAxFT;EAyFVC,yBAAyB,EAzFf;EA0FVC,8BAA8B,EA1FpB;EA2FVC,yBAAyB,EA3Ff;EA4FVC,6BAA6B,EA5FnB;EA6FVC,0BAA0B,EA7FhB;EA8FVC,eAAe,EA9FL;EA+FVC,eAAe,GA/FL;EAgGVC,mBAAmB;AAhGT,CAAZ;;AAmGA,MAAMtR,uBAAuB;EAE3BuR,SAAS,SAFkB;EAG3BC,OAAO,OAHoB;EAI3BC,YAAY,YAJe;EAK3BC,YAAY,YALe;EAM3BC,OAAO,OANoB;EAO3BC,gBAAgB,gBAPW;EAS3BC,MAAM,MATqB;EAU3BC,oBAAoB,oBAVO;EAW3BC,gBAAgB,gBAXW;EAY3BC,cAAc,cAZa;EAa3BC,oBAAoB,oBAbO;EAc3BC,gBAAgB,gBAdW;EAe3BC,kBAAkB,kBAfS;EAgB3BC,oBAAoB,oBAhBO;EAiB3BC,iBAAiB,iBAjBU;EAkB3BpS,mBAAmB,mBAlBQ;EAmB3BqS,oBAAoB,oBAnBO;EAoB3BC,qBAAqB,qBApBM;EAqB3BC,oBAAoB,oBArBO;EAsB3BC,kBAAkB,kBAtBS;EAuB3BC,oBAAoB,oBAvBO;EAwB3BC,uBAAuB;AAxBI,CAA7B;;AA2BA,MAAMC,oBAAoB;EACxBC,eAAe,CADS;EAExBC,oBAAoB;AAFI,CAA1B;;AAKA,IAAI1f,YAAYmM,eAAe+L,QAA/B;;AAEA,SAASnY,iBAAT,CAA2B4f,KAA3B,EAAkC;EAChC,IAAIC,OAAOC,SAAPD,CAAiBD,KAAjBC,CAAJ,EAA6B;IAC3B5f,YAAY2f,KAAZ3f;EAF8B;AA3XlC;;AAiYA,SAASO,iBAAT,GAA6B;EAC3B,OAAOP,SAAP;AAlYF;;AAwYA,SAAS0L,IAAT,CAAcoU,GAAd,EAAmB;EACjB,IAAI9f,aAAamM,eAAeC,KAAhC,EAAuC;IACrC2T,QAAQC,GAARD,CAAa,SAAQD,GAAT,EAAZC;EAFe;AAxYnB;;AA+YA,SAASxb,IAAT,CAAcub,GAAd,EAAmB;EACjB,IAAI9f,aAAamM,eAAe+L,QAAhC,EAA0C;IACxC6H,QAAQC,GAARD,CAAa,YAAWD,GAAZ,EAAZC;EAFe;AA/YnB;;AAqZA,SAASE,WAAT,CAAqBH,GAArB,EAA0B;EACxB,MAAM,IAAI3gB,KAAJ,CAAU2gB,GAAV,CAAN;AAtZF;;AAyZA,SAASI,MAAT,CAAgBC,IAAhB,EAAsBL,GAAtB,EAA2B;EACzB,IAAI,CAACK,IAAL,EAAW;IACTF,YAAYH,GAAZ;EAFuB;AAzZ3B;;AAgaA,SAASM,gBAAT,CAA0BC,GAA1B,EAA+B;EAC7B,IAAI,CAACA,GAAL,EAAU;IACR,OAAO,KAAP;EAF2B;;EAI7B,QAAQA,IAAIC,QAAZ;IACE,KAAK,OAAL;IACA,KAAK,QAAL;IACA,KAAK,MAAL;IACA,KAAK,SAAL;IACA,KAAK,MAAL;MACE,OAAO,IAAP;;IACF;MACE,OAAO,KAAP;EARJ;AApaF;;AAwbA,SAASC,sBAAT,CAAgCF,GAAhC,EAAqCG,UAAU,IAA/C,EAAqDC,UAAU,IAA/D,EAAqE;EACnE,IAAI,CAACJ,GAAL,EAAU;IACR,OAAO,IAAP;EAFiE;;EAInE,IAAI;IACF,IAAII,WAAW,OAAOJ,GAAP,KAAe,QAA9B,EAAwC;MAEtC,IAAII,QAAQC,kBAARD,IAA8BJ,IAAIM,UAAJN,CAAe,MAAfA,CAAlC,EAA0D;QACxD,MAAMO,OAAOP,IAAIQ,KAAJR,CAAU,KAAVA,CAAb;;QAGA,IAAIO,QAAQA,KAAK/f,MAAL+f,IAAe,CAA3B,EAA8B;UAC5BP,MAAO,UAASA,GAAV,EAANA;QALsD;MAFpB;;MAatC,IAAII,QAAQK,kBAAZ,EAAgC;QAC9B,IAAI;UACFT,MAAMU,mBAAmBV,GAAnB,CAANA;QADF,EAEE,OAAOld,EAAP,EAAW,CAHiB;MAbM;IADtC;;IAqBF,MAAM6d,cAAcR,UAAU,IAAIS,GAAJ,CAAQZ,GAAR,EAAaG,OAAb,CAAV,GAAkC,IAAIS,GAAJ,CAAQZ,GAAR,CAAtD;;IACA,IAAID,iBAAiBY,WAAjB,CAAJ,EAAmC;MACjC,OAAOA,WAAP;IAvBA;EAAJ,EAyBE,OAAO7d,EAAP,EAAW,CA7BsD;;EAgCnE,OAAO,IAAP;AAxdF;;AA2dA,SAAS+d,MAAT,CAAgBC,GAAhB,EAAqBC,IAArB,EAA2B1c,KAA3B,EAAkC;EAUhCmG,OAAOwW,cAAPxW,CAAsBsW,GAAtBtW,EAA2BuW,IAA3BvW,EAAiC;IAC/BnG,KAD+B;IAE/B4c,YAAY,IAFmB;IAG/BC,cAAc,IAHiB;IAI/BC,UAAU;EAJqB,CAAjC3W;EAMA,OAAOnG,KAAP;AA3eF;;AAifA,MAAM+c,gBAAiB,SAASC,oBAAT,GAAgC;EAErD,SAASD,aAAT,CAAuBxb,OAAvB,EAAgCxH,IAAhC,EAAsC;IACpC,IAAI,KAAKD,WAAL,KAAqBijB,aAAzB,EAAwC;MACtCxB,YAAY,kCAAZ;IAFkC;;IAIpC,KAAKha,OAAL,GAAeA,OAAf;IACA,KAAKxH,IAAL,GAAYA,IAAZ;EAPmD;;EASrDgjB,cAAcE,SAAdF,GAA0B,IAAItiB,KAAJ,EAA1BsiB;EACAA,cAAcjjB,WAAdijB,GAA4BA,aAA5BA;EAEA,OAAOA,aAAP;AAZoB,CAAC,EAAvB;;;;AAeA,MAAMjc,iBAAN,SAAgCic,aAAhC,CAA8C;EAC5CjjB,YAAYshB,GAAZ,EAAiBra,IAAjB,EAAuB;IACrB,MAAMqa,GAAN,EAAW,mBAAX;IACA,KAAKra,IAAL,GAAYA,IAAZ;EAH0C;;AAAA;;;;AAO9C,MAAMO,qBAAN,SAAoCyb,aAApC,CAAkD;EAChDjjB,YAAYshB,GAAZ,EAAiB8B,OAAjB,EAA0B;IACxB,MAAM9B,GAAN,EAAW,uBAAX;IACA,KAAK8B,OAAL,GAAeA,OAAf;EAH8C;;AAAA;;;;AAOlD,MAAM/b,mBAAN,SAAkC4b,aAAlC,CAAgD;EAC9CjjB,YAAYshB,GAAZ,EAAiB;IACf,MAAMA,GAAN,EAAW,qBAAX;EAF4C;;AAAA;;;;AAMhD,MAAMha,mBAAN,SAAkC2b,aAAlC,CAAgD;EAC9CjjB,YAAYshB,GAAZ,EAAiB;IACf,MAAMA,GAAN,EAAW,qBAAX;EAF4C;;AAAA;;;;AAMhD,MAAM/Z,2BAAN,SAA0C0b,aAA1C,CAAwD;EACtDjjB,YAAYshB,GAAZ,EAAiB+B,MAAjB,EAAyB;IACvB,MAAM/B,GAAN,EAAW,6BAAX;IACA,KAAK+B,MAAL,GAAcA,MAAd;EAHoD;;AAAA;;;;AAUxD,MAAMC,WAAN,SAA0BL,aAA1B,CAAwC;EACtCjjB,YAAYshB,GAAZ,EAAiB;IACf,MAAMA,GAAN,EAAW,aAAX;EAFoC;;AAAA;;;;AASxC,MAAMhZ,cAAN,SAA6B2a,aAA7B,CAA2C;EACzCjjB,YAAYshB,GAAZ,EAAiB;IACf,MAAMA,GAAN,EAAW,gBAAX;EAFuC;;AAAA;;;;AAM3C,SAASiC,aAAT,CAAuB/a,KAAvB,EAA8B;EAC5B,IACE,OAAOA,KAAP,KAAiB,QAAjB,IACAA,UAAU,IADV,IAEAA,MAAMnG,MAANmG,KAAiBgb,SAHnB,EAIE;IACA/B,YAAY,oCAAZ;EAN0B;;EAQ5B,MAAMpf,SAASmG,MAAMnG,MAArB;EACA,MAAMohB,qBAAqB,IAA3B;;EACA,IAAIphB,SAASohB,kBAAb,EAAiC;IAC/B,OAAOC,OAAOC,YAAPD,CAAoBE,KAApBF,CAA0B,IAA1BA,EAAgClb,KAAhCkb,CAAP;EAX0B;;EAa5B,MAAMG,SAAS,EAAf;;EACA,KAAK,IAAI5gB,IAAI,CAAb,EAAgBA,IAAIZ,MAApB,EAA4BY,KAAKwgB,kBAAjC,EAAqD;IACnD,MAAMK,WAAWxd,KAAKyd,GAALzd,CAASrD,IAAIwgB,kBAAbnd,EAAiCjE,MAAjCiE,CAAjB;IACA,MAAM0d,QAAQxb,MAAMyb,QAANzb,CAAevF,CAAfuF,EAAkBsb,QAAlBtb,CAAd;IACAqb,OAAOzhB,IAAPyhB,CAAYH,OAAOC,YAAPD,CAAoBE,KAApBF,CAA0B,IAA1BA,EAAgCM,KAAhCN,CAAZG;EAjB0B;;EAmB5B,OAAOA,OAAOvhB,IAAPuhB,CAAY,EAAZA,CAAP;AAtkBF;;AAykBA,SAASK,aAAT,CAAuBC,GAAvB,EAA4B;EAC1B,IAAI,OAAOA,GAAP,KAAe,QAAnB,EAA6B;IAC3B1C,YAAY,oCAAZ;EAFwB;;EAI1B,MAAMpf,SAAS8hB,IAAI9hB,MAAnB;EACA,MAAMmG,QAAQ,IAAInH,UAAJ,CAAegB,MAAf,CAAd;;EACA,KAAK,IAAIY,IAAI,CAAb,EAAgBA,IAAIZ,MAApB,EAA4B,EAAEY,CAA9B,EAAiC;IAC/BuF,MAAMvF,CAAN,IAAWkhB,IAAIC,UAAJD,CAAelhB,CAAfkhB,IAAoB,IAA/B3b;EAPwB;;EAS1B,OAAOA,KAAP;AAllBF;;AA2lBA,SAASpC,eAAT,CAAyBie,GAAzB,EAA8B;EAC5B,IAAIA,IAAIhiB,MAAJgiB,KAAeb,SAAnB,EAA8B;IAC5B,OAAOa,IAAIhiB,MAAX;EAF0B;;EAI5B,IAAIgiB,IAAI5b,UAAJ4b,KAAmBb,SAAvB,EAAkC;IAChC,OAAOa,IAAI5b,UAAX;EAL0B;;EAO5BgZ,YAAY,sCAAZ;AAlmBF;;AA2mBA,SAAS3b,aAAT,CAAuBue,GAAvB,EAA4B;EAC1B,MAAMhiB,SAASgiB,IAAIhiB,MAAnB;;EAEA,IAAIA,WAAW,CAAXA,IAAgBgiB,IAAI,CAAJ,aAAkBhjB,UAAtC,EAAkD;IAChD,OAAOgjB,IAAI,CAAJ,CAAP;EAJwB;;EAM1B,IAAIC,eAAe,CAAnB;;EACA,KAAK,IAAIrhB,IAAI,CAAb,EAAgBA,IAAIZ,MAApB,EAA4BY,GAA5B,EAAiC;IAC/BqhB,gBAAgBle,gBAAgBie,IAAIphB,CAAJ,CAAhB,CAAhBqhB;EARwB;;EAU1B,IAAIC,MAAM,CAAV;EACA,MAAMpjB,OAAO,IAAIE,UAAJ,CAAeijB,YAAf,CAAb;;EACA,KAAK,IAAIrhB,IAAI,CAAb,EAAgBA,IAAIZ,MAApB,EAA4BY,GAA5B,EAAiC;IAC/B,IAAIuhB,OAAOH,IAAIphB,CAAJ,CAAX;;IACA,IAAI,EAAEuhB,gBAAgBnjB,UAAlB,CAAJ,EAAmC;MACjC,IAAI,OAAOmjB,IAAP,KAAgB,QAApB,EAA8B;QAC5BA,OAAON,cAAcM,IAAd,CAAPA;MADF,OAEO;QACLA,OAAO,IAAInjB,UAAJ,CAAemjB,IAAf,CAAPA;MAJ+B;IAFJ;;IAS/B,MAAMC,aAAaD,KAAK/b,UAAxB;IACAtH,KAAKujB,GAALvjB,CAASqjB,IAATrjB,EAAeojB,GAAfpjB;IACAojB,OAAOE,UAAPF;EAvBwB;;EAyB1B,OAAOpjB,IAAP;AApoBF;;AAuoBA,SAASwjB,QAAT,CAAkBze,KAAlB,EAAyB;EAUvB,OAAOwd,OAAOC,YAAPD,CACJxd,SAAS,EAATA,GAAe,IADXwd,EAEJxd,SAAS,EAATA,GAAe,IAFXwd,EAGJxd,SAAS,CAATA,GAAc,IAHVwd,EAILxd,QAAQ,IAJHwd,CAAP;AAjpBF;;AAypBA,SAASkB,UAAT,CAAoBjC,GAApB,EAAyB;EACvB,OAAOtW,OAAOwY,IAAPxY,CAAYsW,GAAZtW,EAAiBhK,MAAxB;AA1pBF;;AA+pBA,SAASyiB,aAAT,CAAuBC,GAAvB,EAA4B;EAC1B,MAAMpC,MAAMtW,OAAOC,MAAPD,CAAc,IAAdA,CAAZ;;EACA,WAAW,CAACM,GAAD,EAAMzG,KAAN,CAAX,IAA2B6e,GAA3B,EAAgC;IAC9BpC,IAAIhW,GAAJ,IAAWzG,KAAXyc;EAHwB;;EAK1B,OAAOA,GAAP;AApqBF;;AAwqBA,SAASqC,cAAT,GAA0B;EACxB,MAAMC,UAAU,IAAI5jB,UAAJ,CAAe,CAAf,CAAhB;EACA4jB,QAAQ,CAAR,IAAa,CAAbA;EACA,MAAMC,SAAS,IAAIC,WAAJ,CAAgBF,QAAQG,MAAxB,EAAgC,CAAhC,EAAmC,CAAnC,CAAf;EACA,OAAOF,OAAO,CAAP,MAAc,CAArB;AA5qBF;;AAgrBA,SAASjd,eAAT,GAA2B;EACzB,IAAI;IACF,IAAIod,QAAJ,CAAa,EAAb;IACA,OAAO,IAAP;EAFF,EAGE,OAAO5e,CAAP,EAAU;IACV,OAAO,KAAP;EALuB;AAhrB3B;;AAyrBA,MAAM6e,WAAN,CAAkB;EAChB,WAAWN,cAAX,GAA4B;IAC1B,OAAOtC,OAAO,IAAP,EAAa,gBAAb,EAA+BsC,gBAA/B,CAAP;EAFc;;EAKhB,WAAW/c,eAAX,GAA6B;IAC3B,OAAOya,OAAO,IAAP,EAAa,iBAAb,EAAgCza,iBAAhC,CAAP;EANc;;EAShB,WAAWsd,0BAAX,GAAwC;IACtC,OAAO7C,OACL,IADK,EAEL,4BAFK,EAGL,OAAO8C,eAAP,KAA2B,WAHtB,CAAP;EAVc;;AAAA;;;AAkBlB,MAAMC,aAAa,CAAC,GAAGzZ,MAAM,GAAN,EAAW6Y,IAAX7Y,EAAJ,EAAuB+Y,GAAvB,CAA2BW,KAC5CA,EAAEhe,QAAFge,CAAW,EAAXA,EAAeC,QAAfD,CAAwB,CAAxBA,EAA2B,GAA3BA,CADiB,CAAnB;;AAIA,MAAME,IAAN,CAAW;EACT,OAAOC,YAAP,CAAoBC,CAApB,EAAuBC,CAAvB,EAA0Bra,CAA1B,EAA6B;IAC3B,OAAQ,IAAG+Z,WAAWK,CAAX,CAAJ,GAAoBL,WAAWM,CAAX,CAApB,GAAoCN,WAAW/Z,CAAX,CAApC,EAAP;EAFO;;EAQT,OAAOsa,WAAP,CAAmBvL,SAAnB,EAA8BwL,MAA9B,EAAsC;IACpC,IAAIC,IAAJ;;IACA,IAAIzL,UAAU,CAAV,CAAJ,EAAkB;MAChB,IAAIA,UAAU,CAAV,IAAe,CAAnB,EAAsB;QACpByL,OAAOD,OAAO,CAAP,CAAPC;QACAD,OAAO,CAAP,IAAYA,OAAO,CAAP,CAAZA;QACAA,OAAO,CAAP,IAAYC,IAAZD;MAJc;;MAMhBA,OAAO,CAAP,KAAaxL,UAAU,CAAV,CAAbwL;MACAA,OAAO,CAAP,KAAaxL,UAAU,CAAV,CAAbwL;;MAEA,IAAIxL,UAAU,CAAV,IAAe,CAAnB,EAAsB;QACpByL,OAAOD,OAAO,CAAP,CAAPC;QACAD,OAAO,CAAP,IAAYA,OAAO,CAAP,CAAZA;QACAA,OAAO,CAAP,IAAYC,IAAZD;MAZc;;MAchBA,OAAO,CAAP,KAAaxL,UAAU,CAAV,CAAbwL;MACAA,OAAO,CAAP,KAAaxL,UAAU,CAAV,CAAbwL;IAfF,OAgBO;MACLC,OAAOD,OAAO,CAAP,CAAPC;MACAD,OAAO,CAAP,IAAYA,OAAO,CAAP,CAAZA;MACAA,OAAO,CAAP,IAAYC,IAAZD;MACAC,OAAOD,OAAO,CAAP,CAAPC;MACAD,OAAO,CAAP,IAAYA,OAAO,CAAP,CAAZA;MACAA,OAAO,CAAP,IAAYC,IAAZD;;MAEA,IAAIxL,UAAU,CAAV,IAAe,CAAnB,EAAsB;QACpByL,OAAOD,OAAO,CAAP,CAAPC;QACAD,OAAO,CAAP,IAAYA,OAAO,CAAP,CAAZA;QACAA,OAAO,CAAP,IAAYC,IAAZD;MAXG;;MAaLA,OAAO,CAAP,KAAaxL,UAAU,CAAV,CAAbwL;MACAA,OAAO,CAAP,KAAaxL,UAAU,CAAV,CAAbwL;;MAEA,IAAIxL,UAAU,CAAV,IAAe,CAAnB,EAAsB;QACpByL,OAAOD,OAAO,CAAP,CAAPC;QACAD,OAAO,CAAP,IAAYA,OAAO,CAAP,CAAZA;QACAA,OAAO,CAAP,IAAYC,IAAZD;MAnBG;;MAqBLA,OAAO,CAAP,KAAaxL,UAAU,CAAV,CAAbwL;MACAA,OAAO,CAAP,KAAaxL,UAAU,CAAV,CAAbwL;IAxCkC;;IA0CpCA,OAAO,CAAP,KAAaxL,UAAU,CAAV,CAAbwL;IACAA,OAAO,CAAP,KAAaxL,UAAU,CAAV,CAAbwL;IACAA,OAAO,CAAP,KAAaxL,UAAU,CAAV,CAAbwL;IACAA,OAAO,CAAP,KAAaxL,UAAU,CAAV,CAAbwL;EArDO;;EAyDT,OAAOxL,SAAP,CAAiB0L,EAAjB,EAAqBC,EAArB,EAAyB;IACvB,OAAO,CACLD,GAAG,CAAH,IAAQC,GAAG,CAAH,CAARD,GAAgBA,GAAG,CAAH,IAAQC,GAAG,CAAH,CADnB,EAELD,GAAG,CAAH,IAAQC,GAAG,CAAH,CAARD,GAAgBA,GAAG,CAAH,IAAQC,GAAG,CAAH,CAFnB,EAGLD,GAAG,CAAH,IAAQC,GAAG,CAAH,CAARD,GAAgBA,GAAG,CAAH,IAAQC,GAAG,CAAH,CAHnB,EAILD,GAAG,CAAH,IAAQC,GAAG,CAAH,CAARD,GAAgBA,GAAG,CAAH,IAAQC,GAAG,CAAH,CAJnB,EAKLD,GAAG,CAAH,IAAQC,GAAG,CAAH,CAARD,GAAgBA,GAAG,CAAH,IAAQC,GAAG,CAAH,CAAxBD,GAAgCA,GAAG,CAAH,CAL3B,EAMLA,GAAG,CAAH,IAAQC,GAAG,CAAH,CAARD,GAAgBA,GAAG,CAAH,IAAQC,GAAG,CAAH,CAAxBD,GAAgCA,GAAG,CAAH,CAN3B,CAAP;EA1DO;;EAqET,OAAOE,cAAP,CAAsBC,CAAtB,EAAyBC,CAAzB,EAA4B;IAC1B,MAAMC,KAAKF,EAAE,CAAF,IAAOC,EAAE,CAAF,CAAPD,GAAcA,EAAE,CAAF,IAAOC,EAAE,CAAF,CAArBD,GAA4BC,EAAE,CAAF,CAAvC;IACA,MAAME,KAAKH,EAAE,CAAF,IAAOC,EAAE,CAAF,CAAPD,GAAcA,EAAE,CAAF,IAAOC,EAAE,CAAF,CAArBD,GAA4BC,EAAE,CAAF,CAAvC;IACA,OAAO,CAACC,EAAD,EAAKC,EAAL,CAAP;EAxEO;;EA2ET,OAAOC,qBAAP,CAA6BJ,CAA7B,EAAgCC,CAAhC,EAAmC;IACjC,MAAMI,IAAIJ,EAAE,CAAF,IAAOA,EAAE,CAAF,CAAPA,GAAcA,EAAE,CAAF,IAAOA,EAAE,CAAF,CAA/B;IACA,MAAMC,KAAM,GAAE,CAAF,IAAOD,EAAE,CAAF,CAAPD,GAAcA,EAAE,CAAF,IAAOC,EAAE,CAAF,CAArBD,GAA4BC,EAAE,CAAF,IAAOA,EAAE,CAAF,CAAnCD,GAA0CC,EAAE,CAAF,IAAOA,EAAE,CAAF,CAAjD,IAAyDI,CAArE;IACA,MAAMF,KAAM,EAACH,EAAE,CAAF,CAAD,GAAQC,EAAE,CAAF,CAAR,GAAeD,EAAE,CAAF,IAAOC,EAAE,CAAF,CAAtB,GAA6BA,EAAE,CAAF,IAAOA,EAAE,CAAF,CAApC,GAA2CA,EAAE,CAAF,IAAOA,EAAE,CAAF,CAAlD,IAA0DI,CAAtE;IACA,OAAO,CAACH,EAAD,EAAKC,EAAL,CAAP;EA/EO;;EAoFT,OAAOG,0BAAP,CAAkCd,CAAlC,EAAqCS,CAArC,EAAwC;IACtC,MAAMM,KAAKjB,KAAKS,cAALT,CAAoBE,CAApBF,EAAuBW,CAAvBX,CAAX;IACA,MAAMkB,KAAKlB,KAAKS,cAALT,CAAoBE,EAAEiB,KAAFjB,CAAQ,CAARA,EAAW,CAAXA,CAApBF,EAAmCW,CAAnCX,CAAX;IACA,MAAMoB,KAAKpB,KAAKS,cAALT,CAAoB,CAACE,EAAE,CAAF,CAAD,EAAOA,EAAE,CAAF,CAAP,CAApBF,EAAkCW,CAAlCX,CAAX;IACA,MAAMqB,KAAKrB,KAAKS,cAALT,CAAoB,CAACE,EAAE,CAAF,CAAD,EAAOA,EAAE,CAAF,CAAP,CAApBF,EAAkCW,CAAlCX,CAAX;IACA,OAAO,CACLtf,KAAKyd,GAALzd,CAASugB,GAAG,CAAH,CAATvgB,EAAgBwgB,GAAG,CAAH,CAAhBxgB,EAAuB0gB,GAAG,CAAH,CAAvB1gB,EAA8B2gB,GAAG,CAAH,CAA9B3gB,CADK,EAELA,KAAKyd,GAALzd,CAASugB,GAAG,CAAH,CAATvgB,EAAgBwgB,GAAG,CAAH,CAAhBxgB,EAAuB0gB,GAAG,CAAH,CAAvB1gB,EAA8B2gB,GAAG,CAAH,CAA9B3gB,CAFK,EAGLA,KAAKC,GAALD,CAASugB,GAAG,CAAH,CAATvgB,EAAgBwgB,GAAG,CAAH,CAAhBxgB,EAAuB0gB,GAAG,CAAH,CAAvB1gB,EAA8B2gB,GAAG,CAAH,CAA9B3gB,CAHK,EAILA,KAAKC,GAALD,CAASugB,GAAG,CAAH,CAATvgB,EAAgBwgB,GAAG,CAAH,CAAhBxgB,EAAuB0gB,GAAG,CAAH,CAAvB1gB,EAA8B2gB,GAAG,CAAH,CAA9B3gB,CAJK,CAAP;EAzFO;;EAiGT,OAAO4gB,gBAAP,CAAwBX,CAAxB,EAA2B;IACzB,MAAMI,IAAIJ,EAAE,CAAF,IAAOA,EAAE,CAAF,CAAPA,GAAcA,EAAE,CAAF,IAAOA,EAAE,CAAF,CAA/B;IACA,OAAO,CACLA,EAAE,CAAF,IAAOI,CADF,EAEL,CAACJ,EAAE,CAAF,CAAD,GAAQI,CAFH,EAGL,CAACJ,EAAE,CAAF,CAAD,GAAQI,CAHH,EAILJ,EAAE,CAAF,IAAOI,CAJF,EAKJ,GAAE,CAAF,IAAOJ,EAAE,CAAF,CAAPA,GAAcA,EAAE,CAAF,IAAOA,EAAE,CAAF,CAArB,IAA6BI,CALzB,EAMJ,GAAE,CAAF,IAAOJ,EAAE,CAAF,CAAPA,GAAcA,EAAE,CAAF,IAAOA,EAAE,CAAF,CAArB,IAA6BI,CANzB,CAAP;EAnGO;;EAmHT,OAAOQ,gBAAP,CAAwBZ,CAAxB,EAA2Ba,CAA3B,EAA8B;IAC5B,OAAO,CACLb,EAAE,CAAF,IAAOa,EAAE,CAAF,CAAPb,GAAcA,EAAE,CAAF,IAAOa,EAAE,CAAF,CAArBb,GAA4BA,EAAE,CAAF,IAAOa,EAAE,CAAF,CAD9B,EAELb,EAAE,CAAF,IAAOa,EAAE,CAAF,CAAPb,GAAcA,EAAE,CAAF,IAAOa,EAAE,CAAF,CAArBb,GAA4BA,EAAE,CAAF,IAAOa,EAAE,CAAF,CAF9B,EAGLb,EAAE,CAAF,IAAOa,EAAE,CAAF,CAAPb,GAAcA,EAAE,CAAF,IAAOa,EAAE,CAAF,CAArBb,GAA4BA,EAAE,CAAF,IAAOa,EAAE,CAAF,CAH9B,CAAP;EApHO;;EA8HT,OAAOC,6BAAP,CAAqCd,CAArC,EAAwC;IACtC,MAAMe,YAAY,CAACf,EAAE,CAAF,CAAD,EAAOA,EAAE,CAAF,CAAP,EAAaA,EAAE,CAAF,CAAb,EAAmBA,EAAE,CAAF,CAAnB,CAAlB;IAGA,MAAM9a,IAAI8a,EAAE,CAAF,IAAOe,UAAU,CAAV,CAAPf,GAAsBA,EAAE,CAAF,IAAOe,UAAU,CAAV,CAAvC;IACA,MAAM5b,IAAI6a,EAAE,CAAF,IAAOe,UAAU,CAAV,CAAPf,GAAsBA,EAAE,CAAF,IAAOe,UAAU,CAAV,CAAvC;IACA,MAAMC,IAAIhB,EAAE,CAAF,IAAOe,UAAU,CAAV,CAAPf,GAAsBA,EAAE,CAAF,IAAOe,UAAU,CAAV,CAAvC;IACA,MAAMX,IAAIJ,EAAE,CAAF,IAAOe,UAAU,CAAV,CAAPf,GAAsBA,EAAE,CAAF,IAAOe,UAAU,CAAV,CAAvC;IAGA,MAAME,QAAS,KAAIb,CAAJ,IAAS,CAAxB;IACA,MAAMc,SAASnhB,KAAKohB,IAALphB,CAAW,KAAIqgB,CAAJ,KAAU,CAAV,GAAc,KAAKlb,IAAIkb,CAAJlb,GAAQ8b,IAAI7b,CAAjB,CAAzBpF,IAAgD,CAA/D;IACA,MAAMqhB,KAAKH,QAAQC,MAARD,IAAkB,CAA7B;IACA,MAAMI,KAAKJ,QAAQC,MAARD,IAAkB,CAA7B;IAGA,OAAO,CAAClhB,KAAKohB,IAALphB,CAAUqhB,EAAVrhB,CAAD,EAAgBA,KAAKohB,IAALphB,CAAUshB,EAAVthB,CAAhB,CAAP;EA9IO;;EAqJT,OAAOuhB,aAAP,CAAqBC,IAArB,EAA2B;IACzB,MAAMhC,IAAIgC,KAAKf,KAALe,CAAW,CAAXA,CAAV;;IACA,IAAIA,KAAK,CAAL,IAAUA,KAAK,CAAL,CAAd,EAAuB;MACrBhC,EAAE,CAAF,IAAOgC,KAAK,CAAL,CAAPhC;MACAA,EAAE,CAAF,IAAOgC,KAAK,CAAL,CAAPhC;IAJuB;;IAMzB,IAAIgC,KAAK,CAAL,IAAUA,KAAK,CAAL,CAAd,EAAuB;MACrBhC,EAAE,CAAF,IAAOgC,KAAK,CAAL,CAAPhC;MACAA,EAAE,CAAF,IAAOgC,KAAK,CAAL,CAAPhC;IARuB;;IAUzB,OAAOA,CAAP;EA/JO;;EAqKT,OAAOiC,SAAP,CAAiBC,KAAjB,EAAwBC,KAAxB,EAA+B;IAC7B,MAAMC,OAAO5hB,KAAKC,GAALD,CACXA,KAAKyd,GAALzd,CAAS0hB,MAAM,CAAN,CAAT1hB,EAAmB0hB,MAAM,CAAN,CAAnB1hB,CADWA,EAEXA,KAAKyd,GAALzd,CAAS2hB,MAAM,CAAN,CAAT3hB,EAAmB2hB,MAAM,CAAN,CAAnB3hB,CAFWA,CAAb;IAIA,MAAM6hB,QAAQ7hB,KAAKyd,GAALzd,CACZA,KAAKC,GAALD,CAAS0hB,MAAM,CAAN,CAAT1hB,EAAmB0hB,MAAM,CAAN,CAAnB1hB,CADYA,EAEZA,KAAKC,GAALD,CAAS2hB,MAAM,CAAN,CAAT3hB,EAAmB2hB,MAAM,CAAN,CAAnB3hB,CAFYA,CAAd;;IAIA,IAAI4hB,OAAOC,KAAX,EAAkB;MAChB,OAAO,IAAP;IAV2B;;IAY7B,MAAMC,OAAO9hB,KAAKC,GAALD,CACXA,KAAKyd,GAALzd,CAAS0hB,MAAM,CAAN,CAAT1hB,EAAmB0hB,MAAM,CAAN,CAAnB1hB,CADWA,EAEXA,KAAKyd,GAALzd,CAAS2hB,MAAM,CAAN,CAAT3hB,EAAmB2hB,MAAM,CAAN,CAAnB3hB,CAFWA,CAAb;IAIA,MAAM+hB,QAAQ/hB,KAAKyd,GAALzd,CACZA,KAAKC,GAALD,CAAS0hB,MAAM,CAAN,CAAT1hB,EAAmB0hB,MAAM,CAAN,CAAnB1hB,CADYA,EAEZA,KAAKC,GAALD,CAAS2hB,MAAM,CAAN,CAAT3hB,EAAmB2hB,MAAM,CAAN,CAAnB3hB,CAFYA,CAAd;;IAIA,IAAI8hB,OAAOC,KAAX,EAAkB;MAChB,OAAO,IAAP;IArB2B;;IAwB7B,OAAO,CAACH,IAAD,EAAOE,IAAP,EAAaD,KAAb,EAAoBE,KAApB,CAAP;EA7LO;;EAiMT,OAAOC,iBAAP,CAAyBC,EAAzB,EAA6BC,EAA7B,EAAiCC,EAAjC,EAAqCC,EAArC,EAAyCC,EAAzC,EAA6CC,EAA7C,EAAiDC,EAAjD,EAAqDC,EAArD,EAAyD;IACvD,MAAMC,UAAU,EAAhB;IAAA,MACEC,SAAS,CAAC,EAAD,EAAK,EAAL,CADX;IAEA,IAAIvd,CAAJ,EAAOC,CAAP,EAAU6b,CAAV,EAAa0B,CAAb,EAAgBC,EAAhB,EAAoBC,EAApB,EAAwBC,IAAxB,EAA8BC,QAA9B;;IACA,KAAK,IAAIpmB,IAAI,CAAb,EAAgBA,IAAI,CAApB,EAAuB,EAAEA,CAAzB,EAA4B;MAC1B,IAAIA,MAAM,CAAV,EAAa;QACXyI,IAAI,IAAI6c,EAAJ,GAAS,KAAKE,EAAd,GAAmB,IAAIE,EAA3Bjd;QACAD,IAAI,CAAC,CAAD,GAAK8c,EAAL,GAAU,IAAIE,EAAd,GAAmB,IAAIE,EAAvB,GAA4B,IAAIE,EAApCpd;QACA8b,IAAI,IAAIkB,EAAJ,GAAS,IAAIF,EAAjBhB;MAHF,OAIO;QACL7b,IAAI,IAAI8c,EAAJ,GAAS,KAAKE,EAAd,GAAmB,IAAIE,EAA3Bld;QACAD,IAAI,CAAC,CAAD,GAAK+c,EAAL,GAAU,IAAIE,EAAd,GAAmB,IAAIE,EAAvB,GAA4B,IAAIE,EAApCrd;QACA8b,IAAI,IAAImB,EAAJ,GAAS,IAAIF,EAAjBjB;MARwB;;MAU1B,IAAIjhB,KAAKgjB,GAALhjB,CAASmF,CAATnF,IAAc,KAAlB,EAAyB;QACvB,IAAIA,KAAKgjB,GAALhjB,CAASoF,CAATpF,IAAc,KAAlB,EAAyB;UACvB;QAFqB;;QAIvB2iB,IAAI,CAAC1B,CAAD,GAAK7b,CAATud;;QACA,IAAI,IAAIA,CAAJ,IAASA,IAAI,CAAjB,EAAoB;UAClBF,QAAQ3mB,IAAR2mB,CAAaE,CAAbF;QANqB;;QAQvB;MAlBwB;;MAoB1BK,OAAO1d,IAAIA,CAAJA,GAAQ,IAAI6b,CAAJ,GAAQ9b,CAAvB2d;MACAC,WAAW/iB,KAAKohB,IAALphB,CAAU8iB,IAAV9iB,CAAX+iB;;MACA,IAAID,OAAO,CAAX,EAAc;QACZ;MAvBwB;;MAyB1BF,KAAM,EAACxd,CAAD,GAAK2d,QAAL,KAAkB,IAAI5d,CAAtB,CAANyd;;MACA,IAAI,IAAIA,EAAJ,IAAUA,KAAK,CAAnB,EAAsB;QACpBH,QAAQ3mB,IAAR2mB,CAAaG,EAAbH;MA3BwB;;MA6B1BI,KAAM,EAACzd,CAAD,GAAK2d,QAAL,KAAkB,IAAI5d,CAAtB,CAAN0d;;MACA,IAAI,IAAIA,EAAJ,IAAUA,KAAK,CAAnB,EAAsB;QACpBJ,QAAQ3mB,IAAR2mB,CAAaI,EAAbJ;MA/BwB;IAJ2B;;IAuCvD,IAAIQ,IAAIR,QAAQ1mB,MAAhB;IAAA,IACEmnB,EADF;IAEA,MAAMC,OAAOF,CAAb;;IACA,OAAOA,GAAP,EAAY;MACVN,IAAIF,QAAQQ,CAAR,CAAJN;MACAO,KAAK,IAAIP,CAATO;MACAR,OAAO,CAAP,EAAUO,CAAVP,IACEQ,KAAKA,EAALA,GAAUA,EAAVA,GAAejB,EAAfiB,GACA,IAAIA,EAAJ,GAASA,EAAT,GAAcP,CAAd,GAAkBR,EADlBe,GAEA,IAAIA,EAAJ,GAASP,CAAT,GAAaA,CAAb,GAAiBN,EAFjBa,GAGAP,IAAIA,CAAJA,GAAQA,CAARA,GAAYJ,EAJdG;MAKAA,OAAO,CAAP,EAAUO,CAAVP,IACEQ,KAAKA,EAALA,GAAUA,EAAVA,GAAehB,EAAfgB,GACA,IAAIA,EAAJ,GAASA,EAAT,GAAcP,CAAd,GAAkBP,EADlBc,GAEA,IAAIA,EAAJ,GAASP,CAAT,GAAaA,CAAb,GAAiBL,EAFjBY,GAGAP,IAAIA,CAAJA,GAAQA,CAARA,GAAYH,EAJdE;IAlDqD;;IAyDvDA,OAAO,CAAP,EAAUS,IAAVT,IAAkBT,EAAlBS;IACAA,OAAO,CAAP,EAAUS,IAAVT,IAAkBR,EAAlBQ;IACAA,OAAO,CAAP,EAAUS,OAAO,CAAjBT,IAAsBH,EAAtBG;IACAA,OAAO,CAAP,EAAUS,OAAO,CAAjBT,IAAsBF,EAAtBE;IACAA,OAAO,CAAP,EAAU3mB,MAAV2mB,GAAmBA,OAAO,CAAP,EAAU3mB,MAAV2mB,GAAmBS,OAAO,CAA7CT;IAEA,OAAO,CACL1iB,KAAKyd,GAALzd,CAAS,GAAG0iB,OAAO,CAAP,CAAZ1iB,CADK,EAELA,KAAKyd,GAALzd,CAAS,GAAG0iB,OAAO,CAAP,CAAZ1iB,CAFK,EAGLA,KAAKC,GAALD,CAAS,GAAG0iB,OAAO,CAAP,CAAZ1iB,CAHK,EAILA,KAAKC,GAALD,CAAS,GAAG0iB,OAAO,CAAP,CAAZ1iB,CAJK,CAAP;EAhQO;;AAAA;;;AAyQX,MAAMojB,0BAA0B,CAC9B,CAD8B,EAC3B,CAD2B,EACxB,CADwB,EACrB,CADqB,EAClB,CADkB,EACf,CADe,EACZ,CADY,EACT,CADS,EACN,CADM,EACH,CADG,EACA,CADA,EACG,CADH,EACM,CADN,EACS,CADT,EACY,CADZ,EACe,CADf,EACkB,CADlB,EACqB,CADrB,EACwB,CADxB,EAC2B,CAD3B,EAC8B,CAD9B,EACiC,CADjC,EACoC,CADpC,EACuC,CADvC,EAC0C,KAD1C,EAE9B,KAF8B,EAEvB,KAFuB,EAEhB,KAFgB,EAET,KAFS,EAEF,KAFE,EAEK,KAFL,EAEY,KAFZ,EAEmB,CAFnB,EAEsB,CAFtB,EAEyB,CAFzB,EAE4B,CAF5B,EAE+B,CAF/B,EAEkC,CAFlC,EAEqC,CAFrC,EAEwC,CAFxC,EAE2C,CAF3C,EAE8C,CAF9C,EAG9B,CAH8B,EAG3B,CAH2B,EAGxB,CAHwB,EAGrB,CAHqB,EAGlB,CAHkB,EAGf,CAHe,EAGZ,CAHY,EAGT,CAHS,EAGN,CAHM,EAGH,CAHG,EAGA,CAHA,EAGG,CAHH,EAGM,CAHN,EAGS,CAHT,EAGY,CAHZ,EAGe,CAHf,EAGkB,CAHlB,EAGqB,CAHrB,EAGwB,CAHxB,EAG2B,CAH3B,EAG8B,CAH9B,EAGiC,CAHjC,EAGoC,CAHpC,EAGuC,CAHvC,EAG0C,CAH1C,EAG6C,CAH7C,EAI9B,CAJ8B,EAI3B,CAJ2B,EAIxB,CAJwB,EAIrB,CAJqB,EAIlB,CAJkB,EAIf,CAJe,EAIZ,CAJY,EAIT,CAJS,EAIN,CAJM,EAIH,CAJG,EAIA,CAJA,EAIG,CAJH,EAIM,CAJN,EAIS,CAJT,EAIY,CAJZ,EAIe,CAJf,EAIkB,CAJlB,EAIqB,CAJrB,EAIwB,CAJxB,EAI2B,CAJ3B,EAI8B,CAJ9B,EAIiC,CAJjC,EAIoC,CAJpC,EAIuC,CAJvC,EAI0C,CAJ1C,EAI6C,CAJ7C,EAK9B,CAL8B,EAK3B,CAL2B,EAKxB,CALwB,EAKrB,CALqB,EAKlB,CALkB,EAKf,CALe,EAKZ,CALY,EAKT,CALS,EAKN,CALM,EAKH,CALG,EAKA,CALA,EAKG,CALH,EAKM,CALN,EAKS,CALT,EAKY,CALZ,EAKe,CALf,EAKkB,CALlB,EAKqB,CALrB,EAKwB,CALxB,EAK2B,CAL3B,EAK8B,CAL9B,EAKiC,CALjC,EAKoC,CALpC,EAKuC,CALvC,EAK0C,CAL1C,EAK6C,CAL7C,EAM9B,CAN8B,EAM3B,CAN2B,EAMxB,CANwB,EAMrB,CANqB,EAMlB,CANkB,EAMf,CANe,EAMZ,CANY,EAMT,CANS,EAMN,MANM,EAME,MANF,EAMU,MANV,EAMkB,MANlB,EAM0B,MAN1B,EAMkC,MANlC,EAM0C,KAN1C,EAO9B,MAP8B,EAOtB,MAPsB,EAOd,MAPc,EAON,MAPM,EAOE,MAPF,EAOU,MAPV,EAOkB,MAPlB,EAO0B,MAP1B,EAOkC,MAPlC,EAQ9B,MAR8B,EAQtB,MARsB,EAQd,MARc,EAQN,MARM,EAQE,MARF,EAQU,KARV,EAQiB,KARjB,EAQwB,KARxB,EAQ+B,KAR/B,EAQsC,KARtC,EAS9B,KAT8B,EASvB,KATuB,EAShB,KATgB,EAST,KATS,EASF,KATE,EASK,CATL,EASQ,MATR,CAAhC;;AAYA,SAAS9c,iBAAT,CAA2BuX,GAA3B,EAAgC;EAC9B,IAAIA,IAAI,CAAJ,KAAU,MAAd,EAAsB;IACpB,IAAIwF,QAAJ;;IACA,IAAIxF,IAAI,CAAJ,MAAW,MAAXA,IAAqBA,IAAI,CAAJ,MAAW,MAApC,EAA4C;MAC1CwF,WAAW,UAAXA;IADF,OAEO,IAAIxF,IAAI,CAAJ,MAAW,MAAXA,IAAqBA,IAAI,CAAJ,MAAW,MAApC,EAA4C;MACjDwF,WAAW,UAAXA;IADK,OAEA,IAAIxF,IAAI,CAAJ,MAAW,MAAXA,IAAqBA,IAAI,CAAJ,MAAW,MAAhCA,IAA0CA,IAAI,CAAJ,MAAW,MAAzD,EAAiE;MACtEwF,WAAW,OAAXA;IAPkB;;IAUpB,IAAIA,QAAJ,EAAc;MACZ,IAAI;QACF,MAAMC,UAAU,IAAIC,WAAJ,CAAgBF,QAAhB,EAA0B;UAAEG,OAAO;QAAT,CAA1B,CAAhB;QACA,MAAM1E,SAASlB,cAAcC,GAAd,CAAf;QACA,OAAOyF,QAAQG,MAARH,CAAexE,MAAfwE,CAAP;MAHF,EAIE,OAAOjlB,EAAP,EAAW;QACXoB,KAAM,uBAAsBpB,EAAG,IAA/B;MANU;IAVM;EADQ;;EAsB9B,MAAMkf,SAAS,EAAf;;EACA,KAAK,IAAI5gB,IAAI,CAAR,EAAWiJ,KAAKiY,IAAI9hB,MAAzB,EAAiCY,IAAIiJ,EAArC,EAAyCjJ,GAAzC,EAA8C;IAC5C,MAAMgE,OAAOyiB,wBAAwBvF,IAAIC,UAAJD,CAAelhB,CAAfkhB,CAAxB,CAAb;IACAN,OAAOzhB,IAAPyhB,CAAY5c,OAAOyc,OAAOC,YAAPD,CAAoBzc,IAApByc,CAAP,GAAmCS,IAAI6F,MAAJ7F,CAAWlhB,CAAXkhB,CAA/CN;EAzB4B;;EA2B9B,OAAOA,OAAOvhB,IAAPuhB,CAAY,EAAZA,CAAP;AA//BF;;AAkgCA,SAASoG,YAAT,CAAsB9F,GAAtB,EAA2B;EAIzB,OAAOA,IAAI+F,OAAJ/F,CAAY,eAAZA,EAA6B9B,SAAS;IAC3C,IAAIA,UAAU,IAAd,EAAoB;MAClB,OAAO,KAAP;IADF,OAEO,IAAIA,UAAU,IAAd,EAAoB;MACzB,OAAO,KAAP;IAJyC;;IAM3C,OAAQ,KAAIA,KAAL,EAAP;EANK,EAAP;AAtgCF;;AAghCA,SAAS8H,OAAT,CAAiBhG,GAAjB,EAAsB;EACpB,OAAO,iBAAiBiG,IAAjB,CAAsBjG,GAAtB,CAAP;AAjhCF;;AAohCA,SAASkG,qBAAT,CAA+BlG,GAA/B,EAAoC;EAClC,MAAMmG,MAAM,CAAC,UAAD,CAAZ;;EACA,KAAK,IAAIrnB,IAAI,CAAR,EAAWiJ,KAAKiY,IAAI9hB,MAAzB,EAAiCY,IAAIiJ,EAArC,EAAyCjJ,GAAzC,EAA8C;IAC5C,MAAMsnB,OAAOpG,IAAIC,UAAJD,CAAelhB,CAAfkhB,CAAb;IACAmG,IAAIloB,IAAJkoB,CACE5G,OAAOC,YAAPD,CAAqB6G,QAAQ,CAARA,GAAa,IAAlC7G,CADF4G,EAEE5G,OAAOC,YAAPD,CAAoB6G,OAAO,IAA3B7G,CAFF4G;EAJgC;;EASlC,OAAOA,IAAIhoB,IAAJgoB,CAAS,EAATA,CAAP;AA7hCF;;AAgiCA,SAAS/H,kBAAT,CAA4B4B,GAA5B,EAAiC;EAC/B,OAAOqG,mBAAmBC,OAAOtG,GAAP,CAAnB,CAAP;AAjiCF;;AAoiCA,SAASuG,kBAAT,CAA4BvG,GAA5B,EAAiC;EAC/B,OAAOwG,SAASC,mBAAmBzG,GAAnB,CAAT,CAAP;AAriCF;;AAwiCA,SAAS0G,aAAT,CAAuBzD,CAAvB,EAA0B;EACxB,OAAO,OAAOA,CAAP,KAAa,QAAb,IAAyBA,MAAM,IAA/B,IAAuCA,EAAE3e,UAAF2e,KAAiB5D,SAA/D;AAziCF;;AA4iCA,SAASsH,YAAT,CAAsBC,IAAtB,EAA4BC,IAA5B,EAAkC;EAChC,IAAID,KAAK1oB,MAAL0oB,KAAgBC,KAAK3oB,MAAzB,EAAiC;IAC/B,OAAO,KAAP;EAF8B;;EAIhC,KAAK,IAAIY,IAAI,CAAR,EAAWiJ,KAAK6e,KAAK1oB,MAA1B,EAAkCY,IAAIiJ,EAAtC,EAA0CjJ,GAA1C,EAA+C;IAC7C,IAAI8nB,KAAK9nB,CAAL,MAAY+nB,KAAK/nB,CAAL,CAAhB,EAAyB;MACvB,OAAO,KAAP;IAF2C;EAJf;;EAShC,OAAO,IAAP;AArjCF;;AAwjCA,SAASgoB,mBAAT,CAA6BC,OAAO,IAAIrd,IAAJ,EAApC,EAAgD;EAC9C,MAAMuX,SAAS,CACb8F,KAAKC,cAALD,GAAsBxjB,QAAtBwjB,EADa,EAEZ,MAAKE,WAALF,KAAqB,CAArB,EAAwBxjB,QAAxB,GAAmCie,QAAnC,CAA4C,CAA5C,EAA+C,GAA/C,CAFY,EAGbuF,KAAKG,UAALH,GAAkBxjB,QAAlBwjB,GAA6BvF,QAA7BuF,CAAsC,CAAtCA,EAAyC,GAAzCA,CAHa,EAIbA,KAAKI,WAALJ,GAAmBxjB,QAAnBwjB,GAA8BvF,QAA9BuF,CAAuC,CAAvCA,EAA0C,GAA1CA,CAJa,EAKbA,KAAKK,aAALL,GAAqBxjB,QAArBwjB,GAAgCvF,QAAhCuF,CAAyC,CAAzCA,EAA4C,GAA5CA,CALa,EAMbA,KAAKM,aAALN,GAAqBxjB,QAArBwjB,GAAgCvF,QAAhCuF,CAAyC,CAAzCA,EAA4C,GAA5CA,CANa,CAAf;EASA,OAAO9F,OAAO9iB,IAAP8iB,CAAY,EAAZA,CAAP;AAlkCF;;AAqlCA,SAAShlB,uBAAT,GAAmC;EACjC,MAAMqrB,aAAapf,OAAOC,MAAPD,CAAc,IAAdA,CAAnB;EACA,IAAIqf,YAAY,KAAhB;EAEArf,OAAOwW,cAAPxW,CAAsBof,UAAtBpf,EAAkC,SAAlCA,EAA6C;IAC3C/C,MAAM;MACJ,OAAOoiB,SAAP;IAFyC;;EAAA,CAA7Crf;EAKAof,WAAWnrB,OAAXmrB,GAAqB,IAAIjoB,OAAJ,CAAY,UAAUhD,OAAV,EAAmBoE,MAAnB,EAA2B;IAC1D6mB,WAAWjrB,OAAXirB,GAAqB,UAAUtqB,IAAV,EAAgB;MACnCuqB,YAAY,IAAZA;MACAlrB,QAAQW,IAAR;IAFF;;IAIAsqB,WAAW7mB,MAAX6mB,GAAoB,UAAU7nB,MAAV,EAAkB;MACpC8nB,YAAY,IAAZA;MACA9mB,OAAOhB,MAAP;IAFF;EALmB,EAArB6nB;EAUA,OAAOA,UAAP;AAxmCF;;;;;;;;ACgBA;;AAGA;;;;;;;;;;;;ACCA,MAAMhpB,WAEJ,OAAOkpB,OAAP,KAAmB,QAAnB,IACAA,UAAU,EAAVA,KAAiB,kBADjB,IAEA,CAACA,QAAQC,QAARD,CAAiBE,EAFlB,IAGA,EAAEF,QAAQC,QAARD,CAAiBG,QAAjBH,IAA6BA,QAAQI,IAArCJ,IAA6CA,QAAQI,IAARJ,KAAiB,SAAhE,CALF;;;;;;;;;;;;;;;;;;;ACLA;;AAEA,MAAMK,eAAeC,OAAO,cAAP,CAArB;;AACA,MAAMC,MAAMD,OAAO,KAAP,CAAZ;;;AAEA,MAAME,OAAQ,SAASC,WAAT,GAAuB;EACnC,IAAIC,YAAYhgB,OAAOC,MAAPD,CAAc,IAAdA,CAAhB;;EAGA,MAAM8f,IAAN,CAAW;IACTnsB,YAAYC,IAAZ,EAAkB;MAQhB,KAAKA,IAAL,GAAYA,IAAZ;IATO;;IAYT,OAAOqJ,GAAP,CAAWrJ,IAAX,EAAiB;MACf,MAAMqsB,YAAYD,UAAUpsB,IAAV,CAAlB;MAEA,OAAOqsB,YAAYA,SAAZ,GAAyBD,UAAUpsB,IAAV,IAAkB,IAAIksB,IAAJ,CAASlsB,IAAT,CAAlD;IAfO;;IAkBT,OAAOssB,WAAP,GAAqB;MACnBF,YAAYhgB,OAAOC,MAAPD,CAAc,IAAdA,CAAZggB;IAnBO;;EAAA;;EAuBX,OAAOF,IAAP;AA3BW,CAAC,EAAd;;;;AA8BA,MAAMK,MAAO,SAASC,UAAT,GAAsB;EACjC,IAAIC,WAAWrgB,OAAOC,MAAPD,CAAc,IAAdA,CAAf;;EAGA,MAAMmgB,GAAN,CAAU;IACRxsB,YAAY2sB,GAAZ,EAAiB;MAQf,KAAKA,GAAL,GAAWA,GAAX;IATM;;IAYR,OAAOrjB,GAAP,CAAWqjB,GAAX,EAAgB;MACd,MAAMC,WAAWF,SAASC,GAAT,CAAjB;MAEA,OAAOC,WAAWA,QAAX,GAAuBF,SAASC,GAAT,IAAgB,IAAIH,GAAJ,CAAQG,GAAR,CAA9C;IAfM;;IAkBR,OAAOJ,WAAP,GAAqB;MACnBG,WAAWrgB,OAAOC,MAAPD,CAAc,IAAdA,CAAXqgB;IAnBM;;EAAA;;EAuBV,OAAOF,GAAP;AA3BU,CAAC,EAAb;;;;AA8BA,MAAMK,kBAAkB,SAASC,sBAAT,GAAkC;EACxD,OAAOD,eAAP;AADF;;AAIA,MAAMhhB,IAAN,CAAW;EACT7L,YAAYiL,OAAO,IAAnB,EAAyB;IAEvB,KAAK8hB,IAAL,GAAY1gB,OAAOC,MAAPD,CAAc,IAAdA,CAAZ;IACA,KAAKpB,IAAL,GAAYA,IAAZ;IACA,KAAK+hB,KAAL,GAAa,IAAb;IACA,KAAKC,kBAAL,GAA0B,KAA1B;IACA,KAAKC,mBAAL,GAA2BL,eAA3B;EAPO;;EAUTM,WAAWC,OAAX,EAAoB;IAClB,KAAKniB,IAAL,GAAYmiB,OAAZ;EAXO;;EAcT,IAAIC,IAAJ,GAAW;IACT,OAAOhhB,OAAOwY,IAAPxY,CAAY,KAAK0gB,IAAjB1gB,EAAuBhK,MAA9B;EAfO;;EAmBTiH,IAAIgkB,IAAJ,EAAUC,IAAV,EAAgBC,IAAhB,EAAsB;IACpB,IAAItnB,QAAQ,KAAK6mB,IAAL,CAAUO,IAAV,CAAZ;;IACA,IAAIpnB,UAAUsd,SAAVtd,IAAuBqnB,SAAS/J,SAApC,EAA+C;MAQ7Ctd,QAAQ,KAAK6mB,IAAL,CAAUQ,IAAV,CAARrnB;;MACA,IAAIA,UAAUsd,SAAVtd,IAAuBsnB,SAAShK,SAApC,EAA+C;QAQ7Ctd,QAAQ,KAAK6mB,IAAL,CAAUS,IAAV,CAARtnB;MAjB2C;IAF3B;;IAsBpB,IAAIA,iBAAiBmD,GAAjBnD,IAAwB,KAAK+E,IAAjC,EAAuC;MACrC,OAAO,KAAKA,IAAL,CAAUwiB,KAAV,CAAgBvnB,KAAhB,EAAuB,KAAK+mB,kBAA5B,CAAP;IAvBkB;;IAyBpB,OAAO/mB,KAAP;EA5CO;;EAgDT,MAAMwnB,QAAN,CAAeJ,IAAf,EAAqBC,IAArB,EAA2BC,IAA3B,EAAiC;IAC/B,IAAItnB,QAAQ,KAAK6mB,IAAL,CAAUO,IAAV,CAAZ;;IACA,IAAIpnB,UAAUsd,SAAVtd,IAAuBqnB,SAAS/J,SAApC,EAA+C;MAQ7Ctd,QAAQ,KAAK6mB,IAAL,CAAUQ,IAAV,CAARrnB;;MACA,IAAIA,UAAUsd,SAAVtd,IAAuBsnB,SAAShK,SAApC,EAA+C;QAQ7Ctd,QAAQ,KAAK6mB,IAAL,CAAUS,IAAV,CAARtnB;MAjB2C;IAFhB;;IAsB/B,IAAIA,iBAAiBmD,GAAjBnD,IAAwB,KAAK+E,IAAjC,EAAuC;MACrC,OAAO,KAAKA,IAAL,CAAU0iB,UAAV,CAAqBznB,KAArB,EAA4B,KAAK+mB,kBAAjC,CAAP;IAvB6B;;IAyB/B,OAAO/mB,KAAP;EAzEO;;EA6ET0nB,SAASN,IAAT,EAAeC,IAAf,EAAqBC,IAArB,EAA2B;IACzB,IAAItnB,QAAQ,KAAK6mB,IAAL,CAAUO,IAAV,CAAZ;;IACA,IAAIpnB,UAAUsd,SAAVtd,IAAuBqnB,SAAS/J,SAApC,EAA+C;MAQ7Ctd,QAAQ,KAAK6mB,IAAL,CAAUQ,IAAV,CAARrnB;;MACA,IAAIA,UAAUsd,SAAVtd,IAAuBsnB,SAAShK,SAApC,EAA+C;QAQ7Ctd,QAAQ,KAAK6mB,IAAL,CAAUS,IAAV,CAARtnB;MAjB2C;IAFtB;;IAsBzB,IAAIA,iBAAiBmD,GAAjBnD,IAAwB,KAAK+E,IAAjC,EAAuC;MACrC/E,QAAQ,KAAK+E,IAAL,CAAUwiB,KAAV,CAAgBvnB,KAAhB,EAAuB,KAAK+mB,kBAA5B,CAAR/mB;IAvBuB;;IA0BzB,IAAI8F,MAAMC,OAAND,CAAc9F,KAAd8F,CAAJ,EAA0B;MACxB9F,QAAQA,MAAM6gB,KAAN7gB,EAARA;;MACA,KAAK,IAAIjD,IAAI,CAAR,EAAWiJ,KAAKhG,MAAM7D,MAA3B,EAAmCY,IAAIiJ,EAAvC,EAA2CjJ,GAA3C,EAAgD;QAC9C,IAAIiD,MAAMjD,CAAN,aAAoBoG,GAApBnD,IAA2B,KAAK+E,IAApC,EAA0C;UACxC/E,MAAMjD,CAAN,IAAW,KAAKgI,IAAL,CAAUwiB,KAAV,CAAgBvnB,MAAMjD,CAAN,CAAhB,EAA0B,KAAKgqB,kBAA/B,CAAX/mB;QAF4C;MAFxB;IA1BD;;IAkCzB,OAAOA,KAAP;EA/GO;;EAmHT4G,OAAOH,GAAP,EAAY;IACV,OAAO,KAAKogB,IAAL,CAAUpgB,GAAV,CAAP;EApHO;;EAuHTkhB,UAAU;IACR,OAAOxhB,OAAOwY,IAAPxY,CAAY,KAAK0gB,IAAjB1gB,CAAP;EAxHO;;EA4HTyhB,eAAe;IACb,OAAOzhB,OAAO0hB,MAAP1hB,CAAc,KAAK0gB,IAAnB1gB,CAAP;EA7HO;;EAgITqY,IAAI/X,GAAJ,EAASzG,KAAT,EAAgB;IAWd,KAAK6mB,IAAL,CAAUpgB,GAAV,IAAiBzG,KAAjB;EA3IO;;EA8IT8nB,IAAIrhB,GAAJ,EAAS;IACP,OAAO,KAAKogB,IAAL,CAAUpgB,GAAV,MAAmB6W,SAA1B;EA/IO;;EAkJT9W,QAAQuhB,QAAR,EAAkB;IAChB,WAAWthB,GAAX,IAAkB,KAAKogB,IAAvB,EAA6B;MAC3BkB,SAASthB,GAAT,EAAc,KAAKrD,GAAL,CAASqD,GAAT,CAAd;IAFc;EAlJT;;EAwJT,WAAWuhB,KAAX,GAAmB;IACjB,MAAMC,YAAY,IAAItiB,IAAJ,CAAS,IAAT,CAAlB;;IAEAsiB,UAAUzJ,GAAVyJ,GAAgB,CAACxhB,GAAD,EAAMzG,KAAN,KAAgB;MAC9Bub,uBAAY,gDAAZA;IADF;;IAGA,OAAOiB,kBAAO,IAAPA,EAAa,OAAbA,EAAsByL,SAAtBzL,CAAP;EA9JO;;EAiKT,OAAO0L,KAAP,CAAa;IAAEnjB,IAAF;IAAQojB,SAAR;IAAmBC,gBAAgB;EAAnC,CAAb,EAAyD;IACvD,MAAMC,aAAa,IAAI1iB,IAAJ,CAASZ,IAAT,CAAnB;IAAA,MACEujB,aAAa,IAAIC,GAAJ,EADf;;IAGA,WAAWC,IAAX,IAAmBL,SAAnB,EAA8B;MAC5B,IAAI,EAAEK,gBAAgB7iB,IAAlB,CAAJ,EAA6B;QAC3B;MAF0B;;MAI5B,WAAW,CAACc,GAAD,EAAMzG,KAAN,CAAX,IAA2BmG,OAAOsiB,OAAPtiB,CAAeqiB,KAAK3B,IAApB1gB,CAA3B,EAAsD;QACpD,IAAIlK,WAAWqsB,WAAWllB,GAAXklB,CAAe7hB,GAAf6hB,CAAf;;QACA,IAAIrsB,aAAaqhB,SAAjB,EAA4B;UAC1BrhB,WAAW,EAAXA;UACAqsB,WAAW9J,GAAX8J,CAAe7hB,GAAf6hB,EAAoBrsB,QAApBqsB;QAFF,OAGO,IAAI,CAACF,aAAD,IAAkB,EAAEpoB,iBAAiB2F,IAAnB,CAAtB,EAAgD;UAIrD;QATkD;;QAWpD1J,SAASC,IAATD,CAAc+D,KAAd/D;MAf0B;IAJyB;;IAsBvD,WAAW,CAAClC,IAAD,EAAO8tB,MAAP,CAAX,IAA6BS,UAA7B,EAAyC;MACvC,IAAIT,OAAO1rB,MAAP0rB,KAAkB,CAAlBA,IAAuB,EAAEA,OAAO,CAAP,aAAqBliB,IAAvB,CAA3B,EAAyD;QACvD0iB,WAAWxB,IAAXwB,CAAgBtuB,IAAhBsuB,IAAwBR,OAAO,CAAP,CAAxBQ;QACA;MAHqC;;MAKvC,MAAMK,UAAU,IAAI/iB,IAAJ,CAASZ,IAAT,CAAhB;;MAEA,WAAWyjB,IAAX,IAAmBX,MAAnB,EAA2B;QACzB,WAAW,CAACphB,GAAD,EAAMzG,KAAN,CAAX,IAA2BmG,OAAOsiB,OAAPtiB,CAAeqiB,KAAK3B,IAApB1gB,CAA3B,EAAsD;UACpD,IAAIuiB,QAAQ7B,IAAR6B,CAAajiB,GAAbiiB,MAAsBpL,SAA1B,EAAqC;YACnCoL,QAAQ7B,IAAR6B,CAAajiB,GAAbiiB,IAAoB1oB,KAApB0oB;UAFkD;QAD7B;MAPY;;MAcvC,IAAIA,QAAQvB,IAARuB,GAAe,CAAnB,EAAsB;QACpBL,WAAWxB,IAAXwB,CAAgBtuB,IAAhBsuB,IAAwBK,OAAxBL;MAfqC;IAtBc;;IAwCvDC,WAAWK,KAAXL;IAEA,OAAOD,WAAWlB,IAAXkB,GAAkB,CAAlBA,GAAsBA,UAAtBA,GAAmC1iB,KAAKqiB,KAA/C;EA3MO;;AAAA;;;;AA+MX,MAAM7kB,MAAO,SAASylB,UAAT,GAAsB;EACjC,IAAIC,WAAW1iB,OAAOC,MAAPD,CAAc,IAAdA,CAAf;;EAGA,MAAMhD,GAAN,CAAU;IACRrJ,YAAYuJ,GAAZ,EAAiBC,GAAjB,EAAsB;MACpB,KAAKD,GAAL,GAAWA,GAAX;MACA,KAAKC,GAAL,GAAWA,GAAX;IAHM;;IAMR9B,WAAW;MAGT,IAAI,KAAK8B,GAAL,KAAa,CAAjB,EAAoB;QAClB,OAAO,GAAG,KAAKD,GAAI,GAAnB;MAJO;;MAMT,OAAO,GAAG,KAAKA,GAAI,IAAG,KAAKC,GAApB,EAAP;IAZM;;IAeR,OAAOF,GAAP,CAAWC,GAAX,EAAgBC,GAAhB,EAAqB;MACnB,MAAMmD,MAAMnD,QAAQ,CAARA,GAAY,GAAGD,GAAI,GAAnBC,GAAwB,GAAGD,GAAI,IAAGC,GAAV,EAApC;MACA,MAAMwlB,WAAWD,SAASpiB,GAAT,CAAjB;MAEA,OAAOqiB,WAAWA,QAAX,GAAuBD,SAASpiB,GAAT,IAAgB,IAAItD,GAAJ,CAAQE,GAAR,EAAaC,GAAb,CAA9C;IAnBM;;IAsBR,OAAO+iB,WAAP,GAAqB;MACnBwC,WAAW1iB,OAAOC,MAAPD,CAAc,IAAdA,CAAX0iB;IAvBM;;EAAA;;EA2BV,OAAO1lB,GAAP;AA/BU,CAAC,EAAb;;;;AAoCA,MAAM4lB,MAAN,CAAa;EACXjvB,YAAYkvB,SAAS,IAArB,EAA2B;IASzB,KAAKC,IAAL,GAAY,IAAIC,GAAJ,CAAQF,UAAUA,OAAOC,IAAzB,CAAZ;EAVS;;EAaXnB,IAAIhlB,GAAJ,EAAS;IACP,OAAO,KAAKmmB,IAAL,CAAUnB,GAAV,CAAchlB,IAAItB,QAAJsB,EAAd,CAAP;EAdS;;EAiBXqmB,IAAIrmB,GAAJ,EAAS;IACP,KAAKmmB,IAAL,CAAUG,GAAV,CAActmB,IAAItB,QAAJsB,EAAd;EAlBS;;EAqBXumB,OAAOvmB,GAAP,EAAY;IACV,KAAKmmB,IAAL,CAAUK,MAAV,CAAiBxmB,IAAItB,QAAJsB,EAAjB;EAtBS;;EAyBX,CAACijB,OAAOwD,QAAR,IAAoB;IAClB,OAAO,KAAKN,IAAL,CAAUpB,MAAV,EAAP;EA1BS;;EA6BXc,QAAQ;IACN,KAAKM,IAAL,CAAUN,KAAV;EA9BS;;AAAA;;;;AAkCb,MAAMa,WAAN,CAAkB;EAChB1vB,cAAc;IACZ,KAAK+sB,IAAL,GAAY,IAAI0B,GAAJ,EAAZ;EAFc;;EAKhB,IAAIpB,IAAJ,GAAW;IACT,OAAO,KAAKN,IAAL,CAAUM,IAAjB;EANc;;EAShB/jB,IAAIN,GAAJ,EAAS;IACP,OAAO,KAAK+jB,IAAL,CAAUzjB,GAAV,CAAcN,IAAItB,QAAJsB,EAAd,CAAP;EAVc;;EAahBglB,IAAIhlB,GAAJ,EAAS;IACP,OAAO,KAAK+jB,IAAL,CAAUiB,GAAV,CAAchlB,IAAItB,QAAJsB,EAAd,CAAP;EAdc;;EAiBhBqmB,IAAIrmB,GAAJ,EAAS2Z,GAAT,EAAc;IACZ,KAAKoK,IAAL,CAAUrI,GAAV,CAAc1b,IAAItB,QAAJsB,EAAd,EAA8B2Z,GAA9B;EAlBc;;EAqBhBgN,SAAS3mB,GAAT,EAAc4mB,QAAd,EAAwB;IACtB,KAAK7C,IAAL,CAAUrI,GAAV,CAAc1b,IAAItB,QAAJsB,EAAd,EAA8B,KAAKM,GAAL,CAASsmB,QAAT,CAA9B;EAtBc;;EAyBhB,CAAC3D,OAAOwD,QAAR,IAAoB;IAClB,OAAO,KAAK1C,IAAL,CAAUgB,MAAV,EAAP;EA1Bc;;EA6BhBc,QAAQ;IACN,KAAK9B,IAAL,CAAU8B,KAAV;EA9Bc;;AAAA;;;;AAkClB,SAASgB,MAAT,CAAgBzI,CAAhB,EAAmBnnB,IAAnB,EAAyB;EACvB,OAAOmnB,aAAa+E,IAAb/E,KAAsBnnB,SAASujB,SAATvjB,IAAsBmnB,EAAEnnB,IAAFmnB,KAAWnnB,IAAvDmnB,CAAP;AA5YF;;AA+YA,SAAS0I,KAAT,CAAe1I,CAAf,EAAkBuF,GAAlB,EAAuB;EACrB,OAAOvF,aAAaoF,GAAbpF,KAAqBuF,QAAQnJ,SAARmJ,IAAqBvF,EAAEuF,GAAFvF,KAAUuF,GAApDvF,CAAP;AAhZF;;AAmZA,SAAS2I,MAAT,CAAgB3I,CAAhB,EAAmB2E,IAAnB,EAAyB;EACvB,OACE3E,aAAavb,IAAbub,KAAsB2E,SAASvI,SAATuI,IAAsB8D,OAAOzI,EAAE9d,GAAF8d,CAAM,MAANA,CAAP,EAAsB2E,IAAtB,CAA5C3E,CADF;AApZF;;AAyZA,SAAS4I,WAAT,CAAqBC,EAArB,EAAyBC,EAAzB,EAA6B;EAU3B,OAAOD,GAAG1mB,GAAH0mB,KAAWC,GAAG3mB,GAAd0mB,IAAqBA,GAAGzmB,GAAHymB,KAAWC,GAAG1mB,GAA1C;AAnaF;;AAsaA,SAAS2mB,oBAAT,GAAgC;EAC9B3D,IAAID,WAAJC;;EACAL,KAAKI,WAALJ;;EACA9iB,IAAIkjB,WAAJljB;AAzaF;;;;;;;;;;;;;ACeA;;AAMA;;AACA;;AACA;;AACA;;AAEA,SAAS+mB,eAAT,CAAyBvO,GAAzB,EAA8B;EAC5B,IAAIA,GAAJ,EAAS;IACP,MAAMW,cAAcT,kCAAuBF,GAAvBE,CAApB;;IACA,IAAIS,WAAJ,EAAiB;MACf,OAAOA,YAAY6N,IAAnB;IAHK;;IAKPtqB,gBAAM,iCAAgC8b,GAAI,IAA1C9b;EAN0B;;EAQ5B,OAAO,IAAP;AAlCF;;AAqCA,MAAMuqB,cAAN,CAAqB;EACnBtwB,cAAc;IACZ,IAAI,KAAKA,WAAL,KAAqBswB,cAAzB,EAAyC;MACvC7O,uBAAY,mCAAZA;IAFU;EADK;;EAOnB,IAAI/e,KAAJ,GAAY;IACV,OAAO,KAAK6tB,MAAZ;EARiB;;EAWnB,IAAI7rB,QAAJ,GAAe;IACb,OAAO,KAAK8rB,SAAZ;EAZiB;;EAenB,IAAI7tB,UAAJ,GAAiB;IACf,MAAM8tB,UAAU,KAAKC,WAAL,CAAiBD,OAAjC;IACA,OAAO/N,kBAAO,IAAPA,EAAa,YAAbA,EAA2B+N,QAAQzO,OAARyO,IAAmB,KAAKE,WAAnDjO,CAAP;EAjBiB;;EAoBnB7a,iBAAiB;IACf4Z,uBAAY,yCAAZA;EArBiB;;EAwBnBne,UAAUsf,IAAV,EAAgBgO,IAAhB,EAAsB;IACpB,OAAO,KAAK9nB,MAAL,CAAY,KAAK4nB,WAAjB,EAA8B9N,IAA9B,EAAoCgO,IAApC,CAAP;EAzBiB;;EA4BnBC,WAAWjO,IAAX,EAAiBgO,IAAjB,EAAuB;IACrB,OAAO,KAAK9nB,MAAL,CAAY,KAAK4nB,WAAL,CAAiBzlB,IAA7B,EAAmC2X,IAAnC,EAAyCgO,IAAzC,CAAP;EA7BiB;;EAgCnBnnB,cAAcmZ,IAAd,EAAoBgO,IAApB,EAA0B;IACxB,OAAO,KAAK9nB,MAAL,CAAY,KAAK4nB,WAAL,CAAiBD,OAA7B,EAAsC7N,IAAtC,EAA4CgO,IAA5C,CAAP;EAjCiB;;EAoCnBjoB,QAAQC,SAAR,EAAmB;IACjB,OAAO,KAAK8nB,WAAL,CAAiB/nB,OAAjB,CAAyBC,SAAzB,CAAP;EArCiB;;EAwCnBgG,aAAahF,EAAb,EAAiB9I,OAAjB,EAA0B;IACxB,OAAO,KAAK4vB,WAAL,CAAiB9hB,YAAjB,CAA8BhF,EAA9B,EAAkC9I,OAAlC,CAAP;EAzCiB;;EA4CnB4C,aAAa5C,OAAb,EAAsBiC,IAAtB,EAA4B;IAC1B,OAAO,KAAK2tB,WAAL,CAAiBhtB,YAAjB,CAA8B5C,OAA9B,EAAuCiC,IAAvC,CAAP;EA7CiB;;EAgDnBe,gBAAgB;IACd,OAAO,KAAK4sB,WAAL,CAAiB5sB,aAAjB,EAAP;EAjDiB;;EAoDnB8G,iBAAiBH,iBAAjB,EAAoC;IAClC,OAAO,KAAKimB,WAAL,CAAiB9lB,gBAAjB,CAAkCH,iBAAlC,CAAP;EArDiB;;EAwDnBqE,QAAQgiB,oBAAoB,KAA5B,EAAmC;IACjC,OAAO,KAAKJ,WAAL,CAAiB5hB,OAAjB,CAAyBgiB,iBAAzB,CAAP;EAzDiB;;EA4DnB,MAAMhoB,MAAN,CAAa6Z,GAAb,EAAkBC,IAAlB,EAAwBgO,IAAxB,EAA8B;IAC5BnP,uBAAY,iCAAZA;EA7DiB;;EAgEnBsP,aAAaC,KAAb,EAAoBC,GAApB,EAAyB;IACvBxP,uBAAY,uCAAZA;EAjEiB;;EAoEnB7Z,sBAAsB;IACpB6Z,uBAAY,8CAAZA;EArEiB;;EAwEnB/b,oBAAoBse,KAApB,EAA2B;IACzBvC,uBAAY,8CAAZA;EAzEiB;;EA4EnBta,eAAezC,QAAf,EAAyB;IACvB,KAAK8rB,SAAL,GAAiB9rB,QAAjB;EA7EiB;;EAgFnBjE,UAAUmD,MAAV,EAAkB;IAChB6d,uBAAY,oCAAZA;EAjFiB;;AAAA;;AAqFrB,MAAMhd,eAAN,SAA8B6rB,cAA9B,CAA6C;EAC3CtwB,YACE0C,KADF,EAEEvB,IAFF,EAGEuD,QAHF,EAIEa,UAJF,EAKEnB,gBALF,EAMEC,SANF,EAOE1B,UAPF,EAQE;IACA;IAEA,KAAK4tB,MAAL,GAAc7tB,KAAd;IACA,KAAK8tB,SAAL,GAAiB9rB,QAAjB;IACA,KAAKisB,WAAL,GAAmBP,gBAAgBztB,UAAhB,CAAnB;IACA,KAAK4C,UAAL,GAAkBA,UAAlB;IACA,KAAKnB,gBAAL,GAAwBA,gBAAxB;IACA,KAAKC,SAAL,GAAiBA,SAAjB;IAEA,MAAMkE,SAAS,IAAI2oB,cAAJ,CAAW/vB,IAAX,CAAf;IACA,KAAKuvB,WAAL,GAAmB,IAAIS,qBAAJ,CAAgB,IAAhB,EAAsB5oB,MAAtB,CAAnB;IACA,KAAK6oB,oBAAL,GAA4B5tB,QAAQhD,OAARgD,CAAgB+E,MAAhB/E,CAA5B;EArByC;;EAwB3C,MAAMsF,MAAN,CAAa6Z,GAAb,EAAkBC,IAAlB,EAAwBgO,IAAxB,EAA8B;IAC5B,MAAM1qB,QAAQyc,IAAIC,IAAJ,CAAd;;IACA,IAAI,OAAO1c,KAAP,KAAiB,UAArB,EAAiC;MAC/B,OAAOA,MAAM0d,KAAN1d,CAAYyc,GAAZzc,EAAiB0qB,IAAjB1qB,CAAP;IAH0B;;IAK5B,OAAOA,KAAP;EA7ByC;;EAgC3C6qB,aAAaC,KAAb,EAAoBC,GAApB,EAAyB;IACvB,OAAOztB,QAAQhD,OAARgD,EAAP;EAjCyC;;EAoC3CoE,sBAAsB,CApCqB;;EAsC3CC,iBAAiB;IACf,OAAO,KAAKupB,oBAAZ;EAvCyC;;EA0C3C3wB,UAAUmD,MAAV,EAAkB,CA1CyB;;AAAA;;;;AA6C7C,MAAM0B,iBAAN,SAAgCgrB,cAAhC,CAA+C;EAC7CtwB,YACE0C,KADF,EAEE2uB,gBAFF,EAGET,IAHF,EAIExsB,gBAJF,EAKEC,SALF,EAME1B,UANF,EAOE;IACA;IAEA,KAAK4tB,MAAL,GAAc7tB,KAAd;IACA,KAAK8tB,SAAL,GAAiBI,KAAKlsB,QAAtB;IACA,KAAKisB,WAAL,GAAmBP,gBAAgBztB,UAAhB,CAAnB;IACA,KAAK4C,UAAL,GAAkBqrB,KAAKrrB,UAAvB;IACA,KAAKnB,gBAAL,GAAwBA,gBAAxB;IACA,KAAKC,SAAL,GAAiBA,SAAjB;IAEA,KAAKitB,aAAL,GAAqB,IAAIC,oCAAJ,CAAyBF,gBAAzB,EAA2C;MAC9D9rB,YAAYqrB,KAAKrrB,UAD6C;MAE9DlD,QAAQuuB,KAAKvuB,MAFiD;MAG9D+C,kBAAkBwrB,KAAKxrB,gBAHuC;MAI9DK,gBAAgBmrB,KAAKnrB;IAJyC,CAA3C,CAArB;IAMA,KAAKirB,WAAL,GAAmB,IAAIS,qBAAJ,CAAgB,IAAhB,EAAsB,KAAKG,aAAL,CAAmBE,SAAnB,EAAtB,CAAnB;EAxB2C;;EA2B7C,MAAM1oB,MAAN,CAAa6Z,GAAb,EAAkBC,IAAlB,EAAwBgO,IAAxB,EAA8B;IAC5B,IAAI;MACF,MAAM1qB,QAAQyc,IAAIC,IAAJ,CAAd;;MACA,IAAI,OAAO1c,KAAP,KAAiB,UAArB,EAAiC;QAC/B,OAAOA,MAAM0d,KAAN1d,CAAYyc,GAAZzc,EAAiB0qB,IAAjB1qB,CAAP;MAHA;;MAKF,OAAOA,KAAP;IALF,EAME,OAAOvB,EAAP,EAAW;MACX,IAAI,EAAEA,cAAc8sB,gCAAhB,CAAJ,EAA2C;QACzC,MAAM9sB,EAAN;MAFS;;MAIX,MAAM,KAAKosB,YAAL,CAAkBpsB,GAAGqsB,KAArB,EAA4BrsB,GAAGssB,GAA/B,CAAN;MACA,OAAO,KAAKnoB,MAAL,CAAY6Z,GAAZ,EAAiBC,IAAjB,EAAuBgO,IAAvB,CAAP;IAZ0B;EA3Be;;EA2C7CG,aAAaC,KAAb,EAAoBC,GAApB,EAAyB;IACvB,OAAO,KAAKK,aAAL,CAAmBP,YAAnB,CAAgCC,KAAhC,EAAuCC,GAAvC,CAAP;EA5C2C;;EA+C7CrpB,sBAAsB;IACpB,KAAK0pB,aAAL,CAAmBI,gBAAnB;EAhD2C;;EAmD7ChsB,oBAAoBse,KAApB,EAA2B;IACzB,KAAKsN,aAAL,CAAmBK,aAAnB,CAAiC;MAAE3N;IAAF,CAAjC;EApD2C;;EAuD7Cnc,iBAAiB;IACf,OAAO,KAAKypB,aAAL,CAAmBzpB,cAAnB,EAAP;EAxD2C;;EA2D7CpH,UAAUmD,MAAV,EAAkB;IAChB,KAAK0tB,aAAL,CAAmBM,KAAnB,CAAyBhuB,MAAzB;EA5D2C;;AAAA;;;;;;;;;;;;;;;ACxJ/C;;AAKA;;AACA;;AAEA,MAAMiuB,aAAN,SAA4BX,cAA5B,CAAmC;EACjClxB,YAAYqC,MAAZ,EAAoByvB,SAApB,EAA+BC,OAA/B,EAAwC;IACtC,MACsB,IAAI1wB,UAAJ,CAAegB,MAAf,CADtB,EAEgB,CAFhB,EAGiBA,MAHjB,EAIe,IAJf;IAOA,KAAKyvB,SAAL,GAAiBA,SAAjB;IACA,KAAKE,aAAL,GAAqB,IAAI5C,GAAJ,EAArB;IACA,KAAK6C,SAAL,GAAiB3rB,KAAK4rB,IAAL5rB,CAAUjE,SAASyvB,SAAnBxrB,CAAjB;IACA,KAAKyrB,OAAL,GAAeA,OAAf;IACA,KAAKI,qBAAL,GAA6B,CAA7B;IACA,KAAKC,6BAAL,GAAqC,CAAC,CAAtC;EAd+B;;EAmBjCC,mBAAmB;IACjB,MAAMC,SAAS,EAAf;;IACA,KAAK,IAAItO,QAAQ,CAAZ,EAAe0B,IAAI,KAAKuM,SAA7B,EAAwCjO,QAAQ0B,CAAhD,EAAmD,EAAE1B,KAArD,EAA4D;MAC1D,IAAI,CAAC,KAAKgO,aAAL,CAAmBhE,GAAnB,CAAuBhK,KAAvB,CAAL,EAAoC;QAClCsO,OAAOlwB,IAAPkwB,CAAYtO,KAAZsO;MAFwD;IAF3C;;IAOjB,OAAOA,MAAP;EA1B+B;;EA6BjC,IAAIC,eAAJ,GAAsB;IACpB,OAAO,KAAKP,aAAL,CAAmB3E,IAA1B;EA9B+B;;EAiCjC,IAAImF,YAAJ,GAAmB;IACjB,OAAO,KAAKD,eAAL,KAAyB,KAAKN,SAArC;EAlC+B;;EAqCjCN,cAAcX,KAAd,EAAqBhN,KAArB,EAA4B;IAC1B,MAAM8N,YAAY,KAAKA,SAAvB;;IACA,IAAId,QAAQc,SAARd,KAAsB,CAA1B,EAA6B;MAC3B,MAAM,IAAIrwB,KAAJ,CAAW,qBAAoBqwB,KAArB,EAAV,CAAN;IAHwB;;IAQ1B,MAAMC,MAAMD,QAAQhN,MAAMvb,UAA1B;;IACA,IAAIwoB,MAAMa,SAANb,KAAoB,CAApBA,IAAyBA,QAAQ,KAAKzoB,KAAL,CAAWnG,MAAhD,EAAwD;MACtD,MAAM,IAAI1B,KAAJ,CAAW,mBAAkBswB,GAAnB,EAAV,CAAN;IAVwB;;IAa1B,KAAKzoB,KAAL,CAAWkc,GAAX,CAAe,IAAIrjB,UAAJ,CAAe2iB,KAAf,CAAf,EAAsCgN,KAAtC;IACA,MAAMyB,aAAansB,KAAKosB,KAALpsB,CAAW0qB,QAAQc,SAAnBxrB,CAAnB;IACA,MAAMqsB,WAAWrsB,KAAKosB,KAALpsB,CAAY,OAAM,CAAN,IAAWwrB,SAAvBxrB,IAAoC,CAArD;;IAEA,KAAK,IAAIssB,WAAWH,UAApB,EAAgCG,WAAWD,QAA3C,EAAqD,EAAEC,QAAvD,EAAiE;MAG/D,KAAKZ,aAAL,CAAmB1C,GAAnB,CAAuBsD,QAAvB;IApBwB;EArCK;;EA6DjCC,yBAAyB1xB,IAAzB,EAA+B;IAC7B,IAAI2xB,WAAW,KAAKX,qBAApB;IACA,MAAMM,aAAansB,KAAKosB,KAALpsB,CAAWwsB,WAAW,KAAKhB,SAA3BxrB,CAAnB;IAEA,KAAKkC,KAAL,CAAWkc,GAAX,CAAe,IAAIrjB,UAAJ,CAAeF,IAAf,CAAf,EAAqC2xB,QAArC;IACAA,YAAY3xB,KAAKsH,UAAjBqqB;IACA,KAAKX,qBAAL,GAA6BW,QAA7B;IACA,MAAMH,WACJG,YAAY,KAAK7B,GAAjB6B,GACI,KAAKb,SADTa,GAEIxsB,KAAKosB,KAALpsB,CAAWwsB,WAAW,KAAKhB,SAA3BxrB,CAHN;;IAKA,KAAK,IAAIssB,WAAWH,UAApB,EAAgCG,WAAWD,QAA3C,EAAqD,EAAEC,QAAvD,EAAiE;MAG/D,KAAKZ,aAAL,CAAmB1C,GAAnB,CAAuBsD,QAAvB;IAf2B;EA7DE;;EAgFjCG,WAAWxO,GAAX,EAAgB;IACd,IAAIA,MAAM,KAAK4N,qBAAf,EAAsC;MACpC;IAFY;;IAKd,MAAMnO,QAAQ1d,KAAKosB,KAALpsB,CAAWie,MAAM,KAAKuN,SAAtBxrB,CAAd;;IACA,IAAI0d,QAAQ,KAAKiO,SAAjB,EAA4B;MAC1B;IAPY;;IASd,IAAIjO,UAAU,KAAKoO,6BAAnB,EAAkD;MAChD;IAVY;;IAad,IAAI,CAAC,KAAKJ,aAAL,CAAmBhE,GAAnB,CAAuBhK,KAAvB,CAAL,EAAoC;MAClC,MAAM,IAAIyN,gCAAJ,CAAyBlN,GAAzB,EAA8BA,MAAM,CAApC,CAAN;IAdY;;IAgBd,KAAK6N,6BAAL,GAAqCpO,KAArC;EAhG+B;;EAmGjCgP,YAAYhC,KAAZ,EAAmBC,GAAnB,EAAwB;IACtB,IAAID,SAASC,GAAb,EAAkB;MAChB;IAFoB;;IAItB,IAAIA,OAAO,KAAKkB,qBAAhB,EAAuC;MACrC;IALoB;;IAQtB,MAAMM,aAAansB,KAAKosB,KAALpsB,CAAW0qB,QAAQ,KAAKc,SAAxBxrB,CAAnB;;IACA,IAAImsB,aAAa,KAAKR,SAAtB,EAAiC;MAC/B;IAVoB;;IAYtB,MAAMU,WAAWrsB,KAAKyd,GAALzd,CACfA,KAAKosB,KAALpsB,CAAY,OAAM,CAAN,IAAW,KAAKwrB,SAA5BxrB,IAAyC,CAD1BA,EAEf,KAAK2rB,SAFU3rB,CAAjB;;IAIA,KAAK,IAAI0d,QAAQyO,UAAjB,EAA6BzO,QAAQ2O,QAArC,EAA+C,EAAE3O,KAAjD,EAAwD;MACtD,IAAI,CAAC,KAAKgO,aAAL,CAAmBhE,GAAnB,CAAuBhK,KAAvB,CAAL,EAAoC;QAClC,MAAM,IAAIyN,gCAAJ,CAAyBT,KAAzB,EAAgCC,GAAhC,CAAN;MAFoD;IAhBlC;EAnGS;;EA0HjCgC,eAAeR,UAAf,EAA2B;IACzB,MAAMR,YAAY,KAAKA,SAAvB;;IACA,KAAK,IAAIhvB,IAAI,CAAb,EAAgBA,IAAIgvB,SAApB,EAA+B,EAAEhvB,CAAjC,EAAoC;MAClC,MAAM+gB,QAAS,cAAa/gB,CAAb,IAAkBgvB,SAAjC;;MACA,IAAI,CAAC,KAAKD,aAAL,CAAmBhE,GAAnB,CAAuBhK,KAAvB,CAAL,EAAoC;QAClC,OAAOA,KAAP;MAHgC;IAFX;;IAQzB,OAAO,IAAP;EAlI+B;;EAqIjCkP,SAASlP,KAAT,EAAgB;IACd,OAAO,KAAKgO,aAAL,CAAmBhE,GAAnB,CAAuBhK,KAAvB,CAAP;EAtI+B;;EAyIjCmP,UAAU;IACR,MAAM5O,MAAM,KAAKA,GAAjB;;IACA,IAAIA,OAAO,KAAK0M,GAAhB,EAAqB;MACnB,OAAO,CAAC,CAAR;IAHM;;IAKR,IAAI1M,OAAO,KAAK4N,qBAAhB,EAAuC;MACrC,KAAKY,UAAL,CAAgBxO,GAAhB;IANM;;IAQR,OAAO,KAAK/b,KAAL,CAAW,KAAK+b,GAAL,EAAX,CAAP;EAjJ+B;;EAoJjC6O,SAAS/wB,MAAT,EAAiB;IACf,MAAMmG,QAAQ,KAAKA,KAAnB;IACA,MAAM+b,MAAM,KAAKA,GAAjB;IACA,MAAM8O,SAAS,KAAKpC,GAApB;;IAEA,IAAI,CAAC5uB,MAAL,EAAa;MACX,IAAIgxB,SAAS,KAAKlB,qBAAlB,EAAyC;QACvC,KAAKa,WAAL,CAAiBzO,GAAjB,EAAsB8O,MAAtB;MAFS;;MAIX,OAAO7qB,MAAMyb,QAANzb,CAAe+b,GAAf/b,EAAoB6qB,MAApB7qB,CAAP;IATa;;IAYf,IAAIyoB,MAAM1M,MAAMliB,MAAhB;;IACA,IAAI4uB,MAAMoC,MAAV,EAAkB;MAChBpC,MAAMoC,MAANpC;IAda;;IAgBf,IAAIA,MAAM,KAAKkB,qBAAf,EAAsC;MACpC,KAAKa,WAAL,CAAiBzO,GAAjB,EAAsB0M,GAAtB;IAjBa;;IAoBf,KAAK1M,GAAL,GAAW0M,GAAX;IACA,OAAOzoB,MAAMyb,QAANzb,CAAe+b,GAAf/b,EAAoByoB,GAApBzoB,CAAP;EAzK+B;;EA4KjC8qB,aAAatC,KAAb,EAAoBC,GAApB,EAAyB;IACvB,IAAID,QAAQ,CAAZ,EAAe;MACbA,QAAQ,CAARA;IAFqB;;IAIvB,IAAIC,MAAM,KAAKA,GAAf,EAAoB;MAClBA,MAAM,KAAKA,GAAXA;IALqB;;IAOvB,IAAIA,MAAM,KAAKkB,qBAAf,EAAsC;MACpC,KAAKa,WAAL,CAAiBhC,KAAjB,EAAwBC,GAAxB;IARqB;;IAUvB,OAAO,KAAKzoB,KAAL,CAAWyb,QAAX,CAAoB+M,KAApB,EAA2BC,GAA3B,CAAP;EAtL+B;;EAyLjCsC,cAAc7lB,KAAd,EAAqBrL,MAArB,EAA6BqsB,OAAO,IAApC,EAA0C;IACxC,IAAIrsB,MAAJ,EAAY;MACV,IAAIqL,QAAQrL,MAARqL,GAAiB,KAAKykB,qBAA1B,EAAiD;QAC/C,KAAKa,WAAL,CAAiBtlB,KAAjB,EAAwBA,QAAQrL,MAAhC;MAFQ;IAAZ,OAIO;MAUL,IAAIqL,SAAS,KAAKykB,qBAAlB,EAAyC;QACvC,KAAKY,UAAL,CAAgBrlB,KAAhB;MAXG;IALiC;;IAoBxC,SAAS8lB,sBAAT,GAAkC,CApBM;;IAqBxCA,uBAAuBrQ,SAAvBqQ,GAAmCnnB,OAAOC,MAAPD,CAAc,IAAdA,CAAnCmnB;;IACAA,uBAAuBrQ,SAAvBqQ,CAAiCnB,gBAAjCmB,GAAoD,YAAY;MAC9D,MAAM1B,YAAY,KAAKA,SAAvB;MACA,MAAMW,aAAansB,KAAKosB,KAALpsB,CAAW,KAAKoH,KAAL,GAAaokB,SAAxBxrB,CAAnB;MACA,MAAMqsB,WAAWrsB,KAAKosB,KAALpsB,CAAY,MAAK2qB,GAAL,GAAW,CAAX,IAAgBa,SAA5BxrB,IAAyC,CAA1D;MACA,MAAMmtB,gBAAgB,EAAtB;;MACA,KAAK,IAAIzP,QAAQyO,UAAjB,EAA6BzO,QAAQ2O,QAArC,EAA+C,EAAE3O,KAAjD,EAAwD;QACtD,IAAI,CAAC,KAAKgO,aAAL,CAAmBhE,GAAnB,CAAuBhK,KAAvB,CAAL,EAAoC;UAClCyP,cAAcrxB,IAAdqxB,CAAmBzP,KAAnByP;QAFoD;MALM;;MAU9D,OAAOA,aAAP;IAVF;;IAYApnB,OAAOwW,cAAPxW,CAAsBmnB,uBAAuBrQ,SAA7C9W,EAAwD,cAAxDA,EAAwE;MACtE/C,MAAM;QACJ,IAAI,KAAKipB,eAAL,KAAyB,KAAKN,SAAlC,EAA6C;UAC3C,OAAO,IAAP;QAFE;;QAIJ,OAAO,KAAKI,gBAAL,GAAwBhwB,MAAxB,KAAmC,CAA1C;MALoE;;MAOtE0gB,cAAc;IAPwD,CAAxE1W;IAUA,MAAMqnB,YAAY,IAAIF,sBAAJ,EAAlB;IACAE,UAAUnP,GAAVmP,GAAgBA,UAAUhmB,KAAVgmB,GAAkBhmB,KAAlCgmB;IACAA,UAAUzC,GAAVyC,GAAgBhmB,QAAQrL,MAARqL,IAAkB,KAAKujB,GAAvCyC;IACAA,UAAUhF,IAAVgF,GAAiBhF,IAAjBgF;IACA,OAAOA,SAAP;EAzO+B;;EA4OjCC,iBAAiB;IACf,OAAO,CAAC,IAAD,CAAP;EA7O+B;;AAAA;;;;AAiPnC,MAAMpC,oBAAN,CAA2B;EACzBvxB,YAAYqxB,gBAAZ,EAA8BT,IAA9B,EAAoC;IAClC,KAAKvuB,MAAL,GAAcuuB,KAAKvuB,MAAnB;IACA,KAAKyvB,SAAL,GAAiBlB,KAAKnrB,cAAtB;IACA,KAAK8C,MAAL,GAAc,IAAIspB,aAAJ,CAAkB,KAAKxvB,MAAvB,EAA+B,KAAKyvB,SAApC,EAA+C,IAA/C,CAAd;IACA,KAAKT,gBAAL,GAAwBA,gBAAxB;IACA,KAAKjsB,gBAAL,GAAwBwrB,KAAKxrB,gBAA7B;IACA,KAAKG,UAAL,GAAkBqrB,KAAKrrB,UAAvB;IAEA,KAAKquB,aAAL,GAAqB,CAArB;IAEA,KAAKC,sBAAL,GAA8B,IAAIpF,GAAJ,EAA9B;IACA,KAAKqF,gBAAL,GAAwB,IAAIrF,GAAJ,EAAxB;IACA,KAAKsF,kBAAL,GAA0B,IAAItF,GAAJ,EAA1B;IACA,KAAK0D,qBAAL,GAA6B,CAA7B;IACA,KAAK6B,OAAL,GAAe,KAAf;IAEA,KAAKC,uBAAL,GAA+B7zB,oCAA/B;EAjBuB;;EAoBzByH,iBAAiB;IACf,OAAO,KAAKosB,uBAAL,CAA6B3zB,OAApC;EArBuB;;EAwBzB4zB,YAAYlD,KAAZ,EAAmBC,GAAnB,EAAwB;IACtB,MAAMkD,cAAc,KAAK9C,gBAAL,CAAsB+C,cAAtB,CAAqCpD,KAArC,EAA4CC,GAA5C,CAApB;;IACA,IAAI,CAACkD,YAAY9uB,oBAAjB,EAAuC;MACrC8uB,YAAYE,UAAZF,GAAyB,KAAKE,UAAL,CAAgBC,IAAhB,CAAqB,IAArB,CAAzBH;IAHoB;;IAMtB,IAAI7B,SAAS,EAAb;IAAA,IACE3sB,SAAS,CADX;IAEA,OAAO,IAAInC,OAAJ,CAAY,CAAChD,OAAD,EAAUoE,MAAV,KAAqB;MACtC,MAAMqB,YAAY+d,SAAS;QACzB,IAAI;UACF,IAAI,CAACA,MAAM7d,IAAX,EAAiB;YACf,MAAMhF,OAAO6iB,MAAM9d,KAAnB;YACAosB,OAAOlwB,IAAPkwB,CAAYnxB,IAAZmxB;YACA3sB,UAAUS,2BAAgBjF,IAAhBiF,CAAVT;;YACA,IAAIwuB,YAAY9uB,oBAAhB,EAAsC;cACpC,KAAKgvB,UAAL,CAAgB;gBAAE1uB;cAAF,CAAhB;YALa;;YAOfwuB,YAAY3tB,IAAZ2tB,GAAmBtwB,IAAnBswB,CAAwBluB,SAAxBkuB,EAAmCvvB,MAAnCuvB;YACA;UATA;;UAWF,MAAMI,YAAYzuB,yBAAcwsB,MAAdxsB,CAAlB;UACAwsB,SAAS,IAATA;UACA9xB,QAAQ+zB,SAAR;QAbF,EAcE,OAAO9tB,CAAP,EAAU;UACV7B,OAAO6B,CAAP;QAhBuB;MAA3B;;MAmBA0tB,YAAY3tB,IAAZ2tB,GAAmBtwB,IAAnBswB,CAAwBluB,SAAxBkuB,EAAmCvvB,MAAnCuvB;IApBK,GAqBJtwB,IArBI,CAqBC1C,QAAQ;MACd,IAAI,KAAK6yB,OAAT,EAAkB;QAChB;MAFY;;MAId,KAAKrC,aAAL,CAAmB;QAAE3N,OAAO7iB,IAAT;QAAe6vB;MAAf,CAAnB;IAzBK,EAAP;EAhCuB;;EAiEzBU,mBAAmB;IACjB,MAAM+B,gBAAgB,KAAKlrB,MAAL,CAAY8pB,gBAAZ,EAAtB;;IACA,KAAKmC,cAAL,CAAoBf,aAApB;;IACA,OAAO,KAAKQ,uBAAL,CAA6B3zB,OAApC;EApEuB;;EAuEzBk0B,eAAelC,MAAf,EAAuB;IACrB,MAAMmC,YAAY,KAAKb,aAAL,EAAlB;IAEA,MAAMc,eAAe,IAAItF,GAAJ,EAArB;;IACA,KAAKyE,sBAAL,CAA4BnP,GAA5B,CAAgC+P,SAAhC,EAA2CC,YAA3C;;IACA,WAAW1Q,KAAX,IAAoBsO,MAApB,EAA4B;MAC1B,IAAI,CAAC,KAAK/pB,MAAL,CAAY2qB,QAAZ,CAAqBlP,KAArB,CAAL,EAAkC;QAChC0Q,aAAapF,GAAboF,CAAiB1Q,KAAjB0Q;MAFwB;IALP;;IAWrB,IAAIA,aAAarH,IAAbqH,KAAsB,CAA1B,EAA6B;MAC3B,OAAOlxB,QAAQhD,OAARgD,EAAP;IAZmB;;IAerB,MAAMioB,aAAarrB,oCAAnB;;IACA,KAAK2zB,kBAAL,CAAwBrP,GAAxB,CAA4B+P,SAA5B,EAAuChJ,UAAvC;;IAEA,MAAMkJ,kBAAkB,EAAxB;;IACA,WAAW3Q,KAAX,IAAoB0Q,YAApB,EAAkC;MAChC,IAAIE,aAAa,KAAKd,gBAAL,CAAsBxqB,GAAtB,CAA0B0a,KAA1B,CAAjB;;MACA,IAAI,CAAC4Q,UAAL,EAAiB;QACfA,aAAa,EAAbA;;QACA,KAAKd,gBAAL,CAAsBpP,GAAtB,CAA0BV,KAA1B,EAAiC4Q,UAAjC;;QAEAD,gBAAgBvyB,IAAhBuyB,CAAqB3Q,KAArB2Q;MAN8B;;MAQhCC,WAAWxyB,IAAXwyB,CAAgBH,SAAhBG;IA3BmB;;IA8BrB,IAAID,gBAAgBtyB,MAAhBsyB,GAAyB,CAA7B,EAAgC;MAC9B,MAAME,yBAAyB,KAAKC,WAAL,CAAiBH,eAAjB,CAA/B;;MACA,WAAWI,YAAX,IAA2BF,sBAA3B,EAAmD;QACjD,MAAM7D,QAAQ+D,aAAatC,UAAbsC,GAA0B,KAAKjD,SAA7C;QACA,MAAMb,MAAM3qB,KAAKyd,GAALzd,CACVyuB,aAAapC,QAAboC,GAAwB,KAAKjD,SADnBxrB,EAEV,KAAKjE,MAFKiE,CAAZ;QAIA,KAAK4tB,WAAL,CAAiBlD,KAAjB,EAAwBC,GAAxB,EAA6BttB,KAA7B,CAAmC8nB,WAAW7mB,MAA9C;MAR4B;IA9BX;;IA0CrB,OAAO6mB,WAAWnrB,OAAXmrB,CAAmB9nB,KAAnB8nB,CAAyB7nB,UAAU;MACxC,IAAI,KAAKowB,OAAT,EAAkB;QAChB;MAFsC;;MAIxC,MAAMpwB,MAAN;IAJK,EAAP;EAjHuB;;EAyHzB4tB,YAAY;IACV,OAAO,KAAKjpB,MAAZ;EA1HuB;;EAgIzBwoB,aAAaC,KAAb,EAAoBC,GAApB,EAAyB;IACvBA,MAAM3qB,KAAKyd,GAALzd,CAAS2qB,GAAT3qB,EAAc,KAAKjE,MAAnBiE,CAAN2qB;IAEA,MAAMwB,aAAa,KAAKuC,aAAL,CAAmBhE,KAAnB,CAAnB;IACA,MAAM2B,WAAW,KAAKsC,WAAL,CAAiBhE,GAAjB,CAAjB;IAEA,MAAMqB,SAAS,EAAf;;IACA,KAAK,IAAItO,QAAQyO,UAAjB,EAA6BzO,QAAQ2O,QAArC,EAA+C,EAAE3O,KAAjD,EAAwD;MACtDsO,OAAOlwB,IAAPkwB,CAAYtO,KAAZsO;IARqB;;IAUvB,OAAO,KAAKkC,cAAL,CAAoBlC,MAApB,CAAP;EA1IuB;;EA6IzB4C,cAAcC,SAAS,EAAvB,EAA2B;IACzB,MAAMR,kBAAkB,EAAxB;;IACA,WAAWS,KAAX,IAAoBD,MAApB,EAA4B;MAC1B,MAAM1C,aAAa,KAAKuC,aAAL,CAAmBI,MAAMpE,KAAzB,CAAnB;MACA,MAAM2B,WAAW,KAAKsC,WAAL,CAAiBG,MAAMnE,GAAvB,CAAjB;;MACA,KAAK,IAAIjN,QAAQyO,UAAjB,EAA6BzO,QAAQ2O,QAArC,EAA+C,EAAE3O,KAAjD,EAAwD;QACtD,IAAI,CAAC2Q,gBAAgBU,QAAhBV,CAAyB3Q,KAAzB2Q,CAAL,EAAsC;UACpCA,gBAAgBvyB,IAAhBuyB,CAAqB3Q,KAArB2Q;QAFoD;MAH9B;IAFH;;IAYzBA,gBAAgBW,IAAhBX,CAAqB,UAAUlpB,CAAV,EAAaC,CAAb,EAAgB;MACnC,OAAOD,IAAIC,CAAX;IADF;IAGA,OAAO,KAAK8oB,cAAL,CAAoBG,eAApB,CAAP;EA5JuB;;EAmKzBG,YAAYxC,MAAZ,EAAoB;IAClB,MAAMiD,gBAAgB,EAAtB;IACA,IAAI9C,aAAa,CAAC,CAAlB;IACA,IAAI+C,YAAY,CAAC,CAAjB;;IAEA,KAAK,IAAIvyB,IAAI,CAAR,EAAWiJ,KAAKomB,OAAOjwB,MAA5B,EAAoCY,IAAIiJ,EAAxC,EAA4C,EAAEjJ,CAA9C,EAAiD;MAC/C,MAAM+gB,QAAQsO,OAAOrvB,CAAP,CAAd;;MACA,IAAIwvB,aAAa,CAAjB,EAAoB;QAClBA,aAAazO,KAAbyO;MAH6C;;MAM/C,IAAI+C,aAAa,CAAbA,IAAkBA,YAAY,CAAZA,KAAkBxR,KAAxC,EAA+C;QAC7CuR,cAAcnzB,IAAdmzB,CAAmB;UAAE9C,UAAF;UAAcE,UAAU6C,YAAY;QAApC,CAAnBD;QACA9C,aAAazO,KAAbyO;MAR6C;;MAU/C,IAAIxvB,IAAI,CAAJA,KAAUqvB,OAAOjwB,MAArB,EAA6B;QAC3BkzB,cAAcnzB,IAAdmzB,CAAmB;UAAE9C,UAAF;UAAcE,UAAU3O,QAAQ;QAAhC,CAAnBuR;MAX6C;;MAc/CC,YAAYxR,KAAZwR;IAnBgB;;IAqBlB,OAAOD,aAAP;EAxLuB;;EA2LzBlB,WAAWzD,IAAX,EAAiB;IACf,KAAKrrB,UAAL,CAAgBnE,IAAhB,CAAqB,aAArB,EAAoC;MAClCuE,QAAQ,KAAK4C,MAAL,CAAYgqB,eAAZ,GAA8B,KAAKT,SAAnC,GAA+ClB,KAAKjrB,MAD1B;MAElCU,OAAO,KAAKhE;IAFsB,CAApC;EA5LuB;;EAkMzBsvB,cAAcf,IAAd,EAAoB;IAClB,MAAM5M,QAAQ4M,KAAK5M,KAAnB;IACA,MAAMyR,gBAAgB7E,KAAKI,KAALJ,KAAepN,SAArC;IACA,MAAMwN,QAAQyE,gBAAgB,KAAKtD,qBAArB,GAA6CvB,KAAKI,KAAhE;IACA,MAAMC,MAAMD,QAAQhN,MAAMvb,UAA1B;IAEA,MAAMgqB,aAAansB,KAAKosB,KAALpsB,CAAW0qB,QAAQ,KAAKc,SAAxBxrB,CAAnB;IACA,MAAMqsB,WACJ1B,MAAM,KAAK5uB,MAAX4uB,GACI3qB,KAAKosB,KAALpsB,CAAW2qB,MAAM,KAAKa,SAAtBxrB,CADJ2qB,GAEI3qB,KAAK4rB,IAAL5rB,CAAU2qB,MAAM,KAAKa,SAArBxrB,CAHN;;IAKA,IAAImvB,aAAJ,EAAmB;MACjB,KAAKltB,MAAL,CAAYsqB,wBAAZ,CAAqC7O,KAArC;MACA,KAAKmO,qBAAL,GAA6BlB,GAA7B;IAFF,OAGO;MACL,KAAK1oB,MAAL,CAAYopB,aAAZ,CAA0BX,KAA1B,EAAiChN,KAAjC;IAhBgB;;IAmBlB,IAAI,KAAKzb,MAAL,CAAYiqB,YAAhB,EAA8B;MAC5B,KAAKyB,uBAAL,CAA6BzzB,OAA7B,CAAqC,KAAK+H,MAA1C;IApBgB;;IAuBlB,MAAMmtB,iBAAiB,EAAvB;;IACA,KAAK,IAAI9C,WAAWH,UAApB,EAAgCG,WAAWD,QAA3C,EAAqD,EAAEC,QAAvD,EAAiE;MAE/D,MAAMgC,aAAa,KAAKd,gBAAL,CAAsBxqB,GAAtB,CAA0BspB,QAA1B,CAAnB;;MACA,IAAI,CAACgC,UAAL,EAAiB;QACf;MAJ6D;;MAM/D,KAAKd,gBAAL,CAAsBtE,MAAtB,CAA6BoD,QAA7B;;MAEA,WAAW6B,SAAX,IAAwBG,UAAxB,EAAoC;QAClC,MAAMF,eAAe,KAAKb,sBAAL,CAA4BvqB,GAA5B,CAAgCmrB,SAAhC,CAArB;;QACA,IAAIC,aAAa1G,GAAb0G,CAAiB9B,QAAjB8B,CAAJ,EAAgC;UAC9BA,aAAalF,MAAbkF,CAAoB9B,QAApB8B;QAHgC;;QAMlC,IAAIA,aAAarH,IAAbqH,GAAoB,CAAxB,EAA2B;UACzB;QAPgC;;QASlCgB,eAAetzB,IAAfszB,CAAoBjB,SAApBiB;MAjB6D;IAxB/C;;IA+ClB,IAAI,CAAC,KAAKtwB,gBAAN,IAA0B,KAAK0uB,gBAAL,CAAsBzG,IAAtB,KAA+B,CAA7D,EAAgE;MAC9D,IAAI4F,cAAJ;;MACA,IAAI,KAAK1qB,MAAL,CAAYgqB,eAAZ,KAAgC,CAApC,EAAuC;QAIrC,MAAMoD,YAAY,KAAKptB,MAAL,CAAY0pB,SAAZ,GAAwB,CAA1C;;QACA,IAAI,CAAC,KAAK1pB,MAAL,CAAY2qB,QAAZ,CAAqByC,SAArB,CAAL,EAAsC;UACpC1C,iBAAiB0C,SAAjB1C;QANmC;MAAvC,OAQO;QACLA,iBAAiB,KAAK1qB,MAAL,CAAY0qB,cAAZ,CAA2BN,QAA3B,CAAjBM;MAX4D;;MAa9D,IAAI7R,OAAOC,SAAPD,CAAiB6R,cAAjB7R,CAAJ,EAAsC;QACpC,KAAKoT,cAAL,CAAoB,CAACvB,cAAD,CAApB;MAd4D;IA/C9C;;IAiElB,WAAWwB,SAAX,IAAwBiB,cAAxB,EAAwC;MACtC,MAAMjK,aAAa,KAAKsI,kBAAL,CAAwBzqB,GAAxB,CAA4BmrB,SAA5B,CAAnB;;MACA,KAAKV,kBAAL,CAAwBvE,MAAxB,CAA+BiF,SAA/B;;MACAhJ,WAAWjrB,OAAXirB;IApEgB;;IAuElB,KAAKlmB,UAAL,CAAgBnE,IAAhB,CAAqB,aAArB,EAAoC;MAClCuE,QAAQ,KAAK4C,MAAL,CAAYgqB,eAAZ,GAA8B,KAAKT,SADT;MAElCzrB,OAAO,KAAKhE;IAFsB,CAApC;EAzQuB;;EA+QzBuzB,QAAQC,GAAR,EAAa;IACX,KAAK5B,uBAAL,CAA6BrvB,MAA7B,CAAoCixB,GAApC;EAhRuB;;EAmRzBb,cAAchE,KAAd,EAAqB;IACnB,OAAO1qB,KAAKosB,KAALpsB,CAAW0qB,QAAQ,KAAKc,SAAxBxrB,CAAP;EApRuB;;EAuRzB2uB,YAAYhE,GAAZ,EAAiB;IACf,OAAO3qB,KAAKosB,KAALpsB,CAAY,OAAM,CAAN,IAAW,KAAKwrB,SAA5BxrB,IAAyC,CAAhD;EAxRuB;;EA2RzBsrB,MAAMhuB,MAAN,EAAc;IACZ,KAAKowB,OAAL,GAAe,IAAf;;IACA,IAAI,KAAK3C,gBAAT,EAA2B;MACzB,KAAKA,gBAAL,CAAsB3qB,iBAAtB,CAAwC9C,MAAxC;IAHU;;IAKZ,WAAW6nB,UAAX,IAAyB,KAAKsI,kBAAL,CAAwBhG,MAAxB,EAAzB,EAA2D;MACzDtC,WAAW7mB,MAAX6mB,CAAkB7nB,MAAlB6nB;IANU;EA3RW;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzP3B;;AASA;;AACA;;AAEA,SAASqK,qBAAT,CAA+BC,WAA/B,EAA4C;EAC1C,IAAIC,MAAJ;EACA,OAAO,YAAY;IACjB,IAAID,WAAJ,EAAiB;MACfC,SAAS3pB,OAAOC,MAAPD,CAAc,IAAdA,CAAT2pB;MACAD,YAAYC,MAAZ;MACAD,cAAc,IAAdA;IAJe;;IAMjB,OAAOC,MAAP;EANF;AA7BF;;AAuCA,SAASC,0BAAT,CAAoCF,WAApC,EAAiD;EAC/C,IAAIC,MAAJ;EACA,OAAO,YAAY;IACjB,IAAID,WAAJ,EAAiB;MACf,IAAI1R,MAAM0R,aAAV;MACAA,cAAc,IAAdA;MACAC,SAAS3pB,OAAOC,MAAPD,CAAc,IAAdA,CAAT2pB;;MACA,KAAK,IAAI/yB,IAAI,CAAR,EAAWiJ,KAAKmY,IAAIhiB,MAAzB,EAAiCY,IAAIiJ,EAArC,EAAyCjJ,KAAK,CAA9C,EAAiD;QAC/C+yB,OAAO3R,IAAIphB,CAAJ,CAAP,IAAiBohB,IAAIphB,IAAI,CAAR,CAAjB+yB;MALa;;MAOf3R,MAAM,IAANA;IARe;;IAUjB,OAAO2R,MAAP;EAVF;AAzCF;;AAuDA,MAAMvE,oBAAN,SAAmCxO,mBAAnC,CAAiD;EAC/CjjB,YAAYgxB,KAAZ,EAAmBC,GAAnB,EAAwB;IACtB,MAAO,iBAAgBD,KAAM,KAAIC,GAAI,GAArC,EAAyC,sBAAzC;IACA,KAAKD,KAAL,GAAaA,KAAb;IACA,KAAKC,GAAL,GAAWA,GAAX;EAJ6C;;AAAA;;;;AAQjD,MAAMiF,kBAAN,SAAiCjT,mBAAjC,CAA+C;EAC7CjjB,YAAYshB,GAAZ,EAAiB;IACf,MAAMA,GAAN,EAAW,oBAAX;EAF2C;;AAAA;;;;AAM/C,MAAM6U,kBAAN,SAAiClT,mBAAjC,CAA+C;EAC7CjjB,YAAYshB,GAAZ,EAAiB;IACf,MAAMA,GAAN,EAAW,oBAAX;EAF2C;;AAAA;;;;AAM/C,MAAM3Z,kBAAN,SAAiCsb,mBAAjC,CAA+C;EAC7CjjB,YAAYshB,GAAZ,EAAiB;IACf,MAAMA,GAAN,EAAW,oBAAX;EAF2C;;AAAA;;;;AAM/C,MAAM8U,QAAN,CAAe;EACbp2B,YAAYc,OAAZ,EAAqB;IACnB,KAAKu1B,QAAL,GAAgBv1B,OAAhB;IAEA,KAAKw1B,YAAL,GAAoB,IAAIlH,GAAJ,EAApB;IACA,KAAKmH,UAAL,GAAkB,IAAInH,GAAJ,EAAlB;EALW;;EAQboH,QAAQ;IACN,MAAMC,cAAcpqB,OAAOC,MAAPD,CAAc,IAAdA,CAApB;IAAA,MACEqqB,YAAYrqB,OAAOC,MAAPD,CAAc,IAAdA,CADd;;IAEA,WAAW0f,IAAX,IAAmB,KAAKuK,YAAxB,EAAsC;MACpCG,YAAY1K,IAAZ,IAAoB,IAApB0K;IAJI;;IAMN,WAAW1K,IAAX,IAAmB,KAAKwK,UAAxB,EAAoC;MAClCG,UAAU3K,IAAV,IAAkB,IAAlB2K;IAPI;;IASN,KAAKL,QAAL,CAAcj1B,IAAd,CAAmB,UAAnB,EAA+B;MAAEq1B,WAAF;MAAeC;IAAf,CAA/B;EAjBW;;EAoBbC,cAAc5K,IAAd,EAAoB;IAOlB,IAAI,KAAKuK,YAAL,CAAkBtI,GAAlB,CAAsBjC,IAAtB,CAAJ,EAAiC;MAC/B;IARgB;;IAUlB,KAAKuK,YAAL,CAAkBhH,GAAlB,CAAsBvD,IAAtB;;IACA,KAAKyK,KAAL;EA/BW;;EAkCbI,YAAY7K,IAAZ,EAAkB;IAOhB,IAAI,KAAKwK,UAAL,CAAgBvI,GAAhB,CAAoBjC,IAApB,CAAJ,EAA+B;MAC7B;IARc;;IAUhB,KAAKwK,UAAL,CAAgBjH,GAAhB,CAAoBvD,IAApB;;IACA,KAAKyK,KAAL;EA7CW;;AAAA;;;;AAqEf,SAASK,sBAAT,CAAgC;EAC9BnI,IAD8B;EAE9B/hB,GAF8B;EAG9BihB,WAAW,KAHmB;EAI9BkJ,gBAAgB;AAJc,CAAhC,EAKG;EACD,IAAI/I,MAAJ;EACA,MAAMgJ,UAAU,IAAI9H,kBAAJ,EAAhB;;EAEA,OAAOP,gBAAgB7iB,gBAAhB6iB,IAAwB,EAAEA,KAAK1B,KAAL0B,IAAcqI,QAAQ/I,GAAR+I,CAAYrI,KAAK1B,KAAjB+J,CAAhB,CAA/B,EAAyE;IACvE,IAAIrI,KAAK1B,KAAT,EAAgB;MACd+J,QAAQ1H,GAAR0H,CAAYrI,KAAK1B,KAAjB+J;IAFqE;;IAIvE,MAAM7wB,QAAQ0nB,WAAWc,KAAKd,QAALc,CAAc/hB,GAAd+hB,CAAX,GAAgCA,KAAKplB,GAALolB,CAAS/hB,GAAT+hB,CAA9C;;IACA,IAAIxoB,UAAUsd,SAAd,EAAyB;MACvB,IAAIsT,aAAJ,EAAmB;QACjB,OAAO5wB,KAAP;MAFqB;;MAIvB,IAAI,CAAC6nB,MAAL,EAAa;QACXA,SAAS,EAATA;MALqB;;MAOvBA,OAAO3rB,IAAP2rB,CAAY7nB,KAAZ6nB;IAZqE;;IAcvEW,OAAOA,KAAKplB,GAALolB,CAAS,QAATA,CAAPA;EAlBD;;EAoBD,OAAOX,MAAP;AA/KF;;AAmLA,MAAMiJ,mBAAmB,CACvB,EADuB,EACnB,GADmB,EACd,IADc,EACR,KADQ,EACD,IADC,EACK,GADL,EACU,IADV,EACgB,KADhB,EACuB,MADvB,EAC+B,IAD/B,EAEvB,EAFuB,EAEnB,GAFmB,EAEd,IAFc,EAER,KAFQ,EAED,IAFC,EAEK,GAFL,EAEU,IAFV,EAEgB,KAFhB,EAEuB,MAFvB,EAE+B,IAF/B,EAGvB,EAHuB,EAGnB,GAHmB,EAGd,IAHc,EAGR,KAHQ,EAGD,IAHC,EAGK,GAHL,EAGU,IAHV,EAGgB,KAHhB,EAGuB,MAHvB,EAG+B,IAH/B,CAAzB;;AAaA,SAASC,eAAT,CAAyBC,MAAzB,EAAiCC,YAAY,KAA7C,EAAoD;EAClDzV,kBACEN,OAAOC,SAAPD,CAAiB8V,MAAjB9V,KAA4B8V,SAAS,CADvCxV,EAEE,0CAFFA;EAIA,MAAM0V,WAAW,EAAjB;EACA,IAAI7S,GAAJ;;EAEA,OAAO2S,UAAU,IAAjB,EAAuB;IACrBA,UAAU,IAAVA;IACAE,SAASh1B,IAATg1B,CAAc,GAAdA;EAVgD;;EAalD7S,MAAO2S,SAAS,GAATA,GAAgB,CAAvB3S;EACA2S,UAAU,GAAVA;EACAE,SAASh1B,IAATg1B,CAAcJ,iBAAiBzS,GAAjB,CAAd6S;EAEA7S,MAAO2S,SAAS,EAATA,GAAe,CAAtB3S;EACA2S,UAAU,EAAVA;EACAE,SAASh1B,IAATg1B,CAAcJ,iBAAiB,KAAKzS,GAAtB,CAAd6S;EAEAA,SAASh1B,IAATg1B,CAAcJ,iBAAiB,KAAKE,MAAtB,CAAdE;EAEA,MAAMC,WAAWD,SAAS90B,IAAT80B,CAAc,EAAdA,CAAjB;EACA,OAAOD,YAAYE,SAASC,WAATD,EAAZ,GAAqCA,QAA5C;AAxNF;;AA8NA,SAASE,IAAT,CAAchsB,CAAd,EAAiB;EACf,IAAIA,KAAK,CAAT,EAAY;IACV,OAAO,CAAP;EAFa;;EAIf,OAAOjF,KAAK4rB,IAAL5rB,CAAUA,KAAKixB,IAALjxB,CAAUiF,CAAVjF,CAAVA,CAAP;AAlOF;;AAqOA,SAASkxB,QAAT,CAAkBr2B,IAAlB,EAAwBs2B,MAAxB,EAAgC;EAC9B,OAAQt2B,KAAKs2B,MAAL,KAAgB,EAAhBt2B,IAAuB,EAA/B;AAtOF;;AAyOA,SAASu2B,UAAT,CAAoBv2B,IAApB,EAA0Bs2B,MAA1B,EAAkC;EAChC,OAAQt2B,KAAKs2B,MAAL,KAAgB,CAAhBt2B,GAAqBA,KAAKs2B,SAAS,CAAd,CAA7B;AA1OF;;AA6OA,SAASE,UAAT,CAAoBx2B,IAApB,EAA0Bs2B,MAA1B,EAAkC;EAChC,OACG,CAACt2B,KAAKs2B,MAAL,KAAgB,EAAhBt2B,GACCA,KAAKs2B,SAAS,CAAd,KAAoB,EADrBt2B,GAECA,KAAKs2B,SAAS,CAAd,KAAoB,CAFrBt2B,GAGAA,KAAKs2B,SAAS,CAAd,CAHD,MAID,CALF;AA9OF;;AAwPA,SAASG,YAAT,CAAsBC,EAAtB,EAA0B;EACxB,OAAOA,OAAO,IAAPA,IAAeA,OAAO,IAAtBA,IAA8BA,OAAO,IAArCA,IAA6CA,OAAO,IAA3D;AAzPF;;AAqQA,SAASC,YAAT,CAAsBC,IAAtB,EAA4B;EAC1B,MAAMC,kBAAkB,gBAAxB;EACA,OAAOD,KAAKE,KAALF,CAAW,GAAXA,EAAgBhT,GAAhBgT,CAAoBG,aAAa;IACtC,MAAM3R,IAAI2R,UAAU7V,KAAV6V,CAAgBF,eAAhBE,CAAV;;IACA,IAAI3R,CAAJ,EAAO;MACL,OAAO;QAAEtmB,MAAMsmB,EAAE,CAAF,CAAR;QAAchC,KAAK4T,SAAS5R,EAAE,CAAF,CAAT,EAAe,EAAf;MAAnB,CAAP;IAHoC;;IAKtC,OAAO;MAAEtmB,MAAMi4B,SAAR;MAAmB3T,KAAK;IAAxB,CAAP;EALK,EAAP;AAvQF;;AAgRA,SAAS6T,aAAT,CAAuBjU,GAAvB,EAA4B;EAC1B,MAAMiB,SAAS,EAAf;EACA,IAAI1X,QAAQ,CAAZ;;EACA,KAAK,IAAIzK,IAAI,CAAR,EAAWiJ,KAAKiY,IAAI9hB,MAAzB,EAAiCY,IAAIiJ,EAArC,EAAyCjJ,GAAzC,EAA8C;IAC5C,MAAMsnB,OAAOpG,IAAIC,UAAJD,CAAelhB,CAAfkhB,CAAb;;IAEA,IACEoG,OAAO,IAAPA,IACAA,OAAO,IADPA,IAEAA,SAAS,IAFTA,IAGAA,SAAS,IAHTA,IAIAA,SAAS,IAJTA,IAKAA,SAAS,IALTA,IAMAA,SAAS,IANTA,IAOAA,SAAS,IAPTA,IAQAA,SAAS,IARTA,IASAA,SAAS,IATTA,IAUAA,SAAS,IAVTA,IAWAA,SAAS,IAXTA,IAYAA,SAAS,IAbX,EAcE;MACA,IAAI7c,QAAQzK,CAAZ,EAAe;QACbmiB,OAAOhjB,IAAPgjB,CAAYjB,IAAIkU,SAAJlU,CAAczW,KAAdyW,EAAqBlhB,CAArBkhB,CAAZiB;MAFF;;MAIAA,OAAOhjB,IAAPgjB,CAAa,IAAGmF,KAAK7iB,QAAL6iB,CAAc,EAAdA,CAAJ,EAAZnF;MACA1X,QAAQzK,IAAI,CAAZyK;IAtB0C;EAHpB;;EA6B1B,IAAI0X,OAAO/iB,MAAP+iB,KAAkB,CAAtB,EAAyB;IACvB,OAAOjB,GAAP;EA9BwB;;EAiC1B,IAAIzW,QAAQyW,IAAI9hB,MAAhB,EAAwB;IACtB+iB,OAAOhjB,IAAPgjB,CAAYjB,IAAIkU,SAAJlU,CAAczW,KAAdyW,EAAqBA,IAAI9hB,MAAzB8hB,CAAZiB;EAlCwB;;EAqC1B,OAAOA,OAAO9iB,IAAP8iB,CAAY,EAAZA,CAAP;AArTF;;AAwTA,SAASkT,UAAT,CAAoBC,KAApB,EAA2BttB,IAA3B,EAAiCutB,IAAjC,EAAuCC,OAAvC,EAAgD;EAC9C,IAAI,CAACF,KAAL,EAAY;IACV;EAF4C;;EAK9C,IAAIrJ,SAAS,IAAb;;EACA,IAAIqJ,iBAAiBlvB,eAArB,EAA0B;IACxB,IAAIovB,QAAQzK,GAARyK,CAAYF,KAAZE,CAAJ,EAAwB;MAEtB;IAHsB;;IAKxBvJ,SAASqJ,KAATrJ;IACAuJ,QAAQpJ,GAARoJ,CAAYvJ,MAAZuJ;IACAF,QAAQttB,KAAKwiB,KAALxiB,CAAWstB,KAAXttB,CAARstB;EAb4C;;EAe9C,IAAIvsB,MAAMC,OAAND,CAAcusB,KAAdvsB,CAAJ,EAA0B;IACxB,WAAW0sB,OAAX,IAAsBH,KAAtB,EAA6B;MAC3BD,WAAWI,OAAX,EAAoBztB,IAApB,EAA0ButB,IAA1B,EAAgCC,OAAhC;IAFsB;EAA1B,OAIO,IAAIF,iBAAiB1sB,gBAArB,EAA2B;IAChC,IAAIgkB,wBAAO0I,MAAMjvB,GAANivB,CAAU,GAAVA,CAAP1I,EAAuB,YAAvBA,CAAJ,EAA0C;MACxC,MAAM8I,KAAKJ,MAAMjvB,GAANivB,CAAU,IAAVA,CAAX;MACA,IAAItxB,IAAJ;;MACA,IAAI0xB,cAAcC,uBAAlB,EAA8B;QAC5B3xB,OAAO0xB,GAAGE,SAAHF,EAAP1xB;MADF,OAEO,IAAI,OAAO0xB,EAAP,KAAc,QAAlB,EAA4B;QACjC1xB,OAAO0xB,EAAP1xB;MANsC;;MAQxCA,OAAOA,QAAQ2F,6BAAkB3F,IAAlB2F,CAAf3F;;MACA,IAAIA,IAAJ,EAAU;QACRuxB,KAAKp2B,IAALo2B,CAAUvxB,IAAVuxB;MAVsC;IADV;;IAchCF,WAAWC,MAAMzrB,MAANyrB,CAAa,MAAbA,CAAX,EAAiCttB,IAAjC,EAAuCutB,IAAvC,EAA6CC,OAA7C;EAjC4C;;EAoC9C,IAAIvJ,MAAJ,EAAY;IACVuJ,QAAQlJ,MAARkJ,CAAevJ,MAAfuJ;EArC4C;AAxThD;;AAiWA,SAASK,cAAT,CAAwB7tB,IAAxB,EAA8ByjB,IAA9B,EAAoCqK,SAApC,EAA+C;EAC7C,MAAMC,UAAU3sB,OAAOC,MAAPD,CAAc,IAAdA,CAAhB;EACA,MAAM4sB,yBAAyBpC,uBAAuB;IACpDnI,IADoD;IAEpD/hB,KAAK,IAF+C;IAGpDmqB,eAAe;EAHqC,CAAvB,CAA/B;;EAKA,IAAImC,sBAAJ,EAA4B;IAM1B,KAAK,IAAIh2B,IAAIg2B,uBAAuB52B,MAAvB42B,GAAgC,CAA7C,EAAgDh2B,KAAK,CAArD,EAAwDA,GAAxD,EAA6D;MAC3D,MAAMi2B,oBAAoBD,uBAAuBh2B,CAAvB,CAA1B;;MACA,IAAI,EAAEi2B,6BAA6BrtB,gBAA/B,CAAJ,EAA0C;QACxC;MAHyD;;MAK3D,WAAWc,GAAX,IAAkBusB,kBAAkBrL,OAAlBqL,EAAlB,EAA+C;QAC7C,MAAMC,SAASJ,UAAUpsB,GAAV,CAAf;;QACA,IAAI,CAACwsB,MAAL,EAAa;UACX;QAH2C;;QAK7C,MAAMC,aAAaF,kBAAkBpsB,MAAlBosB,CAAyBvsB,GAAzBusB,CAAnB;QACA,MAAMT,UAAU,IAAIxJ,kBAAJ,EAAhB;QACA,MAAMuJ,OAAO,EAAb;;QACAF,WAAWc,UAAX,EAAuBnuB,IAAvB,EAA6ButB,IAA7B,EAAmCC,OAAnC;;QACA,IAAID,KAAKn2B,MAALm2B,GAAc,CAAlB,EAAqB;UACnBQ,QAAQG,MAAR,IAAkBX,IAAlBQ;QAV2C;MALY;IANnC;EAPiB;;EAkC7C,IAAItK,KAAKV,GAALU,CAAS,GAATA,CAAJ,EAAmB;IACjB,MAAM0K,aAAa1K,KAAKplB,GAALolB,CAAS,GAATA,CAAnB;IACA,MAAM+J,UAAU,IAAIxJ,kBAAJ,EAAhB;IACA,MAAMuJ,OAAO,EAAb;;IACAF,WAAWc,UAAX,EAAuBnuB,IAAvB,EAA6ButB,IAA7B,EAAmCC,OAAnC;;IACA,IAAID,KAAKn2B,MAALm2B,GAAc,CAAlB,EAAqB;MACnBQ,QAAQK,MAARL,GAAiBR,IAAjBQ;IANe;EAlC0B;;EA2C7C,OAAOpU,sBAAWoU,OAAXpU,IAAsB,CAAtBA,GAA0BoU,OAA1BpU,GAAoC,IAA3C;AA5YF;;AA+YA,MAAM0U,cAAc;EACV,MAAM,MADI;EAEV,MAAM,MAFI;EAGV,MAAM,OAHI;EAIV,MAAM,QAJI;EAKV,MAAM;AALI,CAApB;;AAQA,SAASC,iBAAT,CAA2BpV,GAA3B,EAAgC;EAC9B,MAAMiB,SAAS,EAAf;EACA,IAAI1X,QAAQ,CAAZ;;EACA,KAAK,IAAIzK,IAAI,CAAR,EAAWiJ,KAAKiY,IAAI9hB,MAAzB,EAAiCY,IAAIiJ,EAArC,EAAyCjJ,GAAzC,EAA8C;IAC5C,MAAMsnB,OAAOpG,IAAIqV,WAAJrV,CAAgBlhB,CAAhBkhB,CAAb;;IACA,IAAI,QAAQoG,IAAR,IAAgBA,QAAQ,IAA5B,EAAkC;MAEhC,MAAMkP,SAASH,YAAY/O,IAAZ,CAAf;;MACA,IAAIkP,MAAJ,EAAY;QACV,IAAI/rB,QAAQzK,CAAZ,EAAe;UACbmiB,OAAOhjB,IAAPgjB,CAAYjB,IAAIkU,SAAJlU,CAAczW,KAAdyW,EAAqBlhB,CAArBkhB,CAAZiB;QAFQ;;QAIVA,OAAOhjB,IAAPgjB,CAAYqU,MAAZrU;QACA1X,QAAQzK,IAAI,CAAZyK;MAR8B;IAAlC,OAUO;MACL,IAAIA,QAAQzK,CAAZ,EAAe;QACbmiB,OAAOhjB,IAAPgjB,CAAYjB,IAAIkU,SAAJlU,CAAczW,KAAdyW,EAAqBlhB,CAArBkhB,CAAZiB;MAFG;;MAILA,OAAOhjB,IAAPgjB,CAAa,MAAKmF,KAAK7iB,QAAL6iB,CAAc,EAAdA,EAAkBmP,WAAlBnP,EAAgC,GAAlDnF;;MACA,IAAImF,OAAO,MAAPA,KAAkBA,OAAO,MAAPA,IAAiBA,OAAO,MAA1CA,CAAJ,EAAuD;QAErDtnB;MAPG;;MASLyK,QAAQzK,IAAI,CAAZyK;IArB0C;EAHhB;;EA4B9B,IAAI0X,OAAO/iB,MAAP+iB,KAAkB,CAAtB,EAAyB;IACvB,OAAOjB,GAAP;EA7B4B;;EA+B9B,IAAIzW,QAAQyW,IAAI9hB,MAAhB,EAAwB;IACtB+iB,OAAOhjB,IAAPgjB,CAAYjB,IAAIkU,SAAJlU,CAAczW,KAAdyW,EAAqBA,IAAI9hB,MAAzB8hB,CAAZiB;EAhC4B;;EAkC9B,OAAOA,OAAO9iB,IAAP8iB,CAAY,EAAZA,CAAP;AAzbF;;AA4bA,SAASuU,eAAT,CAAyBC,WAAzB,EAAsC;EAEpC,MAAMC,2BAA2B,IAAjC;EAEA,MAAMC,0BAA0B,KAAhC;EACA,MAAMC,yBAAyB,IAAI3K,GAAJ,CAAQ,CACrC,KADqC,EAErC,KAFqC,EAGrC,KAHqC,EAIrC,KAJqC,EAKrC,KALqC,EAMrC,KANqC,EAOrC,KAPqC,EAQrC,KARqC,EASrC,KATqC,EAUrC,MAVqC,EAWrC,QAXqC,EAYrC,MAZqC,EAarC,QAbqC,EAcrC,SAdqC,CAAR,CAA/B;EAiBA,MAAM;IAAE4K,UAAF;IAAcC,UAAd;IAA0BC;EAA1B,IAA0CN,WAAhD;;EAGA,IAAI,SAASxP,IAAT,CAAc4P,UAAd,CAAJ,EAA+B;IAC7B,IAAI,SAAS5P,IAAT,CAAc4P,WAAWjT,KAAXiT,CAAiB,CAAjBA,EAAoBA,WAAW33B,MAAX23B,GAAoB,CAAxCA,CAAd,CAAJ,EAA+D;MAC7Dj0B,gBAAM,+CAA8Ci0B,UAAW,GAA/Dj0B;MACA,OAAO,KAAP;IAH2B;EAA/B,OAKO,IAAI,SAASqkB,IAAT,CAAc4P,UAAd,CAAJ,EAA+B;IACpC,IAAI,SAAS5P,IAAT,CAAc4P,WAAWjT,KAAXiT,CAAiB,CAAjBA,EAAoBA,WAAW33B,MAAX23B,GAAoB,CAAxCA,CAAd,CAAJ,EAA+D;MAC7Dj0B,gBAAM,+CAA8Ci0B,UAAW,GAA/Dj0B;MACA,OAAO,KAAP;IAHkC;EAA/B,OAKA;IAEL,WAAWo0B,KAAX,IAAoBH,WAAW/B,KAAX+B,CAAiB,QAAjBA,CAApB,EAAgD;MAC9C,IAAI,kBAAkB5P,IAAlB,CAAuB+P,KAAvB,KAAiC,CAAC,aAAa/P,IAAb,CAAkB+P,KAAlB,CAAtC,EAAgE;QAC9Dp0B,gBACG,0DAAyDi0B,UAAW,GADvEj0B;QAGA,OAAO,KAAP;MAL4C;IAF3C;EAnC6B;;EA+CpC,MAAMq0B,SAASH,aAAaA,WAAWvyB,QAAXuyB,EAAb,GAAqC,EAApD;EACAL,YAAYK,UAAZL,GAAyBG,uBAAuB/L,GAAvB+L,CAA2BK,MAA3BL,IACrBK,MADqBL,GAErBD,uBAFJF;EAIA,MAAMS,QAAQC,WAAWJ,WAAX,CAAd;EACAN,YAAYM,WAAZN,GACEW,MAAMF,KAAN,KAAgBA,QAAQ,CAAC,EAAzBE,IAA+BF,QAAQ,EAAvCE,GACIV,wBADJU,GAEIL,YAAYxyB,QAAZwyB,EAHNN;EAKA,OAAO,IAAP;AAtfF;;AAyfA,SAASY,YAAT,CAAsBrW,GAAtB,EAA2B;EAMzB,MAAMsW,mBAAmB,CAAC,eAAD,EAAkB,aAAlB,EAAiC,kBAAjC,CAAzB;EACA,MAAMC,QAAQ,IAAIC,MAAJ,CACZ,WACEF,iBAAiBn4B,IAAjBm4B,CAAsB,GAAtBA,EAA2BxC,KAA3BwC,CAAiC,GAAjCA,EAAsCn4B,IAAtCm4B,CAA2C,KAA3CA,CADF,GAEE,qDAHU,EAIZ,GAJY,CAAd;EAOA,MAAMG,QAAQF,MAAMG,IAANH,CAAWvW,GAAXuW,CAAd;;EACA,IAAIE,SAASA,MAAM,CAAN,CAAb,EAAuB;IACrB,MAAM/Y,MAAM+Y,MAAM,CAAN,CAAZ;IACA,IAAIE,YAAY,KAAhB;;IAEA,IAAIF,MAAM,CAAN,MAAa,MAAbA,IAAuBA,MAAM,CAAN,MAAa,eAAxC,EAAyD;MACvDE,YAAY,IAAZA;IALmB;;IAOrB,OAAO;MAAEjZ,GAAF;MAAOiZ;IAAP,CAAP;EAtBuB;;EAyBzB,OAAO,IAAP;AAlhBF;;;;;;;;;;;;;ACeA;;AAEA,MAAMlC,UAAN,CAAiB;EACf54B,cAAc;IACZ,IAAI,KAAKA,WAAL,KAAqB44B,UAAzB,EAAqC;MACnCnX,uBAAY,+BAAZA;IAFU;EADC;;EAQf,IAAIpf,MAAJ,GAAa;IACXof,uBAAY,mCAAZA;EATa;;EAaf,IAAIsZ,OAAJ,GAAc;IACZtZ,uBAAY,oCAAZA;EAda;;EAiBf,IAAI+Q,YAAJ,GAAmB;IACjB,OAAO9P,kBAAO,IAAPA,EAAa,cAAbA,EAA6B,IAA7BA,CAAP;EAlBa;;EAqBfyQ,UAAU;IACR1R,uBAAY,kCAAZA;EAtBa;;EAyBf2R,SAAS/wB,MAAT,EAAiB;IACfof,uBAAY,mCAAZA;EA1Ba;;EA6BfuZ,WAAW;IACT,MAAMC,aAAa,KAAK9H,OAAL,EAAnB;;IACA,IAAI8H,eAAe,CAAC,CAApB,EAAuB;MACrB,KAAK1W,GAAL;IAHO;;IAKT,OAAO0W,UAAP;EAlCa;;EAqCfC,UAAU74B,MAAV,EAAkB;IAChB,MAAMmG,QAAQ,KAAK4qB,QAAL,CAAc/wB,MAAd,CAAd;IACA,KAAKkiB,GAAL,IAAY/b,MAAMnG,MAAlB;IACA,OAAOmG,KAAP;EAxCa;;EA2Cf2yB,YAAY;IACV,MAAMC,KAAK,KAAKjI,OAAL,EAAX;IACA,MAAMkI,KAAK,KAAKlI,OAAL,EAAX;;IACA,IAAIiI,OAAO,CAAC,CAARA,IAAaC,OAAO,CAAC,CAAzB,EAA4B;MAC1B,OAAO,CAAC,CAAR;IAJQ;;IAMV,OAAQ,OAAM,CAAN,IAAWA,EAAnB;EAjDa;;EAoDfC,WAAW;IACT,MAAMF,KAAK,KAAKjI,OAAL,EAAX;IACA,MAAMkI,KAAK,KAAKlI,OAAL,EAAX;IACA,MAAMoI,KAAK,KAAKpI,OAAL,EAAX;IACA,MAAMqI,KAAK,KAAKrI,OAAL,EAAX;IACA,OAAQ,OAAM,EAAN,KAAakI,MAAM,EAAnB,KAA0BE,MAAM,CAAhC,IAAqCC,EAA7C;EAzDa;;EA4DflI,aAAatC,KAAb,EAAoBC,GAApB,EAAyB;IACvBxP,uBAAY,uCAAZA;EA7Da;;EAgEfoX,UAAUx2B,MAAV,EAAkB;IAChB,OAAOkhB,yBAAc,KAAK6P,QAAL,CAAc/wB,MAAd,CAAdkhB,CAAP;EAjEa;;EAoEfkY,KAAK/V,CAAL,EAAQ;IACN,KAAKnB,GAAL,IAAYmB,KAAK,CAAjB;EArEa;;EAwEfgW,QAAQ;IACNja,uBAAY,gCAAZA;EAzEa;;EA4Efka,YAAY;IACVla,uBAAY,oCAAZA;EA7Ea;;EAgFf8R,cAAc7lB,KAAd,EAAqBrL,MAArB,EAA6BqsB,OAAO,IAApC,EAA0C;IACxCjN,uBAAY,wCAAZA;EAjFa;;EAuFfkS,iBAAiB;IACf,OAAO,IAAP;EAxFa;;AAAA;;;;;;;;;;;;;;;ACFjB;;AACA;;AAEA,MAAMzC,MAAN,SAAqB0H,uBAArB,CAAgC;EAC9B54B,YAAY47B,WAAZ,EAAyBluB,KAAzB,EAAgCrL,MAAhC,EAAwCqsB,IAAxC,EAA8C;IAC5C;IAEA,KAAKlmB,KAAL,GACEozB,uBAAuBv6B,UAAvBu6B,GACIA,WADJA,GAEI,IAAIv6B,UAAJ,CAAeu6B,WAAf,CAHN;IAIA,KAAKluB,KAAL,GAAaA,SAAS,CAAtB;IACA,KAAK6W,GAAL,GAAW,KAAK7W,KAAhB;IACA,KAAKujB,GAAL,GAAWvjB,QAAQrL,MAARqL,IAAkB,KAAKlF,KAAL,CAAWnG,MAAxC;IACA,KAAKqsB,IAAL,GAAYA,IAAZ;EAX4B;;EAc9B,IAAIrsB,MAAJ,GAAa;IACX,OAAO,KAAK4uB,GAAL,GAAW,KAAKvjB,KAAvB;EAf4B;;EAkB9B,IAAIqtB,OAAJ,GAAc;IACZ,OAAO,KAAK14B,MAAL,KAAgB,CAAvB;EAnB4B;;EAsB9B8wB,UAAU;IACR,IAAI,KAAK5O,GAAL,IAAY,KAAK0M,GAArB,EAA0B;MACxB,OAAO,CAAC,CAAR;IAFM;;IAIR,OAAO,KAAKzoB,KAAL,CAAW,KAAK+b,GAAL,EAAX,CAAP;EA1B4B;;EA6B9B6O,SAAS/wB,MAAT,EAAiB;IACf,MAAMmG,QAAQ,KAAKA,KAAnB;IACA,MAAM+b,MAAM,KAAKA,GAAjB;IACA,MAAM8O,SAAS,KAAKpC,GAApB;;IAEA,IAAI,CAAC5uB,MAAL,EAAa;MACX,OAAOmG,MAAMyb,QAANzb,CAAe+b,GAAf/b,EAAoB6qB,MAApB7qB,CAAP;IANa;;IAQf,IAAIyoB,MAAM1M,MAAMliB,MAAhB;;IACA,IAAI4uB,MAAMoC,MAAV,EAAkB;MAChBpC,MAAMoC,MAANpC;IAVa;;IAYf,KAAK1M,GAAL,GAAW0M,GAAX;IACA,OAAOzoB,MAAMyb,QAANzb,CAAe+b,GAAf/b,EAAoByoB,GAApBzoB,CAAP;EA1C4B;;EA6C9B8qB,aAAatC,KAAb,EAAoBC,GAApB,EAAyB;IACvB,IAAID,QAAQ,CAAZ,EAAe;MACbA,QAAQ,CAARA;IAFqB;;IAIvB,IAAIC,MAAM,KAAKA,GAAf,EAAoB;MAClBA,MAAM,KAAKA,GAAXA;IALqB;;IAOvB,OAAO,KAAKzoB,KAAL,CAAWyb,QAAX,CAAoB+M,KAApB,EAA2BC,GAA3B,CAAP;EApD4B;;EAuD9ByK,QAAQ;IACN,KAAKnX,GAAL,GAAW,KAAK7W,KAAhB;EAxD4B;;EA2D9BiuB,YAAY;IACV,KAAKjuB,KAAL,GAAa,KAAK6W,GAAlB;EA5D4B;;EA+D9BgP,cAAc7lB,KAAd,EAAqBrL,MAArB,EAA6BqsB,OAAO,IAApC,EAA0C;IACxC,OAAO,IAAIwC,MAAJ,CAAW,KAAK1oB,KAAL,CAAW4c,MAAtB,EAA8B1X,KAA9B,EAAqCrL,MAArC,EAA6CqsB,IAA7C,CAAP;EAhE4B;;AAAA;;;;AAoEhC,MAAMmN,YAAN,SAA2B3K,MAA3B,CAAkC;EAChClxB,YAAYmkB,GAAZ,EAAiB;IACf,MAAMD,yBAAcC,GAAdD,CAAN;EAF8B;;AAAA;;;;AAMlC,MAAM4X,UAAN,SAAyB5K,MAAzB,CAAgC;EAC9BlxB,cAAc;IACZ,MAAM,IAAIqB,UAAJ,CAAe,CAAf,CAAN;EAF4B;;AAAA;;;;;;;;;;;;;;;AC7EhC;;AAkBA;;AASA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,MAAM06B,oBAAoB,GAA1B;AACA,MAAMC,uBAAuB,CAAC,CAAD,EAAI,CAAJ,EAAO,GAAP,EAAY,GAAZ,CAA7B;;AAEA,MAAMC,IAAN,CAAW;EACTj8B,YAAY;IACV4B,UADU;IAEVqJ,IAFU;IAGVrC,SAHU;IAIVszB,QAJU;IAKVlzB,GALU;IAMVmzB,eANU;IAOVC,SAPU;IAQVC,gBARU;IASVC,qBATU;IAUVC,gBAVU;IAWVC,gBAXU;IAYVC;EAZU,CAAZ,EAaG;IACD,KAAK76B,UAAL,GAAkBA,UAAlB;IACA,KAAKgH,SAAL,GAAiBA,SAAjB;IACA,KAAKszB,QAAL,GAAgBA,QAAhB;IACA,KAAKjxB,IAAL,GAAYA,IAAZ;IACA,KAAKjC,GAAL,GAAWA,GAAX;IACA,KAAKozB,SAAL,GAAiBA,SAAjB;IACA,KAAKC,gBAAL,GAAwBA,gBAAxB;IACA,KAAKC,qBAAL,GAA6BA,qBAA7B;IACA,KAAKC,gBAAL,GAAwBA,gBAAxB;IACA,KAAKC,gBAAL,GAAwBA,gBAAxB;IACA,KAAKp4B,gBAAL,GAAwBxC,WAAWwC,gBAAnC;IACA,KAAKs4B,gBAAL,GAAwB,IAAxB;IACA,KAAKD,UAAL,GAAkBA,UAAlB;IAEA,MAAME,aAAa;MACjBha,KAAK;IADY,CAAnB;IAGA,KAAKia,eAAL,GAAuB,cAAcT,eAAd,CAA8B;MACnD,OAAOU,WAAP,GAAqB;QACnB,OAAQ,IAAGj0B,SAAU,IAAG,EAAE+zB,WAAWha,GAA9B,EAAP;MAFiD;;MAKnD,OAAOma,YAAP,GAAsB;QACpB,OAAQ,OAAM9zB,IAAItB,QAAJsB,EAAP,EAAP;MANiD;;IAAA,CAArD;EAhCO;;EA8CT+zB,wBAAwBpwB,GAAxB,EAA6BihB,WAAW,KAAxC,EAA+C;IAC7C,MAAM1nB,QAAQ2wB,wCAAuB;MACnCnI,MAAM,KAAKwN,QADwB;MAEnCvvB,GAFmC;MAGnCihB,QAHmC;MAInCkJ,eAAe;IAJoB,CAAvBD,CAAd;;IAMA,IAAI,CAAC7qB,MAAMC,OAAND,CAAc9F,KAAd8F,CAAL,EAA2B;MACzB,OAAO9F,KAAP;IAR2C;;IAU7C,IAAIA,MAAM7D,MAAN6D,KAAiB,CAAjBA,IAAsB,EAAEA,MAAM,CAAN,aAAoB2F,gBAAtB,CAA1B,EAAuD;MACrD,OAAO3F,MAAM,CAAN,CAAP;IAX2C;;IAa7C,OAAO2F,iBAAKuiB,KAALviB,CAAW;MAAEZ,MAAM,KAAKA,IAAb;MAAmBojB,WAAWnoB;IAA9B,CAAX2F,CAAP;EA3DO;;EA8DT,IAAImxB,OAAJ,GAAc;IACZ,OAAO,KAAKd,QAAL,CAActO,QAAd,CAAuB,UAAvB,CAAP;EA/DO;;EAkET,IAAIqP,SAAJ,GAAgB;IAId,OAAOva,kBACL,IADKA,EAEL,WAFKA,EAGL,KAAKqa,uBAAL,CAA6B,WAA7B,KAA6ClxB,iBAAKqiB,KAH7CxL,CAAP;EAtEO;;EA6ETwa,gBAAgBj9B,IAAhB,EAAsB;IACpB,IAAI,KAAKmL,OAAT,EAAkB;MAChB,OAAO,KAAKA,OAAL,CAAa+xB,IAApB;IAFkB;;IAKpB,MAAMC,MAAM,KAAKL,uBAAL,CAA6B98B,IAA7B,EAAoD,IAApD,CAAZ;;IAEA,IAAI+L,MAAMC,OAAND,CAAcoxB,GAAdpxB,KAAsBoxB,IAAI/6B,MAAJ+6B,KAAe,CAAzC,EAA4C;MAC1C,IAAIA,IAAI,CAAJ,IAASA,IAAI,CAAJ,CAATA,KAAoB,CAApBA,IAAyBA,IAAI,CAAJ,IAASA,IAAI,CAAJ,CAATA,KAAoB,CAAjD,EAAoD;QAClD,OAAOA,GAAP;MAFwC;;MAI1Cr3B,gBAAM,UAAS9F,IAAK,SAApB8F;IAXkB;;IAapB,OAAO,IAAP;EA1FO;;EA6FT,IAAIs3B,QAAJ,GAAe;IAEb,OAAO3a,kBACL,IADKA,EAEL,UAFKA,EAGL,KAAKwa,eAAL,CAAqB,UAArB,KAAoClB,oBAH/BtZ,CAAP;EA/FO;;EAsGT,IAAI4a,OAAJ,GAAc;IAEZ,OAAO5a,kBACL,IADKA,EAEL,SAFKA,EAGL,KAAKwa,eAAL,CAAqB,SAArB,KAAmC,KAAKG,QAHnC3a,CAAP;EAxGO;;EA+GT,IAAIzZ,QAAJ,GAAe;IACb,IAAI0Z,MAAM,KAAKuZ,QAAL,CAAc5yB,GAAd,CAAkB,UAAlB,CAAV;;IACA,IAAI,OAAOqZ,GAAP,KAAe,QAAf,IAA2BA,OAAO,CAAtC,EAAyC;MACvCA,MAAMoZ,iBAANpZ;IAHW;;IAKb,OAAOD,kBAAO,IAAPA,EAAa,UAAbA,EAAyBC,GAAzBD,CAAP;EApHO;;EAuHT,IAAIxZ,IAAJ,GAAW;IAKT,MAAM;MAAEo0B,OAAF;MAAWD;IAAX,IAAwB,IAA9B;IACA,IAAIn0B,IAAJ;;IACA,IAAIo0B,YAAYD,QAAZC,IAAwBxS,wBAAawS,OAAbxS,EAAsBuS,QAAtBvS,CAA5B,EAA6D;MAC3D5hB,OAAOm0B,QAAPn0B;IADF,OAEO;MACL,MAAMk0B,MAAMxX,WAAKmC,SAALnC,CAAe0X,OAAf1X,EAAwByX,QAAxBzX,CAAZ;;MACA,IAAIwX,OAAOA,IAAI,CAAJ,IAASA,IAAI,CAAJ,CAATA,KAAoB,CAA3BA,IAAgCA,IAAI,CAAJ,IAASA,IAAI,CAAJ,CAATA,KAAoB,CAAxD,EAA2D;QACzDl0B,OAAOk0B,GAAPl0B;MADF,OAEO;QACLnD,gBAAK,4CAALA;MALG;IATE;;IAiBT,OAAO2c,kBAAO,IAAPA,EAAa,MAAbA,EAAqBxZ,QAAQm0B,QAA7B3a,CAAP;EAxIO;;EA2IT,IAAI3Z,MAAJ,GAAa;IACX,IAAIA,SAAS,KAAKg0B,uBAAL,CAA6B,QAA7B,KAA0C,CAAvD;;IAGA,IAAIh0B,SAAS,EAATA,KAAgB,CAApB,EAAuB;MACrBA,SAAS,CAATA;IADF,OAEO,IAAIA,UAAU,GAAd,EAAmB;MACxBA,UAAU,GAAVA;IADK,OAEA,IAAIA,SAAS,CAAb,EAAgB;MAGrBA,SAAU,CAACA,SAAS,GAATA,GAAgB,GAAjB,IAAwB,GAAlCA;IAXS;;IAaX,OAAO2Z,kBAAO,IAAPA,EAAa,QAAbA,EAAuB3Z,MAAvB2Z,CAAP;EAxJO;;EA8JT6a,kBAAkBz8B,OAAlB,EAA2B8C,MAA3B,EAAmCopB,KAAnC,EAA0C;IACxC,IAAI,KAAK5oB,gBAAL,CAAsB4D,YAA1B,EAAwC;MAGtClH,QAAQM,IAARN,CAAa,oBAAbA,EAAmC;QACjCqN,WAAWC,2BAAqB2S;MADC,CAAnCjgB;MAGAiF,gBAAM,2CAA0CinB,KAAM,OAAMppB,MAAO,IAAnEmC;MACA;IARsC;;IAUxC,MAAMnC,MAAN;EAxKO;;EA8KT45B,iBAAiB18B,OAAjB,EAA0B;IACxB,OAAO,KAAKc,UAAL,CAAgBkH,MAAhB,CAAuB,IAAvB,EAA6B,SAA7B,EAAwCjF,IAAxC,CAA6Cm5B,WAAW;MAC7D,IAAIA,mBAAmBpE,uBAAvB,EAAmC;QACjC,OAAOoE,OAAP;MAF2D;;MAI7D,IAAIhxB,MAAMC,OAAND,CAAcgxB,OAAdhxB,CAAJ,EAA4B;QAC1B,OAAO,IAAIyxB,oCAAJ,CACLT,OADK,EAEL,KAAKO,iBAAL,CAAuBjJ,IAAvB,CAA4B,IAA5B,EAAkCxzB,OAAlC,CAFK,CAAP;MAL2D;;MAW7D,OAAO,IAAIg7B,kBAAJ,EAAP;IAXK,EAAP;EA/KO;;EA8LT,IAAI1wB,OAAJ,GAAc;IACZ,OAAOsX,kBACL,IADKA,EAEL,SAFKA,EAGL,KAAK+Z,UAAL,GACI;MAAEU,MAAM,KAAKV,UAAL,CAAgBiB,cAAhB,CAA+B,KAAK90B,SAApC;IAAR,CADJ,GAEI,IALC8Z,CAAP;EA/LO;;EAwMT7X,KAAK/J,OAAL,EAAciC,IAAd,EAAoB0H,iBAApB,EAAuC;IACrC,MAAMkzB,mBAAmB,IAAIC,2BAAJ,CAAqB;MAC5C3yB,MAAM,KAAKA,IADiC;MAE5CnK,OAF4C;MAG5C8H,WAAW,KAAKA,SAH4B;MAI5Ci1B,WAAW,KAAKjB,eAJ4B;MAK5CR,WAAW,KAAKA,SAL4B;MAM5CC,kBAAkB,KAAKA,gBANqB;MAO5CC,uBAAuB,KAAKA,qBAPgB;MAQ5CC,kBAAkB,KAAKA,gBARqB;MAS5Cta,SAAS,KAAK7d;IAT8B,CAArB,CAAzB;IAcA,OAAO,KAAK05B,kBAAL,CAAwBj6B,IAAxB,CAA6B,UAAUk6B,WAAV,EAAuB;MACzD,MAAMC,kBAAkB,EAAxB;;MACA,WAAWC,UAAX,IAAyBF,WAAzB,EAAsC;QACpC,IAAI,CAACE,WAAWC,aAAXD,CAAyBxzB,iBAAzBwzB,CAAL,EAAkD;UAChD;QAFkC;;QAIpCD,gBAAgB57B,IAAhB47B,CACEC,WACGpzB,IADHozB,CACQN,gBADRM,EAC0Bl7B,IAD1Bk7B,EACgCxzB,iBADhCwzB,EAEGt6B,KAFHs6B,CAES,UAAUr6B,MAAV,EAAkB;UACvBmC,gBACE,4CACG,IAAGhD,KAAK9C,IAAK,YAAW2D,MAAO,IAFpCmC;UAIA,OAAO,IAAP;QAPJ,EADFi4B;MANuD;;MAmBzD,OAAOx6B,QAAQC,GAARD,CAAYw6B,eAAZx6B,CAAP;IAnBK,EAAP;EAvNO;;EA8OT26B,cAActZ,IAAd,EAAoB;IAClB,IAAI,CAAC,KAAK6X,gBAAV,EAA4B;MAE1B,KAAKA,gBAAL,GAAwB,KAAK96B,UAAL,CAAgBkH,MAAhB,CAAuB,IAAvB,EAA6B,WAA7B,CAAxB;IAHgB;;IAKlB,OAAO,KAAK4zB,gBAAL,CAAsB74B,IAAtB,CAA2B,MAAM;MACtC,MAAMu6B,eAAe,IAAIC,2BAAJ,CAAiB,KAAKpB,SAAtB,EAAiCpY,IAAjC,EAAuC,KAAK5Z,IAA5C,CAArB;MACA,OAAOmzB,aAAaE,IAAbF,EAAP;IAFK,EAAP;EAnPO;;EAyPTrwB,gBAAgB;IACdjN,OADc;IAEd2M,IAFc;IAGd1K,IAHc;IAIdwH,MAJc;IAKdyD,QALc;IAMdvD,oBAAoB;EANN,CAAhB,EAOG;IACD,MAAM8zB,uBAAuB,KAAKf,gBAAL,CAAsB18B,OAAtB,CAA7B;IACA,MAAM47B,mBAAmB,KAAKyB,aAAL,CAAmB,CAC1C,YAD0C,EAE1C,WAF0C,EAG1C,MAH0C,EAI1C,SAJ0C,EAK1C,YAL0C,EAM1C,SAN0C,EAO1C,SAP0C,CAAnB,CAAzB;IAUA,MAAMR,mBAAmB,IAAIC,2BAAJ,CAAqB;MAC5C3yB,MAAM,KAAKA,IADiC;MAE5CnK,OAF4C;MAG5C8H,WAAW,KAAKA,SAH4B;MAI5Ci1B,WAAW,KAAKjB,eAJ4B;MAK5CR,WAAW,KAAKA,SAL4B;MAM5CC,kBAAkB,KAAKA,gBANqB;MAO5CC,uBAAuB,KAAKA,qBAPgB;MAQ5CC,kBAAkB,KAAKA,gBARqB;MAS5Cta,SAAS,KAAK7d;IAT8B,CAArB,CAAzB;IAYA,MAAMo6B,eAAeh7B,QAAQC,GAARD,CAAY,CAAC+6B,oBAAD,EAAuB7B,gBAAvB,CAAZl5B,CAArB;IACA,IAAIi7B,iBAAJ,EAAuBC,wBAAvB,EAAiDC,mBAAjD;IACA,MAAMC,kBAAkBJ,aAAa36B,IAAb26B,CAAkB,CAAC,CAACK,aAAD,CAAD,KAAqB;MAC7D,MAAMC,SAAS,IAAIC,2BAAJ,CAAiBx0B,MAAjB,EAAyBkD,IAAzB,CAAf;MAEA3M,QAAQM,IAARN,CAAa,iBAAbA,EAAgC;QAC9Bk+B,cAAcrB,iBAAiBsB,aAAjBtB,CACZ,KAAKV,SADOU,EAEZ,KAAKnB,gBAFOmB,CADgB;QAK9B/0B,WAAW,KAAKA,SALc;QAM9BoF;MAN8B,CAAhClN;MASA,OAAO68B,iBACJ5vB,eADI4vB,CACY;QACfp1B,QAAQs2B,aADO;QAEf97B,IAFe;QAGfk6B,WAAW,KAAKA,SAHD;QAIfiC,cAAcJ,MAJC;QAKfv0B;MALe,CADZozB,EAQJ95B,IARI85B,CAQC,UAAU,CAACwB,mBAAD,EAAsBC,cAAtB,EAAsCC,wBAAtC,CAAV,EAA2E;QAC/EZ,oBAAoBU,mBAApBV;QACAC,2BAA2BU,cAA3BV;QACAC,sBAAsBU,wBAAtBV;QACA,OAAOG,MAAP;MAZG,EAAP;IAZsB,EAAxB;IA8BA,OAAOt7B,QAAQC,GAARD,CAAY,CAACo7B,eAAD,EAAkB,KAAKd,kBAAvB,CAAZt6B,EAAwDK,IAAxDL,CACL,UAAU,CAAC87B,UAAD,EAAavB,WAAb,CAAV,EAAqC;MACnC,IACEA,YAAY17B,MAAZ07B,KAAuB,CAAvBA,IACAxzB,SAASsF,0BAAoBM,mBAF/B,EAGE;QACA,IAAI5F,SAASsF,0BAAoBO,MAAjC,EAAyC;UACvCkvB,WAAWC,KAAXD,CAAiBxlB,UAAI4F,iBAArB4f,EAAwCZ,wBAAxCY;UACAA,WAAWC,KAAXD,CAAiBxlB,UAAI2F,aAArB6f,EAAoC,CAACb,iBAAD,EAAoBE,mBAApB,CAApCW;QAHF;;QAKAA,WAAWE,KAAXF,CAAiB,IAAjBA;QACA,OAAO;UAAEj9B,QAAQi9B,WAAWG;QAArB,CAAP;MAViC;;MAYnC,MAAMC,cAAc,CAAC,EAAEn1B,SAASsF,0BAAoBI,iBAA/B,CAArB;MAAA,MACE0vB,YAAY,CAAC,EAAEp1B,SAASsF,0BAAoBC,GAA/B,CADf;MAAA,MAEE8vB,gBAAgB,CAAC,EAAEr1B,SAASsF,0BAAoBE,OAA/B,CAFnB;MAAA,MAGE8vB,cAAc,CAAC,EAAEt1B,SAASsF,0BAAoBG,KAA/B,CAHjB;MAOA,MAAM8vB,iBAAiB,EAAvB;;MACA,WAAW7B,UAAX,IAAyBF,WAAzB,EAAsC;QACpC,IACE4B,aACCC,iBAAiB3B,WAAW8B,YAAX9B,CAAwBxzB,iBAAxBwzB,CADlB0B,IAECE,eAAe5B,WAAWC,aAAXD,CAAyBxzB,iBAAzBwzB,CAFhB0B,IAGAp1B,SAASsF,0BAAoBO,MAJ/B,EAKE;UACA0vB,eAAe19B,IAAf09B,CACE7B,WACGlwB,eADHkwB,CAEIN,gBAFJM,EAGIl7B,IAHJk7B,EAII1zB,MAJJ0zB,EAKIyB,WALJzB,EAMIxzB,iBANJwzB,EAQGt6B,KARHs6B,CAQS,UAAUr6B,MAAV,EAAkB;YACvBmC,gBACE,uDACG,IAAGhD,KAAK9C,IAAK,YAAW2D,MAAO,IAFpCmC;YAIA,OAAO,IAAP;UAbJ,EADF+5B;QAPkC;MApBH;;MA+CnC,OAAOt8B,QAAQC,GAARD,CAAYs8B,cAAZt8B,EAA4BK,IAA5BL,CAAiC,UAAUw8B,OAAV,EAAmB;QACzDV,WAAWC,KAAXD,CAAiBxlB,UAAI6E,gBAArB2gB,EAAuC,EAAvCA;;QACA,WAAWR,MAAX,IAAqBkB,OAArB,EAA8B;UAC5BV,WAAWW,SAAXX,CAAqBR,MAArBQ;QAHuD;;QAKzDA,WAAWC,KAAXD,CAAiBxlB,UAAI8E,cAArB0gB,EAAqC,EAArCA;;QACA,IAAI/0B,SAASsF,0BAAoBO,MAAjC,EAAyC;UACvCkvB,WAAWC,KAAXD,CAAiBxlB,UAAIjP,IAArBy0B,EAA2B,CAACb,iBAAD,EAAoBE,mBAApB,CAA3BW;QAPuD;;QASzDA,WAAWE,KAAXF,CAAiB,IAAjBA;QACA,OAAO;UAAEj9B,QAAQi9B,WAAWG;QAArB,CAAP;MAVK,EAAP;IAhDG,EAAP;EAxTO;;EAwXTjxB,mBAAmB;IACjB1N,OADiB;IAEjBiC,IAFiB;IAGjB0L,oBAHiB;IAIjBhB,IAJiB;IAKjBiB;EALiB,CAAnB,EAMG;IACD,MAAM6vB,uBAAuB,KAAKf,gBAAL,CAAsB18B,OAAtB,CAA7B;IACA,MAAM47B,mBAAmB,KAAKyB,aAAL,CAAmB,CAC1C,WAD0C,EAE1C,MAF0C,EAG1C,YAH0C,EAI1C,SAJ0C,CAAnB,CAAzB;IAOA,MAAMK,eAAeh7B,QAAQC,GAARD,CAAY,CAAC+6B,oBAAD,EAAuB7B,gBAAvB,CAAZl5B,CAArB;IACA,OAAOg7B,aAAa36B,IAAb26B,CAAkB,CAAC,CAACK,aAAD,CAAD,KAAqB;MAC5C,MAAMlB,mBAAmB,IAAIC,2BAAJ,CAAqB;QAC5C3yB,MAAM,KAAKA,IADiC;QAE5CnK,OAF4C;QAG5C8H,WAAW,KAAKA,SAH4B;QAI5Ci1B,WAAW,KAAKjB,eAJ4B;QAK5CR,WAAW,KAAKA,SAL4B;QAM5CC,kBAAkB,KAAKA,gBANqB;QAO5CC,uBAAuB,KAAKA,qBAPgB;QAQ5CC,kBAAkB,KAAKA,gBARqB;QAS5Cta,SAAS,KAAK7d;MAT8B,CAArB,CAAzB;MAYA,OAAOu5B,iBAAiBuC,cAAjBvC,CAAgC;QACrCp1B,QAAQs2B,aAD6B;QAErC97B,IAFqC;QAGrCk6B,WAAW,KAAKA,SAHqB;QAIrCxuB,oBAJqC;QAKrCC,gBALqC;QAMrCjB,IANqC;QAOrC0yB,SAAS,KAAKj3B;MAPuB,CAAhCy0B,CAAP;IAbK,EAAP;EAxYO;;EAiaT,MAAMyC,aAAN,GAAsB;IACpB,MAAMC,iBAAiB,MAAM,KAAKz+B,UAAL,CAAgB6H,aAAhB,CAC3B,gBAD2B,CAA7B;;IAGA,IAAI,CAAC42B,cAAL,EAAqB;MACnB,OAAO,IAAP;IALkB;;IAOpB,MAAMC,aAAa,MAAM,KAAK1+B,UAAL,CAAgBkH,MAAhB,CAAuB,IAAvB,EAA6B,kBAA7B,EAAiD,CACxEu3B,cADwE,CAAjD,CAAzB;IAGA,OAAOC,WAAWC,YAAlB;EA3aO;;EAibTC,iBAAiBH,cAAjB,EAAiC;IAC/B,MAAMI,OAAO,IAAIC,2BAAJ,CAAmBL,cAAnB,EAAmC,KAAKnE,QAAxC,CAAb;IACAuE,KAAKE,KAALF;IACA,OAAOA,IAAP;EApbO;;EAubTj2B,mBAAmBD,MAAnB,EAA2B;IACzB,OAAO,KAAKuzB,kBAAL,CAAwBj6B,IAAxB,CAA6B,UAAUk6B,WAAV,EAAuB;MACzD,MAAM6C,kBAAkB,EAAxB;;MAEA,IAAI7C,YAAY17B,MAAZ07B,KAAuB,CAA3B,EAA8B;QAC5B,OAAO6C,eAAP;MAJuD;;MAMzD,MAAMjB,YAAY,CAAC,EAAEp1B,SAASsF,0BAAoBC,GAA/B,CAAnB;MAAA,MACE8vB,gBAAgB,CAAC,EAAEr1B,SAASsF,0BAAoBE,OAA/B,CADnB;MAAA,MAEE8vB,cAAc,CAAC,EAAEt1B,SAASsF,0BAAoBG,KAA/B,CAFjB;;MAIA,WAAWiuB,UAAX,IAAyBF,WAAzB,EAAsC;QAGpC,IACE4B,aACCC,iBAAiB3B,WAAW4C,QAD7BlB,IAECE,eAAe5B,WAAW6C,SAF3BnB,IAGAp1B,SAASsF,0BAAoBO,MAJ/B,EAKE;UACAwwB,gBAAgBx+B,IAAhBw+B,CAAqB3C,WAAW98B,IAAhCy/B;QATkC;MAVmB;;MAsBzD,OAAOA,eAAP;IAtBK,EAAP;EAxbO;;EAkdT,IAAI7C,WAAJ,GAAkB;IAChB,MAAMgD,SAAS,KAAKhE,uBAAL,CAA6B,QAA7B,CAAf;;IACA,OAAOra,kBAAO,IAAPA,EAAa,aAAbA,EAA4B1W,MAAMC,OAAND,CAAc+0B,MAAd/0B,IAAwB+0B,MAAxB/0B,GAAiC,EAA7D0W,CAAP;EApdO;;EAudT,IAAIob,kBAAJ,GAAyB;IACvB,MAAMkD,oBAAoB,KAAKp/B,UAAL,CACvBkH,MADuB,CAChB,IADgB,EACV,aADU,EAEvBjF,IAFuB,CAElB,MAAM;MACV,MAAMo9B,qBAAqB,EAA3B;;MACA,WAAWC,aAAX,IAA4B,KAAKnD,WAAjC,EAA8C;QAC5CkD,mBAAmB7+B,IAAnB6+B,CACEE,8BAAkB70B,MAAlB60B,CACE,KAAKl2B,IADPk2B,EAEED,aAFFC,EAGE,KAAKv/B,UAHPu/B,EAIE,KAAKvE,eAJPuE,EAKsB,KALtBA,EAMEx9B,KANFw9B,CAMQ,UAAUv9B,MAAV,EAAkB;UACxBmC,gBAAM,wBAAuBnC,MAAO,IAApCmC;UACA,OAAO,IAAP;QARF,EADFk7B;MAHQ;;MAiBV,OAAOz9B,QAAQC,GAARD,CAAYy9B,kBAAZz9B,EAAgCK,IAAhCL,CAAqC,UAAUu6B,WAAV,EAAuB;QACjE,OAAOA,YAAYzyB,MAAZyyB,CAAmBE,cAAc,CAAC,CAACA,UAAnCF,CAAP;MADK,EAAP;IAnBsB,EAA1B;IAwBA,OAAOrb,kBAAO,IAAPA,EAAa,oBAAbA,EAAmCse,iBAAnCte,CAAP;EAhfO;;EAmfT,IAAI0e,SAAJ,GAAgB;IACd,MAAMpI,UAAUF,gCACd,KAAK7tB,IADS6tB,EAEd,KAAKoD,QAFSpD,EAGd9gB,yBAHc8gB,CAAhB;IAKA,OAAOpW,kBAAO,IAAPA,EAAa,WAAbA,EAA0BsW,OAA1BtW,CAAP;EAzfO;;AAAA;;;AA6fX,MAAM2e,uBAAuB,IAAIhgC,UAAJ,CAAe,CAAC,IAAD,EAAO,IAAP,EAAa,IAAb,EAAmB,IAAnB,EAAyB,IAAzB,CAAf,CAA7B;AACA,MAAMigC,sBAAsB,IAAIjgC,UAAJ,CAAe,CACzC,IADyC,EACnC,IADmC,EAC7B,IAD6B,EACvB,IADuB,EACjB,IADiB,EACX,IADW,EACL,IADK,EACC,IADD,EACO,IADP,CAAf,CAA5B;AAGA,MAAMkgC,mBAAmB,IAAIlgC,UAAJ,CAAe,CAAC,IAAD,EAAO,IAAP,EAAa,IAAb,EAAmB,IAAnB,EAAyB,IAAzB,EAA+B,IAA/B,CAAf,CAAzB;AAEA,MAAMmgC,0BAA0B,IAAhC;AACA,MAAMC,oBACJ,kEADF;AAGA,MAAMC,4BAA4B,aAAlC;;AAEA,SAASC,IAAT,CAAcp5B,MAAd,EAAsBq5B,SAAtB,EAAiCC,QAAQ,IAAzC,EAA+CC,YAAY,KAA3D,EAAkE;EAOhE,MAAMC,kBAAkBH,UAAUv/B,MAAlC;EAEA,MAAM2/B,YAAYz5B,OAAO2yB,SAAP3yB,CAAiBs5B,KAAjBt5B,CAAlB;EACA,MAAM05B,aAAaD,UAAU3/B,MAAV2/B,GAAmBD,eAAtC;;EAEA,IAAIE,cAAc,CAAlB,EAAqB;IACnB,OAAO,KAAP;EAb8D;;EAehE,IAAIH,SAAJ,EAAe;IACb,MAAMI,eAAeH,kBAAkB,CAAvC;IAEA,IAAIxd,MAAMyd,UAAU3/B,MAAV2/B,GAAmB,CAA7B;;IACA,OAAOzd,OAAO2d,YAAd,EAA4B;MAC1B,IAAI3Y,IAAI,CAAR;;MACA,OACEA,IAAIwY,eAAJxY,IACAyY,UAAUzd,MAAMgF,CAAhB,MAAuBqY,UAAUM,eAAe3Y,CAAzB,CAFzB,EAGE;QACAA;MANwB;;MAQ1B,IAAIA,KAAKwY,eAAT,EAA0B;QAExBx5B,OAAOgc,GAAPhc,IAAcgc,MAAM2d,YAApB35B;QACA,OAAO,IAAP;MAXwB;;MAa1Bgc;IAjBW;EAAf,OAmBO;IAEL,IAAIA,MAAM,CAAV;;IACA,OAAOA,OAAO0d,UAAd,EAA0B;MACxB,IAAI1Y,IAAI,CAAR;;MACA,OAAOA,IAAIwY,eAAJxY,IAAuByY,UAAUzd,MAAMgF,CAAhB,MAAuBqY,UAAUrY,CAAV,CAArD,EAAmE;QACjEA;MAHsB;;MAKxB,IAAIA,KAAKwY,eAAT,EAA0B;QAExBx5B,OAAOgc,GAAPhc,IAAcgc,GAAdhc;QACA,OAAO,IAAP;MARsB;;MAUxBgc;IAbG;EAlCyD;;EAkDhE,OAAO,KAAP;AA1nBF;;AAgoBA,MAAM4M,WAAN,CAAkB;EAChBnxB,YAAY4B,UAAZ,EAAwB2G,MAAxB,EAAgC;IAU9B,IAAIA,OAAOlG,MAAPkG,IAAiB,CAArB,EAAwB;MACtB,MAAM,IAAIlB,yBAAJ,CACJ,qDADI,CAAN;IAX4B;;IAgB9B,KAAKzF,UAAL,GAAkBA,UAAlB;IACA,KAAK2G,MAAL,GAAcA,MAAd;IACA,KAAK0C,IAAL,GAAY,IAAIk3B,UAAJ,CAAS55B,MAAT,EAAiB3G,UAAjB,CAAZ;IACA,KAAKwgC,aAAL,GAAqB,IAAI3T,GAAJ,EAArB;IACA,KAAK4T,QAAL,GAAgB,IAAhB;IAEA,MAAM1F,aAAa;MACjB1c,MAAM;IADW,CAAnB;IAGA,KAAKqiB,gBAAL,GAAwB,MAAM;MAC5B,OAAOC,QAAP,GAAkB;QAChB,OAAQ,KAAI3gC,WAAWc,KAAhB,EAAP;MAF0B;;MAK5B,OAAO8/B,YAAP,GAAsB;QACpB,OAAQ,IAAG,EAAE7F,WAAW1c,IAAjB,EAAP;MAN0B;;MAS5B,OAAO4c,WAAP,GAAqB;QACnBpb,uBAAY,uCAAZA;MAV0B;;MAa5B,OAAOqb,YAAP,GAAsB;QACpBrb,uBAAY,wCAAZA;MAd0B;;IAAA,CAA9B;EA1Bc;;EA6ChBkf,MAAMt9B,YAAN,EAAoB;IAClB,KAAK4H,IAAL,CAAU01B,KAAV,CAAgBt9B,YAAhB;IACA,KAAKotB,OAAL,GAAe,IAAIgS,gBAAJ,CAAY,KAAK7gC,UAAjB,EAA6B,KAAKqJ,IAAlC,CAAf;;IAMA,IAAI,KAAKwlB,OAAL,CAAaiS,OAAjB,EAA0B;MACxB,KAAKL,QAAL,GAAgB,KAAK5R,OAAL,CAAaiS,OAA7B;IATgB;EA7CJ;;EA0DhB,IAAIC,aAAJ,GAAoB;IAClB,IAAIA,gBAAgB,IAApB;;IACA,IAAI;MACFA,gBAAgBC,sBAAct2B,MAAds2B,CAAqB,KAAKr6B,MAA1Bq6B,CAAhBD;IADF,EAEE,OAAO9M,GAAP,EAAY;MACZ,IAAIA,eAAepE,gCAAnB,EAAyC;QACvC,MAAMoE,GAAN;MAFU;;MAIZ3oB,gBAAK2oB,GAAL3oB;IARgB;;IAUlB,OAAOwV,kBAAO,IAAPA,EAAa,eAAbA,EAA8BigB,aAA9BjgB,CAAP;EApEc;;EAuEhB,IAAIxX,SAAJ,GAAgB;IACd,MAAM3C,SAAS,KAAKA,MAApB;IACA,IAAI2C,YAAY,CAAhB;;IAEA,IAAI,KAAKy3B,aAAT,EAAwB;MAEtBp6B,OAAOmzB,KAAPnzB;;MACA,IAAIo5B,KAAKp5B,MAAL,EAAag5B,gBAAb,CAAJ,EAAoC;QAClCr2B,YAAY3C,OAAOgc,GAAPhc,GAAa,CAAbA,GAAiBA,OAAOmF,KAApCxC;MAJoB;IAAxB,OAMO;MAEL,MAAM23B,OAAO,IAAb;MACA,MAAMC,kBAAkBxB,oBAAoBj/B,MAA5C;MACA,IAAI0gC,QAAQ,KAAZ;MAAA,IACExe,MAAMhc,OAAO0oB,GADf;;MAGA,OAAO,CAAC8R,KAAD,IAAUxe,MAAM,CAAvB,EAA0B;QACxBA,OAAOse,OAAOC,eAAdve;;QACA,IAAIA,MAAM,CAAV,EAAa;UACXA,MAAM,CAANA;QAHsB;;QAKxBhc,OAAOgc,GAAPhc,GAAagc,GAAbhc;QACAw6B,QAAQpB,KAAKp5B,MAAL,EAAa+4B,mBAAb,EAAkCuB,IAAlC,EAAwC,IAAxC,CAARE;MAbG;;MAgBL,IAAIA,KAAJ,EAAW;QACTx6B,OAAOkzB,IAAPlzB,CAAY,CAAZA;QACA,IAAIsvB,EAAJ;;QACA,GAAG;UACDA,KAAKtvB,OAAO4qB,OAAP5qB,EAALsvB;QADF,SAESD,8BAAaC,EAAbD,CAFT;;QAGA,IAAIzT,MAAM,EAAV;;QACA,OAAO0T,MAAoB,IAApBA,IAA4BA,MAAkB,IAArD,EAA2D;UACzD1T,OAAOT,OAAOC,YAAPD,CAAoBmU,EAApBnU,CAAPS;UACA0T,KAAKtvB,OAAO4qB,OAAP5qB,EAALsvB;QATO;;QAWT3sB,YAAYitB,SAAShU,GAAT,EAAc,EAAd,CAAZjZ;;QACA,IAAIqvB,MAAMrvB,SAAN,CAAJ,EAAsB;UACpBA,YAAY,CAAZA;QAbO;MAhBN;IAVO;;IA2Cd,OAAOwX,kBAAO,IAAPA,EAAa,WAAbA,EAA0BxX,SAA1BwX,CAAP;EAlHc;;EAuHhBsgB,cAAc;IACZ,MAAMz6B,SAAS,KAAKA,MAApB;IACAA,OAAOmzB,KAAPnzB;;IAEA,IAAI,CAACo5B,KAAKp5B,MAAL,EAAa84B,oBAAb,CAAL,EAAyC;MAGvC;IAPU;;IASZ94B,OAAOozB,SAAPpzB;IAGA,MAAM06B,yBAAyB,EAA/B;IACA,IAAIP,UAAU,EAAd;IAAA,IACE7K,EADF;;IAEA,OAAQ,MAAKtvB,OAAO4qB,OAAP5qB,EAAL,IAAuC,IAA/C,EAAqD;MACnD,IAAIm6B,QAAQrgC,MAARqgC,IAAkBO,sBAAtB,EAA8C;QAC5C;MAFiD;;MAInDP,WAAWhf,OAAOC,YAAPD,CAAoBmU,EAApBnU,CAAXgf;IAnBU;;IAqBZ,IAAI,CAAC,KAAKL,QAAV,EAAoB;MAElB,KAAKA,QAAL,GAAgBK,QAAQrK,SAARqK,CAAkB,CAAlBA,CAAhB;IAvBU;EAvHE;;EAkJhBQ,iBAAiB;IACf,KAAKj4B,IAAL,CAAUk4B,YAAV,CAAuB,KAAKj4B,SAA5B;EAnJc;;EAsJhB,IAAInH,QAAJ,GAAe;IACb,IAAIwF,MAAM,CAAV;;IACA,IAAI,KAAKknB,OAAL,CAAa2S,iBAAjB,EAAoC;MAClC75B,MAAM,KAAKknB,OAAL,CAAa1sB,QAAnBwF;IADF,OAEO,IAAI,KAAKkzB,UAAT,EAAqB;MAE1BlzB,MAAM,KAAKkzB,UAAL,CAAgB4G,WAAhB,EAAN95B;IAFK,OAGA,IAAI,KAAKo5B,aAAT,EAAwB;MAC7Bp5B,MAAM,KAAKo5B,aAAL,CAAmB5+B,QAAzBwF;IADK,OAEA;MACLA,MAAM,KAAKknB,OAAL,CAAa1sB,QAAnBwF;IAVW;;IAYb,OAAOmZ,kBAAO,IAAPA,EAAa,UAAbA,EAAyBnZ,GAAzBmZ,CAAP;EAlKc;;EAwKhB4gB,2BAA2BC,MAA3B,EAAmCC,iBAAiB,CAApD,EAAuD;IACrD,MAAMC,kBAAkB,EAAxB;;IAEA,IAAI,CAACz3B,MAAMC,OAAND,CAAcu3B,MAAdv3B,CAAL,EAA4B;MAC1B,OAAO,KAAP;IAJmD;;IAMrD,OAAOu3B,OAAOG,KAAPH,CAAaI,SAAS;MAC3BA,QAAQ,KAAK14B,IAAL,CAAU24B,UAAV,CAAqBD,KAArB,CAARA;;MACA,IAAI,EAAEA,iBAAiB93B,gBAAnB,CAAJ,EAA8B;QAC5B,OAAO,KAAP;MAHyB;;MAK3B,IAAI83B,MAAM3V,GAAN2V,CAAU,MAAVA,CAAJ,EAAuB;QACrB,IAAI,EAAEH,cAAF,GAAmBC,eAAvB,EAAwC;UACtC19B,gBAAK,6DAALA;UACA,OAAO,KAAP;QAHmB;;QAKrB,OAAO,KAAKu9B,0BAAL,CACLK,MAAMr6B,GAANq6B,CAAU,MAAVA,CADK,EAELH,cAFK,CAAP;MAVyB;;MAe3B,MAAMK,cAAchU,wBAAO8T,MAAMr6B,GAANq6B,CAAU,IAAVA,CAAP9T,EAAwB,KAAxBA,CAApB;MACA,MAAM7U,YAAY2oB,MAAMr6B,GAANq6B,CAAU,MAAVA,CAAlB;MACA,MAAMG,cACJ93B,MAAMC,OAAND,CAAcgP,SAAdhP,KAA4BgP,UAAU0oB,KAAV1oB,CAAgB9U,SAASA,UAAU,CAAnC8U,CAD9B;MAEA,OAAO6oB,eAAeC,WAAtB;IAnBK,EAAP;EA9Kc;;EAqMhB,IAAIC,WAAJ,GAAkB;IAChB,MAAMh5B,WAAW,KAAK0lB,OAAL,CAAa1lB,QAA9B;;IACA,IAAI,CAACA,QAAL,EAAe;MACb,OAAO,IAAP;IAHc;;IAMhB,MAAMa,MAAMb,SAASzB,GAATyB,CAAa,KAAbA,CAAZ;IACA,MAAM4jB,UAAU;MACd,WAAW,EADG;MAEdqV,UAAU,EAFI;MAGdC,UAAU,EAHI;MAIdC,QAAQ,EAJM;MAKdC,eAAe,EALD;MAMdC,WAAW,EANG;MAOdC,YAAY,EAPE;MAQd,YAAY;IARE,CAAhB;;IAUA,IAAIz4B,eAAegtB,uBAAfhtB,IAA6B,CAACA,IAAImvB,OAAtC,EAA+C;MAC7CpM,QAAQ,SAAR,IAAqB/iB,GAArB+iB;MACA,OAAOA,OAAP;IAnBc;;IAsBhB,IAAI,CAAC3iB,MAAMC,OAAND,CAAcJ,GAAdI,CAAD,IAAuBJ,IAAIvJ,MAAJuJ,KAAe,CAA1C,EAA6C;MAC3C,OAAO,IAAP;IAvBc;;IA0BhB,KAAK,IAAI3I,IAAI,CAAR,EAAWiJ,KAAKN,IAAIvJ,MAAzB,EAAiCY,IAAIiJ,EAArC,EAAyCjJ,KAAK,CAA9C,EAAiD;MAC/C,IAAIhD,IAAJ;;MACA,IAAIgD,MAAM,CAAV,EAAa;QACXhD,OAAO,SAAPA;MADF,OAEO,IAAIgD,MAAMiJ,KAAK,CAAf,EAAkB;QACvBjM,OAAO,UAAPA;MADK,OAEA;QACLA,OAAO2L,IAAI3I,CAAJ,CAAPhD;MAP6C;;MAU/C,IAAI,CAAC0uB,QAAQ2V,cAAR3V,CAAuB1uB,IAAvB0uB,CAAL,EAAmC;QACjC;MAX6C;;MAa/C,MAAMxtB,OAAO,KAAK8J,IAAL,CAAU24B,UAAV,CAAqBh4B,IAAI3I,IAAI,CAAR,CAArB,CAAb;;MACA,IAAI,EAAE9B,gBAAgBy3B,uBAAlB,KAAiCz3B,KAAK45B,OAA1C,EAAmD;QACjD;MAf6C;;MAiB/CpM,QAAQ1uB,IAAR,IAAgBkB,IAAhBwtB;IA3Cc;;IA6ChB,OAAOA,OAAP;EAlPc;;EAqPhB,IAAI4V,WAAJ,GAAkB;IAChB,MAAMC,UAAU,KAAKT,WAArB;;IACA,IAAI,CAACS,OAAL,EAAc;MACZ,OAAO9hB,kBAAO,IAAPA,EAAa,aAAbA,EAA4B,IAA5BA,CAAP;IAHc;;IAKhB,WAAW/V,GAAX,IAAkB,CAAC,UAAD,EAAa,SAAb,CAAlB,EAA2C;MACzC,MAAMpE,SAASi8B,QAAQ73B,GAAR,CAAf;;MACA,IAAI,CAACpE,MAAL,EAAa;QACX;MAHuC;;MAKzC,IAAI;QACF,MAAM4b,MAAM5B,8BAAmBha,OAAOswB,SAAPtwB,EAAnBga,CAAZ;QACA,MAAMphB,OAAO;UAAE,CAACwL,GAAD,GAAOwX;QAAT,CAAb;QACA,OAAOzB,kBAAO,IAAPA,EAAa,aAAbA,EAA4B,IAAI+hB,6BAAJ,CAAkBtjC,IAAlB,CAA5BuhB,CAAP;MAHF,EAIE,OAAOgiB,CAAP,EAAU;QACV3+B,gBAAK,6BAALA;QACA;MAXuC;IAL3B;;IAmBhB,OAAO2c,kBAAO,IAAPA,EAAa,aAAbA,EAA4B,IAA5BA,CAAP;EAxQc;;EA2QhB,IAAItX,OAAJ,GAAc;IACZ,MAAMo5B,UAAU,KAAKT,WAArB;;IACA,IAAI,CAACS,OAAL,EAAc;MACZ,OAAO,IAAP;IAHU;;IAKZ,MAAMrjC,OAAOkL,OAAOC,MAAPD,CAAc,IAAdA,CAAb;;IACA,WAAW,CAACM,GAAD,EAAMpE,MAAN,CAAX,IAA4B8D,OAAOsiB,OAAPtiB,CAAem4B,OAAfn4B,CAA5B,EAAqD;MACnD,IAAI,CAAC9D,MAAL,EAAa;QACX;MAFiD;;MAInD,IAAI;QACFpH,KAAKwL,GAAL,IAAY4V,8BAAmBha,OAAOswB,SAAPtwB,EAAnBga,CAAZphB;MADF,EAEE,OAAOujC,CAAP,EAAU;QACV3+B,gBAAK,6BAALA;QACA,OAAO,IAAP;MARiD;IANzC;;IAiBZ,OAAO5E,IAAP;EA5Rc;;EA+RhB,IAAIs7B,UAAJ,GAAiB;IACf,IAAIt7B,IAAJ;;IACA,IACE,KAAKS,UAAL,CAAgByC,SAAhB,IACA,KAAKosB,OAAL,CAAakU,cADb,IAEA,KAAKC,QAAL,CAAcr3B,MAFd,IAGA,CAAC,KAAKq3B,QAAL,CAAcC,WAJjB,EAKE;MACA1jC,OAAO,KAAKiK,OAAZjK;IARa;;IAUf,OAAOuhB,kBAAO,IAAPA,EAAa,YAAbA,EAA2BvhB,OAAO,IAAI2jC,mBAAJ,CAAe3jC,IAAf,CAAP,GAA8B,IAAzDuhB,CAAP;EAzSc;;EA4ShB,IAAInf,SAAJ,GAAgB;IACd,OAAO,KAAKk5B,UAAL,GAAkB,KAAKA,UAAL,CAAgBsI,OAAhB,EAAlB,GAA8C,KAArD;EA7Sc;;EAgThB,IAAI7gC,UAAJ,GAAiB;IACf,OAAO,KAAKu4B,UAAL,GAAkB,KAAKA,UAAL,CAAgBuI,QAAhB,EAAlB,GAA+C,IAAtD;EAjTc;;EAoThB,MAAMlhC,aAAN,GAAsB;IACpB,MAAMmhC,gBAAgB,MAAM,KAAKrjC,UAAL,CAAgB6H,aAAhB,CAA8B,WAA9B,CAA5B;;IACA,IAAI,CAACw7B,aAAL,EAAoB;MAClB;IAHkB;;IAMpB,MAAMpgB,OAAOogB,cAAcpX,OAAdoX,EAAb;IACA,MAAM7G,eAAe,IAAIC,2BAAJ,CAAiB4G,aAAjB,EAAgCpgB,IAAhC,EAAsC,KAAK5Z,IAA3C,CAArB;IACA,MAAMmzB,aAAaE,IAAbF,EAAN;IAEA,MAAM8G,YAAY,IAAIzW,GAAJ,EAAlB;;IACA,WAAW9hB,GAAX,IAAkBkY,IAAlB,EAAwB;MACtB,MAAMtc,SAAS08B,cAAc37B,GAAd27B,CAAkBt4B,GAAlBs4B,CAAf;;MACA,IAAI18B,kBAAkBqwB,uBAAtB,EAAkC;QAChCsM,UAAUxgB,GAAVwgB,CAAcv4B,GAAdu4B,EAAmB38B,OAAO6qB,QAAP7qB,EAAnB28B;MAHoB;IAXJ;;IAkBpB,KAAKzI,UAAL,CAAgB0I,SAAhB,CAA0BD,SAA1B;EAtUc;;EAyUhB,MAAMxhC,YAAN,CAAmB5C,OAAnB,EAA4BiC,IAA5B,EAAkC;IAChC,MAAMgI,WAAW,MAAM,KAAKnJ,UAAL,CAAgB6H,aAAhB,CAA8B,UAA9B,CAAvB;;IACA,IAAI,CAACsB,QAAL,EAAe;MACb;IAH8B;;IAKhC,MAAMkyB,YAAY,MAAMlyB,SAAS2iB,QAAT3iB,CAAkB,IAAlBA,CAAxB;;IACA,IAAI,EAAEkyB,qBAAqBpxB,gBAAvB,CAAJ,EAAkC;MAChC;IAP8B;;IAShC,MAAMuyB,eAAe,IAAIC,2BAAJ,CAAiBpB,SAAjB,EAA4B,CAAC,MAAD,CAA5B,EAAsC,KAAKhyB,IAA3C,CAArB;IACA,MAAMmzB,aAAaE,IAAbF,EAAN;IAEA,MAAMgH,UAAUnI,UAAU3zB,GAAV2zB,CAAc,MAAdA,CAAhB;;IACA,IAAI,EAAEmI,mBAAmBv5B,gBAArB,CAAJ,EAAgC;MAC9B;IAd8B;;IAiBhC,MAAMoW,UAAU5V,OAAOg5B,MAAPh5B,CACdA,OAAOC,MAAPD,CAAc,IAAdA,CADcA,EAEd,KAAKzK,UAAL,CAAgBwC,gBAFFiI,CAAhB;IAIA4V,QAAQ9Z,cAAR8Z,GAAyB,KAAzBA;IAEA,MAAM0b,mBAAmB,IAAIC,2BAAJ,CAAqB;MAC5C3yB,MAAM,KAAKA,IADiC;MAE5CnK,OAF4C;MAG5C8H,WAAW,CAAC,CAHgC;MAI5Ci1B,WAAW,KAAKyE,gBAJ4B;MAK5ClG,WAAW,KAAK3L,OAAL,CAAa2L,SALoB;MAM5CC,kBAAkB,KAAK5L,OAAL,CAAa4L,gBANa;MAO5CC,uBAAuB,KAAK7L,OAAL,CAAa6L,qBAPQ;MAQ5Cra;IAR4C,CAArB,CAAzB;IAUA,MAAMid,eAAe,IAAIH,2BAAJ,EAArB;IACA,MAAMuG,WAAW,EAAjB;IACA,MAAMC,eAAe;MACnB,IAAItlB,IAAJ,GAAW;QACT,OAAOqlB,SAASA,SAASjjC,MAATijC,GAAkB,CAA3B,CAAP;MAFiB;;MAInB,IAAIrlB,IAAJ,CAASA,IAAT,EAAe;QACbqlB,SAASljC,IAATkjC,CAAcrlB,IAAdqlB;MALiB;;MAOnBE,QAAQ;QACN,OAAO,IAAP;MARiB;;IAAA,CAArB;IAYA,MAAMC,QAAQ,IAAIhX,GAAJ,EAAd;IACA2W,QAAQ14B,OAAR04B,CAAgB,CAACM,QAAD,EAAWzlB,IAAX,KAAoB;MAClCwlB,MAAM/gB,GAAN+gB,CAAUC,QAAVD,EAAoBxlB,IAApBwlB;IADF;IAGA,MAAM96B,WAAW,EAAjB;;IAEA,WAAW,CAAC+6B,QAAD,EAAWzlB,IAAX,CAAX,IAA+BwlB,KAA/B,EAAsC;MACpC,MAAME,aAAa1lB,KAAK3W,GAAL2W,CAAS,gBAATA,CAAnB;;MACA,IAAI,EAAE0lB,sBAAsB95B,gBAAxB,CAAJ,EAAmC;QACjC;MAHkC;;MAKpC,IAAImuB,aAAa2L,WAAWr8B,GAAXq8B,CAAe,YAAfA,CAAjB;MAEA3L,aAAaA,WAAW9P,OAAX8P,CAAmB,WAAnBA,EAAgC,IAAhCA,CAAbA;MACA,MAAMC,aAAa0L,WAAWr8B,GAAXq8B,CAAe,YAAfA,CAAnB;MAKA,MAAMzL,cAAc,CAACyL,WAAWr8B,GAAXq8B,CAAe,aAAfA,CAArB;MACA,MAAM/L,cAAc;QAAEI,UAAF;QAAcC,UAAd;QAA0BC;MAA1B,CAApB;;MAEA,IAAI,CAACP,iCAAgBC,WAAhBD,CAAL,EAAmC;QACjC;MAjBkC;;MAmBpChvB,SAASvI,IAATuI,CACEgzB,iBACGiI,aADHjI,CAEIV,SAFJU,EAGI,CAACxR,iBAAK7iB,GAAL6iB,CAASuZ,QAATvZ,CAAD,EAAqB,CAArB,CAHJwR,EAIoB,IAJpBA,EAKIuB,YALJvB,EAMI56B,IANJ46B,EAOI4H,YAPJ5H,EAQ6B,IAR7BA,EASwB/D,WATxB+D,EAWGh6B,KAXHg6B,CAWS,UAAU/5B,MAAV,EAAkB;QACvBmC,gBAAM,kBAAiBnC,MAAO,IAA9BmC;QACA,OAAO,IAAP;MAbJ,EADF4E;IAxE8B;;IA2FhC,MAAMnH,QAAQC,GAARD,CAAYmH,QAAZnH,CAAN;IACA,MAAMqiC,eAAe,KAAKpJ,UAAL,CAAgBqJ,QAAhB,CAAyBR,QAAzB,CAArB;;IAEA,IAAI,CAACO,YAAL,EAAmB;MACjB;IA/F8B;;IAkGhC5jB,QAAQja,YAARia,GAAuB,IAAvBA;IACAtX,SAAStI,MAATsI,GAAkB,CAAlBA;IACA26B,SAASjjC,MAATijC,GAAkB,CAAlBA;IAEA,MAAMS,qBAAqB,IAAI3W,GAAJ,EAA3B;;IACA,WAAW4W,OAAX,IAAsBH,YAAtB,EAAoC;MAClC,IAAI,CAACI,+BAAe,GAAGD,OAAQ,UAA1BC,CAAL,EAA2C;QAEzCF,mBAAmBzW,GAAnByW,CAAuBC,OAAvBD;MAHgC;IAvGJ;;IA8GhC,IAAIA,mBAAmB1Y,IAAvB,EAA6B;MAC3BwY,aAAazjC,IAAbyjC,CAAkB,gBAAlBA;IA/G8B;;IAkHhC,WAAWG,OAAX,IAAsBH,YAAtB,EAAoC;MAClC,IAAIE,mBAAmB/X,GAAnB+X,CAAuBC,OAAvBD,CAAJ,EAAqC;QACnC;MAFgC;;MAIlC,WAAWG,QAAX,IAAuB,CACrB;QAAEjmC,MAAM,SAAR;QAAmBg6B,YAAY,GAA/B;QAAoCC,aAAa;MAAjD,CADqB,EAErB;QAAEj6B,MAAM,MAAR;QAAgBg6B,YAAY,GAA5B;QAAiCC,aAAa;MAA9C,CAFqB,EAGrB;QAAEj6B,MAAM,QAAR;QAAkBg6B,YAAY,GAA9B;QAAmCC,aAAa;MAAhD,CAHqB,EAIrB;QAAEj6B,MAAM,YAAR;QAAsBg6B,YAAY,GAAlC;QAAuCC,aAAa;MAApD,CAJqB,CAAvB,EAKG;QACD,MAAMj6B,OAAO,GAAG+lC,OAAQ,IAAGE,SAASjmC,IAAvB,EAAb;QACA,MAAMyuB,OAAOyX,+BAAelmC,IAAfkmC,CAAb;QAEAx7B,SAASvI,IAATuI,CACEgzB,iBACGiI,aADHjI,CAEIV,SAFJU,EAGI,CAACxR,iBAAK7iB,GAAL6iB,CAASlsB,IAATksB,CAAD,EAAiB,CAAjB,CAHJwR,EAIoB,IAJpBA,EAKIuB,YALJvB,EAMI56B,IANJ46B,EAOI4H,YAPJ5H,EAQ6BjP,IAR7BiP,EASwB;UAClB3D,YAAYgM,OADM;UAElB/L,YAAYiM,SAASjM,UAFH;UAGlBC,aAAagM,SAAShM;QAHJ,CATxByD,EAeGh6B,KAfHg6B,CAeS,UAAU/5B,MAAV,EAAkB;UACvBmC,gBAAM,kBAAiBnC,MAAO,IAA9BmC;UACA,OAAO,IAAP;QAjBJ,EADF4E;MAbgC;IAlHJ;;IAuJhC,MAAMnH,QAAQC,GAARD,CAAYmH,QAAZnH,CAAN;IACA,KAAKi5B,UAAL,CAAgB2J,WAAhB,CAA4Bd,QAA5B,EAAsCS,kBAAtC;EAjec;;EAoehB,MAAMn7B,gBAAN,CAAuBH,iBAAvB,EAA0C;IACxC,OAAO,KAAKgyB,UAAL,GACH,KAAKA,UAAL,CAAgB4J,aAAhB,CAA8B57B,iBAA9B,CADG,GAEH,IAFJ;EArec;;EA0ehB,IAAIm6B,QAAJ,GAAe;IACb,MAAMA,WAAW;MACf0B,WAAW,KADI;MAEfzB,aAAa,KAFE;MAGft3B,QAAQ,KAHO;MAIfg5B,eAAe;IAJA,CAAjB;IAMA,MAAMx7B,WAAW,KAAK0lB,OAAL,CAAa1lB,QAA9B;;IACA,IAAI,CAACA,QAAL,EAAe;MACb,OAAO2X,kBAAO,IAAPA,EAAa,UAAbA,EAAyBkiB,QAAzBliB,CAAP;IATW;;IAYb,IAAI;MACF,MAAM6gB,SAASx4B,SAASzB,GAATyB,CAAa,QAAbA,CAAf;MACA,MAAMu7B,YAAYt6B,MAAMC,OAAND,CAAcu3B,MAAdv3B,KAAyBu3B,OAAOlhC,MAAPkhC,GAAgB,CAA3D;MACAqB,SAAS0B,SAAT1B,GAAqB0B,SAArB1B;MAIA,MAAMh5B,MAAMb,SAASzB,GAATyB,CAAa,KAAbA,CAAZ;MACA65B,SAASr3B,MAATq3B,GACG54B,MAAMC,OAAND,CAAcJ,GAAdI,KAAsBJ,IAAIvJ,MAAJuJ,GAAa,CAAnCI,IACAJ,eAAegtB,uBAAfhtB,IAA6B,CAACA,IAAImvB,OAFrC6J;MAWA,MAAM4B,WAAWz7B,SAASzB,GAATyB,CAAa,UAAbA,CAAjB;MACA,MAAMw7B,gBAAgB,CAAC,EAAEC,WAAW,GAAb,CAAvB;;MACA,MAAMC,4BACJF,iBAAiB,KAAKjD,0BAAL,CAAgCC,MAAhC,CADnB;;MAEAqB,SAASC,WAATD,GAAuB0B,aAAa,CAACG,yBAArC7B;MACAA,SAAS2B,aAAT3B,GAAyB2B,aAAzB3B;IAxBF,EAyBE,OAAOjgC,EAAP,EAAW;MACX,IAAIA,cAAc8sB,gCAAlB,EAAwC;QACtC,MAAM9sB,EAAN;MAFS;;MAIXoB,gBAAM,mCAAkCpB,EAAG,IAA3CoB;IAzCW;;IA2Cb,OAAO2c,kBAAO,IAAPA,EAAa,UAAbA,EAAyBkiB,QAAzBliB,CAAP;EArhBc;;EAwhBhB,IAAIgkB,YAAJ,GAAmB;IACjB,IAAIhE,UAAU,KAAKL,QAAnB;;IACA,IACE,OAAOK,OAAP,KAAmB,QAAnB,IACA,CAAChB,0BAA0BtX,IAA1BsX,CAA+BgB,OAA/BhB,CAFH,EAGE;MACA37B,gBAAM,sCAAqC28B,OAAtC,EAAL38B;MACA28B,UAAU,IAAVA;IAPe;;IAUjB,MAAMiE,UAAU;MACdC,kBAAkBlE,OADJ;MAEdmE,UAAU,KAAKpW,OAAL,CAAaqW,IAFT;MAGdC,mBAAmB,KAAK97B,IAAL,CAAU+7B,OAAV,GACf,KAAK/7B,IAAL,CAAU+7B,OAAV,CAAkBC,UADH,GAEf,IALU;MAMdC,cAAc,CAAC,CAAC,KAAKvE,aANP;MAOdwE,mBAAmB,KAAKvC,QAAL,CAAcC,WAPnB;MAQduC,cAAc,KAAKxC,QAAL,CAAcr3B,MARd;MASd85B,qBAAqB,CAAC,CAAC,KAAK5W,OAAL,CAAa6W,UATtB;MAUdC,qBAAqB,KAAK3C,QAAL,CAAc2B;IAVrB,CAAhB;IAaA,IAAIiB,QAAJ;;IACA,IAAI;MACFA,WAAW,KAAKv8B,IAAL,CAAUsB,OAAV,CAAkBjD,GAAlB,CAAsB,MAAtB,CAAXk+B;IADF,EAEE,OAAO3R,GAAP,EAAY;MACZ,IAAIA,eAAepE,gCAAnB,EAAyC;QACvC,MAAMoE,GAAN;MAFU;;MAIZ3oB,gBAAK,iDAALA;IA9Be;;IAgCjB,IAAI,EAAEs6B,oBAAoB37B,gBAAtB,CAAJ,EAAiC;MAC/B,OAAO6W,kBAAO,IAAPA,EAAa,cAAbA,EAA6BikB,OAA7BjkB,CAAP;IAjCe;;IAoCjB,WAAW/V,GAAX,IAAkB66B,SAAS3Z,OAAT2Z,EAAlB,EAAsC;MACpC,MAAMthC,QAAQshC,SAASl+B,GAATk+B,CAAa76B,GAAb66B,CAAd;;MAEA,QAAQ76B,GAAR;QACE,KAAK,OAAL;QACA,KAAK,QAAL;QACA,KAAK,SAAL;QACA,KAAK,UAAL;QACA,KAAK,SAAL;QACA,KAAK,UAAL;QACA,KAAK,cAAL;QACA,KAAK,SAAL;UACE,IAAI,OAAOzG,KAAP,KAAiB,QAArB,EAA+B;YAC7BygC,QAAQh6B,GAAR,IAAeC,6BAAkB1G,KAAlB0G,CAAf+5B;YACA;UAHJ;;UAKE;;QACF,KAAK,SAAL;UACE,IAAIzgC,iBAAiBimB,gBAArB,EAA2B;YACzBwa,QAAQh6B,GAAR,IAAezG,KAAfygC;YACA;UAHJ;;UAKE;;QACF;UAIE,IAAIc,WAAJ;;UACA,QAAQ,OAAOvhC,KAAf;YACE,KAAK,QAAL;cACEuhC,cAAc76B,6BAAkB1G,KAAlB0G,CAAd66B;cACA;;YACF,KAAK,QAAL;YACA,KAAK,SAAL;cACEA,cAAcvhC,KAAduhC;cACA;;YACF;cACE,IAAIvhC,iBAAiBimB,gBAArB,EAA2B;gBACzBsb,cAAcvhC,KAAduhC;cAFJ;;cAIE;UAZJ;;UAeA,IAAIA,gBAAgBjkB,SAApB,EAA+B;YAC7Bzd,gBAAM,8BAA6B4G,GAAI,eAAczG,KAAM,GAA3DH;YACA;UAtBJ;;UAwBE,IAAI,CAAC4gC,QAAQe,MAAb,EAAqB;YACnBf,QAAQe,MAARf,GAAiBt6B,OAAOC,MAAPD,CAAc,IAAdA,CAAjBs6B;UAzBJ;;UA2BEA,QAAQe,MAARf,CAAeh6B,GAAfg6B,IAAsBc,WAAtBd;UACA;MAhDJ;;MAkDA5gC,gBAAM,uBAAsB4G,GAAI,eAAczG,KAAM,GAApDH;IAzFe;;IA2FjB,OAAO2c,kBAAO,IAAPA,EAAa,cAAbA,EAA6BikB,OAA7BjkB,CAAP;EAnnBc;;EAsnBhB,IAAI1e,YAAJ,GAAmB;IACjB,SAAS2jC,QAAT,CAAkBxmC,IAAlB,EAAwB;MACtB,OACE,OAAOA,IAAP,KAAgB,QAAhB,IACAA,KAAKkB,MAALlB,GAAc,CADd,IAEAA,SAASsgC,iBAHX;IAFe;;IASjB,SAASmG,SAAT,CAAmBC,IAAnB,EAAyB;MACvB,MAAMvd,MAAM,EAAZ;;MACA,KAAK,IAAIrnB,IAAI,CAAR,EAAWiJ,KAAK27B,KAAKxlC,MAA1B,EAAkCY,IAAIiJ,EAAtC,EAA0CjJ,GAA1C,EAA+C;QAC7C,MAAM6kC,MAAMD,KAAK5kC,CAAL,EAAQyE,QAARmgC,CAAiB,EAAjBA,CAAZ;QACAvd,IAAIloB,IAAJkoB,CAASwd,IAAIniB,QAAJmiB,CAAa,CAAbA,EAAgB,GAAhBA,CAATxd;MAJqB;;MAMvB,OAAOA,IAAIhoB,IAAJgoB,CAAS,EAATA,CAAP;IAfe;;IAkBjB,MAAMyd,UAAU,KAAK98B,IAAL,CAAUsB,OAAV,CAAkBjD,GAAlB,CAAsB,IAAtB,CAAhB;IACA,IAAI0+B,YAAJ,EAAkBC,YAAlB;;IACA,IAAIj8B,MAAMC,OAAND,CAAc+7B,OAAd/7B,KAA0B27B,SAASI,QAAQ,CAAR,CAAT,CAA9B,EAAoD;MAClDC,eAAe9jB,yBAAc6jB,QAAQ,CAAR,CAAd7jB,CAAf8jB;;MAEA,IAAID,QAAQ,CAAR,MAAeA,QAAQ,CAAR,CAAfA,IAA6BJ,SAASI,QAAQ,CAAR,CAAT,CAAjC,EAAuD;QACrDE,eAAe/jB,yBAAc6jB,QAAQ,CAAR,CAAd7jB,CAAf+jB;MAJgD;IAApD,OAMO;MACLD,eAAeE,0BACb,KAAK3/B,MAAL,CAAY+qB,YAAZ,CAAyB,CAAzB,EAA4BkO,uBAA5B,CADa0G,EAEb,CAFaA,EAGb1G,uBAHa0G,CAAfF;IA3Be;;IAkCjB,OAAOtlB,kBAAO,IAAPA,EAAa,cAAbA,EAA6B,CAClCklB,UAAUI,YAAV,CADkC,EAElCC,eAAeL,UAAUK,YAAV,CAAf,GAAyC,IAFP,CAA7BvlB,CAAP;EAxpBc;;EA8pBhB,MAAMylB,qBAAN,CAA4Bv/B,SAA5B,EAAuC;IACrC,MAAM;MAAE6nB,OAAF;MAAWkS,aAAX;MAA0B13B;IAA1B,IAAmC,IAAzC;;IAWA,MAAMjC,MAAMK,gBAAIC,GAAJD,CAAQs5B,cAAcyF,iBAAtB/+B,EAAyC,CAAzCA,CAAZ;;IACA,IAAI;MACF,MAAMsZ,MAAM,MAAM1X,KAAK0iB,UAAL1iB,CAAgBjC,GAAhBiC,CAAlB;;MAEA,IAAI0X,eAAe9W,gBAAnB,EAAyB;QACvB,IAAIkgB,OAAOpJ,IAAI7V,MAAJ6V,CAAW,MAAXA,CAAX;;QACA,IAAIoJ,gBAAgB1iB,eAApB,EAAyB;UACvB0iB,OAAO,MAAM9gB,KAAK0iB,UAAL1iB,CAAgB8gB,IAAhB9gB,CAAb8gB;QAHqB;;QAKvB,IAAI8D,wBAAO9D,IAAP8D,EAAa,MAAbA,KAAyB,CAAClN,IAAIqL,GAAJrL,CAAQ,MAARA,CAAD,IAAoB,CAACA,IAAIqL,GAAJrL,CAAQ,MAARA,CAAlD,EAAoE;UAClE,IAAI,CAAC8N,QAAQ4X,kBAAR5X,CAA2BzC,GAA3ByC,CAA+BznB,GAA/BynB,CAAL,EAA0C;YACxCA,QAAQ4X,kBAAR5X,CAA2BpB,GAA3BoB,CAA+BznB,GAA/BynB,EAAoC,CAApCA;UAFgE;;UAKlE,IAAI,CAACA,QAAQ6X,cAAR7X,CAAuBzC,GAAvByC,CAA2BznB,GAA3BynB,CAAL,EAAsC;YACpCA,QAAQ6X,cAAR7X,CAAuBpB,GAAvBoB,CAA2BznB,GAA3BynB,EAAgC,CAAhCA;UANgE;;UASlE,OAAO,CAAC9N,GAAD,EAAM3Z,GAAN,CAAP;QAdqB;MAHvB;;MAoBF,MAAM,IAAIsa,iBAAJ,CACJ,wEADI,CAAN;IApBF,EAuBE,OAAO1f,MAAP,EAAe;MACfmC,gBAAM,2BAA0BnC,OAAO6D,OAAQ,IAA/C1B;MACA,OAAO0qB,QAAQ8X,WAAR9X,CAAoB7nB,SAApB6nB,CAAP;IAtCmC;EA9pBvB;;EAwsBhB9nB,QAAQC,SAAR,EAAmB;IACjB,MAAM4/B,gBAAgB,KAAKpG,aAAL,CAAmB94B,GAAnB,CAAuBV,SAAvB,CAAtB;;IACA,IAAI4/B,aAAJ,EAAmB;MACjB,OAAOA,aAAP;IAHe;;IAKjB,MAAM;MAAE/X,OAAF;MAAWkS,aAAX;MAA0BlG;IAA1B,IAAyC,IAA/C;IAEA,IAAIn8B,OAAJ;;IACA,IAAIm8B,UAAJ,EAAgB;MACdn8B,UAAUkD,QAAQhD,OAARgD,CAAgB,CAACqI,iBAAKqiB,KAAN,EAAa,IAAb,CAAhB1qB,CAAVlD;IADF,OAEO,IAAIqiC,iBAAiBA,cAAc8F,SAAd9F,KAA4B/5B,SAAjD,EAA4D;MACjEtI,UAAU,KAAK6nC,qBAAL,CAA2Bv/B,SAA3B,CAAVtI;IADK,OAEA;MACLA,UAAUmwB,QAAQ8X,WAAR9X,CAAoB7nB,SAApB6nB,CAAVnwB;IAbe;;IAejBA,UAAUA,QAAQuD,IAARvD,CAAa,CAAC,CAAC47B,QAAD,EAAWlzB,GAAX,CAAD,KAAqB;MAC1C,OAAO,IAAIizB,IAAJ,CAAS;QACdr6B,YAAY,KAAKA,UADH;QAEdqJ,MAAM,KAAKA,IAFG;QAGdrC,SAHc;QAIdszB,QAJc;QAKdlzB,GALc;QAMdmzB,iBAAiB,KAAKmG,gBANR;QAOdlG,WAAW3L,QAAQ2L,SAPL;QAQdC,kBAAkB5L,QAAQ4L,gBARZ;QASdC,uBAAuB7L,QAAQ6L,qBATjB;QAUdC,kBAAkB9L,QAAQ8L,gBAVZ;QAWdC,kBAAkB/L,QAAQ+L,gBAXZ;QAYdC;MAZc,CAAT,CAAP;IADQ,EAAVn8B;;IAiBA,KAAK8hC,aAAL,CAAmB1d,GAAnB,CAAuB9b,SAAvB,EAAkCtI,OAAlC;;IACA,OAAOA,OAAP;EAzuBc;;EA4uBhB,MAAMooC,cAAN,CAAqBrlC,eAAe,KAApC,EAA2C;IACzC,IAAIA,YAAJ,EAAkB;MAChB;IAFuC;;IAIzC,IAAI;MACF,MAAM,KAAKsF,OAAL,CAAa,CAAb,CAAN;IADF,EAEE,OAAO/E,MAAP,EAAe;MACf,IAAIA,kBAAkBuyB,8BAAtB,EAA0C;QAIxC,KAAKiM,aAAL,CAAmB5S,MAAnB,CAA0B,CAA1B;;QACA,MAAM,KAAK1gB,OAAL,EAAN;QAEA,MAAM,IAAInH,8BAAJ,EAAN;MARa;IANwB;EA5uB3B;;EA+vBhB,MAAMghC,aAAN,CAAoBtlC,eAAe,KAAnC,EAA0C;IACxC,MAAM;MAAEotB,OAAF;MAAW7uB;IAAX,IAA0B,IAAhC;IAEA6uB,QAAQmY,iBAARnY;IACA,IAAI1sB,QAAJ;;IAEA,IAAI;MACF,MAAMP,QAAQC,GAARD,CAAY,CAChB5B,WAAW0B,SAAX1B,CAAqB,YAArBA,CADgB,EAEhBA,WAAW0B,SAAX1B,CAAqB,eAArBA,CAFgB,EAGhBA,WAAW6H,aAAX7H,CAAyB,UAAzBA,CAHgB,CAAZ4B,CAAN;;MAMA,IAAI,KAAKi5B,UAAT,EAAqB;QACnB;MADF,OAEO,IAAI,KAAKkG,aAAT,EAAwB;QAC7B5+B,WAAW,KAAK4+B,aAAL,CAAmB5+B,QAA9BA;MADK,OAEA;QACLA,WAAW0sB,QAAQ1sB,QAAnBA;MAZA;;MAeF,IAAI,CAACqd,OAAOC,SAAPD,CAAiBrd,QAAjBqd,CAAL,EAAiC;QAC/B,MAAM,IAAIkC,iBAAJ,CAAgB,+BAAhB,CAAN;MADF,OAEO,IAAIvf,YAAY,CAAhB,EAAmB;QACxB;MAlBA;;MAoBF,MAAM,KAAK4E,OAAL,CAAa5E,WAAW,CAAxB,CAAN;IApBF,EAqBE,OAAOH,MAAP,EAAe;MAIf,KAAKw+B,aAAL,CAAmB5S,MAAnB,CAA0BzrB,WAAW,CAArC;;MACA,MAAM,KAAK+K,OAAL,EAAN;;MAEA,IAAIlL,kBAAkBuyB,8BAAlBvyB,IAAwC,CAACP,YAA7C,EAA2D;QACzD,MAAM,IAAIsE,8BAAJ,EAAN;MARa;;MAUf5B,gBAAM,+CAA8ChC,QAAS,GAA7DgC;MAEA,IAAI8iC,SAAJ;;MACA,IAAI;QACFA,YAAY,MAAMpY,QAAQqY,eAARrY,CAAwBptB,YAAxBotB,CAAlBoY;MADF,EAEE,OAAOE,SAAP,EAAkB;QAClB,IAAIA,qBAAqB5S,8BAArB4S,IAA2C,CAAC1lC,YAAhD,EAA8D;UAC5D,MAAM,IAAIsE,8BAAJ,EAAN;QAFgB;;QAIlB8oB,QAAQmY,iBAARnY,CAA0B,CAA1BA;QACA;MApBa;;MAuBf,WAAW,CAAC7nB,SAAD,EAAY,CAACszB,QAAD,EAAWlzB,GAAX,CAAZ,CAAX,IAA2C6/B,SAA3C,EAAsD;QACpD,IAAIvoC,OAAJ;;QACA,IAAI47B,oBAAoBv7B,KAAxB,EAA+B;UAC7BL,UAAUkD,QAAQoB,MAARpB,CAAe04B,QAAf14B,CAAVlD;UAGAA,QAAQqD,KAARrD,CAAc,MAAM,CAApB;QAJF,OAKO;UACLA,UAAUkD,QAAQhD,OAARgD,CACR,IAAIy4B,IAAJ,CAAS;YACPr6B,UADO;YAEPqJ,MAAM,KAAKA,IAFJ;YAGPrC,SAHO;YAIPszB,QAJO;YAKPlzB,GALO;YAMPmzB,iBAAiB,KAAKmG,gBANf;YAOPlG,WAAW3L,QAAQ2L,SAPZ;YAQPC,kBAAkB5L,QAAQ4L,gBARnB;YASPC,uBAAuB7L,QAAQ6L,qBATxB;YAUPC,kBAAkB9L,QAAQ8L,gBAVnB;YAWPC,kBAAkB/L,QAAQ+L,gBAXnB;YAYPC,YAAY;UAZL,CAAT,CADQj5B,CAAVlD;QARkD;;QA0BpD,KAAK8hC,aAAL,CAAmB1d,GAAnB,CAAuB9b,SAAvB,EAAkCtI,OAAlC;MAjDa;;MAmDfmwB,QAAQmY,iBAARnY,CAA0BoY,UAAUxb,IAApCoD;IA9EsC;EA/vB1B;;EAi1BhB7hB,aAAahF,EAAb,EAAiB9I,OAAjB,EAA0B;IACxB,OAAO,KAAK2vB,OAAL,CAAa7hB,YAAb,CAA0BhF,EAA1B,EAA8B9I,OAA9B,CAAP;EAl1Bc;;EAq1BhB,MAAMgO,OAAN,CAAcgiB,oBAAoB,KAAlC,EAAyC;IACvC,OAAO,KAAKL,OAAL,GACH,KAAKA,OAAL,CAAa3hB,OAAb,CAAqBgiB,iBAArB,CADG,GAEH5hB,wCAFJ;EAt1Bc;;EA81BhB85B,qBAAqB/oC,IAArB,EAA2BgpC,QAA3B,EAAqCt+B,QAArC,EAA+C;IAC7C,MAAMg5B,QAAQ,KAAK14B,IAAL,CAAU24B,UAAV,CAAqBqF,QAArB,CAAd;;IACA,IAAItF,MAAM3V,GAAN2V,CAAU,GAAVA,CAAJ,EAAoB;MAClB,MAAMuF,WAAWt8B,6BAAkB+2B,MAAMr6B,GAANq6B,CAAU,GAAVA,CAAlB/2B,CAAjB;;MACA,IAAI3M,SAAS,EAAb,EAAiB;QACfA,OAAOipC,QAAPjpC;MADF,OAEO;QACLA,OAAO,GAAGA,IAAK,IAAGipC,QAAX,EAAPjpC;MALgB;IAFyB;;IAW7C,IAAI,CAAC0K,SAASqjB,GAATrjB,CAAa1K,IAAb0K,CAAL,EAAyB;MACvBA,SAAS+Z,GAAT/Z,CAAa1K,IAAb0K,EAAmB,EAAnBA;IAZ2C;;IAc7CA,SAASrB,GAATqB,CAAa1K,IAAb0K,EAAmBvI,IAAnBuI,CACEw2B,8BAAkB70B,MAAlB60B,CACE,KAAKl2B,IADPk2B,EAEE8H,QAFF9H,EAGE,KAAKv/B,UAHPu/B,EAIE,KAAKvE,eAJPuE,EAKsB,IALtBA,EAOGt9B,IAPHs9B,CAOQlD,cAAcA,cAAcA,WAAWkL,cAAXlL,EAPpCkD,EAQGx9B,KARHw9B,CAQS,UAAUv9B,MAAV,EAAkB;MACvBmC,gBAAM,0BAAyBnC,MAAO,IAAtCmC;MACA,OAAO,IAAP;IAVJ,EADF4E;;IAeA,IAAIg5B,MAAM3V,GAAN2V,CAAU,MAAVA,CAAJ,EAAuB;MACrB,MAAMyF,OAAOzF,MAAMr6B,GAANq6B,CAAU,MAAVA,CAAb;;MACA,WAAW0F,GAAX,IAAkBD,IAAlB,EAAwB;QACtB,KAAKJ,oBAAL,CAA0B/oC,IAA1B,EAAgCopC,GAAhC,EAAqC1+B,QAArC;MAHmB;IA7BsB;EA91B/B;;EAm4BhB,IAAI2+B,YAAJ,GAAmB;IACjB,IAAI,CAAC,KAAK1E,QAAL,CAAc0B,SAAnB,EAA8B;MAC5B,OAAO5jB,kBAAO,IAAPA,EAAa,cAAbA,EAA6Blf,QAAQhD,OAARgD,CAAgB,IAAhBA,CAA7Bkf,CAAP;IAFe;;IAKjB,MAAM6mB,YAAYl9B,OAAOC,MAAPD,CAAc,IAAdA,CAAlB;IACA,MAAMm9B,gBAAgB,IAAI/a,GAAJ,EAAtB;;IACA,WAAWwa,QAAX,IAAuB,KAAKxY,OAAL,CAAa1lB,QAAb,CAAsBzB,GAAtB,CAA0B,QAA1B,CAAvB,EAA4D;MAC1D,KAAK0/B,oBAAL,CAA0B,EAA1B,EAA8BC,QAA9B,EAAwCO,aAAxC;IARe;;IAWjB,MAAMC,cAAc,EAApB;;IACA,WAAW,CAACxpC,IAAD,EAAO0K,QAAP,CAAX,IAA+B6+B,aAA/B,EAA8C;MAC5CC,YAAYrnC,IAAZqnC,CACEjmC,QAAQC,GAARD,CAAYmH,QAAZnH,EAAsBK,IAAtBL,CAA2B+/B,UAAU;QACnCA,SAASA,OAAOj4B,MAAPi4B,CAAcI,SAAS,CAAC,CAACA,KAAzBJ,CAATA;;QACA,IAAIA,OAAOlhC,MAAPkhC,GAAgB,CAApB,EAAuB;UACrBgG,UAAUtpC,IAAV,IAAkBsjC,MAAlBgG;QAHiC;MAArC,EADFE;IAbe;;IAuBjB,OAAO/mB,kBACL,IADKA,EAEL,cAFKA,EAGLlf,QAAQC,GAARD,CAAYimC,WAAZjmC,EAAyBK,IAAzBL,CAA8B,MAAM+lC,SAApC/lC,CAHKkf,CAAP;EA15Bc;;EAi6BhB,IAAIgnB,YAAJ,GAAmB;IACjB,MAAMppC,UAAU,KAAKsB,UAAL,CAAgB0B,SAAhB,CAA0B,oBAA1B,CAAhB;IACA,OAAOof,kBAAO,IAAPA,EAAa,cAAbA,EAA6BpiB,OAA7BoiB,CAAP;EAn6Bc;;EAy6BhB,MAAMinB,kBAAN,GAA2B;IACzB,MAAM,CAACC,gBAAD,EAAmBN,YAAnB,IAAmC,MAAM9lC,QAAQC,GAARD,CAAY,CACzD,KAAK5B,UAAL,CAAgB6H,aAAhB,CAA8B,WAA9B,CADyD,EAEzD,KAAK7H,UAAL,CAAgB0B,SAAhB,CAA0B,cAA1B,CAFyD,CAAZE,CAA/C;;IAKA,IAAIomC,gBAAJ,EAAsB;MACpB,OAAO,IAAP;IAPuB;;IASzB,IAAIN,YAAJ,EAAkB;MAChB,OAAOj9B,OAAO0hB,MAAP1hB,CAAci9B,YAAdj9B,EAA4Bw9B,IAA5Bx9B,CAAiCy9B,eACtCA,YAAYD,IAAZC,CAAiBC,UAAUA,OAAO/Q,OAAP+Q,KAAmB,IAA9CD,CADKz9B,CAAP;IAVuB;;IAczB,OAAO,KAAP;EAv7Bc;;EA07BhB,IAAI29B,mBAAJ,GAA0B;IACxB,MAAMj/B,WAAW,KAAK0lB,OAAL,CAAa1lB,QAA9B;;IACA,IAAI,CAACA,QAAD,IAAa,CAACA,SAASijB,GAATjjB,CAAa,IAAbA,CAAlB,EAAsC;MACpC,OAAO2X,kBAAO,IAAPA,EAAa,qBAAbA,EAAoC,IAApCA,CAAP;IAHsB;;IAMxB,MAAMunB,mBAAmBl/B,SAASzB,GAATyB,CAAa,IAAbA,CAAzB;;IACA,IAAI,CAACiB,MAAMC,OAAND,CAAci+B,gBAAdj+B,CAAD,IAAoCi+B,iBAAiB5nC,MAAjB4nC,KAA4B,CAApE,EAAuE;MACrE,OAAOvnB,kBAAO,IAAPA,EAAa,qBAAbA,EAAoC,IAApCA,CAAP;IARsB;;IAWxB,MAAMwnB,MAAM,EAAZ;;IACA,WAAWtgC,EAAX,IAAiBqgC,gBAAjB,EAAmC;MACjC,IAAIrgC,cAAcP,eAAlB,EAAuB;QACrB6gC,IAAI9nC,IAAJ8nC,CAAStgC,GAAGlC,QAAHkC,EAATsgC;MAF+B;IAZX;;IAiBxB,IAAIA,IAAI7nC,MAAJ6nC,KAAe,CAAnB,EAAsB;MACpB,OAAOxnB,kBAAO,IAAPA,EAAa,qBAAbA,EAAoC,IAApCA,CAAP;IAlBsB;;IAoBxB,OAAOA,kBAAO,IAAPA,EAAa,qBAAbA,EAAoCwnB,GAApCxnB,CAAP;EA98Bc;;AAAA;;AAk9BlB,MAAMynB,mBAAN,SAAkChZ,WAAlC,CAA6C;EAC3CnxB,YAAY4B,UAAZ,EAAwBwoC,GAAxB,EAA6B;IAC3B,MAAMxoC,UAAN,EAAkBwoC,GAAlB;EAFyC;;EAK3C,IAAInmC,aAAJ,GAAoB;IAClB,OAAOye,kBAAO,IAAPA,EAAa,eAAbA,EAA8B,KAAK+N,OAAL,CAAaxsB,aAA3Cye,CAAP;EANyC;;AAAA;;;;;;;;;;;;;;;;ACnkD7C;;AAUA;;AACA;;AAUA;;AAUA;;AAUA;;AAUA;;AACA;;AAEA,MAAM2nB,gBAAgBvU,uCAAsB,UAAU7M,CAAV,EAAa;EACvDA,EAAE,mBAAF,IAAyBA,EAAE,wBAAF,IAA8B;IACrDhpB,MAAM,wBAD+C;IAErDqqC,SAASC,0CAF4C;IAGrDC,YAAYC,kDAHyC;IAIrDC,aAAaC,mDAJwC;IAKrDC,SAASC;EAL4C,CAAvD5hB;EAOAA,EAAE,gBAAF,IAAsBA,EAAE,qBAAF,IAA2B;IAC/ChpB,MAAM,qBADyC;IAE/CqqC,SAASQ,uCAFsC;IAG/CN,YAAYO,+CAHmC;IAI/CL,aAAaM,gDAJkC;IAK/CJ,SAASK;EALsC,CAAjDhiB;EAOAA,EAAE,cAAF,IACEA,EAAE,kBAAF,IACAA,EAAE,uBAAF,IACE;IACEhpB,MAAM,uBADR;IAEEqqC,SAASY,yCAFX;IAGEV,YAAYW,iDAHd;IAIET,aAAaU,kDAJf;IAKER,SAASS;EALX,CAHJpiB;EAUAA,EAAE,kBAAF,IACEA,EAAE,sBAAF,IACAA,EAAE,2BAAF,IACE;IACEhpB,MAAM,2BADR;IAEEqqC,SAASgB,6CAFX;IAGEd,YAAYe,qDAHd;IAIEb,aAAac,sDAJf;IAKEZ,SAASa;EALX,CAHJxiB;EAUAA,EAAEyiB,OAAFziB,GACEA,EAAE0iB,KAAF1iB,GACAA,EAAE,eAAF,IACE;IACEhpB,MAAM,wBADR;IAEEuqC,YAAYC,kDAFd;IAGEC,aAAaC;EAHf,CAHJ1hB;EAQAA,EAAE,cAAF,IAAoBA,EAAE,YAAF,IAAkB;IACpChpB,MAAM,qBAD8B;IAEpCuqC,YAAYO,+CAFwB;IAGpCL,aAAaM;EAHuB,CAAtC/hB;EAKAA,EAAE,gBAAF,IAAsBA,EAAE,cAAF,IAAoB;IACxChpB,MAAM,uBADkC;IAExCuqC,YAAYW,iDAF4B;IAGxCT,aAAaU;EAH2B,CAA1CniB;EAKAA,EAAE,oBAAF,IAA0BA,EAAE,kBAAF,IAAwB;IAChDhpB,MAAM,2BAD0C;IAEhDuqC,YAAYe,qDAFoC;IAGhDb,aAAac;EAHmC,CAAlDviB;EAKAA,EAAE,iBAAF,IAAuB;IACrBhpB,MAAM,wBADe;IAErBqqC,SAASsB,sCAFY;IAGrBpB,YAAYC,kDAHS;IAIrBC,aAAaC,mDAJQ;IAKrBC,SAASiB;EALY,CAAvB5iB;EAOAA,EAAE,cAAF,IAAoB;IAClBhpB,MAAM,qBADY;IAElBqqC,SAASwB,mCAFS;IAGlBtB,YAAYO,+CAHM;IAIlBL,aAAaM,gDAJK;IAKlBJ,SAASmB;EALS,CAApB9iB;EAOAA,EAAE,gBAAF,IAAsB;IACpBhpB,MAAM,uBADc;IAEpBqqC,SAAS0B,qCAFW;IAGpBxB,YAAYW,iDAHQ;IAIpBT,aAAaU,kDAJO;IAKpBR,SAASqB;EALW,CAAtBhjB;EAOAA,EAAE,oBAAF,IAA0B;IACxBhpB,MAAM,2BADkB;IAExBqqC,SAAS4B,yCAFe;IAGxB1B,YAAYe,qDAHY;IAIxBb,aAAac,sDAJW;IAKxBZ,SAASuB;EALe,CAA1BljB;EAOAA,EAAE,iBAAF,IAAuB;IACrBhpB,MAAM,wBADe;IAErBqqC,SAAS8B,sCAFY;IAGrB5B,YAAYC,kDAHS;IAIrBC,aAAaC,mDAJQ;IAKrBC,SAASyB;EALY,CAAvBpjB;EAOAA,EAAE,cAAF,IAAoB;IAClBhpB,MAAM,qBADY;IAElBqqC,SAASgC,mCAFS;IAGlB9B,YAAYO,+CAHM;IAIlBL,aAAaM,gDAJK;IAKlBJ,SAAS2B;EALS,CAApBtjB;EAOAA,EAAE,gBAAF,IAAsB;IACpBhpB,MAAM,uBADc;IAEpBqqC,SAASkC,qCAFW;IAGpBhC,YAAYW,iDAHQ;IAIpBT,aAAaU,kDAJO;IAKpBR,SAAS6B;EALW,CAAtBxjB;EAOAA,EAAE,oBAAF,IAA0B;IACxBhpB,MAAM,2BADkB;IAExBqqC,SAASoC,yCAFe;IAGxBlC,YAAYe,qDAHY;IAIxBb,aAAac,sDAJW;IAKxBZ,SAAS+B;EALe,CAA1B1jB;EAOAA,EAAE,mBAAF,IAAyBA,EAAE2jB,SAAF3jB,GAAc;IACrChpB,MAAM,wBAD+B;IAErCqqC,SAASuC,0CAF4B;IAGrCrC,YAAYC,kDAHyB;IAIrCC,aAAaC,mDAJwB;IAKrCC,SAASkC;EAL4B,CAAvC7jB;EAOAA,EAAE,gBAAF,IAAsB;IACpBhpB,MAAM,qBADc;IAEpBqqC,SAASyC,uCAFW;IAGpBvC,YAAYO,+CAHQ;IAIpBL,aAAaM,gDAJO;IAKpBJ,SAASoC;EALW,CAAtB/jB;EAOAA,EAAE,kBAAF,IAAwB;IACtBhpB,MAAM,uBADgB;IAEtBqqC,SAAS2C,yCAFa;IAGtBzC,YAAYW,iDAHU;IAItBT,aAAaU,kDAJS;IAKtBR,SAASsC;EALa,CAAxBjkB;EAOAA,EAAE,sBAAF,IAA4B;IAC1BhpB,MAAM,2BADoB;IAE1BqqC,SAAS6C,6CAFiB;IAG1B3C,YAAYe,qDAHc;IAI1Bb,aAAac,sDAJa;IAK1BZ,SAASwC;EALiB,CAA5BnkB;AAvIoB,EAAtB;;AAgJA,SAASgd,cAAT,CAAwBhmC,IAAxB,EAA8B;EAC5B,MAAMylC,WAAW2H,oCAAkBptC,IAAlBotC,CAAjB;EACA,MAAMC,UAAUjD,eAAhB;EACA,OAAOiD,QAAQ5H,QAAR,CAAP;AAxNF;;AA2NA,SAAS6H,gBAAT,CAA0BttC,IAA1B,EAAgC;EAC9B,MAAMiN,OAAO+4B,eAAehmC,IAAf,CAAb;;EACA,IAAI,CAACiN,IAAL,EAAW;IACT,OAAO,IAAP;EAH4B;;EAM9B,MAAM;IAAEs9B,UAAF;IAAcE,WAAd;IAA2BJ;EAA3B,IAAuCp9B,IAA7C;EACA,IAAIsgC,kBAAJ;;EACA,IAAI,CAAClD,OAAL,EAAc;IACZkD,qBAAqBhD,UAArBgD;EADF,OAEO;IACLA,qBAAqBhD,WAAWzlB,GAAXylB,CAAe,CAACiD,CAAD,EAAIxqC,CAAJ,KAAUwqC,IAAInD,QAAQrnC,CAAR,CAA7BunC,CAArBgD;EAX4B;;EAc9B,IAAIE,cAAc,CAAC,CAAnB;EACA,IAAIC,YAAJ;EAaA,MAAMC,YAAY,EAAlB;;EACA,WAAW,CAACC,OAAD,EAAUC,UAAV,CAAX,IAAoCpD,YACjC3lB,GADiC2lB,CAEhC,CAACqD,WAAD,EAAcC,KAAd,KAAwB,CACtBD,WADsB,EAEtBC,KAFsB,CAFQtD,EAOjCpV,IAPiCoV,CAQhC,CAAC,CAACuD,QAAD,CAAD,EAAa,CAACC,QAAD,CAAb,KACED,WAAWC,QATmBxD,CAApC,EAUK;IACH,IAAImD,YAAY,CAAC,CAAjB,EAAoB;MAClB;IAFC;;IAKH,IAAIA,YAAYH,cAAc,CAA9B,EAAiC;MAC/BC,aAAavrC,IAAburC,CAAkBH,mBAAmBM,UAAnB,CAAlBH;MACAD,eAAe,CAAfA;IAFF,OAGO;MACLA,cAAcG,OAAdH;MACAC,eAAe,CAACH,mBAAmBM,UAAnB,CAAD,CAAfH;MACAC,UAAUxrC,IAAVwrC,CAAeC,OAAfD,EAAwBD,YAAxBC;IAXC;EAvCyB;;EAsD9B,OAAOA,SAAP;AAjRF;;AAoRA,SAASzH,cAAT,CAAwBlmC,IAAxB,EAA8B;EAC5B,MAAMkuC,SAASZ,iBAAiBttC,IAAjB,CAAf;EACA,MAAMyuB,OAAO,IAAI7iB,gBAAJ,CAAS,IAAT,CAAb;EACA6iB,KAAKhK,GAALgK,CAAS,UAATA,EAAqBvC,iBAAK7iB,GAAL6iB,CAASlsB,IAATksB,CAArBuC;EACAA,KAAKhK,GAALgK,CAAS,MAATA,EAAiBvC,iBAAK7iB,GAAL6iB,CAAS,MAATA,CAAjBuC;EACAA,KAAKhK,GAALgK,CAAS,SAATA,EAAoBvC,iBAAK7iB,GAAL6iB,CAAS,cAATA,CAApBuC;EACAA,KAAKhK,GAALgK,CAAS,UAATA,EAAqBvC,iBAAK7iB,GAAL6iB,CAAS,YAATA,CAArBuC;EACAA,KAAKhK,GAALgK,CAAS,aAATA,EAAwBvC,iBAAK7iB,GAAL6iB,CAAS,UAATA,CAAxBuC;EACAA,KAAKhK,GAALgK,CAAS,GAATA,EAAcyf,MAAdzf;EACAA,KAAKhK,GAALgK,CAAS,WAATA,EAAsByf,OAAO,CAAP,CAAtBzf;EACAA,KAAKhK,GAALgK,CACE,UADFA,EAEEyf,OAAOA,OAAO9rC,MAAP8rC,GAAgB,CAAvB,IAA4BA,OAAOA,OAAO9rC,MAAP8rC,GAAgB,CAAvB,EAA0B9rC,MAAtD8rC,GAA+D,CAFjEzf;EAIA,MAAMiX,aAAa,IAAI95B,gBAAJ,CAAS,IAAT,CAAnB;EACA6iB,KAAKhK,GAALgK,CAAS,gBAATA,EAA2BiX,UAA3BjX;EACA,MAAM0f,aAAa,IAAIviC,gBAAJ,CAAS,IAAT,CAAnB;EACAuiC,WAAW1pB,GAAX0pB,CAAe,UAAfA,EAA2B,UAA3BA;EACAA,WAAW1pB,GAAX0pB,CAAe,UAAfA,EAA2B,OAA3BA;EACAA,WAAW1pB,GAAX0pB,CAAe,YAAfA,EAA6B,CAA7BA;EACA1f,KAAKhK,GAALgK,CAAS,eAATA,EAA0B0f,UAA1B1f;EAEA,OAAOA,IAAP;AA1SF;;;;;;;;;;;;ACiBA,MAAMod,qBAAqB,CACzB,MADyB,EACjB,CADiB,EACd,CADc,EACX,CADW,EACR,OADQ,EACC,OADD,EACU,OADV,EACmB,OADnB,EAC4B,OAD5B,EACqC,OADrC,EAEzB,OAFyB,EAEhB,OAFgB,EAEP,OAFO,EAEE,MAFF,EAEU,OAFV,EAEmB,OAFnB,EAE4B,CAF5B,EAE+B,OAF/B,EAEwC,OAFxC,EAGzB,OAHyB,EAGhB,OAHgB,EAGP,OAHO,EAGE,OAHF,EAGW,OAHX,EAGoB,OAHpB,EAG6B,OAH7B,EAGsC,OAHtC,EAIzB,OAJyB,EAIhB,OAJgB,EAIP,OAJO,EAIE,OAJF,EAIW,OAJX,EAIoB,OAJpB,EAI6B,OAJ7B,EAIsC,OAJtC,EAKzB,OALyB,EAKhB,OALgB,EAKP,MALO,EAKC,OALD,EAKU,OALV,EAKmB,OALnB,EAK4B,MAL5B,EAKoC,OALpC,EAK6C,OAL7C,EAMzB,OANyB,EAMhB,OANgB,EAMP,OANO,EAME,OANF,EAMW,OANX,EAMoB,MANpB,EAM4B,OAN5B,EAMqC,OANrC,EAOzB,OAPyB,EAOhB,OAPgB,EAOP,OAPO,EAOE,OAPF,EAOW,OAPX,EAOoB,OAPpB,EAO6B,OAP7B,EAOsC,OAPtC,EAQzB,OARyB,EAQhB,OARgB,EAQP,OARO,EAQE,OARF,EAQW,OARX,EAQoB,OARpB,EAQ6B,OAR7B,EAQsC,OARtC,EASzB,OATyB,EAShB,MATgB,EASR,OATQ,EASC,MATD,EASS,OATT,EASkB,OATlB,EAS2B,OAT3B,EASoC,MATpC,EAS4C,OAT5C,EAUzB,OAVyB,EAUhB,OAVgB,EAUP,OAVO,EAUE,OAVF,EAUW,MAVX,EAUmB,MAVnB,EAU2B,MAV3B,EAUmC,MAVnC,EAU2C,OAV3C,EAWzB,MAXyB,EAWjB,OAXiB,EAWR,MAXQ,EAWA,OAXA,EAWS,OAXT,EAWkB,OAXlB,EAW2B,OAX3B,EAWoC,OAXpC,EAW6C,OAX7C,EAYzB,OAZyB,EAYhB,OAZgB,EAYP,OAZO,EAYE,OAZF,EAYW,OAZX,EAYoB,OAZpB,EAY6B,OAZ7B,EAYsC,OAZtC,EAazB,MAbyB,EAajB,OAbiB,EAaR,OAbQ,EAaC,OAbD,EAaU,OAbV,EAamB,OAbnB,EAa4B,OAb5B,EAaqC,OAbrC,EAczB,OAdyB,EAchB,OAdgB,EAcP,OAdO,EAcE,OAdF,EAcW,MAdX,EAcmB,OAdnB,EAc4B,CAd5B,EAc+B,OAd/B,EAcwC,CAdxC,EAc2C,OAd3C,EAezB,OAfyB,EAehB,OAfgB,EAeP,OAfO,EAeE,OAfF,EAeW,OAfX,EAeoB,OAfpB,EAe6B,OAf7B,EAesC,OAftC,EAgBzB,OAhByB,EAgBhB,OAhBgB,EAgBP,OAhBO,EAgBE,OAhBF,EAgBW,OAhBX,EAgBoB,OAhBpB,EAgB6B,OAhB7B,EAgBsC,OAhBtC,EAiBzB,OAjByB,EAiBhB,OAjBgB,EAiBP,OAjBO,EAiBE,OAjBF,EAiBW,OAjBX,EAiBoB,OAjBpB,EAiB6B,OAjB7B,EAiBsC,OAjBtC,EAkBzB,MAlByB,EAkBjB,OAlBiB,EAkBR,OAlBQ,EAkBC,OAlBD,EAkBU,OAlBV,EAkBmB,OAlBnB,EAkB4B,OAlB5B,EAkBqC,OAlBrC,EAmBzB,OAnByB,EAmBhB,OAnBgB,EAmBP,OAnBO,EAmBE,OAnBF,EAmBW,OAnBX,EAmBoB,OAnBpB,EAmB6B,OAnB7B,EAmBsC,OAnBtC,EAoBzB,OApByB,EAoBhB,OApBgB,EAoBP,OApBO,EAoBE,OApBF,EAoBW,OApBX,EAoBoB,MApBpB,EAoB4B,OApB5B,EAoBqC,OApBrC,EAqBzB,OArByB,EAqBhB,OArBgB,EAqBP,OArBO,EAqBE,OArBF,EAqBW,OArBX,EAqBoB,OArBpB,EAqB6B,OArB7B,EAqBsC,MArBtC,EAqB8C,MArB9C,EAsBzB,MAtByB,EAsBjB,MAtBiB,EAsBT,MAtBS,EAsBD,MAtBC,EAsBO,MAtBP,EAsBe,OAtBf,EAsBwB,OAtBxB,EAsBiC,MAtBjC,EAsByC,MAtBzC,EAuBzB,MAvByB,EAuBjB,MAvBiB,EAuBT,OAvBS,EAuBA,MAvBA,EAuBQ,OAvBR,EAuBiB,OAvBjB,EAuB0B,OAvB1B,EAuBmC,OAvBnC,EAuB4C,OAvB5C,EAwBzB,OAxByB,EAwBhB,OAxBgB,EAwBP,OAxBO,EAwBE,OAxBF,EAwBW,OAxBX,EAwBoB,OAxBpB,EAwB6B,OAxB7B,EAwBsC,OAxBtC,EAyBzB,OAzByB,EAyBhB,OAzBgB,EAyBP,OAzBO,EAyBE,OAzBF,EAyBW,OAzBX,EAyBoB,OAzBpB,EAyB6B,OAzB7B,EAyBsC,OAzBtC,EA0BzB,OA1ByB,EA0BhB,OA1BgB,EA0BP,OA1BO,EA0BE,OA1BF,EA0BW,OA1BX,EA0BoB,OA1BpB,EA0B6B,OA1B7B,EA0BsC,OA1BtC,EA2BzB,OA3ByB,EA2BhB,OA3BgB,EA2BP,OA3BO,EA2BE,OA3BF,EA2BW,OA3BX,EA2BoB,OA3BpB,EA2B6B,CA3B7B,EA2BgC,CA3BhC,EA2BmC,OA3BnC,EA2B4C,MA3B5C,EA4BzB,OA5ByB,EA4BhB,OA5BgB,EA4BP,OA5BO,EA4BE,OA5BF,EA4BW,OA5BX,EA4BoB,OA5BpB,EA4B6B,OA5B7B,EA4BsC,OA5BtC,EA6BzB,OA7ByB,EA6BhB,OA7BgB,EA6BP,OA7BO,EA6BE,OA7BF,EA6BW,OA7BX,EA6BoB,OA7BpB,EA6B6B,OA7B7B,EA6BsC,OA7BtC,EA6B+C,CA7B/C,EA6BkD,CA7BlD,EA8BzB,OA9ByB,EA8BhB,OA9BgB,EA8BP,OA9BO,EA8BE,CA9BF,EA8BK,CA9BL,EA8BQ,OA9BR,EA8BiB,OA9BjB,EA8B0B,OA9B1B,EA8BmC,OA9BnC,EA8B4C,OA9B5C,EA+BzB,OA/ByB,EA+BhB,MA/BgB,EA+BR,MA/BQ,EA+BA,CA/BA,EA+BG,CA/BH,EA+BM,MA/BN,EA+Bc,MA/Bd,EA+BsB,OA/BtB,EA+B+B,OA/B/B,EA+BwC,MA/BxC,EAgCzB,OAhCyB,EAgChB,MAhCgB,EAgCR,OAhCQ,EAgCC,MAhCD,EAgCS,OAhCT,EAgCkB,MAhClB,EAgC0B,OAhC1B,EAgCmC,OAhCnC,EAgC4C,OAhC5C,EAiCzB,OAjCyB,EAiChB,CAjCgB,EAiCb,CAjCa,EAiCV,OAjCU,EAiCD,OAjCC,EAiCQ,OAjCR,EAiCiB,MAjCjB,EAiCyB,OAjCzB,EAiCkC,MAjClC,EAiC0C,OAjC1C,EAkCzB,MAlCyB,EAkCjB,OAlCiB,EAkCR,MAlCQ,EAkCA,CAlCA,EAkCG,CAlCH,EAkCM,OAlCN,EAkCe,OAlCf,EAkCwB,OAlCxB,EAkCiC,OAlCjC,EAkC0C,OAlC1C,EAmCzB,MAnCyB,EAmCjB,OAnCiB,EAmCR,MAnCQ,EAmCA,OAnCA,EAmCS,MAnCT,EAmCiB,OAnCjB,EAmC0B,MAnC1B,EAmCkC,OAnClC,EAmC2C,MAnC3C,EAoCzB,OApCyB,EAoChB,MApCgB,EAoCR,OApCQ,EAoCC,OApCD,EAoCU,OApCV,EAoCmB,OApCnB,EAoC4B,OApC5B,EAoCqC,OApCrC,EAqCzB,OArCyB,EAqChB,OArCgB,EAqCP,OArCO,EAqCE,OArCF,EAqCW,OArCX,EAqCoB,MArCpB,EAqC4B,OArC5B,EAqCqC,OArCrC,EAsCzB,OAtCyB,EAsChB,OAtCgB,EAsCP,MAtCO,EAsCC,OAtCD,EAsCU,OAtCV,EAsCmB,CAtCnB,EAsCsB,CAtCtB,EAsCyB,OAtCzB,EAsCkC,OAtClC,EAsC2C,OAtC3C,EAuCzB,OAvCyB,EAuChB,CAvCgB,EAuCb,OAvCa,EAuCJ,OAvCI,EAuCK,OAvCL,EAuCc,OAvCd,EAuCuB,OAvCvB,EAuCgC,OAvChC,EAuCyC,OAvCzC,EAwCzB,OAxCyB,EAwChB,OAxCgB,EAwCP,OAxCO,EAwCE,OAxCF,EAwCW,MAxCX,EAwCmB,OAxCnB,EAwC4B,OAxC5B,EAwCqC,OAxCrC,EAyCzB,OAzCyB,EAyChB,OAzCgB,EAyCP,OAzCO,EAyCE,MAzCF,EAyCU,OAzCV,EAyCmB,OAzCnB,EAyC4B,OAzC5B,EAyCqC,OAzCrC,EA0CzB,OA1CyB,EA0ChB,OA1CgB,EA0CP,OA1CO,EA0CE,OA1CF,EA0CW,OA1CX,EA0CoB,OA1CpB,EA0C6B,MA1C7B,EA0CqC,MA1CrC,EA0C6C,OA1C7C,EA2CzB,OA3CyB,EA2ChB,OA3CgB,EA2CP,OA3CO,EA2CE,OA3CF,EA2CW,OA3CX,EA2CoB,MA3CpB,EA2C4B,OA3C5B,EA2CqC,OA3CrC,EA4CzB,OA5CyB,EA4ChB,OA5CgB,EA4CP,OA5CO,EA4CE,OA5CF,EA4CW,OA5CX,EA4CoB,OA5CpB,EA4C6B,OA5C7B,EA4CsC,OA5CtC,EA6CzB,OA7CyB,EA6ChB,MA7CgB,EA6CR,OA7CQ,EA6CC,OA7CD,EA6CU,OA7CV,EA6CmB,OA7CnB,EA6C4B,OA7C5B,EA6CqC,OA7CrC,EA8CzB,OA9CyB,EA8ChB,OA9CgB,EA8CP,OA9CO,EA8CE,OA9CF,EA8CW,OA9CX,EA8CoB,OA9CpB,EA8C6B,MA9C7B,EA8CqC,OA9CrC,EA+CzB,OA/CyB,EA+ChB,OA/CgB,EA+CP,OA/CO,EA+CE,OA/CF,EA+CW,OA/CX,EA+CoB,OA/CpB,EA+C6B,OA/C7B,EA+CsC,OA/CtC,EAgDzB,OAhDyB,EAgDhB,OAhDgB,EAgDP,OAhDO,EAgDE,MAhDF,EAgDU,OAhDV,EAgDmB,OAhDnB,EAgD4B,OAhD5B,EAgDqC,CAhDrC,EAgDwC,CAhDxC,EAgD2C,CAhD3C,EAgD8C,CAhD9C,EAgDiD,CAhDjD,EAiDzB,CAjDyB,EAiDtB,CAjDsB,EAiDnB,CAjDmB,EAiDhB,CAjDgB,EAiDb,CAjDa,EAiDV,CAjDU,EAiDP,CAjDO,EAiDJ,OAjDI,EAiDK,CAjDL,EAiDQ,CAjDR,EAiDW,CAjDX,EAiDc,CAjDd,EAiDiB,CAjDjB,EAiDoB,CAjDpB,EAiDuB,CAjDvB,EAiD0B,CAjD1B,EAiD6B,CAjD7B,EAiDgC,CAjDhC,EAiDmC,CAjDnC,EAiDsC,CAjDtC,EAiDyC,CAjDzC,EAiD4C,CAjD5C,EAiD+C,CAjD/C,EAiDkD,CAjDlD,EAkDzB,CAlDyB,EAkDtB,CAlDsB,EAkDnB,CAlDmB,EAkDhB,CAlDgB,EAkDb,CAlDa,EAkDV,CAlDU,EAkDP,CAlDO,EAkDJ,CAlDI,EAkDD,CAlDC,EAkDE,CAlDF,EAkDK,CAlDL,EAkDQ,CAlDR,EAkDW,CAlDX,EAkDc,CAlDd,EAkDiB,CAlDjB,EAkDoB,CAlDpB,EAkDuB,CAlDvB,EAkD0B,CAlD1B,EAkD6B,CAlD7B,EAkDgC,CAlDhC,EAkDmC,CAlDnC,EAkDsC,CAlDtC,EAkDyC,CAlDzC,EAkD4C,CAlD5C,EAkD+C,CAlD/C,EAkDkD,CAlDlD,EAmDzB,CAnDyB,EAmDtB,CAnDsB,EAmDnB,CAnDmB,EAmDhB,CAnDgB,EAmDb,CAnDa,EAmDV,CAnDU,EAmDP,CAnDO,EAmDJ,CAnDI,EAmDD,CAnDC,EAmDE,CAnDF,EAmDK,CAnDL,EAmDQ,CAnDR,EAmDW,CAnDX,EAmDc,CAnDd,EAmDiB,CAnDjB,EAmDoB,CAnDpB,EAmDuB,CAnDvB,EAmD0B,CAnD1B,EAmD6B,CAnD7B,EAmDgC,CAnDhC,EAmDmC,CAnDnC,EAmDsC,CAnDtC,EAmDyC,CAnDzC,EAmD4C,CAnD5C,EAoDzB,OApDyB,EAoDhB,CApDgB,EAoDb,CApDa,EAoDV,CApDU,EAoDP,CApDO,EAoDJ,CApDI,EAoDD,CApDC,EAoDE,CApDF,EAoDK,CApDL,EAoDQ,CApDR,EAoDW,CApDX,EAoDc,CApDd,EAoDiB,CApDjB,EAoDoB,OApDpB,EAoD6B,CApD7B,EAoDgC,CApDhC,EAoDmC,CApDnC,EAoDsC,CApDtC,EAoDyC,CApDzC,EAoD4C,CApD5C,EAqDzB,OArDyB,EAqDhB,OArDgB,EAqDP,OArDO,EAqDE,OArDF,EAqDW,OArDX,EAqDoB,OArDpB,EAqD6B,OArD7B,EAqDsC,OArDtC,EAqD+C,CArD/C,EAqDkD,CArDlD,EAsDzB,OAtDyB,EAsDhB,OAtDgB,EAsDP,CAtDO,EAsDJ,OAtDI,EAsDK,OAtDL,EAsDc,OAtDd,EAsDuB,OAtDvB,EAsDgC,OAtDhC,EAsDyC,OAtDzC,EAuDzB,OAvDyB,EAuDhB,OAvDgB,EAuDP,OAvDO,EAuDE,OAvDF,EAuDW,OAvDX,EAuDoB,OAvDpB,EAuD6B,OAvD7B,EAuDsC,CAvDtC,EAuDyC,CAvDzC,EAuD4C,OAvD5C,EAwDzB,OAxDyB,EAwDhB,OAxDgB,EAwDP,MAxDO,EAwDC,MAxDD,EAwDS,OAxDT,EAwDkB,OAxDlB,EAwD2B,OAxD3B,EAwDoC,OAxDpC,EAwD6C,OAxD7C,EAyDzB,CAzDyB,EAyDtB,CAzDsB,EAyDnB,CAzDmB,EAyDhB,OAzDgB,EAyDP,CAzDO,EAyDJ,OAzDI,EAyDK,OAzDL,EAyDc,OAzDd,EAyDuB,OAzDvB,EAyDgC,OAzDhC,EAyDyC,OAzDzC,EA0DzB,OA1DyB,EA0DhB,OA1DgB,EA0DP,OA1DO,EA0DE,OA1DF,EA0DW,OA1DX,EA0DoB,OA1DpB,EA0D6B,OA1D7B,EA0DsC,CA1DtC,EA0DyC,OA1DzC,EA2DzB,OA3DyB,EA2DhB,OA3DgB,EA2DP,OA3DO,EA2DE,OA3DF,EA2DW,OA3DX,EA2DoB,MA3DpB,EA2D4B,OA3D5B,EA2DqC,OA3DrC,EA4DzB,OA5DyB,EA4DhB,OA5DgB,EA4DP,OA5DO,EA4DE,OA5DF,EA4DW,OA5DX,EA4DoB,OA5DpB,EA4D6B,MA5D7B,EA4DqC,MA5DrC,EA4D6C,OA5D7C,EA6DzB,GA7DyB,EA6DpB,OA7DoB,EA6DX,OA7DW,EA6DF,OA7DE,EA6DO,OA7DP,EA6DgB,CA7DhB,EA6DmB,CA7DnB,EA6DsB,CA7DtB,EA6DyB,CA7DzB,EA6D4B,CA7D5B,EA6D+B,CA7D/B,EA6DkC,CA7DlC,EA6DqC,CA7DrC,EA6DwC,CA7DxC,EA6D2C,CA7D3C,EA6D8C,CA7D9C,EA6DiD,CA7DjD,EA8DzB,CA9DyB,EA8DtB,CA9DsB,EA8DnB,CA9DmB,EA8DhB,CA9DgB,EA8Db,CA9Da,EA8DV,CA9DU,EA8DP,CA9DO,EA8DJ,CA9DI,EA8DD,CA9DC,EA8DE,CA9DF,EA8DK,CA9DL,EA8DQ,CA9DR,EA8DW,CA9DX,EA8Dc,CA9Dd,EA8DiB,CA9DjB,EA8DoB,CA9DpB,EA8DuB,CA9DvB,EA8D0B,CA9D1B,EA8D6B,CA9D7B,EA8DgC,CA9DhC,EA8DmC,CA9DnC,EA8DsC,CA9DtC,EA8DyC,CA9DzC,EA8D4C,CA9D5C,EA8D+C,CA9D/C,EA8DkD,CA9DlD,EA+DzB,CA/DyB,EA+DtB,CA/DsB,EA+DnB,CA/DmB,EA+DhB,CA/DgB,EA+Db,CA/Da,EA+DV,CA/DU,EA+DP,OA/DO,EA+DE,OA/DF,EA+DW,CA/DX,EA+Dc,CA/Dd,EA+DiB,CA/DjB,EA+DoB,CA/DpB,EA+DuB,CA/DvB,EA+D0B,OA/D1B,EA+DmC,OA/DnC,EA+D4C,CA/D5C,EA+D+C,CA/D/C,EA+DkD,CA/DlD,EAgEzB,OAhEyB,EAgEhB,CAhEgB,EAgEb,CAhEa,EAgEV,CAhEU,EAgEP,CAhEO,EAgEJ,CAhEI,EAgED,CAhEC,EAgEE,CAhEF,EAgEK,CAhEL,EAgEQ,CAhER,EAgEW,CAhEX,EAgEc,CAhEd,EAgEiB,CAhEjB,EAgEoB,OAhEpB,EAgE6B,OAhE7B,EAgEsC,CAhEtC,EAgEyC,CAhEzC,EAgE4C,CAhE5C,EAgE+C,CAhE/C,EAgEkD,CAhElD,EAiEzB,CAjEyB,EAiEtB,CAjEsB,EAiEnB,CAjEmB,EAiEhB,CAjEgB,EAiEb,CAjEa,EAiEV,CAjEU,EAiEP,CAjEO,EAiEJ,CAjEI,EAiED,CAjEC,EAiEE,CAjEF,EAiEK,CAjEL,EAiEQ,CAjER,EAiEW,CAjEX,CAA3B;;AAmEA,MAAMC,qBAAqB;EAAEsC,YAAY,MAAd;EAAsBC,SAAS;AAA/B,CAA3B;;AAIA,MAAMpC,2BAA2B,CAC/B,MAD+B,EACvB,CADuB,EACpB,CADoB,EACjB,CADiB,EACd,OADc,EACL,OADK,EACI,OADJ,EACa,OADb,EACsB,OADtB,EAC+B,OAD/B,EAE/B,OAF+B,EAEtB,OAFsB,EAEb,OAFa,EAEJ,MAFI,EAEI,OAFJ,EAEa,OAFb,EAEsB,CAFtB,EAEyB,OAFzB,EAEkC,OAFlC,EAG/B,OAH+B,EAGtB,OAHsB,EAGb,OAHa,EAGJ,OAHI,EAGK,OAHL,EAGc,OAHd,EAGuB,OAHvB,EAGgC,OAHhC,EAI/B,OAJ+B,EAItB,OAJsB,EAIb,OAJa,EAIJ,OAJI,EAIK,OAJL,EAIc,OAJd,EAIuB,OAJvB,EAIgC,OAJhC,EAK/B,OAL+B,EAKtB,OALsB,EAKb,MALa,EAKL,OALK,EAKI,OALJ,EAKa,OALb,EAKsB,MALtB,EAK8B,OAL9B,EAKuC,OALvC,EAM/B,OAN+B,EAMtB,OANsB,EAMb,OANa,EAMJ,OANI,EAMK,OANL,EAMc,OANd,EAMuB,OANvB,EAMgC,OANhC,EAO/B,OAP+B,EAOtB,OAPsB,EAOb,OAPa,EAOJ,OAPI,EAOK,OAPL,EAOc,OAPd,EAOuB,OAPvB,EAOgC,OAPhC,EAQ/B,OAR+B,EAQtB,OARsB,EAQb,OARa,EAQJ,KARI,EAQG,OARH,EAQY,OARZ,EAQqB,OARrB,EAQ8B,OAR9B,EAQuC,OARvC,EAS/B,OAT+B,EAStB,OATsB,EASb,OATa,EASJ,OATI,EASK,OATL,EASc,OATd,EASuB,OATvB,EASgC,OAThC,EAU/B,OAV+B,EAUtB,OAVsB,EAUb,OAVa,EAUJ,MAVI,EAUI,OAVJ,EAUa,OAVb,EAUsB,OAVtB,EAU+B,OAV/B,EAW/B,OAX+B,EAWtB,OAXsB,EAWb,OAXa,EAWJ,OAXI,EAWK,OAXL,EAWc,OAXd,EAWuB,OAXvB,EAWgC,OAXhC,EAY/B,OAZ+B,EAYtB,OAZsB,EAYb,OAZa,EAYJ,OAZI,EAYK,OAZL,EAYc,OAZd,EAYuB,OAZvB,EAYgC,OAZhC,EAa/B,OAb+B,EAatB,OAbsB,EAab,MAba,EAaL,OAbK,EAaI,OAbJ,EAaa,OAbb,EAasB,OAbtB,EAa+B,OAb/B,EAc/B,OAd+B,EActB,OAdsB,EAcb,OAda,EAcJ,OAdI,EAcK,OAdL,EAcc,OAdd,EAcuB,MAdvB,EAc+B,OAd/B,EAcwC,CAdxC,EAe/B,OAf+B,EAetB,CAfsB,EAenB,OAfmB,EAeV,OAfU,EAeD,OAfC,EAeQ,OAfR,EAeiB,OAfjB,EAe0B,OAf1B,EAemC,OAfnC,EAgB/B,OAhB+B,EAgBtB,OAhBsB,EAgBb,OAhBa,EAgBJ,OAhBI,EAgBK,OAhBL,EAgBc,OAhBd,EAgBuB,OAhBvB,EAgBgC,OAhBhC,EAiB/B,OAjB+B,EAiBtB,OAjBsB,EAiBb,OAjBa,EAiBJ,OAjBI,EAiBK,OAjBL,EAiBc,OAjBd,EAiBuB,OAjBvB,EAiBgC,OAjBhC,EAkB/B,OAlB+B,EAkBtB,OAlBsB,EAkBb,OAlBa,EAkBJ,OAlBI,EAkBK,OAlBL,EAkBc,OAlBd,EAkBuB,OAlBvB,EAkBgC,OAlBhC,EAmB/B,OAnB+B,EAmBtB,OAnBsB,EAmBb,OAnBa,EAmBJ,OAnBI,EAmBK,OAnBL,EAmBc,OAnBd,EAmBuB,OAnBvB,EAmBgC,OAnBhC,EAoB/B,OApB+B,EAoBtB,OApBsB,EAoBb,OApBa,EAoBJ,OApBI,EAoBK,OApBL,EAoBc,OApBd,EAoBuB,OApBvB,EAoBgC,OApBhC,EAqB/B,OArB+B,EAqBtB,OArBsB,EAqBb,OArBa,EAqBJ,OArBI,EAqBK,OArBL,EAqBc,OArBd,EAqBuB,OArBvB,EAqBgC,OArBhC,EAsB/B,OAtB+B,EAsBtB,MAtBsB,EAsBd,OAtBc,EAsBL,OAtBK,EAsBI,OAtBJ,EAsBa,OAtBb,EAsBsB,OAtBtB,EAsB+B,OAtB/B,EAuB/B,OAvB+B,EAuBtB,OAvBsB,EAuBb,OAvBa,EAuBJ,OAvBI,EAuBK,OAvBL,EAuBc,OAvBd,EAuBuB,OAvBvB,EAuBgC,OAvBhC,EAwB/B,OAxB+B,EAwBtB,OAxBsB,EAwBb,OAxBa,EAwBJ,OAxBI,EAwBK,OAxBL,EAwBc,OAxBd,EAwBuB,OAxBvB,EAwBgC,OAxBhC,EAyB/B,OAzB+B,EAyBtB,OAzBsB,EAyBb,OAzBa,EAyBJ,OAzBI,EAyBK,OAzBL,EAyBc,OAzBd,EAyBuB,OAzBvB,EAyBgC,OAzBhC,EA0B/B,OA1B+B,EA0BtB,OA1BsB,EA0Bb,OA1Ba,EA0BJ,OA1BI,EA0BK,OA1BL,EA0Bc,OA1Bd,EA0BuB,OA1BvB,EA0BgC,OA1BhC,EA2B/B,OA3B+B,EA2BtB,OA3BsB,EA2Bb,OA3Ba,EA2BJ,OA3BI,EA2BK,OA3BL,EA2Bc,OA3Bd,EA2BuB,OA3BvB,EA2BgC,OA3BhC,EA4B/B,OA5B+B,EA4BtB,OA5BsB,EA4Bb,OA5Ba,EA4BJ,CA5BI,EA4BD,CA5BC,EA4BE,OA5BF,EA4BW,OA5BX,EA4BoB,OA5BpB,EA4B6B,MA5B7B,EA4BqC,OA5BrC,EA6B/B,OA7B+B,EA6BtB,OA7BsB,EA6Bb,OA7Ba,EA6BJ,OA7BI,EA6BK,OA7BL,EA6Bc,OA7Bd,EA6BuB,OA7BvB,EA6BgC,OA7BhC,EA8B/B,OA9B+B,EA8BtB,OA9BsB,EA8Bb,OA9Ba,EA8BJ,OA9BI,EA8BK,OA9BL,EA8Bc,CA9Bd,EA8BiB,CA9BjB,EA8BoB,OA9BpB,EA8B6B,OA9B7B,EA8BsC,OA9BtC,EA+B/B,CA/B+B,EA+B5B,CA/B4B,EA+BzB,OA/ByB,EA+BhB,OA/BgB,EA+BP,OA/BO,EA+BE,OA/BF,EA+BW,OA/BX,EA+BoB,OA/BpB,EA+B6B,OA/B7B,EA+BsC,OA/BtC,EAgC/B,CAhC+B,EAgC5B,CAhC4B,EAgCzB,OAhCyB,EAgChB,OAhCgB,EAgCP,OAhCO,EAgCE,OAhCF,EAgCW,OAhCX,EAgCoB,OAhCpB,EAgC6B,OAhC7B,EAgCsC,OAhCtC,EAiC/B,OAjC+B,EAiCtB,OAjCsB,EAiCb,OAjCa,EAiCJ,OAjCI,EAiCK,OAjCL,EAiCc,OAjCd,EAiCuB,OAjCvB,EAiCgC,CAjChC,EAiCmC,CAjCnC,EAiCsC,OAjCtC,EAkC/B,OAlC+B,EAkCtB,OAlCsB,EAkCb,OAlCa,EAkCJ,OAlCI,EAkCK,OAlCL,EAkCc,OAlCd,EAkCuB,OAlCvB,EAkCgC,OAlChC,EAmC/B,OAnC+B,EAmCtB,CAnCsB,EAmCnB,CAnCmB,EAmChB,OAnCgB,EAmCP,OAnCO,EAmCE,OAnCF,EAmCW,OAnCX,EAmCoB,OAnCpB,EAmC6B,OAnC7B,EAmCsC,OAnCtC,EAoC/B,OApC+B,EAoCtB,OApCsB,EAoCb,OApCa,EAoCJ,OApCI,EAoCK,OApCL,EAoCc,OApCd,EAoCuB,OApCvB,EAoCgC,OApChC,EAqC/B,OArC+B,EAqCtB,OArCsB,EAqCb,OArCa,EAqCJ,OArCI,EAqCK,OArCL,EAqCc,OArCd,EAqCuB,OArCvB,EAqCgC,OArChC,EAsC/B,OAtC+B,EAsCtB,OAtCsB,EAsCb,OAtCa,EAsCJ,OAtCI,EAsCK,MAtCL,EAsCa,OAtCb,EAsCsB,OAtCtB,EAsC+B,OAtC/B,EAuC/B,OAvC+B,EAuCtB,OAvCsB,EAuCb,OAvCa,EAuCJ,OAvCI,EAuCK,CAvCL,EAuCQ,CAvCR,EAuCW,OAvCX,EAuCoB,OAvCpB,EAuC6B,OAvC7B,EAuCsC,OAvCtC,EAwC/B,CAxC+B,EAwC5B,OAxC4B,EAwCnB,OAxCmB,EAwCV,OAxCU,EAwCD,OAxCC,EAwCQ,OAxCR,EAwCiB,OAxCjB,EAwC0B,OAxC1B,EAwCmC,OAxCnC,EAyC/B,OAzC+B,EAyCtB,OAzCsB,EAyCb,OAzCa,EAyCJ,MAzCI,EAyCI,OAzCJ,EAyCa,OAzCb,EAyCsB,OAzCtB,EAyC+B,OAzC/B,EA0C/B,OA1C+B,EA0CtB,OA1CsB,EA0Cb,MA1Ca,EA0CL,OA1CK,EA0CI,OA1CJ,EA0Ca,OA1Cb,EA0CsB,OA1CtB,EA0C+B,OA1C/B,EA2C/B,OA3C+B,EA2CtB,OA3CsB,EA2Cb,OA3Ca,EA2CJ,OA3CI,EA2CK,OA3CL,EA2Cc,OA3Cd,EA2CuB,OA3CvB,EA2CgC,OA3ChC,EA4C/B,OA5C+B,EA4CtB,OA5CsB,EA4Cb,MA5Ca,EA4CL,OA5CK,EA4CI,OA5CJ,EA4Ca,OA5Cb,EA4CsB,OA5CtB,EA4C+B,OA5C/B,EA6C/B,OA7C+B,EA6CtB,OA7CsB,EA6Cb,OA7Ca,EA6CJ,OA7CI,EA6CK,OA7CL,EA6Cc,MA7Cd,EA6CsB,OA7CtB,EA6C+B,OA7C/B,EA8C/B,OA9C+B,EA8CtB,OA9CsB,EA8Cb,OA9Ca,EA8CJ,MA9CI,EA8CI,OA9CJ,EA8Ca,OA9Cb,EA8CsB,MA9CtB,EA8C8B,OA9C9B,EA8CuC,OA9CvC,EA+C/B,OA/C+B,EA+CtB,OA/CsB,EA+Cb,OA/Ca,EA+CJ,OA/CI,EA+CK,OA/CL,EA+Cc,OA/Cd,EA+CuB,OA/CvB,EA+CgC,OA/ChC,EAgD/B,OAhD+B,EAgDtB,OAhDsB,EAgDb,OAhDa,EAgDJ,OAhDI,EAgDK,OAhDL,EAgDc,OAhDd,EAgDuB,OAhDvB,EAgDgC,OAhDhC,EAiD/B,OAjD+B,EAiDtB,OAjDsB,EAiDb,OAjDa,EAiDJ,OAjDI,EAiDK,OAjDL,EAiDc,OAjDd,EAiDuB,CAjDvB,EAiD0B,CAjD1B,EAiD6B,CAjD7B,EAiDgC,CAjDhC,EAiDmC,CAjDnC,EAiDsC,CAjDtC,EAiDyC,CAjDzC,EAiD4C,CAjD5C,EAkD/B,CAlD+B,EAkD5B,CAlD4B,EAkDzB,CAlDyB,EAkDtB,CAlDsB,EAkDnB,OAlDmB,EAkDV,CAlDU,EAkDP,CAlDO,EAkDJ,CAlDI,EAkDD,CAlDC,EAkDE,CAlDF,EAkDK,CAlDL,EAkDQ,CAlDR,EAkDW,CAlDX,EAkDc,CAlDd,EAkDiB,CAlDjB,EAkDoB,CAlDpB,EAkDuB,CAlDvB,EAkD0B,CAlD1B,EAkD6B,CAlD7B,EAkDgC,CAlDhC,EAkDmC,CAlDnC,EAkDsC,CAlDtC,EAkDyC,CAlDzC,EAkD4C,CAlD5C,EAmD/B,CAnD+B,EAmD5B,CAnD4B,EAmDzB,CAnDyB,EAmDtB,CAnDsB,EAmDnB,CAnDmB,EAmDhB,CAnDgB,EAmDb,CAnDa,EAmDV,CAnDU,EAmDP,CAnDO,EAmDJ,CAnDI,EAmDD,CAnDC,EAmDE,CAnDF,EAmDK,CAnDL,EAmDQ,CAnDR,EAmDW,CAnDX,EAmDc,CAnDd,EAmDiB,CAnDjB,EAmDoB,CAnDpB,EAmDuB,CAnDvB,EAmD0B,CAnD1B,EAmD6B,CAnD7B,EAmDgC,CAnDhC,EAmDmC,CAnDnC,EAmDsC,CAnDtC,EAmDyC,CAnDzC,EAmD4C,CAnD5C,EAoD/B,CApD+B,EAoD5B,CApD4B,EAoDzB,CApDyB,EAoDtB,CApDsB,EAoDnB,CApDmB,EAoDhB,CApDgB,EAoDb,CApDa,EAoDV,CApDU,EAoDP,CApDO,EAoDJ,CApDI,EAoDD,CApDC,EAoDE,CApDF,EAoDK,CApDL,EAoDQ,CApDR,EAoDW,CApDX,EAoDc,CApDd,EAoDiB,CApDjB,EAoDoB,CApDpB,EAoDuB,CApDvB,EAoD0B,CApD1B,EAoD6B,CApD7B,EAoDgC,OApDhC,EAoDyC,CApDzC,EAoD4C,CApD5C,EAqD/B,CArD+B,EAqD5B,CArD4B,EAqDzB,CArDyB,EAqDtB,CArDsB,EAqDnB,CArDmB,EAqDhB,CArDgB,EAqDb,CArDa,EAqDV,CArDU,EAqDP,CArDO,EAqDJ,CArDI,EAqDD,OArDC,EAqDQ,CArDR,EAqDW,CArDX,EAqDc,CArDd,EAqDiB,CArDjB,EAqDoB,CArDpB,EAqDuB,CArDvB,EAqD0B,OArD1B,EAqDmC,OArDnC,EAsD/B,OAtD+B,EAsDtB,OAtDsB,EAsDb,OAtDa,EAsDJ,OAtDI,EAsDK,OAtDL,EAsDc,OAtDd,EAsDuB,CAtDvB,EAsD0B,CAtD1B,EAsD6B,OAtD7B,EAsDsC,OAtDtC,EAuD/B,CAvD+B,EAuD5B,OAvD4B,EAuDnB,OAvDmB,EAuDV,OAvDU,EAuDD,OAvDC,EAuDQ,OAvDR,EAuDiB,OAvDjB,EAuD0B,OAvD1B,EAuDmC,OAvDnC,EAwD/B,OAxD+B,EAwDtB,OAxDsB,EAwDb,OAxDa,EAwDJ,OAxDI,EAwDK,OAxDL,EAwDc,CAxDd,EAwDiB,CAxDjB,EAwDoB,OAxDpB,EAwD6B,OAxD7B,EAwDsC,OAxDtC,EAyD/B,MAzD+B,EAyDvB,MAzDuB,EAyDf,OAzDe,EAyDN,OAzDM,EAyDG,OAzDH,EAyDY,OAzDZ,EAyDqB,OAzDrB,EAyD8B,CAzD9B,EAyDiC,CAzDjC,EAyDoC,CAzDpC,EAyDuC,OAzDvC,EA0D/B,CA1D+B,EA0D5B,OA1D4B,EA0DnB,OA1DmB,EA0DV,OA1DU,EA0DD,OA1DC,EA0DQ,OA1DR,EA0DiB,OA1DjB,EA0D0B,OA1D1B,EA0DmC,OA1DnC,EA2D/B,OA3D+B,EA2DtB,MA3DsB,EA2Dd,OA3Dc,EA2DL,OA3DK,EA2DI,OA3DJ,EA2Da,CA3Db,EA2DgB,OA3DhB,EA2DyB,OA3DzB,EA2DkC,OA3DlC,EA4D/B,OA5D+B,EA4DtB,OA5DsB,EA4Db,OA5Da,EA4DJ,MA5DI,EA4DI,OA5DJ,EA4Da,OA5Db,EA4DsB,OA5DtB,EA4D+B,OA5D/B,EA6D/B,OA7D+B,EA6DtB,OA7DsB,EA6Db,OA7Da,EA6DJ,OA7DI,EA6DK,MA7DL,EA6Da,MA7Db,EA6DqB,OA7DrB,EA6D8B,GA7D9B,EA6DmC,OA7DnC,EA8D/B,OA9D+B,EA8DtB,OA9DsB,EA8Db,OA9Da,EA8DJ,CA9DI,EA8DD,CA9DC,EA8DE,CA9DF,EA8DK,CA9DL,EA8DQ,CA9DR,EA8DW,CA9DX,EA8Dc,CA9Dd,EA8DiB,CA9DjB,EA8DoB,CA9DpB,EA8DuB,CA9DvB,EA8D0B,CA9D1B,EA8D6B,CA9D7B,EA8DgC,CA9DhC,EA8DmC,CA9DnC,EA8DsC,CA9DtC,EA8DyC,CA9DzC,EA8D4C,CA9D5C,EA+D/B,CA/D+B,EA+D5B,CA/D4B,EA+DzB,CA/DyB,EA+DtB,CA/DsB,EA+DnB,CA/DmB,EA+DhB,CA/DgB,EA+Db,CA/Da,EA+DV,CA/DU,EA+DP,CA/DO,EA+DJ,CA/DI,EA+DD,CA/DC,EA+DE,CA/DF,EA+DK,CA/DL,EA+DQ,CA/DR,EA+DW,CA/DX,EA+Dc,CA/Dd,EA+DiB,CA/DjB,EA+DoB,CA/DpB,EA+DuB,CA/DvB,EA+D0B,CA/D1B,EA+D6B,CA/D7B,EA+DgC,CA/DhC,EA+DmC,CA/DnC,EA+DsC,CA/DtC,EA+DyC,CA/DzC,EA+D4C,CA/D5C,EAgE/B,CAhE+B,EAgE5B,OAhE4B,EAgEnB,OAhEmB,EAgEV,CAhEU,EAgEP,CAhEO,EAgEJ,CAhEI,EAgED,CAhEC,EAgEE,CAhEF,EAgEK,OAhEL,EAgEc,OAhEd,EAgEuB,CAhEvB,EAgE0B,CAhE1B,EAgE6B,CAhE7B,EAgEgC,OAhEhC,EAgEyC,CAhEzC,EAgE4C,CAhE5C,EAiE/B,CAjE+B,EAiE5B,CAjE4B,EAiEzB,CAjEyB,EAiEtB,CAjEsB,EAiEnB,CAjEmB,EAiEhB,CAjEgB,EAiEb,CAjEa,EAiEV,CAjEU,EAiEP,CAjEO,EAiEJ,CAjEI,EAiED,OAjEC,EAiEQ,OAjER,EAiEiB,CAjEjB,EAiEoB,CAjEpB,EAiEuB,CAjEvB,EAiE0B,CAjE1B,EAiE6B,CAjE7B,EAiEgC,CAjEhC,EAiEmC,CAjEnC,EAiEsC,CAjEtC,EAiEyC,CAjEzC,EAiE4C,CAjE5C,EAkE/B,CAlE+B,EAkE5B,CAlE4B,EAkEzB,CAlEyB,EAkEtB,CAlEsB,EAkEnB,CAlEmB,EAkEhB,CAlEgB,EAkEb,CAlEa,EAkEV,CAlEU,CAAjC;;AAoEA,MAAMC,2BAA2B;EAAEkC,YAAY,MAAd;EAAsBC,SAAS;AAA/B,CAAjC;;AAIA,MAAMtC,uBAAuB,CAC3B,MAD2B,EACnB,CADmB,EAChB,CADgB,EACb,CADa,EACV,OADU,EACD,MADC,EACO,OADP,EACgB,OADhB,EACyB,OADzB,EACkC,OADlC,EAC2C,OAD3C,EAE3B,OAF2B,EAElB,OAFkB,EAET,MAFS,EAED,OAFC,EAEQ,OAFR,EAEiB,CAFjB,EAEoB,OAFpB,EAE6B,OAF7B,EAEsC,OAFtC,EAG3B,OAH2B,EAGlB,OAHkB,EAGT,OAHS,EAGA,OAHA,EAGS,OAHT,EAGkB,OAHlB,EAG2B,OAH3B,EAGoC,OAHpC,EAI3B,OAJ2B,EAIlB,OAJkB,EAIT,OAJS,EAIA,OAJA,EAIS,OAJT,EAIkB,OAJlB,EAI2B,OAJ3B,EAIoC,OAJpC,EAK3B,MAL2B,EAKnB,OALmB,EAKV,OALU,EAKD,OALC,EAKQ,OALR,EAKiB,MALjB,EAKyB,OALzB,EAKkC,OALlC,EAK2C,OAL3C,EAM3B,MAN2B,EAMnB,OANmB,EAMV,OANU,EAMD,OANC,EAMQ,OANR,EAMiB,OANjB,EAM0B,OAN1B,EAMmC,OANnC,EAO3B,OAP2B,EAOlB,OAPkB,EAOT,OAPS,EAOA,OAPA,EAOS,OAPT,EAOkB,OAPlB,EAO2B,OAP3B,EAOoC,MAPpC,EAQ3B,OAR2B,EAQlB,OARkB,EAQT,OARS,EAQA,OARA,EAQS,OART,EAQkB,OARlB,EAQ2B,MAR3B,EAQmC,MARnC,EAQ2C,MAR3C,EAS3B,OAT2B,EASlB,MATkB,EASV,OATU,EASD,OATC,EASQ,MATR,EASgB,MAThB,EASwB,OATxB,EASiC,OATjC,EAS0C,OAT1C,EAU3B,OAV2B,EAUlB,OAVkB,EAUT,MAVS,EAUD,OAVC,EAUQ,MAVR,EAUgB,MAVhB,EAUwB,OAVxB,EAUiC,OAVjC,EAU0C,OAV1C,EAW3B,MAX2B,EAWnB,MAXmB,EAWX,OAXW,EAWF,OAXE,EAWO,OAXP,EAWgB,OAXhB,EAWyB,OAXzB,EAWkC,OAXlC,EAW2C,OAX3C,EAY3B,OAZ2B,EAYlB,OAZkB,EAYT,OAZS,EAYA,OAZA,EAYS,OAZT,EAYkB,OAZlB,EAY2B,OAZ3B,EAYoC,OAZpC,EAa3B,OAb2B,EAalB,OAbkB,EAaT,OAbS,EAaA,OAbA,EAaS,OAbT,EAakB,OAblB,EAa2B,OAb3B,EAaoC,OAbpC,EAc3B,OAd2B,EAclB,MAdkB,EAcV,MAdU,EAcF,OAdE,EAcO,CAdP,EAcU,OAdV,EAcmB,CAdnB,EAcsB,OAdtB,EAc+B,KAd/B,EAcsC,OAdtC,EAe3B,OAf2B,EAelB,OAfkB,EAeT,OAfS,EAeA,OAfA,EAeS,OAfT,EAekB,MAflB,EAe0B,MAf1B,EAekC,MAflC,EAe0C,MAf1C,EAgB3B,MAhB2B,EAgBnB,MAhBmB,EAgBX,OAhBW,EAgBF,OAhBE,EAgBO,OAhBP,EAgBgB,OAhBhB,EAgByB,OAhBzB,EAgBkC,OAhBlC,EAgB2C,OAhB3C,EAiB3B,OAjB2B,EAiBlB,OAjBkB,EAiBT,OAjBS,EAiBA,OAjBA,EAiBS,OAjBT,EAiBkB,OAjBlB,EAiB2B,OAjB3B,EAiBoC,OAjBpC,EAkB3B,OAlB2B,EAkBlB,OAlBkB,EAkBT,OAlBS,EAkBA,OAlBA,EAkBS,OAlBT,EAkBkB,OAlBlB,EAkB2B,OAlB3B,EAkBoC,OAlBpC,EAmB3B,MAnB2B,EAmBnB,OAnBmB,EAmBV,OAnBU,EAmBD,MAnBC,EAmBO,MAnBP,EAmBe,MAnBf,EAmBuB,MAnBvB,EAmB+B,MAnB/B,EAmBuC,MAnBvC,EAoB3B,OApB2B,EAoBlB,OApBkB,EAoBT,OApBS,EAoBA,OApBA,EAoBS,OApBT,EAoBkB,OApBlB,EAoB2B,OApB3B,EAoBoC,OApBpC,EAqB3B,OArB2B,EAqBlB,OArBkB,EAqBT,OArBS,EAqBA,MArBA,EAqBQ,OArBR,EAqBiB,OArBjB,EAqB0B,OArB1B,EAqBmC,OArBnC,EAsB3B,OAtB2B,EAsBlB,OAtBkB,EAsBT,OAtBS,EAsBA,MAtBA,EAsBQ,MAtBR,EAsBgB,MAtBhB,EAsBwB,MAtBxB,EAsBgC,OAtBhC,EAsByC,MAtBzC,EAuB3B,OAvB2B,EAuBlB,MAvBkB,EAuBV,MAvBU,EAuBF,MAvBE,EAuBM,MAvBN,EAuBc,MAvBd,EAuBsB,MAvBtB,EAuB8B,OAvB9B,EAuBuC,OAvBvC,EAwB3B,OAxB2B,EAwBlB,OAxBkB,EAwBT,OAxBS,EAwBA,OAxBA,EAwBS,OAxBT,EAwBkB,OAxBlB,EAwB2B,OAxB3B,EAwBoC,MAxBpC,EAyB3B,OAzB2B,EAyBlB,OAzBkB,EAyBT,OAzBS,EAyBA,OAzBA,EAyBS,OAzBT,EAyBkB,OAzBlB,EAyB2B,OAzB3B,EAyBoC,OAzBpC,EA0B3B,OA1B2B,EA0BlB,OA1BkB,EA0BT,OA1BS,EA0BA,OA1BA,EA0BS,OA1BT,EA0BkB,MA1BlB,EA0B0B,OA1B1B,EA0BmC,MA1BnC,EA0B2C,OA1B3C,EA2B3B,MA3B2B,EA2BnB,CA3BmB,EA2BhB,CA3BgB,EA2Bb,OA3Ba,EA2BJ,MA3BI,EA2BI,OA3BJ,EA2Ba,OA3Bb,EA2BsB,OA3BtB,EA2B+B,OA3B/B,EA2BwC,OA3BxC,EA4B3B,OA5B2B,EA4BlB,OA5BkB,EA4BT,OA5BS,EA4BA,OA5BA,EA4BS,OA5BT,EA4BkB,OA5BlB,EA4B2B,OA5B3B,EA4BoC,OA5BpC,EA6B3B,OA7B2B,EA6BlB,MA7BkB,EA6BV,OA7BU,EA6BD,CA7BC,EA6BE,CA7BF,EA6BK,OA7BL,EA6Bc,OA7Bd,EA6BuB,OA7BvB,EA6BgC,CA7BhC,EA6BmC,CA7BnC,EA6BsC,OA7BtC,EA8B3B,MA9B2B,EA8BnB,OA9BmB,EA8BV,OA9BU,EA8BD,OA9BC,EA8BQ,OA9BR,EA8BiB,OA9BjB,EA8B0B,MA9B1B,EA8BkC,CA9BlC,EA8BqC,CA9BrC,EA8BwC,OA9BxC,EA+B3B,MA/B2B,EA+BnB,OA/BmB,EA+BV,OA/BU,EA+BD,MA/BC,EA+BO,OA/BP,EA+BgB,OA/BhB,EA+ByB,OA/BzB,EA+BkC,OA/BlC,EA+B2C,OA/B3C,EAgC3B,OAhC2B,EAgClB,MAhCkB,EAgCV,OAhCU,EAgCD,OAhCC,EAgCQ,OAhCR,EAgCiB,CAhCjB,EAgCoB,CAhCpB,EAgCuB,OAhCvB,EAgCgC,OAhChC,EAgCyC,OAhCzC,EAiC3B,OAjC2B,EAiClB,OAjCkB,EAiCT,OAjCS,EAiCA,OAjCA,EAiCS,OAjCT,EAiCkB,OAjClB,EAiC2B,OAjC3B,EAiCoC,CAjCpC,EAiCuC,CAjCvC,EAiC0C,OAjC1C,EAkC3B,OAlC2B,EAkClB,OAlCkB,EAkCT,OAlCS,EAkCA,OAlCA,EAkCS,MAlCT,EAkCiB,OAlCjB,EAkC0B,MAlC1B,EAkCkC,OAlClC,EAkC2C,MAlC3C,EAmC3B,OAnC2B,EAmClB,MAnCkB,EAmCV,OAnCU,EAmCD,MAnCC,EAmCO,OAnCP,EAmCgB,MAnChB,EAmCwB,OAnCxB,EAmCiC,OAnCjC,EAmC0C,MAnC1C,EAoC3B,OApC2B,EAoClB,MApCkB,EAoCV,OApCU,EAoCD,OApCC,EAoCQ,OApCR,EAoCiB,OApCjB,EAoC0B,OApC1B,EAoCmC,OApCnC,EAqC3B,OArC2B,EAqClB,OArCkB,EAqCT,MArCS,EAqCD,MArCC,EAqCO,OArCP,EAqCgB,OArChB,EAqCyB,OArCzB,EAqCkC,OArClC,EAqC2C,CArC3C,EAqC8C,CArC9C,EAsC3B,OAtC2B,EAsClB,OAtCkB,EAsCT,OAtCS,EAsCA,OAtCA,EAsCS,CAtCT,EAsCY,MAtCZ,EAsCoB,OAtCpB,EAsC6B,OAtC7B,EAsCsC,OAtCtC,EAuC3B,OAvC2B,EAuClB,OAvCkB,EAuCT,OAvCS,EAuCA,OAvCA,EAuCS,MAvCT,EAuCiB,OAvCjB,EAuC0B,MAvC1B,EAuCkC,MAvClC,EAuC0C,OAvC1C,EAwC3B,OAxC2B,EAwClB,OAxCkB,EAwCT,OAxCS,EAwCA,OAxCA,EAwCS,MAxCT,EAwCiB,OAxCjB,EAwC0B,MAxC1B,EAwCkC,OAxClC,EAwC2C,OAxC3C,EAyC3B,OAzC2B,EAyClB,OAzCkB,EAyCT,OAzCS,EAyCA,OAzCA,EAyCS,OAzCT,EAyCkB,OAzClB,EAyC2B,OAzC3B,EAyCoC,OAzCpC,EA0C3B,OA1C2B,EA0ClB,OA1CkB,EA0CT,OA1CS,EA0CA,OA1CA,EA0CS,OA1CT,EA0CkB,OA1ClB,EA0C2B,MA1C3B,EA0CmC,OA1CnC,EA2C3B,OA3C2B,EA2ClB,KA3CkB,EA2CX,OA3CW,EA2CF,OA3CE,EA2CO,MA3CP,EA2Ce,OA3Cf,EA2CwB,OA3CxB,EA2CiC,OA3CjC,EA2C0C,OA3C1C,EA4C3B,MA5C2B,EA4CnB,OA5CmB,EA4CV,OA5CU,EA4CD,MA5CC,EA4CO,KA5CP,EA4Cc,OA5Cd,EA4CuB,OA5CvB,EA4CgC,OA5ChC,EA4CyC,MA5CzC,EA6C3B,OA7C2B,EA6ClB,OA7CkB,EA6CT,OA7CS,EA6CA,OA7CA,EA6CS,OA7CT,EA6CkB,OA7ClB,EA6C2B,OA7C3B,EA6CoC,OA7CpC,EA8C3B,OA9C2B,EA8ClB,OA9CkB,EA8CT,OA9CS,EA8CA,OA9CA,EA8CS,MA9CT,EA8CiB,OA9CjB,EA8C0B,OA9C1B,EA8CmC,OA9CnC,EA+C3B,OA/C2B,EA+ClB,OA/CkB,EA+CT,MA/CS,EA+CD,OA/CC,EA+CQ,MA/CR,EA+CgB,OA/ChB,EA+CyB,OA/CzB,EA+CkC,CA/ClC,EA+CqC,CA/CrC,EA+CwC,CA/CxC,EA+C2C,CA/C3C,EA+C8C,CA/C9C,EA+CiD,CA/CjD,EAgD3B,CAhD2B,EAgDxB,CAhDwB,EAgDrB,CAhDqB,EAgDlB,CAhDkB,EAgDf,CAhDe,EAgDZ,CAhDY,EAgDT,OAhDS,EAgDA,CAhDA,EAgDG,CAhDH,EAgDM,CAhDN,EAgDS,CAhDT,EAgDY,CAhDZ,EAgDe,CAhDf,EAgDkB,CAhDlB,EAgDqB,CAhDrB,EAgDwB,CAhDxB,EAgD2B,CAhD3B,EAgD8B,CAhD9B,EAgDiC,CAhDjC,EAgDoC,CAhDpC,EAgDuC,CAhDvC,EAgD0C,CAhD1C,EAgD6C,CAhD7C,EAgDgD,CAhDhD,EAiD3B,CAjD2B,EAiDxB,CAjDwB,EAiDrB,CAjDqB,EAiDlB,CAjDkB,EAiDf,CAjDe,EAiDZ,CAjDY,EAiDT,CAjDS,EAiDN,CAjDM,EAiDH,CAjDG,EAiDA,CAjDA,EAiDG,CAjDH,EAiDM,CAjDN,EAiDS,CAjDT,EAiDY,CAjDZ,EAiDe,CAjDf,EAiDkB,CAjDlB,EAiDqB,CAjDrB,EAiDwB,CAjDxB,EAiD2B,CAjD3B,EAiD8B,CAjD9B,EAiDiC,CAjDjC,EAiDoC,CAjDpC,EAiDuC,CAjDvC,EAiD0C,CAjD1C,EAiD6C,CAjD7C,EAiDgD,CAjDhD,EAkD3B,CAlD2B,EAkDxB,CAlDwB,EAkDrB,CAlDqB,EAkDlB,CAlDkB,EAkDf,CAlDe,EAkDZ,CAlDY,EAkDT,CAlDS,EAkDN,CAlDM,EAkDH,CAlDG,EAkDA,CAlDA,EAkDG,CAlDH,EAkDM,CAlDN,EAkDS,CAlDT,EAkDY,CAlDZ,EAkDe,CAlDf,EAkDkB,CAlDlB,EAkDqB,CAlDrB,EAkDwB,CAlDxB,EAkD2B,CAlD3B,EAkD8B,CAlD9B,EAkDiC,CAlDjC,EAkDoC,CAlDpC,EAkDuC,CAlDvC,EAkD0C,OAlD1C,EAmD3B,CAnD2B,EAmDxB,CAnDwB,EAmDrB,CAnDqB,EAmDlB,CAnDkB,EAmDf,CAnDe,EAmDZ,CAnDY,EAmDT,CAnDS,EAmDN,CAnDM,EAmDH,CAnDG,EAmDA,CAnDA,EAmDG,CAnDH,EAmDM,CAnDN,EAmDS,OAnDT,EAmDkB,CAnDlB,EAmDqB,CAnDrB,EAmDwB,CAnDxB,EAmD2B,CAnD3B,EAmD8B,CAnD9B,EAmDiC,CAnDjC,EAmDoC,OAnDpC,EAoD3B,OApD2B,EAoDlB,OApDkB,EAoDT,OApDS,EAoDA,OApDA,EAoDS,OApDT,EAoDkB,MApDlB,EAoD0B,OApD1B,EAoDmC,CApDnC,EAoDsC,CApDtC,EAoDyC,OApDzC,EAqD3B,OArD2B,EAqDlB,CArDkB,EAqDf,OArDe,EAqDN,OArDM,EAqDG,OArDH,EAqDY,OArDZ,EAqDqB,OArDrB,EAqD8B,MArD9B,EAqDsC,MArDtC,EAsD3B,MAtD2B,EAsDnB,OAtDmB,EAsDV,OAtDU,EAsDD,OAtDC,EAsDQ,OAtDR,EAsDiB,OAtDjB,EAsD0B,CAtD1B,EAsD6B,CAtD7B,EAsDgC,MAtDhC,EAsDwC,MAtDxC,EAuD3B,OAvD2B,EAuDlB,MAvDkB,EAuDV,OAvDU,EAuDD,OAvDC,EAuDQ,OAvDR,EAuDiB,OAvDjB,EAuD0B,OAvD1B,EAuDmC,OAvDnC,EAuD4C,CAvD5C,EAuD+C,CAvD/C,EAwD3B,CAxD2B,EAwDxB,OAxDwB,EAwDf,CAxDe,EAwDZ,OAxDY,EAwDH,OAxDG,EAwDM,OAxDN,EAwDe,OAxDf,EAwDwB,KAxDxB,EAwD+B,OAxD/B,EAwDwC,OAxDxC,EAyD3B,OAzD2B,EAyDlB,OAzDkB,EAyDT,OAzDS,EAyDA,OAzDA,EAyDS,OAzDT,EAyDkB,OAzDlB,EAyD2B,CAzD3B,EAyD8B,OAzD9B,EAyDuC,MAzDvC,EA0D3B,OA1D2B,EA0DlB,OA1DkB,EA0DT,OA1DS,EA0DA,OA1DA,EA0DS,OA1DT,EA0DkB,OA1DlB,EA0D2B,OA1D3B,EA0DoC,OA1DpC,EA2D3B,OA3D2B,EA2DlB,OA3DkB,EA2DT,OA3DS,EA2DA,OA3DA,EA2DS,OA3DT,EA2DkB,MA3DlB,EA2D0B,MA3D1B,EA2DkC,OA3DlC,EA2D2C,GA3D3C,EA4D3B,OA5D2B,EA4DlB,OA5DkB,EA4DT,OA5DS,EA4DA,OA5DA,EA4DS,CA5DT,EA4DY,CA5DZ,EA4De,CA5Df,EA4DkB,CA5DlB,EA4DqB,CA5DrB,EA4DwB,CA5DxB,EA4D2B,CA5D3B,EA4D8B,CA5D9B,EA4DiC,CA5DjC,EA4DoC,CA5DpC,EA4DuC,CA5DvC,EA4D0C,CA5D1C,EA4D6C,CA5D7C,EA4DgD,CA5DhD,EA6D3B,CA7D2B,EA6DxB,CA7DwB,EA6DrB,CA7DqB,EA6DlB,CA7DkB,EA6Df,CA7De,EA6DZ,CA7DY,EA6DT,CA7DS,EA6DN,CA7DM,EA6DH,CA7DG,EA6DA,CA7DA,EA6DG,CA7DH,EA6DM,CA7DN,EA6DS,CA7DT,EA6DY,CA7DZ,EA6De,CA7Df,EA6DkB,CA7DlB,EA6DqB,CA7DrB,EA6DwB,CA7DxB,EA6D2B,CA7D3B,EA6D8B,CA7D9B,EA6DiC,CA7DjC,EA6DoC,CA7DpC,EA6DuC,CA7DvC,EA6D0C,CA7D1C,EA6D6C,CA7D7C,EA6DgD,CA7DhD,EA8D3B,CA9D2B,EA8DxB,CA9DwB,EA8DrB,CA9DqB,EA8DlB,CA9DkB,EA8Df,OA9De,EA8DN,OA9DM,EA8DG,CA9DH,EA8DM,CA9DN,EA8DS,CA9DT,EA8DY,CA9DZ,EA8De,CA9Df,EA8DkB,MA9DlB,EA8D0B,OA9D1B,EA8DmC,CA9DnC,EA8DsC,CA9DtC,EA8DyC,CA9DzC,EA+D3B,OA/D2B,EA+DlB,CA/DkB,EA+Df,CA/De,EA+DZ,CA/DY,EA+DT,CA/DS,EA+DN,CA/DM,EA+DH,CA/DG,EA+DA,CA/DA,EA+DG,CA/DH,EA+DM,CA/DN,EA+DS,CA/DT,EA+DY,CA/DZ,EA+De,CA/Df,EA+DkB,OA/DlB,EA+D2B,OA/D3B,EA+DoC,CA/DpC,EA+DuC,CA/DvC,EA+D0C,CA/D1C,EA+D6C,CA/D7C,EA+DgD,CA/DhD,EAgE3B,CAhE2B,EAgExB,CAhEwB,EAgErB,CAhEqB,EAgElB,CAhEkB,EAgEf,CAhEe,EAgEZ,CAhEY,EAgET,CAhES,EAgEN,CAhEM,EAgEH,CAhEG,EAgEA,CAhEA,EAgEG,CAhEH,EAgEM,CAhEN,EAgES,CAhET,CAA7B;;AAkEA,MAAMC,uBAAuB;EAAEoC,YAAY,MAAd;EAAsBC,SAAS;AAA/B,CAA7B;;AAIA,MAAM1C,wBAAwB,CAC5B,MAD4B,EACpB,CADoB,EACjB,CADiB,EACd,CADc,EACX,OADW,EACF,MADE,EACM,OADN,EACe,OADf,EACwB,OADxB,EACiC,OADjC,EAC0C,OAD1C,EAE5B,OAF4B,EAEnB,OAFmB,EAEV,MAFU,EAEF,OAFE,EAEO,OAFP,EAEgB,CAFhB,EAEmB,OAFnB,EAE4B,OAF5B,EAEqC,OAFrC,EAG5B,OAH4B,EAGnB,OAHmB,EAGV,OAHU,EAGD,OAHC,EAGQ,OAHR,EAGiB,OAHjB,EAG0B,OAH1B,EAGmC,OAHnC,EAI5B,OAJ4B,EAInB,OAJmB,EAIV,OAJU,EAID,OAJC,EAIQ,OAJR,EAIiB,OAJjB,EAI0B,OAJ1B,EAImC,OAJnC,EAK5B,MAL4B,EAKpB,OALoB,EAKX,OALW,EAKF,OALE,EAKO,OALP,EAKgB,MALhB,EAKwB,OALxB,EAKiC,OALjC,EAK0C,OAL1C,EAM5B,MAN4B,EAMpB,OANoB,EAMX,OANW,EAMF,OANE,EAMO,OANP,EAMgB,OANhB,EAMyB,OANzB,EAMkC,OANlC,EAO5B,OAP4B,EAOnB,OAPmB,EAOV,OAPU,EAOD,OAPC,EAOQ,OAPR,EAOiB,OAPjB,EAO0B,OAP1B,EAOmC,MAPnC,EAQ5B,OAR4B,EAQnB,OARmB,EAQV,OARU,EAQD,OARC,EAQQ,OARR,EAQiB,OARjB,EAQ0B,MAR1B,EAQkC,OARlC,EAS5B,OAT4B,EASnB,MATmB,EASX,OATW,EASF,OATE,EASO,OATP,EASgB,OAThB,EASyB,OATzB,EASkC,OATlC,EAU5B,OAV4B,EAUnB,OAVmB,EAUV,OAVU,EAUD,OAVC,EAUQ,OAVR,EAUiB,MAVjB,EAUyB,OAVzB,EAUkC,OAVlC,EAW5B,OAX4B,EAWnB,OAXmB,EAWV,OAXU,EAWD,OAXC,EAWQ,OAXR,EAWiB,OAXjB,EAW0B,OAX1B,EAWmC,OAXnC,EAY5B,OAZ4B,EAYnB,OAZmB,EAYV,OAZU,EAYD,OAZC,EAYQ,OAZR,EAYiB,OAZjB,EAY0B,OAZ1B,EAYmC,OAZnC,EAa5B,OAb4B,EAanB,OAbmB,EAaV,OAbU,EAaD,OAbC,EAaQ,OAbR,EAaiB,OAbjB,EAa0B,OAb1B,EAamC,OAbnC,EAc5B,OAd4B,EAcnB,OAdmB,EAcV,OAdU,EAcD,OAdC,EAcQ,OAdR,EAciB,MAdjB,EAcyB,MAdzB,EAciC,OAdjC,EAc0C,CAd1C,EAe5B,OAf4B,EAenB,CAfmB,EAehB,OAfgB,EAeP,KAfO,EAeA,OAfA,EAeS,OAfT,EAekB,OAflB,EAe2B,OAf3B,EAeoC,OAfpC,EAgB5B,OAhB4B,EAgBnB,MAhBmB,EAgBX,MAhBW,EAgBH,MAhBG,EAgBK,MAhBL,EAgBa,MAhBb,EAgBqB,MAhBrB,EAgB6B,OAhB7B,EAgBsC,OAhBtC,EAiB5B,OAjB4B,EAiBnB,OAjBmB,EAiBV,OAjBU,EAiBD,OAjBC,EAiBQ,OAjBR,EAiBiB,OAjBjB,EAiB0B,OAjB1B,EAiBmC,OAjBnC,EAkB5B,OAlB4B,EAkBnB,OAlBmB,EAkBV,OAlBU,EAkBD,OAlBC,EAkBQ,OAlBR,EAkBiB,OAlBjB,EAkB0B,OAlB1B,EAkBmC,OAlBnC,EAmB5B,OAnB4B,EAmBnB,OAnBmB,EAmBV,OAnBU,EAmBD,OAnBC,EAmBQ,OAnBR,EAmBiB,MAnBjB,EAmByB,OAnBzB,EAmBkC,OAnBlC,EAoB5B,OApB4B,EAoBnB,OApBmB,EAoBV,OApBU,EAoBD,OApBC,EAoBQ,OApBR,EAoBiB,OApBjB,EAoB0B,MApB1B,EAoBkC,MApBlC,EAoB0C,OApB1C,EAqB5B,OArB4B,EAqBnB,OArBmB,EAqBV,OArBU,EAqBD,OArBC,EAqBQ,OArBR,EAqBiB,OArBjB,EAqB0B,OArB1B,EAqBmC,OArBnC,EAsB5B,OAtB4B,EAsBnB,MAtBmB,EAsBX,MAtBW,EAsBH,MAtBG,EAsBK,MAtBL,EAsBa,MAtBb,EAsBqB,OAtBrB,EAsB8B,OAtB9B,EAsBuC,OAtBvC,EAuB5B,OAvB4B,EAuBnB,OAvBmB,EAuBV,OAvBU,EAuBD,OAvBC,EAuBQ,OAvBR,EAuBiB,OAvBjB,EAuB0B,MAvB1B,EAuBkC,OAvBlC,EAuB2C,MAvB3C,EAwB5B,OAxB4B,EAwBnB,MAxBmB,EAwBX,OAxBW,EAwBF,OAxBE,EAwBO,MAxBP,EAwBe,OAxBf,EAwBwB,MAxBxB,EAwBgC,OAxBhC,EAwByC,MAxBzC,EAyB5B,OAzB4B,EAyBnB,MAzBmB,EAyBX,OAzBW,EAyBF,OAzBE,EAyBO,OAzBP,EAyBgB,MAzBhB,EAyBwB,OAzBxB,EAyBiC,OAzBjC,EAyB0C,OAzB1C,EA0B5B,OA1B4B,EA0BnB,OA1BmB,EA0BV,OA1BU,EA0BD,OA1BC,EA0BQ,OA1BR,EA0BiB,OA1BjB,EA0B0B,OA1B1B,EA0BmC,OA1BnC,EA2B5B,OA3B4B,EA2BnB,OA3BmB,EA2BV,OA3BU,EA2BD,OA3BC,EA2BQ,OA3BR,EA2BiB,CA3BjB,EA2BoB,CA3BpB,EA2BuB,OA3BvB,EA2BgC,OA3BhC,EA2ByC,OA3BzC,EA4B5B,OA5B4B,EA4BnB,OA5BmB,EA4BV,OA5BU,EA4BD,OA5BC,EA4BQ,OA5BR,EA4BiB,OA5BjB,EA4B0B,OA5B1B,EA4BmC,OA5BnC,EA6B5B,OA7B4B,EA6BnB,OA7BmB,EA6BV,OA7BU,EA6BD,OA7BC,EA6BQ,OA7BR,EA6BiB,MA7BjB,EA6ByB,OA7BzB,EA6BkC,CA7BlC,EA6BqC,CA7BrC,EA6BwC,OA7BxC,EA8B5B,OA9B4B,EA8BnB,OA9BmB,EA8BV,CA9BU,EA8BP,CA9BO,EA8BJ,OA9BI,EA8BK,OA9BL,EA8Bc,OA9Bd,EA8BuB,OA9BvB,EA8BgC,OA9BhC,EA8ByC,OA9BzC,EA+B5B,OA/B4B,EA+BnB,OA/BmB,EA+BV,CA/BU,EA+BP,CA/BO,EA+BJ,OA/BI,EA+BK,OA/BL,EA+Bc,OA/Bd,EA+BuB,OA/BvB,EA+BgC,OA/BhC,EA+ByC,OA/BzC,EAgC5B,MAhC4B,EAgCpB,OAhCoB,EAgCX,MAhCW,EAgCH,OAhCG,EAgCM,MAhCN,EAgCc,MAhCd,EAgCsB,OAhCtB,EAgC+B,OAhC/B,EAgCwC,OAhCxC,EAiC5B,CAjC4B,EAiCzB,CAjCyB,EAiCtB,OAjCsB,EAiCb,OAjCa,EAiCJ,OAjCI,EAiCK,OAjCL,EAiCc,OAjCd,EAiCuB,OAjCvB,EAiCgC,OAjChC,EAiCyC,OAjCzC,EAkC5B,OAlC4B,EAkCnB,OAlCmB,EAkCV,CAlCU,EAkCP,CAlCO,EAkCJ,OAlCI,EAkCK,OAlCL,EAkCc,OAlCd,EAkCuB,OAlCvB,EAkCgC,OAlChC,EAkCyC,OAlCzC,EAmC5B,OAnC4B,EAmCnB,OAnCmB,EAmCV,OAnCU,EAmCD,OAnCC,EAmCQ,OAnCR,EAmCiB,OAnCjB,EAmC0B,OAnC1B,EAmCmC,OAnCnC,EAoC5B,OApC4B,EAoCnB,OApCmB,EAoCV,OApCU,EAoCD,OApCC,EAoCQ,MApCR,EAoCgB,OApChB,EAoCyB,MApCzB,EAoCiC,OApCjC,EAoC0C,OApC1C,EAqC5B,OArC4B,EAqCnB,OArCmB,EAqCV,OArCU,EAqCD,OArCC,EAqCQ,OArCR,EAqCiB,OArCjB,EAqC0B,MArC1B,EAqCkC,OArClC,EAsC5B,OAtC4B,EAsCnB,MAtCmB,EAsCX,OAtCW,EAsCF,OAtCE,EAsCO,CAtCP,EAsCU,CAtCV,EAsCa,OAtCb,EAsCsB,OAtCtB,EAsC+B,OAtC/B,EAsCwC,OAtCxC,EAuC5B,CAvC4B,EAuCzB,MAvCyB,EAuCjB,OAvCiB,EAuCR,OAvCQ,EAuCC,OAvCD,EAuCU,OAvCV,EAuCmB,OAvCnB,EAuC4B,OAvC5B,EAuCqC,OAvCrC,EAwC5B,OAxC4B,EAwCnB,OAxCmB,EAwCV,OAxCU,EAwCD,OAxCC,EAwCQ,OAxCR,EAwCiB,OAxCjB,EAwC0B,OAxC1B,EAwCmC,OAxCnC,EAyC5B,OAzC4B,EAyCnB,MAzCmB,EAyCX,OAzCW,EAyCF,OAzCE,EAyCO,OAzCP,EAyCgB,OAzChB,EAyCyB,OAzCzB,EAyCkC,OAzClC,EA0C5B,OA1C4B,EA0CnB,OA1CmB,EA0CV,OA1CU,EA0CD,OA1CC,EA0CQ,OA1CR,EA0CiB,OA1CjB,EA0C0B,OA1C1B,EA0CmC,OA1CnC,EA2C5B,OA3C4B,EA2CnB,OA3CmB,EA2CV,OA3CU,EA2CD,OA3CC,EA2CQ,MA3CR,EA2CgB,OA3ChB,EA2CyB,OA3CzB,EA2CkC,OA3ClC,EA4C5B,OA5C4B,EA4CnB,OA5CmB,EA4CV,MA5CU,EA4CF,OA5CE,EA4CO,OA5CP,EA4CgB,OA5ChB,EA4CyB,OA5CzB,EA4CkC,OA5ClC,EA6C5B,OA7C4B,EA6CnB,MA7CmB,EA6CX,OA7CW,EA6CF,OA7CE,EA6CO,OA7CP,EA6CgB,OA7ChB,EA6CyB,OA7CzB,EA6CkC,MA7ClC,EA6C0C,OA7C1C,EA8C5B,OA9C4B,EA8CnB,OA9CmB,EA8CV,OA9CU,EA8CD,OA9CC,EA8CQ,OA9CR,EA8CiB,MA9CjB,EA8CyB,OA9CzB,EA8CkC,OA9ClC,EA+C5B,OA/C4B,EA+CnB,OA/CmB,EA+CV,OA/CU,EA+CD,OA/CC,EA+CQ,OA/CR,EA+CiB,OA/CjB,EA+C0B,OA/C1B,EA+CmC,OA/CnC,EAgD5B,OAhD4B,EAgDnB,OAhDmB,EAgDV,MAhDU,EAgDF,OAhDE,EAgDO,OAhDP,EAgDgB,OAhDhB,EAgDyB,CAhDzB,EAgD4B,CAhD5B,EAgD+B,CAhD/B,EAgDkC,CAhDlC,EAgDqC,CAhDrC,EAgDwC,CAhDxC,EAgD2C,CAhD3C,EAgD8C,CAhD9C,EAiD5B,CAjD4B,EAiDzB,CAjDyB,EAiDtB,CAjDsB,EAiDnB,CAjDmB,EAiDhB,OAjDgB,EAiDP,CAjDO,EAiDJ,CAjDI,EAiDD,CAjDC,EAiDE,CAjDF,EAiDK,CAjDL,EAiDQ,CAjDR,EAiDW,CAjDX,EAiDc,CAjDd,EAiDiB,CAjDjB,EAiDoB,CAjDpB,EAiDuB,CAjDvB,EAiD0B,CAjD1B,EAiD6B,CAjD7B,EAiDgC,CAjDhC,EAiDmC,CAjDnC,EAiDsC,CAjDtC,EAiDyC,CAjDzC,EAiD4C,CAjD5C,EAiD+C,CAjD/C,EAkD5B,CAlD4B,EAkDzB,CAlDyB,EAkDtB,CAlDsB,EAkDnB,CAlDmB,EAkDhB,CAlDgB,EAkDb,CAlDa,EAkDV,CAlDU,EAkDP,CAlDO,EAkDJ,CAlDI,EAkDD,CAlDC,EAkDE,CAlDF,EAkDK,CAlDL,EAkDQ,CAlDR,EAkDW,CAlDX,EAkDc,CAlDd,EAkDiB,CAlDjB,EAkDoB,CAlDpB,EAkDuB,CAlDvB,EAkD0B,CAlD1B,EAkD6B,CAlD7B,EAkDgC,CAlDhC,EAkDmC,CAlDnC,EAkDsC,CAlDtC,EAkDyC,CAlDzC,EAkD4C,CAlD5C,EAkD+C,CAlD/C,EAmD5B,CAnD4B,EAmDzB,CAnDyB,EAmDtB,CAnDsB,EAmDnB,CAnDmB,EAmDhB,CAnDgB,EAmDb,CAnDa,EAmDV,CAnDU,EAmDP,CAnDO,EAmDJ,CAnDI,EAmDD,CAnDC,EAmDE,CAnDF,EAmDK,CAnDL,EAmDQ,CAnDR,EAmDW,CAnDX,EAmDc,CAnDd,EAmDiB,CAnDjB,EAmDoB,CAnDpB,EAmDuB,CAnDvB,EAmD0B,CAnD1B,EAmD6B,CAnD7B,EAmDgC,CAnDhC,EAmDmC,OAnDnC,EAmD4C,CAnD5C,EAmD+C,CAnD/C,EAoD5B,CApD4B,EAoDzB,CApDyB,EAoDtB,CApDsB,EAoDnB,CApDmB,EAoDhB,CApDgB,EAoDb,CApDa,EAoDV,CApDU,EAoDP,CApDO,EAoDJ,CApDI,EAoDD,CApDC,EAoDE,OApDF,EAoDW,CApDX,EAoDc,CApDd,EAoDiB,CApDjB,EAoDoB,CApDpB,EAoDuB,CApDvB,EAoD0B,CApD1B,EAoD6B,OApD7B,EAoDsC,OApDtC,EAqD5B,OArD4B,EAqDnB,OArDmB,EAqDV,OArDU,EAqDD,OArDC,EAqDQ,MArDR,EAqDgB,OArDhB,EAqDyB,CArDzB,EAqD4B,CArD5B,EAqD+B,OArD/B,EAqDwC,OArDxC,EAsD5B,CAtD4B,EAsDzB,OAtDyB,EAsDhB,OAtDgB,EAsDP,OAtDO,EAsDE,OAtDF,EAsDW,OAtDX,EAsDoB,MAtDpB,EAsD4B,MAtD5B,EAsDoC,MAtDpC,EAuD5B,OAvD4B,EAuDnB,OAvDmB,EAuDV,OAvDU,EAuDD,OAvDC,EAuDQ,OAvDR,EAuDiB,CAvDjB,EAuDoB,CAvDpB,EAuDuB,MAvDvB,EAuD+B,MAvD/B,EAuDuC,OAvDvC,EAwD5B,MAxD4B,EAwDpB,OAxDoB,EAwDX,OAxDW,EAwDF,OAxDE,EAwDO,OAxDP,EAwDgB,OAxDhB,EAwDyB,OAxDzB,EAwDkC,CAxDlC,EAwDqC,CAxDrC,EAwDwC,CAxDxC,EAyD5B,OAzD4B,EAyDnB,CAzDmB,EAyDhB,OAzDgB,EAyDP,OAzDO,EAyDE,OAzDF,EAyDW,OAzDX,EAyDoB,KAzDpB,EAyD2B,OAzD3B,EAyDoC,OAzDpC,EA0D5B,OA1D4B,EA0DnB,OA1DmB,EA0DV,OA1DU,EA0DD,OA1DC,EA0DQ,OA1DR,EA0DiB,OA1DjB,EA0D0B,CA1D1B,EA0D6B,OA1D7B,EA0DsC,MA1DtC,EA2D5B,OA3D4B,EA2DnB,OA3DmB,EA2DV,OA3DU,EA2DD,OA3DC,EA2DQ,OA3DR,EA2DiB,OA3DjB,EA2D0B,OA3D1B,EA2DmC,OA3DnC,EA4D5B,OA5D4B,EA4DnB,OA5DmB,EA4DV,OA5DU,EA4DD,OA5DC,EA4DQ,OA5DR,EA4DiB,MA5DjB,EA4DyB,MA5DzB,EA4DiC,OA5DjC,EA4D0C,GA5D1C,EA6D5B,OA7D4B,EA6DnB,OA7DmB,EA6DV,OA7DU,EA6DD,OA7DC,EA6DQ,CA7DR,EA6DW,CA7DX,EA6Dc,CA7Dd,EA6DiB,CA7DjB,EA6DoB,CA7DpB,EA6DuB,CA7DvB,EA6D0B,CA7D1B,EA6D6B,CA7D7B,EA6DgC,CA7DhC,EA6DmC,CA7DnC,EA6DsC,CA7DtC,EA6DyC,CA7DzC,EA6D4C,CA7D5C,EA6D+C,CA7D/C,EA8D5B,CA9D4B,EA8DzB,CA9DyB,EA8DtB,CA9DsB,EA8DnB,CA9DmB,EA8DhB,CA9DgB,EA8Db,CA9Da,EA8DV,CA9DU,EA8DP,CA9DO,EA8DJ,CA9DI,EA8DD,CA9DC,EA8DE,CA9DF,EA8DK,CA9DL,EA8DQ,CA9DR,EA8DW,CA9DX,EA8Dc,CA9Dd,EA8DiB,CA9DjB,EA8DoB,CA9DpB,EA8DuB,CA9DvB,EA8D0B,CA9D1B,EA8D6B,CA9D7B,EA8DgC,CA9DhC,EA8DmC,CA9DnC,EA8DsC,CA9DtC,EA8DyC,CA9DzC,EA8D4C,CA9D5C,EA8D+C,CA9D/C,EA+D5B,CA/D4B,EA+DzB,CA/DyB,EA+DtB,CA/DsB,EA+DnB,CA/DmB,EA+DhB,OA/DgB,EA+DP,OA/DO,EA+DE,CA/DF,EA+DK,CA/DL,EA+DQ,CA/DR,EA+DW,CA/DX,EA+Dc,CA/Dd,EA+DiB,MA/DjB,EA+DyB,OA/DzB,EA+DkC,CA/DlC,EA+DqC,CA/DrC,EA+DwC,CA/DxC,EAgE5B,OAhE4B,EAgEnB,CAhEmB,EAgEhB,CAhEgB,EAgEb,CAhEa,EAgEV,CAhEU,EAgEP,CAhEO,EAgEJ,CAhEI,EAgED,CAhEC,EAgEE,CAhEF,EAgEK,CAhEL,EAgEQ,CAhER,EAgEW,CAhEX,EAgEc,CAhEd,EAgEiB,OAhEjB,EAgE0B,OAhE1B,EAgEmC,CAhEnC,EAgEsC,CAhEtC,EAgEyC,CAhEzC,EAiE5B,OAjE4B,EAiEnB,OAjEmB,EAiEV,OAjEU,EAiED,OAjEC,EAiEQ,CAjER,EAiEW,CAjEX,EAiEc,CAjEd,EAiEiB,CAjEjB,EAiEoB,CAjEpB,EAiEuB,CAjEvB,EAiE0B,CAjE1B,EAiE6B,CAjE7B,EAiEgC,CAjEhC,EAiEmC,CAjEnC,EAiEsC,CAjEtC,CAA9B;;AAmEA,MAAMC,wBAAwB;EAAEwC,YAAY,MAAd;EAAsBC,SAAS;AAA/B,CAA9B;;;;;;;;;;;;;ACxRA,MAAMvB,uBAAuB,CAC3B,OAD2B,EAClB,CADkB,EACf,CADe,EACZ,MADY,EACJ,OADI,EACK,OADL,EACc,OADd,EACuB,OADvB,EACgC,OADhC,EACyC,OADzC,EAE3B,OAF2B,EAElB,OAFkB,EAET,OAFS,EAEA,OAFA,EAES,OAFT,EAEkB,MAFlB,EAE0B,OAF1B,EAEmC,MAFnC,EAE2C,MAF3C,EAG3B,OAH2B,EAGlB,OAHkB,EAGT,OAHS,EAGA,OAHA,EAGS,OAHT,EAGkB,OAHlB,EAG2B,OAH3B,EAGoC,OAHpC,EAI3B,OAJ2B,EAIlB,OAJkB,EAIT,OAJS,EAIA,CAJA,EAIG,OAJH,EAIY,OAJZ,EAIqB,OAJrB,EAI8B,OAJ9B,EAIuC,MAJvC,EAK3B,OAL2B,EAKlB,OALkB,EAKT,OALS,EAKA,OALA,EAKS,OALT,EAKkB,OALlB,EAK2B,OAL3B,EAKoC,OALpC,EAM3B,MAN2B,EAMnB,OANmB,EAMV,OANU,EAMD,OANC,EAMQ,OANR,EAMiB,OANjB,EAM0B,OAN1B,EAMmC,OANnC,EAO3B,OAP2B,EAOlB,OAPkB,EAOT,OAPS,EAOA,OAPA,EAOS,OAPT,EAOkB,OAPlB,EAO2B,OAP3B,EAOoC,OAPpC,EAQ3B,OAR2B,EAQlB,OARkB,EAQT,OARS,EAQA,MARA,EAQQ,OARR,EAQiB,OARjB,EAQ0B,OAR1B,EAQmC,OARnC,EAS3B,OAT2B,EASlB,OATkB,EAST,OATS,EASA,OATA,EASS,OATT,EASkB,OATlB,EAS2B,OAT3B,EASoC,OATpC,EAU3B,MAV2B,EAUnB,MAVmB,EAUX,OAVW,EAUF,MAVE,EAUM,OAVN,EAUe,OAVf,EAUwB,OAVxB,EAUiC,OAVjC,EAU0C,OAV1C,EAW3B,OAX2B,EAWlB,OAXkB,EAWT,OAXS,EAWA,OAXA,EAWS,OAXT,EAWkB,OAXlB,EAW2B,OAX3B,EAWoC,OAXpC,EAW6C,CAX7C,EAY3B,OAZ2B,EAYlB,OAZkB,EAYT,OAZS,EAYA,OAZA,EAYS,OAZT,EAYkB,OAZlB,EAY2B,OAZ3B,EAYoC,OAZpC,EAa3B,OAb2B,EAalB,OAbkB,EAaT,OAbS,EAaA,OAbA,EAaS,OAbT,EAakB,OAblB,EAa2B,OAb3B,EAaoC,OAbpC,EAc3B,OAd2B,EAclB,OAdkB,EAcT,OAdS,EAcA,OAdA,EAcS,CAdT,EAcY,CAdZ,EAce,OAdf,EAcwB,CAdxB,EAc2B,OAd3B,EAcoC,MAdpC,EAe3B,OAf2B,EAelB,CAfkB,EAef,OAfe,EAeN,OAfM,EAeG,OAfH,EAeY,OAfZ,EAeqB,OAfrB,EAe8B,OAf9B,EAeuC,OAfvC,EAgB3B,OAhB2B,EAgBlB,OAhBkB,EAgBT,OAhBS,EAgBA,OAhBA,EAgBS,OAhBT,EAgBkB,CAhBlB,EAgBqB,OAhBrB,EAgB8B,OAhB9B,EAgBuC,OAhBvC,EAiB3B,OAjB2B,EAiBlB,OAjBkB,EAiBT,MAjBS,EAiBD,MAjBC,EAiBO,MAjBP,EAiBe,MAjBf,EAiBuB,OAjBvB,EAiBgC,OAjBhC,EAiByC,OAjBzC,EAkB3B,OAlB2B,EAkBlB,OAlBkB,EAkBT,OAlBS,EAkBA,OAlBA,EAkBS,OAlBT,EAkBkB,OAlBlB,EAkB2B,OAlB3B,EAkBoC,OAlBpC,EAmB3B,OAnB2B,EAmBlB,OAnBkB,EAmBT,OAnBS,EAmBA,OAnBA,EAmBS,OAnBT,EAmBkB,OAnBlB,EAmB2B,OAnB3B,EAmBoC,OAnBpC,EAoB3B,OApB2B,EAoBlB,OApBkB,EAoBT,OApBS,EAoBA,OApBA,EAoBS,OApBT,EAoBkB,OApBlB,EAoB2B,OApB3B,EAoBoC,OApBpC,EAqB3B,OArB2B,EAqBlB,MArBkB,EAqBV,MArBU,EAqBF,MArBE,EAqBM,MArBN,EAqBc,OArBd,EAqBuB,OArBvB,EAqBgC,OArBhC,EAqByC,OArBzC,EAsB3B,OAtB2B,EAsBlB,OAtBkB,EAsBT,OAtBS,EAsBA,OAtBA,EAsBS,OAtBT,EAsBkB,OAtBlB,EAsB2B,OAtB3B,EAsBoC,OAtBpC,EAuB3B,OAvB2B,EAuBlB,OAvBkB,EAuBT,OAvBS,EAuBA,OAvBA,EAuBS,OAvBT,EAuBkB,OAvBlB,EAuB2B,OAvB3B,EAuBoC,OAvBpC,EAwB3B,OAxB2B,EAwBlB,OAxBkB,EAwBT,OAxBS,EAwBA,OAxBA,EAwBS,OAxBT,EAwBkB,OAxBlB,EAwB2B,OAxB3B,EAwBoC,OAxBpC,EAyB3B,OAzB2B,EAyBlB,OAzBkB,EAyBT,OAzBS,EAyBA,OAzBA,EAyBS,OAzBT,EAyBkB,OAzBlB,EAyB2B,OAzB3B,EAyBoC,OAzBpC,EA0B3B,OA1B2B,EA0BlB,OA1BkB,EA0BT,OA1BS,EA0BA,OA1BA,EA0BS,OA1BT,EA0BkB,OA1BlB,EA0B2B,OA1B3B,EA0BoC,OA1BpC,EA2B3B,OA3B2B,EA2BlB,OA3BkB,EA2BT,OA3BS,EA2BA,OA3BA,EA2BS,OA3BT,EA2BkB,OA3BlB,EA2B2B,OA3B3B,EA2BoC,OA3BpC,EA4B3B,OA5B2B,EA4BlB,OA5BkB,EA4BT,OA5BS,EA4BA,OA5BA,EA4BS,MA5BT,EA4BiB,MA5BjB,EA4ByB,MA5BzB,EA4BiC,MA5BjC,EA4ByC,MA5BzC,EA6B3B,MA7B2B,EA6BnB,MA7BmB,EA6BX,MA7BW,EA6BH,MA7BG,EA6BK,MA7BL,EA6Ba,OA7Bb,EA6BsB,OA7BtB,EA6B+B,OA7B/B,EA6BwC,MA7BxC,EA8B3B,OA9B2B,EA8BlB,OA9BkB,EA8BT,OA9BS,EA8BA,OA9BA,EA8BS,MA9BT,EA8BiB,OA9BjB,EA8B0B,MA9B1B,EA8BkC,OA9BlC,EA8B2C,OA9B3C,EA+B3B,OA/B2B,EA+BlB,OA/BkB,EA+BT,OA/BS,EA+BA,MA/BA,EA+BQ,OA/BR,EA+BiB,OA/BjB,EA+B0B,OA/B1B,EA+BmC,OA/BnC,EAgC3B,OAhC2B,EAgClB,OAhCkB,EAgCT,MAhCS,EAgCD,MAhCC,EAgCO,OAhCP,EAgCgB,OAhChB,EAgCyB,OAhCzB,EAgCkC,OAhClC,EAgC2C,OAhC3C,EAiC3B,OAjC2B,EAiClB,OAjCkB,EAiCT,CAjCS,EAiCN,OAjCM,EAiCG,OAjCH,EAiCY,OAjCZ,EAiCqB,OAjCrB,EAiC8B,OAjC9B,EAiCuC,OAjCvC,EAkC3B,OAlC2B,EAkClB,OAlCkB,EAkCT,OAlCS,EAkCA,OAlCA,EAkCS,OAlCT,EAkCkB,OAlClB,EAkC2B,OAlC3B,EAkCoC,OAlCpC,EAmC3B,OAnC2B,EAmClB,OAnCkB,EAmCT,OAnCS,EAmCA,OAnCA,EAmCS,MAnCT,EAmCiB,OAnCjB,EAmC0B,OAnC1B,EAmCmC,OAnCnC,EAoC3B,OApC2B,EAoClB,OApCkB,EAoCT,OApCS,EAoCA,OApCA,EAoCS,OApCT,EAoCkB,OApClB,EAoC2B,OApC3B,EAoCoC,OApCpC,EAqC3B,OArC2B,EAqClB,OArCkB,EAqCT,OArCS,EAqCA,OArCA,EAqCS,OArCT,EAqCkB,OArClB,EAqC2B,OArC3B,EAqCoC,OArCpC,EAsC3B,OAtC2B,EAsClB,CAtCkB,EAsCf,OAtCe,EAsCN,CAtCM,EAsCH,OAtCG,EAsCM,CAtCN,EAsCS,MAtCT,EAsCiB,OAtCjB,EAsC0B,OAtC1B,EAsCmC,OAtCnC,EAsC4C,CAtC5C,EAuC3B,OAvC2B,EAuClB,OAvCkB,EAuCT,OAvCS,EAuCA,OAvCA,EAuCS,OAvCT,EAuCkB,OAvClB,EAuC2B,OAvC3B,EAuCoC,OAvCpC,EAwC3B,OAxC2B,EAwClB,OAxCkB,EAwCT,OAxCS,EAwCA,OAxCA,EAwCS,OAxCT,EAwCkB,OAxClB,EAwC2B,OAxC3B,EAwCoC,OAxCpC,EAyC3B,OAzC2B,EAyClB,OAzCkB,EAyCT,OAzCS,EAyCA,CAzCA,EAyCG,OAzCH,EAyCY,OAzCZ,EAyCqB,OAzCrB,EAyC8B,OAzC9B,EAyCuC,OAzCvC,EA0C3B,OA1C2B,EA0ClB,MA1CkB,EA0CV,OA1CU,EA0CD,OA1CC,EA0CQ,OA1CR,EA0CiB,OA1CjB,EA0C0B,OA1C1B,EA0CmC,OA1CnC,EA2C3B,OA3C2B,EA2ClB,OA3CkB,EA2CT,MA3CS,EA2CD,OA3CC,EA2CQ,OA3CR,EA2CiB,OA3CjB,EA2C0B,OA3C1B,EA2CmC,OA3CnC,EA4C3B,OA5C2B,EA4ClB,OA5CkB,EA4CT,OA5CS,EA4CA,OA5CA,EA4CS,OA5CT,EA4CkB,OA5ClB,EA4C2B,OA5C3B,EA4CoC,OA5CpC,EA6C3B,MA7C2B,EA6CnB,CA7CmB,EA6ChB,MA7CgB,EA6CR,OA7CQ,EA6CC,OA7CD,EA6CU,OA7CV,EA6CmB,OA7CnB,EA6C4B,MA7C5B,EA6CoC,OA7CpC,EA8C3B,OA9C2B,EA8ClB,OA9CkB,EA8CT,OA9CS,EA8CA,OA9CA,EA8CS,OA9CT,EA8CkB,OA9ClB,EA8C2B,OA9C3B,EA8CoC,OA9CpC,EA+C3B,MA/C2B,EA+CnB,OA/CmB,EA+CV,OA/CU,EA+CD,OA/CC,EA+CQ,OA/CR,EA+CiB,MA/CjB,EA+CyB,OA/CzB,EA+CkC,OA/ClC,EA+C2C,OA/C3C,EAgD3B,CAhD2B,EAgDxB,OAhDwB,EAgDf,OAhDe,EAgDN,OAhDM,EAgDG,OAhDH,EAgDY,OAhDZ,EAgDqB,OAhDrB,EAgD8B,OAhD9B,EAgDuC,MAhDvC,EAiD3B,OAjD2B,EAiDlB,OAjDkB,EAiDT,OAjDS,EAiDA,OAjDA,EAiDS,OAjDT,EAiDkB,OAjDlB,EAiD2B,OAjD3B,EAiDoC,OAjDpC,EAkD3B,MAlD2B,EAkDnB,OAlDmB,EAkDV,MAlDU,EAkDF,OAlDE,EAkDO,OAlDP,EAkDgB,OAlDhB,EAkDyB,OAlDzB,EAkDkC,CAlDlC,EAkDqC,OAlDrC,EAmD3B,OAnD2B,EAmDlB,OAnDkB,EAmDT,OAnDS,EAmDA,OAnDA,EAmDS,OAnDT,EAmDkB,OAnDlB,EAmD2B,OAnD3B,EAmDoC,OAnDpC,EAoD3B,OApD2B,EAoDlB,OApDkB,EAoDT,OApDS,EAoDA,OApDA,EAoDS,OApDT,EAoDkB,OApDlB,EAoD2B,OApD3B,EAoDoC,OApDpC,EAqD3B,OArD2B,EAqDlB,OArDkB,EAqDT,OArDS,EAqDA,OArDA,EAqDS,OArDT,EAqDkB,OArDlB,EAqD2B,OArD3B,EAqDoC,OArDpC,EAsD3B,OAtD2B,EAsDlB,OAtDkB,EAsDT,OAtDS,EAsDA,OAtDA,EAsDS,OAtDT,EAsDkB,OAtDlB,EAsD2B,CAtD3B,EAsD8B,OAtD9B,EAsDuC,MAtDvC,EAuD3B,OAvD2B,EAuDlB,OAvDkB,EAuDT,OAvDS,EAuDA,OAvDA,EAuDS,OAvDT,EAuDkB,OAvDlB,EAuD2B,OAvD3B,EAuDoC,OAvDpC,EAwD3B,OAxD2B,EAwDlB,OAxDkB,EAwDT,OAxDS,EAwDA,OAxDA,EAwDS,OAxDT,EAwDkB,MAxDlB,EAwD0B,OAxD1B,EAwDmC,OAxDnC,EAyD3B,OAzD2B,EAyDlB,OAzDkB,EAyDT,OAzDS,EAyDA,OAzDA,EAyDS,OAzDT,EAyDkB,OAzDlB,EAyD2B,CAzD3B,EAyD8B,OAzD9B,EAyDuC,OAzDvC,EA0D3B,OA1D2B,EA0DlB,MA1DkB,EA0DV,MA1DU,EA0DF,OA1DE,EA0DO,CA1DP,EA0DU,OA1DV,EA0DmB,OA1DnB,EA0D4B,CA1D5B,EA0D+B,OA1D/B,EA0DwC,OA1DxC,EA2D3B,OA3D2B,EA2DlB,OA3DkB,EA2DT,OA3DS,EA2DA,OA3DA,EA2DS,OA3DT,EA2DkB,MA3DlB,EA2D0B,OA3D1B,EA2DmC,MA3DnC,EA2D2C,OA3D3C,EA4D3B,OA5D2B,EA4DlB,OA5DkB,EA4DT,OA5DS,EA4DA,OA5DA,EA4DS,OA5DT,EA4DkB,OA5DlB,EA4D2B,CA5D3B,EA4D8B,CA5D9B,EA4DiC,OA5DjC,EA4D0C,MA5D1C,EA6D3B,OA7D2B,EA6DlB,OA7DkB,EA6DT,OA7DS,EA6DA,OA7DA,EA6DS,OA7DT,EA6DkB,OA7DlB,EA6D2B,OA7D3B,EA6DoC,OA7DpC,EA6D6C,CA7D7C,EA6DgD,CA7DhD,EA8D3B,OA9D2B,EA8DlB,CA9DkB,EA8Df,CA9De,EA8DZ,OA9DY,EA8DH,MA9DG,EA8DK,MA9DL,EA8Da,MA9Db,EA8DqB,MA9DrB,EA8D6B,CA9D7B,EA8DgC,CA9DhC,EA8DmC,CA9DnC,EA8DsC,OA9DtC,EA+D3B,OA/D2B,EA+DlB,OA/DkB,EA+DT,CA/DS,EA+DN,CA/DM,EA+DH,OA/DG,EA+DM,OA/DN,EA+De,OA/Df,EA+DwB,OA/DxB,EA+DiC,OA/DjC,EA+D0C,OA/D1C,EAgE3B,OAhE2B,EAgElB,CAhEkB,EAgEf,OAhEe,EAgEN,OAhEM,EAgEG,OAhEH,EAgEY,OAhEZ,EAgEqB,OAhErB,EAgE8B,OAhE9B,EAgEuC,OAhEvC,EAgEgD,CAhEhD,EAiE3B,OAjE2B,EAiElB,OAjEkB,EAiET,OAjES,EAiEA,OAjEA,EAiES,OAjET,EAiEkB,OAjElB,EAiE2B,CAjE3B,EAiE8B,CAjE9B,EAiEiC,CAjEjC,EAiEoC,CAjEpC,EAiEuC,CAjEvC,EAiE0C,CAjE1C,EAiE6C,CAjE7C,EAkE3B,OAlE2B,EAkElB,CAlEkB,EAkEf,OAlEe,EAkEN,OAlEM,EAkEG,OAlEH,EAkEY,OAlEZ,EAkEqB,OAlErB,EAkE8B,CAlE9B,EAkEiC,OAlEjC,EAkE0C,OAlE1C,EAmE3B,OAnE2B,EAmElB,OAnEkB,EAmET,OAnES,EAmEA,OAnEA,EAmES,OAnET,EAmEkB,OAnElB,EAmE2B,OAnE3B,EAmEoC,OAnEpC,EAoE3B,OApE2B,EAoElB,OApEkB,EAoET,GApES,EAoEJ,OApEI,EAoEK,OApEL,EAoEc,OApEd,EAoEuB,OApEvB,EAoEgC,OApEhC,EAoEyC,OApEzC,EAqE3B,OArE2B,EAqElB,OArEkB,EAqET,OArES,EAqEA,OArEA,EAqES,OArET,EAqEkB,OArElB,EAqE2B,OArE3B,EAqEoC,OArEpC,EAsE3B,OAtE2B,EAsElB,OAtEkB,EAsET,OAtES,EAsEA,OAtEA,EAsES,OAtET,EAsEkB,OAtElB,EAsE2B,OAtE3B,EAsEoC,OAtEpC,EAuE3B,OAvE2B,EAuElB,OAvEkB,EAuET,OAvES,EAuEA,OAvEA,EAuES,OAvET,EAuEkB,OAvElB,EAuE2B,OAvE3B,EAuEoC,OAvEpC,EAwE3B,OAxE2B,EAwElB,OAxEkB,EAwET,OAxES,EAwEA,OAxEA,EAwES,OAxET,EAwEkB,OAxElB,EAwE2B,OAxE3B,EAwEoC,OAxEpC,EAyE3B,OAzE2B,EAyElB,OAzEkB,EAyET,OAzES,EAyEA,OAzEA,EAyES,OAzET,EAyEkB,OAzElB,EAyE2B,OAzE3B,EAyEoC,OAzEpC,EA0E3B,OA1E2B,EA0ElB,CA1EkB,EA0Ef,OA1Ee,EA0EN,OA1EM,EA0EG,CA1EH,EA0EM,OA1EN,EA0Ee,OA1Ef,EA0EwB,OA1ExB,EA0EiC,OA1EjC,EA0E0C,OA1E1C,EA2E3B,OA3E2B,EA2ElB,OA3EkB,EA2ET,OA3ES,EA2EA,OA3EA,EA2ES,OA3ET,EA2EkB,CA3ElB,EA2EqB,OA3ErB,EA2E8B,OA3E9B,EA2EuC,CA3EvC,EA2E0C,CA3E1C,EA4E3B,OA5E2B,EA4ElB,OA5EkB,EA4ET,OA5ES,EA4EA,MA5EA,EA4EQ,CA5ER,EA4EW,CA5EX,EA4Ec,CA5Ed,EA4EiB,CA5EjB,EA4EoB,CA5EpB,EA4EuB,CA5EvB,EA4E0B,CA5E1B,EA4E6B,CA5E7B,EA4EgC,OA5EhC,EA4EyC,OA5EzC,EA6E3B,OA7E2B,EA6ElB,OA7EkB,EA6ET,CA7ES,EA6EN,CA7EM,EA6EH,CA7EG,EA6EA,CA7EA,EA6EG,CA7EH,EA6EM,CA7EN,EA6ES,CA7ET,EA6EY,CA7EZ,EA6Ee,CA7Ef,EA6EkB,CA7ElB,EA6EqB,CA7ErB,CAA7B;;AA+EA,MAAMC,uBAAuB;EAAEqB,YAAY,GAAd;EAAmBC,SAAS;AAA5B,CAA7B;;AAIA,MAAMnB,6BAA6B,CACjC,OADiC,EACxB,CADwB,EACrB,CADqB,EAClB,MADkB,EACV,OADU,EACD,OADC,EACQ,OADR,EACiB,OADjB,EAC0B,OAD1B,EACmC,OADnC,EAEjC,OAFiC,EAExB,OAFwB,EAEf,OAFe,EAEN,OAFM,EAEG,OAFH,EAEY,MAFZ,EAEoB,OAFpB,EAE6B,MAF7B,EAEqC,MAFrC,EAGjC,OAHiC,EAGxB,OAHwB,EAGf,OAHe,EAGN,OAHM,EAGG,OAHH,EAGY,OAHZ,EAGqB,OAHrB,EAG8B,OAH9B,EAIjC,OAJiC,EAIxB,OAJwB,EAIf,OAJe,EAIN,CAJM,EAIH,OAJG,EAIM,OAJN,EAIe,OAJf,EAIwB,OAJxB,EAIiC,MAJjC,EAKjC,OALiC,EAKxB,OALwB,EAKf,OALe,EAKN,OALM,EAKG,OALH,EAKY,OALZ,EAKqB,OALrB,EAK8B,OAL9B,EAMjC,MANiC,EAMzB,OANyB,EAMhB,OANgB,EAMP,OANO,EAME,OANF,EAMW,OANX,EAMoB,OANpB,EAM6B,OAN7B,EAOjC,OAPiC,EAOxB,OAPwB,EAOf,OAPe,EAON,OAPM,EAOG,OAPH,EAOY,OAPZ,EAOqB,OAPrB,EAO8B,OAP9B,EAQjC,OARiC,EAQxB,OARwB,EAQf,OARe,EAQN,MARM,EAQE,OARF,EAQW,OARX,EAQoB,OARpB,EAQ6B,OAR7B,EASjC,OATiC,EASxB,OATwB,EASf,OATe,EASN,OATM,EASG,OATH,EASY,OATZ,EASqB,OATrB,EAS8B,OAT9B,EAUjC,MAViC,EAUzB,MAVyB,EAUjB,OAViB,EAUR,MAVQ,EAUA,OAVA,EAUS,OAVT,EAUkB,OAVlB,EAU2B,OAV3B,EAUoC,OAVpC,EAWjC,OAXiC,EAWxB,OAXwB,EAWf,OAXe,EAWN,OAXM,EAWG,OAXH,EAWY,OAXZ,EAWqB,OAXrB,EAW8B,OAX9B,EAWuC,CAXvC,EAYjC,OAZiC,EAYxB,OAZwB,EAYf,OAZe,EAYN,OAZM,EAYG,OAZH,EAYY,OAZZ,EAYqB,OAZrB,EAY8B,OAZ9B,EAajC,OAbiC,EAaxB,OAbwB,EAaf,OAbe,EAaN,OAbM,EAaG,OAbH,EAaY,OAbZ,EAaqB,OAbrB,EAa8B,OAb9B,EAcjC,OAdiC,EAcxB,OAdwB,EAcf,OAde,EAcN,OAdM,EAcG,CAdH,EAcM,CAdN,EAcS,OAdT,EAckB,CAdlB,EAcqB,OAdrB,EAc8B,MAd9B,EAejC,OAfiC,EAexB,CAfwB,EAerB,OAfqB,EAeZ,OAfY,EAeH,OAfG,EAeM,OAfN,EAee,OAff,EAewB,OAfxB,EAeiC,OAfjC,EAgBjC,OAhBiC,EAgBxB,OAhBwB,EAgBf,OAhBe,EAgBN,OAhBM,EAgBG,OAhBH,EAgBY,CAhBZ,EAgBe,OAhBf,EAgBwB,OAhBxB,EAgBiC,OAhBjC,EAiBjC,OAjBiC,EAiBxB,OAjBwB,EAiBf,MAjBe,EAiBP,MAjBO,EAiBC,MAjBD,EAiBS,MAjBT,EAiBiB,OAjBjB,EAiB0B,OAjB1B,EAiBmC,OAjBnC,EAkBjC,OAlBiC,EAkBxB,OAlBwB,EAkBf,OAlBe,EAkBN,OAlBM,EAkBG,OAlBH,EAkBY,OAlBZ,EAkBqB,OAlBrB,EAkB8B,OAlB9B,EAmBjC,OAnBiC,EAmBxB,OAnBwB,EAmBf,OAnBe,EAmBN,OAnBM,EAmBG,OAnBH,EAmBY,OAnBZ,EAmBqB,OAnBrB,EAmB8B,OAnB9B,EAoBjC,OApBiC,EAoBxB,OApBwB,EAoBf,OApBe,EAoBN,OApBM,EAoBG,OApBH,EAoBY,OApBZ,EAoBqB,OApBrB,EAoB8B,OApB9B,EAqBjC,OArBiC,EAqBxB,MArBwB,EAqBhB,MArBgB,EAqBR,MArBQ,EAqBA,MArBA,EAqBQ,OArBR,EAqBiB,OArBjB,EAqB0B,OArB1B,EAqBmC,OArBnC,EAsBjC,OAtBiC,EAsBxB,OAtBwB,EAsBf,OAtBe,EAsBN,OAtBM,EAsBG,OAtBH,EAsBY,OAtBZ,EAsBqB,OAtBrB,EAsB8B,OAtB9B,EAuBjC,OAvBiC,EAuBxB,OAvBwB,EAuBf,OAvBe,EAuBN,OAvBM,EAuBG,OAvBH,EAuBY,OAvBZ,EAuBqB,OAvBrB,EAuB8B,OAvB9B,EAwBjC,OAxBiC,EAwBxB,OAxBwB,EAwBf,OAxBe,EAwBN,OAxBM,EAwBG,OAxBH,EAwBY,OAxBZ,EAwBqB,OAxBrB,EAwB8B,OAxB9B,EAyBjC,OAzBiC,EAyBxB,OAzBwB,EAyBf,OAzBe,EAyBN,MAzBM,EAyBE,OAzBF,EAyBW,OAzBX,EAyBoB,OAzBpB,EAyB6B,OAzB7B,EA0BjC,OA1BiC,EA0BxB,OA1BwB,EA0Bf,OA1Be,EA0BN,OA1BM,EA0BG,OA1BH,EA0BY,OA1BZ,EA0BqB,OA1BrB,EA0B8B,OA1B9B,EA2BjC,OA3BiC,EA2BxB,OA3BwB,EA2Bf,OA3Be,EA2BN,OA3BM,EA2BG,OA3BH,EA2BY,OA3BZ,EA2BqB,OA3BrB,EA2B8B,OA3B9B,EA4BjC,OA5BiC,EA4BxB,OA5BwB,EA4Bf,OA5Be,EA4BN,OA5BM,EA4BG,MA5BH,EA4BW,MA5BX,EA4BmB,MA5BnB,EA4B2B,MA5B3B,EA4BmC,MA5BnC,EA6BjC,MA7BiC,EA6BzB,MA7ByB,EA6BjB,MA7BiB,EA6BT,MA7BS,EA6BD,MA7BC,EA6BO,OA7BP,EA6BgB,OA7BhB,EA6ByB,OA7BzB,EA6BkC,MA7BlC,EA8BjC,OA9BiC,EA8BxB,OA9BwB,EA8Bf,OA9Be,EA8BN,OA9BM,EA8BG,MA9BH,EA8BW,OA9BX,EA8BoB,MA9BpB,EA8B4B,OA9B5B,EA8BqC,OA9BrC,EA+BjC,OA/BiC,EA+BxB,OA/BwB,EA+Bf,OA/Be,EA+BN,MA/BM,EA+BE,OA/BF,EA+BW,OA/BX,EA+BoB,OA/BpB,EA+B6B,OA/B7B,EAgCjC,OAhCiC,EAgCxB,OAhCwB,EAgCf,MAhCe,EAgCP,MAhCO,EAgCC,OAhCD,EAgCU,OAhCV,EAgCmB,OAhCnB,EAgC4B,OAhC5B,EAgCqC,OAhCrC,EAiCjC,OAjCiC,EAiCxB,OAjCwB,EAiCf,CAjCe,EAiCZ,OAjCY,EAiCH,OAjCG,EAiCM,OAjCN,EAiCe,OAjCf,EAiCwB,OAjCxB,EAiCiC,OAjCjC,EAkCjC,OAlCiC,EAkCxB,OAlCwB,EAkCf,OAlCe,EAkCN,OAlCM,EAkCG,OAlCH,EAkCY,OAlCZ,EAkCqB,OAlCrB,EAkC8B,OAlC9B,EAmCjC,OAnCiC,EAmCxB,OAnCwB,EAmCf,OAnCe,EAmCN,OAnCM,EAmCG,MAnCH,EAmCW,OAnCX,EAmCoB,OAnCpB,EAmC6B,OAnC7B,EAoCjC,OApCiC,EAoCxB,OApCwB,EAoCf,OApCe,EAoCN,OApCM,EAoCG,OApCH,EAoCY,OApCZ,EAoCqB,OApCrB,EAoC8B,OApC9B,EAqCjC,OArCiC,EAqCxB,OArCwB,EAqCf,OArCe,EAqCN,OArCM,EAqCG,OArCH,EAqCY,OArCZ,EAqCqB,OArCrB,EAqC8B,OArC9B,EAsCjC,OAtCiC,EAsCxB,CAtCwB,EAsCrB,OAtCqB,EAsCZ,CAtCY,EAsCT,OAtCS,EAsCA,CAtCA,EAsCG,MAtCH,EAsCW,OAtCX,EAsCoB,OAtCpB,EAsC6B,OAtC7B,EAsCsC,CAtCtC,EAuCjC,OAvCiC,EAuCxB,OAvCwB,EAuCf,OAvCe,EAuCN,OAvCM,EAuCG,OAvCH,EAuCY,OAvCZ,EAuCqB,OAvCrB,EAuC8B,OAvC9B,EAwCjC,OAxCiC,EAwCxB,OAxCwB,EAwCf,OAxCe,EAwCN,OAxCM,EAwCG,OAxCH,EAwCY,OAxCZ,EAwCqB,OAxCrB,EAwC8B,OAxC9B,EAyCjC,OAzCiC,EAyCxB,OAzCwB,EAyCf,OAzCe,EAyCN,CAzCM,EAyCH,CAzCG,EAyCA,OAzCA,EAyCS,OAzCT,EAyCkB,OAzClB,EAyC2B,OAzC3B,EAyCoC,MAzCpC,EA0CjC,MA1CiC,EA0CzB,OA1CyB,EA0ChB,OA1CgB,EA0CP,OA1CO,EA0CE,OA1CF,EA0CW,OA1CX,EA0CoB,OA1CpB,EA0C6B,OA1C7B,EA2CjC,OA3CiC,EA2CxB,MA3CwB,EA2ChB,OA3CgB,EA2CP,OA3CO,EA2CE,OA3CF,EA2CW,OA3CX,EA2CoB,OA3CpB,EA2C6B,OA3C7B,EA4CjC,OA5CiC,EA4CxB,OA5CwB,EA4Cf,OA5Ce,EA4CN,OA5CM,EA4CG,OA5CH,EA4CY,OA5CZ,EA4CqB,OA5CrB,EA4C8B,OA5C9B,EA4CuC,CA5CvC,EA6CjC,MA7CiC,EA6CzB,OA7CyB,EA6ChB,OA7CgB,EA6CP,OA7CO,EA6CE,OA7CF,EA6CW,MA7CX,EA6CmB,OA7CnB,EA6C4B,OA7C5B,EA6CqC,OA7CrC,EA8CjC,OA9CiC,EA8CxB,OA9CwB,EA8Cf,OA9Ce,EA8CN,OA9CM,EA8CG,OA9CH,EA8CY,OA9CZ,EA8CqB,MA9CrB,EA8C6B,OA9C7B,EA+CjC,OA/CiC,EA+CxB,OA/CwB,EA+Cf,OA/Ce,EA+CN,OA/CM,EA+CG,OA/CH,EA+CY,OA/CZ,EA+CqB,OA/CrB,EA+C8B,CA/C9B,EA+CiC,OA/CjC,EAgDjC,OAhDiC,EAgDxB,OAhDwB,EAgDf,OAhDe,EAgDN,OAhDM,EAgDG,OAhDH,EAgDY,OAhDZ,EAgDqB,MAhDrB,EAgD6B,OAhD7B,EAiDjC,OAjDiC,EAiDxB,OAjDwB,EAiDf,OAjDe,EAiDN,OAjDM,EAiDG,OAjDH,EAiDY,OAjDZ,EAiDqB,OAjDrB,EAiD8B,OAjD9B,EAkDjC,OAlDiC,EAkDxB,MAlDwB,EAkDhB,MAlDgB,EAkDR,OAlDQ,EAkDC,OAlDD,EAkDU,OAlDV,EAkDmB,OAlDnB,EAkD4B,OAlD5B,EAkDqC,OAlDrC,EAmDjC,OAnDiC,EAmDxB,OAnDwB,EAmDf,OAnDe,EAmDN,OAnDM,EAmDG,OAnDH,EAmDY,OAnDZ,EAmDqB,OAnDrB,EAmD8B,OAnD9B,EAoDjC,OApDiC,EAoDxB,OApDwB,EAoDf,OApDe,EAoDN,OApDM,EAoDG,OApDH,EAoDY,OApDZ,EAoDqB,OApDrB,EAoD8B,OApD9B,EAqDjC,OArDiC,EAqDxB,OArDwB,EAqDf,OArDe,EAqDN,OArDM,EAqDG,OArDH,EAqDY,OArDZ,EAqDqB,OArDrB,EAqD8B,OArD9B,EAsDjC,OAtDiC,EAsDxB,OAtDwB,EAsDf,CAtDe,EAsDZ,OAtDY,EAsDH,CAtDG,EAsDA,CAtDA,EAsDG,OAtDH,EAsDY,OAtDZ,EAsDqB,OAtDrB,EAsD8B,OAtD9B,EAuDjC,OAvDiC,EAuDxB,OAvDwB,EAuDf,OAvDe,EAuDN,OAvDM,EAuDG,OAvDH,EAuDY,OAvDZ,EAuDqB,OAvDrB,EAuD8B,MAvD9B,EAwDjC,OAxDiC,EAwDxB,OAxDwB,EAwDf,OAxDe,EAwDN,OAxDM,EAwDG,OAxDH,EAwDY,OAxDZ,EAwDqB,OAxDrB,EAwD8B,OAxD9B,EAyDjC,OAzDiC,EAyDxB,OAzDwB,EAyDf,OAzDe,EAyDN,OAzDM,EAyDG,OAzDH,EAyDY,OAzDZ,EAyDqB,OAzDrB,EAyD8B,OAzD9B,EA0DjC,OA1DiC,EA0DxB,OA1DwB,EA0Df,OA1De,EA0DN,CA1DM,EA0DH,OA1DG,EA0DM,OA1DN,EA0De,OA1Df,EA0DwB,OA1DxB,EA0DiC,OA1DjC,EA2DjC,OA3DiC,EA2DxB,OA3DwB,EA2Df,OA3De,EA2DN,OA3DM,EA2DG,OA3DH,EA2DY,MA3DZ,EA2DoB,MA3DpB,EA2D4B,MA3D5B,EA2DoC,OA3DpC,EA4DjC,OA5DiC,EA4DxB,OA5DwB,EA4Df,OA5De,EA4DN,OA5DM,EA4DG,OA5DH,EA4DY,OA5DZ,EA4DqB,CA5DrB,EA4DwB,CA5DxB,EA4D2B,OA5D3B,EA4DoC,OA5DpC,EA6DjC,OA7DiC,EA6DxB,OA7DwB,EA6Df,OA7De,EA6DN,OA7DM,EA6DG,OA7DH,EA6DY,OA7DZ,EA6DqB,OA7DrB,EA6D8B,OA7D9B,EA6DuC,CA7DvC,EA6D0C,CA7D1C,EA8DjC,OA9DiC,EA8DxB,CA9DwB,EA8DrB,CA9DqB,EA8DlB,OA9DkB,EA8DT,MA9DS,EA8DD,MA9DC,EA8DO,MA9DP,EA8De,MA9Df,EA8DuB,CA9DvB,EA8D0B,CA9D1B,EA8D6B,CA9D7B,EA8DgC,OA9DhC,EA+DjC,OA/DiC,EA+DxB,OA/DwB,EA+Df,CA/De,EA+DZ,CA/DY,EA+DT,OA/DS,EA+DA,OA/DA,EA+DS,OA/DT,EA+DkB,OA/DlB,EA+D2B,OA/D3B,EA+DoC,OA/DpC,EAgEjC,OAhEiC,EAgExB,CAhEwB,EAgErB,OAhEqB,EAgEZ,OAhEY,EAgEH,CAhEG,EAgEA,OAhEA,EAgES,OAhET,EAgEkB,OAhElB,EAgE2B,CAhE3B,EAgE8B,CAhE9B,EAgEiC,OAhEjC,EAiEjC,OAjEiC,EAiExB,OAjEwB,EAiEf,OAjEe,EAiEN,OAjEM,EAiEG,OAjEH,EAiEY,OAjEZ,EAiEqB,CAjErB,EAiEwB,CAjExB,EAiE2B,CAjE3B,EAiE8B,OAjE9B,EAiEuC,CAjEvC,EAiE0C,CAjE1C,EAkEjC,OAlEiC,EAkExB,CAlEwB,EAkErB,OAlEqB,EAkEZ,OAlEY,EAkEH,OAlEG,EAkEM,OAlEN,EAkEe,OAlEf,EAkEwB,CAlExB,EAkE2B,OAlE3B,EAkEoC,OAlEpC,EAmEjC,OAnEiC,EAmExB,OAnEwB,EAmEf,OAnEe,EAmEN,OAnEM,EAmEG,OAnEH,EAmEY,OAnEZ,EAmEqB,OAnErB,EAmE8B,OAnE9B,EAoEjC,OApEiC,EAoExB,OApEwB,EAoEf,GApEe,EAoEV,OApEU,EAoED,OApEC,EAoEQ,OApER,EAoEiB,OApEjB,EAoE0B,OApE1B,EAoEmC,OApEnC,EAqEjC,OArEiC,EAqExB,OArEwB,EAqEf,OArEe,EAqEN,OArEM,EAqEG,OArEH,EAqEY,OArEZ,EAqEqB,OArErB,EAqE8B,OArE9B,EAsEjC,OAtEiC,EAsExB,OAtEwB,EAsEf,OAtEe,EAsEN,OAtEM,EAsEG,OAtEH,EAsEY,OAtEZ,EAsEqB,OAtErB,EAsE8B,OAtE9B,EAuEjC,OAvEiC,EAuExB,OAvEwB,EAuEf,OAvEe,EAuEN,OAvEM,EAuEG,OAvEH,EAuEY,OAvEZ,EAuEqB,OAvErB,EAuE8B,OAvE9B,EAwEjC,OAxEiC,EAwExB,OAxEwB,EAwEf,OAxEe,EAwEN,OAxEM,EAwEG,OAxEH,EAwEY,OAxEZ,EAwEqB,OAxErB,EAwE8B,OAxE9B,EAyEjC,OAzEiC,EAyExB,OAzEwB,EAyEf,OAzEe,EAyEN,OAzEM,EAyEG,OAzEH,EAyEY,OAzEZ,EAyEqB,OAzErB,EAyE8B,OAzE9B,EA0EjC,OA1EiC,EA0ExB,CA1EwB,EA0ErB,OA1EqB,EA0EZ,OA1EY,EA0EH,CA1EG,EA0EA,OA1EA,EA0ES,OA1ET,EA0EkB,OA1ElB,EA0E2B,OA1E3B,EA0EoC,OA1EpC,EA2EjC,OA3EiC,EA2ExB,OA3EwB,EA2Ef,OA3Ee,EA2EN,OA3EM,EA2EG,OA3EH,EA2EY,CA3EZ,EA2Ee,OA3Ef,EA2EwB,OA3ExB,EA2EiC,CA3EjC,EA2EoC,CA3EpC,EA4EjC,OA5EiC,EA4ExB,OA5EwB,EA4Ef,OA5Ee,EA4EN,MA5EM,EA4EE,CA5EF,EA4EK,CA5EL,EA4EQ,CA5ER,EA4EW,CA5EX,EA4Ec,CA5Ed,EA4EiB,CA5EjB,EA4EoB,CA5EpB,EA4EuB,CA5EvB,EA4E0B,OA5E1B,EA4EmC,OA5EnC,EA6EjC,OA7EiC,EA6ExB,OA7EwB,EA6Ef,CA7Ee,EA6EZ,CA7EY,EA6ET,CA7ES,EA6EN,CA7EM,EA6EH,CA7EG,EA6EA,CA7EA,EA6EG,CA7EH,EA6EM,CA7EN,EA6ES,CA7ET,EA6EY,CA7EZ,EA6Ee,CA7Ef,CAAnC;;AA+EA,MAAMC,6BAA6B;EAAEiB,YAAY,IAAd;EAAoBC,SAAS;AAA7B,CAAnC;;AAIA,MAAMrB,yBAAyB,CAC7B,OAD6B,EACpB,CADoB,EACjB,CADiB,EACd,MADc,EACN,MADM,EACE,OADF,EACW,OADX,EACoB,OADpB,EAC6B,OAD7B,EACsC,OADtC,EAE7B,OAF6B,EAEpB,OAFoB,EAEX,OAFW,EAEF,OAFE,EAEO,OAFP,EAEgB,MAFhB,EAEwB,OAFxB,EAEiC,MAFjC,EAEyC,MAFzC,EAG7B,OAH6B,EAGpB,OAHoB,EAGX,OAHW,EAGF,OAHE,EAGO,OAHP,EAGgB,OAHhB,EAGyB,OAHzB,EAGkC,OAHlC,EAI7B,OAJ6B,EAIpB,OAJoB,EAIX,MAJW,EAIH,CAJG,EAIA,OAJA,EAIS,OAJT,EAIkB,OAJlB,EAI2B,OAJ3B,EAIoC,OAJpC,EAK7B,OAL6B,EAKpB,OALoB,EAKX,OALW,EAKF,OALE,EAKO,OALP,EAKgB,OALhB,EAKyB,OALzB,EAKkC,OALlC,EAM7B,MAN6B,EAMrB,CANqB,EAMlB,OANkB,EAMT,OANS,EAMA,OANA,EAMS,OANT,EAMkB,OANlB,EAM2B,OAN3B,EAMoC,OANpC,EAO7B,OAP6B,EAOpB,OAPoB,EAOX,OAPW,EAOF,OAPE,EAOO,OAPP,EAOgB,OAPhB,EAOyB,OAPzB,EAOkC,OAPlC,EAQ7B,OAR6B,EAQpB,MARoB,EAQZ,MARY,EAQJ,MARI,EAQI,OARJ,EAQa,OARb,EAQsB,OARtB,EAQ+B,OAR/B,EAQwC,OARxC,EAS7B,CAT6B,EAS1B,OAT0B,EASjB,OATiB,EASR,MATQ,EASA,OATA,EASS,OATT,EASkB,OATlB,EAS2B,OAT3B,EASoC,CATpC,EASuC,OATvC,EAU7B,OAV6B,EAUpB,OAVoB,EAUX,OAVW,EAUF,OAVE,EAUO,OAVP,EAUgB,OAVhB,EAUyB,CAVzB,EAU4B,MAV5B,EAUoC,OAVpC,EAU6C,CAV7C,EAW7B,OAX6B,EAWpB,CAXoB,EAWjB,CAXiB,EAWd,CAXc,EAWX,OAXW,EAWF,MAXE,EAWM,OAXN,EAWe,OAXf,EAWwB,OAXxB,EAWiC,OAXjC,EAY7B,OAZ6B,EAYpB,OAZoB,EAYX,OAZW,EAYF,MAZE,EAYM,OAZN,EAYe,OAZf,EAYwB,OAZxB,EAYiC,OAZjC,EAa7B,OAb6B,EAapB,OAboB,EAaX,OAbW,EAaF,OAbE,EAaO,OAbP,EAagB,OAbhB,EAayB,CAbzB,EAa4B,CAb5B,EAa+B,OAb/B,EAawC,CAbxC,EAc7B,MAd6B,EAcrB,MAdqB,EAcb,OAda,EAcJ,CAdI,EAcD,OAdC,EAcQ,OAdR,EAciB,OAdjB,EAc0B,OAd1B,EAcmC,OAdnC,EAe7B,OAf6B,EAepB,OAfoB,EAeX,OAfW,EAeF,OAfE,EAeO,OAfP,EAegB,OAfhB,EAeyB,OAfzB,EAekC,CAflC,EAeqC,OAfrC,EAgB7B,OAhB6B,EAgBpB,OAhBoB,EAgBX,OAhBW,EAgBF,OAhBE,EAgBO,MAhBP,EAgBe,MAhBf,EAgBuB,MAhBvB,EAgB+B,MAhB/B,EAgBuC,OAhBvC,EAiB7B,OAjB6B,EAiBpB,OAjBoB,EAiBX,OAjBW,EAiBF,OAjBE,EAiBO,OAjBP,EAiBgB,OAjBhB,EAiByB,OAjBzB,EAiBkC,OAjBlC,EAkB7B,OAlB6B,EAkBpB,OAlBoB,EAkBX,OAlBW,EAkBF,OAlBE,EAkBO,OAlBP,EAkBgB,OAlBhB,EAkByB,OAlBzB,EAkBkC,OAlBlC,EAmB7B,OAnB6B,EAmBpB,OAnBoB,EAmBX,OAnBW,EAmBF,OAnBE,EAmBO,OAnBP,EAmBgB,OAnBhB,EAmByB,CAnBzB,EAmB4B,OAnB5B,EAmBqC,OAnBrC,EAoB7B,OApB6B,EAoBpB,OApBoB,EAoBX,MApBW,EAoBH,MApBG,EAoBK,MApBL,EAoBa,MApBb,EAoBqB,OApBrB,EAoB8B,OApB9B,EAoBuC,OApBvC,EAqB7B,OArB6B,EAqBpB,OArBoB,EAqBX,OArBW,EAqBF,OArBE,EAqBO,OArBP,EAqBgB,OArBhB,EAqByB,OArBzB,EAqBkC,OArBlC,EAsB7B,OAtB6B,EAsBpB,OAtBoB,EAsBX,CAtBW,EAsBR,OAtBQ,EAsBC,CAtBD,EAsBI,OAtBJ,EAsBa,OAtBb,EAsBsB,OAtBtB,EAsB+B,OAtB/B,EAsBwC,OAtBxC,EAuB7B,OAvB6B,EAuBpB,OAvBoB,EAuBX,CAvBW,EAuBR,OAvBQ,EAuBC,CAvBD,EAuBI,OAvBJ,EAuBa,CAvBb,EAuBgB,OAvBhB,EAuByB,CAvBzB,EAuB4B,OAvB5B,EAuBqC,MAvBrC,EAwB7B,OAxB6B,EAwBpB,OAxBoB,EAwBX,OAxBW,EAwBF,OAxBE,EAwBO,OAxBP,EAwBgB,OAxBhB,EAwByB,OAxBzB,EAwBkC,OAxBlC,EAyB7B,OAzB6B,EAyBpB,OAzBoB,EAyBX,OAzBW,EAyBF,OAzBE,EAyBO,OAzBP,EAyBgB,OAzBhB,EAyByB,OAzBzB,EAyBkC,OAzBlC,EA0B7B,OA1B6B,EA0BpB,OA1BoB,EA0BX,OA1BW,EA0BF,OA1BE,EA0BO,OA1BP,EA0BgB,OA1BhB,EA0ByB,OA1BzB,EA0BkC,OA1BlC,EA2B7B,MA3B6B,EA2BrB,MA3BqB,EA2Bb,MA3Ba,EA2BL,MA3BK,EA2BG,MA3BH,EA2BW,MA3BX,EA2BmB,MA3BnB,EA2B2B,OA3B3B,EA2BoC,MA3BpC,EA4B7B,MA5B6B,EA4BrB,OA5BqB,EA4BZ,OA5BY,EA4BH,CA5BG,EA4BA,OA5BA,EA4BS,OA5BT,EA4BkB,CA5BlB,EA4BqB,CA5BrB,EA4BwB,OA5BxB,EA4BiC,OA5BjC,EA6B7B,OA7B6B,EA6BpB,OA7BoB,EA6BX,OA7BW,EA6BF,OA7BE,EA6BO,OA7BP,EA6BgB,OA7BhB,EA6ByB,OA7BzB,EA6BkC,OA7BlC,EA8B7B,OA9B6B,EA8BpB,OA9BoB,EA8BX,OA9BW,EA8BF,OA9BE,EA8BO,OA9BP,EA8BgB,OA9BhB,EA8ByB,OA9BzB,EA8BkC,MA9BlC,EA+B7B,OA/B6B,EA+BpB,OA/BoB,EA+BX,OA/BW,EA+BF,OA/BE,EA+BO,OA/BP,EA+BgB,OA/BhB,EA+ByB,OA/BzB,EA+BkC,CA/BlC,EA+BqC,OA/BrC,EAgC7B,OAhC6B,EAgCpB,OAhCoB,EAgCX,OAhCW,EAgCF,OAhCE,EAgCO,OAhCP,EAgCgB,OAhChB,EAgCyB,OAhCzB,EAgCkC,CAhClC,EAgCqC,OAhCrC,EAgC8C,CAhC9C,EAiC7B,OAjC6B,EAiCpB,CAjCoB,EAiCjB,OAjCiB,EAiCR,CAjCQ,EAiCL,OAjCK,EAiCI,MAjCJ,EAiCY,OAjCZ,EAiCqB,OAjCrB,EAiC8B,OAjC9B,EAiCuC,MAjCvC,EAkC7B,OAlC6B,EAkCpB,OAlCoB,EAkCX,OAlCW,EAkCF,OAlCE,EAkCO,OAlCP,EAkCgB,OAlChB,EAkCyB,OAlCzB,EAkCkC,OAlClC,EAmC7B,OAnC6B,EAmCpB,OAnCoB,EAmCX,OAnCW,EAmCF,OAnCE,EAmCO,OAnCP,EAmCgB,OAnChB,EAmCyB,OAnCzB,EAmCkC,CAnClC,EAmCqC,OAnCrC,EAoC7B,OApC6B,EAoCpB,CApCoB,EAoCjB,OApCiB,EAoCR,CApCQ,EAoCL,OApCK,EAoCI,CApCJ,EAoCO,OApCP,EAoCgB,OApChB,EAoCyB,OApCzB,EAoCkC,OApClC,EAoC2C,CApC3C,EAqC7B,OArC6B,EAqCpB,OArCoB,EAqCX,OArCW,EAqCF,OArCE,EAqCO,CArCP,EAqCU,OArCV,EAqCmB,MArCnB,EAqC2B,OArC3B,EAqCoC,OArCpC,EAsC7B,OAtC6B,EAsCpB,OAtCoB,EAsCX,OAtCW,EAsCF,OAtCE,EAsCO,OAtCP,EAsCgB,OAtChB,EAsCyB,OAtCzB,EAsCkC,OAtClC,EAuC7B,OAvC6B,EAuCpB,OAvCoB,EAuCX,CAvCW,EAuCR,OAvCQ,EAuCC,OAvCD,EAuCU,OAvCV,EAuCmB,OAvCnB,EAuC4B,OAvC5B,EAuCqC,OAvCrC,EAwC7B,OAxC6B,EAwCpB,OAxCoB,EAwCX,OAxCW,EAwCF,OAxCE,EAwCO,OAxCP,EAwCgB,OAxChB,EAwCyB,OAxCzB,EAwCkC,OAxClC,EAyC7B,OAzC6B,EAyCpB,MAzCoB,EAyCZ,OAzCY,EAyCH,OAzCG,EAyCM,OAzCN,EAyCe,OAzCf,EAyCwB,OAzCxB,EAyCiC,OAzCjC,EA0C7B,OA1C6B,EA0CpB,OA1CoB,EA0CX,OA1CW,EA0CF,OA1CE,EA0CO,OA1CP,EA0CgB,MA1ChB,EA0CwB,OA1CxB,EA0CiC,OA1CjC,EA0C0C,CA1C1C,EA2C7B,MA3C6B,EA2CrB,OA3CqB,EA2CZ,OA3CY,EA2CH,OA3CG,EA2CM,OA3CN,EA2Ce,OA3Cf,EA2CwB,OA3CxB,EA2CiC,OA3CjC,EA4C7B,OA5C6B,EA4CpB,CA5CoB,EA4CjB,MA5CiB,EA4CT,OA5CS,EA4CA,OA5CA,EA4CS,OA5CT,EA4CkB,OA5ClB,EA4C2B,OA5C3B,EA4CoC,CA5CpC,EA4CuC,OA5CvC,EA6C7B,OA7C6B,EA6CpB,CA7CoB,EA6CjB,MA7CiB,EA6CT,OA7CS,EA6CA,OA7CA,EA6CS,OA7CT,EA6CkB,CA7ClB,EA6CqB,OA7CrB,EA6C8B,OA7C9B,EA6CuC,OA7CvC,EA8C7B,OA9C6B,EA8CpB,OA9CoB,EA8CX,OA9CW,EA8CF,OA9CE,EA8CO,OA9CP,EA8CgB,OA9ChB,EA8CyB,OA9CzB,EA8CkC,OA9ClC,EA+C7B,OA/C6B,EA+CpB,OA/CoB,EA+CX,OA/CW,EA+CF,OA/CE,EA+CO,MA/CP,EA+Ce,OA/Cf,EA+CwB,OA/CxB,EA+CiC,MA/CjC,EA+CyC,MA/CzC,EAgD7B,CAhD6B,EAgD1B,OAhD0B,EAgDjB,OAhDiB,EAgDR,OAhDQ,EAgDC,MAhDD,EAgDS,OAhDT,EAgDkB,OAhDlB,EAgD2B,OAhD3B,EAgDoC,OAhDpC,EAiD7B,OAjD6B,EAiDpB,OAjDoB,EAiDX,MAjDW,EAiDH,OAjDG,EAiDM,OAjDN,EAiDe,OAjDf,EAiDwB,OAjDxB,EAiDiC,OAjDjC,EAkD7B,OAlD6B,EAkDpB,MAlDoB,EAkDZ,OAlDY,EAkDH,OAlDG,EAkDM,OAlDN,EAkDe,OAlDf,EAkDwB,OAlDxB,EAkDiC,OAlDjC,EAmD7B,OAnD6B,EAmDpB,OAnDoB,EAmDX,OAnDW,EAmDF,MAnDE,EAmDM,OAnDN,EAmDe,OAnDf,EAmDwB,MAnDxB,EAmDgC,OAnDhC,EAmDyC,OAnDzC,EAoD7B,OApD6B,EAoDpB,OApDoB,EAoDX,OApDW,EAoDF,OApDE,EAoDO,OApDP,EAoDgB,OApDhB,EAoDyB,OApDzB,EAoDkC,OApDlC,EAqD7B,OArD6B,EAqDpB,OArDoB,EAqDX,OArDW,EAqDF,OArDE,EAqDO,OArDP,EAqDgB,OArDhB,EAqDyB,OArDzB,EAqDkC,OArDlC,EAsD7B,OAtD6B,EAsDpB,OAtDoB,EAsDX,OAtDW,EAsDF,OAtDE,EAsDO,OAtDP,EAsDgB,OAtDhB,EAsDyB,OAtDzB,EAsDkC,CAtDlC,EAsDqC,OAtDrC,EAsD8C,CAtD9C,EAuD7B,OAvD6B,EAuDpB,CAvDoB,EAuDjB,OAvDiB,EAuDR,OAvDQ,EAuDC,OAvDD,EAuDU,OAvDV,EAuDmB,OAvDnB,EAuD4B,OAvD5B,EAuDqC,OAvDrC,EAwD7B,OAxD6B,EAwDpB,OAxDoB,EAwDX,OAxDW,EAwDF,OAxDE,EAwDO,OAxDP,EAwDgB,OAxDhB,EAwDyB,OAxDzB,EAwDkC,MAxDlC,EAwD0C,CAxD1C,EAyD7B,OAzD6B,EAyDpB,OAzDoB,EAyDX,OAzDW,EAyDF,OAzDE,EAyDO,OAzDP,EAyDgB,OAzDhB,EAyDyB,OAzDzB,EAyDkC,OAzDlC,EAyD2C,CAzD3C,EA0D7B,OA1D6B,EA0DpB,CA1DoB,EA0DjB,CA1DiB,EA0Dd,OA1Dc,EA0DL,OA1DK,EA0DI,OA1DJ,EA0Da,OA1Db,EA0DsB,OA1DtB,EA0D+B,OA1D/B,EA0DwC,OA1DxC,EA2D7B,OA3D6B,EA2DpB,OA3DoB,EA2DX,CA3DW,EA2DR,CA3DQ,EA2DL,CA3DK,EA2DF,OA3DE,EA2DO,CA3DP,EA2DU,CA3DV,EA2Da,OA3Db,EA2DsB,OA3DtB,EA2D+B,OA3D/B,EA2DwC,OA3DxC,EA4D7B,OA5D6B,EA4DpB,OA5DoB,EA4DX,OA5DW,EA4DF,OA5DE,EA4DO,OA5DP,EA4DgB,OA5DhB,EA4DyB,OA5DzB,EA4DkC,CA5DlC,EA4DqC,CA5DrC,EA4DwC,OA5DxC,EA6D7B,OA7D6B,EA6DpB,OA7DoB,EA6DX,OA7DW,EA6DF,CA7DE,EA6DC,OA7DD,EA6DU,OA7DV,EA6DmB,CA7DnB,EA6DsB,OA7DtB,EA6D+B,OA7D/B,EA6DwC,OA7DxC,EA8D7B,OA9D6B,EA8DpB,OA9DoB,EA8DX,OA9DW,EA8DF,OA9DE,EA8DO,CA9DP,EA8DU,OA9DV,EA8DmB,OA9DnB,EA8D4B,OA9D5B,EA8DqC,OA9DrC,EA+D7B,OA/D6B,EA+DpB,OA/DoB,EA+DX,OA/DW,EA+DF,CA/DE,EA+DC,OA/DD,EA+DU,CA/DV,EA+Da,CA/Db,EA+DgB,CA/DhB,EA+DmB,CA/DnB,EA+DsB,OA/DtB,EA+D+B,CA/D/B,EA+DkC,OA/DlC,EAgE7B,OAhE6B,EAgEpB,OAhEoB,EAgEX,MAhEW,EAgEH,OAhEG,EAgEM,CAhEN,EAgES,OAhET,EAgEkB,OAhElB,EAgE2B,OAhE3B,EAgEoC,OAhEpC,EAiE7B,OAjE6B,EAiEpB,OAjEoB,EAiEX,OAjEW,EAiEF,OAjEE,EAiEO,OAjEP,EAiEgB,OAjEhB,EAiEyB,OAjEzB,EAiEkC,OAjElC,EAiE2C,GAjE3C,EAkE7B,OAlE6B,EAkEpB,OAlEoB,EAkEX,OAlEW,EAkEF,OAlEE,EAkEO,OAlEP,EAkEgB,OAlEhB,EAkEyB,OAlEzB,EAkEkC,OAlElC,EAmE7B,OAnE6B,EAmEpB,OAnEoB,EAmEX,OAnEW,EAmEF,OAnEE,EAmEO,OAnEP,EAmEgB,OAnEhB,EAmEyB,OAnEzB,EAmEkC,OAnElC,EAoE7B,OApE6B,EAoEpB,OApEoB,EAoEX,OApEW,EAoEF,OApEE,EAoEO,OApEP,EAoEgB,OApEhB,EAoEyB,OApEzB,EAoEkC,OApElC,EAqE7B,OArE6B,EAqEpB,OArEoB,EAqEX,OArEW,EAqEF,OArEE,EAqEO,OArEP,EAqEgB,OArEhB,EAqEyB,OArEzB,EAqEkC,OArElC,EAsE7B,OAtE6B,EAsEpB,OAtEoB,EAsEX,OAtEW,EAsEF,OAtEE,EAsEO,OAtEP,EAsEgB,OAtEhB,EAsEyB,OAtEzB,EAsEkC,OAtElC,EAuE7B,OAvE6B,EAuEpB,OAvEoB,EAuEX,OAvEW,EAuEF,OAvEE,EAuEO,OAvEP,EAuEgB,OAvEhB,EAuEyB,OAvEzB,EAuEkC,CAvElC,EAuEqC,OAvErC,EAwE7B,OAxE6B,EAwEpB,CAxEoB,EAwEjB,OAxEiB,EAwER,OAxEQ,EAwEC,OAxED,EAwEU,OAxEV,EAwEmB,OAxEnB,EAwE4B,OAxE5B,EAwEqC,OAxErC,EAyE7B,OAzE6B,EAyEpB,OAzEoB,EAyEX,OAzEW,EAyEF,CAzEE,EAyEC,OAzED,EAyEU,OAzEV,EAyEmB,CAzEnB,EAyEsB,CAzEtB,EAyEyB,OAzEzB,EAyEkC,OAzElC,EA0E7B,OA1E6B,EA0EpB,MA1EoB,EA0EZ,CA1EY,EA0ET,CA1ES,EA0EN,CA1EM,EA0EH,CA1EG,EA0EA,CA1EA,EA0EG,CA1EH,EA0EM,CA1EN,EA0ES,CA1ET,EA0EY,OA1EZ,EA0EqB,OA1ErB,EA0E8B,OA1E9B,EA0EuC,OA1EvC,EA2E7B,CA3E6B,EA2E1B,CA3E0B,EA2EvB,CA3EuB,EA2EpB,CA3EoB,EA2EjB,CA3EiB,EA2Ed,CA3Ec,EA2EX,CA3EW,EA2ER,CA3EQ,EA2EL,CA3EK,EA2EF,CA3EE,EA2EC,CA3ED,CAA/B;;AA6EA,MAAMC,yBAAyB;EAAEmB,YAAY,IAAd;EAAoBC,SAAS;AAA7B,CAA/B;;AAIA,MAAMzB,0BAA0B,CAC9B,OAD8B,EACrB,CADqB,EAClB,CADkB,EACf,MADe,EACP,MADO,EACC,OADD,EACU,OADV,EACmB,OADnB,EAC4B,OAD5B,EACqC,OADrC,EAE9B,OAF8B,EAErB,OAFqB,EAEZ,OAFY,EAEH,OAFG,EAEM,OAFN,EAEe,MAFf,EAEuB,OAFvB,EAEgC,MAFhC,EAEwC,MAFxC,EAG9B,OAH8B,EAGrB,OAHqB,EAGZ,OAHY,EAGH,OAHG,EAGM,OAHN,EAGe,OAHf,EAGwB,OAHxB,EAGiC,OAHjC,EAI9B,OAJ8B,EAIrB,OAJqB,EAIZ,MAJY,EAIJ,CAJI,EAID,OAJC,EAIQ,OAJR,EAIiB,OAJjB,EAI0B,OAJ1B,EAImC,OAJnC,EAK9B,OAL8B,EAKrB,OALqB,EAKZ,OALY,EAKH,OALG,EAKM,OALN,EAKe,OALf,EAKwB,OALxB,EAKiC,OALjC,EAM9B,MAN8B,EAMtB,CANsB,EAMnB,OANmB,EAMV,OANU,EAMD,OANC,EAMQ,OANR,EAMiB,OANjB,EAM0B,OAN1B,EAMmC,OANnC,EAO9B,OAP8B,EAOrB,OAPqB,EAOZ,OAPY,EAOH,OAPG,EAOM,OAPN,EAOe,OAPf,EAOwB,OAPxB,EAOiC,OAPjC,EAQ9B,OAR8B,EAQrB,MARqB,EAQb,MARa,EAQL,MARK,EAQG,OARH,EAQY,OARZ,EAQqB,OARrB,EAQ8B,OAR9B,EAQuC,OARvC,EAS9B,CAT8B,EAS3B,OAT2B,EASlB,OATkB,EAST,MATS,EASD,OATC,EASQ,OATR,EASiB,OATjB,EAS0B,OAT1B,EASmC,CATnC,EASsC,OATtC,EAU9B,OAV8B,EAUrB,OAVqB,EAUZ,OAVY,EAUH,OAVG,EAUM,OAVN,EAUe,OAVf,EAUwB,CAVxB,EAU2B,MAV3B,EAUmC,OAVnC,EAU4C,CAV5C,EAW9B,OAX8B,EAWrB,CAXqB,EAWlB,CAXkB,EAWf,CAXe,EAWZ,OAXY,EAWH,MAXG,EAWK,OAXL,EAWc,OAXd,EAWuB,OAXvB,EAWgC,OAXhC,EAY9B,OAZ8B,EAYrB,OAZqB,EAYZ,OAZY,EAYH,MAZG,EAYK,OAZL,EAYc,OAZd,EAYuB,OAZvB,EAYgC,OAZhC,EAa9B,OAb8B,EAarB,OAbqB,EAaZ,OAbY,EAaH,OAbG,EAaM,OAbN,EAae,OAbf,EAawB,CAbxB,EAa2B,CAb3B,EAa8B,OAb9B,EAauC,CAbvC,EAc9B,MAd8B,EActB,MAdsB,EAcd,OAdc,EAcL,CAdK,EAcF,OAdE,EAcO,OAdP,EAcgB,OAdhB,EAcyB,OAdzB,EAckC,OAdlC,EAe9B,OAf8B,EAerB,OAfqB,EAeZ,OAfY,EAeH,OAfG,EAeM,OAfN,EAee,OAff,EAewB,OAfxB,EAeiC,CAfjC,EAeoC,OAfpC,EAgB9B,OAhB8B,EAgBrB,OAhBqB,EAgBZ,OAhBY,EAgBH,OAhBG,EAgBM,MAhBN,EAgBc,MAhBd,EAgBsB,MAhBtB,EAgB8B,MAhB9B,EAgBsC,OAhBtC,EAiB9B,OAjB8B,EAiBrB,OAjBqB,EAiBZ,OAjBY,EAiBH,OAjBG,EAiBM,OAjBN,EAiBe,OAjBf,EAiBwB,OAjBxB,EAiBiC,OAjBjC,EAkB9B,OAlB8B,EAkBrB,OAlBqB,EAkBZ,OAlBY,EAkBH,OAlBG,EAkBM,OAlBN,EAkBe,OAlBf,EAkBwB,OAlBxB,EAkBiC,OAlBjC,EAmB9B,OAnB8B,EAmBrB,OAnBqB,EAmBZ,OAnBY,EAmBH,OAnBG,EAmBM,OAnBN,EAmBe,OAnBf,EAmBwB,CAnBxB,EAmB2B,OAnB3B,EAmBoC,OAnBpC,EAoB9B,OApB8B,EAoBrB,OApBqB,EAoBZ,MApBY,EAoBJ,MApBI,EAoBI,MApBJ,EAoBY,MApBZ,EAoBoB,OApBpB,EAoB6B,OApB7B,EAoBsC,OApBtC,EAqB9B,OArB8B,EAqBrB,OArBqB,EAqBZ,OArBY,EAqBH,OArBG,EAqBM,OArBN,EAqBe,OArBf,EAqBwB,OArBxB,EAqBiC,OArBjC,EAsB9B,OAtB8B,EAsBrB,OAtBqB,EAsBZ,CAtBY,EAsBT,OAtBS,EAsBA,CAtBA,EAsBG,OAtBH,EAsBY,OAtBZ,EAsBqB,OAtBrB,EAsB8B,OAtB9B,EAsBuC,OAtBvC,EAuB9B,OAvB8B,EAuBrB,OAvBqB,EAuBZ,CAvBY,EAuBT,OAvBS,EAuBA,CAvBA,EAuBG,OAvBH,EAuBY,CAvBZ,EAuBe,OAvBf,EAuBwB,CAvBxB,EAuB2B,OAvB3B,EAuBoC,OAvBpC,EAwB9B,OAxB8B,EAwBrB,OAxBqB,EAwBZ,OAxBY,EAwBH,OAxBG,EAwBM,OAxBN,EAwBe,OAxBf,EAwBwB,OAxBxB,EAwBiC,OAxBjC,EAyB9B,OAzB8B,EAyBrB,OAzBqB,EAyBZ,OAzBY,EAyBH,OAzBG,EAyBM,OAzBN,EAyBe,OAzBf,EAyBwB,OAzBxB,EAyBiC,OAzBjC,EA0B9B,OA1B8B,EA0BrB,OA1BqB,EA0BZ,OA1BY,EA0BH,OA1BG,EA0BM,OA1BN,EA0Be,OA1Bf,EA0BwB,OA1BxB,EA0BiC,OA1BjC,EA2B9B,MA3B8B,EA2BtB,MA3BsB,EA2Bd,MA3Bc,EA2BN,MA3BM,EA2BE,MA3BF,EA2BU,MA3BV,EA2BkB,MA3BlB,EA2B0B,OA3B1B,EA2BmC,MA3BnC,EA4B9B,MA5B8B,EA4BtB,OA5BsB,EA4Bb,OA5Ba,EA4BJ,CA5BI,EA4BD,OA5BC,EA4BQ,OA5BR,EA4BiB,CA5BjB,EA4BoB,CA5BpB,EA4BuB,OA5BvB,EA4BgC,OA5BhC,EA6B9B,OA7B8B,EA6BrB,OA7BqB,EA6BZ,OA7BY,EA6BH,OA7BG,EA6BM,OA7BN,EA6Be,OA7Bf,EA6BwB,OA7BxB,EA6BiC,OA7BjC,EA8B9B,OA9B8B,EA8BrB,OA9BqB,EA8BZ,OA9BY,EA8BH,OA9BG,EA8BM,OA9BN,EA8Be,OA9Bf,EA8BwB,OA9BxB,EA8BiC,MA9BjC,EA+B9B,OA/B8B,EA+BrB,OA/BqB,EA+BZ,OA/BY,EA+BH,OA/BG,EA+BM,OA/BN,EA+Be,OA/Bf,EA+BwB,OA/BxB,EA+BiC,CA/BjC,EA+BoC,OA/BpC,EAgC9B,OAhC8B,EAgCrB,OAhCqB,EAgCZ,OAhCY,EAgCH,OAhCG,EAgCM,OAhCN,EAgCe,OAhCf,EAgCwB,OAhCxB,EAgCiC,CAhCjC,EAgCoC,OAhCpC,EAgC6C,CAhC7C,EAiC9B,OAjC8B,EAiCrB,CAjCqB,EAiClB,OAjCkB,EAiCT,CAjCS,EAiCN,OAjCM,EAiCG,MAjCH,EAiCW,OAjCX,EAiCoB,OAjCpB,EAiC6B,OAjC7B,EAiCsC,MAjCtC,EAkC9B,OAlC8B,EAkCrB,OAlCqB,EAkCZ,OAlCY,EAkCH,OAlCG,EAkCM,OAlCN,EAkCe,OAlCf,EAkCwB,OAlCxB,EAkCiC,OAlCjC,EAmC9B,OAnC8B,EAmCrB,OAnCqB,EAmCZ,OAnCY,EAmCH,OAnCG,EAmCM,OAnCN,EAmCe,OAnCf,EAmCwB,OAnCxB,EAmCiC,CAnCjC,EAmCoC,OAnCpC,EAoC9B,OApC8B,EAoCrB,CApCqB,EAoClB,OApCkB,EAoCT,CApCS,EAoCN,OApCM,EAoCG,CApCH,EAoCM,OApCN,EAoCe,OApCf,EAoCwB,OApCxB,EAoCiC,OApCjC,EAoC0C,CApC1C,EAqC9B,OArC8B,EAqCrB,OArCqB,EAqCZ,OArCY,EAqCH,OArCG,EAqCM,CArCN,EAqCS,OArCT,EAqCkB,MArClB,EAqC0B,OArC1B,EAqCmC,OArCnC,EAsC9B,OAtC8B,EAsCrB,OAtCqB,EAsCZ,OAtCY,EAsCH,OAtCG,EAsCM,OAtCN,EAsCe,OAtCf,EAsCwB,OAtCxB,EAsCiC,OAtCjC,EAuC9B,OAvC8B,EAuCrB,OAvCqB,EAuCZ,CAvCY,EAuCT,OAvCS,EAuCA,OAvCA,EAuCS,OAvCT,EAuCkB,OAvClB,EAuC2B,OAvC3B,EAuCoC,OAvCpC,EAwC9B,OAxC8B,EAwCrB,OAxCqB,EAwCZ,OAxCY,EAwCH,MAxCG,EAwCK,OAxCL,EAwCc,OAxCd,EAwCuB,OAxCvB,EAwCgC,OAxChC,EAyC9B,OAzC8B,EAyCrB,MAzCqB,EAyCb,OAzCa,EAyCJ,OAzCI,EAyCK,OAzCL,EAyCc,OAzCd,EAyCuB,OAzCvB,EAyCgC,OAzChC,EA0C9B,OA1C8B,EA0CrB,OA1CqB,EA0CZ,OA1CY,EA0CH,OA1CG,EA0CM,OA1CN,EA0Ce,OA1Cf,EA0CwB,OA1CxB,EA0CiC,OA1CjC,EA0C0C,CA1C1C,EA2C9B,MA3C8B,EA2CtB,OA3CsB,EA2Cb,OA3Ca,EA2CJ,OA3CI,EA2CK,OA3CL,EA2Cc,OA3Cd,EA2CuB,OA3CvB,EA2CgC,OA3ChC,EA4C9B,OA5C8B,EA4CrB,CA5CqB,EA4ClB,OA5CkB,EA4CT,OA5CS,EA4CA,OA5CA,EA4CS,OA5CT,EA4CkB,OA5ClB,EA4C2B,OA5C3B,EA4CoC,CA5CpC,EA4CuC,CA5CvC,EA6C9B,OA7C8B,EA6CrB,CA7CqB,EA6ClB,OA7CkB,EA6CT,OA7CS,EA6CA,OA7CA,EA6CS,OA7CT,EA6CkB,CA7ClB,EA6CqB,MA7CrB,EA6C6B,OA7C7B,EA6CsC,OA7CtC,EA8C9B,OA9C8B,EA8CrB,OA9CqB,EA8CZ,OA9CY,EA8CH,OA9CG,EA8CM,OA9CN,EA8Ce,OA9Cf,EA8CwB,OA9CxB,EA8CiC,OA9CjC,EA+C9B,OA/C8B,EA+CrB,OA/CqB,EA+CZ,OA/CY,EA+CH,OA/CG,EA+CM,OA/CN,EA+Ce,OA/Cf,EA+CwB,OA/CxB,EA+CiC,MA/CjC,EA+CyC,MA/CzC,EAgD9B,CAhD8B,EAgD3B,OAhD2B,EAgDlB,OAhDkB,EAgDT,CAhDS,EAgDN,OAhDM,EAgDG,OAhDH,EAgDY,MAhDZ,EAgDoB,OAhDpB,EAgD6B,OAhD7B,EAgDsC,OAhDtC,EAiD9B,OAjD8B,EAiDrB,OAjDqB,EAiDZ,OAjDY,EAiDH,OAjDG,EAiDM,OAjDN,EAiDe,OAjDf,EAiDwB,OAjDxB,EAiDiC,OAjDjC,EAkD9B,OAlD8B,EAkDrB,OAlDqB,EAkDZ,OAlDY,EAkDH,OAlDG,EAkDM,OAlDN,EAkDe,OAlDf,EAkDwB,OAlDxB,EAkDiC,OAlDjC,EAmD9B,OAnD8B,EAmDrB,MAnDqB,EAmDb,OAnDa,EAmDJ,OAnDI,EAmDK,OAnDL,EAmDc,OAnDd,EAmDuB,OAnDvB,EAmDgC,OAnDhC,EAoD9B,OApD8B,EAoDrB,OApDqB,EAoDZ,OApDY,EAoDH,OApDG,EAoDM,OApDN,EAoDe,OApDf,EAoDwB,OApDxB,EAoDiC,OApDjC,EAqD9B,OArD8B,EAqDrB,MArDqB,EAqDb,OArDa,EAqDJ,OArDI,EAqDK,OArDL,EAqDc,OArDd,EAqDuB,OArDvB,EAqDgC,OArDhC,EAsD9B,OAtD8B,EAsDrB,OAtDqB,EAsDZ,OAtDY,EAsDH,OAtDG,EAsDM,OAtDN,EAsDe,OAtDf,EAsDwB,OAtDxB,EAsDiC,CAtDjC,EAsDoC,OAtDpC,EAsD6C,CAtD7C,EAuD9B,MAvD8B,EAuDtB,CAvDsB,EAuDnB,OAvDmB,EAuDV,OAvDU,EAuDD,OAvDC,EAuDQ,MAvDR,EAuDgB,CAvDhB,EAuDmB,OAvDnB,EAuD4B,OAvD5B,EAuDqC,MAvDrC,EAuD6C,CAvD7C,EAwD9B,OAxD8B,EAwDrB,OAxDqB,EAwDZ,OAxDY,EAwDH,OAxDG,EAwDM,MAxDN,EAwDc,MAxDd,EAwDsB,CAxDtB,EAwDyB,OAxDzB,EAwDkC,MAxDlC,EAyD9B,OAzD8B,EAyDrB,OAzDqB,EAyDZ,OAzDY,EAyDH,OAzDG,EAyDM,OAzDN,EAyDe,OAzDf,EAyDwB,CAzDxB,EAyD2B,OAzD3B,EAyDoC,CAzDpC,EAyDuC,CAzDvC,EA0D9B,OA1D8B,EA0DrB,OA1DqB,EA0DZ,OA1DY,EA0DH,OA1DG,EA0DM,OA1DN,EA0De,OA1Df,EA0DwB,OA1DxB,EA0DiC,OA1DjC,EA2D9B,OA3D8B,EA2DrB,CA3DqB,EA2DlB,CA3DkB,EA2Df,CA3De,EA2DZ,OA3DY,EA2DH,CA3DG,EA2DA,CA3DA,EA2DG,OA3DH,EA2DY,OA3DZ,EA2DqB,OA3DrB,EA2D8B,OA3D9B,EA2DuC,OA3DvC,EA4D9B,OA5D8B,EA4DrB,OA5DqB,EA4DZ,OA5DY,EA4DH,OA5DG,EA4DM,OA5DN,EA4De,OA5Df,EA4DwB,CA5DxB,EA4D2B,CA5D3B,EA4D8B,OA5D9B,EA4DuC,OA5DvC,EA6D9B,OA7D8B,EA6DrB,OA7DqB,EA6DZ,CA7DY,EA6DT,OA7DS,EA6DA,OA7DA,EA6DS,CA7DT,EA6DY,OA7DZ,EA6DqB,OA7DrB,EA6D8B,OA7D9B,EA6DuC,OA7DvC,EA8D9B,OA9D8B,EA8DrB,OA9DqB,EA8DZ,OA9DY,EA8DH,CA9DG,EA8DA,OA9DA,EA8DS,OA9DT,EA8DkB,OA9DlB,EA8D2B,OA9D3B,EA8DoC,OA9DpC,EA+D9B,OA/D8B,EA+DrB,CA/DqB,EA+DlB,CA/DkB,EA+Df,CA/De,EA+DZ,CA/DY,EA+DT,CA/DS,EA+DN,CA/DM,EA+DH,CA/DG,EA+DA,OA/DA,EA+DS,CA/DT,EA+DY,OA/DZ,EA+DqB,OA/DrB,EA+D8B,OA/D9B,EA+DuC,MA/DvC,EAgE9B,OAhE8B,EAgErB,CAhEqB,EAgElB,OAhEkB,EAgET,OAhES,EAgEA,OAhEA,EAgES,OAhET,EAgEkB,OAhElB,EAgE2B,OAhE3B,EAgEoC,OAhEpC,EAiE9B,OAjE8B,EAiErB,OAjEqB,EAiEZ,OAjEY,EAiEH,OAjEG,EAiEM,OAjEN,EAiEe,GAjEf,EAiEoB,OAjEpB,EAiE6B,OAjE7B,EAiEsC,OAjEtC,EAkE9B,OAlE8B,EAkErB,OAlEqB,EAkEZ,OAlEY,EAkEH,OAlEG,EAkEM,OAlEN,EAkEe,OAlEf,EAkEwB,OAlExB,EAkEiC,OAlEjC,EAmE9B,OAnE8B,EAmErB,OAnEqB,EAmEZ,OAnEY,EAmEH,OAnEG,EAmEM,OAnEN,EAmEe,OAnEf,EAmEwB,OAnExB,EAmEiC,OAnEjC,EAoE9B,OApE8B,EAoErB,OApEqB,EAoEZ,OApEY,EAoEH,OApEG,EAoEM,OApEN,EAoEe,OApEf,EAoEwB,OApExB,EAoEiC,OApEjC,EAqE9B,OArE8B,EAqErB,OArEqB,EAqEZ,OArEY,EAqEH,OArEG,EAqEM,OArEN,EAqEe,OArEf,EAqEwB,OArExB,EAqEiC,OArEjC,EAsE9B,OAtE8B,EAsErB,OAtEqB,EAsEZ,OAtEY,EAsEH,OAtEG,EAsEM,OAtEN,EAsEe,OAtEf,EAsEwB,OAtExB,EAsEiC,OAtEjC,EAuE9B,OAvE8B,EAuErB,OAvEqB,EAuEZ,OAvEY,EAuEH,OAvEG,EAuEM,CAvEN,EAuES,OAvET,EAuEkB,OAvElB,EAuE2B,CAvE3B,EAuE8B,OAvE9B,EAuEuC,OAvEvC,EAwE9B,OAxE8B,EAwErB,OAxEqB,EAwEZ,OAxEY,EAwEH,OAxEG,EAwEM,OAxEN,EAwEe,OAxEf,EAwEwB,OAxExB,EAwEiC,OAxEjC,EAwE0C,CAxE1C,EAyE9B,OAzE8B,EAyErB,OAzEqB,EAyEZ,CAzEY,EAyET,CAzES,EAyEN,OAzEM,EAyEG,OAzEH,EAyEY,OAzEZ,EAyEqB,MAzErB,EAyE6B,CAzE7B,EAyEgC,CAzEhC,EAyEmC,CAzEnC,EAyEsC,CAzEtC,EAyEyC,CAzEzC,EAyE4C,CAzE5C,EA0E9B,CA1E8B,EA0E3B,CA1E2B,EA0ExB,CA1EwB,EA0ErB,CA1EqB,EA0ElB,CA1EkB,EA0Ef,CA1Ee,EA0EZ,CA1EY,EA0ET,CA1ES,EA0EN,CA1EM,EA0EH,CA1EG,EA0EA,CA1EA,EA0EG,CA1EH,EA0EM,CA1EN,EA0ES,CA1ET,EA0EY,CA1EZ,EA0Ee,CA1Ef,EA0EkB,CA1ElB,CAAhC;;AA4EA,MAAMC,0BAA0B;EAAEuB,YAAY,GAAd;EAAmBC,SAAS;AAA5B,CAAhC;;;;;;;;;;;;;ACpUA,MAAMvD,2BAA2B,CAC/B,GAD+B,EAC1B,CAD0B,EACvB,GADuB,EAClB,GADkB,EACb,GADa,EACR,GADQ,EACH,GADG,EACE,GADF,EACO,GADP,EACY,GADZ,EACiB,GADjB,EACsB,GADtB,EAC2B,GAD3B,EACgC,GADhC,EACqC,GADrC,EAC0C,GAD1C,EAE/B,GAF+B,EAE1B,GAF0B,EAErB,GAFqB,EAEhB,GAFgB,EAEX,GAFW,EAEN,GAFM,EAED,GAFC,EAEI,GAFJ,EAES,GAFT,EAEc,GAFd,EAEmB,GAFnB,EAEwB,GAFxB,EAE6B,GAF7B,EAEkC,GAFlC,EAEuC,GAFvC,EAG/B,GAH+B,EAG1B,GAH0B,EAGrB,GAHqB,EAGhB,GAHgB,EAGX,GAHW,EAGN,GAHM,EAGD,GAHC,EAGI,GAHJ,EAGS,GAHT,EAGc,GAHd,EAGmB,GAHnB,EAGwB,GAHxB,EAG6B,GAH7B,EAGkC,GAHlC,EAGuC,GAHvC,EAI/B,GAJ+B,EAI1B,GAJ0B,EAIrB,GAJqB,EAIhB,GAJgB,EAIX,GAJW,EAIN,GAJM,EAID,GAJC,EAII,GAJJ,EAIS,GAJT,EAIc,GAJd,EAImB,GAJnB,EAIwB,GAJxB,EAI6B,GAJ7B,EAIkC,GAJlC,EAIuC,GAJvC,EAK/B,GAL+B,EAK1B,GAL0B,EAKrB,GALqB,EAKhB,GALgB,EAKX,GALW,EAKN,GALM,EAKD,GALC,EAKI,GALJ,EAKS,GALT,EAKc,GALd,EAKmB,GALnB,EAKwB,GALxB,EAK6B,GAL7B,EAKkC,GALlC,EAKuC,GALvC,EAM/B,GAN+B,EAM1B,GAN0B,EAMrB,GANqB,EAMhB,GANgB,EAMX,GANW,EAMN,GANM,EAMD,GANC,EAMI,GANJ,EAMS,GANT,EAMc,GANd,EAMmB,GANnB,EAMwB,GANxB,EAM6B,GAN7B,EAMkC,GANlC,EAMuC,GANvC,EAO/B,GAP+B,EAO1B,GAP0B,EAOrB,GAPqB,EAOhB,GAPgB,EAOX,GAPW,EAON,GAPM,EAOD,GAPC,EAOI,GAPJ,EAOS,GAPT,EAOc,GAPd,EAOmB,GAPnB,EAOwB,GAPxB,EAO6B,GAP7B,EAOkC,GAPlC,EAOuC,GAPvC,EAQ/B,GAR+B,EAQ1B,GAR0B,EAQrB,GARqB,EAQhB,GARgB,EAQX,GARW,EAQN,GARM,EAQD,GARC,EAQI,GARJ,EAQS,GART,EAQc,GARd,EAQmB,GARnB,EAQwB,GARxB,EAQ6B,GAR7B,EAQkC,GARlC,EAQuC,GARvC,EAS/B,GAT+B,EAS1B,GAT0B,EASrB,GATqB,EAShB,GATgB,EASX,GATW,EASN,GATM,EASD,GATC,EASI,GATJ,EASS,GATT,EASc,GATd,EASmB,GATnB,EASwB,GATxB,EAS6B,GAT7B,EASkC,IATlC,EASwC,GATxC,EAU/B,GAV+B,EAU1B,GAV0B,EAUrB,GAVqB,EAUhB,GAVgB,EAUX,GAVW,EAUN,GAVM,EAUD,GAVC,EAUI,GAVJ,EAUS,GAVT,EAUc,GAVd,EAUmB,GAVnB,EAUwB,GAVxB,EAU6B,GAV7B,EAUkC,GAVlC,EAUuC,GAVvC,EAW/B,GAX+B,EAW1B,GAX0B,EAWrB,GAXqB,EAWhB,GAXgB,EAWX,GAXW,EAWN,GAXM,EAWD,GAXC,EAWI,GAXJ,EAWS,GAXT,EAWc,GAXd,EAWmB,GAXnB,EAWwB,GAXxB,EAW6B,GAX7B,EAWkC,GAXlC,EAWuC,GAXvC,EAY/B,GAZ+B,EAY1B,GAZ0B,EAYrB,GAZqB,EAYhB,GAZgB,EAYX,GAZW,EAYN,GAZM,EAYD,GAZC,EAYI,GAZJ,EAYS,GAZT,EAYc,GAZd,EAYmB,GAZnB,EAYwB,GAZxB,EAY6B,GAZ7B,EAYkC,GAZlC,EAYuC,GAZvC,EAa/B,GAb+B,EAa1B,GAb0B,EAarB,GAbqB,EAahB,GAbgB,EAaX,GAbW,EAaN,GAbM,EAaD,GAbC,EAaI,GAbJ,EAaS,GAbT,EAac,GAbd,EAamB,GAbnB,EAawB,GAbxB,EAa6B,GAb7B,EAakC,GAblC,EAauC,GAbvC,EAc/B,GAd+B,EAc1B,GAd0B,EAcrB,GAdqB,EAchB,GAdgB,EAcX,GAdW,EAcN,GAdM,EAcD,GAdC,EAcI,GAdJ,EAcS,GAdT,EAcc,GAdd,EAcmB,GAdnB,EAcwB,GAdxB,EAc6B,GAd7B,EAckC,GAdlC,EAcuC,GAdvC,EAe/B,GAf+B,EAe1B,GAf0B,EAerB,GAfqB,EAehB,GAfgB,EAeX,GAfW,EAeN,GAfM,EAeD,GAfC,EAeI,GAfJ,EAeS,GAfT,EAec,GAfd,EAemB,GAfnB,EAewB,GAfxB,EAe6B,GAf7B,EAekC,GAflC,EAeuC,GAfvC,EAgB/B,GAhB+B,EAgB1B,GAhB0B,EAgBrB,GAhBqB,EAgBhB,GAhBgB,EAgBX,GAhBW,EAgBN,GAhBM,EAgBD,GAhBC,EAgBI,GAhBJ,EAgBS,GAhBT,EAgBc,GAhBd,EAgBmB,GAhBnB,EAgBwB,GAhBxB,EAgB6B,GAhB7B,EAgBkC,GAhBlC,EAgBuC,GAhBvC,EAiB/B,GAjB+B,EAiB1B,GAjB0B,EAiBrB,GAjBqB,EAiBhB,GAjBgB,EAiBX,GAjBW,EAiBN,GAjBM,EAiBD,GAjBC,EAiBI,GAjBJ,EAiBS,GAjBT,EAiBc,GAjBd,EAiBmB,GAjBnB,EAiBwB,GAjBxB,EAiB6B,GAjB7B,EAiBkC,GAjBlC,EAiBuC,GAjBvC,EAkB/B,GAlB+B,EAkB1B,GAlB0B,EAkBrB,GAlBqB,EAkBhB,GAlBgB,EAkBX,GAlBW,EAkBN,GAlBM,EAkBD,GAlBC,EAkBI,GAlBJ,EAkBS,GAlBT,EAkBc,GAlBd,EAkBmB,GAlBnB,EAkBwB,GAlBxB,EAkB6B,GAlB7B,EAkBkC,GAlBlC,EAkBuC,GAlBvC,EAmB/B,GAnB+B,EAmB1B,GAnB0B,EAmBrB,GAnBqB,EAmBhB,IAnBgB,EAmBV,GAnBU,EAmBL,GAnBK,EAmBA,GAnBA,EAmBK,GAnBL,EAmBU,GAnBV,EAmBe,GAnBf,EAmBoB,GAnBpB,EAmByB,GAnBzB,EAmB8B,GAnB9B,EAmBmC,GAnBnC,EAmBwC,GAnBxC,EAoB/B,GApB+B,EAoB1B,GApB0B,EAoBrB,GApBqB,EAoBhB,GApBgB,EAoBX,GApBW,EAoBN,GApBM,EAoBD,GApBC,EAoBI,GApBJ,EAoBS,GApBT,EAoBc,GApBd,EAoBmB,GApBnB,EAoBwB,GApBxB,EAoB6B,GApB7B,EAoBkC,GApBlC,EAoBuC,GApBvC,EAqB/B,GArB+B,EAqB1B,GArB0B,EAqBrB,GArBqB,EAqBhB,GArBgB,EAqBX,GArBW,EAqBN,GArBM,EAqBD,GArBC,EAqBI,GArBJ,EAqBS,GArBT,EAqBc,GArBd,EAqBmB,GArBnB,EAqBwB,GArBxB,EAqB6B,GArB7B,EAqBkC,GArBlC,EAqBuC,GArBvC,EAsB/B,GAtB+B,EAsB1B,GAtB0B,EAsBrB,GAtBqB,EAsBhB,GAtBgB,EAsBX,GAtBW,EAsBN,GAtBM,EAsBD,GAtBC,EAsBI,IAtBJ,EAsBU,GAtBV,EAsBe,GAtBf,EAsBoB,GAtBpB,EAsByB,GAtBzB,EAsB8B,GAtB9B,EAsBmC,GAtBnC,EAsBwC,GAtBxC,EAuB/B,GAvB+B,EAuB1B,GAvB0B,EAuBrB,GAvBqB,EAuBhB,GAvBgB,EAuBX,GAvBW,EAuBN,GAvBM,EAuBD,GAvBC,EAuBI,GAvBJ,EAuBS,GAvBT,EAuBc,GAvBd,EAuBmB,GAvBnB,EAuBwB,GAvBxB,EAuB6B,GAvB7B,EAuBkC,GAvBlC,EAuBuC,GAvBvC,EAwB/B,GAxB+B,EAwB1B,GAxB0B,EAwBrB,GAxBqB,EAwBhB,GAxBgB,EAwBX,GAxBW,EAwBN,GAxBM,EAwBD,GAxBC,EAwBI,GAxBJ,EAwBS,GAxBT,EAwBc,GAxBd,EAwBmB,GAxBnB,EAwBwB,GAxBxB,EAwB6B,GAxB7B,EAwBkC,GAxBlC,EAwBuC,GAxBvC,EAyB/B,GAzB+B,EAyB1B,GAzB0B,EAyBrB,GAzBqB,EAyBhB,GAzBgB,EAyBX,GAzBW,EAyBN,GAzBM,EAyBD,GAzBC,EAyBI,GAzBJ,EAyBS,GAzBT,EAyBc,GAzBd,EAyBmB,GAzBnB,EAyBwB,GAzBxB,EAyB6B,GAzB7B,EAyBkC,GAzBlC,EAyBuC,GAzBvC,EA0B/B,GA1B+B,EA0B1B,GA1B0B,EA0BrB,GA1BqB,EA0BhB,GA1BgB,EA0BX,GA1BW,EA0BN,GA1BM,EA0BD,GA1BC,EA0BI,GA1BJ,EA0BS,GA1BT,EA0Bc,GA1Bd,EA0BmB,GA1BnB,EA0BwB,GA1BxB,EA0B6B,GA1B7B,EA0BkC,GA1BlC,EA0BuC,GA1BvC,EA2B/B,GA3B+B,EA2B1B,GA3B0B,EA2BrB,GA3BqB,EA2BhB,GA3BgB,EA2BX,GA3BW,EA2BN,GA3BM,EA2BD,GA3BC,EA2BI,GA3BJ,EA2BS,GA3BT,EA2Bc,GA3Bd,EA2BmB,GA3BnB,EA2BwB,GA3BxB,EA2B6B,GA3B7B,EA2BkC,GA3BlC,EA2BuC,GA3BvC,EA4B/B,GA5B+B,EA4B1B,GA5B0B,EA4BrB,GA5BqB,EA4BhB,GA5BgB,EA4BX,GA5BW,EA4BN,GA5BM,EA4BD,GA5BC,EA4BI,GA5BJ,EA4BS,GA5BT,EA4Bc,GA5Bd,EA4BmB,GA5BnB,EA4BwB,GA5BxB,EA4B6B,GA5B7B,EA4BkC,GA5BlC,EA4BuC,GA5BvC,EA6B/B,IA7B+B,EA6BzB,IA7ByB,EA6BnB,GA7BmB,EA6Bd,GA7Bc,EA6BT,GA7BS,EA6BJ,GA7BI,EA6BC,GA7BD,EA6BM,GA7BN,EA6BW,GA7BX,EA6BgB,GA7BhB,EA6BqB,GA7BrB,EA6B0B,GA7B1B,EA6B+B,GA7B/B,EA6BoC,GA7BpC,EA6ByC,GA7BzC,EA8B/B,GA9B+B,EA8B1B,GA9B0B,EA8BrB,GA9BqB,EA8BhB,GA9BgB,EA8BX,GA9BW,EA8BN,GA9BM,EA8BD,GA9BC,EA8BI,GA9BJ,EA8BS,GA9BT,EA8Bc,GA9Bd,EA8BmB,GA9BnB,EA8BwB,GA9BxB,EA8B6B,GA9B7B,EA8BkC,GA9BlC,EA8BuC,GA9BvC,EA+B/B,GA/B+B,EA+B1B,IA/B0B,EA+BpB,IA/BoB,EA+Bd,GA/Bc,EA+BT,GA/BS,EA+BJ,GA/BI,EA+BC,GA/BD,EA+BM,IA/BN,EA+BY,GA/BZ,EA+BiB,GA/BjB,EA+BsB,GA/BtB,EA+B2B,GA/B3B,EA+BgC,GA/BhC,EA+BqC,GA/BrC,EA+B0C,GA/B1C,EAgC/B,GAhC+B,EAgC1B,GAhC0B,EAgCrB,GAhCqB,EAgChB,GAhCgB,EAgCX,GAhCW,EAgCN,GAhCM,EAgCD,GAhCC,EAgCI,GAhCJ,EAgCS,GAhCT,EAgCc,GAhCd,EAgCmB,GAhCnB,EAgCwB,GAhCxB,EAgC6B,GAhC7B,EAgCkC,GAhClC,EAgCuC,GAhCvC,EAiC/B,GAjC+B,EAiC1B,GAjC0B,EAiCrB,GAjCqB,EAiChB,GAjCgB,EAiCX,GAjCW,EAiCN,GAjCM,EAiCD,GAjCC,EAiCI,GAjCJ,EAiCS,GAjCT,EAiCc,GAjCd,EAiCmB,GAjCnB,EAiCwB,GAjCxB,EAiC6B,GAjC7B,EAiCkC,GAjClC,EAiCuC,GAjCvC,EAkC/B,GAlC+B,EAkC1B,GAlC0B,EAkCrB,GAlCqB,EAkChB,GAlCgB,EAkCX,GAlCW,EAkCN,GAlCM,EAkCD,GAlCC,EAkCI,GAlCJ,EAkCS,GAlCT,EAkCc,GAlCd,EAkCmB,GAlCnB,EAkCwB,GAlCxB,EAkC6B,GAlC7B,EAkCkC,GAlClC,EAkCuC,GAlCvC,EAmC/B,GAnC+B,EAmC1B,GAnC0B,EAmCrB,GAnCqB,EAmChB,GAnCgB,EAmCX,GAnCW,EAmCN,GAnCM,EAmCD,GAnCC,EAmCI,GAnCJ,EAmCS,GAnCT,EAmCc,GAnCd,EAmCmB,GAnCnB,EAmCwB,GAnCxB,EAmC6B,IAnC7B,EAmCmC,IAnCnC,EAmCyC,GAnCzC,EAoC/B,GApC+B,EAoC1B,GApC0B,EAoCrB,GApCqB,EAoChB,GApCgB,EAoCX,GApCW,EAoCN,GApCM,EAoCD,GApCC,EAoCI,GApCJ,EAoCS,GApCT,EAoCc,GApCd,EAoCmB,IApCnB,EAoCyB,IApCzB,EAoC+B,GApC/B,EAoCoC,GApCpC,EAoCyC,GApCzC,EAqC/B,GArC+B,EAqC1B,GArC0B,EAqCrB,GArCqB,EAqChB,GArCgB,EAqCX,GArCW,EAqCN,GArCM,EAqCD,GArCC,EAqCI,IArCJ,EAqCU,GArCV,EAqCe,GArCf,EAqCoB,GArCpB,EAqCyB,IArCzB,EAqC+B,IArC/B,EAqCqC,GArCrC,EAqC0C,GArC1C,EAsC/B,GAtC+B,EAsC1B,GAtC0B,EAsCrB,GAtCqB,EAsChB,GAtCgB,EAsCX,IAtCW,EAsCL,GAtCK,EAsCA,IAtCA,EAsCM,GAtCN,EAsCW,IAtCX,EAsCiB,GAtCjB,EAsCsB,GAtCtB,EAsC2B,GAtC3B,EAsCgC,GAtChC,EAsCqC,GAtCrC,EAsC0C,GAtC1C,EAuC/B,GAvC+B,EAuC1B,GAvC0B,EAuCrB,GAvCqB,EAuChB,GAvCgB,EAuCX,GAvCW,EAuCN,GAvCM,EAuCD,GAvCC,EAuCI,GAvCJ,EAuCS,GAvCT,EAuCc,GAvCd,EAuCmB,GAvCnB,EAuCwB,GAvCxB,EAuC6B,GAvC7B,EAuCkC,GAvClC,EAuCuC,GAvCvC,EAwC/B,GAxC+B,EAwC1B,GAxC0B,EAwCrB,GAxCqB,EAwChB,GAxCgB,EAwCX,GAxCW,EAwCN,GAxCM,EAwCD,GAxCC,EAwCI,GAxCJ,EAwCS,GAxCT,EAwCc,GAxCd,EAwCmB,GAxCnB,EAwCwB,GAxCxB,EAwC6B,GAxC7B,EAwCkC,GAxClC,EAwCuC,GAxCvC,EAyC/B,GAzC+B,EAyC1B,GAzC0B,EAyCrB,GAzCqB,EAyChB,GAzCgB,EAyCX,GAzCW,EAyCN,GAzCM,EAyCD,GAzCC,EAyCI,GAzCJ,EAyCS,GAzCT,EAyCc,GAzCd,EAyCmB,GAzCnB,EAyCwB,GAzCxB,EAyC6B,GAzC7B,EAyCkC,GAzClC,EAyCuC,GAzCvC,EA0C/B,GA1C+B,EA0C1B,GA1C0B,EA0CrB,GA1CqB,EA0ChB,GA1CgB,EA0CX,GA1CW,EA0CN,GA1CM,EA0CD,GA1CC,EA0CI,GA1CJ,EA0CS,GA1CT,EA0Cc,GA1Cd,EA0CmB,GA1CnB,EA0CwB,GA1CxB,EA0C6B,GA1C7B,EA0CkC,GA1ClC,EA0CuC,GA1CvC,EA2C/B,GA3C+B,EA2C1B,GA3C0B,EA2CrB,GA3CqB,EA2ChB,GA3CgB,EA2CX,GA3CW,EA2CN,GA3CM,EA2CD,GA3CC,EA2CI,IA3CJ,EA2CU,GA3CV,EA2Ce,GA3Cf,EA2CoB,GA3CpB,EA2CyB,GA3CzB,EA2C8B,GA3C9B,EA2CmC,GA3CnC,EA2CwC,GA3CxC,EA4C/B,GA5C+B,EA4C1B,GA5C0B,EA4CrB,GA5CqB,EA4ChB,IA5CgB,EA4CV,IA5CU,EA4CJ,GA5CI,EA4CC,GA5CD,EA4CM,GA5CN,EA4CW,GA5CX,EA4CgB,GA5ChB,EA4CqB,GA5CrB,EA4C0B,GA5C1B,EA4C+B,GA5C/B,EA4CoC,GA5CpC,EA4CyC,GA5CzC,EA6C/B,GA7C+B,EA6C1B,GA7C0B,EA6CrB,GA7CqB,EA6ChB,GA7CgB,EA6CX,GA7CW,EA6CN,GA7CM,EA6CD,GA7CC,EA6CI,GA7CJ,EA6CS,GA7CT,EA6Cc,GA7Cd,EA6CmB,GA7CnB,EA6CwB,GA7CxB,EA6C6B,GA7C7B,EA6CkC,GA7ClC,EA6CuC,GA7CvC,EA8C/B,GA9C+B,EA8C1B,GA9C0B,EA8CrB,GA9CqB,EA8ChB,GA9CgB,EA8CX,GA9CW,CAAjC;;AAkDA,MAAMC,4BAA4B,CAChC,CAAC,CAD+B,EAC5B,CAAC,CAD2B,EACxB,CAAC,CADuB,EACpB,EADoB,EAChB,EADgB,EACZ,EADY,EACR,EADQ,EACJ,EADI,EACA,EADA,EACI,EADJ,EACQ,EADR,EACY,EADZ,EACgB,EADhB,EACoB,EADpB,EACwB,EADxB,EAC4B,EAD5B,EACgC,EADhC,EACoC,EADpC,EACwC,EADxC,EAEhC,EAFgC,EAE5B,EAF4B,EAExB,EAFwB,EAEpB,EAFoB,EAEhB,EAFgB,EAEZ,EAFY,EAER,EAFQ,EAEJ,EAFI,EAEA,EAFA,EAEI,EAFJ,EAEQ,EAFR,EAEY,EAFZ,EAEgB,EAFhB,EAEoB,EAFpB,EAEwB,EAFxB,EAE4B,EAF5B,EAEgC,EAFhC,EAEoC,EAFpC,EAEwC,EAFxC,EAGhC,EAHgC,EAG5B,EAH4B,EAGxB,EAHwB,EAGpB,EAHoB,EAGhB,EAHgB,EAGZ,EAHY,EAGR,EAHQ,EAGJ,EAHI,EAGA,EAHA,EAGI,EAHJ,EAGQ,EAHR,EAGY,EAHZ,EAGgB,EAHhB,EAGoB,EAHpB,EAGwB,EAHxB,EAG4B,EAH5B,EAGgC,EAHhC,EAGoC,EAHpC,EAGwC,EAHxC,EAIhC,EAJgC,EAI5B,EAJ4B,EAIxB,EAJwB,EAIpB,EAJoB,EAIhB,EAJgB,EAIZ,EAJY,EAIR,EAJQ,EAIJ,EAJI,EAIA,EAJA,EAII,EAJJ,EAIQ,EAJR,EAIY,EAJZ,EAIgB,EAJhB,EAIoB,EAJpB,EAIwB,GAJxB,EAI6B,GAJ7B,EAIkC,GAJlC,EAIuC,GAJvC,EAKhC,GALgC,EAK3B,GAL2B,EAKtB,GALsB,EAKjB,GALiB,EAKZ,GALY,EAKP,GALO,EAKF,GALE,EAKG,GALH,EAKQ,GALR,EAKa,GALb,EAKkB,GALlB,EAKuB,GALvB,EAK4B,GAL5B,EAKiC,GALjC,EAKsC,GALtC,EAMhC,GANgC,EAM3B,GAN2B,EAMtB,GANsB,EAMjB,GANiB,EAMZ,GANY,EAMP,GANO,EAMF,GANE,EAMG,GANH,EAMQ,GANR,EAMa,GANb,EAMkB,GANlB,EAMuB,GANvB,EAM4B,GAN5B,EAMiC,GANjC,EAMsC,GANtC,EAOhC,GAPgC,EAO3B,GAP2B,EAOtB,GAPsB,EAOjB,GAPiB,EAOZ,GAPY,EAOP,GAPO,EAOF,GAPE,EAOG,GAPH,EAOQ,GAPR,EAOa,GAPb,EAOkB,GAPlB,EAOuB,GAPvB,EAO4B,GAP5B,EAOiC,GAPjC,EAOsC,GAPtC,EAQhC,GARgC,EAQ3B,GAR2B,EAQtB,GARsB,EAQjB,GARiB,EAQZ,GARY,EAQP,GARO,EAQF,GARE,EAQG,GARH,EAQQ,GARR,EAQa,GARb,EAQkB,GARlB,EAQuB,GARvB,EAQ4B,GAR5B,EAQiC,GARjC,EAQsC,GARtC,EAShC,GATgC,EAS3B,GAT2B,EAStB,GATsB,EASjB,GATiB,EASZ,GATY,EASP,GATO,EASF,GATE,EASG,GATH,EASQ,GATR,EASa,GATb,EASkB,GATlB,EASuB,GATvB,EAS4B,GAT5B,EASiC,GATjC,EASsC,GATtC,EAUhC,GAVgC,EAU3B,GAV2B,EAUtB,GAVsB,EAUjB,GAViB,EAUZ,GAVY,EAUP,GAVO,EAUF,GAVE,EAUG,GAVH,EAUQ,GAVR,EAUa,GAVb,EAUkB,GAVlB,EAUuB,GAVvB,EAU4B,GAV5B,EAUiC,GAVjC,EAUsC,GAVtC,EAWhC,GAXgC,EAW3B,GAX2B,EAWtB,GAXsB,EAWjB,GAXiB,EAWZ,GAXY,EAWP,GAXO,EAWF,GAXE,EAWG,GAXH,EAWQ,GAXR,EAWa,GAXb,EAWkB,GAXlB,EAWuB,GAXvB,EAW4B,GAX5B,EAWiC,GAXjC,EAWsC,GAXtC,EAYhC,GAZgC,EAY3B,GAZ2B,EAYtB,GAZsB,EAYjB,GAZiB,EAYZ,GAZY,EAYP,GAZO,EAYF,GAZE,EAYG,GAZH,EAYQ,GAZR,EAYa,GAZb,EAYkB,GAZlB,EAYuB,GAZvB,EAY4B,GAZ5B,EAYiC,GAZjC,EAYsC,GAZtC,EAahC,GAbgC,EAa3B,GAb2B,EAatB,GAbsB,EAajB,GAbiB,EAaZ,GAbY,EAaP,GAbO,EAaF,GAbE,EAaG,GAbH,EAaQ,GAbR,EAaa,GAbb,EAakB,GAblB,EAauB,GAbvB,EAa4B,GAb5B,EAaiC,GAbjC,EAasC,GAbtC,EAchC,GAdgC,EAc3B,GAd2B,EActB,GAdsB,EAcjB,GAdiB,EAcZ,GAdY,EAcP,GAdO,EAcF,GAdE,EAcG,GAdH,EAcQ,GAdR,EAca,GAdb,EAckB,GAdlB,EAcuB,GAdvB,EAc4B,GAd5B,EAciC,GAdjC,EAcsC,GAdtC,EAehC,GAfgC,EAe3B,GAf2B,EAetB,GAfsB,EAejB,GAfiB,EAeZ,GAfY,EAeP,GAfO,EAeF,GAfE,EAeG,GAfH,EAeQ,GAfR,EAea,GAfb,EAekB,GAflB,EAeuB,GAfvB,EAe4B,GAf5B,EAeiC,GAfjC,EAesC,GAftC,EAgBhC,GAhBgC,EAgB3B,GAhB2B,EAgBtB,GAhBsB,EAgBjB,GAhBiB,EAgBZ,GAhBY,EAgBP,GAhBO,EAgBF,GAhBE,EAgBG,GAhBH,EAgBQ,GAhBR,EAgBa,GAhBb,EAgBkB,GAhBlB,EAgBuB,GAhBvB,EAgB4B,GAhB5B,EAgBiC,GAhBjC,EAgBsC,GAhBtC,EAiBhC,GAjBgC,EAiB3B,GAjB2B,EAiBtB,GAjBsB,EAiBjB,GAjBiB,EAiBZ,GAjBY,EAiBP,GAjBO,EAiBF,GAjBE,EAiBG,GAjBH,EAiBQ,GAjBR,EAiBa,GAjBb,EAiBkB,GAjBlB,EAiBuB,GAjBvB,EAiB4B,GAjB5B,EAiBiC,GAjBjC,EAiBsC,GAjBtC,EAkBhC,GAlBgC,EAkB3B,GAlB2B,EAkBtB,GAlBsB,EAkBjB,GAlBiB,EAkBZ,GAlBY,EAkBP,GAlBO,EAkBF,GAlBE,EAkBG,GAlBH,EAkBQ,GAlBR,EAkBa,GAlBb,EAkBkB,GAlBlB,EAkBuB,GAlBvB,EAkB4B,GAlB5B,EAkBiC,GAlBjC,EAkBsC,GAlBtC,EAmBhC,GAnBgC,EAmB3B,GAnB2B,EAmBtB,GAnBsB,EAmBjB,GAnBiB,EAmBZ,GAnBY,EAmBP,GAnBO,EAmBF,GAnBE,EAmBG,GAnBH,EAmBQ,GAnBR,EAmBa,GAnBb,EAmBkB,GAnBlB,EAmBuB,GAnBvB,EAmB4B,GAnB5B,EAmBiC,GAnBjC,EAmBsC,GAnBtC,EAoBhC,GApBgC,EAoB3B,GApB2B,EAoBtB,GApBsB,EAoBjB,GApBiB,EAoBZ,GApBY,EAoBP,GApBO,EAoBF,GApBE,EAoBG,GApBH,EAoBQ,GApBR,EAoBa,GApBb,EAoBkB,GApBlB,EAoBuB,GApBvB,EAoB4B,GApB5B,EAoBiC,GApBjC,EAoBsC,GApBtC,EAqBhC,GArBgC,EAqB3B,GArB2B,EAqBtB,GArBsB,EAqBjB,GArBiB,EAqBZ,GArBY,EAqBP,GArBO,EAqBF,GArBE,EAqBG,GArBH,EAqBQ,GArBR,EAqBa,GArBb,EAqBkB,GArBlB,EAqBuB,GArBvB,EAqB4B,GArB5B,EAqBiC,GArBjC,EAqBsC,GArBtC,EAsBhC,GAtBgC,EAsB3B,GAtB2B,EAsBtB,GAtBsB,EAsBjB,GAtBiB,EAsBZ,GAtBY,EAsBP,GAtBO,EAsBF,GAtBE,EAsBG,GAtBH,EAsBQ,GAtBR,EAsBa,GAtBb,EAsBkB,GAtBlB,EAsBuB,GAtBvB,EAsB4B,GAtB5B,EAsBiC,GAtBjC,EAsBsC,GAtBtC,EAuBhC,GAvBgC,EAuB3B,GAvB2B,EAuBtB,GAvBsB,EAuBjB,GAvBiB,EAuBZ,GAvBY,EAuBP,GAvBO,EAuBF,GAvBE,EAuBG,GAvBH,EAuBQ,GAvBR,EAuBa,GAvBb,EAuBkB,GAvBlB,EAuBuB,GAvBvB,EAuB4B,GAvB5B,EAuBiC,GAvBjC,EAuBsC,GAvBtC,EAwBhC,GAxBgC,EAwB3B,GAxB2B,EAwBtB,GAxBsB,EAwBjB,GAxBiB,EAwBZ,GAxBY,EAwBP,GAxBO,EAwBF,GAxBE,EAwBG,GAxBH,EAwBQ,GAxBR,EAwBa,GAxBb,EAwBkB,GAxBlB,EAwBuB,GAxBvB,EAwB4B,GAxB5B,EAwBiC,GAxBjC,EAwBsC,GAxBtC,EAyBhC,GAzBgC,EAyB3B,GAzB2B,EAyBtB,GAzBsB,EAyBjB,GAzBiB,EAyBZ,GAzBY,EAyBP,GAzBO,EAyBF,GAzBE,EAyBG,GAzBH,EAyBQ,GAzBR,EAyBa,GAzBb,EAyBkB,GAzBlB,EAyBuB,GAzBvB,EAyB4B,GAzB5B,EAyBiC,GAzBjC,EAyBsC,GAzBtC,EA0BhC,GA1BgC,EA0B3B,GA1B2B,EA0BtB,GA1BsB,EA0BjB,GA1BiB,EA0BZ,GA1BY,EA0BP,GA1BO,EA0BF,GA1BE,EA0BG,GA1BH,EA0BQ,GA1BR,EA0Ba,GA1Bb,EA0BkB,GA1BlB,EA0BuB,GA1BvB,EA0B4B,GA1B5B,EA0BiC,GA1BjC,EA0BsC,GA1BtC,EA2BhC,GA3BgC,EA2B3B,GA3B2B,EA2BtB,GA3BsB,EA2BjB,GA3BiB,EA2BZ,GA3BY,EA2BP,GA3BO,EA2BF,GA3BE,EA2BG,IA3BH,EA2BS,IA3BT,EA2Be,IA3Bf,EA2BqB,IA3BrB,EA2B2B,IA3B3B,EA2BiC,IA3BjC,EA2BuC,IA3BvC,EA4BhC,IA5BgC,EA4B1B,IA5B0B,EA4BpB,IA5BoB,EA4Bd,IA5Bc,EA4BR,IA5BQ,EA4BF,IA5BE,EA4BI,IA5BJ,EA4BU,IA5BV,EA4BgB,IA5BhB,EA4BsB,IA5BtB,EA4B4B,IA5B5B,EA4BkC,IA5BlC,EA4BwC,IA5BxC,EA6BhC,IA7BgC,EA6B1B,IA7B0B,EA6BpB,IA7BoB,EA6Bd,IA7Bc,EA6BR,IA7BQ,EA6BF,IA7BE,EA6BI,IA7BJ,EA6BU,IA7BV,EA6BgB,IA7BhB,EA6BsB,IA7BtB,EA6B4B,IA7B5B,EA6BkC,IA7BlC,EA6BwC,IA7BxC,EA8BhC,IA9BgC,EA8B1B,IA9B0B,EA8BpB,IA9BoB,EA8Bd,IA9Bc,EA8BR,IA9BQ,EA8BF,IA9BE,EA8BI,IA9BJ,EA8BU,IA9BV,EA8BgB,IA9BhB,EA8BsB,IA9BtB,EA8B4B,IA9B5B,EA8BkC,IA9BlC,EA8BwC,IA9BxC,EA+BhC,IA/BgC,EA+B1B,IA/B0B,EA+BpB,IA/BoB,EA+Bd,IA/Bc,EA+BR,IA/BQ,EA+BF,IA/BE,EA+BI,IA/BJ,EA+BU,IA/BV,EA+BgB,IA/BhB,EA+BsB,IA/BtB,EA+B4B,IA/B5B,EA+BkC,IA/BlC,EA+BwC,IA/BxC,EAgChC,IAhCgC,EAgC1B,IAhC0B,EAgCpB,IAhCoB,EAgCd,IAhCc,EAgCR,IAhCQ,EAgCF,IAhCE,EAgCI,IAhCJ,EAgCU,IAhCV,EAgCgB,IAhChB,EAgCsB,IAhCtB,EAgC4B,IAhC5B,EAgCkC,IAhClC,EAgCwC,IAhCxC,EAiChC,IAjCgC,EAiC1B,IAjC0B,EAiCpB,IAjCoB,EAiCd,IAjCc,EAiCR,IAjCQ,EAiCF,IAjCE,EAiCI,IAjCJ,EAiCU,IAjCV,EAiCgB,IAjChB,EAiCsB,IAjCtB,EAiC4B,IAjC5B,EAiCkC,IAjClC,EAiCwC,IAjCxC,EAkChC,IAlCgC,EAkC1B,IAlC0B,EAkCpB,IAlCoB,EAkCd,IAlCc,EAkCR,IAlCQ,EAkCF,IAlCE,EAkCI,IAlCJ,EAkCU,IAlCV,EAkCgB,IAlChB,EAkCsB,IAlCtB,EAkC4B,IAlC5B,EAkCkC,IAlClC,EAkCwC,IAlCxC,EAmChC,IAnCgC,EAmC1B,IAnC0B,EAmCpB,IAnCoB,EAmCd,IAnCc,EAmCR,IAnCQ,EAmCF,IAnCE,EAmCI,IAnCJ,EAmCU,IAnCV,EAmCgB,IAnChB,EAmCsB,IAnCtB,EAmC4B,IAnC5B,EAmCkC,IAnClC,EAmCwC,IAnCxC,EAoChC,IApCgC,EAoC1B,IApC0B,EAoCpB,IApCoB,EAoCd,IApCc,EAoCR,IApCQ,EAoCF,IApCE,EAoCI,IApCJ,EAoCU,IApCV,EAoCgB,IApChB,EAoCsB,IApCtB,EAoC4B,IApC5B,EAoCkC,IApClC,EAoCwC,IApCxC,EAqChC,IArCgC,EAqC1B,IArC0B,EAqCpB,IArCoB,EAqCd,IArCc,EAqCR,IArCQ,EAqCF,IArCE,EAqCI,IArCJ,EAqCU,IArCV,EAqCgB,IArChB,EAqCsB,IArCtB,EAqC4B,IArC5B,EAqCkC,IArClC,EAqCwC,IArCxC,EAsChC,IAtCgC,EAsC1B,IAtC0B,EAsCpB,IAtCoB,EAsCd,IAtCc,EAsCR,IAtCQ,EAsCF,IAtCE,EAsCI,IAtCJ,EAsCU,IAtCV,EAsCgB,IAtChB,EAsCsB,IAtCtB,EAsC4B,IAtC5B,EAsCkC,IAtClC,EAsCwC,IAtCxC,EAuChC,IAvCgC,EAuC1B,IAvC0B,EAuCpB,IAvCoB,EAuCd,IAvCc,EAuCR,IAvCQ,EAuCF,IAvCE,EAuCI,IAvCJ,EAuCU,IAvCV,EAuCgB,IAvChB,EAuCsB,IAvCtB,EAuC4B,IAvC5B,EAuCkC,IAvClC,EAuCwC,IAvCxC,EAwChC,IAxCgC,EAwC1B,IAxC0B,EAwCpB,IAxCoB,EAwCd,IAxCc,EAwCR,IAxCQ,EAwCF,IAxCE,EAwCI,IAxCJ,EAwCU,IAxCV,EAwCgB,IAxChB,EAwCsB,IAxCtB,EAwC4B,IAxC5B,EAwCkC,IAxClC,EAwCwC,IAxCxC,EAyChC,IAzCgC,EAyC1B,IAzC0B,EAyCpB,IAzCoB,EAyCd,IAzCc,EAyCR,IAzCQ,EAyCF,IAzCE,EAyCI,IAzCJ,EAyCU,IAzCV,EAyCgB,IAzChB,EAyCsB,IAzCtB,EAyC4B,IAzC5B,EAyCkC,IAzClC,EAyCwC,IAzCxC,EA0ChC,IA1CgC,EA0C1B,IA1C0B,EA0CpB,IA1CoB,EA0Cd,IA1Cc,EA0CR,IA1CQ,EA0CF,IA1CE,EA0CI,IA1CJ,EA0CU,IA1CV,EA0CgB,IA1ChB,EA0CsB,IA1CtB,EA0C4B,IA1C5B,EA0CkC,IA1ClC,EA0CwC,IA1CxC,EA2ChC,IA3CgC,EA2C1B,IA3C0B,EA2CpB,IA3CoB,EA2Cd,IA3Cc,EA2CR,IA3CQ,EA2CF,IA3CE,EA2CI,IA3CJ,EA2CU,IA3CV,EA2CgB,IA3ChB,EA2CsB,IA3CtB,EA2C4B,IA3C5B,EA2CkC,IA3ClC,EA2CwC,IA3CxC,EA4ChC,IA5CgC,EA4C1B,IA5C0B,EA4CpB,IA5CoB,EA4Cd,IA5Cc,EA4CR,IA5CQ,EA4CF,IA5CE,EA4CI,IA5CJ,EA4CU,IA5CV,EA4CgB,IA5ChB,EA4CsB,IA5CtB,EA4C4B,IA5C5B,EA4CkC,IA5ClC,EA4CwC,IA5CxC,EA6ChC,IA7CgC,EA6C1B,IA7C0B,EA6CpB,IA7CoB,EA6Cd,IA7Cc,EA6CR,IA7CQ,EA6CF,IA7CE,EA6CI,IA7CJ,EA6CU,IA7CV,EA6CgB,IA7ChB,EA6CsB,IA7CtB,EA6C4B,IA7C5B,EA6CkC,IA7ClC,EA6CwC,IA7CxC,EA8ChC,IA9CgC,EA8C1B,IA9C0B,EA8CpB,IA9CoB,EA8Cd,IA9Cc,EA8CR,IA9CQ,EA8CF,IA9CE,EA8CI,IA9CJ,EA8CU,IA9CV,EA8CgB,KA9ChB,EA8CuB,KA9CvB,EA8C8B,KA9C9B,EA8CqC,CAAC,CA9CtC,EA8CyC,CAAC,CA9C1C,EA+ChC,CAAC,CA/C+B,EA+C5B,CAAC,CA/C2B,EA+CxB,CAAC,CA/CuB,EA+CpB,CAAC,CA/CmB,EA+ChB,CAAC,CA/Ce,EA+CZ,CAAC,CA/CW,EA+CR,CAAC,CA/CO,EA+CJ,CAAC,CA/CG,EA+CA,CAAC,CA/CD,EA+CI,CAAC,CA/CL,EA+CQ,CAAC,CA/CT,EA+CY,CAAC,CA/Cb,EA+CgB,CAAC,CA/CjB,EA+CoB,CAAC,CA/CrB,EA+CwB,CAAC,CA/CzB,CAAlC;;AAmDA,MAAMO,iCAAiC,CACrC,GADqC,EAChC,CADgC,EAC7B,GAD6B,EACxB,GADwB,EACnB,GADmB,EACd,GADc,EACT,GADS,EACJ,GADI,EACC,GADD,EACM,GADN,EACW,GADX,EACgB,GADhB,EACqB,GADrB,EAC0B,GAD1B,EAC+B,GAD/B,EACoC,GADpC,EAErC,GAFqC,EAEhC,GAFgC,EAE3B,GAF2B,EAEtB,GAFsB,EAEjB,GAFiB,EAEZ,GAFY,EAEP,GAFO,EAEF,GAFE,EAEG,GAFH,EAEQ,GAFR,EAEa,GAFb,EAEkB,GAFlB,EAEuB,GAFvB,EAE4B,GAF5B,EAEiC,GAFjC,EAGrC,GAHqC,EAGhC,GAHgC,EAG3B,GAH2B,EAGtB,GAHsB,EAGjB,GAHiB,EAGZ,GAHY,EAGP,GAHO,EAGF,GAHE,EAGG,GAHH,EAGQ,GAHR,EAGa,GAHb,EAGkB,GAHlB,EAGuB,GAHvB,EAG4B,GAH5B,EAGiC,GAHjC,EAIrC,GAJqC,EAIhC,GAJgC,EAI3B,GAJ2B,EAItB,GAJsB,EAIjB,GAJiB,EAIZ,GAJY,EAIP,GAJO,EAIF,GAJE,EAIG,GAJH,EAIQ,GAJR,EAIa,GAJb,EAIkB,GAJlB,EAIuB,GAJvB,EAI4B,GAJ5B,EAIiC,GAJjC,EAKrC,GALqC,EAKhC,GALgC,EAK3B,GAL2B,EAKtB,GALsB,EAKjB,GALiB,EAKZ,GALY,EAKP,GALO,EAKF,GALE,EAKG,GALH,EAKQ,GALR,EAKa,GALb,EAKkB,GALlB,EAKuB,GALvB,EAK4B,GAL5B,EAKiC,GALjC,EAMrC,GANqC,EAMhC,GANgC,EAM3B,GAN2B,EAMtB,GANsB,EAMjB,GANiB,EAMZ,GANY,EAMP,GANO,EAMF,GANE,EAMG,GANH,EAMQ,GANR,EAMa,GANb,EAMkB,GANlB,EAMuB,GANvB,EAM4B,GAN5B,EAMiC,GANjC,EAOrC,GAPqC,EAOhC,GAPgC,EAO3B,GAP2B,EAOtB,GAPsB,EAOjB,GAPiB,EAOZ,GAPY,EAOP,GAPO,EAOF,GAPE,EAOG,GAPH,EAOQ,GAPR,EAOa,GAPb,EAOkB,GAPlB,EAOuB,GAPvB,EAO4B,GAP5B,EAOiC,GAPjC,EAQrC,GARqC,EAQhC,GARgC,EAQ3B,GAR2B,EAQtB,GARsB,EAQjB,GARiB,EAQZ,GARY,EAQP,GARO,EAQF,GARE,EAQG,GARH,EAQQ,GARR,EAQa,GARb,EAQkB,GARlB,EAQuB,GARvB,EAQ4B,GAR5B,EAQiC,GARjC,EASrC,GATqC,EAShC,GATgC,EAS3B,GAT2B,EAStB,GATsB,EASjB,GATiB,EASZ,GATY,EASP,GATO,EASF,GATE,EASG,GATH,EASQ,GATR,EASa,GATb,EASkB,GATlB,EASuB,GATvB,EAS4B,IAT5B,EASkC,GATlC,EAUrC,GAVqC,EAUhC,GAVgC,EAU3B,GAV2B,EAUtB,GAVsB,EAUjB,GAViB,EAUZ,GAVY,EAUP,GAVO,EAUF,GAVE,EAUG,GAVH,EAUQ,GAVR,EAUa,GAVb,EAUkB,GAVlB,EAUuB,GAVvB,EAU4B,GAV5B,EAUiC,GAVjC,EAWrC,GAXqC,EAWhC,GAXgC,EAW3B,GAX2B,EAWtB,GAXsB,EAWjB,GAXiB,EAWZ,GAXY,EAWP,GAXO,EAWF,GAXE,EAWG,GAXH,EAWQ,GAXR,EAWa,GAXb,EAWkB,GAXlB,EAWuB,GAXvB,EAW4B,GAX5B,EAWiC,GAXjC,EAYrC,GAZqC,EAYhC,GAZgC,EAY3B,GAZ2B,EAYtB,GAZsB,EAYjB,GAZiB,EAYZ,GAZY,EAYP,GAZO,EAYF,GAZE,EAYG,GAZH,EAYQ,GAZR,EAYa,GAZb,EAYkB,GAZlB,EAYuB,GAZvB,EAY4B,GAZ5B,EAYiC,GAZjC,EAarC,GAbqC,EAahC,GAbgC,EAa3B,GAb2B,EAatB,GAbsB,EAajB,GAbiB,EAaZ,GAbY,EAaP,GAbO,EAaF,GAbE,EAaG,GAbH,EAaQ,GAbR,EAaa,GAbb,EAakB,GAblB,EAauB,GAbvB,EAa4B,GAb5B,EAaiC,GAbjC,EAcrC,GAdqC,EAchC,GAdgC,EAc3B,GAd2B,EActB,GAdsB,EAcjB,GAdiB,EAcZ,GAdY,EAcP,GAdO,EAcF,GAdE,EAcG,GAdH,EAcQ,GAdR,EAca,GAdb,EAckB,GAdlB,EAcuB,GAdvB,EAc4B,GAd5B,EAciC,GAdjC,EAerC,GAfqC,EAehC,GAfgC,EAe3B,GAf2B,EAetB,GAfsB,EAejB,GAfiB,EAeZ,GAfY,EAeP,GAfO,EAeF,GAfE,EAeG,GAfH,EAeQ,GAfR,EAea,GAfb,EAekB,GAflB,EAeuB,GAfvB,EAe4B,GAf5B,EAeiC,GAfjC,EAgBrC,GAhBqC,EAgBhC,GAhBgC,EAgB3B,GAhB2B,EAgBtB,GAhBsB,EAgBjB,GAhBiB,EAgBZ,GAhBY,EAgBP,GAhBO,EAgBF,GAhBE,EAgBG,GAhBH,EAgBQ,GAhBR,EAgBa,GAhBb,EAgBkB,GAhBlB,EAgBuB,GAhBvB,EAgB4B,GAhB5B,EAgBiC,GAhBjC,EAiBrC,GAjBqC,EAiBhC,GAjBgC,EAiB3B,GAjB2B,EAiBtB,GAjBsB,EAiBjB,GAjBiB,EAiBZ,GAjBY,EAiBP,GAjBO,EAiBF,GAjBE,EAiBG,GAjBH,EAiBQ,GAjBR,EAiBa,GAjBb,EAiBkB,GAjBlB,EAiBuB,GAjBvB,EAiB4B,GAjB5B,EAiBiC,GAjBjC,EAkBrC,GAlBqC,EAkBhC,GAlBgC,EAkB3B,GAlB2B,EAkBtB,GAlBsB,EAkBjB,GAlBiB,EAkBZ,GAlBY,EAkBP,GAlBO,EAkBF,GAlBE,EAkBG,GAlBH,EAkBQ,GAlBR,EAkBa,GAlBb,EAkBkB,GAlBlB,EAkBuB,GAlBvB,EAkB4B,GAlB5B,EAkBiC,GAlBjC,EAmBrC,GAnBqC,EAmBhC,GAnBgC,EAmB3B,GAnB2B,EAmBtB,IAnBsB,EAmBhB,GAnBgB,EAmBX,GAnBW,EAmBN,GAnBM,EAmBD,GAnBC,EAmBI,GAnBJ,EAmBS,GAnBT,EAmBc,GAnBd,EAmBmB,GAnBnB,EAmBwB,GAnBxB,EAmB6B,GAnB7B,EAmBkC,GAnBlC,EAoBrC,GApBqC,EAoBhC,GApBgC,EAoB3B,GApB2B,EAoBtB,GApBsB,EAoBjB,GApBiB,EAoBZ,GApBY,EAoBP,GApBO,EAoBF,GApBE,EAoBG,GApBH,EAoBQ,GApBR,EAoBa,GApBb,EAoBkB,GApBlB,EAoBuB,GApBvB,EAoB4B,GApB5B,EAoBiC,GApBjC,EAqBrC,GArBqC,EAqBhC,GArBgC,EAqB3B,GArB2B,EAqBtB,GArBsB,EAqBjB,GArBiB,EAqBZ,GArBY,EAqBP,GArBO,EAqBF,GArBE,EAqBG,GArBH,EAqBQ,GArBR,EAqBa,GArBb,EAqBkB,GArBlB,EAqBuB,GArBvB,EAqB4B,GArB5B,EAqBiC,GArBjC,EAsBrC,GAtBqC,EAsBhC,GAtBgC,EAsB3B,GAtB2B,EAsBtB,GAtBsB,EAsBjB,GAtBiB,EAsBZ,GAtBY,EAsBP,GAtBO,EAsBF,IAtBE,EAsBI,GAtBJ,EAsBS,GAtBT,EAsBc,GAtBd,EAsBmB,GAtBnB,EAsBwB,GAtBxB,EAsB6B,GAtB7B,EAsBkC,GAtBlC,EAuBrC,GAvBqC,EAuBhC,GAvBgC,EAuB3B,GAvB2B,EAuBtB,GAvBsB,EAuBjB,GAvBiB,EAuBZ,GAvBY,EAuBP,GAvBO,EAuBF,GAvBE,EAuBG,GAvBH,EAuBQ,GAvBR,EAuBa,GAvBb,EAuBkB,GAvBlB,EAuBuB,GAvBvB,EAuB4B,GAvB5B,EAuBiC,GAvBjC,EAwBrC,GAxBqC,EAwBhC,GAxBgC,EAwB3B,GAxB2B,EAwBtB,GAxBsB,EAwBjB,GAxBiB,EAwBZ,GAxBY,EAwBP,GAxBO,EAwBF,GAxBE,EAwBG,GAxBH,EAwBQ,GAxBR,EAwBa,GAxBb,EAwBkB,GAxBlB,EAwBuB,GAxBvB,EAwB4B,GAxB5B,EAwBiC,GAxBjC,EAyBrC,GAzBqC,EAyBhC,GAzBgC,EAyB3B,GAzB2B,EAyBtB,GAzBsB,EAyBjB,GAzBiB,EAyBZ,GAzBY,EAyBP,GAzBO,EAyBF,GAzBE,EAyBG,GAzBH,EAyBQ,GAzBR,EAyBa,GAzBb,EAyBkB,GAzBlB,EAyBuB,GAzBvB,EAyB4B,GAzB5B,EAyBiC,GAzBjC,EA0BrC,GA1BqC,EA0BhC,GA1BgC,EA0B3B,GA1B2B,EA0BtB,GA1BsB,EA0BjB,GA1BiB,EA0BZ,GA1BY,EA0BP,GA1BO,EA0BF,GA1BE,EA0BG,GA1BH,EA0BQ,GA1BR,EA0Ba,GA1Bb,EA0BkB,GA1BlB,EA0BuB,GA1BvB,EA0B4B,GA1B5B,EA0BiC,GA1BjC,EA2BrC,GA3BqC,EA2BhC,GA3BgC,EA2B3B,GA3B2B,EA2BtB,GA3BsB,EA2BjB,GA3BiB,EA2BZ,GA3BY,EA2BP,GA3BO,EA2BF,GA3BE,EA2BG,GA3BH,EA2BQ,GA3BR,EA2Ba,GA3Bb,EA2BkB,GA3BlB,EA2BuB,GA3BvB,EA2B4B,GA3B5B,EA2BiC,GA3BjC,EA4BrC,GA5BqC,EA4BhC,GA5BgC,EA4B3B,GA5B2B,EA4BtB,GA5BsB,EA4BjB,GA5BiB,EA4BZ,GA5BY,EA4BP,GA5BO,EA4BF,GA5BE,EA4BG,GA5BH,EA4BQ,GA5BR,EA4Ba,GA5Bb,EA4BkB,GA5BlB,EA4BuB,GA5BvB,EA4B4B,GA5B5B,EA4BiC,GA5BjC,EA6BrC,IA7BqC,EA6B/B,IA7B+B,EA6BzB,GA7ByB,EA6BpB,GA7BoB,EA6Bf,GA7Be,EA6BV,GA7BU,EA6BL,GA7BK,EA6BA,GA7BA,EA6BK,GA7BL,EA6BU,GA7BV,EA6Be,GA7Bf,EA6BoB,GA7BpB,EA6ByB,GA7BzB,EA6B8B,GA7B9B,EA6BmC,GA7BnC,EA8BrC,GA9BqC,EA8BhC,GA9BgC,EA8B3B,GA9B2B,EA8BtB,GA9BsB,EA8BjB,GA9BiB,EA8BZ,GA9BY,EA8BP,GA9BO,EA8BF,GA9BE,EA8BG,GA9BH,EA8BQ,GA9BR,EA8Ba,GA9Bb,EA8BkB,GA9BlB,EA8BuB,GA9BvB,EA8B4B,GA9B5B,EA8BiC,GA9BjC,EA+BrC,GA/BqC,EA+BhC,GA/BgC,EA+B3B,GA/B2B,EA+BtB,GA/BsB,EA+BjB,IA/BiB,EA+BX,GA/BW,EA+BN,GA/BM,EA+BD,IA/BC,EA+BK,GA/BL,EA+BU,GA/BV,EA+Be,GA/Bf,EA+BoB,GA/BpB,EA+ByB,GA/BzB,EA+B8B,GA/B9B,EA+BmC,GA/BnC,EAgCrC,GAhCqC,EAgChC,GAhCgC,EAgC3B,GAhC2B,EAgCtB,GAhCsB,EAgCjB,GAhCiB,EAgCZ,GAhCY,EAgCP,GAhCO,EAgCF,GAhCE,EAgCG,GAhCH,EAgCQ,GAhCR,EAgCa,GAhCb,EAgCkB,GAhClB,EAgCuB,GAhCvB,EAgC4B,GAhC5B,EAgCiC,GAhCjC,EAiCrC,GAjCqC,EAiChC,GAjCgC,EAiC3B,GAjC2B,EAiCtB,GAjCsB,EAiCjB,GAjCiB,EAiCZ,GAjCY,EAiCP,GAjCO,EAiCF,GAjCE,EAiCG,GAjCH,EAiCQ,GAjCR,EAiCa,GAjCb,EAiCkB,GAjClB,EAiCuB,GAjCvB,EAiC4B,GAjC5B,EAiCiC,GAjCjC,EAkCrC,GAlCqC,EAkChC,GAlCgC,EAkC3B,GAlC2B,EAkCtB,GAlCsB,EAkCjB,GAlCiB,EAkCZ,GAlCY,EAkCP,GAlCO,EAkCF,GAlCE,EAkCG,GAlCH,EAkCQ,GAlCR,EAkCa,GAlCb,EAkCkB,GAlClB,EAkCuB,GAlCvB,EAkC4B,GAlC5B,EAkCiC,GAlCjC,EAmCrC,GAnCqC,EAmChC,GAnCgC,EAmC3B,GAnC2B,EAmCtB,GAnCsB,EAmCjB,GAnCiB,EAmCZ,GAnCY,EAmCP,GAnCO,EAmCF,GAnCE,EAmCG,GAnCH,EAmCQ,GAnCR,EAmCa,GAnCb,EAmCkB,GAnClB,EAmCuB,IAnCvB,EAmC6B,IAnC7B,EAmCmC,GAnCnC,EAoCrC,GApCqC,EAoChC,GApCgC,EAoC3B,GApC2B,EAoCtB,GApCsB,EAoCjB,GApCiB,EAoCZ,GApCY,EAoCP,GApCO,EAoCF,GApCE,EAoCG,GApCH,EAoCQ,GApCR,EAoCa,IApCb,EAoCmB,IApCnB,EAoCyB,GApCzB,EAoC8B,GApC9B,EAoCmC,GApCnC,EAqCrC,GArCqC,EAqChC,GArCgC,EAqC3B,GArC2B,EAqCtB,GArCsB,EAqCjB,GArCiB,EAqCZ,GArCY,EAqCP,GArCO,EAqCF,IArCE,EAqCI,GArCJ,EAqCS,GArCT,EAqCc,GArCd,EAqCmB,IArCnB,EAqCyB,IArCzB,EAqC+B,GArC/B,EAqCoC,GArCpC,EAsCrC,GAtCqC,EAsChC,GAtCgC,EAsC3B,GAtC2B,EAsCtB,GAtCsB,EAsCjB,GAtCiB,EAsCZ,GAtCY,EAsCP,IAtCO,EAsCD,GAtCC,EAsCI,IAtCJ,EAsCU,GAtCV,EAsCe,GAtCf,EAsCoB,GAtCpB,EAsCyB,GAtCzB,EAsC8B,GAtC9B,EAsCmC,GAtCnC,EAuCrC,GAvCqC,EAuChC,GAvCgC,EAuC3B,GAvC2B,EAuCtB,GAvCsB,EAuCjB,GAvCiB,EAuCZ,GAvCY,EAuCP,GAvCO,EAuCF,GAvCE,EAuCG,GAvCH,EAuCQ,GAvCR,EAuCa,GAvCb,EAuCkB,GAvClB,EAuCuB,GAvCvB,EAuC4B,GAvC5B,EAuCiC,GAvCjC,EAwCrC,GAxCqC,EAwChC,GAxCgC,EAwC3B,GAxC2B,EAwCtB,GAxCsB,EAwCjB,GAxCiB,EAwCZ,GAxCY,EAwCP,GAxCO,EAwCF,GAxCE,EAwCG,GAxCH,EAwCQ,GAxCR,EAwCa,GAxCb,EAwCkB,GAxClB,EAwCuB,GAxCvB,EAwC4B,GAxC5B,EAwCiC,GAxCjC,EAyCrC,GAzCqC,EAyChC,GAzCgC,EAyC3B,GAzC2B,EAyCtB,GAzCsB,EAyCjB,GAzCiB,EAyCZ,GAzCY,EAyCP,GAzCO,EAyCF,GAzCE,EAyCG,GAzCH,EAyCQ,GAzCR,EAyCa,GAzCb,EAyCkB,GAzClB,EAyCuB,GAzCvB,EAyC4B,GAzC5B,EAyCiC,GAzCjC,EA0CrC,GA1CqC,EA0ChC,GA1CgC,EA0C3B,GA1C2B,EA0CtB,GA1CsB,EA0CjB,GA1CiB,EA0CZ,GA1CY,EA0CP,GA1CO,EA0CF,GA1CE,EA0CG,GA1CH,EA0CQ,GA1CR,EA0Ca,GA1Cb,EA0CkB,GA1ClB,EA0CuB,GA1CvB,EA0C4B,GA1C5B,EA0CiC,GA1CjC,EA2CrC,GA3CqC,EA2ChC,GA3CgC,EA2C3B,GA3C2B,EA2CtB,GA3CsB,EA2CjB,GA3CiB,EA2CZ,GA3CY,EA2CP,GA3CO,EA2CF,IA3CE,EA2CI,GA3CJ,EA2CS,GA3CT,EA2Cc,GA3Cd,EA2CmB,GA3CnB,EA2CwB,GA3CxB,EA2C6B,GA3C7B,EA2CkC,GA3ClC,EA4CrC,GA5CqC,EA4ChC,GA5CgC,EA4C3B,GA5C2B,EA4CtB,IA5CsB,EA4ChB,IA5CgB,EA4CV,GA5CU,EA4CL,GA5CK,EA4CA,GA5CA,EA4CK,GA5CL,EA4CU,GA5CV,EA4Ce,GA5Cf,EA4CoB,GA5CpB,EA4CyB,GA5CzB,EA4C8B,GA5C9B,EA4CmC,GA5CnC,EA6CrC,GA7CqC,EA6ChC,GA7CgC,EA6C3B,GA7C2B,EA6CtB,GA7CsB,EA6CjB,GA7CiB,EA6CZ,GA7CY,EA6CP,GA7CO,EA6CF,GA7CE,EA6CG,GA7CH,EA6CQ,GA7CR,EA6Ca,GA7Cb,EA6CkB,GA7ClB,EA6CuB,GA7CvB,EA6C4B,GA7C5B,EA6CiC,GA7CjC,EA8CrC,GA9CqC,EA8ChC,GA9CgC,EA8C3B,GA9C2B,EA8CtB,GA9CsB,EA8CjB,GA9CiB,CAAvC;;AAkDA,MAAMC,kCAAkC,CACtC,CAAC,CADqC,EAClC,CAAC,CADiC,EAC9B,CAAC,CAD6B,EAC1B,EAD0B,EACtB,EADsB,EAClB,EADkB,EACd,EADc,EACV,EADU,EACN,EADM,EACF,EADE,EACE,EADF,EACM,EADN,EACU,EADV,EACc,EADd,EACkB,EADlB,EACsB,EADtB,EAC0B,EAD1B,EAC8B,EAD9B,EACkC,EADlC,EAEtC,EAFsC,EAElC,EAFkC,EAE9B,EAF8B,EAE1B,EAF0B,EAEtB,EAFsB,EAElB,EAFkB,EAEd,EAFc,EAEV,EAFU,EAEN,EAFM,EAEF,EAFE,EAEE,EAFF,EAEM,EAFN,EAEU,EAFV,EAEc,EAFd,EAEkB,EAFlB,EAEsB,EAFtB,EAE0B,EAF1B,EAE8B,EAF9B,EAEkC,EAFlC,EAGtC,EAHsC,EAGlC,EAHkC,EAG9B,EAH8B,EAG1B,EAH0B,EAGtB,EAHsB,EAGlB,EAHkB,EAGd,EAHc,EAGV,EAHU,EAGN,EAHM,EAGF,EAHE,EAGE,EAHF,EAGM,EAHN,EAGU,EAHV,EAGc,EAHd,EAGkB,EAHlB,EAGsB,EAHtB,EAG0B,EAH1B,EAG8B,EAH9B,EAGkC,EAHlC,EAItC,EAJsC,EAIlC,EAJkC,EAI9B,EAJ8B,EAI1B,EAJ0B,EAItB,EAJsB,EAIlB,EAJkB,EAId,EAJc,EAIV,EAJU,EAIN,EAJM,EAIF,EAJE,EAIE,EAJF,EAIM,EAJN,EAIU,EAJV,EAIc,EAJd,EAIkB,GAJlB,EAIuB,GAJvB,EAI4B,GAJ5B,EAIiC,GAJjC,EAKtC,GALsC,EAKjC,GALiC,EAK5B,GAL4B,EAKvB,GALuB,EAKlB,GALkB,EAKb,GALa,EAKR,GALQ,EAKH,GALG,EAKE,GALF,EAKO,GALP,EAKY,GALZ,EAKiB,GALjB,EAKsB,GALtB,EAK2B,GAL3B,EAKgC,GALhC,EAMtC,GANsC,EAMjC,GANiC,EAM5B,GAN4B,EAMvB,GANuB,EAMlB,GANkB,EAMb,GANa,EAMR,GANQ,EAMH,GANG,EAME,GANF,EAMO,GANP,EAMY,GANZ,EAMiB,GANjB,EAMsB,GANtB,EAM2B,GAN3B,EAMgC,GANhC,EAOtC,GAPsC,EAOjC,GAPiC,EAO5B,GAP4B,EAOvB,GAPuB,EAOlB,GAPkB,EAOb,GAPa,EAOR,GAPQ,EAOH,GAPG,EAOE,GAPF,EAOO,GAPP,EAOY,GAPZ,EAOiB,GAPjB,EAOsB,GAPtB,EAO2B,GAP3B,EAOgC,GAPhC,EAQtC,GARsC,EAQjC,GARiC,EAQ5B,GAR4B,EAQvB,GARuB,EAQlB,GARkB,EAQb,GARa,EAQR,GARQ,EAQH,GARG,EAQE,GARF,EAQO,GARP,EAQY,GARZ,EAQiB,GARjB,EAQsB,GARtB,EAQ2B,GAR3B,EAQgC,GARhC,EAStC,GATsC,EASjC,GATiC,EAS5B,GAT4B,EASvB,GATuB,EASlB,GATkB,EASb,GATa,EASR,GATQ,EASH,GATG,EASE,GATF,EASO,GATP,EASY,GATZ,EASiB,GATjB,EASsB,GATtB,EAS2B,GAT3B,EASgC,GAThC,EAUtC,GAVsC,EAUjC,GAViC,EAU5B,GAV4B,EAUvB,GAVuB,EAUlB,GAVkB,EAUb,GAVa,EAUR,GAVQ,EAUH,GAVG,EAUE,GAVF,EAUO,GAVP,EAUY,GAVZ,EAUiB,GAVjB,EAUsB,GAVtB,EAU2B,GAV3B,EAUgC,GAVhC,EAWtC,GAXsC,EAWjC,GAXiC,EAW5B,GAX4B,EAWvB,GAXuB,EAWlB,GAXkB,EAWb,GAXa,EAWR,GAXQ,EAWH,GAXG,EAWE,GAXF,EAWO,GAXP,EAWY,GAXZ,EAWiB,GAXjB,EAWsB,GAXtB,EAW2B,GAX3B,EAWgC,GAXhC,EAYtC,GAZsC,EAYjC,GAZiC,EAY5B,GAZ4B,EAYvB,GAZuB,EAYlB,GAZkB,EAYb,GAZa,EAYR,GAZQ,EAYH,GAZG,EAYE,GAZF,EAYO,GAZP,EAYY,GAZZ,EAYiB,GAZjB,EAYsB,GAZtB,EAY2B,GAZ3B,EAYgC,GAZhC,EAatC,GAbsC,EAajC,GAbiC,EAa5B,GAb4B,EAavB,GAbuB,EAalB,GAbkB,EAab,GAba,EAaR,GAbQ,EAaH,GAbG,EAaE,GAbF,EAaO,GAbP,EAaY,GAbZ,EAaiB,GAbjB,EAasB,GAbtB,EAa2B,GAb3B,EAagC,GAbhC,EActC,GAdsC,EAcjC,GAdiC,EAc5B,GAd4B,EAcvB,GAduB,EAclB,GAdkB,EAcb,GAda,EAcR,GAdQ,EAcH,GAdG,EAcE,GAdF,EAcO,GAdP,EAcY,GAdZ,EAciB,GAdjB,EAcsB,GAdtB,EAc2B,GAd3B,EAcgC,GAdhC,EAetC,GAfsC,EAejC,GAfiC,EAe5B,GAf4B,EAevB,GAfuB,EAelB,GAfkB,EAeb,GAfa,EAeR,GAfQ,EAeH,GAfG,EAeE,GAfF,EAeO,GAfP,EAeY,GAfZ,EAeiB,GAfjB,EAesB,GAftB,EAe2B,GAf3B,EAegC,GAfhC,EAgBtC,GAhBsC,EAgBjC,GAhBiC,EAgB5B,GAhB4B,EAgBvB,GAhBuB,EAgBlB,GAhBkB,EAgBb,GAhBa,EAgBR,GAhBQ,EAgBH,GAhBG,EAgBE,GAhBF,EAgBO,GAhBP,EAgBY,GAhBZ,EAgBiB,GAhBjB,EAgBsB,GAhBtB,EAgB2B,GAhB3B,EAgBgC,GAhBhC,EAiBtC,GAjBsC,EAiBjC,GAjBiC,EAiB5B,GAjB4B,EAiBvB,GAjBuB,EAiBlB,GAjBkB,EAiBb,GAjBa,EAiBR,GAjBQ,EAiBH,GAjBG,EAiBE,GAjBF,EAiBO,GAjBP,EAiBY,GAjBZ,EAiBiB,GAjBjB,EAiBsB,GAjBtB,EAiB2B,GAjB3B,EAiBgC,GAjBhC,EAkBtC,GAlBsC,EAkBjC,GAlBiC,EAkB5B,GAlB4B,EAkBvB,GAlBuB,EAkBlB,GAlBkB,EAkBb,GAlBa,EAkBR,GAlBQ,EAkBH,GAlBG,EAkBE,GAlBF,EAkBO,GAlBP,EAkBY,GAlBZ,EAkBiB,GAlBjB,EAkBsB,GAlBtB,EAkB2B,GAlB3B,EAkBgC,GAlBhC,EAmBtC,GAnBsC,EAmBjC,GAnBiC,EAmB5B,GAnB4B,EAmBvB,GAnBuB,EAmBlB,GAnBkB,EAmBb,GAnBa,EAmBR,GAnBQ,EAmBH,GAnBG,EAmBE,GAnBF,EAmBO,GAnBP,EAmBY,GAnBZ,EAmBiB,GAnBjB,EAmBsB,GAnBtB,EAmB2B,GAnB3B,EAmBgC,GAnBhC,EAoBtC,GApBsC,EAoBjC,GApBiC,EAoB5B,GApB4B,EAoBvB,GApBuB,EAoBlB,GApBkB,EAoBb,GApBa,EAoBR,GApBQ,EAoBH,GApBG,EAoBE,GApBF,EAoBO,GApBP,EAoBY,GApBZ,EAoBiB,GApBjB,EAoBsB,GApBtB,EAoB2B,GApB3B,EAoBgC,GApBhC,EAqBtC,GArBsC,EAqBjC,GArBiC,EAqB5B,GArB4B,EAqBvB,GArBuB,EAqBlB,GArBkB,EAqBb,GArBa,EAqBR,GArBQ,EAqBH,GArBG,EAqBE,GArBF,EAqBO,GArBP,EAqBY,GArBZ,EAqBiB,GArBjB,EAqBsB,GArBtB,EAqB2B,GArB3B,EAqBgC,GArBhC,EAsBtC,GAtBsC,EAsBjC,GAtBiC,EAsB5B,GAtB4B,EAsBvB,GAtBuB,EAsBlB,GAtBkB,EAsBb,GAtBa,EAsBR,GAtBQ,EAsBH,GAtBG,EAsBE,GAtBF,EAsBO,GAtBP,EAsBY,GAtBZ,EAsBiB,GAtBjB,EAsBsB,GAtBtB,EAsB2B,GAtB3B,EAsBgC,GAtBhC,EAuBtC,GAvBsC,EAuBjC,GAvBiC,EAuB5B,GAvB4B,EAuBvB,GAvBuB,EAuBlB,GAvBkB,EAuBb,GAvBa,EAuBR,GAvBQ,EAuBH,GAvBG,EAuBE,GAvBF,EAuBO,GAvBP,EAuBY,GAvBZ,EAuBiB,GAvBjB,EAuBsB,GAvBtB,EAuB2B,GAvB3B,EAuBgC,GAvBhC,EAwBtC,GAxBsC,EAwBjC,GAxBiC,EAwB5B,GAxB4B,EAwBvB,GAxBuB,EAwBlB,GAxBkB,EAwBb,GAxBa,EAwBR,GAxBQ,EAwBH,GAxBG,EAwBE,GAxBF,EAwBO,GAxBP,EAwBY,GAxBZ,EAwBiB,GAxBjB,EAwBsB,GAxBtB,EAwB2B,GAxB3B,EAwBgC,GAxBhC,EAyBtC,GAzBsC,EAyBjC,GAzBiC,EAyB5B,GAzB4B,EAyBvB,GAzBuB,EAyBlB,GAzBkB,EAyBb,GAzBa,EAyBR,GAzBQ,EAyBH,GAzBG,EAyBE,GAzBF,EAyBO,GAzBP,EAyBY,GAzBZ,EAyBiB,GAzBjB,EAyBsB,GAzBtB,EAyB2B,GAzB3B,EAyBgC,GAzBhC,EA0BtC,GA1BsC,EA0BjC,GA1BiC,EA0B5B,GA1B4B,EA0BvB,GA1BuB,EA0BlB,GA1BkB,EA0Bb,GA1Ba,EA0BR,GA1BQ,EA0BH,GA1BG,EA0BE,GA1BF,EA0BO,GA1BP,EA0BY,GA1BZ,EA0BiB,GA1BjB,EA0BsB,GA1BtB,EA0B2B,GA1B3B,EA0BgC,GA1BhC,EA2BtC,GA3BsC,EA2BjC,GA3BiC,EA2B5B,GA3B4B,EA2BvB,GA3BuB,EA2BlB,GA3BkB,EA2Bb,GA3Ba,EA2BR,GA3BQ,EA2BH,IA3BG,EA2BG,IA3BH,EA2BS,IA3BT,EA2Be,IA3Bf,EA2BqB,IA3BrB,EA2B2B,IA3B3B,EA2BiC,IA3BjC,EA4BtC,IA5BsC,EA4BhC,IA5BgC,EA4B1B,IA5B0B,EA4BpB,IA5BoB,EA4Bd,IA5Bc,EA4BR,IA5BQ,EA4BF,IA5BE,EA4BI,IA5BJ,EA4BU,IA5BV,EA4BgB,IA5BhB,EA4BsB,IA5BtB,EA4B4B,IA5B5B,EA4BkC,IA5BlC,EA6BtC,IA7BsC,EA6BhC,IA7BgC,EA6B1B,IA7B0B,EA6BpB,IA7BoB,EA6Bd,IA7Bc,EA6BR,IA7BQ,EA6BF,IA7BE,EA6BI,IA7BJ,EA6BU,IA7BV,EA6BgB,IA7BhB,EA6BsB,IA7BtB,EA6B4B,IA7B5B,EA6BkC,IA7BlC,EA8BtC,IA9BsC,EA8BhC,IA9BgC,EA8B1B,IA9B0B,EA8BpB,IA9BoB,EA8Bd,IA9Bc,EA8BR,IA9BQ,EA8BF,IA9BE,EA8BI,IA9BJ,EA8BU,IA9BV,EA8BgB,IA9BhB,EA8BsB,IA9BtB,EA8B4B,IA9B5B,EA8BkC,IA9BlC,EA+BtC,IA/BsC,EA+BhC,IA/BgC,EA+B1B,IA/B0B,EA+BpB,IA/BoB,EA+Bd,IA/Bc,EA+BR,IA/BQ,EA+BF,IA/BE,EA+BI,IA/BJ,EA+BU,IA/BV,EA+BgB,IA/BhB,EA+BsB,IA/BtB,EA+B4B,IA/B5B,EA+BkC,IA/BlC,EAgCtC,IAhCsC,EAgChC,IAhCgC,EAgC1B,IAhC0B,EAgCpB,IAhCoB,EAgCd,IAhCc,EAgCR,IAhCQ,EAgCF,IAhCE,EAgCI,IAhCJ,EAgCU,IAhCV,EAgCgB,IAhChB,EAgCsB,IAhCtB,EAgC4B,IAhC5B,EAgCkC,IAhClC,EAiCtC,IAjCsC,EAiChC,IAjCgC,EAiC1B,IAjC0B,EAiCpB,IAjCoB,EAiCd,IAjCc,EAiCR,IAjCQ,EAiCF,IAjCE,EAiCI,IAjCJ,EAiCU,IAjCV,EAiCgB,IAjChB,EAiCsB,IAjCtB,EAiC4B,IAjC5B,EAiCkC,IAjClC,EAkCtC,IAlCsC,EAkChC,IAlCgC,EAkC1B,IAlC0B,EAkCpB,IAlCoB,EAkCd,IAlCc,EAkCR,IAlCQ,EAkCF,IAlCE,EAkCI,IAlCJ,EAkCU,IAlCV,EAkCgB,IAlChB,EAkCsB,IAlCtB,EAkC4B,IAlC5B,EAkCkC,IAlClC,EAmCtC,IAnCsC,EAmChC,IAnCgC,EAmC1B,IAnC0B,EAmCpB,IAnCoB,EAmCd,IAnCc,EAmCR,IAnCQ,EAmCF,IAnCE,EAmCI,IAnCJ,EAmCU,IAnCV,EAmCgB,IAnChB,EAmCsB,IAnCtB,EAmC4B,IAnC5B,EAmCkC,IAnClC,EAoCtC,IApCsC,EAoChC,IApCgC,EAoC1B,IApC0B,EAoCpB,IApCoB,EAoCd,IApCc,EAoCR,IApCQ,EAoCF,IApCE,EAoCI,IApCJ,EAoCU,IApCV,EAoCgB,IApChB,EAoCsB,IApCtB,EAoC4B,IApC5B,EAoCkC,IApClC,EAqCtC,IArCsC,EAqChC,IArCgC,EAqC1B,IArC0B,EAqCpB,IArCoB,EAqCd,IArCc,EAqCR,IArCQ,EAqCF,IArCE,EAqCI,IArCJ,EAqCU,IArCV,EAqCgB,IArChB,EAqCsB,IArCtB,EAqC4B,IArC5B,EAqCkC,IArClC,EAsCtC,IAtCsC,EAsChC,IAtCgC,EAsC1B,IAtC0B,EAsCpB,IAtCoB,EAsCd,IAtCc,EAsCR,IAtCQ,EAsCF,IAtCE,EAsCI,IAtCJ,EAsCU,IAtCV,EAsCgB,IAtChB,EAsCsB,IAtCtB,EAsC4B,IAtC5B,EAsCkC,IAtClC,EAuCtC,IAvCsC,EAuChC,IAvCgC,EAuC1B,IAvC0B,EAuCpB,IAvCoB,EAuCd,IAvCc,EAuCR,IAvCQ,EAuCF,IAvCE,EAuCI,IAvCJ,EAuCU,IAvCV,EAuCgB,IAvChB,EAuCsB,IAvCtB,EAuC4B,IAvC5B,EAuCkC,IAvClC,EAwCtC,IAxCsC,EAwChC,IAxCgC,EAwC1B,IAxC0B,EAwCpB,IAxCoB,EAwCd,IAxCc,EAwCR,IAxCQ,EAwCF,IAxCE,EAwCI,IAxCJ,EAwCU,IAxCV,EAwCgB,IAxChB,EAwCsB,IAxCtB,EAwC4B,IAxC5B,EAwCkC,IAxClC,EAyCtC,IAzCsC,EAyChC,IAzCgC,EAyC1B,IAzC0B,EAyCpB,IAzCoB,EAyCd,IAzCc,EAyCR,IAzCQ,EAyCF,IAzCE,EAyCI,IAzCJ,EAyCU,IAzCV,EAyCgB,IAzChB,EAyCsB,IAzCtB,EAyC4B,IAzC5B,EAyCkC,IAzClC,EA0CtC,IA1CsC,EA0ChC,IA1CgC,EA0C1B,IA1C0B,EA0CpB,IA1CoB,EA0Cd,IA1Cc,EA0CR,IA1CQ,EA0CF,IA1CE,EA0CI,IA1CJ,EA0CU,IA1CV,EA0CgB,IA1ChB,EA0CsB,IA1CtB,EA0C4B,IA1C5B,EA0CkC,IA1ClC,EA2CtC,IA3CsC,EA2ChC,IA3CgC,EA2C1B,IA3C0B,EA2CpB,IA3CoB,EA2Cd,IA3Cc,EA2CR,IA3CQ,EA2CF,IA3CE,EA2CI,IA3CJ,EA2CU,IA3CV,EA2CgB,IA3ChB,EA2CsB,IA3CtB,EA2C4B,IA3C5B,EA2CkC,IA3ClC,EA4CtC,IA5CsC,EA4ChC,IA5CgC,EA4C1B,IA5C0B,EA4CpB,IA5CoB,EA4Cd,IA5Cc,EA4CR,IA5CQ,EA4CF,IA5CE,EA4CI,IA5CJ,EA4CU,IA5CV,EA4CgB,IA5ChB,EA4CsB,IA5CtB,EA4C4B,IA5C5B,EA4CkC,IA5ClC,EA6CtC,IA7CsC,EA6ChC,IA7CgC,EA6C1B,IA7C0B,EA6CpB,IA7CoB,EA6Cd,IA7Cc,EA6CR,IA7CQ,EA6CF,IA7CE,EA6CI,IA7CJ,EA6CU,IA7CV,EA6CgB,IA7ChB,EA6CsB,IA7CtB,EA6C4B,IA7C5B,EA6CkC,IA7ClC,EA8CtC,IA9CsC,EA8ChC,IA9CgC,EA8C1B,IA9C0B,EA8CpB,IA9CoB,EA8Cd,IA9Cc,EA8CR,IA9CQ,EA8CF,IA9CE,EA8CI,IA9CJ,EA8CU,KA9CV,EA8CiB,KA9CjB,EA8CwB,KA9CxB,EA8C+B,CAAC,CA9ChC,EA8CmC,CAAC,CA9CpC,EA+CtC,CAAC,CA/CqC,EA+ClC,CAAC,CA/CiC,EA+C9B,CAAC,CA/C6B,EA+C1B,CAAC,CA/CyB,EA+CtB,CAAC,CA/CqB,EA+ClB,CAAC,CA/CiB,EA+Cd,CAAC,CA/Ca,EA+CV,CAAC,CA/CS,EA+CN,CAAC,CA/CK,EA+CF,CAAC,CA/CC,EA+CE,CAAC,CA/CH,EA+CM,CAAC,CA/CP,EA+CU,CAAC,CA/CX,EA+Cc,CAAC,CA/Cf,EA+CkB,CAAC,CA/CnB,CAAxC;;AAmDA,MAAML,6BAA6B,CACjC,GADiC,EAC5B,CAD4B,EACzB,GADyB,EACpB,GADoB,EACf,GADe,EACV,GADU,EACL,GADK,EACA,GADA,EACK,GADL,EACU,GADV,EACe,GADf,EACoB,GADpB,EACyB,GADzB,EAC8B,GAD9B,EACmC,GADnC,EACwC,GADxC,EAEjC,GAFiC,EAE5B,GAF4B,EAEvB,GAFuB,EAElB,GAFkB,EAEb,GAFa,EAER,GAFQ,EAEH,GAFG,EAEE,GAFF,EAEO,GAFP,EAEY,GAFZ,EAEiB,GAFjB,EAEsB,GAFtB,EAE2B,GAF3B,EAEgC,GAFhC,EAEqC,GAFrC,EAGjC,GAHiC,EAG5B,GAH4B,EAGvB,GAHuB,EAGlB,GAHkB,EAGb,IAHa,EAGP,GAHO,EAGF,GAHE,EAGG,GAHH,EAGQ,GAHR,EAGa,GAHb,EAGkB,GAHlB,EAGuB,GAHvB,EAG4B,GAH5B,EAGiC,GAHjC,EAGsC,GAHtC,EAIjC,GAJiC,EAI5B,GAJ4B,EAIvB,GAJuB,EAIlB,GAJkB,EAIb,GAJa,EAIR,GAJQ,EAIH,GAJG,EAIE,GAJF,EAIO,GAJP,EAIY,GAJZ,EAIiB,GAJjB,EAIsB,GAJtB,EAI2B,GAJ3B,EAIgC,GAJhC,EAIqC,GAJrC,EAKjC,GALiC,EAK5B,GAL4B,EAKvB,GALuB,EAKlB,GALkB,EAKb,GALa,EAKR,GALQ,EAKH,GALG,EAKE,GALF,EAKO,GALP,EAKY,GALZ,EAKiB,GALjB,EAKsB,GALtB,EAK2B,GAL3B,EAKgC,GALhC,EAKqC,GALrC,EAMjC,GANiC,EAM5B,GAN4B,EAMvB,GANuB,EAMlB,GANkB,EAMb,GANa,EAMR,GANQ,EAMH,GANG,EAME,GANF,EAMO,GANP,EAMY,GANZ,EAMiB,GANjB,EAMsB,GANtB,EAM2B,GAN3B,EAMgC,GANhC,EAMqC,GANrC,EAOjC,GAPiC,EAO5B,GAP4B,EAOvB,GAPuB,EAOlB,GAPkB,EAOb,GAPa,EAOR,GAPQ,EAOH,GAPG,EAOE,GAPF,EAOO,GAPP,EAOY,GAPZ,EAOiB,GAPjB,EAOsB,GAPtB,EAO2B,GAP3B,EAOgC,GAPhC,EAOqC,GAPrC,EAQjC,GARiC,EAQ5B,GAR4B,EAQvB,GARuB,EAQlB,GARkB,EAQb,GARa,EAQR,GARQ,EAQH,GARG,EAQE,GARF,EAQO,GARP,EAQY,GARZ,EAQiB,GARjB,EAQsB,GARtB,EAQ2B,GAR3B,EAQgC,GARhC,EAQqC,GARrC,EASjC,GATiC,EAS5B,GAT4B,EASvB,GATuB,EASlB,GATkB,EASb,GATa,EASR,GATQ,EASH,GATG,EASE,GATF,EASO,GATP,EASY,GATZ,EASiB,GATjB,EASsB,GATtB,EAS2B,GAT3B,EASgC,IAThC,EASsC,GATtC,EAUjC,GAViC,EAU5B,GAV4B,EAUvB,GAVuB,EAUlB,GAVkB,EAUb,GAVa,EAUR,GAVQ,EAUH,GAVG,EAUE,GAVF,EAUO,GAVP,EAUY,GAVZ,EAUiB,GAVjB,EAUsB,GAVtB,EAU2B,GAV3B,EAUgC,GAVhC,EAUqC,GAVrC,EAWjC,GAXiC,EAW5B,GAX4B,EAWvB,GAXuB,EAWlB,GAXkB,EAWb,GAXa,EAWR,GAXQ,EAWH,GAXG,EAWE,GAXF,EAWO,GAXP,EAWY,GAXZ,EAWiB,GAXjB,EAWsB,GAXtB,EAW2B,GAX3B,EAWgC,GAXhC,EAWqC,GAXrC,EAYjC,GAZiC,EAY5B,GAZ4B,EAYvB,GAZuB,EAYlB,GAZkB,EAYb,GAZa,EAYR,GAZQ,EAYH,GAZG,EAYE,GAZF,EAYO,GAZP,EAYY,GAZZ,EAYiB,GAZjB,EAYsB,GAZtB,EAY2B,GAZ3B,EAYgC,GAZhC,EAYqC,GAZrC,EAajC,GAbiC,EAa5B,GAb4B,EAavB,GAbuB,EAalB,GAbkB,EAab,GAba,EAaR,GAbQ,EAaH,GAbG,EAaE,GAbF,EAaO,GAbP,EAaY,GAbZ,EAaiB,GAbjB,EAasB,GAbtB,EAa2B,GAb3B,EAagC,GAbhC,EAaqC,GAbrC,EAcjC,GAdiC,EAc5B,GAd4B,EAcvB,GAduB,EAclB,GAdkB,EAcb,GAda,EAcR,GAdQ,EAcH,GAdG,EAcE,GAdF,EAcO,GAdP,EAcY,GAdZ,EAciB,GAdjB,EAcsB,GAdtB,EAc2B,GAd3B,EAcgC,GAdhC,EAcqC,GAdrC,EAejC,GAfiC,EAe5B,GAf4B,EAevB,GAfuB,EAelB,GAfkB,EAeb,GAfa,EAeR,GAfQ,EAeH,GAfG,EAeE,GAfF,EAeO,GAfP,EAeY,GAfZ,EAeiB,GAfjB,EAesB,GAftB,EAe2B,GAf3B,EAegC,GAfhC,EAeqC,GAfrC,EAgBjC,GAhBiC,EAgB5B,GAhB4B,EAgBvB,GAhBuB,EAgBlB,GAhBkB,EAgBb,GAhBa,EAgBR,GAhBQ,EAgBH,GAhBG,EAgBE,GAhBF,EAgBO,GAhBP,EAgBY,GAhBZ,EAgBiB,GAhBjB,EAgBsB,GAhBtB,EAgB2B,GAhB3B,EAgBgC,GAhBhC,EAgBqC,GAhBrC,EAiBjC,GAjBiC,EAiB5B,GAjB4B,EAiBvB,GAjBuB,EAiBlB,GAjBkB,EAiBb,GAjBa,EAiBR,GAjBQ,EAiBH,GAjBG,EAiBE,GAjBF,EAiBO,GAjBP,EAiBY,GAjBZ,EAiBiB,GAjBjB,EAiBsB,GAjBtB,EAiB2B,GAjB3B,EAiBgC,GAjBhC,EAiBqC,GAjBrC,EAkBjC,GAlBiC,EAkB5B,GAlB4B,EAkBvB,GAlBuB,EAkBlB,GAlBkB,EAkBb,GAlBa,EAkBR,GAlBQ,EAkBH,GAlBG,EAkBE,GAlBF,EAkBO,GAlBP,EAkBY,GAlBZ,EAkBiB,GAlBjB,EAkBsB,GAlBtB,EAkB2B,GAlB3B,EAkBgC,GAlBhC,EAkBqC,GAlBrC,EAmBjC,GAnBiC,EAmB5B,GAnB4B,EAmBvB,GAnBuB,EAmBlB,IAnBkB,EAmBZ,GAnBY,EAmBP,GAnBO,EAmBF,GAnBE,EAmBG,GAnBH,EAmBQ,GAnBR,EAmBa,GAnBb,EAmBkB,GAnBlB,EAmBuB,GAnBvB,EAmB4B,GAnB5B,EAmBiC,GAnBjC,EAmBsC,GAnBtC,EAoBjC,GApBiC,EAoB5B,GApB4B,EAoBvB,GApBuB,EAoBlB,GApBkB,EAoBb,GApBa,EAoBR,GApBQ,EAoBH,GApBG,EAoBE,GApBF,EAoBO,GApBP,EAoBY,GApBZ,EAoBiB,GApBjB,EAoBsB,GApBtB,EAoB2B,GApB3B,EAoBgC,GApBhC,EAoBqC,GApBrC,EAqBjC,GArBiC,EAqB5B,GArB4B,EAqBvB,GArBuB,EAqBlB,GArBkB,EAqBb,GArBa,EAqBR,GArBQ,EAqBH,GArBG,EAqBE,GArBF,EAqBO,GArBP,EAqBY,GArBZ,EAqBiB,GArBjB,EAqBsB,GArBtB,EAqB2B,GArB3B,EAqBgC,GArBhC,EAqBqC,GArBrC,EAsBjC,GAtBiC,EAsB5B,GAtB4B,EAsBvB,GAtBuB,EAsBlB,GAtBkB,EAsBb,GAtBa,EAsBR,GAtBQ,EAsBH,GAtBG,EAsBE,IAtBF,EAsBQ,GAtBR,EAsBa,GAtBb,EAsBkB,GAtBlB,EAsBuB,GAtBvB,EAsB4B,GAtB5B,EAsBiC,GAtBjC,EAsBsC,GAtBtC,EAuBjC,GAvBiC,EAuB5B,GAvB4B,EAuBvB,GAvBuB,EAuBlB,GAvBkB,EAuBb,GAvBa,EAuBR,GAvBQ,EAuBH,GAvBG,EAuBE,GAvBF,EAuBO,GAvBP,EAuBY,GAvBZ,EAuBiB,GAvBjB,EAuBsB,GAvBtB,EAuB2B,GAvB3B,EAuBgC,GAvBhC,EAuBqC,GAvBrC,EAwBjC,GAxBiC,EAwB5B,GAxB4B,EAwBvB,GAxBuB,EAwBlB,GAxBkB,EAwBb,GAxBa,EAwBR,GAxBQ,EAwBH,GAxBG,EAwBE,GAxBF,EAwBO,GAxBP,EAwBY,GAxBZ,EAwBiB,GAxBjB,EAwBsB,GAxBtB,EAwB2B,GAxB3B,EAwBgC,GAxBhC,EAwBqC,GAxBrC,EAyBjC,GAzBiC,EAyB5B,GAzB4B,EAyBvB,GAzBuB,EAyBlB,GAzBkB,EAyBb,GAzBa,EAyBR,GAzBQ,EAyBH,GAzBG,EAyBE,GAzBF,EAyBO,GAzBP,EAyBY,GAzBZ,EAyBiB,GAzBjB,EAyBsB,GAzBtB,EAyB2B,GAzB3B,EAyBgC,GAzBhC,EAyBqC,GAzBrC,EA0BjC,GA1BiC,EA0B5B,GA1B4B,EA0BvB,GA1BuB,EA0BlB,GA1BkB,EA0Bb,GA1Ba,EA0BR,GA1BQ,EA0BH,GA1BG,EA0BE,GA1BF,EA0BO,GA1BP,EA0BY,GA1BZ,EA0BiB,GA1BjB,EA0BsB,GA1BtB,EA0B2B,GA1B3B,EA0BgC,GA1BhC,EA0BqC,GA1BrC,EA2BjC,GA3BiC,EA2B5B,GA3B4B,EA2BvB,GA3BuB,EA2BlB,GA3BkB,EA2Bb,GA3Ba,EA2BR,GA3BQ,EA2BH,GA3BG,EA2BE,GA3BF,EA2BO,GA3BP,EA2BY,GA3BZ,EA2BiB,GA3BjB,EA2BsB,GA3BtB,EA2B2B,GA3B3B,EA2BgC,GA3BhC,EA2BqC,GA3BrC,EA4BjC,GA5BiC,EA4B5B,GA5B4B,EA4BvB,GA5BuB,EA4BlB,GA5BkB,EA4Bb,GA5Ba,EA4BR,GA5BQ,EA4BH,GA5BG,EA4BE,GA5BF,EA4BO,GA5BP,EA4BY,GA5BZ,EA4BiB,GA5BjB,EA4BsB,GA5BtB,EA4B2B,GA5B3B,EA4BgC,GA5BhC,EA4BqC,GA5BrC,EA6BjC,IA7BiC,EA6B3B,GA7B2B,EA6BtB,GA7BsB,EA6BjB,GA7BiB,EA6BZ,GA7BY,EA6BP,GA7BO,EA6BF,GA7BE,EA6BG,GA7BH,EA6BQ,GA7BR,EA6Ba,GA7Bb,EA6BkB,GA7BlB,EA6BuB,GA7BvB,EA6B4B,GA7B5B,EA6BiC,GA7BjC,EA6BsC,GA7BtC,EA8BjC,GA9BiC,EA8B5B,GA9B4B,EA8BvB,GA9BuB,EA8BlB,GA9BkB,EA8Bb,GA9Ba,EA8BR,GA9BQ,EA8BH,GA9BG,EA8BE,GA9BF,EA8BO,GA9BP,EA8BY,GA9BZ,EA8BiB,GA9BjB,EA8BsB,GA9BtB,EA8B2B,GA9B3B,EA8BgC,GA9BhC,EA8BqC,GA9BrC,EA+BjC,GA/BiC,EA+B5B,GA/B4B,EA+BvB,GA/BuB,EA+BlB,GA/BkB,EA+Bb,GA/Ba,EA+BR,GA/BQ,EA+BH,GA/BG,EA+BE,IA/BF,EA+BQ,GA/BR,EA+Ba,GA/Bb,EA+BkB,GA/BlB,EA+BuB,GA/BvB,EA+B4B,GA/B5B,EA+BiC,GA/BjC,EA+BsC,GA/BtC,EAgCjC,GAhCiC,EAgC5B,GAhC4B,EAgCvB,GAhCuB,EAgClB,GAhCkB,EAgCb,GAhCa,EAgCR,GAhCQ,EAgCH,GAhCG,EAgCE,GAhCF,EAgCO,GAhCP,EAgCY,GAhCZ,EAgCiB,GAhCjB,EAgCsB,GAhCtB,EAgC2B,GAhC3B,EAgCgC,GAhChC,EAgCqC,GAhCrC,EAiCjC,GAjCiC,EAiC5B,GAjC4B,EAiCvB,GAjCuB,EAiClB,GAjCkB,EAiCb,GAjCa,EAiCR,GAjCQ,EAiCH,GAjCG,EAiCE,GAjCF,EAiCO,GAjCP,EAiCY,GAjCZ,EAiCiB,GAjCjB,EAiCsB,GAjCtB,EAiC2B,GAjC3B,EAiCgC,GAjChC,EAiCqC,GAjCrC,EAkCjC,GAlCiC,EAkC5B,GAlC4B,EAkCvB,GAlCuB,EAkClB,GAlCkB,EAkCb,GAlCa,EAkCR,GAlCQ,EAkCH,GAlCG,EAkCE,GAlCF,EAkCO,GAlCP,EAkCY,GAlCZ,EAkCiB,GAlCjB,EAkCsB,GAlCtB,EAkC2B,GAlC3B,EAkCgC,GAlChC,EAkCqC,GAlCrC,EAmCjC,GAnCiC,EAmC5B,GAnC4B,EAmCvB,GAnCuB,EAmClB,GAnCkB,EAmCb,GAnCa,EAmCR,GAnCQ,EAmCH,GAnCG,EAmCE,GAnCF,EAmCO,GAnCP,EAmCY,GAnCZ,EAmCiB,GAnCjB,EAmCsB,GAnCtB,EAmC2B,IAnC3B,EAmCiC,IAnCjC,EAmCuC,GAnCvC,EAoCjC,GApCiC,EAoC5B,GApC4B,EAoCvB,GApCuB,EAoClB,GApCkB,EAoCb,GApCa,EAoCR,GApCQ,EAoCH,GApCG,EAoCE,GApCF,EAoCO,GApCP,EAoCY,GApCZ,EAoCiB,IApCjB,EAoCuB,IApCvB,EAoC6B,GApC7B,EAoCkC,GApClC,EAoCuC,GApCvC,EAqCjC,GArCiC,EAqC5B,GArC4B,EAqCvB,GArCuB,EAqClB,GArCkB,EAqCb,GArCa,EAqCR,GArCQ,EAqCH,GArCG,EAqCE,IArCF,EAqCQ,GArCR,EAqCa,GArCb,EAqCkB,GArClB,EAqCuB,IArCvB,EAqC6B,IArC7B,EAqCmC,GArCnC,EAqCwC,GArCxC,EAsCjC,GAtCiC,EAsC5B,GAtC4B,EAsCvB,GAtCuB,EAsClB,GAtCkB,EAsCb,IAtCa,EAsCP,GAtCO,EAsCF,GAtCE,EAsCG,GAtCH,EAsCQ,IAtCR,EAsCc,GAtCd,EAsCmB,GAtCnB,EAsCwB,GAtCxB,EAsC6B,GAtC7B,EAsCkC,GAtClC,EAsCuC,GAtCvC,EAuCjC,GAvCiC,EAuC5B,GAvC4B,EAuCvB,GAvCuB,EAuClB,GAvCkB,EAuCb,GAvCa,EAuCR,GAvCQ,EAuCH,GAvCG,EAuCE,GAvCF,EAuCO,GAvCP,EAuCY,GAvCZ,EAuCiB,GAvCjB,EAuCsB,GAvCtB,EAuC2B,GAvC3B,EAuCgC,GAvChC,EAuCqC,GAvCrC,EAwCjC,GAxCiC,EAwC5B,GAxC4B,EAwCvB,GAxCuB,EAwClB,GAxCkB,EAwCb,GAxCa,EAwCR,GAxCQ,EAwCH,GAxCG,EAwCE,GAxCF,EAwCO,GAxCP,EAwCY,GAxCZ,EAwCiB,GAxCjB,EAwCsB,GAxCtB,EAwC2B,GAxC3B,EAwCgC,GAxChC,EAwCqC,GAxCrC,EAyCjC,GAzCiC,EAyC5B,GAzC4B,EAyCvB,GAzCuB,EAyClB,GAzCkB,EAyCb,GAzCa,EAyCR,GAzCQ,EAyCH,GAzCG,EAyCE,GAzCF,EAyCO,GAzCP,EAyCY,GAzCZ,EAyCiB,GAzCjB,EAyCsB,GAzCtB,EAyC2B,GAzC3B,EAyCgC,GAzChC,EAyCqC,GAzCrC,EA0CjC,GA1CiC,EA0C5B,GA1C4B,EA0CvB,GA1CuB,EA0ClB,GA1CkB,EA0Cb,GA1Ca,EA0CR,GA1CQ,EA0CH,GA1CG,EA0CE,GA1CF,EA0CO,GA1CP,EA0CY,GA1CZ,EA0CiB,GA1CjB,EA0CsB,GA1CtB,EA0C2B,GA1C3B,EA0CgC,GA1ChC,EA0CqC,GA1CrC,EA2CjC,GA3CiC,EA2C5B,GA3C4B,EA2CvB,GA3CuB,EA2ClB,GA3CkB,EA2Cb,GA3Ca,EA2CR,GA3CQ,EA2CH,GA3CG,EA2CE,IA3CF,EA2CQ,GA3CR,EA2Ca,GA3Cb,EA2CkB,GA3ClB,EA2CuB,GA3CvB,EA2C4B,GA3C5B,EA2CiC,GA3CjC,EA2CsC,GA3CtC,EA4CjC,GA5CiC,EA4C5B,GA5C4B,EA4CvB,GA5CuB,EA4ClB,IA5CkB,EA4CZ,IA5CY,EA4CN,GA5CM,EA4CD,GA5CC,EA4CI,GA5CJ,EA4CS,GA5CT,EA4Cc,GA5Cd,EA4CmB,GA5CnB,EA4CwB,GA5CxB,EA4C6B,GA5C7B,EA4CkC,GA5ClC,EA4CuC,GA5CvC,EA6CjC,GA7CiC,EA6C5B,GA7C4B,EA6CvB,GA7CuB,EA6ClB,GA7CkB,EA6Cb,GA7Ca,EA6CR,GA7CQ,EA6CH,GA7CG,EA6CE,GA7CF,EA6CO,GA7CP,EA6CY,GA7CZ,EA6CiB,GA7CjB,EA6CsB,GA7CtB,EA6C2B,GA7C3B,EA6CgC,GA7ChC,EA6CqC,GA7CrC,EA8CjC,GA9CiC,EA8C5B,GA9C4B,EA8CvB,GA9CuB,EA8ClB,GA9CkB,EA8Cb,GA9Ca,CAAnC;;AAkDA,MAAMC,8BAA8B,CAClC,CAAC,CADiC,EAC9B,CAAC,CAD6B,EAC1B,CAAC,CADyB,EACtB,EADsB,EAClB,EADkB,EACd,EADc,EACV,EADU,EACN,EADM,EACF,EADE,EACE,EADF,EACM,EADN,EACU,EADV,EACc,EADd,EACkB,EADlB,EACsB,EADtB,EAC0B,EAD1B,EAC8B,EAD9B,EACkC,EADlC,EACsC,EADtC,EAElC,EAFkC,EAE9B,EAF8B,EAE1B,EAF0B,EAEtB,EAFsB,EAElB,EAFkB,EAEd,EAFc,EAEV,EAFU,EAEN,EAFM,EAEF,EAFE,EAEE,EAFF,EAEM,EAFN,EAEU,EAFV,EAEc,EAFd,EAEkB,EAFlB,EAEsB,EAFtB,EAE0B,EAF1B,EAE8B,EAF9B,EAEkC,EAFlC,EAEsC,EAFtC,EAGlC,EAHkC,EAG9B,EAH8B,EAG1B,EAH0B,EAGtB,EAHsB,EAGlB,EAHkB,EAGd,EAHc,EAGV,EAHU,EAGN,EAHM,EAGF,EAHE,EAGE,EAHF,EAGM,EAHN,EAGU,EAHV,EAGc,EAHd,EAGkB,EAHlB,EAGsB,EAHtB,EAG0B,EAH1B,EAG8B,EAH9B,EAGkC,EAHlC,EAGsC,EAHtC,EAIlC,EAJkC,EAI9B,EAJ8B,EAI1B,EAJ0B,EAItB,EAJsB,EAIlB,EAJkB,EAId,EAJc,EAIV,EAJU,EAIN,EAJM,EAIF,EAJE,EAIE,EAJF,EAIM,EAJN,EAIU,EAJV,EAIc,EAJd,EAIkB,EAJlB,EAIsB,GAJtB,EAI2B,GAJ3B,EAIgC,GAJhC,EAIqC,GAJrC,EAKlC,GALkC,EAK7B,GAL6B,EAKxB,GALwB,EAKnB,GALmB,EAKd,GALc,EAKT,GALS,EAKJ,GALI,EAKC,GALD,EAKM,GALN,EAKW,GALX,EAKgB,GALhB,EAKqB,GALrB,EAK0B,GAL1B,EAK+B,GAL/B,EAKoC,GALpC,EAMlC,GANkC,EAM7B,GAN6B,EAMxB,GANwB,EAMnB,GANmB,EAMd,GANc,EAMT,GANS,EAMJ,GANI,EAMC,GAND,EAMM,GANN,EAMW,GANX,EAMgB,GANhB,EAMqB,GANrB,EAM0B,GAN1B,EAM+B,GAN/B,EAMoC,GANpC,EAOlC,GAPkC,EAO7B,GAP6B,EAOxB,GAPwB,EAOnB,GAPmB,EAOd,GAPc,EAOT,GAPS,EAOJ,GAPI,EAOC,GAPD,EAOM,GAPN,EAOW,GAPX,EAOgB,GAPhB,EAOqB,GAPrB,EAO0B,GAP1B,EAO+B,GAP/B,EAOoC,GAPpC,EAQlC,GARkC,EAQ7B,GAR6B,EAQxB,GARwB,EAQnB,GARmB,EAQd,GARc,EAQT,GARS,EAQJ,GARI,EAQC,GARD,EAQM,GARN,EAQW,GARX,EAQgB,GARhB,EAQqB,GARrB,EAQ0B,GAR1B,EAQ+B,GAR/B,EAQoC,GARpC,EASlC,GATkC,EAS7B,GAT6B,EASxB,GATwB,EASnB,GATmB,EASd,GATc,EAST,GATS,EASJ,GATI,EASC,GATD,EASM,GATN,EASW,GATX,EASgB,GAThB,EASqB,GATrB,EAS0B,GAT1B,EAS+B,GAT/B,EASoC,GATpC,EAUlC,GAVkC,EAU7B,GAV6B,EAUxB,GAVwB,EAUnB,GAVmB,EAUd,GAVc,EAUT,GAVS,EAUJ,GAVI,EAUC,GAVD,EAUM,GAVN,EAUW,GAVX,EAUgB,GAVhB,EAUqB,GAVrB,EAU0B,GAV1B,EAU+B,GAV/B,EAUoC,GAVpC,EAWlC,GAXkC,EAW7B,GAX6B,EAWxB,GAXwB,EAWnB,GAXmB,EAWd,GAXc,EAWT,GAXS,EAWJ,GAXI,EAWC,GAXD,EAWM,GAXN,EAWW,GAXX,EAWgB,GAXhB,EAWqB,GAXrB,EAW0B,GAX1B,EAW+B,GAX/B,EAWoC,GAXpC,EAYlC,GAZkC,EAY7B,GAZ6B,EAYxB,GAZwB,EAYnB,GAZmB,EAYd,GAZc,EAYT,GAZS,EAYJ,GAZI,EAYC,GAZD,EAYM,GAZN,EAYW,GAZX,EAYgB,GAZhB,EAYqB,GAZrB,EAY0B,GAZ1B,EAY+B,GAZ/B,EAYoC,GAZpC,EAalC,GAbkC,EAa7B,GAb6B,EAaxB,GAbwB,EAanB,GAbmB,EAad,GAbc,EAaT,GAbS,EAaJ,GAbI,EAaC,GAbD,EAaM,GAbN,EAaW,GAbX,EAagB,GAbhB,EAaqB,GAbrB,EAa0B,GAb1B,EAa+B,GAb/B,EAaoC,GAbpC,EAclC,GAdkC,EAc7B,GAd6B,EAcxB,GAdwB,EAcnB,GAdmB,EAcd,GAdc,EAcT,GAdS,EAcJ,GAdI,EAcC,GAdD,EAcM,GAdN,EAcW,GAdX,EAcgB,GAdhB,EAcqB,GAdrB,EAc0B,GAd1B,EAc+B,GAd/B,EAcoC,GAdpC,EAelC,GAfkC,EAe7B,GAf6B,EAexB,GAfwB,EAenB,GAfmB,EAed,GAfc,EAeT,GAfS,EAeJ,GAfI,EAeC,GAfD,EAeM,GAfN,EAeW,GAfX,EAegB,GAfhB,EAeqB,GAfrB,EAe0B,GAf1B,EAe+B,GAf/B,EAeoC,GAfpC,EAgBlC,GAhBkC,EAgB7B,GAhB6B,EAgBxB,GAhBwB,EAgBnB,GAhBmB,EAgBd,GAhBc,EAgBT,GAhBS,EAgBJ,GAhBI,EAgBC,GAhBD,EAgBM,GAhBN,EAgBW,GAhBX,EAgBgB,GAhBhB,EAgBqB,GAhBrB,EAgB0B,GAhB1B,EAgB+B,GAhB/B,EAgBoC,GAhBpC,EAiBlC,GAjBkC,EAiB7B,GAjB6B,EAiBxB,GAjBwB,EAiBnB,GAjBmB,EAiBd,GAjBc,EAiBT,GAjBS,EAiBJ,GAjBI,EAiBC,GAjBD,EAiBM,GAjBN,EAiBW,GAjBX,EAiBgB,GAjBhB,EAiBqB,GAjBrB,EAiB0B,GAjB1B,EAiB+B,GAjB/B,EAiBoC,GAjBpC,EAkBlC,GAlBkC,EAkB7B,GAlB6B,EAkBxB,GAlBwB,EAkBnB,GAlBmB,EAkBd,GAlBc,EAkBT,GAlBS,EAkBJ,GAlBI,EAkBC,GAlBD,EAkBM,GAlBN,EAkBW,GAlBX,EAkBgB,GAlBhB,EAkBqB,GAlBrB,EAkB0B,GAlB1B,EAkB+B,GAlB/B,EAkBoC,GAlBpC,EAmBlC,GAnBkC,EAmB7B,GAnB6B,EAmBxB,GAnBwB,EAmBnB,GAnBmB,EAmBd,GAnBc,EAmBT,GAnBS,EAmBJ,GAnBI,EAmBC,GAnBD,EAmBM,GAnBN,EAmBW,GAnBX,EAmBgB,GAnBhB,EAmBqB,GAnBrB,EAmB0B,GAnB1B,EAmB+B,GAnB/B,EAmBoC,GAnBpC,EAoBlC,GApBkC,EAoB7B,GApB6B,EAoBxB,GApBwB,EAoBnB,GApBmB,EAoBd,GApBc,EAoBT,GApBS,EAoBJ,GApBI,EAoBC,GApBD,EAoBM,GApBN,EAoBW,GApBX,EAoBgB,GApBhB,EAoBqB,GApBrB,EAoB0B,GApB1B,EAoB+B,GApB/B,EAoBoC,GApBpC,EAqBlC,GArBkC,EAqB7B,GArB6B,EAqBxB,GArBwB,EAqBnB,GArBmB,EAqBd,GArBc,EAqBT,GArBS,EAqBJ,GArBI,EAqBC,GArBD,EAqBM,GArBN,EAqBW,GArBX,EAqBgB,GArBhB,EAqBqB,GArBrB,EAqB0B,GArB1B,EAqB+B,GArB/B,EAqBoC,GArBpC,EAsBlC,GAtBkC,EAsB7B,GAtB6B,EAsBxB,GAtBwB,EAsBnB,GAtBmB,EAsBd,GAtBc,EAsBT,GAtBS,EAsBJ,GAtBI,EAsBC,GAtBD,EAsBM,GAtBN,EAsBW,GAtBX,EAsBgB,GAtBhB,EAsBqB,GAtBrB,EAsB0B,GAtB1B,EAsB+B,GAtB/B,EAsBoC,GAtBpC,EAuBlC,GAvBkC,EAuB7B,GAvB6B,EAuBxB,GAvBwB,EAuBnB,GAvBmB,EAuBd,GAvBc,EAuBT,GAvBS,EAuBJ,GAvBI,EAuBC,GAvBD,EAuBM,GAvBN,EAuBW,GAvBX,EAuBgB,GAvBhB,EAuBqB,GAvBrB,EAuB0B,GAvB1B,EAuB+B,GAvB/B,EAuBoC,GAvBpC,EAwBlC,GAxBkC,EAwB7B,GAxB6B,EAwBxB,GAxBwB,EAwBnB,GAxBmB,EAwBd,GAxBc,EAwBT,GAxBS,EAwBJ,GAxBI,EAwBC,GAxBD,EAwBM,GAxBN,EAwBW,GAxBX,EAwBgB,GAxBhB,EAwBqB,GAxBrB,EAwB0B,GAxB1B,EAwB+B,GAxB/B,EAwBoC,GAxBpC,EAyBlC,GAzBkC,EAyB7B,GAzB6B,EAyBxB,GAzBwB,EAyBnB,GAzBmB,EAyBd,GAzBc,EAyBT,GAzBS,EAyBJ,GAzBI,EAyBC,GAzBD,EAyBM,GAzBN,EAyBW,GAzBX,EAyBgB,GAzBhB,EAyBqB,GAzBrB,EAyB0B,GAzB1B,EAyB+B,GAzB/B,EAyBoC,GAzBpC,EA0BlC,GA1BkC,EA0B7B,GA1B6B,EA0BxB,GA1BwB,EA0BnB,GA1BmB,EA0Bd,GA1Bc,EA0BT,GA1BS,EA0BJ,GA1BI,EA0BC,GA1BD,EA0BM,GA1BN,EA0BW,GA1BX,EA0BgB,GA1BhB,EA0BqB,GA1BrB,EA0B0B,GA1B1B,EA0B+B,GA1B/B,EA0BoC,GA1BpC,EA2BlC,GA3BkC,EA2B7B,GA3B6B,EA2BxB,GA3BwB,EA2BnB,GA3BmB,EA2Bd,GA3Bc,EA2BT,GA3BS,EA2BJ,GA3BI,EA2BC,IA3BD,EA2BO,IA3BP,EA2Ba,IA3Bb,EA2BmB,IA3BnB,EA2ByB,IA3BzB,EA2B+B,IA3B/B,EA2BqC,IA3BrC,EA4BlC,IA5BkC,EA4B5B,IA5B4B,EA4BtB,IA5BsB,EA4BhB,IA5BgB,EA4BV,IA5BU,EA4BJ,IA5BI,EA4BE,IA5BF,EA4BQ,IA5BR,EA4Bc,IA5Bd,EA4BoB,IA5BpB,EA4B0B,IA5B1B,EA4BgC,IA5BhC,EA4BsC,IA5BtC,EA6BlC,IA7BkC,EA6B5B,IA7B4B,EA6BtB,IA7BsB,EA6BhB,IA7BgB,EA6BV,IA7BU,EA6BJ,IA7BI,EA6BE,IA7BF,EA6BQ,IA7BR,EA6Bc,IA7Bd,EA6BoB,IA7BpB,EA6B0B,IA7B1B,EA6BgC,IA7BhC,EA6BsC,IA7BtC,EA8BlC,IA9BkC,EA8B5B,IA9B4B,EA8BtB,IA9BsB,EA8BhB,IA9BgB,EA8BV,IA9BU,EA8BJ,IA9BI,EA8BE,IA9BF,EA8BQ,IA9BR,EA8Bc,IA9Bd,EA8BoB,IA9BpB,EA8B0B,IA9B1B,EA8BgC,IA9BhC,EA8BsC,IA9BtC,EA+BlC,IA/BkC,EA+B5B,IA/B4B,EA+BtB,IA/BsB,EA+BhB,IA/BgB,EA+BV,IA/BU,EA+BJ,IA/BI,EA+BE,IA/BF,EA+BQ,IA/BR,EA+Bc,IA/Bd,EA+BoB,IA/BpB,EA+B0B,IA/B1B,EA+BgC,IA/BhC,EA+BsC,IA/BtC,EAgClC,IAhCkC,EAgC5B,IAhC4B,EAgCtB,IAhCsB,EAgChB,IAhCgB,EAgCV,IAhCU,EAgCJ,IAhCI,EAgCE,IAhCF,EAgCQ,IAhCR,EAgCc,IAhCd,EAgCoB,IAhCpB,EAgC0B,IAhC1B,EAgCgC,IAhChC,EAgCsC,IAhCtC,EAiClC,IAjCkC,EAiC5B,IAjC4B,EAiCtB,IAjCsB,EAiChB,IAjCgB,EAiCV,IAjCU,EAiCJ,IAjCI,EAiCE,IAjCF,EAiCQ,IAjCR,EAiCc,IAjCd,EAiCoB,IAjCpB,EAiC0B,IAjC1B,EAiCgC,IAjChC,EAiCsC,IAjCtC,EAkClC,IAlCkC,EAkC5B,IAlC4B,EAkCtB,IAlCsB,EAkChB,IAlCgB,EAkCV,IAlCU,EAkCJ,IAlCI,EAkCE,IAlCF,EAkCQ,IAlCR,EAkCc,IAlCd,EAkCoB,IAlCpB,EAkC0B,IAlC1B,EAkCgC,IAlChC,EAkCsC,IAlCtC,EAmClC,IAnCkC,EAmC5B,IAnC4B,EAmCtB,IAnCsB,EAmChB,IAnCgB,EAmCV,IAnCU,EAmCJ,IAnCI,EAmCE,IAnCF,EAmCQ,IAnCR,EAmCc,IAnCd,EAmCoB,IAnCpB,EAmC0B,IAnC1B,EAmCgC,IAnChC,EAmCsC,IAnCtC,EAoClC,IApCkC,EAoC5B,IApC4B,EAoCtB,IApCsB,EAoChB,IApCgB,EAoCV,IApCU,EAoCJ,IApCI,EAoCE,IApCF,EAoCQ,IApCR,EAoCc,IApCd,EAoCoB,IApCpB,EAoC0B,IApC1B,EAoCgC,IApChC,EAoCsC,IApCtC,EAqClC,IArCkC,EAqC5B,IArC4B,EAqCtB,IArCsB,EAqChB,IArCgB,EAqCV,IArCU,EAqCJ,IArCI,EAqCE,IArCF,EAqCQ,IArCR,EAqCc,IArCd,EAqCoB,IArCpB,EAqC0B,IArC1B,EAqCgC,IArChC,EAqCsC,IArCtC,EAsClC,IAtCkC,EAsC5B,IAtC4B,EAsCtB,IAtCsB,EAsChB,IAtCgB,EAsCV,IAtCU,EAsCJ,IAtCI,EAsCE,IAtCF,EAsCQ,IAtCR,EAsCc,IAtCd,EAsCoB,IAtCpB,EAsC0B,IAtC1B,EAsCgC,IAtChC,EAsCsC,IAtCtC,EAuClC,IAvCkC,EAuC5B,IAvC4B,EAuCtB,IAvCsB,EAuChB,IAvCgB,EAuCV,IAvCU,EAuCJ,IAvCI,EAuCE,IAvCF,EAuCQ,IAvCR,EAuCc,IAvCd,EAuCoB,IAvCpB,EAuC0B,IAvC1B,EAuCgC,IAvChC,EAuCsC,IAvCtC,EAwClC,IAxCkC,EAwC5B,IAxC4B,EAwCtB,IAxCsB,EAwChB,IAxCgB,EAwCV,IAxCU,EAwCJ,IAxCI,EAwCE,IAxCF,EAwCQ,IAxCR,EAwCc,IAxCd,EAwCoB,IAxCpB,EAwC0B,IAxC1B,EAwCgC,IAxChC,EAwCsC,IAxCtC,EAyClC,IAzCkC,EAyC5B,IAzC4B,EAyCtB,IAzCsB,EAyChB,IAzCgB,EAyCV,IAzCU,EAyCJ,IAzCI,EAyCE,IAzCF,EAyCQ,IAzCR,EAyCc,IAzCd,EAyCoB,IAzCpB,EAyC0B,IAzC1B,EAyCgC,IAzChC,EAyCsC,IAzCtC,EA0ClC,IA1CkC,EA0C5B,IA1C4B,EA0CtB,IA1CsB,EA0ChB,IA1CgB,EA0CV,IA1CU,EA0CJ,IA1CI,EA0CE,IA1CF,EA0CQ,IA1CR,EA0Cc,IA1Cd,EA0CoB,IA1CpB,EA0C0B,IA1C1B,EA0CgC,IA1ChC,EA0CsC,IA1CtC,EA2ClC,IA3CkC,EA2C5B,IA3C4B,EA2CtB,IA3CsB,EA2ChB,IA3CgB,EA2CV,IA3CU,EA2CJ,IA3CI,EA2CE,IA3CF,EA2CQ,IA3CR,EA2Cc,IA3Cd,EA2CoB,IA3CpB,EA2C0B,IA3C1B,EA2CgC,IA3ChC,EA2CsC,IA3CtC,EA4ClC,IA5CkC,EA4C5B,IA5C4B,EA4CtB,IA5CsB,EA4ChB,IA5CgB,EA4CV,IA5CU,EA4CJ,IA5CI,EA4CE,IA5CF,EA4CQ,IA5CR,EA4Cc,IA5Cd,EA4CoB,IA5CpB,EA4C0B,IA5C1B,EA4CgC,IA5ChC,EA4CsC,IA5CtC,EA6ClC,IA7CkC,EA6C5B,IA7C4B,EA6CtB,IA7CsB,EA6ChB,IA7CgB,EA6CV,IA7CU,EA6CJ,IA7CI,EA6CE,IA7CF,EA6CQ,IA7CR,EA6Cc,IA7Cd,EA6CoB,IA7CpB,EA6C0B,IA7C1B,EA6CgC,IA7ChC,EA6CsC,IA7CtC,EA8ClC,IA9CkC,EA8C5B,IA9C4B,EA8CtB,IA9CsB,EA8ChB,IA9CgB,EA8CV,IA9CU,EA8CJ,IA9CI,EA8CE,IA9CF,EA8CQ,IA9CR,EA8Cc,KA9Cd,EA8CqB,KA9CrB,EA8C4B,KA9C5B,EA8CmC,CAAC,CA9CpC,EA8CuC,CAAC,CA9CxC,EA+ClC,CAAC,CA/CiC,EA+C9B,CAAC,CA/C6B,EA+C1B,CAAC,CA/CyB,EA+CtB,CAAC,CA/CqB,EA+ClB,CAAC,CA/CiB,EA+Cd,CAAC,CA/Ca,EA+CV,CAAC,CA/CS,EA+CN,CAAC,CA/CK,EA+CF,CAAC,CA/CC,EA+CE,CAAC,CA/CH,EA+CM,CAAC,CA/CP,EA+CU,CAAC,CA/CX,EA+Cc,CAAC,CA/Cf,EA+CkB,CAAC,CA/CnB,EA+CsB,CAAC,CA/CvB,CAApC;;AAmDA,MAAMX,8BAA8B,CAClC,GADkC,EAC7B,CAD6B,EAC1B,GAD0B,EACrB,GADqB,EAChB,GADgB,EACX,GADW,EACN,GADM,EACD,GADC,EACI,GADJ,EACS,GADT,EACc,GADd,EACmB,GADnB,EACwB,GADxB,EAC6B,GAD7B,EACkC,GADlC,EACuC,GADvC,EAElC,GAFkC,EAE7B,GAF6B,EAExB,GAFwB,EAEnB,GAFmB,EAEd,GAFc,EAET,GAFS,EAEJ,GAFI,EAEC,GAFD,EAEM,GAFN,EAEW,GAFX,EAEgB,GAFhB,EAEqB,GAFrB,EAE0B,GAF1B,EAE+B,GAF/B,EAEoC,GAFpC,EAGlC,GAHkC,EAG7B,GAH6B,EAGxB,GAHwB,EAGnB,GAHmB,EAGd,IAHc,EAGR,GAHQ,EAGH,GAHG,EAGE,GAHF,EAGO,GAHP,EAGY,GAHZ,EAGiB,GAHjB,EAGsB,GAHtB,EAG2B,GAH3B,EAGgC,GAHhC,EAGqC,GAHrC,EAIlC,GAJkC,EAI7B,GAJ6B,EAIxB,GAJwB,EAInB,GAJmB,EAId,GAJc,EAIT,GAJS,EAIJ,GAJI,EAIC,GAJD,EAIM,GAJN,EAIW,GAJX,EAIgB,GAJhB,EAIqB,GAJrB,EAI0B,GAJ1B,EAI+B,GAJ/B,EAIoC,GAJpC,EAKlC,GALkC,EAK7B,GAL6B,EAKxB,GALwB,EAKnB,GALmB,EAKd,GALc,EAKT,GALS,EAKJ,GALI,EAKC,GALD,EAKM,GALN,EAKW,GALX,EAKgB,GALhB,EAKqB,GALrB,EAK0B,GAL1B,EAK+B,GAL/B,EAKoC,GALpC,EAMlC,GANkC,EAM7B,GAN6B,EAMxB,GANwB,EAMnB,GANmB,EAMd,GANc,EAMT,GANS,EAMJ,GANI,EAMC,GAND,EAMM,GANN,EAMW,GANX,EAMgB,GANhB,EAMqB,GANrB,EAM0B,GAN1B,EAM+B,GAN/B,EAMoC,GANpC,EAOlC,GAPkC,EAO7B,GAP6B,EAOxB,GAPwB,EAOnB,GAPmB,EAOd,GAPc,EAOT,GAPS,EAOJ,GAPI,EAOC,GAPD,EAOM,GAPN,EAOW,GAPX,EAOgB,GAPhB,EAOqB,GAPrB,EAO0B,GAP1B,EAO+B,GAP/B,EAOoC,GAPpC,EAQlC,GARkC,EAQ7B,GAR6B,EAQxB,GARwB,EAQnB,GARmB,EAQd,GARc,EAQT,GARS,EAQJ,GARI,EAQC,GARD,EAQM,GARN,EAQW,GARX,EAQgB,GARhB,EAQqB,GARrB,EAQ0B,GAR1B,EAQ+B,GAR/B,EAQoC,GARpC,EASlC,GATkC,EAS7B,GAT6B,EASxB,GATwB,EASnB,GATmB,EASd,GATc,EAST,GATS,EASJ,GATI,EASC,GATD,EASM,GATN,EASW,GATX,EASgB,GAThB,EASqB,GATrB,EAS0B,GAT1B,EAS+B,IAT/B,EASqC,GATrC,EAUlC,GAVkC,EAU7B,GAV6B,EAUxB,GAVwB,EAUnB,GAVmB,EAUd,GAVc,EAUT,GAVS,EAUJ,GAVI,EAUC,GAVD,EAUM,GAVN,EAUW,GAVX,EAUgB,GAVhB,EAUqB,GAVrB,EAU0B,GAV1B,EAU+B,GAV/B,EAUoC,GAVpC,EAWlC,GAXkC,EAW7B,GAX6B,EAWxB,GAXwB,EAWnB,GAXmB,EAWd,GAXc,EAWT,GAXS,EAWJ,GAXI,EAWC,GAXD,EAWM,GAXN,EAWW,GAXX,EAWgB,GAXhB,EAWqB,GAXrB,EAW0B,GAX1B,EAW+B,GAX/B,EAWoC,GAXpC,EAYlC,GAZkC,EAY7B,GAZ6B,EAYxB,GAZwB,EAYnB,GAZmB,EAYd,GAZc,EAYT,GAZS,EAYJ,GAZI,EAYC,GAZD,EAYM,GAZN,EAYW,GAZX,EAYgB,GAZhB,EAYqB,GAZrB,EAY0B,GAZ1B,EAY+B,GAZ/B,EAYoC,GAZpC,EAalC,GAbkC,EAa7B,GAb6B,EAaxB,GAbwB,EAanB,GAbmB,EAad,GAbc,EAaT,GAbS,EAaJ,GAbI,EAaC,GAbD,EAaM,GAbN,EAaW,GAbX,EAagB,GAbhB,EAaqB,GAbrB,EAa0B,GAb1B,EAa+B,GAb/B,EAaoC,GAbpC,EAclC,GAdkC,EAc7B,GAd6B,EAcxB,GAdwB,EAcnB,GAdmB,EAcd,GAdc,EAcT,GAdS,EAcJ,GAdI,EAcC,GAdD,EAcM,GAdN,EAcW,GAdX,EAcgB,GAdhB,EAcqB,GAdrB,EAc0B,GAd1B,EAc+B,GAd/B,EAcoC,GAdpC,EAelC,GAfkC,EAe7B,GAf6B,EAexB,GAfwB,EAenB,GAfmB,EAed,GAfc,EAeT,GAfS,EAeJ,GAfI,EAeC,GAfD,EAeM,GAfN,EAeW,GAfX,EAegB,GAfhB,EAeqB,GAfrB,EAe0B,GAf1B,EAe+B,GAf/B,EAeoC,GAfpC,EAgBlC,GAhBkC,EAgB7B,GAhB6B,EAgBxB,GAhBwB,EAgBnB,GAhBmB,EAgBd,GAhBc,EAgBT,GAhBS,EAgBJ,GAhBI,EAgBC,GAhBD,EAgBM,GAhBN,EAgBW,GAhBX,EAgBgB,GAhBhB,EAgBqB,GAhBrB,EAgB0B,GAhB1B,EAgB+B,GAhB/B,EAgBoC,GAhBpC,EAiBlC,GAjBkC,EAiB7B,GAjB6B,EAiBxB,GAjBwB,EAiBnB,GAjBmB,EAiBd,GAjBc,EAiBT,GAjBS,EAiBJ,GAjBI,EAiBC,GAjBD,EAiBM,GAjBN,EAiBW,GAjBX,EAiBgB,GAjBhB,EAiBqB,GAjBrB,EAiB0B,GAjB1B,EAiB+B,GAjB/B,EAiBoC,GAjBpC,EAkBlC,GAlBkC,EAkB7B,GAlB6B,EAkBxB,GAlBwB,EAkBnB,GAlBmB,EAkBd,GAlBc,EAkBT,GAlBS,EAkBJ,GAlBI,EAkBC,GAlBD,EAkBM,GAlBN,EAkBW,GAlBX,EAkBgB,GAlBhB,EAkBqB,GAlBrB,EAkB0B,GAlB1B,EAkB+B,GAlB/B,EAkBoC,GAlBpC,EAmBlC,GAnBkC,EAmB7B,GAnB6B,EAmBxB,GAnBwB,EAmBnB,IAnBmB,EAmBb,GAnBa,EAmBR,GAnBQ,EAmBH,GAnBG,EAmBE,GAnBF,EAmBO,GAnBP,EAmBY,GAnBZ,EAmBiB,GAnBjB,EAmBsB,GAnBtB,EAmB2B,GAnB3B,EAmBgC,GAnBhC,EAmBqC,GAnBrC,EAoBlC,GApBkC,EAoB7B,GApB6B,EAoBxB,GApBwB,EAoBnB,GApBmB,EAoBd,GApBc,EAoBT,GApBS,EAoBJ,GApBI,EAoBC,GApBD,EAoBM,GApBN,EAoBW,GApBX,EAoBgB,GApBhB,EAoBqB,GApBrB,EAoB0B,GApB1B,EAoB+B,GApB/B,EAoBoC,GApBpC,EAqBlC,GArBkC,EAqB7B,GArB6B,EAqBxB,GArBwB,EAqBnB,GArBmB,EAqBd,GArBc,EAqBT,GArBS,EAqBJ,GArBI,EAqBC,GArBD,EAqBM,GArBN,EAqBW,GArBX,EAqBgB,GArBhB,EAqBqB,GArBrB,EAqB0B,GArB1B,EAqB+B,GArB/B,EAqBoC,GArBpC,EAsBlC,GAtBkC,EAsB7B,GAtB6B,EAsBxB,GAtBwB,EAsBnB,GAtBmB,EAsBd,GAtBc,EAsBT,GAtBS,EAsBJ,GAtBI,EAsBC,IAtBD,EAsBO,GAtBP,EAsBY,GAtBZ,EAsBiB,GAtBjB,EAsBsB,GAtBtB,EAsB2B,GAtB3B,EAsBgC,GAtBhC,EAsBqC,GAtBrC,EAuBlC,GAvBkC,EAuB7B,GAvB6B,EAuBxB,GAvBwB,EAuBnB,GAvBmB,EAuBd,GAvBc,EAuBT,GAvBS,EAuBJ,GAvBI,EAuBC,GAvBD,EAuBM,GAvBN,EAuBW,GAvBX,EAuBgB,GAvBhB,EAuBqB,GAvBrB,EAuB0B,GAvB1B,EAuB+B,GAvB/B,EAuBoC,GAvBpC,EAwBlC,GAxBkC,EAwB7B,GAxB6B,EAwBxB,GAxBwB,EAwBnB,GAxBmB,EAwBd,GAxBc,EAwBT,GAxBS,EAwBJ,GAxBI,EAwBC,GAxBD,EAwBM,GAxBN,EAwBW,GAxBX,EAwBgB,GAxBhB,EAwBqB,GAxBrB,EAwB0B,GAxB1B,EAwB+B,GAxB/B,EAwBoC,GAxBpC,EAyBlC,GAzBkC,EAyB7B,GAzB6B,EAyBxB,GAzBwB,EAyBnB,GAzBmB,EAyBd,GAzBc,EAyBT,GAzBS,EAyBJ,GAzBI,EAyBC,GAzBD,EAyBM,GAzBN,EAyBW,GAzBX,EAyBgB,GAzBhB,EAyBqB,GAzBrB,EAyB0B,GAzB1B,EAyB+B,GAzB/B,EAyBoC,GAzBpC,EA0BlC,GA1BkC,EA0B7B,GA1B6B,EA0BxB,GA1BwB,EA0BnB,GA1BmB,EA0Bd,GA1Bc,EA0BT,GA1BS,EA0BJ,GA1BI,EA0BC,GA1BD,EA0BM,GA1BN,EA0BW,GA1BX,EA0BgB,GA1BhB,EA0BqB,GA1BrB,EA0B0B,GA1B1B,EA0B+B,GA1B/B,EA0BoC,GA1BpC,EA2BlC,GA3BkC,EA2B7B,GA3B6B,EA2BxB,GA3BwB,EA2BnB,GA3BmB,EA2Bd,GA3Bc,EA2BT,GA3BS,EA2BJ,GA3BI,EA2BC,GA3BD,EA2BM,GA3BN,EA2BW,GA3BX,EA2BgB,GA3BhB,EA2BqB,GA3BrB,EA2B0B,GA3B1B,EA2B+B,GA3B/B,EA2BoC,GA3BpC,EA4BlC,GA5BkC,EA4B7B,GA5B6B,EA4BxB,GA5BwB,EA4BnB,GA5BmB,EA4Bd,GA5Bc,EA4BT,GA5BS,EA4BJ,GA5BI,EA4BC,GA5BD,EA4BM,GA5BN,EA4BW,GA5BX,EA4BgB,GA5BhB,EA4BqB,GA5BrB,EA4B0B,GA5B1B,EA4B+B,GA5B/B,EA4BoC,GA5BpC,EA6BlC,IA7BkC,EA6B5B,IA7B4B,EA6BtB,GA7BsB,EA6BjB,GA7BiB,EA6BZ,GA7BY,EA6BP,GA7BO,EA6BF,GA7BE,EA6BG,GA7BH,EA6BQ,GA7BR,EA6Ba,GA7Bb,EA6BkB,GA7BlB,EA6BuB,GA7BvB,EA6B4B,GA7B5B,EA6BiC,GA7BjC,EA6BsC,GA7BtC,EA8BlC,GA9BkC,EA8B7B,GA9B6B,EA8BxB,GA9BwB,EA8BnB,GA9BmB,EA8Bd,GA9Bc,EA8BT,GA9BS,EA8BJ,GA9BI,EA8BC,GA9BD,EA8BM,GA9BN,EA8BW,GA9BX,EA8BgB,GA9BhB,EA8BqB,GA9BrB,EA8B0B,GA9B1B,EA8B+B,GA9B/B,EA8BoC,GA9BpC,EA+BlC,GA/BkC,EA+B7B,GA/B6B,EA+BxB,GA/BwB,EA+BnB,GA/BmB,EA+Bd,GA/Bc,EA+BT,GA/BS,EA+BJ,GA/BI,EA+BC,IA/BD,EA+BO,GA/BP,EA+BY,GA/BZ,EA+BiB,GA/BjB,EA+BsB,GA/BtB,EA+B2B,GA/B3B,EA+BgC,GA/BhC,EA+BqC,GA/BrC,EAgClC,GAhCkC,EAgC7B,GAhC6B,EAgCxB,GAhCwB,EAgCnB,GAhCmB,EAgCd,GAhCc,EAgCT,GAhCS,EAgCJ,GAhCI,EAgCC,GAhCD,EAgCM,GAhCN,EAgCW,GAhCX,EAgCgB,GAhChB,EAgCqB,GAhCrB,EAgC0B,GAhC1B,EAgC+B,GAhC/B,EAgCoC,GAhCpC,EAiClC,GAjCkC,EAiC7B,GAjC6B,EAiCxB,GAjCwB,EAiCnB,GAjCmB,EAiCd,GAjCc,EAiCT,GAjCS,EAiCJ,GAjCI,EAiCC,GAjCD,EAiCM,GAjCN,EAiCW,GAjCX,EAiCgB,GAjChB,EAiCqB,GAjCrB,EAiC0B,GAjC1B,EAiC+B,GAjC/B,EAiCoC,GAjCpC,EAkClC,GAlCkC,EAkC7B,GAlC6B,EAkCxB,GAlCwB,EAkCnB,GAlCmB,EAkCd,GAlCc,EAkCT,GAlCS,EAkCJ,GAlCI,EAkCC,GAlCD,EAkCM,GAlCN,EAkCW,GAlCX,EAkCgB,GAlChB,EAkCqB,GAlCrB,EAkC0B,GAlC1B,EAkC+B,GAlC/B,EAkCoC,GAlCpC,EAmClC,GAnCkC,EAmC7B,GAnC6B,EAmCxB,GAnCwB,EAmCnB,GAnCmB,EAmCd,GAnCc,EAmCT,GAnCS,EAmCJ,GAnCI,EAmCC,GAnCD,EAmCM,GAnCN,EAmCW,GAnCX,EAmCgB,GAnChB,EAmCqB,GAnCrB,EAmC0B,IAnC1B,EAmCgC,IAnChC,EAmCsC,GAnCtC,EAoClC,GApCkC,EAoC7B,GApC6B,EAoCxB,GApCwB,EAoCnB,GApCmB,EAoCd,GApCc,EAoCT,GApCS,EAoCJ,GApCI,EAoCC,GApCD,EAoCM,GApCN,EAoCW,GApCX,EAoCgB,IApChB,EAoCsB,IApCtB,EAoC4B,GApC5B,EAoCiC,GApCjC,EAoCsC,GApCtC,EAqClC,GArCkC,EAqC7B,GArC6B,EAqCxB,GArCwB,EAqCnB,GArCmB,EAqCd,GArCc,EAqCT,GArCS,EAqCJ,GArCI,EAqCC,IArCD,EAqCO,GArCP,EAqCY,GArCZ,EAqCiB,GArCjB,EAqCsB,IArCtB,EAqC4B,IArC5B,EAqCkC,GArClC,EAqCuC,GArCvC,EAsClC,GAtCkC,EAsC7B,GAtC6B,EAsCxB,GAtCwB,EAsCnB,GAtCmB,EAsCd,IAtCc,EAsCR,GAtCQ,EAsCH,IAtCG,EAsCG,GAtCH,EAsCQ,IAtCR,EAsCc,GAtCd,EAsCmB,GAtCnB,EAsCwB,GAtCxB,EAsC6B,GAtC7B,EAsCkC,GAtClC,EAsCuC,GAtCvC,EAuClC,GAvCkC,EAuC7B,GAvC6B,EAuCxB,GAvCwB,EAuCnB,GAvCmB,EAuCd,GAvCc,EAuCT,GAvCS,EAuCJ,GAvCI,EAuCC,GAvCD,EAuCM,GAvCN,EAuCW,GAvCX,EAuCgB,GAvChB,EAuCqB,GAvCrB,EAuC0B,GAvC1B,EAuC+B,GAvC/B,EAuCoC,GAvCpC,EAwClC,GAxCkC,EAwC7B,GAxC6B,EAwCxB,GAxCwB,EAwCnB,GAxCmB,EAwCd,GAxCc,EAwCT,GAxCS,EAwCJ,GAxCI,EAwCC,GAxCD,EAwCM,GAxCN,EAwCW,GAxCX,EAwCgB,GAxChB,EAwCqB,GAxCrB,EAwC0B,GAxC1B,EAwC+B,GAxC/B,EAwCoC,GAxCpC,EAyClC,GAzCkC,EAyC7B,GAzC6B,EAyCxB,GAzCwB,EAyCnB,GAzCmB,EAyCd,GAzCc,EAyCT,GAzCS,EAyCJ,GAzCI,EAyCC,GAzCD,EAyCM,GAzCN,EAyCW,GAzCX,EAyCgB,GAzChB,EAyCqB,GAzCrB,EAyC0B,GAzC1B,EAyC+B,GAzC/B,EAyCoC,GAzCpC,EA0ClC,GA1CkC,EA0C7B,GA1C6B,EA0CxB,GA1CwB,EA0CnB,GA1CmB,EA0Cd,GA1Cc,EA0CT,GA1CS,EA0CJ,GA1CI,EA0CC,GA1CD,EA0CM,GA1CN,EA0CW,GA1CX,EA0CgB,GA1ChB,EA0CqB,GA1CrB,EA0C0B,GA1C1B,EA0C+B,GA1C/B,EA0CoC,GA1CpC,EA2ClC,GA3CkC,EA2C7B,GA3C6B,EA2CxB,GA3CwB,EA2CnB,GA3CmB,EA2Cd,GA3Cc,EA2CT,GA3CS,EA2CJ,GA3CI,EA2CC,IA3CD,EA2CO,GA3CP,EA2CY,GA3CZ,EA2CiB,GA3CjB,EA2CsB,GA3CtB,EA2C2B,GA3C3B,EA2CgC,GA3ChC,EA2CqC,GA3CrC,EA4ClC,GA5CkC,EA4C7B,GA5C6B,EA4CxB,GA5CwB,EA4CnB,IA5CmB,EA4Cb,IA5Ca,EA4CP,GA5CO,EA4CF,GA5CE,EA4CG,GA5CH,EA4CQ,GA5CR,EA4Ca,GA5Cb,EA4CkB,GA5ClB,EA4CuB,GA5CvB,EA4C4B,GA5C5B,EA4CiC,GA5CjC,EA4CsC,GA5CtC,EA6ClC,GA7CkC,EA6C7B,GA7C6B,EA6CxB,GA7CwB,EA6CnB,GA7CmB,EA6Cd,GA7Cc,EA6CT,GA7CS,EA6CJ,GA7CI,EA6CC,GA7CD,EA6CM,GA7CN,EA6CW,GA7CX,EA6CgB,GA7ChB,EA6CqB,GA7CrB,EA6C0B,GA7C1B,EA6C+B,GA7C/B,EA6CoC,GA7CpC,EA8ClC,GA9CkC,EA8C7B,GA9C6B,EA8CxB,GA9CwB,EA8CnB,GA9CmB,EA8Cd,GA9Cc,CAApC;;AAkDA,MAAME,+BAA+B,CACnC,CAAC,CADkC,EAC/B,CAAC,CAD8B,EAC3B,CAAC,CAD0B,EACvB,EADuB,EACnB,EADmB,EACf,EADe,EACX,EADW,EACP,EADO,EACH,EADG,EACC,EADD,EACK,EADL,EACS,EADT,EACa,EADb,EACiB,EADjB,EACqB,EADrB,EACyB,EADzB,EAC6B,EAD7B,EACiC,EADjC,EACqC,EADrC,EAEnC,EAFmC,EAE/B,EAF+B,EAE3B,EAF2B,EAEvB,EAFuB,EAEnB,EAFmB,EAEf,EAFe,EAEX,EAFW,EAEP,EAFO,EAEH,EAFG,EAEC,EAFD,EAEK,EAFL,EAES,EAFT,EAEa,EAFb,EAEiB,EAFjB,EAEqB,EAFrB,EAEyB,EAFzB,EAE6B,EAF7B,EAEiC,EAFjC,EAEqC,EAFrC,EAGnC,EAHmC,EAG/B,EAH+B,EAG3B,EAH2B,EAGvB,EAHuB,EAGnB,EAHmB,EAGf,EAHe,EAGX,EAHW,EAGP,EAHO,EAGH,EAHG,EAGC,EAHD,EAGK,EAHL,EAGS,EAHT,EAGa,EAHb,EAGiB,EAHjB,EAGqB,EAHrB,EAGyB,EAHzB,EAG6B,EAH7B,EAGiC,EAHjC,EAGqC,EAHrC,EAInC,EAJmC,EAI/B,EAJ+B,EAI3B,EAJ2B,EAIvB,EAJuB,EAInB,EAJmB,EAIf,EAJe,EAIX,EAJW,EAIP,EAJO,EAIH,EAJG,EAIC,EAJD,EAIK,EAJL,EAIS,EAJT,EAIa,EAJb,EAIiB,EAJjB,EAIqB,GAJrB,EAI0B,GAJ1B,EAI+B,GAJ/B,EAIoC,GAJpC,EAKnC,GALmC,EAK9B,GAL8B,EAKzB,GALyB,EAKpB,GALoB,EAKf,GALe,EAKV,GALU,EAKL,GALK,EAKA,GALA,EAKK,GALL,EAKU,GALV,EAKe,GALf,EAKoB,GALpB,EAKyB,GALzB,EAK8B,GAL9B,EAKmC,GALnC,EAMnC,GANmC,EAM9B,GAN8B,EAMzB,GANyB,EAMpB,GANoB,EAMf,GANe,EAMV,GANU,EAML,GANK,EAMA,GANA,EAMK,GANL,EAMU,GANV,EAMe,GANf,EAMoB,GANpB,EAMyB,GANzB,EAM8B,GAN9B,EAMmC,GANnC,EAOnC,GAPmC,EAO9B,GAP8B,EAOzB,GAPyB,EAOpB,GAPoB,EAOf,GAPe,EAOV,GAPU,EAOL,GAPK,EAOA,GAPA,EAOK,GAPL,EAOU,GAPV,EAOe,GAPf,EAOoB,GAPpB,EAOyB,GAPzB,EAO8B,GAP9B,EAOmC,GAPnC,EAQnC,GARmC,EAQ9B,GAR8B,EAQzB,GARyB,EAQpB,GARoB,EAQf,GARe,EAQV,GARU,EAQL,GARK,EAQA,GARA,EAQK,GARL,EAQU,GARV,EAQe,GARf,EAQoB,GARpB,EAQyB,GARzB,EAQ8B,GAR9B,EAQmC,GARnC,EASnC,GATmC,EAS9B,GAT8B,EASzB,GATyB,EASpB,GAToB,EASf,GATe,EASV,GATU,EASL,GATK,EASA,GATA,EASK,GATL,EASU,GATV,EASe,GATf,EASoB,GATpB,EASyB,GATzB,EAS8B,GAT9B,EASmC,GATnC,EAUnC,GAVmC,EAU9B,GAV8B,EAUzB,GAVyB,EAUpB,GAVoB,EAUf,GAVe,EAUV,GAVU,EAUL,GAVK,EAUA,GAVA,EAUK,GAVL,EAUU,GAVV,EAUe,GAVf,EAUoB,GAVpB,EAUyB,GAVzB,EAU8B,GAV9B,EAUmC,GAVnC,EAWnC,GAXmC,EAW9B,GAX8B,EAWzB,GAXyB,EAWpB,GAXoB,EAWf,GAXe,EAWV,GAXU,EAWL,GAXK,EAWA,GAXA,EAWK,GAXL,EAWU,GAXV,EAWe,GAXf,EAWoB,GAXpB,EAWyB,GAXzB,EAW8B,GAX9B,EAWmC,GAXnC,EAYnC,GAZmC,EAY9B,GAZ8B,EAYzB,GAZyB,EAYpB,GAZoB,EAYf,GAZe,EAYV,GAZU,EAYL,GAZK,EAYA,GAZA,EAYK,GAZL,EAYU,GAZV,EAYe,GAZf,EAYoB,GAZpB,EAYyB,GAZzB,EAY8B,GAZ9B,EAYmC,GAZnC,EAanC,GAbmC,EAa9B,GAb8B,EAazB,GAbyB,EAapB,GAboB,EAaf,GAbe,EAaV,GAbU,EAaL,GAbK,EAaA,GAbA,EAaK,GAbL,EAaU,GAbV,EAae,GAbf,EAaoB,GAbpB,EAayB,GAbzB,EAa8B,GAb9B,EAamC,GAbnC,EAcnC,GAdmC,EAc9B,GAd8B,EAczB,GAdyB,EAcpB,GAdoB,EAcf,GAde,EAcV,GAdU,EAcL,GAdK,EAcA,GAdA,EAcK,GAdL,EAcU,GAdV,EAce,GAdf,EAcoB,GAdpB,EAcyB,GAdzB,EAc8B,GAd9B,EAcmC,GAdnC,EAenC,GAfmC,EAe9B,GAf8B,EAezB,GAfyB,EAepB,GAfoB,EAef,GAfe,EAeV,GAfU,EAeL,GAfK,EAeA,GAfA,EAeK,GAfL,EAeU,GAfV,EAee,GAff,EAeoB,GAfpB,EAeyB,GAfzB,EAe8B,GAf9B,EAemC,GAfnC,EAgBnC,GAhBmC,EAgB9B,GAhB8B,EAgBzB,GAhByB,EAgBpB,GAhBoB,EAgBf,GAhBe,EAgBV,GAhBU,EAgBL,GAhBK,EAgBA,GAhBA,EAgBK,GAhBL,EAgBU,GAhBV,EAgBe,GAhBf,EAgBoB,GAhBpB,EAgByB,GAhBzB,EAgB8B,GAhB9B,EAgBmC,GAhBnC,EAiBnC,GAjBmC,EAiB9B,GAjB8B,EAiBzB,GAjByB,EAiBpB,GAjBoB,EAiBf,GAjBe,EAiBV,GAjBU,EAiBL,GAjBK,EAiBA,GAjBA,EAiBK,GAjBL,EAiBU,GAjBV,EAiBe,GAjBf,EAiBoB,GAjBpB,EAiByB,GAjBzB,EAiB8B,GAjB9B,EAiBmC,GAjBnC,EAkBnC,GAlBmC,EAkB9B,GAlB8B,EAkBzB,GAlByB,EAkBpB,GAlBoB,EAkBf,GAlBe,EAkBV,GAlBU,EAkBL,GAlBK,EAkBA,GAlBA,EAkBK,GAlBL,EAkBU,GAlBV,EAkBe,GAlBf,EAkBoB,GAlBpB,EAkByB,GAlBzB,EAkB8B,GAlB9B,EAkBmC,GAlBnC,EAmBnC,GAnBmC,EAmB9B,GAnB8B,EAmBzB,GAnByB,EAmBpB,GAnBoB,EAmBf,GAnBe,EAmBV,GAnBU,EAmBL,GAnBK,EAmBA,GAnBA,EAmBK,GAnBL,EAmBU,GAnBV,EAmBe,GAnBf,EAmBoB,GAnBpB,EAmByB,GAnBzB,EAmB8B,GAnB9B,EAmBmC,GAnBnC,EAoBnC,GApBmC,EAoB9B,GApB8B,EAoBzB,GApByB,EAoBpB,GApBoB,EAoBf,GApBe,EAoBV,GApBU,EAoBL,GApBK,EAoBA,GApBA,EAoBK,GApBL,EAoBU,GApBV,EAoBe,GApBf,EAoBoB,GApBpB,EAoByB,GApBzB,EAoB8B,GApB9B,EAoBmC,GApBnC,EAqBnC,GArBmC,EAqB9B,GArB8B,EAqBzB,GArByB,EAqBpB,GArBoB,EAqBf,GArBe,EAqBV,GArBU,EAqBL,GArBK,EAqBA,GArBA,EAqBK,GArBL,EAqBU,GArBV,EAqBe,GArBf,EAqBoB,GArBpB,EAqByB,GArBzB,EAqB8B,GArB9B,EAqBmC,GArBnC,EAsBnC,GAtBmC,EAsB9B,GAtB8B,EAsBzB,GAtByB,EAsBpB,GAtBoB,EAsBf,GAtBe,EAsBV,GAtBU,EAsBL,GAtBK,EAsBA,GAtBA,EAsBK,GAtBL,EAsBU,GAtBV,EAsBe,GAtBf,EAsBoB,GAtBpB,EAsByB,GAtBzB,EAsB8B,GAtB9B,EAsBmC,GAtBnC,EAuBnC,GAvBmC,EAuB9B,GAvB8B,EAuBzB,GAvByB,EAuBpB,GAvBoB,EAuBf,GAvBe,EAuBV,GAvBU,EAuBL,GAvBK,EAuBA,GAvBA,EAuBK,GAvBL,EAuBU,GAvBV,EAuBe,GAvBf,EAuBoB,GAvBpB,EAuByB,GAvBzB,EAuB8B,GAvB9B,EAuBmC,GAvBnC,EAwBnC,GAxBmC,EAwB9B,GAxB8B,EAwBzB,GAxByB,EAwBpB,GAxBoB,EAwBf,GAxBe,EAwBV,GAxBU,EAwBL,GAxBK,EAwBA,GAxBA,EAwBK,GAxBL,EAwBU,GAxBV,EAwBe,GAxBf,EAwBoB,GAxBpB,EAwByB,GAxBzB,EAwB8B,GAxB9B,EAwBmC,GAxBnC,EAyBnC,GAzBmC,EAyB9B,GAzB8B,EAyBzB,GAzByB,EAyBpB,GAzBoB,EAyBf,GAzBe,EAyBV,GAzBU,EAyBL,GAzBK,EAyBA,GAzBA,EAyBK,GAzBL,EAyBU,GAzBV,EAyBe,GAzBf,EAyBoB,GAzBpB,EAyByB,GAzBzB,EAyB8B,GAzB9B,EAyBmC,GAzBnC,EA0BnC,GA1BmC,EA0B9B,GA1B8B,EA0BzB,GA1ByB,EA0BpB,GA1BoB,EA0Bf,GA1Be,EA0BV,GA1BU,EA0BL,GA1BK,EA0BA,GA1BA,EA0BK,GA1BL,EA0BU,GA1BV,EA0Be,GA1Bf,EA0BoB,GA1BpB,EA0ByB,GA1BzB,EA0B8B,GA1B9B,EA0BmC,GA1BnC,EA2BnC,GA3BmC,EA2B9B,GA3B8B,EA2BzB,GA3ByB,EA2BpB,GA3BoB,EA2Bf,GA3Be,EA2BV,GA3BU,EA2BL,GA3BK,EA2BA,IA3BA,EA2BM,IA3BN,EA2BY,IA3BZ,EA2BkB,IA3BlB,EA2BwB,IA3BxB,EA2B8B,IA3B9B,EA2BoC,IA3BpC,EA4BnC,IA5BmC,EA4B7B,IA5B6B,EA4BvB,IA5BuB,EA4BjB,IA5BiB,EA4BX,IA5BW,EA4BL,IA5BK,EA4BC,IA5BD,EA4BO,IA5BP,EA4Ba,IA5Bb,EA4BmB,IA5BnB,EA4ByB,IA5BzB,EA4B+B,IA5B/B,EA4BqC,IA5BrC,EA6BnC,IA7BmC,EA6B7B,IA7B6B,EA6BvB,IA7BuB,EA6BjB,IA7BiB,EA6BX,IA7BW,EA6BL,IA7BK,EA6BC,IA7BD,EA6BO,IA7BP,EA6Ba,IA7Bb,EA6BmB,IA7BnB,EA6ByB,IA7BzB,EA6B+B,IA7B/B,EA6BqC,IA7BrC,EA8BnC,IA9BmC,EA8B7B,IA9B6B,EA8BvB,IA9BuB,EA8BjB,IA9BiB,EA8BX,IA9BW,EA8BL,IA9BK,EA8BC,IA9BD,EA8BO,IA9BP,EA8Ba,IA9Bb,EA8BmB,IA9BnB,EA8ByB,IA9BzB,EA8B+B,IA9B/B,EA8BqC,IA9BrC,EA+BnC,IA/BmC,EA+B7B,IA/B6B,EA+BvB,IA/BuB,EA+BjB,IA/BiB,EA+BX,IA/BW,EA+BL,IA/BK,EA+BC,IA/BD,EA+BO,IA/BP,EA+Ba,IA/Bb,EA+BmB,IA/BnB,EA+ByB,IA/BzB,EA+B+B,IA/B/B,EA+BqC,IA/BrC,EAgCnC,IAhCmC,EAgC7B,IAhC6B,EAgCvB,IAhCuB,EAgCjB,IAhCiB,EAgCX,IAhCW,EAgCL,IAhCK,EAgCC,IAhCD,EAgCO,IAhCP,EAgCa,IAhCb,EAgCmB,IAhCnB,EAgCyB,IAhCzB,EAgC+B,IAhC/B,EAgCqC,IAhCrC,EAiCnC,IAjCmC,EAiC7B,IAjC6B,EAiCvB,IAjCuB,EAiCjB,IAjCiB,EAiCX,IAjCW,EAiCL,IAjCK,EAiCC,IAjCD,EAiCO,IAjCP,EAiCa,IAjCb,EAiCmB,IAjCnB,EAiCyB,IAjCzB,EAiC+B,IAjC/B,EAiCqC,IAjCrC,EAkCnC,IAlCmC,EAkC7B,IAlC6B,EAkCvB,IAlCuB,EAkCjB,IAlCiB,EAkCX,IAlCW,EAkCL,IAlCK,EAkCC,IAlCD,EAkCO,IAlCP,EAkCa,IAlCb,EAkCmB,IAlCnB,EAkCyB,IAlCzB,EAkC+B,IAlC/B,EAkCqC,IAlCrC,EAmCnC,IAnCmC,EAmC7B,IAnC6B,EAmCvB,IAnCuB,EAmCjB,IAnCiB,EAmCX,IAnCW,EAmCL,IAnCK,EAmCC,IAnCD,EAmCO,IAnCP,EAmCa,IAnCb,EAmCmB,IAnCnB,EAmCyB,IAnCzB,EAmC+B,IAnC/B,EAmCqC,IAnCrC,EAoCnC,IApCmC,EAoC7B,IApC6B,EAoCvB,IApCuB,EAoCjB,IApCiB,EAoCX,IApCW,EAoCL,IApCK,EAoCC,IApCD,EAoCO,IApCP,EAoCa,IApCb,EAoCmB,IApCnB,EAoCyB,IApCzB,EAoC+B,IApC/B,EAoCqC,IApCrC,EAqCnC,IArCmC,EAqC7B,IArC6B,EAqCvB,IArCuB,EAqCjB,IArCiB,EAqCX,IArCW,EAqCL,IArCK,EAqCC,IArCD,EAqCO,IArCP,EAqCa,IArCb,EAqCmB,IArCnB,EAqCyB,IArCzB,EAqC+B,IArC/B,EAqCqC,IArCrC,EAsCnC,IAtCmC,EAsC7B,IAtC6B,EAsCvB,IAtCuB,EAsCjB,IAtCiB,EAsCX,IAtCW,EAsCL,IAtCK,EAsCC,IAtCD,EAsCO,IAtCP,EAsCa,IAtCb,EAsCmB,IAtCnB,EAsCyB,IAtCzB,EAsC+B,IAtC/B,EAsCqC,IAtCrC,EAuCnC,IAvCmC,EAuC7B,IAvC6B,EAuCvB,IAvCuB,EAuCjB,IAvCiB,EAuCX,IAvCW,EAuCL,IAvCK,EAuCC,IAvCD,EAuCO,IAvCP,EAuCa,IAvCb,EAuCmB,IAvCnB,EAuCyB,IAvCzB,EAuC+B,IAvC/B,EAuCqC,IAvCrC,EAwCnC,IAxCmC,EAwC7B,IAxC6B,EAwCvB,IAxCuB,EAwCjB,IAxCiB,EAwCX,IAxCW,EAwCL,IAxCK,EAwCC,IAxCD,EAwCO,IAxCP,EAwCa,IAxCb,EAwCmB,IAxCnB,EAwCyB,IAxCzB,EAwC+B,IAxC/B,EAwCqC,IAxCrC,EAyCnC,IAzCmC,EAyC7B,IAzC6B,EAyCvB,IAzCuB,EAyCjB,IAzCiB,EAyCX,IAzCW,EAyCL,IAzCK,EAyCC,IAzCD,EAyCO,IAzCP,EAyCa,IAzCb,EAyCmB,IAzCnB,EAyCyB,IAzCzB,EAyC+B,IAzC/B,EAyCqC,IAzCrC,EA0CnC,IA1CmC,EA0C7B,IA1C6B,EA0CvB,IA1CuB,EA0CjB,IA1CiB,EA0CX,IA1CW,EA0CL,IA1CK,EA0CC,IA1CD,EA0CO,IA1CP,EA0Ca,IA1Cb,EA0CmB,IA1CnB,EA0CyB,IA1CzB,EA0C+B,IA1C/B,EA0CqC,IA1CrC,EA2CnC,IA3CmC,EA2C7B,IA3C6B,EA2CvB,IA3CuB,EA2CjB,IA3CiB,EA2CX,IA3CW,EA2CL,IA3CK,EA2CC,IA3CD,EA2CO,IA3CP,EA2Ca,IA3Cb,EA2CmB,IA3CnB,EA2CyB,IA3CzB,EA2C+B,IA3C/B,EA2CqC,IA3CrC,EA4CnC,IA5CmC,EA4C7B,IA5C6B,EA4CvB,IA5CuB,EA4CjB,IA5CiB,EA4CX,IA5CW,EA4CL,IA5CK,EA4CC,IA5CD,EA4CO,IA5CP,EA4Ca,IA5Cb,EA4CmB,IA5CnB,EA4CyB,IA5CzB,EA4C+B,IA5C/B,EA4CqC,IA5CrC,EA6CnC,IA7CmC,EA6C7B,IA7C6B,EA6CvB,IA7CuB,EA6CjB,IA7CiB,EA6CX,IA7CW,EA6CL,IA7CK,EA6CC,IA7CD,EA6CO,IA7CP,EA6Ca,IA7Cb,EA6CmB,IA7CnB,EA6CyB,IA7CzB,EA6C+B,IA7C/B,EA6CqC,IA7CrC,EA8CnC,IA9CmC,EA8C7B,IA9C6B,EA8CvB,IA9CuB,EA8CjB,IA9CiB,EA8CX,IA9CW,EA8CL,IA9CK,EA8CC,IA9CD,EA8CO,IA9CP,EA8Ca,KA9Cb,EA8CoB,KA9CpB,EA8C2B,KA9C3B,EA8CkC,CAAC,CA9CnC,EA8CsC,CAAC,CA9CvC,EA+CnC,CAAC,CA/CkC,EA+C/B,CAAC,CA/C8B,EA+C3B,CAAC,CA/C0B,EA+CvB,CAAC,CA/CsB,EA+CnB,CAAC,CA/CkB,EA+Cf,CAAC,CA/Cc,EA+CX,CAAC,CA/CU,EA+CP,CAAC,CA/CM,EA+CH,CAAC,CA/CE,EA+CC,CAAC,CA/CF,EA+CK,CAAC,CA/CN,EA+CS,CAAC,CA/CV,EA+Ca,CAAC,CA/Cd,EA+CiB,CAAC,CA/ClB,EA+CqB,CAAC,CA/CtB,CAArC;;;;;;;;;;;;;AChWA,MAAMG,uBAAuB,CAC3B,OAD2B,EAClB,CADkB,EACf,CADe,EACZ,OADY,EACH,OADG,EACM,OADN,EACe,OADf,EACwB,OADxB,EACiC,MADjC,EACyC,OADzC,EAE3B,OAF2B,EAElB,OAFkB,EAET,OAFS,EAEA,OAFA,EAES,OAFT,EAEkB,OAFlB,EAE2B,OAF3B,EAEoC,OAFpC,EAG3B,OAH2B,EAGlB,OAHkB,EAGT,OAHS,EAGA,OAHA,EAGS,OAHT,EAGkB,OAHlB,EAG2B,OAH3B,EAGoC,OAHpC,EAI3B,OAJ2B,EAIlB,OAJkB,EAIT,OAJS,EAIA,OAJA,EAIS,OAJT,EAIkB,OAJlB,EAI2B,OAJ3B,EAIoC,OAJpC,EAK3B,OAL2B,EAKlB,OALkB,EAKT,OALS,EAKA,OALA,EAKS,OALT,EAKkB,OALlB,EAK2B,OAL3B,EAKoC,OALpC,EAM3B,MAN2B,EAMnB,OANmB,EAMV,MANU,EAMF,OANE,EAMO,OANP,EAMgB,OANhB,EAMyB,MANzB,EAMiC,OANjC,EAM0C,OAN1C,EAO3B,OAP2B,EAOlB,OAPkB,EAOT,OAPS,EAOA,MAPA,EAOQ,OAPR,EAOiB,OAPjB,EAO0B,OAP1B,EAOmC,OAPnC,EAQ3B,OAR2B,EAQlB,OARkB,EAQT,MARS,EAQD,OARC,EAQQ,OARR,EAQiB,OARjB,EAQ0B,OAR1B,EAQmC,OARnC,EAS3B,OAT2B,EASlB,OATkB,EAST,OATS,EASA,OATA,EASS,OATT,EASkB,OATlB,EAS2B,KAT3B,EASkC,MATlC,EAS0C,OAT1C,EAU3B,OAV2B,EAUlB,MAVkB,EAUV,OAVU,EAUD,OAVC,EAUQ,MAVR,EAUgB,OAVhB,EAUyB,MAVzB,EAUiC,OAVjC,EAU0C,OAV1C,EAW3B,OAX2B,EAWlB,OAXkB,EAWT,OAXS,EAWA,OAXA,EAWS,OAXT,EAWkB,OAXlB,EAW2B,MAX3B,EAWmC,OAXnC,EAW4C,KAX5C,EAY3B,OAZ2B,EAYlB,OAZkB,EAYT,OAZS,EAYA,OAZA,EAYS,OAZT,EAYkB,OAZlB,EAY2B,OAZ3B,EAYoC,OAZpC,EAa3B,OAb2B,EAalB,OAbkB,EAaT,OAbS,EAaA,OAbA,EAaS,OAbT,EAakB,MAblB,EAa0B,MAb1B,EAakC,OAblC,EAa2C,OAb3C,EAc3B,OAd2B,EAclB,OAdkB,EAcT,OAdS,EAcA,CAdA,EAcG,CAdH,EAcM,OAdN,EAce,CAdf,EAckB,OAdlB,EAc2B,OAd3B,EAcoC,OAdpC,EAc6C,CAd7C,EAe3B,OAf2B,EAelB,MAfkB,EAeV,OAfU,EAeD,OAfC,EAeQ,OAfR,EAeiB,OAfjB,EAe0B,OAf1B,EAemC,OAfnC,EAgB3B,OAhB2B,EAgBlB,OAhBkB,EAgBT,OAhBS,EAgBA,OAhBA,EAgBS,KAhBT,EAgBgB,OAhBhB,EAgByB,OAhBzB,EAgBkC,OAhBlC,EAgB2C,OAhB3C,EAiB3B,OAjB2B,EAiBlB,MAjBkB,EAiBV,MAjBU,EAiBF,MAjBE,EAiBM,MAjBN,EAiBc,OAjBd,EAiBuB,OAjBvB,EAiBgC,OAjBhC,EAiByC,OAjBzC,EAkB3B,OAlB2B,EAkBlB,OAlBkB,EAkBT,OAlBS,EAkBA,OAlBA,EAkBS,OAlBT,EAkBkB,OAlBlB,EAkB2B,OAlB3B,EAkBoC,OAlBpC,EAmB3B,OAnB2B,EAmBlB,OAnBkB,EAmBT,OAnBS,EAmBA,OAnBA,EAmBS,OAnBT,EAmBkB,OAnBlB,EAmB2B,OAnB3B,EAmBoC,OAnBpC,EAoB3B,OApB2B,EAoBlB,OApBkB,EAoBT,MApBS,EAoBD,OApBC,EAoBQ,OApBR,EAoBiB,OApBjB,EAoB0B,OApB1B,EAoBmC,OApBnC,EAqB3B,OArB2B,EAqBlB,OArBkB,EAqBT,OArBS,EAqBA,OArBA,EAqBS,OArBT,EAqBkB,OArBlB,EAqB2B,MArB3B,EAqBmC,MArBnC,EAqB2C,MArB3C,EAsB3B,MAtB2B,EAsBnB,MAtBmB,EAsBX,OAtBW,EAsBF,MAtBE,EAsBM,OAtBN,EAsBe,OAtBf,EAsBwB,OAtBxB,EAsBiC,OAtBjC,EAsB0C,OAtB1C,EAuB3B,OAvB2B,EAuBlB,OAvBkB,EAuBT,OAvBS,EAuBA,OAvBA,EAuBS,OAvBT,EAuBkB,OAvBlB,EAuB2B,OAvB3B,EAuBoC,OAvBpC,EAwB3B,OAxB2B,EAwBlB,OAxBkB,EAwBT,OAxBS,EAwBA,OAxBA,EAwBS,OAxBT,EAwBkB,OAxBlB,EAwB2B,OAxB3B,EAwBoC,OAxBpC,EAyB3B,OAzB2B,EAyBlB,OAzBkB,EAyBT,OAzBS,EAyBA,OAzBA,EAyBS,OAzBT,EAyBkB,OAzBlB,EAyB2B,OAzB3B,EAyBoC,OAzBpC,EA0B3B,OA1B2B,EA0BlB,OA1BkB,EA0BT,OA1BS,EA0BA,OA1BA,EA0BS,OA1BT,EA0BkB,OA1BlB,EA0B2B,MA1B3B,EA0BmC,MA1BnC,EA0B2C,MA1B3C,EA2B3B,MA3B2B,EA2BnB,MA3BmB,EA2BX,MA3BW,EA2BH,CA3BG,EA2BA,CA3BA,EA2BG,OA3BH,EA2BY,OA3BZ,EA2BqB,OA3BrB,EA2B8B,OA3B9B,EA2BuC,MA3BvC,EA4B3B,OA5B2B,EA4BlB,MA5BkB,EA4BV,OA5BU,EA4BD,MA5BC,EA4BO,OA5BP,EA4BgB,MA5BhB,EA4BwB,OA5BxB,EA4BiC,MA5BjC,EA4ByC,OA5BzC,EA6B3B,KA7B2B,EA6BpB,OA7BoB,EA6BX,OA7BW,EA6BF,MA7BE,EA6BM,CA7BN,EA6BS,CA7BT,EA6BY,OA7BZ,EA6BqB,OA7BrB,EA6B8B,OA7B9B,EA6BuC,CA7BvC,EA6B0C,CA7B1C,EA8B3B,OA9B2B,EA8BlB,OA9BkB,EA8BT,OA9BS,EA8BA,OA9BA,EA8BS,OA9BT,EA8BkB,KA9BlB,EA8ByB,OA9BzB,EA8BkC,OA9BlC,EA8B2C,CA9B3C,EA8B8C,CA9B9C,EA+B3B,OA/B2B,EA+BlB,OA/BkB,EA+BT,MA/BS,EA+BD,OA/BC,EA+BQ,OA/BR,EA+BiB,OA/BjB,EA+B0B,MA/B1B,EA+BkC,OA/BlC,EA+B2C,MA/B3C,EAgC3B,OAhC2B,EAgClB,MAhCkB,EAgCV,KAhCU,EAgCH,OAhCG,EAgCM,OAhCN,EAgCe,OAhCf,EAgCwB,CAhCxB,EAgC2B,CAhC3B,EAgC8B,OAhC9B,EAgCuC,OAhCvC,EAiC3B,MAjC2B,EAiCnB,OAjCmB,EAiCV,MAjCU,EAiCF,OAjCE,EAiCO,CAjCP,EAiCU,CAjCV,EAiCa,MAjCb,EAiCqB,OAjCrB,EAiC8B,CAjC9B,EAiCiC,CAjCjC,EAiCoC,OAjCpC,EAkC3B,OAlC2B,EAkClB,OAlCkB,EAkCT,OAlCS,EAkCA,OAlCA,EAkCS,OAlCT,EAkCkB,OAlClB,EAkC2B,OAlC3B,EAkCoC,OAlCpC,EAmC3B,OAnC2B,EAmClB,OAnCkB,EAmCT,OAnCS,EAmCA,OAnCA,EAmCS,OAnCT,EAmCkB,OAnClB,EAmC2B,OAnC3B,EAmCoC,OAnCpC,EAoC3B,OApC2B,EAoClB,OApCkB,EAoCT,OApCS,EAoCA,OApCA,EAoCS,MApCT,EAoCiB,KApCjB,EAoCwB,MApCxB,EAoCgC,KApChC,EAoCuC,MApCvC,EAqC3B,KArC2B,EAqCpB,CArCoB,EAqCjB,OArCiB,EAqCR,OArCQ,EAqCC,OArCD,EAqCU,KArCV,EAqCiB,MArCjB,EAqCyB,OArCzB,EAqCkC,MArClC,EAqC0C,CArC1C,EAqC6C,CArC7C,EAsC3B,OAtC2B,EAsClB,OAtCkB,EAsCT,OAtCS,EAsCA,OAtCA,EAsCS,OAtCT,EAsCkB,OAtClB,EAsC2B,OAtC3B,EAsCoC,OAtCpC,EAuC3B,OAvC2B,EAuClB,OAvCkB,EAuCT,OAvCS,EAuCA,OAvCA,EAuCS,MAvCT,EAuCiB,OAvCjB,EAuC0B,OAvC1B,EAuCmC,OAvCnC,EAwC3B,OAxC2B,EAwClB,OAxCkB,EAwCT,OAxCS,EAwCA,OAxCA,EAwCS,OAxCT,EAwCkB,MAxClB,EAwC0B,OAxC1B,EAwCmC,OAxCnC,EAwC4C,MAxC5C,EAyC3B,OAzC2B,EAyClB,OAzCkB,EAyCT,MAzCS,EAyCD,OAzCC,EAyCQ,OAzCR,EAyCiB,MAzCjB,EAyCyB,OAzCzB,EAyCkC,OAzClC,EAyC2C,MAzC3C,EA0C3B,OA1C2B,EA0ClB,OA1CkB,EA0CT,OA1CS,EA0CA,OA1CA,EA0CS,OA1CT,EA0CkB,OA1ClB,EA0C2B,OA1C3B,EA0CoC,OA1CpC,EA2C3B,OA3C2B,EA2ClB,OA3CkB,EA2CT,OA3CS,EA2CA,OA3CA,EA2CS,MA3CT,EA2CiB,OA3CjB,EA2C0B,OA3C1B,EA2CmC,MA3CnC,EA2C2C,OA3C3C,EA4C3B,MA5C2B,EA4CnB,OA5CmB,EA4CV,OA5CU,EA4CD,OA5CC,EA4CQ,OA5CR,EA4CiB,MA5CjB,EA4CyB,OA5CzB,EA4CkC,OA5ClC,EA4C2C,OA5C3C,EA6C3B,OA7C2B,EA6ClB,MA7CkB,EA6CV,OA7CU,EA6CD,MA7CC,EA6CO,OA7CP,EA6CgB,OA7ChB,EA6CyB,OA7CzB,EA6CkC,MA7ClC,EA6C0C,OA7C1C,EA8C3B,MA9C2B,EA8CnB,CA9CmB,EA8ChB,OA9CgB,EA8CP,MA9CO,EA8CC,OA9CD,EA8CU,OA9CV,EA8CmB,OA9CnB,EA8C4B,OA9C5B,EA8CqC,OA9CrC,EA+C3B,MA/C2B,EA+CnB,OA/CmB,EA+CV,MA/CU,EA+CF,OA/CE,EA+CO,OA/CP,EA+CgB,CA/ChB,EA+CmB,CA/CnB,EA+CsB,CA/CtB,EA+CyB,CA/CzB,EA+C4B,CA/C5B,EA+C+B,CA/C/B,EA+CkC,CA/ClC,EA+CqC,CA/CrC,EA+CwC,CA/CxC,EA+C2C,CA/C3C,EA+C8C,CA/C9C,EA+CiD,CA/CjD,EAgD3B,CAhD2B,EAgDxB,CAhDwB,EAgDrB,CAhDqB,EAgDlB,CAhDkB,EAgDf,CAhDe,EAgDZ,CAhDY,EAgDT,CAhDS,EAgDN,CAhDM,EAgDH,CAhDG,EAgDA,CAhDA,EAgDG,CAhDH,EAgDM,CAhDN,EAgDS,CAhDT,EAgDY,CAhDZ,EAgDe,CAhDf,EAgDkB,CAhDlB,EAgDqB,CAhDrB,EAgDwB,CAhDxB,EAgD2B,CAhD3B,EAgD8B,CAhD9B,EAgDiC,CAhDjC,EAgDoC,CAhDpC,EAgDuC,CAhDvC,EAgD0C,CAhD1C,EAgD6C,CAhD7C,EAgDgD,CAhDhD,EAiD3B,CAjD2B,EAiDxB,CAjDwB,EAiDrB,CAjDqB,EAiDlB,CAjDkB,EAiDf,CAjDe,EAiDZ,CAjDY,EAiDT,CAjDS,EAiDN,CAjDM,EAiDH,CAjDG,EAiDA,CAjDA,EAiDG,CAjDH,EAiDM,CAjDN,EAiDS,CAjDT,EAiDY,CAjDZ,EAiDe,CAjDf,EAiDkB,CAjDlB,EAiDqB,CAjDrB,EAiDwB,CAjDxB,EAiD2B,CAjD3B,EAiD8B,CAjD9B,EAiDiC,CAjDjC,EAiDoC,CAjDpC,EAiDuC,CAjDvC,EAiD0C,CAjD1C,EAiD6C,CAjD7C,EAiDgD,CAjDhD,EAkD3B,CAlD2B,EAkDxB,CAlDwB,EAkDrB,CAlDqB,EAkDlB,CAlDkB,EAkDf,CAlDe,EAkDZ,CAlDY,EAkDT,CAlDS,EAkDN,CAlDM,EAkDH,CAlDG,EAkDA,CAlDA,EAkDG,CAlDH,EAkDM,CAlDN,EAkDS,CAlDT,EAkDY,CAlDZ,EAkDe,CAlDf,EAkDkB,CAlDlB,EAkDqB,CAlDrB,EAkDwB,CAlDxB,EAkD2B,CAlD3B,EAkD8B,CAlD9B,EAkDiC,CAlDjC,EAkDoC,CAlDpC,EAkDuC,CAlDvC,EAkD0C,CAlD1C,EAkD6C,CAlD7C,EAkDgD,CAlDhD,EAmD3B,CAnD2B,EAmDxB,CAnDwB,EAmDrB,CAnDqB,EAmDlB,CAnDkB,EAmDf,CAnDe,EAmDZ,CAnDY,EAmDT,CAnDS,EAmDN,CAnDM,EAmDH,CAnDG,EAmDA,CAnDA,EAmDG,OAnDH,EAmDY,OAnDZ,EAmDqB,OAnDrB,EAmD8B,OAnD9B,EAmDuC,OAnDvC,EAoD3B,OApD2B,EAoDlB,OApDkB,EAoDT,OApDS,EAoDA,OApDA,EAoDS,CApDT,EAoDY,OApDZ,EAoDqB,CApDrB,EAoDwB,CApDxB,EAoD2B,CApD3B,EAoD8B,OApD9B,EAoDuC,OApDvC,EAqD3B,OArD2B,EAqDlB,CArDkB,EAqDf,KArDe,EAqDR,KArDQ,EAqDD,KArDC,EAqDM,OArDN,EAqDe,OArDf,EAqDwB,OArDxB,EAqDiC,CArDjC,EAqDoC,KArDpC,EAqD2C,CArD3C,EAqD8C,CArD9C,EAsD3B,OAtD2B,EAsDlB,OAtDkB,EAsDT,CAtDS,EAsDN,CAtDM,EAsDH,OAtDG,EAsDM,CAtDN,EAsDS,CAtDT,EAsDY,CAtDZ,EAsDe,CAtDf,EAsDkB,OAtDlB,EAsD2B,CAtD3B,EAsD8B,CAtD9B,EAsDiC,CAtDjC,EAsDoC,IAtDpC,EAsD0C,CAtD1C,EAuD3B,OAvD2B,EAuDlB,CAvDkB,EAuDf,CAvDe,EAuDZ,CAvDY,EAuDT,CAvDS,EAuDN,CAvDM,EAuDH,CAvDG,EAuDA,CAvDA,EAuDG,CAvDH,EAuDM,CAvDN,EAuDS,CAvDT,EAuDY,CAvDZ,EAuDe,OAvDf,EAuDwB,CAvDxB,EAuD2B,OAvD3B,EAuDoC,OAvDpC,EAwD3B,OAxD2B,EAwDlB,MAxDkB,EAwDV,OAxDU,EAwDD,CAxDC,EAwDE,CAxDF,EAwDK,OAxDL,EAwDc,OAxDd,EAwDuB,OAxDvB,EAwDgC,CAxDhC,EAwDmC,OAxDnC,EAyD3B,OAzD2B,EAyDlB,CAzDkB,EAyDf,CAzDe,EAyDZ,CAzDY,EAyDT,CAzDS,EAyDN,CAzDM,EAyDH,CAzDG,EAyDA,CAzDA,EAyDG,CAzDH,EAyDM,CAzDN,EAyDS,CAzDT,EAyDY,CAzDZ,EAyDe,CAzDf,EAyDkB,CAzDlB,EAyDqB,CAzDrB,EAyDwB,CAzDxB,EAyD2B,CAzD3B,EAyD8B,CAzD9B,EAyDiC,CAzDjC,EAyDoC,CAzDpC,EAyDuC,CAzDvC,EAyD0C,CAzD1C,EAyD6C,CAzD7C,EAyDgD,CAzDhD,EA0D3B,CA1D2B,EA0DxB,CA1DwB,EA0DrB,CA1DqB,EA0DlB,CA1DkB,EA0Df,CA1De,EA0DZ,CA1DY,EA0DT,CA1DS,EA0DN,CA1DM,EA0DH,CA1DG,EA0DA,CA1DA,EA0DG,CA1DH,EA0DM,CA1DN,EA0DS,CA1DT,EA0DY,CA1DZ,EA0De,CA1Df,EA0DkB,CA1DlB,EA0DqB,CA1DrB,EA0DwB,CA1DxB,EA0D2B,CA1D3B,EA0D8B,CA1D9B,EA0DiC,CA1DjC,EA0DoC,CA1DpC,EA0DuC,CA1DvC,EA0D0C,CA1D1C,EA0D6C,CA1D7C,EA0DgD,CA1DhD,EA2D3B,CA3D2B,EA2DxB,CA3DwB,EA2DrB,CA3DqB,EA2DlB,CA3DkB,EA2Df,CA3De,EA2DZ,CA3DY,EA2DT,CA3DS,EA2DN,CA3DM,EA2DH,CA3DG,EA2DA,CA3DA,EA2DG,CA3DH,EA2DM,CA3DN,EA2DS,OA3DT,EA2DkB,CA3DlB,EA2DqB,CA3DrB,EA2DwB,CA3DxB,EA2D2B,CA3D3B,EA2D8B,CA3D9B,EA2DiC,CA3DjC,EA2DoC,CA3DpC,EA2DuC,CA3DvC,EA2D0C,CA3D1C,EA2D6C,CA3D7C,EA2DgD,CA3DhD,EA4D3B,CA5D2B,EA4DxB,CA5DwB,EA4DrB,CA5DqB,EA4DlB,CA5DkB,EA4Df,CA5De,EA4DZ,CA5DY,EA4DT,CA5DS,EA4DN,CA5DM,EA4DH,CA5DG,EA4DA,CA5DA,EA4DG,CA5DH,EA4DM,CA5DN,EA4DS,CA5DT,EA4DY,CA5DZ,EA4De,CA5Df,EA4DkB,CA5DlB,EA4DqB,CA5DrB,EA4DwB,CA5DxB,EA4D2B,CA5D3B,EA4D8B,CA5D9B,EA4DiC,CA5DjC,EA4DoC,CA5DpC,EA4DuC,CA5DvC,EA4D0C,CA5D1C,EA4D6C,CA5D7C,EA4DgD,CA5DhD,CAA7B;;AA8DA,MAAMG,uBAAuB;EAAEoD,YAAY,GAAd;EAAmBC,SAAS;AAA5B,CAA7B;;AAIA,MAAMhD,6BAA6B,CACjC,OADiC,EACxB,CADwB,EACrB,CADqB,EAClB,OADkB,EACT,OADS,EACA,OADA,EACS,OADT,EACkB,OADlB,EAC2B,OAD3B,EACoC,OADpC,EAEjC,OAFiC,EAExB,OAFwB,EAEf,OAFe,EAEN,OAFM,EAEG,OAFH,EAEY,OAFZ,EAEqB,OAFrB,EAE8B,OAF9B,EAGjC,OAHiC,EAGxB,OAHwB,EAGf,OAHe,EAGN,OAHM,EAGG,OAHH,EAGY,OAHZ,EAGqB,OAHrB,EAG8B,OAH9B,EAIjC,OAJiC,EAIxB,OAJwB,EAIf,OAJe,EAIN,OAJM,EAIG,OAJH,EAIY,OAJZ,EAIqB,OAJrB,EAI8B,OAJ9B,EAKjC,OALiC,EAKxB,OALwB,EAKf,OALe,EAKN,OALM,EAKG,OALH,EAKY,OALZ,EAKqB,OALrB,EAK8B,OAL9B,EAMjC,OANiC,EAMxB,OANwB,EAMf,OANe,EAMN,OANM,EAMG,OANH,EAMY,OANZ,EAMqB,OANrB,EAM8B,OAN9B,EAOjC,OAPiC,EAOxB,OAPwB,EAOf,OAPe,EAON,OAPM,EAOG,OAPH,EAOY,OAPZ,EAOqB,OAPrB,EAO8B,OAP9B,EAQjC,MARiC,EAQzB,OARyB,EAQhB,OARgB,EAQP,OARO,EAQE,OARF,EAQW,OARX,EAQoB,OARpB,EAQ6B,OAR7B,EASjC,OATiC,EASxB,OATwB,EASf,OATe,EASN,OATM,EASG,OATH,EASY,OATZ,EASqB,OATrB,EAS8B,OAT9B,EAUjC,MAViC,EAUzB,OAVyB,EAUhB,OAVgB,EAUP,OAVO,EAUE,OAVF,EAUW,OAVX,EAUoB,OAVpB,EAU6B,OAV7B,EAWjC,OAXiC,EAWxB,OAXwB,EAWf,OAXe,EAWN,OAXM,EAWG,KAXH,EAWU,OAXV,EAWmB,OAXnB,EAW4B,OAX5B,EAWqC,OAXrC,EAYjC,OAZiC,EAYxB,OAZwB,EAYf,GAZe,EAYV,OAZU,EAYD,MAZC,EAYO,OAZP,EAYgB,OAZhB,EAYyB,OAZzB,EAYkC,OAZlC,EAajC,OAbiC,EAaxB,OAbwB,EAaf,OAbe,EAaN,MAbM,EAaE,OAbF,EAaW,OAbX,EAaoB,OAbpB,EAa6B,OAb7B,EAcjC,OAdiC,EAcxB,OAdwB,EAcf,OAde,EAcN,OAdM,EAcG,OAdH,EAcY,OAdZ,EAcqB,CAdrB,EAcwB,CAdxB,EAc2B,OAd3B,EAcoC,CAdpC,EAejC,OAfiC,EAexB,OAfwB,EAef,OAfe,EAeN,CAfM,EAeH,OAfG,EAeM,OAfN,EAee,OAff,EAewB,OAfxB,EAeiC,OAfjC,EAgBjC,OAhBiC,EAgBxB,OAhBwB,EAgBf,OAhBe,EAgBN,OAhBM,EAgBG,OAhBH,EAgBY,OAhBZ,EAgBqB,OAhBrB,EAgB8B,KAhB9B,EAgBqC,OAhBrC,EAiBjC,OAjBiC,EAiBxB,OAjBwB,EAiBf,OAjBe,EAiBN,OAjBM,EAiBG,OAjBH,EAiBY,OAjBZ,EAiBqB,OAjBrB,EAiB8B,OAjB9B,EAkBjC,OAlBiC,EAkBxB,OAlBwB,EAkBf,OAlBe,EAkBN,OAlBM,EAkBG,OAlBH,EAkBY,OAlBZ,EAkBqB,OAlBrB,EAkB8B,OAlB9B,EAmBjC,OAnBiC,EAmBxB,OAnBwB,EAmBf,OAnBe,EAmBN,OAnBM,EAmBG,OAnBH,EAmBY,OAnBZ,EAmBqB,OAnBrB,EAmB8B,OAnB9B,EAoBjC,OApBiC,EAoBxB,OApBwB,EAoBf,OApBe,EAoBN,OApBM,EAoBG,OApBH,EAoBY,OApBZ,EAoBqB,OApBrB,EAoB8B,OApB9B,EAqBjC,OArBiC,EAqBxB,OArBwB,EAqBf,OArBe,EAqBN,OArBM,EAqBG,OArBH,EAqBY,OArBZ,EAqBqB,OArBrB,EAqB8B,OArB9B,EAsBjC,MAtBiC,EAsBzB,OAtByB,EAsBhB,OAtBgB,EAsBP,OAtBO,EAsBE,OAtBF,EAsBW,OAtBX,EAsBoB,OAtBpB,EAsB6B,OAtB7B,EAuBjC,OAvBiC,EAuBxB,OAvBwB,EAuBf,OAvBe,EAuBN,OAvBM,EAuBG,OAvBH,EAuBY,OAvBZ,EAuBqB,OAvBrB,EAuB8B,OAvB9B,EAwBjC,OAxBiC,EAwBxB,OAxBwB,EAwBf,OAxBe,EAwBN,OAxBM,EAwBG,OAxBH,EAwBY,OAxBZ,EAwBqB,OAxBrB,EAwB8B,OAxB9B,EAyBjC,OAzBiC,EAyBxB,OAzBwB,EAyBf,OAzBe,EAyBN,OAzBM,EAyBG,OAzBH,EAyBY,OAzBZ,EAyBqB,OAzBrB,EAyB8B,OAzB9B,EA0BjC,OA1BiC,EA0BxB,OA1BwB,EA0Bf,OA1Be,EA0BN,OA1BM,EA0BG,OA1BH,EA0BY,OA1BZ,EA0BqB,OA1BrB,EA0B8B,OA1B9B,EA2BjC,OA3BiC,EA2BxB,OA3BwB,EA2Bf,OA3Be,EA2BN,OA3BM,EA2BG,OA3BH,EA2BY,MA3BZ,EA2BoB,OA3BpB,EA2B6B,MA3B7B,EA2BqC,OA3BrC,EA4BjC,MA5BiC,EA4BzB,CA5ByB,EA4BtB,CA5BsB,EA4BnB,OA5BmB,EA4BV,OA5BU,EA4BD,OA5BC,EA4BQ,OA5BR,EA4BiB,OA5BjB,EA4B0B,OA5B1B,EA4BmC,OA5BnC,EA6BjC,OA7BiC,EA6BxB,OA7BwB,EA6Bf,OA7Be,EA6BN,OA7BM,EA6BG,OA7BH,EA6BY,OA7BZ,EA6BqB,OA7BrB,EA6B8B,OA7B9B,EA8BjC,OA9BiC,EA8BxB,OA9BwB,EA8Bf,OA9Be,EA8BN,CA9BM,EA8BH,CA9BG,EA8BA,OA9BA,EA8BS,OA9BT,EA8BkB,OA9BlB,EA8B2B,CA9B3B,EA8B8B,CA9B9B,EA8BiC,OA9BjC,EA+BjC,MA/BiC,EA+BzB,OA/ByB,EA+BhB,OA/BgB,EA+BP,OA/BO,EA+BE,MA/BF,EA+BU,OA/BV,EA+BmB,OA/BnB,EA+B4B,CA/B5B,EA+B+B,CA/B/B,EA+BkC,OA/BlC,EAgCjC,OAhCiC,EAgCxB,OAhCwB,EAgCf,OAhCe,EAgCN,OAhCM,EAgCG,OAhCH,EAgCY,OAhCZ,EAgCqB,OAhCrB,EAgC8B,OAhC9B,EAiCjC,OAjCiC,EAiCxB,OAjCwB,EAiCf,KAjCe,EAiCR,OAjCQ,EAiCC,OAjCD,EAiCU,OAjCV,EAiCmB,CAjCnB,EAiCsB,CAjCtB,EAiCyB,OAjCzB,EAiCkC,OAjClC,EAkCjC,OAlCiC,EAkCxB,KAlCwB,EAkCjB,OAlCiB,EAkCR,KAlCQ,EAkCD,CAlCC,EAkCE,CAlCF,EAkCK,OAlCL,EAkCc,KAlCd,EAkCqB,CAlCrB,EAkCwB,CAlCxB,EAkC2B,OAlC3B,EAkCoC,OAlCpC,EAmCjC,OAnCiC,EAmCxB,OAnCwB,EAmCf,OAnCe,EAmCN,OAnCM,EAmCG,OAnCH,EAmCY,OAnCZ,EAmCqB,OAnCrB,EAmC8B,OAnC9B,EAoCjC,OApCiC,EAoCxB,OApCwB,EAoCf,OApCe,EAoCN,OApCM,EAoCG,OApCH,EAoCY,OApCZ,EAoCqB,MApCrB,EAoC6B,OApC7B,EAqCjC,OArCiC,EAqCxB,OArCwB,EAqCf,OArCe,EAqCN,OArCM,EAqCG,GArCH,EAqCQ,OArCR,EAqCiB,GArCjB,EAqCsB,OArCtB,EAqC+B,GArC/B,EAqCoC,CArCpC,EAsCjC,OAtCiC,EAsCxB,OAtCwB,EAsCf,OAtCe,EAsCN,KAtCM,EAsCC,OAtCD,EAsCU,OAtCV,EAsCmB,OAtCnB,EAsC4B,CAtC5B,EAsC+B,CAtC/B,EAsCkC,OAtClC,EAuCjC,OAvCiC,EAuCxB,OAvCwB,EAuCf,OAvCe,EAuCN,OAvCM,EAuCG,OAvCH,EAuCY,OAvCZ,EAuCqB,OAvCrB,EAuC8B,OAvC9B,EAwCjC,OAxCiC,EAwCxB,OAxCwB,EAwCf,OAxCe,EAwCN,OAxCM,EAwCG,OAxCH,EAwCY,OAxCZ,EAwCqB,OAxCrB,EAwC8B,MAxC9B,EAyCjC,OAzCiC,EAyCxB,OAzCwB,EAyCf,OAzCe,EAyCN,OAzCM,EAyCG,OAzCH,EAyCY,OAzCZ,EAyCqB,OAzCrB,EAyC8B,MAzC9B,EA0CjC,OA1CiC,EA0CxB,OA1CwB,EA0Cf,OA1Ce,EA0CN,OA1CM,EA0CG,OA1CH,EA0CY,OA1CZ,EA0CqB,OA1CrB,EA0C8B,OA1C9B,EA2CjC,OA3CiC,EA2CxB,OA3CwB,EA2Cf,OA3Ce,EA2CN,OA3CM,EA2CG,OA3CH,EA2CY,OA3CZ,EA2CqB,OA3CrB,EA2C8B,OA3C9B,EA4CjC,OA5CiC,EA4CxB,OA5CwB,EA4Cf,OA5Ce,EA4CN,OA5CM,EA4CG,OA5CH,EA4CY,OA5CZ,EA4CqB,OA5CrB,EA4C8B,OA5C9B,EA6CjC,OA7CiC,EA6CxB,OA7CwB,EA6Cf,OA7Ce,EA6CN,OA7CM,EA6CG,OA7CH,EA6CY,OA7CZ,EA6CqB,OA7CrB,EA6C8B,OA7C9B,EA8CjC,OA9CiC,EA8CxB,OA9CwB,EA8Cf,OA9Ce,EA8CN,OA9CM,EA8CG,OA9CH,EA8CY,MA9CZ,EA8CoB,OA9CpB,EA8C6B,OA9C7B,EA+CjC,OA/CiC,EA+CxB,MA/CwB,EA+ChB,OA/CgB,EA+CP,OA/CO,EA+CE,OA/CF,EA+CW,CA/CX,EA+Cc,OA/Cd,EA+CuB,OA/CvB,EA+CgC,OA/ChC,EAgDjC,OAhDiC,EAgDxB,OAhDwB,EAgDf,OAhDe,EAgDN,OAhDM,EAgDG,OAhDH,EAgDY,OAhDZ,EAgDqB,OAhDrB,EAgD8B,OAhD9B,EAiDjC,OAjDiC,EAiDxB,CAjDwB,EAiDrB,CAjDqB,EAiDlB,CAjDkB,EAiDf,CAjDe,EAiDZ,CAjDY,EAiDT,CAjDS,EAiDN,CAjDM,EAiDH,CAjDG,EAiDA,CAjDA,EAiDG,CAjDH,EAiDM,CAjDN,EAiDS,CAjDT,EAiDY,CAjDZ,EAiDe,CAjDf,EAiDkB,CAjDlB,EAiDqB,CAjDrB,EAiDwB,CAjDxB,EAiD2B,CAjD3B,EAiD8B,CAjD9B,EAiDiC,CAjDjC,EAiDoC,CAjDpC,EAiDuC,CAjDvC,EAiD0C,CAjD1C,EAkDjC,CAlDiC,EAkD9B,CAlD8B,EAkD3B,CAlD2B,EAkDxB,CAlDwB,EAkDrB,CAlDqB,EAkDlB,CAlDkB,EAkDf,CAlDe,EAkDZ,CAlDY,EAkDT,CAlDS,EAkDN,CAlDM,EAkDH,CAlDG,EAkDA,CAlDA,EAkDG,CAlDH,EAkDM,CAlDN,EAkDS,CAlDT,EAkDY,CAlDZ,EAkDe,CAlDf,EAkDkB,CAlDlB,EAkDqB,CAlDrB,EAkDwB,CAlDxB,EAkD2B,CAlD3B,EAkD8B,CAlD9B,EAkDiC,CAlDjC,EAkDoC,CAlDpC,EAkDuC,CAlDvC,EAkD0C,CAlD1C,EAmDjC,CAnDiC,EAmD9B,CAnD8B,EAmD3B,CAnD2B,EAmDxB,CAnDwB,EAmDrB,CAnDqB,EAmDlB,CAnDkB,EAmDf,CAnDe,EAmDZ,CAnDY,EAmDT,CAnDS,EAmDN,CAnDM,EAmDH,CAnDG,EAmDA,CAnDA,EAmDG,CAnDH,EAmDM,CAnDN,EAmDS,CAnDT,EAmDY,CAnDZ,EAmDe,CAnDf,EAmDkB,CAnDlB,EAmDqB,CAnDrB,EAmDwB,CAnDxB,EAmD2B,CAnD3B,EAmD8B,CAnD9B,EAmDiC,CAnDjC,EAmDoC,CAnDpC,EAmDuC,CAnDvC,EAmD0C,CAnD1C,EAoDjC,CApDiC,EAoD9B,CApD8B,EAoD3B,CApD2B,EAoDxB,CApDwB,EAoDrB,CApDqB,EAoDlB,CApDkB,EAoDf,CApDe,EAoDZ,CApDY,EAoDT,CApDS,EAoDN,CApDM,EAoDH,CApDG,EAoDA,CApDA,EAoDG,CApDH,EAoDM,CApDN,EAoDS,CApDT,EAoDY,CApDZ,EAoDe,CApDf,EAoDkB,CApDlB,EAoDqB,CApDrB,EAoDwB,CApDxB,EAoD2B,CApD3B,EAoD8B,CApD9B,EAoDiC,CApDjC,EAoDoC,CApDpC,EAoDuC,CApDvC,EAqDjC,MArDiC,EAqDzB,OArDyB,EAqDhB,MArDgB,EAqDR,OArDQ,EAqDC,MArDD,EAqDS,OArDT,EAqDkB,OArDlB,EAqD2B,OArD3B,EAqDoC,OArDpC,EAsDjC,CAtDiC,EAsD9B,OAtD8B,EAsDrB,CAtDqB,EAsDlB,CAtDkB,EAsDf,CAtDe,EAsDZ,OAtDY,EAsDH,OAtDG,EAsDM,OAtDN,EAsDe,CAtDf,EAsDkB,KAtDlB,EAsDyB,KAtDzB,EAsDgC,KAtDhC,EAuDjC,MAvDiC,EAuDzB,MAvDyB,EAuDjB,OAvDiB,EAuDR,CAvDQ,EAuDL,IAvDK,EAuDC,CAvDD,EAuDI,CAvDJ,EAuDO,OAvDP,EAuDgB,OAvDhB,EAuDyB,CAvDzB,EAuD4B,CAvD5B,EAuD+B,OAvD/B,EAuDwC,CAvDxC,EAuD2C,CAvD3C,EAwDjC,CAxDiC,EAwD9B,CAxD8B,EAwD3B,OAxD2B,EAwDlB,CAxDkB,EAwDf,CAxDe,EAwDZ,CAxDY,EAwDT,KAxDS,EAwDF,CAxDE,EAwDC,OAxDD,EAwDU,CAxDV,EAwDa,CAxDb,EAwDgB,CAxDhB,EAwDmB,CAxDnB,EAwDsB,CAxDtB,EAwDyB,CAxDzB,EAwD4B,CAxD5B,EAwD+B,CAxD/B,EAwDkC,CAxDlC,EAwDqC,CAxDrC,EAwDwC,CAxDxC,EAyDjC,OAzDiC,EAyDxB,CAzDwB,EAyDrB,OAzDqB,EAyDZ,OAzDY,EAyDH,OAzDG,EAyDM,OAzDN,EAyDe,OAzDf,EAyDwB,CAzDxB,EAyD2B,CAzD3B,EAyD8B,OAzD9B,EA0DjC,OA1DiC,EA0DxB,OA1DwB,EA0Df,CA1De,EA0DZ,OA1DY,EA0DH,OA1DG,EA0DM,CA1DN,EA0DS,CA1DT,EA0DY,CA1DZ,EA0De,CA1Df,EA0DkB,CA1DlB,EA0DqB,CA1DrB,EA0DwB,CA1DxB,EA0D2B,CA1D3B,EA0D8B,CA1D9B,EA0DiC,CA1DjC,EA0DoC,CA1DpC,EA0DuC,CA1DvC,EA0D0C,CA1D1C,EA2DjC,CA3DiC,EA2D9B,CA3D8B,EA2D3B,CA3D2B,EA2DxB,CA3DwB,EA2DrB,CA3DqB,EA2DlB,CA3DkB,EA2Df,CA3De,EA2DZ,CA3DY,EA2DT,CA3DS,EA2DN,CA3DM,EA2DH,CA3DG,EA2DA,CA3DA,EA2DG,CA3DH,EA2DM,CA3DN,EA2DS,CA3DT,EA2DY,CA3DZ,EA2De,CA3Df,EA2DkB,CA3DlB,EA2DqB,CA3DrB,EA2DwB,CA3DxB,EA2D2B,CA3D3B,EA2D8B,CA3D9B,EA2DiC,CA3DjC,EA2DoC,CA3DpC,EA2DuC,CA3DvC,EA2D0C,CA3D1C,EA4DjC,CA5DiC,EA4D9B,CA5D8B,EA4D3B,CA5D2B,EA4DxB,CA5DwB,EA4DrB,CA5DqB,EA4DlB,CA5DkB,EA4Df,CA5De,EA4DZ,CA5DY,EA4DT,CA5DS,EA4DN,CA5DM,EA4DH,CA5DG,EA4DA,CA5DA,EA4DG,CA5DH,EA4DM,CA5DN,EA4DS,CA5DT,EA4DY,CA5DZ,EA4De,CA5Df,EA4DkB,CA5DlB,EA4DqB,CA5DrB,EA4DwB,CA5DxB,EA4D2B,CA5D3B,EA4D8B,CA5D9B,EA4DiC,OA5DjC,EA4D0C,CA5D1C,EA6DjC,CA7DiC,EA6D9B,CA7D8B,EA6D3B,CA7D2B,EA6DxB,CA7DwB,EA6DrB,CA7DqB,EA6DlB,CA7DkB,EA6Df,CA7De,EA6DZ,CA7DY,EA6DT,CA7DS,EA6DN,CA7DM,EA6DH,CA7DG,EA6DA,CA7DA,EA6DG,CA7DH,EA6DM,CA7DN,EA6DS,CA7DT,EA6DY,CA7DZ,EA6De,CA7Df,EA6DkB,CA7DlB,EA6DqB,CA7DrB,EA6DwB,CA7DxB,EA6D2B,CA7D3B,EA6D8B,CA7D9B,EA6DiC,CA7DjC,EA6DoC,CA7DpC,EA6DuC,CA7DvC,EA6D0C,CA7D1C,EA8DjC,CA9DiC,EA8D9B,CA9D8B,EA8D3B,CA9D2B,EA8DxB,CA9DwB,EA8DrB,CA9DqB,EA8DlB,CA9DkB,EA8Df,CA9De,EA8DZ,CA9DY,EA8DT,CA9DS,EA8DN,CA9DM,CAAnC;;AAgEA,MAAMG,6BAA6B;EAAE4C,YAAY,GAAd;EAAmBC,SAAS;AAA5B,CAAnC;;AAIA,MAAMpD,yBAAyB,CAC7B,OAD6B,EACpB,CADoB,EACjB,CADiB,EACd,OADc,EACL,OADK,EACI,OADJ,EACa,OADb,EACsB,OADtB,EAC+B,OAD/B,EACwC,OADxC,EAE7B,OAF6B,EAEpB,OAFoB,EAEX,OAFW,EAEF,OAFE,EAEO,OAFP,EAEgB,OAFhB,EAEyB,MAFzB,EAEiC,OAFjC,EAG7B,OAH6B,EAGpB,OAHoB,EAGX,OAHW,EAGF,OAHE,EAGO,OAHP,EAGgB,OAHhB,EAGyB,OAHzB,EAGkC,OAHlC,EAI7B,OAJ6B,EAIpB,OAJoB,EAIX,OAJW,EAIF,OAJE,EAIO,OAJP,EAIgB,OAJhB,EAIyB,OAJzB,EAIkC,OAJlC,EAK7B,OAL6B,EAKpB,OALoB,EAKX,OALW,EAKF,OALE,EAKO,OALP,EAKgB,OALhB,EAKyB,OALzB,EAKkC,OALlC,EAM7B,OAN6B,EAMpB,OANoB,EAMX,OANW,EAMF,KANE,EAMK,OANL,EAMc,OANd,EAMuB,OANvB,EAMgC,OANhC,EAMyC,MANzC,EAO7B,OAP6B,EAOpB,MAPoB,EAOZ,OAPY,EAOH,OAPG,EAOM,OAPN,EAOe,OAPf,EAOwB,OAPxB,EAOiC,OAPjC,EAQ7B,OAR6B,EAQpB,OARoB,EAQX,MARW,EAQH,MARG,EAQK,OARL,EAQc,MARd,EAQsB,OARtB,EAQ+B,OAR/B,EAQwC,OARxC,EAS7B,OAT6B,EASpB,OAToB,EASX,KATW,EASJ,OATI,EASK,OATL,EASc,MATd,EASsB,OATtB,EAS+B,OAT/B,EASwC,OATxC,EAU7B,OAV6B,EAUpB,KAVoB,EAUb,OAVa,EAUJ,OAVI,EAUK,OAVL,EAUc,OAVd,EAUuB,OAVvB,EAUgC,OAVhC,EAUyC,OAVzC,EAW7B,KAX6B,EAWtB,OAXsB,EAWb,OAXa,EAWJ,IAXI,EAWE,KAXF,EAWS,KAXT,EAWgB,KAXhB,EAWuB,IAXvB,EAW6B,OAX7B,EAWsC,OAXtC,EAY7B,OAZ6B,EAYpB,OAZoB,EAYX,OAZW,EAYF,OAZE,EAYO,OAZP,EAYgB,OAZhB,EAYyB,OAZzB,EAYkC,OAZlC,EAa7B,OAb6B,EAapB,OAboB,EAaX,MAbW,EAaH,OAbG,EAaM,OAbN,EAae,OAbf,EAawB,OAbxB,EAaiC,OAbjC,EAc7B,OAd6B,EAcpB,OAdoB,EAcX,CAdW,EAcR,CAdQ,EAcL,OAdK,EAcI,CAdJ,EAcO,OAdP,EAcgB,OAdhB,EAcyB,OAdzB,EAckC,CAdlC,EAcqC,MAdrC,EAe7B,OAf6B,EAepB,MAfoB,EAeZ,MAfY,EAeJ,MAfI,EAeI,OAfJ,EAea,OAfb,EAesB,OAftB,EAe+B,OAf/B,EAewC,OAfxC,EAgB7B,OAhB6B,EAgBpB,OAhBoB,EAgBX,KAhBW,EAgBJ,OAhBI,EAgBK,OAhBL,EAgBc,OAhBd,EAgBuB,OAhBvB,EAgBgC,OAhBhC,EAgByC,OAhBzC,EAiB7B,OAjB6B,EAiBpB,OAjBoB,EAiBX,OAjBW,EAiBF,OAjBE,EAiBO,OAjBP,EAiBgB,MAjBhB,EAiBwB,MAjBxB,EAiBgC,MAjBhC,EAiBwC,MAjBxC,EAkB7B,MAlB6B,EAkBrB,OAlBqB,EAkBZ,OAlBY,EAkBH,OAlBG,EAkBM,OAlBN,EAkBe,OAlBf,EAkBwB,OAlBxB,EAkBiC,OAlBjC,EAmB7B,OAnB6B,EAmBpB,OAnBoB,EAmBX,OAnBW,EAmBF,OAnBE,EAmBO,OAnBP,EAmBgB,OAnBhB,EAmByB,OAnBzB,EAmBkC,OAnBlC,EAoB7B,MApB6B,EAoBrB,KApBqB,EAoBd,OApBc,EAoBL,OApBK,EAoBI,OApBJ,EAoBa,OApBb,EAoBsB,OApBtB,EAoB+B,OApB/B,EAoBwC,OApBxC,EAqB7B,OArB6B,EAqBpB,MArBoB,EAqBZ,OArBY,EAqBH,OArBG,EAqBM,OArBN,EAqBe,OArBf,EAqBwB,OArBxB,EAqBiC,OArBjC,EAsB7B,OAtB6B,EAsBpB,MAtBoB,EAsBZ,OAtBY,EAsBH,OAtBG,EAsBM,OAtBN,EAsBe,OAtBf,EAsBwB,KAtBxB,EAsB+B,OAtB/B,EAsBwC,KAtBxC,EAuB7B,OAvB6B,EAuBpB,OAvBoB,EAuBX,OAvBW,EAuBF,OAvBE,EAuBO,OAvBP,EAuBgB,OAvBhB,EAuByB,OAvBzB,EAuBkC,KAvBlC,EAuByC,OAvBzC,EAwB7B,KAxB6B,EAwBtB,OAxBsB,EAwBb,KAxBa,EAwBN,OAxBM,EAwBG,KAxBH,EAwBU,OAxBV,EAwBmB,MAxBnB,EAwB2B,OAxB3B,EAwBoC,OAxBpC,EAyB7B,OAzB6B,EAyBpB,OAzBoB,EAyBX,OAzBW,EAyBF,OAzBE,EAyBO,OAzBP,EAyBgB,OAzBhB,EAyByB,OAzBzB,EAyBkC,OAzBlC,EA0B7B,OA1B6B,EA0BpB,OA1BoB,EA0BX,OA1BW,EA0BF,OA1BE,EA0BO,OA1BP,EA0BgB,OA1BhB,EA0ByB,OA1BzB,EA0BkC,OA1BlC,EA0B2C,CA1B3C,EA0B8C,CA1B9C,EA2B7B,OA3B6B,EA2BpB,OA3BoB,EA2BX,OA3BW,EA2BF,OA3BE,EA2BO,OA3BP,EA2BgB,OA3BhB,EA2ByB,OA3BzB,EA2BkC,OA3BlC,EA4B7B,OA5B6B,EA4BpB,OA5BoB,EA4BX,OA5BW,EA4BF,OA5BE,EA4BO,OA5BP,EA4BgB,OA5BhB,EA4ByB,OA5BzB,EA4BkC,OA5BlC,EA4B2C,KA5B3C,EA6B7B,OA7B6B,EA6BpB,CA7BoB,EA6BjB,CA7BiB,EA6Bd,KA7Bc,EA6BP,OA7BO,EA6BE,OA7BF,EA6BW,CA7BX,EA6Bc,CA7Bd,EA6BiB,OA7BjB,EA6B0B,OA7B1B,EA6BmC,OA7BnC,EA8B7B,OA9B6B,EA8BpB,OA9BoB,EA8BX,OA9BW,EA8BF,OA9BE,EA8BO,OA9BP,EA8BgB,CA9BhB,EA8BmB,CA9BnB,EA8BsB,OA9BtB,EA8B+B,OA9B/B,EA8BwC,OA9BxC,EA+B7B,OA/B6B,EA+BpB,OA/BoB,EA+BX,MA/BW,EA+BH,OA/BG,EA+BM,MA/BN,EA+Bc,OA/Bd,EA+BuB,MA/BvB,EA+B+B,OA/B/B,EA+BwC,KA/BxC,EAgC7B,OAhC6B,EAgCpB,OAhCoB,EAgCX,OAhCW,EAgCF,CAhCE,EAgCC,CAhCD,EAgCI,OAhCJ,EAgCa,OAhCb,EAgCsB,OAhCtB,EAgC+B,KAhC/B,EAgCsC,OAhCtC,EAiC7B,KAjC6B,EAiCtB,CAjCsB,EAiCnB,CAjCmB,EAiChB,OAjCgB,EAiCP,KAjCO,EAiCA,CAjCA,EAiCG,CAjCH,EAiCM,OAjCN,EAiCe,OAjCf,EAiCwB,OAjCxB,EAiCiC,OAjCjC,EAkC7B,OAlC6B,EAkCpB,OAlCoB,EAkCX,OAlCW,EAkCF,OAlCE,EAkCO,OAlCP,EAkCgB,OAlChB,EAkCyB,OAlCzB,EAkCkC,OAlClC,EAmC7B,OAnC6B,EAmCpB,OAnCoB,EAmCX,OAnCW,EAmCF,OAnCE,EAmCO,OAnCP,EAmCgB,KAnChB,EAmCuB,OAnCvB,EAmCgC,KAnChC,EAmCuC,OAnCvC,EAoC7B,MApC6B,EAoCrB,IApCqB,EAoCf,MApCe,EAoCP,IApCO,EAoCD,MApCC,EAoCO,IApCP,EAoCa,CApCb,EAoCgB,OApChB,EAoCyB,OApCzB,EAoCkC,OApClC,EAoC2C,KApC3C,EAqC7B,MArC6B,EAqCrB,OArCqB,EAqCZ,MArCY,EAqCJ,CArCI,EAqCD,CArCC,EAqCE,OArCF,EAqCW,OArCX,EAqCoB,OArCpB,EAqC6B,OArC7B,EAqCsC,OArCtC,EAsC7B,OAtC6B,EAsCpB,OAtCoB,EAsCX,OAtCW,EAsCF,OAtCE,EAsCO,OAtCP,EAsCgB,OAtChB,EAsCyB,OAtCzB,EAsCkC,OAtClC,EAuC7B,OAvC6B,EAuCpB,OAvCoB,EAuCX,OAvCW,EAuCF,MAvCE,EAuCM,OAvCN,EAuCe,OAvCf,EAuCwB,OAvCxB,EAuCiC,OAvCjC,EAwC7B,OAxC6B,EAwCpB,OAxCoB,EAwCX,OAxCW,EAwCF,OAxCE,EAwCO,OAxCP,EAwCgB,OAxChB,EAwCyB,MAxCzB,EAwCiC,OAxCjC,EAwC0C,MAxC1C,EAyC7B,OAzC6B,EAyCpB,OAzCoB,EAyCX,OAzCW,EAyCF,OAzCE,EAyCO,OAzCP,EAyCgB,OAzChB,EAyCyB,MAzCzB,EAyCiC,OAzCjC,EA0C7B,OA1C6B,EA0CpB,OA1CoB,EA0CX,OA1CW,EA0CF,MA1CE,EA0CM,OA1CN,EA0Ce,OA1Cf,EA0CwB,OA1CxB,EA0CiC,OA1CjC,EA2C7B,OA3C6B,EA2CpB,MA3CoB,EA2CZ,MA3CY,EA2CJ,OA3CI,EA2CK,OA3CL,EA2Cc,OA3Cd,EA2CuB,OA3CvB,EA2CgC,MA3ChC,EA2CwC,OA3CxC,EA4C7B,KA5C6B,EA4CtB,OA5CsB,EA4Cb,OA5Ca,EA4CJ,OA5CI,EA4CK,OA5CL,EA4Cc,OA5Cd,EA4CuB,OA5CvB,EA4CgC,KA5ChC,EA4CuC,OA5CvC,EA6C7B,OA7C6B,EA6CpB,IA7CoB,EA6Cd,OA7Cc,EA6CL,OA7CK,EA6CI,OA7CJ,EA6Ca,OA7Cb,EA6CsB,CA7CtB,EA6CyB,OA7CzB,EA6CkC,OA7ClC,EA8C7B,OA9C6B,EA8CpB,OA9CoB,EA8CX,OA9CW,EA8CF,OA9CE,EA8CO,OA9CP,EA8CgB,OA9ChB,EA8CyB,OA9CzB,EA8CkC,OA9ClC,EA+C7B,OA/C6B,EA+CpB,OA/CoB,EA+CX,CA/CW,EA+CR,CA/CQ,EA+CL,CA/CK,EA+CF,CA/CE,EA+CC,CA/CD,EA+CI,CA/CJ,EA+CO,CA/CP,EA+CU,CA/CV,EA+Ca,CA/Cb,EA+CgB,CA/ChB,EA+CmB,CA/CnB,EA+CsB,CA/CtB,EA+CyB,CA/CzB,EA+C4B,CA/C5B,EA+C+B,CA/C/B,EA+CkC,CA/ClC,EA+CqC,CA/CrC,EA+CwC,CA/CxC,EA+C2C,CA/C3C,EA+C8C,CA/C9C,EAgD7B,CAhD6B,EAgD1B,CAhD0B,EAgDvB,CAhDuB,EAgDpB,CAhDoB,EAgDjB,CAhDiB,EAgDd,CAhDc,EAgDX,CAhDW,EAgDR,CAhDQ,EAgDL,CAhDK,EAgDF,CAhDE,EAgDC,CAhDD,EAgDI,CAhDJ,EAgDO,CAhDP,EAgDU,CAhDV,EAgDa,CAhDb,EAgDgB,CAhDhB,EAgDmB,CAhDnB,EAgDsB,CAhDtB,EAgDyB,CAhDzB,EAgD4B,CAhD5B,EAgD+B,CAhD/B,EAgDkC,CAhDlC,EAgDqC,CAhDrC,EAgDwC,CAhDxC,EAgD2C,CAhD3C,EAgD8C,CAhD9C,EAiD7B,CAjD6B,EAiD1B,CAjD0B,EAiDvB,CAjDuB,EAiDpB,CAjDoB,EAiDjB,CAjDiB,EAiDd,CAjDc,EAiDX,CAjDW,EAiDR,CAjDQ,EAiDL,CAjDK,EAiDF,CAjDE,EAiDC,CAjDD,EAiDI,CAjDJ,EAiDO,CAjDP,EAiDU,CAjDV,EAiDa,CAjDb,EAiDgB,CAjDhB,EAiDmB,CAjDnB,EAiDsB,CAjDtB,EAiDyB,CAjDzB,EAiD4B,CAjD5B,EAiD+B,CAjD/B,EAiDkC,CAjDlC,EAiDqC,CAjDrC,EAiDwC,CAjDxC,EAiD2C,CAjD3C,EAiD8C,CAjD9C,EAkD7B,CAlD6B,EAkD1B,CAlD0B,EAkDvB,CAlDuB,EAkDpB,CAlDoB,EAkDjB,CAlDiB,EAkDd,CAlDc,EAkDX,CAlDW,EAkDR,CAlDQ,EAkDL,CAlDK,EAkDF,CAlDE,EAkDC,CAlDD,EAkDI,CAlDJ,EAkDO,CAlDP,EAkDU,CAlDV,EAkDa,CAlDb,EAkDgB,CAlDhB,EAkDmB,CAlDnB,EAkDsB,CAlDtB,EAkDyB,CAlDzB,EAkD4B,CAlD5B,EAkD+B,CAlD/B,EAkDkC,CAlDlC,EAkDqC,CAlDrC,EAkDwC,CAlDxC,EAkD2C,CAlD3C,EAkD8C,CAlD9C,EAmD7B,CAnD6B,EAmD1B,CAnD0B,EAmDvB,OAnDuB,EAmDd,KAnDc,EAmDP,OAnDO,EAmDE,KAnDF,EAmDS,OAnDT,EAmDkB,KAnDlB,EAmDyB,OAnDzB,EAmDkC,KAnDlC,EAmDyC,MAnDzC,EAoD7B,CApD6B,EAoD1B,OApD0B,EAoDjB,CApDiB,EAoDd,CApDc,EAoDX,CApDW,EAoDR,OApDQ,EAoDC,OApDD,EAoDU,OApDV,EAoDmB,CApDnB,EAoDsB,KApDtB,EAoD6B,KApD7B,EAoDoC,KApDpC,EAqD7B,OArD6B,EAqDpB,OArDoB,EAqDX,OArDW,EAqDF,CArDE,EAqDC,KArDD,EAqDQ,CArDR,EAqDW,CArDX,EAqDc,OArDd,EAqDuB,OArDvB,EAqDgC,CArDhC,EAqDmC,CArDnC,EAqDsC,OArDtC,EAqD+C,CArD/C,EAsD7B,CAtD6B,EAsD1B,CAtD0B,EAsDvB,CAtDuB,EAsDpB,OAtDoB,EAsDX,CAtDW,EAsDR,CAtDQ,EAsDL,CAtDK,EAsDF,KAtDE,EAsDK,CAtDL,EAsDQ,OAtDR,EAsDiB,CAtDjB,EAsDoB,CAtDpB,EAsDuB,CAtDvB,EAsD0B,CAtD1B,EAsD6B,CAtD7B,EAsDgC,CAtDhC,EAsDmC,CAtDnC,EAsDsC,CAtDtC,EAsDyC,CAtDzC,EAsD4C,CAtD5C,EAsD+C,CAtD/C,EAuD7B,OAvD6B,EAuDpB,CAvDoB,EAuDjB,OAvDiB,EAuDR,OAvDQ,EAuDC,OAvDD,EAuDU,OAvDV,EAuDmB,OAvDnB,EAuD4B,CAvD5B,EAuD+B,CAvD/B,EAuDkC,OAvDlC,EAwD7B,OAxD6B,EAwDpB,OAxDoB,EAwDX,CAxDW,EAwDR,OAxDQ,EAwDC,OAxDD,EAwDU,CAxDV,EAwDa,CAxDb,EAwDgB,CAxDhB,EAwDmB,CAxDnB,EAwDsB,CAxDtB,EAwDyB,CAxDzB,EAwD4B,CAxD5B,EAwD+B,CAxD/B,EAwDkC,CAxDlC,EAwDqC,CAxDrC,EAwDwC,CAxDxC,EAwD2C,CAxD3C,EAwD8C,CAxD9C,EAyD7B,CAzD6B,EAyD1B,CAzD0B,EAyDvB,CAzDuB,EAyDpB,CAzDoB,EAyDjB,CAzDiB,EAyDd,CAzDc,EAyDX,CAzDW,EAyDR,CAzDQ,EAyDL,CAzDK,EAyDF,CAzDE,EAyDC,CAzDD,EAyDI,CAzDJ,EAyDO,CAzDP,EAyDU,CAzDV,EAyDa,CAzDb,EAyDgB,CAzDhB,EAyDmB,CAzDnB,EAyDsB,CAzDtB,EAyDyB,CAzDzB,EAyD4B,CAzD5B,EAyD+B,CAzD/B,EAyDkC,CAzDlC,EAyDqC,CAzDrC,EAyDwC,CAzDxC,EAyD2C,CAzD3C,EAyD8C,CAzD9C,EA0D7B,CA1D6B,EA0D1B,CA1D0B,EA0DvB,CA1DuB,EA0DpB,CA1DoB,EA0DjB,CA1DiB,EA0Dd,CA1Dc,EA0DX,CA1DW,EA0DR,CA1DQ,EA0DL,CA1DK,EA0DF,CA1DE,EA0DC,CA1DD,EA0DI,CA1DJ,EA0DO,CA1DP,EA0DU,CA1DV,EA0Da,CA1Db,EA0DgB,CA1DhB,EA0DmB,CA1DnB,EA0DsB,CA1DtB,EA0DyB,CA1DzB,EA0D4B,CA1D5B,EA0D+B,CA1D/B,EA0DkC,CA1DlC,EA0DqC,OA1DrC,EA0D8C,CA1D9C,EA2D7B,CA3D6B,EA2D1B,CA3D0B,EA2DvB,CA3DuB,EA2DpB,CA3DoB,EA2DjB,CA3DiB,EA2Dd,CA3Dc,EA2DX,CA3DW,EA2DR,CA3DQ,EA2DL,CA3DK,EA2DF,CA3DE,EA2DC,CA3DD,EA2DI,CA3DJ,EA2DO,CA3DP,EA2DU,CA3DV,EA2Da,CA3Db,EA2DgB,CA3DhB,EA2DmB,CA3DnB,EA2DsB,CA3DtB,EA2DyB,CA3DzB,EA2D4B,CA3D5B,EA2D+B,CA3D/B,EA2DkC,CA3DlC,EA2DqC,CA3DrC,EA2DwC,CA3DxC,EA2D2C,CA3D3C,EA2D8C,CA3D9C,EA4D7B,CA5D6B,EA4D1B,CA5D0B,EA4DvB,CA5DuB,EA4DpB,CA5DoB,EA4DjB,CA5DiB,EA4Dd,CA5Dc,EA4DX,CA5DW,EA4DR,CA5DQ,EA4DL,CA5DK,EA4DF,CA5DE,CAA/B;;AA8DA,MAAMG,yBAAyB;EAAEgD,YAAY,GAAd;EAAmBC,SAAS;AAA5B,CAA/B;;AAIA,MAAM/D,0BAA0B,CAC9B,OAD8B,EACrB,CADqB,EAClB,CADkB,EACf,OADe,EACN,OADM,EACG,OADH,EACY,OADZ,EACqB,OADrB,EAC8B,OAD9B,EACuC,OADvC,EAE9B,OAF8B,EAErB,OAFqB,EAEZ,OAFY,EAEH,MAFG,EAEK,OAFL,EAEc,OAFd,EAEuB,MAFvB,EAE+B,OAF/B,EAEwC,OAFxC,EAG9B,OAH8B,EAGrB,OAHqB,EAGZ,OAHY,EAGH,OAHG,EAGM,OAHN,EAGe,OAHf,EAGwB,OAHxB,EAGiC,OAHjC,EAI9B,OAJ8B,EAIrB,OAJqB,EAIZ,OAJY,EAIH,OAJG,EAIM,OAJN,EAIe,OAJf,EAIwB,OAJxB,EAIiC,OAJjC,EAK9B,OAL8B,EAKrB,OALqB,EAKZ,MALY,EAKJ,OALI,EAKK,OALL,EAKc,OALd,EAKuB,OALvB,EAKgC,OALhC,EAM9B,OAN8B,EAMrB,OANqB,EAMZ,IANY,EAMN,MANM,EAME,OANF,EAMW,OANX,EAMoB,OANpB,EAM6B,MAN7B,EAMqC,OANrC,EAO9B,MAP8B,EAOtB,OAPsB,EAOb,OAPa,EAOJ,OAPI,EAOK,OAPL,EAOc,OAPd,EAOuB,OAPvB,EAOgC,OAPhC,EAOyC,MAPzC,EAQ9B,OAR8B,EAQrB,MARqB,EAQb,OARa,EAQJ,MARI,EAQI,OARJ,EAQa,OARb,EAQsB,OARtB,EAQ+B,OAR/B,EAQwC,MARxC,EAS9B,KAT8B,EASvB,OATuB,EASd,OATc,EASL,OATK,EASI,OATJ,EASa,OATb,EASsB,OATtB,EAS+B,OAT/B,EASwC,KATxC,EAU9B,OAV8B,EAUrB,OAVqB,EAUZ,OAVY,EAUH,OAVG,EAUM,MAVN,EAUc,OAVd,EAUuB,OAVvB,EAUgC,KAVhC,EAUuC,OAVvC,EAW9B,OAX8B,EAWrB,KAXqB,EAWd,OAXc,EAWL,KAXK,EAWE,KAXF,EAWS,KAXT,EAWgB,OAXhB,EAWyB,OAXzB,EAWkC,OAXlC,EAY9B,OAZ8B,EAYrB,OAZqB,EAYZ,OAZY,EAYH,OAZG,EAYM,OAZN,EAYe,OAZf,EAYwB,OAZxB,EAYiC,MAZjC,EAa9B,OAb8B,EAarB,OAbqB,EAaZ,OAbY,EAaH,OAbG,EAaM,OAbN,EAae,OAbf,EAawB,OAbxB,EAaiC,OAbjC,EAc9B,OAd8B,EAcrB,CAdqB,EAclB,CAdkB,EAcf,OAde,EAcN,CAdM,EAcH,OAdG,EAcM,OAdN,EAce,OAdf,EAcwB,CAdxB,EAc2B,OAd3B,EAcoC,OAdpC,EAe9B,OAf8B,EAerB,OAfqB,EAeZ,OAfY,EAeH,OAfG,EAeM,OAfN,EAee,OAff,EAewB,OAfxB,EAeiC,OAfjC,EAgB9B,OAhB8B,EAgBrB,OAhBqB,EAgBZ,KAhBY,EAgBL,OAhBK,EAgBI,OAhBJ,EAgBa,OAhBb,EAgBsB,OAhBtB,EAgB+B,OAhB/B,EAgBwC,OAhBxC,EAiB9B,OAjB8B,EAiBrB,OAjBqB,EAiBZ,OAjBY,EAiBH,OAjBG,EAiBM,OAjBN,EAiBe,MAjBf,EAiBuB,MAjBvB,EAiB+B,MAjB/B,EAiBuC,MAjBvC,EAkB9B,MAlB8B,EAkBtB,OAlBsB,EAkBb,MAlBa,EAkBL,OAlBK,EAkBI,OAlBJ,EAkBa,OAlBb,EAkBsB,OAlBtB,EAkB+B,MAlB/B,EAkBuC,OAlBvC,EAmB9B,OAnB8B,EAmBrB,OAnBqB,EAmBZ,OAnBY,EAmBH,OAnBG,EAmBM,OAnBN,EAmBe,OAnBf,EAmBwB,OAnBxB,EAmBiC,OAnBjC,EAmB0C,KAnB1C,EAoB9B,OApB8B,EAoBrB,OApBqB,EAoBZ,OApBY,EAoBH,OApBG,EAoBM,OApBN,EAoBe,OApBf,EAoBwB,OApBxB,EAoBiC,OApBjC,EAqB9B,OArB8B,EAqBrB,OArBqB,EAqBZ,OArBY,EAqBH,OArBG,EAqBM,OArBN,EAqBe,OArBf,EAqBwB,OArBxB,EAqBiC,OArBjC,EAsB9B,OAtB8B,EAsBrB,OAtBqB,EAsBZ,OAtBY,EAsBH,OAtBG,EAsBM,OAtBN,EAsBe,KAtBf,EAsBsB,MAtBtB,EAsB8B,KAtB9B,EAsBqC,OAtBrC,EAuB9B,OAvB8B,EAuBrB,OAvBqB,EAuBZ,OAvBY,EAuBH,OAvBG,EAuBM,OAvBN,EAuBe,OAvBf,EAuBwB,KAvBxB,EAuB+B,OAvB/B,EAuBwC,KAvBxC,EAwB9B,OAxB8B,EAwBrB,KAxBqB,EAwBd,OAxBc,EAwBL,KAxBK,EAwBE,OAxBF,EAwBW,OAxBX,EAwBoB,OAxBpB,EAwB6B,OAxB7B,EAwBsC,OAxBtC,EAyB9B,OAzB8B,EAyBrB,OAzBqB,EAyBZ,OAzBY,EAyBH,OAzBG,EAyBM,OAzBN,EAyBe,OAzBf,EAyBwB,OAzBxB,EAyBiC,OAzBjC,EA0B9B,OA1B8B,EA0BrB,OA1BqB,EA0BZ,OA1BY,EA0BH,OA1BG,EA0BM,OA1BN,EA0Be,OA1Bf,EA0BwB,OA1BxB,EA0BiC,CA1BjC,EA0BoC,CA1BpC,EA0BuC,OA1BvC,EA2B9B,OA3B8B,EA2BrB,OA3BqB,EA2BZ,OA3BY,EA2BH,OA3BG,EA2BM,OA3BN,EA2Be,OA3Bf,EA2BwB,OA3BxB,EA2BiC,OA3BjC,EA4B9B,OA5B8B,EA4BrB,OA5BqB,EA4BZ,OA5BY,EA4BH,OA5BG,EA4BM,OA5BN,EA4Be,OA5Bf,EA4BwB,OA5BxB,EA4BiC,IA5BjC,EA4BuC,OA5BvC,EA6B9B,CA7B8B,EA6B3B,CA7B2B,EA6BxB,KA7BwB,EA6BjB,OA7BiB,EA6BR,OA7BQ,EA6BC,CA7BD,EA6BI,CA7BJ,EA6BO,OA7BP,EA6BgB,OA7BhB,EA6ByB,OA7BzB,EA6BkC,OA7BlC,EA8B9B,OA9B8B,EA8BrB,OA9BqB,EA8BZ,OA9BY,EA8BH,OA9BG,EA8BM,CA9BN,EA8BS,CA9BT,EA8BY,OA9BZ,EA8BqB,OA9BrB,EA8B8B,OA9B9B,EA8BuC,OA9BvC,EA+B9B,OA/B8B,EA+BrB,MA/BqB,EA+Bb,OA/Ba,EA+BJ,MA/BI,EA+BI,OA/BJ,EA+Ba,MA/Bb,EA+BqB,OA/BrB,EA+B8B,KA/B9B,EA+BqC,OA/BrC,EAgC9B,OAhC8B,EAgCrB,OAhCqB,EAgCZ,CAhCY,EAgCT,CAhCS,EAgCN,OAhCM,EAgCG,OAhCH,EAgCY,OAhCZ,EAgCqB,KAhCrB,EAgC4B,OAhC5B,EAgCqC,KAhCrC,EAgC4C,CAhC5C,EAiC9B,CAjC8B,EAiC3B,OAjC2B,EAiClB,KAjCkB,EAiCX,CAjCW,EAiCR,CAjCQ,EAiCL,OAjCK,EAiCI,KAjCJ,EAiCW,OAjCX,EAiCoB,OAjCpB,EAiC6B,OAjC7B,EAiCsC,OAjCtC,EAkC9B,OAlC8B,EAkCrB,OAlCqB,EAkCZ,OAlCY,EAkCH,OAlCG,EAkCM,OAlCN,EAkCe,OAlCf,EAkCwB,OAlCxB,EAkCiC,OAlCjC,EAmC9B,OAnC8B,EAmCrB,OAnCqB,EAmCZ,OAnCY,EAmCH,OAnCG,EAmCM,MAnCN,EAmCc,KAnCd,EAmCqB,MAnCrB,EAmC6B,OAnC7B,EAmCsC,KAnCtC,EAoC9B,OApC8B,EAoCrB,KApCqB,EAoCd,OApCc,EAoCL,KApCK,EAoCE,CApCF,EAoCK,OApCL,EAoCc,OApCd,EAoCuB,OApCvB,EAoCgC,KApChC,EAoCuC,OApCvC,EAqC9B,MArC8B,EAqCtB,OArCsB,EAqCb,CArCa,EAqCV,CArCU,EAqCP,OArCO,EAqCE,OArCF,EAqCW,OArCX,EAqCoB,OArCpB,EAqC6B,OArC7B,EAqCsC,OArCtC,EAsC9B,OAtC8B,EAsCrB,OAtCqB,EAsCZ,OAtCY,EAsCH,OAtCG,EAsCM,OAtCN,EAsCe,OAtCf,EAsCwB,OAtCxB,EAsCiC,OAtCjC,EAuC9B,OAvC8B,EAuCrB,MAvCqB,EAuCb,OAvCa,EAuCJ,OAvCI,EAuCK,OAvCL,EAuCc,OAvCd,EAuCuB,OAvCvB,EAuCgC,OAvChC,EAwC9B,OAxC8B,EAwCrB,MAxCqB,EAwCb,OAxCa,EAwCJ,OAxCI,EAwCK,OAxCL,EAwCc,OAxCd,EAwCuB,OAxCvB,EAwCgC,MAxChC,EAwCwC,OAxCxC,EAyC9B,MAzC8B,EAyCtB,OAzCsB,EAyCb,OAzCa,EAyCJ,OAzCI,EAyCK,OAzCL,EAyCc,MAzCd,EAyCsB,OAzCtB,EAyC+B,OAzC/B,EAyCwC,OAzCxC,EA0C9B,OA1C8B,EA0CrB,OA1CqB,EA0CZ,OA1CY,EA0CH,OA1CG,EA0CM,OA1CN,EA0Ce,OA1Cf,EA0CwB,OA1CxB,EA0CiC,OA1CjC,EA2C9B,OA3C8B,EA2CrB,OA3CqB,EA2CZ,OA3CY,EA2CH,OA3CG,EA2CM,OA3CN,EA2Ce,OA3Cf,EA2CwB,OA3CxB,EA2CiC,KA3CjC,EA2CwC,OA3CxC,EA4C9B,OA5C8B,EA4CrB,OA5CqB,EA4CZ,OA5CY,EA4CH,OA5CG,EA4CM,OA5CN,EA4Ce,KA5Cf,EA4CsB,KA5CtB,EA4C6B,OA5C7B,EA4CsC,KA5CtC,EA6C9B,OA7C8B,EA6CrB,OA7CqB,EA6CZ,OA7CY,EA6CH,OA7CG,EA6CM,CA7CN,EA6CS,OA7CT,EA6CkB,OA7ClB,EA6C2B,OA7C3B,EA6CoC,OA7CpC,EA8C9B,OA9C8B,EA8CrB,OA9CqB,EA8CZ,OA9CY,EA8CH,OA9CG,EA8CM,OA9CN,EA8Ce,OA9Cf,EA8CwB,OA9CxB,EA8CiC,OA9CjC,EA8C0C,CA9C1C,EA8C6C,CA9C7C,EA+C9B,CA/C8B,EA+C3B,CA/C2B,EA+CxB,CA/CwB,EA+CrB,CA/CqB,EA+ClB,CA/CkB,EA+Cf,CA/Ce,EA+CZ,CA/CY,EA+CT,CA/CS,EA+CN,CA/CM,EA+CH,CA/CG,EA+CA,CA/CA,EA+CG,CA/CH,EA+CM,CA/CN,EA+CS,CA/CT,EA+CY,CA/CZ,EA+Ce,CA/Cf,EA+CkB,CA/ClB,EA+CqB,CA/CrB,EA+CwB,CA/CxB,EA+C2B,CA/C3B,EA+C8B,CA/C9B,EA+CiC,CA/CjC,EA+CoC,CA/CpC,EA+CuC,CA/CvC,EA+C0C,CA/C1C,EA+C6C,CA/C7C,EAgD9B,CAhD8B,EAgD3B,CAhD2B,EAgDxB,CAhDwB,EAgDrB,CAhDqB,EAgDlB,CAhDkB,EAgDf,CAhDe,EAgDZ,CAhDY,EAgDT,CAhDS,EAgDN,CAhDM,EAgDH,CAhDG,EAgDA,CAhDA,EAgDG,CAhDH,EAgDM,CAhDN,EAgDS,CAhDT,EAgDY,CAhDZ,EAgDe,CAhDf,EAgDkB,CAhDlB,EAgDqB,CAhDrB,EAgDwB,CAhDxB,EAgD2B,CAhD3B,EAgD8B,CAhD9B,EAgDiC,CAhDjC,EAgDoC,CAhDpC,EAgDuC,CAhDvC,EAgD0C,CAhD1C,EAgD6C,CAhD7C,EAiD9B,CAjD8B,EAiD3B,CAjD2B,EAiDxB,CAjDwB,EAiDrB,CAjDqB,EAiDlB,CAjDkB,EAiDf,CAjDe,EAiDZ,CAjDY,EAiDT,CAjDS,EAiDN,CAjDM,EAiDH,CAjDG,EAiDA,CAjDA,EAiDG,CAjDH,EAiDM,CAjDN,EAiDS,CAjDT,EAiDY,CAjDZ,EAiDe,CAjDf,EAiDkB,CAjDlB,EAiDqB,CAjDrB,EAiDwB,CAjDxB,EAiD2B,CAjD3B,EAiD8B,CAjD9B,EAiDiC,CAjDjC,EAiDoC,CAjDpC,EAiDuC,CAjDvC,EAiD0C,CAjD1C,EAiD6C,CAjD7C,EAkD9B,CAlD8B,EAkD3B,CAlD2B,EAkDxB,CAlDwB,EAkDrB,CAlDqB,EAkDlB,CAlDkB,EAkDf,CAlDe,EAkDZ,CAlDY,EAkDT,CAlDS,EAkDN,CAlDM,EAkDH,CAlDG,EAkDA,CAlDA,EAkDG,CAlDH,EAkDM,CAlDN,EAkDS,CAlDT,EAkDY,CAlDZ,EAkDe,CAlDf,EAkDkB,CAlDlB,EAkDqB,CAlDrB,EAkDwB,CAlDxB,EAkD2B,CAlD3B,EAkD8B,OAlD9B,EAkDuC,OAlDvC,EAmD9B,OAnD8B,EAmDrB,OAnDqB,EAmDZ,OAnDY,EAmDH,OAnDG,EAmDM,MAnDN,EAmDc,KAnDd,EAmDqB,MAnDrB,EAmD6B,CAnD7B,EAmDgC,OAnDhC,EAmDyC,CAnDzC,EAmD4C,CAnD5C,EAoD9B,CApD8B,EAoD3B,OApD2B,EAoDlB,OApDkB,EAoDT,OApDS,EAoDA,CApDA,EAoDG,OApDH,EAoDY,OApDZ,EAoDqB,OApDrB,EAoD8B,OApD9B,EAoDuC,OApDvC,EAqD9B,OArD8B,EAqDrB,CArDqB,EAqDlB,KArDkB,EAqDX,CArDW,EAqDR,CArDQ,EAqDL,OArDK,EAqDI,OArDJ,EAqDa,CArDb,EAqDgB,CArDhB,EAqDmB,OArDnB,EAqD4B,CArD5B,EAqD+B,CArD/B,EAqDkC,CArDlC,EAqDqC,CArDrC,EAqDwC,OArDxC,EAsD9B,CAtD8B,EAsD3B,CAtD2B,EAsDxB,CAtDwB,EAsDrB,KAtDqB,EAsDd,CAtDc,EAsDX,OAtDW,EAsDF,CAtDE,EAsDC,CAtDD,EAsDI,CAtDJ,EAsDO,CAtDP,EAsDU,CAtDV,EAsDa,CAtDb,EAsDgB,CAtDhB,EAsDmB,CAtDnB,EAsDsB,CAtDtB,EAsDyB,CAtDzB,EAsD4B,CAtD5B,EAsD+B,OAtD/B,EAsDwC,CAtDxC,EAuD9B,OAvD8B,EAuDrB,OAvDqB,EAuDZ,OAvDY,EAuDH,KAvDG,EAuDI,OAvDJ,EAuDa,CAvDb,EAuDgB,CAvDhB,EAuDmB,MAvDnB,EAuD2B,OAvD3B,EAuDoC,OAvDpC,EAuD6C,CAvD7C,EAwD9B,OAxD8B,EAwDrB,OAxDqB,EAwDZ,CAxDY,EAwDT,CAxDS,EAwDN,CAxDM,EAwDH,CAxDG,EAwDA,CAxDA,EAwDG,CAxDH,EAwDM,CAxDN,EAwDS,CAxDT,EAwDY,CAxDZ,EAwDe,CAxDf,EAwDkB,CAxDlB,EAwDqB,CAxDrB,EAwDwB,CAxDxB,EAwD2B,CAxD3B,EAwD8B,CAxD9B,EAwDiC,CAxDjC,EAwDoC,CAxDpC,EAwDuC,CAxDvC,EAwD0C,CAxD1C,EAwD6C,CAxD7C,EAyD9B,CAzD8B,EAyD3B,CAzD2B,EAyDxB,CAzDwB,EAyDrB,CAzDqB,EAyDlB,CAzDkB,EAyDf,CAzDe,EAyDZ,CAzDY,EAyDT,CAzDS,EAyDN,CAzDM,EAyDH,CAzDG,EAyDA,CAzDA,EAyDG,CAzDH,EAyDM,CAzDN,EAyDS,CAzDT,EAyDY,CAzDZ,EAyDe,CAzDf,EAyDkB,CAzDlB,EAyDqB,CAzDrB,EAyDwB,CAzDxB,EAyD2B,CAzD3B,EAyD8B,CAzD9B,EAyDiC,CAzDjC,EAyDoC,CAzDpC,EAyDuC,CAzDvC,EAyD0C,CAzD1C,EAyD6C,CAzD7C,EA0D9B,CA1D8B,EA0D3B,CA1D2B,EA0DxB,CA1DwB,EA0DrB,CA1DqB,EA0DlB,CA1DkB,EA0Df,CA1De,EA0DZ,CA1DY,EA0DT,CA1DS,EA0DN,CA1DM,EA0DH,CA1DG,EA0DA,CA1DA,EA0DG,CA1DH,EA0DM,CA1DN,EA0DS,CA1DT,EA0DY,CA1DZ,EA0De,OA1Df,EA0DwB,CA1DxB,EA0D2B,CA1D3B,EA0D8B,CA1D9B,EA0DiC,CA1DjC,EA0DoC,CA1DpC,EA0DuC,CA1DvC,EA0D0C,CA1D1C,EA0D6C,CA1D7C,EA2D9B,CA3D8B,EA2D3B,CA3D2B,EA2DxB,CA3DwB,EA2DrB,CA3DqB,EA2DlB,CA3DkB,EA2Df,CA3De,EA2DZ,CA3DY,EA2DT,CA3DS,EA2DN,CA3DM,EA2DH,CA3DG,EA2DA,CA3DA,EA2DG,CA3DH,EA2DM,CA3DN,EA2DS,CA3DT,EA2DY,CA3DZ,EA2De,CA3Df,EA2DkB,CA3DlB,EA2DqB,CA3DrB,EA2DwB,CA3DxB,EA2D2B,CA3D3B,EA2D8B,CA3D9B,EA2DiC,CA3DjC,EA2DoC,CA3DpC,EA2DuC,CA3DvC,EA2D0C,CA3D1C,EA2D6C,CA3D7C,EA4D9B,CA5D8B,EA4D3B,CA5D2B,EA4DxB,CA5DwB,CAAhC;;AA8DA,MAAMM,0BAA0B;EAAEwD,YAAY,GAAd;EAAmBC,SAAS;AAA5B,CAAhC;;;;;;;;;;;;;ACtQA,MAAMhC,qBAAqB,CACzB,OADyB,EAChB,CADgB,EACb,CADa,EACV,OADU,EACD,MADC,EACO,OADP,EACgB,OADhB,EACyB,OADzB,EACkC,OADlC,EAC2C,OAD3C,EAEzB,OAFyB,EAEhB,MAFgB,EAER,MAFQ,EAEA,OAFA,EAES,MAFT,EAEiB,MAFjB,EAEyB,OAFzB,EAEkC,MAFlC,EAE0C,OAF1C,EAGzB,OAHyB,EAGhB,OAHgB,EAGP,OAHO,EAGE,OAHF,EAGW,OAHX,EAGoB,OAHpB,EAG6B,OAH7B,EAGsC,OAHtC,EAIzB,OAJyB,EAIhB,OAJgB,EAIP,OAJO,EAIE,OAJF,EAIW,MAJX,EAImB,MAJnB,EAI2B,MAJ3B,EAImC,OAJnC,EAI4C,OAJ5C,EAKzB,OALyB,EAKhB,OALgB,EAKP,MALO,EAKC,OALD,EAKU,OALV,EAKmB,OALnB,EAK4B,KAL5B,EAKmC,OALnC,EAK4C,MAL5C,EAMzB,MANyB,EAMjB,OANiB,EAMR,OANQ,EAMC,OAND,EAMU,OANV,EAMmB,OANnB,EAM4B,OAN5B,EAMqC,OANrC,EAOzB,OAPyB,EAOhB,OAPgB,EAOP,OAPO,EAOE,OAPF,EAOW,CAPX,EAOc,OAPd,EAOuB,OAPvB,EAOgC,OAPhC,EAOyC,OAPzC,EAQzB,MARyB,EAQjB,OARiB,EAQR,MARQ,EAQA,MARA,EAQQ,OARR,EAQiB,OARjB,EAQ0B,OAR1B,EAQmC,OARnC,EAQ4C,OAR5C,EASzB,OATyB,EAShB,OATgB,EASP,OATO,EASE,OATF,EASW,OATX,EASoB,OATpB,EAS6B,OAT7B,EASsC,OATtC,EAUzB,OAVyB,EAUhB,MAVgB,EAUR,OAVQ,EAUC,MAVD,EAUS,OAVT,EAUkB,OAVlB,EAU2B,OAV3B,EAUoC,OAVpC,EAU6C,OAV7C,EAWzB,OAXyB,EAWhB,OAXgB,EAWP,OAXO,EAWE,OAXF,EAWW,OAXX,EAWoB,OAXpB,EAW6B,OAX7B,EAWsC,OAXtC,EAYzB,OAZyB,EAYhB,MAZgB,EAYR,MAZQ,EAYA,OAZA,EAYS,OAZT,EAYkB,CAZlB,EAYqB,OAZrB,EAY8B,OAZ9B,EAYuC,MAZvC,EAazB,MAbyB,EAajB,OAbiB,EAaR,OAbQ,EAaC,OAbD,EAaU,MAbV,EAakB,OAblB,EAa2B,OAb3B,EAaoC,OAbpC,EAa6C,OAb7C,EAczB,OAdyB,EAchB,OAdgB,EAcP,OAdO,EAcE,CAdF,EAcK,OAdL,EAcc,MAdd,EAcsB,OAdtB,EAc+B,OAd/B,EAcwC,OAdxC,EAezB,OAfyB,EAehB,OAfgB,EAeP,OAfO,EAeE,OAfF,EAeW,OAfX,EAeoB,OAfpB,EAe6B,OAf7B,EAesC,OAftC,EAgBzB,OAhByB,EAgBhB,OAhBgB,EAgBP,OAhBO,EAgBE,OAhBF,EAgBW,MAhBX,EAgBmB,OAhBnB,EAgB4B,OAhB5B,EAgBqC,OAhBrC,EAiBzB,OAjByB,EAiBhB,MAjBgB,EAiBR,MAjBQ,EAiBA,MAjBA,EAiBQ,MAjBR,EAiBgB,OAjBhB,EAiByB,OAjBzB,EAiBkC,OAjBlC,EAiB2C,OAjB3C,EAkBzB,OAlByB,EAkBhB,OAlBgB,EAkBP,OAlBO,EAkBE,MAlBF,EAkBU,OAlBV,EAkBmB,OAlBnB,EAkB4B,OAlB5B,EAkBqC,OAlBrC,EAmBzB,OAnByB,EAmBhB,OAnBgB,EAmBP,OAnBO,EAmBE,OAnBF,EAmBW,OAnBX,EAmBoB,OAnBpB,EAmB6B,OAnB7B,EAmBsC,OAnBtC,EAoBzB,OApByB,EAoBhB,OApBgB,EAoBP,OApBO,EAoBE,OApBF,EAoBW,OApBX,EAoBoB,OApBpB,EAoB6B,OApB7B,EAoBsC,OApBtC,EAqBzB,OArByB,EAqBhB,OArBgB,EAqBP,OArBO,EAqBE,OArBF,EAqBW,OArBX,EAqBoB,OArBpB,EAqB6B,CArB7B,EAqBgC,CArBhC,EAqBmC,CArBnC,EAqBsC,CArBtC,EAqByC,CArBzC,EAqB4C,OArB5C,EAsBzB,MAtByB,EAsBjB,OAtBiB,EAsBR,OAtBQ,EAsBC,OAtBD,EAsBU,OAtBV,EAsBmB,OAtBnB,EAsB4B,OAtB5B,EAsBqC,OAtBrC,EAuBzB,OAvByB,EAuBhB,OAvBgB,EAuBP,OAvBO,EAuBE,OAvBF,EAuBW,OAvBX,EAuBoB,OAvBpB,EAuB6B,MAvB7B,EAuBqC,OAvBrC,EAuB8C,MAvB9C,EAwBzB,OAxByB,EAwBhB,MAxBgB,EAwBR,OAxBQ,EAwBC,MAxBD,EAwBS,OAxBT,EAwBkB,OAxBlB,EAwB2B,OAxB3B,EAwBoC,OAxBpC,EAwB6C,OAxB7C,EAyBzB,OAzByB,EAyBhB,OAzBgB,EAyBP,OAzBO,EAyBE,OAzBF,EAyBW,OAzBX,EAyBoB,OAzBpB,EAyB6B,OAzB7B,EAyBsC,OAzBtC,EA0BzB,OA1ByB,EA0BhB,OA1BgB,EA0BP,KA1BO,EA0BA,OA1BA,EA0BS,KA1BT,EA0BgB,OA1BhB,EA0ByB,KA1BzB,EA0BgC,OA1BhC,EA0ByC,CA1BzC,EA0B4C,CA1B5C,EA2BzB,OA3ByB,EA2BhB,OA3BgB,EA2BP,OA3BO,EA2BE,OA3BF,EA2BW,MA3BX,EA2BmB,OA3BnB,EA2B4B,MA3B5B,EA2BoC,OA3BpC,EA2B6C,MA3B7C,EA4BzB,OA5ByB,EA4BhB,MA5BgB,EA4BR,OA5BQ,EA4BC,MA5BD,EA4BS,OA5BT,EA4BkB,OA5BlB,EA4B2B,OA5B3B,EA4BoC,MA5BpC,EA4B4C,OA5B5C,EA6BzB,CA7ByB,EA6BtB,CA7BsB,EA6BnB,OA7BmB,EA6BV,OA7BU,EA6BD,OA7BC,EA6BQ,CA7BR,EA6BW,CA7BX,EA6Bc,OA7Bd,EA6BuB,MA7BvB,EA6B+B,OA7B/B,EA6BwC,OA7BxC,EA8BzB,OA9ByB,EA8BhB,OA9BgB,EA8BP,OA9BO,EA8BE,OA9BF,EA8BW,CA9BX,EA8Bc,CA9Bd,EA8BiB,OA9BjB,EA8B0B,OA9B1B,EA8BmC,OA9BnC,EA8B4C,OA9B5C,EA+BzB,OA/ByB,EA+BhB,OA/BgB,EA+BP,MA/BO,EA+BC,OA/BD,EA+BU,MA/BV,EA+BkB,OA/BlB,EA+B2B,MA/B3B,EA+BmC,OA/BnC,EA+B4C,OA/B5C,EAgCzB,OAhCyB,EAgChB,OAhCgB,EAgCP,CAhCO,EAgCJ,CAhCI,EAgCD,OAhCC,EAgCQ,OAhCR,EAgCiB,OAhCjB,EAgC0B,OAhC1B,EAgCmC,OAhCnC,EAgC4C,OAhC5C,EAiCzB,OAjCyB,EAiChB,OAjCgB,EAiCP,OAjCO,EAiCE,OAjCF,EAiCW,CAjCX,EAiCc,CAjCd,EAiCiB,OAjCjB,EAiC0B,OAjC1B,EAiCmC,OAjCnC,EAiC4C,OAjC5C,EAkCzB,OAlCyB,EAkChB,OAlCgB,EAkCP,OAlCO,EAkCE,OAlCF,EAkCW,OAlCX,EAkCoB,OAlCpB,EAkC6B,OAlC7B,EAkCsC,OAlCtC,EAmCzB,OAnCyB,EAmChB,OAnCgB,EAmCP,OAnCO,EAmCE,OAnCF,EAmCW,OAnCX,EAmCoB,OAnCpB,EAmC6B,OAnC7B,EAmCsC,OAnCtC,EAoCzB,OApCyB,EAoChB,OApCgB,EAoCP,OApCO,EAoCE,OApCF,EAoCW,OApCX,EAoCoB,OApCpB,EAoC6B,OApC7B,EAoCsC,OApCtC,EAqCzB,OArCyB,EAqChB,OArCgB,EAqCP,OArCO,EAqCE,OArCF,EAqCW,OArCX,EAqCoB,OArCpB,EAqC6B,MArC7B,EAqCqC,CArCrC,EAqCwC,CArCxC,EAqC2C,OArC3C,EAsCzB,OAtCyB,EAsChB,OAtCgB,EAsCP,OAtCO,EAsCE,OAtCF,EAsCW,OAtCX,EAsCoB,OAtCpB,EAsC6B,OAtC7B,EAsCsC,OAtCtC,EAuCzB,OAvCyB,EAuChB,OAvCgB,EAuCP,OAvCO,EAuCE,OAvCF,EAuCW,OAvCX,EAuCoB,OAvCpB,EAuC6B,MAvC7B,EAuCqC,OAvCrC,EAwCzB,OAxCyB,EAwChB,OAxCgB,EAwCP,OAxCO,EAwCE,OAxCF,EAwCW,OAxCX,EAwCoB,OAxCpB,EAwC6B,OAxC7B,EAwCsC,OAxCtC,EAyCzB,OAzCyB,EAyChB,OAzCgB,EAyCP,OAzCO,EAyCE,OAzCF,EAyCW,OAzCX,EAyCoB,MAzCpB,EAyC4B,OAzC5B,EAyCqC,MAzCrC,EAyC6C,OAzC7C,EA0CzB,OA1CyB,EA0ChB,OA1CgB,EA0CP,OA1CO,EA0CE,MA1CF,EA0CU,OA1CV,EA0CmB,OA1CnB,EA0C4B,OA1C5B,EA0CqC,OA1CrC,EA2CzB,OA3CyB,EA2ChB,OA3CgB,EA2CP,OA3CO,EA2CE,OA3CF,EA2CW,MA3CX,EA2CmB,OA3CnB,EA2C4B,OA3C5B,EA2CqC,OA3CrC,EA2C8C,MA3C9C,EA4CzB,OA5CyB,EA4ChB,OA5CgB,EA4CP,OA5CO,EA4CE,MA5CF,EA4CU,OA5CV,EA4CmB,OA5CnB,EA4C4B,OA5C5B,EA4CqC,MA5CrC,EA4C6C,MA5C7C,EA6CzB,OA7CyB,EA6ChB,OA7CgB,EA6CP,OA7CO,EA6CE,OA7CF,EA6CW,MA7CX,EA6CmB,OA7CnB,EA6C4B,OA7C5B,EA6CqC,MA7CrC,EA6C6C,OA7C7C,EA8CzB,OA9CyB,EA8ChB,OA9CgB,EA8CP,MA9CO,EA8CC,OA9CD,EA8CU,OA9CV,EA8CmB,OA9CnB,EA8C4B,OA9C5B,EA8CqC,MA9CrC,EA8C6C,OA9C7C,EA+CzB,OA/CyB,EA+ChB,OA/CgB,EA+CP,MA/CO,EA+CC,OA/CD,EA+CU,OA/CV,EA+CmB,OA/CnB,EA+C4B,CA/C5B,EA+C+B,CA/C/B,EA+CkC,CA/ClC,EA+CqC,CA/CrC,EA+CwC,CA/CxC,EA+C2C,CA/C3C,EA+C8C,CA/C9C,EA+CiD,CA/CjD,EAgDzB,CAhDyB,EAgDtB,CAhDsB,EAgDnB,CAhDmB,EAgDhB,CAhDgB,EAgDb,OAhDa,EAgDJ,CAhDI,EAgDD,CAhDC,EAgDE,CAhDF,EAgDK,CAhDL,EAgDQ,CAhDR,EAgDW,CAhDX,EAgDc,CAhDd,EAgDiB,CAhDjB,EAgDoB,CAhDpB,EAgDuB,CAhDvB,EAgD0B,CAhD1B,EAgD6B,CAhD7B,EAgDgC,CAhDhC,EAgDmC,CAhDnC,EAgDsC,CAhDtC,EAgDyC,CAhDzC,EAgD4C,CAhD5C,EAgD+C,CAhD/C,EAgDkD,CAhDlD,EAiDzB,CAjDyB,EAiDtB,CAjDsB,EAiDnB,CAjDmB,EAiDhB,CAjDgB,EAiDb,CAjDa,EAiDV,CAjDU,EAiDP,CAjDO,EAiDJ,CAjDI,EAiDD,CAjDC,EAiDE,CAjDF,EAiDK,CAjDL,EAiDQ,CAjDR,EAiDW,CAjDX,EAiDc,CAjDd,EAiDiB,CAjDjB,EAiDoB,CAjDpB,EAiDuB,CAjDvB,EAiD0B,CAjD1B,EAiD6B,CAjD7B,EAiDgC,CAjDhC,EAiDmC,CAjDnC,EAiDsC,CAjDtC,EAiDyC,CAjDzC,EAiD4C,CAjD5C,EAiD+C,CAjD/C,EAiDkD,CAjDlD,EAkDzB,CAlDyB,EAkDtB,CAlDsB,EAkDnB,CAlDmB,EAkDhB,CAlDgB,EAkDb,CAlDa,EAkDV,CAlDU,EAkDP,CAlDO,EAkDJ,CAlDI,EAkDD,CAlDC,EAkDE,CAlDF,EAkDK,CAlDL,EAkDQ,CAlDR,EAkDW,CAlDX,EAkDc,CAlDd,EAkDiB,CAlDjB,EAkDoB,CAlDpB,EAkDuB,CAlDvB,EAkD0B,CAlD1B,EAkD6B,CAlD7B,EAkDgC,CAlDhC,EAkDmC,CAlDnC,EAkDsC,OAlDtC,EAkD+C,CAlD/C,EAkDkD,CAlDlD,EAmDzB,CAnDyB,EAmDtB,CAnDsB,EAmDnB,CAnDmB,EAmDhB,CAnDgB,EAmDb,CAnDa,EAmDV,CAnDU,EAmDP,CAnDO,EAmDJ,CAnDI,EAmDD,CAnDC,EAmDE,CAnDF,EAmDK,OAnDL,EAmDc,CAnDd,EAmDiB,CAnDjB,EAmDoB,CAnDpB,EAmDuB,CAnDvB,EAmD0B,CAnD1B,EAmD6B,CAnD7B,EAmDgC,OAnDhC,EAmDyC,OAnDzC,EAoDzB,OApDyB,EAoDhB,OApDgB,EAoDP,OApDO,EAoDE,OApDF,EAoDW,OApDX,EAoDoB,OApDpB,EAoD6B,CApD7B,EAoDgC,OApDhC,EAoDyC,OApDzC,EAoDkD,CApDlD,EAqDzB,CArDyB,EAqDtB,OArDsB,EAqDb,OArDa,EAqDJ,OArDI,EAqDK,OArDL,EAqDc,OArDd,EAqDuB,OArDvB,EAqDgC,OArDhC,EAqDyC,OArDzC,EAsDzB,OAtDyB,EAsDhB,OAtDgB,EAsDP,OAtDO,EAsDE,OAtDF,EAsDW,OAtDX,EAsDoB,KAtDpB,EAsD2B,OAtD3B,EAsDoC,OAtDpC,EAsD6C,OAtD7C,EAuDzB,OAvDyB,EAuDhB,OAvDgB,EAuDP,CAvDO,EAuDJ,OAvDI,EAuDK,OAvDL,EAuDc,OAvDd,EAuDuB,OAvDvB,EAuDgC,OAvDhC,EAuDyC,CAvDzC,EAuD4C,CAvD5C,EAuD+C,CAvD/C,EAwDzB,KAxDyB,EAwDlB,CAxDkB,EAwDf,CAxDe,EAwDZ,OAxDY,EAwDH,OAxDG,EAwDM,OAxDN,EAwDe,OAxDf,EAwDwB,OAxDxB,EAwDiC,OAxDjC,EAwD0C,OAxD1C,EAyDzB,OAzDyB,EAyDhB,OAzDgB,EAyDP,CAzDO,EAyDJ,CAzDI,EAyDD,OAzDC,EAyDQ,CAzDR,EAyDW,OAzDX,EAyDoB,OAzDpB,EAyD6B,MAzD7B,EAyDqC,OAzDrC,EA0DzB,OA1DyB,EA0DhB,OA1DgB,EA0DP,MA1DO,EA0DC,OA1DD,EA0DU,OA1DV,EA0DmB,OA1DnB,EA0D4B,OA1D5B,EA0DqC,OA1DrC,EA2DzB,OA3DyB,EA2DhB,CA3DgB,EA2Db,CA3Da,EA2DV,CA3DU,EA2DP,CA3DO,EA2DJ,CA3DI,EA2DD,CA3DC,EA2DE,CA3DF,EA2DK,CA3DL,EA2DQ,CA3DR,EA2DW,CA3DX,EA2Dc,CA3Dd,EA2DiB,CA3DjB,EA2DoB,CA3DpB,EA2DuB,CA3DvB,EA2D0B,CA3D1B,EA2D6B,CA3D7B,EA2DgC,CA3DhC,EA2DmC,CA3DnC,EA2DsC,CA3DtC,EA2DyC,CA3DzC,EA2D4C,CA3D5C,EA2D+C,CA3D/C,EA2DkD,CA3DlD,EA4DzB,CA5DyB,EA4DtB,CA5DsB,EA4DnB,CA5DmB,EA4DhB,CA5DgB,EA4Db,CA5Da,EA4DV,CA5DU,EA4DP,CA5DO,EA4DJ,CA5DI,EA4DD,CA5DC,EA4DE,CA5DF,EA4DK,CA5DL,EA4DQ,CA5DR,EA4DW,CA5DX,EA4Dc,CA5Dd,EA4DiB,CA5DjB,EA4DoB,CA5DpB,EA4DuB,CA5DvB,EA4D0B,CA5D1B,EA4D6B,CA5D7B,EA4DgC,CA5DhC,EA4DmC,CA5DnC,EA4DsC,CA5DtC,EA4DyC,CA5DzC,EA4D4C,CA5D5C,EA4D+C,CA5D/C,EA4DkD,CA5DlD,EA6DzB,CA7DyB,EA6DtB,CA7DsB,EA6DnB,CA7DmB,EA6DhB,OA7DgB,EA6DP,CA7DO,EA6DJ,OA7DI,EA6DK,OA7DL,EA6Dc,CA7Dd,EA6DiB,OA7DjB,EA6D0B,OA7D1B,EA6DmC,OA7DnC,EA6D4C,OA7D5C,EA8DzB,OA9DyB,EA8DhB,OA9DgB,EA8DP,CA9DO,EA8DJ,OA9DI,EA8DK,OA9DL,EA8Dc,OA9Dd,EA8DuB,CA9DvB,EA8D0B,CA9D1B,EA8D6B,CA9D7B,EA8DgC,CA9DhC,EA8DmC,CA9DnC,EA8DsC,MA9DtC,EA+DzB,OA/DyB,EA+DhB,OA/DgB,EA+DP,OA/DO,EA+DE,CA/DF,EA+DK,CA/DL,EA+DQ,CA/DR,EA+DW,OA/DX,EA+DoB,OA/DpB,EA+D6B,CA/D7B,EA+DgC,CA/DhC,EA+DmC,CA/DnC,EA+DsC,CA/DtC,EA+DyC,CA/DzC,EA+D4C,CA/D5C,EA+D+C,CA/D/C,EA+DkD,CA/DlD,EAgEzB,CAhEyB,EAgEtB,CAhEsB,EAgEnB,CAhEmB,EAgEhB,CAhEgB,EAgEb,CAhEa,EAgEV,CAhEU,EAgEP,CAhEO,EAgEJ,CAhEI,EAgED,CAhEC,EAgEE,CAhEF,CAA3B;;AAkEA,MAAMC,qBAAqB;EAAE8B,YAAY,OAAd;EAAuBC,SAAS;AAAhC,CAA3B;;AAIA,MAAM5B,2BAA2B,CAC/B,OAD+B,EACtB,CADsB,EACnB,CADmB,EAChB,OADgB,EACP,OADO,EACE,OADF,EACW,OADX,EACoB,KADpB,EAC2B,OAD3B,EACoC,OADpC,EAE/B,OAF+B,EAEtB,OAFsB,EAEb,OAFa,EAEJ,OAFI,EAEK,OAFL,EAEc,MAFd,EAEsB,OAFtB,EAE+B,MAF/B,EAEuC,OAFvC,EAG/B,KAH+B,EAGxB,KAHwB,EAGjB,KAHiB,EAGV,KAHU,EAGH,KAHG,EAGI,KAHJ,EAGW,KAHX,EAGkB,KAHlB,EAGyB,KAHzB,EAGgC,KAHhC,EAGuC,OAHvC,EAI/B,OAJ+B,EAItB,OAJsB,EAIb,OAJa,EAIJ,OAJI,EAIK,OAJL,EAIc,OAJd,EAIuB,OAJvB,EAIgC,OAJhC,EAK/B,OAL+B,EAKtB,MALsB,EAKd,OALc,EAKL,OALK,EAKI,OALJ,EAKa,OALb,EAKsB,MALtB,EAK8B,OAL9B,EAKuC,OALvC,EAM/B,OAN+B,EAMtB,OANsB,EAMb,OANa,EAMJ,OANI,EAMK,OANL,EAMc,OANd,EAMuB,OANvB,EAMgC,OANhC,EAO/B,OAP+B,EAOtB,OAPsB,EAOb,CAPa,EAOV,OAPU,EAOD,MAPC,EAOO,OAPP,EAOgB,OAPhB,EAOyB,OAPzB,EAOkC,OAPlC,EAQ/B,OAR+B,EAQtB,OARsB,EAQb,OARa,EAQJ,OARI,EAQK,OARL,EAQc,OARd,EAQuB,OARvB,EAQgC,OARhC,EAS/B,OAT+B,EAStB,MATsB,EASd,OATc,EASL,OATK,EASI,OATJ,EASa,OATb,EASsB,OATtB,EAS+B,OAT/B,EAU/B,OAV+B,EAUtB,OAVsB,EAUb,OAVa,EAUJ,OAVI,EAUK,OAVL,EAUc,MAVd,EAUsB,OAVtB,EAU+B,MAV/B,EAUuC,OAVvC,EAW/B,OAX+B,EAWtB,OAXsB,EAWb,OAXa,EAWJ,OAXI,EAWK,OAXL,EAWc,OAXd,EAWuB,OAXvB,EAWgC,OAXhC,EAY/B,OAZ+B,EAYtB,OAZsB,EAYb,KAZa,EAYN,KAZM,EAYC,CAZD,EAYI,KAZJ,EAYW,OAZX,EAYoB,OAZpB,EAY6B,OAZ7B,EAYsC,OAZtC,EAa/B,OAb+B,EAatB,OAbsB,EAab,OAba,EAaJ,OAbI,EAaK,OAbL,EAac,OAbd,EAauB,OAbvB,EAagC,OAbhC,EAc/B,OAd+B,EActB,OAdsB,EAcb,CAda,EAcV,OAdU,EAcD,MAdC,EAcO,OAdP,EAcgB,MAdhB,EAcwB,OAdxB,EAciC,OAdjC,EAe/B,OAf+B,EAetB,OAfsB,EAeb,OAfa,EAeJ,OAfI,EAeK,OAfL,EAec,OAfd,EAeuB,OAfvB,EAegC,OAfhC,EAgB/B,OAhB+B,EAgBtB,OAhBsB,EAgBb,OAhBa,EAgBJ,OAhBI,EAgBK,OAhBL,EAgBc,OAhBd,EAgBuB,OAhBvB,EAgBgC,OAhBhC,EAiB/B,MAjB+B,EAiBvB,MAjBuB,EAiBf,MAjBe,EAiBP,MAjBO,EAiBC,MAjBD,EAiBS,OAjBT,EAiBkB,OAjBlB,EAiB2B,OAjB3B,EAiBoC,OAjBpC,EAkB/B,OAlB+B,EAkBtB,OAlBsB,EAkBb,OAlBa,EAkBJ,OAlBI,EAkBK,OAlBL,EAkBc,OAlBd,EAkBuB,OAlBvB,EAkBgC,OAlBhC,EAmB/B,OAnB+B,EAmBtB,OAnBsB,EAmBb,OAnBa,EAmBJ,OAnBI,EAmBK,OAnBL,EAmBc,OAnBd,EAmBuB,OAnBvB,EAmBgC,OAnBhC,EAoB/B,OApB+B,EAoBtB,OApBsB,EAoBb,OApBa,EAoBJ,OApBI,EAoBK,OApBL,EAoBc,OApBd,EAoBuB,OApBvB,EAoBgC,OApBhC,EAqB/B,OArB+B,EAqBtB,OArBsB,EAqBb,OArBa,EAqBJ,OArBI,EAqBK,OArBL,EAqBc,OArBd,EAqBuB,OArBvB,EAqBgC,OArBhC,EAsB/B,OAtB+B,EAsBtB,OAtBsB,EAsBb,OAtBa,EAsBJ,OAtBI,EAsBK,OAtBL,EAsBc,OAtBd,EAsBuB,OAtBvB,EAsBgC,OAtBhC,EAuB/B,OAvB+B,EAuBtB,OAvBsB,EAuBb,OAvBa,EAuBJ,OAvBI,EAuBK,OAvBL,EAuBc,OAvBd,EAuBuB,OAvBvB,EAuBgC,OAvBhC,EAwB/B,OAxB+B,EAwBtB,OAxBsB,EAwBb,OAxBa,EAwBJ,OAxBI,EAwBK,OAxBL,EAwBc,OAxBd,EAwBuB,OAxBvB,EAwBgC,OAxBhC,EAyB/B,OAzB+B,EAyBtB,MAzBsB,EAyBd,MAzBc,EAyBN,MAzBM,EAyBE,OAzBF,EAyBW,OAzBX,EAyBoB,OAzBpB,EAyB6B,OAzB7B,EAyBsC,OAzBtC,EA0B/B,OA1B+B,EA0BtB,OA1BsB,EA0Bb,OA1Ba,EA0BJ,OA1BI,EA0BK,OA1BL,EA0Bc,OA1Bd,EA0BuB,OA1BvB,EA0BgC,OA1BhC,EA2B/B,OA3B+B,EA2BtB,OA3BsB,EA2Bb,OA3Ba,EA2BJ,OA3BI,EA2BK,CA3BL,EA2BQ,CA3BR,EA2BW,OA3BX,EA2BoB,OA3BpB,EA2B6B,OA3B7B,EA2BsC,OA3BtC,EA4B/B,MA5B+B,EA4BvB,OA5BuB,EA4Bd,MA5Bc,EA4BN,OA5BM,EA4BG,MA5BH,EA4BW,OA5BX,EA4BoB,MA5BpB,EA4B4B,OA5B5B,EA4BqC,MA5BrC,EA6B/B,OA7B+B,EA6BtB,OA7BsB,EA6Bb,OA7Ba,EA6BJ,OA7BI,EA6BK,OA7BL,EA6Bc,CA7Bd,EA6BiB,CA7BjB,EA6BoB,OA7BpB,EA6B6B,OA7B7B,EA6BsC,OA7BtC,EA8B/B,CA9B+B,EA8B5B,CA9B4B,EA8BzB,OA9ByB,EA8BhB,OA9BgB,EA8BP,OA9BO,EA8BE,OA9BF,EA8BW,OA9BX,EA8BoB,OA9BpB,EA8B6B,OA9B7B,EA8BsC,OA9BtC,EA+B/B,CA/B+B,EA+B5B,CA/B4B,EA+BzB,OA/ByB,EA+BhB,OA/BgB,EA+BP,OA/BO,EA+BE,OA/BF,EA+BW,OA/BX,EA+BoB,OA/BpB,EA+B6B,OA/B7B,EA+BsC,OA/BtC,EAgC/B,OAhC+B,EAgCtB,OAhCsB,EAgCb,OAhCa,EAgCJ,OAhCI,EAgCK,OAhCL,EAgCc,OAhCd,EAgCuB,MAhCvB,EAgC+B,CAhC/B,EAgCkC,CAhClC,EAgCqC,OAhCrC,EAiC/B,MAjC+B,EAiCvB,OAjCuB,EAiCd,OAjCc,EAiCL,OAjCK,EAiCI,OAjCJ,EAiCa,OAjCb,EAiCsB,OAjCtB,EAiC+B,OAjC/B,EAkC/B,OAlC+B,EAkCtB,CAlCsB,EAkCnB,CAlCmB,EAkChB,OAlCgB,EAkCP,OAlCO,EAkCE,OAlCF,EAkCW,OAlCX,EAkCoB,OAlCpB,EAkC6B,OAlC7B,EAkCsC,OAlCtC,EAmC/B,OAnC+B,EAmCtB,OAnCsB,EAmCb,OAnCa,EAmCJ,OAnCI,EAmCK,OAnCL,EAmCc,OAnCd,EAmCuB,OAnCvB,EAmCgC,OAnChC,EAoC/B,OApC+B,EAoCtB,OApCsB,EAoCb,OApCa,EAoCJ,OApCI,EAoCK,OApCL,EAoCc,OApCd,EAoCuB,OApCvB,EAoCgC,OApChC,EAqC/B,OArC+B,EAqCtB,OArCsB,EAqCb,OArCa,EAqCJ,OArCI,EAqCK,OArCL,EAqCc,KArCd,EAqCqB,OArCrB,EAqC8B,OArC9B,EAqCuC,OArCvC,EAsC/B,OAtC+B,EAsCtB,OAtCsB,EAsCb,OAtCa,EAsCJ,CAtCI,EAsCD,CAtCC,EAsCE,OAtCF,EAsCW,MAtCX,EAsCmB,OAtCnB,EAsC4B,OAtC5B,EAsCqC,OAtCrC,EAuC/B,OAvC+B,EAuCtB,OAvCsB,EAuCb,OAvCa,EAuCJ,OAvCI,EAuCK,OAvCL,EAuCc,OAvCd,EAuCuB,OAvCvB,EAuCgC,OAvChC,EAwC/B,OAxC+B,EAwCtB,OAxCsB,EAwCb,OAxCa,EAwCJ,OAxCI,EAwCK,OAxCL,EAwCc,MAxCd,EAwCsB,OAxCtB,EAwC+B,OAxC/B,EAyC/B,OAzC+B,EAyCtB,OAzCsB,EAyCb,OAzCa,EAyCJ,OAzCI,EAyCK,OAzCL,EAyCc,OAzCd,EAyCuB,OAzCvB,EAyCgC,OAzChC,EA0C/B,OA1C+B,EA0CtB,MA1CsB,EA0Cd,OA1Cc,EA0CL,OA1CK,EA0CI,OA1CJ,EA0Ca,OA1Cb,EA0CsB,OA1CtB,EA0C+B,OA1C/B,EA2C/B,OA3C+B,EA2CtB,OA3CsB,EA2Cb,OA3Ca,EA2CJ,OA3CI,EA2CK,OA3CL,EA2Cc,OA3Cd,EA2CuB,MA3CvB,EA2C+B,OA3C/B,EA4C/B,OA5C+B,EA4CtB,MA5CsB,EA4Cd,OA5Cc,EA4CL,OA5CK,EA4CI,MA5CJ,EA4CY,OA5CZ,EA4CqB,OA5CrB,EA4C8B,OA5C9B,EA4CuC,OA5CvC,EA6C/B,OA7C+B,EA6CtB,OA7CsB,EA6Cb,KA7Ca,EA6CN,MA7CM,EA6CE,OA7CF,EA6CW,OA7CX,EA6CoB,OA7CpB,EA6C6B,OA7C7B,EA6CsC,OA7CtC,EA8C/B,OA9C+B,EA8CtB,OA9CsB,EA8Cb,CA9Ca,EA8CV,OA9CU,EA8CD,OA9CC,EA8CQ,OA9CR,EA8CiB,OA9CjB,EA8C0B,OA9C1B,EA8CmC,OA9CnC,EA+C/B,OA/C+B,EA+CtB,OA/CsB,EA+Cb,OA/Ca,EA+CJ,OA/CI,EA+CK,OA/CL,EA+Cc,OA/Cd,EA+CuB,OA/CvB,EA+CgC,OA/ChC,EAgD/B,OAhD+B,EAgDtB,OAhDsB,EAgDb,OAhDa,EAgDJ,OAhDI,EAgDK,CAhDL,EAgDQ,CAhDR,EAgDW,CAhDX,EAgDc,CAhDd,EAgDiB,CAhDjB,EAgDoB,CAhDpB,EAgDuB,CAhDvB,EAgD0B,CAhD1B,EAgD6B,CAhD7B,EAgDgC,CAhDhC,EAgDmC,CAhDnC,EAgDsC,CAhDtC,EAiD/B,OAjD+B,EAiDtB,CAjDsB,EAiDnB,CAjDmB,EAiDhB,CAjDgB,EAiDb,CAjDa,EAiDV,CAjDU,EAiDP,CAjDO,EAiDJ,CAjDI,EAiDD,CAjDC,EAiDE,CAjDF,EAiDK,CAjDL,EAiDQ,CAjDR,EAiDW,CAjDX,EAiDc,CAjDd,EAiDiB,CAjDjB,EAiDoB,CAjDpB,EAiDuB,CAjDvB,EAiD0B,CAjD1B,EAiD6B,CAjD7B,EAiDgC,CAjDhC,EAiDmC,CAjDnC,EAiDsC,CAjDtC,EAiDyC,CAjDzC,EAiD4C,CAjD5C,EAkD/B,CAlD+B,EAkD5B,CAlD4B,EAkDzB,CAlDyB,EAkDtB,CAlDsB,EAkDnB,CAlDmB,EAkDhB,CAlDgB,EAkDb,CAlDa,EAkDV,CAlDU,EAkDP,CAlDO,EAkDJ,CAlDI,EAkDD,CAlDC,EAkDE,CAlDF,EAkDK,CAlDL,EAkDQ,CAlDR,EAkDW,CAlDX,EAkDc,CAlDd,EAkDiB,CAlDjB,EAkDoB,CAlDpB,EAkDuB,CAlDvB,EAkD0B,CAlD1B,EAkD6B,CAlD7B,EAkDgC,CAlDhC,EAkDmC,CAlDnC,EAkDsC,CAlDtC,EAkDyC,CAlDzC,EAkD4C,CAlD5C,EAmD/B,CAnD+B,EAmD5B,CAnD4B,EAmDzB,CAnDyB,EAmDtB,CAnDsB,EAmDnB,CAnDmB,EAmDhB,CAnDgB,EAmDb,CAnDa,EAmDV,CAnDU,EAmDP,CAnDO,EAmDJ,CAnDI,EAmDD,CAnDC,EAmDE,CAnDF,EAmDK,CAnDL,EAmDQ,CAnDR,EAmDW,CAnDX,EAmDc,CAnDd,EAmDiB,CAnDjB,EAmDoB,OAnDpB,EAmD6B,CAnD7B,EAmDgC,CAnDhC,EAmDmC,CAnDnC,EAmDsC,CAnDtC,EAmDyC,CAnDzC,EAmD4C,CAnD5C,EAoD/B,CApD+B,EAoD5B,CApD4B,EAoDzB,CApDyB,EAoDtB,CApDsB,EAoDnB,CApDmB,EAoDhB,CApDgB,EAoDb,OApDa,EAoDJ,CApDI,EAoDD,CApDC,EAoDE,CApDF,EAoDK,CApDL,EAoDQ,CApDR,EAoDW,CApDX,EAoDc,OApDd,EAoDuB,OApDvB,EAoDgC,OApDhC,EAqD/B,OArD+B,EAqDtB,OArDsB,EAqDb,OArDa,EAqDJ,OArDI,EAqDK,OArDL,EAqDc,CArDd,EAqDiB,OArDjB,EAqD0B,OArD1B,EAqDmC,CArDnC,EAqDsC,CArDtC,EAsD/B,OAtD+B,EAsDtB,OAtDsB,EAsDb,OAtDa,EAsDJ,OAtDI,EAsDK,OAtDL,EAsDc,OAtDd,EAsDuB,OAtDvB,EAsDgC,OAtDhC,EAuD/B,OAvD+B,EAuDtB,OAvDsB,EAuDb,OAvDa,EAuDJ,OAvDI,EAuDK,OAvDL,EAuDc,KAvDd,EAuDqB,OAvDrB,EAuD8B,OAvD9B,EAuDuC,OAvDvC,EAwD/B,OAxD+B,EAwDtB,OAxDsB,EAwDb,CAxDa,EAwDV,OAxDU,EAwDD,OAxDC,EAwDQ,OAxDR,EAwDiB,OAxDjB,EAwD0B,KAxD1B,EAwDiC,CAxDjC,EAwDoC,CAxDpC,EAwDuC,CAxDvC,EAyD/B,KAzD+B,EAyDxB,CAzDwB,EAyDrB,CAzDqB,EAyDlB,OAzDkB,EAyDT,OAzDS,EAyDA,OAzDA,EAyDS,OAzDT,EAyDkB,OAzDlB,EAyD2B,OAzD3B,EAyDoC,OAzDpC,EA0D/B,OA1D+B,EA0DtB,OA1DsB,EA0Db,CA1Da,EA0DV,CA1DU,EA0DP,OA1DO,EA0DE,CA1DF,EA0DK,OA1DL,EA0Dc,OA1Dd,EA0DuB,OA1DvB,EA0DgC,OA1DhC,EA2D/B,OA3D+B,EA2DtB,OA3DsB,EA2Db,MA3Da,EA2DL,OA3DK,EA2DI,OA3DJ,EA2Da,OA3Db,EA2DsB,OA3DtB,EA2D+B,OA3D/B,EA4D/B,OA5D+B,EA4DtB,CA5DsB,EA4DnB,CA5DmB,EA4DhB,CA5DgB,EA4Db,CA5Da,EA4DV,CA5DU,EA4DP,CA5DO,EA4DJ,CA5DI,EA4DD,CA5DC,EA4DE,CA5DF,EA4DK,CA5DL,EA4DQ,CA5DR,EA4DW,CA5DX,EA4Dc,CA5Dd,EA4DiB,CA5DjB,EA4DoB,CA5DpB,EA4DuB,CA5DvB,EA4D0B,CA5D1B,EA4D6B,CA5D7B,EA4DgC,CA5DhC,EA4DmC,CA5DnC,EA4DsC,CA5DtC,EA4DyC,CA5DzC,EA4D4C,CA5D5C,EA6D/B,CA7D+B,EA6D5B,CA7D4B,EA6DzB,CA7DyB,EA6DtB,CA7DsB,EA6DnB,CA7DmB,EA6DhB,CA7DgB,EA6Db,CA7Da,EA6DV,CA7DU,EA6DP,CA7DO,EA6DJ,CA7DI,EA6DD,CA7DC,EA6DE,CA7DF,EA6DK,CA7DL,EA6DQ,CA7DR,EA6DW,CA7DX,EA6Dc,CA7Dd,EA6DiB,CA7DjB,EA6DoB,CA7DpB,EA6DuB,CA7DvB,EA6D0B,CA7D1B,EA6D6B,CA7D7B,EA6DgC,CA7DhC,EA6DmC,CA7DnC,EA6DsC,CA7DtC,EA6DyC,CA7DzC,EA6D4C,CA7D5C,EA8D/B,CA9D+B,EA8D5B,CA9D4B,EA8DzB,CA9DyB,EA8DtB,OA9DsB,EA8Db,CA9Da,EA8DV,OA9DU,EA8DD,OA9DC,EA8DQ,CA9DR,EA8DW,OA9DX,EA8DoB,OA9DpB,EA8D6B,OA9D7B,EA8DsC,OA9DtC,EA+D/B,OA/D+B,EA+DtB,OA/DsB,EA+Db,CA/Da,EA+DV,OA/DU,EA+DD,OA/DC,EA+DQ,OA/DR,EA+DiB,CA/DjB,EA+DoB,CA/DpB,EA+DuB,CA/DvB,EA+D0B,CA/D1B,EA+D6B,CA/D7B,EA+DgC,MA/DhC,EAgE/B,OAhE+B,EAgEtB,OAhEsB,EAgEb,OAhEa,EAgEJ,CAhEI,EAgED,CAhEC,EAgEE,CAhEF,EAgEK,OAhEL,EAgEc,OAhEd,EAgEuB,CAhEvB,EAgE0B,CAhE1B,EAgE6B,CAhE7B,EAgEgC,CAhEhC,EAgEmC,CAhEnC,EAgEsC,CAhEtC,EAgEyC,CAhEzC,EAgE4C,CAhE5C,EAiE/B,CAjE+B,EAiE5B,CAjE4B,EAiEzB,CAjEyB,EAiEtB,CAjEsB,EAiEnB,CAjEmB,EAiEhB,CAjEgB,EAiEb,CAjEa,EAiEV,CAjEU,EAiEP,CAjEO,EAiEJ,CAjEI,CAAjC;;AAmEA,MAAMC,2BAA2B;EAAE0B,YAAY,OAAd;EAAuBC,SAAS;AAAhC,CAAjC;;AAIA,MAAM9B,uBAAuB,CAC3B,OAD2B,EAClB,CADkB,EACf,CADe,EACZ,OADY,EACH,OADG,EACM,OADN,EACe,OADf,EACwB,OADxB,EACiC,OADjC,EAC0C,OAD1C,EAE3B,OAF2B,EAElB,OAFkB,EAET,OAFS,EAEA,OAFA,EAES,OAFT,EAEkB,OAFlB,EAE2B,OAF3B,EAEoC,OAFpC,EAG3B,OAH2B,EAGlB,OAHkB,EAGT,OAHS,EAGA,OAHA,EAGS,OAHT,EAGkB,OAHlB,EAG2B,OAH3B,EAGoC,OAHpC,EAI3B,OAJ2B,EAIlB,OAJkB,EAIT,OAJS,EAIA,OAJA,EAIS,OAJT,EAIkB,OAJlB,EAI2B,OAJ3B,EAIoC,OAJpC,EAK3B,OAL2B,EAKlB,OALkB,EAKT,OALS,EAKA,OALA,EAKS,OALT,EAKkB,MALlB,EAK0B,OAL1B,EAKmC,OALnC,EAM3B,OAN2B,EAMlB,OANkB,EAMT,OANS,EAMA,OANA,EAMS,OANT,EAMkB,OANlB,EAM2B,OAN3B,EAMoC,OANpC,EAO3B,OAP2B,EAOlB,OAPkB,EAOT,OAPS,EAOA,OAPA,EAOS,OAPT,EAOkB,OAPlB,EAO2B,OAP3B,EAOoC,OAPpC,EAQ3B,OAR2B,EAQlB,MARkB,EAQV,OARU,EAQD,OARC,EAQQ,MARR,EAQgB,OARhB,EAQyB,MARzB,EAQiC,OARjC,EAQ0C,OAR1C,EAS3B,OAT2B,EASlB,OATkB,EAST,OATS,EASA,OATA,EASS,OATT,EASkB,OATlB,EAS2B,OAT3B,EASoC,OATpC,EAU3B,OAV2B,EAUlB,OAVkB,EAUT,OAVS,EAUA,OAVA,EAUS,OAVT,EAUkB,OAVlB,EAU2B,OAV3B,EAUoC,OAVpC,EAW3B,OAX2B,EAWlB,OAXkB,EAWT,OAXS,EAWA,OAXA,EAWS,OAXT,EAWkB,OAXlB,EAW2B,OAX3B,EAWoC,MAXpC,EAY3B,OAZ2B,EAYlB,OAZkB,EAYT,MAZS,EAYD,OAZC,EAYQ,OAZR,EAYiB,OAZjB,EAY0B,OAZ1B,EAYmC,OAZnC,EAa3B,OAb2B,EAalB,OAbkB,EAaT,CAbS,EAaN,OAbM,EAaG,OAbH,EAaY,OAbZ,EAaqB,OAbrB,EAa8B,OAb9B,EAauC,MAbvC,EAc3B,MAd2B,EAcnB,OAdmB,EAcV,OAdU,EAcD,OAdC,EAcQ,OAdR,EAciB,OAdjB,EAc0B,OAd1B,EAcmC,OAdnC,EAe3B,OAf2B,EAelB,CAfkB,EAef,OAfe,EAeN,OAfM,EAeG,OAfH,EAeY,OAfZ,EAeqB,OAfrB,EAe8B,MAf9B,EAesC,OAftC,EAgB3B,OAhB2B,EAgBlB,OAhBkB,EAgBT,OAhBS,EAgBA,OAhBA,EAgBS,OAhBT,EAgBkB,OAhBlB,EAgB2B,OAhB3B,EAgBoC,OAhBpC,EAiB3B,OAjB2B,EAiBlB,OAjBkB,EAiBT,OAjBS,EAiBA,OAjBA,EAiBS,OAjBT,EAiBkB,OAjBlB,EAiB2B,OAjB3B,EAiBoC,OAjBpC,EAkB3B,OAlB2B,EAkBlB,OAlBkB,EAkBT,OAlBS,EAkBA,MAlBA,EAkBQ,OAlBR,EAkBiB,OAlBjB,EAkB0B,OAlB1B,EAkBmC,OAlBnC,EAmB3B,OAnB2B,EAmBlB,OAnBkB,EAmBT,OAnBS,EAmBA,OAnBA,EAmBS,OAnBT,EAmBkB,OAnBlB,EAmB2B,OAnB3B,EAmBoC,OAnBpC,EAoB3B,OApB2B,EAoBlB,OApBkB,EAoBT,OApBS,EAoBA,OApBA,EAoBS,OApBT,EAoBkB,OApBlB,EAoB2B,OApB3B,EAoBoC,OApBpC,EAqB3B,OArB2B,EAqBlB,OArBkB,EAqBT,OArBS,EAqBA,OArBA,EAqBS,OArBT,EAqBkB,OArBlB,EAqB2B,OArB3B,EAqBoC,OArBpC,EAsB3B,OAtB2B,EAsBlB,OAtBkB,EAsBT,OAtBS,EAsBA,OAtBA,EAsBS,OAtBT,EAsBkB,OAtBlB,EAsB2B,OAtB3B,EAsBoC,OAtBpC,EAuB3B,OAvB2B,EAuBlB,OAvBkB,EAuBT,OAvBS,EAuBA,MAvBA,EAuBQ,OAvBR,EAuBiB,OAvBjB,EAuB0B,OAvB1B,EAuBmC,OAvBnC,EAwB3B,OAxB2B,EAwBlB,OAxBkB,EAwBT,OAxBS,EAwBA,OAxBA,EAwBS,OAxBT,EAwBkB,OAxBlB,EAwB2B,OAxB3B,EAwBoC,OAxBpC,EAyB3B,OAzB2B,EAyBlB,OAzBkB,EAyBT,OAzBS,EAyBA,OAzBA,EAyBS,OAzBT,EAyBkB,OAzBlB,EAyB2B,OAzB3B,EAyBoC,OAzBpC,EA0B3B,OA1B2B,EA0BlB,MA1BkB,EA0BV,OA1BU,EA0BD,MA1BC,EA0BO,OA1BP,EA0BgB,OA1BhB,EA0ByB,OA1BzB,EA0BkC,OA1BlC,EA0B2C,OA1B3C,EA2B3B,OA3B2B,EA2BlB,OA3BkB,EA2BT,OA3BS,EA2BA,OA3BA,EA2BS,OA3BT,EA2BkB,OA3BlB,EA2B2B,OA3B3B,EA2BoC,OA3BpC,EA4B3B,OA5B2B,EA4BlB,OA5BkB,EA4BT,OA5BS,EA4BA,OA5BA,EA4BS,CA5BT,EA4BY,CA5BZ,EA4Be,OA5Bf,EA4BwB,OA5BxB,EA4BiC,OA5BjC,EA4B0C,OA5B1C,EA6B3B,OA7B2B,EA6BlB,OA7BkB,EA6BT,OA7BS,EA6BA,OA7BA,EA6BS,OA7BT,EA6BkB,OA7BlB,EA6B2B,OA7B3B,EA6BoC,OA7BpC,EA8B3B,OA9B2B,EA8BlB,OA9BkB,EA8BT,OA9BS,EA8BA,OA9BA,EA8BS,OA9BT,EA8BkB,OA9BlB,EA8B2B,CA9B3B,EA8B8B,CA9B9B,EA8BiC,OA9BjC,EA8B0C,OA9B1C,EA+B3B,OA/B2B,EA+BlB,CA/BkB,EA+Bf,CA/Be,EA+BZ,OA/BY,EA+BH,OA/BG,EA+BM,OA/BN,EA+Be,OA/Bf,EA+BwB,OA/BxB,EA+BiC,OA/BjC,EA+B0C,OA/B1C,EAgC3B,OAhC2B,EAgClB,CAhCkB,EAgCf,CAhCe,EAgCZ,OAhCY,EAgCH,OAhCG,EAgCM,MAhCN,EAgCc,OAhCd,EAgCuB,OAhCvB,EAgCgC,OAhChC,EAgCyC,OAhCzC,EAiC3B,OAjC2B,EAiClB,OAjCkB,EAiCT,OAjCS,EAiCA,OAjCA,EAiCS,OAjCT,EAiCkB,OAjClB,EAiC2B,OAjC3B,EAiCoC,OAjCpC,EAiC6C,CAjC7C,EAiCgD,CAjChD,EAkC3B,OAlC2B,EAkClB,OAlCkB,EAkCT,OAlCS,EAkCA,OAlCA,EAkCS,OAlCT,EAkCkB,OAlClB,EAkC2B,OAlC3B,EAkCoC,OAlCpC,EAmC3B,OAnC2B,EAmClB,OAnCkB,EAmCT,CAnCS,EAmCN,CAnCM,EAmCH,OAnCG,EAmCM,OAnCN,EAmCe,OAnCf,EAmCwB,OAnCxB,EAmCiC,OAnCjC,EAmC0C,OAnC1C,EAoC3B,OApC2B,EAoClB,OApCkB,EAoCT,OApCS,EAoCA,OApCA,EAoCS,OApCT,EAoCkB,OApClB,EAoC2B,OApC3B,EAoCoC,OApCpC,EAqC3B,OArC2B,EAqClB,OArCkB,EAqCT,OArCS,EAqCA,MArCA,EAqCQ,OArCR,EAqCiB,OArCjB,EAqC0B,OArC1B,EAqCmC,OArCnC,EAqC4C,MArC5C,EAsC3B,OAtC2B,EAsClB,MAtCkB,EAsCV,OAtCU,EAsCD,MAtCC,EAsCO,OAtCP,EAsCgB,OAtChB,EAsCyB,OAtCzB,EAsCkC,OAtClC,EAsC2C,OAtC3C,EAuC3B,OAvC2B,EAuClB,OAvCkB,EAuCT,MAvCS,EAuCD,CAvCC,EAuCE,CAvCF,EAuCK,OAvCL,EAuCc,OAvCd,EAuCuB,OAvCvB,EAuCgC,OAvChC,EAuCyC,OAvCzC,EAwC3B,OAxC2B,EAwClB,OAxCkB,EAwCT,OAxCS,EAwCA,OAxCA,EAwCS,OAxCT,EAwCkB,OAxClB,EAwC2B,OAxC3B,EAwCoC,OAxCpC,EAyC3B,OAzC2B,EAyClB,OAzCkB,EAyCT,OAzCS,EAyCA,OAzCA,EAyCS,OAzCT,EAyCkB,OAzClB,EAyC2B,OAzC3B,EAyCoC,OAzCpC,EAyC6C,GAzC7C,EA0C3B,OA1C2B,EA0ClB,OA1CkB,EA0CT,OA1CS,EA0CA,MA1CA,EA0CQ,OA1CR,EA0CiB,OA1CjB,EA0C0B,OA1C1B,EA0CmC,OA1CnC,EA2C3B,OA3C2B,EA2ClB,OA3CkB,EA2CT,OA3CS,EA2CA,OA3CA,EA2CS,OA3CT,EA2CkB,OA3ClB,EA2C2B,OA3C3B,EA2CoC,OA3CpC,EA4C3B,OA5C2B,EA4ClB,OA5CkB,EA4CT,OA5CS,EA4CA,OA5CA,EA4CS,OA5CT,EA4CkB,MA5ClB,EA4C0B,OA5C1B,EA4CmC,OA5CnC,EA6C3B,OA7C2B,EA6ClB,OA7CkB,EA6CT,MA7CS,EA6CD,IA7CC,EA6CK,OA7CL,EA6Cc,GA7Cd,EA6CmB,MA7CnB,EA6C2B,MA7C3B,EA6CmC,OA7CnC,EA8C3B,OA9C2B,EA8ClB,OA9CkB,EA8CT,IA9CS,EA8CH,OA9CG,EA8CM,OA9CN,EA8Ce,OA9Cf,EA8CwB,GA9CxB,EA8C6B,OA9C7B,EA8CsC,MA9CtC,EA+C3B,OA/C2B,EA+ClB,MA/CkB,EA+CV,OA/CU,EA+CD,OA/CC,EA+CQ,MA/CR,EA+CgB,OA/ChB,EA+CyB,OA/CzB,EA+CkC,OA/ClC,EA+C2C,OA/C3C,EAgD3B,MAhD2B,EAgDnB,OAhDmB,EAgDV,OAhDU,EAgDD,MAhDC,EAgDO,MAhDP,EAgDe,GAhDf,EAgDoB,MAhDpB,EAgD4B,OAhD5B,EAgDqC,MAhDrC,EAiD3B,MAjD2B,EAiDnB,OAjDmB,EAiDV,CAjDU,EAiDP,CAjDO,EAiDJ,CAjDI,EAiDD,CAjDC,EAiDE,CAjDF,EAiDK,CAjDL,EAiDQ,CAjDR,EAiDW,CAjDX,EAiDc,CAjDd,EAiDiB,CAjDjB,EAiDoB,CAjDpB,EAiDuB,CAjDvB,EAiD0B,OAjD1B,EAiDmC,CAjDnC,EAiDsC,CAjDtC,EAiDyC,CAjDzC,EAiD4C,CAjD5C,EAiD+C,CAjD/C,EAkD3B,CAlD2B,EAkDxB,CAlDwB,EAkDrB,CAlDqB,EAkDlB,CAlDkB,EAkDf,CAlDe,EAkDZ,CAlDY,EAkDT,CAlDS,EAkDN,CAlDM,EAkDH,CAlDG,EAkDA,CAlDA,EAkDG,CAlDH,EAkDM,CAlDN,EAkDS,CAlDT,EAkDY,CAlDZ,EAkDe,CAlDf,EAkDkB,CAlDlB,EAkDqB,CAlDrB,EAkDwB,CAlDxB,EAkD2B,CAlD3B,EAkD8B,CAlD9B,EAkDiC,CAlDjC,EAkDoC,CAlDpC,EAkDuC,CAlDvC,EAkD0C,CAlD1C,EAkD6C,CAlD7C,EAkDgD,CAlDhD,EAmD3B,CAnD2B,EAmDxB,CAnDwB,EAmDrB,CAnDqB,EAmDlB,CAnDkB,EAmDf,CAnDe,EAmDZ,CAnDY,EAmDT,CAnDS,EAmDN,CAnDM,EAmDH,CAnDG,EAmDA,CAnDA,EAmDG,CAnDH,EAmDM,CAnDN,EAmDS,CAnDT,EAmDY,CAnDZ,EAmDe,CAnDf,EAmDkB,CAnDlB,EAmDqB,CAnDrB,EAmDwB,CAnDxB,EAmD2B,CAnD3B,EAmD8B,CAnD9B,EAmDiC,CAnDjC,EAmDoC,CAnDpC,EAmDuC,CAnDvC,EAmD0C,CAnD1C,EAmD6C,CAnD7C,EAmDgD,CAnDhD,EAoD3B,CApD2B,EAoDxB,CApDwB,EAoDrB,CApDqB,EAoDlB,CApDkB,EAoDf,CApDe,EAoDZ,CApDY,EAoDT,CApDS,EAoDN,CApDM,EAoDH,CApDG,EAoDA,OApDA,EAoDS,CApDT,EAoDY,CApDZ,EAoDe,CApDf,EAoDkB,CApDlB,EAoDqB,CApDrB,EAoDwB,CApDxB,EAoD2B,CApD3B,EAoD8B,CApD9B,EAoDiC,CApDjC,EAoDoC,CApDpC,EAoDuC,CApDvC,EAoD0C,CApD1C,EAqD3B,OArD2B,EAqDlB,CArDkB,EAqDf,CArDe,EAqDZ,CArDY,EAqDT,CArDS,EAqDN,CArDM,EAqDH,CArDG,EAqDA,OArDA,EAqDS,MArDT,EAqDiB,OArDjB,EAqD0B,MArD1B,EAqDkC,OArDlC,EAqD2C,MArD3C,EAsD3B,OAtD2B,EAsDlB,OAtDkB,EAsDT,CAtDS,EAsDN,OAtDM,EAsDG,OAtDH,EAsDY,CAtDZ,EAsDe,CAtDf,EAsDkB,OAtDlB,EAsD2B,OAtD3B,EAsDoC,OAtDpC,EAuD3B,OAvD2B,EAuDlB,OAvDkB,EAuDT,OAvDS,EAuDA,OAvDA,EAuDS,OAvDT,EAuDkB,OAvDlB,EAuD2B,OAvD3B,EAuDoC,OAvDpC,EAwD3B,OAxD2B,EAwDlB,OAxDkB,EAwDT,OAxDS,EAwDA,OAxDA,EAwDS,OAxDT,EAwDkB,OAxDlB,EAwD2B,OAxD3B,EAwDoC,OAxDpC,EAwD6C,CAxD7C,EAyD3B,OAzD2B,EAyDlB,OAzDkB,EAyDT,OAzDS,EAyDA,OAzDA,EAyDS,OAzDT,EAyDkB,CAzDlB,EAyDqB,CAzDrB,EAyDwB,CAzDxB,EAyD2B,OAzD3B,EAyDoC,CAzDpC,EAyDuC,CAzDvC,EAyD0C,OAzD1C,EA0D3B,OA1D2B,EA0DlB,OA1DkB,EA0DT,OA1DS,EA0DA,OA1DA,EA0DS,OA1DT,EA0DkB,MA1DlB,EA0D0B,OA1D1B,EA0DmC,OA1DnC,EA0D4C,CA1D5C,EA0D+C,CA1D/C,EA2D3B,KA3D2B,EA2DpB,CA3DoB,EA2DjB,OA3DiB,EA2DR,OA3DQ,EA2DC,OA3DD,EA2DU,OA3DV,EA2DmB,OA3DnB,EA2D4B,OA3D5B,EA2DqC,OA3DrC,EA4D3B,OA5D2B,EA4DlB,OA5DkB,EA4DT,OA5DS,EA4DA,OA5DA,EA4DS,OA5DT,EA4DkB,OA5DlB,EA4D2B,CA5D3B,EA4D8B,CA5D9B,EA4DiC,CA5DjC,EA4DoC,CA5DpC,EA4DuC,CA5DvC,EA4D0C,CA5D1C,EA4D6C,CA5D7C,EA4DgD,CA5DhD,EA6D3B,CA7D2B,EA6DxB,CA7DwB,EA6DrB,CA7DqB,EA6DlB,CA7DkB,EA6Df,CA7De,EA6DZ,CA7DY,EA6DT,CA7DS,EA6DN,CA7DM,EA6DH,CA7DG,EA6DA,CA7DA,EA6DG,CA7DH,EA6DM,CA7DN,EA6DS,CA7DT,EA6DY,CA7DZ,EA6De,CA7Df,EA6DkB,CA7DlB,EA6DqB,CA7DrB,EA6DwB,CA7DxB,EA6D2B,CA7D3B,EA6D8B,CA7D9B,EA6DiC,CA7DjC,EA6DoC,CA7DpC,EA6DuC,CA7DvC,EA6D0C,CA7D1C,EA6D6C,CA7D7C,EA6DgD,CA7DhD,EA8D3B,CA9D2B,EA8DxB,CA9DwB,EA8DrB,CA9DqB,EA8DlB,CA9DkB,EA8Df,CA9De,EA8DZ,CA9DY,EA8DT,CA9DS,EA8DN,CA9DM,EA8DH,CA9DG,EA8DA,CA9DA,EA8DG,CA9DH,EA8DM,CA9DN,EA8DS,CA9DT,EA8DY,CA9DZ,EA8De,CA9Df,EA8DkB,CA9DlB,EA8DqB,CA9DrB,EA8DwB,CA9DxB,EA8D2B,OA9D3B,EA8DoC,CA9DpC,EA8DuC,OA9DvC,EA+D3B,OA/D2B,EA+DlB,CA/DkB,EA+Df,OA/De,EA+DN,OA/DM,EA+DG,OA/DH,EA+DY,OA/DZ,EA+DqB,OA/DrB,EA+D8B,OA/D9B,EA+DuC,CA/DvC,EA+D0C,OA/D1C,EAgE3B,OAhE2B,EAgElB,OAhEkB,EAgET,CAhES,EAgEN,CAhEM,EAgEH,CAhEG,EAgEA,CAhEA,EAgEG,CAhEH,EAgEM,MAhEN,EAgEc,OAhEd,EAgEuB,OAhEvB,EAgEgC,OAhEhC,EAgEyC,CAhEzC,EAgE4C,CAhE5C,EAgE+C,CAhE/C,EAiE3B,OAjE2B,EAiElB,OAjEkB,EAiET,CAjES,EAiEN,CAjEM,EAiEH,CAjEG,EAiEA,CAjEA,EAiEG,CAjEH,EAiEM,CAjEN,EAiES,CAjET,EAiEY,CAjEZ,EAiEe,CAjEf,EAiEkB,CAjElB,EAiEqB,CAjErB,EAiEwB,CAjExB,EAiE2B,CAjE3B,EAiE8B,CAjE9B,EAiEiC,CAjEjC,EAiEoC,CAjEpC,EAiEuC,CAjEvC,EAiE0C,CAjE1C,CAA7B;;AAmEA,MAAMC,uBAAuB;EAAE4B,YAAY,OAAd;EAAuBC,SAAS;AAAhC,CAA7B;;AAIA,MAAMlC,wBAAwB,CAC5B,OAD4B,EACnB,CADmB,EAChB,CADgB,EACb,OADa,EACJ,OADI,EACK,OADL,EACc,OADd,EACuB,OADvB,EACgC,OADhC,EACyC,OADzC,EAE5B,MAF4B,EAEpB,OAFoB,EAEX,OAFW,EAEF,OAFE,EAEO,MAFP,EAEe,OAFf,EAEwB,OAFxB,EAEiC,OAFjC,EAE0C,OAF1C,EAG5B,OAH4B,EAGnB,OAHmB,EAGV,OAHU,EAGD,OAHC,EAGQ,OAHR,EAGiB,OAHjB,EAG0B,OAH1B,EAGmC,OAHnC,EAI5B,OAJ4B,EAInB,OAJmB,EAIV,OAJU,EAID,OAJC,EAIQ,MAJR,EAIgB,MAJhB,EAIwB,MAJxB,EAIgC,OAJhC,EAIyC,OAJzC,EAK5B,OAL4B,EAKnB,OALmB,EAKV,OALU,EAKD,OALC,EAKQ,OALR,EAKiB,OALjB,EAK0B,OAL1B,EAKmC,MALnC,EAM5B,OAN4B,EAMnB,OANmB,EAMV,OANU,EAMD,OANC,EAMQ,OANR,EAMiB,OANjB,EAM0B,OAN1B,EAMmC,OANnC,EAO5B,OAP4B,EAOnB,OAPmB,EAOV,OAPU,EAOD,OAPC,EAOQ,OAPR,EAOiB,OAPjB,EAO0B,OAP1B,EAOmC,OAPnC,EAQ5B,MAR4B,EAQpB,OARoB,EAQX,OARW,EAQF,MARE,EAQM,OARN,EAQe,OARf,EAQwB,OARxB,EAQiC,OARjC,EAQ0C,OAR1C,EAS5B,OAT4B,EASnB,OATmB,EASV,OATU,EASD,MATC,EASO,OATP,EASgB,OAThB,EASyB,OATzB,EASkC,OATlC,EAU5B,OAV4B,EAUnB,OAVmB,EAUV,OAVU,EAUD,KAVC,EAUM,OAVN,EAUe,OAVf,EAUwB,OAVxB,EAUiC,OAVjC,EAU0C,OAV1C,EAW5B,OAX4B,EAWnB,OAXmB,EAWV,OAXU,EAWD,OAXC,EAWQ,OAXR,EAWiB,OAXjB,EAW0B,OAX1B,EAWmC,MAXnC,EAY5B,OAZ4B,EAYnB,OAZmB,EAYV,OAZU,EAYD,MAZC,EAYO,OAZP,EAYgB,OAZhB,EAYyB,OAZzB,EAYkC,OAZlC,EAa5B,OAb4B,EAanB,OAbmB,EAaV,OAbU,EAaD,MAbC,EAaO,OAbP,EAagB,OAbhB,EAayB,OAbzB,EAakC,MAblC,EAa0C,OAb1C,EAc5B,OAd4B,EAcnB,OAdmB,EAcV,OAdU,EAcD,OAdC,EAcQ,OAdR,EAciB,OAdjB,EAc0B,CAd1B,EAc6B,OAd7B,EAcsC,OAdtC,EAe5B,OAf4B,EAenB,OAfmB,EAeV,OAfU,EAeD,OAfC,EAeQ,OAfR,EAeiB,OAfjB,EAe0B,OAf1B,EAemC,OAfnC,EAgB5B,OAhB4B,EAgBnB,OAhBmB,EAgBV,OAhBU,EAgBD,OAhBC,EAgBQ,OAhBR,EAgBiB,OAhBjB,EAgB0B,OAhB1B,EAgBmC,OAhBnC,EAiB5B,OAjB4B,EAiBnB,OAjBmB,EAiBV,OAjBU,EAiBD,OAjBC,EAiBQ,OAjBR,EAiBiB,OAjBjB,EAiB0B,OAjB1B,EAiBmC,OAjBnC,EAkB5B,OAlB4B,EAkBnB,OAlBmB,EAkBV,OAlBU,EAkBD,OAlBC,EAkBQ,OAlBR,EAkBiB,OAlBjB,EAkB0B,OAlB1B,EAkBmC,MAlBnC,EAmB5B,OAnB4B,EAmBnB,OAnBmB,EAmBV,OAnBU,EAmBD,OAnBC,EAmBQ,OAnBR,EAmBiB,MAnBjB,EAmByB,OAnBzB,EAmBkC,OAnBlC,EAoB5B,OApB4B,EAoBnB,OApBmB,EAoBV,OApBU,EAoBD,OApBC,EAoBQ,OApBR,EAoBiB,OApBjB,EAoB0B,OApB1B,EAoBmC,OApBnC,EAqB5B,MArB4B,EAqBpB,MArBoB,EAqBZ,MArBY,EAqBJ,MArBI,EAqBI,MArBJ,EAqBY,MArBZ,EAqBoB,MArBpB,EAqB4B,MArB5B,EAqBoC,OArBpC,EAsB5B,OAtB4B,EAsBnB,OAtBmB,EAsBV,OAtBU,EAsBD,OAtBC,EAsBQ,OAtBR,EAsBiB,OAtBjB,EAsB0B,OAtB1B,EAsBmC,OAtBnC,EAuB5B,OAvB4B,EAuBnB,OAvBmB,EAuBV,OAvBU,EAuBD,OAvBC,EAuBQ,OAvBR,EAuBiB,OAvBjB,EAuB0B,OAvB1B,EAuBmC,OAvBnC,EAwB5B,OAxB4B,EAwBnB,OAxBmB,EAwBV,OAxBU,EAwBD,OAxBC,EAwBQ,OAxBR,EAwBiB,OAxBjB,EAwB0B,OAxB1B,EAwBmC,OAxBnC,EAyB5B,OAzB4B,EAyBnB,OAzBmB,EAyBV,OAzBU,EAyBD,OAzBC,EAyBQ,OAzBR,EAyBiB,OAzBjB,EAyB0B,MAzB1B,EAyBkC,OAzBlC,EA0B5B,OA1B4B,EA0BnB,OA1BmB,EA0BV,MA1BU,EA0BF,OA1BE,EA0BO,MA1BP,EA0Be,OA1Bf,EA0BwB,MA1BxB,EA0BgC,OA1BhC,EA0ByC,MA1BzC,EA2B5B,OA3B4B,EA2BnB,MA3BmB,EA2BX,OA3BW,EA2BF,OA3BE,EA2BO,OA3BP,EA2BgB,OA3BhB,EA2ByB,OA3BzB,EA2BkC,OA3BlC,EA2B2C,CA3B3C,EA2B8C,CA3B9C,EA4B5B,MA5B4B,EA4BpB,OA5BoB,EA4BX,MA5BW,EA4BH,OA5BG,EA4BM,OA5BN,EA4Be,MA5Bf,EA4BuB,OA5BvB,EA4BgC,MA5BhC,EA4BwC,OA5BxC,EA6B5B,MA7B4B,EA6BpB,OA7BoB,EA6BX,OA7BW,EA6BF,OA7BE,EA6BO,MA7BP,EA6Be,OA7Bf,EA6BwB,OA7BxB,EA6BiC,OA7BjC,EA6B0C,OA7B1C,EA8B5B,CA9B4B,EA8BzB,CA9ByB,EA8BtB,OA9BsB,EA8Bb,OA9Ba,EA8BJ,OA9BI,EA8BK,CA9BL,EA8BQ,CA9BR,EA8BW,OA9BX,EA8BoB,MA9BpB,EA8B4B,OA9B5B,EA8BqC,OA9BrC,EA+B5B,OA/B4B,EA+BnB,OA/BmB,EA+BV,OA/BU,EA+BD,OA/BC,EA+BQ,CA/BR,EA+BW,CA/BX,EA+Bc,OA/Bd,EA+BuB,OA/BvB,EA+BgC,OA/BhC,EA+ByC,OA/BzC,EAgC5B,OAhC4B,EAgCnB,OAhCmB,EAgCV,OAhCU,EAgCD,OAhCC,EAgCQ,OAhCR,EAgCiB,OAhCjB,EAgC0B,OAhC1B,EAgCmC,OAhCnC,EAiC5B,OAjC4B,EAiCnB,OAjCmB,EAiCV,OAjCU,EAiCD,CAjCC,EAiCE,CAjCF,EAiCK,OAjCL,EAiCc,OAjCd,EAiCuB,OAjCvB,EAiCgC,OAjChC,EAiCyC,OAjCzC,EAkC5B,OAlC4B,EAkCnB,OAlCmB,EAkCV,OAlCU,EAkCD,OAlCC,EAkCQ,OAlCR,EAkCiB,CAlCjB,EAkCoB,CAlCpB,EAkCuB,OAlCvB,EAkCgC,OAlChC,EAkCyC,OAlCzC,EAmC5B,OAnC4B,EAmCnB,OAnCmB,EAmCV,OAnCU,EAmCD,OAnCC,EAmCQ,OAnCR,EAmCiB,OAnCjB,EAmC0B,OAnC1B,EAmCmC,OAnCnC,EAoC5B,OApC4B,EAoCnB,OApCmB,EAoCV,OApCU,EAoCD,OApCC,EAoCQ,OApCR,EAoCiB,OApCjB,EAoC0B,OApC1B,EAoCmC,MApCnC,EAqC5B,OArC4B,EAqCnB,MArCmB,EAqCX,OArCW,EAqCF,MArCE,EAqCM,OArCN,EAqCe,MArCf,EAqCuB,OArCvB,EAqCgC,MArChC,EAqCwC,OArCxC,EAsC5B,OAtC4B,EAsCnB,OAtCmB,EAsCV,OAtCU,EAsCD,OAtCC,EAsCQ,OAtCR,EAsCiB,OAtCjB,EAsC0B,OAtC1B,EAsCmC,CAtCnC,EAsCsC,CAtCtC,EAsCyC,OAtCzC,EAuC5B,OAvC4B,EAuCnB,OAvCmB,EAuCV,OAvCU,EAuCD,OAvCC,EAuCQ,OAvCR,EAuCiB,OAvCjB,EAuC0B,OAvC1B,EAuCmC,OAvCnC,EAwC5B,OAxC4B,EAwCnB,OAxCmB,EAwCV,OAxCU,EAwCD,OAxCC,EAwCQ,OAxCR,EAwCiB,OAxCjB,EAwC0B,OAxC1B,EAwCmC,OAxCnC,EAyC5B,OAzC4B,EAyCnB,OAzCmB,EAyCV,OAzCU,EAyCD,OAzCC,EAyCQ,GAzCR,EAyCa,OAzCb,EAyCsB,OAzCtB,EAyC+B,OAzC/B,EAyCwC,OAzCxC,EA0C5B,OA1C4B,EA0CnB,OA1CmB,EA0CV,MA1CU,EA0CF,OA1CE,EA0CO,OA1CP,EA0CgB,OA1ChB,EA0CyB,OA1CzB,EA0CkC,OA1ClC,EA2C5B,OA3C4B,EA2CnB,OA3CmB,EA2CV,OA3CU,EA2CD,OA3CC,EA2CQ,OA3CR,EA2CiB,OA3CjB,EA2C0B,OA3C1B,EA2CmC,MA3CnC,EA4C5B,OA5C4B,EA4CnB,OA5CmB,EA4CV,MA5CU,EA4CF,MA5CE,EA4CM,OA5CN,EA4Ce,MA5Cf,EA4CuB,MA5CvB,EA4C+B,OA5C/B,EA4CwC,OA5CxC,EA6C5B,GA7C4B,EA6CvB,OA7CuB,EA6Cd,MA7Cc,EA6CN,OA7CM,EA6CG,OA7CH,EA6CY,OA7CZ,EA6CqB,OA7CrB,EA6C8B,OA7C9B,EA6CuC,OA7CvC,EA8C5B,OA9C4B,EA8CnB,GA9CmB,EA8Cd,OA9Cc,EA8CL,OA9CK,EA8CI,OA9CJ,EA8Ca,OA9Cb,EA8CsB,OA9CtB,EA8C+B,OA9C/B,EA8CwC,MA9CxC,EA+C5B,OA/C4B,EA+CnB,OA/CmB,EA+CV,OA/CU,EA+CD,OA/CC,EA+CQ,OA/CR,EA+CiB,OA/CjB,EA+C0B,OA/C1B,EA+CmC,OA/CnC,EAgD5B,OAhD4B,EAgDnB,GAhDmB,EAgDd,OAhDc,EAgDL,OAhDK,EAgDI,OAhDJ,EAgDa,OAhDb,EAgDsB,OAhDtB,EAgD+B,CAhD/B,EAgDkC,CAhDlC,EAgDqC,CAhDrC,EAgDwC,CAhDxC,EAgD2C,CAhD3C,EAgD8C,CAhD9C,EAiD5B,CAjD4B,EAiDzB,CAjDyB,EAiDtB,CAjDsB,EAiDnB,CAjDmB,EAiDhB,CAjDgB,EAiDb,CAjDa,EAiDV,OAjDU,EAiDD,CAjDC,EAiDE,CAjDF,EAiDK,CAjDL,EAiDQ,CAjDR,EAiDW,CAjDX,EAiDc,CAjDd,EAiDiB,CAjDjB,EAiDoB,CAjDpB,EAiDuB,CAjDvB,EAiD0B,CAjD1B,EAiD6B,CAjD7B,EAiDgC,CAjDhC,EAiDmC,CAjDnC,EAiDsC,CAjDtC,EAiDyC,CAjDzC,EAiD4C,CAjD5C,EAiD+C,CAjD/C,EAkD5B,CAlD4B,EAkDzB,CAlDyB,EAkDtB,CAlDsB,EAkDnB,CAlDmB,EAkDhB,CAlDgB,EAkDb,CAlDa,EAkDV,CAlDU,EAkDP,CAlDO,EAkDJ,CAlDI,EAkDD,CAlDC,EAkDE,CAlDF,EAkDK,CAlDL,EAkDQ,CAlDR,EAkDW,CAlDX,EAkDc,CAlDd,EAkDiB,CAlDjB,EAkDoB,CAlDpB,EAkDuB,CAlDvB,EAkD0B,CAlD1B,EAkD6B,CAlD7B,EAkDgC,CAlDhC,EAkDmC,CAlDnC,EAkDsC,CAlDtC,EAkDyC,CAlDzC,EAkD4C,CAlD5C,EAkD+C,CAlD/C,EAmD5B,CAnD4B,EAmDzB,CAnDyB,EAmDtB,CAnDsB,EAmDnB,CAnDmB,EAmDhB,CAnDgB,EAmDb,CAnDa,EAmDV,CAnDU,EAmDP,CAnDO,EAmDJ,CAnDI,EAmDD,CAnDC,EAmDE,CAnDF,EAmDK,CAnDL,EAmDQ,CAnDR,EAmDW,CAnDX,EAmDc,CAnDd,EAmDiB,CAnDjB,EAmDoB,CAnDpB,EAmDuB,CAnDvB,EAmD0B,CAnD1B,EAmD6B,CAnD7B,EAmDgC,CAnDhC,EAmDmC,CAnDnC,EAmDsC,CAnDtC,EAmDyC,MAnDzC,EAoD5B,CApD4B,EAoDzB,CApDyB,EAoDtB,CApDsB,EAoDnB,CApDmB,EAoDhB,CApDgB,EAoDb,CApDa,EAoDV,CApDU,EAoDP,CApDO,EAoDJ,CApDI,EAoDD,CApDC,EAoDE,CApDF,EAoDK,CApDL,EAoDQ,OApDR,EAoDiB,CApDjB,EAoDoB,CApDpB,EAoDuB,CApDvB,EAoD0B,CApD1B,EAoD6B,CApD7B,EAoDgC,CApDhC,EAoDmC,OApDnC,EAqD5B,OArD4B,EAqDnB,OArDmB,EAqDV,OArDU,EAqDD,OArDC,EAqDQ,OArDR,EAqDiB,MArDjB,EAqDyB,OArDzB,EAqDkC,CArDlC,EAqDqC,OArDrC,EAsD5B,OAtD4B,EAsDnB,CAtDmB,EAsDhB,CAtDgB,EAsDb,OAtDa,EAsDJ,OAtDI,EAsDK,OAtDL,EAsDc,OAtDd,EAsDuB,OAtDvB,EAsDgC,OAtDhC,EAsDyC,OAtDzC,EAuD5B,OAvD4B,EAuDnB,OAvDmB,EAuDV,OAvDU,EAuDD,OAvDC,EAuDQ,OAvDR,EAuDiB,OAvDjB,EAuD0B,OAvD1B,EAuDmC,OAvDnC,EAwD5B,OAxD4B,EAwDnB,OAxDmB,EAwDV,OAxDU,EAwDD,OAxDC,EAwDQ,CAxDR,EAwDW,OAxDX,EAwDoB,OAxDpB,EAwD6B,OAxD7B,EAwDsC,OAxDtC,EAyD5B,OAzD4B,EAyDnB,CAzDmB,EAyDhB,CAzDgB,EAyDb,CAzDa,EAyDV,OAzDU,EAyDD,CAzDC,EAyDE,CAzDF,EAyDK,OAzDL,EAyDc,OAzDd,EAyDuB,OAzDvB,EAyDgC,OAzDhC,EAyDyC,OAzDzC,EA0D5B,OA1D4B,EA0DnB,OA1DmB,EA0DV,OA1DU,EA0DD,OA1DC,EA0DQ,CA1DR,EA0DW,CA1DX,EA0Dc,KA1Dd,EA0DqB,CA1DrB,EA0DwB,OA1DxB,EA0DiC,OA1DjC,EA0D0C,MA1D1C,EA2D5B,OA3D4B,EA2DnB,OA3DmB,EA2DV,OA3DU,EA2DD,OA3DC,EA2DQ,MA3DR,EA2DgB,OA3DhB,EA2DyB,OA3DzB,EA2DkC,OA3DlC,EA4D5B,OA5D4B,EA4DnB,OA5DmB,EA4DV,CA5DU,EA4DP,CA5DO,EA4DJ,CA5DI,EA4DD,CA5DC,EA4DE,CA5DF,EA4DK,CA5DL,EA4DQ,CA5DR,EA4DW,CA5DX,EA4Dc,CA5Dd,EA4DiB,CA5DjB,EA4DoB,CA5DpB,EA4DuB,CA5DvB,EA4D0B,CA5D1B,EA4D6B,CA5D7B,EA4DgC,CA5DhC,EA4DmC,CA5DnC,EA4DsC,CA5DtC,EA4DyC,CA5DzC,EA4D4C,CA5D5C,EA4D+C,CA5D/C,EA6D5B,CA7D4B,EA6DzB,CA7DyB,EA6DtB,CA7DsB,EA6DnB,CA7DmB,EA6DhB,CA7DgB,EA6Db,CA7Da,EA6DV,CA7DU,EA6DP,CA7DO,EA6DJ,CA7DI,EA6DD,CA7DC,EA6DE,CA7DF,EA6DK,CA7DL,EA6DQ,CA7DR,EA6DW,CA7DX,EA6Dc,CA7Dd,EA6DiB,CA7DjB,EA6DoB,CA7DpB,EA6DuB,CA7DvB,EA6D0B,CA7D1B,EA6D6B,CA7D7B,EA6DgC,CA7DhC,EA6DmC,CA7DnC,EA6DsC,CA7DtC,EA6DyC,CA7DzC,EA6D4C,CA7D5C,EA6D+C,CA7D/C,EA8D5B,CA9D4B,EA8DzB,CA9DyB,EA8DtB,CA9DsB,EA8DnB,CA9DmB,EA8DhB,CA9DgB,EA8Db,CA9Da,EA8DV,OA9DU,EA8DD,CA9DC,EA8DE,OA9DF,EA8DW,OA9DX,EA8DoB,CA9DpB,EA8DuB,OA9DvB,EA8DgC,OA9DhC,EA8DyC,OA9DzC,EA+D5B,OA/D4B,EA+DnB,OA/DmB,EA+DV,OA/DU,EA+DD,CA/DC,EA+DE,OA/DF,EA+DW,OA/DX,EA+DoB,OA/DpB,EA+D6B,CA/D7B,EA+DgC,CA/DhC,EA+DmC,CA/DnC,EA+DsC,CA/DtC,EA+DyC,CA/DzC,EAgE5B,MAhE4B,EAgEpB,OAhEoB,EAgEX,OAhEW,EAgEF,OAhEE,EAgEO,CAhEP,EAgEU,CAhEV,EAgEa,CAhEb,EAgEgB,OAhEhB,EAgEyB,OAhEzB,EAgEkC,CAhElC,EAgEqC,CAhErC,EAgEwC,CAhExC,EAiE5B,OAjE4B,EAiEnB,OAjEmB,EAiEV,OAjEU,EAiED,OAjEC,EAiEQ,CAjER,EAiEW,CAjEX,EAiEc,CAjEd,EAiEiB,CAjEjB,EAiEoB,CAjEpB,EAiEuB,CAjEvB,EAiE0B,CAjE1B,EAiE6B,CAjE7B,EAiEgC,CAjEhC,EAiEmC,CAjEnC,EAiEsC,CAjEtC,CAA9B;;AAmEA,MAAMC,wBAAwB;EAAEgC,YAAY,OAAd;EAAuBC,SAAS;AAAhC,CAA9B;;;;;;;;;;;;;;;;;;ACzRA;;AACA;;AACA;;AACA;;AASA,MAAMC,wBAAwB,IAA9B;;AAEA,MAAMC,YAAY;EAChBC,YAAY,CADI;EAEhBC,OAAO,CAFS;EAGhBC,UAAU,CAHM;EAIhBC,QAAQ,CAJQ;EAKhBC,aAAa,EALG;EAMhBC,QAAQ,EANQ;EAOhBC,QAAQ,KAPQ;EAQhBC,UAAU,MARM;EAShBC,WAAW;AATK,CAAlB;;AAaA,MAAMC,2BAA2B,CAC/B,SAD+B,EACpB,OADoB,EACX,kBADW,EACS,OADT,EACkB,QADlB,EAC4B,UAD5B,EAE/B,YAF+B,EAEjB,QAFiB,EAEP,SAFO,EAEI,WAFJ,EAEiB,aAFjB,EAEgC,WAFhC,EAG/B,YAH+B,EAGjB,UAHiB,EAGL,MAHK,EAGG,OAHH,EAGY,QAHZ,EAGsB,QAHtB,EAGgC,OAHhC,EAI/B,MAJ+B,EAIvB,KAJuB,EAIhB,KAJgB,EAIT,OAJS,EAIA,MAJA,EAIQ,MAJR,EAIgB,KAJhB,EAIuB,OAJvB,EAIgC,OAJhC,EAK/B,MAL+B,EAKvB,OALuB,EAKd,WALc,EAKD,MALC,EAKO,OALP,EAKgB,SALhB,EAK2B,UAL3B,EAKuC,IALvC,EAM/B,GAN+B,EAM1B,GAN0B,EAMrB,GANqB,EAMhB,GANgB,EAMX,GANW,EAMN,GANM,EAMD,GANC,EAMI,GANJ,EAMS,GANT,EAMc,GANd,EAMmB,GANnB,EAMwB,GANxB,EAM6B,GAN7B,EAMkC,GANlC,EAMuC,GANvC,EAO/B,GAP+B,EAO1B,GAP0B,EAOrB,GAPqB,EAOhB,GAPgB,EAOX,GAPW,EAON,GAPM,EAOD,GAPC,EAOI,GAPJ,EAOS,GAPT,EAOc,GAPd,EAOmB,GAPnB,EAOwB,aAPxB,EAQ/B,WAR+B,EAQlB,cARkB,EAQF,aARE,EAQa,YARb,EAQ2B,OAR3B,EAQoC,GARpC,EAQyC,GARzC,EAS/B,GAT+B,EAS1B,GAT0B,EASrB,GATqB,EAShB,GATgB,EASX,GATW,EASN,GATM,EASD,GATC,EASI,GATJ,EASS,GATT,EASc,GATd,EASmB,GATnB,EASwB,GATxB,EAS6B,GAT7B,EASkC,GATlC,EASuC,GATvC,EAU/B,GAV+B,EAU1B,GAV0B,EAUrB,GAVqB,EAUhB,GAVgB,EAUX,GAVW,EAUN,GAVM,EAUD,GAVC,EAUI,GAVJ,EAUS,GAVT,EAUc,WAVd,EAU2B,KAV3B,EAUkC,YAVlC,EAW/B,YAX+B,EAWjB,WAXiB,EAWJ,OAXI,EAWK,UAXL,EAWiB,QAXjB,EAW2B,QAX3B,EAY/B,WAZ+B,EAYlB,WAZkB,EAYL,QAZK,EAYK,QAZL,EAYe,aAZf,EAY8B,WAZ9B,EAa/B,QAb+B,EAarB,OAbqB,EAaZ,UAbY,EAaA,QAbA,EAaU,QAbV,EAaoB,aAbpB,EAamC,WAbnC,EAc/B,QAd+B,EAcrB,QAdqB,EAcX,aAdW,EAcI,WAdJ,EAciB,QAdjB,EAc2B,QAd3B,EAcqC,QAdrC,EAe/B,aAf+B,EAehB,WAfgB,EAeH,QAfG,EAeO,QAfP,EAeiB,QAfjB,EAe2B,aAf3B,EAgB/B,WAhB+B,EAgBlB,QAhBkB,EAgBR,QAhBQ,EAgBE,MAhBF,EAgBU,UAhBV,EAgBsB,SAhBtB,EAgBiC,QAhBjC,EAiB/B,WAjB+B,EAiBlB,YAjBkB,EAiBJ,YAjBI,EAiBU,WAjBV,EAiBuB,WAjBvB,EAiBoC,OAjBpC,EAkB/B,UAlB+B,EAkBnB,UAlBmB,EAkBP,IAlBO,EAkBD,QAlBC,EAkBS,UAlBT,EAkBqB,WAlBrB,EAkBkC,WAlBlC,EAmB/B,cAnB+B,EAmBf,KAnBe,EAmBR,IAnBQ,EAmBF,aAnBE,EAmBa,WAnBb,EAmB0B,SAnB1B,EAmBqC,IAnBrC,EAoB/B,UApB+B,EAoBnB,aApBmB,EAoBJ,cApBI,EAoBY,OApBZ,EAoBqB,IApBrB,EAoB2B,QApB3B,EAqB/B,cArB+B,EAqBf,YArBe,EAqBD,YArBC,EAqBa,SArBb,EAqBwB,QArBxB,EAsB/B,aAtB+B,EAsBhB,OAtBgB,EAsBP,eAtBO,EAsBU,gBAtBV,EAsB4B,UAtB5B,EAuB/B,kBAvB+B,EAuBX,QAvBW,EAuBD,QAvBC,EAuBS,QAvBT,EAuBmB,IAvBnB,EAuByB,IAvBzB,EAuB+B,QAvB/B,EAwB/B,QAxB+B,EAwBrB,cAxBqB,EAwBL,eAxBK,EAwBY,WAxBZ,EAwByB,YAxBzB,EAyB/B,QAzB+B,EAyBrB,SAzBqB,EAyBV,WAzBU,EAyBG,WAzBH,EAyBgB,UAzBhB,EAyB4B,UAzB5B,EA0B/B,eA1B+B,EA0Bd,gBA1Bc,EA0BI,IA1BJ,EA0BU,IA1BV,EA0BgB,WA1BhB,EA0B6B,gBA1B7B,EA2B/B,gBA3B+B,EA2Bb,cA3Ba,EA2BG,aA3BH,EA2BkB,aA3BlB,EA4B/B,aA5B+B,EA4BhB,QA5BgB,EA4BN,WA5BM,EA4BO,QA5BP,EA4BiB,QA5BjB,EA4B2B,aA5B3B,EA6B/B,WA7B+B,EA6BlB,QA7BkB,EA6BR,QA7BQ,EA6BE,aA7BF,EA6BiB,OA7BjB,EA6B0B,QA7B1B,EA6BoC,QA7BpC,EA8B/B,aA9B+B,EA8BhB,QA9BgB,EA8BN,UA9BM,EA8BM,YA9BN,EA8BoB,OA9BpB,EA8B6B,QA9B7B,EA+B/B,OA/B+B,EA+BtB,WA/BsB,EA+BT,MA/BS,EA+BD,SA/BC,EA+BU,cA/BV,EA+B0B,QA/B1B,EA+BoC,OA/BpC,EAgC/B,QAhC+B,EAgCrB,QAhCqB,EAgCX,QAhCW,EAgCD,QAhCC,EAgCS,QAhCT,EAgCmB,QAhCnB,EAgC6B,WAhC7B,EAiC/B,KAjC+B,EAiCxB,KAjCwB,EAiCjB,QAjCiB,EAiCP,QAjCO,EAiCG,OAjCH,EAiCY,OAjCZ,EAiCqB,OAjCrB,EAiC8B,UAjC9B,EAkC/B,aAlC+B,EAkChB,aAlCgB,EAkCD,eAlCC,EAkCgB,SAlChB,EAkC2B,YAlC3B,EAmC/B,eAnC+B,EAmCd,OAnCc,EAmCL,QAnCK,EAmCK,QAnCL,EAmCe,YAnCf,EAmC6B,UAnC7B,EAoC/B,UApC+B,EAoCnB,QApCmB,EAoCT,QApCS,EAoCC,QApCD,EAoCW,QApCX,EAoCqB,QApCrB,CAAjC;;;AAsCA,SAASC,WAAT,CAAqBpjB,IAArB,EAA2BqjB,OAA3B,EAAoCC,iBAAiB,KAArD,EAA4D;EAC1D,QAAQtjB,IAAR;IACE,KAAK,OAAL;MACE,IAAIsjB,cAAJ,EAAoB;QAClB,OAAOx2B,eAASE,aAAhB;MAFJ;;MAIE,OAAOq2B,YAAY,QAAZA,GAAuBv2B,eAASG,MAAhCo2B,GAAyCv2B,eAASC,KAAzD;;IACF,KAAK,cAAL;MACE,OAAOs2B,YAAY,eAAZA,GACHv2B,eAASK,aADNk2B,GAEHv2B,eAASI,YAFb;;IAGF,KAAK,UAAL;MACE,OAAOJ,eAASS,QAAhB;;IACF,KAAK,UAAL;MACE,OAAOT,eAASM,QAAhB;;IACF,KAAK,cAAL;MACE,OAAON,eAASO,YAAhB;;IACF,KAAK,SAAL;MACE,OAAOP,eAASW,OAAhB;;IACF,KAAK,OAAL;MACE,OAAOX,eAASU,KAAhB;;IACF;MACE,OAAOV,eAASV,OAAhB;EArBJ;AAjFF;;AA4GA,SAASm3B,gBAAT,CAA0BrvC,IAA1B,EAAgCsvC,gBAAhC,EAAkD;EAChD,IAAIA,iBAAiBtvC,IAAjB,MAA2BujB,SAA/B,EAA0C;IACxC,OAAOvjB,IAAP;EAF8C;;EAKhD,MAAM4tC,UAAU2B,iCAAmBvvC,IAAnBuvC,EAAyBD,gBAAzBC,CAAhB;;EACA,IAAI3B,YAAY,CAAC,CAAjB,EAAoB;IAClB,WAAWlhC,GAAX,IAAkB4iC,gBAAlB,EAAoC;MAClC,IAAIA,iBAAiB5iC,GAAjB,MAA0BkhC,OAA9B,EAAuC;QACrC,OAAOlhC,GAAP;MAFgC;IADlB;EAN4B;;EAahDO,gBAAK,kDAAkDjN,IAAvDiN;EACA,OAAOjN,IAAP;AA1HF;;AAuIA,SAASwvC,qBAAT,CAA+BjhB,UAA/B,EAA2CkhB,eAA3C,EAA4DC,UAA5D,EAAwE;EACtE,MAAMC,oBAAoBvjC,OAAOC,MAAPD,CAAc,IAAdA,CAA1B;EACA,IAAIwjC,OAAJ,EAAaC,QAAb,EAAuBC,YAAvB;EACA,MAAMC,iBAAiB,CAAC,EAAExhB,WAAWyhB,KAAXzhB,GAAmBggB,UAAUG,QAA/B,CAAxB;;EAEA,IAAIngB,WAAW0hB,cAAf,EAA+B;IAC7BH,eAAeL,eAAfK;;IACA,KAAKD,WAAW,CAAhB,EAAmBA,WAAWC,aAAa1tC,MAA3C,EAAmDytC,UAAnD,EAA+D;MAC7DD,UAAUF,WAAWzsC,OAAXysC,CAAmBI,aAAaD,QAAb,CAAnBH,CAAVE;;MACA,IAAIA,WAAW,CAAf,EAAkB;QAChBD,kBAAkBE,QAAlB,IAA8BD,OAA9BD;MADF,OAEO;QACLA,kBAAkBE,QAAlB,IAA8B,CAA9BF;MAL2D;IAFlC;EAA/B,OAUO,IAAIphB,WAAW2hB,gBAAf,EAAiC;IAGtCJ,eAAeK,4BAAY5hB,WAAW2hB,gBAAvBC,CAAfL;;IACA,KAAKD,WAAW,CAAhB,EAAmBA,WAAWC,aAAa1tC,MAA3C,EAAmDytC,UAAnD,EAA+D;MAC7DD,UAAUF,WAAWzsC,OAAXysC,CAAmBI,aAAaD,QAAb,CAAnBH,CAAVE;;MACA,IAAIA,WAAW,CAAf,EAAkB;QAChBD,kBAAkBE,QAAlB,IAA8BD,OAA9BD;MADF,OAEO;QACLA,kBAAkBE,QAAlB,IAA8B,CAA9BF;MAL2D;IAJzB;EAAjC,OAYA,IAAII,cAAJ,EAAoB;IAEzB,KAAKF,QAAL,IAAiBJ,eAAjB,EAAkC;MAChCE,kBAAkBE,QAAlB,IAA8BJ,gBAAgBI,QAAhB,CAA9BF;IAHuB;EAApB,OAKA;IAGLG,eAAeM,2BAAfN;;IACA,KAAKD,WAAW,CAAhB,EAAmBA,WAAWC,aAAa1tC,MAA3C,EAAmDytC,UAAnD,EAA+D;MAC7DD,UAAUF,WAAWzsC,OAAXysC,CAAmBI,aAAaD,QAAb,CAAnBH,CAAVE;;MACA,IAAIA,WAAW,CAAf,EAAkB;QAChBD,kBAAkBE,QAAlB,IAA8BD,OAA9BD;MADF,OAEO;QACLA,kBAAkBE,QAAlB,IAA8B,CAA9BF;MAL2D;IAJ1D;EAhC+D;;EA+CtE,MAAMU,cAAc9hB,WAAW8hB,WAA/B;EACA,IAAIf,gBAAJ;;EACA,IAAIe,WAAJ,EAAiB;IACf,KAAKR,QAAL,IAAiBQ,WAAjB,EAA8B;MAC5B,MAAMC,YAAYD,YAAYR,QAAZ,CAAlB;MACAD,UAAUF,WAAWzsC,OAAXysC,CAAmBY,SAAnBZ,CAAVE;;MAEA,IAAIA,YAAY,CAAC,CAAjB,EAAoB;QAClB,IAAI,CAACN,gBAAL,EAAuB;UACrBA,mBAAmBiB,kCAAnBjB;QAFgB;;QAIlB,MAAMkB,oBAAoBnB,iBAAiBiB,SAAjB,EAA4BhB,gBAA5B,CAA1B;;QACA,IAAIkB,sBAAsBF,SAA1B,EAAqC;UACnCV,UAAUF,WAAWzsC,OAAXysC,CAAmBc,iBAAnBd,CAAVE;QANgB;MAJQ;;MAa5B,IAAIA,WAAW,CAAf,EAAkB;QAChBD,kBAAkBE,QAAlB,IAA8BD,OAA9BD;MADF,OAEO;QACLA,kBAAkBE,QAAlB,IAA8B,CAA9BF;MAhB0B;IADf;EAjDqD;;EAsEtE,OAAOA,iBAAP;AA7MF;;AAgNA,SAASvC,iBAAT,CAA2BptC,IAA3B,EAAiC;EAC/B,OAAOA,KAAKiqB,OAALjqB,CAAa,OAAbA,EAAsB,GAAtBA,EAA2BiqB,OAA3BjqB,CAAmC,KAAnCA,EAA0C,EAA1CA,CAAP;AAjNF;;;;;;;;;;;;;ACgBA,MAAMywC,iBAAiB,CACrB,EADqB,EACjB,EADiB,EACb,EADa,EACT,EADS,EACL,EADK,EACD,EADC,EACG,EADH,EACO,EADP,EACW,EADX,EACe,EADf,EACmB,EADnB,EACuB,EADvB,EAC2B,EAD3B,EAC+B,EAD/B,EACmC,EADnC,EAErB,EAFqB,EAEjB,EAFiB,EAEb,EAFa,EAET,EAFS,EAEL,EAFK,EAED,EAFC,EAEG,EAFH,EAEO,EAFP,EAEW,EAFX,EAEe,EAFf,EAEmB,EAFnB,EAEuB,EAFvB,EAE2B,EAF3B,EAE+B,EAF/B,EAEmC,EAFnC,EAEuC,EAFvC,EAE2C,EAF3C,EAGrB,OAHqB,EAGZ,aAHY,EAGG,mBAHH,EAGwB,EAHxB,EAG4B,gBAH5B,EAIrB,gBAJqB,EAIH,gBAJG,EAIe,YAJf,EAI6B,mBAJ7B,EAKrB,oBALqB,EAKC,gBALD,EAKmB,gBALnB,EAKqC,OALrC,EAMrB,QANqB,EAMX,QANW,EAMD,UANC,EAMW,cANX,EAM2B,aAN3B,EAOrB,aAPqB,EAON,eAPM,EAOW,cAPX,EAO2B,cAP3B,EAQrB,aARqB,EAQN,eARM,EAQW,eARX,EAQ4B,cAR5B,EAQ4C,OAR5C,EASrB,WATqB,EASR,eATQ,EASS,qBATT,EASgC,gBAThC,EAUrB,eAVqB,EAUJ,EAVI,EAUA,WAVA,EAUa,WAVb,EAU0B,cAV1B,EAU0C,WAV1C,EAWrB,WAXqB,EAWR,EAXQ,EAWJ,EAXI,EAWA,EAXA,EAWI,WAXJ,EAWiB,EAXjB,EAWqB,EAXrB,EAWyB,WAXzB,EAWsC,WAXtC,EAYrB,WAZqB,EAYR,WAZQ,EAYK,EAZL,EAYS,EAZT,EAYa,WAZb,EAY0B,WAZ1B,EAYuC,WAZvC,EAarB,EAbqB,EAajB,IAbiB,EAaX,IAbW,EAaL,IAbK,EAaC,KAbD,EAaQ,KAbR,EAae,mBAbf,EAaoC,EAbpC,EAcrB,oBAdqB,EAcC,iBAdD,EAcoB,gBAdpB,EAcsC,YAdtC,EAerB,QAfqB,EAeX,QAfW,EAeD,QAfC,EAeS,QAfT,EAemB,QAfnB,EAe6B,QAf7B,EAeuC,QAfvC,EAgBrB,QAhBqB,EAgBX,QAhBW,EAgBD,QAhBC,EAgBS,QAhBT,EAgBmB,QAhBnB,EAgB6B,QAhB7B,EAgBuC,QAhBvC,EAiBrB,QAjBqB,EAiBX,QAjBW,EAiBD,QAjBC,EAiBS,QAjBT,EAiBmB,QAjBnB,EAiB6B,QAjB7B,EAiBuC,QAjBvC,EAkBrB,QAlBqB,EAkBX,QAlBW,EAkBD,QAlBC,EAkBS,QAlBT,EAkBmB,QAlBnB,EAkB6B,eAlB7B,EAmBrB,WAnBqB,EAmBR,QAnBQ,EAmBE,YAnBF,EAmBgB,EAnBhB,EAmBoB,EAnBpB,EAmBwB,EAnBxB,EAmB4B,EAnB5B,EAmBgC,EAnBhC,EAmBoC,EAnBpC,EAmBwC,EAnBxC,EAmB4C,EAnB5C,EAmBgD,EAnBhD,EAoBrB,EApBqB,EAoBjB,EApBiB,EAoBb,EApBa,EAoBT,EApBS,EAoBL,EApBK,EAoBD,EApBC,EAoBG,EApBH,EAoBO,EApBP,EAoBW,EApBX,EAoBe,EApBf,EAoBmB,EApBnB,EAoBuB,EApBvB,EAoB2B,EApB3B,EAoB+B,EApB/B,EAoBmC,EApBnC,EAoBuC,EApBvC,EAoB2C,EApB3C,EAoB+C,EApB/C,EAoBmD,EApBnD,EAqBrB,EArBqB,EAqBjB,EArBiB,EAqBb,EArBa,EAqBT,EArBS,EAqBL,EArBK,EAqBD,EArBC,EAqBG,iBArBH,EAqBsB,cArBtB,EAqBsC,aArBtC,EAsBrB,EAtBqB,EAsBjB,EAtBiB,EAsBb,aAtBa,EAsBE,aAtBF,EAsBiB,eAtBjB,EAsBkC,YAtBlC,EAuBrB,YAvBqB,EAuBP,EAvBO,EAuBH,gBAvBG,EAuBe,EAvBf,EAuBmB,EAvBnB,EAuBuB,aAvBvB,EAuBsC,EAvBtC,EAuB0C,EAvB1C,EAwBrB,YAxBqB,EAwBP,gBAxBO,EAwBW,EAxBX,EAwBe,EAxBf,EAwBmB,aAxBnB,EAwBkC,WAxBlC,EAyBrB,cAzBqB,EAyBL,EAzBK,EAyBD,EAzBC,EAyBG,EAzBH,EAyBO,YAzBP,EAyBqB,SAzBrB,EAyBgC,eAzBhC,EA0BrB,mBA1BqB,EA0BA,WA1BA,EA0Ba,cA1Bb,EA0B6B,aA1B7B,EA2BrB,cA3BqB,EA2BL,UA3BK,EA2BO,WA3BP,EA2BoB,EA3BpB,EA2BwB,EA3BxB,EA2B4B,cA3B5B,EA4BrB,aA5BqB,EA4BN,aA5BM,EA4BS,eA5BT,EA4B0B,cA5B1B,EA6BrB,cA7BqB,EA6BL,aA7BK,EA6BU,eA7BV,EA6B2B,eA7B3B,EA8BrB,cA9BqB,EA8BL,cA9BK,EA8BW,aA9BX,EA8B0B,aA9B1B,EA+BrB,eA/BqB,EA+BJ,cA/BI,EA+BY,cA/BZ,EA+B4B,aA/B5B,EAgCrB,eAhCqB,EAgCJ,eAhCI,EAgCa,cAhCb,EAgC6B,cAhC7B,EAiCrB,gBAjCqB,EAiCH,gBAjCG,EAiCe,eAjCf,EAiCgC,aAjChC,EAkCrB,aAlCqB,EAkCN,kBAlCM,EAkCc,aAlCd,EAkC6B,gBAlC7B,EAmCrB,YAnCqB,EAmCP,SAnCO,EAmCI,eAnCJ,EAmCqB,aAnCrB,EAmCoC,aAnCpC,EAoCrB,kBApCqB,EAoCD,gBApCC,EAoCiB,aApCjB,EAoCgC,aApChC,EAqCrB,kBArCqB,EAqCD,gBArCC,EAqCiB,UArCjB,EAqC6B,aArC7B,EAsCrB,aAtCqB,EAsCN,aAtCM,EAsCS,kBAtCT,EAsC6B,aAtC7B,EAuCrB,gBAvCqB,EAuCH,SAvCG,EAuCQ,aAvCR,EAuCuB,aAvCvB,EAuCsC,aAvCtC,EAwCrB,kBAxCqB,EAwCD,gBAxCC,EAwCiB,aAxCjB,EAwCgC,YAxChC,EAyCrB,gBAzCqB,CAAvB;;AA4CA,MAAMC,oBAAoB,CACxB,EADwB,EACpB,EADoB,EAChB,EADgB,EACZ,EADY,EACR,EADQ,EACJ,EADI,EACA,EADA,EACI,EADJ,EACQ,EADR,EACY,EADZ,EACgB,EADhB,EACoB,EADpB,EACwB,EADxB,EAC4B,EAD5B,EAExB,EAFwB,EAEpB,EAFoB,EAEhB,EAFgB,EAEZ,EAFY,EAER,EAFQ,EAEJ,EAFI,EAEA,EAFA,EAEI,EAFJ,EAEQ,EAFR,EAEY,EAFZ,EAEgB,EAFhB,EAEoB,EAFpB,EAEwB,EAFxB,EAE4B,EAF5B,EAEgC,EAFhC,EAEoC,EAFpC,EAEwC,EAFxC,EAE4C,EAF5C,EAGxB,OAHwB,EAGf,aAHe,EAGA,mBAHA,EAGqB,cAHrB,EAIxB,gBAJwB,EAIN,gBAJM,EAIY,gBAJZ,EAI8B,YAJ9B,EAKxB,mBALwB,EAKH,oBALG,EAKmB,gBALnB,EAMxB,gBANwB,EAMN,OANM,EAMG,QANH,EAMa,QANb,EAMuB,UANvB,EAMmC,cANnC,EAOxB,aAPwB,EAOT,aAPS,EAOM,eAPN,EAOuB,cAPvB,EAQxB,cARwB,EAQR,aARQ,EAQO,eARP,EAQwB,eARxB,EASxB,cATwB,EASR,OATQ,EASC,WATD,EASc,EATd,EASkB,qBATlB,EASyC,EATzC,EAUxB,eAVwB,EAUP,EAVO,EAUH,EAVG,EAUC,EAVD,EAUK,EAVL,EAUS,UAVT,EAUqB,EAVrB,EAUyB,EAVzB,EAU6B,YAV7B,EAWxB,SAXwB,EAWb,eAXa,EAWI,WAXJ,EAWiB,cAXjB,EAWiC,aAXjC,EAYxB,cAZwB,EAYR,UAZQ,EAYI,WAZJ,EAYiB,EAZjB,EAYqB,EAZrB,EAYyB,EAZzB,EAY6B,EAZ7B,EAYiC,EAZjC,EAYqC,EAZrC,EAYyC,IAZzC,EAaxB,IAbwB,EAalB,IAbkB,EAaZ,KAbY,EAaL,KAbK,EAaE,mBAbF,EAauB,EAbvB,EAa2B,oBAb3B,EAcxB,iBAdwB,EAcL,gBAdK,EAca,YAdb,EAc2B,QAd3B,EAcqC,QAdrC,EAexB,QAfwB,EAed,QAfc,EAeJ,QAfI,EAeM,QAfN,EAegB,QAfhB,EAe0B,QAf1B,EAeoC,QAfpC,EAgBxB,QAhBwB,EAgBd,QAhBc,EAgBJ,QAhBI,EAgBM,QAhBN,EAgBgB,QAhBhB,EAgB0B,QAhB1B,EAgBoC,QAhBpC,EAiBxB,QAjBwB,EAiBd,QAjBc,EAiBJ,QAjBI,EAiBM,QAjBN,EAiBgB,QAjBhB,EAiB0B,QAjB1B,EAiBoC,QAjBpC,EAkBxB,QAlBwB,EAkBd,QAlBc,EAkBJ,QAlBI,EAkBM,eAlBN,EAkBuB,WAlBvB,EAkBoC,QAlBpC,EAmBxB,YAnBwB,EAmBV,EAnBU,EAmBN,EAnBM,EAmBF,WAnBE,EAmBW,cAnBX,EAmB2B,EAnB3B,EAmB+B,EAnB/B,EAmBmC,EAnBnC,EAmBuC,EAnBvC,EAoBxB,aApBwB,EAoBT,aApBS,EAoBM,kBApBN,EAoB0B,gBApB1B,EAqBxB,aArBwB,EAqBT,YArBS,EAqBK,eArBL,EAqBsB,aArBtB,EAqBqC,aArBrC,EAsBxB,kBAtBwB,EAsBJ,gBAtBI,EAsBc,aAtBd,EAsB6B,aAtB7B,EAuBxB,kBAvBwB,EAuBJ,gBAvBI,EAuBc,aAvBd,EAuB6B,aAvB7B,EAwBxB,aAxBwB,EAwBT,kBAxBS,EAwBW,gBAxBX,EAwB6B,aAxB7B,EAyBxB,aAzBwB,EAyBT,aAzBS,EAyBM,kBAzBN,EAyB0B,gBAzB1B,EAyB4C,EAzB5C,EA0BxB,eA1BwB,EA0BP,cA1BO,EA0BS,eA1BT,EA0B0B,aA1B1B,EA2BxB,eA3BwB,EA2BP,eA3BO,EA2BU,aA3BV,EA2ByB,EA3BzB,EA2B6B,cA3B7B,EA4BxB,aA5BwB,EA4BT,EA5BS,EA4BL,eA5BK,EA4BY,EA5BZ,EA4BgB,YA5BhB,EA4B8B,WA5B9B,EA6BxB,cA7BwB,EA6BR,EA7BQ,EA6BJ,eA7BI,EA6Ba,gBA7Bb,EA6B+B,aA7B/B,EA6B8C,EA7B9C,EA8BxB,gBA9BwB,EA8BN,EA9BM,EA8BF,EA9BE,EA8BE,YA9BF,EA8BgB,EA9BhB,EA8BoB,cA9BpB,EA8BoC,cA9BpC,EA+BxB,aA/BwB,EA+BT,SA/BS,EA+BE,aA/BF,EA+BiB,mBA/BjB,EAgCxB,aAhCwB,EAgCT,aAhCS,EAgCM,EAhCN,EAgCU,EAhCV,EAgCc,EAhCd,EAgCkB,EAhClB,EAgCsB,EAhCtB,EAgC0B,EAhC1B,EAgC8B,cAhC9B,EAgC8C,EAhC9C,EAiCxB,EAjCwB,EAiCpB,EAjCoB,EAiChB,EAjCgB,EAiCZ,EAjCY,EAiCR,SAjCQ,EAiCG,YAjCH,EAiCiB,gBAjCjB,EAiCmC,EAjCnC,EAiCuC,EAjCvC,EAiC2C,EAjC3C,EAiC+C,EAjC/C,EAkCxB,iBAlCwB,EAkCL,EAlCK,EAkCD,gBAlCC,EAkCiB,EAlCjB,EAkCqB,aAlCrB,EAkCoC,aAlCpC,EAmCxB,eAnCwB,EAmCP,cAnCO,EAmCS,cAnCT,EAmCyB,aAnCzB,EAoCxB,eApCwB,EAoCP,cApCO,EAoCS,cApCT,EAoCyB,EApCzB,EAoC6B,WApC7B,EAqCxB,WArCwB,EAqCX,WArCW,EAqCE,EArCF,EAqCM,EArCN,EAqCU,WArCV,EAqCuB,WArCvB,EAqCoC,WArCpC,EAsCxB,EAtCwB,EAsCpB,EAtCoB,EAsChB,EAtCgB,EAsCZ,EAtCY,EAsCR,EAtCQ,EAsCJ,WAtCI,EAsCS,aAtCT,EAsCwB,YAtCxB,EAuCxB,aAvCwB,EAuCT,WAvCS,EAuCI,WAvCJ,EAuCiB,WAvCjB,EAuC8B,eAvC9B,EAwCxB,gBAxCwB,EAwCN,gBAxCM,EAwCY,WAxCZ,EAwCyB,EAxCzB,EAwC6B,EAxC7B,EAwCiC,EAxCjC,EAwCqC,EAxCrC,CAA1B;AA2CA,MAAMC,mBAAmB,CACvB,EADuB,EACnB,EADmB,EACf,EADe,EACX,EADW,EACP,EADO,EACH,EADG,EACC,EADD,EACK,EADL,EACS,EADT,EACa,EADb,EACiB,EADjB,EACqB,EADrB,EACyB,EADzB,EAC6B,EAD7B,EACiC,EADjC,EAEvB,EAFuB,EAEnB,EAFmB,EAEf,EAFe,EAEX,EAFW,EAEP,EAFO,EAEH,EAFG,EAEC,EAFD,EAEK,EAFL,EAES,EAFT,EAEa,EAFb,EAEiB,EAFjB,EAEqB,EAFrB,EAEyB,EAFzB,EAE6B,EAF7B,EAEiC,EAFjC,EAEqC,EAFrC,EAEyC,EAFzC,EAGvB,OAHuB,EAGd,QAHc,EAGJ,UAHI,EAGQ,YAHR,EAGsB,QAHtB,EAGgC,SAHhC,EAIvB,WAJuB,EAIV,aAJU,EAIK,WAJL,EAIkB,YAJlB,EAIgC,UAJhC,EAI4C,MAJ5C,EAKvB,OALuB,EAKd,QALc,EAKJ,QALI,EAKM,OALN,EAKe,MALf,EAKuB,KALvB,EAK8B,KAL9B,EAKqC,OALrC,EAMvB,MANuB,EAMf,MANe,EAMP,KANO,EAMA,OANA,EAMS,OANT,EAMkB,MANlB,EAM0B,OAN1B,EAMmC,WANnC,EAOvB,MAPuB,EAOf,OAPe,EAON,SAPM,EAOK,UAPL,EAOiB,IAPjB,EAOuB,GAPvB,EAO4B,GAP5B,EAOiC,GAPjC,EAOsC,GAPtC,EAO2C,GAP3C,EAOgD,GAPhD,EAQvB,GARuB,EAQlB,GARkB,EAQb,GARa,EAQR,GARQ,EAQH,GARG,EAQE,GARF,EAQO,GARP,EAQY,GARZ,EAQiB,GARjB,EAQsB,GARtB,EAQ2B,GAR3B,EAQgC,GARhC,EAQqC,GARrC,EAQ0C,GAR1C,EAQ+C,GAR/C,EASvB,GATuB,EASlB,GATkB,EASb,GATa,EASR,GATQ,EASH,GATG,EASE,aATF,EASiB,WATjB,EAS8B,cAT9B,EAUvB,aAVuB,EAUR,YAVQ,EAUM,OAVN,EAUe,GAVf,EAUoB,GAVpB,EAUyB,GAVzB,EAU8B,GAV9B,EAUmC,GAVnC,EAUwC,GAVxC,EAU6C,GAV7C,EAWvB,GAXuB,EAWlB,GAXkB,EAWb,GAXa,EAWR,GAXQ,EAWH,GAXG,EAWE,GAXF,EAWO,GAXP,EAWY,GAXZ,EAWiB,GAXjB,EAWsB,GAXtB,EAW2B,GAX3B,EAWgC,GAXhC,EAWqC,GAXrC,EAW0C,GAX1C,EAW+C,GAX/C,EAYvB,GAZuB,EAYlB,GAZkB,EAYb,GAZa,EAYR,GAZQ,EAYH,WAZG,EAYU,KAZV,EAYiB,YAZjB,EAY+B,YAZ/B,EAY6C,EAZ7C,EAavB,WAbuB,EAaV,OAbU,EAaD,UAbC,EAaW,QAbX,EAaqB,QAbrB,EAa+B,WAb/B,EAcvB,WAduB,EAcV,QAdU,EAcA,QAdA,EAcU,aAdV,EAcyB,WAdzB,EAcsC,QAdtC,EAevB,OAfuB,EAed,UAfc,EAeF,QAfE,EAeQ,QAfR,EAekB,aAflB,EAeiC,WAfjC,EAgBvB,QAhBuB,EAgBb,QAhBa,EAgBH,aAhBG,EAgBY,WAhBZ,EAgByB,QAhBzB,EAgBmC,QAhBnC,EAiBvB,QAjBuB,EAiBb,aAjBa,EAiBE,WAjBF,EAiBe,QAjBf,EAiByB,QAjBzB,EAiBmC,QAjBnC,EAkBvB,aAlBuB,EAkBR,WAlBQ,EAkBK,QAlBL,EAkBe,QAlBf,EAkByB,MAlBzB,EAkBiC,UAlBjC,EAmBvB,SAnBuB,EAmBZ,QAnBY,EAmBF,WAnBE,EAmBW,YAnBX,EAmByB,YAnBzB,EAmBuC,WAnBvC,EAoBvB,WApBuB,EAoBV,OApBU,EAoBD,UApBC,EAoBW,UApBX,EAoBuB,IApBvB,EAoB6B,QApB7B,EAoBuC,UApBvC,EAqBvB,WArBuB,EAqBV,WArBU,EAqBG,cArBH,EAqBmB,KArBnB,EAqB0B,IArB1B,EAqBgC,aArBhC,EAsBvB,WAtBuB,EAsBV,SAtBU,EAsBC,IAtBD,EAsBO,UAtBP,EAsBmB,aAtBnB,EAsBkC,cAtBlC,EAuBvB,OAvBuB,EAuBd,IAvBc,EAuBR,QAvBQ,EAuBE,cAvBF,EAuBkB,YAvBlB,EAuBgC,YAvBhC,EAwBvB,SAxBuB,EAwBZ,QAxBY,EAwBF,aAxBE,EAwBa,OAxBb,EAwBsB,eAxBtB,EAyBvB,gBAzBuB,EAyBL,UAzBK,EAyBO,OAzBP,EAyBgB,QAzBhB,EAyB0B,QAzB1B,EAyBoC,QAzBpC,EAyB8C,IAzB9C,EA0BvB,IA1BuB,EA0BjB,QA1BiB,EA0BP,QA1BO,EA0BG,cA1BH,EA0BmB,eA1BnB,EA0BoC,WA1BpC,EA2BvB,YA3BuB,EA2BT,QA3BS,EA2BC,SA3BD,EA2BY,WA3BZ,EA2ByB,WA3BzB,EA2BsC,UA3BtC,EA4BvB,UA5BuB,EA4BX,eA5BW,EA4BM,gBA5BN,EA4BwB,IA5BxB,EA4B8B,IA5B9B,EA4BoC,WA5BpC,EA6BvB,gBA7BuB,EA6BL,gBA7BK,EA6Ba,cA7Bb,EA6B6B,aA7B7B,EA8BvB,aA9BuB,EA8BR,aA9BQ,EA8BO,QA9BP,EA8BiB,WA9BjB,EA8B8B,QA9B9B,EA8BwC,QA9BxC,EA+BvB,aA/BuB,EA+BR,WA/BQ,EA+BK,QA/BL,EA+Be,QA/Bf,EA+ByB,aA/BzB,EA+BwC,OA/BxC,EAgCvB,QAhCuB,EAgCb,QAhCa,EAgCH,aAhCG,EAgCY,QAhCZ,EAgCsB,UAhCtB,EAgCkC,YAhClC,EAiCvB,OAjCuB,EAiCd,QAjCc,EAiCJ,OAjCI,EAiCK,WAjCL,EAiCkB,MAjClB,EAiC0B,SAjC1B,EAiCqC,cAjCrC,EAkCvB,QAlCuB,EAkCb,OAlCa,CAAzB;;AAqCA,MAAMP,mBAAmB,CACvB,EADuB,EACnB,EADmB,EACf,EADe,EACX,EADW,EACP,EADO,EACH,EADG,EACC,EADD,EACK,EADL,EACS,EADT,EACa,EADb,EACiB,EADjB,EACqB,EADrB,EACyB,EADzB,EAC6B,EAD7B,EACiC,EADjC,EAEvB,EAFuB,EAEnB,EAFmB,EAEf,EAFe,EAEX,EAFW,EAEP,EAFO,EAEH,EAFG,EAEC,EAFD,EAEK,EAFL,EAES,EAFT,EAEa,EAFb,EAEiB,EAFjB,EAEqB,EAFrB,EAEyB,EAFzB,EAE6B,EAF7B,EAEiC,EAFjC,EAEqC,EAFrC,EAEyC,EAFzC,EAGvB,OAHuB,EAGd,QAHc,EAGJ,UAHI,EAGQ,YAHR,EAGsB,QAHtB,EAGgC,SAHhC,EAIvB,WAJuB,EAIV,YAJU,EAII,WAJJ,EAIiB,YAJjB,EAI+B,UAJ/B,EAI2C,MAJ3C,EAKvB,OALuB,EAKd,QALc,EAKJ,QALI,EAKM,OALN,EAKe,MALf,EAKuB,KALvB,EAK8B,KAL9B,EAKqC,OALrC,EAMvB,MANuB,EAMf,MANe,EAMP,KANO,EAMA,OANA,EAMS,OANT,EAMkB,MANlB,EAM0B,OAN1B,EAMmC,WANnC,EAOvB,MAPuB,EAOf,OAPe,EAON,SAPM,EAOK,UAPL,EAOiB,IAPjB,EAOuB,GAPvB,EAO4B,GAP5B,EAOiC,GAPjC,EAOsC,GAPtC,EAO2C,GAP3C,EAOgD,GAPhD,EAQvB,GARuB,EAQlB,GARkB,EAQb,GARa,EAQR,GARQ,EAQH,GARG,EAQE,GARF,EAQO,GARP,EAQY,GARZ,EAQiB,GARjB,EAQsB,GARtB,EAQ2B,GAR3B,EAQgC,GARhC,EAQqC,GARrC,EAQ0C,GAR1C,EAQ+C,GAR/C,EASvB,GATuB,EASlB,GATkB,EASb,GATa,EASR,GATQ,EASH,GATG,EASE,aATF,EASiB,WATjB,EAS8B,cAT9B,EAUvB,aAVuB,EAUR,YAVQ,EAUM,WAVN,EAUmB,GAVnB,EAUwB,GAVxB,EAU6B,GAV7B,EAUkC,GAVlC,EAUuC,GAVvC,EAU4C,GAV5C,EAWvB,GAXuB,EAWlB,GAXkB,EAWb,GAXa,EAWR,GAXQ,EAWH,GAXG,EAWE,GAXF,EAWO,GAXP,EAWY,GAXZ,EAWiB,GAXjB,EAWsB,GAXtB,EAW2B,GAX3B,EAWgC,GAXhC,EAWqC,GAXrC,EAW0C,GAX1C,EAW+C,GAX/C,EAYvB,GAZuB,EAYlB,GAZkB,EAYb,GAZa,EAYR,GAZQ,EAYH,GAZG,EAYE,WAZF,EAYe,KAZf,EAYsB,YAZtB,EAYoC,YAZpC,EAavB,EAbuB,EAanB,EAbmB,EAaf,EAbe,EAaX,EAbW,EAaP,EAbO,EAaH,EAbG,EAaC,EAbD,EAaK,EAbL,EAaS,EAbT,EAaa,EAbb,EAaiB,EAbjB,EAaqB,EAbrB,EAayB,EAbzB,EAa6B,EAb7B,EAaiC,EAbjC,EAaqC,EAbrC,EAayC,EAbzC,EAa6C,EAb7C,EAaiD,EAbjD,EAcvB,EAduB,EAcnB,EAdmB,EAcf,EAde,EAcX,EAdW,EAcP,EAdO,EAcH,EAdG,EAcC,EAdD,EAcK,EAdL,EAcS,EAdT,EAca,EAdb,EAciB,EAdjB,EAcqB,EAdrB,EAcyB,EAdzB,EAc6B,EAd7B,EAciC,EAdjC,EAcqC,YAdrC,EAevB,MAfuB,EAef,UAfe,EAeH,UAfG,EAeS,KAfT,EAegB,QAfhB,EAe0B,SAf1B,EAeqC,UAfrC,EAgBvB,aAhBuB,EAgBR,cAhBQ,EAgBQ,eAhBR,EAgByB,eAhBzB,EAiBvB,gBAjBuB,EAiBL,IAjBK,EAiBC,IAjBD,EAiBO,EAjBP,EAiBW,QAjBX,EAiBqB,QAjBrB,EAiB+B,WAjB/B,EAkBvB,gBAlBuB,EAkBL,EAlBK,EAkBD,WAlBC,EAkBY,QAlBZ,EAkBsB,gBAlBtB,EAmBvB,cAnBuB,EAmBP,eAnBO,EAmBU,gBAnBV,EAmB4B,UAnB5B,EAoBvB,aApBuB,EAoBR,EApBQ,EAoBJ,cApBI,EAoBY,EApBZ,EAoBgB,OApBhB,EAoByB,OApBzB,EAoBkC,YApBlC,EAqBvB,OArBuB,EAqBd,QArBc,EAqBJ,OArBI,EAqBK,WArBL,EAqBkB,UArBlB,EAqB8B,EArB9B,EAqBkC,MArBlC,EAqB0C,SArB1C,EAsBvB,EAtBuB,EAsBnB,cAtBmB,EAsBH,QAtBG,EAsBO,OAtBP,EAsBgB,QAtBhB,EAsB0B,EAtB1B,EAsB8B,EAtB9B,EAsBkC,EAtBlC,EAsBsC,EAtBtC,EAsB0C,EAtB1C,EAsB8C,EAtB9C,EAuBvB,EAvBuB,EAuBnB,EAvBmB,EAuBf,EAvBe,EAuBX,EAvBW,EAuBP,EAvBO,EAuBH,EAvBG,EAuBC,EAvBD,EAuBK,EAvBL,EAuBS,EAvBT,EAuBa,EAvBb,EAuBiB,IAvBjB,EAuBuB,EAvBvB,EAuB2B,aAvB3B,EAuB0C,EAvB1C,EAuB8C,EAvB9C,EAwBvB,EAxBuB,EAwBnB,EAxBmB,EAwBf,QAxBe,EAwBL,QAxBK,EAwBK,IAxBL,EAwBW,cAxBX,EAwB2B,EAxB3B,EAwB+B,EAxB/B,EAwBmC,EAxBnC,EAwBuC,EAxBvC,EAwB2C,EAxB3C,EAwB+C,IAxB/C,EAyBvB,EAzBuB,EAyBnB,EAzBmB,EAyBf,EAzBe,EAyBX,UAzBW,EAyBC,EAzBD,EAyBK,EAzBL,EAyBS,QAzBT,EAyBmB,QAzBnB,EAyB6B,IAzB7B,EAyBmC,YAzBnC,EAyBiD,EAzBjD,EA0BvB,EA1BuB,EA0BnB,EA1BmB,EA0Bf,EA1Be,CAAzB;;AA6BA,MAAMQ,kBAAkB,CACtB,EADsB,EAClB,EADkB,EACd,EADc,EACV,EADU,EACN,EADM,EACF,EADE,EACE,EADF,EACM,EADN,EACU,EADV,EACc,EADd,EACkB,EADlB,EACsB,EADtB,EAC0B,EAD1B,EAC8B,EAD9B,EACkC,EADlC,EAEtB,EAFsB,EAElB,EAFkB,EAEd,EAFc,EAEV,EAFU,EAEN,EAFM,EAEF,EAFE,EAEE,EAFF,EAEM,EAFN,EAEU,EAFV,EAEc,EAFd,EAEkB,EAFlB,EAEsB,EAFtB,EAE0B,EAF1B,EAE8B,EAF9B,EAEkC,EAFlC,EAEsC,EAFtC,EAE0C,EAF1C,EAGtB,OAHsB,EAGb,QAHa,EAGH,UAHG,EAGS,YAHT,EAGuB,QAHvB,EAGiC,SAHjC,EAItB,WAJsB,EAIT,aAJS,EAIM,WAJN,EAImB,YAJnB,EAIiC,UAJjC,EAI6C,MAJ7C,EAKtB,OALsB,EAKb,QALa,EAKH,QALG,EAKO,OALP,EAKgB,MALhB,EAKwB,KALxB,EAK+B,KAL/B,EAKsC,OALtC,EAMtB,MANsB,EAMd,MANc,EAMN,KANM,EAMC,OAND,EAMU,OANV,EAMmB,MANnB,EAM2B,OAN3B,EAMoC,WANpC,EAOtB,MAPsB,EAOd,OAPc,EAOL,SAPK,EAOM,UAPN,EAOkB,IAPlB,EAOwB,GAPxB,EAO6B,GAP7B,EAOkC,GAPlC,EAOuC,GAPvC,EAO4C,GAP5C,EAOiD,GAPjD,EAQtB,GARsB,EAQjB,GARiB,EAQZ,GARY,EAQP,GARO,EAQF,GARE,EAQG,GARH,EAQQ,GARR,EAQa,GARb,EAQkB,GARlB,EAQuB,GARvB,EAQ4B,GAR5B,EAQiC,GARjC,EAQsC,GARtC,EAQ2C,GAR3C,EAQgD,GARhD,EAStB,GATsB,EASjB,GATiB,EASZ,GATY,EASP,GATO,EASF,GATE,EASG,aATH,EASkB,WATlB,EAS+B,cAT/B,EAUtB,aAVsB,EAUP,YAVO,EAUO,OAVP,EAUgB,GAVhB,EAUqB,GAVrB,EAU0B,GAV1B,EAU+B,GAV/B,EAUoC,GAVpC,EAUyC,GAVzC,EAU8C,GAV9C,EAWtB,GAXsB,EAWjB,GAXiB,EAWZ,GAXY,EAWP,GAXO,EAWF,GAXE,EAWG,GAXH,EAWQ,GAXR,EAWa,GAXb,EAWkB,GAXlB,EAWuB,GAXvB,EAW4B,GAX5B,EAWiC,GAXjC,EAWsC,GAXtC,EAW2C,GAX3C,EAWgD,GAXhD,EAYtB,GAZsB,EAYjB,GAZiB,EAYZ,GAZY,EAYP,GAZO,EAYF,WAZE,EAYW,KAZX,EAYkB,YAZlB,EAYgC,YAZhC,EAatB,QAbsB,EAaZ,MAbY,EAaJ,QAbI,EAaM,gBAbN,EAawB,QAbxB,EAakC,cAblC,EActB,UAdsB,EAcV,QAdU,EAcA,WAdA,EAca,YAdb,EAc2B,aAd3B,EAc0C,QAd1C,EAetB,eAfsB,EAeL,IAfK,EAeC,QAfD,EAeW,QAfX,EAeqB,QAfrB,EAe+B,QAf/B,EAeyC,WAfzC,EAgBtB,YAhBsB,EAgBR,cAhBQ,EAgBQ,eAhBR,EAgByB,QAhBzB,EAgBmC,QAhBnC,EAiBtB,QAjBsB,EAiBZ,OAjBY,EAiBH,WAjBG,EAiBU,QAjBV,EAiBoB,gBAjBpB,EAiBsC,IAjBtC,EAiB4C,QAjB5C,EAkBtB,QAlBsB,EAkBZ,WAlBY,EAkBC,OAlBD,EAkBU,YAlBV,EAkBwB,MAlBxB,EAkBgC,UAlBhC,EAmBtB,UAnBsB,EAmBV,KAnBU,EAmBH,WAnBG,EAmBU,SAnBV,EAmBqB,UAnBrB,EAmBiC,WAnBjC,EAoBtB,aApBsB,EAoBP,eApBO,EAoBU,YApBV,EAoBwB,QApBxB,EAoBkC,YApBlC,EAqBtB,QArBsB,EAqBZ,QArBY,EAqBF,WArBE,EAqBW,aArBX,EAqB0B,eArB1B,EAqB2C,OArB3C,EAsBtB,IAtBsB,EAsBhB,WAtBgB,EAsBH,gBAtBG,EAsBe,SAtBf,EAsB0B,aAtB1B,EAuBtB,cAvBsB,EAuBN,gBAvBM,EAuBY,YAvBZ,EAuB0B,SAvB1B,EAuBqC,eAvBrC,EAwBtB,cAxBsB,EAwBN,QAxBM,EAwBI,QAxBJ,EAwBc,aAxBd,EAwB6B,QAxB7B,EAwBuC,WAxBvC,EAyBtB,OAzBsB,EAyBb,IAzBa,EAyBP,UAzBO,EAyBK,QAzBL,EAyBe,QAzBf,EAyByB,aAzBzB,EAyBwC,WAzBxC,EA0BtB,QA1BsB,EA0BZ,QA1BY,EA0BF,aA1BE,EA0Ba,WA1Bb,EA0B0B,KA1B1B,EA0BiC,QA1BjC,EA0B2C,QA1B3C,EA2BtB,QA3BsB,EA2BZ,aA3BY,EA2BG,QA3BH,EA2Ba,WA3Bb,EA2B0B,UA3B1B,EA2BsC,QA3BtC,EA4BtB,QA5BsB,EA4BZ,QA5BY,EA4BF,aA5BE,EA4Ba,WA5Bb,EA4B0B,QA5B1B,EA4BoC,OA5BpC,EA6BtB,YA7BsB,EA6BR,QA7BQ,EA6BE,QA7BF,EA6BY,aA7BZ,EA6B2B,QA7B3B,EA6BqC,WA7BrC,EA8BtB,OA9BsB,EA8Bb,IA9Ba,EA8BP,UA9BO,EA8BK,QA9BL,EA8Be,QA9Bf,EA8ByB,aA9BzB,EA8BwC,WA9BxC,EA+BtB,QA/BsB,EA+BZ,QA/BY,EA+BF,aA/BE,EA+Ba,WA/Bb,EA+B0B,KA/B1B,EA+BiC,QA/BjC,EA+B2C,QA/B3C,EAgCtB,QAhCsB,EAgCZ,aAhCY,EAgCG,QAhCH,EAgCa,WAhCb,EAgC0B,QAhC1B,EAgCoC,QAhCpC,EAiCtB,QAjCsB,EAiCZ,QAjCY,EAiCF,aAjCE,EAiCa,WAjCb,EAiC0B,QAjC1B,EAiCoC,OAjCpC,EAkCtB,WAlCsB,CAAxB;;AAqCA,MAAMC,oBAAoB,CACxB,EADwB,EACpB,EADoB,EAChB,EADgB,EACZ,EADY,EACR,EADQ,EACJ,EADI,EACA,EADA,EACI,EADJ,EACQ,EADR,EACY,EADZ,EACgB,EADhB,EACoB,EADpB,EACwB,EADxB,EAC4B,EAD5B,EAExB,EAFwB,EAEpB,EAFoB,EAEhB,EAFgB,EAEZ,EAFY,EAER,EAFQ,EAEJ,EAFI,EAEA,EAFA,EAEI,EAFJ,EAEQ,EAFR,EAEY,EAFZ,EAEgB,EAFhB,EAEoB,EAFpB,EAEwB,EAFxB,EAE4B,EAF5B,EAEgC,EAFhC,EAEoC,EAFpC,EAEwC,EAFxC,EAE4C,EAF5C,EAGxB,OAHwB,EAGf,QAHe,EAGL,WAHK,EAGQ,YAHR,EAGsB,aAHtB,EAGqC,SAHrC,EAIxB,WAJwB,EAIX,UAJW,EAIC,WAJD,EAIc,YAJd,EAI4B,cAJ5B,EAI4C,MAJ5C,EAKxB,OALwB,EAKf,OALe,EAKN,QALM,EAKI,OALJ,EAKa,MALb,EAKqB,KALrB,EAK4B,KAL5B,EAKmC,OALnC,EAK4C,MAL5C,EAMxB,MANwB,EAMhB,KANgB,EAMT,OANS,EAMA,OANA,EAMS,MANT,EAMiB,OANjB,EAM0B,WAN1B,EAMuC,MANvC,EAOxB,OAPwB,EAOf,SAPe,EAOJ,UAPI,EAOQ,WAPR,EAOqB,OAPrB,EAO8B,MAP9B,EAOsC,KAPtC,EAQxB,OARwB,EAQf,SARe,EAQJ,KARI,EAQG,OARH,EAQY,KARZ,EAQmB,MARnB,EAQ2B,QAR3B,EAQqC,OARrC,EASxB,QATwB,EASd,IATc,EASR,IATQ,EASF,SATE,EASS,IATT,EASe,OATf,EASwB,KATxB,EAS+B,OAT/B,EASwC,KATxC,EAUxB,SAVwB,EAUb,QAVa,EAUH,OAVG,EAUM,IAVN,EAUY,KAVZ,EAUmB,MAVnB,EAU2B,aAV3B,EAWxB,WAXwB,EAWX,cAXW,EAWK,eAXL,EAWsB,YAXtB,EAWoC,WAXpC,EAYxB,OAZwB,EAYf,MAZe,EAYP,KAZO,EAYA,OAZA,EAYS,SAZT,EAYoB,KAZpB,EAY2B,OAZ3B,EAYoC,KAZpC,EAY2C,MAZ3C,EAaxB,MAbwB,EAahB,OAbgB,EAaP,QAbO,EAaG,IAbH,EAaS,IAbT,EAae,SAbf,EAa0B,IAb1B,EAagC,OAbhC,EAayC,KAbzC,EAcxB,OAdwB,EAcf,KAde,EAcR,SAdQ,EAcG,QAdH,EAca,OAdb,EAcsB,IAdtB,EAc4B,KAd5B,EAcmC,MAdnC,EAexB,WAfwB,EAeX,KAfW,EAeJ,YAfI,EAeU,SAfV,EAeqB,EAfrB,EAeyB,EAfzB,EAe6B,EAf7B,EAeiC,EAfjC,EAeqC,EAfrC,EAeyC,EAfzC,EAe6C,EAf7C,EAgBxB,EAhBwB,EAgBpB,EAhBoB,EAgBhB,EAhBgB,EAgBZ,EAhBY,EAgBR,EAhBQ,EAgBJ,EAhBI,EAgBA,EAhBA,EAgBI,EAhBJ,EAgBQ,EAhBR,EAgBY,EAhBZ,EAgBgB,EAhBhB,EAgBoB,EAhBpB,EAgBwB,EAhBxB,EAgB4B,EAhB5B,EAgBgC,EAhBhC,EAgBoC,EAhBpC,EAgBwC,EAhBxC,EAgB4C,EAhB5C,EAgBgD,EAhBhD,EAiBxB,EAjBwB,EAiBpB,EAjBoB,EAiBhB,EAjBgB,EAiBZ,EAjBY,EAiBR,EAjBQ,EAiBJ,EAjBI,EAiBA,EAjBA,EAiBI,MAjBJ,EAiBY,UAjBZ,EAiBwB,QAjBxB,EAiBkC,WAjBlC,EAkBxB,UAlBwB,EAkBZ,UAlBY,EAkBA,QAlBA,EAkBU,MAlBV,EAkBkB,SAlBlB,EAkB6B,OAlB7B,EAkBsC,OAlBtC,EAmBxB,WAnBwB,EAmBX,WAnBW,EAmBE,SAnBF,EAmBa,YAnBb,EAmB2B,WAnB3B,EAmBwC,QAnBxC,EAoBxB,WApBwB,EAoBX,QApBW,EAoBD,cApBC,EAoBe,UApBf,EAoB2B,cApB3B,EAqBxB,aArBwB,EAqBT,QArBS,EAqBC,QArBD,EAqBW,UArBX,EAqBuB,aArBvB,EAsBxB,aAtBwB,EAsBT,UAtBS,EAsBG,aAtBH,EAsBkB,cAtBlB,EAsBkC,gBAtBlC,EAuBxB,OAvBwB,EAuBf,UAvBe,EAuBH,UAvBG,EAuBS,aAvBT,EAuBwB,gBAvBxB,EAwBxB,YAxBwB,EAwBV,UAxBU,EAwBE,cAxBF,EAwBkB,OAxBlB,EAwB2B,gBAxB3B,EAyBxB,gBAzBwB,EAyBN,WAzBM,EAyBO,cAzBP,EAyBuB,cAzBvB,EAyBuC,SAzBvC,EA0BxB,YA1BwB,EA0BV,OA1BU,EA0BD,UA1BC,EA0BW,eA1BX,EA0B4B,gBA1B5B,EA2BxB,gBA3BwB,EA2BN,SA3BM,EA2BK,SA3BL,EA2BgB,SA3BhB,EA2B2B,YA3B3B,EA4BxB,YA5BwB,EA4BV,WA5BU,EA4BG,cA5BH,EA4BmB,cA5BnB,EA4BmC,YA5BnC,EA6BxB,eA7BwB,EA6BP,cA7BO,EA6BS,SA7BT,EA6BoB,WA7BpB,EA6BiC,cA7BjC,EA8BxB,eA9BwB,EA8BP,eA9BO,EA8BU,WA9BV,EA8BuB,aA9BvB,EA+BxB,aA/BwB,EA+BT,aA/BS,EA+BM,eA/BN,EA+BuB,eA/BvB,EAgCxB,eAhCwB,EAgCP,aAhCO,EAgCQ,cAhCR,EAgCwB,aAhCxB,EAgCuC,SAhCvC,EAiCxB,EAjCwB,EAiCpB,YAjCoB,EAiCN,UAjCM,EAiCM,YAjCN,EAiCoB,YAjCpB,EAiCkC,YAjClC,EAkCxB,cAlCwB,EAkCR,cAlCQ,EAkCQ,cAlCR,EAkCwB,gBAlCxB,EAmCxB,gBAnCwB,EAmCN,gBAnCM,EAmCY,cAnCZ,EAmC4B,eAnC5B,EAoCxB,cApCwB,EAoCR,EApCQ,CAA1B;;AAuCA,MAAMC,uBAAuB,CAC3B,EAD2B,EACvB,EADuB,EACnB,EADmB,EACf,EADe,EACX,EADW,EACP,EADO,EACH,EADG,EACC,EADD,EACK,EADL,EACS,EADT,EACa,EADb,EACiB,EADjB,EACqB,EADrB,EACyB,EADzB,EAE3B,EAF2B,EAEvB,EAFuB,EAEnB,EAFmB,EAEf,EAFe,EAEX,EAFW,EAEP,EAFO,EAEH,EAFG,EAEC,EAFD,EAEK,EAFL,EAES,EAFT,EAEa,EAFb,EAEiB,EAFjB,EAEqB,EAFrB,EAEyB,EAFzB,EAE6B,EAF7B,EAEiC,EAFjC,EAEqC,EAFrC,EAEyC,EAFzC,EAG3B,OAH2B,EAGlB,IAHkB,EAGZ,IAHY,EAGN,MAHM,EAGE,IAHF,EAGQ,IAHR,EAGc,IAHd,EAGoB,MAHpB,EAG4B,MAH5B,EAGoC,MAHpC,EAI3B,KAJ2B,EAIpB,KAJoB,EAIb,KAJa,EAIN,KAJM,EAIC,KAJD,EAIQ,KAJR,EAIe,MAJf,EAIuB,KAJvB,EAI8B,KAJ9B,EAIqC,KAJrC,EAK3B,KAL2B,EAKpB,KALoB,EAKb,KALa,EAKN,KALM,EAKC,KALD,EAKQ,KALR,EAKe,KALf,EAKsB,KALtB,EAK6B,KAL7B,EAKoC,IALpC,EAK0C,IAL1C,EAM3B,IAN2B,EAMrB,IANqB,EAMf,KANe,EAMR,KANQ,EAMD,KANC,EAMM,KANN,EAMa,KANb,EAMoB,KANpB,EAM2B,KAN3B,EAMkC,KANlC,EAMyC,KANzC,EAO3B,KAP2B,EAOpB,KAPoB,EAOb,KAPa,EAON,KAPM,EAOC,KAPD,EAOQ,KAPR,EAOe,KAPf,EAOsB,KAPtB,EAO6B,KAP7B,EAOoC,KAPpC,EAQ3B,KAR2B,EAQpB,KARoB,EAQb,KARa,EAQN,KARM,EAQC,KARD,EAQQ,KARR,EAQe,KARf,EAQsB,KARtB,EAQ6B,KAR7B,EAQoC,KARpC,EAS3B,KAT2B,EASpB,KAToB,EASb,KATa,EASN,KATM,EASC,KATD,EASQ,KATR,EASe,KATf,EASsB,KATtB,EAS6B,KAT7B,EASoC,KATpC,EAU3B,KAV2B,EAUpB,KAVoB,EAUb,KAVa,EAUN,KAVM,EAUC,KAVD,EAUQ,KAVR,EAUe,KAVf,EAUsB,KAVtB,EAU6B,MAV7B,EAUqC,KAVrC,EAW3B,MAX2B,EAWnB,KAXmB,EAWZ,KAXY,EAWL,KAXK,EAWE,KAXF,EAWS,KAXT,EAWgB,KAXhB,EAWuB,KAXvB,EAW8B,KAX9B,EAWqC,KAXrC,EAY3B,KAZ2B,EAYpB,KAZoB,EAYb,MAZa,EAYL,EAZK,EAYD,KAZC,EAYM,KAZN,EAYa,KAZb,EAYoB,KAZpB,EAY2B,KAZ3B,EAYkC,KAZlC,EAYyC,MAZzC,EAa3B,KAb2B,EAapB,MAboB,EAaZ,KAbY,EAaL,KAbK,EAaE,KAbF,EAaS,KAbT,EAagB,KAbhB,EAauB,EAbvB,EAa2B,EAb3B,EAa+B,EAb/B,EAamC,EAbnC,EAauC,EAbvC,EAa2C,EAb3C,EAc3B,EAd2B,EAcvB,EAduB,EAcnB,EAdmB,EAcf,EAde,EAcX,EAdW,EAcP,EAdO,EAcH,EAdG,EAcC,EAdD,EAcK,EAdL,EAcS,EAdT,EAca,EAdb,EAciB,EAdjB,EAcqB,EAdrB,EAcyB,MAdzB,EAciC,MAdjC,EAcyC,MAdzC,EAe3B,MAf2B,EAenB,MAfmB,EAeX,MAfW,EAeH,MAfG,EAeK,MAfL,EAea,MAfb,EAeqB,MAfrB,EAe6B,MAf7B,EAeqC,MAfrC,EAgB3B,MAhB2B,EAgBnB,MAhBmB,EAgBX,MAhBW,EAgBH,MAhBG,EAgBK,MAhBL,EAgBa,MAhBb,EAgBqB,MAhBrB,EAgB6B,MAhB7B,EAgBqC,MAhBrC,EAiB3B,MAjB2B,EAiBnB,MAjBmB,EAiBX,MAjBW,EAiBH,MAjBG,EAiBK,MAjBL,EAiBa,MAjBb,EAiBqB,MAjBrB,EAiB6B,MAjB7B,EAiBqC,MAjBrC,EAkB3B,MAlB2B,EAkBnB,MAlBmB,EAkBX,MAlBW,EAkBH,MAlBG,EAkBK,MAlBL,EAkBa,MAlBb,EAkBqB,MAlBrB,EAkB6B,MAlB7B,EAkBqC,MAlBrC,EAmB3B,MAnB2B,EAmBnB,MAnBmB,EAmBX,MAnBW,EAmBH,MAnBG,EAmBK,MAnBL,EAmBa,MAnBb,EAmBqB,MAnBrB,EAmB6B,MAnB7B,EAmBqC,MAnBrC,EAoB3B,MApB2B,EAoBnB,MApBmB,EAoBX,MApBW,EAoBH,MApBG,EAoBK,MApBL,EAoBa,MApBb,EAoBqB,MApBrB,EAoB6B,MApB7B,EAoBqC,MApBrC,EAqB3B,MArB2B,EAqBnB,MArBmB,EAqBX,MArBW,EAqBH,MArBG,EAqBK,MArBL,EAqBa,MArBb,EAqBqB,MArBrB,EAqB6B,MArB7B,EAqBqC,MArBrC,EAsB3B,MAtB2B,EAsBnB,MAtBmB,EAsBX,MAtBW,EAsBH,MAtBG,EAsBK,MAtBL,EAsBa,MAtBb,EAsBqB,MAtBrB,EAsB6B,MAtB7B,EAsBqC,MAtBrC,EAuB3B,MAvB2B,EAuBnB,MAvBmB,EAuBX,MAvBW,EAuBH,MAvBG,EAuBK,EAvBL,EAuBS,MAvBT,EAuBiB,MAvBjB,EAuByB,MAvBzB,EAuBiC,MAvBjC,EAuByC,MAvBzC,EAwB3B,MAxB2B,EAwBnB,MAxBmB,EAwBX,MAxBW,EAwBH,MAxBG,EAwBK,MAxBL,EAwBa,MAxBb,EAwBqB,MAxBrB,EAwB6B,MAxB7B,EAwBqC,MAxBrC,EAwB6C,EAxB7C,CAA7B;;;AA0BA,SAASX,WAAT,CAAqBY,YAArB,EAAmC;EACjC,QAAQA,YAAR;IACE,KAAK,iBAAL;MACE,OAAOH,eAAP;;IACF,KAAK,kBAAL;MACE,OAAOR,gBAAP;;IACF,KAAK,kBAAL;MACE,OAAOO,gBAAP;;IACF,KAAK,mBAAL;MACE,OAAOE,iBAAP;;IACF,KAAK,sBAAL;MACE,OAAOC,oBAAP;;IACF,KAAK,gBAAL;MACE,OAAOL,cAAP;;IACF,KAAK,mBAAL;MACE,OAAOC,iBAAP;;IACF;MACE,OAAO,IAAP;EAhBJ;AAhRF;;;;;;;;;;;;ACAA;AAkBA,MAAMH,gBAAA,GAAmBva,0EAAA,CAA2B,YAAY;AAAA,CAE9D,OAAO;AAAA,EACL,GADK;AAAA,EACA,MADA;AAAA,EAEL,IAFK;AAAA,EAEC,MAFD;AAAA,EAGL,SAHK;AAAA,EAGM,MAHN;AAAA,EAIL,UAJK;AAAA,EAIO,MAJP;AAAA,EAKL,SALK;AAAA,EAKM,MALN;AAAA,EAML,QANK;AAAA,EAMK,MANL;AAAA,EAOL,aAPK;AAAA,EAOU,MAPV;AAAA,EAQL,QARK;AAAA,EAQK,MARL;AAAA,EASL,aATK;AAAA,EASU,MATV;AAAA,EAUL,gBAVK;AAAA,EAUa,MAVb;AAAA,EAWL,gBAXK;AAAA,EAWa,MAXb;AAAA,EAYL,aAZK;AAAA,EAYU,MAZV;AAAA,EAaL,iBAbK;AAAA,EAac,MAbd;AAAA,EAcL,aAdK;AAAA,EAcU,MAdV;AAAA,EAeL,QAfK;AAAA,EAeK,MAfL;AAAA,EAgBL,SAhBK;AAAA,EAgBM,MAhBN;AAAA,EAiBL,aAjBK;AAAA,EAiBU,MAjBV;AAAA,EAkBL,kBAlBK;AAAA,EAkBe,MAlBf;AAAA,EAmBL,qBAnBK;AAAA,EAmBkB,MAnBlB;AAAA,EAoBL,kBApBK;AAAA,EAoBe,MApBf;AAAA,EAqBL,sBArBK;AAAA,EAqBmB,MArBnB;AAAA,EAsBL,kBAtBK;AAAA,EAsBe,MAtBf;AAAA,EAuBL,kBAvBK;AAAA,EAuBe,MAvBf;AAAA,EAwBL,OAxBK;AAAA,EAwBI,MAxBJ;AAAA,EAyBL,YAzBK;AAAA,EAyBS,MAzBT;AAAA,EA0BL,WA1BK;AAAA,EA0BQ,MA1BR;AAAA,EA2BL,WA3BK;AAAA,EA2BQ,MA3BR;AAAA,EA4BL,WA5BK;AAAA,EA4BQ,MA5BR;AAAA,EA6BL,mBA7BK;AAAA,EA6BgB,MA7BhB;AAAA,EA8BL,iBA9BK;AAAA,EA8Bc,MA9Bd;AAAA,EA+BL,gBA/BK;AAAA,EA+Ba,MA/Bb;AAAA,EAgCL,WAhCK;AAAA,EAgCQ,MAhCR;AAAA,EAiCL,YAjCK;AAAA,EAiCS,MAjCT;AAAA,EAkCL,QAlCK;AAAA,EAkCK,MAlCL;AAAA,EAmCL,aAnCK;AAAA,EAmCU,MAnCV;AAAA,EAoCL,YApCK;AAAA,EAoCS,MApCT;AAAA,EAqCL,aArCK;AAAA,EAqCU,MArCV;AAAA,EAsCL,gBAtCK;AAAA,EAsCa,MAtCb;AAAA,EAuCL,OAvCK;AAAA,EAuCI,MAvCJ;AAAA,EAwCL,YAxCK;AAAA,EAwCS,MAxCT;AAAA,EAyCL,SAzCK;AAAA,EAyCM,MAzCN;AAAA,EA0CL,YA1CK;AAAA,EA0CS,MA1CT;AAAA,EA2CL,SA3CK;AAAA,EA2CM,MA3CN;AAAA,EA4CL,OA5CK;AAAA,EA4CI,MA5CJ;AAAA,EA6CL,YA7CK;AAAA,EA6CS,MA7CT;AAAA,EA8CL,YA9CK;AAAA,EA8CS,MA9CT;AAAA,EA+CL,YA/CK;AAAA,EA+CS,MA/CT;AAAA,EAgDL,QAhDK;AAAA,EAgDK,MAhDL;AAAA,EAiDL,QAjDK;AAAA,EAiDK,MAjDL;AAAA,EAkDL,aAlDK;AAAA,EAkDU,MAlDV;AAAA,EAmDL,aAnDK;AAAA,EAmDU,MAnDV;AAAA,EAoDL,GApDK;AAAA,EAoDA,MApDA;AAAA,EAqDL,SArDK;AAAA,EAqDM,MArDN;AAAA,EAsDL,YAtDK;AAAA,EAsDS,MAtDT;AAAA,EAuDL,WAvDK;AAAA,EAuDQ,MAvDR;AAAA,EAwDL,YAxDK;AAAA,EAwDS,MAxDT;AAAA,EAyDL,aAzDK;AAAA,EAyDU,MAzDV;AAAA,EA0DL,MA1DK;AAAA,EA0DG,MA1DH;AAAA,EA2DL,OA3DK;AAAA,EA2DI,MA3DJ;AAAA,EA4DL,YA5DK;AAAA,EA4DS,MA5DT;AAAA,EA6DL,YA7DK;AAAA,EA6DS,MA7DT;AAAA,EA8DL,YA9DK;AAAA,EA8DS,MA9DT;AAAA,EA+DL,QA/DK;AAAA,EA+DK,MA/DL;AAAA,EAgEL,SAhEK;AAAA,EAgEM,MAhEN;AAAA,EAiEL,GAjEK;AAAA,EAiEA,MAjEA;AAAA,EAkEL,YAlEK;AAAA,EAkES,MAlET;AAAA,EAmEL,QAnEK;AAAA,EAmEK,MAnEL;AAAA,EAoEL,OApEK;AAAA,EAoEI,MApEJ;AAAA,EAqEL,YArEK;AAAA,EAqES,MArET;AAAA,EAsEL,QAtEK;AAAA,EAsEK,MAtEL;AAAA,EAuEL,UAvEK;AAAA,EAuEO,MAvEP;AAAA,EAwEL,eAxEK;AAAA,EAwEY,MAxEZ;AAAA,EAyEL,eAzEK;AAAA,EAyEY,MAzEZ;AAAA,EA0EL,SA1EK;AAAA,EA0EM,MA1EN;AAAA,EA2EL,aA3EK;AAAA,EA2EU,MA3EV;AAAA,EA4EL,MA5EK;AAAA,EA4EG,MA5EH;AAAA,EA6EL,YA7EK;AAAA,EA6ES,MA7ET;AAAA,EA8EL,cA9EK;AAAA,EA8EW,MA9EX;AAAA,EA+EL,aA/EK;AAAA,EA+EU,MA/EV;AAAA,EAgFL,sBAhFK;AAAA,EAgFmB,MAhFnB;AAAA,EAiFL,aAjFK;AAAA,EAiFU,MAjFV;AAAA,EAkFL,+BAlFK;AAAA,EAkF4B,MAlF5B;AAAA,EAmFL,sBAnFK;AAAA,EAmFmB,MAnFnB;AAAA,EAoFL,qBApFK;AAAA,EAoFkB,MApFlB;AAAA,EAqFL,cArFK;AAAA,EAqFW,MArFX;AAAA,EAsFL,uBAtFK;AAAA,EAsFoB,MAtFpB;AAAA,EAuFL,2BAvFK;AAAA,EAuFwB,MAvFxB;AAAA,EAwFL,KAxFK;AAAA,EAwFE,MAxFF;AAAA,EAyFL,OAzFK;AAAA,EAyFI,MAzFJ;AAAA,EA0FL,iBA1FK;AAAA,EA0Fc,MA1Fd;AAAA,EA2FL,YA3FK;AAAA,EA2FS,MA3FT;AAAA,EA4FL,YA5FK;AAAA,EA4FS,MA5FT;AAAA,EA6FL,QA7FK;AAAA,EA6FK,MA7FL;AAAA,EA8FL,GA9FK;AAAA,EA8FA,MA9FA;AAAA,EA+FL,IA/FK;AAAA,EA+FC,MA/FD;AAAA,EAgGL,SAhGK;AAAA,EAgGM,MAhGN;AAAA,EAiGL,YAjGK;AAAA,EAiGS,MAjGT;AAAA,EAkGL,UAlGK;AAAA,EAkGO,MAlGP;AAAA,EAmGL,QAnGK;AAAA,EAmGK,MAnGL;AAAA,EAoGL,UApGK;AAAA,EAoGO,MApGP;AAAA,EAqGL,SArGK;AAAA,EAqGM,MArGN;AAAA,EAsGL,kBAtGK;AAAA,EAsGe,MAtGf;AAAA,EAuGL,QAvGK;AAAA,EAuGK,MAvGL;AAAA,EAwGL,YAxGK;AAAA,EAwGS,MAxGT;AAAA,EAyGL,WAzGK;AAAA,EAyGQ,MAzGR;AAAA,EA0GL,YA1GK;AAAA,EA0GS,MA1GT;AAAA,EA2GL,WA3GK;AAAA,EA2GQ,MA3GR;AAAA,EA4GL,OA5GK;AAAA,EA4GI,MA5GJ;AAAA,EA6GL,YA7GK;AAAA,EA6GS,MA7GT;AAAA,EA8GL,OA9GK;AAAA,EA8GI,MA9GJ;AAAA,EA+GL,UA/GK;AAAA,EA+GO,MA/GP;AAAA,EAgHL,eAhHK;AAAA,EAgHY,MAhHZ;AAAA,EAiHL,eAjHK;AAAA,EAiHY,MAjHZ;AAAA,EAkHL,eAlHK;AAAA,EAkHY,MAlHZ;AAAA,EAmHL,cAnHK;AAAA,EAmHW,MAnHX;AAAA,EAoHL,aApHK;AAAA,EAoHU,MApHV;AAAA,EAqHL,YArHK;AAAA,EAqHS,MArHT;AAAA,EAsHL,YAtHK;AAAA,EAsHS,MAtHT;AAAA,EAuHL,gBAvHK;AAAA,EAuHa,MAvHb;AAAA,EAwHL,QAxHK;AAAA,EAwHK,MAxHL;AAAA,EAyHL,QAzHK;AAAA,EAyHK,MAzHL;AAAA,EA0HL,SA1HK;AAAA,EA0HM,MA1HN;AAAA,EA2HL,IA3HK;AAAA,EA2HC,MA3HD;AAAA,EA4HL,SA5HK;AAAA,EA4HM,MA5HN;AAAA,EA6HL,sBA7HK;AAAA,EA6HmB,MA7HnB;AAAA,EA8HL,aA9HK;AAAA,EA8HU,MA9HV;AAAA,EA+HL,cA/HK;AAAA,EA+HW,MA/HX;AAAA,EAgIL,GAhIK;AAAA,EAgIA,MAhIA;AAAA,EAiIL,QAjIK;AAAA,EAiIK,MAjIL;AAAA,EAkIL,aAlIK;AAAA,EAkIU,MAlIV;AAAA,EAmIL,QAnIK;AAAA,EAmIK,MAnIL;AAAA,EAoIL,QApIK;AAAA,EAoIK,MApIL;AAAA,EAqIL,eArIK;AAAA,EAqIY,MArIZ;AAAA,EAsIL,aAtIK;AAAA,EAsIU,MAtIV;AAAA,EAuIL,SAvIK;AAAA,EAuIM,MAvIN;AAAA,EAwIL,aAxIK;AAAA,EAwIU,MAxIV;AAAA,EAyIL,kBAzIK;AAAA,EAyIe,MAzIf;AAAA,EA0IL,kBA1IK;AAAA,EA0Ie,MA1If;AAAA,EA2IL,qBA3IK;AAAA,EA2IkB,MA3IlB;AAAA,EA4IL,kBA5IK;AAAA,EA4Ie,MA5If;AAAA,EA6IL,sBA7IK;AAAA,EA6ImB,MA7InB;AAAA,EA8IL,kBA9IK;AAAA,EA8Ie,MA9If;AAAA,EA+IL,kBA/IK;AAAA,EA+Ie,MA/If;AAAA,EAgJL,WAhJK;AAAA,EAgJQ,MAhJR;AAAA,EAiJL,WAjJK;AAAA,EAiJQ,MAjJR;AAAA,EAkJL,WAlJK;AAAA,EAkJQ,MAlJR;AAAA,EAmJL,gBAnJK;AAAA,EAmJa,MAnJb;AAAA,EAoJL,MApJK;AAAA,EAoJG,MApJH;AAAA,EAqJL,YArJK;AAAA,EAqJS,MArJT;AAAA,EAsJL,WAtJK;AAAA,EAsJQ,MAtJR;AAAA,EAuJL,YAvJK;AAAA,EAuJS,MAvJT;AAAA,EAwJL,QAxJK;AAAA,EAwJK,MAxJL;AAAA,EAyJL,aAzJK;AAAA,EAyJU,MAzJV;AAAA,EA0JL,YA1JK;AAAA,EA0JS,MA1JT;AAAA,EA2JL,YA3JK;AAAA,EA2JS,MA3JT;AAAA,EA4JL,YA5JK;AAAA,EA4JS,MA5JT;AAAA,EA6JL,gBA7JK;AAAA,EA6Ja,MA7Jb;AAAA,EA8JL,mBA9JK;AAAA,EA8JgB,MA9JhB;AAAA,EA+JL,YA/JK;AAAA,EA+JS,MA/JT;AAAA,EAgKL,aAhKK;AAAA,EAgKU,MAhKV;AAAA,EAiKL,SAjKK;AAAA,EAiKM,MAjKN;AAAA,EAkKL,cAlKK;AAAA,EAkKW,MAlKX;AAAA,EAmKL,cAnKK;AAAA,EAmKW,MAnKX;AAAA,EAoKL,YApKK;AAAA,EAoKS,MApKT;AAAA,EAqKL,YArKK;AAAA,EAqKS,MArKT;AAAA,EAsKL,YAtKK;AAAA,EAsKS,MAtKT;AAAA,EAuKL,qBAvKK;AAAA,EAuKkB,MAvKlB;AAAA,EAwKL,KAxKK;AAAA,EAwKE,MAxKF;AAAA,EAyKL,eAzKK;AAAA,EAyKY,MAzKZ;AAAA,EA0KL,gBA1KK;AAAA,EA0Ka,MA1Kb;AAAA,EA2KL,SA3KK;AAAA,EA2KM,MA3KN;AAAA,EA4KL,OA5KK;AAAA,EA4KI,MA5KJ;AAAA,EA6KL,SA7KK;AAAA,EA6KM,MA7KN;AAAA,EA8KL,cA9KK;AAAA,EA8KW,MA9KX;AAAA,EA+KL,YA/KK;AAAA,EA+KS,MA/KT;AAAA,EAgLL,WAhLK;AAAA,EAgLQ,MAhLR;AAAA,EAiLL,mBAjLK;AAAA,EAiLgB,MAjLhB;AAAA,EAkLL,YAlLK;AAAA,EAkLS,MAlLT;AAAA,EAmLL,qBAnLK;AAAA,EAmLkB,MAnLlB;AAAA,EAoLL,KApLK;AAAA,EAoLE,MApLF;AAAA,EAqLL,QArLK;AAAA,EAqLK,MArLL;AAAA,EAsLL,KAtLK;AAAA,EAsLE,MAtLF;AAAA,EAuLL,YAvLK;AAAA,EAuLS,MAvLT;AAAA,EAwLL,UAxLK;AAAA,EAwLO,MAxLP;AAAA,EAyLL,KAzLK;AAAA,EAyLE,MAzLF;AAAA,EA0LL,UA1LK;AAAA,EA0LO,MA1LP;AAAA,EA2LL,QA3LK;AAAA,EA2LK,MA3LL;AAAA,EA4LL,aA5LK;AAAA,EA4LU,MA5LV;AAAA,EA6LL,MA7LK;AAAA,EA6LG,MA7LH;AAAA,EA8LL,KA9LK;AAAA,EA8LE,MA9LF;AAAA,EA+LL,UA/LK;AAAA,EA+LO,MA/LP;AAAA,EAgML,aAhMK;AAAA,EAgMU,MAhMV;AAAA,EAiML,GAjMK;AAAA,EAiMA,MAjMA;AAAA,EAkML,SAlMK;AAAA,EAkMM,MAlMN;AAAA,EAmML,YAnMK;AAAA,EAmMS,MAnMT;AAAA,EAoML,aApMK;AAAA,EAoMU,MApMV;AAAA,EAqML,WArMK;AAAA,EAqMQ,MArMR;AAAA,EAsML,OAtMK;AAAA,EAsMI,MAtMJ;AAAA,EAuML,cAvMK;AAAA,EAuMW,MAvMX;AAAA,EAwML,WAxMK;AAAA,EAwMQ,MAxMR;AAAA,EAyML,YAzMK;AAAA,EAyMS,MAzMT;AAAA,EA0ML,WA1MK;AAAA,EA0MQ,MA1MR;AAAA,EA2ML,QA3MK;AAAA,EA2MK,MA3ML;AAAA,EA4ML,GA5MK;AAAA,EA4MA,MA5MA;AAAA,EA6ML,UA7MK;AAAA,EA6MO,MA7MP;AAAA,EA8ML,QA9MK;AAAA,EA8MK,MA9ML;AAAA,EA+ML,OA/MK;AAAA,EA+MI,MA/MJ;AAAA,EAgNL,cAhNK;AAAA,EAgNW,MAhNX;AAAA,EAiNL,cAjNK;AAAA,EAiNW,MAjNX;AAAA,EAkNL,QAlNK;AAAA,EAkNK,MAlNL;AAAA,EAmNL,QAnNK;AAAA,EAmNK,MAnNL;AAAA,EAoNL,UApNK;AAAA,EAoNO,MApNP;AAAA,EAqNL,SArNK;AAAA,EAqNM,MArNN;AAAA,EAsNL,aAtNK;AAAA,EAsNU,MAtNV;AAAA,EAuNL,cAvNK;AAAA,EAuNW,MAvNX;AAAA,EAwNL,MAxNK;AAAA,EAwNG,MAxNH;AAAA,EAyNL,YAzNK;AAAA,EAyNS,MAzNT;AAAA,EA0NL,YA1NK;AAAA,EA0NS,MA1NT;AAAA,EA2NL,cA3NK;AAAA,EA2NW,MA3NX;AAAA,EA4NL,uBA5NK;AAAA,EA4NoB,MA5NpB;AAAA,EA6NL,mBA7NK;AAAA,EA6NgB,MA7NhB;AAAA,EA8NL,mBA9NK;AAAA,EA8NgB,MA9NhB;AAAA,EA+NL,OA/NK;AAAA,EA+NI,MA/NJ;AAAA,EAgOL,aAhOK;AAAA,EAgOU,MAhOV;AAAA,EAiOL,aAjOK;AAAA,EAiOU,MAjOV;AAAA,EAkOL,SAlOK;AAAA,EAkOM,MAlON;AAAA,EAmOL,YAnOK;AAAA,EAmOS,MAnOT;AAAA,EAoOL,OApOK;AAAA,EAoOI,MApOJ;AAAA,EAqOL,YArOK;AAAA,EAqOS,MArOT;AAAA,EAsOL,QAtOK;AAAA,EAsOK,MAtOL;AAAA,EAuOL,YAvOK;AAAA,EAuOS,MAvOT;AAAA,EAwOL,SAxOK;AAAA,EAwOM,MAxON;AAAA,EAyOL,GAzOK;AAAA,EAyOA,MAzOA;AAAA,EA0OL,QA1OK;AAAA,EA0OK,MA1OL;AAAA,EA2OL,QA3OK;AAAA,EA2OK,MA3OL;AAAA,EA4OL,QA5OK;AAAA,EA4OK,MA5OL;AAAA,EA6OL,QA7OK;AAAA,EA6OK,MA7OL;AAAA,EA8OL,UA9OK;AAAA,EA8OO,MA9OP;AAAA,EA+OL,qBA/OK;AAAA,EA+OkB,MA/OlB;AAAA,EAgPL,qBAhPK;AAAA,EAgPkB,MAhPlB;AAAA,EAiPL,kBAjPK;AAAA,EAiPe,MAjPf;AAAA,EAkPL,MAlPK;AAAA,EAkPG,MAlPH;AAAA,EAmPL,aAnPK;AAAA,EAmPU,MAnPV;AAAA,EAoPL,UApPK;AAAA,EAoPO,MApPP;AAAA,EAqPL,SArPK;AAAA,EAqPM,MArPN;AAAA,EAsPL,aAtPK;AAAA,EAsPU,MAtPV;AAAA,EAuPL,WAvPK;AAAA,EAuPQ,MAvPR;AAAA,EAwPL,YAxPK;AAAA,EAwPS,MAxPT;AAAA,EAyPL,WAzPK;AAAA,EAyPQ,MAzPR;AAAA,EA0PL,YA1PK;AAAA,EA0PS,MA1PT;AAAA,EA2PL,YA3PK;AAAA,EA2PS,MA3PT;AAAA,EA4PL,YA5PK;AAAA,EA4PS,MA5PT;AAAA,EA6PL,QA7PK;AAAA,EA6PK,MA7PL;AAAA,EA8PL,cA9PK;AAAA,EA8PW,MA9PX;AAAA,EA+PL,mBA/PK;AAAA,EA+PgB,MA/PhB;AAAA,EAgQL,UAhQK;AAAA,EAgQO,MAhQP;AAAA,EAiQL,GAjQK;AAAA,EAiQA,MAjQA;AAAA,EAkQL,YAlQK;AAAA,EAkQS,MAlQT;AAAA,EAmQL,IAnQK;AAAA,EAmQC,MAnQD;AAAA,EAoQL,YApQK;AAAA,EAoQS,MApQT;AAAA,EAqQL,QArQK;AAAA,EAqQK,MArQL;AAAA,EAsQL,aAtQK;AAAA,EAsQU,MAtQV;AAAA,EAuQL,QAvQK;AAAA,EAuQK,MAvQL;AAAA,EAwQL,QAxQK;AAAA,EAwQK,MAxQL;AAAA,EAyQL,SAzQK;AAAA,EAyQM,MAzQN;AAAA,EA0QL,aA1QK;AAAA,EA0QU,MA1QV;AAAA,EA2QL,kBA3QK;AAAA,EA2Qe,MA3Qf;AAAA,EA4QL,WA5QK;AAAA,EA4QQ,MA5QR;AAAA,EA6QL,WA7QK;AAAA,EA6QQ,MA7QR;AAAA,EA8QL,WA9QK;AAAA,EA8QQ,MA9QR;AAAA,EA+QL,gBA/QK;AAAA,EA+Qa,MA/Qb;AAAA,EAgRL,mBAhRK;AAAA,EAgRgB,MAhRhB;AAAA,EAiRL,gBAjRK;AAAA,EAiRa,MAjRb;AAAA,EAkRL,MAlRK;AAAA,EAkRG,MAlRH;AAAA,EAmRL,YAnRK;AAAA,EAmRS,MAnRT;AAAA,EAoRL,WApRK;AAAA,EAoRQ,MApRR;AAAA,EAqRL,iBArRK;AAAA,EAqRc,MArRd;AAAA,EAsRL,YAtRK;AAAA,EAsRS,MAtRT;AAAA,EAuRL,UAvRK;AAAA,EAuRO,MAvRP;AAAA,EAwRL,QAxRK;AAAA,EAwRK,MAxRL;AAAA,EAyRL,aAzRK;AAAA,EAyRU,MAzRV;AAAA,EA0RL,YA1RK;AAAA,EA0RS,MA1RT;AAAA,EA2RL,YA3RK;AAAA,EA2RS,MA3RT;AAAA,EA4RL,gBA5RK;AAAA,EA4Ra,MA5Rb;AAAA,EA6RL,iBA7RK;AAAA,EA6Rc,MA7Rd;AAAA,EA8RL,SA9RK;AAAA,EA8RM,MA9RN;AAAA,EA+RL,iBA/RK;AAAA,EA+Rc,MA/Rd;AAAA,EAgSL,YAhSK;AAAA,EAgSS,MAhST;AAAA,EAiSL,aAjSK;AAAA,EAiSU,MAjSV;AAAA,EAkSL,YAlSK;AAAA,EAkSS,MAlST;AAAA,EAmSL,SAnSK;AAAA,EAmSM,MAnSN;AAAA,EAoSL,MApSK;AAAA,EAoSG,MApSH;AAAA,EAqSL,aArSK;AAAA,EAqSU,MArSV;AAAA,EAsSL,cAtSK;AAAA,EAsSW,MAtSX;AAAA,EAuSL,WAvSK;AAAA,EAuSQ,MAvSR;AAAA,EAwSL,QAxSK;AAAA,EAwSK,MAxSL;AAAA,EAySL,SAzSK;AAAA,EAySM,MAzSN;AAAA,EA0SL,QA1SK;AAAA,EA0SK,MA1SL;AAAA,EA2SL,aA3SK;AAAA,EA2SU,MA3SV;AAAA,EA4SL,iBA5SK;AAAA,EA4Sc,MA5Sd;AAAA,EA6SL,yBA7SK;AAAA,EA6SsB,MA7StB;AAAA,EA8SL,GA9SK;AAAA,EA8SA,MA9SA;AAAA,EA+SL,YA/SK;AAAA,EA+SS,MA/ST;AAAA,EAgTL,SAhTK;AAAA,EAgTM,MAhTN;AAAA,EAiTL,aAjTK;AAAA,EAiTU,MAjTV;AAAA,EAkTL,YAlTK;AAAA,EAkTS,MAlTT;AAAA,EAmTL,cAnTK;AAAA,EAmTW,MAnTX;AAAA,EAoTL,YApTK;AAAA,EAoTS,MApTT;AAAA,EAqTL,QArTK;AAAA,EAqTK,MArTL;AAAA,EAsTL,GAtTK;AAAA,EAsTA,MAtTA;AAAA,EAuTL,UAvTK;AAAA,EAuTO,MAvTP;AAAA,EAwTL,UAxTK;AAAA,EAwTO,MAxTP;AAAA,EAyTL,mBAzTK;AAAA,EAyTgB,MAzThB;AAAA,EA0TL,QA1TK;AAAA,EA0TK,MA1TL;AAAA,EA2TL,YA3TK;AAAA,EA2TS,MA3TT;AAAA,EA4TL,qBA5TK;AAAA,EA4TkB,MA5TlB;AAAA,EA6TL,gBA7TK;AAAA,EA6Ta,MA7Tb;AAAA,EA8TL,OA9TK;AAAA,EA8TI,MA9TJ;AAAA,EA+TL,kBA/TK;AAAA,EA+Te,MA/Tf;AAAA,EAgUL,0BAhUK;AAAA,EAgUuB,MAhUvB;AAAA,EAiUL,QAjUK;AAAA,EAiUK,MAjUL;AAAA,EAkUL,UAlUK;AAAA,EAkUO,MAlUP;AAAA,EAmUL,SAnUK;AAAA,EAmUM,MAnUN;AAAA,EAoUL,cApUK;AAAA,EAoUW,MApUX;AAAA,EAqUL,WArUK;AAAA,EAqUQ,MArUR;AAAA,EAsUL,aAtUK;AAAA,EAsUU,MAtUV;AAAA,EAuUL,aAvUK;AAAA,EAuUU,MAvUV;AAAA,EAwUL,aAxUK;AAAA,EAwUU,MAxUV;AAAA,EAyUL,YAzUK;AAAA,EAyUS,MAzUT;AAAA,EA0UL,OA1UK;AAAA,EA0UI,MA1UJ;AAAA,EA2UL,aA3UK;AAAA,EA2UU,MA3UV;AAAA,EA4UL,YA5UK;AAAA,EA4US,MA5UT;AAAA,EA6UL,YA7UK;AAAA,EA6US,MA7UT;AAAA,EA8UL,eA9UK;AAAA,EA8UY,MA9UZ;AAAA,EA+UL,YA/UK;AAAA,EA+US,MA/UT;AAAA,EAgVL,aAhVK;AAAA,EAgVU,MAhVV;AAAA,EAiVL,QAjVK;AAAA,EAiVK,MAjVL;AAAA,EAkVL,GAlVK;AAAA,EAkVA,MAlVA;AAAA,EAmVL,IAnVK;AAAA,EAmVC,MAnVD;AAAA,EAoVL,IApVK;AAAA,EAoVC,MApVD;AAAA,EAqVL,QArVK;AAAA,EAqVK,MArVL;AAAA,EAsVL,QAtVK;AAAA,EAsVK,MAtVL;AAAA,EAuVL,QAvVK;AAAA,EAuVK,MAvVL;AAAA,EAwVL,UAxVK;AAAA,EAwVO,MAxVP;AAAA,EAyVL,SAzVK;AAAA,EAyVM,MAzVN;AAAA,EA0VL,kBA1VK;AAAA,EA0Ve,MA1Vf;AAAA,EA2VL,cA3VK;AAAA,EA2VW,MA3VX;AAAA,EA4VL,MA5VK;AAAA,EA4VG,MA5VH;AAAA,EA6VL,YA7VK;AAAA,EA6VS,MA7VT;AAAA,EA8VL,WA9VK;AAAA,EA8VQ,MA9VR;AAAA,EA+VL,iBA/VK;AAAA,EA+Vc,MA/Vd;AAAA,EAgWL,cAhWK;AAAA,EAgWW,MAhWX;AAAA,EAiWL,IAjWK;AAAA,EAiWC,MAjWD;AAAA,EAkWL,aAlWK;AAAA,EAkWU,MAlWV;AAAA,EAmWL,YAnWK;AAAA,EAmWS,MAnWT;AAAA,EAoWL,YApWK;AAAA,EAoWS,MApWT;AAAA,EAqWL,QArWK;AAAA,EAqWK,MArWL;AAAA,EAsWL,aAtWK;AAAA,EAsWU,MAtWV;AAAA,EAuWL,QAvWK;AAAA,EAuWK,MAvWL;AAAA,EAwWL,GAxWK;AAAA,EAwWA,MAxWA;AAAA,EAyWL,UAzWK;AAAA,EAyWO,MAzWP;AAAA,EA0WL,QA1WK;AAAA,EA0WK,MA1WL;AAAA,EA2WL,aA3WK;AAAA,EA2WU,MA3WV;AAAA,EA4WL,QA5WK;AAAA,EA4WK,MA5WL;AAAA,EA6WL,SA7WK;AAAA,EA6WM,MA7WN;AAAA,EA8WL,YA9WK;AAAA,EA8WS,MA9WT;AAAA,EA+WL,WA/WK;AAAA,EA+WQ,MA/WR;AAAA,EAgXL,aAhXK;AAAA,EAgXU,MAhXV;AAAA,EAiXL,YAjXK;AAAA,EAiXS,MAjXT;AAAA,EAkXL,QAlXK;AAAA,EAkXK,MAlXL;AAAA,EAmXL,SAnXK;AAAA,EAmXM,MAnXN;AAAA,EAoXL,IApXK;AAAA,EAoXC,MApXD;AAAA,EAqXL,GArXK;AAAA,EAqXA,MArXA;AAAA,EAsXL,IAtXK;AAAA,EAsXC,MAtXD;AAAA,EAuXL,QAvXK;AAAA,EAuXK,MAvXL;AAAA,EAwXL,QAxXK;AAAA,EAwXK,MAxXL;AAAA,EAyXL,UAzXK;AAAA,EAyXO,MAzXP;AAAA,EA0XL,SA1XK;AAAA,EA0XM,MA1XN;AAAA,EA2XL,kBA3XK;AAAA,EA2Xe,MA3Xf;AAAA,EA4XL,cA5XK;AAAA,EA4XW,MA5XX;AAAA,EA6XL,YA7XK;AAAA,EA6XS,MA7XT;AAAA,EA8XL,WA9XK;AAAA,EA8XQ,MA9XR;AAAA,EA+XL,WA/XK;AAAA,EA+XQ,MA/XR;AAAA,EAgYL,WAhYK;AAAA,EAgYQ,MAhYR;AAAA,EAiYL,IAjYK;AAAA,EAiYC,MAjYD;AAAA,EAkYL,aAlYK;AAAA,EAkYU,MAlYV;AAAA,EAmYL,YAnYK;AAAA,EAmYS,MAnYT;AAAA,EAoYL,YApYK;AAAA,EAoYS,MApYT;AAAA,EAqYL,aArYK;AAAA,EAqYU,MArYV;AAAA,EAsYL,QAtYK;AAAA,EAsYK,MAtYL;AAAA,EAuYL,QAvYK;AAAA,EAuYK,MAvYL;AAAA,EAwYL,aAxYK;AAAA,EAwYU,MAxYV;AAAA,EAyYL,IAzYK;AAAA,EAyYC,MAzYD;AAAA,EA0YL,GA1YK;AAAA,EA0YA,MA1YA;AAAA,EA2YL,IA3YK;AAAA,EA2YC,MA3YD;AAAA,EA4YL,SA5YK;AAAA,EA4YM,MA5YN;AAAA,EA6YL,QA7YK;AAAA,EA6YK,MA7YL;AAAA,EA8YL,aA9YK;AAAA,EA8YU,MA9YV;AAAA,EA+YL,iBA/YK;AAAA,EA+Yc,MA/Yd;AAAA,EAgZL,yBAhZK;AAAA,EAgZsB,MAhZtB;AAAA,EAiZL,QAjZK;AAAA,EAiZK,MAjZL;AAAA,EAkZL,QAlZK;AAAA,EAkZK,MAlZL;AAAA,EAmZL,gBAnZK;AAAA,EAmZa,MAnZb;AAAA,EAoZL,SApZK;AAAA,EAoZM,MApZN;AAAA,EAqZL,aArZK;AAAA,EAqZU,MArZV;AAAA,EAsZL,kBAtZK;AAAA,EAsZe,MAtZf;AAAA,EAuZL,qBAvZK;AAAA,EAuZkB,MAvZlB;AAAA,EAwZL,kBAxZK;AAAA,EAwZe,MAxZf;AAAA,EAyZL,sBAzZK;AAAA,EAyZmB,MAzZnB;AAAA,EA0ZL,kBA1ZK;AAAA,EA0Ze,MA1Zf;AAAA,EA2ZL,kBA3ZK;AAAA,EA2Ze,MA3Zf;AAAA,EA4ZL,WA5ZK;AAAA,EA4ZQ,MA5ZR;AAAA,EA6ZL,WA7ZK;AAAA,EA6ZQ,MA7ZR;AAAA,EA8ZL,WA9ZK;AAAA,EA8ZQ,MA9ZR;AAAA,EA+ZL,WA/ZK;AAAA,EA+ZQ,MA/ZR;AAAA,EAgaL,mBAhaK;AAAA,EAgagB,MAhahB;AAAA,EAiaL,gBAjaK;AAAA,EAiaa,MAjab;AAAA,EAkaL,WAlaK;AAAA,EAkaQ,MAlaR;AAAA,EAmaL,aAnaK;AAAA,EAmaU,MAnaV;AAAA,EAoaL,QApaK;AAAA,EAoaK,MApaL;AAAA,EAqaL,aAraK;AAAA,EAqaU,MAraV;AAAA,EAsaL,YAtaK;AAAA,EAsaS,MAtaT;AAAA,EAuaL,KAvaK;AAAA,EAuaE,MAvaF;AAAA,EAwaL,YAxaK;AAAA,EAwaS,MAxaT;AAAA,EAyaL,OAzaK;AAAA,EAyaI,MAzaJ;AAAA,EA0aL,YA1aK;AAAA,EA0aS,MA1aT;AAAA,EA2aL,eA3aK;AAAA,EA2aY,MA3aZ;AAAA,EA4aL,YA5aK;AAAA,EA4aS,MA5aT;AAAA,EA6aL,gBA7aK;AAAA,EA6aa,MA7ab;AAAA,EA8aL,YA9aK;AAAA,EA8aS,MA9aT;AAAA,EA+aL,eA/aK;AAAA,EA+aY,MA/aZ;AAAA,EAgbL,IAhbK;AAAA,EAgbC,MAhbD;AAAA,EAibL,gBAjbK;AAAA,EAiba,MAjbb;AAAA,EAkbL,SAlbK;AAAA,EAkbM,MAlbN;AAAA,EAmbL,cAnbK;AAAA,EAmbW,MAnbX;AAAA,EAobL,cApbK;AAAA,EAobW,MApbX;AAAA,EAqbL,OArbK;AAAA,EAqbI,MArbJ;AAAA,EAsbL,eAtbK;AAAA,EAsbY,MAtbZ;AAAA,EAubL,YAvbK;AAAA,EAubS,MAvbT;AAAA,EAwbL,oBAxbK;AAAA,EAwbiB,MAxbjB;AAAA,EAybL,oBAzbK;AAAA,EAybiB,MAzbjB;AAAA,EA0bL,YA1bK;AAAA,EA0bS,MA1bT;AAAA,EA2bL,SA3bK;AAAA,EA2bM,MA3bN;AAAA,EA4bL,cA5bK;AAAA,EA4bW,MA5bX;AAAA,EA6bL,YA7bK;AAAA,EA6bS,MA7bT;AAAA,EA8bL,UA9bK;AAAA,EA8bO,MA9bP;AAAA,EA+bL,SA/bK;AAAA,EA+bM,MA/bN;AAAA,EAgcL,eAhcK;AAAA,EAgcY,MAhcZ;AAAA,EAicL,OAjcK;AAAA,EAicI,MAjcJ;AAAA,EAkcL,QAlcK;AAAA,EAkcK,MAlcL;AAAA,EAmcL,aAncK;AAAA,EAmcU,MAncV;AAAA,EAocL,aApcK;AAAA,EAocU,MApcV;AAAA,EAqcL,QArcK;AAAA,EAqcK,MArcL;AAAA,EAscL,cAtcK;AAAA,EAscW,MAtcX;AAAA,EAucL,YAvcK;AAAA,EAucS,MAvcT;AAAA,EAwcL,QAxcK;AAAA,EAwcK,MAxcL;AAAA,EAycL,aAzcK;AAAA,EAycU,MAzcV;AAAA,EA0cL,gBA1cK;AAAA,EA0ca,MA1cb;AAAA,EA2cL,aA3cK;AAAA,EA2cU,MA3cV;AAAA,EA4cL,GA5cK;AAAA,EA4cA,MA5cA;AAAA,EA6cL,QA7cK;AAAA,EA6cK,MA7cL;AAAA,EA8cL,SA9cK;AAAA,EA8cM,MA9cN;AAAA,EA+cL,YA/cK;AAAA,EA+cS,MA/cT;AAAA,EAgdL,YAhdK;AAAA,EAgdS,MAhdT;AAAA,EAidL,aAjdK;AAAA,EAidU,MAjdV;AAAA,EAkdL,sBAldK;AAAA,EAkdmB,MAldnB;AAAA,EAmdL,KAndK;AAAA,EAmdE,MAndF;AAAA,EAodL,OApdK;AAAA,EAodI,MApdJ;AAAA,EAqdL,IArdK;AAAA,EAqdC,MArdD;AAAA,EAsdL,cAtdK;AAAA,EAsdW,MAtdX;AAAA,EAudL,YAvdK;AAAA,EAudS,MAvdT;AAAA,EAwdL,KAxdK;AAAA,EAwdE,MAxdF;AAAA,EAydL,aAzdK;AAAA,EAydU,MAzdV;AAAA,EA0dL,QA1dK;AAAA,EA0dK,MA1dL;AAAA,EA2dL,GA3dK;AAAA,EA2dA,MA3dA;AAAA,EA4dL,SA5dK;AAAA,EA4dM,MA5dN;AAAA,EA6dL,YA7dK;AAAA,EA6dS,MA7dT;AAAA,EA8dL,QA9dK;AAAA,EA8dK,MA9dL;AAAA,EA+dL,GA/dK;AAAA,EA+dA,MA/dA;AAAA,EAgeL,YAheK;AAAA,EAgeS,MAheT;AAAA,EAieL,QAjeK;AAAA,EAieK,MAjeL;AAAA,EAkeL,QAleK;AAAA,EAkeK,MAleL;AAAA,EAmeL,UAneK;AAAA,EAmeO,MAneP;AAAA,EAoeL,SApeK;AAAA,EAoeM,MApeN;AAAA,EAqeL,cAreK;AAAA,EAqeW,MAreX;AAAA,EAseL,WAteK;AAAA,EAseQ,MAteR;AAAA,EAueL,YAveK;AAAA,EAueS,MAveT;AAAA,EAweL,WAxeK;AAAA,EAweQ,MAxeR;AAAA,EAyeL,iBAzeK;AAAA,EAyec,MAzed;AAAA,EA0eL,aA1eK;AAAA,EA0eU,MA1eV;AAAA,EA2eL,UA3eK;AAAA,EA2eO,MA3eP;AAAA,EA4eL,KA5eK;AAAA,EA4eE,MA5eF;AAAA,EA6eL,WA7eK;AAAA,EA6eQ,MA7eR;AAAA,EA8eL,gBA9eK;AAAA,EA8ea,MA9eb;AAAA,EA+eL,YA/eK;AAAA,EA+eS,MA/eT;AAAA,EAgfL,YAhfK;AAAA,EAgfS,MAhfT;AAAA,EAifL,QAjfK;AAAA,EAifK,MAjfL;AAAA,EAkfL,gBAlfK;AAAA,EAkfa,MAlfb;AAAA,EAmfL,wBAnfK;AAAA,EAmfqB,MAnfrB;AAAA,EAofL,GApfK;AAAA,EAofA,MApfA;AAAA,EAqfL,UArfK;AAAA,EAqfO,MArfP;AAAA,EAsfL,UAtfK;AAAA,EAsfO,MAtfP;AAAA,EAufL,UAvfK;AAAA,EAufO,MAvfP;AAAA,EAwfL,UAxfK;AAAA,EAwfO,MAxfP;AAAA,EAyfL,UAzfK;AAAA,EAyfO,MAzfP;AAAA,EA0fL,UA1fK;AAAA,EA0fO,MA1fP;AAAA,EA2fL,UA3fK;AAAA,EA2fO,MA3fP;AAAA,EA4fL,UA5fK;AAAA,EA4fO,MA5fP;AAAA,EA6fL,UA7fK;AAAA,EA6fO,MA7fP;AAAA,EA8fL,UA9fK;AAAA,EA8fO,MA9fP;AAAA,EA+fL,UA/fK;AAAA,EA+fO,MA/fP;AAAA,EAggBL,UAhgBK;AAAA,EAggBO,MAhgBP;AAAA,EAigBL,UAjgBK;AAAA,EAigBO,MAjgBP;AAAA,EAkgBL,UAlgBK;AAAA,EAkgBO,MAlgBP;AAAA,EAmgBL,UAngBK;AAAA,EAmgBO,MAngBP;AAAA,EAogBL,UApgBK;AAAA,EAogBO,MApgBP;AAAA,EAqgBL,UArgBK;AAAA,EAqgBO,MArgBP;AAAA,EAsgBL,UAtgBK;AAAA,EAsgBO,MAtgBP;AAAA,EAugBL,UAvgBK;AAAA,EAugBO,MAvgBP;AAAA,EAwgBL,UAxgBK;AAAA,EAwgBO,MAxgBP;AAAA,EAygBL,UAzgBK;AAAA,EAygBO,MAzgBP;AAAA,EA0gBL,UA1gBK;AAAA,EA0gBO,MA1gBP;AAAA,EA2gBL,UA3gBK;AAAA,EA2gBO,MA3gBP;AAAA,EA4gBL,UA5gBK;AAAA,EA4gBO,MA5gBP;AAAA,EA6gBL,UA7gBK;AAAA,EA6gBO,MA7gBP;AAAA,EA8gBL,UA9gBK;AAAA,EA8gBO,MA9gBP;AAAA,EA+gBL,UA/gBK;AAAA,EA+gBO,MA/gBP;AAAA,EAghBL,UAhhBK;AAAA,EAghBO,MAhhBP;AAAA,EAihBL,UAjhBK;AAAA,EAihBO,MAjhBP;AAAA,EAkhBL,UAlhBK;AAAA,EAkhBO,MAlhBP;AAAA,EAmhBL,UAnhBK;AAAA,EAmhBO,MAnhBP;AAAA,EAohBL,UAphBK;AAAA,EAohBO,MAphBP;AAAA,EAqhBL,UArhBK;AAAA,EAqhBO,MArhBP;AAAA,EAshBL,UAthBK;AAAA,EAshBO,MAthBP;AAAA,EAuhBL,UAvhBK;AAAA,EAuhBO,MAvhBP;AAAA,EAwhBL,UAxhBK;AAAA,EAwhBO,MAxhBP;AAAA,EAyhBL,UAzhBK;AAAA,EAyhBO,MAzhBP;AAAA,EA0hBL,UA1hBK;AAAA,EA0hBO,MA1hBP;AAAA,EA2hBL,UA3hBK;AAAA,EA2hBO,MA3hBP;AAAA,EA4hBL,UA5hBK;AAAA,EA4hBO,MA5hBP;AAAA,EA6hBL,QA7hBK;AAAA,EA6hBK,MA7hBL;AAAA,EA8hBL,iBA9hBK;AAAA,EA8hBc,MA9hBd;AAAA,EA+hBL,YA/hBK;AAAA,EA+hBS,MA/hBT;AAAA,EAgiBL,QAhiBK;AAAA,EAgiBK,MAhiBL;AAAA,EAiiBL,iBAjiBK;AAAA,EAiiBc,MAjiBd;AAAA,EAkiBL,aAliBK;AAAA,EAkiBU,MAliBV;AAAA,EAmiBL,UAniBK;AAAA,EAmiBO,MAniBP;AAAA,EAoiBL,OApiBK;AAAA,EAoiBI,MApiBJ;AAAA,EAqiBL,eAriBK;AAAA,EAqiBY,MAriBZ;AAAA,EAsiBL,uBAtiBK;AAAA,EAsiBoB,MAtiBpB;AAAA,EAuiBL,SAviBK;AAAA,EAuiBM,MAviBN;AAAA,EAwiBL,aAxiBK;AAAA,EAwiBU,MAxiBV;AAAA,EAyiBL,cAziBK;AAAA,EAyiBW,MAziBX;AAAA,EA0iBL,YA1iBK;AAAA,EA0iBS,MA1iBT;AAAA,EA2iBL,WA3iBK;AAAA,EA2iBQ,MA3iBR;AAAA,EA4iBL,oBA5iBK;AAAA,EA4iBiB,MA5iBjB;AAAA,EA6iBL,aA7iBK;AAAA,EA6iBU,MA7iBV;AAAA,EA8iBL,YA9iBK;AAAA,EA8iBS,MA9iBT;AAAA,EA+iBL,aA/iBK;AAAA,EA+iBU,MA/iBV;AAAA,EAgjBL,aAhjBK;AAAA,EAgjBU,MAhjBV;AAAA,EAijBL,eAjjBK;AAAA,EAijBY,MAjjBZ;AAAA,EAkjBL,YAljBK;AAAA,EAkjBS,MAljBT;AAAA,EAmjBL,cAnjBK;AAAA,EAmjBW,MAnjBX;AAAA,EAojBL,aApjBK;AAAA,EAojBU,MApjBV;AAAA,EAqjBL,OArjBK;AAAA,EAqjBI,MArjBJ;AAAA,EAsjBL,UAtjBK;AAAA,EAsjBO,MAtjBP;AAAA,EAujBL,YAvjBK;AAAA,EAujBS,MAvjBT;AAAA,EAwjBL,kBAxjBK;AAAA,EAwjBe,MAxjBf;AAAA,EAyjBL,QAzjBK;AAAA,EAyjBK,MAzjBL;AAAA,EA0jBL,aA1jBK;AAAA,EA0jBU,MA1jBV;AAAA,EA2jBL,GA3jBK;AAAA,EA2jBA,MA3jBA;AAAA,EA4jBL,KA5jBK;AAAA,EA4jBE,MA5jBF;AAAA,EA6jBL,MA7jBK;AAAA,EA6jBG,MA7jBH;AAAA,EA8jBL,QA9jBK;AAAA,EA8jBK,MA9jBL;AAAA,EA+jBL,UA/jBK;AAAA,EA+jBO,MA/jBP;AAAA,EAgkBL,SAhkBK;AAAA,EAgkBM,MAhkBN;AAAA,EAikBL,kBAjkBK;AAAA,EAikBe,MAjkBf;AAAA,EAkkBL,cAlkBK;AAAA,EAkkBW,MAlkBX;AAAA,EAmkBL,YAnkBK;AAAA,EAmkBS,MAnkBT;AAAA,EAokBL,WApkBK;AAAA,EAokBQ,MApkBR;AAAA,EAqkBL,YArkBK;AAAA,EAqkBS,MArkBT;AAAA,EAskBL,qBAtkBK;AAAA,EAskBkB,MAtkBlB;AAAA,EAukBL,UAvkBK;AAAA,EAukBO,MAvkBP;AAAA,EAwkBL,eAxkBK;AAAA,EAwkBY,MAxkBZ;AAAA,EAykBL,OAzkBK;AAAA,EAykBI,MAzkBJ;AAAA,EA0kBL,OA1kBK;AAAA,EA0kBI,MA1kBJ;AAAA,EA2kBL,OA3kBK;AAAA,EA2kBI,MA3kBJ;AAAA,EA4kBL,YA5kBK;AAAA,EA4kBS,MA5kBT;AAAA,EA6kBL,YA7kBK;AAAA,EA6kBS,MA7kBT;AAAA,EA8kBL,YA9kBK;AAAA,EA8kBS,MA9kBT;AAAA,EA+kBL,cA/kBK;AAAA,EA+kBW,MA/kBX;AAAA,EAglBL,YAhlBK;AAAA,EAglBS,MAhlBT;AAAA,EAilBL,YAjlBK;AAAA,EAilBS,MAjlBT;AAAA,EAklBL,YAllBK;AAAA,EAklBS,MAllBT;AAAA,EAmlBL,UAnlBK;AAAA,EAmlBO,MAnlBP;AAAA,EAolBL,SAplBK;AAAA,EAolBM,MAplBN;AAAA,EAqlBL,SArlBK;AAAA,EAqlBM,MArlBN;AAAA,EAslBL,gBAtlBK;AAAA,EAslBa,MAtlBb;AAAA,EAulBL,aAvlBK;AAAA,EAulBU,MAvlBV;AAAA,EAwlBL,cAxlBK;AAAA,EAwlBW,MAxlBX;AAAA,EAylBL,QAzlBK;AAAA,EAylBK,MAzlBL;AAAA,EA0lBL,aA1lBK;AAAA,EA0lBU,MA1lBV;AAAA,EA2lBL,UA3lBK;AAAA,EA2lBO,MA3lBP;AAAA,EA4lBL,GA5lBK;AAAA,EA4lBA,MA5lBA;AAAA,EA6lBL,QA7lBK;AAAA,EA6lBK,MA7lBL;AAAA,EA8lBL,aA9lBK;AAAA,EA8lBU,MA9lBV;AAAA,EA+lBL,QA/lBK;AAAA,EA+lBK,MA/lBL;AAAA,EAgmBL,QAhmBK;AAAA,EAgmBK,MAhmBL;AAAA,EAimBL,SAjmBK;AAAA,EAimBM,MAjmBN;AAAA,EAkmBL,aAlmBK;AAAA,EAkmBU,MAlmBV;AAAA,EAmmBL,kBAnmBK;AAAA,EAmmBe,MAnmBf;AAAA,EAomBL,kBApmBK;AAAA,EAomBe,MApmBf;AAAA,EAqmBL,WArmBK;AAAA,EAqmBQ,MArmBR;AAAA,EAsmBL,WAtmBK;AAAA,EAsmBQ,MAtmBR;AAAA,EAumBL,WAvmBK;AAAA,EAumBQ,MAvmBR;AAAA,EAwmBL,WAxmBK;AAAA,EAwmBQ,MAxmBR;AAAA,EAymBL,gBAzmBK;AAAA,EAymBa,MAzmBb;AAAA,EA0mBL,gBA1mBK;AAAA,EA0mBa,MA1mBb;AAAA,EA2mBL,gBA3mBK;AAAA,EA2mBa,MA3mBb;AAAA,EA4mBL,mBA5mBK;AAAA,EA4mBgB,MA5mBhB;AAAA,EA6mBL,gBA7mBK;AAAA,EA6mBa,MA7mBb;AAAA,EA8mBL,iBA9mBK;AAAA,EA8mBc,MA9mBd;AAAA,EA+mBL,gBA/mBK;AAAA,EA+mBa,MA/mBb;AAAA,EAgnBL,WAhnBK;AAAA,EAgnBQ,MAhnBR;AAAA,EAinBL,QAjnBK;AAAA,EAinBK,MAjnBL;AAAA,EAknBL,aAlnBK;AAAA,EAknBU,MAlnBV;AAAA,EAmnBL,YAnnBK;AAAA,EAmnBS,MAnnBT;AAAA,EAonBL,OApnBK;AAAA,EAonBI,MApnBJ;AAAA,EAqnBL,YArnBK;AAAA,EAqnBS,MArnBT;AAAA,EAsnBL,eAtnBK;AAAA,EAsnBY,MAtnBZ;AAAA,EAunBL,YAvnBK;AAAA,EAunBS,MAvnBT;AAAA,EAwnBL,gBAxnBK;AAAA,EAwnBa,MAxnBb;AAAA,EAynBL,YAznBK;AAAA,EAynBS,MAznBT;AAAA,EA0nBL,eA1nBK;AAAA,EA0nBY,MA1nBZ;AAAA,EA2nBL,uBA3nBK;AAAA,EA2nBoB,MA3nBpB;AAAA,EA4nBL,gBA5nBK;AAAA,EA4nBa,MA5nBb;AAAA,EA6nBL,YA7nBK;AAAA,EA6nBS,MA7nBT;AAAA,EA8nBL,SA9nBK;AAAA,EA8nBM,MA9nBN;AAAA,EA+nBL,iBA/nBK;AAAA,EA+nBc,MA/nBd;AAAA,EAgoBL,iBAhoBK;AAAA,EAgoBc,MAhoBd;AAAA,EAioBL,YAjoBK;AAAA,EAioBS,MAjoBT;AAAA,EAkoBL,SAloBK;AAAA,EAkoBM,MAloBN;AAAA,EAmoBL,SAnoBK;AAAA,EAmoBM,MAnoBN;AAAA,EAooBL,UApoBK;AAAA,EAooBO,MApoBP;AAAA,EAqoBL,6BAroBK;AAAA,EAqoB0B,MAroB1B;AAAA,EAsoBL,gBAtoBK;AAAA,EAsoBa,MAtoBb;AAAA,EAuoBL,iBAvoBK;AAAA,EAuoBc,MAvoBd;AAAA,EAwoBL,gCAxoBK;AAAA,EAwoB6B,MAxoB7B;AAAA,EAyoBL,mBAzoBK;AAAA,EAyoBgB,MAzoBhB;AAAA,EA0oBL,cA1oBK;AAAA,EA0oBW,MA1oBX;AAAA,EA2oBL,OA3oBK;AAAA,EA2oBI,MA3oBJ;AAAA,EA4oBL,gBA5oBK;AAAA,EA4oBa,MA5oBb;AAAA,EA6oBL,QA7oBK;AAAA,EA6oBK,MA7oBL;AAAA,EA8oBL,mBA9oBK;AAAA,EA8oBgB,MA9oBhB;AAAA,EA+oBL,yBA/oBK;AAAA,EA+oBsB,MA/oBtB;AAAA,EAgpBL,QAhpBK;AAAA,EAgpBK,MAhpBL;AAAA,EAipBL,aAjpBK;AAAA,EAipBU,MAjpBV;AAAA,EAkpBL,aAlpBK;AAAA,EAkpBU,MAlpBV;AAAA,EAmpBL,GAnpBK;AAAA,EAmpBA,MAnpBA;AAAA,EAopBL,SAppBK;AAAA,EAopBM,MAppBN;AAAA,EAqpBL,WArpBK;AAAA,EAqpBQ,MArpBR;AAAA,EAspBL,YAtpBK;AAAA,EAspBS,MAtpBT;AAAA,EAupBL,aAvpBK;AAAA,EAupBU,MAvpBV;AAAA,EAwpBL,OAxpBK;AAAA,EAwpBI,MAxpBJ;AAAA,EAypBL,YAzpBK;AAAA,EAypBS,MAzpBT;AAAA,EA0pBL,YA1pBK;AAAA,EA0pBS,MA1pBT;AAAA,EA2pBL,QA3pBK;AAAA,EA2pBK,MA3pBL;AAAA,EA4pBL,QA5pBK;AAAA,EA4pBK,MA5pBL;AAAA,EA6pBL,GA7pBK;AAAA,EA6pBA,MA7pBA;AAAA,EA8pBL,QA9pBK;AAAA,EA8pBK,MA9pBL;AAAA,EA+pBL,SA/pBK;AAAA,EA+pBM,MA/pBN;AAAA,EAgqBL,aAhqBK;AAAA,EAgqBU,MAhqBV;AAAA,EAiqBL,WAjqBK;AAAA,EAiqBQ,MAjqBR;AAAA,EAkqBL,YAlqBK;AAAA,EAkqBS,MAlqBT;AAAA,EAmqBL,WAnqBK;AAAA,EAmqBQ,MAnqBR;AAAA,EAoqBL,QApqBK;AAAA,EAoqBK,MApqBL;AAAA,EAqqBL,YArqBK;AAAA,EAqqBS,MArqBT;AAAA,EAsqBL,QAtqBK;AAAA,EAsqBK,MAtqBL;AAAA,EAuqBL,GAvqBK;AAAA,EAuqBA,MAvqBA;AAAA,EAwqBL,SAxqBK;AAAA,EAwqBM,MAxqBN;AAAA,EAyqBL,WAzqBK;AAAA,EAyqBQ,MAzqBR;AAAA,EA0qBL,YA1qBK;AAAA,EA0qBS,MA1qBT;AAAA,EA2qBL,aA3qBK;AAAA,EA2qBU,MA3qBV;AAAA,EA4qBL,IA5qBK;AAAA,EA4qBC,MA5qBD;AAAA,EA6qBL,YA7qBK;AAAA,EA6qBS,MA7qBT;AAAA,EA8qBL,QA9qBK;AAAA,EA8qBK,MA9qBL;AAAA,EA+qBL,GA/qBK;AAAA,EA+qBA,MA/qBA;AAAA,EAgrBL,QAhrBK;AAAA,EAgrBK,MAhrBL;AAAA,EAirBL,aAjrBK;AAAA,EAirBU,MAjrBV;AAAA,EAkrBL,aAlrBK;AAAA,EAkrBU,MAlrBV;AAAA,EAmrBL,SAnrBK;AAAA,EAmrBM,MAnrBN;AAAA,EAorBL,aAprBK;AAAA,EAorBU,MAprBV;AAAA,EAqrBL,WArrBK;AAAA,EAqrBQ,MArrBR;AAAA,EAsrBL,gBAtrBK;AAAA,EAsrBa,MAtrBb;AAAA,EAurBL,YAvrBK;AAAA,EAurBS,MAvrBT;AAAA,EAwrBL,WAxrBK;AAAA,EAwrBQ,MAxrBR;AAAA,EAyrBL,cAzrBK;AAAA,EAyrBW,MAzrBX;AAAA,EA0rBL,sBA1rBK;AAAA,EA0rBmB,MA1rBnB;AAAA,EA2rBL,QA3rBK;AAAA,EA2rBK,MA3rBL;AAAA,EA4rBL,OA5rBK;AAAA,EA4rBI,MA5rBJ;AAAA,EA6rBL,YA7rBK;AAAA,EA6rBS,MA7rBT;AAAA,EA8rBL,YA9rBK;AAAA,EA8rBS,MA9rBT;AAAA,EA+rBL,YA/rBK;AAAA,EA+rBS,MA/rBT;AAAA,EAgsBL,cAhsBK;AAAA,EAgsBW,MAhsBX;AAAA,EAisBL,YAjsBK;AAAA,EAisBS,MAjsBT;AAAA,EAksBL,QAlsBK;AAAA,EAksBK,MAlsBL;AAAA,EAmsBL,QAnsBK;AAAA,EAmsBK,MAnsBL;AAAA,EAosBL,gBApsBK;AAAA,EAosBa,MApsBb;AAAA,EAqsBL,wBArsBK;AAAA,EAqsBqB,MArsBrB;AAAA,EAssBL,mBAtsBK;AAAA,EAssBgB,MAtsBhB;AAAA,EAusBL,2BAvsBK;AAAA,EAusBwB,MAvsBxB;AAAA,EAwsBL,GAxsBK;AAAA,EAwsBA,MAxsBA;AAAA,EAysBL,YAzsBK;AAAA,EAysBS,MAzsBT;AAAA,EA0sBL,QA1sBK;AAAA,EA0sBK,MA1sBL;AAAA,EA2sBL,QA3sBK;AAAA,EA2sBK,MA3sBL;AAAA,EA4sBL,aA5sBK;AAAA,EA4sBU,MA5sBV;AAAA,EA6sBL,SA7sBK;AAAA,EA6sBM,MA7sBN;AAAA,EA8sBL,aA9sBK;AAAA,EA8sBU,MA9sBV;AAAA,EA+sBL,MA/sBK;AAAA,EA+sBG,MA/sBH;AAAA,EAgtBL,YAhtBK;AAAA,EAgtBS,MAhtBT;AAAA,EAitBL,WAjtBK;AAAA,EAitBQ,MAjtBR;AAAA,EAktBL,YAltBK;AAAA,EAktBS,MAltBT;AAAA,EAmtBL,qBAntBK;AAAA,EAmtBkB,MAntBlB;AAAA,EAotBL,oBAptBK;AAAA,EAotBiB,MAptBjB;AAAA,EAqtBL,MArtBK;AAAA,EAqtBG,MArtBH;AAAA,EAstBL,aAttBK;AAAA,EAstBU,MAttBV;AAAA,EAutBL,kBAvtBK;AAAA,EAutBe,MAvtBf;AAAA,EAwtBL,aAxtBK;AAAA,EAwtBU,MAxtBV;AAAA,EAytBL,sBAztBK;AAAA,EAytBmB,MAztBnB;AAAA,EA0tBL,qBA1tBK;AAAA,EA0tBkB,MA1tBlB;AAAA,EA2tBL,YA3tBK;AAAA,EA2tBS,MA3tBT;AAAA,EA4tBL,YA5tBK;AAAA,EA4tBS,MA5tBT;AAAA,EA6tBL,QA7tBK;AAAA,EA6tBK,MA7tBL;AAAA,EA8tBL,SA9tBK;AAAA,EA8tBM,MA9tBN;AAAA,EA+tBL,GA/tBK;AAAA,EA+tBA,MA/tBA;AAAA,EAguBL,WAhuBK;AAAA,EAguBQ,MAhuBR;AAAA,EAiuBL,QAjuBK;AAAA,EAiuBK,MAjuBL;AAAA,EAkuBL,QAluBK;AAAA,EAkuBK,MAluBL;AAAA,EAmuBL,YAnuBK;AAAA,EAmuBS,MAnuBT;AAAA,EAouBL,YApuBK;AAAA,EAouBS,MApuBT;AAAA,EAquBL,iBAruBK;AAAA,EAquBc,MAruBd;AAAA,EAsuBL,YAtuBK;AAAA,EAsuBS,MAtuBT;AAAA,EAuuBL,oBAvuBK;AAAA,EAuuBiB,MAvuBjB;AAAA,EAwuBL,iBAxuBK;AAAA,EAwuBc,MAxuBd;AAAA,EAyuBL,qBAzuBK;AAAA,EAyuBkB,MAzuBlB;AAAA,EA0uBL,0BA1uBK;AAAA,EA0uBuB,MA1uBvB;AAAA,EA2uBL,sBA3uBK;AAAA,EA2uBmB,MA3uBnB;AAAA,EA4uBL,UA5uBK;AAAA,EA4uBO,MA5uBP;AAAA,EA6uBL,WA7uBK;AAAA,EA6uBQ,MA7uBR;AAAA,EA8uBL,QA9uBK;AAAA,EA8uBK,MA9uBL;AAAA,EA+uBL,aA/uBK;AAAA,EA+uBU,MA/uBV;AAAA,EAgvBL,gBAhvBK;AAAA,EAgvBa,MAhvBb;AAAA,EAivBL,gBAjvBK;AAAA,EAivBa,MAjvBb;AAAA,EAkvBL,aAlvBK;AAAA,EAkvBU,MAlvBV;AAAA,EAmvBL,iBAnvBK;AAAA,EAmvBc,MAnvBd;AAAA,EAovBL,aApvBK;AAAA,EAovBU,MApvBV;AAAA,EAqvBL,QArvBK;AAAA,EAqvBK,MArvBL;AAAA,EAsvBL,SAtvBK;AAAA,EAsvBM,MAtvBN;AAAA,EAuvBL,aAvvBK;AAAA,EAuvBU,MAvvBV;AAAA,EAwvBL,kBAxvBK;AAAA,EAwvBe,MAxvBf;AAAA,EAyvBL,qBAzvBK;AAAA,EAyvBkB,MAzvBlB;AAAA,EA0vBL,kBA1vBK;AAAA,EA0vBe,MA1vBf;AAAA,EA2vBL,sBA3vBK;AAAA,EA2vBmB,MA3vBnB;AAAA,EA4vBL,kBA5vBK;AAAA,EA4vBe,MA5vBf;AAAA,EA6vBL,OA7vBK;AAAA,EA6vBI,MA7vBJ;AAAA,EA8vBL,eA9vBK;AAAA,EA8vBY,MA9vBZ;AAAA,EA+vBL,UA/vBK;AAAA,EA+vBO,MA/vBP;AAAA,EAgwBL,WAhwBK;AAAA,EAgwBQ,MAhwBR;AAAA,EAiwBL,WAjwBK;AAAA,EAiwBQ,MAjwBR;AAAA,EAkwBL,aAlwBK;AAAA,EAkwBU,MAlwBV;AAAA,EAmwBL,cAnwBK;AAAA,EAmwBW,MAnwBX;AAAA,EAowBL,WApwBK;AAAA,EAowBQ,MApwBR;AAAA,EAqwBL,WArwBK;AAAA,EAqwBQ,MArwBR;AAAA,EAswBL,eAtwBK;AAAA,EAswBY,MAtwBZ;AAAA,EAuwBL,OAvwBK;AAAA,EAuwBI,MAvwBJ;AAAA,EAwwBL,WAxwBK;AAAA,EAwwBQ,MAxwBR;AAAA,EAywBL,mBAzwBK;AAAA,EAywBgB,MAzwBhB;AAAA,EA0wBL,iBA1wBK;AAAA,EA0wBc,MA1wBd;AAAA,EA2wBL,WA3wBK;AAAA,EA2wBQ,MA3wBR;AAAA,EA4wBL,YA5wBK;AAAA,EA4wBS,MA5wBT;AAAA,EA6wBL,IA7wBK;AAAA,EA6wBC,MA7wBD;AAAA,EA8wBL,SA9wBK;AAAA,EA8wBM,MA9wBN;AAAA,EA+wBL,UA/wBK;AAAA,EA+wBO,MA/wBP;AAAA,EAgxBL,UAhxBK;AAAA,EAgxBO,MAhxBP;AAAA,EAixBL,WAjxBK;AAAA,EAixBQ,MAjxBR;AAAA,EAkxBL,WAlxBK;AAAA,EAkxBQ,MAlxBR;AAAA,EAmxBL,WAnxBK;AAAA,EAmxBQ,MAnxBR;AAAA,EAoxBL,WApxBK;AAAA,EAoxBQ,MApxBR;AAAA,EAqxBL,WArxBK;AAAA,EAqxBQ,MArxBR;AAAA,EAsxBL,WAtxBK;AAAA,EAsxBQ,MAtxBR;AAAA,EAuxBL,WAvxBK;AAAA,EAuxBQ,MAvxBR;AAAA,EAwxBL,WAxxBK;AAAA,EAwxBQ,MAxxBR;AAAA,EAyxBL,WAzxBK;AAAA,EAyxBQ,MAzxBR;AAAA,EA0xBL,WA1xBK;AAAA,EA0xBQ,MA1xBR;AAAA,EA2xBL,WA3xBK;AAAA,EA2xBQ,MA3xBR;AAAA,EA4xBL,WA5xBK;AAAA,EA4xBQ,MA5xBR;AAAA,EA6xBL,WA7xBK;AAAA,EA6xBQ,MA7xBR;AAAA,EA8xBL,WA9xBK;AAAA,EA8xBQ,MA9xBR;AAAA,EA+xBL,WA/xBK;AAAA,EA+xBQ,MA/xBR;AAAA,EAgyBL,WAhyBK;AAAA,EAgyBQ,MAhyBR;AAAA,EAiyBL,WAjyBK;AAAA,EAiyBQ,MAjyBR;AAAA,EAkyBL,WAlyBK;AAAA,EAkyBQ,MAlyBR;AAAA,EAmyBL,WAnyBK;AAAA,EAmyBQ,MAnyBR;AAAA,EAoyBL,WApyBK;AAAA,EAoyBQ,MApyBR;AAAA,EAqyBL,WAryBK;AAAA,EAqyBQ,MAryBR;AAAA,EAsyBL,WAtyBK;AAAA,EAsyBQ,MAtyBR;AAAA,EAuyBL,WAvyBK;AAAA,EAuyBQ,MAvyBR;AAAA,EAwyBL,WAxyBK;AAAA,EAwyBQ,MAxyBR;AAAA,EAyyBL,WAzyBK;AAAA,EAyyBQ,MAzyBR;AAAA,EA0yBL,WA1yBK;AAAA,EA0yBQ,MA1yBR;AAAA,EA2yBL,WA3yBK;AAAA,EA2yBQ,MA3yBR;AAAA,EA4yBL,WA5yBK;AAAA,EA4yBQ,MA5yBR;AAAA,EA6yBL,WA7yBK;AAAA,EA6yBQ,MA7yBR;AAAA,EA8yBL,WA9yBK;AAAA,EA8yBQ,MA9yBR;AAAA,EA+yBL,WA/yBK;AAAA,EA+yBQ,MA/yBR;AAAA,EAgzBL,WAhzBK;AAAA,EAgzBQ,MAhzBR;AAAA,EAizBL,WAjzBK;AAAA,EAizBQ,MAjzBR;AAAA,EAkzBL,WAlzBK;AAAA,EAkzBQ,MAlzBR;AAAA,EAmzBL,WAnzBK;AAAA,EAmzBQ,MAnzBR;AAAA,EAozBL,WApzBK;AAAA,EAozBQ,MApzBR;AAAA,EAqzBL,WArzBK;AAAA,EAqzBQ,MArzBR;AAAA,EAszBL,WAtzBK;AAAA,EAszBQ,MAtzBR;AAAA,EAuzBL,WAvzBK;AAAA,EAuzBQ,MAvzBR;AAAA,EAwzBL,WAxzBK;AAAA,EAwzBQ,MAxzBR;AAAA,EAyzBL,WAzzBK;AAAA,EAyzBQ,MAzzBR;AAAA,EA0zBL,WA1zBK;AAAA,EA0zBQ,MA1zBR;AAAA,EA2zBL,WA3zBK;AAAA,EA2zBQ,MA3zBR;AAAA,EA4zBL,WA5zBK;AAAA,EA4zBQ,MA5zBR;AAAA,EA6zBL,WA7zBK;AAAA,EA6zBQ,MA7zBR;AAAA,EA8zBL,WA9zBK;AAAA,EA8zBQ,MA9zBR;AAAA,EA+zBL,WA/zBK;AAAA,EA+zBQ,MA/zBR;AAAA,EAg0BL,WAh0BK;AAAA,EAg0BQ,MAh0BR;AAAA,EAi0BL,WAj0BK;AAAA,EAi0BQ,MAj0BR;AAAA,EAk0BL,WAl0BK;AAAA,EAk0BQ,MAl0BR;AAAA,EAm0BL,WAn0BK;AAAA,EAm0BQ,MAn0BR;AAAA,EAo0BL,WAp0BK;AAAA,EAo0BQ,MAp0BR;AAAA,EAq0BL,WAr0BK;AAAA,EAq0BQ,MAr0BR;AAAA,EAs0BL,WAt0BK;AAAA,EAs0BQ,MAt0BR;AAAA,EAu0BL,WAv0BK;AAAA,EAu0BQ,MAv0BR;AAAA,EAw0BL,WAx0BK;AAAA,EAw0BQ,MAx0BR;AAAA,EAy0BL,WAz0BK;AAAA,EAy0BQ,MAz0BR;AAAA,EA00BL,WA10BK;AAAA,EA00BQ,MA10BR;AAAA,EA20BL,WA30BK;AAAA,EA20BQ,MA30BR;AAAA,EA40BL,WA50BK;AAAA,EA40BQ,MA50BR;AAAA,EA60BL,WA70BK;AAAA,EA60BQ,MA70BR;AAAA,EA80BL,WA90BK;AAAA,EA80BQ,MA90BR;AAAA,EA+0BL,WA/0BK;AAAA,EA+0BQ,MA/0BR;AAAA,EAg1BL,WAh1BK;AAAA,EAg1BQ,MAh1BR;AAAA,EAi1BL,WAj1BK;AAAA,EAi1BQ,MAj1BR;AAAA,EAk1BL,WAl1BK;AAAA,EAk1BQ,MAl1BR;AAAA,EAm1BL,WAn1BK;AAAA,EAm1BQ,MAn1BR;AAAA,EAo1BL,WAp1BK;AAAA,EAo1BQ,MAp1BR;AAAA,EAq1BL,WAr1BK;AAAA,EAq1BQ,MAr1BR;AAAA,EAs1BL,WAt1BK;AAAA,EAs1BQ,MAt1BR;AAAA,EAu1BL,WAv1BK;AAAA,EAu1BQ,MAv1BR;AAAA,EAw1BL,WAx1BK;AAAA,EAw1BQ,MAx1BR;AAAA,EAy1BL,WAz1BK;AAAA,EAy1BQ,MAz1BR;AAAA,EA01BL,WA11BK;AAAA,EA01BQ,MA11BR;AAAA,EA21BL,WA31BK;AAAA,EA21BQ,MA31BR;AAAA,EA41BL,WA51BK;AAAA,EA41BQ,MA51BR;AAAA,EA61BL,WA71BK;AAAA,EA61BQ,MA71BR;AAAA,EA81BL,WA91BK;AAAA,EA81BQ,MA91BR;AAAA,EA+1BL,WA/1BK;AAAA,EA+1BQ,MA/1BR;AAAA,EAg2BL,WAh2BK;AAAA,EAg2BQ,MAh2BR;AAAA,EAi2BL,WAj2BK;AAAA,EAi2BQ,MAj2BR;AAAA,EAk2BL,WAl2BK;AAAA,EAk2BQ,MAl2BR;AAAA,EAm2BL,WAn2BK;AAAA,EAm2BQ,MAn2BR;AAAA,EAo2BL,WAp2BK;AAAA,EAo2BQ,MAp2BR;AAAA,EAq2BL,WAr2BK;AAAA,EAq2BQ,MAr2BR;AAAA,EAs2BL,WAt2BK;AAAA,EAs2BQ,MAt2BR;AAAA,EAu2BL,WAv2BK;AAAA,EAu2BQ,MAv2BR;AAAA,EAw2BL,WAx2BK;AAAA,EAw2BQ,MAx2BR;AAAA,EAy2BL,WAz2BK;AAAA,EAy2BQ,MAz2BR;AAAA,EA02BL,WA12BK;AAAA,EA02BQ,MA12BR;AAAA,EA22BL,WA32BK;AAAA,EA22BQ,MA32BR;AAAA,EA42BL,WA52BK;AAAA,EA42BQ,MA52BR;AAAA,EA62BL,WA72BK;AAAA,EA62BQ,MA72BR;AAAA,EA82BL,WA92BK;AAAA,EA82BQ,MA92BR;AAAA,EA+2BL,WA/2BK;AAAA,EA+2BQ,MA/2BR;AAAA,EAg3BL,WAh3BK;AAAA,EAg3BQ,MAh3BR;AAAA,EAi3BL,WAj3BK;AAAA,EAi3BQ,MAj3BR;AAAA,EAk3BL,WAl3BK;AAAA,EAk3BQ,MAl3BR;AAAA,EAm3BL,WAn3BK;AAAA,EAm3BQ,MAn3BR;AAAA,EAo3BL,WAp3BK;AAAA,EAo3BQ,MAp3BR;AAAA,EAq3BL,WAr3BK;AAAA,EAq3BQ,MAr3BR;AAAA,EAs3BL,WAt3BK;AAAA,EAs3BQ,MAt3BR;AAAA,EAu3BL,WAv3BK;AAAA,EAu3BQ,MAv3BR;AAAA,EAw3BL,WAx3BK;AAAA,EAw3BQ,MAx3BR;AAAA,EAy3BL,WAz3BK;AAAA,EAy3BQ,MAz3BR;AAAA,EA03BL,WA13BK;AAAA,EA03BQ,MA13BR;AAAA,EA23BL,WA33BK;AAAA,EA23BQ,MA33BR;AAAA,EA43BL,WA53BK;AAAA,EA43BQ,MA53BR;AAAA,EA63BL,SA73BK;AAAA,EA63BM,MA73BN;AAAA,EA83BL,SA93BK;AAAA,EA83BM,MA93BN;AAAA,EA+3BL,SA/3BK;AAAA,EA+3BM,MA/3BN;AAAA,EAg4BL,WAh4BK;AAAA,EAg4BQ,MAh4BR;AAAA,EAi4BL,WAj4BK;AAAA,EAi4BQ,MAj4BR;AAAA,EAk4BL,WAl4BK;AAAA,EAk4BQ,MAl4BR;AAAA,EAm4BL,WAn4BK;AAAA,EAm4BQ,MAn4BR;AAAA,EAo4BL,WAp4BK;AAAA,EAo4BQ,MAp4BR;AAAA,EAq4BL,WAr4BK;AAAA,EAq4BQ,MAr4BR;AAAA,EAs4BL,WAt4BK;AAAA,EAs4BQ,MAt4BR;AAAA,EAu4BL,WAv4BK;AAAA,EAu4BQ,MAv4BR;AAAA,EAw4BL,WAx4BK;AAAA,EAw4BQ,MAx4BR;AAAA,EAy4BL,WAz4BK;AAAA,EAy4BQ,MAz4BR;AAAA,EA04BL,WA14BK;AAAA,EA04BQ,MA14BR;AAAA,EA24BL,WA34BK;AAAA,EA24BQ,MA34BR;AAAA,EA44BL,WA54BK;AAAA,EA44BQ,MA54BR;AAAA,EA64BL,WA74BK;AAAA,EA64BQ,MA74BR;AAAA,EA84BL,WA94BK;AAAA,EA84BQ,MA94BR;AAAA,EA+4BL,WA/4BK;AAAA,EA+4BQ,MA/4BR;AAAA,EAg5BL,WAh5BK;AAAA,EAg5BQ,MAh5BR;AAAA,EAi5BL,WAj5BK;AAAA,EAi5BQ,MAj5BR;AAAA,EAk5BL,WAl5BK;AAAA,EAk5BQ,MAl5BR;AAAA,EAm5BL,WAn5BK;AAAA,EAm5BQ,MAn5BR;AAAA,EAo5BL,WAp5BK;AAAA,EAo5BQ,MAp5BR;AAAA,EAq5BL,WAr5BK;AAAA,EAq5BQ,MAr5BR;AAAA,EAs5BL,WAt5BK;AAAA,EAs5BQ,MAt5BR;AAAA,EAu5BL,WAv5BK;AAAA,EAu5BQ,MAv5BR;AAAA,EAw5BL,WAx5BK;AAAA,EAw5BQ,MAx5BR;AAAA,EAy5BL,WAz5BK;AAAA,EAy5BQ,MAz5BR;AAAA,EA05BL,WA15BK;AAAA,EA05BQ,MA15BR;AAAA,EA25BL,WA35BK;AAAA,EA25BQ,MA35BR;AAAA,EA45BL,WA55BK;AAAA,EA45BQ,MA55BR;AAAA,EA65BL,WA75BK;AAAA,EA65BQ,MA75BR;AAAA,EA85BL,WA95BK;AAAA,EA85BQ,MA95BR;AAAA,EA+5BL,WA/5BK;AAAA,EA+5BQ,MA/5BR;AAAA,EAg6BL,WAh6BK;AAAA,EAg6BQ,MAh6BR;AAAA,EAi6BL,WAj6BK;AAAA,EAi6BQ,MAj6BR;AAAA,EAk6BL,WAl6BK;AAAA,EAk6BQ,MAl6BR;AAAA,EAm6BL,WAn6BK;AAAA,EAm6BQ,MAn6BR;AAAA,EAo6BL,WAp6BK;AAAA,EAo6BQ,MAp6BR;AAAA,EAq6BL,WAr6BK;AAAA,EAq6BQ,MAr6BR;AAAA,EAs6BL,WAt6BK;AAAA,EAs6BQ,MAt6BR;AAAA,EAu6BL,WAv6BK;AAAA,EAu6BQ,MAv6BR;AAAA,EAw6BL,WAx6BK;AAAA,EAw6BQ,MAx6BR;AAAA,EAy6BL,WAz6BK;AAAA,EAy6BQ,MAz6BR;AAAA,EA06BL,WA16BK;AAAA,EA06BQ,MA16BR;AAAA,EA26BL,WA36BK;AAAA,EA26BQ,MA36BR;AAAA,EA46BL,WA56BK;AAAA,EA46BQ,MA56BR;AAAA,EA66BL,WA76BK;AAAA,EA66BQ,MA76BR;AAAA,EA86BL,WA96BK;AAAA,EA86BQ,MA96BR;AAAA,EA+6BL,WA/6BK;AAAA,EA+6BQ,MA/6BR;AAAA,EAg7BL,WAh7BK;AAAA,EAg7BQ,MAh7BR;AAAA,EAi7BL,WAj7BK;AAAA,EAi7BQ,MAj7BR;AAAA,EAk7BL,WAl7BK;AAAA,EAk7BQ,MAl7BR;AAAA,EAm7BL,WAn7BK;AAAA,EAm7BQ,MAn7BR;AAAA,EAo7BL,WAp7BK;AAAA,EAo7BQ,MAp7BR;AAAA,EAq7BL,WAr7BK;AAAA,EAq7BQ,MAr7BR;AAAA,EAs7BL,WAt7BK;AAAA,EAs7BQ,MAt7BR;AAAA,EAu7BL,WAv7BK;AAAA,EAu7BQ,MAv7BR;AAAA,EAw7BL,WAx7BK;AAAA,EAw7BQ,MAx7BR;AAAA,EAy7BL,WAz7BK;AAAA,EAy7BQ,MAz7BR;AAAA,EA07BL,WA17BK;AAAA,EA07BQ,MA17BR;AAAA,EA27BL,WA37BK;AAAA,EA27BQ,MA37BR;AAAA,EA47BL,WA57BK;AAAA,EA47BQ,MA57BR;AAAA,EA67BL,WA77BK;AAAA,EA67BQ,MA77BR;AAAA,EA87BL,WA97BK;AAAA,EA87BQ,MA97BR;AAAA,EA+7BL,WA/7BK;AAAA,EA+7BQ,MA/7BR;AAAA,EAg8BL,WAh8BK;AAAA,EAg8BQ,MAh8BR;AAAA,EAi8BL,WAj8BK;AAAA,EAi8BQ,MAj8BR;AAAA,EAk8BL,WAl8BK;AAAA,EAk8BQ,MAl8BR;AAAA,EAm8BL,WAn8BK;AAAA,EAm8BQ,MAn8BR;AAAA,EAo8BL,WAp8BK;AAAA,EAo8BQ,MAp8BR;AAAA,EAq8BL,WAr8BK;AAAA,EAq8BQ,MAr8BR;AAAA,EAs8BL,WAt8BK;AAAA,EAs8BQ,MAt8BR;AAAA,EAu8BL,WAv8BK;AAAA,EAu8BQ,MAv8BR;AAAA,EAw8BL,WAx8BK;AAAA,EAw8BQ,MAx8BR;AAAA,EAy8BL,WAz8BK;AAAA,EAy8BQ,MAz8BR;AAAA,EA08BL,WA18BK;AAAA,EA08BQ,MA18BR;AAAA,EA28BL,WA38BK;AAAA,EA28BQ,MA38BR;AAAA,EA48BL,WA58BK;AAAA,EA48BQ,MA58BR;AAAA,EA68BL,WA78BK;AAAA,EA68BQ,MA78BR;AAAA,EA88BL,WA98BK;AAAA,EA88BQ,MA98BR;AAAA,EA+8BL,WA/8BK;AAAA,EA+8BQ,MA/8BR;AAAA,EAg9BL,WAh9BK;AAAA,EAg9BQ,MAh9BR;AAAA,EAi9BL,WAj9BK;AAAA,EAi9BQ,MAj9BR;AAAA,EAk9BL,WAl9BK;AAAA,EAk9BQ,MAl9BR;AAAA,EAm9BL,WAn9BK;AAAA,EAm9BQ,MAn9BR;AAAA,EAo9BL,WAp9BK;AAAA,EAo9BQ,MAp9BR;AAAA,EAq9BL,WAr9BK;AAAA,EAq9BQ,MAr9BR;AAAA,EAs9BL,WAt9BK;AAAA,EAs9BQ,MAt9BR;AAAA,EAu9BL,WAv9BK;AAAA,EAu9BQ,MAv9BR;AAAA,EAw9BL,WAx9BK;AAAA,EAw9BQ,MAx9BR;AAAA,EAy9BL,WAz9BK;AAAA,EAy9BQ,MAz9BR;AAAA,EA09BL,WA19BK;AAAA,EA09BQ,MA19BR;AAAA,EA29BL,WA39BK;AAAA,EA29BQ,MA39BR;AAAA,EA49BL,WA59BK;AAAA,EA49BQ,MA59BR;AAAA,EA69BL,WA79BK;AAAA,EA69BQ,MA79BR;AAAA,EA89BL,WA99BK;AAAA,EA89BQ,MA99BR;AAAA,EA+9BL,WA/9BK;AAAA,EA+9BQ,MA/9BR;AAAA,EAg+BL,WAh+BK;AAAA,EAg+BQ,MAh+BR;AAAA,EAi+BL,WAj+BK;AAAA,EAi+BQ,MAj+BR;AAAA,EAk+BL,WAl+BK;AAAA,EAk+BQ,MAl+BR;AAAA,EAm+BL,WAn+BK;AAAA,EAm+BQ,MAn+BR;AAAA,EAo+BL,WAp+BK;AAAA,EAo+BQ,MAp+BR;AAAA,EAq+BL,WAr+BK;AAAA,EAq+BQ,MAr+BR;AAAA,EAs+BL,WAt+BK;AAAA,EAs+BQ,MAt+BR;AAAA,EAu+BL,WAv+BK;AAAA,EAu+BQ,MAv+BR;AAAA,EAw+BL,WAx+BK;AAAA,EAw+BQ,MAx+BR;AAAA,EAy+BL,WAz+BK;AAAA,EAy+BQ,MAz+BR;AAAA,EA0+BL,WA1+BK;AAAA,EA0+BQ,MA1+BR;AAAA,EA2+BL,WA3+BK;AAAA,EA2+BQ,MA3+BR;AAAA,EA4+BL,WA5+BK;AAAA,EA4+BQ,MA5+BR;AAAA,EA6+BL,WA7+BK;AAAA,EA6+BQ,MA7+BR;AAAA,EA8+BL,WA9+BK;AAAA,EA8+BQ,MA9+BR;AAAA,EA++BL,WA/+BK;AAAA,EA++BQ,MA/+BR;AAAA,EAg/BL,WAh/BK;AAAA,EAg/BQ,MAh/BR;AAAA,EAi/BL,WAj/BK;AAAA,EAi/BQ,MAj/BR;AAAA,EAk/BL,WAl/BK;AAAA,EAk/BQ,MAl/BR;AAAA,EAm/BL,WAn/BK;AAAA,EAm/BQ,MAn/BR;AAAA,EAo/BL,WAp/BK;AAAA,EAo/BQ,MAp/BR;AAAA,EAq/BL,WAr/BK;AAAA,EAq/BQ,MAr/BR;AAAA,EAs/BL,WAt/BK;AAAA,EAs/BQ,MAt/BR;AAAA,EAu/BL,WAv/BK;AAAA,EAu/BQ,MAv/BR;AAAA,EAw/BL,WAx/BK;AAAA,EAw/BQ,MAx/BR;AAAA,EAy/BL,WAz/BK;AAAA,EAy/BQ,MAz/BR;AAAA,EA0/BL,WA1/BK;AAAA,EA0/BQ,MA1/BR;AAAA,EA2/BL,WA3/BK;AAAA,EA2/BQ,MA3/BR;AAAA,EA4/BL,WA5/BK;AAAA,EA4/BQ,MA5/BR;AAAA,EA6/BL,WA7/BK;AAAA,EA6/BQ,MA7/BR;AAAA,EA8/BL,WA9/BK;AAAA,EA8/BQ,MA9/BR;AAAA,EA+/BL,WA//BK;AAAA,EA+/BQ,MA//BR;AAAA,EAggCL,WAhgCK;AAAA,EAggCQ,MAhgCR;AAAA,EAigCL,WAjgCK;AAAA,EAigCQ,MAjgCR;AAAA,EAkgCL,WAlgCK;AAAA,EAkgCQ,MAlgCR;AAAA,EAmgCL,WAngCK;AAAA,EAmgCQ,MAngCR;AAAA,EAogCL,WApgCK;AAAA,EAogCQ,MApgCR;AAAA,EAqgCL,WArgCK;AAAA,EAqgCQ,MArgCR;AAAA,EAsgCL,WAtgCK;AAAA,EAsgCQ,MAtgCR;AAAA,EAugCL,QAvgCK;AAAA,EAugCK,MAvgCL;AAAA,EAwgCL,WAxgCK;AAAA,EAwgCQ,MAxgCR;AAAA,EAygCL,WAzgCK;AAAA,EAygCQ,MAzgCR;AAAA,EA0gCL,WA1gCK;AAAA,EA0gCQ,MA1gCR;AAAA,EA2gCL,YA3gCK;AAAA,EA2gCS,MA3gCT;AAAA,EA4gCL,WA5gCK;AAAA,EA4gCQ,MA5gCR;AAAA,EA6gCL,YA7gCK;AAAA,EA6gCS,MA7gCT;AAAA,EA8gCL,QA9gCK;AAAA,EA8gCK,MA9gCL;AAAA,EA+gCL,aA/gCK;AAAA,EA+gCU,MA/gCV;AAAA,EAghCL,YAhhCK;AAAA,EAghCS,MAhhCT;AAAA,EAihCL,YAjhCK;AAAA,EAihCS,MAjhCT;AAAA,EAkhCL,iBAlhCK;AAAA,EAkhCc,MAlhCd;AAAA,EAmhCL,WAnhCK;AAAA,EAmhCQ,MAnhCR;AAAA,EAohCL,gBAphCK;AAAA,EAohCa,MAphCb;AAAA,EAqhCL,kBArhCK;AAAA,EAqhCe,MArhCf;AAAA,EAshCL,iBAthCK;AAAA,EAshCc,MAthCd;AAAA,EAuhCL,gBAvhCK;AAAA,EAuhCa,MAvhCb;AAAA,EAwhCL,oBAxhCK;AAAA,EAwhCiB,MAxhCjB;AAAA,EAyhCL,iBAzhCK;AAAA,EAyhCc,MAzhCd;AAAA,EA0hCL,qBA1hCK;AAAA,EA0hCkB,MA1hClB;AAAA,EA2hCL,WA3hCK;AAAA,EA2hCQ,MA3hCR;AAAA,EA4hCL,oBA5hCK;AAAA,EA4hCiB,MA5hCjB;AAAA,EA6hCL,SA7hCK;AAAA,EA6hCM,MA7hCN;AAAA,EA8hCL,MA9hCK;AAAA,EA8hCG,MA9hCH;AAAA,EA+hCL,YA/hCK;AAAA,EA+hCS,MA/hCT;AAAA,EAgiCL,kBAhiCK;AAAA,EAgiCe,MAhiCf;AAAA,EAiiCL,iBAjiCK;AAAA,EAiiCc,MAjiCd;AAAA,EAkiCL,sBAliCK;AAAA,EAkiCmB,MAliCnB;AAAA,EAmiCL,2BAniCK;AAAA,EAmiCwB,MAniCxB;AAAA,EAoiCL,sBApiCK;AAAA,EAoiCmB,MApiCnB;AAAA,EAqiCL,2BAriCK;AAAA,EAqiCwB,MAriCxB;AAAA,EAsiCL,YAtiCK;AAAA,EAsiCS,MAtiCT;AAAA,EAuiCL,iBAviCK;AAAA,EAuiCc,MAviCd;AAAA,EAwiCL,sBAxiCK;AAAA,EAwiCmB,MAxiCnB;AAAA,EAyiCL,2BAziCK;AAAA,EAyiCwB,MAziCxB;AAAA,EA0iCL,mBA1iCK;AAAA,EA0iCgB,MA1iChB;AAAA,EA2iCL,wBA3iCK;AAAA,EA2iCqB,MA3iCrB;AAAA,EA4iCL,0BA5iCK;AAAA,EA4iCuB,MA5iCvB;AAAA,EA6iCL,yBA7iCK;AAAA,EA6iCsB,MA7iCtB;AAAA,EA8iCL,iBA9iCK;AAAA,EA8iCc,MA9iCd;AAAA,EA+iCL,kBA/iCK;AAAA,EA+iCe,MA/iCf;AAAA,EAgjCL,OAhjCK;AAAA,EAgjCI,MAhjCJ;AAAA,EAijCL,UAjjCK;AAAA,EAijCO,MAjjCP;AAAA,EAkjCL,OAljCK;AAAA,EAkjCI,MAljCJ;AAAA,EAmjCL,YAnjCK;AAAA,EAmjCS,MAnjCT;AAAA,EAojCL,SApjCK;AAAA,EAojCM,MApjCN;AAAA,EAqjCL,YArjCK;AAAA,EAqjCS,MArjCT;AAAA,EAsjCL,WAtjCK;AAAA,EAsjCQ,MAtjCR;AAAA,EAujCL,oBAvjCK;AAAA,EAujCiB,MAvjCjB;AAAA,EAwjCL,gBAxjCK;AAAA,EAwjCa,MAxjCb;AAAA,EAyjCL,UAzjCK;AAAA,EAyjCO,MAzjCP;AAAA,EA0jCL,YA1jCK;AAAA,EA0jCS,MA1jCT;AAAA,EA2jCL,aA3jCK;AAAA,EA2jCU,MA3jCV;AAAA,EA4jCL,gBA5jCK;AAAA,EA4jCa,MA5jCb;AAAA,EA6jCL,iBA7jCK;AAAA,EA6jCc,MA7jCd;AAAA,EA8jCL,gBA9jCK;AAAA,EA8jCa,MA9jCb;AAAA,EA+jCL,OA/jCK;AAAA,EA+jCI,MA/jCJ;AAAA,EAgkCL,kBAhkCK;AAAA,EAgkCe,MAhkCf;AAAA,EAikCL,0BAjkCK;AAAA,EAikCuB,MAjkCvB;AAAA,EAkkCL,mBAlkCK;AAAA,EAkkCgB,MAlkChB;AAAA,EAmkCL,2BAnkCK;AAAA,EAmkCwB,MAnkCxB;AAAA,EAokCL,WApkCK;AAAA,EAokCQ,MApkCR;AAAA,EAqkCL,YArkCK;AAAA,EAqkCS,MArkCT;AAAA,EAskCL,UAtkCK;AAAA,EAskCO,MAtkCP;AAAA,EAukCL,WAvkCK;AAAA,EAukCQ,MAvkCR;AAAA,EAwkCL,cAxkCK;AAAA,EAwkCW,MAxkCX;AAAA,EAykCL,iBAzkCK;AAAA,EAykCc,MAzkCd;AAAA,EA0kCL,cA1kCK;AAAA,EA0kCW,MA1kCX;AAAA,EA2kCL,kBA3kCK;AAAA,EA2kCe,MA3kCf;AAAA,EA4kCL,SA5kCK;AAAA,EA4kCM,MA5kCN;AAAA,EA6kCL,cA7kCK;AAAA,EA6kCW,MA7kCX;AAAA,EA8kCL,QA9kCK;AAAA,EA8kCK,MA9kCL;AAAA,EA+kCL,oBA/kCK;AAAA,EA+kCiB,MA/kCjB;AAAA,EAglCL,eAhlCK;AAAA,EAglCY,MAhlCZ;AAAA,EAilCL,OAjlCK;AAAA,EAilCI,MAjlCJ;AAAA,EAklCL,YAllCK;AAAA,EAklCS,MAllCT;AAAA,EAmlCL,aAnlCK;AAAA,EAmlCU,MAnlCV;AAAA,EAolCL,oBAplCK;AAAA,EAolCiB,MAplCjB;AAAA,EAqlCL,oBArlCK;AAAA,EAqlCiB,MArlCjB;AAAA,EAslCL,cAtlCK;AAAA,EAslCW,MAtlCX;AAAA,EAulCL,aAvlCK;AAAA,EAulCU,MAvlCV;AAAA,EAwlCL,KAxlCK;AAAA,EAwlCE,MAxlCF;AAAA,EAylCL,gBAzlCK;AAAA,EAylCa,MAzlCb;AAAA,EA0lCL,OA1lCK;AAAA,EA0lCI,MA1lCJ;AAAA,EA2lCL,YA3lCK;AAAA,EA2lCS,MA3lCT;AAAA,EA4lCL,YA5lCK;AAAA,EA4lCS,MA5lCT;AAAA,EA6lCL,WA7lCK;AAAA,EA6lCQ,MA7lCR;AAAA,EA8lCL,eA9lCK;AAAA,EA8lCY,MA9lCZ;AAAA,EA+lCL,eA/lCK;AAAA,EA+lCY,MA/lCZ;AAAA,EAgmCL,gBAhmCK;AAAA,EAgmCa,MAhmCb;AAAA,EAimCL,aAjmCK;AAAA,EAimCU,MAjmCV;AAAA,EAkmCL,cAlmCK;AAAA,EAkmCW,MAlmCX;AAAA,EAmmCL,cAnmCK;AAAA,EAmmCW,MAnmCX;AAAA,EAomCL,cApmCK;AAAA,EAomCW,MApmCX;AAAA,EAqmCL,eArmCK;AAAA,EAqmCY,MArmCZ;AAAA,EAsmCL,YAtmCK;AAAA,EAsmCS,MAtmCT;AAAA,EAumCL,WAvmCK;AAAA,EAumCQ,MAvmCR;AAAA,EAwmCL,eAxmCK;AAAA,EAwmCY,MAxmCZ;AAAA,EAymCL,gBAzmCK;AAAA,EAymCa,MAzmCb;AAAA,EA0mCL,gBA1mCK;AAAA,EA0mCa,MA1mCb;AAAA,EA2mCL,kBA3mCK;AAAA,EA2mCe,MA3mCf;AAAA,EA4mCL,kBA5mCK;AAAA,EA4mCe,MA5mCf;AAAA,EA6mCL,mBA7mCK;AAAA,EA6mCgB,MA7mChB;AAAA,EA8mCL,gBA9mCK;AAAA,EA8mCa,MA9mCb;AAAA,EA+mCL,cA/mCK;AAAA,EA+mCW,MA/mCX;AAAA,EAgnCL,WAhnCK;AAAA,EAgnCQ,MAhnCR;AAAA,EAinCL,cAjnCK;AAAA,EAinCW,MAjnCX;AAAA,EAknCL,oBAlnCK;AAAA,EAknCiB,MAlnCjB;AAAA,EAmnCL,oBAnnCK;AAAA,EAmnCiB,MAnnCjB;AAAA,EAonCL,gBApnCK;AAAA,EAonCa,MApnCb;AAAA,EAqnCL,YArnCK;AAAA,EAqnCS,MArnCT;AAAA,EAsnCL,qBAtnCK;AAAA,EAsnCkB,MAtnClB;AAAA,EAunCL,iBAvnCK;AAAA,EAunCc,MAvnCd;AAAA,EAwnCL,oBAxnCK;AAAA,EAwnCiB,MAxnCjB;AAAA,EAynCL,iBAznCK;AAAA,EAynCc,MAznCd;AAAA,EA0nCL,cA1nCK;AAAA,EA0nCW,MA1nCX;AAAA,EA2nCL,eA3nCK;AAAA,EA2nCY,MA3nCZ;AAAA,EA4nCL,SA5nCK;AAAA,EA4nCM,MA5nCN;AAAA,EA6nCL,WA7nCK;AAAA,EA6nCQ,MA7nCR;AAAA,EA8nCL,cA9nCK;AAAA,EA8nCW,MA9nCX;AAAA,EA+nCL,iBA/nCK;AAAA,EA+nCc,MA/nCd;AAAA,EAgoCL,aAhoCK;AAAA,EAgoCU,MAhoCV;AAAA,EAioCL,mBAjoCK;AAAA,EAioCgB,MAjoChB;AAAA,EAkoCL,cAloCK;AAAA,EAkoCW,MAloCX;AAAA,EAmoCL,cAnoCK;AAAA,EAmoCW,MAnoCX;AAAA,EAooCL,aApoCK;AAAA,EAooCU,MApoCV;AAAA,EAqoCL,aAroCK;AAAA,EAqoCU,MAroCV;AAAA,EAsoCL,sBAtoCK;AAAA,EAsoCmB,MAtoCnB;AAAA,EAuoCL,YAvoCK;AAAA,EAuoCS,MAvoCT;AAAA,EAwoCL,qBAxoCK;AAAA,EAwoCkB,MAxoClB;AAAA,EAyoCL,SAzoCK;AAAA,EAyoCM,MAzoCN;AAAA,EA0oCL,eA1oCK;AAAA,EA0oCY,MA1oCZ;AAAA,EA2oCL,gBA3oCK;AAAA,EA2oCa,MA3oCb;AAAA,EA4oCL,gBA5oCK;AAAA,EA4oCa,MA5oCb;AAAA,EA6oCL,yBA7oCK;AAAA,EA6oCsB,MA7oCtB;AAAA,EA8oCL,UA9oCK;AAAA,EA8oCO,MA9oCP;AAAA,EA+oCL,sBA/oCK;AAAA,EA+oCmB,MA/oCnB;AAAA,EAgpCL,gBAhpCK;AAAA,EAgpCa,MAhpCb;AAAA,EAipCL,cAjpCK;AAAA,EAipCW,MAjpCX;AAAA,EAkpCL,mBAlpCK;AAAA,EAkpCgB,MAlpChB;AAAA,EAmpCL,eAnpCK;AAAA,EAmpCY,MAnpCZ;AAAA,EAopCL,UAppCK;AAAA,EAopCO,MAppCP;AAAA,EAqpCL,WArpCK;AAAA,EAqpCQ,MArpCR;AAAA,EAspCL,qBAtpCK;AAAA,EAspCkB,MAtpClB;AAAA,EAupCL,IAvpCK;AAAA,EAupCC,MAvpCD;AAAA,EAwpCL,QAxpCK;AAAA,EAwpCK,MAxpCL;AAAA,EAypCL,aAzpCK;AAAA,EAypCU,MAzpCV;AAAA,EA0pCL,SA1pCK;AAAA,EA0pCM,MA1pCN;AAAA,EA2pCL,SA3pCK;AAAA,EA2pCM,MA3pCN;AAAA,EA4pCL,WA5pCK;AAAA,EA4pCQ,MA5pCR;AAAA,EA6pCL,YA7pCK;AAAA,EA6pCS,MA7pCT;AAAA,EA8pCL,QA9pCK;AAAA,EA8pCK,MA9pCL;AAAA,EA+pCL,YA/pCK;AAAA,EA+pCS,MA/pCT;AAAA,EAgqCL,YAhqCK;AAAA,EAgqCS,MAhqCT;AAAA,EAiqCL,qBAjqCK;AAAA,EAiqCkB,MAjqClB;AAAA,EAkqCL,iBAlqCK;AAAA,EAkqCc,MAlqCd;AAAA,EAmqCL,oBAnqCK;AAAA,EAmqCiB,MAnqCjB;AAAA,EAoqCL,iBApqCK;AAAA,EAoqCc,MApqCd;AAAA,EAqqCL,qBArqCK;AAAA,EAqqCkB,MArqClB;AAAA,EAsqCL,cAtqCK;AAAA,EAsqCW,MAtqCX;AAAA,EAuqCL,aAvqCK;AAAA,EAuqCU,MAvqCV;AAAA,EAwqCL,MAxqCK;AAAA,EAwqCG,MAxqCH;AAAA,EAyqCL,kBAzqCK;AAAA,EAyqCe,MAzqCf;AAAA,EA0qCL,YA1qCK;AAAA,EA0qCS,MA1qCT;AAAA,EA2qCL,GA3qCK;AAAA,EA2qCA,MA3qCA;AAAA,EA4qCL,WA5qCK;AAAA,EA4qCQ,MA5qCR;AAAA,EA6qCL,WA7qCK;AAAA,EA6qCQ,MA7qCR;AAAA,EA8qCL,oBA9qCK;AAAA,EA8qCiB,MA9qCjB;AAAA,EA+qCL,QA/qCK;AAAA,EA+qCK,MA/qCL;AAAA,EAgrCL,YAhrCK;AAAA,EAgrCS,MAhrCT;AAAA,EAirCL,YAjrCK;AAAA,EAirCS,MAjrCT;AAAA,EAkrCL,YAlrCK;AAAA,EAkrCS,MAlrCT;AAAA,EAmrCL,UAnrCK;AAAA,EAmrCO,MAnrCP;AAAA,EAorCL,YAprCK;AAAA,EAorCS,MAprCT;AAAA,EAqrCL,KArrCK;AAAA,EAqrCE,MArrCF;AAAA,EAsrCL,cAtrCK;AAAA,EAsrCW,MAtrCX;AAAA,EAurCL,WAvrCK;AAAA,EAurCQ,MAvrCR;AAAA,EAwrCL,SAxrCK;AAAA,EAwrCM,MAxrCN;AAAA,EAyrCL,YAzrCK;AAAA,EAyrCS,MAzrCT;AAAA,EA0rCL,WA1rCK;AAAA,EA0rCQ,MA1rCR;AAAA,EA2rCL,sBA3rCK;AAAA,EA2rCmB,MA3rCnB;AAAA,EA4rCL,SA5rCK;AAAA,EA4rCM,MA5rCN;AAAA,EA6rCL,YA7rCK;AAAA,EA6rCS,MA7rCT;AAAA,EA8rCL,WA9rCK;AAAA,EA8rCQ,MA9rCR;AAAA,EA+rCL,gBA/rCK;AAAA,EA+rCa,MA/rCb;AAAA,EAgsCL,kBAhsCK;AAAA,EAgsCe,MAhsCf;AAAA,EAisCL,YAjsCK;AAAA,EAisCS,MAjsCT;AAAA,EAksCL,iBAlsCK;AAAA,EAksCc,MAlsCd;AAAA,EAmsCL,sBAnsCK;AAAA,EAmsCmB,MAnsCnB;AAAA,EAosCL,uBApsCK;AAAA,EAosCoB,MApsCpB;AAAA,EAqsCL,oBArsCK;AAAA,EAqsCiB,MArsCjB;AAAA,EAssCL,YAtsCK;AAAA,EAssCS,MAtsCT;AAAA,EAusCL,aAvsCK;AAAA,EAusCU,MAvsCV;AAAA,EAwsCL,KAxsCK;AAAA,EAwsCE,MAxsCF;AAAA,EAysCL,MAzsCK;AAAA,EAysCG,MAzsCH;AAAA,EA0sCL,iBA1sCK;AAAA,EA0sCc,MA1sCd;AAAA,EA2sCL,WA3sCK;AAAA,EA2sCQ,MA3sCR;AAAA,EA4sCL,iBA5sCK;AAAA,EA4sCc,MA5sCd;AAAA,EA6sCL,WA7sCK;AAAA,EA6sCQ,MA7sCR;AAAA,EA8sCL,eA9sCK;AAAA,EA8sCY,MA9sCZ;AAAA,EA+sCL,YA/sCK;AAAA,EA+sCS,MA/sCT;AAAA,EAgtCL,SAhtCK;AAAA,EAgtCM,MAhtCN;AAAA,EAitCL,aAjtCK;AAAA,EAitCU,MAjtCV;AAAA,EAktCL,aAltCK;AAAA,EAktCU,MAltCV;AAAA,EAmtCL,OAntCK;AAAA,EAmtCI,MAntCJ;AAAA,EAotCL,YAptCK;AAAA,EAotCS,MAptCT;AAAA,EAqtCL,YArtCK;AAAA,EAqtCS,MArtCT;AAAA,EAstCL,eAttCK;AAAA,EAstCY,MAttCZ;AAAA,EAutCL,eAvtCK;AAAA,EAutCY,MAvtCZ;AAAA,EAwtCL,YAxtCK;AAAA,EAwtCS,MAxtCT;AAAA,EAytCL,aAztCK;AAAA,EAytCU,MAztCV;AAAA,EA0tCL,cA1tCK;AAAA,EA0tCW,MA1tCX;AAAA,EA2tCL,2BA3tCK;AAAA,EA2tCwB,MA3tCxB;AAAA,EA4tCL,0BA5tCK;AAAA,EA4tCuB,MA5tCvB;AAAA,EA6tCL,2BA7tCK;AAAA,EA6tCwB,MA7tCxB;AAAA,EA8tCL,4BA9tCK;AAAA,EA8tCyB,MA9tCzB;AAAA,EA+tCL,oCA/tCK;AAAA,EA+tCiC,MA/tCjC;AAAA,EAguCL,6BAhuCK;AAAA,EAguC0B,MAhuC1B;AAAA,EAiuCL,qCAjuCK;AAAA,EAiuCkC,MAjuClC;AAAA,EAkuCL,wBAluCK;AAAA,EAkuCqB,MAluCrB;AAAA,EAmuCL,yBAnuCK;AAAA,EAmuCsB,MAnuCtB;AAAA,EAouCL,gBApuCK;AAAA,EAouCa,MApuCb;AAAA,EAquCL,2BAruCK;AAAA,EAquCwB,MAruCxB;AAAA,EAsuCL,4BAtuCK;AAAA,EAsuCyB,MAtuCzB;AAAA,EAuuCL,kBAvuCK;AAAA,EAuuCe,MAvuCf;AAAA,EAwuCL,kBAxuCK;AAAA,EAwuCe,MAxuCf;AAAA,EAyuCL,aAzuCK;AAAA,EAyuCU,MAzuCV;AAAA,EA0uCL,WA1uCK;AAAA,EA0uCQ,MA1uCR;AAAA,EA2uCL,wBA3uCK;AAAA,EA2uCqB,MA3uCrB;AAAA,EA4uCL,yBA5uCK;AAAA,EA4uCsB,MA5uCtB;AAAA,EA6uCL,8BA7uCK;AAAA,EA6uC2B,MA7uC3B;AAAA,EA8uCL,yBA9uCK;AAAA,EA8uCsB,MA9uCtB;AAAA,EA+uCL,OA/uCK;AAAA,EA+uCI,MA/uCJ;AAAA,EAgvCL,YAhvCK;AAAA,EAgvCS,MAhvCT;AAAA,EAivCL,OAjvCK;AAAA,EAivCI,MAjvCJ;AAAA,EAkvCL,YAlvCK;AAAA,EAkvCS,MAlvCT;AAAA,EAmvCL,cAnvCK;AAAA,EAmvCW,MAnvCX;AAAA,EAovCL,YApvCK;AAAA,EAovCS,MApvCT;AAAA,EAqvCL,YArvCK;AAAA,EAqvCS,MArvCT;AAAA,EAsvCL,QAtvCK;AAAA,EAsvCK,MAtvCL;AAAA,EAuvCL,UAvvCK;AAAA,EAuvCO,MAvvCP;AAAA,EAwvCL,SAxvCK;AAAA,EAwvCM,MAxvCN;AAAA,EAyvCL,WAzvCK;AAAA,EAyvCQ,MAzvCR;AAAA,EA0vCL,aA1vCK;AAAA,EA0vCU,MA1vCV;AAAA,EA2vCL,cA3vCK;AAAA,EA2vCW,MA3vCX;AAAA,EA4vCL,oBA5vCK;AAAA,EA4vCiB,MA5vCjB;AAAA,EA6vCL,gBA7vCK;AAAA,EA6vCa,MA7vCb;AAAA,EA8vCL,aA9vCK;AAAA,EA8vCU,MA9vCV;AAAA,EA+vCL,mBA/vCK;AAAA,EA+vCgB,MA/vChB;AAAA,EAgwCL,YAhwCK;AAAA,EAgwCS,MAhwCT;AAAA,EAiwCL,cAjwCK;AAAA,EAiwCW,MAjwCX;AAAA,EAkwCL,eAlwCK;AAAA,EAkwCY,MAlwCZ;AAAA,EAmwCL,qBAnwCK;AAAA,EAmwCkB,MAnwClB;AAAA,EAowCL,iBApwCK;AAAA,EAowCc,MApwCd;AAAA,EAqwCL,cArwCK;AAAA,EAqwCW,MArwCX;AAAA,EAswCL,oBAtwCK;AAAA,EAswCiB,MAtwCjB;AAAA,EAuwCL,aAvwCK;AAAA,EAuwCU,MAvwCV;AAAA,EAwwCL,eAxwCK;AAAA,EAwwCY,MAxwCZ;AAAA,EAywCL,eAzwCK;AAAA,EAywCY,MAzwCZ;AAAA,EA0wCL,sBA1wCK;AAAA,EA0wCmB,MA1wCnB;AAAA,EA2wCL,eA3wCK;AAAA,EA2wCY,MA3wCZ;AAAA,EA4wCL,cA5wCK;AAAA,EA4wCW,MA5wCX;AAAA,EA6wCL,gBA7wCK;AAAA,EA6wCa,MA7wCb;AAAA,EA8wCL,gBA9wCK;AAAA,EA8wCa,MA9wCb;AAAA,EA+wCL,uBA/wCK;AAAA,EA+wCoB,MA/wCpB;AAAA,EAgxCL,gBAhxCK;AAAA,EAgxCa,MAhxCb;AAAA,EAixCL,OAjxCK;AAAA,EAixCI,MAjxCJ;AAAA,EAkxCL,eAlxCK;AAAA,EAkxCY,MAlxCZ;AAAA,EAmxCL,UAnxCK;AAAA,EAmxCO,MAnxCP;AAAA,EAoxCL,uBApxCK;AAAA,EAoxCoB,MApxCpB;AAAA,EAqxCL,kBArxCK;AAAA,EAqxCe,MArxCf;AAAA,EAsxCL,wBAtxCK;AAAA,EAsxCqB,MAtxCrB;AAAA,EAuxCL,gBAvxCK;AAAA,EAuxCa,MAvxCb;AAAA,EAwxCL,wBAxxCK;AAAA,EAwxCqB,MAxxCrB;AAAA,EAyxCL,WAzxCK;AAAA,EAyxCQ,MAzxCR;AAAA,EA0xCL,SA1xCK;AAAA,EA0xCM,MA1xCN;AAAA,EA2xCL,WA3xCK;AAAA,EA2xCQ,MA3xCR;AAAA,EA4xCL,SA5xCK;AAAA,EA4xCM,MA5xCN;AAAA,EA6xCL,YA7xCK;AAAA,EA6xCS,MA7xCT;AAAA,EA8xCL,YA9xCK;AAAA,EA8xCS,MA9xCT;AAAA,EA+xCL,QA/xCK;AAAA,EA+xCK,MA/xCL;AAAA,EAgyCL,eAhyCK;AAAA,EAgyCY,MAhyCZ;AAAA,EAiyCL,gBAjyCK;AAAA,EAiyCa,MAjyCb;AAAA,EAkyCL,UAlyCK;AAAA,EAkyCO,MAlyCP;AAAA,EAmyCL,GAnyCK;AAAA,EAmyCA,MAnyCA;AAAA,EAoyCL,YApyCK;AAAA,EAoyCS,MApyCT;AAAA,EAqyCL,WAryCK;AAAA,EAqyCQ,MAryCR;AAAA,EAsyCL,QAtyCK;AAAA,EAsyCK,MAtyCL;AAAA,EAuyCL,QAvyCK;AAAA,EAuyCK,MAvyCL;AAAA,EAwyCL,YAxyCK;AAAA,EAwyCS,MAxyCT;AAAA,EAyyCL,YAzyCK;AAAA,EAyyCS,MAzyCT;AAAA,EA0yCL,WA1yCK;AAAA,EA0yCQ,MA1yCR;AAAA,EA2yCL,oBA3yCK;AAAA,EA2yCiB,MA3yCjB;AAAA,EA4yCL,gBA5yCK;AAAA,EA4yCa,MA5yCb;AAAA,EA6yCL,iBA7yCK;AAAA,EA6yCc,MA7yCd;AAAA,EA8yCL,qBA9yCK;AAAA,EA8yCkB,MA9yClB;AAAA,EA+yCL,UA/yCK;AAAA,EA+yCO,MA/yCP;AAAA,EAgzCL,QAhzCK;AAAA,EAgzCK,MAhzCL;AAAA,EAizCL,OAjzCK;AAAA,EAizCI,MAjzCJ;AAAA,EAkzCL,eAlzCK;AAAA,EAkzCY,MAlzCZ;AAAA,EAmzCL,UAnzCK;AAAA,EAmzCO,MAnzCP;AAAA,EAozCL,gBApzCK;AAAA,EAozCa,MApzCb;AAAA,EAqzCL,WArzCK;AAAA,EAqzCQ,MArzCR;AAAA,EAszCL,QAtzCK;AAAA,EAszCK,MAtzCL;AAAA,EAuzCL,UAvzCK;AAAA,EAuzCO,MAvzCP;AAAA,EAwzCL,eAxzCK;AAAA,EAwzCY,MAxzCZ;AAAA,EAyzCL,SAzzCK;AAAA,EAyzCM,MAzzCN;AAAA,EA0zCL,aA1zCK;AAAA,EA0zCU,MA1zCV;AAAA,EA2zCL,OA3zCK;AAAA,EA2zCI,MA3zCJ;AAAA,EA4zCL,MA5zCK;AAAA,EA4zCG,MA5zCH;AAAA,EA6zCL,YA7zCK;AAAA,EA6zCS,MA7zCT;AAAA,EA8zCL,UA9zCK;AAAA,EA8zCO,MA9zCP;AAAA,EA+zCL,SA/zCK;AAAA,EA+zCM,MA/zCN;AAAA,EAg0CL,YAh0CK;AAAA,EAg0CS,MAh0CT;AAAA,EAi0CL,MAj0CK;AAAA,EAi0CG,MAj0CH;AAAA,EAk0CL,YAl0CK;AAAA,EAk0CS,MAl0CT;AAAA,EAm0CL,cAn0CK;AAAA,EAm0CW,MAn0CX;AAAA,EAo0CL,eAp0CK;AAAA,EAo0CY,MAp0CZ;AAAA,EAq0CL,cAr0CK;AAAA,EAq0CW,MAr0CX;AAAA,EAs0CL,cAt0CK;AAAA,EAs0CW,MAt0CX;AAAA,EAu0CL,aAv0CK;AAAA,EAu0CU,MAv0CV;AAAA,EAw0CL,YAx0CK;AAAA,EAw0CS,MAx0CT;AAAA,EAy0CL,SAz0CK;AAAA,EAy0CM,MAz0CN;AAAA,EA00CL,aA10CK;AAAA,EA00CU,MA10CV;AAAA,EA20CL,aA30CK;AAAA,EA20CU,MA30CV;AAAA,EA40CL,YA50CK;AAAA,EA40CS,MA50CT;AAAA,EA60CL,sBA70CK;AAAA,EA60CmB,MA70CnB;AAAA,EA80CL,WA90CK;AAAA,EA80CQ,MA90CR;AAAA,EA+0CL,aA/0CK;AAAA,EA+0CU,MA/0CV;AAAA,EAg1CL,+BAh1CK;AAAA,EAg1C4B,MAh1C5B;AAAA,EAi1CL,sBAj1CK;AAAA,EAi1CmB,MAj1CnB;AAAA,EAk1CL,qBAl1CK;AAAA,EAk1CkB,MAl1ClB;AAAA,EAm1CL,cAn1CK;AAAA,EAm1CW,MAn1CX;AAAA,EAo1CL,uBAp1CK;AAAA,EAo1CoB,MAp1CpB;AAAA,EAq1CL,2BAr1CK;AAAA,EAq1CwB,MAr1CxB;AAAA,EAs1CL,KAt1CK;AAAA,EAs1CE,MAt1CF;AAAA,EAu1CL,sBAv1CK;AAAA,EAu1CmB,MAv1CnB;AAAA,EAw1CL,qBAx1CK;AAAA,EAw1CkB,MAx1ClB;AAAA,EAy1CL,qBAz1CK;AAAA,EAy1CkB,MAz1ClB;AAAA,EA01CL,eA11CK;AAAA,EA01CY,MA11CZ;AAAA,EA21CL,oBA31CK;AAAA,EA21CiB,MA31CjB;AAAA,EA41CL,cA51CK;AAAA,EA41CW,MA51CX;AAAA,EA61CL,aA71CK;AAAA,EA61CU,MA71CV;AAAA,EA81CL,cA91CK;AAAA,EA81CW,MA91CX;AAAA,EA+1CL,aA/1CK;AAAA,EA+1CU,MA/1CV;AAAA,EAg2CL,OAh2CK;AAAA,EAg2CI,MAh2CJ;AAAA,EAi2CL,oBAj2CK;AAAA,EAi2CiB,MAj2CjB;AAAA,EAk2CL,mBAl2CK;AAAA,EAk2CgB,MAl2ChB;AAAA,EAm2CL,mBAn2CK;AAAA,EAm2CgB,MAn2ChB;AAAA,EAo2CL,aAp2CK;AAAA,EAo2CU,MAp2CV;AAAA,EAq2CL,kBAr2CK;AAAA,EAq2Ce,MAr2Cf;AAAA,EAs2CL,mBAt2CK;AAAA,EAs2CgB,MAt2ChB;AAAA,EAu2CL,QAv2CK;AAAA,EAu2CK,MAv2CL;AAAA,EAw2CL,cAx2CK;AAAA,EAw2CW,MAx2CX;AAAA,EAy2CL,gBAz2CK;AAAA,EAy2Ca,MAz2Cb;AAAA,EA02CL,UA12CK;AAAA,EA02CO,MA12CP;AAAA,EA22CL,YA32CK;AAAA,EA22CS,MA32CT;AAAA,EA42CL,kBA52CK;AAAA,EA42Ce,MA52Cf;AAAA,EA62CL,yBA72CK;AAAA,EA62CsB,MA72CtB;AAAA,EA82CL,0BA92CK;AAAA,EA82CuB,MA92CvB;AAAA,EA+2CL,YA/2CK;AAAA,EA+2CS,MA/2CT;AAAA,EAg3CL,oBAh3CK;AAAA,EAg3CiB,MAh3CjB;AAAA,EAi3CL,eAj3CK;AAAA,EAi3CY,MAj3CZ;AAAA,EAk3CL,OAl3CK;AAAA,EAk3CI,MAl3CJ;AAAA,EAm3CL,eAn3CK;AAAA,EAm3CY,MAn3CZ;AAAA,EAo3CL,aAp3CK;AAAA,EAo3CU,MAp3CV;AAAA,EAq3CL,cAr3CK;AAAA,EAq3CW,MAr3CX;AAAA,EAs3CL,gBAt3CK;AAAA,EAs3Ca,MAt3Cb;AAAA,EAu3CL,MAv3CK;AAAA,EAu3CG,MAv3CH;AAAA,EAw3CL,eAx3CK;AAAA,EAw3CY,MAx3CZ;AAAA,EAy3CL,eAz3CK;AAAA,EAy3CY,MAz3CZ;AAAA,EA03CL,eA13CK;AAAA,EA03CY,MA13CZ;AAAA,EA23CL,YA33CK;AAAA,EA23CS,MA33CT;AAAA,EA43CL,iBA53CK;AAAA,EA43Cc,MA53Cd;AAAA,EA63CL,YA73CK;AAAA,EA63CS,MA73CT;AAAA,EA83CL,OA93CK;AAAA,EA83CI,MA93CJ;AAAA,EA+3CL,eA/3CK;AAAA,EA+3CY,MA/3CZ;AAAA,EAg4CL,gBAh4CK;AAAA,EAg4Ca,MAh4Cb;AAAA,EAi4CL,WAj4CK;AAAA,EAi4CQ,MAj4CR;AAAA,EAk4CL,YAl4CK;AAAA,EAk4CS,MAl4CT;AAAA,EAm4CL,wBAn4CK;AAAA,EAm4CqB,MAn4CrB;AAAA,EAo4CL,oBAp4CK;AAAA,EAo4CiB,MAp4CjB;AAAA,EAq4CL,OAr4CK;AAAA,EAq4CI,MAr4CJ;AAAA,EAs4CL,eAt4CK;AAAA,EAs4CY,MAt4CZ;AAAA,EAu4CL,oBAv4CK;AAAA,EAu4CiB,MAv4CjB;AAAA,EAw4CL,aAx4CK;AAAA,EAw4CU,MAx4CV;AAAA,EAy4CL,aAz4CK;AAAA,EAy4CU,MAz4CV;AAAA,EA04CL,eA14CK;AAAA,EA04CY,MA14CZ;AAAA,EA24CL,eA34CK;AAAA,EA24CY,MA34CZ;AAAA,EA44CL,gBA54CK;AAAA,EA44Ca,MA54Cb;AAAA,EA64CL,uBA74CK;AAAA,EA64CoB,MA74CpB;AAAA,EA84CL,kBA94CK;AAAA,EA84Ce,MA94Cf;AAAA,EA+4CL,YA/4CK;AAAA,EA+4CS,MA/4CT;AAAA,EAg5CL,eAh5CK;AAAA,EAg5CY,MAh5CZ;AAAA,EAi5CL,qBAj5CK;AAAA,EAi5CkB,MAj5ClB;AAAA,EAk5CL,gBAl5CK;AAAA,EAk5Ca,MAl5Cb;AAAA,EAm5CL,SAn5CK;AAAA,EAm5CM,MAn5CN;AAAA,EAo5CL,WAp5CK;AAAA,EAo5CQ,MAp5CR;AAAA,EAq5CL,iBAr5CK;AAAA,EAq5Cc,MAr5Cd;AAAA,EAs5CL,SAt5CK;AAAA,EAs5CM,MAt5CN;AAAA,EAu5CL,YAv5CK;AAAA,EAu5CS,MAv5CT;AAAA,EAw5CL,YAx5CK;AAAA,EAw5CS,MAx5CT;AAAA,EAy5CL,WAz5CK;AAAA,EAy5CQ,MAz5CR;AAAA,EA05CL,YA15CK;AAAA,EA05CS,MA15CT;AAAA,EA25CL,WA35CK;AAAA,EA25CQ,MA35CR;AAAA,EA45CL,YA55CK;AAAA,EA45CS,MA55CT;AAAA,EA65CL,YA75CK;AAAA,EA65CS,MA75CT;AAAA,EA85CL,YA95CK;AAAA,EA85CS,MA95CT;AAAA,EA+5CL,YA/5CK;AAAA,EA+5CS,MA/5CT;AAAA,EAg6CL,YAh6CK;AAAA,EAg6CS,MAh6CT;AAAA,EAi6CL,YAj6CK;AAAA,EAi6CS,MAj6CT;AAAA,EAk6CL,WAl6CK;AAAA,EAk6CQ,MAl6CR;AAAA,EAm6CL,YAn6CK;AAAA,EAm6CS,MAn6CT;AAAA,EAo6CL,YAp6CK;AAAA,EAo6CS,MAp6CT;AAAA,EAq6CL,YAr6CK;AAAA,EAq6CS,MAr6CT;AAAA,EAs6CL,YAt6CK;AAAA,EAs6CS,MAt6CT;AAAA,EAu6CL,YAv6CK;AAAA,EAu6CS,MAv6CT;AAAA,EAw6CL,WAx6CK;AAAA,EAw6CQ,MAx6CR;AAAA,EAy6CL,WAz6CK;AAAA,EAy6CQ,MAz6CR;AAAA,EA06CL,WA16CK;AAAA,EA06CQ,MA16CR;AAAA,EA26CL,WA36CK;AAAA,EA26CQ,MA36CR;AAAA,EA46CL,WA56CK;AAAA,EA46CQ,MA56CR;AAAA,EA66CL,YA76CK;AAAA,EA66CS,MA76CT;AAAA,EA86CL,aA96CK;AAAA,EA86CU,MA96CV;AAAA,EA+6CL,WA/6CK;AAAA,EA+6CQ,MA/6CR;AAAA,EAg7CL,WAh7CK;AAAA,EAg7CQ,MAh7CR;AAAA,EAi7CL,WAj7CK;AAAA,EAi7CQ,MAj7CR;AAAA,EAk7CL,YAl7CK;AAAA,EAk7CS,MAl7CT;AAAA,EAm7CL,YAn7CK;AAAA,EAm7CS,MAn7CT;AAAA,EAo7CL,YAp7CK;AAAA,EAo7CS,MAp7CT;AAAA,EAq7CL,YAr7CK;AAAA,EAq7CS,MAr7CT;AAAA,EAs7CL,WAt7CK;AAAA,EAs7CQ,MAt7CR;AAAA,EAu7CL,WAv7CK;AAAA,EAu7CQ,MAv7CR;AAAA,EAw7CL,WAx7CK;AAAA,EAw7CQ,MAx7CR;AAAA,EAy7CL,eAz7CK;AAAA,EAy7CY,MAz7CZ;AAAA,EA07CL,gBA17CK;AAAA,EA07Ca,MA17Cb;AAAA,EA27CL,mBA37CK;AAAA,EA27CgB,MA37ChB;AAAA,EA47CL,4BA57CK;AAAA,EA47CyB,MA57CzB;AAAA,EA67CL,2BA77CK;AAAA,EA67CwB,MA77CxB;AAAA,EA87CL,oBA97CK;AAAA,EA87CiB,MA97CjB;AAAA,EA+7CL,6BA/7CK;AAAA,EA+7C0B,MA/7C1B;AAAA,EAg8CL,4BAh8CK;AAAA,EAg8CyB,MAh8CzB;AAAA,EAi8CL,mBAj8CK;AAAA,EAi8CgB,MAj8ChB;AAAA,EAk8CL,UAl8CK;AAAA,EAk8CO,MAl8CP;AAAA,EAm8CL,eAn8CK;AAAA,EAm8CY,MAn8CZ;AAAA,EAo8CL,QAp8CK;AAAA,EAo8CK,MAp8CL;AAAA,EAq8CL,UAr8CK;AAAA,EAq8CO,MAr8CP;AAAA,EAs8CL,YAt8CK;AAAA,EAs8CS,MAt8CT;AAAA,EAu8CL,UAv8CK;AAAA,EAu8CO,MAv8CP;AAAA,EAw8CL,SAx8CK;AAAA,EAw8CM,MAx8CN;AAAA,EAy8CL,UAz8CK;AAAA,EAy8CO,MAz8CP;AAAA,EA08CL,UA18CK;AAAA,EA08CO,MA18CP;AAAA,EA28CL,SA38CK;AAAA,EA28CM,MA38CN;AAAA,EA48CL,UA58CK;AAAA,EA48CO,MA58CP;AAAA,EA68CL,SA78CK;AAAA,EA68CM,MA78CN;AAAA,EA88CL,GA98CK;AAAA,EA88CA,MA98CA;AAAA,EA+8CL,YA/8CK;AAAA,EA+8CS,MA/8CT;AAAA,EAg9CL,WAh9CK;AAAA,EAg9CQ,MAh9CR;AAAA,EAi9CL,WAj9CK;AAAA,EAi9CQ,MAj9CR;AAAA,EAk9CL,QAl9CK;AAAA,EAk9CK,MAl9CL;AAAA,EAm9CL,gBAn9CK;AAAA,EAm9Ca,MAn9Cb;AAAA,EAo9CL,kBAp9CK;AAAA,EAo9Ce,MAp9Cf;AAAA,EAq9CL,iBAr9CK;AAAA,EAq9Cc,MAr9Cd;AAAA,EAs9CL,QAt9CK;AAAA,EAs9CK,MAt9CL;AAAA,EAu9CL,cAv9CK;AAAA,EAu9CW,MAv9CX;AAAA,EAw9CL,QAx9CK;AAAA,EAw9CK,MAx9CL;AAAA,EAy9CL,WAz9CK;AAAA,EAy9CQ,MAz9CR;AAAA,EA09CL,YA19CK;AAAA,EA09CS,MA19CT;AAAA,EA29CL,YA39CK;AAAA,EA29CS,MA39CT;AAAA,EA49CL,YA59CK;AAAA,EA49CS,MA59CT;AAAA,EA69CL,YA79CK;AAAA,EA69CS,MA79CT;AAAA,EA89CL,WA99CK;AAAA,EA89CQ,MA99CR;AAAA,EA+9CL,OA/9CK;AAAA,EA+9CI,MA/9CJ;AAAA,EAg+CL,aAh+CK;AAAA,EAg+CU,MAh+CV;AAAA,EAi+CL,mBAj+CK;AAAA,EAi+CgB,MAj+ChB;AAAA,EAk+CL,aAl+CK;AAAA,EAk+CU,MAl+CV;AAAA,EAm+CL,gBAn+CK;AAAA,EAm+Ca,MAn+Cb;AAAA,EAo+CL,aAp+CK;AAAA,EAo+CU,MAp+CV;AAAA,EAq+CL,gBAr+CK;AAAA,EAq+Ca,MAr+Cb;AAAA,EAs+CL,sBAt+CK;AAAA,EAs+CmB,MAt+CnB;AAAA,EAu+CL,gBAv+CK;AAAA,EAu+Ca,MAv+Cb;AAAA,EAw+CL,OAx+CK;AAAA,EAw+CI,MAx+CJ;AAAA,EAy+CL,aAz+CK;AAAA,EAy+CU,MAz+CV;AAAA,EA0+CL,iBA1+CK;AAAA,EA0+Cc,MA1+Cd;AAAA,EA2+CL,0BA3+CK;AAAA,EA2+CuB,MA3+CvB;AAAA,EA4+CL,UA5+CK;AAAA,EA4+CO,MA5+CP;AAAA,EA6+CL,qBA7+CK;AAAA,EA6+CkB,MA7+ClB;AAAA,EA8+CL,6BA9+CK;AAAA,EA8+C0B,MA9+C1B;AAAA,EA++CL,sBA/+CK;AAAA,EA++CmB,MA/+CnB;AAAA,EAg/CL,8BAh/CK;AAAA,EAg/C2B,MAh/C3B;AAAA,EAi/CL,yBAj/CK;AAAA,EAi/CsB,MAj/CtB;AAAA,EAk/CL,cAl/CK;AAAA,EAk/CW,MAl/CX;AAAA,EAm/CL,eAn/CK;AAAA,EAm/CY,MAn/CZ;AAAA,EAo/CL,UAp/CK;AAAA,EAo/CO,MAp/CP;AAAA,EAq/CL,UAr/CK;AAAA,EAq/CO,MAr/CP;AAAA,EAs/CL,aAt/CK;AAAA,EAs/CU,MAt/CV;AAAA,EAu/CL,aAv/CK;AAAA,EAu/CU,MAv/CV;AAAA,EAw/CL,YAx/CK;AAAA,EAw/CS,MAx/CT;AAAA,EAy/CL,eAz/CK;AAAA,EAy/CY,MAz/CZ;AAAA,EA0/CL,gBA1/CK;AAAA,EA0/Ca,MA1/Cb;AAAA,EA2/CL,aA3/CK;AAAA,EA2/CU,MA3/CV;AAAA,EA4/CL,gBA5/CK;AAAA,EA4/Ca,MA5/Cb;AAAA,EA6/CL,yBA7/CK;AAAA,EA6/CsB,MA7/CtB;AAAA,EA8/CL,WA9/CK;AAAA,EA8/CQ,MA9/CR;AAAA,EA+/CL,UA//CK;AAAA,EA+/CO,MA//CP;AAAA,EAggDL,QAhgDK;AAAA,EAggDK,MAhgDL;AAAA,EAigDL,UAjgDK;AAAA,EAigDO,MAjgDP;AAAA,EAkgDL,SAlgDK;AAAA,EAkgDM,MAlgDN;AAAA,EAmgDL,kBAngDK;AAAA,EAmgDe,MAngDf;AAAA,EAogDL,QApgDK;AAAA,EAogDK,MApgDL;AAAA,EAqgDL,YArgDK;AAAA,EAqgDS,MArgDT;AAAA,EAsgDL,SAtgDK;AAAA,EAsgDM,MAtgDN;AAAA,EAugDL,aAvgDK;AAAA,EAugDU,MAvgDV;AAAA,EAwgDL,aAxgDK;AAAA,EAwgDU,MAxgDV;AAAA,EAygDL,YAzgDK;AAAA,EAygDS,MAzgDT;AAAA,EA0gDL,iBA1gDK;AAAA,EA0gDc,MA1gDd;AAAA,EA2gDL,WA3gDK;AAAA,EA2gDQ,MA3gDR;AAAA,EA4gDL,aA5gDK;AAAA,EA4gDU,MA5gDV;AAAA,EA6gDL,UA7gDK;AAAA,EA6gDO,MA7gDP;AAAA,EA8gDL,cA9gDK;AAAA,EA8gDW,MA9gDX;AAAA,EA+gDL,cA/gDK;AAAA,EA+gDW,MA/gDX;AAAA,EAghDL,YAhhDK;AAAA,EAghDS,MAhhDT;AAAA,EAihDL,WAjhDK;AAAA,EAihDQ,MAjhDR;AAAA,EAkhDL,wBAlhDK;AAAA,EAkhDqB,MAlhDrB;AAAA,EAmhDL,yBAnhDK;AAAA,EAmhDsB,MAnhDtB;AAAA,EAohDL,YAphDK;AAAA,EAohDS,MAphDT;AAAA,EAqhDL,QArhDK;AAAA,EAqhDK,MArhDL;AAAA,EAshDL,YAthDK;AAAA,EAshDS,MAthDT;AAAA,EAuhDL,YAvhDK;AAAA,EAuhDS,MAvhDT;AAAA,EAwhDL,WAxhDK;AAAA,EAwhDQ,MAxhDR;AAAA,EAyhDL,YAzhDK;AAAA,EAyhDS,MAzhDT;AAAA,EA0hDL,YA1hDK;AAAA,EA0hDS,MA1hDT;AAAA,EA2hDL,aA3hDK;AAAA,EA2hDU,MA3hDV;AAAA,EA4hDL,OA5hDK;AAAA,EA4hDI,MA5hDJ;AAAA,EA6hDL,aA7hDK;AAAA,EA6hDU,MA7hDV;AAAA,EA8hDL,qCA9hDK;AAAA,EA8hDkC,MA9hDlC;AAAA,EA+hDL,MA/hDK;AAAA,EA+hDG,MA/hDH;AAAA,EAgiDL,YAhiDK;AAAA,EAgiDS,MAhiDT;AAAA,EAiiDL,SAjiDK;AAAA,EAiiDM,MAjiDN;AAAA,EAkiDL,aAliDK;AAAA,EAkiDU,MAliDV;AAAA,EAmiDL,aAniDK;AAAA,EAmiDU,MAniDV;AAAA,EAoiDL,OApiDK;AAAA,EAoiDI,MApiDJ;AAAA,EAqiDL,gBAriDK;AAAA,EAqiDa,MAriDb;AAAA,EAsiDL,mBAtiDK;AAAA,EAsiDgB,MAtiDhB;AAAA,EAuiDL,SAviDK;AAAA,EAuiDM,MAviDN;AAAA,EAwiDL,kBAxiDK;AAAA,EAwiDe,MAxiDf;AAAA,EAyiDL,UAziDK;AAAA,EAyiDO,MAziDP;AAAA,EA0iDL,eA1iDK;AAAA,EA0iDY,MA1iDZ;AAAA,EA2iDL,kBA3iDK;AAAA,EA2iDe,MA3iDf;AAAA,EA4iDL,aA5iDK;AAAA,EA4iDU,MA5iDV;AAAA,EA6iDL,eA7iDK;AAAA,EA6iDY,MA7iDZ;AAAA,EA8iDL,eA9iDK;AAAA,EA8iDY,MA9iDZ;AAAA,EA+iDL,YA/iDK;AAAA,EA+iDS,MA/iDT;AAAA,EAgjDL,YAhjDK;AAAA,EAgjDS,MAhjDT;AAAA,EAijDL,WAjjDK;AAAA,EAijDQ,MAjjDR;AAAA,EAkjDL,QAljDK;AAAA,EAkjDK,MAljDL;AAAA,EAmjDL,SAnjDK;AAAA,EAmjDM,MAnjDN;AAAA,EAojDL,eApjDK;AAAA,EAojDY,MApjDZ;AAAA,EAqjDL,aArjDK;AAAA,EAqjDU,MArjDV;AAAA,EAsjDL,SAtjDK;AAAA,EAsjDM,MAtjDN;AAAA,EAujDL,YAvjDK;AAAA,EAujDS,MAvjDT;AAAA,EAwjDL,UAxjDK;AAAA,EAwjDO,MAxjDP;AAAA,EAyjDL,SAzjDK;AAAA,EAyjDM,MAzjDN;AAAA,EA0jDL,YA1jDK;AAAA,EA0jDS,MA1jDT;AAAA,EA2jDL,SA3jDK;AAAA,EA2jDM,MA3jDN;AAAA,EA4jDL,aA5jDK;AAAA,EA4jDU,MA5jDV;AAAA,EA6jDL,WA7jDK;AAAA,EA6jDQ,MA7jDR;AAAA,EA8jDL,YA9jDK;AAAA,EA8jDS,MA9jDT;AAAA,EA+jDL,YA/jDK;AAAA,EA+jDS,MA/jDT;AAAA,EAgkDL,QAhkDK;AAAA,EAgkDK,MAhkDL;AAAA,EAikDL,gBAjkDK;AAAA,EAikDa,MAjkDb;AAAA,EAkkDL,iBAlkDK;AAAA,EAkkDc,MAlkDd;AAAA,EAmkDL,gBAnkDK;AAAA,EAmkDa,MAnkDb;AAAA,EAokDL,aApkDK;AAAA,EAokDU,MApkDV;AAAA,EAqkDL,gBArkDK;AAAA,EAqkDa,MArkDb;AAAA,EAskDL,MAtkDK;AAAA,EAskDG,MAtkDH;AAAA,EAukDL,YAvkDK;AAAA,EAukDS,MAvkDT;AAAA,EAwkDL,WAxkDK;AAAA,EAwkDQ,MAxkDR;AAAA,EAykDL,cAzkDK;AAAA,EAykDW,MAzkDX;AAAA,EA0kDL,aA1kDK;AAAA,EA0kDU,MA1kDV;AAAA,EA2kDL,cA3kDK;AAAA,EA2kDW,MA3kDX;AAAA,EA4kDL,aA5kDK;AAAA,EA4kDU,MA5kDV;AAAA,EA6kDL,UA7kDK;AAAA,EA6kDO,MA7kDP;AAAA,EA8kDL,UA9kDK;AAAA,EA8kDO,MA9kDP;AAAA,EA+kDL,oBA/kDK;AAAA,EA+kDiB,MA/kDjB;AAAA,EAglDL,SAhlDK;AAAA,EAglDM,MAhlDN;AAAA,EAilDL,cAjlDK;AAAA,EAilDW,MAjlDX;AAAA,EAklDL,gBAllDK;AAAA,EAklDa,MAllDb;AAAA,EAmlDL,sBAnlDK;AAAA,EAmlDmB,MAnlDnB;AAAA,EAolDL,kBAplDK;AAAA,EAolDe,MAplDf;AAAA,EAqlDL,aArlDK;AAAA,EAqlDU,MArlDV;AAAA,EAslDL,QAtlDK;AAAA,EAslDK,MAtlDL;AAAA,EAulDL,WAvlDK;AAAA,EAulDQ,MAvlDR;AAAA,EAwlDL,OAxlDK;AAAA,EAwlDI,MAxlDJ;AAAA,EAylDL,SAzlDK;AAAA,EAylDM,MAzlDN;AAAA,EA0lDL,YA1lDK;AAAA,EA0lDS,MA1lDT;AAAA,EA2lDL,YA3lDK;AAAA,EA2lDS,MA3lDT;AAAA,EA4lDL,IA5lDK;AAAA,EA4lDC,MA5lDD;AAAA,EA6lDL,UA7lDK;AAAA,EA6lDO,MA7lDP;AAAA,EA8lDL,SA9lDK;AAAA,EA8lDM,MA9lDN;AAAA,EA+lDL,QA/lDK;AAAA,EA+lDK,MA/lDL;AAAA,EAgmDL,sBAhmDK;AAAA,EAgmDmB,MAhmDnB;AAAA,EAimDL,aAjmDK;AAAA,EAimDU,MAjmDV;AAAA,EAkmDL,cAlmDK;AAAA,EAkmDW,MAlmDX;AAAA,EAmmDL,GAnmDK;AAAA,EAmmDA,MAnmDA;AAAA,EAomDL,QApmDK;AAAA,EAomDK,MApmDL;AAAA,EAqmDL,OArmDK;AAAA,EAqmDI,MArmDJ;AAAA,EAsmDL,UAtmDK;AAAA,EAsmDO,MAtmDP;AAAA,EAumDL,WAvmDK;AAAA,EAumDQ,MAvmDR;AAAA,EAwmDL,QAxmDK;AAAA,EAwmDK,MAxmDL;AAAA,EAymDL,aAzmDK;AAAA,EAymDU,MAzmDV;AAAA,EA0mDL,iBA1mDK;AAAA,EA0mDc,MA1mDd;AAAA,EA2mDL,sBA3mDK;AAAA,EA2mDmB,MA3mDnB;AAAA,EA4mDL,0BA5mDK;AAAA,EA4mDuB,MA5mDvB;AAAA,EA6mDL,QA7mDK;AAAA,EA6mDK,MA7mDL;AAAA,EA8mDL,eA9mDK;AAAA,EA8mDY,MA9mDZ;AAAA,EA+mDL,aA/mDK;AAAA,EA+mDU,MA/mDV;AAAA,EAgnDL,iBAhnDK;AAAA,EAgnDc,MAhnDd;AAAA,EAinDL,SAjnDK;AAAA,EAinDM,MAjnDN;AAAA,EAknDL,aAlnDK;AAAA,EAknDU,MAlnDV;AAAA,EAmnDL,kBAnnDK;AAAA,EAmnDe,MAnnDf;AAAA,EAonDL,kBApnDK;AAAA,EAonDe,MApnDf;AAAA,EAqnDL,qBArnDK;AAAA,EAqnDkB,MArnDlB;AAAA,EAsnDL,kBAtnDK;AAAA,EAsnDe,MAtnDf;AAAA,EAunDL,sBAvnDK;AAAA,EAunDmB,MAvnDnB;AAAA,EAwnDL,kBAxnDK;AAAA,EAwnDe,MAxnDf;AAAA,EAynDL,WAznDK;AAAA,EAynDQ,MAznDR;AAAA,EA0nDL,WA1nDK;AAAA,EA0nDQ,MA1nDR;AAAA,EA2nDL,OA3nDK;AAAA,EA2nDI,MA3nDJ;AAAA,EA4nDL,WA5nDK;AAAA,EA4nDQ,MA5nDR;AAAA,EA6nDL,MA7nDK;AAAA,EA6nDG,MA7nDH;AAAA,EA8nDL,YA9nDK;AAAA,EA8nDS,MA9nDT;AAAA,EA+nDL,WA/nDK;AAAA,EA+nDQ,MA/nDR;AAAA,EAgoDL,YAhoDK;AAAA,EAgoDS,MAhoDT;AAAA,EAioDL,iBAjoDK;AAAA,EAioDc,MAjoDd;AAAA,EAkoDL,YAloDK;AAAA,EAkoDS,MAloDT;AAAA,EAmoDL,QAnoDK;AAAA,EAmoDK,MAnoDL;AAAA,EAooDL,WApoDK;AAAA,EAooDQ,MApoDR;AAAA,EAqoDL,YAroDK;AAAA,EAqoDS,MAroDT;AAAA,EAsoDL,YAtoDK;AAAA,EAsoDS,MAtoDT;AAAA,EAuoDL,WAvoDK;AAAA,EAuoDQ,MAvoDR;AAAA,EAwoDL,YAxoDK;AAAA,EAwoDS,MAxoDT;AAAA,EAyoDL,YAzoDK;AAAA,EAyoDS,MAzoDT;AAAA,EA0oDL,OA1oDK;AAAA,EA0oDI,MA1oDJ;AAAA,EA2oDL,aA3oDK;AAAA,EA2oDU,MA3oDV;AAAA,EA4oDL,cA5oDK;AAAA,EA4oDW,MA5oDX;AAAA,EA6oDL,aA7oDK;AAAA,EA6oDU,MA7oDV;AAAA,EA8oDL,6BA9oDK;AAAA,EA8oD0B,MA9oD1B;AAAA,EA+oDL,WA/oDK;AAAA,EA+oDQ,MA/oDR;AAAA,EAgpDL,gBAhpDK;AAAA,EAgpDa,MAhpDb;AAAA,EAipDL,eAjpDK;AAAA,EAipDY,MAjpDZ;AAAA,EAkpDL,gBAlpDK;AAAA,EAkpDa,MAlpDb;AAAA,EAmpDL,eAnpDK;AAAA,EAmpDY,MAnpDZ;AAAA,EAopDL,eAppDK;AAAA,EAopDY,MAppDZ;AAAA,EAqpDL,iBArpDK;AAAA,EAqpDc,MArpDd;AAAA,EAspDL,eAtpDK;AAAA,EAspDY,MAtpDZ;AAAA,EAupDL,kBAvpDK;AAAA,EAupDe,MAvpDf;AAAA,EAwpDL,uBAxpDK;AAAA,EAwpDoB,MAxpDpB;AAAA,EAypDL,eAzpDK;AAAA,EAypDY,MAzpDZ;AAAA,EA0pDL,gBA1pDK;AAAA,EA0pDa,MA1pDb;AAAA,EA2pDL,eA3pDK;AAAA,EA2pDY,MA3pDZ;AAAA,EA4pDL,YA5pDK;AAAA,EA4pDS,MA5pDT;AAAA,EA6pDL,aA7pDK;AAAA,EA6pDU,MA7pDV;AAAA,EA8pDL,cA9pDK;AAAA,EA8pDW,MA9pDX;AAAA,EA+pDL,YA/pDK;AAAA,EA+pDS,MA/pDT;AAAA,EAgqDL,eAhqDK;AAAA,EAgqDY,MAhqDZ;AAAA,EAiqDL,WAjqDK;AAAA,EAiqDQ,MAjqDR;AAAA,EAkqDL,gBAlqDK;AAAA,EAkqDa,MAlqDb;AAAA,EAmqDL,mBAnqDK;AAAA,EAmqDgB,MAnqDhB;AAAA,EAoqDL,WApqDK;AAAA,EAoqDQ,MApqDR;AAAA,EAqqDL,oBArqDK;AAAA,EAqqDiB,MArqDjB;AAAA,EAsqDL,iBAtqDK;AAAA,EAsqDc,MAtqDd;AAAA,EAuqDL,SAvqDK;AAAA,EAuqDM,MAvqDN;AAAA,EAwqDL,YAxqDK;AAAA,EAwqDS,MAxqDT;AAAA,EAyqDL,SAzqDK;AAAA,EAyqDM,MAzqDN;AAAA,EA0qDL,cA1qDK;AAAA,EA0qDW,MA1qDX;AAAA,EA2qDL,aA3qDK;AAAA,EA2qDU,MA3qDV;AAAA,EA4qDL,cA5qDK;AAAA,EA4qDW,MA5qDX;AAAA,EA6qDL,aA7qDK;AAAA,EA6qDU,MA7qDV;AAAA,EA8qDL,UA9qDK;AAAA,EA8qDO,MA9qDP;AAAA,EA+qDL,kBA/qDK;AAAA,EA+qDe,MA/qDf;AAAA,EAgrDL,SAhrDK;AAAA,EAgrDM,MAhrDN;AAAA,EAirDL,cAjrDK;AAAA,EAirDW,MAjrDX;AAAA,EAkrDL,cAlrDK;AAAA,EAkrDW,MAlrDX;AAAA,EAmrDL,YAnrDK;AAAA,EAmrDS,MAnrDT;AAAA,EAorDL,QAprDK;AAAA,EAorDK,MAprDL;AAAA,EAqrDL,gBArrDK;AAAA,EAqrDa,MArrDb;AAAA,EAsrDL,YAtrDK;AAAA,EAsrDS,MAtrDT;AAAA,EAurDL,sBAvrDK;AAAA,EAurDmB,MAvrDnB;AAAA,EAwrDL,UAxrDK;AAAA,EAwrDO,MAxrDP;AAAA,EAyrDL,YAzrDK;AAAA,EAyrDS,MAzrDT;AAAA,EA0rDL,YA1rDK;AAAA,EA0rDS,MA1rDT;AAAA,EA2rDL,QA3rDK;AAAA,EA2rDK,MA3rDL;AAAA,EA4rDL,gBA5rDK;AAAA,EA4rDa,MA5rDb;AAAA,EA6rDL,qBA7rDK;AAAA,EA6rDkB,MA7rDlB;AAAA,EA8rDL,KA9rDK;AAAA,EA8rDE,MA9rDF;AAAA,EA+rDL,aA/rDK;AAAA,EA+rDU,MA/rDV;AAAA,EAgsDL,eAhsDK;AAAA,EAgsDY,MAhsDZ;AAAA,EAisDL,gBAjsDK;AAAA,EAisDa,MAjsDb;AAAA,EAksDL,SAlsDK;AAAA,EAksDM,MAlsDN;AAAA,EAmsDL,SAnsDK;AAAA,EAmsDM,MAnsDN;AAAA,EAosDL,UApsDK;AAAA,EAosDO,MApsDP;AAAA,EAqsDL,OArsDK;AAAA,EAqsDI,MArsDJ;AAAA,EAssDL,aAtsDK;AAAA,EAssDU,MAtsDV;AAAA,EAusDL,eAvsDK;AAAA,EAusDY,MAvsDZ;AAAA,EAwsDL,qBAxsDK;AAAA,EAwsDkB,MAxsDlB;AAAA,EAysDL,mBAzsDK;AAAA,EAysDgB,MAzsDhB;AAAA,EA0sDL,QA1sDK;AAAA,EA0sDK,MA1sDL;AAAA,EA2sDL,SA3sDK;AAAA,EA2sDM,MA3sDN;AAAA,EA4sDL,cA5sDK;AAAA,EA4sDW,MA5sDX;AAAA,EA6sDL,OA7sDK;AAAA,EA6sDI,MA7sDJ;AAAA,EA8sDL,gBA9sDK;AAAA,EA8sDa,MA9sDb;AAAA,EA+sDL,YA/sDK;AAAA,EA+sDS,MA/sDT;AAAA,EAgtDL,eAhtDK;AAAA,EAgtDY,MAhtDZ;AAAA,EAitDL,aAjtDK;AAAA,EAitDU,MAjtDV;AAAA,EAktDL,YAltDK;AAAA,EAktDS,MAltDT;AAAA,EAmtDL,YAntDK;AAAA,EAmtDS,MAntDT;AAAA,EAotDL,WAptDK;AAAA,EAotDQ,MAptDR;AAAA,EAqtDL,mBArtDK;AAAA,EAqtDgB,MArtDhB;AAAA,EAstDL,YAttDK;AAAA,EAstDS,MAttDT;AAAA,EAutDL,qBAvtDK;AAAA,EAutDkB,MAvtDlB;AAAA,EAwtDL,KAxtDK;AAAA,EAwtDE,MAxtDF;AAAA,EAytDL,SAztDK;AAAA,EAytDM,MAztDN;AAAA,EA0tDL,YA1tDK;AAAA,EA0tDS,MA1tDT;AAAA,EA2tDL,qBA3tDK;AAAA,EA2tDkB,MA3tDlB;AAAA,EA4tDL,iBA5tDK;AAAA,EA4tDc,MA5tDd;AAAA,EA6tDL,kBA7tDK;AAAA,EA6tDe,MA7tDf;AAAA,EA8tDL,gBA9tDK;AAAA,EA8tDa,MA9tDb;AAAA,EA+tDL,gBA/tDK;AAAA,EA+tDa,MA/tDb;AAAA,EAguDL,yBAhuDK;AAAA,EAguDsB,MAhuDtB;AAAA,EAiuDL,WAjuDK;AAAA,EAiuDQ,MAjuDR;AAAA,EAkuDL,WAluDK;AAAA,EAkuDQ,MAluDR;AAAA,EAmuDL,KAnuDK;AAAA,EAmuDE,MAnuDF;AAAA,EAouDL,YApuDK;AAAA,EAouDS,MApuDT;AAAA,EAquDL,UAruDK;AAAA,EAquDO,MAruDP;AAAA,EAsuDL,KAtuDK;AAAA,EAsuDE,MAtuDF;AAAA,EAuuDL,QAvuDK;AAAA,EAuuDK,MAvuDL;AAAA,EAwuDL,aAxuDK;AAAA,EAwuDU,MAxuDV;AAAA,EAyuDL,oBAzuDK;AAAA,EAyuDiB,MAzuDjB;AAAA,EA0uDL,wBA1uDK;AAAA,EA0uDqB,MA1uDrB;AAAA,EA2uDL,eA3uDK;AAAA,EA2uDY,MA3uDZ;AAAA,EA4uDL,mBA5uDK;AAAA,EA4uDgB,MA5uDhB;AAAA,EA6uDL,SA7uDK;AAAA,EA6uDM,MA7uDN;AAAA,EA8uDL,UA9uDK;AAAA,EA8uDO,MA9uDP;AAAA,EA+uDL,MA/uDK;AAAA,EA+uDG,MA/uDH;AAAA,EAgvDL,mBAhvDK;AAAA,EAgvDgB,MAhvDhB;AAAA,EAivDL,gBAjvDK;AAAA,EAivDa,MAjvDb;AAAA,EAkvDL,oBAlvDK;AAAA,EAkvDiB,MAlvDjB;AAAA,EAmvDL,QAnvDK;AAAA,EAmvDK,MAnvDL;AAAA,EAovDL,gBApvDK;AAAA,EAovDa,MApvDb;AAAA,EAqvDL,WArvDK;AAAA,EAqvDQ,MArvDR;AAAA,EAsvDL,YAtvDK;AAAA,EAsvDS,MAtvDT;AAAA,EAuvDL,iBAvvDK;AAAA,EAuvDc,MAvvDd;AAAA,EAwvDL,iBAxvDK;AAAA,EAwvDc,MAxvDd;AAAA,EAyvDL,aAzvDK;AAAA,EAyvDU,MAzvDV;AAAA,EA0vDL,aA1vDK;AAAA,EA0vDU,MA1vDV;AAAA,EA2vDL,KA3vDK;AAAA,EA2vDE,MA3vDF;AAAA,EA4vDL,UA5vDK;AAAA,EA4vDO,MA5vDP;AAAA,EA6vDL,SA7vDK;AAAA,EA6vDM,MA7vDN;AAAA,EA8vDL,aA9vDK;AAAA,EA8vDU,MA9vDV;AAAA,EA+vDL,SA/vDK;AAAA,EA+vDM,MA/vDN;AAAA,EAgwDL,GAhwDK;AAAA,EAgwDA,MAhwDA;AAAA,EAiwDL,QAjwDK;AAAA,EAiwDK,MAjwDL;AAAA,EAkwDL,YAlwDK;AAAA,EAkwDS,MAlwDT;AAAA,EAmwDL,YAnwDK;AAAA,EAmwDS,MAnwDT;AAAA,EAowDL,aApwDK;AAAA,EAowDU,MApwDV;AAAA,EAqwDL,gBArwDK;AAAA,EAqwDa,MArwDb;AAAA,EAswDL,gBAtwDK;AAAA,EAswDa,MAtwDb;AAAA,EAuwDL,WAvwDK;AAAA,EAuwDQ,MAvwDR;AAAA,EAwwDL,SAxwDK;AAAA,EAwwDM,MAxwDN;AAAA,EAywDL,YAzwDK;AAAA,EAywDS,MAzwDT;AAAA,EA0wDL,WA1wDK;AAAA,EA0wDQ,MA1wDR;AAAA,EA2wDL,aA3wDK;AAAA,EA2wDU,MA3wDV;AAAA,EA4wDL,gBA5wDK;AAAA,EA4wDa,MA5wDb;AAAA,EA6wDL,kBA7wDK;AAAA,EA6wDe,MA7wDf;AAAA,EA8wDL,iBA9wDK;AAAA,EA8wDc,MA9wDd;AAAA,EA+wDL,WA/wDK;AAAA,EA+wDQ,MA/wDR;AAAA,EAgxDL,QAhxDK;AAAA,EAgxDK,MAhxDL;AAAA,EAixDL,IAjxDK;AAAA,EAixDC,MAjxDD;AAAA,EAkxDL,KAlxDK;AAAA,EAkxDE,MAlxDF;AAAA,EAmxDL,KAnxDK;AAAA,EAmxDE,MAnxDF;AAAA,EAoxDL,KApxDK;AAAA,EAoxDE,MApxDF;AAAA,EAqxDL,IArxDK;AAAA,EAqxDC,MArxDD;AAAA,EAsxDL,eAtxDK;AAAA,EAsxDY,MAtxDZ;AAAA,EAuxDL,cAvxDK;AAAA,EAuxDW,MAvxDX;AAAA,EAwxDL,eAxxDK;AAAA,EAwxDY,MAxxDZ;AAAA,EAyxDL,YAzxDK;AAAA,EAyxDS,MAzxDT;AAAA,EA0xDL,WA1xDK;AAAA,EA0xDQ,MA1xDR;AAAA,EA2xDL,YA3xDK;AAAA,EA2xDS,MA3xDT;AAAA,EA4xDL,UA5xDK;AAAA,EA4xDO,MA5xDP;AAAA,EA6xDL,gBA7xDK;AAAA,EA6xDa,MA7xDb;AAAA,EA8xDL,sBA9xDK;AAAA,EA8xDmB,MA9xDnB;AAAA,EA+xDL,gBA/xDK;AAAA,EA+xDa,MA/xDb;AAAA,EAgyDL,UAhyDK;AAAA,EAgyDO,MAhyDP;AAAA,EAiyDL,gBAjyDK;AAAA,EAiyDa,MAjyDb;AAAA,EAkyDL,UAlyDK;AAAA,EAkyDO,MAlyDP;AAAA,EAmyDL,gBAnyDK;AAAA,EAmyDa,MAnyDb;AAAA,EAoyDL,SApyDK;AAAA,EAoyDM,MApyDN;AAAA,EAqyDL,eAryDK;AAAA,EAqyDY,MAryDZ;AAAA,EAsyDL,YAtyDK;AAAA,EAsyDS,MAtyDT;AAAA,EAuyDL,kBAvyDK;AAAA,EAuyDe,MAvyDf;AAAA,EAwyDL,kBAxyDK;AAAA,EAwyDe,MAxyDf;AAAA,EAyyDL,SAzyDK;AAAA,EAyyDM,MAzyDN;AAAA,EA0yDL,cA1yDK;AAAA,EA0yDW,MA1yDX;AAAA,EA2yDL,MA3yDK;AAAA,EA2yDG,MA3yDH;AAAA,EA4yDL,YA5yDK;AAAA,EA4yDS,MA5yDT;AAAA,EA6yDL,aA7yDK;AAAA,EA6yDU,MA7yDV;AAAA,EA8yDL,YA9yDK;AAAA,EA8yDS,MA9yDT;AAAA,EA+yDL,4BA/yDK;AAAA,EA+yDyB,MA/yDzB;AAAA,EAgzDL,UAhzDK;AAAA,EAgzDO,MAhzDP;AAAA,EAizDL,aAjzDK;AAAA,EAizDU,MAjzDV;AAAA,EAkzDL,cAlzDK;AAAA,EAkzDW,MAlzDX;AAAA,EAmzDL,cAnzDK;AAAA,EAmzDW,MAnzDX;AAAA,EAozDL,gBApzDK;AAAA,EAozDa,MApzDb;AAAA,EAqzDL,cArzDK;AAAA,EAqzDW,MArzDX;AAAA,EAszDL,sBAtzDK;AAAA,EAszDmB,MAtzDnB;AAAA,EAuzDL,cAvzDK;AAAA,EAuzDW,MAvzDX;AAAA,EAwzDL,eAxzDK;AAAA,EAwzDY,MAxzDZ;AAAA,EAyzDL,cAzzDK;AAAA,EAyzDW,MAzzDX;AAAA,EA0zDL,WA1zDK;AAAA,EA0zDQ,MA1zDR;AAAA,EA2zDL,YA3zDK;AAAA,EA2zDS,MA3zDT;AAAA,EA4zDL,aA5zDK;AAAA,EA4zDU,MA5zDV;AAAA,EA6zDL,WA7zDK;AAAA,EA6zDQ,MA7zDR;AAAA,EA8zDL,cA9zDK;AAAA,EA8zDW,MA9zDX;AAAA,EA+zDL,UA/zDK;AAAA,EA+zDO,MA/zDP;AAAA,EAg0DL,IAh0DK;AAAA,EAg0DC,MAh0DD;AAAA,EAi0DL,QAj0DK;AAAA,EAi0DK,MAj0DL;AAAA,EAk0DL,YAl0DK;AAAA,EAk0DS,MAl0DT;AAAA,EAm0DL,UAn0DK;AAAA,EAm0DO,MAn0DP;AAAA,EAo0DL,WAp0DK;AAAA,EAo0DQ,MAp0DR;AAAA,EAq0DL,UAr0DK;AAAA,EAq0DO,MAr0DP;AAAA,EAs0DL,aAt0DK;AAAA,EAs0DU,MAt0DV;AAAA,EAu0DL,QAv0DK;AAAA,EAu0DK,MAv0DL;AAAA,EAw0DL,MAx0DK;AAAA,EAw0DG,MAx0DH;AAAA,EAy0DL,YAz0DK;AAAA,EAy0DS,MAz0DT;AAAA,EA00DL,aA10DK;AAAA,EA00DU,MA10DV;AAAA,EA20DL,YA30DK;AAAA,EA20DS,MA30DT;AAAA,EA40DL,4BA50DK;AAAA,EA40DyB,MA50DzB;AAAA,EA60DL,UA70DK;AAAA,EA60DO,MA70DP;AAAA,EA80DL,cA90DK;AAAA,EA80DW,MA90DX;AAAA,EA+0DL,cA/0DK;AAAA,EA+0DW,MA/0DX;AAAA,EAg1DL,gBAh1DK;AAAA,EAg1Da,MAh1Db;AAAA,EAi1DL,cAj1DK;AAAA,EAi1DW,MAj1DX;AAAA,EAk1DL,sBAl1DK;AAAA,EAk1DmB,MAl1DnB;AAAA,EAm1DL,cAn1DK;AAAA,EAm1DW,MAn1DX;AAAA,EAo1DL,eAp1DK;AAAA,EAo1DY,MAp1DZ;AAAA,EAq1DL,sBAr1DK;AAAA,EAq1DmB,MAr1DnB;AAAA,EAs1DL,cAt1DK;AAAA,EAs1DW,MAt1DX;AAAA,EAu1DL,WAv1DK;AAAA,EAu1DQ,MAv1DR;AAAA,EAw1DL,YAx1DK;AAAA,EAw1DS,MAx1DT;AAAA,EAy1DL,aAz1DK;AAAA,EAy1DU,MAz1DV;AAAA,EA01DL,WA11DK;AAAA,EA01DQ,MA11DR;AAAA,EA21DL,cA31DK;AAAA,EA21DW,MA31DX;AAAA,EA41DL,gBA51DK;AAAA,EA41Da,MA51Db;AAAA,EA61DL,eA71DK;AAAA,EA61DY,MA71DZ;AAAA,EA81DL,gBA91DK;AAAA,EA81Da,MA91Db;AAAA,EA+1DL,UA/1DK;AAAA,EA+1DO,MA/1DP;AAAA,EAg2DL,mBAh2DK;AAAA,EAg2DgB,MAh2DhB;AAAA,EAi2DL,QAj2DK;AAAA,EAi2DK,MAj2DL;AAAA,EAk2DL,UAl2DK;AAAA,EAk2DO,MAl2DP;AAAA,EAm2DL,OAn2DK;AAAA,EAm2DI,MAn2DJ;AAAA,EAo2DL,GAp2DK;AAAA,EAo2DA,MAp2DA;AAAA,EAq2DL,WAr2DK;AAAA,EAq2DQ,MAr2DR;AAAA,EAs2DL,QAt2DK;AAAA,EAs2DK,MAt2DL;AAAA,EAu2DL,QAv2DK;AAAA,EAu2DK,MAv2DL;AAAA,EAw2DL,WAx2DK;AAAA,EAw2DQ,MAx2DR;AAAA,EAy2DL,gBAz2DK;AAAA,EAy2Da,MAz2Db;AAAA,EA02DL,kBA12DK;AAAA,EA02De,MA12Df;AAAA,EA22DL,iBA32DK;AAAA,EA22Dc,MA32Dd;AAAA,EA42DL,YA52DK;AAAA,EA42DS,MA52DT;AAAA,EA62DL,YA72DK;AAAA,EA62DS,MA72DT;AAAA,EA82DL,YA92DK;AAAA,EA82DS,MA92DT;AAAA,EA+2DL,YA/2DK;AAAA,EA+2DS,MA/2DT;AAAA,EAg3DL,OAh3DK;AAAA,EAg3DI,MAh3DJ;AAAA,EAi3DL,iBAj3DK;AAAA,EAi3Dc,MAj3Dd;AAAA,EAk3DL,eAl3DK;AAAA,EAk3DY,MAl3DZ;AAAA,EAm3DL,cAn3DK;AAAA,EAm3DW,MAn3DX;AAAA,EAo3DL,WAp3DK;AAAA,EAo3DQ,MAp3DR;AAAA,EAq3DL,QAr3DK;AAAA,EAq3DK,MAr3DL;AAAA,EAs3DL,QAt3DK;AAAA,EAs3DK,MAt3DL;AAAA,EAu3DL,UAv3DK;AAAA,EAu3DO,MAv3DP;AAAA,EAw3DL,SAx3DK;AAAA,EAw3DM,MAx3DN;AAAA,EAy3DL,aAz3DK;AAAA,EAy3DU,MAz3DV;AAAA,EA03DL,cA13DK;AAAA,EA03DW,MA13DX;AAAA,EA23DL,MA33DK;AAAA,EA23DG,MA33DH;AAAA,EA43DL,YA53DK;AAAA,EA43DS,MA53DT;AAAA,EA63DL,YA73DK;AAAA,EA63DS,MA73DT;AAAA,EA83DL,YA93DK;AAAA,EA83DS,MA93DT;AAAA,EA+3DL,YA/3DK;AAAA,EA+3DS,MA/3DT;AAAA,EAg4DL,oBAh4DK;AAAA,EAg4DiB,MAh4DjB;AAAA,EAi4DL,oBAj4DK;AAAA,EAi4DiB,MAj4DjB;AAAA,EAk4DL,cAl4DK;AAAA,EAk4DW,MAl4DX;AAAA,EAm4DL,oBAn4DK;AAAA,EAm4DiB,MAn4DjB;AAAA,EAo4DL,YAp4DK;AAAA,EAo4DS,MAp4DT;AAAA,EAq4DL,uBAr4DK;AAAA,EAq4DoB,MAr4DpB;AAAA,EAs4DL,iBAt4DK;AAAA,EAs4Dc,MAt4Dd;AAAA,EAu4DL,UAv4DK;AAAA,EAu4DO,MAv4DP;AAAA,EAw4DL,YAx4DK;AAAA,EAw4DS,MAx4DT;AAAA,EAy4DL,cAz4DK;AAAA,EAy4DW,MAz4DX;AAAA,EA04DL,SA14DK;AAAA,EA04DM,MA14DN;AAAA,EA24DL,aA34DK;AAAA,EA24DU,MA34DV;AAAA,EA44DL,aA54DK;AAAA,EA44DU,MA54DV;AAAA,EA64DL,aA74DK;AAAA,EA64DU,MA74DV;AAAA,EA84DL,kBA94DK;AAAA,EA84De,MA94Df;AAAA,EA+4DL,oBA/4DK;AAAA,EA+4DiB,MA/4DjB;AAAA,EAg5DL,mBAh5DK;AAAA,EAg5DgB,MAh5DhB;AAAA,EAi5DL,uBAj5DK;AAAA,EAi5DoB,MAj5DpB;AAAA,EAk5DL,mBAl5DK;AAAA,EAk5DgB,MAl5DhB;AAAA,EAm5DL,mBAn5DK;AAAA,EAm5DgB,MAn5DhB;AAAA,EAo5DL,UAp5DK;AAAA,EAo5DO,MAp5DP;AAAA,EAq5DL,cAr5DK;AAAA,EAq5DW,MAr5DX;AAAA,EAs5DL,OAt5DK;AAAA,EAs5DI,MAt5DJ;AAAA,EAu5DL,WAv5DK;AAAA,EAu5DQ,MAv5DR;AAAA,EAw5DL,YAx5DK;AAAA,EAw5DS,MAx5DT;AAAA,EAy5DL,YAz5DK;AAAA,EAy5DS,MAz5DT;AAAA,EA05DL,aA15DK;AAAA,EA05DU,MA15DV;AAAA,EA25DL,OA35DK;AAAA,EA25DI,MA35DJ;AAAA,EA45DL,aA55DK;AAAA,EA45DU,MA55DV;AAAA,EA65DL,mBA75DK;AAAA,EA65DgB,MA75DhB;AAAA,EA85DL,aA95DK;AAAA,EA85DU,MA95DV;AAAA,EA+5DL,aA/5DK;AAAA,EA+5DU,MA/5DV;AAAA,EAg6DL,uBAh6DK;AAAA,EAg6DoB,MAh6DpB;AAAA,EAi6DL,aAj6DK;AAAA,EAi6DU,MAj6DV;AAAA,EAk6DL,qBAl6DK;AAAA,EAk6DkB,MAl6DlB;AAAA,EAm6DL,gBAn6DK;AAAA,EAm6Da,MAn6Db;AAAA,EAo6DL,qBAp6DK;AAAA,EAo6DkB,MAp6DlB;AAAA,EAq6DL,wBAr6DK;AAAA,EAq6DqB,MAr6DrB;AAAA,EAs6DL,6BAt6DK;AAAA,EAs6D0B,MAt6D1B;AAAA,EAu6DL,mBAv6DK;AAAA,EAu6DgB,MAv6DhB;AAAA,EAw6DL,2BAx6DK;AAAA,EAw6DwB,MAx6DxB;AAAA,EAy6DL,SAz6DK;AAAA,EAy6DM,MAz6DN;AAAA,EA06DL,YA16DK;AAAA,EA06DS,MA16DT;AAAA,EA26DL,YA36DK;AAAA,EA26DS,MA36DT;AAAA,EA46DL,YA56DK;AAAA,EA46DS,MA56DT;AAAA,EA66DL,QA76DK;AAAA,EA66DK,MA76DL;AAAA,EA86DL,WA96DK;AAAA,EA86DQ,MA96DR;AAAA,EA+6DL,UA/6DK;AAAA,EA+6DO,MA/6DP;AAAA,EAg7DL,OAh7DK;AAAA,EAg7DI,MAh7DJ;AAAA,EAi7DL,eAj7DK;AAAA,EAi7DY,MAj7DZ;AAAA,EAk7DL,UAl7DK;AAAA,EAk7DO,MAl7DP;AAAA,EAm7DL,WAn7DK;AAAA,EAm7DQ,MAn7DR;AAAA,EAo7DL,WAp7DK;AAAA,EAo7DQ,MAp7DR;AAAA,EAq7DL,aAr7DK;AAAA,EAq7DU,MAr7DV;AAAA,EAs7DL,gBAt7DK;AAAA,EAs7Da,MAt7Db;AAAA,EAu7DL,cAv7DK;AAAA,EAu7DW,MAv7DX;AAAA,EAw7DL,SAx7DK;AAAA,EAw7DM,MAx7DN;AAAA,EAy7DL,cAz7DK;AAAA,EAy7DW,MAz7DX;AAAA,EA07DL,oBA17DK;AAAA,EA07DiB,MA17DjB;AAAA,EA27DL,kBA37DK;AAAA,EA27De,MA37Df;AAAA,EA47DL,qBA57DK;AAAA,EA47DkB,MA57DlB;AAAA,EA67DL,eA77DK;AAAA,EA67DY,MA77DZ;AAAA,EA87DL,kBA97DK;AAAA,EA87De,MA97Df;AAAA,EA+7DL,cA/7DK;AAAA,EA+7DW,MA/7DX;AAAA,EAg8DL,SAh8DK;AAAA,EAg8DM,MAh8DN;AAAA,EAi8DL,SAj8DK;AAAA,EAi8DM,MAj8DN;AAAA,EAk8DL,YAl8DK;AAAA,EAk8DS,MAl8DT;AAAA,EAm8DL,eAn8DK;AAAA,EAm8DY,MAn8DZ;AAAA,EAo8DL,gBAp8DK;AAAA,EAo8Da,MAp8Db;AAAA,EAq8DL,eAr8DK;AAAA,EAq8DY,MAr8DZ;AAAA,EAs8DL,gBAt8DK;AAAA,EAs8Da,MAt8Db;AAAA,EAu8DL,YAv8DK;AAAA,EAu8DS,MAv8DT;AAAA,EAw8DL,cAx8DK;AAAA,EAw8DW,MAx8DX;AAAA,EAy8DL,UAz8DK;AAAA,EAy8DO,MAz8DP;AAAA,EA08DL,GA18DK;AAAA,EA08DA,MA18DA;AAAA,EA28DL,qBA38DK;AAAA,EA28DkB,MA38DlB;AAAA,EA48DL,gBA58DK;AAAA,EA48Da,MA58Db;AAAA,EA68DL,WA78DK;AAAA,EA68DQ,MA78DR;AAAA,EA88DL,qBA98DK;AAAA,EA88DkB,MA98DlB;AAAA,EA+8DL,QA/8DK;AAAA,EA+8DK,MA/8DL;AAAA,EAg9DL,YAh9DK;AAAA,EAg9DS,MAh9DT;AAAA,EAi9DL,YAj9DK;AAAA,EAi9DS,MAj9DT;AAAA,EAk9DL,WAl9DK;AAAA,EAk9DQ,MAl9DR;AAAA,EAm9DL,gBAn9DK;AAAA,EAm9Da,MAn9Db;AAAA,EAo9DL,kBAp9DK;AAAA,EAo9De,MAp9Df;AAAA,EAq9DL,YAr9DK;AAAA,EAq9DS,MAr9DT;AAAA,EAs9DL,iBAt9DK;AAAA,EAs9Dc,MAt9Dd;AAAA,EAu9DL,aAv9DK;AAAA,EAu9DU,MAv9DV;AAAA,EAw9DL,YAx9DK;AAAA,EAw9DS,MAx9DT;AAAA,EAy9DL,qBAz9DK;AAAA,EAy9DkB,MAz9DlB;AAAA,EA09DL,gBA19DK;AAAA,EA09Da,MA19Db;AAAA,EA29DL,aA39DK;AAAA,EA29DU,MA39DV;AAAA,EA49DL,gBA59DK;AAAA,EA49Da,MA59Db;AAAA,EA69DL,cA79DK;AAAA,EA69DW,MA79DX;AAAA,EA89DL,kBA99DK;AAAA,EA89De,MA99Df;AAAA,EA+9DL,mBA/9DK;AAAA,EA+9DgB,MA/9DhB;AAAA,EAg+DL,oBAh+DK;AAAA,EAg+DiB,MAh+DjB;AAAA,EAi+DL,UAj+DK;AAAA,EAi+DO,MAj+DP;AAAA,EAk+DL,YAl+DK;AAAA,EAk+DS,MAl+DT;AAAA,EAm+DL,cAn+DK;AAAA,EAm+DW,MAn+DX;AAAA,EAo+DL,cAp+DK;AAAA,EAo+DW,MAp+DX;AAAA,EAq+DL,cAr+DK;AAAA,EAq+DW,MAr+DX;AAAA,EAs+DL,kBAt+DK;AAAA,EAs+De,MAt+Df;AAAA,EAu+DL,wBAv+DK;AAAA,EAu+DqB,MAv+DrB;AAAA,EAw+DL,yBAx+DK;AAAA,EAw+DsB,MAx+DtB;AAAA,EAy+DL,sBAz+DK;AAAA,EAy+DmB,MAz+DnB;AAAA,EA0+DL,aA1+DK;AAAA,EA0+DU,MA1+DV;AAAA,EA2+DL,eA3+DK;AAAA,EA2+DY,MA3+DZ;AAAA,EA4+DL,eA5+DK;AAAA,EA4+DY,MA5+DZ;AAAA,EA6+DL,eA7+DK;AAAA,EA6+DY,MA7+DZ;AAAA,EA8+DL,mBA9+DK;AAAA,EA8+DgB,MA9+DhB;AAAA,EA++DL,yBA/+DK;AAAA,EA++DsB,MA/+DtB;AAAA,EAg/DL,0BAh/DK;AAAA,EAg/DuB,MAh/DvB;AAAA,EAi/DL,uBAj/DK;AAAA,EAi/DoB,MAj/DpB;AAAA,EAk/DL,YAl/DK;AAAA,EAk/DS,MAl/DT;AAAA,EAm/DL,cAn/DK;AAAA,EAm/DW,MAn/DX;AAAA,EAo/DL,cAp/DK;AAAA,EAo/DW,MAp/DX;AAAA,EAq/DL,cAr/DK;AAAA,EAq/DW,MAr/DX;AAAA,EAs/DL,kBAt/DK;AAAA,EAs/De,MAt/Df;AAAA,EAu/DL,wBAv/DK;AAAA,EAu/DqB,MAv/DrB;AAAA,EAw/DL,yBAx/DK;AAAA,EAw/DsB,MAx/DtB;AAAA,EAy/DL,sBAz/DK;AAAA,EAy/DmB,MAz/DnB;AAAA,EA0/DL,MA1/DK;AAAA,EA0/DG,MA1/DH;AAAA,EA2/DL,WA3/DK;AAAA,EA2/DQ,MA3/DR;AAAA,EA4/DL,aA5/DK;AAAA,EA4/DU,MA5/DV;AAAA,EA6/DL,UA7/DK;AAAA,EA6/DO,MA7/DP;AAAA,EA8/DL,SA9/DK;AAAA,EA8/DM,MA9/DN;AAAA,EA+/DL,aA//DK;AAAA,EA+/DU,MA//DV;AAAA,EAggEL,WAhgEK;AAAA,EAggEQ,MAhgER;AAAA,EAigEL,YAjgEK;AAAA,EAigES,MAjgET;AAAA,EAkgEL,WAlgEK;AAAA,EAkgEQ,MAlgER;AAAA,EAmgEL,IAngEK;AAAA,EAmgEC,MAngED;AAAA,EAogEL,OApgEK;AAAA,EAogEI,MApgEJ;AAAA,EAqgEL,gBArgEK;AAAA,EAqgEa,MArgEb;AAAA,EAsgEL,gBAtgEK;AAAA,EAsgEa,MAtgEb;AAAA,EAugEL,UAvgEK;AAAA,EAugEO,MAvgEP;AAAA,EAwgEL,gBAxgEK;AAAA,EAwgEa,MAxgEb;AAAA,EAygEL,iBAzgEK;AAAA,EAygEc,MAzgEd;AAAA,EA0gEL,WA1gEK;AAAA,EA0gEQ,MA1gER;AAAA,EA2gEL,UA3gEK;AAAA,EA2gEO,MA3gEP;AAAA,EA4gEL,sBA5gEK;AAAA,EA4gEmB,MA5gEnB;AAAA,EA6gEL,sBA7gEK;AAAA,EA6gEmB,MA7gEnB;AAAA,EA8gEL,gBA9gEK;AAAA,EA8gEa,MA9gEb;AAAA,EA+gEL,0BA/gEK;AAAA,EA+gEuB,MA/gEvB;AAAA,EAghEL,6BAhhEK;AAAA,EAghE0B,MAhhE1B;AAAA,EAihEL,wBAjhEK;AAAA,EAihEqB,MAjhErB;AAAA,EAkhEL,kBAlhEK;AAAA,EAkhEe,MAlhEf;AAAA,EAmhEL,YAnhEK;AAAA,EAmhES,MAnhET;AAAA,EAohEL,uBAphEK;AAAA,EAohEoB,MAphEpB;AAAA,EAqhEL,iBArhEK;AAAA,EAqhEc,MArhEd;AAAA,EAshEL,iBAthEK;AAAA,EAshEc,MAthEd;AAAA,EAuhEL,YAvhEK;AAAA,EAuhES,MAvhET;AAAA,EAwhEL,qBAxhEK;AAAA,EAwhEkB,MAxhElB;AAAA,EAyhEL,iBAzhEK;AAAA,EAyhEc,MAzhEd;AAAA,EA0hEL,UA1hEK;AAAA,EA0hEO,MA1hEP;AAAA,EA2hEL,cA3hEK;AAAA,EA2hEW,MA3hEX;AAAA,EA4hEL,KA5hEK;AAAA,EA4hEE,MA5hEF;AAAA,EA6hEL,WA7hEK;AAAA,EA6hEQ,MA7hER;AAAA,EA8hEL,OA9hEK;AAAA,EA8hEI,MA9hEJ;AAAA,EA+hEL,eA/hEK;AAAA,EA+hEY,MA/hEZ;AAAA,EAgiEL,oBAhiEK;AAAA,EAgiEiB,MAhiEjB;AAAA,EAiiEL,mBAjiEK;AAAA,EAiiEgB,MAjiEhB;AAAA,EAkiEL,mBAliEK;AAAA,EAkiEgB,MAliEhB;AAAA,EAmiEL,aAniEK;AAAA,EAmiEU,MAniEV;AAAA,EAoiEL,kBApiEK;AAAA,EAoiEe,MApiEf;AAAA,EAqiEL,YAriEK;AAAA,EAqiES,MAriET;AAAA,EAsiEL,YAtiEK;AAAA,EAsiES,MAtiET;AAAA,EAuiEL,qBAviEK;AAAA,EAuiEkB,MAviElB;AAAA,EAwiEL,OAxiEK;AAAA,EAwiEI,MAxiEJ;AAAA,EAyiEL,SAziEK;AAAA,EAyiEM,MAziEN;AAAA,EA0iEL,SA1iEK;AAAA,EA0iEM,MA1iEN;AAAA,EA2iEL,SA3iEK;AAAA,EA2iEM,MA3iEN;AAAA,EA4iEL,aA5iEK;AAAA,EA4iEU,MA5iEV;AAAA,EA6iEL,mBA7iEK;AAAA,EA6iEgB,MA7iEhB;AAAA,EA8iEL,oBA9iEK;AAAA,EA8iEiB,MA9iEjB;AAAA,EA+iEL,iBA/iEK;AAAA,EA+iEc,MA/iEd;AAAA,EAgjEL,YAhjEK;AAAA,EAgjES,MAhjET;AAAA,EAijEL,YAjjEK;AAAA,EAijES,MAjjET;AAAA,EAkjEL,YAljEK;AAAA,EAkjES,MAljET;AAAA,EAmjEL,WAnjEK;AAAA,EAmjEQ,MAnjER;AAAA,EAojEL,YApjEK;AAAA,EAojES,MApjET;AAAA,EAqjEL,YArjEK;AAAA,EAqjES,MArjET;AAAA,EAsjEL,qBAtjEK;AAAA,EAsjEkB,MAtjElB;AAAA,EAujEL,OAvjEK;AAAA,EAujEI,MAvjEJ;AAAA,EAwjEL,SAxjEK;AAAA,EAwjEM,MAxjEN;AAAA,EAyjEL,SAzjEK;AAAA,EAyjEM,MAzjEN;AAAA,EA0jEL,SA1jEK;AAAA,EA0jEM,MA1jEN;AAAA,EA2jEL,aA3jEK;AAAA,EA2jEU,MA3jEV;AAAA,EA4jEL,mBA5jEK;AAAA,EA4jEgB,MA5jEhB;AAAA,EA6jEL,oBA7jEK;AAAA,EA6jEiB,MA7jEjB;AAAA,EA8jEL,iBA9jEK;AAAA,EA8jEc,MA9jEd;AAAA,EA+jEL,cA/jEK;AAAA,EA+jEW,MA/jEX;AAAA,EAgkEL,eAhkEK;AAAA,EAgkEY,MAhkEZ;AAAA,EAikEL,SAjkEK;AAAA,EAikEM,MAjkEN;AAAA,EAkkEL,yBAlkEK;AAAA,EAkkEsB,MAlkEtB;AAAA,EAmkEL,uBAnkEK;AAAA,EAmkEoB,MAnkEpB;AAAA,EAokEL,YApkEK;AAAA,EAokES,MApkET;AAAA,EAqkEL,YArkEK;AAAA,EAqkES,MArkET;AAAA,EAskEL,eAtkEK;AAAA,EAskEY,MAtkEZ;AAAA,EAukEL,SAvkEK;AAAA,EAukEM,MAvkEN;AAAA,EAwkEL,YAxkEK;AAAA,EAwkES,MAxkET;AAAA,EAykEL,OAzkEK;AAAA,EAykEI,MAzkEJ;AAAA,EA0kEL,QA1kEK;AAAA,EA0kEK,MA1kEL;AAAA,EA2kEL,WA3kEK;AAAA,EA2kEQ,MA3kER;AAAA,EA4kEL,SA5kEK;AAAA,EA4kEM,MA5kEN;AAAA,EA6kEL,YA7kEK;AAAA,EA6kES,MA7kET;AAAA,EA8kEL,cA9kEK;AAAA,EA8kEW,MA9kEX;AAAA,EA+kEL,YA/kEK;AAAA,EA+kES,MA/kET;AAAA,EAglEL,qBAhlEK;AAAA,EAglEkB,MAhlElB;AAAA,EAilEL,cAjlEK;AAAA,EAilEW,MAjlEX;AAAA,EAklEL,iBAllEK;AAAA,EAklEc,MAllEd;AAAA,EAmlEL,IAnlEK;AAAA,EAmlEC,MAnlED;AAAA,EAolEL,QAplEK;AAAA,EAolEK,MAplEL;AAAA,EAqlEL,gBArlEK;AAAA,EAqlEa,MArlEb;AAAA,EAslEL,iBAtlEK;AAAA,EAslEc,MAtlEd;AAAA,EAulEL,aAvlEK;AAAA,EAulEU,MAvlEV;AAAA,EAwlEL,gBAxlEK;AAAA,EAwlEa,MAxlEb;AAAA,EAylEL,WAzlEK;AAAA,EAylEQ,MAzlER;AAAA,EA0lEL,GA1lEK;AAAA,EA0lEA,MA1lEA;AAAA,EA2lEL,QA3lEK;AAAA,EA2lEK,MA3lEL;AAAA,EA4lEL,YA5lEK;AAAA,EA4lES,MA5lET;AAAA,EA6lEL,UA7lEK;AAAA,EA6lEO,MA7lEP;AAAA,EA8lEL,WA9lEK;AAAA,EA8lEQ,MA9lER;AAAA,EA+lEL,QA/lEK;AAAA,EA+lEK,MA/lEL;AAAA,EAgmEL,QAhmEK;AAAA,EAgmEK,MAhmEL;AAAA,EAimEL,SAjmEK;AAAA,EAimEM,MAjmEN;AAAA,EAkmEL,aAlmEK;AAAA,EAkmEU,MAlmEV;AAAA,EAmmEL,WAnmEK;AAAA,EAmmEQ,MAnmER;AAAA,EAomEL,WApmEK;AAAA,EAomEQ,MApmER;AAAA,EAqmEL,sBArmEK;AAAA,EAqmEmB,MArmEnB;AAAA,EAsmEL,qBAtmEK;AAAA,EAsmEkB,MAtmElB;AAAA,EAumEL,0BAvmEK;AAAA,EAumEuB,MAvmEvB;AAAA,EAwmEL,sBAxmEK;AAAA,EAwmEmB,MAxmEnB;AAAA,EAymEL,yBAzmEK;AAAA,EAymEsB,MAzmEtB;AAAA,EA0mEL,kBA1mEK;AAAA,EA0mEe,MA1mEf;AAAA,EA2mEL,kBA3mEK;AAAA,EA2mEe,MA3mEf;AAAA,EA4mEL,sBA5mEK;AAAA,EA4mEmB,MA5mEnB;AAAA,EA6mEL,gCA7mEK;AAAA,EA6mE6B,MA7mE7B;AAAA,EA8mEL,0BA9mEK;AAAA,EA8mEuB,MA9mEvB;AAAA,EA+mEL,uBA/mEK;AAAA,EA+mEoB,MA/mEpB;AAAA,EAgnEL,4BAhnEK;AAAA,EAgnEyB,MAhnEzB;AAAA,EAinEL,4BAjnEK;AAAA,EAinEyB,MAjnEzB;AAAA,EAknEL,0BAlnEK;AAAA,EAknEuB,MAlnEvB;AAAA,EAmnEL,4BAnnEK;AAAA,EAmnEyB,MAnnEzB;AAAA,EAonEL,2BApnEK;AAAA,EAonEwB,MApnExB;AAAA,EAqnEL,sBArnEK;AAAA,EAqnEmB,MArnEnB;AAAA,EAsnEL,sBAtnEK;AAAA,EAsnEmB,MAtnEnB;AAAA,EAunEL,uBAvnEK;AAAA,EAunEoB,MAvnEpB;AAAA,EAwnEL,0BAxnEK;AAAA,EAwnEuB,MAxnEvB;AAAA,EAynEL,wBAznEK;AAAA,EAynEqB,MAznErB;AAAA,EA0nEL,uBA1nEK;AAAA,EA0nEoB,MA1nEpB;AAAA,EA2nEL,uBA3nEK;AAAA,EA2nEoB,MA3nEpB;AAAA,EA4nEL,sBA5nEK;AAAA,EA4nEmB,MA5nEnB;AAAA,EA6nEL,2BA7nEK;AAAA,EA6nEwB,MA7nExB;AAAA,EA8nEL,uBA9nEK;AAAA,EA8nEoB,MA9nEpB;AAAA,EA+nEL,sBA/nEK;AAAA,EA+nEmB,MA/nEnB;AAAA,EAgoEL,sBAhoEK;AAAA,EAgoEmB,MAhoEnB;AAAA,EAioEL,mBAjoEK;AAAA,EAioEgB,MAjoEhB;AAAA,EAkoEL,wBAloEK;AAAA,EAkoEqB,MAloErB;AAAA,EAmoEL,uBAnoEK;AAAA,EAmoEoB,MAnoEpB;AAAA,EAooEL,2BApoEK;AAAA,EAooEwB,MApoExB;AAAA,EAqoEL,0BAroEK;AAAA,EAqoEuB,MAroEvB;AAAA,EAsoEL,wBAtoEK;AAAA,EAsoEqB,MAtoErB;AAAA,EAuoEL,yBAvoEK;AAAA,EAuoEsB,MAvoEtB;AAAA,EAwoEL,sBAxoEK;AAAA,EAwoEmB,MAxoEnB;AAAA,EAyoEL,yBAzoEK;AAAA,EAyoEsB,MAzoEtB;AAAA,EA0oEL,kBA1oEK;AAAA,EA0oEe,MA1oEf;AAAA,EA2oEL,yBA3oEK;AAAA,EA2oEsB,MA3oEtB;AAAA,EA4oEL,uBA5oEK;AAAA,EA4oEoB,MA5oEpB;AAAA,EA6oEL,uBA7oEK;AAAA,EA6oEoB,MA7oEpB;AAAA,EA8oEL,qBA9oEK;AAAA,EA8oEkB,MA9oElB;AAAA,EA+oEL,2BA/oEK;AAAA,EA+oEwB,MA/oExB;AAAA,EAgpEL,uBAhpEK;AAAA,EAgpEoB,MAhpEpB;AAAA,EAipEL,sBAjpEK;AAAA,EAipEmB,MAjpEnB;AAAA,EAkpEL,iBAlpEK;AAAA,EAkpEc,MAlpEd;AAAA,EAmpEL,sBAnpEK;AAAA,EAmpEmB,MAnpEnB;AAAA,EAopEL,qBAppEK;AAAA,EAopEkB,MAppElB;AAAA,EAqpEL,qBArpEK;AAAA,EAqpEkB,MArpElB;AAAA,EAspEL,oBAtpEK;AAAA,EAspEiB,MAtpEjB;AAAA,EAupEL,sBAvpEK;AAAA,EAupEmB,MAvpEnB;AAAA,EAwpEL,qBAxpEK;AAAA,EAwpEkB,MAxpElB;AAAA,EAypEL,OAzpEK;AAAA,EAypEI,MAzpEJ;AAAA,EA0pEL,WA1pEK;AAAA,EA0pEQ,MA1pER;AAAA,EA2pEL,gBA3pEK;AAAA,EA2pEa,MA3pEb;AAAA,EA4pEL,mBA5pEK;AAAA,EA4pEgB,MA5pEhB;AAAA,EA6pEL,WA7pEK;AAAA,EA6pEQ,MA7pER;AAAA,EA8pEL,iBA9pEK;AAAA,EA8pEc,MA9pEd;AAAA,EA+pEL,YA/pEK;AAAA,EA+pES,MA/pET;AAAA,EAgqEL,oBAhqEK;AAAA,EAgqEiB,MAhqEjB;AAAA,EAiqEL,mBAjqEK;AAAA,EAiqEgB,MAjqEhB;AAAA,EAkqEL,mBAlqEK;AAAA,EAkqEgB,MAlqEhB;AAAA,EAmqEL,aAnqEK;AAAA,EAmqEU,MAnqEV;AAAA,EAoqEL,kBApqEK;AAAA,EAoqEe,MApqEf;AAAA,EAqqEL,QArqEK;AAAA,EAqqEK,MArqEL;AAAA,EAsqEL,WAtqEK;AAAA,EAsqEQ,MAtqER;AAAA,EAuqEL,WAvqEK;AAAA,EAuqEQ,MAvqER;AAAA,EAwqEL,WAxqEK;AAAA,EAwqEQ,MAxqER;AAAA,EAyqEL,YAzqEK;AAAA,EAyqES,MAzqET;AAAA,EA0qEL,WA1qEK;AAAA,EA0qEQ,MA1qER;AAAA,EA2qEL,YA3qEK;AAAA,EA2qES,MA3qET;AAAA,EA4qEL,QA5qEK;AAAA,EA4qEK,MA5qEL;AAAA,EA6qEL,YA7qEK;AAAA,EA6qES,MA7qET;AAAA,EA8qEL,YA9qEK;AAAA,EA8qES,MA9qET;AAAA,EA+qEL,iBA/qEK;AAAA,EA+qEc,MA/qEd;AAAA,EAgrEL,gBAhrEK;AAAA,EAgrEa,MAhrEb;AAAA,EAirEL,iBAjrEK;AAAA,EAirEc,MAjrEd;AAAA,EAkrEL,oBAlrEK;AAAA,EAkrEiB,MAlrEjB;AAAA,EAmrEL,iBAnrEK;AAAA,EAmrEc,MAnrEd;AAAA,EAorEL,qBAprEK;AAAA,EAorEkB,MAprElB;AAAA,EAqrEL,IArrEK;AAAA,EAqrEC,MArrED;AAAA,EAsrEL,WAtrEK;AAAA,EAsrEQ,MAtrER;AAAA,EAurEL,oBAvrEK;AAAA,EAurEiB,MAvrEjB;AAAA,EAwrEL,SAxrEK;AAAA,EAwrEM,MAxrEN;AAAA,EAyrEL,MAzrEK;AAAA,EAyrEG,MAzrEH;AAAA,EA0rEL,YA1rEK;AAAA,EA0rES,MA1rET;AAAA,EA2rEL,SA3rEK;AAAA,EA2rEM,MA3rEN;AAAA,EA4rEL,iBA5rEK;AAAA,EA4rEc,MA5rEd;AAAA,EA6rEL,2BA7rEK;AAAA,EA6rEwB,MA7rExB;AAAA,EA8rEL,gBA9rEK;AAAA,EA8rEa,MA9rEb;AAAA,EA+rEL,YA/rEK;AAAA,EA+rES,MA/rET;AAAA,EAgsEL,WAhsEK;AAAA,EAgsEQ,MAhsER;AAAA,EAisEL,UAjsEK;AAAA,EAisEO,MAjsEP;AAAA,EAksEL,aAlsEK;AAAA,EAksEU,MAlsEV;AAAA,EAmsEL,UAnsEK;AAAA,EAmsEO,MAnsEP;AAAA,EAosEL,gBApsEK;AAAA,EAosEa,MApsEb;AAAA,EAqsEL,YArsEK;AAAA,EAqsES,MArsET;AAAA,EAssEL,YAtsEK;AAAA,EAssES,MAtsET;AAAA,EAusEL,aAvsEK;AAAA,EAusEU,MAvsEV;AAAA,EAwsEL,YAxsEK;AAAA,EAwsES,MAxsET;AAAA,EAysEL,cAzsEK;AAAA,EAysEW,MAzsEX;AAAA,EA0sEL,YA1sEK;AAAA,EA0sES,MA1sET;AAAA,EA2sEL,WA3sEK;AAAA,EA2sEQ,MA3sER;AAAA,EA4sEL,WA5sEK;AAAA,EA4sEQ,MA5sER;AAAA,EA6sEL,cA7sEK;AAAA,EA6sEW,MA7sEX;AAAA,EA8sEL,YA9sEK;AAAA,EA8sES,MA9sET;AAAA,EA+sEL,SA/sEK;AAAA,EA+sEM,MA/sEN;AAAA,EAgtEL,MAhtEK;AAAA,EAgtEG,MAhtEH;AAAA,EAitEL,cAjtEK;AAAA,EAitEW,MAjtEX;AAAA,EAktEL,mBAltEK;AAAA,EAktEgB,MAltEhB;AAAA,EAmtEL,WAntEK;AAAA,EAmtEQ,MAntER;AAAA,EAotEL,WAptEK;AAAA,EAotEQ,MAptER;AAAA,EAqtEL,QArtEK;AAAA,EAqtEK,MArtEL;AAAA,EAstEL,aAttEK;AAAA,EAstEU,MAttEV;AAAA,EAutEL,gBAvtEK;AAAA,EAutEa,MAvtEb;AAAA,EAwtEL,gBAxtEK;AAAA,EAwtEa,MAxtEb;AAAA,EAytEL,yBAztEK;AAAA,EAytEsB,MAztEtB;AAAA,EA0tEL,eA1tEK;AAAA,EA0tEY,MA1tEZ;AAAA,EA2tEL,SA3tEK;AAAA,EA2tEM,MA3tEN;AAAA,EA4tEL,WA5tEK;AAAA,EA4tEQ,MA5tER;AAAA,EA6tEL,mBA7tEK;AAAA,EA6tEgB,MA7tEhB;AAAA,EA8tEL,mBA9tEK;AAAA,EA8tEgB,MA9tEhB;AAAA,EA+tEL,QA/tEK;AAAA,EA+tEK,MA/tEL;AAAA,EAguEL,aAhuEK;AAAA,EAguEU,MAhuEV;AAAA,EAiuEL,YAjuEK;AAAA,EAiuES,MAjuET;AAAA,EAkuEL,YAluEK;AAAA,EAkuES,MAluET;AAAA,EAmuEL,mBAnuEK;AAAA,EAmuEgB,MAnuEhB;AAAA,EAouEL,gBApuEK;AAAA,EAouEa,MApuEb;AAAA,EAquEL,oBAruEK;AAAA,EAquEiB,MAruEjB;AAAA,EAsuEL,iBAtuEK;AAAA,EAsuEc,MAtuEd;AAAA,EAuuEL,yBAvuEK;AAAA,EAuuEsB,MAvuEtB;AAAA,EAwuEL,GAxuEK;AAAA,EAwuEA,MAxuEA;AAAA,EAyuEL,YAzuEK;AAAA,EAyuES,MAzuET;AAAA,EA0uEL,WA1uEK;AAAA,EA0uEQ,MA1uER;AAAA,EA2uEL,QA3uEK;AAAA,EA2uEK,MA3uEL;AAAA,EA4uEL,YA5uEK;AAAA,EA4uES,MA5uET;AAAA,EA6uEL,YA7uEK;AAAA,EA6uES,MA7uET;AAAA,EA8uEL,WA9uEK;AAAA,EA8uEQ,MA9uER;AAAA,EA+uEL,QA/uEK;AAAA,EA+uEK,MA/uEL;AAAA,EAgvEL,SAhvEK;AAAA,EAgvEM,MAhvEN;AAAA,EAivEL,aAjvEK;AAAA,EAivEU,MAjvEV;AAAA,EAkvEL,cAlvEK;AAAA,EAkvEW,MAlvEX;AAAA,EAmvEL,gBAnvEK;AAAA,EAmvEa,MAnvEb;AAAA,EAovEL,YApvEK;AAAA,EAovES,MApvET;AAAA,EAqvEL,YArvEK;AAAA,EAqvES,MArvET;AAAA,EAsvEL,iBAtvEK;AAAA,EAsvEc,MAtvEd;AAAA,EAuvEL,mBAvvEK;AAAA,EAuvEgB,MAvvEhB;AAAA,EAwvEL,kBAxvEK;AAAA,EAwvEe,MAxvEf;AAAA,EAyvEL,WAzvEK;AAAA,EAyvEQ,MAzvER;AAAA,EA0vEL,gBA1vEK;AAAA,EA0vEa,MA1vEb;AAAA,EA2vEL,YA3vEK;AAAA,EA2vES,MA3vET;AAAA,EA4vEL,SA5vEK;AAAA,EA4vEM,MA5vEN;AAAA,EA6vEL,aA7vEK;AAAA,EA6vEU,MA7vEV;AAAA,EA8vEL,aA9vEK;AAAA,EA8vEU,MA9vEV;AAAA,EA+vEL,cA/vEK;AAAA,EA+vEW,MA/vEX;AAAA,EAgwEL,KAhwEK;AAAA,EAgwEE,MAhwEF;AAAA,EAiwEL,YAjwEK;AAAA,EAiwES,MAjwET;AAAA,EAkwEL,QAlwEK;AAAA,EAkwEK,MAlwEL;AAAA,EAmwEL,WAnwEK;AAAA,EAmwEQ,MAnwER;AAAA,EAowEL,GApwEK;AAAA,EAowEA,MApwEA;AAAA,EAqwEL,mBArwEK;AAAA,EAqwEgB,MArwEhB;AAAA,EAswEL,WAtwEK;AAAA,EAswEQ,MAtwER;AAAA,EAuwEL,QAvwEK;AAAA,EAuwEK,MAvwEL;AAAA,EAwwEL,YAxwEK;AAAA,EAwwES,MAxwET;AAAA,EAywEL,qBAzwEK;AAAA,EAywEkB,MAzwElB;AAAA,EA0wEL,QA1wEK;AAAA,EA0wEK,MA1wEL;AAAA,EA2wEL,KA3wEK;AAAA,EA2wEE,MA3wEF;AAAA,EA4wEL,WA5wEK;AAAA,EA4wEQ,MA5wER;AAAA,EA6wEL,WA7wEK;AAAA,EA6wEQ,MA7wER;AAAA,EA8wEL,iBA9wEK;AAAA,EA8wEc,MA9wEd;AAAA,EA+wEL,gBA/wEK;AAAA,EA+wEa,MA/wEb;AAAA,EAgxEL,WAhxEK;AAAA,EAgxEQ,MAhxER;AAAA,EAixEL,kBAjxEK;AAAA,EAixEe,MAjxEf;AAAA,EAkxEL,iBAlxEK;AAAA,EAkxEc,MAlxEd;AAAA,EAmxEL,eAnxEK;AAAA,EAmxEY,MAnxEZ;AAAA,EAoxEL,YApxEK;AAAA,EAoxES,MApxET;AAAA,EAqxEL,YArxEK;AAAA,EAqxES,MArxET;AAAA,EAsxEL,YAtxEK;AAAA,EAsxES,MAtxET;AAAA,EAuxEL,gBAvxEK;AAAA,EAuxEa,MAvxEb;AAAA,EAwxEL,YAxxEK;AAAA,EAwxES,MAxxET;AAAA,EAyxEL,qBAzxEK;AAAA,EAyxEkB,MAzxElB;AAAA,EA0xEL,OA1xEK;AAAA,EA0xEI,MA1xEJ;AAAA,EA2xEL,kBA3xEK;AAAA,EA2xEe,MA3xEf;AAAA,EA4xEL,qBA5xEK;AAAA,EA4xEkB,MA5xElB;AAAA,EA6xEL,uBA7xEK;AAAA,EA6xEoB,MA7xEpB;AAAA,EA8xEL,qBA9xEK;AAAA,EA8xEkB,MA9xElB;AAAA,EA+xEL,0BA/xEK;AAAA,EA+xEuB,MA/xEvB;AAAA,EAgyEL,eAhyEK;AAAA,EAgyEY,MAhyEZ;AAAA,EAiyEL,mBAjyEK;AAAA,EAiyEgB,MAjyEhB;AAAA,EAkyEL,gCAlyEK;AAAA,EAkyE6B,MAlyE7B;AAAA,EAmyEL,iBAnyEK;AAAA,EAmyEc,MAnyEd;AAAA,EAoyEL,UApyEK;AAAA,EAoyEO,MApyEP;AAAA,EAqyEL,aAryEK;AAAA,EAqyEU,MAryEV;AAAA,EAsyEL,gBAtyEK;AAAA,EAsyEa,MAtyEb;AAAA,EAuyEL,kBAvyEK;AAAA,EAuyEe,MAvyEf;AAAA,EAwyEL,8BAxyEK;AAAA,EAwyE2B,MAxyE3B;AAAA,EAyyEL,0BAzyEK;AAAA,EAyyEuB,MAzyEvB;AAAA,EA0yEL,WA1yEK;AAAA,EA0yEQ,MA1yER;AAAA,EA2yEL,YA3yEK;AAAA,EA2yES,MA3yET;AAAA,EA4yEL,QA5yEK;AAAA,EA4yEK,MA5yEL;AAAA,EA6yEL,UA7yEK;AAAA,EA6yEO,MA7yEP;AAAA,EA8yEL,SA9yEK;AAAA,EA8yEM,MA9yEN;AAAA,EA+yEL,cA/yEK;AAAA,EA+yEW,MA/yEX;AAAA,EAgzEL,WAhzEK;AAAA,EAgzEQ,MAhzER;AAAA,EAizEL,aAjzEK;AAAA,EAizEU,MAjzEV;AAAA,EAkzEL,YAlzEK;AAAA,EAkzES,MAlzET;AAAA,EAmzEL,YAnzEK;AAAA,EAmzES,MAnzET;AAAA,EAozEL,qBApzEK;AAAA,EAozEkB,MApzElB;AAAA,EAqzEL,aArzEK;AAAA,EAqzEU,MArzEV;AAAA,EAszEL,iBAtzEK;AAAA,EAszEc,MAtzEd;AAAA,EAuzEL,cAvzEK;AAAA,EAuzEW,MAvzEX;AAAA,EAwzEL,YAxzEK;AAAA,EAwzES,MAxzET;AAAA,EAyzEL,aAzzEK;AAAA,EAyzEU,MAzzEV;AAAA,EA0zEL,SA1zEK;AAAA,EA0zEM,MA1zEN;AAAA,EA2zEL,aA3zEK;AAAA,EA2zEU,MA3zEV;AAAA,EA4zEL,aA5zEK;AAAA,EA4zEU,MA5zEV;AAAA,EA6zEL,YA7zEK;AAAA,EA6zES,MA7zET;AAAA,EA8zEL,iBA9zEK;AAAA,EA8zEc,MA9zEd;AAAA,EA+zEL,mBA/zEK;AAAA,EA+zEgB,MA/zEhB;AAAA,EAg0EL,kBAh0EK;AAAA,EAg0Ee,MAh0Ef;AAAA,EAi0EL,YAj0EK;AAAA,EAi0ES,MAj0ET;AAAA,EAk0EL,UAl0EK;AAAA,EAk0EO,MAl0EP;AAAA,EAm0EL,cAn0EK;AAAA,EAm0EW,MAn0EX;AAAA,EAo0EL,sBAp0EK;AAAA,EAo0EmB,MAp0EnB;AAAA,EAq0EL,qBAr0EK;AAAA,EAq0EkB,MAr0ElB;AAAA,EAs0EL,qBAt0EK;AAAA,EAs0EkB,MAt0ElB;AAAA,EAu0EL,eAv0EK;AAAA,EAu0EY,MAv0EZ;AAAA,EAw0EL,oBAx0EK;AAAA,EAw0EiB,MAx0EjB;AAAA,EAy0EL,aAz0EK;AAAA,EAy0EU,MAz0EV;AAAA,EA00EL,aA10EK;AAAA,EA00EU,MA10EV;AAAA,EA20EL,cA30EK;AAAA,EA20EW,MA30EX;AAAA,EA40EL,cA50EK;AAAA,EA40EW,MA50EX;AAAA,EA60EL,YA70EK;AAAA,EA60ES,MA70ET;AAAA,EA80EL,OA90EK;AAAA,EA80EI,MA90EJ;AAAA,EA+0EL,gBA/0EK;AAAA,EA+0Ea,MA/0Eb;AAAA,EAg1EL,WAh1EK;AAAA,EAg1EQ,MAh1ER;AAAA,EAi1EL,YAj1EK;AAAA,EAi1ES,MAj1ET;AAAA,EAk1EL,YAl1EK;AAAA,EAk1ES,MAl1ET;AAAA,EAm1EL,qBAn1EK;AAAA,EAm1EkB,MAn1ElB;AAAA,EAo1EL,kBAp1EK;AAAA,EAo1Ee,MAp1Ef;AAAA,EAq1EL,mBAr1EK;AAAA,EAq1EgB,MAr1EhB;AAAA,EAs1EL,YAt1EK;AAAA,EAs1ES,MAt1ET;AAAA,EAu1EL,qBAv1EK;AAAA,EAu1EkB,MAv1ElB;AAAA,EAw1EL,oBAx1EK;AAAA,EAw1EiB,MAx1EjB;AAAA,EAy1EL,oBAz1EK;AAAA,EAy1EiB,MAz1EjB;AAAA,EA01EL,cA11EK;AAAA,EA01EW,MA11EX;AAAA,EA21EL,mBA31EK;AAAA,EA21EgB,MA31EhB;AAAA,EA41EL,kBA51EK;AAAA,EA41Ee,MA51Ef;AAAA,EA61EL,aA71EK;AAAA,EA61EU,MA71EV;AAAA,EA81EL,YA91EK;AAAA,EA81ES,MA91ET;AAAA,EA+1EL,UA/1EK;AAAA,EA+1EO,MA/1EP;AAAA,EAg2EL,eAh2EK;AAAA,EAg2EY,MAh2EZ;AAAA,EAi2EL,YAj2EK;AAAA,EAi2ES,MAj2ET;AAAA,EAk2EL,iBAl2EK;AAAA,EAk2Ec,MAl2Ed;AAAA,EAm2EL,YAn2EK;AAAA,EAm2ES,MAn2ET;AAAA,EAo2EL,YAp2EK;AAAA,EAo2ES,MAp2ET;AAAA,EAq2EL,WAr2EK;AAAA,EAq2EQ,MAr2ER;AAAA,EAs2EL,YAt2EK;AAAA,EAs2ES,MAt2ET;AAAA,EAu2EL,qBAv2EK;AAAA,EAu2EkB,MAv2ElB;AAAA,EAw2EL,aAx2EK;AAAA,EAw2EU,MAx2EV;AAAA,EAy2EL,eAz2EK;AAAA,EAy2EY,MAz2EZ;AAAA,EA02EL,sBA12EK;AAAA,EA02EmB,MA12EnB;AAAA,EA22EL,YA32EK;AAAA,EA22ES,MA32ET;AAAA,EA42EL,QA52EK;AAAA,EA42EK,MA52EL;AAAA,EA62EL,WA72EK;AAAA,EA62EQ,MA72ER;AAAA,EA82EL,aA92EK;AAAA,EA82EU,MA92EV;AAAA,EA+2EL,UA/2EK;AAAA,EA+2EO,MA/2EP;AAAA,EAg3EL,SAh3EK;AAAA,EAg3EM,MAh3EN;AAAA,EAi3EL,YAj3EK;AAAA,EAi3ES,MAj3ET;AAAA,EAk3EL,YAl3EK;AAAA,EAk3ES,MAl3ET;AAAA,EAm3EL,qBAn3EK;AAAA,EAm3EkB,MAn3ElB;AAAA,EAo3EL,UAp3EK;AAAA,EAo3EO,MAp3EP;AAAA,EAq3EL,UAr3EK;AAAA,EAq3EO,MAr3EP;AAAA,EAs3EL,GAt3EK;AAAA,EAs3EA,MAt3EA;AAAA,EAu3EL,WAv3EK;AAAA,EAu3EQ,MAv3ER;AAAA,EAw3EL,QAx3EK;AAAA,EAw3EK,MAx3EL;AAAA,EAy3EL,QAz3EK;AAAA,EAy3EK,MAz3EL;AAAA,EA03EL,YA13EK;AAAA,EA03ES,MA13ET;AAAA,EA23EL,YA33EK;AAAA,EA23ES,MA33ET;AAAA,EA43EL,iBA53EK;AAAA,EA43Ec,MA53Ed;AAAA,EA63EL,oBA73EK;AAAA,EA63EiB,MA73EjB;AAAA,EA83EL,8BA93EK;AAAA,EA83E2B,MA93E3B;AAAA,EA+3EL,iCA/3EK;AAAA,EA+3E8B,MA/3E9B;AAAA,EAg4EL,8BAh4EK;AAAA,EAg4E2B,MAh4E3B;AAAA,EAi4EL,iCAj4EK;AAAA,EAi4E8B,MAj4E9B;AAAA,EAk4EL,uBAl4EK;AAAA,EAk4EoB,MAl4EpB;AAAA,EAm4EL,8BAn4EK;AAAA,EAm4E2B,MAn4E3B;AAAA,EAo4EL,iCAp4EK;AAAA,EAo4E8B,MAp4E9B;AAAA,EAq4EL,WAr4EK;AAAA,EAq4EQ,MAr4ER;AAAA,EAs4EL,QAt4EK;AAAA,EAs4EK,MAt4EL;AAAA,EAu4EL,cAv4EK;AAAA,EAu4EW,MAv4EX;AAAA,EAw4EL,OAx4EK;AAAA,EAw4EI,MAx4EJ;AAAA,EAy4EL,aAz4EK;AAAA,EAy4EU,MAz4EV;AAAA,EA04EL,mBA14EK;AAAA,EA04EgB,MA14EhB;AAAA,EA24EL,aA34EK;AAAA,EA24EU,MA34EV;AAAA,EA44EL,gBA54EK;AAAA,EA44Ea,MA54Eb;AAAA,EA64EL,qBA74EK;AAAA,EA64EkB,MA74ElB;AAAA,EA84EL,kBA94EK;AAAA,EA84Ee,MA94Ef;AAAA,EA+4EL,sBA/4EK;AAAA,EA+4EmB,MA/4EnB;AAAA,EAg5EL,sBAh5EK;AAAA,EAg5EmB,MAh5EnB;AAAA,EAi5EL,yBAj5EK;AAAA,EAi5EsB,MAj5EtB;AAAA,EAk5EL,iBAl5EK;AAAA,EAk5Ec,MAl5Ed;AAAA,EAm5EL,yBAn5EK;AAAA,EAm5EsB,MAn5EtB;AAAA,EAo5EL,sBAp5EK;AAAA,EAo5EmB,MAp5EnB;AAAA,EAq5EL,aAr5EK;AAAA,EAq5EU,MAr5EV;AAAA,EAs5EL,MAt5EK;AAAA,EAs5EG,MAt5EH;AAAA,EAu5EL,OAv5EK;AAAA,EAu5EI,MAv5EJ;AAAA,EAw5EL,WAx5EK;AAAA,EAw5EQ,MAx5ER;AAAA,EAy5EL,QAz5EK;AAAA,EAy5EK,MAz5EL;AAAA,EA05EL,UA15EK;AAAA,EA05EO,MA15EP;AAAA,EA25EL,SA35EK;AAAA,EA25EM,MA35EN;AAAA,EA45EL,kBA55EK;AAAA,EA45Ee,MA55Ef;AAAA,EA65EL,cA75EK;AAAA,EA65EW,MA75EX;AAAA,EA85EL,MA95EK;AAAA,EA85EG,MA95EH;AAAA,EA+5EL,YA/5EK;AAAA,EA+5ES,MA/5ET;AAAA,EAg6EL,WAh6EK;AAAA,EAg6EQ,MAh6ER;AAAA,EAi6EL,iBAj6EK;AAAA,EAi6Ec,MAj6Ed;AAAA,EAk6EL,mBAl6EK;AAAA,EAk6EgB,MAl6EhB;AAAA,EAm6EL,kBAn6EK;AAAA,EAm6Ee,MAn6Ef;AAAA,EAo6EL,MAp6EK;AAAA,EAo6EG,MAp6EH;AAAA,EAq6EL,WAr6EK;AAAA,EAq6EQ,MAr6ER;AAAA,EAs6EL,oBAt6EK;AAAA,EAs6EiB,MAt6EjB;AAAA,EAu6EL,eAv6EK;AAAA,EAu6EY,MAv6EZ;AAAA,EAw6EL,kBAx6EK;AAAA,EAw6Ee,MAx6Ef;AAAA,EAy6EL,eAz6EK;AAAA,EAy6EY,MAz6EZ;AAAA,EA06EL,eA16EK;AAAA,EA06EY,MA16EZ;AAAA,EA26EL,WA36EK;AAAA,EA26EQ,MA36ER;AAAA,EA46EL,MA56EK;AAAA,EA46EG,MA56EH;AAAA,EA66EL,SA76EK;AAAA,EA66EM,MA76EN;AAAA,EA86EL,gBA96EK;AAAA,EA86Ea,MA96Eb;AAAA,EA+6EL,MA/6EK;AAAA,EA+6EG,MA/6EH;AAAA,EAg7EL,cAh7EK;AAAA,EAg7EW,MAh7EX;AAAA,EAi7EL,IAj7EK;AAAA,EAi7EC,MAj7ED;AAAA,EAk7EL,aAl7EK;AAAA,EAk7EU,MAl7EV;AAAA,EAm7EL,IAn7EK;AAAA,EAm7EC,MAn7ED;AAAA,EAo7EL,SAp7EK;AAAA,EAo7EM,MAp7EN;AAAA,EAq7EL,aAr7EK;AAAA,EAq7EU,MAr7EV;AAAA,EAs7EL,YAt7EK;AAAA,EAs7ES,MAt7ET;AAAA,EAu7EL,UAv7EK;AAAA,EAu7EO,MAv7EP;AAAA,EAw7EL,kBAx7EK;AAAA,EAw7Ee,MAx7Ef;AAAA,EAy7EL,eAz7EK;AAAA,EAy7EY,MAz7EZ;AAAA,EA07EL,2BA17EK;AAAA,EA07EwB,MA17ExB;AAAA,EA27EL,wBA37EK;AAAA,EA27EqB,MA37ErB;AAAA,EA47EL,cA57EK;AAAA,EA47EW,MA57EX;AAAA,EA67EL,YA77EK;AAAA,EA67ES,MA77ET;AAAA,EA87EL,UA97EK;AAAA,EA87EO,MA97EP;AAAA,EA+7EL,aA/7EK;AAAA,EA+7EU,MA/7EV;AAAA,EAg8EL,YAh8EK;AAAA,EAg8ES,MAh8ET;AAAA,EAi8EL,YAj8EK;AAAA,EAi8ES,MAj8ET;AAAA,EAk8EL,oBAl8EK;AAAA,EAk8EiB,MAl8EjB;AAAA,EAm8EL,WAn8EK;AAAA,EAm8EQ,MAn8ER;AAAA,EAo8EL,YAp8EK;AAAA,EAo8ES,MAp8ET;AAAA,EAq8EL,OAr8EK;AAAA,EAq8EI,MAr8EJ;AAAA,EAs8EL,mBAt8EK;AAAA,EAs8EgB,MAt8EhB;AAAA,EAu8EL,YAv8EK;AAAA,EAu8ES,MAv8ET;AAAA,EAw8EL,eAx8EK;AAAA,EAw8EY,MAx8EZ;AAAA,EAy8EL,SAz8EK;AAAA,EAy8EM,MAz8EN;AAAA,EA08EL,QA18EK;AAAA,EA08EK,MA18EL;AAAA,EA28EL,QA38EK;AAAA,EA28EK,MA38EL;AAAA,EA48EL,SA58EK;AAAA,EA48EM,MA58EN;AAAA,EA68EL,WA78EK;AAAA,EA68EQ,MA78ER;AAAA,EA88EL,SA98EK;AAAA,EA88EM,MA98EN;AAAA,EA+8EL,QA/8EK;AAAA,EA+8EK,MA/8EL;AAAA,EAg9EL,iBAh9EK;AAAA,EAg9Ec,MAh9Ed;AAAA,EAi9EL,cAj9EK;AAAA,EAi9EW,MAj9EX;AAAA,EAk9EL,0BAl9EK;AAAA,EAk9EuB,MAl9EvB;AAAA,EAm9EL,uBAn9EK;AAAA,EAm9EoB,MAn9EpB;AAAA,EAo9EL,UAp9EK;AAAA,EAo9EO,MAp9EP;AAAA,EAq9EL,GAr9EK;AAAA,EAq9EA,MAr9EA;AAAA,EAs9EL,WAt9EK;AAAA,EAs9EQ,MAt9ER;AAAA,EAu9EL,QAv9EK;AAAA,EAu9EK,MAv9EL;AAAA,EAw9EL,gBAx9EK;AAAA,EAw9Ea,MAx9Eb;AAAA,EAy9EL,WAz9EK;AAAA,EAy9EQ,MAz9ER;AAAA,EA09EL,cA19EK;AAAA,EA09EW,MA19EX;AAAA,EA29EL,iBA39EK;AAAA,EA29Ec,MA39Ed;AAAA,EA49EL,QA59EK;AAAA,EA49EK,MA59EL;AAAA,EA69EL,QA79EK;AAAA,EA69EK,MA79EL;AAAA,EA89EL,YA99EK;AAAA,EA89ES,MA99ET;AAAA,EA+9EL,YA/9EK;AAAA,EA+9ES,MA/9ET;AAAA,EAg+EL,gBAh+EK;AAAA,EAg+Ea,MAh+Eb;AAAA,EAi+EL,oBAj+EK;AAAA,EAi+EiB,MAj+EjB;AAAA,EAk+EL,YAl+EK;AAAA,EAk+ES,MAl+ET;AAAA,EAm+EL,wBAn+EK;AAAA,EAm+EqB,MAn+ErB;AAAA,EAo+EL,yBAp+EK;AAAA,EAo+EsB,MAp+EtB;AAAA,EAq+EL,iBAr+EK;AAAA,EAq+Ec,MAr+Ed;AAAA,EAs+EL,0BAt+EK;AAAA,EAs+EuB,MAt+EvB;AAAA,EAu+EL,kBAv+EK;AAAA,EAu+Ee,MAv+Ef;AAAA,EAw+EL,mBAx+EK;AAAA,EAw+EgB,MAx+EhB;AAAA,EAy+EL,WAz+EK;AAAA,EAy+EQ,MAz+ER;AAAA,EA0+EL,oBA1+EK;AAAA,EA0+EiB,MA1+EjB;AAAA,EA2+EL,oBA3+EK;AAAA,EA2+EiB,MA3+EjB;AAAA,EA4+EL,gBA5+EK;AAAA,EA4+Ea,MA5+Eb;AAAA,EA6+EL,mBA7+EK;AAAA,EA6+EgB,MA7+EhB;AAAA,EA8+EL,eA9+EK;AAAA,EA8+EY,MA9+EZ;AAAA,EA++EL,mBA/+EK;AAAA,EA++EgB,MA/+EhB;AAAA,EAg/EL,oBAh/EK;AAAA,EAg/EiB,MAh/EjB;AAAA,EAi/EL,YAj/EK;AAAA,EAi/ES,MAj/ET;AAAA,EAk/EL,qBAl/EK;AAAA,EAk/EkB,MAl/ElB;AAAA,EAm/EL,mBAn/EK;AAAA,EAm/EgB,MAn/EhB;AAAA,EAo/EL,oBAp/EK;AAAA,EAo/EiB,MAp/EjB;AAAA,EAq/EL,YAr/EK;AAAA,EAq/ES,MAr/ET;AAAA,EAs/EL,qBAt/EK;AAAA,EAs/EkB,MAt/ElB;AAAA,EAu/EL,cAv/EK;AAAA,EAu/EW,MAv/EX;AAAA,EAw/EL,YAx/EK;AAAA,EAw/ES,MAx/ET;AAAA,EAy/EL,qBAz/EK;AAAA,EAy/EkB,MAz/ElB;AAAA,EA0/EL,MA1/EK;AAAA,EA0/EG,MA1/EH;AAAA,EA2/EL,eA3/EK;AAAA,EA2/EY,MA3/EZ;AAAA,EA4/EL,aA5/EK;AAAA,EA4/EU,MA5/EV;AAAA,EA6/EL,MA7/EK;AAAA,EA6/EG,MA7/EH;AAAA,EA8/EL,oBA9/EK;AAAA,EA8/EiB,MA9/EjB;AAAA,EA+/EL,UA//EK;AAAA,EA+/EO,MA//EP;AAAA,EAggFL,WAhgFK;AAAA,EAggFQ,MAhgFR;AAAA,EAigFL,UAjgFK;AAAA,EAigFO,MAjgFP;AAAA,EAkgFL,SAlgFK;AAAA,EAkgFM,MAlgFN;AAAA,EAmgFL,cAngFK;AAAA,EAmgFW,MAngFX;AAAA,EAogFL,YApgFK;AAAA,EAogFS,MApgFT;AAAA,EAqgFL,WArgFK;AAAA,EAqgFQ,MArgFR;AAAA,EAsgFL,YAtgFK;AAAA,EAsgFS,MAtgFT;AAAA,EAugFL,iBAvgFK;AAAA,EAugFc,MAvgFd;AAAA,EAwgFL,mBAxgFK;AAAA,EAwgFgB,MAxgFhB;AAAA,EAygFL,kBAzgFK;AAAA,EAygFe,MAzgFf;AAAA,EA0gFL,uBA1gFK;AAAA,EA0gFoB,MA1gFpB;AAAA,EA2gFL,wBA3gFK;AAAA,EA2gFqB,MA3gFrB;AAAA,EA4gFL,eA5gFK;AAAA,EA4gFY,MA5gFZ;AAAA,EA6gFL,YA7gFK;AAAA,EA6gFS,MA7gFT;AAAA,EA8gFL,gBA9gFK;AAAA,EA8gFa,MA9gFb;AAAA,EA+gFL,YA/gFK;AAAA,EA+gFS,MA/gFT;AAAA,EAghFL,qBAhhFK;AAAA,EAghFkB,MAhhFlB;AAAA,EAihFL,KAjhFK;AAAA,EAihFE,MAjhFF;AAAA,EAkhFL,WAlhFK;AAAA,EAkhFQ,MAlhFR;AAAA,EAmhFL,iBAnhFK;AAAA,EAmhFc,MAnhFd;AAAA,EAohFL,WAphFK;AAAA,EAohFQ,MAphFR;AAAA,EAqhFL,aArhFK;AAAA,EAqhFU,MArhFV;AAAA,EAshFL,cAthFK;AAAA,EAshFW,MAthFX;AAAA,EAuhFL,oBAvhFK;AAAA,EAuhFiB,MAvhFjB;AAAA,EAwhFL,wBAxhFK;AAAA,EAwhFqB,MAxhFrB;AAAA,EAyhFL,kBAzhFK;AAAA,EAyhFe,MAzhFf;AAAA,EA0hFL,OA1hFK;AAAA,EA0hFI,MA1hFJ;AAAA,EA2hFL,WA3hFK;AAAA,EA2hFQ,MA3hFR;AAAA,EA4hFL,4BA5hFK;AAAA,EA4hFyB,MA5hFzB;AAAA,EA6hFL,QA7hFK;AAAA,EA6hFK,MA7hFL;AAAA,EA8hFL,oBA9hFK;AAAA,EA8hFiB,MA9hFjB;AAAA,EA+hFL,mBA/hFK;AAAA,EA+hFgB,MA/hFhB;AAAA,EAgiFL,mBAhiFK;AAAA,EAgiFgB,MAhiFhB;AAAA,EAiiFL,aAjiFK;AAAA,EAiiFU,MAjiFV;AAAA,EAkiFL,oBAliFK;AAAA,EAkiFiB,MAliFjB;AAAA,EAmiFL,kBAniFK;AAAA,EAmiFe,MAniFf;AAAA,EAoiFL,kBApiFK;AAAA,EAoiFe,MApiFf;AAAA,EAqiFL,iBAriFK;AAAA,EAqiFc,MAriFd;AAAA,EAsiFL,YAtiFK;AAAA,EAsiFS,MAtiFT;AAAA,EAuiFL,YAviFK;AAAA,EAuiFS,MAviFT;AAAA,EAwiFL,qBAxiFK;AAAA,EAwiFkB,MAxiFlB;AAAA,EAyiFL,OAziFK;AAAA,EAyiFI,MAziFJ;AAAA,EA0iFL,eA1iFK;AAAA,EA0iFY,MA1iFZ;AAAA,EA2iFL,aA3iFK;AAAA,EA2iFU,MA3iFV;AAAA,EA4iFL,UA5iFK;AAAA,EA4iFO,MA5iFP;AAAA,EA6iFL,WA7iFK;AAAA,EA6iFQ,MA7iFR;AAAA,EA8iFL,QA9iFK;AAAA,EA8iFK,MA9iFL;AAAA,EA+iFL,iBA/iFK;AAAA,EA+iFc,MA/iFd;AAAA,EAgjFL,YAhjFK;AAAA,EAgjFS,MAhjFT;AAAA,EAijFL,gBAjjFK;AAAA,EAijFa,MAjjFb;AAAA,EAkjFL,UAljFK;AAAA,EAkjFO,MAljFP;AAAA,EAmjFL,eAnjFK;AAAA,EAmjFY,MAnjFZ;AAAA,EAojFL,YApjFK;AAAA,EAojFS,MApjFT;AAAA,EAqjFL,iBArjFK;AAAA,EAqjFc,MArjFd;AAAA,EAsjFL,YAtjFK;AAAA,EAsjFS,MAtjFT;AAAA,EAujFL,YAvjFK;AAAA,EAujFS,MAvjFT;AAAA,EAwjFL,YAxjFK;AAAA,EAwjFS,MAxjFT;AAAA,EAyjFL,qBAzjFK;AAAA,EAyjFkB,MAzjFlB;AAAA,EA0jFL,WA1jFK;AAAA,EA0jFQ,MA1jFR;AAAA,EA2jFL,UA3jFK;AAAA,EA2jFO,MA3jFP;AAAA,EA4jFL,cA5jFK;AAAA,EA4jFW,MA5jFX;AAAA,EA6jFL,qBA7jFK;AAAA,EA6jFkB,MA7jFlB;AAAA,EA8jFL,QA9jFK;AAAA,EA8jFK,MA9jFL;AAAA,EA+jFL,WA/jFK;AAAA,EA+jFQ,MA/jFR;AAAA,EAgkFL,UAhkFK;AAAA,EAgkFO,MAhkFP;AAAA,EAikFL,WAjkFK;AAAA,EAikFQ,MAjkFR;AAAA,EAkkFL,SAlkFK;AAAA,EAkkFM,MAlkFN;AAAA,EAmkFL,IAnkFK;AAAA,EAmkFC,MAnkFD;AAAA,EAokFL,KApkFK;AAAA,EAokFE,MApkFF;AAAA,EAqkFL,WArkFK;AAAA,EAqkFQ,MArkFR;AAAA,EAskFL,aAtkFK;AAAA,EAskFU,MAtkFV;AAAA,EAukFL,UAvkFK;AAAA,EAukFO,MAvkFP;AAAA,EAwkFL,WAxkFK;AAAA,EAwkFQ,MAxkFR;AAAA,EAykFL,SAzkFK;AAAA,EAykFM,MAzkFN;AAAA,EA0kFL,WA1kFK;AAAA,EA0kFQ,MA1kFR;AAAA,EA2kFL,YA3kFK;AAAA,EA2kFS,MA3kFT;AAAA,EA4kFL,YA5kFK;AAAA,EA4kFS,MA5kFT;AAAA,EA6kFL,qBA7kFK;AAAA,EA6kFkB,MA7kFlB;AAAA,EA8kFL,WA9kFK;AAAA,EA8kFQ,MA9kFR;AAAA,EA+kFL,UA/kFK;AAAA,EA+kFO,MA/kFP;AAAA,EAglFL,WAhlFK;AAAA,EAglFQ,MAhlFR;AAAA,EAilFL,aAjlFK;AAAA,EAilFU,MAjlFV;AAAA,EAklFL,iBAllFK;AAAA,EAklFc,MAllFd;AAAA,EAmlFL,aAnlFK;AAAA,EAmlFU,MAnlFV;AAAA,EAolFL,gBAplFK;AAAA,EAolFa,MAplFb;AAAA,EAqlFL,eArlFK;AAAA,EAqlFY,MArlFZ;AAAA,EAslFL,gBAtlFK;AAAA,EAslFa,MAtlFb;AAAA,EAulFL,WAvlFK;AAAA,EAulFQ,MAvlFR;AAAA,EAwlFL,WAxlFK;AAAA,EAwlFQ,MAxlFR;AAAA,EAylFL,WAzlFK;AAAA,EAylFQ,MAzlFR;AAAA,EA0lFL,cA1lFK;AAAA,EA0lFW,MA1lFX;AAAA,EA2lFL,UA3lFK;AAAA,EA2lFO,MA3lFP;AAAA,EA4lFL,cA5lFK;AAAA,EA4lFW,MA5lFX;AAAA,EA6lFL,UA7lFK;AAAA,EA6lFO,MA7lFP;AAAA,EA8lFL,GA9lFK;AAAA,EA8lFA,MA9lFA;AAAA,EA+lFL,WA/lFK;AAAA,EA+lFQ,MA/lFR;AAAA,EAgmFL,OAhmFK;AAAA,EAgmFI,MAhmFJ;AAAA,EAimFL,QAjmFK;AAAA,EAimFK,MAjmFL;AAAA,EAkmFL,QAlmFK;AAAA,EAkmFK,MAlmFL;AAAA,EAmmFL,YAnmFK;AAAA,EAmmFS,MAnmFT;AAAA,EAomFL,YApmFK;AAAA,EAomFS,MApmFT;AAAA,EAqmFL,YArmFK;AAAA,EAqmFS,MArmFT;AAAA,EAsmFL,YAtmFK;AAAA,EAsmFS,MAtmFT;AAAA,EAumFL,qBAvmFK;AAAA,EAumFkB,MAvmFlB;AAAA,EAwmFL,aAxmFK;AAAA,EAwmFU,MAxmFV;AAAA,EAymFL,UAzmFK;AAAA,EAymFO,MAzmFP;AAAA,EA0mFL,WA1mFK;AAAA,EA0mFQ,MA1mFR;AAAA,EA2mFL,SA3mFK;AAAA,EA2mFM,MA3mFN;AAAA,EA4mFL,QA5mFK;AAAA,EA4mFK,MA5mFL;AAAA,EA6mFL,UA7mFK;AAAA,EA6mFO,MA7mFP;AAAA,EA8mFL,SA9mFK;AAAA,EA8mFM,MA9mFN;AAAA,EA+mFL,kBA/mFK;AAAA,EA+mFe,MA/mFf;AAAA,EAgnFL,cAhnFK;AAAA,EAgnFW,MAhnFX;AAAA,EAinFL,YAjnFK;AAAA,EAinFS,MAjnFT;AAAA,EAknFL,WAlnFK;AAAA,EAknFQ,MAlnFR;AAAA,EAmnFL,YAnnFK;AAAA,EAmnFS,MAnnFT;AAAA,EAonFL,YApnFK;AAAA,EAonFS,MApnFT;AAAA,EAqnFL,qBArnFK;AAAA,EAqnFkB,MArnFlB;AAAA,EAsnFL,eAtnFK;AAAA,EAsnFY,MAtnFZ;AAAA,EAunFL,UAvnFK;AAAA,EAunFO,MAvnFP;AAAA,EAwnFL,YAxnFK;AAAA,EAwnFS,MAxnFT;AAAA,EAynFL,SAznFK;AAAA,EAynFM,MAznFN;AAAA,EA0nFL,aA1nFK;AAAA,EA0nFU,MA1nFV;AAAA,EA2nFL,aA3nFK;AAAA,EA2nFU,MA3nFV;AAAA,EA4nFL,YA5nFK;AAAA,EA4nFS,MA5nFT;AAAA,EA6nFL,WA7nFK;AAAA,EA6nFQ,MA7nFR;AAAA,EA8nFL,WA9nFK;AAAA,EA8nFQ,MA9nFR;AAAA,EA+nFL,gBA/nFK;AAAA,EA+nFa,MA/nFb;AAAA,EAgoFL,oBAhoFK;AAAA,EAgoFiB,MAhoFjB;AAAA,EAioFL,mBAjoFK;AAAA,EAioFgB,MAjoFhB;AAAA,EAkoFL,kBAloFK;AAAA,EAkoFe,MAloFf;AAAA,EAmoFL,mBAnoFK;AAAA,EAmoFgB,MAnoFhB;AAAA,EAooFL,kBApoFK;AAAA,EAooFe,MApoFf;AAAA,EAqoFL,aAroFK;AAAA,EAqoFU,MAroFV;AAAA,EAsoFL,oBAtoFK;AAAA,EAsoFiB,MAtoFjB;AAAA,EAuoFL,kBAvoFK;AAAA,EAuoFe,MAvoFf;AAAA,EAwoFL,iBAxoFK;AAAA,EAwoFc,MAxoFd;AAAA,EAyoFL,mBAzoFK;AAAA,EAyoFgB,MAzoFhB;AAAA,EA0oFL,YA1oFK;AAAA,EA0oFS,MA1oFT;AAAA,EA2oFL,YA3oFK;AAAA,EA2oFS,MA3oFT;AAAA,EA4oFL,qBA5oFK;AAAA,EA4oFkB,MA5oFlB;AAAA,EA6oFL,kBA7oFK;AAAA,EA6oFe,MA7oFf;AAAA,EA8oFL,cA9oFK;AAAA,EA8oFW,MA9oFX;AAAA,EA+oFL,MA/oFK;AAAA,EA+oFG,MA/oFH;AAAA,EAgpFL,YAhpFK;AAAA,EAgpFS,MAhpFT;AAAA,EAipFL,aAjpFK;AAAA,EAipFU,MAjpFV;AAAA,EAkpFL,YAlpFK;AAAA,EAkpFS,MAlpFT;AAAA,EAmpFL,4BAnpFK;AAAA,EAmpFyB,MAnpFzB;AAAA,EAopFL,UAppFK;AAAA,EAopFO,MAppFP;AAAA,EAqpFL,cArpFK;AAAA,EAqpFW,MArpFX;AAAA,EAspFL,cAtpFK;AAAA,EAspFW,MAtpFX;AAAA,EAupFL,gBAvpFK;AAAA,EAupFa,MAvpFb;AAAA,EAwpFL,cAxpFK;AAAA,EAwpFW,MAxpFX;AAAA,EAypFL,sBAzpFK;AAAA,EAypFmB,MAzpFnB;AAAA,EA0pFL,cA1pFK;AAAA,EA0pFW,MA1pFX;AAAA,EA2pFL,eA3pFK;AAAA,EA2pFY,MA3pFZ;AAAA,EA4pFL,cA5pFK;AAAA,EA4pFW,MA5pFX;AAAA,EA6pFL,WA7pFK;AAAA,EA6pFQ,MA7pFR;AAAA,EA8pFL,YA9pFK;AAAA,EA8pFS,MA9pFT;AAAA,EA+pFL,aA/pFK;AAAA,EA+pFU,MA/pFV;AAAA,EAgqFL,WAhqFK;AAAA,EAgqFQ,MAhqFR;AAAA,EAiqFL,cAjqFK;AAAA,EAiqFW,MAjqFX;AAAA,EAkqFL,gBAlqFK;AAAA,EAkqFa,MAlqFb;AAAA,EAmqFL,eAnqFK;AAAA,EAmqFY,MAnqFZ;AAAA,EAoqFL,gBApqFK;AAAA,EAoqFa,MApqFb;AAAA,EAqqFL,UArqFK;AAAA,EAqqFO,MArqFP;AAAA,EAsqFL,IAtqFK;AAAA,EAsqFC,MAtqFD;AAAA,EAuqFL,aAvqFK;AAAA,EAuqFU,MAvqFV;AAAA,EAwqFL,WAxqFK;AAAA,EAwqFQ,MAxqFR;AAAA,EAyqFL,oBAzqFK;AAAA,EAyqFiB,MAzqFjB;AAAA,EA0qFL,eA1qFK;AAAA,EA0qFY,MA1qFZ;AAAA,EA2qFL,YA3qFK;AAAA,EA2qFS,MA3qFT;AAAA,EA4qFL,YA5qFK;AAAA,EA4qFS,MA5qFT;AAAA,EA6qFL,UA7qFK;AAAA,EA6qFO,MA7qFP;AAAA,EA8qFL,YA9qFK;AAAA,EA8qFS,MA9qFT;AAAA,EA+qFL,SA/qFK;AAAA,EA+qFM,MA/qFN;AAAA,EAgrFL,aAhrFK;AAAA,EAgrFU,MAhrFV;AAAA,EAirFL,aAjrFK;AAAA,EAirFU,MAjrFV;AAAA,EAkrFL,UAlrFK;AAAA,EAkrFO,MAlrFP;AAAA,EAmrFL,YAnrFK;AAAA,EAmrFS,MAnrFT;AAAA,EAorFL,YAprFK;AAAA,EAorFS,MAprFT;AAAA,EAqrFL,qBArrFK;AAAA,EAqrFkB,MArrFlB;AAAA,EAsrFL,kBAtrFK;AAAA,EAsrFe,MAtrFf;AAAA,EAurFL,WAvrFK;AAAA,EAurFQ,MAvrFR;AAAA,EAwrFL,UAxrFK;AAAA,EAwrFO,MAxrFP;AAAA,EAyrFL,YAzrFK;AAAA,EAyrFS,MAzrFT;AAAA,EA0rFL,iBA1rFK;AAAA,EA0rFc,MA1rFd;AAAA,EA2rFL,kBA3rFK;AAAA,EA2rFe,MA3rFf;AAAA,EA4rFL,uBA5rFK;AAAA,EA4rFoB,MA5rFpB;AAAA,EA6rFL,mBA7rFK;AAAA,EA6rFgB,MA7rFhB;AAAA,EA8rFL,uBA9rFK;AAAA,EA8rFoB,MA9rFpB;AAAA,EA+rFL,wBA/rFK;AAAA,EA+rFqB,MA/rFrB;AAAA,EAgsFL,kBAhsFK;AAAA,EAgsFe,MAhsFf;AAAA,EAisFL,uBAjsFK;AAAA,EAisFoB,MAjsFpB;AAAA,EAksFL,wBAlsFK;AAAA,EAksFqB,MAlsFrB;AAAA,EAmsFL,qBAnsFK;AAAA,EAmsFkB,MAnsFlB;AAAA,EAosFL,aApsFK;AAAA,EAosFU,MApsFV;AAAA,EAqsFL,YArsFK;AAAA,EAqsFS,MArsFT;AAAA,EAssFL,cAtsFK;AAAA,EAssFW,MAtsFX;AAAA,EAusFL,UAvsFK;AAAA,EAusFO,MAvsFP;AAAA,EAwsFL,YAxsFK;AAAA,EAwsFS,MAxsFT;AAAA,EAysFL,oBAzsFK;AAAA,EAysFiB,MAzsFjB;AAAA,EA0sFL,mBA1sFK;AAAA,EA0sFgB,MA1sFhB;AAAA,EA2sFL,cA3sFK;AAAA,EA2sFW,MA3sFX;AAAA,EA4sFL,SA5sFK;AAAA,EA4sFM,MA5sFN;AAAA,EA6sFL,iBA7sFK;AAAA,EA6sFc,MA7sFd;AAAA,EA8sFL,aA9sFK;AAAA,EA8sFU,MA9sFV;AAAA,EA+sFL,aA/sFK;AAAA,EA+sFU,MA/sFV;AAAA,EAgtFL,WAhtFK;AAAA,EAgtFQ,MAhtFR;AAAA,EAitFL,aAjtFK;AAAA,EAitFU,MAjtFV;AAAA,EAktFL,aAltFK;AAAA,EAktFU,MAltFV;AAAA,EAmtFL,aAntFK;AAAA,EAmtFU,MAntFV;AAAA,EAotFL,QAptFK;AAAA,EAotFK,MAptFL;AAAA,EAqtFL,UArtFK;AAAA,EAqtFO,MArtFP;AAAA,EAstFL,WAttFK;AAAA,EAstFQ,MAttFR;AAAA,EAutFL,QAvtFK;AAAA,EAutFK,MAvtFL;AAAA,EAwtFL,IAxtFK;AAAA,EAwtFC,MAxtFD;AAAA,EAytFL,YAztFK;AAAA,EAytFS,MAztFT;AAAA,EA0tFL,YA1tFK;AAAA,EA0tFS,MA1tFT;AAAA,EA2tFL,qBA3tFK;AAAA,EA2tFkB,MA3tFlB;AAAA,EA4tFL,cA5tFK;AAAA,EA4tFW,MA5tFX;AAAA,EA6tFL,WA7tFK;AAAA,EA6tFQ,MA7tFR;AAAA,EA8tFL,eA9tFK;AAAA,EA8tFY,MA9tFZ;AAAA,EA+tFL,eA/tFK;AAAA,EA+tFY,MA/tFZ;AAAA,EAguFL,YAhuFK;AAAA,EAguFS,MAhuFT;AAAA,EAiuFL,qBAjuFK;AAAA,EAiuFkB,MAjuFlB;AAAA,EAkuFL,iBAluFK;AAAA,EAkuFc,MAluFd;AAAA,EAmuFL,kBAnuFK;AAAA,EAmuFe,MAnuFf;AAAA,EAouFL,uBApuFK;AAAA,EAouFoB,MApuFpB;AAAA,EAquFL,QAruFK;AAAA,EAquFK,MAruFL;AAAA,EAsuFL,KAtuFK;AAAA,EAsuFE,MAtuFF;AAAA,EAuuFL,WAvuFK;AAAA,EAuuFQ,MAvuFR;AAAA,EAwuFL,iBAxuFK;AAAA,EAwuFc,MAxuFd;AAAA,EAyuFL,WAzuFK;AAAA,EAyuFQ,MAzuFR;AAAA,EA0uFL,UA1uFK;AAAA,EA0uFO,MA1uFP;AAAA,EA2uFL,UA3uFK;AAAA,EA2uFO,MA3uFP;AAAA,EA4uFL,YA5uFK;AAAA,EA4uFS,MA5uFT;AAAA,EA6uFL,SA7uFK;AAAA,EA6uFM,MA7uFN;AAAA,EA8uFL,aA9uFK;AAAA,EA8uFU,MA9uFV;AAAA,EA+uFL,aA/uFK;AAAA,EA+uFU,MA/uFV;AAAA,EAgvFL,GAhvFK;AAAA,EAgvFA,MAhvFA;AAAA,EAivFL,QAjvFK;AAAA,EAivFK,MAjvFL;AAAA,EAkvFL,UAlvFK;AAAA,EAkvFO,MAlvFP;AAAA,EAmvFL,SAnvFK;AAAA,EAmvFM,MAnvFN;AAAA,EAovFL,iBApvFK;AAAA,EAovFc,MApvFd;AAAA,EAqvFL,yBArvFK;AAAA,EAqvFsB,MArvFtB;AAAA,EAsvFL,UAtvFK;AAAA,EAsvFO,MAtvFP;AAAA,EAuvFL,WAvvFK;AAAA,EAuvFQ,MAvvFR;AAAA,EAwvFL,QAxvFK;AAAA,EAwvFK,MAxvFL;AAAA,EAyvFL,aAzvFK;AAAA,EAyvFU,MAzvFV;AAAA,EA0vFL,iBA1vFK;AAAA,EA0vFc,MA1vFd;AAAA,EA2vFL,sBA3vFK;AAAA,EA2vFmB,MA3vFnB;AAAA,EA4vFL,0BA5vFK;AAAA,EA4vFuB,MA5vFvB;AAAA,EA6vFL,QA7vFK;AAAA,EA6vFK,MA7vFL;AAAA,EA8vFL,SA9vFK;AAAA,EA8vFM,MA9vFN;AAAA,EA+vFL,aA/vFK;AAAA,EA+vFU,MA/vFV;AAAA,EAgwFL,kBAhwFK;AAAA,EAgwFe,MAhwFf;AAAA,EAiwFL,qBAjwFK;AAAA,EAiwFkB,MAjwFlB;AAAA,EAkwFL,kBAlwFK;AAAA,EAkwFe,MAlwFf;AAAA,EAmwFL,sBAnwFK;AAAA,EAmwFmB,MAnwFnB;AAAA,EAowFL,kBApwFK;AAAA,EAowFe,MApwFf;AAAA,EAqwFL,WArwFK;AAAA,EAqwFQ,MArwFR;AAAA,EAswFL,WAtwFK;AAAA,EAswFQ,MAtwFR;AAAA,EAuwFL,WAvwFK;AAAA,EAuwFQ,MAvwFR;AAAA,EAwwFL,OAxwFK;AAAA,EAwwFI,MAxwFJ;AAAA,EAywFL,WAzwFK;AAAA,EAywFQ,MAzwFR;AAAA,EA0wFL,mBA1wFK;AAAA,EA0wFgB,MA1wFhB;AAAA,EA2wFL,WA3wFK;AAAA,EA2wFQ,MA3wFR;AAAA,EA4wFL,IA5wFK;AAAA,EA4wFC,MA5wFD;AAAA,EA6wFL,UA7wFK;AAAA,EA6wFO,MA7wFP;AAAA,EA8wFL,QA9wFK;AAAA,EA8wFK,MA9wFL;AAAA,EA+wFL,WA/wFK;AAAA,EA+wFQ,MA/wFR;AAAA,EAgxFL,QAhxFK;AAAA,EAgxFK,MAhxFL;AAAA,EAixFL,WAjxFK;AAAA,EAixFQ,MAjxFR;AAAA,EAkxFL,YAlxFK;AAAA,EAkxFS,MAlxFT;AAAA,EAmxFL,WAnxFK;AAAA,EAmxFQ,MAnxFR;AAAA,EAoxFL,YApxFK;AAAA,EAoxFS,MApxFT;AAAA,EAqxFL,OArxFK;AAAA,EAqxFI,MArxFJ;AAAA,EAsxFL,YAtxFK;AAAA,EAsxFS,MAtxFT;AAAA,EAuxFL,eAvxFK;AAAA,EAuxFY,MAvxFZ;AAAA,EAwxFL,YAxxFK;AAAA,EAwxFS,MAxxFT;AAAA,EAyxFL,gBAzxFK;AAAA,EAyxFa,MAzxFb;AAAA,EA0xFL,YA1xFK;AAAA,EA0xFS,MA1xFT;AAAA,EA2xFL,eA3xFK;AAAA,EA2xFY,MA3xFZ;AAAA,EA4xFL,IA5xFK;AAAA,EA4xFC,MA5xFD;AAAA,EA6xFL,gBA7xFK;AAAA,EA6xFa,MA7xFb;AAAA,EA8xFL,WA9xFK;AAAA,EA8xFQ,MA9xFR;AAAA,EA+xFL,oBA/xFK;AAAA,EA+xFiB,MA/xFjB;AAAA,EAgyFL,SAhyFK;AAAA,EAgyFM,MAhyFN;AAAA,EAiyFL,WAjyFK;AAAA,EAiyFQ,MAjyFR;AAAA,EAkyFL,SAlyFK;AAAA,EAkyFM,MAlyFN;AAAA,EAmyFL,cAnyFK;AAAA,EAmyFW,MAnyFX;AAAA,EAoyFL,cApyFK;AAAA,EAoyFW,MApyFX;AAAA,EAqyFL,QAryFK;AAAA,EAqyFK,MAryFL;AAAA,EAsyFL,OAtyFK;AAAA,EAsyFI,MAtyFJ;AAAA,EAuyFL,QAvyFK;AAAA,EAuyFK,MAvyFL;AAAA,EAwyFL,eAxyFK;AAAA,EAwyFY,MAxyFZ;AAAA,EAyyFL,kBAzyFK;AAAA,EAyyFe,MAzyFf;AAAA,EA0yFL,oBA1yFK;AAAA,EA0yFiB,MA1yFjB;AAAA,EA2yFL,oBA3yFK;AAAA,EA2yFiB,MA3yFjB;AAAA,EA4yFL,YA5yFK;AAAA,EA4yFS,MA5yFT;AAAA,EA6yFL,YA7yFK;AAAA,EA6yFS,MA7yFT;AAAA,EA8yFL,SA9yFK;AAAA,EA8yFM,MA9yFN;AAAA,EA+yFL,cA/yFK;AAAA,EA+yFW,MA/yFX;AAAA,EAgzFL,YAhzFK;AAAA,EAgzFS,MAhzFT;AAAA,EAizFL,KAjzFK;AAAA,EAizFE,MAjzFF;AAAA,EAkzFL,WAlzFK;AAAA,EAkzFQ,MAlzFR;AAAA,EAmzFL,YAnzFK;AAAA,EAmzFS,MAnzFT;AAAA,EAozFL,WApzFK;AAAA,EAozFQ,MApzFR;AAAA,EAqzFL,2BArzFK;AAAA,EAqzFwB,MArzFxB;AAAA,EAszFL,SAtzFK;AAAA,EAszFM,MAtzFN;AAAA,EAuzFL,gBAvzFK;AAAA,EAuzFa,MAvzFb;AAAA,EAwzFL,WAxzFK;AAAA,EAwzFQ,MAxzFR;AAAA,EAyzFL,WAzzFK;AAAA,EAyzFQ,MAzzFR;AAAA,EA0zFL,aA1zFK;AAAA,EA0zFU,MA1zFV;AAAA,EA2zFL,aA3zFK;AAAA,EA2zFU,MA3zFV;AAAA,EA4zFL,eA5zFK;AAAA,EA4zFY,MA5zFZ;AAAA,EA6zFL,SA7zFK;AAAA,EA6zFM,MA7zFN;AAAA,EA8zFL,aA9zFK;AAAA,EA8zFU,MA9zFV;AAAA,EA+zFL,qBA/zFK;AAAA,EA+zFkB,MA/zFlB;AAAA,EAg0FL,aAh0FK;AAAA,EAg0FU,MAh0FV;AAAA,EAi0FL,cAj0FK;AAAA,EAi0FW,MAj0FX;AAAA,EAk0FL,qBAl0FK;AAAA,EAk0FkB,MAl0FlB;AAAA,EAm0FL,aAn0FK;AAAA,EAm0FU,MAn0FV;AAAA,EAo0FL,UAp0FK;AAAA,EAo0FO,MAp0FP;AAAA,EAq0FL,WAr0FK;AAAA,EAq0FQ,MAr0FR;AAAA,EAs0FL,YAt0FK;AAAA,EAs0FS,MAt0FT;AAAA,EAu0FL,YAv0FK;AAAA,EAu0FS,MAv0FT;AAAA,EAw0FL,UAx0FK;AAAA,EAw0FO,MAx0FP;AAAA,EAy0FL,aAz0FK;AAAA,EAy0FU,MAz0FV;AAAA,EA00FL,SA10FK;AAAA,EA00FM,MA10FN;AAAA,EA20FL,UA30FK;AAAA,EA20FO,MA30FP;AAAA,EA40FL,SA50FK;AAAA,EA40FM,MA50FN;AAAA,EA60FL,eA70FK;AAAA,EA60FY,MA70FZ;AAAA,EA80FL,YA90FK;AAAA,EA80FS,MA90FT;AAAA,EA+0FL,iBA/0FK;AAAA,EA+0Fc,MA/0Fd;AAAA,EAg1FL,OAh1FK;AAAA,EAg1FI,MAh1FJ;AAAA,EAi1FL,QAj1FK;AAAA,EAi1FK,MAj1FL;AAAA,EAk1FL,YAl1FK;AAAA,EAk1FS,MAl1FT;AAAA,EAm1FL,QAn1FK;AAAA,EAm1FK,MAn1FL;AAAA,EAo1FL,aAp1FK;AAAA,EAo1FU,MAp1FV;AAAA,EAq1FL,cAr1FK;AAAA,EAq1FW,MAr1FX;AAAA,EAs1FL,YAt1FK;AAAA,EAs1FS,MAt1FT;AAAA,EAu1FL,YAv1FK;AAAA,EAu1FS,MAv1FT;AAAA,EAw1FL,qBAx1FK;AAAA,EAw1FkB,MAx1FlB;AAAA,EAy1FL,QAz1FK;AAAA,EAy1FK,MAz1FL;AAAA,EA01FL,aA11FK;AAAA,EA01FU,MA11FV;AAAA,EA21FL,gBA31FK;AAAA,EA21Fa,MA31Fb;AAAA,EA41FL,gBA51FK;AAAA,EA41Fa,MA51Fb;AAAA,EA61FL,yBA71FK;AAAA,EA61FsB,MA71FtB;AAAA,EA81FL,cA91FK;AAAA,EA81FW,MA91FX;AAAA,EA+1FL,WA/1FK;AAAA,EA+1FQ,MA/1FR;AAAA,EAg2FL,YAh2FK;AAAA,EAg2FS,MAh2FT;AAAA,EAi2FL,QAj2FK;AAAA,EAi2FK,MAj2FL;AAAA,EAk2FL,aAl2FK;AAAA,EAk2FU,MAl2FV;AAAA,EAm2FL,gBAn2FK;AAAA,EAm2Fa,MAn2Fb;AAAA,EAo2FL,YAp2FK;AAAA,EAo2FS,MAp2FT;AAAA,EAq2FL,UAr2FK;AAAA,EAq2FO,MAr2FP;AAAA,EAs2FL,oBAt2FK;AAAA,EAs2FiB,MAt2FjB;AAAA,EAu2FL,aAv2FK;AAAA,EAu2FU,MAv2FV;AAAA,EAw2FL,gBAx2FK;AAAA,EAw2Fa,MAx2Fb;AAAA,EAy2FL,iBAz2FK;AAAA,EAy2Fc,MAz2Fd;AAAA,EA02FL,cA12FK;AAAA,EA02FW,MA12FX;AAAA,EA22FL,WA32FK;AAAA,EA22FQ,MA32FR;AAAA,EA42FL,mBA52FK;AAAA,EA42FgB,MA52FhB;AAAA,EA62FL,gBA72FK;AAAA,EA62Fa,MA72Fb;AAAA,EA82FL,oBA92FK;AAAA,EA82FiB,MA92FjB;AAAA,EA+2FL,GA/2FK;AAAA,EA+2FA,MA/2FA;AAAA,EAg3FL,cAh3FK;AAAA,EAg3FW,MAh3FX;AAAA,EAi3FL,gBAj3FK;AAAA,EAi3Fa,MAj3Fb;AAAA,EAk3FL,WAl3FK;AAAA,EAk3FQ,MAl3FR;AAAA,EAm3FL,QAn3FK;AAAA,EAm3FK,MAn3FL;AAAA,EAo3FL,QAp3FK;AAAA,EAo3FK,MAp3FL;AAAA,EAq3FL,UAr3FK;AAAA,EAq3FO,MAr3FP;AAAA,EAs3FL,QAt3FK;AAAA,EAs3FK,MAt3FL;AAAA,EAu3FL,YAv3FK;AAAA,EAu3FS,MAv3FT;AAAA,EAw3FL,YAx3FK;AAAA,EAw3FS,MAx3FT;AAAA,EAy3FL,YAz3FK;AAAA,EAy3FS,MAz3FT;AAAA,EA03FL,eA13FK;AAAA,EA03FY,MA13FZ;AAAA,EA23FL,YA33FK;AAAA,EA23FS,MA33FT;AAAA,EA43FL,2BA53FK;AAAA,EA43FwB,MA53FxB;AAAA,EA63FL,kBA73FK;AAAA,EA63Fe,MA73Ff;AAAA,EA83FL,eA93FK;AAAA,EA83FY,MA93FZ;AAAA,EA+3FL,WA/3FK;AAAA,EA+3FQ,MA/3FR;AAAA,EAg4FL,UAh4FK;AAAA,EAg4FO,MAh4FP;AAAA,EAi4FL,WAj4FK;AAAA,EAi4FQ,MAj4FR;AAAA,EAk4FL,uBAl4FK;AAAA,EAk4FoB,MAl4FpB;AAAA,EAm4FL,aAn4FK;AAAA,EAm4FU,MAn4FV;AAAA,EAo4FL,aAp4FK;AAAA,EAo4FU,MAp4FV;AAAA,EAq4FL,mBAr4FK;AAAA,EAq4FgB,MAr4FhB;AAAA,EAs4FL,oBAt4FK;AAAA,EAs4FiB,MAt4FjB;AAAA,EAu4FL,gBAv4FK;AAAA,EAu4Fa,MAv4Fb;AAAA,EAw4FL,mBAx4FK;AAAA,EAw4FgB,MAx4FhB;AAAA,EAy4FL,aAz4FK;AAAA,EAy4FU,MAz4FV;AAAA,EA04FL,mBA14FK;AAAA,EA04FgB,MA14FhB;AAAA,EA24FL,YA34FK;AAAA,EA24FS,MA34FT;AAAA,EA44FL,wBA54FK;AAAA,EA44FqB,MA54FrB;AAAA,EA64FL,cA74FK;AAAA,EA64FW,MA74FX;AAAA,EA84FL,cA94FK;AAAA,EA84FW,MA94FX;AAAA,EA+4FL,oBA/4FK;AAAA,EA+4FiB,MA/4FjB;AAAA,EAg5FL,qBAh5FK;AAAA,EAg5FkB,MAh5FlB;AAAA,EAi5FL,iBAj5FK;AAAA,EAi5Fc,MAj5Fd;AAAA,EAk5FL,oBAl5FK;AAAA,EAk5FiB,MAl5FjB;AAAA,EAm5FL,cAn5FK;AAAA,EAm5FW,MAn5FX;AAAA,EAo5FL,oBAp5FK;AAAA,EAo5FiB,MAp5FjB;AAAA,EAq5FL,aAr5FK;AAAA,EAq5FU,MAr5FV;AAAA,EAs5FL,aAt5FK;AAAA,EAs5FU,MAt5FV;AAAA,EAu5FL,cAv5FK;AAAA,EAu5FW,MAv5FX;AAAA,EAw5FL,UAx5FK;AAAA,EAw5FO,MAx5FP;AAAA,EAy5FL,OAz5FK;AAAA,EAy5FI,MAz5FJ;AAAA,EA05FL,SA15FK;AAAA,EA05FM,MA15FN;AAAA,EA25FL,SA35FK;AAAA,EA25FM,MA35FN;AAAA,EA45FL,SA55FK;AAAA,EA45FM,MA55FN;AAAA,EA65FL,aA75FK;AAAA,EA65FU,MA75FV;AAAA,EA85FL,mBA95FK;AAAA,EA85FgB,MA95FhB;AAAA,EA+5FL,oBA/5FK;AAAA,EA+5FiB,MA/5FjB;AAAA,EAg6FL,iBAh6FK;AAAA,EAg6Fc,MAh6Fd;AAAA,EAi6FL,aAj6FK;AAAA,EAi6FU,MAj6FV;AAAA,EAk6FL,WAl6FK;AAAA,EAk6FQ,MAl6FR;AAAA,EAm6FL,SAn6FK;AAAA,EAm6FM,MAn6FN;AAAA,EAo6FL,YAp6FK;AAAA,EAo6FS,MAp6FT;AAAA,EAq6FL,IAr6FK;AAAA,EAq6FC,MAr6FD;AAAA,EAs6FL,YAt6FK;AAAA,EAs6FS,MAt6FT;AAAA,EAu6FL,UAv6FK;AAAA,EAu6FO,MAv6FP;AAAA,EAw6FL,gBAx6FK;AAAA,EAw6Fa,MAx6Fb;AAAA,EAy6FL,aAz6FK;AAAA,EAy6FU,MAz6FV;AAAA,EA06FL,qBA16FK;AAAA,EA06FkB,MA16FlB;AAAA,EA26FL,WA36FK;AAAA,EA26FQ,MA36FR;AAAA,EA46FL,aA56FK;AAAA,EA46FU,MA56FV;AAAA,EA66FL,UA76FK;AAAA,EA66FO,MA76FP;AAAA,EA86FL,gBA96FK;AAAA,EA86Fa,MA96Fb;AAAA,EA+6FL,kBA/6FK;AAAA,EA+6Fe,MA/6Ff;AAAA,EAg7FL,YAh7FK;AAAA,EAg7FS,MAh7FT;AAAA,EAi7FL,iBAj7FK;AAAA,EAi7Fc,MAj7Fd;AAAA,EAk7FL,YAl7FK;AAAA,EAk7FS,MAl7FT;AAAA,EAm7FL,sBAn7FK;AAAA,EAm7FmB,MAn7FnB;AAAA,EAo7FL,cAp7FK;AAAA,EAo7FW,MAp7FX;AAAA,EAq7FL,SAr7FK;AAAA,EAq7FM,MAr7FN;AAAA,EAs7FL,eAt7FK;AAAA,EAs7FY,MAt7FZ;AAAA,EAu7FL,kBAv7FK;AAAA,EAu7Fe,MAv7Ff;AAAA,EAw7FL,cAx7FK;AAAA,EAw7FW,MAx7FX;AAAA,EAy7FL,QAz7FK;AAAA,EAy7FK,MAz7FL;AAAA,EA07FL,gBA17FK;AAAA,EA07Fa,MA17Fb;AAAA,EA27FL,gBA37FK;AAAA,EA27Fa,MA37Fb;AAAA,EA47FL,iBA57FK;AAAA,EA47Fc,MA57Fd;AAAA,EA67FL,gBA77FK;AAAA,EA67Fa,MA77Fb;AAAA,EA87FL,iBA97FK;AAAA,EA87Fc,MA97Fd;AAAA,EA+7FL,aA/7FK;AAAA,EA+7FU,MA/7FV;AAAA,EAg8FL,gBAh8FK;AAAA,EAg8Fa,MAh8Fb;AAAA,EAi8FL,qBAj8FK;AAAA,EAi8FkB,MAj8FlB;AAAA,EAk8FL,eAl8FK;AAAA,EAk8FY,MAl8FZ;AAAA,EAm8FL,aAn8FK;AAAA,EAm8FU,MAn8FV;AAAA,EAo8FL,QAp8FK;AAAA,EAo8FK,MAp8FL;AAAA,EAq8FL,UAr8FK;AAAA,EAq8FO,MAr8FP;AAAA,EAs8FL,YAt8FK;AAAA,EAs8FS,MAt8FT;AAAA,EAu8FL,SAv8FK;AAAA,EAu8FM,MAv8FN;AAAA,EAw8FL,aAx8FK;AAAA,EAw8FU,MAx8FV;AAAA,EAy8FL,aAz8FK;AAAA,EAy8FU,MAz8FV;AAAA,EA08FL,KA18FK;AAAA,EA08FE,MA18FF;AAAA,EA28FL,MA38FK;AAAA,EA28FG,MA38FH;AAAA,EA48FL,sBA58FK;AAAA,EA48FmB,MA58FnB;AAAA,EA68FL,qBA78FK;AAAA,EA68FkB,MA78FlB;AAAA,EA88FL,qBA98FK;AAAA,EA88FkB,MA98FlB;AAAA,EA+8FL,eA/8FK;AAAA,EA+8FY,MA/8FZ;AAAA,EAg9FL,oBAh9FK;AAAA,EAg9FiB,MAh9FjB;AAAA,EAi9FL,UAj9FK;AAAA,EAi9FO,MAj9FP;AAAA,EAk9FL,aAl9FK;AAAA,EAk9FU,MAl9FV;AAAA,EAm9FL,gBAn9FK;AAAA,EAm9Fa,MAn9Fb;AAAA,EAo9FL,OAp9FK;AAAA,EAo9FI,MAp9FJ;AAAA,EAq9FL,aAr9FK;AAAA,EAq9FU,MAr9FV;AAAA,EAs9FL,cAt9FK;AAAA,EAs9FW,MAt9FX;AAAA,EAu9FL,gBAv9FK;AAAA,EAu9Fa,MAv9Fb;AAAA,EAw9FL,IAx9FK;AAAA,EAw9FC,MAx9FD;AAAA,EAy9FL,oBAz9FK;AAAA,EAy9FiB,MAz9FjB;AAAA,EA09FL,mBA19FK;AAAA,EA09FgB,MA19FhB;AAAA,EA29FL,kBA39FK;AAAA,EA29Fe,MA39Ff;AAAA,EA49FL,mBA59FK;AAAA,EA49FgB,MA59FhB;AAAA,EA69FL,mBA79FK;AAAA,EA69FgB,MA79FhB;AAAA,EA89FL,aA99FK;AAAA,EA89FU,MA99FV;AAAA,EA+9FL,kBA/9FK;AAAA,EA+9Fe,MA/9Ff;AAAA,EAg+FL,uBAh+FK;AAAA,EAg+FoB,MAh+FpB;AAAA,EAi+FL,iBAj+FK;AAAA,EAi+Fc,MAj+Fd;AAAA,EAk+FL,uBAl+FK;AAAA,EAk+FoB,MAl+FpB;AAAA,EAm+FL,oBAn+FK;AAAA,EAm+FiB,MAn+FjB;AAAA,EAo+FL,mBAp+FK;AAAA,EAo+FgB,MAp+FhB;AAAA,EAq+FL,YAr+FK;AAAA,EAq+FS,MAr+FT;AAAA,EAs+FL,YAt+FK;AAAA,EAs+FS,MAt+FT;AAAA,EAu+FL,eAv+FK;AAAA,EAu+FY,MAv+FZ;AAAA,EAw+FL,cAx+FK;AAAA,EAw+FW,MAx+FX;AAAA,EAy+FL,MAz+FK;AAAA,EAy+FG,MAz+FH;AAAA,EA0+FL,cA1+FK;AAAA,EA0+FW,MA1+FX;AAAA,EA2+FL,YA3+FK;AAAA,EA2+FS,MA3+FT;AAAA,EA4+FL,WA5+FK;AAAA,EA4+FQ,MA5+FR;AAAA,EA6+FL,SA7+FK;AAAA,EA6+FM,MA7+FN;AAAA,EA8+FL,eA9+FK;AAAA,EA8+FY,MA9+FZ;AAAA,EA++FL,WA/+FK;AAAA,EA++FQ,MA/+FR;AAAA,EAg/FL,cAh/FK;AAAA,EAg/FW,MAh/FX;AAAA,EAi/FL,YAj/FK;AAAA,EAi/FS,MAj/FT;AAAA,EAk/FL,UAl/FK;AAAA,EAk/FO,MAl/FP;AAAA,EAm/FL,YAn/FK;AAAA,EAm/FS,MAn/FT;AAAA,EAo/FL,wBAp/FK;AAAA,EAo/FqB,MAp/FrB;AAAA,EAq/FL,wBAr/FK;AAAA,EAq/FqB,MAr/FrB;AAAA,EAs/FL,yBAt/FK;AAAA,EAs/FsB,MAt/FtB;AAAA,EAu/FL,sBAv/FK;AAAA,EAu/FmB,MAv/FnB;AAAA,EAw/FL,YAx/FK;AAAA,EAw/FS,MAx/FT;AAAA,EAy/FL,WAz/FK;AAAA,EAy/FQ,MAz/FR;AAAA,EA0/FL,YA1/FK;AAAA,EA0/FS,MA1/FT;AAAA,EA2/FL,gBA3/FK;AAAA,EA2/Fa,MA3/Fb;AAAA,EA4/FL,QA5/FK;AAAA,EA4/FK,MA5/FL;AAAA,EA6/FL,UA7/FK;AAAA,EA6/FO,MA7/FP;AAAA,EA8/FL,cA9/FK;AAAA,EA8/FW,MA9/FX;AAAA,EA+/FL,UA//FK;AAAA,EA+/FO,MA//FP;AAAA,EAggGL,eAhgGK;AAAA,EAggGY,MAhgGZ;AAAA,EAigGL,SAjgGK;AAAA,EAigGM,MAjgGN;AAAA,EAkgGL,YAlgGK;AAAA,EAkgGS,MAlgGT;AAAA,EAmgGL,eAngGK;AAAA,EAmgGY,MAngGZ;AAAA,EAogGL,WApgGK;AAAA,EAogGQ,MApgGR;AAAA,EAqgGL,cArgGK;AAAA,EAqgGW,MArgGX;AAAA,EAsgGL,gBAtgGK;AAAA,EAsgGa,MAtgGb;AAAA,EAugGL,YAvgGK;AAAA,EAugGS,MAvgGT;AAAA,EAwgGL,cAxgGK;AAAA,EAwgGW,MAxgGX;AAAA,EAygGL,KAzgGK;AAAA,EAygGE,MAzgGF;AAAA,EA0gGL,aA1gGK;AAAA,EA0gGU,MA1gGV;AAAA,EA2gGL,0BA3gGK;AAAA,EA2gGuB,MA3gGvB;AAAA,EA4gGL,UA5gGK;AAAA,EA4gGO,MA5gGP;AAAA,EA6gGL,YA7gGK;AAAA,EA6gGS,MA7gGT;AAAA,EA8gGL,YA9gGK;AAAA,EA8gGS,MA9gGT;AAAA,EA+gGL,UA/gGK;AAAA,EA+gGO,MA/gGP;AAAA,EAghGL,UAhhGK;AAAA,EAghGO,MAhhGP;AAAA,EAihGL,GAjhGK;AAAA,EAihGA,MAjhGA;AAAA,EAkhGL,QAlhGK;AAAA,EAkhGK,MAlhGL;AAAA,EAmhGL,aAnhGK;AAAA,EAmhGU,MAnhGV;AAAA,EAohGL,WAphGK;AAAA,EAohGQ,MAphGR;AAAA,EAqhGL,gBArhGK;AAAA,EAqhGa,MArhGb;AAAA,EAshGL,kBAthGK;AAAA,EAshGe,MAthGf;AAAA,EAuhGL,iBAvhGK;AAAA,EAuhGc,MAvhGd;AAAA,EAwhGL,QAxhGK;AAAA,EAwhGK,MAxhGL;AAAA,EAyhGL,UAzhGK;AAAA,EAyhGO,MAzhGP;AAAA,EA0hGL,UA1hGK;AAAA,EA0hGO,MA1hGP;AAAA,EA2hGL,UA3hGK;AAAA,EA2hGO,MA3hGP;AAAA,EA4hGL,UA5hGK;AAAA,EA4hGO,MA5hGP;AAAA,EA6hGL,UA7hGK;AAAA,EA6hGO,MA7hGP;AAAA,EA8hGL,UA9hGK;AAAA,EA8hGO,MA9hGP;AAAA,EA+hGL,UA/hGK;AAAA,EA+hGO,MA/hGP;AAAA,EAgiGL,cAhiGK;AAAA,EAgiGW,MAhiGX;AAAA,EAiiGL,oBAjiGK;AAAA,EAiiGiB,MAjiGjB;AAAA,EAkiGL,mBAliGK;AAAA,EAkiGgB,MAliGhB;AAAA,EAmiGL,yBAniGK;AAAA,EAmiGsB,MAniGtB;AAAA,EAoiGL,0BApiGK;AAAA,EAoiGuB,MApiGvB;AAAA,EAqiGL,uBAriGK;AAAA,EAqiGoB,MAriGpB;AAAA,EAsiGL,qBAtiGK;AAAA,EAsiGkB,MAtiGlB;AAAA,EAuiGL,kBAviGK;AAAA,EAuiGe,MAviGf;AAAA,EAwiGL,kBAxiGK;AAAA,EAwiGe,MAxiGf;AAAA,EAyiGL,WAziGK;AAAA,EAyiGQ,MAziGR;AAAA,EA0iGL,SA1iGK;AAAA,EA0iGM,MA1iGN;AAAA,EA2iGL,OA3iGK;AAAA,EA2iGI,MA3iGJ;AAAA,EA4iGL,YA5iGK;AAAA,EA4iGS,MA5iGT;AAAA,EA6iGL,KA7iGK;AAAA,EA6iGE,MA7iGF;AAAA,EA8iGL,WA9iGK;AAAA,EA8iGQ,MA9iGR;AAAA,EA+iGL,iBA/iGK;AAAA,EA+iGc,MA/iGd;AAAA,EAgjGL,WAhjGK;AAAA,EAgjGQ,MAhjGR;AAAA,EAijGL,QAjjGK;AAAA,EAijGK,MAjjGL;AAAA,EAkjGL,aAljGK;AAAA,EAkjGU,MAljGV;AAAA,EAmjGL,QAnjGK;AAAA,EAmjGK,MAnjGL;AAAA,EAojGL,UApjGK;AAAA,EAojGO,MApjGP;AAAA,EAqjGL,UArjGK;AAAA,EAqjGO,MArjGP;AAAA,EAsjGL,UAtjGK;AAAA,EAsjGO,MAtjGP;AAAA,EAujGL,cAvjGK;AAAA,EAujGW,MAvjGX;AAAA,EAwjGL,oBAxjGK;AAAA,EAwjGiB,MAxjGjB;AAAA,EAyjGL,qBAzjGK;AAAA,EAyjGkB,MAzjGlB;AAAA,EA0jGL,kBA1jGK;AAAA,EA0jGe,MA1jGf;AAAA,EA2jGL,UA3jGK;AAAA,EA2jGO,MA3jGP;AAAA,EA4jGL,gBA5jGK;AAAA,EA4jGa,MA5jGb;AAAA,EA6jGL,kBA7jGK;AAAA,EA6jGe,MA7jGf;AAAA,EA8jGL,cA9jGK;AAAA,EA8jGW,MA9jGX;AAAA,EA+jGL,mBA/jGK;AAAA,EA+jGgB,MA/jGhB;AAAA,EAgkGL,eAhkGK;AAAA,EAgkGY,MAhkGZ;AAAA,EAikGL,mBAjkGK;AAAA,EAikGgB,MAjkGhB;AAAA,EAkkGL,eAlkGK;AAAA,EAkkGY,MAlkGZ;AAAA,EAmkGL,UAnkGK;AAAA,EAmkGO,MAnkGP;AAAA,EAokGL,cApkGK;AAAA,EAokGW,MApkGX;AAAA,EAqkGL,cArkGK;AAAA,EAqkGW,MArkGX;AAAA,EAskGL,mBAtkGK;AAAA,EAskGgB,MAtkGhB;AAAA,EAukGL,eAvkGK;AAAA,EAukGY,MAvkGZ;AAAA,EAwkGL,uBAxkGK;AAAA,EAwkGoB,MAxkGpB;AAAA,EAykGL,eAzkGK;AAAA,EAykGY,MAzkGZ;AAAA,EA0kGL,WA1kGK;AAAA,EA0kGQ,MA1kGR;AAAA,EA2kGL,mBA3kGK;AAAA,EA2kGgB,MA3kGhB;AAAA,EA4kGL,eA5kGK;AAAA,EA4kGY,MA5kGZ;AAAA,EA6kGL,YA7kGK;AAAA,EA6kGS,MA7kGT;AAAA,EA8kGL,aA9kGK;AAAA,EA8kGU,MA9kGV;AAAA,EA+kGL,gBA/kGK;AAAA,EA+kGa,MA/kGb;AAAA,EAglGL,aAhlGK;AAAA,EAglGU,MAhlGV;AAAA,EAilGL,sBAjlGK;AAAA,EAilGmB,MAjlGnB;AAAA,EAklGL,GAllGK;AAAA,EAklGA,MAllGA;AAAA,EAmlGL,YAnlGK;AAAA,EAmlGS,MAnlGT;AAAA,EAolGL,WAplGK;AAAA,EAolGQ,MAplGR;AAAA,EAqlGL,QArlGK;AAAA,EAqlGK,MArlGL;AAAA,EAslGL,QAtlGK;AAAA,EAslGK,MAtlGL;AAAA,EAulGL,SAvlGK;AAAA,EAulGM,MAvlGN;AAAA,EAwlGL,WAxlGK;AAAA,EAwlGQ,MAxlGR;AAAA,EAylGL,gBAzlGK;AAAA,EAylGa,MAzlGb;AAAA,EA0lGL,uBA1lGK;AAAA,EA0lGoB,MA1lGpB;AAAA,EA2lGL,WA3lGK;AAAA,EA2lGQ,MA3lGR;AAAA,EA4lGL,MA5lGK;AAAA,EA4lGG,MA5lGH;AAAA,EA6lGL,YA7lGK;AAAA,EA6lGS,MA7lGT;AAAA,EA8lGL,YA9lGK;AAAA,EA8lGS,MA9lGT;AAAA,EA+lGL,YA/lGK;AAAA,EA+lGS,MA/lGT;AAAA,EAgmGL,YAhmGK;AAAA,EAgmGS,MAhmGT;AAAA,EAimGL,YAjmGK;AAAA,EAimGS,MAjmGT;AAAA,EAkmGL,qBAlmGK;AAAA,EAkmGkB,MAlmGlB;AAAA,EAmmGL,wBAnmGK;AAAA,EAmmGqB,MAnmGrB;AAAA,EAomGL,yBApmGK;AAAA,EAomGsB,MApmGtB;AAAA,EAqmGL,UArmGK;AAAA,EAqmGO,MArmGP;AAAA,EAsmGL,OAtmGK;AAAA,EAsmGI,MAtmGJ;AAAA,EAumGL,WAvmGK;AAAA,EAumGQ,MAvmGR;AAAA,EAwmGL,QAxmGK;AAAA,EAwmGK,MAxmGL;AAAA,EAymGL,UAzmGK;AAAA,EAymGO,MAzmGP;AAAA,EA0mGL,SA1mGK;AAAA,EA0mGM,MA1mGN;AAAA,EA2mGL,cA3mGK;AAAA,EA2mGW,MA3mGX;AAAA,EA4mGL,WA5mGK;AAAA,EA4mGQ,MA5mGR;AAAA,EA6mGL,YA7mGK;AAAA,EA6mGS,MA7mGT;AAAA,EA8mGL,WA9mGK;AAAA,EA8mGQ,MA9mGR;AAAA,EA+mGL,iBA/mGK;AAAA,EA+mGc,MA/mGd;AAAA,EAgnGL,eAhnGK;AAAA,EAgnGY,MAhnGZ;AAAA,EAinGL,cAjnGK;AAAA,EAinGW,MAjnGX;AAAA,EAknGL,gBAlnGK;AAAA,EAknGa,MAlnGb;AAAA,EAmnGL,YAnnGK;AAAA,EAmnGS,MAnnGT;AAAA,EAonGL,cApnGK;AAAA,EAonGW,MApnGX;AAAA,EAqnGL,eArnGK;AAAA,EAqnGY,MArnGZ;AAAA,EAsnGL,WAtnGK;AAAA,EAsnGQ,MAtnGR;AAAA,EAunGL,aAvnGK;AAAA,EAunGU,MAvnGV;AAAA,EAwnGL,gBAxnGK;AAAA,EAwnGa,MAxnGb;AAAA,EAynGL,YAznGK;AAAA,EAynGS,MAznGT;AAAA,EA0nGL,YA1nGK;AAAA,EA0nGS,MA1nGT;AAAA,EA2nGL,qBA3nGK;AAAA,EA2nGkB,MA3nGlB;AAAA,EA4nGL,MA5nGK;AAAA,EA4nGG,MA5nGH;AAAA,EA6nGL,kBA7nGK;AAAA,EA6nGe,MA7nGf;AAAA,EA8nGL,YA9nGK;AAAA,EA8nGS,MA9nGT;AAAA,EA+nGL,eA/nGK;AAAA,EA+nGY,MA/nGZ;AAAA,EAgoGL,aAhoGK;AAAA,EAgoGU,MAhoGV;AAAA,EAioGL,oBAjoGK;AAAA,EAioGiB,MAjoGjB;AAAA,EAkoGL,eAloGK;AAAA,EAkoGY,MAloGZ;AAAA,EAmoGL,WAnoGK;AAAA,EAmoGQ,MAnoGR;AAAA,EAooGL,mBApoGK;AAAA,EAooGgB,MApoGhB;AAAA,EAqoGL,YAroGK;AAAA,EAqoGS,MAroGT;AAAA,EAsoGL,SAtoGK;AAAA,EAsoGM,MAtoGN;AAAA,EAuoGL,KAvoGK;AAAA,EAuoGE,MAvoGF;AAAA,EAwoGL,OAxoGK;AAAA,EAwoGI,MAxoGJ;AAAA,EAyoGL,aAzoGK;AAAA,EAyoGU,MAzoGV;AAAA,EA0oGL,qBA1oGK;AAAA,EA0oGkB,MA1oGlB;AAAA,EA2oGL,gBA3oGK;AAAA,EA2oGa,MA3oGb;AAAA,EA4oGL,eA5oGK;AAAA,EA4oGY,MA5oGZ;AAAA,EA6oGL,oBA7oGK;AAAA,EA6oGiB,MA7oGjB;AAAA,EA8oGL,mBA9oGK;AAAA,EA8oGgB,MA9oGhB;AAAA,EA+oGL,mBA/oGK;AAAA,EA+oGgB,MA/oGhB;AAAA,EAgpGL,kBAhpGK;AAAA,EAgpGe,MAhpGf;AAAA,EAipGL,mBAjpGK;AAAA,EAipGgB,MAjpGhB;AAAA,EAkpGL,uBAlpGK;AAAA,EAkpGoB,MAlpGpB;AAAA,EAmpGL,aAnpGK;AAAA,EAmpGU,MAnpGV;AAAA,EAopGL,kBAppGK;AAAA,EAopGe,MAppGf;AAAA,EAqpGL,oBArpGK;AAAA,EAqpGiB,MArpGjB;AAAA,EAspGL,kBAtpGK;AAAA,EAspGe,MAtpGf;AAAA,EAupGL,oBAvpGK;AAAA,EAupGiB,MAvpGjB;AAAA,EAwpGL,kBAxpGK;AAAA,EAwpGe,MAxpGf;AAAA,EAypGL,sBAzpGK;AAAA,EAypGmB,MAzpGnB;AAAA,EA0pGL,iBA1pGK;AAAA,EA0pGc,MA1pGd;AAAA,EA2pGL,oBA3pGK;AAAA,EA2pGiB,MA3pGjB;AAAA,EA4pGL,mBA5pGK;AAAA,EA4pGgB,MA5pGhB;AAAA,EA6pGL,wBA7pGK;AAAA,EA6pGqB,MA7pGrB;AAAA,EA8pGL,YA9pGK;AAAA,EA8pGS,MA9pGT;AAAA,EA+pGL,mBA/pGK;AAAA,EA+pGgB,MA/pGhB;AAAA,EAgqGL,eAhqGK;AAAA,EAgqGY,MAhqGZ;AAAA,EAiqGL,YAjqGK;AAAA,EAiqGS,MAjqGT;AAAA,EAkqGL,YAlqGK;AAAA,EAkqGS,MAlqGT;AAAA,EAmqGL,qBAnqGK;AAAA,EAmqGkB,MAnqGlB;AAAA,EAoqGL,MApqGK;AAAA,EAoqGG,MApqGH;AAAA,EAqqGL,cArqGK;AAAA,EAqqGW,MArqGX;AAAA,EAsqGL,SAtqGK;AAAA,EAsqGM,MAtqGN;AAAA,EAuqGL,cAvqGK;AAAA,EAuqGW,MAvqGX;AAAA,EAwqGL,sBAxqGK;AAAA,EAwqGmB,MAxqGnB;AAAA,EAyqGL,sBAzqGK;AAAA,EAyqGmB,MAzqGnB;AAAA,EA0qGL,sBA1qGK;AAAA,EA0qGmB,MA1qGnB;AAAA,EA2qGL,eA3qGK;AAAA,EA2qGY,MA3qGZ;AAAA,EA4qGL,uBA5qGK;AAAA,EA4qGoB,MA5qGpB;AAAA,EA6qGL,uBA7qGK;AAAA,EA6qGoB,MA7qGpB;AAAA,EA8qGL,gBA9qGK;AAAA,EA8qGa,MA9qGb;AAAA,EA+qGL,eA/qGK;AAAA,EA+qGY,MA/qGZ;AAAA,EAgrGL,YAhrGK;AAAA,EAgrGS,MAhrGT;AAAA,EAirGL,UAjrGK;AAAA,EAirGO,MAjrGP;AAAA,EAkrGL,gBAlrGK;AAAA,EAkrGa,MAlrGb;AAAA,EAmrGL,YAnrGK;AAAA,EAmrGS,MAnrGT;AAAA,EAorGL,YAprGK;AAAA,EAorGS,MAprGT;AAAA,EAqrGL,YArrGK;AAAA,EAqrGS,MArrGT;AAAA,EAsrGL,qBAtrGK;AAAA,EAsrGkB,MAtrGlB;AAAA,EAurGL,WAvrGK;AAAA,EAurGQ,MAvrGR;AAAA,EAwrGL,QAxrGK;AAAA,EAwrGK,MAxrGL;AAAA,EAyrGL,YAzrGK;AAAA,EAyrGS,MAzrGT;AAAA,EA0rGL,SA1rGK;AAAA,EA0rGM,MA1rGN;AAAA,EA2rGL,aA3rGK;AAAA,EA2rGU,MA3rGV;AAAA,EA4rGL,YA5rGK;AAAA,EA4rGS,MA5rGT;AAAA,EA6rGL,iBA7rGK;AAAA,EA6rGc,MA7rGd;AAAA,EA8rGL,kBA9rGK;AAAA,EA8rGe,MA9rGf;AAAA,EA+rGL,eA/rGK;AAAA,EA+rGY,MA/rGZ;AAAA,EAgsGL,mBAhsGK;AAAA,EAgsGgB,MAhsGhB;AAAA,EAisGL,2BAjsGK;AAAA,EAisGwB,MAjsGxB;AAAA,EAksGL,wBAlsGK;AAAA,EAksGqB,MAlsGrB;AAAA,EAmsGL,4BAnsGK;AAAA,EAmsGyB,MAnsGzB;AAAA,EAosGL,WApsGK;AAAA,EAosGQ,MApsGR;AAAA,EAqsGL,SArsGK;AAAA,EAqsGM,MArsGN;AAAA,EAssGL,SAtsGK;AAAA,EAssGM,MAtsGN;AAAA,EAusGL,iBAvsGK;AAAA,EAusGc,MAvsGd;AAAA,EAwsGL,YAxsGK;AAAA,EAwsGS,MAxsGT;AAAA,EAysGL,YAzsGK;AAAA,EAysGS,MAzsGT;AAAA,EA0sGL,qBA1sGK;AAAA,EA0sGkB,MA1sGlB;AAAA,EA2sGL,kBA3sGK;AAAA,EA2sGe,MA3sGf;AAAA,EA4sGL,kBA5sGK;AAAA,EA4sGe,MA5sGf;AAAA,EA6sGL,QA7sGK;AAAA,EA6sGK,MA7sGL;AAAA,EA8sGL,QA9sGK;AAAA,EA8sGK,MA9sGL;AAAA,EA+sGL,iBA/sGK;AAAA,EA+sGc,MA/sGd;AAAA,EAgtGL,cAhtGK;AAAA,EAgtGW,MAhtGX;AAAA,EAitGL,kBAjtGK;AAAA,EAitGe,MAjtGf;AAAA,EAktGL,0BAltGK;AAAA,EAktGuB,MAltGvB;AAAA,EAmtGL,uBAntGK;AAAA,EAmtGoB,MAntGpB;AAAA,EAotGL,2BAptGK;AAAA,EAotGwB,MAptGxB;AAAA,EAqtGL,GArtGK;AAAA,EAqtGA,MArtGA;AAAA,EAstGL,WAttGK;AAAA,EAstGQ,MAttGR;AAAA,EAutGL,QAvtGK;AAAA,EAutGK,MAvtGL;AAAA,EAwtGL,iBAxtGK;AAAA,EAwtGc,MAxtGd;AAAA,EAytGL,WAztGK;AAAA,EAytGQ,MAztGR;AAAA,EA0tGL,QA1tGK;AAAA,EA0tGK,MA1tGL;AAAA,EA2tGL,gBA3tGK;AAAA,EA2tGa,MA3tGb;AAAA,EA4tGL,kBA5tGK;AAAA,EA4tGe,MA5tGf;AAAA,EA6tGL,iBA7tGK;AAAA,EA6tGc,MA7tGd;AAAA,EA8tGL,YA9tGK;AAAA,EA8tGS,MA9tGT;AAAA,EA+tGL,YA/tGK;AAAA,EA+tGS,MA/tGT;AAAA,EAguGL,YAhuGK;AAAA,EAguGS,MAhuGT;AAAA,EAiuGL,YAjuGK;AAAA,EAiuGS,MAjuGT;AAAA,EAkuGL,qBAluGK;AAAA,EAkuGkB,MAluGlB;AAAA,EAmuGL,iCAnuGK;AAAA,EAmuG8B,MAnuG9B;AAAA,EAouGL,QApuGK;AAAA,EAouGK,MApuGL;AAAA,EAquGL,cAruGK;AAAA,EAquGW,MAruGX;AAAA,EAsuGL,oBAtuGK;AAAA,EAsuGiB,MAtuGjB;AAAA,EAuuGL,cAvuGK;AAAA,EAuuGW,MAvuGX;AAAA,EAwuGL,YAxuGK;AAAA,EAwuGS,MAxuGT;AAAA,EAyuGL,YAzuGK;AAAA,EAyuGS,MAzuGT;AAAA,EA0uGL,oBA1uGK;AAAA,EA0uGiB,MA1uGjB;AAAA,EA2uGL,mBA3uGK;AAAA,EA2uGgB,MA3uGhB;AAAA,EA4uGL,YA5uGK;AAAA,EA4uGS,MA5uGT;AAAA,EA6uGL,WA7uGK;AAAA,EA6uGQ,MA7uGR;AAAA,EA8uGL,WA9uGK;AAAA,EA8uGQ,MA9uGR;AAAA,EA+uGL,gBA/uGK;AAAA,EA+uGa,MA/uGb;AAAA,EAgvGL,YAhvGK;AAAA,EAgvGS,MAhvGT;AAAA,EAivGL,eAjvGK;AAAA,EAivGY,MAjvGZ;AAAA,EAkvGL,WAlvGK;AAAA,EAkvGQ,MAlvGR;AAAA,EAmvGL,WAnvGK;AAAA,EAmvGQ,MAnvGR;AAAA,EAovGL,iBApvGK;AAAA,EAovGc,MApvGd;AAAA,EAqvGL,aArvGK;AAAA,EAqvGU,MArvGV;AAAA,EAsvGL,gBAtvGK;AAAA,EAsvGa,MAtvGb;AAAA,EAuvGL,YAvvGK;AAAA,EAuvGS,MAvvGT;AAAA,EAwvGL,WAxvGK;AAAA,EAwvGQ,MAxvGR;AAAA,EAyvGL,YAzvGK;AAAA,EAyvGS,MAzvGT;AAAA,EA0vGL,WA1vGK;AAAA,EA0vGQ,MA1vGR;AAAA,EA2vGL,QA3vGK;AAAA,EA2vGK,MA3vGL;AAAA,EA4vGL,iBA5vGK;AAAA,EA4vGc,MA5vGd;AAAA,EA6vGL,UA7vGK;AAAA,EA6vGO,MA7vGP;AAAA,EA8vGL,OA9vGK;AAAA,EA8vGI,MA9vGJ;AAAA,EA+vGL,eA/vGK;AAAA,EA+vGY,MA/vGZ;AAAA,EAgwGL,uBAhwGK;AAAA,EAgwGoB,MAhwGpB;AAAA,EAiwGL,WAjwGK;AAAA,EAiwGQ,MAjwGR;AAAA,EAkwGL,SAlwGK;AAAA,EAkwGM,MAlwGN;AAAA,EAmwGL,aAnwGK;AAAA,EAmwGU,MAnwGV;AAAA,EAowGL,cApwGK;AAAA,EAowGW,MApwGX;AAAA,EAqwGL,YArwGK;AAAA,EAqwGS,MArwGT;AAAA,EAswGL,WAtwGK;AAAA,EAswGQ,MAtwGR;AAAA,EAuwGL,oBAvwGK;AAAA,EAuwGiB,MAvwGjB;AAAA,EAwwGL,iBAxwGK;AAAA,EAwwGc,MAxwGd;AAAA,EAywGL,QAzwGK;AAAA,EAywGK,MAzwGL;AAAA,EA0wGL,mBA1wGK;AAAA,EA0wGgB,MA1wGhB;AAAA,EA2wGL,SA3wGK;AAAA,EA2wGM,MA3wGN;AAAA,EA4wGL,YA5wGK;AAAA,EA4wGS,MA5wGT;AAAA,EA6wGL,iBA7wGK;AAAA,EA6wGc,MA7wGd;AAAA,EA8wGL,mBA9wGK;AAAA,EA8wGgB,MA9wGhB;AAAA,EA+wGL,kBA/wGK;AAAA,EA+wGe,MA/wGf;AAAA,EAgxGL,OAhxGK;AAAA,EAgxGI,MAhxGJ;AAAA,EAixGL,SAjxGK;AAAA,EAixGM,MAjxGN;AAAA,EAkxGL,SAlxGK;AAAA,EAkxGM,MAlxGN;AAAA,EAmxGL,SAnxGK;AAAA,EAmxGM,MAnxGN;AAAA,EAoxGL,aApxGK;AAAA,EAoxGU,MApxGV;AAAA,EAqxGL,mBArxGK;AAAA,EAqxGgB,MArxGhB;AAAA,EAsxGL,oBAtxGK;AAAA,EAsxGiB,MAtxGjB;AAAA,EAuxGL,eAvxGK;AAAA,EAuxGY,MAvxGZ;AAAA,EAwxGL,iBAxxGK;AAAA,EAwxGc,MAxxGd;AAAA,EAyxGL,aAzxGK;AAAA,EAyxGU,MAzxGV;AAAA,EA0xGL,YA1xGK;AAAA,EA0xGS,MA1xGT;AAAA,EA2xGL,YA3xGK;AAAA,EA2xGS,MA3xGT;AAAA,EA4xGL,qBA5xGK;AAAA,EA4xGkB,MA5xGlB;AAAA,EA6xGL,WA7xGK;AAAA,EA6xGQ,MA7xGR;AAAA,EA8xGL,iBA9xGK;AAAA,EA8xGc,MA9xGd;AAAA,EA+xGL,oBA/xGK;AAAA,EA+xGiB,MA/xGjB;AAAA,EAgyGL,gBAhyGK;AAAA,EAgyGa,MAhyGb;AAAA,EAiyGL,oBAjyGK;AAAA,EAiyGiB,MAjyGjB;AAAA,EAkyGL,6BAlyGK;AAAA,EAkyG0B,MAlyG1B;AAAA,EAmyGL,aAnyGK;AAAA,EAmyGU,MAnyGV;AAAA,EAoyGL,aApyGK;AAAA,EAoyGU,MApyGV;AAAA,EAqyGL,OAryGK;AAAA,EAqyGI,MAryGJ;AAAA,EAsyGL,aAtyGK;AAAA,EAsyGU,MAtyGV;AAAA,EAuyGL,cAvyGK;AAAA,EAuyGW,MAvyGX;AAAA,EAwyGL,aAxyGK;AAAA,EAwyGU,MAxyGV;AAAA,EAyyGL,6BAzyGK;AAAA,EAyyG0B,MAzyG1B;AAAA,EA0yGL,WA1yGK;AAAA,EA0yGQ,MA1yGR;AAAA,EA2yGL,cA3yGK;AAAA,EA2yGW,MA3yGX;AAAA,EA4yGL,eA5yGK;AAAA,EA4yGY,MA5yGZ;AAAA,EA6yGL,eA7yGK;AAAA,EA6yGY,MA7yGZ;AAAA,EA8yGL,iBA9yGK;AAAA,EA8yGc,MA9yGd;AAAA,EA+yGL,eA/yGK;AAAA,EA+yGY,MA/yGZ;AAAA,EAgzGL,uBAhzGK;AAAA,EAgzGoB,MAhzGpB;AAAA,EAizGL,eAjzGK;AAAA,EAizGY,MAjzGZ;AAAA,EAkzGL,gBAlzGK;AAAA,EAkzGa,MAlzGb;AAAA,EAmzGL,eAnzGK;AAAA,EAmzGY,MAnzGZ;AAAA,EAozGL,YApzGK;AAAA,EAozGS,MApzGT;AAAA,EAqzGL,aArzGK;AAAA,EAqzGU,MArzGV;AAAA,EAszGL,cAtzGK;AAAA,EAszGW,MAtzGX;AAAA,EAuzGL,YAvzGK;AAAA,EAuzGS,MAvzGT;AAAA,EAwzGL,eAxzGK;AAAA,EAwzGY,MAxzGZ;AAAA,EAyzGL,iBAzzGK;AAAA,EAyzGc,MAzzGd;AAAA,EA0zGL,gBA1zGK;AAAA,EA0zGa,MA1zGb;AAAA,EA2zGL,iBA3zGK;AAAA,EA2zGc,MA3zGd;AAAA,EA4zGL,WA5zGK;AAAA,EA4zGQ,MA5zGR;AAAA,EA6zGL,WA7zGK;AAAA,EA6zGQ,MA7zGR;AAAA,EA8zGL,aA9zGK;AAAA,EA8zGU,MA9zGV;AAAA,EA+zGL,YA/zGK;AAAA,EA+zGS,MA/zGT;AAAA,EAg0GL,aAh0GK;AAAA,EAg0GU,MAh0GV;AAAA,EAi0GL,cAj0GK;AAAA,EAi0GW,MAj0GX;AAAA,EAk0GL,mBAl0GK;AAAA,EAk0GgB,MAl0GhB;AAAA,EAm0GL,sBAn0GK;AAAA,EAm0GmB,MAn0GnB;AAAA,EAo0GL,mBAp0GK;AAAA,EAo0GgB,MAp0GhB;AAAA,EAq0GL,mBAr0GK;AAAA,EAq0GgB,MAr0GhB;AAAA,EAs0GL,sBAt0GK;AAAA,EAs0GmB,MAt0GnB;AAAA,EAu0GL,OAv0GK;AAAA,EAu0GI,MAv0GJ;AAAA,EAw0GL,WAx0GK;AAAA,EAw0GQ,MAx0GR;AAAA,EAy0GL,YAz0GK;AAAA,EAy0GS,MAz0GT;AAAA,EA00GL,aA10GK;AAAA,EA00GU,MA10GV;AAAA,EA20GL,SA30GK;AAAA,EA20GM,MA30GN;AAAA,EA40GL,aA50GK;AAAA,EA40GU,MA50GV;AAAA,EA60GL,aA70GK;AAAA,EA60GU,MA70GV;AAAA,EA80GL,kBA90GK;AAAA,EA80Ge,MA90Gf;AAAA,EA+0GL,YA/0GK;AAAA,EA+0GS,MA/0GT;AAAA,EAg1GL,eAh1GK;AAAA,EAg1GY,MAh1GZ;AAAA,EAi1GL,aAj1GK;AAAA,EAi1GU,MAj1GV;AAAA,EAk1GL,kBAl1GK;AAAA,EAk1Ge,MAl1Gf;AAAA,EAm1GL,oBAn1GK;AAAA,EAm1GiB,MAn1GjB;AAAA,EAo1GL,mBAp1GK;AAAA,EAo1GgB,MAp1GhB;AAAA,EAq1GL,YAr1GK;AAAA,EAq1GS,MAr1GT;AAAA,EAs1GL,QAt1GK;AAAA,EAs1GK,MAt1GL;AAAA,EAu1GL,cAv1GK;AAAA,EAu1GW,MAv1GX;AAAA,EAw1GL,OAx1GK;AAAA,EAw1GI,MAx1GJ;AAAA,EAy1GL,UAz1GK;AAAA,EAy1GO,MAz1GP;AAAA,EA01GL,SA11GK;AAAA,EA01GM,MA11GN;AAAA,EA21GL,SA31GK;AAAA,EA21GM,MA31GN;AAAA,EA41GL,SA51GK;AAAA,EA41GM,MA51GN;AAAA,EA61GL,aA71GK;AAAA,EA61GU,MA71GV;AAAA,EA81GL,mBA91GK;AAAA,EA81GgB,MA91GhB;AAAA,EA+1GL,oBA/1GK;AAAA,EA+1GiB,MA/1GjB;AAAA,EAg2GL,iBAh2GK;AAAA,EAg2Gc,MAh2Gd;AAAA,EAi2GL,cAj2GK;AAAA,EAi2GW,MAj2GX;AAAA,EAk2GL,aAl2GK;AAAA,EAk2GU,MAl2GV;AAAA,EAm2GL,MAn2GK;AAAA,EAm2GG,MAn2GH;AAAA,EAo2GL,YAp2GK;AAAA,EAo2GS,MAp2GT;AAAA,EAq2GL,kBAr2GK;AAAA,EAq2Ge,MAr2Gf;AAAA,EAs2GL,mBAt2GK;AAAA,EAs2GgB,MAt2GhB;AAAA,EAu2GL,yBAv2GK;AAAA,EAu2GsB,MAv2GtB;AAAA,EAw2GL,kBAx2GK;AAAA,EAw2Ge,MAx2Gf;AAAA,EAy2GL,wBAz2GK;AAAA,EAy2GqB,MAz2GrB;AAAA,EA02GL,eA12GK;AAAA,EA02GY,MA12GZ;AAAA,EA22GL,YA32GK;AAAA,EA22GS,MA32GT;AAAA,EA42GL,aA52GK;AAAA,EA42GU,MA52GV;AAAA,EA62GL,mBA72GK;AAAA,EA62GgB,MA72GhB;AAAA,EA82GL,YA92GK;AAAA,EA82GS,MA92GT;AAAA,EA+2GL,kBA/2GK;AAAA,EA+2Ge,MA/2Gf;AAAA,EAg3GL,OAh3GK;AAAA,EAg3GI,MAh3GJ;AAAA,EAi3GL,OAj3GK;AAAA,EAi3GI,MAj3GJ;AAAA,EAk3GL,QAl3GK;AAAA,EAk3GK,MAl3GL;AAAA,EAm3GL,YAn3GK;AAAA,EAm3GS,MAn3GT;AAAA,EAo3GL,wBAp3GK;AAAA,EAo3GqB,MAp3GrB;AAAA,EAq3GL,YAr3GK;AAAA,EAq3GS,MAr3GT;AAAA,EAs3GL,YAt3GK;AAAA,EAs3GS,MAt3GT;AAAA,EAu3GL,qBAv3GK;AAAA,EAu3GkB,MAv3GlB;AAAA,EAw3GL,aAx3GK;AAAA,EAw3GU,MAx3GV;AAAA,EAy3GL,iBAz3GK;AAAA,EAy3Gc,MAz3Gd;AAAA,EA03GL,SA13GK;AAAA,EA03GM,MA13GN;AAAA,EA23GL,cA33GK;AAAA,EA23GW,MA33GX;AAAA,EA43GL,mBA53GK;AAAA,EA43GgB,MA53GhB;AAAA,EA63GL,kBA73GK;AAAA,EA63Ge,MA73Gf;AAAA,EA83GL,iBA93GK;AAAA,EA83Gc,MA93Gd;AAAA,EA+3GL,kBA/3GK;AAAA,EA+3Ge,MA/3Gf;AAAA,EAg4GL,kBAh4GK;AAAA,EAg4Ge,MAh4Gf;AAAA,EAi4GL,YAj4GK;AAAA,EAi4GS,MAj4GT;AAAA,EAk4GL,iBAl4GK;AAAA,EAk4Gc,MAl4Gd;AAAA,EAm4GL,iBAn4GK;AAAA,EAm4Gc,MAn4Gd;AAAA,EAo4GL,iBAp4GK;AAAA,EAo4Gc,MAp4Gd;AAAA,EAq4GL,kBAr4GK;AAAA,EAq4Ge,MAr4Gf;AAAA,EAs4GL,KAt4GK;AAAA,EAs4GE,MAt4GF;AAAA,EAu4GL,WAv4GK;AAAA,EAu4GQ,MAv4GR;AAAA,EAw4GL,YAx4GK;AAAA,EAw4GS,MAx4GT;AAAA,EAy4GL,WAz4GK;AAAA,EAy4GQ,MAz4GR;AAAA,EA04GL,2BA14GK;AAAA,EA04GwB,MA14GxB;AAAA,EA24GL,SA34GK;AAAA,EA24GM,MA34GN;AAAA,EA44GL,aA54GK;AAAA,EA44GU,MA54GV;AAAA,EA64GL,aA74GK;AAAA,EA64GU,MA74GV;AAAA,EA84GL,eA94GK;AAAA,EA84GY,MA94GZ;AAAA,EA+4GL,aA/4GK;AAAA,EA+4GU,MA/4GV;AAAA,EAg5GL,qBAh5GK;AAAA,EAg5GkB,MAh5GlB;AAAA,EAi5GL,aAj5GK;AAAA,EAi5GU,MAj5GV;AAAA,EAk5GL,cAl5GK;AAAA,EAk5GW,MAl5GX;AAAA,EAm5GL,aAn5GK;AAAA,EAm5GU,MAn5GV;AAAA,EAo5GL,UAp5GK;AAAA,EAo5GO,MAp5GP;AAAA,EAq5GL,WAr5GK;AAAA,EAq5GQ,MAr5GR;AAAA,EAs5GL,YAt5GK;AAAA,EAs5GS,MAt5GT;AAAA,EAu5GL,UAv5GK;AAAA,EAu5GO,MAv5GP;AAAA,EAw5GL,aAx5GK;AAAA,EAw5GU,MAx5GV;AAAA,EAy5GL,eAz5GK;AAAA,EAy5GY,MAz5GZ;AAAA,EA05GL,mCA15GK;AAAA,EA05GgC,MA15GhC;AAAA,EA25GL,cA35GK;AAAA,EA25GW,MA35GX;AAAA,EA45GL,eA55GK;AAAA,EA45GY,MA55GZ;AAAA,EA65GL,SA75GK;AAAA,EA65GM,MA75GN;AAAA,EA85GL,OA95GK;AAAA,EA85GI,MA95GJ;AAAA,EA+5GL,gBA/5GK;AAAA,EA+5Ga,MA/5Gb;AAAA,EAg6GL,OAh6GK;AAAA,EAg6GI,MAh6GJ;AAAA,EAi6GL,gBAj6GK;AAAA,EAi6Ga,MAj6Gb;AAAA,EAk6GL,WAl6GK;AAAA,EAk6GQ,MAl6GR;AAAA,EAm6GL,YAn6GK;AAAA,EAm6GS,MAn6GT;AAAA,EAo6GL,gBAp6GK;AAAA,EAo6Ga,MAp6Gb;AAAA,EAq6GL,YAr6GK;AAAA,EAq6GS,MAr6GT;AAAA,EAs6GL,kBAt6GK;AAAA,EAs6Ge,MAt6Gf;AAAA,EAu6GL,YAv6GK;AAAA,EAu6GS,MAv6GT;AAAA,EAw6GL,YAx6GK;AAAA,EAw6GS,MAx6GT;AAAA,EAy6GL,qBAz6GK;AAAA,EAy6GkB,MAz6GlB;AAAA,EA06GL,uBA16GK;AAAA,EA06GoB,MA16GpB;AAAA,EA26GL,wBA36GK;AAAA,EA26GqB,MA36GrB;AAAA,EA46GL,YA56GK;AAAA,EA46GS,MA56GT;AAAA,EA66GL,YA76GK;AAAA,EA66GS,MA76GT;AAAA,EA86GL,UA96GK;AAAA,EA86GO,MA96GP;AAAA,EA+6GL,WA/6GK;AAAA,EA+6GQ,MA/6GR;AAAA,EAg7GL,OAh7GK;AAAA,EAg7GI,MAh7GJ;AAAA,EAi7GL,iBAj7GK;AAAA,EAi7Gc,MAj7Gd;AAAA,EAk7GL,OAl7GK;AAAA,EAk7GI,MAl7GJ;AAAA,EAm7GL,gBAn7GK;AAAA,EAm7Ga,MAn7Gb;AAAA,EAo7GL,gBAp7GK;AAAA,EAo7Ga,MAp7Gb;AAAA,EAq7GL,QAr7GK;AAAA,EAq7GK,MAr7GL;AAAA,EAs7GL,gBAt7GK;AAAA,EAs7Ga,MAt7Gb;AAAA,EAu7GL,UAv7GK;AAAA,EAu7GO,MAv7GP;AAAA,EAw7GL,UAx7GK;AAAA,EAw7GO,MAx7GP;AAAA,EAy7GL,8BAz7GK;AAAA,EAy7G2B,MAz7G3B;AAAA,EA07GL,sBA17GK;AAAA,EA07GmB,MA17GnB;AAAA,EA27GL,UA37GK;AAAA,EA27GO,MA37GP;AAAA,EA47GL,UA57GK;AAAA,EA47GO,MA57GP;AAAA,EA67GL,iBA77GK;AAAA,EA67Gc,MA77Gd;AAAA,EA87GL,UA97GK;AAAA,EA87GO,MA97GP;AAAA,EA+7GL,WA/7GK;AAAA,EA+7GQ,MA/7GR;AAAA,EAg8GL,UAh8GK;AAAA,EAg8GO,MAh8GP;AAAA,EAi8GL,WAj8GK;AAAA,EAi8GQ,MAj8GR;AAAA,EAk8GL,UAl8GK;AAAA,EAk8GO,MAl8GP;AAAA,EAm8GL,gBAn8GK;AAAA,EAm8Ga,MAn8Gb;AAAA,EAo8GL,gCAp8GK;AAAA,EAo8G6B,MAp8G7B;AAAA,EAq8GL,iCAr8GK;AAAA,EAq8G8B,MAr8G9B;AAAA,EAs8GL,iCAt8GK;AAAA,EAs8G8B,MAt8G9B;AAAA,EAu8GL,oBAv8GK;AAAA,EAu8GiB,MAv8GjB;AAAA,EAw8GL,2BAx8GK;AAAA,EAw8GwB,MAx8GxB;AAAA,EAy8GL,UAz8GK;AAAA,EAy8GO,MAz8GP;AAAA,EA08GL,YA18GK;AAAA,EA08GS,MA18GT;AAAA,EA28GL,SA38GK;AAAA,EA28GM,MA38GN;AAAA,EA48GL,aA58GK;AAAA,EA48GU,MA58GV;AAAA,EA68GL,kBA78GK;AAAA,EA68Ge,MA78Gf;AAAA,EA88GL,kBA98GK;AAAA,EA88Ge,MA98Gf;AAAA,EA+8GL,kBA/8GK;AAAA,EA+8Ge,MA/8Gf;AAAA,EAg9GL,mBAh9GK;AAAA,EAg9GgB,MAh9GhB;AAAA,EAi9GL,kBAj9GK;AAAA,EAi9Ge,MAj9Gf;AAAA,EAk9GL,kBAl9GK;AAAA,EAk9Ge,MAl9Gf;AAAA,EAm9GL,iBAn9GK;AAAA,EAm9Gc,MAn9Gd;AAAA,EAo9GL,mBAp9GK;AAAA,EAo9GgB,MAp9GhB;AAAA,EAq9GL,WAr9GK;AAAA,EAq9GQ,MAr9GR;AAAA,EAs9GL,UAt9GK;AAAA,EAs9GO,MAt9GP;AAAA,EAu9GL,mBAv9GK;AAAA,EAu9GgB,MAv9GhB;AAAA,EAw9GL,sBAx9GK;AAAA,EAw9GmB,MAx9GnB;AAAA,EAy9GL,uBAz9GK;AAAA,EAy9GoB,MAz9GpB;AAAA,EA09GL,QA19GK;AAAA,EA09GK,MA19GL;AAAA,EA29GL,gBA39GK;AAAA,EA29Ga,MA39Gb;AAAA,EA49GL,eA59GK;AAAA,EA49GY,MA59GZ;AAAA,EA69GL,UA79GK;AAAA,EA69GO,MA79GP;AAAA,EA89GL,UA99GK;AAAA,EA89GO,MA99GP;AAAA,EA+9GL,YA/9GK;AAAA,EA+9GS,MA/9GT;AAAA,EAg+GL,YAh+GK;AAAA,EAg+GS,MAh+GT;AAAA,EAi+GL,qBAj+GK;AAAA,EAi+GkB,MAj+GlB;AAAA,EAk+GL,aAl+GK;AAAA,EAk+GU,MAl+GV;AAAA,EAm+GL,WAn+GK;AAAA,EAm+GQ,MAn+GR;AAAA,EAo+GL,KAp+GK;AAAA,EAo+GE,MAp+GF;AAAA,EAq+GL,UAr+GK;AAAA,EAq+GO,MAr+GP;AAAA,EAs+GL,kBAt+GK;AAAA,EAs+Ge,MAt+Gf;AAAA,EAu+GL,iBAv+GK;AAAA,EAu+Gc,MAv+Gd;AAAA,EAw+GL,UAx+GK;AAAA,EAw+GO,MAx+GP;AAAA,EAy+GL,iBAz+GK;AAAA,EAy+Gc,MAz+Gd;AAAA,EA0+GL,GA1+GK;AAAA,EA0+GA,MA1+GA;AAAA,EA2+GL,WA3+GK;AAAA,EA2+GQ,MA3+GR;AAAA,EA4+GL,UA5+GK;AAAA,EA4+GO,MA5+GP;AAAA,EA6+GL,UA7+GK;AAAA,EA6+GO,MA7+GP;AAAA,EA8+GL,QA9+GK;AAAA,EA8+GK,MA9+GL;AAAA,EA++GL,YA/+GK;AAAA,EA++GS,MA/+GT;AAAA,EAg/GL,YAh/GK;AAAA,EAg/GS,MAh/GT;AAAA,EAi/GL,WAj/GK;AAAA,EAi/GQ,MAj/GR;AAAA,EAk/GL,gBAl/GK;AAAA,EAk/Ga,MAl/Gb;AAAA,EAm/GL,kBAn/GK;AAAA,EAm/Ge,MAn/Gf;AAAA,EAo/GL,YAp/GK;AAAA,EAo/GS,MAp/GT;AAAA,EAq/GL,iBAr/GK;AAAA,EAq/Gc,MAr/Gd;AAAA,EAs/GL,kBAt/GK;AAAA,EAs/Ge,MAt/Gf;AAAA,EAu/GL,YAv/GK;AAAA,EAu/GS,MAv/GT;AAAA,EAw/GL,qBAx/GK;AAAA,EAw/GkB,MAx/GlB;AAAA,EAy/GL,eAz/GK;AAAA,EAy/GY,MAz/GZ;AAAA,EA0/GL,KA1/GK;AAAA,EA0/GE,MA1/GF;AAAA,EA2/GL,KA3/GK;AAAA,EA2/GE,MA3/GF;AAAA,EA4/GL,UA5/GK;AAAA,EA4/GO,MA5/GP;AAAA,EA6/GL,WA7/GK;AAAA,EA6/GQ,MA7/GR;AAAA,EA8/GL,iBA9/GK;AAAA,EA8/Gc,MA9/Gd;AAAA,EA+/GL,WA//GK;AAAA,EA+/GQ,MA//GR;AAAA,EAggHL,MAhgHK;AAAA,EAggHG,MAhgHH;AAAA,EAigHL,WAjgHK;AAAA,EAigHQ,MAjgHR;AAAA,EAkgHL,QAlgHK;AAAA,EAkgHK,MAlgHL;AAAA,EAmgHL,QAngHK;AAAA,EAmgHK,MAngHL;AAAA,EAogHL,UApgHK;AAAA,EAogHO,MApgHP;AAAA,EAqgHL,aArgHK;AAAA,EAqgHU,MArgHV;AAAA,EAsgHL,kBAtgHK;AAAA,EAsgHe,MAtgHf;AAAA,EAugHL,oBAvgHK;AAAA,EAugHiB,MAvgHjB;AAAA,EAwgHL,mBAxgHK;AAAA,EAwgHgB,MAxgHhB;AAAA,EAygHL,SAzgHK;AAAA,EAygHM,MAzgHN;AAAA,EA0gHL,kBA1gHK;AAAA,EA0gHe,MA1gHf;AAAA,EA2gHL,cA3gHK;AAAA,EA2gHW,MA3gHX;AAAA,EA4gHL,WA5gHK;AAAA,EA4gHQ,MA5gHR;AAAA,EA6gHL,YA7gHK;AAAA,EA6gHS,MA7gHT;AAAA,EA8gHL,WA9gHK;AAAA,EA8gHQ,MA9gHR;AAAA,EA+gHL,YA/gHK;AAAA,EA+gHS,MA/gHT;AAAA,EAghHL,qBAhhHK;AAAA,EAghHkB,MAhhHlB;AAAA,EAihHL,WAjhHK;AAAA,EAihHQ,MAjhHR;AAAA,EAkhHL,gBAlhHK;AAAA,EAkhHa,MAlhHb;AAAA,EAmhHL,qBAnhHK;AAAA,EAmhHkB,MAnhHlB;AAAA,EAohHL,sBAphHK;AAAA,EAohHmB,MAphHnB;AAAA,EAqhHL,kBArhHK;AAAA,EAqhHe,MArhHf;AAAA,EAshHL,YAthHK;AAAA,EAshHS,MAthHT;AAAA,EAuhHL,sBAvhHK;AAAA,EAuhHmB,MAvhHnB;AAAA,EAwhHL,uBAxhHK;AAAA,EAwhHoB,MAxhHpB;AAAA,EAyhHL,kBAzhHK;AAAA,EAyhHe,MAzhHf;AAAA,EA0hHL,uBA1hHK;AAAA,EA0hHoB,MA1hHpB;AAAA,EA2hHL,iBA3hHK;AAAA,EA2hHc,MA3hHd;AAAA,EA4hHL,sBA5hHK;AAAA,EA4hHmB,MA5hHnB;AAAA,EA6hHL,uBA7hHK;AAAA,EA6hHoB,MA7hHpB;AAAA,EA8hHL,oBA9hHK;AAAA,EA8hHiB,MA9hHjB;AAAA,EA+hHL,YA/hHK;AAAA,EA+hHS,MA/hHT;AAAA,EAgiHL,qBAhiHK;AAAA,EAgiHkB,MAhiHlB;AAAA,EAiiHL,WAjiHK;AAAA,EAiiHQ,MAjiHR;AAAA,EAkiHL,gBAliHK;AAAA,EAkiHa,MAliHb;AAAA,EAmiHL,qBAniHK;AAAA,EAmiHkB,MAniHlB;AAAA,EAoiHL,qBApiHK;AAAA,EAoiHkB,MApiHlB;AAAA,EAqiHL,WAriHK;AAAA,EAqiHQ,MAriHR;AAAA,EAsiHL,qBAtiHK;AAAA,EAsiHkB,MAtiHlB;AAAA,EAuiHL,UAviHK;AAAA,EAuiHO,MAviHP;AAAA,EAwiHL,WAxiHK;AAAA,EAwiHQ,MAxiHR;AAAA,EAyiHL,UAziHK;AAAA,EAyiHO,MAziHP;AAAA,EA0iHL,MA1iHK;AAAA,EA0iHG,MA1iHH;AAAA,EA2iHL,KA3iHK;AAAA,EA2iHE,MA3iHF;AAAA,EA4iHL,WA5iHK;AAAA,EA4iHQ,MA5iHR;AAAA,EA6iHL,iBA7iHK;AAAA,EA6iHc,MA7iHd;AAAA,EA8iHL,WA9iHK;AAAA,EA8iHQ,MA9iHR;AAAA,EA+iHL,eA/iHK;AAAA,EA+iHY,MA/iHZ;AAAA,EAgjHL,aAhjHK;AAAA,EAgjHU,MAhjHV;AAAA,EAijHL,iBAjjHK;AAAA,EAijHc,MAjjHd;AAAA,EAkjHL,YAljHK;AAAA,EAkjHS,MAljHT;AAAA,EAmjHL,SAnjHK;AAAA,EAmjHM,MAnjHN;AAAA,EAojHL,aApjHK;AAAA,EAojHU,MApjHV;AAAA,EAqjHL,aArjHK;AAAA,EAqjHU,MArjHV;AAAA,EAsjHL,YAtjHK;AAAA,EAsjHS,MAtjHT;AAAA,EAujHL,iBAvjHK;AAAA,EAujHc,MAvjHd;AAAA,EAwjHL,wBAxjHK;AAAA,EAwjHqB,MAxjHrB;AAAA,EAyjHL,yBAzjHK;AAAA,EAyjHsB,MAzjHtB;AAAA,EA0jHL,iBA1jHK;AAAA,EA0jHc,MA1jHd;AAAA,EA2jHL,0BA3jHK;AAAA,EA2jHuB,MA3jHvB;AAAA,EA4jHL,YA5jHK;AAAA,EA4jHS,MA5jHT;AAAA,EA6jHL,iBA7jHK;AAAA,EA6jHc,MA7jHd;AAAA,EA8jHL,mBA9jHK;AAAA,EA8jHgB,MA9jHhB;AAAA,EA+jHL,kBA/jHK;AAAA,EA+jHe,MA/jHf;AAAA,EAgkHL,aAhkHK;AAAA,EAgkHU,MAhkHV;AAAA,EAikHL,WAjkHK;AAAA,EAikHQ,MAjkHR;AAAA,EAkkHL,OAlkHK;AAAA,EAkkHI,MAlkHJ;AAAA,EAmkHL,QAnkHK;AAAA,EAmkHK,MAnkHL;AAAA,EAokHL,kBApkHK;AAAA,EAokHe,MApkHf;AAAA,EAqkHL,sBArkHK;AAAA,EAqkHmB,MArkHnB;AAAA,EAskHL,qBAtkHK;AAAA,EAskHkB,MAtkHlB;AAAA,EAukHL,qBAvkHK;AAAA,EAukHkB,MAvkHlB;AAAA,EAwkHL,eAxkHK;AAAA,EAwkHY,MAxkHZ;AAAA,EAykHL,oBAzkHK;AAAA,EAykHiB,MAzkHjB;AAAA,EA0kHL,gBA1kHK;AAAA,EA0kHa,MA1kHb;AAAA,EA2kHL,eA3kHK;AAAA,EA2kHY,MA3kHZ;AAAA,EA4kHL,gBA5kHK;AAAA,EA4kHa,MA5kHb;AAAA,EA6kHL,mBA7kHK;AAAA,EA6kHgB,MA7kHhB;AAAA,EA8kHL,OA9kHK;AAAA,EA8kHI,MA9kHJ;AAAA,EA+kHL,gBA/kHK;AAAA,EA+kHa,MA/kHb;AAAA,EAglHL,OAhlHK;AAAA,EAglHI,MAhlHJ;AAAA,EAilHL,eAjlHK;AAAA,EAilHY,MAjlHZ;AAAA,EAklHL,aAllHK;AAAA,EAklHU,MAllHV;AAAA,EAmlHL,cAnlHK;AAAA,EAmlHW,MAnlHX;AAAA,EAolHL,cAplHK;AAAA,EAolHW,MAplHX;AAAA,EAqlHL,kBArlHK;AAAA,EAqlHe,MArlHf;AAAA,EAslHL,0BAtlHK;AAAA,EAslHuB,MAtlHvB;AAAA,EAulHL,2BAvlHK;AAAA,EAulHwB,MAvlHxB;AAAA,EAwlHL,OAxlHK;AAAA,EAwlHI,MAxlHJ;AAAA,EAylHL,aAzlHK;AAAA,EAylHU,MAzlHV;AAAA,EA0lHL,cA1lHK;AAAA,EA0lHW,MA1lHX;AAAA,EA2lHL,aA3lHK;AAAA,EA2lHU,MA3lHV;AAAA,EA4lHL,6BA5lHK;AAAA,EA4lH0B,MA5lH1B;AAAA,EA6lHL,WA7lHK;AAAA,EA6lHQ,MA7lHR;AAAA,EA8lHL,cA9lHK;AAAA,EA8lHW,MA9lHX;AAAA,EA+lHL,eA/lHK;AAAA,EA+lHY,MA/lHZ;AAAA,EAgmHL,eAhmHK;AAAA,EAgmHY,MAhmHZ;AAAA,EAimHL,iBAjmHK;AAAA,EAimHc,MAjmHd;AAAA,EAkmHL,eAlmHK;AAAA,EAkmHY,MAlmHZ;AAAA,EAmmHL,uBAnmHK;AAAA,EAmmHoB,MAnmHpB;AAAA,EAomHL,eApmHK;AAAA,EAomHY,MApmHZ;AAAA,EAqmHL,gBArmHK;AAAA,EAqmHa,MArmHb;AAAA,EAsmHL,uBAtmHK;AAAA,EAsmHoB,MAtmHpB;AAAA,EAumHL,eAvmHK;AAAA,EAumHY,MAvmHZ;AAAA,EAwmHL,YAxmHK;AAAA,EAwmHS,MAxmHT;AAAA,EAymHL,aAzmHK;AAAA,EAymHU,MAzmHV;AAAA,EA0mHL,cA1mHK;AAAA,EA0mHW,MA1mHX;AAAA,EA2mHL,eA3mHK;AAAA,EA2mHY,MA3mHZ;AAAA,EA4mHL,qBA5mHK;AAAA,EA4mHkB,MA5mHlB;AAAA,EA6mHL,YA7mHK;AAAA,EA6mHS,MA7mHT;AAAA,EA8mHL,eA9mHK;AAAA,EA8mHY,MA9mHZ;AAAA,EA+mHL,WA/mHK;AAAA,EA+mHQ,MA/mHR;AAAA,EAgnHL,WAhnHK;AAAA,EAgnHQ,MAhnHR;AAAA,EAinHL,YAjnHK;AAAA,EAinHS,MAjnHT;AAAA,EAknHL,YAlnHK;AAAA,EAknHS,MAlnHT;AAAA,EAmnHL,qBAnnHK;AAAA,EAmnHkB,MAnnHlB;AAAA,EAonHL,qBApnHK;AAAA,EAonHkB,MApnHlB;AAAA,EAqnHL,oBArnHK;AAAA,EAqnHiB,MArnHjB;AAAA,EAsnHL,oBAtnHK;AAAA,EAsnHiB,MAtnHjB;AAAA,EAunHL,cAvnHK;AAAA,EAunHW,MAvnHX;AAAA,EAwnHL,mBAxnHK;AAAA,EAwnHgB,MAxnHhB;AAAA,EAynHL,OAznHK;AAAA,EAynHI,MAznHJ;AAAA,EA0nHL,eA1nHK;AAAA,EA0nHY,MA1nHZ;AAAA,EA2nHL,UA3nHK;AAAA,EA2nHO,MA3nHP;AAAA,EA4nHL,WA5nHK;AAAA,EA4nHQ,MA5nHR;AAAA,EA6nHL,gBA7nHK;AAAA,EA6nHa,MA7nHb;AAAA,EA8nHL,eA9nHK;AAAA,EA8nHY,MA9nHZ;AAAA,EA+nHL,iBA/nHK;AAAA,EA+nHc,MA/nHd;AAAA,EAgoHL,kBAhoHK;AAAA,EAgoHe,MAhoHf;AAAA,EAioHL,aAjoHK;AAAA,EAioHU,MAjoHV;AAAA,EAkoHL,cAloHK;AAAA,EAkoHW,MAloHX;AAAA,EAmoHL,kBAnoHK;AAAA,EAmoHe,MAnoHf;AAAA,EAooHL,eApoHK;AAAA,EAooHY,MApoHZ;AAAA,EAqoHL,kBAroHK;AAAA,EAqoHe,MAroHf;AAAA,EAsoHL,cAtoHK;AAAA,EAsoHW,MAtoHX;AAAA,EAuoHL,YAvoHK;AAAA,EAuoHS,MAvoHT;AAAA,EAwoHL,YAxoHK;AAAA,EAwoHS,MAxoHT;AAAA,EAyoHL,YAzoHK;AAAA,EAyoHS,MAzoHT;AAAA,EA0oHL,YA1oHK;AAAA,EA0oHS,MA1oHT;AAAA,EA2oHL,YA3oHK;AAAA,EA2oHS,MA3oHT;AAAA,EA4oHL,qBA5oHK;AAAA,EA4oHkB,MA5oHlB;AAAA,EA6oHL,qBA7oHK;AAAA,EA6oHkB,MA7oHlB;AAAA,EA8oHL,oBA9oHK;AAAA,EA8oHiB,MA9oHjB;AAAA,EA+oHL,gBA/oHK;AAAA,EA+oHa,MA/oHb;AAAA,EAgpHL,eAhpHK;AAAA,EAgpHY,MAhpHZ;AAAA,EAipHL,eAjpHK;AAAA,EAipHY,MAjpHZ;AAAA,EAkpHL,UAlpHK;AAAA,EAkpHO,MAlpHP;AAAA,EAmpHL,SAnpHK;AAAA,EAmpHM,MAnpHN;AAAA,EAopHL,SAppHK;AAAA,EAopHM,MAppHN;AAAA,EAqpHL,OArpHK;AAAA,EAqpHI,MArpHJ;AAAA,EAspHL,WAtpHK;AAAA,EAspHQ,MAtpHR;AAAA,EAupHL,aAvpHK;AAAA,EAupHU,MAvpHV;AAAA,EAwpHL,0BAxpHK;AAAA,EAwpHuB,MAxpHvB;AAAA,EAypHL,+BAzpHK;AAAA,EAypH4B,MAzpH5B;AAAA,EA0pHL,kCA1pHK;AAAA,EA0pH+B,MA1pH/B;AAAA,EA2pHL,2BA3pHK;AAAA,EA2pHwB,MA3pHxB;AAAA,EA4pHL,gCA5pHK;AAAA,EA4pH6B,MA5pH7B;AAAA,EA6pHL,mCA7pHK;AAAA,EA6pHgC,MA7pHhC;AAAA,EA8pHL,WA9pHK;AAAA,EA8pHQ,MA9pHR;AAAA,EA+pHL,cA/pHK;AAAA,EA+pHW,MA/pHX;AAAA,EAgqHL,QAhqHK;AAAA,EAgqHK,MAhqHL;AAAA,EAiqHL,WAjqHK;AAAA,EAiqHQ,MAjqHR;AAAA,EAkqHL,eAlqHK;AAAA,EAkqHY,MAlqHZ;AAAA,EAmqHL,gBAnqHK;AAAA,EAmqHa,MAnqHb;AAAA,EAoqHL,gBApqHK;AAAA,EAoqHa,MApqHb;AAAA,EAqqHL,SArqHK;AAAA,EAqqHM,MArqHN;AAAA,EAsqHL,SAtqHK;AAAA,EAsqHM,MAtqHN;AAAA,EAuqHL,SAvqHK;AAAA,EAuqHM,MAvqHN;AAAA,EAwqHL,SAxqHK;AAAA,EAwqHM,MAxqHN;AAAA,EAyqHL,IAzqHK;AAAA,EAyqHC,MAzqHD;AAAA,EA0qHL,OA1qHK;AAAA,EA0qHI,MA1qHJ;AAAA,EA2qHL,aA3qHK;AAAA,EA2qHU,MA3qHV;AAAA,EA4qHL,mBA5qHK;AAAA,EA4qHgB,MA5qHhB;AAAA,EA6qHL,aA7qHK;AAAA,EA6qHU,MA7qHV;AAAA,EA8qHL,aA9qHK;AAAA,EA8qHU,MA9qHV;AAAA,EA+qHL,OA/qHK;AAAA,EA+qHI,MA/qHJ;AAAA,EAgrHL,SAhrHK;AAAA,EAgrHM,MAhrHN;AAAA,EAirHL,SAjrHK;AAAA,EAirHM,MAjrHN;AAAA,EAkrHL,SAlrHK;AAAA,EAkrHM,MAlrHN;AAAA,EAmrHL,aAnrHK;AAAA,EAmrHU,MAnrHV;AAAA,EAorHL,mBAprHK;AAAA,EAorHgB,MAprHhB;AAAA,EAqrHL,oBArrHK;AAAA,EAqrHiB,MArrHjB;AAAA,EAsrHL,iBAtrHK;AAAA,EAsrHc,MAtrHd;AAAA,EAurHL,cAvrHK;AAAA,EAurHW,MAvrHX;AAAA,EAwrHL,WAxrHK;AAAA,EAwrHQ,MAxrHR;AAAA,EAyrHL,YAzrHK;AAAA,EAyrHS,MAzrHT;AAAA,EA0rHL,SA1rHK;AAAA,EA0rHM,MA1rHN;AAAA,EA2rHL,aA3rHK;AAAA,EA2rHU,MA3rHV;AAAA,EA4rHL,aA5rHK;AAAA,EA4rHU,MA5rHV;AAAA,EA6rHL,YA7rHK;AAAA,EA6rHS,MA7rHT;AAAA,EA8rHL,iBA9rHK;AAAA,EA8rHc,MA9rHd;AAAA,EA+rHL,mBA/rHK;AAAA,EA+rHgB,MA/rHhB;AAAA,EAgsHL,kBAhsHK;AAAA,EAgsHe,MAhsHf;AAAA,EAisHL,aAjsHK;AAAA,EAisHU,MAjsHV;AAAA,EAksHL,UAlsHK;AAAA,EAksHO,MAlsHP;AAAA,EAmsHL,cAnsHK;AAAA,EAmsHW,MAnsHX;AAAA,EAosHL,cApsHK;AAAA,EAosHW,MApsHX;AAAA,EAqsHL,SArsHK;AAAA,EAqsHM,MArsHN;AAAA,EAssHL,YAtsHK;AAAA,EAssHS,MAtsHT;AAAA,EAusHL,YAvsHK;AAAA,EAusHS,MAvsHT;AAAA,EAwsHL,qBAxsHK;AAAA,EAwsHkB,MAxsHlB;AAAA,EAysHL,iBAzsHK;AAAA,EAysHc,MAzsHd;AAAA,EA0sHL,iBA1sHK;AAAA,EA0sHc,MA1sHd;AAAA,EA2sHL,0BA3sHK;AAAA,EA2sHuB,MA3sHvB;AAAA,EA4sHL,cA5sHK;AAAA,EA4sHW,MA5sHX;AAAA,EA6sHL,aA7sHK;AAAA,EA6sHU,MA7sHV;AAAA,EA8sHL,cA9sHK;AAAA,EA8sHW,MA9sHX;AAAA,EA+sHL,aA/sHK;AAAA,EA+sHU,MA/sHV;AAAA,EAgtHL,cAhtHK;AAAA,EAgtHW,MAhtHX;AAAA,EAitHL,gBAjtHK;AAAA,EAitHa,MAjtHb;AAAA,EAktHL,aAltHK;AAAA,EAktHU,MAltHV;AAAA,EAmtHL,cAntHK;AAAA,EAmtHW,MAntHX;AAAA,EAotHL,KAptHK;AAAA,EAotHE,MAptHF;AAAA,EAqtHL,WArtHK;AAAA,EAqtHQ,MArtHR;AAAA,EAstHL,YAttHK;AAAA,EAstHS,MAttHT;AAAA,EAutHL,WAvtHK;AAAA,EAutHQ,MAvtHR;AAAA,EAwtHL,2BAxtHK;AAAA,EAwtHwB,MAxtHxB;AAAA,EAytHL,SAztHK;AAAA,EAytHM,MAztHN;AAAA,EA0tHL,gBA1tHK;AAAA,EA0tHa,MA1tHb;AAAA,EA2tHL,cA3tHK;AAAA,EA2tHW,MA3tHX;AAAA,EA4tHL,sBA5tHK;AAAA,EA4tHmB,MA5tHnB;AAAA,EA6tHL,aA7tHK;AAAA,EA6tHU,MA7tHV;AAAA,EA8tHL,aA9tHK;AAAA,EA8tHU,MA9tHV;AAAA,EA+tHL,eA/tHK;AAAA,EA+tHY,MA/tHZ;AAAA,EAguHL,aAhuHK;AAAA,EAguHU,MAhuHV;AAAA,EAiuHL,qBAjuHK;AAAA,EAiuHkB,MAjuHlB;AAAA,EAkuHL,aAluHK;AAAA,EAkuHU,MAluHV;AAAA,EAmuHL,cAnuHK;AAAA,EAmuHW,MAnuHX;AAAA,EAouHL,qBApuHK;AAAA,EAouHkB,MApuHlB;AAAA,EAquHL,aAruHK;AAAA,EAquHU,MAruHV;AAAA,EAsuHL,UAtuHK;AAAA,EAsuHO,MAtuHP;AAAA,EAuuHL,WAvuHK;AAAA,EAuuHQ,MAvuHR;AAAA,EAwuHL,YAxuHK;AAAA,EAwuHS,MAxuHT;AAAA,EAyuHL,UAzuHK;AAAA,EAyuHO,MAzuHP;AAAA,EA0uHL,WA1uHK;AAAA,EA0uHQ,MA1uHR;AAAA,EA2uHL,aA3uHK;AAAA,EA2uHU,MA3uHV;AAAA,EA4uHL,SA5uHK;AAAA,EA4uHM,MA5uHN;AAAA,EA6uHL,WA7uHK;AAAA,EA6uHQ,MA7uHR;AAAA,EA8uHL,GA9uHK;AAAA,EA8uHA,MA9uHA;AAAA,EA+uHL,QA/uHK;AAAA,EA+uHK,MA/uHL;AAAA,EAgvHL,MAhvHK;AAAA,EAgvHG,MAhvHH;AAAA,EAivHL,UAjvHK;AAAA,EAivHO,MAjvHP;AAAA,EAkvHL,WAlvHK;AAAA,EAkvHQ,MAlvHR;AAAA,EAmvHL,QAnvHK;AAAA,EAmvHK,MAnvHL;AAAA,EAovHL,QApvHK;AAAA,EAovHK,MApvHL;AAAA,EAqvHL,SArvHK;AAAA,EAqvHM,MArvHN;AAAA,EAsvHL,aAtvHK;AAAA,EAsvHU,MAtvHV;AAAA,EAuvHL,kBAvvHK;AAAA,EAuvHe,MAvvHf;AAAA,EAwvHL,WAxvHK;AAAA,EAwvHQ,MAxvHR;AAAA,EAyvHL,YAzvHK;AAAA,EAyvHS,MAzvHT;AAAA,EA0vHL,WA1vHK;AAAA,EA0vHQ,MA1vHR;AAAA,EA2vHL,WA3vHK;AAAA,EA2vHQ,MA3vHR;AAAA,EA4vHL,OA5vHK;AAAA,EA4vHI,MA5vHJ;AAAA,EA6vHL,WA7vHK;AAAA,EA6vHQ,MA7vHR;AAAA,EA8vHL,gBA9vHK;AAAA,EA8vHa,MA9vHb;AAAA,EA+vHL,gBA/vHK;AAAA,EA+vHa,MA/vHb;AAAA,EAgwHL,gBAhwHK;AAAA,EAgwHa,MAhwHb;AAAA,EAiwHL,mBAjwHK;AAAA,EAiwHgB,MAjwHhB;AAAA,EAkwHL,gBAlwHK;AAAA,EAkwHa,MAlwHb;AAAA,EAmwHL,iBAnwHK;AAAA,EAmwHc,MAnwHd;AAAA,EAowHL,WApwHK;AAAA,EAowHQ,MApwHR;AAAA,EAqwHL,QArwHK;AAAA,EAqwHK,MArwHL;AAAA,EAswHL,WAtwHK;AAAA,EAswHQ,MAtwHR;AAAA,EAuwHL,WAvwHK;AAAA,EAuwHQ,MAvwHR;AAAA,EAwwHL,WAxwHK;AAAA,EAwwHQ,MAxwHR;AAAA,EAywHL,YAzwHK;AAAA,EAywHS,MAzwHT;AAAA,EA0wHL,OA1wHK;AAAA,EA0wHI,MA1wHJ;AAAA,EA2wHL,YA3wHK;AAAA,EA2wHS,MA3wHT;AAAA,EA4wHL,eA5wHK;AAAA,EA4wHY,MA5wHZ;AAAA,EA6wHL,YA7wHK;AAAA,EA6wHS,MA7wHT;AAAA,EA8wHL,gBA9wHK;AAAA,EA8wHa,MA9wHb;AAAA,EA+wHL,YA/wHK;AAAA,EA+wHS,MA/wHT;AAAA,EAgxHL,eAhxHK;AAAA,EAgxHY,MAhxHZ;AAAA,EAixHL,uBAjxHK;AAAA,EAixHoB,MAjxHpB;AAAA,EAkxHL,gBAlxHK;AAAA,EAkxHa,MAlxHb;AAAA,EAmxHL,WAnxHK;AAAA,EAmxHQ,MAnxHR;AAAA,EAoxHL,oBApxHK;AAAA,EAoxHiB,MApxHjB;AAAA,EAqxHL,YArxHK;AAAA,EAqxHS,MArxHT;AAAA,EAsxHL,SAtxHK;AAAA,EAsxHM,MAtxHN;AAAA,EAuxHL,SAvxHK;AAAA,EAuxHM,MAvxHN;AAAA,EAwxHL,iBAxxHK;AAAA,EAwxHc,MAxxHd;AAAA,EAyxHL,iBAzxHK;AAAA,EAyxHc,MAzxHd;AAAA,EA0xHL,gBA1xHK;AAAA,EA0xHa,MA1xHb;AAAA,EA2xHL,YA3xHK;AAAA,EA2xHS,MA3xHT;AAAA,EA4xHL,YA5xHK;AAAA,EA4xHS,MA5xHT;AAAA,EA6xHL,eA7xHK;AAAA,EA6xHY,MA7xHZ;AAAA,EA8xHL,qBA9xHK;AAAA,EA8xHkB,MA9xHlB;AAAA,EA+xHL,oBA/xHK;AAAA,EA+xHiB,MA/xHjB;AAAA,EAgyHL,gBAhyHK;AAAA,EAgyHa,MAhyHb;AAAA,EAiyHL,OAjyHK;AAAA,EAiyHI,MAjyHJ;AAAA,EAkyHL,WAlyHK;AAAA,EAkyHQ,MAlyHR;AAAA,EAmyHL,SAnyHK;AAAA,EAmyHM,MAnyHN;AAAA,EAoyHL,QApyHK;AAAA,EAoyHK,MApyHL;AAAA,EAqyHL,SAryHK;AAAA,EAqyHM,MAryHN;AAAA,EAsyHL,gBAtyHK;AAAA,EAsyHa,MAtyHb;AAAA,EAuyHL,SAvyHK;AAAA,EAuyHM,MAvyHN;AAAA,EAwyHL,iBAxyHK;AAAA,EAwyHc,MAxyHd;AAAA,EAyyHL,sBAzyHK;AAAA,EAyyHmB,MAzyHnB;AAAA,EA0yHL,cA1yHK;AAAA,EA0yHW,MA1yHX;AAAA,EA2yHL,cA3yHK;AAAA,EA2yHW,MA3yHX;AAAA,EA4yHL,gBA5yHK;AAAA,EA4yHa,MA5yHb;AAAA,EA6yHL,WA7yHK;AAAA,EA6yHQ,MA7yHR;AAAA,EA8yHL,aA9yHK;AAAA,EA8yHU,MA9yHV;AAAA,EA+yHL,OA/yHK;AAAA,EA+yHI,MA/yHJ;AAAA,EAgzHL,gBAhzHK;AAAA,EAgzHa,MAhzHb;AAAA,EAizHL,gBAjzHK;AAAA,EAizHa,MAjzHb;AAAA,EAkzHL,gBAlzHK;AAAA,EAkzHa,MAlzHb;AAAA,EAmzHL,yBAnzHK;AAAA,EAmzHsB,MAnzHtB;AAAA,EAozHL,mBApzHK;AAAA,EAozHgB,MApzHhB;AAAA,EAqzHL,yBArzHK;AAAA,EAqzHsB,MArzHtB;AAAA,EAszHL,QAtzHK;AAAA,EAszHK,MAtzHL;AAAA,EAuzHL,aAvzHK;AAAA,EAuzHU,MAvzHV;AAAA,EAwzHL,aAxzHK;AAAA,EAwzHU,MAxzHV;AAAA,EAyzHL,WAzzHK;AAAA,EAyzHQ,MAzzHR;AAAA,EA0zHL,QA1zHK;AAAA,EA0zHK,MA1zHL;AAAA,EA2zHL,YA3zHK;AAAA,EA2zHS,MA3zHT;AAAA,EA4zHL,YA5zHK;AAAA,EA4zHS,MA5zHT;AAAA,EA6zHL,iBA7zHK;AAAA,EA6zHc,MA7zHd;AAAA,EA8zHL,oBA9zHK;AAAA,EA8zHiB,MA9zHjB;AAAA,EA+zHL,iBA/zHK;AAAA,EA+zHc,MA/zHd;AAAA,EAg0HL,qBAh0HK;AAAA,EAg0HkB,MAh0HlB;AAAA,EAi0HL,mBAj0HK;AAAA,EAi0HgB,MAj0HhB;AAAA,EAk0HL,gBAl0HK;AAAA,EAk0Ha,MAl0Hb;AAAA,EAm0HL,oBAn0HK;AAAA,EAm0HiB,MAn0HjB;AAAA,EAo0HL,GAp0HK;AAAA,EAo0HA,MAp0HA;AAAA,EAq0HL,QAr0HK;AAAA,EAq0HK,MAr0HL;AAAA,EAs0HL,YAt0HK;AAAA,EAs0HS,MAt0HT;AAAA,EAu0HL,YAv0HK;AAAA,EAu0HS,MAv0HT;AAAA,EAw0HL,YAx0HK;AAAA,EAw0HS,MAx0HT;AAAA,EAy0HL,KAz0HK;AAAA,EAy0HE,MAz0HF;AAAA,EA00HL,WA10HK;AAAA,EA00HQ,MA10HR;AAAA,EA20HL,aA30HK;AAAA,EA20HU,MA30HV;AAAA,EA40HL,iBA50HK;AAAA,EA40Hc,MA50Hd;AAAA,EA60HL,WA70HK;AAAA,EA60HQ,MA70HR;AAAA,EA80HL,UA90HK;AAAA,EA80HO,MA90HP;AAAA,EA+0HL,gBA/0HK;AAAA,EA+0Ha,MA/0Hb;AAAA,EAg1HL,cAh1HK;AAAA,EAg1HW,MAh1HX;AAAA,EAi1HL,cAj1HK;AAAA,EAi1HW,MAj1HX;AAAA,EAk1HL,SAl1HK;AAAA,EAk1HM,MAl1HN;AAAA,EAm1HL,WAn1HK;AAAA,EAm1HQ,MAn1HR;AAAA,EAo1HL,YAp1HK;AAAA,EAo1HS,MAp1HT;AAAA,EAq1HL,WAr1HK;AAAA,EAq1HQ,MAr1HR;AAAA,EAs1HL,gBAt1HK;AAAA,EAs1Ha,MAt1Hb;AAAA,EAu1HL,kBAv1HK;AAAA,EAu1He,MAv1Hf;AAAA,EAw1HL,iBAx1HK;AAAA,EAw1Hc,MAx1Hd;AAAA,EAy1HL,YAz1HK;AAAA,EAy1HS,MAz1HT;AAAA,EA01HL,OA11HK;AAAA,EA01HI,MA11HJ;AAAA,EA21HL,aA31HK;AAAA,EA21HU,MA31HV;AAAA,EA41HL,sBA51HK;AAAA,EA41HmB,MA51HnB;AAAA,EA61HL,sBA71HK;AAAA,EA61HmB,MA71HnB;AAAA,EA81HL,oBA91HK;AAAA,EA81HiB,MA91HjB;AAAA,EA+1HL,iBA/1HK;AAAA,EA+1Hc,MA/1Hd;AAAA,EAg2HL,aAh2HK;AAAA,EAg2HU,MAh2HV;AAAA,EAi2HL,OAj2HK;AAAA,EAi2HI,MAj2HJ;AAAA,EAk2HL,YAl2HK;AAAA,EAk2HS,MAl2HT;AAAA,EAm2HL,eAn2HK;AAAA,EAm2HY,MAn2HZ;AAAA,EAo2HL,YAp2HK;AAAA,EAo2HS,MAp2HT;AAAA,EAq2HL,gBAr2HK;AAAA,EAq2Ha,MAr2Hb;AAAA,EAs2HL,gBAt2HK;AAAA,EAs2Ha,MAt2Hb;AAAA,EAu2HL,aAv2HK;AAAA,EAu2HU,MAv2HV;AAAA,EAw2HL,iBAx2HK;AAAA,EAw2Hc,MAx2Hd;AAAA,EAy2HL,YAz2HK;AAAA,EAy2HS,MAz2HT;AAAA,EA02HL,YA12HK;AAAA,EA02HS,MA12HT;AAAA,EA22HL,yBA32HK;AAAA,EA22HsB,MA32HtB;AAAA,EA42HL,yBA52HK;AAAA,EA42HsB,MA52HtB;AAAA,EA62HL,gBA72HK;AAAA,EA62Ha,MA72Hb;AAAA,EA82HL,yBA92HK;AAAA,EA82HsB,MA92HtB;AAAA,EA+2HL,YA/2HK;AAAA,EA+2HS,MA/2HT;AAAA,EAg3HL,QAh3HK;AAAA,EAg3HK,MAh3HL;AAAA,EAi3HL,QAj3HK;AAAA,EAi3HK,MAj3HL;AAAA,EAk3HL,SAl3HK;AAAA,EAk3HM,MAl3HN;AAAA,EAm3HL,YAn3HK;AAAA,EAm3HS,MAn3HT;AAAA,EAo3HL,YAp3HK;AAAA,EAo3HS,MAp3HT;AAAA,EAq3HL,GAr3HK;AAAA,EAq3HA,MAr3HA;AAAA,EAs3HL,QAt3HK;AAAA,EAs3HK,MAt3HL;AAAA,EAu3HL,WAv3HK;AAAA,EAu3HQ,MAv3HR;AAAA,EAw3HL,YAx3HK;AAAA,EAw3HS,MAx3HT;AAAA,EAy3HL,YAz3HK;AAAA,EAy3HS,MAz3HT;AAAA,EA03HL,qBA13HK;AAAA,EA03HkB,MA13HlB;AAAA,EA23HL,UA33HK;AAAA,EA23HO,MA33HP;AAAA,EA43HL,iBA53HK;AAAA,EA43Hc,MA53Hd;AAAA,EA63HL,iBA73HK;AAAA,EA63Hc,MA73Hd;AAAA,EA83HL,aA93HK;AAAA,EA83HU,MA93HV;AAAA,EA+3HL,UA/3HK;AAAA,EA+3HO,MA/3HP;AAAA,EAg4HL,wBAh4HK;AAAA,EAg4HqB,MAh4HrB;AAAA,EAi4HL,WAj4HK;AAAA,EAi4HQ,MAj4HR;AAAA,EAk4HL,gBAl4HK;AAAA,EAk4Ha,MAl4Hb;AAAA,EAm4HL,qBAn4HK;AAAA,EAm4HkB,MAn4HlB;AAAA,EAo4HL,0BAp4HK;AAAA,EAo4HuB,MAp4HvB;AAAA,EAq4HL,UAr4HK;AAAA,EAq4HO,MAr4HP;AAAA,EAs4HL,SAt4HK;AAAA,EAs4HM,MAt4HN;AAAA,EAu4HL,aAv4HK;AAAA,EAu4HU,MAv4HV;AAAA,EAw4HL,WAx4HK;AAAA,EAw4HQ,MAx4HR;AAAA,EAy4HL,YAz4HK;AAAA,EAy4HS,MAz4HT;AAAA,EA04HL,WA14HK;AAAA,EA04HQ,MA14HR;AAAA,EA24HL,YA34HK;AAAA,EA24HS,MA34HT;AAAA,EA44HL,aA54HK;AAAA,EA44HU,MA54HV;AAAA,EA64HL,YA74HK;AAAA,EA64HS,MA74HT;AAAA,EA84HL,UA94HK;AAAA,EA84HO,MA94HP;AAAA,EA+4HL,WA/4HK;AAAA,EA+4HQ,MA/4HR;AAAA,EAg5HL,QAh5HK;AAAA,EAg5HK,MAh5HL;AAAA,EAi5HL,aAj5HK;AAAA,EAi5HU,MAj5HV;AAAA,EAk5HL,aAl5HK;AAAA,EAk5HU,MAl5HV;AAAA,EAm5HL,oBAn5HK;AAAA,EAm5HiB,MAn5HjB;AAAA,EAo5HL,wBAp5HK;AAAA,EAo5HqB,MAp5HrB;AAAA,EAq5HL,gCAr5HK;AAAA,EAq5H6B,MAr5H7B;AAAA,EAs5HL,yBAt5HK;AAAA,EAs5HsB,MAt5HtB;AAAA,EAu5HL,iCAv5HK;AAAA,EAu5H8B,MAv5H9B;AAAA,EAw5HL,cAx5HK;AAAA,EAw5HW,MAx5HX;AAAA,EAy5HL,yCAz5HK;AAAA,EAy5HsC,MAz5HtC;AAAA,EA05HL,gCA15HK;AAAA,EA05H6B,MA15H7B;AAAA,EA25HL,2BA35HK;AAAA,EA25HwB,MA35HxB;AAAA,EA45HL,gCA55HK;AAAA,EA45H6B,MA55H7B;AAAA,EA65HL,2BA75HK;AAAA,EA65HwB,MA75HxB;AAAA,EA85HL,4BA95HK;AAAA,EA85HyB,MA95HzB;AAAA,EA+5HL,6BA/5HK;AAAA,EA+5H0B,MA/5H1B;AAAA,EAg6HL,iCAh6HK;AAAA,EAg6H8B,MAh6H9B;AAAA,EAi6HL,4BAj6HK;AAAA,EAi6HyB,MAj6HzB;AAAA,EAk6HL,kBAl6HK;AAAA,EAk6He,MAl6Hf;AAAA,EAm6HL,kBAn6HK;AAAA,EAm6He,MAn6Hf;AAAA,EAo6HL,aAp6HK;AAAA,EAo6HU,MAp6HV;AAAA,EAq6HL,WAr6HK;AAAA,EAq6HQ,MAr6HR;AAAA,EAs6HL,gBAt6HK;AAAA,EAs6Ha,MAt6Hb;AAAA,EAu6HL,+BAv6HK;AAAA,EAu6H4B,MAv6H5B;AAAA,EAw6HL,gCAx6HK;AAAA,EAw6H6B,MAx6H7B;AAAA,EAy6HL,8BAz6HK;AAAA,EAy6H2B,MAz6H3B;AAAA,EA06HL,yBA16HK;AAAA,EA06HsB,MA16HtB;AAAA,EA26HL,YA36HK;AAAA,EA26HS,MA36HT;AAAA,EA46HL,YA56HK;AAAA,EA46HS,MA56HT;AAAA,EA66HL,UA76HK;AAAA,EA66HO,MA76HP;AAAA,EA86HL,YA96HK;AAAA,EA86HS,MA96HT;AAAA,EA+6HL,YA/6HK;AAAA,EA+6HS,MA/6HT;AAAA,EAg7HL,YAh7HK;AAAA,EAg7HS,MAh7HT;AAAA,EAi7HL,qBAj7HK;AAAA,EAi7HkB,MAj7HlB;AAAA,EAk7HL,KAl7HK;AAAA,EAk7HE,MAl7HF;AAAA,EAm7HL,cAn7HK;AAAA,EAm7HW,MAn7HX;AAAA,EAo7HL,YAp7HK;AAAA,EAo7HS,MAp7HT;AAAA,EAq7HL,QAr7HK;AAAA,EAq7HK,MAr7HL;AAAA,EAs7HL,OAt7HK;AAAA,EAs7HI,MAt7HJ;AAAA,EAu7HL,WAv7HK;AAAA,EAu7HQ,MAv7HR;AAAA,EAw7HL,SAx7HK;AAAA,EAw7HM,MAx7HN;AAAA,EAy7HL,MAz7HK;AAAA,EAy7HG,MAz7HH;AAAA,EA07HL,GA17HK;AAAA,EA07HA,MA17HA;AAAA,EA27HL,WA37HK;AAAA,EA27HQ,MA37HR;AAAA,EA47HL,WA57HK;AAAA,EA47HQ,MA57HR;AAAA,EA67HL,SA77HK;AAAA,EA67HM,MA77HN;AAAA,EA87HL,WA97HK;AAAA,EA87HQ,MA97HR;AAAA,EA+7HL,YA/7HK;AAAA,EA+7HS,MA/7HT;AAAA,EAg8HL,aAh8HK;AAAA,EAg8HU,MAh8HV;AAAA,EAi8HL,IAj8HK;AAAA,EAi8HC,MAj8HD;AAAA,EAk8HL,YAl8HK;AAAA,EAk8HS,MAl8HT;AAAA,EAm8HL,QAn8HK;AAAA,EAm8HK,MAn8HL;AAAA,EAo8HL,WAp8HK;AAAA,EAo8HQ,MAp8HR;AAAA,EAq8HL,GAr8HK;AAAA,EAq8HA,MAr8HA;AAAA,EAs8HL,aAt8HK;AAAA,EAs8HU,MAt8HV;AAAA,EAu8HL,WAv8HK;AAAA,EAu8HQ,MAv8HR;AAAA,EAw8HL,QAx8HK;AAAA,EAw8HK,MAx8HL;AAAA,EAy8HL,QAz8HK;AAAA,EAy8HK,MAz8HL;AAAA,EA08HL,WA18HK;AAAA,EA08HQ,MA18HR;AAAA,EA28HL,YA38HK;AAAA,EA28HS,MA38HT;AAAA,EA48HL,YA58HK;AAAA,EA48HS,MA58HT;AAAA,EA68HL,YA78HK;AAAA,EA68HS,MA78HT;AAAA,EA88HL,YA98HK;AAAA,EA88HS,MA98HT;AAAA,EA+8HL,qBA/8HK;AAAA,EA+8HkB,MA/8HlB;AAAA,EAg9HL,UAh9HK;AAAA,EAg9HO,MAh9HP;AAAA,EAi9HL,cAj9HK;AAAA,EAi9HW,MAj9HX;AAAA,EAk9HL,iBAl9HK;AAAA,EAk9Hc,MAl9Hd;AAAA,EAm9HL,iBAn9HK;AAAA,EAm9Hc,MAn9Hd;AAAA,EAo9HL,0BAp9HK;AAAA,EAo9HuB,MAp9HvB;AAAA,EAq9HL,aAr9HK;AAAA,EAq9HU,MAr9HV;AAAA,EAs9HL,SAt9HK;AAAA,EAs9HM,MAt9HN;AAAA,EAu9HL,aAv9HK;AAAA,EAu9HU,MAv9HV;AAAA,EAw9HL,WAx9HK;AAAA,EAw9HQ,MAx9HR;AAAA,EAy9HL,YAz9HK;AAAA,EAy9HS,MAz9HT;AAAA,EA09HL,WA19HK;AAAA,EA09HQ,MA19HR;AAAA,EA29HL,WA39HK;AAAA,EA29HQ,MA39HR;AAAA,EA49HL,iBA59HK;AAAA,EA49Hc,MA59Hd;AAAA,EA69HL,sBA79HK;AAAA,EA69HmB,MA79HnB;AAAA,EA89HL,gBA99HK;AAAA,EA89Ha,MA99Hb;AAAA,EA+9HL,qBA/9HK;AAAA,EA+9HkB,MA/9HlB;AAAA,EAg+HL,0BAh+HK;AAAA,EAg+HuB,MAh+HvB;AAAA,EAi+HL,4BAj+HK;AAAA,EAi+HyB,MAj+HzB;AAAA,EAk+HL,2BAl+HK;AAAA,EAk+HwB,MAl+HxB;AAAA,EAm+HL,kBAn+HK;AAAA,EAm+He,MAn+Hf;AAAA,EAo+HL,iBAp+HK;AAAA,EAo+Hc,MAp+Hd;AAAA,EAq+HL,sBAr+HK;AAAA,EAq+HmB,MAr+HnB;AAAA,EAs+HL,uBAt+HK;AAAA,EAs+HoB,MAt+HpB;AAAA,EAu+HL,oBAv+HK;AAAA,EAu+HiB,MAv+HjB;AAAA,EAw+HL,yBAx+HK;AAAA,EAw+HsB,MAx+HtB;AAAA,EAy+HL,UAz+HK;AAAA,EAy+HO,MAz+HP;AAAA,EA0+HL,KA1+HK;AAAA,EA0+HE,MA1+HF;AAAA,EA2+HL,cA3+HK;AAAA,EA2+HW,MA3+HX;AAAA,EA4+HL,WA5+HK;AAAA,EA4+HQ,MA5+HR;AAAA,EA6+HL,mBA7+HK;AAAA,EA6+HgB,MA7+HhB;AAAA,EA8+HL,oBA9+HK;AAAA,EA8+HiB,MA9+HjB;AAAA,EA++HL,wBA/+HK;AAAA,EA++HqB,MA/+HrB;AAAA,EAg/HL,cAh/HK;AAAA,EAg/HW,MAh/HX;AAAA,EAi/HL,sBAj/HK;AAAA,EAi/HmB,MAj/HnB;AAAA,EAk/HL,gBAl/HK;AAAA,EAk/Ha,MAl/Hb;AAAA,EAm/HL,uBAn/HK;AAAA,EAm/HoB,MAn/HpB;AAAA,EAo/HL,oBAp/HK;AAAA,EAo/HiB,MAp/HjB;AAAA,EAq/HL,aAr/HK;AAAA,EAq/HU,MAr/HV;AAAA,EAs/HL,QAt/HK;AAAA,EAs/HK,MAt/HL;AAAA,EAu/HL,OAv/HK;AAAA,EAu/HI,MAv/HJ;AAAA,EAw/HL,YAx/HK;AAAA,EAw/HS,MAx/HT;AAAA,EAy/HL,YAz/HK;AAAA,EAy/HS,MAz/HT;AAAA,EA0/HL,YA1/HK;AAAA,EA0/HS,MA1/HT;AAAA,EA2/HL,UA3/HK;AAAA,EA2/HO,MA3/HP;AAAA,EA4/HL,SA5/HK;AAAA,EA4/HM,MA5/HN;AAAA,EA6/HL,cA7/HK;AAAA,EA6/HW,MA7/HX;AAAA,EA8/HL,YA9/HK;AAAA,EA8/HS,MA9/HT;AAAA,EA+/HL,KA//HK;AAAA,EA+/HE,MA//HF;AAAA,EAggIL,WAhgIK;AAAA,EAggIQ,MAhgIR;AAAA,EAigIL,iBAjgIK;AAAA,EAigIc,MAjgId;AAAA,EAkgIL,WAlgIK;AAAA,EAkgIQ,MAlgIR;AAAA,EAmgIL,cAngIK;AAAA,EAmgIW,MAngIX;AAAA,EAogIL,mBApgIK;AAAA,EAogIgB,MApgIhB;AAAA,EAqgIL,YArgIK;AAAA,EAqgIS,MArgIT;AAAA,EAsgIL,WAtgIK;AAAA,EAsgIQ,MAtgIR;AAAA,EAugIL,YAvgIK;AAAA,EAugIS,MAvgIT;AAAA,EAwgIL,qBAxgIK;AAAA,EAwgIkB,MAxgIlB;AAAA,EAygIL,UAzgIK;AAAA,EAygIO,MAzgIP;AAAA,EA0gIL,iBA1gIK;AAAA,EA0gIc,MA1gId;AAAA,EA2gIL,iBA3gIK;AAAA,EA2gIc,MA3gId;AAAA,EA4gIL,0BA5gIK;AAAA,EA4gIuB,MA5gIvB;AAAA,EA6gIL,UA7gIK;AAAA,EA6gIO,MA7gIP;AAAA,EA8gIL,aA9gIK;AAAA,EA8gIU,MA9gIV;AAAA,EA+gIL,YA/gIK;AAAA,EA+gIS,MA/gIT;AAAA,EAghIL,WAhhIK;AAAA,EAghIQ,MAhhIR;AAAA,EAihIL,YAjhIK;AAAA,EAihIS,MAjhIT;AAAA,EAkhIL,QAlhIK;AAAA,EAkhIK,MAlhIL;AAAA,EAmhIL,eAnhIK;AAAA,EAmhIY,MAnhIZ;AAAA,EAohIL,uBAphIK;AAAA,EAohIoB,MAphIpB;AAAA,EAqhIL,IArhIK;AAAA,EAqhIC,MArhID;AAAA,EAshIL,OAthIK;AAAA,EAshII,MAthIJ;AAAA,EAuhIL,WAvhIK;AAAA,EAuhIQ,MAvhIR;AAAA,EAwhIL,QAxhIK;AAAA,EAwhIK,MAxhIL;AAAA,EAyhIL,SAzhIK;AAAA,EAyhIM,MAzhIN;AAAA,EA0hIL,YA1hIK;AAAA,EA0hIS,MA1hIT;AAAA,EA2hIL,WA3hIK;AAAA,EA2hIQ,MA3hIR;AAAA,EA4hIL,YA5hIK;AAAA,EA4hIS,MA5hIT;AAAA,EA6hIL,qBA7hIK;AAAA,EA6hIkB,MA7hIlB;AAAA,EA8hIL,UA9hIK;AAAA,EA8hIO,MA9hIP;AAAA,EA+hIL,gBA/hIK;AAAA,EA+hIa,MA/hIb;AAAA,EAgiIL,wBAhiIK;AAAA,EAgiIqB,MAhiIrB;AAAA,EAiiIL,mBAjiIK;AAAA,EAiiIgB,MAjiIhB;AAAA,EAkiIL,2BAliIK;AAAA,EAkiIwB,MAliIxB;AAAA,EAmiIL,iBAniIK;AAAA,EAmiIc,MAniId;AAAA,EAoiIL,iBApiIK;AAAA,EAoiIc,MApiId;AAAA,EAqiIL,0BAriIK;AAAA,EAqiIuB,MAriIvB;AAAA,EAsiIL,YAtiIK;AAAA,EAsiIS,MAtiIT;AAAA,EAuiIL,aAviIK;AAAA,EAuiIU,MAviIV;AAAA,EAwiIL,YAxiIK;AAAA,EAwiIS,MAxiIT;AAAA,EAyiIL,SAziIK;AAAA,EAyiIM,MAziIN;AAAA,EA0iIL,GA1iIK;AAAA,EA0iIA,MA1iIA;AAAA,EA2iIL,YA3iIK;AAAA,EA2iIS,MA3iIT;AAAA,EA4iIL,QA5iIK;AAAA,EA4iIK,MA5iIL;AAAA,EA6iIL,QA7iIK;AAAA,EA6iIK,MA7iIL;AAAA,EA8iIL,YA9iIK;AAAA,EA8iIS,MA9iIT;AAAA,EA+iIL,WA/iIK;AAAA,EA+iIQ,MA/iIR;AAAA,EAgjIL,gBAhjIK;AAAA,EAgjIa,MAhjIb;AAAA,EAijIL,kBAjjIK;AAAA,EAijIe,MAjjIf;AAAA,EAkjIL,YAljIK;AAAA,EAkjIS,MAljIT;AAAA,EAmjIL,iBAnjIK;AAAA,EAmjIc,MAnjId;AAAA,EAojIL,YApjIK;AAAA,EAojIS,MApjIT;AAAA,EAqjIL,iBArjIK;AAAA,EAqjIc,MArjId;AAAA,EAsjIL,YAtjIK;AAAA,EAsjIS,MAtjIT;AAAA,EAujIL,kBAvjIK;AAAA,EAujIe,MAvjIf;AAAA,EAwjIL,kBAxjIK;AAAA,EAwjIe,MAxjIf;AAAA,EAyjIL,aAzjIK;AAAA,EAyjIU,MAzjIV;AAAA,EA0jIL,OA1jIK;AAAA,EA0jII,MA1jIJ;AAAA,EA2jIL,aA3jIK;AAAA,EA2jIU,MA3jIV;AAAA,EA4jIL,mBA5jIK;AAAA,EA4jIgB,MA5jIhB;AAAA,EA6jIL,aA7jIK;AAAA,EA6jIU,MA7jIV;AAAA,EA8jIL,WA9jIK;AAAA,EA8jIQ,MA9jIR;AAAA,EA+jIL,QA/jIK;AAAA,EA+jIK,MA/jIL;AAAA,EAgkIL,SAhkIK;AAAA,EAgkIM,MAhkIN;AAAA,EAikIL,aAjkIK;AAAA,EAikIU,MAjkIV;AAAA,EAkkIL,OAlkIK;AAAA,EAkkII,MAlkIJ;AAAA,EAmkIL,MAnkIK;AAAA,EAmkIG,MAnkIH;AAAA,EAokIL,YApkIK;AAAA,EAokIS,MApkIT;AAAA,EAqkIL,WArkIK;AAAA,EAqkIQ,MArkIR;AAAA,EAskIL,YAtkIK;AAAA,EAskIS,MAtkIT;AAAA,EAukIL,qBAvkIK;AAAA,EAukIkB,MAvkIlB;AAAA,EAwkIL,oBAxkIK;AAAA,EAwkIiB,MAxkIjB;AAAA,EAykIL,YAzkIK;AAAA,EAykIS,MAzkIT;AAAA,EA0kIL,YA1kIK;AAAA,EA0kIS,MA1kIT;AAAA,EA2kIL,MA3kIK;AAAA,EA2kIG,MA3kIH;AAAA,EA4kIL,YA5kIK;AAAA,EA4kIS,MA5kIT;AAAA,EA6kIL,aA7kIK;AAAA,EA6kIU,MA7kIV;AAAA,EA8kIL,UA9kIK;AAAA,EA8kIO,MA9kIP;AAAA,EA+kIL,cA/kIK;AAAA,EA+kIW,MA/kIX;AAAA,EAglIL,cAhlIK;AAAA,EAglIW,MAhlIX;AAAA,EAilIL,gBAjlIK;AAAA,EAilIa,MAjlIb;AAAA,EAklIL,cAllIK;AAAA,EAklIW,MAllIX;AAAA,EAmlIL,eAnlIK;AAAA,EAmlIY,MAnlIZ;AAAA,EAolIL,cAplIK;AAAA,EAolIW,MAplIX;AAAA,EAqlIL,aArlIK;AAAA,EAqlIU,MArlIV;AAAA,EAslIL,cAtlIK;AAAA,EAslIW,MAtlIX;AAAA,EAulIL,UAvlIK;AAAA,EAulIO,MAvlIP;AAAA,EAwlIL,iBAxlIK;AAAA,EAwlIc,MAxlId;AAAA,EAylIL,oBAzlIK;AAAA,EAylIiB,MAzlIjB;AAAA,EA0lIL,gBA1lIK;AAAA,EA0lIa,MA1lIb;AAAA,EA2lIL,MA3lIK;AAAA,EA2lIG,MA3lIH;AAAA,EA4lIL,YA5lIK;AAAA,EA4lIS,MA5lIT;AAAA,EA6lIL,aA7lIK;AAAA,EA6lIU,MA7lIV;AAAA,EA8lIL,kBA9lIK;AAAA,EA8lIe,MA9lIf;AAAA,EA+lIL,aA/lIK;AAAA,EA+lIU,MA/lIV;AAAA,EAgmIL,sBAhmIK;AAAA,EAgmImB,MAhmInB;AAAA,EAimIL,qBAjmIK;AAAA,EAimIkB,MAjmIlB;AAAA,EAkmIL,YAlmIK;AAAA,EAkmIS,MAlmIT;AAAA,EAmmIL,YAnmIK;AAAA,EAmmIS,MAnmIT;AAAA,EAomIL,aApmIK;AAAA,EAomIU,MApmIV;AAAA,EAqmIL,YArmIK;AAAA,EAqmIS,MArmIT;AAAA,EAsmIL,YAtmIK;AAAA,EAsmIS,MAtmIT;AAAA,EAumIL,YAvmIK;AAAA,EAumIS,MAvmIT;AAAA,EAwmIL,YAxmIK;AAAA,EAwmIS,MAxmIT;AAAA,EAymIL,QAzmIK;AAAA,EAymIK,MAzmIL;AAAA,EA0mIL,gBA1mIK;AAAA,EA0mIa,MA1mIb;AAAA,EA2mIL,SA3mIK;AAAA,EA2mIM,MA3mIN;AAAA,EA4mIL,YA5mIK;AAAA,EA4mIS,MA5mIT;AAAA,EA6mIL,YA7mIK;AAAA,EA6mIS,MA7mIT;AAAA,EA8mIL,SA9mIK;AAAA,EA8mIM,MA9mIN;AAAA,EAinIL,mBAjnIK;AAAA,EAinIgB,MAjnIhB;AAAA,EAknIL,mBAlnIK;AAAA,EAknIgB,MAlnIhB;AAAA,EAmnIL,oBAnnIK;AAAA,EAmnIiB,MAnnIjB;AAAA,EAonIL,oBApnIK;AAAA,EAonIiB,MApnIjB;AAAA,EAqnIL,oBArnIK;AAAA,EAqnIiB,MArnIjB;AAAA,EAsnIL,oBAtnIK;AAAA,EAsnIiB,MAtnIjB;AAAA,EAunIL,qBAvnIK;AAAA,EAunIkB,MAvnIlB;AAAA,EAwnIL,qBAxnIK;AAAA,EAwnIkB,MAxnIlB;AAAA,EAynIL,eAznIK;AAAA,EAynIY,MAznIZ;AAAA,EA0nIL,gBA1nIK;AAAA,EA0nIa,MA1nIb;AAAA,EA2nIL,kBA3nIK;AAAA,EA2nIe,MA3nIf;AAAA,EA4nIL,kBA5nIK;AAAA,EA4nIe,MA5nIf;AAAA,EA6nIL,gBA7nIK;AAAA,EA6nIa,MA7nIb;AAAA,EA8nIL,gBA9nIK;AAAA,EA8nIa,MA9nIb;AAAA,EA+nIL,mBA/nIK;AAAA,EA+nIgB,MA/nIhB;AAAA,EAgoIL,mBAhoIK;AAAA,EAgoIgB,MAhoIhB;AAAA,EAioIL,gBAjoIK;AAAA,EAioIa,MAjoIb;AAAA,EAkoIL,gBAloIK;AAAA,EAkoIa,MAloIb;AAAA,EAmoIL,cAnoIK;AAAA,EAmoIW,MAnoIX;AAAA,EAooIL,cApoIK;AAAA,EAooIW,MApoIX;AAAA,EAqoIL,eAroIK;AAAA,EAqoIY,MAroIZ;AAAA,EAsoIL,eAtoIK;AAAA,EAsoIY,MAtoIZ;AAAA,EAuoIL,QAvoIK;AAAA,EAuoIK,MAvoIL;AAAA,EAwoIL,mBAxoIK;AAAA,EAwoIgB,MAxoIhB;AAAA,EAyoIL,oBAzoIK;AAAA,EAyoIiB,MAzoIjB;AAAA,EA0oIL,iBA1oIK;AAAA,EA0oIc,MA1oId;AAAA,EA2oIL,kBA3oIK;AAAA,EA2oIe,MA3oIf;AAAA,EA4oIL,cA5oIK;AAAA,EA4oIW,MA5oIX;AAAA,EA6oIL,cA7oIK;AAAA,EA6oIW,MA7oIX;AAAA,EA8oIL,eA9oIK;AAAA,EA8oIY,MA9oIZ;AAAA,EA+oIL,eA/oIK;AAAA,EA+oIY,MA/oIZ;AAAA,EAgpIL,eAhpIK;AAAA,EAgpIY,MAhpIZ;AAAA,EAipIL,eAjpIK;AAAA,EAipIY,MAjpIZ;AAAA,EAkpIL,gBAlpIK;AAAA,EAkpIa,MAlpIb;AAAA,EAmpIL,gBAnpIK;AAAA,EAmpIa,MAnpIb;AAAA,EAopIL,gBAppIK;AAAA,EAopIa,MAppIb;AAAA,EAqpIL,gBArpIK;AAAA,EAqpIa,MArpIb;AAAA,EAspIL,iBAtpIK;AAAA,EAspIc,MAtpId;AAAA,EAupIL,iBAvpIK;AAAA,EAupIc,MAvpId;AAAA,EAwpIL,iBAxpIK;AAAA,EAwpIc,MAxpId;AAAA,EAypIL,iBAzpIK;AAAA,EAypIc,MAzpId;AAAA,EA0pIL,kBA1pIK;AAAA,EA0pIe,MA1pIf;AAAA,EA2pIL,kBA3pIK;AAAA,EA2pIe,MA3pIf;AAAA,EA4pIL,gBA5pIK;AAAA,EA4pIa,MA5pIb;AAAA,EA6pIL,gBA7pIK;AAAA,EA6pIa,MA7pIb;AAAA,EA8pIL,iBA9pIK;AAAA,EA8pIc,MA9pId;AAAA,EA+pIL,iBA/pIK;AAAA,EA+pIc,MA/pId;AAAA,EAgqIL,iBAhqIK;AAAA,EAgqIc,MAhqId;AAAA,EAiqIL,iBAjqIK;AAAA,EAiqIc,MAjqId;AAAA,EAkqIL,kBAlqIK;AAAA,EAkqIe,MAlqIf;AAAA,EAmqIL,kBAnqIK;AAAA,EAmqIe,MAnqIf;AAAA,EAoqIL,kBApqIK;AAAA,EAoqIe,MApqIf;AAAA,EAqqIL,eArqIK;AAAA,EAqqIY,MArqIZ;AAAA,EAsqIL,uBAtqIK;AAAA,EAsqIoB,MAtqIpB;AAAA,EAuqIL,oBAvqIK;AAAA,EAuqIiB,MAvqIjB;AAAA,EAwqIL,mBAxqIK;AAAA,EAwqIgB,MAxqIhB;AAAA,EAyqIL,gBAzqIK;AAAA,EAyqIa,MAzqIb;AAAA,EA0qIL,qBA1qIK;AAAA,EA0qIkB,MA1qIlB;AAAA,EA2qIL,kBA3qIK;AAAA,EA2qIe,MA3qIf;AAAA,EA4qIL,kBA5qIK;AAAA,EA4qIe,MA5qIf;AAAA,EA6qIL,eA7qIK;AAAA,EA6qIY,MA7qIZ;AAAA,EA8qIL,cA9qIK;AAAA,EA8qIW,MA9qIX;AAAA,EA+qIL,cA/qIK;AAAA,EA+qIW,MA/qIX;AAAA,EAgrIL,eAhrIK;AAAA,EAgrIY,MAhrIZ;AAAA,EAirIL,eAjrIK;AAAA,EAirIY,MAjrIZ;AAAA,EAkrIL,eAlrIK;AAAA,EAkrIY,MAlrIZ;AAAA,EAmrIL,eAnrIK;AAAA,EAmrIY,MAnrIZ;AAAA,EAorIL,gBAprIK;AAAA,EAorIa,MAprIb;AAAA,EAqrIL,gBArrIK;AAAA,EAqrIa,MArrIb;AAAA,EAsrIL,SAtrIK;AAAA,EAsrIM,MAtrIN;AAAA,EAurIL,UAvrIK;AAAA,EAurIO,MAvrIP;AAAA,EAwrIL,WAxrIK;AAAA,EAwrIQ,MAxrIR;AAAA,EAyrIL,UAzrIK;AAAA,EAyrIO,MAzrIP;AAAA,EA0rIL,iBA1rIK;AAAA,EA0rIc,MA1rId;AAAA,EA2rIL,cA3rIK;AAAA,EA2rIW,MA3rIX;AAAA,EA4rIL,qBA5rIK;AAAA,EA4rIkB,MA5rIlB;AAAA,EA6rIL,kBA7rIK;AAAA,EA6rIe,MA7rIf;AAAA,EA8rIL,mBA9rIK;AAAA,EA8rIgB,MA9rIhB;AAAA,EA+rIL,gBA/rIK;AAAA,EA+rIa,MA/rIb;AAAA,EAgsIL,kBAhsIK;AAAA,EAgsIe,MAhsIf;AAAA,EAisIL,eAjsIK;AAAA,EAisIY,MAjsIZ;AAAA,EAksIL,cAlsIK;AAAA,EAksIW,MAlsIX;AAAA,EAmsIL,cAnsIK;AAAA,EAmsIW,MAnsIX;AAAA,EAosIL,eApsIK;AAAA,EAosIY,MApsIZ;AAAA,EAqsIL,eArsIK;AAAA,EAqsIY,MArsIZ;AAAA,EAssIL,eAtsIK;AAAA,EAssIY,MAtsIZ;AAAA,EAusIL,eAvsIK;AAAA,EAusIY,MAvsIZ;AAAA,EAwsIL,gBAxsIK;AAAA,EAwsIa,MAxsIb;AAAA,EAysIL,gBAzsIK;AAAA,EAysIa,MAzsIb;AAAA,EA0sIL,OA1sIK;AAAA,EA0sII,MA1sIJ;AAAA,EA2sIL,gBA3sIK;AAAA,EA2sIa,MA3sIb;AAAA,EA4sIL,aA5sIK;AAAA,EA4sIU,MA5sIV;AAAA,EA6sIL,YA7sIK;AAAA,EA6sIS,MA7sIT;AAAA,EA8sIL,YA9sIK;AAAA,EA8sIS,MA9sIT;AAAA,EA+sIL,aA/sIK;AAAA,EA+sIU,MA/sIV;AAAA,EAgtIL,aAhtIK;AAAA,EAgtIU,MAhtIV;AAAA,EAitIL,WAjtIK;AAAA,EAitIQ,MAjtIR;AAAA,EAktIL,WAltIK;AAAA,EAktIQ,MAltIR;AAAA,EAmtIL,eAntIK;AAAA,EAmtIY,MAntIZ;AAAA,EAotIL,UAptIK;AAAA,EAotIO,MAptIP;AAAA,EAqtIL,UArtIK;AAAA,EAqtIO,MArtIP;AAAA,EAstIL,WAttIK;AAAA,EAstIQ,MAttIR;AAAA,EAutIL,WAvtIK;AAAA,EAutIQ,MAvtIR;AAAA,EAwtIL,kBAxtIK;AAAA,EAwtIe,MAxtIf;AAAA,EAytIL,eAztIK;AAAA,EAytIY,MAztIZ;AAAA,EA0tIL,WA1tIK;AAAA,EA0tIQ,MA1tIR;AAAA,EA2tIL,YA3tIK;AAAA,EA2tIS,MA3tIT;AAAA,EA4tIL,aA5tIK;AAAA,EA4tIU,MA5tIV;AAAA,EA6tIL,cA7tIK;AAAA,EA6tIW,MA7tIX;AAAA,EA8tIL,mBA9tIK;AAAA,EA8tIgB,MA9tIhB;AAAA,EA+tIL,gBA/tIK;AAAA,EA+tIa,MA/tIb;AAAA,EAguIL,gBAhuIK;AAAA,EAguIa,MAhuIb;AAAA,EAiuIL,aAjuIK;AAAA,EAiuIU,MAjuIV;AAAA,EAkuIL,WAluIK;AAAA,EAkuIQ,MAluIR;AAAA,EAmuIL,eAnuIK;AAAA,EAmuIY,MAnuIZ;AAAA,EAouIL,eApuIK;AAAA,EAouIY,MApuIZ;AAAA,EAAP,CAF8D;AAAA,CAAvC,CAAzB,CAlBA;AA4vIA,MAAMgb,wBAAA,GAA2Bhb,0EAAA,CAA2B,YAAY;AAAA,CAEtE,OAAO;AAAA,EACL,OADK;AAAA,EACI,MADJ;AAAA,EAEL,IAFK;AAAA,EAEC,MAFD;AAAA,EAGL,IAHK;AAAA,EAGC,MAHD;AAAA,EAIL,MAJK;AAAA,EAIG,MAJH;AAAA,EAKL,IALK;AAAA,EAKC,MALD;AAAA,EAML,IANK;AAAA,EAMC,MAND;AAAA,EAOL,IAPK;AAAA,EAOC,MAPD;AAAA,EAQL,MARK;AAAA,EAQG,MARH;AAAA,EASL,MATK;AAAA,EASG,MATH;AAAA,EAUL,MAVK;AAAA,EAUG,MAVH;AAAA,EAWL,KAXK;AAAA,EAWE,MAXF;AAAA,EAYL,KAZK;AAAA,EAYE,MAZF;AAAA,EAaL,KAbK;AAAA,EAaE,MAbF;AAAA,EAcL,KAdK;AAAA,EAcE,MAdF;AAAA,EAeL,KAfK;AAAA,EAeE,MAfF;AAAA,EAgBL,KAhBK;AAAA,EAgBE,MAhBF;AAAA,EAiBL,MAjBK;AAAA,EAiBG,MAjBH;AAAA,EAkBL,KAlBK;AAAA,EAkBE,MAlBF;AAAA,EAmBL,KAnBK;AAAA,EAmBE,MAnBF;AAAA,EAoBL,KApBK;AAAA,EAoBE,MApBF;AAAA,EAqBL,KArBK;AAAA,EAqBE,MArBF;AAAA,EAsBL,KAtBK;AAAA,EAsBE,MAtBF;AAAA,EAuBL,KAvBK;AAAA,EAuBE,MAvBF;AAAA,EAwBL,KAxBK;AAAA,EAwBE,MAxBF;AAAA,EAyBL,KAzBK;AAAA,EAyBE,MAzBF;AAAA,EA0BL,KA1BK;AAAA,EA0BE,MA1BF;AAAA,EA2BL,KA3BK;AAAA,EA2BE,MA3BF;AAAA,EA4BL,KA5BK;AAAA,EA4BE,MA5BF;AAAA,EA6BL,KA7BK;AAAA,EA6BE,MA7BF;AAAA,EA8BL,IA9BK;AAAA,EA8BC,MA9BD;AAAA,EA+BL,IA/BK;AAAA,EA+BC,MA/BD;AAAA,EAgCL,IAhCK;AAAA,EAgCC,MAhCD;AAAA,EAiCL,IAjCK;AAAA,EAiCC,MAjCD;AAAA,EAkCL,KAlCK;AAAA,EAkCE,MAlCF;AAAA,EAmCL,KAnCK;AAAA,EAmCE,MAnCF;AAAA,EAoCL,KApCK;AAAA,EAoCE,MApCF;AAAA,EAqCL,KArCK;AAAA,EAqCE,MArCF;AAAA,EAsCL,KAtCK;AAAA,EAsCE,MAtCF;AAAA,EAuCL,KAvCK;AAAA,EAuCE,MAvCF;AAAA,EAwCL,KAxCK;AAAA,EAwCE,MAxCF;AAAA,EAyCL,KAzCK;AAAA,EAyCE,MAzCF;AAAA,EA0CL,KA1CK;AAAA,EA0CE,MA1CF;AAAA,EA2CL,KA3CK;AAAA,EA2CE,MA3CF;AAAA,EA4CL,KA5CK;AAAA,EA4CE,MA5CF;AAAA,EA6CL,KA7CK;AAAA,EA6CE,MA7CF;AAAA,EA8CL,KA9CK;AAAA,EA8CE,MA9CF;AAAA,EA+CL,KA/CK;AAAA,EA+CE,MA/CF;AAAA,EAgDL,KAhDK;AAAA,EAgDE,MAhDF;AAAA,EAiDL,KAjDK;AAAA,EAiDE,MAjDF;AAAA,EAkDL,KAlDK;AAAA,EAkDE,MAlDF;AAAA,EAmDL,KAnDK;AAAA,EAmDE,MAnDF;AAAA,EAoDL,KApDK;AAAA,EAoDE,MApDF;AAAA,EAqDL,KArDK;AAAA,EAqDE,MArDF;AAAA,EAsDL,KAtDK;AAAA,EAsDE,MAtDF;AAAA,EAuDL,KAvDK;AAAA,EAuDE,MAvDF;AAAA,EAwDL,KAxDK;AAAA,EAwDE,MAxDF;AAAA,EAyDL,KAzDK;AAAA,EAyDE,MAzDF;AAAA,EA0DL,KA1DK;AAAA,EA0DE,MA1DF;AAAA,EA2DL,KA3DK;AAAA,EA2DE,MA3DF;AAAA,EA4DL,KA5DK;AAAA,EA4DE,MA5DF;AAAA,EA6DL,KA7DK;AAAA,EA6DE,MA7DF;AAAA,EA8DL,KA9DK;AAAA,EA8DE,MA9DF;AAAA,EA+DL,KA/DK;AAAA,EA+DE,MA/DF;AAAA,EAgEL,KAhEK;AAAA,EAgEE,MAhEF;AAAA,EAiEL,KAjEK;AAAA,EAiEE,MAjEF;AAAA,EAkEL,KAlEK;AAAA,EAkEE,MAlEF;AAAA,EAmEL,KAnEK;AAAA,EAmEE,MAnEF;AAAA,EAoEL,KApEK;AAAA,EAoEE,MApEF;AAAA,EAqEL,KArEK;AAAA,EAqEE,MArEF;AAAA,EAsEL,KAtEK;AAAA,EAsEE,MAtEF;AAAA,EAuEL,KAvEK;AAAA,EAuEE,MAvEF;AAAA,EAwEL,KAxEK;AAAA,EAwEE,MAxEF;AAAA,EAyEL,KAzEK;AAAA,EAyEE,MAzEF;AAAA,EA0EL,KA1EK;AAAA,EA0EE,MA1EF;AAAA,EA2EL,KA3EK;AAAA,EA2EE,MA3EF;AAAA,EA4EL,KA5EK;AAAA,EA4EE,MA5EF;AAAA,EA6EL,KA7EK;AAAA,EA6EE,MA7EF;AAAA,EA8EL,KA9EK;AAAA,EA8EE,MA9EF;AAAA,EA+EL,KA/EK;AAAA,EA+EE,MA/EF;AAAA,EAgFL,KAhFK;AAAA,EAgFE,MAhFF;AAAA,EAiFL,MAjFK;AAAA,EAiFG,MAjFH;AAAA,EAkFL,KAlFK;AAAA,EAkFE,MAlFF;AAAA,EAmFL,MAnFK;AAAA,EAmFG,MAnFH;AAAA,EAoFL,KApFK;AAAA,EAoFE,MApFF;AAAA,EAqFL,KArFK;AAAA,EAqFE,MArFF;AAAA,EAsFL,KAtFK;AAAA,EAsFE,MAtFF;AAAA,EAuFL,KAvFK;AAAA,EAuFE,MAvFF;AAAA,EAwFL,KAxFK;AAAA,EAwFE,MAxFF;AAAA,EAyFL,KAzFK;AAAA,EAyFE,MAzFF;AAAA,EA0FL,KA1FK;AAAA,EA0FE,MA1FF;AAAA,EA2FL,KA3FK;AAAA,EA2FE,MA3FF;AAAA,EA4FL,KA5FK;AAAA,EA4FE,MA5FF;AAAA,EA6FL,KA7FK;AAAA,EA6FE,MA7FF;AAAA,EA8FL,KA9FK;AAAA,EA8FE,MA9FF;AAAA,EA+FL,MA/FK;AAAA,EA+FG,MA/FH;AAAA,EAgGL,MAhGK;AAAA,EAgGG,MAhGH;AAAA,EAiGL,MAjGK;AAAA,EAiGG,MAjGH;AAAA,EAkGL,MAlGK;AAAA,EAkGG,MAlGH;AAAA,EAmGL,MAnGK;AAAA,EAmGG,MAnGH;AAAA,EAoGL,MApGK;AAAA,EAoGG,MApGH;AAAA,EAqGL,MArGK;AAAA,EAqGG,MArGH;AAAA,EAsGL,MAtGK;AAAA,EAsGG,MAtGH;AAAA,EAuGL,MAvGK;AAAA,EAuGG,MAvGH;AAAA,EAwGL,MAxGK;AAAA,EAwGG,MAxGH;AAAA,EAyGL,MAzGK;AAAA,EAyGG,MAzGH;AAAA,EA0GL,MA1GK;AAAA,EA0GG,MA1GH;AAAA,EA2GL,MA3GK;AAAA,EA2GG,MA3GH;AAAA,EA4GL,MA5GK;AAAA,EA4GG,MA5GH;AAAA,EA6GL,MA7GK;AAAA,EA6GG,MA7GH;AAAA,EA8GL,MA9GK;AAAA,EA8GG,MA9GH;AAAA,EA+GL,MA/GK;AAAA,EA+GG,MA/GH;AAAA,EAgHL,MAhHK;AAAA,EAgHG,MAhHH;AAAA,EAiHL,MAjHK;AAAA,EAiHG,MAjHH;AAAA,EAkHL,MAlHK;AAAA,EAkHG,MAlHH;AAAA,EAmHL,MAnHK;AAAA,EAmHG,MAnHH;AAAA,EAoHL,MApHK;AAAA,EAoHG,MApHH;AAAA,EAqHL,MArHK;AAAA,EAqHG,MArHH;AAAA,EAsHL,MAtHK;AAAA,EAsHG,MAtHH;AAAA,EAuHL,MAvHK;AAAA,EAuHG,MAvHH;AAAA,EAwHL,MAxHK;AAAA,EAwHG,MAxHH;AAAA,EAyHL,MAzHK;AAAA,EAyHG,MAzHH;AAAA,EA0HL,MA1HK;AAAA,EA0HG,MA1HH;AAAA,EA2HL,MA3HK;AAAA,EA2HG,MA3HH;AAAA,EA4HL,MA5HK;AAAA,EA4HG,MA5HH;AAAA,EA6HL,MA7HK;AAAA,EA6HG,MA7HH;AAAA,EA8HL,MA9HK;AAAA,EA8HG,MA9HH;AAAA,EA+HL,MA/HK;AAAA,EA+HG,MA/HH;AAAA,EAgIL,MAhIK;AAAA,EAgIG,MAhIH;AAAA,EAiIL,MAjIK;AAAA,EAiIG,MAjIH;AAAA,EAkIL,MAlIK;AAAA,EAkIG,MAlIH;AAAA,EAmIL,MAnIK;AAAA,EAmIG,MAnIH;AAAA,EAoIL,MApIK;AAAA,EAoIG,MApIH;AAAA,EAqIL,MArIK;AAAA,EAqIG,MArIH;AAAA,EAsIL,MAtIK;AAAA,EAsIG,MAtIH;AAAA,EAuIL,MAvIK;AAAA,EAuIG,MAvIH;AAAA,EAwIL,MAxIK;AAAA,EAwIG,MAxIH;AAAA,EAyIL,MAzIK;AAAA,EAyIG,MAzIH;AAAA,EA0IL,MA1IK;AAAA,EA0IG,MA1IH;AAAA,EA2IL,MA3IK;AAAA,EA2IG,MA3IH;AAAA,EA4IL,MA5IK;AAAA,EA4IG,MA5IH;AAAA,EA6IL,MA7IK;AAAA,EA6IG,MA7IH;AAAA,EA8IL,MA9IK;AAAA,EA8IG,MA9IH;AAAA,EA+IL,MA/IK;AAAA,EA+IG,MA/IH;AAAA,EAgJL,MAhJK;AAAA,EAgJG,MAhJH;AAAA,EAiJL,MAjJK;AAAA,EAiJG,MAjJH;AAAA,EAkJL,MAlJK;AAAA,EAkJG,MAlJH;AAAA,EAmJL,MAnJK;AAAA,EAmJG,MAnJH;AAAA,EAoJL,MApJK;AAAA,EAoJG,MApJH;AAAA,EAqJL,MArJK;AAAA,EAqJG,MArJH;AAAA,EAsJL,MAtJK;AAAA,EAsJG,MAtJH;AAAA,EAuJL,MAvJK;AAAA,EAuJG,MAvJH;AAAA,EAwJL,MAxJK;AAAA,EAwJG,MAxJH;AAAA,EAyJL,MAzJK;AAAA,EAyJG,MAzJH;AAAA,EA0JL,MA1JK;AAAA,EA0JG,MA1JH;AAAA,EA2JL,MA3JK;AAAA,EA2JG,MA3JH;AAAA,EA4JL,MA5JK;AAAA,EA4JG,MA5JH;AAAA,EA6JL,MA7JK;AAAA,EA6JG,MA7JH;AAAA,EA8JL,MA9JK;AAAA,EA8JG,MA9JH;AAAA,EA+JL,MA/JK;AAAA,EA+JG,MA/JH;AAAA,EAgKL,MAhKK;AAAA,EAgKG,MAhKH;AAAA,EAiKL,MAjKK;AAAA,EAiKG,MAjKH;AAAA,EAkKL,MAlKK;AAAA,EAkKG,MAlKH;AAAA,EAmKL,MAnKK;AAAA,EAmKG,MAnKH;AAAA,EAoKL,MApKK;AAAA,EAoKG,MApKH;AAAA,EAqKL,MArKK;AAAA,EAqKG,MArKH;AAAA,EAsKL,MAtKK;AAAA,EAsKG,MAtKH;AAAA,EAuKL,MAvKK;AAAA,EAuKG,MAvKH;AAAA,EAwKL,MAxKK;AAAA,EAwKG,MAxKH;AAAA,EAyKL,MAzKK;AAAA,EAyKG,MAzKH;AAAA,EA0KL,MA1KK;AAAA,EA0KG,MA1KH;AAAA,EA2KL,MA3KK;AAAA,EA2KG,MA3KH;AAAA,EA4KL,MA5KK;AAAA,EA4KG,MA5KH;AAAA,EA6KL,MA7KK;AAAA,EA6KG,MA7KH;AAAA,EA8KL,MA9KK;AAAA,EA8KG,MA9KH;AAAA,EA+KL,MA/KK;AAAA,EA+KG,MA/KH;AAAA,EAgLL,MAhLK;AAAA,EAgLG,MAhLH;AAAA,EAiLL,MAjLK;AAAA,EAiLG,MAjLH;AAAA,EAkLL,MAlLK;AAAA,EAkLG,MAlLH;AAAA,EAmLL,MAnLK;AAAA,EAmLG,MAnLH;AAAA,EAoLL,MApLK;AAAA,EAoLG,MApLH;AAAA,EAqLL,MArLK;AAAA,EAqLG,MArLH;AAAA,EAsLL,MAtLK;AAAA,EAsLG,MAtLH;AAAA,EAuLL,MAvLK;AAAA,EAuLG,MAvLH;AAAA,EAwLL,MAxLK;AAAA,EAwLG,MAxLH;AAAA,EAyLL,MAzLK;AAAA,EAyLG,MAzLH;AAAA,EA0LL,MA1LK;AAAA,EA0LG,MA1LH;AAAA,EA2LL,MA3LK;AAAA,EA2LG,MA3LH;AAAA,EA4LL,MA5LK;AAAA,EA4LG,MA5LH;AAAA,EA6LL,KA7LK;AAAA,EA6LE,MA7LF;AAAA,EA8LL,KA9LK;AAAA,EA8LE,MA9LF;AAAA,EA+LL,KA/LK;AAAA,EA+LE,MA/LF;AAAA,EAgML,KAhMK;AAAA,EAgME,MAhMF;AAAA,EAiML,KAjMK;AAAA,EAiME,MAjMF;AAAA,EAkML,KAlMK;AAAA,EAkME,MAlMF;AAAA,EAmML,MAnMK;AAAA,EAmMG,MAnMH;AAAA,EAoML,KApMK;AAAA,EAoME,MApMF;AAAA,EAqML,MArMK;AAAA,EAqMG,MArMH;AAAA,EAsML,KAtMK;AAAA,EAsME,MAtMF;AAAA,EAuML,KAvMK;AAAA,EAuME,MAvMF;AAAA,EAwML,KAxMK;AAAA,EAwME,MAxMF;AAAA,EAyML,KAzMK;AAAA,EAyME,MAzMF;AAAA,EA0ML,KA1MK;AAAA,EA0ME,MA1MF;AAAA,EA2ML,SA3MK;AAAA,EA2MM,MA3MN;AAAA,EAAP,CAFsE;AAAA,CAAvC,CAAjC,CA5vIA;;;;;;;;;;;;;;;;;;ACAA;AAwBA,MAAMib,oBAAA,GAAuBpb,qEAAA,CAAsB,UAAU7M,CAAV,EAAa;AAAA,CAC9DA,CAAA,CAAE,KAAF,IAAW,MAAX,CAD8D;AAAA,CAE9DA,CAAA,CAAE,KAAF,IAAW,MAAX,CAF8D;AAAA,CAG9DA,CAAA,CAAE,KAAF,IAAW,MAAX,CAH8D;AAAA,CAI9DA,CAAA,CAAE,KAAF,IAAW,MAAX,CAJ8D;AAAA,CAK9DA,CAAA,CAAE,KAAF,IAAW,MAAX,CAL8D;AAAA,CAM9DA,CAAA,CAAE,KAAF,IAAW,MAAX,CAN8D;AAAA,CAO9DA,CAAA,CAAE,KAAF,IAAW,MAAX,CAP8D;AAAA,CAQ9DA,CAAA,CAAE,KAAF,IAAW,MAAX,CAR8D;AAAA,CAS9DA,CAAA,CAAE,KAAF,IAAW,MAAX,CAT8D;AAAA,CAU9DA,CAAA,CAAE,KAAF,IAAW,MAAX,CAV8D;AAAA,CAW9DA,CAAA,CAAE,KAAF,IAAW,MAAX,CAX8D;AAAA,CAY9DA,CAAA,CAAE,KAAF,IAAW,MAAX,CAZ8D;AAAA,CAa9DA,CAAA,CAAE,KAAF,IAAW,MAAX,CAb8D;AAAA,CAc9DA,CAAA,CAAE,KAAF,IAAW,MAAX,CAd8D;AAAA,CAe9DA,CAAA,CAAE,KAAF,IAAW,MAAX,CAf8D;AAAA,CAgB9DA,CAAA,CAAE,KAAF,IAAW,MAAX,CAhB8D;AAAA,CAiB9DA,CAAA,CAAE,KAAF,IAAW,MAAX,CAjB8D;AAAA,CAkB9DA,CAAA,CAAE,KAAF,IAAW,MAAX,CAlB8D;AAAA,CAmB9DA,CAAA,CAAE,KAAF,IAAW,MAAX,CAnB8D;AAAA,CAoB9DA,CAAA,CAAE,KAAF,IAAW,MAAX,CApB8D;AAAA,CAqB9DA,CAAA,CAAE,KAAF,IAAW,MAAX,CArB8D;AAAA,CAsB9DA,CAAA,CAAE,KAAF,IAAW,MAAX,CAtB8D;AAAA,CAuB9DA,CAAA,CAAE,KAAF,IAAW,MAAX,CAvB8D;AAAA,CAwB9DA,CAAA,CAAE,KAAF,IAAW,MAAX,CAxB8D;AAAA,CAAnC,CAA7B,CAxBA;AAmDA,SAASkoB,uBAAT,CAAiClqC,IAAjC,EAAuC;AAAA,CACrC,IAAIA,IAAA,IAAQ,MAAR,IAAkBA,IAAA,IAAQ,MAA9B,EAAsC;AAAA,EAEpC,OAAO,CAAP,CAFoC;AAAA,EAAtC,MAGO,IAAIA,IAAA,IAAQ,MAAR,IAAkBA,IAAA,IAAQ,MAA9B,EAAsC;AAAA,EAC3C,OAAOiqC,oBAAA,GAAuBjqC,IAAvB,KAAgCA,IAAvC,CAD2C;AAAA,EAAtC,MAEA,IAAIA,IAAA,KAA4B,MAAhC,EAAwC;AAAA,EAC7C,OAAO,MAAP,CAD6C;AAAA,EANV;AAAA,CASrC,OAAOA,IAAP,CATqC;AAAA,CAnDvC;AA+DA,SAASuoC,kBAAT,CAA4BvvC,IAA5B,EAAkCsvC,gBAAlC,EAAoD;AAAA,CAClD,IAAI1B,OAAA,GAAU0B,gBAAA,CAAiBtvC,IAAjB,CAAd,CADkD;AAAA,CAElD,IAAI4tC,OAAA,KAAYrqB,SAAhB,EAA2B;AAAA,EACzB,OAAOqqB,OAAP,CADyB;AAAA,EAFuB;AAAA,CAKlD,IAAI,CAAC5tC,IAAL,EAAW;AAAA,EACT,OAAO,CAAC,CAAR,CADS;AAAA,EALuC;AAAA,CASlD,IAAIA,IAAA,CAAK,CAAL,MAAY,GAAhB,EAAqB;AAAA,EACnB,MAAMmxC,OAAA,GAAUnxC,IAAA,CAAKoC,MAArB,CADmB;AAAA,EAEnB,IAAIgvC,MAAJ,CAFmB;AAAA,EAInB,IAAID,OAAA,KAAY,CAAZ,IAAiBnxC,IAAA,CAAK,CAAL,MAAY,GAA7B,IAAoCA,IAAA,CAAK,CAAL,MAAY,GAApD,EAAyD;AAAA,GAEvDoxC,MAAA,GAASpxC,IAAA,CAAKo4B,SAAL,CAAe,CAAf,CAAT,CAFuD;AAAA,GAAzD,MAGO,IAAI+Y,OAAA,IAAW,CAAX,IAAgBA,OAAA,IAAW,CAA/B,EAAkC;AAAA,GAEvCC,MAAA,GAASpxC,IAAA,CAAKo4B,SAAL,CAAe,CAAf,CAAT,CAFuC;AAAA,GAAlC,MAGA;AAAA,GACL,OAAO,CAAC,CAAR,CADK;AAAA,GAVY;AAAA,EAcnB,IAAIgZ,MAAA,KAAWA,MAAA,CAAO3X,WAAP,EAAf,EAAqC;AAAA,GACnCmU,OAAA,GAAU1V,QAAA,CAASkZ,MAAT,EAAiB,EAAjB,CAAV,CADmC;AAAA,GAEnC,IAAIxD,OAAA,IAAW,CAAf,EAAkB;AAAA,IAChB,OAAOA,OAAP,CADgB;AAAA,IAFiB;AAAA,GAdlB;AAAA,EAT6B;AAAA,CA8BlD,OAAO,CAAC,CAAR,CA9BkD;AAAA,CA/DpD;AAgGA,MAAMyD,aAAA,GAAgB;AAAA,CACpB;AAAA,EAAEtgB,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EADoB;AAAA,CAEpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAFoB;AAAA,CAGpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAHoB;AAAA,CAIpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAJoB;AAAA,CAKpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EALoB;AAAA,CAMpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EANoB;AAAA,CAOpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAPoB;AAAA,CAQpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EARoB;AAAA,CASpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAToB;AAAA,CAUpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAVoB;AAAA,CAWpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAXoB;AAAA,CAYpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAZoB;AAAA,CAapB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAboB;AAAA,CAcpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAdoB;AAAA,CAepB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAfoB;AAAA,CAgBpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAhBoB;AAAA,CAiBpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAjBoB;AAAA,CAkBpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAlBoB;AAAA,CAmBpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAnBoB;AAAA,CAoBpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EApBoB;AAAA,CAqBpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EArBoB;AAAA,CAsBpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAtBoB;AAAA,CAuBpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAvBoB;AAAA,CAwBpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAxBoB;AAAA,CAyBpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAzBoB;AAAA,CA0BpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EA1BoB;AAAA,CA2BpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EA3BoB;AAAA,CA4BpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EA5BoB;AAAA,CA6BpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EA7BoB;AAAA,CA8BpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EA9BoB;AAAA,CA+BpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EA/BoB;AAAA,CAgCpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAhCoB;AAAA,CAiCpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAjCoB;AAAA,CAkCpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAlCoB;AAAA,CAmCpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAnCoB;AAAA,CAoCpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EApCoB;AAAA,CAqCpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EArCoB;AAAA,CAsCpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAtCoB;AAAA,CAuCpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAvCoB;AAAA,CAwCpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAxCoB;AAAA,CAyCpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAzCoB;AAAA,CA0CpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EA1CoB;AAAA,CA2CpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EA3CoB;AAAA,CA4CpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EA5CoB;AAAA,CA6CpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EA7CoB;AAAA,CA8CpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EA9CoB;AAAA,CA+CpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EA/CoB;AAAA,CAgDpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAhDoB;AAAA,CAiDpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAjDoB;AAAA,CAkDpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAlDoB;AAAA,CAmDpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAnDoB;AAAA,CAoDpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EApDoB;AAAA,CAqDpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EArDoB;AAAA,CAsDpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAtDoB;AAAA,CAuDpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAvDoB;AAAA,CAwDpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAxDoB;AAAA,CAyDpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAzDoB;AAAA,CA0DpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EA1DoB;AAAA,CA2DpB;AAAA,EAAED,KAAA,EAAO,OAAT;AAAA,EAAkBC,GAAA,EAAK,OAAvB;AAAA,EA3DoB;AAAA,CA4DpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EA5DoB;AAAA,CA6DpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EA7DoB;AAAA,CA8DpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EA9DoB;AAAA,CA+DpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EA/DoB;AAAA,CAgEpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAhEoB;AAAA,CAiEpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAjEoB;AAAA,CAkEpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAlEoB;AAAA,CAmEpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAnEoB;AAAA,CAoEpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EApEoB;AAAA,CAqEpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EArEoB;AAAA,CAsEpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAtEoB;AAAA,CAuEpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAvEoB;AAAA,CAwEpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAxEoB;AAAA,CAyEpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAzEoB;AAAA,CA0EpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EA1EoB;AAAA,CA2EpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EA3EoB;AAAA,CA4EpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EA5EoB;AAAA,CA6EpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EA7EoB;AAAA,CA8EpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EA9EoB;AAAA,CA+EpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EA/EoB;AAAA,CAgFpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAhFoB;AAAA,CAiFpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAjFoB;AAAA,CAkFpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAlFoB;AAAA,CAmFpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAnFoB;AAAA,CAoFpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EApFoB;AAAA,CAqFpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EArFoB;AAAA,CAsFpB;AAAA,EAAED,KAAA,EAAO,OAAT;AAAA,EAAkBC,GAAA,EAAK,OAAvB;AAAA,EAtFoB;AAAA,CAuFpB;AAAA,EAAED,KAAA,EAAO,OAAT;AAAA,EAAkBC,GAAA,EAAK,OAAvB;AAAA,EAvFoB;AAAA,CAwFpB;AAAA,EAAED,KAAA,EAAO,OAAT;AAAA,EAAkBC,GAAA,EAAK,OAAvB;AAAA,EAxFoB;AAAA,CAyFpB;AAAA,EAAED,KAAA,EAAO,OAAT;AAAA,EAAkBC,GAAA,EAAK,OAAvB;AAAA,EAzFoB;AAAA,CA0FpB;AAAA,EAAED,KAAA,EAAO,OAAT;AAAA,EAAkBC,GAAA,EAAK,OAAvB;AAAA,EA1FoB;AAAA,CA2FpB;AAAA,EAAED,KAAA,EAAO,OAAT;AAAA,EAAkBC,GAAA,EAAK,OAAvB;AAAA,EA3FoB;AAAA,CA4FpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EA5FoB;AAAA,CA6FpB;AAAA,EAAED,KAAA,EAAO,OAAT;AAAA,EAAkBC,GAAA,EAAK,OAAvB;AAAA,EA7FoB;AAAA,CA8FpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EA9FoB;AAAA,CA+FpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EA/FoB;AAAA,CAgGpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAhGoB;AAAA,CAiGpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAjGoB;AAAA,CAkGpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAlGoB;AAAA,CAmGpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAnGoB;AAAA,CAoGpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EApGoB;AAAA,CAqGpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EArGoB;AAAA,CAsGpB;AAAA,EAAED,KAAA,EAAO,OAAT;AAAA,EAAkBC,GAAA,EAAK,OAAvB;AAAA,EAtGoB;AAAA,CAuGpB;AAAA,EAAED,KAAA,EAAO,OAAT;AAAA,EAAkBC,GAAA,EAAK,OAAvB;AAAA,EAvGoB;AAAA,CAwGpB;AAAA,EAAED,KAAA,EAAO,OAAT;AAAA,EAAkBC,GAAA,EAAK,OAAvB;AAAA,EAxGoB;AAAA,CAyGpB;AAAA,EAAED,KAAA,EAAO,OAAT;AAAA,EAAkBC,GAAA,EAAK,OAAvB;AAAA,EAzGoB;AAAA,CA0GpB;AAAA,EAAED,KAAA,EAAO,OAAT;AAAA,EAAkBC,GAAA,EAAK,OAAvB;AAAA,EA1GoB;AAAA,CA2GpB;AAAA,EAAED,KAAA,EAAO,OAAT;AAAA,EAAkBC,GAAA,EAAK,OAAvB;AAAA,EA3GoB;AAAA,CA4GpB;AAAA,EAAED,KAAA,EAAO,OAAT;AAAA,EAAkBC,GAAA,EAAK,OAAvB;AAAA,EA5GoB;AAAA,CA6GpB;AAAA,EAAED,KAAA,EAAO,OAAT;AAAA,EAAkBC,GAAA,EAAK,OAAvB;AAAA,EA7GoB;AAAA,CA8GpB;AAAA,EAAED,KAAA,EAAO,OAAT;AAAA,EAAkBC,GAAA,EAAK,OAAvB;AAAA,EA9GoB;AAAA,CA+GpB;AAAA,EAAED,KAAA,EAAO,OAAT;AAAA,EAAkBC,GAAA,EAAK,OAAvB;AAAA,EA/GoB;AAAA,CAgHpB;AAAA,EAAED,KAAA,EAAO,OAAT;AAAA,EAAkBC,GAAA,EAAK,OAAvB;AAAA,EAhHoB;AAAA,CAiHpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAjHoB;AAAA,CAkHpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAlHoB;AAAA,CAmHpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAnHoB;AAAA,CAoHpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EApHoB;AAAA,CAqHpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EArHoB;AAAA,CAsHpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAtHoB;AAAA,CAuHpB;AAAA,EAAED,KAAA,EAAO,MAAT;AAAA,EAAiBC,GAAA,EAAK,MAAtB;AAAA,EAvHoB;AAAA,CAwHpB;AAAA,EAAED,KAAA,EAAO,OAAT;AAAA,EAAkBC,GAAA,EAAK,OAAvB;AAAA,EAxHoB;AAAA,CAyHpB;AAAA,EAAED,KAAA,EAAO,OAAT;AAAA,EAAkBC,GAAA,EAAK,OAAvB;AAAA,EAzHoB;AAAA,CA0HpB;AAAA,EAAED,KAAA,EAAO,OAAT;AAAA,EAAkBC,GAAA,EAAK,OAAvB;AAAA,EA1HoB;AAAA,CA2HpB;AAAA,EAAED,KAAA,EAAO,OAAT;AAAA,EAAkBC,GAAA,EAAK,OAAvB;AAAA,EA3HoB;AAAA,CAAtB,CAhGA;AA8NA,SAASsgB,kBAAT,CAA4BrrC,KAA5B,EAAmC;AAAA,CACjC,KAAK,IAAIjD,CAAA,GAAI,CAAR,EAAWiJ,EAAA,GAAKolC,aAAA,CAAcjvC,MAA9B,CAAL,CAA2CY,CAAA,GAAIiJ,EAA/C,EAAmDjJ,CAAA,EAAnD,EAAwD;AAAA,EACtD,MAAMmyB,KAAA,GAAQkc,aAAA,CAAcruC,CAAd,CAAd,CADsD;AAAA,EAEtD,IAAIiD,KAAA,IAASkvB,KAAA,CAAMpE,KAAf,IAAwB9qB,KAAA,GAAQkvB,KAAA,CAAMnE,GAA1C,EAA+C;AAAA,GAC7C,OAAOhuB,CAAP,CAD6C;AAAA,GAFO;AAAA,EADvB;AAAA,CAOjC,OAAO,CAAC,CAAR,CAPiC;AAAA,CA9NnC;AAwOA,SAASuuC,aAAT,CAAuBtrC,KAAvB,EAA8B;AAAA,CAC5B,IAAIkvB,KAAA,GAAQkc,aAAA,CAAc,EAAd,CAAZ,CAD4B;AAAA,CAE5B,IAAIprC,KAAA,IAASkvB,KAAA,CAAMpE,KAAf,IAAwB9qB,KAAA,GAAQkvB,KAAA,CAAMnE,GAA1C,EAA+C;AAAA,EAC7C,OAAO,IAAP,CAD6C;AAAA,EAFnB;AAAA,CAK5BmE,KAAA,GAAQkc,aAAA,CAAc,EAAd,CAAR,CAL4B;AAAA,CAM5B,IAAIprC,KAAA,IAASkvB,KAAA,CAAMpE,KAAf,IAAwB9qB,KAAA,GAAQkvB,KAAA,CAAMnE,GAA1C,EAA+C;AAAA,EAC7C,OAAO,IAAP,CAD6C;AAAA,EANnB;AAAA,CAS5B,OAAO,KAAP,CAT4B;AAAA,CAxO9B;AAsPA,MAAMwgB,qBAAA,GAAwBxb,0EAAA,CAA2B,YAAY;AAAA,CAEnE,OAAO;AAAA,EACL,QADK;AAAA,EACK,cADL;AAAA,EAEL,QAFK;AAAA,EAEK,cAFL;AAAA,EAGL,QAHK;AAAA,EAGK,cAHL;AAAA,EAIL,QAJK;AAAA,EAIK,QAJL;AAAA,EAKL,QALK;AAAA,EAKK,cALL;AAAA,EAML,QANK;AAAA,EAMK,cANL;AAAA,EAOL,QAPK;AAAA,EAOK,cAPL;AAAA,EAQL,QARK;AAAA,EAQK,cARL;AAAA,EASL,QATK;AAAA,EASK,cATL;AAAA,EAUL,QAVK;AAAA,EAUK,cAVL;AAAA,EAWL,QAXK;AAAA,EAWK,QAXL;AAAA,EAYL,QAZK;AAAA,EAYK,cAZL;AAAA,EAaL,QAbK;AAAA,EAaK,cAbL;AAAA,EAcL,QAdK;AAAA,EAcK,cAdL;AAAA,EAeL,QAfK;AAAA,EAeK,cAfL;AAAA,EAgBL,QAhBK;AAAA,EAgBK,cAhBL;AAAA,EAiBL,QAjBK;AAAA,EAiBK,cAjBL;AAAA,EAkBL,QAlBK;AAAA,EAkBK,cAlBL;AAAA,EAmBL,QAnBK;AAAA,EAmBK,cAnBL;AAAA,EAoBL,QApBK;AAAA,EAoBK,cApBL;AAAA,EAqBL,QArBK;AAAA,EAqBK,cArBL;AAAA,EAsBL,QAtBK;AAAA,EAsBK,cAtBL;AAAA,EAuBL,QAvBK;AAAA,EAuBK,cAvBL;AAAA,EAwBL,QAxBK;AAAA,EAwBK,cAxBL;AAAA,EAyBL,QAzBK;AAAA,EAyBK,cAzBL;AAAA,EA0BL,QA1BK;AAAA,EA0BK,cA1BL;AAAA,EA2BL,QA3BK;AAAA,EA2BK,cA3BL;AAAA,EA4BL,QA5BK;AAAA,EA4BK,cA5BL;AAAA,EA6BL,QA7BK;AAAA,EA6BK,cA7BL;AAAA,EA8BL,QA9BK;AAAA,EA8BK,cA9BL;AAAA,EA+BL,QA/BK;AAAA,EA+BK,cA/BL;AAAA,EAgCL,QAhCK;AAAA,EAgCK,QAhCL;AAAA,EAiCL,QAjCK;AAAA,EAiCK,QAjCL;AAAA,EAkCL,QAlCK;AAAA,EAkCK,QAlCL;AAAA,EAmCL,QAnCK;AAAA,EAmCK,QAnCL;AAAA,EAoCL,QApCK;AAAA,EAoCK,QApCL;AAAA,EAqCL,QArCK;AAAA,EAqCK,QArCL;AAAA,EAsCL,QAtCK;AAAA,EAsCK,QAtCL;AAAA,EAuCL,QAvCK;AAAA,EAuCK,QAvCL;AAAA,EAwCL,QAxCK;AAAA,EAwCK,QAxCL;AAAA,EAyCL,QAzCK;AAAA,EAyCK,QAzCL;AAAA,EA0CL,QA1CK;AAAA,EA0CK,QA1CL;AAAA,EA2CL,QA3CK;AAAA,EA2CK,cA3CL;AAAA,EA4CL,QA5CK;AAAA,EA4CK,cA5CL;AAAA,EA6CL,QA7CK;AAAA,EA6CK,cA7CL;AAAA,EA8CL,QA9CK;AAAA,EA8CK,cA9CL;AAAA,EA+CL,QA/CK;AAAA,EA+CK,cA/CL;AAAA,EAgDL,QAhDK;AAAA,EAgDK,cAhDL;AAAA,EAiDL,QAjDK;AAAA,EAiDK,cAjDL;AAAA,EAkDL,QAlDK;AAAA,EAkDK,cAlDL;AAAA,EAmDL,QAnDK;AAAA,EAmDK,cAnDL;AAAA,EAoDL,QApDK;AAAA,EAoDK,cApDL;AAAA,EAqDL,QArDK;AAAA,EAqDK,cArDL;AAAA,EAsDL,QAtDK;AAAA,EAsDK,cAtDL;AAAA,EAuDL,QAvDK;AAAA,EAuDK,cAvDL;AAAA,EAwDL,QAxDK;AAAA,EAwDK,cAxDL;AAAA,EAyDL,QAzDK;AAAA,EAyDK,cAzDL;AAAA,EA0DL,QA1DK;AAAA,EA0DK,cA1DL;AAAA,EA2DL,QA3DK;AAAA,EA2DK,QA3DL;AAAA,EA4DL,QA5DK;AAAA,EA4DK,QA5DL;AAAA,EA6DL,QA7DK;AAAA,EA6DK,QA7DL;AAAA,EA8DL,QA9DK;AAAA,EA8DK,QA9DL;AAAA,EA+DL,QA/DK;AAAA,EA+DK,QA/DL;AAAA,EAgEL,QAhEK;AAAA,EAgEK,QAhEL;AAAA,EAiEL,QAjEK;AAAA,EAiEK,QAjEL;AAAA,EAkEL,QAlEK;AAAA,EAkEK,QAlEL;AAAA,EAmEL,QAnEK;AAAA,EAmEK,cAnEL;AAAA,EAoEL,QApEK;AAAA,EAoEK,QApEL;AAAA,EAqEL,QArEK;AAAA,EAqEK,cArEL;AAAA,EAsEL,QAtEK;AAAA,EAsEK,oBAtEL;AAAA,EAuEL,QAvEK;AAAA,EAuEK,cAvEL;AAAA,EAwEL,QAxEK;AAAA,EAwEK,oBAxEL;AAAA,EAyEL,QAzEK;AAAA,EAyEK,cAzEL;AAAA,EA0EL,QA1EK;AAAA,EA0EK,oBA1EL;AAAA,EA2EL,QA3EK;AAAA,EA2EK,cA3EL;AAAA,EA4EL,QA5EK;AAAA,EA4EK,cA5EL;AAAA,EA6EL,QA7EK;AAAA,EA6EK,cA7EL;AAAA,EA8EL,QA9EK;AAAA,EA8EK,cA9EL;AAAA,EA+EL,QA/EK;AAAA,EA+EK,cA/EL;AAAA,EAgFL,QAhFK;AAAA,EAgFK,0BAhFL;AAAA,EAiFL,QAjFK;AAAA,EAiFK,QAjFL;AAAA,EAkFL,QAlFK;AAAA,EAkFK,cAlFL;AAAA,EAmFL,QAnFK;AAAA,EAmFK,oBAnFL;AAAA,EAoFL,QApFK;AAAA,EAoFK,oBApFL;AAAA,EAqFL,QArFK;AAAA,EAqFK,cArFL;AAAA,EAsFL,QAtFK;AAAA,EAsFK,oBAtFL;AAAA,EAuFL,QAvFK;AAAA,EAuFK,oBAvFL;AAAA,EAwFL,QAxFK;AAAA,EAwFK,QAxFL;AAAA,EAyFL,QAzFK;AAAA,EAyFK,cAzFL;AAAA,EA0FL,QA1FK;AAAA,EA0FK,cA1FL;AAAA,EA2FL,QA3FK;AAAA,EA2FK,oBA3FL;AAAA,EA4FL,QA5FK;AAAA,EA4FK,QA5FL;AAAA,EA6FL,QA7FK;AAAA,EA6FK,QA7FL;AAAA,EA8FL,QA9FK;AAAA,EA8FK,QA9FL;AAAA,EA+FL,QA/FK;AAAA,EA+FK,QA/FL;AAAA,EAgGL,QAhGK;AAAA,EAgGK,oBAhGL;AAAA,EAiGL,QAjGK;AAAA,EAiGK,QAjGL;AAAA,EAkGL,QAlGK;AAAA,EAkGK,cAlGL;AAAA,EAmGL,QAnGK;AAAA,EAmGK,oBAnGL;AAAA,EAoGL,QApGK;AAAA,EAoGK,cApGL;AAAA,EAqGL,QArGK;AAAA,EAqGK,QArGL;AAAA,EAsGL,QAtGK;AAAA,EAsGK,cAtGL;AAAA,EAuGL,QAvGK;AAAA,EAuGK,oBAvGL;AAAA,EAwGL,QAxGK;AAAA,EAwGK,0BAxGL;AAAA,EAyGL,QAzGK;AAAA,EAyGK,cAzGL;AAAA,EA0GL,QA1GK;AAAA,EA0GK,QA1GL;AAAA,EA2GL,QA3GK;AAAA,EA2GK,cA3GL;AAAA,EA4GL,QA5GK;AAAA,EA4GK,oBA5GL;AAAA,EA6GL,QA7GK;AAAA,EA6GK,QA7GL;AAAA,EA8GL,QA9GK;AAAA,EA8GK,QA9GL;AAAA,EA+GL,QA/GK;AAAA,EA+GK,QA/GL;AAAA,EAgHL,QAhHK;AAAA,EAgHK,QAhHL;AAAA,EAiHL,QAjHK;AAAA,EAiHK,QAjHL;AAAA,EAkHL,QAlHK;AAAA,EAkHK,cAlHL;AAAA,EAmHL,QAnHK;AAAA,EAmHK,oBAnHL;AAAA,EAoHL,QApHK;AAAA,EAoHK,cApHL;AAAA,EAqHL,QArHK;AAAA,EAqHK,QArHL;AAAA,EAsHL,QAtHK;AAAA,EAsHK,cAtHL;AAAA,EAuHL,QAvHK;AAAA,EAuHK,oBAvHL;AAAA,EAwHL,QAxHK;AAAA,EAwHK,0BAxHL;AAAA,EAyHL,QAzHK;AAAA,EAyHK,cAzHL;AAAA,EA0HL,QA1HK;AAAA,EA0HK,QA1HL;AAAA,EA2HL,QA3HK;AAAA,EA2HK,cA3HL;AAAA,EA4HL,QA5HK;AAAA,EA4HK,oBA5HL;AAAA,EA6HL,QA7HK;AAAA,EA6HK,QA7HL;AAAA,EA8HL,QA9HK;AAAA,EA8HK,QA9HL;AAAA,EA+HL,QA/HK;AAAA,EA+HK,QA/HL;AAAA,EAgIL,QAhIK;AAAA,EAgIK,QAhIL;AAAA,EAiIL,QAjIK;AAAA,EAiIK,cAjIL;AAAA,EAkIL,QAlIK;AAAA,EAkIK,oBAlIL;AAAA,EAmIL,QAnIK;AAAA,EAmIK,cAnIL;AAAA,EAoIL,QApIK;AAAA,EAoIK,oBApIL;AAAA,EAqIL,QArIK;AAAA,EAqIK,oBArIL;AAAA,EAsIL,QAtIK;AAAA,EAsIK,oBAtIL;AAAA,EAuIL,QAvIK;AAAA,EAuIK,oBAvIL;AAAA,EAwIL,QAxIK;AAAA,EAwIK,oBAxIL;AAAA,EAyIL,QAzIK;AAAA,EAyIK,oBAzIL;AAAA,EA0IL,QA1IK;AAAA,EA0IK,oBA1IL;AAAA,EA2IL,QA3IK;AAAA,EA2IK,oBA3IL;AAAA,EA4IL,QA5IK;AAAA,EA4IK,oBA5IL;AAAA,EA6IL,QA7IK;AAAA,EA6IK,oBA7IL;AAAA,EA8IL,QA9IK;AAAA,EA8IK,0BA9IL;AAAA,EA+IL,QA/IK;AAAA,EA+IK,0BA/IL;AAAA,EAgJL,QAhJK;AAAA,EAgJK,0BAhJL;AAAA,EAiJL,QAjJK;AAAA,EAiJK,0BAjJL;AAAA,EAkJL,QAlJK;AAAA,EAkJK,0BAlJL;AAAA,EAmJL,QAnJK;AAAA,EAmJK,0BAnJL;AAAA,EAoJL,QApJK;AAAA,EAoJK,0BApJL;AAAA,EAqJL,QArJK;AAAA,EAqJK,0BArJL;AAAA,EAsJL,QAtJK;AAAA,EAsJK,0BAtJL;AAAA,EAuJL,QAvJK;AAAA,EAuJK,0BAvJL;AAAA,EAwJL,QAxJK;AAAA,EAwJK,0BAxJL;AAAA,EAyJL,QAzJK;AAAA,EAyJK,cAzJL;AAAA,EA0JL,QA1JK;AAAA,EA0JK,cA1JL;AAAA,EA2JL,QA3JK;AAAA,EA2JK,cA3JL;AAAA,EA4JL,QA5JK;AAAA,EA4JK,cA5JL;AAAA,EA6JL,QA7JK;AAAA,EA6JK,cA7JL;AAAA,EA8JL,QA9JK;AAAA,EA8JK,cA9JL;AAAA,EA+JL,QA/JK;AAAA,EA+JK,cA/JL;AAAA,EAgKL,QAhKK;AAAA,EAgKK,cAhKL;AAAA,EAiKL,QAjKK;AAAA,EAiKK,cAjKL;AAAA,EAkKL,QAlKK;AAAA,EAkKK,oBAlKL;AAAA,EAmKL,QAnKK;AAAA,EAmKK,oBAnKL;AAAA,EAoKL,QApKK;AAAA,EAoKK,oBApKL;AAAA,EAqKL,QArKK;AAAA,EAqKK,oBArKL;AAAA,EAsKL,QAtKK;AAAA,EAsKK,oBAtKL;AAAA,EAuKL,QAvKK;AAAA,EAuKK,oBAvKL;AAAA,EAwKL,QAxKK;AAAA,EAwKK,oBAxKL;AAAA,EAyKL,QAzKK;AAAA,EAyKK,oBAzKL;AAAA,EA0KL,QA1KK;AAAA,EA0KK,oBA1KL;AAAA,EA2KL,QA3KK;AAAA,EA2KK,oBA3KL;AAAA,EA4KL,QA5KK;AAAA,EA4KK,oBA5KL;AAAA,EA6KL,QA7KK;AAAA,EA6KK,oBA7KL;AAAA,EA8KL,QA9KK;AAAA,EA8KK,oBA9KL;AAAA,EA+KL,QA/KK;AAAA,EA+KK,oBA/KL;AAAA,EAgLL,QAhLK;AAAA,EAgLK,oBAhLL;AAAA,EAiLL,QAjLK;AAAA,EAiLK,oBAjLL;AAAA,EAkLL,QAlLK;AAAA,EAkLK,oBAlLL;AAAA,EAmLL,QAnLK;AAAA,EAmLK,oBAnLL;AAAA,EAoLL,QApLK;AAAA,EAoLK,oBApLL;AAAA,EAqLL,QArLK;AAAA,EAqLK,oBArLL;AAAA,EAsLL,QAtLK;AAAA,EAsLK,oBAtLL;AAAA,EAuLL,QAvLK;AAAA,EAuLK,oBAvLL;AAAA,EAwLL,QAxLK;AAAA,EAwLK,oBAxLL;AAAA,EAyLL,QAzLK;AAAA,EAyLK,oBAzLL;AAAA,EA0LL,QA1LK;AAAA,EA0LK,oBA1LL;AAAA,EA2LL,QA3LK;AAAA,EA2LK,oBA3LL;AAAA,EA4LL,QA5LK;AAAA,EA4LK,oBA5LL;AAAA,EA6LL,QA7LK;AAAA,EA6LK,oBA7LL;AAAA,EA8LL,QA9LK;AAAA,EA8LK,oBA9LL;AAAA,EA+LL,QA/LK;AAAA,EA+LK,oBA/LL;AAAA,EAgML,QAhMK;AAAA,EAgMK,oBAhML;AAAA,EAiML,QAjMK;AAAA,EAiMK,oBAjML;AAAA,EAkML,QAlMK;AAAA,EAkMK,oBAlML;AAAA,EAmML,QAnMK;AAAA,EAmMK,oBAnML;AAAA,EAoML,QApMK;AAAA,EAoMK,oBApML;AAAA,EAqML,QArMK;AAAA,EAqMK,oBArML;AAAA,EAsML,QAtMK;AAAA,EAsMK,oBAtML;AAAA,EAuML,QAvMK;AAAA,EAuMK,0BAvML;AAAA,EAwML,QAxMK;AAAA,EAwMK,oBAxML;AAAA,EAyML,QAzMK;AAAA,EAyMK,cAzML;AAAA,EA0ML,QA1MK;AAAA,EA0MK,oBA1ML;AAAA,EA2ML,QA3MK;AAAA,EA2MK,QA3ML;AAAA,EA4ML,QA5MK;AAAA,EA4MK,QA5ML;AAAA,EA6ML,QA7MK;AAAA,EA6MK,QA7ML;AAAA,EA8ML,QA9MK;AAAA,EA8MK,QA9ML;AAAA,EA+ML,QA/MK;AAAA,EA+MK,QA/ML;AAAA,EAgNL,QAhNK;AAAA,EAgNK,QAhNL;AAAA,EAiNL,QAjNK;AAAA,EAiNK,QAjNL;AAAA,EAkNL,QAlNK;AAAA,EAkNK,QAlNL;AAAA,EAmNL,QAnNK;AAAA,EAmNK,QAnNL;AAAA,EAoNL,QApNK;AAAA,EAoNK,QApNL;AAAA,EAqNL,QArNK;AAAA,EAqNK,QArNL;AAAA,EAsNL,QAtNK;AAAA,EAsNK,QAtNL;AAAA,EAuNL,QAvNK;AAAA,EAuNK,QAvNL;AAAA,EAwNL,QAxNK;AAAA,EAwNK,QAxNL;AAAA,EAyNL,QAzNK;AAAA,EAyNK,QAzNL;AAAA,EA0NL,QA1NK;AAAA,EA0NK,QA1NL;AAAA,EA2NL,QA3NK;AAAA,EA2NK,QA3NL;AAAA,EA4NL,QA5NK;AAAA,EA4NK,QA5NL;AAAA,EA6NL,QA7NK;AAAA,EA6NK,QA7NL;AAAA,EA8NL,QA9NK;AAAA,EA8NK,QA9NL;AAAA,EA+NL,QA/NK;AAAA,EA+NK,QA/NL;AAAA,EAgOL,QAhOK;AAAA,EAgOK,QAhOL;AAAA,EAiOL,QAjOK;AAAA,EAiOK,QAjOL;AAAA,EAkOL,QAlOK;AAAA,EAkOK,QAlOL;AAAA,EAmOL,QAnOK;AAAA,EAmOK,QAnOL;AAAA,EAoOL,QApOK;AAAA,EAoOK,QApOL;AAAA,EAqOL,QArOK;AAAA,EAqOK,QArOL;AAAA,EAsOL,QAtOK;AAAA,EAsOK,QAtOL;AAAA,EAuOL,QAvOK;AAAA,EAuOK,QAvOL;AAAA,EAwOL,QAxOK;AAAA,EAwOK,QAxOL;AAAA,EAyOL,QAzOK;AAAA,EAyOK,QAzOL;AAAA,EA0OL,QA1OK;AAAA,EA0OK,QA1OL;AAAA,EA2OL,QA3OK;AAAA,EA2OK,QA3OL;AAAA,EA4OL,QA5OK;AAAA,EA4OK,QA5OL;AAAA,EA6OL,QA7OK;AAAA,EA6OK,QA7OL;AAAA,EA8OL,QA9OK;AAAA,EA8OK,QA9OL;AAAA,EA+OL,QA/OK;AAAA,EA+OK,QA/OL;AAAA,EAgPL,QAhPK;AAAA,EAgPK,QAhPL;AAAA,EAiPL,QAjPK;AAAA,EAiPK,QAjPL;AAAA,EAkPL,QAlPK;AAAA,EAkPK,QAlPL;AAAA,EAmPL,QAnPK;AAAA,EAmPK,QAnPL;AAAA,EAoPL,QApPK;AAAA,EAoPK,QApPL;AAAA,EAqPL,QArPK;AAAA,EAqPK,QArPL;AAAA,EAsPL,QAtPK;AAAA,EAsPK,QAtPL;AAAA,EAuPL,QAvPK;AAAA,EAuPK,QAvPL;AAAA,EAwPL,QAxPK;AAAA,EAwPK,QAxPL;AAAA,EAyPL,QAzPK;AAAA,EAyPK,QAzPL;AAAA,EA0PL,QA1PK;AAAA,EA0PK,QA1PL;AAAA,EA2PL,QA3PK;AAAA,EA2PK,QA3PL;AAAA,EA4PL,QA5PK;AAAA,EA4PK,QA5PL;AAAA,EA6PL,QA7PK;AAAA,EA6PK,QA7PL;AAAA,EA8PL,QA9PK;AAAA,EA8PK,QA9PL;AAAA,EA+PL,QA/PK;AAAA,EA+PK,QA/PL;AAAA,EAgQL,QAhQK;AAAA,EAgQK,QAhQL;AAAA,EAiQL,QAjQK;AAAA,EAiQK,QAjQL;AAAA,EAkQL,QAlQK;AAAA,EAkQK,QAlQL;AAAA,EAmQL,QAnQK;AAAA,EAmQK,QAnQL;AAAA,EAoQL,QApQK;AAAA,EAoQK,QApQL;AAAA,EAqQL,QArQK;AAAA,EAqQK,QArQL;AAAA,EAsQL,QAtQK;AAAA,EAsQK,QAtQL;AAAA,EAuQL,QAvQK;AAAA,EAuQK,QAvQL;AAAA,EAwQL,QAxQK;AAAA,EAwQK,QAxQL;AAAA,EAyQL,QAzQK;AAAA,EAyQK,QAzQL;AAAA,EA0QL,QA1QK;AAAA,EA0QK,QA1QL;AAAA,EA2QL,QA3QK;AAAA,EA2QK,QA3QL;AAAA,EA4QL,QA5QK;AAAA,EA4QK,QA5QL;AAAA,EA6QL,QA7QK;AAAA,EA6QK,QA7QL;AAAA,EA8QL,QA9QK;AAAA,EA8QK,QA9QL;AAAA,EA+QL,QA/QK;AAAA,EA+QK,QA/QL;AAAA,EAgRL,QAhRK;AAAA,EAgRK,QAhRL;AAAA,EAiRL,QAjRK;AAAA,EAiRK,QAjRL;AAAA,EAkRL,QAlRK;AAAA,EAkRK,QAlRL;AAAA,EAmRL,QAnRK;AAAA,EAmRK,QAnRL;AAAA,EAoRL,QApRK;AAAA,EAoRK,QApRL;AAAA,EAqRL,QArRK;AAAA,EAqRK,QArRL;AAAA,EAsRL,QAtRK;AAAA,EAsRK,QAtRL;AAAA,EAuRL,QAvRK;AAAA,EAuRK,QAvRL;AAAA,EAwRL,QAxRK;AAAA,EAwRK,QAxRL;AAAA,EAyRL,QAzRK;AAAA,EAyRK,QAzRL;AAAA,EA0RL,QA1RK;AAAA,EA0RK,QA1RL;AAAA,EA2RL,QA3RK;AAAA,EA2RK,QA3RL;AAAA,EA4RL,QA5RK;AAAA,EA4RK,QA5RL;AAAA,EA6RL,QA7RK;AAAA,EA6RK,QA7RL;AAAA,EA8RL,QA9RK;AAAA,EA8RK,QA9RL;AAAA,EA+RL,QA/RK;AAAA,EA+RK,QA/RL;AAAA,EAgSL,QAhSK;AAAA,EAgSK,QAhSL;AAAA,EAiSL,QAjSK;AAAA,EAiSK,QAjSL;AAAA,EAkSL,QAlSK;AAAA,EAkSK,QAlSL;AAAA,EAmSL,QAnSK;AAAA,EAmSK,QAnSL;AAAA,EAoSL,QApSK;AAAA,EAoSK,QApSL;AAAA,EAqSL,QArSK;AAAA,EAqSK,QArSL;AAAA,EAsSL,QAtSK;AAAA,EAsSK,QAtSL;AAAA,EAuSL,QAvSK;AAAA,EAuSK,QAvSL;AAAA,EAwSL,QAxSK;AAAA,EAwSK,QAxSL;AAAA,EAySL,QAzSK;AAAA,EAySK,QAzSL;AAAA,EA0SL,QA1SK;AAAA,EA0SK,QA1SL;AAAA,EA2SL,QA3SK;AAAA,EA2SK,QA3SL;AAAA,EA4SL,QA5SK;AAAA,EA4SK,QA5SL;AAAA,EA6SL,QA7SK;AAAA,EA6SK,QA7SL;AAAA,EA8SL,QA9SK;AAAA,EA8SK,QA9SL;AAAA,EA+SL,QA/SK;AAAA,EA+SK,QA/SL;AAAA,EAgTL,QAhTK;AAAA,EAgTK,QAhTL;AAAA,EAiTL,QAjTK;AAAA,EAiTK,QAjTL;AAAA,EAkTL,QAlTK;AAAA,EAkTK,QAlTL;AAAA,EAmTL,QAnTK;AAAA,EAmTK,QAnTL;AAAA,EAoTL,QApTK;AAAA,EAoTK,QApTL;AAAA,EAqTL,QArTK;AAAA,EAqTK,QArTL;AAAA,EAsTL,QAtTK;AAAA,EAsTK,QAtTL;AAAA,EAuTL,QAvTK;AAAA,EAuTK,QAvTL;AAAA,EAwTL,QAxTK;AAAA,EAwTK,QAxTL;AAAA,EAyTL,QAzTK;AAAA,EAyTK,QAzTL;AAAA,EA0TL,QA1TK;AAAA,EA0TK,QA1TL;AAAA,EA2TL,QA3TK;AAAA,EA2TK,QA3TL;AAAA,EA4TL,QA5TK;AAAA,EA4TK,QA5TL;AAAA,EA6TL,QA7TK;AAAA,EA6TK,QA7TL;AAAA,EA8TL,QA9TK;AAAA,EA8TK,QA9TL;AAAA,EA+TL,QA/TK;AAAA,EA+TK,QA/TL;AAAA,EAgUL,QAhUK;AAAA,EAgUK,QAhUL;AAAA,EAiUL,QAjUK;AAAA,EAiUK,QAjUL;AAAA,EAkUL,QAlUK;AAAA,EAkUK,QAlUL;AAAA,EAmUL,QAnUK;AAAA,EAmUK,QAnUL;AAAA,EAoUL,QApUK;AAAA,EAoUK,QApUL;AAAA,EAqUL,QArUK;AAAA,EAqUK,QArUL;AAAA,EAsUL,QAtUK;AAAA,EAsUK,QAtUL;AAAA,EAuUL,QAvUK;AAAA,EAuUK,QAvUL;AAAA,EAwUL,QAxUK;AAAA,EAwUK,QAxUL;AAAA,EAyUL,QAzUK;AAAA,EAyUK,QAzUL;AAAA,EA0UL,QA1UK;AAAA,EA0UK,QA1UL;AAAA,EA2UL,QA3UK;AAAA,EA2UK,QA3UL;AAAA,EA4UL,QA5UK;AAAA,EA4UK,QA5UL;AAAA,EA6UL,QA7UK;AAAA,EA6UK,QA7UL;AAAA,EA8UL,QA9UK;AAAA,EA8UK,QA9UL;AAAA,EA+UL,QA/UK;AAAA,EA+UK,QA/UL;AAAA,EAgVL,QAhVK;AAAA,EAgVK,QAhVL;AAAA,EAiVL,QAjVK;AAAA,EAiVK,QAjVL;AAAA,EAkVL,QAlVK;AAAA,EAkVK,QAlVL;AAAA,EAmVL,QAnVK;AAAA,EAmVK,QAnVL;AAAA,EAoVL,QApVK;AAAA,EAoVK,QApVL;AAAA,EAqVL,QArVK;AAAA,EAqVK,QArVL;AAAA,EAsVL,QAtVK;AAAA,EAsVK,QAtVL;AAAA,EAuVL,QAvVK;AAAA,EAuVK,QAvVL;AAAA,EAwVL,QAxVK;AAAA,EAwVK,QAxVL;AAAA,EAyVL,QAzVK;AAAA,EAyVK,QAzVL;AAAA,EA0VL,QA1VK;AAAA,EA0VK,QA1VL;AAAA,EA2VL,QA3VK;AAAA,EA2VK,QA3VL;AAAA,EA4VL,QA5VK;AAAA,EA4VK,QA5VL;AAAA,EA6VL,QA7VK;AAAA,EA6VK,QA7VL;AAAA,EA8VL,QA9VK;AAAA,EA8VK,QA9VL;AAAA,EA+VL,QA/VK;AAAA,EA+VK,QA/VL;AAAA,EAgWL,QAhWK;AAAA,EAgWK,QAhWL;AAAA,EAiWL,QAjWK;AAAA,EAiWK,QAjWL;AAAA,EAkWL,QAlWK;AAAA,EAkWK,QAlWL;AAAA,EAmWL,QAnWK;AAAA,EAmWK,QAnWL;AAAA,EAoWL,QApWK;AAAA,EAoWK,QApWL;AAAA,EAqWL,QArWK;AAAA,EAqWK,QArWL;AAAA,EAsWL,QAtWK;AAAA,EAsWK,QAtWL;AAAA,EAuWL,QAvWK;AAAA,EAuWK,QAvWL;AAAA,EAwWL,QAxWK;AAAA,EAwWK,QAxWL;AAAA,EAyWL,QAzWK;AAAA,EAyWK,QAzWL;AAAA,EA0WL,QA1WK;AAAA,EA0WK,QA1WL;AAAA,EA2WL,QA3WK;AAAA,EA2WK,QA3WL;AAAA,EA4WL,QA5WK;AAAA,EA4WK,QA5WL;AAAA,EA6WL,QA7WK;AAAA,EA6WK,QA7WL;AAAA,EA8WL,QA9WK;AAAA,EA8WK,QA9WL;AAAA,EA+WL,QA/WK;AAAA,EA+WK,QA/WL;AAAA,EAgXL,QAhXK;AAAA,EAgXK,QAhXL;AAAA,EAiXL,QAjXK;AAAA,EAiXK,QAjXL;AAAA,EAkXL,QAlXK;AAAA,EAkXK,QAlXL;AAAA,EAmXL,QAnXK;AAAA,EAmXK,QAnXL;AAAA,EAoXL,QApXK;AAAA,EAoXK,QApXL;AAAA,EAqXL,QArXK;AAAA,EAqXK,QArXL;AAAA,EAsXL,QAtXK;AAAA,EAsXK,QAtXL;AAAA,EAuXL,QAvXK;AAAA,EAuXK,QAvXL;AAAA,EAwXL,QAxXK;AAAA,EAwXK,QAxXL;AAAA,EAyXL,QAzXK;AAAA,EAyXK,QAzXL;AAAA,EA0XL,QA1XK;AAAA,EA0XK,QA1XL;AAAA,EA2XL,QA3XK;AAAA,EA2XK,QA3XL;AAAA,EA4XL,QA5XK;AAAA,EA4XK,QA5XL;AAAA,EA6XL,QA7XK;AAAA,EA6XK,QA7XL;AAAA,EA8XL,QA9XK;AAAA,EA8XK,QA9XL;AAAA,EA+XL,QA/XK;AAAA,EA+XK,QA/XL;AAAA,EAgYL,QAhYK;AAAA,EAgYK,QAhYL;AAAA,EAiYL,QAjYK;AAAA,EAiYK,QAjYL;AAAA,EAkYL,QAlYK;AAAA,EAkYK,QAlYL;AAAA,EAmYL,QAnYK;AAAA,EAmYK,QAnYL;AAAA,EAoYL,QApYK;AAAA,EAoYK,QApYL;AAAA,EAqYL,QArYK;AAAA,EAqYK,QArYL;AAAA,EAsYL,QAtYK;AAAA,EAsYK,QAtYL;AAAA,EAuYL,QAvYK;AAAA,EAuYK,QAvYL;AAAA,EAwYL,QAxYK;AAAA,EAwYK,QAxYL;AAAA,EAyYL,QAzYK;AAAA,EAyYK,QAzYL;AAAA,EA0YL,QA1YK;AAAA,EA0YK,QA1YL;AAAA,EA2YL,QA3YK;AAAA,EA2YK,QA3YL;AAAA,EA4YL,QA5YK;AAAA,EA4YK,QA5YL;AAAA,EA6YL,QA7YK;AAAA,EA6YK,QA7YL;AAAA,EA8YL,QA9YK;AAAA,EA8YK,QA9YL;AAAA,EA+YL,QA/YK;AAAA,EA+YK,QA/YL;AAAA,EAgZL,QAhZK;AAAA,EAgZK,QAhZL;AAAA,EAiZL,QAjZK;AAAA,EAiZK,QAjZL;AAAA,EAkZL,QAlZK;AAAA,EAkZK,QAlZL;AAAA,EAmZL,QAnZK;AAAA,EAmZK,QAnZL;AAAA,EAoZL,QApZK;AAAA,EAoZK,QApZL;AAAA,EAqZL,QArZK;AAAA,EAqZK,QArZL;AAAA,EAsZL,QAtZK;AAAA,EAsZK,QAtZL;AAAA,EAuZL,QAvZK;AAAA,EAuZK,QAvZL;AAAA,EAwZL,QAxZK;AAAA,EAwZK,QAxZL;AAAA,EAyZL,QAzZK;AAAA,EAyZK,QAzZL;AAAA,EA0ZL,QA1ZK;AAAA,EA0ZK,QA1ZL;AAAA,EA2ZL,QA3ZK;AAAA,EA2ZK,QA3ZL;AAAA,EA4ZL,QA5ZK;AAAA,EA4ZK,QA5ZL;AAAA,EA6ZL,QA7ZK;AAAA,EA6ZK,QA7ZL;AAAA,EA8ZL,QA9ZK;AAAA,EA8ZK,QA9ZL;AAAA,EA+ZL,QA/ZK;AAAA,EA+ZK,QA/ZL;AAAA,EAgaL,QAhaK;AAAA,EAgaK,QAhaL;AAAA,EAiaL,QAjaK;AAAA,EAiaK,QAjaL;AAAA,EAkaL,QAlaK;AAAA,EAkaK,QAlaL;AAAA,EAmaL,QAnaK;AAAA,EAmaK,QAnaL;AAAA,EAoaL,QApaK;AAAA,EAoaK,QApaL;AAAA,EAqaL,QAraK;AAAA,EAqaK,QAraL;AAAA,EAsaL,QAtaK;AAAA,EAsaK,QAtaL;AAAA,EAuaL,QAvaK;AAAA,EAuaK,cAvaL;AAAA,EAwaL,QAxaK;AAAA,EAwaK,cAxaL;AAAA,EAyaL,QAzaK;AAAA,EAyaK,QAzaL;AAAA,EA0aL,QA1aK;AAAA,EA0aK,QA1aL;AAAA,EA2aL,QA3aK;AAAA,EA2aK,QA3aL;AAAA,EA4aL,QA5aK;AAAA,EA4aK,QA5aL;AAAA,EA6aL,QA7aK;AAAA,EA6aK,QA7aL;AAAA,EA8aL,QA9aK;AAAA,EA8aK,QA9aL;AAAA,EA+aL,QA/aK;AAAA,EA+aK,QA/aL;AAAA,EAgbL,QAhbK;AAAA,EAgbK,QAhbL;AAAA,EAibL,QAjbK;AAAA,EAibK,QAjbL;AAAA,EAkbL,QAlbK;AAAA,EAkbK,QAlbL;AAAA,EAmbL,QAnbK;AAAA,EAmbK,QAnbL;AAAA,EAobL,QApbK;AAAA,EAobK,QApbL;AAAA,EAqbL,QArbK;AAAA,EAqbK,QArbL;AAAA,EAsbL,QAtbK;AAAA,EAsbK,QAtbL;AAAA,EAubL,QAvbK;AAAA,EAubK,QAvbL;AAAA,EAwbL,QAxbK;AAAA,EAwbK,QAxbL;AAAA,EAybL,QAzbK;AAAA,EAybK,QAzbL;AAAA,EA0bL,QA1bK;AAAA,EA0bK,QA1bL;AAAA,EA2bL,QA3bK;AAAA,EA2bK,QA3bL;AAAA,EA4bL,QA5bK;AAAA,EA4bK,QA5bL;AAAA,EA6bL,QA7bK;AAAA,EA6bK,QA7bL;AAAA,EA8bL,QA9bK;AAAA,EA8bK,QA9bL;AAAA,EA+bL,QA/bK;AAAA,EA+bK,QA/bL;AAAA,EAgcL,QAhcK;AAAA,EAgcK,QAhcL;AAAA,EAicL,QAjcK;AAAA,EAicK,QAjcL;AAAA,EAkcL,QAlcK;AAAA,EAkcK,QAlcL;AAAA,EAmcL,QAncK;AAAA,EAmcK,QAncL;AAAA,EAocL,QApcK;AAAA,EAocK,QApcL;AAAA,EAqcL,QArcK;AAAA,EAqcK,QArcL;AAAA,EAscL,QAtcK;AAAA,EAscK,QAtcL;AAAA,EAucL,QAvcK;AAAA,EAucK,QAvcL;AAAA,EAwcL,QAxcK;AAAA,EAwcK,QAxcL;AAAA,EAycL,QAzcK;AAAA,EAycK,QAzcL;AAAA,EA0cL,QA1cK;AAAA,EA0cK,QA1cL;AAAA,EA2cL,QA3cK;AAAA,EA2cK,QA3cL;AAAA,EA4cL,QA5cK;AAAA,EA4cK,QA5cL;AAAA,EA6cL,QA7cK;AAAA,EA6cK,QA7cL;AAAA,EA8cL,QA9cK;AAAA,EA8cK,QA9cL;AAAA,EA+cL,QA/cK;AAAA,EA+cK,QA/cL;AAAA,EAgdL,QAhdK;AAAA,EAgdK,QAhdL;AAAA,EAidL,QAjdK;AAAA,EAidK,QAjdL;AAAA,EAkdL,QAldK;AAAA,EAkdK,QAldL;AAAA,EAmdL,QAndK;AAAA,EAmdK,QAndL;AAAA,EAodL,QApdK;AAAA,EAodK,QApdL;AAAA,EAqdL,QArdK;AAAA,EAqdK,QArdL;AAAA,EAsdL,QAtdK;AAAA,EAsdK,QAtdL;AAAA,EAudL,QAvdK;AAAA,EAudK,QAvdL;AAAA,EAwdL,QAxdK;AAAA,EAwdK,QAxdL;AAAA,EAydL,QAzdK;AAAA,EAydK,QAzdL;AAAA,EA0dL,QA1dK;AAAA,EA0dK,QA1dL;AAAA,EA2dL,QA3dK;AAAA,EA2dK,QA3dL;AAAA,EA4dL,QA5dK;AAAA,EA4dK,QA5dL;AAAA,EA6dL,QA7dK;AAAA,EA6dK,QA7dL;AAAA,EA8dL,QA9dK;AAAA,EA8dK,QA9dL;AAAA,EA+dL,QA/dK;AAAA,EA+dK,QA/dL;AAAA,EAgeL,QAheK;AAAA,EAgeK,QAheL;AAAA,EAieL,QAjeK;AAAA,EAieK,QAjeL;AAAA,EAkeL,QAleK;AAAA,EAkeK,QAleL;AAAA,EAmeL,QAneK;AAAA,EAmeK,QAneL;AAAA,EAoeL,QApeK;AAAA,EAoeK,QApeL;AAAA,EAqeL,QAreK;AAAA,EAqeK,QAreL;AAAA,EAseL,QAteK;AAAA,EAseK,QAteL;AAAA,EAueL,QAveK;AAAA,EAueK,QAveL;AAAA,EAweL,QAxeK;AAAA,EAweK,QAxeL;AAAA,EAyeL,QAzeK;AAAA,EAyeK,QAzeL;AAAA,EA0eL,QA1eK;AAAA,EA0eK,QA1eL;AAAA,EA2eL,QA3eK;AAAA,EA2eK,QA3eL;AAAA,EA4eL,QA5eK;AAAA,EA4eK,QA5eL;AAAA,EA6eL,QA7eK;AAAA,EA6eK,QA7eL;AAAA,EA8eL,QA9eK;AAAA,EA8eK,QA9eL;AAAA,EA+eL,QA/eK;AAAA,EA+eK,QA/eL;AAAA,EAgfL,QAhfK;AAAA,EAgfK,QAhfL;AAAA,EAifL,QAjfK;AAAA,EAifK,QAjfL;AAAA,EAkfL,QAlfK;AAAA,EAkfK,QAlfL;AAAA,EAmfL,QAnfK;AAAA,EAmfK,QAnfL;AAAA,EAofL,QApfK;AAAA,EAofK,QApfL;AAAA,EAqfL,QArfK;AAAA,EAqfK,QArfL;AAAA,EAsfL,QAtfK;AAAA,EAsfK,QAtfL;AAAA,EAufL,QAvfK;AAAA,EAufK,QAvfL;AAAA,EAwfL,QAxfK;AAAA,EAwfK,QAxfL;AAAA,EAyfL,QAzfK;AAAA,EAyfK,QAzfL;AAAA,EA0fL,QA1fK;AAAA,EA0fK,QA1fL;AAAA,EA2fL,QA3fK;AAAA,EA2fK,QA3fL;AAAA,EA4fL,QA5fK;AAAA,EA4fK,QA5fL;AAAA,EA6fL,QA7fK;AAAA,EA6fK,QA7fL;AAAA,EA8fL,QA9fK;AAAA,EA8fK,QA9fL;AAAA,EA+fL,QA/fK;AAAA,EA+fK,QA/fL;AAAA,EAggBL,QAhgBK;AAAA,EAggBK,QAhgBL;AAAA,EAigBL,QAjgBK;AAAA,EAigBK,QAjgBL;AAAA,EAkgBL,QAlgBK;AAAA,EAkgBK,QAlgBL;AAAA,EAmgBL,QAngBK;AAAA,EAmgBK,QAngBL;AAAA,EAogBL,QApgBK;AAAA,EAogBK,QApgBL;AAAA,EAqgBL,QArgBK;AAAA,EAqgBK,QArgBL;AAAA,EAsgBL,QAtgBK;AAAA,EAsgBK,QAtgBL;AAAA,EAugBL,QAvgBK;AAAA,EAugBK,oBAvgBL;AAAA,EAwgBL,QAxgBK;AAAA,EAwgBK,oBAxgBL;AAAA,EAygBL,QAzgBK;AAAA,EAygBK,oBAzgBL;AAAA,EA0gBL,QA1gBK;AAAA,EA0gBK,oBA1gBL;AAAA,EA2gBL,QA3gBK;AAAA,EA2gBK,oBA3gBL;AAAA,EA4gBL,QA5gBK;AAAA,EA4gBK,oBA5gBL;AAAA,EA6gBL,QA7gBK;AAAA,EA6gBK,oBA7gBL;AAAA,EA8gBL,QA9gBK;AAAA,EA8gBK,oBA9gBL;AAAA,EA+gBL,QA/gBK;AAAA,EA+gBK,oBA/gBL;AAAA,EAghBL,QAhhBK;AAAA,EAghBK,oBAhhBL;AAAA,EAihBL,QAjhBK;AAAA,EAihBK,oBAjhBL;AAAA,EAkhBL,QAlhBK;AAAA,EAkhBK,oBAlhBL;AAAA,EAmhBL,QAnhBK;AAAA,EAmhBK,oBAnhBL;AAAA,EAohBL,QAphBK;AAAA,EAohBK,oBAphBL;AAAA,EAqhBL,QArhBK;AAAA,EAqhBK,0BArhBL;AAAA,EAshBL,QAthBK;AAAA,EAshBK,0BAthBL;AAAA,EAuhBL,QAvhBK;AAAA,EAuhBK,0BAvhBL;AAAA,EAwhBL,QAxhBK;AAAA,EAwhBK,0BAxhBL;AAAA,EAyhBL,QAzhBK;AAAA,EAyhBK,0BAzhBL;AAAA,EA0hBL,QA1hBK;AAAA,EA0hBK,0BA1hBL;AAAA,EA2hBL,QA3hBK;AAAA,EA2hBK,0BA3hBL;AAAA,EA4hBL,QA5hBK;AAAA,EA4hBK,0BA5hBL;AAAA,EA6hBL,QA7hBK;AAAA,EA6hBK,0BA7hBL;AAAA,EA8hBL,QA9hBK;AAAA,EA8hBK,0BA9hBL;AAAA,EA+hBL,QA/hBK;AAAA,EA+hBK,0BA/hBL;AAAA,EAgiBL,QAhiBK;AAAA,EAgiBK,0BAhiBL;AAAA,EAiiBL,QAjiBK;AAAA,EAiiBK,0BAjiBL;AAAA,EAkiBL,QAliBK;AAAA,EAkiBK,0BAliBL;AAAA,EAmiBL,QAniBK;AAAA,EAmiBK,0BAniBL;AAAA,EAoiBL,QApiBK;AAAA,EAoiBK,4CApiBL;AAAA,EAqiBL,QAriBK;AAAA,EAqiBK,sCAriBL;AAAA,EAsiBL,QAtiBK;AAAA,EAsiBK,oBAtiBL;AAAA,EAuiBL,QAviBK;AAAA,EAuiBK,oBAviBL;AAAA,EAwiBL,QAxiBK;AAAA,EAwiBK,oBAxiBL;AAAA,EAyiBL,QAziBK;AAAA,EAyiBK,oBAziBL;AAAA,EA0iBL,QA1iBK;AAAA,EA0iBK,oBA1iBL;AAAA,EA2iBL,QA3iBK;AAAA,EA2iBK,oBA3iBL;AAAA,EA4iBL,QA5iBK;AAAA,EA4iBK,oBA5iBL;AAAA,EA6iBL,QA7iBK;AAAA,EA6iBK,oBA7iBL;AAAA,EA8iBL,QA9iBK;AAAA,EA8iBK,oBA9iBL;AAAA,EA+iBL,QA/iBK;AAAA,EA+iBK,oBA/iBL;AAAA,EAgjBL,QAhjBK;AAAA,EAgjBK,oBAhjBL;AAAA,EAijBL,QAjjBK;AAAA,EAijBK,oBAjjBL;AAAA,EAkjBL,QAljBK;AAAA,EAkjBK,oBAljBL;AAAA,EAmjBL,QAnjBK;AAAA,EAmjBK,oBAnjBL;AAAA,EAojBL,QApjBK;AAAA,EAojBK,oBApjBL;AAAA,EAqjBL,QArjBK;AAAA,EAqjBK,oBArjBL;AAAA,EAsjBL,QAtjBK;AAAA,EAsjBK,oBAtjBL;AAAA,EAujBL,QAvjBK;AAAA,EAujBK,oBAvjBL;AAAA,EAwjBL,QAxjBK;AAAA,EAwjBK,oBAxjBL;AAAA,EAyjBL,QAzjBK;AAAA,EAyjBK,oBAzjBL;AAAA,EA0jBL,QA1jBK;AAAA,EA0jBK,oBA1jBL;AAAA,EA2jBL,QA3jBK;AAAA,EA2jBK,oBA3jBL;AAAA,EA4jBL,QA5jBK;AAAA,EA4jBK,oBA5jBL;AAAA,EA6jBL,QA7jBK;AAAA,EA6jBK,oBA7jBL;AAAA,EA8jBL,QA9jBK;AAAA,EA8jBK,oBA9jBL;AAAA,EA+jBL,QA/jBK;AAAA,EA+jBK,oBA/jBL;AAAA,EAgkBL,QAhkBK;AAAA,EAgkBK,oBAhkBL;AAAA,EAikBL,QAjkBK;AAAA,EAikBK,oBAjkBL;AAAA,EAkkBL,QAlkBK;AAAA,EAkkBK,oBAlkBL;AAAA,EAmkBL,QAnkBK;AAAA,EAmkBK,oBAnkBL;AAAA,EAokBL,QApkBK;AAAA,EAokBK,oBApkBL;AAAA,EAqkBL,QArkBK;AAAA,EAqkBK,oBArkBL;AAAA,EAskBL,QAtkBK;AAAA,EAskBK,oBAtkBL;AAAA,EAukBL,QAvkBK;AAAA,EAukBK,oBAvkBL;AAAA,EAwkBL,QAxkBK;AAAA,EAwkBK,oBAxkBL;AAAA,EAykBL,QAzkBK;AAAA,EAykBK,oBAzkBL;AAAA,EA0kBL,QA1kBK;AAAA,EA0kBK,cA1kBL;AAAA,EA2kBL,QA3kBK;AAAA,EA2kBK,cA3kBL;AAAA,EA4kBL,QA5kBK;AAAA,EA4kBK,cA5kBL;AAAA,EA6kBL,QA7kBK;AAAA,EA6kBK,cA7kBL;AAAA,EA8kBL,QA9kBK;AAAA,EA8kBK,cA9kBL;AAAA,EA+kBL,QA/kBK;AAAA,EA+kBK,cA/kBL;AAAA,EAglBL,QAhlBK;AAAA,EAglBK,cAhlBL;AAAA,EAilBL,QAjlBK;AAAA,EAilBK,cAjlBL;AAAA,EAklBL,QAllBK;AAAA,EAklBK,cAllBL;AAAA,EAmlBL,QAnlBK;AAAA,EAmlBK,oBAnlBL;AAAA,EAolBL,QAplBK;AAAA,EAolBK,oBAplBL;AAAA,EAqlBL,QArlBK;AAAA,EAqlBK,oBArlBL;AAAA,EAslBL,QAtlBK;AAAA,EAslBK,cAtlBL;AAAA,EAulBL,QAvlBK;AAAA,EAulBK,cAvlBL;AAAA,EAwlBL,QAxlBK;AAAA,EAwlBK,cAxlBL;AAAA,EAylBL,QAzlBK;AAAA,EAylBK,cAzlBL;AAAA,EA0lBL,QA1lBK;AAAA,EA0lBK,cA1lBL;AAAA,EA2lBL,QA3lBK;AAAA,EA2lBK,cA3lBL;AAAA,EA4lBL,QA5lBK;AAAA,EA4lBK,cA5lBL;AAAA,EA6lBL,QA7lBK;AAAA,EA6lBK,cA7lBL;AAAA,EA8lBL,QA9lBK;AAAA,EA8lBK,cA9lBL;AAAA,EA+lBL,QA/lBK;AAAA,EA+lBK,cA/lBL;AAAA,EAgmBL,QAhmBK;AAAA,EAgmBK,oBAhmBL;AAAA,EAimBL,QAjmBK;AAAA,EAimBK,oBAjmBL;AAAA,EAkmBL,QAlmBK;AAAA,EAkmBK,oBAlmBL;AAAA,EAmmBL,QAnmBK;AAAA,EAmmBK,oBAnmBL;AAAA,EAomBL,QApmBK;AAAA,EAomBK,oBApmBL;AAAA,EAqmBL,QArmBK;AAAA,EAqmBK,oBArmBL;AAAA,EAsmBL,QAtmBK;AAAA,EAsmBK,oBAtmBL;AAAA,EAumBL,QAvmBK;AAAA,EAumBK,oBAvmBL;AAAA,EAwmBL,QAxmBK;AAAA,EAwmBK,oBAxmBL;AAAA,EAymBL,QAzmBK;AAAA,EAymBK,oBAzmBL;AAAA,EA0mBL,QA1mBK;AAAA,EA0mBK,oBA1mBL;AAAA,EA2mBL,QA3mBK;AAAA,EA2mBK,oBA3mBL;AAAA,EA4mBL,QA5mBK;AAAA,EA4mBK,oBA5mBL;AAAA,EA6mBL,QA7mBK;AAAA,EA6mBK,oBA7mBL;AAAA,EA8mBL,QA9mBK;AAAA,EA8mBK,oBA9mBL;AAAA,EA+mBL,QA/mBK;AAAA,EA+mBK,cA/mBL;AAAA,EAgnBL,QAhnBK;AAAA,EAgnBK,cAhnBL;AAAA,EAinBL,QAjnBK;AAAA,EAinBK,cAjnBL;AAAA,EAknBL,QAlnBK;AAAA,EAknBK,cAlnBL;AAAA,EAmnBL,QAnnBK;AAAA,EAmnBK,cAnnBL;AAAA,EAonBL,QApnBK;AAAA,EAonBK,cApnBL;AAAA,EAqnBL,QArnBK;AAAA,EAqnBK,cArnBL;AAAA,EAsnBL,QAtnBK;AAAA,EAsnBK,cAtnBL;AAAA,EAunBL,QAvnBK;AAAA,EAunBK,cAvnBL;AAAA,EAwnBL,QAxnBK;AAAA,EAwnBK,oBAxnBL;AAAA,EAynBL,QAznBK;AAAA,EAynBK,oBAznBL;AAAA,EA0nBL,QA1nBK;AAAA,EA0nBK,oBA1nBL;AAAA,EA2nBL,QA3nBK;AAAA,EA2nBK,oBA3nBL;AAAA,EA4nBL,QA5nBK;AAAA,EA4nBK,oBA5nBL;AAAA,EA6nBL,QA7nBK;AAAA,EA6nBK,oBA7nBL;AAAA,EA8nBL,QA9nBK;AAAA,EA8nBK,oBA9nBL;AAAA,EA+nBL,QA/nBK;AAAA,EA+nBK,oBA/nBL;AAAA,EAgoBL,QAhoBK;AAAA,EAgoBK,oBAhoBL;AAAA,EAioBL,QAjoBK;AAAA,EAioBK,oBAjoBL;AAAA,EAkoBL,QAloBK;AAAA,EAkoBK,oBAloBL;AAAA,EAmoBL,QAnoBK;AAAA,EAmoBK,oBAnoBL;AAAA,EAooBL,QApoBK;AAAA,EAooBK,oBApoBL;AAAA,EAqoBL,QAroBK;AAAA,EAqoBK,oBAroBL;AAAA,EAsoBL,QAtoBK;AAAA,EAsoBK,oBAtoBL;AAAA,EAuoBL,QAvoBK;AAAA,EAuoBK,oBAvoBL;AAAA,EAwoBL,QAxoBK;AAAA,EAwoBK,oBAxoBL;AAAA,EAyoBL,QAzoBK;AAAA,EAyoBK,oBAzoBL;AAAA,EA0oBL,QA1oBK;AAAA,EA0oBK,oBA1oBL;AAAA,EA2oBL,QA3oBK;AAAA,EA2oBK,oBA3oBL;AAAA,EA4oBL,QA5oBK;AAAA,EA4oBK,oBA5oBL;AAAA,EA6oBL,QA7oBK;AAAA,EA6oBK,oBA7oBL;AAAA,EA8oBL,QA9oBK;AAAA,EA8oBK,cA9oBL;AAAA,EA+oBL,QA/oBK;AAAA,EA+oBK,cA/oBL;AAAA,EAgpBL,QAhpBK;AAAA,EAgpBK,cAhpBL;AAAA,EAipBL,QAjpBK;AAAA,EAipBK,oBAjpBL;AAAA,EAkpBL,QAlpBK;AAAA,EAkpBK,oBAlpBL;AAAA,EAmpBL,QAnpBK;AAAA,EAmpBK,cAnpBL;AAAA,EAopBL,QAppBK;AAAA,EAopBK,cAppBL;AAAA,EAqpBL,QArpBK;AAAA,EAqpBK,cArpBL;AAAA,EAspBL,QAtpBK;AAAA,EAspBK,cAtpBL;AAAA,EAupBL,QAvpBK;AAAA,EAupBK,cAvpBL;AAAA,EAwpBL,QAxpBK;AAAA,EAwpBK,cAxpBL;AAAA,EAypBL,QAzpBK;AAAA,EAypBK,cAzpBL;AAAA,EA0pBL,QA1pBK;AAAA,EA0pBK,cA1pBL;AAAA,EA2pBL,QA3pBK;AAAA,EA2pBK,QA3pBL;AAAA,EA4pBL,QA5pBK;AAAA,EA4pBK,QA5pBL;AAAA,EA6pBL,QA7pBK;AAAA,EA6pBK,QA7pBL;AAAA,EA8pBL,QA9pBK;AAAA,EA8pBK,QA9pBL;AAAA,EA+pBL,QA/pBK;AAAA,EA+pBK,QA/pBL;AAAA,EAgqBL,QAhqBK;AAAA,EAgqBK,QAhqBL;AAAA,EAiqBL,QAjqBK;AAAA,EAiqBK,QAjqBL;AAAA,EAkqBL,QAlqBK;AAAA,EAkqBK,QAlqBL;AAAA,EAmqBL,QAnqBK;AAAA,EAmqBK,QAnqBL;AAAA,EAoqBL,QApqBK;AAAA,EAoqBK,QApqBL;AAAA,EAqqBL,QArqBK;AAAA,EAqqBK,QArqBL;AAAA,EAsqBL,QAtqBK;AAAA,EAsqBK,QAtqBL;AAAA,EAuqBL,QAvqBK;AAAA,EAuqBK,QAvqBL;AAAA,EAwqBL,QAxqBK;AAAA,EAwqBK,QAxqBL;AAAA,EAyqBL,QAzqBK;AAAA,EAyqBK,QAzqBL;AAAA,EA0qBL,QA1qBK;AAAA,EA0qBK,QA1qBL;AAAA,EA2qBL,QA3qBK;AAAA,EA2qBK,QA3qBL;AAAA,EA4qBL,QA5qBK;AAAA,EA4qBK,QA5qBL;AAAA,EA6qBL,QA7qBK;AAAA,EA6qBK,QA7qBL;AAAA,EA8qBL,QA9qBK;AAAA,EA8qBK,QA9qBL;AAAA,EA+qBL,QA/qBK;AAAA,EA+qBK,QA/qBL;AAAA,EAgrBL,QAhrBK;AAAA,EAgrBK,QAhrBL;AAAA,EAirBL,QAjrBK;AAAA,EAirBK,QAjrBL;AAAA,EAkrBL,QAlrBK;AAAA,EAkrBK,QAlrBL;AAAA,EAmrBL,QAnrBK;AAAA,EAmrBK,QAnrBL;AAAA,EAorBL,QAprBK;AAAA,EAorBK,QAprBL;AAAA,EAqrBL,QArrBK;AAAA,EAqrBK,QArrBL;AAAA,EAsrBL,QAtrBK;AAAA,EAsrBK,QAtrBL;AAAA,EAurBL,QAvrBK;AAAA,EAurBK,QAvrBL;AAAA,EAwrBL,QAxrBK;AAAA,EAwrBK,QAxrBL;AAAA,EAyrBL,QAzrBK;AAAA,EAyrBK,QAzrBL;AAAA,EA0rBL,QA1rBK;AAAA,EA0rBK,QA1rBL;AAAA,EA2rBL,QA3rBK;AAAA,EA2rBK,QA3rBL;AAAA,EA4rBL,QA5rBK;AAAA,EA4rBK,QA5rBL;AAAA,EA6rBL,QA7rBK;AAAA,EA6rBK,QA7rBL;AAAA,EA8rBL,QA9rBK;AAAA,EA8rBK,QA9rBL;AAAA,EA+rBL,QA/rBK;AAAA,EA+rBK,QA/rBL;AAAA,EAgsBL,QAhsBK;AAAA,EAgsBK,QAhsBL;AAAA,EAisBL,QAjsBK;AAAA,EAisBK,QAjsBL;AAAA,EAksBL,QAlsBK;AAAA,EAksBK,QAlsBL;AAAA,EAmsBL,QAnsBK;AAAA,EAmsBK,QAnsBL;AAAA,EAosBL,QApsBK;AAAA,EAosBK,QApsBL;AAAA,EAqsBL,QArsBK;AAAA,EAqsBK,QArsBL;AAAA,EAssBL,QAtsBK;AAAA,EAssBK,QAtsBL;AAAA,EAusBL,QAvsBK;AAAA,EAusBK,QAvsBL;AAAA,EAwsBL,QAxsBK;AAAA,EAwsBK,QAxsBL;AAAA,EAysBL,QAzsBK;AAAA,EAysBK,QAzsBL;AAAA,EA0sBL,QA1sBK;AAAA,EA0sBK,QA1sBL;AAAA,EA2sBL,QA3sBK;AAAA,EA2sBK,QA3sBL;AAAA,EA4sBL,QA5sBK;AAAA,EA4sBK,QA5sBL;AAAA,EA6sBL,QA7sBK;AAAA,EA6sBK,QA7sBL;AAAA,EA8sBL,QA9sBK;AAAA,EA8sBK,QA9sBL;AAAA,EA+sBL,QA/sBK;AAAA,EA+sBK,QA/sBL;AAAA,EAgtBL,QAhtBK;AAAA,EAgtBK,QAhtBL;AAAA,EAitBL,QAjtBK;AAAA,EAitBK,QAjtBL;AAAA,EAktBL,QAltBK;AAAA,EAktBK,QAltBL;AAAA,EAmtBL,QAntBK;AAAA,EAmtBK,QAntBL;AAAA,EAotBL,QAptBK;AAAA,EAotBK,QAptBL;AAAA,EAqtBL,QArtBK;AAAA,EAqtBK,QArtBL;AAAA,EAstBL,QAttBK;AAAA,EAstBK,QAttBL;AAAA,EAutBL,QAvtBK;AAAA,EAutBK,QAvtBL;AAAA,EAwtBL,QAxtBK;AAAA,EAwtBK,QAxtBL;AAAA,EAytBL,QAztBK;AAAA,EAytBK,QAztBL;AAAA,EA0tBL,QA1tBK;AAAA,EA0tBK,QA1tBL;AAAA,EA2tBL,QA3tBK;AAAA,EA2tBK,QA3tBL;AAAA,EA4tBL,QA5tBK;AAAA,EA4tBK,QA5tBL;AAAA,EA6tBL,QA7tBK;AAAA,EA6tBK,QA7tBL;AAAA,EA8tBL,QA9tBK;AAAA,EA8tBK,QA9tBL;AAAA,EA+tBL,QA/tBK;AAAA,EA+tBK,QA/tBL;AAAA,EAguBL,QAhuBK;AAAA,EAguBK,QAhuBL;AAAA,EAiuBL,QAjuBK;AAAA,EAiuBK,QAjuBL;AAAA,EAkuBL,QAluBK;AAAA,EAkuBK,QAluBL;AAAA,EAmuBL,QAnuBK;AAAA,EAmuBK,QAnuBL;AAAA,EAouBL,QApuBK;AAAA,EAouBK,QApuBL;AAAA,EAquBL,QAruBK;AAAA,EAquBK,QAruBL;AAAA,EAsuBL,QAtuBK;AAAA,EAsuBK,QAtuBL;AAAA,EAuuBL,QAvuBK;AAAA,EAuuBK,QAvuBL;AAAA,EAwuBL,QAxuBK;AAAA,EAwuBK,QAxuBL;AAAA,EAyuBL,QAzuBK;AAAA,EAyuBK,QAzuBL;AAAA,EA0uBL,QA1uBK;AAAA,EA0uBK,QA1uBL;AAAA,EA2uBL,QA3uBK;AAAA,EA2uBK,QA3uBL;AAAA,EA4uBL,QA5uBK;AAAA,EA4uBK,QA5uBL;AAAA,EA6uBL,QA7uBK;AAAA,EA6uBK,QA7uBL;AAAA,EA8uBL,QA9uBK;AAAA,EA8uBK,QA9uBL;AAAA,EA+uBL,QA/uBK;AAAA,EA+uBK,QA/uBL;AAAA,EAgvBL,QAhvBK;AAAA,EAgvBK,QAhvBL;AAAA,EAivBL,QAjvBK;AAAA,EAivBK,QAjvBL;AAAA,EAkvBL,QAlvBK;AAAA,EAkvBK,QAlvBL;AAAA,EAmvBL,QAnvBK;AAAA,EAmvBK,QAnvBL;AAAA,EAovBL,QApvBK;AAAA,EAovBK,QApvBL;AAAA,EAqvBL,QArvBK;AAAA,EAqvBK,QArvBL;AAAA,EAsvBL,QAtvBK;AAAA,EAsvBK,QAtvBL;AAAA,EAuvBL,QAvvBK;AAAA,EAuvBK,QAvvBL;AAAA,EAwvBL,QAxvBK;AAAA,EAwvBK,QAxvBL;AAAA,EAyvBL,QAzvBK;AAAA,EAyvBK,QAzvBL;AAAA,EA0vBL,QA1vBK;AAAA,EA0vBK,QA1vBL;AAAA,EA2vBL,QA3vBK;AAAA,EA2vBK,QA3vBL;AAAA,EA4vBL,QA5vBK;AAAA,EA4vBK,QA5vBL;AAAA,EA6vBL,QA7vBK;AAAA,EA6vBK,QA7vBL;AAAA,EA8vBL,QA9vBK;AAAA,EA8vBK,QA9vBL;AAAA,EA+vBL,QA/vBK;AAAA,EA+vBK,QA/vBL;AAAA,EAgwBL,QAhwBK;AAAA,EAgwBK,QAhwBL;AAAA,EAiwBL,QAjwBK;AAAA,EAiwBK,QAjwBL;AAAA,EAkwBL,QAlwBK;AAAA,EAkwBK,QAlwBL;AAAA,EAmwBL,QAnwBK;AAAA,EAmwBK,QAnwBL;AAAA,EAowBL,QApwBK;AAAA,EAowBK,QApwBL;AAAA,EAqwBL,QArwBK;AAAA,EAqwBK,QArwBL;AAAA,EAswBL,QAtwBK;AAAA,EAswBK,QAtwBL;AAAA,EAuwBL,QAvwBK;AAAA,EAuwBK,QAvwBL;AAAA,EAwwBL,QAxwBK;AAAA,EAwwBK,QAxwBL;AAAA,EAywBL,QAzwBK;AAAA,EAywBK,QAzwBL;AAAA,EA0wBL,QA1wBK;AAAA,EA0wBK,QA1wBL;AAAA,EA2wBL,QA3wBK;AAAA,EA2wBK,QA3wBL;AAAA,EA4wBL,QA5wBK;AAAA,EA4wBK,QA5wBL;AAAA,EA6wBL,QA7wBK;AAAA,EA6wBK,QA7wBL;AAAA,EA8wBL,QA9wBK;AAAA,EA8wBK,QA9wBL;AAAA,EA+wBL,QA/wBK;AAAA,EA+wBK,QA/wBL;AAAA,EAgxBL,QAhxBK;AAAA,EAgxBK,QAhxBL;AAAA,EAixBL,QAjxBK;AAAA,EAixBK,QAjxBL;AAAA,EAkxBL,QAlxBK;AAAA,EAkxBK,QAlxBL;AAAA,EAmxBL,QAnxBK;AAAA,EAmxBK,QAnxBL;AAAA,EAoxBL,QApxBK;AAAA,EAoxBK,cApxBL;AAAA,EAqxBL,QArxBK;AAAA,EAqxBK,cArxBL;AAAA,EAsxBL,QAtxBK;AAAA,EAsxBK,cAtxBL;AAAA,EAuxBL,QAvxBK;AAAA,EAuxBK,cAvxBL;AAAA,EAwxBL,QAxxBK;AAAA,EAwxBK,cAxxBL;AAAA,EAyxBL,QAzxBK;AAAA,EAyxBK,cAzxBL;AAAA,EA0xBL,QA1xBK;AAAA,EA0xBK,cA1xBL;AAAA,EA2xBL,QA3xBK;AAAA,EA2xBK,cA3xBL;AAAA,EA4xBL,QA5xBK;AAAA,EA4xBK,cA5xBL;AAAA,EA6xBL,QA7xBK;AAAA,EA6xBK,cA7xBL;AAAA,EA8xBL,QA9xBK;AAAA,EA8xBK,cA9xBL;AAAA,EA+xBL,QA/xBK;AAAA,EA+xBK,cA/xBL;AAAA,EAgyBL,QAhyBK;AAAA,EAgyBK,cAhyBL;AAAA,EAiyBL,QAjyBK;AAAA,EAiyBK,cAjyBL;AAAA,EAkyBL,QAlyBK;AAAA,EAkyBK,cAlyBL;AAAA,EAmyBL,QAnyBK;AAAA,EAmyBK,cAnyBL;AAAA,EAoyBL,QApyBK;AAAA,EAoyBK,cApyBL;AAAA,EAqyBL,QAryBK;AAAA,EAqyBK,cAryBL;AAAA,EAsyBL,QAtyBK;AAAA,EAsyBK,QAtyBL;AAAA,EAuyBL,QAvyBK;AAAA,EAuyBK,QAvyBL;AAAA,EAwyBL,QAxyBK;AAAA,EAwyBK,QAxyBL;AAAA,EAyyBL,QAzyBK;AAAA,EAyyBK,QAzyBL;AAAA,EA0yBL,QA1yBK;AAAA,EA0yBK,cA1yBL;AAAA,EA2yBL,QA3yBK;AAAA,EA2yBK,cA3yBL;AAAA,EA4yBL,QA5yBK;AAAA,EA4yBK,cA5yBL;AAAA,EA6yBL,QA7yBK;AAAA,EA6yBK,cA7yBL;AAAA,EA8yBL,QA9yBK;AAAA,EA8yBK,cA9yBL;AAAA,EA+yBL,QA/yBK;AAAA,EA+yBK,cA/yBL;AAAA,EAgzBL,QAhzBK;AAAA,EAgzBK,cAhzBL;AAAA,EAizBL,QAjzBK;AAAA,EAizBK,cAjzBL;AAAA,EAkzBL,QAlzBK;AAAA,EAkzBK,cAlzBL;AAAA,EAmzBL,QAnzBK;AAAA,EAmzBK,cAnzBL;AAAA,EAozBL,QApzBK;AAAA,EAozBK,cApzBL;AAAA,EAqzBL,QArzBK;AAAA,EAqzBK,cArzBL;AAAA,EAszBL,QAtzBK;AAAA,EAszBK,cAtzBL;AAAA,EAuzBL,QAvzBK;AAAA,EAuzBK,cAvzBL;AAAA,EAwzBL,QAxzBK;AAAA,EAwzBK,cAxzBL;AAAA,EAyzBL,QAzzBK;AAAA,EAyzBK,cAzzBL;AAAA,EA0zBL,QA1zBK;AAAA,EA0zBK,cA1zBL;AAAA,EA2zBL,QA3zBK;AAAA,EA2zBK,cA3zBL;AAAA,EA4zBL,QA5zBK;AAAA,EA4zBK,cA5zBL;AAAA,EA6zBL,QA7zBK;AAAA,EA6zBK,cA7zBL;AAAA,EA8zBL,QA9zBK;AAAA,EA8zBK,cA9zBL;AAAA,EA+zBL,QA/zBK;AAAA,EA+zBK,cA/zBL;AAAA,EAg0BL,QAh0BK;AAAA,EAg0BK,cAh0BL;AAAA,EAi0BL,QAj0BK;AAAA,EAi0BK,cAj0BL;AAAA,EAk0BL,QAl0BK;AAAA,EAk0BK,cAl0BL;AAAA,EAm0BL,QAn0BK;AAAA,EAm0BK,cAn0BL;AAAA,EAo0BL,QAp0BK;AAAA,EAo0BK,cAp0BL;AAAA,EAq0BL,QAr0BK;AAAA,EAq0BK,cAr0BL;AAAA,EAs0BL,QAt0BK;AAAA,EAs0BK,cAt0BL;AAAA,EAu0BL,QAv0BK;AAAA,EAu0BK,cAv0BL;AAAA,EAw0BL,QAx0BK;AAAA,EAw0BK,cAx0BL;AAAA,EAy0BL,QAz0BK;AAAA,EAy0BK,cAz0BL;AAAA,EA00BL,QA10BK;AAAA,EA00BK,cA10BL;AAAA,EA20BL,QA30BK;AAAA,EA20BK,cA30BL;AAAA,EA40BL,QA50BK;AAAA,EA40BK,cA50BL;AAAA,EA60BL,QA70BK;AAAA,EA60BK,cA70BL;AAAA,EA80BL,QA90BK;AAAA,EA80BK,cA90BL;AAAA,EA+0BL,QA/0BK;AAAA,EA+0BK,cA/0BL;AAAA,EAg1BL,QAh1BK;AAAA,EAg1BK,cAh1BL;AAAA,EAi1BL,QAj1BK;AAAA,EAi1BK,cAj1BL;AAAA,EAk1BL,QAl1BK;AAAA,EAk1BK,cAl1BL;AAAA,EAm1BL,QAn1BK;AAAA,EAm1BK,cAn1BL;AAAA,EAo1BL,QAp1BK;AAAA,EAo1BK,cAp1BL;AAAA,EAq1BL,QAr1BK;AAAA,EAq1BK,cAr1BL;AAAA,EAs1BL,QAt1BK;AAAA,EAs1BK,cAt1BL;AAAA,EAu1BL,QAv1BK;AAAA,EAu1BK,cAv1BL;AAAA,EAw1BL,QAx1BK;AAAA,EAw1BK,cAx1BL;AAAA,EAy1BL,QAz1BK;AAAA,EAy1BK,cAz1BL;AAAA,EA01BL,QA11BK;AAAA,EA01BK,cA11BL;AAAA,EA21BL,QA31BK;AAAA,EA21BK,cA31BL;AAAA,EA41BL,QA51BK;AAAA,EA41BK,cA51BL;AAAA,EA61BL,QA71BK;AAAA,EA61BK,cA71BL;AAAA,EA81BL,QA91BK;AAAA,EA81BK,cA91BL;AAAA,EA+1BL,QA/1BK;AAAA,EA+1BK,cA/1BL;AAAA,EAg2BL,QAh2BK;AAAA,EAg2BK,cAh2BL;AAAA,EAi2BL,QAj2BK;AAAA,EAi2BK,cAj2BL;AAAA,EAk2BL,QAl2BK;AAAA,EAk2BK,cAl2BL;AAAA,EAm2BL,QAn2BK;AAAA,EAm2BK,cAn2BL;AAAA,EAo2BL,QAp2BK;AAAA,EAo2BK,cAp2BL;AAAA,EAq2BL,QAr2BK;AAAA,EAq2BK,cAr2BL;AAAA,EAs2BL,QAt2BK;AAAA,EAs2BK,cAt2BL;AAAA,EAu2BL,QAv2BK;AAAA,EAu2BK,cAv2BL;AAAA,EAw2BL,QAx2BK;AAAA,EAw2BK,cAx2BL;AAAA,EAy2BL,QAz2BK;AAAA,EAy2BK,cAz2BL;AAAA,EA02BL,QA12BK;AAAA,EA02BK,cA12BL;AAAA,EA22BL,QA32BK;AAAA,EA22BK,cA32BL;AAAA,EA42BL,QA52BK;AAAA,EA42BK,cA52BL;AAAA,EA62BL,QA72BK;AAAA,EA62BK,cA72BL;AAAA,EA82BL,QA92BK;AAAA,EA82BK,cA92BL;AAAA,EA+2BL,QA/2BK;AAAA,EA+2BK,cA/2BL;AAAA,EAg3BL,QAh3BK;AAAA,EAg3BK,cAh3BL;AAAA,EAi3BL,QAj3BK;AAAA,EAi3BK,cAj3BL;AAAA,EAk3BL,QAl3BK;AAAA,EAk3BK,cAl3BL;AAAA,EAm3BL,QAn3BK;AAAA,EAm3BK,cAn3BL;AAAA,EAo3BL,QAp3BK;AAAA,EAo3BK,cAp3BL;AAAA,EAq3BL,QAr3BK;AAAA,EAq3BK,cAr3BL;AAAA,EAs3BL,QAt3BK;AAAA,EAs3BK,cAt3BL;AAAA,EAu3BL,QAv3BK;AAAA,EAu3BK,cAv3BL;AAAA,EAw3BL,QAx3BK;AAAA,EAw3BK,cAx3BL;AAAA,EAy3BL,QAz3BK;AAAA,EAy3BK,cAz3BL;AAAA,EA03BL,QA13BK;AAAA,EA03BK,cA13BL;AAAA,EA23BL,QA33BK;AAAA,EA23BK,cA33BL;AAAA,EA43BL,QA53BK;AAAA,EA43BK,cA53BL;AAAA,EA63BL,QA73BK;AAAA,EA63BK,cA73BL;AAAA,EA83BL,QA93BK;AAAA,EA83BK,cA93BL;AAAA,EA+3BL,QA/3BK;AAAA,EA+3BK,cA/3BL;AAAA,EAg4BL,QAh4BK;AAAA,EAg4BK,cAh4BL;AAAA,EAi4BL,QAj4BK;AAAA,EAi4BK,cAj4BL;AAAA,EAk4BL,QAl4BK;AAAA,EAk4BK,cAl4BL;AAAA,EAm4BL,QAn4BK;AAAA,EAm4BK,cAn4BL;AAAA,EAo4BL,QAp4BK;AAAA,EAo4BK,cAp4BL;AAAA,EAq4BL,QAr4BK;AAAA,EAq4BK,cAr4BL;AAAA,EAs4BL,QAt4BK;AAAA,EAs4BK,cAt4BL;AAAA,EAu4BL,QAv4BK;AAAA,EAu4BK,cAv4BL;AAAA,EAw4BL,QAx4BK;AAAA,EAw4BK,oBAx4BL;AAAA,EAy4BL,QAz4BK;AAAA,EAy4BK,oBAz4BL;AAAA,EA04BL,QA14BK;AAAA,EA04BK,oBA14BL;AAAA,EA24BL,QA34BK;AAAA,EA24BK,oBA34BL;AAAA,EA44BL,QA54BK;AAAA,EA44BK,oBA54BL;AAAA,EA64BL,QA74BK;AAAA,EA64BK,oBA74BL;AAAA,EA84BL,QA94BK;AAAA,EA84BK,cA94BL;AAAA,EA+4BL,QA/4BK;AAAA,EA+4BK,cA/4BL;AAAA,EAg5BL,QAh5BK;AAAA,EAg5BK,cAh5BL;AAAA,EAi5BL,QAj5BK;AAAA,EAi5BK,cAj5BL;AAAA,EAk5BL,QAl5BK;AAAA,EAk5BK,cAl5BL;AAAA,EAm5BL,QAn5BK;AAAA,EAm5BK,cAn5BL;AAAA,EAo5BL,QAp5BK;AAAA,EAo5BK,cAp5BL;AAAA,EAq5BL,QAr5BK;AAAA,EAq5BK,cAr5BL;AAAA,EAs5BL,QAt5BK;AAAA,EAs5BK,cAt5BL;AAAA,EAu5BL,QAv5BK;AAAA,EAu5BK,cAv5BL;AAAA,EAw5BL,QAx5BK;AAAA,EAw5BK,cAx5BL;AAAA,EAy5BL,QAz5BK;AAAA,EAy5BK,cAz5BL;AAAA,EA05BL,QA15BK;AAAA,EA05BK,cA15BL;AAAA,EA25BL,QA35BK;AAAA,EA25BK,cA35BL;AAAA,EA45BL,QA55BK;AAAA,EA45BK,cA55BL;AAAA,EA65BL,QA75BK;AAAA,EA65BK,cA75BL;AAAA,EA85BL,QA95BK;AAAA,EA85BK,cA95BL;AAAA,EA+5BL,QA/5BK;AAAA,EA+5BK,cA/5BL;AAAA,EAg6BL,QAh6BK;AAAA,EAg6BK,cAh6BL;AAAA,EAi6BL,QAj6BK;AAAA,EAi6BK,cAj6BL;AAAA,EAk6BL,QAl6BK;AAAA,EAk6BK,cAl6BL;AAAA,EAm6BL,QAn6BK;AAAA,EAm6BK,cAn6BL;AAAA,EAo6BL,QAp6BK;AAAA,EAo6BK,cAp6BL;AAAA,EAq6BL,QAr6BK;AAAA,EAq6BK,cAr6BL;AAAA,EAs6BL,QAt6BK;AAAA,EAs6BK,cAt6BL;AAAA,EAu6BL,QAv6BK;AAAA,EAu6BK,cAv6BL;AAAA,EAw6BL,QAx6BK;AAAA,EAw6BK,cAx6BL;AAAA,EAy6BL,QAz6BK;AAAA,EAy6BK,cAz6BL;AAAA,EA06BL,QA16BK;AAAA,EA06BK,cA16BL;AAAA,EA26BL,QA36BK;AAAA,EA26BK,cA36BL;AAAA,EA46BL,QA56BK;AAAA,EA46BK,cA56BL;AAAA,EA66BL,QA76BK;AAAA,EA66BK,cA76BL;AAAA,EA86BL,QA96BK;AAAA,EA86BK,cA96BL;AAAA,EA+6BL,QA/6BK;AAAA,EA+6BK,cA/6BL;AAAA,EAg7BL,QAh7BK;AAAA,EAg7BK,cAh7BL;AAAA,EAi7BL,QAj7BK;AAAA,EAi7BK,cAj7BL;AAAA,EAk7BL,QAl7BK;AAAA,EAk7BK,cAl7BL;AAAA,EAm7BL,QAn7BK;AAAA,EAm7BK,cAn7BL;AAAA,EAo7BL,QAp7BK;AAAA,EAo7BK,cAp7BL;AAAA,EAq7BL,QAr7BK;AAAA,EAq7BK,cAr7BL;AAAA,EAs7BL,QAt7BK;AAAA,EAs7BK,cAt7BL;AAAA,EAu7BL,QAv7BK;AAAA,EAu7BK,cAv7BL;AAAA,EAw7BL,QAx7BK;AAAA,EAw7BK,cAx7BL;AAAA,EAy7BL,QAz7BK;AAAA,EAy7BK,cAz7BL;AAAA,EA07BL,QA17BK;AAAA,EA07BK,cA17BL;AAAA,EA27BL,QA37BK;AAAA,EA27BK,cA37BL;AAAA,EA47BL,QA57BK;AAAA,EA47BK,cA57BL;AAAA,EA67BL,QA77BK;AAAA,EA67BK,cA77BL;AAAA,EA87BL,QA97BK;AAAA,EA87BK,cA97BL;AAAA,EA+7BL,QA/7BK;AAAA,EA+7BK,cA/7BL;AAAA,EAg8BL,QAh8BK;AAAA,EAg8BK,cAh8BL;AAAA,EAi8BL,QAj8BK;AAAA,EAi8BK,cAj8BL;AAAA,EAk8BL,QAl8BK;AAAA,EAk8BK,cAl8BL;AAAA,EAm8BL,QAn8BK;AAAA,EAm8BK,cAn8BL;AAAA,EAo8BL,QAp8BK;AAAA,EAo8BK,cAp8BL;AAAA,EAq8BL,QAr8BK;AAAA,EAq8BK,cAr8BL;AAAA,EAs8BL,QAt8BK;AAAA,EAs8BK,cAt8BL;AAAA,EAu8BL,QAv8BK;AAAA,EAu8BK,cAv8BL;AAAA,EAw8BL,QAx8BK;AAAA,EAw8BK,cAx8BL;AAAA,EAy8BL,QAz8BK;AAAA,EAy8BK,cAz8BL;AAAA,EA08BL,QA18BK;AAAA,EA08BK,cA18BL;AAAA,EA28BL,QA38BK;AAAA,EA28BK,cA38BL;AAAA,EA48BL,QA58BK;AAAA,EA48BK,cA58BL;AAAA,EA68BL,QA78BK;AAAA,EA68BK,cA78BL;AAAA,EA88BL,QA98BK;AAAA,EA88BK,cA98BL;AAAA,EA+8BL,QA/8BK;AAAA,EA+8BK,cA/8BL;AAAA,EAg9BL,QAh9BK;AAAA,EAg9BK,cAh9BL;AAAA,EAi9BL,QAj9BK;AAAA,EAi9BK,cAj9BL;AAAA,EAk9BL,QAl9BK;AAAA,EAk9BK,cAl9BL;AAAA,EAm9BL,QAn9BK;AAAA,EAm9BK,cAn9BL;AAAA,EAo9BL,QAp9BK;AAAA,EAo9BK,cAp9BL;AAAA,EAq9BL,QAr9BK;AAAA,EAq9BK,cAr9BL;AAAA,EAs9BL,QAt9BK;AAAA,EAs9BK,cAt9BL;AAAA,EAu9BL,QAv9BK;AAAA,EAu9BK,cAv9BL;AAAA,EAw9BL,QAx9BK;AAAA,EAw9BK,cAx9BL;AAAA,EAy9BL,QAz9BK;AAAA,EAy9BK,cAz9BL;AAAA,EA09BL,QA19BK;AAAA,EA09BK,cA19BL;AAAA,EA29BL,QA39BK;AAAA,EA29BK,cA39BL;AAAA,EA49BL,QA59BK;AAAA,EA49BK,cA59BL;AAAA,EA69BL,QA79BK;AAAA,EA69BK,cA79BL;AAAA,EA89BL,QA99BK;AAAA,EA89BK,cA99BL;AAAA,EA+9BL,QA/9BK;AAAA,EA+9BK,cA/9BL;AAAA,EAg+BL,QAh+BK;AAAA,EAg+BK,cAh+BL;AAAA,EAi+BL,QAj+BK;AAAA,EAi+BK,cAj+BL;AAAA,EAk+BL,QAl+BK;AAAA,EAk+BK,cAl+BL;AAAA,EAm+BL,QAn+BK;AAAA,EAm+BK,cAn+BL;AAAA,EAo+BL,QAp+BK;AAAA,EAo+BK,cAp+BL;AAAA,EAq+BL,QAr+BK;AAAA,EAq+BK,cAr+BL;AAAA,EAs+BL,QAt+BK;AAAA,EAs+BK,cAt+BL;AAAA,EAu+BL,QAv+BK;AAAA,EAu+BK,cAv+BL;AAAA,EAw+BL,QAx+BK;AAAA,EAw+BK,cAx+BL;AAAA,EAy+BL,QAz+BK;AAAA,EAy+BK,cAz+BL;AAAA,EA0+BL,QA1+BK;AAAA,EA0+BK,cA1+BL;AAAA,EA2+BL,QA3+BK;AAAA,EA2+BK,cA3+BL;AAAA,EA4+BL,QA5+BK;AAAA,EA4+BK,cA5+BL;AAAA,EA6+BL,QA7+BK;AAAA,EA6+BK,cA7+BL;AAAA,EA8+BL,QA9+BK;AAAA,EA8+BK,cA9+BL;AAAA,EA++BL,QA/+BK;AAAA,EA++BK,cA/+BL;AAAA,EAg/BL,QAh/BK;AAAA,EAg/BK,cAh/BL;AAAA,EAi/BL,QAj/BK;AAAA,EAi/BK,cAj/BL;AAAA,EAk/BL,QAl/BK;AAAA,EAk/BK,cAl/BL;AAAA,EAm/BL,QAn/BK;AAAA,EAm/BK,cAn/BL;AAAA,EAo/BL,QAp/BK;AAAA,EAo/BK,cAp/BL;AAAA,EAq/BL,QAr/BK;AAAA,EAq/BK,cAr/BL;AAAA,EAs/BL,QAt/BK;AAAA,EAs/BK,cAt/BL;AAAA,EAu/BL,QAv/BK;AAAA,EAu/BK,cAv/BL;AAAA,EAw/BL,QAx/BK;AAAA,EAw/BK,cAx/BL;AAAA,EAy/BL,QAz/BK;AAAA,EAy/BK,cAz/BL;AAAA,EA0/BL,QA1/BK;AAAA,EA0/BK,cA1/BL;AAAA,EA2/BL,QA3/BK;AAAA,EA2/BK,cA3/BL;AAAA,EA4/BL,QA5/BK;AAAA,EA4/BK,cA5/BL;AAAA,EA6/BL,QA7/BK;AAAA,EA6/BK,cA7/BL;AAAA,EA8/BL,QA9/BK;AAAA,EA8/BK,cA9/BL;AAAA,EA+/BL,QA//BK;AAAA,EA+/BK,cA//BL;AAAA,EAggCL,QAhgCK;AAAA,EAggCK,cAhgCL;AAAA,EAigCL,QAjgCK;AAAA,EAigCK,cAjgCL;AAAA,EAkgCL,QAlgCK;AAAA,EAkgCK,cAlgCL;AAAA,EAmgCL,QAngCK;AAAA,EAmgCK,cAngCL;AAAA,EAogCL,QApgCK;AAAA,EAogCK,cApgCL;AAAA,EAqgCL,QArgCK;AAAA,EAqgCK,cArgCL;AAAA,EAsgCL,QAtgCK;AAAA,EAsgCK,cAtgCL;AAAA,EAugCL,QAvgCK;AAAA,EAugCK,cAvgCL;AAAA,EAwgCL,QAxgCK;AAAA,EAwgCK,cAxgCL;AAAA,EAygCL,QAzgCK;AAAA,EAygCK,cAzgCL;AAAA,EA0gCL,QA1gCK;AAAA,EA0gCK,cA1gCL;AAAA,EA2gCL,QA3gCK;AAAA,EA2gCK,cA3gCL;AAAA,EA4gCL,QA5gCK;AAAA,EA4gCK,cA5gCL;AAAA,EA6gCL,QA7gCK;AAAA,EA6gCK,cA7gCL;AAAA,EA8gCL,QA9gCK;AAAA,EA8gCK,cA9gCL;AAAA,EA+gCL,QA/gCK;AAAA,EA+gCK,cA/gCL;AAAA,EAghCL,QAhhCK;AAAA,EAghCK,cAhhCL;AAAA,EAihCL,QAjhCK;AAAA,EAihCK,cAjhCL;AAAA,EAkhCL,QAlhCK;AAAA,EAkhCK,cAlhCL;AAAA,EAmhCL,QAnhCK;AAAA,EAmhCK,cAnhCL;AAAA,EAohCL,QAphCK;AAAA,EAohCK,cAphCL;AAAA,EAqhCL,QArhCK;AAAA,EAqhCK,cArhCL;AAAA,EAshCL,QAthCK;AAAA,EAshCK,cAthCL;AAAA,EAuhCL,QAvhCK;AAAA,EAuhCK,cAvhCL;AAAA,EAwhCL,QAxhCK;AAAA,EAwhCK,cAxhCL;AAAA,EAyhCL,QAzhCK;AAAA,EAyhCK,cAzhCL;AAAA,EA0hCL,QA1hCK;AAAA,EA0hCK,cA1hCL;AAAA,EA2hCL,QA3hCK;AAAA,EA2hCK,cA3hCL;AAAA,EA4hCL,QA5hCK;AAAA,EA4hCK,oBA5hCL;AAAA,EA6hCL,QA7hCK;AAAA,EA6hCK,oBA7hCL;AAAA,EA8hCL,QA9hCK;AAAA,EA8hCK,oBA9hCL;AAAA,EA+hCL,QA/hCK;AAAA,EA+hCK,cA/hCL;AAAA,EAgiCL,QAhiCK;AAAA,EAgiCK,cAhiCL;AAAA,EAiiCL,QAjiCK;AAAA,EAiiCK,cAjiCL;AAAA,EAkiCL,QAliCK;AAAA,EAkiCK,cAliCL;AAAA,EAmiCL,QAniCK;AAAA,EAmiCK,cAniCL;AAAA,EAoiCL,QApiCK;AAAA,EAoiCK,cApiCL;AAAA,EAqiCL,QAriCK;AAAA,EAqiCK,cAriCL;AAAA,EAsiCL,QAtiCK;AAAA,EAsiCK,cAtiCL;AAAA,EAuiCL,QAviCK;AAAA,EAuiCK,cAviCL;AAAA,EAwiCL,QAxiCK;AAAA,EAwiCK,cAxiCL;AAAA,EAyiCL,QAziCK;AAAA,EAyiCK,cAziCL;AAAA,EA0iCL,QA1iCK;AAAA,EA0iCK,cA1iCL;AAAA,EA2iCL,QA3iCK;AAAA,EA2iCK,cA3iCL;AAAA,EA4iCL,QA5iCK;AAAA,EA4iCK,cA5iCL;AAAA,EA6iCL,QA7iCK;AAAA,EA6iCK,cA7iCL;AAAA,EA8iCL,QA9iCK;AAAA,EA8iCK,cA9iCL;AAAA,EA+iCL,QA/iCK;AAAA,EA+iCK,cA/iCL;AAAA,EAgjCL,QAhjCK;AAAA,EAgjCK,cAhjCL;AAAA,EAijCL,QAjjCK;AAAA,EAijCK,cAjjCL;AAAA,EAkjCL,QAljCK;AAAA,EAkjCK,cAljCL;AAAA,EAmjCL,QAnjCK;AAAA,EAmjCK,cAnjCL;AAAA,EAojCL,QApjCK;AAAA,EAojCK,cApjCL;AAAA,EAqjCL,QArjCK;AAAA,EAqjCK,cArjCL;AAAA,EAsjCL,QAtjCK;AAAA,EAsjCK,cAtjCL;AAAA,EAujCL,QAvjCK;AAAA,EAujCK,cAvjCL;AAAA,EAwjCL,QAxjCK;AAAA,EAwjCK,cAxjCL;AAAA,EAyjCL,QAzjCK;AAAA,EAyjCK,cAzjCL;AAAA,EA0jCL,QA1jCK;AAAA,EA0jCK,cA1jCL;AAAA,EA2jCL,QA3jCK;AAAA,EA2jCK,cA3jCL;AAAA,EA4jCL,QA5jCK;AAAA,EA4jCK,cA5jCL;AAAA,EA6jCL,QA7jCK;AAAA,EA6jCK,cA7jCL;AAAA,EA8jCL,QA9jCK;AAAA,EA8jCK,cA9jCL;AAAA,EA+jCL,QA/jCK;AAAA,EA+jCK,cA/jCL;AAAA,EAgkCL,QAhkCK;AAAA,EAgkCK,cAhkCL;AAAA,EAikCL,QAjkCK;AAAA,EAikCK,cAjkCL;AAAA,EAkkCL,QAlkCK;AAAA,EAkkCK,cAlkCL;AAAA,EAmkCL,QAnkCK;AAAA,EAmkCK,cAnkCL;AAAA,EAokCL,QApkCK;AAAA,EAokCK,cApkCL;AAAA,EAqkCL,QArkCK;AAAA,EAqkCK,cArkCL;AAAA,EAskCL,QAtkCK;AAAA,EAskCK,cAtkCL;AAAA,EAukCL,QAvkCK;AAAA,EAukCK,cAvkCL;AAAA,EAwkCL,QAxkCK;AAAA,EAwkCK,cAxkCL;AAAA,EAykCL,QAzkCK;AAAA,EAykCK,cAzkCL;AAAA,EA0kCL,QA1kCK;AAAA,EA0kCK,cA1kCL;AAAA,EA2kCL,QA3kCK;AAAA,EA2kCK,cA3kCL;AAAA,EA4kCL,QA5kCK;AAAA,EA4kCK,cA5kCL;AAAA,EA6kCL,QA7kCK;AAAA,EA6kCK,cA7kCL;AAAA,EA8kCL,QA9kCK;AAAA,EA8kCK,cA9kCL;AAAA,EA+kCL,QA/kCK;AAAA,EA+kCK,cA/kCL;AAAA,EAglCL,QAhlCK;AAAA,EAglCK,cAhlCL;AAAA,EAilCL,QAjlCK;AAAA,EAilCK,cAjlCL;AAAA,EAklCL,QAllCK;AAAA,EAklCK,cAllCL;AAAA,EAmlCL,QAnlCK;AAAA,EAmlCK,cAnlCL;AAAA,EAolCL,QAplCK;AAAA,EAolCK,cAplCL;AAAA,EAqlCL,QArlCK;AAAA,EAqlCK,cArlCL;AAAA,EAslCL,QAtlCK;AAAA,EAslCK,cAtlCL;AAAA,EAulCL,QAvlCK;AAAA,EAulCK,cAvlCL;AAAA,EAwlCL,QAxlCK;AAAA,EAwlCK,cAxlCL;AAAA,EAylCL,QAzlCK;AAAA,EAylCK,cAzlCL;AAAA,EA0lCL,QA1lCK;AAAA,EA0lCK,cA1lCL;AAAA,EA2lCL,QA3lCK;AAAA,EA2lCK,cA3lCL;AAAA,EA4lCL,QA5lCK;AAAA,EA4lCK,cA5lCL;AAAA,EA6lCL,QA7lCK;AAAA,EA6lCK,cA7lCL;AAAA,EA8lCL,QA9lCK;AAAA,EA8lCK,cA9lCL;AAAA,EA+lCL,QA/lCK;AAAA,EA+lCK,cA/lCL;AAAA,EAgmCL,QAhmCK;AAAA,EAgmCK,cAhmCL;AAAA,EAimCL,QAjmCK;AAAA,EAimCK,cAjmCL;AAAA,EAkmCL,QAlmCK;AAAA,EAkmCK,cAlmCL;AAAA,EAmmCL,QAnmCK;AAAA,EAmmCK,cAnmCL;AAAA,EAomCL,QApmCK;AAAA,EAomCK,cApmCL;AAAA,EAqmCL,QArmCK;AAAA,EAqmCK,cArmCL;AAAA,EAsmCL,QAtmCK;AAAA,EAsmCK,cAtmCL;AAAA,EAumCL,QAvmCK;AAAA,EAumCK,cAvmCL;AAAA,EAwmCL,QAxmCK;AAAA,EAwmCK,oBAxmCL;AAAA,EAymCL,QAzmCK;AAAA,EAymCK,oBAzmCL;AAAA,EA0mCL,QA1mCK;AAAA,EA0mCK,oBA1mCL;AAAA,EA2mCL,QA3mCK;AAAA,EA2mCK,oBA3mCL;AAAA,EA4mCL,QA5mCK;AAAA,EA4mCK,oBA5mCL;AAAA,EA6mCL,QA7mCK;AAAA,EA6mCK,oBA7mCL;AAAA,EA8mCL,QA9mCK;AAAA,EA8mCK,oBA9mCL;AAAA,EA+mCL,QA/mCK;AAAA,EA+mCK,oBA/mCL;AAAA,EAgnCL,QAhnCK;AAAA,EAgnCK,oBAhnCL;AAAA,EAinCL,QAjnCK;AAAA,EAinCK,oBAjnCL;AAAA,EAknCL,QAlnCK;AAAA,EAknCK,oBAlnCL;AAAA,EAmnCL,QAnnCK;AAAA,EAmnCK,oBAnnCL;AAAA,EAonCL,QApnCK;AAAA,EAonCK,oBApnCL;AAAA,EAqnCL,QArnCK;AAAA,EAqnCK,oBArnCL;AAAA,EAsnCL,QAtnCK;AAAA,EAsnCK,oBAtnCL;AAAA,EAunCL,QAvnCK;AAAA,EAunCK,oBAvnCL;AAAA,EAwnCL,QAxnCK;AAAA,EAwnCK,oBAxnCL;AAAA,EAynCL,QAznCK;AAAA,EAynCK,oBAznCL;AAAA,EA0nCL,QA1nCK;AAAA,EA0nCK,oBA1nCL;AAAA,EA2nCL,QA3nCK;AAAA,EA2nCK,oBA3nCL;AAAA,EA4nCL,QA5nCK;AAAA,EA4nCK,oBA5nCL;AAAA,EA6nCL,QA7nCK;AAAA,EA6nCK,oBA7nCL;AAAA,EA8nCL,QA9nCK;AAAA,EA8nCK,oBA9nCL;AAAA,EA+nCL,QA/nCK;AAAA,EA+nCK,oBA/nCL;AAAA,EAgoCL,QAhoCK;AAAA,EAgoCK,oBAhoCL;AAAA,EAioCL,QAjoCK;AAAA,EAioCK,oBAjoCL;AAAA,EAkoCL,QAloCK;AAAA,EAkoCK,oBAloCL;AAAA,EAmoCL,QAnoCK;AAAA,EAmoCK,oBAnoCL;AAAA,EAooCL,QApoCK;AAAA,EAooCK,oBApoCL;AAAA,EAqoCL,QAroCK;AAAA,EAqoCK,oBAroCL;AAAA,EAsoCL,QAtoCK;AAAA,EAsoCK,oBAtoCL;AAAA,EAuoCL,QAvoCK;AAAA,EAuoCK,oBAvoCL;AAAA,EAwoCL,QAxoCK;AAAA,EAwoCK,oBAxoCL;AAAA,EAyoCL,QAzoCK;AAAA,EAyoCK,oBAzoCL;AAAA,EA0oCL,QA1oCK;AAAA,EA0oCK,oBA1oCL;AAAA,EA2oCL,QA3oCK;AAAA,EA2oCK,oBA3oCL;AAAA,EA4oCL,QA5oCK;AAAA,EA4oCK,oBA5oCL;AAAA,EA6oCL,QA7oCK;AAAA,EA6oCK,oBA7oCL;AAAA,EA8oCL,QA9oCK;AAAA,EA8oCK,oBA9oCL;AAAA,EA+oCL,QA/oCK;AAAA,EA+oCK,oBA/oCL;AAAA,EAgpCL,QAhpCK;AAAA,EAgpCK,oBAhpCL;AAAA,EAipCL,QAjpCK;AAAA,EAipCK,oBAjpCL;AAAA,EAkpCL,QAlpCK;AAAA,EAkpCK,oBAlpCL;AAAA,EAmpCL,QAnpCK;AAAA,EAmpCK,oBAnpCL;AAAA,EAopCL,QAppCK;AAAA,EAopCK,oBAppCL;AAAA,EAqpCL,QArpCK;AAAA,EAqpCK,oBArpCL;AAAA,EAspCL,QAtpCK;AAAA,EAspCK,oBAtpCL;AAAA,EAupCL,QAvpCK;AAAA,EAupCK,oBAvpCL;AAAA,EAwpCL,QAxpCK;AAAA,EAwpCK,oBAxpCL;AAAA,EAypCL,QAzpCK;AAAA,EAypCK,oBAzpCL;AAAA,EA0pCL,QA1pCK;AAAA,EA0pCK,oBA1pCL;AAAA,EA2pCL,QA3pCK;AAAA,EA2pCK,oBA3pCL;AAAA,EA4pCL,QA5pCK;AAAA,EA4pCK,oBA5pCL;AAAA,EA6pCL,QA7pCK;AAAA,EA6pCK,oBA7pCL;AAAA,EA8pCL,QA9pCK;AAAA,EA8pCK,oBA9pCL;AAAA,EA+pCL,QA/pCK;AAAA,EA+pCK,oBA/pCL;AAAA,EAgqCL,QAhqCK;AAAA,EAgqCK,oBAhqCL;AAAA,EAiqCL,QAjqCK;AAAA,EAiqCK,oBAjqCL;AAAA,EAkqCL,QAlqCK;AAAA,EAkqCK,oBAlqCL;AAAA,EAmqCL,QAnqCK;AAAA,EAmqCK,oBAnqCL;AAAA,EAoqCL,QApqCK;AAAA,EAoqCK,oBApqCL;AAAA,EAqqCL,QArqCK;AAAA,EAqqCK,oBArqCL;AAAA,EAsqCL,QAtqCK;AAAA,EAsqCK,oBAtqCL;AAAA,EAuqCL,QAvqCK;AAAA,EAuqCK,oBAvqCL;AAAA,EAwqCL,QAxqCK;AAAA,EAwqCK,oBAxqCL;AAAA,EAyqCL,QAzqCK;AAAA,EAyqCK,oBAzqCL;AAAA,EA0qCL,QA1qCK;AAAA,EA0qCK,oBA1qCL;AAAA,EA2qCL,QA3qCK;AAAA,EA2qCK,oBA3qCL;AAAA,EA4qCL,QA5qCK;AAAA,EA4qCK,oBA5qCL;AAAA,EA6qCL,QA7qCK;AAAA,EA6qCK,oBA7qCL;AAAA,EA8qCL,QA9qCK;AAAA,EA8qCK,oBA9qCL;AAAA,EA+qCL,QA/qCK;AAAA,EA+qCK,oBA/qCL;AAAA,EAgrCL,QAhrCK;AAAA,EAgrCK,oBAhrCL;AAAA,EAirCL,QAjrCK;AAAA,EAirCK,oBAjrCL;AAAA,EAkrCL,QAlrCK;AAAA,EAkrCK,oBAlrCL;AAAA,EAmrCL,QAnrCK;AAAA,EAmrCK,oBAnrCL;AAAA,EAorCL,QAprCK;AAAA,EAorCK,oBAprCL;AAAA,EAqrCL,QArrCK;AAAA,EAqrCK,oBArrCL;AAAA,EAsrCL,QAtrCK;AAAA,EAsrCK,oBAtrCL;AAAA,EAurCL,QAvrCK;AAAA,EAurCK,oBAvrCL;AAAA,EAwrCL,QAxrCK;AAAA,EAwrCK,oBAxrCL;AAAA,EAyrCL,QAzrCK;AAAA,EAyrCK,oBAzrCL;AAAA,EA0rCL,QA1rCK;AAAA,EA0rCK,oBA1rCL;AAAA,EA2rCL,QA3rCK;AAAA,EA2rCK,oBA3rCL;AAAA,EA4rCL,QA5rCK;AAAA,EA4rCK,oBA5rCL;AAAA,EA6rCL,QA7rCK;AAAA,EA6rCK,oBA7rCL;AAAA,EA8rCL,QA9rCK;AAAA,EA8rCK,oBA9rCL;AAAA,EA+rCL,QA/rCK;AAAA,EA+rCK,oBA/rCL;AAAA,EAgsCL,QAhsCK;AAAA,EAgsCK,oBAhsCL;AAAA,EAisCL,QAjsCK;AAAA,EAisCK,oBAjsCL;AAAA,EAksCL,QAlsCK;AAAA,EAksCK,oBAlsCL;AAAA,EAmsCL,QAnsCK;AAAA,EAmsCK,oBAnsCL;AAAA,EAosCL,QApsCK;AAAA,EAosCK,oBApsCL;AAAA,EAqsCL,QArsCK;AAAA,EAqsCK,oBArsCL;AAAA,EAssCL,QAtsCK;AAAA,EAssCK,oBAtsCL;AAAA,EAusCL,QAvsCK;AAAA,EAusCK,oBAvsCL;AAAA,EAwsCL,QAxsCK;AAAA,EAwsCK,oBAxsCL;AAAA,EAysCL,QAzsCK;AAAA,EAysCK,oBAzsCL;AAAA,EA0sCL,QA1sCK;AAAA,EA0sCK,oBA1sCL;AAAA,EA2sCL,QA3sCK;AAAA,EA2sCK,oBA3sCL;AAAA,EA4sCL,QA5sCK;AAAA,EA4sCK,oBA5sCL;AAAA,EA6sCL,QA7sCK;AAAA,EA6sCK,oBA7sCL;AAAA,EA8sCL,QA9sCK;AAAA,EA8sCK,oBA9sCL;AAAA,EA+sCL,QA/sCK;AAAA,EA+sCK,oBA/sCL;AAAA,EAgtCL,QAhtCK;AAAA,EAgtCK,oBAhtCL;AAAA,EAitCL,QAjtCK;AAAA,EAitCK,oBAjtCL;AAAA,EAktCL,QAltCK;AAAA,EAktCK,oBAltCL;AAAA,EAmtCL,QAntCK;AAAA,EAmtCK,oBAntCL;AAAA,EAotCL,QAptCK;AAAA,EAotCK,oBAptCL;AAAA,EAqtCL,QArtCK;AAAA,EAqtCK,oBArtCL;AAAA,EAstCL,QAttCK;AAAA,EAstCK,oBAttCL;AAAA,EAutCL,QAvtCK;AAAA,EAutCK,oBAvtCL;AAAA,EAwtCL,QAxtCK;AAAA,EAwtCK,oBAxtCL;AAAA,EAytCL,QAztCK;AAAA,EAytCK,oBAztCL;AAAA,EA0tCL,QA1tCK;AAAA,EA0tCK,oBA1tCL;AAAA,EA2tCL,QA3tCK;AAAA,EA2tCK,oBA3tCL;AAAA,EA4tCL,QA5tCK;AAAA,EA4tCK,oBA5tCL;AAAA,EA6tCL,QA7tCK;AAAA,EA6tCK,oBA7tCL;AAAA,EA8tCL,QA9tCK;AAAA,EA8tCK,QA9tCL;AAAA,EA+tCL,QA/tCK;AAAA,EA+tCK,QA/tCL;AAAA,EAguCL,QAhuCK;AAAA,EAguCK,QAhuCL;AAAA,EAiuCL,QAjuCK;AAAA,EAiuCK,QAjuCL;AAAA,EAkuCL,QAluCK;AAAA,EAkuCK,QAluCL;AAAA,EAmuCL,QAnuCK;AAAA,EAmuCK,QAnuCL;AAAA,EAouCL,QApuCK;AAAA,EAouCK,QApuCL;AAAA,EAquCL,QAruCK;AAAA,EAquCK,QAruCL;AAAA,EAsuCL,QAtuCK;AAAA,EAsuCK,QAtuCL;AAAA,EAuuCL,QAvuCK;AAAA,EAuuCK,QAvuCL;AAAA,EAwuCL,QAxuCK;AAAA,EAwuCK,QAxuCL;AAAA,EAyuCL,QAzuCK;AAAA,EAyuCK,QAzuCL;AAAA,EA0uCL,QA1uCK;AAAA,EA0uCK,QA1uCL;AAAA,EA2uCL,QA3uCK;AAAA,EA2uCK,QA3uCL;AAAA,EA4uCL,QA5uCK;AAAA,EA4uCK,QA5uCL;AAAA,EA6uCL,QA7uCK;AAAA,EA6uCK,QA7uCL;AAAA,EA8uCL,QA9uCK;AAAA,EA8uCK,QA9uCL;AAAA,EA+uCL,QA/uCK;AAAA,EA+uCK,QA/uCL;AAAA,EAgvCL,QAhvCK;AAAA,EAgvCK,QAhvCL;AAAA,EAivCL,QAjvCK;AAAA,EAivCK,QAjvCL;AAAA,EAkvCL,QAlvCK;AAAA,EAkvCK,QAlvCL;AAAA,EAmvCL,QAnvCK;AAAA,EAmvCK,QAnvCL;AAAA,EAovCL,QApvCK;AAAA,EAovCK,QApvCL;AAAA,EAqvCL,QArvCK;AAAA,EAqvCK,QArvCL;AAAA,EAsvCL,QAtvCK;AAAA,EAsvCK,QAtvCL;AAAA,EAuvCL,QAvvCK;AAAA,EAuvCK,QAvvCL;AAAA,EAwvCL,QAxvCK;AAAA,EAwvCK,QAxvCL;AAAA,EAyvCL,QAzvCK;AAAA,EAyvCK,QAzvCL;AAAA,EA0vCL,QA1vCK;AAAA,EA0vCK,QA1vCL;AAAA,EA2vCL,QA3vCK;AAAA,EA2vCK,QA3vCL;AAAA,EA4vCL,QA5vCK;AAAA,EA4vCK,QA5vCL;AAAA,EA6vCL,QA7vCK;AAAA,EA6vCK,QA7vCL;AAAA,EA8vCL,QA9vCK;AAAA,EA8vCK,QA9vCL;AAAA,EA+vCL,QA/vCK;AAAA,EA+vCK,QA/vCL;AAAA,EAgwCL,QAhwCK;AAAA,EAgwCK,QAhwCL;AAAA,EAiwCL,QAjwCK;AAAA,EAiwCK,QAjwCL;AAAA,EAkwCL,QAlwCK;AAAA,EAkwCK,QAlwCL;AAAA,EAmwCL,QAnwCK;AAAA,EAmwCK,QAnwCL;AAAA,EAowCL,QApwCK;AAAA,EAowCK,QApwCL;AAAA,EAqwCL,QArwCK;AAAA,EAqwCK,QArwCL;AAAA,EAswCL,QAtwCK;AAAA,EAswCK,QAtwCL;AAAA,EAuwCL,QAvwCK;AAAA,EAuwCK,QAvwCL;AAAA,EAwwCL,QAxwCK;AAAA,EAwwCK,QAxwCL;AAAA,EAywCL,QAzwCK;AAAA,EAywCK,QAzwCL;AAAA,EA0wCL,QA1wCK;AAAA,EA0wCK,QA1wCL;AAAA,EA2wCL,QA3wCK;AAAA,EA2wCK,QA3wCL;AAAA,EA4wCL,QA5wCK;AAAA,EA4wCK,QA5wCL;AAAA,EA6wCL,QA7wCK;AAAA,EA6wCK,QA7wCL;AAAA,EA8wCL,QA9wCK;AAAA,EA8wCK,QA9wCL;AAAA,EA+wCL,QA/wCK;AAAA,EA+wCK,QA/wCL;AAAA,EAgxCL,QAhxCK;AAAA,EAgxCK,QAhxCL;AAAA,EAixCL,QAjxCK;AAAA,EAixCK,QAjxCL;AAAA,EAkxCL,QAlxCK;AAAA,EAkxCK,QAlxCL;AAAA,EAmxCL,QAnxCK;AAAA,EAmxCK,QAnxCL;AAAA,EAoxCL,QApxCK;AAAA,EAoxCK,QApxCL;AAAA,EAqxCL,QArxCK;AAAA,EAqxCK,QArxCL;AAAA,EAsxCL,QAtxCK;AAAA,EAsxCK,QAtxCL;AAAA,EAuxCL,QAvxCK;AAAA,EAuxCK,QAvxCL;AAAA,EAwxCL,QAxxCK;AAAA,EAwxCK,QAxxCL;AAAA,EAyxCL,QAzxCK;AAAA,EAyxCK,QAzxCL;AAAA,EA0xCL,QA1xCK;AAAA,EA0xCK,QA1xCL;AAAA,EA2xCL,QA3xCK;AAAA,EA2xCK,QA3xCL;AAAA,EA4xCL,QA5xCK;AAAA,EA4xCK,QA5xCL;AAAA,EA6xCL,QA7xCK;AAAA,EA6xCK,QA7xCL;AAAA,EA8xCL,QA9xCK;AAAA,EA8xCK,QA9xCL;AAAA,EA+xCL,QA/xCK;AAAA,EA+xCK,QA/xCL;AAAA,EAgyCL,QAhyCK;AAAA,EAgyCK,QAhyCL;AAAA,EAiyCL,QAjyCK;AAAA,EAiyCK,QAjyCL;AAAA,EAkyCL,QAlyCK;AAAA,EAkyCK,QAlyCL;AAAA,EAmyCL,QAnyCK;AAAA,EAmyCK,QAnyCL;AAAA,EAoyCL,QApyCK;AAAA,EAoyCK,QApyCL;AAAA,EAqyCL,QAryCK;AAAA,EAqyCK,QAryCL;AAAA,EAsyCL,QAtyCK;AAAA,EAsyCK,QAtyCL;AAAA,EAuyCL,QAvyCK;AAAA,EAuyCK,QAvyCL;AAAA,EAwyCL,QAxyCK;AAAA,EAwyCK,QAxyCL;AAAA,EAyyCL,QAzyCK;AAAA,EAyyCK,QAzyCL;AAAA,EA0yCL,QA1yCK;AAAA,EA0yCK,QA1yCL;AAAA,EA2yCL,QA3yCK;AAAA,EA2yCK,QA3yCL;AAAA,EA4yCL,QA5yCK;AAAA,EA4yCK,QA5yCL;AAAA,EA6yCL,QA7yCK;AAAA,EA6yCK,QA7yCL;AAAA,EA8yCL,QA9yCK;AAAA,EA8yCK,QA9yCL;AAAA,EA+yCL,QA/yCK;AAAA,EA+yCK,QA/yCL;AAAA,EAgzCL,QAhzCK;AAAA,EAgzCK,QAhzCL;AAAA,EAizCL,QAjzCK;AAAA,EAizCK,QAjzCL;AAAA,EAkzCL,QAlzCK;AAAA,EAkzCK,QAlzCL;AAAA,EAmzCL,QAnzCK;AAAA,EAmzCK,QAnzCL;AAAA,EAozCL,QApzCK;AAAA,EAozCK,QApzCL;AAAA,EAqzCL,QArzCK;AAAA,EAqzCK,QArzCL;AAAA,EAszCL,QAtzCK;AAAA,EAszCK,QAtzCL;AAAA,EAuzCL,QAvzCK;AAAA,EAuzCK,QAvzCL;AAAA,EAwzCL,QAxzCK;AAAA,EAwzCK,QAxzCL;AAAA,EAyzCL,QAzzCK;AAAA,EAyzCK,QAzzCL;AAAA,EA0zCL,QA1zCK;AAAA,EA0zCK,QA1zCL;AAAA,EA2zCL,QA3zCK;AAAA,EA2zCK,QA3zCL;AAAA,EA4zCL,QA5zCK;AAAA,EA4zCK,QA5zCL;AAAA,EA6zCL,QA7zCK;AAAA,EA6zCK,QA7zCL;AAAA,EA8zCL,QA9zCK;AAAA,EA8zCK,QA9zCL;AAAA,EA+zCL,QA/zCK;AAAA,EA+zCK,QA/zCL;AAAA,EAg0CL,QAh0CK;AAAA,EAg0CK,QAh0CL;AAAA,EAi0CL,QAj0CK;AAAA,EAi0CK,QAj0CL;AAAA,EAk0CL,QAl0CK;AAAA,EAk0CK,QAl0CL;AAAA,EAm0CL,QAn0CK;AAAA,EAm0CK,QAn0CL;AAAA,EAo0CL,QAp0CK;AAAA,EAo0CK,QAp0CL;AAAA,EAq0CL,QAr0CK;AAAA,EAq0CK,QAr0CL;AAAA,EAs0CL,QAt0CK;AAAA,EAs0CK,QAt0CL;AAAA,EAu0CL,QAv0CK;AAAA,EAu0CK,QAv0CL;AAAA,EAw0CL,QAx0CK;AAAA,EAw0CK,QAx0CL;AAAA,EAy0CL,QAz0CK;AAAA,EAy0CK,QAz0CL;AAAA,EA00CL,QA10CK;AAAA,EA00CK,QA10CL;AAAA,EA20CL,QA30CK;AAAA,EA20CK,QA30CL;AAAA,EA40CL,QA50CK;AAAA,EA40CK,QA50CL;AAAA,EA60CL,QA70CK;AAAA,EA60CK,QA70CL;AAAA,EA80CL,QA90CK;AAAA,EA80CK,QA90CL;AAAA,EA+0CL,QA/0CK;AAAA,EA+0CK,QA/0CL;AAAA,EAg1CL,QAh1CK;AAAA,EAg1CK,QAh1CL;AAAA,EAi1CL,QAj1CK;AAAA,EAi1CK,QAj1CL;AAAA,EAk1CL,QAl1CK;AAAA,EAk1CK,QAl1CL;AAAA,EAm1CL,QAn1CK;AAAA,EAm1CK,QAn1CL;AAAA,EAo1CL,QAp1CK;AAAA,EAo1CK,QAp1CL;AAAA,EAq1CL,QAr1CK;AAAA,EAq1CK,QAr1CL;AAAA,EAs1CL,QAt1CK;AAAA,EAs1CK,QAt1CL;AAAA,EAu1CL,QAv1CK;AAAA,EAu1CK,QAv1CL;AAAA,EAw1CL,QAx1CK;AAAA,EAw1CK,QAx1CL;AAAA,EAy1CL,QAz1CK;AAAA,EAy1CK,QAz1CL;AAAA,EA01CL,QA11CK;AAAA,EA01CK,cA11CL;AAAA,EA21CL,QA31CK;AAAA,EA21CK,cA31CL;AAAA,EA41CL,QA51CK;AAAA,EA41CK,cA51CL;AAAA,EA61CL,QA71CK;AAAA,EA61CK,cA71CL;AAAA,EA81CL,QA91CK;AAAA,EA81CK,cA91CL;AAAA,EA+1CL,QA/1CK;AAAA,EA+1CK,cA/1CL;AAAA,EAg2CL,QAh2CK;AAAA,EAg2CK,cAh2CL;AAAA,EAi2CL,QAj2CK;AAAA,EAi2CK,cAj2CL;AAAA,EAAP,CAFmE;AAAA,CAAvC,CAA9B,CAtPA;AA6lDA,SAASyb,YAAT,CAAsBC,KAAtB,EAA6B;AAAA,CAC3B,MAAMC,WAAA,GAAcD,KAAA,CAAMtvC,MAA1B,CAD2B;AAAA,CAG3B,IAAIuvC,WAAA,IAAe,CAAf,IAAoB,CAACJ,aAAA,CAAcG,KAAA,CAAMvtB,UAAN,CAAiB,CAAjB,CAAd,CAAzB,EAA6D;AAAA,EAC3D,OAAOutB,KAAP,CAD2D;AAAA,EAHlC;AAAA,CAM3B,MAAMrnB,GAAA,GAAM,EAAZ,CAN2B;AAAA,CAO3B,KAAK,IAAIpe,EAAA,GAAK0lC,WAAA,GAAc,CAAvB,CAAL,CAA+B1lC,EAAA,IAAM,CAArC,EAAwCA,EAAA,EAAxC,EAA8C;AAAA,EAC5Coe,GAAA,CAAIloB,IAAJ,CAASuvC,KAAA,CAAMzlC,EAAN,CAAT,EAD4C;AAAA,EAPnB;AAAA,CAU3B,OAAOoe,GAAA,CAAIhoB,IAAJ,CAAS,EAAT,CAAP,CAV2B;AAAA,CA7lD7B;AA0mDA,MAAMuvC,iBAAA,GAAoB,IAAIlX,MAAJ,CAAW,6BAAX,EAA0C,GAA1C,CAA1B,CA1mDA;AA2mDA,MAAMmX,aAAA,GAAgB,IAAIrjB,GAAJ,EAAtB,CA3mDA;AA6mDA,SAASsjB,sBAAT,CAAgCxnB,IAAhC,EAAsC;AAAA,CACpC,MAAMynB,cAAA,GAAiBF,aAAA,CAAcxoC,GAAd,CAAkBihB,IAAlB,CAAvB,CADoC;AAAA,CAEpC,IAAIynB,cAAJ,EAAoB;AAAA,EAClB,OAAOA,cAAP,CADkB;AAAA,EAFgB;AAAA,CAKpC,MAAMC,MAAA,GAAS1nB,IAAA,CAAKlI,KAAL,CAAWwvB,iBAAX,CAAf,CALoC;AAAA,CAMpC,MAAMK,QAAA,GAAW;AAAA,EACfC,YAAA,EAAc,CAAC,CAAE,CAAAF,MAAA,IAAUA,MAAA,CAAO,CAAP,CAAV,CADF;AAAA,EAEfG,oBAAA,EAAsB,CAAC,CAAE,CAAAH,MAAA,IAAUA,MAAA,CAAO,CAAP,CAAV,CAFV;AAAA,EAGfI,qBAAA,EAAuB,CAAC,CAAE,CAAAJ,MAAA,IAAUA,MAAA,CAAO,CAAP,CAAV,CAHX;AAAA,EAAjB,CANoC;AAAA,CAWpCH,aAAA,CAAcptB,GAAd,CAAkB6F,IAAlB,EAAwB2nB,QAAxB,EAXoC;AAAA,CAYpC,OAAOA,QAAP,CAZoC;AAAA,CA7mDtC;AA4nDA,SAASI,kBAAT,GAA8B;AAAA,CAC5BR,aAAA,CAAcjjB,KAAd,GAD4B;AAAA,CA5nD9B;;;;;;;;;;;;;;;ACeA;;AAoBA;;AACA;;AAIA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAKA,MAAM0jB,cAAc,IAApB;;AAEA,MAAMpR,iBAAN,CAAwB;EActB,OAAO70B,MAAP,CAAcrB,IAAd,EAAoBjC,GAApB,EAAyBpH,UAAzB,EAAqCi8B,SAArC,EAAgD2U,aAAhD,EAA+D;IAC7D,OAAOhvC,QAAQC,GAARD,CAAY,CACjB5B,WAAW6H,aAAX7H,CAAyB,UAAzBA,CADiB,EAIjBA,WAAW6H,aAAX7H,CAAyB,SAAzBA,CAJiB,EAKjBA,WAAW0B,SAAX1B,CAAqB,aAArBA,CALiB,EAMjB4wC,gBAAgB,KAAKC,aAAL,CAAmBxnC,IAAnB,EAAyBjC,GAAzB,EAA8BpH,UAA9B,CAAhB,GAA4D,CAAC,CAN5C,CAAZ4B,EAOJK,IAPIL,CAOC,CAAC,CAACuH,QAAD,EAAWiX,OAAX,EAAoBuiB,WAApB,EAAiC37B,SAAjC,CAAD,KACNhH,WAAWkH,MAAXlH,CAAkB,IAAlBA,EAAwB,SAAxBA,EAAmC,CACjCqJ,IADiC,EAEjCjC,GAFiC,EAGjCpH,UAHiC,EAIjCi8B,SAJiC,EAKjC9yB,QALiC,EAMjCw5B,WANiC,EAOjCiO,aAPiC,EAQjC5pC,SARiC,CAAnChH,CARK4B,CAAP;EAfoB;;EAuCtB,OAAOkvC,OAAP,CACEznC,IADF,EAEEjC,GAFF,EAGEpH,UAHF,EAIEi8B,SAJF,EAKE9yB,QALF,EAMEw5B,WANF,EAOEiO,aAPF,EAQE5pC,YAAY,CAAC,CARf,EASE;IACA,MAAM8lB,OAAOzjB,KAAK24B,UAAL34B,CAAgBjC,GAAhBiC,CAAb;;IACA,IAAI,EAAEyjB,gBAAgB7iB,gBAAlB,CAAJ,EAA6B;MAC3B,OAAO2X,SAAP;IAHF;;IAMA,MAAM5Z,KACJZ,eAAeK,eAAfL,GAAqBA,IAAItB,QAAJsB,EAArBA,GAAuC,SAAQ60B,UAAUhB,WAAVgB,EAAT,EADxC;IAIA,IAAIuR,UAAU1gB,KAAKplB,GAALolB,CAAS,SAATA,CAAd;IACA0gB,UAAUA,mBAAmBjjB,gBAAnBijB,GAA0BA,QAAQnvC,IAAlCmvC,GAAyC,IAAnDA;IAGA,MAAMuD,aAAa;MACjB1nC,IADiB;MAEjBjC,GAFiB;MAGjB0lB,IAHiB;MAIjB0gB,OAJiB;MAKjBxlC,EALiB;MAMjBhI,UANiB;MAOjBmJ,UAAUA,oBAAoBc,gBAApBd,GAA2BA,QAA3BA,GAAsCc,iBAAKqiB,KAPpC;MAQjBqW,WARiB;MASjBiO,aATiB;MAUjB5pC;IAViB,CAAnB;;IAaA,QAAQwmC,OAAR;MACE,KAAK,MAAL;QACE,OAAO,IAAIwD,cAAJ,CAAmBD,UAAnB,CAAP;;MAEF,KAAK,MAAL;QACE,OAAO,IAAIE,cAAJ,CAAmBF,UAAnB,CAAP;;MAEF,KAAK,QAAL;QACE,IAAIG,YAAYjc,wCAAuB;UAAEnI,IAAF;UAAQ/hB,KAAK;QAAb,CAAvBkqB,CAAhB;QACAic,YAAYA,qBAAqB3mB,gBAArB2mB,GAA4BA,UAAU7yC,IAAtC6yC,GAA6C,IAAzDA;;QAEA,QAAQA,SAAR;UACE,KAAK,IAAL;YACE,OAAO,IAAIC,oBAAJ,CAAyBJ,UAAzB,CAAP;;UACF,KAAK,KAAL;YACE,OAAO,IAAIK,sBAAJ,CAA2BL,UAA3B,CAAP;;UACF,KAAK,IAAL;YACE,OAAO,IAAIM,sBAAJ,CAA2BN,UAA3B,CAAP;;UACF,KAAK,KAAL;YACE,OAAO,IAAIO,yBAAJ,CAA8BP,UAA9B,CAAP;QARJ;;QAUA5sC,gBACG,oCAAmC+sC,SAAU,KAA9C,GACE,kCAFJ/sC;QAIA,OAAO,IAAIotC,gBAAJ,CAAqBR,UAArB,CAAP;;MAEF,KAAK,OAAL;QACE,OAAO,IAAIS,eAAJ,CAAoBT,UAApB,CAAP;;MAEF,KAAK,UAAL;QACE,OAAO,IAAIU,kBAAJ,CAAuBV,UAAvB,CAAP;;MAEF,KAAK,MAAL;QACE,OAAO,IAAIW,cAAJ,CAAmBX,UAAnB,CAAP;;MAEF,KAAK,QAAL;QACE,OAAO,IAAIY,gBAAJ,CAAqBZ,UAArB,CAAP;;MAEF,KAAK,QAAL;QACE,OAAO,IAAIa,gBAAJ,CAAqBb,UAArB,CAAP;;MAEF,KAAK,UAAL;QACE,OAAO,IAAIc,kBAAJ,CAAuBd,UAAvB,CAAP;;MAEF,KAAK,SAAL;QACE,OAAO,IAAIe,iBAAJ,CAAsBf,UAAtB,CAAP;;MAEF,KAAK,OAAL;QACE,OAAO,IAAIgB,eAAJ,CAAoBhB,UAApB,CAAP;;MAEF,KAAK,KAAL;QACE,OAAO,IAAIiB,aAAJ,CAAkBjB,UAAlB,CAAP;;MAEF,KAAK,WAAL;QACE,OAAO,IAAIkB,mBAAJ,CAAwBlB,UAAxB,CAAP;;MAEF,KAAK,WAAL;QACE,OAAO,IAAImB,mBAAJ,CAAwBnB,UAAxB,CAAP;;MAEF,KAAK,UAAL;QACE,OAAO,IAAIoB,kBAAJ,CAAuBpB,UAAvB,CAAP;;MAEF,KAAK,WAAL;QACE,OAAO,IAAIqB,mBAAJ,CAAwBrB,UAAxB,CAAP;;MAEF,KAAK,OAAL;QACE,OAAO,IAAIsB,eAAJ,CAAoBtB,UAApB,CAAP;;MAEF,KAAK,gBAAL;QACE,OAAO,IAAIuB,wBAAJ,CAA6BvB,UAA7B,CAAP;;MAEF;QACE,IAAI,CAACH,aAAL,EAAoB;UAClB,IAAI,CAACpD,OAAL,EAAc;YACZrpC,gBAAK,8CAALA;UADF,OAEO;YACLA,gBACG,kCAAiCqpC,OAAQ,KAA1C,GACE,kCAFJrpC;UAJgB;QADtB;;QAWE,OAAO,IAAIouC,UAAJ,CAAexB,UAAf,CAAP;IAnFJ;EA3EoB;;EAkKtB,aAAaF,aAAb,CAA2BxnC,IAA3B,EAAiCjC,GAAjC,EAAsCpH,UAAtC,EAAkD;IAChD,IAAI;MACF,MAAMwyC,YAAY,MAAMnpC,KAAKopC,eAALppC,CAAqBjC,GAArBiC,CAAxB;;MACA,IAAI,EAAEmpC,qBAAqBvoC,gBAAvB,CAAJ,EAAkC;QAChC,OAAO,CAAC,CAAR;MAHA;;MAKF,MAAMzC,UAAUgrC,UAAUtnC,MAAVsnC,CAAiB,GAAjBA,CAAhB;;MACA,IAAI,EAAEhrC,mBAAmBC,eAArB,CAAJ,EAA+B;QAC7B,OAAO,CAAC,CAAR;MAPA;;MASF,MAAMT,YAAY,MAAMhH,WAAW6H,aAAX7H,CAAyB,cAAzBA,EAAyC,CAC/DwH,OAD+D,CAAzCxH,CAAxB;MAGA,OAAOgH,SAAP;IAZF,EAaE,OAAOjE,EAAP,EAAW;MACXoB,gBAAM,mBAAkBpB,EAAG,IAA3BoB;MACA,OAAO,CAAC,CAAR;IAhB8C;EAlK5B;;AAAA;;;;AAuLxB,SAASuuC,WAAT,CAAqBC,KAArB,EAA4BC,eAAe,IAAIC,iBAAJ,CAAsB,CAAtB,CAA3C,EAAqE;EACnE,IAAI,CAACzoC,MAAMC,OAAND,CAAcuoC,KAAdvoC,CAAL,EAA2B;IACzB,OAAOwoC,YAAP;EAFiE;;EAKnE,MAAME,WAAWF,gBAAgB,IAAIC,iBAAJ,CAAsB,CAAtB,CAAjC;;EACA,QAAQF,MAAMlyC,MAAd;IACE,KAAK,CAAL;MACE,OAAO,IAAP;;IAEF,KAAK,CAAL;MACEsyC,uBAAWC,UAAXD,CAAsBE,IAAtBF,CAA2BG,UAA3BH,CAAsCJ,KAAtCI,EAA6C,CAA7CA,EAAgDD,QAAhDC,EAA0D,CAA1DA;;MACA,OAAOD,QAAP;;IAEF,KAAK,CAAL;MACEC,uBAAWC,UAAXD,CAAsBI,GAAtBJ,CAA0BG,UAA1BH,CAAqCJ,KAArCI,EAA4C,CAA5CA,EAA+CD,QAA/CC,EAAyD,CAAzDA;;MACA,OAAOD,QAAP;;IAEF,KAAK,CAAL;MACEC,uBAAWC,UAAXD,CAAsBK,IAAtBL,CAA2BG,UAA3BH,CAAsCJ,KAAtCI,EAA6C,CAA7CA,EAAgDD,QAAhDC,EAA0D,CAA1DA;;MACA,OAAOD,QAAP;;IAEF;MACE,OAAOF,YAAP;EAjBJ;AAtPF;;AA2QA,SAASS,aAAT,CAAuBvmB,IAAvB,EAA6B5G,IAA7B,EAAmC;EACjC,IAAI,CAAC4G,KAAKV,GAALU,CAAS,YAATA,CAAL,EAA6B;IAC3B,OAAO,IAAP;EAF+B;;EAOjC,MAAMwmB,aAAaxmB,KAAKd,QAALc,CAAc,YAAdA,CAAnB;;EACA,IACE,CAAC1iB,MAAMC,OAAND,CAAckpC,UAAdlpC,CAAD,IACAkpC,WAAW7yC,MAAX6yC,KAAsB,CADtB,IAEAA,WAAW7yC,MAAX6yC,GAAoB,CAApBA,GAAwB,CAH1B,EAIE;IACA,OAAO,IAAP;EAb+B;;EAgBjC,MAAMC,kBAAkB,EAAxB;;EACA,KAAK,IAAIlyC,IAAI,CAAR,EAAWiJ,KAAKgpC,WAAW7yC,MAAX6yC,GAAoB,CAAzC,EAA4CjyC,IAAIiJ,EAAhD,EAAoDjJ,GAApD,EAAyD;IAIvDkyC,gBAAgB/yC,IAAhB+yC,CAAqB,EAArBA;;IACA,KAAK,IAAI5rB,IAAItmB,IAAI,CAAZ,EAAemyC,KAAKnyC,IAAI,CAAJA,GAAQ,CAAjC,EAAoCsmB,IAAI6rB,EAAxC,EAA4C7rB,KAAK,CAAjD,EAAoD;MAClD,MAAMhe,IAAI2pC,WAAW3rB,CAAX,CAAV;MACA,MAAM8rB,IAAIH,WAAW3rB,IAAI,CAAf,CAAV;;MAMA,IACEzB,SAAS,IAATA,KACCvc,IAAIuc,KAAK,CAAL,CAAJvc,IAAeA,IAAIuc,KAAK,CAAL,CAAnBvc,IAA8B8pC,IAAIvtB,KAAK,CAAL,CAAlCvc,IAA6C8pC,IAAIvtB,KAAK,CAAL,CADlDA,CADF,EAGE;QACA,OAAO,IAAP;MAZgD;;MAclDqtB,gBAAgBlyC,CAAhB,EAAmBb,IAAnB+yC,CAAwB;QAAE5pC,CAAF;QAAK8pC;MAAL,CAAxBF;IAnBqD;EAjBxB;;EAoDjC,OAAOA,gBAAgBpwB,GAAhBowB,CAAoBG,kBAAkB;IAC3C,MAAM,CAACC,IAAD,EAAOC,IAAP,EAAaC,IAAb,EAAmBC,IAAnB,IAA2BJ,eAAe9pC,MAAf8pC,CAC/B,CAAC,CAACK,EAAD,EAAKC,EAAL,EAASC,EAAT,EAAaC,EAAb,CAAD,EAAmBC,SAAnB,KAAiC,CAC/BzvC,KAAKyd,GAALzd,CAASqvC,EAATrvC,EAAayvC,UAAUxqC,CAAvBjF,CAD+B,EAE/BA,KAAKC,GAALD,CAASsvC,EAATtvC,EAAayvC,UAAUxqC,CAAvBjF,CAF+B,EAG/BA,KAAKyd,GAALzd,CAASuvC,EAATvvC,EAAayvC,UAAUV,CAAvB/uC,CAH+B,EAI/BA,KAAKC,GAALD,CAASwvC,EAATxvC,EAAayvC,UAAUV,CAAvB/uC,CAJ+B,CADFgvC,EAO/B,CAACl0B,OAAO40B,SAAR,EAAmB50B,OAAO60B,SAA1B,EAAqC70B,OAAO40B,SAA5C,EAAuD50B,OAAO60B,SAA9D,CAP+BX,CAAjC;IASA,OAAO,CACL;MAAE/pC,GAAGgqC,IAAL;MAAWF,GAAGK;IAAd,CADK,EAEL;MAAEnqC,GAAGiqC,IAAL;MAAWH,GAAGK;IAAd,CAFK,EAGL;MAAEnqC,GAAGgqC,IAAL;MAAWF,GAAGI;IAAd,CAHK,EAIL;MAAElqC,GAAGiqC,IAAL;MAAWH,GAAGI;IAAd,CAJK,CAAP;EAVK,EAAP;AA/TF;;AAkVA,SAASS,kBAAT,CAA4BpuB,IAA5B,EAAkCqV,IAAlC,EAAwCgZ,MAAxC,EAAgD;EAE9C,MAAM,CAACZ,IAAD,EAAOE,IAAP,EAAaD,IAAb,EAAmBE,IAAnB,IAA2B9vB,WAAKgB,0BAALhB,CAC/BuX,IAD+BvX,EAE/BuwB,MAF+BvwB,CAAjC;;EAIA,IAAI2vB,SAASC,IAATD,IAAiBE,SAASC,IAA9B,EAAoC;IAGlC,OAAO,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa5tB,KAAK,CAAL,CAAb,EAAsBA,KAAK,CAAL,CAAtB,CAAP;EAT4C;;EAY9C,MAAMsuB,SAAU,MAAK,CAAL,IAAUtuB,KAAK,CAAL,CAAV,KAAsB0tB,OAAOD,IAA7B,CAAhB;EACA,MAAMc,SAAU,MAAK,CAAL,IAAUvuB,KAAK,CAAL,CAAV,KAAsB4tB,OAAOD,IAA7B,CAAhB;EACA,OAAO,CACLW,MADK,EAEL,CAFK,EAGL,CAHK,EAILC,MAJK,EAKLvuB,KAAK,CAAL,IAAUytB,OAAOa,MALZ,EAMLtuB,KAAK,CAAL,IAAU2tB,OAAOY,MANZ,CAAP;AAhWF;;AA0WA,MAAMlC,UAAN,CAAiB;EACfn0C,YAAYs2C,MAAZ,EAAoB;IAClB,MAAM5nB,OAAO4nB,OAAO5nB,IAApB;IAEA,KAAK6nB,QAAL,CAAc7nB,KAAKplB,GAALolB,CAAS,GAATA,CAAd;IACA,KAAK8nB,WAAL,CAAiB9nB,KAAKplB,GAALolB,CAAS,UAATA,CAAjB;IACA,KAAK+nB,mBAAL,CAAyB/nB,KAAKplB,GAALolB,CAAS,GAATA,CAAzB;IACA,KAAKgoB,QAAL,CAAchoB,KAAKplB,GAALolB,CAAS,GAATA,CAAd;IACA,KAAKioB,YAAL,CAAkBjoB,KAAKd,QAALc,CAAc,MAAdA,CAAlB;IACA,KAAKkoB,QAAL,CAAcloB,KAAKd,QAALc,CAAc,GAAdA,CAAd;IACA,KAAKmoB,cAAL,CAAoBnoB,IAApB;IACA,KAAKooB,aAAL,CAAmBpoB,IAAnB;IACA,KAAKqoB,4BAAL,CAAkCroB,KAAKplB,GAALolB,CAAS,IAATA,CAAlC;IAEA,KAAKsoB,QAAL,GAAgB,EAAhB;;IACA,IAAI,KAAKC,UAAT,EAAqB;MACnB,KAAKD,QAAL,CAAc50C,IAAd,CAAmB,KAAK60C,UAAxB;IAfgB;;IAmBlB,KAAK91C,IAAL,GAAY;MACV+1C,iBAAiB,KAAKjH,KADZ;MAEVkH,aAAa,KAAKA,WAFR;MAGV5C,OAAO,KAAKA,KAHF;MAIV6C,iBAAiB,KAAKA,eAJZ;MAKVC,aAAa,KAAKA,WALR;MAMVC,aAAa,KAAKC,SANR;MAOVC,eAAe,CAAC,CAAC,KAAKP,UAPZ;MAQVrtC,IAAI0sC,OAAO1sC,EARD;MASV6tC,kBAAkB,KAAKA,gBATb;MAUV3vB,MAAM,KAAK9M,SAVD;MAWVo0B,SAASkH,OAAOlH,OAXN;MAYVsI,cAAc;IAZJ,CAAZ;;IAeA,IAAIpB,OAAO9D,aAAX,EAA0B;MAIxB,MAAMpJ,OAAO1a,KAAKplB,GAALolB,CAAS,MAATA,CAAb;;MACA,IAAI1iB,MAAMC,OAAND,CAAco9B,IAAdp9B,CAAJ,EAAyB;QACvB,MAAM2rC,SAAS,EAAf;;QACA,WAAWtO,GAAX,IAAkBD,IAAlB,EAAwB;UACtB,IAAIC,eAAehgC,eAAnB,EAAwB;YACtBsuC,OAAOv1C,IAAPu1C,CAAYtO,IAAI3hC,QAAJ2hC,EAAZsO;UAFoB;QAFD;;QAOvB,IAAIA,OAAOt1C,MAAPs1C,KAAkB,CAAtB,EAAyB;UACvB,KAAKx2C,IAAL,CAAUw2C,MAAV,GAAmBA,MAAnB;QARqB;MALD;;MAiBxB,KAAKx2C,IAAL,CAAU63B,OAAV,GAAoBF,gCAClBwd,OAAOrrC,IADW6tB,EAElBpK,IAFkBoK,EAGlBniB,+BAHkBmiB,CAApB;MAKA,KAAK33B,IAAL,CAAUy2C,SAAV,GAAsB,KAAKC,mBAAL,CAAyBnpB,IAAzB,CAAtB;MACA,KAAKvtB,IAAL,CAAUyH,SAAV,GAAsB0tC,OAAO1tC,SAA7B;IAzDgB;;IA4DlB,KAAKkvC,iBAAL,GAAyB,IAAzB;EA7Da;;EAmEfC,SAAS9H,KAAT,EAAgB+H,IAAhB,EAAsB;IACpB,OAAO,CAAC,EAAE/H,QAAQ+H,IAAV,CAAR;EApEa;;EA0EfC,YAAYhI,KAAZ,EAAmB;IACjB,OACE,CAAC,KAAK8H,QAAL,CAAc9H,KAAd,EAAqBv7B,qBAAepD,SAApC,CAAD,IACA,CAAC,KAAKymC,QAAL,CAAc9H,KAAd,EAAqBv7B,qBAAeI,MAApC,CAFH;EA3Ea;;EAoFfojC,aAAajI,KAAb,EAAoB;IAClB,OACE,KAAK8H,QAAL,CAAc9H,KAAd,EAAqBv7B,qBAAe1E,KAApC,KACA,CAAC,KAAK+nC,QAAL,CAAc9H,KAAd,EAAqBv7B,qBAAepD,SAApC,CAFH;EArFa;;EAoGfyuB,aAAat1B,iBAAb,EAAgC;IAC9B,MAAM0tC,eACJ1tC,qBAAqBA,kBAAkBnB,GAAlBmB,CAAsB,KAAKtJ,IAAL,CAAUyI,EAAhCa,CADvB;;IAEA,IAAI0tC,gBAAgBA,aAAaC,MAAbD,KAAwB30B,SAA5C,EAAuD;MACrD,OAAO,CAAC20B,aAAaC,MAArB;IAJ4B;;IAM9B,OAAO,KAAKvX,QAAL,IAAiB,CAAC,KAAKkX,QAAL,CAAc,KAAK9H,KAAnB,EAA0Bv7B,qBAAeC,MAAzC,CAAzB;EA1Ga;;EAsHfupB,cAAczzB,iBAAd,EAAiC;IAC/B,MAAM0tC,eACJ1tC,qBAAqBA,kBAAkBnB,GAAlBmB,CAAsB,KAAKtJ,IAAL,CAAUyI,EAAhCa,CADvB;;IAEA,IAAI0tC,gBAAgBA,aAAaE,KAAbF,KAAuB30B,SAA3C,EAAsD;MACpD,OAAO20B,aAAaE,KAApB;IAJ6B;;IAM/B,OAAO,KAAKvX,SAAZ;EA5Ha;;EAkIf,IAAID,QAAJ,GAAe;IACb,IAAI,KAAK1/B,IAAL,CAAU+zC,UAAV,KAAyB,IAA7B,EAAmC;MACjC,OAAO,KAAP;IAFW;;IAIb,IAAI,KAAKjF,KAAL,KAAe,CAAnB,EAAsB;MACpB,OAAO,IAAP;IALW;;IAOb,OAAO,KAAKgI,WAAL,CAAiB,KAAKhI,KAAtB,CAAP;EAzIa;;EA+If,IAAInP,SAAJ,GAAgB;IACd,IAAI,KAAK3/B,IAAL,CAAU+zC,UAAV,KAAyB,IAA7B,EAAmC;MACjC,OAAO,KAAP;IAFY;;IAId,IAAI,KAAKjF,KAAL,KAAe,CAAnB,EAAsB;MACpB,OAAO,KAAP;IALY;;IAOd,OAAO,KAAKiI,YAAL,CAAkB,KAAKjI,KAAvB,CAAP;EAtJa;;EA4JfqI,mBAAmBn3C,IAAnB,EAAyB;IACvB,MAAMgjB,MAAM,OAAOhjB,IAAP,KAAgB,QAAhB,GAA2ByL,6BAAkBzL,IAAlByL,CAA3B,GAAqD,EAAjE;IACA,MAAM2rC,MAAMp0B,OAAOq0B,gBAAKr0B,GAALq0B,EAAUD,GAAVC,KAAkB,KAAzBr0B,GAAiC,KAAjCA,GAAyC,KAArD;IAEA,OAAO;MAAEA,GAAF;MAAOo0B;IAAP,CAAP;EAhKa;;EAyKfhC,SAASkC,KAAT,EAAgB;IACd,KAAKC,MAAL,GAAc,KAAKJ,kBAAL,CAAwBG,KAAxB,CAAd;EA1Ka;;EAoLfjC,YAAYmC,QAAZ,EAAsB;IACpB,KAAKpB,SAAL,GAAiB,KAAKe,kBAAL,CAAwBK,QAAxB,CAAjB;EArLa;;EAgMflC,oBAAoBgB,gBAApB,EAAsC;IACpC,KAAKA,gBAAL,GACE,OAAOA,gBAAP,KAA4B,QAA5B,GAAuCA,gBAAvC,GAA0D,IAD5D;EAjMa;;EA8Mff,SAASzG,KAAT,EAAgB;IACd,KAAKA,KAAL,GAAa7uB,OAAOC,SAAPD,CAAiB6uB,KAAjB7uB,KAA2B6uB,QAAQ,CAAnC7uB,GAAuC6uB,KAAvC7uB,GAA+C,CAA5D;EA/Ma;;EA4Nfw3B,QAAQZ,IAAR,EAAc;IACZ,OAAO,KAAKD,QAAL,CAAc,KAAK9H,KAAnB,EAA0B+H,IAA1B,CAAP;EA7Na;;EAuOfrB,aAAa37B,SAAb,EAAwB;IACtB,IAAIhP,MAAMC,OAAND,CAAcgP,SAAdhP,KAA4BgP,UAAU3Y,MAAV2Y,KAAqB,CAArD,EAAwD;MACtD,KAAKA,SAAL,GAAiB4K,WAAKiC,aAALjC,CAAmB5K,SAAnB4K,CAAjB;IADF,OAEO;MACL,KAAK5K,SAAL,GAAiB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAAjB;IAJoB;EAvOT;;EAyPf47B,SAASrC,KAAT,EAAgB;IACd,KAAKA,KAAL,GAAaD,YAAYC,KAAZ,CAAb;EA1Pa;;EAiQfsE,eAAeC,WAAf,EAA4B;IAC1B,KAAKA,WAAL,GAAmB,CAAC,MAAD,EAAS,MAAT,CAAnB;;IAEA,IAAI9sC,MAAMC,OAAND,CAAc8sC,WAAd9sC,KAA8B8sC,YAAYz2C,MAAZy2C,KAAuB,CAAzD,EAA4D;MAC1D,KAAK,IAAI71C,IAAI,CAAb,EAAgBA,IAAI,CAApB,EAAuBA,GAAvB,EAA4B;QAC1B,MAAM0f,MAAMm2B,YAAY71C,CAAZ,CAAZ;;QAEA,IAAI0f,eAAewJ,gBAAnB,EAAyB;UACvB,QAAQxJ,IAAI1iB,IAAZ;YACE,KAAK,MAAL;cACE;;YACF,KAAK,QAAL;YACA,KAAK,QAAL;YACA,KAAK,SAAL;YACA,KAAK,WAAL;YACA,KAAK,aAAL;YACA,KAAK,MAAL;YACA,KAAK,YAAL;YACA,KAAK,cAAL;YACA,KAAK,OAAL;cACE,KAAK64C,WAAL,CAAiB71C,CAAjB,IAAsB0f,IAAI1iB,IAA1B;cACA;UAbJ;QAJwB;;QAoB1B8F,gBAAM,gCAA+B4c,GAAhC,EAAL5c;MArBwD;IAHlC;EAjQb;;EAsSfgxC,6BAA6BgC,EAA7B,EAAiC;IAC/B,IAAIA,cAAcltC,gBAAlB,EAAwB;MACtB,KAAKwrC,WAAL,GAAmB/C,YAAYyE,GAAGnrB,QAAHmrB,CAAY,IAAZA,CAAZ,EAA+B,IAA/B,CAAnB;MACA,KAAK3B,eAAL,GAAuB9C,YAAYyE,GAAGnrB,QAAHmrB,CAAY,IAAZA,CAAZ,EAA+B,IAA/B,CAAvB;IAFF,OAGO;MACL,KAAK1B,WAAL,GAAmB,KAAKD,eAAL,GAAuB,IAA1C;IAL6B;EAtSlB;;EAsTfP,eAAeM,WAAf,EAA4B;IAQ1B,KAAKA,WAAL,GAAmB,IAAI6B,qBAAJ,EAAnB;;IACA,IAAI,EAAE7B,uBAAuBtrC,gBAAzB,CAAJ,EAAoC;MAClC;IAVwB;;IAY1B,IAAIsrC,YAAYnpB,GAAZmpB,CAAgB,IAAhBA,CAAJ,EAA2B;MACzB,MAAMzoB,OAAOyoB,YAAY7tC,GAAZ6tC,CAAgB,IAAhBA,CAAb;MACA,MAAM8B,WAAWvqB,KAAKplB,GAALolB,CAAS,MAATA,CAAjB;;MAEA,IAAI,CAACuqB,QAAD,IAAappB,wBAAOopB,QAAPppB,EAAiB,QAAjBA,CAAjB,EAA6C;QAC3C,KAAKsnB,WAAL,CAAiB+B,QAAjB,CAA0BxqB,KAAKplB,GAALolB,CAAS,GAATA,CAA1B,EAAyC,KAAK1T,SAA9C;QACA,KAAKm8B,WAAL,CAAiBgC,QAAjB,CAA0BzqB,KAAKplB,GAALolB,CAAS,GAATA,CAA1B;QACA,KAAKyoB,WAAL,CAAiBiC,YAAjB,CAA8B1qB,KAAKd,QAALc,CAAc,GAAdA,CAA9B;MAPuB;IAA3B,OASO,IAAIyoB,YAAYnpB,GAAZmpB,CAAgB,QAAhBA,CAAJ,EAA+B;MACpC,MAAMkC,QAAQlC,YAAYvpB,QAAZupB,CAAqB,QAArBA,CAAd;;MACA,IAAInrC,MAAMC,OAAND,CAAcqtC,KAAdrtC,KAAwBqtC,MAAMh3C,MAANg3C,IAAgB,CAA5C,EAA+C;QAC7C,KAAKlC,WAAL,CAAiBmC,yBAAjB,CAA2CD,MAAM,CAAN,CAA3C;QACA,KAAKlC,WAAL,CAAiBoC,uBAAjB,CAAyCF,MAAM,CAAN,CAAzC;QACA,KAAKlC,WAAL,CAAiB+B,QAAjB,CAA0BG,MAAM,CAAN,CAA1B,EAAoC,KAAKr+B,SAAzC;;QAEA,IAAIq+B,MAAMh3C,MAANg3C,KAAiB,CAArB,EAAwB;UAEtB,KAAKlC,WAAL,CAAiBiC,YAAjB,CAA8BC,MAAM,CAAN,CAA9B,EAA2D,IAA3D;QAP2C;MAFX;IAA/B,OAYA;MAML,KAAKlC,WAAL,CAAiB+B,QAAjB,CAA0B,CAA1B;IAvCwB;EAtTb;;EAwWfpC,cAAcpoB,IAAd,EAAoB;IAClB,KAAKuoB,UAAL,GAAkB,IAAlB;IAEA,MAAMuC,mBAAmB9qB,KAAKplB,GAALolB,CAAS,IAATA,CAAzB;;IACA,IAAI,EAAE8qB,4BAA4B3tC,gBAA9B,CAAJ,EAAyC;MACvC;IALgB;;IASlB,MAAM4tC,wBAAwBD,iBAAiBlwC,GAAjBkwC,CAAqB,GAArBA,CAA9B;;IACA,IAAIC,iCAAiC7gB,uBAArC,EAAiD;MAC/C,KAAKqe,UAAL,GAAkBwC,qBAAlB;MACA;IAZgB;;IAclB,IAAI,EAAEA,iCAAiC5tC,gBAAnC,CAAJ,EAA8C;MAC5C;IAfgB;;IAoBlB,MAAM6tC,KAAKhrB,KAAKplB,GAALolB,CAAS,IAATA,CAAX;;IACA,IAAI,EAAEgrB,cAAcvtB,gBAAhB,KAAyB,CAACstB,sBAAsBzrB,GAAtByrB,CAA0BC,GAAGz5C,IAA7Bw5C,CAA9B,EAAkE;MAChE;IAtBgB;;IAwBlB,KAAKxC,UAAL,GAAkBwC,sBAAsBnwC,GAAtBmwC,CAA0BC,GAAGz5C,IAA7Bw5C,CAAlB;EAhYa;;EAmYftb,cAActZ,IAAd,EAAoBoyB,UAApB,EAAgC;IAC9B,OAAOA,WAAWvoB,IAAXuoB,CAAgBvpB,QAAhBupB,CAAyB,WAAzBA,EAAsCpzC,IAAtCozC,CAA2Cha,aAAa;MAC7D,IAAI,CAACA,SAAL,EAAgB;QACd,OAAOzZ,SAAP;MAF2D;;MAK7D,MAAM4a,eAAe,IAAIC,2BAAJ,CAAiBpB,SAAjB,EAA4BpY,IAA5B,EAAkCoY,UAAUhyB,IAA5C,CAArB;MACA,OAAOmzB,aAAaE,IAAbF,GAAoBv6B,IAApBu6B,CAAyB,YAAY;QAC1C,OAAOnB,SAAP;MADK,EAAP;IANK,EAAP;EApYa;;EAgZflvB,gBAAgB4rC,SAAhB,EAA2B52C,IAA3B,EAAiCwH,MAAjC,EAAyCm1B,WAAzC,EAAsDj1B,iBAAtD,EAAyE;IACvE,MAAMtJ,OAAO,KAAKA,IAAlB;IACA,IAAI81C,aAAa,KAAKA,UAAtB;IACA,MAAM2C,mBACJz4C,KAAKu2C,YAALv2C,IAAqBoJ,SAASsF,0BAAoBE,OADpD;;IAEA,IAAI,CAACknC,UAAL,EAAiB;MACf,IAAI,CAAC2C,gBAAL,EAAuB;QACrB,OAAOp2C,QAAQhD,OAARgD,CAAgB,IAAIu7B,2BAAJ,EAAhBv7B,CAAP;MAFa;;MAIfyzC,aAAa,IAAIpb,oBAAJ,CAAiB,EAAjB,CAAbob;MACAA,WAAWvoB,IAAXuoB,GAAkB,IAAIprC,gBAAJ,EAAlBorC;IAVqE;;IAavE,MAAM4C,iBAAiB5C,WAAWvoB,IAAlC;IACA,MAAMgO,mBAAmB,KAAKyB,aAAL,CACvB,CAAC,WAAD,EAAc,YAAd,EAA4B,SAA5B,EAAuC,SAAvC,EAAkD,SAAlD,EAA6D,MAA7D,CADuB,EAEvB8Y,UAFuB,CAAzB;IAIA,MAAM9Z,OAAO0c,eAAejsB,QAAfisB,CAAwB,MAAxBA,KAAmC,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAAhD;IACA,MAAM1D,SAAS0D,eAAejsB,QAAfisB,CAAwB,QAAxBA,KAAqC,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,CAApD;IACA,MAAMp/B,YAAYy7B,mBAAmB/0C,KAAK2mB,IAAxB,EAA8BqV,IAA9B,EAAoCgZ,MAApC,CAAlB;IAEA,OAAOzZ,iBAAiB74B,IAAjB64B,CAAsBO,aAAa;MACxC,MAAM6B,SAAS,IAAIC,2BAAJ,EAAf;MACAD,OAAOS,KAAPT,CAAahlB,UAAI+E,eAAjBigB,EAAkC,CAChC39B,KAAKyI,EAD2B,EAEhCzI,KAAK2mB,IAF2B,EAGhCrN,SAHgC,EAIhC07B,MAJgC,EAKhCyD,gBALgC,CAAlC9a;MAQA,OAAO6a,UACJ5rC,eADI4rC,CACY;QACfpxC,QAAQ0uC,UADO;QAEfl0C,IAFe;QAGfk6B,SAHe;QAIfiC,cAAcJ,MAJC;QAKfgb,kBAAkB,KAAKhC;MALR,CADZ6B,EAQJ91C,IARI81C,CAQC,MAAM;QACV7a,OAAOS,KAAPT,CAAahlB,UAAIgF,aAAjBggB,EAAgC,EAAhCA;QACA,KAAKpD,KAAL;QACA,OAAOoD,MAAP;MAXG,EAAP;IAVK,EAAP;EAtaa;;EAgcf,MAAMj0B,IAAN,CAAW8uC,SAAX,EAAsB52C,IAAtB,EAA4B0H,iBAA5B,EAA+C;IAC7C,OAAO,IAAP;EAjca;;EA8cf0+B,iBAAiB;IACf,IAAI,KAAKhoC,IAAL,CAAUw2C,MAAd,EAAsB;MACpB,OAAO;QACL/tC,IAAI,KAAKzI,IAAL,CAAUyI,EADT;QAELovB,SAAS,KAAK73B,IAAL,CAAU63B,OAFd;QAGL/4B,MAAM,KAAKkB,IAAL,CAAUy2C,SAHX;QAILmC,aAAa,KAAK54C,IAAL,CAAUk2C,WAJlB;QAKL2C,WAAW,KAAK74C,IAAL,CAAUi2C,eALhB;QAMLrrB,MAAM,EAND;QAOL4rB,QAAQ,KAAKx2C,IAAL,CAAUw2C,MAPb;QAQL9uC,MAAM,KAAK1H,IAAL,CAAUyH;MARX,CAAP;IAFa;;IAaf,OAAO,IAAP;EA3da;;EAuef8yB,QAAQ;IAUN,WAAWnzB,MAAX,IAAqB,KAAKyuC,QAA1B,EAAoC;MAClCzuC,OAAOmzB,KAAPnzB;IAXI;EAveO;;EA+ffsvC,oBAAoBnpB,IAApB,EAA0B;IAGxB,IAAI,CAACA,KAAKV,GAALU,CAAS,GAATA,CAAD,IAAkB,CAACA,KAAKV,GAALU,CAAS,QAATA,CAAvB,EAA2C;MACzC3oB,gBAAK,uDAALA;MACA,OAAO,EAAP;IALsB;;IASxB,IAAI,CAAC2oB,KAAKV,GAALU,CAAS,QAATA,CAAL,EAAyB;MACvB,OAAO9hB,6BAAkB8hB,KAAKplB,GAALolB,CAAS,GAATA,CAAlB9hB,CAAP;IAVsB;;IAexB,MAAMgrC,YAAY,EAAlB;;IACA,IAAIlpB,KAAKV,GAALU,CAAS,GAATA,CAAJ,EAAmB;MACjBkpB,UAAUqC,OAAVrC,CAAkBhrC,6BAAkB8hB,KAAKplB,GAALolB,CAAS,GAATA,CAAlB9hB,CAAlBgrC;IAjBsB;;IAoBxB,IAAIsC,WAAWxrB,IAAf;IACA,MAAMqI,UAAU,IAAI9H,kBAAJ,EAAhB;;IACA,IAAIP,KAAK1B,KAAT,EAAgB;MACd+J,QAAQ1H,GAAR0H,CAAYrI,KAAK1B,KAAjB+J;IAvBsB;;IAyBxB,OAAOmjB,SAASlsB,GAATksB,CAAa,QAAbA,CAAP,EAA+B;MAC7BA,WAAWA,SAAS5wC,GAAT4wC,CAAa,QAAbA,CAAXA;;MACA,IACE,EAAEA,oBAAoBruC,gBAAtB,KACCquC,SAASltB,KAATktB,IAAkBnjB,QAAQ/I,GAAR+I,CAAYmjB,SAASltB,KAArB+J,CAFrB,EAGE;QAOA;MAZ2B;;MAc7B,IAAImjB,SAASltB,KAAb,EAAoB;QAClB+J,QAAQ1H,GAAR0H,CAAYmjB,SAASltB,KAArB+J;MAf2B;;MAkB7B,IAAImjB,SAASlsB,GAATksB,CAAa,GAAbA,CAAJ,EAAuB;QACrBtC,UAAUqC,OAAVrC,CAAkBhrC,6BAAkBstC,SAAS5wC,GAAT4wC,CAAa,GAAbA,CAAlBttC,CAAlBgrC;MAnB2B;IAzBP;;IA+CxB,OAAOA,UAAUt1C,IAAVs1C,CAAe,GAAfA,CAAP;EA9iBa;;AAAA;;;;AAqjBjB,MAAMoB,qBAAN,CAA4B;EAC1Bh5C,cAAc;IACZ,KAAKm6C,KAAL,GAAa,CAAb;IACA,KAAKC,KAAL,GAAa9jC,gCAA0BC,KAAvC;IACA,KAAK8jC,SAAL,GAAiB,CAAC,CAAD,CAAjB;IACA,KAAKC,sBAAL,GAA8B,CAA9B;IACA,KAAKC,oBAAL,GAA4B,CAA5B;EANwB;;EAiB1BrB,SAASiB,KAAT,EAAgBryB,OAAO,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAAvB,EAAqC;IAanC,IAAIqyB,iBAAiBhuB,gBAArB,EAA2B;MACzB,KAAKguB,KAAL,GAAa,CAAb;MACA;IAfiC;;IAiBnC,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;MAC7B,IAAIA,QAAQ,CAAZ,EAAe;QACb,MAAMK,WAAY,MAAK,CAAL,IAAU1yB,KAAK,CAAL,CAAV,IAAqB,CAAvC;QACA,MAAM2yB,YAAa,MAAK,CAAL,IAAU3yB,KAAK,CAAL,CAAV,IAAqB,CAAxC;;QAKA,IACE0yB,WAAW,CAAXA,IACAC,YAAY,CADZD,KAECL,QAAQK,QAARL,IAAoBA,QAAQM,SAF7BD,CADF,EAIE;UACAz0C,gBAAM,oDAAmDo0C,KAApD,EAALp0C;UACAo0C,QAAQ,CAARA;QAbW;MADc;;MAiB7B,KAAKA,KAAL,GAAaA,KAAb;IAlCiC;EAjBX;;EA+D1BhB,SAASiB,KAAT,EAAgB;IACd,IAAI,EAAEA,iBAAiBjuB,gBAAnB,CAAJ,EAA8B;MAC5B;IAFY;;IAId,QAAQiuB,MAAMn6C,IAAd;MACE,KAAK,GAAL;QACE,KAAKm6C,KAAL,GAAa9jC,gCAA0BC,KAAvC;QACA;;MAEF,KAAK,GAAL;QACE,KAAK6jC,KAAL,GAAa9jC,gCAA0BE,MAAvC;QACA;;MAEF,KAAK,GAAL;QACE,KAAK4jC,KAAL,GAAa9jC,gCAA0BG,OAAvC;QACA;;MAEF,KAAK,GAAL;QACE,KAAK2jC,KAAL,GAAa9jC,gCAA0BI,KAAvC;QACA;;MAEF,KAAK,GAAL;QACE,KAAK0jC,KAAL,GAAa9jC,gCAA0B3D,SAAvC;QACA;;MAEF;QACE;IAtBJ;EAnEwB;;EAqG1BymC,aAAaiB,SAAb,EAAwBK,aAAa,KAArC,EAA4C;IAI1C,IAAI1uC,MAAMC,OAAND,CAAcquC,SAAdruC,KAA4BquC,UAAUh4C,MAAVg4C,GAAmB,CAAnD,EAAsD;MAGpD,IAAItV,UAAU,IAAd;MACA,IAAI4V,WAAW,IAAf;;MACA,WAAWjiB,OAAX,IAAsB2hB,SAAtB,EAAiC;QAC/B,MAAMO,cAAc,CAACliB,OAAD,IAAY,CAAhC;;QACA,IAAI,CAACkiB,WAAL,EAAkB;UAChB7V,UAAU,KAAVA;UACA;QAFF,OAGO,IAAIrM,UAAU,CAAd,EAAiB;UACtBiiB,WAAW,KAAXA;QAN6B;MALmB;;MAcpD,IAAI5V,WAAW,CAAC4V,QAAhB,EAA0B;QACxB,KAAKN,SAAL,GAAiBA,SAAjB;;QAEA,IAAIK,UAAJ,EAAgB;UAGd,KAAKvB,QAAL,CAAchtB,iBAAK7iB,GAAL6iB,CAAS,GAATA,CAAd;QANsB;MAA1B,OAQO;QACL,KAAKguB,KAAL,GAAa,CAAb;MAvBkD;IAAtD,OAyBO,IAAIE,SAAJ,EAAe;MACpB,KAAKF,KAAL,GAAa,CAAb;IA9BwC;EArGlB;;EA8I1Bb,0BAA0BuB,MAA1B,EAAkC;IAChC,IAAIz5B,OAAOC,SAAPD,CAAiBy5B,MAAjBz5B,CAAJ,EAA8B;MAC5B,KAAKk5B,sBAAL,GAA8BO,MAA9B;IAF8B;EA9IR;;EA2J1BtB,wBAAwBsB,MAAxB,EAAgC;IAC9B,IAAIz5B,OAAOC,SAAPD,CAAiBy5B,MAAjBz5B,CAAJ,EAA8B;MAC5B,KAAKm5B,oBAAL,GAA4BM,MAA5B;IAF4B;EA3JN;;AAAA;;;;AAkK5B,MAAMC,gBAAN,SAA+B3G,UAA/B,CAA0C;EACxCn0C,YAAY2yC,UAAZ,EAAwB;IACtB,MAAMA,UAAN;IAEA,MAAMjkB,OAAOikB,WAAWjkB,IAAxB;;IAEA,IAAIA,KAAKV,GAALU,CAAS,KAATA,CAAJ,EAAqB;MACnB,MAAMqsB,SAASrsB,KAAK5hB,MAAL4hB,CAAY,KAAZA,CAAf;MACA,KAAKvtB,IAAL,CAAU65C,SAAV,GAAsBD,kBAAkB1xC,eAAlB0xC,GAAwBA,OAAOrzC,QAAPqzC,EAAxBA,GAA4C,IAAlE;MAEA,MAAME,KAAKvsB,KAAKplB,GAALolB,CAAS,IAATA,CAAX;MACA,KAAKvtB,IAAL,CAAU+5C,SAAV,GACED,cAAc9uB,gBAAd8uB,GAAqBA,GAAGh7C,IAAxBg7C,GAA+B1mC,0BAAoBE,KADrD;IAVoB;;IActB,IAAI,KAAKtT,IAAL,CAAU+5C,SAAV,KAAwB3mC,0BAAoBC,KAAhD,EAAuD;MAGrD,MAAM0a,SAASR,KAAKplB,GAALolB,CAAS,KAATA,CAAf;MAEA,KAAK6nB,QAAL,CAAcrnB,OAAO5lB,GAAP4lB,CAAW,GAAXA,CAAd;MACA,KAAK/tB,IAAL,CAAUg6C,QAAV,GAAqB,KAAKzC,MAA1B;MAEA,KAAKlC,WAAL,CAAiBtnB,OAAO5lB,GAAP4lB,CAAW,UAAXA,CAAjB;MACA,KAAK/tB,IAAL,CAAUm2C,WAAV,GAAwB,KAAKC,SAA7B;;MAEA,IAAI,CAACroB,OAAOlB,GAAPkB,CAAW,cAAXA,CAAL,EAAiC;QAC/B,KAAK/tB,IAAL,CAAUi6C,YAAV,GAAyB,IAAzB;MADF,OAEO;QACL,KAAKC,eAAL,CAAqBnsB,OAAO5lB,GAAP4lB,CAAW,cAAXA,CAArB;QACA,KAAK/tB,IAAL,CAAUi6C,YAAV,GAAyB,KAAKA,YAA9B;MAfmD;;MAkBrD,IAAI,CAAClsB,OAAOlB,GAAPkB,CAAW,GAAXA,CAAL,EAAsB;QACpB,KAAK/tB,IAAL,CAAUs2C,gBAAV,GAA6B,IAA7B;MADF,OAEO;QACL,KAAKhB,mBAAL,CAAyBvnB,OAAO5lB,GAAP4lB,CAAW,GAAXA,CAAzB;QACA,KAAK/tB,IAAL,CAAUs2C,gBAAV,GAA6B,KAAKA,gBAAlC;MAtBmD;;MAyBrD,KAAKt2C,IAAL,CAAUm6C,QAAV,GAAqBpsB,OAAOlB,GAAPkB,CAAW,OAAXA,CAArB;;MAEA,IAAI,CAACA,OAAOlB,GAAPkB,CAAW,GAAXA,CAAL,EAAsB;QAEpB,KAAK/tB,IAAL,CAAUozC,KAAV,GAAkB,IAAlB;MAFF,OAGO;QACL,KAAKqC,QAAL,CAAc1nB,OAAOtB,QAAPsB,CAAgB,GAAhBA,CAAd;QACA,KAAK/tB,IAAL,CAAUozC,KAAV,GAAkB,KAAKA,KAAvB;MAhCmD;IAAvD,OAkCO;MACL,KAAKpzC,IAAL,CAAUg6C,QAAV,GAAqB,KAAKzC,MAA1B;MAEA,KAAK2C,eAAL,CAAqB3sB,KAAKplB,GAALolB,CAAS,cAATA,CAArB;MACA,KAAKvtB,IAAL,CAAUi6C,YAAV,GAAyB,KAAKA,YAA9B;MAEA,KAAKj6C,IAAL,CAAUm6C,QAAV,GAAqB5sB,KAAKV,GAALU,CAAS,OAATA,CAArB;;MAEA,IAAI,CAACA,KAAKV,GAALU,CAAS,GAATA,CAAL,EAAoB;QAElB,KAAKvtB,IAAL,CAAUozC,KAAV,GAAkB,IAAlB;MAVG;IAhDe;;IA8DtB,IAAI7lB,KAAKV,GAALU,CAAS,IAATA,CAAJ,EAAoB;MAClB,KAAKvtB,IAAL,CAAUo6C,QAAV,GAAqBzW,oBAAW0W,iBAAX1W,CAA6BpW,KAAKplB,GAALolB,CAAS,IAATA,CAA7BoW,CAArB;IA/DoB;EADgB;;EA4ExCuW,gBAAgBD,YAAhB,EAA8B;IAC5B,KAAKA,YAAL,GAAoB,OAAOA,YAAP,KAAwB,QAAxB,GAAmCA,YAAnC,GAAkD,IAAtE;EA7EsC;;EAgFxCK,sBAAsB;IACpBxwC,IADoB;IAEpBywC,KAFoB;IAGpB3B,WAHoB;IAIpBC,SAJoB;IAKpB2B,SALoB;IAMpBC,WANoB;IAOpBC,SAPoB;IAQpBC;EARoB,CAAtB,EASG;IACD,IAAIvG,OAAOn0B,OAAO40B,SAAlB;IACA,IAAIP,OAAOr0B,OAAO40B,SAAlB;IACA,IAAIR,OAAOp0B,OAAO60B,SAAlB;IACA,IAAIP,OAAOt0B,OAAO60B,SAAlB;IAEA,MAAM7wB,SAAS,CAAC,GAAD,CAAf;;IACA,IAAIs2B,KAAJ,EAAW;MACTt2B,OAAOhjB,IAAPgjB,CAAYs2B,KAAZt2B;IARD;;IAUD,IAAI20B,WAAJ,EAAiB;MACf30B,OAAOhjB,IAAPgjB,CAAY,GAAG20B,YAAY,CAAZ,CAAe,IAAGA,YAAY,CAAZ,CAAe,IAAGA,YAAY,CAAZ,CAAe,KAAlE30B;IAXD;;IAaD,IAAI40B,SAAJ,EAAe;MACb50B,OAAOhjB,IAAPgjB,CAAY,GAAG40B,UAAU,CAAV,CAAa,IAAGA,UAAU,CAAV,CAAa,IAAGA,UAAU,CAAV,CAAa,KAA5D50B;IAdD;;IAiBD,IAAI22B,cAAc,KAAK56C,IAAL,CAAU+zC,UAA5B;;IACA,IAAI,CAAC6G,WAAL,EAAkB;MAIhBA,cAAc,CACZ,CACE;QAAExwC,GAAG,KAAKyP,SAAL,CAAe,CAAf,CAAL;QAAwBq6B,GAAG,KAAKr6B,SAAL,CAAe,CAAf;MAA3B,CADF,EAEE;QAAEzP,GAAG,KAAKyP,SAAL,CAAe,CAAf,CAAL;QAAwBq6B,GAAG,KAAKr6B,SAAL,CAAe,CAAf;MAA3B,CAFF,EAGE;QAAEzP,GAAG,KAAKyP,SAAL,CAAe,CAAf,CAAL;QAAwBq6B,GAAG,KAAKr6B,SAAL,CAAe,CAAf;MAA3B,CAHF,EAIE;QAAEzP,GAAG,KAAKyP,SAAL,CAAe,CAAf,CAAL;QAAwBq6B,GAAG,KAAKr6B,SAAL,CAAe,CAAf;MAA3B,CAJF,CADY,CAAd+gC;IAtBD;;IAgCD,WAAWC,MAAX,IAAqBD,WAArB,EAAkC;MAChC,MAAM,CAACpG,EAAD,EAAKC,EAAL,EAASC,EAAT,EAAaC,EAAb,IAAmBgG,eAAe12B,MAAf,EAAuB42B,MAAvB,CAAzB;MACAzG,OAAOjvC,KAAKyd,GAALzd,CAASivC,IAATjvC,EAAeqvC,EAAfrvC,CAAPivC;MACAC,OAAOlvC,KAAKC,GAALD,CAASkvC,IAATlvC,EAAesvC,EAAftvC,CAAPkvC;MACAC,OAAOnvC,KAAKyd,GAALzd,CAASmvC,IAATnvC,EAAeuvC,EAAfvvC,CAAPmvC;MACAC,OAAOpvC,KAAKC,GAALD,CAASovC,IAATpvC,EAAewvC,EAAfxvC,CAAPovC;IArCD;;IAuCDtwB,OAAOhjB,IAAPgjB,CAAY,GAAZA;IAEA,MAAM62B,WAAW,IAAIpwC,gBAAJ,CAASZ,IAAT,CAAjB;IACA,MAAMixC,uBAAuB,IAAIrwC,gBAAJ,CAASZ,IAAT,CAA7B;IACAixC,qBAAqBx3B,GAArBw3B,CAAyB,SAAzBA,EAAoC/vB,iBAAK7iB,GAAL6iB,CAAS,MAATA,CAApC+vB;IAEA,MAAMC,mBAAmB,IAAItgB,oBAAJ,CAAiBzW,OAAO9iB,IAAP8iB,CAAY,GAAZA,CAAjB,CAAzB;IACA+2B,iBAAiBztB,IAAjBytB,GAAwBD,oBAAxBC;IACAF,SAASv3B,GAATu3B,CAAa,KAAbA,EAAoBE,gBAApBF;IAEA,MAAMG,SAAS,IAAIvwC,gBAAJ,CAASZ,IAAT,CAAf;;IACA,IAAI0wC,SAAJ,EAAe;MACbS,OAAO13B,GAAP03B,CAAW,IAAXA,EAAiBjwB,iBAAK7iB,GAAL6iB,CAASwvB,SAATxvB,CAAjBiwB;IAnDD;;IAqDD,IAAI,OAAOR,WAAP,KAAuB,QAA3B,EAAqC;MACnCQ,OAAO13B,GAAP03B,CAAW,IAAXA,EAAiBR,WAAjBQ;IAtDD;;IAwDD,IAAI,OAAOP,SAAP,KAAqB,QAAzB,EAAmC;MACjCO,OAAO13B,GAAP03B,CAAW,IAAXA,EAAiBP,SAAjBO;IAzDD;;IA4DD,MAAMC,YAAY,IAAIxwC,gBAAJ,CAASZ,IAAT,CAAlB;IACAoxC,UAAU33B,GAAV23B,CAAc,KAAdA,EAAqBD,MAArBC;IAEA,MAAMpf,YAAY,IAAIpxB,gBAAJ,CAASZ,IAAT,CAAlB;IACAgyB,UAAUvY,GAAVuY,CAAc,WAAdA,EAA2Bof,SAA3Bpf;IACAA,UAAUvY,GAAVuY,CAAc,SAAdA,EAAyBgf,QAAzBhf;IAEA,MAAM4c,iBAAiB,IAAIhuC,gBAAJ,CAASZ,IAAT,CAAvB;IACA4uC,eAAen1B,GAAfm1B,CAAmB,WAAnBA,EAAgC5c,SAAhC4c;IACA,MAAM1c,OAAQ,KAAKh8B,IAAL,CAAU2mB,IAAV,GAAiB,CAACytB,IAAD,EAAOE,IAAP,EAAaD,IAAb,EAAmBE,IAAnB,CAA/B;IACAmE,eAAen1B,GAAfm1B,CAAmB,MAAnBA,EAA2B1c,IAA3B0c;IAEA,KAAK5C,UAAL,GAAkB,IAAIpb,oBAAJ,CAAiB,iBAAjB,CAAlB;IACA,KAAKob,UAAL,CAAgBvoB,IAAhB,GAAuBmrB,cAAvB;;IAIA,KAAK7C,QAAL,CAAc50C,IAAd,CAAmB,KAAK60C,UAAxB,EAAoCkF,gBAApC;EAtKsC;;AAAA;;;;AA0K1C,MAAMhJ,gBAAN,SAA+BgB,UAA/B,CAA0C;EACxCn0C,YAAYs2C,MAAZ,EAAoB;IAClB,MAAMA,MAAN;IAEA,MAAM5nB,OAAO4nB,OAAO5nB,IAApB;IACA,MAAMvtB,OAAO,KAAKA,IAAlB;IACA,KAAK6H,GAAL,GAAWstC,OAAOttC,GAAlB;IAEA7H,KAAKm7C,cAALn7C,GAAsB8Q,qBAAeoB,MAArClS;;IACA,IAAIA,KAAKy2C,SAALz2C,KAAmBqiB,SAAvB,EAAkC;MAChCriB,KAAKy2C,SAALz2C,GAAiB,KAAK02C,mBAAL,CAAyBnpB,IAAzB,CAAjBvtB;IATgB;;IAWlB,IAAIA,KAAK63B,OAAL73B,KAAiBqiB,SAArB,EAAgC;MAC9BriB,KAAK63B,OAAL73B,GAAe23B,gCACbwd,OAAOrrC,IADM6tB,EAEbpK,IAFaoK,EAGbniB,+BAHamiB,CAAf33B;IAZgB;;IAmBlB,IAAIo7C,aAAa1lB,wCAAuB;MACtCnI,IADsC;MAEtC/hB,KAAK,GAFiC;MAGtCihB,UAAU;IAH4B,CAAvBiJ,CAAjB;IAKA11B,KAAKo7C,UAALp7C,GAAkB,KAAKq7C,gBAAL,CAAsBD,UAAtB,CAAlBp7C;IAEA,MAAMs7C,oBAAoB5lB,wCAAuB;MAC/CnI,IAD+C;MAE/C/hB,KAAK,IAF0C;MAG/CihB,UAAU;IAHqC,CAAvBiJ,CAA1B;IAKA11B,KAAKs7C,iBAALt7C,GAAyB,KAAKq7C,gBAAL,CAAsBC,iBAAtB,CAAzBt7C;;IAEA,IAAIo7C,eAAe/4B,SAAf+4B,IAA4BjG,OAAO/R,WAAvC,EAAoD;MAElD,MAAMxM,OAAO,KAAK2gB,MAAL,CAAYv0B,GAAzB;;MACA,IAAI4T,IAAJ,EAAU;QACR,KAAK2kB,gBAAL,GAAwB,IAAxB;QACAv7C,KAAKo7C,UAALp7C,GAAkBo7C,aAAajG,OAAO/R,WAAP+R,CAAmBqG,QAAnBrG,CAA4Bve,IAA5Bue,CAA/Bn1C;MALgD;IAjClC;;IA4ClB,IAAIo7C,eAAe/4B,SAAf+4B,IAA4Bp7C,KAAKs7C,iBAALt7C,KAA2B,IAA3D,EAAiE;MAC/DA,KAAKo7C,UAALp7C,GAAkBA,KAAKs7C,iBAAvBt7C;IA7CgB;;IAgDlBA,KAAKy7C,eAALz7C,GAAuByL,6BAAkB8hB,KAAKplB,GAALolB,CAAS,IAATA,KAAkB,EAApC9hB,CAAvBzL;IAEA,MAAM07C,oBACJhmB,wCAAuB;MAAEnI,IAAF;MAAQ/hB,KAAK;IAAb,CAAvBkqB,KAA+Cyf,OAAOvrC,QAAPurC,CAAgBhtC,GAAhBgtC,CAAoB,IAApBA,CADjD;IAEA,KAAKwG,kBAAL,GACE,OAAOD,iBAAP,KAA6B,QAA7B,GAAwCA,iBAAxC,GAA4D,EAD9D;IAEA17C,KAAK47C,qBAAL57C,GAA6B67C,gDAC3B,KAAKF,kBADsBE,CAA7B77C;IAIA,MAAM2xC,YAAYjc,wCAAuB;MAAEnI,IAAF;MAAQ/hB,KAAK;IAAb,CAAvBkqB,CAAlB;IACA11B,KAAK2xC,SAAL3xC,GAAiB2xC,qBAAqB3mB,gBAArB2mB,GAA4BA,UAAU7yC,IAAtC6yC,GAA6C,IAA9D3xC;IAEA,MAAM87C,iBAAiBpmB,wCAAuB;MAAEnI,IAAF;MAAQ/hB,KAAK;IAAb,CAAvBkqB,CAAvB;IACA,MAAMqmB,oBAAoB5G,OAAOvrC,QAAPurC,CAAgBhtC,GAAhBgtC,CAAoB,IAApBA,CAA1B;IACA,MAAM6G,sBACJ,KAAKlG,UAAL,IAAmB,KAAKA,UAAL,CAAgBvoB,IAAhB,CAAqBplB,GAArB,CAAyB,WAAzB,CADrB;IAGA,KAAK8zC,eAAL,GAAuB;MACrBH,cADqB;MAErBC,iBAFqB;MAGrBC,mBAHqB;MAIrBE,iBAAiBxxC,iBAAKuiB,KAALviB,CAAW;QAC1BZ,MAAMqrC,OAAOrrC,IADa;QAE1BojB,WAAW,CAAC4uB,cAAD,EAAiBE,mBAAjB,EAAsCD,iBAAtC,CAFe;QAG1B5uB,eAAe;MAHW,CAAXziB;IAJI,CAAvB;IAWA1K,KAAKm8C,UAALn8C,GAAkB01B,wCAAuB;MAAEnI,IAAF;MAAQ/hB,KAAK;IAAb,CAAvBkqB,CAAlB11B;;IACA,IAAI,CAACigB,OAAOC,SAAPD,CAAiBjgB,KAAKm8C,UAAtBl8B,CAAD,IAAsCjgB,KAAKm8C,UAALn8C,GAAkB,CAA5D,EAA+D;MAC7DA,KAAKm8C,UAALn8C,GAAkB,CAAlBA;IA/EgB;;IAkFlBA,KAAKo8C,QAALp8C,GAAgB,KAAKq8C,YAAL,CAAkBroC,0BAAoBJ,QAAtC,CAAhB5T;IACAA,KAAKi3C,MAALj3C,GAAc,KAAK42C,QAAL,CAAc52C,KAAK+1C,eAAnB,EAAoCxiC,qBAAeC,MAAnD,CAAdxT;EApFsC;;EAgGxCq7C,iBAAiBiB,SAAjB,EAA4B;IAC1B,IAAIzxC,MAAMC,OAAND,CAAcyxC,SAAdzxC,CAAJ,EAA8B;MAC5B,OAAOyxC,UACJnyC,MADImyC,CACGj5B,QAAQ,OAAOA,IAAP,KAAgB,QAD3Bi5B,EAEJ14B,GAFI04B,CAEAj5B,QAAQ5X,6BAAkB4X,IAAlB5X,CAFR6wC,CAAP;IADF,OAIO,IAAIA,qBAAqBtxB,gBAAzB,EAA+B;MACpC,OAAOvf,6BAAkB6wC,UAAUx9C,IAA5B2M,CAAP;IADK,OAEA,IAAI,OAAO6wC,SAAP,KAAqB,QAAzB,EAAmC;MACxC,OAAO7wC,6BAAkB6wC,SAAlB7wC,CAAP;IARwB;;IAU1B,OAAO,IAAP;EA1GsC;;EAuHxC4wC,aAAaxF,IAAb,EAAmB;IACjB,OAAO,CAAC,EAAE,KAAK72C,IAAL,CAAUm8C,UAAV,GAAuBtF,IAAzB,CAAR;EAxHsC;;EA2HxCjqC,gBAAgB4rC,SAAhB,EAA2B52C,IAA3B,EAAiCwH,MAAjC,EAAyCm1B,WAAzC,EAAsDj1B,iBAAtD,EAAyE;IAGvE,IAAIi1B,eAAe,EAAE,gBAAgBwT,yBAAlB,CAAnB,EAAiE;MAC/D,OAAO1vC,QAAQhD,OAARgD,CAAgB,IAAIu7B,2BAAJ,EAAhBv7B,CAAP;IAJqE;;IAOvE,IAAI,CAAC,KAAKk6C,QAAV,EAAoB;MAClB,OAAO,MAAM3vC,eAAN,CACL4rC,SADK,EAEL52C,IAFK,EAGLwH,MAHK,EAILm1B,WAJK,EAKLj1B,iBALK,CAAP;IARqE;;IAiBvE,OAAO,KAAKkzC,cAAL,CAAoBhE,SAApB,EAA+B52C,IAA/B,EAAqC0H,iBAArC,EAAwD5G,IAAxD,CACLm5B,WAAW;MACT,IAAI,KAAKia,UAAL,IAAmBja,YAAY,IAAnC,EAAyC;QACvC,OAAO,MAAMjvB,eAAN,CACL4rC,SADK,EAEL52C,IAFK,EAGLwH,MAHK,EAILm1B,WAJK,EAKLj1B,iBALK,CAAP;MAFO;;MAWT,MAAMy0B,eAAe,IAAIH,2BAAJ,EAArB;;MAIA,IAAI,CAAC,KAAK+d,kBAAN,IAA4B9f,YAAY,IAA5C,EAAkD;QAChD,OAAOkC,YAAP;MAhBO;;MAmBT,MAAMiX,SAAS,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,CAAf;MACA,MAAMhZ,OAAO,CACX,CADW,EAEX,CAFW,EAGX,KAAKh8B,IAAL,CAAU2mB,IAAV,CAAe,CAAf,IAAoB,KAAK3mB,IAAL,CAAU2mB,IAAV,CAAe,CAAf,CAHT,EAIX,KAAK3mB,IAAL,CAAU2mB,IAAV,CAAe,CAAf,IAAoB,KAAK3mB,IAAL,CAAU2mB,IAAV,CAAe,CAAf,CAJT,CAAb;MAOA,MAAMrN,YAAYy7B,mBAAmB,KAAK/0C,IAAL,CAAU2mB,IAA7B,EAAmCqV,IAAnC,EAAyCgZ,MAAzC,CAAlB;MACAjX,aAAaK,KAAbL,CAAmBplB,UAAI+E,eAAvBqgB,EAAwC,CACtC,KAAK/9B,IAAL,CAAUyI,EAD4B,EAEtC,KAAKzI,IAAL,CAAU2mB,IAF4B,EAGtCrN,SAHsC,EAItC07B,MAJsC,CAAxCjX;MAOA,MAAM32B,SAAS,IAAIszB,oBAAJ,CAAiBmB,OAAjB,CAAf;MACA,OAAO2c,UACJ5rC,eADI4rC,CACY;QACfpxC,MADe;QAEfxF,IAFe;QAGfk6B,WAAW,KAAKmgB,eAAL,CAAqBC,eAHjB;QAIfne;MAJe,CADZya,EAOJ91C,IAPI81C,CAOC,YAAY;QAChBza,aAAaK,KAAbL,CAAmBplB,UAAIgF,aAAvBogB,EAAsC,EAAtCA;QACA,OAAOA,YAAP;MATG,EAAP;IArCG,EAAP;EA5IsC;;EAgMxC,MAAMr0B,IAAN,CAAW8uC,SAAX,EAAsB52C,IAAtB,EAA4B0H,iBAA5B,EAA+C;IAC7C,MAAM0tC,eAAe1tC,oBACjBA,kBAAkBnB,GAAlBmB,CAAsB,KAAKtJ,IAAL,CAAUyI,EAAhCa,CADiB,GAEjB+Y,SAFJ;IAGA,IAAItd,QAAQiyC,gBAAgBA,aAAajyC,KAAzC;;IACA,IAAIA,UAAU,KAAK/E,IAAL,CAAUo7C,UAApBr2C,IAAkCA,UAAUsd,SAAhD,EAA2D;MACzD,IAAI,CAAC,KAAKk5B,gBAAV,EAA4B;QAC1B,OAAO,IAAP;MAFuD;;MAIzDx2C,QAAQA,SAAS,KAAK/E,IAAL,CAAUo7C,UAA3Br2C;IAT2C;;IAa7C,IACE,CAAC,KAAKw2C,gBAAN,IACA1wC,MAAMC,OAAND,CAAc9F,KAAd8F,CADA,IAEAA,MAAMC,OAAND,CAAc,KAAK7K,IAAL,CAAUo7C,UAAxBvwC,CAFA,IAGA9F,MAAM7D,MAAN6D,KAAiB,KAAK/E,IAAL,CAAUo7C,UAAV,CAAqBl6C,MAHtC,IAIA6D,MAAMw9B,KAANx9B,CAAY,CAACqF,CAAD,EAAItI,CAAJ,KAAUsI,MAAM,KAAKpK,IAAL,CAAUo7C,UAAV,CAAqBt5C,CAArB,CAA5BiD,CALF,EAME;MACA,OAAO,IAAP;IApB2C;;IAuB7C,IAAI+wC,aAAa,MAAM,KAAK0G,cAAL,CACrBhE,SADqB,EAErB52C,IAFqB,EAGrB0H,iBAHqB,CAAvB;;IAKA,IAAIwsC,eAAe,IAAnB,EAAyB;MACvB,OAAO,IAAP;IA7B2C;;IA+B7C,MAAM;MAAEhsC;IAAF,IAAW0uC,SAAjB;IAEA,MAAMjrB,OAAOzjB,KAAK24B,UAAL34B,CAAgB,KAAKjC,GAArBiC,CAAb;;IACA,IAAI,EAAEyjB,gBAAgB7iB,gBAAlB,CAAJ,EAA6B;MAC3B,OAAO,IAAP;IAnC2C;;IAsC7C,MAAMsxB,OAAO,CACX,CADW,EAEX,CAFW,EAGX,KAAKh8B,IAAL,CAAU2mB,IAAV,CAAe,CAAf,IAAoB,KAAK3mB,IAAL,CAAU2mB,IAAV,CAAe,CAAf,CAHT,EAIX,KAAK3mB,IAAL,CAAU2mB,IAAV,CAAe,CAAf,IAAoB,KAAK3mB,IAAL,CAAU2mB,IAAV,CAAe,CAAf,CAJT,CAAb;IAOA,MAAMlc,MAAM;MACVmsB,MAAMnrB,6BAAkB8hB,KAAKplB,GAALolB,CAAS,GAATA,KAAiB,EAAnC9hB,CADI;MAEV1G;IAFU,CAAZ;IAKA,MAAM8G,SAAS/B,KAAKkB,SAALlB,EAAf;IACA,MAAM2yC,KAAK,IAAI/xC,gBAAJ,CAASZ,IAAT,CAAX;IACA2yC,GAAGl5B,GAAHk5B,CAAO,GAAPA,EAAY5wC,MAAZ4wC;IAEA,MAAM5W,UAAU/7B,KAAK+7B,OAArB;IACA,IAAI6W,oBAAoB,IAAxB;IACA,IAAIC,eAAe,IAAnB;;IACA,IAAI9W,OAAJ,EAAa;MACX6W,oBAAoB7W,QAAQ+W,qBAAR/W,CAClB,KAAKh+B,GAAL,CAASO,GADSy9B,EAElB,KAAKh+B,GAAL,CAASQ,GAFSw9B,CAApB6W;MAIAC,eAAe9W,QAAQ+W,qBAAR/W,CAA8Bh6B,OAAOzD,GAArCy9B,EAA0Ch6B,OAAOxD,GAAjDw9B,CAAf8W;MACA7G,aAAa6G,aAAaE,aAAbF,CAA2B7G,UAA3B6G,CAAb7G;IA/D2C;;IAkE7C,MAAMgH,UAAUC,OAAQ/zB,mBAAQ+zB,GAAR/zB,IAAe+zB,GAAf/zB,GAAqBE,iCAAsB6zB,GAAtB7zB,CAA7C;;IACAqE,KAAKhK,GAALgK,CAAS,GAATA,EAAc1iB,MAAMC,OAAND,CAAc9F,KAAd8F,IAAuB9F,MAAM6e,GAAN7e,CAAU+3C,OAAV/3C,CAAvB8F,GAA4CiyC,QAAQ/3C,KAAR,CAA1DwoB;IACAA,KAAKhK,GAALgK,CAAS,IAATA,EAAekvB,EAAflvB;IACAA,KAAKhK,GAALgK,CAAS,GAATA,EAAe,KAAIzD,gCAAL,EAAdyD;IAEA,MAAMmrB,iBAAiB,IAAIhuC,gBAAJ,CAASZ,IAAT,CAAvB;IACA4uC,eAAen1B,GAAfm1B,CAAmB,QAAnBA,EAA6B5C,WAAW50C,MAAxCw3C;IACAA,eAAen1B,GAAfm1B,CAAmB,SAAnBA,EAA8B1tB,iBAAK7iB,GAAL6iB,CAAS,MAATA,CAA9B0tB;IACAA,eAAen1B,GAAfm1B,CAAmB,WAAnBA,EAAgC,KAAKsE,sBAAL,CAA4BlzC,IAA5B,CAAhC4uC;IACAA,eAAen1B,GAAfm1B,CAAmB,MAAnBA,EAA2B1c,IAA3B0c;IAEA,MAAMuE,iBAAiB,CAAC,GAAG,KAAKp1C,GAAL,CAASO,GAAI,IAAG,KAAKP,GAAL,CAASQ,GAAI,QAAjC,CAAvB;IACA60C,uBAAU3vB,IAAV2vB,EAAgBD,cAAhBC,EAAgCR,iBAAhCQ;IACAD,eAAeh8C,IAAfg8C,CAAoB,YAApBA;IAEA,MAAME,YAAY,CAAC,GAAGtxC,OAAOzD,GAAI,IAAGyD,OAAOxD,GAAI,QAA7B,CAAlB;IACA60C,uBAAUxE,cAAVwE,EAA0BC,SAA1BD,EAAqCP,YAArCO;IACAC,UAAUl8C,IAAVk8C,CAAe,WAAfA,EAA4BrH,UAA5BqH,EAAwC,uBAAxCA;IAEA,OAAO,CAGL;MAAEt1C,KAAK,KAAKA,GAAZ;MAAiB7H,MAAMi9C,eAAe97C,IAAf87C,CAAoB,EAApBA,CAAvB;MAAgDxyC;IAAhD,CAHK,EAKL;MAAE5C,KAAKgE,MAAP;MAAe7L,MAAMm9C,UAAUh8C,IAAVg8C,CAAe,EAAfA,CAArB;MAAyC1yC,KAAK;IAA9C,CALK,CAAP;EArRsC;;EA8RxC,MAAM+xC,cAAN,CAAqBhE,SAArB,EAAgC52C,IAAhC,EAAsC0H,iBAAtC,EAAyD;IACvD,MAAM8zC,aAAa,KAAKf,YAAL,CAAkBroC,0BAAoBI,QAAtC,CAAnB;;IACA,IAAIgpC,UAAJ,EAAgB;MACd,OAAO,IAAP;IAHqD;;IAKvD,MAAMpG,eAAe1tC,oBACjBA,kBAAkBnB,GAAlBmB,CAAsB,KAAKtJ,IAAL,CAAUyI,EAAhCa,CADiB,GAEjB+Y,SAFJ;IAGA,IAAItd,QACFiyC,iBAAiBA,aAAaqG,cAAbrG,IAA+BA,aAAajyC,KAA7D,CADF;;IAEA,IAAIA,UAAUsd,SAAd,EAAyB;MACvB,IAAI,CAAC,KAAKk5B,gBAAN,IAA0B,KAAKzF,UAAnC,EAA+C;QAE7C,OAAO,IAAP;MAHqB;;MAMvB/wC,QAAQ,KAAK/E,IAAL,CAAUo7C,UAAlBr2C;;MACA,IAAI,CAACA,KAAL,EAAY;QACV,OAAO,EAAP;MARqB;IAV8B;;IAsBvDwb,kBAAO,OAAOxb,KAAP,KAAiB,QAAxBwb,EAAkC,kCAAlCA;IAEAxb,QAAQA,MAAMu4C,IAANv4C,EAARA;;IAEA,IAAIA,UAAU,EAAd,EAAkB;MAEhB,OAAO,EAAP;IA5BqD;;IA+BvD,IAAIw4C,YAAY,CAAC,CAAjB;;IACA,IAAI,KAAKv9C,IAAL,CAAUw9C,SAAd,EAAyB;MACvBD,YAAYx4C,MAAM+xB,KAAN/xB,CAAY,YAAZA,EAA0B7D,MAAtCq8C;IAjCqD;;IAoCvD,MAAME,iBAAiB,CAAvB;IACA,MAAMC,WAAWD,cAAjB;IACA,MAAME,cAAc,KAAK39C,IAAL,CAAU2mB,IAAV,CAAe,CAAf,IAAoB,KAAK3mB,IAAL,CAAU2mB,IAAV,CAAe,CAAf,CAAxC;IACA,MAAMi3B,aAAa,KAAK59C,IAAL,CAAU2mB,IAAV,CAAe,CAAf,IAAoB,KAAK3mB,IAAL,CAAU2mB,IAAV,CAAe,CAAf,CAAvC;;IAEA,IAAI,CAAC,KAAKg1B,kBAAV,EAA8B;MAM5B,KAAK37C,IAAL,CAAU47C,qBAAV,GAAkCC,gDAC/B,KAAKF,kBAAL,GAA0B,qBADKE,CAAlC;IA/CqD;;IAoDvD,MAAM/8B,OAAO,MAAM,KAAK++B,YAAL,CAAkBrF,SAAlB,EAA6B52C,IAA7B,CAAnB;;IACA,MAAM,CAAC85C,iBAAD,EAAoBoC,QAApB,IAAgC,KAAKC,gBAAL,CACpCJ,cAAcF,cADsB,EAEpCG,aAAa,IAAIF,QAFmB,EAGpC34C,KAHoC,EAIpC+Z,IAJoC,EAKpCy+B,SALoC,CAAtC;;IAQA,IAAIS,UAAUl/B,KAAKk/B,OAAnB;;IACA,IAAI5kB,MAAM4kB,OAAN,CAAJ,EAAoB;MAClBA,UAAU,CAAVA;IA/DqD;;IAkEvD,MAAMC,WAAWR,iBAAiBt4C,KAAKgjB,GAALhjB,CAAS64C,OAAT74C,IAAoB24C,QAAtD;IACA,MAAMI,YAAY,KAAKl+C,IAAL,CAAUm+C,aAA5B;;IAEA,IAAI,KAAKn+C,IAAL,CAAUw9C,SAAd,EAAyB;MACvB,OAAO,KAAKY,uBAAL,CACL1C,iBADK,EAEL32C,KAFK,EAGL+Z,IAHK,EAILg/B,QAJK,EAKLF,UALK,EAMLD,WANK,EAOLO,SAPK,EAQLR,QARK,EASLO,QATK,CAAP;IAtEqD;;IAoFvD,MAAMI,gBAAgBv/B,KAAKw/B,YAALx/B,CAAkB/Z,KAAlB+Z,EAAyB3d,IAAzB2d,CAA8B,EAA9BA,CAAtB;;IAEA,IAAI,KAAK9e,IAAL,CAAUu+C,IAAd,EAAoB;MAClB,OAAO,KAAKC,kBAAL,CACL9C,iBADK,EAEL58B,IAFK,EAGLu/B,aAHK,EAILT,UAJK,EAKLF,QALK,EAMLO,QANK,CAAP;IAvFqD;;IAiGvD,IAAIC,cAAc,CAAdA,IAAmBA,YAAY,CAAnC,EAAsC;MAEpC,OACE,kBACAxC,iBADA,GAEC,YAAWgC,QAAS,IAAGO,QAAS,QAAOn1B,wBACtCu1B,aADsCv1B,CAEtC,MAJF,GAKA,WANF;IAnGqD;;IA6GvD,MAAM21B,eAAe,KAAKC,WAAL,CACnBL,aADmB,EAEnBv/B,IAFmB,EAGnBg/B,QAHmB,EAInBF,UAJmB,EAKnBM,SALmB,EAMnBR,QANmB,EAOnBO,QAPmB,CAArB;;IASA,OACE,kBACAvC,iBADA,GAEC,mBAAkB+C,YAAnB,EAFA,GAGA,WAJF;EApZsC;;EA4ZxC,MAAMZ,YAAN,CAAmBrF,SAAnB,EAA8B52C,IAA9B,EAAoC;IAClC,MAAMm8B,eAAe,IAAIH,2BAAJ,EAArB;IACA,MAAMwG,eAAe;MACnBtlB,MAAM,IADa;;MAEnBulB,QAAQ;QACN,OAAO,IAAP;MAHiB;;IAAA,CAArB;IAOA,MAAM;MAAEE,QAAF;MAAYuZ;IAAZ,IAAyB,KAAK99C,IAAL,CAAU47C,qBAAzC;IACA,MAAMpD,UAAU/T,aAAV+T,CACJ,KAAKyD,eAAL,CAAqBC,eADjB1D,EAEJ,CAACjU,YAAYvZ,iBAAK7iB,GAAL6iB,CAASuZ,QAATvZ,CAAb,EAAiC8yB,QAAjC,CAFItF,EAGY,IAHZA,EAIJza,YAJIya,EAKJ52C,IALI42C,EAMJpU,YANIoU,EAOqB,IAPrBA,CAAN;IAUA,OAAOpU,aAAatlB,IAApB;EAhbsC;;EAmbxC6/B,cAAcC,IAAd,EAAoB9/B,IAApB,EAA0B;IACxB,OACEA,KACG+/B,aADH//B,CACiB8/B,IADjB9/B,EAEGzU,MAFHyU,CAEU,CAACk6B,KAAD,EAAQ8F,KAAR,KAAkB9F,QAAQ8F,MAAM9F,KAF1Cl6B,EAEiD,CAFjDA,IAEsD,IAHxD;EApbsC;;EA2bxCi/B,iBAAiBgB,MAAjB,EAAyB/F,KAAzB,EAAgC4F,IAAhC,EAAsC9/B,IAAtC,EAA4Cy+B,SAA5C,EAAuD;IACrD,IAAI;MAAEO;IAAF,IAAe,KAAK99C,IAAL,CAAU47C,qBAA7B;;IACA,IAAI,CAACkC,QAAL,EAAe;MAKb,MAAMkB,qBAAqB50C,KAAKjF,KAAKosB,KAALpsB,CAAWiF,IAAI,GAAfjF,IAAsB,GAAtD;;MAEA,IAAIo4C,cAAc,CAAC,CAAnB,EAAsB;QACpB,MAAM0B,YAAY,KAAKN,aAAL,CAAmBC,IAAnB,EAAyB9/B,IAAzB,CAAlB;;QACAg/B,WAAWkB,mBACT75C,KAAKyd,GAALzd,CAAS45C,SAAS3N,WAAlBjsC,EAA+B6zC,QAAQiG,SAAvC95C,CADS,CAAX24C;MAFF,OAKO;QACL,MAAMoB,QAAQN,KAAK9nB,KAAL8nB,CAAW,UAAXA,CAAd;QACA,MAAMO,cAAc,EAApB;;QACA,WAAWC,IAAX,IAAmBF,KAAnB,EAA0B;UACxB,MAAMG,UAAUvgC,KAAKw/B,YAALx/B,CAAkBsgC,IAAlBtgC,EAAwB3d,IAAxB2d,CAA6B,EAA7BA,CAAhB;UACA,MAAMwgC,SAASxgC,KAAK+/B,aAAL//B,CAAmBugC,OAAnBvgC,CAAf;UACA,MAAMygC,YAAYzgC,KAAK0gC,gBAAL1gC,CAAsBugC,OAAtBvgC,CAAlB;UACAqgC,YAAYl+C,IAAZk+C,CAAiB;YACfC,MAAMC,OADS;YAEfC,MAFe;YAGfC;UAHe,CAAjBJ;QAPG;;QAcL,MAAMM,WAAWC,SAAS;UAExB,IAAI/B,cAAc,CAAlB;;UACA,WAAWgC,KAAX,IAAoBR,WAApB,EAAiC;YAC/B,MAAMhuB,SAAS,KAAKyuB,UAAL,CAAgB,IAAhB,EAAsB9gC,IAAtB,EAA4B4gC,KAA5B,EAAmC1G,KAAnC,EAA0C2G,KAA1C,CAAf;;YACAhC,eAAexsB,OAAOjwB,MAAPiwB,GAAgBuuB,KAA/B/B;;YACA,IAAIA,cAAcoB,MAAlB,EAA0B;cACxB,OAAO,IAAP;YAJ6B;UAHT;;UAUxB,OAAO,KAAP;QAVF;;QAqBAjB,WAAW,EAAXA;QACA,IAAI5Q,aAAa4Q,WAAW1M,WAA5B;QACA,IAAIyO,gBAAgB16C,KAAK26C,KAAL36C,CAAW45C,SAAS7R,UAApB/nC,CAApB;QACA06C,gBAAgB16C,KAAKC,GAALD,CAAS06C,aAAT16C,EAAwBo4C,SAAxBp4C,CAAhB06C;;QAEA,OAAO,IAAP,EAAa;UACX3S,aAAa6R,SAASc,aAAtB3S;UACA4Q,WAAWkB,mBAAmB9R,aAAakE,WAAhC,CAAX0M;;UAEA,IAAI2B,SAAS3B,QAAT,CAAJ,EAAwB;YACtB+B;YACA;UANS;;UASX;QAjDG;MAZM;;MAiEb,MAAM;QAAEtb,QAAF;QAAYwb;MAAZ,IAA0B,KAAK//C,IAAL,CAAU47C,qBAA1C;MACA,KAAKD,kBAAL,GAA0BqE,iDAAwB;QAChDlC,QADgD;QAEhDvZ,QAFgD;QAGhDwb;MAHgD,CAAxBC,CAA1B;IApEmD;;IA0ErD,OAAO,CAAC,KAAKrE,kBAAN,EAA0BmC,QAA1B,CAAP;EArgBsC;;EAwgBxCY,YAAYE,IAAZ,EAAkB9/B,IAAlB,EAAwBg/B,QAAxB,EAAkCF,UAAlC,EAA8CM,SAA9C,EAAyDR,QAAzD,EAAmEO,QAAnE,EAA6E;IAC3E,IAAIgC,KAAJ;;IACA,IAAI/B,cAAc,CAAlB,EAAqB;MAEnB,MAAMlF,QAAQ,KAAK2F,aAAL,CAAmBC,IAAnB,EAAyB9/B,IAAzB,IAAiCg/B,QAA/C;MACAmC,QAAS,cAAajH,KAAb,IAAsB,CAA/BiH;IAHF,OAIO,IAAI/B,cAAc,CAAlB,EAAqB;MAE1B,MAAMlF,QAAQ,KAAK2F,aAAL,CAAmBC,IAAnB,EAAyB9/B,IAAzB,IAAiCg/B,QAA/C;MACAmC,QAAQrC,aAAa5E,KAAb4E,GAAqBF,QAA7BuC;IAHK,OAIA;MACLA,QAAQvC,QAARuC;IAXyE;;IAa3EA,QAAQA,MAAMC,OAAND,CAAc,CAAdA,CAARA;IACAhC,WAAWA,SAASiC,OAATjC,CAAiB,CAAjBA,CAAXA;IAEA,OAAO,GAAGgC,KAAM,IAAGhC,QAAS,QAAOn1B,wBAAa81B,IAAb91B,CAAmB,MAAtD;EAxhBsC;;EA8hBxCk0B,uBAAuBlzC,IAAvB,EAA6B;IAU3B,MAAM;MAAEgyC,cAAF;MAAkBE,mBAAlB;MAAuCD;IAAvC,IACJ,KAAKE,eADP;IAGA,MAAM1X,WACJ,KAAKvkC,IAAL,CAAU47C,qBAAV,IACA,KAAK57C,IAAL,CAAU47C,qBAAV,CAAgCrX,QAFlC;;IAGA,IAAI,CAACA,QAAL,EAAe;MACb,OAAOuX,kBAAkBpxC,iBAAKqiB,KAA9B;IAjByB;;IAoB3B,WAAW+O,SAAX,IAAwB,CAACggB,cAAD,EAAiBE,mBAAjB,CAAxB,EAA+D;MAC7D,IAAIlgB,qBAAqBpxB,gBAAzB,EAA+B;QAC7B,MAAMy1C,YAAYrkB,UAAU3zB,GAAV2zB,CAAc,MAAdA,CAAlB;;QACA,IAAIqkB,qBAAqBz1C,gBAArBy1C,IAA6BA,UAAUtzB,GAAVszB,CAAc5b,QAAd4b,CAAjC,EAA0D;UACxD,OAAOrkB,SAAP;QAH2B;MAD8B;IApBpC;;IA4B3B,IAAIigB,6BAA6BrxC,gBAAjC,EAAuC;MACrC,MAAM01C,eAAerE,kBAAkB5zC,GAAlB4zC,CAAsB,MAAtBA,CAArB;;MACA,IAAIqE,wBAAwB11C,gBAAxB01C,IAAgCA,aAAavzB,GAAbuzB,CAAiB7b,QAAjB6b,CAApC,EAAgE;QAC9D,MAAMC,cAAc,IAAI31C,gBAAJ,CAASZ,IAAT,CAApB;QACAu2C,YAAY98B,GAAZ88B,CAAgB9b,QAAhB8b,EAA0BD,aAAaz0C,MAAby0C,CAAoB7b,QAApB6b,CAA1BC;QAEA,MAAMC,mBAAmB,IAAI51C,gBAAJ,CAASZ,IAAT,CAAzB;QACAw2C,iBAAiB/8B,GAAjB+8B,CAAqB,MAArBA,EAA6BD,WAA7BC;QAEA,OAAO51C,iBAAKuiB,KAALviB,CAAW;UAChBZ,IADgB;UAEhBojB,WAAW,CAACozB,gBAAD,EAAmBxE,cAAnB,CAFK;UAGhB3uB,eAAe;QAHC,CAAXziB,CAAP;MATmC;IA5BZ;;IA4C3B,OAAOoxC,kBAAkBpxC,iBAAKqiB,KAA9B;EA1kBsC;;EA6kBxCib,iBAAiB;IACf,OAAO,IAAP;EA9kBsC;;AAAA;;AAklB1C,MAAM4J,oBAAN,SAAmCI,gBAAnC,CAAoD;EAClDnzC,YAAYs2C,MAAZ,EAAoB;IAClB,MAAMA,MAAN;IAEA,KAAKoH,QAAL,GAAgB,IAAhB;IAEA,MAAMhvB,OAAO4nB,OAAO5nB,IAApB;;IAGA,IAAI,OAAO,KAAKvtB,IAAL,CAAUo7C,UAAjB,KAAgC,QAApC,EAA8C;MAC5C,KAAKp7C,IAAL,CAAUo7C,UAAV,GAAuB,EAAvB;IATgB;;IAalB,IAAI8C,YAAYxoB,wCAAuB;MAAEnI,IAAF;MAAQ/hB,KAAK;IAAb,CAAvBkqB,CAAhB;;IACA,IAAI,CAACzV,OAAOC,SAAPD,CAAiBi+B,SAAjBj+B,CAAD,IAAgCi+B,YAAY,CAA5C,IAAiDA,YAAY,CAAjE,EAAoE;MAClEA,YAAY,IAAZA;IAfgB;;IAiBlB,KAAKl+C,IAAL,CAAUm+C,aAAV,GAA0BD,SAA1B;IAGA,IAAIqC,gBAAgB7qB,wCAAuB;MAAEnI,IAAF;MAAQ/hB,KAAK;IAAb,CAAvBkqB,CAApB;;IACA,IAAI,CAACzV,OAAOC,SAAPD,CAAiBsgC,aAAjBtgC,CAAD,IAAoCsgC,gBAAgB,CAAxD,EAA2D;MACzDA,gBAAgB,IAAhBA;IAtBgB;;IAwBlB,KAAKvgD,IAAL,CAAUwgD,MAAV,GAAmBD,aAAnB;IAGA,KAAKvgD,IAAL,CAAUw9C,SAAV,GAAsB,KAAKnB,YAAL,CAAkBroC,0BAAoBG,SAAtC,CAAtB;IACA,KAAKnU,IAAL,CAAUu+C,IAAV,GACE,KAAKlC,YAAL,CAAkBroC,0BAAoBe,IAAtC,KACA,CAAC,KAAKsnC,YAAL,CAAkBroC,0BAAoBG,SAAtC,CADD,IAEA,CAAC,KAAKkoC,YAAL,CAAkBroC,0BAAoBI,QAAtC,CAFD,IAGA,CAAC,KAAKioC,YAAL,CAAkBroC,0BAAoBW,UAAtC,CAHD,IAIA,KAAK3U,IAAL,CAAUwgD,MAAV,KAAqB,IALvB;EA7BgD;;EAqClDhC,mBAAmB9C,iBAAnB,EAAsC58B,IAAtC,EAA4C8/B,IAA5C,EAAkD5F,KAAlD,EAAyD0E,QAAzD,EAAmEO,QAAnE,EAA6E;IAC3E,MAAMwC,YAAa,SAAQ,KAAKzgD,IAAL,CAAUwgD,MAAlB,EAA0BN,OAA1B,CAAkC,CAAlC,CAAnB;IACA,MAAM/2B,MAAM,EAAZ;IACA,MAAMo2B,YAAYzgC,KAAK0gC,gBAAL1gC,CAAsB8/B,IAAtB9/B,CAAlB;;IACA,WAAW,CAACvS,KAAD,EAAQujB,GAAR,CAAX,IAA2ByvB,SAA3B,EAAsC;MACpCp2B,IAAIloB,IAAJkoB,CAAU,IAAGL,wBAAa81B,KAAK1nB,SAAL0nB,CAAeryC,KAAfqyC,EAAsB9uB,GAAtB8uB,CAAb91B,CAAyC,MAAtDK;IALyE;;IAQ3E,MAAMu3B,eAAev3B,IAAIhoB,IAAJgoB,CAAU,IAAGs3B,SAAU,QAAvBt3B,CAArB;IACA,OACE,kBACAuyB,iBADA,GAEC,YAAWgC,QAAS,IAAGO,QAAS,OAAMyC,YAAvC,EAFA,GAGA,WAJF;EA9CgD;;EAsDlDtC,wBACE1C,iBADF,EAEEkD,IAFF,EAGE9/B,IAHF,EAIEg/B,QAJF,EAKE9E,KALF,EAME+F,MANF,EAOEb,SAPF,EAQER,QARF,EASEO,QATF,EAUE;IACA,MAAMiB,QAAQN,KAAK9nB,KAAL8nB,CAAW,UAAXA,CAAd;IACA,MAAMz1B,MAAM,EAAZ;IACA,MAAMy0B,aAAa5E,QAAQ,IAAI0E,QAA/B;;IACA,WAAW0B,IAAX,IAAmBF,KAAnB,EAA0B;MACxB,MAAM/tB,SAAS,KAAKyuB,UAAL,CAAgBR,IAAhB,EAAsBtgC,IAAtB,EAA4Bg/B,QAA5B,EAAsCF,UAAtC,CAAf;;MACA,WAAW/6B,KAAX,IAAoBsO,MAApB,EAA4B;QAC1B,MAAMwvB,UAAUx3B,IAAIjoB,MAAJioB,KAAe,CAAfA,GAAmBu0B,QAAnBv0B,GAA8B,CAA9C;QACAA,IAAIloB,IAAJkoB,CACE,KAAKu1B,WAAL,CACE77B,KADF,EAEE/D,IAFF,EAGEg/B,QAHF,EAIE9E,KAJF,EAKEkF,SALF,EAMEyC,OANF,EAOE,CAAC7C,QAPH,CADF30B;MAJsB;IAJ1B;;IAsBA,MAAMs1B,eAAet1B,IAAIhoB,IAAJgoB,CAAS,IAATA,CAArB;IACA,OACE,kBACAuyB,iBADA,GAEC,cAAaqD,MAAO,OAAMN,YAA3B,EAFA,GAGA,WAJF;EAvFgD;;EA+FlDmB,WAAWR,IAAX,EAAiBtgC,IAAjB,EAAuBg/B,QAAvB,EAAiC9E,KAAjC,EAAwC2G,QAAQ,EAAhD,EAAoD;IAElDP,OAAOO,MAAMP,IAANO,IAAc7gC,KAAKw/B,YAALx/B,CAAkBsgC,IAAlBtgC,EAAwB3d,IAAxB2d,CAA6B,EAA7BA,CAArBsgC;IAEA,MAAME,SAASK,MAAML,MAANK,IAAgB7gC,KAAK+/B,aAAL//B,CAAmBsgC,IAAnBtgC,CAA/B;;IAEA,IAAIwgC,OAAOp+C,MAAPo+C,IAAiB,CAArB,EAAwB;MAEtB,OAAO,CAACF,IAAD,CAAP;IARgD;;IAWlD,MAAMG,YAAYI,MAAMJ,SAANI,IAAmB7gC,KAAK0gC,gBAAL1gC,CAAsBsgC,IAAtBtgC,CAArC;IACA,MAAM8hC,QAAQ9C,WAAW,IAAzB;IACA,MAAM3sB,SAAS,EAAf;IAEA,IAAI0vB,4BAA4B,CAAC,CAAjC;IAAA,IACEC,0BAA0B,CAAC,CAD7B;IAAA,IAEEC,eAAe,CAAC,CAFlB;IAAA,IAGEC,aAAa,CAHf;IAAA,IAIEC,eAAe,CAJjB;;IAMA,KAAK,IAAIn/C,IAAI,CAAR,EAAWiJ,KAAKu0C,OAAOp+C,MAA5B,EAAoCY,IAAIiJ,EAAxC,EAA4CjJ,GAA5C,EAAiD;MAC/C,MAAM,CAACyK,KAAD,EAAQujB,GAAR,IAAeyvB,UAAUz9C,CAAV,CAArB;MACA,MAAMg9C,QAAQQ,OAAOx9C,CAAP,CAAd;MACA,MAAMo/C,aAAapC,MAAM9F,KAAN8F,GAAc8B,KAAjC;;MACA,IAAI9B,MAAMpS,OAANoS,KAAkB,GAAtB,EAA2B;QACzB,IAAImC,eAAeC,UAAfD,GAA4BjI,KAAhC,EAAuC;UAErC7nB,OAAOlwB,IAAPkwB,CAAYiuB,KAAKloB,SAALkoB,CAAe4B,UAAf5B,EAA2B7yC,KAA3B6yC,CAAZjuB;UACA6vB,aAAaz0C,KAAby0C;UACAC,eAAeC,UAAfD;UACAJ,4BAA4B,CAAC,CAA7BA;UACAE,eAAe,CAAC,CAAhBA;QANF,OAOO;UACLE,gBAAgBC,UAAhBD;UACAJ,4BAA4Bt0C,KAA5Bs0C;UACAC,0BAA0BhxB,GAA1BgxB;UACAC,eAAej/C,CAAfi/C;QAZuB;MAA3B,OAcO;QACL,IAAIE,eAAeC,UAAfD,GAA4BjI,KAAhC,EAAuC;UAErC,IAAI6H,8BAA8B,CAAC,CAAnC,EAAsC;YACpC1vB,OAAOlwB,IAAPkwB,CAAYiuB,KAAKloB,SAALkoB,CAAe4B,UAAf5B,EAA2B0B,uBAA3B1B,CAAZjuB;YACA6vB,aAAaF,uBAAbE;YACAl/C,IAAIi/C,eAAe,CAAnBj/C;YACA++C,4BAA4B,CAAC,CAA7BA;YACAI,eAAe,CAAfA;UALF,OAMO;YAEL9vB,OAAOlwB,IAAPkwB,CAAYiuB,KAAKloB,SAALkoB,CAAe4B,UAAf5B,EAA2B7yC,KAA3B6yC,CAAZjuB;YACA6vB,aAAaz0C,KAAby0C;YACAC,eAAeC,UAAfD;UAZmC;QAAvC,OAcO;UACLA,gBAAgBC,UAAhBD;QAhBG;MAlBwC;IArBC;;IA4DlD,IAAID,aAAa5B,KAAKl+C,MAAtB,EAA8B;MAC5BiwB,OAAOlwB,IAAPkwB,CAAYiuB,KAAKloB,SAALkoB,CAAe4B,UAAf5B,EAA2BA,KAAKl+C,MAAhCk+C,CAAZjuB;IA7DgD;;IAgElD,OAAOA,MAAP;EA/JgD;;EAkKlD6W,iBAAiB;IACf,OAAO;MACLv/B,IAAI,KAAKzI,IAAL,CAAUyI,EADT;MAEL1D,OAAO,KAAK/E,IAAL,CAAUo7C,UAFZ;MAGL+F,cAAc,KAAKnhD,IAAL,CAAUs7C,iBAAV,IAA+B,EAHxC;MAIL8F,WAAW,KAAKphD,IAAL,CAAUw9C,SAJhB;MAKLj6C,UAAU,KAAK84C,YAAL,CAAkBroC,0BAAoBI,QAAtC,CALL;MAMLitC,WAAW,KAAKrhD,IAAL,CAAUwgD,MANhB;MAOLjC,MAAM,KAAKv+C,IAAL,CAAUu+C,IAPX;MAQL+C,UAAU,CAAC,KAAKthD,IAAL,CAAUo8C,QARhB;MASLnF,QAAQ,KAAKj3C,IAAL,CAAUi3C,MATb;MAULn4C,MAAM,KAAKkB,IAAL,CAAUy2C,SAVX;MAWL9vB,MAAM,KAAK3mB,IAAL,CAAU2mB,IAXX;MAYLkR,SAAS,KAAK73B,IAAL,CAAU63B,OAZd;MAaLnwB,MAAM,KAAK1H,IAAL,CAAUyH,SAbX;MAcLmxC,aAAa,KAAK54C,IAAL,CAAUk2C,WAdlB;MAeL2C,WAAW,KAAK74C,IAAL,CAAUi2C,eAfhB;MAgBLrrB,MAAM;IAhBD,CAAP;EAnKgD;;AAAA;;AAwLpD,MAAMinB,sBAAN,SAAqCG,gBAArC,CAAsD;EACpDnzC,YAAYs2C,MAAZ,EAAoB;IAClB,MAAMA,MAAN;IAEA,KAAKoM,iBAAL,GAAyB,IAAzB;IACA,KAAKC,mBAAL,GAA2B,IAA3B;IAEA,KAAKxhD,IAAL,CAAUyhD,QAAV,GACE,CAAC,KAAKpF,YAAL,CAAkBroC,0BAAoBM,KAAtC,CAAD,IACA,CAAC,KAAK+nC,YAAL,CAAkBroC,0BAAoBO,UAAtC,CAFH;IAGA,KAAKvU,IAAL,CAAU0hD,WAAV,GACE,KAAKrF,YAAL,CAAkBroC,0BAAoBM,KAAtC,KACA,CAAC,KAAK+nC,YAAL,CAAkBroC,0BAAoBO,UAAtC,CAFH;IAGA,KAAKvU,IAAL,CAAU2hD,UAAV,GAAuB,KAAKtF,YAAL,CAAkBroC,0BAAoBO,UAAtC,CAAvB;IACA,KAAKvU,IAAL,CAAU4hD,aAAV,GAA0B,KAA1B;;IAEA,IAAI,KAAK5hD,IAAL,CAAUyhD,QAAd,EAAwB;MACtB,KAAKI,gBAAL,CAAsB1M,MAAtB;IADF,OAEO,IAAI,KAAKn1C,IAAL,CAAU0hD,WAAd,EAA2B;MAChC,KAAKI,mBAAL,CAAyB3M,MAAzB;IADK,OAEA,IAAI,KAAKn1C,IAAL,CAAU2hD,UAAd,EAA0B;MAC/B,KAAK3hD,IAAL,CAAUu2C,YAAV,GAAyB,IAAzB;;MACA,KAAKwL,kBAAL,CAAwB5M,MAAxB;IAFK,OAGA;MACLvwC,gBAAK,kDAALA;IAvBgB;EADgC;;EA4BpD,MAAMgI,eAAN,CACE4rC,SADF,EAEE52C,IAFF,EAGEwH,MAHF,EAIEm1B,WAJF,EAKEj1B,iBALF,EAME;IACA,IAAI,KAAKtJ,IAAL,CAAU2hD,UAAd,EAA0B;MACxB,OAAO,MAAM/0C,eAAN,CACL4rC,SADK,EAEL52C,IAFK,EAGLwH,MAHK,EAIL,KAJK,EAKLE,iBALK,CAAP;IAFF;;IAWA,IAAIvE,QAAQ,IAAZ;;IACA,IAAIuE,iBAAJ,EAAuB;MACrB,MAAM0tC,eAAe1tC,kBAAkBnB,GAAlBmB,CAAsB,KAAKtJ,IAAL,CAAUyI,EAAhCa,CAArB;MACAvE,QAAQiyC,eAAeA,aAAajyC,KAA5B,GAAoC,IAA5CA;IAdF;;IAiBA,IAAIA,UAAU,IAAd,EAAoB;MAElB,IAAI,KAAK+wC,UAAT,EAAqB;QAEnB,OAAO,MAAMlpC,eAAN,CACL4rC,SADK,EAEL52C,IAFK,EAGLwH,MAHK,EAILm1B,WAJK,EAKLj1B,iBALK,CAAP;MAJgB;;MAelB,IAAI,KAAKtJ,IAAL,CAAUyhD,QAAd,EAAwB;QACtB18C,QAAQ,KAAK/E,IAAL,CAAUo7C,UAAV,KAAyB,KAAKp7C,IAAL,CAAUgiD,WAA3Cj9C;MADF,OAEO;QACLA,QAAQ,KAAK/E,IAAL,CAAUo7C,UAAV,KAAyB,KAAKp7C,IAAL,CAAUiiD,WAA3Cl9C;MAlBgB;IAjBpB;;IAuCA,MAAM+wC,aAAa/wC,QACf,KAAKw8C,iBADU,GAEf,KAAKC,mBAFT;;IAGA,IAAI1L,UAAJ,EAAgB;MACd,MAAMoM,kBAAkB,KAAKpM,UAA7B;MACA,KAAKA,UAAL,GAAkBA,UAAlB;MACA,MAAM/X,eAAe,MAAMnxB,eAAN,CACnB4rC,SADmB,EAEnB52C,IAFmB,EAGnBwH,MAHmB,EAInBm1B,WAJmB,EAKnBj1B,iBALmB,CAArB;MAOA,KAAKwsC,UAAL,GAAkBoM,eAAlB;MACA,OAAOnkB,YAAP;IArDF;;IAyDA,OAAO,IAAIH,2BAAJ,EAAP;EA3FkD;;EA8FpD,MAAMl0B,IAAN,CAAW8uC,SAAX,EAAsB52C,IAAtB,EAA4B0H,iBAA5B,EAA+C;IAC7C,IAAI,KAAKtJ,IAAL,CAAUyhD,QAAd,EAAwB;MACtB,OAAO,KAAKU,aAAL,CAAmB3J,SAAnB,EAA8B52C,IAA9B,EAAoC0H,iBAApC,CAAP;IAF2C;;IAK7C,IAAI,KAAKtJ,IAAL,CAAU0hD,WAAd,EAA2B;MACzB,OAAO,KAAKU,gBAAL,CAAsB5J,SAAtB,EAAiC52C,IAAjC,EAAuC0H,iBAAvC,CAAP;IAN2C;;IAU7C,OAAO,IAAP;EAxGkD;;EA2GpD,MAAM64C,aAAN,CAAoB3J,SAApB,EAA+B52C,IAA/B,EAAqC0H,iBAArC,EAAwD;IACtD,IAAI,CAACA,iBAAL,EAAwB;MACtB,OAAO,IAAP;IAFoD;;IAItD,MAAM0tC,eAAe1tC,kBAAkBnB,GAAlBmB,CAAsB,KAAKtJ,IAAL,CAAUyI,EAAhCa,CAArB;IACA,MAAMvE,QAAQiyC,gBAAgBA,aAAajyC,KAA3C;;IACA,IAAIA,UAAUsd,SAAd,EAAyB;MACvB,OAAO,IAAP;IAPoD;;IAUtD,MAAM8+B,eAAe,KAAKnhD,IAAL,CAAUo7C,UAAV,KAAyB,KAAKp7C,IAAL,CAAUgiD,WAAxD;;IACA,IAAIb,iBAAiBp8C,KAArB,EAA4B;MAC1B,OAAO,IAAP;IAZoD;;IAetD,MAAMwoB,OAAOirB,UAAU1uC,IAAV0uC,CAAe/V,UAAf+V,CAA0B,KAAK3wC,GAA/B2wC,CAAb;;IACA,IAAI,EAAEjrB,gBAAgB7iB,gBAAlB,CAAJ,EAA6B;MAC3B,OAAO,IAAP;IAjBoD;;IAoBtD,MAAMD,MAAM;MACVmsB,MAAMnrB,6BAAkB8hB,KAAKplB,GAALolB,CAAS,GAATA,KAAiB,EAAnC9hB,CADI;MAEV1G,OAAOA,QAAQ,KAAK/E,IAAL,CAAUgiD,WAAlB,GAAgC;IAF7B,CAAZ;;IAKA,MAAMljD,OAAOksB,iBAAK7iB,GAAL6iB,CAASjmB,QAAQ,KAAK/E,IAAL,CAAUgiD,WAAlB,GAAgC,KAAzCh3B,CAAb;;IACAuC,KAAKhK,GAALgK,CAAS,GAATA,EAAczuB,IAAdyuB;IACAA,KAAKhK,GAALgK,CAAS,IAATA,EAAezuB,IAAfyuB;IACAA,KAAKhK,GAALgK,CAAS,GAATA,EAAe,KAAIzD,gCAAL,EAAdyD;IAEA,MAAMsY,UAAU2S,UAAU1uC,IAAV0uC,CAAe3S,OAA/B;IACA,IAAI6W,oBAAoB,IAAxB;;IACA,IAAI7W,OAAJ,EAAa;MACX6W,oBAAoB7W,QAAQ+W,qBAAR/W,CAClB,KAAKh+B,GAAL,CAASO,GADSy9B,EAElB,KAAKh+B,GAAL,CAASQ,GAFSw9B,CAApB6W;IAjCoD;;IAuCtD,MAAMz4B,SAAS,CAAC,GAAG,KAAKpc,GAAL,CAASO,GAAI,IAAG,KAAKP,GAAL,CAASQ,GAAI,QAAjC,CAAf;IACA60C,uBAAU3vB,IAAV2vB,EAAgBj5B,MAAhBi5B,EAAwBR,iBAAxBQ;IACAj5B,OAAOhjB,IAAPgjB,CAAY,YAAZA;IAEA,OAAO,CAAC;MAAEpc,KAAK,KAAKA,GAAZ;MAAiB7H,MAAMikB,OAAO9iB,IAAP8iB,CAAY,EAAZA,CAAvB;MAAwCxZ;IAAxC,CAAD,CAAP;EAtJkD;;EAyJpD,MAAM23C,gBAAN,CAAuB5J,SAAvB,EAAkC52C,IAAlC,EAAwC0H,iBAAxC,EAA2D;IACzD,IAAI,CAACA,iBAAL,EAAwB;MACtB,OAAO,IAAP;IAFuD;;IAIzD,MAAM0tC,eAAe1tC,kBAAkBnB,GAAlBmB,CAAsB,KAAKtJ,IAAL,CAAUyI,EAAhCa,CAArB;IACA,MAAMvE,QAAQiyC,gBAAgBA,aAAajyC,KAA3C;;IACA,IAAIA,UAAUsd,SAAd,EAAyB;MACvB,OAAO,IAAP;IAPuD;;IAUzD,MAAM8+B,eAAe,KAAKnhD,IAAL,CAAUo7C,UAAV,KAAyB,KAAKp7C,IAAL,CAAUiiD,WAAxD;;IACA,IAAId,iBAAiBp8C,KAArB,EAA4B;MAC1B,OAAO,IAAP;IAZuD;;IAezD,MAAMwoB,OAAOirB,UAAU1uC,IAAV0uC,CAAe/V,UAAf+V,CAA0B,KAAK3wC,GAA/B2wC,CAAb;;IACA,IAAI,EAAEjrB,gBAAgB7iB,gBAAlB,CAAJ,EAA6B;MAC3B,OAAO,IAAP;IAjBuD;;IAoBzD,MAAMD,MAAM;MACVmsB,MAAMnrB,6BAAkB8hB,KAAKplB,GAALolB,CAAS,GAATA,KAAiB,EAAnC9hB,CADI;MAEV1G,OAAOA,QAAQ,KAAK/E,IAAL,CAAUiiD,WAAlB,GAAgC;IAF7B,CAAZ;;IAKA,MAAMnjD,OAAOksB,iBAAK7iB,GAAL6iB,CAASjmB,QAAQ,KAAK/E,IAAL,CAAUiiD,WAAlB,GAAgC,KAAzCj3B,CAAb;;IACA,IAAIq3B,eAAe,IAAnB;IACA,MAAMxc,UAAU2S,UAAU1uC,IAAV0uC,CAAe3S,OAA/B;;IAEA,IAAI9gC,KAAJ,EAAW;MACT,IAAI,KAAKgpB,MAAL,YAAuB7lB,eAA3B,EAAgC;QAC9B,MAAM6lB,SAASyqB,UAAU1uC,IAAV0uC,CAAelsB,KAAfksB,CAAqB,KAAKzqB,MAA1ByqB,CAAf;QACA,IAAI8J,kBAAkB,IAAtB;;QACA,IAAIzc,OAAJ,EAAa;UACXyc,kBAAkBzc,QAAQ+W,qBAAR/W,CAChB,KAAK9X,MAAL,CAAY3lB,GADIy9B,EAEhB,KAAK9X,MAAL,CAAY1lB,GAFIw9B,CAAlByc;QAJ4B;;QAS9Bv0B,OAAOxK,GAAPwK,CAAW,GAAXA,EAAgBjvB,IAAhBivB;QACAs0B,eAAe,CAAC,GAAG,KAAKt0B,MAAL,CAAY3lB,GAAI,IAAG,KAAK2lB,MAAL,CAAY1lB,GAAI,QAAvC,CAAfg6C;QACAnF,uBAAUnvB,MAAVmvB,EAAkBmF,YAAlBnF,EAAgCoF,eAAhCpF;QACAmF,aAAaphD,IAAbohD,CAAkB,YAAlBA;MAZF,OAaO,IAAI,KAAKt0B,MAAL,YAAuBrjB,gBAA3B,EAAiC;QACtC,KAAKqjB,MAAL,CAAYxK,GAAZ,CAAgB,GAAhB,EAAqBzkB,IAArB;MAfO;IA7B8C;;IAgDzDyuB,KAAKhK,GAALgK,CAAS,IAATA,EAAezuB,IAAfyuB;IACAA,KAAKhK,GAALgK,CAAS,GAATA,EAAe,KAAIzD,gCAAL,EAAdyD;IAEA,IAAImvB,oBAAoB,IAAxB;;IACA,IAAI7W,OAAJ,EAAa;MACX6W,oBAAoB7W,QAAQ+W,qBAAR/W,CAClB,KAAKh+B,GAAL,CAASO,GADSy9B,EAElB,KAAKh+B,GAAL,CAASQ,GAFSw9B,CAApB6W;IArDuD;;IA2DzD,MAAMz4B,SAAS,CAAC,GAAG,KAAKpc,GAAL,CAASO,GAAI,IAAG,KAAKP,GAAL,CAASQ,GAAI,QAAjC,CAAf;IACA60C,uBAAU3vB,IAAV2vB,EAAgBj5B,MAAhBi5B,EAAwBR,iBAAxBQ;IACAj5B,OAAOhjB,IAAPgjB,CAAY,YAAZA;IAEA,MAAMja,UAAU,CAAC;MAAEnC,KAAK,KAAKA,GAAZ;MAAiB7H,MAAMikB,OAAO9iB,IAAP8iB,CAAY,EAAZA,CAAvB;MAAwCxZ;IAAxC,CAAD,CAAhB;;IACA,IAAI43C,iBAAiB,IAArB,EAA2B;MACzBr4C,QAAQ/I,IAAR+I,CAAa;QACXnC,KAAK,KAAKkmB,MADC;QAEX/tB,MAAMqiD,aAAalhD,IAAbkhD,CAAkB,EAAlBA,CAFK;QAGX53C,KAAK;MAHM,CAAbT;IAjEuD;;IAwEzD,OAAOA,OAAP;EAjOkD;;EAoOpDu4C,6BAA6BpN,MAA7B,EAAqCvqB,IAArC,EAA2C;IACzC,MAAMouB,QAAQ,KAAKh5C,IAAL,CAAU2mB,IAAV,CAAe,CAAf,IAAoB,KAAK3mB,IAAL,CAAU2mB,IAAV,CAAe,CAAf,CAAlC;IACA,MAAMo4B,SAAS,KAAK/+C,IAAL,CAAU2mB,IAAV,CAAe,CAAf,IAAoB,KAAK3mB,IAAL,CAAU2mB,IAAV,CAAe,CAAf,CAAnC;IACA,MAAMqV,OAAO,CAAC,CAAD,EAAI,CAAJ,EAAOgd,KAAP,EAAc+F,MAAd,CAAb;IAGA,MAAMyD,aAAa,GAAnB;IACA,MAAM1E,WAAW34C,KAAKyd,GAALzd,CAAS6zC,KAAT7zC,EAAgB45C,MAAhB55C,IAA0Bq9C,UAA3C;IAKA,IAAI/Y,OAAJ,EAAargB,IAAb;;IACA,IAAIwB,SAAS,OAAb,EAAsB;MAEpB6e,UAAU;QACRuP,OAAO,QAAQ8E,QADP;QAERiB,QAAQ,QAAQjB;MAFR,CAAVrU;MAIArgB,OAAO,MAAPA;IANF,OAOO,IAAIwB,SAAS,MAAb,EAAqB;MAE1B6e,UAAU;QACRuP,OAAO,QAAQ8E,QADP;QAERiB,QAAQ,QAAQjB;MAFR,CAAVrU;MAIArgB,OAAO,MAAPA;IANK,OAOA;MACL9I,uBAAa,oDAAmDsK,IAApD,EAAZtK;IA5BuC;;IAgCzC,MAAMmiC,SAAU,SAAQhZ,QAAQuP,KAAhB,IAAyB,CAAzC;IACA,MAAM0J,SAAU,UAASjZ,QAAQsV,MAAjB,IAA2B,CAA3C;IAEA,MAAMjJ,aAAc,mBAAkBgI,QAAS,WAAU2E,MAAO,IAAGC,MAAO,QAAOt5B,IAAK,WAAtF;IAEA,MAAM2xB,uBAAuB,IAAIrwC,gBAAJ,CAASyqC,OAAOrrC,IAAhB,CAA7B;IACAixC,qBAAqBx3B,GAArBw3B,CAAyB,UAAzBA,EAAqC,CAArCA;IACAA,qBAAqBx3B,GAArBw3B,CAAyB,SAAzBA,EAAoC/vB,iBAAK7iB,GAAL6iB,CAAS,MAATA,CAApC+vB;IACAA,qBAAqBx3B,GAArBw3B,CAAyB,MAAzBA,EAAiC/vB,iBAAK7iB,GAAL6iB,CAAS,SAATA,CAAjC+vB;IACAA,qBAAqBx3B,GAArBw3B,CAAyB,MAAzBA,EAAiC/e,IAAjC+e;IACAA,qBAAqBx3B,GAArBw3B,CAAyB,QAAzBA,EAAmC,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,CAAnCA;IACAA,qBAAqBx3B,GAArBw3B,CAAyB,QAAzBA,EAAmCjF,WAAW50C,MAA9C65C;IAEA,MAAMjf,YAAY,IAAIpxB,gBAAJ,CAASyqC,OAAOrrC,IAAhB,CAAlB;IACA,MAAMgV,OAAO,IAAIpU,gBAAJ,CAASyqC,OAAOrrC,IAAhB,CAAb;IACAgV,KAAKyE,GAALzE,CAAS,WAATA,EAAsB,KAAK65B,gBAA3B75B;IACAgd,UAAUvY,GAAVuY,CAAc,MAAdA,EAAsBhd,IAAtBgd;IAEAif,qBAAqBx3B,GAArBw3B,CAAyB,WAAzBA,EAAsCjf,SAAtCif;IAEA,KAAKwG,iBAAL,GAAyB,IAAI7mB,oBAAJ,CAAiBob,UAAjB,CAAzB;IACA,KAAKyL,iBAAL,CAAuBh0B,IAAvB,GAA8BwtB,oBAA9B;;IAEA,KAAKlF,QAAL,CAAc50C,IAAd,CAAmB,KAAKsgD,iBAAxB;EA3RkD;;EA8RpDM,iBAAiB1M,MAAjB,EAAyB;IACvB,MAAMwN,mBAAmBxN,OAAO5nB,IAAP4nB,CAAYhtC,GAAZgtC,CAAgB,IAAhBA,CAAzB;;IACA,IAAI,EAAEwN,4BAA4Bj4C,gBAA9B,CAAJ,EAAyC;MACvC;IAHqB;;IAMvB,MAAMk4C,mBAAmBD,iBAAiBx6C,GAAjBw6C,CAAqB,GAArBA,CAAzB;;IACA,IAAI,EAAEC,4BAA4Bl4C,gBAA9B,CAAJ,EAAyC;MACvC;IARqB;;IAavB,MAAMm4C,UAAU,KAAKxH,gBAAL,CAAsBlG,OAAO5nB,IAAP4nB,CAAYhtC,GAAZgtC,CAAgB,IAAhBA,CAAtB,CAAhB;;IACA,IAAI,OAAO0N,OAAP,KAAmB,QAAvB,EAAiC;MAC/B,KAAK7iD,IAAL,CAAUo7C,UAAV,GAAuByH,OAAvB;IAfqB;;IAkBvB,MAAMC,MACJ,KAAK9iD,IAAL,CAAUo7C,UAAV,KAAyB,IAAzB,IAAiC,KAAKp7C,IAAL,CAAUo7C,UAAV,KAAyB,KAA1D,GACI,KAAKp7C,IAAL,CAAUo7C,UADd,GAEI,KAHN;IAKA,MAAM2H,eAAeH,iBAAiBl2B,OAAjBk2B,EAArB;;IACA,IAAIG,aAAa7hD,MAAb6hD,KAAwB,CAA5B,EAA+B;MAC7BA,aAAa9hD,IAAb8hD,CAAkB,KAAlBA,EAAyBD,GAAzBC;IADF,OAEO,IAAIA,aAAa7hD,MAAb6hD,KAAwB,CAA5B,EAA+B;MACpC,IAAIA,aAAa,CAAb,MAAoB,KAAxB,EAA+B;QAC7BA,aAAa9hD,IAAb8hD,CAAkBD,GAAlBC;MADF,OAEO;QACLA,aAAajK,OAAbiK,CAAqB,KAArBA;MAJkC;IAA/B,OAMA,IAAIA,aAAa7uB,QAAb6uB,CAAsBD,GAAtBC,CAAJ,EAAgC;MACrCA,aAAa7hD,MAAb6hD,GAAsB,CAAtBA;MACAA,aAAa9hD,IAAb8hD,CAAkB,KAAlBA,EAAyBD,GAAzBC;IAFK,OAGA;MACL,MAAMC,WAAWD,aAAaviB,IAAbuiB,CAAkB98B,KAAKA,MAAM,KAA7B88B,CAAjB;MACAA,aAAa7hD,MAAb6hD,GAAsB,CAAtBA;MACAA,aAAa9hD,IAAb8hD,CAAkB,KAAlBA,EAAyBC,QAAzBD;IAtCqB;;IA2CvB,IAAI,CAACA,aAAa7uB,QAAb6uB,CAAsB,KAAK/iD,IAAL,CAAUo7C,UAAhC2H,CAAL,EAAkD;MAChD,KAAK/iD,IAAL,CAAUo7C,UAAV,GAAuB,KAAvB;IA5CqB;;IA+CvB,KAAKp7C,IAAL,CAAUgiD,WAAV,GAAwBe,aAAa,CAAb,CAAxB;IAEA,KAAKxB,iBAAL,GACEqB,iBAAiBz6C,GAAjBy6C,CAAqB,KAAK5iD,IAAL,CAAUgiD,WAA/BY,KAA+C,IADjD;IAEA,KAAKpB,mBAAL,GAA2BoB,iBAAiBz6C,GAAjBy6C,CAAqB,KAArBA,KAA+B,IAA1D;;IAEA,IAAI,KAAKrB,iBAAT,EAA4B;MAC1B,KAAK1L,QAAL,CAAc50C,IAAd,CAAmB,KAAKsgD,iBAAxB;IADF,OAEO;MACL,KAAKgB,4BAAL,CAAkCpN,MAAlC,EAA0C,OAA1C;IAxDqB;;IA0DvB,IAAI,KAAKqM,mBAAT,EAA8B;MAC5B,KAAK3L,QAAL,CAAc50C,IAAd,CAAmB,KAAKugD,mBAAxB;IA3DqB;;IA6DvB,KAAK7K,iBAAL,GAAyB,KAAKgC,gBAA9B;EA3VkD;;EA8VpDmJ,oBAAoB3M,MAApB,EAA4B;IAC1B,KAAKn1C,IAAL,CAAUo7C,UAAV,GAAuB,KAAKp7C,IAAL,CAAUiiD,WAAV,GAAwB,IAA/C;IAIA,MAAMgB,cAAc9N,OAAO5nB,IAAP4nB,CAAYhtC,GAAZgtC,CAAgB,QAAhBA,CAApB;;IACA,IAAI8N,uBAAuBv4C,gBAA3B,EAAiC;MAC/B,KAAKqjB,MAAL,GAAconB,OAAO5nB,IAAP4nB,CAAYxpC,MAAZwpC,CAAmB,QAAnBA,CAAd;MACA,MAAM+N,mBAAmBD,YAAY96C,GAAZ86C,CAAgB,GAAhBA,CAAzB;;MACA,IAAIC,4BAA4Bl4B,gBAAhC,EAAsC;QACpC,KAAKhrB,IAAL,CAAUo7C,UAAV,GAAuB,KAAKC,gBAAL,CAAsB6H,gBAAtB,CAAvB;MAJ6B;IANP;;IAe1B,MAAM7K,mBAAmBlD,OAAO5nB,IAAP4nB,CAAYhtC,GAAZgtC,CAAgB,IAAhBA,CAAzB;;IACA,IAAI,EAAEkD,4BAA4B3tC,gBAA9B,CAAJ,EAAyC;MACvC;IAjBwB;;IAmB1B,MAAMk4C,mBAAmBvK,iBAAiBlwC,GAAjBkwC,CAAqB,GAArBA,CAAzB;;IACA,IAAI,EAAEuK,4BAA4Bl4C,gBAA9B,CAAJ,EAAyC;MACvC;IArBwB;;IAuB1B,WAAWc,GAAX,IAAkBo3C,iBAAiBl2B,OAAjBk2B,EAAlB,EAA8C;MAC5C,IAAIp3C,QAAQ,KAAZ,EAAmB;QACjB,KAAKxL,IAAL,CAAUiiD,WAAV,GAAwB,KAAK5G,gBAAL,CAAsB7vC,GAAtB,CAAxB;QACA;MAH0C;IAvBpB;;IA8B1B,KAAK+1C,iBAAL,GACEqB,iBAAiBz6C,GAAjBy6C,CAAqB,KAAK5iD,IAAL,CAAUiiD,WAA/BW,KAA+C,IADjD;IAEA,KAAKpB,mBAAL,GAA2BoB,iBAAiBz6C,GAAjBy6C,CAAqB,KAArBA,KAA+B,IAA1D;;IAEA,IAAI,KAAKrB,iBAAT,EAA4B;MAC1B,KAAK1L,QAAL,CAAc50C,IAAd,CAAmB,KAAKsgD,iBAAxB;IADF,OAEO;MACL,KAAKgB,4BAAL,CAAkCpN,MAAlC,EAA0C,MAA1C;IArCwB;;IAuC1B,IAAI,KAAKqM,mBAAT,EAA8B;MAC5B,KAAK3L,QAAL,CAAc50C,IAAd,CAAmB,KAAKugD,mBAAxB;IAxCwB;;IA0C1B,KAAK7K,iBAAL,GAAyB,KAAKgC,gBAA9B;EAxYkD;;EA2YpDoJ,mBAAmB5M,MAAnB,EAA2B;IACzB,IACE,CAACA,OAAO5nB,IAAP4nB,CAAYtoB,GAAZsoB,CAAgB,GAAhBA,CAAD,IACA,CAACA,OAAO5nB,IAAP4nB,CAAYtoB,GAAZsoB,CAAgB,IAAhBA,CADD,IAEA,CAAC,KAAKn1C,IAAL,CAAUy7C,eAHb,EAIE;MACA72C,gBAAK,4DAALA;MACA;IAPuB;;IAUzB,KAAK5E,IAAL,CAAU4hD,aAAV,GAA0B,CAACzM,OAAO5nB,IAAP4nB,CAAYtoB,GAAZsoB,CAAgB,GAAhBA,CAAD,IAAyB,CAACA,OAAO5nB,IAAP4nB,CAAYtoB,GAAZsoB,CAAgB,IAAhBA,CAApD;;IAEA7T,iBAAQ6hB,mBAAR7hB,CAA4B;MAC1B8hB,UAAUjO,OAAO5nB,IADS;MAE1B81B,WAAW,KAAKrjD,IAFU;MAG1BwB,YAAY2zC,OAAO10C,UAAP00C,CAAkB3zC;IAHJ,CAA5B8/B;EAvZkD;;EA8ZpD0G,iBAAiB;IACf,IAAIpd,OAAO,QAAX;IACA,IAAIm4B,YAAJ;;IACA,IAAI,KAAK/iD,IAAL,CAAUyhD,QAAd,EAAwB;MACtB72B,OAAO,UAAPA;MACAm4B,eAAe,KAAK/iD,IAAL,CAAUgiD,WAAzBe;IAFF,OAGO,IAAI,KAAK/iD,IAAL,CAAU0hD,WAAd,EAA2B;MAChC92B,OAAO,aAAPA;MACAm4B,eAAe,KAAK/iD,IAAL,CAAUiiD,WAAzBc;IARa;;IAUf,OAAO;MACLt6C,IAAI,KAAKzI,IAAL,CAAUyI,EADT;MAEL1D,OAAO,KAAK/E,IAAL,CAAUo7C,UAAV,IAAwB,KAF1B;MAGL+F,cAAc,KAAKnhD,IAAL,CAAUs7C,iBAHnB;MAILyH,YAJK;MAKLzB,UAAU,CAAC,KAAKthD,IAAL,CAAUo8C,QALhB;MAMLt9C,MAAM,KAAKkB,IAAL,CAAUy2C,SANX;MAOL9vB,MAAM,KAAK3mB,IAAL,CAAU2mB,IAPX;MAQLswB,QAAQ,KAAKj3C,IAAL,CAAUi3C,MARb;MASLpf,SAAS,KAAK73B,IAAL,CAAU63B,OATd;MAULnwB,MAAM,KAAK1H,IAAL,CAAUyH,SAVX;MAWLmxC,aAAa,KAAK54C,IAAL,CAAUk2C,WAXlB;MAYL2C,WAAW,KAAK74C,IAAL,CAAUi2C,eAZhB;MAaLrrB;IAbK,CAAP;EAxakD;;EAybpD,IAAI+tB,gBAAJ,GAAuB;IACrB,MAAMprB,OAAO,IAAI7iB,gBAAJ,EAAb;IACA6iB,KAAKhK,GAALgK,CAAS,UAATA,EAAqBvC,iBAAK7iB,GAAL6iB,CAAS,cAATA,CAArBuC;IACAA,KAAKhK,GAALgK,CAAS,MAATA,EAAiBvC,iBAAK7iB,GAAL6iB,CAAS,cAATA,CAAjBuC;IACAA,KAAKhK,GAALgK,CAAS,SAATA,EAAoBvC,iBAAK7iB,GAAL6iB,CAAS,cAATA,CAApBuC;IACAA,KAAKhK,GAALgK,CAAS,UAATA,EAAqBvC,iBAAK7iB,GAAL6iB,CAAS,sBAATA,CAArBuC;IAEA,OAAOhM,kBAAO,IAAPA,EAAa,kBAAbA,EAAiCgM,IAAjChM,CAAP;EAhckD;;AAAA;;AAoctD,MAAMuwB,sBAAN,SAAqCE,gBAArC,CAAsD;EACpDnzC,YAAYs2C,MAAZ,EAAoB;IAClB,MAAMA,MAAN;IAWA,KAAKn1C,IAAL,CAAU8gB,OAAV,GAAoB,EAApB;IAEA,MAAMA,UAAU4U,wCAAuB;MAAEnI,MAAM4nB,OAAO5nB,IAAf;MAAqB/hB,KAAK;IAA1B,CAAvBkqB,CAAhB;;IACA,IAAI7qB,MAAMC,OAAND,CAAciW,OAAdjW,CAAJ,EAA4B;MAC1B,MAAMf,OAAOqrC,OAAOrrC,IAApB;;MACA,KAAK,IAAIhI,IAAI,CAAR,EAAWiJ,KAAK+V,QAAQ5f,MAA7B,EAAqCY,IAAIiJ,EAAzC,EAA6CjJ,GAA7C,EAAkD;QAChD,MAAMwhD,SAASx5C,KAAK24B,UAAL34B,CAAgBgX,QAAQhf,CAAR,CAAhBgI,CAAf;QACA,MAAMy5C,gBAAgB14C,MAAMC,OAAND,CAAcy4C,MAAdz4C,CAAtB;QAEA,KAAK7K,IAAL,CAAU8gB,OAAV,CAAkBhf,CAAlB,IAAuB;UACrBkgD,aAAa,KAAK3G,gBAAL,CACXkI,gBAAgBz5C,KAAK24B,UAAL34B,CAAgBw5C,OAAO,CAAP,CAAhBx5C,CAAhB,GAA6Cw5C,MADlC,CADQ;UAIrBE,cAAc,KAAKnI,gBAAL,CACZkI,gBAAgBz5C,KAAK24B,UAAL34B,CAAgBw5C,OAAO,CAAP,CAAhBx5C,CAAhB,GAA6Cw5C,MADjC;QAJO,CAAvB;MANwB;IAfV;;IAoClB,IAAI,OAAO,KAAKtjD,IAAL,CAAUo7C,UAAjB,KAAgC,QAApC,EAA8C;MAC5C,KAAKp7C,IAAL,CAAUo7C,UAAV,GAAuB,CAAC,KAAKp7C,IAAL,CAAUo7C,UAAX,CAAvB;IADF,OAEO,IAAI,CAAC,KAAKp7C,IAAL,CAAUo7C,UAAf,EAA2B;MAChC,KAAKp7C,IAAL,CAAUo7C,UAAV,GAAuB,EAAvB;IAvCgB;;IA2ClB,KAAKp7C,IAAL,CAAUyjD,KAAV,GAAkB,KAAKpH,YAAL,CAAkBroC,0BAAoBQ,KAAtC,CAAlB;IACA,KAAKxU,IAAL,CAAU0jD,WAAV,GAAwB,KAAKrH,YAAL,CAAkBroC,0BAAoBY,WAAtC,CAAxB;IACA,KAAK2nC,QAAL,GAAgB,IAAhB;EA9CkD;;EAiDpDvU,iBAAiB;IACf,MAAMpd,OAAO,KAAK5qB,IAAL,CAAUyjD,KAAV,GAAkB,UAAlB,GAA+B,SAA5C;IACA,MAAM1+C,QACJ,KAAK/E,IAAL,CAAUo7C,UAAV,CAAqBl6C,MAArB,GAA8B,CAA9B,GAAkC,KAAKlB,IAAL,CAAUo7C,UAAV,CAAqB,CAArB,CAAlC,GAA4D,IAD9D;IAEA,OAAO;MACL3yC,IAAI,KAAKzI,IAAL,CAAUyI,EADT;MAEL1D,KAFK;MAGLo8C,cAAc,KAAKnhD,IAAL,CAAUs7C,iBAHnB;MAILgG,UAAU,CAAC,KAAKthD,IAAL,CAAUo8C,QAJhB;MAKLt9C,MAAM,KAAKkB,IAAL,CAAUy2C,SALX;MAML9vB,MAAM,KAAK3mB,IAAL,CAAU2mB,IANX;MAOLg9B,UAAU,KAAK3jD,IAAL,CAAUo7C,UAAV,CAAqBl6C,MAP1B;MAQL0iD,mBAAmB,KAAK5jD,IAAL,CAAU0jD,WARxB;MASLzM,QAAQ,KAAKj3C,IAAL,CAAUi3C,MATb;MAULpf,SAAS,KAAK73B,IAAL,CAAU63B,OAVd;MAWLgsB,OAAO,KAAK7jD,IAAL,CAAU8gB,OAXZ;MAYLpZ,MAAM,KAAK1H,IAAL,CAAUyH,SAZX;MAaLmxC,aAAa,KAAK54C,IAAL,CAAUk2C,WAblB;MAcL2C,WAAW,KAAK74C,IAAL,CAAUi2C,eAdhB;MAeLrrB;IAfK,CAAP;EArDkD;;EAwEpD,MAAM4xB,cAAN,CAAqBhE,SAArB,EAAgC52C,IAAhC,EAAsC0H,iBAAtC,EAAyD;IACvD,IAAI,KAAKtJ,IAAL,CAAUyjD,KAAd,EAAqB;MACnB,OAAO,MAAMjH,cAAN,CAAqBhE,SAArB,EAAgC52C,IAAhC,EAAsC0H,iBAAtC,CAAP;IAFqD;;IAKvD,IAAI,CAACA,iBAAL,EAAwB;MACtB,OAAO,IAAP;IANqD;;IAQvD,MAAM0tC,eAAe1tC,kBAAkBnB,GAAlBmB,CAAsB,KAAKtJ,IAAL,CAAUyI,EAAhCa,CAArB;IACA,IAAIw6C,gBAAgB9M,gBAAgBA,aAAajyC,KAAjD;;IACA,IAAI++C,kBAAkBzhC,SAAtB,EAAiC;MAE/B,OAAO,IAAP;IAZqD;;IAevD,IAAI,CAACxX,MAAMC,OAAND,CAAci5C,aAAdj5C,CAAL,EAAmC;MACjCi5C,gBAAgB,CAACA,aAAD,CAAhBA;IAhBqD;;IAmBvD,MAAMrG,iBAAiB,CAAvB;IACA,MAAMC,WAAWD,cAAjB;IACA,MAAME,cAAc,KAAK39C,IAAL,CAAU2mB,IAAV,CAAe,CAAf,IAAoB,KAAK3mB,IAAL,CAAU2mB,IAAV,CAAe,CAAf,CAAxC;IACA,MAAMi3B,aAAa,KAAK59C,IAAL,CAAU2mB,IAAV,CAAe,CAAf,IAAoB,KAAK3mB,IAAL,CAAU2mB,IAAV,CAAe,CAAf,CAAvC;IACA,MAAM42B,YAAY,KAAKv9C,IAAL,CAAU8gB,OAAV,CAAkB5f,MAApC;IACA,MAAM6iD,eAAe,EAArB;;IACA,KAAK,IAAIjiD,IAAI,CAAb,EAAgBA,IAAIy7C,SAApB,EAA+Bz7C,GAA/B,EAAoC;MAClC,MAAM;QAAEkgD;MAAF,IAAkB,KAAKhiD,IAAL,CAAU8gB,OAAV,CAAkBhf,CAAlB,CAAxB;;MACA,IAAIgiD,cAAc5vB,QAAd4vB,CAAuB9B,WAAvB8B,CAAJ,EAAyC;QACvCC,aAAa9iD,IAAb8iD,CAAkBjiD,CAAlBiiD;MAHgC;IAzBmB;;IAgCvD,IAAI,CAAC,KAAKpI,kBAAV,EAA8B;MAM5B,KAAK37C,IAAL,CAAU47C,qBAAV,GAAkCC,gDAC/B,KAAKF,kBAAL,GAA0B,qBADKE,CAAlC;IAtCqD;;IA2CvD,MAAM/8B,OAAO,MAAM,KAAK++B,YAAL,CAAkBrF,SAAlB,EAA6B52C,IAA7B,CAAnB;IAEA,IAAI85C,iBAAJ;IACA,IAAI;MAAEoC;IAAF,IAAe,KAAK99C,IAAL,CAAU47C,qBAA7B;;IACA,IAAI,CAACkC,QAAL,EAAe;MACb,MAAM5Q,aAAc,eAAcuQ,cAAd,IAAgCF,SAApD;MACA,IAAIyG,YAAY,CAAC,CAAjB;MACA,IAAIj/C,KAAJ;;MACA,WAAW;QAAEy+C;MAAF,CAAX,IAA+B,KAAKxjD,IAAL,CAAU8gB,OAAzC,EAAkD;QAChD,MAAMk4B,QAAQ,KAAK2F,aAAL,CAAmB6E,YAAnB,CAAd;;QACA,IAAIxK,QAAQgL,SAAZ,EAAuB;UACrBA,YAAYhL,KAAZgL;UACAj/C,QAAQy+C,YAARz+C;QAJ8C;MAJrC;;MAYb,CAAC22C,iBAAD,EAAoBoC,QAApB,IAAgC,KAAKC,gBAAL,CAC9B7Q,UAD8B,EAE9B0Q,aAAa,IAAIF,QAFa,EAG9B34C,KAH8B,EAI9B+Z,IAJ8B,EAK9B,CAAC,CAL6B,CAAhC;IAZF,OAmBO;MACL48B,oBAAoB,KAAKC,kBAAzBD;IAnEqD;;IAsEvD,MAAMxO,aAAa4Q,WAAW1M,WAA9B;IACA,MAAM6M,WAAY,cAAaH,QAAb,IAAyB,CAA3C;IACA,MAAMmG,uBAAuB9+C,KAAKosB,KAALpsB,CAAWw4C,cAAczQ,UAAzB/nC,CAA7B;IAEA,IAAI++C,UAAJ;;IACA,IAAIH,aAAa7iD,MAAb6iD,KAAwB,CAA5B,EAA+B;MAC7B,MAAMI,gBAAgBJ,aAAa,CAAb,CAAtB;MACA,MAAMK,cAAcD,gBAAgBF,oBAApC;MACAC,aAAaC,gBAAgBC,WAA7BF;IAHF,OAIO;MAGLA,aAAaH,aAAa7iD,MAAb6iD,GAAsBA,aAAa,CAAb,CAAtBA,GAAwC,CAArDG;IAlFqD;;IAoFvD,MAAMp0B,MAAM3qB,KAAKyd,GAALzd,CAAS++C,aAAaD,oBAAbC,GAAoC,CAA7C/+C,EAAgDo4C,SAAhDp4C,CAAZ;IAEA,MAAMgkB,MAAM,CAAC,WAAD,EAAe,OAAMy0B,UAAW,IAAGD,WAAY,SAA/C,CAAZ;;IAEA,IAAIoG,aAAa7iD,MAAjB,EAAyB;MAGvBioB,IAAIloB,IAAJkoB,CAAS,+BAATA;;MAIA,WAAW0jB,KAAX,IAAoBkX,YAApB,EAAkC;QAChC,IAAIG,cAAcrX,KAAdqX,IAAuBrX,QAAQ/c,GAAnC,EAAwC;UACtC3G,IAAIloB,IAAJkoB,CACG,KACCw0B,cAAe,SAAQuG,UAARrX,GAAqB,CAArB,IAA0BK,UAC1C,IAAG0Q,UAAW,IAAG1Q,UAAW,OAH/B/jB;QAF8B;MAPX;IAxF8B;;IAyGvDA,IAAIloB,IAAJkoB,CAAS,IAATA,EAAeuyB,iBAAfvyB,EAAmC,aAAYw0B,WAAY,KAA3Dx0B;;IAEA,KAAK,IAAIrnB,IAAIoiD,UAAb,EAAyBpiD,IAAIguB,GAA7B,EAAkChuB,GAAlC,EAAuC;MACrC,MAAM;QAAE0hD;MAAF,IAAmB,KAAKxjD,IAAL,CAAU8gB,OAAV,CAAkBhf,CAAlB,CAAzB;MACA,MAAMuiD,WAAWviD,MAAMoiD,UAANpiD,GAAmB47C,QAAnB57C,GAA8B,CAA/C;MACA,MAAMwiD,WAAWxiD,MAAMoiD,UAANpiD,GAAmBm8C,QAAnBn8C,GAA8B,CAA/C;MACAqnB,IAAIloB,IAAJkoB,CACE,KAAKu1B,WAAL,CACE8E,YADF,EAEE1kC,IAFF,EAGEg/B,QAHF,EAIEF,UAJF,EAKE,CALF,EAMEyG,QANF,EAOE,CAACnX,UAAD,GAAcoX,QAPhB,CADFn7B;IA/GqD;;IA4HvDA,IAAIloB,IAAJkoB,CAAS,UAATA;IAEA,OAAOA,IAAIhoB,IAAJgoB,CAAS,IAATA,CAAP;EAtMkD;;AAAA;;AA0MtD,MAAM4oB,yBAAN,SAAwCC,gBAAxC,CAAyD;EACvDnzC,YAAYs2C,MAAZ,EAAoB;IAClB,MAAMA,MAAN;IAKA,KAAKn1C,IAAL,CAAUo7C,UAAV,GAAuB,IAAvB;EAPqD;;EAUvDpT,iBAAiB;IACf,OAAO;MACLv/B,IAAI,KAAKzI,IAAL,CAAUyI,EADT;MAEL1D,OAAO,IAFF;MAGL2C,MAAM,KAAK1H,IAAL,CAAUyH,SAHX;MAILmjB,MAAM;IAJD,CAAP;EAXqD;;AAAA;;AAoBzD,MAAM8mB,cAAN,SAA6BiI,gBAA7B,CAA8C;EAC5C96C,YAAY2yC,UAAZ,EAAwB;IACtB,MAAM+S,oBAAoB,EAA1B;IAEA,MAAM/S,UAAN;IAEA,MAAMjkB,OAAOikB,WAAWjkB,IAAxB;IACA,KAAKvtB,IAAL,CAAUm7C,cAAV,GAA2BrqC,qBAAeC,IAA1C;;IAEA,IAAI,KAAK/Q,IAAL,CAAUq2C,aAAd,EAA6B;MAC3B,KAAKr2C,IAAL,CAAUlB,IAAV,GAAiB,QAAjB;IADF,OAEO;MACL,KAAKkB,IAAL,CAAU2mB,IAAV,CAAe,CAAf,IAAoB,KAAK3mB,IAAL,CAAU2mB,IAAV,CAAe,CAAf,IAAoB49B,iBAAxC;MACA,KAAKvkD,IAAL,CAAU2mB,IAAV,CAAe,CAAf,IAAoB,KAAK3mB,IAAL,CAAU2mB,IAAV,CAAe,CAAf,IAAoB49B,iBAAxC;MACA,KAAKvkD,IAAL,CAAUlB,IAAV,GAAiByuB,KAAKV,GAALU,CAAS,MAATA,IAAmBA,KAAKplB,GAALolB,CAAS,MAATA,EAAiBzuB,IAApCyuB,GAA2C,MAA5D;IAboB;;IAgBtB,IAAIA,KAAKV,GAALU,CAAS,OAATA,CAAJ,EAAuB;MACrB,KAAKvtB,IAAL,CAAUwkD,KAAV,GAAkBj3B,KAAKplB,GAALolB,CAAS,OAATA,KAAqB,IAAvC;MACA,KAAKvtB,IAAL,CAAUykD,UAAV,GAAuBl3B,KAAKplB,GAALolB,CAAS,YAATA,KAA0B,IAAjD;IAFF,OAGO;MACL,KAAKvtB,IAAL,CAAUwkD,KAAV,GAAkB,IAAlB;MACA,KAAKxkD,IAAL,CAAUykD,UAAV,GAAuB,IAAvB;IArBoB;EADoB;;AAAA;;AA2B9C,MAAMhT,cAAN,SAA6BuB,UAA7B,CAAwC;EACtCn0C,YAAYs2C,MAAZ,EAAoB;IAClB,MAAMA,MAAN;IAEA,KAAKn1C,IAAL,CAAUm7C,cAAV,GAA2BrqC,qBAAeE,IAA1C;IAEA,MAAM+iC,aAAaD,cAAcqB,OAAO5nB,IAArB,EAA2B,KAAK1T,SAAhC,CAAnB;;IACA,IAAIk6B,UAAJ,EAAgB;MACd,KAAK/zC,IAAL,CAAU+zC,UAAV,GAAuBA,UAAvB;IAPgB;;IAUlBzS,iBAAQ6hB,mBAAR7hB,CAA4B;MAC1B8hB,UAAUjO,OAAO5nB,IADS;MAE1B81B,WAAW,KAAKrjD,IAFU;MAG1BwB,YAAY2zC,OAAO10C,UAAP00C,CAAkB3zC;IAHJ,CAA5B8/B;EAXoC;;AAAA;;AAmBxC,MAAM2Q,eAAN,SAA8Be,UAA9B,CAAyC;EACvCn0C,YAAY2yC,UAAZ,EAAwB;IACtB,MAAMA,UAAN;IAEA,KAAKxxC,IAAL,CAAUm7C,cAAV,GAA2BrqC,qBAAegB,KAA1C;IAEA,IAAI4yC,aAAalT,WAAWjkB,IAAXikB,CAAgBrpC,GAAhBqpC,CAAoB,QAApBA,CAAjB;;IACA,IAAI,CAACkT,UAAL,EAAiB;MACf9/C,gBAAK,8DAALA;MACA;IARoB;;IAWtB,MAAM+/C,gBAAgBD,WAAWv8C,GAAXu8C,CAAe,SAAfA,CAAtB;IACA,KAAK1kD,IAAL,CAAU4kD,UAAV,GACED,yBAAyB35B,gBAAzB25B,GAAgCA,cAAc7lD,IAA9C6lD,GAAqD,IADvD;IAEA,MAAME,YAAYrT,WAAWjkB,IAAXikB,CAAgB7lC,MAAhB6lC,CAAuB,QAAvBA,CAAlB;IACA,KAAKxxC,IAAL,CAAU8kD,QAAV,GAAqBD,qBAAqB38C,eAArB28C,GAA2BA,UAAUt+C,QAAVs+C,EAA3BA,GAAkD,IAAvE;IAEA,MAAME,aAAaL,WAAWj4B,QAAXi4B,CAAoB,MAApBA,CAAnB;;IACA,IAAI75C,MAAMC,OAAND,CAAck6C,UAAdl6C,KAA6Bk6C,WAAW7jD,MAAX6jD,KAAsB,CAAvD,EAA0D;MACxD,KAAK/kD,IAAL,CAAU+kD,UAAV,GAAuBtgC,WAAKiC,aAALjC,CAAmBsgC,UAAnBtgC,CAAvB;IADF,OAEO;MACL,KAAKzkB,IAAL,CAAU+kD,UAAV,GAAuB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAAvB;IArBoB;;IAwBtB,MAAMjL,KAAK4K,WAAWv8C,GAAXu8C,CAAe,IAAfA,CAAX;;IACA,IAAIh2B,wBAAOorB,EAAPprB,EAAWtb,0BAAoBC,KAA/Bqb,CAAJ,EAA2C;MAGzCg2B,aAAaA,WAAWv8C,GAAXu8C,CAAe,KAAfA,CAAbA;IA5BoB;;IA+BtB,IAAI,CAACA,WAAW73B,GAAX63B,CAAe,GAAfA,CAAL,EAA0B;MACxB,KAAK1kD,IAAL,CAAUs2C,gBAAV,GAA6B,IAA7B;IADF,OAEO;MACL,KAAKhB,mBAAL,CAAyBoP,WAAWv8C,GAAXu8C,CAAe,GAAfA,CAAzB;MACA,KAAK1kD,IAAL,CAAUs2C,gBAAV,GAA6B,KAAKA,gBAAlC;IAnCoB;;IAsCtB,IAAI,CAACoO,WAAW73B,GAAX63B,CAAe,GAAfA,CAAL,EAA0B;MAExB,KAAK1kD,IAAL,CAAUozC,KAAV,GAAkB,IAAlB;IAFF,OAGO;MACL,KAAKqC,QAAL,CAAciP,WAAWj4B,QAAXi4B,CAAoB,GAApBA,CAAd;MACA,KAAK1kD,IAAL,CAAUozC,KAAV,GAAkB,KAAKA,KAAvB;IA3CoB;;IAiDtB,IAAI,CAAC,KAAK1T,QAAV,EAAoB;MAClB,MAAMslB,cAAcN,WAAWv8C,GAAXu8C,CAAe,GAAfA,CAApB;;MACA,IAAI,KAAK5N,WAAL,CAAiBkO,WAAjB,CAAJ,EAAmC;QACjC,KAAKzP,QAAL,CAAcyP,WAAd;MAHgB;IAjDE;;IAwDtB,KAAK5P,QAAL,CAAcsP,WAAWv8C,GAAXu8C,CAAe,GAAfA,CAAd;IACA,KAAK1kD,IAAL,CAAUg6C,QAAV,GAAqB,KAAKzC,MAA1B;IAEA,KAAKlC,WAAL,CAAiBqP,WAAWv8C,GAAXu8C,CAAe,UAAfA,CAAjB;IACA,KAAK1kD,IAAL,CAAUm2C,WAAV,GAAwB,KAAKC,SAA7B;;IAEA,IAAIsO,WAAW73B,GAAX63B,CAAe,IAAfA,CAAJ,EAA0B;MACxB,KAAK1kD,IAAL,CAAUo6C,QAAV,GAAqBzW,oBAAW0W,iBAAX1W,CAA6B+gB,WAAWv8C,GAAXu8C,CAAe,IAAfA,CAA7B/gB,CAArB;IA/DoB;EADe;;AAAA;;AAqEzC,MAAMuO,kBAAN,SAAiCyH,gBAAjC,CAAkD;EAChD96C,YAAY2yC,UAAZ,EAAwB;IACtB,MAAMA,UAAN;IAEA,KAAKxxC,IAAL,CAAUm7C,cAAV,GAA2BrqC,qBAAeG,QAA1C;EAJ8C;;AAAA;;AAQlD,MAAMkhC,cAAN,SAA6BwH,gBAA7B,CAA8C;EAC5C96C,YAAY2yC,UAAZ,EAAwB;IACtB,MAAMA,UAAN;IAEA,MAAM;MAAEjkB;IAAF,IAAWikB,UAAjB;IACA,KAAKxxC,IAAL,CAAUm7C,cAAV,GAA2BrqC,qBAAeI,IAA1C;IAEA,MAAM+zC,kBAAkB13B,KAAKd,QAALc,CAAc,GAAdA,CAAxB;IACA,KAAKvtB,IAAL,CAAUilD,eAAV,GAA4BxgC,WAAKiC,aAALjC,CAAmBwgC,eAAnBxgC,CAA5B;IAEA,KAAKizB,cAAL,CAAoBnqB,KAAKd,QAALc,CAAc,IAAdA,CAApB;IACA,KAAKvtB,IAAL,CAAU23C,WAAV,GAAwB,KAAKA,WAA7B;;IAEA,IAAI,CAAC,KAAK7B,UAAV,EAAsB;MAEpB,MAAM8C,cAAc,KAAKxF,KAAL,GAChBvoC,MAAMq6C,IAANr6C,CAAW,KAAKuoC,KAAhBvoC,EAAuB+Y,GAAvB/Y,CAA2Bub,KAAKA,IAAI,GAApCvb,CADgB,GAEhB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAFJ;MAGA,MAAM4vC,cAAcltB,KAAKplB,GAALolB,CAAS,IAATA,CAApB;MAIA,IAAIsrB,YAAY,IAAhB;MAAA,IACEsM,gBAAgB53B,KAAKd,QAALc,CAAc,IAAdA,CADlB;;MAEA,IAAI43B,aAAJ,EAAmB;QACjBA,gBAAgBhS,YAAYgS,aAAZ,EAA2B,IAA3B,CAAhBA;QACAtM,YAAYsM,gBACRt6C,MAAMq6C,IAANr6C,CAAWs6C,aAAXt6C,EAA0B+Y,GAA1B/Y,CAA8Bub,KAAKA,IAAI,GAAvCvb,CADQ,GAER,IAFJguC;MAbkB;;MAiBpB,MAAM6B,YAAY7B,YAAY4B,WAAZ,GAA0B,IAA5C;MAEA,MAAM2K,cAAc,KAAKpP,WAAL,CAAiBgD,KAAjB,IAA0B,CAA9C;MAAA,MACEqM,eAAe,IAAID,WADrB;MAKA,MAAMppB,OAAO,CACX,KAAKh8B,IAAL,CAAUilD,eAAV,CAA0B,CAA1B,IAA+BI,YADpB,EAEX,KAAKrlD,IAAL,CAAUilD,eAAV,CAA0B,CAA1B,IAA+BI,YAFpB,EAGX,KAAKrlD,IAAL,CAAUilD,eAAV,CAA0B,CAA1B,IAA+BI,YAHpB,EAIX,KAAKrlD,IAAL,CAAUilD,eAAV,CAA0B,CAA1B,IAA+BI,YAJpB,CAAb;;MAMA,IAAI,CAAC5gC,WAAKmC,SAALnC,CAAe,KAAK5K,SAApB4K,EAA+BuX,IAA/BvX,CAAL,EAA2C;QACzC,KAAK5K,SAAL,GAAiBmiB,IAAjB;MA/BkB;;MAkCpB,KAAKse,qBAAL,CAA2B;QACzBxwC,MAAM0nC,WAAW1nC,IADQ;QAEzBywC,OAAO,GAAG6K,WAAY,IAFG;QAGzBxM,WAHyB;QAIzBC,SAJyB;QAKzB4B,WALyB;QAMzBC,SANyB;QAOzBC,gBAAgB,CAAC12B,MAAD,EAAS42B,MAAT,KAAoB;UAClC52B,OAAOhjB,IAAPgjB,CACE,GAAGghC,gBAAgB,CAAhB,CAAmB,IAAGA,gBAAgB,CAAhB,CAAmB,IAD9ChhC,EAEE,GAAGghC,gBAAgB,CAAhB,CAAmB,IAAGA,gBAAgB,CAAhB,CAAmB,IAF9ChhC,EAGE,GAHFA;UAKA,OAAO,CACL42B,OAAO,CAAP,EAAUzwC,CAAVywC,GAAcuK,WADT,EAELvK,OAAO,CAAP,EAAUzwC,CAAVywC,GAAcuK,WAFT,EAGLvK,OAAO,CAAP,EAAU3G,CAAV2G,GAAcuK,WAHT,EAILvK,OAAO,CAAP,EAAU3G,CAAV2G,GAAcuK,WAJT,CAAP;QAbuB;MAAA,CAA3B;IA9CoB;EADoB;;AAAA;;AAwE9C,MAAMhT,gBAAN,SAA+BuH,gBAA/B,CAAgD;EAC9C96C,YAAY2yC,UAAZ,EAAwB;IACtB,MAAMA,UAAN;IAEA,KAAKxxC,IAAL,CAAUm7C,cAAV,GAA2BrqC,qBAAeK,MAA1C;;IAEA,IAAI,CAAC,KAAK2kC,UAAV,EAAsB;MAEpB,MAAM8C,cAAc,KAAKxF,KAAL,GAChBvoC,MAAMq6C,IAANr6C,CAAW,KAAKuoC,KAAhBvoC,EAAuB+Y,GAAvB/Y,CAA2Bub,KAAKA,IAAI,GAApCvb,CADgB,GAEhB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAFJ;MAGA,MAAM4vC,cAAcjJ,WAAWjkB,IAAXikB,CAAgBrpC,GAAhBqpC,CAAoB,IAApBA,CAApB;MAGA,IAAIqH,YAAY,IAAhB;MAAA,IACEsM,gBAAgB3T,WAAWjkB,IAAXikB,CAAgB/kB,QAAhB+kB,CAAyB,IAAzBA,CADlB;;MAEA,IAAI2T,aAAJ,EAAmB;QACjBA,gBAAgBhS,YAAYgS,aAAZ,EAA2B,IAA3B,CAAhBA;QACAtM,YAAYsM,gBACRt6C,MAAMq6C,IAANr6C,CAAWs6C,aAAXt6C,EAA0B+Y,GAA1B/Y,CAA8Bub,KAAKA,IAAI,GAAvCvb,CADQ,GAER,IAFJguC;MAZkB;;MAgBpB,MAAM6B,YAAY7B,YAAY4B,WAAZ,GAA0B,IAA5C;;MAEA,IAAI,KAAKzE,WAAL,CAAiBgD,KAAjB,KAA2B,CAA3B,IAAgC,CAACH,SAArC,EAAgD;QAE9C;MApBkB;;MAuBpB,KAAKyB,qBAAL,CAA2B;QACzBxwC,MAAM0nC,WAAW1nC,IADQ;QAEzBywC,OAAO,GAAG,KAAKvE,WAAL,CAAiBgD,KAAM,IAFR;QAGzBJ,WAHyB;QAIzBC,SAJyB;QAKzB4B,WALyB;QAMzBC,SANyB;QAOzBC,gBAAgB,CAAC12B,MAAD,EAAS42B,MAAT,KAAoB;UAClC,MAAMzwC,IAAIywC,OAAO,CAAP,EAAUzwC,CAAVywC,GAAc,KAAK7E,WAAL,CAAiBgD,KAAjB,GAAyB,CAAjD;UACA,MAAM9E,IAAI2G,OAAO,CAAP,EAAU3G,CAAV2G,GAAc,KAAK7E,WAAL,CAAiBgD,KAAjB,GAAyB,CAAjD;UACA,MAAMA,QAAQ6B,OAAO,CAAP,EAAUzwC,CAAVywC,GAAcA,OAAO,CAAP,EAAUzwC,CAAxBywC,GAA4B,KAAK7E,WAAL,CAAiBgD,KAA3D;UACA,MAAM+F,SAASlE,OAAO,CAAP,EAAU3G,CAAV2G,GAAcA,OAAO,CAAP,EAAU3G,CAAxB2G,GAA4B,KAAK7E,WAAL,CAAiBgD,KAA5D;UACA/0B,OAAOhjB,IAAPgjB,CAAY,GAAG7Z,CAAE,IAAG8pC,CAAE,IAAG8E,KAAM,IAAG+F,MAAO,KAAzC96B;;UACA,IAAI40B,SAAJ,EAAe;YACb50B,OAAOhjB,IAAPgjB,CAAY,GAAZA;UADF,OAEO;YACLA,OAAOhjB,IAAPgjB,CAAY,GAAZA;UATgC;;UAWlC,OAAO,CAAC42B,OAAO,CAAP,EAAUzwC,CAAX,EAAcywC,OAAO,CAAP,EAAUzwC,CAAxB,EAA2BywC,OAAO,CAAP,EAAU3G,CAArC,EAAwC2G,OAAO,CAAP,EAAU3G,CAAlD,CAAP;QAlBuB;MAAA,CAA3B;IA5BoB;EADsB;;AAAA;;AAsDhD,MAAM7B,gBAAN,SAA+BsH,gBAA/B,CAAgD;EAC9C96C,YAAY2yC,UAAZ,EAAwB;IACtB,MAAMA,UAAN;IAEA,KAAKxxC,IAAL,CAAUm7C,cAAV,GAA2BrqC,qBAAeM,MAA1C;;IAEA,IAAI,CAAC,KAAK0kC,UAAV,EAAsB;MAEpB,MAAM8C,cAAc,KAAKxF,KAAL,GAChBvoC,MAAMq6C,IAANr6C,CAAW,KAAKuoC,KAAhBvoC,EAAuB+Y,GAAvB/Y,CAA2Bub,KAAKA,IAAI,GAApCvb,CADgB,GAEhB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAFJ;MAGA,MAAM4vC,cAAcjJ,WAAWjkB,IAAXikB,CAAgBrpC,GAAhBqpC,CAAoB,IAApBA,CAApB;MAGA,IAAIqH,YAAY,IAAhB;MACA,IAAIsM,gBAAgB3T,WAAWjkB,IAAXikB,CAAgB/kB,QAAhB+kB,CAAyB,IAAzBA,CAApB;;MACA,IAAI2T,aAAJ,EAAmB;QACjBA,gBAAgBhS,YAAYgS,aAAZ,EAA2B,IAA3B,CAAhBA;QACAtM,YAAYsM,gBACRt6C,MAAMq6C,IAANr6C,CAAWs6C,aAAXt6C,EAA0B+Y,GAA1B/Y,CAA8Bub,KAAKA,IAAI,GAAvCvb,CADQ,GAER,IAFJguC;MAZkB;;MAgBpB,MAAM6B,YAAY7B,YAAY4B,WAAZ,GAA0B,IAA5C;;MAEA,IAAI,KAAKzE,WAAL,CAAiBgD,KAAjB,KAA2B,CAA3B,IAAgC,CAACH,SAArC,EAAgD;QAE9C;MApBkB;;MA0BpB,MAAMyM,wBAAyB,IAAI,CAAJ,GAASngD,KAAKogD,GAALpgD,CAASA,KAAK+Q,EAAL/Q,IAAW,IAAI,CAAfA,CAATA,CAAxC;;MAEA,KAAKm1C,qBAAL,CAA2B;QACzBxwC,MAAM0nC,WAAW1nC,IADQ;QAEzBywC,OAAO,GAAG,KAAKvE,WAAL,CAAiBgD,KAAM,IAFR;QAGzBJ,WAHyB;QAIzBC,SAJyB;QAKzB4B,WALyB;QAMzBC,SANyB;QAOzBC,gBAAgB,CAAC12B,MAAD,EAAS42B,MAAT,KAAoB;UAClC,MAAMzzB,KAAKyzB,OAAO,CAAP,EAAUzwC,CAAVywC,GAAc,KAAK7E,WAAL,CAAiBgD,KAAjB,GAAyB,CAAlD;UACA,MAAM3xB,KAAKwzB,OAAO,CAAP,EAAU3G,CAAV2G,GAAc,KAAK7E,WAAL,CAAiBgD,KAAjB,GAAyB,CAAlD;UACA,MAAM1xB,KAAKuzB,OAAO,CAAP,EAAUzwC,CAAVywC,GAAc,KAAK7E,WAAL,CAAiBgD,KAAjB,GAAyB,CAAlD;UACA,MAAMzxB,KAAKszB,OAAO,CAAP,EAAU3G,CAAV2G,GAAc,KAAK7E,WAAL,CAAiBgD,KAAjB,GAAyB,CAAlD;UACA,MAAMwM,OAAOp+B,KAAM,MAAKA,EAAL,IAAW,CAA9B;UACA,MAAMq+B,OAAOp+B,KAAM,MAAKA,EAAL,IAAW,CAA9B;UACA,MAAMq+B,UAAY,MAAKt+B,EAAL,IAAW,CAAX,GAAgBk+B,qBAAlC;UACA,MAAMK,UAAY,MAAKt+B,EAAL,IAAW,CAAX,GAAgBi+B,qBAAlC;UAEArhC,OAAOhjB,IAAPgjB,CACE,GAAGuhC,IAAK,IAAGj+B,EAAG,IADhBtD,EAEE,GAAGuhC,OAAOE,OAAQ,IAAGn+B,EAAG,IAAGD,EAAG,IAAGm+B,OAAOE,OAAQ,IAAGr+B,EAAG,IAAGm+B,IAAK,IAFhExhC,EAGE,GAAGqD,EAAG,IAAGm+B,OAAOE,OAAQ,IAAGH,OAAOE,OAAQ,IAAGr+B,EAAG,IAAGm+B,IAAK,IAAGn+B,EAAG,IAHhEpD,EAIE,GAAGuhC,OAAOE,OAAQ,IAAGr+B,EAAG,IAAGD,EAAG,IAAGq+B,OAAOE,OAAQ,IAAGv+B,EAAG,IAAGq+B,IAAK,IAJhExhC,EAKE,GAAGmD,EAAG,IAAGq+B,OAAOE,OAAQ,IAAGH,OAAOE,OAAQ,IAAGn+B,EAAG,IAAGi+B,IAAK,IAAGj+B,EAAG,IALhEtD,EAME,GANFA;;UAQA,IAAI40B,SAAJ,EAAe;YACb50B,OAAOhjB,IAAPgjB,CAAY,GAAZA;UADF,OAEO;YACLA,OAAOhjB,IAAPgjB,CAAY,GAAZA;UArBgC;;UAuBlC,OAAO,CAAC42B,OAAO,CAAP,EAAUzwC,CAAX,EAAcywC,OAAO,CAAP,EAAUzwC,CAAxB,EAA2BywC,OAAO,CAAP,EAAU3G,CAArC,EAAwC2G,OAAO,CAAP,EAAU3G,CAAlD,CAAP;QA9BuB;MAAA,CAA3B;IAjCoB;EADsB;;AAAA;;AAuEhD,MAAM5B,kBAAN,SAAiCqH,gBAAjC,CAAkD;EAChD96C,YAAY2yC,UAAZ,EAAwB;IACtB,MAAMA,UAAN;IAEA,MAAM;MAAEjkB;IAAF,IAAWikB,UAAjB;IACA,KAAKxxC,IAAL,CAAUm7C,cAAV,GAA2BrqC,qBAAeQ,QAA1C;IACA,KAAKtR,IAAL,CAAU4lD,QAAV,GAAqB,EAArB;;IAEA,IAAI,EAAE,gBAAgBrT,iBAAlB,CAAJ,EAA0C;MAExC,KAAKmF,cAAL,CAAoBnqB,KAAKd,QAALc,CAAc,IAAdA,CAApB;MACA,KAAKvtB,IAAL,CAAU23C,WAAV,GAAwB,KAAKA,WAA7B;IAVoB;;IAgBtB,MAAMkO,cAAct4B,KAAKd,QAALc,CAAc,UAAdA,CAApB;;IACA,IAAI,CAAC1iB,MAAMC,OAAND,CAAcg7C,WAAdh7C,CAAL,EAAiC;MAC/B;IAlBoB;;IAoBtB,KAAK,IAAI/I,IAAI,CAAR,EAAWiJ,KAAK86C,YAAY3kD,MAAjC,EAAyCY,IAAIiJ,EAA7C,EAAiDjJ,KAAK,CAAtD,EAAyD;MACvD,KAAK9B,IAAL,CAAU4lD,QAAV,CAAmB3kD,IAAnB,CAAwB;QACtBmJ,GAAGy7C,YAAY/jD,CAAZ,CADmB;QAEtBoyC,GAAG2R,YAAY/jD,IAAI,CAAhB;MAFmB,CAAxB;IArBoB;;IA2BtB,IAAI,CAAC,KAAKg0C,UAAV,EAAsB;MAEpB,MAAM8C,cAAc,KAAKxF,KAAL,GAChBvoC,MAAMq6C,IAANr6C,CAAW,KAAKuoC,KAAhBvoC,EAAuB+Y,GAAvB/Y,CAA2Bub,KAAKA,IAAI,GAApCvb,CADgB,GAEhB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAFJ;MAGA,MAAM4vC,cAAcltB,KAAKplB,GAALolB,CAAS,IAATA,CAApB;MAEA,MAAM63B,cAAc,KAAKpP,WAAL,CAAiBgD,KAAjB,IAA0B,CAA9C;MAAA,MACEqM,eAAe,IAAID,WADrB;MAKA,MAAMppB,OAAO,CAAC8pB,QAAD,EAAWA,QAAX,EAAqB,CAACA,QAAtB,EAAgC,CAACA,QAAjC,CAAb;;MACA,WAAWC,MAAX,IAAqB,KAAK/lD,IAAL,CAAU4lD,QAA/B,EAAyC;QACvC5pB,KAAK,CAAL,IAAU72B,KAAKyd,GAALzd,CAAS62B,KAAK,CAAL,CAAT72B,EAAkB4gD,OAAO37C,CAAP27C,GAAWV,YAA7BlgD,CAAV62B;QACAA,KAAK,CAAL,IAAU72B,KAAKyd,GAALzd,CAAS62B,KAAK,CAAL,CAAT72B,EAAkB4gD,OAAO7R,CAAP6R,GAAWV,YAA7BlgD,CAAV62B;QACAA,KAAK,CAAL,IAAU72B,KAAKC,GAALD,CAAS62B,KAAK,CAAL,CAAT72B,EAAkB4gD,OAAO37C,CAAP27C,GAAWV,YAA7BlgD,CAAV62B;QACAA,KAAK,CAAL,IAAU72B,KAAKC,GAALD,CAAS62B,KAAK,CAAL,CAAT72B,EAAkB4gD,OAAO7R,CAAP6R,GAAWV,YAA7BlgD,CAAV62B;MAjBkB;;MAmBpB,IAAI,CAACvX,WAAKmC,SAALnC,CAAe,KAAK5K,SAApB4K,EAA+BuX,IAA/BvX,CAAL,EAA2C;QACzC,KAAK5K,SAAL,GAAiBmiB,IAAjB;MApBkB;;MAuBpB,KAAKse,qBAAL,CAA2B;QACzBxwC,MAAM0nC,WAAW1nC,IADQ;QAEzBywC,OAAO,GAAG6K,WAAY,IAFG;QAGzBxM,WAHyB;QAIzB6B,WAJyB;QAKzBE,gBAAgB,CAAC12B,MAAD,EAAS42B,MAAT,KAAoB;UAClC,MAAM+K,WAAW,KAAK5lD,IAAL,CAAU4lD,QAA3B;;UACA,KAAK,IAAI9jD,IAAI,CAAR,EAAWiJ,KAAK66C,SAAS1kD,MAA9B,EAAsCY,IAAIiJ,EAA1C,EAA8CjJ,GAA9C,EAAmD;YACjDmiB,OAAOhjB,IAAPgjB,CACE,GAAG2hC,SAAS9jD,CAAT,EAAYsI,CAAE,IAAGw7C,SAAS9jD,CAAT,EAAYoyC,CAAE,IAAGpyC,MAAM,CAANA,GAAU,GAAVA,GAAgB,GAArD,EADFmiB;UAHgC;;UAOlCA,OAAOhjB,IAAPgjB,CAAY,GAAZA;UACA,OAAO,CAAC42B,OAAO,CAAP,EAAUzwC,CAAX,EAAcywC,OAAO,CAAP,EAAUzwC,CAAxB,EAA2BywC,OAAO,CAAP,EAAU3G,CAArC,EAAwC2G,OAAO,CAAP,EAAU3G,CAAlD,CAAP;QAbuB;MAAA,CAA3B;IAlDoB;EADwB;;AAAA;;AAuElD,MAAM3B,iBAAN,SAAgCD,kBAAhC,CAAmD;EACjDzzC,YAAY2yC,UAAZ,EAAwB;IAEtB,MAAMA,UAAN;IAEA,KAAKxxC,IAAL,CAAUm7C,cAAV,GAA2BrqC,qBAAeO,OAA1C;EAL+C;;AAAA;;AASnD,MAAMmhC,eAAN,SAA8BmH,gBAA9B,CAA+C;EAC7C96C,YAAY2yC,UAAZ,EAAwB;IACtB,MAAMA,UAAN;IAEA,KAAKxxC,IAAL,CAAUm7C,cAAV,GAA2BrqC,qBAAec,KAA1C;EAJ2C;;AAAA;;AAQ/C,MAAM6gC,aAAN,SAA4BkH,gBAA5B,CAA6C;EAC3C96C,YAAY2yC,UAAZ,EAAwB;IACtB,MAAMA,UAAN;IAEA,KAAKxxC,IAAL,CAAUm7C,cAAV,GAA2BrqC,qBAAee,GAA1C;IACA,KAAK7R,IAAL,CAAUgmD,QAAV,GAAqB,EAArB;IAEA,MAAMC,cAAczU,WAAWjkB,IAAXikB,CAAgB/kB,QAAhB+kB,CAAyB,SAAzBA,CAApB;;IACA,IAAI,CAAC3mC,MAAMC,OAAND,CAAco7C,WAAdp7C,CAAL,EAAiC;MAC/B;IARoB;;IAUtB,MAAMf,OAAO0nC,WAAW1nC,IAAxB;;IACA,KAAK,IAAIhI,IAAI,CAAR,EAAWiJ,KAAKk7C,YAAY/kD,MAAjC,EAAyCY,IAAIiJ,EAA7C,EAAiD,EAAEjJ,CAAnD,EAAsD;MAKpD,KAAK9B,IAAL,CAAUgmD,QAAV,CAAmB/kD,IAAnB,CAAwB,EAAxB;;MACA,KAAK,IAAImnB,IAAI,CAAR,EAAW6rB,KAAKgS,YAAYnkD,CAAZ,EAAeZ,MAApC,EAA4CknB,IAAI6rB,EAAhD,EAAoD7rB,KAAK,CAAzD,EAA4D;QAC1D,KAAKpoB,IAAL,CAAUgmD,QAAV,CAAmBlkD,CAAnB,EAAsBb,IAAtB,CAA2B;UACzBmJ,GAAGN,KAAK24B,UAAL34B,CAAgBm8C,YAAYnkD,CAAZ,EAAesmB,CAAf69B,CAAhBn8C,CADsB;UAEzBoqC,GAAGpqC,KAAK24B,UAAL34B,CAAgBm8C,YAAYnkD,CAAZ,EAAesmB,IAAI,CAAnB69B,CAAhBn8C;QAFsB,CAA3B;MAPkD;IAXhC;;IAyBtB,IAAI,CAAC,KAAKgsC,UAAV,EAAsB;MAEpB,MAAM8C,cAAc,KAAKxF,KAAL,GAChBvoC,MAAMq6C,IAANr6C,CAAW,KAAKuoC,KAAhBvoC,EAAuB+Y,GAAvB/Y,CAA2Bub,KAAKA,IAAI,GAApCvb,CADgB,GAEhB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAFJ;MAGA,MAAM4vC,cAAcjJ,WAAWjkB,IAAXikB,CAAgBrpC,GAAhBqpC,CAAoB,IAApBA,CAApB;MAEA,MAAM4T,cAAc,KAAKpP,WAAL,CAAiBgD,KAAjB,IAA0B,CAA9C;MAAA,MACEqM,eAAe,IAAID,WADrB;MAKA,MAAMppB,OAAO,CAAC8pB,QAAD,EAAWA,QAAX,EAAqB,CAACA,QAAtB,EAAgC,CAACA,QAAjC,CAAb;;MACA,WAAWE,QAAX,IAAuB,KAAKhmD,IAAL,CAAUgmD,QAAjC,EAA2C;QACzC,WAAWD,MAAX,IAAqBC,QAArB,EAA+B;UAC7BhqB,KAAK,CAAL,IAAU72B,KAAKyd,GAALzd,CAAS62B,KAAK,CAAL,CAAT72B,EAAkB4gD,OAAO37C,CAAP27C,GAAWV,YAA7BlgD,CAAV62B;UACAA,KAAK,CAAL,IAAU72B,KAAKyd,GAALzd,CAAS62B,KAAK,CAAL,CAAT72B,EAAkB4gD,OAAO7R,CAAP6R,GAAWV,YAA7BlgD,CAAV62B;UACAA,KAAK,CAAL,IAAU72B,KAAKC,GAALD,CAAS62B,KAAK,CAAL,CAAT72B,EAAkB4gD,OAAO37C,CAAP27C,GAAWV,YAA7BlgD,CAAV62B;UACAA,KAAK,CAAL,IAAU72B,KAAKC,GAALD,CAAS62B,KAAK,CAAL,CAAT72B,EAAkB4gD,OAAO7R,CAAP6R,GAAWV,YAA7BlgD,CAAV62B;QALuC;MAbvB;;MAqBpB,IAAI,CAACvX,WAAKmC,SAALnC,CAAe,KAAK5K,SAApB4K,EAA+BuX,IAA/BvX,CAAL,EAA2C;QACzC,KAAK5K,SAAL,GAAiBmiB,IAAjB;MAtBkB;;MAyBpB,KAAKse,qBAAL,CAA2B;QACzBxwC,MAAM0nC,WAAW1nC,IADQ;QAEzBywC,OAAO,GAAG6K,WAAY,IAFG;QAGzBxM,WAHyB;QAIzB6B,WAJyB;QAKzBE,gBAAgB,CAAC12B,MAAD,EAAS42B,MAAT,KAAoB;UAKlC,WAAWqL,OAAX,IAAsB,KAAKlmD,IAAL,CAAUgmD,QAAhC,EAA0C;YACxC,KAAK,IAAIlkD,IAAI,CAAR,EAAWiJ,KAAKm7C,QAAQhlD,MAA7B,EAAqCY,IAAIiJ,EAAzC,EAA6CjJ,GAA7C,EAAkD;cAChDmiB,OAAOhjB,IAAPgjB,CACE,GAAGiiC,QAAQpkD,CAAR,EAAWsI,CAAE,IAAG87C,QAAQpkD,CAAR,EAAWoyC,CAAE,IAAGpyC,MAAM,CAANA,GAAU,GAAVA,GAAgB,GAAnD,EADFmiB;YAFsC;;YAMxCA,OAAOhjB,IAAPgjB,CAAY,GAAZA;UAXgC;;UAalC,OAAO,CAAC42B,OAAO,CAAP,EAAUzwC,CAAX,EAAcywC,OAAO,CAAP,EAAUzwC,CAAxB,EAA2BywC,OAAO,CAAP,EAAU3G,CAArC,EAAwC2G,OAAO,CAAP,EAAU3G,CAAlD,CAAP;QAlBuB;MAAA,CAA3B;IAlDoB;EADmB;;AAAA;;AA4E7C,MAAMxB,mBAAN,SAAkCiH,gBAAlC,CAAmD;EACjD96C,YAAY2yC,UAAZ,EAAwB;IACtB,MAAMA,UAAN;IAEA,KAAKxxC,IAAL,CAAUm7C,cAAV,GAA2BrqC,qBAAeS,SAA1C;IACA,MAAMwiC,aAAc,KAAK/zC,IAAL,CAAU+zC,UAAV,GAAuBD,cACzCtC,WAAWjkB,IAD8B,EAEzC,IAFyC,CAA3C;;IAIA,IAAIwmB,UAAJ,EAAgB;MACd,MAAMjY,YACJ,KAAKga,UAAL,IAAmB,KAAKA,UAAL,CAAgBvoB,IAAhB,CAAqBplB,GAArB,CAAyB,WAAzB,CADrB;;MAGA,IAAI,CAAC,KAAK2tC,UAAN,IAAoB,EAAEha,aAAaA,UAAUjP,GAAViP,CAAc,WAAdA,CAAf,CAAxB,EAAoE;QAClE,IAAI,KAAKga,UAAT,EAAqB;UAKnBlxC,gBAAK,4DAALA;QANgE;;QASlE,MAAMi0C,YAAY,KAAKzF,KAAL,GACdvoC,MAAMq6C,IAANr6C,CAAW,KAAKuoC,KAAhBvoC,EAAuB+Y,GAAvB/Y,CAA2Bub,KAAKA,IAAI,GAApCvb,CADc,GAEd,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAFJ;QAGA,MAAM6vC,YAAYlJ,WAAWjkB,IAAXikB,CAAgBrpC,GAAhBqpC,CAAoB,IAApBA,CAAlB;;QAEA,KAAK8I,qBAAL,CAA2B;UACzBxwC,MAAM0nC,WAAW1nC,IADQ;UAEzB+uC,SAFyB;UAGzB2B,WAAW,UAHc;UAIzBE,SAJyB;UAKzBC,gBAAgB,CAAC12B,MAAD,EAAS42B,MAAT,KAAoB;YAClC52B,OAAOhjB,IAAPgjB,CACE,GAAG42B,OAAO,CAAP,EAAUzwC,CAAE,IAAGywC,OAAO,CAAP,EAAU3G,CAAE,IADhCjwB,EAEE,GAAG42B,OAAO,CAAP,EAAUzwC,CAAE,IAAGywC,OAAO,CAAP,EAAU3G,CAAE,IAFhCjwB,EAGE,GAAG42B,OAAO,CAAP,EAAUzwC,CAAE,IAAGywC,OAAO,CAAP,EAAU3G,CAAE,IAHhCjwB,EAIE,GAAG42B,OAAO,CAAP,EAAUzwC,CAAE,IAAGywC,OAAO,CAAP,EAAU3G,CAAE,IAJhCjwB,EAKE,GALFA;YAOA,OAAO,CAAC42B,OAAO,CAAP,EAAUzwC,CAAX,EAAcywC,OAAO,CAAP,EAAUzwC,CAAxB,EAA2BywC,OAAO,CAAP,EAAU3G,CAArC,EAAwC2G,OAAO,CAAP,EAAU3G,CAAlD,CAAP;UAbuB;QAAA,CAA3B;MAlBY;IAAhB,OAmCO;MACL,KAAKl0C,IAAL,CAAUm6C,QAAV,GAAqB,KAArB;IA5CoB;EADyB;;AAAA;;AAkDnD,MAAMxH,mBAAN,SAAkCgH,gBAAlC,CAAmD;EACjD96C,YAAY2yC,UAAZ,EAAwB;IACtB,MAAMA,UAAN;IAEA,KAAKxxC,IAAL,CAAUm7C,cAAV,GAA2BrqC,qBAAeU,SAA1C;IACA,MAAMuiC,aAAc,KAAK/zC,IAAL,CAAU+zC,UAAV,GAAuBD,cACzCtC,WAAWjkB,IAD8B,EAEzC,IAFyC,CAA3C;;IAIA,IAAIwmB,UAAJ,EAAgB;MACd,IAAI,CAAC,KAAK+B,UAAV,EAAsB;QAEpB,MAAM8C,cAAc,KAAKxF,KAAL,GAChBvoC,MAAMq6C,IAANr6C,CAAW,KAAKuoC,KAAhBvoC,EAAuB+Y,GAAvB/Y,CAA2Bub,KAAKA,IAAI,GAApCvb,CADgB,GAEhB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAFJ;QAGA,MAAM4vC,cAAcjJ,WAAWjkB,IAAXikB,CAAgBrpC,GAAhBqpC,CAAoB,IAApBA,CAApB;;QAEA,KAAK8I,qBAAL,CAA2B;UACzBxwC,MAAM0nC,WAAW1nC,IADQ;UAEzBywC,OAAO,YAFkB;UAGzB3B,WAHyB;UAIzB6B,WAJyB;UAKzBE,gBAAgB,CAAC12B,MAAD,EAAS42B,MAAT,KAAoB;YAClC52B,OAAOhjB,IAAPgjB,CACE,GAAG42B,OAAO,CAAP,EAAUzwC,CAAE,IAAGywC,OAAO,CAAP,EAAU3G,CAAE,IADhCjwB,EAEE,GAAG42B,OAAO,CAAP,EAAUzwC,CAAE,IAAGywC,OAAO,CAAP,EAAU3G,CAAE,IAFhCjwB,EAGE,GAHFA;YAKA,OAAO,CAAC42B,OAAO,CAAP,EAAUzwC,CAAX,EAAcywC,OAAO,CAAP,EAAUzwC,CAAxB,EAA2BywC,OAAO,CAAP,EAAU3G,CAArC,EAAwC2G,OAAO,CAAP,EAAU3G,CAAlD,CAAP;UAXuB;QAAA,CAA3B;MARY;IAAhB,OAuBO;MACL,KAAKl0C,IAAL,CAAUm6C,QAAV,GAAqB,KAArB;IAhCoB;EADyB;;AAAA;;AAsCnD,MAAMvH,kBAAN,SAAiC+G,gBAAjC,CAAkD;EAChD96C,YAAY2yC,UAAZ,EAAwB;IACtB,MAAMA,UAAN;IAEA,KAAKxxC,IAAL,CAAUm7C,cAAV,GAA2BrqC,qBAAeW,QAA1C;IAEA,MAAMsiC,aAAc,KAAK/zC,IAAL,CAAU+zC,UAAV,GAAuBD,cACzCtC,WAAWjkB,IAD8B,EAEzC,IAFyC,CAA3C;;IAIA,IAAIwmB,UAAJ,EAAgB;MACd,IAAI,CAAC,KAAK+B,UAAV,EAAsB;QAEpB,MAAM8C,cAAc,KAAKxF,KAAL,GAChBvoC,MAAMq6C,IAANr6C,CAAW,KAAKuoC,KAAhBvoC,EAAuB+Y,GAAvB/Y,CAA2Bub,KAAKA,IAAI,GAApCvb,CADgB,GAEhB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAFJ;QAGA,MAAM4vC,cAAcjJ,WAAWjkB,IAAXikB,CAAgBrpC,GAAhBqpC,CAAoB,IAApBA,CAApB;;QAEA,KAAK8I,qBAAL,CAA2B;UACzBxwC,MAAM0nC,WAAW1nC,IADQ;UAEzBywC,OAAO,YAFkB;UAGzB3B,WAHyB;UAIzB6B,WAJyB;UAKzBE,gBAAgB,CAAC12B,MAAD,EAAS42B,MAAT,KAAoB;YAClC,MAAMsL,KAAM,QAAO,CAAP,EAAUjS,CAAV2G,GAAcA,OAAO,CAAP,EAAU3G,CAAxB,IAA6B,CAAzC;YACA,IAAI+L,QAAQkG,EAAZ;YACA,IAAI/7C,IAAIywC,OAAO,CAAP,EAAUzwC,CAAlB;YACA,MAAM8pC,IAAI2G,OAAO,CAAP,EAAU3G,CAApB;YACA,MAAMkS,OAAOvL,OAAO,CAAP,EAAUzwC,CAAvB;YACA6Z,OAAOhjB,IAAPgjB,CAAY,GAAG7Z,CAAE,IAAG8pC,IAAI+L,KAAM,IAA9Bh8B;;YACA,GAAG;cACD7Z,KAAK,CAALA;cACA61C,QAAQA,UAAU,CAAVA,GAAckG,EAAdlG,GAAmB,CAA3BA;cACAh8B,OAAOhjB,IAAPgjB,CAAY,GAAG7Z,CAAE,IAAG8pC,IAAI+L,KAAM,IAA9Bh8B;YAHF,SAIS7Z,IAAIg8C,IAJb;;YAKAniC,OAAOhjB,IAAPgjB,CAAY,GAAZA;YACA,OAAO,CAAC42B,OAAO,CAAP,EAAUzwC,CAAX,EAAcg8C,IAAd,EAAoBlS,IAAI,IAAIiS,EAA5B,EAAgCjS,IAAI,IAAIiS,EAAxC,CAAP;UAlBuB;QAAA,CAA3B;MARY;IAAhB,OA8BO;MACL,KAAKnmD,IAAL,CAAUm6C,QAAV,GAAqB,KAArB;IAxCoB;EADwB;;AAAA;;AA8ClD,MAAMtH,mBAAN,SAAkC8G,gBAAlC,CAAmD;EACjD96C,YAAY2yC,UAAZ,EAAwB;IACtB,MAAMA,UAAN;IAEA,KAAKxxC,IAAL,CAAUm7C,cAAV,GAA2BrqC,qBAAeY,SAA1C;IAEA,MAAMqiC,aAAc,KAAK/zC,IAAL,CAAU+zC,UAAV,GAAuBD,cACzCtC,WAAWjkB,IAD8B,EAEzC,IAFyC,CAA3C;;IAIA,IAAIwmB,UAAJ,EAAgB;MACd,IAAI,CAAC,KAAK+B,UAAV,EAAsB;QAEpB,MAAM8C,cAAc,KAAKxF,KAAL,GAChBvoC,MAAMq6C,IAANr6C,CAAW,KAAKuoC,KAAhBvoC,EAAuB+Y,GAAvB/Y,CAA2Bub,KAAKA,IAAI,GAApCvb,CADgB,GAEhB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAFJ;QAGA,MAAM4vC,cAAcjJ,WAAWjkB,IAAXikB,CAAgBrpC,GAAhBqpC,CAAoB,IAApBA,CAApB;;QAEA,KAAK8I,qBAAL,CAA2B;UACzBxwC,MAAM0nC,WAAW1nC,IADQ;UAEzBywC,OAAO,YAFkB;UAGzB3B,WAHyB;UAIzB6B,WAJyB;UAKzBE,gBAAgB,CAAC12B,MAAD,EAAS42B,MAAT,KAAoB;YAClC52B,OAAOhjB,IAAPgjB,CACE,GAAI,QAAO,CAAP,EAAU7Z,CAAVywC,GAAcA,OAAO,CAAP,EAAUzwC,CAAxB,IAA6B,CAAE,GAAnC,GACE,GAAI,QAAO,CAAP,EAAU8pC,CAAV2G,GAAcA,OAAO,CAAP,EAAU3G,CAAxB,IAA6B,CAAE,IAFvCjwB,EAGE,GAAI,QAAO,CAAP,EAAU7Z,CAAVywC,GAAcA,OAAO,CAAP,EAAUzwC,CAAxB,IAA6B,CAAE,GAAnC,GACE,GAAI,QAAO,CAAP,EAAU8pC,CAAV2G,GAAcA,OAAO,CAAP,EAAU3G,CAAxB,IAA6B,CAAE,IAJvCjwB,EAKE,GALFA;YAOA,OAAO,CAAC42B,OAAO,CAAP,EAAUzwC,CAAX,EAAcywC,OAAO,CAAP,EAAUzwC,CAAxB,EAA2BywC,OAAO,CAAP,EAAU3G,CAArC,EAAwC2G,OAAO,CAAP,EAAU3G,CAAlD,CAAP;UAbuB;QAAA,CAA3B;MARY;IAAhB,OAyBO;MACL,KAAKl0C,IAAL,CAAUm6C,QAAV,GAAqB,KAArB;IAnCoB;EADyB;;AAAA;;AAyCnD,MAAMrH,eAAN,SAA8B6G,gBAA9B,CAA+C;EAC7C96C,YAAY2yC,UAAZ,EAAwB;IACtB,MAAMA,UAAN;IAEA,KAAKxxC,IAAL,CAAUm7C,cAAV,GAA2BrqC,qBAAea,KAA1C;EAJ2C;;AAAA;;AAQ/C,MAAMohC,wBAAN,SAAuC4G,gBAAvC,CAAwD;EACtD96C,YAAY2yC,UAAZ,EAAwB;IACtB,MAAMA,UAAN;IAEA,MAAM6U,OAAO,IAAIC,mBAAJ,CAAa9U,WAAWjkB,IAAXikB,CAAgBrpC,GAAhBqpC,CAAoB,IAApBA,CAAb,EAAwCA,WAAW1nC,IAAnD,CAAb;IAEA,KAAK9J,IAAL,CAAUm7C,cAAV,GAA2BrqC,qBAAeiB,cAA1C;IACA,KAAK/R,IAAL,CAAUqmD,IAAV,GAAiBA,KAAKjnB,YAAtB;EAPoD;;AAAA;;;;;;;;;;;;;;ACnyGxD;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,MAAMmnB,0BAAN,SAAyCC,gCAAzC,CAA+D;EAC7D3nD,YAAYmkB,GAAZ,EAAiB;IACf,MAAM,IAAI0X,oBAAJ,CAAiB1X,GAAjB,CAAN;EAF2D;;EAK7Dwc,QAAQ;IACN,MAAMinB,YAAY;MAChBC,IAAI,CADY;MAEhBj3B,MAAM;IAFU,CAAlB;IAIA,MAAMk3B,SAAS;MACb7I,UAAU,CADG;MAEbvZ,UAAU,EAFG;MAGbwb,WAAyB,IAAIzM,iBAAJ,CAAsB,CAAtB;IAHZ,CAAf;;IAMA,IAAI;MACF,OAAO,IAAP,EAAa;QACXmT,UAAUh3B,IAAVg3B,CAAevlD,MAAfulD,GAAwB,CAAxBA;;QAEA,IAAI,CAAC,KAAKphD,IAAL,CAAUohD,SAAV,CAAL,EAA2B;UACzB;QAJS;;QAMX,IAAI,KAAKG,gBAAL,KAA0B,CAA9B,EAAiC;UAC/B;QAPS;;QASX,MAAM;UAAEF,EAAF;UAAMj3B;QAAN,IAAeg3B,SAArB;;QAEA,QAAQC,KAAK,CAAb;UACE,KAAK/tC,UAAIoC,OAAT;YACE,MAAM,CAACwpB,QAAD,EAAWuZ,QAAX,IAAuBruB,IAA7B;;YACA,IAAI8U,oBAAoBvZ,gBAAxB,EAA8B;cAC5B27B,OAAOpiB,QAAPoiB,GAAkBpiB,SAASzlC,IAA3B6nD;YAHJ;;YAKE,IAAI,OAAO7I,QAAP,KAAoB,QAApB,IAAgCA,WAAW,CAA/C,EAAkD;cAChD6I,OAAO7I,QAAP6I,GAAkB7I,QAAlB6I;YANJ;;YAQE;;UACF,KAAKhuC,UAAI0D,eAAT;YACEm3B,uBAAWC,UAAXD,CAAsBI,GAAtBJ,CAA0BG,UAA1BH,CAAqC/jB,IAArC+jB,EAA2C,CAA3CA,EAA8CmT,OAAO5G,SAArDvM,EAAgE,CAAhEA;;YACA;;UACF,KAAK76B,UAAIwD,WAAT;YACEq3B,uBAAWC,UAAXD,CAAsBE,IAAtBF,CAA2BG,UAA3BH,CAAsC/jB,IAAtC+jB,EAA4C,CAA5CA,EAA+CmT,OAAO5G,SAAtDvM,EAAiE,CAAjEA;;YACA;;UACF,KAAK76B,UAAIkD,iBAAT;YACE23B,uBAAWC,UAAXD,CAAsBK,IAAtBL,CAA2BG,UAA3BH,CAAsC/jB,IAAtC+jB,EAA4C,CAA5CA,EAA+CmT,OAAO5G,SAAtDvM,EAAiE,CAAjEA;;YACA;QAlBJ;MAZA;IAAJ,EAiCE,OAAO/wC,MAAP,EAAe;MACfmC,gBAAM,8CAA6CnC,MAAO,IAA1DmC;IA7CI;;IAgDN,OAAO+hD,MAAP;EArD2D;;AAAA;;AA0D/D,SAAS9K,sBAAT,CAAgC74B,GAAhC,EAAqC;EACnC,OAAO,IAAIujC,0BAAJ,CAA+BvjC,GAA/B,EAAoCwc,KAApC,EAAP;AAjFF;;AAqFA,SAASwgB,uBAAT,CAAiC;EAAElC,QAAF;EAAYvZ,QAAZ;EAAsBwb;AAAtB,CAAjC,EAAoE;EAClE,IAAI8G,QAAJ;;EACA,IAAI9G,UAAUxd,KAAVwd,CAAgB35B,KAAKA,MAAM,CAA3B25B,CAAJ,EAAmC;IACjC8G,WAAW,KAAXA;EADF,OAEO;IACLA,WACEh8C,MAAMq6C,IAANr6C,CAAWk1C,SAAXl1C,EACG+Y,GADH/Y,CACOub,KAAM,KAAI,GAAJ,EAAS85B,OAAT,CAAiB,CAAjB,CADbr1C,EAEG1J,IAFH0J,CAEQ,GAFRA,IAEe,KAHjBg8C;EALgE;;EAUlE,OAAQ,IAAG5vB,+BAAcsN,QAAdtN,CAAwB,IAAG6mB,QAAS,OAAM+I,QAA9C,EAAP;AA/FF;;;;;;;;;;;;;ACeA;;AAQA;;AACA;;AACA;;AAYA,SAASC,cAAT,CAAwBC,GAAxB,EAA6BC,IAA7B,EAAmCC,EAAnC,EAAuCC,EAAvC,EAA2CC,EAA3C,EAA+CC,EAA/C,EAAmDC,OAAnD,EAA4D;EAC1D,MAAMC,aAAa,CAAnB;EACAD,UAAUA,YAAY,CAAZA,GAAgB,CAAhBA,GAAoBA,OAA9BA;EACA,MAAMpS,SAASgS,KAAKE,EAApB;EACA,MAAMjS,SAASgS,KAAKE,EAApB;EACA,IAAIG,WAAW,CAAf;EAAA,IACEC,QADF;EAEA,MAAMC,UAAU,IAAIC,WAAJ,CAAgBP,EAAhB,CAAhB;EACA,MAAMQ,aAAaV,KAAKK,UAAxB;;EAEA,KAAK,IAAIxlD,IAAI,CAAb,EAAgBA,IAAIqlD,EAApB,EAAwBrlD,GAAxB,EAA6B;IAC3B2lD,QAAQ3lD,CAAR,IAAaqD,KAAKosB,KAALpsB,CAAWrD,IAAImzC,MAAf9vC,IAAyBmiD,UAAtCG;EAXwD;;EAa1D,KAAK,IAAI3lD,IAAI,CAAb,EAAgBA,IAAIslD,EAApB,EAAwBtlD,GAAxB,EAA6B;IAC3B,MAAM8lD,KAAKziD,KAAKosB,KAALpsB,CAAWrD,IAAIozC,MAAf/vC,IAAyBwiD,UAApC;;IACA,KAAK,IAAIv/B,IAAI,CAAb,EAAgBA,IAAI++B,EAApB,EAAwB/+B,GAAxB,EAA6B;MAC3Bo/B,WAAWI,KAAKH,QAAQr/B,CAAR,CAAhBo/B;MACAR,KAAKO,UAAL,IAAmBR,IAAIS,UAAJ,CAAnBR;MACAA,KAAKO,UAAL,IAAmBR,IAAIS,UAAJ,CAAnBR;MACAA,KAAKO,UAAL,IAAmBR,IAAIS,UAAJ,CAAnBR;MACAO,YAAYF,OAAZE;IAPyB;EAb6B;AArC5D;;AA8DA,MAAM/T,UAAN,CAAiB;EACf30C,YAAYC,IAAZ,EAAkB+oD,QAAlB,EAA4B;IAC1B,IAAI,KAAKhpD,WAAL,KAAqB20C,UAAzB,EAAqC;MACnClzB,uBAAY,+BAAZA;IAFwB;;IAI1B,KAAKxhB,IAAL,GAAYA,IAAZ;IACA,KAAK+oD,QAAL,GAAgBA,QAAhB;EANa;;EAcfC,OAAOf,GAAP,EAAYgB,SAAZ,EAAuB;IACrB,MAAMnU,MAAM,IAAIN,iBAAJ,CAAsB,CAAtB,CAAZ;IACA,KAAKK,UAAL,CAAgBoT,GAAhB,EAAqBgB,SAArB,EAAgCnU,GAAhC,EAAqC,CAArC;IACA,OAAOA,GAAP;EAjBa;;EAwBfD,WAAWoT,GAAX,EAAgBgB,SAAhB,EAA2Bf,IAA3B,EAAiCgB,UAAjC,EAA6C;IAC3C1nC,uBAAY,uCAAZA;EAzBa;;EAqCf2nC,aAAalB,GAAb,EAAkBgB,SAAlB,EAA6BG,KAA7B,EAAoClB,IAApC,EAA0CgB,UAA1C,EAAsDG,IAAtD,EAA4Dd,OAA5D,EAAqE;IACnE/mC,uBAAY,yCAAZA;EAtCa;;EA8Cf8nC,gBAAgBC,WAAhB,EAA6BhB,OAA7B,EAAsC;IACpC/mC,uBAAY,4CAAZA;EA/Ca;;EAqDfgoC,cAAcH,IAAd,EAAoB;IAClB,OAAO,KAAP;EAtDa;;EA4DfI,gBAAgBC,SAAhB,EAA2BC,GAA3B,EAAgC;IAC9B,OAAOjV,WAAW+U,eAAX/U,CAA2BgV,SAA3BhV,EAAsC,KAAKqU,QAA3CrU,CAAP;EA7Da;;EAqEfkV,QACE1B,IADF,EAEE2B,aAFF,EAGEC,cAHF,EAIE5P,KAJF,EAKE+F,MALF,EAME8J,YANF,EAOEJ,GAPF,EAQEK,KARF,EASEzB,OATF,EAUE;IAUA,MAAMa,QAAQS,gBAAgBC,cAA9B;IACA,IAAIG,SAAS,IAAb;IACA,MAAMC,qBAAqB,KAAKP,GAAhC;IACA,MAAMQ,gBAAgBL,mBAAmB7J,MAAnB6J,IAA6BD,kBAAkB3P,KAArE;;IAEA,IAAI,KAAKsP,aAAL,CAAmBG,GAAnB,CAAJ,EAA6B;MAC3BM,SAASD,KAATC;IADF,OAEO,IACL,KAAKlB,QAAL,KAAkB,CAAlB,IACAK,QAAQc,kBADR,IAEA,KAAKlqD,IAAL,KAAc,YAFd,IAGA,KAAKA,IAAL,KAAc,WAJT,EAKL;MAUA,MAAMoqD,YACJT,OAAO,CAAPA,GACI,IAAIvoD,UAAJ,CAAe8oD,kBAAf,CADJP,GAEI,IAAIf,WAAJ,CAAgBsB,kBAAhB,CAHN;;MAIA,KAAK,IAAIlnD,IAAI,CAAb,EAAgBA,IAAIknD,kBAApB,EAAwClnD,GAAxC,EAA6C;QAC3ConD,UAAUpnD,CAAV,IAAeA,CAAfonD;MAfF;;MAiBA,MAAMC,WAAW,IAAI7V,iBAAJ,CAAsB0V,qBAAqB,CAA3C,CAAjB;MACA,KAAKf,YAAL,CACEiB,SADF,EAEE,CAFF,EAGEF,kBAHF,EAIEG,QAJF,EAKE,CALF,EAMEV,GANF,EAOkB,CAPlB;;MAUA,IAAI,CAACQ,aAAL,EAAoB;QAElB,IAAIG,UAAU,CAAd;;QACA,KAAK,IAAItnD,IAAI,CAAb,EAAgBA,IAAIomD,KAApB,EAA2B,EAAEpmD,CAA7B,EAAgC;UAC9B,MAAM0J,MAAMs9C,MAAMhnD,CAAN,IAAW,CAAvB;UACAklD,KAAKoC,SAAL,IAAkBD,SAAS39C,GAAT,CAAlBw7C;UACAA,KAAKoC,SAAL,IAAkBD,SAAS39C,MAAM,CAAf,CAAlBw7C;UACAA,KAAKoC,SAAL,IAAkBD,SAAS39C,MAAM,CAAf,CAAlBw7C;UACAoC,WAAW/B,OAAX+B;QARgB;MAApB,OAUO;QACLL,SAAS,IAAI7oD,UAAJ,CAAegoD,QAAQ,CAAvB,CAATa;QACA,IAAIM,SAAS,CAAb;;QACA,KAAK,IAAIvnD,IAAI,CAAb,EAAgBA,IAAIomD,KAApB,EAA2B,EAAEpmD,CAA7B,EAAgC;UAC9B,MAAM0J,MAAMs9C,MAAMhnD,CAAN,IAAW,CAAvB;UACAinD,OAAOM,QAAP,IAAmBF,SAAS39C,GAAT,CAAnBu9C;UACAA,OAAOM,QAAP,IAAmBF,SAAS39C,MAAM,CAAf,CAAnBu9C;UACAA,OAAOM,QAAP,IAAmBF,SAAS39C,MAAM,CAAf,CAAnBu9C;QAPG;MAtCP;IALK,OAqDA;MACL,IAAI,CAACE,aAAL,EAAoB;QAElB,KAAKhB,YAAL,CACEa,KADF,EAEE,CAFF,EAGE9P,QAAQ6P,YAHV,EAIE7B,IAJF,EAKE,CALF,EAMEyB,GANF,EAOEpB,OAPF;MAFF,OAWO;QACL0B,SAAS,IAAIzV,iBAAJ,CAAsB4U,QAAQ,CAA9B,CAATa;QACA,KAAKd,YAAL,CAAkBa,KAAlB,EAAyB,CAAzB,EAA4BZ,KAA5B,EAAmCa,MAAnC,EAA2C,CAA3C,EAA8CN,GAA9C,EAAmE,CAAnE;MAdG;IAtEP;;IAwFA,IAAIM,MAAJ,EAAY;MACV,IAAIE,aAAJ,EAAmB;QACjBnC,eACEiC,MADF,EAEE/B,IAFF,EAGE2B,aAHF,EAIEC,cAJF,EAKE5P,KALF,EAME+F,MANF,EAOEsI,OAPF;MADF,OAUO;QACL,IAAI+B,UAAU,CAAd;QAAA,IACEC,SAAS,CADX;;QAEA,KAAK,IAAIvnD,IAAI,CAAR,EAAWiJ,KAAKiuC,QAAQ6P,YAA7B,EAA2C/mD,IAAIiJ,EAA/C,EAAmDjJ,GAAnD,EAAwD;UACtDklD,KAAKoC,SAAL,IAAkBL,OAAOM,QAAP,CAAlBrC;UACAA,KAAKoC,SAAL,IAAkBL,OAAOM,QAAP,CAAlBrC;UACAA,KAAKoC,SAAL,IAAkBL,OAAOM,QAAP,CAAlBrC;UACAoC,WAAW/B,OAAX+B;QAPG;MAXG;IAxFZ;EA/Ea;;EAoMf,IAAIE,kBAAJ,GAAyB;IACvB,OAAO/nC,kBAAO,IAAPA,EAAa,oBAAbA,EAAmC,IAAnCA,CAAP;EArMa;;EA2Mf,OAAOgoC,MAAP,CAAc18C,QAAd,EAAwB/C,IAAxB,EAA8B0/C,oBAA9B,EAAoDC,gBAApD,EAAsE;IACpE,IAAI,CAACD,oBAAL,EAA2B;MACzB,MAAM,IAAIhqD,KAAJ,CACJ,+DADI,CAAN;IAFkE;;IAMpE,IAAI,CAACiqD,gBAAL,EAAuB;MACrB,MAAM,IAAIjqD,KAAJ,CACJ,2DADI,CAAN;IAPkE;;IAWpE,IAAIkqD,MAAJ,EAAYC,KAAZ;;IACA,IAAI98C,oBAAoB3E,eAAxB,EAA6B;MAC3ByhD,QAAQ98C,QAAR88C;MAGA98C,WAAW/C,KAAKwiB,KAALxiB,CAAW+C,QAAX/C,CAAX+C;IAhBkE;;IAkBpE,IAAIA,oBAAoBme,gBAAxB,EAA8B;MAC5B0+B,SAAS78C,SAAS/N,IAAlB4qD;IAnBkE;;IAqBpE,IAAIA,UAAUC,KAAd,EAAqB;MACnBH,qBAAqBjmC,GAArBimC,CAAyBE,MAAzBF,EAAiCG,KAAjCH,EAAwCC,gBAAxCD;IAtBkE;EA3MvD;;EAqOf,OAAOI,SAAP,CAAiB/8C,QAAjB,EAA2B/C,IAA3B,EAAiC0/C,oBAAjC,EAAuD;IACrD,IAAI,CAACA,oBAAL,EAA2B;MACzB,MAAM,IAAIhqD,KAAJ,CACJ,kEADI,CAAN;IAFmD;;IAMrD,IAAIqN,oBAAoB3E,eAAxB,EAA6B;MAC3B,MAAM2hD,kBAAkBL,qBAAqBM,QAArBN,CAA8B38C,QAA9B28C,CAAxB;;MACA,IAAIK,eAAJ,EAAqB;QACnB,OAAOA,eAAP;MAHyB;;MAM3B,IAAI;QACFh9C,WAAW/C,KAAKwiB,KAALxiB,CAAW+C,QAAX/C,CAAX+C;MADF,EAEE,OAAOrJ,EAAP,EAAW;QACX,IAAIA,cAAc8sB,gCAAlB,EAAwC;UACtC,MAAM9sB,EAAN;QAFS;MARc;IANwB;;IAqBrD,IAAIqJ,oBAAoBme,gBAAxB,EAA8B;MAC5B,MAAM6+B,kBAAkBL,qBAAqBO,SAArBP,CAA+B38C,SAAS/N,IAAxC0qD,CAAxB;;MACA,IAAIK,eAAJ,EAAqB;QACnB,OAAOA,eAAP;MAH0B;IArBuB;;IA2BrD,OAAO,IAAP;EAhQa;;EAmQf,aAAaG,UAAb,CAAwB;IACtBC,EADsB;IAEtBngD,IAFsB;IAGtBgyB,YAAY,IAHU;IAItBouB,kBAJsB;IAKtBV;EALsB,CAAxB,EAMG;IAWD,MAAMC,mBAAmB,KAAKU,MAAL,CACvBF,EADuB,EAEvBngD,IAFuB,EAGvBgyB,SAHuB,EAIvBouB,kBAJuB,CAAzB;;IAQA,KAAKX,MAAL,CAAYU,EAAZ,EAAgBngD,IAAhB,EAAsB0/C,oBAAtB,EAA4CC,gBAA5C;;IAEA,OAAOA,gBAAP;EA9Ra;;EAiSf,OAAOjqB,KAAP,CAAa;IACXyqB,EADW;IAEXngD,IAFW;IAGXgyB,YAAY,IAHD;IAIXouB,kBAJW;IAKXV;EALW,CAAb,EAMG;IACD,MAAMY,mBAAmB,KAAKR,SAAL,CAAeK,EAAf,EAAmBngD,IAAnB,EAAyB0/C,oBAAzB,CAAzB;;IACA,IAAIY,gBAAJ,EAAsB;MACpB,OAAOA,gBAAP;IAHD;;IAKD,MAAMX,mBAAmB,KAAKU,MAAL,CACvBF,EADuB,EAEvBngD,IAFuB,EAGvBgyB,SAHuB,EAIvBouB,kBAJuB,CAAzB;;IAQA,KAAKX,MAAL,CAAYU,EAAZ,EAAgBngD,IAAhB,EAAsB0/C,oBAAtB,EAA4CC,gBAA5C;;IAEA,OAAOA,gBAAP;EAtTa;;EA4Tf,OAAOU,MAAP,CAAcF,EAAd,EAAkBngD,IAAlB,EAAwBgyB,YAAY,IAApC,EAA0CouB,kBAA1C,EAA8D;IAC5DD,KAAKngD,KAAK24B,UAAL34B,CAAgBmgD,EAAhBngD,CAALmgD;;IACA,IAAIA,cAAcj/B,gBAAlB,EAAwB;MACtB,QAAQi/B,GAAGnrD,IAAX;QACE,KAAK,GAAL;QACA,KAAK,YAAL;UACE,OAAO,KAAK20C,UAAL,CAAgBC,IAAvB;;QACF,KAAK,KAAL;QACA,KAAK,WAAL;UACE,OAAO,KAAKD,UAAL,CAAgBG,GAAvB;;QACF,KAAK,MAAL;QACA,KAAK,YAAL;UACE,OAAO,KAAKH,UAAL,CAAgBI,IAAvB;;QACF,KAAK,SAAL;UACE,OAAO,IAAIwW,SAAJ,CAA6B,IAA7B,CAAP;;QACF;UACE,IAAIvuB,qBAAqBpxB,gBAAzB,EAA+B;YAC7B,MAAM4/C,cAAcxuB,UAAU3zB,GAAV2zB,CAAc,YAAdA,CAApB;;YACA,IAAIwuB,uBAAuB5/C,gBAA3B,EAAiC;cAC/B,MAAM6/C,cAAcD,YAAYniD,GAAZmiD,CAAgBL,GAAGnrD,IAAnBwrD,CAApB;;cACA,IAAIC,WAAJ,EAAiB;gBACf,IAAIA,uBAAuBv/B,gBAA3B,EAAiC;kBAC/B,OAAO,KAAKm/B,MAAL,CACLI,WADK,EAELzgD,IAFK,EAGLgyB,SAHK,EAILouB,kBAJK,CAAP;gBAFa;;gBASfD,KAAKM,WAALN;gBACA;cAZ6B;YAFJ;UADjC;;UAmBE,MAAM,IAAI9nC,iBAAJ,CAAiB,4BAA2B8nC,GAAGnrD,IAA/B,EAAhB,CAAN;MA/BJ;IAH0D;;IAqC5D,IAAI+L,MAAMC,OAAND,CAAco/C,EAAdp/C,CAAJ,EAAuB;MACrB,MAAM2/C,OAAO1gD,KAAK24B,UAAL34B,CAAgBmgD,GAAG,CAAH,CAAhBngD,EAAuBhL,IAApC;MACA,IAAIq2C,MAAJ,EAAY0S,QAAZ,EAAsB4C,MAAtB,EAA8BC,UAA9B,EAA0CC,UAA1C,EAAsDC,KAAtD;;MAEA,QAAQJ,IAAR;QACE,KAAK,GAAL;QACA,KAAK,YAAL;UACE,OAAO,KAAK/W,UAAL,CAAgBC,IAAvB;;QACF,KAAK,KAAL;QACA,KAAK,WAAL;UACE,OAAO,KAAKD,UAAL,CAAgBG,GAAvB;;QACF,KAAK,MAAL;QACA,KAAK,YAAL;UACE,OAAO,KAAKH,UAAL,CAAgBI,IAAvB;;QACF,KAAK,SAAL;UACEsB,SAASrrC,KAAK24B,UAAL34B,CAAgBmgD,GAAG,CAAH,CAAhBngD,CAATqrC;UACAuV,aAAavV,OAAO1oB,QAAP0oB,CAAgB,YAAhBA,CAAbuV;UACAC,aAAaxV,OAAO1oB,QAAP0oB,CAAgB,YAAhBA,CAAbwV;UACAC,QAAQzV,OAAOhtC,GAAPgtC,CAAW,OAAXA,CAARyV;UACA,OAAO,IAAIC,SAAJ,CAAcH,UAAd,EAA0BC,UAA1B,EAAsCC,KAAtC,CAAP;;QACF,KAAK,QAAL;UACEzV,SAASrrC,KAAK24B,UAAL34B,CAAgBmgD,GAAG,CAAH,CAAhBngD,CAATqrC;UACAuV,aAAavV,OAAO1oB,QAAP0oB,CAAgB,YAAhBA,CAAbuV;UACAC,aAAaxV,OAAO1oB,QAAP0oB,CAAgB,YAAhBA,CAAbwV;UACAC,QAAQzV,OAAO1oB,QAAP0oB,CAAgB,OAAhBA,CAARyV;UACA,MAAM5V,SAASG,OAAO1oB,QAAP0oB,CAAgB,QAAhBA,CAAf;UACA,OAAO,IAAI2V,QAAJ,CAAaJ,UAAb,EAAyBC,UAAzB,EAAqCC,KAArC,EAA4C5V,MAA5C,CAAP;;QACF,KAAK,UAAL;UACE,MAAM5tC,SAAS0C,KAAK24B,UAAL34B,CAAgBmgD,GAAG,CAAH,CAAhBngD,CAAf;UACA,MAAMyjB,OAAOnmB,OAAOmmB,IAApB;UACAs6B,WAAWt6B,KAAKplB,GAALolB,CAAS,GAATA,CAAXs6B;UACA,MAAMkD,MAAMx9B,KAAKplB,GAALolB,CAAS,WAATA,CAAZ;;UACA,IAAIw9B,GAAJ,EAAS;YACP,MAAMC,QAAQ,KAAKb,MAAL,CAAYY,GAAZ,EAAiBjhD,IAAjB,EAAuBgyB,SAAvB,EAAkCouB,kBAAlC,CAAd;;YAGA,IAAIc,MAAMnD,QAANmD,KAAmBnD,QAAvB,EAAiC;cAC/B,OAAOmD,KAAP;YALK;;YAOPpmD,gBAAK,4DAALA;UAZJ;;UAcE,IAAIijD,aAAa,CAAjB,EAAoB;YAClB,OAAO,KAAKpU,UAAL,CAAgBC,IAAvB;UADF,OAEO,IAAImU,aAAa,CAAjB,EAAoB;YACzB,OAAO,KAAKpU,UAAL,CAAgBG,GAAvB;UADK,OAEA,IAAIiU,aAAa,CAAjB,EAAoB;YACzB,OAAO,KAAKpU,UAAL,CAAgBI,IAAvB;UAnBJ;;UAqBE;;QACF,KAAK,SAAL;UACE4W,SAASR,GAAG,CAAH,KAAS,IAAlBQ;;UACA,IAAIA,MAAJ,EAAY;YACVA,SAAS,KAAKN,MAAL,CAAYM,MAAZ,EAAoB3gD,IAApB,EAA0BgyB,SAA1B,EAAqCouB,kBAArC,CAATO;UAHJ;;UAKE,OAAO,IAAIJ,SAAJ,CAAcI,MAAd,CAAP;;QACF,KAAK,GAAL;QACA,KAAK,SAAL;UACEA,SAAS,KAAKN,MAAL,CAAYF,GAAG,CAAH,CAAZ,EAAmBngD,IAAnB,EAAyBgyB,SAAzB,EAAoCouB,kBAApC,CAATO;UACA,MAAMQ,QAAQnhD,KAAK24B,UAAL34B,CAAgBmgD,GAAG,CAAH,CAAhBngD,IAAyB,CAAvC;UACA,MAAM+qB,SAAS/qB,KAAK24B,UAAL34B,CAAgBmgD,GAAG,CAAH,CAAhBngD,CAAf;UACA,OAAO,IAAIohD,SAAJ,CAAcT,MAAd,EAAsBQ,KAAtB,EAA6Bp2B,MAA7B,CAAP;;QACF,KAAK,YAAL;QACA,KAAK,SAAL;UACE,MAAM/1B,OAAOgL,KAAK24B,UAAL34B,CAAgBmgD,GAAG,CAAH,CAAhBngD,CAAb;UACA+9C,WAAWh9C,MAAMC,OAAND,CAAc/L,IAAd+L,IAAsB/L,KAAKoC,MAA3B2J,GAAoC,CAA/Cg9C;UACA4C,SAAS,KAAKN,MAAL,CAAYF,GAAG,CAAH,CAAZ,EAAmBngD,IAAnB,EAAyBgyB,SAAzB,EAAoCouB,kBAApC,CAATO;UACA,MAAMU,SAASjB,mBAAmB/+C,MAAnB++C,CAA0BD,GAAG,CAAH,CAA1BC,CAAf;UACA,OAAO,IAAIkB,WAAJ,CAAgBvD,QAAhB,EAA0B4C,MAA1B,EAAkCU,MAAlC,CAAP;;QACF,KAAK,KAAL;UACEhW,SAASrrC,KAAK24B,UAAL34B,CAAgBmgD,GAAG,CAAH,CAAhBngD,CAATqrC;UACAuV,aAAavV,OAAO1oB,QAAP0oB,CAAgB,YAAhBA,CAAbuV;UACAC,aAAaxV,OAAO1oB,QAAP0oB,CAAgB,YAAhBA,CAAbwV;UACA,MAAM12B,QAAQkhB,OAAO1oB,QAAP0oB,CAAgB,OAAhBA,CAAd;UACA,OAAO,IAAIkW,KAAJ,CAAUX,UAAV,EAAsBC,UAAtB,EAAkC12B,KAAlC,CAAP;;QACF;UACE,MAAM,IAAI9R,iBAAJ,CAAiB,oCAAmCqoC,IAApC,EAAhB,CAAN;MAvEJ;IAzC0D;;IAmH5D,MAAM,IAAIroC,iBAAJ,CAAiB,mCAAkC8nC,EAAnC,EAAhB,CAAN;EA/aa;;EA2bf,OAAO1B,eAAP,CAAuB3/B,MAAvB,EAA+Bi/B,QAA/B,EAAyC;IACvC,IAAI,CAACh9C,MAAMC,OAAND,CAAc+d,MAAd/d,CAAL,EAA4B;MAC1B,OAAO,IAAP;IAFqC;;IAIvC,IAAIg9C,WAAW,CAAXA,KAAiBj/B,OAAO1nB,MAA5B,EAAoC;MAClC0D,gBAAK,0CAALA;MACA,OAAO,IAAP;IANqC;;IAQvC,KAAK,IAAI9C,IAAI,CAAR,EAAWiJ,KAAK6d,OAAO1nB,MAA5B,EAAoCY,IAAIiJ,EAAxC,EAA4CjJ,KAAK,CAAjD,EAAoD;MAClD,IAAI8mB,OAAO9mB,CAAP,MAAc,CAAd8mB,IAAmBA,OAAO9mB,IAAI,CAAX,MAAkB,CAAzC,EAA4C;QAC1C,OAAO,KAAP;MAFgD;IARb;;IAavC,OAAO,IAAP;EAxca;;EA2cf,WAAW2xC,UAAX,GAAwB;IACtB,OAAOlyB,kBAAO,IAAPA,EAAa,YAAbA,EAA2B;MAChC,IAAImyB,IAAJ,GAAW;QACT,OAAOnyB,kBAAO,IAAPA,EAAa,MAAbA,EAAqB,IAAI+pC,YAAJ,EAArB/pC,CAAP;MAF8B;;MAIhC,IAAIqyB,GAAJ,GAAU;QACR,OAAOryB,kBAAO,IAAPA,EAAa,KAAbA,EAAoB,IAAIgqC,WAAJ,EAApBhqC,CAAP;MAL8B;;MAOhC,IAAIsyB,IAAJ,GAAW;QACT,OAAOtyB,kBAAO,IAAPA,EAAa,MAAbA,EAAqB,IAAIiqC,YAAJ,EAArBjqC,CAAP;MAR8B;;IAAA,CAA3BA,CAAP;EA5ca;;AAAA;;;;AAkejB,MAAM6pC,WAAN,SAA0B5X,UAA1B,CAAqC;EACnC30C,YAAYgpD,QAAZ,EAAsB4D,IAAtB,EAA4BN,MAA5B,EAAoC;IAClC,MAAM,WAAN,EAAmBtD,QAAnB;IACA,KAAK4D,IAAL,GAAYA,IAAZ;IACA,KAAKN,MAAL,GAAcA,MAAd;IACA,KAAKO,MAAL,GAAc,IAAIC,YAAJ,CAAiBF,KAAK5D,QAAtB,CAAd;EALiC;;EAQnClU,WAAWoT,GAAX,EAAgBgB,SAAhB,EAA2Bf,IAA3B,EAAiCgB,UAAjC,EAA6C;IAU3C,MAAM0D,SAAS,KAAKA,MAApB;IACA,KAAKP,MAAL,CAAYpE,GAAZ,EAAiBgB,SAAjB,EAA4B2D,MAA5B,EAAoC,CAApC;IACA,KAAKD,IAAL,CAAU9X,UAAV,CAAqB+X,MAArB,EAA6B,CAA7B,EAAgC1E,IAAhC,EAAsCgB,UAAtC;EApBiC;;EAuBnCC,aAAalB,GAAb,EAAkBgB,SAAlB,EAA6BG,KAA7B,EAAoClB,IAApC,EAA0CgB,UAA1C,EAAsDG,IAAtD,EAA4Dd,OAA5D,EAAqE;IAUnE,MAAM8D,SAAS,KAAKA,MAApB;IACA,MAAMM,OAAO,KAAKA,IAAlB;IACA,MAAM7K,QAAQ,KAAM,MAAKuH,IAAL,IAAa,CAAnB,CAAd;IACA,MAAMyD,eAAeH,KAAK5D,QAA1B;IACA,MAAMyB,qBAAqBmC,KAAKnC,kBAAhC;IACA,MAAMhB,gBACH,MAAKA,aAALmD,CAAmB,CAAnBA,KAAyB,CAACnC,kBAA1B,KAAiDjC,YAAY,CADhE;IAEA,IAAIjkC,MAAMklC,gBAAgBN,UAAhB,GAA6B,CAAvC;IACA,MAAM6D,UAAUvD,gBACZtB,IADY,GAEZ,IAAI1T,iBAAJ,CAAsBsY,eAAe1D,KAArC,CAFJ;IAGA,MAAML,WAAW,KAAKA,QAAtB;IAEA,MAAMiE,SAAS,IAAIH,YAAJ,CAAiB9D,QAAjB,CAAf;IACA,MAAMkE,SAAS,IAAIJ,YAAJ,CAAiBC,YAAjB,CAAf;IACA,IAAI9pD,CAAJ,EAAOsmB,CAAP;;IAEA,KAAKtmB,IAAI,CAAT,EAAYA,IAAIomD,KAAhB,EAAuBpmD,GAAvB,EAA4B;MAC1B,KAAKsmB,IAAI,CAAT,EAAYA,IAAIy/B,QAAhB,EAA0Bz/B,GAA1B,EAA+B;QAC7B0jC,OAAO1jC,CAAP,IAAY2+B,IAAIgB,WAAJ,IAAmBnH,KAA/BkL;MAFwB;;MAI1BX,OAAOW,MAAP,EAAe,CAAf,EAAkBC,MAAlB,EAA0B,CAA1B;;MACA,IAAIzC,kBAAJ,EAAwB;QACtB,KAAKlhC,IAAI,CAAT,EAAYA,IAAIwjC,YAAhB,EAA8BxjC,GAA9B,EAAmC;UACjCyjC,QAAQzoC,KAAR,IAAiB2oC,OAAO3jC,CAAP,IAAY,GAA7ByjC;QAFoB;MAAxB,OAIO;QACLJ,KAAK9X,UAAL8X,CAAgBM,MAAhBN,EAAwB,CAAxBA,EAA2BI,OAA3BJ,EAAoCroC,GAApCqoC;QACAroC,OAAOwoC,YAAPxoC;MAXwB;IA3BuC;;IA0CnE,IAAI,CAACklC,aAAL,EAAoB;MAClBmD,KAAKxD,YAALwD,CAAkBI,OAAlBJ,EAA2B,CAA3BA,EAA8BvD,KAA9BuD,EAAqCzE,IAArCyE,EAA2CzD,UAA3CyD,EAAuD,CAAvDA,EAA0DpE,OAA1DoE;IA3CiE;EAvBlC;;EAsEnCrD,gBAAgBC,WAAhB,EAA6BhB,OAA7B,EAAsC;IACpC,OAAO,KAAKoE,IAAL,CAAUrD,eAAV,CACJC,cAAc,KAAKoD,IAAL,CAAU5D,QAAxBQ,GAAoC,KAAKR,QADrC,EAELR,OAFK,CAAP;EAvEiC;;AAAA;;AA8ErC,MAAMgD,SAAN,SAAwB7W,UAAxB,CAAmC;EACjC30C,YAAY4rD,MAAZ,EAAoB;IAClB,MAAM,SAAN,EAAiB,IAAjB;IACA,KAAKgB,IAAL,GAAYhB,MAAZ;EAH+B;;EAMjClC,gBAAgBC,SAAhB,EAA2BC,GAA3B,EAAgC;IAC9BnoC,uBAAY,2CAAZA;EAP+B;;AAAA;;AAcnC,MAAM4qC,SAAN,SAAwB1X,UAAxB,CAAmC;EACjC30C,YAAY4sD,IAAZ,EAAkBO,OAAlB,EAA2Bn3B,MAA3B,EAAmC;IACjC,MAAM,SAAN,EAAiB,CAAjB;IACA,KAAK42B,IAAL,GAAYA,IAAZ;IACA,KAAKO,OAAL,GAAeA,OAAf;IAEA,MAAM9qD,SAASuqD,KAAK5D,QAAL4D,GAAgBO,OAA/B;IACA,KAAKn3B,MAAL,GAAc,IAAI30B,UAAJ,CAAegB,MAAf,CAAd;;IAEA,IAAI2zB,kBAAkB4C,uBAAtB,EAAkC;MAChC,MAAMpwB,QAAQwtB,OAAO5C,QAAP4C,CAAgB3zB,MAAhB2zB,CAAd;MACA,KAAKA,MAAL,CAAYtR,GAAZ,CAAgBlc,KAAhB;IAFF,OAGO,IAAI,OAAOwtB,MAAP,KAAkB,QAAtB,EAAgC;MACrC,KAAK,IAAI/yB,IAAI,CAAb,EAAgBA,IAAIZ,MAApB,EAA4B,EAAEY,CAA9B,EAAiC;QAC/B,KAAK+yB,MAAL,CAAY/yB,CAAZ,IAAiB+yB,OAAO5R,UAAP4R,CAAkB/yB,CAAlB+yB,IAAuB,IAAxC;MAFmC;IAAhC,OAIA;MACL,MAAM,IAAI1S,iBAAJ,CAAiB,0CAAyC0S,MAA1C,EAAhB,CAAN;IAhB+B;EADF;;EAqBjC8e,WAAWoT,GAAX,EAAgBgB,SAAhB,EAA2Bf,IAA3B,EAAiCgB,UAAjC,EAA6C;IAU3C,MAAMH,WAAW,KAAK4D,IAAL,CAAU5D,QAA3B;IACA,MAAMt7C,QAAQw6C,IAAIgB,SAAJ,IAAiBF,QAA/B;IACA,KAAK4D,IAAL,CAAUxD,YAAV,CAAuB,KAAKpzB,MAA5B,EAAoCtoB,KAApC,EAA2C,CAA3C,EAA8Cy6C,IAA9C,EAAoDgB,UAApD,EAAgE,CAAhE,EAAmE,CAAnE;EAjC+B;;EAoCjCC,aAAalB,GAAb,EAAkBgB,SAAlB,EAA6BG,KAA7B,EAAoClB,IAApC,EAA0CgB,UAA1C,EAAsDG,IAAtD,EAA4Dd,OAA5D,EAAqE;IAUnE,MAAMoE,OAAO,KAAKA,IAAlB;IACA,MAAM5D,WAAW4D,KAAK5D,QAAtB;IACA,MAAMoE,cAAcR,KAAKrD,eAALqD,CAAqB5D,QAArB4D,EAA+BpE,OAA/BoE,CAApB;IACA,MAAM52B,SAAS,KAAKA,MAApB;;IAEA,KAAK,IAAI/yB,IAAI,CAAb,EAAgBA,IAAIomD,KAApB,EAA2B,EAAEpmD,CAA7B,EAAgC;MAC9B,MAAMoqD,YAAYnF,IAAIgB,WAAJ,IAAmBF,QAArC;MACA4D,KAAKxD,YAALwD,CAAkB52B,MAAlB42B,EAA0BS,SAA1BT,EAAqC,CAArCA,EAAwCzE,IAAxCyE,EAA8CzD,UAA9CyD,EAA0D,CAA1DA,EAA6DpE,OAA7DoE;MACAzD,cAAciE,WAAdjE;IAlBiE;EApCpC;;EA0DjCI,gBAAgBC,WAAhB,EAA6BhB,OAA7B,EAAsC;IACpC,OAAO,KAAKoE,IAAL,CAAUrD,eAAV,CAA0BC,cAAc,KAAKoD,IAAL,CAAU5D,QAAlD,EAA4DR,OAA5D,CAAP;EA3D+B;;EA8DjCkB,gBAAgBC,SAAhB,EAA2BC,GAA3B,EAAgC;IAC9B,IAAI,CAAC59C,MAAMC,OAAND,CAAc29C,SAAd39C,CAAL,EAA+B;MAC7B,OAAO,IAAP;IAF4B;;IAI9B,IAAI29C,UAAUtnD,MAAVsnD,KAAqB,CAAzB,EAA4B;MAC1B5jD,gBAAK,kCAALA;MACA,OAAO,IAAP;IAN4B;;IAQ9B,IAAI,CAACqb,OAAOC,SAAPD,CAAiBwoC,GAAjBxoC,CAAD,IAA0BwoC,MAAM,CAApC,EAAuC;MACrC7jD,gBAAK,mCAALA;MACA,OAAO,IAAP;IAV4B;;IAY9B,OAAO4jD,UAAU,CAAV,MAAiB,CAAjBA,IAAsBA,UAAU,CAAV,MAAkB,MAAKC,GAAL,IAAY,CAA3D;EA1E+B;;AAAA;;AAiFnC,MAAM6C,YAAN,SAA2B9X,UAA3B,CAAsC;EACpC30C,cAAc;IACZ,MAAM,YAAN,EAAoB,CAApB;EAFkC;;EAKpC80C,WAAWoT,GAAX,EAAgBgB,SAAhB,EAA2Bf,IAA3B,EAAiCgB,UAAjC,EAA6C;IAU3C,MAAM5hC,IAAI2gC,IAAIgB,SAAJ,IAAiB,GAA3B;IACAf,KAAKgB,UAAL,IAAmBhB,KAAKgB,aAAa,CAAlB,IAAuBhB,KAAKgB,aAAa,CAAlB,IAAuB5hC,CAAjE4gC;EAhBkC;;EAmBpCiB,aAAalB,GAAb,EAAkBgB,SAAlB,EAA6BG,KAA7B,EAAoClB,IAApC,EAA0CgB,UAA1C,EAAsDG,IAAtD,EAA4Dd,OAA5D,EAAqE;IAUnE,MAAMzG,QAAQ,OAAQ,MAAKuH,IAAL,IAAa,CAArB,CAAd;IACA,IAAI//B,IAAI2/B,SAAR;IAAA,IACEoE,IAAInE,UADN;;IAEA,KAAK,IAAIlmD,IAAI,CAAb,EAAgBA,IAAIomD,KAApB,EAA2B,EAAEpmD,CAA7B,EAAgC;MAC9B,MAAMskB,IAAIw6B,QAAQmG,IAAI3+B,GAAJ,CAAlB;MACA4+B,KAAKmF,GAAL,IAAY/lC,CAAZ4gC;MACAA,KAAKmF,GAAL,IAAY/lC,CAAZ4gC;MACAA,KAAKmF,GAAL,IAAY/lC,CAAZ4gC;MACAmF,KAAK9E,OAAL8E;IAlBiE;EAnBjC;;EAyCpC/D,gBAAgBC,WAAhB,EAA6BhB,OAA7B,EAAsC;IACpC,OAAOgB,eAAe,IAAIhB,OAAnB,CAAP;EA1CkC;;AAAA;;AAiDtC,MAAMkE,WAAN,SAA0B/X,UAA1B,CAAqC;EACnC30C,cAAc;IACZ,MAAM,WAAN,EAAmB,CAAnB;EAFiC;;EAKnC80C,WAAWoT,GAAX,EAAgBgB,SAAhB,EAA2Bf,IAA3B,EAAiCgB,UAAjC,EAA6C;IAU3ChB,KAAKgB,UAAL,IAAmBjB,IAAIgB,SAAJ,IAAiB,GAApCf;IACAA,KAAKgB,aAAa,CAAlB,IAAuBjB,IAAIgB,YAAY,CAAhB,IAAqB,GAA5Cf;IACAA,KAAKgB,aAAa,CAAlB,IAAuBjB,IAAIgB,YAAY,CAAhB,IAAqB,GAA5Cf;EAjBiC;;EAoBnCiB,aAAalB,GAAb,EAAkBgB,SAAlB,EAA6BG,KAA7B,EAAoClB,IAApC,EAA0CgB,UAA1C,EAAsDG,IAAtD,EAA4Dd,OAA5D,EAAqE;IAUnE,IAAIc,SAAS,CAATA,IAAcd,YAAY,CAA9B,EAAiC;MAC/BL,KAAKzjC,GAALyjC,CAASD,IAAIjkC,QAAJikC,CAAagB,SAAbhB,EAAwBgB,YAAYG,QAAQ,CAA5CnB,CAATC,EAAyDgB,UAAzDhB;MACA;IAZiE;;IAcnE,MAAMpG,QAAQ,OAAQ,MAAKuH,IAAL,IAAa,CAArB,CAAd;IACA,IAAI//B,IAAI2/B,SAAR;IAAA,IACEoE,IAAInE,UADN;;IAEA,KAAK,IAAIlmD,IAAI,CAAb,EAAgBA,IAAIomD,KAApB,EAA2B,EAAEpmD,CAA7B,EAAgC;MAC9BklD,KAAKmF,GAAL,IAAYvL,QAAQmG,IAAI3+B,GAAJ,CAApB4+B;MACAA,KAAKmF,GAAL,IAAYvL,QAAQmG,IAAI3+B,GAAJ,CAApB4+B;MACAA,KAAKmF,GAAL,IAAYvL,QAAQmG,IAAI3+B,GAAJ,CAApB4+B;MACAmF,KAAK9E,OAAL8E;IArBiE;EApBlC;;EA6CnC/D,gBAAgBC,WAAhB,EAA6BhB,OAA7B,EAAsC;IACpC,OAASgB,eAAe,IAAIhB,OAAnB,IAA+B,CAA/BgB,GAAoC,CAA7C;EA9CiC;;EAiDnCC,cAAcH,IAAd,EAAoB;IAClB,OAAOA,SAAS,CAAhB;EAlDiC;;AAAA;;AAyDrC,MAAMqD,eAAgB,SAASY,mBAAT,GAA+B;EAOnD,SAASC,YAAT,CAAsBtF,GAAtB,EAA2BgB,SAA3B,EAAsCuE,QAAtC,EAAgDtF,IAAhD,EAAsDgB,UAAtD,EAAkE;IAChE,MAAM5hC,IAAI2gC,IAAIgB,SAAJ,IAAiBuE,QAA3B;IACA,MAAMlnC,IAAI2hC,IAAIgB,YAAY,CAAhB,IAAqBuE,QAA/B;IACA,MAAMpY,IAAI6S,IAAIgB,YAAY,CAAhB,IAAqBuE,QAA/B;IACA,MAAMC,IAAIxF,IAAIgB,YAAY,CAAhB,IAAqBuE,QAA/B;IAEAtF,KAAKgB,UAAL,IACE,MACA5hC,KACG,CAAC,iBAAD,GAAqBA,CAArB,GACC,oBAAoBhB,CADrB,GAEC,oBAAoB8uB,CAFrB,GAGC,qBAAqBqY,CAHtB,GAIC,CAAC,iBALL,CADA,GAOAnnC,KACG,qBAAqBA,CAArB,GACC,qBAAqB8uB,CADtB,GAEC,CAAC,kBAAD,GAAsBqY,CAFvB,GAGC,iBAJJ,CAPA,GAYArY,KACG,CAAC,kBAAD,GAAsBA,CAAtB,GAA0B,qBAAqBqY,CAA/C,GAAmD,gBADtD,CAZA,GAcAA,KAAK,CAAC,iBAAD,GAAqBA,CAArB,GAAyB,kBAA9B,CAfFvF;IAiBAA,KAAKgB,aAAa,CAAlB,IACE,MACA5hC,KACG,oBAAoBA,CAApB,GACC,qBAAqBhB,CADtB,GAEC,oBAAoB8uB,CAFrB,GAGC,qBAAqBqY,CAHtB,GAIC,CAAC,gBALL,CADA,GAOAnnC,KACG,CAAC,kBAAD,GAAsBA,CAAtB,GACC,qBAAqB8uB,CADtB,GAEC,qBAAqBqY,CAFtB,GAGC,iBAJJ,CAPA,GAYArY,KAAK,oBAAoBA,CAApB,GAAwB,kBAAkBqY,CAA1C,GAA8C,iBAAnD,CAZA,GAaAA,KAAK,CAAC,kBAAD,GAAsBA,CAAtB,GAA0B,kBAA/B,CAdFvF;IAgBAA,KAAKgB,aAAa,CAAlB,IACE,MACA5hC,KACG,qBAAqBA,CAArB,GACC,oBAAoBhB,CADrB,GAEC,oBAAoB8uB,CAFrB,GAGC,sBAAsBqY,CAHvB,GAIC,CAAC,kBALL,CADA,GAOAnnC,KACG,oBAAoBA,CAApB,GACC,oBAAoB8uB,CADrB,GAEC,qBAAqBqY,CAFtB,GAGC,kBAJJ,CAPA,GAYArY,KACG,sBAAsBA,CAAtB,GACC,qBAAqBqY,CADtB,GAEC,CAAC,kBAHL,CAZA,GAgBAA,KAAK,CAAC,iBAAD,GAAqBA,CAArB,GAAyB,kBAA9B,CAjBFvF;EA9CiD;;EAmEnD,MAAMwE,YAAN,SAA2BhY,UAA3B,CAAsC;IACpC30C,cAAc;MACZ,MAAM,YAAN,EAAoB,CAApB;IAFkC;;IAKpC80C,WAAWoT,GAAX,EAAgBgB,SAAhB,EAA2Bf,IAA3B,EAAiCgB,UAAjC,EAA6C;MAU3CqE,aAAatF,GAAb,EAAkBgB,SAAlB,EAA6B,CAA7B,EAAgCf,IAAhC,EAAsCgB,UAAtC;IAfkC;;IAkBpCC,aAAalB,GAAb,EAAkBgB,SAAlB,EAA6BG,KAA7B,EAAoClB,IAApC,EAA0CgB,UAA1C,EAAsDG,IAAtD,EAA4Dd,OAA5D,EAAqE;MAUnE,MAAMzG,QAAQ,KAAM,MAAKuH,IAAL,IAAa,CAAnB,CAAd;;MACA,KAAK,IAAIrmD,IAAI,CAAb,EAAgBA,IAAIomD,KAApB,EAA2BpmD,GAA3B,EAAgC;QAC9BuqD,aAAatF,GAAb,EAAkBgB,SAAlB,EAA6BnH,KAA7B,EAAoCoG,IAApC,EAA0CgB,UAA1C;QACAD,aAAa,CAAbA;QACAC,cAAc,IAAIX,OAAlBW;MAdiE;IAlBjC;;IAoCpCI,gBAAgBC,WAAhB,EAA6BhB,OAA7B,EAAsC;MACpC,OAASgB,cAAc,CAAdA,IAAoB,IAAIhB,OAAxBgB,IAAoC,CAA7C;IArCkC;;EAAA;;EAwCtC,OAAOmD,YAAP;AA3GmB,CAAC,EAAtB;;AAmHA,MAAMX,YAAa,SAAS2B,gBAAT,GAA4B;EAC7C,SAASH,YAAT,CAAsBpC,EAAtB,EAA0BlD,GAA1B,EAA+BgB,SAA/B,EAA0Cf,IAA1C,EAAgDgB,UAAhD,EAA4DpH,KAA5D,EAAmE;IAGjE,MAAM6L,IAAI1F,IAAIgB,SAAJ,IAAiBnH,KAA3B;IACA,MAAM8L,KAAKD,KAAKxC,GAAG0C,CAAnB;IAIA,MAAMC,IAAI3C,GAAG4C,EAAH5C,GAAQyC,EAAlB;IAGA,MAAM3P,MAAM53C,KAAKC,GAALD,CAAS,QAAQynD,KAAK,kBAAb,GAAkC,IAA3CznD,EAAiD,CAAjDA,CAAZ;IACA6hD,KAAKgB,UAAL,IAAmBjL,GAAnBiK;IACAA,KAAKgB,aAAa,CAAlB,IAAuBjL,GAAvBiK;IACAA,KAAKgB,aAAa,CAAlB,IAAuBjL,GAAvBiK;EAf2C;;EAmB7C,MAAM6D,SAAN,SAAwBrX,UAAxB,CAAmC;IACjC30C,YAAY6rD,UAAZ,EAAwBC,UAAxB,EAAoCC,KAApC,EAA2C;MACzC,MAAM,SAAN,EAAiB,CAAjB;;MAEA,IAAI,CAACF,UAAL,EAAiB;QACf,MAAM,IAAIvoC,iBAAJ,CACJ,uDADI,CAAN;MAJuC;;MAQzCwoC,aAAaA,cAAc,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAA3BA;MACAC,QAAQA,SAAS,CAAjBA;MAGA,KAAKkC,EAAL,GAAUpC,WAAW,CAAX,CAAV;MACA,KAAKmC,EAAL,GAAUnC,WAAW,CAAX,CAAV;MACA,KAAKqC,EAAL,GAAUrC,WAAW,CAAX,CAAV;MAEA,KAAKsC,EAAL,GAAUrC,WAAW,CAAX,CAAV;MACA,KAAKsC,EAAL,GAAUtC,WAAW,CAAX,CAAV;MACA,KAAKuC,EAAL,GAAUvC,WAAW,CAAX,CAAV;MAEA,KAAKgC,CAAL,GAAS/B,KAAT;;MAGA,IAAI,KAAKkC,EAAL,GAAU,CAAV,IAAe,KAAKC,EAAL,GAAU,CAAzB,IAA8B,KAAKF,EAAL,KAAY,CAA9C,EAAiD;QAC/C,MAAM,IAAI1qC,iBAAJ,CACH,qCAAoC,KAAKrjB,IAA1C,KACE,yBAFE,CAAN;MAxBuC;;MA8BzC,IAAI,KAAKkuD,EAAL,GAAU,CAAV,IAAe,KAAKC,EAAL,GAAU,CAAzB,IAA8B,KAAKC,EAAL,GAAU,CAA5C,EAA+C;QAC7CnhD,gBAAM,0BAAyB,KAAKjN,IAAK,4BAAzCiN;QACA,KAAKihD,EAAL,GAAU,KAAKC,EAAL,GAAU,KAAKC,EAAL,GAAU,CAA9B;MAhCuC;;MAmCzC,IAAI,KAAKF,EAAL,KAAY,CAAZ,IAAiB,KAAKC,EAAL,KAAY,CAA7B,IAAkC,KAAKC,EAAL,KAAY,CAAlD,EAAqD;QACnDtoD,gBACE,GAAG,KAAK9F,IAAK,qBAAoB,KAAKkuD,EAAG,SAAQ,KAAKC,EAAG,IAAzD,GACG,OAAM,KAAKC,EAAG,sCAFnBtoD;MApCuC;;MA0CzC,IAAI,KAAK+nD,CAAL,GAAS,CAAb,EAAgB;QACd5gD,gBACG,kBAAiB,KAAK4gD,CAAE,QAAO,KAAK7tD,IAAK,IAA1C,GACE,0BAFJiN;QAIA,KAAK4gD,CAAL,GAAS,CAAT;MA/CuC;IADV;;IAoDjChZ,WAAWoT,GAAX,EAAgBgB,SAAhB,EAA2Bf,IAA3B,EAAiCgB,UAAjC,EAA6C;MAU3CqE,aAAa,IAAb,EAAmBtF,GAAnB,EAAwBgB,SAAxB,EAAmCf,IAAnC,EAAyCgB,UAAzC,EAAqD,CAArD;IA9D+B;;IAiEjCC,aAAalB,GAAb,EAAkBgB,SAAlB,EAA6BG,KAA7B,EAAoClB,IAApC,EAA0CgB,UAA1C,EAAsDG,IAAtD,EAA4Dd,OAA5D,EAAqE;MAUnE,MAAMzG,QAAQ,KAAM,MAAKuH,IAAL,IAAa,CAAnB,CAAd;;MAEA,KAAK,IAAIrmD,IAAI,CAAb,EAAgBA,IAAIomD,KAApB,EAA2B,EAAEpmD,CAA7B,EAAgC;QAC9BuqD,aAAa,IAAb,EAAmBtF,GAAnB,EAAwBgB,SAAxB,EAAmCf,IAAnC,EAAyCgB,UAAzC,EAAqDpH,KAArD;QACAmH,aAAa,CAAbA;QACAC,cAAc,IAAIX,OAAlBW;MAfiE;IAjEpC;;IAoFjCI,gBAAgBC,WAAhB,EAA6BhB,OAA7B,EAAsC;MACpC,OAAOgB,eAAe,IAAIhB,OAAnB,CAAP;IArF+B;;EAAA;;EAwFnC,OAAOwD,SAAP;AA3GgB,CAAC,EAAnB;;AAmHA,MAAMC,WAAY,SAASqC,eAAT,GAA2B;EAI3C,MAAMC,wBAAwB,IAAIzB,YAAJ,CAAiB,CAC7C,MAD6C,EACrC,MADqC,EAC7B,CAAC,MAD4B,EAE7C,CAAC,MAF4C,EAEpC,MAFoC,EAE5B,MAF4B,EAG7C,MAH6C,EAGrC,CAAC,MAHoC,EAG5B,MAH4B,CAAjB,CAA9B;EAMA,MAAM0B,gCAAgC,IAAI1B,YAAJ,CAAiB,CACrD,SADqD,EAC1C,CAAC,SADyC,EAC9B,SAD8B,EAErD,SAFqD,EAE1C,SAF0C,EAE/B,SAF+B,EAGrD,CAAC,SAHoD,EAGzC,SAHyC,EAG9B,SAH8B,CAAjB,CAAtC;EAOA,MAAM2B,6BAA6B,IAAI3B,YAAJ,CAAiB,CAClD,SADkD,EACvC,CAAC,SADsC,EAC3B,CAAC,SAD0B,EAElD,CAAC,SAFiD,EAEtC,SAFsC,EAE3B,SAF2B,EAGlD,SAHkD,EAGvC,CAAC,SAHsC,EAG3B,SAH2B,CAAjB,CAAnC;EAKA,MAAM4B,yBAAyB,IAAI5B,YAAJ,CAAiB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAAjB,CAA/B;EAEA,MAAM6B,sBAAsB,IAAI7B,YAAJ,CAAiB,CAAjB,CAA5B;EACA,MAAM8B,qBAAqB,IAAI9B,YAAJ,CAAiB,CAAjB,CAA3B;EACA,MAAM+B,qBAAqB,IAAI/B,YAAJ,CAAiB,CAAjB,CAA3B;EAEA,MAAMgC,oBAAqB,CAAC,KAAI,EAAJ,IAAU,GAAX,KAAmB,CAAnB,GAAuB,GAAlD;;EAEA,SAASC,aAAT,CAAuBtjD,CAAvB,EAA0BC,CAA1B,EAA6Bo8C,MAA7B,EAAqC;IACnCA,OAAO,CAAP,IAAYr8C,EAAE,CAAF,IAAOC,EAAE,CAAF,CAAPD,GAAcA,EAAE,CAAF,IAAOC,EAAE,CAAF,CAArBD,GAA4BA,EAAE,CAAF,IAAOC,EAAE,CAAF,CAA/Co8C;IACAA,OAAO,CAAP,IAAYr8C,EAAE,CAAF,IAAOC,EAAE,CAAF,CAAPD,GAAcA,EAAE,CAAF,IAAOC,EAAE,CAAF,CAArBD,GAA4BA,EAAE,CAAF,IAAOC,EAAE,CAAF,CAA/Co8C;IACAA,OAAO,CAAP,IAAYr8C,EAAE,CAAF,IAAOC,EAAE,CAAF,CAAPD,GAAcA,EAAE,CAAF,IAAOC,EAAE,CAAF,CAArBD,GAA4BA,EAAE,CAAF,IAAOC,EAAE,CAAF,CAA/Co8C;EAjCyC;;EAoC3C,SAASkH,aAAT,CAAuBC,gBAAvB,EAAyCC,GAAzC,EAA8CpH,MAA9C,EAAsD;IACpDA,OAAO,CAAP,IAAaoH,IAAI,CAAJ,IAAS,CAATA,GAAcD,iBAAiB,CAAjB,CAA3BnH;IACAA,OAAO,CAAP,IAAaoH,IAAI,CAAJ,IAAS,CAATA,GAAcD,iBAAiB,CAAjB,CAA3BnH;IACAA,OAAO,CAAP,IAAaoH,IAAI,CAAJ,IAAS,CAATA,GAAcD,iBAAiB,CAAjB,CAA3BnH;EAvCyC;;EA0C3C,SAASqH,YAAT,CAAsBF,gBAAtB,EAAwCC,GAAxC,EAA6CpH,MAA7C,EAAqD;IACnD,MAAMsH,OAAO,OAAb;IACA,MAAMC,OAAO,CAAb;IACA,MAAMC,OAAO,OAAb;IAEAxH,OAAO,CAAP,IAAaoH,IAAI,CAAJ,IAASE,IAATF,GAAiBD,iBAAiB,CAAjB,CAA9BnH;IACAA,OAAO,CAAP,IAAaoH,IAAI,CAAJ,IAASG,IAATH,GAAiBD,iBAAiB,CAAjB,CAA9BnH;IACAA,OAAO,CAAP,IAAaoH,IAAI,CAAJ,IAASI,IAATJ,GAAiBD,iBAAiB,CAAjB,CAA9BnH;EAjDyC;;EAoD3C,SAASyH,oBAAT,CAA8Bhb,KAA9B,EAAqC;IAEnC,IAAIA,SAAS,SAAb,EAAwB;MACtB,OAAOib,cAAc,CAAd,EAAiB,CAAjB,EAAoB,QAAQjb,KAA5B,CAAP;IAHiC;;IAWnC,IAAIA,SAAS,UAAb,EAAyB;MACvB,OAAO,CAAP;IAZiC;;IAcnC,OAAOib,cAAc,CAAd,EAAiB,CAAjB,EAAqB,KAAI,KAAJ,IAAajb,UAAU,IAAI,GAAd,CAAb,GAAkC,KAAvD,CAAP;EAlEyC;;EAqE3C,SAASib,aAAT,CAAuBzrC,GAAvB,EAA4Bxd,GAA5B,EAAiCL,KAAjC,EAAwC;IACtC,OAAOI,KAAKC,GAALD,CAASyd,GAATzd,EAAcA,KAAKyd,GAALzd,CAASC,GAATD,EAAcJ,KAAdI,CAAdA,CAAP;EAtEyC;;EAyE3C,SAASmpD,OAAT,CAAiB1B,CAAjB,EAAoB;IAClB,IAAIA,IAAI,CAAR,EAAW;MACT,OAAO,CAAC0B,QAAQ,CAAC1B,CAAT,CAAR;IAFgB;;IAIlB,IAAIA,IAAI,GAAR,EAAa;MACX,OAAQ,CAAC,KAAI,EAAJ,IAAU,GAAX,KAAmB,CAA3B;IALgB;;IAOlB,OAAOA,IAAIe,iBAAX;EAhFyC;;EAmF3C,SAASY,oBAAT,CAA8BC,gBAA9B,EAAgDC,QAAhD,EAA0D9H,MAA1D,EAAkE;IAGhE,IACE6H,iBAAiB,CAAjB,MAAwB,CAAxBA,IACAA,iBAAiB,CAAjB,MAAwB,CADxBA,IAEAA,iBAAiB,CAAjB,MAAwB,CAH1B,EAIE;MACA7H,OAAO,CAAP,IAAY8H,SAAS,CAAT,CAAZ9H;MACAA,OAAO,CAAP,IAAY8H,SAAS,CAAT,CAAZ9H;MACAA,OAAO,CAAP,IAAY8H,SAAS,CAAT,CAAZ9H;MACA;IAX8D;;IAkBhE,MAAM+H,cAAcJ,QAAQ,CAAR,CAApB;IAEA,MAAMK,QAAQD,WAAd;IACA,MAAME,QAAQN,QAAQE,iBAAiB,CAAjB,CAAR,CAAd;IAEA,MAAMK,QAAQH,WAAd;IACA,MAAMI,QAAQR,QAAQE,iBAAiB,CAAjB,CAAR,CAAd;IAEA,MAAMO,QAAQL,WAAd;IACA,MAAMM,QAAQV,QAAQE,iBAAiB,CAAjB,CAAR,CAAd;IAEA,MAAMS,UAAW,KAAIN,KAAJ,KAAc,IAAIC,KAAlB,CAAjB;IACA,MAAMM,WAAW,IAAID,OAArB;IAEA,MAAME,UAAW,KAAIN,KAAJ,KAAc,IAAIC,KAAlB,CAAjB;IACA,MAAMM,WAAW,IAAID,OAArB;IAEA,MAAME,UAAW,KAAIN,KAAJ,KAAc,IAAIC,KAAlB,CAAjB;IACA,MAAMM,WAAW,IAAID,OAArB;IAEA1I,OAAO,CAAP,IAAY8H,SAAS,CAAT,IAAcQ,OAAdR,GAAwBS,QAApCvI;IACAA,OAAO,CAAP,IAAY8H,SAAS,CAAT,IAAcU,OAAdV,GAAwBW,QAApCzI;IACAA,OAAO,CAAP,IAAY8H,SAAS,CAAT,IAAcY,OAAdZ,GAAwBa,QAApC3I;EA3HyC;;EA8H3C,SAAS4I,yBAAT,CAAmCzB,gBAAnC,EAAqD0B,MAArD,EAA6D7I,MAA7D,EAAqE;IAGnE,IAAImH,iBAAiB,CAAjB,MAAwB,CAAxBA,IAA6BA,iBAAiB,CAAjB,MAAwB,CAAzD,EAA4D;MAC1DnH,OAAO,CAAP,IAAY6I,OAAO,CAAP,CAAZ7I;MACAA,OAAO,CAAP,IAAY6I,OAAO,CAAP,CAAZ7I;MACAA,OAAO,CAAP,IAAY6I,OAAO,CAAP,CAAZ7I;MACA;IAPiE;;IAUnE,MAAMoH,MAAMpH,MAAZ;IACAiH,cAAcR,qBAAd,EAAqCoC,MAArC,EAA6CzB,GAA7C;IAEA,MAAM0B,WAAWjC,mBAAjB;IACAK,cAAcC,gBAAd,EAAgCC,GAAhC,EAAqC0B,QAArC;IAEA7B,cAAcP,6BAAd,EAA6CoC,QAA7C,EAAuD9I,MAAvD;EA9IyC;;EAiJ3C,SAAS+I,wBAAT,CAAkC5B,gBAAlC,EAAoD0B,MAApD,EAA4D7I,MAA5D,EAAoE;IAClE,MAAMoH,MAAMpH,MAAZ;IACAiH,cAAcR,qBAAd,EAAqCoC,MAArC,EAA6CzB,GAA7C;IAEA,MAAM4B,UAAUnC,mBAAhB;IACAQ,aAAaF,gBAAb,EAA+BC,GAA/B,EAAoC4B,OAApC;IAEA/B,cAAcP,6BAAd,EAA6CsC,OAA7C,EAAsDhJ,MAAtD;EAxJyC;;EA2J3C,SAAS0F,YAAT,CAAsBpC,EAAtB,EAA0BlD,GAA1B,EAA+BgB,SAA/B,EAA0Cf,IAA1C,EAAgDgB,UAAhD,EAA4DpH,KAA5D,EAAmE;IAGjE,MAAM6L,IAAI4B,cAAc,CAAd,EAAiB,CAAjB,EAAoBtH,IAAIgB,SAAJ,IAAiBnH,KAArC,CAAV;IACA,MAAMgP,IAAIvB,cAAc,CAAd,EAAiB,CAAjB,EAAoBtH,IAAIgB,YAAY,CAAhB,IAAqBnH,KAAzC,CAAV;IACA,MAAMtqC,IAAI+3C,cAAc,CAAd,EAAiB,CAAjB,EAAoBtH,IAAIgB,YAAY,CAAhB,IAAqBnH,KAAzC,CAAV;IAKA,MAAMiP,MAAMpD,MAAM,CAANA,GAAU,CAAVA,GAAcA,KAAKxC,GAAG6F,EAAlC;IACA,MAAMC,MAAMH,MAAM,CAANA,GAAU,CAAVA,GAAcA,KAAK3F,GAAG+F,EAAlC;IACA,MAAMC,MAAM35C,MAAM,CAANA,GAAU,CAAVA,GAAcA,KAAK2zC,GAAGiG,EAAlC;IAIA,MAAMx6C,IAAIu0C,GAAGkG,GAAHlG,GAAS4F,GAAT5F,GAAeA,GAAGmG,GAAHnG,GAAS8F,GAAxB9F,GAA8BA,GAAGoG,GAAHpG,GAASgG,GAAjD;IACA,MAAMK,IAAIrG,GAAGsG,GAAHtG,GAAS4F,GAAT5F,GAAeA,GAAGuG,GAAHvG,GAAS8F,GAAxB9F,GAA8BA,GAAGwG,GAAHxG,GAASgG,GAAjD;IACA,MAAMS,IAAIzG,GAAG0G,GAAH1G,GAAS4F,GAAT5F,GAAeA,GAAG2G,GAAH3G,GAAS8F,GAAxB9F,GAA8BA,GAAG4G,GAAH5G,GAASgG,GAAjD;IAKA,MAAMa,MAAMrD,kBAAZ;IACAqD,IAAI,CAAJ,IAASp7C,CAATo7C;IACAA,IAAI,CAAJ,IAASR,CAATQ;IACAA,IAAI,CAAJ,IAASJ,CAATI;IACA,MAAMrC,WAAWf,kBAAjB;IAEA6B,0BAA0BtF,GAAGS,UAA7B,EAAyCoG,GAAzC,EAA8CrC,QAA9C;IAEA,MAAMsC,YAAYtD,kBAAlB;IACAc,qBAAqBtE,GAAGU,UAAxB,EAAoC8D,QAApC,EAA8CsC,SAA9C;IAEA,MAAMC,UAAUtD,kBAAhB;IACAgC,yBAAyBnC,sBAAzB,EAAiDwD,SAAjD,EAA4DC,OAA5D;IAEA,MAAMC,OAAOxD,kBAAb;IACAG,cAAcN,0BAAd,EAA0C0D,OAA1C,EAAmDC,IAAnD;IAGAjK,KAAKgB,UAAL,IAAmBoG,qBAAqB6C,KAAK,CAAL,CAArB,IAAgC,GAAnDjK;IACAA,KAAKgB,aAAa,CAAlB,IAAuBoG,qBAAqB6C,KAAK,CAAL,CAArB,IAAgC,GAAvDjK;IACAA,KAAKgB,aAAa,CAAlB,IAAuBoG,qBAAqB6C,KAAK,CAAL,CAArB,IAAgC,GAAvDjK;EAtMyC;;EA0M3C,MAAM8D,QAAN,SAAuBtX,UAAvB,CAAkC;IAChC30C,YAAY6rD,UAAZ,EAAwBC,UAAxB,EAAoCC,KAApC,EAA2C5V,MAA3C,EAAmD;MACjD,MAAM,QAAN,EAAgB,CAAhB;;MAEA,IAAI,CAAC0V,UAAL,EAAiB;QACf,MAAM,IAAIvoC,iBAAJ,CACJ,sDADI,CAAN;MAJ+C;;MAQjDwoC,aAAaA,cAAc,IAAIgB,YAAJ,CAAiB,CAAjB,CAA3BhB;MACAC,QAAQA,SAAS,IAAIe,YAAJ,CAAiB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAAjB,CAAjBf;MACA5V,SAASA,UAAU,IAAI2W,YAAJ,CAAiB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,EAAsB,CAAtB,EAAyB,CAAzB,CAAjB,CAAnB3W;MAGA,MAAM8X,KAAKpC,WAAW,CAAX,CAAX;MACA,MAAMmC,KAAKnC,WAAW,CAAX,CAAX;MACA,MAAMqC,KAAKrC,WAAW,CAAX,CAAX;MACA,KAAKA,UAAL,GAAkBA,UAAlB;MAEA,MAAMsC,KAAKrC,WAAW,CAAX,CAAX;MACA,MAAMsC,KAAKtC,WAAW,CAAX,CAAX;MACA,MAAMuC,KAAKvC,WAAW,CAAX,CAAX;MACA,KAAKA,UAAL,GAAkBA,UAAlB;MAEA,KAAKmF,EAAL,GAAUlF,MAAM,CAAN,CAAV;MACA,KAAKoF,EAAL,GAAUpF,MAAM,CAAN,CAAV;MACA,KAAKsF,EAAL,GAAUtF,MAAM,CAAN,CAAV;MAEA,KAAKuF,GAAL,GAAWnb,OAAO,CAAP,CAAX;MACA,KAAKub,GAAL,GAAWvb,OAAO,CAAP,CAAX;MACA,KAAK2b,GAAL,GAAW3b,OAAO,CAAP,CAAX;MACA,KAAKob,GAAL,GAAWpb,OAAO,CAAP,CAAX;MACA,KAAKwb,GAAL,GAAWxb,OAAO,CAAP,CAAX;MACA,KAAK4b,GAAL,GAAW5b,OAAO,CAAP,CAAX;MACA,KAAKqb,GAAL,GAAWrb,OAAO,CAAP,CAAX;MACA,KAAKyb,GAAL,GAAWzb,OAAO,CAAP,CAAX;MACA,KAAK6b,GAAL,GAAW7b,OAAO,CAAP,CAAX;;MAGA,IAAI8X,KAAK,CAALA,IAAUC,KAAK,CAAfD,IAAoBD,OAAO,CAA/B,EAAkC;QAChC,MAAM,IAAI1qC,iBAAJ,CACH,qCAAoC,KAAKrjB,IAA1C,KACE,yBAFE,CAAN;MAvC+C;;MA6CjD,IAAIkuD,KAAK,CAALA,IAAUC,KAAK,CAAfD,IAAoBE,KAAK,CAA7B,EAAgC;QAC9BnhD,gBACG,0BAAyB,KAAKjN,IAAK,KAAIkuD,EAAG,KAAIC,EAAG,KAAIC,EAAG,KAAzD,GACE,0BAFJnhD;QAIA,KAAK4+C,UAAL,GAAkB,IAAIgB,YAAJ,CAAiB,CAAjB,CAAlB;MAlD+C;;MAqDjD,IAAI,KAAKmE,EAAL,GAAU,CAAV,IAAe,KAAKE,EAAL,GAAU,CAAzB,IAA8B,KAAKE,EAAL,GAAU,CAA5C,EAA+C;QAC7CnkD,gBACG,kBAAiB,KAAK+jD,EAAG,KAAI,KAAKE,EAAG,KAAI,KAAKE,EAAG,QAAlD,GACE,GAAG,KAAKpxD,IAAK,4BAFjBiN;QAIA,KAAK+jD,EAAL,GAAU,KAAKE,EAAL,GAAU,KAAKE,EAAL,GAAU,CAA9B;MA1D+C;IADnB;;IA+DhCvc,WAAWoT,GAAX,EAAgBgB,SAAhB,EAA2Bf,IAA3B,EAAiCgB,UAAjC,EAA6C;MAU3CqE,aAAa,IAAb,EAAmBtF,GAAnB,EAAwBgB,SAAxB,EAAmCf,IAAnC,EAAyCgB,UAAzC,EAAqD,CAArD;IAzE8B;;IA4EhCC,aAAalB,GAAb,EAAkBgB,SAAlB,EAA6BG,KAA7B,EAAoClB,IAApC,EAA0CgB,UAA1C,EAAsDG,IAAtD,EAA4Dd,OAA5D,EAAqE;MAUnE,MAAMzG,QAAQ,KAAM,MAAKuH,IAAL,IAAa,CAAnB,CAAd;;MAEA,KAAK,IAAIrmD,IAAI,CAAb,EAAgBA,IAAIomD,KAApB,EAA2B,EAAEpmD,CAA7B,EAAgC;QAC9BuqD,aAAa,IAAb,EAAmBtF,GAAnB,EAAwBgB,SAAxB,EAAmCf,IAAnC,EAAyCgB,UAAzC,EAAqDpH,KAArD;QACAmH,aAAa,CAAbA;QACAC,cAAc,IAAIX,OAAlBW;MAfiE;IA5ErC;;IA+FhCI,gBAAgBC,WAAhB,EAA6BhB,OAA7B,EAAsC;MACpC,OAASgB,eAAe,IAAIhB,OAAnB,IAA+B,CAA/BgB,GAAoC,CAA7C;IAhG8B;;EAAA;;EAmGlC,OAAOyC,QAAP;AA7Se,CAAC,EAAlB;;AAqTA,MAAMO,QAAS,SAAS6F,YAAT,GAAwB;EAErC,SAASC,IAAT,CAAc/mD,CAAd,EAAiB;IACf,IAAIu8C,MAAJ;;IACA,IAAIv8C,KAAK,IAAI,EAAb,EAAiB;MACfu8C,SAASv8C,KAAK,CAAdu8C;IADF,OAEO;MACLA,SAAU,MAAM,GAAN,IAAcv8C,IAAI,IAAI,EAAtB,CAAVu8C;IALa;;IAOf,OAAOA,MAAP;EATmC;;EAYrC,SAAS/9B,MAAT,CAAgB7jB,KAAhB,EAAuBqsD,KAAvB,EAA8BC,IAA9B,EAAoCC,KAApC,EAA2C;IACzC,OAAOD,OAAQtsD,SAASusD,QAAQD,IAAjB,IAA0BD,KAAzC;EAbmC;;EAiBrC,SAAS/E,YAAT,CAAsBpC,EAAtB,EAA0BlD,GAA1B,EAA+BgB,SAA/B,EAA0CwJ,MAA1C,EAAkDvK,IAAlD,EAAwDgB,UAAxD,EAAoE;IAOlE,IAAIwJ,KAAKzK,IAAIgB,SAAJ,CAAT;IACA,IAAIxP,KAAKwO,IAAIgB,YAAY,CAAhB,CAAT;IACA,IAAI0J,KAAK1K,IAAIgB,YAAY,CAAhB,CAAT;;IACA,IAAIwJ,WAAW,KAAf,EAAsB;MACpBC,KAAK5oC,OAAO4oC,EAAP,EAAWD,MAAX,EAAmB,CAAnB,EAAsB,GAAtB,CAALC;MACAjZ,KAAK3vB,OAAO2vB,EAAP,EAAWgZ,MAAX,EAAmBtH,GAAGyH,IAAtB,EAA4BzH,GAAG0H,IAA/B,CAALpZ;MACAkZ,KAAK7oC,OAAO6oC,EAAP,EAAWF,MAAX,EAAmBtH,GAAG2H,IAAtB,EAA4B3H,GAAG4H,IAA/B,CAALJ;IAbgE;;IAiBlE,IAAIlZ,KAAK0R,GAAG0H,IAAZ,EAAkB;MAChBpZ,KAAK0R,GAAG0H,IAARpZ;IADF,OAEO,IAAIA,KAAK0R,GAAGyH,IAAZ,EAAkB;MACvBnZ,KAAK0R,GAAGyH,IAARnZ;IApBgE;;IAsBlE,IAAIkZ,KAAKxH,GAAG4H,IAAZ,EAAkB;MAChBJ,KAAKxH,GAAG4H,IAARJ;IADF,OAEO,IAAIA,KAAKxH,GAAG2H,IAAZ,EAAkB;MACvBH,KAAKxH,GAAG2H,IAARH;IAzBgE;;IA6BlE,MAAMK,IAAK,MAAK,EAAL,IAAW,GAAtB;IACA,MAAMlF,IAAIkF,IAAIvZ,KAAK,GAAnB;IACA,MAAMwZ,IAAID,IAAIL,KAAK,GAAnB;IAEA,MAAM/7C,IAAIu0C,GAAG6C,EAAH7C,GAAQkH,KAAKvE,CAAL,CAAlB;IACA,MAAM0D,IAAIrG,GAAG4C,EAAH5C,GAAQkH,KAAKW,CAAL,CAAlB;IACA,MAAMpB,IAAIzG,GAAG8C,EAAH9C,GAAQkH,KAAKY,CAAL,CAAlB;IAEA,IAAIptC,CAAJ,EAAOC,CAAP,EAAUra,CAAV;;IAGA,IAAI0/C,GAAG8C,EAAH9C,GAAQ,CAAZ,EAAe;MAEbtlC,IAAIjP,IAAI,MAAJA,GAAa46C,IAAI,CAAC,KAAlB56C,GAA0Bg7C,IAAI,CAAC,MAAnC/rC;MACAC,IAAIlP,IAAI,CAAC,MAALA,GAAc46C,IAAI,KAAlB56C,GAA0Bg7C,IAAI,MAAlC9rC;MACAra,IAAImL,IAAI,KAAJA,GAAY46C,IAAI,CAAC,KAAjB56C,GAAyBg7C,IAAI,MAAjCnmD;IAJF,OAKO;MAELoa,IAAIjP,IAAI,MAAJA,GAAa46C,IAAI,CAAC,MAAlB56C,GAA2Bg7C,IAAI,CAAC,MAApC/rC;MACAC,IAAIlP,IAAI,CAAC,MAALA,GAAc46C,IAAI,MAAlB56C,GAA2Bg7C,IAAI,MAAnC9rC;MACAra,IAAImL,IAAI,MAAJA,GAAa46C,IAAI,CAAC,KAAlB56C,GAA0Bg7C,IAAI,KAAlCnmD;IAjDgE;;IAoDlEy8C,KAAKgB,UAAL,IAAmB7iD,KAAKohB,IAALphB,CAAUwf,CAAVxf,IAAe,GAAlC6hD;IACAA,KAAKgB,aAAa,CAAlB,IAAuB7iD,KAAKohB,IAALphB,CAAUyf,CAAVzf,IAAe,GAAtC6hD;IACAA,KAAKgB,aAAa,CAAlB,IAAuB7iD,KAAKohB,IAALphB,CAAUoF,CAAVpF,IAAe,GAAtC6hD;EAvEmC;;EA2ErC,MAAMqE,KAAN,SAAoB7X,UAApB,CAA+B;IAC7B30C,YAAY6rD,UAAZ,EAAwBC,UAAxB,EAAoC12B,KAApC,EAA2C;MACzC,MAAM,KAAN,EAAa,CAAb;;MAEA,IAAI,CAACy2B,UAAL,EAAiB;QACf,MAAM,IAAIvoC,iBAAJ,CACJ,mDADI,CAAN;MAJuC;;MAQzCwoC,aAAaA,cAAc,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAA3BA;MACA12B,QAAQA,SAAS,CAAC,CAAC,GAAF,EAAO,GAAP,EAAY,CAAC,GAAb,EAAkB,GAAlB,CAAjBA;MAGA,KAAK64B,EAAL,GAAUpC,WAAW,CAAX,CAAV;MACA,KAAKmC,EAAL,GAAUnC,WAAW,CAAX,CAAV;MACA,KAAKqC,EAAL,GAAUrC,WAAW,CAAX,CAAV;MACA,KAAKgH,IAAL,GAAYz9B,MAAM,CAAN,CAAZ;MACA,KAAK09B,IAAL,GAAY19B,MAAM,CAAN,CAAZ;MACA,KAAK29B,IAAL,GAAY39B,MAAM,CAAN,CAAZ;MACA,KAAK49B,IAAL,GAAY59B,MAAM,CAAN,CAAZ;MAIA,KAAK+4B,EAAL,GAAUrC,WAAW,CAAX,CAAV;MACA,KAAKsC,EAAL,GAAUtC,WAAW,CAAX,CAAV;MACA,KAAKuC,EAAL,GAAUvC,WAAW,CAAX,CAAV;;MAGA,IAAI,KAAKmC,EAAL,GAAU,CAAV,IAAe,KAAKC,EAAL,GAAU,CAAzB,IAA8B,KAAKF,EAAL,KAAY,CAA9C,EAAiD;QAC/C,MAAM,IAAI1qC,iBAAJ,CACJ,sDADI,CAAN;MA5BuC;;MAiCzC,IAAI,KAAK6qC,EAAL,GAAU,CAAV,IAAe,KAAKC,EAAL,GAAU,CAAzB,IAA8B,KAAKC,EAAL,GAAU,CAA5C,EAA+C;QAC7CnhD,gBAAK,6CAALA;QACA,KAAKihD,EAAL,GAAU,KAAKC,EAAL,GAAU,KAAKC,EAAL,GAAU,CAA9B;MAnCuC;;MAsCzC,IAAI,KAAKwE,IAAL,GAAY,KAAKC,IAAjB,IAAyB,KAAKC,IAAL,GAAY,KAAKC,IAA9C,EAAoD;QAClD9lD,gBAAK,yCAALA;QACA,KAAK2lD,IAAL,GAAY,CAAC,GAAb;QACA,KAAKC,IAAL,GAAY,GAAZ;QACA,KAAKC,IAAL,GAAY,CAAC,GAAb;QACA,KAAKC,IAAL,GAAY,GAAZ;MA3CuC;IADd;;IAgD7Ble,WAAWoT,GAAX,EAAgBgB,SAAhB,EAA2Bf,IAA3B,EAAiCgB,UAAjC,EAA6C;MAU3CqE,aAAa,IAAb,EAAmBtF,GAAnB,EAAwBgB,SAAxB,EAAmC,KAAnC,EAA0Cf,IAA1C,EAAgDgB,UAAhD;IA1D2B;;IA6D7BC,aAAalB,GAAb,EAAkBgB,SAAlB,EAA6BG,KAA7B,EAAoClB,IAApC,EAA0CgB,UAA1C,EAAsDG,IAAtD,EAA4Dd,OAA5D,EAAqE;MAUnE,MAAMkK,SAAU,MAAKpJ,IAAL,IAAa,CAA7B;;MACA,KAAK,IAAIrmD,IAAI,CAAb,EAAgBA,IAAIomD,KAApB,EAA2BpmD,GAA3B,EAAgC;QAC9BuqD,aAAa,IAAb,EAAmBtF,GAAnB,EAAwBgB,SAAxB,EAAmCwJ,MAAnC,EAA2CvK,IAA3C,EAAiDgB,UAAjD;QACAD,aAAa,CAAbA;QACAC,cAAc,IAAIX,OAAlBW;MAdiE;IA7DxC;;IA+E7BI,gBAAgBC,WAAhB,EAA6BhB,OAA7B,EAAsC;MACpC,OAASgB,eAAe,IAAIhB,OAAnB,IAA+B,CAA/BgB,GAAoC,CAA7C;IAhF2B;;IAmF7BE,gBAAgBC,SAAhB,EAA2BC,GAA3B,EAAgC;MAG9B,OAAO,IAAP;IAtF2B;;IAyF7B,IAAIa,kBAAJ,GAAyB;MACvB,OAAO/nC,kBAAO,IAAPA,EAAa,oBAAbA,EAAmC,KAAnCA,CAAP;IA1F2B;;EAAA;;EA6F/B,OAAO8pC,KAAP;AAxKY,CAAC,EAAf;;;;;;;;;;;;;ACl0CA;;AAmBA;;AACA;;AACA;;AACA;;AACA;;AAQA;;AAOA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAMA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,MAAM2G,iCAAiC9mD,OAAO+mD,MAAP/mD,CAAc;EACnDvE,cAAc,CAAC,CADoC;EAEnDC,iBAAiB,KAFkC;EAGnDC,cAAc,KAHqC;EAInDC,iBAAiB,IAJkC;EAKnDC,qBAAqB,KAL8B;EAMnDC,gBAAgB,IANmC;EAOnDC,SAAS,IAP0C;EAQnDC,qBAAqB;AAR8B,CAAdgE,CAAvC;AAWA,MAAMgnD,cAAc;EAClBC,QAAQ,CADU;EAElBC,SAAS;AAFS,CAApB;AAcA,MAAMC,wBAAwB,EAA9B;AAEA,MAAMC,WAAWjwD,QAAQhD,OAARgD,EAAjB;;AAGA,SAASkwD,kBAAT,CAA4BxtD,KAA5B,EAAmCytD,eAAe,KAAlD,EAAyD;EACvD,IAAI3nD,MAAMC,OAAND,CAAc9F,KAAd8F,CAAJ,EAA0B;IAExB,KAAK,IAAI/I,IAAI,CAAR,EAAWiJ,KAAKhG,MAAM7D,MAA3B,EAAmCY,IAAIiJ,EAAvC,EAA2CjJ,GAA3C,EAAgD;MAC9C,MAAM2wD,UAAUF,mBAAmBxtD,MAAMjD,CAAN,CAAnB,EAAkD,IAAlD,CAAhB;;MACA,IAAI2wD,OAAJ,EAAa;QACX,OAAOA,OAAP;MAH4C;IAFxB;;IAQxB7tD,gBAAM,iCAAgCG,KAAjC,EAALH;IACA,OAAO,aAAP;EAVqD;;EAavD,IAAI,EAAEG,iBAAiBimB,gBAAnB,CAAJ,EAA8B;IAC5B,IAAIwnC,YAAJ,EAAkB;MAChB,OAAO,IAAP;IAF0B;;IAI5B,OAAO,aAAP;EAjBqD;;EAmBvD,QAAQztD,MAAMjG,IAAd;IACE,KAAK,QAAL;IACA,KAAK,YAAL;MACE,OAAO,aAAP;;IACF,KAAK,UAAL;MACE,OAAO,UAAP;;IACF,KAAK,QAAL;MACE,OAAO,QAAP;;IACF,KAAK,SAAL;MACE,OAAO,SAAP;;IACF,KAAK,QAAL;MACE,OAAO,QAAP;;IACF,KAAK,SAAL;MACE,OAAO,SAAP;;IACF,KAAK,YAAL;MACE,OAAO,aAAP;;IACF,KAAK,WAAL;MACE,OAAO,YAAP;;IACF,KAAK,WAAL;MACE,OAAO,YAAP;;IACF,KAAK,WAAL;MACE,OAAO,YAAP;;IACF,KAAK,YAAL;MACE,OAAO,YAAP;;IACF,KAAK,WAAL;MACE,OAAO,WAAP;;IACF,KAAK,KAAL;MACE,OAAO,KAAP;;IACF,KAAK,YAAL;MACE,OAAO,YAAP;;IACF,KAAK,OAAL;MACE,OAAO,OAAP;;IACF,KAAK,YAAL;MACE,OAAO,YAAP;EAjCJ;;EAmCA,IAAI0zD,YAAJ,EAAkB;IAChB,OAAO,IAAP;EAvDqD;;EAyDvD5tD,gBAAM,2BAA0BG,MAAMjG,IAAjC,EAAL8F;EACA,OAAO,aAAP;AA3KF;;AA8KA,SAAS8tD,6BAAT,CAAuC1yD,IAAvC,EAA6C;EAC3C,IACEA,KAAK0mD,EAAL1mD,KAAY2Y,UAAIkF,qBAAhB7d,IACAA,KAAKyvB,IAALzvB,CAAU,CAAVA,CADAA,IAEAA,KAAKyvB,IAALzvB,CAAU,CAAVA,EAAakoD,KAAbloD,GAAqB,CAHvB,EAIE;IACAA,KAAKyvB,IAALzvB,CAAU,CAAVA,EAAakoD,KAAbloD;EANyC;AA9K7C;;AAyLA,MAAM2yD,eAAN,CAAsB;EACpB,WAAWC,qBAAX,GAAmC;IACjC,OAAOrxC,kBAAO,IAAPA,EAAa,uBAAbA,EAAsC,EAAtCA,CAAP;EAFkB;;EAKpB,WAAWsxC,gBAAX,GAA8B;IAC5B,OAAOtxC,kBAAO,IAAPA,EAAa,kBAAbA,EAAiC,GAAjCA,CAAP;EANkB;;EASpB1iB,cAAc;IACZ,KAAK07B,KAAL;EAVkB;;EAapBu4B,QAAQ;IACN,IAAI,EAAE,KAAKC,OAAP,GAAiBJ,gBAAgBE,gBAArC,EAAuD;MACrD,OAAO,KAAP;IAFI;;IAIN,KAAKE,OAAL,GAAe,CAAf;IACA,OAAO,KAAKC,OAAL,IAAgBtmD,KAAKC,GAALD,EAAvB;EAlBkB;;EAqBpB6tB,QAAQ;IACN,KAAKy4B,OAAL,GAAetmD,KAAKC,GAALD,KAAaimD,gBAAgBC,qBAA5C;IACA,KAAKG,OAAL,GAAe,CAAf;EAvBkB;;AAAA;;AA2BtB,MAAMt2B,gBAAN,CAAuB;EACrB59B,YAAY;IACViL,IADU;IAEVnK,OAFU;IAGV8H,SAHU;IAIVi1B,SAJU;IAKVzB,SALU;IAMVC,gBANU;IAOVC,qBAPU;IAQVC,gBARU;IASVta,UAAU;EATA,CAAZ,EAUG;IACD,KAAKhX,IAAL,GAAYA,IAAZ;IACA,KAAKnK,OAAL,GAAeA,OAAf;IACA,KAAK8H,SAAL,GAAiBA,SAAjB;IACA,KAAKi1B,SAAL,GAAiBA,SAAjB;IACA,KAAKzB,SAAL,GAAiBA,SAAjB;IACA,KAAKC,gBAAL,GAAwBA,gBAAxB;IACA,KAAKC,qBAAL,GAA6BA,qBAA7B;IACA,KAAKC,gBAAL,GAAwBA,gBAAxB;IACA,KAAKta,OAAL,GAAeA,WAAWkxC,8BAA1B;IACA,KAAKiB,gBAAL,GAAwB,KAAxB;IAEA,KAAKC,sBAAL,GAA8B,KAAKC,gBAAL,CAAsBhgC,IAAtB,CAA2B,IAA3B,CAA9B;EAvBmB;;EA8BrB,IAAIigC,mBAAJ,GAA0B;IACxB,MAAMlJ,qBAAqB,IAAImJ,4BAAJ,CAAuB;MAChDvpD,MAAM,KAAKA,IADqC;MAEhDhD,iBAAiB,KAAKga,OAAL,CAAaha;IAFkB,CAAvB,CAA3B;IAIA,OAAOya,kBAAO,IAAPA,EAAa,qBAAbA,EAAoC2oC,kBAApC3oC,CAAP;EAnCmB;;EAsCrB8iB,MAAMivB,aAAa,IAAnB,EAAyB;IACvB,MAAMC,eAAeroD,OAAOC,MAAPD,CAAc,IAAdA,CAArB;IACAqoD,aAAazyC,OAAbyyC,GAAuBroD,OAAOg5B,MAAPh5B,CACrBA,OAAOC,MAAPD,CAAc,IAAdA,CADqBA,EAErB,KAAK4V,OAFgB5V,EAGrBooD,UAHqBpoD,CAAvBqoD;IAKA,OAAOA,YAAP;EA7CmB;;EAgDrBz1B,cAAchC,SAAd,EAAyBT,gBAAzB,EAA2C;IACzC,IAAI,EAAES,qBAAqBpxB,gBAAvB,CAAJ,EAAkC;MAChC,OAAO,KAAP;IAFuC;;IAIzC,IAAIoxB,UAAUjQ,KAAViQ,IAAmBT,iBAAiBxO,GAAjBwO,CAAqBS,UAAUjQ,KAA/BwP,CAAvB,EAA8D;MAC5D,OAAO,KAAP;IALuC;;IAQzC,MAAMm4B,YAAY,IAAI1lC,kBAAJ,CAAWuN,gBAAX,CAAlB;;IACA,IAAIS,UAAUjQ,KAAd,EAAqB;MACnB2nC,UAAUtlC,GAAVslC,CAAc13B,UAAUjQ,KAAxB2nC;IAVuC;;IAazC,MAAMC,QAAQ,CAAC33B,SAAD,CAAd;IAAA,MACEhyB,OAAO,KAAKA,IADd;;IAEA,OAAO2pD,MAAMvyD,MAAb,EAAqB;MACnB,MAAMwyD,OAAOD,MAAMxT,KAANwT,EAAb;MAEA,MAAME,gBAAgBD,KAAKvrD,GAALurD,CAAS,WAATA,CAAtB;;MACA,IAAIC,yBAAyBjpD,gBAA7B,EAAmC;QACjC,SAASkpD,YAAT,IAAyBD,cAAchnC,YAAdgnC,EAAzB,EAAuD;UACrD,IAAIC,wBAAwB1rD,eAA5B,EAAiC;YAC/B,IAAIsrD,UAAU3mC,GAAV2mC,CAAcI,YAAdJ,CAAJ,EAAiC;cAC/B;YAF6B;;YAI/B,IAAI;cACFI,eAAe9pD,KAAKwiB,KAALxiB,CAAW8pD,YAAX9pD,CAAf8pD;YADF,EAEE,OAAOpwD,EAAP,EAAW;cAEXgwD,UAAUtlC,GAAVslC,CAAcI,YAAdJ;cAEAznD,gBAAM,wCAAuCvI,EAAG,IAAhDuI;cACA;YAX6B;UADoB;;UAerD,IAAI,EAAE6nD,wBAAwBlpD,gBAA1B,CAAJ,EAAqC;YACnC;UAhBmD;;UAkBrD,IAAIkpD,aAAa/nC,KAAjB,EAAwB;YACtB2nC,UAAUtlC,GAAVslC,CAAcI,aAAa/nC,KAA3B2nC;UAnBmD;;UAsBrD,MAAMK,KAAKD,aAAazrD,GAAbyrD,CAAiB,IAAjBA,CAAX;;UACA,IAAIC,cAAc7oC,gBAAlB,EAAwB;YACtB,IAAI6oC,GAAG/0D,IAAH+0D,KAAY,QAAhB,EAA0B;cACxB,OAAO,IAAP;YAFoB;;YAItB;UA3BmD;;UA6BrD,IAAIA,OAAOxxC,SAAPwxC,IAAoBhpD,MAAMC,OAAND,CAAcgpD,EAAdhpD,CAAxB,EAA2C;YACzC,WAAW0sB,OAAX,IAAsBs8B,EAAtB,EAA0B;cACxB,IAAIt8B,mBAAmBvM,gBAAnBuM,IAA2BA,QAAQz4B,IAARy4B,KAAiB,QAAhD,EAA0D;gBACxD,OAAO,IAAP;cAFsB;YADe;UA7BU;QADtB;MAJhB;;MA4CnB,MAAMu8B,WAAWJ,KAAKvrD,GAALurD,CAAS,SAATA,CAAjB;;MACA,IAAI,EAAEI,oBAAoBppD,gBAAtB,CAAJ,EAAiC;QAC/B;MA9CiB;;MAgDnB,SAASqpD,OAAT,IAAoBD,SAASnnC,YAATmnC,EAApB,EAA6C;QAC3C,IAAIC,mBAAmB7rD,eAAvB,EAA4B;UAC1B,IAAIsrD,UAAU3mC,GAAV2mC,CAAcO,OAAdP,CAAJ,EAA4B;YAI1B;UALwB;;UAO1B,IAAI;YACFO,UAAUjqD,KAAKwiB,KAALxiB,CAAWiqD,OAAXjqD,CAAViqD;UADF,EAEE,OAAOvwD,EAAP,EAAW;YAEXgwD,UAAUtlC,GAAVslC,CAAcO,OAAdP;YAEAznD,gBAAM,sCAAqCvI,EAAG,IAA9CuI;YACA;UAdwB;QADe;;QAkB3C,IAAI,EAAEgoD,mBAAmBt8B,uBAArB,CAAJ,EAAsC;UACpC;QAnByC;;QAqB3C,IAAIs8B,QAAQxmC,IAARwmC,CAAaloC,KAAjB,EAAwB;UACtB2nC,UAAUtlC,GAAVslC,CAAcO,QAAQxmC,IAARwmC,CAAaloC,KAA3B2nC;QAtByC;;QAwB3C,MAAMQ,aAAaD,QAAQxmC,IAARwmC,CAAa5rD,GAAb4rD,CAAiB,WAAjBA,CAAnB;;QACA,IAAI,EAAEC,sBAAsBtpD,gBAAxB,CAAJ,EAAmC;UACjC;QA1ByC;;QA6B3C,IAAIspD,WAAWnoC,KAAXmoC,IAAoBR,UAAU3mC,GAAV2mC,CAAcQ,WAAWnoC,KAAzB2nC,CAAxB,EAAyD;UACvD;QA9ByC;;QAiC3CC,MAAMxyD,IAANwyD,CAAWO,UAAXP;;QACA,IAAIO,WAAWnoC,KAAf,EAAsB;UACpB2nC,UAAUtlC,GAAVslC,CAAcQ,WAAWnoC,KAAzB2nC;QAnCyC;MAhD1B;IAfoB;;IA0GzC,WAAW3rD,GAAX,IAAkB2rD,SAAlB,EAA6B;MAC3Bn4B,iBAAiBnN,GAAjBmN,CAAqBxzB,GAArBwzB;IA3GuC;;IA6GzC,OAAO,KAAP;EA7JmB;;EAgKrB,MAAM83B,gBAAN,CAAuBr0D,IAAvB,EAA6B;IAC3B,MAAMm1D,aAAa,KAAK/4B,gBAAL,CAAsB/yB,GAAtB,CAA0BrJ,IAA1B,CAAnB;;IACA,IAAIm1D,UAAJ,EAAgB;MACd,OAAOA,UAAP;IAHyB;;IAK3B,IAAIj0D,IAAJ;;IAEA,IAAI,KAAK8gB,OAAL,CAAa7Z,OAAb,KAAyB,IAA7B,EAAmC;MAEjC,MAAMyZ,MAAM,GAAG,KAAKI,OAAL,CAAa7Z,OAAhB,GAA0BnI,IAAK,QAA3C;MACA,MAAMo1D,WAAW,MAAM5nC,MAAM5L,GAAN,CAAvB;;MACA,IAAI,CAACwzC,SAASC,EAAd,EAAkB;QAChB,MAAM,IAAI30D,KAAJ,CACH,2CAA0CkhB,GAAI,WAAUwzC,SAASE,UAAW,IADzE,CAAN;MAL+B;;MASjCp0D,OAAO;QACLq0D,UAAU,IAAIn0D,UAAJ,CAAe,MAAMg0D,SAASz5B,WAATy5B,EAArB,CADL;QAELI,iBAAiB97C,0BAAoBC;MAFhC,CAAPzY;IATF,OAaO;MAELA,OAAO,MAAM,KAAKL,OAAL,CAAaoG,eAAb,CAA6B,kBAA7B,EAAiD;QAAEjH;MAAF,CAAjD,CAAbkB;IAtByB;;IAyB3B,IAAIA,KAAKs0D,eAALt0D,KAAyBwY,0BAAoBrF,IAAjD,EAAuD;MAErD,KAAK+nB,gBAAL,CAAsB3X,GAAtB,CAA0BzkB,IAA1B,EAAgCkB,IAAhC;IA3ByB;;IA6B3B,OAAOA,IAAP;EA7LmB;;EAgMrB,MAAMu0D,qBAAN,CAA4Bz1D,IAA5B,EAAkC;IAChC,MAAMm1D,aAAa,KAAK94B,qBAAL,CAA2BhzB,GAA3B,CAA+BrJ,IAA/B,CAAnB;;IACA,IAAIm1D,UAAJ,EAAgB;MACd,OAAO,IAAIlkC,cAAJ,CAAWkkC,UAAX,CAAP;IAH8B;;IAQhC,IACE,KAAKnzC,OAAL,CAAa9Z,cAAb,IACAlI,SAAS,QADT,IAEAA,SAAS,cAHX,EAIE;MACA,OAAO,IAAP;IAb8B;;IAgBhC,MAAM01D,6BAA6BC,2CAAnC;IAAA,MACElrD,WAAWirD,2BAA2B11D,IAA3B,CADb;IAEA,IAAIkB,IAAJ;;IAEA,IAAI,KAAK8gB,OAAL,CAAa5Z,mBAAb,KAAqC,IAAzC,EAA+C;MAC7C,MAAMwZ,MAAM,GAAG,KAAKI,OAAL,CAAa5Z,mBAAhB,GAAsCqC,QAAtC,EAAZ;MACA,MAAM2qD,WAAW,MAAM5nC,MAAM5L,GAAN,CAAvB;;MACA,IAAI,CAACwzC,SAASC,EAAd,EAAkB;QAChBvvD,gBACG,gDAA+C8b,GAAI,WAAUwzC,SAASE,UAAW,IADpFxvD;MADF,OAIO;QACL5E,OAAO,MAAMk0D,SAASz5B,WAATy5B,EAAbl0D;MAR2C;IAA/C,OAUO;MAEL,IAAI;QACFA,OAAO,MAAM,KAAKL,OAAL,CAAaoG,eAAb,CAA6B,uBAA7B,EAAsD;UACjEwD;QADiE,CAAtD,CAAbvJ;MADF,EAIE,OAAOsF,CAAP,EAAU;QACVV,gBACG,gDAA+C2E,QAAS,WAAUjE,CAAE,IADvEV;MAPG;IA9ByB;;IA2ChC,IAAI,CAAC5E,IAAL,EAAW;MACT,OAAO,IAAP;IA5C8B;;IAgDhC,KAAKm7B,qBAAL,CAA2B5X,GAA3B,CAA+BzkB,IAA/B,EAAqCkB,IAArC;IAEA,OAAO,IAAI+vB,cAAJ,CAAW/vB,IAAX,CAAP;EAlPmB;;EAqPrB,MAAM00D,gBAAN,CACE54B,SADF,EAEE64B,IAFF,EAGE/1C,KAHF,EAIEmf,YAJF,EAKEn8B,IALF,EAMEwiC,YANF,EAOEolB,oBAPF,EAQE;IACA,MAAMj8B,OAAOonC,KAAKpnC,IAAlB;IACA,MAAMynB,SAASznB,KAAKd,QAALc,CAAc,QAAdA,CAAf;IACA,IAAIyO,OAAOzO,KAAKd,QAALc,CAAc,MAAdA,CAAX;;IACA,IAAI1iB,MAAMC,OAAND,CAAcmxB,IAAdnxB,KAAuBmxB,KAAK96B,MAAL86B,KAAgB,CAA3C,EAA8C;MAC5CA,OAAOvX,WAAKiC,aAALjC,CAAmBuX,IAAnBvX,CAAPuX;IADF,OAEO;MACLA,OAAO,IAAPA;IAPF;;IAUA,IAAI44B,eAAJ,EAAqBC,YAArB;;IACA,IAAItnC,KAAKV,GAALU,CAAS,IAATA,CAAJ,EAAoB;MAClBqnC,kBAAkB,MAAM,KAAKE,uBAAL,CACtBvnC,KAAKplB,GAALolB,CAAS,IAATA,CADsB,EAEtBuO,SAFsB,CAAxB84B;IAZF;;IAiBA,IAAIA,oBAAoBvyC,SAAxB,EAAmC;MACjC0b,aAAaK,KAAbL,CAAmBplB,UAAIqE,uBAAvB+gB,EAAgD,CAAC,IAAD,EAAO62B,eAAP,CAAhD72B;IAlBF;;IAoBA,MAAMg3B,QAAQxnC,KAAKplB,GAALolB,CAAS,OAATA,CAAd;;IACA,IAAIwnC,KAAJ,EAAW;MACTF,eAAe;QACb7f,MADa;QAEbhZ,IAFa;QAGbpd,KAHa;QAIbo2C,UAAU,KAJG;QAKbC,UAAU;MALG,CAAfJ;MAQA,MAAMK,eAAeH,MAAM5sD,GAAN4sD,CAAU,GAAVA,CAArB;MACA,IAAII,aAAa,IAAjB;;MACA,IAAIzmC,wBAAOwmC,YAAPxmC,EAAqB,cAArBA,CAAJ,EAA0C;QACxCmmC,aAAaG,QAAbH,GAAwBE,MAAM5sD,GAAN4sD,CAAU,GAAVA,KAAkB,KAA1CF;QACAA,aAAaI,QAAbJ,GAAwBE,MAAM5sD,GAAN4sD,CAAU,GAAVA,KAAkB,KAA1CF;;QACA,IAAIE,MAAMloC,GAANkoC,CAAU,IAAVA,CAAJ,EAAqB;UACnB,MAAM9K,KAAK8K,MAAMppD,MAANopD,CAAa,IAAbA,CAAX;;UAEA,MAAM3K,mBAAmB5W,uBAAWoW,SAAXpW,CACvByW,EADuBzW,EAEvB,KAAK1pC,IAFkB0pC,EAGvBgW,oBAHuBhW,CAAzB;;UAKA,IAAI4W,gBAAJ,EAAsB;YACpB+K,aAAa/K,gBAAb+K;UADF,OAEO;YACLA,aAAa,MAAM,KAAKC,eAAL,CAAqB;cACtCnL,EADsC;cAEtCnuB,SAFsC;cAGtC0tB;YAHsC,CAArB,CAAnB2L;UAXiB;QAHmB;MAXjC;;MAkCT,IAAIv2C,SAASA,MAAMy2C,QAAnB,EAA6B;QAC3BF,aAAaA,cAAc3hB,uBAAWC,UAAXD,CAAsBI,GAAjDuhB;QACAv2C,MAAMy2C,QAANz2C,GAAiBu2C,WAAWrN,MAAXqN,CAAkBv2C,MAAMy2C,QAAxBF,EAAkC,CAAlCA,CAAjBv2C;MApCO;;MAuCTmf,aAAaK,KAAbL,CAAmBplB,UAAI2E,UAAvBygB,EAAmC,CAAC82B,YAAD,CAAnC92B;IA5DF;;IAkEA,MAAMtO,OAAOslC,QAAQ,CAAC/f,MAAD,EAAS,IAAT,CAAR,GAAyB,CAACA,MAAD,EAAShZ,IAAT,CAAtC;IACA+B,aAAaK,KAAbL,CAAmBplB,UAAIyE,qBAAvB2gB,EAA8CtO,IAA9CsO;IAEA,OAAO,KAAKnxB,eAAL,CAAqB;MAC1BxF,QAAQutD,IADkB;MAE1B/yD,IAF0B;MAG1Bk6B,WAAWvO,KAAKplB,GAALolB,CAAS,WAATA,KAAyBuO,SAHV;MAI1BiC,YAJ0B;MAK1BqG;IAL0B,CAArB,EAMJ1hC,IANI,CAMC,YAAY;MAClBq7B,aAAaK,KAAbL,CAAmBplB,UAAI0E,mBAAvB0gB,EAA4C,EAA5CA;;MAEA,IAAIg3B,KAAJ,EAAW;QACTh3B,aAAaK,KAAbL,CAAmBplB,UAAI4E,QAAvBwgB,EAAiC,CAAC82B,YAAD,CAAjC92B;MAJgB;;MAOlB,IAAI62B,oBAAoBvyC,SAAxB,EAAmC;QACjC0b,aAAaK,KAAbL,CAAmBplB,UAAIsE,gBAAvB8gB,EAAyC,EAAzCA;MARgB;IANb,EAAP;EAlUmB;;EAqVrBu3B,aAAazpC,KAAb,EAAoB0pC,OAApB,EAA6BC,gBAAgB,KAA7C,EAAoD;IAClD,MAAMC,YAAYF,UAAU,CAACA,QAAQG,MAARH,IAAkBA,QAAQv1D,IAARu1D,CAAatxC,MAAhC,CAAV,GAAoD,IAAtE;;IAEA,IAAI,KAAKgvC,gBAAL,IAAyBuC,aAA7B,EAA4C;MAC1C,OAAO,KAAK71D,OAAL,CAAaM,IAAb,CACL,WADK,EAEL,CAAC4rB,KAAD,EAAQ,OAAR,EAAiB0pC,OAAjB,CAFK,EAGLE,SAHK,CAAP;IAJgD;;IAUlD,OAAO,KAAK91D,OAAL,CAAaM,IAAb,CACL,KADK,EAEL,CAAC4rB,KAAD,EAAQ,KAAKpkB,SAAb,EAAwB,OAAxB,EAAiC8tD,OAAjC,CAFK,EAGLE,SAHK,CAAP;EA/VmB;;EAsWrB,MAAME,sBAAN,CAA6B;IAC3B75B,SAD2B;IAE3B85B,KAF2B;IAG3BC,WAAW,KAHgB;IAI3B93B,YAJ2B;IAK3BlxB,QAL2B;IAM3BipD,eAN2B;IAO3BtM;EAP2B,CAA7B,EAQG;IACD,MAAMj8B,OAAOqoC,MAAMroC,IAAnB;IACA,MAAMwoC,WAAWxoC,KAAK1B,KAAtB;IACA,MAAMygB,IAAI/e,KAAKplB,GAALolB,CAAS,GAATA,EAAc,OAAdA,CAAV;IACA,MAAMyoC,IAAIzoC,KAAKplB,GAALolB,CAAS,GAATA,EAAc,QAAdA,CAAV;;IAEA,IAAI,EAAE+e,KAAK,OAAOA,CAAP,KAAa,QAApB,KAAiC,EAAE0pB,KAAK,OAAOA,CAAP,KAAa,QAApB,CAArC,EAAoE;MAClEpxD,gBAAK,+CAALA;MACA;IARD;;IAUD,MAAM+B,eAAe,KAAKma,OAAL,CAAana,YAAlC;;IACA,IAAIA,iBAAiB,CAAC,CAAlBA,IAAuB2lC,IAAI0pB,CAAJ1pB,GAAQ3lC,YAAnC,EAAiD;MAC/C,MAAMwZ,MAAM,sDAAZ;;MAEA,IAAI,KAAKW,OAAL,CAAaja,YAAjB,EAA+B;QAC7BjC,gBAAKub,GAALvb;QACA;MAL6C;;MAO/C,MAAM,IAAIpF,KAAJ,CAAU2gB,GAAV,CAAN;IAlBD;;IAqBD,IAAIy0C,eAAJ;;IACA,IAAIrnC,KAAKV,GAALU,CAAS,IAATA,CAAJ,EAAoB;MAClBqnC,kBAAkB,MAAM,KAAKE,uBAAL,CACtBvnC,KAAKplB,GAALolB,CAAS,IAATA,CADsB,EAEtBuO,SAFsB,CAAxB84B;IAvBD;;IA6BD,MAAMqB,YAAY1oC,KAAKplB,GAALolB,CAAS,IAATA,EAAe,WAAfA,KAA+B,KAAjD;IACA,IAAIgoC,OAAJ,EAAa9lC,IAAb;;IACA,IAAIwmC,SAAJ,EAAe;MAMb,MAAMC,cAAc3oC,KAAKplB,GAALolB,CAAS,GAATA,EAAc,aAAdA,CAApB;MACA,MAAM4oC,kBAAmB7pB,IAAI,CAAJA,IAAU,CAAnC;MACA,MAAM8pB,WAAWR,MAAM3jC,QAAN2jC,CAAeO,kBAAkBH,CAAjCJ,CAAjB;MACA,MAAMhtC,SAAS2E,KAAKd,QAALc,CAAc,GAAdA,EAAmB,QAAnBA,CAAf;;MAEA,IAAI,KAAK0lC,gBAAT,EAA2B;QACzBsC,UAAUc,gBAASC,aAATD,CAAuB;UAC/BD,QAD+B;UAE/Bpd,OAAO1M,CAFwB;UAG/ByS,QAAQiX,CAHuB;UAI/BO,yBAAyBX,iBAAiBY,2BAJX;UAK/BC,eAAe,CAAC,CAAC7tC,MAAF,IAAYA,OAAO,CAAP,IAAY,CALR;UAM/BstC;QAN+B,CAAvBG,CAAVd;QASAA,QAAQmB,MAARnB,GAAiB,CAAC,CAAC1oD,QAAnB0oD;QACA9lC,OAAO,CAAC8lC,OAAD,CAAP9lC;QAEAsO,aAAa44B,WAAb54B,CACEplB,UAAIkF,qBADNkgB,EAEEtO,IAFFsO,EAGE62B,eAHF72B;;QAMA,IAAIlxB,QAAJ,EAAc;UACZipD,gBAAgBvyC,GAAhBuyC,CAAoBjpD,QAApBipD,EAA8BC,QAA9BD,EAAwC;YACtCpP,IAAI/tC,UAAIkF,qBAD8B;YAEtC4R,IAFsC;YAGtCmlC;UAHsC,CAAxCkB;QApBuB;;QA0BzB;MArCW;;MAwCbP,UAAUc,gBAASO,UAATP,CAAoB;QAC5BD,QAD4B;QAE5Bpd,OAAO1M,CAFqB;QAG5ByS,QAAQiX,CAHoB;QAI5BO,yBAAyBX,iBAAiBY,2BAJd;QAK5BC,eAAe,CAAC,CAAC7tC,MAAF,IAAYA,OAAO,CAAP,IAAY,CALX;QAM5BstC;MAN4B,CAApBG,CAAVd;;MASA,IAAIA,QAAQsB,mBAAZ,EAAiC;QAG/B94B,aAAa44B,WAAb54B,CACEplB,UAAIyF,wBADN2f,EAEE,EAFFA,EAGE62B,eAHF72B;;QAMA,IAAIlxB,QAAJ,EAAc;UACZipD,gBAAgBvyC,GAAhBuyC,CAAoBjpD,QAApBipD,EAA8BC,QAA9BD,EAAwC;YACtCpP,IAAI/tC,UAAIyF,wBAD8B;YAEtCqR,MAAM,EAFgC;YAGtCmlC;UAHsC,CAAxCkB;QAV6B;;QAgB/B;MAjEW;;MAoEb,MAAMjqC,QAAS,QAAO,KAAK6Q,SAAL,CAAehB,WAAf,EAAR,EAAd;MACAqC,aAAa+4B,aAAb/4B,CAA2BlS,KAA3BkS;;MACA,KAAKu3B,YAAL,CAAkBzpC,KAAlB,EAAyB0pC,OAAzB;;MAEA9lC,OAAO,CACL;QACEzvB,MAAM6rB,KADR;QAEEmtB,OAAOuc,QAAQvc,KAFjB;QAGE+F,QAAQwW,QAAQxW,MAHlB;QAIEmX,aAAaX,QAAQW,WAJvB;QAKEhO,OAAO;MALT,CADK,CAAPz4B;MASAsO,aAAa44B,WAAb54B,CACEplB,UAAIkF,qBADNkgB,EAEEtO,IAFFsO,EAGE62B,eAHF72B;;MAMA,IAAIlxB,QAAJ,EAAc;QACZipD,gBAAgBvyC,GAAhBuyC,CAAoBjpD,QAApBipD,EAA8BC,QAA9BD,EAAwC;UACtCpP,IAAI/tC,UAAIkF,qBAD8B;UAEtC4R,IAFsC;UAGtCmlC;QAHsC,CAAxCkB;MAxFW;;MA8Fb;IA7HD;;IAgID,MAAMiB,WAAWxpC,KAAKplB,GAALolB,CAAS,IAATA,EAAe,OAAfA,KAA2B,KAA5C;IACA,MAAMypC,OAAOzpC,KAAKplB,GAALolB,CAAS,MAATA,KAAoB,KAAjC;IAEA,MAAM0pC,yBAAyB,GAA/B;;IAEA,IAAIpB,YAAY,CAACkB,QAAblB,IAAyB,CAACmB,IAA1BnB,IAAkCvpB,IAAI0pB,CAAJ1pB,GAAQ2qB,sBAA9C,EAAsE;MACpE,MAAMC,WAAW,IAAIb,eAAJ,CAAa;QAC5BvsD,MAAM,KAAKA,IADiB;QAE5BqtD,KAAKr7B,SAFuB;QAG5B85B,KAH4B;QAI5BC,QAJ4B;QAK5B3L,oBAAoB,KAAKkJ,mBALG;QAM5B5J;MAN4B,CAAb,CAAjB;MAUA+L,UAAU2B,SAASE,eAATF,CAA2C,IAA3CA,CAAV3B;MACAx3B,aAAa44B,WAAb54B,CACEplB,UAAIqF,uBADN+f,EAEE,CAACw3B,OAAD,CAFFx3B,EAGE62B,eAHF72B;MAKA;IAtJD;;IA2JD,IAAIlS,QAAS,OAAM,KAAK6Q,SAAL,CAAehB,WAAf,EAAP,EAAZ;IAAA,IACE85B,gBAAgB,KADlB;;IAGA,IAAI,KAAKvC,gBAAT,EAA2B;MACzBpnC,QAAQ,GAAG,KAAK6Q,SAAL,CAAe0E,QAAf,EAA0B,UAASvV,KAAtC,EAARA;IADF,OAEO,IAAIkqC,QAAJ,EAAc;MACnBP,gBAAgB,KAAKp6B,gBAAL,CAAsBi8B,WAAtB,CACdtB,QADc,EAEd,KAAKtuD,SAFS,CAAhB+tD;;MAKA,IAAIA,aAAJ,EAAmB;QACjB3pC,QAAQ,GAAG,KAAK6Q,SAAL,CAAe0E,QAAf,EAA0B,IAAGvV,KAAhC,EAARA;MAPiB;IAhKpB;;IA4KDkS,aAAa+4B,aAAb/4B,CAA2BlS,KAA3BkS;IACAtO,OAAO,CAAC5D,KAAD,EAAQygB,CAAR,EAAW0pB,CAAX,CAAPvmC;;IAEA4mC,gBAASiB,UAATjB,CAAoB;MAClBvsD,MAAM,KAAKA,IADO;MAElBqtD,KAAKr7B,SAFa;MAGlB85B,KAHkB;MAIlBC,QAJkB;MAKlB3L,oBAAoB,KAAKkJ,mBALP;MAMlB5J;IANkB,CAApB6M,EAQG3zD,IARH2zD,CAQQa,YAAY;MAChB3B,UAAU2B,SAASE,eAATF,CAA2C,KAA3CA,CAAV3B;;MAEA,IAAI1oD,YAAYkpD,QAAZlpD,IAAwB2oD,aAA5B,EAA2C;QACzC,KAAKp6B,gBAAL,CAAsBm8B,WAAtB,CAAkCxB,QAAlC,EAA4CR,QAAQv1D,IAARu1D,CAAar0D,MAAzD;MAJc;;MAMhB,OAAO,KAAKo0D,YAAL,CAAkBzpC,KAAlB,EAAyB0pC,OAAzB,EAAkCC,aAAlC,CAAP;IAdJ,GAgBGhzD,KAhBH6zD,CAgBS5zD,UAAU;MACfmC,gBAAM,2BAA0BinB,KAAM,OAAMppB,MAAO,IAAnDmC;MAEA,OAAO,KAAK0wD,YAAL,CAAkBzpC,KAAlB,EAAyC,IAAzC,EAA+C2pC,aAA/C,CAAP;IAnBJ;;IAsBAz3B,aAAa44B,WAAb54B,CAAyBplB,UAAIoF,iBAA7BggB,EAAgDtO,IAAhDsO,EAAsD62B,eAAtD72B;;IAEA,IAAIlxB,QAAJ,EAAc;MACZipD,gBAAgBvyC,GAAhBuyC,CAAoBjpD,QAApBipD,EAA8BC,QAA9BD,EAAwC;QACtCpP,IAAI/tC,UAAIoF,iBAD8B;QAEtC0R,IAFsC;QAGtCmlC;MAHsC,CAAxCkB;;MAMA,IAAIC,QAAJ,EAAc;QACZx1C,kBAAO,CAACs1C,QAARt1C,EAAkB,wCAAlBA;QACA,KAAK6a,gBAAL,CAAsBo8B,YAAtB,CAAmCzB,QAAnC,EAA6C,KAAKtuD,SAAlD;;QAEA,IAAI+tD,aAAJ,EAAmB;UACjB,KAAKp6B,gBAAL,CAAsBq8B,OAAtB,CAA8B1B,QAA9B,EAAwC;YACtClqC,KADsC;YAEtC66B,IAAI/tC,UAAIoF,iBAF8B;YAGtC0R,IAHsC;YAItCmlC,eAJsC;YAKtC8C,UAAU;UAL4B,CAAxC;QALU;MAPF;IAvMb;EA9WkB;;EA6kBrBC,YACE/4C,KADF,EAEEkd,SAFF,EAGEiC,YAHF,EAIEn8B,IAJF,EAKEg2D,YALF,EAMEpO,oBANF,EAOE;IACA,MAAMqO,eAAej5C,MAAMzW,GAANyW,CAAU,GAAVA,CAArB;IACA,MAAMk5C,eAAe;MACnB7pB,SAASrvB,MAAMzW,GAANyW,CAAU,GAAVA,EAAe9f,IADL;MAEnBu2D,UAAUz2C,MAAMzW,GAANyW,CAAU,IAAVA;IAFS,CAArB;IAOA,MAAMm5C,cAAcn5C,MAAMzW,GAANyW,CAAU,IAAVA,CAApB;;IACA,IAAIo5C,6BAAcD,WAAdC,CAAJ,EAAgC;MAC9B,MAAMC,aAAa,KAAK7E,mBAAL,CAAyBjoD,MAAzB,CAAgC4sD,WAAhC,CAAnB;;MACA,MAAMG,cAAc,IAAIh4D,UAAJ,CAAe,GAAf,CAApB;MACA,MAAMi4D,MAAM,IAAIxM,YAAJ,CAAiB,CAAjB,CAAZ;;MACA,KAAK,IAAI7pD,IAAI,CAAb,EAAgBA,IAAI,GAApB,EAAyBA,GAAzB,EAA8B;QAC5Bq2D,IAAI,CAAJ,IAASr2D,IAAI,GAAbq2D;QACAF,WAAWE,GAAX,EAAgB,CAAhB,EAAmBA,GAAnB,EAAwB,CAAxB;QACAD,YAAYp2D,CAAZ,IAAkBq2D,IAAI,CAAJ,IAAS,GAATA,GAAgB,CAAlCD;MAP4B;;MAS9BJ,aAAaI,WAAbJ,GAA2BI,WAA3BJ;IAnBF;;IAsBA,OAAO,KAAKpD,gBAAL,CACL54B,SADK,EAEL+7B,YAFK,EAGLC,YAHK,EAIL/5B,YAJK,EAKLn8B,IALK,EAMLg2D,aAAapT,KAAboT,CAAmBvzB,KAAnBuzB,EANK,EAOLpO,oBAPK,CAAP;EA1mBmB;;EAqnBrB4O,uBAAuBC,EAAvB,EAA2B;IACzB,IAAIC,aAAJ;;IACA,IAAIztD,MAAMC,OAAND,CAAcwtD,EAAdxtD,CAAJ,EAAuB;MACrBytD,gBAAgBD,EAAhBC;IADF,OAEO,IAAIN,6BAAcK,EAAdL,CAAJ,EAAuB;MAC5BM,gBAAgB,CAACD,EAAD,CAAhBC;IADK,OAEA;MACL,OAAO,IAAP;IAPuB;;IAUzB,MAAMC,eAAe,EAArB;IACA,IAAIC,SAAS,CAAb;IAAA,IACEC,kBAAkB,CADpB;;IAEA,WAAWrhC,KAAX,IAAoBkhC,aAApB,EAAmC;MACjC,MAAMP,cAAc,KAAKjuD,IAAL,CAAU24B,UAAV,CAAqBrL,KAArB,CAApB;MACAohC;;MAEA,IAAI9pC,wBAAOqpC,WAAPrpC,EAAoB,UAApBA,CAAJ,EAAqC;QACnC6pC,aAAat3D,IAAbs3D,CAAkB,IAAlBA;QACA;MAFF,OAGO,IAAI,CAACP,6BAAcD,WAAdC,CAAL,EAAiC;QACtC,OAAO,IAAP;MAR+B;;MAWjC,MAAMC,aAAa,KAAK7E,mBAAL,CAAyBjoD,MAAzB,CAAgC4sD,WAAhC,CAAnB;;MACA,MAAMG,cAAc,IAAIh4D,UAAJ,CAAe,GAAf,CAApB;MAAA,MACEi4D,MAAM,IAAIxM,YAAJ,CAAiB,CAAjB,CADR;;MAEA,KAAK,IAAIvjC,IAAI,CAAb,EAAgBA,IAAI,GAApB,EAAyBA,GAAzB,EAA8B;QAC5B+vC,IAAI,CAAJ,IAAS/vC,IAAI,GAAb+vC;QACAF,WAAWE,GAAX,EAAgB,CAAhB,EAAmBA,GAAnB,EAAwB,CAAxB;QACAD,YAAY9vC,CAAZ,IAAkB+vC,IAAI,CAAJ,IAAS,GAATA,GAAgB,CAAlCD;MAjB+B;;MAmBjCK,aAAat3D,IAAbs3D,CAAkBL,WAAlBK;MACAE;IAjCuB;;IAoCzB,IAAI,EAAED,WAAW,CAAXA,IAAgBA,WAAW,CAA7B,CAAJ,EAAqC;MACnC,OAAO,IAAP;IArCuB;;IAuCzB,IAAIC,oBAAoB,CAAxB,EAA2B;MACzB,OAAO,IAAP;IAxCuB;;IA0CzB,OAAOF,YAAP;EA/pBmB;;EAkqBrBG,iBACEhS,EADF,EAEEtT,KAFF,EAGEtX,SAHF,EAIE68B,OAJF,EAKEC,WALF,EAME76B,YANF,EAOEn8B,IAPF,EAQEi3D,uBARF,EASE;IAEA,MAAMC,eAAe,IAAIl7B,2BAAJ,EAArB;;IAGA,MAAMm7B,mBAAmBruD,iBAAKuiB,KAALviB,CAAW;MAClCZ,MAAM,KAAKA,IADuB;MAElCojB,WAAW,CAAC0rC,YAAYzwD,GAAZywD,CAAgB,WAAhBA,CAAD,EAA+B98B,SAA/B;IAFuB,CAAXpxB,CAAzB;;IAKA,OAAO,KAAKkC,eAAL,CAAqB;MAC1BxF,QAAQuxD,OADkB;MAE1B/2D,IAF0B;MAG1Bk6B,WAAWi9B,gBAHe;MAI1Bh7B,cAAc+6B;IAJY,CAArB,EAMJp2D,IANI,CAMC,YAAY;MAChB,MAAMs2D,iBAAiBF,aAAaG,KAAbH,EAAvB;MACA,MAAMI,kBAAkBC,iCACtBH,cADsBG,EAEtBP,WAFsBO,EAGtB/lB,KAHsB+lB,CAAxB;MAOAp7B,aAAaq7B,eAAbr7B,CAA6B+6B,aAAaO,YAA1Ct7B;MACAA,aAAaK,KAAbL,CAAmB2oB,EAAnB3oB,EAAuBm7B,eAAvBn7B;;MAEA,IAAI66B,YAAY/sC,KAAhB,EAAuB;QACrBgtC,wBAAwBt1C,GAAxBs1C,CAAyC,IAAzCA,EAA+CD,YAAY/sC,KAA3DgtC,EAAkE;UAChEG,cADgE;UAEhEzrC,MAAMqrC;QAF0D,CAAlEC;MAbc;IANb,GAyBJr2D,KAzBI,CAyBEC,UAAU;MACf,IAAIA,kBAAkB0E,oBAAtB,EAAsC;QACpC;MAFa;;MAIf,IAAI,KAAK2Z,OAAL,CAAaja,YAAjB,EAA+B;QAG7B,KAAKlH,OAAL,CAAaM,IAAb,CAAkB,oBAAlB,EAAwC;UACtC+M,WAAWC,2BAAqB8R;QADM,CAAxC;QAGAna,gBAAM,yCAAwCnC,MAAO,IAArDmC;QACA;MAXa;;MAaf,MAAMnC,MAAN;IAtCG,EAAP;EArrBmB;;EA+tBrBgiC,cACE3I,SADF,EAEEw9B,QAFF,EAGEC,OAHF,EAIEx7B,YAJF,EAKEn8B,IALF,EAME4iD,KANF,EAOE7L,mBAAmB,IAPrB,EAQElgB,cAAc,IARhB,EASE;IACA,MAAM8L,WACJ+0B,YAAYA,SAAS,CAAT,aAAuBtuC,gBAAnCsuC,GAA0CA,SAAS,CAAT,EAAYx6D,IAAtDw6D,GAA6D,IAD/D;IAGA,OAAO,KAAKE,QAAL,CACLj1B,QADK,EAELg1B,OAFK,EAGLz9B,SAHK,EAIL6c,gBAJK,EAKLlgB,WALK,EAOJ/1B,IAPI,CAOC+2D,cAAc;MAClB,IAAI,CAACA,WAAW36C,IAAX26C,CAAgBC,WAArB,EAAkC;QAChC,OAAOD,UAAP;MAFgB;;MAIlB,OAAOA,WACJE,aADIF,CACU,IADVA,EACgB39B,SADhB29B,EAC2B73D,IAD3B63D,EAEJ/2D,IAFI+2D,CAEC,YAAY;QAGhB17B,aAAaq7B,eAAbr7B,CAA6B07B,WAAWG,iBAAxC77B;QAEA,OAAO07B,UAAP;MAPG,GASJj3D,KATIi3D,CASEh3D,UAAU;QAGf,KAAK9C,OAAL,CAAaM,IAAb,CAAkB,oBAAlB,EAAwC;UACtC+M,WAAWC,2BAAqBiS;QADM,CAAxC;QAGA,OAAO,IAAI26C,cAAJ,CAAmB;UACxBC,YAAY,cADY;UAExBh7C,MAAM,IAAIi7C,gBAAJ,CAAe,0BAAyBt3D,MAA1B,EAAd,CAFkB;UAGxB8qB,MAAMksC,WAAW36C,IAHO;UAIxB7b,kBAAkB,KAAK6d;QAJC,CAAnB,CAAP;MAfG,EAAP;IAXG,GAkCJpe,IAlCI,CAkCC+2D,cAAc;MAClBjV,MAAM1lC,IAAN0lC,GAAaiV,WAAW36C,IAAxB0lC;MACAiV,WAAWx5D,IAAXw5D,CAAgB,KAAK95D,OAArB85D;MACA,OAAOA,UAAP;IArCG,EAAP;EA5uBmB;;EAqxBrBO,WAAWxpB,KAAX,EAAkBgU,KAAlB,EAAyB;IACvB,MAAM1lC,OAAO0lC,MAAM1lC,IAAnB;IACA,MAAMwgC,SAASxgC,KAAK+/B,aAAL//B,CAAmB0xB,KAAnB1xB,CAAf;;IAEA,IAAIA,KAAK9e,IAAT,EAAe;MACb,MAAMi6D,iBAAiB,CAAC,EACtBzV,MAAM0V,iBAAN1V,GAA0Bz0C,wBAAkBU,gBADtB,CAAxB;;MAGA,IACEwpD,kBACAzV,MAAM2V,cAAN3V,CAAqB1lD,IAArB0lD,KAA8B,SAD9ByV,IAEAn7C,KAAKlY,eAFLqzD,IAGA,KAAKn5C,OAAL,CAAala,eAJf,EAKE;QACA61B,iBAAiB29B,cAAjB39B,CACE3d,IADF2d,EAEE6iB,MAFF7iB,EAGE,KAAK98B,OAHP88B,EAIE,KAAK3b,OAJP2b;MAVW;IAJQ;;IAsBvB,OAAO6iB,MAAP;EA3yBmB;;EA8yBrB+a,gBAAgB7V,KAAhB,EAAuB;IACrB,IAAIA,MAAM1lC,IAAV,EAAgB;MACd;IAFmB;;IAIrB,MAAMrc,SAAS,IAAI0f,iBAAJ,CACb,+DADa,CAAf;;IAIA,IAAI,KAAKrB,OAAL,CAAaja,YAAjB,EAA+B;MAG7B,KAAKlH,OAAL,CAAaM,IAAb,CAAkB,oBAAlB,EAAwC;QACtC+M,WAAWC,2BAAqBkS;MADM,CAAxC;MAGAva,gBAAM,qBAAoBnC,MAAO,IAAjCmC;MACA;IAfmB;;IAiBrB,MAAMnC,MAAN;EA/zBmB;;EAk0BrB,MAAM2W,SAAN,CAAgB;IACd0iB,SADc;IAEdw+B,MAFc;IAGdv8B,YAHc;IAIdlxB,QAJc;IAKdjL,IALc;IAMdg2D,YANc;IAOd2C,gBAPc;IAQd/Q;EARc,CAAhB,EASG;IACD,MAAMgR,YAAYF,OAAOzuC,KAAzB;IACA,IAAI4uC,iBAAiB,IAArB;IAEA,MAAMC,YAAY,EAAlB;IACA,MAAMC,aAAaL,OAAO5tC,OAAP4tC,EAAnB;IACA,IAAIn7D,UAAUkD,QAAQhD,OAARgD,EAAd;;IACA,KAAK,IAAIP,IAAI,CAAR,EAAWiJ,KAAK4vD,WAAWz5D,MAAhC,EAAwCY,IAAIiJ,EAA5C,EAAgDjJ,GAAhD,EAAqD;MACnD,MAAM0J,MAAMmvD,WAAW74D,CAAX,CAAZ;MACA,MAAMiD,QAAQu1D,OAAOnyD,GAAPmyD,CAAW9uD,GAAX8uD,CAAd;;MACA,QAAQ9uD,GAAR;QACE,KAAK,MAAL;UACE;;QACF,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,GAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;UACEkvD,UAAUz5D,IAAVy5D,CAAe,CAAClvD,GAAD,EAAMzG,KAAN,CAAf21D;UACA;;QACF,KAAK,MAAL;UACED,iBAAiB,KAAjBA;UAEAt7D,UAAUA,QAAQuD,IAARvD,CAAa,MAAM;YAC3B,OAAO,KAAKslC,aAAL,CACL3I,SADK,EAEL,IAFK,EAGL/2B,MAAM,CAAN,CAHK,EAILg5B,YAJK,EAKLn8B,IALK,EAMLg2D,aAAapT,KANR,EAOL9hD,IAPK,CAOA,UAAU+2D,UAAV,EAAsB;cAC3B17B,aAAa+4B,aAAb/4B,CAA2B07B,WAAWK,UAAtC/7B;cACA28B,UAAUz5D,IAAVy5D,CAAe,CAAClvD,GAAD,EAAM,CAACiuD,WAAWK,UAAZ,EAAwB/0D,MAAM,CAAN,CAAxB,CAAN,CAAf21D;YATK,EAAP;UADQ,EAAVv7D;UAaA;;QACF,KAAK,IAAL;UACEu7D,UAAUz5D,IAAVy5D,CAAe,CAAClvD,GAAD,EAAM+mD,mBAAmBxtD,KAAnB,CAAN,CAAf21D;UACA;;QACF,KAAK,OAAL;UACE,IAAIhsC,wBAAO3pB,KAAP2pB,EAAc,MAAdA,CAAJ,EAA2B;YACzBgsC,UAAUz5D,IAAVy5D,CAAe,CAAClvD,GAAD,EAAM,KAAN,CAAfkvD;YACA;UAHJ;;UAKE,IAAI31D,iBAAiB2F,gBAArB,EAA2B;YACzB+vD,iBAAiB,KAAjBA;YAEAt7D,UAAUA,QAAQuD,IAARvD,CAAa,MAAM;cAC3B,OAAO,KAAKw4D,WAAL,CACL5yD,KADK,EAEL+2B,SAFK,EAGLiC,YAHK,EAILn8B,IAJK,EAKLg2D,YALK,EAMLpO,oBANK,CAAP;YADQ,EAAVrqD;YAUAu7D,UAAUz5D,IAAVy5D,CAAe,CAAClvD,GAAD,EAAM,IAAN,CAAfkvD;UAbF,OAcO;YACL91D,gBAAK,wBAALA;UApBJ;;UAsBE;;QACF,KAAK,IAAL;UACE,MAAM2zD,eAAe,KAAKH,sBAAL,CAA4BrzD,KAA5B,CAArB;UACA21D,UAAUz5D,IAAVy5D,CAAe,CAAClvD,GAAD,EAAM+sD,YAAN,CAAfmC;UACA;;QAGF,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,KAAL;QACA,KAAK,IAAL;QACA,KAAK,KAAL;QACA,KAAK,KAAL;QACA,KAAK,MAAL;QACA,KAAK,KAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,KAAL;QACA,KAAK,IAAL;UAEE3uD,gBAAK,4BAA4BP,GAAjCO;UACA;;QACF;UACEA,gBAAK,oCAAoCP,GAAzCO;UACA;MAjFJ;IAVD;;IA8FD,OAAO5M,QAAQuD,IAARvD,CAAa,YAAY;MAC9B,IAAIu7D,UAAUx5D,MAAVw5D,GAAmB,CAAvB,EAA0B;QACxB38B,aAAaK,KAAbL,CAAmBplB,UAAIS,SAAvB2kB,EAAkC,CAAC28B,SAAD,CAAlC38B;MAF4B;;MAK9B,IAAI08B,cAAJ,EAAoB;QAClBF,iBAAiBh3C,GAAjBg3C,CAAqB1tD,QAArB0tD,EAA+BC,SAA/BD,EAA0CG,SAA1CH;MAN4B;IAAzB,EAAP;EAz6BmB;;EAo7BrBf,SACEj1B,QADF,EAEEzlB,IAFF,EAGEgd,SAHF,EAIE6c,mBAAmB,IAJrB,EAKElgB,cAAc,IALhB,EAME;IACA,MAAMmiC,YAAY,YAAY;MAC5B,OAAO,IAAIf,cAAJ,CAAmB;QACxBC,YAAY,cADY;QAExBh7C,MAAM,IAAIi7C,gBAAJ,CAAe,SAAQx1B,QAAS,qBAAhC,CAFkB;QAGxBhX,MAAMzO,IAHkB;QAIxB7b,kBAAkB,KAAK6d;MAJC,CAAnB,CAAP;IADF;;IASA,MAAMhX,OAAO,KAAKA,IAAlB;IACA,IAAIyvD,OAAJ;;IACA,IAAIz6C,IAAJ,EAAU;MAER,IAAI,EAAEA,gBAAgB5W,eAAlB,CAAJ,EAA4B;QAC1B,MAAM,IAAIia,iBAAJ,CAAgB,0CAAhB,CAAN;MAHM;;MAKRo3C,UAAUz6C,IAAVy6C;IALF,OAMO;MAEL,MAAMt1B,UAAUnI,UAAU3zB,GAAV2zB,CAAc,MAAdA,CAAhB;;MACA,IAAImI,OAAJ,EAAa;QACXs1B,UAAUt1B,QAAQt4B,MAARs4B,CAAeM,QAAfN,CAAVs1B;MAJG;IAlBP;;IAyBA,IAAI,CAACA,OAAL,EAAc;MACZ,MAAMl4D,aAAc,SAClBkjC,YAAazlB,QAAQA,KAAKvY,QAALuY,EACtB,oBAFD;;MAIA,IAAI,CAAC,KAAKgC,OAAL,CAAaja,YAAd,IAA8B,CAAC,KAAKosD,gBAAxC,EAA0D;QACxDruD,gBAAK,GAAGvD,UAAW,GAAnBuD;QACA,OAAOg2D,WAAP;MAPU;;MAUZ,KAAKj7D,OAAL,CAAaM,IAAb,CAAkB,oBAAlB,EAAwC;QACtC+M,WAAWC,2BAAqBmS;MADM,CAAxC;MAGAxa,gBAAK,GAAGvD,UAAW,+CAAnBuD;;MAIA,IAAI+zC,gBAAJ,EAAsB;QACpB4gB,UAAU5gB,gBAAV4gB;MADF,OAEO;QACLA,UAAU98B,iBAAiBkc,gBAA3B4gB;MApBU;IAzBd;;IAiDA,IAAI,KAAKtG,gBAAL,IAAyB,KAAK4H,aAAL,CAAmBhuC,GAAnB,CAAuB0sC,OAAvB,CAA7B,EAA8D;MAC5D,OAAOqB,WAAP;IAlDF;;IAqDA,IAAI,KAAK3/B,SAAL,CAAepO,GAAf,CAAmB0sC,OAAnB,CAAJ,EAAiC;MAC/B,OAAO,KAAKt+B,SAAL,CAAe9yB,GAAf,CAAmBoxD,OAAnB,CAAP;IAtDF;;IAyDAz6C,OAAOhV,KAAK24B,UAAL34B,CAAgByvD,OAAhBzvD,CAAPgV;;IACA,IAAI,EAAEA,gBAAgBpU,gBAAlB,CAAJ,EAA6B;MAC3B,OAAOkwD,WAAP;IA3DF;;IAgEA,IAAI97C,KAAKjS,QAALiS,IAAiB,KAAKmc,SAAL,CAAepO,GAAf,CAAmB/N,KAAKjS,QAAxB,CAArB,EAAwD;MACtD,OAAO,KAAKouB,SAAL,CAAe9yB,GAAf,CAAmB2W,KAAKjS,QAAxB,CAAP;IAjEF;;IAoEA,MAAMiuD,iBAAiB77D,oCAAvB;IAEA,IAAI87D,gBAAJ;;IACA,IAAI;MACFA,mBAAmB,KAAKC,eAAL,CAAqBl8C,IAArB,CAAnBi8C;MACAA,iBAAiBtiC,WAAjBsiC,GAA+BtiC,WAA/BsiC;IAFF,EAGE,OAAOt4D,MAAP,EAAe;MACfmC,gBAAM,uCAAsCnC,MAAO,IAAnDmC;MACA,OAAOg2D,WAAP;IA5EF;;IA8EA,MAAM;MAAEp2B,UAAF;MAAckC;IAAd,IAAuBq0B,gBAA7B;IAEA,MAAME,eAAe1B,mBAAmBrxD,eAAxC;IACA,IAAIgzD,MAAJ;;IACA,IAAID,YAAJ,EAAkB;MAChBC,SAAU,IAAG3B,QAAQhzD,QAARgzD,EAAJ,EAAT2B;IAnFF;;IAsFA,IAAIx0B,QAAQlC,sBAAsB95B,gBAAlC,EAAwC;MACtC,IAAI,CAAC85B,WAAW22B,WAAhB,EAA6B;QAC3B32B,WAAW22B,WAAX32B,GAAyBt5B,OAAOC,MAAPD,CAAc,IAAdA,CAAzBs5B;MAFoC;;MAItC,MAAM22B,cAAc32B,WAAW22B,WAA/B;;MAEA,IAAIA,YAAYz0B,IAAZ,CAAJ,EAAuB;QACrB,MAAM00B,eAAeD,YAAYz0B,IAAZ,EAAkBjY,QAAvC;;QACA,IAAIwsC,gBAAgBG,YAAhBH,IAAgC,KAAKhgC,SAAL,CAAepO,GAAf,CAAmBuuC,YAAnB,CAApC,EAAsE;UACpE,KAAKngC,SAAL,CAAezM,QAAf,CAAwB+qC,OAAxB,EAAiC6B,YAAjC;UACA,OAAO,KAAKngC,SAAL,CAAe9yB,GAAf,CAAmBoxD,OAAnB,CAAP;QAJmB;MAAvB,OAMO;QACL4B,YAAYz0B,IAAZ,IAAoB;UAClBw0B,QAAQ,KAAKx+B,SAAL,CAAe2E,YAAf;QADU,CAApB85B;MAboC;;MAkBtC,IAAIF,YAAJ,EAAkB;QAChBE,YAAYz0B,IAAZ,EAAkBjY,QAAlB0sC,GAA6B5B,OAA7B4B;MAnBoC;;MAqBtCD,SAASC,YAAYz0B,IAAZ,EAAkBw0B,MAA3BA;IA3GF;;IA6HA,IAAID,YAAJ,EAAkB;MAChB,KAAKhgC,SAAL,CAAe/M,GAAf,CAAmBqrC,OAAnB,EAA4BuB,eAAe37D,OAA3C;IADF,OAEO;MACL,IAAI,CAAC+7D,MAAL,EAAa;QACXA,SAAS,KAAKx+B,SAAL,CAAe2E,YAAf,EAAT65B;MAFG;;MAILp8C,KAAKjS,QAALiS,GAAiB,YAAWo8C,MAAZ,EAAhBp8C;MACA,KAAKmc,SAAL,CAAe/M,GAAf,CAAmBpP,KAAKjS,QAAxB,EAAkCiuD,eAAe37D,OAAjD;IApIF;;IAsIAohB,kBACE26C,UAAUA,OAAOl6C,UAAPk6C,CAAkB,GAAlBA,CADZ36C,EAEE,2CAFFA;IAOAzB,KAAKg7C,UAALh7C,GAAkB,GAAG,KAAK4d,SAAL,CAAe0E,QAAf,EAA0B,IAAG85B,MAAhC,EAAlBp8C;IAEA,KAAKu8C,aAAL,CAAmBN,gBAAnB,EACGr4D,IADH,CACQ44D,kBAAkB;MACtB,IAAIA,eAAeC,QAAfD,KAA4Bj5C,SAAhC,EAA2C;QACzCvY,KAAK0xD,KAAL1xD,CAAW2rB,WAAX3rB,CAAuBwxD,eAAeC,QAAtCzxD;MAFoB;;MAKtBgxD,eAAez7D,OAAfy7D,CACE,IAAIjB,cAAJ,CAAmB;QACjBC,YAAYh7C,KAAKg7C,UADA;QAEjBh7C,MAAMw8C,cAFW;QAGjB/tC,MAAMzO,IAHW;QAIjB7b,kBAAkB,KAAK6d;MAJN,CAAnB,CADFg6C;IANJ,GAeGt4D,KAfH,CAeSC,UAAU;MAGf,KAAK9C,OAAL,CAAaM,IAAb,CAAkB,oBAAlB,EAAwC;QACtC+M,WAAWC,2BAAqBoS;MADM,CAAxC;MAGAza,gBAAM,qCAAoCnC,MAAO,IAAjDmC;;MAEA,IAAI;QAEF,MAAM62D,YAAYj3B,cAAcA,WAAWr8B,GAAXq8B,CAAe,WAAfA,CAAhC;QACA,MAAMyJ,UAAUwtB,aAAaA,UAAUtzD,GAAVszD,CAAc,SAAdA,CAA7B;QACA,MAAMF,WAAWvtB,8BACf+sB,iBAAiBnwC,IADFojB,EAEfC,WAAWA,QAAQnvC,IAFJkvC,CAAjB;;QAIA,IAAIutB,aAAal5C,SAAjB,EAA4B;UAC1BvY,KAAK0xD,KAAL1xD,CAAW2rB,WAAX3rB,CAAuByxD,QAAvBzxD;QATA;MAAJ,EAWE,OAAOtG,EAAP,EAAW,CAnBE;;MAqBfs3D,eAAez7D,OAAfy7D,CACE,IAAIjB,cAAJ,CAAmB;QACjBC,YAAYh7C,KAAKg7C,UADA;QAEjBh7C,MAAM,IAAIi7C,gBAAJ,CACJt3D,kBAAkBjD,KAAlBiD,GAA0BA,OAAO6D,OAAjC7D,GAA2CA,MADvC,CAFW;QAKjB8qB,MAAMzO,IALW;QAMjB7b,kBAAkB,KAAK6d;MANN,CAAnB,CADFg6C;IApCJ;IA+CA,OAAOA,eAAe37D,OAAtB;EAxnCmB;;EA2nCrBu8D,UAAU39B,YAAV,EAAwB2oB,EAAxB,EAA4Bj3B,IAA5B,EAAkCksC,cAAc,KAAhD,EAAuD;IACrD,MAAMC,YAAY79B,aAAa78B,MAAb68B,GAAsB,CAAxC;;IACA,IAAI,CAACtO,IAAL,EAAW;MACTA,OAAO,EAAPA;IAHmD;;IAKrD,IAAI3K,MAAJ;;IACA,IACE82C,YAAY,CAAZA,IACA79B,aAAa89B,OAAb99B,CAAqB69B,SAArB79B,MAAoCplB,UAAI0F,aAF1C,EAGE;MAQA,IAAIs9C,WAAJ,EAAiB;QACf/2D,gBAAM,8BAA6B8hD,EAAG,4BAAtC9hD;QACAm5B,aAAaK,KAAbL,CAAmBplB,UAAIjP,IAAvBq0B,EAA6B,IAA7BA;MAVF;;MAaAjZ,SAAS,CAACghC,QAAD,EAAW,CAACA,QAAZ,EAAsBA,QAAtB,EAAgC,CAACA,QAAjC,CAAThhC;MACAiZ,aAAaK,KAAbL,CAAmBplB,UAAI0F,aAAvB0f,EAAsC,CAAC,CAAC2oB,EAAD,CAAD,EAAOj3B,IAAP,EAAa3K,MAAb,CAAtCiZ;;MAEA,IAAI49B,WAAJ,EAAiB;QACf59B,aAAaK,KAAbL,CAAmBplB,UAAIU,OAAvB0kB,EAAgC,IAAhCA;MAjBF;IAHF,OAsBO;MACL,MAAM+9B,SAAS/9B,aAAag+B,SAAbh+B,CAAuB69B,SAAvB79B,CAAf;MACA+9B,OAAO,CAAP,EAAU76D,IAAV66D,CAAepV,EAAfoV;MACAjxD,MAAMmX,SAANnX,CAAgB5J,IAAhB4J,CAAqB4X,KAArB5X,CAA2BixD,OAAO,CAAP,CAA3BjxD,EAAsC4kB,IAAtC5kB;MACAia,SAASg3C,OAAO,CAAP,CAATh3C;IAhCmD;;IAwCrD,QAAQ4hC,EAAR;MACE,KAAK/tC,UAAIkB,SAAT;QACEiL,OAAO,CAAP,IAAY3f,KAAKyd,GAALzd,CAAS2f,OAAO,CAAP,CAAT3f,EAAoBsqB,KAAK,CAAL,CAApBtqB,EAA6BsqB,KAAK,CAAL,IAAUA,KAAK,CAAL,CAAvCtqB,CAAZ2f;QACAA,OAAO,CAAP,IAAY3f,KAAKC,GAALD,CAAS2f,OAAO,CAAP,CAAT3f,EAAoBsqB,KAAK,CAAL,CAApBtqB,EAA6BsqB,KAAK,CAAL,IAAUA,KAAK,CAAL,CAAvCtqB,CAAZ2f;QACAA,OAAO,CAAP,IAAY3f,KAAKyd,GAALzd,CAAS2f,OAAO,CAAP,CAAT3f,EAAoBsqB,KAAK,CAAL,CAApBtqB,EAA6BsqB,KAAK,CAAL,IAAUA,KAAK,CAAL,CAAvCtqB,CAAZ2f;QACAA,OAAO,CAAP,IAAY3f,KAAKC,GAALD,CAAS2f,OAAO,CAAP,CAAT3f,EAAoBsqB,KAAK,CAAL,CAApBtqB,EAA6BsqB,KAAK,CAAL,IAAUA,KAAK,CAAL,CAAvCtqB,CAAZ2f;QACA;;MACF,KAAKnM,UAAIY,MAAT;MACA,KAAKZ,UAAIa,MAAT;QACEsL,OAAO,CAAP,IAAY3f,KAAKyd,GAALzd,CAAS2f,OAAO,CAAP,CAAT3f,EAAoBsqB,KAAK,CAAL,CAApBtqB,CAAZ2f;QACAA,OAAO,CAAP,IAAY3f,KAAKC,GAALD,CAAS2f,OAAO,CAAP,CAAT3f,EAAoBsqB,KAAK,CAAL,CAApBtqB,CAAZ2f;QACAA,OAAO,CAAP,IAAY3f,KAAKyd,GAALzd,CAAS2f,OAAO,CAAP,CAAT3f,EAAoBsqB,KAAK,CAAL,CAApBtqB,CAAZ2f;QACAA,OAAO,CAAP,IAAY3f,KAAKC,GAALD,CAAS2f,OAAO,CAAP,CAAT3f,EAAoBsqB,KAAK,CAAL,CAApBtqB,CAAZ2f;QACA;IAbJ;EAnqCmB;;EAorCrBswC,gBAAgB;IAAEnL,EAAF;IAAMnuB,SAAN;IAAiB0tB;EAAjB,CAAhB,EAAyD;IACvD,OAAOhW,uBAAWwW,UAAXxW,CAAsB;MAC3ByW,EAD2B;MAE3BngD,MAAM,KAAKA,IAFgB;MAG3BgyB,SAH2B;MAI3BouB,oBAAoB,KAAKkJ,mBAJE;MAK3B5J;IAL2B,CAAtBhW,EAMJhxC,KANIgxC,CAME/wC,UAAU;MACjB,IAAIA,kBAAkB0E,oBAAtB,EAAsC;QACpC,OAAO,IAAP;MAFe;;MAIjB,IAAI,KAAK2Z,OAAL,CAAaja,YAAjB,EAA+B;QAG7B,KAAKlH,OAAL,CAAaM,IAAb,CAAkB,oBAAlB,EAAwC;UACtC+M,WAAWC,2BAAqBqS;QADM,CAAxC;QAGA1a,gBAAM,2CAA0CnC,MAAO,IAAvDmC;QACA,OAAO,IAAP;MAXe;;MAajB,MAAMnC,MAAN;IAnBK,EAAP;EArrCmB;;EA4sCrBu5D,aAAa;IACXC,OADW;IAEXngC,SAFW;IAGX0tB,oBAHW;IAIX0S;EAJW,CAAb,EAKG;IAGD,IAAIzzD,KAAKyzD,yBAAyB/zD,GAAzB+zD,CAA6BD,OAA7BC,CAAT;;IACA,IAAI,CAACzzD,EAAL,EAAS;MACP,IAAI+T,cAAc2/C,iBAAQH,YAARG,CAChBF,OADgBE,EAEhB,KAAKryD,IAFWqyD,EAGhBrgC,SAHgBqgC,EAIhB,KAAKx8D,OAJWw8D,EAKhB,KAAK/I,mBALW+I,EAMhB3S,oBANgB2S,CAAlB;;MAQA,MAAMC,YAAY5/C,YAAYy8C,KAAZz8C,EAAlB;MACA/T,KAAM,WAAU,KAAKi0B,SAAL,CAAehB,WAAf,EAAX,EAALjzB;MACAyzD,yBAAyB34C,GAAzB24C,CAA6BD,OAA7BC,EAAsCzzD,EAAtCyzD;MACA,KAAKv8D,OAAL,CAAaM,IAAb,CAAkB,KAAlB,EAAyB,CAACwI,EAAD,EAAK,KAAKhB,SAAV,EAAqB,SAArB,EAAgC20D,SAAhC,CAAzB;IAhBD;;IAkBD,OAAO3zD,EAAP;EAnuCmB;;EAsuCrB4zD,aACEt+B,YADF,EAEE2oB,EAFF,EAGEj3B,IAHF,EAIEw6B,EAJF,EAKEqS,QALF,EAMExgC,SANF,EAOEl6B,IAPF,EAQE4nD,oBARF,EASEqP,uBATF,EAUEqD,wBAVF,EAWE;IAEA,MAAMK,cAAc9sC,KAAK+sC,GAAL/sC,EAApB;;IAEA,IAAI8sC,uBAAuBvxC,gBAA3B,EAAiC;MAC/B,MAAMyxC,aAAaH,SAAS3wD,MAAT2wD,CAAgBC,YAAYz9D,IAA5Bw9D,CAAnB;MAEA,MAAMI,qBACJD,sBAAsBv0D,eAAtBu0D,IACA5D,wBAAwB/O,QAAxB+O,CAAiC4D,UAAjC5D,CAFF;;MAGA,IAAI6D,kBAAJ,EAAwB;QACtB,IAAI;UACF,MAAMtpB,QAAQ6W,GAAGwB,IAAHxB,GAAUA,GAAGwB,IAAHxB,CAAQnC,MAARmC,CAAex6B,IAAfw6B,EAAqB,CAArBA,CAAVA,GAAoC,IAAlD;UACA,MAAMiP,kBAAkBC,iCACtBuD,mBAAmB1D,cADGG,EAEtBuD,mBAAmBnvC,IAFG4rC,EAGtB/lB,KAHsB+lB,CAAxB;UAKAp7B,aAAaK,KAAbL,CAAmB2oB,EAAnB3oB,EAAuBm7B,eAAvBn7B;UACA,OAAO1b,SAAP;QARF,EASE,OAAO7e,EAAP,EAAW,CAVS;MANO;;MAqB/B,MAAMm1D,UAAU,KAAK7uD,IAAL,CAAU24B,UAAV,CAAqBg6B,UAArB,CAAhB;;MACA,IAAI9D,OAAJ,EAAa;QACX,MAAMprC,OAAOorC,mBAAmBlhC,uBAAnBkhC,GAAgCA,QAAQprC,IAAxCorC,GAA+CA,OAA5D;QACA,MAAMgE,UAAUpvC,KAAKplB,GAALolB,CAAS,aAATA,CAAhB;;QAEA,IAAIovC,YAAYzK,YAAYC,MAA5B,EAAoC;UAClC,MAAM/e,QAAQ6W,GAAGwB,IAAHxB,GAAUA,GAAGwB,IAAHxB,CAAQnC,MAARmC,CAAex6B,IAAfw6B,EAAqB,CAArBA,CAAVA,GAAoC,IAAlD;UACA,OAAO,KAAKyO,gBAAL,CACLhS,EADK,EAELtT,KAFK,EAGLtX,SAHK,EAIL68B,OAJK,EAKLprC,IALK,EAMLwQ,YANK,EAOLn8B,IAPK,EAQLi3D,uBARK,CAAP;QAFF,OAYO,IAAI8D,YAAYzK,YAAYE,OAA5B,EAAqC;UAC1C,MAAM6J,UAAU1uC,KAAKplB,GAALolB,CAAS,SAATA,CAAhB;UACA,MAAMynB,SAASznB,KAAKd,QAALc,CAAc,QAAdA,CAAf;UACA,MAAM1B,QAAQ,KAAKmwC,YAAL,CAAkB;YAC9BC,OAD8B;YAE9BngC,SAF8B;YAG9B0tB,oBAH8B;YAI9B0S;UAJ8B,CAAlB,CAAd;UAMAn+B,aAAaK,KAAbL,CAAmB2oB,EAAnB3oB,EAAuB,CAAC,SAAD,EAAYlS,KAAZ,EAAmBmpB,MAAnB,CAAvBjX;UACA,OAAO1b,SAAP;QA1BS;;QA4BX,MAAM,IAAIF,iBAAJ,CAAiB,wBAAuBw6C,OAAxB,EAAhB,CAAN;MAlD6B;IAJjC;;IAyDA,MAAM,IAAIx6C,iBAAJ,CAAiB,wBAAuBo6C,WAAxB,EAAhB,CAAN;EA1yCmB;;EA6yCrBK,2BAA2B1kB,KAA3B,EAAkC2kB,cAAlC,EAAkDC,aAAlD,EAAiE;IAC/D,MAAMC,cAAc,EAApB;;IACA,IAAI,EAAEF,cAAF,GAAmBE,WAAvB,EAAoC;MAClCn4D,gBAAK,4CAALA;MACA;IAJ6D;;IAM/D,MAAM1D,SAASg3C,MAAMh3C,MAArB;IACA,MAAM87D,WAAW,KAAKlzD,IAAL,CAAU24B,UAAV,CAAqByV,MAAM,CAAN,CAArB,CAAjB;;IACA,IAAIh3C,SAAS,CAATA,IAAc,EAAE87D,oBAAoBhyC,gBAAtB,CAAlB,EAA+C;MAC7CpmB,gBAAK,+BAALA;MACA;IAV6D;;IAY/D,QAAQo4D,SAASl+D,IAAjB;MACE,KAAK,KAAL;MACA,KAAK,IAAL;MACA,KAAK,KAAL;QACEg+D,cAAc77D,IAAd67D,CAAmBE,SAASl+D,IAA5Bg+D;QACA;;MACF;QACEl4D,gBAAM,oBAAmBo4D,SAASl+D,IAAK,2BAAvC8F;QACA;IARJ;;IAUA,KAAK,IAAI9C,IAAI,CAAb,EAAgBA,IAAIZ,MAApB,EAA4BY,GAA5B,EAAiC;MAC/B,MAAMm7D,MAAM/kB,MAAMp2C,CAAN,CAAZ;MACA,MAAM8mC,SAAS,KAAK9+B,IAAL,CAAU24B,UAAV,CAAqBw6B,GAArB,CAAf;;MACA,IAAIpyD,MAAMC,OAAND,CAAc+9B,MAAd/9B,CAAJ,EAA2B;QACzB,MAAMqyD,eAAe,EAArB;QACAJ,cAAc77D,IAAd67D,CAAmBI,YAAnBJ;;QAEA,KAAKF,0BAAL,CAAgCh0B,MAAhC,EAAwCi0B,cAAxC,EAAwDK,YAAxD;MAJF,OAKO,IAAID,eAAe/0D,eAAnB,EAAwB;QAE7B40D,cAAc77D,IAAd67D,CAAmBG,IAAI12D,QAAJ02D,EAAnBH;MAV6B;IAtB8B;EA7yC5C;;EAk1CrB,MAAMhI,uBAAN,CAA8BqI,iBAA9B,EAAiDrhC,SAAjD,EAA4D;IAC1D,IAAI84B,eAAJ;;IACA,IAAIuI,6BAA6BnyC,gBAAjC,EAAuC;MACrC,MAAMqC,aAAayO,UAAU3zB,GAAV2zB,CAAc,YAAdA,CAAnB;MACA84B,kBAAkBvnC,WAAWllB,GAAXklB,CAAe8vC,kBAAkBr+D,IAAjCuuB,CAAlBunC;IAFF,OAGO,IAAIuI,6BAA6BzyD,gBAAjC,EAAuC;MAC5CkqD,kBAAkBuI,iBAAlBvI;IADK,OAEA;MACL,MAAM,IAAIzyC,iBAAJ,CAAgB,wCAAhB,CAAN;IARwD;;IAW1D,MAAMi7C,sBAAsBxI,gBAAgBzsD,GAAhBysD,CAAoB,MAApBA,EAA4B91D,IAAxD;;IACA,IAAIs+D,wBAAwB,KAA5B,EAAmC;MACjC,OAAO;QACLxyC,MAAMwyC,mBADD;QAEL30D,IAAImsD,gBAAgB/oC;MAFf,CAAP;IADF,OAKO,IAAIuxC,wBAAwB,MAA5B,EAAoC;MACzC,MAAMC,aAAazI,gBAAgBzsD,GAAhBysD,CAAoB,IAApBA,CAAnB;;MACA,IAAI/pD,MAAMC,OAAND,CAAcwyD,UAAdxyD,CAAJ,EAA+B;QAC7B,MAAM87C,SAAS,EAAf;;QACA,KAAKiW,0BAAL,CAAgCS,UAAhC,EAA4C,CAA5C,EAA+C1W,MAA/C;;QACA,IAAIA,OAAOzlD,MAAPylD,GAAgB,CAApB,EAAuB;UACrB,OAAO;YACL/7B,MAAM,MADD;YAELyyC,YAAY1W;UAFP,CAAP;QAJ2B;MAFU;;MAazC,MAAM2W,wBAAwB1I,gBAAgBzsD,GAAhBysD,CAAoB,MAApBA,CAA9B;;MACA,IACE/pD,MAAMC,OAAND,CAAcyyD,qBAAdzyD,KACAyyD,iCAAiC5yD,gBAFnC,EAGE;QACA,MAAM6yD,WAAW,EAAjB;;QACA,IAAI1yD,MAAMC,OAAND,CAAcyyD,qBAAdzyD,CAAJ,EAA0C;UACxC,WAAW2yD,GAAX,IAAkBF,qBAAlB,EAAyC;YACvCC,SAASt8D,IAATs8D,CAAcC,IAAIj3D,QAAJi3D,EAAdD;UAFsC;QAA1C,OAIO;UAELA,SAASt8D,IAATs8D,CAAcD,sBAAsBzxC,KAApC0xC;QARF;;QAWA,OAAO;UACL3yC,MAAMwyC,mBADD;UAELr0B,KAAKw0B,QAFA;UAGLE,QACE7I,gBAAgBzsD,GAAhBysD,CAAoB,GAApBA,aAAoC5pC,gBAApC4pC,GACIA,gBAAgBzsD,GAAhBysD,CAAoB,GAApBA,EAAyB91D,IAD7B81D,GAEI,IAND;UAOLyI,YAAY;QAPP,CAAP;MAdF,OAuBO,IAAIC,iCAAiCp1D,eAArC,EAA0C;QAC/C,OAAO;UACL0iB,MAAMwyC,mBADD;UAEL30D,IAAI60D,sBAAsB/2D,QAAtB+2D;QAFC,CAAP;MAtCuC;IAjBe;;IA6D1D,OAAO,IAAP;EA/4CmB;;EAk5CrB1wD,gBAAgB;IACdxF,MADc;IAEdxF,IAFc;IAGdk6B,SAHc;IAIdiC,YAJc;IAKdqG,eAAe,IALD;IAMduU,mBAAmB,IANL;IAOdvvC;EAPc,CAAhB,EAQG;IAGD0yB,YAAYA,aAAapxB,iBAAKqiB,KAA9B+O;IACAsI,eAAeA,gBAAgB,IAAIs5B,SAAJ,EAA/Bt5B;;IAEA,IAAI,CAACrG,YAAL,EAAmB;MACjB,MAAM,IAAIv+B,KAAJ,CAAU,mDAAV,CAAN;IAPD;;IAUD,IAAIm+D,wBAAwB,IAAIC,uCAAJ,CAA4B,EAAEx0D,SAASsF,0BAAoBO,MAA/B,CAA5B,CAA5B;IACA,IAAIV,OAAO,IAAX;IACA,IAAIzE,OAAO,KAAKA,IAAhB;IACA,IAAI6xD,cAAc,KAAlB;IACA,MAAM7F,kBAAkB,IAAI+H,4BAAJ,EAAxB;IACA,MAAMrU,uBAAuB,IAAIsU,iCAAJ,EAA7B;IACA,MAAMvD,mBAAmB,IAAIwD,6BAAJ,EAAzB;IACA,MAAMlF,0BAA0B,IAAImF,oCAAJ,EAAhC;IACA,MAAM9B,2BAA2B,IAAI5uC,GAAJ,EAAjC;;IAEA,MAAM2wC,QAAQniC,UAAU3zB,GAAV2zB,CAAc,SAAdA,KAA4BpxB,iBAAKqiB,KAA/C;;IACA,MAAMuvC,WAAWxgC,UAAU3zB,GAAV2zB,CAAc,SAAdA,KAA4BpxB,iBAAKqiB,KAAlD;;IACA,MAAM6qC,eAAe,IAAIsG,YAAJ,CAAiB95B,YAAjB,CAArB;IACA,MAAM+5B,eAAe,IAAI3X,qBAAJ,CAA0Bp/C,MAA1B,EAAkC0C,IAAlC,EAAwC8tD,YAAxC,CAArB;IACA,MAAMwG,kBAAkB,IAAIzL,eAAJ,EAAxB;;IAEA,SAAS0L,sBAAT,CAAgCC,QAAhC,EAA0C;MACxC,KAAK,IAAIx8D,IAAI,CAAR,EAAWiJ,KAAKozD,aAAavX,gBAAlC,EAAoD9kD,IAAIiJ,EAAxD,EAA4DjJ,GAA5D,EAAiE;QAC/Di8B,aAAaK,KAAbL,CAAmBplB,UAAIU,OAAvB0kB,EAAgC,EAAhCA;MAFsC;IA1BzC;;IAgCD,OAAO,IAAI17B,OAAJ,CAAY,SAASk8D,WAAT,CAAqBl/D,OAArB,EAA8BoE,MAA9B,EAAsC;MACvD,MAAM+6D,OAAO,UAAUr/D,OAAV,EAAmB;QAC9BkD,QAAQC,GAARD,CAAY,CAAClD,OAAD,EAAU4+B,aAAa0gC,KAAvB,CAAZp8D,EAA2CK,IAA3CL,CAAgD,YAAY;UAC1D,IAAI;YACFk8D,YAAYl/D,OAAZ,EAAqBoE,MAArB;UADF,EAEE,OAAOD,EAAP,EAAW;YACXC,OAAOD,EAAP;UAJwD;QAA5D,GAMGC,MANHpB;MADF;;MASAT,KAAKrC,mBAALqC;MACAw8D,gBAAgB7jC,KAAhB6jC;MAEA,MAAM3X,YAAY,EAAlB;MACA,IAAIiY,IAAJ,EAAU58D,CAAV,EAAaiJ,EAAb,EAAiBk/C,EAAjB,EAAqBnrD,IAArB,EAA2B6/D,WAA3B;;MACA,OAAO,EAAED,OAAON,gBAAgBtL,KAAhBsL,EAAT,CAAP,EAA0C;QAKxC3X,UAAUh3B,IAAVg3B,GAAiB,IAAjBA;;QACA,IAAI,CAAC0X,aAAa94D,IAAb84D,CAAkB1X,SAAlB0X,CAAL,EAAmC;UACjC;QAPsC;;QASxC,IAAI1uC,OAAOg3B,UAAUh3B,IAArB;QACA,IAAIi3B,KAAKD,UAAUC,EAAnB;QACAiX,sBAAsBiB,kBAAtBjB,CAAyCjX,EAAzCiX;;QAEA,QAAQjX,KAAK,CAAb;UACE,KAAK/tC,UAAIiE,YAAT;YAEE+hD,cAAclvC,KAAK,CAAL,aAAmBzE,gBAAjC2zC;YACA7/D,OAAO2wB,KAAK,CAAL,EAAQ3wB,IAAfA;;YAEA,IAAI6/D,WAAJ,EAAiB;cACf,MAAME,aAAa/I,gBAAgB/L,SAAhB+L,CAA0Bh3D,IAA1Bg3D,CAAnB;;cACA,IAAI+I,UAAJ,EAAgB;gBACdlB,sBAAsBmB,aAAtBnB,CAAoChlD,UAAIiE,YAAxC+gD,EAAsD,CAAC,OAAD,CAAtDA;gBACA5/B,aAAa44B,WAAb54B,CACE8gC,WAAWnY,EADb3oB,EAEE8gC,WAAWpvC,IAFbsO,EAGE8gC,WAAWjK,eAHb72B;gBAMA20B,8BAA8BmM,UAA9B;gBACApvC,OAAO,IAAPA;gBACA;cAZa;YALnB;;YAqBE+uC,KACE,IAAIn8D,OAAJ,CAAY,UAAU08D,cAAV,EAA0BC,aAA1B,EAAyC;cACnD,IAAI,CAACL,WAAL,EAAkB;gBAChB,MAAM,IAAIx8C,iBAAJ,CAAgB,sCAAhB,CAAN;cAFiD;;cAKnD,IAAIwyC,OAAOsJ,MAAMtyD,MAANsyD,CAAan/D,IAAbm/D,CAAX;;cACA,IAAItJ,gBAAgBzsD,eAApB,EAAyB;gBACvB,MAAM22D,aAAa/I,gBAAgBhM,QAAhBgM,CAAyBnB,IAAzBmB,CAAnB;;gBACA,IAAI+I,UAAJ,EAAgB;kBACdlB,sBAAsBmB,aAAtBnB,CAAoChlD,UAAIiE,YAAxC+gD,EAAsD,CAAC,OAAD,CAAtDA;kBACA5/B,aAAa44B,WAAb54B,CACE8gC,WAAWnY,EADb3oB,EAEE8gC,WAAWpvC,IAFbsO,EAGE8gC,WAAWjK,eAHb72B;kBAMA20B,8BAA8BmM,UAA9B;kBACAE;kBACA;gBAZqB;;gBAevB,MAAME,cAAc1wD,KAAK6sB,gBAAL7sB,CAAsB2wD,OAAtB3wD,CAClBomD,IADkBpmD,EAElBA,KAAK9G,SAFa8G,CAApB;;gBAIA,IAAI0wD,WAAJ,EAAiB;kBACftB,sBAAsBmB,aAAtBnB,CAAoChlD,UAAIiE,YAAxC+gD,EAAsD,CAAC,OAAD,CAAtDA;kBACA5/B,aAAa+4B,aAAb/4B,CAA2BkhC,YAAYpzC,KAAvCkS;kBACAA,aAAa44B,WAAb54B,CACEkhC,YAAYvY,EADd3oB,EAEEkhC,YAAYxvC,IAFdsO,EAGEkhC,YAAYrK,eAHd72B;kBAMAghC;kBACA;gBA7BqB;;gBAgCvBpK,OAAO7qD,KAAKwiB,KAALxiB,CAAW6qD,IAAX7qD,CAAP6qD;cAtCiD;;cAyCnD,IAAI,EAAEA,gBAAgBl9B,uBAAlB,CAAJ,EAAmC;gBACjC,MAAM,IAAItV,iBAAJ,CAAgB,4BAAhB,CAAN;cA1CiD;;cA6CnD,MAAMyI,OAAO+pC,KAAKpnC,IAALonC,CAAUxsD,GAAVwsD,CAAc,SAAdA,CAAb;;cACA,IAAI,EAAE/pC,gBAAgBI,gBAAlB,CAAJ,EAA6B;gBAC3B,MAAM,IAAI7I,iBAAJ,CAAgB,oCAAhB,CAAN;cA/CiD;;cAkDnD,IAAIyI,KAAK9rB,IAAL8rB,KAAc,MAAlB,EAA0B;gBACxBgtC,aAAaluD,IAAbkuD;gBACArpD,KACGmmD,gBADHnmD,CAEIutB,SAFJvtB,EAGIomD,IAHJpmD,EAII,IAJJA,EAKIwvB,YALJxvB,EAMI3M,IANJ2M,EAOIqpD,aAAapT,KAAboT,CAAmBvzB,KAAnBuzB,EAPJrpD,EAQIi7C,oBARJj7C,EAUG7L,IAVH6L,CAUQ,YAAY;kBAChBqpD,aAAav+C,OAAbu+C;kBACAmH;gBAZJ,GAaKC,aAbLzwD;gBAcA;cAhBF,OAiBO,IAAIqc,KAAK9rB,IAAL8rB,KAAc,OAAlB,EAA2B;gBAChC+yC,sBAAsBmB,aAAtBnB,CAAoChlD,UAAIiE,YAAxC+gD,EAAsD,CAAC/yC,KAAK9rB,IAAN,CAAtD6+D;gBACApvD,KACGonD,sBADHpnD,CAC0B;kBACtButB,SADsB;kBAEtB85B,OAAOjB,IAFe;kBAGtB52B,YAHsB;kBAItBlxB,UAAU/N,IAJY;kBAKtBg3D,eALsB;kBAMtBtM;gBANsB,CAD1Bj7C,EASG7L,IATH6L,CASQwwD,cATRxwD,EASwBywD,aATxBzwD;gBAUA;cAZK,OAaA,IAAIqc,KAAK9rB,IAAL8rB,KAAc,IAAlB,EAAwB;gBAG7B7e,gBAAK,4BAALA;cAHK,OAIA;gBACL,MAAM,IAAIoW,iBAAJ,CACH,6BAA4ByI,KAAK9rB,IAAlC,EADI,CAAN;cArFiD;;cAyFnDigE;YAzFF,GA0FGv8D,KA1FH,CA0FS,UAAUC,MAAV,EAAkB;cACzB,IAAIA,kBAAkB0E,oBAAtB,EAAsC;gBACpC;cAFuB;;cAIzB,IAAIoH,KAAKuS,OAALvS,CAAa1H,YAAjB,EAA+B;gBAG7B0H,KAAK5O,OAAL4O,CAAatO,IAAbsO,CAAkB,oBAAlBA,EAAwC;kBACtCvB,WAAWC,2BAAqBgS;gBADM,CAAxC1Q;gBAGA3J,gBAAM,wCAAuCnC,MAAO,IAApDmC;gBACA;cAXuB;;cAazB,MAAMnC,MAAN;YAvGF,EADF;YA2GA;;UACF,KAAKkW,UAAIoC,OAAT;YACE,IAAI+iC,WAAWruB,KAAK,CAAL,CAAf;YAEA+uC,KACEjwD,KACGk2B,aADHl2B,CAEIutB,SAFJvtB,EAGIkhB,IAHJlhB,EAII,IAJJA,EAKIwvB,YALJxvB,EAMI3M,IANJ2M,EAOIqpD,aAAapT,KAPjBj2C,EAQIoqC,gBARJpqC,EAUG7L,IAVH6L,CAUQ,UAAUkrD,UAAV,EAAsB;cAC1BkE,sBAAsBmB,aAAtBnB,CAAoChlD,UAAIoC,OAAxC4iD,EAAiD,CAAC7f,QAAD,EAAW2b,UAAX,CAAjDkE;cACA5/B,aAAa+4B,aAAb/4B,CAA2B07B,WAAWK,UAAtC/7B;cACAA,aAAaK,KAAbL,CAAmBplB,UAAIoC,OAAvBgjB,EAAgC,CAAC07B,WAAWK,UAAZ,EAAwBhc,QAAxB,CAAhC/f;YAbJ,EADF;YAiBA;;UACF,KAAKplB,UAAI8B,SAAT;YACEkhD,cAAc,IAAdA;YACA;;UACF,KAAKhjD,UAAI+B,OAAT;YACEihD,cAAc,KAAdA;YACA;;UACF,KAAKhjD,UAAIgE,cAAT;YACE,IAAI9P,WAAW4iB,KAAK,CAAL,EAAQ5iB,QAAvB;;YACA,IAAIA,QAAJ,EAAc;cACZ,MAAMgyD,aAAa/I,gBAAgB/L,SAAhB+L,CAA0BjpD,QAA1BipD,CAAnB;;cACA,IAAI+I,UAAJ,EAAgB;gBACd9gC,aAAa44B,WAAb54B,CACE8gC,WAAWnY,EADb3oB,EAEE8gC,WAAWpvC,IAFbsO,EAGE8gC,WAAWjK,eAHb72B;gBAMA20B,8BAA8BmM,UAA9B;gBACApvC,OAAO,IAAPA;gBACA;cAXU;YAFhB;;YAgBE+uC,KACEjwD,KAAKonD,sBAALpnD,CAA4B;cAC1ButB,SAD0B;cAE1B85B,OAAOnmC,KAAK,CAAL,CAFmB;cAG1BomC,UAAU,IAHgB;cAI1B93B,YAJ0B;cAK1BlxB,QAL0B;cAM1BipD,eAN0B;cAO1BtM;YAP0B,CAA5Bj7C,CADF;YAWAovD,sBAAsBmB,aAAtBnB,CAAoCjX,EAApCiX,EAAwCluC,IAAxCkuC;YACA;;UACF,KAAKhlD,UAAI2C,QAAT;YACE,IAAI,CAACs8C,aAAapT,KAAboT,CAAmB94C,IAAxB,EAA8B;cAC5BvQ,KAAK8rD,eAAL9rD,CAAqBqpD,aAAapT,KAAlCj2C;cACA;YAHJ;;YAKEkhB,KAAK,CAAL,IAAUlhB,KAAKyrD,UAALzrD,CAAgBkhB,KAAK,CAAL,CAAhBlhB,EAAyBqpD,aAAapT,KAAtCj2C,CAAVkhB;YACA;;UACF,KAAK9W,UAAI4C,cAAT;YACE,IAAI,CAACq8C,aAAapT,KAAboT,CAAmB94C,IAAxB,EAA8B;cAC5BvQ,KAAK8rD,eAAL9rD,CAAqBqpD,aAAapT,KAAlCj2C;cACA;YAHJ;;YAKE,IAAI2U,MAAMuM,KAAK,CAAL,CAAV;YACA,IAAI0vC,iBAAiB,EAArB;YACA,IAAIC,YAAYl8C,IAAIhiB,MAApB;YACA,IAAIsjD,QAAQoT,aAAapT,KAAzB;;YACA,KAAK1iD,IAAI,CAAT,EAAYA,IAAIs9D,SAAhB,EAA2B,EAAEt9D,CAA7B,EAAgC;cAC9B,MAAMu9D,UAAUn8C,IAAIphB,CAAJ,CAAhB;;cACA,IAAI,OAAOu9D,OAAP,KAAmB,QAAvB,EAAiC;gBAC/Bx0D,MAAMmX,SAANnX,CAAgB5J,IAAhB4J,CAAqB4X,KAArB5X,CACEs0D,cADFt0D,EAEE0D,KAAKyrD,UAALzrD,CAAgB8wD,OAAhB9wD,EAAyBi2C,KAAzBj2C,CAFF1D;cADF,OAKO,IAAI,OAAOw0D,OAAP,KAAmB,QAAvB,EAAiC;gBACtCF,eAAel+D,IAAfk+D,CAAoBE,OAApBF;cAR4B;YATlC;;YAoBE1vC,KAAK,CAAL,IAAU0vC,cAAV1vC;YACAi3B,KAAK/tC,UAAI2C,QAATorC;YACA;;UACF,KAAK/tC,UAAI6C,gBAAT;YACE,IAAI,CAACo8C,aAAapT,KAAboT,CAAmB94C,IAAxB,EAA8B;cAC5BvQ,KAAK8rD,eAAL9rD,CAAqBqpD,aAAapT,KAAlCj2C;cACA;YAHJ;;YAKEwvB,aAAaK,KAAbL,CAAmBplB,UAAI0C,QAAvB0iB;YACA4/B,sBAAsBmB,aAAtBnB,CAAoChlD,UAAI0C,QAAxCsiD;YACAluC,KAAK,CAAL,IAAUlhB,KAAKyrD,UAALzrD,CAAgBkhB,KAAK,CAAL,CAAhBlhB,EAAyBqpD,aAAapT,KAAtCj2C,CAAVkhB;YACAi3B,KAAK/tC,UAAI2C,QAATorC;YACA;;UACF,KAAK/tC,UAAI8C,0BAAT;YACE,IAAI,CAACm8C,aAAapT,KAAboT,CAAmB94C,IAAxB,EAA8B;cAC5BvQ,KAAK8rD,eAAL9rD,CAAqBqpD,aAAapT,KAAlCj2C;cACA;YAHJ;;YAKEwvB,aAAaK,KAAbL,CAAmBplB,UAAI0C,QAAvB0iB;YACAA,aAAaK,KAAbL,CAAmBplB,UAAIiC,cAAvBmjB,EAAuC,CAACtO,KAAKwwB,KAALxwB,EAAD,CAAvCsO;YACAA,aAAaK,KAAbL,CAAmBplB,UAAIgC,cAAvBojB,EAAuC,CAACtO,KAAKwwB,KAALxwB,EAAD,CAAvCsO;YACA4/B,sBAAsBmB,aAAtBnB,CAAoChlD,UAAI0C,QAAxCsiD;YACAA,sBAAsBmB,aAAtBnB,CAAoChlD,UAAIiC,cAAxC+iD,EAAwD,CAACluC,KAAKwwB,KAALxwB,EAAD,CAAxDkuC;YACAA,sBAAsBmB,aAAtBnB,CAAoChlD,UAAIgC,cAAxCgjD,EAAwD,CAACluC,KAAKwwB,KAALxwB,EAAD,CAAxDkuC;YACAluC,KAAK,CAAL,IAAUlhB,KAAKyrD,UAALzrD,CAAgBkhB,KAAK,CAAL,CAAhBlhB,EAAyBqpD,aAAapT,KAAtCj2C,CAAVkhB;YACAi3B,KAAK/tC,UAAI2C,QAATorC;YACA;;UACF,KAAK/tC,UAAIqC,oBAAT;YACE48C,aAAapT,KAAboT,CAAmBsC,iBAAnBtC,GAAuCnoC,KAAK,CAAL,CAAvCmoC;YACA;;UAEF,KAAKj/C,UAAIkD,iBAAT;YAA4B;cAC1B,MAAMuuC,mBAAmB5W,uBAAWoW,SAAXpW,CACvB/jB,KAAK,CAAL,CADuB+jB,EAEvB1pC,IAFuB0pC,EAGvBgW,oBAHuBhW,CAAzB;;cAKA,IAAI4W,gBAAJ,EAAsB;gBACpBwN,aAAapT,KAAboT,CAAmBuC,cAAnBvC,GAAoCxN,gBAApCwN;gBACA;cARwB;;cAW1B4G,KACEjwD,KACG6mD,eADH7mD,CACmB;gBACf07C,IAAIx6B,KAAK,CAAL,CADW;gBAEfqM,SAFe;gBAGf0tB;cAHe,CADnBj7C,EAMG7L,IANH6L,CAMQ,UAAU4mD,UAAV,EAAsB;gBAC1BwI,sBAAsBmB,aAAtBnB,CAAoCjX,EAApCiX,EAAwCluC,IAAxCkuC;;gBACA,IAAIxI,UAAJ,EAAgB;kBACdyC,aAAapT,KAAboT,CAAmBuC,cAAnBvC,GAAoCzC,UAApCyC;gBAHwB;cAN9B,EADF;cAcA;YA7QJ;;UA+QE,KAAKj/C,UAAIiD,mBAAT;YAA8B;cAC5B,MAAMwuC,mBAAmB5W,uBAAWoW,SAAXpW,CACvB/jB,KAAK,CAAL,CADuB+jB,EAEvB1pC,IAFuB0pC,EAGvBgW,oBAHuBhW,CAAzB;;cAKA,IAAI4W,gBAAJ,EAAsB;gBACpBwN,aAAapT,KAAboT,CAAmB0H,gBAAnB1H,GAAsCxN,gBAAtCwN;gBACA;cAR0B;;cAW5B4G,KACEjwD,KACG6mD,eADH7mD,CACmB;gBACf07C,IAAIx6B,KAAK,CAAL,CADW;gBAEfqM,SAFe;gBAGf0tB;cAHe,CADnBj7C,EAMG7L,IANH6L,CAMQ,UAAU4mD,UAAV,EAAsB;gBAC1BwI,sBAAsBmB,aAAtBnB,CAAoCjX,EAApCiX,EAAwCluC,IAAxCkuC;;gBACA,IAAIxI,UAAJ,EAAgB;kBACdyC,aAAapT,KAAboT,CAAmB0H,gBAAnB1H,GAAsCzC,UAAtCyC;gBAHwB;cAN9B,EADF;cAcA;YAxSJ;;UA0SE,KAAKj/C,UAAIqD,YAAT;YACEiuC,KAAK2N,aAAapT,KAAboT,CAAmBuC,cAAxBlQ;YACAx6B,OAAOw6B,GAAGnC,MAAHmC,CAAUx6B,IAAVw6B,EAAgB,CAAhBA,CAAPx6B;YACAi3B,KAAK/tC,UAAI0D,eAATqqC;YACA;;UACF,KAAK/tC,UAAImD,cAAT;YACEmuC,KAAK2N,aAAapT,KAAboT,CAAmB0H,gBAAxBrV;YACAx6B,OAAOw6B,GAAGnC,MAAHmC,CAAUx6B,IAAVw6B,EAAgB,CAAhBA,CAAPx6B;YACAi3B,KAAK/tC,UAAIyD,iBAATsqC;YACA;;UACF,KAAK/tC,UAAIwD,WAAT;YACEy7C,aAAapT,KAAboT,CAAmBuC,cAAnBvC,GAAoCpkB,uBAAWC,UAAXD,CAAsBE,IAA1DkkB;YACAnoC,OAAO+jB,uBAAWC,UAAXD,CAAsBE,IAAtBF,CAA2BsU,MAA3BtU,CAAkC/jB,IAAlC+jB,EAAwC,CAAxCA,CAAP/jB;YACAi3B,KAAK/tC,UAAI0D,eAATqqC;YACA;;UACF,KAAK/tC,UAAIuD,aAAT;YACE07C,aAAapT,KAAboT,CAAmB0H,gBAAnB1H,GAAsCpkB,uBAAWC,UAAXD,CAAsBE,IAA5DkkB;YACAnoC,OAAO+jB,uBAAWC,UAAXD,CAAsBE,IAAtBF,CAA2BsU,MAA3BtU,CAAkC/jB,IAAlC+jB,EAAwC,CAAxCA,CAAP/jB;YACAi3B,KAAK/tC,UAAIyD,iBAATsqC;YACA;;UACF,KAAK/tC,UAAI4D,gBAAT;YACEq7C,aAAapT,KAAboT,CAAmBuC,cAAnBvC,GAAoCpkB,uBAAWC,UAAXD,CAAsBK,IAA1D+jB;YACAnoC,OAAO+jB,uBAAWC,UAAXD,CAAsBK,IAAtBL,CAA2BsU,MAA3BtU,CAAkC/jB,IAAlC+jB,EAAwC,CAAxCA,CAAP/jB;YACAi3B,KAAK/tC,UAAI0D,eAATqqC;YACA;;UACF,KAAK/tC,UAAI2D,kBAAT;YACEs7C,aAAapT,KAAboT,CAAmB0H,gBAAnB1H,GAAsCpkB,uBAAWC,UAAXD,CAAsBK,IAA5D+jB;YACAnoC,OAAO+jB,uBAAWC,UAAXD,CAAsBK,IAAtBL,CAA2BsU,MAA3BtU,CAAkC/jB,IAAlC+jB,EAAwC,CAAxCA,CAAP/jB;YACAi3B,KAAK/tC,UAAIyD,iBAATsqC;YACA;;UACF,KAAK/tC,UAAI0D,eAAT;YACEu7C,aAAapT,KAAboT,CAAmBuC,cAAnBvC,GAAoCpkB,uBAAWC,UAAXD,CAAsBI,GAA1DgkB;YACAnoC,OAAO+jB,uBAAWC,UAAXD,CAAsBI,GAAtBJ,CAA0BsU,MAA1BtU,CAAiC/jB,IAAjC+jB,EAAuC,CAAvCA,CAAP/jB;YACA;;UACF,KAAK9W,UAAIyD,iBAAT;YACEw7C,aAAapT,KAAboT,CAAmB0H,gBAAnB1H,GAAsCpkB,uBAAWC,UAAXD,CAAsBI,GAA5DgkB;YACAnoC,OAAO+jB,uBAAWC,UAAXD,CAAsBI,GAAtBJ,CAA0BsU,MAA1BtU,CAAiC/jB,IAAjC+jB,EAAuC,CAAvCA,CAAP/jB;YACA;;UACF,KAAK9W,UAAIsD,aAAT;YACEguC,KAAK2N,aAAapT,KAAboT,CAAmBuC,cAAxBlQ;;YACA,IAAIA,GAAGnrD,IAAHmrD,KAAY,SAAhB,EAA2B;cACzBuU,KACEjwD,KAAK8tD,YAAL9tD,CACEwvB,YADFxvB,EAEEoK,UAAIsD,aAFN1N,EAGEkhB,IAHFlhB,EAIE07C,EAJF17C,EAKE+tD,QALF/tD,EAMEutB,SANFvtB,EAOE3M,IAPF2M,EAQEi7C,oBARFj7C,EASEsqD,uBATFtqD,EAUE2tD,wBAVF3tD,CADF;cAcA;YAjBJ;;YAmBEkhB,OAAOw6B,GAAGnC,MAAHmC,CAAUx6B,IAAVw6B,EAAgB,CAAhBA,CAAPx6B;YACAi3B,KAAK/tC,UAAI0D,eAATqqC;YACA;;UACF,KAAK/tC,UAAIoD,eAAT;YACEkuC,KAAK2N,aAAapT,KAAboT,CAAmB0H,gBAAxBrV;;YACA,IAAIA,GAAGnrD,IAAHmrD,KAAY,SAAhB,EAA2B;cACzBuU,KACEjwD,KAAK8tD,YAAL9tD,CACEwvB,YADFxvB,EAEEoK,UAAIoD,eAFNxN,EAGEkhB,IAHFlhB,EAIE07C,EAJF17C,EAKE+tD,QALF/tD,EAMEutB,SANFvtB,EAOE3M,IAPF2M,EAQEi7C,oBARFj7C,EASEsqD,uBATFtqD,EAUE2tD,wBAVF3tD,CADF;cAcA;YAjBJ;;YAmBEkhB,OAAOw6B,GAAGnC,MAAHmC,CAAUx6B,IAAVw6B,EAAgB,CAAhBA,CAAPx6B;YACAi3B,KAAK/tC,UAAIyD,iBAATsqC;YACA;;UAEF,KAAK/tC,UAAI6D,WAAT;YACE,IAAI+iD,aAAazjC,UAAU3zB,GAAV2zB,CAAc,SAAdA,CAAjB;;YACA,IAAI,CAACyjC,UAAL,EAAiB;cACf,MAAM,IAAIp9C,iBAAJ,CAAgB,2BAAhB,CAAN;YAHJ;;YAME,IAAI85C,UAAUsD,WAAWp3D,GAAXo3D,CAAe9vC,KAAK,CAAL,EAAQ3wB,IAAvBygE,CAAd;;YACA,IAAI,CAACtD,OAAL,EAAc;cACZ,MAAM,IAAI95C,iBAAJ,CAAgB,yBAAhB,CAAN;YARJ;;YAUE,MAAMq9C,YAAYjxD,KAAKytD,YAALztD,CAAkB;cAClC0tD,OADkC;cAElCngC,SAFkC;cAGlC0tB,oBAHkC;cAIlC0S;YAJkC,CAAlB3tD,CAAlB;YAMAkhB,OAAO,CAAC+vC,SAAD,CAAP/vC;YACAi3B,KAAK/tC,UAAI6D,WAATkqC;YACA;;UACF,KAAK/tC,UAAIS,SAAT;YACEulD,cAAclvC,KAAK,CAAL,aAAmBzE,gBAAjC2zC;YACA7/D,OAAO2wB,KAAK,CAAL,EAAQ3wB,IAAfA;;YAEA,IAAI6/D,WAAJ,EAAiB;cACf,MAAMc,iBAAiBlF,iBAAiBxQ,SAAjBwQ,CAA2Bz7D,IAA3By7D,CAAvB;;cACA,IAAIkF,cAAJ,EAAoB;gBAClB,IAAIA,eAAev+D,MAAfu+D,GAAwB,CAA5B,EAA+B;kBAC7B1hC,aAAaK,KAAbL,CAAmBplB,UAAIS,SAAvB2kB,EAAkC,CAAC0hC,cAAD,CAAlC1hC;gBAFgB;;gBAIlBtO,OAAO,IAAPA;gBACA;cAPa;YAJnB;;YAeE+uC,KACE,IAAIn8D,OAAJ,CAAY,UAAUq9D,aAAV,EAAyBC,YAAzB,EAAuC;cACjD,IAAI,CAAChB,WAAL,EAAkB;gBAChB,MAAM,IAAIx8C,iBAAJ,CAAgB,qCAAhB,CAAN;cAF+C;;cAKjD,MAAMy9C,YAAY9jC,UAAU3zB,GAAV2zB,CAAc,WAAdA,CAAlB;;cACA,IAAI,EAAE8jC,qBAAqBl1D,gBAAvB,CAAJ,EAAkC;gBAChC,MAAM,IAAIyX,iBAAJ,CAAgB,mCAAhB,CAAN;cAP+C;;cAUjD,MAAMm4C,SAASsF,UAAUz3D,GAAVy3D,CAAc9gE,IAAd8gE,CAAf;;cAIA,IAAI,EAAEtF,kBAAkB5vD,gBAApB,CAAJ,EAA+B;gBAC7B,MAAM,IAAIyX,iBAAJ,CAAgB,gCAAhB,CAAN;cAf+C;;cAkBjD5T,KACG6K,SADH7K,CACa;gBACTutB,SADS;gBAETw+B,MAFS;gBAGTv8B,YAHS;gBAITlxB,UAAU/N,IAJD;gBAKT8C,IALS;gBAMTg2D,YANS;gBAOT2C,gBAPS;gBAQT/Q;cARS,CADbj7C,EAWG7L,IAXH6L,CAWQmxD,aAXRnxD,EAWuBoxD,YAXvBpxD;YAlBF,GA8BG/L,KA9BH,CA8BS,UAAUC,MAAV,EAAkB;cACzB,IAAIA,kBAAkB0E,oBAAtB,EAAsC;gBACpC;cAFuB;;cAIzB,IAAIoH,KAAKuS,OAALvS,CAAa1H,YAAjB,EAA+B;gBAG7B0H,KAAK5O,OAAL4O,CAAatO,IAAbsO,CAAkB,oBAAlBA,EAAwC;kBACtCvB,WAAWC,2BAAqB+R;gBADM,CAAxCzQ;gBAGA3J,gBAAM,0CAAyCnC,MAAO,IAAtDmC;gBACA;cAXuB;;cAazB,MAAMnC,MAAN;YA3CF,EADF;YA+CAk7D,sBAAsBmB,aAAtBnB,CAAoCjX,EAApCiX,EAAwCluC,IAAxCkuC;YACA;;UACF,KAAKhlD,UAAIY,MAAT;UACA,KAAKZ,UAAIa,MAAT;UACA,KAAKb,UAAIc,OAAT;UACA,KAAKd,UAAIe,QAAT;UACA,KAAKf,UAAIgB,QAAT;UACA,KAAKhB,UAAIiB,SAAT;UACA,KAAKjB,UAAIkB,SAAT;YACEtL,KAAKmtD,SAALntD,CAAewvB,YAAfxvB,EAA6Bm4C,EAA7Bn4C,EAAiCkhB,IAAjClhB,EAAuCotD,WAAvCptD;YACAovD,sBAAsBmB,aAAtBnB,CAAoCjX,EAApCiX,EAAwCluC,IAAxCkuC;YACA;;UACF,KAAKhlD,UAAIkE,SAAT;UACA,KAAKlE,UAAImE,cAAT;UACA,KAAKnE,UAAIuE,WAAT;UACA,KAAKvE,UAAIwE,SAAT;YAOE;;UACF,KAAKxE,UAAIqE,uBAAT;YACE2gD,sBAAsBmB,aAAtBnB,CAAoCjX,EAApCiX,EAAwCluC,IAAxCkuC;;YACA,IAAI,EAAEluC,KAAK,CAAL,aAAmBzE,gBAArB,CAAJ,EAAgC;cAC9BpmB,gBAAM,kDAAiD6qB,KAAK,CAAL,CAAlD,EAAL7qB;cACA;YAJJ;;YAME,IAAI6qB,KAAK,CAAL,EAAQ3wB,IAAR2wB,KAAiB,IAArB,EAA2B;cACzB+uC,KACEjwD,KACGumD,uBADHvmD,CAC2BkhB,KAAK,CAAL,CAD3BlhB,EACoCutB,SADpCvtB,EAEG7L,IAFH6L,CAEQvO,QAAQ;gBACZ+9B,aAAaK,KAAbL,CAAmBplB,UAAIqE,uBAAvB+gB,EAAgD,CAC9C,IAD8C,EAE9C/9B,IAF8C,CAAhD+9B;cAHJ,GAQGv7B,KARH+L,CAQS9L,UAAU;gBACf,IAAIA,kBAAkB0E,oBAAtB,EAAsC;kBACpC;gBAFa;;gBAIf,IAAIoH,KAAKuS,OAALvS,CAAa1H,YAAjB,EAA+B;kBAC7B0H,KAAK5O,OAAL4O,CAAatO,IAAbsO,CAAkB,oBAAlBA,EAAwC;oBACtCvB,WAAWC,2BAAqB0S;kBADM,CAAxCpR;kBAGA3J,gBACG,wDAAuDnC,MAAO,IADjEmC;kBAGA;gBAXa;;gBAaf,MAAMnC,MAAN;cArBJ,EADF;cAyBA;YAhCJ;;YAmCEgtB,OAAO,CACLA,KAAK,CAAL,EAAQ3wB,IADH,EAEL2wB,KAAK,CAAL,aAAmB/kB,gBAAnB+kB,GAA0BA,KAAK,CAAL,EAAQtnB,GAARsnB,CAAY,MAAZA,CAA1BA,GAAgD,IAF3C,CAAPA;YAKA;;UACF,KAAK9W,UAAIoE,kBAAT;UACA,KAAKpE,UAAIsE,gBAAT;YACE0gD,sBAAsBmB,aAAtBnB,CAAoCjX,EAApCiX,EAAwCluC,IAAxCkuC;;UACF;YAIE,IAAIluC,SAAS,IAAb,EAAmB;cACjB,KAAK3tB,IAAI,CAAJA,EAAOiJ,KAAK0kB,KAAKvuB,MAAtB,EAA8BY,IAAIiJ,EAAlC,EAAsCjJ,GAAtC,EAA2C;gBACzC,IAAI2tB,KAAK3tB,CAAL,aAAmB4I,gBAAvB,EAA6B;kBAC3B;gBAFuC;cAD1B;;cAMjB,IAAI5I,IAAIiJ,EAAR,EAAY;gBACVnG,gBAAK,0CAA0C8hD,EAA/C9hD;gBACA;cARe;YArhBvB;;QAAA;;QAiiBA+4D,sBAAsBmB,aAAtBnB,CAAoCjX,EAApCiX,EAAwCluC,IAAxCkuC;QACA5/B,aAAaK,KAAbL,CAAmB2oB,EAAnB3oB,EAAuBtO,IAAvBsO;MA9jBqD;;MAgkBvD,IAAI2gC,IAAJ,EAAU;QACRF,KAAKlM,QAAL;QACA;MAlkBqD;;MAskBvD+L;MAKAh/D,QAAQ,CAACs+D,sBAAsBr/C,aAAvB,EAAsCq/C,sBAAsB1/B,cAA5D,EAA4E0/B,sBAAsBkC,sBAAtBlC,EAA5E,CAAR;IA3kBK,GA4kBJn7D,KA5kBI,CA4kBEC,UAAU;MACjB,IAAIA,kBAAkB0E,oBAAtB,EAAsC;QACpC;MAFe;;MAIjB,IAAI,KAAK2Z,OAAL,CAAaja,YAAjB,EAA+B;QAG7B,KAAKlH,OAAL,CAAaM,IAAb,CAAkB,oBAAlB,EAAwC;UACtC+M,WAAWC,2BAAqBC;QADM,CAAxC;QAGAtI,gBACG,6CAA4ChD,KAAK9C,IAAK,IAAvD,GACG,UAAS2D,MAAO,IAFrBmC;QAKAy5D;QACA;MAhBe;;MAkBjB,MAAM57D,MAAN;IA9lBK,EAAP;EA17CmB;;EA4hErBs8B,eAAe;IACb33B,MADa;IAEbxF,IAFa;IAGbk6B,SAHa;IAIb87B,eAAe,IAJF;IAKbrqD,mBAAmB,KALN;IAMbD,uBAAuB,KANV;IAObhB,IAPa;IAQbwzD,aAAa,IAAI7xC,GAAJ,EARA;IASb+Q;EATa,CAAf,EAUG;IAGDlD,YAAYA,aAAapxB,iBAAKqiB,KAA9B+O;IACA87B,eAAeA,gBAAgB,IAAIsG,YAAJ,CAAiB,IAAI6B,SAAJ,EAAjB,CAA/BnI;IAEA,MAAMoI,qBAAqB1vB,qCAA3B;IAEA,MAAM2vB,cAAc;MAClBpc,OAAO,EADW;MAElBqc,QAAQh1D,OAAOC,MAAPD,CAAc,IAAdA;IAFU,CAApB;IAIA,MAAMi1D,kBAAkB;MACtBC,aAAa,KADS;MAEtBp9C,KAAK,EAFiB;MAGtB46B,YAAY,CAHU;MAItBD,aAAa,CAJS;MAKtB3E,OAAO,CALe;MAMtB+F,QAAQ,CANc;MAOtBshB,UAAU,KAPY;MAQtBC,eAAe,IARO;MAStBC,kBAAkB,CATI;MAUtBC,gBAAgB,CAVM;MAWtBC,gBAAgB,CAXM;MAYtBC,kBAAkB5a,QAZI;MAatB6a,kBAAkB,CAAC7a,QAbG;MActB8a,WAAW,CAAC9a,QAdU;MAetBxsC,WAAW,IAfW;MAgBtBirB,UAAU,IAhBY;MAiBtBs8B,QAAQ;IAjBc,CAAxB;IAoCA,MAAMC,eAAe,CAAC,GAAD,EAAM,GAAN,CAArB;IACA,IAAIC,kBAAkB,CAAtB;;IAQA,SAASC,YAAT,CAAsB53C,IAAtB,EAA4B;MAC1B,MAAM63C,UAAW,mBAAkB,CAAlB,IAAuB,CAAxC;MACA,MAAMC,MACJJ,aAAaC,eAAb,MAAkC,GAAlCD,IAAyCA,aAAaG,OAAb,MAA0B,GADrE;MAEAH,aAAaC,eAAb,IAAgC33C,IAAhC03C;MACAC,kBAAkBE,OAAlBF;MAEA,OAAOG,GAAP;IAhED;;IAmED,SAASC,cAAT,GAA0B;MACxBL,aAAa,CAAb,IAAkBA,aAAa,CAAb,IAAkB,GAApCA;MACAC,kBAAkB,CAAlBA;IArED;;IA4ED,MAAMK,wBAAwB,GAA9B;IAIA,MAAMC,qBAAqB,IAA3B;IAMA,MAAMC,wBAAwB,CAAC,GAA/B;IAQA,MAAMC,2BAA2B,GAAjC;IACA,MAAMC,2BAA2B,GAAjC;IAEA,MAAMjzD,OAAO,IAAb;IACA,MAAMzE,OAAO,KAAKA,IAAlB;IACA,MAAM23D,uBAAuB,EAA7B;IAGA,IAAIxD,QAAQ,IAAZ;IACA,MAAMyD,oBAAoB,IAAI7D,4BAAJ,EAA1B;IACA,MAAM8D,mBAAmB,IAAI5D,6BAAJ,EAAzB;IAEA,MAAMI,eAAe,IAAI3X,qBAAJ,CAA0Bp/C,MAA1B,EAAkC0C,IAAlC,EAAwC8tD,YAAxC,CAArB;IAEA,IAAIgK,SAAJ;;IAEA,SAASC,uBAAT,GAAmC;MAEjC,MAAM/iD,OAAO8iD,UAAU9iD,IAAvB;MACA,MAAMgjD,MAAM,CACVF,UAAU9jB,QAAV8jB,GAAqBA,UAAUG,UADrB,EAEV,CAFU,EAGV,CAHU,EAIVH,UAAU9jB,QAJA,EAKV,CALU,EAMV8jB,UAAUI,QANA,CAAZ;;MASA,IACEljD,KAAK46C,WAAL56C,KACC8iD,UAAU9jB,QAAV8jB,IAAsB,CAAtBA,IAA2B9iD,KAAKmjD,UADjCnjD,KAEA,CAAC6K,wBAAai4C,UAAUM,UAAvBv4C,EAAmClb,0BAAnCkb,CAHH,EAIE;QACA,MAAMw4C,cAAcrjD,KAAKkd,IAALld,CAAU,CAAVA,IAAeA,KAAKkd,IAALld,CAAU,CAAVA,CAAnC;;QACA,IAAIqjD,cAAc,CAAlB,EAAqB;UACnBL,IAAI,CAAJ,KAAUK,cAAcP,UAAUM,UAAVN,CAAqB,CAArBA,CAAxBE;QAHF;MAhB+B;;MAuBjC,OAAOr9C,WAAKnL,SAALmL,CACLm9C,UAAUQ,GADL39C,EAELA,WAAKnL,SAALmL,CAAem9C,UAAUS,UAAzB59C,EAAqCq9C,GAArCr9C,CAFKA,CAAP;IArID;;IA2ID,SAAS69C,qBAAT,GAAiC;MAC/B,IAAInC,gBAAgBC,WAApB,EAAiC;QAC/B,OAAOD,eAAP;MAF6B;;MAI/B,MAAMrhD,OAAO8iD,UAAU9iD,IAAvB;MAAA,MACEg7C,aAAah7C,KAAKg7C,UADpB;;MAEA,IAAI,CAACgG,WAAWjzC,GAAXizC,CAAehG,UAAfgG,CAAL,EAAiC;QAC/BA,WAAW3xC,GAAX2xC,CAAehG,UAAfgG;QAEAG,YAAYC,MAAZD,CAAmBnG,UAAnBmG,IAAiC;UAC/BpnC,YAAY/Z,KAAKyjD,YADc;UAE/BC,QAAQ1jD,KAAK0jD,MAFkB;UAG/BxkB,SAASl/B,KAAKk/B,OAHiB;UAI/BqiB,UAAUvhD,KAAKuhD;QAJgB,CAAjCJ;MAT6B;;MAgB/BE,gBAAgB57B,QAAhB47B,GAA2BrG,UAA3BqG;MAEA,MAAMsC,MAAOtC,gBAAgB7mD,SAAhB6mD,GAA4B0B,yBAAzC;;MACA,IAAI,CAAC/iD,KAAKuhD,QAAV,EAAoB;QAClBF,gBAAgBnnB,KAAhBmnB,GAAwBA,gBAAgBviB,UAAhBuiB,GAA6B,CAArDA;QACAA,gBAAgBphB,MAAhBohB,GAAyBA,gBAAgBxiB,WAAhBwiB,GAA8Bh7D,KAAKu9D,KAALv9D,CACrDs9D,IAAI,CAAJ,CADqDt9D,EAErDs9D,IAAI,CAAJ,CAFqDt9D,CAAvDg7D;QAIAA,gBAAgBE,QAAhBF,GAA2B,KAA3BA;MANF,OAOO;QACLA,gBAAgBnnB,KAAhBmnB,GAAwBA,gBAAgBviB,UAAhBuiB,GAA6Bh7D,KAAKu9D,KAALv9D,CACnDs9D,IAAI,CAAJ,CADmDt9D,EAEnDs9D,IAAI,CAAJ,CAFmDt9D,CAArDg7D;QAIAA,gBAAgBphB,MAAhBohB,GAAyBA,gBAAgBxiB,WAAhBwiB,GAA8B,CAAvDA;QACAA,gBAAgBE,QAAhBF,GAA2B,IAA3BA;MAhC6B;;MAmC/B,MAAMwC,aAAax9D,KAAKu9D,KAALv9D,CACjBy8D,UAAUgB,cAAVhB,CAAyB,CAAzBA,CADiBz8D,EAEjBy8D,UAAUgB,cAAVhB,CAAyB,CAAzBA,CAFiBz8D,CAAnB;MAIA,MAAM09D,YAAY19D,KAAKu9D,KAALv9D,CAAWy8D,UAAUQ,GAAVR,CAAc,CAAdA,CAAXz8D,EAA6By8D,UAAUQ,GAAVR,CAAc,CAAdA,CAA7Bz8D,CAAlB;MACAg7D,gBAAgBI,gBAAhBJ,GAAmC0C,YAAYF,UAA/CxC;MAEAA,gBAAgBO,gBAAhBP,GACEyB,UAAU9jB,QAAV8jB,GAAqBR,qBADvBjB;MAEAA,gBAAgBS,SAAhBT,GAA4ByB,UAAU9jB,QAAV8jB,GAAqBP,kBAAjDlB;MACAA,gBAAgBQ,gBAAhBR,GACEyB,UAAU9jB,QAAV8jB,GAAqBN,qBADvBnB;MAEAA,gBAAgBK,cAAhBL,GACEyB,UAAU9jB,QAAV8jB,GAAqBL,wBADvBpB;MAEAA,gBAAgBM,cAAhBN,GACEyB,UAAU9jB,QAAV8jB,GAAqBJ,wBADvBrB;MAGAA,gBAAgBU,MAAhBV,GAAyB,KAAzBA;MAEAA,gBAAgBC,WAAhBD,GAA8B,IAA9BA;MACA,OAAOA,eAAP;IAlMD;;IAqMD,SAAS2C,kBAAT,GAA8B;MAC5B,IAAI,CAAC3C,gBAAgBC,WAArB,EAAkC;QAChC;MAF0B;;MAK5B,MAAMuC,aAAax9D,KAAKu9D,KAALv9D,CACjBy8D,UAAUgB,cAAVhB,CAAyB,CAAzBA,CADiBz8D,EAEjBy8D,UAAUgB,cAAVhB,CAAyB,CAAzBA,CAFiBz8D,CAAnB;MAIA,MAAM09D,YAAY19D,KAAKu9D,KAALv9D,CAAWy8D,UAAUQ,GAAVR,CAAc,CAAdA,CAAXz8D,EAA6By8D,UAAUQ,GAAVR,CAAc,CAAdA,CAA7Bz8D,CAAlB;MACA,MAAM49D,cAAcF,YAAYF,UAAhC;;MACA,IAAII,gBAAgB5C,gBAAgBI,gBAApC,EAAsD;QACpD;MAZ0B;;MAe5B,IAAI,CAACJ,gBAAgBE,QAArB,EAA+B;QAC7BF,gBAAgBviB,UAAhBuiB,IACEA,gBAAgBnnB,KAAhBmnB,GAAwBA,gBAAgBI,gBAD1CJ;QAEAA,gBAAgBnnB,KAAhBmnB,GAAwB,CAAxBA;MAHF,OAIO;QACLA,gBAAgBxiB,WAAhBwiB,IACEA,gBAAgBphB,MAAhBohB,GAAyBA,gBAAgBI,gBAD3CJ;QAEAA,gBAAgBphB,MAAhBohB,GAAyB,CAAzBA;MAtB0B;;MAyB5BA,gBAAgBI,gBAAhBJ,GAAmC4C,WAAnC5C;IA9ND;;IAiOD,SAAS6C,gBAAT,CAA0BC,SAA1B,EAAqC;MACnC,MAAMrkB,OAAOqkB,UAAUjgD,GAAVigD,CAAc9hE,IAAd8hE,CAAmB,EAAnBA,CAAb;MACA,MAAMC,aAAa7rB,gBAAKuH,IAALvH,EAAW,CAAC,CAAZA,EAAe4rB,UAAU5C,QAAzBhpB,CAAnB;MACA,OAAO;QACLr0B,KAAKkgD,WAAWlgD,GADX;QAELo0B,KAAK8rB,WAAW9rB,GAFX;QAGL4B,OAAO7zC,KAAKgjB,GAALhjB,CAAS89D,UAAUrlB,UAAnBz4C,CAHF;QAIL45C,QAAQ55C,KAAKgjB,GAALhjB,CAAS89D,UAAUtlB,WAAnBx4C,CAJH;QAKLmU,WAAW2pD,UAAU3pD,SALhB;QAMLirB,UAAU0+B,UAAU1+B,QANf;QAOLs8B,QAAQoC,UAAUpC;MAPb,CAAP;IApOD;;IA+OD,SAASp8B,aAAT,CAAuBF,QAAvB,EAAiCg1B,OAAjC,EAA0C;MACxC,OAAOhrD,KACJirD,QADIjrD,CACKg2B,QADLh2B,EACegrD,OADfhrD,EACwButB,SADxBvtB,EAEJ7L,IAFI6L,CAEC,UAAUkrD,UAAV,EAAsB;QAC1B,IAAI,CAACA,WAAW36C,IAAX26C,CAAgBC,WAArB,EAAkC;UAChC,OAAOD,UAAP;QAFwB;;QAI1B,OAAOA,WACJE,aADIF,CACUlrD,IADVkrD,EACgB39B,SADhB29B,EAC2B73D,IAD3B63D,EAEJj3D,KAFIi3D,CAEE,YAAY,CAFd,GAMJ/2D,IANI+2D,CAMC,YAAY;UAChB,OAAOA,UAAP;QAPG,EAAP;MANG,GAgBJ/2D,IAhBI6L,CAgBC,UAAUkrD,UAAV,EAAsB;QAC1BmI,UAAU9iD,IAAV8iD,GAAiBnI,WAAW36C,IAA5B8iD;QACAA,UAAUM,UAAVN,GACEnI,WAAW36C,IAAX26C,CAAgByI,UAAhBzI,IAA8BhrD,0BADhCmzD;MAlBG,EAAP;IAhPD;;IAuQD,SAASuB,oBAAT,CAA8B/4D,CAA9B,EAAiC8pC,CAAjC,EAAoCc,MAApC,EAA4C;MAC1C,MAAM4L,QAAQz7C,KAAKu9D,KAALv9D,CAAW6vC,OAAO,CAAP,CAAX7vC,EAAsB6vC,OAAO,CAAP,CAAtB7vC,CAAd;MACA,OAAO,CACJ,QAAO,CAAP,IAAYiF,CAAZ4qC,GAAgBA,OAAO,CAAP,IAAYd,CAA5B,IAAiC0M,KAD7B,EAEJ,QAAO,CAAP,IAAYx2C,CAAZ4qC,GAAgBA,OAAO,CAAP,IAAYd,CAA5B,IAAiC0M,KAF7B,CAAP;IAzQD;;IA+QD,SAASwiB,uBAAT,GAAmC;MACjC,MAAMC,mBAAmBxB,yBAAzB;MACA,IAAIyB,OAAOD,iBAAiB,CAAjB,CAAX;MACA,IAAIE,OAAOF,iBAAiB,CAAjB,CAAX;MAEA,MAAMG,WAAWF,OAAOtkC,QAAQ,CAAR,CAAxB;MACA,MAAMykC,WAAWF,OAAOvkC,QAAQ,CAAR,CAAxB;;MAEA,IACEwkC,WAAW,CAAXA,IACAA,WAAWxkC,QAAQ,CAAR,CADXwkC,IAEAC,WAAW,CAFXD,IAGAC,WAAWzkC,QAAQ,CAAR,CAJb,EAKE;QACA,OAAO,KAAP;MAd+B;;MAiBjC,IACE,CAACzxB,gBAAD,IACA,CAACq0D,UAAU9iD,IADX,IAEA,CAACqhD,gBAAgBG,aAHnB,EAIE;QACA,OAAO,IAAP;MAtB+B;;MAyBjC,IAAIoD,WAAWvD,gBAAgBG,aAAhBH,CAA8B,CAA9BA,CAAf;MACA,IAAIwD,WAAWxD,gBAAgBG,aAAhBH,CAA8B,CAA9BA,CAAf;;MAEA,IAAIuD,aAAaJ,IAAbI,IAAqBC,aAAaJ,IAAtC,EAA4C;QAC1C,OAAO,IAAP;MA7B+B;;MAgCjC,IAAI37D,SAAS,CAAC,CAAd;;MAEA,IACEy7D,iBAAiB,CAAjB,KACAA,iBAAiB,CAAjB,MAAwB,CADxBA,IAEAA,iBAAiB,CAAjB,MAAwB,CAH1B,EAIE;QACAz7D,SAASy7D,iBAAiB,CAAjB,IAAsB,CAAtBA,GAA0B,CAA1BA,GAA8B,GAAvCz7D;MALF,OAMO,IACLy7D,iBAAiB,CAAjB,KACAA,iBAAiB,CAAjB,MAAwB,CADxBA,IAEAA,iBAAiB,CAAjB,MAAwB,CAHnB,EAIL;QACAz7D,SAASy7D,iBAAiB,CAAjB,IAAsB,CAAtBA,GAA0B,EAA1BA,GAA+B,GAAxCz7D;MA7C+B;;MAgDjC,QAAQA,MAAR;QACE,KAAK,CAAL;UACE;;QACF,KAAK,EAAL;UACE,CAAC07D,IAAD,EAAOC,IAAP,IAAe,CAACA,IAAD,EAAOD,IAAP,CAAf;UACA,CAACI,QAAD,EAAWC,QAAX,IAAuB,CAACA,QAAD,EAAWD,QAAX,CAAvB;UACA;;QACF,KAAK,GAAL;UACE,CAACJ,IAAD,EAAOC,IAAP,EAAaG,QAAb,EAAuBC,QAAvB,IAAmC,CACjC,CAACL,IADgC,EAEjC,CAACC,IAFgC,EAGjC,CAACG,QAHgC,EAIjC,CAACC,QAJgC,CAAnC;UAMA;;QACF,KAAK,GAAL;UACE,CAACL,IAAD,EAAOC,IAAP,IAAe,CAAC,CAACA,IAAF,EAAQ,CAACD,IAAT,CAAf;UACA,CAACI,QAAD,EAAWC,QAAX,IAAuB,CAAC,CAACA,QAAF,EAAY,CAACD,QAAb,CAAvB;UACA;;QACF;UAME,CAACJ,IAAD,EAAOC,IAAP,IAAeJ,qBAAqBG,IAArB,EAA2BC,IAA3B,EAAiCF,gBAAjC,CAAf;UACA,CAACK,QAAD,EAAWC,QAAX,IAAuBR,qBACrBO,QADqB,EAErBC,QAFqB,EAGrBxD,gBAAgBG,aAHK,CAAvB;MA1BJ;;MAiCA,IAAIsB,UAAU9iD,IAAV8iD,CAAevB,QAAnB,EAA6B;QAC3B,MAAMuD,WAAY,YAAWL,IAAX,IAAmBpD,gBAAgBI,gBAArD;QACA,MAAMsD,WAAWP,OAAOI,QAAxB;QAIA,MAAMI,kBAAkB3+D,KAAK4+D,IAAL5+D,CAAUg7D,gBAAgBphB,MAA1B55C,CAAxB;;QACA,IAAIy+D,WAAWE,kBAAkB3D,gBAAgBQ,gBAAjD,EAAmE;UACjE,IACEx7D,KAAKgjB,GAALhjB,CAAS0+D,QAAT1+D,IACA,MAAMg7D,gBAAgBnnB,KAFxB,EAGE;YACAgrB;YACA,OAAO,IAAP;UAN+D;;UASjE7C;UACA8C;UACA,OAAO,IAAP;QAlByB;;QAqB3B,IAAI9+D,KAAKgjB,GAALhjB,CAAS0+D,QAAT1+D,IAAqBg7D,gBAAgBnnB,KAAzC,EAAgD;UAC9CgrB;UACA,OAAO,IAAP;QAvByB;;QA0B3B,IAAIJ,YAAYE,kBAAkB3D,gBAAgBS,SAAlD,EAA6D;UAG3DO;QA7ByB;;QAgC3B,IAAIyC,YAAYE,kBAAkB3D,gBAAgBO,gBAAlD,EAAoE;UAClEP,gBAAgBphB,MAAhBohB,IAA0ByD,QAA1BzD;QADF,OAEO,IACL,CAAC+D,cACCN,QADD,EAECzD,gBAAgBG,aAFjB,EAGCwD,eAHD,CADI,EAML;UACA,IAAI3D,gBAAgBn9C,GAAhBm9C,CAAoBj/D,MAApBi/D,KAA+B,CAAnC,EAAsC;YACpCgB;YACAlB,YAAYpc,KAAZoc,CAAkBh/D,IAAlBg/D,CAAuB;cACrBj9C,KAAK,GADgB;cAErBo0B,KAAK,KAFgB;cAGrB4B,OAAO,CAHc;cAIrB+F,QAAQ55C,KAAKgjB,GAALhjB,CAASy+D,QAATz+D,CAJa;cAKrBmU,WAAW6mD,gBAAgBG,aALN;cAMrB/7B,UAAU47B,gBAAgB57B,QANL;cAOrBs8B,QAAQ;YAPa,CAAvBZ;UAFF,OAWO;YACLE,gBAAgBphB,MAAhBohB,IAA0ByD,QAA1BzD;UAbF;QAxCyB;;QAyD3B,OAAO,IAAP;MA1I+B;;MA6IjC,MAAM0D,WAAY,QAAOH,QAAP,IAAmBvD,gBAAgBI,gBAArD;MACA,MAAMqD,WAAWL,OAAOI,QAAxB;MAIA,MAAMG,kBAAkB3+D,KAAK4+D,IAAL5+D,CAAUg7D,gBAAgBnnB,KAA1B7zC,CAAxB;;MACA,IAAI0+D,WAAWC,kBAAkB3D,gBAAgBQ,gBAAjD,EAAmE;QACjE,IACEx7D,KAAKgjB,GAALhjB,CAASy+D,QAATz+D,IACA,MAAMg7D,gBAAgBphB,MAFxB,EAGE;UACAilB;UACA,OAAO,IAAP;QAN+D;;QAWjE7C;QACA8C;QACA,OAAO,IAAP;MAhK+B;;MAmKjC,IAAI9+D,KAAKgjB,GAALhjB,CAASy+D,QAATz+D,IAAqBg7D,gBAAgBphB,MAAzC,EAAiD;QAC/CilB;QACA,OAAO,IAAP;MArK+B;;MAwKjC,IAAIH,YAAYC,kBAAkB3D,gBAAgBS,SAAlD,EAA6D;QAG3DO;MA3K+B;;MA8KjC,IAAI0C,YAAYC,kBAAkB3D,gBAAgBO,gBAAlD,EAAoE;QAClEP,gBAAgBnnB,KAAhBmnB,IAAyB0D,QAAzB1D;MADF,OAEO,IACL,CAAC+D,cAAcL,QAAd,EAAwB1D,gBAAgBG,aAAxC,EAAuDwD,eAAvD,CADI,EAEL;QACA,IAAI3D,gBAAgBn9C,GAAhBm9C,CAAoBj/D,MAApBi/D,KAA+B,CAAnC,EAAsC;UACpCgB;UACAlB,YAAYpc,KAAZoc,CAAkBh/D,IAAlBg/D,CAAuB;YACrBj9C,KAAK,GADgB;YAErBo0B,KAAK,KAFgB;YAGrB4B,OAAO7zC,KAAKgjB,GAALhjB,CAAS0+D,QAAT1+D,CAHc;YAIrB45C,QAAQ,CAJa;YAKrBzlC,WAAW6mD,gBAAgBG,aALN;YAMrB/7B,UAAU47B,gBAAgB57B,QANL;YAOrBs8B,QAAQ;UAPa,CAAvBZ;QAFF,OAWO;UACLE,gBAAgBnnB,KAAhBmnB,IAAyB0D,QAAzB1D;QAbF;MAlL+B;;MAmMjC,OAAO,IAAP;IAldD;;IAqdD,SAASgE,oBAAT,CAA8B;MAAE3zB,KAAF;MAAS4zB;IAAT,CAA9B,EAAuD;MACrD,MAAMtlD,OAAO8iD,UAAU9iD,IAAvB;;MACA,IAAI,CAAC0xB,KAAL,EAAY;QAEV,MAAM6zB,cAAczC,UAAUyC,WAAVzC,GAAwBwC,YAA5C;;QACA,IAAIC,WAAJ,EAAiB;UACf,IAAI,CAACvlD,KAAKuhD,QAAV,EAAoB;YAClBuB,UAAU0C,mBAAV1C,CACEyC,cAAczC,UAAUG,UAD1BH,EAEE,CAFFA;UADF,OAKO;YACLA,UAAU0C,mBAAV1C,CAA8B,CAA9BA,EAAiC,CAACyC,WAAlCzC;UAPa;QAHP;;QAcV;MAhBmD;;MAmBrD,MAAMtiB,SAASxgC,KAAK+/B,aAAL//B,CAAmB0xB,KAAnB1xB,CAAf;MACA,MAAM8hC,QAAQghB,UAAUM,UAAVN,CAAqB,CAArBA,IAA0BA,UAAU9jB,QAAlD;;MAEA,KAAK,IAAIh8C,IAAI,CAAR,EAAWiJ,KAAKu0C,OAAOp+C,MAA5B,EAAoCY,IAAIiJ,EAAxC,EAA4CjJ,GAA5C,EAAiD;QAC/C,MAAMg9C,QAAQQ,OAAOx9C,CAAP,CAAd;;QACA,IAAIg9C,MAAM5N,qBAAV,EAAiC;UAC/B;QAH6C;;QAK/C,IAAImzB,cACFzC,UAAUyC,WAAVzC,IAAyB9/D,IAAI,CAAJA,KAAUiJ,EAAVjJ,GAAesiE,YAAftiE,GAA8B,CAAvD8/D,CADF;QAGA,IAAI1gB,aAAapC,MAAM9F,KAAvB;;QACA,IAAIl6B,KAAKuhD,QAAT,EAAmB;UACjBnf,aAAapC,MAAMylB,OAANzlB,GAAgBA,MAAMylB,OAANzlB,CAAc,CAAdA,CAAhBA,GAAmC,CAACoC,UAAjDA;QAV6C;;QAY/C,IAAIsjB,YAAYtjB,aAAaN,KAA7B;;QAEA,IAAI9B,MAAM9N,YAAV,EAAwB;UAMtB,IAAI,CAAClyB,KAAKuhD,QAAV,EAAoB;YAClBgE,eAAeG,YAAY5C,UAAU6C,WAArCJ;YACAzC,UAAU0C,mBAAV1C,CACEyC,cAAczC,UAAUG,UAD1BH,EAEE,CAFFA;UAFF,OAMO;YACLyC,eAAe,CAACG,SAAD,GAAa5C,UAAU6C,WAAtCJ;YACAzC,UAAU0C,mBAAV1C,CAA8B,CAA9BA,EAAiC,CAACyC,WAAlCzC;UAdoB;;UAgBtBZ,aAAa,GAAb;UACA;QA/B6C;;QAkC/C,IAAI,CAACoC,yBAAL,EAAgC;UAE9B;QApC6C;;QAyC/C,MAAMH,YAAYX,uBAAlB;;QACA,IAAIxjB,MAAM7N,oBAAV,EAAgC;UAC9BuzB,YAAY,CAAZA;QA3C6C;;QA8C/C,IAAI,CAAC1lD,KAAKuhD,QAAV,EAAoB;UAClBmE,aAAa5C,UAAUG,UAAvByC;UACA5C,UAAU0C,mBAAV1C,CAA8B4C,SAA9B5C,EAAyC,CAAzCA;UACAqB,UAAUjqB,KAAViqB,IAAmBuB,SAAnBvB;QAHF,OAIO;UACLrB,UAAU0C,mBAAV1C,CAA8B,CAA9BA,EAAiC4C,SAAjC5C;UACA4C,YAAYr/D,KAAKgjB,GAALhjB,CAASq/D,SAATr/D,CAAZq/D;UACAvB,UAAUlkB,MAAVkkB,IAAoBuB,SAApBvB;QArD6C;;QAwD/C,IAAIuB,SAAJ,EAAe;UAEbvB,UAAU3C,aAAV2C,GAA0BpB,yBAA1BoB;QA1D6C;;QA6D/C,IAAIyB,eAAe5lB,MAAMpS,OAAzB;QACAg4B,eAAe1E,mBAAmB0E,YAAnB,KAAoCA,YAAnDA;QACAA,eAAen0B,2BAAam0B,YAAbn0B,CAAfm0B;;QACA,IAAI1D,aAAa0D,YAAb,CAAJ,EAAgC;UAM9BzB,UAAUjgD,GAAVigD,CAAchiE,IAAdgiE,CAAmB,GAAnBA;QAtE6C;;QAwE/CA,UAAUjgD,GAAVigD,CAAchiE,IAAdgiE,CAAmByB,YAAnBzB;;QAEA,IAAIoB,WAAJ,EAAiB;UACf,IAAI,CAACvlD,KAAKuhD,QAAV,EAAoB;YAClBuB,UAAU0C,mBAAV1C,CACEyC,cAAczC,UAAUG,UAD1BH,EAEE,CAFFA;UADF,OAKO;YACLA,UAAU0C,mBAAV1C,CAA8B,CAA9BA,EAAiC,CAACyC,WAAlCzC;UAPa;QA1E8B;MAtBI;IArdtD;;IAkkBD,SAASoC,SAAT,GAAqB;MACnB7C;;MACA,IAAIhB,gBAAgBC,WAApB,EAAiC;QAC/BD,gBAAgBU,MAAhBV,GAAyB,IAAzBA;QACA8D;MAFF,OAGO;QACLhE,YAAYpc,KAAZoc,CAAkBh/D,IAAlBg/D,CAAuB;UACrBj9C,KAAK,EADgB;UAErBo0B,KAAK,KAFgB;UAGrB4B,OAAO,CAHc;UAIrB+F,QAAQ,CAJa;UAKrBzlC,WAAWuoD,yBALU;UAMrBt9B,UAAUq9B,UAAU9iD,IAAV8iD,CAAe9H,UANJ;UAOrB+G,QAAQ;QAPa,CAAvBZ;MANiB;IAlkBpB;;IAolBD,SAASiE,aAAT,CAAuBlrB,KAAvB,EAA8B2rB,MAA9B,EAAsCb,eAAtC,EAAuD;MACrD,IACEA,kBAAkB3D,gBAAgBK,cAAlCsD,IAAoD9qB,KAApD8qB,IACA9qB,SAAS8qB,kBAAkB3D,gBAAgBM,cAF7C,EAGE;QACA,IAAIN,gBAAgBC,WAApB,EAAiC;UAC/Be;UACAhB,gBAAgBn9C,GAAhBm9C,CAAoBl/D,IAApBk/D,CAAyB,GAAzBA;QAHF;;QAKA,OAAO,KAAP;MATmD;;MAYrD,MAAM57B,WAAW47B,gBAAgB57B,QAAjC;MAEA,IAAIwa,SAAS,CAAb;;MACA,IAAIohB,gBAAgBE,QAApB,EAA8B;QAC5BthB,SAAS/F,KAAT+F;QACA/F,QAAQ,CAARA;MAjBmD;;MAoBrDirB;MACA9C;MACAlB,YAAYpc,KAAZoc,CAAkBh/D,IAAlBg/D,CAAuB;QACrBj9C,KAAK,GADgB;QAIrBo0B,KAAK,KAJgB;QAKrB4B,OAAO7zC,KAAKgjB,GAALhjB,CAAS6zC,KAAT7zC,CALc;QAMrB45C,QAAQ55C,KAAKgjB,GAALhjB,CAAS45C,MAAT55C,CANa;QAOrBmU,WAAWqrD,UAAU9C,yBAPA;QAQrBt9B,QARqB;QASrBs8B,QAAQ;MATa,CAAvBZ;MAYA,OAAO,IAAP;IAtnBD;;IAynBD,SAASgE,oBAAT,GAAgC;MAC9B,IAAI,CAAC9D,gBAAgBC,WAAjB,IAAgC,CAACD,gBAAgBn9C,GAArD,EAA0D;QACxD;MAF4B;;MAM9B,IAAI,CAACm9C,gBAAgBE,QAArB,EAA+B;QAC7BF,gBAAgBviB,UAAhBuiB,IACEA,gBAAgBnnB,KAAhBmnB,GAAwBA,gBAAgBI,gBAD1CJ;MADF,OAGO;QACLA,gBAAgBxiB,WAAhBwiB,IACEA,gBAAgBphB,MAAhBohB,GAAyBA,gBAAgBI,gBAD3CJ;MAV4B;;MAc9BF,YAAYpc,KAAZoc,CAAkBh/D,IAAlBg/D,CAAuB+C,iBAAiB7C,eAAjB,CAAvBF;MACAE,gBAAgBC,WAAhBD,GAA8B,KAA9BA;MACAA,gBAAgBn9C,GAAhBm9C,CAAoBj/D,MAApBi/D,GAA6B,CAA7BA;IAzoBD;;IA4oBD,SAASyE,YAAT,CAAsBC,QAAQ,KAA9B,EAAqC;MACnC,MAAM3jE,SAAS++D,YAAYpc,KAAZoc,CAAkB/+D,MAAjC;;MACA,IAAIA,WAAW,CAAf,EAAkB;QAChB;MAHiC;;MAKnC,IAAI2jE,SAAS3jE,SAASmxD,qBAAtB,EAA6C;QAC3C;MANiC;;MAQnC/lD,KAAKw4D,OAALx4D,CAAa2zD,WAAb3zD,EAA0BpL,MAA1BoL;MACA2zD,YAAYpc,KAAZoc,GAAoB,EAApBA;MACAA,YAAYC,MAAZD,GAAqB/0D,OAAOC,MAAPD,CAAc,IAAdA,CAArB+0D;IAtpBD;;IAypBD,MAAM7B,kBAAkB,IAAIzL,eAAJ,EAAxB;IAEA,OAAO,IAAItwD,OAAJ,CAAY,SAASk8D,WAAT,CAAqBl/D,OAArB,EAA8BoE,MAA9B,EAAsC;MACvD,MAAM+6D,OAAO,UAAUr/D,OAAV,EAAmB;QAC9BylE,aAA2B,IAA3B;QACAviE,QAAQC,GAARD,CAAY,CAAClD,OAAD,EAAUmN,KAAKmyD,KAAf,CAAZp8D,EAAmCK,IAAnCL,CAAwC,YAAY;UAClD,IAAI;YACFk8D,YAAYl/D,OAAZ,EAAqBoE,MAArB;UADF,EAEE,OAAOD,EAAP,EAAW;YACXC,OAAOD,EAAP;UAJgD;QAApD,GAMGC,MANHpB;MAFF;;MAUAT,KAAKrC,mBAALqC;MACAw8D,gBAAgB7jC,KAAhB6jC;MAEA,MAAM3X,YAAY,EAAlB;MACA,IAAIiY,IAAJ;MAAA,IACEjvC,OAAO,EADT;;MAEA,OAAO,EAAEivC,OAAON,gBAAgBtL,KAAhBsL,EAAT,CAAP,EAA0C;QAIxC3uC,KAAKvuB,MAALuuB,GAAc,CAAdA;QACAg3B,UAAUh3B,IAAVg3B,GAAiBh3B,IAAjBg3B;;QACA,IAAI,CAAC0X,aAAa94D,IAAb84D,CAAkB1X,SAAlB0X,CAAL,EAAmC;UACjC;QAPsC;;QASxCyD,YAAYhK,aAAapT,KAAzBod;QACA,MAAMlb,KAAKD,UAAUC,EAArB;QACAj3B,OAAOg3B,UAAUh3B,IAAjBA;;QAEA,QAAQi3B,KAAK,CAAb;UACE,KAAK/tC,UAAIoC,OAAT;YAEE,IAAIgqD,cAAct1C,KAAK,CAAL,EAAQ3wB,IAA1B;YAAA,IACEkmE,cAAcv1C,KAAK,CAAL,CADhB;;YAEA,IACEmyC,UAAU9iD,IAAV8iD,IACAmD,gBAAgBnD,UAAUr9B,QAD1Bq9B,IAEAoD,gBAAgBpD,UAAU9jB,QAH5B,EAIE;cACA;YATJ;;YAYEmmB;YACArC,UAAUr9B,QAAVq9B,GAAqBmD,WAArBnD;YACAA,UAAU9jB,QAAV8jB,GAAqBoD,WAArBpD;YACApD,KAAK/5B,cAAcsgC,WAAd,EAA2B,IAA3B,CAAL;YACA;;UACF,KAAKpsD,UAAIsC,WAAT;YACE2mD,UAAUI,QAAVJ,GAAqBnyC,KAAK,CAAL,CAArBmyC;YACA;;UACF,KAAKjpD,UAAIkC,SAAT;YACE+mD,UAAUG,UAAVH,GAAuBnyC,KAAK,CAAL,IAAU,GAAjCmyC;YACA;;UACF,KAAKjpD,UAAImC,UAAT;YACE8mD,UAAUqD,OAAVrD,GAAoBnyC,KAAK,CAAL,CAApBmyC;YACA;;UACF,KAAKjpD,UAAIuC,QAAT;YACE0mD,UAAUsD,uBAAVtD,CAAkCnyC,KAAK,CAAL,CAAlCmyC,EAA2CnyC,KAAK,CAAL,CAA3CmyC;YACAA,UAAUS,UAAVT,GAAuBA,UAAUgB,cAAVhB,CAAyBh8C,KAAzBg8C,EAAvBA;YACA;;UACF,KAAKjpD,UAAIwC,kBAAT;YACEymD,UAAUqD,OAAVrD,GAAoB,CAACnyC,KAAK,CAAL,CAArBmyC;YACAA,UAAUsD,uBAAVtD,CAAkCnyC,KAAK,CAAL,CAAlCmyC,EAA2CnyC,KAAK,CAAL,CAA3CmyC;YACAA,UAAUS,UAAVT,GAAuBA,UAAUgB,cAAVhB,CAAyBh8C,KAAzBg8C,EAAvBA;YACA;;UACF,KAAKjpD,UAAI0C,QAAT;YACEumD,UAAUuD,cAAVvD;YACA;;UACF,KAAKjpD,UAAIyC,aAAT;YACEwmD,UAAUxmD,aAAVwmD,CACEnyC,KAAK,CAAL,CADFmyC,EAEEnyC,KAAK,CAAL,CAFFmyC,EAGEnyC,KAAK,CAAL,CAHFmyC,EAIEnyC,KAAK,CAAL,CAJFmyC,EAKEnyC,KAAK,CAAL,CALFmyC,EAMEnyC,KAAK,CAAL,CANFmyC;YAQAA,UAAUwD,iBAAVxD,CACEnyC,KAAK,CAAL,CADFmyC,EAEEnyC,KAAK,CAAL,CAFFmyC,EAGEnyC,KAAK,CAAL,CAHFmyC,EAIEnyC,KAAK,CAAL,CAJFmyC,EAKEnyC,KAAK,CAAL,CALFmyC,EAMEnyC,KAAK,CAAL,CANFmyC;YAQAkB;YACA;;UACF,KAAKnqD,UAAIgC,cAAT;YACEinD,UAAUyC,WAAVzC,GAAwBnyC,KAAK,CAAL,CAAxBmyC;YACA;;UACF,KAAKjpD,UAAIiC,cAAT;YACEgnD,UAAU6C,WAAV7C,GAAwBnyC,KAAK,CAAL,CAAxBmyC;YACA;;UACF,KAAKjpD,UAAI8B,SAAT;YACEmnD,UAAUS,UAAVT,GAAuBpzD,sBAAgBoX,KAAhBpX,EAAvBozD;YACAA,UAAUgB,cAAVhB,GAA2BpzD,sBAAgBoX,KAAhBpX,EAA3BozD;YACA;;UACF,KAAKjpD,UAAI4C,cAAT;YACE,IAAI,CAACq8C,aAAapT,KAAboT,CAAmB94C,IAAxB,EAA8B;cAC5BvQ,KAAK8rD,eAAL9rD,CAAqBqpD,aAAapT,KAAlCj2C;cACA;YAHJ;;YAME,MAAM82D,cACF,WAAUvmD,IAAV8iD,CAAevB,QAAfuB,GAA0B,CAA1BA,GAA8B,CAAC,CAA/B,IAAoCA,UAAU9jB,QAA9C,GAA0D,IAD9D;YAEA,MAAMwnB,WAAW71C,KAAK,CAAL,CAAjB;;YACA,KAAK,IAAI3tB,IAAI,CAAR,EAAWiJ,KAAKu6D,SAASpkE,MAA9B,EAAsCY,IAAIiJ,KAAK,CAA/C,EAAkDjJ,GAAlD,EAAuD;cACrD,MAAMuhB,OAAOiiD,SAASxjE,CAAT,CAAb;;cACA,IAAI,OAAOuhB,IAAP,KAAgB,QAApB,EAA8B;gBAC5Bo+C,qBAAqBxgE,IAArBwgE,CAA0Bp+C,IAA1Bo+C;cADF,OAEO,IAAI,OAAOp+C,IAAP,KAAgB,QAAhB,IAA4BA,SAAS,CAAzC,EAA4C;gBASjD,MAAML,MAAMy+C,qBAAqBtgE,IAArBsgE,CAA0B,EAA1BA,CAAZ;gBACAA,qBAAqBvgE,MAArBugE,GAA8B,CAA9BA;gBACA0C,qBAAqB;kBACnB3zB,OAAOxtB,GADY;kBAEnBohD,cAAc/gD,OAAOgiD;gBAFF,CAArB;cAfmD;YATzD;;YA+BE,MAAMhiD,OAAOiiD,SAASA,SAASpkE,MAATokE,GAAkB,CAA3B,CAAb;;YACA,IAAI,OAAOjiD,IAAP,KAAgB,QAApB,EAA8B;cAC5Bo+C,qBAAqBxgE,IAArBwgE,CAA0Bp+C,IAA1Bo+C;YAjCJ;;YAoCE,IAAIA,qBAAqBvgE,MAArBugE,GAA8B,CAAlC,EAAqC;cACnC,MAAMz+C,MAAMy+C,qBAAqBtgE,IAArBsgE,CAA0B,EAA1BA,CAAZ;cACAA,qBAAqBvgE,MAArBugE,GAA8B,CAA9BA;cACA0C,qBAAqB;gBACnB3zB,OAAOxtB,GADY;gBAEnBohD,cAAc;cAFK,CAArB;YAvCJ;;YA4CE;;UACF,KAAKzrD,UAAI2C,QAAT;YACE,IAAI,CAACs8C,aAAapT,KAAboT,CAAmB94C,IAAxB,EAA8B;cAC5BvQ,KAAK8rD,eAAL9rD,CAAqBqpD,aAAapT,KAAlCj2C;cACA;YAHJ;;YAKE41D,qBAAqB;cACnB3zB,OAAO/gB,KAAK,CAAL,CADY;cAEnB20C,cAAc;YAFK,CAArB;YAIA;;UACF,KAAKzrD,UAAI6C,gBAAT;YACE,IAAI,CAACo8C,aAAapT,KAAboT,CAAmB94C,IAAxB,EAA8B;cAC5BvQ,KAAK8rD,eAAL9rD,CAAqBqpD,aAAapT,KAAlCj2C;cACA;YAHJ;;YAKEqzD,UAAUuD,cAAVvD;YACAuC,qBAAqB;cACnB3zB,OAAO/gB,KAAK,CAAL,CADY;cAEnB20C,cAAc;YAFK,CAArB;YAIA;;UACF,KAAKzrD,UAAI8C,0BAAT;YACE,IAAI,CAACm8C,aAAapT,KAAboT,CAAmB94C,IAAxB,EAA8B;cAC5BvQ,KAAK8rD,eAAL9rD,CAAqBqpD,aAAapT,KAAlCj2C;cACA;YAHJ;;YAKEqzD,UAAU6C,WAAV7C,GAAwBnyC,KAAK,CAAL,CAAxBmyC;YACAA,UAAUyC,WAAVzC,GAAwBnyC,KAAK,CAAL,CAAxBmyC;YACAA,UAAUuD,cAAVvD;YACAuC,qBAAqB;cACnB3zB,OAAO/gB,KAAK,CAAL,CADY;cAEnB20C,cAAc;YAFK,CAArB;YAIA;;UACF,KAAKzrD,UAAIiE,YAAT;YACEqnD;;YACA,IAAI,CAAChG,KAAL,EAAY;cACVA,QAAQniC,UAAU3zB,GAAV2zB,CAAc,SAAdA,KAA4BpxB,iBAAKqiB,KAAzCkxC;YAHJ;;YAME,IAAIU,cAAclvC,KAAK,CAAL,aAAmBzE,gBAArC;YACA,IAAIlsB,OAAO2wB,KAAK,CAAL,EAAQ3wB,IAAnB;;YAEA,IAAI6/D,eAAe+C,kBAAkB3X,SAAlB2X,CAA4B5iE,IAA5B4iE,CAAnB,EAAsD;cACpD;YAVJ;;YAaElD,KACE,IAAIn8D,OAAJ,CAAY,UAAU08D,cAAV,EAA0BC,aAA1B,EAAyC;cACnD,IAAI,CAACL,WAAL,EAAkB;gBAChB,MAAM,IAAIx8C,iBAAJ,CAAgB,sCAAhB,CAAN;cAFiD;;cAKnD,IAAIwyC,OAAOsJ,MAAMtyD,MAANsyD,CAAan/D,IAAbm/D,CAAX;;cACA,IAAItJ,gBAAgBzsD,eAApB,EAAyB;gBACvB,IAAIw5D,kBAAkB5X,QAAlB4X,CAA2B/M,IAA3B+M,CAAJ,EAAsC;kBACpC3C;kBACA;gBAHqB;;gBAMvB,MAAME,cAAc1wD,KAAK6sB,gBAAL7sB,CAAsB2wD,OAAtB3wD,CAClBomD,IADkBpmD,EAElBA,KAAK9G,SAFa8G,CAApB;;gBAIA,IAAI0wD,WAAJ,EAAiB;kBACfF;kBACA;gBAZqB;;gBAevBpK,OAAO7qD,KAAKwiB,KAALxiB,CAAW6qD,IAAX7qD,CAAP6qD;cArBiD;;cAwBnD,IAAI,EAAEA,gBAAgBl9B,uBAAlB,CAAJ,EAAmC;gBACjC,MAAM,IAAItV,iBAAJ,CAAgB,4BAAhB,CAAN;cAzBiD;;cA4BnD,MAAMyI,OAAO+pC,KAAKpnC,IAALonC,CAAUxsD,GAAVwsD,CAAc,SAAdA,CAAb;;cACA,IAAI,EAAE/pC,gBAAgBI,gBAAlB,CAAJ,EAA6B;gBAC3B,MAAM,IAAI7I,iBAAJ,CAAgB,oCAAhB,CAAN;cA9BiD;;cAiCnD,IAAIyI,KAAK9rB,IAAL8rB,KAAc,MAAlB,EAA0B;gBACxB82C,kBAAkBn+C,GAAlBm+C,CAAsB5iE,IAAtB4iE,EAA4B/M,KAAKpnC,IAALonC,CAAU9oC,KAAtC61C,EAA6C,IAA7CA;gBAEA3C;gBACA;cArCiD;;cA6CnD,MAAMwG,eAAe3N,aAAapT,KAAboT,CAAmBvzB,KAAnBuzB,EAArB;cACA,MAAM4N,mBAAmB,IAAItH,YAAJ,CAAiBqH,YAAjB,CAAzB;cAEA,MAAMvwB,SAAS2f,KAAKpnC,IAALonC,CAAUloC,QAAVkoC,CAAmB,QAAnBA,CAAf;;cACA,IAAI9pD,MAAMC,OAAND,CAAcmqC,MAAdnqC,KAAyBmqC,OAAO9zC,MAAP8zC,KAAkB,CAA/C,EAAkD;gBAChDwwB,iBAAiBlsD,SAAjBksD,CAA2BxwB,MAA3BwwB;cAlDiD;;cAuDnDZ;cACA,MAAMa,cAAc;gBAClBC,gBAAgB,KADE;;gBAGlBZ,QAAQjiD,KAAR,EAAeqJ,IAAf,EAAqB;kBACnB,KAAKw5C,cAAL,GAAsB,IAAtB;kBACAp5D,KAAKw4D,OAALx4D,CAAauW,KAAbvW,EAAoB4f,IAApB5f;gBALgB;;gBAQlB,IAAIq5D,WAAJ,GAAkB;kBAChB,OAAOr5D,KAAKq5D,WAAZ;gBATgB;;gBAYlB,IAAIlH,KAAJ,GAAY;kBACV,OAAOnyD,KAAKmyD,KAAZ;gBAbgB;;cAAA,CAApB;cAiBAlwD,KACGwwB,cADHxwB,CACkB;gBACdnH,QAAQutD,IADM;gBAEd/yD,IAFc;gBAGdk6B,WAAW64B,KAAKpnC,IAALonC,CAAUxsD,GAAVwsD,CAAc,WAAdA,KAA8B74B,SAH3B;gBAId87B,cAAc4N,gBAJA;gBAKdj4D,gBALc;gBAMdD,oBANc;gBAOdhB,MAAMm5D,WAPQ;gBAQd3F,UARc;gBASd9gC;cATc,CADlBzwB,EAYG7L,IAZH6L,CAYQ,YAAY;gBAChB,IAAI,CAACk3D,YAAYC,cAAjB,EAAiC;kBAC/BhE,kBAAkBn+C,GAAlBm+C,CAAsB5iE,IAAtB4iE,EAA4B/M,KAAKpnC,IAALonC,CAAU9oC,KAAtC61C,EAA6C,IAA7CA;gBAFc;;gBAIhB3C;cAhBJ,GAiBKC,aAjBLzwD;YAzEF,GA2FG/L,KA3FH,CA2FS,UAAUC,MAAV,EAAkB;cACzB,IAAIA,kBAAkB0E,oBAAtB,EAAsC;gBACpC;cAFuB;;cAIzB,IAAIoH,KAAKuS,OAALvS,CAAa1H,YAAjB,EAA+B;gBAG7BjC,gBAAM,uCAAsCnC,MAAO,IAAnDmC;gBACA;cARuB;;cAUzB,MAAMnC,MAAN;YArGF,EADF;YAyGA;;UACF,KAAKkW,UAAIS,SAAT;YACEulD,cAAclvC,KAAK,CAAL,aAAmBzE,gBAAjC2zC;YACA7/D,OAAO2wB,KAAK,CAAL,EAAQ3wB,IAAfA;;YAEA,IAAI6/D,eAAegD,iBAAiB5X,SAAjB4X,CAA2B7iE,IAA3B6iE,CAAnB,EAAqD;cACnD;YALJ;;YAQEnD,KACE,IAAIn8D,OAAJ,CAAY,UAAUq9D,aAAV,EAAyBC,YAAzB,EAAuC;cACjD,IAAI,CAAChB,WAAL,EAAkB;gBAChB,MAAM,IAAIx8C,iBAAJ,CAAgB,qCAAhB,CAAN;cAF+C;;cAKjD,MAAMy9C,YAAY9jC,UAAU3zB,GAAV2zB,CAAc,WAAdA,CAAlB;;cACA,IAAI,EAAE8jC,qBAAqBl1D,gBAAvB,CAAJ,EAAkC;gBAChC,MAAM,IAAIyX,iBAAJ,CAAgB,mCAAhB,CAAN;cAP+C;;cAUjD,MAAMm4C,SAASsF,UAAUz3D,GAAVy3D,CAAc9gE,IAAd8gE,CAAf;;cAIA,IAAI,EAAEtF,kBAAkB5vD,gBAApB,CAAJ,EAA+B;gBAC7B,MAAM,IAAIyX,iBAAJ,CAAgB,gCAAhB,CAAN;cAf+C;;cAkBjD,MAAMyjD,aAAatL,OAAOnyD,GAAPmyD,CAAW,MAAXA,CAAnB;;cACA,IAAI,CAACsL,UAAL,EAAiB;gBACfjE,iBAAiBp+C,GAAjBo+C,CAAqB7iE,IAArB6iE,EAA2BrH,OAAOzuC,KAAlC81C,EAAyC,IAAzCA;gBAEAjC;gBACA;cAvB+C;;cAyBjDuE;cAEArC,UAAUr9B,QAAVq9B,GAAqB,IAArBA;cACAA,UAAU9jB,QAAV8jB,GAAqBgE,WAAW,CAAX,CAArBhE;cACAn9B,cAAc,IAAd,EAAoBmhC,WAAW,CAAX,CAApB,EAAmCljE,IAAnC+hC,CACEi7B,aADFj7B,EAEEk7B,YAFFl7B;YA7BF,GAiCGjiC,KAjCH,CAiCS,UAAUC,MAAV,EAAkB;cACzB,IAAIA,kBAAkB0E,oBAAtB,EAAsC;gBACpC;cAFuB;;cAIzB,IAAIoH,KAAKuS,OAALvS,CAAa1H,YAAjB,EAA+B;gBAG7BjC,gBAAM,yCAAwCnC,MAAO,IAArDmC;gBACA;cARuB;;cAUzB,MAAMnC,MAAN;YA3CF,EADF;YA+CA;;UACF,KAAKkW,UAAIoE,kBAAT;YACE,IAAIzP,oBAAJ,EAA0B;cACxB2yD,YAAYpc,KAAZoc,CAAkBh/D,IAAlBg/D,CAAuB;gBACrBr1C,MAAM,oBADe;gBAErBi7C,KAAKp2C,KAAK,CAAL,aAAmBzE,gBAAnByE,GAA0BA,KAAK,CAAL,EAAQ3wB,IAAlC2wB,GAAyC;cAFzB,CAAvBwwC;YAFJ;;YAOE;;UACF,KAAKtnD,UAAIqE,uBAAT;YACE,IAAI1P,oBAAJ,EAA0B;cACxB22D;cACA,IAAI6B,OAAO,IAAX;;cACA,IAAIr2C,KAAK,CAAL,aAAmB/kB,gBAAvB,EAA6B;gBAC3Bo7D,OAAOr2C,KAAK,CAAL,EAAQtnB,GAARsnB,CAAY,MAAZA,CAAPq2C;cAJsB;;cAMxB7F,YAAYpc,KAAZoc,CAAkBh/D,IAAlBg/D,CAAuB;gBACrBr1C,MAAM,yBADe;gBAErBniB,IAAIwX,OAAOC,SAAPD,CAAiB6lD,IAAjB7lD,IACA,GAAG1R,KAAKmuB,SAALnuB,CAAeotB,YAAfptB,EAA8B,QAAOu3D,IAAxC,EADA7lD,GAEA,IAJiB;gBAKrB4lD,KAAKp2C,KAAK,CAAL,aAAmBzE,gBAAnByE,GAA0BA,KAAK,CAAL,EAAQ3wB,IAAlC2wB,GAAyC;cALzB,CAAvBwwC;YAPJ;;YAeE;;UACF,KAAKtnD,UAAIsE,gBAAT;YACE,IAAI3P,oBAAJ,EAA0B;cACxB22D;cACAhE,YAAYpc,KAAZoc,CAAkBh/D,IAAlBg/D,CAAuB;gBACrBr1C,MAAM;cADe,CAAvBq1C;YAHJ;;YAOE;QAjWJ;;QAmWA,IAAIA,YAAYpc,KAAZoc,CAAkB/+D,MAAlB++D,IAA4B3zD,KAAKq5D,WAArC,EAAkD;UAEhDjH,OAAO,IAAPA;UACA;QAnXsC;MAjBa;;MAuYvD,IAAIA,IAAJ,EAAU;QACRF,KAAKlM,QAAL;QACA;MAzYqD;;MA2YvD2R;MACAW;MACAvlE;IA7YK,GA8YJmD,KA9YI,CA8YEC,UAAU;MACjB,IAAIA,kBAAkB0E,oBAAtB,EAAsC;QACpC;MAFe;;MAIjB,IAAI,KAAK2Z,OAAL,CAAaja,YAAjB,EAA+B;QAE7BjC,gBACG,4CAA2ChD,KAAK9C,IAAK,IAAtD,GACG,UAAS2D,MAAO,IAFrBmC;QAKAq/D;QACAW;QACA;MAbe;;MAejB,MAAMniE,MAAN;IA7ZK,EAAP;EAjsFmB;;EAkmGrBsjE,sBAAsBx4C,IAAtB,EAA4By4C,QAA5B,EAAsC34C,UAAtC,EAAkD;IAChD,MAAMvjB,OAAO,KAAKA,IAAlB;IACA,IAAIm8D,aAAJ;IAEA,MAAMC,mBAAmB,KAAKC,aAAL,CACvB94C,WAAW+4C,SAAX/4C,IAAwBE,KAAKplB,GAALolB,CAAS,WAATA,CAAxBF,IAAiD24C,SAAS79D,GAAT69D,CAAa,WAAbA,CAD1B,CAAzB;;IAIA,IAAI34C,WAAWg5C,SAAf,EAA0B;MAExB,MAAMC,gBAAgB/4C,KAAKplB,GAALolB,CAAS,eAATA,CAAtB;;MACA,IAAI+4C,yBAAyB57D,gBAA7B,EAAmC;QACjC2iB,WAAWi5C,aAAXj5C,GAA2B;UACzBk5C,UAAU96D,6BAAkB66D,cAAcn+D,GAAdm+D,CAAkB,UAAlBA,CAAlB76D,CADe;UAEzB+6D,UAAU/6D,6BAAkB66D,cAAcn+D,GAAdm+D,CAAkB,UAAlBA,CAAlB76D,CAFe;UAGzBg7D,YAAYH,cAAcn+D,GAAdm+D,CAAkB,YAAlBA;QAHa,CAA3Bj5C;MAJsB;;MAWxB,MAAMq5C,cAAcn5C,KAAKplB,GAALolB,CAAS,aAATA,CAApB;;MACA,IAAIm5C,uBAAuBjvC,uBAA3B,EAAuC;QACrCwuC,gBAAgBS,YAAYz0C,QAAZy0C,EAAhBT;MAbsB;IARsB;;IA+BhD,MAAM92B,cAAc,EAApB;IACA,IAAIH,mBAAmB,IAAvB;IACA,IAAIxmB,QAAJ;;IACA,IAAI+E,KAAKV,GAALU,CAAS,UAATA,CAAJ,EAA0B;MACxB/E,WAAW+E,KAAKplB,GAALolB,CAAS,UAATA,CAAX/E;;MACA,IAAIA,oBAAoB9d,gBAAxB,EAA8B;QAC5BskC,mBAAmBxmB,SAASrgB,GAATqgB,CAAa,cAAbA,CAAnBwmB;QACAA,mBACEA,4BAA4BhkB,gBAA5BgkB,GAAmCA,iBAAiBlwC,IAApDkwC,GAA2D,IAD7DA;;QAGA,IAAIxmB,SAASqE,GAATrE,CAAa,aAAbA,CAAJ,EAAiC;UAC/B,MAAMm+C,eAAen+C,SAASrgB,GAATqgB,CAAa,aAAbA,CAArB;UACA,IAAIqkB,QAAQ,CAAZ;;UACA,KAAK,IAAIzkB,IAAI,CAAR,EAAW6rB,KAAK0yB,aAAazlE,MAAlC,EAA0CknB,IAAI6rB,EAA9C,EAAkD7rB,GAAlD,EAAuD;YACrD,MAAMpoB,OAAO8J,KAAK24B,UAAL34B,CAAgB68D,aAAav+C,CAAb,CAAhBte,CAAb;;YACA,IAAI,OAAO9J,IAAP,KAAgB,QAApB,EAA8B;cAC5B6sC,QAAQ7sC,IAAR6sC;YADF,OAEO,IAAI7sC,gBAAgBgrB,gBAApB,EAA0B;cAC/BmkB,YAAYtC,OAAZ,IAAuB7sC,KAAKlB,IAA5BqwC;YADK,OAEA;cACL,MAAM,IAAIhtB,iBAAJ,CACH,yCAAwCniB,IAAzC,EADI,CAAN;YAPmD;UAHxB;QALL;MAA9B,OAqBO,IAAIwoB,oBAAoBwC,gBAAxB,EAA8B;QACnCgkB,mBAAmBxmB,SAAS1pB,IAA5BkwC;MADK,OAEA;QACL,MAAM7uB,MAAM,mCAAZ;;QAEA,IAAI,CAAC,KAAKW,OAAL,CAAaja,YAAlB,EAAgC;UAC9B,MAAM,IAAIsb,iBAAJ,CAAgBhC,GAAhB,CAAN;QAJG;;QAMLvb,gBAAKub,GAALvb;MA/BsB;;MAmCxB,IACEoqC,qBAAqB,kBAArBA,IACAA,qBAAqB,mBADrBA,IAEAA,qBAAqB,iBAHvB,EAIE;QACAA,mBAAmB,IAAnBA;MAxCsB;IAlCsB;;IA8EhD,IAAIA,gBAAJ,EAAsB;MACpB3hB,WAAWu5C,eAAXv5C,GAA6B4hB,4BAAYD,gBAAZC,CAA7B5hB;IADF,OAEO;MACL,MAAMwhB,iBAAiB,CAAC,EAAExhB,WAAWyhB,KAAXzhB,GAAmBggB,uBAAUG,QAA/B,CAAxB;MACA,MAAMq5B,oBAAoB,CAAC,EAAEx5C,WAAWyhB,KAAXzhB,GAAmBggB,uBAAUK,WAA/B,CAA3B;MAIAllB,WAAW0mB,2BAAX1mB;;MACA,IAAI6E,WAAWzC,IAAXyC,KAAoB,UAApBA,IAAkC,CAACw5C,iBAAvC,EAA0D;QACxDr+C,WAAWknB,0BAAXlnB;MARG;;MAYL,IAAIqmB,cAAJ,EAAoB;QAClBrmB,WAAWinB,2BAAXjnB;;QACA,IAAI,CAAC6E,WAAWg5B,IAAZ,IAAoBh5B,WAAW0hB,cAAnC,EAAmD;UACjD,IAAI,UAAU9lB,IAAV,CAAeoE,WAAWvuB,IAA1B,CAAJ,EAAqC;YACnC0pB,WAAWmnB,4BAAXnnB;UADF,OAEO,IAAI,sBAAsBS,IAAtB,CAA2BoE,WAAWvuB,IAAtC,CAAJ,EAAiD;YACtD0pB,WAAWonB,+BAAXpnB;UAJ+C;QAFjC;MAZf;;MAsBL6E,WAAWu5C,eAAXv5C,GAA6B7E,QAA7B6E;IAtG8C;;IAyGhDA,WAAW8hB,WAAX9hB,GAAyB8hB,WAAzB9hB;IACAA,WAAW2hB,gBAAX3hB,GAA8B2hB,gBAA9B3hB;IACAA,WAAWy5C,WAAXz5C,GAAyB,CAAC,CAAC2hB,gBAAF,IAAsBG,YAAYjuC,MAAZiuC,GAAqB,CAApE9hB;IACAA,WAAWE,IAAXF,GAAkBE,IAAlBF;IACA,OAAO64C,iBACJxjE,IADIwjE,CACCC,iBAAiB;MACrB94C,WAAW+4C,SAAX/4C,GAAuB84C,aAAvB94C;MACA,OAAO,KAAK05C,cAAL,CAAoB15C,UAApB,CAAP;IAHG,GAKJ3qB,IALIwjE,CAKCc,kBAAkB;MACtB35C,WAAW+4C,SAAX/4C,GAAuB25C,cAAvB35C;;MACA,IAAI44C,aAAJ,EAAmB;QACjB54C,WAAWq5C,WAAXr5C,GAAyB,KAAK45C,eAAL,CACvBhB,aADuB,EAEvBe,cAFuB,CAAzB35C;MAHoB;;MAQtB,OAAOA,UAAP;IAbG,EAAP;EA/sGmB;;EAouGrB65C,qBAAqB75C,UAArB,EAAiC85C,cAAc,KAA/C,EAAsD;IACpD5mD,kBAAO,CAAC8M,WAAWg5C,SAAnB9lD,EAA8B,wBAA9BA;IAEA,MAAM6lD,YAAY,EAAlB;IACA,MAAM59C,WAAW6E,WAAWu5C,eAAXv5C,CAA2BzH,KAA3ByH,EAAjB;IACA,MAAM2hB,mBAAmB3hB,WAAW2hB,gBAApC;IAEA,MAAMG,cAAc9hB,WAAW8hB,WAA/B;;IACA,WAAWi4B,QAAX,IAAuBj4B,WAAvB,EAAoC;MAClC,MAAMC,YAAYD,YAAYi4B,QAAZ,CAAlB;;MACA,IAAIh4B,cAAc,SAAlB,EAA6B;QAG3B;MALgC;;MAOlC5mB,SAAS4+C,QAAT,IAAqBh4B,SAArB5mB;IAfkD;;IAiBpD,MAAM4lB,mBAAmBiB,kCAAzB;;IACA,WAAW+3B,QAAX,IAAuB5+C,QAAvB,EAAiC;MAE/B,IAAI4mB,YAAY5mB,SAAS4+C,QAAT,CAAhB;;MAGA,IAAIh4B,cAAc,EAAlB,EAAsB;QACpB;MADF,OAEO,IAAIhB,iBAAiBgB,SAAjB,MAAgC/sB,SAApC,EAA+C;QAGpD,IAAIvc,OAAO,CAAX;;QACA,QAAQspC,UAAU,CAAV,CAAR;UACE,KAAK,GAAL;YACE,IAAIA,UAAUluC,MAAVkuC,KAAqB,CAAzB,EAA4B;cAC1BtpC,OAAOkxB,SAASoY,UAAUlY,SAAVkY,CAAoB,CAApBA,CAAT,EAAiC,EAAjC,CAAPtpC;YAFJ;;YAIE;;UACF,KAAK,GAAL;YACE,IAAIspC,UAAUluC,MAAVkuC,KAAqB,CAAzB,EAA4B;cAC1BtpC,OAAOkxB,SAASoY,UAAUlY,SAAVkY,CAAoB,CAApBA,CAAT,EAAiC,EAAjC,CAAPtpC;YAFJ;;YAIE;;UACF,KAAK,GAAL;UACA,KAAK,GAAL;YACE,IAAIspC,UAAUluC,MAAVkuC,IAAoB,CAApBA,IAAyBA,UAAUluC,MAAVkuC,IAAoB,CAAjD,EAAoD;cAClD,MAAMi4B,UAAUj4B,UAAUlY,SAAVkY,CAAoB,CAApBA,CAAhB;;cAEA,IAAI+3B,WAAJ,EAAiB;gBACfrhE,OAAOkxB,SAASqwC,OAAT,EAAkB,EAAlB,CAAPvhE;gBACA;cALgD;;cASlDA,OAAO,CAACuhE,OAARvhE;;cAMA,IACEma,OAAOmZ,KAAPnZ,CAAana,IAAbma,KACAA,OAAOC,SAAPD,CAAiB+W,SAASqwC,OAAT,EAAkB,EAAlB,CAAjBpnD,CAFF,EAGE;gBACA,OAAO,KAAKinD,oBAAL,CACL75C,UADK,EAEa,IAFb,CAAP;cAnBgD;YADtD;;YA0BE;;UACF;YACE,MAAMqf,UAAU2B,iCAAmBe,SAAnBf,EAA8BD,gBAA9BC,CAAhB;;YACA,IAAI3B,YAAY,CAAC,CAAjB,EAAoB;cAClB5mC,OAAO4mC,OAAP5mC;YA1CN;;QAAA;;QA6CA,IAAIA,OAAO,CAAPA,IAAYA,QAAQ,QAApBA,IAAgCma,OAAOC,SAAPD,CAAiBna,IAAjBma,CAApC,EAA4D;UAI1D,IAAI+uB,oBAAoBlpC,SAAS,CAACshE,QAAlC,EAA4C;YAC1C,MAAMx4B,eAAeK,4BAAYD,gBAAZC,CAArB;;YACA,IAAIL,iBAAiBQ,YAAYR,aAAaw4B,QAAb,CAA7B,CAAJ,EAA0D;cACxDhB,UAAUgB,QAAV,IAAsB7kD,OAAOC,YAAPD,CACpB6rB,iBAAiBgB,SAAjB,CADoB7sB,CAAtB6jD;cAGA;YANwC;UAJc;;UAa1DA,UAAUgB,QAAV,IAAsB7kD,OAAO+kD,aAAP/kD,CAAqBzc,IAArByc,CAAtB6jD;QA9DkD;;QAgEpD;MAvE6B;;MAyE/BA,UAAUgB,QAAV,IAAsB7kD,OAAOC,YAAPD,CAAoB6rB,iBAAiBgB,SAAjB,CAApB7sB,CAAtB6jD;IA3FkD;;IA6FpD,OAAOA,SAAP;EAj0GmB;;EA00GrB,MAAMW,cAAN,CAAqB15C,UAArB,EAAiC;IAC/BA,WAAWk6C,uBAAXl6C,GACE,CAAC,CAACA,WAAW+4C,SAAb,IAA0B/4C,WAAW+4C,SAAX/4C,CAAqBnsB,MAArBmsB,GAA8B,CAD1DA;;IAIA,IAAIA,WAAWk6C,uBAAf,EAAwC;MAItC,IAAI,CAACl6C,WAAWg5C,SAAZ,IAAyBh5C,WAAWy5C,WAAxC,EAAqD;QACnDz5C,WAAWm6C,iBAAXn6C,GAA+B,KAAK65C,oBAAL,CAA0B75C,UAA1B,CAA/BA;MALoC;;MAOtC,OAAOA,WAAW+4C,SAAlB;IAZ6B;;IAoB/B,IAAI,CAAC/4C,WAAWg5C,SAAhB,EAAgD;MAC9C,OAAO,IAAIoB,4BAAJ,CAAiB,KAAKP,oBAAL,CAA0B75C,UAA1B,CAAjB,CAAP;IArB6B;;IA4B/B,IACEA,WAAWg5C,SAAXh5C,KACEA,WAAWq6C,IAAXr6C,CAAgBs6C,WAAhBt6C,IACA,EAAEA,WAAWq6C,IAAXr6C,YAA2Bu6C,kBAA7B,CADAv6C,IAECA,WAAWi5C,aAAXj5C,CAAyBk5C,QAAzBl5C,KAAsC,OAAtCA,KACEA,WAAWi5C,aAAXj5C,CAAyBm5C,QAAzBn5C,KAAsC,KAAtCA,IACCA,WAAWi5C,aAAXj5C,CAAyBm5C,QAAzBn5C,KAAsC,MADvCA,IAECA,WAAWi5C,aAAXj5C,CAAyBm5C,QAAzBn5C,KAAsC,QAFvCA,IAGCA,WAAWi5C,aAAXj5C,CAAyBm5C,QAAzBn5C,KAAsC,QAJzCA,CAHHA,CADF,EASE;MAOA,MAAM;QAAEk5C,QAAF;QAAYC;MAAZ,IAAyBn5C,WAAWi5C,aAA1C;;MAIA,MAAMuB,eAAe78C,iBAAK7iB,GAAL6iB,CAAS,GAAGu7C,QAAS,IAAGC,QAAS,OAAjCx7C,CAArB;;MAGA,MAAM88C,WAAW,MAAMC,kBAAY58D,MAAZ48D,CAAmB;QACxCv/C,UAAUq/C,YAD8B;QAExC1U,kBAAkB,KAAKD,sBAFiB;QAGxC8U,SAAS;MAH+B,CAAnBD,CAAvB;MAKA,MAAM3B,YAAY,EAAlB;MACA/4C,WAAWq6C,IAAXr6C,CAAgB9hB,OAAhB8hB,CAAwB,UAAU+5C,QAAV,EAAoBa,GAApB,EAAyB;QAC/C,IAAIA,MAAM,MAAV,EAAkB;UAChB,MAAM,IAAI9lD,iBAAJ,CAAgB,2BAAhB,CAAN;QAF6C;;QAM/C,MAAM+lD,OAAOJ,SAASjzC,MAATizC,CAAgBG,GAAhBH,CAAb;;QACA,IAAII,IAAJ,EAAU;UACR9B,UAAUgB,QAAV,IAAsB7kD,OAAOC,YAAPD,CACnB,MAAKU,UAALilD,CAAgB,CAAhBA,KAAsB,CAAtB,IAA2BA,KAAKjlD,UAALilD,CAAgB,CAAhBA,CADR3lD,CAAtB6jD;QAR6C;MAAjD;MAaA,OAAO,IAAIqB,4BAAJ,CAAiBrB,SAAjB,CAAP;IAtE6B;;IA0E/B,OAAO,IAAI+B,oCAAJ,CAAyB96C,WAAW+6C,SAApC,EAA+C/6C,WAAWg7C,QAA1D,CAAP;EAp5GmB;;EAu5GrBlC,cAAcmC,OAAd,EAAuB;IACrB,IAAI,CAACA,OAAL,EAAc;MACZ,OAAOjmE,QAAQhD,OAARgD,CAAgB,IAAhBA,CAAP;IAFmB;;IAIrB,IAAIimE,mBAAmBt9C,gBAAvB,EAA6B;MAC3B,OAAO+8C,kBAAY58D,MAAZ48D,CAAmB;QACxBv/C,UAAU8/C,OADc;QAExBnV,kBAAkB,KAAKD,sBAFC;QAGxB8U,SAAS;MAHe,CAAnBD,EAIJrlE,IAJIqlE,CAIC,UAAUQ,IAAV,EAAgB;QACtB,IAAIA,gBAAgBX,kBAApB,EAAkC;UAChC,OAAO,IAAIO,oCAAJ,CAAyB,CAAzB,EAA4B,MAA5B,CAAP;QAFoB;;QAItB,OAAO,IAAIV,4BAAJ,CAAiBc,KAAKC,MAALD,EAAjB,CAAP;MARK,EAAP;IADF,OAWO,IAAID,mBAAmB7wC,uBAAvB,EAAmC;MACxC,OAAOswC,kBAAY58D,MAAZ48D,CAAmB;QACxBv/C,UAAU8/C,OADc;QAExBnV,kBAAkB,KAAKD,sBAFC;QAGxB8U,SAAS;MAHe,CAAnBD,EAIJrlE,IAJIqlE,CAKL,UAAUQ,IAAV,EAAgB;QACd,IAAIA,gBAAgBX,kBAApB,EAAkC;UAChC,OAAO,IAAIO,oCAAJ,CAAyB,CAAzB,EAA4B,MAA5B,CAAP;QAFY;;QAId,MAAMvkD,MAAM,IAAI/Y,KAAJ,CAAU09D,KAAKrnE,MAAf,CAAZ;QAIAqnE,KAAKh9D,OAALg9D,CAAa,UAAU55B,QAAV,EAAoB85B,KAApB,EAA2B;UAEtC,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;YAC7B7kD,IAAI+qB,QAAJ,IAAgBpsB,OAAO+kD,aAAP/kD,CAAqBkmD,KAArBlmD,CAAhBqB;YACA;UAJoC;;UAMtC,MAAMZ,MAAM,EAAZ;;UACA,KAAK,IAAIupC,IAAI,CAAb,EAAgBA,IAAIkc,MAAMvnE,MAA1B,EAAkCqrD,KAAK,CAAvC,EAA0C;YACxC,MAAMtF,KAAMwhB,MAAMxlD,UAANwlD,CAAiBlc,CAAjBkc,KAAuB,CAAvBA,GAA4BA,MAAMxlD,UAANwlD,CAAiBlc,IAAI,CAArBkc,CAAxC;;YACA,IAAK,MAAK,MAAL,MAAiB,MAAtB,EAA8B;cAE5BzlD,IAAI/hB,IAAJ+hB,CAASikC,EAATjkC;cACA;YALsC;;YAOxCupC,KAAK,CAALA;YACA,MAAMpF,KAAMshB,MAAMxlD,UAANwlD,CAAiBlc,CAAjBkc,KAAuB,CAAvBA,GAA4BA,MAAMxlD,UAANwlD,CAAiBlc,IAAI,CAArBkc,CAAxC;YACAzlD,IAAI/hB,IAAJ+hB,CAAU,CAAC,MAAK,KAAL,KAAe,EAAhB,KAAuBmkC,KAAK,KAA5B,IAAqC,OAA/CnkC;UAhBoC;;UAkBtCY,IAAI+qB,QAAJ,IAAgBpsB,OAAO+kD,aAAP/kD,CAAqBE,KAArBF,CAA2BA,MAA3BA,EAAmCS,GAAnCT,CAAhBqB;QAlBF;QAoBA,OAAO,IAAI6jD,4BAAJ,CAAiB7jD,GAAjB,CAAP;MAjCG,GAmCLnhB,UAAU;QACR,IAAIA,kBAAkB0E,oBAAtB,EAAsC;UACpC,OAAO,IAAP;QAFM;;QAIR,IAAI,KAAK2Z,OAAL,CAAaja,YAAjB,EAA+B;UAG7B,KAAKlH,OAAL,CAAaM,IAAb,CAAkB,oBAAlB,EAAwC;YACtC+M,WAAWC,2BAAqBsS;UADM,CAAxC;UAGA3a,gBAAM,6CAA4CnC,MAAO,IAAzDmC;UACA,OAAO,IAAP;QAXM;;QAaR,MAAMnC,MAAN;MAhDG,EAAP;IAhBmB;;IAoErB,OAAOJ,QAAQhD,OAARgD,CAAgB,IAAhBA,CAAP;EA39GmB;;EA89GrB4kE,gBAAgByB,UAAhB,EAA4BtC,SAA5B,EAAuC;IAIrC,MAAMzf,SAAS,EAAf;;IACA,KAAK,IAAIv+B,IAAI,CAAR,EAAW6rB,KAAKy0B,WAAWxnE,MAAhC,EAAwCknB,IAAI6rB,EAA5C,EAAgD7rB,GAAhD,EAAqD;MACnD,MAAMugD,UAAWD,WAAWtgD,GAAX,KAAmB,CAAnBsgD,GAAwBA,WAAWtgD,CAAX,CAAzC;MACA,MAAMtiB,OAAOsiB,KAAK,CAAlB;;MACA,IAAIugD,YAAY,CAAZA,IAAiB,CAACvC,UAAUv5C,GAAVu5C,CAActgE,IAAdsgE,CAAtB,EAA2C;QACzC;MAJiD;;MAMnDzf,OAAO7gD,IAAP,IAAe6iE,OAAfhiB;IAXmC;;IAarC,OAAOA,MAAP;EA3+GmB;;EA8+GrBiiB,cAAcr7C,IAAd,EAAoBiX,UAApB,EAAgCnX,UAAhC,EAA4C;IAC1C,MAAMvjB,OAAO,KAAKA,IAAlB;IACA,IAAI++D,eAAe,EAAnB;IACA,IAAIC,eAAe,CAAnB;IACA,MAAMC,iBAAiB,EAAvB;IACA,IAAIC,eAAJ;IACA,IAAIlnE,CAAJ,EAAOiJ,EAAP,EAAWqd,CAAX,EAAc6rB,EAAd,EAAkB1nC,KAAlB,EAAyBzG,IAAzB,EAA+BknC,MAA/B;;IACA,IAAI3f,WAAWg5C,SAAf,EAA0B;MACxByC,eAAev7C,KAAKV,GAALU,CAAS,IAATA,IAAiBA,KAAKplB,GAALolB,CAAS,IAATA,CAAjBA,GAAkC,IAAjDu7C;MAEA97B,SAASzf,KAAKplB,GAALolB,CAAS,GAATA,CAATyf;;MACA,IAAIA,MAAJ,EAAY;QACV,KAAKlrC,IAAI,CAAJA,EAAOiJ,KAAKiiC,OAAO9rC,MAAxB,EAAgCY,IAAIiJ,EAApC,EAAwCjJ,GAAxC,EAA6C;UAC3CyK,QAAQzC,KAAK24B,UAAL34B,CAAgBkjC,OAAOlrC,GAAP,CAAhBgI,CAARyC;UACAzG,OAAOgE,KAAK24B,UAAL34B,CAAgBkjC,OAAOlrC,CAAP,CAAhBgI,CAAPhE;;UACA,IAAI+E,MAAMC,OAAND,CAAc/E,IAAd+E,CAAJ,EAAyB;YACvB,KAAKud,IAAI,CAAJA,EAAO6rB,KAAKnuC,KAAK5E,MAAtB,EAA8BknB,IAAI6rB,EAAlC,EAAsC7rB,GAAtC,EAA2C;cACzCygD,aAAat8D,OAAb,IAAwBzC,KAAK24B,UAAL34B,CAAgBhE,KAAKsiB,CAAL,CAAhBte,CAAxB++D;YAFqB;UAAzB,OAIO;YACL,MAAM7vB,QAAQlvC,KAAK24B,UAAL34B,CAAgBkjC,OAAO,EAAElrC,CAAT,CAAhBgI,CAAd;;YACA,KAAKse,IAAI7b,KAAT,EAAgB6b,KAAKtiB,IAArB,EAA2BsiB,GAA3B,EAAgC;cAC9BygD,aAAazgD,CAAb,IAAkB4wB,KAAlB6vB;YAHG;UAPoC;QADnC;MAJY;;MAqBxB,IAAIx7C,WAAWgzC,QAAf,EAAyB;QACvB,IAAI4I,WAAW17C,KAAKd,QAALc,CAAc,KAAdA,KAAwB,CAAC,GAAD,EAAM,CAAC,IAAP,CAAvC;QACAy7C,kBAAkB,CAACC,SAAS,CAAT,CAAD,EAAcH,eAAe,GAA7B,EAAkCG,SAAS,CAAT,CAAlC,CAAlBD;QACAC,WAAW17C,KAAKplB,GAALolB,CAAS,IAATA,CAAX07C;;QACA,IAAIA,QAAJ,EAAc;UACZ,KAAKnnE,IAAI,CAAJA,EAAOiJ,KAAKk+D,SAAS/nE,MAA1B,EAAkCY,IAAIiJ,EAAtC,EAA0CjJ,GAA1C,EAA+C;YAC7CyK,QAAQzC,KAAK24B,UAAL34B,CAAgBm/D,SAASnnE,GAAT,CAAhBgI,CAARyC;YACAzG,OAAOgE,KAAK24B,UAAL34B,CAAgBm/D,SAASnnE,CAAT,CAAhBgI,CAAPhE;;YACA,IAAI+E,MAAMC,OAAND,CAAc/E,IAAd+E,CAAJ,EAAyB;cACvB,KAAKud,IAAI,CAAJA,EAAO6rB,KAAKnuC,KAAK5E,MAAtB,EAA8BknB,IAAI6rB,EAAlC,EAAsC7rB,GAAtC,EAA2C;gBACzC2gD,eAAex8D,OAAf,IAA0B,CACxBzC,KAAK24B,UAAL34B,CAAgBhE,KAAKsiB,GAAL,CAAhBte,CADwB,EAExBA,KAAK24B,UAAL34B,CAAgBhE,KAAKsiB,GAAL,CAAhBte,CAFwB,EAGxBA,KAAK24B,UAAL34B,CAAgBhE,KAAKsiB,CAAL,CAAhBte,CAHwB,CAA1Bi/D;cAFqB;YAAzB,OAQO;cACL,MAAMxE,UAAU,CACdz6D,KAAK24B,UAAL34B,CAAgBm/D,SAAS,EAAEnnE,CAAX,CAAhBgI,CADc,EAEdA,KAAK24B,UAAL34B,CAAgBm/D,SAAS,EAAEnnE,CAAX,CAAhBgI,CAFc,EAGdA,KAAK24B,UAAL34B,CAAgBm/D,SAAS,EAAEnnE,CAAX,CAAhBgI,CAHc,CAAhB;;cAKA,KAAKse,IAAI7b,KAAT,EAAgB6b,KAAKtiB,IAArB,EAA2BsiB,GAA3B,EAAgC;gBAC9B2gD,eAAe3gD,CAAf,IAAoBm8C,OAApBwE;cAPG;YAXsC;UADnC;QAJS;MArBD;IAA1B,OAkDO;MACL,MAAMX,YAAY/6C,WAAW+6C,SAA7B;MACAp7B,SAASzf,KAAKplB,GAALolB,CAAS,QAATA,CAATyf;;MACA,IAAIA,MAAJ,EAAY;QACV5kB,IAAIggD,SAAJhgD;;QACA,KAAKtmB,IAAI,CAAJA,EAAOiJ,KAAKiiC,OAAO9rC,MAAxB,EAAgCY,IAAIiJ,EAApC,EAAwCjJ,GAAxC,EAA6C;UAC3C+mE,aAAazgD,GAAb,IAAoBte,KAAK24B,UAAL34B,CAAgBkjC,OAAOlrC,CAAP,CAAhBgI,CAApB++D;QAHQ;;QAKVC,eAAe3vC,WAAWqL,WAAWr8B,GAAXq8B,CAAe,cAAfA,CAAX,KAA8C,CAA7DskC;MALF,OAMO;QAEL,MAAMI,eAAe37C,KAAKplB,GAALolB,CAAS,UAATA,CAArB;;QACA,IAAI27C,wBAAwBl+C,gBAA5B,EAAkC;UAChC,MAAMye,UAAU,KAAK0/B,kBAAL,CAAwBD,aAAapqE,IAArC,CAAhB;UAEA+pE,eAAe,KAAKO,oBAAL,CAA0B3/B,QAAQuD,MAAlC,EAA0C3f,UAA1C,CAAfw7C;UACAC,eAAer/B,QAAQq/B,YAAvBA;QAPG;MATF;IAzDmC;;IA+E1C,IAAIO,cAAc,IAAlB;IACA,IAAIC,aAAaR,YAAjB;;IACA,WAAWhqB,KAAX,IAAoB+pB,YAApB,EAAkC;MAChC,MAAM3nB,aAAa2nB,aAAa/pB,KAAb,CAAnB;;MACA,IAAI,CAACoC,UAAL,EAAiB;QACf;MAH8B;;MAKhC,IAAI,CAACooB,UAAL,EAAiB;QACfA,aAAapoB,UAAbooB;QACA;MAP8B;;MAShC,IAAIA,eAAepoB,UAAnB,EAA+B;QAC7BmoB,cAAc,KAAdA;QACA;MAX8B;IAjFQ;;IA+F1C,IAAIA,WAAJ,EAAiB;MACfh8C,WAAWyhB,KAAXzhB,IAAoBggB,uBAAUC,UAA9BjgB;IAhGwC;;IAmG1CA,WAAWy7C,YAAXz7C,GAA0By7C,YAA1Bz7C;IACAA,WAAW2f,MAAX3f,GAAoBw7C,YAApBx7C;IACAA,WAAW27C,eAAX37C,GAA6B27C,eAA7B37C;IACAA,WAAW47C,QAAX57C,GAAsB07C,cAAtB17C;EAplHmB;;EAulHrBk8C,YAAYL,YAAZ,EAA0B;IAExB,MAAMM,kBAAkBN,aAAapyC,KAAboyC,CAAmB,GAAnBA,EAAwB,CAAxBA,CAAxB;IACA,OACEM,mBAAmBC,oCAAnBD,IACAA,gBAAgBE,MAAhBF,CAAuB,SAAvBA,MAAsC,CAAC,CAFzC;EA1lHmB;;EAgmHrBL,mBAAmBrqE,IAAnB,EAAyB;IACvB,IAAIgqE,eAAe,CAAnB;IACA,IAAI97B,SAAS9hC,OAAOC,MAAPD,CAAc,IAAdA,CAAb;IACA,IAAIy+D,YAAY,KAAhB;IACA,MAAMC,aAAaC,oCAAnB;IACA,IAAIC,aAAaF,WAAW9qE,IAAX,KAAoBA,IAArC;IACA,MAAMirE,UAAUC,0BAAhB;;IAEA,IAAI,EAAEF,cAAcC,OAAhB,CAAJ,EAA8B;MAG5B,IAAI,KAAKR,WAAL,CAAiBzqE,IAAjB,CAAJ,EAA4B;QAC1BgrE,aAAa,aAAbA;MADF,OAEO;QACLA,aAAa,WAAbA;MAN0B;IARP;;IAiBvB,MAAMG,cAAcF,QAAQD,UAAR,CAApB;;IAEA,IAAI,OAAOG,WAAP,KAAuB,QAA3B,EAAqC;MACnCnB,eAAemB,WAAfnB;MACAa,YAAY,IAAZA;IAFF,OAGO;MACL38B,SAASi9B,aAATj9B;IAvBqB;;IA0BvB,OAAO;MACL87B,YADK;MAELa,SAFK;MAGL38B;IAHK,CAAP;EA1nHmB;;EAioHrBo8B,qBAAqBc,iBAArB,EAAwC78C,UAAxC,EAAoD;IAClD,MAAM2f,SAAS9hC,OAAOC,MAAPD,CAAc,IAAdA,CAAf;IACA,MAAMikC,cAAc9hB,WAAW8hB,WAA/B;IACA,MAAM3mB,WAAW6E,WAAWu5C,eAA5B;;IACA,KAAK,IAAIj4B,WAAW,CAApB,EAAuBA,WAAW,GAAlC,EAAuCA,UAAvC,EAAmD;MACjD,IAAIA,YAAYQ,WAAZR,IAA2Bu7B,kBAAkB/6B,YAAYR,QAAZ,CAAlB,CAA/B,EAAyE;QACvE3B,OAAO2B,QAAP,IAAmBu7B,kBAAkB/6B,YAAYR,QAAZ,CAAlB,CAAnB3B;QACA;MAH+C;;MAKjD,IAAI2B,YAAYnmB,QAAZmmB,IAAwBu7B,kBAAkB1hD,SAASmmB,QAAT,CAAlB,CAA5B,EAAmE;QACjE3B,OAAO2B,QAAP,IAAmBu7B,kBAAkB1hD,SAASmmB,QAAT,CAAlB,CAAnB3B;QACA;MAP+C;IAJD;;IAclD,OAAOA,MAAP;EA/oHmB;;EAkpHrBguB,gBAAgBztC,IAAhB,EAAsB;IACpB,MAAMy4C,WAAWz4C,IAAjB;IACA,IAAI3C,OAAO2C,KAAKplB,GAALolB,CAAS,SAATA,CAAX;;IACA,IAAI,EAAE3C,gBAAgBI,gBAAlB,CAAJ,EAA6B;MAC3B,MAAM,IAAI7I,iBAAJ,CAAgB,sBAAhB,CAAN;IAJkB;;IAOpB,IAAIkkD,YAAY,KAAhB;IACA,IAAI3/B,IAAJ,EAAU0/B,SAAV;;IACA,IAAIx7C,KAAK9rB,IAAL8rB,KAAc,OAAlB,EAA2B;MAKzB,MAAMu/C,KAAK58C,KAAKplB,GAALolB,CAAS,iBAATA,CAAX;;MACA,IAAI,CAAC48C,EAAL,EAAS;QACP,MAAM,IAAIhoD,iBAAJ,CAAgB,oCAAhB,CAAN;MAPuB;;MASzBoL,OAAO1iB,MAAMC,OAAND,CAAcs/D,EAAdt/D,IAAoB,KAAKf,IAAL,CAAU24B,UAAV,CAAqB0nC,GAAG,CAAH,CAArB,CAApBt/D,GAAkDs/D,EAAzD58C;;MAEA,IAAI,EAAEA,gBAAgB7iB,gBAAlB,CAAJ,EAA6B;QAC3B,MAAM,IAAIyX,iBAAJ,CAAgB,sCAAhB,CAAN;MAZuB;;MAczByI,OAAO2C,KAAKplB,GAALolB,CAAS,SAATA,CAAP3C;;MACA,IAAI,EAAEA,gBAAgBI,gBAAlB,CAAJ,EAA6B;QAC3B,MAAM,IAAI7I,iBAAJ,CAAgB,sBAAhB,CAAN;MAhBuB;;MAkBzBkkD,YAAY,IAAZA;IA3BkB;;IA8BpB,MAAM+B,YAAY76C,KAAKplB,GAALolB,CAAS,WAATA,KAAyB,CAA3C;IAAA,MACE86C,WAAW96C,KAAKplB,GAALolB,CAAS,UAATA,MAAyB84C,YAAY,MAAZ,GAAqB,IAA9C94C,CADb;IAEA,MAAMiX,aAAajX,KAAKplB,GAALolB,CAAS,gBAATA,CAAnB;;IACA,IAAIiX,UAAJ,EAAgB;MACdkC,OAAO,IAAI0jC,0BAAJ,EAAP1jC;MAEA,MAAMle,WAAWw9C,SAASr6D,MAATq6D,CAAgB,UAAhBA,CAAjB;;MACA,IAAIx9C,oBAAoBwC,gBAAxB,EAA8B;QAC5B0b,KAAK2jC,MAAL3jC,CAAYle,SAAS1pB,IAArB4nC;MADF,OAEO,IAAIle,oBAAoBtgB,eAAxB,EAA6B;QAClCw+B,KAAK2jC,MAAL3jC,CAAYle,SAASjiB,QAATiiB,EAAZke;MADK,OAEA,IAAIle,oBAAoB9d,gBAAxB,EAA8B;QACnC,WAAW0sB,KAAX,IAAoB5O,SAASmE,YAATnE,EAApB,EAA6C;UAC3C,IAAI4O,iBAAiBpM,gBAArB,EAA2B;YACzB0b,KAAK2jC,MAAL3jC,CAAYtP,MAAMt4B,IAAlB4nC;UADF,OAEO,IAAItP,iBAAiBlvB,eAArB,EAA0B;YAC/Bw+B,KAAK2jC,MAAL3jC,CAAYtP,MAAM7wB,QAAN6wB,EAAZsP;UADK,OAEA,IAAI77B,MAAMC,OAAND,CAAcusB,KAAdvsB,CAAJ,EAA0B;YAE/B,MAAMy/D,aAAalzC,MAAMl2B,MAAzB;YAAA,MACEqpE,UAAU,IAAI1/D,KAAJ,CAAUy/D,UAAV,CADZ;;YAGA,KAAK,IAAIliD,IAAI,CAAb,EAAgBA,IAAIkiD,UAApB,EAAgCliD,GAAhC,EAAqC;cACnC,MAAMoiD,YAAYpzC,MAAMhP,CAAN,CAAlB;;cACA,IAAIoiD,qBAAqBx/C,gBAAzB,EAA+B;gBAC7Bu/C,QAAQniD,CAAR,IAAaoiD,UAAU1rE,IAAvByrE;cADF,OAEO,IACL,OAAOC,SAAP,KAAqB,QAArB,IACAA,qBAAqBtiE,eAFhB,EAGL;gBACAqiE,QAAQniD,CAAR,IAAaoiD,UAAUjkE,QAAVikE,EAAbD;cARiC;YALN;;YAgB/B7jC,KAAK2jC,MAAL3jC,CAAY6jC,QAAQppE,IAARopE,EAAZ7jC;UArByC;QADV;MARvB;;MAmCdA,KAAK2jC,MAAL3jC,CAAY,GAAG0hC,SAAU,IAAGC,QAAhB,EAAZ3hC;MAEA0/B,YAAY74C,KAAKplB,GAALolB,CAAS,WAATA,KAAyBy4C,SAAS79D,GAAT69D,CAAa,WAAbA,CAArCI;;MACA,IAAIA,qBAAqB3uC,uBAAzB,EAAqC;QACnC,MAAMrwB,SAASg/D,UAAUpjD,GAAVojD,IAAiBA,SAAhC;QACA,MAAMqE,aAAarjE,OAAO6c,MAAP7c,GACf,IAAIlH,UAAJ,CAAekH,OAAO6c,MAAP7c,CAAc6c,MAA7B,EAAqC,CAArC,EAAwC7c,OAAOsjE,YAA/C,CADetjE,GAEf,IAAIlH,UAAJ,CACEkH,OAAOC,KAAPD,CAAa6c,MADf,EAEE7c,OAAOmF,KAFT,EAGEnF,OAAO0oB,GAAP1oB,GAAaA,OAAOmF,KAHtB,CAFJ;QAOAm6B,KAAK2jC,MAAL3jC,CAAY+jC,UAAZ/jC;MATF,OAUO,IAAI0/B,qBAAqBp7C,gBAAzB,EAA+B;QACpC0b,KAAK2jC,MAAL3jC,CAAY0/B,UAAUtnE,IAAtB4nC;MAjDY;;MAoDd,MAAMsG,SAASzf,KAAKplB,GAALolB,CAAS,QAATA,KAAsBy4C,SAAS79D,GAAT69D,CAAa,QAAbA,CAArC;;MACA,IAAIn7D,MAAMC,OAAND,CAAcmiC,MAAdniC,CAAJ,EAA2B;QACzB,MAAM8/D,YAAY,EAAlB;;QACA,WAAWvzC,KAAX,IAAoB4V,MAApB,EAA4B;UAC1B,IAAI,OAAO5V,KAAP,KAAiB,QAAjB,IAA6BA,iBAAiBlvB,eAAlD,EAAuD;YACrDyiE,UAAU1pE,IAAV0pE,CAAevzC,MAAM7wB,QAAN6wB,EAAfuzC;UAFwB;QAFH;;QAOzBjkC,KAAK2jC,MAAL3jC,CAAYikC,UAAUxpE,IAAVwpE,EAAZjkC;MA5DY;;MA+Dd,IAAI2/B,SAAJ,EAAe;QACb3/B,KAAK2jC,MAAL3jC,CAAY,eAAZA;QAEA,MAAMkkC,kBAAkBr9C,KAAKplB,GAALolB,CAAS,GAATA,KAAiBy4C,SAAS79D,GAAT69D,CAAa,GAAbA,CAAzC;;QACA,IAAIn7D,MAAMC,OAAND,CAAc+/D,eAAd//D,CAAJ,EAAoC;UAClC,MAAM8/D,YAAY,EAAlB;;UACA,WAAWvzC,KAAX,IAAoBwzC,eAApB,EAAqC;YACnC,IAAI,OAAOxzC,KAAP,KAAiB,QAAjB,IAA6BA,iBAAiBlvB,eAAlD,EAAuD;cACrDyiE,UAAU1pE,IAAV0pE,CAAevzC,MAAM7wB,QAAN6wB,EAAfuzC;YADF,OAEO,IAAI9/D,MAAMC,OAAND,CAAcusB,KAAdvsB,CAAJ,EAA0B;cAC/B,MAAMggE,eAAe,EAArB;;cACA,WAAWtzC,OAAX,IAAsBH,KAAtB,EAA6B;gBAC3B,IAAI,OAAOG,OAAP,KAAmB,QAAnB,IAA+BA,mBAAmBrvB,eAAtD,EAA2D;kBACzD2iE,aAAa5pE,IAAb4pE,CAAkBtzC,QAAQhxB,QAARgxB,EAAlBszC;gBAFyB;cAFE;;cAO/BF,UAAU1pE,IAAV0pE,CAAgB,IAAGE,aAAa1pE,IAAb0pE,EAAoB,GAAvCF;YAViC;UAFH;;UAelCjkC,KAAK2jC,MAAL3jC,CAAYikC,UAAUxpE,IAAVwpE,EAAZjkC;QAnBW;;QAsBb,MAAMggC,cACJn5C,KAAK5hB,MAAL4hB,CAAY,aAAZA,KAA8By4C,SAASr6D,MAATq6D,CAAgB,aAAhBA,CADhC;;QAEA,IAAIU,uBAAuB17C,gBAA3B,EAAiC;UAC/B0b,KAAK2jC,MAAL3jC,CAAYggC,YAAY5nE,IAAxB4nC;QADF,OAEO,IAAIggC,uBAAuBx+D,eAA3B,EAAgC;UACrCw+B,KAAK2jC,MAAL3jC,CAAYggC,YAAYngE,QAAZmgE,EAAZhgC;QADK,OAEA,IAAIggC,uBAAuBjvC,uBAA3B,EAAuC;UAC5CiP,KAAK2jC,MAAL3jC,CAAYggC,YAAY3sC,SAAZ2sC,EAAZhgC;QA7BW;MA/DD;IAjCI;;IAkIpB,OAAO;MACLlC,UADK;MAELjX,IAFK;MAGLy4C,QAHK;MAILK,SAJK;MAKLz7C,MAAMA,KAAK9rB,IALN;MAMLspE,SANK;MAOLC,QAPK;MAQLjC,SARK;MASL1/B,MAAMA,OAAOA,KAAKokC,SAALpkC,EAAP,GAA0B;IAT3B,CAAP;EApxHmB;;EAiyHrB,MAAM20B,aAAN,CAAoB;IAClB72B,UADkB;IAElBjX,IAFkB;IAGlBy4C,QAHkB;IAIlBK,SAJkB;IAKlBz7C,IALkB;IAMlBw9C,SANkB;IAOlBC,QAPkB;IAQlBjC,SARkB;IASlB3tC;EATkB,CAApB,EAUG;IACD,MAAMihC,cAAc9uC,SAAS,OAA7B;IACA,IAAIyC,UAAJ;;IAEA,IAAI,CAACmX,UAAL,EAAiB;MACf,IAAIk1B,WAAJ,EAAiB;QAGfl1B,aAAa,IAAI95B,gBAAJ,CAAS,IAAT,CAAb85B;QACAA,WAAWjhB,GAAXihB,CAAe,UAAfA,EAA2BxZ,iBAAK7iB,GAAL6iB,CAASJ,IAATI,CAA3BwZ;QACAA,WAAWjhB,GAAXihB,CAAe,UAAfA,EAA2BjX,KAAKd,QAALc,CAAc,UAAdA,KAA6B,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAAxDiX;MALF,OAMO;QAIL,IAAI0kC,eAAe37C,KAAKplB,GAALolB,CAAS,UAATA,CAAnB;;QACA,IAAI,EAAE27C,wBAAwBl+C,gBAA1B,CAAJ,EAAqC;UACnC,MAAM,IAAI7I,iBAAJ,CAAgB,4BAAhB,CAAN;QANG;;QAUL+mD,eAAeA,aAAapqE,IAAboqE,CAAkBngD,OAAlBmgD,CAA0B,OAA1BA,EAAmC,GAAnCA,CAAfA;QACA,MAAMz/B,UAAU,KAAK0/B,kBAAL,CAAwBD,YAAxB,CAAhB;QAGA,MAAMM,kBAAkBN,aAAapyC,KAAboyC,CAAmB,GAAnBA,EAAwB,CAAxBA,CAAxB;QACA,MAAMp6B,QACH,MAAKy6B,WAAL,CAAiBC,eAAjB,IAAoCn8B,uBAAUE,KAA9C,GAAsD,CAAtD,KACA9D,QAAQkgC,SAARlgC,GAAoB4D,uBAAUC,UAA9B7D,GAA2C,CAD3C,KAEAshC,uCAAkBvB,eAAlBuB,IACG19B,uBAAUG,QADbu9B,GAEG19B,uBAAUK,WAJb,CADH;QAOArgB,aAAa;UACXzC,IADW;UAEX9rB,MAAMoqE,YAFK;UAGXpP,YAAYkM,SAASlM,UAHV;UAIX9sB,QAAQvD,QAAQuD,MAJL;UAKX87B,cAAcr/B,QAAQq/B,YALX;UAMXkC,kBAAkB,IANP;UAOXl8B,KAPW;UAQXs5B,SARW;UASXC,QATW;UAUXjC,SAVW;UAWX6E,SAAS,CAXE;UAYXC,WAAW,CAZA;UAaXnyC,aAAa,CAbF;UAcX2gC;QAdW,CAAbrsC;QAgBA,MAAM2f,SAASzf,KAAKplB,GAALolB,CAAS,QAATA,CAAf;QAEA,MAAM49C,mBAAmBC,yCAAoBlC,YAApBkC,CAAzB;QACA,IAAI/kB,OAAO,IAAX;;QACA,IAAI8kB,gBAAJ,EAAsB;UACpB99C,WAAW6gB,cAAX7gB,GAA4B,IAA5BA;UACAg5B,OAAO,MAAM,KAAKkO,qBAAL,CAA2B4W,gBAA3B,CAAb9kB;UACAh5B,WAAW0hB,cAAX1hB,GAA4B,CAAC,CAACg5B,IAA9Bh5B;QA7CG;;QA+CL,OAAO,KAAK04C,qBAAL,CAA2Bx4C,IAA3B,EAAiCA,IAAjC,EAAuCF,UAAvC,EAAmD3qB,IAAnD,CACL2oE,iBAAiB;UACf,IAAIr+B,MAAJ,EAAY;YACV,MAAMi9B,cAAc,EAApB;YACA,IAAI7hD,IAAIggD,SAAR;;YACA,KAAK,IAAItmE,IAAI,CAAR,EAAWiJ,KAAKiiC,OAAO9rC,MAA5B,EAAoCY,IAAIiJ,EAAxC,EAA4CjJ,GAA5C,EAAiD;cAC/CmoE,YAAY7hD,GAAZ,IAAmB,KAAKte,IAAL,CAAU24B,UAAV,CAAqBuK,OAAOlrC,CAAP,CAArB,CAAnBmoE;YAJQ;;YAMVoB,cAAcr+B,MAAdq+B,GAAuBpB,WAAvBoB;UANF,OAOO;YACLA,cAAcr+B,MAAdq+B,GAAuB,KAAKjC,oBAAL,CACrB3/B,QAAQuD,MADa,EAErBq+B,aAFqB,CAAvBA;UATa;;UAcf,OAAO,IAAIC,WAAJ,CAASpC,YAAT,EAAuB7iB,IAAvB,EAA6BglB,aAA7B,CAAP;QAfG,EAAP;MAtDa;IAJhB;;IAqFD,IAAI9mC,WAAWC,WAAWr8B,GAAXq8B,CAAe,UAAfA,CAAf;IACA,IAAI+mC,WAAWh+C,KAAKplB,GAALolB,CAAS,UAATA,CAAf;;IAEA,IAAI,OAAOgX,QAAP,KAAoB,QAAxB,EAAkC;MAChCA,WAAWvZ,iBAAK7iB,GAAL6iB,CAASuZ,QAATvZ,CAAXuZ;IAzFD;;IA2FD,IAAI,OAAOgnC,QAAP,KAAoB,QAAxB,EAAkC;MAChCA,WAAWvgD,iBAAK7iB,GAAL6iB,CAASugD,QAATvgD,CAAXugD;IA5FD;;IA+FD,IAAI,CAAC7R,WAAL,EAAkB;MAChB,MAAM8R,cAAcjnC,YAAYA,SAASzlC,IAAzC;MACA,MAAM2sE,cAAcF,YAAYA,SAASzsE,IAAzC;;MACA,IAAI0sE,gBAAgBC,WAApB,EAAiC;QAC/B1/D,gBACG,qCAAoCy/D,WAAY,QAAjD,GACG,8CAA6CC,WAAY,IAF9D1/D;;QAMA,IAAIy/D,eAAeC,WAAfD,IAA8BC,YAAYzqD,UAAZyqD,CAAuBD,WAAvBC,CAAlC,EAAuE;UACrElnC,WAAWgnC,QAAXhnC;QAR6B;MAHjB;IA/FjB;;IA8GDA,WAAWA,YAAYgnC,QAAvBhnC;;IAEA,IAAI,EAAEA,oBAAoBvZ,gBAAtB,CAAJ,EAAiC;MAC/B,MAAM,IAAI7I,iBAAJ,CAAgB,mBAAhB,CAAN;IAjHD;;IAoHD,IAAIupD,QAAJ,EAAcz9B,OAAd,EAAuB09B,OAAvB,EAAgCC,OAAhC,EAAyCC,OAAzC;;IACA,IAAI;MACFH,WAAWlnC,WAAWr8B,GAAXq8B,CAAe,UAAfA,EAA2B,WAA3BA,EAAwC,WAAxCA,CAAXknC;IADF,EAEE,OAAOloE,EAAP,EAAW;MACX,IAAI,CAAC,KAAKsd,OAAL,CAAaja,YAAlB,EAAgC;QAC9B,MAAMrD,EAAN;MAFS;;MAIXoB,gBAAM,6BAA4B2/B,SAASzlC,IAAK,iBAAgB0E,EAAG,IAAnEoB;MACA8mE,WAAW,IAAI/wC,kBAAJ,EAAX+wC;IA5HD;;IA8HD,IAAIx9B,iBAAiB,KAArB;IACA,IAAIa,iBAAiB,KAArB;IACA,IAAI+8B,oBAAoB,IAAxB;;IACA,IAAIJ,QAAJ,EAAc;MACZ,IAAIA,SAASn+C,IAAb,EAAmB;QACjB,MAAMw+C,eAAeL,SAASn+C,IAATm+C,CAAcvjE,GAAdujE,CAAkB,SAAlBA,CAArB;;QACA,IAAIK,wBAAwB/gD,gBAA5B,EAAkC;UAChCijB,UAAU89B,aAAajtE,IAAvBmvC;QAHe;;QAKjB09B,UAAUD,SAASn+C,IAATm+C,CAAcvjE,GAAdujE,CAAkB,SAAlBA,CAAVC;QACAC,UAAUF,SAASn+C,IAATm+C,CAAcvjE,GAAdujE,CAAkB,SAAlBA,CAAVE;QACAC,UAAUH,SAASn+C,IAATm+C,CAAcvjE,GAAdujE,CAAkB,SAAlBA,CAAVG;MARU;IAAd,OAUO,IAAIpzC,WAAJ,EAAiB;MAEtB,MAAM0yC,mBAAmBrmC,+BAAeP,SAASzlC,IAAxBgmC,CAAzB;;MACA,IAAIqmC,gBAAJ,EAAsB;QACpB1yC,YAAYI,UAAZJ,GAAyB,GAAGA,YAAYI,UAAW,YAAnDJ;QACAA,YAAYgR,OAAZhR,GAAsB0yC,iBAAiB1hC,OAAjB0hC,IAA4B,IAAlD1yC;QACAqzC,oBAAoBX,iBAAiBhiC,OAAjBgiC,IAA4B,IAAhDW;QACAJ,WAAW,MAAM,KAAKnX,qBAAL,CAA2B4W,iBAAiBrsE,IAA5C,CAAjB4sE;QACA38B,iBAAiB,CAAC,CAAC28B,QAAnB38B;QAMAi3B,WAAWz4C,OAAOyX,+BAAeT,SAASzlC,IAAxBkmC,CAAlBghC;QACAK,YAAY,IAAZA;MAfoB;IAAjB,OAiBA,IAAI,CAAC3M,WAAL,EAAkB;MACvB,MAAMyR,mBAAmBC,yCAAoB7mC,SAASzlC,IAA7BssE,CAAzB;;MACA,IAAID,gBAAJ,EAAsB;QACpBj9B,iBAAiB,IAAjBA;QACAw9B,WAAW,MAAM,KAAKnX,qBAAL,CAA2B4W,gBAA3B,CAAjBO;QACA38B,iBAAiB,CAAC,CAAC28B,QAAnB38B;MALqB;IA5JxB;;IAqKD1hB,aAAa;MACXzC,IADW;MAEX9rB,MAAMylC,SAASzlC,IAFJ;MAGXmvC,OAHW;MAIXoY,MAAMqlB,QAJK;MAKXC,OALW;MAMXC,OANW;MAOXC,OAPW;MAQX39B,cARW;MASXa,cATW;MAUX+qB,YAAYkM,SAASlM,UAVV;MAWXuM,SAXW;MAYX2F,YAAY,KAZD;MAaX9J,YAAY30C,KAAKd,QAALc,CAAc,YAAdA,KAA+B9e,0BAbhC;MAcX25D,SAdW;MAeXC,QAfW;MAgBXjC,SAhBW;MAiBXpqC,MAAMwI,WAAW/X,QAAX+X,CAAoB,UAApBA,KAAmCjX,KAAKd,QAALc,CAAc,UAAdA,CAjB9B;MAkBXi1C,QAAQh+B,WAAWr8B,GAAXq8B,CAAe,QAAfA,CAlBG;MAmBXwZ,SAASxZ,WAAWr8B,GAAXq8B,CAAe,SAAfA,CAnBE;MAoBXymC,SAASzmC,WAAWr8B,GAAXq8B,CAAe,SAAfA,KAA6B,CApB3B;MAqBX0mC,WAAW1mC,WAAWr8B,GAAXq8B,CAAe,WAAfA,KAA+B,CArB/B;MAsBXsK,OAAOtK,WAAWr8B,GAAXq8B,CAAe,OAAfA,CAtBI;MAuBXzL,aAAayL,WAAWr8B,GAAXq8B,CAAe,aAAfA,KAAiC,CAvBnC;MAwBXk1B,WAxBW;MAyBXjhC,WAzBW;MA0BXwzC,cAAcH;IA1BH,CAAbz+C;;IA6BA,IAAIg5C,SAAJ,EAAe;MACb,MAAM6F,cAAclG,SAAS79D,GAAT69D,CAAa,UAAbA,CAApB;;MACA,IAAIkG,uBAAuBlhD,gBAA3B,EAAiC;QAC/BqC,WAAW6+C,WAAX7+C,GAAyB6+C,YAAYptE,IAArCuuB;MAHW;;MAKb,MAAMq6C,OAAO,MAAMK,kBAAY58D,MAAZ48D,CAAmB;QACpCv/C,UAAU0jD,WAD0B;QAEpC/Y,kBAAkB,KAAKD,sBAFa;QAGpC8U,SAAS;MAH2B,CAAnBD,CAAnB;MAKA16C,WAAWq6C,IAAXr6C,GAAkBq6C,IAAlBr6C;MACAA,WAAWgzC,QAAXhzC,GAAsBA,WAAWq6C,IAAXr6C,CAAgBgzC,QAAtChzC;IA7MD;;IAgND,OAAO,KAAK04C,qBAAL,CAA2Bx4C,IAA3B,EAAiCy4C,QAAjC,EAA2C34C,UAA3C,EAAuD3qB,IAAvD,CACL2oE,iBAAiB;MACf,KAAKzC,aAAL,CAAmBr7C,IAAnB,EAAyBiX,UAAzB,EAAqC6mC,aAArC;MAEA,OAAO,IAAIC,WAAJ,CAAS/mC,SAASzlC,IAAlB,EAAwB4sE,QAAxB,EAAkCL,aAAlC,CAAP;IAJG,EAAP;EA3/HmB;;EAogIrB,OAAOjR,cAAP,CAAsBt7C,IAAtB,EAA4BwgC,MAA5B,EAAoC3/C,OAApC,EAA6CsD,gBAA7C,EAA+D;IAC7D,SAASy4D,SAAT,CAAmByQ,QAAnB,EAA6B;MAC3B,MAAM/8B,YAAY,GAAGtwB,KAAKg7C,UAAW,SAAQqS,QAA3B,EAAlB;;MACA,IAAI;QACF,IAAIrtD,KAAKstD,QAALttD,CAAcutD,YAAdvtD,CAA2BqtD,QAA3BrtD,CAAJ,EAA0C;UACxC;QAFA;;QAIFnf,QAAQM,IAARN,CAAa,WAAbA,EAA0B,CACxByvC,SADwB,EAExB,UAFwB,EAGxBtwB,KAAKstD,QAALttD,CAAcwtD,SAAdxtD,CAAwBqtD,QAAxBrtD,CAHwB,CAA1Bnf;MAJF,EASE,OAAO8C,MAAP,EAAe;QACf,IAAIQ,iBAAiB4D,YAArB,EAAmC;UAGjClH,QAAQM,IAARN,CAAa,oBAAbA,EAAmC;YACjCqN,WAAWC,2BAAqBwS;UADC,CAAnC9f;UAGAiF,gBAAM,6BAA4BwqC,SAAU,YAAW3sC,MAAO,IAA9DmC;UACA;QARa;;QAUf,MAAMnC,MAAN;MArByB;IADgC;;IA0B7D,WAAWq8C,KAAX,IAAoBQ,MAApB,EAA4B;MAC1Boc,UAAU5c,MAAMqtB,QAAhB;MAIA,MAAMI,SAASztB,MAAMytB,MAArB;;MACA,IAAIA,UAAUA,OAAOJ,QAArB,EAA+B;QAC7BzQ,UAAU6Q,OAAOJ,QAAjB;MAPwB;IA1BiC;EApgI1C;;EA0iIrB,WAAWxzB,gBAAX,GAA8B;IAC5B,MAAMprB,OAAO,IAAI7iB,gBAAJ,EAAb;IACA6iB,KAAKhK,GAALgK,CAAS,UAATA,EAAqBvC,iBAAK7iB,GAAL6iB,CAAS,oBAATA,CAArBuC;IACAA,KAAKhK,GAALgK,CAAS,MAATA,EAAiBvC,iBAAK7iB,GAAL6iB,CAAS,cAATA,CAAjBuC;IACAA,KAAKhK,GAALgK,CAAS,SAATA,EAAoBvC,iBAAK7iB,GAAL6iB,CAAS,cAATA,CAApBuC;IACAA,KAAKhK,GAALgK,CAAS,UAATA,EAAqBvC,iBAAK7iB,GAAL6iB,CAAS,iBAATA,CAArBuC;IAEA,OAAOhM,kBAAO,IAAPA,EAAa,kBAAbA,EAAiCgM,IAAjChM,CAAP;EAjjImB;;AAAA;;;;AAqjIvB,MAAMs4C,cAAN,CAAqB;EACnBh7D,YAAY;IAAEi7D,UAAF;IAAch7C,IAAd;IAAoByO,IAApB;IAA0BtqB;EAA1B,CAAZ,EAA0D;IACxD,KAAK62D,UAAL,GAAkBA,UAAlB;IACA,KAAKh7C,IAAL,GAAYA,IAAZ;IACA,KAAKyO,IAAL,GAAYA,IAAZ;IACA,KAAKi/C,iBAAL,GAAyBvpE,oBAAoB+uD,8BAA7C;IACA,KAAKya,WAAL,GAAmB,IAAnB;IACA,KAAK7S,iBAAL,GAAyB96C,KAAK46C,WAAL56C,GAAmB,IAAImP,GAAJ,EAAnBnP,GAA+B,IAAxD;IACA,KAAK4tD,IAAL,GAAY,KAAZ;EARiB;;EAWnBzsE,KAAKN,OAAL,EAAc;IACZ,IAAI,KAAK+sE,IAAT,EAAe;MACb;IAFU;;IAIZ,KAAKA,IAAL,GAAY,IAAZ;IAEA/sE,QAAQM,IAARN,CAAa,WAAbA,EAA0B,CACxB,KAAKm6D,UADmB,EAExB,MAFwB,EAGxB,KAAKh7C,IAAL,CAAU6tD,UAAV,CAAqB,KAAKH,iBAAL,CAAuBzlE,mBAA5C,CAHwB,CAA1BpH;EAjBiB;;EAwBnBitE,SAASjtE,OAAT,EAAkB;IAChB,IAAI,CAAC,KAAKmf,IAAL,CAAU9e,IAAf,EAAqB;MACnB;IAFc;;IAKhB,KAAK8e,IAAL,CAAUlY,eAAV,GAA4B,IAA5B;IAOA61B,iBAAiB29B,cAAjB39B,CACE,KAAK3d,IADP2d,EAEiB,KAAK3d,IAAL,CAAU+tD,gBAF3BpwC,EAGE98B,OAHF88B,EAIE,KAAK+vC,iBAJP/vC;EApCiB;;EA4CnBk9B,cAAcnhB,SAAd,EAAyB1c,SAAzB,EAAoCl6B,IAApC,EAA0C;IACxC,IAAI,KAAK6qE,WAAT,EAAsB;MACpB,OAAO,KAAKA,WAAZ;IAFsC;;IAIxC,IAAI,CAAC,KAAK3tD,IAAL,CAAU46C,WAAf,EAA4B;MAC1B,MAAM,IAAIl6D,KAAJ,CAAU,uBAAV,CAAN;IALsC;;IAUxC,MAAMstE,iBAAiBt0B,UAAUnU,KAAVmU,CAAgB;MAAE3xC,cAAc;IAAhB,CAAhB2xC,CAAvB;IACAs0B,eAAe7Z,gBAAf6Z,GAAkC,IAAlCA;IAEA,MAAMjS,gBAAgB,IAAI/sC,kBAAJ,CAAW0qB,UAAUqiB,aAArB,CAAtB;;IACA,IAAI,KAAKttC,IAAL,CAAU1B,KAAV,IAAmB,CAACgvC,cAAchuC,GAAdguC,CAAkB,KAAKttC,IAAL,CAAU1B,KAA5BgvC,CAAxB,EAA4D;MAC1DA,cAAc3sC,GAAd2sC,CAAkB,KAAKttC,IAAL,CAAU1B,KAA5BgvC;IAfsC;;IAiBxCiS,eAAejS,aAAfiS,GAA+BjS,aAA/BiS;IAEA,MAAMxR,iBAAiB,KAAKx8C,IAA5B;IAAA,MACE86C,oBAAoB,KAAKA,iBAD3B;IAEA,IAAImT,uBAAuB1qE,QAAQhD,OAARgD,EAA3B;IACA,MAAM2qE,YAAY,KAAKz/C,IAAL,CAAUplB,GAAV,CAAc,WAAd,CAAlB;IACA,MAAM8kE,gBAAgB,KAAK1/C,IAAL,CAAUplB,GAAV,CAAc,WAAd,KAA8B2zB,SAApD;IACA,MAAMoxC,uBAAuBhiE,OAAOC,MAAPD,CAAc,IAAdA,CAA7B;IAEA,MAAMiiE,cACJ,CAAC7R,eAAet/B,IAAhB,IAAwBrS,wBAAa2xC,eAAet/B,IAA5BrS,EAAkC,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAAlCA,CAD1B;;IAGA,WAAWne,GAAX,IAAkBwhE,UAAUtgD,OAAVsgD,EAAlB,EAAuC;MACrCD,uBAAuBA,qBAAqBrqE,IAArBqqE,CAA0B,MAAM;QACrD,MAAMK,cAAcJ,UAAU7kE,GAAV6kE,CAAcxhE,GAAdwhE,CAApB;QACA,MAAMjvC,eAAe,IAAIH,2BAAJ,EAArB;QACA,OAAOkvC,eACJlgE,eADIkgE,CACY;UACf1lE,QAAQgmE,WADO;UAEfxrE,IAFe;UAGfk6B,WAAWmxC,aAHI;UAIflvC;QAJe,CADZ+uC,EAOJpqE,IAPIoqE,CAOC,MAAM;UAOV,IAAI/uC,aAAa89B,OAAb99B,CAAqB,CAArBA,MAA4BplB,UAAIgD,qBAApC,EAA2D;YACzD,KAAK0xD,0BAAL,CAAgCtvC,YAAhC,EAA8CovC,WAA9C;UARQ;;UAUVD,qBAAqB1hE,GAArB,IAA4BuyB,aAAak7B,KAAbl7B,EAA5BmvC;;UAEA,WAAWt0D,UAAX,IAAyBmlB,aAAas7B,YAAtC,EAAoD;YAClDO,kBAAkBzrC,GAAlByrC,CAAsBhhD,UAAtBghD;UAbQ;QAPP,GAuBJp3D,KAvBIsqE,CAuBE,UAAUrqE,MAAV,EAAkB;UACvBmC,gBAAM,wBAAuB4G,GAAI,qBAAjC5G;UACA,MAAM0oE,oBAAoB,IAAI1vC,2BAAJ,EAA1B;UACAsvC,qBAAqB1hE,GAArB,IAA4B8hE,kBAAkBrU,KAAlBqU,EAA5BJ;QA1BG,EAAP;MAHqB,EAAvBH;IA9BsC;;IA+DxC,KAAKN,WAAL,GAAmBM,qBAAqBrqE,IAArBqqE,CAA0B,MAAM;MACjDzR,eAAe4R,oBAAf5R,GAAsC4R,oBAAtC5R;;MACA,IAAI,KAAKiS,KAAT,EAAgB;QACdjS,eAAe2G,UAAf3G,GAA4B,IAA5BA;QACAA,eAAet/B,IAAfs/B,GAAsB,KAAKiS,KAA3BjS;MAJ+C;IAAhC,EAAnB;IAOA,OAAO,KAAKmR,WAAZ;EAlHiB;;EAwHnBY,2BAA2BtvC,YAA3B,EAAyCovC,cAAc,KAAvD,EAA8D;IAU5D,IAAIA,WAAJ,EAAiB;MACf,IAAI,CAAC,KAAKI,KAAV,EAAiB;QACf,KAAKA,KAAL,GAAa,CAACznB,QAAD,EAAWA,QAAX,EAAqB,CAACA,QAAtB,EAAgC,CAACA,QAAjC,CAAb;MAFa;;MAIf,MAAM0nB,WAAW/oD,WAAKiC,aAALjC,CAAmBsZ,aAAag+B,SAAbh+B,CAAuB,CAAvBA,EAA0BnY,KAA1BmY,CAAgC,CAAhCA,CAAnBtZ,CAAjB;;MAEA,KAAK8oD,KAAL,CAAW,CAAX,IAAgBpoE,KAAKyd,GAALzd,CAAS,KAAKooE,KAAL,CAAW,CAAX,CAATpoE,EAAwBqoE,SAAS,CAAT,CAAxBroE,CAAhB;MACA,KAAKooE,KAAL,CAAW,CAAX,IAAgBpoE,KAAKyd,GAALzd,CAAS,KAAKooE,KAAL,CAAW,CAAX,CAATpoE,EAAwBqoE,SAAS,CAAT,CAAxBroE,CAAhB;MACA,KAAKooE,KAAL,CAAW,CAAX,IAAgBpoE,KAAKC,GAALD,CAAS,KAAKooE,KAAL,CAAW,CAAX,CAATpoE,EAAwBqoE,SAAS,CAAT,CAAxBroE,CAAhB;MACA,KAAKooE,KAAL,CAAW,CAAX,IAAgBpoE,KAAKC,GAALD,CAAS,KAAKooE,KAAL,CAAW,CAAX,CAATpoE,EAAwBqoE,SAAS,CAAT,CAAxBroE,CAAhB;IAnB0D;;IAqB5D,IAAIrD,IAAI,CAAR;IAAA,IACEiJ,KAAKgzB,aAAa78B,MADpB;;IAEA,OAAOY,IAAIiJ,EAAX,EAAe;MACb,QAAQgzB,aAAa89B,OAAb99B,CAAqBj8B,CAArBi8B,CAAR;QACE,KAAKplB,UAAIiD,mBAAT;QACA,KAAKjD,UAAIkD,iBAAT;QACA,KAAKlD,UAAImD,cAAT;QACA,KAAKnD,UAAIoD,eAAT;QACA,KAAKpD,UAAIqD,YAAT;QACA,KAAKrD,UAAIsD,aAAT;QACA,KAAKtD,UAAIuD,aAAT;QACA,KAAKvD,UAAIwD,WAAT;QACA,KAAKxD,UAAIyD,iBAAT;QACA,KAAKzD,UAAI0D,eAAT;QACA,KAAK1D,UAAI2D,kBAAT;QACA,KAAK3D,UAAI4D,gBAAT;QACA,KAAK5D,UAAI6D,WAAT;QACA,KAAK7D,UAAIO,kBAAT;UACE6kB,aAAa89B,OAAb99B,CAAqB/7B,MAArB+7B,CAA4Bj8B,CAA5Bi8B,EAA+B,CAA/BA;UACAA,aAAag+B,SAAbh+B,CAAuB/7B,MAAvB+7B,CAA8Bj8B,CAA9Bi8B,EAAiC,CAAjCA;UACAhzB;UACA;;QAEF,KAAK4N,UAAIS,SAAT;UACE,MAAM,CAACshD,SAAD,IAAc38B,aAAag+B,SAAbh+B,CAAuBj8B,CAAvBi8B,CAApB;UACA,IAAI3V,IAAI,CAAR;UAAA,IACE6rB,KAAKymB,UAAUx5D,MADjB;;UAEA,OAAOknB,IAAI6rB,EAAX,EAAe;YACb,MAAM,CAACw5B,SAAD,IAAc/S,UAAUtyC,CAAV,CAApB;;YACA,QAAQqlD,SAAR;cACE,KAAK,IAAL;cACA,KAAK,KAAL;cACA,KAAK,IAAL;cACA,KAAK,IAAL;cACA,KAAK,KAAL;cACA,KAAK,KAAL;cACA,KAAK,MAAL;gBACE/S,UAAU14D,MAAV04D,CAAiBtyC,CAAjBsyC,EAAoB,CAApBA;gBACAzmB;gBACA;YAVJ;;YAYA7rB;UAlBJ;;UAoBE;MAxCJ;;MA0CAtmB;IAlE0D;EAxH3C;;AAAA;;AA+LrB,MAAMo8D,YAAN,CAAmB;EACjBr/D,YAAYulC,eAAe,IAAIs5B,SAAJ,EAA3B,EAA4C;IAC1C,KAAKlZ,KAAL,GAAapgB,YAAb;IACA,KAAKspC,UAAL,GAAkB,EAAlB;EAHe;;EAMjBhkE,OAAO;IACL,MAAMikE,MAAM,KAAKnpB,KAAjB;IACA,KAAKkpB,UAAL,CAAgBzsE,IAAhB,CAAqB,KAAKujD,KAA1B;IACA,KAAKA,KAAL,GAAampB,IAAItpC,KAAJspC,EAAb;EATe;;EAYjBt0D,UAAU;IACR,MAAMu0D,OAAO,KAAKF,UAAL,CAAgBlR,GAAhB,EAAb;;IACA,IAAIoR,IAAJ,EAAU;MACR,KAAKppB,KAAL,GAAaopB,IAAb;IAHM;EAZO;;EAmBjBt0D,UAAUmW,IAAV,EAAgB;IACd,KAAK+0B,KAAL,CAAW4d,GAAX,GAAiB39C,WAAKnL,SAALmL,CAAe,KAAK+/B,KAAL,CAAW4d,GAA1B39C,EAA+BgL,IAA/BhL,CAAjB;EApBe;;AAAA;;;;AAwBnB,MAAMs7C,SAAN,CAAgB;EACdlhE,cAAc;IACZ,KAAKujE,GAAL,GAAW,IAAIzW,YAAJ,CAAiBn9C,qBAAjB,CAAX;IACA,KAAK+1B,QAAL,GAAgB,IAAhB;IACA,KAAKuZ,QAAL,GAAgB,CAAhB;IACA,KAAKh/B,IAAL,GAAY,IAAZ;IACA,KAAKojD,UAAL,GAAkBzzD,2BAAqBmX,KAArBnX,EAAlB;IACA,KAAK4zD,UAAL,GAAkB7zD,sBAAgBoX,KAAhBpX,EAAlB;IACA,KAAKo0D,cAAL,GAAsBp0D,sBAAgBoX,KAAhBpX,EAAtB;IACA,KAAK61D,WAAL,GAAmB,CAAnB;IACA,KAAKI,WAAL,GAAmB,CAAnB;IACA,KAAKQ,OAAL,GAAe,CAAf;IACA,KAAKlD,UAAL,GAAkB,CAAlB;IACA,KAAKC,QAAL,GAAgB,CAAhB;EAbY;;EAgBd5mD,cAAc9Q,CAAd,EAAiBC,CAAjB,EAAoB6b,CAApB,EAAuBZ,CAAvB,EAA0BlgB,CAA1B,EAA6BuoE,CAA7B,EAAgC;IAC9B,MAAMzoD,IAAI,KAAKi9C,UAAf;IACAj9C,EAAE,CAAF,IAAO9a,CAAP8a;IACAA,EAAE,CAAF,IAAO7a,CAAP6a;IACAA,EAAE,CAAF,IAAOgB,CAAPhB;IACAA,EAAE,CAAF,IAAOI,CAAPJ;IACAA,EAAE,CAAF,IAAO9f,CAAP8f;IACAA,EAAE,CAAF,IAAOyoD,CAAPzoD;EAvBY;;EA0BdggD,kBAAkB96D,CAAlB,EAAqBC,CAArB,EAAwB6b,CAAxB,EAA2BZ,CAA3B,EAA8BlgB,CAA9B,EAAiCuoE,CAAjC,EAAoC;IAClC,MAAMzoD,IAAI,KAAKw9C,cAAf;IACAx9C,EAAE,CAAF,IAAO9a,CAAP8a;IACAA,EAAE,CAAF,IAAO7a,CAAP6a;IACAA,EAAE,CAAF,IAAOgB,CAAPhB;IACAA,EAAE,CAAF,IAAOI,CAAPJ;IACAA,EAAE,CAAF,IAAO9f,CAAP8f;IACAA,EAAE,CAAF,IAAOyoD,CAAPzoD;EAjCY;;EAoCdk/C,oBAAoBl6D,CAApB,EAAuB8pC,CAAvB,EAA0B;IACxB,MAAM9uB,IAAI,KAAKi9C,UAAf;IACAj9C,EAAE,CAAF,IAAOA,EAAE,CAAF,IAAOhb,CAAPgb,GAAWA,EAAE,CAAF,IAAO8uB,CAAlB9uB,GAAsBA,EAAE,CAAF,CAA7BA;IACAA,EAAE,CAAF,IAAOA,EAAE,CAAF,IAAOhb,CAAPgb,GAAWA,EAAE,CAAF,IAAO8uB,CAAlB9uB,GAAsBA,EAAE,CAAF,CAA7BA;EAvCY;;EA0Cd8/C,wBAAwB96D,CAAxB,EAA2B8pC,CAA3B,EAA8B;IAC5B,MAAM9uB,IAAI,KAAKw9C,cAAf;IACAx9C,EAAE,CAAF,IAAOA,EAAE,CAAF,IAAOhb,CAAPgb,GAAWA,EAAE,CAAF,IAAO8uB,CAAlB9uB,GAAsBA,EAAE,CAAF,CAA7BA;IACAA,EAAE,CAAF,IAAOA,EAAE,CAAF,IAAOhb,CAAPgb,GAAWA,EAAE,CAAF,IAAO8uB,CAAlB9uB,GAAsBA,EAAE,CAAF,CAA7BA;EA7CY;;EAgDd+/C,iBAAiB;IACf,KAAKD,uBAAL,CAA6B,CAA7B,EAAgC,CAAC,KAAKD,OAAtC;IACA,KAAK5C,UAAL,GAAkB,KAAKO,cAAL,CAAoBh9C,KAApB,EAAlB;EAlDY;;EAqDdye,QAAQ;IACN,MAAMA,QAAQn5B,OAAOC,MAAPD,CAAc,IAAdA,CAAd;IACAm5B,MAAMg+B,UAANh+B,GAAmB,KAAKg+B,UAAL,GAAkB,KAAKA,UAAL,CAAgBz8C,KAAhB,EAAlB,GAA4CpX,sBAAgBoX,KAAhBpX,EAA/D61B;IACAA,MAAMu+B,cAANv+B,GAAuB,KAAKu+B,cAAL,GAAsB,KAAKA,cAAL,CAAoBh9C,KAApB,EAAtB,GAAoDpX,sBAAgBoX,KAAhBpX,EAA3E61B;IACAA,MAAM69B,UAAN79B,GAAmB,KAAK69B,UAAL,GAAkB,KAAKA,UAAL,CAAgBt8C,KAAhB,EAAlB,GAA4CnX,2BAAqBmX,KAArBnX,EAA/D41B;IACA,OAAOA,KAAP;EA1DY;;AAAA;;;;AA8DhB,MAAMq5B,SAAN,CAAgB;EACd7+D,cAAc;IACZ,KAAKujE,GAAL,GAAW,IAAIzW,YAAJ,CAAiBn9C,qBAAjB,CAAX;IACA,KAAKsQ,IAAL,GAAY,IAAZ;IACA,KAAKo7C,iBAAL,GAAyBnqD,wBAAkBC,IAA3C;IACA,KAAKmqD,cAAL,GAAsB3mB,uBAAWC,UAAXD,CAAsBE,IAA5C;IACA,KAAK4rB,gBAAL,GAAwB9rB,uBAAWC,UAAXD,CAAsBE,IAA9C;EANY;;EASdrP,QAAQ;IACN,OAAOn5B,OAAOC,MAAPD,CAAc,IAAdA,CAAP;EAVY;;AAAA;;AAchB,MAAMs7C,qBAAN,CAA4B;EAC1B,WAAWsnB,KAAX,GAAmB;IAKjB,MAAMC,WAAWp5C,uCAAsB,UAAU7M,CAAV,EAAa;MAElDA,EAAEwkB,CAAFxkB,GAAM;QAAErf,IAAIkQ,UAAIE,YAAV;QAAwBm1D,SAAS,CAAjC;QAAoCC,cAAc;MAAlD,CAANnmD;MACAA,EAAEomD,CAAFpmD,GAAM;QAAErf,IAAIkQ,UAAIG,UAAV;QAAsBk1D,SAAS,CAA/B;QAAkCC,cAAc;MAAhD,CAANnmD;MACAA,EAAEM,CAAFN,GAAM;QAAErf,IAAIkQ,UAAII,WAAV;QAAuBi1D,SAAS,CAAhC;QAAmCC,cAAc;MAAjD,CAANnmD;MACAA,EAAEgqC,CAAFhqC,GAAM;QAAErf,IAAIkQ,UAAIK,aAAV;QAAyBg1D,SAAS,CAAlC;QAAqCC,cAAc;MAAnD,CAANnmD;MACAA,EAAEtC,CAAFsC,GAAM;QAAErf,IAAIkQ,UAAIM,OAAV;QAAmB+0D,SAAS,CAA5B;QAA+BC,cAAc;MAA7C,CAANnmD;MACAA,EAAEqmD,EAAFrmD,GAAO;QAAErf,IAAIkQ,UAAIO,kBAAV;QAA8B80D,SAAS,CAAvC;QAA0CC,cAAc;MAAxD,CAAPnmD;MACAA,EAAEhmB,CAAFgmB,GAAM;QAAErf,IAAIkQ,UAAIQ,WAAV;QAAuB60D,SAAS,CAAhC;QAAmCC,cAAc;MAAjD,CAANnmD;MACAA,EAAEsmD,EAAFtmD,GAAO;QAAErf,IAAIkQ,UAAIS,SAAV;QAAqB40D,SAAS,CAA9B;QAAiCC,cAAc;MAA/C,CAAPnmD;MACAA,EAAEqkC,CAAFrkC,GAAM;QAAErf,IAAIkQ,UAAIjP,IAAV;QAAgBskE,SAAS,CAAzB;QAA4BC,cAAc;MAA1C,CAANnmD;MACAA,EAAEumD,CAAFvmD,GAAM;QAAErf,IAAIkQ,UAAIU,OAAV;QAAmB20D,SAAS,CAA5B;QAA+BC,cAAc;MAA7C,CAANnmD;MACAA,EAAEwmD,EAAFxmD,GAAO;QAAErf,IAAIkQ,UAAIW,SAAV;QAAqB00D,SAAS,CAA9B;QAAiCC,cAAc;MAA/C,CAAPnmD;MAGAA,EAAE1C,CAAF0C,GAAM;QAAErf,IAAIkQ,UAAIY,MAAV;QAAkBy0D,SAAS,CAA3B;QAA8BC,cAAc;MAA5C,CAANnmD;MACAA,EAAEymD,CAAFzmD,GAAM;QAAErf,IAAIkQ,UAAIa,MAAV;QAAkBw0D,SAAS,CAA3B;QAA8BC,cAAc;MAA5C,CAANnmD;MACAA,EAAE1B,CAAF0B,GAAM;QAAErf,IAAIkQ,UAAIc,OAAV;QAAmBu0D,SAAS,CAA5B;QAA+BC,cAAc;MAA7C,CAANnmD;MACAA,EAAE7B,CAAF6B,GAAM;QAAErf,IAAIkQ,UAAIe,QAAV;QAAoBs0D,SAAS,CAA7B;QAAgCC,cAAc;MAA9C,CAANnmD;MACAA,EAAEosB,CAAFpsB,GAAM;QAAErf,IAAIkQ,UAAIgB,QAAV;QAAoBq0D,SAAS,CAA7B;QAAgCC,cAAc;MAA9C,CAANnmD;MACAA,EAAEkuC,CAAFluC,GAAM;QAAErf,IAAIkQ,UAAIiB,SAAV;QAAqBo0D,SAAS,CAA9B;QAAiCC,cAAc;MAA/C,CAANnmD;MACAA,EAAE0mD,EAAF1mD,GAAO;QAAErf,IAAIkQ,UAAIkB,SAAV;QAAqBm0D,SAAS,CAA9B;QAAiCC,cAAc;MAA/C,CAAPnmD;MACAA,EAAE2mD,CAAF3mD,GAAM;QAAErf,IAAIkQ,UAAImB,MAAV;QAAkBk0D,SAAS,CAA3B;QAA8BC,cAAc;MAA5C,CAANnmD;MACAA,EAAE4mD,CAAF5mD,GAAM;QAAErf,IAAIkQ,UAAIoB,WAAV;QAAuBi0D,SAAS,CAAhC;QAAmCC,cAAc;MAAjD,CAANnmD;MACAA,EAAE+lD,CAAF/lD,GAAM;QAAErf,IAAIkQ,UAAIqB,IAAV;QAAgBg0D,SAAS,CAAzB;QAA4BC,cAAc;MAA1C,CAANnmD;MACAA,EAAE1R,CAAF0R,GAAM;QAAErf,IAAIkQ,UAAIqB,IAAV;QAAgBg0D,SAAS,CAAzB;QAA4BC,cAAc;MAA1C,CAANnmD;MACAA,EAAE,IAAF,IAAU;QAAErf,IAAIkQ,UAAIsB,MAAV;QAAkB+zD,SAAS,CAA3B;QAA8BC,cAAc;MAA5C,CAAVnmD;MACAA,EAAE8nC,CAAF9nC,GAAM;QAAErf,IAAIkQ,UAAIuB,UAAV;QAAsB8zD,SAAS,CAA/B;QAAkCC,cAAc;MAAhD,CAANnmD;MACAA,EAAE,IAAF,IAAU;QAAErf,IAAIkQ,UAAIwB,YAAV;QAAwB6zD,SAAS,CAAjC;QAAoCC,cAAc;MAAlD,CAAVnmD;MACAA,EAAEvd,CAAFud,GAAM;QAAErf,IAAIkQ,UAAIyB,eAAV;QAA2B4zD,SAAS,CAApC;QAAuCC,cAAc;MAArD,CAANnmD;MACAA,EAAE,IAAF,IAAU;QAAErf,IAAIkQ,UAAI0B,iBAAV;QAA6B2zD,SAAS,CAAtC;QAAyCC,cAAc;MAAvD,CAAVnmD;MACAA,EAAEvD,CAAFuD,GAAM;QAAErf,IAAIkQ,UAAI2B,OAAV;QAAmB0zD,SAAS,CAA5B;QAA+BC,cAAc;MAA7C,CAANnmD;MAGAA,EAAE6mD,CAAF7mD,GAAM;QAAErf,IAAIkQ,UAAI4B,IAAV;QAAgByzD,SAAS,CAAzB;QAA4BC,cAAc;MAA1C,CAANnmD;MACAA,EAAE,IAAF,IAAU;QAAErf,IAAIkQ,UAAI6B,MAAV;QAAkBwzD,SAAS,CAA3B;QAA8BC,cAAc;MAA5C,CAAVnmD;MAGAA,EAAE8mD,EAAF9mD,GAAO;QAAErf,IAAIkQ,UAAI8B,SAAV;QAAqBuzD,SAAS,CAA9B;QAAiCC,cAAc;MAA/C,CAAPnmD;MACAA,EAAE+mD,EAAF/mD,GAAO;QAAErf,IAAIkQ,UAAI+B,OAAV;QAAmBszD,SAAS,CAA5B;QAA+BC,cAAc;MAA7C,CAAPnmD;MACAA,EAAEgnD,EAAFhnD,GAAO;QAAErf,IAAIkQ,UAAIgC,cAAV;QAA0BqzD,SAAS,CAAnC;QAAsCC,cAAc;MAApD,CAAPnmD;MACAA,EAAEinD,EAAFjnD,GAAO;QAAErf,IAAIkQ,UAAIiC,cAAV;QAA0BozD,SAAS,CAAnC;QAAsCC,cAAc;MAApD,CAAPnmD;MACAA,EAAEknD,EAAFlnD,GAAO;QAAErf,IAAIkQ,UAAIkC,SAAV;QAAqBmzD,SAAS,CAA9B;QAAiCC,cAAc;MAA/C,CAAPnmD;MACAA,EAAEmnD,EAAFnnD,GAAO;QAAErf,IAAIkQ,UAAImC,UAAV;QAAsBkzD,SAAS,CAA/B;QAAkCC,cAAc;MAAhD,CAAPnmD;MACAA,EAAEonD,EAAFpnD,GAAO;QAAErf,IAAIkQ,UAAIoC,OAAV;QAAmBizD,SAAS,CAA5B;QAA+BC,cAAc;MAA7C,CAAPnmD;MACAA,EAAEqnD,EAAFrnD,GAAO;QAAErf,IAAIkQ,UAAIqC,oBAAV;QAAgCgzD,SAAS,CAAzC;QAA4CC,cAAc;MAA1D,CAAPnmD;MACAA,EAAEsnD,EAAFtnD,GAAO;QAAErf,IAAIkQ,UAAIsC,WAAV;QAAuB+yD,SAAS,CAAhC;QAAmCC,cAAc;MAAjD,CAAPnmD;MACAA,EAAEunD,EAAFvnD,GAAO;QAAErf,IAAIkQ,UAAIuC,QAAV;QAAoB8yD,SAAS,CAA7B;QAAgCC,cAAc;MAA9C,CAAPnmD;MACAA,EAAEwnD,EAAFxnD,GAAO;QAAErf,IAAIkQ,UAAIwC,kBAAV;QAA8B6yD,SAAS,CAAvC;QAA0CC,cAAc;MAAxD,CAAPnmD;MACAA,EAAEynD,EAAFznD,GAAO;QAAErf,IAAIkQ,UAAIyC,aAAV;QAAyB4yD,SAAS,CAAlC;QAAqCC,cAAc;MAAnD,CAAPnmD;MACAA,EAAE,IAAF,IAAU;QAAErf,IAAIkQ,UAAI0C,QAAV;QAAoB2yD,SAAS,CAA7B;QAAgCC,cAAc;MAA9C,CAAVnmD;MACAA,EAAE0nD,EAAF1nD,GAAO;QAAErf,IAAIkQ,UAAI2C,QAAV;QAAoB0yD,SAAS,CAA7B;QAAgCC,cAAc;MAA9C,CAAPnmD;MACAA,EAAE2nD,EAAF3nD,GAAO;QAAErf,IAAIkQ,UAAI4C,cAAV;QAA0ByyD,SAAS,CAAnC;QAAsCC,cAAc;MAApD,CAAPnmD;MACAA,EAAE,GAAF,IAAS;QAAErf,IAAIkQ,UAAI6C,gBAAV;QAA4BwyD,SAAS,CAArC;QAAwCC,cAAc;MAAtD,CAATnmD;MACAA,EAAE,GAAF,IAAS;QACPrf,IAAIkQ,UAAI8C,0BADD;QAEPuyD,SAAS,CAFF;QAGPC,cAAc;MAHP,CAATnmD;MAOAA,EAAE4nD,EAAF5nD,GAAO;QAAErf,IAAIkQ,UAAI+C,YAAV;QAAwBsyD,SAAS,CAAjC;QAAoCC,cAAc;MAAlD,CAAPnmD;MACAA,EAAE6nD,EAAF7nD,GAAO;QACLrf,IAAIkQ,UAAIgD,qBADH;QAELqyD,SAAS,CAFJ;QAGLC,cAAc;MAHT,CAAPnmD;MAOAA,EAAE8nD,EAAF9nD,GAAO;QAAErf,IAAIkQ,UAAIiD,mBAAV;QAA+BoyD,SAAS,CAAxC;QAA2CC,cAAc;MAAzD,CAAPnmD;MACAA,EAAEmiC,EAAFniC,GAAO;QAAErf,IAAIkQ,UAAIkD,iBAAV;QAA6BmyD,SAAS,CAAtC;QAAyCC,cAAc;MAAvD,CAAPnmD;MACAA,EAAE+nD,EAAF/nD,GAAO;QAAErf,IAAIkQ,UAAImD,cAAV;QAA0BkyD,SAAS,CAAnC;QAAsCC,cAAc;MAApD,CAAPnmD;MACAA,EAAEgoD,GAAFhoD,GAAQ;QAAErf,IAAIkQ,UAAIoD,eAAV;QAA2BiyD,SAAS,EAApC;QAAwCC,cAAc;MAAtD,CAARnmD;MACAA,EAAEioD,EAAFjoD,GAAO;QAAErf,IAAIkQ,UAAIqD,YAAV;QAAwBgyD,SAAS,CAAjC;QAAoCC,cAAc;MAAlD,CAAPnmD;MACAA,EAAEkoD,GAAFloD,GAAQ;QAAErf,IAAIkQ,UAAIsD,aAAV;QAAyB+xD,SAAS,EAAlC;QAAsCC,cAAc;MAApD,CAARnmD;MACAA,EAAE6kC,CAAF7kC,GAAM;QAAErf,IAAIkQ,UAAIuD,aAAV;QAAyB8xD,SAAS,CAAlC;QAAqCC,cAAc;MAAnD,CAANnmD;MACAA,EAAElD,CAAFkD,GAAM;QAAErf,IAAIkQ,UAAIwD,WAAV;QAAuB6xD,SAAS,CAAhC;QAAmCC,cAAc;MAAjD,CAANnmD;MACAA,EAAEmoD,EAAFnoD,GAAO;QAAErf,IAAIkQ,UAAIyD,iBAAV;QAA6B4xD,SAAS,CAAtC;QAAyCC,cAAc;MAAvD,CAAPnmD;MACAA,EAAEooD,EAAFpoD,GAAO;QAAErf,IAAIkQ,UAAI0D,eAAV;QAA2B2xD,SAAS,CAApC;QAAuCC,cAAc;MAArD,CAAPnmD;MACAA,EAAE3R,CAAF2R,GAAM;QAAErf,IAAIkQ,UAAI2D,kBAAV;QAA8B0xD,SAAS,CAAvC;QAA0CC,cAAc;MAAxD,CAANnmD;MACAA,EAAEykC,CAAFzkC,GAAM;QAAErf,IAAIkQ,UAAI4D,gBAAV;QAA4ByxD,SAAS,CAArC;QAAwCC,cAAc;MAAtD,CAANnmD;MAGAA,EAAEqoD,EAAFroD,GAAO;QAAErf,IAAIkQ,UAAI6D,WAAV;QAAuBwxD,SAAS,CAAhC;QAAmCC,cAAc;MAAjD,CAAPnmD;MAGAA,EAAEsoD,EAAFtoD,GAAO;QAAErf,IAAIkQ,UAAI8D,gBAAV;QAA4BuxD,SAAS,CAArC;QAAwCC,cAAc;MAAtD,CAAPnmD;MACAA,EAAEuoD,EAAFvoD,GAAO;QAAErf,IAAIkQ,UAAI+D,cAAV;QAA0BsxD,SAAS,CAAnC;QAAsCC,cAAc;MAApD,CAAPnmD;MACAA,EAAEwoD,EAAFxoD,GAAO;QAAErf,IAAIkQ,UAAIgE,cAAV;QAA0BqxD,SAAS,CAAnC;QAAsCC,cAAc;MAApD,CAAPnmD;MAGAA,EAAEyoD,EAAFzoD,GAAO;QAAErf,IAAIkQ,UAAIiE,YAAV;QAAwBoxD,SAAS,CAAjC;QAAoCC,cAAc;MAAlD,CAAPnmD;MACAA,EAAE0oD,EAAF1oD,GAAO;QAAErf,IAAIkQ,UAAIkE,SAAV;QAAqBmxD,SAAS,CAA9B;QAAiCC,cAAc;MAA/C,CAAPnmD;MACAA,EAAElR,EAAFkR,GAAO;QAAErf,IAAIkQ,UAAImE,cAAV;QAA0BkxD,SAAS,CAAnC;QAAsCC,cAAc;MAApD,CAAPnmD;MACAA,EAAE2oD,GAAF3oD,GAAQ;QAAErf,IAAIkQ,UAAIoE,kBAAV;QAA8BixD,SAAS,CAAvC;QAA0CC,cAAc;MAAxD,CAARnmD;MACAA,EAAE4oD,GAAF5oD,GAAQ;QACNrf,IAAIkQ,UAAIqE,uBADF;QAENgxD,SAAS,CAFH;QAGNC,cAAc;MAHR,CAARnmD;MAKAA,EAAE6oD,GAAF7oD,GAAQ;QAAErf,IAAIkQ,UAAIsE,gBAAV;QAA4B+wD,SAAS,CAArC;QAAwCC,cAAc;MAAtD,CAARnmD;MAGAA,EAAE8oD,EAAF9oD,GAAO;QAAErf,IAAIkQ,UAAIuE,WAAV;QAAuB8wD,SAAS,CAAhC;QAAmCC,cAAc;MAAjD,CAAPnmD;MACAA,EAAE+oD,EAAF/oD,GAAO;QAAErf,IAAIkQ,UAAIwE,SAAV;QAAqB6wD,SAAS,CAA9B;QAAiCC,cAAc;MAA/C,CAAPnmD;MAGAA,EAAEgpD,EAAFhpD,GAAO,IAAPA;MACAA,EAAEipD,EAAFjpD,GAAO,IAAPA;MACAA,EAAEkpD,IAAFlpD,GAAS,IAATA;MACAA,EAAEmpD,EAAFnpD,GAAO,IAAPA;MACAA,EAAEopD,GAAFppD,GAAQ,IAARA;MACAA,EAAEqpD,IAAFrpD,GAAS,IAATA;MACAA,EAAEspD,KAAFtpD,GAAU,IAAVA;MACAA,EAAEupD,EAAFvpD,GAAO,IAAPA;MACAA,EAAEwpD,GAAFxpD,GAAQ,IAARA;MACAA,EAAEypD,IAAFzpD,GAAS,IAATA;IApHe,EAAjB;IAuHA,OAAOvG,kBAAO,IAAPA,EAAa,OAAbA,EAAsBwsD,UAAtBxsD,CAAP;EA7HwB;;EAgI1B,WAAWiwD,oBAAX,GAAkC;IAChC,OAAOjwD,kBAAO,IAAPA,EAAa,sBAAbA,EAAqC,EAArCA,CAAP;EAjIwB;;EAoI1B1iB,YAAYuI,MAAZ,EAAoB0C,IAApB,EAA0B8tD,eAAe,IAAIsG,YAAJ,EAAzC,EAA6D;IAG3D,KAAKuT,MAAL,GAAc,IAAIC,cAAJ,CAAW;MACvBC,OAAO,IAAIC,aAAJ,CAAUxqE,MAAV,EAAkBo/C,sBAAsBsnB,KAAxC,CADgB;MAEvBhkE;IAFuB,CAAX,CAAd;IAIA,KAAK8tD,YAAL,GAAoBA,YAApB;IACA,KAAKia,gBAAL,GAAwB,EAAxB;IACA,KAAKC,kBAAL,GAA0B,CAA1B;EA7IwB;;EAgJ1B,IAAIlrB,gBAAJ,GAAuB;IACrB,OAAO,KAAKgR,YAAL,CAAkB8V,UAAlB,CAA6BxsE,MAApC;EAjJwB;;EAyK1BmE,KAAKohD,SAAL,EAAgB;IACd,IAAIh3B,OAAOg3B,UAAUh3B,IAArB;;IACA,OAAO,IAAP,EAAa;MACX,MAAMjO,MAAM,KAAKiwD,MAAL,CAAYM,MAAZ,EAAZ;;MACA,IAAIvwD,eAAe6J,eAAnB,EAAwB;QACtB,MAAMG,MAAMhK,IAAIgK,GAAhB;QAEA,MAAMwmD,SAASxrB,sBAAsBsnB,KAAtBtnB,CAA4Bh7B,GAA5Bg7B,CAAf;;QACA,IAAI,CAACwrB,MAAL,EAAa;UACXptE,gBAAM,oBAAmB4mB,GAAI,IAA7B5mB;UACA;QANoB;;QAStB,MAAM8hD,KAAKsrB,OAAOvpE,EAAlB;QACA,MAAMulE,UAAUgE,OAAOhE,OAAvB;QACA,IAAIiE,aAAaxiD,SAAS,IAATA,GAAgBA,KAAKvuB,MAArBuuB,GAA8B,CAA/C;;QAEA,IAAI,CAACuiD,OAAO/D,YAAZ,EAA0B;UAExB,IAAIgE,eAAejE,OAAnB,EAA4B;YAC1B,MAAM6D,mBAAmB,KAAKA,gBAA9B;;YACA,OAAOI,aAAajE,OAApB,EAA6B;cAC3B6D,iBAAiB5wE,IAAjB4wE,CAAsBpiD,KAAKwwB,KAALxwB,EAAtBoiD;cACAI;YAJwB;;YAM1B,OAAOA,aAAajE,OAAbiE,IAAwBJ,iBAAiB3wE,MAAjB2wE,KAA4B,CAA3D,EAA8D;cAC5D,IAAIpiD,SAAS,IAAb,EAAmB;gBACjBA,OAAO,EAAPA;cAF0D;;cAI5DA,KAAKqpB,OAALrpB,CAAaoiD,iBAAiBrV,GAAjBqV,EAAbpiD;cACAwiD;YAXwB;UAFJ;;UAiBxB,IAAIA,aAAajE,OAAjB,EAA0B;YACxB,MAAM3sE,aACH,WAAUmqB,GAAI,cAAawiD,OAAQ,SAApC,GACC,gBAAeiE,UAAW,QAF7B;;YAQA,IACEvrB,MAAM/tC,UAAIY,MAAVmtC,IACAA,MAAM/tC,UAAI2B,OADVosC,IAEA,EAAE,KAAKorB,kBAAP,GACEtrB,sBAAsBgrB,oBAJ1B,EAKE;cACA,MAAM,IAAIrvD,iBAAJ,CAAiB,WAAU9gB,UAAX,EAAhB,CAAN;YAfsB;;YAmBxBuD,gBAAM,YAAWvD,UAAZ,EAALuD;;YACA,IAAI6qB,SAAS,IAAb,EAAmB;cACjBA,KAAKvuB,MAALuuB,GAAc,CAAdA;YArBsB;;YAuBxB;UAxCsB;QAA1B,OA0CO,IAAIwiD,aAAajE,OAAjB,EAA0B;UAC/BjiE,gBACG,WAAUyf,GAAI,kBAAiBwiD,OAAQ,UAAxC,GACG,gBAAeiE,UAAW,QAF/BlmE;QAxDoB;;QA+DtB,KAAKmmE,iBAAL,CAAuBxrB,EAAvB,EAA2Bj3B,IAA3B;QAEAg3B,UAAUC,EAAVD,GAAeC,EAAfD;QACAA,UAAUh3B,IAAVg3B,GAAiBh3B,IAAjBg3B;QACA,OAAO,IAAP;MArES;;MAuEX,IAAIjlC,QAAQuJ,eAAZ,EAAiB;QACf,OAAO,KAAP;MAxES;;MA2EX,IAAIvJ,QAAQ,IAAZ,EAAkB;QAChB,IAAIiO,SAAS,IAAb,EAAmB;UACjBA,OAAO,EAAPA;QAFc;;QAIhBA,KAAKxuB,IAALwuB,CAAUjO,GAAViO;;QACA,IAAIA,KAAKvuB,MAALuuB,GAAc,EAAlB,EAAsB;UACpB,MAAM,IAAItN,iBAAJ,CAAgB,oBAAhB,CAAN;QANc;MA3EP;IAFC;EAzKU;;EAkQ1B+vD,kBAAkBxrB,EAAlB,EAAsBj3B,IAAtB,EAA4B;IAC1B,QAAQi3B,KAAK,CAAb;MACE,KAAK/tC,UAAIjP,IAAT;QACE,KAAKkuD,YAAL,CAAkBluD,IAAlB;QACA;;MACF,KAAKiP,UAAIU,OAAT;QACE,KAAKu+C,YAAL,CAAkBv+C,OAAlB;QACA;;MACF,KAAKV,UAAIW,SAAT;QACE,KAAKs+C,YAAL,CAAkBt+C,SAAlB,CAA4BmW,IAA5B;QACA;IATJ;EAnQwB;;AAAA;;;;;;;;;;;;;;;AC7hJ5B;;AAMA;;AACA;;AACA;;AACA;;AACA;;AAEA,MAAM0iD,iBAAiB,CAErB,gBAFqB,EAGrB,iBAHqB,EAIrB,mBAJqB,EAKrB,mBALqB,EAOrB,UAPqB,EAQrB,UARqB,EASrB,MATqB,EAUrB,WAVqB,EAWrB,WAXqB,EAYrB,MAZqB,EAarB,aAbqB,EAcrB,aAdqB,EAerB,aAfqB,EAgBrB,aAhBqB,EAiBrB,aAjBqB,EAkBrB,cAlBqB,EAmBrB,cAnBqB,EAoBrB,aApBqB,EAqBrB,aArBqB,EAsBrB,OAtBqB,EAuBrB,YAvBqB,EAwBrB,YAxBqB,EAyBrB,OAzBqB,EA0BrB,cA1BqB,EA2BrB,cA3BqB,EA4BrB,cA5BqB,EA6BrB,cA7BqB,EA8BrB,cA9BqB,EA+BrB,cA/BqB,EAgCrB,cAhCqB,EAiCrB,aAjCqB,EAkCrB,aAlCqB,EAmCrB,aAnCqB,EAoCrB,aApCqB,EAqCrB,aArCqB,EAsCrB,aAtCqB,EAuCrB,gBAvCqB,EAwCrB,gBAxCqB,EAyCrB,gBAzCqB,EA0CrB,gBA1CqB,EA2CrB,gBA3CqB,EA4CrB,gBA5CqB,EA6CrB,gBA7CqB,EA8CrB,gBA9CqB,EA+CrB,gBA/CqB,EAgDrB,gBAhDqB,EAiDrB,MAjDqB,EAkDrB,MAlDqB,EAmDrB,QAnDqB,EAoDrB,QApDqB,EAqDrB,WArDqB,EAsDrB,WAtDqB,EAuDrB,QAvDqB,EAwDrB,QAxDqB,EAyDrB,QAzDqB,EA0DrB,QA1DqB,EA2DrB,WA3DqB,EA4DrB,WA5DqB,EA6DrB,WA7DqB,EA8DrB,WA9DqB,EA+DrB,aA/DqB,EAgErB,aAhEqB,EAiErB,OAjEqB,EAkErB,OAlEqB,EAmErB,OAnEqB,EAoErB,YApEqB,EAqErB,YArEqB,EAsErB,OAtEqB,EAuErB,UAvEqB,EAwErB,UAxEqB,EAyErB,MAzEqB,EA0ErB,MA1EqB,EA2ErB,WA3EqB,EA4ErB,WA5EqB,EA6ErB,SA7EqB,EA8ErB,SA9EqB,EA+ErB,YA/EqB,EAgFrB,YAhFqB,EAiFrB,WAjFqB,EAkFrB,WAlFqB,EAmFrB,OAnFqB,EAoFrB,OApFqB,EAqFrB,aArFqB,EAsFrB,aAtFqB,EAuFrB,YAvFqB,EAwFrB,YAxFqB,EAyFrB,GAzFqB,EA0FrB,YA1FqB,EA2FrB,YA3FqB,EA4FrB,YA5FqB,EA6FrB,YA7FqB,EA8FrB,aA9FqB,EA+FrB,aA/FqB,EAgGrB,aAhGqB,EAiGrB,aAjGqB,EAkGrB,aAlGqB,EAmGrB,aAnGqB,EAoGrB,YApGqB,EAqGrB,YArGqB,EAsGrB,SAtGqB,EAuGrB,UAvGqB,EAwGrB,WAxGqB,EAyGrB,WAzGqB,EA0GrB,OA1GqB,EA2GrB,aA3GqB,EA4GrB,aA5GqB,EA6GrB,OA7GqB,EA8GrB,aA9GqB,EA+GrB,gBA/GqB,EAgHrB,gBAhHqB,EAiHrB,aAjHqB,EAkHrB,aAlHqB,EAmHrB,aAnHqB,EAoHrB,UApHqB,EAqHrB,OArHqB,EAsHrB,OAtHqB,EAuHrB,QAvHqB,EAwHrB,QAxHqB,EAyHrB,OAzHqB,EA0HrB,eA1HqB,EA2HrB,eA3HqB,EA4HrB,gBA5HqB,EA6HrB,gBA7HqB,EA8HrB,gBA9HqB,EA+HrB,gBA/HqB,EAgIrB,eAhIqB,EAiIrB,eAjIqB,EAkIrB,cAlIqB,EAmIrB,cAnIqB,EAoIrB,eApIqB,EAqIrB,eArIqB,EAsIrB,eAtIqB,EAuIrB,eAvIqB,EAwIrB,cAxIqB,EAyIrB,cAzIqB,EA0IrB,eA1IqB,EA2IrB,kBA3IqB,EA4IrB,kBA5IqB,EA6IrB,eA7IqB,EA8IrB,gBA9IqB,EA+IrB,gBA/IqB,EAgJrB,gBAhJqB,EAiJrB,gBAjJqB,EAkJrB,eAlJqB,EAmJrB,eAnJqB,EAoJrB,oBApJqB,EAqJrB,oBArJqB,EAsJrB,oBAtJqB,EAuJrB,oBAvJqB,EAwJrB,mBAxJqB,EAyJrB,mBAzJqB,EA0JrB,qBA1JqB,EA2JrB,kBA3JqB,EA4JrB,kBA5JqB,EA6JrB,qBA7JqB,EA8JrB,qBA9JqB,EA+JrB,yBA/JqB,EAgKrB,yBAhKqB,EAiKrB,cAjKqB,EAkKrB,cAlKqB,EAmKrB,eAnKqB,EAoKrB,eApKqB,EAqKrB,eArKqB,EAsKrB,eAtKqB,EAuKrB,cAvKqB,EAwKrB,cAxKqB,EAyKrB,GAzKqB,EA0KrB,WA1KqB,CAAvB;AA+KA,MAAMC,gBAAgB,KAAK,EAAL,GAAU,CAAhC;;AAGA,MAAMC,IAAN,CAAW;EACTxzE,YAAY8oE,cAAc,KAA1B,EAAiC;IAI/B,KAAK2K,eAAL,GAAuB,CAAC,EAAD,EAAK,EAAL,EAAS,EAAT,EAAa,EAAb,CAAvB;IACA,KAAKC,kBAAL,GAA0B,CAA1B;IAKA,KAAK3mD,IAAL,GAAY,EAAZ;IACA,KAAK9sB,IAAL,GAAY,EAAZ;IACA,KAAKuhE,QAAL,GAAgB,KAAhB;IACA,KAAK2H,OAAL,GAAe,IAAf;IACA,KAAKL,WAAL,GAAmBA,WAAnB;EAfO;;EAkBT6K,kBAAkBjuD,CAAlB,EAAqBkuD,GAArB,EAA0BC,IAA1B,EAAgC;IAC9B,KAAKJ,eAAL,CAAqB/tD,IAAI,CAAzB,EAA4BtjB,IAA5B,CAAiCwxE,GAAjC,EAAsCC,IAAtC;IACA,KAAKH,kBAAL;EApBO;;EAuBTI,YAAYF,GAAZ,EAAiBC,IAAjB,EAAuBE,MAAvB,EAA+B;IAC7B,IAAIF,OAAOD,GAAPC,GAAaN,aAAjB,EAAgC;MAC9B,MAAM,IAAI5yE,KAAJ,CAAU,kDAAV,CAAN;IAF2B;;IAI7B,OAAOizE,OAAOC,IAAd,EAAoB;MAClB,KAAK9mD,IAAL,CAAU6mD,KAAV,IAAmBG,QAAnB;IAL2B;EAvBtB;;EAgCTC,WAAWJ,GAAX,EAAgBC,IAAhB,EAAsBE,MAAtB,EAA8B;IAC5B,IAAIF,OAAOD,GAAPC,GAAaN,aAAjB,EAAgC;MAC9B,MAAM,IAAI5yE,KAAJ,CAAU,iDAAV,CAAN;IAF0B;;IAI5B,MAAMszE,WAAWF,OAAO1xE,MAAP0xE,GAAgB,CAAjC;;IACA,OAAOH,OAAOC,IAAd,EAAoB;MAClB,KAAK9mD,IAAL,CAAU6mD,KAAV,IAAmBG,MAAnB;MAEA,MAAMG,eAAeH,OAAO3vD,UAAP2vD,CAAkBE,QAAlBF,IAA8B,CAAnD;;MACA,IAAIG,eAAe,IAAnB,EAAyB;QACvBH,SACEA,OAAO17C,SAAP07C,CAAiB,CAAjBA,EAAoBE,WAAW,CAA/BF,IACArwD,OAAOC,YAAPD,CAAoBqwD,OAAO3vD,UAAP2vD,CAAkBE,WAAW,CAA7BF,IAAkC,CAAtDrwD,CADAqwD,GAEA,MAHFA;QAIA;MATgB;;MAWlBA,SACEA,OAAO17C,SAAP07C,CAAiB,CAAjBA,EAAoBE,QAApBF,IAAgCrwD,OAAOC,YAAPD,CAAoBwwD,YAApBxwD,CADlCqwD;IAhB0B;EAhCrB;;EAqDTI,kBAAkBP,GAAlB,EAAuBC,IAAvB,EAA6Bx6B,KAA7B,EAAoC;IAClC,IAAIw6B,OAAOD,GAAPC,GAAaN,aAAjB,EAAgC;MAC9B,MAAM,IAAI5yE,KAAJ,CAAU,wDAAV,CAAN;IAFgC;;IAIlC,MAAMuL,KAAKmtC,MAAMh3C,MAAjB;IACA,IAAIY,IAAI,CAAR;;IACA,OAAO2wE,OAAOC,IAAPD,IAAe3wE,IAAIiJ,EAA1B,EAA8B;MAC5B,KAAK6gB,IAAL,CAAU6mD,GAAV,IAAiBv6B,MAAMp2C,GAAN,CAAjB;MACA,EAAE2wE,GAAF;IARgC;EArD3B;;EAkETQ,OAAOlsB,GAAP,EAAYmsB,GAAZ,EAAiB;IACf,KAAKtnD,IAAL,CAAUm7B,GAAV,IAAiBmsB,GAAjB;EAnEO;;EAsETr+C,OAAO/uB,IAAP,EAAa;IACX,OAAO,KAAK8lB,IAAL,CAAU9lB,IAAV,CAAP;EAvEO;;EA0ETqtE,SAASrtE,IAAT,EAAe;IACb,OAAO,KAAK8lB,IAAL,CAAU9lB,IAAV,MAAoBuc,SAA3B;EA3EO;;EA8ET9W,QAAQuhB,QAAR,EAAkB;IAMhB,MAAMlJ,MAAM,KAAKgI,IAAjB;IACA,MAAM1qB,SAAS0iB,IAAI1iB,MAAnB;;IACA,IAAIA,UAAU,OAAd,EAAuB;MACrB,KAAK,IAAIY,IAAI,CAAb,EAAgBA,IAAIZ,MAApB,EAA4BY,GAA5B,EAAiC;QAC/B,IAAI8hB,IAAI9hB,CAAJ,MAAWugB,SAAf,EAA0B;UACxByK,SAAShrB,CAAT,EAAY8hB,IAAI9hB,CAAJ,CAAZ;QAF6B;MADZ;IAAvB,OAMO;MACL,WAAWA,CAAX,IAAgB8hB,GAAhB,EAAqB;QACnBkJ,SAAShrB,CAAT,EAAY8hB,IAAI9hB,CAAJ,CAAZ;MAFG;IAdS;EA9ET;;EAmGTsxE,WAAWruE,KAAX,EAAkB;IAGhB,MAAM6e,MAAM,KAAKgI,IAAjB;;IACA,IAAIhI,IAAI1iB,MAAJ0iB,IAAc,OAAlB,EAA2B;MACzB,OAAOA,IAAI7hB,OAAJ6hB,CAAY7e,KAAZ6e,CAAP;IALc;;IAOhB,WAAW+qB,QAAX,IAAuB/qB,GAAvB,EAA4B;MAC1B,IAAIA,IAAI+qB,QAAJ,MAAkB5pC,KAAtB,EAA6B;QAC3B,OAAO4pC,WAAW,CAAlB;MAFwB;IAPZ;;IAYhB,OAAO,CAAC,CAAR;EA/GO;;EAkHT65B,SAAS;IACP,OAAO,KAAK58C,IAAZ;EAnHO;;EAsHTynD,aAAarwD,GAAb,EAAkBsT,MAAlB,EAA0Bg9C,GAA1B,EAA+B;IAC7B,IAAIltD,IAAI,CAAR;IACA,MAAMksD,kBAAkB,KAAKA,eAA7B;;IAGA,KAAK,IAAI/tD,IAAI,CAAR,EAAWgvD,KAAKjB,gBAAgBpxE,MAArC,EAA6CqjB,IAAIgvD,EAAjD,EAAqDhvD,GAArD,EAA0D;MACxD6B,IAAK,CAACA,KAAK,CAALA,GAAUpD,IAAIC,UAAJD,CAAesT,SAAS/R,CAAxBvB,CAAX,MAA2C,CAAhDoD;MAEA,MAAMotD,iBAAiBlB,gBAAgB/tD,CAAhB,CAAvB;;MACA,KAAK,IAAIgoC,IAAI,CAAR,EAAWknB,KAAKD,eAAetyE,MAApC,EAA4CqrD,IAAIknB,EAAhD,GAAsD;QACpD,MAAMhB,MAAMe,eAAejnB,GAAf,CAAZ;QACA,MAAMmmB,OAAOc,eAAejnB,GAAf,CAAb;;QACA,IAAInmC,KAAKqsD,GAALrsD,IAAYA,KAAKssD,IAArB,EAA2B;UACzBY,IAAIlM,QAAJkM,GAAeltD,CAAfktD;UACAA,IAAIpyE,MAAJoyE,GAAa/uD,IAAI,CAAjB+uD;UACA;QANkD;MAJE;IAL7B;;IAmB7BA,IAAIlM,QAAJkM,GAAe,CAAfA;IACAA,IAAIpyE,MAAJoyE,GAAa,CAAbA;EA1IO;;EA6ITI,kBAAkB/kC,QAAlB,EAA4B;IAC1B,MAAM2jC,kBAAkB,KAAKA,eAA7B;;IACA,KAAK,IAAI/tD,IAAI,CAAR,EAAWgvD,KAAKjB,gBAAgBpxE,MAArC,EAA6CqjB,IAAIgvD,EAAjD,EAAqDhvD,GAArD,EAA0D;MAExD,MAAMivD,iBAAiBlB,gBAAgB/tD,CAAhB,CAAvB;;MACA,KAAK,IAAIgoC,IAAI,CAAR,EAAWknB,KAAKD,eAAetyE,MAApC,EAA4CqrD,IAAIknB,EAAhD,GAAsD;QACpD,MAAMhB,MAAMe,eAAejnB,GAAf,CAAZ;QACA,MAAMmmB,OAAOc,eAAejnB,GAAf,CAAb;;QACA,IAAI5d,YAAY8jC,GAAZ9jC,IAAmBA,YAAY+jC,IAAnC,EAAyC;UACvC,OAAOnuD,IAAI,CAAX;QAJkD;MAHE;IAFhC;;IAa1B,OAAO,CAAP;EA1JO;;EA6JT,IAAIrjB,MAAJ,GAAa;IACX,OAAO,KAAK0qB,IAAL,CAAU1qB,MAAjB;EA9JO;;EAiKT,IAAIyyE,cAAJ,GAAqB;IACnB,IAAI,EAAE,KAAK70E,IAAL,KAAc,YAAd,IAA8B,KAAKA,IAAL,KAAc,YAA9C,CAAJ,EAAiE;MAC/D,OAAO,KAAP;IAFiB;;IAInB,IAAI,KAAK8sB,IAAL,CAAU1qB,MAAV,KAAqB,OAAzB,EAAkC;MAChC,OAAO,KAAP;IALiB;;IAOnB,KAAK,IAAIY,IAAI,CAAb,EAAgBA,IAAI,OAApB,EAA6BA,GAA7B,EAAkC;MAChC,IAAI,KAAK8pB,IAAL,CAAU9pB,CAAV,MAAiBA,CAArB,EAAwB;QACtB,OAAO,KAAP;MAF8B;IAPf;;IAYnB,OAAO,IAAP;EA7KO;;AAAA;;;;AAmLX,MAAM8lE,YAAN,SAA2ByK,IAA3B,CAAgC;EAC9BxzE,YAAYwhE,QAAZ,EAAsB97C,CAAtB,EAAyB;IACvB;IAEA,KAAK87C,QAAL,GAAgBA,QAAhB;IACA,KAAKmS,iBAAL,CAAuBjuD,CAAvB,EAA0B,CAA1B,EAA6B,MAA7B;EAL4B;;EAQ9BouD,YAAYF,GAAZ,EAAiBC,IAAjB,EAAuBE,MAAvB,EAA+B;IAC7BtyD,uBAAY,6BAAZA;EAT4B;;EAY9BuyD,WAAWJ,GAAX,EAAgBC,IAAhB,EAAsBE,MAAtB,EAA8B;IAC5BtyD,uBAAY,4BAAZA;EAb4B;;EAgB9B0yD,kBAAkBP,GAAlB,EAAuBC,IAAvB,EAA6Bx6B,KAA7B,EAAoC;IAClC53B,uBAAY,mCAAZA;EAjB4B;;EAoB9B2yD,OAAOlsB,GAAP,EAAYmsB,GAAZ,EAAiB;IACf5yD,uBAAY,2BAAZA;EArB4B;;EAwB9BuU,OAAO/uB,IAAP,EAAa;IACX,OAAOma,OAAOC,SAAPD,CAAiBna,IAAjBma,KAA0Bna,QAAQ,MAAlCma,GAA2Cna,IAA3Cma,GAAkDoC,SAAzD;EAzB4B;;EA4B9B8wD,SAASrtE,IAAT,EAAe;IACb,OAAOma,OAAOC,SAAPD,CAAiBna,IAAjBma,KAA0Bna,QAAQ,MAAzC;EA7B4B;;EAgC9ByF,QAAQuhB,QAAR,EAAkB;IAChB,KAAK,IAAIhrB,IAAI,CAAb,EAAgBA,KAAK,MAArB,EAA6BA,GAA7B,EAAkC;MAChCgrB,SAAShrB,CAAT,EAAYA,CAAZ;IAFc;EAhCY;;EAsC9BsxE,WAAWruE,KAAX,EAAkB;IAChB,OAAOkb,OAAOC,SAAPD,CAAiBlb,KAAjBkb,KAA2Blb,SAAS,MAApCkb,GAA6Clb,KAA7Ckb,GAAqD,CAAC,CAA7D;EAvC4B;;EA0C9BuoD,SAAS;IAEP,MAAM5kD,MAAM,IAAI/Y,KAAJ,CAAU,OAAV,CAAZ;;IACA,KAAK,IAAI/I,IAAI,CAAb,EAAgBA,KAAK,MAArB,EAA6BA,GAA7B,EAAkC;MAChC8hB,IAAI9hB,CAAJ,IAASA,CAAT8hB;IAJK;;IAMP,OAAOA,GAAP;EAhD4B;;EAmD9B,IAAI1iB,MAAJ,GAAa;IACX,OAAO,OAAP;EApD4B;;EAwD9B,IAAIyyE,cAAJ,GAAqB;IACnBrzD,uBAAY,mCAAZA;EAzD4B;;AAAA;;;;AA6DhC,MAAMszD,mBAAoB,SAASC,uBAAT,GAAmC;EAC3D,SAASC,QAAT,CAAkBxpE,CAAlB,EAAqB4hB,IAArB,EAA2B;IACzB,IAAI3H,IAAI,CAAR;;IACA,KAAK,IAAIziB,IAAI,CAAb,EAAgBA,KAAKoqB,IAArB,EAA2BpqB,GAA3B,EAAgC;MAC9ByiB,IAAKA,KAAK,CAALA,GAAUja,EAAExI,CAAF,CAAfyiB;IAHuB;;IAKzB,OAAOA,MAAM,CAAb;EANyD;;EAS3D,SAASwvD,QAAT,CAAkBzpE,CAAlB,EAAqB4hB,IAArB,EAA2B;IAGzB,IAAIA,SAAS,CAAb,EAAgB;MACd,OAAO3J,OAAOC,YAAPD,CAAoBjY,EAAE,CAAF,CAApBiY,EAA0BjY,EAAE,CAAF,CAA1BiY,CAAP;IAJuB;;IAMzB,IAAI2J,SAAS,CAAb,EAAgB;MACd,OAAO3J,OAAOC,YAAPD,CAAoBjY,EAAE,CAAF,CAApBiY,EAA0BjY,EAAE,CAAF,CAA1BiY,EAAgCjY,EAAE,CAAF,CAAhCiY,EAAsCjY,EAAE,CAAF,CAAtCiY,CAAP;IAPuB;;IASzB,OAAOA,OAAOC,YAAPD,CAAoBE,KAApBF,CAA0B,IAA1BA,EAAgCjY,EAAEwY,QAAFxY,CAAW,CAAXA,EAAc4hB,OAAO,CAArB5hB,CAAhCiY,CAAP;EAlByD;;EAqB3D,SAASyxD,MAAT,CAAgB1pE,CAAhB,EAAmBC,CAAnB,EAAsB2hB,IAAtB,EAA4B;IAC1B,IAAI9F,IAAI,CAAR;;IACA,KAAK,IAAItkB,IAAIoqB,IAAb,EAAmBpqB,KAAK,CAAxB,EAA2BA,GAA3B,EAAgC;MAC9BskB,KAAK9b,EAAExI,CAAF,IAAOyI,EAAEzI,CAAF,CAAZskB;MACA9b,EAAExI,CAAF,IAAOskB,IAAI,GAAX9b;MACA8b,MAAM,CAANA;IALwB;EArB+B;;EA8B3D,SAAS6tD,MAAT,CAAgB3pE,CAAhB,EAAmB4hB,IAAnB,EAAyB;IACvB,IAAI9F,IAAI,CAAR;;IACA,KAAK,IAAItkB,IAAIoqB,IAAb,EAAmBpqB,KAAK,CAALA,IAAUskB,IAAI,CAAjC,EAAoCtkB,GAApC,EAAyC;MACvCskB,KAAK9b,EAAExI,CAAF,CAALskB;MACA9b,EAAExI,CAAF,IAAOskB,IAAI,GAAX9b;MACA8b,MAAM,CAANA;IALqB;EA9BkC;;EAuC3D,MAAM8tD,eAAe,EAArB;EACA,MAAMC,uBAAuB,EAA7B;;EAEA,MAAMC,gBAAN,CAAuB;IACrBv1E,YAAYmB,IAAZ,EAAkB;MAChB,KAAKikB,MAAL,GAAcjkB,IAAd;MACA,KAAKojB,GAAL,GAAW,CAAX;MACA,KAAK0M,GAAL,GAAW9vB,KAAKkB,MAAhB;MACA,KAAKwqD,MAAL,GAAc,IAAIxrD,UAAJ,CAAei0E,oBAAf,CAAd;IALmB;;IAQrBE,WAAW;MACT,IAAI,KAAKjxD,GAAL,IAAY,KAAK0M,GAArB,EAA0B;QACxB,OAAO,CAAC,CAAR;MAFO;;MAIT,OAAO,KAAK7L,MAAL,CAAY,KAAKb,GAAL,EAAZ,CAAP;IAZmB;;IAerBkxD,aAAa;MACX,IAAI/vD,IAAI,CAAR;MACA,IAAIgwD,IAAJ;;MACA,GAAG;QACD,MAAMhqE,IAAI,KAAK8pE,QAAL,EAAV;;QACA,IAAI9pE,IAAI,CAAR,EAAW;UACT,MAAM,IAAI4X,iBAAJ,CAAgB,yBAAhB,CAAN;QAHD;;QAKDoyD,OAAO,EAAEhqE,IAAI,IAAN,CAAPgqE;QACAhwD,IAAKA,KAAK,CAALA,GAAWha,IAAI,IAApBga;MANF,SAOS,CAACgwD,IAPV;;MAQA,OAAOhwD,CAAP;IA1BmB;;IA6BrBiwD,aAAa;MACX,MAAMjwD,IAAI,KAAK+vD,UAAL,EAAV;MACA,OAAO/vD,IAAI,CAAJA,GAAQ,EAAEA,MAAM,CAAR,CAARA,GAAqBA,MAAM,CAAlC;IA/BmB;;IAkCrBkwD,QAAQrsE,GAAR,EAAa8jB,IAAb,EAAmB;MACjB9jB,IAAImb,GAAJnb,CAAQ,KAAK6b,MAAL,CAAYnB,QAAZ,CAAqB,KAAKM,GAA1B,EAA+B,KAAKA,GAAL,GAAW8I,IAAX,GAAkB,CAAjD,CAAR9jB;MACA,KAAKgb,GAAL,IAAY8I,OAAO,CAAnB;IApCmB;;IAuCrBwoD,cAActsE,GAAd,EAAmB8jB,IAAnB,EAAyB;MACvB,IAAIqoD,IAAJ;MACA,MAAMI,QAAQ,KAAKjpB,MAAnB;MACA,IAAIkpB,KAAK,CAAT;;MACA,GAAG;QACD,MAAMrqE,IAAI,KAAK8pE,QAAL,EAAV;;QACA,IAAI9pE,IAAI,CAAR,EAAW;UACT,MAAM,IAAI4X,iBAAJ,CAAgB,yBAAhB,CAAN;QAHD;;QAKDoyD,OAAO,EAAEhqE,IAAI,IAAN,CAAPgqE;QACAI,MAAMC,IAAN,IAAcrqE,IAAI,IAAlBoqE;MANF,SAOS,CAACJ,IAPV;;MAQA,IAAIzyE,IAAIoqB,IAAR;MAAA,IACEjI,SAAS,CADX;MAAA,IAEE4wD,aAAa,CAFf;;MAGA,OAAO/yE,KAAK,CAAZ,EAAe;QACb,OAAO+yE,aAAa,CAAbA,IAAkBF,MAAMzzE,MAANyzE,GAAe,CAAxC,EAA2C;UACzC1wD,UAAU0wD,MAAM,EAAEC,EAAR,KAAeC,UAAzB5wD;UACA4wD,cAAc,CAAdA;QAHW;;QAKbzsE,IAAItG,CAAJ,IAASmiB,SAAS,GAAlB7b;QACAtG;QACAmiB,WAAW,CAAXA;QACA4wD,cAAc,CAAdA;MAvBqB;IAvCJ;;IAkErBC,cAAc1sE,GAAd,EAAmB8jB,IAAnB,EAAyB;MACvB,KAAKwoD,aAAL,CAAmBtsE,GAAnB,EAAwB8jB,IAAxB;MACA,MAAM63C,OAAO37D,IAAI8jB,IAAJ,IAAY,CAAZ9jB,GAAgB,GAAhBA,GAAsB,CAAnC;MACA,IAAIge,IAAI,CAAR;;MACA,KAAK,IAAItkB,IAAI,CAAb,EAAgBA,KAAKoqB,IAArB,EAA2BpqB,GAA3B,EAAgC;QAC9BskB,IAAM,KAAI,CAAJ,KAAU,CAAV,GAAehe,IAAItG,CAAJ,CAArBskB;QACAhe,IAAItG,CAAJ,IAAUskB,KAAK,CAALA,GAAU29C,IAApB37D;MANqB;IAlEJ;;IA4ErB2sE,aAAa;MACX,MAAMC,MAAM,KAAKV,UAAL,EAAZ;MACA,IAAI5F,IAAI,EAAR;;MACA,KAAK,IAAI5sE,IAAI,CAAb,EAAgBA,IAAIkzE,GAApB,EAAyBlzE,GAAzB,EAA8B;QAC5B4sE,KAAKnsD,OAAOC,YAAPD,CAAoB,KAAK+xD,UAAL,EAApB/xD,CAALmsD;MAJS;;MAMX,OAAOA,CAAP;IAlFmB;;EAAA;;EAuFvB,MAAMkF,gBAAN,CAAuB;IACrB,MAAMppD,OAAN,CAAcxqB,IAAd,EAAoB0nE,IAApB,EAA0BuN,MAA1B,EAAkC;MAChC,MAAM7tE,SAAS,IAAIgtE,gBAAJ,CAAqBp0E,IAArB,CAAf;MACA,MAAMk1E,SAAS9tE,OAAOitE,QAAPjtE,EAAf;MACAsgE,KAAKrH,QAALqH,GAAgB,CAAC,EAAEwN,SAAS,CAAX,CAAjBxN;MAEA,IAAIM,UAAU,IAAd;MACA,MAAMz7D,QAAQ,IAAIrM,UAAJ,CAAeg0E,YAAf,CAAd;MACA,MAAMpkD,MAAM,IAAI5vB,UAAJ,CAAeg0E,YAAf,CAAZ;MACA,MAAM9qD,OAAO,IAAIlpB,UAAJ,CAAeg0E,YAAf,CAAb;MACA,MAAMvlC,WAAW,IAAIzuC,UAAJ,CAAeg0E,YAAf,CAAjB;MACA,MAAM/b,MAAM,IAAIj4D,UAAJ,CAAeg0E,YAAf,CAAZ;MACA,IAAIpuE,IAAJ;MAEA,IAAIyE,CAAJ;;MACA,OAAQ,KAAInD,OAAOitE,QAAPjtE,EAAJ,KAA0B,CAAlC,EAAqC;QACnC,MAAMwjB,OAAOrgB,KAAK,CAAlB;;QACA,IAAIqgB,SAAS,CAAb,EAAgB;UAEd,QAAQrgB,IAAI,IAAZ;YACE,KAAK,CAAL;cACEnD,OAAO2tE,UAAP3tE;cACA;;YACF,KAAK,CAAL;cACE4gE,UAAU5gE,OAAO2tE,UAAP3tE,EAAV4gE;cACA;UANJ;;UAQA;QAZiC;;QAcnC,MAAMmN,WAAW,CAAC,EAAE5qE,IAAI,IAAN,CAAlB;QACA,MAAM6qE,WAAW7qE,IAAI,EAArB;;QAEA,IAAI6qE,WAAW,CAAXA,GAAelB,YAAnB,EAAiC;UAC/B,MAAM,IAAI10E,KAAJ,CAAU,6CAAV,CAAN;QAlBiC;;QAqBnC,MAAM61E,eAAe,CAArB;QACA,MAAMC,gBAAgBluE,OAAOktE,UAAPltE,EAAtB;;QACA,QAAQwjB,IAAR;UACE,KAAK,CAAL;YACExjB,OAAOqtE,OAAPrtE,CAAemF,KAAfnF,EAAsBguE,QAAtBhuE;YACAA,OAAOstE,aAAPttE,CAAqB0oB,GAArB1oB,EAA0BguE,QAA1BhuE;YACA4sE,OAAOlkD,GAAP,EAAYvjB,KAAZ,EAAmB6oE,QAAnB;YACA1N,KAAK8K,iBAAL9K,CACE0N,WAAW,CADb1N,EAEEoM,SAASvnE,KAAT,EAAgB6oE,QAAhB,CAFF1N,EAGEoM,SAAShkD,GAAT,EAAcslD,QAAd,CAHF1N;;YAKA,KAAK,IAAI5lE,IAAI,CAAb,EAAgBA,IAAIwzE,aAApB,EAAmCxzE,GAAnC,EAAwC;cACtCmyE,OAAOnkD,GAAP,EAAYslD,QAAZ;cACAhuE,OAAOstE,aAAPttE,CAAqBmF,KAArBnF,EAA4BguE,QAA5BhuE;cACA4sE,OAAOznE,KAAP,EAAcujB,GAAd,EAAmBslD,QAAnB;cACAhuE,OAAOstE,aAAPttE,CAAqB0oB,GAArB1oB,EAA0BguE,QAA1BhuE;cACA4sE,OAAOlkD,GAAP,EAAYvjB,KAAZ,EAAmB6oE,QAAnB;cACA1N,KAAK8K,iBAAL9K,CACE0N,WAAW,CADb1N,EAEEoM,SAASvnE,KAAT,EAAgB6oE,QAAhB,CAFF1N,EAGEoM,SAAShkD,GAAT,EAAcslD,QAAd,CAHF1N;YAfJ;;YAqBE;;UACF,KAAK,CAAL;YACEtgE,OAAOqtE,OAAPrtE,CAAemF,KAAfnF,EAAsBguE,QAAtBhuE;YACAA,OAAOstE,aAAPttE,CAAqB0oB,GAArB1oB,EAA0BguE,QAA1BhuE;YACA4sE,OAAOlkD,GAAP,EAAYvjB,KAAZ,EAAmB6oE,QAAnB;YACAhuE,OAAOktE,UAAPltE;;YAEA,KAAK,IAAItF,IAAI,CAAb,EAAgBA,IAAIwzE,aAApB,EAAmCxzE,GAAnC,EAAwC;cACtCmyE,OAAOnkD,GAAP,EAAYslD,QAAZ;cACAhuE,OAAOstE,aAAPttE,CAAqBmF,KAArBnF,EAA4BguE,QAA5BhuE;cACA4sE,OAAOznE,KAAP,EAAcujB,GAAd,EAAmBslD,QAAnB;cACAhuE,OAAOstE,aAAPttE,CAAqB0oB,GAArB1oB,EAA0BguE,QAA1BhuE;cACA4sE,OAAOlkD,GAAP,EAAYvjB,KAAZ,EAAmB6oE,QAAnB;cACAhuE,OAAOktE,UAAPltE;YAZJ;;YAeE;;UACF,KAAK,CAAL;YACEA,OAAOqtE,OAAPrtE,CAAegiB,IAAfhiB,EAAqBguE,QAArBhuE;YACAtB,OAAOsB,OAAOktE,UAAPltE,EAAPtB;YACA4hE,KAAKuL,MAALvL,CAAYoM,SAAS1qD,IAAT,EAAegsD,QAAf,CAAZ1N,EAAsC5hE,IAAtC4hE;;YACA,KAAK,IAAI5lE,IAAI,CAAb,EAAgBA,IAAIwzE,aAApB,EAAmCxzE,GAAnC,EAAwC;cACtCmyE,OAAO7qD,IAAP,EAAagsD,QAAb;;cACA,IAAI,CAACD,QAAL,EAAe;gBACb/tE,OAAOstE,aAAPttE,CAAqB+wD,GAArB/wD,EAA0BguE,QAA1BhuE;gBACA4sE,OAAO5qD,IAAP,EAAa+uC,GAAb,EAAkBid,QAAlB;cAJoC;;cAMtCtvE,OAAOsB,OAAOotE,UAAPptE,MAAuBtB,OAAO,CAA9BsB,CAAPtB;cACA4hE,KAAKuL,MAALvL,CAAYoM,SAAS1qD,IAAT,EAAegsD,QAAf,CAAZ1N,EAAsC5hE,IAAtC4hE;YAXJ;;YAaE;;UACF,KAAK,CAAL;YACEtgE,OAAOqtE,OAAPrtE,CAAemF,KAAfnF,EAAsBguE,QAAtBhuE;YACAA,OAAOstE,aAAPttE,CAAqB0oB,GAArB1oB,EAA0BguE,QAA1BhuE;YACA4sE,OAAOlkD,GAAP,EAAYvjB,KAAZ,EAAmB6oE,QAAnB;YACAtvE,OAAOsB,OAAOktE,UAAPltE,EAAPtB;YACA4hE,KAAKiL,WAALjL,CACEoM,SAASvnE,KAAT,EAAgB6oE,QAAhB,CADF1N,EAEEoM,SAAShkD,GAAT,EAAcslD,QAAd,CAFF1N,EAGE5hE,IAHF4hE;;YAKA,KAAK,IAAI5lE,IAAI,CAAb,EAAgBA,IAAIwzE,aAApB,EAAmCxzE,GAAnC,EAAwC;cACtCmyE,OAAOnkD,GAAP,EAAYslD,QAAZ;;cACA,IAAI,CAACD,QAAL,EAAe;gBACb/tE,OAAOstE,aAAPttE,CAAqBmF,KAArBnF,EAA4BguE,QAA5BhuE;gBACA4sE,OAAOznE,KAAP,EAAcujB,GAAd,EAAmBslD,QAAnB;cAFF,OAGO;gBACL7oE,MAAMgX,GAANhX,CAAUujB,GAAVvjB;cANoC;;cAQtCnF,OAAOstE,aAAPttE,CAAqB0oB,GAArB1oB,EAA0BguE,QAA1BhuE;cACA4sE,OAAOlkD,GAAP,EAAYvjB,KAAZ,EAAmB6oE,QAAnB;cACAtvE,OAAOsB,OAAOktE,UAAPltE,EAAPtB;cACA4hE,KAAKiL,WAALjL,CACEoM,SAASvnE,KAAT,EAAgB6oE,QAAhB,CADF1N,EAEEoM,SAAShkD,GAAT,EAAcslD,QAAd,CAFF1N,EAGE5hE,IAHF4hE;YArBJ;;YA2BE;;UACF,KAAK,CAAL;YACEtgE,OAAOqtE,OAAPrtE,CAAegiB,IAAfhiB,EAAqBiuE,YAArBjuE;YACAA,OAAOqtE,OAAPrtE,CAAeunC,QAAfvnC,EAAyBguE,QAAzBhuE;YACAsgE,KAAKuL,MAALvL,CACEoM,SAAS1qD,IAAT,EAAeisD,YAAf,CADF3N,EAEEqM,SAASplC,QAAT,EAAmBymC,QAAnB,CAFF1N;;YAIA,KAAK,IAAI5lE,IAAI,CAAb,EAAgBA,IAAIwzE,aAApB,EAAmCxzE,GAAnC,EAAwC;cACtCmyE,OAAO7qD,IAAP,EAAaisD,YAAb;;cACA,IAAI,CAACF,QAAL,EAAe;gBACb/tE,OAAOstE,aAAPttE,CAAqB+wD,GAArB/wD,EAA0BiuE,YAA1BjuE;gBACA4sE,OAAO5qD,IAAP,EAAa+uC,GAAb,EAAkBkd,YAAlB;cAJoC;;cAMtCpB,OAAOtlC,QAAP,EAAiBymC,QAAjB;cACAhuE,OAAO0tE,aAAP1tE,CAAqB+wD,GAArB/wD,EAA0BguE,QAA1BhuE;cACA4sE,OAAOrlC,QAAP,EAAiBwpB,GAAjB,EAAsBid,QAAtB;cACA1N,KAAKuL,MAALvL,CACEoM,SAAS1qD,IAAT,EAAeisD,YAAf,CADF3N,EAEEqM,SAASplC,QAAT,EAAmBymC,QAAnB,CAFF1N;YAhBJ;;YAqBE;;UACF,KAAK,CAAL;YACEtgE,OAAOqtE,OAAPrtE,CAAemF,KAAfnF,EAAsBiuE,YAAtBjuE;YACAA,OAAOstE,aAAPttE,CAAqB0oB,GAArB1oB,EAA0BiuE,YAA1BjuE;YACA4sE,OAAOlkD,GAAP,EAAYvjB,KAAZ,EAAmB8oE,YAAnB;YACAjuE,OAAOqtE,OAAPrtE,CAAeunC,QAAfvnC,EAAyBguE,QAAzBhuE;YACAsgE,KAAKmL,UAALnL,CACEoM,SAASvnE,KAAT,EAAgB8oE,YAAhB,CADF3N,EAEEoM,SAAShkD,GAAT,EAAculD,YAAd,CAFF3N,EAGEqM,SAASplC,QAAT,EAAmBymC,QAAnB,CAHF1N;;YAKA,KAAK,IAAI5lE,IAAI,CAAb,EAAgBA,IAAIwzE,aAApB,EAAmCxzE,GAAnC,EAAwC;cACtCmyE,OAAOnkD,GAAP,EAAYulD,YAAZ;;cACA,IAAI,CAACF,QAAL,EAAe;gBACb/tE,OAAOstE,aAAPttE,CAAqBmF,KAArBnF,EAA4BiuE,YAA5BjuE;gBACA4sE,OAAOznE,KAAP,EAAcujB,GAAd,EAAmBulD,YAAnB;cAFF,OAGO;gBACL9oE,MAAMgX,GAANhX,CAAUujB,GAAVvjB;cANoC;;cAQtCnF,OAAOstE,aAAPttE,CAAqB0oB,GAArB1oB,EAA0BiuE,YAA1BjuE;cACA4sE,OAAOlkD,GAAP,EAAYvjB,KAAZ,EAAmB8oE,YAAnB;cACAjuE,OAAOqtE,OAAPrtE,CAAeunC,QAAfvnC,EAAyBguE,QAAzBhuE;cACAsgE,KAAKmL,UAALnL,CACEoM,SAASvnE,KAAT,EAAgB8oE,YAAhB,CADF3N,EAEEoM,SAAShkD,GAAT,EAAculD,YAAd,CAFF3N,EAGEqM,SAASplC,QAAT,EAAmBymC,QAAnB,CAHF1N;YArBJ;;YA2BE;;UACF;YACE,MAAM,IAAIloE,KAAJ,CAAW,4CAA2CorB,IAA5C,EAAV,CAAN;QApIJ;MArC8B;;MA6KhC,IAAIo9C,OAAJ,EAAa;QACX,OAAOiN,OAAOjN,OAAP,CAAP;MA9K8B;;MAgLhC,OAAON,IAAP;IAjLmB;;EAAA;;EAqLvB,OAAOkM,gBAAP;AAtTuB,CAAC,EAA1B;;AAyTA,MAAM7L,cAAe,SAASwN,kBAAT,GAA8B;EACjD,SAASC,QAAT,CAAkBxyD,GAAlB,EAAuB;IACrB,IAAI1Y,IAAI,CAAR;;IACA,KAAK,IAAIxI,IAAI,CAAb,EAAgBA,IAAIkhB,IAAI9hB,MAAxB,EAAgCY,GAAhC,EAAqC;MACnCwI,IAAKA,KAAK,CAALA,GAAU0Y,IAAIC,UAAJD,CAAelhB,CAAfkhB,CAAf1Y;IAHmB;;IAKrB,OAAOA,MAAM,CAAb;EAN+C;;EASjD,SAASmrE,YAAT,CAAsBj0D,GAAtB,EAA2B;IACzB,IAAI,OAAOA,GAAP,KAAe,QAAnB,EAA6B;MAC3B,MAAM,IAAIW,iBAAJ,CAAgB,kCAAhB,CAAN;IAFuB;EATsB;;EAejD,SAASuzD,SAAT,CAAmBl0D,GAAnB,EAAwB;IACtB,IAAI,CAACvB,OAAOC,SAAPD,CAAiBuB,GAAjBvB,CAAL,EAA4B;MAC1B,MAAM,IAAIkC,iBAAJ,CAAgB,+BAAhB,CAAN;IAFoB;EAfyB;;EAqBjD,SAASwzD,WAAT,CAAqBjO,IAArB,EAA2BiK,KAA3B,EAAkC;IAChC,OAAO,IAAP,EAAa;MACX,IAAInwD,MAAMmwD,MAAMI,MAANJ,EAAV;;MACA,IAAInwD,QAAQuJ,eAAZ,EAAiB;QACf;MAHS;;MAKX,IAAI4D,uBAAMnN,GAANmN,EAAW,WAAXA,CAAJ,EAA6B;QAC3B;MANS;;MAQX8mD,aAAaj0D,GAAb;MACA,MAAMulC,MAAMyuB,SAASh0D,GAAT,CAAZ;MACAA,MAAMmwD,MAAMI,MAANJ,EAANnwD;MAEAi0D,aAAaj0D,GAAb;MACA,MAAM0xD,MAAM1xD,GAAZ;MACAkmD,KAAKuL,MAALvL,CAAY3gB,GAAZ2gB,EAAiBwL,GAAjBxL;IAf8B;EArBe;;EAwCjD,SAASkO,YAAT,CAAsBlO,IAAtB,EAA4BiK,KAA5B,EAAmC;IACjC,OAAO,IAAP,EAAa;MACX,IAAInwD,MAAMmwD,MAAMI,MAANJ,EAAV;;MACA,IAAInwD,QAAQuJ,eAAZ,EAAiB;QACf;MAHS;;MAKX,IAAI4D,uBAAMnN,GAANmN,EAAW,YAAXA,CAAJ,EAA8B;QAC5B;MANS;;MAQX8mD,aAAaj0D,GAAb;MACA,MAAMixD,MAAM+C,SAASh0D,GAAT,CAAZ;MACAA,MAAMmwD,MAAMI,MAANJ,EAANnwD;MACAi0D,aAAaj0D,GAAb;MACA,MAAMkxD,OAAO8C,SAASh0D,GAAT,CAAb;MACAA,MAAMmwD,MAAMI,MAANJ,EAANnwD;;MACA,IAAIvB,OAAOC,SAAPD,CAAiBuB,GAAjBvB,KAAyB,OAAOuB,GAAP,KAAe,QAA5C,EAAsD;QACpD,MAAMoxD,SAAS3yD,OAAOC,SAAPD,CAAiBuB,GAAjBvB,IAAwBsC,OAAOC,YAAPD,CAAoBf,GAApBe,CAAxBtC,GAAmDuB,GAAlE;QACAkmD,KAAKmL,UAALnL,CAAgB+K,GAAhB/K,EAAqBgL,IAArBhL,EAA2BkL,MAA3BlL;MAFF,OAGO,IAAI/4C,uBAAMnN,GAANmN,EAAW,GAAXA,CAAJ,EAAqB;QAC1BnN,MAAMmwD,MAAMI,MAANJ,EAANnwD;QACA,MAAM02B,QAAQ,EAAd;;QACA,OAAO,CAACvpB,uBAAMnN,GAANmN,EAAW,GAAXA,CAAD,IAAoBnN,QAAQuJ,eAAnC,EAAwC;UACtCmtB,MAAMj3C,IAANi3C,CAAW12B,GAAX02B;UACA12B,MAAMmwD,MAAMI,MAANJ,EAANnwD;QALwB;;QAO1BkmD,KAAKsL,iBAALtL,CAAuB+K,GAAvB/K,EAA4BgL,IAA5BhL,EAAkCxvB,KAAlCwvB;MAPK,OAQA;QACL;MA1BS;IADoB;;IA8BjC,MAAM,IAAIvlD,iBAAJ,CAAgB,mBAAhB,CAAN;EAtE+C;;EAyEjD,SAAS0zD,YAAT,CAAsBnO,IAAtB,EAA4BiK,KAA5B,EAAmC;IACjC,OAAO,IAAP,EAAa;MACX,IAAInwD,MAAMmwD,MAAMI,MAANJ,EAAV;;MACA,IAAInwD,QAAQuJ,eAAZ,EAAiB;QACf;MAHS;;MAKX,IAAI4D,uBAAMnN,GAANmN,EAAW,YAAXA,CAAJ,EAA8B;QAC5B;MANS;;MAQX8mD,aAAaj0D,GAAb;MACA,MAAMulC,MAAMyuB,SAASh0D,GAAT,CAAZ;MACAA,MAAMmwD,MAAMI,MAANJ,EAANnwD;MACAk0D,UAAUl0D,GAAV;MACA,MAAM0xD,MAAM1xD,GAAZ;MACAkmD,KAAKuL,MAALvL,CAAY3gB,GAAZ2gB,EAAiBwL,GAAjBxL;IAd+B;EAzEc;;EA2FjD,SAASoO,aAAT,CAAuBpO,IAAvB,EAA6BiK,KAA7B,EAAoC;IAClC,OAAO,IAAP,EAAa;MACX,IAAInwD,MAAMmwD,MAAMI,MAANJ,EAAV;;MACA,IAAInwD,QAAQuJ,eAAZ,EAAiB;QACf;MAHS;;MAKX,IAAI4D,uBAAMnN,GAANmN,EAAW,aAAXA,CAAJ,EAA+B;QAC7B;MANS;;MAQX8mD,aAAaj0D,GAAb;MACA,MAAMixD,MAAM+C,SAASh0D,GAAT,CAAZ;MACAA,MAAMmwD,MAAMI,MAANJ,EAANnwD;MACAi0D,aAAaj0D,GAAb;MACA,MAAMkxD,OAAO8C,SAASh0D,GAAT,CAAb;MACAA,MAAMmwD,MAAMI,MAANJ,EAANnwD;MACAk0D,UAAUl0D,GAAV;MACA,MAAMoxD,SAASpxD,GAAf;MACAkmD,KAAKiL,WAALjL,CAAiB+K,GAAjB/K,EAAsBgL,IAAtBhL,EAA4BkL,MAA5BlL;IAjBgC;EA3Fa;;EAgHjD,SAASqO,mBAAT,CAA6BrO,IAA7B,EAAmCiK,KAAnC,EAA0C;IACxC,OAAO,IAAP,EAAa;MACX,IAAInwD,MAAMmwD,MAAMI,MAANJ,EAAV;;MACA,IAAInwD,QAAQuJ,eAAZ,EAAiB;QACf;MAHS;;MAKX,IAAI4D,uBAAMnN,GAANmN,EAAW,mBAAXA,CAAJ,EAAqC;QACnC;MANS;;MAQX,IAAI,OAAOnN,GAAP,KAAe,QAAnB,EAA6B;QAC3B;MATS;;MAWX,MAAMixD,MAAM+C,SAASh0D,GAAT,CAAZ;MACAA,MAAMmwD,MAAMI,MAANJ,EAANnwD;;MACA,IAAI,OAAOA,GAAP,KAAe,QAAnB,EAA6B;QAC3B;MAdS;;MAgBX,MAAMkxD,OAAO8C,SAASh0D,GAAT,CAAb;MACAkmD,KAAK8K,iBAAL9K,CAAuBlmD,IAAItgB,MAA3BwmE,EAAmC+K,GAAnC/K,EAAwCgL,IAAxChL;IAlBsC;;IAoBxC,MAAM,IAAIvlD,iBAAJ,CAAgB,0BAAhB,CAAN;EApI+C;;EAuIjD,SAAS6zD,UAAT,CAAoBtO,IAApB,EAA0BiK,KAA1B,EAAiC;IAC/B,MAAMnwD,MAAMmwD,MAAMI,MAANJ,EAAZ;;IACA,IAAI1xD,OAAOC,SAAPD,CAAiBuB,GAAjBvB,CAAJ,EAA2B;MACzBynD,KAAKrH,QAALqH,GAAgB,CAAC,CAAClmD,GAAlBkmD;IAH6B;EAvIgB;;EA8IjD,SAASuO,aAAT,CAAuBvO,IAAvB,EAA6BiK,KAA7B,EAAoC;IAClC,MAAMnwD,MAAMmwD,MAAMI,MAANJ,EAAZ;;IACA,IAAInwD,eAAewJ,gBAAnB,EAAyB;MACvB08C,KAAK5oE,IAAL4oE,GAAYlmD,IAAI1iB,IAAhB4oE;IAHgC;EA9Ia;;EAqJjD,eAAewO,SAAf,CAAyBxO,IAAzB,EAA+BiK,KAA/B,EAAsCxe,gBAAtC,EAAwD6U,OAAxD,EAAiE;IAC/D,IAAImO,QAAJ,EAAcC,eAAd;;IACAC,SAAS,OAAO,IAAP,EAAa;MACpB,IAAI;QACF,MAAM70D,MAAMmwD,MAAMI,MAANJ,EAAZ;;QACA,IAAInwD,QAAQuJ,eAAZ,EAAiB;UACf;QADF,OAEO,IAAIvJ,eAAewJ,gBAAnB,EAAyB;UAC9B,IAAIxJ,IAAI1iB,IAAJ0iB,KAAa,OAAjB,EAA0B;YACxBw0D,WAAWtO,IAAX,EAAiBiK,KAAjB;UADF,OAEO,IAAInwD,IAAI1iB,IAAJ0iB,KAAa,UAAjB,EAA6B;YAClCy0D,cAAcvO,IAAd,EAAoBiK,KAApB;UAJ4B;;UAM9BwE,WAAW30D,GAAX20D;QANK,OAOA,IAAI30D,eAAe6J,eAAnB,EAAwB;UAC7B,QAAQ7J,IAAIgK,GAAZ;YACE,KAAK,SAAL;cACE;;YACF,KAAK,SAAL;cACE,IAAI2qD,oBAAoBnrD,gBAAxB,EAA8B;gBAC5BorD,kBAAkBD,SAASr3E,IAA3Bs3E;cAFJ;;cAIE;;YACF,KAAK,qBAAL;cACEL,oBAAoBrO,IAApB,EAA0BiK,KAA1B;cACA;;YACF,KAAK,aAAL;cACEgE,YAAYjO,IAAZ,EAAkBiK,KAAlB;cACA;;YACF,KAAK,cAAL;cACEkE,aAAanO,IAAb,EAAmBiK,KAAnB;cACA;;YACF,KAAK,cAAL;cACEiE,aAAalO,IAAb,EAAmBiK,KAAnB;cACA;;YACF,KAAK,eAAL;cACEmE,cAAcpO,IAAd,EAAoBiK,KAApB;cACA;UAtBJ;QAZA;MAAJ,EAqCE,OAAOnuE,EAAP,EAAW;QACX,IAAIA,cAAc8sB,gCAAlB,EAAwC;UACtC,MAAM9sB,EAAN;QAFS;;QAIXoB,gBAAK,wBAAwBpB,EAA7BoB;QACA;MA3CkB;IAFyC;;IAiD/D,IAAI,CAACojE,OAAD,IAAYoO,eAAhB,EAAiC;MAG/BpO,UAAUoO,eAAVpO;IApD6D;;IAsD/D,IAAIA,OAAJ,EAAa;MACX,OAAOsO,WAAW5O,IAAX,EAAiBvU,gBAAjB,EAAmC6U,OAAnC,CAAP;IAvD6D;;IAyD/D,OAAON,IAAP;EA9M+C;;EAiNjD,eAAe4O,UAAf,CAA0B5O,IAA1B,EAAgCvU,gBAAhC,EAAkD6U,OAAlD,EAA2D;IACzDN,KAAKM,OAALN,GAAe,MAAM6O,kBAAkBvO,OAAlB,EAA2B7U,gBAA3B,CAArBuU;;IAGA,IAAIA,KAAK6K,kBAAL7K,KAA4B,CAAhC,EAAmC;MACjC,MAAM8O,qBAAqB9O,KAAKM,OAALN,CAAa4K,eAAxC;;MACA,KAAK,IAAIxwE,IAAI,CAAb,EAAgBA,IAAI00E,mBAAmBt1E,MAAvC,EAA+CY,GAA/C,EAAoD;QAClD4lE,KAAK4K,eAAL5K,CAAqB5lE,CAArB4lE,IAA0B8O,mBAAmB10E,CAAnB,EAAsB8jB,KAAtB4wD,EAA1B9O;MAH+B;;MAKjCA,KAAK6K,kBAAL7K,GAA0BA,KAAKM,OAALN,CAAa6K,kBAAvC7K;IATuD;;IAazDA,KAAKM,OAALN,CAAan8D,OAAbm8D,CAAqB,UAAUl8D,GAAV,EAAezG,KAAf,EAAsB;MACzC,IAAI,CAAC2iE,KAAKyL,QAALzL,CAAcl8D,GAAdk8D,CAAL,EAAyB;QACvBA,KAAKuL,MAALvL,CAAYl8D,GAAZk8D,EAAiBA,KAAKM,OAALN,CAAa7yC,MAAb6yC,CAAoBl8D,GAApBk8D,CAAjBA;MAFuC;IAA3C;IAMA,OAAOA,IAAP;EApO+C;;EAuOjD,eAAe6O,iBAAf,CAAiCz3E,IAAjC,EAAuCq0D,gBAAvC,EAAyD;IACvD,IAAIr0D,SAAS,YAAb,EAA2B;MACzB,OAAO,IAAI8oE,YAAJ,CAAiB,KAAjB,EAAwB,CAAxB,CAAP;IADF,OAEO,IAAI9oE,SAAS,YAAb,EAA2B;MAChC,OAAO,IAAI8oE,YAAJ,CAAiB,IAAjB,EAAuB,CAAvB,CAAP;IAJqD;;IAMvD,IAAI,CAACuK,eAAej+C,QAAfi+C,CAAwBrzE,IAAxBqzE,CAAL,EAAoC;MAClC,MAAM,IAAI3yE,KAAJ,CAAU,wBAAwBV,IAAlC,CAAN;IAPqD;;IASvD,IAAI,CAACq0D,gBAAL,EAAuB;MACrB,MAAM,IAAI3zD,KAAJ,CAAU,4CAAV,CAAN;IAVqD;;IAavD,MAAM;MAAE60D,QAAF;MAAYC;IAAZ,IAAgC,MAAMnB,iBAAiBr0D,IAAjB,CAA5C;IACA,MAAM4oE,OAAO,IAAI2K,IAAJ,CAAS,IAAT,CAAb;;IAEA,IAAI/d,oBAAoB97C,0BAAoBC,MAA5C,EAAoD;MAClD,OAAO,IAAIm7D,gBAAJ,GAAuBppD,OAAvB,CAA+B6pC,QAA/B,EAAyCqT,IAAzC,EAA+CM,WAAW;QAC/D,OAAOsO,WAAW5O,IAAX,EAAiBvU,gBAAjB,EAAmC6U,OAAnC,CAAP;MADK,EAAP;IAjBqD;;IAqBvD,IAAI1T,oBAAoB97C,0BAAoBrF,IAA5C,EAAkD;MAChD,MAAMw+D,QAAQ,IAAIC,aAAJ,CAAU,IAAI7hD,cAAJ,CAAWskC,QAAX,CAAV,CAAd;MACA,OAAO6hB,UAAUxO,IAAV,EAAgBiK,KAAhB,EAAuBxe,gBAAvB,EAAyC,IAAzC,CAAP;IAvBqD;;IAyBvD,MAAM,IAAI3zD,KAAJ,CACJ,iEADI,CAAN;EAhQ+C;;EAqQjD,OAAO;IACL,MAAM2L,MAAN,CAAagqC,MAAb,EAAqB;MACnB,MAAM3sB,WAAW2sB,OAAO3sB,QAAxB;MACA,MAAM2qC,mBAAmBhe,OAAOge,gBAAhC;MACA,MAAM6U,UAAU7yB,OAAO6yB,OAAvB;;MAEA,IAAIx/C,oBAAoBwC,gBAAxB,EAA8B;QAC5B,OAAOurD,kBAAkB/tD,SAAS1pB,IAA3B,EAAiCq0D,gBAAjC,CAAP;MADF,OAEO,IAAI3qC,oBAAoBiP,uBAAxB,EAAoC;QACzC,MAAMg/C,aAAa,MAAMP,UACV,IAAI7D,IAAJ,EADU,EAET,IAAIT,aAAJ,CAAUppD,QAAV,CAFS,EAGvB2qC,gBAHuB,EAIvB6U,OAJuB,CAAzB;;QAOA,IAAIyO,WAAW9C,cAAf,EAA+B;UAC7B,OAAO4C,kBAAkBE,WAAW33E,IAA7B,EAAmCq0D,gBAAnC,CAAP;QATuC;;QAWzC,OAAOsjB,UAAP;MAlBiB;;MAoBnB,MAAM,IAAIj3E,KAAJ,CAAU,oBAAV,CAAN;IArBG;;EAAA,CAAP;AArQkB,CAAC,EAArB;;;;;;;;;;;;;;;ACvuBA;;AAQA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,MAAMk3E,sBAAsB,IAA5B;AACA,MAAMC,qBAAqB,IAA3B;;AAEA,SAASC,cAAT,CAAwBvvE,KAAxB,EAA+B;EAC7B,MAAMwvE,cAAcxvE,MAAMnG,MAA1B;EAUA,IAAIoJ,IAAI,CAAR;EAAA,IACEC,IAAI,CADN;;EAEA,KAAK,IAAIzI,IAAI,CAAb,EAAgBA,IAAI+0E,WAApB,EAAiC,EAAE/0E,CAAnC,EAAsC;IAEpCwI,KAAKjD,MAAMvF,CAAN,IAAW,IAAhBwI;IACAC,KAAKD,CAALC;EAhB2B;;EAkB7B,OAAQA,IAAI,KAAJA,IAAa,EAAbA,GAAmBD,IAAI,KAA/B;AA9DF;;AAiEA,MAAMonE,MAAN,CAAa;EACX7yE,YAAY;IAAE8yE,KAAF;IAAS7nE,IAAT;IAAegtE,eAAe,KAA9B;IAAqC50E,eAAe;EAApD,CAAZ,EAAyE;IACvE,KAAKyvE,KAAL,GAAaA,KAAb;IACA,KAAK7nE,IAAL,GAAYA,IAAZ;IACA,KAAKgtE,YAAL,GAAoBA,YAApB;IACA,KAAK50E,YAAL,GAAoBA,YAApB;IAEA,KAAK60E,UAAL,GAAkB7rE,OAAOC,MAAPD,CAAc,IAAdA,CAAlB;IACA,KAAK8rE,MAAL;EARS;;EAWXA,SAAS;IACP,KAAKC,IAAL,GAAY,KAAKtF,KAAL,CAAWI,MAAX,EAAZ;IACA,KAAKmF,IAAL,GAAY,KAAKvF,KAAL,CAAWI,MAAX,EAAZ;EAbS;;EAgBX9xB,QAAQ;IACN,IAAI,KAAKi3B,IAAL,YAAqB7rD,eAArB,IAA4B,KAAK6rD,IAAL,CAAU1rD,GAAV,KAAkB,IAAlD,EAAwD;MACtD,KAAKyrD,IAAL,GAAY,KAAKC,IAAjB;MACA,KAAKA,IAAL,GAAY,IAAZ;IAFF,OAGO;MACL,KAAKD,IAAL,GAAY,KAAKC,IAAjB;MACA,KAAKA,IAAL,GAAY,KAAKvF,KAAL,CAAWI,MAAX,EAAZ;IANI;EAhBG;;EA0BXoF,WAAW;IACT,IAAI;MACF,KAAKl3B,KAAL;MACA,OAAO,IAAP;IAFF,EAGE,OAAO36C,CAAP,EAAU;MACV,IAAIA,aAAagrB,gCAAjB,EAAuC;QACrC,MAAMhrB,CAAN;MAFQ;;MAMV,OAAO,KAAP;IAVO;EA1BA;;EAwCXysE,OAAOqF,kBAAkB,IAAzB,EAA+B;IAC7B,MAAMH,OAAO,KAAKA,IAAlB;IACA,KAAKh3B,KAAL;;IAEA,IAAIg3B,gBAAgB5rD,eAApB,EAAyB;MACvB,QAAQ4rD,KAAKzrD,GAAb;QACE,KAAK,IAAL;UACE,OAAO,KAAK6rD,eAAL,CAAqBD,eAArB,CAAP;;QACF,KAAK,GAAL;UACE,MAAMl/B,QAAQ,EAAd;;UACA,OAAO,CAACvpB,uBAAM,KAAKsoD,IAAXtoD,EAAiB,GAAjBA,CAAD,IAA0B,KAAKsoD,IAAL,KAAclsD,eAA/C,EAAoD;YAClDmtB,MAAMj3C,IAANi3C,CAAW,KAAK65B,MAAL,CAAYqF,eAAZ,CAAXl/B;UAHJ;;UAKE,IAAI,KAAK++B,IAAL,KAAclsD,eAAlB,EAAuB;YACrB,IAAI,KAAK7oB,YAAT,EAAuB;cACrB,OAAOg2C,KAAP;YAFmB;;YAIrB,MAAM,IAAInjB,8BAAJ,CAAuB,2BAAvB,CAAN;UATJ;;UAWE,KAAKkrB,KAAL;UACA,OAAO/H,KAAP;;QACF,KAAK,IAAL;UACE,MAAM3qB,OAAO,IAAI7iB,gBAAJ,CAAS,KAAKZ,IAAd,CAAb;;UACA,OAAO,CAAC6kB,uBAAM,KAAKsoD,IAAXtoD,EAAiB,IAAjBA,CAAD,IAA2B,KAAKsoD,IAAL,KAAclsD,eAAhD,EAAqD;YACnD,IAAI,EAAE,KAAKksD,IAAL,YAAqBjsD,gBAAvB,CAAJ,EAAkC;cAChCjf,gBAAK,iDAALA;cACA,KAAKk0C,KAAL;cACA;YAJiD;;YAOnD,MAAMz0C,MAAM,KAAKyrE,IAAL,CAAUn4E,IAAtB;YACA,KAAKmhD,KAAL;;YACA,IAAI,KAAKg3B,IAAL,KAAclsD,eAAlB,EAAuB;cACrB;YAViD;;YAYnDwC,KAAKhK,GAALgK,CAAS/hB,GAAT+hB,EAAc,KAAKwkD,MAAL,CAAYqF,eAAZ,CAAd7pD;UAdJ;;UAgBE,IAAI,KAAK0pD,IAAL,KAAclsD,eAAlB,EAAuB;YACrB,IAAI,KAAK7oB,YAAT,EAAuB;cACrB,OAAOqrB,IAAP;YAFmB;;YAIrB,MAAM,IAAIwH,8BAAJ,CAAuB,gCAAvB,CAAN;UApBJ;;UAyBE,IAAIpG,uBAAM,KAAKuoD,IAAXvoD,EAAiB,QAAjBA,CAAJ,EAAgC;YAC9B,OAAO,KAAKmoD,YAAL,GACH,KAAKQ,UAAL,CAAgB/pD,IAAhB,EAAsB6pD,eAAtB,CADG,GAEH7pD,IAFJ;UA1BJ;;UA8BE,KAAK0yB,KAAL;UACA,OAAO1yB,IAAP;;QACF;UACE,OAAO0pD,IAAP;MAjDJ;IAL2B;;IA0D7B,IAAIh3D,OAAOC,SAAPD,CAAiBg3D,IAAjBh3D,CAAJ,EAA4B;MAE1B,IAAIA,OAAOC,SAAPD,CAAiB,KAAKg3D,IAAtBh3D,KAA+B0O,uBAAM,KAAKuoD,IAAXvoD,EAAiB,GAAjBA,CAAnC,EAA0D;QACxD,MAAM9mB,MAAMK,gBAAIC,GAAJD,CAAQ+uE,IAAR/uE,EAAc,KAAK+uE,IAAnB/uE,CAAZ;;QACA,KAAK+3C,KAAL;QACA,KAAKA,KAAL;QACA,OAAOp4C,GAAP;MANwB;;MAQ1B,OAAOovE,IAAP;IAlE2B;;IAqE7B,IAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;MAC5B,IAAIG,eAAJ,EAAqB;QACnB,OAAOA,gBAAgBG,aAAhBH,CAA8BH,IAA9BG,CAAP;MAF0B;;MAI5B,OAAOH,IAAP;IAzE2B;;IA6E7B,OAAOA,IAAP;EArHS;;EA4HXO,2BAA2BpwE,MAA3B,EAAmC;IACjC,MAAMqO,IAAI,IAAV;IAAA,MACEgiE,IAAI,IADN;IAAA,MAEEC,QAAQ,IAFV;IAAA,MAGEC,KAAK,GAHP;IAAA,MAIEC,KAAK,GAJP;IAAA,MAKEC,MAAM,GALR;IAMA,MAAMlG,QAAQ,KAAKA,KAAnB;IAAA,MACEmG,WAAW1wE,OAAOgc,GADpB;IAAA,MAEEmB,IAAI,EAFN;IAGA,IAAIigC,QAAQ,CAAZ;IAAA,IACE9tB,EADF;IAAA,IAEEqhD,UAFF;;IAGA,OAAQ,MAAK3wE,OAAO4qB,OAAP5qB,EAAL,MAA2B,CAAC,CAApC,EAAuC;MACrC,IAAIo9C,UAAU,CAAd,EAAiB;QACfA,QAAQ9tB,OAAOjhB,CAAPihB,GAAW,CAAXA,GAAe,CAAvB8tB;MADF,OAEO,IAAIA,UAAU,CAAd,EAAiB;QACtBA,QAAQ9tB,OAAO+gD,CAAP/gD,GAAW,CAAXA,GAAe,CAAvB8tB;MADK,OAEA;QACLjkC,kBAAOikC,UAAU,CAAjBjkC,EAAoB,6CAApBA;;QACA,IAAImW,OAAOghD,KAAPhhD,IAAgBA,OAAOihD,EAAvBjhD,IAA6BA,OAAOkhD,EAAxC,EAA4C;UAC1CG,aAAa3wE,OAAOgc,GAApB20D;UAEA,MAAMC,iBAAiB5wE,OAAO2yB,SAAP3yB,CAAiBmd,CAAjBnd,CAAvB;;UACA,KAAK,IAAItF,IAAI,CAAR,EAAWiJ,KAAKitE,eAAe92E,MAApC,EAA4CY,IAAIiJ,EAAhD,EAAoDjJ,GAApD,EAAyD;YACvD40B,KAAKshD,eAAel2E,CAAf,CAAL40B;;YACA,IAAIA,OAAOmhD,GAAPnhD,IAAcshD,eAAel2E,IAAI,CAAnB,MAA0B+1E,GAA5C,EAAiD;cAW/C;YAbqD;;YAevD,IAAInhD,OAAOihD,EAAPjhD,IAAaA,OAAOkhD,EAApBlhD,KAA2BA,KAAKghD,KAALhhD,IAAcA,KAAK,IAA9CA,CAAJ,EAAyD;cAGvD8tB,QAAQ,CAARA;cACA;YAnBqD;UAJf;;UA2B1C,IAAIA,UAAU,CAAd,EAAiB;YACf;UA5BwC;;UAgC1C,IAAImtB,MAAMsG,aAAV,EAAyB;YACvB,MAAMC,UAAUvG,MAAMwG,OAANxG,EAAhB;;YACA,IAAIuG,mBAAmB7sD,eAAnB6sD,IAA0B,CAACvG,MAAMsG,aAANtG,CAAoBuG,QAAQ1sD,GAA5BmmD,CAA/B,EAAiE;cAG/DntB,QAAQ,CAARA;YALqB;UAAzB,OAOO;YACL5/C,gBACE,kEADFA;UAxCwC;;UA6C1C,IAAI4/C,UAAU,CAAd,EAAiB;YACf;UA9CwC;QAA5C,OAgDO;UACLA,QAAQ,CAARA;QAnDG;MAL8B;IAbN;;IA0EjC,IAAI9tB,OAAO,CAAC,CAAZ,EAAe;MACb9xB,gBACE,iCACE,iEAFJA;;MAIA,IAAImzE,UAAJ,EAAgB;QACdnzE,gBAAK,0DAALA;QACAwC,OAAOkzB,IAAPlzB,CAAY,EAAEA,OAAOgc,GAAPhc,GAAa2wE,UAAf,CAAZ3wE;MAPW;IA1EkB;;IAqFjC,IAAIgxE,YAAY,CAAhB;IACAhxE,OAAOkzB,IAAPlzB,CAAY,CAACgxE,SAAbhxE;IACAsvB,KAAKtvB,OAAOyyB,QAAPzyB,EAALsvB;IACAtvB,OAAOkzB,IAAPlzB,CAAYgxE,SAAZhxE;;IAIA,IAAI,CAACqvB,8BAAaC,EAAbD,CAAL,EAAuB;MACrB2hD;IA7F+B;;IA+FjC,OAAOhxE,OAAOgc,GAAPhc,GAAagxE,SAAbhxE,GAAyB0wE,QAAhC;EA3NS;;EAkOXO,6BAA6BjxE,MAA7B,EAAqC;IACnC,MAAM0wE,WAAW1wE,OAAOgc,GAAxB;IACA,IAAIk1D,WAAW,KAAf;IAAA,IACE/tE,CADF;IAAA,IAEEguE,YAFF;;IAGA,OAAQ,KAAInxE,OAAO4qB,OAAP5qB,EAAJ,MAA0B,CAAC,CAAnC,EAAsC;MACpC,IAAImD,MAAM,IAAV,EAAgB;QAEd;MAHkC;;MAKpC,QAAQnD,OAAO4qB,OAAP5qB,EAAR;QACE,KAAK,IAAL;UAEE;;QAEF,KAAK,IAAL;UAEEA,OAAOkzB,IAAPlzB,CAAY,CAAC,CAAbA;UACA;;QAEF,KAAK,IAAL;UACEkxE,WAAW,IAAXA;UACA;;QAEF,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QAEA,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QAEA,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QAEA,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QAEA,KAAK,IAAL;QACA,KAAK,IAAL;QAEA,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QAEA,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QACA,KAAK,IAAL;QAEA,KAAK,IAAL;UAEEC,eAAenxE,OAAO4yB,SAAP5yB,EAAfmxE;;UACA,IAAIA,eAAe,CAAnB,EAAsB;YAGpBnxE,OAAOkzB,IAAPlzB,CAAYmxE,eAAe,CAA3BnxE;UAHF,OAIO;YAELA,OAAOkzB,IAAPlzB,CAAY,CAAC,CAAbA;UATJ;;UAWE;MArEJ;;MAuEA,IAAIkxE,QAAJ,EAAc;QACZ;MA7EkC;IALH;;IAqFnC,MAAMp3E,SAASkG,OAAOgc,GAAPhc,GAAa0wE,QAA5B;;IACA,IAAIvtE,MAAM,CAAC,CAAX,EAAc;MACZ3F,gBACE,oCACE,mDAFJA;MAIAwC,OAAOkzB,IAAPlzB,CAAY,CAAClG,MAAbkG;MACA,OAAO,KAAKowE,0BAAL,CAAgCpwE,MAAhC,CAAP;IA5FiC;;IA8FnC,KAAKoxE,kBAAL,CAAwBpxE,MAAxB;IACA,OAAOlG,MAAP;EAjUS;;EAwUXu3E,iCAAiCrxE,MAAjC,EAAyC;IACvC,MAAMsxE,QAAQ,IAAd;IAAA,MACEC,KAAK,IADP;IAEA,MAAMb,WAAW1wE,OAAOgc,GAAxB;IACA,IAAIsT,EAAJ;;IACA,OAAQ,MAAKtvB,OAAO4qB,OAAP5qB,EAAL,MAA2B,CAAC,CAApC,EAAuC;MACrC,IAAIsvB,OAAOgiD,KAAX,EAAkB;QAChB,MAAME,WAAWxxE,OAAOgc,GAAxB;QAEAsT,KAAKtvB,OAAOyyB,QAAPzyB,EAALsvB;;QAGA,OAAOD,8BAAaC,EAAbD,CAAP,EAAyB;UACvBrvB,OAAOkzB,IAAPlzB;UACAsvB,KAAKtvB,OAAOyyB,QAAPzyB,EAALsvB;QARc;;QAUhB,IAAIA,OAAOiiD,EAAX,EAAe;UACbvxE,OAAOkzB,IAAPlzB;UACA;QAZc;;QAgBhB,IAAIA,OAAOgc,GAAPhc,GAAawxE,QAAjB,EAA2B;UACzB,MAAMC,UAAUzxE,OAAO2yB,SAAP3yB,CAAiB,CAAjBA,CAAhB;;UACA,IAAIyxE,QAAQ,CAAR,MAAyB,IAAzBA,IAAiCA,QAAQ,CAAR,MAAyB,IAA9D,EAAoE;YAClE;UAHuB;QAhBX;MADmB;IALA;;IA8BvC,MAAM33E,SAASkG,OAAOgc,GAAPhc,GAAa0wE,QAA5B;;IACA,IAAIphD,OAAO,CAAC,CAAZ,EAAe;MACb9xB,gBACE,wCACE,mDAFJA;MAIAwC,OAAOkzB,IAAPlzB,CAAY,CAAClG,MAAbkG;MACA,OAAO,KAAKowE,0BAAL,CAAgCpwE,MAAhC,CAAP;IArCqC;;IAuCvC,KAAKoxE,kBAAL,CAAwBpxE,MAAxB;IACA,OAAOlG,MAAP;EAhXS;;EAuXX43E,kCAAkC1xE,MAAlC,EAA0C;IACxC,MAAMuxE,KAAK,IAAX;IACA,MAAMb,WAAW1wE,OAAOgc,GAAxB;IACA,IAAIsT,EAAJ;;IACA,OAAQ,MAAKtvB,OAAO4qB,OAAP5qB,EAAL,MAA2B,CAAC,CAApC,EAAuC;MACrC,IAAIsvB,OAAOiiD,EAAX,EAAe;QACb;MAFmC;IAJC;;IASxC,MAAMz3E,SAASkG,OAAOgc,GAAPhc,GAAa0wE,QAA5B;;IACA,IAAIphD,OAAO,CAAC,CAAZ,EAAe;MACb9xB,gBACE,yCACE,mDAFJA;MAIAwC,OAAOkzB,IAAPlzB,CAAY,CAAClG,MAAbkG;MACA,OAAO,KAAKowE,0BAAL,CAAgCpwE,MAAhC,CAAP;IAhBsC;;IAkBxC,KAAKoxE,kBAAL,CAAwBpxE,MAAxB;IACA,OAAOlG,MAAP;EA1YS;;EAgZXs3E,mBAAmBpxE,MAAnB,EAA2B;IACzB,MAAMqO,IAAI,IAAV;IAAA,MACEgiE,IAAI,IADN;IAEA,IAAIjzB,QAAQ,CAAZ;IAAA,IACE9tB,EADF;;IAEA,OAAQ,MAAKtvB,OAAO4qB,OAAP5qB,EAAL,MAA2B,CAAC,CAApC,EAAuC;MACrC,IAAIo9C,UAAU,CAAd,EAAiB;QACfA,QAAQ9tB,OAAOjhB,CAAPihB,GAAW,CAAXA,GAAe,CAAvB8tB;MADF,OAEO,IAAIA,UAAU,CAAd,EAAiB;QACtBA,QAAQ9tB,OAAO+gD,CAAP/gD,GAAW,CAAXA,GAAe,CAAvB8tB;MADK,OAEA,IAAIA,UAAU,CAAd,EAAiB;QACtB;MANmC;IALd;EAhZhB;;EAgaX6yB,gBAAgBD,eAAhB,EAAiC;IAC/B,MAAMzF,QAAQ,KAAKA,KAAnB;IACA,MAAMvqE,SAASuqE,MAAMvqE,MAArB;IAGA,MAAMmmB,OAAO,IAAI7iB,gBAAJ,CAAS,KAAKZ,IAAd,CAAb;IACA,IAAIivE,UAAJ;;IACA,OAAO,CAACpqD,uBAAM,KAAKsoD,IAAXtoD,EAAiB,IAAjBA,CAAD,IAA2B,KAAKsoD,IAAL,KAAclsD,eAAhD,EAAqD;MACnD,IAAI,EAAE,KAAKksD,IAAL,YAAqBjsD,gBAAvB,CAAJ,EAAkC;QAChC,MAAM,IAAI7I,iBAAJ,CAAgB,sCAAhB,CAAN;MAFiD;;MAInD,MAAM3W,MAAM,KAAKyrE,IAAL,CAAUn4E,IAAtB;MACA,KAAKmhD,KAAL;;MACA,IAAI,KAAKg3B,IAAL,KAAclsD,eAAlB,EAAuB;QACrB;MAPiD;;MASnDwC,KAAKhK,GAALgK,CAAS/hB,GAAT+hB,EAAc,KAAKwkD,MAAL,CAAYqF,eAAZ,CAAd7pD;IAhB6B;;IAkB/B,IAAIokD,MAAMqH,mBAANrH,KAA8B,CAAC,CAAnC,EAAsC;MACpCoH,aAAa3xE,OAAOgc,GAAPhc,GAAauqE,MAAMqH,mBAAhCD;IAnB6B;;IAuB/B,MAAM5uE,SAASojB,KAAKplB,GAALolB,CAAS,GAATA,EAAc,QAAdA,CAAf;IACA,IAAIuY,UAAJ;;IACA,IAAI37B,kBAAkB6gB,gBAAtB,EAA4B;MAC1B8a,aAAa37B,OAAOrL,IAApBgnC;IADF,OAEO,IAAIj7B,MAAMC,OAAND,CAAcV,MAAdU,CAAJ,EAA2B;MAChC,MAAMouE,aAAa,KAAKnvE,IAAL,CAAU24B,UAAV,CAAqBt4B,OAAO,CAAP,CAArB,CAAnB;;MACA,IAAI8uE,sBAAsBjuD,gBAA1B,EAAgC;QAC9B8a,aAAamzC,WAAWn6E,IAAxBgnC;MAH8B;IA3BH;;IAmC/B,MAAMgyC,WAAW1wE,OAAOgc,GAAxB;IACA,IAAIliB,MAAJ;;IACA,QAAQ4kC,UAAR;MACE,KAAK,KAAL;MACA,KAAK,WAAL;QACE5kC,SAAS,KAAKm3E,4BAAL,CAAkCjxE,MAAlC,CAATlG;QACA;;MACF,KAAK,KAAL;MACA,KAAK,eAAL;QACEA,SAAS,KAAKu3E,gCAAL,CAAsCrxE,MAAtC,CAATlG;QACA;;MACF,KAAK,KAAL;MACA,KAAK,gBAAL;QACEA,SAAS,KAAK43E,iCAAL,CAAuC1xE,MAAvC,CAATlG;QACA;;MACF;QACEA,SAAS,KAAKs2E,0BAAL,CAAgCpwE,MAAhC,CAATlG;IAdJ;;IAgBA,IAAIg4E,cAAc9xE,OAAOgrB,aAAPhrB,CAAqB0wE,QAArB1wE,EAA+BlG,MAA/BkG,EAAuCmmB,IAAvCnmB,CAAlB;IAIA,IAAIyF,QAAJ;;IACA,IAAI3L,SAASw1E,mBAATx1E,IAAgC63E,aAAapC,kBAAjD,EAAqE;MACnE,MAAMwC,aAAaD,YAAYjnD,QAAZinD,EAAnB;MACAA,YAAY3+C,KAAZ2+C;MAEA,MAAME,mBAAmBhyE,OAAOgc,GAAhC;MAEAhc,OAAOgc,GAAPhc,GAAauqE,MAAMqH,mBAAnB5xE;MAEA,MAAMiyE,YAAYjyE,OAAO6qB,QAAP7qB,CAAgB2xE,UAAhB3xE,CAAlB;MAEAA,OAAOgc,GAAPhc,GAAagyE,gBAAbhyE;MAEAyF,WAAW+pE,eAAeuC,UAAf,IAA6B,GAA7BvC,GAAmCA,eAAeyC,SAAf,CAA9CxsE;MAEA,MAAMysE,aAAa,KAAKvC,UAAL,CAAgBlqE,QAAhB,CAAnB;;MACA,IAAIysE,eAAej3D,SAAnB,EAA8B;QAC5B,KAAK60D,IAAL,GAAY7rD,gBAAIljB,GAAJkjB,CAAQ,IAARA,CAAZ;QACA,KAAK40B,KAAL;QAEAq5B,WAAW/+C,KAAX++C;QACA,OAAOA,UAAP;MApBiE;IA1DtC;;IAkF/B,IAAIlC,eAAJ,EAAqB;MACnB8B,cAAc9B,gBAAgBmC,YAAhBnC,CAA6B8B,WAA7B9B,EAA0Cl2E,MAA1Ck2E,CAAd8B;IAnF6B;;IAsF/BA,cAAc,KAAK/uE,MAAL,CAAY+uE,WAAZ,EAAyB3rD,IAAzB,EAA+BrsB,MAA/B,CAAdg4E;IACAA,YAAY3rD,IAAZ2rD,GAAmB3rD,IAAnB2rD;;IACA,IAAIrsE,aAAawV,SAAjB,EAA4B;MAC1B62D,YAAYrsE,QAAZqsE,GAAwB,UAASh4E,MAAO,IAAG2L,QAApB,EAAvBqsE;MACA,KAAKnC,UAAL,CAAgBlqE,QAAhB,IAA4BqsE,WAA5B;IA1F6B;;IA6F/B,KAAKhC,IAAL,GAAY7rD,gBAAIljB,GAAJkjB,CAAQ,IAARA,CAAZ;IACA,KAAK40B,KAAL;IAEA,OAAOi5B,WAAP;EAhgBS;;EAmgBXM,kBAAkB1B,QAAlB,EAA4Br3C,SAA5B,EAAuC;IACrC,MAAM;MAAEr5B;IAAF,IAAa,KAAKuqE,KAAxB;IACAvqE,OAAOgc,GAAPhc,GAAa0wE,QAAb1wE;IAEA,MAAMqyE,oBAAoB,IAA1B;IACA,MAAM74C,kBAAkBH,UAAUv/B,MAAlC;;IAEA,OAAOkG,OAAOgc,GAAPhc,GAAaA,OAAO0oB,GAA3B,EAAgC;MAC9B,MAAM+Q,YAAYz5B,OAAO2yB,SAAP3yB,CAAiBqyE,iBAAjBryE,CAAlB;MACA,MAAM05B,aAAaD,UAAU3/B,MAAV2/B,GAAmBD,eAAtC;;MAEA,IAAIE,cAAc,CAAlB,EAAqB;QACnB;MAL4B;;MAO9B,IAAI1d,MAAM,CAAV;;MACA,OAAOA,MAAM0d,UAAb,EAAyB;QACvB,IAAI1Y,IAAI,CAAR;;QACA,OAAOA,IAAIwY,eAAJxY,IAAuByY,UAAUzd,MAAMgF,CAAhB,MAAuBqY,UAAUrY,CAAV,CAArD,EAAmE;UACjEA;QAHqB;;QAKvB,IAAIA,KAAKwY,eAAT,EAA0B;UAExBx5B,OAAOgc,GAAPhc,IAAcgc,GAAdhc;UACA,OAAOA,OAAOgc,GAAPhc,GAAa0wE,QAApB;QARqB;;QAUvB10D;MAlB4B;;MAoB9Bhc,OAAOgc,GAAPhc,IAAc05B,UAAd15B;IA3BmC;;IA6BrC,OAAO,CAAC,CAAR;EAhiBS;;EAmiBXkwE,WAAW/pD,IAAX,EAAiB6pD,eAAjB,EAAkC;IAChC,MAAMzF,QAAQ,KAAKA,KAAnB;IACA,IAAIvqE,SAASuqE,MAAMvqE,MAAnB;IAGAuqE,MAAM+H,cAAN/H;IACA,MAAMmG,WAAW1wE,OAAOgc,GAAPhc,GAAa,CAA9B;IAGA,IAAIlG,SAASqsB,KAAKplB,GAALolB,CAAS,QAATA,CAAb;;IACA,IAAI,CAACtN,OAAOC,SAAPD,CAAiB/e,MAAjB+e,CAAL,EAA+B;MAC7BlU,gBAAM,eAAc7K,UAAUA,OAAOqF,QAAPrF,EAAkB,cAAhD6K;MACA7K,SAAS,CAATA;IAZ8B;;IAgBhCkG,OAAOgc,GAAPhc,GAAa0wE,WAAW52E,MAAxBkG;IACAuqE,MAAMgI,QAANhI;;IAGA,IAAI,KAAKwF,QAAL,MAAmBxoD,uBAAM,KAAKuoD,IAAXvoD,EAAiB,WAAjBA,CAAvB,EAAsD;MACpD,KAAKsxB,KAAL;IADF,OAEO;MAEL,MAAM25B,sBAAsB,IAAI15E,UAAJ,CAAe,CACzC,IADyC,EACnC,IADmC,EAC7B,IAD6B,EACvB,IADuB,EACjB,IADiB,EACX,IADW,EACL,IADK,EACC,IADD,EACO,IADP,CAAf,CAA5B;;MAGA,IAAI25E,eAAe,KAAKL,iBAAL,CAAuB1B,QAAvB,EAAiC8B,mBAAjC,CAAnB;;MACA,IAAIC,eAAe,CAAnB,EAAsB;QAGpB,MAAMC,iBAAiB,CAAvB;;QAGA,KAAK,IAAIh4E,IAAI,CAAb,EAAgBA,KAAKg4E,cAArB,EAAqCh4E,GAArC,EAA0C;UACxC,MAAMguB,MAAM8pD,oBAAoB14E,MAApB04E,GAA6B93E,CAAzC;UACA,MAAMi4E,sBAAsBH,oBAAoBh0D,KAApBg0D,CAA0B,CAA1BA,EAA6B9pD,GAA7B8pD,CAA5B;;UAEA,MAAMI,cAAc,KAAKR,iBAAL,CAClB1B,QADkB,EAElBiC,mBAFkB,CAApB;;UAIA,IAAIC,eAAe,CAAnB,EAAsB;YAGpB,MAAMlH,WAAW1rE,OAAO2yB,SAAP3yB,CAAiB0oB,MAAM,CAAvB1oB,EAA0B0oB,GAA1B1oB,CAAjB;;YACA,IAAI,CAACqvB,8BAAaq8C,QAAbr8C,CAAL,EAA6B;cAC3B;YALkB;;YAOpB1qB,gBACG,UAASqW,yBAAc23D,mBAAd33D,CAAmC,SAA7C,GACE,kCAFJrW;YAIA8tE,eAAeG,WAAfH;YACA;UApBsC;QANtB;;QA8BpB,IAAIA,eAAe,CAAnB,EAAsB;UACpB,MAAM,IAAI13D,iBAAJ,CAAgB,4BAAhB,CAAN;QA/BkB;MANjB;;MAwCLjhB,SAAS24E,YAAT34E;MAEAywE,MAAMgI,QAANhI;MACA,KAAK1xB,KAAL;MACA,KAAKA,KAAL;IAlE8B;;IAoEhC,KAAKA,KAAL;IAEA74C,SAASA,OAAOgrB,aAAPhrB,CAAqB0wE,QAArB1wE,EAA+BlG,MAA/BkG,EAAuCmmB,IAAvCnmB,CAATA;;IACA,IAAIgwE,eAAJ,EAAqB;MACnBhwE,SAASgwE,gBAAgBmC,YAAhBnC,CAA6BhwE,MAA7BgwE,EAAqCl2E,MAArCk2E,CAAThwE;IAxE8B;;IA0EhCA,SAAS,KAAK+C,MAAL,CAAY/C,MAAZ,EAAoBmmB,IAApB,EAA0BrsB,MAA1B,CAATkG;IACAA,OAAOmmB,IAAPnmB,GAAcmmB,IAAdnmB;IACA,OAAOA,MAAP;EA/mBS;;EAknBX+C,OAAO/C,MAAP,EAAemmB,IAAf,EAAqBrsB,MAArB,EAA6B;IAC3B,IAAIiJ,SAASojB,KAAKplB,GAALolB,CAAS,GAATA,EAAc,QAAdA,CAAb;IACA,IAAI4nB,SAAS5nB,KAAKplB,GAALolB,CAAS,IAATA,EAAe,aAAfA,CAAb;;IAEA,IAAIpjB,kBAAkB6gB,gBAAtB,EAA4B;MAC1B,IAAIngB,MAAMC,OAAND,CAAcsqC,MAAdtqC,CAAJ,EAA2B;QACzBjG,gBAAK,8DAALA;MAFwB;;MAI1B,OAAO,KAAKq1E,UAAL,CAAgB7yE,MAAhB,EAAwB+C,OAAOrL,IAA/B,EAAqCoC,MAArC,EAA6Ci0C,MAA7C,CAAP;IARyB;;IAW3B,IAAI6kC,cAAc94E,MAAlB;;IACA,IAAI2J,MAAMC,OAAND,CAAcV,MAAdU,CAAJ,EAA2B;MACzB,MAAMqvE,cAAc/vE,MAApB;MACA,MAAMgwE,cAAchlC,MAApB;;MACA,KAAK,IAAIrzC,IAAI,CAAR,EAAWiJ,KAAKmvE,YAAYh5E,MAAjC,EAAyCY,IAAIiJ,EAA7C,EAAiD,EAAEjJ,CAAnD,EAAsD;QACpDqI,SAAS,KAAKL,IAAL,CAAU24B,UAAV,CAAqBy3C,YAAYp4E,CAAZ,CAArB,CAATqI;;QACA,IAAI,EAAEA,kBAAkB6gB,gBAApB,CAAJ,EAA+B;UAC7B,MAAM,IAAI7I,iBAAJ,CAAiB,oBAAmBhY,MAAO,GAA3C,CAAN;QAHkD;;QAMpDgrC,SAAS,IAATA;;QACA,IAAItqC,MAAMC,OAAND,CAAcsvE,WAAdtvE,KAA8B/I,KAAKq4E,WAAvC,EAAoD;UAClDhlC,SAAS,KAAKrrC,IAAL,CAAU24B,UAAV,CAAqB03C,YAAYr4E,CAAZ,CAArB,CAATqzC;QARkD;;QAUpD/tC,SAAS,KAAK6yE,UAAL,CAAgB7yE,MAAhB,EAAwB+C,OAAOrL,IAA/B,EAAqCk7E,WAArC,EAAkD7kC,MAAlD,CAAT/tC;QAEA4yE,cAAc,IAAdA;MAfuB;IAZA;;IA8B3B,OAAO5yE,MAAP;EAhpBS;;EAmpBX6yE,WAAW7yE,MAAX,EAAmBtI,IAAnB,EAAyBk7E,WAAzB,EAAsC7kC,MAAtC,EAA8C;IAI5C,IAAI6kC,gBAAgB,CAApB,EAAuB;MACrBp1E,gBAAM,UAAS9F,IAAK,WAApB8F;MACA,OAAO,IAAI+1B,kBAAJ,EAAP;IAN0C;;IAQ5C,MAAMy/C,YAAY,KAAKtwE,IAAL,CAAU0xD,KAA5B;;IAEA,IAAI;MACF,QAAQ18D,IAAR;QACE,KAAK,IAAL;QACA,KAAK,aAAL;UACEs7E,UAAU5kD,aAAV4kD,CAAwBrjE,iBAAWE,KAAnCmjE;;UACA,IAAIjlC,MAAJ,EAAY;YACV,OAAO,IAAIklC,iCAAJ,CACL,IAAIC,yBAAJ,CAAgBlzE,MAAhB,EAAwB4yE,WAAxB,CADK,EAELA,WAFK,EAGL7kC,MAHK,CAAP;UAHJ;;UASE,OAAO,IAAImlC,yBAAJ,CAAgBlzE,MAAhB,EAAwB4yE,WAAxB,CAAP;;QACF,KAAK,KAAL;QACA,KAAK,WAAL;UACEI,UAAU5kD,aAAV4kD,CAAwBrjE,iBAAWG,GAAnCkjE;UACA,IAAIG,cAAc,CAAlB;;UACA,IAAIplC,MAAJ,EAAY;YACV,IAAIA,OAAOtoB,GAAPsoB,CAAW,aAAXA,CAAJ,EAA+B;cAC7BolC,cAAcplC,OAAOhtC,GAAPgtC,CAAW,aAAXA,CAAdolC;YAFQ;;YAIV,OAAO,IAAIF,iCAAJ,CACL,IAAIG,qBAAJ,CAAcpzE,MAAd,EAAsB4yE,WAAtB,EAAmCO,WAAnC,CADK,EAELP,WAFK,EAGL7kC,MAHK,CAAP;UAPJ;;UAaE,OAAO,IAAIqlC,qBAAJ,CAAcpzE,MAAd,EAAsB4yE,WAAtB,EAAmCO,WAAnC,CAAP;;QACF,KAAK,KAAL;QACA,KAAK,WAAL;UACEH,UAAU5kD,aAAV4kD,CAAwBrjE,iBAAWI,GAAnCijE;UACA,OAAO,IAAIK,uBAAJ,CAAerzE,MAAf,EAAuB4yE,WAAvB,EAAoC7kC,MAApC,CAAP;;QACF,KAAK,KAAL;QACA,KAAK,WAAL;UACEilC,UAAU5kD,aAAV4kD,CAAwBrjE,iBAAWK,GAAnCgjE;UACA,OAAO,IAAIM,qBAAJ,CAActzE,MAAd,EAAsB4yE,WAAtB,EAAmC7kC,MAAnC,CAAP;;QACF,KAAK,KAAL;QACA,KAAK,eAAL;UACEilC,UAAU5kD,aAAV4kD,CAAwBrjE,iBAAWO,GAAnC8iE;UACA,OAAO,IAAIO,8BAAJ,CAAkBvzE,MAAlB,EAA0B4yE,WAA1B,CAAP;;QACF,KAAK,KAAL;QACA,KAAK,gBAAL;UACEI,UAAU5kD,aAAV4kD,CAAwBrjE,iBAAWQ,GAAnC6iE;UACA,OAAO,IAAIQ,gCAAJ,CAAmBxzE,MAAnB,EAA2B4yE,WAA3B,CAAP;;QACF,KAAK,KAAL;QACA,KAAK,gBAAL;UACEI,UAAU5kD,aAAV4kD,CAAwBrjE,iBAAWS,GAAnC4iE;UACA,OAAO,IAAIS,4BAAJ,CAAmBzzE,MAAnB,EAA2B4yE,WAA3B,EAAwC7kC,MAAxC,CAAP;;QACF,KAAK,IAAL;QACA,KAAK,iBAAL;UACEilC,UAAU5kD,aAAV4kD,CAAwBrjE,iBAAWU,GAAnC2iE;UACA,OAAO,IAAIU,kCAAJ,CAAoB1zE,MAApB,EAA4B4yE,WAA5B,CAAP;;QACF,KAAK,aAAL;UACEI,UAAU5kD,aAAV4kD,CAAwBrjE,iBAAWM,IAAnC+iE;UACA,OAAO,IAAIW,yBAAJ,CAAgB3zE,MAAhB,EAAwB4yE,WAAxB,EAAqC7kC,MAArC,CAAP;MArDJ;;MAuDAvwC,gBAAM,WAAU9F,IAAK,qBAArB8F;MACA,OAAOwC,MAAP;IAzDF,EA0DE,OAAO5D,EAAP,EAAW;MACX,IAAIA,cAAc8sB,gCAAlB,EAAwC;QACtC,MAAM9sB,EAAN;MAFS;;MAIXoB,gBAAM,oBAAmBpB,EAAG,GAA5BoB;MACA,OAAO,IAAI+1B,kBAAJ,EAAP;IAzE0C;EAnpBnC;;AAAA;;;AAouBb,MAAMqgD,eAAe,CACnB,CADmB,EAChB,CADgB,EACb,CADa,EACV,CADU,EACP,CADO,EACJ,CADI,EACD,CADC,EACE,CADF,EACK,CADL,EACQ,CADR,EACW,CADX,EACc,CADd,EACiB,CADjB,EACoB,CADpB,EACuB,CADvB,EAC0B,CAD1B,EAEnB,CAFmB,EAEhB,CAFgB,EAEb,CAFa,EAEV,CAFU,EAEP,CAFO,EAEJ,CAFI,EAED,CAFC,EAEE,CAFF,EAEK,CAFL,EAEQ,CAFR,EAEW,CAFX,EAEc,CAFd,EAEiB,CAFjB,EAEoB,CAFpB,EAEuB,CAFvB,EAE0B,CAF1B,EAGnB,CAHmB,EAGhB,CAHgB,EAGb,CAHa,EAGV,CAHU,EAGP,CAHO,EAGJ,CAHI,EAGD,CAHC,EAGE,CAHF,EAGK,CAHL,EAGQ,CAHR,EAGW,CAHX,EAGc,CAHd,EAGiB,CAHjB,EAGoB,CAHpB,EAGuB,CAHvB,EAG0B,CAH1B,EAInB,CAJmB,EAIhB,CAJgB,EAIb,CAJa,EAIV,CAJU,EAIP,CAJO,EAIJ,CAJI,EAID,CAJC,EAIE,CAJF,EAIK,CAJL,EAIQ,CAJR,EAIW,CAJX,EAIc,CAJd,EAIiB,CAJjB,EAIoB,CAJpB,EAIuB,CAJvB,EAI0B,CAJ1B,EAKnB,CALmB,EAKhB,CALgB,EAKb,CALa,EAKV,CALU,EAKP,CALO,EAKJ,CALI,EAKD,CALC,EAKE,CALF,EAKK,CALL,EAKQ,CALR,EAKW,CALX,EAKc,CALd,EAKiB,CALjB,EAKoB,CALpB,EAKuB,CALvB,EAK0B,CAL1B,EAMnB,CANmB,EAMhB,CANgB,EAMb,CANa,EAMV,CANU,EAMP,CANO,EAMJ,CANI,EAMD,CANC,EAME,CANF,EAMK,CANL,EAMQ,CANR,EAMW,CANX,EAMc,CANd,EAMiB,CANjB,EAMoB,CANpB,EAMuB,CANvB,EAM0B,CAN1B,EAOnB,CAPmB,EAOhB,CAPgB,EAOb,CAPa,EAOV,CAPU,EAOP,CAPO,EAOJ,CAPI,EAOD,CAPC,EAOE,CAPF,EAOK,CAPL,EAOQ,CAPR,EAOW,CAPX,EAOc,CAPd,EAOiB,CAPjB,EAOoB,CAPpB,EAOuB,CAPvB,EAO0B,CAP1B,EAQnB,CARmB,EAQhB,CARgB,EAQb,CARa,EAQV,CARU,EAQP,CARO,EAQJ,CARI,EAQD,CARC,EAQE,CARF,EAQK,CARL,EAQQ,CARR,EAQW,CARX,EAQc,CARd,EAQiB,CARjB,EAQoB,CARpB,EAQuB,CARvB,EAQ0B,CAR1B,EASnB,CATmB,EAShB,CATgB,EASb,CATa,EASV,CATU,EASP,CATO,EASJ,CATI,EASD,CATC,EASE,CATF,EASK,CATL,EASQ,CATR,EASW,CATX,EASc,CATd,EASiB,CATjB,EASoB,CATpB,EASuB,CATvB,EAS0B,CAT1B,EAUnB,CAVmB,EAUhB,CAVgB,EAUb,CAVa,EAUV,CAVU,EAUP,CAVO,EAUJ,CAVI,EAUD,CAVC,EAUE,CAVF,EAUK,CAVL,EAUQ,CAVR,EAUW,CAVX,EAUc,CAVd,EAUiB,CAVjB,EAUoB,CAVpB,EAUuB,CAVvB,EAU0B,CAV1B,EAWnB,CAXmB,EAWhB,CAXgB,EAWb,CAXa,EAWV,CAXU,EAWP,CAXO,EAWJ,CAXI,EAWD,CAXC,EAWE,CAXF,EAWK,CAXL,EAWQ,CAXR,EAWW,CAXX,EAWc,CAXd,EAWiB,CAXjB,EAWoB,CAXpB,EAWuB,CAXvB,EAW0B,CAX1B,EAYnB,CAZmB,EAYhB,CAZgB,EAYb,CAZa,EAYV,CAZU,EAYP,CAZO,EAYJ,CAZI,EAYD,CAZC,EAYE,CAZF,EAYK,CAZL,EAYQ,CAZR,EAYW,CAZX,EAYc,CAZd,EAYiB,CAZjB,EAYoB,CAZpB,EAYuB,CAZvB,EAY0B,CAZ1B,EAanB,CAbmB,EAahB,CAbgB,EAab,CAba,EAaV,CAbU,EAaP,CAbO,EAaJ,CAbI,EAaD,CAbC,EAaE,CAbF,EAaK,CAbL,EAaQ,CAbR,EAaW,CAbX,EAac,CAbd,EAaiB,CAbjB,EAaoB,CAbpB,EAauB,CAbvB,EAa0B,CAb1B,EAcnB,CAdmB,EAchB,CAdgB,EAcb,CAda,EAcV,CAdU,EAcP,CAdO,EAcJ,CAdI,EAcD,CAdC,EAcE,CAdF,EAcK,CAdL,EAcQ,CAdR,EAcW,CAdX,EAcc,CAdd,EAciB,CAdjB,EAcoB,CAdpB,EAcuB,CAdvB,EAc0B,CAd1B,EAenB,CAfmB,EAehB,CAfgB,EAeb,CAfa,EAeV,CAfU,EAeP,CAfO,EAeJ,CAfI,EAeD,CAfC,EAeE,CAfF,EAeK,CAfL,EAeQ,CAfR,EAeW,CAfX,EAec,CAfd,EAeiB,CAfjB,EAeoB,CAfpB,EAeuB,CAfvB,EAe0B,CAf1B,EAgBnB,CAhBmB,EAgBhB,CAhBgB,EAgBb,CAhBa,EAgBV,CAhBU,EAgBP,CAhBO,EAgBJ,CAhBI,EAgBD,CAhBC,EAgBE,CAhBF,EAgBK,CAhBL,EAgBQ,CAhBR,EAgBW,CAhBX,EAgBc,CAhBd,EAgBiB,CAhBjB,EAgBoB,CAhBpB,EAgBuB,CAhBvB,EAgB0B,CAhB1B,CAArB;;AAmBA,SAASC,UAAT,CAAoBvkD,EAApB,EAAwB;EACtB,IAAIA,MAAkB,IAAlBA,IAA0BA,MAAkB,IAAhD,EAAsD;IACpD,OAAOA,KAAK,IAAZ;EAFoB;;EAItB,IACGA,MAAkB,IAAlBA,IAA0BA,MAAkB,IAA5CA,IACAA,MAAkB,IAAlBA,IAA0BA,MAAkB,IAF/C,EAGE;IACA,OAAQ,MAAK,IAAL,IAAa,CAArB;EARoB;;EAUtB,OAAO,CAAC,CAAR;AAl0BF;;AAq0BA,MAAMk7C,KAAN,CAAY;EACV/yE,YAAYuI,MAAZ,EAAoB6wE,gBAAgB,IAApC,EAA0C;IACxC,KAAK7wE,MAAL,GAAcA,MAAd;IACA,KAAKuyE,QAAL;IAOA,KAAKj3D,MAAL,GAAc,EAAd;IASA,KAAKu1D,aAAL,GAAqBA,aAArB;IAEA,KAAKiD,iBAAL,GAAyB,CAAzB;IACA,KAAKlC,mBAAL,GAA2B,CAAC,CAA5B;EAtBQ;;EAyBVW,WAAW;IACT,OAAQ,KAAKwB,WAAL,GAAmB,KAAK/zE,MAAL,CAAY4qB,OAAZ,EAA3B;EA1BQ;;EA6BVopD,WAAW;IACT,OAAO,KAAKh0E,MAAL,CAAYyyB,QAAZ,EAAP;EA9BQ;;EAiCVwhD,YAAY;IACV,IAAI3kD,KAAK,KAAKykD,WAAd;IACA,IAAIG,YAAY,KAAhB;IACA,IAAIC,WAAW,CAAf;IACA,IAAIxX,OAAO,CAAX;;IAEA,IAAIrtC,OAAmB,IAAvB,EAA6B;MAC3BqtC,OAAO,CAAC,CAARA;MACArtC,KAAK,KAAKijD,QAAL,EAALjjD;;MAEA,IAAIA,OAAmB,IAAvB,EAA6B;QAE3BA,KAAK,KAAKijD,QAAL,EAALjjD;MANyB;IAA7B,OAQO,IAAIA,OAAmB,IAAvB,EAA6B;MAClCqtC,OAAO,CAAPA;MACArtC,KAAK,KAAKijD,QAAL,EAALjjD;IAhBQ;;IAkBV,IAAIA,OAAkB,IAAlBA,IAA0BA,OAAkB,IAAhD,EAAsD;MAEpD,GAAG;QACDA,KAAK,KAAKijD,QAAL,EAALjjD;MADF,SAESA,OAAO,IAAPA,IAAeA,OAAO,IAF/B;IApBQ;;IAwBV,IAAIA,OAAmB,IAAvB,EAA6B;MAC3B6kD,WAAW,EAAXA;MACA7kD,KAAK,KAAKijD,QAAL,EAALjjD;IA1BQ;;IA4BV,IAAIA,KAAiB,IAAjBA,IAAyBA,KAAiB,IAA9C,EAAoD;MAClD,IAAID,8BAAaC,EAAbD,KAAoBC,OAAmB,CAAC,CAA5C,EAA+C;QAE7C,IAAI6kD,aAAa,EAAbA,IAAmBxX,SAAS,CAAhC,EAAmC;UACjCn/D,gBAAK,4DAALA;UACA,OAAO,CAAP;QAJ2C;;QAO7C,IAAI22E,aAAa,CAAbA,IAAkBxX,SAAS,CAAC,CAAhC,EAAmC;UACjCn/D,gBAAK,yDAALA;UACA,OAAO,CAAP;QAT2C;MADG;;MAalD,MAAM,IAAIud,iBAAJ,CACH,mBAAkBI,OAAOC,YAAPD,CAAoBmU,EAApBnU,CAAwB,cAAamU,EAAG,GADvD,CAAN;IAzCQ;;IA8CVqtC,OAAOA,QAAQ,CAAfA;IACA,IAAIyX,YAAY9kD,KAAK,IAArB;IACA,IAAI+kD,aAAa,CAAjB;IACA,IAAIC,iBAAiB,CAArB;;IAEA,OAAQ,MAAK,KAAK/B,QAAL,EAAL,KAAyB,CAAjC,EAAoC;MAClC,IAAIjjD,MAAkB,IAAlBA,IAA0BA,MAAkB,IAAhD,EAAsD;QACpD,MAAMilD,eAAejlD,KAAK,IAA1B;;QACA,IAAI4kD,SAAJ,EAAe;UAEbG,aAAaA,aAAa,EAAbA,GAAkBE,YAA/BF;QAFF,OAGO;UACL,IAAIF,aAAa,CAAjB,EAAoB;YAElBA,YAAY,EAAZA;UAHG;;UAKLC,YAAYA,YAAY,EAAZA,GAAiBG,YAA7BH;QAVkD;MAAtD,OAYO,IAAI9kD,OAAmB,IAAvB,EAA6B;QAClC,IAAI6kD,aAAa,CAAjB,EAAoB;UAClBA,WAAW,CAAXA;QADF,OAEO;UAEL;QALgC;MAA7B,OAOA,IAAI7kD,OAAmB,IAAvB,EAA6B;QAGlC9xB,gBAAK,kDAALA;MAHK,OAIA,IAAI8xB,OAAmB,IAAnBA,IAA2BA,OAAmB,IAAlD,EAAwD;QAG7DA,KAAK,KAAK0kD,QAAL,EAAL1kD;;QACA,IAAIA,OAAmB,IAAnBA,IAA2BA,OAAmB,IAAlD,EAAwD;UACtDglD,iBAAiBhlD,OAAO,IAAPA,GAAc,CAAC,CAAfA,GAAmB,CAApCglD;UACA,KAAK/B,QAAL;QAFF,OAGO,IAAIjjD,KAAiB,IAAjBA,IAAyBA,KAAiB,IAA9C,EAAoD;UAEzD;QAT2D;;QAW7D4kD,YAAY,IAAZA;MAXK,OAYA;QAEL;MAtCgC;IAnD1B;;IA6FV,IAAIC,aAAa,CAAjB,EAAoB;MAClBC,aAAaD,QAAbC;IA9FQ;;IAgGV,IAAIF,SAAJ,EAAe;MACbE,aAAa,OAAOE,iBAAiBD,UAAxB,CAAbD;IAjGQ;;IAmGV,OAAOzX,OAAOyX,SAAd;EApIQ;;EAuIV9jD,YAAY;IACV,IAAIkkD,WAAW,CAAf;IACA,IAAI52E,OAAO,KAAX;IACA,MAAM0d,SAAS,KAAKA,MAApB;IACAA,OAAOxhB,MAAPwhB,GAAgB,CAAhBA;IAEA,IAAIgU,KAAK,KAAKijD,QAAL,EAAT;;IACA,OAAO,IAAP,EAAa;MACX,IAAIkC,eAAe,KAAnB;;MACA,QAAQnlD,KAAK,CAAb;QACE,KAAK,CAAC,CAAN;UACE9xB,gBAAK,qBAALA;UACAI,OAAO,IAAPA;UACA;;QACF,KAAK,IAAL;UACE,EAAE42E,QAAF;UACAl5D,OAAOzhB,IAAPyhB,CAAY,GAAZA;UACA;;QACF,KAAK,IAAL;UACE,IAAI,EAAEk5D,QAAF,KAAe,CAAnB,EAAsB;YACpB,KAAKjC,QAAL;YACA30E,OAAO,IAAPA;UAFF,OAGO;YACL0d,OAAOzhB,IAAPyhB,CAAY,GAAZA;UALJ;;UAOE;;QACF,KAAK,IAAL;UACEgU,KAAK,KAAKijD,QAAL,EAALjjD;;UACA,QAAQA,EAAR;YACE,KAAK,CAAC,CAAN;cACE9xB,gBAAK,qBAALA;cACAI,OAAO,IAAPA;cACA;;YACF,KAAK,IAAL;cACE0d,OAAOzhB,IAAPyhB,CAAY,IAAZA;cACA;;YACF,KAAK,IAAL;cACEA,OAAOzhB,IAAPyhB,CAAY,IAAZA;cACA;;YACF,KAAK,IAAL;cACEA,OAAOzhB,IAAPyhB,CAAY,IAAZA;cACA;;YACF,KAAK,IAAL;cACEA,OAAOzhB,IAAPyhB,CAAY,IAAZA;cACA;;YACF,KAAK,IAAL;cACEA,OAAOzhB,IAAPyhB,CAAY,IAAZA;cACA;;YACF,KAAK,IAAL;YACA,KAAK,IAAL;YACA,KAAK,IAAL;cACEA,OAAOzhB,IAAPyhB,CAAYH,OAAOC,YAAPD,CAAoBmU,EAApBnU,CAAZG;cACA;;YACF,KAAK,IAAL;YACA,KAAK,IAAL;YACA,KAAK,IAAL;YACA,KAAK,IAAL;YACA,KAAK,IAAL;YACA,KAAK,IAAL;YACA,KAAK,IAAL;YACA,KAAK,IAAL;cACE,IAAItY,IAAIssB,KAAK,IAAb;cACAA,KAAK,KAAKijD,QAAL,EAALjjD;cACAmlD,eAAe,IAAfA;;cACA,IAAInlD,MAAkB,IAAlBA,IAA0BA,MAAkB,IAAhD,EAAsD;gBACpDtsB,IAAK,MAAK,CAAL,KAAWssB,KAAK,IAAhB,CAALtsB;gBACAssB,KAAK,KAAKijD,QAAL,EAALjjD;;gBACA,IAAIA,MAAkB,IAAlBA,IAA0BA,MAAkB,IAAhD,EAAsD;kBACpDmlD,eAAe,KAAfA;kBACAzxE,IAAK,MAAK,CAAL,KAAWssB,KAAK,IAAhB,CAALtsB;gBALkD;cAJxD;;cAYEsY,OAAOzhB,IAAPyhB,CAAYH,OAAOC,YAAPD,CAAoBnY,CAApBmY,CAAZG;cACA;;YACF,KAAK,IAAL;cACE,IAAI,KAAK04D,QAAL,OAA+B,IAAnC,EAAyC;gBACvC,KAAKzB,QAAL;cAFJ;;cAIE;;YACF,KAAK,IAAL;cACE;;YACF;cACEj3D,OAAOzhB,IAAPyhB,CAAYH,OAAOC,YAAPD,CAAoBmU,EAApBnU,CAAZG;cACA;UAvDJ;;UAyDA;;QACF;UACEA,OAAOzhB,IAAPyhB,CAAYH,OAAOC,YAAPD,CAAoBmU,EAApBnU,CAAZG;UACA;MA/EJ;;MAiFA,IAAI1d,IAAJ,EAAU;QACR;MApFS;;MAsFX,IAAI,CAAC62E,YAAL,EAAmB;QACjBnlD,KAAK,KAAKijD,QAAL,EAALjjD;MAvFS;IAPH;;IAiGV,OAAOhU,OAAOvhB,IAAPuhB,CAAY,EAAZA,CAAP;EAxOQ;;EA2OVo5D,UAAU;IACR,IAAIplD,EAAJ,EAAQqlD,UAAR;IACA,MAAMr5D,SAAS,KAAKA,MAApB;IACAA,OAAOxhB,MAAPwhB,GAAgB,CAAhBA;;IAEA,OAAQ,MAAK,KAAKi3D,QAAL,EAAL,KAAyB,CAAzB,IAA8B,CAACqB,aAAatkD,EAAb,CAAvC,EAAyD;MACvD,IAAIA,OAAmB,IAAvB,EAA6B;QAC3BA,KAAK,KAAKijD,QAAL,EAALjjD;;QACA,IAAIskD,aAAatkD,EAAb,CAAJ,EAAsB;UACpB9xB,gBACE,oBACE,6DAFJA;UAIA8d,OAAOzhB,IAAPyhB,CAAY,GAAZA;UACA;QARyB;;QAU3B,MAAMtY,IAAI6wE,WAAWvkD,EAAX,CAAV;;QACA,IAAItsB,MAAM,CAAC,CAAX,EAAc;UACZ2xE,aAAarlD,EAAbqlD;UACArlD,KAAK,KAAKijD,QAAL,EAALjjD;UACA,MAAMlP,KAAKyzD,WAAWvkD,EAAX,CAAX;;UACA,IAAIlP,OAAO,CAAC,CAAZ,EAAe;YACb5iB,gBACG,iCAAgC2d,OAAOC,YAAPD,CAAoBmU,EAApBnU,CAAwB,IAAzD,GACE,wBAFJ3d;YAIA8d,OAAOzhB,IAAPyhB,CAAY,GAAZA,EAAiBH,OAAOC,YAAPD,CAAoBw5D,UAApBx5D,CAAjBG;;YACA,IAAIs4D,aAAatkD,EAAb,CAAJ,EAAsB;cACpB;YAPW;;YASbhU,OAAOzhB,IAAPyhB,CAAYH,OAAOC,YAAPD,CAAoBmU,EAApBnU,CAAZG;YACA;UAdU;;UAgBZA,OAAOzhB,IAAPyhB,CAAYH,OAAOC,YAAPD,CAAqBnY,KAAK,CAALA,GAAUod,EAA/BjF,CAAZG;QAhBF,OAiBO;UACLA,OAAOzhB,IAAPyhB,CAAY,GAAZA,EAAiBH,OAAOC,YAAPD,CAAoBmU,EAApBnU,CAAjBG;QA7ByB;MAA7B,OA+BO;QACLA,OAAOzhB,IAAPyhB,CAAYH,OAAOC,YAAPD,CAAoBmU,EAApBnU,CAAZG;MAjCqD;IALjD;;IAyCR,IAAIA,OAAOxhB,MAAPwhB,GAAgB,GAApB,EAAyB;MACvB9d,gBAAM,kDAAiD8d,OAAOxhB,MAAzD,EAAL0D;IA1CM;;IA4CR,OAAOomB,iBAAK7iB,GAAL6iB,CAAStI,OAAOvhB,IAAPuhB,CAAY,EAAZA,CAATsI,CAAP;EAvRQ;;EA6RVgxD,eAAetlD,EAAf,EAAmB;IACjB,MAAMulD,0BAA0B,CAAhC;;IAEA,IAAI,KAAKf,iBAAL,OAA6Be,uBAAjC,EAA0D;MACxDr3E,gBAAK,wDAALA;MACA;IALe;;IAOjB,IAAI,KAAKs2E,iBAAL,GAAyBe,uBAA7B,EAAsD;MAIpD;IAXe;;IAajBr3E,gBAAM,8CAA6C8xB,EAA9C,EAAL9xB;EA1SQ;;EA6SVs3E,eAAe;IACb,MAAMx5D,SAAS,KAAKA,MAApB;IACAA,OAAOxhB,MAAPwhB,GAAgB,CAAhBA;IACA,IAAIgU,KAAK,KAAKykD,WAAd;IACA,IAAIgB,aAAa,IAAjB;IACA,IAAIC,UAAJ,EAAgBC,WAAhB;IACA,KAAKnB,iBAAL,GAAyB,CAAzB;;IAEA,OAAO,IAAP,EAAa;MACX,IAAIxkD,KAAK,CAAT,EAAY;QACV9xB,gBAAK,yBAALA;QACA;MAFF,OAGO,IAAI8xB,OAAmB,IAAvB,EAA6B;QAClC,KAAKijD,QAAL;QACA;MAFK,OAGA,IAAIqB,aAAatkD,EAAb,MAAqB,CAAzB,EAA4B;QACjCA,KAAK,KAAKijD,QAAL,EAALjjD;QACA;MAFK,OAGA;QACL,IAAIylD,UAAJ,EAAgB;UACdC,aAAanB,WAAWvkD,EAAX,CAAb0lD;;UACA,IAAIA,eAAe,CAAC,CAApB,EAAuB;YACrB,KAAKJ,cAAL,CAAoBtlD,EAApB;;YACAA,KAAK,KAAKijD,QAAL,EAALjjD;YACA;UALY;QAAhB,OAOO;UACL2lD,cAAcpB,WAAWvkD,EAAX,CAAd2lD;;UACA,IAAIA,gBAAgB,CAAC,CAArB,EAAwB;YACtB,KAAKL,cAAL,CAAoBtlD,EAApB;;YACAA,KAAK,KAAKijD,QAAL,EAALjjD;YACA;UALG;;UAOLhU,OAAOzhB,IAAPyhB,CAAYH,OAAOC,YAAPD,CAAqB65D,cAAc,CAAdA,GAAmBC,WAAxC95D,CAAZG;QAfG;;QAiBLy5D,aAAa,CAACA,UAAdA;QACAzlD,KAAK,KAAKijD,QAAL,EAALjjD;MA5BS;IARA;;IAuCb,OAAOhU,OAAOvhB,IAAPuhB,CAAY,EAAZA,CAAP;EApVQ;;EAuVVqvD,SAAS;IAEP,IAAIuK,UAAU,KAAd;IACA,IAAI5lD,KAAK,KAAKykD,WAAd;;IACA,OAAO,IAAP,EAAa;MACX,IAAIzkD,KAAK,CAAT,EAAY;QACV,OAAO3L,eAAP;MAFS;;MAIX,IAAIuxD,OAAJ,EAAa;QACX,IAAI5lD,OAAkB,IAAlBA,IAA0BA,OAAkB,IAAhD,EAAsD;UACpD4lD,UAAU,KAAVA;QAFS;MAAb,OAIO,IAAI5lD,OAAmB,IAAvB,EAA6B;QAClC4lD,UAAU,IAAVA;MADK,OAEA,IAAItB,aAAatkD,EAAb,MAAqB,CAAzB,EAA4B;QACjC;MAXS;;MAaXA,KAAK,KAAKijD,QAAL,EAALjjD;IAjBK;;IAqBP,QAAQA,KAAK,CAAb;MACE,KAAK,IAAL;MACA,KAAK,IAAL;MACA,KAAK,IAAL;MACA,KAAK,IAAL;MACA,KAAK,IAAL;MACA,KAAK,IAAL;MACA,KAAK,IAAL;MACA,KAAK,IAAL;MACA,KAAK,IAAL;MACA,KAAK,IAAL;MACA,KAAK,IAAL;MACA,KAAK,IAAL;MACA,KAAK,IAAL;QACE,OAAO,KAAK2kD,SAAL,EAAP;;MACF,KAAK,IAAL;QACE,OAAO,KAAK3jD,SAAL,EAAP;;MACF,KAAK,IAAL;QACE,OAAO,KAAKokD,OAAL,EAAP;;MAEF,KAAK,IAAL;QACE,KAAKnC,QAAL;QACA,OAAOtuD,gBAAIljB,GAAJkjB,CAAQ,GAARA,CAAP;;MACF,KAAK,IAAL;QACE,KAAKsuD,QAAL;QACA,OAAOtuD,gBAAIljB,GAAJkjB,CAAQ,GAARA,CAAP;;MAEF,KAAK,IAAL;QACEqL,KAAK,KAAKijD,QAAL,EAALjjD;;QACA,IAAIA,OAAO,IAAX,EAAiB;UAEf,KAAKijD,QAAL;UACA,OAAOtuD,gBAAIljB,GAAJkjB,CAAQ,IAARA,CAAP;QALJ;;QAOE,OAAO,KAAK6wD,YAAL,EAAP;;MAEF,KAAK,IAAL;QACExlD,KAAK,KAAKijD,QAAL,EAALjjD;;QACA,IAAIA,OAAO,IAAX,EAAiB;UACf,KAAKijD,QAAL;UACA,OAAOtuD,gBAAIljB,GAAJkjB,CAAQ,IAARA,CAAP;QAJJ;;QAME,OAAOA,gBAAIljB,GAAJkjB,CAAQ,GAARA,CAAP;;MACF,KAAK,IAAL;QACE,KAAKsuD,QAAL;QACA,OAAOtuD,gBAAIljB,GAAJkjB,CAAQ,GAARA,CAAP;;MACF,KAAK,IAAL;QACE,KAAKsuD,QAAL;QACA,OAAOtuD,gBAAIljB,GAAJkjB,CAAQ,GAARA,CAAP;;MACF,KAAK,IAAL;QAKE,KAAKsuD,QAAL;QACA,MAAM,IAAIx3D,iBAAJ,CAAiB,sBAAqBuU,EAAtB,EAAhB,CAAN;IAvDJ;;IA2DA,IAAI1T,MAAMT,OAAOC,YAAPD,CAAoBmU,EAApBnU,CAAV;;IAGA,IAAImU,KAAK,IAALA,IAAaA,KAAK,IAAtB,EAA4B;MAC1B,MAAM6lD,SAAS,KAAKnB,QAAL,EAAf;;MACA,IAAImB,UAAU,IAAVA,IAAkBA,UAAU,IAAhC,EAAsC;QACpC,KAAK5C,QAAL;QACA,OAAOtuD,gBAAIljB,GAAJkjB,CAAQrI,GAARqI,CAAP;MAJwB;IAnFrB;;IA0FP,MAAM4sD,gBAAgB,KAAKA,aAA3B;IACA,IAAIuE,oBAAoBvE,iBAAiBA,cAAcj1D,GAAd,MAAuBX,SAAhE;;IACA,OAAQ,MAAK,KAAKs3D,QAAL,EAAL,KAAyB,CAAzB,IAA8B,CAACqB,aAAatkD,EAAb,CAAvC,EAAyD;MAGvD,MAAM+lD,kBAAkBz5D,MAAMT,OAAOC,YAAPD,CAAoBmU,EAApBnU,CAA9B;;MACA,IAAIi6D,qBAAqBvE,cAAcwE,eAAd,MAAmCp6D,SAA5D,EAAuE;QACrE;MALqD;;MAOvD,IAAIW,IAAI9hB,MAAJ8hB,KAAe,GAAnB,EAAwB;QACtB,MAAM,IAAIb,iBAAJ,CAAiB,2BAA0Ba,IAAI9hB,MAA/B,EAAhB,CAAN;MARqD;;MAUvD8hB,MAAMy5D,eAANz5D;MACAw5D,oBAAoBvE,iBAAiBA,cAAcj1D,GAAd,MAAuBX,SAA5Dm6D;IAvGK;;IAyGP,IAAIx5D,QAAQ,MAAZ,EAAoB;MAClB,OAAO,IAAP;IA1GK;;IA4GP,IAAIA,QAAQ,OAAZ,EAAqB;MACnB,OAAO,KAAP;IA7GK;;IA+GP,IAAIA,QAAQ,MAAZ,EAAoB;MAClB,OAAO,IAAP;IAhHK;;IAmHP,IAAIA,QAAQ,IAAZ,EAAkB;MAGhB,KAAKg2D,mBAAL,GAA2B,KAAK5xE,MAAL,CAAYgc,GAAvC;IAtHK;;IAyHP,OAAOiI,gBAAIljB,GAAJkjB,CAAQrI,GAARqI,CAAP;EAhdQ;;EAmdV8sD,UAAU;IACR,MAAMuE,YAAY,KAAKt1E,MAAL,CAAYgc,GAA9B;IAAA,MACE+3D,cAAc,KAAKA,WADrB;IAAA,MAEEnC,sBAAsB,KAAKA,mBAF7B;IAIA,IAAId,OAAJ;;IACA,IAAI;MACFA,UAAU,KAAKnG,MAAL,EAAVmG;IADF,EAEE,OAAO10E,EAAP,EAAW;MACX,IAAIA,cAAc8sB,gCAAlB,EAAwC;QACtC,MAAM9sB,EAAN;MAFS;;MAIXoB,gBAAM,YAAWpB,EAAZ,EAALoB;IAZM;;IAeR,KAAKwC,MAAL,CAAYgc,GAAZ,GAAkBs5D,SAAlB;IACA,KAAKvB,WAAL,GAAmBA,WAAnB;IACA,KAAKnC,mBAAL,GAA2BA,mBAA3B;IAEA,OAAOd,OAAP;EAteQ;;EAyeVwB,iBAAiB;IACf,IAAIhjD,KAAK,KAAKykD,WAAd;;IACA,OAAOzkD,MAAM,CAAb,EAAgB;MACd,IAAIA,OAAkB,IAAtB,EAA4B;QAC1BA,KAAK,KAAKijD,QAAL,EAALjjD;;QACA,IAAIA,OAAkB,IAAtB,EAA4B;UAC1B,KAAKijD,QAAL;QAHwB;;QAK1B;MALF,OAMO,IAAIjjD,OAAkB,IAAtB,EAA4B;QACjC,KAAKijD,QAAL;QACA;MATY;;MAWdjjD,KAAK,KAAKijD,QAAL,EAALjjD;IAba;EAzeP;;AAAA;;;;AA2fZ,MAAM+K,aAAN,CAAoB;EAClB,OAAOt2B,MAAP,CAAc/D,MAAd,EAAsB;IACpB,SAASu1E,MAAT,CAAgBC,OAAhB,EAAyB99E,IAAzB,EAA+B+9E,iBAAiB,KAAhD,EAAuD;MACrD,MAAMr7D,MAAMo7D,QAAQz0E,GAARy0E,CAAY99E,IAAZ89E,CAAZ;;MACA,IAAI38D,OAAOC,SAAPD,CAAiBuB,GAAjBvB,MAA0B48D,iBAAiBr7D,OAAO,CAAxB,GAA4BA,MAAM,CAA5DvB,CAAJ,EAAoE;QAClE,OAAOuB,GAAP;MAHmD;;MAKrD,MAAM,IAAIhiB,KAAJ,CACH,QAAOV,IAAK,mCAAb,GACE,wBAFE,CAAN;IANkB;;IAYpB,SAASg+E,QAAT,CAAkBF,OAAlB,EAA2B;MACzB,MAAMG,QAAQH,QAAQz0E,GAARy0E,CAAY,GAAZA,CAAd;MACA,IAAII,WAAJ;;MAEA,IACEnyE,MAAMC,OAAND,CAAckyE,KAAdlyE,MACE,eAAckyE,MAAM77E,MAApB,MAAgC,CAAhC,IAAqC87E,gBAAgB,CADvDnyE,CADF,EAGE;QACA,KAAK,IAAIgiC,QAAQ,CAAjB,EAAoBA,QAAQmwC,WAA5B,EAAyCnwC,OAAzC,EAAkD;UAChD,MAAMowC,OAAOF,MAAMlwC,KAAN,CAAb;;UACA,IAAI,EAAE5sB,OAAOC,SAAPD,CAAiBg9D,IAAjBh9D,KAA0Bg9D,OAAO,CAAnC,CAAJ,EAA2C;YACzC,MAAM,IAAIz9E,KAAJ,CACH,SAAQqtC,KAAM,+CADX,CAAN;UAH8C;QADlD;;QASA,OAAOkwC,KAAP;MAhBuB;;MAkBzB,MAAM,IAAIv9E,KAAJ,CAAU,wDAAV,CAAN;IA9BkB;;IAiCpB,MAAMiyE,SAAS,IAAIC,MAAJ,CAAW;MACxBC,OAAO,IAAIC,KAAJ,CAAUxqE,MAAV,CADiB;MAExB0C,MAAM;IAFkB,CAAX,CAAf;IAIA,MAAMozE,OAAOzL,OAAOM,MAAPN,EAAb;IACA,MAAM0L,OAAO1L,OAAOM,MAAPN,EAAb;IACA,MAAM2L,OAAO3L,OAAOM,MAAPN,EAAb;IACA,MAAMmL,UAAUnL,OAAOM,MAAPN,EAAhB;IACA,IAAIjwD,GAAJ,EAAStgB,MAAT;;IACA,IACE,EACE+e,OAAOC,SAAPD,CAAiBi9D,IAAjBj9D,KACAA,OAAOC,SAAPD,CAAiBk9D,IAAjBl9D,CADAA,IAEA0O,uBAAMyuD,IAANzuD,EAAY,KAAZA,CAFA1O,IAGA28D,mBAAmBlyE,gBAHnBuV,IAIA,QAAQuB,MAAMo7D,QAAQz0E,GAARy0E,CAAY,YAAZA,CAAd,MAA6C,QAJ7C38D,IAKAuB,MAAM,CANR,CADF,EASE;MACA,OAAO,IAAP;IAVF,OAWO,IAAK,UAASm7D,OAAOC,OAAP,EAAgB,GAAhB,CAAT,MAAmCx1E,OAAOlG,MAA/C,EAAuD;MAC5D,MAAM,IAAI1B,KAAJ,CACJ,uDACE,mCAFE,CAAN;IAtDkB;;IA2DpB,OAAO;MACL0B,MADK;MAEL67E,OAAOD,SAASF,OAAT,CAFF;MAGL31C,mBAAmB01C,OAAOC,OAAP,EAAgB,GAAhB,CAHd;MAILS,UAAUV,OAAOC,OAAP,EAAgB,GAAhB,CAJL;MAKLh6E,UAAU+5E,OAAOC,OAAP,EAAgB,GAAhB,CALL;MAMLU,uBAAuBX,OAAOC,OAAP,EAAgB,GAAhB,CANlB;MAOLt1C,WAAWs1C,QAAQ/vD,GAAR+vD,CAAY,GAAZA,IACPD,OAAOC,OAAP,EAAgB,GAAhB,EAA4C,IAA5C,CADOA,GAEP;IATC,CAAP;EA5DgB;;AAAA;;;;;;;;;;;;;;;ACjzCpB;;AACA;;AAEA,MAAMjC,aAAN,SAA4BnkB,2BAA5B,CAAyC;EACvC33D,YAAYmkB,GAAZ,EAAiBg3D,WAAjB,EAA8B;IAG5B,IAAIA,WAAJ,EAAiB;MACfA,eAAe,GAAfA;IAJ0B;;IAM5B,MAAMA,WAAN;IAEA,KAAKh3D,GAAL,GAAWA,GAAX;IACA,KAAKuK,IAAL,GAAYvK,IAAIuK,IAAhB;IACA,KAAKgwD,KAAL,GAAa,IAAIr9E,UAAJ,CAAe,CAAf,CAAb;EAXqC;;EAcvCs9E,YAAY;IACV,MAAMC,aAAa,IAAnB;IACA,MAAMC,eAAe,IAArB;IACA,MAAM3yD,MAAM,CAAC,CAAb;IAEA,MAAM/H,MAAM,KAAKA,GAAjB;IAEA,IAAIoD,IAAIpD,IAAIgP,OAAJhP,EAAR;;IACA,OAAOyT,8BAAarQ,CAAbqQ,CAAP,EAAwB;MACtBrQ,IAAIpD,IAAIgP,OAAJhP,EAAJoD;IATQ;;IAYV,IAAIA,MAAM2E,GAAN3E,IAAaA,MAAMq3D,UAAvB,EAAmC;MACjC,KAAKE,GAAL,GAAW,IAAX;MACA;IAdQ;;IAiBV,MAAMjT,eAAe,KAAKA,YAA1B;IACA,IAAIzmD,MAAJ,EAAYniB,CAAZ;;IAGA,IAAIskB,MAAMs3D,YAAV,EAAwB;MACtBz5D,SAAS,KAAK25D,YAAL,CAAkBlT,eAAe,CAAjC,CAATzmD;;MACA,KAAKniB,IAAI,CAAT,EAAYA,IAAI,CAAhB,EAAmB,EAAEA,CAArB,EAAwB;QACtBmiB,OAAOymD,eAAe5oE,CAAtB,IAA2B,CAA3BmiB;MAHoB;;MAKtB,KAAKymD,YAAL,IAAqB,CAArB;IALF,OAMO;MACL,MAAM6S,QAAQ,KAAKA,KAAnB;MACAA,MAAM,CAAN,IAAWn3D,CAAXm3D;;MACA,KAAKz7E,IAAI,CAAT,EAAYA,IAAI,CAAhB,EAAmB,EAAEA,CAArB,EAAwB;QACtBskB,IAAIpD,IAAIgP,OAAJhP,EAAJoD;;QACA,OAAOqQ,8BAAarQ,CAAbqQ,CAAP,EAAwB;UACtBrQ,IAAIpD,IAAIgP,OAAJhP,EAAJoD;QAHoB;;QAMtBm3D,MAAMz7E,CAAN,IAAWskB,CAAXm3D;;QAEA,IAAIn3D,MAAM2E,GAAN3E,IAAaA,MAAMq3D,UAAvB,EAAmC;UACjC;QAToB;MAHnB;;MAeLx5D,SAAS,KAAK25D,YAAL,CAAkBlT,eAAe5oE,CAAf4oE,GAAmB,CAArC,CAATzmD;MACA,KAAKymD,YAAL,IAAqB5oE,IAAI,CAAzB;;MAGA,IAAIA,IAAI,CAAR,EAAW;QACT,OAAOA,IAAI,CAAX,EAAc,EAAEA,CAAhB,EAAmB;UACjBy7E,MAAMz7E,CAAN,IAAW,OAAO,EAAlBy7E;QAFO;;QAIT,KAAKI,GAAL,GAAW,IAAX;MAvBG;;MAyBL,IAAI71D,IAAI,CAAR;;MACA,KAAKhmB,IAAI,CAAT,EAAYA,IAAI,CAAhB,EAAmB,EAAEA,CAArB,EAAwB;QACtBgmB,IAAIA,IAAI,EAAJA,IAAUy1D,MAAMz7E,CAAN,IAAW,IAArBgmB,CAAJA;MA3BG;;MA8BL,KAAKhmB,IAAI,CAAT,EAAYA,KAAK,CAAjB,EAAoB,EAAEA,CAAtB,EAAyB;QACvBmiB,OAAOymD,eAAe5oE,CAAtB,IAA2BgmB,IAAI,IAA/B7D;QACA6D,MAAM,CAANA;MAhCG;IA3BG;EAd2B;;AAAA;;;;;;;;;;;;;;;ACHzC;;AACA;;AAMA,MAAM+1D,cAAc,IAAI39E,UAAJ,CAAe,CAAf,CAApB;;AAGA,MAAMs2D,YAAN,SAA2B/+B,uBAA3B,CAAsC;EACpC54B,YAAYi/E,oBAAZ,EAAkC;IAChC;IACA,KAAKC,mBAAL,GAA2BD,wBAAwB,CAAnD;IAEA,KAAK16D,GAAL,GAAW,CAAX;IACA,KAAKsnD,YAAL,GAAoB,CAApB;IACA,KAAKiT,GAAL,GAAW,KAAX;IACA,KAAK15D,MAAL,GAAc45D,WAAd;IACA,KAAKG,eAAL,GAAuB,GAAvB;;IACA,IAAIF,oBAAJ,EAA0B;MAExB,OAAO,KAAKE,eAAL,GAAuBF,oBAA9B,EAAoD;QAClD,KAAKE,eAAL,IAAwB,CAAxB;MAHsB;IATM;EADE;;EAkBpC,IAAIpkD,OAAJ,GAAc;IACZ,OAAO,CAAC,KAAK+jD,GAAN,IAAa,KAAKjT,YAAL,KAAsB,CAA1C,EAA6C;MAC3C,KAAK8S,SAAL;IAFU;;IAIZ,OAAO,KAAK9S,YAAL,KAAsB,CAA7B;EAtBkC;;EAyBpCkT,aAAaK,SAAb,EAAwB;IACtB,MAAMh6D,SAAS,KAAKA,MAApB;;IACA,IAAIg6D,aAAah6D,OAAO3c,UAAxB,EAAoC;MAClC,OAAO2c,MAAP;IAHoB;;IAKtB,IAAIiI,OAAO,KAAK8xD,eAAhB;;IACA,OAAO9xD,OAAO+xD,SAAd,EAAyB;MACvB/xD,QAAQ,CAARA;IAPoB;;IAStB,MAAMgyD,UAAU,IAAIh+E,UAAJ,CAAegsB,IAAf,CAAhB;IACAgyD,QAAQ36D,GAAR26D,CAAYj6D,MAAZi6D;IACA,OAAQ,KAAKj6D,MAAL,GAAci6D,OAAtB;EApCkC;;EAuCpClsD,UAAU;IACR,MAAM5O,MAAM,KAAKA,GAAjB;;IACA,OAAO,KAAKsnD,YAAL,IAAqBtnD,GAA5B,EAAiC;MAC/B,IAAI,KAAKu6D,GAAT,EAAc;QACZ,OAAO,CAAC,CAAR;MAF6B;;MAI/B,KAAKH,SAAL;IANM;;IAQR,OAAO,KAAKv5D,MAAL,CAAY,KAAKb,GAAL,EAAZ,CAAP;EA/CkC;;EAkDpC6O,SAAS/wB,MAAT,EAAiB;IACf,MAAMkiB,MAAM,KAAKA,GAAjB;IACA,IAAI0M,GAAJ;;IAEA,IAAI5uB,MAAJ,EAAY;MACV,KAAK08E,YAAL,CAAkBx6D,MAAMliB,MAAxB;MACA4uB,MAAM1M,MAAMliB,MAAZ4uB;;MAEA,OAAO,CAAC,KAAK6tD,GAAN,IAAa,KAAKjT,YAAL,GAAoB56C,GAAxC,EAA6C;QAC3C,KAAK0tD,SAAL;MALQ;;MAOV,MAAMW,SAAS,KAAKzT,YAApB;;MACA,IAAI56C,MAAMquD,MAAV,EAAkB;QAChBruD,MAAMquD,MAANruD;MATQ;IAAZ,OAWO;MACL,OAAO,CAAC,KAAK6tD,GAAb,EAAkB;QAChB,KAAKH,SAAL;MAFG;;MAIL1tD,MAAM,KAAK46C,YAAX56C;IAnBa;;IAsBf,KAAK1M,GAAL,GAAW0M,GAAX;IACA,OAAO,KAAK7L,MAAL,CAAYnB,QAAZ,CAAqBM,GAArB,EAA0B0M,GAA1B,CAAP;EAzEkC;;EA4EpCyK,QAAQ;IACN,KAAKnX,GAAL,GAAW,CAAX;EA7EkC;;EAgFpCgP,cAAc7lB,KAAd,EAAqBrL,MAArB,EAA6BqsB,OAAO,IAApC,EAA0C;IACxC,IAAIrsB,WAAWmhB,SAAf,EAA0B;MACxB,OAAO,CAAC,KAAKs7D,GAAb,EAAkB;QAChB,KAAKH,SAAL;MAFsB;IAA1B,OAIO;MACL,MAAM1tD,MAAMvjB,QAAQrL,MAApB;;MACA,OAAO,KAAKwpE,YAAL,IAAqB56C,GAArB,IAA4B,CAAC,KAAK6tD,GAAzC,EAA8C;QAC5C,KAAKH,SAAL;MAHG;IALiC;;IAWxC,OAAO,IAAIztD,cAAJ,CAAW,KAAK9L,MAAhB,EAAwB1X,KAAxB,EAA+BrL,MAA/B,EAAuCqsB,IAAvC,CAAP;EA3FkC;;EA8FpCiF,iBAAiB;IACf,OAAO,KAAKxP,GAAL,GAAW,KAAKA,GAAL,CAASwP,cAAT,EAAX,GAAuC,IAA9C;EA/FkC;;AAAA;;;;AAmGtC,MAAM8J,qBAAN,SAAoCk6B,YAApC,CAAiD;EAC/C33D,YAAYwkC,OAAZ,EAAqB5O,UAAU,IAA/B,EAAqC;IACnC,IAAIulD,cAAc,CAAlB;;IACA,WAAW5yE,MAAX,IAAqBi8B,OAArB,EAA8B;MAC5B22C,eACE5yE,kBAAkBovD,YAAlBpvD,GACIA,OAAO22E,mBADX32E,GAEIA,OAAOlG,MAHb84E;IAHiC;;IAQnC,MAAMA,WAAN;IAEA,KAAK32C,OAAL,GAAeA,OAAf;IACA,KAAK+6C,QAAL,GAAgB3pD,OAAhB;EAZ6C;;EAe/C+oD,YAAY;IACV,MAAMn6C,UAAU,KAAKA,OAArB;;IACA,IAAIA,QAAQniC,MAARmiC,KAAmB,CAAvB,EAA0B;MACxB,KAAKs6C,GAAL,GAAW,IAAX;MACA;IAJQ;;IAMV,MAAMv2E,SAASi8B,QAAQ4c,KAAR5c,EAAf;IACA,IAAIxgB,KAAJ;;IACA,IAAI;MACFA,QAAQzb,OAAO6qB,QAAP7qB,EAARyb;IADF,EAEE,OAAOpgB,MAAP,EAAe;MACf,IAAI,KAAK27E,QAAT,EAAmB;QACjB,KAAKA,QAAL,CAAc37E,MAAd,EAAsB2E,OAAOmmB,IAAPnmB,IAAeA,OAAOmmB,IAAPnmB,CAAYykB,KAAjD;;QACA;MAHa;;MAKf,MAAMppB,MAAN;IAfQ;;IAiBV,MAAMioE,eAAe,KAAKA,YAA1B;IACA,MAAM2T,YAAY3T,eAAe7nD,MAAM3hB,MAAvC;IACA,MAAM+iB,SAAS,KAAK25D,YAAL,CAAkBS,SAAlB,CAAf;IACAp6D,OAAOV,GAAPU,CAAWpB,KAAXoB,EAAkBymD,YAAlBzmD;IACA,KAAKymD,YAAL,GAAoB2T,SAApB;EApC6C;;EAuC/C7rD,iBAAiB;IACf,MAAM8rD,iBAAiB,EAAvB;;IACA,WAAWl3E,MAAX,IAAqB,KAAKi8B,OAA1B,EAAmC;MACjC,MAAMk7C,cAAcn3E,OAAOorB,cAAPprB,EAApB;;MACA,IAAIm3E,WAAJ,EAAiB;QACfD,eAAer9E,IAAfq9E,CAAoB,GAAGC,WAAvBD;MAH+B;IAFpB;;IAQf,OAAOA,eAAep9E,MAAfo9E,GAAwB,CAAxBA,GAA4BA,cAA5BA,GAA6C,IAApD;EA/C6C;;AAAA;;;;;;;;;;;;;;;AC7GjD;;AAEA,MAAM1D,cAAN,SAA6BpkB,2BAA7B,CAA0C;EACxC33D,YAAYmkB,GAAZ,EAAiBg3D,WAAjB,EAA8B;IAG5B,IAAIA,WAAJ,EAAiB;MACfA,eAAe,GAAfA;IAJ0B;;IAM5B,MAAMA,WAAN;IAEA,KAAKh3D,GAAL,GAAWA,GAAX;IACA,KAAKuK,IAAL,GAAYvK,IAAIuK,IAAhB;IAEA,KAAK6uD,UAAL,GAAkB,CAAC,CAAnB;EAZsC;;EAexCoB,YAAY;IACV,MAAMgB,sBAAsB,IAA5B;IACA,MAAMn3E,QAAQ,KAAK2b,GAAL,CAASiP,QAAT,CAAkBusD,mBAAlB,CAAd;;IACA,IAAI,CAACn3E,MAAMnG,MAAX,EAAmB;MACjB,KAAKy8E,GAAL,GAAW,IAAX;MACA;IALQ;;IAQV,MAAMc,kBAAmBp3E,MAAMnG,MAANmG,GAAe,CAAfA,IAAqB,CAA9C;IACA,MAAM4c,SAAS,KAAK25D,YAAL,CAAkB,KAAKlT,YAAL,GAAoB+T,eAAtC,CAAf;IACA,IAAI/T,eAAe,KAAKA,YAAxB;IAEA,IAAI0R,aAAa,KAAKA,UAAtB;;IACA,WAAW1lD,EAAX,IAAiBrvB,KAAjB,EAAwB;MACtB,IAAIq3E,KAAJ;;MACA,IAAIhoD,MAAkB,IAAlBA,IAA0BA,MAAkB,IAAhD,EAAsD;QACpDgoD,QAAQhoD,KAAK,IAAbgoD;MADF,OAEO,IACJhoD,MAAkB,IAAlBA,IAA0BA,MAAkB,IAA5CA,IACAA,MAAkB,IAAlBA,IAA0BA,MAAkB,IAFxC,EAGL;QACAgoD,QAAS,MAAK,IAAL,IAAa,CAAtBA;MAJK,OAKA,IAAIhoD,OAAmB,IAAvB,EAA6B;QAClC,KAAKinD,GAAL,GAAW,IAAX;QACA;MAFK,OAGA;QAEL;MAdoB;;MAgBtB,IAAIvB,aAAa,CAAjB,EAAoB;QAClBA,aAAasC,KAAbtC;MADF,OAEO;QACLn4D,OAAOymD,cAAP,IAA0B0R,cAAc,CAAdA,GAAmBsC,KAA7Cz6D;QACAm4D,aAAa,CAAC,CAAdA;MApBoB;IAbd;;IAoCV,IAAIA,cAAc,CAAdA,IAAmB,KAAKuB,GAA5B,EAAiC;MAE/B15D,OAAOymD,cAAP,IAAyB0R,cAAc,CAAvCn4D;MACAm4D,aAAa,CAAC,CAAdA;IAvCQ;;IAyCV,KAAKA,UAAL,GAAkBA,UAAlB;IACA,KAAK1R,YAAL,GAAoBA,YAApB;EAzDsC;;AAAA;;;;;;;;;;;;;;;ACF1C;;AACA;;AACA;;AAEA,MAAMmQ,cAAN,SAA6BrkB,2BAA7B,CAA0C;EACxC33D,YAAYmkB,GAAZ,EAAiBg3D,WAAjB,EAA8B7kC,MAA9B,EAAsC;IACpC,MAAM6kC,WAAN;IAEA,KAAKh3D,GAAL,GAAWA,GAAX;IACA,KAAKuK,IAAL,GAAYvK,IAAIuK,IAAhB;;IAEA,IAAI,EAAE4nB,kBAAkBzqC,gBAApB,CAAJ,EAA+B;MAC7ByqC,SAASzqC,iBAAKqiB,KAAdooB;IAPkC;;IAUpC,MAAM9xC,SAAS;MACbm7D,OAAO;QACL,OAAOx7C,IAAIgP,OAAJhP,EAAP;MAFW;;IAAA,CAAf;IAKA,KAAK27D,eAAL,GAAuB,IAAIC,sBAAJ,CAAoBv7E,MAApB,EAA4B;MACjD8S,GAAGg/B,OAAOhtC,GAAPgtC,CAAW,GAAXA,CAD8C;MAEjD0pC,WAAW1pC,OAAOhtC,GAAPgtC,CAAW,WAAXA,CAFsC;MAGjD2pC,kBAAkB3pC,OAAOhtC,GAAPgtC,CAAW,kBAAXA,CAH+B;MAIjD4pC,SAAS5pC,OAAOhtC,GAAPgtC,CAAW,SAAXA,CAJwC;MAKjD6pC,MAAM7pC,OAAOhtC,GAAPgtC,CAAW,MAAXA,CAL2C;MAMjD8pC,YAAY9pC,OAAOhtC,GAAPgtC,CAAW,YAAXA,CANqC;MAOjD+pC,UAAU/pC,OAAOhtC,GAAPgtC,CAAW,UAAXA;IAPuC,CAA5B,CAAvB;EAhBsC;;EA2BxCqoC,YAAY;IACV,OAAO,CAAC,KAAKG,GAAb,EAAkB;MAChB,MAAMv3D,IAAI,KAAKu4D,eAAL,CAAqBQ,YAArB,EAAV;;MACA,IAAI/4D,MAAM,CAAC,CAAX,EAAc;QACZ,KAAKu3D,GAAL,GAAW,IAAX;QACA;MAJc;;MAMhB,KAAKC,YAAL,CAAkB,KAAKlT,YAAL,GAAoB,CAAtC;MACA,KAAKzmD,MAAL,CAAY,KAAKymD,YAAL,EAAZ,IAAmCtkD,CAAnC;IARQ;EA3B4B;;AAAA;;;;;;;;;;;;;;;ACE1C;;AAQA,MAAMg5D,WAAW,CAAC,CAAlB;AACA,MAAMC,WAAW,CAAC,CAAlB;AACA,MAAMC,aAAa,CAAnB;AACA,MAAMC,cAAc,CAApB;AACA,MAAMC,cAAc,CAApB;AACA,MAAMC,eAAe,CAArB;AACA,MAAMC,eAAe,CAArB;AACA,MAAMC,eAAe,CAArB;AACA,MAAMC,eAAe,CAArB;AACA,MAAMC,eAAe,CAArB;AACA,MAAMC,eAAe,CAArB;AAGA,MAAMC,cAAc,CAClB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CADkB,EACR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CADQ,EAElB,CAAC,CAAD,EAAID,YAAJ,CAFkB,EAGlB,CAAC,CAAD,EAAID,YAAJ,CAHkB,EAIlB,CAAC,CAAD,EAAID,YAAJ,CAJkB,EAIC,CAAC,CAAD,EAAIA,YAAJ,CAJD,EAKlB,CAAC,CAAD,EAAID,YAAJ,CALkB,EAKC,CAAC,CAAD,EAAIA,YAAJ,CALD,EAMlB,CAAC,CAAD,EAAIL,UAAJ,CANkB,EAMD,CAAC,CAAD,EAAIA,UAAJ,CANC,EAOlB,CAAC,CAAD,EAAIA,UAAJ,CAPkB,EAOD,CAAC,CAAD,EAAIA,UAAJ,CAPC,EAQlB,CAAC,CAAD,EAAIA,UAAJ,CARkB,EAQD,CAAC,CAAD,EAAIA,UAAJ,CARC,EASlB,CAAC,CAAD,EAAIA,UAAJ,CATkB,EASD,CAAC,CAAD,EAAIA,UAAJ,CATC,EAUlB,CAAC,CAAD,EAAIC,WAAJ,CAVkB,EAUA,CAAC,CAAD,EAAIA,WAAJ,CAVA,EAWlB,CAAC,CAAD,EAAIA,WAAJ,CAXkB,EAWA,CAAC,CAAD,EAAIA,WAAJ,CAXA,EAYlB,CAAC,CAAD,EAAIA,WAAJ,CAZkB,EAYA,CAAC,CAAD,EAAIA,WAAJ,CAZA,EAalB,CAAC,CAAD,EAAIA,WAAJ,CAbkB,EAaA,CAAC,CAAD,EAAIA,WAAJ,CAbA,EAclB,CAAC,CAAD,EAAIA,WAAJ,CAdkB,EAcA,CAAC,CAAD,EAAIA,WAAJ,CAdA,EAelB,CAAC,CAAD,EAAIA,WAAJ,CAfkB,EAeA,CAAC,CAAD,EAAIA,WAAJ,CAfA,EAgBlB,CAAC,CAAD,EAAIA,WAAJ,CAhBkB,EAgBA,CAAC,CAAD,EAAIA,WAAJ,CAhBA,EAiBlB,CAAC,CAAD,EAAIA,WAAJ,CAjBkB,EAiBA,CAAC,CAAD,EAAIA,WAAJ,CAjBA,EAkBlB,CAAC,CAAD,EAAIG,YAAJ,CAlBkB,EAkBC,CAAC,CAAD,EAAIA,YAAJ,CAlBD,EAmBlB,CAAC,CAAD,EAAIA,YAAJ,CAnBkB,EAmBC,CAAC,CAAD,EAAIA,YAAJ,CAnBD,EAoBlB,CAAC,CAAD,EAAIA,YAAJ,CApBkB,EAoBC,CAAC,CAAD,EAAIA,YAAJ,CApBD,EAqBlB,CAAC,CAAD,EAAIA,YAAJ,CArBkB,EAqBC,CAAC,CAAD,EAAIA,YAAJ,CArBD,EAsBlB,CAAC,CAAD,EAAIA,YAAJ,CAtBkB,EAsBC,CAAC,CAAD,EAAIA,YAAJ,CAtBD,EAuBlB,CAAC,CAAD,EAAIA,YAAJ,CAvBkB,EAuBC,CAAC,CAAD,EAAIA,YAAJ,CAvBD,EAwBlB,CAAC,CAAD,EAAIA,YAAJ,CAxBkB,EAwBC,CAAC,CAAD,EAAIA,YAAJ,CAxBD,EAyBlB,CAAC,CAAD,EAAIA,YAAJ,CAzBkB,EAyBC,CAAC,CAAD,EAAIA,YAAJ,CAzBD,EA0BlB,CAAC,CAAD,EAAID,YAAJ,CA1BkB,EA0BC,CAAC,CAAD,EAAIA,YAAJ,CA1BD,EA2BlB,CAAC,CAAD,EAAIA,YAAJ,CA3BkB,EA2BC,CAAC,CAAD,EAAIA,YAAJ,CA3BD,EA4BlB,CAAC,CAAD,EAAIA,YAAJ,CA5BkB,EA4BC,CAAC,CAAD,EAAIA,YAAJ,CA5BD,EA6BlB,CAAC,CAAD,EAAIA,YAAJ,CA7BkB,EA6BC,CAAC,CAAD,EAAIA,YAAJ,CA7BD,EA8BlB,CAAC,CAAD,EAAIA,YAAJ,CA9BkB,EA8BC,CAAC,CAAD,EAAIA,YAAJ,CA9BD,EA+BlB,CAAC,CAAD,EAAIA,YAAJ,CA/BkB,EA+BC,CAAC,CAAD,EAAIA,YAAJ,CA/BD,EAgClB,CAAC,CAAD,EAAIA,YAAJ,CAhCkB,EAgCC,CAAC,CAAD,EAAIA,YAAJ,CAhCD,EAiClB,CAAC,CAAD,EAAIA,YAAJ,CAjCkB,EAiCC,CAAC,CAAD,EAAIA,YAAJ,CAjCD,EAkClB,CAAC,CAAD,EAAID,WAAJ,CAlCkB,EAkCA,CAAC,CAAD,EAAIA,WAAJ,CAlCA,EAmClB,CAAC,CAAD,EAAIA,WAAJ,CAnCkB,EAmCA,CAAC,CAAD,EAAIA,WAAJ,CAnCA,EAoClB,CAAC,CAAD,EAAIA,WAAJ,CApCkB,EAoCA,CAAC,CAAD,EAAIA,WAAJ,CApCA,EAqClB,CAAC,CAAD,EAAIA,WAAJ,CArCkB,EAqCA,CAAC,CAAD,EAAIA,WAAJ,CArCA,EAsClB,CAAC,CAAD,EAAIA,WAAJ,CAtCkB,EAsCA,CAAC,CAAD,EAAIA,WAAJ,CAtCA,EAuClB,CAAC,CAAD,EAAIA,WAAJ,CAvCkB,EAuCA,CAAC,CAAD,EAAIA,WAAJ,CAvCA,EAwClB,CAAC,CAAD,EAAIA,WAAJ,CAxCkB,EAwCA,CAAC,CAAD,EAAIA,WAAJ,CAxCA,EAyClB,CAAC,CAAD,EAAIA,WAAJ,CAzCkB,EAyCA,CAAC,CAAD,EAAIA,WAAJ,CAzCA,EA0ClB,CAAC,CAAD,EAAIA,WAAJ,CA1CkB,EA0CA,CAAC,CAAD,EAAIA,WAAJ,CA1CA,EA2ClB,CAAC,CAAD,EAAIA,WAAJ,CA3CkB,EA2CA,CAAC,CAAD,EAAIA,WAAJ,CA3CA,EA4ClB,CAAC,CAAD,EAAIA,WAAJ,CA5CkB,EA4CA,CAAC,CAAD,EAAIA,WAAJ,CA5CA,EA6ClB,CAAC,CAAD,EAAIA,WAAJ,CA7CkB,EA6CA,CAAC,CAAD,EAAIA,WAAJ,CA7CA,EA8ClB,CAAC,CAAD,EAAIA,WAAJ,CA9CkB,EA8CA,CAAC,CAAD,EAAIA,WAAJ,CA9CA,EA+ClB,CAAC,CAAD,EAAIA,WAAJ,CA/CkB,EA+CA,CAAC,CAAD,EAAIA,WAAJ,CA/CA,EAgDlB,CAAC,CAAD,EAAIA,WAAJ,CAhDkB,EAgDA,CAAC,CAAD,EAAIA,WAAJ,CAhDA,EAiDlB,CAAC,CAAD,EAAIA,WAAJ,CAjDkB,EAiDA,CAAC,CAAD,EAAIA,WAAJ,CAjDA,EAkDlB,CAAC,CAAD,EAAIA,WAAJ,CAlDkB,EAkDA,CAAC,CAAD,EAAIA,WAAJ,CAlDA,EAmDlB,CAAC,CAAD,EAAIA,WAAJ,CAnDkB,EAmDA,CAAC,CAAD,EAAIA,WAAJ,CAnDA,EAoDlB,CAAC,CAAD,EAAIA,WAAJ,CApDkB,EAoDA,CAAC,CAAD,EAAIA,WAAJ,CApDA,EAqDlB,CAAC,CAAD,EAAIA,WAAJ,CArDkB,EAqDA,CAAC,CAAD,EAAIA,WAAJ,CArDA,EAsDlB,CAAC,CAAD,EAAIA,WAAJ,CAtDkB,EAsDA,CAAC,CAAD,EAAIA,WAAJ,CAtDA,EAuDlB,CAAC,CAAD,EAAIA,WAAJ,CAvDkB,EAuDA,CAAC,CAAD,EAAIA,WAAJ,CAvDA,EAwDlB,CAAC,CAAD,EAAIA,WAAJ,CAxDkB,EAwDA,CAAC,CAAD,EAAIA,WAAJ,CAxDA,EAyDlB,CAAC,CAAD,EAAIA,WAAJ,CAzDkB,EAyDA,CAAC,CAAD,EAAIA,WAAJ,CAzDA,EA0DlB,CAAC,CAAD,EAAIA,WAAJ,CA1DkB,EA0DA,CAAC,CAAD,EAAIA,WAAJ,CA1DA,EA2DlB,CAAC,CAAD,EAAIA,WAAJ,CA3DkB,EA2DA,CAAC,CAAD,EAAIA,WAAJ,CA3DA,EA4DlB,CAAC,CAAD,EAAIA,WAAJ,CA5DkB,EA4DA,CAAC,CAAD,EAAIA,WAAJ,CA5DA,EA6DlB,CAAC,CAAD,EAAIA,WAAJ,CA7DkB,EA6DA,CAAC,CAAD,EAAIA,WAAJ,CA7DA,EA8DlB,CAAC,CAAD,EAAIA,WAAJ,CA9DkB,EA8DA,CAAC,CAAD,EAAIA,WAAJ,CA9DA,EA+DlB,CAAC,CAAD,EAAIA,WAAJ,CA/DkB,EA+DA,CAAC,CAAD,EAAIA,WAAJ,CA/DA,EAgElB,CAAC,CAAD,EAAIA,WAAJ,CAhEkB,EAgEA,CAAC,CAAD,EAAIA,WAAJ,CAhEA,EAiElB,CAAC,CAAD,EAAIA,WAAJ,CAjEkB,EAiEA,CAAC,CAAD,EAAIA,WAAJ,CAjEA,CAApB;AAqEA,MAAMQ,cAAc,CAClB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CADkB,EAElB,CAAC,EAAD,EAAKZ,QAAL,CAFkB,EAGlB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAHkB,EAGR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAHQ,EAIlB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAJkB,EAIR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAJQ,EAIE,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAJF,EAIY,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAJZ,EAKlB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CALkB,EAKR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CALQ,EAKE,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CALF,EAKY,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CALZ,EAMlB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CANkB,EAMR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CANQ,EAME,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CANF,EAMY,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CANZ,EAOlB,CAAC,EAAD,EAAK,IAAL,CAPkB,EAON,CAAC,EAAD,EAAK,IAAL,CAPM,EAQlB,CAAC,EAAD,EAAK,IAAL,CARkB,EASlB,CAAC,EAAD,EAAK,IAAL,CATkB,EAUlB,CAAC,EAAD,EAAK,IAAL,CAVkB,EAWlB,CAAC,EAAD,EAAK,IAAL,CAXkB,EAYlB,CAAC,EAAD,EAAK,IAAL,CAZkB,EAalB,CAAC,EAAD,EAAK,IAAL,CAbkB,EAclB,CAAC,EAAD,EAAK,IAAL,CAdkB,EAcN,CAAC,EAAD,EAAK,IAAL,CAdM,EAelB,CAAC,EAAD,EAAK,IAAL,CAfkB,EAeN,CAAC,EAAD,EAAK,IAAL,CAfM,EAgBlB,CAAC,EAAD,EAAK,IAAL,CAhBkB,EAiBlB,CAAC,EAAD,EAAK,IAAL,CAjBkB,EAkBlB,CAAC,EAAD,EAAK,IAAL,CAlBkB,EAmBlB,CAAC,EAAD,EAAK,IAAL,CAnBkB,CAApB;AAuBA,MAAMa,cAAc,CAClB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CADkB,EACR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CADQ,EACE,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CADF,EACY,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CADZ,EAElB,CAAC,CAAD,EAAI,EAAJ,CAFkB,EAET,CAAC,CAAD,EAAI,EAAJ,CAFS,EAGlB,CAAC,CAAD,EAAI,EAAJ,CAHkB,EAGT,CAAC,CAAD,EAAI,EAAJ,CAHS,EAIlB,CAAC,CAAD,EAAI,EAAJ,CAJkB,EAIT,CAAC,CAAD,EAAI,EAAJ,CAJS,EAKlB,CAAC,CAAD,EAAI,EAAJ,CALkB,EAKT,CAAC,CAAD,EAAI,EAAJ,CALS,EAMlB,CAAC,CAAD,EAAI,EAAJ,CANkB,EAMT,CAAC,CAAD,EAAI,EAAJ,CANS,EAMA,CAAC,CAAD,EAAI,EAAJ,CANA,EAMS,CAAC,CAAD,EAAI,EAAJ,CANT,EAOlB,CAAC,CAAD,EAAI,EAAJ,CAPkB,EAOT,CAAC,CAAD,EAAI,EAAJ,CAPS,EAOA,CAAC,CAAD,EAAI,EAAJ,CAPA,EAOS,CAAC,CAAD,EAAI,EAAJ,CAPT,EAQlB,CAAC,CAAD,EAAI,EAAJ,CARkB,EAQT,CAAC,CAAD,EAAI,EAAJ,CARS,EASlB,CAAC,CAAD,EAAI,EAAJ,CATkB,EAST,CAAC,CAAD,EAAI,EAAJ,CATS,EAUlB,CAAC,CAAD,EAAI,EAAJ,CAVkB,EAUT,CAAC,CAAD,EAAI,EAAJ,CAVS,EAUA,CAAC,CAAD,EAAI,EAAJ,CAVA,EAUS,CAAC,CAAD,EAAI,EAAJ,CAVT,EAWlB,CAAC,CAAD,EAAI,EAAJ,CAXkB,EAWT,CAAC,CAAD,EAAI,EAAJ,CAXS,EAWA,CAAC,CAAD,EAAI,EAAJ,CAXA,EAWS,CAAC,CAAD,EAAI,EAAJ,CAXT,EAYlB,CAAC,CAAD,EAAI,EAAJ,CAZkB,EAYT,CAAC,CAAD,EAAI,EAAJ,CAZS,EAYA,CAAC,CAAD,EAAI,EAAJ,CAZA,EAYS,CAAC,CAAD,EAAI,EAAJ,CAZT,EAalB,CAAC,CAAD,EAAI,EAAJ,CAbkB,EAaT,CAAC,CAAD,EAAI,EAAJ,CAbS,EAclB,CAAC,CAAD,EAAI,EAAJ,CAdkB,EAcT,CAAC,CAAD,EAAI,EAAJ,CAdS,EAelB,CAAC,CAAD,EAAI,EAAJ,CAfkB,EAeT,CAAC,CAAD,EAAI,EAAJ,CAfS,EAgBlB,CAAC,CAAD,EAAI,EAAJ,CAhBkB,EAgBT,CAAC,CAAD,EAAI,EAAJ,CAhBS,EAiBlB,CAAC,CAAD,EAAI,EAAJ,CAjBkB,EAiBT,CAAC,CAAD,EAAI,EAAJ,CAjBS,EAkBlB,CAAC,CAAD,EAAI,EAAJ,CAlBkB,EAkBT,CAAC,CAAD,EAAI,EAAJ,CAlBS,EAmBlB,CAAC,CAAD,EAAI,EAAJ,CAnBkB,EAmBT,CAAC,CAAD,EAAI,EAAJ,CAnBS,EAmBA,CAAC,CAAD,EAAI,EAAJ,CAnBA,EAmBS,CAAC,CAAD,EAAI,EAAJ,CAnBT,EAoBlB,CAAC,CAAD,EAAI,EAAJ,CApBkB,EAoBT,CAAC,CAAD,EAAI,EAAJ,CApBS,EAqBlB,CAAC,CAAD,EAAI,EAAJ,CArBkB,EAqBT,CAAC,CAAD,EAAI,EAAJ,CArBS,EAsBlB,CAAC,CAAD,EAAI,CAAJ,CAtBkB,EAsBV,CAAC,CAAD,EAAI,CAAJ,CAtBU,EAsBF,CAAC,CAAD,EAAI,CAAJ,CAtBE,EAsBM,CAAC,CAAD,EAAI,CAAJ,CAtBN,EAuBlB,CAAC,CAAD,EAAI,CAAJ,CAvBkB,EAuBV,CAAC,CAAD,EAAI,CAAJ,CAvBU,EAuBF,CAAC,CAAD,EAAI,CAAJ,CAvBE,EAuBM,CAAC,CAAD,EAAI,CAAJ,CAvBN,EAwBlB,CAAC,CAAD,EAAI,EAAJ,CAxBkB,EAwBT,CAAC,CAAD,EAAI,EAAJ,CAxBS,EAwBA,CAAC,CAAD,EAAI,EAAJ,CAxBA,EAwBS,CAAC,CAAD,EAAI,EAAJ,CAxBT,EAyBlB,CAAC,CAAD,EAAI,EAAJ,CAzBkB,EAyBT,CAAC,CAAD,EAAI,EAAJ,CAzBS,EAyBA,CAAC,CAAD,EAAI,EAAJ,CAzBA,EAyBS,CAAC,CAAD,EAAI,EAAJ,CAzBT,EA0BlB,CAAC,CAAD,EAAI,EAAJ,CA1BkB,EA0BT,CAAC,CAAD,EAAI,EAAJ,CA1BS,EA2BlB,CAAC,CAAD,EAAI,EAAJ,CA3BkB,EA2BT,CAAC,CAAD,EAAI,EAAJ,CA3BS,EA4BlB,CAAC,CAAD,EAAI,EAAJ,CA5BkB,EA4BT,CAAC,CAAD,EAAI,EAAJ,CA5BS,EA4BA,CAAC,CAAD,EAAI,EAAJ,CA5BA,EA4BS,CAAC,CAAD,EAAI,EAAJ,CA5BT,EA6BlB,CAAC,CAAD,EAAI,EAAJ,CA7BkB,EA6BT,CAAC,CAAD,EAAI,EAAJ,CA7BS,EA8BlB,CAAC,CAAD,EAAI,EAAJ,CA9BkB,EA8BT,CAAC,CAAD,EAAI,EAAJ,CA9BS,EA+BlB,CAAC,CAAD,EAAI,EAAJ,CA/BkB,EA+BT,CAAC,CAAD,EAAI,EAAJ,CA/BS,EAgClB,CAAC,CAAD,EAAI,EAAJ,CAhCkB,EAgCT,CAAC,CAAD,EAAI,EAAJ,CAhCS,EAiClB,CAAC,CAAD,EAAI,EAAJ,CAjCkB,EAiCT,CAAC,CAAD,EAAI,EAAJ,CAjCS,EAkClB,CAAC,CAAD,EAAI,EAAJ,CAlCkB,EAkCT,CAAC,CAAD,EAAI,EAAJ,CAlCS,EAmClB,CAAC,CAAD,EAAI,EAAJ,CAnCkB,EAmCT,CAAC,CAAD,EAAI,EAAJ,CAnCS,EAmCA,CAAC,CAAD,EAAI,EAAJ,CAnCA,EAmCS,CAAC,CAAD,EAAI,EAAJ,CAnCT,EAoClB,CAAC,CAAD,EAAI,EAAJ,CApCkB,EAoCT,CAAC,CAAD,EAAI,EAAJ,CApCS,EAoCA,CAAC,CAAD,EAAI,EAAJ,CApCA,EAoCS,CAAC,CAAD,EAAI,EAAJ,CApCT,EAqClB,CAAC,CAAD,EAAI,EAAJ,CArCkB,EAqCT,CAAC,CAAD,EAAI,EAAJ,CArCS,EAsClB,CAAC,CAAD,EAAI,EAAJ,CAtCkB,EAsCT,CAAC,CAAD,EAAI,EAAJ,CAtCS,EAuClB,CAAC,CAAD,EAAI,EAAJ,CAvCkB,EAuCT,CAAC,CAAD,EAAI,EAAJ,CAvCS,EAwClB,CAAC,CAAD,EAAI,CAAJ,CAxCkB,EAwCV,CAAC,CAAD,EAAI,CAAJ,CAxCU,EAyClB,CAAC,CAAD,EAAI,GAAJ,CAzCkB,EAyCR,CAAC,CAAD,EAAI,GAAJ,CAzCQ,EA0ClB,CAAC,CAAD,EAAI,GAAJ,CA1CkB,EA0CR,CAAC,CAAD,EAAI,GAAJ,CA1CQ,EA2ClB,CAAC,CAAD,EAAI,EAAJ,CA3CkB,EA2CT,CAAC,CAAD,EAAI,EAAJ,CA3CS,EA2CA,CAAC,CAAD,EAAI,EAAJ,CA3CA,EA2CS,CAAC,CAAD,EAAI,EAAJ,CA3CT,EA4ClB,CAAC,CAAD,EAAI,EAAJ,CA5CkB,EA4CT,CAAC,CAAD,EAAI,EAAJ,CA5CS,EA4CA,CAAC,CAAD,EAAI,EAAJ,CA5CA,EA4CS,CAAC,CAAD,EAAI,EAAJ,CA5CT,EA6ClB,CAAC,CAAD,EAAI,EAAJ,CA7CkB,EA6CT,CAAC,CAAD,EAAI,EAAJ,CA7CS,EA6CA,CAAC,CAAD,EAAI,EAAJ,CA7CA,EA6CS,CAAC,CAAD,EAAI,EAAJ,CA7CT,EA8ClB,CAAC,CAAD,EAAI,EAAJ,CA9CkB,EA8CT,CAAC,CAAD,EAAI,EAAJ,CA9CS,EA8CA,CAAC,CAAD,EAAI,EAAJ,CA9CA,EA8CS,CAAC,CAAD,EAAI,EAAJ,CA9CT,EA+ClB,CAAC,CAAD,EAAI,EAAJ,CA/CkB,EA+CT,CAAC,CAAD,EAAI,EAAJ,CA/CS,EA+CA,CAAC,CAAD,EAAI,EAAJ,CA/CA,EA+CS,CAAC,CAAD,EAAI,EAAJ,CA/CT,EAgDlB,CAAC,CAAD,EAAI,EAAJ,CAhDkB,EAgDT,CAAC,CAAD,EAAI,EAAJ,CAhDS,EAgDA,CAAC,CAAD,EAAI,EAAJ,CAhDA,EAgDS,CAAC,CAAD,EAAI,EAAJ,CAhDT,EAiDlB,CAAC,CAAD,EAAI,EAAJ,CAjDkB,EAiDT,CAAC,CAAD,EAAI,EAAJ,CAjDS,EAiDA,CAAC,CAAD,EAAI,EAAJ,CAjDA,EAiDS,CAAC,CAAD,EAAI,EAAJ,CAjDT,EAkDlB,CAAC,CAAD,EAAI,EAAJ,CAlDkB,EAkDT,CAAC,CAAD,EAAI,EAAJ,CAlDS,EAkDA,CAAC,CAAD,EAAI,EAAJ,CAlDA,EAkDS,CAAC,CAAD,EAAI,EAAJ,CAlDT,EAmDlB,CAAC,CAAD,EAAI,EAAJ,CAnDkB,EAmDT,CAAC,CAAD,EAAI,EAAJ,CAnDS,EAmDA,CAAC,CAAD,EAAI,EAAJ,CAnDA,EAmDS,CAAC,CAAD,EAAI,EAAJ,CAnDT,EAoDlB,CAAC,CAAD,EAAI,EAAJ,CApDkB,EAoDT,CAAC,CAAD,EAAI,EAAJ,CApDS,EAqDlB,CAAC,CAAD,EAAI,EAAJ,CArDkB,EAqDT,CAAC,CAAD,EAAI,EAAJ,CArDS,EAsDlB,CAAC,CAAD,EAAI,IAAJ,CAtDkB,EAuDlB,CAAC,CAAD,EAAI,IAAJ,CAvDkB,EAwDlB,CAAC,CAAD,EAAI,IAAJ,CAxDkB,EAyDlB,CAAC,CAAD,EAAI,IAAJ,CAzDkB,EA0DlB,CAAC,CAAD,EAAI,EAAJ,CA1DkB,EA0DT,CAAC,CAAD,EAAI,EAAJ,CA1DS,EA0DA,CAAC,CAAD,EAAI,EAAJ,CA1DA,EA0DS,CAAC,CAAD,EAAI,EAAJ,CA1DT,EA2DlB,CAAC,CAAD,EAAI,EAAJ,CA3DkB,EA2DT,CAAC,CAAD,EAAI,EAAJ,CA3DS,EA2DA,CAAC,CAAD,EAAI,EAAJ,CA3DA,EA2DS,CAAC,CAAD,EAAI,EAAJ,CA3DT,EA4DlB,CAAC,CAAD,EAAI,EAAJ,CA5DkB,EA4DT,CAAC,CAAD,EAAI,EAAJ,CA5DS,EA6DlB,CAAC,CAAD,EAAI,EAAJ,CA7DkB,EA6DT,CAAC,CAAD,EAAI,EAAJ,CA7DS,EA8DlB,CAAC,CAAD,EAAI,EAAJ,CA9DkB,EA8DT,CAAC,CAAD,EAAI,EAAJ,CA9DS,EA+DlB,CAAC,CAAD,EAAI,EAAJ,CA/DkB,EA+DT,CAAC,CAAD,EAAI,EAAJ,CA/DS,EAgElB,CAAC,CAAD,EAAI,EAAJ,CAhEkB,EAgET,CAAC,CAAD,EAAI,EAAJ,CAhES,EAgEA,CAAC,CAAD,EAAI,EAAJ,CAhEA,EAgES,CAAC,CAAD,EAAI,EAAJ,CAhET,EAiElB,CAAC,CAAD,EAAI,EAAJ,CAjEkB,EAiET,CAAC,CAAD,EAAI,EAAJ,CAjES,EAkElB,CAAC,CAAD,EAAI,EAAJ,CAlEkB,EAkET,CAAC,CAAD,EAAI,EAAJ,CAlES,EAmElB,CAAC,CAAD,EAAI,EAAJ,CAnEkB,EAmET,CAAC,CAAD,EAAI,EAAJ,CAnES,EAoElB,CAAC,CAAD,EAAI,EAAJ,CApEkB,EAoET,CAAC,CAAD,EAAI,EAAJ,CApES,EAqElB,CAAC,CAAD,EAAI,GAAJ,CArEkB,EAqER,CAAC,CAAD,EAAI,GAAJ,CArEQ,EAqEE,CAAC,CAAD,EAAI,GAAJ,CArEF,EAqEY,CAAC,CAAD,EAAI,GAAJ,CArEZ,EAsElB,CAAC,CAAD,EAAI,GAAJ,CAtEkB,EAsER,CAAC,CAAD,EAAI,GAAJ,CAtEQ,EAsEE,CAAC,CAAD,EAAI,GAAJ,CAtEF,EAsEY,CAAC,CAAD,EAAI,GAAJ,CAtEZ,EAuElB,CAAC,CAAD,EAAI,IAAJ,CAvEkB,EAuEP,CAAC,CAAD,EAAI,IAAJ,CAvEO,EAuEI,CAAC,CAAD,EAAI,IAAJ,CAvEJ,EAuEe,CAAC,CAAD,EAAI,IAAJ,CAvEf,EAwElB,CAAC,CAAD,EAAI,IAAJ,CAxEkB,EAwEP,CAAC,CAAD,EAAI,IAAJ,CAxEO,EAwEI,CAAC,CAAD,EAAI,IAAJ,CAxEJ,EAwEe,CAAC,CAAD,EAAI,IAAJ,CAxEf,EAyElB,CAAC,CAAD,EAAI,GAAJ,CAzEkB,EAyER,CAAC,CAAD,EAAI,GAAJ,CAzEQ,EA0ElB,CAAC,CAAD,EAAI,GAAJ,CA1EkB,EA0ER,CAAC,CAAD,EAAI,GAAJ,CA1EQ,EA2ElB,CAAC,CAAD,EAAI,GAAJ,CA3EkB,EA4ElB,CAAC,CAAD,EAAI,GAAJ,CA5EkB,EA6ElB,CAAC,CAAD,EAAI,GAAJ,CA7EkB,EA6ER,CAAC,CAAD,EAAI,GAAJ,CA7EQ,EA8ElB,CAAC,CAAD,EAAI,GAAJ,CA9EkB,EA8ER,CAAC,CAAD,EAAI,GAAJ,CA9EQ,EA+ElB,CAAC,CAAD,EAAI,GAAJ,CA/EkB,EAgFlB,CAAC,CAAD,EAAI,GAAJ,CAhFkB,EAiFlB,CAAC,CAAD,EAAI,GAAJ,CAjFkB,EAkFlB,CAAC,CAAD,EAAI,IAAJ,CAlFkB,EAmFlB,CAAC,CAAD,EAAI,IAAJ,CAnFkB,EAoFlB,CAAC,CAAD,EAAI,IAAJ,CApFkB,EAqFlB,CAAC,CAAD,EAAI,IAAJ,CArFkB,EAsFlB,CAAC,CAAD,EAAI,IAAJ,CAtFkB,EAuFlB,CAAC,CAAD,EAAI,IAAJ,CAvFkB,EAwFlB,CAAC,CAAD,EAAI,IAAJ,CAxFkB,EAyFlB,CAAC,CAAD,EAAI,GAAJ,CAzFkB,EAyFR,CAAC,CAAD,EAAI,GAAJ,CAzFQ,EAyFE,CAAC,CAAD,EAAI,GAAJ,CAzFF,EAyFY,CAAC,CAAD,EAAI,GAAJ,CAzFZ,EA0FlB,CAAC,CAAD,EAAI,CAAJ,CA1FkB,EA0FV,CAAC,CAAD,EAAI,CAAJ,CA1FU,EA0FF,CAAC,CAAD,EAAI,CAAJ,CA1FE,EA0FM,CAAC,CAAD,EAAI,CAAJ,CA1FN,EA2FlB,CAAC,CAAD,EAAI,CAAJ,CA3FkB,EA2FV,CAAC,CAAD,EAAI,CAAJ,CA3FU,EA2FF,CAAC,CAAD,EAAI,CAAJ,CA3FE,EA2FM,CAAC,CAAD,EAAI,CAAJ,CA3FN,EA4FlB,CAAC,CAAD,EAAI,CAAJ,CA5FkB,EA4FV,CAAC,CAAD,EAAI,CAAJ,CA5FU,EA4FF,CAAC,CAAD,EAAI,CAAJ,CA5FE,EA4FM,CAAC,CAAD,EAAI,CAAJ,CA5FN,EA6FlB,CAAC,CAAD,EAAI,CAAJ,CA7FkB,EA6FV,CAAC,CAAD,EAAI,CAAJ,CA7FU,EA6FF,CAAC,CAAD,EAAI,CAAJ,CA7FE,EA6FM,CAAC,CAAD,EAAI,CAAJ,CA7FN,EA8FlB,CAAC,CAAD,EAAI,CAAJ,CA9FkB,EA8FV,CAAC,CAAD,EAAI,CAAJ,CA9FU,EA8FF,CAAC,CAAD,EAAI,CAAJ,CA9FE,EA8FM,CAAC,CAAD,EAAI,CAAJ,CA9FN,EA+FlB,CAAC,CAAD,EAAI,CAAJ,CA/FkB,EA+FV,CAAC,CAAD,EAAI,CAAJ,CA/FU,EA+FF,CAAC,CAAD,EAAI,CAAJ,CA/FE,EA+FM,CAAC,CAAD,EAAI,CAAJ,CA/FN,EAgGlB,CAAC,CAAD,EAAI,CAAJ,CAhGkB,EAgGV,CAAC,CAAD,EAAI,CAAJ,CAhGU,EAgGF,CAAC,CAAD,EAAI,CAAJ,CAhGE,EAgGM,CAAC,CAAD,EAAI,CAAJ,CAhGN,EAiGlB,CAAC,CAAD,EAAI,CAAJ,CAjGkB,EAiGV,CAAC,CAAD,EAAI,CAAJ,CAjGU,EAiGF,CAAC,CAAD,EAAI,CAAJ,CAjGE,EAiGM,CAAC,CAAD,EAAI,CAAJ,CAjGN,EAkGlB,CAAC,CAAD,EAAI,CAAJ,CAlGkB,EAkGV,CAAC,CAAD,EAAI,CAAJ,CAlGU,EAkGF,CAAC,CAAD,EAAI,CAAJ,CAlGE,EAkGM,CAAC,CAAD,EAAI,CAAJ,CAlGN,EAmGlB,CAAC,CAAD,EAAI,CAAJ,CAnGkB,EAmGV,CAAC,CAAD,EAAI,CAAJ,CAnGU,EAmGF,CAAC,CAAD,EAAI,CAAJ,CAnGE,EAmGM,CAAC,CAAD,EAAI,CAAJ,CAnGN,EAoGlB,CAAC,CAAD,EAAI,CAAJ,CApGkB,EAoGV,CAAC,CAAD,EAAI,CAAJ,CApGU,EAoGF,CAAC,CAAD,EAAI,CAAJ,CApGE,EAoGM,CAAC,CAAD,EAAI,CAAJ,CApGN,EAqGlB,CAAC,CAAD,EAAI,CAAJ,CArGkB,EAqGV,CAAC,CAAD,EAAI,CAAJ,CArGU,EAqGF,CAAC,CAAD,EAAI,CAAJ,CArGE,EAqGM,CAAC,CAAD,EAAI,CAAJ,CArGN,EAsGlB,CAAC,CAAD,EAAI,CAAJ,CAtGkB,EAsGV,CAAC,CAAD,EAAI,CAAJ,CAtGU,EAsGF,CAAC,CAAD,EAAI,CAAJ,CAtGE,EAsGM,CAAC,CAAD,EAAI,CAAJ,CAtGN,EAuGlB,CAAC,CAAD,EAAI,CAAJ,CAvGkB,EAuGV,CAAC,CAAD,EAAI,CAAJ,CAvGU,EAuGF,CAAC,CAAD,EAAI,CAAJ,CAvGE,EAuGM,CAAC,CAAD,EAAI,CAAJ,CAvGN,EAwGlB,CAAC,CAAD,EAAI,CAAJ,CAxGkB,EAwGV,CAAC,CAAD,EAAI,CAAJ,CAxGU,EAwGF,CAAC,CAAD,EAAI,CAAJ,CAxGE,EAwGM,CAAC,CAAD,EAAI,CAAJ,CAxGN,EAyGlB,CAAC,CAAD,EAAI,CAAJ,CAzGkB,EAyGV,CAAC,CAAD,EAAI,CAAJ,CAzGU,EAyGF,CAAC,CAAD,EAAI,CAAJ,CAzGE,EAyGM,CAAC,CAAD,EAAI,CAAJ,CAzGN,EA0GlB,CAAC,CAAD,EAAI,GAAJ,CA1GkB,EA0GR,CAAC,CAAD,EAAI,GAAJ,CA1GQ,EA0GE,CAAC,CAAD,EAAI,GAAJ,CA1GF,EA0GY,CAAC,CAAD,EAAI,GAAJ,CA1GZ,EA2GlB,CAAC,CAAD,EAAI,GAAJ,CA3GkB,EA2GR,CAAC,CAAD,EAAI,GAAJ,CA3GQ,EA2GE,CAAC,CAAD,EAAI,GAAJ,CA3GF,EA2GY,CAAC,CAAD,EAAI,GAAJ,CA3GZ,EA4GlB,CAAC,CAAD,EAAI,GAAJ,CA5GkB,EA4GR,CAAC,CAAD,EAAI,GAAJ,CA5GQ,EA4GE,CAAC,CAAD,EAAI,GAAJ,CA5GF,EA4GY,CAAC,CAAD,EAAI,GAAJ,CA5GZ,EA6GlB,CAAC,CAAD,EAAI,GAAJ,CA7GkB,EA6GR,CAAC,CAAD,EAAI,GAAJ,CA7GQ,EA6GE,CAAC,CAAD,EAAI,GAAJ,CA7GF,EA6GY,CAAC,CAAD,EAAI,GAAJ,CA7GZ,EA8GlB,CAAC,CAAD,EAAI,CAAJ,CA9GkB,EA8GV,CAAC,CAAD,EAAI,CAAJ,CA9GU,EA8GF,CAAC,CAAD,EAAI,CAAJ,CA9GE,EA8GM,CAAC,CAAD,EAAI,CAAJ,CA9GN,EA+GlB,CAAC,CAAD,EAAI,CAAJ,CA/GkB,EA+GV,CAAC,CAAD,EAAI,CAAJ,CA/GU,EA+GF,CAAC,CAAD,EAAI,CAAJ,CA/GE,EA+GM,CAAC,CAAD,EAAI,CAAJ,CA/GN,EAgHlB,CAAC,CAAD,EAAI,CAAJ,CAhHkB,EAgHV,CAAC,CAAD,EAAI,CAAJ,CAhHU,EAgHF,CAAC,CAAD,EAAI,CAAJ,CAhHE,EAgHM,CAAC,CAAD,EAAI,CAAJ,CAhHN,EAiHlB,CAAC,CAAD,EAAI,CAAJ,CAjHkB,EAiHV,CAAC,CAAD,EAAI,CAAJ,CAjHU,EAiHF,CAAC,CAAD,EAAI,CAAJ,CAjHE,EAiHM,CAAC,CAAD,EAAI,CAAJ,CAjHN,EAkHlB,CAAC,CAAD,EAAI,CAAJ,CAlHkB,EAkHV,CAAC,CAAD,EAAI,CAAJ,CAlHU,EAkHF,CAAC,CAAD,EAAI,CAAJ,CAlHE,EAkHM,CAAC,CAAD,EAAI,CAAJ,CAlHN,EAmHlB,CAAC,CAAD,EAAI,CAAJ,CAnHkB,EAmHV,CAAC,CAAD,EAAI,CAAJ,CAnHU,EAmHF,CAAC,CAAD,EAAI,CAAJ,CAnHE,EAmHM,CAAC,CAAD,EAAI,CAAJ,CAnHN,EAoHlB,CAAC,CAAD,EAAI,CAAJ,CApHkB,EAoHV,CAAC,CAAD,EAAI,CAAJ,CApHU,EAoHF,CAAC,CAAD,EAAI,CAAJ,CApHE,EAoHM,CAAC,CAAD,EAAI,CAAJ,CApHN,EAqHlB,CAAC,CAAD,EAAI,CAAJ,CArHkB,EAqHV,CAAC,CAAD,EAAI,CAAJ,CArHU,EAqHF,CAAC,CAAD,EAAI,CAAJ,CArHE,EAqHM,CAAC,CAAD,EAAI,CAAJ,CArHN,EAsHlB,CAAC,CAAD,EAAI,EAAJ,CAtHkB,EAsHT,CAAC,CAAD,EAAI,EAAJ,CAtHS,EAsHA,CAAC,CAAD,EAAI,EAAJ,CAtHA,EAsHS,CAAC,CAAD,EAAI,EAAJ,CAtHT,EAuHlB,CAAC,CAAD,EAAI,EAAJ,CAvHkB,EAuHT,CAAC,CAAD,EAAI,EAAJ,CAvHS,EAuHA,CAAC,CAAD,EAAI,EAAJ,CAvHA,EAuHS,CAAC,CAAD,EAAI,EAAJ,CAvHT,EAwHlB,CAAC,CAAD,EAAI,EAAJ,CAxHkB,EAwHT,CAAC,CAAD,EAAI,EAAJ,CAxHS,EAwHA,CAAC,CAAD,EAAI,EAAJ,CAxHA,EAwHS,CAAC,CAAD,EAAI,EAAJ,CAxHT,EAyHlB,CAAC,CAAD,EAAI,EAAJ,CAzHkB,EAyHT,CAAC,CAAD,EAAI,EAAJ,CAzHS,EAyHA,CAAC,CAAD,EAAI,EAAJ,CAzHA,EAyHS,CAAC,CAAD,EAAI,EAAJ,CAzHT,EA0HlB,CAAC,CAAD,EAAI,CAAJ,CA1HkB,EA0HV,CAAC,CAAD,EAAI,CAAJ,CA1HU,EA0HF,CAAC,CAAD,EAAI,CAAJ,CA1HE,EA0HM,CAAC,CAAD,EAAI,CAAJ,CA1HN,EA2HlB,CAAC,CAAD,EAAI,CAAJ,CA3HkB,EA2HV,CAAC,CAAD,EAAI,CAAJ,CA3HU,EA2HF,CAAC,CAAD,EAAI,CAAJ,CA3HE,EA2HM,CAAC,CAAD,EAAI,CAAJ,CA3HN,EA4HlB,CAAC,CAAD,EAAI,CAAJ,CA5HkB,EA4HV,CAAC,CAAD,EAAI,CAAJ,CA5HU,EA4HF,CAAC,CAAD,EAAI,CAAJ,CA5HE,EA4HM,CAAC,CAAD,EAAI,CAAJ,CA5HN,EA6HlB,CAAC,CAAD,EAAI,CAAJ,CA7HkB,EA6HV,CAAC,CAAD,EAAI,CAAJ,CA7HU,EA6HF,CAAC,CAAD,EAAI,CAAJ,CA7HE,EA6HM,CAAC,CAAD,EAAI,CAAJ,CA7HN,EA8HlB,CAAC,CAAD,EAAI,CAAJ,CA9HkB,EA8HV,CAAC,CAAD,EAAI,CAAJ,CA9HU,EA8HF,CAAC,CAAD,EAAI,CAAJ,CA9HE,EA8HM,CAAC,CAAD,EAAI,CAAJ,CA9HN,EA+HlB,CAAC,CAAD,EAAI,CAAJ,CA/HkB,EA+HV,CAAC,CAAD,EAAI,CAAJ,CA/HU,EA+HF,CAAC,CAAD,EAAI,CAAJ,CA/HE,EA+HM,CAAC,CAAD,EAAI,CAAJ,CA/HN,EAgIlB,CAAC,CAAD,EAAI,CAAJ,CAhIkB,EAgIV,CAAC,CAAD,EAAI,CAAJ,CAhIU,EAgIF,CAAC,CAAD,EAAI,CAAJ,CAhIE,EAgIM,CAAC,CAAD,EAAI,CAAJ,CAhIN,EAiIlB,CAAC,CAAD,EAAI,CAAJ,CAjIkB,EAiIV,CAAC,CAAD,EAAI,CAAJ,CAjIU,EAiIF,CAAC,CAAD,EAAI,CAAJ,CAjIE,EAiIM,CAAC,CAAD,EAAI,CAAJ,CAjIN,EAkIlB,CAAC,CAAD,EAAI,CAAJ,CAlIkB,EAkIV,CAAC,CAAD,EAAI,CAAJ,CAlIU,EAkIF,CAAC,CAAD,EAAI,CAAJ,CAlIE,EAkIM,CAAC,CAAD,EAAI,CAAJ,CAlIN,EAmIlB,CAAC,CAAD,EAAI,CAAJ,CAnIkB,EAmIV,CAAC,CAAD,EAAI,CAAJ,CAnIU,EAmIF,CAAC,CAAD,EAAI,CAAJ,CAnIE,EAmIM,CAAC,CAAD,EAAI,CAAJ,CAnIN,EAoIlB,CAAC,CAAD,EAAI,CAAJ,CApIkB,EAoIV,CAAC,CAAD,EAAI,CAAJ,CApIU,EAoIF,CAAC,CAAD,EAAI,CAAJ,CApIE,EAoIM,CAAC,CAAD,EAAI,CAAJ,CApIN,EAqIlB,CAAC,CAAD,EAAI,CAAJ,CArIkB,EAqIV,CAAC,CAAD,EAAI,CAAJ,CArIU,EAqIF,CAAC,CAAD,EAAI,CAAJ,CArIE,EAqIM,CAAC,CAAD,EAAI,CAAJ,CArIN,EAsIlB,CAAC,CAAD,EAAI,CAAJ,CAtIkB,EAsIV,CAAC,CAAD,EAAI,CAAJ,CAtIU,EAsIF,CAAC,CAAD,EAAI,CAAJ,CAtIE,EAsIM,CAAC,CAAD,EAAI,CAAJ,CAtIN,EAuIlB,CAAC,CAAD,EAAI,CAAJ,CAvIkB,EAuIV,CAAC,CAAD,EAAI,CAAJ,CAvIU,EAuIF,CAAC,CAAD,EAAI,CAAJ,CAvIE,EAuIM,CAAC,CAAD,EAAI,CAAJ,CAvIN,EAwIlB,CAAC,CAAD,EAAI,CAAJ,CAxIkB,EAwIV,CAAC,CAAD,EAAI,CAAJ,CAxIU,EAwIF,CAAC,CAAD,EAAI,CAAJ,CAxIE,EAwIM,CAAC,CAAD,EAAI,CAAJ,CAxIN,EAyIlB,CAAC,CAAD,EAAI,CAAJ,CAzIkB,EAyIV,CAAC,CAAD,EAAI,CAAJ,CAzIU,EAyIF,CAAC,CAAD,EAAI,CAAJ,CAzIE,EAyIM,CAAC,CAAD,EAAI,CAAJ,CAzIN,EA0IlB,CAAC,CAAD,EAAI,EAAJ,CA1IkB,EA0IT,CAAC,CAAD,EAAI,EAAJ,CA1IS,EA0IA,CAAC,CAAD,EAAI,EAAJ,CA1IA,EA0IS,CAAC,CAAD,EAAI,EAAJ,CA1IT,EA2IlB,CAAC,CAAD,EAAI,EAAJ,CA3IkB,EA2IT,CAAC,CAAD,EAAI,EAAJ,CA3IS,EA2IA,CAAC,CAAD,EAAI,EAAJ,CA3IA,EA2IS,CAAC,CAAD,EAAI,EAAJ,CA3IT,EA4IlB,CAAC,CAAD,EAAI,EAAJ,CA5IkB,EA4IT,CAAC,CAAD,EAAI,EAAJ,CA5IS,EA4IA,CAAC,CAAD,EAAI,EAAJ,CA5IA,EA4IS,CAAC,CAAD,EAAI,EAAJ,CA5IT,EA6IlB,CAAC,CAAD,EAAI,EAAJ,CA7IkB,EA6IT,CAAC,CAAD,EAAI,EAAJ,CA7IS,EA6IA,CAAC,CAAD,EAAI,EAAJ,CA7IA,EA6IS,CAAC,CAAD,EAAI,EAAJ,CA7IT,EA8IlB,CAAC,CAAD,EAAI,EAAJ,CA9IkB,EA8IT,CAAC,CAAD,EAAI,EAAJ,CA9IS,EA8IA,CAAC,CAAD,EAAI,EAAJ,CA9IA,EA8IS,CAAC,CAAD,EAAI,EAAJ,CA9IT,EA+IlB,CAAC,CAAD,EAAI,EAAJ,CA/IkB,EA+IT,CAAC,CAAD,EAAI,EAAJ,CA/IS,EA+IA,CAAC,CAAD,EAAI,EAAJ,CA/IA,EA+IS,CAAC,CAAD,EAAI,EAAJ,CA/IT,EAgJlB,CAAC,CAAD,EAAI,EAAJ,CAhJkB,EAgJT,CAAC,CAAD,EAAI,EAAJ,CAhJS,EAgJA,CAAC,CAAD,EAAI,EAAJ,CAhJA,EAgJS,CAAC,CAAD,EAAI,EAAJ,CAhJT,EAiJlB,CAAC,CAAD,EAAI,EAAJ,CAjJkB,EAiJT,CAAC,CAAD,EAAI,EAAJ,CAjJS,EAiJA,CAAC,CAAD,EAAI,EAAJ,CAjJA,EAiJS,CAAC,CAAD,EAAI,EAAJ,CAjJT,EAkJlB,CAAC,CAAD,EAAI,CAAJ,CAlJkB,EAkJV,CAAC,CAAD,EAAI,CAAJ,CAlJU,EAkJF,CAAC,CAAD,EAAI,CAAJ,CAlJE,EAkJM,CAAC,CAAD,EAAI,CAAJ,CAlJN,EAmJlB,CAAC,CAAD,EAAI,CAAJ,CAnJkB,EAmJV,CAAC,CAAD,EAAI,CAAJ,CAnJU,EAmJF,CAAC,CAAD,EAAI,CAAJ,CAnJE,EAmJM,CAAC,CAAD,EAAI,CAAJ,CAnJN,EAoJlB,CAAC,CAAD,EAAI,CAAJ,CApJkB,EAoJV,CAAC,CAAD,EAAI,CAAJ,CApJU,EAoJF,CAAC,CAAD,EAAI,CAAJ,CApJE,EAoJM,CAAC,CAAD,EAAI,CAAJ,CApJN,EAqJlB,CAAC,CAAD,EAAI,CAAJ,CArJkB,EAqJV,CAAC,CAAD,EAAI,CAAJ,CArJU,EAqJF,CAAC,CAAD,EAAI,CAAJ,CArJE,EAqJM,CAAC,CAAD,EAAI,CAAJ,CArJN,EAsJlB,CAAC,CAAD,EAAI,CAAJ,CAtJkB,EAsJV,CAAC,CAAD,EAAI,CAAJ,CAtJU,EAsJF,CAAC,CAAD,EAAI,CAAJ,CAtJE,EAsJM,CAAC,CAAD,EAAI,CAAJ,CAtJN,EAuJlB,CAAC,CAAD,EAAI,CAAJ,CAvJkB,EAuJV,CAAC,CAAD,EAAI,CAAJ,CAvJU,EAuJF,CAAC,CAAD,EAAI,CAAJ,CAvJE,EAuJM,CAAC,CAAD,EAAI,CAAJ,CAvJN,EAwJlB,CAAC,CAAD,EAAI,CAAJ,CAxJkB,EAwJV,CAAC,CAAD,EAAI,CAAJ,CAxJU,EAwJF,CAAC,CAAD,EAAI,CAAJ,CAxJE,EAwJM,CAAC,CAAD,EAAI,CAAJ,CAxJN,EAyJlB,CAAC,CAAD,EAAI,CAAJ,CAzJkB,EAyJV,CAAC,CAAD,EAAI,CAAJ,CAzJU,EAyJF,CAAC,CAAD,EAAI,CAAJ,CAzJE,EAyJM,CAAC,CAAD,EAAI,CAAJ,CAzJN,EA0JlB,CAAC,CAAD,EAAI,CAAJ,CA1JkB,EA0JV,CAAC,CAAD,EAAI,CAAJ,CA1JU,EA0JF,CAAC,CAAD,EAAI,CAAJ,CA1JE,EA0JM,CAAC,CAAD,EAAI,CAAJ,CA1JN,EA2JlB,CAAC,CAAD,EAAI,CAAJ,CA3JkB,EA2JV,CAAC,CAAD,EAAI,CAAJ,CA3JU,EA2JF,CAAC,CAAD,EAAI,CAAJ,CA3JE,EA2JM,CAAC,CAAD,EAAI,CAAJ,CA3JN,EA4JlB,CAAC,CAAD,EAAI,CAAJ,CA5JkB,EA4JV,CAAC,CAAD,EAAI,CAAJ,CA5JU,EA4JF,CAAC,CAAD,EAAI,CAAJ,CA5JE,EA4JM,CAAC,CAAD,EAAI,CAAJ,CA5JN,EA6JlB,CAAC,CAAD,EAAI,CAAJ,CA7JkB,EA6JV,CAAC,CAAD,EAAI,CAAJ,CA7JU,EA6JF,CAAC,CAAD,EAAI,CAAJ,CA7JE,EA6JM,CAAC,CAAD,EAAI,CAAJ,CA7JN,EA8JlB,CAAC,CAAD,EAAI,CAAJ,CA9JkB,EA8JV,CAAC,CAAD,EAAI,CAAJ,CA9JU,EA8JF,CAAC,CAAD,EAAI,CAAJ,CA9JE,EA8JM,CAAC,CAAD,EAAI,CAAJ,CA9JN,EA+JlB,CAAC,CAAD,EAAI,CAAJ,CA/JkB,EA+JV,CAAC,CAAD,EAAI,CAAJ,CA/JU,EA+JF,CAAC,CAAD,EAAI,CAAJ,CA/JE,EA+JM,CAAC,CAAD,EAAI,CAAJ,CA/JN,EAgKlB,CAAC,CAAD,EAAI,CAAJ,CAhKkB,EAgKV,CAAC,CAAD,EAAI,CAAJ,CAhKU,EAgKF,CAAC,CAAD,EAAI,CAAJ,CAhKE,EAgKM,CAAC,CAAD,EAAI,CAAJ,CAhKN,EAiKlB,CAAC,CAAD,EAAI,CAAJ,CAjKkB,EAiKV,CAAC,CAAD,EAAI,CAAJ,CAjKU,EAiKF,CAAC,CAAD,EAAI,CAAJ,CAjKE,EAiKM,CAAC,CAAD,EAAI,CAAJ,CAjKN,CAApB;AAqKA,MAAMC,cAAc,CAClB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CADkB,EACR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CADQ,EAElB,CAAC,EAAD,EAAKd,QAAL,CAFkB,EAEF,CAAC,EAAD,EAAKA,QAAL,CAFE,EAGlB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAHkB,EAGR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAHQ,EAGE,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAHF,EAGY,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAHZ,EAIlB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAJkB,EAIR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAJQ,EAIE,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAJF,EAIY,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAJZ,EAKlB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CALkB,EAKR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CALQ,EAKE,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CALF,EAKY,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CALZ,EAMlB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CANkB,EAMR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CANQ,EAME,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CANF,EAMY,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CANZ,EAOlB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAPkB,EAOR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAPQ,EAOE,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAPF,EAOY,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAPZ,EAQlB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CARkB,EAQR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CARQ,EAQE,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CARF,EAQY,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CARZ,EASlB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CATkB,EASR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CATQ,EASE,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CATF,EASY,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CATZ,EAUlB,CAAC,EAAD,EAAK,IAAL,CAVkB,EAUN,CAAC,EAAD,EAAK,IAAL,CAVM,EAUM,CAAC,EAAD,EAAK,IAAL,CAVN,EAUkB,CAAC,EAAD,EAAK,IAAL,CAVlB,EAWlB,CAAC,EAAD,EAAK,IAAL,CAXkB,EAWN,CAAC,EAAD,EAAK,IAAL,CAXM,EAYlB,CAAC,EAAD,EAAK,IAAL,CAZkB,EAYN,CAAC,EAAD,EAAK,IAAL,CAZM,EAalB,CAAC,EAAD,EAAK,IAAL,CAbkB,EAaN,CAAC,EAAD,EAAK,IAAL,CAbM,EAclB,CAAC,EAAD,EAAK,IAAL,CAdkB,EAcN,CAAC,EAAD,EAAK,IAAL,CAdM,EAelB,CAAC,EAAD,EAAK,IAAL,CAfkB,EAeN,CAAC,EAAD,EAAK,IAAL,CAfM,EAgBlB,CAAC,EAAD,EAAK,IAAL,CAhBkB,EAgBN,CAAC,EAAD,EAAK,IAAL,CAhBM,EAiBlB,CAAC,EAAD,EAAK,IAAL,CAjBkB,EAiBN,CAAC,EAAD,EAAK,IAAL,CAjBM,EAiBM,CAAC,EAAD,EAAK,IAAL,CAjBN,EAiBkB,CAAC,EAAD,EAAK,IAAL,CAjBlB,EAkBlB,CAAC,EAAD,EAAK,IAAL,CAlBkB,EAkBN,CAAC,EAAD,EAAK,IAAL,CAlBM,EAkBM,CAAC,EAAD,EAAK,IAAL,CAlBN,EAkBkB,CAAC,EAAD,EAAK,IAAL,CAlBlB,EAmBlB,CAAC,EAAD,EAAK,IAAL,CAnBkB,EAmBN,CAAC,EAAD,EAAK,IAAL,CAnBM,EAoBlB,CAAC,EAAD,EAAK,IAAL,CApBkB,EAoBN,CAAC,EAAD,EAAK,IAAL,CApBM,EAqBlB,CAAC,EAAD,EAAK,IAAL,CArBkB,EAqBN,CAAC,EAAD,EAAK,IAAL,CArBM,EAsBlB,CAAC,EAAD,EAAK,IAAL,CAtBkB,EAsBN,CAAC,EAAD,EAAK,IAAL,CAtBM,EAuBlB,CAAC,EAAD,EAAK,EAAL,CAvBkB,EAuBR,CAAC,EAAD,EAAK,EAAL,CAvBQ,EAuBE,CAAC,EAAD,EAAK,EAAL,CAvBF,EAuBY,CAAC,EAAD,EAAK,EAAL,CAvBZ,EAwBlB,CAAC,EAAD,EAAK,EAAL,CAxBkB,EAwBR,CAAC,EAAD,EAAK,EAAL,CAxBQ,EAwBE,CAAC,EAAD,EAAK,EAAL,CAxBF,EAwBY,CAAC,EAAD,EAAK,EAAL,CAxBZ,EAyBlB,CAAC,EAAD,EAAK,EAAL,CAzBkB,EAyBR,CAAC,EAAD,EAAK,EAAL,CAzBQ,EA0BlB,CAAC,EAAD,EAAK,GAAL,CA1BkB,EA2BlB,CAAC,EAAD,EAAK,GAAL,CA3BkB,EA4BlB,CAAC,EAAD,EAAK,GAAL,CA5BkB,EA6BlB,CAAC,EAAD,EAAK,GAAL,CA7BkB,EA8BlB,CAAC,EAAD,EAAK,EAAL,CA9BkB,EA8BR,CAAC,EAAD,EAAK,EAAL,CA9BQ,EA+BlB,CAAC,EAAD,EAAK,EAAL,CA/BkB,EA+BR,CAAC,EAAD,EAAK,EAAL,CA/BQ,EAgClB,CAAC,EAAD,EAAK,IAAL,CAhCkB,EAiClB,CAAC,EAAD,EAAK,IAAL,CAjCkB,EAkClB,CAAC,EAAD,EAAK,IAAL,CAlCkB,EAmClB,CAAC,EAAD,EAAK,IAAL,CAnCkB,EAoClB,CAAC,EAAD,EAAK,EAAL,CApCkB,EAoCR,CAAC,EAAD,EAAK,EAAL,CApCQ,EAqClB,CAAC,EAAD,EAAK,EAAL,CArCkB,EAqCR,CAAC,EAAD,EAAK,EAAL,CArCQ,EAsClB,CAAC,EAAD,EAAK,IAAL,CAtCkB,EAuClB,CAAC,EAAD,EAAK,IAAL,CAvCkB,EAwClB,CAAC,EAAD,EAAK,EAAL,CAxCkB,EAwCR,CAAC,EAAD,EAAK,EAAL,CAxCQ,EAwCE,CAAC,EAAD,EAAK,EAAL,CAxCF,EAwCY,CAAC,EAAD,EAAK,EAAL,CAxCZ,EAyClB,CAAC,EAAD,EAAK,EAAL,CAzCkB,EAyCR,CAAC,EAAD,EAAK,EAAL,CAzCQ,EAyCE,CAAC,EAAD,EAAK,EAAL,CAzCF,EAyCY,CAAC,EAAD,EAAK,EAAL,CAzCZ,EA0ClB,CAAC,EAAD,EAAK,IAAL,CA1CkB,EA2ClB,CAAC,EAAD,EAAK,IAAL,CA3CkB,EA4ClB,CAAC,EAAD,EAAK,GAAL,CA5CkB,EA4CP,CAAC,EAAD,EAAK,GAAL,CA5CO,EA6ClB,CAAC,EAAD,EAAK,GAAL,CA7CkB,EA6CP,CAAC,EAAD,EAAK,GAAL,CA7CO,EA8ClB,CAAC,EAAD,EAAK,GAAL,CA9CkB,EA8CP,CAAC,EAAD,EAAK,GAAL,CA9CO,EA+ClB,CAAC,EAAD,EAAK,GAAL,CA/CkB,EAgDlB,CAAC,EAAD,EAAK,GAAL,CAhDkB,EAiDlB,CAAC,EAAD,EAAK,EAAL,CAjDkB,EAiDR,CAAC,EAAD,EAAK,EAAL,CAjDQ,EAkDlB,CAAC,EAAD,EAAK,EAAL,CAlDkB,EAkDR,CAAC,EAAD,EAAK,EAAL,CAlDQ,EAmDlB,CAAC,EAAD,EAAK,GAAL,CAnDkB,EAoDlB,CAAC,EAAD,EAAK,GAAL,CApDkB,EAqDlB,CAAC,EAAD,EAAK,IAAL,CArDkB,EAsDlB,CAAC,EAAD,EAAK,IAAL,CAtDkB,EAuDlB,CAAC,EAAD,EAAK,IAAL,CAvDkB,EAwDlB,CAAC,EAAD,EAAK,IAAL,CAxDkB,EAyDlB,CAAC,EAAD,EAAK,EAAL,CAzDkB,EAyDR,CAAC,EAAD,EAAK,EAAL,CAzDQ,EAyDE,CAAC,EAAD,EAAK,EAAL,CAzDF,EAyDY,CAAC,EAAD,EAAK,EAAL,CAzDZ,EA0DlB,CAAC,EAAD,EAAK,EAAL,CA1DkB,EA0DR,CAAC,EAAD,EAAK,EAAL,CA1DQ,EA0DE,CAAC,EAAD,EAAK,EAAL,CA1DF,EA0DY,CAAC,EAAD,EAAK,EAAL,CA1DZ,CAApB;AA8DA,MAAMe,cAAc,CAClB,CAAC,CAAD,EAAI,EAAJ,CADkB,EACT,CAAC,CAAD,EAAI,EAAJ,CADS,EACA,CAAC,CAAD,EAAI,EAAJ,CADA,EACS,CAAC,CAAD,EAAI,EAAJ,CADT,EAElB,CAAC,CAAD,EAAI,EAAJ,CAFkB,EAET,CAAC,CAAD,EAAI,EAAJ,CAFS,EAEA,CAAC,CAAD,EAAI,EAAJ,CAFA,EAES,CAAC,CAAD,EAAI,EAAJ,CAFT,EAGlB,CAAC,CAAD,EAAI,EAAJ,CAHkB,EAGT,CAAC,CAAD,EAAI,EAAJ,CAHS,EAGA,CAAC,CAAD,EAAI,EAAJ,CAHA,EAGS,CAAC,CAAD,EAAI,EAAJ,CAHT,EAIlB,CAAC,CAAD,EAAI,EAAJ,CAJkB,EAIT,CAAC,CAAD,EAAI,EAAJ,CAJS,EAIA,CAAC,CAAD,EAAI,EAAJ,CAJA,EAIS,CAAC,CAAD,EAAI,EAAJ,CAJT,EAKlB,CAAC,EAAD,EAAK,EAAL,CALkB,EAKR,CAAC,EAAD,EAAK,EAAL,CALQ,EAMlB,CAAC,EAAD,EAAK,EAAL,CANkB,EAOlB,CAAC,EAAD,EAAK,EAAL,CAPkB,EAQlB,CAAC,EAAD,EAAK,EAAL,CARkB,EASlB,CAAC,EAAD,EAAK,EAAL,CATkB,EAUlB,CAAC,EAAD,EAAK,EAAL,CAVkB,EAWlB,CAAC,EAAD,EAAK,EAAL,CAXkB,EAYlB,CAAC,EAAD,EAAK,EAAL,CAZkB,EAalB,CAAC,EAAD,EAAK,EAAL,CAbkB,EAclB,CAAC,EAAD,EAAK,EAAL,CAdkB,EAelB,CAAC,EAAD,EAAK,GAAL,CAfkB,EAgBlB,CAAC,EAAD,EAAK,EAAL,CAhBkB,EAgBR,CAAC,EAAD,EAAK,EAAL,CAhBQ,EAgBE,CAAC,EAAD,EAAK,EAAL,CAhBF,EAgBY,CAAC,EAAD,EAAK,EAAL,CAhBZ,EAiBlB,CAAC,EAAD,EAAK,EAAL,CAjBkB,EAiBR,CAAC,EAAD,EAAK,EAAL,CAjBQ,EAiBE,CAAC,EAAD,EAAK,EAAL,CAjBF,EAiBY,CAAC,EAAD,EAAK,EAAL,CAjBZ,EAkBlB,CAAC,EAAD,EAAK,EAAL,CAlBkB,EAmBlB,CAAC,EAAD,EAAK,EAAL,CAnBkB,EAoBlB,CAAC,EAAD,EAAK,EAAL,CApBkB,EAqBlB,CAAC,EAAD,EAAK,EAAL,CArBkB,EAsBlB,CAAC,EAAD,EAAK,EAAL,CAtBkB,EAuBlB,CAAC,EAAD,EAAK,EAAL,CAvBkB,EAwBlB,CAAC,EAAD,EAAK,EAAL,CAxBkB,EAyBlB,CAAC,EAAD,EAAK,EAAL,CAzBkB,EA0BlB,CAAC,EAAD,EAAK,EAAL,CA1BkB,EA2BlB,CAAC,EAAD,EAAK,EAAL,CA3BkB,EA4BlB,CAAC,EAAD,EAAK,EAAL,CA5BkB,EA4BR,CAAC,EAAD,EAAK,EAAL,CA5BQ,EA6BlB,CAAC,CAAD,EAAI,EAAJ,CA7BkB,EA6BT,CAAC,CAAD,EAAI,EAAJ,CA7BS,EA6BA,CAAC,CAAD,EAAI,EAAJ,CA7BA,EA6BS,CAAC,CAAD,EAAI,EAAJ,CA7BT,EA8BlB,CAAC,CAAD,EAAI,EAAJ,CA9BkB,EA8BT,CAAC,CAAD,EAAI,EAAJ,CA9BS,EA8BA,CAAC,CAAD,EAAI,EAAJ,CA9BA,EA8BS,CAAC,CAAD,EAAI,EAAJ,CA9BT,EA+BlB,CAAC,CAAD,EAAI,EAAJ,CA/BkB,EA+BT,CAAC,CAAD,EAAI,EAAJ,CA/BS,EA+BA,CAAC,CAAD,EAAI,EAAJ,CA/BA,EA+BS,CAAC,CAAD,EAAI,EAAJ,CA/BT,EAgClB,CAAC,CAAD,EAAI,EAAJ,CAhCkB,EAgCT,CAAC,CAAD,EAAI,EAAJ,CAhCS,EAgCA,CAAC,CAAD,EAAI,EAAJ,CAhCA,EAgCS,CAAC,CAAD,EAAI,EAAJ,CAhCT,EAiClB,CAAC,CAAD,EAAI,EAAJ,CAjCkB,EAiCT,CAAC,CAAD,EAAI,EAAJ,CAjCS,EAiCA,CAAC,CAAD,EAAI,EAAJ,CAjCA,EAiCS,CAAC,CAAD,EAAI,EAAJ,CAjCT,EAkClB,CAAC,CAAD,EAAI,EAAJ,CAlCkB,EAkCT,CAAC,CAAD,EAAI,EAAJ,CAlCS,EAkCA,CAAC,CAAD,EAAI,EAAJ,CAlCA,EAkCS,CAAC,CAAD,EAAI,EAAJ,CAlCT,EAmClB,CAAC,CAAD,EAAI,EAAJ,CAnCkB,EAmCT,CAAC,CAAD,EAAI,EAAJ,CAnCS,EAmCA,CAAC,CAAD,EAAI,EAAJ,CAnCA,EAmCS,CAAC,CAAD,EAAI,EAAJ,CAnCT,EAoClB,CAAC,CAAD,EAAI,EAAJ,CApCkB,EAoCT,CAAC,CAAD,EAAI,EAAJ,CApCS,EAoCA,CAAC,CAAD,EAAI,EAAJ,CApCA,EAoCS,CAAC,CAAD,EAAI,EAAJ,CApCT,EAqClB,CAAC,CAAD,EAAI,EAAJ,CArCkB,EAqCT,CAAC,CAAD,EAAI,EAAJ,CArCS,EAqCA,CAAC,CAAD,EAAI,EAAJ,CArCA,EAqCS,CAAC,CAAD,EAAI,EAAJ,CArCT,EAsClB,CAAC,CAAD,EAAI,EAAJ,CAtCkB,EAsCT,CAAC,CAAD,EAAI,EAAJ,CAtCS,EAsCA,CAAC,CAAD,EAAI,EAAJ,CAtCA,EAsCS,CAAC,CAAD,EAAI,EAAJ,CAtCT,EAuClB,CAAC,CAAD,EAAI,EAAJ,CAvCkB,EAuCT,CAAC,CAAD,EAAI,EAAJ,CAvCS,EAuCA,CAAC,CAAD,EAAI,EAAJ,CAvCA,EAuCS,CAAC,CAAD,EAAI,EAAJ,CAvCT,EAwClB,CAAC,CAAD,EAAI,EAAJ,CAxCkB,EAwCT,CAAC,CAAD,EAAI,EAAJ,CAxCS,EAwCA,CAAC,CAAD,EAAI,EAAJ,CAxCA,EAwCS,CAAC,CAAD,EAAI,EAAJ,CAxCT,EAyClB,CAAC,CAAD,EAAI,EAAJ,CAzCkB,EAyCT,CAAC,CAAD,EAAI,EAAJ,CAzCS,EAyCA,CAAC,CAAD,EAAI,EAAJ,CAzCA,EAyCS,CAAC,CAAD,EAAI,EAAJ,CAzCT,EA0ClB,CAAC,CAAD,EAAI,EAAJ,CA1CkB,EA0CT,CAAC,CAAD,EAAI,EAAJ,CA1CS,EA0CA,CAAC,CAAD,EAAI,EAAJ,CA1CA,EA0CS,CAAC,CAAD,EAAI,EAAJ,CA1CT,EA2ClB,CAAC,CAAD,EAAI,EAAJ,CA3CkB,EA2CT,CAAC,CAAD,EAAI,EAAJ,CA3CS,EA2CA,CAAC,CAAD,EAAI,EAAJ,CA3CA,EA2CS,CAAC,CAAD,EAAI,EAAJ,CA3CT,EA4ClB,CAAC,CAAD,EAAI,EAAJ,CA5CkB,EA4CT,CAAC,CAAD,EAAI,EAAJ,CA5CS,EA4CA,CAAC,CAAD,EAAI,EAAJ,CA5CA,EA4CS,CAAC,CAAD,EAAI,EAAJ,CA5CT,EA6ClB,CAAC,CAAD,EAAI,EAAJ,CA7CkB,EA6CT,CAAC,CAAD,EAAI,EAAJ,CA7CS,EA6CA,CAAC,CAAD,EAAI,EAAJ,CA7CA,EA6CS,CAAC,CAAD,EAAI,EAAJ,CA7CT,EA8ClB,CAAC,CAAD,EAAI,EAAJ,CA9CkB,EA8CT,CAAC,CAAD,EAAI,EAAJ,CA9CS,EA8CA,CAAC,CAAD,EAAI,EAAJ,CA9CA,EA8CS,CAAC,CAAD,EAAI,EAAJ,CA9CT,EA+ClB,CAAC,CAAD,EAAI,EAAJ,CA/CkB,EA+CT,CAAC,CAAD,EAAI,EAAJ,CA/CS,EA+CA,CAAC,CAAD,EAAI,EAAJ,CA/CA,EA+CS,CAAC,CAAD,EAAI,EAAJ,CA/CT,EAgDlB,CAAC,CAAD,EAAI,EAAJ,CAhDkB,EAgDT,CAAC,CAAD,EAAI,EAAJ,CAhDS,EAgDA,CAAC,CAAD,EAAI,EAAJ,CAhDA,EAgDS,CAAC,CAAD,EAAI,EAAJ,CAhDT,EAiDlB,CAAC,CAAD,EAAI,EAAJ,CAjDkB,EAiDT,CAAC,CAAD,EAAI,EAAJ,CAjDS,EAiDA,CAAC,CAAD,EAAI,EAAJ,CAjDA,EAiDS,CAAC,CAAD,EAAI,EAAJ,CAjDT,EAkDlB,CAAC,CAAD,EAAI,EAAJ,CAlDkB,EAkDT,CAAC,CAAD,EAAI,EAAJ,CAlDS,EAkDA,CAAC,CAAD,EAAI,EAAJ,CAlDA,EAkDS,CAAC,CAAD,EAAI,EAAJ,CAlDT,EAmDlB,CAAC,EAAD,EAAK,GAAL,CAnDkB,EAoDlB,CAAC,EAAD,EAAK,GAAL,CApDkB,EAqDlB,CAAC,EAAD,EAAK,EAAL,CArDkB,EAsDlB,CAAC,EAAD,EAAK,EAAL,CAtDkB,EAuDlB,CAAC,EAAD,EAAK,EAAL,CAvDkB,EAwDlB,CAAC,EAAD,EAAK,EAAL,CAxDkB,EAyDlB,CAAC,EAAD,EAAK,EAAL,CAzDkB,EAyDR,CAAC,EAAD,EAAK,EAAL,CAzDQ,EA0DlB,CAAC,EAAD,EAAK,EAAL,CA1DkB,EA0DR,CAAC,EAAD,EAAK,EAAL,CA1DQ,EA2DlB,CAAC,EAAD,EAAK,EAAL,CA3DkB,EA4DlB,CAAC,EAAD,EAAK,EAAL,CA5DkB,EA6DlB,CAAC,EAAD,EAAK,EAAL,CA7DkB,EA8DlB,CAAC,EAAD,EAAK,EAAL,CA9DkB,EA+DlB,CAAC,EAAD,EAAK,EAAL,CA/DkB,EAgElB,CAAC,EAAD,EAAK,EAAL,CAhEkB,EAiElB,CAAC,EAAD,EAAK,EAAL,CAjEkB,EAiER,CAAC,EAAD,EAAK,EAAL,CAjEQ,EAkElB,CAAC,EAAD,EAAK,EAAL,CAlEkB,EAmElB,CAAC,EAAD,EAAK,EAAL,CAnEkB,EAoElB,CAAC,EAAD,EAAK,CAAL,CApEkB,EAoET,CAAC,EAAD,EAAK,CAAL,CApES,EAoEA,CAAC,EAAD,EAAK,CAAL,CApEA,EAoES,CAAC,EAAD,EAAK,CAAL,CApET,EAqElB,CAAC,CAAD,EAAI,EAAJ,CArEkB,EAqET,CAAC,CAAD,EAAI,EAAJ,CArES,EAqEA,CAAC,CAAD,EAAI,EAAJ,CArEA,EAqES,CAAC,CAAD,EAAI,EAAJ,CArET,EAsElB,CAAC,CAAD,EAAI,EAAJ,CAtEkB,EAsET,CAAC,CAAD,EAAI,EAAJ,CAtES,EAsEA,CAAC,CAAD,EAAI,EAAJ,CAtEA,EAsES,CAAC,CAAD,EAAI,EAAJ,CAtET,EAuElB,CAAC,CAAD,EAAI,EAAJ,CAvEkB,EAuET,CAAC,CAAD,EAAI,EAAJ,CAvES,EAuEA,CAAC,CAAD,EAAI,EAAJ,CAvEA,EAuES,CAAC,CAAD,EAAI,EAAJ,CAvET,EAwElB,CAAC,CAAD,EAAI,EAAJ,CAxEkB,EAwET,CAAC,CAAD,EAAI,EAAJ,CAxES,EAwEA,CAAC,CAAD,EAAI,EAAJ,CAxEA,EAwES,CAAC,CAAD,EAAI,EAAJ,CAxET,EAyElB,CAAC,CAAD,EAAI,EAAJ,CAzEkB,EAyET,CAAC,CAAD,EAAI,EAAJ,CAzES,EAyEA,CAAC,CAAD,EAAI,EAAJ,CAzEA,EAyES,CAAC,CAAD,EAAI,EAAJ,CAzET,EA0ElB,CAAC,CAAD,EAAI,EAAJ,CA1EkB,EA0ET,CAAC,CAAD,EAAI,EAAJ,CA1ES,EA0EA,CAAC,CAAD,EAAI,EAAJ,CA1EA,EA0ES,CAAC,CAAD,EAAI,EAAJ,CA1ET,EA2ElB,CAAC,CAAD,EAAI,EAAJ,CA3EkB,EA2ET,CAAC,CAAD,EAAI,EAAJ,CA3ES,EA2EA,CAAC,CAAD,EAAI,EAAJ,CA3EA,EA2ES,CAAC,CAAD,EAAI,EAAJ,CA3ET,EA4ElB,CAAC,CAAD,EAAI,EAAJ,CA5EkB,EA4ET,CAAC,CAAD,EAAI,EAAJ,CA5ES,EA4EA,CAAC,CAAD,EAAI,EAAJ,CA5EA,EA4ES,CAAC,CAAD,EAAI,EAAJ,CA5ET,CAApB;AAgFA,MAAMC,cAAc,CAClB,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CADkB,EACR,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CADQ,EACE,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CADF,EACY,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CADZ,EAElB,CAAC,CAAD,EAAI,CAAJ,CAFkB,EAGlB,CAAC,CAAD,EAAI,CAAJ,CAHkB,EAIlB,CAAC,CAAD,EAAI,CAAJ,CAJkB,EAIV,CAAC,CAAD,EAAI,CAAJ,CAJU,EAKlB,CAAC,CAAD,EAAI,CAAJ,CALkB,EAKV,CAAC,CAAD,EAAI,CAAJ,CALU,EAKF,CAAC,CAAD,EAAI,CAAJ,CALE,EAKM,CAAC,CAAD,EAAI,CAAJ,CALN,EAMlB,CAAC,CAAD,EAAI,CAAJ,CANkB,EAMV,CAAC,CAAD,EAAI,CAAJ,CANU,EAMF,CAAC,CAAD,EAAI,CAAJ,CANE,EAMM,CAAC,CAAD,EAAI,CAAJ,CANN,EAOlB,CAAC,CAAD,EAAI,CAAJ,CAPkB,EAOV,CAAC,CAAD,EAAI,CAAJ,CAPU,EAOF,CAAC,CAAD,EAAI,CAAJ,CAPE,EAOM,CAAC,CAAD,EAAI,CAAJ,CAPN,EAQlB,CAAC,CAAD,EAAI,CAAJ,CARkB,EAQV,CAAC,CAAD,EAAI,CAAJ,CARU,EAQF,CAAC,CAAD,EAAI,CAAJ,CARE,EAQM,CAAC,CAAD,EAAI,CAAJ,CARN,EASlB,CAAC,CAAD,EAAI,CAAJ,CATkB,EASV,CAAC,CAAD,EAAI,CAAJ,CATU,EASF,CAAC,CAAD,EAAI,CAAJ,CATE,EASM,CAAC,CAAD,EAAI,CAAJ,CATN,EAUlB,CAAC,CAAD,EAAI,CAAJ,CAVkB,EAUV,CAAC,CAAD,EAAI,CAAJ,CAVU,EAUF,CAAC,CAAD,EAAI,CAAJ,CAVE,EAUM,CAAC,CAAD,EAAI,CAAJ,CAVN,EAWlB,CAAC,CAAD,EAAI,CAAJ,CAXkB,EAWV,CAAC,CAAD,EAAI,CAAJ,CAXU,EAWF,CAAC,CAAD,EAAI,CAAJ,CAXE,EAWM,CAAC,CAAD,EAAI,CAAJ,CAXN,EAYlB,CAAC,CAAD,EAAI,CAAJ,CAZkB,EAYV,CAAC,CAAD,EAAI,CAAJ,CAZU,EAYF,CAAC,CAAD,EAAI,CAAJ,CAZE,EAYM,CAAC,CAAD,EAAI,CAAJ,CAZN,EAalB,CAAC,CAAD,EAAI,CAAJ,CAbkB,EAaV,CAAC,CAAD,EAAI,CAAJ,CAbU,EAaF,CAAC,CAAD,EAAI,CAAJ,CAbE,EAaM,CAAC,CAAD,EAAI,CAAJ,CAbN,EAclB,CAAC,CAAD,EAAI,CAAJ,CAdkB,EAcV,CAAC,CAAD,EAAI,CAAJ,CAdU,EAcF,CAAC,CAAD,EAAI,CAAJ,CAdE,EAcM,CAAC,CAAD,EAAI,CAAJ,CAdN,EAelB,CAAC,CAAD,EAAI,CAAJ,CAfkB,EAeV,CAAC,CAAD,EAAI,CAAJ,CAfU,EAeF,CAAC,CAAD,EAAI,CAAJ,CAfE,EAeM,CAAC,CAAD,EAAI,CAAJ,CAfN,EAgBlB,CAAC,CAAD,EAAI,CAAJ,CAhBkB,EAgBV,CAAC,CAAD,EAAI,CAAJ,CAhBU,EAgBF,CAAC,CAAD,EAAI,CAAJ,CAhBE,EAgBM,CAAC,CAAD,EAAI,CAAJ,CAhBN,EAiBlB,CAAC,CAAD,EAAI,CAAJ,CAjBkB,EAiBV,CAAC,CAAD,EAAI,CAAJ,CAjBU,EAiBF,CAAC,CAAD,EAAI,CAAJ,CAjBE,EAiBM,CAAC,CAAD,EAAI,CAAJ,CAjBN,EAkBlB,CAAC,CAAD,EAAI,CAAJ,CAlBkB,EAkBV,CAAC,CAAD,EAAI,CAAJ,CAlBU,EAkBF,CAAC,CAAD,EAAI,CAAJ,CAlBE,EAkBM,CAAC,CAAD,EAAI,CAAJ,CAlBN,CAApB;;AAyBA,MAAMxB,eAAN,CAAsB;EACpB//E,YAAYwE,MAAZ,EAAoByd,UAAU,EAA9B,EAAkC;IAChC,IAAI,CAACzd,MAAD,IAAW,OAAOA,OAAOm7D,IAAd,KAAuB,UAAtC,EAAkD;MAChD,MAAM,IAAIh/D,KAAJ,CAAU,+CAAV,CAAN;IAF8B;;IAIhC,KAAK6D,MAAL,GAAcA,MAAd;IACA,KAAKs6E,GAAL,GAAW,KAAX;IAEA,KAAKn1D,QAAL,GAAgB1H,QAAQ3K,CAAR2K,IAAa,CAA7B;IACA,KAAKu/D,MAAL,GAAcv/D,QAAQ+9D,SAAR/9D,IAAqB,KAAnC;IACA,KAAKw/D,SAAL,GAAiBx/D,QAAQg+D,gBAARh+D,IAA4B,KAA7C;IACA,KAAKy/D,OAAL,GAAez/D,QAAQi+D,OAARj+D,IAAmB,IAAlC;IACA,KAAK0/D,IAAL,GAAY1/D,QAAQk+D,IAARl+D,IAAgB,CAA5B;IACA,IAAI2/D,UAAU3/D,QAAQm+D,UAAtB;;IACA,IAAIwB,YAAY,IAAZA,IAAoBA,YAAYp+D,SAApC,EAA+C;MAC7Co+D,UAAU,IAAVA;IAd8B;;IAgBhC,KAAKA,OAAL,GAAeA,OAAf;IACA,KAAKC,KAAL,GAAa5/D,QAAQo+D,QAARp+D,IAAoB,KAAjC;IAEA,KAAK6/D,UAAL,GAAkB,IAAI38D,WAAJ,CAAgB,KAAKu8D,OAAL,GAAe,CAA/B,CAAlB;IACA,KAAKK,OAAL,GAAe,IAAI58D,WAAJ,CAAgB,KAAKu8D,OAAL,GAAe,CAA/B,CAAf;IAEA,KAAKI,UAAL,CAAgB,CAAhB,IAAqB,KAAKJ,OAA1B;IACA,KAAKM,SAAL,GAAiB,CAAjB;IAEA,KAAKC,GAAL,GAAW,CAAX;IACA,KAAKC,UAAL,GAAkB,KAAKv4D,QAAL,GAAgB,CAAlC;IACA,KAAKw4D,SAAL,GAAiB,CAAjB;IACA,KAAKC,QAAL,GAAgB,CAAhB;IACA,KAAKC,UAAL,GAAkB,CAAlB;IACA,KAAKC,QAAL,GAAgB,KAAhB;IAEA,IAAIC,KAAJ;;IACA,OAAQ,SAAQ,KAAKC,SAAL,CAAe,EAAf,CAAR,MAAgC,CAAxC,EAA2C;MACzC,KAAKC,QAAL,CAAc,CAAd;IAlC8B;;IAoChC,IAAIF,UAAU,CAAd,EAAiB;MACf,KAAKE,QAAL,CAAc,EAAd;IArC8B;;IAuChC,IAAI,KAAK94D,QAAL,GAAgB,CAApB,EAAuB;MACrB,KAAKu4D,UAAL,GAAkB,CAAC,KAAKM,SAAL,CAAe,CAAf,CAAnB;;MACA,KAAKC,QAAL,CAAc,CAAd;IAzC8B;EADd;;EA8CpBnC,eAAe;IACb,IAAI,KAAKxB,GAAT,EAAc;MACZ,OAAO,CAAC,CAAR;IAFW;;IAIb,MAAMiD,UAAU,KAAKA,OAArB;IACA,MAAMD,aAAa,KAAKA,UAAxB;IACA,MAAMJ,UAAU,KAAKA,OAArB;IAEA,IAAIgB,MAAJ,EAAYC,WAAZ,EAAyBr5B,IAAzB,EAA+BrmD,CAA/B;;IAEA,IAAI,KAAKo/E,UAAL,KAAoB,CAAxB,EAA2B;MACzB,IAAI,KAAKC,QAAT,EAAmB;QACjB,KAAKxD,GAAL,GAAW,IAAX;MAFuB;;MAIzB,IAAI,KAAKA,GAAT,EAAc;QACZ,OAAO,CAAC,CAAR;MALuB;;MAOzB,KAAKjpD,GAAL,GAAW,KAAX;MAEA,IAAI0sD,KAAJ,EAAWK,KAAX,EAAkBC,KAAlB;;MACA,IAAI,KAAKX,UAAT,EAAqB;QACnB,KAAKj/E,IAAI,CAAT,EAAY6+E,WAAW7+E,CAAX,IAAgBy+E,OAA5B,EAAqC,EAAEz+E,CAAvC,EAA0C;UACxC8+E,QAAQ9+E,CAAR,IAAa6+E,WAAW7+E,CAAX,CAAb8+E;QAFiB;;QAInBA,QAAQ9+E,GAAR,IAAey+E,OAAfK;QACAA,QAAQ9+E,CAAR,IAAay+E,OAAbK;QACAD,WAAW,CAAX,IAAgB,CAAhBA;QACA,KAAKE,SAAL,GAAiB,CAAjB;QACAU,SAAS,CAATA;QACAC,cAAc,CAAdA;;QAEA,OAAOb,WAAW,KAAKE,SAAhB,IAA6BN,OAApC,EAA6C;UAC3Ca,QAAQ,KAAKO,cAAL,EAARP;;UACA,QAAQA,KAAR;YACE,KAAK9B,UAAL;cACE,KAAKsC,UAAL,CAAgBhB,QAAQW,SAAS,CAAjB,CAAhB,EAAqCC,WAArC;;cACA,IAAIZ,QAAQW,SAAS,CAAjB,IAAsBhB,OAA1B,EAAmC;gBACjCgB,UAAU,CAAVA;cAHJ;;cAKE;;YACF,KAAKhC,WAAL;cACE6B,QAAQK,QAAQ,CAAhBL;;cACA,IAAII,WAAJ,EAAiB;gBACf,GAAG;kBACDJ,SAASM,QAAQ,KAAKG,aAAL,EAAjBT;gBADF,SAESM,SAAS,EAFlB;;gBAGA,GAAG;kBACDD,SAASC,QAAQ,KAAKI,aAAL,EAAjBL;gBADF,SAESC,SAAS,EAFlB;cAJF,OAOO;gBACL,GAAG;kBACDN,SAASM,QAAQ,KAAKI,aAAL,EAAjBV;gBADF,SAESM,SAAS,EAFlB;;gBAGA,GAAG;kBACDD,SAASC,QAAQ,KAAKG,aAAL,EAAjBJ;gBADF,SAESC,SAAS,EAFlB;cAbJ;;cAiBE,KAAKE,UAAL,CAAgBjB,WAAW,KAAKE,SAAhB,IAA6BO,KAA7C,EAAoDI,WAApD;;cACA,IAAIb,WAAW,KAAKE,SAAhB,IAA6BN,OAAjC,EAA0C;gBACxC,KAAKqB,UAAL,CACEjB,WAAW,KAAKE,SAAhB,IAA6BY,KAD/B,EAEED,cAAc,CAFhB;cAnBJ;;cAwBE,OACEZ,QAAQW,MAAR,KAAmBZ,WAAW,KAAKE,SAAhB,CAAnBD,IACAA,QAAQW,MAAR,IAAkBhB,OAFpB,EAGE;gBACAgB,UAAU,CAAVA;cA5BJ;;cA8BE;;YACF,KAAK1B,YAAL;cACE,KAAK+B,UAAL,CAAgBhB,QAAQW,MAAR,IAAkB,CAAlC,EAAqCC,WAArC;;cACAA,eAAe,CAAfA;;cACA,IAAIb,WAAW,KAAKE,SAAhB,IAA6BN,OAAjC,EAA0C;gBACxC,EAAEgB,MAAF;;gBACA,OACEX,QAAQW,MAAR,KAAmBZ,WAAW,KAAKE,SAAhB,CAAnBD,IACAA,QAAQW,MAAR,IAAkBhB,OAFpB,EAGE;kBACAgB,UAAU,CAAVA;gBANsC;cAH5C;;cAYE;;YACF,KAAK5B,YAAL;cACE,KAAKiC,UAAL,CAAgBhB,QAAQW,MAAR,IAAkB,CAAlC,EAAqCC,WAArC;;cACAA,eAAe,CAAfA;;cACA,IAAIb,WAAW,KAAKE,SAAhB,IAA6BN,OAAjC,EAA0C;gBACxC,EAAEgB,MAAF;;gBACA,OACEX,QAAQW,MAAR,KAAmBZ,WAAW,KAAKE,SAAhB,CAAnBD,IACAA,QAAQW,MAAR,IAAkBhB,OAFpB,EAGE;kBACAgB,UAAU,CAAVA;gBANsC;cAH5C;;cAYE;;YACF,KAAK9B,YAAL;cACE,KAAKmC,UAAL,CAAgBhB,QAAQW,MAAR,IAAkB,CAAlC,EAAqCC,WAArC;;cACAA,eAAe,CAAfA;;cACA,IAAIb,WAAW,KAAKE,SAAhB,IAA6BN,OAAjC,EAA0C;gBACxC,EAAEgB,MAAF;;gBACA,OACEX,QAAQW,MAAR,KAAmBZ,WAAW,KAAKE,SAAhB,CAAnBD,IACAA,QAAQW,MAAR,IAAkBhB,OAFpB,EAGE;kBACAgB,UAAU,CAAVA;gBANsC;cAH5C;;cAYE;;YACF,KAAK/B,WAAL;cACE,KAAKoC,UAAL,CAAgBhB,QAAQW,MAAR,CAAhB,EAAiCC,WAAjC;;cACAA,eAAe,CAAfA;;cACA,IAAIb,WAAW,KAAKE,SAAhB,IAA6BN,OAAjC,EAA0C;gBACxC,EAAEgB,MAAF;;gBACA,OACEX,QAAQW,MAAR,KAAmBZ,WAAW,KAAKE,SAAhB,CAAnBD,IACAA,QAAQW,MAAR,IAAkBhB,OAFpB,EAGE;kBACAgB,UAAU,CAAVA;gBANsC;cAH5C;;cAYE;;YACF,KAAKzB,YAAL;cACE,KAAKiC,aAAL,CAAmBnB,QAAQW,MAAR,IAAkB,CAArC,EAAwCC,WAAxC;;cACAA,eAAe,CAAfA;;cACA,IAAIb,WAAW,KAAKE,SAAhB,IAA6BN,OAAjC,EAA0C;gBACxC,IAAIgB,SAAS,CAAb,EAAgB;kBACd,EAAEA,MAAF;gBADF,OAEO;kBACL,EAAEA,MAAF;gBAJsC;;gBAMxC,OACEX,QAAQW,MAAR,KAAmBZ,WAAW,KAAKE,SAAhB,CAAnBD,IACAA,QAAQW,MAAR,IAAkBhB,OAFpB,EAGE;kBACAgB,UAAU,CAAVA;gBAVsC;cAH5C;;cAgBE;;YACF,KAAK3B,YAAL;cACE,KAAKmC,aAAL,CAAmBnB,QAAQW,MAAR,IAAkB,CAArC,EAAwCC,WAAxC;;cACAA,eAAe,CAAfA;;cACA,IAAIb,WAAW,KAAKE,SAAhB,IAA6BN,OAAjC,EAA0C;gBACxC,IAAIgB,SAAS,CAAb,EAAgB;kBACd,EAAEA,MAAF;gBADF,OAEO;kBACL,EAAEA,MAAF;gBAJsC;;gBAMxC,OACEX,QAAQW,MAAR,KAAmBZ,WAAW,KAAKE,SAAhB,CAAnBD,IACAA,QAAQW,MAAR,IAAkBhB,OAFpB,EAGE;kBACAgB,UAAU,CAAVA;gBAVsC;cAH5C;;cAgBE;;YACF,KAAK7B,YAAL;cACE,KAAKqC,aAAL,CAAmBnB,QAAQW,MAAR,IAAkB,CAArC,EAAwCC,WAAxC;;cACAA,eAAe,CAAfA;;cACA,IAAIb,WAAW,KAAKE,SAAhB,IAA6BN,OAAjC,EAA0C;gBACxC,IAAIgB,SAAS,CAAb,EAAgB;kBACd,EAAEA,MAAF;gBADF,OAEO;kBACL,EAAEA,MAAF;gBAJsC;;gBAMxC,OACEX,QAAQW,MAAR,KAAmBZ,WAAW,KAAKE,SAAhB,CAAnBD,IACAA,QAAQW,MAAR,IAAkBhB,OAFpB,EAGE;kBACAgB,UAAU,CAAVA;gBAVsC;cAH5C;;cAgBE;;YACF,KAAKlC,QAAL;cACE,KAAKuC,UAAL,CAAgBrB,OAAhB,EAAyB,CAAzB;;cACA,KAAK5C,GAAL,GAAW,IAAX;cACA;;YACF;cACE5xE,gBAAK,aAALA;;cACA,KAAK61E,UAAL,CAAgBrB,OAAhB,EAAyB,CAAzB;;cACA,KAAK7rD,GAAL,GAAW,IAAX;UApJJ;QAbiB;MAArB,OAoKO;QACLisD,WAAW,CAAX,IAAgB,CAAhBA;QACA,KAAKE,SAAL,GAAiB,CAAjB;QACAW,cAAc,CAAdA;;QACA,OAAOb,WAAW,KAAKE,SAAhB,IAA6BN,OAApC,EAA6C;UAC3Ca,QAAQ,CAARA;;UACA,IAAII,WAAJ,EAAiB;YACf,GAAG;cACDJ,SAASM,QAAQ,KAAKG,aAAL,EAAjBT;YADF,SAESM,SAAS,EAFlB;UADF,OAIO;YACL,GAAG;cACDN,SAASM,QAAQ,KAAKI,aAAL,EAAjBV;YADF,SAESM,SAAS,EAFlB;UAPyC;;UAW3C,KAAKE,UAAL,CAAgBjB,WAAW,KAAKE,SAAhB,IAA6BO,KAA7C,EAAoDI,WAApD;;UACAA,eAAe,CAAfA;QAhBG;MA9KkB;;MAkMzB,IAAIQ,SAAS,KAAb;;MAEA,IAAI,KAAK1B,SAAT,EAAoB;QAClB,KAAKU,SAAL,IAAkB,CAAC,CAAnB;MArMuB;;MAwMzB,IAAI,CAAC,KAAKP,OAAN,IAAiB,KAAKK,GAAL,KAAa,KAAKN,IAAL,GAAY,CAA9C,EAAiD;QAC/C,KAAKW,QAAL,GAAgB,IAAhB;MADF,OAEO;QACLC,QAAQ,KAAKC,SAAL,CAAe,EAAf,CAARD;;QACA,IAAI,KAAKf,MAAT,EAAiB;UACf,OAAOe,UAAU/B,QAAV+B,IAAsBA,UAAU,CAAvC,EAA0C;YACxC,KAAKE,QAAL,CAAc,CAAd;;YACAF,QAAQ,KAAKC,SAAL,CAAe,EAAf,CAARD;UAHa;QAAjB,OAKO;UACL,OAAOA,UAAU,CAAjB,EAAoB;YAClB,KAAKE,QAAL,CAAc,CAAd;;YACAF,QAAQ,KAAKC,SAAL,CAAe,EAAf,CAARD;UAHG;QAPF;;QAaL,IAAIA,UAAU,CAAd,EAAiB;UACf,KAAKE,QAAL,CAAc,EAAd;;UACAU,SAAS,IAATA;QAFF,OAGO,IAAIZ,UAAU/B,QAAd,EAAwB;UAC7B,KAAK1B,GAAL,GAAW,IAAX;QAjBG;MA1MkB;;MA+NzB,IAAI,CAAC,KAAKA,GAAN,IAAa,KAAKn1D,QAAL,GAAgB,CAA7B,IAAkC,CAAC,KAAK24D,QAA5C,EAAsD;QACpD,KAAKJ,UAAL,GAAkB,CAAC,KAAKM,SAAL,CAAe,CAAf,CAAnB;;QACA,KAAKC,QAAL,CAAc,CAAd;MAjOuB;;MAoOzB,IAAI,KAAKb,OAAL,IAAgBuB,MAAhB,IAA0B,KAAK1B,SAAnC,EAA8C;QAC5Cc,QAAQ,KAAKC,SAAL,CAAe,EAAf,CAARD;;QACA,IAAIA,UAAU,CAAd,EAAiB;UACf,KAAKE,QAAL,CAAc,EAAd;;UACA,IAAI,KAAK94D,QAAL,GAAgB,CAApB,EAAuB;YACrB,KAAK64D,SAAL,CAAe,CAAf;;YACA,KAAKC,QAAL,CAAc,CAAd;UAJa;;UAMf,IAAI,KAAK94D,QAAL,IAAiB,CAArB,EAAwB;YACtB,KAAK1mB,IAAI,CAAT,EAAYA,IAAI,CAAhB,EAAmB,EAAEA,CAArB,EAAwB;cACtBs/E,QAAQ,KAAKC,SAAL,CAAe,EAAf,CAARD;;cACA,IAAIA,UAAU,CAAd,EAAiB;gBACfr1E,gBAAK,mBAAmBq1E,KAAxBr1E;cAHoB;;cAKtB,KAAKu1E,QAAL,CAAc,EAAd;;cACA,IAAI,KAAK94D,QAAL,GAAgB,CAApB,EAAuB;gBACrB,KAAK64D,SAAL,CAAe,CAAf;;gBACA,KAAKC,QAAL,CAAc,CAAd;cARoB;YADF;UANT;;UAmBf,KAAK3D,GAAL,GAAW,IAAX;QArB0C;MAA9C,OAuBO,IAAI,KAAKjpD,GAAL,IAAY,KAAK2rD,MAArB,EAA6B;QAClC,OAAO,IAAP,EAAa;UACXe,QAAQ,KAAKC,SAAL,CAAe,EAAf,CAARD;;UACA,IAAIA,UAAU/B,QAAd,EAAwB;YACtB,KAAK1B,GAAL,GAAW,IAAX;YACA,OAAO,CAAC,CAAR;UAJS;;UAMX,IAAIyD,SAAS,CAATA,KAAe,CAAnB,EAAsB;YACpB;UAPS;;UASX,KAAKE,QAAL,CAAc,CAAd;QAVgC;;QAYlC,KAAKA,QAAL,CAAc,EAAd;;QACA,IAAI,KAAK94D,QAAL,GAAgB,CAApB,EAAuB;UACrB,KAAK84D,QAAL,CAAc,CAAd;;UACA,KAAKP,UAAL,GAAkB,EAAEK,QAAQ,CAAV,CAAlB;QAfgC;MA3PX;;MA8QzB,IAAIT,WAAW,CAAX,IAAgB,CAApB,EAAuB;QACrB,KAAKO,UAAL,GAAkBP,WAAY,KAAKE,SAAL,GAAiB,CAA7B,CAAlB;MADF,OAEO;QACL,KAAKK,UAAL,GAAkBP,WAAY,KAAKE,SAAL,GAAiB,CAA7B,CAAlB;MAjRuB;;MAmRzB,KAAKC,GAAL;IA7RW;;IAgSb,IAAI16D,CAAJ;;IACA,IAAI,KAAK86D,UAAL,IAAmB,CAAvB,EAA0B;MACxB96D,IAAI,KAAKy6D,SAAL,GAAiB,CAAjB,GAAqB,CAArB,GAAyB,IAA7Bz6D;MACA,KAAK86D,UAAL,IAAmB,CAAnB;;MACA,IAAI,KAAKA,UAAL,KAAoB,CAApB,IAAyBP,WAAW,KAAKE,SAAhB,IAA6BN,OAA1D,EAAmE;QACjE,KAAKM,SAAL;QACA,KAAKK,UAAL,GACEP,WAAW,KAAKE,SAAhB,IAA6BF,WAAW,KAAKE,SAAL,GAAiB,CAA5B,CAD/B;MALsB;IAA1B,OAQO;MACL14B,OAAO,CAAPA;MACA/hC,IAAI,CAAJA;;MACA,GAAG;QACD,IAAI,OAAO,KAAK86D,UAAZ,KAA2B,QAA/B,EAAyC;UACvC,MAAM,IAAI/+D,iBAAJ,CACJ,8DADI,CAAN;QAFD;;QAOD,IAAI,KAAK++D,UAAL,GAAkB/4B,IAAtB,EAA4B;UAC1B/hC,MAAM+hC,IAAN/hC;;UACA,IAAI,EAAE,KAAKy6D,SAAL,GAAiB,CAAnB,CAAJ,EAA2B;YACzBz6D,KAAK,QAAS,IAAI+hC,IAAlB/hC;UAHwB;;UAK1B,KAAK86D,UAAL,IAAmB/4B,IAAnB;UACAA,OAAO,CAAPA;QANF,OAOO;UACL/hC,MAAM,KAAK86D,UAAX96D;;UACA,IAAI,EAAE,KAAKy6D,SAAL,GAAiB,CAAnB,CAAJ,EAA2B;YACzBz6D,KAAK,QAAS,IAAI,KAAK86D,UAAvB96D;UAHG;;UAKL+hC,QAAQ,KAAK+4B,UAAb/4B;UACA,KAAK+4B,UAAL,GAAkB,CAAlB;;UACA,IAAIP,WAAW,KAAKE,SAAhB,IAA6BN,OAAjC,EAA0C;YACxC,KAAKM,SAAL;YACA,KAAKK,UAAL,GACEP,WAAW,KAAKE,SAAhB,IAA6BF,WAAW,KAAKE,SAAL,GAAiB,CAA5B,CAD/B;UAFF,OAIO,IAAI14B,OAAO,CAAX,EAAc;YACnB/hC,MAAM+hC,IAAN/hC;YACA+hC,OAAO,CAAPA;UAbG;QAdN;MAAH,SA8BSA,IA9BT;IA5SW;;IA4Ub,IAAI,KAAKu4B,KAAT,EAAgB;MACdt6D,KAAK,IAALA;IA7UW;;IA+Ub,OAAOA,CAAP;EA7XkB;;EAmYpBw7D,WAAWK,EAAX,EAAeT,WAAf,EAA4B;IAC1B,MAAMb,aAAa,KAAKA,UAAxB;IACA,IAAIE,YAAY,KAAKA,SAArB;;IAEA,IAAIoB,KAAKtB,WAAWE,SAAX,CAAT,EAAgC;MAC9B,IAAIoB,KAAK,KAAK1B,OAAd,EAAuB;QACrBx0E,gBAAK,qBAALA;QACA,KAAK2oB,GAAL,GAAW,IAAX;QACAutD,KAAK,KAAK1B,OAAV0B;MAJ4B;;MAM9B,IAAKpB,YAAY,CAAZA,GAAiBW,WAAtB,EAAmC;QACjC,EAAEX,SAAF;MAP4B;;MAU9BF,WAAWE,SAAX,IAAwBoB,EAAxBtB;IAdwB;;IAgB1B,KAAKE,SAAL,GAAiBA,SAAjB;EAnZkB;;EAyZpBkB,cAAcE,EAAd,EAAkBT,WAAlB,EAA+B;IAC7B,MAAMb,aAAa,KAAKA,UAAxB;IACA,IAAIE,YAAY,KAAKA,SAArB;;IAEA,IAAIoB,KAAKtB,WAAWE,SAAX,CAAT,EAAgC;MAC9B,IAAIoB,KAAK,KAAK1B,OAAd,EAAuB;QACrBx0E,gBAAK,qBAALA;QACA,KAAK2oB,GAAL,GAAW,IAAX;QACAutD,KAAK,KAAK1B,OAAV0B;MAJ4B;;MAM9B,IAAKpB,YAAY,CAAZA,GAAiBW,WAAtB,EAAmC;QACjC,EAAEX,SAAF;MAP4B;;MAU9BF,WAAWE,SAAX,IAAwBoB,EAAxBtB;IAVF,OAWO,IAAIsB,KAAKtB,WAAWE,SAAX,CAAT,EAAgC;MACrC,IAAIoB,KAAK,CAAT,EAAY;QACVl2E,gBAAK,cAALA;QACA,KAAK2oB,GAAL,GAAW,IAAX;QACAutD,KAAK,CAALA;MAJmC;;MAMrC,OAAOpB,YAAY,CAAZA,IAAiBoB,KAAKtB,WAAWE,YAAY,CAAvB,CAA7B,EAAwD;QACtD,EAAEA,SAAF;MAPmC;;MASrCF,WAAWE,SAAX,IAAwBoB,EAAxBtB;IAxB2B;;IA2B7B,KAAKE,SAAL,GAAiBA,SAAjB;EApbkB;;EAgcpBqB,eAAe31E,KAAf,EAAsBujB,GAAtB,EAA2BqyD,KAA3B,EAAkCzhD,KAAlC,EAAyC;IACvC,MAAM0hD,aAAa1hD,SAAS,CAA5B;;IACA,KAAK,IAAI5+B,IAAIyK,KAAb,EAAoBzK,KAAKguB,GAAzB,EAA8B,EAAEhuB,CAAhC,EAAmC;MACjC,IAAIgE,OAAO,KAAKu7E,SAAL,CAAev/E,CAAf,CAAX;;MACA,IAAIgE,SAASu5E,QAAb,EAAuB;QACrB,OAAO,CAAC,IAAD,EAAO,CAAP,EAAU,KAAV,CAAP;MAH+B;;MAKjC,IAAIv9E,IAAIguB,GAAR,EAAa;QACXhqB,SAASgqB,MAAMhuB,CAAfgE;MAN+B;;MAQjC,IAAI,CAACs8E,UAAD,IAAet8E,QAAQs8E,UAA3B,EAAuC;QACrC,MAAMj9D,IAAIg9D,MAAMr8E,OAAOs8E,UAAb,CAAV;;QACA,IAAIj9D,EAAE,CAAF,MAASrjB,CAAb,EAAgB;UACd,KAAKw/E,QAAL,CAAcx/E,CAAd;;UACA,OAAO,CAAC,IAAD,EAAOqjB,EAAE,CAAF,CAAP,EAAa,IAAb,CAAP;QAJmC;MARN;IAFI;;IAkBvC,OAAO,CAAC,KAAD,EAAQ,CAAR,EAAW,KAAX,CAAP;EAldkB;;EAwdpBw8D,iBAAiB;IACf,IAAI77E,OAAO,CAAX;IACA,IAAIqf,CAAJ;;IACA,IAAI,KAAKs7D,OAAT,EAAkB;MAChB36E,OAAO,KAAKu7E,SAAL,CAAe,CAAf,CAAPv7E;MACAqf,IAAI46D,YAAYj6E,IAAZ,CAAJqf;;MACA,IAAIA,KAAKA,EAAE,CAAF,IAAO,CAAhB,EAAmB;QACjB,KAAKm8D,QAAL,CAAcn8D,EAAE,CAAF,CAAd;;QACA,OAAOA,EAAE,CAAF,CAAP;MALc;IAAlB,OAOO;MACL,MAAMwhC,SAAS,KAAKu7B,cAAL,CAAoB,CAApB,EAAuB,CAAvB,EAA0BnC,WAA1B,CAAf;;MACA,IAAIp5B,OAAO,CAAP,KAAaA,OAAO,CAAP,CAAjB,EAA4B;QAC1B,OAAOA,OAAO,CAAP,CAAP;MAHG;IAVQ;;IAgBf56C,gBAAK,kBAALA;IACA,OAAOszE,QAAP;EAzekB;;EA+epByC,gBAAgB;IACd,IAAIh8E,OAAO,CAAX;IACA,IAAIqf,CAAJ;;IACA,IAAI,KAAKs7D,OAAT,EAAkB;MAChB36E,OAAO,KAAKu7E,SAAL,CAAe,EAAf,CAAPv7E;;MACA,IAAIA,SAASu5E,QAAb,EAAuB;QACrB,OAAO,CAAP;MAHc;;MAMhB,IAAIv5E,QAAQ,CAARA,KAAc,CAAlB,EAAqB;QACnBqf,IAAI66D,YAAYl6E,IAAZ,CAAJqf;MADF,OAEO;QACLA,IAAI86D,YAAYn6E,QAAQ,CAApB,CAAJqf;MATc;;MAYhB,IAAIA,EAAE,CAAF,IAAO,CAAX,EAAc;QACZ,KAAKm8D,QAAL,CAAcn8D,EAAE,CAAF,CAAd;;QACA,OAAOA,EAAE,CAAF,CAAP;MAdc;IAAlB,OAgBO;MACL,IAAIwhC,SAAS,KAAKu7B,cAAL,CAAoB,CAApB,EAAuB,CAAvB,EAA0BjC,WAA1B,CAAb;;MACA,IAAIt5B,OAAO,CAAP,CAAJ,EAAe;QACb,OAAOA,OAAO,CAAP,CAAP;MAHG;;MAMLA,SAAS,KAAKu7B,cAAL,CAAoB,EAApB,EAAwB,EAAxB,EAA4BlC,WAA5B,CAATr5B;;MACA,IAAIA,OAAO,CAAP,CAAJ,EAAe;QACb,OAAOA,OAAO,CAAP,CAAP;MARG;IAnBO;;IA8Bd56C,gBAAK,gBAALA;;IACA,KAAKu1E,QAAL,CAAc,CAAd;;IACA,OAAO,CAAP;EA/gBkB;;EAqhBpBO,gBAAgB;IACd,IAAI/7E,IAAJ,EAAUqf,CAAV;;IACA,IAAI,KAAKs7D,OAAT,EAAkB;MAChB36E,OAAO,KAAKu7E,SAAL,CAAe,EAAf,CAAPv7E;;MACA,IAAIA,SAASu5E,QAAb,EAAuB;QACrB,OAAO,CAAP;MAHc;;MAKhB,IAAIv5E,QAAQ,CAARA,KAAc,CAAlB,EAAqB;QACnBqf,IAAI+6D,YAAYp6E,IAAZ,CAAJqf;MADF,OAEO,IAAIrf,QAAQ,CAARA,KAAc,CAAdA,IAAmBA,QAAQ,CAARA,KAAc,CAArC,EAAwC;QAC7Cqf,IAAIg7D,YAAa,SAAQ,CAAR,IAAa,EAA1B,CAAJh7D;MADK,OAEA;QACLA,IAAIi7D,YAAYt6E,QAAQ,CAApB,CAAJqf;MAVc;;MAahB,IAAIA,EAAE,CAAF,IAAO,CAAX,EAAc;QACZ,KAAKm8D,QAAL,CAAcn8D,EAAE,CAAF,CAAd;;QACA,OAAOA,EAAE,CAAF,CAAP;MAfc;IAAlB,OAiBO;MACL,IAAIwhC,SAAS,KAAKu7B,cAAL,CAAoB,CAApB,EAAuB,CAAvB,EAA0B9B,WAA1B,CAAb;;MACA,IAAIz5B,OAAO,CAAP,CAAJ,EAAe;QACb,OAAOA,OAAO,CAAP,CAAP;MAHG;;MAMLA,SAAS,KAAKu7B,cAAL,CAAoB,CAApB,EAAuB,EAAvB,EAA2B/B,WAA3B,EAAwC,EAAxC,CAATx5B;;MACA,IAAIA,OAAO,CAAP,CAAJ,EAAe;QACb,OAAOA,OAAO,CAAP,CAAP;MARG;;MAWLA,SAAS,KAAKu7B,cAAL,CAAoB,EAApB,EAAwB,EAAxB,EAA4BhC,WAA5B,CAATv5B;;MACA,IAAIA,OAAO,CAAP,CAAJ,EAAe;QACb,OAAOA,OAAO,CAAP,CAAP;MAbG;IAnBO;;IAmCd56C,gBAAK,gBAALA;;IACA,KAAKu1E,QAAL,CAAc,CAAd;;IACA,OAAO,CAAP;EA1jBkB;;EAgkBpBD,UAAU98D,CAAV,EAAa;IACX,IAAI6B,CAAJ;;IACA,OAAO,KAAK46D,SAAL,GAAiBz8D,CAAxB,EAA2B;MACzB,IAAK,KAAI,KAAKlhB,MAAL,CAAYm7D,IAAZ,EAAJ,MAA4B,CAAC,CAAlC,EAAqC;QACnC,IAAI,KAAKwiB,SAAL,KAAmB,CAAvB,EAA0B;UACxB,OAAO3B,QAAP;QAFiC;;QAInC,OAAQ,KAAK4B,QAAL,IAAkB18D,IAAI,KAAKy8D,SAA3B,GAA0C,UAAW,KAAKz8D,CAAlE;MALuB;;MAOzB,KAAK08D,QAAL,GAAiB,KAAKA,QAAL,IAAiB,CAAjB,GAAsB76D,CAAvC;MACA,KAAK46D,SAAL,IAAkB,CAAlB;IAVS;;IAYX,OAAQ,KAAKC,QAAL,IAAkB,KAAKD,SAAL,GAAiBz8D,CAAnC,GAA0C,UAAW,KAAKA,CAAlE;EA5kBkB;;EAklBpB+8D,SAAS/8D,CAAT,EAAY;IACV,IAAK,MAAKy8D,SAAL,IAAkBz8D,CAAlB,IAAuB,CAA5B,EAA+B;MAC7B,KAAKy8D,SAAL,GAAiB,CAAjB;IAFQ;EAllBQ;;AAAA;;;;;;;;;;;;;;;AC7btB;;AACA;;AAEA,MAAMqB,iBAAiB,IAAIC,UAAJ,CAAe,CACpC,EADoC,EAChC,EADgC,EAC5B,EAD4B,EACxB,CADwB,EACrB,CADqB,EAClB,CADkB,EACf,CADe,EACZ,CADY,EACT,EADS,EACL,CADK,EACF,EADE,EACE,CADF,EACK,EADL,EACS,CADT,EACY,EADZ,EACgB,CADhB,EACmB,EADnB,EACuB,CADvB,EAC0B,EAD1B,CAAf,CAAvB;AAIA,MAAMC,eAAe,IAAID,UAAJ,CAAe,CAClC,OADkC,EACzB,OADyB,EAChB,OADgB,EACP,OADO,EACE,OADF,EACW,OADX,EACoB,OADpB,EAC6B,OAD7B,EAElC,OAFkC,EAEzB,OAFyB,EAEhB,OAFgB,EAEP,OAFO,EAEE,OAFF,EAEW,OAFX,EAEoB,OAFpB,EAE6B,OAF7B,EAGlC,OAHkC,EAGzB,OAHyB,EAGhB,OAHgB,EAGP,OAHO,EAGE,OAHF,EAGW,OAHX,EAGoB,OAHpB,EAG6B,OAH7B,EAIlC,OAJkC,EAIzB,OAJyB,EAIhB,OAJgB,EAIP,OAJO,EAIE,OAJF,EAIW,OAJX,EAIoB,OAJpB,CAAf,CAArB;AAOA,MAAME,aAAa,IAAIF,UAAJ,CAAe,CAChC,OADgC,EACvB,OADuB,EACd,OADc,EACL,OADK,EACI,OADJ,EACa,OADb,EACsB,OADtB,EAC+B,OAD/B,EAEhC,OAFgC,EAEvB,OAFuB,EAEd,OAFc,EAEL,OAFK,EAEI,OAFJ,EAEa,OAFb,EAEsB,OAFtB,EAE+B,OAF/B,EAGhC,OAHgC,EAGvB,OAHuB,EAGd,OAHc,EAGL,OAHK,EAGI,OAHJ,EAGa,OAHb,EAGsB,OAHtB,EAG+B,OAH/B,EAIhC,OAJgC,EAIvB,OAJuB,EAId,OAJc,EAIL,OAJK,EAII,OAJJ,EAIa,OAJb,CAAf,CAAnB;AAOA,MAAMG,kBAAkB,CACtB,IAAIH,UAAJ,CAAe,CACb,OADa,EACJ,OADI,EACK,OADL,EACc,OADd,EACuB,OADvB,EACgC,OADhC,EACyC,OADzC,EACkD,OADlD,EAEb,OAFa,EAEJ,OAFI,EAEK,OAFL,EAEc,OAFd,EAEuB,OAFvB,EAEgC,OAFhC,EAEyC,OAFzC,EAEkD,OAFlD,EAGb,OAHa,EAGJ,OAHI,EAGK,OAHL,EAGc,OAHd,EAGuB,OAHvB,EAGgC,OAHhC,EAGyC,OAHzC,EAGkD,OAHlD,EAIb,OAJa,EAIJ,OAJI,EAIK,OAJL,EAIc,OAJd,EAIuB,OAJvB,EAIgC,OAJhC,EAIyC,OAJzC,EAIkD,OAJlD,EAKb,OALa,EAKJ,OALI,EAKK,OALL,EAKc,OALd,EAKuB,OALvB,EAKgC,OALhC,EAKyC,OALzC,EAKkD,OALlD,EAMb,OANa,EAMJ,OANI,EAMK,OANL,EAMc,OANd,EAMuB,OANvB,EAMgC,OANhC,EAMyC,OANzC,EAMkD,OANlD,EAOb,OAPa,EAOJ,OAPI,EAOK,OAPL,EAOc,OAPd,EAOuB,OAPvB,EAOgC,OAPhC,EAOyC,OAPzC,EAOkD,OAPlD,EAQb,OARa,EAQJ,OARI,EAQK,OARL,EAQc,OARd,EAQuB,OARvB,EAQgC,OARhC,EAQyC,OARzC,EAQkD,OARlD,EASb,OATa,EASJ,OATI,EASK,OATL,EASc,OATd,EASuB,OATvB,EASgC,OAThC,EASyC,OATzC,EASkD,OATlD,EAUb,OAVa,EAUJ,OAVI,EAUK,OAVL,EAUc,OAVd,EAUuB,OAVvB,EAUgC,OAVhC,EAUyC,OAVzC,EAUkD,OAVlD,EAWb,OAXa,EAWJ,OAXI,EAWK,OAXL,EAWc,OAXd,EAWuB,OAXvB,EAWgC,OAXhC,EAWyC,OAXzC,EAWkD,OAXlD,EAYb,OAZa,EAYJ,OAZI,EAYK,OAZL,EAYc,OAZd,EAYuB,OAZvB,EAYgC,OAZhC,EAYyC,OAZzC,EAYkD,OAZlD,EAab,OAba,EAaJ,OAbI,EAaK,OAbL,EAac,OAbd,EAauB,OAbvB,EAagC,OAbhC,EAayC,OAbzC,EAakD,OAblD,EAcb,OAda,EAcJ,OAdI,EAcK,OAdL,EAcc,OAdd,EAcuB,OAdvB,EAcgC,OAdhC,EAcyC,OAdzC,EAckD,OAdlD,EAeb,OAfa,EAeJ,OAfI,EAeK,OAfL,EAec,OAfd,EAeuB,OAfvB,EAegC,OAfhC,EAeyC,OAfzC,EAekD,OAflD,EAgBb,OAhBa,EAgBJ,OAhBI,EAgBK,OAhBL,EAgBc,OAhBd,EAgBuB,OAhBvB,EAgBgC,OAhBhC,EAgByC,OAhBzC,EAgBkD,OAhBlD,EAiBb,OAjBa,EAiBJ,OAjBI,EAiBK,OAjBL,EAiBc,OAjBd,EAiBuB,OAjBvB,EAiBgC,OAjBhC,EAiByC,OAjBzC,EAiBkD,OAjBlD,EAkBb,OAlBa,EAkBJ,OAlBI,EAkBK,OAlBL,EAkBc,OAlBd,EAkBuB,OAlBvB,EAkBgC,OAlBhC,EAkByC,OAlBzC,EAkBkD,OAlBlD,EAmBb,OAnBa,EAmBJ,OAnBI,EAmBK,OAnBL,EAmBc,OAnBd,EAmBuB,OAnBvB,EAmBgC,OAnBhC,EAmByC,OAnBzC,EAmBkD,OAnBlD,EAoBb,OApBa,EAoBJ,OApBI,EAoBK,OApBL,EAoBc,OApBd,EAoBuB,OApBvB,EAoBgC,OApBhC,EAoByC,OApBzC,EAoBkD,OApBlD,EAqBb,OArBa,EAqBJ,OArBI,EAqBK,OArBL,EAqBc,OArBd,EAqBuB,OArBvB,EAqBgC,OArBhC,EAqByC,OArBzC,EAqBkD,OArBlD,EAsBb,OAtBa,EAsBJ,OAtBI,EAsBK,OAtBL,EAsBc,OAtBd,EAsBuB,OAtBvB,EAsBgC,OAtBhC,EAsByC,OAtBzC,EAsBkD,OAtBlD,EAuBb,OAvBa,EAuBJ,OAvBI,EAuBK,OAvBL,EAuBc,OAvBd,EAuBuB,OAvBvB,EAuBgC,OAvBhC,EAuByC,OAvBzC,EAuBkD,OAvBlD,EAwBb,OAxBa,EAwBJ,OAxBI,EAwBK,OAxBL,EAwBc,OAxBd,EAwBuB,OAxBvB,EAwBgC,OAxBhC,EAwByC,OAxBzC,EAwBkD,OAxBlD,EAyBb,OAzBa,EAyBJ,OAzBI,EAyBK,OAzBL,EAyBc,OAzBd,EAyBuB,OAzBvB,EAyBgC,OAzBhC,EAyByC,OAzBzC,EAyBkD,OAzBlD,EA0Bb,OA1Ba,EA0BJ,OA1BI,EA0BK,OA1BL,EA0Bc,OA1Bd,EA0BuB,OA1BvB,EA0BgC,OA1BhC,EA0ByC,OA1BzC,EA0BkD,OA1BlD,EA2Bb,OA3Ba,EA2BJ,OA3BI,EA2BK,OA3BL,EA2Bc,OA3Bd,EA2BuB,OA3BvB,EA2BgC,OA3BhC,EA2ByC,OA3BzC,EA2BkD,OA3BlD,EA4Bb,OA5Ba,EA4BJ,OA5BI,EA4BK,OA5BL,EA4Bc,OA5Bd,EA4BuB,OA5BvB,EA4BgC,OA5BhC,EA4ByC,OA5BzC,EA4BkD,OA5BlD,EA6Bb,OA7Ba,EA6BJ,OA7BI,EA6BK,OA7BL,EA6Bc,OA7Bd,EA6BuB,OA7BvB,EA6BgC,OA7BhC,EA6ByC,OA7BzC,EA6BkD,OA7BlD,EA8Bb,OA9Ba,EA8BJ,OA9BI,EA8BK,OA9BL,EA8Bc,OA9Bd,EA8BuB,OA9BvB,EA8BgC,OA9BhC,EA8ByC,OA9BzC,EA8BkD,OA9BlD,EA+Bb,OA/Ba,EA+BJ,OA/BI,EA+BK,OA/BL,EA+Bc,OA/Bd,EA+BuB,OA/BvB,EA+BgC,OA/BhC,EA+ByC,OA/BzC,EA+BkD,OA/BlD,EAgCb,OAhCa,EAgCJ,OAhCI,EAgCK,OAhCL,EAgCc,OAhCd,EAgCuB,OAhCvB,EAgCgC,OAhChC,EAgCyC,OAhCzC,EAgCkD,OAhClD,EAiCb,OAjCa,EAiCJ,OAjCI,EAiCK,OAjCL,EAiCc,OAjCd,EAiCuB,OAjCvB,EAiCgC,OAjChC,EAiCyC,OAjCzC,EAiCkD,OAjClD,EAkCb,OAlCa,EAkCJ,OAlCI,EAkCK,OAlCL,EAkCc,OAlCd,EAkCuB,OAlCvB,EAkCgC,OAlChC,EAkCyC,OAlCzC,EAkCkD,OAlClD,EAmCb,OAnCa,EAmCJ,OAnCI,EAmCK,OAnCL,EAmCc,OAnCd,EAmCuB,OAnCvB,EAmCgC,OAnChC,EAmCyC,OAnCzC,EAmCkD,OAnClD,EAoCb,OApCa,EAoCJ,OApCI,EAoCK,OApCL,EAoCc,OApCd,EAoCuB,OApCvB,EAoCgC,OApChC,EAoCyC,OApCzC,EAoCkD,OApClD,EAqCb,OArCa,EAqCJ,OArCI,EAqCK,OArCL,EAqCc,OArCd,EAqCuB,OArCvB,EAqCgC,OArChC,EAqCyC,OArCzC,EAqCkD,OArClD,EAsCb,OAtCa,EAsCJ,OAtCI,EAsCK,OAtCL,EAsCc,OAtCd,EAsCuB,OAtCvB,EAsCgC,OAtChC,EAsCyC,OAtCzC,EAsCkD,OAtClD,EAuCb,OAvCa,EAuCJ,OAvCI,EAuCK,OAvCL,EAuCc,OAvCd,EAuCuB,OAvCvB,EAuCgC,OAvChC,EAuCyC,OAvCzC,EAuCkD,OAvClD,EAwCb,OAxCa,EAwCJ,OAxCI,EAwCK,OAxCL,EAwCc,OAxCd,EAwCuB,OAxCvB,EAwCgC,OAxChC,EAwCyC,OAxCzC,EAwCkD,OAxClD,EAyCb,OAzCa,EAyCJ,OAzCI,EAyCK,OAzCL,EAyCc,OAzCd,EAyCuB,OAzCvB,EAyCgC,OAzChC,EAyCyC,OAzCzC,EAyCkD,OAzClD,EA0Cb,OA1Ca,EA0CJ,OA1CI,EA0CK,OA1CL,EA0Cc,OA1Cd,EA0CuB,OA1CvB,EA0CgC,OA1ChC,EA0CyC,OA1CzC,EA0CkD,OA1ClD,EA2Cb,OA3Ca,EA2CJ,OA3CI,EA2CK,OA3CL,EA2Cc,OA3Cd,EA2CuB,OA3CvB,EA2CgC,OA3ChC,EA2CyC,OA3CzC,EA2CkD,OA3ClD,EA4Cb,OA5Ca,EA4CJ,OA5CI,EA4CK,OA5CL,EA4Cc,OA5Cd,EA4CuB,OA5CvB,EA4CgC,OA5ChC,EA4CyC,OA5CzC,EA4CkD,OA5ClD,EA6Cb,OA7Ca,EA6CJ,OA7CI,EA6CK,OA7CL,EA6Cc,OA7Cd,EA6CuB,OA7CvB,EA6CgC,OA7ChC,EA6CyC,OA7CzC,EA6CkD,OA7ClD,EA8Cb,OA9Ca,EA8CJ,OA9CI,EA8CK,OA9CL,EA8Cc,OA9Cd,EA8CuB,OA9CvB,EA8CgC,OA9ChC,EA8CyC,OA9CzC,EA8CkD,OA9ClD,EA+Cb,OA/Ca,EA+CJ,OA/CI,EA+CK,OA/CL,EA+Cc,OA/Cd,EA+CuB,OA/CvB,EA+CgC,OA/ChC,EA+CyC,OA/CzC,EA+CkD,OA/ClD,EAgDb,OAhDa,EAgDJ,OAhDI,EAgDK,OAhDL,EAgDc,OAhDd,EAgDuB,OAhDvB,EAgDgC,OAhDhC,EAgDyC,OAhDzC,EAgDkD,OAhDlD,EAiDb,OAjDa,EAiDJ,OAjDI,EAiDK,OAjDL,EAiDc,OAjDd,EAiDuB,OAjDvB,EAiDgC,OAjDhC,EAiDyC,OAjDzC,EAiDkD,OAjDlD,EAkDb,OAlDa,EAkDJ,OAlDI,EAkDK,OAlDL,EAkDc,OAlDd,EAkDuB,OAlDvB,EAkDgC,OAlDhC,EAkDyC,OAlDzC,EAkDkD,OAlDlD,EAmDb,OAnDa,EAmDJ,OAnDI,EAmDK,OAnDL,EAmDc,OAnDd,EAmDuB,OAnDvB,EAmDgC,OAnDhC,EAmDyC,OAnDzC,EAmDkD,OAnDlD,EAoDb,OApDa,EAoDJ,OApDI,EAoDK,OApDL,EAoDc,OApDd,EAoDuB,OApDvB,EAoDgC,OApDhC,EAoDyC,OApDzC,EAoDkD,OApDlD,EAqDb,OArDa,EAqDJ,OArDI,EAqDK,OArDL,EAqDc,OArDd,EAqDuB,OArDvB,EAqDgC,OArDhC,EAqDyC,OArDzC,EAqDkD,OArDlD,EAsDb,OAtDa,EAsDJ,OAtDI,EAsDK,OAtDL,EAsDc,OAtDd,EAsDuB,OAtDvB,EAsDgC,OAtDhC,EAsDyC,OAtDzC,EAsDkD,OAtDlD,EAuDb,OAvDa,EAuDJ,OAvDI,EAuDK,OAvDL,EAuDc,OAvDd,EAuDuB,OAvDvB,EAuDgC,OAvDhC,EAuDyC,OAvDzC,EAuDkD,OAvDlD,EAwDb,OAxDa,EAwDJ,OAxDI,EAwDK,OAxDL,EAwDc,OAxDd,EAwDuB,OAxDvB,EAwDgC,OAxDhC,EAwDyC,OAxDzC,EAwDkD,OAxDlD,EAyDb,OAzDa,EAyDJ,OAzDI,EAyDK,OAzDL,EAyDc,OAzDd,EAyDuB,OAzDvB,EAyDgC,OAzDhC,EAyDyC,OAzDzC,EAyDkD,OAzDlD,EA0Db,OA1Da,EA0DJ,OA1DI,EA0DK,OA1DL,EA0Dc,OA1Dd,EA0DuB,OA1DvB,EA0DgC,OA1DhC,EA0DyC,OA1DzC,EA0DkD,OA1DlD,EA2Db,OA3Da,EA2DJ,OA3DI,EA2DK,OA3DL,EA2Dc,OA3Dd,EA2DuB,OA3DvB,EA2DgC,OA3DhC,EA2DyC,OA3DzC,EA2DkD,OA3DlD,EA4Db,OA5Da,EA4DJ,OA5DI,EA4DK,OA5DL,EA4Dc,OA5Dd,EA4DuB,OA5DvB,EA4DgC,OA5DhC,EA4DyC,OA5DzC,EA4DkD,OA5DlD,EA6Db,OA7Da,EA6DJ,OA7DI,EA6DK,OA7DL,EA6Dc,OA7Dd,EA6DuB,OA7DvB,EA6DgC,OA7DhC,EA6DyC,OA7DzC,EA6DkD,OA7DlD,EA8Db,OA9Da,EA8DJ,OA9DI,EA8DK,OA9DL,EA8Dc,OA9Dd,EA8DuB,OA9DvB,EA8DgC,OA9DhC,EA8DyC,OA9DzC,EA8DkD,OA9DlD,EA+Db,OA/Da,EA+DJ,OA/DI,EA+DK,OA/DL,EA+Dc,OA/Dd,EA+DuB,OA/DvB,EA+DgC,OA/DhC,EA+DyC,OA/DzC,EA+DkD,OA/DlD,EAgEb,OAhEa,EAgEJ,OAhEI,EAgEK,OAhEL,EAgEc,OAhEd,EAgEuB,OAhEvB,EAgEgC,OAhEhC,EAgEyC,OAhEzC,EAgEkD,OAhElD,CAAf,CADsB,EAmEtB,CAnEsB,CAAxB;AAsEA,MAAMI,mBAAmB,CACvB,IAAIJ,UAAJ,CAAe,CACb,OADa,EACJ,OADI,EACK,OADL,EACc,OADd,EACuB,OADvB,EACgC,OADhC,EACyC,OADzC,EACkD,OADlD,EAEb,OAFa,EAEJ,OAFI,EAEK,OAFL,EAEc,OAFd,EAEuB,OAFvB,EAEgC,OAFhC,EAEyC,OAFzC,EAEkD,OAFlD,EAGb,OAHa,EAGJ,OAHI,EAGK,OAHL,EAGc,OAHd,EAGuB,OAHvB,EAGgC,OAHhC,EAGyC,OAHzC,EAGkD,OAHlD,EAIb,OAJa,EAIJ,OAJI,EAIK,OAJL,EAIc,OAJd,EAIuB,OAJvB,EAIgC,OAJhC,EAIyC,OAJzC,EAIkD,OAJlD,CAAf,CADuB,EAOvB,CAPuB,CAAzB;;AAUA,MAAMhI,WAAN,SAA0B9jB,2BAA1B,CAAuC;EACrC33D,YAAYmkB,GAAZ,EAAiBg3D,WAAjB,EAA8B;IAC5B,MAAMA,WAAN;IAEA,KAAKh3D,GAAL,GAAWA,GAAX;IACA,KAAKuK,IAAL,GAAYvK,IAAIuK,IAAhB;IAEA,MAAMo1D,MAAM3/D,IAAIgP,OAAJhP,EAAZ;IACA,MAAM4/D,MAAM5/D,IAAIgP,OAAJhP,EAAZ;;IACA,IAAI2/D,QAAQ,CAAC,CAATA,IAAcC,QAAQ,CAAC,CAA3B,EAA8B;MAC5B,MAAM,IAAIzgE,iBAAJ,CAAiB,mCAAkCwgE,GAAI,KAAIC,GAA3C,EAAhB,CAAN;IAT0B;;IAW5B,IAAK,OAAM,IAAN,MAAgB,IAArB,EAA2B;MACzB,MAAM,IAAIzgE,iBAAJ,CACH,+CAA8CwgE,GAAI,KAAIC,GAAvD,EADI,CAAN;IAZ0B;;IAgB5B,IAAK,CAAC,QAAO,CAAP,IAAYA,GAAb,IAAoB,EAApB,KAA2B,CAAhC,EAAmC;MACjC,MAAM,IAAIzgE,iBAAJ,CAAiB,+BAA8BwgE,GAAI,KAAIC,GAAvC,EAAhB,CAAN;IAjB0B;;IAmB5B,IAAIA,MAAM,IAAV,EAAgB;MACd,MAAM,IAAIzgE,iBAAJ,CAAiB,kCAAiCwgE,GAAI,KAAIC,GAA1C,EAAhB,CAAN;IApB0B;;IAuB5B,KAAKC,QAAL,GAAgB,CAAhB;IACA,KAAKC,OAAL,GAAe,CAAf;EAzBmC;;EA4BrCC,QAAQ56B,IAAR,EAAc;IACZ,MAAMnlC,MAAM,KAAKA,GAAjB;IACA,IAAI6/D,WAAW,KAAKA,QAApB;IACA,IAAIC,UAAU,KAAKA,OAAnB;IAEA,IAAIv4E,CAAJ;;IACA,OAAOs4E,WAAW16B,IAAlB,EAAwB;MACtB,IAAK,KAAInlC,IAAIgP,OAAJhP,EAAJ,MAAuB,CAAC,CAA7B,EAAgC;QAC9B,MAAM,IAAIb,iBAAJ,CAAgB,8BAAhB,CAAN;MAFoB;;MAItB2gE,WAAWv4E,KAAKs4E,QAAhBC;MACAD,YAAY,CAAZA;IAXU;;IAaZt4E,IAAIu4E,UAAY,MAAK36B,IAAL,IAAa,CAA7B59C;IACA,KAAKu4E,OAAL,GAAeA,WAAW36B,IAA1B;IACA,KAAK06B,QAAL,GAAgBA,YAAY16B,IAA5B;IAEA,OAAO59C,CAAP;EA7CmC;;EAgDrCy4E,QAAQb,KAAR,EAAe;IACb,MAAMn/D,MAAM,KAAKA,GAAjB;IACA,MAAMigE,QAAQd,MAAM,CAAN,CAAd;IACA,MAAM3hC,SAAS2hC,MAAM,CAAN,CAAf;IACA,IAAIU,WAAW,KAAKA,QAApB;IACA,IAAIC,UAAU,KAAKA,OAAnB;IAEA,IAAIv4E,CAAJ;;IACA,OAAOs4E,WAAWriC,MAAlB,EAA0B;MACxB,IAAK,KAAIx9B,IAAIgP,OAAJhP,EAAJ,MAAuB,CAAC,CAA7B,EAAgC;QAG9B;MAJsB;;MAMxB8/D,WAAWv4E,KAAKs4E,QAAhBC;MACAD,YAAY,CAAZA;IAfW;;IAiBb,MAAM/8E,OAAOm9E,MAAMH,UAAY,MAAKtiC,MAAL,IAAe,CAAjC,CAAb;IACA,MAAM0iC,UAAUp9E,QAAQ,EAAxB;IACA,MAAMq9E,UAAUr9E,OAAO,MAAvB;;IACA,IAAIo9E,UAAU,CAAVA,IAAeL,WAAWK,OAA9B,EAAuC;MACrC,MAAM,IAAI/gE,iBAAJ,CAAgB,8BAAhB,CAAN;IArBW;;IAuBb,KAAK2gE,OAAL,GAAeA,WAAWI,OAA1B;IACA,KAAKL,QAAL,GAAgBA,WAAWK,OAA3B;IACA,OAAOC,OAAP;EAzEmC;;EA4ErCC,qBAAqBC,OAArB,EAA8B;IAC5B,MAAM9+D,IAAI8+D,QAAQniF,MAAlB;IAGA,IAAIs/C,SAAS,CAAb;IACA,IAAI1+C,CAAJ;;IACA,KAAKA,IAAI,CAAT,EAAYA,IAAIyiB,CAAhB,EAAmB,EAAEziB,CAArB,EAAwB;MACtB,IAAIuhF,QAAQvhF,CAAR,IAAa0+C,MAAjB,EAAyB;QACvBA,SAAS6iC,QAAQvhF,CAAR,CAAT0+C;MAFoB;IANI;;IAa5B,MAAMt0B,OAAO,KAAKs0B,MAAlB;IACA,MAAMyiC,QAAQ,IAAIX,UAAJ,CAAep2D,IAAf,CAAd;;IACA,KACE,IAAI8oD,MAAM,CAAV,EAAalvE,OAAO,CAApB,EAAuBw0B,OAAO,CADhC,EAEE06C,OAAOx0B,MAFT,EAGE,EAAEw0B,GAAF,EAAOlvE,SAAS,CAAhB,EAAmBw0B,SAAS,CAH9B,EAIE;MACA,KAAK,IAAIyiB,MAAM,CAAf,EAAkBA,MAAMx4B,CAAxB,EAA2B,EAAEw4B,GAA7B,EAAkC;QAChC,IAAIsmC,QAAQtmC,GAAR,MAAiBi4B,GAArB,EAA0B;UAExB,IAAIyM,QAAQ,CAAZ;UACA,IAAI35D,IAAIhiB,IAAR;;UACA,KAAKhE,IAAI,CAAT,EAAYA,IAAIkzE,GAAhB,EAAqB,EAAElzE,CAAvB,EAA0B;YACxB2/E,QAASA,SAAS,CAATA,GAAe35D,IAAI,CAA5B25D;YACA35D,MAAM,CAANA;UANsB;;UAUxB,KAAKhmB,IAAI2/E,KAAT,EAAgB3/E,IAAIoqB,IAApB,EAA0BpqB,KAAKw4B,IAA/B,EAAqC;YACnC2oD,MAAMnhF,CAAN,IAAYkzE,OAAO,EAAPA,GAAaj4B,GAAzBkmC;UAXsB;;UAaxB,EAAEn9E,IAAF;QAd8B;MADlC;IAnB0B;;IAuC5B,OAAO,CAACm9E,KAAD,EAAQziC,MAAR,CAAP;EAnHmC;;EAsHrCg9B,YAAY;IACV,IAAIv5D,MAAJ,EAAY+wD,GAAZ;IACA,MAAMhyD,MAAM,KAAKA,GAAjB;IAEA,IAAIsgE,MAAM,KAAKP,OAAL,CAAa,CAAb,CAAV;;IACA,IAAIO,MAAM,CAAV,EAAa;MACX,KAAK3F,GAAL,GAAW,IAAX;IANQ;;IAQV2F,QAAQ,CAARA;;IAEA,IAAIA,QAAQ,CAAZ,EAAe;MAEb,IAAI/4E,CAAJ;;MAEA,IAAK,KAAIyY,IAAIgP,OAAJhP,EAAJ,MAAuB,CAAC,CAA7B,EAAgC;QAC9B,MAAM,IAAIb,iBAAJ,CAAgB,kCAAhB,CAAN;MALW;;MAOb,IAAIohE,WAAWh5E,CAAf;;MACA,IAAK,KAAIyY,IAAIgP,OAAJhP,EAAJ,MAAuB,CAAC,CAA7B,EAAgC;QAC9B,MAAM,IAAIb,iBAAJ,CAAgB,kCAAhB,CAAN;MATW;;MAWbohE,YAAYh5E,KAAK,CAAjBg5E;;MACA,IAAK,KAAIvgE,IAAIgP,OAAJhP,EAAJ,MAAuB,CAAC,CAA7B,EAAgC;QAC9B,MAAM,IAAIb,iBAAJ,CAAgB,kCAAhB,CAAN;MAbW;;MAeb,IAAI2wC,QAAQvoD,CAAZ;;MACA,IAAK,KAAIyY,IAAIgP,OAAJhP,EAAJ,MAAuB,CAAC,CAA7B,EAAgC;QAC9B,MAAM,IAAIb,iBAAJ,CAAgB,kCAAhB,CAAN;MAjBW;;MAmBb2wC,SAASvoD,KAAK,CAAduoD;;MACA,IAAIA,WAAW,CAACywB,QAAD,GAAY,MAAvB,MAAmCA,aAAa,CAAbA,IAAkBzwB,UAAU,CAA/DA,CAAJ,EAAuE;QAErE,MAAM,IAAI3wC,iBAAJ,CAAgB,+CAAhB,CAAN;MAtBW;;MAyBb,KAAK2gE,OAAL,GAAe,CAAf;MACA,KAAKD,QAAL,GAAgB,CAAhB;MAEA,MAAMnY,eAAe,KAAKA,YAA1B;MAAA,MACE56C,MAAM46C,eAAe6Y,QADvB;MAEAt/D,SAAS,KAAK25D,YAAL,CAAkB9tD,GAAlB,CAAT7L;MACA,KAAKymD,YAAL,GAAoB56C,GAApB;;MAEA,IAAIyzD,aAAa,CAAjB,EAAoB;QAClB,IAAIvgE,IAAI6W,QAAJ7W,OAAmB,CAAC,CAAxB,EAA2B;UACzB,KAAK26D,GAAL,GAAW,IAAX;QAFgB;MAApB,OAIO;QACL,MAAM6F,QAAQxgE,IAAIiP,QAAJjP,CAAaugE,QAAbvgE,CAAd;QACAiB,OAAOV,GAAPU,CAAWu/D,KAAXv/D,EAAkBymD,YAAlBzmD;;QACA,IAAIu/D,MAAMtiF,MAANsiF,GAAeD,QAAnB,EAA6B;UAC3B,KAAK5F,GAAL,GAAW,IAAX;QAJG;MArCM;;MA4Cb;IAtDQ;;IAyDV,IAAI8F,YAAJ;IACA,IAAIC,aAAJ;;IACA,IAAIJ,QAAQ,CAAZ,EAAe;MAEbG,eAAehB,eAAfgB;MACAC,gBAAgBhB,gBAAhBgB;IAHF,OAIO,IAAIJ,QAAQ,CAAZ,EAAe;MAEpB,MAAMK,cAAc,KAAKZ,OAAL,CAAa,CAAb,IAAkB,GAAtC;MACA,MAAMa,eAAe,KAAKb,OAAL,CAAa,CAAb,IAAkB,CAAvC;MACA,MAAMc,kBAAkB,KAAKd,OAAL,CAAa,CAAb,IAAkB,CAA1C;MAGA,MAAMe,qBAAqB,IAAI5jF,UAAJ,CAAemiF,eAAenhF,MAA9B,CAA3B;MAEA,IAAIY,CAAJ;;MACA,KAAKA,IAAI,CAAT,EAAYA,IAAI+hF,eAAhB,EAAiC,EAAE/hF,CAAnC,EAAsC;QACpCgiF,mBAAmBzB,eAAevgF,CAAf,CAAnB,IAAwC,KAAKihF,OAAL,CAAa,CAAb,CAAxCe;MAXkB;;MAapB,MAAMC,iBAAiB,KAAKX,oBAAL,CAA0BU,kBAA1B,CAAvB;MAGA9O,MAAM,CAANA;MACAlzE,IAAI,CAAJA;MACA,MAAMmhF,QAAQU,cAAcC,YAA5B;MACA,MAAMI,cAAc,IAAI9jF,UAAJ,CAAe+iF,KAAf,CAApB;MACA,IAAIgB,UAAJ,EAAgBC,UAAhB,EAA4BC,IAA5B;;MACA,OAAOriF,IAAImhF,KAAX,EAAkB;QAChB,MAAMn9E,OAAO,KAAKk9E,OAAL,CAAae,cAAb,CAAb;;QACA,IAAIj+E,SAAS,EAAb,EAAiB;UACfm+E,aAAa,CAAbA;UACAC,aAAa,CAAbA;UACAC,OAAOnP,GAAPmP;QAHF,OAIO,IAAIr+E,SAAS,EAAb,EAAiB;UACtBm+E,aAAa,CAAbA;UACAC,aAAa,CAAbA;UACAC,OAAOnP,MAAM,CAAbmP;QAHK,OAIA,IAAIr+E,SAAS,EAAb,EAAiB;UACtBm+E,aAAa,CAAbA;UACAC,aAAa,EAAbA;UACAC,OAAOnP,MAAM,CAAbmP;QAHK,OAIA;UACLH,YAAYliF,GAAZ,IAAmBkzE,MAAMlvE,IAAzBk+E;UACA;QAhBc;;QAmBhB,IAAII,eAAe,KAAKrB,OAAL,CAAakB,UAAb,IAA2BC,UAA9C;;QACA,OAAOE,iBAAiB,CAAxB,EAA2B;UACzBJ,YAAYliF,GAAZ,IAAmBqiF,IAAnBH;QArBc;MArBE;;MA8CpBP,eAAe,KAAKL,oBAAL,CACbY,YAAYlhE,QAAZkhE,CAAqB,CAArBA,EAAwBL,WAAxBK,CADa,CAAfP;MAGAC,gBAAgB,KAAKN,oBAAL,CACdY,YAAYlhE,QAAZkhE,CAAqBL,WAArBK,EAAkCf,KAAlCe,CADc,CAAhBN;IAjDK,OAoDA;MACL,MAAM,IAAIvhE,iBAAJ,CAAgB,oCAAhB,CAAN;IApHQ;;IAuHV8B,SAAS,KAAKA,MAAdA;IACA,IAAIyc,QAAQzc,SAASA,OAAO/iB,MAAhB,GAAyB,CAArC;IACA,IAAIkiB,MAAM,KAAKsnD,YAAf;;IACA,OAAO,IAAP,EAAa;MACX,IAAI0W,QAAQ,KAAK4B,OAAL,CAAaS,YAAb,CAAZ;;MACA,IAAIrC,QAAQ,GAAZ,EAAiB;QACf,IAAIh+D,MAAM,CAANA,IAAWsd,KAAf,EAAsB;UACpBzc,SAAS,KAAK25D,YAAL,CAAkBx6D,MAAM,CAAxB,CAATa;UACAyc,QAAQzc,OAAO/iB,MAAfw/B;QAHa;;QAKfzc,OAAOb,KAAP,IAAgBg+D,KAAhBn9D;QACA;MARS;;MAUX,IAAIm9D,UAAU,GAAd,EAAmB;QACjB,KAAK1W,YAAL,GAAoBtnD,GAApB;QACA;MAZS;;MAcXg+D,SAAS,GAATA;MACAA,QAAQmB,aAAanB,KAAb,CAARA;MACA,IAAIK,QAAQL,SAAS,EAArB;;MACA,IAAIK,QAAQ,CAAZ,EAAe;QACbA,QAAQ,KAAKsB,OAAL,CAAatB,KAAb,CAARA;MAlBS;;MAoBXzM,MAAO,SAAQ,MAAR,IAAkByM,KAAzBzM;MACAoM,QAAQ,KAAK4B,OAAL,CAAaU,aAAb,CAARtC;MACAA,QAAQoB,WAAWpB,KAAX,CAARA;MACAK,QAAQL,SAAS,EAAjBK;;MACA,IAAIA,QAAQ,CAAZ,EAAe;QACbA,QAAQ,KAAKsB,OAAL,CAAatB,KAAb,CAARA;MAzBS;;MA2BX,MAAM4C,OAAQ,SAAQ,MAAR,IAAkB5C,KAAhC;;MACA,IAAIr+D,MAAM4xD,GAAN5xD,IAAasd,KAAjB,EAAwB;QACtBzc,SAAS,KAAK25D,YAAL,CAAkBx6D,MAAM4xD,GAAxB,CAAT/wD;QACAyc,QAAQzc,OAAO/iB,MAAfw/B;MA9BS;;MAgCX,KAAK,IAAI6rB,IAAI,CAAb,EAAgBA,IAAIyoB,GAApB,EAAyB,EAAEzoB,CAAF,EAAK,EAAEnpC,GAAhC,EAAqC;QACnCa,OAAOb,GAAP,IAAca,OAAOb,MAAMihE,IAAb,CAAdpgE;MAjCS;IA1HH;EAtHyB;;AAAA;;;;;;;;;;;;;;;AC3GvC;;AACA;;AACA;;AACA;;AACA;;AAMA,MAAM82D,WAAN,SAA0BvkB,2BAA1B,CAAuC;EACrC33D,YAAYuI,MAAZ,EAAoB4yE,WAApB,EAAiC7kC,MAAjC,EAAyC;IACvC,MAAM6kC,WAAN;IAEA,KAAK5yE,MAAL,GAAcA,MAAd;IACA,KAAKmmB,IAAL,GAAYnmB,OAAOmmB,IAAnB;IACA,KAAKysD,WAAL,GAAmBA,WAAnB;IACA,KAAK7kC,MAAL,GAAcA,MAAd;EAPmC;;EAUrC,IAAI9tC,KAAJ,GAAY;IAEV,OAAOka,kBAAO,IAAPA,EAAa,OAAbA,EAAsB,KAAKna,MAAL,CAAY6qB,QAAZ,CAAqB,KAAK+nD,WAA1B,CAAtBz4D,CAAP;EAZmC;;EAerCq8D,aAAaK,SAAb,EAAwB,CAfa;;EAoBrCT,YAAY;IACV,IAAI,KAAKG,GAAT,EAAc;MACZ;IAFQ;;IAIV,MAAM2G,aAAa,IAAIC,gBAAJ,EAAnB;IAEA,MAAMpzD,SAAS,EAAf;;IACA,IAAI,KAAKgkB,MAAL,YAAuBzqC,gBAA3B,EAAiC;MAC/B,MAAM85E,gBAAgB,KAAKrvC,MAAL,CAAYhtC,GAAZ,CAAgB,cAAhB,CAAtB;;MACA,IAAIq8E,yBAAyB/sD,uBAA7B,EAAyC;QACvC,MAAMgtD,UAAUD,cAAcvyD,QAAduyD,EAAhB;QACArzD,OAAOlwB,IAAPkwB,CAAY;UAAEnxB,MAAMykF,OAAR;UAAiBl4E,OAAO,CAAxB;UAA2BujB,KAAK20D,QAAQvjF;QAAxC,CAAZiwB;MAJ6B;IAPvB;;IAcVA,OAAOlwB,IAAPkwB,CAAY;MAAEnxB,MAAM,KAAKqH,KAAb;MAAoBkF,OAAO,CAA3B;MAA8BujB,KAAK,KAAKzoB,KAAL,CAAWnG;IAA9C,CAAZiwB;IACA,MAAMnxB,OAAOskF,WAAWI,WAAXJ,CAAuBnzD,MAAvBmzD,CAAb;IACA,MAAMK,aAAa3kF,KAAKkB,MAAxB;;IAGA,KAAK,IAAIY,IAAI,CAAb,EAAgBA,IAAI6iF,UAApB,EAAgC7iF,GAAhC,EAAqC;MACnC9B,KAAK8B,CAAL,KAAW,IAAX9B;IApBQ;;IAsBV,KAAKikB,MAAL,GAAcjkB,IAAd;IACA,KAAK0qE,YAAL,GAAoBia,UAApB;IACA,KAAKhH,GAAL,GAAW,IAAX;EA5CmC;;AAAA;;;;;;;;;;;;;;;ACVvC;;AACA;;AACA;;AACA;;AAEA,MAAMiH,UAAN,SAAyB9iE,mBAAzB,CAAuC;EACrCjjB,YAAYshB,GAAZ,EAAiB;IACf,MAAO,gBAAeA,GAAhB,EAAN,EAA6B,YAA7B;EAFmC;;AAAA;;AAOvC,MAAM0kE,YAAN,CAAmB;EACjBC,YAAYr8E,EAAZ,EAAgB;IACd,IAAIA,MAAM,IAAV,EAAgB;MACd,OAAO,KAAKA,EAAL,CAAP;IAFY;;IAId,OAAQ,KAAKA,EAAL,IAAW,IAAIs8E,SAAJ,CAAc,KAAK,EAAnB,CAAnB;EALe;;AAAA;;AASnB,MAAMC,eAAN,CAAsB;EACpBnmF,YAAYmB,IAAZ,EAAkBuM,KAAlB,EAAyBujB,GAAzB,EAA8B;IAC5B,KAAK9vB,IAAL,GAAYA,IAAZ;IACA,KAAKuM,KAAL,GAAaA,KAAb;IACA,KAAKujB,GAAL,GAAWA,GAAX;EAJkB;;EAOpB,IAAIrH,OAAJ,GAAc;IACZ,MAAMA,UAAU,IAAIw8D,qCAAJ,CAAsB,KAAKjlF,IAA3B,EAAiC,KAAKuM,KAAtC,EAA6C,KAAKujB,GAAlD,CAAhB;IACA,OAAOvO,kBAAO,IAAPA,EAAa,SAAbA,EAAwBkH,OAAxBlH,CAAP;EATkB;;EAYpB,IAAI2jE,YAAJ,GAAmB;IACjB,MAAMvlC,QAAQ,IAAIklC,YAAJ,EAAd;IACA,OAAOtjE,kBAAO,IAAPA,EAAa,cAAbA,EAA6Bo+B,KAA7Bp+B,CAAP;EAdkB;;AAAA;;AAoBtB,SAAS4jE,aAAT,CAAuBD,YAAvB,EAAqCE,SAArC,EAAgD38D,OAAhD,EAAyD;EACvD,MAAM48D,WAAWH,aAAaJ,WAAbI,CAAyBE,SAAzBF,CAAjB;EACA,IAAItX,OAAO,CAAX;;EAEA,SAAS0X,QAAT,CAAkBpkF,MAAlB,EAA0B;IACxB,IAAI+kB,IAAI,CAAR;;IACA,KAAK,IAAInkB,IAAI,CAAb,EAAgBA,IAAIZ,MAApB,EAA4BY,GAA5B,EAAiC;MAC/B,MAAMyjF,MAAM98D,QAAQ+8D,OAAR/8D,CAAgB48D,QAAhB58D,EAA0BmlD,IAA1BnlD,CAAZ;MACAmlD,OAAOA,OAAO,GAAPA,GAAcA,QAAQ,CAARA,GAAa2X,GAA3B3X,GAAmC,CAACA,QAAQ,CAARA,GAAa2X,GAAd,IAAqB,GAArB,GAA4B,GAAtE3X;MACA3nD,IAAKA,KAAK,CAALA,GAAUs/D,GAAft/D;IALsB;;IAOxB,OAAOA,MAAM,CAAb;EAXqD;;EAcvD,MAAM89C,OAAOuhB,SAAS,CAAT,CAAb;EAGA,MAAMvgF,QAAQugF,SAAS,CAAT,IACGA,SAAS,CAAT,IACEA,SAAS,CAAT,IACEA,SAAS,CAAT,IACEA,SAAS,CAAT,IACEA,SAAS,EAAT,IAAe,IADjBA,GAEDA,SAAS,EAAT,IAAe,GAHhBA,GAIDA,SAAS,CAAT,IAAc,EALfA,GAMDA,SAAS,CAAT,IAAc,EAPfA,GAQDA,SAAS,CAAT,IAAc,CAThBA,GAUAA,SAAS,CAAT,CAVd;;EAYA,IAAIvhB,SAAS,CAAb,EAAgB;IACd,OAAOh/D,KAAP;EADF,OAEO,IAAIA,QAAQ,CAAZ,EAAe;IACpB,OAAO,CAACA,KAAR;EAhCqD;;EAkCvD,OAAO,IAAP;AA1FF;;AA8FA,SAAS0gF,UAAT,CAAoBP,YAApB,EAAkCz8D,OAAlC,EAA2Ci9D,UAA3C,EAAuD;EACrD,MAAML,WAAWH,aAAaJ,WAAbI,CAAyB,MAAzBA,CAAjB;EAEA,IAAItX,OAAO,CAAX;;EACA,KAAK,IAAI9rE,IAAI,CAAb,EAAgBA,IAAI4jF,UAApB,EAAgC5jF,GAAhC,EAAqC;IACnC,MAAMyjF,MAAM98D,QAAQ+8D,OAAR/8D,CAAgB48D,QAAhB58D,EAA0BmlD,IAA1BnlD,CAAZ;IACAmlD,OAAQA,QAAQ,CAARA,GAAa2X,GAArB3X;EANmD;;EAQrD,IAAI8X,aAAa,EAAjB,EAAqB;IACnB,OAAO9X,OAAS,MAAK8X,UAAL,IAAmB,CAAnC;EATmD;;EAWrD,OAAO9X,OAAO,UAAd;AAzGF;;AA6GA,MAAM+X,eAAe,CACnB,kBADmB,EAEnB,IAFmB,EAGnB,IAHmB,EAInB,IAJmB,EAKnB,wBALmB,EAMnB,IANmB,EAOnB,qBAPmB,EAQnB,6BARmB,EASnB,IATmB,EAUnB,IAVmB,EAWnB,IAXmB,EAYnB,IAZmB,EAanB,IAbmB,EAcnB,IAdmB,EAenB,IAfmB,EAgBnB,IAhBmB,EAiBnB,mBAjBmB,EAkBnB,IAlBmB,EAmBnB,IAnBmB,EAoBnB,IApBmB,EAqBnB,4BArBmB,EAsBnB,IAtBmB,EAuBnB,yBAvBmB,EAwBnB,iCAxBmB,EAyBnB,IAzBmB,EA0BnB,IA1BmB,EA2BnB,IA3BmB,EA4BnB,IA5BmB,EA6BnB,IA7BmB,EA8BnB,IA9BmB,EA+BnB,IA/BmB,EAgCnB,IAhCmB,EAiCnB,IAjCmB,EAkCnB,IAlCmB,EAmCnB,IAnCmB,EAoCnB,IApCmB,EAqCnB,2BArCmB,EAsCnB,IAtCmB,EAuCnB,wBAvCmB,EAwCnB,gCAxCmB,EAyCnB,qCAzCmB,EA0CnB,IA1CmB,EA2CnB,kCA3CmB,EA4CnB,0CA5CmB,EA6CnB,IA7CmB,EA8CnB,IA9CmB,EA+CnB,IA/CmB,EAgDnB,IAhDmB,EAiDnB,iBAjDmB,EAkDnB,WAlDmB,EAmDnB,aAnDmB,EAoDnB,WApDmB,EAqDnB,UArDmB,EAsDnB,QAtDmB,EAuDnB,IAvDmB,EAwDnB,IAxDmB,EAyDnB,IAzDmB,EA0DnB,IA1DmB,EA2DnB,IA3DmB,EA4DnB,IA5DmB,EA6DnB,IA7DmB,EA8DnB,IA9DmB,EA+DnB,WA/DmB,CAArB;AAkEA,MAAMC,kBAAkB,CACtB,CACE;EAAEx7E,GAAG,CAAC,CAAN;EAAS8pC,GAAG,CAAC;AAAb,CADF,EAEE;EAAE9pC,GAAG,CAAL;EAAQ8pC,GAAG,CAAC;AAAZ,CAFF,EAGE;EAAE9pC,GAAG,CAAL;EAAQ8pC,GAAG,CAAC;AAAZ,CAHF,EAIE;EAAE9pC,GAAG,CAAC,CAAN;EAAS8pC,GAAG,CAAC;AAAb,CAJF,EAKE;EAAE9pC,GAAG,CAAC,CAAN;EAAS8pC,GAAG,CAAC;AAAb,CALF,EAME;EAAE9pC,GAAG,CAAL;EAAQ8pC,GAAG,CAAC;AAAZ,CANF,EAOE;EAAE9pC,GAAG,CAAL;EAAQ8pC,GAAG,CAAC;AAAZ,CAPF,EAQE;EAAE9pC,GAAG,CAAL;EAAQ8pC,GAAG,CAAC;AAAZ,CARF,EASE;EAAE9pC,GAAG,CAAC,CAAN;EAAS8pC,GAAG;AAAZ,CATF,EAUE;EAAE9pC,GAAG,CAAC,CAAN;EAAS8pC,GAAG;AAAZ,CAVF,EAWE;EAAE9pC,GAAG,CAAC,CAAN;EAAS8pC,GAAG;AAAZ,CAXF,EAYE;EAAE9pC,GAAG,CAAC,CAAN;EAAS8pC,GAAG;AAAZ,CAZF,CADsB,EAetB,CACE;EAAE9pC,GAAG,CAAC,CAAN;EAAS8pC,GAAG,CAAC;AAAb,CADF,EAEE;EAAE9pC,GAAG,CAAL;EAAQ8pC,GAAG,CAAC;AAAZ,CAFF,EAGE;EAAE9pC,GAAG,CAAL;EAAQ8pC,GAAG,CAAC;AAAZ,CAHF,EAIE;EAAE9pC,GAAG,CAAL;EAAQ8pC,GAAG,CAAC;AAAZ,CAJF,EAKE;EAAE9pC,GAAG,CAAC,CAAN;EAAS8pC,GAAG,CAAC;AAAb,CALF,EAME;EAAE9pC,GAAG,CAAC,CAAN;EAAS8pC,GAAG,CAAC;AAAb,CANF,EAOE;EAAE9pC,GAAG,CAAL;EAAQ8pC,GAAG,CAAC;AAAZ,CAPF,EAQE;EAAE9pC,GAAG,CAAL;EAAQ8pC,GAAG,CAAC;AAAZ,CARF,EASE;EAAE9pC,GAAG,CAAL;EAAQ8pC,GAAG,CAAC;AAAZ,CATF,EAUE;EAAE9pC,GAAG,CAAC,CAAN;EAAS8pC,GAAG;AAAZ,CAVF,EAWE;EAAE9pC,GAAG,CAAC,CAAN;EAAS8pC,GAAG;AAAZ,CAXF,EAYE;EAAE9pC,GAAG,CAAC,CAAN;EAAS8pC,GAAG;AAAZ,CAZF,CAfsB,EA6BtB,CACE;EAAE9pC,GAAG,CAAC,CAAN;EAAS8pC,GAAG,CAAC;AAAb,CADF,EAEE;EAAE9pC,GAAG,CAAL;EAAQ8pC,GAAG,CAAC;AAAZ,CAFF,EAGE;EAAE9pC,GAAG,CAAL;EAAQ8pC,GAAG,CAAC;AAAZ,CAHF,EAIE;EAAE9pC,GAAG,CAAC,CAAN;EAAS8pC,GAAG,CAAC;AAAb,CAJF,EAKE;EAAE9pC,GAAG,CAAC,CAAN;EAAS8pC,GAAG,CAAC;AAAb,CALF,EAME;EAAE9pC,GAAG,CAAL;EAAQ8pC,GAAG,CAAC;AAAZ,CANF,EAOE;EAAE9pC,GAAG,CAAL;EAAQ8pC,GAAG,CAAC;AAAZ,CAPF,EAQE;EAAE9pC,GAAG,CAAC,CAAN;EAAS8pC,GAAG;AAAZ,CARF,EASE;EAAE9pC,GAAG,CAAC,CAAN;EAAS8pC,GAAG;AAAZ,CATF,CA7BsB,EAwCtB,CACE;EAAE9pC,GAAG,CAAC,CAAN;EAAS8pC,GAAG,CAAC;AAAb,CADF,EAEE;EAAE9pC,GAAG,CAAC,CAAN;EAAS8pC,GAAG,CAAC;AAAb,CAFF,EAGE;EAAE9pC,GAAG,CAAC,CAAN;EAAS8pC,GAAG,CAAC;AAAb,CAHF,EAIE;EAAE9pC,GAAG,CAAL;EAAQ8pC,GAAG,CAAC;AAAZ,CAJF,EAKE;EAAE9pC,GAAG,CAAL;EAAQ8pC,GAAG,CAAC;AAAZ,CALF,EAME;EAAE9pC,GAAG,CAAC,CAAN;EAAS8pC,GAAG;AAAZ,CANF,EAOE;EAAE9pC,GAAG,CAAC,CAAN;EAAS8pC,GAAG;AAAZ,CAPF,EAQE;EAAE9pC,GAAG,CAAC,CAAN;EAAS8pC,GAAG;AAAZ,CARF,EASE;EAAE9pC,GAAG,CAAC,CAAN;EAAS8pC,GAAG;AAAZ,CATF,CAxCsB,CAAxB;AAqDA,MAAM2xC,sBAAsB,CAC1B;EACEC,QAAQ,CACN;IAAE17E,GAAG,CAAL;IAAQ8pC,GAAG,CAAC;EAAZ,CADM,EAEN;IAAE9pC,GAAG,CAAL;IAAQ8pC,GAAG,CAAC;EAAZ,CAFM,EAGN;IAAE9pC,GAAG,CAAC,CAAN;IAAS8pC,GAAG;EAAZ,CAHM,CADV;EAME6xC,WAAW,CACT;IAAE37E,GAAG,CAAL;IAAQ8pC,GAAG,CAAC;EAAZ,CADS,EAET;IAAE9pC,GAAG,CAAL;IAAQ8pC,GAAG,CAAC;EAAZ,CAFS,EAGT;IAAE9pC,GAAG,CAAC,CAAN;IAAS8pC,GAAG;EAAZ,CAHS,EAIT;IAAE9pC,GAAG,CAAL;IAAQ8pC,GAAG;EAAX,CAJS,EAKT;IAAE9pC,GAAG,CAAL;IAAQ8pC,GAAG;EAAX,CALS,EAMT;IAAE9pC,GAAG,CAAC,CAAN;IAAS8pC,GAAG;EAAZ,CANS,EAOT;IAAE9pC,GAAG,CAAL;IAAQ8pC,GAAG;EAAX,CAPS,EAQT;IAAE9pC,GAAG,CAAL;IAAQ8pC,GAAG;EAAX,CARS;AANb,CAD0B,EAkB1B;EACE4xC,QAAQ,CACN;IAAE17E,GAAG,CAAC,CAAN;IAAS8pC,GAAG,CAAC;EAAb,CADM,EAEN;IAAE9pC,GAAG,CAAL;IAAQ8pC,GAAG,CAAC;EAAZ,CAFM,EAGN;IAAE9pC,GAAG,CAAL;IAAQ8pC,GAAG,CAAC;EAAZ,CAHM,EAIN;IAAE9pC,GAAG,CAAC,CAAN;IAAS8pC,GAAG;EAAZ,CAJM,CADV;EAOE6xC,WAAW,CACT;IAAE37E,GAAG,CAAL;IAAQ8pC,GAAG,CAAC;EAAZ,CADS,EAET;IAAE9pC,GAAG,CAAC,CAAN;IAAS8pC,GAAG;EAAZ,CAFS,EAGT;IAAE9pC,GAAG,CAAL;IAAQ8pC,GAAG;EAAX,CAHS,EAIT;IAAE9pC,GAAG,CAAL;IAAQ8pC,GAAG;EAAX,CAJS,EAKT;IAAE9pC,GAAG,CAAL;IAAQ8pC,GAAG;EAAX,CALS,EAMT;IAAE9pC,GAAG,CAAL;IAAQ8pC,GAAG;EAAX,CANS;AAPb,CAlB0B,CAA5B;AAqCA,MAAM8xC,iBAAiB,CACrB,MADqB,EAErB,MAFqB,EAGrB,MAHqB,EAIrB,MAJqB,CAAvB;AAOA,MAAMC,2BAA2B,CAC/B,MAD+B,EAE/B,MAF+B,CAAjC;;AAKA,SAASC,qBAAT,CAA+BltC,KAA/B,EAAsC+F,MAAtC,EAA8ConC,eAA9C,EAA+D;EAC7D,MAAM19D,UAAU09D,gBAAgB19D,OAAhC;EACA,MAAM48D,WAAWc,gBAAgBjB,YAAhBiB,CAA6BrB,WAA7BqB,CAAyC,IAAzCA,CAAjB;EACA,MAAMzwB,SAAS,EAAf;EACA,IAAI0wB,YAAJ,EAAkBtkF,CAAlB,EAAqBsmB,CAArB,EAAwBi+D,KAAxB,EAA+BvF,GAA/B,EAAoCwF,IAApC,EAA0CC,IAA1C;EAKA,MAAMC,iBAAiB,MAAvB;;EAEA,KAAK1kF,IAAI,CAAT,EAAYA,IAAIi9C,MAAhB,EAAwBj9C,GAAxB,EAA6B;IAC3Bg/E,MAAMprB,OAAO5zD,CAAP,IAAY,IAAI5B,UAAJ,CAAe84C,KAAf,CAAlB8nC;IACAwF,OAAOxkF,IAAI,CAAJA,GAAQg/E,GAARh/E,GAAc4zD,OAAO5zD,IAAI,CAAX,CAArBwkF;IACAC,OAAOzkF,IAAI,CAAJA,GAAQg/E,GAARh/E,GAAc4zD,OAAO5zD,IAAI,CAAX,CAArBykF;IAIAH,eACGG,KAAK,CAAL,KAAW,EAAXA,GACAA,KAAK,CAAL,KAAW,EADXA,GAEAA,KAAK,CAAL,KAAW,EAFXA,GAGAD,KAAK,CAAL,KAAW,CAHXC,GAIAD,KAAK,CAAL,KAAW,CAJXC,GAKAD,KAAK,CAAL,KAAW,CALXC,GAMAD,KAAK,CAAL,KAAW,CAPdF;;IASA,KAAKh+D,IAAI,CAAT,EAAYA,IAAI4wB,KAAhB,EAAuB5wB,GAAvB,EAA4B;MAC1B04D,IAAI14D,CAAJ,IAASi+D,QAAQ59D,QAAQ+8D,OAAR/8D,CAAgB48D,QAAhB58D,EAA0B29D,YAA1B39D,CAAjBq4D;MAIAsF,eACI,gBAAeI,cAAf,KAAkC,CAAlC,IACDp+D,IAAI,CAAJA,GAAQ4wB,KAAR5wB,GAAgBm+D,KAAKn+D,IAAI,CAAT,KAAe,EAA/BA,GAAoC,CADnC,KAEDA,IAAI,CAAJA,GAAQ4wB,KAAR5wB,GAAgBk+D,KAAKl+D,IAAI,CAAT,KAAe,CAA/BA,GAAmC,CAFlC,IAGFi+D,KAJFD;IArByB;EAXgC;;EAwC7D,OAAO1wB,MAAP;AA7TF;;AAiUA,SAAS+wB,YAAT,CACEC,GADF,EAEE1tC,KAFF,EAGE+F,MAHF,EAIE4nC,aAJF,EAKEC,UALF,EAMEtsD,IANF,EAOEusD,EAPF,EAQEV,eARF,EASE;EACA,IAAIO,GAAJ,EAAS;IACP,MAAMnJ,QAAQ,IAAIuJ,MAAJ,CACZX,gBAAgBnmF,IADJ,EAEZmmF,gBAAgB55E,KAFJ,EAGZ45E,gBAAgBr2D,GAHJ,CAAd;IAKA,OAAOi3D,gBAAgBxJ,KAAhB,EAAuBvkC,KAAvB,EAA8B+F,MAA9B,EAAsC,KAAtC,CAAP;EAPF;;EAWA,IACE4nC,kBAAkB,CAAlBA,IACA,CAACrsD,IADDqsD,IAEA,CAACC,UAFDD,IAGAE,GAAG3lF,MAAH2lF,KAAc,CAHdF,IAIAE,GAAG,CAAH,EAAMz8E,CAANy8E,KAAY,CAJZF,IAKAE,GAAG,CAAH,EAAM3yC,CAAN2yC,KAAY,CAAC,CALbF,IAMAE,GAAG,CAAH,EAAMz8E,CAANy8E,KAAY,CAAC,CANbF,IAOAE,GAAG,CAAH,EAAM3yC,CAAN2yC,KAAY,CAAC,CAPbF,IAQAE,GAAG,CAAH,EAAMz8E,CAANy8E,KAAY,CARZF,IASAE,GAAG,CAAH,EAAM3yC,CAAN2yC,KAAY,CAAC,CATbF,IAUAE,GAAG,CAAH,EAAMz8E,CAANy8E,KAAY,CAAC,CAVbF,IAWAE,GAAG,CAAH,EAAM3yC,CAAN2yC,KAAY,CAAC,CAZf,EAaE;IACA,OAAOX,sBAAsBltC,KAAtB,EAA6B+F,MAA7B,EAAqConC,eAArC,CAAP;EAzBF;;EA4BA,MAAMa,UAAU,CAAC,CAAC1sD,IAAlB;EACA,MAAMuI,WAAW+iD,gBAAgBe,aAAhB,EAA+Bn8E,MAA/Bo7E,CAAsCiB,EAAtCjB,CAAjB;EAKA/iD,SAAS1O,IAAT0O,CAAc,UAAUv4B,CAAV,EAAaC,CAAb,EAAgB;IAC5B,OAAOD,EAAE4pC,CAAF5pC,GAAMC,EAAE2pC,CAAR5pC,IAAaA,EAAEF,CAAFE,GAAMC,EAAEH,CAA5B;EADF;EAIA,MAAM68E,iBAAiBpkD,SAAS3hC,MAAhC;EACA,MAAMgmF,YAAY,IAAInC,SAAJ,CAAckC,cAAd,CAAlB;EACA,MAAME,YAAY,IAAIpC,SAAJ,CAAckC,cAAd,CAAlB;EACA,MAAMG,0BAA0B,EAAhC;EACA,IAAIC,YAAY,CAAhB;EAAA,IACEjzC,OAAO,CADT;EAAA,IAEEC,OAAO,CAFT;EAAA,IAGEC,OAAO,CAHT;EAIA,IAAIluB,CAAJ,EAAOmmC,CAAP;;EAEA,KAAKA,IAAI,CAAT,EAAYA,IAAI06B,cAAhB,EAAgC16B,GAAhC,EAAqC;IACnC26B,UAAU36B,CAAV,IAAe1pB,SAAS0pB,CAAT,EAAYniD,CAA3B88E;IACAC,UAAU56B,CAAV,IAAe1pB,SAAS0pB,CAAT,EAAYrY,CAA3BizC;IACA/yC,OAAOjvC,KAAKyd,GAALzd,CAASivC,IAATjvC,EAAe09B,SAAS0pB,CAAT,EAAYniD,CAA3BjF,CAAPivC;IACAC,OAAOlvC,KAAKC,GAALD,CAASkvC,IAATlvC,EAAe09B,SAAS0pB,CAAT,EAAYniD,CAA3BjF,CAAPkvC;IACAC,OAAOnvC,KAAKyd,GAALzd,CAASmvC,IAATnvC,EAAe09B,SAAS0pB,CAAT,EAAYrY,CAA3B/uC,CAAPmvC;;IAIA,IACEiY,IAAI06B,iBAAiB,CAArB16B,IACA1pB,SAAS0pB,CAAT,EAAYrY,CAAZrR,KAAkBA,SAAS0pB,IAAI,CAAb,EAAgBrY,CADlCqY,IAEA1pB,SAAS0pB,CAAT,EAAYniD,CAAZy4B,KAAkBA,SAAS0pB,IAAI,CAAb,EAAgBniD,CAAhBy4B,GAAoB,CAHxC,EAIE;MACAwkD,aAAa,KAAMJ,iBAAiB,CAAjBA,GAAqB16B,CAAxC86B;IALF,OAMO;MACLD,wBAAwBnmF,IAAxBmmF,CAA6B76B,CAA7B66B;IAhBiC;EAhDrC;;EAmEA,MAAME,wBAAwBF,wBAAwBlmF,MAAtD;EAEA,MAAMqmF,oBAAoB,IAAIxC,SAAJ,CAAcuC,qBAAd,CAA1B;EACA,MAAME,oBAAoB,IAAIzC,SAAJ,CAAcuC,qBAAd,CAA1B;EACA,MAAMG,sBAAsB,IAAI//B,WAAJ,CAAgB4/B,qBAAhB,CAA5B;;EACA,KAAKlhE,IAAI,CAAT,EAAYA,IAAIkhE,qBAAhB,EAAuClhE,GAAvC,EAA4C;IAC1CmmC,IAAI66B,wBAAwBhhE,CAAxB,CAAJmmC;IACAg7B,kBAAkBnhE,CAAlB,IAAuByc,SAAS0pB,CAAT,EAAYniD,CAAnCm9E;IACAC,kBAAkBphE,CAAlB,IAAuByc,SAAS0pB,CAAT,EAAYrY,CAAnCszC;IACAC,oBAAoBrhE,CAApB,IAAyB,KAAM6gE,iBAAiB,CAAjBA,GAAqB16B,CAApDk7B;EA5EF;;EAgFA,MAAMC,WAAW,CAACtzC,IAAlB;EACA,MAAMuzC,UAAU,CAACrzC,IAAjB;EACA,MAAMszC,YAAY5uC,QAAQ3E,IAA1B;EAEA,MAAMwzC,qBAAqB7B,eAAeW,aAAf,CAA3B;EACA,IAAI7F,MAAM,IAAI5gF,UAAJ,CAAe84C,KAAf,CAAV;EACA,MAAM0c,SAAS,EAAf;EAEA,MAAMjtC,UAAU09D,gBAAgB19D,OAAhC;EACA,MAAM48D,WAAWc,gBAAgBjB,YAAhBiB,CAA6BrB,WAA7BqB,CAAyC,IAAzCA,CAAjB;EAEA,IAAI2B,MAAM,CAAV;EAAA,IACE1/D,CADF;EAAA,IAEE2/D,EAFF;EAAA,IAGEC,EAHF;EAAA,IAIE5B,eAAe,CAJjB;EAAA,IAKEb,GALF;EAAA,IAMEtlC,KANF;;EAOA,KAAK,IAAIn+C,IAAI,CAAb,EAAgBA,IAAIi9C,MAApB,EAA4Bj9C,GAA5B,EAAiC;IAC/B,IAAI8kF,UAAJ,EAAgB;MACd,MAAMqB,OAAOx/D,QAAQ+8D,OAAR/8D,CAAgB48D,QAAhB58D,EAA0Bo/D,kBAA1Bp/D,CAAb;MACAq/D,OAAOG,IAAPH;;MACA,IAAIA,GAAJ,EAAS;QACPpyB,OAAOz0D,IAAPy0D,CAAYorB,GAAZprB;QACA;MALY;IADe;;IAS/BorB,MAAM,IAAI5gF,UAAJ,CAAe4gF,GAAf,CAANA;IACAprB,OAAOz0D,IAAPy0D,CAAYorB,GAAZprB;;IACA,KAAKttC,IAAI,CAAT,EAAYA,IAAI4wB,KAAhB,EAAuB5wB,GAAvB,EAA4B;MAC1B,IAAI4+D,WAAW1sD,KAAKx4B,CAAL,EAAQsmB,CAARkS,CAAf,EAA2B;QACzBwmD,IAAI14D,CAAJ,IAAS,CAAT04D;QACA;MAHwB;;MAO1B,IAAI14D,KAAKs/D,QAALt/D,IAAiBA,IAAIw/D,SAArBx/D,IAAkCtmB,KAAK6lF,OAA3C,EAAoD;QAGlDvB,eAAgBA,gBAAgB,CAAhBA,GAAqBiB,SAArCjB;;QACA,KAAK75B,IAAI,CAAT,EAAYA,IAAI+6B,qBAAhB,EAAuC/6B,GAAvC,EAA4C;UAC1Cw7B,KAAKjmF,IAAI0lF,kBAAkBj7B,CAAlB,CAATw7B;UACAC,KAAK5/D,IAAIm/D,kBAAkBh7B,CAAlB,CAATy7B;UACAzC,MAAM7vB,OAAOqyB,EAAP,EAAWC,EAAXtyB,CAAN6vB;;UACA,IAAIA,GAAJ,EAAS;YACPA,MAAMkC,oBAAoBl7B,CAApB,CAANg5B;YACAa,gBAAgBb,GAAhBa;UANwC;QAJM;MAApD,OAaO;QAELA,eAAe,CAAfA;QACAnmC,QAAQgnC,iBAAiB,CAAzBhnC;;QACA,KAAKsM,IAAI,CAAT,EAAYA,IAAI06B,cAAhB,EAAgC16B,KAAKtM,OAArC,EAA8C;UAC5C+nC,KAAK5/D,IAAI8+D,UAAU36B,CAAV,CAATy7B;;UACA,IAAIA,MAAM,CAANA,IAAWA,KAAKhvC,KAApB,EAA2B;YACzB+uC,KAAKjmF,IAAIqlF,UAAU56B,CAAV,CAATw7B;;YACA,IAAIA,MAAM,CAAV,EAAa;cACXxC,MAAM7vB,OAAOqyB,EAAP,EAAWC,EAAXtyB,CAAN6vB;;cACA,IAAIA,GAAJ,EAAS;gBACPa,gBAAgBb,OAAOtlC,KAAvBmmC;cAHS;YAFY;UAFiB;QAJzC;MApBmB;;MAqC1B,MAAMC,QAAQ59D,QAAQ+8D,OAAR/8D,CAAgB48D,QAAhB58D,EAA0B29D,YAA1B39D,CAAd;MACAq4D,IAAI14D,CAAJ,IAASi+D,KAATvF;IAjD6B;EAlGjC;;EAsJA,OAAOprB,MAAP;AAheF;;AAoeA,SAASwyB,gBAAT,CACElvC,KADF,EAEE+F,MAFF,EAGE4nC,aAHF,EAIEwB,eAJF,EAKEC,OALF,EAMEC,OANF,EAOEzB,UAPF,EAQEC,EARF,EASEV,eATF,EAUE;EACA,IAAImC,iBAAiBzC,oBAAoBc,aAApB,EAAmCb,MAAxD;;EACA,IAAIa,kBAAkB,CAAtB,EAAyB;IACvB2B,iBAAiBA,eAAe99E,MAAf89E,CAAsB,CAACzB,GAAG,CAAH,CAAD,CAAtByB,CAAjBA;EAHF;;EAKA,MAAMC,uBAAuBD,eAAepnF,MAA5C;EACA,MAAMsnF,kBAAkB,IAAIlG,UAAJ,CAAeiG,oBAAf,CAAxB;EACA,MAAME,kBAAkB,IAAInG,UAAJ,CAAeiG,oBAAf,CAAxB;EACA,IAAIh8B,CAAJ;;EACA,KAAKA,IAAI,CAAT,EAAYA,IAAIg8B,oBAAhB,EAAsCh8B,GAAtC,EAA2C;IACzCi8B,gBAAgBj8B,CAAhB,IAAqB+7B,eAAe/7B,CAAf,EAAkBniD,CAAvCo+E;IACAC,gBAAgBl8B,CAAhB,IAAqB+7B,eAAe/7B,CAAf,EAAkBrY,CAAvCu0C;EAXF;;EAcA,IAAIC,oBAAoB7C,oBAAoBc,aAApB,EAAmCZ,SAA3D;;EACA,IAAIY,kBAAkB,CAAtB,EAAyB;IACvB+B,oBAAoBA,kBAAkBl+E,MAAlBk+E,CAAyB,CAAC7B,GAAG,CAAH,CAAD,CAAzB6B,CAApBA;EAhBF;;EAkBA,MAAMC,0BAA0BD,kBAAkBxnF,MAAlD;EACA,MAAM0nF,qBAAqB,IAAItG,UAAJ,CAAeqG,uBAAf,CAA3B;EACA,MAAME,qBAAqB,IAAIvG,UAAJ,CAAeqG,uBAAf,CAA3B;;EACA,KAAKp8B,IAAI,CAAT,EAAYA,IAAIo8B,uBAAhB,EAAyCp8B,GAAzC,EAA8C;IAC5Cq8B,mBAAmBr8B,CAAnB,IAAwBm8B,kBAAkBn8B,CAAlB,EAAqBniD,CAA7Cw+E;IACAC,mBAAmBt8B,CAAnB,IAAwBm8B,kBAAkBn8B,CAAlB,EAAqBrY,CAA7C20C;EAvBF;;EAyBA,MAAMC,iBAAiBX,gBAAgB,CAAhB,EAAmBjnF,MAA1C;EACA,MAAM6nF,kBAAkBZ,gBAAgBjnF,MAAxC;EAEA,MAAM2mF,qBAAqB5B,yBAAyBU,aAAzB,CAA3B;EACA,MAAMjxB,SAAS,EAAf;EAEA,MAAMjtC,UAAU09D,gBAAgB19D,OAAhC;EACA,MAAM48D,WAAWc,gBAAgBjB,YAAhBiB,CAA6BrB,WAA7BqB,CAAyC,IAAzCA,CAAjB;EAEA,IAAI2B,MAAM,CAAV;;EACA,KAAK,IAAIhmF,IAAI,CAAb,EAAgBA,IAAIi9C,MAApB,EAA4Bj9C,GAA5B,EAAiC;IAC/B,IAAI8kF,UAAJ,EAAgB;MACd,MAAMqB,OAAOx/D,QAAQ+8D,OAAR/8D,CAAgB48D,QAAhB58D,EAA0Bo/D,kBAA1Bp/D,CAAb;MACAq/D,OAAOG,IAAPH;;MACA,IAAIA,GAAJ,EAAS;QACP,MAAM,IAAIlD,UAAJ,CAAe,6BAAf,CAAN;MAJY;IADe;;IAQ/B,MAAM9D,MAAM,IAAI5gF,UAAJ,CAAe84C,KAAf,CAAZ;IACA0c,OAAOz0D,IAAPy0D,CAAYorB,GAAZprB;;IACA,KAAK,IAAIttC,IAAI,CAAb,EAAgBA,IAAI4wB,KAApB,EAA2B5wB,GAA3B,EAAgC;MAC9B,IAAI2/D,EAAJ,EAAQC,EAAR;MACA,IAAI5B,eAAe,CAAnB;;MACA,KAAK75B,IAAI,CAAT,EAAYA,IAAIg8B,oBAAhB,EAAsCh8B,GAAtC,EAA2C;QACzCw7B,KAAKjmF,IAAI2mF,gBAAgBl8B,CAAhB,CAATw7B;QACAC,KAAK5/D,IAAIogE,gBAAgBj8B,CAAhB,CAATy7B;;QACA,IAAID,KAAK,CAALA,IAAUC,KAAK,CAAfD,IAAoBC,MAAMhvC,KAA9B,EAAqC;UACnCotC,iBAAiB,CAAjBA;QADF,OAEO;UACLA,eAAgBA,gBAAgB,CAAhBA,GAAqB1wB,OAAOqyB,EAAP,EAAWC,EAAXtyB,CAArC0wB;QANuC;MAHb;;MAY9B,KAAK75B,IAAI,CAAT,EAAYA,IAAIo8B,uBAAhB,EAAyCp8B,GAAzC,EAA8C;QAC5Cw7B,KAAKjmF,IAAI+mF,mBAAmBt8B,CAAnB,CAAJzqD,GAA4BumF,OAAjCN;QACAC,KAAK5/D,IAAIwgE,mBAAmBr8B,CAAnB,CAAJnkC,GAA4BggE,OAAjCJ;;QACA,IAAID,KAAK,CAALA,IAAUA,MAAMgB,eAAhBhB,IAAmCC,KAAK,CAAxCD,IAA6CC,MAAMc,cAAvD,EAAuE;UACrE1C,iBAAiB,CAAjBA;QADF,OAEO;UACLA,eAAgBA,gBAAgB,CAAhBA,GAAqB+B,gBAAgBJ,EAAhB,EAAoBC,EAApBG,CAArC/B;QAN0C;MAZhB;;MAqB9B,MAAMC,QAAQ59D,QAAQ+8D,OAAR/8D,CAAgB48D,QAAhB58D,EAA0B29D,YAA1B39D,CAAd;MACAq4D,IAAI14D,CAAJ,IAASi+D,KAATvF;IAhC6B;EAnCjC;;EAuEA,OAAOprB,MAAP;AArjBF;;AAyjBA,SAASszB,sBAAT,CACEC,OADF,EAEEC,UAFF,EAGEC,OAHF,EAIEC,kBAJF,EAKEC,uBALF,EAMEC,aANF,EAOE3C,aAPF,EAQEE,EARF,EASE0C,uBATF,EAUEC,YAVF,EAWErD,eAXF,EAYEsD,YAZF,EAaE;EACA,IAAIR,WAAWC,UAAf,EAA2B;IACzB,MAAM,IAAItE,UAAJ,CAAe,iDAAf,CAAN;EAFF;;EAKA,MAAM8E,aAAa,EAAnB;EACA,IAAIC,gBAAgB,CAApB;EACA,IAAIC,mBAAmBxzD,sBAAK+yD,QAAQjoF,MAARioF,GAAiBC,kBAAtBhzD,CAAvB;EAEA,MAAM3N,UAAU09D,gBAAgB19D,OAAhC;EACA,MAAMy8D,eAAeiB,gBAAgBjB,YAArC;EACA,IAAI2E,OAAJ,EAAaC,YAAb;;EACA,IAAIb,OAAJ,EAAa;IACXY,UAAUE,iBAAiB,CAAjB,CAAVF;IACAC,eAAe,EAAfA;IACAF,mBAAmBzkF,KAAKC,GAALD,CAASykF,gBAATzkF,EAA2B,CAA3BA,CAAnBykF;EAfF;;EAkBA,OAAOF,WAAWxoF,MAAXwoF,GAAoBN,kBAA3B,EAA+C;IAC7C,MAAMY,cAAcf,UAChBK,cAAcW,gBAAdX,CAA+B1gE,MAA/B0gE,CAAsCG,YAAtCH,CADgB,GAEhBnE,cAAcD,YAAd,EAA4B,MAA5B,EAAoCz8D,OAApC,CAFJ;IAGAkhE,iBAAiBK,WAAjBL;IACA,IAAI1oC,eAAe,CAAnB;IAAA,IACErD,aAAa,CADf;IAEA,MAAMssC,cAAcjB,UAAUa,aAAa5oF,MAAvB,GAAgC,CAApD;;IACA,OAAO,IAAP,EAAa;MACX,MAAMipF,aAAalB,UACfK,cAAcc,eAAdd,CAA8B1gE,MAA9B0gE,CAAqCG,YAArCH,CADe,GAEfnE,cAAcD,YAAd,EAA4B,MAA5B,EAAoCz8D,OAApC,CAFJ;;MAGA,IAAI0hE,eAAe,IAAnB,EAAyB;QACvB;MALS;;MAOXlpC,gBAAgBkpC,UAAhBlpC;MACArD,cAAcqD,YAAdrD;MACA,IAAI8X,MAAJ;;MACA,IAAIwzB,UAAJ,EAAgB;QAEd,MAAMmB,oBAAoBlF,cAAcD,YAAd,EAA4B,MAA5B,EAAoCz8D,OAApC,CAA1B;;QACA,IAAI4hE,oBAAoB,CAAxB,EAA2B;UACzB30B,SAAS40B,iBACPrB,OADO,EAEPC,UAFO,EAGPjoC,YAHO,EAIP0oC,aAJO,EAKP,CALO,EAMPU,iBANO,EAOP,CAPO,EAQPlB,QAAQ3+E,MAAR2+E,CAAeO,UAAfP,CARO,EASPS,gBATO,EAUP,CAVO,EAWP,CAXO,EAYP,CAZO,EAaP,CAbO,EAcPN,aAdO,EAePC,uBAfO,EAgBPC,YAhBO,EAiBPrD,eAjBO,EAkBP,CAlBO,EAmBPsD,YAnBO,CAAT/zB;QADF,OAsBO;UACL,MAAM60B,WAAW9E,WAAWP,YAAX,EAAyBz8D,OAAzB,EAAkCmhE,gBAAlC,CAAjB;UACA,MAAMY,MAAMrF,cAAcD,YAAd,EAA4B,OAA5B,EAAqCz8D,OAArC,CAAZ;UACA,MAAMgiE,MAAMtF,cAAcD,YAAd,EAA4B,OAA5B,EAAqCz8D,OAArC,CAAZ;UACA,MAAMiiE,SACJH,WAAWpB,QAAQjoF,MAAnBqpF,GACIpB,QAAQoB,QAAR,CADJA,GAEIb,WAAWa,WAAWpB,QAAQjoF,MAA9B,CAHN;UAIAw0D,SAASwyB,iBACPjnC,YADO,EAEP0oC,aAFO,EAGPJ,uBAHO,EAIPmB,MAJO,EAKPF,GALO,EAMPC,GANO,EAOP,KAPO,EAQPjB,YARO,EASPrD,eATO,CAATzwB;QAjCY;;QA6Cdg0B,WAAWzoF,IAAXyoF,CAAgBh0B,MAAhBg0B;MA7CF,OA8CO,IAAIT,OAAJ,EAAa;QAGlBa,aAAa7oF,IAAb6oF,CAAkB7oC,YAAlB6oC;MAHK,OAIA;QAELp0B,SAAS+wB,aACP,KADO,EAEPxlC,YAFO,EAGP0oC,aAHO,EAIPhD,aAJO,EAKP,KALO,EAMP,IANO,EAOPE,EAPO,EAQPV,eARO,CAATzwB;QAUAg0B,WAAWzoF,IAAXyoF,CAAgBh0B,MAAhBg0B;MAxES;IARgC;;IAmF7C,IAAIT,WAAW,CAACC,UAAhB,EAA4B;MAE1B,MAAMyB,aAAarB,cAAcsB,eAAdtB,CAA8B1gE,MAA9B0gE,CAAqCG,YAArCH,CAAnB;MACAG,aAAanJ,SAAbmJ;MACA,IAAIoB,gBAAJ;;MACA,IAAIF,eAAe,CAAnB,EAAsB;QAEpBE,mBAAmBC,uBACjBrB,YADiB,EAEjB7rC,UAFiB,EAGjB+rC,aAHiB,CAAnBkB;MAFF,OAOO;QAEL,MAAME,cAActB,aAAa35D,GAAjC;QACA,MAAMk7D,YAAYvB,aAAa93D,QAAb83D,GAAwBkB,UAA1C;QACAlB,aAAa35D,GAAb25D,GAAmBuB,SAAnBvB;QACAoB,mBAAmB9D,gBACjB0C,YADiB,EAEjB7rC,UAFiB,EAGjB+rC,aAHiB,EAIjB,KAJiB,CAAnBkB;QAMApB,aAAa35D,GAAb25D,GAAmBsB,WAAnBtB;QACAA,aAAa93D,QAAb83D,GAAwBuB,SAAxBvB;MAxBwB;;MA0B1B,MAAMwB,yBAAyBnB,aAAa5oF,MAA5C;;MACA,IAAIgpF,gBAAgBe,yBAAyB,CAA7C,EAAgD;QAE9CvB,WAAWzoF,IAAXyoF,CAAgBmB,gBAAhBnB;MAFF,OAGO;QAEL,IAAI5nF,CAAJ;QAAA,IACEoyC,CADF;QAAA,IAEEg3C,OAAO,CAFT;QAAA,IAGEC,IAHF;QAAA,IAIEC,WAJF;QAAA,IAKEC,YALF;;QAMA,KAAKvpF,IAAIooF,WAAT,EAAsBpoF,IAAImpF,sBAA1B,EAAkDnpF,GAAlD,EAAuD;UACrDspF,cAActB,aAAahoF,CAAb,CAAdspF;UACAD,OAAOD,OAAOE,WAAdD;UACAE,eAAe,EAAfA;;UACA,KAAKn3C,IAAI,CAAT,EAAYA,IAAIy1C,aAAhB,EAA+Bz1C,GAA/B,EAAoC;YAClCm3C,aAAapqF,IAAboqF,CAAkBR,iBAAiB32C,CAAjB,EAAoBpxB,QAApB+nE,CAA6BK,IAA7BL,EAAmCM,IAAnCN,CAAlBQ;UALmD;;UAOrD3B,WAAWzoF,IAAXyoF,CAAgB2B,YAAhB3B;UACAwB,OAAOC,IAAPD;QAhBG;MA9BmB;IAnFiB;EAlB/C;;EA0JA,MAAMI,kBAAkB,EAAxB;EAAA,MACEx8C,QAAQ,EADV;EAEA,IAAIy8C,cAAc,KAAlB;EAAA,IACEzpF,CADF;EAAA,IAEEiJ,EAFF;EAGA,MAAMygF,qBAAqBrC,QAAQjoF,MAARioF,GAAiBC,kBAA5C;;EACA,OAAOt6C,MAAM5tC,MAAN4tC,GAAe08C,kBAAtB,EAA0C;IACxC,IAAIC,YAAYxC,UACZY,QAAQjhE,MAARihE,CAAeJ,YAAfI,CADY,GAEZ1E,cAAcD,YAAd,EAA4B,MAA5B,EAAoCz8D,OAApC,CAFJ;;IAGA,OAAOgjE,WAAP,EAAoB;MAClB38C,MAAM7tC,IAAN6tC,CAAWy8C,WAAXz8C;IALsC;;IAOxCy8C,cAAc,CAACA,WAAfA;EAvKF;;EAyKA,KAAKzpF,IAAI,CAAJA,EAAOiJ,KAAKo+E,QAAQjoF,MAAzB,EAAiCY,IAAIiJ,EAArC,EAAyCjJ,GAAzC,EAA8C;IAC5C,IAAIgtC,MAAMhtC,CAAN,CAAJ,EAAc;MACZwpF,gBAAgBrqF,IAAhBqqF,CAAqBnC,QAAQrnF,CAAR,CAArBwpF;IAF0C;EAzK9C;;EA8KA,KAAK,IAAIljE,IAAI,CAAb,EAAgBA,IAAIghE,kBAApB,EAAwCtnF,KAAKsmB,GAA7C,EAAkD;IAChD,IAAI0mB,MAAMhtC,CAAN,CAAJ,EAAc;MACZwpF,gBAAgBrqF,IAAhBqqF,CAAqB5B,WAAWthE,CAAX,CAArBkjE;IAF8C;EA9KlD;;EAmLA,OAAOA,eAAP;AAzvBF;;AA4vBA,SAAShB,gBAAT,CACErB,OADF,EAEEC,UAFF,EAGElwC,KAHF,EAIE+F,MAJF,EAKE2sC,iBALF,EAMEC,uBANF,EAOEC,SAPF,EAQEC,YARF,EASEjC,gBATF,EAUEkC,UAVF,EAWEC,QAXF,EAYEC,eAZF,EAaEC,mBAbF,EAcE3C,aAdF,EAeEC,uBAfF,EAgBEC,YAhBF,EAiBErD,eAjBF,EAkBE+F,YAlBF,EAmBEzC,YAnBF,EAoBE;EACA,IAAIR,WAAWC,UAAf,EAA2B;IACzB,MAAM,IAAItE,UAAJ,CAAe,0CAAf,CAAN;EAFF;;EAMA,MAAMlvB,SAAS,EAAf;EACA,IAAI5zD,CAAJ,EAAOg/E,GAAP;;EACA,KAAKh/E,IAAI,CAAT,EAAYA,IAAIi9C,MAAhB,EAAwBj9C,GAAxB,EAA6B;IAC3Bg/E,MAAM,IAAI5gF,UAAJ,CAAe84C,KAAf,CAAN8nC;;IACA,IAAI4K,iBAAJ,EAAuB;MACrB,KAAK,IAAItjE,IAAI,CAAb,EAAgBA,IAAI4wB,KAApB,EAA2B5wB,GAA3B,EAAgC;QAC9B04D,IAAI14D,CAAJ,IAASsjE,iBAAT5K;MAFmB;IAFI;;IAO3BprB,OAAOz0D,IAAPy0D,CAAYorB,GAAZprB;EAfF;;EAkBA,MAAMjtC,UAAU09D,gBAAgB19D,OAAhC;EACA,MAAMy8D,eAAeiB,gBAAgBjB,YAArC;EAEA,IAAIiH,SAASlD,UACT,CAACK,cAAc8C,WAAd9C,CAA0B1gE,MAA1B0gE,CAAiCG,YAAjCH,CADQ,GAET,CAACnE,cAAcD,YAAd,EAA4B,MAA5B,EAAoCz8D,OAApC,CAFL;EAGA,IAAI4jE,SAAS,CAAb;EACAvqF,IAAI,CAAJA;;EACA,OAAOA,IAAI6pF,uBAAX,EAAoC;IAClC,MAAMW,SAASrD,UACXK,cAAc8C,WAAd9C,CAA0B1gE,MAA1B0gE,CAAiCG,YAAjCH,CADW,GAEXnE,cAAcD,YAAd,EAA4B,MAA5B,EAAoCz8D,OAApC,CAFJ;IAGA0jE,UAAUG,MAAVH;IAEA,MAAMI,cAActD,UAChBK,cAAckD,WAAdlD,CAA0B1gE,MAA1B0gE,CAAiCG,YAAjCH,CADgB,GAEhBnE,cAAcD,YAAd,EAA4B,MAA5B,EAAoCz8D,OAApC,CAFJ;IAGA4jE,UAAUE,WAAVF;IACA,IAAII,WAAWJ,MAAf;;IACA,GAAG;MACD,IAAIK,WAAW,CAAf;;MACA,IAAId,YAAY,CAAhB,EAAmB;QACjBc,WAAWzD,UACPQ,aAAanE,QAAbmE,CAAsByC,YAAtBzC,CADO,GAEPtE,cAAcD,YAAd,EAA4B,MAA5B,EAAoCz8D,OAApC,CAFJikE;MAHD;;MAOD,MAAM5kE,IAAI8jE,YAAYO,MAAZP,GAAqBc,QAA/B;MACA,MAAMnC,WAAWtB,UACbK,cAAcqD,aAAdrD,CAA4B1gE,MAA5B0gE,CAAmCG,YAAnCH,CADa,GAEb7D,WAAWP,YAAX,EAAyBz8D,OAAzB,EAAkCmhE,gBAAlC,CAFJ;MAGA,MAAMgD,kBACJ1D,eACCD,UACGQ,aAAajE,OAAbiE,EADH,GAEGtE,cAAcD,YAAd,EAA4B,MAA5B,EAAoCz8D,OAApC,CAHJ,CADF;MAKA,IAAI4iE,eAAeQ,aAAatB,QAAb,CAAnB;MACA,IAAIsC,cAAcxB,aAAa,CAAb,EAAgBnqF,MAAlC;MACA,IAAI4rF,eAAezB,aAAanqF,MAAhC;;MACA,IAAI0rF,eAAJ,EAAqB;QACnB,MAAMG,MAAM5H,cAAcD,YAAd,EAA4B,OAA5B,EAAqCz8D,OAArC,CAAZ;QACA,MAAMukE,MAAM7H,cAAcD,YAAd,EAA4B,OAA5B,EAAqCz8D,OAArC,CAAZ;QACA,MAAM+hE,MAAMrF,cAAcD,YAAd,EAA4B,OAA5B,EAAqCz8D,OAArC,CAAZ;QACA,MAAMgiE,MAAMtF,cAAcD,YAAd,EAA4B,OAA5B,EAAqCz8D,OAArC,CAAZ;QACAokE,eAAeE,GAAfF;QACAC,gBAAgBE,GAAhBF;QACAzB,eAAenD,iBACb2E,WADa,EAEbC,YAFa,EAGbvD,uBAHa,EAIb8B,YAJa,EAKZ,QAAO,CAAP,IAAYb,GALA,EAMZ,QAAO,CAAP,IAAYC,GANA,EAOb,KAPa,EAQbjB,YARa,EASbrD,eATa,CAAfkF;MA1BD;;MAsCD,MAAM4B,UAAUnlE,KAAKkkE,kBAAkB,CAAlBA,GAAsB,CAAtBA,GAA0Bc,eAAe,CAA9C,CAAhB;MACA,MAAMI,UAAUT,YAAYT,kBAAkB,CAAlBA,GAAsBa,cAAc,CAApCb,GAAwC,CAApD,CAAhB;MACA,IAAImB,EAAJ,EAAQnlE,EAAR,EAAYolE,SAAZ;;MACA,IAAItB,UAAJ,EAAgB;QAEd,KAAKqB,KAAK,CAAV,EAAaA,KAAKL,YAAlB,EAAgCK,IAAhC,EAAsC;UACpCrM,MAAMprB,OAAOw3B,UAAUC,EAAjB,CAANrM;;UACA,IAAI,CAACA,GAAL,EAAU;YACR;UAHkC;;UAKpCsM,YAAY/B,aAAa8B,EAAb,CAAZC;UAGA,MAAM/zC,WAAWl0C,KAAKyd,GAALzd,CAAS6zC,QAAQi0C,OAAjB9nF,EAA0B0nF,WAA1B1nF,CAAjB;;UACA,QAAQ8mF,mBAAR;YACE,KAAK,CAAL;cACE,KAAKjkE,KAAK,CAAV,EAAaA,KAAKqxB,QAAlB,EAA4BrxB,IAA5B,EAAkC;gBAChC84D,IAAImM,UAAUjlE,EAAd,KAAqBolE,UAAUplE,EAAV,CAArB84D;cAFJ;;cAIE;;YACF,KAAK,CAAL;cACE,KAAK94D,KAAK,CAAV,EAAaA,KAAKqxB,QAAlB,EAA4BrxB,IAA5B,EAAkC;gBAChC84D,IAAImM,UAAUjlE,EAAd,KAAqBolE,UAAUplE,EAAV,CAArB84D;cAFJ;;cAIE;;YACF;cACE,MAAM,IAAI8D,UAAJ,CACH,YAAWqH,mBAAoB,mBAD5B,CAAN;UAZJ;QAXY;;QA4BdQ,YAAYK,eAAe,CAA3BL;MA5BF,OA6BO;QACL,KAAKzkE,KAAK,CAAV,EAAaA,KAAK8kE,YAAlB,EAAgC9kE,IAAhC,EAAsC;UACpC84D,MAAMprB,OAAOu3B,UAAUjlE,EAAjB,CAAN84D;;UACA,IAAI,CAACA,GAAL,EAAU;YACR;UAHkC;;UAKpCsM,YAAY/B,aAAarjE,EAAb,CAAZolE;;UACA,QAAQnB,mBAAR;YACE,KAAK,CAAL;cACE,KAAKkB,KAAK,CAAV,EAAaA,KAAKN,WAAlB,EAA+BM,IAA/B,EAAqC;gBACnCrM,IAAIoM,UAAUC,EAAd,KAAqBC,UAAUD,EAAV,CAArBrM;cAFJ;;cAIE;;YACF,KAAK,CAAL;cACE,KAAKqM,KAAK,CAAV,EAAaA,KAAKN,WAAlB,EAA+BM,IAA/B,EAAqC;gBACnCrM,IAAIoM,UAAUC,EAAd,KAAqBC,UAAUD,EAAV,CAArBrM;cAFJ;;cAIE;;YACF;cACE,MAAM,IAAI8D,UAAJ,CACH,YAAWqH,mBAAoB,mBAD5B,CAAN;UAZJ;QAPG;;QAwBLQ,YAAYI,cAAc,CAA1BJ;MA9FD;;MAgGD3qF;MACA,MAAMurF,SAASpE,UACXK,cAAcgE,WAAdhE,CAA0B1gE,MAA1B0gE,CAAiCG,YAAjCH,CADW,GAEXnE,cAAcD,YAAd,EAA4B,MAA5B,EAAoCz8D,OAApC,CAFJ;;MAGA,IAAI4kE,WAAW,IAAf,EAAqB;QACnB;MArGD;;MAuGDZ,YAAYY,SAAStB,QAArBU;IAvGF,SAwGS,IAxGT;EArCF;;EA+IA,OAAO/2B,MAAP;AA/5BF;;AAk6BA,SAAS63B,uBAAT,CACE7G,GADF,EAEE8G,YAFF,EAGEC,aAHF,EAIEC,eAJF,EAKE7qD,QALF,EAMEsjD,eANF,EAOE;EACA,MAAMU,KAAK,EAAX;;EACA,IAAI,CAACH,GAAL,EAAU;IACRG,GAAG5lF,IAAH4lF,CAAQ;MACNz8E,GAAG,CAACojF,YADE;MAENt5C,GAAG;IAFG,CAAR2yC;;IAIA,IAAIhkD,aAAa,CAAjB,EAAoB;MAClBgkD,GAAG5lF,IAAH4lF,CACE;QACEz8E,GAAG,CAAC,CADN;QAEE8pC,GAAG,CAAC;MAFN,CADF2yC,EAKE;QACEz8E,GAAG,CADL;QAEE8pC,GAAG,CAAC;MAFN,CALF2yC,EASE;QACEz8E,GAAG,CAAC,CADN;QAEE8pC,GAAG,CAAC;MAFN,CATF2yC;IANM;EAFV;;EAwBA,MAAM8G,kBAAmB,mBAAkB,CAAlB,IAAuBH,YAAhD;EACA,MAAM3C,mBAAmBpE,aACvBC,GADuB,EAEvBiH,eAFuB,EAGvBF,aAHuB,EAIvB5qD,QAJuB,EAKvB,KALuB,EAMvB,IANuB,EAOvBgkD,EAPuB,EAQvBV,eARuB,CAAzB;EAWA,MAAM7pB,WAAW,EAAjB;;EACA,KAAK,IAAIx6D,IAAI,CAAb,EAAgBA,KAAK4rF,eAArB,EAAsC5rF,GAAtC,EAA2C;IACzC,MAAM8rF,gBAAgB,EAAtB;IACA,MAAM1C,OAAOsC,eAAe1rF,CAA5B;IACA,MAAMqpF,OAAOD,OAAOsC,YAApB;;IACA,KAAK,IAAIt5C,IAAI,CAAb,EAAgBA,IAAIu5C,aAApB,EAAmCv5C,GAAnC,EAAwC;MACtC05C,cAAc3sF,IAAd2sF,CAAmB/C,iBAAiB32C,CAAjB,EAAoBpxB,QAApB+nE,CAA6BK,IAA7BL,EAAmCM,IAAnCN,CAAnB+C;IALuC;;IAOzCtxB,SAASr7D,IAATq7D,CAAcsxB,aAAdtxB;EA5CF;;EA8CA,OAAOA,QAAP;AAv9BF;;AA09BA,SAASuxB,oBAAT,CACEnH,GADF,EAEEpqB,QAFF,EAGEz5B,QAHF,EAIEirD,WAJF,EAKEC,YALF,EAMErC,iBANF,EAOEsC,UAPF,EAQE/B,mBARF,EASEgC,SATF,EAUEC,UAVF,EAWEC,WAXF,EAYEC,WAZF,EAaEC,WAbF,EAcEC,WAdF,EAeEnI,eAfF,EAgBE;EACA,MAAM7rD,OAAO,IAAb;;EACA,IAAI0zD,UAAJ,EAAgB;IACd,MAAM,IAAIpJ,UAAJ,CAAe,uBAAf,CAAN;EAHF;;EAKA,IAAIqH,wBAAwB,CAA5B,EAA+B;IAC7B,MAAM,IAAIrH,UAAJ,CACH,aAAYqH,mBAAoB,uCAD7B,CAAN;EANF;;EAYA,MAAMsC,eAAe,EAArB;EACA,IAAIzsF,CAAJ,EAAOsmB,CAAP,EAAU04D,GAAV;;EACA,KAAKh/E,IAAI,CAAT,EAAYA,IAAIisF,YAAhB,EAA8BjsF,GAA9B,EAAmC;IACjCg/E,MAAM,IAAI5gF,UAAJ,CAAe4tF,WAAf,CAANhN;;IACA,IAAI4K,iBAAJ,EAAuB;MACrB,KAAKtjE,IAAI,CAAT,EAAYA,IAAI0lE,WAAhB,EAA6B1lE,GAA7B,EAAkC;QAChC04D,IAAI14D,CAAJ,IAASsjE,iBAAT5K;MAFmB;IAFU;;IAOjCyN,aAAattF,IAAbstF,CAAkBzN,GAAlByN;EArBF;;EAwBA,MAAMC,mBAAmBlyB,SAASp7D,MAAlC;EACA,MAAMutF,WAAWnyB,SAAS,CAAT,CAAjB;EACA,MAAMkxB,eAAeiB,SAAS,CAAT,EAAYvtF,MAAjC;EAAA,MACEusF,gBAAgBgB,SAASvtF,MAD3B;EAEA,MAAMwtF,eAAet4D,sBAAKo4D,gBAALp4D,CAArB;EACA,MAAMywD,KAAK,EAAX;;EACA,IAAI,CAACH,GAAL,EAAU;IACRG,GAAG5lF,IAAH4lF,CAAQ;MACNz8E,GAAGy4B,YAAY,CAAZA,GAAgB,CAAhBA,GAAoB,CADjB;MAENqR,GAAG,CAAC;IAFE,CAAR2yC;;IAIA,IAAIhkD,aAAa,CAAjB,EAAoB;MAClBgkD,GAAG5lF,IAAH4lF,CACE;QACEz8E,GAAG,CAAC,CADN;QAEE8pC,GAAG,CAAC;MAFN,CADF2yC,EAKE;QACEz8E,GAAG,CADL;QAEE8pC,GAAG,CAAC;MAFN,CALF2yC,EASE;QACEz8E,GAAG,CAAC,CADN;QAEE8pC,GAAG,CAAC;MAFN,CATF2yC;IANM;EA9BV;;EAqDA,MAAM8H,qBAAqB,EAA3B;EACA,IAAIC,QAAJ,EAAcl5B,MAAd;;EACA,IAAIgxB,GAAJ,EAAS;IAGPkI,WAAW,IAAI9H,MAAJ,CACTX,gBAAgBnmF,IADP,EAETmmF,gBAAgB55E,KAFP,EAGT45E,gBAAgBr2D,GAHP,CAAX8+D;EA1DF;;EAgEA,KAAK9sF,IAAI4sF,eAAe,CAAxB,EAA2B5sF,KAAK,CAAhC,EAAmCA,GAAnC,EAAwC;IACtC,IAAI4kF,GAAJ,EAAS;MACPhxB,SAASqxB,gBAAgB6H,QAAhB,EAA0BX,SAA1B,EAAqCC,UAArC,EAAiD,IAAjD,CAATx4B;IADF,OAEO;MACLA,SAAS+wB,aACP,KADO,EAEPwH,SAFO,EAGPC,UAHO,EAIPrrD,QAJO,EAKP,KALO,EAMPvI,IANO,EAOPusD,EAPO,EAQPV,eARO,CAATzwB;IAJoC;;IAetCi5B,mBAAmB7sF,CAAnB,IAAwB4zD,MAAxBi5B;EA/EF;;EAkFA,IAAIE,EAAJ,EAAQC,EAAR,EAAYvJ,GAAZ,EAAiBwJ,YAAjB,EAA+BnB,aAA/B,EAA8CxjF,CAA9C,EAAiD8pC,CAAjD,EAAoD86C,UAApD,EAAgEC,SAAhE;;EACA,KAAKJ,KAAK,CAAV,EAAaA,KAAKX,UAAlB,EAA8BW,IAA9B,EAAoC;IAClC,KAAKC,KAAK,CAAV,EAAaA,KAAKb,SAAlB,EAA6Ba,IAA7B,EAAmC;MACjCvJ,MAAM,CAANA;MACAwJ,eAAe,CAAfA;;MACA,KAAK3mE,IAAIsmE,eAAe,CAAxB,EAA2BtmE,KAAK,CAAhC,EAAmCA,GAAnC,EAAwC;QACtCm9D,OAAOoJ,mBAAmBvmE,CAAnB,EAAsBymE,EAAtBF,EAA0BG,EAA1BH,CAAPpJ;QACAwJ,gBAAgBxJ,OAAOn9D,CAAvB2mE;MAL+B;;MAOjCnB,gBAAgBtxB,SAASyyB,YAAT,CAAhBnB;MACAxjF,IAAK+jF,cAAcU,KAAKP,WAAnBH,GAAiCW,KAAKT,WAAtCF,IAAsD,CAA3D/jF;MACA8pC,IAAKk6C,cAAcS,KAAKR,WAAnBD,GAAiCU,KAAKR,WAAtCF,IAAsD,CAA3Dl6C;;MAEA,IACE9pC,KAAK,CAALA,IACAA,IAAIojF,YAAJpjF,IAAoB0jF,WADpB1jF,IAEA8pC,KAAK,CAFL9pC,IAGA8pC,IAAIu5C,aAAJv5C,IAAqB65C,YAJvB,EAKE;QACA,KAAKjsF,IAAI,CAAT,EAAYA,IAAI2rF,aAAhB,EAA+B3rF,GAA/B,EAAoC;UAClCmtF,YAAYV,aAAar6C,IAAIpyC,CAAjB,CAAZmtF;UACAD,aAAapB,cAAc9rF,CAAd,CAAbktF;;UACA,KAAK5mE,IAAI,CAAT,EAAYA,IAAIolE,YAAhB,EAA8BplE,GAA9B,EAAmC;YACjC6mE,UAAU7kF,IAAIge,CAAd,KAAoB4mE,WAAW5mE,CAAX,CAApB6mE;UAJgC;QADpC;MALF,OAaO;QACL,IAAIC,OAAJ,EAAaC,OAAb;;QACA,KAAKrtF,IAAI,CAAT,EAAYA,IAAI2rF,aAAhB,EAA+B3rF,GAA/B,EAAoC;UAClCqtF,UAAUj7C,IAAIpyC,CAAdqtF;;UACA,IAAIA,UAAU,CAAVA,IAAeA,WAAWpB,YAA9B,EAA4C;YAC1C;UAHgC;;UAKlCkB,YAAYV,aAAaY,OAAb,CAAZF;UACAD,aAAapB,cAAc9rF,CAAd,CAAbktF;;UACA,KAAK5mE,IAAI,CAAT,EAAYA,IAAIolE,YAAhB,EAA8BplE,GAA9B,EAAmC;YACjC8mE,UAAU9kF,IAAIge,CAAd8mE;;YACA,IAAIA,WAAW,CAAXA,IAAgBA,UAAUpB,WAA9B,EAA2C;cACzCmB,UAAUC,OAAV,KAAsBF,WAAW5mE,CAAX,CAAtB6mE;YAH+B;UAPD;QAF/B;MAxB0B;IADD;EAnFpC;;EA+HA,OAAOV,YAAP;AAzmCF;;AA4mCA,SAASa,iBAAT,CAA2BpvF,IAA3B,EAAiCuM,KAAjC,EAAwC;EACtC,MAAM8iF,gBAAgB,EAAtB;EACAA,cAAct5D,MAAds5D,GAAuB74D,4BAAWx2B,IAAXw2B,EAAiBjqB,KAAjBiqB,CAAvB64D;EACA,MAAMvgD,QAAQ9uC,KAAKuM,QAAQ,CAAb,CAAd;EACA,MAAM+iF,cAAcxgD,QAAQ,IAA5B;;EACA,IAAI,CAAC62C,aAAa2J,WAAb,CAAL,EAAgC;IAC9B,MAAM,IAAI1K,UAAJ,CAAe,2BAA2B0K,WAA1C,CAAN;EANoC;;EAQtCD,cAAczkE,IAAdykE,GAAqBC,WAArBD;EACAA,cAAcE,QAAdF,GAAyB1J,aAAa2J,WAAb,CAAzBD;EACAA,cAAcG,iBAAdH,GAAkC,CAAC,EAAEvgD,QAAQ,IAAV,CAAnCugD;EAEA,MAAMI,2BAA2B,CAAC,EAAE3gD,QAAQ,IAAV,CAAlC;EACA,MAAM4gD,gBAAgB1vF,KAAKuM,QAAQ,CAAb,CAAtB;EACA,IAAIojF,kBAAmBD,iBAAiB,CAAjBA,GAAsB,CAA7C;EACA,MAAME,aAAa,CAACF,gBAAgB,EAAjB,CAAnB;EACA,IAAI/9D,WAAWplB,QAAQ,CAAvB;;EACA,IAAImjF,kBAAkB,CAAtB,EAAyB;IACvBC,kBAAkBn5D,4BAAWx2B,IAAXw2B,EAAiB7E,WAAW,CAA5B6E,IAAiC,UAAnDm5D;IACAh+D,YAAY,CAAZA;IACA,IAAItqB,QAASsoF,kBAAkB,CAAlBA,IAAwB,CAArC;IACAC,WAAW,CAAX,IAAgB5vF,KAAK2xB,UAAL,CAAhBi+D;;IACA,OAAO,EAAEvoF,KAAF,GAAU,CAAjB,EAAoB;MAClBuoF,WAAW3uF,IAAX2uF,CAAgB5vF,KAAK2xB,UAAL,CAAhBi+D;IANqB;EAAzB,OAQO,IAAIF,kBAAkB,CAAlBA,IAAuBA,kBAAkB,CAA7C,EAAgD;IACrD,MAAM,IAAI9K,UAAJ,CAAe,2BAAf,CAAN;EA1BoC;;EA6BtCyK,cAAcO,UAAdP,GAA2BO,UAA3BP;EAEA,IAAIQ,8BAA8B,CAAlC;;EACA,IAAIR,cAAct5D,MAAds5D,IAAwB,GAA5B,EAAiC;IAC/BQ,8BAA8B,CAA9BA;EADF,OAEO,IAAIR,cAAct5D,MAAds5D,IAAwB,KAA5B,EAAmC;IACxCQ,8BAA8B,CAA9BA;EAnCoC;;EAqCtC,MAAMC,aAAa,EAAnB;EACA,IAAIhuF,CAAJ,EAAOiJ,EAAP;;EACA,KAAKjJ,IAAI,CAAT,EAAYA,IAAI6tF,eAAhB,EAAiC7tF,GAAjC,EAAsC;IACpC,IAAIi0B,MAAJ;;IACA,IAAI85D,gCAAgC,CAApC,EAAuC;MACrC95D,SAAS/1B,KAAK2xB,QAAL,CAAToE;IADF,OAEO,IAAI85D,gCAAgC,CAApC,EAAuC;MAC5C95D,SAASQ,4BAAWv2B,IAAXu2B,EAAiB5E,QAAjB4E,CAATR;IADK,OAEA;MACLA,SAASS,4BAAWx2B,IAAXw2B,EAAiB7E,QAAjB6E,CAATT;IAPkC;;IASpC+5D,WAAW7uF,IAAX6uF,CAAgB/5D,MAAhB+5D;IACAn+D,YAAYk+D,2BAAZl+D;EAjDoC;;EAmDtC09D,cAAcS,UAAdT,GAA2BS,UAA3BT;;EACA,IAAI,CAACI,wBAAL,EAA+B;IAC7BJ,cAAcU,eAAdV,GAAgCrvF,KAAK2xB,UAAL,CAAhC09D;EADF,OAEO;IACLA,cAAcU,eAAdV,GAAgC74D,4BAAWx2B,IAAXw2B,EAAiB7E,QAAjB6E,CAAhC64D;IACA19D,YAAY,CAAZA;EAxDoC;;EA0DtC09D,cAAcnuF,MAAdmuF,GAAuB74D,4BAAWx2B,IAAXw2B,EAAiB7E,QAAjB6E,CAAvB64D;EACA19D,YAAY,CAAZA;;EAEA,IAAI09D,cAAcnuF,MAAdmuF,KAAyB,UAA7B,EAAyC;IAEvC,IAAIC,gBAAgB,EAApB,EAAwB;MAEtB,MAAMU,oBAAoBC,6BAA6BjwF,IAA7B,EAAmC2xB,QAAnC,CAA1B;MACA,MAAMu+D,4BACJlwF,KAAK2xB,WAAWw+D,mCAAhB,CADF;MAEA,MAAMC,mBAAmB,CAAC,EAAEF,4BAA4B,CAA9B,CAA1B;MAEA,MAAMG,sBAAsB,CAA5B;MACA,MAAMC,gBAAgB,IAAIpwF,UAAJ,CAAemwF,mBAAf,CAAtB;;MACA,IAAI,CAACD,gBAAL,EAAuB;QACrBE,cAAc,CAAd,IAAmB,IAAnBA;QACAA,cAAc,CAAd,IAAmB,IAAnBA;MAXoB;;MAatBA,cAAc,CAAd,IAAoBN,kBAAkBjxC,MAAlBixC,KAA6B,EAA7BA,GAAmC,IAAvDM;MACAA,cAAc,CAAd,IAAoBN,kBAAkBjxC,MAAlBixC,IAA4B,EAA5BA,GAAkC,IAAtDM;MACAA,cAAc,CAAd,IAAoBN,kBAAkBjxC,MAAlBixC,IAA4B,CAA5BA,GAAiC,IAArDM;MACAA,cAAc,CAAd,IAAmBN,kBAAkBjxC,MAAlBixC,GAA2B,IAA9CM;;MACA,KAAKxuF,IAAI6vB,QAAJ7vB,EAAciJ,KAAK/K,KAAKkB,MAA7B,EAAqCY,IAAIiJ,EAAzC,EAA6CjJ,GAA7C,EAAkD;QAChD,IAAIsmB,IAAI,CAAR;;QACA,OAAOA,IAAIioE,mBAAJjoE,IAA2BkoE,cAAcloE,CAAd,MAAqBpoB,KAAK8B,IAAIsmB,CAAT,CAAvD,EAAoE;UAClEA;QAH8C;;QAKhD,IAAIA,MAAMioE,mBAAV,EAA+B;UAC7BhB,cAAcnuF,MAAdmuF,GAAuBvtF,IAAIuuF,mBAA3BhB;UACA;QAP8C;MAjB5B;;MA2BtB,IAAIA,cAAcnuF,MAAdmuF,KAAyB,UAA7B,EAAyC;QACvC,MAAM,IAAIzK,UAAJ,CAAe,2BAAf,CAAN;MA5BoB;IAAxB,OA8BO;MACL,MAAM,IAAIA,UAAJ,CAAe,gCAAf,CAAN;IAjCqC;EA7DH;;EAiGtCyK,cAAckB,SAAdlB,GAA0B19D,QAA1B09D;EACA,OAAOA,aAAP;AA9sCF;;AAitCA,SAASmB,YAAT,CAAsBtb,MAAtB,EAA8Bl1E,IAA9B,EAAoCuM,KAApC,EAA2CujB,GAA3C,EAAgD;EAC9C,MAAM2gE,WAAW,EAAjB;EACA,IAAI9+D,WAAWplB,KAAf;;EACA,OAAOolB,WAAW7B,GAAlB,EAAuB;IACrB,MAAMu/D,gBAAgBD,kBAAkBpvF,IAAlB,EAAwB2xB,QAAxB,CAAtB;IACAA,WAAW09D,cAAckB,SAAzB5+D;IACA,MAAM++D,UAAU;MACdxb,QAAQma,aADM;MAEdrvF;IAFc,CAAhB;;IAIA,IAAI,CAACk1E,OAAOyb,YAAZ,EAA0B;MACxBD,QAAQnkF,KAARmkF,GAAgB/+D,QAAhB++D;MACA/+D,YAAY09D,cAAcnuF,MAA1BywB;MACA++D,QAAQ5gE,GAAR4gE,GAAc/+D,QAAd++D;IAVmB;;IAYrBD,SAASxvF,IAATwvF,CAAcC,OAAdD;;IACA,IAAIpB,cAAczkE,IAAdykE,KAAuB,EAA3B,EAA+B;MAC7B;IAdmB;EAHuB;;EAoB9C,IAAIna,OAAOyb,YAAX,EAAyB;IACvB,KAAK,IAAI7uF,IAAI,CAAR,EAAWiJ,KAAK0lF,SAASvvF,MAA9B,EAAsCY,IAAIiJ,EAA1C,EAA8CjJ,GAA9C,EAAmD;MACjD2uF,SAAS3uF,CAAT,EAAYyK,KAAZkkF,GAAoB9+D,QAApB8+D;MACA9+D,YAAY8+D,SAAS3uF,CAAT,EAAYozE,MAAZub,CAAmBvvF,MAA/BywB;MACA8+D,SAAS3uF,CAAT,EAAYguB,GAAZ2gE,GAAkB9+D,QAAlB8+D;IAJqB;EApBqB;;EA2B9C,OAAOA,QAAP;AA5uCF;;AAgvCA,SAASR,4BAAT,CAAsCjwF,IAAtC,EAA4CuM,KAA5C,EAAmD;EACjD,OAAO;IACLysC,OAAOxiB,4BAAWx2B,IAAXw2B,EAAiBjqB,KAAjBiqB,CADF;IAELuoB,QAAQvoB,4BAAWx2B,IAAXw2B,EAAiBjqB,QAAQ,CAAzBiqB,CAFH;IAGLpsB,GAAGosB,4BAAWx2B,IAAXw2B,EAAiBjqB,QAAQ,CAAzBiqB,CAHE;IAIL0d,GAAG1d,4BAAWx2B,IAAXw2B,EAAiBjqB,QAAQ,EAAzBiqB,CAJE;IAKLy1D,qBAAqBjsF,KAAKuM,QAAQ,EAAb,IAAmB;EALnC,CAAP;AAjvCF;;AAyvCA,MAAM4jF,sCAAsC,EAA5C;;AAEA,SAASS,cAAT,CAAwBF,OAAxB,EAAiCG,OAAjC,EAA0C;EACxC,MAAM3b,SAASwb,QAAQxb,MAAvB;EAEA,MAAMl1E,OAAO0wF,QAAQ1wF,IAArB;EAAA,MACE8vB,MAAM4gE,QAAQ5gE,GADhB;EAEA,IAAI6B,WAAW++D,QAAQnkF,KAAvB;EACA,IAAIkjB,IAAJ,EAAUo3D,EAAV,EAAc/kF,CAAd,EAAiBgvF,QAAjB;;EACA,QAAQ5b,OAAOtqD,IAAf;IACE,KAAK,CAAL;MAEE,MAAMmmE,aAAa,EAAnB;MACA,MAAMC,kBAAkBz6D,4BAAWv2B,IAAXu2B,EAAiB5E,QAAjB4E,CAAxB;MACAw6D,WAAW9H,OAAX8H,GAAqB,CAAC,EAAEC,kBAAkB,CAApB,CAAtBD;MACAA,WAAW7H,UAAX6H,GAAwB,CAAC,EAAEC,kBAAkB,CAApB,CAAzBD;MACAA,WAAWE,iBAAXF,GAAgCC,mBAAmB,CAAnBA,GAAwB,CAAxDD;MACAA,WAAWG,iBAAXH,GAAgCC,mBAAmB,CAAnBA,GAAwB,CAAxDD;MACAA,WAAWI,kBAAXJ,GAAiCC,mBAAmB,CAAnBA,GAAwB,CAAzDD;MACAA,WAAWK,4BAAXL,GAA2CC,mBAAmB,CAAnBA,GAAwB,CAAnED;MACAA,WAAWM,uBAAXN,GAAqC,CAAC,EAAEC,kBAAkB,GAApB,CAAtCD;MACAA,WAAWO,2BAAXP,GAAyC,CAAC,EAAEC,kBAAkB,GAApB,CAA1CD;MACAA,WAAWluD,QAAXkuD,GAAuBC,mBAAmB,EAAnBA,GAAyB,CAAhDD;MACAA,WAAWQ,kBAAXR,GAAiCC,mBAAmB,EAAnBA,GAAyB,CAA1DD;MACAp/D,YAAY,CAAZA;;MACA,IAAI,CAACo/D,WAAW9H,OAAhB,EAAyB;QACvB6H,WAAWC,WAAWluD,QAAXkuD,KAAwB,CAAxBA,GAA4B,CAA5BA,GAAgC,CAA3CD;QACAjK,KAAK,EAALA;;QACA,KAAK/kF,IAAI,CAAT,EAAYA,IAAIgvF,QAAhB,EAA0BhvF,GAA1B,EAA+B;UAC7B+kF,GAAG5lF,IAAH4lF,CAAQ;YACNz8E,GAAGisB,0BAASr2B,IAATq2B,EAAe1E,QAAf0E,CADG;YAEN6d,GAAG7d,0BAASr2B,IAATq2B,EAAe1E,WAAW,CAA1B0E;UAFG,CAARwwD;UAIAl1D,YAAY,CAAZA;QARqB;;QAUvBo/D,WAAWlK,EAAXkK,GAAgBlK,EAAhBkK;MAzBJ;;MA2BE,IAAIA,WAAW7H,UAAX6H,IAAyB,CAACA,WAAWQ,kBAAzC,EAA6D;QAC3D1K,KAAK,EAALA;;QACA,KAAK/kF,IAAI,CAAT,EAAYA,IAAI,CAAhB,EAAmBA,GAAnB,EAAwB;UACtB+kF,GAAG5lF,IAAH4lF,CAAQ;YACNz8E,GAAGisB,0BAASr2B,IAATq2B,EAAe1E,QAAf0E,CADG;YAEN6d,GAAG7d,0BAASr2B,IAATq2B,EAAe1E,WAAW,CAA1B0E;UAFG,CAARwwD;UAIAl1D,YAAY,CAAZA;QAPyD;;QAS3Do/D,WAAWvH,YAAXuH,GAA0BlK,EAA1BkK;MApCJ;;MAsCEA,WAAW1H,uBAAX0H,GAAqCv6D,4BAAWx2B,IAAXw2B,EAAiB7E,QAAjB6E,CAArCu6D;MACAp/D,YAAY,CAAZA;MACAo/D,WAAW3H,kBAAX2H,GAAgCv6D,4BAAWx2B,IAAXw2B,EAAiB7E,QAAjB6E,CAAhCu6D;MACAp/D,YAAY,CAAZA;MACAlC,OAAO,CACLshE,UADK,EAEL7b,OAAOn/C,MAFF,EAGLm/C,OAAO4a,UAHF,EAIL9vF,IAJK,EAKL2xB,QALK,EAML7B,GANK,CAAPL;MAQA;;IACF,KAAK,CAAL;IACA,KAAK,CAAL;MACE,MAAM+hE,aAAa,EAAnB;MACAA,WAAWzlF,IAAXylF,GAAkBvB,6BAA6BjwF,IAA7B,EAAmC2xB,QAAnC,CAAlB6/D;MACA7/D,YAAYw+D,mCAAZx+D;MACA,MAAM8/D,yBAAyBl7D,4BAAWv2B,IAAXu2B,EAAiB5E,QAAjB4E,CAA/B;MACA5E,YAAY,CAAZA;MACA6/D,WAAWvI,OAAXuI,GAAqB,CAAC,EAAEC,yBAAyB,CAA3B,CAAtBD;MACAA,WAAWtI,UAAXsI,GAAwB,CAAC,EAAEC,yBAAyB,CAA3B,CAAzBD;MACAA,WAAWtF,YAAXsF,GAA2BC,0BAA0B,CAA1BA,GAA+B,CAA1DD;MACAA,WAAW5F,SAAX4F,GAAuB,KAAKA,WAAWtF,YAAvCsF;MACAA,WAAWxF,eAAXwF,GAA8BC,0BAA0B,CAA1BA,GAA+B,CAA7DD;MACAA,WAAW1F,UAAX0F,GAAwB,CAAC,EAAEC,yBAAyB,EAA3B,CAAzBD;MACAA,WAAWvF,mBAAXuF,GAAkCC,0BAA0B,CAA1BA,GAA+B,CAAjED;MACAA,WAAW9F,iBAAX8F,GAAgCC,0BAA0B,CAA1BA,GAA+B,CAA/DD;MACAA,WAAWzF,QAAXyF,GAAuBC,0BAA0B,EAA1BA,IAAiC,EAAxDD;MACAA,WAAWD,kBAAXC,GAAiCC,0BAA0B,EAA1BA,GAAgC,CAAjED;;MACA,IAAIA,WAAWvI,OAAf,EAAwB;QACtB,MAAMyI,yBAAyBn7D,4BAAWv2B,IAAXu2B,EAAiB5E,QAAjB4E,CAA/B;QACA5E,YAAY,CAAZA;QACA6/D,WAAWG,SAAXH,GAAuBE,yBAAyB,CAAhDF;QACAA,WAAWI,SAAXJ,GAAwBE,0BAA0B,CAA1BA,GAA+B,CAAvDF;QACAA,WAAWK,SAAXL,GAAwBE,0BAA0B,CAA1BA,GAA+B,CAAvDF;QACAA,WAAWM,mBAAXN,GAAkCE,0BAA0B,CAA1BA,GAA+B,CAAjEF;QACAA,WAAWO,mBAAXP,GAAkCE,0BAA0B,CAA1BA,GAA+B,CAAjEF;QACAA,WAAWQ,mBAAXR,GAAkCE,0BAA0B,EAA1BA,GAAgC,CAAlEF;QACAA,WAAWS,mBAAXT,GAAkCE,0BAA0B,EAA1BA,GAAgC,CAAlEF;QACAA,WAAWU,6BAAXV,GAA2C,CAAC,EAC1CE,yBAAyB,MADiB,CAA5CF;MA1BJ;;MA8BE,IAAIA,WAAWtI,UAAXsI,IAAyB,CAACA,WAAWD,kBAAzC,EAA6D;QAC3D1K,KAAK,EAALA;;QACA,KAAK/kF,IAAI,CAAT,EAAYA,IAAI,CAAhB,EAAmBA,GAAnB,EAAwB;UACtB+kF,GAAG5lF,IAAH4lF,CAAQ;YACNz8E,GAAGisB,0BAASr2B,IAATq2B,EAAe1E,QAAf0E,CADG;YAEN6d,GAAG7d,0BAASr2B,IAATq2B,EAAe1E,WAAW,CAA1B0E;UAFG,CAARwwD;UAIAl1D,YAAY,CAAZA;QAPyD;;QAS3D6/D,WAAWhI,YAAXgI,GAA0B3K,EAA1B2K;MAvCJ;;MAyCEA,WAAW7F,uBAAX6F,GAAqCh7D,4BAAWx2B,IAAXw2B,EAAiB7E,QAAjB6E,CAArCg7D;MACA7/D,YAAY,CAAZA;MACAlC,OAAO,CAAC+hE,UAAD,EAAatc,OAAO4a,UAApB,EAAgC9vF,IAAhC,EAAsC2xB,QAAtC,EAAgD7B,GAAhD,CAAPL;MACA;;IACF,KAAK,EAAL;MAEE,MAAM0iE,oBAAoB,EAA1B;MACA,MAAMC,yBAAyBpyF,KAAK2xB,UAAL,CAA/B;MACAwgE,kBAAkBzL,GAAlByL,GAAwB,CAAC,EAAEC,yBAAyB,CAA3B,CAAzBD;MACAA,kBAAkBtvD,QAAlBsvD,GAA8BC,0BAA0B,CAA1BA,GAA+B,CAA7DD;MACAA,kBAAkB3E,YAAlB2E,GAAiCnyF,KAAK2xB,UAAL,CAAjCwgE;MACAA,kBAAkB1E,aAAlB0E,GAAkCnyF,KAAK2xB,UAAL,CAAlCwgE;MACAA,kBAAkBzE,eAAlByE,GAAoC37D,4BAAWx2B,IAAXw2B,EAAiB7E,QAAjB6E,CAApC27D;MACAxgE,YAAY,CAAZA;MACAlC,OAAO,CAAC0iE,iBAAD,EAAoBjd,OAAOn/C,MAA3B,EAAmC/1B,IAAnC,EAAyC2xB,QAAzC,EAAmD7B,GAAnD,CAAPL;MACA;;IACF,KAAK,EAAL;IACA,KAAK,EAAL;MAEE,MAAM4iE,iBAAiB,EAAvB;MACAA,eAAetmF,IAAfsmF,GAAsBpC,6BAA6BjwF,IAA7B,EAAmC2xB,QAAnC,CAAtB0gE;MACA1gE,YAAYw+D,mCAAZx+D;MACA,MAAM2gE,sBAAsBtyF,KAAK2xB,UAAL,CAA5B;MACA0gE,eAAe3L,GAAf2L,GAAqB,CAAC,EAAEC,sBAAsB,CAAxB,CAAtBD;MACAA,eAAexvD,QAAfwvD,GAA2BC,uBAAuB,CAAvBA,GAA4B,CAAvDD;MACAA,eAAerE,UAAfqE,GAA4B,CAAC,EAAEC,sBAAsB,CAAxB,CAA7BD;MACAA,eAAepG,mBAAfoG,GAAsCC,uBAAuB,CAAvBA,GAA4B,CAAlED;MACAA,eAAe3G,iBAAf2G,GAAoCC,uBAAuB,CAAvBA,GAA4B,CAAhED;MACAA,eAAepE,SAAfoE,GAA2B77D,4BAAWx2B,IAAXw2B,EAAiB7E,QAAjB6E,CAA3B67D;MACA1gE,YAAY,CAAZA;MACA0gE,eAAenE,UAAfmE,GAA4B77D,4BAAWx2B,IAAXw2B,EAAiB7E,QAAjB6E,CAA5B67D;MACA1gE,YAAY,CAAZA;MACA0gE,eAAelE,WAAfkE,GAA6B77D,4BAAWx2B,IAAXw2B,EAAiB7E,QAAjB6E,IAA6B,UAA1D67D;MACA1gE,YAAY,CAAZA;MACA0gE,eAAejE,WAAfiE,GAA6B77D,4BAAWx2B,IAAXw2B,EAAiB7E,QAAjB6E,IAA6B,UAA1D67D;MACA1gE,YAAY,CAAZA;MACA0gE,eAAehE,WAAfgE,GAA6B97D,4BAAWv2B,IAAXu2B,EAAiB5E,QAAjB4E,CAA7B87D;MACA1gE,YAAY,CAAZA;MACA0gE,eAAe/D,WAAf+D,GAA6B97D,4BAAWv2B,IAAXu2B,EAAiB5E,QAAjB4E,CAA7B87D;MACA1gE,YAAY,CAAZA;MACAlC,OAAO,CAAC4iE,cAAD,EAAiBnd,OAAO4a,UAAxB,EAAoC9vF,IAApC,EAA0C2xB,QAA1C,EAAoD7B,GAApD,CAAPL;MACA;;IACF,KAAK,EAAL;IACA,KAAK,EAAL;MACE,MAAM8iE,gBAAgB,EAAtB;MACAA,cAAcxmF,IAAdwmF,GAAqBtC,6BAA6BjwF,IAA7B,EAAmC2xB,QAAnC,CAArB4gE;MACA5gE,YAAYw+D,mCAAZx+D;MACA,MAAMu+D,4BAA4BlwF,KAAK2xB,UAAL,CAAlC;MACA4gE,cAAc7L,GAAd6L,GAAoB,CAAC,EAAErC,4BAA4B,CAA9B,CAArBqC;MACAA,cAAc1vD,QAAd0vD,GAA0BrC,6BAA6B,CAA7BA,GAAkC,CAA5DqC;MACAA,cAAc3L,UAAd2L,GAA2B,CAAC,EAAErC,4BAA4B,CAA9B,CAA5BqC;;MACA,IAAI,CAACA,cAAc7L,GAAnB,EAAwB;QACtBoK,WAAWyB,cAAc1vD,QAAd0vD,KAA2B,CAA3BA,GAA+B,CAA/BA,GAAmC,CAA9CzB;QACAjK,KAAK,EAALA;;QACA,KAAK/kF,IAAI,CAAT,EAAYA,IAAIgvF,QAAhB,EAA0BhvF,GAA1B,EAA+B;UAC7B+kF,GAAG5lF,IAAH4lF,CAAQ;YACNz8E,GAAGisB,0BAASr2B,IAATq2B,EAAe1E,QAAf0E,CADG;YAEN6d,GAAG7d,0BAASr2B,IAATq2B,EAAe1E,WAAW,CAA1B0E;UAFG,CAARwwD;UAIAl1D,YAAY,CAAZA;QARoB;;QAUtB4gE,cAAc1L,EAAd0L,GAAmB1L,EAAnB0L;MAlBJ;;MAoBE9iE,OAAO,CAAC8iE,aAAD,EAAgBvyF,IAAhB,EAAsB2xB,QAAtB,EAAgC7B,GAAhC,CAAPL;MACA;;IACF,KAAK,EAAL;MACE,MAAM+iE,WAAW;QACfx5C,OAAOxiB,4BAAWx2B,IAAXw2B,EAAiB7E,QAAjB6E,CADQ;QAEfuoB,QAAQvoB,4BAAWx2B,IAAXw2B,EAAiB7E,WAAW,CAA5B6E,CAFO;QAGfi8D,aAAaj8D,4BAAWx2B,IAAXw2B,EAAiB7E,WAAW,CAA5B6E,CAHE;QAIfk8D,aAAal8D,4BAAWx2B,IAAXw2B,EAAiB7E,WAAW,EAA5B6E;MAJE,CAAjB;;MAMA,IAAIg8D,SAASzzC,MAATyzC,KAAoB,UAAxB,EAAoC;QAClC,OAAOA,SAASzzC,MAAhB;MARJ;;MAUE,MAAM4zC,mBAAmB3yF,KAAK2xB,WAAW,EAAhB,CAAzB;MACA4E,4BAAWv2B,IAAXu2B,EAAiB5E,WAAW,EAA5B4E;MACAi8D,SAASI,QAATJ,GAAoB,CAAC,EAAEG,mBAAmB,CAArB,CAArBH;MACAA,SAAStJ,UAATsJ,GAAsB,CAAC,EAAEG,mBAAmB,CAArB,CAAvBH;MACAA,SAAS9G,iBAAT8G,GAA8BG,oBAAoB,CAApBA,GAAyB,CAAvDH;MACAA,SAASvG,mBAATuG,GAAgCG,oBAAoB,CAApBA,GAAyB,CAAzDH;MACAA,SAASK,cAATL,GAA0B,CAAC,EAAEG,mBAAmB,EAArB,CAA3BH;MACAA,SAASM,2BAATN,GAAuC,CAAC,EAAEG,mBAAmB,EAArB,CAAxCH;MACA/iE,OAAO,CAAC+iE,QAAD,CAAP/iE;MACA;;IACF,KAAK,EAAL;MACE;;IACF,KAAK,EAAL;MACE;;IACF,KAAK,EAAL;MACE;;IACF,KAAK,EAAL;MACEA,OAAO,CAACylD,OAAOn/C,MAAR,EAAgB/1B,IAAhB,EAAsB2xB,QAAtB,EAAgC7B,GAAhC,CAAPL;MACA;;IACF,KAAK,EAAL;MAEE;;IACF;MACE,MAAM,IAAIm1D,UAAJ,CACH,gBAAe1P,OAAOqa,QAAS,IAAGra,OAAOtqD,IAAK,GAA/C,GACE,qBAFE,CAAN;EAhMJ;;EAqMA,MAAMmoE,eAAe,OAAO7d,OAAOqa,QAAnC;;EACA,IAAIwD,gBAAgBlC,OAApB,EAA6B;IAC3BA,QAAQkC,YAAR,EAAsBtwE,KAAtBouE,CAA4BA,OAA5BA,EAAqCphE,IAArCohE;EA9MsC;AA3vC1C;;AA68CA,SAASmC,eAAT,CAAyBvC,QAAzB,EAAmCI,OAAnC,EAA4C;EAC1C,KAAK,IAAI/uF,IAAI,CAAR,EAAWiJ,KAAK0lF,SAASvvF,MAA9B,EAAsCY,IAAIiJ,EAA1C,EAA8CjJ,GAA9C,EAAmD;IACjD8uF,eAAeH,SAAS3uF,CAAT,CAAf,EAA4B+uF,OAA5B;EAFwC;AA78C5C;;AAm9CA,SAASoC,gBAAT,CAA0B9hE,MAA1B,EAAkC;EAChC,MAAM0/D,UAAU,IAAIqC,oBAAJ,EAAhB;;EACA,KAAK,IAAIpxF,IAAI,CAAR,EAAWiJ,KAAKomB,OAAOjwB,MAA5B,EAAoCY,IAAIiJ,EAAxC,EAA4CjJ,GAA5C,EAAiD;IAC/C,MAAM+gB,QAAQsO,OAAOrvB,CAAP,CAAd;IACA,MAAM2uF,WAAWD,aAAa,EAAb,EAAiB3tE,MAAM7iB,IAAvB,EAA6B6iB,MAAMtW,KAAnC,EAA0CsW,MAAMiN,GAAhD,CAAjB;IACAkjE,gBAAgBvC,QAAhB,EAA0BI,OAA1B;EAL8B;;EAOhC,OAAOA,QAAQ5sE,MAAf;AA19CF;;AA69CA,SAASkvE,UAAT,CAAoBnzF,IAApB,EAA0B;EACxB,MAAM8vB,MAAM9vB,KAAKkB,MAAjB;EACA,IAAIywB,WAAW,CAAf;;EAEA,IACE3xB,KAAK2xB,QAAL,MAAmB,IAAnB3xB,IACAA,KAAK2xB,WAAW,CAAhB,MAAuB,IADvB3xB,IAEAA,KAAK2xB,WAAW,CAAhB,MAAuB,IAFvB3xB,IAGAA,KAAK2xB,WAAW,CAAhB,MAAuB,IAHvB3xB,IAIAA,KAAK2xB,WAAW,CAAhB,MAAuB,IAJvB3xB,IAKAA,KAAK2xB,WAAW,CAAhB,MAAuB,IALvB3xB,IAMAA,KAAK2xB,WAAW,CAAhB,MAAuB,IANvB3xB,IAOAA,KAAK2xB,WAAW,CAAhB,MAAuB,IARzB,EASE;IACA,MAAM,IAAIizD,UAAJ,CAAe,8BAAf,CAAN;EAdsB;;EAiBxB,MAAM1P,SAAShqE,OAAOC,MAAPD,CAAc,IAAdA,CAAf;EACAymB,YAAY,CAAZA;EACA,MAAMmd,QAAQ9uC,KAAK2xB,UAAL,CAAd;EACAujD,OAAOyb,YAAPzb,GAAsB,EAAEpmC,QAAQ,CAAV,CAAtBomC;;EACA,IAAI,EAAEpmC,QAAQ,CAAV,CAAJ,EAAkB;IAChBomC,OAAOke,aAAPle,GAAuB1+C,4BAAWx2B,IAAXw2B,EAAiB7E,QAAjB6E,CAAvB0+C;IACAvjD,YAAY,CAAZA;EAvBsB;;EA0BxB,MAAM8+D,WAAWD,aAAatb,MAAb,EAAqBl1E,IAArB,EAA2B2xB,QAA3B,EAAqC7B,GAArC,CAAjB;EACA,MAAM+gE,UAAU,IAAIqC,oBAAJ,EAAhB;EACAF,gBAAgBvC,QAAhB,EAA0BI,OAA1B;EAEA,MAAM;IAAE73C,KAAF;IAAS+F;EAAT,IAAoB8xC,QAAQwC,eAAlC;EACA,MAAMC,YAAYzC,QAAQ5sE,MAA1B;EACA,MAAMsxC,UAAU,IAAIjiB,iBAAJ,CAAsB0F,QAAQ+F,MAA9B,CAAhB;EACA,IAAIoN,IAAI,CAAR;EAAA,IACEI,IAAI,CADN;;EAEA,KAAK,IAAIzqD,IAAI,CAAb,EAAgBA,IAAIi9C,MAApB,EAA4Bj9C,GAA5B,EAAiC;IAC/B,IAAIk1D,OAAO,CAAX;IAAA,IACE/yC,MADF;;IAEA,KAAK,IAAImE,IAAI,CAAb,EAAgBA,IAAI4wB,KAApB,EAA2B5wB,GAA3B,EAAgC;MAC9B,IAAI,CAAC4uC,IAAL,EAAW;QACTA,OAAO,GAAPA;QACA/yC,SAASqvE,UAAU/mC,GAAV,CAATtoC;MAH4B;;MAK9BsxC,QAAQpJ,GAAR,IAAeloC,SAAS+yC,IAAT/yC,GAAgB,CAAhBA,GAAoB,GAAnCsxC;MACAyB,SAAS,CAATA;IAT6B;EAnCT;;EAgDxB,OAAO;IAAEzB,OAAF;IAAWvc,KAAX;IAAkB+F;EAAlB,CAAP;AA7gDF;;AAghDA,MAAMm0C,oBAAN,CAA2B;EACzBK,kBAAkBxnF,IAAlB,EAAwB;IACtB,KAAKsnF,eAAL,GAAuBtnF,IAAvB;IACA,MAAMynF,UAAWznF,KAAKitC,KAALjtC,GAAa,CAAbA,IAAmB,CAApC;IACA,MAAMkY,SAAS,IAAIqvB,iBAAJ,CAAsBkgD,UAAUznF,KAAKgzC,MAArC,CAAf;;IAGA,IAAIhzC,KAAK2/E,iBAAT,EAA4B;MAC1BznE,OAAOjK,IAAPiK,CAAY,IAAZA;IAPoB;;IAStB,KAAKA,MAAL,GAAcA,MAAd;EAVuB;;EAazBwvE,WAAWC,UAAX,EAAuBh+B,MAAvB,EAA+B;IAC7B,MAAM88B,WAAW,KAAKa,eAAtB;IACA,MAAMr6C,QAAQ06C,WAAW16C,KAAzB;IAAA,MACE+F,SAAS20C,WAAW30C,MADtB;IAEA,MAAMy0C,UAAWhB,SAASx5C,KAATw5C,GAAiB,CAAjBA,IAAuB,CAAxC;IACA,MAAMvG,sBAAsBuG,SAASM,2BAATN,GACxBkB,WAAWzH,mBADauG,GAExBA,SAASvG,mBAFb;IAGA,MAAMhoE,SAAS,KAAKA,MAApB;IACA,MAAM0vE,QAAQ,QAAQD,WAAWtpF,CAAXspF,GAAe,CAAvB,CAAd;IACA,IAAIE,UAAUF,WAAWx/C,CAAXw/C,GAAeF,OAAfE,IAA0BA,WAAWtpF,CAAXspF,IAAgB,CAA1CA,CAAd;IACA,IAAI5xF,CAAJ,EAAOsmB,CAAP,EAAU4uC,IAAV,EAAgB1gC,MAAhB;;IACA,QAAQ21D,mBAAR;MACE,KAAK,CAAL;QACE,KAAKnqF,IAAI,CAAT,EAAYA,IAAIi9C,MAAhB,EAAwBj9C,GAAxB,EAA6B;UAC3Bk1D,OAAO28B,KAAP38B;UACA1gC,SAASs9D,OAATt9D;;UACA,KAAKlO,IAAI,CAAT,EAAYA,IAAI4wB,KAAhB,EAAuB5wB,GAAvB,EAA4B;YAC1B,IAAIstC,OAAO5zD,CAAP,EAAUsmB,CAAVstC,CAAJ,EAAkB;cAChBzxC,OAAOqS,MAAP,KAAkB0gC,IAAlB/yC;YAFwB;;YAI1B+yC,SAAS,CAATA;;YACA,IAAI,CAACA,IAAL,EAAW;cACTA,OAAO,GAAPA;cACA1gC;YAPwB;UAHD;;UAa3Bs9D,WAAWJ,OAAXI;QAdJ;;QAgBE;;MACF,KAAK,CAAL;QACE,KAAK9xF,IAAI,CAAT,EAAYA,IAAIi9C,MAAhB,EAAwBj9C,GAAxB,EAA6B;UAC3Bk1D,OAAO28B,KAAP38B;UACA1gC,SAASs9D,OAATt9D;;UACA,KAAKlO,IAAI,CAAT,EAAYA,IAAI4wB,KAAhB,EAAuB5wB,GAAvB,EAA4B;YAC1B,IAAIstC,OAAO5zD,CAAP,EAAUsmB,CAAVstC,CAAJ,EAAkB;cAChBzxC,OAAOqS,MAAP,KAAkB0gC,IAAlB/yC;YAFwB;;YAI1B+yC,SAAS,CAATA;;YACA,IAAI,CAACA,IAAL,EAAW;cACTA,OAAO,GAAPA;cACA1gC;YAPwB;UAHD;;UAa3Bs9D,WAAWJ,OAAXI;QAdJ;;QAgBE;;MACF;QACE,MAAM,IAAIhP,UAAJ,CACH,YAAWqH,mBAAoB,mBAD5B,CAAN;IApCJ;EAzBuB;;EAmEzB4H,yBAAyBC,MAAzB,EAAiC9zF,IAAjC,EAAuCuM,KAAvC,EAA8CujB,GAA9C,EAAmD;IACjD,MAAM4jE,aAAaI,OAAO/nF,IAA1B;IACA,MAAMo6E,kBAAkB,IAAInB,eAAJ,CAAoBhlF,IAApB,EAA0BuM,KAA1B,EAAiCujB,GAAjC,CAAxB;IACA,MAAM4lC,SAAS+wB,aACbqN,OAAOpN,GADM,EAEbgN,WAAW16C,KAFE,EAGb06C,WAAW30C,MAHE,EAIb+0C,OAAOjxD,QAJM,EAKbixD,OAAOlN,UALM,EAMb,IANa,EAObkN,OAAOjN,EAPM,EAQbV,eARa,CAAf;IAUA,KAAKsN,UAAL,CAAgBC,UAAhB,EAA4Bh+B,MAA5B;EAhFuB;;EAmFzBq+B,mCAAmC;IACjC,KAAKF,wBAAL,CAA8BpxE,KAA9B,CAAoC,IAApC,EAA0CuxE,SAA1C;EApFuB;;EAuFzBC,mBACElD,UADF,EAEEmD,cAFF,EAGEC,gBAHF,EAIEn0F,IAJF,EAKEuM,KALF,EAMEujB,GANF,EAOE;IACA,IAAIw5D,aAAJ,EAAmBG,YAAnB;;IACA,IAAIsH,WAAW9H,OAAf,EAAwB;MACtBK,gBAAgB8K,iCACdrD,UADc,EAEdoD,gBAFc,EAGd,KAAKE,YAHS,CAAhB/K;MAKAG,eAAe,IAAI3C,MAAJ,CAAW9mF,IAAX,EAAiBuM,KAAjB,EAAwBujB,GAAxB,CAAf25D;IARF;;IAYA,IAAIN,UAAU,KAAKA,OAAnB;;IACA,IAAI,CAACA,OAAL,EAAc;MACZ,KAAKA,OAAL,GAAeA,UAAU,EAAzB;IAdF;;IAiBA,IAAI0C,eAAe,EAAnB;;IACA,KAAK,IAAI/pF,IAAI,CAAR,EAAWiJ,KAAKopF,iBAAiBjzF,MAAtC,EAA8CY,IAAIiJ,EAAlD,EAAsDjJ,GAAtD,EAA2D;MACzD,MAAMwyF,kBAAkBnL,QAAQgL,iBAAiBryF,CAAjB,CAAR,CAAxB;;MAGA,IAAIwyF,eAAJ,EAAqB;QACnBzI,eAAeA,aAAarhF,MAAbqhF,CAAoByI,eAApBzI,CAAfA;MALuD;IAlB3D;;IA2BA,MAAM1F,kBAAkB,IAAInB,eAAJ,CAAoBhlF,IAApB,EAA0BuM,KAA1B,EAAiCujB,GAAjC,CAAxB;IACAq5D,QAAQ+K,cAAR,IAA0BlL,uBACxB+H,WAAW9H,OADa,EAExB8H,WAAW7H,UAFa,EAGxB2C,YAHwB,EAIxBkF,WAAW3H,kBAJa,EAKxB2H,WAAW1H,uBALa,EAMxBC,aANwB,EAOxByH,WAAWluD,QAPa,EAQxBkuD,WAAWlK,EARa,EASxBkK,WAAWQ,kBATa,EAUxBR,WAAWvH,YAVa,EAWxBrD,eAXwB,EAYxBsD,YAZwB,CAA1BN;EA1HuB;;EA0IzBoL,sBAAsBT,MAAtB,EAA8BK,gBAA9B,EAAgDn0F,IAAhD,EAAsDuM,KAAtD,EAA6DujB,GAA7D,EAAkE;IAChE,MAAM4jE,aAAaI,OAAO/nF,IAA1B;IACA,IAAIu9E,aAAJ,EAAmBG,YAAnB;IAGA,MAAMN,UAAU,KAAKA,OAArB;IACA,IAAI0C,eAAe,EAAnB;;IACA,KAAK,IAAI/pF,IAAI,CAAR,EAAWiJ,KAAKopF,iBAAiBjzF,MAAtC,EAA8CY,IAAIiJ,EAAlD,EAAsDjJ,GAAtD,EAA2D;MACzD,MAAMwyF,kBAAkBnL,QAAQgL,iBAAiBryF,CAAjB,CAAR,CAAxB;;MAGA,IAAIwyF,eAAJ,EAAqB;QACnBzI,eAAeA,aAAarhF,MAAbqhF,CAAoByI,eAApBzI,CAAfA;MALuD;IAPK;;IAehE,MAAMjC,mBAAmBxzD,sBAAKy1D,aAAa3qF,MAAlBk1B,CAAzB;;IACA,IAAI09D,OAAO7K,OAAX,EAAoB;MAClBQ,eAAe,IAAI3C,MAAJ,CAAW9mF,IAAX,EAAiBuM,KAAjB,EAAwBujB,GAAxB,CAAf25D;MACAH,gBAAgBkL,2BACdV,MADc,EAEdK,gBAFc,EAGd,KAAKE,YAHS,EAIdxI,aAAa3qF,MAJC,EAKduoF,YALc,CAAhBH;IAlB8D;;IA2BhE,MAAMnD,kBAAkB,IAAInB,eAAJ,CAAoBhlF,IAApB,EAA0BuM,KAA1B,EAAiCujB,GAAjC,CAAxB;IACA,MAAM4lC,SAAS40B,iBACbwJ,OAAO7K,OADM,EAEb6K,OAAO5K,UAFM,EAGbwK,WAAW16C,KAHE,EAIb06C,WAAW30C,MAJE,EAKb+0C,OAAOpI,iBALM,EAMboI,OAAOnI,uBANM,EAObmI,OAAOlI,SAPM,EAQbC,YARa,EASbjC,gBATa,EAUbkK,OAAOhI,UAVM,EAWbgI,OAAO/H,QAXM,EAYb+H,OAAO9H,eAZM,EAab8H,OAAO7H,mBAbM,EAcb3C,aAda,EAebwK,OAAOvC,kBAfM,EAgBbuC,OAAOtK,YAhBM,EAiBbrD,eAjBa,EAkBb2N,OAAO5H,YAlBM,EAmBbzC,YAnBa,CAAf;IAqBA,KAAKgK,UAAL,CAAgBC,UAAhB,EAA4Bh+B,MAA5B;EA3LuB;;EA8LzB++B,gCAAgC;IAC9B,KAAKF,qBAAL,CAA2B9xE,KAA3B,CAAiC,IAAjC,EAAuCuxE,SAAvC;EA/LuB;;EAkMzBU,oBAAoB3D,UAApB,EAAgCmD,cAAhC,EAAgDl0F,IAAhD,EAAsDuM,KAAtD,EAA6DujB,GAA7D,EAAkE;IAChE,IAAIwsC,WAAW,KAAKA,QAApB;;IACA,IAAI,CAACA,QAAL,EAAe;MACb,KAAKA,QAAL,GAAgBA,WAAW,EAA3B;IAH8D;;IAKhE,MAAM6pB,kBAAkB,IAAInB,eAAJ,CAAoBhlF,IAApB,EAA0BuM,KAA1B,EAAiCujB,GAAjC,CAAxB;IACAwsC,SAAS43B,cAAT,IAA2B3G,wBACzBwD,WAAWrK,GADc,EAEzBqK,WAAWvD,YAFc,EAGzBuD,WAAWtD,aAHc,EAIzBsD,WAAWrD,eAJc,EAKzBqD,WAAWluD,QALc,EAMzBsjD,eANyB,CAA3B7pB;EAxMuB;;EAkNzBq4B,0BAA0Bb,MAA1B,EAAkCK,gBAAlC,EAAoDn0F,IAApD,EAA0DuM,KAA1D,EAAiEujB,GAAjE,EAAsE;IAEpE,MAAMwsC,WAAW,KAAKA,QAAL,CAAc63B,iBAAiB,CAAjB,CAAd,CAAjB;IACA,MAAMT,aAAaI,OAAO/nF,IAA1B;IACA,MAAMo6E,kBAAkB,IAAInB,eAAJ,CAAoBhlF,IAApB,EAA0BuM,KAA1B,EAAiCujB,GAAjC,CAAxB;IACA,MAAM4lC,SAASm4B,qBACbiG,OAAOpN,GADM,EAEbpqB,QAFa,EAGbw3B,OAAOjxD,QAHM,EAIb6wD,WAAW16C,KAJE,EAKb06C,WAAW30C,MALE,EAMb+0C,OAAOpI,iBANM,EAOboI,OAAO9F,UAPM,EAQb8F,OAAO7H,mBARM,EASb6H,OAAO7F,SATM,EAUb6F,OAAO5F,UAVM,EAWb4F,OAAO3F,WAXM,EAYb2F,OAAO1F,WAZM,EAab0F,OAAOzF,WAbM,EAcbyF,OAAOxF,WAdM,EAebnI,eAfa,CAAf;IAiBA,KAAKsN,UAAL,CAAgBC,UAAhB,EAA4Bh+B,MAA5B;EAxOuB;;EA2OzBk/B,oCAAoC;IAClC,KAAKD,yBAAL,CAA+BlyE,KAA/B,CAAqC,IAArC,EAA2CuxE,SAA3C;EA5OuB;;EA+OzBa,SAASX,cAAT,EAAyBl0F,IAAzB,EAA+BuM,KAA/B,EAAsCujB,GAAtC,EAA2C;IACzC,IAAIukE,eAAe,KAAKA,YAAxB;;IACA,IAAI,CAACA,YAAL,EAAmB;MACjB,KAAKA,YAAL,GAAoBA,eAAe,EAAnC;IAHuC;;IAKzCA,aAAaH,cAAb,IAA+BY,oBAAoB90F,IAApB,EAA0BuM,KAA1B,EAAiCujB,GAAjC,CAA/BukE;EApPuB;;AAAA;;AAwP3B,MAAMU,WAAN,CAAkB;EAChBl2F,YAAYm2F,QAAZ,EAAsB;IACpB,IAAIA,SAAS9zF,MAAT8zF,KAAoB,CAAxB,EAA2B;MAEzB,KAAKC,KAAL,GAAa,IAAb;MACA,KAAKC,QAAL,GAAgB,CAAhB;MACA,KAAKC,YAAL,GAAoBH,SAAS,CAAT,CAApB;MACA,KAAKI,WAAL,GAAmB,CAAnB;MACA,KAAKC,UAAL,GAAkBL,SAAS,CAAT,CAAlB;MACA,KAAKM,YAAL,GAAoB,KAApB;IAPF,OAQO;MAGL,KAAKL,KAAL,GAAa,KAAb;MACA,KAAKC,QAAL,GAAgBF,SAAS,CAAT,CAAhB;MACA,KAAKG,YAAL,GAAoBH,SAAS,CAAT,CAApB;MACA,KAAKI,WAAL,GAAmBJ,SAAS,CAAT,CAAnB;MACA,KAAKK,UAAL,GAAkBL,SAAS,CAAT,CAAlB;MACA,KAAKM,YAAL,GAAoBN,SAAS,CAAT,MAAgB,OAApC;IAjBkB;EADN;;AAAA;;AAuBlB,MAAMO,eAAN,CAAsB;EACpB12F,YAAYugD,IAAZ,EAAkB;IAChB,KAAKo2C,QAAL,GAAgB,EAAhB;;IACA,IAAIp2C,IAAJ,EAAU;MAER,KAAKq2C,MAAL,GAAc,IAAd;MACA,KAAKL,WAAL,GAAmBh2C,KAAKg2C,WAAxB;MACA,KAAKF,QAAL,GAAgB91C,KAAK81C,QAArB;MACA,KAAKI,YAAL,GAAoBl2C,KAAKk2C,YAAzB;MACA,KAAKL,KAAL,GAAa71C,KAAK61C,KAAlB;IANF,OAOO;MAEL,KAAKQ,MAAL,GAAc,KAAd;IAXc;EADE;;EAgBpBC,UAAUt2C,IAAV,EAAgBa,KAAhB,EAAuB;IACrB,MAAMslC,MAAOnmC,KAAKi2C,UAALj2C,IAAmBa,KAAnBb,GAA4B,CAAzC;;IACA,IAAIa,SAAS,CAAb,EAAgB;MAEd,KAAKu1C,QAAL,CAAcjQ,GAAd,IAAqB,IAAIgQ,eAAJ,CAAoBn2C,IAApB,CAArB;IAFF,OAGO;MAEL,IAAIsU,OAAO,KAAK8hC,QAAL,CAAcjQ,GAAd,CAAX;;MACA,IAAI,CAAC7xB,IAAL,EAAW;QACT,KAAK8hC,QAAL,CAAcjQ,GAAd,IAAqB7xB,OAAO,IAAI6hC,eAAJ,CAAoB,IAApB,CAA5B;MAJG;;MAML7hC,KAAKgiC,SAALhiC,CAAetU,IAAfsU,EAAqBzT,QAAQ,CAA7ByT;IAXmB;EAhBH;;EA+BpBiiC,WAAWC,MAAX,EAAmB;IACjB,IAAI,KAAKH,MAAT,EAAiB;MACf,IAAI,KAAKR,KAAT,EAAgB;QACd,OAAO,IAAP;MAFa;;MAIf,MAAMY,WAAWD,OAAOtQ,QAAPsQ,CAAgB,KAAKR,WAArBQ,CAAjB;MACA,OAAO,KAAKV,QAAL,IAAiB,KAAKI,YAAL,GAAoB,CAACO,QAArB,GAAgCA,QAAjD,CAAP;IANe;;IAQjB,MAAMniC,OAAO,KAAK8hC,QAAL,CAAcI,OAAOpQ,OAAPoQ,EAAd,CAAb;;IACA,IAAI,CAACliC,IAAL,EAAW;MACT,MAAM,IAAIkxB,UAAJ,CAAe,sBAAf,CAAN;IAVe;;IAYjB,OAAOlxB,KAAKiiC,UAALjiC,CAAgBkiC,MAAhBliC,CAAP;EA3CkB;;AAAA;;AA+CtB,MAAMoiC,YAAN,CAAmB;EACjBj3F,YAAYqgD,KAAZ,EAAmB62C,eAAnB,EAAoC;IAClC,IAAI,CAACA,eAAL,EAAsB;MACpB,KAAKC,iBAAL,CAAuB92C,KAAvB;IAFgC;;IAKlC,KAAK+2C,QAAL,GAAgB,IAAIV,eAAJ,CAAoB,IAApB,CAAhB;;IACA,KAAK,IAAIzzF,IAAI,CAAR,EAAWiJ,KAAKm0C,MAAMh+C,MAA3B,EAAmCY,IAAIiJ,EAAvC,EAA2CjJ,GAA3C,EAAgD;MAC9C,MAAMs9C,OAAOF,MAAMp9C,CAAN,CAAb;;MACA,IAAIs9C,KAAK+1C,YAAL/1C,GAAoB,CAAxB,EAA2B;QACzB,KAAK62C,QAAL,CAAcP,SAAd,CAAwBt2C,IAAxB,EAA8BA,KAAK+1C,YAAL/1C,GAAoB,CAAlD;MAH4C;IANd;EADnB;;EAejBx2B,OAAOgtE,MAAP,EAAe;IACb,OAAO,KAAKK,QAAL,CAAcN,UAAd,CAAyBC,MAAzB,CAAP;EAhBe;;EAmBjBI,kBAAkB92C,KAAlB,EAAyB;IAEvB,MAAMg3C,cAAch3C,MAAMh+C,MAA1B;IACA,IAAIi1F,kBAAkB,CAAtB;;IACA,KAAK,IAAIr0F,IAAI,CAAb,EAAgBA,IAAIo0F,WAApB,EAAiCp0F,GAAjC,EAAsC;MACpCq0F,kBAAkBhxF,KAAKC,GAALD,CAASgxF,eAAThxF,EAA0B+5C,MAAMp9C,CAAN,EAASqzF,YAAnChwF,CAAlBgxF;IALqB;;IAQvB,MAAMC,YAAY,IAAIpyE,WAAJ,CAAgBmyE,kBAAkB,CAAlC,CAAlB;;IACA,KAAK,IAAIr0F,IAAI,CAAb,EAAgBA,IAAIo0F,WAApB,EAAiCp0F,GAAjC,EAAsC;MACpCs0F,UAAUl3C,MAAMp9C,CAAN,EAASqzF,YAAnB;IAVqB;;IAYvB,IAAIkB,gBAAgB,CAApB;IAAA,IACEC,YAAY,CADd;IAAA,IAEE/pD,WAFF;IAAA,IAGEgqD,WAHF;IAAA,IAIEn3C,IAJF;IAKAg3C,UAAU,CAAV,IAAe,CAAfA;;IAEA,OAAOC,iBAAiBF,eAAxB,EAAyC;MACvCG,YAAaA,YAAYF,UAAUC,gBAAgB,CAA1B,CAAZC,IAA6C,CAA1DA;MACA/pD,cAAc+pD,SAAd/pD;MACAgqD,cAAc,CAAdA;;MACA,OAAOA,cAAcL,WAArB,EAAkC;QAChC92C,OAAOF,MAAMq3C,WAAN,CAAPn3C;;QACA,IAAIA,KAAK+1C,YAAL/1C,KAAsBi3C,aAA1B,EAAyC;UACvCj3C,KAAKi2C,UAALj2C,GAAkB7S,WAAlB6S;UACA7S;QAJ8B;;QAMhCgqD;MAVqC;;MAYvCF;IA/BqB;EAnBR;;AAAA;;AAuDnB,SAASvB,mBAAT,CAA6B90F,IAA7B,EAAmCuM,KAAnC,EAA0CujB,GAA1C,EAA+C;EAG7C,MAAMgf,QAAQ9uC,KAAKuM,KAAL,CAAd;EACA,MAAMiqF,cAAchgE,4BAAWx2B,IAAXw2B,EAAiBjqB,QAAQ,CAAzBiqB,IAA8B,UAAlD;EACA,MAAMigE,eAAejgE,4BAAWx2B,IAAXw2B,EAAiBjqB,QAAQ,CAAzBiqB,IAA8B,UAAnD;EACA,MAAMo/D,SAAS,IAAI9O,MAAJ,CAAW9mF,IAAX,EAAiBuM,QAAQ,CAAzB,EAA4BujB,GAA5B,CAAf;EAEA,MAAM4mE,iBAAkB,CAAC5nD,SAAS,CAATA,GAAc,CAAf,IAAoB,CAA5C;EACA,MAAM6nD,gBAAiB,CAAC7nD,SAAS,CAATA,GAAc,CAAf,IAAoB,CAA3C;EACA,MAAMoQ,QAAQ,EAAd;EACA,IAAIi2C,YAAJ;EAAA,IACEC,WADF;EAAA,IAEEwB,kBAAkBJ,WAFpB;;EAKA,GAAG;IACDrB,eAAeS,OAAOtQ,QAAPsQ,CAAgBc,cAAhBd,CAAfT;IACAC,cAAcQ,OAAOtQ,QAAPsQ,CAAgBe,aAAhBf,CAAdR;IACAl2C,MAAMj+C,IAANi+C,CACE,IAAI61C,WAAJ,CAAgB,CAAC6B,eAAD,EAAkBzB,YAAlB,EAAgCC,WAAhC,EAA6C,CAA7C,CAAhB,CADFl2C;IAGA03C,mBAAmB,KAAKxB,WAAxBwB;EANF,SAOSA,kBAAkBH,YAP3B;;EAUAtB,eAAeS,OAAOtQ,QAAPsQ,CAAgBc,cAAhBd,CAAfT;EACAj2C,MAAMj+C,IAANi+C,CAAW,IAAI61C,WAAJ,CAAgB,CAACyB,cAAc,CAAf,EAAkBrB,YAAlB,EAAgC,EAAhC,EAAoC,CAApC,EAAuC,OAAvC,CAAhB,CAAXj2C;EAGAi2C,eAAeS,OAAOtQ,QAAPsQ,CAAgBc,cAAhBd,CAAfT;EACAj2C,MAAMj+C,IAANi+C,CAAW,IAAI61C,WAAJ,CAAgB,CAAC0B,YAAD,EAAetB,YAAf,EAA6B,EAA7B,EAAiC,CAAjC,CAAhB,CAAXj2C;;EAEA,IAAIpQ,QAAQ,CAAZ,EAAe;IAEbqmD,eAAeS,OAAOtQ,QAAPsQ,CAAgBc,cAAhBd,CAAfT;IACAj2C,MAAMj+C,IAANi+C,CAAW,IAAI61C,WAAJ,CAAgB,CAACI,YAAD,EAAe,CAAf,CAAhB,CAAXj2C;EApC2C;;EAuC7C,OAAO,IAAI42C,YAAJ,CAAiB52C,KAAjB,EAAwB,KAAxB,CAAP;AA56DF;;AA+6DA,MAAM23C,sBAAsB,EAA5B;;AAEA,SAAS9M,gBAAT,CAA0Bh0D,MAA1B,EAAkC;EAEhC,IAAIosD,QAAQ0U,oBAAoB9gE,MAApB,CAAZ;;EACA,IAAIosD,KAAJ,EAAW;IACT,OAAOA,KAAP;EAJ8B;;EAMhC,IAAIjjC,KAAJ;;EACA,QAAQnpB,MAAR;IACE,KAAK,CAAL;MACEmpB,QAAQ,CACN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CADM,EAEN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,GAAX,CAFM,EAGN,CAAC,GAAD,EAAM,CAAN,EAAS,EAAT,EAAa,GAAb,CAHM,EAIN,CAAC,KAAD,EAAQ,CAAR,EAAW,EAAX,EAAe,GAAf,CAJM,CAARA;MAMA;;IACF,KAAK,CAAL;MACEA,QAAQ,CACN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CADM,EAEN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAFM,EAGN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAHM,EAIN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAJM,EAKN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CALM,EAMN,CAAC,EAAD,EAAK,CAAL,EAAQ,EAAR,EAAY,IAAZ,CANM,EAON,CAAC,CAAD,EAAI,IAAJ,CAPM,CAARA;MASA;;IACF,KAAK,CAAL;MACEA,QAAQ,CACN,CAAC,CAAC,GAAF,EAAO,CAAP,EAAU,CAAV,EAAa,IAAb,CADM,EAEN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAFM,EAGN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAHM,EAIN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAJM,EAKN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CALM,EAMN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CANM,EAON,CAAC,CAAC,GAAF,EAAO,CAAP,EAAU,EAAV,EAAc,IAAd,EAAoB,OAApB,CAPM,EAQN,CAAC,EAAD,EAAK,CAAL,EAAQ,EAAR,EAAY,IAAZ,CARM,EASN,CAAC,CAAD,EAAI,IAAJ,CATM,CAARA;MAWA;;IACF,KAAK,CAAL;MACEA,QAAQ,CACN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CADM,EAEN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAFM,EAGN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAHM,EAIN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAJM,EAKN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CALM,EAMN,CAAC,EAAD,EAAK,CAAL,EAAQ,EAAR,EAAY,IAAZ,CANM,CAARA;MAQA;;IACF,KAAK,CAAL;MACEA,QAAQ,CACN,CAAC,CAAC,GAAF,EAAO,CAAP,EAAU,CAAV,EAAa,IAAb,CADM,EAEN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAFM,EAGN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAHM,EAIN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAJM,EAKN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CALM,EAMN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CANM,EAON,CAAC,CAAC,GAAF,EAAO,CAAP,EAAU,EAAV,EAAc,IAAd,EAAoB,OAApB,CAPM,EAQN,CAAC,EAAD,EAAK,CAAL,EAAQ,EAAR,EAAY,IAAZ,CARM,CAARA;MAUA;;IACF,KAAK,CAAL;MACEA,QAAQ,CACN,CAAC,CAAC,IAAF,EAAQ,CAAR,EAAW,EAAX,EAAe,IAAf,CADM,EAEN,CAAC,CAAC,IAAF,EAAQ,CAAR,EAAW,CAAX,EAAc,GAAd,CAFM,EAGN,CAAC,CAAC,GAAF,EAAO,CAAP,EAAU,CAAV,EAAa,GAAb,CAHM,EAIN,CAAC,CAAC,GAAF,EAAO,CAAP,EAAU,CAAV,EAAa,GAAb,CAJM,EAKN,CAAC,CAAC,GAAF,EAAO,CAAP,EAAU,CAAV,EAAa,IAAb,CALM,EAMN,CAAC,CAAC,EAAF,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CANM,EAON,CAAC,CAAC,EAAF,EAAM,CAAN,EAAS,CAAT,EAAY,GAAZ,CAPM,EAQN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CARM,EASN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,GAAZ,CATM,EAUN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,GAAZ,CAVM,EAWN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,GAAZ,CAXM,EAYN,CAAC,IAAD,EAAO,CAAP,EAAU,EAAV,EAAc,GAAd,CAZM,EAaN,CAAC,CAAC,IAAF,EAAQ,CAAR,EAAW,EAAX,EAAe,IAAf,EAAqB,OAArB,CAbM,EAcN,CAAC,IAAD,EAAO,CAAP,EAAU,EAAV,EAAc,IAAd,CAdM,CAARA;MAgBA;;IACF,KAAK,CAAL;MACEA,QAAQ,CACN,CAAC,CAAC,IAAF,EAAQ,CAAR,EAAW,CAAX,EAAc,GAAd,CADM,EAEN,CAAC,CAAC,GAAF,EAAO,CAAP,EAAU,CAAV,EAAa,GAAb,CAFM,EAGN,CAAC,CAAC,GAAF,EAAO,CAAP,EAAU,CAAV,EAAa,GAAb,CAHM,EAIN,CAAC,CAAC,GAAF,EAAO,CAAP,EAAU,CAAV,EAAa,IAAb,CAJM,EAKN,CAAC,CAAC,EAAF,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CALM,EAMN,CAAC,CAAC,EAAF,EAAM,CAAN,EAAS,CAAT,EAAY,GAAZ,CANM,EAON,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAPM,EAQN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CARM,EASN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CATM,EAUN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,GAAZ,CAVM,EAWN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,GAAZ,CAXM,EAYN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,GAAZ,CAZM,EAaN,CAAC,IAAD,EAAO,CAAP,EAAU,EAAV,EAAc,GAAd,CAbM,EAcN,CAAC,CAAC,IAAF,EAAQ,CAAR,EAAW,EAAX,EAAe,IAAf,EAAqB,OAArB,CAdM,EAeN,CAAC,IAAD,EAAO,CAAP,EAAU,EAAV,EAAc,IAAd,CAfM,CAARA;MAiBA;;IACF,KAAK,CAAL;MACEA,QAAQ,CACN,CAAC,CAAC,EAAF,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CADM,EAEN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,KAAX,CAFM,EAGN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAHM,EAIN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,KAAX,CAJM,EAKN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CALM,EAMN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,GAAX,CANM,EAON,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAPM,EAQN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CARM,EASN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CATM,EAUN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAVM,EAWN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAXM,EAYN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,GAAX,CAZM,EAaN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,GAAX,CAbM,EAcN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAdM,EAeN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CAfM,EAgBN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CAhBM,EAiBN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CAjBM,EAkBN,CAAC,GAAD,EAAM,CAAN,EAAS,EAAT,EAAa,IAAb,CAlBM,EAmBN,CAAC,CAAC,EAAF,EAAM,CAAN,EAAS,EAAT,EAAa,KAAb,EAAoB,OAApB,CAnBM,EAoBN,CAAC,IAAD,EAAO,CAAP,EAAU,EAAV,EAAc,KAAd,CApBM,EAqBN,CAAC,CAAD,EAAI,GAAJ,CArBM,CAARA;MAuBA;;IACF,KAAK,CAAL;MACEA,QAAQ,CACN,CAAC,CAAC,EAAF,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CADM,EAEN,CAAC,CAAC,EAAF,EAAM,CAAN,EAAS,CAAT,EAAY,KAAZ,CAFM,EAGN,CAAC,CAAC,EAAF,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CAHM,EAIN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,KAAX,CAJM,EAKN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CALM,EAMN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,GAAX,CANM,EAON,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,GAAX,CAPM,EAQN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CARM,EASN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CATM,EAUN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CAVM,EAWN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAXM,EAYN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAZM,EAaN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,GAAX,CAbM,EAcN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,GAAX,CAdM,EAeN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CAfM,EAgBN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CAhBM,EAiBN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CAjBM,EAkBN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CAlBM,EAmBN,CAAC,IAAD,EAAO,CAAP,EAAU,EAAV,EAAc,IAAd,CAnBM,EAoBN,CAAC,CAAC,EAAF,EAAM,CAAN,EAAS,EAAT,EAAa,KAAb,EAAoB,OAApB,CApBM,EAqBN,CAAC,IAAD,EAAO,CAAP,EAAU,EAAV,EAAc,KAAd,CArBM,EAsBN,CAAC,CAAD,EAAI,GAAJ,CAtBM,CAARA;MAwBA;;IACF,KAAK,EAAL;MACEA,QAAQ,CACN,CAAC,CAAC,EAAF,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CADM,EAEN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAFM,EAGN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAHM,EAIN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAJM,EAKN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,GAAX,CALM,EAMN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CANM,EAON,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CAPM,EAQN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CARM,EASN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CATM,EAUN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAVM,EAWN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAXM,EAYN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CAZM,EAaN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CAbM,EAcN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CAdM,EAeN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CAfM,EAgBN,CAAC,GAAD,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CAhBM,EAiBN,CAAC,IAAD,EAAO,CAAP,EAAU,EAAV,EAAc,IAAd,CAjBM,EAkBN,CAAC,IAAD,EAAO,CAAP,EAAU,EAAV,EAAc,IAAd,CAlBM,EAmBN,CAAC,CAAC,EAAF,EAAM,CAAN,EAAS,EAAT,EAAa,IAAb,EAAmB,OAAnB,CAnBM,EAoBN,CAAC,IAAD,EAAO,CAAP,EAAU,EAAV,EAAc,IAAd,CApBM,EAqBN,CAAC,CAAD,EAAI,GAAJ,CArBM,CAARA;MAuBA;;IACF,KAAK,EAAL;MACEA,QAAQ,CACN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CADM,EAEN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAFM,EAGN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAHM,EAIN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAJM,EAKN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CALM,EAMN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CANM,EAON,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAPM,EAQN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CARM,EASN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CATM,EAUN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAVM,EAWN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAXM,EAYN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAZM,EAaN,CAAC,GAAD,EAAM,CAAN,EAAS,EAAT,EAAa,IAAb,CAbM,CAARA;MAeA;;IACF,KAAK,EAAL;MACEA,QAAQ,CACN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CADM,EAEN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAFM,EAGN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAHM,EAIN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CAJM,EAKN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CALM,EAMN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CANM,EAON,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAPM,EAQN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CARM,EASN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CATM,EAUN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAVM,EAWN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAXM,EAYN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAZM,EAaN,CAAC,EAAD,EAAK,CAAL,EAAQ,EAAR,EAAY,IAAZ,CAbM,CAARA;MAeA;;IACF,KAAK,EAAL;MACEA,QAAQ,CACN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CADM,EAEN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAFM,EAGN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAHM,EAIN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CAJM,EAKN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CALM,EAMN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CANM,EAON,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAPM,EAQN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CARM,EASN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CATM,EAUN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAVM,EAWN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAXM,EAYN,CAAC,EAAD,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAZM,EAaN,CAAC,GAAD,EAAM,CAAN,EAAS,EAAT,EAAa,IAAb,CAbM,CAARA;MAeA;;IACF,KAAK,EAAL;MACEA,QAAQ,CACN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,GAAX,CADM,EAEN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,GAAX,CAFM,EAGN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAHM,EAIN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAJM,EAKN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CALM,CAARA;MAOA;;IACF,KAAK,EAAL;MACEA,QAAQ,CACN,CAAC,CAAC,EAAF,EAAM,CAAN,EAAS,CAAT,EAAY,IAAZ,CADM,EAEN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAFM,EAGN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,IAAX,CAHM,EAIN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,GAAX,CAJM,EAKN,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,GAAX,CALM,EAMN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CANM,EAON,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CAPM,EAQN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,GAAV,CARM,EASN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CATM,EAUN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CAVM,EAWN,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,IAAV,CAXM,EAYN,CAAC,CAAC,EAAF,EAAM,CAAN,EAAS,EAAT,EAAa,IAAb,EAAmB,OAAnB,CAZM,EAaN,CAAC,EAAD,EAAK,CAAL,EAAQ,EAAR,EAAY,IAAZ,CAbM,CAARA;MAeA;;IACF;MACE,MAAM,IAAI0lC,UAAJ,CAAgB,oBAAmB7uD,MAAO,iBAA1C,CAAN;EAtPJ;;EAyPA,KAAK,IAAIj0B,IAAI,CAAR,EAAWiJ,KAAKm0C,MAAMh+C,MAA3B,EAAmCY,IAAIiJ,EAAvC,EAA2CjJ,GAA3C,EAAgD;IAC9Co9C,MAAMp9C,CAAN,IAAW,IAAIizF,WAAJ,CAAgB71C,MAAMp9C,CAAN,CAAhB,CAAXo9C;EAjQ8B;;EAmQhCijC,QAAQ,IAAI2T,YAAJ,CAAiB52C,KAAjB,EAAwB,IAAxB,CAARijC;EACA0U,oBAAoB9gE,MAApB,IAA8BosD,KAA9B0U;EACA,OAAO1U,KAAP;AAtrEF;;AAyrEA,MAAM2E,MAAN,CAAa;EACXjoF,YAAYmB,IAAZ,EAAkBuM,KAAlB,EAAyBujB,GAAzB,EAA8B;IAC5B,KAAK9vB,IAAL,GAAYA,IAAZ;IACA,KAAKuM,KAAL,GAAaA,KAAb;IACA,KAAKujB,GAAL,GAAWA,GAAX;IACA,KAAK6B,QAAL,GAAgBplB,KAAhB;IACA,KAAK0zC,KAAL,GAAa,CAAC,CAAd;IACA,KAAK62C,WAAL,GAAmB,CAAnB;EAPS;;EAUXtR,UAAU;IACR,IAAI,KAAKvlC,KAAL,GAAa,CAAjB,EAAoB;MAClB,IAAI,KAAKtuB,QAAL,IAAiB,KAAK7B,GAA1B,EAA+B;QAC7B,MAAM,IAAI80D,UAAJ,CAAe,+BAAf,CAAN;MAFgB;;MAIlB,KAAKkS,WAAL,GAAmB,KAAK92F,IAAL,CAAU,KAAK2xB,QAAL,EAAV,CAAnB;MACA,KAAKsuB,KAAL,GAAa,CAAb;IANM;;IAQR,MAAMslC,MAAO,KAAKuR,WAAL,IAAoB,KAAK72C,KAAzB,GAAkC,CAA/C;IACA,KAAKA,KAAL;IACA,OAAOslC,GAAP;EApBS;;EAuBXD,SAASyR,OAAT,EAAkB;IAChB,IAAIpwC,SAAS,CAAb;IAAA,IACE7kD,CADF;;IAEA,KAAKA,IAAIi1F,UAAU,CAAnB,EAAsBj1F,KAAK,CAA3B,EAA8BA,GAA9B,EAAmC;MACjC6kD,UAAU,KAAK6+B,OAAL,MAAkB1jF,CAA5B6kD;IAJc;;IAMhB,OAAOA,MAAP;EA7BS;;EAgCX25B,YAAY;IACV,KAAKrgC,KAAL,GAAa,CAAC,CAAd;EAjCS;;EAoCXue,OAAO;IACL,IAAI,KAAK7sC,QAAL,IAAiB,KAAK7B,GAA1B,EAA+B;MAC7B,OAAO,CAAC,CAAR;IAFG;;IAIL,OAAO,KAAK9vB,IAAL,CAAU,KAAK2xB,QAAL,EAAV,CAAP;EAxCS;;AAAA;;AA4Cb,SAASqlE,qBAAT,CAA+BnqD,KAA/B,EAAsCijD,UAAtC,EAAkDuE,YAAlD,EAAgE;EAG9D,IAAI4C,eAAe,CAAnB;;EACA,KAAK,IAAIn1F,IAAI,CAAR,EAAWiJ,KAAK+kF,WAAW5uF,MAAhC,EAAwCY,IAAIiJ,EAA5C,EAAgDjJ,GAAhD,EAAqD;IACnD,MAAMqgF,QAAQkS,aAAavE,WAAWhuF,CAAX,CAAb,CAAd;;IACA,IAAIqgF,KAAJ,EAAW;MACT,IAAIt1C,UAAUoqD,YAAd,EAA4B;QAC1B,OAAO9U,KAAP;MAFO;;MAIT8U;IANiD;EAJS;;EAa9D,MAAM,IAAIrS,UAAJ,CAAe,iCAAf,CAAN;AAlvEF;;AAqvEA,SAAS4P,0BAAT,CACEhD,UADF,EAEE1B,UAFF,EAGEuE,YAHF,EAIE6C,eAJF,EAKEtB,MALF,EAME;EAIA,MAAM3S,QAAQ,EAAd;;EACA,KAAK,IAAInhF,IAAI,CAAb,EAAgBA,KAAK,EAArB,EAAyBA,GAAzB,EAA8B;IAC5B,MAAM4jF,aAAakQ,OAAOtQ,QAAPsQ,CAAgB,CAAhBA,CAAnB;IACA3S,MAAMhiF,IAANgiF,CAAW,IAAI8R,WAAJ,CAAgB,CAACjzF,CAAD,EAAI4jF,UAAJ,EAAgB,CAAhB,EAAmB,CAAnB,CAAhB,CAAXzC;EAPF;;EAUA,MAAMkU,gBAAgB,IAAIrB,YAAJ,CAAiB7S,KAAjB,EAAwB,KAAxB,CAAtB;EAIAA,MAAM/hF,MAAN+hF,GAAe,CAAfA;;EACA,KAAK,IAAInhF,IAAI,CAAb,EAAgBA,IAAIo1F,eAApB,GAAuC;IACrC,MAAMxR,aAAayR,cAAcvuE,MAAduuE,CAAqBvB,MAArBuB,CAAnB;;IACA,IAAIzR,cAAc,EAAlB,EAAsB;MACpB,IAAI0R,cAAJ,EAAoBC,eAApB,EAAqCjvE,CAArC;;MACA,QAAQs9D,UAAR;QACE,KAAK,EAAL;UACE,IAAI5jF,MAAM,CAAV,EAAa;YACX,MAAM,IAAI8iF,UAAJ,CAAe,sCAAf,CAAN;UAFJ;;UAIEyS,kBAAkBzB,OAAOtQ,QAAPsQ,CAAgB,CAAhBA,IAAqB,CAAvCyB;UACAD,iBAAiBnU,MAAMnhF,IAAI,CAAV,EAAaqzF,YAA9BiC;UACA;;QACF,KAAK,EAAL;UACEC,kBAAkBzB,OAAOtQ,QAAPsQ,CAAgB,CAAhBA,IAAqB,CAAvCyB;UACAD,iBAAiB,CAAjBA;UACA;;QACF,KAAK,EAAL;UACEC,kBAAkBzB,OAAOtQ,QAAPsQ,CAAgB,CAAhBA,IAAqB,EAAvCyB;UACAD,iBAAiB,CAAjBA;UACA;;QACF;UACE,MAAM,IAAIxS,UAAJ,CAAe,wCAAf,CAAN;MAjBJ;;MAmBA,KAAKx8D,IAAI,CAAT,EAAYA,IAAIivE,eAAhB,EAAiCjvE,GAAjC,EAAsC;QACpC66D,MAAMhiF,IAANgiF,CAAW,IAAI8R,WAAJ,CAAgB,CAACjzF,CAAD,EAAIs1F,cAAJ,EAAoB,CAApB,EAAuB,CAAvB,CAAhB,CAAXnU;QACAnhF;MAvBkB;IAAtB,OAyBO;MACLmhF,MAAMhiF,IAANgiF,CAAW,IAAI8R,WAAJ,CAAgB,CAACjzF,CAAD,EAAI4jF,UAAJ,EAAgB,CAAhB,EAAmB,CAAnB,CAAhB,CAAXzC;MACAnhF;IA7BmC;EAfvC;;EA+CA8zF,OAAOtV,SAAPsV;EACA,MAAMjJ,gBAAgB,IAAImJ,YAAJ,CAAiB7S,KAAjB,EAAwB,KAAxB,CAAtB;EAIA,IAAIqU,cAAc,CAAlB;EAAA,IACE9K,WADF;EAAA,IAEEc,WAFF;EAAA,IAGElB,WAHF;;EAKA,QAAQoF,WAAWG,SAAnB;IACE,KAAK,CAAL;IACA,KAAK,CAAL;MACEnF,cAAczC,iBAAiByH,WAAWG,SAAXH,GAAuB,CAAxC,CAAdhF;MACA;;IACF,KAAK,CAAL;MACEA,cAAcwK,sBACZM,WADY,EAEZxH,UAFY,EAGZuE,YAHY,CAAd7H;MAKA8K;MACA;;IACF;MACE,MAAM,IAAI1S,UAAJ,CAAe,6BAAf,CAAN;EAdJ;;EAiBA,QAAQ4M,WAAWI,SAAnB;IACE,KAAK,CAAL;IACA,KAAK,CAAL;IACA,KAAK,CAAL;MACEtE,cAAcvD,iBAAiByH,WAAWI,SAAXJ,GAAuB,CAAxC,CAAdlE;MACA;;IACF,KAAK,CAAL;MACEA,cAAc0J,sBACZM,WADY,EAEZxH,UAFY,EAGZuE,YAHY,CAAd/G;MAKAgK;MACA;;IACF;MACE,MAAM,IAAI1S,UAAJ,CAAe,6BAAf,CAAN;EAfJ;;EAkBA,QAAQ4M,WAAWK,SAAnB;IACE,KAAK,CAAL;IACA,KAAK,CAAL;IACA,KAAK,CAAL;MACEzF,cAAcrC,iBAAiByH,WAAWK,SAAXL,GAAuB,EAAxC,CAAdpF;MACA;;IACF,KAAK,CAAL;MACEA,cAAc4K,sBACZM,WADY,EAEZxH,UAFY,EAGZuE,YAHY,CAAdjI;MAKAkL;MACA;;IACF;MACE,MAAM,IAAI1S,UAAJ,CAAe,6BAAf,CAAN;EAfJ;;EAkBA,IAAI4M,WAAWtI,UAAf,EAA2B;IAEzB,MAAM,IAAItE,UAAJ,CAAe,0CAAf,CAAN;EAhHF;;EAmHA,OAAO;IACL+H,aADK;IAELH,WAFK;IAGLc,WAHK;IAILlB;EAJK,CAAP;AA92EF;;AAs3EA,SAASgI,gCAAT,CACErD,UADF,EAEEjB,UAFF,EAGEuE,YAHF,EAIE;EAGA,IAAIiD,cAAc,CAAlB;EAAA,IACErN,gBADF;EAAA,IAEEG,eAFF;;EAGA,QAAQ2G,WAAWE,iBAAnB;IACE,KAAK,CAAL;IACA,KAAK,CAAL;MACEhH,mBAAmBF,iBAAiBgH,WAAWE,iBAAXF,GAA+B,CAAhD,CAAnB9G;MACA;;IACF,KAAK,CAAL;MACEA,mBAAmB+M,sBACjBM,WADiB,EAEjBxH,UAFiB,EAGjBuE,YAHiB,CAAnBpK;MAKAqN;MACA;;IACF;MACE,MAAM,IAAI1S,UAAJ,CAAe,6BAAf,CAAN;EAdJ;;EAiBA,QAAQmM,WAAWG,iBAAnB;IACE,KAAK,CAAL;IACA,KAAK,CAAL;MACE9G,kBAAkBL,iBAAiBgH,WAAWG,iBAAXH,GAA+B,CAAhD,CAAlB3G;MACA;;IACF,KAAK,CAAL;MACEA,kBAAkB4M,sBAChBM,WADgB,EAEhBxH,UAFgB,EAGhBuE,YAHgB,CAAlBjK;MAKAkN;MACA;;IACF;MACE,MAAM,IAAI1S,UAAJ,CAAe,6BAAf,CAAN;EAdJ;;EAiBA,IAAIgG,eAAJ,EAAqB2M,uBAArB;;EACA,IAAIxG,WAAWI,kBAAf,EAAmC;IACjCvG,kBAAkBoM,sBAChBM,WADgB,EAEhBxH,UAFgB,EAGhBuE,YAHgB,CAAlBzJ;IAKA0M;EANF,OAOO;IACL1M,kBAAkBb,iBAAiB,CAAjB,CAAlBa;EAjDF;;EAoDA,IAAImG,WAAWK,4BAAf,EAA6C;IAC3CmG,0BAA0BP,sBACxBM,WADwB,EAExBxH,UAFwB,EAGxBuE,YAHwB,CAA1BkD;EADF,OAMO;IACLA,0BAA0BxN,iBAAiB,CAAjB,CAA1BwN;EA3DF;;EA8DA,OAAO;IACLtN,gBADK;IAELG,eAFK;IAGLQ,eAHK;IAIL2M;EAJK,CAAP;AAx7EF;;AAg8EA,SAASzM,sBAAT,CAAgC8K,MAAhC,EAAwC58C,KAAxC,EAA+C+F,MAA/C,EAAuD;EACrD,MAAM2W,SAAS,EAAf;;EACA,KAAK,IAAIxhB,IAAI,CAAb,EAAgBA,IAAI6K,MAApB,EAA4B7K,GAA5B,EAAiC;IAC/B,MAAM4sC,MAAM,IAAI5gF,UAAJ,CAAe84C,KAAf,CAAZ;IACA0c,OAAOz0D,IAAPy0D,CAAYorB,GAAZprB;;IACA,KAAK,IAAItrD,IAAI,CAAb,EAAgBA,IAAI4uC,KAApB,EAA2B5uC,GAA3B,EAAgC;MAC9B02E,IAAI12E,CAAJ,IAASwrF,OAAOpQ,OAAPoQ,EAAT9U;IAJ6B;;IAM/B8U,OAAOtV,SAAPsV;EARmD;;EAUrD,OAAOlgC,MAAP;AA18EF;;AA68EA,SAASqxB,eAAT,CAAyBxJ,KAAzB,EAAgCvkC,KAAhC,EAAuC+F,MAAvC,EAA+Cy4C,UAA/C,EAA2D;EAGzD,MAAMriD,SAAS;IACbh/B,GAAG,CAAC,CADS;IAEb4oE,SAAS/lC,KAFI;IAGbgmC,MAAMjgC,MAHO;IAIbmgC,UAAU,IAJG;IAKbD,YAAYuY;EALC,CAAf;EAOA,MAAM/uE,UAAU,IAAIm2D,sBAAJ,CAAoBrB,KAApB,EAA2BpoC,MAA3B,CAAhB;EACA,MAAMugB,SAAS,EAAf;EACA,IAAIohC,WAAJ;EAAA,IACEnZ,MAAM,KADR;;EAGA,KAAK,IAAIzpC,IAAI,CAAb,EAAgBA,IAAI6K,MAApB,EAA4B7K,GAA5B,EAAiC;IAC/B,MAAM4sC,MAAM,IAAI5gF,UAAJ,CAAe84C,KAAf,CAAZ;IACA0c,OAAOz0D,IAAPy0D,CAAYorB,GAAZprB;IACA,IAAIzV,QAAQ,CAAC,CAAb;;IACA,KAAK,IAAI71C,IAAI,CAAb,EAAgBA,IAAI4uC,KAApB,EAA2B5uC,GAA3B,EAAgC;MAC9B,IAAI61C,QAAQ,CAAZ,EAAe;QACb62C,cAAcruE,QAAQ02D,YAAR12D,EAAdquE;;QACA,IAAIA,gBAAgB,CAAC,CAArB,EAAwB;UAEtBA,cAAc,CAAdA;UACAnZ,MAAM,IAANA;QALW;;QAOb19B,QAAQ,CAARA;MAR4B;;MAU9B6gC,IAAI12E,CAAJ,IAAU0sF,eAAe72C,KAAf62C,GAAwB,CAAlChW;MACA7gC;IAf6B;EAfwB;;EAkCzD,IAAIu3C,cAAc,CAAC7Z,GAAnB,EAAwB;IAEtB,MAAM8Z,kBAAkB,CAAxB;;IACA,KAAK,IAAI31F,IAAI,CAAb,EAAgBA,IAAI21F,eAApB,EAAqC31F,GAArC,EAA0C;MACxC,IAAI2mB,QAAQ02D,YAAR12D,OAA2B,CAAC,CAAhC,EAAmC;QACjC;MAFsC;IAHpB;EAlCiC;;EA4CzD,OAAOitC,MAAP;AAz/EF;;AA4/EA,MAAM6uB,UAAN,CAAiB;EACfG,YAAYvzD,MAAZ,EAAoB;IAClB,OAAO8hE,iBAAiB9hE,MAAjB,CAAP;EAFa;;EAKfqO,MAAMx/B,IAAN,EAAY;IACV,MAAM;MAAEu1D,OAAF;MAAWvc,KAAX;MAAkB+F;IAAlB,IAA6Bo0C,WAAWnzF,IAAX,CAAnC;IACA,KAAKg5C,KAAL,GAAaA,KAAb;IACA,KAAK+F,MAAL,GAAcA,MAAd;IACA,OAAOwW,OAAP;EATa;;AAAA;;;;;;;;;;;;;;AC5+EjB,MAAMmiC,UAAU,CACd;EAAEC,IAAI,MAAN;EAAcC,MAAM,CAApB;EAAuBC,MAAM,CAA7B;EAAgCC,YAAY;AAA5C,CADc,EAEd;EAAEH,IAAI,MAAN;EAAcC,MAAM,CAApB;EAAuBC,MAAM,CAA7B;EAAgCC,YAAY;AAA5C,CAFc,EAGd;EAAEH,IAAI,MAAN;EAAcC,MAAM,CAApB;EAAuBC,MAAM,CAA7B;EAAgCC,YAAY;AAA5C,CAHc,EAId;EAAEH,IAAI,MAAN;EAAcC,MAAM,CAApB;EAAuBC,MAAM,EAA7B;EAAiCC,YAAY;AAA7C,CAJc,EAKd;EAAEH,IAAI,MAAN;EAAcC,MAAM,CAApB;EAAuBC,MAAM,EAA7B;EAAiCC,YAAY;AAA7C,CALc,EAMd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CANc,EAOd;EAAEH,IAAI,MAAN;EAAcC,MAAM,CAApB;EAAuBC,MAAM,CAA7B;EAAgCC,YAAY;AAA5C,CAPc,EAQd;EAAEH,IAAI,MAAN;EAAcC,MAAM,CAApB;EAAuBC,MAAM,EAA7B;EAAiCC,YAAY;AAA7C,CARc,EASd;EAAEH,IAAI,MAAN;EAAcC,MAAM,CAApB;EAAuBC,MAAM,EAA7B;EAAiCC,YAAY;AAA7C,CATc,EAUd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAVc,EAWd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAXc,EAYd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAZc,EAad;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAbc,EAcd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAdc,EAed;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAfc,EAgBd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAhBc,EAiBd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAjBc,EAkBd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAlBc,EAmBd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAnBc,EAoBd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CApBc,EAqBd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CArBc,EAsBd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAtBc,EAuBd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAvBc,EAwBd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAxBc,EAyBd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAzBc,EA0Bd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CA1Bc,EA2Bd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CA3Bc,EA4Bd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CA5Bc,EA6Bd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CA7Bc,EA8Bd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CA9Bc,EA+Bd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CA/Bc,EAgCd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAhCc,EAiCd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAjCc,EAkCd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAlCc,EAmCd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAnCc,EAoCd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CApCc,EAqCd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CArCc,EAsCd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAtCc,EAuCd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAvCc,EAwCd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAxCc,EAyCd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CAzCc,EA0Cd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CA1Cc,EA2Cd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CA3Cc,EA4Cd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CA5Cc,EA6Cd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CA7Cc,EA8Cd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CA9Cc,EA+Cd;EAAEH,IAAI,MAAN;EAAcC,MAAM,EAApB;EAAwBC,MAAM,EAA9B;EAAkCC,YAAY;AAA9C,CA/Cc,CAAhB;;AA2DA,MAAM7S,iBAAN,CAAwB;EAEtBpmF,YAAYmB,IAAZ,EAAkBuM,KAAlB,EAAyBujB,GAAzB,EAA8B;IAC5B,KAAK9vB,IAAL,GAAYA,IAAZ;IACA,KAAK+3F,EAAL,GAAUxrF,KAAV;IACA,KAAKyrF,OAAL,GAAeloE,GAAf;IAEA,KAAKmoE,KAAL,GAAaj4F,KAAKuM,KAAL,CAAb;IACA,KAAK2rF,IAAL,GAAY,CAAZ;IAEA,KAAKC,MAAL;IAEA,KAAKF,KAAL,GAAe,KAAKA,KAAL,IAAc,CAAd,GAAmB,MAAnB,GAA+B,KAAKC,IAAL,IAAa,CAAb,GAAkB,IAAhE;IACA,KAAKA,IAAL,GAAa,KAAKA,IAAL,IAAa,CAAb,GAAkB,MAA/B;IACA,KAAKE,EAAL,IAAW,CAAX;IACA,KAAK9tF,CAAL,GAAS,MAAT;EAfoB;;EAmBtB6tF,SAAS;IACP,MAAMn4F,OAAO,KAAKA,IAAlB;IACA,IAAI+3F,KAAK,KAAKA,EAAd;;IAEA,IAAI/3F,KAAK+3F,EAAL,MAAa,IAAjB,EAAuB;MACrB,IAAI/3F,KAAK+3F,KAAK,CAAV,IAAe,IAAnB,EAAyB;QACvB,KAAKG,IAAL,IAAa,MAAb;QACA,KAAKE,EAAL,GAAU,CAAV;MAFF,OAGO;QACLL;QACA,KAAKG,IAAL,IAAal4F,KAAK+3F,EAAL,KAAY,CAAzB;QACA,KAAKK,EAAL,GAAU,CAAV;QACA,KAAKL,EAAL,GAAUA,EAAV;MARmB;IAAvB,OAUO;MACLA;MACA,KAAKG,IAAL,IAAaH,KAAK,KAAKC,OAAVD,GAAoB/3F,KAAK+3F,EAAL,KAAY,CAAhCA,GAAoC,MAAjD;MACA,KAAKK,EAAL,GAAU,CAAV;MACA,KAAKL,EAAL,GAAUA,EAAV;IAlBK;;IAoBP,IAAI,KAAKG,IAAL,GAAY,MAAhB,EAAwB;MACtB,KAAKD,KAAL,IAAc,KAAKC,IAAL,IAAa,EAA3B;MACA,KAAKA,IAAL,IAAa,MAAb;IAtBK;EAnBa;;EA8CtB1S,QAAQH,QAAR,EAAkBjiE,GAAlB,EAAuB;IAGrB,IAAIi1E,WAAWhT,SAASjiE,GAAT,KAAiB,CAAhC;IAAA,IACEk1E,SAASjT,SAASjiE,GAAT,IAAgB,CAD3B;IAEA,MAAMm1E,aAAab,QAAQW,QAAR,CAAnB;IACA,MAAMG,QAAQD,WAAWZ,EAAzB;IACA,IAAInyE,CAAJ;IACA,IAAIlb,IAAI,KAAKA,CAAL,GAASkuF,KAAjB;;IAEA,IAAI,KAAKP,KAAL,GAAaO,KAAjB,EAAwB;MAEtB,IAAIluF,IAAIkuF,KAAR,EAAe;QACbluF,IAAIkuF,KAAJluF;QACAkb,IAAI8yE,MAAJ9yE;QACA6yE,WAAWE,WAAWX,IAAtBS;MAHF,OAIO;QACL/tF,IAAIkuF,KAAJluF;QACAkb,IAAI,IAAI8yE,MAAR9yE;;QACA,IAAI+yE,WAAWT,UAAXS,KAA0B,CAA9B,EAAiC;UAC/BD,SAAS9yE,CAAT8yE;QAJG;;QAMLD,WAAWE,WAAWV,IAAtBQ;MAZoB;IAAxB,OAcO;MACL,KAAKJ,KAAL,IAAcO,KAAd;;MACA,IAAK,KAAI,MAAJ,MAAgB,CAArB,EAAwB;QACtB,KAAKluF,CAAL,GAASA,CAAT;QACA,OAAOguF,MAAP;MAJG;;MAOL,IAAIhuF,IAAIkuF,KAAR,EAAe;QACbhzE,IAAI,IAAI8yE,MAAR9yE;;QACA,IAAI+yE,WAAWT,UAAXS,KAA0B,CAA9B,EAAiC;UAC/BD,SAAS9yE,CAAT8yE;QAHW;;QAKbD,WAAWE,WAAWV,IAAtBQ;MALF,OAMO;QACL7yE,IAAI8yE,MAAJ9yE;QACA6yE,WAAWE,WAAWX,IAAtBS;MAfG;IAxBc;;IA2CrB,GAAG;MACD,IAAI,KAAKD,EAAL,KAAY,CAAhB,EAAmB;QACjB,KAAKD,MAAL;MAFD;;MAKD7tF,MAAM,CAANA;MACA,KAAK2tF,KAAL,GAAe,KAAKA,KAAL,IAAc,CAAd,GAAmB,MAAnB,GAA+B,KAAKC,IAAL,IAAa,EAAb,GAAmB,CAAjE;MACA,KAAKA,IAAL,GAAa,KAAKA,IAAL,IAAa,CAAb,GAAkB,MAA/B;MACA,KAAKE,EAAL;IARF,SASU,KAAI,MAAJ,MAAgB,CAT1B;;IAUA,KAAK9tF,CAAL,GAASA,CAAT;IAEA+6E,SAASjiE,GAAT,IAAiBi1E,YAAY,CAAZA,GAAiBC,MAAlCjT;IACA,OAAO7/D,CAAP;EAtGoB;;AAAA;;;;;;;;;;;;;;;AC5DxB;;AACA;;AACA;;AACA;;AAMA,MAAMi1D,UAAN,SAAyBjkB,2BAAzB,CAAsC;EACpC33D,YAAYuI,MAAZ,EAAoB4yE,WAApB,EAAiC7kC,MAAjC,EAAyC;IAGvC,IAAIze,EAAJ;;IACA,OAAQ,MAAKtvB,OAAO4qB,OAAP5qB,EAAL,MAA2B,CAAC,CAApC,EAAuC;MAErC,IAAIsvB,OAAO,IAAX,EAAiB;QACftvB,OAAOkzB,IAAPlzB,CAAY,CAAC,CAAbA;QACA;MAJmC;IAJA;;IAWvC,MAAM4yE,WAAN;IAEA,KAAK5yE,MAAL,GAAcA,MAAd;IACA,KAAKmmB,IAAL,GAAYnmB,OAAOmmB,IAAnB;IACA,KAAKysD,WAAL,GAAmBA,WAAnB;IACA,KAAK7kC,MAAL,GAAcA,MAAd;EAjBkC;;EAoBpC,IAAI9tC,KAAJ,GAAY;IAEV,OAAOka,kBAAO,IAAPA,EAAa,OAAbA,EAAsB,KAAKna,MAAL,CAAY6qB,QAAZ,CAAqB,KAAK+nD,WAA1B,CAAtBz4D,CAAP;EAtBkC;;EAyBpCq8D,aAAaK,SAAb,EAAwB,CAzBY;;EA8BpCT,YAAY;IACV,IAAI,KAAKG,GAAT,EAAc;MACZ;IAFQ;;IAIV,MAAM8a,cAAc;MAClBC,iBAAiBr2E,SADC;MAElBs2E,gBAAgBt2E;IAFE,CAApB;IAMA,MAAMu2E,YAAY,KAAKrrE,IAAL,CAAUd,QAAV,CAAmB,GAAnB,EAAwB,QAAxB,CAAlB;;IACA,IAAI,KAAKosE,QAAL,IAAiBhuF,MAAMC,OAAND,CAAc+tF,SAAd/tF,CAArB,EAA+C;MAC7C,MAAMiuF,mBAAmB,KAAKvrE,IAAL,CAAUplB,GAAV,CAAc,KAAd,EAAqB,kBAArB,KAA4C,CAArE;MACA,MAAM4wF,kBAAkBH,UAAU13F,MAAlC;MACA,MAAMoY,YAAY,IAAIgpE,UAAJ,CAAeyW,eAAf,CAAlB;MACA,IAAIC,kBAAkB,KAAtB;MACA,MAAMC,WAAY,MAAKH,gBAAL,IAAyB,CAA3C;;MACA,KAAK,IAAIh3F,IAAI,CAAb,EAAgBA,IAAIi3F,eAApB,EAAqCj3F,KAAK,CAA1C,EAA6C;QAC3CwX,UAAUxX,CAAV,IAAiB,WAAUA,IAAI,CAAd,IAAmB82F,UAAU92F,CAAV,CAAnB,IAAmC,GAAnC,GAA0C,CAA3DwX;QACAA,UAAUxX,IAAI,CAAd,IAAoB82F,UAAU92F,CAAV,IAAem3F,QAAfL,GAA2B,CAA/Ct/E;;QACA,IAAIA,UAAUxX,CAAV,MAAiB,GAAjBwX,IAAwBA,UAAUxX,IAAI,CAAd,MAAqB,CAAjD,EAAoD;UAClDk3F,kBAAkB,IAAlBA;QAJyC;MANA;;MAa7C,IAAIA,eAAJ,EAAqB;QACnBP,YAAYC,eAAZD,GAA8Bn/E,SAA9Bm/E;MAd2C;IAXrC;;IA6BV,IAAI,KAAKtjD,MAAL,YAAuBzqC,gBAA3B,EAAiC;MAC/B,MAAMiuF,iBAAiB,KAAKxjD,MAAL,CAAYhtC,GAAZ,CAAgB,gBAAhB,CAAvB;;MACA,IAAI8X,OAAOC,SAAPD,CAAiB04E,cAAjB14E,CAAJ,EAAsC;QACpCw4E,YAAYE,cAAZF,GAA6BE,cAA7BF;MAH6B;IA7BvB;;IAmCV,MAAMS,YAAY,IAAIC,cAAJ,CAAcV,WAAd,CAAlB;IAEAS,UAAU15D,KAAV05D,CAAgB,KAAK7xF,KAArB6xF;IACA,MAAMl5F,OAAOk5F,UAAUh6B,OAAVg6B,CAAkB;MAC7BlgD,OAAO,KAAKogD,SADiB;MAE7Br6C,QAAQ,KAAKs6C,UAFgB;MAG7BR,UAAU,KAAKA,QAHc;MAI7BS,aAAa;IAJgB,CAAlBJ,CAAb;IAMA,KAAKj1E,MAAL,GAAcjkB,IAAd;IACA,KAAK0qE,YAAL,GAAoB1qE,KAAKkB,MAAzB;IACA,KAAKy8E,GAAL,GAAW,IAAX;EA5EkC;;AAAA;;;;;;;;;;;;;;;ACTtC;;AACA;;AAEA,MAAM4b,SAAN,SAAwBz3E,mBAAxB,CAAsC;EACpCjjB,YAAYshB,GAAZ,EAAiB;IACf,MAAO,eAAcA,GAAf,EAAN,EAA4B,WAA5B;EAFkC;;AAAA;;AAMtC,MAAMq5E,cAAN,SAA6B13E,mBAA7B,CAA2C;EACzCjjB,YAAYyH,OAAZ,EAAqBmzF,SAArB,EAAgC;IAC9B,MAAMnzF,OAAN,EAAe,gBAAf;IACA,KAAKmzF,SAAL,GAAiBA,SAAjB;EAHuC;;AAAA;;AAO3C,MAAMC,cAAN,SAA6B53E,mBAA7B,CAA2C;EACzCjjB,YAAYshB,GAAZ,EAAiB;IACf,MAAMA,GAAN,EAAW,gBAAX;EAFuC;;AAAA;;AAoB3C,MAAMw5E,YAAY,IAAIz5F,UAAJ,CAAe,CAC9B,CAD8B,EAE9B,CAF8B,EAE1B,CAF0B,EAG/B,EAH+B,EAG1B,CAH0B,EAGtB,CAHsB,EAI9B,CAJ8B,EAI3B,EAJ2B,EAIvB,EAJuB,EAInB,EAJmB,EAK/B,EAL+B,EAK3B,EAL2B,EAKvB,EALuB,EAKnB,EALmB,EAKf,CALe,EAM9B,CAN8B,EAM3B,EAN2B,EAMvB,EANuB,EAMnB,EANmB,EAMf,EANe,EAMX,EANW,EAO/B,EAP+B,EAO3B,EAP2B,EAOvB,EAPuB,EAOnB,EAPmB,EAOf,EAPe,EAOX,EAPW,EAON,CAPM,EAQ9B,CAR8B,EAQ3B,EAR2B,EAQvB,EARuB,EAQnB,EARmB,EAQf,EARe,EAQX,EARW,EAQP,EARO,EAQH,EARG,EAS/B,EAT+B,EAS3B,EAT2B,EASvB,EATuB,EASnB,EATmB,EASf,EATe,EASX,EATW,EASP,EATO,EAU/B,EAV+B,EAU3B,EAV2B,EAUvB,EAVuB,EAUnB,EAVmB,EAUf,EAVe,EAUX,EAVW,EAW/B,EAX+B,EAW3B,EAX2B,EAWvB,EAXuB,EAWnB,EAXmB,EAWf,EAXe,EAY/B,EAZ+B,EAY3B,EAZ2B,EAYvB,EAZuB,EAYnB,EAZmB,EAa/B,EAb+B,EAa3B,EAb2B,EAavB,EAbuB,EAc/B,EAd+B,EAc3B,EAd2B,EAe/B,EAf+B,CAAf,CAAlB;AAkBA,MAAM05F,UAAU,IAAhB;AACA,MAAMC,UAAU,GAAhB;AACA,MAAMC,UAAU,IAAhB;AACA,MAAMC,UAAU,IAAhB;AACA,MAAMC,UAAU,IAAhB;AACA,MAAMC,UAAU,IAAhB;AACA,MAAMC,WAAW,IAAjB;AACA,MAAMC,aAAa,IAAnB;;AAEA,SAASC,iBAAT,CAA2BpW,WAA3B,EAAwCp3D,MAAxC,EAAgD;EAC9C,IAAI2/B,IAAI,CAAR;EAAA,IACEzqD,CADF;EAAA,IAEEsmB,CAFF;EAAA,IAGElnB,SAAS,EAHX;;EAIA,OAAOA,SAAS,CAATA,IAAc,CAAC8iF,YAAY9iF,SAAS,CAArB,CAAtB,EAA+C;IAC7CA;EAN4C;;EAQ9C,MAAM4E,OAAO,CAAC;IAAE0vF,UAAU,EAAZ;IAAgB3oD,OAAO;EAAvB,CAAD,CAAb;EACA,IAAI1nB,IAAIrf,KAAK,CAAL,CAAR;EAAA,IACEqmD,CADF;;EAEA,KAAKrqD,IAAI,CAAT,EAAYA,IAAIZ,MAAhB,EAAwBY,GAAxB,EAA6B;IAC3B,KAAKsmB,IAAI,CAAT,EAAYA,IAAI47D,YAAYliF,CAAZ,CAAhB,EAAgCsmB,GAAhC,EAAqC;MACnCjD,IAAIrf,KAAK02D,GAAL12D,EAAJqf;MACAA,EAAEqwE,QAAFrwE,CAAWA,EAAE0nB,KAAb1nB,IAAsByH,OAAO2/B,CAAP,CAAtBpnC;;MACA,OAAOA,EAAE0nB,KAAF1nB,GAAU,CAAjB,EAAoB;QAClBA,IAAIrf,KAAK02D,GAAL12D,EAAJqf;MAJiC;;MAMnCA,EAAE0nB,KAAF1nB;MACArf,KAAK7E,IAAL6E,CAAUqf,CAAVrf;;MACA,OAAOA,KAAK5E,MAAL4E,IAAehE,CAAtB,EAAyB;QACvBgE,KAAK7E,IAAL6E,CAAWqmD,IAAI;UAAEqpC,UAAU,EAAZ;UAAgB3oD,OAAO;QAAvB,CAAf/mC;QACAqf,EAAEqwE,QAAFrwE,CAAWA,EAAE0nB,KAAb1nB,IAAsBgnC,EAAEqpC,QAAxBrwE;QACAA,IAAIgnC,CAAJhnC;MAXiC;;MAanConC;IAdyB;;IAgB3B,IAAIzqD,IAAI,CAAJA,GAAQZ,MAAZ,EAAoB;MAElB4E,KAAK7E,IAAL6E,CAAWqmD,IAAI;QAAEqpC,UAAU,EAAZ;QAAgB3oD,OAAO;MAAvB,CAAf/mC;MACAqf,EAAEqwE,QAAFrwE,CAAWA,EAAE0nB,KAAb1nB,IAAsBgnC,EAAEqpC,QAAxBrwE;MACAA,IAAIgnC,CAAJhnC;IApByB;EAXiB;;EAkC9C,OAAOrf,KAAK,CAAL,EAAQ0vF,QAAf;AAhHF;;AAmHA,SAAS6E,oBAAT,CAA8BtjE,SAA9B,EAAyC+pD,GAAzC,EAA8CwZ,GAA9C,EAAmD;EACjD,OAAO,MAAO,WAAUC,aAAVxjE,GAA0B,CAA1B,IAA+B+pD,GAA/B,GAAqCwZ,GAA5C,CAAP;AApHF;;AAuHA,SAASE,UAAT,CACEx6F,IADF,EAEEs2B,MAFF,EAGEmkE,KAHF,EAIEC,UAJF,EAKEC,aALF,EAMEC,aANF,EAOEC,WAPF,EAQEC,cARF,EASEC,UATF,EAUEC,iBAAiB,KAVnB,EAWE;EACA,MAAMC,cAAcR,MAAMQ,WAA1B;EACA,MAAMC,cAAcT,MAAMS,WAA1B;EAEA,MAAMC,cAAc7kE,MAApB;EACA,IAAI8kE,WAAW,CAAf;EAAA,IACEC,YAAY,CADd;;EAGA,SAAS7V,OAAT,GAAmB;IACjB,IAAI6V,YAAY,CAAhB,EAAmB;MACjBA;MACA,OAAQD,YAAYC,SAAZD,GAAyB,CAAjC;IAHe;;IAKjBA,WAAWp7F,KAAKs2B,QAAL,CAAX8kE;;IACA,IAAIA,aAAa,IAAjB,EAAuB;MACrB,MAAME,WAAWt7F,KAAKs2B,QAAL,CAAjB;;MACA,IAAIglE,QAAJ,EAAc;QACZ,IAAIA,aAAyB,IAAzBA,IAAiCN,cAArC,EAAqD;UACnD1kE,UAAU,CAAVA;UAEA,MAAMmjE,YAAYljE,4BAAWv2B,IAAXu2B,EAAiBD,MAAjBC,CAAlB;UACAD,UAAU,CAAVA;;UACA,IAAImjE,YAAY,CAAZA,IAAiBA,cAAcgB,MAAMhB,SAAzC,EAAoD;YAClD,MAAM,IAAID,cAAJ,CACJ,mDADI,EAEJC,SAFI,CAAN;UANiD;QAArD,OAWO,IAAI6B,aAAyB,IAA7B,EAAmC;UACxC,IAAIN,cAAJ,EAAoB;YAElB,MAAMO,iBAAiBC,YAAYf,MAAMgB,SAANhB,KAAoB,CAApBA,GAAwB,CAAxBA,GAA4B,CAAxC,CAAvB;;YAMA,IACEc,iBAAiB,CAAjBA,IACAp2F,KAAK26C,KAAL36C,CAAWs1F,MAAMhB,SAANgB,GAAkBc,cAA7Bp2F,KAAgD,EAFlD,EAGE;cACA,MAAM,IAAIq0F,cAAJ,CACJ,wDACE,oDAFE,EAGJ+B,cAHI,CAAN;YAZgB;UADoB;;UAoBxC,MAAM,IAAI7B,cAAJ,CACJ,mDADI,CAAN;QAhCU;;QAoCZ,MAAM,IAAIH,SAAJ,CACH,qBAAqB,CAAC6B,YAAY,CAAZA,GAAiBE,QAAlB,EAA4B/0F,QAA5B,CAAqC,EAArC,CAAtB,EADI,CAAN;MAtCmB;IANN;;IAkDjB80F,YAAY,CAAZA;IACA,OAAOD,aAAa,CAApB;EA3DF;;EA8DA,SAASM,aAAT,CAAuBp8D,IAAvB,EAA6B;IAC3B,IAAIo0B,OAAOp0B,IAAX;;IACA,OAAO,IAAP,EAAa;MACXo0B,OAAOA,KAAK8xB,SAAL,CAAP9xB;;MACA,QAAQ,OAAOA,IAAf;QACE,KAAK,QAAL;UACE,OAAOA,IAAP;;QACF,KAAK,QAAL;UACE;MAJJ;;MAMA,MAAM,IAAI6lC,SAAJ,CAAc,0BAAd,CAAN;IAVyB;EA9D7B;;EA4EA,SAASoC,OAAT,CAAiBz6F,MAAjB,EAAyB;IACvB,IAAIqjB,IAAI,CAAR;;IACA,OAAOrjB,SAAS,CAAhB,EAAmB;MACjBqjB,IAAKA,KAAK,CAALA,GAAUihE,SAAfjhE;MACArjB;IAJqB;;IAMvB,OAAOqjB,CAAP;EAlFF;;EAqFA,SAASq3E,gBAAT,CAA0B16F,MAA1B,EAAkC;IAChC,IAAIA,WAAW,CAAf,EAAkB;MAChB,OAAOskF,cAAc,CAAdA,GAAkB,CAAlBA,GAAsB,CAAC,CAA9B;IAF8B;;IAIhC,MAAMjhE,IAAIo3E,QAAQz6F,MAAR,CAAV;;IACA,IAAIqjB,KAAK,KAAMrjB,SAAS,CAAxB,EAA4B;MAC1B,OAAOqjB,CAAP;IAN8B;;IAQhC,OAAOA,KAAK,CAAC,CAAD,IAAMrjB,MAAX,IAAqB,CAA5B;EA7FF;;EAgGA,SAAS26F,cAAT,CAAwB9kE,SAAxB,EAAmC+kE,WAAnC,EAAgD;IAC9C,MAAMh0E,IAAI4zE,cAAc3kE,UAAUglE,cAAxB,CAAV;IACA,MAAMC,OAAOl0E,MAAM,CAANA,GAAU,CAAVA,GAAc8zE,iBAAiB9zE,CAAjB,CAA3B;IACAiP,UAAUklE,SAAVllE,CAAoB+kE,WAApB/kE,IAAmCA,UAAUmlE,IAAVnlE,IAAkBilE,IAArDjlE;IACA,IAAIw1B,IAAI,CAAR;;IACA,OAAOA,IAAI,EAAX,EAAe;MACb,MAAM4vC,KAAKT,cAAc3kE,UAAUqlE,cAAxB,CAAX;MACA,MAAM1tB,IAAIytB,KAAK,EAAf;MAAA,MACEx3E,IAAIw3E,MAAM,CADZ;;MAEA,IAAIztB,MAAM,CAAV,EAAa;QACX,IAAI/pD,IAAI,EAAR,EAAY;UACV;QAFS;;QAIX4nC,KAAK,EAALA;QACA;MATW;;MAWbA,KAAK5nC,CAAL4nC;MACA,MAAM8vC,IAAI1C,UAAUptC,CAAV,CAAV;MACAx1B,UAAUklE,SAAVllE,CAAoB+kE,cAAcO,CAAlCtlE,IAAuC6kE,iBAAiBltB,CAAjB,CAAvC33C;MACAw1B;IAnB4C;EAhGhD;;EAuHA,SAAS+vC,aAAT,CAAuBvlE,SAAvB,EAAkC+kE,WAAlC,EAA+C;IAC7C,MAAMh0E,IAAI4zE,cAAc3kE,UAAUglE,cAAxB,CAAV;IACA,MAAMC,OAAOl0E,MAAM,CAANA,GAAU,CAAVA,GAAc8zE,iBAAiB9zE,CAAjB,KAAuBizE,UAAlD;IACAhkE,UAAUklE,SAAVllE,CAAoB+kE,WAApB/kE,IAAmCA,UAAUmlE,IAAVnlE,IAAkBilE,IAArDjlE;EA1HF;;EA6HA,SAASwlE,kBAAT,CAA4BxlE,SAA5B,EAAuC+kE,WAAvC,EAAoD;IAClD/kE,UAAUklE,SAAVllE,CAAoB+kE,WAApB/kE,KAAoCyuD,aAAauV,UAAjDhkE;EA9HF;;EAiIA,IAAIylE,SAAS,CAAb;;EACA,SAASC,aAAT,CAAuB1lE,SAAvB,EAAkC+kE,WAAlC,EAA+C;IAC7C,IAAIU,SAAS,CAAb,EAAgB;MACdA;MACA;IAH2C;;IAK7C,IAAIjwC,IAAIquC,aAAR;IACA,MAAMt1F,IAAIu1F,WAAV;;IACA,OAAOtuC,KAAKjnD,CAAZ,EAAe;MACb,MAAM62F,KAAKT,cAAc3kE,UAAUqlE,cAAxB,CAAX;MACA,MAAM1tB,IAAIytB,KAAK,EAAf;MAAA,MACEx3E,IAAIw3E,MAAM,CADZ;;MAEA,IAAIztB,MAAM,CAAV,EAAa;QACX,IAAI/pD,IAAI,EAAR,EAAY;UACV63E,SAASb,QAAQh3E,CAAR,KAAc,KAAKA,CAAnBg3E,IAAwB,CAAjCa;UACA;QAHS;;QAKXjwC,KAAK,EAALA;QACA;MAVW;;MAYbA,KAAK5nC,CAAL4nC;MACA,MAAM8vC,IAAI1C,UAAUptC,CAAV,CAAV;MACAx1B,UAAUklE,SAAVllE,CAAoB+kE,cAAcO,CAAlCtlE,IACE6kE,iBAAiBltB,CAAjB,KAAuB,KAAKqsB,UAA5Ba,CADF7kE;MAEAw1B;IAvB2C;EAlI/C;;EA6JA,IAAImwC,oBAAoB,CAAxB;EAAA,IACEC,qBADF;;EAEA,SAASC,kBAAT,CAA4B7lE,SAA5B,EAAuC+kE,WAAvC,EAAoD;IAClD,IAAIvvC,IAAIquC,aAAR;IACA,MAAMt1F,IAAIu1F,WAAV;IACA,IAAIl2E,IAAI,CAAR;IACA,IAAI+pD,CAAJ;IACA,IAAIytB,EAAJ;;IACA,OAAO5vC,KAAKjnD,CAAZ,EAAe;MACb,MAAMu3F,UAAUf,cAAcnC,UAAUptC,CAAV,CAA9B;MACA,MAAMwX,OAAOhtC,UAAUklE,SAAVllE,CAAoB8lE,OAApB9lE,IAA+B,CAA/BA,GAAmC,CAAC,CAApCA,GAAwC,CAArD;;MACA,QAAQ2lE,iBAAR;QACE,KAAK,CAAL;UACEP,KAAKT,cAAc3kE,UAAUqlE,cAAxB,CAALD;UACAztB,IAAIytB,KAAK,EAATztB;UACA/pD,IAAIw3E,MAAM,CAAVx3E;;UACA,IAAI+pD,MAAM,CAAV,EAAa;YACX,IAAI/pD,IAAI,EAAR,EAAY;cACV63E,SAASb,QAAQh3E,CAAR,KAAc,KAAKA,CAAnBg3E,CAATa;cACAE,oBAAoB,CAApBA;YAFF,OAGO;cACL/3E,IAAI,EAAJA;cACA+3E,oBAAoB,CAApBA;YANS;UAAb,OAQO;YACL,IAAIhuB,MAAM,CAAV,EAAa;cACX,MAAM,IAAI6qB,SAAJ,CAAc,sBAAd,CAAN;YAFG;;YAILoD,wBAAwBf,iBAAiBltB,CAAjB,CAAxBiuB;YACAD,oBAAoB/3E,IAAI,CAAJ,GAAQ,CAA5B+3E;UAjBJ;;UAmBE;;QACF,KAAK,CAAL;QACA,KAAK,CAAL;UACE,IAAI3lE,UAAUklE,SAAVllE,CAAoB8lE,OAApB9lE,CAAJ,EAAkC;YAChCA,UAAUklE,SAAVllE,CAAoB8lE,OAApB9lE,KAAgCgtC,QAAQyhB,aAAauV,UAArB,CAAhChkE;UADF,OAEO;YACLpS;;YACA,IAAIA,MAAM,CAAV,EAAa;cACX+3E,oBAAoBA,sBAAsB,CAAtBA,GAA0B,CAA1BA,GAA8B,CAAlDA;YAHG;UAHT;;UASE;;QACF,KAAK,CAAL;UACE,IAAI3lE,UAAUklE,SAAVllE,CAAoB8lE,OAApB9lE,CAAJ,EAAkC;YAChCA,UAAUklE,SAAVllE,CAAoB8lE,OAApB9lE,KAAgCgtC,QAAQyhB,aAAauV,UAArB,CAAhChkE;UADF,OAEO;YACLA,UAAUklE,SAAVllE,CAAoB8lE,OAApB9lE,IAA+B4lE,yBAAyB5B,UAAxDhkE;YACA2lE,oBAAoB,CAApBA;UALJ;;UAOE;;QACF,KAAK,CAAL;UACE,IAAI3lE,UAAUklE,SAAVllE,CAAoB8lE,OAApB9lE,CAAJ,EAAkC;YAChCA,UAAUklE,SAAVllE,CAAoB8lE,OAApB9lE,KAAgCgtC,QAAQyhB,aAAauV,UAArB,CAAhChkE;UAFJ;;UAIE;MA5CJ;;MA8CAw1B;IAvDgD;;IAyDlD,IAAImwC,sBAAsB,CAA1B,EAA6B;MAC3BF;;MACA,IAAIA,WAAW,CAAf,EAAkB;QAChBE,oBAAoB,CAApBA;MAHyB;IAzDqB;EA/JpD;;EAgOA,IAAIlB,WAAW,CAAf;;EACA,SAASsB,SAAT,CAAmB/lE,SAAnB,EAA8BnO,MAA9B,EAAsCm0E,GAAtC,EAA2Cjc,GAA3C,EAAgDwZ,GAAhD,EAAqD;IACnD,MAAM0C,SAAUD,MAAM9B,WAAN8B,GAAqB,CAArC;IACA,MAAME,SAASF,MAAM9B,WAArB;IACAO,WAAWwB,SAASjmE,UAAU9Q,CAAnB+2E,GAAuBlc,GAAlC0a;IACA,MAAM0B,WAAWD,SAASlmE,UAAUi/B,CAAnBinC,GAAuB3C,GAAxC;IACA,MAAMwB,cAAczB,qBAAqBtjE,SAArB,EAAgCykE,QAAhC,EAA0C0B,QAA1C,CAApB;IACAt0E,OAAOmO,SAAP,EAAkB+kE,WAAlB;EAvOF;;EA0OA,SAASqB,WAAT,CAAqBpmE,SAArB,EAAgCnO,MAAhC,EAAwCm0E,GAAxC,EAA6C;IAC3CvB,WAAYuB,MAAMhmE,UAAUwjE,aAAhBwC,GAAiC,CAA7CvB;IACA,MAAM0B,WAAWH,MAAMhmE,UAAUwjE,aAAjC;IACA,MAAMuB,cAAczB,qBAAqBtjE,SAArB,EAAgCykE,QAAhC,EAA0C0B,QAA1C,CAApB;IACAt0E,OAAOmO,SAAP,EAAkB+kE,WAAlB;EA9OF;;EAiPA,MAAMsB,mBAAmB1C,WAAWx5F,MAApC;EACA,IAAI61B,SAAJ,EAAej1B,CAAf,EAAkBsmB,CAAlB,EAAqBmkC,CAArB,EAAwBhoC,CAAxB;EACA,IAAI84E,QAAJ;;EACA,IAAInC,WAAJ,EAAiB;IACf,IAAIN,kBAAkB,CAAtB,EAAyB;MACvByC,WAAWvC,mBAAmB,CAAnBA,GAAuBwB,aAAvBxB,GAAuCyB,kBAAlDc;IADF,OAEO;MACLA,WAAWvC,mBAAmB,CAAnBA,GAAuB2B,aAAvB3B,GAAuC8B,kBAAlDS;IAJa;EAAjB,OAMO;IACLA,WAAWxB,cAAXwB;EA3PF;;EA8PA,IAAIN,MAAM,CAAV;EAAA,IACEO,UADF;EAEA,IAAIC,WAAJ;;EACA,IAAIH,qBAAqB,CAAzB,EAA4B;IAC1BG,cAAc7C,WAAW,CAAX,EAAcH,aAAdG,GAA8BA,WAAW,CAAX,EAAc8C,eAA1DD;EADF,OAEO;IACLA,cAActC,cAAcR,MAAMgD,aAAlCF;EApQF;;EAuQA,IAAIvnC,CAAJ,EAAO/vC,CAAP;;EACA,OAAO82E,OAAOQ,WAAd,EAA2B;IAEzB,MAAMG,YAAY/C,gBACdx1F,KAAKyd,GAALzd,CAASo4F,cAAcR,GAAvB53F,EAA4Bw1F,aAA5Bx1F,CADc,GAEdo4F,WAFJ;;IAQA,IAAIG,YAAY,CAAhB,EAAmB;MACjB,KAAK57F,IAAI,CAAT,EAAYA,IAAIs7F,gBAAhB,EAAkCt7F,GAAlC,EAAuC;QACrC44F,WAAW54F,CAAX,EAAco6F,IAAdxB,GAAqB,CAArBA;MAFe;;MAIjB8B,SAAS,CAATA;;MAEA,IAAIY,qBAAqB,CAAzB,EAA4B;QAC1BrmE,YAAY2jE,WAAW,CAAX,CAAZ3jE;;QACA,KAAKxS,IAAI,CAAT,EAAYA,IAAIm5E,SAAhB,EAA2Bn5E,GAA3B,EAAgC;UAC9B44E,YAAYpmE,SAAZ,EAAuBsmE,QAAvB,EAAiCN,GAAjC;UACAA;QAJwB;MAA5B,OAMO;QACL,KAAKx4E,IAAI,CAAT,EAAYA,IAAIm5E,SAAhB,EAA2Bn5E,GAA3B,EAAgC;UAC9B,KAAKziB,IAAI,CAAT,EAAYA,IAAIs7F,gBAAhB,EAAkCt7F,GAAlC,EAAuC;YACrCi1B,YAAY2jE,WAAW54F,CAAX,CAAZi1B;YACAi/B,IAAIj/B,UAAUi/B,CAAdA;YACA/vC,IAAI8Q,UAAU9Q,CAAdA;;YACA,KAAKmC,IAAI,CAAT,EAAYA,IAAInC,CAAhB,EAAmBmC,GAAnB,EAAwB;cACtB,KAAKmkC,IAAI,CAAT,EAAYA,IAAIyJ,CAAhB,EAAmBzJ,GAAnB,EAAwB;gBACtBuwC,UAAU/lE,SAAV,EAAqBsmE,QAArB,EAA+BN,GAA/B,EAAoC30E,CAApC,EAAuCmkC,CAAvC;cAFoB;YAJa;UADT;;UAW9BwwC;QAZG;MAZU;IAVM;;IAwCzB1B,YAAY,CAAZA;IACAiC,aAAaK,mBAAmB39F,IAAnB,EAAyBs2B,MAAzB,CAAbgnE;;IACA,IAAI,CAACA,UAAL,EAAiB;MACf;IA3CuB;;IA6CzB,IAAIA,WAAWM,OAAf,EAAwB;MAGtB,MAAMv8F,aAAaq8F,YAAY,CAAZA,GAAgB,YAAhBA,GAA+B,WAAlD;MACA94F,gBACG,gBAAevD,UAAW,iCAAgCi8F,WAAWM,OAAtE,EADFh5F;MAGA0xB,SAASgnE,WAAWhnE,MAApBA;IApDuB;;IAsDzB,IAAIgnE,WAAWO,MAAXP,IAAqB,MAArBA,IAA+BA,WAAWO,MAAXP,IAAqB,MAAxD,EAAgE;MAE9DhnE,UAAU,CAAVA;IAFF,OAGO;MACL;IA1DuB;EAxQ3B;;EAsUA,OAAOA,SAAS6kE,WAAhB;AAxcF;;AAgdA,SAAS2C,kBAAT,CAA4B/mE,SAA5B,EAAuCgnE,iBAAvC,EAA0D54E,CAA1D,EAA6D;EAC3D,MAAM64E,KAAKjnE,UAAUknE,iBAArB;EAAA,MACEhC,YAAYllE,UAAUklE,SADxB;EAEA,IAAIiC,EAAJ,EAAQpvE,EAAR,EAAYC,EAAZ,EAAgBovE,EAAhB,EAAoBC,EAApB,EAAwBC,EAAxB,EAA4BC,EAA5B,EAAgCC,EAAhC;EACA,IAAIC,EAAJ,EAAQ94E,EAAR,EAAYC,EAAZ,EAAgBE,EAAhB,EAAoBC,EAApB,EAAwB24E,EAAxB,EAA4BC,EAA5B,EAAgCC,EAAhC;EACA,IAAI72E,CAAJ;;EAEA,IAAI,CAACk2E,EAAL,EAAS;IACP,MAAM,IAAIzE,SAAJ,CAAc,sCAAd,CAAN;EARyD;;EAY3D,KAAK,IAAIzY,MAAM,CAAf,EAAkBA,MAAM,EAAxB,EAA4BA,OAAO,CAAnC,EAAsC;IAEpC0d,KAAKvC,UAAU8B,oBAAoBjd,GAA9B,CAAL0d;IACA94E,KAAKu2E,UAAU8B,oBAAoBjd,GAApBid,GAA0B,CAApC,CAALr4E;IACAC,KAAKs2E,UAAU8B,oBAAoBjd,GAApBid,GAA0B,CAApC,CAALp4E;IACAE,KAAKo2E,UAAU8B,oBAAoBjd,GAApBid,GAA0B,CAApC,CAALl4E;IACAC,KAAKm2E,UAAU8B,oBAAoBjd,GAApBid,GAA0B,CAApC,CAALj4E;IACA24E,KAAKxC,UAAU8B,oBAAoBjd,GAApBid,GAA0B,CAApC,CAALU;IACAC,KAAKzC,UAAU8B,oBAAoBjd,GAApBid,GAA0B,CAApC,CAALW;IACAC,KAAK1C,UAAU8B,oBAAoBjd,GAApBid,GAA0B,CAApC,CAALY;IAGAH,MAAMR,GAAGld,GAAH,CAAN0d;;IAGA,IAAK,MAAK74E,EAALD,GAAUG,EAAVH,GAAeI,EAAfJ,GAAoB+4E,EAApB/4E,GAAyBg5E,EAAzBh5E,GAA8Bi5E,EAA9B,MAAsC,CAA3C,EAA8C;MAC5C72E,IAAKoyE,WAAWsE,EAAXtE,GAAgB,GAAhBA,IAAwB,EAA7BpyE;MACA3C,EAAE27D,GAAF,IAASh5D,CAAT3C;MACAA,EAAE27D,MAAM,CAAR,IAAah5D,CAAb3C;MACAA,EAAE27D,MAAM,CAAR,IAAah5D,CAAb3C;MACAA,EAAE27D,MAAM,CAAR,IAAah5D,CAAb3C;MACAA,EAAE27D,MAAM,CAAR,IAAah5D,CAAb3C;MACAA,EAAE27D,MAAM,CAAR,IAAah5D,CAAb3C;MACAA,EAAE27D,MAAM,CAAR,IAAah5D,CAAb3C;MACAA,EAAE27D,MAAM,CAAR,IAAah5D,CAAb3C;MACA;IAzBkC;;IA4BpCO,MAAMs4E,GAAGld,MAAM,CAAT,CAANp7D;IACAC,MAAMq4E,GAAGld,MAAM,CAAT,CAANn7D;IACAE,MAAMm4E,GAAGld,MAAM,CAAT,CAANj7D;IACAC,MAAMk4E,GAAGld,MAAM,CAAT,CAANh7D;IACA24E,MAAMT,GAAGld,MAAM,CAAT,CAAN2d;IACAC,MAAMV,GAAGld,MAAM,CAAT,CAAN4d;IACAC,MAAMX,GAAGld,MAAM,CAAT,CAAN6d;IAGAT,KAAMhE,WAAWsE,EAAXtE,GAAgB,GAAhBA,IAAwB,CAA9BgE;IACApvE,KAAMorE,WAAWp0E,EAAXo0E,GAAgB,GAAhBA,IAAwB,CAA9BprE;IACAC,KAAKpJ,EAALoJ;IACAovE,KAAKO,EAALP;IACAC,KAAMjE,cAAcz0E,KAAKi5E,EAAnB,IAAyB,GAAzBxE,IAAiC,CAAvCiE;IACAG,KAAMpE,cAAcz0E,KAAKi5E,EAAnB,IAAyB,GAAzBxE,IAAiC,CAAvCoE;IACAF,KAAKx4E,MAAM,CAAXw4E;IACAC,KAAKG,MAAM,CAAXH;IAGAJ,KAAMA,KAAKpvE,EAALovE,GAAU,CAAVA,IAAgB,CAAtBA;IACApvE,KAAKovE,KAAKpvE,EAAVA;IACAhH,IAAKiH,KAAKkrE,OAALlrE,GAAeovE,KAAKnE,OAApBjrE,GAA8B,GAA9BA,IAAsC,CAA3CjH;IACAiH,KAAMA,KAAKirE,OAALjrE,GAAeovE,KAAKlE,OAApBlrE,GAA8B,GAA9BA,IAAsC,CAA5CA;IACAovE,KAAKr2E,CAALq2E;IACAC,KAAMA,KAAKE,EAALF,GAAU,CAAVA,IAAgB,CAAtBA;IACAE,KAAKF,KAAKE,EAAVA;IACAC,KAAMA,KAAKF,EAALE,GAAU,CAAVA,IAAgB,CAAtBA;IACAF,KAAKE,KAAKF,EAAVA;IAGAH,KAAMA,KAAKC,EAALD,GAAU,CAAVA,IAAgB,CAAtBA;IACAC,KAAKD,KAAKC,EAAVA;IACArvE,KAAMA,KAAKC,EAALD,GAAU,CAAVA,IAAgB,CAAtBA;IACAC,KAAKD,KAAKC,EAAVA;IACAjH,IAAKs2E,KAAKrE,OAALqE,GAAeG,KAAKzE,OAApBsE,GAA8B,IAA9BA,IAAuC,EAA5Ct2E;IACAs2E,KAAMA,KAAKtE,OAALsE,GAAeG,KAAKxE,OAApBqE,GAA8B,IAA9BA,IAAuC,EAA7CA;IACAG,KAAKz2E,CAALy2E;IACAz2E,IAAKu2E,KAAKxE,OAALwE,GAAeC,KAAK1E,OAApByE,GAA8B,IAA9BA,IAAuC,EAA5Cv2E;IACAu2E,KAAMA,KAAKzE,OAALyE,GAAeC,KAAKzE,OAApBwE,GAA8B,IAA9BA,IAAuC,EAA7CA;IACAC,KAAKx2E,CAALw2E;IAGAn5E,EAAE27D,GAAF,IAASod,KAAKK,EAAdp5E;IACAA,EAAE27D,MAAM,CAAR,IAAaod,KAAKK,EAAlBp5E;IACAA,EAAE27D,MAAM,CAAR,IAAahyD,KAAKwvE,EAAlBn5E;IACAA,EAAE27D,MAAM,CAAR,IAAahyD,KAAKwvE,EAAlBn5E;IACAA,EAAE27D,MAAM,CAAR,IAAa/xD,KAAKsvE,EAAlBl5E;IACAA,EAAE27D,MAAM,CAAR,IAAa/xD,KAAKsvE,EAAlBl5E;IACAA,EAAE27D,MAAM,CAAR,IAAaqd,KAAKC,EAAlBj5E;IACAA,EAAE27D,MAAM,CAAR,IAAaqd,KAAKC,EAAlBj5E;EAzFyD;;EA6F3D,KAAK,IAAIm1E,MAAM,CAAf,EAAkBA,MAAM,CAAxB,EAA2B,EAAEA,GAA7B,EAAkC;IAChCkE,KAAKr5E,EAAEm1E,GAAF,CAALkE;IACA94E,KAAKP,EAAEm1E,MAAM,CAAR,CAAL50E;IACAC,KAAKR,EAAEm1E,MAAM,EAAR,CAAL30E;IACAE,KAAKV,EAAEm1E,MAAM,EAAR,CAALz0E;IACAC,KAAKX,EAAEm1E,MAAM,EAAR,CAALx0E;IACA24E,KAAKt5E,EAAEm1E,MAAM,EAAR,CAALmE;IACAC,KAAKv5E,EAAEm1E,MAAM,EAAR,CAALoE;IACAC,KAAKx5E,EAAEm1E,MAAM,EAAR,CAALqE;;IAGA,IAAK,MAAKh5E,EAALD,GAAUG,EAAVH,GAAeI,EAAfJ,GAAoB+4E,EAApB/4E,GAAyBg5E,EAAzBh5E,GAA8Bi5E,EAA9B,MAAsC,CAA3C,EAA8C;MAC5C72E,IAAKoyE,WAAWsE,EAAXtE,GAAgB,IAAhBA,IAAyB,EAA9BpyE;;MAEA,IAAIA,IAAI,CAAC,IAAT,EAAe;QACbA,IAAI,CAAJA;MADF,OAEO,IAAIA,KAAK,IAAT,EAAe;QACpBA,IAAI,GAAJA;MADK,OAEA;QACLA,IAAKA,IAAI,IAAJA,IAAa,CAAlBA;MAR0C;;MAU5Cm0E,UAAU8B,oBAAoBzD,GAA9B,IAAqCxyE,CAArCm0E;MACAA,UAAU8B,oBAAoBzD,GAApByD,GAA0B,CAApC,IAAyCj2E,CAAzCm0E;MACAA,UAAU8B,oBAAoBzD,GAApByD,GAA0B,EAApC,IAA0Cj2E,CAA1Cm0E;MACAA,UAAU8B,oBAAoBzD,GAApByD,GAA0B,EAApC,IAA0Cj2E,CAA1Cm0E;MACAA,UAAU8B,oBAAoBzD,GAApByD,GAA0B,EAApC,IAA0Cj2E,CAA1Cm0E;MACAA,UAAU8B,oBAAoBzD,GAApByD,GAA0B,EAApC,IAA0Cj2E,CAA1Cm0E;MACAA,UAAU8B,oBAAoBzD,GAApByD,GAA0B,EAApC,IAA0Cj2E,CAA1Cm0E;MACAA,UAAU8B,oBAAoBzD,GAApByD,GAA0B,EAApC,IAA0Cj2E,CAA1Cm0E;MACA;IA7B8B;;IAiChCiC,KAAMhE,WAAWsE,EAAXtE,GAAgB,IAAhBA,IAAyB,EAA/BgE;IACApvE,KAAMorE,WAAWp0E,EAAXo0E,GAAgB,IAAhBA,IAAyB,EAA/BprE;IACAC,KAAKpJ,EAALoJ;IACAovE,KAAKO,EAALP;IACAC,KAAMjE,cAAcz0E,KAAKi5E,EAAnB,IAAyB,IAAzBxE,IAAkC,EAAxCiE;IACAG,KAAMpE,cAAcz0E,KAAKi5E,EAAnB,IAAyB,IAAzBxE,IAAkC,EAAxCoE;IACAF,KAAKx4E,EAALw4E;IACAC,KAAKG,EAALH;IAKAJ,KAAM,CAACA,KAAKpvE,EAALovE,GAAU,CAAVA,IAAgB,CAAjB,IAAsB,IAA5BA;IACApvE,KAAKovE,KAAKpvE,EAAVA;IACAhH,IAAKiH,KAAKkrE,OAALlrE,GAAeovE,KAAKnE,OAApBjrE,GAA8B,IAA9BA,IAAuC,EAA5CjH;IACAiH,KAAMA,KAAKirE,OAALjrE,GAAeovE,KAAKlE,OAApBlrE,GAA8B,IAA9BA,IAAuC,EAA7CA;IACAovE,KAAKr2E,CAALq2E;IACAC,KAAMA,KAAKE,EAALF,GAAU,CAAVA,IAAgB,CAAtBA;IACAE,KAAKF,KAAKE,EAAVA;IACAC,KAAMA,KAAKF,EAALE,GAAU,CAAVA,IAAgB,CAAtBA;IACAF,KAAKE,KAAKF,EAAVA;IAGAH,KAAMA,KAAKC,EAALD,GAAU,CAAVA,IAAgB,CAAtBA;IACAC,KAAKD,KAAKC,EAAVA;IACArvE,KAAMA,KAAKC,EAALD,GAAU,CAAVA,IAAgB,CAAtBA;IACAC,KAAKD,KAAKC,EAAVA;IACAjH,IAAKs2E,KAAKrE,OAALqE,GAAeG,KAAKzE,OAApBsE,GAA8B,IAA9BA,IAAuC,EAA5Ct2E;IACAs2E,KAAMA,KAAKtE,OAALsE,GAAeG,KAAKxE,OAApBqE,GAA8B,IAA9BA,IAAuC,EAA7CA;IACAG,KAAKz2E,CAALy2E;IACAz2E,IAAKu2E,KAAKxE,OAALwE,GAAeC,KAAK1E,OAApByE,GAA8B,IAA9BA,IAAuC,EAA5Cv2E;IACAu2E,KAAMA,KAAKzE,OAALyE,GAAeC,KAAKzE,OAApBwE,GAA8B,IAA9BA,IAAuC,EAA7CA;IACAC,KAAKx2E,CAALw2E;IAGAE,KAAKN,KAAKK,EAAVC;IACAG,KAAKT,KAAKK,EAAVI;IACAj5E,KAAKoJ,KAAKwvE,EAAV54E;IACAg5E,KAAK5vE,KAAKwvE,EAAVI;IACA/4E,KAAKoJ,KAAKsvE,EAAV14E;IACA84E,KAAK1vE,KAAKsvE,EAAVI;IACA54E,KAAKs4E,KAAKC,EAAVv4E;IACAC,KAAKq4E,KAAKC,EAAVt4E;;IAGA,IAAI04E,KAAK,EAAT,EAAa;MACXA,KAAK,CAALA;IADF,OAEO,IAAIA,MAAM,IAAV,EAAgB;MACrBA,KAAK,GAALA;IADK,OAEA;MACLA,OAAO,CAAPA;IAnF8B;;IAqFhC,IAAI94E,KAAK,EAAT,EAAa;MACXA,KAAK,CAALA;IADF,OAEO,IAAIA,MAAM,IAAV,EAAgB;MACrBA,KAAK,GAALA;IADK,OAEA;MACLA,OAAO,CAAPA;IA1F8B;;IA4FhC,IAAIC,KAAK,EAAT,EAAa;MACXA,KAAK,CAALA;IADF,OAEO,IAAIA,MAAM,IAAV,EAAgB;MACrBA,KAAK,GAALA;IADK,OAEA;MACLA,OAAO,CAAPA;IAjG8B;;IAmGhC,IAAIE,KAAK,EAAT,EAAa;MACXA,KAAK,CAALA;IADF,OAEO,IAAIA,MAAM,IAAV,EAAgB;MACrBA,KAAK,GAALA;IADK,OAEA;MACLA,OAAO,CAAPA;IAxG8B;;IA0GhC,IAAIC,KAAK,EAAT,EAAa;MACXA,KAAK,CAALA;IADF,OAEO,IAAIA,MAAM,IAAV,EAAgB;MACrBA,KAAK,GAALA;IADK,OAEA;MACLA,OAAO,CAAPA;IA/G8B;;IAiHhC,IAAI24E,KAAK,EAAT,EAAa;MACXA,KAAK,CAALA;IADF,OAEO,IAAIA,MAAM,IAAV,EAAgB;MACrBA,KAAK,GAALA;IADK,OAEA;MACLA,OAAO,CAAPA;IAtH8B;;IAwHhC,IAAIC,KAAK,EAAT,EAAa;MACXA,KAAK,CAALA;IADF,OAEO,IAAIA,MAAM,IAAV,EAAgB;MACrBA,KAAK,GAALA;IADK,OAEA;MACLA,OAAO,CAAPA;IA7H8B;;IA+HhC,IAAIC,KAAK,EAAT,EAAa;MACXA,KAAK,CAALA;IADF,OAEO,IAAIA,MAAM,IAAV,EAAgB;MACrBA,KAAK,GAALA;IADK,OAEA;MACLA,OAAO,CAAPA;IApI8B;;IAwIhC1C,UAAU8B,oBAAoBzD,GAA9B,IAAqCkE,EAArCvC;IACAA,UAAU8B,oBAAoBzD,GAApByD,GAA0B,CAApC,IAAyCr4E,EAAzCu2E;IACAA,UAAU8B,oBAAoBzD,GAApByD,GAA0B,EAApC,IAA0Cp4E,EAA1Cs2E;IACAA,UAAU8B,oBAAoBzD,GAApByD,GAA0B,EAApC,IAA0Cl4E,EAA1Co2E;IACAA,UAAU8B,oBAAoBzD,GAApByD,GAA0B,EAApC,IAA0Cj4E,EAA1Cm2E;IACAA,UAAU8B,oBAAoBzD,GAApByD,GAA0B,EAApC,IAA0CU,EAA1CxC;IACAA,UAAU8B,oBAAoBzD,GAApByD,GAA0B,EAApC,IAA0CW,EAA1CzC;IACAA,UAAU8B,oBAAoBzD,GAApByD,GAA0B,EAApC,IAA0CY,EAA1C1C;EA5OyD;AAhd7D;;AAgsBA,SAAS2C,kBAAT,CAA4BnE,KAA5B,EAAmC1jE,SAAnC,EAA8C;EAC5C,MAAMwjE,gBAAgBxjE,UAAUwjE,aAAhC;EACA,MAAMiD,kBAAkBzmE,UAAUymE,eAAlC;EACA,MAAMqB,oBAAoB,IAAIC,UAAJ,CAAe,EAAf,CAA1B;;EAEA,KAAK,IAAItD,WAAW,CAApB,EAAuBA,WAAWgC,eAAlC,EAAmDhC,UAAnD,EAA+D;IAC7D,KAAK,IAAI0B,WAAW,CAApB,EAAuBA,WAAW3C,aAAlC,EAAiD2C,UAAjD,EAA6D;MAC3D,MAAM5mE,SAAS+jE,qBAAqBtjE,SAArB,EAAgCykE,QAAhC,EAA0C0B,QAA1C,CAAf;MACAY,mBAAmB/mE,SAAnB,EAA8BT,MAA9B,EAAsCuoE,iBAAtC;IAH2D;EALnB;;EAW5C,OAAO9nE,UAAUklE,SAAjB;AA3sBF;;AA8sBA,SAAS0B,kBAAT,CAA4B39F,IAA5B,EAAkC++F,UAAlC,EAA8CjnB,WAAWinB,UAAzD,EAAqE;EACnE,MAAMC,SAASh/F,KAAKkB,MAALlB,GAAc,CAA7B;EACA,IAAIi/F,SAASnnB,WAAWinB,UAAXjnB,GAAwBA,QAAxBA,GAAmCinB,UAAhD;;EAEA,IAAIA,cAAcC,MAAlB,EAA0B;IACxB,OAAO,IAAP;EALiE;;EAOnE,MAAME,gBAAgB3oE,4BAAWv2B,IAAXu2B,EAAiBwoE,UAAjBxoE,CAAtB;;EACA,IAAI2oE,iBAAiB,MAAjBA,IAA2BA,iBAAiB,MAAhD,EAAwD;IACtD,OAAO;MACLtB,SAAS,IADJ;MAELC,QAAQqB,aAFH;MAGL5oE,QAAQyoE;IAHH,CAAP;EATiE;;EAenE,IAAII,YAAY5oE,4BAAWv2B,IAAXu2B,EAAiB0oE,MAAjB1oE,CAAhB;;EACA,OAAO,EAAE4oE,aAAa,MAAbA,IAAuBA,aAAa,MAAtC,CAAP,EAAsD;IACpD,IAAI,EAAEF,MAAF,IAAYD,MAAhB,EAAwB;MACtB,OAAO,IAAP;IAFkD;;IAIpDG,YAAY5oE,4BAAWv2B,IAAXu2B,EAAiB0oE,MAAjB1oE,CAAZ4oE;EApBiE;;EAsBnE,OAAO;IACLvB,SAASsB,cAAc34F,QAAd24F,CAAuB,EAAvBA,CADJ;IAELrB,QAAQsB,SAFH;IAGL7oE,QAAQ2oE;EAHH,CAAP;AApuBF;;AA2uBA,MAAM9F,SAAN,CAAgB;EACdt6F,YAAY;IAAE65F,kBAAkB,IAApB;IAA0BC,iBAAiB,CAAC;EAA5C,IAAkD,EAA9D,EAAkE;IAChE,KAAKyG,gBAAL,GAAwB1G,eAAxB;IACA,KAAK2G,eAAL,GAAuB1G,cAAvB;EAHY;;EAMdn5D,MAAMx/B,IAAN,EAAY;IAAEs/F,eAAe;EAAjB,IAA0B,EAAtC,EAA0C;IACxC,SAASC,aAAT,GAAyB;MACvB,MAAMr+F,SAASq1B,4BAAWv2B,IAAXu2B,EAAiBD,MAAjBC,CAAf;MACAD,UAAU,CAAVA;MACA,IAAI8hD,YAAY9hD,SAASp1B,MAATo1B,GAAkB,CAAlC;MAEA,MAAMgnE,aAAaK,mBAAmB39F,IAAnB,EAAyBo4E,SAAzB,EAAoC9hD,MAApC,CAAnB;;MACA,IAAIgnE,cAAcA,WAAWM,OAA7B,EAAsC;QACpCh5F,gBACE,0DACE04F,WAAWM,OAFfh5F;QAIAwzE,YAAYklB,WAAWhnE,MAAvB8hD;MAXqB;;MAcvB,MAAMlgC,QAAQl4C,KAAK8iB,QAAL9iB,CAAcs2B,MAAdt2B,EAAsBo4E,SAAtBp4E,CAAd;MACAs2B,UAAU4hB,MAAMh3C,MAAhBo1B;MACA,OAAO4hB,KAAP;IAjBsC;;IAoBxC,SAASsnD,iBAAT,CAA2B/E,KAA3B,EAAkC;MAChC,MAAMQ,cAAc91F,KAAK4rB,IAAL5rB,CAAUs1F,MAAMgF,cAANhF,GAAuB,CAAvBA,GAA2BA,MAAMiF,IAA3Cv6F,CAApB;MACA,MAAMs4F,gBAAgBt4F,KAAK4rB,IAAL5rB,CAAUs1F,MAAMhB,SAANgB,GAAkB,CAAlBA,GAAsBA,MAAMkF,IAAtCx6F,CAAtB;;MACA,KAAK,IAAIrD,IAAI,CAAR,EAAWiJ,KAAK0vF,MAAMC,UAAND,CAAiBv5F,MAAtC,EAA8CY,IAAIiJ,EAAlD,EAAsDjJ,GAAtD,EAA2D;QACzD,MAAMi1B,YAAY0jE,MAAMC,UAAND,CAAiB34F,CAAjB24F,CAAlB;QACA,MAAMF,gBAAgBp1F,KAAK4rB,IAAL5rB,CACnBA,KAAK4rB,IAAL5rB,CAAUs1F,MAAMgF,cAANhF,GAAuB,CAAjCt1F,IAAsC4xB,UAAUi/B,CAAhD7wD,GAAqDs1F,MAAMiF,IADxCv6F,CAAtB;QAGA,MAAMq4F,kBAAkBr4F,KAAK4rB,IAAL5rB,CACrBA,KAAK4rB,IAAL5rB,CAAUs1F,MAAMhB,SAANgB,GAAkB,CAA5Bt1F,IAAiC4xB,UAAU9Q,CAA3C9gB,GAAgDs1F,MAAMkF,IADjCx6F,CAAxB;QAGA,MAAMy6F,sBAAsB3E,cAAclkE,UAAUi/B,CAApD;QACA,MAAM6pC,wBAAwBpC,gBAAgB1mE,UAAU9Q,CAAxD;QAEA,MAAM65E,mBACJ,KAAKD,qBAAL,IAA8BD,sBAAsB,CAApD,CADF;QAEA7oE,UAAUklE,SAAVllE,GAAsB,IAAI+nE,UAAJ,CAAegB,gBAAf,CAAtB/oE;QACAA,UAAUwjE,aAAVxjE,GAA0BwjE,aAA1BxjE;QACAA,UAAUymE,eAAVzmE,GAA4BymE,eAA5BzmE;MAlB8B;;MAoBhC0jE,MAAMQ,WAANR,GAAoBQ,WAApBR;MACAA,MAAMgD,aAANhD,GAAsBgD,aAAtBhD;IAzCsC;;IA4CxC,IAAInkE,SAAS,CAAb;IACA,IAAIypE,OAAO,IAAX;IACA,IAAIC,QAAQ,IAAZ;IACA,IAAIvF,KAAJ,EAAWE,aAAX;IACA,IAAIsF,gBAAgB,CAApB;IACA,MAAMC,qBAAqB,EAA3B;IACA,MAAMC,kBAAkB,EAAxB;IAAA,MACEC,kBAAkB,EADpB;IAGA,IAAI9C,aAAa/mE,4BAAWv2B,IAAXu2B,EAAiBD,MAAjBC,CAAjB;IACAD,UAAU,CAAVA;;IACA,IAAIgnE,eAA4C,MAAhD,EAAwD;MACtD,MAAM,IAAI/D,SAAJ,CAAc,eAAd,CAAN;IAxDsC;;IA0DxC+D,aAAa/mE,4BAAWv2B,IAAXu2B,EAAiBD,MAAjBC,CAAb+mE;IACAhnE,UAAU,CAAVA;;IAEA+pE,YAAY,OAAO/C,eAA0C,MAAjD,EAAyD;MACnE,IAAIx7F,CAAJ,EAAOsmB,CAAP,EAAUmmD,CAAV;;MACA,QAAQ+uB,UAAR;QACE,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;UACE,MAAMgD,UAAUf,eAAhB;;UAEA,IAAIjC,eAAe,MAAnB,EAA2B;YAEzB,IACEgD,QAAQ,CAAR,MAAe,IAAfA,IACAA,QAAQ,CAAR,MAAe,IADfA,IAEAA,QAAQ,CAAR,MAAe,IAFfA,IAGAA,QAAQ,CAAR,MAAe,IAHfA,IAIAA,QAAQ,CAAR,MAAe,CALjB,EAME;cACAP,OAAO;gBACLx+D,SAAS;kBAAEg/D,OAAOD,QAAQ,CAAR,CAAT;kBAAqBE,OAAOF,QAAQ,CAAR;gBAA5B,CADJ;gBAELG,cAAcH,QAAQ,CAAR,CAFT;gBAGLI,UAAWJ,QAAQ,CAAR,KAAc,CAAdA,GAAmBA,QAAQ,CAAR,CAHzB;gBAILK,UAAWL,QAAQ,EAAR,KAAe,CAAfA,GAAoBA,QAAQ,EAAR,CAJ1B;gBAKLM,YAAYN,QAAQ,EAAR,CALP;gBAMLO,aAAaP,QAAQ,EAAR,CANR;gBAOLQ,WAAWR,QAAQx9E,QAARw9E,CACT,EADSA,EAET,KAAK,IAAIA,QAAQ,EAAR,CAAJ,GAAkBA,QAAQ,EAAR,CAFdA;cAPN,CAAPP;YATuB;UAH7B;;UA2BE,IAAIzC,eAAe,MAAnB,EAA2B;YAEzB,IACEgD,QAAQ,CAAR,MAAe,IAAfA,IACAA,QAAQ,CAAR,MAAe,IADfA,IAEAA,QAAQ,CAAR,MAAe,IAFfA,IAGAA,QAAQ,CAAR,MAAe,IAHfA,IAIAA,QAAQ,CAAR,MAAe,IALjB,EAME;cACAN,QAAQ;gBACNz+D,SAAU++D,QAAQ,CAAR,KAAc,CAAdA,GAAmBA,QAAQ,CAAR,CADvB;gBAENS,QAAST,QAAQ,CAAR,KAAc,CAAdA,GAAmBA,QAAQ,CAAR,CAFtB;gBAGNU,QAASV,QAAQ,CAAR,KAAc,CAAdA,GAAmBA,QAAQ,EAAR,CAHtB;gBAINW,eAAeX,QAAQ,EAAR;cAJT,CAARN;YATuB;UA3B7B;;UA4CE;;QAEF,KAAK,MAAL;UACE,MAAMkB,2BAA2B3qE,4BAAWv2B,IAAXu2B,EAAiBD,MAAjBC,CAAjC;UACAD,UAAU,CAAVA;UACA,MAAM6qE,wBAAwBD,2BAA2B5qE,MAA3B4qE,GAAoC,CAAlE;UACA,IAAI7E,CAAJ;;UACA,OAAO/lE,SAAS6qE,qBAAhB,EAAuC;YACrC,MAAMC,wBAAwBphG,KAAKs2B,QAAL,CAA9B;YACA,MAAM+qE,YAAY,IAAI35C,WAAJ,CAAgB,EAAhB,CAAlB;;YACA,IAAI05C,yBAAyB,CAAzBA,KAA+B,CAAnC,EAAsC;cAEpC,KAAKh5E,IAAI,CAAT,EAAYA,IAAI,EAAhB,EAAoBA,GAApB,EAAyB;gBACvBi0E,IAAI1C,UAAUvxE,CAAV,CAAJi0E;gBACAgF,UAAUhF,CAAV,IAAer8F,KAAKs2B,QAAL,CAAf+qE;cAJkC;YAAtC,OAMO,IAAID,yBAAyB,CAAzBA,KAA+B,CAAnC,EAAsC;cAE3C,KAAKh5E,IAAI,CAAT,EAAYA,IAAI,EAAhB,EAAoBA,GAApB,EAAyB;gBACvBi0E,IAAI1C,UAAUvxE,CAAV,CAAJi0E;gBACAgF,UAAUhF,CAAV,IAAe9lE,4BAAWv2B,IAAXu2B,EAAiBD,MAAjBC,CAAf8qE;gBACA/qE,UAAU,CAAVA;cALyC;YAAtC,OAOA;cACL,MAAM,IAAIijE,SAAJ,CAAc,0BAAd,CAAN;YAjBmC;;YAmBrC2G,mBAAmBkB,wBAAwB,EAA3C,IAAiDC,SAAjDnB;UAxBJ;;UA0BE;;QAEF,KAAK,MAAL;QACA,KAAK,MAAL;QACA,KAAK,MAAL;UACE,IAAIzF,KAAJ,EAAW;YACT,MAAM,IAAIlB,SAAJ,CAAc,mCAAd,CAAN;UAFJ;;UAIEjjE,UAAU,CAAVA;UAEAmkE,QAAQ,EAARA;UACAA,MAAM6G,QAAN7G,GAAiB6C,eAAe,MAAhC7C;UACAA,MAAMS,WAANT,GAAoB6C,eAAe,MAAnC7C;UACAA,MAAMgB,SAANhB,GAAkBz6F,KAAKs2B,QAAL,CAAlBmkE;UACA,MAAM8G,eAAehrE,4BAAWv2B,IAAXu2B,EAAiBD,MAAjBC,CAArB;UACAD,UAAU,CAAVA;UACAmkE,MAAMhB,SAANgB,GAAkB6E,gBAAgBiC,YAAlC9G;UACAA,MAAMgF,cAANhF,GAAuBlkE,4BAAWv2B,IAAXu2B,EAAiBD,MAAjBC,CAAvBkkE;UACAnkE,UAAU,CAAVA;UACAmkE,MAAMC,UAAND,GAAmB,EAAnBA;UACAA,MAAM+G,YAAN/G,GAAqB,EAArBA;UACA,MAAMgH,kBAAkBzhG,KAAKs2B,QAAL,CAAxB;UACA,IAAIopE,OAAO,CAAX;UAAA,IACEC,OAAO,CADT;;UAEA,KAAK79F,IAAI,CAAT,EAAYA,IAAI2/F,eAAhB,EAAiC3/F,GAAjC,EAAsC;YACpC,MAAM4/F,cAAc1hG,KAAKs2B,MAAL,CAApB;YACA,MAAM0/B,IAAIh2D,KAAKs2B,SAAS,CAAd,KAAoB,CAA9B;YACA,MAAMrQ,IAAIjmB,KAAKs2B,SAAS,CAAd,IAAmB,EAA7B;;YACA,IAAIopE,OAAO1pC,CAAX,EAAc;cACZ0pC,OAAO1pC,CAAP0pC;YALkC;;YAOpC,IAAIC,OAAO15E,CAAX,EAAc;cACZ05E,OAAO15E,CAAP05E;YARkC;;YAUpC,MAAMgC,MAAM3hG,KAAKs2B,SAAS,CAAd,CAAZ;YACAi4C,IAAIksB,MAAMC,UAAND,CAAiBx5F,IAAjBw5F,CAAsB;cACxBzkC,CADwB;cAExB/vC,CAFwB;cAGxB27E,gBAAgBD,GAHQ;cAIxB1D,mBAAmB;YAJK,CAAtBxD,CAAJlsB;YAMAksB,MAAM+G,YAAN/G,CAAmBiH,WAAnBjH,IAAkClsB,IAAI,CAAtCksB;YACAnkE,UAAU,CAAVA;UAtCJ;;UAwCEmkE,MAAMiF,IAANjF,GAAaiF,IAAbjF;UACAA,MAAMkF,IAANlF,GAAakF,IAAblF;UACA+E,kBAAkB/E,KAAlB;UACA;;QAEF,KAAK,MAAL;UACE,MAAMoH,gBAAgBtrE,4BAAWv2B,IAAXu2B,EAAiBD,MAAjBC,CAAtB;UACAD,UAAU,CAAVA;;UACA,KAAKx0B,IAAI,CAAT,EAAYA,IAAI+/F,aAAhB,GAAiC;YAC/B,MAAMC,mBAAmB9hG,KAAKs2B,QAAL,CAAzB;YACA,MAAM0tD,cAAc,IAAI9jF,UAAJ,CAAe,EAAf,CAApB;YACA,IAAI6hG,gBAAgB,CAApB;;YACA,KAAK35E,IAAI,CAAT,EAAYA,IAAI,EAAhB,EAAoBA,KAAKkO,QAAzB,EAAmC;cACjCyrE,iBAAiB/d,YAAY57D,CAAZ,IAAiBpoB,KAAKs2B,MAAL,CAAlCyrE;YAL6B;;YAO/B,MAAMC,gBAAgB,IAAI9hG,UAAJ,CAAe6hG,aAAf,CAAtB;;YACA,KAAK35E,IAAI,CAAT,EAAYA,IAAI25E,aAAhB,EAA+B35E,KAAKkO,QAApC,EAA8C;cAC5C0rE,cAAc55E,CAAd,IAAmBpoB,KAAKs2B,MAAL,CAAnB0rE;YAT6B;;YAW/BlgG,KAAK,KAAKigG,aAAVjgG;YAEC,qBAAoB,CAApBggG,KAA0B,CAA1BA,GAA8B1B,eAA9B0B,GAAgD3B,eAAhD,EACC2B,mBAAmB,EADpB,IAEG1H,kBAAkBpW,WAAlB,EAA+Bge,aAA/B,CAFH;UAhBL;;UAoBE;;QAEF,KAAK,MAAL;UACE1rE,UAAU,CAAVA;UAEAqkE,gBAAgBpkE,4BAAWv2B,IAAXu2B,EAAiBD,MAAjBC,CAAhBokE;UACArkE,UAAU,CAAVA;UACA;;QAEF,KAAK,MAAL;UAKE,MAAM0kE,iBAAiB,EAAEiF,aAAF,KAAoB,CAApB,IAAyB,CAACX,YAAjD;UAEAhpE,UAAU,CAAVA;UAEA,MAAM2rE,iBAAiBjiG,KAAKs2B,QAAL,CAAvB;UAAA,MACEokE,aAAa,EADf;;UAEA,KAAK54F,IAAI,CAAT,EAAYA,IAAImgG,cAAhB,EAAgCngG,GAAhC,EAAqC;YACnC,MAAM+qC,QAAQ7sC,KAAKs2B,QAAL,CAAd;YACA,MAAM4rE,iBAAiBzH,MAAM+G,YAAN/G,CAAmB5tD,KAAnB4tD,CAAvB;YACA,MAAM1jE,YAAY0jE,MAAMC,UAAND,CAAiByH,cAAjBzH,CAAlB;YACA1jE,UAAU8V,KAAV9V,GAAkB8V,KAAlB9V;YACA,MAAMorE,YAAYniG,KAAKs2B,QAAL,CAAlB;YACAS,UAAUglE,cAAVhlE,GAA2BqpE,gBAAgB+B,aAAa,CAA7B,CAA3BprE;YACAA,UAAUqlE,cAAVrlE,GAA2BopE,gBAAgBgC,YAAY,EAA5B,CAA3BprE;YACA2jE,WAAWz5F,IAAXy5F,CAAgB3jE,SAAhB2jE;UAnBJ;;UAqBE,MAAME,gBAAgB56F,KAAKs2B,QAAL,CAAtB;UAAA,MACEukE,cAAc76F,KAAKs2B,QAAL,CADhB;UAAA,MAEE8rE,0BAA0BpiG,KAAKs2B,QAAL,CAF5B;;UAGA,IAAI;YACF,MAAMk9B,YAAYgnC,WAChBx6F,IADgB,EAEhBs2B,MAFgB,EAGhBmkE,KAHgB,EAIhBC,UAJgB,EAKhBC,aALgB,EAMhBC,aANgB,EAOhBC,WAPgB,EAQhBuH,2BAA2B,CARX,EAShBA,0BAA0B,EATV,EAUhBpH,cAVgB,CAAlB;YAYA1kE,UAAUk9B,SAAVl9B;UAbF,EAcE,OAAO9yB,EAAP,EAAW;YACX,IAAIA,cAAcg2F,cAAlB,EAAkC;cAChC50F,gBAAK,GAAGpB,GAAG8C,OAAQ,4CAAnB1B;cACA,OAAO,KAAK46B,KAAL,CAAWx/B,IAAX,EAAiB;gBAAEs/F,cAAc97F,GAAGi2F;cAAnB,CAAjB,CAAP;YAFF,OAGO,IAAIj2F,cAAck2F,cAAlB,EAAkC;cACvC90F,gBAAK,GAAGpB,GAAG8C,OAAQ,0CAAnB1B;cACA;YANS;;YAQX,MAAMpB,EAAN;UA9CJ;;UAgDE;;QAEF,KAAK,MAAL;UAEE8yB,UAAU,CAAVA;UACA;;QAEF,KAAK,MAAL;UACE,IAAIt2B,KAAKs2B,MAAL,MAAiB,IAArB,EAA2B;YAEzBA;UAHJ;;UAKE;;QAEF;UAIE,MAAM+rE,iBAAiB1E,mBACrB39F,IADqB,EAEFs2B,SAAS,CAFP,EAGJA,SAAS,CAHL,CAAvB;;UAKA,IAAI+rE,kBAAkBA,eAAezE,OAArC,EAA8C;YAC5Ch5F,gBACE,2DACEy9F,eAAezE,OAFnBh5F;YAIA0xB,SAAS+rE,eAAe/rE,MAAxBA;YACA;UAfJ;;UAiBE,IAAI,CAAC+rE,cAAD,IAAmB/rE,UAAUt2B,KAAKkB,MAALlB,GAAc,CAA/C,EAAkD;YAChD4E,gBACE,yDACE,yCAFJA;YAIA;UAtBJ;;UAwBE,MAAM,IAAI20F,SAAJ,CACJ,uCAAuC+D,WAAW/2F,QAAX+2F,CAAoB,EAApBA,CADnC,CAAN;MA7PJ;;MAiQAA,aAAa/mE,4BAAWv2B,IAAXu2B,EAAiBD,MAAjBC,CAAb+mE;MACAhnE,UAAU,CAAVA;IAjUsC;;IAoUxC,KAAK0iB,KAAL,GAAayhD,MAAMgF,cAAnB;IACA,KAAK1gD,MAAL,GAAc07C,MAAMhB,SAApB;IACA,KAAKsG,IAAL,GAAYA,IAAZ;IACA,KAAKC,KAAL,GAAaA,KAAb;IACA,KAAKtF,UAAL,GAAkB,EAAlB;;IACA,KAAK,IAAI54F,IAAI,CAAR,EAAWiJ,KAAK0vF,MAAMC,UAAND,CAAiBv5F,MAAtC,EAA8CY,IAAIiJ,EAAlD,EAAsDjJ,GAAtD,EAA2D;MACzD,MAAMi1B,YAAY0jE,MAAMC,UAAND,CAAiB34F,CAAjB24F,CAAlB;MAKA,MAAMwD,oBAAoBiC,mBAAmBnpE,UAAU6qE,cAA7B,CAA1B;;MACA,IAAI3D,iBAAJ,EAAuB;QACrBlnE,UAAUknE,iBAAVlnE,GAA8BknE,iBAA9BlnE;MARuD;;MAWzD,KAAK2jE,UAAL,CAAgBz5F,IAAhB,CAAqB;QACnB4rC,OAAO9V,UAAU8V,KADE;QAEnBy1D,QAAQ1D,mBAAmBnE,KAAnB,EAA0B1jE,SAA1B,CAFW;QAGnBwrE,QAAQxrE,UAAUi/B,CAAVj/B,GAAc0jE,MAAMiF,IAHT;QAInB8C,QAAQzrE,UAAU9Q,CAAV8Q,GAAc0jE,MAAMkF,IAJT;QAKnBpF,eAAexjE,UAAUwjE,aALN;QAMnBiD,iBAAiBzmE,UAAUymE;MANR,CAArB;IApVsC;;IA6VxC,KAAKiF,aAAL,GAAqB,KAAK/H,UAAL,CAAgBx5F,MAArC;IACA,OAAOmhB,SAAP;EApWY;;EAuWdqgF,wBAAwB1pD,KAAxB,EAA+B+F,MAA/B,EAAuCu6C,cAAc,KAArD,EAA4D;IAC1D,MAAMiJ,SAAS,KAAKvpD,KAAL,GAAaA,KAA5B;IAAA,MACEwpD,SAAS,KAAKzjD,MAAL,GAAcA,MADzB;IAGA,IAAIhoB,SAAJ,EAAe4rE,eAAf,EAAgCC,eAAhC,EAAiDC,iBAAjD;IACA,IAAIz4F,CAAJ,EAAO8pC,CAAP,EAAUpyC,CAAV,EAAasmB,CAAb,EAAgBmkC,CAAhB;IACA,IAAI1f,KAAJ;IACA,IAAIvW,SAAS,CAAb;IACA,IAAIgsE,MAAJ;IACA,MAAMG,gBAAgB,KAAK/H,UAAL,CAAgBx5F,MAAtC;IACA,MAAMyjF,aAAa3rC,QAAQ+F,MAAR/F,GAAiBypD,aAApC;IACA,MAAMziG,OAAO,IAAIszC,iBAAJ,CAAsBqxC,UAAtB,CAAb;IACA,MAAMme,oBAAoB,IAAI9+E,WAAJ,CAAgBg1B,KAAhB,CAA1B;IACA,MAAM+pD,WAAW,UAAjB;IACA,IAAIC,mBAAJ;;IAEA,KAAKlhG,IAAI,CAAT,EAAYA,IAAI2gG,aAAhB,EAA+B3gG,GAA/B,EAAoC;MAClCi1B,YAAY,KAAK2jE,UAAL,CAAgB54F,CAAhB,CAAZi1B;MACA4rE,kBAAkB5rE,UAAUwrE,MAAVxrE,GAAmBwrE,MAArCI;MACAC,kBAAkB7rE,UAAUyrE,MAAVzrE,GAAmByrE,MAArCI;MACAtsE,SAASx0B,CAATw0B;MACAgsE,SAASvrE,UAAUurE,MAAnBA;MACAO,oBAAqB9rE,UAAUwjE,aAAVxjE,GAA0B,CAA1BA,IAAgC,CAArD8rE;;MAGA,IAAIF,oBAAoBK,mBAAxB,EAA6C;QAC3C,KAAK54F,IAAI,CAAT,EAAYA,IAAI4uC,KAAhB,EAAuB5uC,GAAvB,EAA4B;UAC1Bge,IAAI,IAAKhe,IAAIu4F,eAAbv6E;UACA06E,kBAAkB14F,CAAlB,IAAyB,KAAI24F,QAAJ,KAAiB,CAAjB,GAAuB36E,IAAI,CAApD06E;QAHyC;;QAK3CE,sBAAsBL,eAAtBK;MAdgC;;MAiBlC,KAAK9uD,IAAI,CAAT,EAAYA,IAAI6K,MAAhB,EAAwB7K,GAAxB,EAA6B;QAC3B9rB,IAAI,IAAK8rB,IAAI0uD,eAAbx6E;QACAykB,QAASg2D,qBAAqBz6E,IAAI26E,QAAzB,IAAwC,KAAI,CAAJ,KAAU,CAA3Dl2D;;QACA,KAAKziC,IAAI,CAAT,EAAYA,IAAI4uC,KAAhB,EAAuB5uC,GAAvB,EAA4B;UAC1BpK,KAAKs2B,MAAL,IAAegsE,OAAOz1D,QAAQi2D,kBAAkB14F,CAAlB,CAAf,CAAfpK;UACAs2B,UAAUmsE,aAAVnsE;QALyB;MAjBK;IAhBsB;;IA4C1D,IAAIhd,YAAY,KAAK8lF,gBAArB;;IAaA,IAAI,CAAC9F,WAAD,IAAgBmJ,kBAAkB,CAAlC,IAAuC,CAACnpF,SAA5C,EAAuD;MACrDA,YAAY,IAAIgpE,UAAJ,CAAe,CAAC,CAAC,GAAF,EAAO,GAAP,EAAY,CAAC,GAAb,EAAkB,GAAlB,EAAuB,CAAC,GAAxB,EAA6B,GAA7B,EAAkC,CAAC,GAAnC,EAAwC,GAAxC,CAAf,CAAZhpE;IA1DwD;;IA6D1D,IAAIA,SAAJ,EAAe;MACb,KAAKxX,IAAI,CAAT,EAAYA,IAAI6iF,UAAhB,GAA8B;QAC5B,KAAKv8D,IAAI,CAAJA,EAAOmkC,IAAI,CAAhB,EAAmBnkC,IAAIq6E,aAAvB,EAAsCr6E,KAAKtmB,GAAL,EAAUyqD,KAAK,CAArD,EAAwD;UACtDvsD,KAAK8B,CAAL,IAAW,CAAC9B,KAAK8B,CAAL,IAAUwX,UAAUizC,CAAV,CAAVvsD,IAA2B,CAA5B,IAAiCsZ,UAAUizC,IAAI,CAAd,CAA5CvsD;QAF0B;MADjB;IA7D2C;;IAoE1D,OAAOA,IAAP;EA3aY;;EA8ad,IAAIijG,wBAAJ,GAA+B;IAC7B,IAAI,KAAKjD,KAAT,EAAgB;MAEd,OAAO,CAAC,CAAC,KAAKA,KAAL,CAAWiB,aAApB;IAH2B;;IAK7B,IAAI,KAAKwB,aAAL,KAAuB,CAA3B,EAA8B;MAC5B,IAAI,KAAKpD,eAAL,KAAyB,CAA7B,EAAgC;QAI9B,OAAO,KAAP;MAJF,OAKO,IACL,KAAK3E,UAAL,CAAgB,CAAhB,EAAmB7tD,KAAnB,KAAyC,IAAzC,IACA,KAAK6tD,UAAL,CAAgB,CAAhB,EAAmB7tD,KAAnB,KAAyC,IADzC,IAEA,KAAK6tD,UAAL,CAAgB,CAAhB,EAAmB7tD,KAAnB,KAAyC,IAHpC,EAIL;QAGA,OAAO,KAAP;MAb0B;;MAe5B,OAAO,IAAP;IApB2B;;IAuB7B,IAAI,KAAKwyD,eAAL,KAAyB,CAA7B,EAAgC;MAI9B,OAAO,IAAP;IA3B2B;;IA6B7B,OAAO,KAAP;EA3cY;;EA8cd6D,iBAAiBljG,IAAjB,EAAuB;IACrB,IAAIswD,CAAJ,EAAO6yC,EAAP,EAAWC,EAAX;;IACA,KAAK,IAAIthG,IAAI,CAAR,EAAWZ,SAASlB,KAAKkB,MAA9B,EAAsCY,IAAIZ,MAA1C,EAAkDY,KAAK,CAAvD,EAA0D;MACxDwuD,IAAItwD,KAAK8B,CAAL,CAAJwuD;MACA6yC,KAAKnjG,KAAK8B,IAAI,CAAT,CAALqhG;MACAC,KAAKpjG,KAAK8B,IAAI,CAAT,CAALshG;MACApjG,KAAK8B,CAAL,IAAUwuD,IAAI,OAAJA,GAAc,QAAQ8yC,EAAhCpjG;MACAA,KAAK8B,IAAI,CAAT,IAAcwuD,IAAI,OAAJA,GAAc,QAAQ6yC,EAAtB7yC,GAA2B,QAAQ8yC,EAAjDpjG;MACAA,KAAK8B,IAAI,CAAT,IAAcwuD,IAAI,OAAJA,GAAc,QAAQ6yC,EAApCnjG;IARmB;;IAUrB,OAAOA,IAAP;EAxdY;;EA2ddqjG,kBAAkBrjG,IAAlB,EAAwB;IACtB,IAAIswD,CAAJ,EAAO6yC,EAAP,EAAWC,EAAX,EAAe72C,CAAf;IACA,IAAIj2B,SAAS,CAAb;;IACA,KAAK,IAAIx0B,IAAI,CAAR,EAAWZ,SAASlB,KAAKkB,MAA9B,EAAsCY,IAAIZ,MAA1C,EAAkDY,KAAK,CAAvD,EAA0D;MACxDwuD,IAAItwD,KAAK8B,CAAL,CAAJwuD;MACA6yC,KAAKnjG,KAAK8B,IAAI,CAAT,CAALqhG;MACAC,KAAKpjG,KAAK8B,IAAI,CAAT,CAALshG;MACA72C,IAAIvsD,KAAK8B,IAAI,CAAT,CAAJyqD;MAEAvsD,KAAKs2B,QAAL,IACE,CAAC,eAAD,GACA6sE,MACG,CAAC,mBAAD,GAAuBA,EAAvB,GACC,uBAAuBC,EADxB,GAEC,qBAAqB9yC,CAFtB,GAGC,sBAAsB/D,CAHvB,GAIC,iBALJ,CADA,GAOA62C,MACG,CAAC,oBAAD,GAAwBA,EAAxB,GACC,uBAAuB9yC,CADxB,GAEC,sBAAsB/D,CAFvB,GAGC,gBAJJ,CAPA,GAYA+D,KACG,uBAAuBA,CAAvB,GACC,sBAAsB/D,CADvB,GAEC,gBAHJ,CAZA,GAgBAA,KAAK,CAAC,oBAAD,GAAwBA,CAAxB,GAA4B,iBAAjC,CAjBFvsD;MAmBAA,KAAKs2B,QAAL,IACE,mBACA6sE,MACG,sBAAsBA,EAAtB,GACC,uBAAuBC,EADxB,GAEC,uBAAuB9yC,CAFxB,GAGC,uBAAuB/D,CAHxB,GAIC,iBALJ,CADA,GAOA62C,MACG,CAAC,oBAAD,GAAwBA,EAAxB,GACC,sBAAsB9yC,CADvB,GAEC,uBAAuB/D,CAFxB,GAGC,iBAJJ,CAPA,GAYA+D,KACG,sBAAsBA,CAAtB,GACC,sBAAsB/D,CADvB,GAEC,gBAHJ,CAZA,GAgBAA,KAAK,CAAC,oBAAD,GAAwBA,CAAxB,GAA4B,iBAAjC,CAjBFvsD;MAmBAA,KAAKs2B,QAAL,IACE,CAAC,eAAD,GACA6sE,MACG,CAAC,oBAAD,GAAwBA,EAAxB,GACC,sBAAsBC,EADvB,GAEC,qBAAqB9yC,CAFtB,GAGC,sBAAsB/D,CAHvB,GAIC,iBALJ,CADA,GAOA62C,MACG,CAAC,mBAAD,GAAuBA,EAAvB,GACC,uBAAuB9yC,CADxB,GAEC,uBAAuB/D,CAFxB,GAGC,iBAJJ,CAPA,GAYA+D,KACG,sBAAsBA,CAAtB,GACC,sBAAsB/D,CADvB,GAEC,iBAHJ,CAZA,GAgBAA,KAAK,CAAC,oBAAD,GAAwBA,CAAxB,GAA4B,gBAAjC,CAjBFvsD;IA/CoB;;IAmEtB,OAAOA,KAAK8iB,QAAL9iB,CAAc,CAAdA,EAAiBs2B,MAAjBt2B,CAAP;EA9hBY;;EAiiBdsjG,mBAAmBtjG,IAAnB,EAAyB;IACvB,IAAIswD,CAAJ,EAAO6yC,EAAP,EAAWC,EAAX;;IACA,KAAK,IAAIthG,IAAI,CAAR,EAAWZ,SAASlB,KAAKkB,MAA9B,EAAsCY,IAAIZ,MAA1C,EAAkDY,KAAK,CAAvD,EAA0D;MACxDwuD,IAAItwD,KAAK8B,CAAL,CAAJwuD;MACA6yC,KAAKnjG,KAAK8B,IAAI,CAAT,CAALqhG;MACAC,KAAKpjG,KAAK8B,IAAI,CAAT,CAALshG;MACApjG,KAAK8B,CAAL,IAAU,UAAUwuD,CAAV,GAAc,QAAQ8yC,EAAhCpjG;MACAA,KAAK8B,IAAI,CAAT,IAAc,UAAUwuD,CAAV,GAAc,QAAQ6yC,EAAtB,GAA2B,QAAQC,EAAjDpjG;MACAA,KAAK8B,IAAI,CAAT,IAAc,UAAUwuD,CAAV,GAAc,QAAQ6yC,EAApCnjG;IARqB;;IAWvB,OAAOA,IAAP;EA5iBY;;EA+iBdujG,kBAAkBvjG,IAAlB,EAAwB;IACtB,IAAIomB,CAAJ,EAAOhB,CAAP,EAAU8uB,CAAV,EAAaqY,CAAb;IACA,IAAIj2B,SAAS,CAAb;;IACA,KAAK,IAAIx0B,IAAI,CAAR,EAAWZ,SAASlB,KAAKkB,MAA9B,EAAsCY,IAAIZ,MAA1C,EAAkDY,KAAK,CAAvD,EAA0D;MACxDskB,IAAIpmB,KAAK8B,CAAL,CAAJskB;MACAhB,IAAIplB,KAAK8B,IAAI,CAAT,CAAJsjB;MACA8uB,IAAIl0C,KAAK8B,IAAI,CAAT,CAAJoyC;MACAqY,IAAIvsD,KAAK8B,IAAI,CAAT,CAAJyqD;MAEAvsD,KAAKs2B,QAAL,IACE,MACAlQ,KACG,CAAC,sBAAD,GAA0BA,CAA1B,GACC,wBAAwBhB,CADzB,GAEC,wBAAwB8uB,CAFzB,GAGC,uBAAuBqY,CAHxB,GAIC,kBALJ,CADA,GAOAnnC,KACG,0BAA0BA,CAA1B,GACC,yBAAyB8uB,CAD1B,GAEC,wBAAwBqY,CAFzB,GAGC,mBAJJ,CAPA,GAYArY,KACG,CAAC,sBAAD,GAA0BA,CAA1B,GACC,wBAAwBqY,CADzB,GAEC,kBAHJ,CAZA,GAgBAA,KAAK,wBAAwBA,CAAxB,GAA4B,kBAAjC,CAjBFvsD;MAmBAA,KAAKs2B,QAAL,IACE,MACAlQ,KACG,yBAAyBA,CAAzB,GACC,uBAAuBhB,CADxB,GAEC,yBAAyB8uB,CAF1B,GAGC,wBAAwBqY,CAHzB,GAIC,kBALJ,CADA,GAOAnnC,KACG,CAAC,sBAAD,GAA0BA,CAA1B,GACC,wBAAwB8uB,CADzB,GAEC,wBAAwBqY,CAFzB,GAGC,kBAJJ,CAPA,GAYArY,KACG,yBAAyBA,CAAzB,GACC,yBAAyBqY,CAD1B,GAEC,mBAHJ,CAZA,GAgBAA,KAAK,wBAAwBA,CAAxB,GAA4B,kBAAjC,CAjBFvsD;MAmBAA,KAAKs2B,QAAL,IACE,MACAlQ,KACG,0BAA0BA,CAA1B,GACC,yBAAyBhB,CAD1B,GAEC,wBAAwB8uB,CAFzB,GAGC,2BAA2BqY,CAH5B,GAIC,mBALJ,CADA,GAOAnnC,KACG,yBAAyBA,CAAzB,GACC,wBAAwB8uB,CADzB,GAEC,wBAAwBqY,CAFzB,GAGC,mBAJJ,CAPA,GAYArY,KACG,uBAAuBA,CAAvB,GACC,wBAAwBqY,CADzB,GAEC,kBAHJ,CAZA,GAgBAA,KAAK,wBAAwBA,CAAxB,GAA4B,kBAAjC,CAjBFvsD;IA/CoB;;IAmEtB,OAAOA,KAAK8iB,QAAL9iB,CAAc,CAAdA,EAAiBs2B,MAAjBt2B,CAAP;EAlnBY;;EAqnBdk/D,QAAQ;IAAElmB,KAAF;IAAS+F,MAAT;IAAiB85C,WAAW,KAA5B;IAAmCS,cAAc;EAAjD,CAAR,EAAkE;IAUhE,IAAI,KAAKmJ,aAAL,GAAqB,CAAzB,EAA4B;MAC1B,MAAM,IAAIlJ,SAAJ,CAAc,wBAAd,CAAN;IAX8D;;IAchE,MAAMv5F,OAAO,KAAK0iG,uBAAL,CAA6B1pD,KAA7B,EAAoC+F,MAApC,EAA4Cu6C,WAA5C,CAAb;;IAEA,IAAI,KAAKmJ,aAAL,KAAuB,CAAvB,IAA4B5J,QAAhC,EAA0C;MACxC,MAAMlU,aAAa3kF,KAAKkB,MAAxB;MACA,MAAMsiG,UAAU,IAAIlwD,iBAAJ,CAAsBqxC,aAAa,CAAnC,CAAhB;MACA,IAAIruD,SAAS,CAAb;;MACA,KAAK,IAAIx0B,IAAI,CAAb,EAAgBA,IAAI6iF,UAApB,EAAgC7iF,GAAhC,EAAqC;QACnC,MAAM2hG,YAAYzjG,KAAK8B,CAAL,CAAlB;QACA0hG,QAAQltE,QAAR,IAAoBmtE,SAApBD;QACAA,QAAQltE,QAAR,IAAoBmtE,SAApBD;QACAA,QAAQltE,QAAR,IAAoBmtE,SAApBD;MARsC;;MAUxC,OAAOA,OAAP;IAVF,OAWO,IAAI,KAAKf,aAAL,KAAuB,CAAvB,IAA4B,KAAKQ,wBAArC,EAA+D;MACpE,OAAO,KAAKC,gBAAL,CAAsBljG,IAAtB,CAAP;IADK,OAEA,IAAI,KAAKyiG,aAAL,KAAuB,CAA3B,EAA8B;MACnC,IAAI,KAAKQ,wBAAT,EAAmC;QACjC,IAAIpK,QAAJ,EAAc;UACZ,OAAO,KAAKwK,iBAAL,CAAuBrjG,IAAvB,CAAP;QAF+B;;QAIjC,OAAO,KAAKsjG,kBAAL,CAAwBtjG,IAAxB,CAAP;MAJF,OAKO,IAAI64F,QAAJ,EAAc;QACnB,OAAO,KAAK0K,iBAAL,CAAuBvjG,IAAvB,CAAP;MAPiC;IA7B2B;;IAuChE,OAAOA,IAAP;EA5pBY;;AAAA;;;;;;;;;;;;;;;AC5tBhB;;AACA;;AACA;;AAMA,MAAM06E,SAAN,SAAwBlkB,2BAAxB,CAAqC;EACnC33D,YAAYuI,MAAZ,EAAoB4yE,WAApB,EAAiC7kC,MAAjC,EAAyC;IACvC,MAAM6kC,WAAN;IAEA,KAAK5yE,MAAL,GAAcA,MAAd;IACA,KAAKmmB,IAAL,GAAYnmB,OAAOmmB,IAAnB;IACA,KAAKysD,WAAL,GAAmBA,WAAnB;IACA,KAAK7kC,MAAL,GAAcA,MAAd;EAPiC;;EAUnC,IAAI9tC,KAAJ,GAAY;IAEV,OAAOka,kBAAO,IAAPA,EAAa,OAAbA,EAAsB,KAAKna,MAAL,CAAY6qB,QAAZ,CAAqB,KAAK+nD,WAA1B,CAAtBz4D,CAAP;EAZiC;;EAenCq8D,aAAaK,SAAb,EAAwB,CAfW;;EAoBnCT,YAAY;IACV,IAAI,KAAKG,GAAT,EAAc;MACZ;IAFQ;;IAIV,MAAM+lB,WAAW,IAAIC,aAAJ,EAAjB;IACAD,SAASlkE,KAATkkE,CAAe,KAAKr8F,KAApBq8F;IAEA,MAAM1qD,QAAQ0qD,SAAS1qD,KAAvB;IACA,MAAM+F,SAAS2kD,SAAS3kD,MAAxB;IACA,MAAM0iD,kBAAkBiC,SAASjC,eAAjC;IACA,MAAMmC,YAAYF,SAASG,KAATH,CAAexiG,MAAjC;;IACA,IAAI0iG,cAAc,CAAlB,EAAqB;MACnB,KAAK3/E,MAAL,GAAcy/E,SAASG,KAATH,CAAe,CAAfA,EAAkB7/C,KAAhC;IADF,OAEO;MACL,MAAM7jD,OAAO,IAAIszC,iBAAJ,CAAsB0F,QAAQ+F,MAAR/F,GAAiByoD,eAAvC,CAAb;;MAEA,KAAK,IAAIl1C,IAAI,CAAb,EAAgBA,IAAIq3C,SAApB,EAA+Br3C,GAA/B,EAAoC;QAClC,MAAMu3C,iBAAiBJ,SAASG,KAATH,CAAen3C,CAAfm3C,CAAvB;QACA,MAAMK,YAAYD,eAAe9qD,KAAjC;QACA,MAAMgrD,aAAaF,eAAe/kD,MAAlC;QACA,MAAMklD,WAAWH,eAAeI,IAAhC;QACA,MAAMC,UAAUL,eAAeM,GAA/B;QAEA,MAAMr9C,MAAM+8C,eAAejgD,KAA3B;QACA,IAAIwgD,cAAc,CAAlB;QACA,IAAIC,eAAgB,SAAQH,OAARnrD,GAAkBirD,QAAlB,IAA8BxC,eAAlD;QACA,MAAM8C,aAAavrD,QAAQyoD,eAA3B;QACA,MAAM+C,cAAcT,YAAYtC,eAAhC;;QAEA,KAAK,IAAIr5E,IAAI,CAAb,EAAgBA,IAAI47E,UAApB,EAAgC57E,GAAhC,EAAqC;UACnC,MAAMq8E,WAAW19C,IAAIjkC,QAAJikC,CAAas9C,WAAbt9C,EAA0Bs9C,cAAcG,WAAxCz9C,CAAjB;UACA/mD,KAAKujB,GAALvjB,CAASykG,QAATzkG,EAAmBskG,YAAnBtkG;UACAqkG,eAAeG,WAAfH;UACAC,gBAAgBC,UAAhBD;QAjBgC;MAH/B;;MAuBL,KAAKrgF,MAAL,GAAcjkB,IAAd;IApCQ;;IAsCV,KAAK0qE,YAAL,GAAoB,KAAKzmD,MAAL,CAAY/iB,MAAhC;IACA,KAAKy8E,GAAL,GAAW,IAAX;EA3DiC;;AAAA;;;;;;;;;;;;;;;ACRrC;;AACA;;AACA;;AAEA,MAAM+mB,QAAN,SAAuB5iF,mBAAvB,CAAqC;EACnCjjB,YAAYshB,GAAZ,EAAiB;IACf,MAAO,cAAaA,GAAd,EAAN,EAA2B,UAA3B;EAFiC;;AAAA;;AAOrC,MAAMwkF,mBAAmB;EACvBC,IAAI,CADmB;EAEvBC,IAAI,CAFmB;EAGvBC,IAAI,CAHmB;EAIvBC,IAAI;AAJmB,CAAzB;;AAOA,MAAMpB,QAAN,CAAe;EACb9kG,cAAc;IACZ,KAAKmmG,oBAAL,GAA4B,KAA5B;EAFW;;EAKbxlE,MAAMx/B,IAAN,EAAY;IACV,MAAMilG,OAAO1uE,4BAAWv2B,IAAXu2B,EAAiB,CAAjBA,CAAb;;IAEA,IAAI0uE,SAAS,MAAb,EAAqB;MACnB,KAAKC,eAAL,CAAqBllG,IAArB,EAA2B,CAA3B,EAA8BA,KAAKkB,MAAnC;MACA;IALQ;;IAQV,MAAMA,SAASlB,KAAKkB,MAApB;IACA,IAAIywB,WAAW,CAAf;;IACA,OAAOA,WAAWzwB,MAAlB,EAA0B;MACxB,IAAIikG,aAAa,CAAjB;MACA,IAAIC,OAAO5uE,4BAAWx2B,IAAXw2B,EAAiB7E,QAAjB6E,CAAX;MACA,MAAM6uE,OAAO7uE,4BAAWx2B,IAAXw2B,EAAiB7E,WAAW,CAA5B6E,CAAb;MACA7E,YAAYwzE,UAAZxzE;;MACA,IAAIyzE,SAAS,CAAb,EAAgB;QAGdA,OACE5uE,4BAAWx2B,IAAXw2B,EAAiB7E,QAAjB6E,IAA6B,UAA7BA,GACAA,4BAAWx2B,IAAXw2B,EAAiB7E,WAAW,CAA5B6E,CAFF4uE;QAGAzzE,YAAY,CAAZA;QACAwzE,cAAc,CAAdA;MAZsB;;MAcxB,IAAIC,SAAS,CAAb,EAAgB;QACdA,OAAOlkG,SAASywB,QAATzwB,GAAoBikG,UAA3BC;MAfsB;;MAiBxB,IAAIA,OAAOD,UAAX,EAAuB;QACrB,MAAM,IAAIT,QAAJ,CAAa,wBAAb,CAAN;MAlBsB;;MAoBxB,MAAM/f,aAAaygB,OAAOD,UAA1B;MACA,IAAIG,iBAAiB,IAArB;;MACA,QAAQD,IAAR;QACE,KAAK,UAAL;UACEC,iBAAiB,KAAjBA;UACA;;QACF,KAAK,UAAL;UAEE,MAAMC,SAASvlG,KAAK2xB,QAAL,CAAf;;UACA,IAAI4zE,WAAW,CAAf,EAAkB;YAEhB,MAAMC,aAAahvE,4BAAWx2B,IAAXw2B,EAAiB7E,WAAW,CAA5B6E,CAAnB;;YACA,QAAQgvE,UAAR;cACE,KAAK,EAAL;cACA,KAAK,EAAL;cACA,KAAK,EAAL;gBACE;;cACF;gBACE5gG,gBAAK,wBAAwB4gG,UAA7B5gG;gBACA;YAPJ;UAHF,OAYO,IAAI2gG,WAAW,CAAf,EAAkB;YACvBx5F,gBAAK,2BAALA;UAhBJ;;UAkBE;;QACF,KAAK,UAAL;UACE,KAAKm5F,eAAL,CAAqBllG,IAArB,EAA2B2xB,QAA3B,EAAqCA,WAAWgzD,UAAhD;UACA;;QACF,KAAK,UAAL;UACE,IAAInuD,4BAAWx2B,IAAXw2B,EAAiB7E,QAAjB6E,MAA+B,UAAnC,EAA+C;YAC7C5xB,gBAAK,uBAALA;UAFJ;;UAIE;;QAEF,KAAK,UAAL;QACA,KAAK,UAAL;QACA,KAAK,UAAL;QACA,KAAK,UAAL;QACA,KAAK,UAAL;UACE;;QACF;UACE,MAAM6gG,aAAaljF,OAAOC,YAAPD,CAChB8iF,QAAQ,EAARA,GAAc,IADE9iF,EAEhB8iF,QAAQ,EAARA,GAAc,IAFE9iF,EAGhB8iF,QAAQ,CAARA,GAAa,IAHG9iF,EAIjB8iF,OAAO,IAJU9iF,CAAnB;UAMA3d,gBAAM,2BAA0BygG,IAAK,KAAII,UAAW,IAApD7gG;UACA;MA9CJ;;MAgDA,IAAI0gG,cAAJ,EAAoB;QAClB3zE,YAAYgzD,UAAZhzD;MAvEsB;IAVhB;EALC;;EA2Fb+zE,qBAAqBt+F,MAArB,EAA6B;IAC3B,IAAIu+F,UAAUv+F,OAAO4qB,OAAP5qB,EAAd;;IACA,OAAOu+F,WAAW,CAAlB,EAAqB;MACnB,MAAMC,UAAUD,OAAhB;MACAA,UAAUv+F,OAAO4qB,OAAP5qB,EAAVu+F;MACA,MAAM7/F,OAAQ8/F,WAAW,CAAXA,GAAgBD,OAA9B;;MAEA,IAAI7/F,SAAS,MAAb,EAAqB;QACnBsB,OAAOkzB,IAAPlzB,CAAY,CAAZA;QACA,MAAMy+F,OAAOz+F,OAAO+yB,QAAP/yB,OAAsB,CAAnC;QACA,MAAM0+F,OAAO1+F,OAAO+yB,QAAP/yB,OAAsB,CAAnC;QACA,MAAM2+F,QAAQ3+F,OAAO+yB,QAAP/yB,OAAsB,CAApC;QACA,MAAM4+F,QAAQ5+F,OAAO+yB,QAAP/yB,OAAsB,CAApC;QACAA,OAAOkzB,IAAPlzB,CAAY,EAAZA;QACA,MAAM6+F,OAAO7+F,OAAO4yB,SAAP5yB,EAAb;QACA,KAAK4xC,KAAL,GAAa6sD,OAAOE,KAApB;QACA,KAAKhnD,MAAL,GAAc+mD,OAAOE,KAArB;QACA,KAAKvE,eAAL,GAAuBwE,IAAvB;QAEA,KAAKnN,gBAAL,GAAwB,CAAxB;QACA;MAlBiB;IAFM;;IAuB3B,MAAM,IAAI4L,QAAJ,CAAa,oCAAb,CAAN;EAlHW;;EAqHbQ,gBAAgBllG,IAAhB,EAAsBuM,KAAtB,EAA6BujB,GAA7B,EAAkC;IAChC,MAAMo2E,UAAU,EAAhB;IACA,IAAIC,eAAe,KAAnB;;IACA,IAAI;MACF,IAAIx0E,WAAWplB,KAAf;;MACA,OAAOolB,WAAW,CAAXA,GAAe7B,GAAtB,EAA2B;QACzB,MAAMhqB,OAAOywB,4BAAWv2B,IAAXu2B,EAAiB5E,QAAjB4E,CAAb;QACA5E,YAAY,CAAZA;QAEA,IAAIzwB,SAAS,CAAb;QAAA,IACEknB,CADF;QAAA,IAEEg+E,IAFF;QAAA,IAGEC,MAHF;QAAA,IAIEC,SAJF;QAAA,IAKEC,eALF;QAAA,IAMEC,IANF;;QAOA,QAAQ1gG,IAAR;UACE,KAAK,MAAL;YACEogG,QAAQO,UAARP,GAAqB,IAArBA;YACA;;UACF,KAAK,MAAL;YACE;;UACF,KAAK,MAAL;YACEhlG,SAASq1B,4BAAWv2B,IAAXu2B,EAAiB5E,QAAjB4E,CAATr1B;YACA,MAAMwlG,MAAM,EAAZ;YACAA,IAAIb,IAAJa,GAAWlwE,4BAAWx2B,IAAXw2B,EAAiB7E,WAAW,CAA5B6E,CAAXkwE;YACAA,IAAIZ,IAAJY,GAAWlwE,4BAAWx2B,IAAXw2B,EAAiB7E,WAAW,CAA5B6E,CAAXkwE;YACAA,IAAIX,KAAJW,GAAYlwE,4BAAWx2B,IAAXw2B,EAAiB7E,WAAW,EAA5B6E,CAAZkwE;YACAA,IAAIV,KAAJU,GAAYlwE,4BAAWx2B,IAAXw2B,EAAiB7E,WAAW,EAA5B6E,CAAZkwE;YACAA,IAAIC,KAAJD,GAAYlwE,4BAAWx2B,IAAXw2B,EAAiB7E,WAAW,EAA5B6E,CAAZkwE;YACAA,IAAIE,KAAJF,GAAYlwE,4BAAWx2B,IAAXw2B,EAAiB7E,WAAW,EAA5B6E,CAAZkwE;YACAA,IAAIG,MAAJH,GAAalwE,4BAAWx2B,IAAXw2B,EAAiB7E,WAAW,EAA5B6E,CAAbkwE;YACAA,IAAII,MAAJJ,GAAalwE,4BAAWx2B,IAAXw2B,EAAiB7E,WAAW,EAA5B6E,CAAbkwE;YACA,MAAMjF,kBAAkBlrE,4BAAWv2B,IAAXu2B,EAAiB5E,WAAW,EAA5B4E,CAAxB;YACAmwE,IAAIT,IAAJS,GAAWjF,eAAXiF;YACA,MAAMhM,aAAa,EAAnB;YACAtyE,IAAIuJ,WAAW,EAAfvJ;;YACA,KAAK,IAAItmB,IAAI,CAAb,EAAgBA,IAAI2/F,eAApB,EAAqC3/F,GAArC,EAA0C;cACxC,MAAMi1B,YAAY;gBAChB0kE,WAAY,MAAKrzE,CAAL,IAAU,IAAV,IAAkB,CADd;gBAEhB2+E,UAAU,CAAC,EAAE/mG,KAAKooB,CAAL,IAAU,IAAZ,CAFK;gBAGhB4+E,OAAOhnG,KAAKooB,IAAI,CAAT,CAHS;gBAIhB6+E,OAAOjnG,KAAKooB,IAAI,CAAT;cAJS,CAAlB;cAMAA,KAAK,CAALA;cACA8+E,6BAA6BnwE,SAA7B,EAAwC2vE,GAAxC;cACAhM,WAAWz5F,IAAXy5F,CAAgB3jE,SAAhB2jE;YAxBJ;;YA0BEwL,QAAQiB,GAARjB,GAAcQ,GAAdR;YACAA,QAAQxL,UAARwL,GAAqBxL,UAArBwL;YACAkB,mBAAmBlB,OAAnB,EAA4BxL,UAA5B;YACAwL,QAAQmB,GAARnB,GAAc,EAAdA;YACAA,QAAQoB,GAARpB,GAAc,EAAdA;YACA;;UACF,KAAK,MAAL;YACEhlG,SAASq1B,4BAAWv2B,IAAXu2B,EAAiB5E,QAAjB4E,CAATr1B;YACA,MAAMqmG,MAAM,EAAZ;YACAn/E,IAAIuJ,WAAW,CAAfvJ;YACAg+E,OAAOpmG,KAAKooB,GAAL,CAAPg+E;;YACA,QAAQA,OAAO,IAAf;cACE,KAAK,CAAL;gBACEE,YAAY,CAAZA;gBACAC,kBAAkB,IAAlBA;gBACA;;cACF,KAAK,CAAL;gBACED,YAAY,EAAZA;gBACAC,kBAAkB,KAAlBA;gBACA;;cACF,KAAK,CAAL;gBACED,YAAY,EAAZA;gBACAC,kBAAkB,IAAlBA;gBACA;;cACF;gBACE,MAAM,IAAI/mG,KAAJ,CAAU,wBAAwB4mG,IAAlC,CAAN;YAdJ;;YAgBAmB,IAAIC,cAAJD,GAAqBjB,cAAc,CAAnCiB;YACAA,IAAIhB,eAAJgB,GAAsBhB,eAAtBgB;YACAA,IAAIE,SAAJF,GAAgBnB,QAAQ,CAAxBmB;YACAlB,SAAS,EAATA;;YACA,OAAOj+E,IAAIlnB,SAASywB,QAApB,EAA8B;cAC5B,MAAM+1E,QAAQ,EAAd;;cACA,IAAIpB,cAAc,CAAlB,EAAqB;gBACnBoB,MAAMC,OAAND,GAAgB1nG,KAAKooB,GAAL,KAAa,CAA7Bs/E;gBACAA,MAAME,EAANF,GAAW,CAAXA;cAFF,OAGO;gBACLA,MAAMC,OAAND,GAAgB1nG,KAAKooB,CAAL,KAAW,CAA3Bs/E;gBACAA,MAAME,EAANF,GAAa,MAAKt/E,CAAL,IAAU,GAAV,KAAkB,CAAlB,GAAuBpoB,KAAKooB,IAAI,CAAT,CAApCs/E;gBACAt/E,KAAK,CAALA;cAR0B;;cAU5Bi+E,OAAOplG,IAAPolG,CAAYqB,KAAZrB;YAnCJ;;YAqCEkB,IAAIM,MAAJN,GAAalB,MAAbkB;;YACA,IAAIrB,QAAQO,UAAZ,EAAwB;cACtBP,QAAQ4B,GAAR5B,GAAcqB,GAAdrB;YADF,OAEO;cACLA,QAAQ6B,WAAR7B,CAAoB4B,GAApB5B,GAA0BqB,GAA1BrB;cACAA,QAAQ6B,WAAR7B,CAAoBmB,GAApBnB,GAA0B,EAA1BA;YA1CJ;;YA4CE;;UACF,KAAK,MAAL;YACEhlG,SAASq1B,4BAAWv2B,IAAXu2B,EAAiB5E,QAAjB4E,CAATr1B;YACA,MAAM8mG,MAAM,EAAZ;YACA5/E,IAAIuJ,WAAW,CAAfvJ;YACA,IAAI6/E,IAAJ;;YACA,IAAI/B,QAAQiB,GAARjB,CAAYD,IAAZC,GAAmB,GAAvB,EAA4B;cAC1B+B,OAAOjoG,KAAKooB,GAAL,CAAP6/E;YADF,OAEO;cACLA,OAAO1xE,4BAAWv2B,IAAXu2B,EAAiBnO,CAAjBmO,CAAP0xE;cACA7/E,KAAK,CAALA;YATJ;;YAWEg+E,OAAOpmG,KAAKooB,GAAL,CAAPg+E;;YACA,QAAQA,OAAO,IAAf;cACE,KAAK,CAAL;gBACEE,YAAY,CAAZA;gBACAC,kBAAkB,IAAlBA;gBACA;;cACF,KAAK,CAAL;gBACED,YAAY,EAAZA;gBACAC,kBAAkB,KAAlBA;gBACA;;cACF,KAAK,CAAL;gBACED,YAAY,EAAZA;gBACAC,kBAAkB,IAAlBA;gBACA;;cACF;gBACE,MAAM,IAAI/mG,KAAJ,CAAU,wBAAwB4mG,IAAlC,CAAN;YAdJ;;YAgBA4B,IAAIR,cAAJQ,GAAqB1B,cAAc,CAAnC0B;YACAA,IAAIzB,eAAJyB,GAAsBzB,eAAtByB;YACAA,IAAIP,SAAJO,GAAgB5B,QAAQ,CAAxB4B;YACA3B,SAAS,EAATA;;YACA,OAAOj+E,IAAIlnB,SAASywB,QAApB,EAA8B;cAC5B,MAAM+1E,QAAQ,EAAd;;cACA,IAAIpB,cAAc,CAAlB,EAAqB;gBACnBoB,MAAMC,OAAND,GAAgB1nG,KAAKooB,GAAL,KAAa,CAA7Bs/E;gBACAA,MAAME,EAANF,GAAW,CAAXA;cAFF,OAGO;gBACLA,MAAMC,OAAND,GAAgB1nG,KAAKooB,CAAL,KAAW,CAA3Bs/E;gBACAA,MAAME,EAANF,GAAa,MAAKt/E,CAAL,IAAU,GAAV,KAAkB,CAAlB,GAAuBpoB,KAAKooB,IAAI,CAAT,CAApCs/E;gBACAt/E,KAAK,CAALA;cAR0B;;cAU5Bi+E,OAAOplG,IAAPolG,CAAYqB,KAAZrB;YA1CJ;;YA4CE2B,IAAIH,MAAJG,GAAa3B,MAAb2B;;YACA,IAAI9B,QAAQO,UAAZ,EAAwB;cACtBP,QAAQmB,GAARnB,CAAY+B,IAAZ/B,IAAoB8B,GAApB9B;YADF,OAEO;cACLA,QAAQ6B,WAAR7B,CAAoBmB,GAApBnB,CAAwB+B,IAAxB/B,IAAgC8B,GAAhC9B;YAhDJ;;YAkDE;;UACF,KAAK,MAAL;YACEhlG,SAASq1B,4BAAWv2B,IAAXu2B,EAAiB5E,QAAjB4E,CAATr1B;YACA,MAAMgnG,MAAM,EAAZ;YACA9/E,IAAIuJ,WAAW,CAAfvJ;YACA,MAAM+/E,OAAOnoG,KAAKooB,GAAL,CAAb;YACA8/E,IAAIE,+BAAJF,GAAsC,CAAC,EAAEC,OAAO,CAAT,CAAvCD;YACAA,IAAIG,aAAJH,GAAoB,CAAC,EAAEC,OAAO,CAAT,CAArBD;YACAA,IAAII,aAAJJ,GAAoB,CAAC,EAAEC,OAAO,CAAT,CAArBD;YACAA,IAAIK,gBAAJL,GAAuBloG,KAAKooB,GAAL,CAAvB8/E;YACAA,IAAIM,WAAJN,GAAkB3xE,4BAAWv2B,IAAXu2B,EAAiBnO,CAAjBmO,CAAlB2xE;YACA9/E,KAAK,CAALA;YACA8/E,IAAIO,0BAAJP,GAAiCloG,KAAKooB,GAAL,CAAjC8/E;YAEAA,IAAIQ,wBAAJR,GAA+BloG,KAAKooB,GAAL,CAA/B8/E;YACAA,IAAIS,GAAJT,GAAW,MAAK9/E,GAAL,IAAY,GAAZ,IAAmB,CAA9B8/E;YACAA,IAAIU,GAAJV,GAAW,MAAK9/E,GAAL,IAAY,GAAZ,IAAmB,CAA9B8/E;YACA,MAAMW,aAAa7oG,KAAKooB,GAAL,CAAnB;YACA8/E,IAAIY,+BAAJZ,GAAsC,CAAC,EAAEW,aAAa,CAAf,CAAvCX;YACAA,IAAIa,yBAAJb,GAAgC,CAAC,EAAEW,aAAa,CAAf,CAAjCX;YACAA,IAAIc,2BAAJd,GAAkC,CAAC,EAAEW,aAAa,CAAf,CAAnCX;YACAA,IAAIe,gBAAJf,GAAuB,CAAC,EAAEW,aAAa,CAAf,CAAxBX;YACAA,IAAIgB,sBAAJhB,GAA6B,CAAC,EAAEW,aAAa,EAAf,CAA9BX;YACAA,IAAIiB,sBAAJjB,GAA6B,CAAC,EAAEW,aAAa,EAAf,CAA9BX;YACAA,IAAIkB,wBAAJlB,GAA+BloG,KAAKooB,GAAL,CAA/B8/E;;YACA,IAAIA,IAAIE,+BAAR,EAAyC;cACvC,MAAMiB,iBAAiB,EAAvB;;cACA,OAAOjhF,IAAIlnB,SAASywB,QAApB,EAA8B;gBAC5B,MAAM23E,gBAAgBtpG,KAAKooB,GAAL,CAAtB;gBACAihF,eAAepoG,IAAfooG,CAAoB;kBAClBE,KAAKD,gBAAgB,GADH;kBAElBE,KAAKF,iBAAiB;gBAFJ,CAApBD;cAJqC;;cASvCnB,IAAImB,cAAJnB,GAAqBmB,cAArBnB;YAjCJ;;YAmCE,MAAMuB,cAAc,EAApB;;YACA,IAAIvB,IAAIY,+BAAR,EAAyC;cACvCW,YAAYxoG,IAAZwoG,CAAiB,iCAAjBA;YArCJ;;YAuCE,IAAIvB,IAAIc,2BAAR,EAAqC;cACnCS,YAAYxoG,IAAZwoG,CAAiB,6BAAjBA;YAxCJ;;YA0CE,IAAIvB,IAAIe,gBAAR,EAA0B;cACxBQ,YAAYxoG,IAAZwoG,CAAiB,kBAAjBA;YA3CJ;;YA6CE,IAAIvB,IAAIgB,sBAAR,EAAgC;cAC9BO,YAAYxoG,IAAZwoG,CAAiB,wBAAjBA;YA9CJ;;YAgDE,IAAIA,YAAYvoG,MAAZuoG,GAAqB,CAAzB,EAA4B;cAC1BtD,eAAe,IAAfA;cACAvhG,gBAAM,iCAAgC6kG,YAAYtoG,IAAZsoG,CAAiB,IAAjBA,CAAuB,IAA7D7kG;YAlDJ;;YAoDE,IAAIshG,QAAQO,UAAZ,EAAwB;cACtBP,QAAQwD,GAARxD,GAAcgC,GAAdhC;YADF,OAEO;cACLA,QAAQ6B,WAAR7B,CAAoBwD,GAApBxD,GAA0BgC,GAA1BhC;cACAA,QAAQ6B,WAAR7B,CAAoBoB,GAApBpB,GAA0B,EAA1BA;YAxDJ;;YA0DE;;UACF,KAAK,MAAL;YACEhlG,SAASq1B,4BAAWv2B,IAAXu2B,EAAiB5E,QAAjB4E,CAATr1B;YACAslG,OAAO,EAAPA;YACAA,KAAK35D,KAAL25D,GAAajwE,4BAAWv2B,IAAXu2B,EAAiB5E,WAAW,CAA5B4E,CAAbiwE;YACAA,KAAKtlG,MAALslG,GAAchwE,4BAAWx2B,IAAXw2B,EAAiB7E,WAAW,CAA5B6E,CAAdgwE;YACAA,KAAKxO,OAALwO,GAAeA,KAAKtlG,MAALslG,GAAc70E,QAAd60E,GAAyB,CAAxCA;YACAA,KAAKmD,SAALnD,GAAiBxmG,KAAK2xB,WAAW,CAAhB,CAAjB60E;YACAA,KAAKoD,UAALpD,GAAkBxmG,KAAK2xB,WAAW,CAAhB,CAAlB60E;YAEAN,QAAQO,UAARP,GAAqB,KAArBA;;YACA,IAAIM,KAAKmD,SAALnD,KAAmB,CAAvB,EAA0B;cAExBA,KAAKkD,GAALlD,GAAWN,QAAQwD,GAAnBlD;cACAA,KAAKc,GAALd,GAAWN,QAAQoB,GAARpB,CAAYtgF,KAAZsgF,CAAkB,CAAlBA,CAAXM;cACAA,KAAKsB,GAALtB,GAAWN,QAAQ4B,GAAnBtB;cACAA,KAAKa,GAALb,GAAWN,QAAQmB,GAARnB,CAAYtgF,KAAZsgF,CAAkB,CAAlBA,CAAXM;YAfJ;;YAiBEN,QAAQ6B,WAAR7B,GAAsBM,IAAtBN;YACA;;UACF,KAAK,MAAL;YACEM,OAAON,QAAQ6B,WAAfvB;;YACA,IAAIA,KAAKmD,SAALnD,KAAmB,CAAvB,EAA0B;cACxBqD,eAAe3D,OAAf,EAAwBM,KAAK35D,KAA7B;cACAi9D,aAAa5D,OAAb;YAJJ;;YAQEhlG,SAASslG,KAAKxO,OAALwO,GAAe70E,QAAxBzwB;YACA6oG,iBAAiB7D,OAAjB,EAA0BlmG,IAA1B,EAAgC2xB,QAAhC,EAA0CzwB,MAA1C;YACA;;UACF,KAAK,MAAL;YACE0D,gBAAK,uDAALA;;UAEF,KAAK,MAAL;UACA,KAAK,MAAL;UACA,KAAK,MAAL;UACA,KAAK,MAAL;YACE1D,SAASq1B,4BAAWv2B,IAAXu2B,EAAiB5E,QAAjB4E,CAATr1B;YAEA;;UACF;YACE,MAAM,IAAI1B,KAAJ,CAAU,8BAA8BsG,KAAKS,QAALT,CAAc,EAAdA,CAAxC,CAAN;QA1OJ;;QA4OA6rB,YAAYzwB,MAAZywB;MAzPA;IAAJ,EA2PE,OAAOrsB,CAAP,EAAU;MACV,IAAI6gG,gBAAgB,KAAKnB,oBAAzB,EAA+C;QAC7C,MAAM,IAAIN,QAAJ,CAAap/F,EAAEgB,OAAf,CAAN;MADF,OAEO;QACL1B,gBAAM,iCAAgCU,EAAEgB,OAAQ,IAAhD1B;MAJQ;IA9PoB;;IAqQhC,KAAKi/F,KAAL,GAAamG,oBAAoB9D,OAApB,CAAb;IACA,KAAKltD,KAAL,GAAaktD,QAAQiB,GAARjB,CAAYL,IAAZK,GAAmBA,QAAQiB,GAARjB,CAAYH,KAA5C;IACA,KAAKhnD,MAAL,GAAcmnD,QAAQiB,GAARjB,CAAYJ,IAAZI,GAAmBA,QAAQiB,GAARjB,CAAYF,KAA7C;IACA,KAAKvE,eAAL,GAAuByE,QAAQiB,GAARjB,CAAYD,IAAnC;EA7XW;;AAAA;;;;AAiYf,SAASiB,4BAAT,CAAsCnwE,SAAtC,EAAiD2vE,GAAjD,EAAsD;EAEpD3vE,UAAU3P,EAAV2P,GAAe5xB,KAAK4rB,IAAL5rB,CAAUuhG,IAAIX,KAAJW,GAAY3vE,UAAUiwE,KAAhC7hG,CAAf4xB;EACAA,UAAUzP,EAAVyP,GAAe5xB,KAAK4rB,IAAL5rB,CAAUuhG,IAAIb,IAAJa,GAAW3vE,UAAUiwE,KAA/B7hG,CAAf4xB;EACAA,UAAU1P,EAAV0P,GAAe5xB,KAAK4rB,IAAL5rB,CAAUuhG,IAAIV,KAAJU,GAAY3vE,UAAUkwE,KAAhC9hG,CAAf4xB;EACAA,UAAUxP,EAAVwP,GAAe5xB,KAAK4rB,IAAL5rB,CAAUuhG,IAAIZ,IAAJY,GAAW3vE,UAAUkwE,KAA/B9hG,CAAf4xB;EACAA,UAAUiiB,KAAVjiB,GAAkBA,UAAUzP,EAAVyP,GAAeA,UAAU3P,EAA3C2P;EACAA,UAAUgoB,MAAVhoB,GAAmBA,UAAUxP,EAAVwP,GAAeA,UAAU1P,EAA5C0P;AAzaF;;AA2aA,SAASqwE,kBAAT,CAA4BlB,OAA5B,EAAqCxL,UAArC,EAAiD;EAC/C,MAAMgM,MAAMR,QAAQiB,GAApB;EAEA,MAAMtD,QAAQ,EAAd;EACA,IAAI2C,IAAJ;EACA,MAAMyD,YAAY9kG,KAAK4rB,IAAL5rB,CAAW,KAAI0gG,IAAJa,GAAWA,IAAIG,MAAf,IAAyBH,IAAIC,KAAxCxhG,CAAlB;EACA,MAAM+kG,YAAY/kG,KAAK4rB,IAAL5rB,CAAW,KAAI2gG,IAAJY,GAAWA,IAAII,MAAf,IAAyBJ,IAAIE,KAAxCzhG,CAAlB;;EACA,KAAK,IAAIgnD,IAAI,CAAb,EAAgBA,IAAI+9C,SAApB,EAA+B/9C,GAA/B,EAAoC;IAClC,KAAK,IAAIhnC,IAAI,CAAb,EAAgBA,IAAI8kF,SAApB,EAA+B9kF,GAA/B,EAAoC;MAClCqhF,OAAO,EAAPA;MACAA,KAAK2D,GAAL3D,GAAWrhG,KAAKC,GAALD,CAASuhG,IAAIG,MAAJH,GAAavhF,IAAIuhF,IAAIC,KAA9BxhG,EAAqCuhG,IAAIX,KAAzC5gG,CAAXqhG;MACAA,KAAK4D,GAAL5D,GAAWrhG,KAAKC,GAALD,CAASuhG,IAAII,MAAJJ,GAAav6C,IAAIu6C,IAAIE,KAA9BzhG,EAAqCuhG,IAAIV,KAAzC7gG,CAAXqhG;MACAA,KAAK6D,GAAL7D,GAAWrhG,KAAKyd,GAALzd,CAASuhG,IAAIG,MAAJH,GAAc,KAAI,CAAJ,IAASA,IAAIC,KAApCxhG,EAA2CuhG,IAAIb,IAA/C1gG,CAAXqhG;MACAA,KAAK8D,GAAL9D,GAAWrhG,KAAKyd,GAALzd,CAASuhG,IAAII,MAAJJ,GAAc,KAAI,CAAJ,IAASA,IAAIE,KAApCzhG,EAA2CuhG,IAAIZ,IAA/C3gG,CAAXqhG;MACAA,KAAKxtD,KAALwtD,GAAaA,KAAK6D,GAAL7D,GAAWA,KAAK2D,GAA7B3D;MACAA,KAAKznD,MAALynD,GAAcA,KAAK8D,GAAL9D,GAAWA,KAAK4D,GAA9B5D;MACAA,KAAK9L,UAAL8L,GAAkB,EAAlBA;MACA3C,MAAM5iG,IAAN4iG,CAAW2C,IAAX3C;IAVgC;EAPW;;EAoB/CqC,QAAQrC,KAARqC,GAAgBrC,KAAhBqC;EAEA,MAAMzE,kBAAkBiF,IAAIT,IAA5B;;EACA,KAAK,IAAInkG,IAAI,CAAR,EAAWiJ,KAAK02F,eAArB,EAAsC3/F,IAAIiJ,EAA1C,EAA8CjJ,GAA9C,EAAmD;IACjD,MAAMi1B,YAAY2jE,WAAW54F,CAAX,CAAlB;;IACA,KAAK,IAAIsmB,IAAI,CAAR,EAAW6rB,KAAK4vD,MAAM3iG,MAA3B,EAAmCknB,IAAI6rB,EAAvC,EAA2C7rB,GAA3C,EAAgD;MAC9C,MAAMmiF,gBAAgB,EAAtB;MACA/D,OAAO3C,MAAMz7E,CAAN,CAAPo+E;MACA+D,cAAcC,IAAdD,GAAqBplG,KAAK4rB,IAAL5rB,CAAUqhG,KAAK2D,GAAL3D,GAAWzvE,UAAUiwE,KAA/B7hG,CAArBolG;MACAA,cAAcE,IAAdF,GAAqBplG,KAAK4rB,IAAL5rB,CAAUqhG,KAAK4D,GAAL5D,GAAWzvE,UAAUkwE,KAA/B9hG,CAArBolG;MACAA,cAAcG,IAAdH,GAAqBplG,KAAK4rB,IAAL5rB,CAAUqhG,KAAK6D,GAAL7D,GAAWzvE,UAAUiwE,KAA/B7hG,CAArBolG;MACAA,cAAcI,IAAdJ,GAAqBplG,KAAK4rB,IAAL5rB,CAAUqhG,KAAK8D,GAAL9D,GAAWzvE,UAAUkwE,KAA/B9hG,CAArBolG;MACAA,cAAcvxD,KAAduxD,GAAsBA,cAAcG,IAAdH,GAAqBA,cAAcC,IAAzDD;MACAA,cAAcxrD,MAAdwrD,GAAuBA,cAAcI,IAAdJ,GAAqBA,cAAcE,IAA1DF;MACA/D,KAAK9L,UAAL8L,CAAgB1kG,CAAhB0kG,IAAqB+D,aAArB/D;IAX+C;EAvBJ;AA3ajD;;AAidA,SAASoE,mBAAT,CAA6B1E,OAA7B,EAAsCnvE,SAAtC,EAAiDpS,CAAjD,EAAoD;EAClD,MAAMkmF,WAAW9zE,UAAU+zE,qBAA3B;EACA,MAAMnkD,SAAS,EAAf;;EACA,IAAI,CAACkkD,SAASzC,+BAAd,EAA+C;IAC7CzhD,OAAO4iD,GAAP5iD,GAAa,EAAbA;IACAA,OAAO6iD,GAAP7iD,GAAa,EAAbA;EAFF,OAGO;IACLA,OAAO4iD,GAAP5iD,GAAakkD,SAASxB,cAATwB,CAAwBlmF,CAAxBkmF,EAA2BtB,GAAxC5iD;IACAA,OAAO6iD,GAAP7iD,GAAakkD,SAASxB,cAATwB,CAAwBlmF,CAAxBkmF,EAA2BrB,GAAxC7iD;EARgD;;EAWlDA,OAAOokD,IAAPpkD,GACEhiC,IAAI,CAAJA,GACIxf,KAAKyd,GAALzd,CAAS0lG,SAASlC,GAAlBxjG,EAAuBwhD,OAAO4iD,GAAP5iD,GAAa,CAApCxhD,CADJwf,GAEIxf,KAAKyd,GAALzd,CAAS0lG,SAASlC,GAAlBxjG,EAAuBwhD,OAAO4iD,GAA9BpkG,CAHNwhD;EAIAA,OAAOqkD,IAAPrkD,GACEhiC,IAAI,CAAJA,GACIxf,KAAKyd,GAALzd,CAAS0lG,SAASjC,GAAlBzjG,EAAuBwhD,OAAO6iD,GAAP7iD,GAAa,CAApCxhD,CADJwf,GAEIxf,KAAKyd,GAALzd,CAAS0lG,SAASjC,GAAlBzjG,EAAuBwhD,OAAO6iD,GAA9BrkG,CAHNwhD;EAIA,OAAOA,MAAP;AApeF;;AAseA,SAASskD,cAAT,CAAwB/E,OAAxB,EAAiCgF,UAAjC,EAA6CC,UAA7C,EAAyD;EAEvD,MAAMC,gBAAgB,KAAKD,WAAW5B,GAAtC;EACA,MAAM8B,iBAAiB,KAAKF,WAAW3B,GAAvC;EAeA,MAAM8B,YAAYJ,WAAWK,QAAXL,KAAwB,CAA1C;EACA,MAAMM,yBAAyB,KAAML,WAAW5B,GAAX4B,IAAkBG,YAAY,CAAZ,GAAgB,CAAC,CAAnCH,CAArC;EACA,MAAMM,0BAA0B,KAAMN,WAAW3B,GAAX2B,IAAkBG,YAAY,CAAZ,GAAgB,CAAC,CAAnCH,CAAtC;EACA,MAAMO,mBACJR,WAAWS,IAAXT,GAAkBA,WAAWU,IAA7BV,GACI/lG,KAAK4rB,IAAL5rB,CAAU+lG,WAAWS,IAAXT,GAAkBE,aAA5BjmG,IACAA,KAAKosB,KAALpsB,CAAW+lG,WAAWU,IAAXV,GAAkBE,aAA7BjmG,CAFJ+lG,GAGI,CAJN;EAKA,MAAMW,mBACJX,WAAWY,IAAXZ,GAAkBA,WAAWa,IAA7Bb,GACI/lG,KAAK4rB,IAAL5rB,CAAU+lG,WAAWY,IAAXZ,GAAkBG,cAA5BlmG,IACAA,KAAKosB,KAALpsB,CAAW+lG,WAAWa,IAAXb,GAAkBG,cAA7BlmG,CAFJ+lG,GAGI,CAJN;EAKA,MAAMc,eAAeN,mBAAmBG,gBAAxC;EAEAX,WAAWe,kBAAXf,GAAgC;IAC9BE,aAD8B;IAE9BC,cAF8B;IAG9BK,gBAH8B;IAI9BG,gBAJ8B;IAK9BG,YAL8B;IAM9BR,sBAN8B;IAO9BC;EAP8B,CAAhCP;AAvgBF;;AAihBA,SAASgB,eAAT,CAAyBhG,OAAzB,EAAkCiG,OAAlC,EAA2ChB,UAA3C,EAAuD;EAErD,MAAMJ,OAAOI,WAAWJ,IAAxB;EACA,MAAMC,OAAOG,WAAWH,IAAxB;EACA,MAAMoB,iBAAiB,KAAKrB,IAA5B;EACA,MAAMsB,kBAAkB,KAAKrB,IAA7B;EACA,MAAMsB,OAAOH,QAAQI,IAARJ,IAAgBpB,IAA7B;EACA,MAAMyB,OAAOL,QAAQM,IAARN,IAAgBnB,IAA7B;EACA,MAAM0B,OAAQP,QAAQQ,IAARR,GAAeC,cAAfD,GAAgC,CAAhCA,IAAsCpB,IAApD;EACA,MAAM6B,OAAQT,QAAQU,IAARV,GAAeE,eAAfF,GAAiC,CAAjCA,IAAuCnB,IAArD;EACA,MAAMiB,qBAAqBE,QAAQjB,UAARiB,CAAmBF,kBAA9C;EACA,MAAMa,aAAa,EAAnB;EACA,MAAMC,YAAY,EAAlB;EACA,IAAIjrG,CAAJ,EAAOsmB,CAAP,EAAU4kF,SAAV,EAAqBC,cAArB;;EACA,KAAK7kF,IAAIokF,IAAT,EAAepkF,IAAIwkF,IAAnB,EAAyBxkF,GAAzB,EAA8B;IAC5B,KAAKtmB,IAAIwqG,IAAT,EAAexqG,IAAI4qG,IAAnB,EAAyB5qG,GAAzB,EAA8B;MAC5BkrG,YAAY;QACVE,KAAKprG,CADK;QAEVqrG,KAAK/kF,CAFK;QAGVmkF,MAAMH,iBAAiBtqG,CAHb;QAIV2qG,MAAMJ,kBAAkBjkF,CAJd;QAKVukF,MAAMP,kBAAkBtqG,IAAI,CAAtB,CALI;QAMV+qG,MAAMR,mBAAmBjkF,IAAI,CAAvB;MANI,CAAZ4kF;MASAA,UAAUI,KAAVJ,GAAkB7nG,KAAKC,GAALD,CAASgnG,QAAQI,IAAjBpnG,EAAuB6nG,UAAUT,IAAjCpnG,CAAlB6nG;MACAA,UAAUK,KAAVL,GAAkB7nG,KAAKC,GAALD,CAASgnG,QAAQM,IAAjBtnG,EAAuB6nG,UAAUP,IAAjCtnG,CAAlB6nG;MACAA,UAAUM,KAAVN,GAAkB7nG,KAAKyd,GAALzd,CAASgnG,QAAQQ,IAAjBxnG,EAAuB6nG,UAAUL,IAAjCxnG,CAAlB6nG;MACAA,UAAUO,KAAVP,GAAkB7nG,KAAKyd,GAALzd,CAASgnG,QAAQU,IAAjB1nG,EAAuB6nG,UAAUH,IAAjC1nG,CAAlB6nG;MAKA,MAAMQ,KAAKroG,KAAKosB,KAALpsB,CACR,WAAUioG,KAAVJ,GAAkBb,QAAQI,IAA1B,IACCN,mBAAmBT,sBAFZrmG,CAAX;MAIA,MAAMsoG,KAAKtoG,KAAKosB,KAALpsB,CACR,WAAUkoG,KAAVL,GAAkBb,QAAQM,IAA1B,IACCR,mBAAmBR,uBAFZtmG,CAAX;MAIA8nG,iBAAiBO,KAAKC,KAAKxB,mBAAmBP,gBAA9CuB;MAEAD,UAAUC,cAAVD,GAA2BC,cAA3BD;MACAA,UAAUU,WAAVV,GAAwBb,QAAQvhF,IAAhCoiF;MACAA,UAAUW,MAAVX,GAAmB,CAAnBA;;MAEA,IACEA,UAAUM,KAAVN,IAAmBA,UAAUI,KAA7BJ,IACAA,UAAUO,KAAVP,IAAmBA,UAAUK,KAF/B,EAGE;QACA;MApC0B;;MAsC5BP,WAAW7rG,IAAX6rG,CAAgBE,SAAhBF;MAEA,IAAIc,WAAWb,UAAUE,cAAV,CAAf;;MACA,IAAIW,aAAavrF,SAAjB,EAA4B;QAC1B,IAAIvgB,IAAI8rG,SAASC,MAAjB,EAAyB;UACvBD,SAASC,MAATD,GAAkB9rG,CAAlB8rG;QADF,OAEO,IAAI9rG,IAAI8rG,SAASE,MAAjB,EAAyB;UAC9BF,SAASE,MAATF,GAAkB9rG,CAAlB8rG;QAJwB;;QAM1B,IAAIxlF,IAAIwlF,SAASG,MAAjB,EAAyB;UACvBH,SAASC,MAATD,GAAkBxlF,CAAlBwlF;QADF,OAEO,IAAIxlF,IAAIwlF,SAASI,MAAjB,EAAyB;UAC9BJ,SAASI,MAATJ,GAAkBxlF,CAAlBwlF;QATwB;MAA5B,OAWO;QACLb,UAAUE,cAAV,IAA4BW,WAAW;UACrCC,QAAQ/rG,CAD6B;UAErCisG,QAAQ3lF,CAF6B;UAGrC0lF,QAAQhsG,CAH6B;UAIrCksG,QAAQ5lF;QAJ6B,CAAvC2kF;MArD0B;;MA4D5BC,UAAUY,QAAVZ,GAAqBY,QAArBZ;IA7D0B;EAduB;;EA8ErDb,QAAQ8B,mBAAR9B,GAA8B;IAC5BC,gBAAgBrB,IADY;IAE5BsB,iBAAiBrB,IAFW;IAG5BkD,kBAAkBxB,OAAOJ,IAAPI,GAAc,CAHJ;IAI5ByB,kBAAkBvB,OAAOJ,IAAPI,GAAc;EAJJ,CAA9BT;EAMAA,QAAQW,UAARX,GAAqBW,UAArBX;EACAA,QAAQY,SAARZ,GAAoBY,SAApBZ;AAtmBF;;AAwmBA,SAASiC,YAAT,CAAsBlD,UAAtB,EAAkC+B,cAAlC,EAAkDoB,WAAlD,EAA+D;EAC7D,MAAMC,qBAAqB,EAA3B;EAEA,MAAMC,WAAWrD,WAAWqD,QAA5B;;EAEA,KAAK,IAAIzsG,IAAI,CAAR,EAAWiJ,KAAKwjG,SAASrtG,MAA9B,EAAsCY,IAAIiJ,EAA1C,EAA8CjJ,GAA9C,EAAmD;IACjD,MAAMqqG,UAAUoC,SAASzsG,CAAT,CAAhB;IACA,MAAMgrG,aAAaX,QAAQW,UAA3B;;IACA,KAAK,IAAI1kF,IAAI,CAAR,EAAW6rB,KAAK64D,WAAW5rG,MAAhC,EAAwCknB,IAAI6rB,EAA5C,EAAgD7rB,GAAhD,EAAqD;MACnD,MAAM4kF,YAAYF,WAAW1kF,CAAX,CAAlB;;MACA,IAAI4kF,UAAUC,cAAVD,KAA6BC,cAAjC,EAAiD;QAC/C;MAHiD;;MAKnDqB,mBAAmBrtG,IAAnBqtG,CAAwBtB,SAAxBsB;IAR+C;EALU;;EAgB7D,OAAO;IACLD,WADK;IAELvB,YAAYwB;EAFP,CAAP;AAxnBF;;AA6nBA,SAASE,wCAAT,CAAkDtI,OAAlD,EAA2D;EACzD,MAAMQ,MAAMR,QAAQiB,GAApB;EACA,MAAMsH,YAAYvI,QAAQ6B,WAAR7B,CAAoBr5D,KAAtC;EACA,MAAM25D,OAAON,QAAQrC,KAARqC,CAAcuI,SAAdvI,CAAb;EACA,MAAMsC,cAAchC,KAAKkI,4BAALlI,CAAkCgC,WAAtD;EACA,MAAM/G,kBAAkBiF,IAAIT,IAA5B;EACA,IAAI0I,8BAA8B,CAAlC;;EACA,KAAK,IAAIxiD,IAAI,CAAb,EAAgBA,IAAIs1C,eAApB,EAAqCt1C,GAArC,EAA0C;IACxCwiD,8BAA8BxpG,KAAKC,GAALD,CAC5BwpG,2BAD4BxpG,EAE5BqhG,KAAK9L,UAAL8L,CAAgBr6C,CAAhBq6C,EAAmBsE,qBAAnBtE,CAAyCkC,wBAFbvjG,CAA9BwpG;EARuD;;EAczD,IAAIpgC,IAAI,CAAR;EAAA,IACE5pD,IAAI,CADN;EAAA,IAEE7iB,IAAI,CAFN;EAAA,IAGEyqD,IAAI,CAHN;;EAKA,KAAKqiD,UAAL,GAAkB,SAASC,mBAAT,GAA+B;IAE/C,OAAOtgC,IAAIi6B,WAAX,EAAwBj6B,GAAxB,EAA6B;MAC3B,OAAO5pD,KAAKgqF,2BAAZ,EAAyChqF,GAAzC,EAA8C;QAC5C,OAAO7iB,IAAI2/F,eAAX,EAA4B3/F,GAA5B,EAAiC;UAC/B,MAAMi1B,YAAYyvE,KAAK9L,UAAL8L,CAAgB1kG,CAAhB0kG,CAAlB;;UACA,IAAI7hF,IAAIoS,UAAU+zE,qBAAV/zE,CAAgC2xE,wBAAxC,EAAkE;YAChE;UAH6B;;UAM/B,MAAMwC,aAAan0E,UAAU+3E,WAAV/3E,CAAsBpS,CAAtBoS,CAAnB;UACA,MAAMi1E,eAAed,WAAWe,kBAAXf,CAA8Bc,YAAnD;;UACA,OAAOz/C,IAAIy/C,YAAX,GAA2B;YACzB,MAAM+C,SAASX,aAAalD,UAAb,EAAyB3+C,CAAzB,EAA4BgiB,CAA5B,CAAf;YACAhiB;YACA,OAAOwiD,MAAP;UAX6B;;UAa/BxiD,IAAI,CAAJA;QAd0C;;QAgB5CzqD,IAAI,CAAJA;MAjByB;;MAmB3B6iB,IAAI,CAAJA;IArB6C;;IAuB/C,MAAM,IAAI+/E,QAAJ,CAAa,gBAAb,CAAN;EAvBF;AAhpBF;;AA0qBA,SAASsK,wCAAT,CAAkD9I,OAAlD,EAA2D;EACzD,MAAMQ,MAAMR,QAAQiB,GAApB;EACA,MAAMsH,YAAYvI,QAAQ6B,WAAR7B,CAAoBr5D,KAAtC;EACA,MAAM25D,OAAON,QAAQrC,KAARqC,CAAcuI,SAAdvI,CAAb;EACA,MAAMsC,cAAchC,KAAKkI,4BAALlI,CAAkCgC,WAAtD;EACA,MAAM/G,kBAAkBiF,IAAIT,IAA5B;EACA,IAAI0I,8BAA8B,CAAlC;;EACA,KAAK,IAAIxiD,IAAI,CAAb,EAAgBA,IAAIs1C,eAApB,EAAqCt1C,GAArC,EAA0C;IACxCwiD,8BAA8BxpG,KAAKC,GAALD,CAC5BwpG,2BAD4BxpG,EAE5BqhG,KAAK9L,UAAL8L,CAAgBr6C,CAAhBq6C,EAAmBsE,qBAAnBtE,CAAyCkC,wBAFbvjG,CAA9BwpG;EARuD;;EAczD,IAAIhqF,IAAI,CAAR;EAAA,IACE4pD,IAAI,CADN;EAAA,IAEEzsE,IAAI,CAFN;EAAA,IAGEyqD,IAAI,CAHN;;EAKA,KAAKqiD,UAAL,GAAkB,SAASC,mBAAT,GAA+B;IAE/C,OAAOlqF,KAAKgqF,2BAAZ,EAAyChqF,GAAzC,EAA8C;MAC5C,OAAO4pD,IAAIi6B,WAAX,EAAwBj6B,GAAxB,EAA6B;QAC3B,OAAOzsE,IAAI2/F,eAAX,EAA4B3/F,GAA5B,EAAiC;UAC/B,MAAMi1B,YAAYyvE,KAAK9L,UAAL8L,CAAgB1kG,CAAhB0kG,CAAlB;;UACA,IAAI7hF,IAAIoS,UAAU+zE,qBAAV/zE,CAAgC2xE,wBAAxC,EAAkE;YAChE;UAH6B;;UAM/B,MAAMwC,aAAan0E,UAAU+3E,WAAV/3E,CAAsBpS,CAAtBoS,CAAnB;UACA,MAAMi1E,eAAed,WAAWe,kBAAXf,CAA8Bc,YAAnD;;UACA,OAAOz/C,IAAIy/C,YAAX,GAA2B;YACzB,MAAM+C,SAASX,aAAalD,UAAb,EAAyB3+C,CAAzB,EAA4BgiB,CAA5B,CAAf;YACAhiB;YACA,OAAOwiD,MAAP;UAX6B;;UAa/BxiD,IAAI,CAAJA;QAdyB;;QAgB3BzqD,IAAI,CAAJA;MAjB0C;;MAmB5CysE,IAAI,CAAJA;IArB6C;;IAuB/C,MAAM,IAAIm2B,QAAJ,CAAa,gBAAb,CAAN;EAvBF;AA7rBF;;AAutBA,SAASuK,wCAAT,CAAkD/I,OAAlD,EAA2D;EACzD,MAAMQ,MAAMR,QAAQiB,GAApB;EACA,MAAMsH,YAAYvI,QAAQ6B,WAAR7B,CAAoBr5D,KAAtC;EACA,MAAM25D,OAAON,QAAQrC,KAARqC,CAAcuI,SAAdvI,CAAb;EACA,MAAMsC,cAAchC,KAAKkI,4BAALlI,CAAkCgC,WAAtD;EACA,MAAM/G,kBAAkBiF,IAAIT,IAA5B;EACA,IAAI13B,CAAJ,EAAO5pD,CAAP,EAAUyB,CAAV,EAAajB,CAAb;EACA,IAAIwpF,8BAA8B,CAAlC;;EACA,KAAKvoF,IAAI,CAAT,EAAYA,IAAIq7E,eAAhB,EAAiCr7E,GAAjC,EAAsC;IACpC,MAAM2Q,YAAYyvE,KAAK9L,UAAL8L,CAAgBpgF,CAAhBogF,CAAlB;IACAmI,8BAA8BxpG,KAAKC,GAALD,CAC5BwpG,2BAD4BxpG,EAE5B4xB,UAAU+zE,qBAAV/zE,CAAgC2xE,wBAFJvjG,CAA9BwpG;EAVuD;;EAezD,MAAMO,yBAAyB,IAAI5sB,UAAJ,CAC7BqsB,8BAA8B,CADD,CAA/B;;EAGA,KAAKhqF,IAAI,CAAT,EAAYA,KAAKgqF,2BAAjB,EAA8C,EAAEhqF,CAAhD,EAAmD;IACjD,IAAIwqF,kBAAkB,CAAtB;;IACA,KAAK/oF,IAAI,CAAT,EAAYA,IAAIq7E,eAAhB,EAAiC,EAAEr7E,CAAnC,EAAsC;MACpC,MAAM0oF,cAActI,KAAK9L,UAAL8L,CAAgBpgF,CAAhBogF,EAAmBsI,WAAvC;;MACA,IAAInqF,IAAImqF,YAAY5tG,MAApB,EAA4B;QAC1BiuG,kBAAkBhqG,KAAKC,GAALD,CAChBgqG,eADgBhqG,EAEhB2pG,YAAYnqF,CAAZ,EAAesnF,kBAAf6C,CAAkC9C,YAFlB7mG,CAAlBgqG;MAHkC;IAFW;;IAWjDD,uBAAuBvqF,CAAvB,IAA4BwqF,eAA5BD;EA7BuD;;EA+BzD3gC,IAAI,CAAJA;EACA5pD,IAAI,CAAJA;EACAyB,IAAI,CAAJA;EACAjB,IAAI,CAAJA;;EAEA,KAAKypF,UAAL,GAAkB,SAASC,mBAAT,GAA+B;IAE/C,OAAOlqF,KAAKgqF,2BAAZ,EAAyChqF,GAAzC,EAA8C;MAC5C,OAAOQ,IAAI+pF,uBAAuBvqF,CAAvB,CAAX,EAAsCQ,GAAtC,EAA2C;QACzC,OAAOiB,IAAIq7E,eAAX,EAA4Br7E,GAA5B,EAAiC;UAC/B,MAAM2Q,YAAYyvE,KAAK9L,UAAL8L,CAAgBpgF,CAAhBogF,CAAlB;;UACA,IAAI7hF,IAAIoS,UAAU+zE,qBAAV/zE,CAAgC2xE,wBAAxC,EAAkE;YAChE;UAH6B;;UAK/B,MAAMwC,aAAan0E,UAAU+3E,WAAV/3E,CAAsBpS,CAAtBoS,CAAnB;UACA,MAAMi1E,eAAed,WAAWe,kBAAXf,CAA8Bc,YAAnD;;UACA,IAAI7mF,KAAK6mF,YAAT,EAAuB;YACrB;UAR6B;;UAU/B,OAAOz9B,IAAIi6B,WAAX,GAA0B;YACxB,MAAMuG,SAASX,aAAalD,UAAb,EAAyB/lF,CAAzB,EAA4BopD,CAA5B,CAAf;YACAA;YACA,OAAOwgC,MAAP;UAb6B;;UAe/BxgC,IAAI,CAAJA;QAhBuC;;QAkBzCnoD,IAAI,CAAJA;MAnB0C;;MAqB5CjB,IAAI,CAAJA;IAvB6C;;IAyB/C,MAAM,IAAIu/E,QAAJ,CAAa,gBAAb,CAAN;EAzBF;AA3vBF;;AAuxBA,SAAS0K,wCAAT,CAAkDlJ,OAAlD,EAA2D;EACzD,MAAMQ,MAAMR,QAAQiB,GAApB;EACA,MAAMsH,YAAYvI,QAAQ6B,WAAR7B,CAAoBr5D,KAAtC;EACA,MAAM25D,OAAON,QAAQrC,KAARqC,CAAcuI,SAAdvI,CAAb;EACA,MAAMsC,cAAchC,KAAKkI,4BAALlI,CAAkCgC,WAAtD;EACA,MAAM/G,kBAAkBiF,IAAIT,IAA5B;EACA,MAAMoD,iBAAiBgG,6BAA6B7I,IAA7B,CAAvB;EACA,MAAM8I,0BAA0BjG,cAAhC;EACA,IAAI96B,IAAI,CAAR;EAAA,IACE5pD,IAAI,CADN;EAAA,IAEEyB,IAAI,CAFN;EAAA,IAGEmpF,KAAK,CAHP;EAAA,IAIE3nD,KAAK,CAJP;;EAMA,KAAKgnD,UAAL,GAAkB,SAASC,mBAAT,GAA+B;IAE/C,OAAOjnD,KAAK0nD,wBAAwBE,UAApC,EAAgD5nD,IAAhD,EAAsD;MACpD,OAAO2nD,KAAKD,wBAAwBG,UAApC,EAAgDF,IAAhD,EAAsD;QACpD,OAAOnpF,IAAIq7E,eAAX,EAA4Br7E,GAA5B,EAAiC;UAC/B,MAAM2Q,YAAYyvE,KAAK9L,UAAL8L,CAAgBpgF,CAAhBogF,CAAlB;UACA,MAAMkC,2BACJ3xE,UAAU+zE,qBAAV/zE,CAAgC2xE,wBADlC;;UAEA,OAAO/jF,KAAK+jF,wBAAZ,EAAsC/jF,GAAtC,EAA2C;YACzC,MAAMumF,aAAan0E,UAAU+3E,WAAV/3E,CAAsBpS,CAAtBoS,CAAnB;YACA,MAAM24E,mBACJrG,eAAe3O,UAAf2O,CAA0BjjF,CAA1BijF,EAA6ByF,WAA7BzF,CAAyC1kF,CAAzC0kF,CADF;YAEA,MAAM98C,IAAIojD,wBACRJ,EADQ,EAER3nD,EAFQ,EAGR8nD,gBAHQ,EAIRJ,uBAJQ,EAKRpE,UALQ,CAAV;;YAOA,IAAI3+C,MAAM,IAAV,EAAgB;cACd;YAZuC;;YAczC,OAAOgiB,IAAIi6B,WAAX,GAA0B;cACxB,MAAMuG,SAASX,aAAalD,UAAb,EAAyB3+C,CAAzB,EAA4BgiB,CAA5B,CAAf;cACAA;cACA,OAAOwgC,MAAP;YAjBuC;;YAmBzCxgC,IAAI,CAAJA;UAvB6B;;UAyB/B5pD,IAAI,CAAJA;QA1BkD;;QA4BpDyB,IAAI,CAAJA;MA7BkD;;MA+BpDmpF,KAAK,CAALA;IAjC6C;;IAmC/C,MAAM,IAAI7K,QAAJ,CAAa,gBAAb,CAAN;EAnCF;AAryBF;;AA20BA,SAASkL,wCAAT,CAAkD1J,OAAlD,EAA2D;EACzD,MAAMQ,MAAMR,QAAQiB,GAApB;EACA,MAAMsH,YAAYvI,QAAQ6B,WAAR7B,CAAoBr5D,KAAtC;EACA,MAAM25D,OAAON,QAAQrC,KAARqC,CAAcuI,SAAdvI,CAAb;EACA,MAAMsC,cAAchC,KAAKkI,4BAALlI,CAAkCgC,WAAtD;EACA,MAAM/G,kBAAkBiF,IAAIT,IAA5B;EACA,MAAMoD,iBAAiBgG,6BAA6B7I,IAA7B,CAAvB;EACA,IAAIj4B,IAAI,CAAR;EAAA,IACE5pD,IAAI,CADN;EAAA,IAEEyB,IAAI,CAFN;EAAA,IAGEmpF,KAAK,CAHP;EAAA,IAIE3nD,KAAK,CAJP;;EAMA,KAAKgnD,UAAL,GAAkB,SAASC,mBAAT,GAA+B;IAE/C,OAAOzoF,IAAIq7E,eAAX,EAA4B,EAAEr7E,CAA9B,EAAiC;MAC/B,MAAM2Q,YAAYyvE,KAAK9L,UAAL8L,CAAgBpgF,CAAhBogF,CAAlB;MACA,MAAM8I,0BAA0BjG,eAAe3O,UAAf2O,CAA0BjjF,CAA1BijF,CAAhC;MACA,MAAMX,2BACJ3xE,UAAU+zE,qBAAV/zE,CAAgC2xE,wBADlC;;MAEA,OAAO9gD,KAAK0nD,wBAAwBE,UAApC,EAAgD5nD,IAAhD,EAAsD;QACpD,OAAO2nD,KAAKD,wBAAwBG,UAApC,EAAgDF,IAAhD,EAAsD;UACpD,OAAO5qF,KAAK+jF,wBAAZ,EAAsC/jF,GAAtC,EAA2C;YACzC,MAAMumF,aAAan0E,UAAU+3E,WAAV/3E,CAAsBpS,CAAtBoS,CAAnB;YACA,MAAM24E,mBAAmBJ,wBAAwBR,WAAxBQ,CAAoC3qF,CAApC2qF,CAAzB;YACA,MAAM/iD,IAAIojD,wBACRJ,EADQ,EAER3nD,EAFQ,EAGR8nD,gBAHQ,EAIRJ,uBAJQ,EAKRpE,UALQ,CAAV;;YAOA,IAAI3+C,MAAM,IAAV,EAAgB;cACd;YAXuC;;YAazC,OAAOgiB,IAAIi6B,WAAX,GAA0B;cACxB,MAAMuG,SAASX,aAAalD,UAAb,EAAyB3+C,CAAzB,EAA4BgiB,CAA5B,CAAf;cACAA;cACA,OAAOwgC,MAAP;YAhBuC;;YAkBzCxgC,IAAI,CAAJA;UAnBkD;;UAqBpD5pD,IAAI,CAAJA;QAtBkD;;QAwBpD4qF,KAAK,CAALA;MA7B6B;;MA+B/B3nD,KAAK,CAALA;IAjC6C;;IAmC/C,MAAM,IAAI88C,QAAJ,CAAa,gBAAb,CAAN;EAnCF;AAx1BF;;AA83BA,SAASiL,uBAAT,CACEE,OADF,EAEEC,OAFF,EAGEJ,gBAHF,EAIEK,sBAJF,EAKE7E,UALF,EAME;EACA,MAAM5nC,OAAOusC,UAAUE,uBAAuBC,QAA9C;EACA,MAAMzsC,OAAOusC,UAAUC,uBAAuBE,SAA9C;;EACA,IACE3sC,OAAOosC,iBAAiB12D,KAAxBsqB,KAAkC,CAAlCA,IACAC,OAAOmsC,iBAAiB3wD,MAAxBwkB,KAAmC,CAFrC,EAGE;IACA,OAAO,IAAP;EAPF;;EASA,MAAM2sC,wBACH3sC,OAAOmsC,iBAAiB12D,KAAxBuqB,GACD2nC,WAAWe,kBAAXf,CAA8BQ,gBAFhC;EAGA,OAAOpoC,OAAOosC,iBAAiB3wD,MAAxBukB,GAAiC4sC,qBAAxC;AAh5BF;;AAk5BA,SAASb,4BAAT,CAAsC7I,IAAtC,EAA4C;EAC1C,MAAM/E,kBAAkB+E,KAAK9L,UAAL8L,CAAgBtlG,MAAxC;EACA,IAAI8uG,WAAW/vF,OAAO40B,SAAtB;EACA,IAAIo7D,YAAYhwF,OAAO40B,SAAvB;EACA,IAAI46D,aAAa,CAAjB;EACA,IAAID,aAAa,CAAjB;EACA,MAAMW,mBAAmB,IAAItlG,KAAJ,CAAU42F,eAAV,CAAzB;;EACA,KAAK,IAAIr7E,IAAI,CAAb,EAAgBA,IAAIq7E,eAApB,EAAqCr7E,GAArC,EAA0C;IACxC,MAAM2Q,YAAYyvE,KAAK9L,UAAL8L,CAAgBpgF,CAAhBogF,CAAlB;IACA,MAAMkC,2BACJ3xE,UAAU+zE,qBAAV/zE,CAAgC2xE,wBADlC;IAEA,MAAM0H,oBAAoB,IAAIvlG,KAAJ,CAAU69F,2BAA2B,CAArC,CAA1B;IACA,IAAI2H,2BAA2BpwF,OAAO40B,SAAtC;IACA,IAAIy7D,4BAA4BrwF,OAAO40B,SAAvC;IACA,IAAI07D,6BAA6B,CAAjC;IACA,IAAIC,6BAA6B,CAAjC;IACA,IAAI5vD,QAAQ,CAAZ;;IACA,KAAK,IAAIj8B,IAAI+jF,wBAAb,EAAuC/jF,KAAK,CAA5C,EAA+C,EAAEA,CAAjD,EAAoD;MAClD,MAAMumF,aAAan0E,UAAU+3E,WAAV/3E,CAAsBpS,CAAtBoS,CAAnB;MACA,MAAM05E,yBACJ7vD,QAAQsqD,WAAWe,kBAAXf,CAA8BE,aADxC;MAEA,MAAMsF,0BACJ9vD,QAAQsqD,WAAWe,kBAAXf,CAA8BG,cADxC;MAEAgF,2BAA2BlrG,KAAKyd,GAALzd,CACzBkrG,wBADyBlrG,EAEzBsrG,sBAFyBtrG,CAA3BkrG;MAIAC,4BAA4BnrG,KAAKyd,GAALzd,CAC1BmrG,yBAD0BnrG,EAE1BurG,uBAF0BvrG,CAA5BmrG;MAIAC,6BAA6BprG,KAAKC,GAALD,CAC3BorG,0BAD2BprG,EAE3B+lG,WAAWe,kBAAXf,CAA8BQ,gBAFHvmG,CAA7BorG;MAIAC,6BAA6BrrG,KAAKC,GAALD,CAC3BqrG,0BAD2BrrG,EAE3B+lG,WAAWe,kBAAXf,CAA8BW,gBAFH1mG,CAA7BqrG;MAIAJ,kBAAkBzrF,CAAlB,IAAuB;QACrBq0B,OAAOy3D,sBADc;QAErB1xD,QAAQ2xD;MAFa,CAAvBN;MAIAxvD,UAAU,CAAVA;IApCsC;;IAsCxCovD,WAAW7qG,KAAKyd,GAALzd,CAAS6qG,QAAT7qG,EAAmBkrG,wBAAnBlrG,CAAX6qG;IACAC,YAAY9qG,KAAKyd,GAALzd,CAAS8qG,SAAT9qG,EAAoBmrG,yBAApBnrG,CAAZ8qG;IACAR,aAAatqG,KAAKC,GAALD,CAASsqG,UAATtqG,EAAqBorG,0BAArBprG,CAAbsqG;IACAD,aAAarqG,KAAKC,GAALD,CAASqqG,UAATrqG,EAAqBqrG,0BAArBrrG,CAAbqqG;IACAW,iBAAiB/pF,CAAjB,IAAsB;MACpB0oF,aAAasB,iBADO;MAEpBJ,UAAUK,wBAFU;MAGpBJ,WAAWK,yBAHS;MAIpBb,YAAYc,0BAJQ;MAKpBf,YAAYgB;IALQ,CAAtBL;EAjDwC;;EAyD1C,OAAO;IACLzV,YAAYyV,gBADP;IAELH,QAFK;IAGLC,SAHK;IAILR,UAJK;IAKLD;EALK,CAAP;AA38BF;;AAm9BA,SAAS1F,YAAT,CAAsB5D,OAAtB,EAA+B;EAC7B,MAAMQ,MAAMR,QAAQiB,GAApB;EACA,MAAMsH,YAAYvI,QAAQ6B,WAAR7B,CAAoBr5D,KAAtC;EACA,MAAM25D,OAAON,QAAQrC,KAARqC,CAAcuI,SAAdvI,CAAb;EACA,MAAMzE,kBAAkBiF,IAAIT,IAA5B;;EAEA,KAAK,IAAI7/E,IAAI,CAAb,EAAgBA,IAAIq7E,eAApB,EAAqCr7E,GAArC,EAA0C;IACxC,MAAM2Q,YAAYyvE,KAAK9L,UAAL8L,CAAgBpgF,CAAhBogF,CAAlB;IACA,MAAMkC,2BACJ3xE,UAAU+zE,qBAAV/zE,CAAgC2xE,wBADlC;IAGA,MAAMoG,cAAc,EAApB;IACA,MAAMP,WAAW,EAAjB;;IACA,KAAK,IAAI5pF,IAAI,CAAb,EAAgBA,KAAK+jF,wBAArB,EAA+C/jF,GAA/C,EAAoD;MAClD,MAAMgsF,mBAAmB/F,oBAAoB1E,OAApB,EAA6BnvE,SAA7B,EAAwCpS,CAAxC,CAAzB;MACA,MAAMumF,aAAa,EAAnB;MACA,MAAMtqD,QAAQ,KAAM8nD,2BAA2B/jF,CAA/C;MACAumF,WAAWU,IAAXV,GAAkB/lG,KAAK4rB,IAAL5rB,CAAU4xB,UAAUyzE,IAAVzzE,GAAiB6pB,KAA3Bz7C,CAAlB+lG;MACAA,WAAWa,IAAXb,GAAkB/lG,KAAK4rB,IAAL5rB,CAAU4xB,UAAU0zE,IAAV1zE,GAAiB6pB,KAA3Bz7C,CAAlB+lG;MACAA,WAAWS,IAAXT,GAAkB/lG,KAAK4rB,IAAL5rB,CAAU4xB,UAAU2zE,IAAV3zE,GAAiB6pB,KAA3Bz7C,CAAlB+lG;MACAA,WAAWY,IAAXZ,GAAkB/lG,KAAK4rB,IAAL5rB,CAAU4xB,UAAU4zE,IAAV5zE,GAAiB6pB,KAA3Bz7C,CAAlB+lG;MACAA,WAAWK,QAAXL,GAAsBvmF,CAAtBumF;MACAD,eAAe/E,OAAf,EAAwBgF,UAAxB,EAAoCyF,gBAApC;MACA7B,YAAY7tG,IAAZ6tG,CAAiB5D,UAAjB4D;MAEA,IAAI3C,OAAJ;;MACA,IAAIxnF,MAAM,CAAV,EAAa;QAEXwnF,UAAU,EAAVA;QACAA,QAAQvhF,IAARuhF,GAAe,IAAfA;QACAA,QAAQI,IAARJ,GAAehnG,KAAK4rB,IAAL5rB,CAAU4xB,UAAUyzE,IAAVzzE,GAAiB6pB,KAA3Bz7C,CAAfgnG;QACAA,QAAQM,IAARN,GAAehnG,KAAK4rB,IAAL5rB,CAAU4xB,UAAU0zE,IAAV1zE,GAAiB6pB,KAA3Bz7C,CAAfgnG;QACAA,QAAQQ,IAARR,GAAehnG,KAAK4rB,IAAL5rB,CAAU4xB,UAAU2zE,IAAV3zE,GAAiB6pB,KAA3Bz7C,CAAfgnG;QACAA,QAAQU,IAARV,GAAehnG,KAAK4rB,IAAL5rB,CAAU4xB,UAAU4zE,IAAV5zE,GAAiB6pB,KAA3Bz7C,CAAfgnG;QACAA,QAAQjB,UAARiB,GAAqBjB,UAArBiB;QACAD,gBAAgBhG,OAAhB,EAAyBiG,OAAzB,EAAkCwE,gBAAlC;QACApC,SAASttG,IAATstG,CAAcpC,OAAdoC;QACArD,WAAWqD,QAAXrD,GAAsB,CAACiB,OAAD,CAAtBjB;MAXF,OAYO;QACL,MAAM0F,SAAS,KAAMlI,2BAA2B/jF,CAA3B+jF,GAA+B,CAApD;QACA,MAAMmI,qBAAqB,EAA3B;QAEA1E,UAAU,EAAVA;QACAA,QAAQvhF,IAARuhF,GAAe,IAAfA;QACAA,QAAQI,IAARJ,GAAehnG,KAAK4rB,IAAL5rB,CAAU4xB,UAAUyzE,IAAVzzE,GAAiB65E,MAAjB75E,GAA0B,GAApC5xB,CAAfgnG;QACAA,QAAQM,IAARN,GAAehnG,KAAK4rB,IAAL5rB,CAAU4xB,UAAU0zE,IAAV1zE,GAAiB65E,MAA3BzrG,CAAfgnG;QACAA,QAAQQ,IAARR,GAAehnG,KAAK4rB,IAAL5rB,CAAU4xB,UAAU2zE,IAAV3zE,GAAiB65E,MAAjB75E,GAA0B,GAApC5xB,CAAfgnG;QACAA,QAAQU,IAARV,GAAehnG,KAAK4rB,IAAL5rB,CAAU4xB,UAAU4zE,IAAV5zE,GAAiB65E,MAA3BzrG,CAAfgnG;QACAA,QAAQjB,UAARiB,GAAqBjB,UAArBiB;QACAD,gBAAgBhG,OAAhB,EAAyBiG,OAAzB,EAAkCwE,gBAAlC;QACApC,SAASttG,IAATstG,CAAcpC,OAAdoC;QACAsC,mBAAmB5vG,IAAnB4vG,CAAwB1E,OAAxB0E;QAEA1E,UAAU,EAAVA;QACAA,QAAQvhF,IAARuhF,GAAe,IAAfA;QACAA,QAAQI,IAARJ,GAAehnG,KAAK4rB,IAAL5rB,CAAU4xB,UAAUyzE,IAAVzzE,GAAiB65E,MAA3BzrG,CAAfgnG;QACAA,QAAQM,IAARN,GAAehnG,KAAK4rB,IAAL5rB,CAAU4xB,UAAU0zE,IAAV1zE,GAAiB65E,MAAjB75E,GAA0B,GAApC5xB,CAAfgnG;QACAA,QAAQQ,IAARR,GAAehnG,KAAK4rB,IAAL5rB,CAAU4xB,UAAU2zE,IAAV3zE,GAAiB65E,MAA3BzrG,CAAfgnG;QACAA,QAAQU,IAARV,GAAehnG,KAAK4rB,IAAL5rB,CAAU4xB,UAAU4zE,IAAV5zE,GAAiB65E,MAAjB75E,GAA0B,GAApC5xB,CAAfgnG;QACAA,QAAQjB,UAARiB,GAAqBjB,UAArBiB;QACAD,gBAAgBhG,OAAhB,EAAyBiG,OAAzB,EAAkCwE,gBAAlC;QACApC,SAASttG,IAATstG,CAAcpC,OAAdoC;QACAsC,mBAAmB5vG,IAAnB4vG,CAAwB1E,OAAxB0E;QAEA1E,UAAU,EAAVA;QACAA,QAAQvhF,IAARuhF,GAAe,IAAfA;QACAA,QAAQI,IAARJ,GAAehnG,KAAK4rB,IAAL5rB,CAAU4xB,UAAUyzE,IAAVzzE,GAAiB65E,MAAjB75E,GAA0B,GAApC5xB,CAAfgnG;QACAA,QAAQM,IAARN,GAAehnG,KAAK4rB,IAAL5rB,CAAU4xB,UAAU0zE,IAAV1zE,GAAiB65E,MAAjB75E,GAA0B,GAApC5xB,CAAfgnG;QACAA,QAAQQ,IAARR,GAAehnG,KAAK4rB,IAAL5rB,CAAU4xB,UAAU2zE,IAAV3zE,GAAiB65E,MAAjB75E,GAA0B,GAApC5xB,CAAfgnG;QACAA,QAAQU,IAARV,GAAehnG,KAAK4rB,IAAL5rB,CAAU4xB,UAAU4zE,IAAV5zE,GAAiB65E,MAAjB75E,GAA0B,GAApC5xB,CAAfgnG;QACAA,QAAQjB,UAARiB,GAAqBjB,UAArBiB;QACAD,gBAAgBhG,OAAhB,EAAyBiG,OAAzB,EAAkCwE,gBAAlC;QACApC,SAASttG,IAATstG,CAAcpC,OAAdoC;QACAsC,mBAAmB5vG,IAAnB4vG,CAAwB1E,OAAxB0E;QAEA3F,WAAWqD,QAAXrD,GAAsB2F,kBAAtB3F;MA9DgD;IAPZ;;IAwExCn0E,UAAU+3E,WAAV/3E,GAAwB+3E,WAAxB/3E;IACAA,UAAUw3E,QAAVx3E,GAAqBw3E,QAArBx3E;EA/E2B;;EAkF7B,MAAMwxE,mBAAmB/B,KAAKkI,4BAALlI,CAAkC+B,gBAA3D;;EACA,QAAQA,gBAAR;IACE,KAAK,CAAL;MACE/B,KAAKsK,eAALtK,GAAuB,IAAIgI,wCAAJ,CACrBtI,OADqB,CAAvBM;MAGA;;IACF,KAAK,CAAL;MACEA,KAAKsK,eAALtK,GAAuB,IAAIwI,wCAAJ,CACrB9I,OADqB,CAAvBM;MAGA;;IACF,KAAK,CAAL;MACEA,KAAKsK,eAALtK,GAAuB,IAAIyI,wCAAJ,CACrB/I,OADqB,CAAvBM;MAGA;;IACF,KAAK,CAAL;MACEA,KAAKsK,eAALtK,GAAuB,IAAI4I,wCAAJ,CACrBlJ,OADqB,CAAvBM;MAGA;;IACF,KAAK,CAAL;MACEA,KAAKsK,eAALtK,GAAuB,IAAIoJ,wCAAJ,CACrB1J,OADqB,CAAvBM;MAGA;;IACF;MACE,MAAM,IAAI9B,QAAJ,CAAc,iCAAgC6D,gBAAjC,EAAb,CAAN;EA3BJ;AAtiCF;;AAokCA,SAASwB,gBAAT,CAA0B7D,OAA1B,EAAmClmG,IAAnC,EAAyCs2B,MAAzC,EAAiDquD,UAAjD,EAA6D;EAC3D,IAAIhzD,WAAW,CAAf;EACA,IAAI1N,MAAJ;EAAA,IACE4wD,aAAa,CADf;EAAA,IAEEk8B,cAAc,KAFhB;;EAGA,SAASzrB,QAAT,CAAkBp9B,KAAlB,EAAyB;IACvB,OAAO2sB,aAAa3sB,KAApB,EAA2B;MACzB,MAAM39C,IAAIvK,KAAKs2B,SAAS3E,QAAd,CAAV;MACAA;;MACA,IAAIo/E,WAAJ,EAAiB;QACf9sF,SAAUA,UAAU,CAAVA,GAAe1Z,CAAzB0Z;QACA4wD,cAAc,CAAdA;QACAk8B,cAAc,KAAdA;MAHF,OAIO;QACL9sF,SAAUA,UAAU,CAAVA,GAAe1Z,CAAzB0Z;QACA4wD,cAAc,CAAdA;MATuB;;MAWzB,IAAItqE,MAAM,IAAV,EAAgB;QACdwmG,cAAc,IAAdA;MAZuB;IADJ;;IAgBvBl8B,cAAc3sB,KAAd2sB;IACA,OAAQ5wD,WAAW4wD,UAAX5wD,GAA2B,MAAKikC,KAAL,IAAc,CAAjD;EAtByD;;EAwB3D,SAAS8oD,iBAAT,CAA2BjsG,KAA3B,EAAkC;IAChC,IACE/E,KAAKs2B,SAAS3E,QAAT2E,GAAoB,CAAzB,MAAgC,IAAhCt2B,IACAA,KAAKs2B,SAAS3E,QAAd,MAA4B5sB,KAF9B,EAGE;MACAksG,UAAU,CAAV;MACA,OAAO,IAAP;IALF,OAMO,IACLjxG,KAAKs2B,SAAS3E,QAAd,MAA4B,IAA5B3xB,IACAA,KAAKs2B,SAAS3E,QAAT2E,GAAoB,CAAzB,MAAgCvxB,KAF3B,EAGL;MACAksG,UAAU,CAAV;MACA,OAAO,IAAP;IAZ8B;;IAchC,OAAO,KAAP;EAtCyD;;EAwC3D,SAASA,SAAT,CAAmB/oD,KAAnB,EAA0B;IACxBv2B,YAAYu2B,KAAZv2B;EAzCyD;;EA2C3D,SAASu/E,WAAT,GAAuB;IACrBr8B,aAAa,CAAbA;;IACA,IAAIk8B,WAAJ,EAAiB;MACfp/E;MACAo/E,cAAc,KAAdA;IAJmB;EA3CoC;;EAkD3D,SAASI,gBAAT,GAA4B;IAC1B,IAAI7rB,SAAS,CAAT,MAAgB,CAApB,EAAuB;MACrB,OAAO,CAAP;IAFwB;;IAI1B,IAAIA,SAAS,CAAT,MAAgB,CAApB,EAAuB;MACrB,OAAO,CAAP;IALwB;;IAO1B,IAAIvgF,QAAQugF,SAAS,CAAT,CAAZ;;IACA,IAAIvgF,QAAQ,CAAZ,EAAe;MACb,OAAOA,QAAQ,CAAf;IATwB;;IAW1BA,QAAQugF,SAAS,CAAT,CAARvgF;;IACA,IAAIA,QAAQ,EAAZ,EAAgB;MACd,OAAOA,QAAQ,CAAf;IAbwB;;IAe1BA,QAAQugF,SAAS,CAAT,CAARvgF;IACA,OAAOA,QAAQ,EAAf;EAlEyD;;EAoE3D,MAAM0pG,YAAYvI,QAAQ6B,WAAR7B,CAAoBr5D,KAAtC;EACA,MAAM25D,OAAON,QAAQrC,KAARqC,CAAcuI,SAAdvI,CAAb;EACA,MAAMmC,gBAAgBnC,QAAQwD,GAARxD,CAAYmC,aAAlC;EACA,MAAMC,gBAAgBpC,QAAQwD,GAARxD,CAAYoC,aAAlC;EACA,MAAMwI,kBAAkBtK,KAAKsK,eAA7B;;EACA,OAAOn/E,WAAWgzD,UAAlB,EAA8B;IAC5BusB;;IACA,IAAI7I,iBAAiB2I,kBAAkB,IAAlB,CAArB,EAA8C;MAE5CC,UAAU,CAAV;IAJ0B;;IAM5B,MAAMlC,SAAS+B,gBAAgBlC,UAAhBkC,EAAf;;IACA,IAAI,CAACxrB,SAAS,CAAT,CAAL,EAAkB;MAChB;IAR0B;;IAU5B,MAAM+oB,cAAcU,OAAOV,WAA3B;IAAA,MACE+C,QAAQ,EADV;IAEA,IAAIpE,SAAJ;;IACA,KAAK,IAAIlrG,IAAI,CAAR,EAAWiJ,KAAKgkG,OAAOjC,UAAPiC,CAAkB7tG,MAAvC,EAA+CY,IAAIiJ,EAAnD,EAAuDjJ,GAAvD,EAA4D;MAC1DkrG,YAAY+B,OAAOjC,UAAPiC,CAAkBjtG,CAAlBitG,CAAZ/B;MACA,IAAIY,WAAWZ,UAAUY,QAAzB;MACA,MAAMyD,kBAAkBrE,UAAUE,GAAVF,GAAgBY,SAASC,MAAjD;MACA,MAAMyD,eAAetE,UAAUG,GAAVH,GAAgBY,SAASG,MAA9C;MACA,IAAIwD,oBAAoB,KAAxB;MACA,IAAIC,qBAAqB,KAAzB;MACA,IAAIC,UAAJ,EAAgBC,iBAAhB;;MACA,IAAI1E,UAAU2E,QAAV3E,KAAuB3qF,SAA3B,EAAsC;QACpCkvF,oBAAoB,CAAC,CAACjsB,SAAS,CAAT,CAAtBisB;MADF,OAEO;QAEL3D,WAAWZ,UAAUY,QAArBA;QACA,IAAIgE,aAAJ;;QACA,IAAIhE,SAASgE,aAAThE,KAA2BvrF,SAA/B,EAA0C;UACxCuvF,gBAAgBhE,SAASgE,aAAzBA;QADF,OAEO;UAEL,MAAM54D,QAAQ40D,SAASE,MAATF,GAAkBA,SAASC,MAA3BD,GAAoC,CAAlD;UACA,MAAM7uD,SAAS6uD,SAASI,MAATJ,GAAkBA,SAASG,MAA3BH,GAAoC,CAAnD;UACAgE,gBAAgB,IAAIC,aAAJ,CAAkB74D,KAAlB,EAAyB+F,MAAzB,EAAiCsvD,WAAjC,CAAhBuD;UACAF,oBAAoB,IAAII,OAAJ,CAAY94D,KAAZ,EAAmB+F,MAAnB,CAApB2yD;UACA9D,SAASgE,aAAThE,GAAyBgE,aAAzBhE;UACAA,SAAS8D,iBAAT9D,GAA6B8D,iBAA7B9D;;UACA,KAAK,IAAIr/B,IAAI,CAAb,EAAgBA,IAAI8/B,WAApB,EAAiC9/B,GAAjC,EAAsC;YACpC,IAAI+W,SAAS,CAAT,MAAgB,CAApB,EAAuB;cACrB,MAAM,IAAIof,QAAJ,CAAa,kBAAb,CAAN;YAFkC;UARjC;QANF;;QAqBL,IAAIkN,cAAcr3E,KAAdq3E,CAAoBP,eAApBO,EAAqCN,YAArCM,EAAmDvD,WAAnDuD,CAAJ,EAAqE;UACnE,OAAO,IAAP,EAAa;YACX,IAAItsB,SAAS,CAAT,CAAJ,EAAiB;cACfmsB,aAAa,CAACG,cAAcG,SAAdH,EAAdH;;cACA,IAAIA,UAAJ,EAAgB;gBACdzE,UAAU2E,QAAV3E,GAAqB,IAArBA;gBACAuE,oBAAoBC,qBAAqB,IAAzCD;gBACA;cALa;YAAjB,OAOO;cACLK,cAAcI,cAAdJ,CAA6BvD,WAA7BuD;cACA;YAVS;UADsD;QArBhE;MAVmD;;MA+C1D,IAAI,CAACL,iBAAL,EAAwB;QACtB;MAhDwD;;MAkD1D,IAAIC,kBAAJ,EAAwB;QACtBE,oBAAoB9D,SAAS8D,iBAA7BA;QACAA,kBAAkBn3E,KAAlBm3E,CAAwBL,eAAxBK,EAAyCJ,YAAzCI;;QACA,OAAO,IAAP,EAAa;UACX,IAAIpsB,SAAS,CAAT,CAAJ,EAAiB;YACfmsB,aAAa,CAACC,kBAAkBK,SAAlBL,EAAdD;;YACA,IAAIA,UAAJ,EAAgB;cACd;YAHa;UAAjB,OAKO;YACLC,kBAAkBM,cAAlBN;UAPS;QAHS;;QAatB1E,UAAUiF,aAAVjF,GAA0B0E,kBAAkB3sG,KAA5CioG;MA/DwD;;MAiE1D,MAAMkF,eAAef,kBAArB;;MACA,OAAO7rB,SAAS,CAAT,CAAP,EAAoB;QAClB0nB,UAAUW,MAAVX;MAnEwD;;MAqE1D,MAAMmF,mBAAmB/7E,sBAAK87E,YAAL97E,CAAzB;MAEA,MAAM+xB,OACH,gBAAe,KAAKgqD,gBAApBD,GACGC,mBAAmB,CADtBD,GAEGC,gBAFH,IAEuBnF,UAAUW,MAHpC;MAIA,MAAMyE,kBAAkB9sB,SAASn9B,IAAT,CAAxB;MACAipD,MAAMnwG,IAANmwG,CAAW;QACTpE,SADS;QAETkF,YAFS;QAGTvtB,YAAYytB;MAHH,CAAXhB;IAzF0B;;IA+F5BF;;IACA,IAAI5I,aAAJ,EAAmB;MACjB0I,kBAAkB,IAAlB;IAjG0B;;IAmG5B,OAAOI,MAAMlwG,MAANkwG,GAAe,CAAtB,EAAyB;MACvB,MAAMiB,aAAajB,MAAMnxD,KAANmxD,EAAnB;MACApE,YAAYqF,WAAWrF,SAAvBA;;MACA,IAAIA,UAAUhtG,IAAVgtG,KAAmB3qF,SAAvB,EAAkC;QAChC2qF,UAAUhtG,IAAVgtG,GAAiB,EAAjBA;MAJqB;;MAMvBA,UAAUhtG,IAAVgtG,CAAe/rG,IAAf+rG,CAAoB;QAClBhtG,IADkB;QAElBuM,OAAO+pB,SAAS3E,QAFE;QAGlB7B,KAAKwG,SAAS3E,QAAT2E,GAAoB+7E,WAAW1tB,UAHlB;QAIlButB,cAAcG,WAAWH;MAJP,CAApBlF;MAMAr7E,YAAY0gF,WAAW1tB,UAAvBhzD;IA/G0B;EAzE6B;;EA2L3D,OAAOA,QAAP;AA/vCF;;AAiwCA,SAAS2gF,gBAAT,CACEC,YADF,EAEEC,UAFF,EAGEC,WAHF,EAIEtG,OAJF,EAKEuG,KALF,EAMEC,EANF,EAOEC,UAPF,EAQEzJ,sBARF,EASEJ,yBATF,EAUE;EACA,MAAM3hF,KAAK+kF,QAAQI,IAAnB;EACA,MAAMllF,KAAK8kF,QAAQM,IAAnB;EACA,MAAMzzD,QAAQmzD,QAAQQ,IAARR,GAAeA,QAAQI,IAArC;EACA,MAAMO,aAAaX,QAAQW,UAA3B;EACA,MAAM+F,QAAQ1G,QAAQvhF,IAARuhF,CAAatjF,MAAbsjF,CAAoB,CAApBA,MAA2B,GAA3BA,GAAiC,CAAjCA,GAAqC,CAAnD;EACA,MAAM2G,SAAS3G,QAAQvhF,IAARuhF,CAAatjF,MAAbsjF,CAAoB,CAApBA,MAA2B,GAA3BA,GAAiCqG,UAAjCrG,GAA8C,CAA7D;;EAEA,KAAK,IAAIrqG,IAAI,CAAR,EAAWiJ,KAAK+hG,WAAW5rG,MAAhC,EAAwCY,IAAIiJ,EAA5C,EAAgD,EAAEjJ,CAAlD,EAAqD;IACnD,MAAMkrG,YAAYF,WAAWhrG,CAAX,CAAlB;IACA,MAAMixG,aAAa/F,UAAUM,KAAVN,GAAkBA,UAAUI,KAA/C;IACA,MAAM4F,cAAchG,UAAUO,KAAVP,GAAkBA,UAAUK,KAAhD;;IACA,IAAI0F,eAAe,CAAfA,IAAoBC,gBAAgB,CAAxC,EAA2C;MACzC;IALiD;;IAOnD,IAAIhG,UAAUhtG,IAAVgtG,KAAmB3qF,SAAvB,EAAkC;MAChC;IARiD;;IAWnD,MAAM4wF,WAAW,IAAIC,QAAJ,CACfH,UADe,EAEfC,WAFe,EAGfhG,UAAUU,WAHK,EAIfV,UAAUiF,aAJK,EAKfU,EALe,CAAjB;IAOA,IAAIQ,wBAAwB,CAA5B;IAGA,MAAMnzG,OAAOgtG,UAAUhtG,IAAvB;IACA,IAAIs+B,cAAc,CAAlB;IAAA,IACE4zE,eAAe,CADjB;IAEA,IAAI9pF,CAAJ,EAAO6rB,EAAP,EAAWm/D,QAAX;;IACA,KAAKhrF,IAAI,CAAJA,EAAO6rB,KAAKj0C,KAAKkB,MAAtB,EAA8BknB,IAAI6rB,EAAlC,EAAsC7rB,GAAtC,EAA2C;MACzCgrF,WAAWpzG,KAAKooB,CAAL,CAAXgrF;MACA90E,eAAe80E,SAAStjF,GAATsjF,GAAeA,SAAS7mG,KAAvC+xB;MACA4zE,gBAAgBkB,SAASlB,YAAzBA;IA5BiD;;IA8BnD,MAAMmB,cAAc,IAAInzG,UAAJ,CAAeo+B,WAAf,CAApB;IACA,IAAI3M,WAAW,CAAf;;IACA,KAAKvJ,IAAI,CAAJA,EAAO6rB,KAAKj0C,KAAKkB,MAAtB,EAA8BknB,IAAI6rB,EAAlC,EAAsC7rB,GAAtC,EAA2C;MACzCgrF,WAAWpzG,KAAKooB,CAAL,CAAXgrF;MACA,MAAMvwF,QAAQuwF,SAASpzG,IAATozG,CAActwF,QAAdswF,CAAuBA,SAAS7mG,KAAhC6mG,EAAuCA,SAAStjF,GAAhDsjF,CAAd;MACAC,YAAY9vF,GAAZ8vF,CAAgBxwF,KAAhBwwF,EAAuB1hF,QAAvB0hF;MACA1hF,YAAY9O,MAAM3hB,MAAlBywB;IApCiD;;IAuCnD,MAAMlJ,UAAU,IAAIw8D,qCAAJ,CAAsBouB,WAAtB,EAAmC,CAAnC,EAAsC/0E,WAAtC,CAAhB;IACA20E,SAASK,UAATL,CAAoBxqF,OAApBwqF;;IAEA,KAAK7qF,IAAI,CAAT,EAAYA,IAAI8pF,YAAhB,EAA8B9pF,GAA9B,EAAmC;MACjC,QAAQ+qF,qBAAR;QACE,KAAK,CAAL;UACEF,SAASM,8BAATN;UACA;;QACF,KAAK,CAAL;UACEA,SAASO,0BAATP;UACA;;QACF,KAAK,CAAL;UACEA,SAASQ,cAATR;;UACA,IAAI9J,sBAAJ,EAA4B;YAC1B8J,SAASS,uBAATT;UAHJ;;UAKE;MAZJ;;MAeA,IAAIlK,yBAAJ,EAA+B;QAC7BkK,SAAS14E,KAAT04E;MAjB+B;;MAoBjCE,wBAAyB,yBAAwB,CAAxB,IAA6B,CAAtDA;IA9DiD;;IAiEnD,IAAI78E,SAAS02E,UAAUI,KAAVJ,GAAkB5lF,EAAlB4lF,GAAwB,WAAUK,KAAVL,GAAkB3lF,EAAlB,IAAwB2xB,KAA7D;IACA,MAAM+qB,OAAOkvC,SAASU,eAAtB;IACA,MAAMC,YAAYX,SAASY,oBAA3B;IACA,MAAMC,cAAcb,SAASa,WAA7B;IACA,MAAMC,sBAAsBnB,aAAa,CAAb,GAAiB,GAA7C;IACA,IAAIrmD,CAAJ,EAAOhoC,CAAP,EAAUyvF,EAAV;IACAriF,WAAW,CAAXA;IAGA,MAAMsiF,aAAa9H,QAAQvhF,IAARuhF,KAAiB,IAApC;;IACA,KAAK/jF,IAAI,CAAT,EAAYA,IAAI4qF,WAAhB,EAA6B5qF,GAA7B,EAAkC;MAChC,MAAM04D,MAAOxqD,SAAS0iB,KAAT1iB,GAAkB,CAA/B;MACA,MAAM49E,cAAc,IAAIpzB,GAAJ,IAAW0xB,aAAax5D,KAAxB,IAAiC65D,KAAjC,GAAyCC,MAA7D;;MACA,KAAKvmD,IAAI,CAAT,EAAYA,IAAIwmD,UAAhB,EAA4BxmD,GAA5B,EAAiC;QAC/BhoC,IAAIqvF,UAAUjiF,QAAV,CAAJpN;;QACA,IAAIA,MAAM,CAAV,EAAa;UACXA,IAAK,KAAIwvF,mBAAJ,IAA2BrB,KAAhCnuF;;UACA,IAAIw/C,KAAKpyC,QAAL,MAAmB,CAAvB,EAA0B;YACxBpN,IAAI,CAACA,CAALA;UAHS;;UAKXyvF,KAAKF,YAAYniF,QAAZ,CAALqiF;UACA,MAAM5wF,MAAM6wF,aAAaC,eAAe59E,UAAU,CAAzB,CAAb,GAA2CA,MAAvD;;UACA,IAAIs8E,cAAcoB,MAAMrB,EAAxB,EAA4B;YAC1BJ,aAAanvF,GAAb,IAAoBmB,CAApBguF;UADF,OAEO;YACLA,aAAanvF,GAAb,IAAoBmB,KAAK,KAAMouF,KAAKqB,EAAhB,CAApBzB;UAVS;QAFkB;;QAe/Bj8E;QACA3E;MAnB8B;;MAqBhC2E,UAAU0iB,QAAQ+5D,UAAlBz8E;IAhGiD;EARrD;AA3wCF;;AAu3CA,SAAS69E,aAAT,CAAuBjO,OAAvB,EAAgCM,IAAhC,EAAsCpgF,CAAtC,EAAyC;EACvC,MAAM2Q,YAAYyvE,KAAK9L,UAAL8L,CAAgBpgF,CAAhBogF,CAAlB;EACA,MAAMsE,wBAAwB/zE,UAAU+zE,qBAAxC;EACA,MAAMsJ,yBAAyBr9E,UAAUq9E,sBAAzC;EACA,MAAM1L,2BACJoC,sBAAsBpC,wBADxB;EAEA,MAAMrC,SAAS+N,uBAAuBvM,MAAtC;EACA,MAAMtB,kBAAkB6N,uBAAuB7N,eAA/C;EACA,MAAMkB,YAAY2M,uBAAuB3M,SAAzC;EACA,MAAM0B,yBAAyB2B,sBAAsB3B,sBAArD;EACA,MAAMJ,4BACJ+B,sBAAsB/B,yBADxB;EAEA,MAAMtN,YAAYyK,QAAQxL,UAARwL,CAAmB9/E,CAAnB8/E,EAAsBzK,SAAxC;EAEA,MAAMmX,aAAa9H,sBAAsB1B,wBAAzC;EACA,MAAM9vF,YAAYs5F,aACd,IAAIyB,mBAAJ,EADc,GAEd,IAAIC,qBAAJ,EAFJ;EAIA,MAAMC,sBAAsB,EAA5B;EACA,IAAIhqG,IAAI,CAAR;;EACA,KAAK,IAAIzI,IAAI,CAAb,EAAgBA,KAAK4mG,wBAArB,EAA+C5mG,GAA/C,EAAoD;IAClD,MAAMopG,aAAan0E,UAAU+3E,WAAV/3E,CAAsBj1B,CAAtBi1B,CAAnB;IAEA,MAAMiiB,QAAQkyD,WAAWS,IAAXT,GAAkBA,WAAWU,IAA3C;IACA,MAAM7sD,SAASmsD,WAAWY,IAAXZ,GAAkBA,WAAWa,IAA5C;IAEA,MAAMwG,eAAe,IAAI5mD,YAAJ,CAAiB3S,QAAQ+F,MAAzB,CAArB;;IAEA,KAAK,IAAI32B,IAAI,CAAR,EAAW6rB,KAAKi3D,WAAWqD,QAAXrD,CAAoBhqG,MAAzC,EAAiDknB,IAAI6rB,EAArD,EAAyD7rB,GAAzD,EAA8D;MAC5D,IAAIw/E,EAAJ,EAAQD,OAAR;;MACA,IAAI,CAACpB,eAAL,EAAsB;QAEpBqB,KAAKvB,OAAO,CAAP,EAAUuB,EAAfA;QACAD,UAAUtB,OAAO,CAAP,EAAUsB,OAAVtB,IAAqBvkG,IAAI,CAAJA,GAAQ,IAAIA,CAAZA,GAAgB,CAArCukG,CAAVsB;MAHF,OAIO;QACLC,KAAKvB,OAAO97F,CAAP,EAAUq9F,EAAfA;QACAD,UAAUtB,OAAO97F,CAAP,EAAUo9F,OAApBA;QACAp9F;MAT0D;;MAY5D,MAAM4hG,UAAUjB,WAAWqD,QAAXrD,CAAoB9iF,CAApB8iF,CAAhB;MACA,MAAMsJ,WAAW7P,iBAAiBwH,QAAQvhF,IAAzB,CAAjB;MAGA,MAAM8nF,QAAQE,aACV,CADU,GAEV,MAAMnX,YAAY+Y,QAAZ/Y,GAAuBkM,OAA7B,KAAyC,IAAIC,KAAK,IAAlD,CAFJ;MAGA,MAAM+K,KAAKlL,YAAYE,OAAZF,GAAsB,CAAjC;MAOA6K,iBACEC,YADF,EAEEv5D,KAFF,EAGE+F,MAHF,EAIEotD,OAJF,EAKEuG,KALF,EAMEC,EANF,EAOEC,UAPF,EAQEzJ,sBARF,EASEJ,yBATF;IAlCgD;;IA8ClDwL,oBAAoBtzG,IAApBszG,CAAyB;MACvBv7D,KADuB;MAEvB+F,MAFuB;MAGvB8E,OAAO0uD;IAHgB,CAAzBgC;EAnEqC;;EA0EvC,MAAM5tD,SAASrtC,UAAUm7F,SAAVn7F,CACbi7F,mBADaj7F,EAEbyd,UAAUyzE,IAFGlxF,EAGbyd,UAAU0zE,IAHGnxF,CAAf;EAKA,OAAO;IACL4qF,MAAMntE,UAAUyzE,IADX;IAELpG,KAAKrtE,UAAU0zE,IAFV;IAGLzxD,OAAO2N,OAAO3N,KAHT;IAIL+F,QAAQ4H,OAAO5H,MAJV;IAKL8E,OAAO8C,OAAO9C;EALT,CAAP;AAt8CF;;AA88CA,SAASmmD,mBAAT,CAA6B9D,OAA7B,EAAsC;EACpC,MAAMQ,MAAMR,QAAQiB,GAApB;EACA,MAAMzM,aAAawL,QAAQxL,UAA3B;EACA,MAAM+G,kBAAkBiF,IAAIT,IAA5B;EACA,MAAMyO,eAAe,EAArB;;EACA,KAAK,IAAI5yG,IAAI,CAAR,EAAWiJ,KAAKm7F,QAAQrC,KAARqC,CAAchlG,MAAnC,EAA2CY,IAAIiJ,EAA/C,EAAmDjJ,GAAnD,EAAwD;IACtD,MAAM0kG,OAAON,QAAQrC,KAARqC,CAAcpkG,CAAdokG,CAAb;IACA,MAAMyO,mBAAmB,EAAzB;;IACA,KAAK,IAAIvuF,IAAI,CAAb,EAAgBA,IAAIq7E,eAApB,EAAqCr7E,GAArC,EAA0C;MACxCuuF,iBAAiBvuF,CAAjB,IAAsB+tF,cAAcjO,OAAd,EAAuBM,IAAvB,EAA6BpgF,CAA7B,CAAtBuuF;IAJoD;;IAMtD,MAAMC,QAAQD,iBAAiB,CAAjB,CAAd;IACA,MAAMrhC,MAAM,IAAIhgC,iBAAJ,CAAsBshE,MAAM/wD,KAAN+wD,CAAY1zG,MAAZ0zG,GAAqBnT,eAA3C,CAAZ;IACA,MAAM96C,SAAS;MACbu9C,MAAM0Q,MAAM1Q,IADC;MAEbE,KAAKwQ,MAAMxQ,GAFE;MAGbprD,OAAO47D,MAAM57D,KAHA;MAIb+F,QAAQ61D,MAAM71D,MAJD;MAKb8E,OAAOyvB;IALM,CAAf;IASA,IAAIrzB,KAAJ,EAAW3pB,MAAX;IACA,IAAIlT,MAAM,CAAV;IAAA,IACEgF,CADF;IAAA,IAEE6rB,EAFF;IAAA,IAGE5sB,EAHF;IAAA,IAIEE,EAJF;IAAA,IAKEE,EALF;;IAMA,IAAI++E,KAAKkI,4BAALlI,CAAkCiC,0BAAtC,EAAkE;MAChE,MAAMoM,iBAAiBpT,oBAAoB,CAA3C;MACA,MAAMqT,UAAUH,iBAAiB,CAAjB,EAAoB9wD,KAApC;MACA,MAAMkxD,UAAUJ,iBAAiB,CAAjB,EAAoB9wD,KAApC;MACA,MAAMmxD,UAAUL,iBAAiB,CAAjB,EAAoB9wD,KAApC;MACA,MAAMoxD,UAAUJ,iBAAiBF,iBAAiB,CAAjB,EAAoB9wD,KAArC,GAA6C,IAA7D;MAKA5D,QAAQy6C,WAAW,CAAX,EAAce,SAAdf,GAA0B,CAAlCz6C;MACA3pB,SAAU,QAAO2pB,KAAP,IAAgB,GAA1B3pB;MAEA,MAAM4+E,aAAa1O,KAAK9L,UAAL8L,CAAgB,CAAhBA,CAAnB;MACA,MAAMn/C,UAAUo6C,kBAAkB,CAAlC;MACAxtD,KAAK6gE,QAAQ5zG,MAAb+yC;;MACA,IAAI,CAACihE,WAAWpK,qBAAXoK,CAAiC9L,wBAAtC,EAAgE;QAE9D,KAAKhhF,IAAI,CAAT,EAAYA,IAAI6rB,EAAhB,EAAoB7rB,KAAKhF,OAAOikC,OAAhC,EAAyC;UACvChgC,KAAKytF,QAAQ1sF,CAAR,IAAakO,MAAlBjP;UACAE,KAAKwtF,QAAQ3sF,CAAR,CAALb;UACAE,KAAKutF,QAAQ5sF,CAAR,CAALX;UACA6rD,IAAIlwD,KAAJ,IAAciE,KAAK,QAAQI,EAAbJ,IAAoB44B,KAAlCqzB;UACAA,IAAIlwD,KAAJ,IAAciE,KAAK,UAAUE,EAAfF,GAAoB,UAAUI,EAA9BJ,IAAqC44B,KAAnDqzB;UACAA,IAAIlwD,KAAJ,IAAciE,KAAK,QAAQE,EAAbF,IAAoB44B,KAAlCqzB;QAR4D;MAAhE,OAUO;QAEL,KAAKlrD,IAAI,CAAT,EAAYA,IAAI6rB,EAAhB,EAAoB7rB,KAAKhF,OAAOikC,OAAhC,EAAyC;UACvChgC,KAAKytF,QAAQ1sF,CAAR,IAAakO,MAAlBjP;UACAE,KAAKwtF,QAAQ3sF,CAAR,CAALb;UACAE,KAAKutF,QAAQ5sF,CAAR,CAALX;UACA,MAAM7C,IAAIyC,MAAOI,KAAKF,EAALE,IAAY,CAAnB,CAAV;UAEA6rD,IAAIlwD,KAAJ,IAAcwB,IAAI6C,EAAJ7C,IAAWq7B,KAAzBqzB;UACAA,IAAIlwD,KAAJ,IAAawB,KAAKq7B,KAAlBqzB;UACAA,IAAIlwD,KAAJ,IAAcwB,IAAI2C,EAAJ3C,IAAWq7B,KAAzBqzB;QAVG;MA1ByD;;MAuChE,IAAIuhC,cAAJ,EAAoB;QAClB,KAAKzsF,IAAI,CAAJA,EAAOhF,MAAM,CAAlB,EAAqBgF,IAAI6rB,EAAzB,EAA6B7rB,KAAKhF,OAAO,CAAzC,EAA4C;UAC1CkwD,IAAIlwD,GAAJ,IAAY6xF,QAAQ7sF,CAAR,IAAakO,MAAb2+E,IAAwBh1D,KAApCqzB;QAFgB;MAvC4C;IAAlE,OA4CO;MAEL,KAAK,IAAIltD,IAAI,CAAb,EAAgBA,IAAIq7E,eAApB,EAAqCr7E,GAArC,EAA0C;QACxC,MAAMy9B,QAAQ8wD,iBAAiBvuF,CAAjB,EAAoBy9B,KAAlC;QACA5D,QAAQy6C,WAAWt0E,CAAX,EAAcq1E,SAAdf,GAA0B,CAAlCz6C;QACA3pB,SAAU,QAAO2pB,KAAP,IAAgB,GAA1B3pB;;QACA,KAAKlT,MAAMgD,CAANhD,EAASgF,IAAI,CAAbhF,EAAgB6wB,KAAK4P,MAAM3iD,MAAhC,EAAwCknB,IAAI6rB,EAA5C,EAAgD7rB,GAAhD,EAAqD;UACnDkrD,IAAIlwD,GAAJ,IAAYygC,MAAMz7B,CAAN,IAAWkO,MAAXutB,IAAsB5D,KAAlCqzB;UACAlwD,OAAOq+E,eAAPr+E;QANsC;MAFrC;IApE+C;;IAgFtDsxF,aAAazzG,IAAbyzG,CAAkB/tD,MAAlB+tD;EArFkC;;EAuFpC,OAAOA,YAAP;AAriDF;;AAuiDA,SAAS7K,cAAT,CAAwB3D,OAAxB,EAAiCuI,SAAjC,EAA4C;EAC1C,MAAM/H,MAAMR,QAAQiB,GAApB;EACA,MAAM1F,kBAAkBiF,IAAIT,IAA5B;EACA,MAAMO,OAAON,QAAQrC,KAARqC,CAAcuI,SAAdvI,CAAb;;EACA,KAAK,IAAI9/E,IAAI,CAAb,EAAgBA,IAAIq7E,eAApB,EAAqCr7E,GAArC,EAA0C;IACxC,MAAM2Q,YAAYyvE,KAAK9L,UAAL8L,CAAgBpgF,CAAhBogF,CAAlB;IACA,MAAM2O,WACJjP,QAAQ6B,WAAR7B,CAAoBmB,GAApBnB,CAAwB9/E,CAAxB8/E,MAA+B7jF,SAA/B6jF,GACIA,QAAQ6B,WAAR7B,CAAoBmB,GAApBnB,CAAwB9/E,CAAxB8/E,CADJA,GAEIA,QAAQ6B,WAAR7B,CAAoB4B,GAH1B;IAIA/wE,UAAUq9E,sBAAVr9E,GAAmCo+E,QAAnCp+E;IACA,MAAM8zE,WACJ3E,QAAQ6B,WAAR7B,CAAoBoB,GAApBpB,CAAwB9/E,CAAxB8/E,MAA+B7jF,SAA/B6jF,GACIA,QAAQ6B,WAAR7B,CAAoBoB,GAApBpB,CAAwB9/E,CAAxB8/E,CADJA,GAEIA,QAAQ6B,WAAR7B,CAAoBwD,GAH1B;IAIA3yE,UAAU+zE,qBAAV/zE,GAAkC8zE,QAAlC9zE;EAfwC;;EAiB1CyvE,KAAKkI,4BAALlI,GAAoCN,QAAQ6B,WAAR7B,CAAoBwD,GAAxDlD;AAxjDF;;AA4jDA,MAAMsL,OAAN,CAAc;EACZjzG,YAAYm6C,KAAZ,EAAmB+F,MAAnB,EAA2B;IACzB,MAAMq2D,eAAeh/E,sBAAKjxB,KAAKC,GAALD,CAAS6zC,KAAT7zC,EAAgB45C,MAAhB55C,CAALixB,IAAgC,CAArD;IACA,KAAKi/E,MAAL,GAAc,EAAd;;IACA,KAAK,IAAIvzG,IAAI,CAAb,EAAgBA,IAAIszG,YAApB,EAAkCtzG,GAAlC,EAAuC;MACrC,MAAMke,QAAQ;QACZg5B,KADY;QAEZ+F,MAFY;QAGZ8E,OAAO;MAHK,CAAd;MAKA,KAAKwxD,MAAL,CAAYp0G,IAAZ,CAAiB+e,KAAjB;MACAg5B,QAAQ7zC,KAAK4rB,IAAL5rB,CAAU6zC,QAAQ,CAAlB7zC,CAAR6zC;MACA+F,SAAS55C,KAAK4rB,IAAL5rB,CAAU45C,SAAS,CAAnB55C,CAAT45C;IAXuB;EADf;;EAgBZxkB,MAAMz4B,CAAN,EAASsmB,CAAT,EAAY;IACV,IAAIktF,eAAe,CAAnB;IAAA,IACEvwG,QAAQ,CADV;IAAA,IAEEib,KAFF;;IAGA,OAAOs1F,eAAe,KAAKD,MAAL,CAAYn0G,MAAlC,EAA0C;MACxC8e,QAAQ,KAAKq1F,MAAL,CAAYC,YAAZ,CAARt1F;MACA,MAAM6sB,QAAQ/qC,IAAIsmB,IAAIpI,MAAMg5B,KAA5B;;MACA,IAAIh5B,MAAM6jC,KAAN7jC,CAAY6sB,KAAZ7sB,MAAuBqC,SAA3B,EAAsC;QACpCtd,QAAQib,MAAM6jC,KAAN7jC,CAAY6sB,KAAZ7sB,CAARjb;QACA;MALsC;;MAOxCib,MAAM6sB,KAAN7sB,GAAc6sB,KAAd7sB;MACAle,MAAM,CAANA;MACAsmB,MAAM,CAANA;MACAktF;IAdQ;;IAgBVA;IACAt1F,QAAQ,KAAKq1F,MAAL,CAAYC,YAAZ,CAARt1F;IACAA,MAAM6jC,KAAN7jC,CAAYA,MAAM6sB,KAAlB7sB,IAA2Bjb,KAA3Bib;IACA,KAAKs1F,YAAL,GAAoBA,YAApB;IACA,OAAO,KAAKvwG,KAAZ;EApCU;;EAuCZitG,iBAAiB;IACf,MAAMhyF,QAAQ,KAAKq1F,MAAL,CAAY,KAAKC,YAAjB,CAAd;IACAt1F,MAAM6jC,KAAN7jC,CAAYA,MAAM6sB,KAAlB7sB;EAzCU;;EA4CZ+xF,YAAY;IACV,IAAIuD,eAAe,KAAKA,YAAxB;IACA,IAAIt1F,QAAQ,KAAKq1F,MAAL,CAAYC,YAAZ,CAAZ;IACA,MAAMvwG,QAAQib,MAAM6jC,KAAN7jC,CAAYA,MAAM6sB,KAAlB7sB,CAAd;IACAs1F;;IACA,IAAIA,eAAe,CAAnB,EAAsB;MACpB,KAAKvwG,KAAL,GAAaA,KAAb;MACA,OAAO,KAAP;IAPQ;;IAUV,KAAKuwG,YAAL,GAAoBA,YAApB;IACAt1F,QAAQ,KAAKq1F,MAAL,CAAYC,YAAZ,CAARt1F;IACAA,MAAM6jC,KAAN7jC,CAAYA,MAAM6sB,KAAlB7sB,IAA2Bjb,KAA3Bib;IACA,OAAO,IAAP;EAzDU;;AAAA;;AA6Dd,MAAM6xF,aAAN,CAAoB;EAClBhzG,YAAYm6C,KAAZ,EAAmB+F,MAAnB,EAA2BoC,YAA3B,EAAyC;IACvC,MAAMi0D,eAAeh/E,sBAAKjxB,KAAKC,GAALD,CAAS6zC,KAAT7zC,EAAgB45C,MAAhB55C,CAALixB,IAAgC,CAArD;IACA,KAAKi/E,MAAL,GAAc,EAAd;;IACA,KAAK,IAAIvzG,IAAI,CAAb,EAAgBA,IAAIszG,YAApB,EAAkCtzG,GAAlC,EAAuC;MACrC,MAAM+hD,QAAQ,IAAI3jD,UAAJ,CAAe84C,QAAQ+F,MAAvB,CAAd;;MACA,KAAK,IAAI32B,IAAI,CAAR,EAAW6rB,KAAK4P,MAAM3iD,MAA3B,EAAmCknB,IAAI6rB,EAAvC,EAA2C7rB,GAA3C,EAAgD;QAC9Cy7B,MAAMz7B,CAAN,IAAW+4B,YAAX0C;MAHmC;;MAMrC,MAAM7jC,QAAQ;QACZg5B,KADY;QAEZ+F,MAFY;QAGZ8E;MAHY,CAAd;MAKA,KAAKwxD,MAAL,CAAYp0G,IAAZ,CAAiB+e,KAAjB;MAEAg5B,QAAQ7zC,KAAK4rB,IAAL5rB,CAAU6zC,QAAQ,CAAlB7zC,CAAR6zC;MACA+F,SAAS55C,KAAK4rB,IAAL5rB,CAAU45C,SAAS,CAAnB55C,CAAT45C;IAjBqC;EADvB;;EAsBlBxkB,MAAMz4B,CAAN,EAASsmB,CAAT,EAAYmtF,SAAZ,EAAuB;IACrB,IAAID,eAAe,CAAnB;;IACA,OAAOA,eAAe,KAAKD,MAAL,CAAYn0G,MAAlC,EAA0C;MACxC,MAAM8e,QAAQ,KAAKq1F,MAAL,CAAYC,YAAZ,CAAd;MACA,MAAMzoE,QAAQ/qC,IAAIsmB,IAAIpI,MAAMg5B,KAA5B;MACAh5B,MAAM6sB,KAAN7sB,GAAc6sB,KAAd7sB;MACA,MAAMjb,QAAQib,MAAM6jC,KAAN7jC,CAAY6sB,KAAZ7sB,CAAd;;MAEA,IAAIjb,UAAU,IAAd,EAAoB;QAClB;MAPsC;;MAUxC,IAAIA,QAAQwwG,SAAZ,EAAuB;QACrB,KAAKD,YAAL,GAAoBA,YAApB;QAEA,KAAKE,eAAL;QACA,OAAO,KAAP;MAdsC;;MAiBxC1zG,MAAM,CAANA;MACAsmB,MAAM,CAANA;MACAktF;IArBmB;;IAuBrB,KAAKA,YAAL,GAAoBA,eAAe,CAAnC;IACA,OAAO,IAAP;EA9CgB;;EAiDlBtD,eAAeuD,SAAf,EAA0B;IACxB,MAAMv1F,QAAQ,KAAKq1F,MAAL,CAAY,KAAKC,YAAjB,CAAd;IACAt1F,MAAM6jC,KAAN7jC,CAAYA,MAAM6sB,KAAlB7sB,IAA2Bu1F,YAAY,CAAvCv1F;IACA,KAAKw1F,eAAL;EApDgB;;EAuDlBA,kBAAkB;IAChB,IAAIC,aAAa,KAAKH,YAAtB;IACA,IAAIt1F,QAAQ,KAAKq1F,MAAL,CAAYI,UAAZ,CAAZ;IACA,MAAMC,eAAe11F,MAAM6jC,KAAN7jC,CAAYA,MAAM6sB,KAAlB7sB,CAArB;;IACA,OAAO,EAAEy1F,UAAF,IAAgB,CAAvB,EAA0B;MACxBz1F,QAAQ,KAAKq1F,MAAL,CAAYI,UAAZ,CAARz1F;MACAA,MAAM6jC,KAAN7jC,CAAYA,MAAM6sB,KAAlB7sB,IAA2B01F,YAA3B11F;IANc;EAvDA;;EAiElB+xF,YAAY;IACV,IAAIuD,eAAe,KAAKA,YAAxB;IACA,IAAIt1F,QAAQ,KAAKq1F,MAAL,CAAYC,YAAZ,CAAZ;IACA,MAAMvwG,QAAQib,MAAM6jC,KAAN7jC,CAAYA,MAAM6sB,KAAlB7sB,CAAd;IACAA,MAAM6jC,KAAN7jC,CAAYA,MAAM6sB,KAAlB7sB,IAA2B,IAA3BA;IACAs1F;;IACA,IAAIA,eAAe,CAAnB,EAAsB;MACpB,OAAO,KAAP;IAPQ;;IAUV,KAAKA,YAAL,GAAoBA,YAApB;IACAt1F,QAAQ,KAAKq1F,MAAL,CAAYC,YAAZ,CAARt1F;IACAA,MAAM6jC,KAAN7jC,CAAYA,MAAM6sB,KAAlB7sB,IAA2Bjb,KAA3Bib;IACA,OAAO,IAAP;EA9EgB;;AAAA;;AAmFpB,MAAMkzF,WAAY,SAASyC,eAAT,GAA2B;EAC3C,MAAMC,kBAAkB,EAAxB;EACA,MAAMC,oBAAoB,EAA1B;EAIA,MAAMC,uBAAuB,IAAI51G,UAAJ,CAAe,CAC1C,CAD0C,EACvC,CADuC,EACpC,CADoC,EACjC,CADiC,EAC9B,CAD8B,EAC3B,CAD2B,EACxB,CADwB,EACrB,CADqB,EAClB,CADkB,EACf,CADe,EACZ,CADY,EACT,CADS,EACN,CADM,EACH,CADG,EACA,CADA,EACG,CADH,EACM,CADN,EACS,CADT,EACY,CADZ,EACe,CADf,EACkB,CADlB,EACqB,CADrB,EACwB,CADxB,EAC2B,CAD3B,EAC8B,CAD9B,EAE1C,CAF0C,EAEvC,CAFuC,EAEpC,CAFoC,EAEjC,CAFiC,EAE9B,CAF8B,EAE3B,CAF2B,EAExB,CAFwB,EAErB,CAFqB,EAElB,CAFkB,EAEf,CAFe,EAEZ,CAFY,EAET,CAFS,EAEN,CAFM,EAEH,CAFG,EAEA,CAFA,EAEG,CAFH,EAEM,CAFN,EAES,CAFT,EAEY,CAFZ,EAEe,CAFf,EAEkB,CAFlB,EAEqB,CAFrB,EAEwB,CAFxB,EAE2B,CAF3B,EAE8B,CAF9B,EAG1C,CAH0C,EAGvC,CAHuC,EAGpC,CAHoC,EAGjC,CAHiC,EAG9B,CAH8B,EAG3B,CAH2B,EAGxB,CAHwB,EAGrB,CAHqB,EAGlB,CAHkB,EAGf,CAHe,EAGZ,CAHY,EAGT,CAHS,EAGN,CAHM,EAGH,CAHG,EAGA,CAHA,EAGG,CAHH,EAGM,CAHN,EAGS,CAHT,EAGY,CAHZ,EAGe,CAHf,EAGkB,CAHlB,EAGqB,CAHrB,EAGwB,CAHxB,EAG2B,CAH3B,EAG8B,CAH9B,CAAf,CAA7B;EAKA,MAAM61G,iBAAiB,IAAI71G,UAAJ,CAAe,CACpC,CADoC,EACjC,CADiC,EAC9B,CAD8B,EAC3B,CAD2B,EACxB,CADwB,EACrB,CADqB,EAClB,CADkB,EACf,CADe,EACZ,CADY,EACT,CADS,EACN,CADM,EACH,CADG,EACA,CADA,EACG,CADH,EACM,CADN,EACS,CADT,EACY,CADZ,EACe,CADf,EACkB,CADlB,EACqB,CADrB,EACwB,CADxB,EAC2B,CAD3B,EAC8B,CAD9B,EACiC,CADjC,EACoC,CADpC,EAEpC,CAFoC,EAEjC,CAFiC,EAE9B,CAF8B,EAE3B,CAF2B,EAExB,CAFwB,EAErB,CAFqB,EAElB,CAFkB,EAEf,CAFe,EAEZ,CAFY,EAET,CAFS,EAEN,CAFM,EAEH,CAFG,EAEA,CAFA,EAEG,CAFH,EAEM,CAFN,EAES,CAFT,EAEY,CAFZ,EAEe,CAFf,EAEkB,CAFlB,EAEqB,CAFrB,EAEwB,CAFxB,EAE2B,CAF3B,EAE8B,CAF9B,EAEiC,CAFjC,EAEoC,CAFpC,EAGpC,CAHoC,EAGjC,CAHiC,EAG9B,CAH8B,EAG3B,CAH2B,EAGxB,CAHwB,EAGrB,CAHqB,EAGlB,CAHkB,EAGf,CAHe,EAGZ,CAHY,EAGT,CAHS,EAGN,CAHM,EAGH,CAHG,EAGA,CAHA,EAGG,CAHH,EAGM,CAHN,EAGS,CAHT,EAGY,CAHZ,EAGe,CAHf,EAGkB,CAHlB,EAGqB,CAHrB,EAGwB,CAHxB,EAG2B,CAH3B,EAG8B,CAH9B,EAGiC,CAHjC,EAGoC,CAHpC,CAAf,CAAvB;EAKA,MAAM81G,iBAAiB,IAAI91G,UAAJ,CAAe,CACpC,CADoC,EACjC,CADiC,EAC9B,CAD8B,EAC3B,CAD2B,EACxB,CADwB,EACrB,CADqB,EAClB,CADkB,EACf,CADe,EACZ,CADY,EACT,CADS,EACN,CADM,EACH,CADG,EACA,CADA,EACG,CADH,EACM,CADN,EACS,CADT,EACY,CADZ,EACe,CADf,EACkB,CADlB,EACqB,CADrB,EACwB,CADxB,EAC2B,CAD3B,EAC8B,CAD9B,EACiC,CADjC,EACoC,CADpC,EAEpC,CAFoC,EAEjC,CAFiC,EAE9B,CAF8B,EAE3B,CAF2B,EAExB,CAFwB,EAErB,CAFqB,EAElB,CAFkB,EAEf,CAFe,EAEZ,CAFY,EAET,CAFS,EAEN,CAFM,EAEH,CAFG,EAEA,CAFA,EAEG,CAFH,EAEM,CAFN,EAES,CAFT,EAEY,CAFZ,EAEe,CAFf,EAEkB,CAFlB,EAEqB,CAFrB,EAEwB,CAFxB,EAE2B,CAF3B,EAE8B,CAF9B,EAEiC,CAFjC,EAEoC,CAFpC,EAGpC,CAHoC,EAGjC,CAHiC,EAG9B,CAH8B,EAG3B,CAH2B,EAGxB,CAHwB,EAGrB,CAHqB,EAGlB,CAHkB,EAGf,CAHe,EAGZ,CAHY,EAGT,CAHS,EAGN,CAHM,EAGH,CAHG,EAGA,CAHA,EAGG,CAHH,EAGM,CAHN,EAGS,CAHT,EAGY,CAHZ,EAGe,CAHf,EAGkB,CAHlB,EAGqB,CAHrB,EAGwB,CAHxB,EAG2B,CAH3B,EAG8B,CAH9B,EAGiC,CAHjC,EAGoC,CAHpC,CAAf,CAAvB;;EAOA,MAAMgzG,QAAN,CAAe;IACbr0G,YAAYm6C,KAAZ,EAAmB+F,MAAnB,EAA2BotD,OAA3B,EAAoC8F,aAApC,EAAmDU,EAAnD,EAAuD;MACrD,KAAK35D,KAAL,GAAaA,KAAb;MACA,KAAK+F,MAAL,GAAcA,MAAd;MAEA,IAAIk3D,iBAAJ;;MACA,IAAI9J,YAAY,IAAhB,EAAsB;QACpB8J,oBAAoBD,cAApBC;MADF,OAEO,IAAI9J,YAAY,IAAhB,EAAsB;QAC3B8J,oBAAoBF,cAApBE;MADK,OAEA;QACLA,oBAAoBH,oBAApBG;MAVmD;;MAYrD,KAAKA,iBAAL,GAAyBA,iBAAzB;MAEA,MAAMC,mBAAmBl9D,QAAQ+F,MAAjC;MAIA,KAAKo3D,qBAAL,GAA6B,IAAIj2G,UAAJ,CAAeg2G,gBAAf,CAA7B;MACA,KAAKvC,eAAL,GAAuB,IAAIzzG,UAAJ,CAAeg2G,gBAAf,CAAvB;MACA,IAAIrC,oBAAJ;;MACA,IAAIlB,KAAK,EAAT,EAAa;QACXkB,uBAAuB,IAAI7vF,WAAJ,CAAgBkyF,gBAAhB,CAAvBrC;MADF,OAEO,IAAIlB,KAAK,CAAT,EAAY;QACjBkB,uBAAuB,IAAInsD,WAAJ,CAAgBwuD,gBAAhB,CAAvBrC;MADK,OAEA;QACLA,uBAAuB,IAAI3zG,UAAJ,CAAeg2G,gBAAf,CAAvBrC;MA1BmD;;MA4BrD,KAAKA,oBAAL,GAA4BA,oBAA5B;MACA,KAAKuC,eAAL,GAAuB,IAAIl2G,UAAJ,CAAeg2G,gBAAf,CAAvB;MAEA,MAAMpC,cAAc,IAAI5zG,UAAJ,CAAeg2G,gBAAf,CAApB;;MACA,IAAIjE,kBAAkB,CAAtB,EAAyB;QACvB,KAAK,IAAInwG,IAAI,CAAb,EAAgBA,IAAIo0G,gBAApB,EAAsCp0G,GAAtC,EAA2C;UACzCgyG,YAAYhyG,CAAZ,IAAiBmwG,aAAjB6B;QAFqB;MAhC4B;;MAqCrD,KAAKA,WAAL,GAAmBA,WAAnB;MAEA,KAAKv5E,KAAL;IAxCW;;IA2Cb+4E,WAAW7qF,OAAX,EAAoB;MAClB,KAAKA,OAAL,GAAeA,OAAf;IA5CW;;IA+Cb8R,QAAQ;MAGN,KAAK8qD,QAAL,GAAgB,IAAIN,SAAJ,CAAc,EAAd,CAAhB;MAIA,KAAKM,QAAL,CAAc,CAAd,IAAoB,KAAK,CAAL,GAAU,CAA9B;MACA,KAAKA,QAAL,CAAcuwB,eAAd,IAAkC,MAAM,CAAN,GAAW,CAA7C;MACA,KAAKvwB,QAAL,CAAcwwB,iBAAd,IAAoC,KAAK,CAAL,GAAU,CAA9C;IAxDW;;IA2DbQ,yBAAyBv1B,GAAzB,EAA8Bw1B,MAA9B,EAAsCzpE,KAAtC,EAA6C;MAC3C,MAAMspE,wBAAwB,KAAKA,qBAAnC;MACA,MAAMn9D,QAAQ,KAAKA,KAAnB;MAAA,MACE+F,SAAS,KAAKA,MADhB;MAEA,MAAMmlD,OAAOoS,SAAS,CAAtB;MACA,MAAMzD,QAAQyD,SAAS,CAATA,GAAat9D,KAA3B;MACA,IAAIl3C,CAAJ;;MAEA,IAAIg/E,MAAM,CAAV,EAAa;QACXh/E,IAAI+qC,QAAQmM,KAAZl3C;;QACA,IAAIoiG,IAAJ,EAAU;UACRiS,sBAAsBr0G,IAAI,CAA1B,KAAgC,IAAhCq0G;QAHS;;QAKX,IAAItD,KAAJ,EAAW;UACTsD,sBAAsBr0G,IAAI,CAA1B,KAAgC,IAAhCq0G;QANS;;QAQXA,sBAAsBr0G,CAAtB,KAA4B,IAA5Bq0G;MAhByC;;MAmB3C,IAAIr1B,MAAM,CAANA,GAAU/hC,MAAd,EAAsB;QACpBj9C,IAAI+qC,QAAQmM,KAAZl3C;;QACA,IAAIoiG,IAAJ,EAAU;UACRiS,sBAAsBr0G,IAAI,CAA1B,KAAgC,IAAhCq0G;QAHkB;;QAKpB,IAAItD,KAAJ,EAAW;UACTsD,sBAAsBr0G,IAAI,CAA1B,KAAgC,IAAhCq0G;QANkB;;QAQpBA,sBAAsBr0G,CAAtB,KAA4B,IAA5Bq0G;MA3ByC;;MA8B3C,IAAIjS,IAAJ,EAAU;QACRiS,sBAAsBtpE,QAAQ,CAA9B,KAAoC,IAApCspE;MA/ByC;;MAiC3C,IAAItD,KAAJ,EAAW;QACTsD,sBAAsBtpE,QAAQ,CAA9B,KAAoC,IAApCspE;MAlCyC;;MAoC3CA,sBAAsBtpE,KAAtB,KAAgC,IAAhCspE;IA/FW;;IAkGb5C,iCAAiC;MAC/B,MAAM9qF,UAAU,KAAKA,OAArB;MACA,MAAMuwB,QAAQ,KAAKA,KAAnB;MAAA,MACE+F,SAAS,KAAKA,MADhB;MAEA,MAAM80D,uBAAuB,KAAKA,oBAAlC;MACA,MAAMF,kBAAkB,KAAKA,eAA7B;MACA,MAAMwC,wBAAwB,KAAKA,qBAAnC;MACA,MAAMC,kBAAkB,KAAKA,eAA7B;MACA,MAAM/wB,WAAW,KAAKA,QAAtB;MACA,MAAMkxB,SAAS,KAAKN,iBAApB;MACA,MAAMnC,cAAc,KAAKA,WAAzB;MACA,MAAM0C,uBAAuB,CAAC,CAA9B;MACA,MAAMC,gBAAgB,CAAtB;MACA,MAAMC,wBAAwB,CAA9B;;MAEA,KAAK,IAAI3uB,KAAK,CAAd,EAAiBA,KAAKhpC,MAAtB,EAA8BgpC,MAAM,CAApC,EAAuC;QACrC,KAAK,IAAI3/D,IAAI,CAAb,EAAgBA,IAAI4wB,KAApB,EAA2B5wB,GAA3B,EAAgC;UAC9B,IAAIykB,QAAQk7C,KAAK/uC,KAAL+uC,GAAa3/D,CAAzB;;UACA,KAAK,IAAIuuF,KAAK,CAAd,EAAiBA,KAAK,CAAtB,EAAyBA,MAAM9pE,SAASmM,KAAxC,EAA+C;YAC7C,MAAMl3C,IAAIimF,KAAK4uB,EAAf;;YACA,IAAI70G,KAAKi9C,MAAT,EAAiB;cACf;YAH2C;;YAM7Cq3D,gBAAgBvpE,KAAhB,KAA0B2pE,oBAA1BJ;;YAEA,IAAIvC,qBAAqBhnE,KAArB,KAA+B,CAACspE,sBAAsBtpE,KAAtB,CAApC,EAAkE;cAChE;YAT2C;;YAY7C,MAAMu5C,eAAemwB,OAAOJ,sBAAsBtpE,KAAtB,CAAP,CAArB;YACA,MAAM+pE,WAAWnuF,QAAQ+8D,OAAR/8D,CAAgB48D,QAAhB58D,EAA0B29D,YAA1B39D,CAAjB;;YACA,IAAImuF,QAAJ,EAAc;cACZ,MAAM7yC,OAAO,KAAK8yC,aAAL,CAAmB/0G,CAAnB,EAAsBsmB,CAAtB,EAAyBykB,KAAzB,CAAb;cACA8mE,gBAAgB9mE,KAAhB,IAAyBk3B,IAAzB4vC;cACAE,qBAAqBhnE,KAArB,IAA8B,CAA9BgnE;cACA,KAAKwC,wBAAL,CAA8Bv0G,CAA9B,EAAiCsmB,CAAjC,EAAoCykB,KAApC;cACAupE,gBAAgBvpE,KAAhB,KAA0B6pE,qBAA1BN;YAnB2C;;YAqB7CtC,YAAYjnE,KAAZ;YACAupE,gBAAgBvpE,KAAhB,KAA0B4pE,aAA1BL;UAxB4B;QADK;MAfR;IAlGpB;;IAgJbS,cAAc/1B,GAAd,EAAmBw1B,MAAnB,EAA2BzpE,KAA3B,EAAkC;MAChC,MAAMmM,QAAQ,KAAKA,KAAnB;MAAA,MACE+F,SAAS,KAAKA,MADhB;MAEA,MAAM80D,uBAAuB,KAAKA,oBAAlC;MACA,MAAMF,kBAAkB,KAAKA,eAA7B;MACA,IAAImD,YAAJ,EAAkBC,KAAlB,EAAyBC,KAAzB,EAAgCC,aAAhC;MACA,IAAI7wB,YAAJ,EAAkB8wB,OAAlB;MAGAD,gBAAgBX,SAAS,CAATA,IAAczC,qBAAqBhnE,QAAQ,CAA7B,MAAoC,CAAlEoqE;;MACA,IAAIX,SAAS,CAATA,GAAat9D,KAAbs9D,IAAsBzC,qBAAqBhnE,QAAQ,CAA7B,MAAoC,CAA9D,EAAiE;QAC/DmqE,QAAQrD,gBAAgB9mE,QAAQ,CAAxB,CAARmqE;;QACA,IAAIC,aAAJ,EAAmB;UACjBF,QAAQpD,gBAAgB9mE,QAAQ,CAAxB,CAARkqE;UACAD,eAAe,IAAIE,KAAJ,GAAYD,KAA3BD;QAFF,OAGO;UACLA,eAAe,IAAIE,KAAJ,GAAYA,KAA3BF;QAN6D;MAAjE,OAQO,IAAIG,aAAJ,EAAmB;QACxBF,QAAQpD,gBAAgB9mE,QAAQ,CAAxB,CAARkqE;QACAD,eAAe,IAAIC,KAAJ,GAAYA,KAA3BD;MAFK,OAGA;QACLA,eAAe,CAAfA;MAtB8B;;MAwBhC,MAAMK,yBAAyB,IAAIL,YAAnC;MAGAG,gBAAgBn2B,MAAM,CAANA,IAAW+yB,qBAAqBhnE,QAAQmM,KAA7B,MAAwC,CAAnEi+D;;MACA,IAAIn2B,MAAM,CAANA,GAAU/hC,MAAV+hC,IAAoB+yB,qBAAqBhnE,QAAQmM,KAA7B,MAAwC,CAAhE,EAAmE;QACjEg+D,QAAQrD,gBAAgB9mE,QAAQmM,KAAxB,CAARg+D;;QACA,IAAIC,aAAJ,EAAmB;UACjBF,QAAQpD,gBAAgB9mE,QAAQmM,KAAxB,CAAR+9D;UACAD,eAAe,IAAIE,KAAJ,GAAYD,KAAZ,GAAoBI,sBAAnCL;QAFF,OAGO;UACLA,eAAe,IAAIE,KAAJ,GAAYA,KAAZ,GAAoBG,sBAAnCL;QAN+D;MAAnE,OAQO,IAAIG,aAAJ,EAAmB;QACxBF,QAAQpD,gBAAgB9mE,QAAQmM,KAAxB,CAAR+9D;QACAD,eAAe,IAAIC,KAAJ,GAAYA,KAAZ,GAAoBI,sBAAnCL;MAFK,OAGA;QACLA,eAAeK,sBAAfL;MAxC8B;;MA2ChC,IAAIA,gBAAgB,CAApB,EAAuB;QACrB1wB,eAAe,IAAI0wB,YAAnB1wB;QACA8wB,UAAU,KAAKzuF,OAAL,CAAa+8D,OAAb,CAAqB,KAAKH,QAA1B,EAAoCe,YAApC,CAAV8wB;MAFF,OAGO;QACL9wB,eAAe,IAAI0wB,YAAnB1wB;QACA8wB,UAAU,KAAKzuF,OAAL,CAAa+8D,OAAb,CAAqB,KAAKH,QAA1B,EAAoCe,YAApC,IAAoD,CAA9D8wB;MAhD8B;;MAkDhC,OAAOA,OAAP;IAlMW;;IAqMb1D,6BAA6B;MAC3B,MAAM/qF,UAAU,KAAKA,OAArB;MACA,MAAMuwB,QAAQ,KAAKA,KAAnB;MAAA,MACE+F,SAAS,KAAKA,MADhB;MAEA,MAAM80D,uBAAuB,KAAKA,oBAAlC;MACA,MAAMsC,wBAAwB,KAAKA,qBAAnC;MACA,MAAM9wB,WAAW,KAAKA,QAAtB;MACA,MAAMyuB,cAAc,KAAKA,WAAzB;MACA,MAAMsC,kBAAkB,KAAKA,eAA7B;MACA,MAAMK,gBAAgB,CAAtB;MACA,MAAMC,wBAAwB,CAA9B;MACA,MAAMx1G,SAAS83C,QAAQ+F,MAAvB;MACA,MAAMq4D,SAASp+D,QAAQ,CAAvB;;MAEA,KAAK,IAAIq+D,SAAS,CAAb,EAAgBC,SAArB,EAAgCD,SAASn2G,MAAzC,EAAiDm2G,SAASC,SAA1D,EAAqE;QACnEA,YAAYnyG,KAAKyd,GAALzd,CAASjE,MAATiE,EAAiBkyG,SAASD,MAA1BjyG,CAAZmyG;;QACA,KAAK,IAAIlvF,IAAI,CAAb,EAAgBA,IAAI4wB,KAApB,EAA2B5wB,GAA3B,EAAgC;UAC9B,KAAK,IAAIykB,QAAQwqE,SAASjvF,CAA1B,EAA6BykB,QAAQyqE,SAArC,EAAgDzqE,SAASmM,KAAzD,EAAgE;YAE9D,IACE,CAAC66D,qBAAqBhnE,KAArB,CAAD,IACC,iBAAgBA,KAAhB,IAAyB4pE,aAAzB,MAA4C,CAF/C,EAGE;cACA;YAN4D;;YAS9D,IAAIrwB,eAAe,EAAnB;;YACA,IAAK,iBAAgBv5C,KAAhB,IAAyB6pE,qBAAzB,MAAoD,CAAzD,EAA4D;cAC1DN,gBAAgBvpE,KAAhB,KAA0B6pE,qBAA1BN;cAEA,MAAMmB,eAAepB,sBAAsBtpE,KAAtB,IAA+B,GAApD;cACAu5C,eAAemxB,iBAAiB,CAAjBA,GAAqB,EAArBA,GAA0B,EAAzCnxB;YAd4D;;YAiB9D,MAAMb,MAAM98D,QAAQ+8D,OAAR/8D,CAAgB48D,QAAhB58D,EAA0B29D,YAA1B39D,CAAZ;YACAorF,qBAAqBhnE,KAArB,IACGgnE,qBAAqBhnE,KAArB,KAA+B,CAA/BgnE,GAAoCtuB,GADvCsuB;YAEAC,YAAYjnE,KAAZ;YACAupE,gBAAgBvpE,KAAhB,KAA0B4pE,aAA1BL;UAtB4B;QAFmC;MAd1C;IArMhB;;IAiPb3C,iBAAiB;MACf,MAAMhrF,UAAU,KAAKA,OAArB;MACA,MAAMuwB,QAAQ,KAAKA,KAAnB;MAAA,MACE+F,SAAS,KAAKA,MADhB;MAEA,MAAMo3D,wBAAwB,KAAKA,qBAAnC;MACA,MAAMtC,uBAAuB,KAAKA,oBAAlC;MACA,MAAMF,kBAAkB,KAAKA,eAA7B;MACA,MAAMtuB,WAAW,KAAKA,QAAtB;MACA,MAAMkxB,SAAS,KAAKN,iBAApB;MACA,MAAMnC,cAAc,KAAKA,WAAzB;MACA,MAAMsC,kBAAkB,KAAKA,eAA7B;MACA,MAAMK,gBAAgB,CAAtB;MACA,MAAMC,wBAAwB,CAA9B;MACA,MAAMc,aAAax+D,KAAnB;MACA,MAAMy+D,cAAcz+D,QAAQ,CAA5B;MACA,MAAM0+D,gBAAgB1+D,QAAQ,CAA9B;MACA,IAAI2+D,KAAJ;;MACA,KAAK,IAAI5vB,KAAK,CAAd,EAAiBA,KAAKhpC,MAAtB,EAA8BgpC,KAAK4vB,KAAnC,EAA0C;QACxCA,QAAQxyG,KAAKyd,GAALzd,CAAS4iF,KAAK,CAAd5iF,EAAiB45C,MAAjB55C,CAARwyG;QACA,MAAMC,YAAY7vB,KAAK/uC,KAAvB;QACA,MAAM6+D,gBAAgB9vB,KAAK,CAALA,GAAShpC,MAA/B;;QACA,KAAK,IAAI32B,IAAI,CAAb,EAAgBA,IAAI4wB,KAApB,EAA2B5wB,GAA3B,EAAgC;UAC9B,MAAMivF,SAASO,YAAYxvF,CAA3B;UAGA,MAAM0vF,WACJD,iBACAzB,gBAAgBiB,MAAhB,MAA4B,CAD5BQ,IAEAzB,gBAAgBiB,SAASG,UAAzB,MAAyC,CAFzCK,IAGAzB,gBAAgBiB,SAASI,WAAzB,MAA0C,CAH1CI,IAIAzB,gBAAgBiB,SAASK,aAAzB,MAA4C,CAJ5CG,IAKA1B,sBAAsBkB,MAAtB,MAAkC,CALlCQ,IAMA1B,sBAAsBkB,SAASG,UAA/B,MAA+C,CAN/CK,IAOA1B,sBAAsBkB,SAASI,WAA/B,MAAgD,CAPhDI,IAQA1B,sBAAsBkB,SAASK,aAA/B,MAAkD,CATpD;UAUA,IAAIf,KAAK,CAAT;UAAA,IACE9pE,QAAQwqE,MADV;UAEA,IAAIv1G,IAAIimF,EAAR;UAAA,IACEhkB,IADF;;UAEA,IAAI+zC,QAAJ,EAAc;YACZ,MAAMC,2BAA2BtvF,QAAQ+8D,OAAR/8D,CAC/B48D,QAD+B58D,EAE/BotF,iBAF+BptF,CAAjC;;YAIA,IAAI,CAACsvF,wBAAL,EAA+B;cAC7BjE,YAAYuD,MAAZ;cACAvD,YAAYuD,SAASG,UAArB;cACA1D,YAAYuD,SAASI,WAArB;cACA3D,YAAYuD,SAASK,aAArB;cACA;YAVU;;YAYZf,KACGluF,QAAQ+8D,OAAR/8D,CAAgB48D,QAAhB58D,EAA0BmtF,eAA1BntF,KAA8C,CAA9CA,GACDA,QAAQ+8D,OAAR/8D,CAAgB48D,QAAhB58D,EAA0BmtF,eAA1BntF,CAFFkuF;;YAGA,IAAIA,OAAO,CAAX,EAAc;cACZ70G,IAAIimF,KAAK4uB,EAAT70G;cACA+qC,SAAS8pE,KAAK39D,KAAdnM;YAjBU;;YAoBZk3B,OAAO,KAAK8yC,aAAL,CAAmB/0G,CAAnB,EAAsBsmB,CAAtB,EAAyBykB,KAAzB,CAAPk3B;YACA4vC,gBAAgB9mE,KAAhB,IAAyBk3B,IAAzB4vC;YACAE,qBAAqBhnE,KAArB,IAA8B,CAA9BgnE;YACA,KAAKwC,wBAAL,CAA8Bv0G,CAA9B,EAAiCsmB,CAAjC,EAAoCykB,KAApC;YACAupE,gBAAgBvpE,KAAhB,KAA0B6pE,qBAA1BN;YAEAvpE,QAAQwqE,MAARxqE;;YACA,KAAK,IAAImrE,KAAKjwB,EAAd,EAAkBiwB,MAAMl2G,CAAxB,EAA2Bk2G,MAAMnrE,SAASmM,KAA1C,EAAiD;cAC/C86D,YAAYjnE,KAAZ;YA5BU;;YA+BZ8pE;UAjD4B;;UAmD9B,KAAK70G,IAAIimF,KAAK4uB,EAAd,EAAkB70G,IAAI61G,KAAtB,EAA6B71G,KAAK+qC,SAASmM,KAA3C,EAAkD;YAChD,IACE66D,qBAAqBhnE,KAArB,KACC,iBAAgBA,KAAhB,IAAyB4pE,aAAzB,MAA4C,CAF/C,EAGE;cACA;YAL8C;;YAQhD,MAAMrwB,eAAemwB,OAAOJ,sBAAsBtpE,KAAtB,CAAP,CAArB;YACA,MAAM+pE,WAAWnuF,QAAQ+8D,OAAR/8D,CAAgB48D,QAAhB58D,EAA0B29D,YAA1B39D,CAAjB;;YACA,IAAImuF,aAAa,CAAjB,EAAoB;cAClB7yC,OAAO,KAAK8yC,aAAL,CAAmB/0G,CAAnB,EAAsBsmB,CAAtB,EAAyBykB,KAAzB,CAAPk3B;cACA4vC,gBAAgB9mE,KAAhB,IAAyBk3B,IAAzB4vC;cACAE,qBAAqBhnE,KAArB,IAA8B,CAA9BgnE;cACA,KAAKwC,wBAAL,CAA8Bv0G,CAA9B,EAAiCsmB,CAAjC,EAAoCykB,KAApC;cACAupE,gBAAgBvpE,KAAhB,KAA0B6pE,qBAA1BN;YAf8C;;YAiBhDtC,YAAYjnE,KAAZ;UApE4B;QAJQ;MAjB3B;IAjPJ;;IAgVb6mE,0BAA0B;MACxB,MAAMjrF,UAAU,KAAKA,OAArB;MACA,MAAM48D,WAAW,KAAKA,QAAtB;MACA,MAAMqF,SACHjiE,QAAQ+8D,OAAR/8D,CAAgB48D,QAAhB58D,EAA0BmtF,eAA1BntF,KAA8C,CAA9CA,GACAA,QAAQ+8D,OAAR/8D,CAAgB48D,QAAhB58D,EAA0BmtF,eAA1BntF,KAA8C,CAD9CA,GAEAA,QAAQ+8D,OAAR/8D,CAAgB48D,QAAhB58D,EAA0BmtF,eAA1BntF,KAA8C,CAF9CA,GAGDA,QAAQ+8D,OAAR/8D,CAAgB48D,QAAhB58D,EAA0BmtF,eAA1BntF,CAJF;;MAKA,IAAIiiE,WAAW,GAAf,EAAoB;QAClB,MAAM,IAAIga,QAAJ,CAAa,6BAAb,CAAN;MATsB;IAhVb;;EAAA;;EA8Vf,OAAOwO,QAAP;AArXe,CAAC,EAAlB;;AAyXA,MAAM+E,SAAN,CAAgB;EACdp5G,cAAc;IACZ,IAAI,KAAKA,WAAL,KAAqBo5G,SAAzB,EAAoC;MAClC33F,uBAAY,8BAAZA;IAFU;EADA;;EAOdm0F,UAAUlG,QAAV,EAAoB2J,EAApB,EAAwBha,EAAxB,EAA4B;IAC1B,IAAIia,KAAK5J,SAAS,CAAT,CAAT;;IACA,KAAK,IAAIzsG,IAAI,CAAR,EAAWiJ,KAAKwjG,SAASrtG,MAA9B,EAAsCY,IAAIiJ,EAA1C,EAA8CjJ,GAA9C,EAAmD;MACjDq2G,KAAK,KAAKC,OAAL,CAAaD,EAAb,EAAiB5J,SAASzsG,CAAT,CAAjB,EAA8Bo2G,EAA9B,EAAkCha,EAAlC,CAALia;IAHwB;;IAK1B,OAAOA,EAAP;EAZY;;EAedljC,OAAOhxD,MAAP,EAAeqS,MAAf,EAAuBpK,IAAvB,EAA6B;IAE3B,IAAIyqF,KAAKrgF,SAAS,CAAlB;IAAA,IACE+hF,KAAK/hF,SAAS,CADhB;IAEA,IAAI0hF,KAAK1hF,SAASpK,IAAToK,GAAgB,CAAzB;IAAA,IACEgiF,KAAKhiF,SAASpK,IADhB;IAEAjI,OAAO0yF,IAAP,IAAe1yF,OAAOo0F,IAAP,CAAfp0F;IACAA,OAAOq0F,IAAP,IAAer0F,OAAO+zF,IAAP,CAAf/zF;IACAA,OAAO0yF,IAAP,IAAe1yF,OAAOo0F,IAAP,CAAfp0F;IACAA,OAAOq0F,IAAP,IAAer0F,OAAO+zF,IAAP,CAAf/zF;IACAA,OAAO0yF,IAAP,IAAe1yF,OAAOo0F,IAAP,CAAfp0F;IACAA,OAAOq0F,IAAP,IAAer0F,OAAO+zF,IAAP,CAAf/zF;IACAA,OAAO0yF,EAAP,IAAa1yF,OAAOo0F,EAAP,CAAbp0F;IACAA,OAAOq0F,EAAP,IAAar0F,OAAO+zF,EAAP,CAAb/zF;EA5BY;;EA+Bd9Z,OAAOC,CAAP,EAAUksB,MAAV,EAAkBp1B,MAAlB,EAA0B;IACxBof,uBAAY,iCAAZA;EAhCY;;EAmCd83F,QAAQD,EAAR,EAAYI,QAAZ,EAAsBL,EAAtB,EAA0Bha,EAA1B,EAA8B;IAC5B,MAAMsa,UAAUL,GAAGn/D,KAAnB;IAAA,MACEy/D,WAAWN,GAAGp5D,MADhB;IAEA,IAAI25D,UAAUP,GAAGt0D,KAAjB;IACA,MAAM7K,QAAQu/D,SAASv/D,KAAvB;IACA,MAAM+F,SAASw5D,SAASx5D,MAAxB;IACA,MAAM8E,QAAQ00D,SAAS10D,KAAvB;IACA,IAAI/hD,CAAJ,EAAOsmB,CAAP,EAAUmkC,CAAV,EAAagiB,CAAb,EAAgBoqC,CAAhB,EAAmB1yF,CAAnB;;IAGA,KAAKsmC,IAAI,CAAJA,EAAOzqD,IAAI,CAAhB,EAAmBA,IAAI22G,QAAvB,EAAiC32G,GAAjC,EAAsC;MACpCysE,IAAIzsE,IAAI,CAAJA,GAAQk3C,KAAZu1B;;MACA,KAAKnmD,IAAI,CAAT,EAAYA,IAAIowF,OAAhB,EAAyBpwF,KAAKmkC,GAAL,EAAUgiB,KAAK,CAAxC,EAA2C;QACzC1qB,MAAM0qB,CAAN,IAAWmqC,QAAQnsD,CAAR,CAAX1I;MAHkC;IAVV;;IAiB5B60D,UAAUP,GAAGt0D,KAAHs0D,GAAW,IAArBO;IAEA,MAAME,gBAAgB,CAAtB;IACA,MAAMC,YAAY,IAAIltD,YAAJ,CAAiB3S,QAAQ,IAAI4/D,aAA7B,CAAlB;;IAGA,IAAI5/D,UAAU,CAAd,EAAiB;MAEf,IAAK,MAAK,CAAL,MAAY,CAAjB,EAAoB;QAClB,KAAK/yB,IAAI,CAAJA,EAAOsmC,IAAI,CAAhB,EAAmBtmC,IAAI84B,MAAvB,EAA+B94B,KAAKsmC,KAAKvT,KAAzC,EAAgD;UAC9C6K,MAAM0I,CAAN,KAAY,GAAZ1I;QAFgB;MAFL;IAAjB,OAOO;MACL,KAAK59B,IAAI,CAAJA,EAAOsmC,IAAI,CAAhB,EAAmBtmC,IAAI84B,MAAvB,EAA+B94B,KAAKsmC,KAAKvT,KAAzC,EAAgD;QAC9C6/D,UAAUt1F,GAAVs1F,CAAch1D,MAAM/gC,QAAN+gC,CAAe0I,CAAf1I,EAAkB0I,IAAIvT,KAAtB6K,CAAdg1D,EAA4CD,aAA5CC;QAEA,KAAK5jC,MAAL,CAAY4jC,SAAZ,EAAuBD,aAAvB,EAAsC5/D,KAAtC;QACA,KAAK7uC,MAAL,CAAY0uG,SAAZ,EAAuBD,aAAvB,EAAsC5/D,KAAtC;QAEA6K,MAAMtgC,GAANsgC,CAAUg1D,UAAU/1F,QAAV+1F,CAAmBD,aAAnBC,EAAkCD,gBAAgB5/D,KAAlD6/D,CAAVh1D,EAAoE0I,CAApE1I;MAPG;IA9BqB;;IA+C5B,IAAIi1D,aAAa,EAAjB;IACA,MAAMC,aAAa,EAAnB;;IACA,KAAKj3G,IAAI,CAAT,EAAYA,IAAIg3G,UAAhB,EAA4Bh3G,GAA5B,EAAiC;MAC/Bi3G,WAAW93G,IAAX83G,CAAgB,IAAIptD,YAAJ,CAAiB5M,SAAS,IAAI65D,aAA9B,CAAhBG;IAlD0B;;IAoD5B,IAAIxuG,CAAJ;IAAA,IACEyuG,gBAAgB,CADlB;IAEAb,KAAKS,gBAAgB75D,MAArBo5D;;IAGA,IAAIp5D,WAAW,CAAf,EAAkB;MAEhB,IAAK,MAAK,CAAL,MAAY,CAAjB,EAAoB;QAClB,KAAK45D,IAAI,CAAT,EAAYA,IAAI3/D,KAAhB,EAAuB2/D,GAAvB,EAA4B;UAC1B90D,MAAM80D,CAAN,KAAY,GAAZ90D;QAFgB;MAFJ;IAAlB,OAOO;MACL,KAAK80D,IAAI,CAAT,EAAYA,IAAI3/D,KAAhB,EAAuB2/D,GAAvB,EAA4B;QAE1B,IAAIK,kBAAkB,CAAtB,EAAyB;UACvBF,aAAa3zG,KAAKyd,GAALzd,CAAS6zC,QAAQ2/D,CAAjBxzG,EAAoB2zG,UAApB3zG,CAAb2zG;;UACA,KAAKvsD,IAAIosD,CAAJpsD,EAAOgiB,IAAIqqC,aAAhB,EAA+BrqC,IAAI4pC,EAAnC,EAAuC5rD,KAAKvT,KAALuT,EAAYgiB,GAAnD,EAAwD;YACtD,KAAKhkE,IAAI,CAAT,EAAYA,IAAIuuG,UAAhB,EAA4BvuG,GAA5B,EAAiC;cAC/BwuG,WAAWxuG,CAAX,EAAcgkE,CAAdwqC,IAAmBl1D,MAAM0I,IAAIhiD,CAAV,CAAnBwuG;YAFoD;UAFjC;;UAOvBC,gBAAgBF,UAAhBE;QATwB;;QAY1BA;QACA,MAAM/0F,SAAS80F,WAAWC,aAAX,CAAf;QACA,KAAK/jC,MAAL,CAAYhxD,MAAZ,EAAoB20F,aAApB,EAAmC75D,MAAnC;QACA,KAAK50C,MAAL,CAAY8Z,MAAZ,EAAoB20F,aAApB,EAAmC75D,MAAnC;;QAGA,IAAIi6D,kBAAkB,CAAtB,EAAyB;UACvBzsD,IAAIosD,IAAIG,UAAJH,GAAiB,CAArBpsD;;UACA,KAAKgiB,IAAIqqC,aAAT,EAAwBrqC,IAAI4pC,EAA5B,EAAgC5rD,KAAKvT,KAALuT,EAAYgiB,GAA5C,EAAiD;YAC/C,KAAKhkE,IAAI,CAAT,EAAYA,IAAIuuG,UAAhB,EAA4BvuG,GAA5B,EAAiC;cAC/Bs5C,MAAM0I,IAAIhiD,CAAV,IAAewuG,WAAWxuG,CAAX,EAAcgkE,CAAdwqC,CAAfl1D;YAF6C;UAF1B;QAlBC;MADvB;IAhEqB;;IA8F5B,OAAO;MAAE7K,KAAF;MAAS+F,MAAT;MAAiB8E;IAAjB,CAAP;EAjIY;;AAAA;;AAsIhB,MAAMywD,qBAAN,SAAoC2D,SAApC,CAA8C;EAC5C9tG,OAAOC,CAAP,EAAUksB,MAAV,EAAkBp1B,MAAlB,EAA0B;IACxB,MAAM8zE,MAAM9zE,UAAU,CAAtB;IACAo1B,UAAU,CAAVA;IACA,IAAIlO,CAAJ,EAAO7D,CAAP,EAAU00F,OAAV,EAAmBz6C,IAAnB;IAEA,MAAM06C,QAAQ,CAAC,iBAAf;IACA,MAAMC,OAAO,CAAC,iBAAd;IACA,MAAMvuD,QAAQ,iBAAd;IACA,MAAM8nD,QAAQ,iBAAd;IACA,MAAMv8F,IAAI,iBAAV;IACA,MAAMijG,KAAK,IAAIjjG,CAAf;IAKAiS,IAAIkO,SAAS,CAAblO;;IACA,KAAK7D,IAAIywD,MAAM,CAAf,EAAkBzwD,GAAlB,EAAuB6D,KAAK,CAA5B,EAA+B;MAC7Bhe,EAAEge,CAAF,KAAQgxF,EAARhvG;IAjBsB;;IAqBxBge,IAAIkO,SAAS,CAAblO;IACA6wF,UAAUvG,QAAQtoG,EAAEge,IAAI,CAAN,CAAlB6wF;;IACA,KAAK10F,IAAIywD,MAAM,CAAf,EAAkBzwD,GAAlB,EAAuB6D,KAAK,CAA5B,EAA+B;MAC7Bo2C,OAAOk0C,QAAQtoG,EAAEge,IAAI,CAAN,CAAfo2C;MACAp0D,EAAEge,CAAF,IAAOjS,IAAI/L,EAAEge,CAAF,CAAJjS,GAAW8iG,OAAX9iG,GAAqBqoD,IAA5Bp0D;;MACA,IAAIma,GAAJ,EAAS;QACP6D,KAAK,CAALA;QACA6wF,UAAUvG,QAAQtoG,EAAEge,IAAI,CAAN,CAAlB6wF;QACA7uG,EAAEge,CAAF,IAAOjS,IAAI/L,EAAEge,CAAF,CAAJjS,GAAW8iG,OAAX9iG,GAAqBqoD,IAA5Bp0D;MAHF,OAIO;QACL;MAR2B;IAvBP;;IAoCxBge,IAAIkO,SAAS,CAAblO;IACA6wF,UAAUruD,QAAQxgD,EAAEge,IAAI,CAAN,CAAlB6wF;;IACA,KAAK10F,IAAIywD,MAAM,CAAf,EAAkBzwD,GAAlB,EAAuB6D,KAAK,CAA5B,EAA+B;MAC7Bo2C,OAAO5T,QAAQxgD,EAAEge,IAAI,CAAN,CAAfo2C;MACAp0D,EAAEge,CAAF,KAAQ6wF,UAAUz6C,IAAlBp0D;;MACA,IAAIma,GAAJ,EAAS;QACP6D,KAAK,CAALA;QACA6wF,UAAUruD,QAAQxgD,EAAEge,IAAI,CAAN,CAAlB6wF;QACA7uG,EAAEge,CAAF,KAAQ6wF,UAAUz6C,IAAlBp0D;MAHF,OAIO;QACL;MAR2B;IAtCP;;IAmDxBge,IAAIkO,MAAJlO;IACA6wF,UAAUE,OAAO/uG,EAAEge,IAAI,CAAN,CAAjB6wF;;IACA,KAAK10F,IAAIywD,MAAM,CAAf,EAAkBzwD,GAAlB,EAAuB6D,KAAK,CAA5B,EAA+B;MAC7Bo2C,OAAO26C,OAAO/uG,EAAEge,IAAI,CAAN,CAAdo2C;MACAp0D,EAAEge,CAAF,KAAQ6wF,UAAUz6C,IAAlBp0D;;MACA,IAAIma,GAAJ,EAAS;QACP6D,KAAK,CAALA;QACA6wF,UAAUE,OAAO/uG,EAAEge,IAAI,CAAN,CAAjB6wF;QACA7uG,EAAEge,CAAF,KAAQ6wF,UAAUz6C,IAAlBp0D;MAHF,OAIO;QACL;MAR2B;IArDP;;IAkExB,IAAI4qE,QAAQ,CAAZ,EAAe;MACb5sD,IAAIkO,SAAS,CAAblO;MACA6wF,UAAUC,QAAQ9uG,EAAEge,IAAI,CAAN,CAAlB6wF;;MACA,KAAK10F,IAAIywD,GAAT,EAAczwD,GAAd,EAAmB6D,KAAK,CAAxB,EAA2B;QACzBo2C,OAAO06C,QAAQ9uG,EAAEge,IAAI,CAAN,CAAfo2C;QACAp0D,EAAEge,CAAF,KAAQ6wF,UAAUz6C,IAAlBp0D;;QACA,IAAIma,GAAJ,EAAS;UACP6D,KAAK,CAALA;UACA6wF,UAAUC,QAAQ9uG,EAAEge,IAAI,CAAN,CAAlB6wF;UACA7uG,EAAEge,CAAF,KAAQ6wF,UAAUz6C,IAAlBp0D;QAHF,OAIO;UACL;QARuB;MAHd;IAlES;EADkB;;AAAA;;AAsF9C,MAAMiqG,mBAAN,SAAkC4D,SAAlC,CAA4C;EAC1C9tG,OAAOC,CAAP,EAAUksB,MAAV,EAAkBp1B,MAAlB,EAA0B;IACxB,MAAM8zE,MAAM9zE,UAAU,CAAtB;IACAo1B,UAAU,CAAVA;IACA,IAAIlO,CAAJ,EAAO7D,CAAP;;IAEA,KAAK6D,IAAIkO,MAAJlO,EAAY7D,IAAIywD,MAAM,CAA3B,EAA8BzwD,GAA9B,EAAmC6D,KAAK,CAAxC,EAA2C;MACzChe,EAAEge,CAAF,KAAShe,EAAEge,IAAI,CAAN,IAAWhe,EAAEge,IAAI,CAAN,CAAXhe,GAAsB,CAAtBA,IAA4B,CAArCA;IANsB;;IASxB,KAAKge,IAAIkO,SAAS,CAAblO,EAAgB7D,IAAIywD,GAAzB,EAA8BzwD,GAA9B,EAAmC6D,KAAK,CAAxC,EAA2C;MACzChe,EAAEge,CAAF,KAAShe,EAAEge,IAAI,CAAN,IAAWhe,EAAEge,IAAI,CAAN,CAAXhe,IAAwB,CAAjCA;IAVsB;EADgB;;AAAA;;;;;;;;;;;;;AClxE5C;;AAEA,MAAMowE,SAAN,SAAwBhkB,2BAAxB,CAAqC;EACnC33D,YAAYmkB,GAAZ,EAAiBg3D,WAAjB,EAA8BO,WAA9B,EAA2C;IACzC,MAAMP,WAAN;IAEA,KAAKh3D,GAAL,GAAWA,GAAX;IACA,KAAKuK,IAAL,GAAYvK,IAAIuK,IAAhB;IACA,KAAK0mC,UAAL,GAAkB,CAAlB;IACA,KAAKolD,UAAL,GAAkB,CAAlB;IAEA,MAAMC,uBAAuB,IAA7B;IACA,MAAMC,WAAW;MACfh/B,WADe;MAEfmL,YAAY,CAFG;MAGf8zB,UAAU,GAHK;MAIfC,kBAAkB,IAAIv5G,UAAJ,CAAeo5G,oBAAf,CAJH;MAKfI,mBAAmB,IAAIhyD,WAAJ,CAAgB4xD,oBAAhB,CALJ;MAMfK,qBAAqB,IAAIjyD,WAAJ,CAAgB4xD,oBAAhB,CANN;MAOfM,iBAAiB,IAAI15G,UAAJ,CAAeo5G,oBAAf,CAPF;MAQfO,uBAAuB;IARR,CAAjB;;IAUA,KAAK,IAAI/3G,IAAI,CAAb,EAAgBA,IAAI,GAApB,EAAyB,EAAEA,CAA3B,EAA8B;MAC5By3G,SAASE,gBAATF,CAA0Bz3G,CAA1By3G,IAA+Bz3G,CAA/By3G;MACAA,SAASG,iBAATH,CAA2Bz3G,CAA3By3G,IAAgC,CAAhCA;IArBuC;;IAuBzC,KAAKA,QAAL,GAAgBA,QAAhB;EAxBiC;;EA2BnCj0B,SAAS/gE,CAAT,EAAY;IACV,IAAI80F,aAAa,KAAKA,UAAtB;IACA,IAAIplD,aAAa,KAAKA,UAAtB;;IACA,OAAOolD,aAAa90F,CAApB,EAAuB;MACrB,MAAM6B,IAAI,KAAKpD,GAAL,CAASgP,OAAT,EAAV;;MACA,IAAI5L,MAAM,CAAC,CAAX,EAAc;QACZ,KAAKu3D,GAAL,GAAW,IAAX;QACA,OAAO,IAAP;MAJmB;;MAMrB1pB,aAAcA,cAAc,CAAdA,GAAmB7tC,CAAjC6tC;MACAolD,cAAc,CAAdA;IAVQ;;IAYV,KAAKA,UAAL,GAAkBA,cAAc90F,CAAhC;IACA,KAAK0vC,UAAL,GAAkBA,UAAlB;IACA,KAAK6lD,QAAL,GAAgB,IAAhB;IACA,OAAQ7lD,eAAeolD,UAAfplD,GAA+B,MAAK1vC,CAAL,IAAU,CAAjD;EA1CiC;;EA6CnCi5D,YAAY;IACV,MAAMu8B,YAAY,GAAlB;IAAA,MACEC,mBAAmBD,SADrB;IAEA,IAAIE,uBAAuBF,YAAY,CAAvC;IACA,IAAIj4G,CAAJ,EAAOsmB,CAAP,EAAU+jC,CAAV;IAEA,MAAMotD,WAAW,KAAKA,QAAtB;;IACA,IAAI,CAACA,QAAL,EAAe;MACb;IARQ;;IAWV,MAAMh/B,cAAcg/B,SAASh/B,WAA7B;IACA,IAAIi/B,WAAWD,SAASC,QAAxB;IACA,MAAMC,mBAAmBF,SAASE,gBAAlC;IACA,MAAMC,oBAAoBH,SAASG,iBAAnC;IACA,MAAMC,sBAAsBJ,SAASI,mBAArC;IACA,IAAIj0B,aAAa6zB,SAAS7zB,UAA1B;IACA,IAAIw0B,WAAWX,SAASW,QAAxB;IACA,MAAMN,kBAAkBL,SAASK,eAAjC;IACA,IAAIC,wBAAwBN,SAASM,qBAArC;IAEA,IAAIM,gBAAgB,CAApB;IACA,IAAIC,sBAAsB,KAAK1vC,YAA/B;IACA,IAAIzmD,SAAS,KAAK25D,YAAL,CAAkB,KAAKlT,YAAL,GAAoBuvC,oBAAtC,CAAb;;IAEA,KAAKn4G,IAAI,CAAT,EAAYA,IAAIi4G,SAAhB,EAA2Bj4G,GAA3B,EAAgC;MAC9B,MAAMgE,OAAO,KAAKw/E,QAAL,CAAcI,UAAd,CAAb;MACA,MAAM20B,UAAUR,wBAAwB,CAAxC;;MACA,IAAI/zG,OAAO,GAAX,EAAgB;QACd8zG,gBAAgB,CAAhB,IAAqB9zG,IAArB8zG;QACAC,wBAAwB,CAAxBA;MAFF,OAGO,IAAI/zG,QAAQ,GAAZ,EAAiB;QACtB,IAAIA,OAAO0zG,QAAX,EAAqB;UACnBK,wBAAwBH,kBAAkB5zG,IAAlB,CAAxB+zG;;UACA,KAAKzxF,IAAIyxF,wBAAwB,CAA5BzxF,EAA+B+jC,IAAIrmD,IAAxC,EAA8CsiB,KAAK,CAAnD,EAAsDA,GAAtD,EAA2D;YACzDwxF,gBAAgBxxF,CAAhB,IAAqBqxF,iBAAiBttD,CAAjB,CAArBytD;YACAztD,IAAIwtD,oBAAoBxtD,CAApB,CAAJA;UAJiB;QAArB,OAMO;UACLytD,gBAAgBC,uBAAhB,IAA2CD,gBAAgB,CAAhB,CAA3CA;QARoB;MAAjB,OAUA,IAAI9zG,SAAS,GAAb,EAAkB;QACvB4/E,aAAa,CAAbA;QACA8zB,WAAW,GAAXA;QACAK,wBAAwB,CAAxBA;QACA;MAJK,OAKA;QACL,KAAKl8B,GAAL,GAAW,IAAX;QACA,OAAO,KAAK47B,QAAZ;QACA;MAxB4B;;MA2B9B,IAAIc,OAAJ,EAAa;QACXV,oBAAoBH,QAApB,IAAgCU,QAAhCP;QACAD,kBAAkBF,QAAlB,IAA8BE,kBAAkBQ,QAAlB,IAA8B,CAA5DR;QACAD,iBAAiBD,QAAjB,IAA6BI,gBAAgB,CAAhB,CAA7BH;QACAD;QACA9zB,aACG8zB,WAAWj/B,WAAXi/B,GAA2BA,WAAWj/B,WAAXi/B,GAAyB,CAApDA,GACG9zB,UADH8zB,GAEGr0G,KAAKyd,GAALzd,CACEA,KAAKkb,GAALlb,CAASq0G,WAAWj/B,WAApBp1E,IAAmC,kBAAnCA,GAAwD,CAD1DA,EAEE,EAFFA,IAGI,CANVugF;MAhC4B;;MAwC9Bw0B,WAAWp0G,IAAXo0G;MAEAC,iBAAiBN,qBAAjBM;;MACA,IAAIF,uBAAuBE,aAA3B,EAA0C;QACxC,GAAG;UACDF,wBAAwBD,gBAAxBC;QADF,SAESA,uBAAuBE,aAFhC;;QAGAl2F,SAAS,KAAK25D,YAAL,CAAkB,KAAKlT,YAAL,GAAoBuvC,oBAAtC,CAATh2F;MA/C4B;;MAiD9B,KAAKmE,IAAI,CAAT,EAAYA,IAAIyxF,qBAAhB,EAAuCzxF,GAAvC,EAA4C;QAC1CnE,OAAOm2F,qBAAP,IAAgCR,gBAAgBxxF,CAAhB,CAAhCnE;MAlD4B;IAzBtB;;IA8EVs1F,SAASC,QAATD,GAAoBC,QAApBD;IACAA,SAAS7zB,UAAT6zB,GAAsB7zB,UAAtB6zB;IACAA,SAASW,QAATX,GAAoBW,QAApBX;IACAA,SAASM,qBAATN,GAAiCM,qBAAjCN;IAEA,KAAK7uC,YAAL,GAAoB0vC,mBAApB;EAhIiC;;AAAA;;;;;;;;;;;;;;;ACFrC;;AACA;;AACA;;AAEA,MAAM//B,eAAN,SAA8B7jB,2BAA9B,CAA2C;EACzC33D,YAAYmkB,GAAZ,EAAiBg3D,WAAjB,EAA8B7kC,MAA9B,EAAsC;IACpC,MAAM6kC,WAAN;;IAEA,IAAI,EAAE7kC,kBAAkBzqC,gBAApB,CAAJ,EAA+B;MAC7B,OAAOsY,GAAP;IAJkC;;IAMpC,MAAMs3F,YAAa,KAAKA,SAAL,GAAiBnlE,OAAOhtC,GAAPgtC,CAAW,WAAXA,KAA2B,CAA/D;;IAEA,IAAImlE,aAAa,CAAjB,EAAoB;MAClB,OAAOt3F,GAAP;IATkC;;IAWpC,IAAIs3F,cAAc,CAAdA,KAAoBA,YAAY,EAAZA,IAAkBA,YAAY,EAAlDA,CAAJ,EAA2D;MACzD,MAAM,IAAIn4F,iBAAJ,CAAiB,0BAAyBm4F,SAA1B,EAAhB,CAAN;IAZkC;;IAepC,IAAIA,cAAc,CAAlB,EAAqB;MACnB,KAAK98B,SAAL,GAAiB,KAAK+8B,aAAtB;IADF,OAEO;MACL,KAAK/8B,SAAL,GAAiB,KAAKg9B,YAAtB;IAlBkC;;IAqBpC,KAAKx3F,GAAL,GAAWA,GAAX;IACA,KAAKuK,IAAL,GAAYvK,IAAIuK,IAAhB;IAEA,MAAMktF,SAAU,KAAKA,MAAL,GAActlE,OAAOhtC,GAAPgtC,CAAW,QAAXA,KAAwB,CAAtD;IACA,MAAMgT,OAAQ,KAAKA,IAAL,GAAYhT,OAAOhtC,GAAPgtC,CAAW,KAAXA,EAAkB,kBAAlBA,KAAyC,CAAnE;IACA,MAAMorC,UAAW,KAAKA,OAAL,GAAeprC,OAAOhtC,GAAPgtC,CAAW,SAAXA,KAAyB,CAAzD;IAEA,KAAKulE,QAAL,GAAiBD,SAAStyD,IAATsyD,GAAgB,CAAhBA,IAAsB,CAAvC;IACA,KAAKhW,QAAL,GAAiBlkB,UAAUk6B,MAAVl6B,GAAmBp4B,IAAnBo4B,GAA0B,CAA1BA,IAAgC,CAAjD;IAEA,OAAO,IAAP;EAhCuC;;EAmCzCg6B,gBAAgB;IACd,MAAM9V,WAAW,KAAKA,QAAtB;IAEA,MAAM/5B,eAAe,KAAKA,YAA1B;IACA,MAAMzmD,SAAS,KAAK25D,YAAL,CAAkBlT,eAAe+5B,QAAjC,CAAf;IAEA,MAAMt8C,OAAO,KAAKA,IAAlB;IACA,MAAMsyD,SAAS,KAAKA,MAApB;IAEA,MAAME,WAAW,KAAK33F,GAAL,CAASiP,QAAT,CAAkBwyE,QAAlB,CAAjB;IACA,KAAK9mB,GAAL,GAAW,CAACg9B,SAASz5G,MAArB;;IACA,IAAI,KAAKy8E,GAAT,EAAc;MACZ;IAZY;;IAed,IAAIi9B,QAAQ,CAAZ;IAAA,IACEC,SAAS,CADX;IAEA,IAAIC,SAAS,CAAb;IAAA,IACEC,UAAU,CADZ;IAEA,IAAI33F,MAAMsnD,YAAV;IACA,IAAI5oE,CAAJ;;IAEA,IAAIqmD,SAAS,CAATA,IAAcsyD,WAAW,CAA7B,EAAgC;MAG9B,KAAK34G,IAAI,CAAT,EAAYA,IAAI2iG,QAAhB,EAA0B,EAAE3iG,CAA5B,EAA+B;QAC7B,IAAIskB,IAAIu0F,SAAS74G,CAAT,IAAc84G,KAAtB;QACAx0F,KAAKA,KAAK,CAAVA;QACAA,KAAKA,KAAK,CAAVA;QACAA,KAAKA,KAAK,CAAVA;QACAw0F,QAAS,KAAI,CAAJ,KAAU,CAAnBA;QACA32F,OAAOb,KAAP,IAAgBgD,CAAhBnC;MAT4B;IAAhC,OAWO,IAAIkkC,SAAS,CAAb,EAAgB;MACrB,KAAKrmD,IAAI,CAAT,EAAYA,IAAI24G,MAAhB,EAAwB,EAAE34G,CAA1B,EAA6B;QAC3BmiB,OAAOb,KAAP,IAAgBu3F,SAAS74G,CAAT,CAAhBmiB;MAFmB;;MAIrB,OAAOniB,IAAI2iG,QAAX,EAAqB,EAAE3iG,CAAvB,EAA0B;QACxBmiB,OAAOb,GAAP,IAAca,OAAOb,MAAMq3F,MAAb,IAAuBE,SAAS74G,CAAT,CAArCmiB;QACAb;MANmB;IAAhB,OAQA,IAAI+kC,SAAS,EAAb,EAAiB;MACtB,MAAM6yD,gBAAgBP,SAAS,CAA/B;;MACA,KAAK34G,IAAI,CAAT,EAAYA,IAAIk5G,aAAhB,EAA+B,EAAEl5G,CAAjC,EAAoC;QAClCmiB,OAAOb,KAAP,IAAgBu3F,SAAS74G,CAAT,CAAhBmiB;MAHoB;;MAKtB,OAAOniB,IAAI2iG,QAAX,EAAqB3iG,KAAK,CAA1B,EAA6B;QAC3B,MAAMm5G,MACH,CAAC,UAASn5G,CAAT,IAAc,IAAd,KAAuB,CAAxB,KACA64G,SAAS74G,IAAI,CAAb,IAAkB,IADlB,KAEC,QAAOshB,MAAM43F,aAAb,IAA8B,IAA9B,KAAuC,CAFxC,KAGA/2F,OAAOb,MAAM43F,aAAN53F,GAAsB,CAA7B,IAAkC,IAHlC,CADH;QAKAa,OAAOb,KAAP,IAAiB63F,OAAO,CAAPA,GAAY,IAA7Bh3F;QACAA,OAAOb,KAAP,IAAgB63F,MAAM,IAAtBh3F;MAZoB;IAAjB,OAcA;MACL,MAAMi3F,YAAY,IAAIh7G,UAAJ,CAAeu6G,SAAS,CAAxB,CAAlB;MACA,MAAMU,UAAW,MAAKhzD,IAAL,IAAa,CAA9B;MACA,IAAI//B,IAAI,CAAR;MAAA,IACEmkC,IAAIme,YADN;MAEA,MAAM6V,UAAU,KAAKA,OAArB;;MACA,KAAKz+E,IAAI,CAAT,EAAYA,IAAIy+E,OAAhB,EAAyB,EAAEz+E,CAA3B,EAA8B;QAC5B,KAAK,IAAI2xE,KAAK,CAAd,EAAiBA,KAAKgnC,MAAtB,EAA8B,EAAEhnC,EAAhC,EAAoC;UAClC,IAAIqnC,SAAS3yD,IAAb,EAAmB;YACjByyD,QAASA,SAAS,CAATA,GAAeD,SAASvyF,GAAT,IAAgB,IAAxCwyF;YACAE,UAAU,CAAVA;UAHgC;;UAKlCI,UAAUznC,EAAV,IACGynC,UAAUznC,EAAV,KAAiBmnC,SAAUE,SAAS3yD,IAApC+yD,IAA8CC,OADjDD;UAEAJ,UAAU3yD,IAAV2yD;UACAD,SAAUA,UAAU1yD,IAAV0yD,GAAkBK,UAAUznC,EAAV,CAA5BonC;UACAE,WAAW5yD,IAAX4yD;;UACA,IAAIA,WAAW,CAAf,EAAkB;YAChB92F,OAAOsoC,GAAP,IAAesuD,UAAWE,UAAU,CAArBF,GAA2B,IAA1C52F;YACA82F,WAAW,CAAXA;UAZgC;QADR;MANzB;;MAuBL,IAAIA,UAAU,CAAd,EAAiB;QACf92F,OAAOsoC,GAAP,IACG,WAAW,IAAIwuD,OAAf,KAA4BH,QAAU,MAAM,IAAIG,OAAV,IAAsB,CAA5D,CADH92F;MAxBG;IAvDO;;IAmFd,KAAKymD,YAAL,IAAqB+5B,QAArB;EAtHuC;;EAyHzC+V,eAAe;IACb,MAAM/V,WAAW,KAAKA,QAAtB;IACA,MAAMiW,WAAW,KAAKA,QAAtB;IAEA,MAAMJ,YAAY,KAAKt3F,GAAL,CAASgP,OAAT,EAAlB;IACA,MAAM2oF,WAAW,KAAK33F,GAAL,CAASiP,QAAT,CAAkBwyE,QAAlB,CAAjB;IACA,KAAK9mB,GAAL,GAAW,CAACg9B,SAASz5G,MAArB;;IACA,IAAI,KAAKy8E,GAAT,EAAc;MACZ;IARW;;IAWb,MAAMjT,eAAe,KAAKA,YAA1B;IACA,MAAMzmD,SAAS,KAAK25D,YAAL,CAAkBlT,eAAe+5B,QAAjC,CAAf;IAEA,IAAI2W,UAAUn3F,OAAOnB,QAAPmB,CAAgBymD,eAAe+5B,QAA/BxgF,EAAyCymD,YAAzCzmD,CAAd;;IACA,IAAIm3F,QAAQl6G,MAARk6G,KAAmB,CAAvB,EAA0B;MACxBA,UAAU,IAAIl7G,UAAJ,CAAeukG,QAAf,CAAV2W;IAhBW;;IAmBb,IAAIt5G,CAAJ;IAAA,IACEsmB,IAAIsiD,YADN;IAAA,IAEE2wC,EAFF;IAAA,IAGEj1F,CAHF;;IAIA,QAAQk0F,SAAR;MACE,KAAK,CAAL;QACE,KAAKx4G,IAAI,CAAT,EAAYA,IAAI2iG,QAAhB,EAA0B,EAAE3iG,CAA5B,EAA+B;UAC7BmiB,OAAOmE,GAAP,IAAcuyF,SAAS74G,CAAT,CAAdmiB;QAFJ;;QAIE;;MACF,KAAK,CAAL;QACE,KAAKniB,IAAI,CAAT,EAAYA,IAAI44G,QAAhB,EAA0B,EAAE54G,CAA5B,EAA+B;UAC7BmiB,OAAOmE,GAAP,IAAcuyF,SAAS74G,CAAT,CAAdmiB;QAFJ;;QAIE,OAAOniB,IAAI2iG,QAAX,EAAqB,EAAE3iG,CAAvB,EAA0B;UACxBmiB,OAAOmE,CAAP,IAAanE,OAAOmE,IAAIsyF,QAAX,IAAuBC,SAAS74G,CAAT,CAAvBmiB,GAAsC,IAAnDA;UACAmE;QANJ;;QAQE;;MACF,KAAK,CAAL;QACE,KAAKtmB,IAAI,CAAT,EAAYA,IAAI2iG,QAAhB,EAA0B,EAAE3iG,CAA5B,EAA+B;UAC7BmiB,OAAOmE,GAAP,IAAegzF,QAAQt5G,CAAR,IAAa64G,SAAS74G,CAAT,CAAbs5G,GAA4B,IAA3Cn3F;QAFJ;;QAIE;;MACF,KAAK,CAAL;QACE,KAAKniB,IAAI,CAAT,EAAYA,IAAI44G,QAAhB,EAA0B,EAAE54G,CAA5B,EAA+B;UAC7BmiB,OAAOmE,GAAP,IAAe,SAAQtmB,CAAR,KAAc,CAAd,IAAmB64G,SAAS74G,CAAT,CAAlCmiB;QAFJ;;QAIE,OAAOniB,IAAI2iG,QAAX,EAAqB,EAAE3iG,CAAvB,EAA0B;UACxBmiB,OAAOmE,CAAP,IACI,CAACgzF,QAAQt5G,CAAR,IAAamiB,OAAOmE,IAAIsyF,QAAX,CAAbU,IAAsC,CAAvC,IAA4CT,SAAS74G,CAAT,CAA5C,GAA2D,IAD/DmiB;UAEAmE;QAPJ;;QASE;;MACF,KAAK,CAAL;QAGE,KAAKtmB,IAAI,CAAT,EAAYA,IAAI44G,QAAhB,EAA0B,EAAE54G,CAA5B,EAA+B;UAC7Bu5G,KAAKD,QAAQt5G,CAAR,CAALu5G;UACAj1F,IAAIu0F,SAAS74G,CAAT,CAAJskB;UACAnC,OAAOmE,GAAP,IAAcizF,KAAKj1F,CAAnBnC;QANJ;;QAQE,OAAOniB,IAAI2iG,QAAX,EAAqB,EAAE3iG,CAAvB,EAA0B;UACxBu5G,KAAKD,QAAQt5G,CAAR,CAALu5G;UACA,MAAMC,SAASF,QAAQt5G,IAAI44G,QAAZ,CAAf;UACA,MAAMxW,OAAOjgF,OAAOmE,IAAIsyF,QAAX,CAAb;UACA,MAAMv1F,IAAI++E,OAAOmX,EAAPnX,GAAYoX,MAAtB;UAEA,IAAIC,KAAKp2F,IAAI++E,IAAb;;UACA,IAAIqX,KAAK,CAAT,EAAY;YACVA,KAAK,CAACA,EAANA;UARsB;;UAUxB,IAAIC,KAAKr2F,IAAIk2F,EAAb;;UACA,IAAIG,KAAK,CAAT,EAAY;YACVA,KAAK,CAACA,EAANA;UAZsB;;UAcxB,IAAIC,KAAKt2F,IAAIm2F,MAAb;;UACA,IAAIG,KAAK,CAAT,EAAY;YACVA,KAAK,CAACA,EAANA;UAhBsB;;UAmBxBr1F,IAAIu0F,SAAS74G,CAAT,CAAJskB;;UACA,IAAIm1F,MAAMC,EAAND,IAAYA,MAAME,EAAtB,EAA0B;YACxBx3F,OAAOmE,GAAP,IAAc87E,OAAO99E,CAArBnC;UADF,OAEO,IAAIu3F,MAAMC,EAAV,EAAc;YACnBx3F,OAAOmE,GAAP,IAAcizF,KAAKj1F,CAAnBnC;UADK,OAEA;YACLA,OAAOmE,GAAP,IAAckzF,SAASl1F,CAAvBnC;UAzBsB;QAR5B;;QAoCE;;MACF;QACE,MAAM,IAAI9B,iBAAJ,CAAiB,0BAAyBm4F,SAA1B,EAAhB,CAAN;IApEJ;;IAsEA,KAAK5vC,YAAL,IAAqB+5B,QAArB;EAtNuC;;AAAA;;;;;;;;;;;;;;;ACJ3C;;AAEA,MAAM3pB,eAAN,SAA8BtkB,2BAA9B,CAA2C;EACzC33D,YAAYmkB,GAAZ,EAAiBg3D,WAAjB,EAA8B;IAC5B,MAAMA,WAAN;IAEA,KAAKh3D,GAAL,GAAWA,GAAX;IACA,KAAKuK,IAAL,GAAYvK,IAAIuK,IAAhB;EALuC;;EAQzCiwD,YAAY;IAKV,MAAMk+B,eAAe,KAAK14F,GAAL,CAASiP,QAAT,CAAkB,CAAlB,CAArB;;IACA,IAAI,CAACypF,YAAD,IAAiBA,aAAax6G,MAAbw6G,GAAsB,CAAvC,IAA4CA,aAAa,CAAb,MAAoB,GAApE,EAAyE;MACvE,KAAK/9B,GAAL,GAAW,IAAX;MACA;IARQ;;IAWV,IAAI15D,MAAJ;IACA,IAAIymD,eAAe,KAAKA,YAAxB;IACA,IAAInmD,IAAIm3F,aAAa,CAAb,CAAR;;IACA,IAAIn3F,IAAI,GAAR,EAAa;MAEXN,SAAS,KAAK25D,YAAL,CAAkBlT,eAAenmD,CAAfmmD,GAAmB,CAArC,CAATzmD;MACAA,OAAOymD,cAAP,IAAyBgxC,aAAa,CAAb,CAAzBz3F;;MACA,IAAIM,IAAI,CAAR,EAAW;QACT,MAAMlhB,SAAS,KAAK2f,GAAL,CAASiP,QAAT,CAAkB1N,CAAlB,CAAf;QACAN,OAAOV,GAAPU,CAAW5gB,MAAX4gB,EAAmBymD,YAAnBzmD;QACAymD,gBAAgBnmD,CAAhBmmD;MAPS;IAAb,OASO;MACLnmD,IAAI,MAAMA,CAAVA;MACA,MAAMha,IAAImxG,aAAa,CAAb,CAAV;MACAz3F,SAAS,KAAK25D,YAAL,CAAkBlT,eAAenmD,CAAfmmD,GAAmB,CAArC,CAATzmD;;MACA,KAAK,IAAIniB,IAAI,CAAb,EAAgBA,IAAIyiB,CAApB,EAAuBziB,GAAvB,EAA4B;QAC1BmiB,OAAOymD,cAAP,IAAyBngE,CAAzB0Z;MALG;IAvBG;;IA+BV,KAAKymD,YAAL,GAAoBA,YAApB;EAvCuC;;AAAA;;;;;;;;;;;;;;;ACF3C;;AAWA;;AACA;;AAQA;;AAMA;;AACA;;AAOA;;AAQA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAGA,MAAMixC,oBAAoB,CACxB,CAAC,MAAD,EAAS,MAAT,CADwB,EAExB,CAAC,QAAD,EAAW,QAAX,CAFwB,CAA1B;AAOA,MAAMC,wBAAwB,IAA9B;AAEA,MAAMC,yBAAyB,CAC7B,QAD6B,EAE7B,MAF6B,EAG7B,OAH6B,EAI7B,MAJ6B,EAK7B,sBAL6B,EAM7B,WAN6B,EAO7B,aAP6B,EAQ7B,MAR6B,EAS7B,iBAT6B,EAU7B,cAV6B,EAW7B,SAX6B,EAY7B,cAZ6B,EAa7B,YAb6B,EAc7B,UAd6B,EAe7B,aAf6B,EAgB7B,QAhB6B,EAiB7B,YAjB6B,EAkB7B,UAlB6B,EAmB7B,aAnB6B,EAoB7B,MApB6B,EAqB7B,WArB6B,EAsB7B,SAtB6B,EAuB7B,MAvB6B,EAwB7B,UAxB6B,CAA/B;AA2BA,MAAMC,+BAA+B,CACnC,MADmC,EAEnC,iBAFmC,EAGnC,aAHmC,EAInC,aAJmC,EAKnC,aALmC,EAMnC,gBANmC,EAOnC,SAPmC,EAQnC,YARmC,EASnC,WATmC,EAUnC,UAVmC,EAWnC,QAXmC,CAArC;;AAcA,SAASC,YAAT,CAAsB1uF,UAAtB,EAAkC;EAChC,IAAI,CAACA,WAAW60C,UAAhB,EAA4B;IAC1B;EAF8B;;EAIhC,IAAI70C,WAAW60C,UAAX70C,CAAsB,CAAtBA,MAA6B5e,2BAAqB,CAArBA,CAAjC,EAA0D;IACxD;EAL8B;;EAQhC,MAAMmyC,QAAQ,QAAQvzB,WAAW60C,UAAX70C,CAAsB,CAAtBA,CAAtB;EACA,MAAMw7C,eAAex7C,WAAW2f,MAAhC;;EACA,WAAW8R,KAAX,IAAoB+pB,YAApB,EAAkC;IAChCA,aAAa/pB,KAAb,KAAuB8B,KAAvBioB;EAX8B;;EAahCx7C,WAAWy7C,YAAXz7C,IAA2BuzB,KAA3BvzB;AApIF;;AAuIA,SAAS2uF,eAAT,CAAyB3uF,UAAzB,EAAqCkhB,eAArC,EAAsD;EACpD,IAAIlhB,WAAW0hB,cAAf,EAA+B;IAC7B;EAFkD;;EAIpD,IAAIR,oBAAoBlhB,WAAWu5C,eAAnC,EAAoD;IAClD;EALkD;;EAOpD,IAAIv5C,WAAW+4C,SAAX/4C,YAAgC86C,oCAApC,EAA0D;IACxD;EARkD;;EAUpD,MAAM/B,YAAY,EAAlB;EAAA,MACEh4B,mBAAmBiB,kCADrB;;EAEA,WAAWV,QAAX,IAAuBJ,eAAvB,EAAwC;IACtC,IAAIlhB,WAAWk6C,uBAAf,EAAwC;MACtC,IAAIl6C,WAAW+4C,SAAX/4C,CAAqBR,GAArBQ,CAAyBshB,QAAzBthB,CAAJ,EAAwC;QACtC;MAFoC;IAAxC,OAIO,IAAIA,WAAWy5C,WAAf,EAA4B;MACjC,IACEz5C,WAAW8hB,WAAX9hB,CAAuBnsB,MAAvBmsB,KAAkC,CAAlCA,IACAA,WAAW8hB,WAAX9hB,CAAuBshB,QAAvBthB,MAAqChL,SAFvC,EAGE;QACA;MAL+B;IALG;;IAatC,MAAM+sB,YAAYb,gBAAgBI,QAAhB,CAAlB;IACA,MAAMjC,UAAU2B,iCAAmBe,SAAnBf,EAA8BD,gBAA9BC,CAAhB;;IACA,IAAI3B,YAAY,CAAC,CAAjB,EAAoB;MAClB05B,UAAUz3B,QAAV,IAAsBpsB,OAAOC,YAAPD,CAAoBmqB,OAApBnqB,CAAtB6jD;IAhBoC;EAZY;;EA+BpD,IAAIA,UAAUllE,MAAVklE,GAAmB,CAAvB,EAA0B;IACxB/4C,WAAW+4C,SAAX/4C,CAAqB4uF,KAArB5uF,CAA2B+4C,SAA3B/4C;EAhCkD;AAvItD;;AA+KA,SAAS6uF,sBAAT,CAAgC7uF,UAAhC,EAA4C;EAC1C,IAAI,CAACA,WAAWm6C,iBAAhB,EAAmC;IACjC;EAFwC;;EAI1C,IAAIn6C,WAAW+4C,SAAX/4C,YAAgC86C,oCAApC,EAA0D;IACxD;EALwC;;EAO1C,MAAM/B,YAAY,EAAlB;;EACA,WAAWz3B,QAAX,IAAuBthB,WAAWm6C,iBAAlC,EAAqD;IACnD,IAAIn6C,WAAW+4C,SAAX/4C,CAAqBR,GAArBQ,CAAyBshB,QAAzBthB,CAAJ,EAAwC;MACtC;IAFiD;;IAInD+4C,UAAUz3B,QAAV,IAAsBthB,WAAWm6C,iBAAXn6C,CAA6BshB,QAA7BthB,CAAtB+4C;EAZwC;;EAc1C,IAAIA,UAAUllE,MAAVklE,GAAmB,CAAvB,EAA0B;IACxB/4C,WAAW+4C,SAAX/4C,CAAqB4uF,KAArB5uF,CAA2B+4C,SAA3B/4C;EAfwC;AA/K5C;;AAkMA,MAAM8uF,KAAN,CAAY;EACVt9G,YACEu9G,gBADF,EAEEjwC,QAFF,EAGEz/B,OAHF,EAIE6/B,MAJF,EAKEvzB,KALF,EAMEurB,OANF,EAOE83C,cAPF,EAQEC,OARF,EASEC,QATF,EAUE;IACA,KAAKH,gBAAL,GAAwBA,gBAAxB;IACA,KAAKjwC,QAAL,GAAgBA,QAAhB;IACA,KAAKz/B,OAAL,GAAeA,OAAf;IACA,KAAK6/B,MAAL,GAAcA,MAAd;IACA,KAAKvzB,KAAL,GAAaA,KAAb;IACA,KAAKurB,OAAL,GAAeA,OAAf;IACA,KAAK83C,cAAL,GAAsBA,cAAtB;IACA,KAAKC,OAAL,GAAeA,OAAf;IACA,KAAKC,QAAL,GAAgBA,QAAhB;IAEA,MAAMxrE,WAAWH,qCAAuBlE,OAAvBkE,CAAjB;IACA,KAAKI,YAAL,GAAoBD,SAASC,YAA7B;IACA,KAAKC,oBAAL,GAA4BF,SAASE,oBAArC;IACA,KAAKC,qBAAL,GAA6BH,SAASG,qBAAtC;EAzBQ;;EA4BVsrE,gBACEJ,gBADF,EAEEjwC,QAFF,EAGEz/B,OAHF,EAIE6/B,MAJF,EAKEvzB,KALF,EAMEurB,OANF,EAOE83C,cAPF,EAQEC,OARF,EASEC,QATF,EAUE;IACA,OACE,KAAKH,gBAAL,KAA0BA,gBAA1B,IACA,KAAKjwC,QAAL,KAAkBA,QADlB,IAEA,KAAKz/B,OAAL,KAAiBA,OAFjB,IAGA,KAAK6/B,MAAL,KAAgBA,MAHhB,IAIA,KAAKvzB,KAAL,KAAeA,KAJf,IAKA,KAAKurB,OAAL,KAAiBA,OALjB,IAMA,KAAK83C,cAAL,KAAwBA,cANxB,IAOA,KAAKC,OAAL,KAAiBA,OAPjB,IAQA,KAAKC,QAAL,KAAkBA,QATpB;EAvCQ;;AAAA;;AAqDZ,SAASE,KAAT,CAAexiF,EAAf,EAAmBC,EAAnB,EAAuB;EACrB,OAAQ,OAAM,CAAN,IAAWA,EAAnB;AAxPF;;AA2PA,SAASwiF,gBAAT,CAA0Br1G,KAA1B,EAAiCwlC,KAAjC,EAAwC9nC,KAAxC,EAA+C;EAC7CsC,MAAMwlC,QAAQ,CAAd,IAAmB9nC,KAAnBsC;EACAA,MAAMwlC,KAAN,IAAe9nC,UAAU,CAAzBsC;AA7PF;;AAgQA,SAASs1G,WAAT,CAAqB1iF,EAArB,EAAyBC,EAAzB,EAA6B;EAC3B,MAAMn1B,QAAS,OAAM,CAAN,IAAWm1B,EAA1B;EACA,OAAOn1B,QAAS,KAAK,EAAdA,GAAoBA,QAAQ,OAA5BA,GAAsCA,KAA7C;AAlQF;;AAqQA,SAAS63G,KAAT,CAAe3iF,EAAf,EAAmBC,EAAnB,EAAuBE,EAAvB,EAA2BC,EAA3B,EAA+B;EAC7B,OAAQ,OAAM,EAAN,KAAaH,MAAM,EAAnB,KAA0BE,MAAM,CAAhC,IAAqCC,EAA7C;AAtQF;;AAyQA,SAASwiF,QAAT,CAAkB93G,KAAlB,EAAyB;EAUvB,OAAOwd,OAAOC,YAAPD,CAAqBxd,SAAS,CAATA,GAAc,IAAnCwd,EAAyCxd,QAAQ,IAAjDwd,CAAP;AAnRF;;AAsRA,SAASu6F,YAAT,CAAsB/3G,KAAtB,EAA6B;EAW3B,IAAIA,QAAQ,MAAZ,EAAoB;IAClBA,QAAQ,MAARA;EADF,OAEO,IAAIA,QAAQ,CAAC,MAAb,EAAqB;IAC1BA,QAAQ,CAAC,MAATA;EAdyB;;EAgB3B,OAAOwd,OAAOC,YAAPD,CAAqBxd,SAAS,CAATA,GAAc,IAAnCwd,EAAyCxd,QAAQ,IAAjDwd,CAAP;AAtSF;;AAySA,SAASw6F,cAAT,CAAwB12D,IAAxB,EAA8B;EAC5B,MAAM6uB,SAAS7uB,KAAKtsB,SAALssB,CAAe,CAAfA,CAAf;EACA,OACE7vB,4BAAW0+C,MAAX1+C,EAAmB,CAAnBA,MAA0B,UAA1BA,IAAwCpU,yBAAc8yD,MAAd9yD,MAA0B,MADpE;AA3SF;;AAgTA,SAAS46F,wBAAT,CAAkC32D,IAAlC,EAAwC;EACtC,MAAM6uB,SAAS7uB,KAAKtsB,SAALssB,CAAe,CAAfA,CAAf;EACA,OAAOjkC,yBAAc8yD,MAAd9yD,MAA0B,MAAjC;AAlTF;;AAqTA,SAAS66F,cAAT,CAAwB52D,IAAxB,EAA8B;EAC5B,MAAM6uB,SAAS7uB,KAAKtsB,SAALssB,CAAe,CAAfA,CAAf;EACA,OAAOjkC,yBAAc8yD,MAAd9yD,MAA0B,MAAjC;AAvTF;;AA0TA,SAAS86F,WAAT,CAAqB72D,IAArB,EAA2B;EACzB,MAAM6uB,SAAS7uB,KAAKtsB,SAALssB,CAAe,CAAfA,CAAf;;EAEA,IAAI6uB,OAAO,CAAP,MAAc,IAAdA,IAAsBA,OAAO,CAAP,MAAc,IAAxC,EAA8C;IAC5C,OAAO,IAAP;EAJuB;;EAQzB,IAAIA,OAAO,CAAP,MAAc,IAAdA,IAAsBA,OAAO,CAAP,MAAc,IAAxC,EAA8C;IAC5C,OAAO,IAAP;EATuB;;EAWzB,OAAO,KAAP;AArUF;;AA6UA,SAASioC,SAAT,CAAmB92D,IAAnB,EAAyB;EACvB,MAAM6uB,SAAS7uB,KAAKtsB,SAALssB,CAAe,CAAfA,CAAf;;EACA,IACgC6uB,OAAO,CAAP,KAAa,CAAbA,IAGDA,OAAO,CAAP,KAAa,CAHZA,IAI9BA,OAAO,CAAP,KAAa,CALf,EAME;IACA,OAAO,IAAP;EATqB;;EAWvB,OAAO,KAAP;AAxVF;;AA2VA,SAASkoC,eAAT,CAAyB/2D,IAAzB,EAA+B;EAAEz7B,IAAF;EAAQqjB,OAAR;EAAiBo4B;AAAjB,CAA/B,EAA6D;EAC3D,IAAIg3C,QAAJ,EAAcC,WAAd;;EAEA,IAAIP,eAAe12D,IAAf,KAAwB22D,yBAAyB32D,IAAzB,CAA5B,EAA4D;IAC1D,IAAIggB,SAAJ,EAAe;MACbg3C,WAAW,cAAXA;IADF,OAEO;MACLA,WAAW,UAAXA;IAJwD;EAA5D,OAMO,IAAIJ,eAAe52D,IAAf,CAAJ,EAA0B;IAC/B,IAAIggB,SAAJ,EAAe;MACbg3C,WAAW,cAAXA;IADF,OAEO;MACLA,WAAW,UAAXA;IAJ6B;EAA1B,OAMA,IAAIH,YAAY72D,IAAZ,CAAJ,EAAuB;IAC5B,IAAIggB,SAAJ,EAAe;MACbg3C,WAAW,cAAXA;IADF,OAEO;MACLA,WAAWzyF,SAAS,SAATA,GAAqB,SAArBA,GAAiC,OAA5CyyF;IAJ0B;EAAvB,OAMA,IAAIF,UAAU92D,IAAV,CAAJ,EAAqB;IAC1B,IAAIggB,SAAJ,EAAe;MACbg3C,WAAW,cAAXA;MACAC,cAAc,eAAdA;IAFF,OAGO;MACLD,WAAWzyF,SAAS,SAATA,GAAqB,SAArBA,GAAiC,OAA5CyyF;MACAC,cAAc,QAAdA;IANwB;EAArB,OAQA;IACL14G,gBAAK,mEAALA;IACAy4G,WAAWzyF,IAAXyyF;IACAC,cAAcrvE,OAAdqvE;EAhCyD;;EAmC3D,OAAO,CAACD,QAAD,EAAWC,WAAX,CAAP;AA9XF;;AAiYA,SAASC,yBAAT,CAAmC35F,GAAnC,EAAwC45F,QAAxC,EAAkD;EAChD,WAAW7uE,QAAX,IAAuB6uE,QAAvB,EAAiC;IAC/B55F,IAAI,CAAC+qB,QAAL,IAAiB6uE,SAAS7uE,QAAT,CAAjB/qB;EAF8C;AAjYlD;;AAuYA,SAAS65F,eAAT,CAAyBj1F,QAAzB,EAAmC4lB,gBAAnC,EAAqDe,WAArD,EAAkE;EAChE,MAAMuuE,aAAa,EAAnB;EACA,IAAIhxE,OAAJ;;EACA,KAAK,IAAI5qC,IAAI,CAAR,EAAWiJ,KAAKyd,SAAStnB,MAA9B,EAAsCY,IAAIiJ,EAA1C,EAA8CjJ,GAA9C,EAAmD;IACjD4qC,UAAU2B,iCAAmB7lB,SAAS1mB,CAAT,CAAnBusC,EAAgCD,gBAAhCC,CAAV3B;;IACA,IAAIA,YAAY,CAAC,CAAjB,EAAoB;MAClBgxE,WAAW57G,CAAX,IAAgB4qC,OAAhBgxE;IAH+C;EAHa;;EAShE,WAAW/uE,QAAX,IAAuBQ,WAAvB,EAAoC;IAClCzC,UAAU2B,iCAAmBc,YAAYR,QAAZ,CAAnBN,EAA0CD,gBAA1CC,CAAV3B;;IACA,IAAIA,YAAY,CAAC,CAAjB,EAAoB;MAClBgxE,WAAW,CAAC/uE,QAAZ,IAAwBjC,OAAxBgxE;IAHgC;EAT4B;;EAehE,OAAOA,UAAP;AAtZF;;AAyZA,SAASC,gBAAT,CAA0BhvE,QAA1B,EAAoCs5B,GAApC,EAAyC21C,cAAc,KAAvD,EAA8D;EAC5D,QAAQ31C,IAAI/mE,MAAZ;IACE,KAAK,CAAL;MACE,OAAO+mE,IAAIhlD,UAAJglD,CAAe,CAAfA,CAAP;;IACF,KAAK,CAAL;MACE,OAAQA,IAAIhlD,UAAJglD,CAAe,CAAfA,KAAqB,CAArBA,GAA0BA,IAAIhlD,UAAJglD,CAAe,CAAfA,CAAlC;EAJJ;;EAMA,MAAM9nD,MAAO,oCAAmCwuB,QAAS,OAAMs5B,GAAI,IAAnE;;EACA,IAAI21C,WAAJ,EAAiB;IACf,MAAM,IAAIz7F,iBAAJ,CAAgBhC,GAAhB,CAAN;EAT0D;;EAW5Dvb,gBAAKub,GAALvb;EACA,OAAOqjE,GAAP;AAraF;;AAmbA,SAAS41C,aAAT,CAAuBpvE,iBAAvB,EAA0CqvE,QAA1C,EAAoDC,cAApD,EAAoE;EAClE,MAAMC,SAAS9yG,OAAOC,MAAPD,CAAc,IAAdA,CAAf;EACA,MAAMwyG,aAAa,EAAnB;EACA,IAAIO,sBAAsB,CAA1B;EACA,IAAIC,4BAA4BvC,kBAAkBsC,mBAAlB,EAAuC,CAAvCtC,CAAhC;EACA,IAAIwC,qBAAqBxC,kBAAkBsC,mBAAlB,EAAuC,CAAvCtC,CAAzB;;EACA,SAASS,gBAAT,IAA6B3tE,iBAA7B,EAAgD;IAC9C2tE,oBAAoB,CAApBA;IACA,IAAI1tE,UAAUD,kBAAkB2tE,gBAAlB,CAAd;;IAGA,IAAI,CAAC0B,SAASpvE,OAAT,CAAL,EAAwB;MACtB;IAN4C;;IAQ9C,IAAIwvE,4BAA4BC,kBAAhC,EAAoD;MAClDF;;MACA,IAAIA,uBAAuBtC,kBAAkBz6G,MAA7C,EAAqD;QACnD0D,gBAAK,4CAALA;QACA;MAJgD;;MAMlDs5G,4BAA4BvC,kBAAkBsC,mBAAlB,EAAuC,CAAvCtC,CAA5BuC;MACAC,qBAAqBxC,kBAAkBsC,mBAAlB,EAAuC,CAAvCtC,CAArBwC;IAf4C;;IAiB9C,MAAMC,eAAeF,2BAArB;;IACA,IAAIxvE,YAAY,CAAhB,EAAmB;MACjBA,UAAUqvE,cAAVrvE;IAnB4C;;IAsB9CsvE,OAAOI,YAAP,IAAuB1vE,OAAvBsvE;IACAN,WAAWtB,gBAAX,IAA+BgC,YAA/BV;EA7BgE;;EA+BlE,OAAO;IACLA,UADK;IAELjvE,mBAAmBuvE,MAFd;IAGLE;EAHK,CAAP;AAldF;;AAydA,SAASG,SAAT,CAAmB/+D,MAAnB,EAA2Bg/D,SAA3B,EAAsC;EAGpC,MAAMr7B,QAAQ,EAAd;;EACA,WAAWt0C,QAAX,IAAuB2Q,MAAvB,EAA+B;IAE7B,IAAIA,OAAO3Q,QAAP,KAAoB2vE,SAAxB,EAAmC;MACjC;IAH2B;;IAK7Br7B,MAAMhiF,IAANgiF,CAAW;MAAEm7B,cAAczvE,WAAW,CAA3B;MAA8BD,SAAS4Q,OAAO3Q,QAAP;IAAvC,CAAXs0C;EATkC;;EAapC,IAAIA,MAAM/hF,MAAN+hF,KAAiB,CAArB,EAAwB;IACtBA,MAAMhiF,IAANgiF,CAAW;MAAEm7B,cAAc,CAAhB;MAAmB1vE,SAAS;IAA5B,CAAXu0C;EAdkC;;EAgBpCA,MAAM9uD,IAAN8uD,CAAW,SAASs7B,iBAAT,CAA2Bj0G,CAA3B,EAA8BC,CAA9B,EAAiC;IAC1C,OAAOD,EAAE8zG,YAAF9zG,GAAiBC,EAAE6zG,YAA1B;EADF;EAKA,MAAMpqF,SAAS,EAAf;EACA,MAAM9yB,SAAS+hF,MAAM/hF,MAArB;;EACA,KAAK,IAAIqjB,IAAI,CAAb,EAAgBA,IAAIrjB,MAApB,GAA8B;IAC5B,MAAMqL,QAAQ02E,MAAM1+D,CAAN,EAAS65F,YAAvB;IACA,MAAMI,cAAc,CAACv7B,MAAM1+D,CAAN,EAASmqB,OAAV,CAApB;IACA,EAAEnqB,CAAF;IACA,IAAIuL,MAAMvjB,KAAV;;IACA,OAAOgY,IAAIrjB,MAAJqjB,IAAcuL,MAAM,CAANA,KAAYmzD,MAAM1+D,CAAN,EAAS65F,YAA1C,EAAwD;MACtDI,YAAYv9G,IAAZu9G,CAAiBv7B,MAAM1+D,CAAN,EAASmqB,OAA1B8vE;MACA,EAAE1uF,GAAF;MACA,EAAEvL,CAAF;;MACA,IAAIuL,QAAQ,MAAZ,EAAoB;QAClB;MALoD;IAL5B;;IAa5BkE,OAAO/yB,IAAP+yB,CAAY,CAACznB,KAAD,EAAQujB,GAAR,EAAa0uF,WAAb,CAAZxqF;EApCkC;;EAuCpC,OAAOA,MAAP;AAhgBF;;AAmgBA,SAASyqF,eAAT,CAAyBn/D,MAAzB,EAAiCg/D,SAAjC,EAA4C;EAC1C,MAAMtqF,SAASqqF,UAAU/+D,MAAV,EAAkBg/D,SAAlB,CAAf;EACA,MAAMI,YAAY1qF,OAAOA,OAAO9yB,MAAP8yB,GAAgB,CAAvB,EAA0B,CAA1BA,IAA+B,MAA/BA,GAAwC,CAAxCA,GAA4C,CAA9D;EACA,IAAIu0C,OACF,aACAs0C,SAAS6B,SAAT,CADA,GAEA,UAFA,GAGA,UAHA,GAIAl7F,oBAAS,IAAIk7F,YAAY,CAAzBl7F,CALF;EAOA,IAAI1hB,CAAJ,EAAOiJ,EAAP,EAAWqd,CAAX,EAAc6rB,EAAd;;EACA,KAAKnyC,IAAIkyB,OAAO9yB,MAAP8yB,GAAgB,CAAzB,EAA4BlyB,KAAK,CAAjC,EAAoC,EAAEA,CAAtC,EAAyC;IACvC,IAAIkyB,OAAOlyB,CAAP,EAAU,CAAVkyB,KAAgB,MAApB,EAA4B;MAC1B;IAFqC;EAXC;;EAgB1C,MAAM2qF,YAAY78G,IAAI,CAAtB;;EAEA,IAAIkyB,OAAOlyB,CAAP,EAAU,CAAVkyB,IAAe,MAAfA,IAAyBA,OAAOlyB,CAAP,EAAU,CAAVkyB,MAAiB,MAA9C,EAAsD;IACpDA,OAAOlyB,CAAP,EAAU,CAAVkyB,IAAe,MAAfA;EAnBwC;;EAqB1C,MAAM4qF,sBAAsB5qF,OAAOlyB,CAAP,EAAU,CAAVkyB,IAAe,MAAfA,GAAwB,CAAxBA,GAA4B,CAAxD;EACA,MAAM6qF,WAAWF,YAAYC,mBAA7B;;EACA,MAAME,eAAeC,2CAAoBC,eAApBD,CAAoCF,QAApCE,EAA8C,CAA9CA,CAArB;;EAGA,IAAIE,aAAa,EAAjB;EACA,IAAIC,WAAW,EAAf;EACA,IAAIC,WAAW,EAAf;EACA,IAAIC,iBAAiB,EAArB;EACA,IAAIC,YAAY,EAAhB;EACA,IAAIC,OAAO,CAAX;EAEA,IAAIrrF,KAAJ,EAAW1nB,KAAX,EAAkBujB,GAAlB,EAAuBmzD,KAAvB;;EACA,KAAKnhF,IAAI,CAAJA,EAAOiJ,KAAK4zG,SAAjB,EAA4B78G,IAAIiJ,EAAhC,EAAoCjJ,GAApC,EAAyC;IACvCmyB,QAAQD,OAAOlyB,CAAP,CAARmyB;IACA1nB,QAAQ0nB,MAAM,CAAN,CAAR1nB;IACAujB,MAAMmE,MAAM,CAAN,CAANnE;IACAmvF,cAAcpC,SAAStwG,KAAT,CAAd0yG;IACAC,YAAYrC,SAAS/sF,GAAT,CAAZovF;IACAj8B,QAAQhvD,MAAM,CAAN,CAARgvD;IACA,IAAIs8B,aAAa,IAAjB;;IACA,KAAKn3F,IAAI,CAAJA,EAAO6rB,KAAKgvC,MAAM/hF,MAAvB,EAA+BknB,IAAI6rB,EAAnC,EAAuC,EAAE7rB,CAAzC,EAA4C;MAC1C,IAAI66D,MAAM76D,CAAN,MAAa66D,MAAM76D,IAAI,CAAV,IAAe,CAAhC,EAAmC;QACjCm3F,aAAa,KAAbA;QACA;MAHwC;IARL;;IAcvC,IAAI,CAACA,UAAL,EAAiB;MACf,MAAMjpF,SAAU,YAAWx0B,CAAX,IAAgB,CAAhB,GAAoBw9G,OAAO,CAA3C;MACAA,QAAQxvF,MAAMvjB,KAANujB,GAAc,CAAtBwvF;MAEAH,YAAYtC,SAAS,CAAT,CAAZsC;MACAC,kBAAkBvC,SAASvmF,MAAT,CAAlB8oF;;MAEA,KAAKh3F,IAAI,CAAJA,EAAO6rB,KAAKgvC,MAAM/hF,MAAvB,EAA+BknB,IAAI6rB,EAAnC,EAAuC,EAAE7rB,CAAzC,EAA4C;QAC1Ci3F,aAAaxC,SAAS55B,MAAM76D,CAAN,CAAT,CAAbi3F;MARa;IAAjB,OAUO;MACL,MAAMG,YAAYv8B,MAAM,CAAN,CAAlB;MAEAk8B,YAAYtC,SAAU2C,YAAYjzG,KAAZizG,GAAqB,MAA/B,CAAZL;MACAC,kBAAkBvC,SAAS,CAAT,CAAlBuC;IA5BqC;EAlCC;;EAkE1C,IAAIR,sBAAsB,CAA1B,EAA6B;IAC3BM,YAAY,UAAZA;IACAD,cAAc,UAAdA;IACAE,YAAY,UAAZA;IACAC,kBAAkB,UAAlBA;EAtEwC;;EAyE1C,MAAMK,YACJ,aACA5C,SAAS,IAAIgC,QAAb,CADA,GAEAhC,SAASiC,aAAa7qF,KAAtB,CAFA,GAGA4oF,SAASiC,aAAa1nF,KAAtB,CAHA,GAIAylF,SAASiC,aAAaY,UAAtB,CAJA,GAKAR,QALA,GAMA,UANA,GAOAD,UAPA,GAQAE,QARA,GASAC,cATA,GAUAC,SAXF;EAaA,IAAIM,cAAc,EAAlB;EACA,IAAIC,cAAc,EAAlB;;EACA,IAAIlB,YAAY,CAAhB,EAAmB;IACjBn2C,QACE,aACA,UADA,GAEA/kD,oBAAS,IAAIk7F,YAAY,CAAhB,GAAoB,CAApB,GAAwBe,UAAUv+G,MAA3CsiB,CAHF+kD;IAIAo3C,cAAc,EAAdA;;IACA,KAAK79G,IAAI,CAAJA,EAAOiJ,KAAKipB,OAAO9yB,MAAxB,EAAgCY,IAAIiJ,EAApC,EAAwCjJ,GAAxC,EAA6C;MAC3CmyB,QAAQD,OAAOlyB,CAAP,CAARmyB;MACA1nB,QAAQ0nB,MAAM,CAAN,CAAR1nB;MACA02E,QAAQhvD,MAAM,CAAN,CAARgvD;MACA,IAAIn9E,OAAOm9E,MAAM,CAAN,CAAX;;MACA,KAAK76D,IAAI,CAAJA,EAAO6rB,KAAKgvC,MAAM/hF,MAAvB,EAA+BknB,IAAI6rB,EAAnC,EAAuC,EAAE7rB,CAAzC,EAA4C;QAC1C,IAAI66D,MAAM76D,CAAN,MAAa66D,MAAM76D,IAAI,CAAV,IAAe,CAAhC,EAAmC;UACjC0H,MAAMmE,MAAM,CAAN,IAAW7L,CAAX6L,GAAe,CAArBnE;UACA6vF,eACEn8F,oBAASjX,KAATiX,IACAA,oBAASsM,GAATtM,CADAA,GAEAA,oBAAS1d,IAAT0d,CAHFm8F;UAIApzG,QAAQujB,MAAM,CAAdvjB;UACAzG,OAAOm9E,MAAM76D,CAAN,CAAPtiB;QARwC;MALD;;MAgB3C65G,eACEn8F,oBAASjX,KAATiX,IACAA,oBAASyQ,MAAM,CAAN,CAATzQ,CADAA,GAEAA,oBAAS1d,IAAT0d,CAHFm8F;IAtBe;;IA2BjBC,cACE,aACA,UADA,GAEAp8F,oBAASm8F,YAAYz+G,MAAZy+G,GAAqB,EAA9Bn8F,CAFA,GAGA,kBAHA,GAIAA,oBAASm8F,YAAYz+G,MAAZy+G,GAAqB,EAA9Bn8F,CALFo8F;EAnHwC;;EA2H1C,OACEr3C,OACA,UADAA,GAEAs0C,SAAS4C,UAAUv+G,MAAVu+G,GAAmB,CAA5B,CAFAl3C,GAGAk3C,SAHAl3C,GAIAq3C,WAJAr3C,GAKAo3C,WANF;AA9nBF;;AAwoBA,SAASE,gBAAT,CAA0BC,GAA1B,EAA+Bz5D,IAA/B,EAAqC;EACnCA,KAAKjjC,GAALijC,GAAY,MAAK95C,KAAL85C,IAAc,CAAd,IAAmBy5D,IAAIxpF,MAAnC+vB;EACA,MAAM9kB,UAAU8kB,KAAKrsB,SAALqsB,EAAhB;EAGAA,KAAK/rB,IAAL+rB,CAAU,EAAVA;EACA,MAAM05D,YAAY15D,KAAKrsB,SAALqsB,EAAlB;;EACA,IAAI9kB,UAAU,CAAVA,IAAew+E,YAAY,MAA/B,EAAuC;IACrC,OAAO,KAAP;EARiC;;EAUnC,MAAM33C,YAAY/hB,KAAKrsB,SAALqsB,EAAlB;EACA,MAAMgiB,WAAWhiB,KAAKrsB,SAALqsB,EAAjB;;EACA,IAAI+hB,YAAYC,QAAhB,EAA0B;IACxB,OAAO,KAAP;EAbiC;;EAenChiB,KAAK/rB,IAAL+rB,CAAU,CAAVA;EACA,MAAM25D,cAAc35D,KAAKrsB,SAALqsB,EAApB;;EACA,IAAI25D,gBAAgB,CAApB,EAAuB;IAErB,OAAO,KAAP;EAnBiC;;EAuBnCF,IAAI9/G,IAAJ8/G,CAAS,CAATA,IAAcA,IAAI9/G,IAAJ8/G,CAAS,CAATA,IAAc,CAA5BA;EACA,OAAO,IAAP;AAhqBF;;AAmqBA,SAASG,cAAT,CAAwB5yF,UAAxB,EAAoC6yF,WAApC,EAAiDC,QAAjD,EAA2D;EACzDA,WAAWA,YAAY;IACrBC,YAAY,CADS;IAErBC,MAAM,CAFe;IAGrBC,MAAM,CAHe;IAIrB99C,QAAQ,CAJa;IAKrBxkB,SAAS;EALY,CAAvBmiE;EAQA,IAAII,kBAAkB,CAAtB;EACA,IAAIC,kBAAkB,CAAtB;EACA,IAAIC,kBAAkB,CAAtB;EACA,IAAIC,kBAAkB,CAAtB;EAEA,IAAIC,iBAAiB,IAArB;EACA,IAAIC,gBAAgB,CAApB;;EAEA,IAAIV,WAAJ,EAAiB;IACf,SAASp6G,IAAT,IAAiBo6G,WAAjB,EAA8B;MAC5Bp6G,QAAQ,CAARA;;MACA,IAAI66G,iBAAiB76G,IAAjB66G,IAAyB,CAACA,cAA9B,EAA8C;QAC5CA,iBAAiB76G,IAAjB66G;MAH0B;;MAK5B,IAAIC,gBAAgB96G,IAApB,EAA0B;QACxB86G,gBAAgB96G,IAAhB86G;MAN0B;;MAS5B,MAAMjvF,WAAWye,iCAAmBtqC,IAAnBsqC,CAAjB;;MACA,IAAIze,WAAW,EAAf,EAAmB;QACjB4uF,mBAAmB,KAAK5uF,QAAxB4uF;MADF,OAEO,IAAI5uF,WAAW,EAAf,EAAmB;QACxB6uF,mBAAmB,KAAM7uF,WAAW,EAApC6uF;MADK,OAEA,IAAI7uF,WAAW,EAAf,EAAmB;QACxB8uF,mBAAmB,KAAM9uF,WAAW,EAApC8uF;MADK,OAEA,IAAI9uF,WAAW,GAAf,EAAoB;QACzB+uF,mBAAmB,KAAM/uF,WAAW,EAApC+uF;MADK,OAEA;QACL,MAAM,IAAIv+F,iBAAJ,CACJ,2DADI,CAAN;MAnB0B;IADf;;IAyBf,IAAIy+F,gBAAgB,MAApB,EAA4B;MAG1BA,gBAAgB,MAAhBA;IA5Ba;EAAjB,OA8BO;IAELD,iBAAiB,CAAjBA;IACAC,gBAAgB,GAAhBA;EAlDuD;;EAqDzD,MAAM5kF,OAAO3O,WAAW2O,IAAX3O,IAAmB,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAAhC;EACA,MAAM+yF,aACJD,SAASC,UAATD,IACA,IAAK,YAAWj+C,UAAX70C,IAAyB5e,0BAAzB,EAA+C,CAA/C,CAFP;EAMA,MAAMmyC,QAAQvzB,WAAWwzF,YAAXxzF,GACV,GADUA,GAEV+yF,aAAaxE,qBAFjB;EAIA,MAAMkF,aACJX,SAAS39C,MAAT29C,IAAmBh7G,KAAK26C,KAAL36C,CAAWy7C,SAASvzB,WAAWm1C,MAAXn1C,IAAqB2O,KAAK,CAAL,CAA9B,CAAX72B,CADrB;EAEA,IAAI47G,cACFZ,SAASniE,OAATmiE,IAAoBh7G,KAAK26C,KAAL36C,CAAWy7C,SAASvzB,WAAW2wB,OAAX3wB,IAAsB2O,KAAK,CAAL,CAA/B,CAAX72B,CADtB;;EAEA,IAAI47G,cAAc,CAAdA,IAAmB1zF,WAAW2wB,OAAX3wB,GAAqB,CAAxC0zF,IAA6C/kF,KAAK,CAAL,IAAU,CAA3D,EAA8D;IAC5D+kF,cAAc,CAACA,WAAfA;EArEuD;;EAuEzD,MAAMC,YAAYb,SAASE,IAATF,IAAiBW,UAAnC;EACA,MAAMG,aAAa,CAACd,SAASG,IAAV,IAAkB,CAACS,WAAtC;EAEA,OACE,aACA,UADA,GAEA,UAFA,GAGA,UAHA,GAIA,UAJA,GAKA,UALA,GAMA,UANA,GAOA,UAPA,GAQA,UARA,GASA,UATA,GAUA,UAVA,GAWA,UAXA,GAYA,UAZA,GAaA,UAbA,GAcA,UAdA,GAeA,UAfA,GAgBA,cAhBA,GAiBAx+F,OAAOC,YAAPD,CAAoB8K,WAAW2+C,UAAX3+C,GAAwB,IAAxBA,GAA+B,IAAnD9K,CAjBA,GAkBA,0BAlBA,GAmBAiB,oBAAS+8F,eAAT/8F,CAnBA,GAoBAA,oBAASg9F,eAATh9F,CApBA,GAqBAA,oBAASi9F,eAATj9F,CArBA,GAsBAA,oBAASk9F,eAATl9F,CAtBA,GAuBA,kBAvBA,GAwBAq5F,SAASxvF,WAAW0L,WAAX1L,GAAyB,CAAzBA,GAA6B,CAAtC,CAxBA,GAyBAwvF,SAAS8D,kBAAkBtzF,WAAW+6C,SAAtC,CAzBA,GA0BAy0C,SAAS+D,iBAAiBvzF,WAAWg7C,QAArC,CA1BA,GA2BAw0C,SAASiE,UAAT,CA3BA,GA4BAjE,SAASkE,WAAT,CA5BA,GA6BA,UA7BA,GA8BAlE,SAASmE,SAAT,CA9BA,GA+BAnE,SAASoE,UAAT,CA/BA,GAgCA,kBAhCA,GAiCA,kBAjCA,GAkCApE,SAASxvF,WAAW49C,OAApB,CAlCA,GAmCA4xC,SAASxvF,WAAW69C,SAApB,CAnCA,GAoCA2xC,SAAS,CAAT,CApCA,GAqCAA,SAAS8D,kBAAkBtzF,WAAW+6C,SAAtC,CArCA,GAsCA,UAvCF;AA7uBF;;AAwxBA,SAAS84C,eAAT,CAAyB7zF,UAAzB,EAAqC;EACnC,MAAM6L,QAAQ/zB,KAAKosB,KAALpsB,CAAWkoB,WAAW0L,WAAX1L,GAAyB,KAAK,EAAzCloB,CAAd;EACA,OACE,qBACAqe,oBAAS0V,KAAT1V,CADA,GAEA,UAFA,GAGA,UAHA,GAIAA,oBAAS6J,WAAW2+C,UAAX3+C,GAAwB,CAAxBA,GAA4B,CAArC7J,CAJA,GAKA,kBALA,GAMA,kBANA,GAOA,kBAPA,GAQA,kBATF;AA1xBF;;AAuyBA,SAAS29F,oBAAT,CAA8BriH,IAA9B,EAAoC;EAElC,OAAOA,KAAKiqB,OAALjqB,CAAa,6BAAbA,EAA4C,EAA5CA,EAAgD8mB,KAAhD9mB,CAAsD,CAAtDA,EAAyD,EAAzDA,CAAP;AAzyBF;;AA4yBA,SAASsiH,eAAT,CAAyBtiH,IAAzB,EAA+BuiH,KAA/B,EAAsC;EACpC,IAAI,CAACA,KAAL,EAAY;IACVA,QAAQ,CAAC,EAAD,EAAK,EAAL,CAARA;EAFkC;;EAKpC,MAAMC,UAAU,CACdD,MAAM,CAAN,EAAS,CAATA,KAAe,kBADD,EAEdA,MAAM,CAAN,EAAS,CAATA,KAAeviH,IAFD,EAGduiH,MAAM,CAAN,EAAS,CAATA,KAAe,SAHD,EAIdA,MAAM,CAAN,EAAS,CAATA,KAAe,UAJD,EAKdA,MAAM,CAAN,EAAS,CAATA,KAAeviH,IALD,EAMduiH,MAAM,CAAN,EAAS,CAATA,KAAe,cAND,EAOdA,MAAM,CAAN,EAAS,CAATA,KAAeF,qBAAqBriH,IAArB,CAPD,EAQduiH,MAAM,CAAN,EAAS,CAATA,KAAe,SARD,EASdA,MAAM,CAAN,EAAS,CAATA,KAAe,SATD,EAUdA,MAAM,CAAN,EAAS,CAATA,KAAe,SAVD,CAAhB;EAeA,MAAME,iBAAiB,EAAvB;EACA,IAAIz/G,CAAJ,EAAOiJ,EAAP,EAAWqd,CAAX,EAAc6rB,EAAd,EAAkBjxB,GAAlB;;EACA,KAAKlhB,IAAI,CAAJA,EAAOiJ,KAAKu2G,QAAQpgH,MAAzB,EAAiCY,IAAIiJ,EAArC,EAAyCjJ,GAAzC,EAA8C;IAC5CkhB,MAAMq+F,MAAM,CAAN,EAASv/G,CAATu/G,KAAeC,QAAQx/G,CAAR,CAArBkhB;IAEA,MAAMw+F,gBAAgB,EAAtB;;IACA,KAAKp5F,IAAI,CAAJA,EAAO6rB,KAAKjxB,IAAI9hB,MAArB,EAA6BknB,IAAI6rB,EAAjC,EAAqC7rB,GAArC,EAA0C;MACxCo5F,cAAcvgH,IAAdugH,CAAmB3E,SAAS75F,IAAIC,UAAJD,CAAeoF,CAAfpF,CAAT,CAAnBw+F;IAL0C;;IAO5CD,eAAetgH,IAAfsgH,CAAoBC,cAAcrgH,IAAdqgH,CAAmB,EAAnBA,CAApBD;EA7BkC;;EAgCpC,MAAME,QAAQ,CAACH,OAAD,EAAUC,cAAV,CAAd;EACA,MAAMG,YAAY,CAAC,UAAD,EAAa,UAAb,CAAlB;EACA,MAAMC,YAAY,CAAC,UAAD,EAAa,UAAb,CAAlB;EACA,MAAMC,YAAY,CAAC,UAAD,EAAa,UAAb,CAAlB;EAEA,MAAMC,mBAAmBP,QAAQpgH,MAARogH,GAAiBI,UAAUxgH,MAApD;EACA,IAAI4gH,YACF,aACAjF,SAASgF,gBAAT,CADA,GAEAhF,SAASgF,mBAAmB,EAAnBA,GAAwB,CAAjC,CAHF;EAMA,IAAIE,YAAY,CAAhB;;EACA,KAAKjgH,IAAI,CAAJA,EAAOiJ,KAAK22G,UAAUxgH,MAA3B,EAAmCY,IAAIiJ,EAAvC,EAA2CjJ,GAA3C,EAAgD;IAC9C,MAAMkgH,OAAOP,MAAM3/G,CAAN,CAAb;;IACA,KAAKsmB,IAAI,CAAJA,EAAO6rB,KAAK+tE,KAAK9gH,MAAtB,EAA8BknB,IAAI6rB,EAAlC,EAAsC7rB,GAAtC,EAA2C;MACzCpF,MAAMg/F,KAAK55F,CAAL,CAANpF;MACA,MAAMi/F,aACJP,UAAU5/G,CAAV,IACA6/G,UAAU7/G,CAAV,CADA4/G,GAEAE,UAAU9/G,CAAV,CAFA4/G,GAGA7E,SAASz0F,CAAT,CAHAs5F,GAIA7E,SAAS75F,IAAI9hB,MAAb,CAJAwgH,GAKA7E,SAASkF,SAAT,CANF;MAOAD,aAAaG,UAAbH;MACAC,aAAa/+F,IAAI9hB,MAAjB6gH;IAZ4C;EA7CZ;;EA6DpCD,aAAaR,QAAQngH,IAARmgH,CAAa,EAAbA,IAAmBC,eAAepgH,IAAfogH,CAAoB,EAApBA,CAAhCO;EACA,OAAOA,SAAP;AA12BF;;AAi3BA,MAAMx2C,IAAN,CAAW;EACTzsE,YAAYC,IAAZ,EAAkBunD,IAAlB,EAAwBh5B,UAAxB,EAAoC;IAClC,KAAKvuB,IAAL,GAAYA,IAAZ;IACA,KAAKojH,MAAL,GAAc,IAAd;IACA,KAAKC,QAAL,GAAgB,IAAhB;IACA,KAAKv7G,eAAL,GAAuB,KAAvB;IAEA,KAAKkzD,UAAL,GAAkBzsC,WAAWysC,UAA7B;IACA,KAAKJ,WAAL,GAAmBrsC,WAAWqsC,WAA9B;IACA,KAAK0oD,WAAL,GAAmB,KAAnB;IACA,KAAK3pF,WAAL,GAAmBpL,WAAWoL,WAA9B;IAEA,KAAK4pF,WAAL,GAAmBn3G,OAAOC,MAAPD,CAAc,IAAdA,CAAnB;IACA,KAAKo3G,WAAL,GAAmBp3G,OAAOC,MAAPD,CAAc,IAAdA,CAAnB;IAEA,IAAIq+D,cAAc,CAAC,EAAEl8C,WAAWyhB,KAAXzhB,GAAmBggB,uBAAUE,KAA/B,CAAnB;;IAGA,IAAI,CAACg8B,WAAD,IAAgB,CAACl8C,WAAW29C,gBAAhC,EAAkD;MAChD,MAAMu3C,WAAWzjH,KAAKiqB,OAALjqB,CAAa,OAAbA,EAAsB,GAAtBA,EAA2Bg4B,KAA3Bh4B,CAAiC,GAAjCA,EAAsC,CAAtCA,CAAjB;MAAA,MACE0jH,aAAa/4C,oCADf;;MAEA,WAAWg5C,QAAX,IAAuBF,SAASzrF,KAATyrF,CAAe,GAAfA,CAAvB,EAA4C;QAC1C,IAAIC,WAAWC,QAAX,CAAJ,EAA0B;UACxBl5C,cAAc,IAAdA;UACA;QAHwC;MAHI;IAjBhB;;IA2BlC,KAAKA,WAAL,GAAmBA,WAAnB;IAEA,KAAK16B,cAAL,GAAsB,CAAC,EAAExhB,WAAWyhB,KAAXzhB,GAAmBggB,uBAAUG,QAA/B,CAAvB;IACA,KAAK67B,WAAL,GAAmB,CAAC,EAAEh8C,WAAWyhB,KAAXzhB,GAAmBggB,uBAAUC,UAA/B,CAApB;IAEA,IAAI1iB,OAAOyC,WAAWzC,IAAtB;IACA,IAAIqjB,UAAU5gB,WAAW4gB,OAAzB;IACA,KAAKrjB,IAAL,GAAYA,IAAZ;IACA,KAAKqjB,OAAL,GAAeA,OAAf;IAEA,IAAIs0B,eAAe,YAAnB;;IACA,IAAI,KAAK8G,WAAT,EAAsB;MACpB9G,eAAe,WAAfA;IADF,OAEO,IAAI,KAAKgH,WAAT,EAAsB;MAC3BhH,eAAe,OAAfA;IAzCgC;;IA2ClC,KAAKA,YAAL,GAAoBA,YAApB;IAEA,KAAKpzB,WAAL,GAAmB9hB,WAAW8hB,WAA9B;IACA,KAAKnC,MAAL,GAAc3f,WAAW2f,MAAzB;IACA,KAAK87B,YAAL,GAAoBz7C,WAAWy7C,YAA/B;IACA,KAAKzC,SAAL,GAAiBh5C,WAAWg5C,SAA5B;IACA,KAAKqB,IAAL,GAAYr6C,WAAWq6C,IAAvB;IACA,KAAKwD,SAAL,GAAiB79C,WAAW69C,SAAX79C,GAAuBuuF,qBAAxC;IACA,KAAKp5C,MAAL,GAAcn1C,WAAWm1C,MAAXn1C,GAAoBuuF,qBAAlC;IACA,KAAK59D,OAAL,GAAe3wB,WAAW2wB,OAAX3wB,GAAqBuuF,qBAApC;IACA,KAAK1uE,UAAL,GAAkB,KAAKs1B,MAAL,GAAc,KAAKxkB,OAArC;IACA,KAAKkkB,UAAL,GAAkB70C,WAAW60C,UAA7B;IACA,KAAKlmC,IAAL,GAAY3O,WAAW2O,IAAvB;IACA,KAAK4qC,eAAL,GAAuBv5C,WAAWu5C,eAAlC;IAEA,KAAKR,SAAL,GAAiB/4C,WAAW+4C,SAA5B;IACA,KAAKs3C,UAAL,GAAkB,EAAlB;;IAEA,IAAIrwF,WAAWzC,IAAXyC,KAAoB,OAAxB,EAAiC;MAC/B,KAAK,IAAIshB,WAAW,CAApB,EAAuBA,WAAW,GAAlC,EAAuCA,UAAvC,EAAmD;QACjD,KAAK+uE,UAAL,CAAgB/uE,QAAhB,IACE,KAAKQ,WAAL,CAAiBR,QAAjB,KAA8BthB,WAAWu5C,eAAXv5C,CAA2BshB,QAA3BthB,CADhC;MAF6B;;MAK/B,KAAKkuC,QAAL,GAAgB7jD,eAASQ,KAAzB;MACA;IAnEgC;;IAsElC,KAAKg0D,WAAL,GAAmB7+C,WAAW6+C,WAAX7+C,IAA0B,EAA7C;IACA,KAAKgzC,QAAL,GAAgB,CAAC,CAAChzC,WAAWgzC,QAA7B;;IACA,IAAI,KAAKA,QAAT,EAAmB;MACjB,KAAK4I,QAAL,GAAgB57C,WAAW47C,QAA3B;MACA,KAAKD,eAAL,GAAuB37C,WAAW27C,eAAlC;IA1EgC;;IA6ElC,IAAI,CAAC3iB,IAAD,IAASA,KAAKzsB,OAAlB,EAA2B;MACzB,IAAIysB,IAAJ,EAAU;QAGRzhD,gBAAK,4BAA4B9F,IAA5B,GAAmC,KAAnC,GAA2C,KAAKg7D,UAAhD,GAA6D,GAAlEl1D;MAJuB;;MAMzB,KAAK89G,oBAAL,CAA0Br1F,UAA1B;MACA;IApFgC;;IA0FlC,CAACzC,IAAD,EAAOqjB,OAAP,IAAkBmvE,gBAAgB/2D,IAAhB,EAAsBh5B,UAAtB,CAAlB;;IAEA,IAAIzC,SAAS,KAAKA,IAAdA,IAAsBqjB,YAAY,KAAKA,OAA3C,EAAoD;MAClDliC,gBACE,oDACE,GAAG,KAAK6e,IAAK,IAAG,KAAKqjB,OAAQ,eAAcrjB,IAAK,IAAGqjB,OAAQ,GAF/DliC;IA7FgC;;IAmGlC,IAAI/L,IAAJ;;IACA,IAAI;MACF,QAAQ4qB,IAAR;QACE,KAAK,SAAL;UACE7e,gBAAK,mBAAmBjN,IAAnB,GAA0B,2BAA/BiN;;QAEF,KAAK,OAAL;QACA,KAAK,cAAL;UACE,KAAKo2G,QAAL,GAAgB,eAAhB;UAEA,MAAMQ,MACJ10E,YAAY,QAAZA,IAAwBA,YAAY,eAApCA,GACI,IAAI20E,iBAAJ,CAAYv8D,IAAZ,EAAkBh5B,UAAlB,CADJ4gB,GAEI,IAAI40E,qBAAJ,CAAc/jH,IAAd,EAAoBunD,IAApB,EAA0Bh5B,UAA1B,CAHN;UAKA0uF,aAAa1uF,UAAb;UAGArtB,OAAO,KAAK8iH,OAAL,CAAahkH,IAAb,EAAmB6jH,GAAnB,EAAwBt1F,UAAxB,CAAPrtB;UACA;;QAEF,KAAK,UAAL;QACA,KAAK,UAAL;QACA,KAAK,cAAL;UACE,KAAKmiH,QAAL,GAAgB,eAAhB;UAIAniH,OAAO,KAAK+iH,cAAL,CAAoBjkH,IAApB,EAA0BunD,IAA1B,EAAgCh5B,UAAhC,CAAPrtB;;UACA,IAAI,KAAKgjH,UAAT,EAAqB;YACnBjH,aAAa1uF,UAAb;YAEAzC,OAAO,UAAPA;UATJ;;UAWE;;QAEF;UACE,MAAM,IAAIzI,iBAAJ,CAAiB,QAAOyI,IAAK,mBAA7B,CAAN;MAnCJ;IADF,EAsCE,OAAOtlB,CAAP,EAAU;MACVV,gBAAKU,CAALV;MACA,KAAK89G,oBAAL,CAA0Br1F,UAA1B;MACA;IA7IgC;;IAgJlC6uF,uBAAuB7uF,UAAvB;IACA,KAAKrtB,IAAL,GAAYA,IAAZ;IACA,KAAKu7D,QAAL,GAAgBvtB,8BAAYpjB,IAAZojB,EAAkBC,OAAlBD,EAA2B3gB,WAAW6gB,cAAtCF,CAAhB;IAGA,KAAKk0B,UAAL,GAAkB70C,WAAW60C,UAA7B;IACA,KAAKl1B,MAAL,GAAc3f,WAAW2f,MAAzB;IACA,KAAK87B,YAAL,GAAoBz7C,WAAWy7C,YAA/B;IACA,KAAK1C,SAAL,GAAiB/4C,WAAW+4C,SAA5B;IACA,KAAK68C,OAAL,GAAe51F,WAAW41F,OAA1B;EA1JO;;EA6JT,IAAI72C,QAAJ,GAAe;IACb,MAAMA,WAAW82C,mCAAoB/3G,MAApB+3G,CAA2B,IAA3BA,EAAiC91E,kCAAjC81E,CAAjB;;IACA,OAAO3hG,kBAAO,IAAPA,EAAa,UAAbA,EAAyB6qD,QAAzB7qD,CAAP;EA/JO;;EAkKTorD,WAAWw2C,kBAAkB,KAA7B,EAAoC;IAClC,MAAMC,uBAAuBD,kBACzB,CAAC,GAAGtH,sBAAJ,EAA4B,GAAGC,4BAA/B,CADyB,GAEzBD,sBAFJ;IAIA,MAAM77G,OAAOkL,OAAOC,MAAPD,CAAc,IAAdA,CAAb;IACA,IAAIlK,QAAJ,EAAc+D,KAAd;;IACA,KAAK/D,QAAL,IAAiBoiH,oBAAjB,EAAuC;MACrCr+G,QAAQ,KAAK/D,QAAL,CAAR+D;;MAEA,IAAIA,UAAUsd,SAAd,EAAyB;QACvBriB,KAAKgB,QAAL,IAAiB+D,KAAjB/E;MAJmC;IAPL;;IAclC,OAAOA,IAAP;EAhLO;;EAmLT0iH,qBAAqBr1F,UAArB,EAAiC;IAC/B,KAAK+0F,WAAL,GAAmB,IAAnB;IAGA,MAAMtjH,OAAO,KAAKA,IAAlB;IACA,MAAM8rB,OAAO,KAAKA,IAAlB;IACA,MAAMqjB,UAAU,KAAKA,OAArB;IACA,IAAI1J,WAAW2H,oCAAkBptC,IAAlBotC,CAAf;IACA,MAAM09B,aAAaC,oCAAnB;IAAA,MACEw5C,gBAAgBC,uCADlB;IAEA,MAAMp1E,iBAAiB,CAAC,CAAC07B,WAAWrlC,QAAX,CAAzB;IACA,MAAMg/E,yBAAyB,CAAC,EAC9BF,cAAc9+E,QAAd,KAA2BqlC,WAAWy5C,cAAc9+E,QAAd,CAAX,CADG,CAAhC;IAIAA,WAAWqlC,WAAWrlC,QAAX,KAAwB8+E,cAAc9+E,QAAd,CAAxBqlC,IAAmDrlC,QAA9DA;IAEA,MAAMi/E,sBAAsBC,mCAA5B;IACA,MAAMh6E,UAAU+5E,oBAAoBj/E,QAApB,CAAhB;;IACA,IAAIkF,OAAJ,EAAa;MACX,IAAIrQ,MAAM,KAAKopC,MAAX,CAAJ,EAAwB;QACtB,KAAKA,MAAL,GAAc/4B,QAAQ+4B,MAAR/4B,GAAiBmyE,qBAA/B;MAFS;;MAIX,IAAIxiF,MAAM,KAAK4kB,OAAX,CAAJ,EAAyB;QACvB,KAAKA,OAAL,GAAevU,QAAQuU,OAARvU,GAAkBmyE,qBAAjC;MALS;;MAOX,IAAIxiF,MAAM,KAAK8xC,SAAX,CAAJ,EAA2B;QACzB,KAAKA,SAAL,GAAiBzhC,QAAQyhC,SAARzhC,GAAoBmyE,qBAArC;MARS;IAnBkB;;IA+B/B,KAAK8H,IAAL,GAAYn/E,SAASmlC,MAATnlC,CAAgB,QAAhBA,MAA8B,CAAC,CAA3C;IACA,KAAKo/E,MAAL,GACEp/E,SAASmlC,MAATnlC,CAAgB,WAAhBA,MAAiC,CAAC,CAAlCA,IAAuCA,SAASmlC,MAATnlC,CAAgB,UAAhBA,MAAgC,CAAC,CAD1E;IAKA,KAAKm8C,KAAL,GAAa5hF,KAAK4qE,MAAL5qE,CAAY,QAAZA,MAA0B,CAAC,CAAxC;IAIA,MAAM8kH,WAAW9kH,KAAK4qE,MAAL5qE,CAAY,SAAZA,MAA2B,CAAC,CAA7C;IAGA,KAAK+kH,SAAL,GACG,EAAC31E,cAAD,IAAmB01E,QAAnB,KAAgC14G,OAAOwY,IAAPxY,CAAY,KAAK8hC,MAAjB9hC,EAAyBhK,MAAzBgK,GAAkC,CADrE;;IAEA,IACG,mBAAkBq4G,sBAAlB,KACD34F,SAAS,cADR,IAED,KAAKshD,WAAL,CAAiBlrD,UAAjB,CAA4B,WAA5B,CAHF,EAIE;MACA,MAAM0lD,cAAcr5C,WAAWq5C,WAA/B;MAGA,MAAM9iD,MAAM,EAAZ;MACA25F,0BAA0B35F,GAA1B,EAA+BkgG,kDAA/B;;MAEA,IAAI,gBAAgB76F,IAAhB,CAAqBnqB,IAArB,CAAJ,EAAgC;QAC9By+G,0BAA0B35F,GAA1B,EAA+BmgG,2DAA/B;MADF,OAEO,IAAI,WAAW96F,IAAX,CAAgBnqB,IAAhB,CAAJ,EAA2B;QAChCy+G,0BAA0B35F,GAA1B,EAA+BogG,wDAA/B;MAVF;;MAeA,IAAIt9C,WAAJ,EAAiB;QACf,WAAW/3B,QAAX,IAAuB/qB,GAAvB,EAA4B;UAC1B,MAAMqkD,MAAMrkD,IAAI+qB,QAAJ,CAAZ;;UACA,IAAI+3B,YAAYuB,GAAZ,MAAqB5lD,SAAzB,EAAoC;YAClCuB,IAAI,CAAC+qB,QAAL,IAAiB+3B,YAAYuB,GAAZ,CAAjBrkD;UAHwB;QADb;;QASf,IACE8iD,YAAYxlE,MAAZwlE,KAAuB,KAAKN,SAAL,CAAellE,MAAtCwlE,IACAr5C,WAAWk6C,uBADXb,IAEA,KAAKN,SAAL,YAA0B+B,oCAH5B,EAIE;UACA,KAAK/B,SAAL,CAAe76D,OAAf,CAAuB,UAAUojC,QAAV,EAAoBs1E,eAApB,EAAqC;YAC1D,MAAMh8C,MAAMrkD,IAAI+qB,QAAJ,CAAZ;;YACA,IAAI+3B,YAAYuB,GAAZ,MAAqB5lD,SAAzB,EAAoC;cAClCuB,IAAI,CAAC+qB,QAAL,IAAiBs1E,eAAjBrgG;YAHwD;UAA5D;QAda;MAfjB;;MAsCA,IAAI,EAAE,KAAKwiD,SAAL,YAA0B+B,oCAA5B,CAAJ,EAAuD;QACrD,KAAK/B,SAAL,CAAe76D,OAAf,CAAuB,UAAUojC,QAAV,EAAoBs1E,eAApB,EAAqC;UAC1DrgG,IAAI,CAAC+qB,QAAL,IAAiBs1E,eAAjBrgG;QADF;MAvCF;;MA2CA,KAAK85F,UAAL,GAAkB95F,GAAlB;MACA,KAAKwiD,SAAL,GAAiB,IAAIqB,4BAAJ,CAAiB7jD,GAAjB,CAAjB;IAhDF,OAiDO,IAAI,UAAUqF,IAAV,CAAesb,QAAf,CAAJ,EAA8B;MACnC,KAAKm5E,UAAL,GAAkBD,gBAChB9tE,4BADgB,EAEhBN,kCAFgB,EAGhB,KAAKF,WAHW,CAAlB;IADK,OAMA,IAAI,YAAYlmB,IAAZ,CAAiBsb,QAAjB,CAAJ,EAAgC;MACrC,IAAI,aAAatb,IAAb,CAAkBnqB,IAAlB,CAAJ,EAA6B;QAC3B8F,gBAAK,4DAALA;MAFmC;;MAIrC,KAAK84G,UAAL,GAAkBD,gBAChB7tE,+BADgB,EAEhBE,0CAFgB,EAGhB,KAAKX,WAHW,CAAlB;IAJK,OASA,IAAIjB,cAAJ,EAAoB;MACzB,MAAMtqB,MAAM65F,gBACV,KAAK72C,eADK,EAEVv3B,kCAFU,EAGV,KAAKF,WAHK,CAAZ;;MAMA,IACEvkB,SAAS,cAATA,IACA,CAAC,KAAKshD,WAAL,CAAiBlrD,UAAjB,CAA4B,WAA5B,CADD4J,IAEA,EAAE,KAAKw7C,SAAL,YAA0B+B,oCAA5B,CAHF,EAIE;QACA,KAAK/B,SAAL,CAAe76D,OAAf,CAAuB,UAAUojC,QAAV,EAAoBs1E,eAApB,EAAqC;UAC1DrgG,IAAI,CAAC+qB,QAAL,IAAiBs1E,eAAjBrgG;QADF;MAZuB;;MAgBzB,KAAK85F,UAAL,GAAkB95F,GAAlB;IAhBK,OAiBA;MACL,MAAMwqB,mBAAmBiB,kCAAzB;MACA,MAAMzrB,MAAM,EAAZ;MACA,KAAKwiD,SAAL,CAAe76D,OAAf,CAAuB,CAACojC,QAAD,EAAWs1E,eAAX,KAA+B;QACpD,IAAI,CAAC,KAAK59C,SAAV,EAAqB;UACnB,MAAMj3B,YACJ,KAAKD,WAAL,CAAiBR,QAAjB,KAA8B,KAAKi4B,eAAL,CAAqBj4B,QAArB,CADhC;UAEA,MAAMjC,UAAU2B,iCAAmBe,SAAnBf,EAA8BD,gBAA9BC,CAAhB;;UACA,IAAI3B,YAAY,CAAC,CAAjB,EAAoB;YAClBu3E,kBAAkBv3E,OAAlBu3E;UALiB;QAD+B;;QASpDrgG,IAAI,CAAC+qB,QAAL,IAAiBs1E,eAAjBrgG;MATF;;MAcA,IAAI,KAAKyiD,SAAL,IAAkB,KAAKD,SAAL,YAA0B+B,oCAAhD,EAAsE;QACpE,IAAI,WAAWl/C,IAAX,CAAgBnqB,IAAhB,CAAJ,EAA2B;UAEzBy+G,0BAA0B35F,GAA1B,EAA+BkgG,kDAA/B;QAHkE;MAjBjE;;MAuBL,KAAKpG,UAAL,GAAkB95F,GAAlB;IAtJ6B;;IAyJ/Bs4F,uBAAuB7uF,UAAvB;IACA,KAAKysC,UAAL,GAAkBv1B,SAASzN,KAATyN,CAAe,GAAfA,EAAoB,CAApBA,CAAlB;IACA,KAAKg3B,QAAL,GAAgBvtB,8BAAYpjB,IAAZojB,EAAkBC,OAAlBD,EAA2B3gB,WAAW6gB,cAAtCF,CAAhB;EA9UO;;EAiVT+0E,eAAejkH,IAAf,EAAqBggB,IAArB,EAA2BuO,UAA3B,EAAuC;IACrC,MAAM62F,eAAe,CACnB,MADmB,EAEnB,MAFmB,EAGnB,MAHmB,EAInB,MAJmB,EAKnB,MALmB,EAMnB,MANmB,EAOnB,MAPmB,EAQnB,MARmB,EASnB,MATmB,EAUnB,MAVmB,EAWnB,MAXmB,EAYnB,MAZmB,EAanB,MAbmB,EAcnB,MAdmB,CAArB;;IAiBA,SAASC,UAAT,CAAoB99D,IAApB,EAA0Bq4D,SAA1B,EAAqC;MACnC,MAAM0F,SAASl5G,OAAOC,MAAPD,CAAc,IAAdA,CAAf;MACAk5G,OAAO,MAAP,IAAiB,IAAjBA;MACAA,OAAO77C,IAAP67C,GAAc,IAAdA;MACAA,OAAOnf,IAAPmf,GAAc,IAAdA;MACAA,OAAOC,IAAPD,GAAc,IAAdA;MACAA,OAAOE,IAAPF,GAAc,IAAdA;MACAA,OAAOG,IAAPH,GAAc,IAAdA;MACAA,OAAOtlH,IAAPslH,GAAc,IAAdA;MACAA,OAAOI,IAAPJ,GAAc,IAAdA;;MAEA,KAAK,IAAItiH,IAAI,CAAb,EAAgBA,IAAI48G,SAApB,EAA+B58G,GAA/B,EAAoC;QAClC,MAAMqgF,QAAQsiC,eAAep+D,IAAf,CAAd;;QACA,IAAI,CAAC69D,aAAahwF,QAAbgwF,CAAsB/hC,MAAMtc,GAA5Bq+C,CAAL,EAAuC;UACrC;QAHgC;;QAKlC,IAAI/hC,MAAMjhF,MAANihF,KAAiB,CAArB,EAAwB;UACtB;QANgC;;QAQlCiiC,OAAOjiC,MAAMtc,GAAb,IAAoBsc,KAApBiiC;MAnBiC;;MAqBnC,OAAOA,MAAP;IAvCmC;;IA0CrC,SAASK,cAAT,CAAwBp+D,IAAxB,EAA8B;MAC5B,MAAMwf,MAAMxf,KAAK3uB,SAAL2uB,CAAe,CAAfA,CAAZ;MAEA,MAAMq+D,WAAWr+D,KAAKlsB,QAALksB,OAAoB,CAArC;MACA,MAAM/vB,SAAS+vB,KAAKlsB,QAALksB,OAAoB,CAAnC;MACA,MAAMnlD,SAASmlD,KAAKlsB,QAALksB,OAAoB,CAAnC;MAGA,MAAMs+D,mBAAmBt+D,KAAKjjC,GAA9B;MACAijC,KAAKjjC,GAALijC,GAAWA,KAAK95C,KAAL85C,GAAaA,KAAK95C,KAAlB85C,GAA0B,CAArCA;MACAA,KAAK/rB,IAAL+rB,CAAU/vB,MAAV+vB;MACA,MAAMrmD,OAAOqmD,KAAKp0B,QAALo0B,CAAcnlD,MAAdmlD,CAAb;MACAA,KAAKjjC,GAALijC,GAAWs+D,gBAAXt+D;;MAEA,IAAIwf,QAAQ,MAAZ,EAAoB;QAElB7lE,KAAK,CAAL,IAAUA,KAAK,CAAL,IAAUA,KAAK,EAAL,IAAWA,KAAK,EAAL,IAAW,CAA1CA;QACAA,KAAK,EAAL,KAAY,IAAZA;MAjB0B;;MAoB5B,OAAO;QACL6lE,GADK;QAEL6+C,QAFK;QAGLxjH,MAHK;QAILo1B,MAJK;QAKLt2B;MALK,CAAP;IA9DmC;;IAuErC,SAAS4kH,kBAAT,CAA4BC,GAA5B,EAAiC;MAC/B,OAAO;QACLtjF,SAASsjF,IAAIntF,SAAJmtF,CAAc,CAAdA,CADJ;QAELnG,WAAWmG,IAAI7qF,SAAJ6qF,EAFN;QAGLC,aAAaD,IAAI7qF,SAAJ6qF,EAHR;QAILE,eAAeF,IAAI7qF,SAAJ6qF,EAJV;QAKLnF,YAAYmF,IAAI7qF,SAAJ6qF;MALP,CAAP;IAxEmC;;IAiFrC,SAASG,4BAAT,CAAsCC,GAAtC,EAA2C;MACzC,MAAMC,SAASD,IAAIvtF,SAAJutF,CAAc,CAAdA,CAAf;MACA1kG,kBAAO2kG,WAAW,MAAlB3kG,EAA0B,qCAA1BA;MAEA,MAAM4kG,eAAeF,IAAIjrF,SAAJirF,EAArB;MACA,MAAMG,eAAeH,IAAIjrF,SAAJirF,EAArB;MACA,MAAMI,WAAWJ,IAAI9qF,QAAJ8qF,OAAmB,CAApC;MACA,MAAMK,cAAc,EAApB;;MACA,KAAK,IAAIxjH,IAAI,CAAb,EAAgBA,IAAIujH,QAApB,EAA8BvjH,GAA9B,EAAmC;QACjCwjH,YAAYrkH,IAAZqkH,CAAiBL,IAAI9qF,QAAJ8qF,OAAmB,CAApCK;MATuC;;MAYzC,MAAMpwC,SAAS;QACbgwC,MADa;QAEbC,YAFa;QAGbC,YAHa;QAIbC,QAJa;QAKbC;MALa,CAAf;;MAOA,QAAQH,YAAR;QACE,KAAK,CAAL;UACE,OAAOjwC,MAAP;;QACF,KAAK,CAAL;UACEA,OAAOqwC,OAAPrwC,GAAiB+vC,IAAI9qF,QAAJ8qF,OAAmB,CAApC/vC;UACAA,OAAOswC,UAAPtwC,GAAoB+vC,IAAI9qF,QAAJ8qF,OAAmB,CAAvC/vC;UACAA,OAAOuwC,UAAPvwC,GAAoB+vC,IAAI9qF,QAAJ8qF,OAAmB,CAAvC/vC;UACA,OAAOA,MAAP;MAPJ;;MASA,MAAM,IAAI/yD,iBAAJ,CACH,6CAA4CgjG,YAAa,GADtD,CAAN;IA7GmC;;IAkHrC,SAASO,0BAAT,CAAoCT,GAApC,EAAyC1gF,QAAzC,EAAmD;MACjD,MAAM;QAAE8gF,QAAF;QAAYC;MAAZ,IAA4BN,6BAA6BC,GAA7B,CAAlC;MACA,MAAMU,gBAAgBphF,SAASzN,KAATyN,CAAe,GAAfA,CAAtB;MACA,IAAIqhF,YAAJ;;MAEA,KAAK,IAAI9jH,IAAI,CAAb,EAAgBA,IAAIujH,QAApB,EAA8BvjH,GAA9B,EAAmC;QACjCmjH,IAAI7hG,GAAJ6hG,GAAW,KAAI14G,KAAJ04G,IAAa,CAAb,IAAkBK,YAAYxjH,CAAZ,CAA7BmjH;QACA,MAAMY,kBAAkBjB,mBAAmBK,GAAnB,CAAxB;QACA,MAAMa,kBAAkB3B,WAAWc,GAAX,EAAgBY,gBAAgBnH,SAAhC,CAAxB;;QAEA,IAAI,CAACoH,gBAAgBhnH,IAArB,EAA2B;UACzB,MAAM,IAAIqjB,iBAAJ,CACJ,uDADI,CAAN;QAN+B;;QAUjC,MAAM2/F,YAAYiE,cAAcD,gBAAgBhnH,IAA9B,CAAlB;;QAEA,KAAK,IAAIspB,IAAI,CAAR,EAAW6rB,KAAK6tE,UAAU5gH,MAA/B,EAAuCknB,IAAI6rB,EAA3C,EAA+C7rB,GAA/C,EAAoD;UAClD,KAAK,IAAImkC,IAAI,CAAR,EAAWknB,KAAKquC,UAAU15F,CAAV,EAAalnB,MAAlC,EAA0CqrD,IAAIknB,EAA9C,EAAkDlnB,GAAlD,EAAuD;YACrD,MAAMy5D,YACJlE,UAAU15F,CAAV,EAAamkC,CAAbu1D,KAAmBA,UAAU15F,CAAV,EAAamkC,CAAbu1D,EAAgB/4F,OAAhB+4F,CAAwB,KAAxBA,EAA+B,EAA/BA,CADrB;;YAEA,IAAI,CAACkE,SAAL,EAAgB;cACd;YAJmD;;YAMrD,IAAIA,cAAczhF,QAAlB,EAA4B;cAC1B,OAAO;gBACL2wC,QAAQ2wC,eADH;gBAELzB,QAAQ0B;cAFH,CAAP;YAPmD;;YAYrD,IAAIH,cAAczkH,MAAdykH,GAAuB,CAA3B,EAA8B;cAC5B;YAbmD;;YAerD,WAAWM,IAAX,IAAmBN,aAAnB,EAAkC;cAChC,IAAIK,cAAcC,IAAlB,EAAwB;gBACtBL,eAAe;kBACb9mH,MAAMmnH,IADO;kBAEb/wC,QAAQ2wC,eAFK;kBAGbzB,QAAQ0B;gBAHK,CAAfF;cAF8B;YAfmB;UADL;QAZnB;MALc;;MA6CjD,IAAIA,YAAJ,EAAkB;QAChBhhH,gBACG,yCAAwC2/B,QAAS,UAAlD,GACG,oBAAmBqhF,aAAa9mH,IAAK,iBAF1C8F;QAIA,OAAO;UACLswE,QAAQ0wC,aAAa1wC,MADhB;UAELkvC,QAAQwB,aAAaxB;QAFhB,CAAP;MAlD+C;;MAuDjD,MAAM,IAAIjiG,iBAAJ,CACH,yCAAwCoiB,QAAS,SAD9C,CAAN;IAzKmC;;IAkLrC,SAAS2hF,aAAT,CAAuB39C,IAAvB,EAA6BliB,IAA7B,EAAmCxX,cAAnC,EAAmDi4B,WAAnD,EAAgE;MAC9D,IAAI,CAACyB,IAAL,EAAW;QACT3jE,gBAAK,0BAALA;QACA,OAAO;UACLuhH,YAAY,CAAC,CADR;UAELC,YAAY,CAAC,CAFR;UAGLC,UAAU,EAHL;UAILC,cAAc;QAJT,CAAP;MAH4D;;MAU9D,IAAI51B,OAAJ;MACA,IAAInkF,QAAS,MAAKA,KAAL85C,GAAaA,KAAK95C,KAAlB85C,GAA0B,CAA1B,IAA+BkiB,KAAKjyC,MAAjD;MACA+vB,KAAKjjC,GAALijC,GAAW95C,KAAX85C;MAEAA,KAAK/rB,IAAL+rB,CAAU,CAAVA;MACA,MAAMq4D,YAAYr4D,KAAKrsB,SAALqsB,EAAlB;MAEA,IAAIkgE,cAAJ;MACA,IAAIC,WAAW,KAAf;;MAOA,KAAK,IAAI1kH,IAAI,CAAb,EAAgBA,IAAI48G,SAApB,EAA+B58G,GAA/B,EAAoC;QAClC,MAAMqkH,aAAa9/D,KAAKrsB,SAALqsB,EAAnB;QACA,MAAM+/D,aAAa//D,KAAKrsB,SAALqsB,EAAnB;QACA,MAAM/vB,SAAS+vB,KAAKlsB,QAALksB,OAAoB,CAAnC;QACA,IAAIogE,WAAW,KAAf;;QAIA,IACEF,kBACAA,eAAeJ,UAAfI,KAA8BJ,UAD9BI,IAEAA,eAAeH,UAAfG,KAA8BH,UAHhC,EAIE;UACA;QAbgC;;QAgBlC,IACED,eAAe,CAAfA,KACCC,eAAqC,CAArCA,IACCA,eAAiC,CADlCA,IAECA,eAAiC,CAHnCD,CADF,EAKE;UACAM,WAAW,IAAXA;QANF,OASO,IAAIN,eAAe,CAAfA,IAAoBC,eAAe,CAAvC,EAA0C;UAC/CK,WAAW,IAAXA;QADK,OAIA,IACLN,eAAe,CAAfA,IACAC,eAAe,CADfD,KAECr/C,eAAe,CAACy/C,cAFjBJ,CADK,EAIL;UACAM,WAAW,IAAXA;;UACA,IAAI,CAAC53E,cAAL,EAAqB;YACnB23E,WAAW,IAAXA;UAHF;QAJK,OASA,IAAI33E,kBAAkBs3E,eAAe,CAAjCt3E,IAAsCu3E,eAAe,CAAzD,EAA4D;UACjEK,WAAW,IAAXA;UAEA,IAAIC,kBAAkB,IAAtB;;UACA,IAAI5kH,IAAI48G,YAAY,CAApB,EAAuB;YACrB,MAAMiI,YAAYtgE,KAAKtsB,SAALssB,CAAe,CAAfA,CAAlB;YAAA,MACEugE,iBAAiBnK,MAAMkK,UAAU,CAAV,CAAN,EAAoBA,UAAU,CAAV,CAApB,CADnB;;YAEA,IAAIC,iBAAiBT,UAArB,EAAiC;cAC/BO,kBAAkB,KAAlBA;YAJmB;UAJ0C;;UAWjE,IAAIA,eAAJ,EAAqB;YACnBF,WAAW,IAAXA;UAZ+D;QAtCjC;;QAsDlC,IAAIC,QAAJ,EAAc;UACZF,iBAAiB;YACfJ,UADe;YAEfC,UAFe;YAGf9vF;UAHe,CAAjBiwF;QAvDgC;;QA6DlC,IAAIC,QAAJ,EAAc;UACZ;QA9DgC;MAzB0B;;MA2F9D,IAAID,cAAJ,EAAoB;QAClBlgE,KAAKjjC,GAALijC,GAAW95C,QAAQg6G,eAAejwF,MAAlC+vB;MA5F4D;;MA8F9D,IAAI,CAACkgE,cAAD,IAAmBlgE,KAAKxsB,QAALwsB,OAAoB,CAAC,CAA5C,EAA+C;QAC7CzhD,gBAAK,wCAALA;QACA,OAAO;UACLuhH,YAAY,CAAC,CADR;UAELC,YAAY,CAAC,CAFR;UAGLC,UAAU,EAHL;UAILC,cAAc;QAJT,CAAP;MAhG4D;;MAwG9D,MAAMO,SAASxgE,KAAKrsB,SAALqsB,EAAf;MACA,IAAIigE,eAAe,KAAnB;MACA,MAAMD,WAAW,EAAjB;MACA,IAAIj+F,CAAJ,EAAOsmB,OAAP;;MAGA,IAAIm4E,WAAW,CAAf,EAAkB;QAChBxgE,KAAK/rB,IAAL+rB,CAAU,IAAI,CAAdA;;QAEA,KAAKj+B,IAAI,CAAT,EAAYA,IAAI,GAAhB,EAAqBA,GAArB,EAA0B;UACxB,MAAMykB,QAAQwZ,KAAKr0B,OAALq0B,EAAd;;UACA,IAAI,CAACxZ,KAAL,EAAY;YACV;UAHsB;;UAKxBw5E,SAASplH,IAATolH,CAAc;YACZ13E,UAAUvmB,CADE;YAEZsmB,SAAS7B;UAFG,CAAdw5E;QARc;;QAahBC,eAAe,IAAfA;MAbF,OAcO,IAAIO,WAAW,CAAf,EAAkB;QACvBxgE,KAAK/rB,IAAL+rB,CAAU,IAAI,CAAdA;QAEA,MAAMygE,gBAAgB,EAAtB;QACA,IAAIC,kBAAkB,CAAtB;;QAKA,KAAK,IAAIjlH,IAAI,CAAb,EAAgBA,IAAI,GAApB,EAAyBA,GAAzB,EAA8B;UAC5B,MAAMklH,eAAe3gE,KAAKrsB,SAALqsB,MAAoB,CAAzC;UACAygE,cAAc7lH,IAAd6lH,CAAmBE,YAAnBF;UACAC,kBAAkB5hH,KAAKC,GAALD,CAAS6hH,YAAT7hH,EAAuB4hH,eAAvB5hH,CAAlB4hH;QAZqB;;QAgBvB,MAAME,aAAa,EAAnB;;QACA,KAAK,IAAInlH,IAAI,CAAb,EAAgBA,KAAKilH,eAArB,EAAsCjlH,GAAtC,EAA2C;UACzCmlH,WAAWhmH,IAAXgmH,CAAgB;YACd3wB,WAAWjwC,KAAKrsB,SAALqsB,EADG;YAEd6gE,YAAY7gE,KAAKrsB,SAALqsB,EAFE;YAGd8gE,SAASxK,YAAYt2D,KAAKr0B,OAALq0B,EAAZ,EAA4BA,KAAKr0B,OAALq0B,EAA5B,CAHK;YAId+gE,YAAY/gE,KAAKjjC,GAALijC,GAAWA,KAAKrsB,SAALqsB;UAJT,CAAhB4gE;QAlBqB;;QAyBvB,KAAK,IAAInlH,IAAI,CAAb,EAAgBA,IAAI,GAApB,EAAyBA,GAAzB,EAA8B;UAC5B,IAAIglH,cAAchlH,CAAd,MAAqB,CAAzB,EAA4B;YAE1BukD,KAAKjjC,GAALijC,GAAW4gE,WAAW,CAAX,EAAcG,UAAdH,GAA2B,IAAInlH,CAA1CukD;YACA3X,UAAU2X,KAAKrsB,SAALqsB,EAAV3X;YACA23E,SAASplH,IAATolH,CAAc;cACZ13E,UAAU7sC,CADE;cAEZ4sC;YAFY,CAAd23E;UAJF,OAQO;YAEL,MAAM33C,IAAIu4C,WAAWH,cAAchlH,CAAd,CAAX,CAAV;;YACA,KAAKsmB,IAAI,CAAT,EAAYA,IAAIsmD,EAAEw4C,UAAlB,EAA8B9+F,GAA9B,EAAmC;cACjC,MAAMumB,WAAY,MAAK,CAAL,IAAUvmB,CAAV,GAAcsmD,EAAE4nB,SAAlC;cACAjwC,KAAKjjC,GAALijC,GAAWqoB,EAAE04C,UAAF14C,GAAe,IAAItmD,CAA9Bi+B;cACA3X,UAAU2X,KAAKrsB,SAALqsB,EAAV3X;;cACA,IAAIA,YAAY,CAAhB,EAAmB;gBACjBA,UAAW,WAAUggC,EAAEy4C,OAAZ,IAAuB,KAAlCz4E;cAL+B;;cAOjC23E,SAASplH,IAATolH,CAAc;gBACZ13E,QADY;gBAEZD;cAFY,CAAd23E;YAVG;UATqB;QAzBP;MAAlB,OAmDA,IAAIQ,WAAW,CAAf,EAAkB;QACvBxgE,KAAK/rB,IAAL+rB,CAAU,IAAI,CAAdA;QAIA,MAAMw4D,WAAWx4D,KAAKrsB,SAALqsB,MAAoB,CAArC;QACAA,KAAK/rB,IAAL+rB,CAAU,CAAVA;QACA,MAAMoqC,WAAW,EAAjB;QACA,IAAI42B,QAAJ;;QACA,KAAKA,WAAW,CAAhB,EAAmBA,WAAWxI,QAA9B,EAAwCwI,UAAxC,EAAoD;UAClD52B,SAASxvF,IAATwvF,CAAc;YAAE3gE,KAAKu2B,KAAKrsB,SAALqsB;UAAP,CAAdoqC;QAVqB;;QAYvBpqC,KAAK/rB,IAAL+rB,CAAU,CAAVA;;QACA,KAAKghE,WAAW,CAAhB,EAAmBA,WAAWxI,QAA9B,EAAwCwI,UAAxC,EAAoD;UAClD52B,SAAS42B,QAAT,EAAmB96G,KAAnBkkF,GAA2BpqC,KAAKrsB,SAALqsB,EAA3BoqC;QAdqB;;QAiBvB,KAAK42B,WAAW,CAAhB,EAAmBA,WAAWxI,QAA9B,EAAwCwI,UAAxC,EAAoD;UAClD52B,SAAS42B,QAAT,EAAmB3U,KAAnBjiB,GAA2BpqC,KAAKrsB,SAALqsB,EAA3BoqC;QAlBqB;;QAqBvB,IAAI62B,eAAe,CAAnB;QAAA,IACEC,WADF;;QAEA,KAAKF,WAAW,CAAhB,EAAmBA,WAAWxI,QAA9B,EAAwCwI,UAAxC,EAAoD;UAClD32B,UAAUD,SAAS42B,QAAT,CAAV32B;UACA,MAAM82B,cAAcnhE,KAAKrsB,SAALqsB,EAApB;;UACA,IAAI,CAACmhE,WAAL,EAAkB;YAChB92B,QAAQ62B,WAAR72B,GAAsB,CAAC,CAAvBA;YACA;UALgD;;UAQlD62B,cAAe,gBAAe,CAAf,KAAqB1I,WAAWwI,QAAhC,CAAfE;UACA72B,QAAQ62B,WAAR72B,GAAsB62B,WAAtB72B;UACA42B,eAAeniH,KAAKC,GAALD,CACbmiH,YADaniH,EAEboiH,cAAc72B,QAAQ5gE,GAAtBy3F,GAA4B72B,QAAQnkF,KAApCg7G,GAA4C,CAF/BpiH,CAAfmiH;QAjCqB;;QAuCvB,MAAMG,UAAU,EAAhB;;QACA,KAAKr/F,IAAI,CAAT,EAAYA,IAAIk/F,YAAhB,EAA8Bl/F,GAA9B,EAAmC;UACjCq/F,QAAQxmH,IAARwmH,CAAaphE,KAAKrsB,SAALqsB,EAAbohE;QAzCqB;;QA4CvB,KAAKJ,WAAW,CAAhB,EAAmBA,WAAWxI,QAA9B,EAAwCwI,UAAxC,EAAoD;UAClD32B,UAAUD,SAAS42B,QAAT,CAAV32B;UACAnkF,QAAQmkF,QAAQnkF,KAAhBA;UACA,MAAMujB,MAAM4gE,QAAQ5gE,GAApB;UACA,MAAM4iF,QAAQhiB,QAAQgiB,KAAtB;UACA6U,cAAc72B,QAAQ62B,WAAtBA;;UAEA,KAAKn/F,IAAI7b,KAAT,EAAgB6b,KAAK0H,GAArB,EAA0B1H,GAA1B,EAA+B;YAC7B,IAAIA,MAAM,MAAV,EAAkB;cAChB;YAF2B;;YAK7BsmB,UAAU64E,cAAc,CAAdA,GAAkBn/F,CAAlBm/F,GAAsBE,QAAQF,cAAcn/F,CAAdm/F,GAAkBh7G,KAA1B,CAAhCmiC;YACAA,UAAWA,UAAUgkE,KAAVhkE,GAAmB,MAA9BA;YACA23E,SAASplH,IAATolH,CAAc;cACZ13E,UAAUvmB,CADE;cAEZsmB;YAFY,CAAd23E;UAdgD;QA5C7B;MAAlB,OAgEA,IAAIQ,WAAW,CAAf,EAAkB;QACvBxgE,KAAK/rB,IAAL+rB,CAAU,IAAI,CAAdA;QAOA,MAAMiwC,YAAYjwC,KAAKrsB,SAALqsB,EAAlB;QACA,MAAM6gE,aAAa7gE,KAAKrsB,SAALqsB,EAAnB;;QAEA,KAAKj+B,IAAI,CAAT,EAAYA,IAAI8+F,UAAhB,EAA4B9+F,GAA5B,EAAiC;UAC/BsmB,UAAU2X,KAAKrsB,SAALqsB,EAAV3X;UACA,MAAMC,WAAW2nD,YAAYluE,CAA7B;UAEAi+F,SAASplH,IAATolH,CAAc;YACZ13E,QADY;YAEZD;UAFY,CAAd23E;QAfqB;MAAlB,OAoBA,IAAIQ,WAAW,EAAf,EAAmB;QACxBxgE,KAAK/rB,IAAL+rB,CAAU,IAAI,CAAJ,GAAQ,CAAlBA;QAEA,MAAMqhE,UAAUrhE,KAAKlsB,QAALksB,OAAoB,CAApC;;QACA,KAAKj+B,IAAI,CAAT,EAAYA,IAAIs/F,OAAhB,EAAyBt/F,GAAzB,EAA8B;UAC5B,MAAMu/F,gBAAgBthE,KAAKlsB,QAALksB,OAAoB,CAA1C;UACA,MAAMuhE,cAAcvhE,KAAKlsB,QAALksB,OAAoB,CAAxC;UACA,IAAIwhE,YAAYxhE,KAAKlsB,QAALksB,OAAoB,CAApC;;UAEA,KACE,IAAI1X,WAAWg5E,aADjB,EAEEh5E,YAAYi5E,WAFd,EAGEj5E,UAHF,EAIE;YACA03E,SAASplH,IAATolH,CAAc;cACZ13E,QADY;cAEZD,SAASm5E;YAFG,CAAdxB;UAV0B;QAJN;MAAnB,OAoBA;QACLzhH,gBAAK,wCAAwCiiH,MAA7CjiH;QACA,OAAO;UACLuhH,YAAY,CAAC,CADR;UAELC,YAAY,CAAC,CAFR;UAGLC,UAAU,EAHL;UAILC,cAAc;QAJT,CAAP;MAzR4D;;MAkS9DD,SAASlyF,IAATkyF,CAAc,UAAU/7G,CAAV,EAAaC,CAAb,EAAgB;QAC5B,OAAOD,EAAEqkC,QAAFrkC,GAAaC,EAAEokC,QAAtB;MADF;;MAGA,KAAK,IAAI7sC,IAAI,CAAb,EAAgBA,IAAIukH,SAASnlH,MAA7B,EAAqCY,GAArC,EAA0C;QACxC,IAAIukH,SAASvkH,IAAI,CAAb,EAAgB6sC,QAAhB03E,KAA6BA,SAASvkH,CAAT,EAAY6sC,QAA7C,EAAuD;UACrD03E,SAASrkH,MAATqkH,CAAgBvkH,CAAhBukH,EAAmB,CAAnBA;UACAvkH;QAHsC;MArSoB;;MA4S9D,OAAO;QACLqkH,YAAYI,eAAeJ,UADtB;QAELC,YAAYG,eAAeH,UAFtB;QAGLC,QAHK;QAILC;MAJK,CAAP;IA9dmC;;IAserC,SAASwB,eAAT,CACEzhE,IADF,EAEE6uB,MAFF,EAGEzrC,OAHF,EAIEs+E,SAJF,EAKEzJ,SALF,EAME0J,aANF,EAOE;MACA,IAAI,CAAC9yC,MAAL,EAAa;QACX,IAAIzrC,OAAJ,EAAa;UACXA,QAAQzpC,IAARypC,GAAe,IAAfA;QAFS;;QAIX;MALF;;MAQA4c,KAAKjjC,GAALijC,GAAY,MAAK95C,KAAL85C,GAAaA,KAAK95C,KAAlB85C,GAA0B,CAA1B,IAA+B6uB,OAAO5+C,MAAlD+vB;MACAA,KAAKjjC,GAALijC,IAAY,CAAZA;MACAA,KAAKjjC,GAALijC,IAAY,CAAZA;MACAA,KAAKjjC,GAALijC,IAAY,CAAZA;MACAA,KAAKjjC,GAALijC,IAAY,CAAZA;MACAA,KAAKjjC,GAALijC,IAAY,CAAZA;MACAA,KAAKjjC,GAALijC,IAAY,CAAZA;MACAA,KAAKjjC,GAALijC,IAAY,CAAZA;MACAA,KAAKjjC,GAALijC,IAAY,CAAZA;MACAA,KAAKjjC,GAALijC,IAAY,CAAZA;MACAA,KAAKjjC,GAALijC,IAAY,CAAZA;MACA,MAAM4hE,cAAc5hE,KAAKrsB,SAALqsB,EAApB;MACAA,KAAKjjC,GAALijC,IAAY,CAAZA;MACAA,KAAKjjC,GAALijC,IAAY,CAAZA;MACA,IAAI6hE,eAAe7hE,KAAKrsB,SAALqsB,EAAnB;;MAEA,IAAI4hE,gBAAgB,CAApB,EAAuB;QACrB,MAAME,WAAW1L,MAAMsL,UAAU/nH,IAAV+nH,CAAe,EAAfA,CAAN,EAA0BA,UAAU/nH,IAAV+nH,CAAe,EAAfA,CAA1B,CAAjB;;QACA,IAAI,EAAEI,WAAW,CAAb,CAAJ,EAAqB;UAEnBjzC,OAAOl1E,IAAPk1E,CAAY,EAAZA,IAAkB,CAAlBA;UACAA,OAAOl1E,IAAPk1E,CAAY,EAAZA,IAAkB,CAAlBA;QALmB;MAxBvB;;MAiCA,IAAIgzC,eAAe5J,SAAnB,EAA8B;QAC5BvyG,gBACG,qBAAoBm8G,YAAa,kBAAlC,GACG,+BAA8B5J,SAAU,IAF7CvyG;QAKAm8G,eAAe5J,SAAf4J;QACAhzC,OAAOl1E,IAAPk1E,CAAY,EAAZA,IAAmB,gBAAe,MAAf,KAA0B,CAA7CA;QACAA,OAAOl1E,IAAPk1E,CAAY,EAAZA,IAAkBgzC,eAAe,MAAjChzC;MAzCF;;MA4CA,MAAMkzC,oBAAoB9J,YAAY4J,YAAtC;MACA,MAAMG,aACJD,qBAAsB3+E,QAAQvoC,MAARuoC,GAAiBy+E,eAAe,CAAhCz+E,IAAsC,CAA5D,CADF;;MAGA,IAAI4+E,aAAa,CAAjB,EAAoB;QAIlB,MAAM76F,UAAU,IAAIttB,UAAJ,CAAeupC,QAAQvoC,MAARuoC,GAAiB4+E,aAAa,CAA7C,CAAhB;QACA76F,QAAQjK,GAARiK,CAAYic,QAAQzpC,IAApBwtB;;QACA,IAAIw6F,aAAJ,EAAmB;UAEjBx6F,QAAQic,QAAQvoC,MAAhB,IAA0BuoC,QAAQzpC,IAARypC,CAAa,CAAbA,CAA1Bjc;UACAA,QAAQic,QAAQvoC,MAARuoC,GAAiB,CAAzB,IAA8BA,QAAQzpC,IAARypC,CAAa,CAAbA,CAA9Bjc;QATgB;;QAWlBic,QAAQzpC,IAARypC,GAAejc,OAAfic;MA3DF;IA7emC;;IA4iBrC,SAAS6+E,aAAT,CACEjlH,MADF,EAEEklH,WAFF,EAGEC,SAHF,EAIExhE,IAJF,EAKEyhE,SALF,EAMEC,UANF,EAOE;MACA,MAAMC,eAAe;QACnBznH,QAAQ,CADW;QAEnB0nH,oBAAoB;MAFD,CAArB;;MAIA,IAAIJ,YAAYD,WAAZC,IAA2B,EAA/B,EAAmC;QAEjC,OAAOG,YAAP;MAPF;;MASA,MAAME,OAAOxlH,OAAOyf,QAAPzf,CAAgBklH,WAAhBllH,EAA6BmlH,SAA7BnlH,CAAb;MACA,IAAIylH,gBAAgBnM,YAAYkM,KAAK,CAAL,CAAZ,EAAqBA,KAAK,CAAL,CAArB,CAApB;;MACA,IAAIC,gBAAgB,CAApB,EAAuB;QAErBA,gBAAgB,CAAC,CAAjBA;QACApM,iBAAiBmM,IAAjB,EAAuB,CAAvB,EAA0BC,aAA1B;QAEA9hE,KAAKzjC,GAALyjC,CAAS6hE,IAAT7hE,EAAeyhE,SAAfzhE;QACA2hE,aAAaznH,MAAbynH,GAAsBE,KAAK3nH,MAA3BynH;QACA,OAAOA,YAAP;MAlBF;;MAqBA,IAAI7mH,CAAJ;MAAA,IACEsmB,IAAI,EADN;MAAA,IAEE2gG,aAAa,CAFf;;MAGA,KAAKjnH,IAAI,CAAT,EAAYA,IAAIgnH,aAAhB,EAA+BhnH,GAA/B,EAAoC;QAClC,MAAMknH,WAAYH,KAAKzgG,CAAL,KAAW,CAAXygG,GAAgBA,KAAKzgG,IAAI,CAAT,CAAlC;QACA2gG,aAAaC,WAAW,CAAxBD;QACA3gG,KAAK,CAALA;MA3BF;;MA8BA,MAAM6gG,oBAAoB7gG,CAA1B;MACA,MAAM8gG,qBAAsBL,KAAKzgG,CAAL,KAAW,CAAXygG,GAAgBA,KAAKzgG,IAAI,CAAT,CAA5C;MACAugG,aAAaC,kBAAbD,GAAkCO,kBAAlCP;MACAvgG,KAAK,IAAI8gG,kBAAT9gG;MACA,MAAM+gG,kBAAkB/gG,CAAxB;MAEA,IAAIghG,oBAAoB,CAAxB;;MACA,KAAKtnH,IAAI,CAAT,EAAYA,IAAIinH,UAAhB,EAA4BjnH,GAA5B,EAAiC;QAC/B,MAAM+0C,OAAOgyE,KAAKzgG,GAAL,CAAb;;QACA,IAAIyuB,OAAO,IAAX,EAAiB;UAEfgyE,KAAKzgG,IAAI,CAAT,IAAcyuB,OAAO,IAArBgyE;QAJ6B;;QAM/B,IAAIQ,UAAU,CAAd;;QACA,IAAIxyE,OAAO,CAAX,EAAc;UACZwyE,UAAU,CAAVA;QADF,OAEO,IAAIxyE,OAAO,EAAX,EAAe;UACpBwyE,UAAU,CAAVA;QAV6B;;QAY/B,IAAIC,UAAU,CAAd;;QACA,IAAIzyE,OAAO,CAAX,EAAc;UACZyyE,UAAU,CAAVA;QADF,OAEO,IAAIzyE,OAAO,EAAX,EAAe;UACpByyE,UAAU,CAAVA;QAhB6B;;QAkB/B,MAAMC,WAAWF,UAAUC,OAA3B;QACAF,qBAAqBG,QAArBH;;QACA,IAAIvyE,OAAO,CAAX,EAAc;UACZ,MAAM2yE,SAASX,KAAKzgG,GAAL,CAAf;UACAtmB,KAAK0nH,MAAL1nH;UACAsnH,qBAAqBI,SAASD,QAA9BH;QAvB6B;MArCjC;;MAgEA,IAAIA,sBAAsB,CAA1B,EAA6B;QAC3B,OAAOT,YAAP;MAjEF;;MAmEA,IAAIc,kBAAkBrhG,IAAIghG,iBAA1B;;MACA,IAAIK,kBAAkBZ,KAAK3nH,MAA3B,EAAmC;QAEjC,OAAOynH,YAAP;MAtEF;;MAwEA,IAAI,CAACD,UAAD,IAAeQ,qBAAqB,CAAxC,EAA2C;QACzCliE,KAAKzjC,GAALyjC,CAAS6hE,KAAK/lG,QAAL+lG,CAAc,CAAdA,EAAiBI,iBAAjBJ,CAAT7hE,EAA8CyhE,SAA9CzhE;QACAA,KAAKzjC,GAALyjC,CAAS,CAAC,CAAD,EAAI,CAAJ,CAATA,EAAiByhE,YAAYQ,iBAA7BjiE;QACAA,KAAKzjC,GAALyjC,CACE6hE,KAAK/lG,QAAL+lG,CAAcM,eAAdN,EAA+BY,eAA/BZ,CADF7hE,EAEEyhE,YAAYQ,iBAAZR,GAAgC,CAFlCzhE;QAIAyiE,mBAAmBP,kBAAnBO;;QACA,IAAIZ,KAAK3nH,MAAL2nH,GAAcY,eAAdZ,GAAgC,CAApC,EAAuC;UACrCY,kBAAmBA,kBAAkB,CAAlBA,GAAuB,CAAC,CAA3CA;QATuC;;QAWzCd,aAAaznH,MAAbynH,GAAsBc,eAAtBd;QACA,OAAOA,YAAP;MApFF;;MAsFA,IAAIE,KAAK3nH,MAAL2nH,GAAcY,eAAdZ,GAAgC,CAApC,EAAuC;QAErCY,kBAAmBA,kBAAkB,CAAlBA,GAAuB,CAAC,CAA3CA;QACAziE,KAAKzjC,GAALyjC,CAAS6hE,KAAK/lG,QAAL+lG,CAAc,CAAdA,EAAiBY,eAAjBZ,CAAT7hE,EAA4CyhE,SAA5CzhE;QACA2hE,aAAaznH,MAAbynH,GAAsBc,eAAtBd;QACA,OAAOA,YAAP;MA3FF;;MA8FA3hE,KAAKzjC,GAALyjC,CAAS6hE,IAAT7hE,EAAeyhE,SAAfzhE;MACA2hE,aAAaznH,MAAbynH,GAAsBE,KAAK3nH,MAA3BynH;MACA,OAAOA,YAAP;IAnpBmC;;IAspBrC,SAASe,YAAT,CAAsBzkB,IAAtB,EAA4BqZ,SAA5B,EAAuCqL,UAAvC,EAAmD;MACjD,MAAM3pH,OAAOilG,KAAKjlG,IAAlB;MAIA,MAAMuhC,UAAUq7E,MAAM58G,KAAK,CAAL,CAAN,EAAeA,KAAK,CAAL,CAAf,EAAwBA,KAAK,CAAL,CAAxB,EAAiCA,KAAK,CAAL,CAAjC,CAAhB;;MACA,IAAIuhC,WAAW,EAAXA,KAAkB,CAAtB,EAAyB;QACvBx1B,gBAAK,sDAAsDw1B,OAA3Dx1B;QACA/L,KAAK,CAAL,IAAU,CAAVA;QACAA,KAAK,CAAL,IAAU,CAAVA;QACAA,KAAK,CAAL,IAAU,CAAVA;QACAA,KAAK,CAAL,IAAU,CAAVA;MAX+C;;MAcjD,MAAM4pH,mBAAmBnN,MAAMz8G,KAAK,EAAL,CAAN,EAAgBA,KAAK,EAAL,CAAhB,CAAzB;;MACA,IAAI4pH,mBAAmB,CAAnBA,IAAwBA,mBAAmB,CAA/C,EAAkD;QAChD79G,gBACE,+DACE69G,gBAFJ79G;QAeA,MAAM89G,mBAAmBvL,YAAY,CAArC;;QACA,IAAIqL,eAAeE,oBAAoB,CAAvC,EAA0C;UAExC7pH,KAAK,EAAL,IAAW,CAAXA;UACAA,KAAK,EAAL,IAAW,CAAXA;QAHF,OAIO,IAAI2pH,eAAeE,oBAAoB,CAAvC,EAA0C;UAE/C7pH,KAAK,EAAL,IAAW,CAAXA;UACAA,KAAK,EAAL,IAAW,CAAXA;QAHK,OAIA;UACL,MAAM,IAAImiB,iBAAJ,CACJ,qCAAqCynG,gBADjC,CAAN;QA1B8C;MAfD;IAtpBd;;IAssBrC,SAASE,sBAAT,CACEC,IADF,EAEElB,IAFF,EAGEvK,SAHF,EAIE0L,oBAJF,EAKEtB,UALF,EAMEV,aANF,EAOEiC,qBAPF,EAQE;MACA,IAAIC,QAAJ,EAAcC,UAAd,EAA0BC,UAA1B;;MACA,IAAIJ,oBAAJ,EAA0B;QACxBE,WAAW,CAAXA;;QACAC,aAAa,SAASE,kBAAT,CAA4BrqH,IAA5B,EAAkCs2B,MAAlC,EAA0C;UACrD,OACGt2B,KAAKs2B,MAAL,KAAgB,EAAhBt2B,GACAA,KAAKs2B,SAAS,CAAd,KAAoB,EADpBt2B,GAEAA,KAAKs2B,SAAS,CAAd,KAAoB,CAFpBt2B,GAGDA,KAAKs2B,SAAS,CAAd,CAJF;QADF;;QAQA8zF,aAAa,SAASE,kBAAT,CAA4BtqH,IAA5B,EAAkCs2B,MAAlC,EAA0CvxB,KAA1C,EAAiD;UAC5D/E,KAAKs2B,MAAL,IAAgBvxB,UAAU,EAAVA,GAAgB,IAAhC/E;UACAA,KAAKs2B,SAAS,CAAd,IAAoBvxB,SAAS,EAATA,GAAe,IAAnC/E;UACAA,KAAKs2B,SAAS,CAAd,IAAoBvxB,SAAS,CAATA,GAAc,IAAlC/E;UACAA,KAAKs2B,SAAS,CAAd,IAAmBvxB,QAAQ,IAA3B/E;QAJF;MAVF,OAgBO;QACLkqH,WAAW,CAAXA;;QACAC,aAAa,SAASI,cAAT,CAAwBvqH,IAAxB,EAA8Bs2B,MAA9B,EAAsC;UACjD,OAAQt2B,KAAKs2B,MAAL,KAAgB,CAAhBt2B,GAAsBA,KAAKs2B,SAAS,CAAd,KAAoB,CAAlD;QADF;;QAGA8zF,aAAa,SAASI,cAAT,CAAwBxqH,IAAxB,EAA8Bs2B,MAA9B,EAAsCvxB,KAAtC,EAA6C;UACxD/E,KAAKs2B,MAAL,IAAgBvxB,SAAS,CAATA,GAAc,IAA9B/E;UACAA,KAAKs2B,SAAS,CAAd,IAAoBvxB,SAAS,CAATA,GAAc,IAAlC/E;QAFF;MAvBF;;MA6BA,MAAMyqH,eAAezC,gBAAgB1J,YAAY,CAA5B,GAAgCA,SAArD;MACA,MAAMoM,eAAeR,YAAY,IAAIO,YAAhB,CAArB;MAEA,MAAME,WAAW,IAAIzqH,UAAJ,CAAewqH,YAAf,CAAjB;MACAC,SAASpnG,GAATonG,CAAaZ,KAAK/pH,IAAL+pH,CAAUjnG,QAAVinG,CAAmB,CAAnBA,EAAsBW,YAAtBX,CAAbY;MACAZ,KAAK/pH,IAAL+pH,GAAYY,QAAZZ;MAEA,MAAMa,cAAc/B,KAAK7oH,IAAzB;MACA,MAAM6qH,oBAAoBD,YAAY1pH,MAAtC;MACA,MAAM4pH,cAAc,IAAI5qH,UAAJ,CAAe2qH,iBAAf,CAApB;MAOA,IAAI/oH,CAAJ,EAAOsmB,CAAP;MACA,MAAM2iG,cAAc,EAApB;;MAEA,KAAKjpH,IAAI,CAAJA,EAAOsmB,IAAI,CAAhB,EAAmBtmB,IAAIw8G,YAAY,CAAnC,EAAsCx8G,KAAKsmB,KAAK8hG,QAAhD,EAA0D;QACxD,IAAI5zF,SAAS6zF,WAAWQ,QAAX,EAAqBviG,CAArB,CAAb;;QACA,IAAIkO,SAASu0F,iBAAb,EAAgC;UAC9Bv0F,SAASu0F,iBAATv0F;QAHsD;;QAKxDy0F,YAAY9pH,IAAZ8pH,CAAiB;UACfl+E,OAAO/qC,CADQ;UAEfw0B,MAFe;UAGf8hD,WAAW;QAHI,CAAjB2yC;MArDF;;MA2DAA,YAAY52F,IAAZ42F,CAAiB,CAACzgH,CAAD,EAAIC,CAAJ,KAAU;QACzB,OAAOD,EAAEgsB,MAAFhsB,GAAWC,EAAE+rB,MAApB;MADF;;MAMA,KAAKx0B,IAAI,CAAT,EAAYA,IAAIw8G,SAAhB,EAA2Bx8G,GAA3B,EAAgC;QAC9BipH,YAAYjpH,CAAZ,EAAes2E,SAAf2yC,GAA2BA,YAAYjpH,IAAI,CAAhB,EAAmBw0B,MAA9Cy0F;MAlEF;;MAqEAA,YAAY52F,IAAZ42F,CAAiB,CAACzgH,CAAD,EAAIC,CAAJ,KAAU;QACzB,OAAOD,EAAEuiC,KAAFviC,GAAUC,EAAEsiC,KAAnB;MADF;;MAKA,KAAK/qC,IAAI,CAAT,EAAYA,IAAIw8G,SAAhB,EAA2Bx8G,GAA3B,EAAgC;QAC9B,MAAM;UAAEw0B,MAAF;UAAU8hD;QAAV,IAAwB2yC,YAAYjpH,CAAZ,CAA9B;;QACA,IAAIw0B,WAAW,CAAXA,IAAgB8hD,cAAc,CAAlC,EAAqC;UACnC;QAH4B;;QAK9B,MAAM4yC,aAAaD,YAAYjpH,IAAI,CAAhB,EAAmBw0B,MAAtC;;QACA,IAAI00F,eAAe,CAAnB,EAAsB;UACpB;QAP4B;;QAS9BD,YAAYjpH,CAAZ,EAAes2E,SAAf2yC,GAA2BC,UAA3BD;QACA;MApFF;;MAuFA,MAAME,gBAAgB//G,OAAOC,MAAPD,CAAc,IAAdA,CAAtB;MACA,IAAIggH,cAAc,CAAlB;MACAd,WAAWO,QAAX,EAAqB,CAArB,EAAwBO,WAAxB;;MACA,KAAKppH,IAAI,CAAJA,EAAOsmB,IAAI8hG,QAAhB,EAA0BpoH,IAAIw8G,SAA9B,EAAyCx8G,KAAKsmB,KAAK8hG,QAAnD,EAA6D;QAC3D,MAAMvB,eAAeL,cACnBsC,WADmB,EAEnBG,YAAYjpH,CAAZ,EAAew0B,MAFI,EAGnBy0F,YAAYjpH,CAAZ,EAAes2E,SAHI,EAInB0yC,WAJmB,EAKnBI,WALmB,EAMnBxC,UANmB,CAArB;QAQA,MAAMrqC,YAAYsqC,aAAaznH,MAA/B;;QACA,IAAIm9E,cAAc,CAAlB,EAAqB;UACnB4sC,cAAcnpH,CAAd,IAAmB,IAAnBmpH;QAXyD;;QAa3D,IAAItC,aAAaC,kBAAbD,GAAkCsB,qBAAtC,EAA6D;UAC3DA,wBAAwBtB,aAAaC,kBAArCqB;QAdyD;;QAgB3DiB,eAAe7sC,SAAf6sC;QACAd,WAAWO,QAAX,EAAqBviG,CAArB,EAAwB8iG,WAAxB;MA3GF;;MA8GA,IAAIA,gBAAgB,CAApB,EAAuB;QAGrB,MAAMC,cAAc,IAAIjrH,UAAJ,CAAe,CACjC,CADiC,EAC9B,CAD8B,EAC3B,CAD2B,EACxB,CADwB,EACrB,CADqB,EAClB,CADkB,EACf,CADe,EACZ,CADY,EACT,CADS,EACN,CADM,EACH,CADG,EACA,CADA,EACG,CADH,EACM,CADN,EACS,EADT,EACa,CADb,CAAf,CAApB;;QAGA,KAAK4B,IAAI,CAAJA,EAAOsmB,IAAI8hG,QAAhB,EAA0BpoH,IAAI2oH,YAA9B,EAA4C3oH,KAAKsmB,KAAK8hG,QAAtD,EAAgE;UAC9DE,WAAWO,QAAX,EAAqBviG,CAArB,EAAwB+iG,YAAYjqH,MAApC;QAPmB;;QASrB2nH,KAAK7oH,IAAL6oH,GAAYsC,WAAZtC;MATF,OAUO,IAAIb,aAAJ,EAAmB;QAIxB,MAAMoD,mBAAmBjB,WAAWQ,QAAX,EAAqBT,QAArB,CAAzB;;QACA,IAAIY,YAAY5pH,MAAZ4pH,GAAqBM,mBAAmBF,WAA5C,EAAyD;UACvDrC,KAAK7oH,IAAL6oH,GAAYiC,YAAYhoG,QAAZgoG,CAAqB,CAArBA,EAAwBM,mBAAmBF,WAA3CJ,CAAZjC;QADF,OAEO;UACLA,KAAK7oH,IAAL6oH,GAAY,IAAI3oH,UAAJ,CAAekrH,mBAAmBF,WAAlC,CAAZrC;UACAA,KAAK7oH,IAAL6oH,CAAUtlG,GAAVslG,CAAciC,YAAYhoG,QAAZgoG,CAAqB,CAArBA,EAAwBI,WAAxBJ,CAAdjC;QATsB;;QAWxBA,KAAK7oH,IAAL6oH,CAAUtlG,GAAVslG,CAAciC,YAAYhoG,QAAZgoG,CAAqB,CAArBA,EAAwBM,gBAAxBN,CAAdjC,EAAyDqC,WAAzDrC;QACAuB,WACEL,KAAK/pH,IADP,EAEE2qH,SAASzpH,MAATypH,GAAkBT,QAFpB,EAGEgB,cAAcE,gBAHhB;MAZK,OAiBA;QACLvC,KAAK7oH,IAAL6oH,GAAYiC,YAAYhoG,QAAZgoG,CAAqB,CAArBA,EAAwBI,WAAxBJ,CAAZjC;MA1IF;;MA4IA,OAAO;QACLoC,aADK;QAELhB;MAFK,CAAP;IA11BmC;;IAg2BrC,SAASoB,mBAAT,CAA6B7G,IAA7B,EAAmC8G,aAAnC,EAAkDC,aAAlD,EAAiE;MAC/D,MAAMh/G,QAAS,MAAKA,KAALuS,GAAaA,KAAKvS,KAAlBuS,GAA0B,CAA1B,IAA+B0lG,KAAKluF,MAAnD;MACAxX,KAAKsE,GAALtE,GAAWvS,KAAXuS;MAEA,MAAM5d,SAASsjH,KAAKtjH,MAApB;MAAA,MACE4uB,MAAMvjB,QAAQrL,MADhB;MAEA,MAAMqgC,UAAUziB,KAAKqb,QAALrb,EAAhB;MAEAA,KAAKwb,IAALxb,CAAU,EAAVA;MAEA,IAAI0vB,UAAJ;MACA,IAAIg9E,QAAQ,IAAZ;MACA,IAAI1pH,CAAJ;;MAEA,QAAQy/B,OAAR;QACE,KAAK,UAAL;UACEiN,aAAaT,qCAAbS;UACA;;QACF,KAAK,UAAL;UACE,MAAM8vE,YAAYx/F,KAAKkb,SAALlb,EAAlB;;UACA,IAAIw/F,cAAciN,aAAlB,EAAiC;YAC/BC,QAAQ,KAARA;YACA;UAJJ;;UAME,MAAMC,mBAAmB,EAAzB;;UACA,KAAK3pH,IAAI,CAAT,EAAYA,IAAIw8G,SAAhB,EAA2B,EAAEx8G,CAA7B,EAAgC;YAC9B,MAAM+qC,QAAQ/tB,KAAKkb,SAALlb,EAAd;;YACA,IAAI+tB,SAAS,KAAb,EAAoB;cAClB2+E,QAAQ,KAARA;cACA;YAJ4B;;YAM9BC,iBAAiBxqH,IAAjBwqH,CAAsB5+E,KAAtB4+E;UAbJ;;UAeE,IAAI,CAACD,KAAL,EAAY;YACV;UAhBJ;;UAkBE,MAAME,cAAc,EAApB;UAAA,MACEhpG,SAAS,EADX;;UAEA,OAAO5D,KAAKsE,GAALtE,GAAWgR,GAAlB,EAAuB;YACrB,MAAM67F,eAAe7sG,KAAKkT,OAALlT,EAArB;YACA4D,OAAOxhB,MAAPwhB,GAAgBipG,YAAhBjpG;;YACA,KAAK5gB,IAAI,CAAT,EAAYA,IAAI6pH,YAAhB,EAA8B,EAAE7pH,CAAhC,EAAmC;cACjC4gB,OAAO5gB,CAAP,IAAYygB,OAAOC,YAAPD,CAAoBzD,KAAKkT,OAALlT,EAApByD,CAAZG;YAJmB;;YAMrBgpG,YAAYzqH,IAAZyqH,CAAiBhpG,OAAOvhB,IAAPuhB,CAAY,EAAZA,CAAjBgpG;UA1BJ;;UA4BEl9E,aAAa,EAAbA;;UACA,KAAK1sC,IAAI,CAAT,EAAYA,IAAIw8G,SAAhB,EAA2B,EAAEx8G,CAA7B,EAAgC;YAC9B,MAAMsmB,IAAIqjG,iBAAiB3pH,CAAjB,CAAV;;YACA,IAAIsmB,IAAI,GAAR,EAAa;cACXomB,WAAWvtC,IAAXutC,CAAgBT,sCAAyB3lB,CAAzB2lB,CAAhBS;cACA;YAJ4B;;YAM9BA,WAAWvtC,IAAXutC,CAAgBk9E,YAAYtjG,IAAI,GAAhB,CAAhBomB;UAnCJ;;UAqCE;;QACF,KAAK,UAAL;UACE;;QACF;UACE5pC,gBAAK,4CAA4C28B,OAAjD38B;UACA4mH,QAAQ,KAARA;;UACA,IAAIF,cAAc1kD,eAAlB,EAAmC;YACjCp4B,aAAa88E,cAAc1kD,eAA3Bp4B;UAJJ;;UAME;MAlDJ;;MAoDA88E,cAAc98E,UAAd88E,GAA2B98E,UAA3B88E;MACA,OAAOE,KAAP;IAn6BmC;;IAs6BrC,SAASzF,aAAT,CAAuBjE,SAAvB,EAAkC;MAChC,MAAMv1G,QAAS,MAAKA,KAALuS,GAAaA,KAAKvS,KAAlBuS,GAA0B,CAA1B,IAA+BgjG,UAAUxrF,MAAxD;MACAxX,KAAKsE,GAALtE,GAAWvS,KAAXuS;MAEA,MAAM2iG,QAAQ,CAAC,EAAD,EAAK,EAAL,CAAd;MACA,MAAMvgH,SAAS4gH,UAAU5gH,MAAzB;MAAA,MACE4uB,MAAMvjB,QAAQrL,MADhB;MAEA,MAAM2lH,SAAS/nG,KAAKkb,SAALlb,EAAf;MACA,MAAM8sG,yBAAyB,CAA/B;;MACA,IAAI/E,WAAW,CAAXA,IAAgB3lH,SAAS0qH,sBAA7B,EAAqD;QAEnD,OAAOnK,KAAP;MAX8B;;MAahC,MAAMoK,aAAa/sG,KAAKkb,SAALlb,EAAnB;MACA,MAAMgtG,eAAehtG,KAAKkb,SAALlb,EAArB;MACA,MAAMitG,UAAU,EAAhB;MACA,MAAMC,qBAAqB,EAA3B;MACA,IAAIlqH,CAAJ,EAAOiJ,EAAP;;MAEA,KAAKjJ,IAAI,CAAT,EAAYA,IAAI+pH,UAAJ/pH,IAAkBgd,KAAKsE,GAALtE,GAAWktG,kBAAXltG,IAAiCgR,GAA/D,EAAoEhuB,GAApE,EAAyE;QACvE,MAAM6iB,IAAI;UACRsnG,UAAUntG,KAAKkb,SAALlb,EADF;UAER0J,UAAU1J,KAAKkb,SAALlb,EAFF;UAGRotG,UAAUptG,KAAKkb,SAALlb,EAHF;UAIRhgB,MAAMggB,KAAKkb,SAALlb,EAJE;UAKR5d,QAAQ4d,KAAKkb,SAALlb,EALA;UAMRwX,QAAQxX,KAAKkb,SAALlb;QANA,CAAV;;QASA,IACG6F,EAAEsnG,QAAFtnG,KAAe,CAAfA,IAAoBA,EAAE6D,QAAF7D,KAAe,CAAnCA,IAAwCA,EAAEunG,QAAFvnG,KAAe,CAAvDA,IACAA,EAAEsnG,QAAFtnG,KAAe,CAAfA,IAAoBA,EAAE6D,QAAF7D,KAAe,CAAnCA,IAAwCA,EAAEunG,QAAFvnG,KAAe,KAF1D,EAGE;UACAonG,QAAQ9qH,IAAR8qH,CAAapnG,CAAbonG;QAdqE;MAnBzC;;MAoChC,KAAKjqH,IAAI,CAAJA,EAAOiJ,KAAKghH,QAAQ7qH,MAAzB,EAAiCY,IAAIiJ,EAArC,EAAyCjJ,GAAzC,EAA8C;QAC5C,MAAMqqH,SAASJ,QAAQjqH,CAAR,CAAf;;QACA,IAAIqqH,OAAOjrH,MAAPirH,IAAiB,CAArB,EAAwB;UACtB;QAH0C;;QAK5C,MAAM/oG,MAAM7W,QAAQu/G,YAARv/G,GAAuB4/G,OAAO71F,MAA1C;;QACA,IAAIlT,MAAM+oG,OAAOjrH,MAAbkiB,GAAsB0M,GAA1B,EAA+B;UAC7B;QAP0C;;QAS5ChR,KAAKsE,GAALtE,GAAWsE,GAAXtE;QACA,MAAMstG,YAAYD,OAAOrtH,IAAzB;;QACA,IAAIqtH,OAAO3jG,QAAX,EAAqB;UAEnB,IAAIxF,MAAM,EAAV;;UACA,KAAK,IAAIoF,IAAI,CAAR,EAAW6rB,KAAKk4E,OAAOjrH,MAA5B,EAAoCknB,IAAI6rB,EAAxC,EAA4C7rB,KAAK,CAAjD,EAAoD;YAClDpF,OAAOT,OAAOC,YAAPD,CAAoBzD,KAAKkb,SAALlb,EAApByD,CAAPS;UAJiB;;UAMnBy+F,MAAM,CAAN,EAAS2K,SAAT3K,IAAsBz+F,GAAtBy+F;QANF,OAOO;UACLA,MAAM,CAAN,EAAS2K,SAAT3K,IAAsB3iG,KAAK4Y,SAAL5Y,CAAeqtG,OAAOjrH,MAAtB4d,CAAtB2iG;QAnB0C;MApCd;;MA0DhC,OAAOA,KAAP;IAh+BmC;;IAo+BrC,MAAM4K,mBAAmB,CACvB,CADuB,EACpB,CADoB,EACjB,CADiB,EACd,CADc,EACX,CADW,EACR,CADQ,EACL,CADK,EACF,CADE,EACC,CAAC,CADF,EACK,CAAC,CADN,EACS,CAAC,CADV,EACa,CAAC,CADd,EACiB,CADjB,EACoB,CADpB,EACuB,CAAC,CADxB,EAC2B,CAAC,CAD5B,EAEvB,CAAC,CAFsB,EAEnB,CAAC,CAFkB,EAEf,CAAC,CAFc,EAEX,CAAC,CAFU,EAEP,CAAC,CAFM,EAEH,CAAC,CAFE,EAEC,CAAC,CAFF,EAEK,CAAC,CAFN,EAES,CAFT,EAEY,CAFZ,EAEe,CAAC,CAFhB,EAEmB,CAFnB,EAEsB,CAAC,CAFvB,EAE0B,CAAC,CAF3B,EAE8B,CAAC,CAF/B,EAEkC,CAAC,CAFnC,EAGvB,CAHuB,EAGpB,CAAC,CAHmB,EAGhB,CAAC,GAHe,EAGV,CAHU,EAGP,CAHO,EAGJ,CAHI,EAGD,CAAC,CAHA,EAGG,CAAC,CAHJ,EAGO,CAHP,EAGU,CAAC,CAHX,EAGc,CAAC,CAHf,EAGkB,CAAC,CAHnB,EAGsB,CAAC,CAHvB,EAG0B,CAH1B,EAG6B,CAAC,CAH9B,EAGiC,CAAC,CAHlC,EAIvB,CAJuB,EAIpB,CAJoB,EAIjB,CAAC,GAJgB,EAIX,CAAC,GAJU,EAIL,CAAC,CAJI,EAID,CAAC,CAJA,EAIG,CAAC,CAJJ,EAIO,CAAC,CAJR,EAIW,CAAC,CAJZ,EAIe,CAAC,GAJhB,EAIqB,CAAC,CAJtB,EAIyB,CAAC,CAJ1B,EAI6B,CAAC,GAJ9B,EAImC,CAJnC,EAIsC,CAAC,CAJvC,EAI0C,CAAC,CAJ3C,EAKvB,CALuB,EAKpB,CALoB,EAKjB,CAAC,CALgB,EAKb,CALa,EAKV,CAAC,CALS,EAKN,CALM,EAKH,CALG,EAKA,CALA,EAKG,CAAC,CALJ,EAKO,CAAC,CALR,EAKW,CAAC,CALZ,EAKe,CALf,EAKkB,CALlB,EAKqB,CALrB,EAKwB,CALxB,EAK2B,CAAC,CAL5B,EAMvB,CAAC,CANsB,EAMnB,CAAC,CANkB,EAMf,CAAC,CANc,EAMX,CAAC,CANU,EAMP,CAAC,CANM,EAMH,CAAC,CANE,EAMC,CAND,EAMI,CANJ,EAMO,CAAC,CANR,EAMW,CANX,EAMc,CAAC,CANf,EAMkB,CAAC,CANnB,EAMsB,CANtB,EAMyB,CAAC,GAN1B,EAM+B,CAAC,CANhC,EAMmC,CAAC,CANpC,EAOvB,CAAC,CAPsB,EAOnB,CAAC,CAPkB,EAOf,CAAC,CAPc,EAOX,CAAC,CAPU,EAOP,CAPO,EAOJ,CAPI,EAOD,CAPC,EAOE,CAPF,EAOK,CAPL,EAOQ,CAPR,EAOW,CAPX,EAOc,CAPd,EAOiB,CAPjB,EAOoB,CAPpB,EAOuB,CAPvB,EAO0B,CAP1B,EAQvB,CAAC,CARsB,EAQnB,CAAC,GARkB,EAQb,CAAC,GARY,EAQP,CAAC,GARM,EAQD,CAAC,GARA,EAQK,CAAC,GARN,EAQW,CAAC,CARZ,EAQe,CAAC,CARhB,EAQmB,CAAC,CARpB,EAQuB,CAAC,CARxB,EAQ2B,CAR3B,EAQ8B,CAR9B,EAQiC,CARjC,EAQoC,CARpC,EAQuC,CAAC,CARxC,EAQ2C,CAAC,CAR5C,EASvB,CAAC,GATsB,EASjB,CAAC,CATgB,EASb,CAAC,CATY,EAST,CATS,EASN,CATM,EASH,CAAC,CATE,EASC,CAAC,CATF,EASK,CAAC,CATN,EASS,CATT,EASY,CATZ,EASe,CATf,EASkB,CAAC,CATnB,EASsB,CAAC,CATvB,EAS0B,CAAC,CAT3B,EAS8B,CAAC,CAT/B,CAAzB;;IAYA,SAASC,iBAAT,CAA2BnqC,KAA3B,EAAkCoqC,SAAlC,EAA6C;MAC3C,IAAIvsH,OAAOmiF,MAAMniF,IAAjB;MACA,IAAI8B,IAAI,CAAR;MAAA,IACEsmB,CADF;MAAA,IAEE7D,CAFF;MAAA,IAGEha,CAHF;MAAA,IAIEiiH,MAJF;MAAA,IAKE/Q,EALF;MAAA,IAMEgR,WAAW,CANb;MAAA,IAOEC,WAAW,CAPb;MAQA,MAAM/3C,QAAQ,EAAd;MACA,MAAMg4C,YAAY,EAAlB;MACA,MAAMC,kBAAkB,EAAxB;MACA,IAAIC,8BAA8BN,UAAUM,2BAA5C;MACA,IAAIC,SAAS,KAAb;MAAA,IACEC,UAAU,CADZ;MAAA,IAEEC,SAAS,CAFX;;MAGA,KAAK,IAAIjiH,KAAK/K,KAAKkB,MAAnB,EAA2BY,IAAIiJ,EAA/B,GAAqC;QACnC,MAAMkiH,KAAKjtH,KAAK8B,GAAL,CAAX;;QAGA,IAAImrH,OAAO,IAAX,EAAiB;UAEf1oG,IAAIvkB,KAAK8B,GAAL,CAAJyiB;;UACA,IAAIuoG,UAAUE,MAAd,EAAsB;YACpBlrH,KAAKyiB,CAALziB;UADF,OAEO;YACL,KAAKsmB,IAAI,CAAT,EAAYA,IAAI7D,CAAhB,EAAmB6D,GAAnB,EAAwB;cACtBusD,MAAM1zE,IAAN0zE,CAAW30E,KAAK8B,GAAL,CAAX6yE;YAFG;UALQ;QAAjB,OAUO,IAAIs4C,OAAO,IAAX,EAAiB;UAEtB1oG,IAAIvkB,KAAK8B,GAAL,CAAJyiB;;UACA,IAAIuoG,UAAUE,MAAd,EAAsB;YACpBlrH,KAAKyiB,IAAI,CAATziB;UADF,OAEO;YACL,KAAKsmB,IAAI,CAAT,EAAYA,IAAI7D,CAAhB,EAAmB6D,GAAnB,EAAwB;cACtB7d,IAAIvK,KAAK8B,GAAL,CAAJyI;cACAoqE,MAAM1zE,IAAN0zE,CAAYpqE,KAAK,CAALA,GAAUvK,KAAK8B,GAAL,CAAtB6yE;YAHG;UALe;QAAjB,OAWA,IAAK,MAAK,IAAL,MAAe,IAApB,EAA0B;UAE/BpwD,IAAI0oG,KAAK,IAALA,GAAY,CAAhB1oG;;UACA,IAAIuoG,UAAUE,MAAd,EAAsB;YACpBlrH,KAAKyiB,CAALziB;UADF,OAEO;YACL,KAAKsmB,IAAI,CAAT,EAAYA,IAAI7D,CAAhB,EAAmB6D,GAAnB,EAAwB;cACtBusD,MAAM1zE,IAAN0zE,CAAW30E,KAAK8B,GAAL,CAAX6yE;YAFG;UALwB;QAA1B,OAUA,IAAK,MAAK,IAAL,MAAe,IAApB,EAA0B;UAE/BpwD,IAAI0oG,KAAK,IAALA,GAAY,CAAhB1oG;;UACA,IAAIuoG,UAAUE,MAAd,EAAsB;YACpBlrH,KAAKyiB,IAAI,CAATziB;UADF,OAEO;YACL,KAAKsmB,IAAI,CAAT,EAAYA,IAAI7D,CAAhB,EAAmB6D,GAAnB,EAAwB;cACtB7d,IAAIvK,KAAK8B,GAAL,CAAJyI;cACAoqE,MAAM1zE,IAAN0zE,CAAYpqE,KAAK,CAALA,GAAUvK,KAAK8B,GAAL,CAAtB6yE;YAHG;UALwB;QAA1B,OAWA,IAAIs4C,OAAO,IAAPA,IAAe,CAACJ,2BAApB,EAAiD;UAEtD,IAAI,CAACC,MAAD,IAAW,CAACE,MAAhB,EAAwB;YAEtBR,SAAS73C,MAAMA,MAAMzzE,MAANyzE,GAAe,CAArB,CAAT63C;;YACA,IAAIpzF,MAAMozF,MAAN,CAAJ,EAAmB;cACjBzgH,gBAAK,0CAALA;YADF,OAEO;cACLwgH,UAAUW,aAAVX,CAAwBC,MAAxBD,IAAkC,IAAlCA;;cACA,IAAIC,UAAUD,UAAUY,oBAAxB,EAA8C;gBAC5C,MAAMC,iBACJz4C,MAAMzzE,MAANyzE,GAAe43C,UAAUY,oBAAVZ,CAA+BC,MAA/BD,CADjB;;gBAEA,IAAIa,iBAAiB,CAArB,EAAwB;kBACtBxoH,gBAAK,yCAALA;kBACA2nH,UAAU7D,UAAV6D,GAAuB,KAAvBA;kBACA;gBAN0C;;gBAQ5C53C,MAAMzzE,MAANyzE,GAAey4C,cAAfz4C;cARF,OASO,IACL63C,UAAUD,UAAUc,gBAApBb,IACA,CAACI,gBAAgB14F,QAAhB04F,CAAyBJ,MAAzBI,CAFI,EAGL;gBACAD,UAAU1rH,IAAV0rH,CAAe;kBAAE3sH,IAAF;kBAAQ8B,CAAR;kBAAWwrH,UAAU34C,MAAMzzE,MAANyzE,GAAe;gBAApC,CAAfg4C;gBACAC,gBAAgB3rH,IAAhB2rH,CAAqBJ,MAArBI;gBACAnR,KAAK8Q,UAAUc,gBAAVd,CAA2BC,MAA3BD,CAAL9Q;;gBACA,IAAI,CAACA,EAAL,EAAS;kBACP72G,gBAAK,gCAALA;kBACA2nH,UAAU7D,UAAV6D,GAAuB,KAAvBA;kBACA;gBAPF;;gBASAvsH,OAAOy7G,GAAGz7G,IAAVA;gBACA8B,IAAI25G,GAAG35G,CAAPA;cAxBG;YALe;UAF8B;QAAjD,OAmCA,IAAImrH,OAAO,IAAPA,IAAe,CAACJ,2BAApB,EAAiD;UAEtD,IAAIC,UAAUE,MAAd,EAAsB;YACpBpoH,gBAAK,8BAALA;YACAioH,8BAA8B,IAA9BA;UAJoD;;UAMtDC,SAAS,IAATA;UAEAJ,WAAW5qH,CAAX4qH;UACAF,SAAS73C,MAAMnY,GAANmY,EAAT63C;UACAD,UAAUc,gBAAVd,CAA2BC,MAA3BD,IAAqC;YAAEvsH,IAAF;YAAQ8B;UAAR,CAArCyqH;QAVK,OAWA,IAAIU,OAAO,IAAX,EAAiB;UAEtB,IAAIH,MAAJ,EAAY;YACVA,SAAS,KAATA;YACAL,WAAW3qH,CAAX2qH;UAFF,OAGO;YACLhR,KAAKkR,UAAUnwD,GAAVmwD,EAALlR;;YACA,IAAI,CAACA,EAAL,EAAS;cACP72G,gBAAK,oBAALA;cACA2nH,UAAU7D,UAAV6D,GAAuB,KAAvBA;cACA;YALG;;YAOLC,SAASI,gBAAgBpwD,GAAhBowD,EAATJ;YACAxsH,OAAOy7G,GAAGz7G,IAAVA;YACA8B,IAAI25G,GAAG35G,CAAPA;YACAyqH,UAAUY,oBAAVZ,CAA+BC,MAA/BD,IAAyC53C,MAAMzzE,MAANyzE,GAAe8mC,GAAG6R,QAA3Df;UAfoB;QAAjB,OAiBA,IAAIU,OAAO,IAAX,EAAiB;UAEtB,IAAIH,UAAUE,MAAd,EAAsB;YACpBpoH,gBAAK,8BAALA;YACAioH,8BAA8B,IAA9BA;UAJoB;;UAMtBC,SAAS,IAATA;UAEAJ,WAAW5qH,CAAX4qH;QARK,OASA,IAAIO,OAAO,IAAX,EAAiB;UAEtB,EAAEF,OAAF;QAFK,OAGA,IAAIE,OAAO,IAAX,EAAiB;UAEtBD,SAASD,OAATC;QAFK,OAGA,IAAIC,OAAO,IAAX,EAAiB;UAEtB,IAAID,WAAWD,OAAf,EAAwB;YACtBC,SAAS,CAATA;UAHoB;;UAKtB,EAAED,OAAF;QALK,OAMA,IAAIE,OAAO,IAAX,EAAiB;UAEtB,IAAI,CAACH,MAAD,IAAW,CAACE,MAAhB,EAAwB;YACtB,MAAM12F,SAASq+C,MAAMA,MAAMzzE,MAANyzE,GAAe,CAArB,CAAf;;YAEA,IAAIr+C,SAAS,CAAb,EAAgB;cACdx0B,KAAKw0B,SAAS,CAAdx0B;YAJoB;UAFF;QAlIW;;QA6InC,IAAI,CAACgrH,MAAD,IAAW,CAACE,MAAhB,EAAwB;UACtB,IAAIO,aAAa,CAAjB;;UACA,IAAIN,MAAM,IAAV,EAAgB;YACdM,aAAalB,iBAAiBY,EAAjB,CAAbM;UADF,OAEO,IAAIN,MAAM,IAANA,IAAcA,MAAM,IAAxB,EAA8B;YACnCM,aAAa,CAAC,CAAdA;UADK,OAEA,IAAIN,MAAM,IAAV,EAAgB;YACrBM,aAAa,CAAC,CAAdA;UAPoB;;UAStB,IAAIN,MAAM,IAANA,IAAcA,MAAM,IAAxB,EAA8B;YAC5B1oG,IAAIowD,MAAMnY,GAANmY,EAAJpwD;;YACA,IAAI,CAAC6U,MAAM7U,CAAN,CAAL,EAAe;cACbgpG,aAAa,CAAChpG,CAAD,GAAK,CAAlBgpG;YAH0B;UATR;;UAetB,OAAOA,aAAa,CAAbA,IAAkB54C,MAAMzzE,MAANyzE,GAAe,CAAxC,EAA2C;YACzCA,MAAMnY,GAANmY;YACA44C;UAjBoB;;UAmBtB,OAAOA,aAAa,CAApB,EAAuB;YACrB54C,MAAM1zE,IAAN0zE,CAAW64C,GAAX74C;YACA44C;UArBoB;QA7IW;MAjBM;;MAuL3ChB,UAAUM,2BAAVN,GAAwCM,2BAAxCN;MACA,MAAM1wF,UAAU,CAAC77B,IAAD,CAAhB;;MACA,IAAI8B,IAAI9B,KAAKkB,MAAb,EAAqB;QACnB26B,QAAQ56B,IAAR46B,CAAa,IAAI37B,UAAJ,CAAe4B,IAAI9B,KAAKkB,MAAxB,CAAb26B;MA1LyC;;MA4L3C,IAAI6wF,WAAWD,QAAf,EAAyB;QACvB7nH,gBAAK,2CAALA;QAGAi3B,QAAQ56B,IAAR46B,CAAa,IAAI37B,UAAJ,CAAe,CAAC,IAAD,EAAO,IAAP,CAAf,CAAb27B;MAhMyC;;MAkM3C4xF,YAAYtrC,KAAZ,EAAmBtmD,OAAnB;IAlrCmC;;IAqrCrC,SAAS6xF,qBAAT,CAA+BnB,SAA/B,EAA0CoB,eAA1C,EAA2D;MACzD,IAAIpB,UAAUM,2BAAd,EAA2C;QACzC;MAFuD;;MAIzD,IAAIN,UAAUc,gBAAVd,CAA2BrrH,MAA3BqrH,GAAoCoB,eAAxC,EAAyD;QACvD/oH,gBAAK,0CAALA;QACA2nH,UAAU7D,UAAV6D,GAAuB,KAAvBA;QACA;MAPuD;;MASzD,KAAK,IAAInkG,IAAI,CAAR,EAAW6rB,KAAKs4E,UAAUW,aAAVX,CAAwBrrH,MAA7C,EAAqDknB,IAAI6rB,EAAzD,EAA6D7rB,GAA7D,EAAkE;QAChE,IAAIA,IAAIulG,eAAR,EAAyB;UACvB/oH,gBAAK,8BAA8BwjB,CAAnCxjB;UACA2nH,UAAU7D,UAAV6D,GAAuB,KAAvBA;UACA;QAJ8D;;QAMhE,IAAIA,UAAUW,aAAVX,CAAwBnkG,CAAxBmkG,KAA8B,CAACA,UAAUc,gBAAVd,CAA2BnkG,CAA3BmkG,CAAnC,EAAkE;UAChE3nH,gBAAK,6BAA6BwjB,CAAlCxjB;UACA2nH,UAAU7D,UAAV6D,GAAuB,KAAvBA;UACA;QAT8D;MATT;IArrCtB;;IA4sCrC,SAASkB,WAAT,CAAqBtrC,KAArB,EAA4BtmD,OAA5B,EAAqC;MACnC,IAAIA,QAAQ36B,MAAR26B,GAAiB,CAArB,EAAwB;QAEtB,IAAIwiD,YAAY,CAAhB;QACA,IAAIj2D,CAAJ,EAAO6rB,EAAP;;QACA,KAAK7rB,IAAI,CAAJA,EAAO6rB,KAAKpY,QAAQ36B,MAAzB,EAAiCknB,IAAI6rB,EAArC,EAAyC7rB,GAAzC,EAA8C;UAC5Ci2D,aAAaxiD,QAAQzT,CAAR,EAAWlnB,MAAxBm9E;QALoB;;QAOtBA,YAAaA,YAAY,CAAZA,GAAiB,CAAC,CAA/BA;QACA,MAAM13B,SAAS,IAAIzmD,UAAJ,CAAem+E,SAAf,CAAf;QACA,IAAIj7D,MAAM,CAAV;;QACA,KAAKgF,IAAI,CAAJA,EAAO6rB,KAAKpY,QAAQ36B,MAAzB,EAAiCknB,IAAI6rB,EAArC,EAAyC7rB,GAAzC,EAA8C;UAC5Cu+B,OAAOpjC,GAAPojC,CAAW9qB,QAAQzT,CAAR,CAAXu+B,EAAuBvjC,GAAvBujC;UACAvjC,OAAOyY,QAAQzT,CAAR,EAAWlnB,MAAlBkiB;QAZoB;;QActB++D,MAAMniF,IAANmiF,GAAax7B,MAAbw7B;QACAA,MAAMjhF,MAANihF,GAAe9D,SAAf8D;MAhBiC;IA5sCA;;IAguCrC,SAASyrC,kBAAT,CAA4BC,IAA5B,EAAkCC,IAAlC,EAAwCC,GAAxC,EAA6CJ,eAA7C,EAA8D;MAC5D,MAAMpB,YAAY;QAChBc,kBAAkB,EADF;QAEhBH,eAAe,EAFC;QAGhBC,sBAAsB,EAHN;QAIhBN,6BAA6B,KAJb;QAKhBnE,YAAY;MALI,CAAlB;;MAOA,IAAImF,IAAJ,EAAU;QACRvB,kBAAkBuB,IAAlB,EAAwBtB,SAAxB;MAT0D;;MAW5D,IAAIuB,IAAJ,EAAU;QACRxB,kBAAkBwB,IAAlB,EAAwBvB,SAAxB;MAZ0D;;MAc5D,IAAIsB,IAAJ,EAAU;QACRH,sBAAsBnB,SAAtB,EAAiCoB,eAAjC;MAf0D;;MAiB5D,IAAII,OAAOA,IAAI7sH,MAAJ6sH,GAAa,CAAxB,EAA2B;QACzB,MAAMC,UAAU,IAAI9tH,UAAJ,CAAe6tH,IAAI7sH,MAAJ6sH,GAAa,CAA5B,CAAhB;QACAC,QAAQzqG,GAARyqG,CAAYD,IAAI/tH,IAAhBguH;QACAD,IAAI/tH,IAAJ+tH,GAAWC,OAAXD;MApB0D;;MAsB5D,OAAOxB,UAAU7D,UAAjB;IAtvCmC;;IA0vCrC5pG,OAAO,IAAIiR,cAAJ,CAAW,IAAI7vB,UAAJ,CAAe4e,KAAKmT,QAALnT,EAAf,CAAX,CAAPA;IAEA,IAAIo2D,MAAJ,EAAYkvC,MAAZ;;IACA,IAAIpH,yBAAyBl+F,IAAzB,CAAJ,EAAoC;MAClC,MAAMmvG,UAAUvI,2BAA2B5mG,IAA3B,EAAiC,KAAKhgB,IAAtC,CAAhB;MACAo2E,SAAS+4C,QAAQ/4C,MAAjBA;MACAkvC,SAAS6J,QAAQ7J,MAAjBA;IAHF,OAIO;MACLlvC,SAAS0vC,mBAAmB9lG,IAAnB,CAATo2D;MACAkvC,SAASD,WAAWrlG,IAAX,EAAiBo2D,OAAOwpC,SAAxB,CAAT0F;IAnwCmC;;IAqwCrC,IAAIzB,GAAJ,EAASuL,OAAT;IAEA,MAAMC,aAAa,CAAC/J,OAAO,MAAP,CAApB;;IACA,IAAI,CAAC+J,UAAL,EAAiB;MACf,MAAMC,cACJ/gG,WAAWg5C,SAAXh5C,KACE,YAAWq5C,WAAXr5C,IAA0B,EAA1B,EAA8BnsB,MAA9B,GAAuC,CAAvC,IACA,EAAEmsB,WAAWq6C,IAAXr6C,YAA2Bu6C,kBAA7B,CAFFv6C,CADF;;MAKA,IACG6nD,OAAO3zC,OAAP2zC,KAAmB,MAAnBA,IAA6B,CAACk5C,WAA9Bl5C,IACD,CAACkvC,OAAOnf,IADP/vB,IAED,CAACkvC,OAAOC,IAFPnvC,IAGD,CAACkvC,OAAOG,IAHPrvC,IAID,CAACkvC,OAAOI,IALV,EAME;QAEA0J,UAAU,IAAIn+F,cAAJ,CAAWq0F,OAAO,MAAP,EAAepkH,IAA1B,CAAVkuH;QACAvL,MAAM,IAAIC,iBAAJ,CAAYsL,OAAZ,EAAqB7gG,UAArB,CAANs1F;QAEA5G,aAAa1uF,UAAb;QAEA,OAAO,KAAKy1F,OAAL,CAAahkH,IAAb,EAAmB6jH,GAAnB,EAAwBt1F,UAAxB,CAAP;MAnBa;;MAsBf,OAAO+2F,OAAOyE,IAAd;MACA,OAAOzE,OAAO2F,IAAd;MACA,OAAO3F,OAAOyJ,IAAd;MACA,OAAOzJ,OAAO0J,IAAd;MACA,OAAO1J,OAAO,MAAP,CAAP;MACA,KAAKpB,UAAL,GAAkB,IAAlB;IA3BF,OA4BO;MACL,IAAI,CAACoB,OAAO2F,IAAZ,EAAkB;QAChB,MAAM,IAAI5nG,iBAAJ,CAAgB,oCAAhB,CAAN;MAFG;;MAIL,IAAI,CAACiiG,OAAOyE,IAAZ,EAAkB;QAChBjkH,gBAAK,0DAALA;QAEAw/G,OAAOyE,IAAPzE,GAAc;UACZv+C,KAAK,MADO;UAEZ7lE,MAAM,IAAIE,UAAJ,CAAe,CAAf;QAFM,CAAdkkH;MAPG;;MAYL,KAAKpB,UAAL,GAAkB,KAAlB;IAhzCmC;;IAmzCrC,IAAI,CAACoB,OAAOG,IAAZ,EAAkB;MAChB,MAAM,IAAIpiG,iBAAJ,CAAgB,oCAAhB,CAAN;IApzCmC;;IAuzCrCrD,KAAKsE,GAALtE,GAAY,MAAKvS,KAALuS,IAAc,CAAd,IAAmBslG,OAAOG,IAAPH,CAAY9tF,MAA3CxX;IACA,MAAMyiB,UAAUziB,KAAKqb,QAALrb,EAAhB;IACA,MAAMw/F,YAAYx/F,KAAKkb,SAALlb,EAAlB;;IAEA,IACEuO,WAAW4+C,YAAX5+C,IACAA,WAAW4+C,YAAX5+C,CAAwBnsB,MAAxBmsB,KAAmCixF,SADnCjxF,IAEA8gG,UAHF,EAIE;MACA,MAAM;QAAEliD;MAAF,IAAmB5+C,UAAzB;MACA,MAAM28F,uBAAuBvN,MAC3B2H,OAAOnf,IAAPmf,CAAYpkH,IAAZokH,CAAiB,EAAjBA,CAD2B,EAE3BA,OAAOnf,IAAPmf,CAAYpkH,IAAZokH,CAAiB,EAAjBA,CAF2B,CAA7B;MAKA,MAAM9kE,SAAS,IAAI+uE,eAAJ,CAAc;QAC3BC,WAAWlK,OAAOyE,IAAPzE,CAAYpkH,IADI;QAE3BgqH,oBAF2B;QAG3BuE,WAAWnK,OAAO2F,IAAP3F,CAAYpkH,IAHI;QAI3Bs+G;MAJ2B,CAAd,CAAf;MAMAh/D,OAAOsB,KAAPtB,CAAa2sB,YAAb3sB;MAEA,MAAM;QAAEupE,IAAF;QAAQkB,IAAR;QAAcyE;MAAd,IAAiClvE,OAAOmvE,KAAPnvE,EAAvC;MACA8kE,OAAOyE,IAAPzE,CAAYpkH,IAAZokH,GAAmByE,IAAnBzE;MACAA,OAAO2F,IAAP3F,CAAYpkH,IAAZokH,GAAmB2F,IAAnB3F;;MAEA,IAAIoK,mBAAmB,CAAC,CAACxE,oBAAzB,EAA+C;QAC7C5F,OAAOnf,IAAPmf,CAAYpkH,IAAZokH,CAAiB,EAAjBA,IAAuB,CAAvBA;QACAA,OAAOnf,IAAPmf,CAAYpkH,IAAZokH,CAAiB,EAAjBA,IAAuBoK,iBAAiB,CAAjB,GAAqB,CAA5CpK;MArBF;;MAwBA,MAAM36E,UAAU26E,OAAOE,IAAPF,CAAYpkH,IAA5B;;MAEA,KAAK,IAAI8B,IAAI,CAAb,EAAgBA,IAAIw8G,SAApB,EAA+Bx8G,GAA/B,EAAoC;QAClC,MAAMsmB,IAAI,IAAItmB,CAAd;QACA,MAAM4sH,eAAevpH,KAAK26C,KAAL36C,CACnB8mE,aAAanqE,CAAb,IAAkB26G,MAAMhzE,QAAQrhB,CAAR,CAAN,EAAkBqhB,QAAQrhB,IAAI,CAAZ,CAAlB,CADCjjB,CAArB;QAGAskC,QAAQrhB,CAAR,IAAcsmG,gBAAgB,CAAhBA,GAAqB,IAAnCjlF;QACAA,QAAQrhB,IAAI,CAAZ,IAAiBsmG,eAAe,IAAhCjlF;QACA,MAAMklF,MAAMxpH,KAAK26C,KAAL36C,CACV8mE,aAAanqE,CAAb,IAAkB66G,YAAYlzE,QAAQrhB,IAAI,CAAZ,CAAZ,EAA4BqhB,QAAQrhB,IAAI,CAAZ,CAA5B,CADRjjB,CAAZ;QAGAu3G,iBAAiBjzE,OAAjB,EAA0BrhB,IAAI,CAA9B,EAAiCumG,GAAjC;MApCF;IA/zCmC;;IAw2CrC,IAAIlE,eAAenM,YAAY,CAA/B;IACA,IAAI0J,gBAAgB,IAApB;;IACA,IAAIyC,eAAe,MAAnB,EAA2B;MACzBzC,gBAAgB,KAAhBA;MACAyC,eAAenM,SAAfmM;MACA7lH,gBAAK,qDAALA;IA72CmC;;IA+2CrC,IAAI+oH,kBAAkB,CAAtB;IACA,IAAI1D,wBAAwB,CAA5B;;IACA,IAAI1oF,WAAW,UAAXA,IAAyB6iF,OAAOG,IAAPH,CAAYljH,MAAZkjH,IAAsB,EAAnD,EAAuD;MAErDtlG,KAAKsE,GAALtE,IAAY,CAAZA;MACA,MAAM8vG,WAAW9vG,KAAKkb,SAALlb,EAAjB;;MACA,IAAI8vG,WAAW,CAAf,EAAkB;QAEhBxK,OAAOG,IAAPH,CAAYpkH,IAAZokH,CAAiB,EAAjBA,IAAuB,CAAvBA;QACAA,OAAOG,IAAPH,CAAYpkH,IAAZokH,CAAiB,EAAjBA,IAAuB,CAAvBA;MAPmD;;MASrDtlG,KAAKsE,GAALtE,IAAY,CAAZA;MACA6uG,kBAAkB7uG,KAAKkb,SAALlb,EAAlB6uG;MACA7uG,KAAKsE,GAALtE,IAAY,CAAZA;MACAmrG,wBAAwBnrG,KAAKkb,SAALlb,EAAxBmrG;IA73CmC;;IAg4CrC7F,OAAOG,IAAPH,CAAYpkH,IAAZokH,CAAiB,CAAjBA,IAAsBqG,gBAAgB,CAAtCrG;IACAA,OAAOG,IAAPH,CAAYpkH,IAAZokH,CAAiB,CAAjBA,IAAsBqG,eAAe,GAArCrG;IAEA,MAAMsE,aAAakF,mBACjBxJ,OAAOyJ,IADU,EAEjBzJ,OAAO0J,IAFU,EAGjB1J,OAAO,MAAP,CAHiB,EAIjBuJ,eAJiB,CAAnB;;IAMA,IAAI,CAACjF,UAAL,EAAiB;MACf,OAAOtE,OAAOyJ,IAAd;MACA,OAAOzJ,OAAO0J,IAAd;MACA,OAAO1J,OAAO,MAAP,CAAP;IA54CmC;;IAi5CrC0D,gBACEhpG,IADF,EAEEslG,OAAOC,IAFT,EAGED,OAAOE,IAHT,EAIEF,OAAOnf,IAJT,EAKEwlB,YALF,EAMEzC,aANF;;IASA,IAAI,CAAC5D,OAAOnf,IAAZ,EAAkB;MAChB,MAAM,IAAI9iF,iBAAJ,CAAgB,oCAAhB,CAAN;IA35CmC;;IA85CrCunG,aAAatF,OAAOnf,IAApB,EAA0BqZ,SAA1B,EAAqC6P,aAAa/J,OAAO2F,IAAP3F,CAAYljH,MAAzB,GAAkC,CAAvE;IAEA,IAAI+pH,gBAAgB//G,OAAOC,MAAPD,CAAc,IAAdA,CAApB;;IACA,IAAIijH,UAAJ,EAAgB;MACd,MAAMnE,uBAAuBvN,MAC3B2H,OAAOnf,IAAPmf,CAAYpkH,IAAZokH,CAAiB,EAAjBA,CAD2B,EAE3BA,OAAOnf,IAAPmf,CAAYpkH,IAAZokH,CAAiB,EAAjBA,CAF2B,CAA7B;MAIA,MAAMyK,aAAa/E,uBACjB1F,OAAO2F,IADU,EAEjB3F,OAAOyE,IAFU,EAGjBvK,SAHiB,EAIjB0L,oBAJiB,EAKjBtB,UALiB,EAMjBV,aANiB,EAOjBiC,qBAPiB,CAAnB;MASAgB,gBAAgB4D,WAAW5D,aAA3BA;;MAIA,IAAI1pF,WAAW,UAAXA,IAAyB6iF,OAAOG,IAAPH,CAAYljH,MAAZkjH,IAAsB,EAAnD,EAAuD;QACrDA,OAAOG,IAAPH,CAAYpkH,IAAZokH,CAAiB,EAAjBA,IAAuByK,WAAW5E,qBAAX4E,IAAoC,CAA3DzK;QACAA,OAAOG,IAAPH,CAAYpkH,IAAZokH,CAAiB,EAAjBA,IAAuByK,WAAW5E,qBAAX4E,GAAmC,GAA1DzK;MApBY;IAj6CqB;;IAw7CrC,IAAI,CAACA,OAAOC,IAAZ,EAAkB;MAChB,MAAM,IAAIliG,iBAAJ,CAAgB,oCAAhB,CAAN;IAz7CmC;;IA87CrC,IAAIiiG,OAAOC,IAAPD,CAAYpkH,IAAZokH,CAAiB,EAAjBA,MAAyB,CAAzBA,IAA8BA,OAAOC,IAAPD,CAAYpkH,IAAZokH,CAAiB,EAAjBA,MAAyB,CAA3D,EAA8D;MAC5DA,OAAOC,IAAPD,CAAYpkH,IAAZokH,CAAiB,EAAjBA,IAAuB,IAAvBA;MACAA,OAAOC,IAAPD,CAAYpkH,IAAZokH,CAAiB,EAAjBA,IAAuB,IAAvBA;IAh8CmC;;IAq8CrC,MAAM0K,kBAAkB;MACtB1O,YAAY3D,MAAM2H,OAAOnf,IAAPmf,CAAYpkH,IAAZokH,CAAiB,EAAjBA,CAAN,EAA4BA,OAAOnf,IAAPmf,CAAYpkH,IAAZokH,CAAiB,EAAjBA,CAA5B,CADU;MAEtB/D,MAAM5D,MAAM2H,OAAOnf,IAAPmf,CAAYpkH,IAAZokH,CAAiB,EAAjBA,CAAN,EAA4BA,OAAOnf,IAAPmf,CAAYpkH,IAAZokH,CAAiB,EAAjBA,CAA5B,CAFgB;MAGtB9D,MAAM3D,YAAYyH,OAAOnf,IAAPmf,CAAYpkH,IAAZokH,CAAiB,EAAjBA,CAAZ,EAAkCA,OAAOnf,IAAPmf,CAAYpkH,IAAZokH,CAAiB,EAAjBA,CAAlC,CAHgB;MAItB5hD,QAAQm6C,YAAYyH,OAAOC,IAAPD,CAAYpkH,IAAZokH,CAAiB,CAAjBA,CAAZ,EAAiCA,OAAOC,IAAPD,CAAYpkH,IAAZokH,CAAiB,CAAjBA,CAAjC,CAJc;MAKtBpmE,SAAS2+D,YAAYyH,OAAOC,IAAPD,CAAYpkH,IAAZokH,CAAiB,CAAjBA,CAAZ,EAAiCA,OAAOC,IAAPD,CAAYpkH,IAAZokH,CAAiB,CAAjBA,CAAjC,CALa;MAMtBj3E,SAASwvE,YAAYyH,OAAOC,IAAPD,CAAYpkH,IAAZokH,CAAiB,CAAjBA,CAAZ,EAAiCA,OAAOC,IAAPD,CAAYpkH,IAAZokH,CAAiB,CAAjBA,CAAjC;IANa,CAAxB;IAUA,KAAK5hD,MAAL,GAAcssD,gBAAgBtsD,MAAhBssD,GAAyBA,gBAAgB1O,UAAvD;IACA,KAAKpiE,OAAL,GAAe8wE,gBAAgB9wE,OAAhB8wE,GAA0BA,gBAAgB1O,UAAzD;IACA,KAAKjzE,OAAL,GAAe2hF,gBAAgB3hF,OAAhB2hF,GAA0BA,gBAAgB1O,UAAzD;;IAEA,IAAI,KAAK3nF,WAAL,IAAoB,KAAKA,WAAL,CAAiByU,UAAzC,EAAqD;MACnD,KAAKA,UAAL,GAAkB,KAAKzU,WAAL,CAAiBgR,OAAjB,CAAyByD,UAA3C;MACA,KAAKC,OAAL,GAAe,KAAK1U,WAAL,CAAiBgR,OAAjB,CAAyB0D,OAAxC;IAFF,OAGO;MACL,KAAKD,UAAL,GAAkB,KAAKs1B,MAAL,GAAc,KAAKxkB,OAAnB,GAA6B,KAAK7Q,OAApD;IAv9CmC;;IA29CrC,IAAIi3E,OAAOI,IAAX,EAAiB;MACf6G,oBAAoBjH,OAAOI,IAA3B,EAAiCn3F,UAAjC,EAA6CixF,SAA7C;IA59CmC;;IAg+CrC8F,OAAOI,IAAPJ,GAAc;MACZv+C,KAAK,MADO;MAEZ7lE,MAAMkhH,gBAAgB7zF,UAAhB;IAFM,CAAd+2F;IAKA,MAAM31E,oBAAoB,EAA1B;;IAGA,SAASqvE,QAAT,CAAkBpvE,OAAlB,EAA2B;MACzB,OAAO,CAACu8E,cAAcv8E,OAAd,CAAR;IAz+CmC;;IA4+CrC,IAAIrhB,WAAWg5C,SAAf,EAA0B;MACxB,MAAMK,cAAcr5C,WAAWq5C,WAAXr5C,IAA0B,EAA9C;MACA,MAAM0hG,qBAAqBroD,YAAYxlE,MAAZwlE,KAAuB,CAAlD;MAEAr5C,WAAWq6C,IAAXr6C,CAAgB9hB,OAAhB8hB,CAAwB,UAAUshB,QAAV,EAAoBs5B,GAApB,EAAyB;QAC/C,IAAI,OAAOA,GAAP,KAAe,QAAnB,EAA6B;UAC3BA,MAAM01C,iBAAiBhvE,QAAjB,EAA2Bs5B,GAA3B,EAAoD,IAApD,CAANA;QAF6C;;QAI/C,IAAIA,MAAM,MAAV,EAAkB;UAChB,MAAM,IAAI9lD,iBAAJ,CAAgB,2BAAhB,CAAN;QAL6C;;QAO/C,IAAIusB,UAAU,CAAC,CAAf;;QACA,IAAIqgF,kBAAJ,EAAwB;UACtBrgF,UAAUu5B,GAAVv5B;QADF,OAEO,IAAIg4B,YAAYuB,GAAZ,MAAqB5lD,SAAzB,EAAoC;UACzCqsB,UAAUg4B,YAAYuB,GAAZ,CAAVv5B;QAX6C;;QAc/C,IAAIA,WAAW,CAAXA,IAAgBA,UAAU4vE,SAA1B5vE,IAAuCovE,SAASpvE,OAAT,CAA3C,EAA8D;UAC5DD,kBAAkBE,QAAlB,IAA8BD,OAA9BD;QAf6C;MAAjD;IAJF,OAsBO;MAGL,MAAMugF,YAAY9I,cAChB9B,OAAO77C,IADS,EAEhBzpD,IAFgB,EAGhB,KAAK+vB,cAHW,EAIhBxhB,WAAWy5C,WAJK,CAAlB;MAMA,MAAMmoD,iBAAiBD,UAAU7I,UAAjC;MACA,MAAM+I,iBAAiBF,UAAU5I,UAAjC;MACA,MAAM+I,eAAeH,UAAU3I,QAA/B;MACA,MAAM+I,qBAAqBD,aAAajuH,MAAxC;MACA,IAAI0tC,eAAe,EAAnB;MAAA,IACEygF,iBAAiB,KADnB;;MAEA,IACEhiG,WAAWy5C,WAAXz5C,KACCA,WAAW2hB,gBAAX3hB,KAAgC,kBAAhCA,IACCA,WAAW2hB,gBAAX3hB,KAAgC,iBAFlCA,CADF,EAIE;QACAuhB,eAAeK,4BAAY5hB,WAAW2hB,gBAAvBC,CAAfL;MApBG;;MAyBL,IACEvhB,WAAWy5C,WAAXz5C,IACA,CAAC,KAAKwhB,cADNxhB,KAEE4hG,mBAAmB,CAAnBA,IAAwBC,mBAAmB,CAA3CD,IACCA,mBAAmB,CAAnBA,IAAwBC,mBAAmB,CAH9C7hG,CADF,EAKE;QACA,MAAM+gB,mBAAmBiB,kCAAzB;;QACA,KAAK,IAAIV,WAAW,CAApB,EAAuBA,WAAW,GAAlC,EAAuCA,UAAvC,EAAmD;UACjD,IAAIS,SAAJ;;UACA,IAAI,KAAKD,WAAL,CAAiBR,QAAjB,MAA+BtsB,SAAnC,EAA8C;YAC5C+sB,YAAY,KAAKD,WAAL,CAAiBR,QAAjB,CAAZS;UADF,OAEO,IAAIR,aAAa1tC,MAAb0tC,IAAuBA,aAAaD,QAAb,MAA2B,EAAtD,EAA0D;YAC/DS,YAAYR,aAAaD,QAAb,CAAZS;UADK,OAEA;YACLA,YAAYF,4BAAiBP,QAAjBO,CAAZE;UAP+C;;UASjD,IAAI,CAACA,SAAL,EAAgB;YACd;UAV+C;;UAajD,MAAME,oBAAoBnB,mCACxBiB,SADwBjB,EAExBC,gBAFwBD,CAA1B;UAKA,IAAImhF,iBAAJ;;UACA,IAAIL,mBAAmB,CAAnBA,IAAwBC,mBAAmB,CAA/C,EAAkD;YAChDI,oBAAoBlhF,iBAAiBkB,iBAAjB,CAApBggF;UADF,OAEO,IAAIL,mBAAmB,CAAnBA,IAAwBC,mBAAmB,CAA/C,EAAkD;YAEvDI,oBAAoB7/E,4BAAiB1tC,OAAjB0tC,CAAyBH,iBAAzBG,CAApB6/E;UAvB+C;;UA0BjD,IAAIA,sBAAsBjtG,SAA1B,EAAqC;YAGnC,IACE,CAACgL,WAAWmhB,UAAZ,IACAnhB,WAAWk6C,uBADX,IAEA,EAAE,KAAKnB,SAAL,YAA0B+B,oCAA5B,CAHF,EAIE;cACA,MAAMz7B,UAAU,KAAK05B,SAAL,CAAej+D,GAAf,CAAmBwmC,QAAnB,CAAhB;;cACA,IAAIjC,OAAJ,EAAa;gBACX4iF,oBAAoB5iF,QAAQrU,WAARqU,CAAoB,CAApBA,CAApB4iF;cAHF;YAPiC;;YAcnC,IAAIA,sBAAsBjtG,SAA1B,EAAqC;cACnC;YAfiC;UA1BY;;UA6CjD,KAAK,IAAIvgB,IAAI,CAAb,EAAgBA,IAAIstH,kBAApB,EAAwC,EAAEttH,CAA1C,EAA6C;YAC3C,IAAIqtH,aAAartH,CAAb,EAAgB6sC,QAAhBwgF,KAA6BG,iBAAjC,EAAoD;cAClD;YAFyC;;YAI3C7gF,kBAAkBE,QAAlB,IAA8BwgF,aAAartH,CAAb,EAAgB4sC,OAA9CD;YACA;UAlD+C;QAFnD;MALF,OA4DO,IAAIwgF,mBAAmB,CAAvB,EAA0B;QAE/B,KAAK,IAAIntH,IAAI,CAAb,EAAgBA,IAAIstH,kBAApB,EAAwC,EAAEttH,CAA1C,EAA6C;UAC3C2sC,kBAAkB0gF,aAAartH,CAAb,EAAgB6sC,QAAlC,IAA8CwgF,aAAartH,CAAb,EAAgB4sC,OAA9DD;QAH6B;;QAO/B4gF,iBAAiB,IAAjBA;MAPK,OAQA;QAYL,KAAK,IAAIvtH,IAAI,CAAb,EAAgBA,IAAIstH,kBAApB,EAAwC,EAAEttH,CAA1C,EAA6C;UAC3C,IAAI6sC,WAAWwgF,aAAartH,CAAb,EAAgB6sC,QAA/B;;UACA,IACEsgF,mBAAmB,CAAnBA,IACAtgF,YAAY,MADZsgF,IAEAtgF,YAAY,MAHd,EAIE;YACAA,YAAY,IAAZA;UAPyC;;UAS3CF,kBAAkBE,QAAlB,IAA8BwgF,aAAartH,CAAb,EAAgB4sC,OAA9CD;QArBG;MA7FF;;MAuHL,IACEphB,WAAWmhB,UAAXnhB,KACCuhB,aAAa1tC,MAAb0tC,IAAuB,KAAKO,WAAL,CAAiBjuC,MADzCmsB,CADF,EAGE;QACA,KAAK,IAAIvrB,IAAI,CAAb,EAAgBA,IAAI,GAApB,EAAyB,EAAEA,CAA3B,EAA8B;UAC5B,IAAI,CAACutH,cAAD,IAAmB5gF,kBAAkB3sC,CAAlB,MAAyBugB,SAAhD,EAA2D;YACzD;UAF0B;;UAI5B,MAAM+sB,YAAY,KAAKD,WAAL,CAAiBrtC,CAAjB,KAAuB8sC,aAAa9sC,CAAb,CAAzC;;UACA,IAAI,CAACstC,SAAL,EAAgB;YACd;UAN0B;;UAQ5B,MAAMV,UAAUrhB,WAAWmhB,UAAXnhB,CAAsBtrB,OAAtBsrB,CAA8B+hB,SAA9B/hB,CAAhB;;UACA,IAAIqhB,UAAU,CAAVA,IAAeovE,SAASpvE,OAAT,CAAnB,EAAsC;YACpCD,kBAAkB3sC,CAAlB,IAAuB4sC,OAAvBD;UAV0B;QAD9B;MA1HG;IAlgD8B;;IA6oDrC,IAAIA,kBAAkBvtC,MAAlButC,KAA6B,CAAjC,EAAoC;MAElCA,kBAAkB,CAAlB,IAAuB,CAAvBA;IA/oDmC;;IAspDrC,IAAI8gF,cAAc9E,eAAe,CAAjC;;IACA,IAAI,CAACzC,aAAL,EAAoB;MAClBuH,cAAc,CAAdA;IAxpDmC;;IA6pDrC,IAAI,CAACliG,WAAWoL,WAAhB,EAA6B;MAE3B,MAAM+2F,aAAa3R,cACjBpvE,iBADiB,EAEjBqvE,QAFiB,EAGjByR,WAHiB,CAAnB;MAKA,KAAK7R,UAAL,GAAkB8R,WAAW9R,UAA7B;MACA0G,OAAO77C,IAAP67C,GAAc;QACZv+C,KAAK,MADO;QAEZ7lE,MAAMy+G,gBAAgB+Q,WAAW/gF,iBAA3B,EAA8Cg8E,YAA9C;MAFM,CAAdrG;;MAKA,IAAI,CAACA,OAAO,MAAP,CAAD,IAAmB,CAACvE,iBAAiBuE,OAAO,MAAP,CAAjB,EAAiCtlG,IAAjC,CAAxB,EAAgE;QAC9DslG,OAAO,MAAP,IAAiB;UACfv+C,KAAK,MADU;UAEf7lE,MAAMigH,eACJ5yF,UADI,EAEJmiG,WAAW/gF,iBAFP,EAGJqgF,eAHI;QAFS,CAAjB1K;MAdyB;IA7pDQ;;IAsrDrC,IAAI,CAAC+J,UAAL,EAAiB;MACf,IAAI;QAEFD,UAAU,IAAIn+F,cAAJ,CAAWq0F,OAAO,MAAP,EAAepkH,IAA1B,CAAVkuH;QACA,MAAMz8C,SAAS,IAAIg+C,qBAAJ,CACbvB,OADa,EAEb7gG,UAFa,EAGb+f,kCAHa,CAAf;QAKAu1E,MAAMlxC,OAAOjyC,KAAPiyC,EAANkxC;QACAA,IAAI+M,mBAAJ/M;QACA,MAAMgN,WAAW,IAAIC,uBAAJ,CAAgBjN,GAAhB,CAAjB;QACAyB,OAAO,MAAP,EAAepkH,IAAfokH,GAAsBuL,SAASE,OAATF,EAAtBvL;MAXF,EAYE,OAAO9+G,CAAP,EAAU;QACVV,gBAAK,4BAA4ByoB,WAAWysC,UAA5Cl1D;MAda;IAtrDoB;;IAysDrC,IAAI,CAACw/G,OAAOtlH,IAAZ,EAAkB;MAChBslH,OAAOtlH,IAAPslH,GAAc;QACZv+C,KAAK,MADO;QAEZ7lE,MAAMohH,gBAAgB,KAAKtiH,IAArB;MAFM,CAAdslH;IADF,OAKO;MAEL,MAAM0L,gBAAgB/J,cAAc3B,OAAOtlH,IAArB,CAAtB;MACAslH,OAAOtlH,IAAPslH,CAAYpkH,IAAZokH,GAAmBhD,gBAAgBtiH,IAAhB,EAAsBgxH,aAAtB,CAAnB1L;MACA,KAAKlC,MAAL,GAAc4N,cAAc,CAAd,EAAiB,CAAjBA,KAAuB,IAArC;IAltDmC;;IAqtDrC,MAAMC,UAAU,IAAIhR,0CAAJ,CAAwB7pC,OAAO3zC,OAA/B,CAAhB;;IACA,WAAWyuF,QAAX,IAAuB5L,MAAvB,EAA+B;MAC7B2L,QAAQE,QAARF,CAAiBC,QAAjBD,EAA2B3L,OAAO4L,QAAP,EAAiBhwH,IAA5C+vH;IAvtDmC;;IAytDrC,OAAOA,QAAQG,OAARH,EAAP;EA1iEO;;EA6iETjN,QAAQv+E,QAAR,EAAkBzlB,IAAlB,EAAwBuO,UAAxB,EAAoC;IAElCA,WAAW2+C,UAAX3+C,GAAwB,KAAxBA;;IAEA,IAAIA,WAAWkhB,eAAf,EAAgC;MAG9BytE,gBAAgB3uF,UAAhB,EAA4BA,WAAWkhB,eAAvC;IAPgC;;IAalC,IAAIghF,cAAc,CAAlB;;IACA,IAAIzwG,gBAAgB8jG,iBAApB,EAA6B;MAC3B2M,cAAczwG,KAAKw/F,SAALx/F,GAAiB,CAA/BywG;IAfgC;;IAiBlC,MAAMY,UAAUrxG,KAAKsxG,eAALtxG,CAAqBuO,UAArBvO,CAAhB;IACA,IAAI0wG,aAAa,IAAjB;IACA,IAAIa,uBAAuBF,OAA3B;;IAIA,IAAI,CAAC9iG,WAAWoL,WAAhB,EAA6B;MAC3B+2F,aAAa3R,cACXsS,OADW,EAEXrxG,KAAKwxG,UAALxxG,CAAgBqU,IAAhBrU,CAAqBA,IAArBA,CAFW,EAGXywG,WAHW,CAAbC;MAKA,KAAK9R,UAAL,GAAkB8R,WAAW9R,UAA7B;MACA2S,uBAAuBb,WAAW/gF,iBAAlC4hF;IA9BgC;;IAgClC,MAAM/R,YAAYx/F,KAAKw/F,SAAvB;;IAEA,SAASiS,YAAT,CAAsB9hF,iBAAtB,EAAyCC,OAAzC,EAAkD;MAChD,IAAI8hF,YAAY,IAAhB;;MACA,WAAW7hF,QAAX,IAAuBF,iBAAvB,EAA0C;QACxC,IAAIC,YAAYD,kBAAkBE,QAAlB,CAAhB,EAA6C;UAC3C,IAAI,CAAC6hF,SAAL,EAAgB;YACdA,YAAY,EAAZA;UAFyC;;UAI3CA,UAAUvvH,IAAVuvH,CAAe7hF,WAAW,CAA1B6hF;QALsC;MAFM;;MAUhD,OAAOA,SAAP;IA5CgC;;IA+ClC,SAASC,cAAT,CAAwBhiF,iBAAxB,EAA2CC,OAA3C,EAAoD;MAClD,WAAWC,QAAX,IAAuBF,iBAAvB,EAA0C;QACxC,IAAIC,YAAYD,kBAAkBE,QAAlB,CAAhB,EAA6C;UAC3C,OAAOA,WAAW,CAAlB;QAFsC;MADQ;;MAMlD6gF,WAAW/gF,iBAAX+gF,CAA6BA,WAAWtR,yBAAxCsR,IACE9gF,OADF8gF;MAEA,OAAOA,WAAWtR,yBAAXsR,EAAP;IAvDgC;;IA0DlC,MAAMkB,QAAQ5xG,KAAK4xG,KAAnB;;IACA,IAAIlB,cAAcpiF,kCAAdoiF,IAAuCkB,KAAvClB,IAAgDkB,MAAMxvH,MAA1D,EAAkE;MAChE,MAAM8zC,SAAS3nB,WAAW60C,UAAX70C,IAAyB5e,0BAAxC;MACA,MAAMkiH,UAAU7xG,KAAK8xG,UAAL9xG,EAAhB;MACA,MAAMmkG,UAAU/3G,OAAOC,MAAPD,CAAc,IAAdA,CAAhB;;MACA,SAASwjC,OAAT,IAAoBgiF,KAApB,EAA2B;QACzBhiF,WAAW,CAAXA;QACA,MAAMmiF,OAAOH,MAAMhiF,OAAN,CAAb;QACA,MAAMoiF,gBAAgB5hF,4BAAiB2hF,KAAK,CAAL,CAAjB3hF,CAAtB;QACA,MAAM6hF,kBAAkB7hF,4BAAiB2hF,KAAK,CAAL,CAAjB3hF,CAAxB;QACA,MAAM8hF,cAAcL,QAAQ5uH,OAAR4uH,CAAgBG,aAAhBH,CAApB;QACA,MAAMM,gBAAgBN,QAAQ5uH,OAAR4uH,CAAgBI,eAAhBJ,CAAtB;;QACA,IAAIK,cAAc,CAAdA,IAAmBC,gBAAgB,CAAvC,EAA0C;UACxC;QARuB;;QAUzB,MAAMC,eAAe;UACnB9mH,GAAGymH,KAAK,CAAL,IAAU77E,OAAO,CAAP,CAAV67E,GAAsBA,KAAK,CAAL,IAAU77E,OAAO,CAAP,CAAhC67E,GAA4C77E,OAAO,CAAP,CAD5B;UAEnBd,GAAG28E,KAAK,CAAL,IAAU77E,OAAO,CAAP,CAAV67E,GAAsBA,KAAK,CAAL,IAAU77E,OAAO,CAAP,CAAhC67E,GAA4C77E,OAAO,CAAP;QAF5B,CAArB;QAKA,MAAMw7E,YAAYD,aAAaJ,OAAb,EAAsBzhF,OAAtB,CAAlB;;QACA,IAAI,CAAC8hF,SAAL,EAAgB;UAGd;QAnBuB;;QAqBzB,KAAK,IAAI1uH,IAAI,CAAR,EAAWiJ,KAAKylH,UAAUtvH,MAA/B,EAAuCY,IAAIiJ,EAA3C,EAA+CjJ,GAA/C,EAAoD;UAClD,MAAM6sC,WAAW6hF,UAAU1uH,CAAV,CAAjB;UAGA,MAAM2sC,oBAAoB+gF,WAAW/gF,iBAArC;UACA,MAAM0iF,mBAAmBV,eACvBhiF,iBADuB,EAEvBuiF,WAFuB,CAAzB;UAIA,MAAMI,qBAAqBX,eACzBhiF,iBADyB,EAEzBwiF,aAFyB,CAA3B;UAIAhO,QAAQt0E,QAAR,IAAoB;YAClBwiF,gBADkB;YAElBC,kBAFkB;YAGlBF;UAHkB,CAApBjO;QAlCuB;MAJqC;;MA6ChE51F,WAAW41F,OAAX51F,GAAqB41F,OAArB51F;IAxGgC;;IA2GlC,MAAM+yF,aAAa,IAAK,YAAWl+C,UAAX70C,IAAyB5e,0BAAzB,EAA+C,CAA/C,CAAxB;IAEA,MAAMshH,UAAU,IAAIhR,0CAAJ,CAAwB,kBAAxB,CAAhB;IAEAgR,QAAQE,QAARF,CAAiB,MAAjBA,EAAyBjxG,KAAK9e,IAA9B+vH;IAEAA,QAAQE,QAARF,CAAiB,MAAjBA,EAAyB9P,eAAe5yF,UAAf,EAA2BgjG,oBAA3B,CAAzBN;IAEAA,QAAQE,QAARF,CAAiB,MAAjBA,EAAyBtR,gBAAgB4R,oBAAhB,EAAsC/R,SAAtC,CAAzByR;IAEAA,QAAQE,QAARF,CACE,MADFA,EAEE,qBACE,kBADF,GAEE,kBAFF,GAGE,kBAHF,GAIE,UAJF,GAKEjT,aAAasD,UAAb,CALF,GAME,kCANF,GAOE,kCAPF,GAQE,UARF,GASEtD,aAAazvF,WAAW2wB,OAAxB,CATF,GAUE,UAVF,GAWE8+D,aAAazvF,WAAWm1C,MAAxB,CAXF,GAYEq6C,SAASxvF,WAAW0L,WAAX1L,GAAyB,CAAzBA,GAA6B,CAAtC,CAZF,GAaE,UAbF,GAcE,UAdF,GAeE,UAfF,GAgBE,UAlBJ0iG;IAsBAA,QAAQE,QAARF,CACE,MADFA,EAEE,qBACEjT,aAAazvF,WAAWm1C,MAAxB,CADF,GAEEs6C,aAAazvF,WAAW2wB,OAAxB,CAFF,GAGE,UAHF,GAIE,UAJF,GAKE,UALF,GAME,UANF,GAOE,UAPF,GAQE8+D,aAAazvF,WAAW69C,SAAxB,CARF,GASE4xC,aAAa33G,KAAKogD,GAALpgD,CAASkoB,WAAW0L,WAApB5zB,IAAmCkoB,WAAW49C,OAA3D,CATF,GAUE,UAVF,GAWE,UAXF,GAYE,UAZF,GAaE,UAbF,GAcE,UAdF,GAeE,UAfF,GAgBE4xC,SAASyB,SAAT,CAlBJyR;IAsBAA,QAAQE,QAARF,CACE,MADFA,EAEG,SAASsB,cAAT,GAA0B;MACzB,MAAMnR,cAAcphG,KAAKohG,WAAzB;MACA,MAAMoR,YAAYxyG,KAAK6jG,GAAL7jG,GAAWA,KAAK6jG,GAAL7jG,CAASkuB,MAApBluB,GAA6B,IAA/C;MACA,IAAIwlG,OAAO,kBAAX;;MACA,KAAK,IAAIxiH,IAAI,CAAR,EAAWiJ,KAAKuzG,SAArB,EAAgCx8G,IAAIiJ,EAApC,EAAwCjJ,GAAxC,EAA6C;QAC3C,IAAIk3C,QAAQ,CAAZ;;QACA,IAAIknE,WAAJ,EAAiB;UACf,MAAMqR,aAAarR,YAAYp+G,IAAI,CAAhB,CAAnB;UACAk3C,QAAQ,WAAWu4E,UAAX,GAAwBA,WAAWv4E,KAAnC,GAA2C,CAAnDA;QAFF,OAGO,IAAIs4E,SAAJ,EAAe;UACpBt4E,QAAQ7zC,KAAK4rB,IAAL5rB,CAAUmsH,UAAUxvH,CAAV,KAAgB,CAA1BqD,CAAR6zC;QANyC;;QAQ3CsrE,QAAQzH,SAAS7jE,KAAT,IAAkB6jE,SAAS,CAAT,CAA1ByH;MAZuB;;MAczB,OAAOA,IAAP;IAdF,CAAC,EAFHyL;IAqBAA,QAAQE,QAARF,CACE,MADFA,EAEE,qBAAqBlT,SAASyB,SAAT,CAFvByR;IAMAA,QAAQE,QAARF,CAAiB,MAAjBA,EAAyB3O,gBAAgB78E,QAAhB,CAAzBwrF;IAGAA,QAAQE,QAARF,CAAiB,MAAjBA,EAAyB7O,gBAAgB7zF,UAAhB,CAAzB0iG;IAEA,OAAOA,QAAQG,OAARH,EAAP;EA9uEO;;EAivET,IAAIyB,UAAJ,GAAiB;IAEf,MAAMC,4BAA4B,CAAC,OAAD,EAAU,OAAV,EAAmB,KAAnB,EAA0B,GAA1B,EAA+B,GAA/B,CAAlC;IACA,IAAIz4E,KAAJ;;IACA,KAAK,IAAIl3C,IAAI,CAAR,EAAWiJ,KAAK0mH,0BAA0BvwH,MAA/C,EAAuDY,IAAIiJ,EAA3D,EAA+DjJ,GAA/D,EAAoE;MAClE,MAAMstC,YAAYqiF,0BAA0B3vH,CAA1B,CAAlB;;MAEA,IAAIstC,aAAa,KAAKpC,MAAtB,EAA8B;QAC5BgM,QAAQ,KAAKhM,MAAL,CAAYoC,SAAZ,CAAR4J;QACA;MALgE;;MAOlE,MAAM5K,mBAAmBiB,kCAAzB;MACA,MAAMq1B,eAAet2B,iBAAiBgB,SAAjB,CAArB;MAEA,IAAIg4B,WAAW,CAAf;;MACA,IAAI,KAAKf,SAAL,IAAkB,KAAKqB,IAAL,CAAUyL,QAAV,CAAmBzO,YAAnB,CAAtB,EAAwD;QACtD0C,WAAW,KAAKM,IAAL,CAAU7yC,MAAV,CAAiB6vC,YAAjB,CAAX0C;;QAEA,IAAI,OAAOA,QAAP,KAAoB,QAAxB,EAAkC;UAChCA,WAAWu2C,iBAAiBj5C,YAAjB,EAA+B0C,QAA/B,CAAXA;QAJoD;MAXU;;MAmBlE,IAAI,CAACA,QAAD,IAAa,KAAKhB,SAAtB,EAAiC;QAC/BgB,WAAW,KAAKhB,SAAL,CAAegN,UAAf,CAA0B1O,YAA1B,CAAX0C;MApBgE;;MAuBlE,IAAIA,YAAY,CAAhB,EAAmB;QACjBA,WAAW1C,YAAX0C;MAxBgE;;MA2BlEpuB,QAAQ,KAAKhM,MAAL,CAAYo6B,QAAZ,CAARpuB;;MACA,IAAIA,KAAJ,EAAW;QACT;MA7BgE;IAJrD;;IAoCfA,QAAQA,SAAS,KAAK8vB,YAAtB9vB;IACA,OAAOz3B,kBAAO,IAAPA,EAAa,YAAbA,EAA2By3B,KAA3Bz3B,CAAP;EAtxEO;;EA4xETmwG,aAAatqD,QAAb,EAAuBk1C,UAAU,KAAjC,EAAwC;IACtC,IAAI8B,YAAJ,EAAkBplE,KAAlB,EAAyBqjE,cAAzB;IAEA,IAAIsV,YAAYvqD,QAAhB;;IACA,IAAI,KAAKM,IAAL,IAAa,KAAKA,IAAL,CAAUyL,QAAV,CAAmB/L,QAAnB,CAAjB,EAA+C;MAC7CuqD,YAAY,KAAKjqD,IAAL,CAAU7yC,MAAV,CAAiBuyC,QAAjB,CAAZuqD;;MAEA,IAAI,OAAOA,SAAP,KAAqB,QAAzB,EAAmC;QACjCA,YAAYhU,iBAAiBv2C,QAAjB,EAA2BuqD,SAA3B,CAAZA;MAJ2C;IAJT;;IAWtC34E,QAAQ,KAAKhM,MAAL,CAAY2kF,SAAZ,CAAR34E;;IACA,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;MAC7BA,QAAQ,KAAK8vB,YAAb9vB;IAboC;;IAetC,MAAMurB,UAAU,KAAK0E,QAAL,IAAiB,KAAKA,QAAL,CAAc0oD,SAAd,CAAjC;IAEA,IAAIjlF,UAAU,KAAK05B,SAAL,CAAej+D,GAAf,CAAmBi/D,QAAnB,KAAgCA,QAA9C;;IACA,IAAI,OAAO16B,OAAP,KAAmB,QAAvB,EAAiC;MAC/BA,UAAUnqB,OAAOC,YAAPD,CAAoBmqB,OAApBnqB,CAAVmqB;IAnBoC;;IAsBtC,IAAI6vE,WAAW,KAAKmB,UAAL,CAAgBt2C,QAAhB,MAA8B/kD,SAA7C;IAGA+7F,eAAe,KAAKV,UAAL,CAAgBt2C,QAAhB,KAA6BA,QAA5Cg3C;;IACA,IAAI,KAAKgE,WAAT,EAAsB;MACpB,MAAMhzE,YACJ,KAAKD,WAAL,CAAiBi4B,QAAjB,KAA8B,KAAKR,eAAL,CAAqBQ,QAArB,CADhC;;MAEA,IACG,eAAc,SAAdh4B,IAA2BA,cAAc,EAAzC,KACD,KAAKxkB,IAAL,KAAc,OAFhB,EAGE;QAGAwzF,eAAe,IAAfA;MATkB;;MAWpBA,eAAepuE,sCAAwBouE,YAAxBpuE,CAAfouE;IArCoC;;IAwCtC,IAAI,KAAK1kD,WAAT,EAAsB;MAEpB2iD,iBAAiB+B,YAAjB/B;IA1CoC;;IA6CtC,IAAI9vC,SAAS,IAAb;;IACA,IAAI,KAAK02C,OAAL,IAAgB,KAAKA,OAAL,CAAa77C,QAAb,CAApB,EAA4C;MAC1Cm1C,WAAW,IAAXA;MACA,MAAMsU,OAAO,KAAK5N,OAAL,CAAa77C,QAAb,CAAb;MACAg3C,eAAeyS,KAAKM,gBAApB/S;MACA7xC,SAAS;QACPJ,UAAU5pD,OAAO+kD,aAAP/kD,CAAqBsuG,KAAKO,kBAA1B7uG,CADH;QAEP+T,QAAQu6F,KAAKK;MAFN,CAAT3kD;IAlDoC;;IAwDtC,IAAIJ,WAAW,EAAf;;IACA,IAAI,OAAOiyC,YAAP,KAAwB,QAA5B,EAAsC;MACpC,IAAIA,gBAAgB,QAApB,EAA8B;QAC5BjyC,WAAW5pD,OAAO+kD,aAAP/kD,CAAqB67F,YAArB77F,CAAX4pD;MADF,OAEO;QACLvnE,gBAAM,uCAAsCw5G,YAAvC,EAALx5G;MAJkC;IAzDA;;IAiEtC,IAAIk6C,QAAQ,KAAKwjE,WAAL,CAAiBl7C,QAAjB,CAAZ;;IACA,IACE,CAACtoB,KAAD,IACA,CAACA,MAAM09D,eAAN19D,CACCsoB,QADDtoB,EAECqtB,QAFDrtB,EAGCpS,OAHDoS,EAICytB,MAJDztB,EAKC9F,KALD8F,EAMCylB,OANDzlB,EAOCu9D,cAPDv9D,EAQCw9D,OARDx9D,EASCy9D,QATDz9D,CAFH,EAaE;MACAA,QAAQ,IAAIq9D,KAAJ,CACN/0C,QADM,EAEN+E,QAFM,EAGNz/B,OAHM,EAIN6/B,MAJM,EAKNvzB,KALM,EAMNurB,OANM,EAON83C,cAPM,EAQNC,OARM,EASNC,QATM,CAARz9D;MAWA,KAAKwjE,WAAL,CAAiBl7C,QAAjB,IAA6BtoB,KAA7B;IA3FoC;;IA6FtC,OAAOA,KAAP;EAz3EO;;EA43ETD,cAAcrO,KAAd,EAAqB;IAEnB,IAAI8O,SAAS,KAAK+iE,WAAL,CAAiB7xE,KAAjB,CAAb;;IACA,IAAI8O,MAAJ,EAAY;MACV,OAAOA,MAAP;IAJiB;;IAMnBA,SAAS,EAATA;;IAEA,IAAI,KAAKooB,IAAT,EAAe;MAGb,MAAMthD,IAAIlb,OAAOC,MAAPD,CAAc,IAAdA,CAAV;MAAA,MACEH,KAAKylC,MAAMtvC,MADb;MAEA,IAAIY,IAAI,CAAR;;MACA,OAAOA,IAAIiJ,EAAX,EAAe;QACb,KAAK28D,IAAL,CAAU2L,YAAV,CAAuB7iC,KAAvB,EAA8B1uC,CAA9B,EAAiCskB,CAAjC;QACA,MAAM;UAAEghD,QAAF;UAAYlmE;QAAZ,IAAuBklB,CAA7B;QACAtkB,KAAKZ,MAALY;;QAEA,MAAMg9C,QAAQ,KAAK4yE,YAAL,CACZtqD,QADY,EAEZlmE,WAAW,CAAXA,IAAgBsvC,MAAMvtB,UAANutB,CAAiB1uC,IAAI,CAArB0uC,MAA4B,IAFhC,CAAd;;QAIA8O,OAAOr+C,IAAPq+C,CAAYR,KAAZQ;MAfW;IAAf,OAiBO;MACL,KAAK,IAAIx9C,IAAI,CAAR,EAAWiJ,KAAKylC,MAAMtvC,MAA3B,EAAmCY,IAAIiJ,EAAvC,EAA2C,EAAEjJ,CAA7C,EAAgD;QAC9C,MAAMslE,WAAW52B,MAAMvtB,UAANutB,CAAiB1uC,CAAjB0uC,CAAjB;;QACA,MAAMsO,QAAQ,KAAK4yE,YAAL,CAAkBtqD,QAAlB,EAA4BA,aAAa,IAAzC,CAAd;;QACA9nB,OAAOr+C,IAAPq+C,CAAYR,KAAZQ;MAJG;IAzBY;;IAkCnB,OAAQ,KAAK+iE,WAAL,CAAiB7xE,KAAjB,IAA0B8O,MAAlC;EA95EO;;EAs6ETE,iBAAiBhP,KAAjB,EAAwB;IAGtB,MAAM+O,YAAY,EAAlB;;IAEA,IAAI,KAAKmoB,IAAT,EAAe;MACb,MAAMthD,IAAIlb,OAAOC,MAAPD,CAAc,IAAdA,CAAV;MACA,IAAIpJ,IAAI,CAAR;;MACA,OAAOA,IAAI0uC,MAAMtvC,MAAjB,EAAyB;QACvB,KAAKwmE,IAAL,CAAU2L,YAAV,CAAuB7iC,KAAvB,EAA8B1uC,CAA9B,EAAiCskB,CAAjC;QACA,MAAMllB,SAASklB,EAAEllB,MAAjB;QACAq+C,UAAUt+C,IAAVs+C,CAAe,CAACz9C,CAAD,EAAIA,IAAIZ,MAAR,CAAfq+C;QACAz9C,KAAKZ,MAALY;MAPW;IAAf,OASO;MACL,KAAK,IAAIA,IAAI,CAAR,EAAWiJ,KAAKylC,MAAMtvC,MAA3B,EAAmCY,IAAIiJ,EAAvC,EAA2C,EAAEjJ,CAA7C,EAAgD;QAC9Cy9C,UAAUt+C,IAAVs+C,CAAe,CAACz9C,CAAD,EAAIA,IAAI,CAAR,CAAfy9C;MAFG;IAde;;IAoBtB,OAAOA,SAAP;EA17EO;;EA67ET,IAAIstB,gBAAJ,GAAuB;IACrB,OAAO3hE,OAAO0hB,MAAP1hB,CAAc,KAAKo3G,WAAnBp3G,CAAP;EA97EO;;EAw8ETozC,aAAat7B,GAAb,EAAkB;IAChB,MAAM4uG,UAAU,EAAhB;IACA,MAAMC,aAAa,EAAnB;;IAMA,MAAMC,sBAAsB,MAAMF,QAAQ1wH,MAAR0wH,GAAiB,CAAjBA,KAAuB,CAAzD;;IAEA,MAAMG,cACJ,KAAK3rD,SAAL,YAA0B+B,oCAA1B,GACIz7B,WAAW,KAAK05B,SAAL,CAAegN,UAAf,CAA0B1mC,OAA1B,CADf,GAEIA,WAAW,KAAK05B,SAAL,CAAegN,UAAf,CAA0B7wD,OAAO+kD,aAAP/kD,CAAqBmqB,OAArBnqB,CAA1B,CAHjB;;IAKA,KAAK,IAAIzgB,IAAI,CAAR,EAAWiJ,KAAKiY,IAAI9hB,MAAzB,EAAiCY,IAAIiJ,EAArC,EAAyCjJ,GAAzC,EAA8C;MAC5C,MAAM4qC,UAAU1pB,IAAIqV,WAAJrV,CAAgBlhB,CAAhBkhB,CAAhB;;MACA,IAAI0pB,UAAU,MAAVA,KAAqBA,UAAU,MAAVA,IAAoBA,UAAU,MAAnDA,CAAJ,EAAgE;QAE9D5qC;MAJ0C;;MAM5C,IAAI,KAAKskE,SAAT,EAAoB;QAClB,MAAMz3B,WAAWojF,YAAYrlF,OAAZ,CAAjB;;QACA,IAAIiC,aAAa,CAAC,CAAlB,EAAqB;UACnB,IAAImjF,qBAAJ,EAA2B;YACzBF,QAAQ3wH,IAAR2wH,CAAaC,WAAW1wH,IAAX0wH,CAAgB,EAAhBA,CAAbD;YACAC,WAAW3wH,MAAX2wH,GAAoB,CAApBA;UAHiB;;UAKnB,MAAMG,iBAAiB,KAAKtqD,IAAL,GACnB,KAAKA,IAAL,CAAUgM,iBAAV,CAA4B/kC,QAA5B,CADmB,GAEnB,CAFJ;;UAGA,KAAK,IAAIvmB,IAAI4pG,iBAAiB,CAA9B,EAAiC5pG,KAAK,CAAtC,EAAyCA,GAAzC,EAA8C;YAC5CypG,WAAW5wH,IAAX4wH,CAAgBtvG,OAAOC,YAAPD,CAAqBosB,YAAa,IAAIvmB,CAAjBumB,GAAuB,IAA5CpsB,CAAhBsvG;UATiB;;UAWnB;QAbgB;MANwB;;MAwB5C,IAAI,CAACC,qBAAL,EAA4B;QAC1BF,QAAQ3wH,IAAR2wH,CAAaC,WAAW1wH,IAAX0wH,CAAgB,EAAhBA,CAAbD;QACAC,WAAW3wH,MAAX2wH,GAAoB,CAApBA;MA1B0C;;MA4B5CA,WAAW5wH,IAAX4wH,CAAgBtvG,OAAO+kD,aAAP/kD,CAAqBmqB,OAArBnqB,CAAhBsvG;IA3Cc;;IA8ChBD,QAAQ3wH,IAAR2wH,CAAaC,WAAW1wH,IAAX0wH,CAAgB,EAAhBA,CAAbD;IAEA,OAAOA,OAAP;EAx/EO;;AAAA;;;;AA4/EX,MAAM73D,SAAN,CAAgB;EACdl7D,YAAYsO,KAAZ,EAAmB;IACjB,KAAKA,KAAL,GAAaA,KAAb;IACA,KAAK2sD,UAAL,GAAkB,cAAlB;IACA,KAAKsoD,WAAL,GAAmB,IAAnB;EAJY;;EAOdvjE,gBAAgB;IACd,OAAO,EAAP;EARY;;EAWdP,aAAa9N,KAAb,EAAoB;IAClB,OAAO,CAACA,KAAD,CAAP;EAZY;;EAedm8B,WAAWw2C,kBAAkB,KAA7B,EAAoC;IAClC,OAAO;MAAEh2G,OAAO,KAAKA;IAAd,CAAP;EAhBY;;AAAA;;;;;;;;;;;;;;;AC91GhB;;AASA;;AAKA;;AAGA,MAAM8kH,mBAAmB,EAAzB;AAOA,MAAMC,qBAAqB,CACzB,SADyB,EACd,OADc,EACL,QADK,EACK,UADL,EACiB,YADjB,EAC+B,QAD/B,EACyC,SADzC,EAEzB,WAFyB,EAEZ,YAFY,EAEE,WAFF,EAEe,YAFf,EAE6B,UAF7B,EAEyC,MAFzC,EAGzB,OAHyB,EAGhB,QAHgB,EAGN,QAHM,EAGI,OAHJ,EAGa,MAHb,EAGqB,KAHrB,EAG4B,KAH5B,EAGmC,OAHnC,EAG4C,MAH5C,EAIzB,MAJyB,EAIjB,KAJiB,EAIV,OAJU,EAID,OAJC,EAIQ,MAJR,EAIgB,OAJhB,EAIyB,WAJzB,EAIsC,MAJtC,EAKzB,OALyB,EAKhB,SALgB,EAKL,UALK,EAKO,IALP,EAKa,GALb,EAKkB,GALlB,EAKuB,GALvB,EAK4B,GAL5B,EAKiC,GALjC,EAKsC,GALtC,EAK2C,GAL3C,EAKgD,GALhD,EAMzB,GANyB,EAMpB,GANoB,EAMf,GANe,EAMV,GANU,EAML,GANK,EAMA,GANA,EAMK,GANL,EAMU,GANV,EAMe,GANf,EAMoB,GANpB,EAMyB,GANzB,EAM8B,GAN9B,EAMmC,GANnC,EAMwC,GANxC,EAM6C,GAN7C,EAOzB,GAPyB,EAOpB,GAPoB,EAOf,GAPe,EAOV,aAPU,EAOK,WAPL,EAOkB,cAPlB,EAOkC,aAPlC,EAQzB,YARyB,EAQX,WARW,EAQE,GARF,EAQO,GARP,EAQY,GARZ,EAQiB,GARjB,EAQsB,GARtB,EAQ2B,GAR3B,EAQgC,GARhC,EAQqC,GARrC,EAQ0C,GAR1C,EAQ+C,GAR/C,EASzB,GATyB,EASpB,GAToB,EASf,GATe,EASV,GATU,EASL,GATK,EASA,GATA,EASK,GATL,EASU,GATV,EASe,GATf,EASoB,GATpB,EASyB,GATzB,EAS8B,GAT9B,EASmC,GATnC,EASwC,GATxC,EAS6C,GAT7C,EAUzB,GAVyB,EAUpB,WAVoB,EAUP,KAVO,EAUA,YAVA,EAUc,YAVd,EAU4B,YAV5B,EAU0C,MAV1C,EAWzB,UAXyB,EAWb,UAXa,EAWD,KAXC,EAWM,QAXN,EAWgB,SAXhB,EAW2B,UAX3B,EAYzB,aAZyB,EAYV,cAZU,EAYM,eAZN,EAYuB,eAZvB,EAazB,gBAbyB,EAaP,IAbO,EAaD,IAbC,EAaK,QAbL,EAae,QAbf,EAayB,WAbzB,EAczB,gBAdyB,EAcP,WAdO,EAcM,QAdN,EAcgB,gBAdhB,EAckC,cAdlC,EAezB,eAfyB,EAeR,gBAfQ,EAeU,UAfV,EAesB,aAftB,EAeqC,cAfrC,EAgBzB,OAhByB,EAgBhB,OAhBgB,EAgBP,YAhBO,EAgBO,OAhBP,EAgBgB,QAhBhB,EAgB0B,OAhB1B,EAgBmC,WAhBnC,EAiBzB,UAjByB,EAiBb,MAjBa,EAiBL,SAjBK,EAiBM,cAjBN,EAiBsB,QAjBtB,EAiBgC,OAjBhC,EAiByC,QAjBzC,EAkBzB,IAlByB,EAkBnB,aAlBmB,EAkBJ,QAlBI,EAkBM,QAlBN,EAkBgB,IAlBhB,EAkBsB,cAlBtB,EAkBsC,IAlBtC,EAmBzB,UAnByB,EAmBb,QAnBa,EAmBH,QAnBG,EAmBO,IAnBP,EAmBa,YAnBb,EAmB2B,aAnB3B,EAoBzB,YApByB,EAoBX,IApBW,EAoBL,WApBK,EAoBQ,KApBR,EAoBe,SApBf,EAoB0B,WApB1B,EAoBuC,OApBvC,EAqBzB,YArByB,EAqBX,QArBW,EAqBD,WArBC,EAqBY,QArBZ,EAqBsB,OArBtB,EAqB+B,eArB/B,EAsBzB,aAtByB,EAsBV,YAtBU,EAsBI,OAtBJ,EAsBa,KAtBb,EAsBoB,UAtBpB,EAsBgC,eAtBhC,EAuBzB,WAvByB,EAuBZ,QAvBY,EAuBF,aAvBE,EAuBa,WAvBb,EAuB0B,QAvB1B,EAuBoC,OAvBpC,EAwBzB,QAxByB,EAwBf,UAxBe,EAwBH,QAxBG,EAwBO,aAxBP,EAwBsB,WAxBtB,EAwBmC,QAxBnC,EAyBzB,QAzByB,EAyBf,aAzBe,EAyBA,WAzBA,EAyBa,QAzBb,EAyBuB,QAzBvB,EAyBiC,QAzBjC,EA0BzB,aA1ByB,EA0BV,WA1BU,EA0BG,QA1BH,EA0Ba,QA1Bb,EA0BuB,QA1BvB,EA0BiC,QA1BjC,EA2BzB,aA3ByB,EA2BV,WA3BU,EA2BG,QA3BH,EA2Ba,QA3Bb,EA2BuB,WA3BvB,EA2BoC,QA3BpC,EA4BzB,QA5ByB,EA4Bf,aA5Be,EA4BA,WA5BA,EA4Ba,QA5Bb,EA4BuB,OA5BvB,EA4BgC,QA5BhC,EA6BzB,UA7ByB,EA6Bb,QA7Ba,EA6BH,aA7BG,EA6BY,WA7BZ,EA6ByB,QA7BzB,EA6BmC,QA7BnC,EA8BzB,aA9ByB,EA8BV,WA9BU,EA8BG,QA9BH,EA8Ba,QA9Bb,EA8BuB,QA9BvB,EA8BiC,aA9BjC,EA+BzB,WA/ByB,EA+BZ,QA/BY,EA+BF,QA/BE,EA+BQ,QA/BR,EA+BkB,QA/BlB,EA+B4B,aA/B5B,EAgCzB,WAhCyB,EAgCZ,QAhCY,EAgCF,QAhCE,EAgCQ,WAhCR,EAgCqB,QAhCrB,EAgC+B,aAhC/B,EAiCzB,mBAjCyB,EAiCJ,gBAjCI,EAiCc,gBAjCd,EAiCgC,gBAjChC,EAkCzB,YAlCyB,EAkCX,mBAlCW,EAkCU,oBAlCV,EAkCgC,gBAlChC,EAmCzB,gBAnCyB,EAmCP,cAnCO,EAmCS,aAnCT,EAmCwB,aAnCxB,EAoCzB,eApCyB,EAoCR,cApCQ,EAoCQ,cApCR,EAoCwB,aApCxB,EAqCzB,eArCyB,EAqCR,eArCQ,EAqCS,cArCT,EAqCyB,eArCzB,EAsCzB,qBAtCyB,EAsCF,gBAtCE,EAsCgB,eAtChB,EAsCiC,WAtCjC,EAuCzB,WAvCyB,EAuCZ,cAvCY,EAuCI,WAvCJ,EAuCiB,WAvCjB,EAuC8B,WAvC9B,EAwCzB,WAxCyB,EAwCZ,WAxCY,EAwCC,WAxCD,EAwCc,WAxCd,EAwC2B,WAxC3B,EAwCwC,WAxCxC,EAyCzB,WAzCyB,EAyCZ,IAzCY,EAyCN,KAzCM,EAyCC,KAzCD,EAyCQ,mBAzCR,EAyC6B,oBAzC7B,EA0CzB,iBA1CyB,EA0CN,gBA1CM,EA0CY,YA1CZ,EA0C0B,QA1C1B,EA0CoC,QA1CpC,EA2CzB,QA3CyB,EA2Cf,QA3Ce,EA2CL,QA3CK,EA2CK,QA3CL,EA2Ce,QA3Cf,EA2CyB,QA3CzB,EA2CmC,QA3CnC,EA4CzB,QA5CyB,EA4Cf,QA5Ce,EA4CL,QA5CK,EA4CK,QA5CL,EA4Ce,QA5Cf,EA4CyB,QA5CzB,EA4CmC,QA5CnC,EA6CzB,QA7CyB,EA6Cf,QA7Ce,EA6CL,QA7CK,EA6CK,QA7CL,EA6Ce,QA7Cf,EA6CyB,QA7CzB,EA6CmC,QA7CnC,EA8CzB,QA9CyB,EA8Cf,QA9Ce,EA8CL,QA9CK,EA8CK,eA9CL,EA8CsB,WA9CtB,EA8CmC,QA9CnC,EA+CzB,YA/CyB,EA+CX,iBA/CW,EA+CQ,cA/CR,EA+CwB,aA/CxB,EAgDzB,aAhDyB,EAgDV,aAhDU,EAgDK,eAhDL,EAgDsB,YAhDtB,EAgDoC,YAhDpC,EAiDzB,gBAjDyB,EAiDP,aAjDO,EAiDQ,YAjDR,EAiDsB,gBAjDtB,EAkDzB,aAlDyB,EAkDV,WAlDU,EAkDG,cAlDH,EAkDmB,mBAlDnB,EAkDwC,WAlDxC,EAmDzB,cAnDyB,EAmDT,aAnDS,EAmDM,cAnDN,EAmDsB,UAnDtB,EAmDkC,WAnDlC,EAoDzB,cApDyB,EAoDT,cApDS,EAoDO,cApDP,EAoDuB,aApDvB,EAqDzB,eArDyB,EAqDR,eArDQ,EAqDS,cArDT,EAqDyB,cArDzB,EAsDzB,aAtDyB,EAsDV,aAtDU,EAsDK,eAtDL,EAsDsB,cAtDtB,EAuDzB,cAvDyB,EAuDT,aAvDS,EAuDM,eAvDN,EAuDuB,eAvDvB,EAwDzB,cAxDyB,EAwDT,cAxDS,EAwDO,gBAxDP,EAwDyB,gBAxDzB,EAyDzB,eAzDyB,EAyDR,aAzDQ,EAyDO,aAzDP,EAyDsB,kBAzDtB,EA0DzB,aA1DyB,EA0DV,gBA1DU,EA0DQ,YA1DR,EA0DsB,SA1DtB,EA0DiC,eA1DjC,EA2DzB,aA3DyB,EA2DV,aA3DU,EA2DK,kBA3DL,EA2DyB,gBA3DzB,EA4DzB,aA5DyB,EA4DV,aA5DU,EA4DK,kBA5DL,EA4DyB,gBA5DzB,EA6DzB,UA7DyB,EA6Db,aA7Da,EA6DE,aA7DF,EA6DiB,aA7DjB,EA6DgC,kBA7DhC,EA8DzB,aA9DyB,EA8DV,gBA9DU,EA8DQ,SA9DR,EA8DmB,aA9DnB,EA8DkC,aA9DlC,EA+DzB,aA/DyB,EA+DV,kBA/DU,EA+DU,gBA/DV,EA+D4B,aA/D5B,EAgEzB,YAhEyB,EAgEX,gBAhEW,EAgEO,SAhEP,EAgEkB,SAhElB,EAgE6B,SAhE7B,EAgEwC,SAhExC,EAiEzB,OAjEyB,EAiEhB,MAjEgB,EAiER,MAjEQ,EAiEA,OAjEA,EAiES,QAjET,EAiEmB,SAjEnB,EAiE8B,OAjE9B,EAiEuC,UAjEvC,CAA3B;;AAoEA,MAAMC,2BAA2B,GAAjC;;AAEA,MAAM1C,YAAa,SAAS2C,gBAAT,GAA4B;EAC7C,MAAMC,2BAA2B,CAC/B,IAD+B,EAE/B;IAAE5pH,IAAI,OAAN;IAAema,KAAK,CAApB;IAAuB0vG,eAAe,IAAtC;IAA4CC,MAAM;EAAlD,CAF+B,EAG/B,IAH+B,EAI/B;IAAE9pH,IAAI,OAAN;IAAema,KAAK,CAApB;IAAuB0vG,eAAe,IAAtC;IAA4CC,MAAM;EAAlD,CAJ+B,EAK/B;IAAE9pH,IAAI,SAAN;IAAiBma,KAAK,CAAtB;IAAyB0vG,eAAe;EAAxC,CAL+B,EAM/B;IAAE7pH,IAAI,SAAN;IAAiBma,KAAK,CAAtB;IAAyB4vG,YAAY;EAArC,CAN+B,EAO/B;IAAE/pH,IAAI,SAAN;IAAiBma,KAAK,CAAtB;IAAyB4vG,YAAY;EAArC,CAP+B,EAQ/B;IAAE/pH,IAAI,SAAN;IAAiBma,KAAK,CAAtB;IAAyB4vG,YAAY;EAArC,CAR+B,EAS/B;IAAE/pH,IAAI,WAAN;IAAmBma,KAAK,CAAxB;IAA2B4vG,YAAY;EAAvC,CAT+B,EAU/B,IAV+B,EAW/B;IAAE/pH,IAAI,UAAN;IAAkBma,KAAK,CAAvB;IAA0B6vG,YAAY;EAAtC,CAX+B,EAY/B;IAAEhqH,IAAI,QAAN;IAAgBma,KAAK,CAArB;IAAwB6vG,YAAY;EAApC,CAZ+B,EAa/B,IAb+B,EAc/B,IAd+B,EAe/B;IAAEhqH,IAAI,SAAN;IAAiBma,KAAK,CAAtB;IAAyB0vG,eAAe;EAAxC,CAf+B,EAgB/B,IAhB+B,EAiB/B,IAjB+B,EAkB/B,IAlB+B,EAmB/B;IAAE7pH,IAAI,SAAN;IAAiBma,KAAK,CAAtB;IAAyB0vG,eAAe,IAAxC;IAA8CC,MAAM;EAApD,CAnB+B,EAoB/B;IAAE9pH,IAAI,UAAN;IAAkBma,KAAK,CAAvB;IAA0B0vG,eAAe;EAAzC,CApB+B,EAqB/B;IAAE7pH,IAAI,UAAN;IAAkBma,KAAK,CAAvB;IAA0B0vG,eAAe;EAAzC,CArB+B,EAsB/B;IAAE7pH,IAAI,SAAN;IAAiBma,KAAK,CAAtB;IAAyB0vG,eAAe;EAAxC,CAtB+B,EAuB/B;IAAE7pH,IAAI,SAAN;IAAiBma,KAAK,CAAtB;IAAyB0vG,eAAe;EAAxC,CAvB+B,EAwB/B;IAAE7pH,IAAI,SAAN;IAAiBma,KAAK,CAAtB;IAAyB0vG,eAAe,IAAxC;IAA8CC,MAAM;EAApD,CAxB+B,EAyB/B;IAAE9pH,IAAI,YAAN;IAAoBma,KAAK,CAAzB;IAA4B4vG,YAAY;EAAxC,CAzB+B,EA0B/B;IAAE/pH,IAAI,YAAN;IAAoBma,KAAK,CAAzB;IAA4B4vG,YAAY;EAAxC,CA1B+B,EA2B/B;IAAE/pH,IAAI,WAAN;IAAmBma,KAAK,CAAxB;IAA2B4vG,YAAY;EAAvC,CA3B+B,EA4B/B;IAAE/pH,IAAI,WAAN;IAAmBma,KAAK,CAAxB;IAA2B4vG,YAAY;EAAvC,CA5B+B,EA6B/B,IA7B+B,EA8B/B;IAAE/pH,IAAI,WAAN;IAAmBma,KAAK,CAAxB;IAA2B6vG,YAAY;EAAvC,CA9B+B,EA+B/B;IAAEhqH,IAAI,WAAN;IAAmBma,KAAK,CAAxB;IAA2B4vG,YAAY;EAAvC,CA/B+B,EAgC/B;IAAE/pH,IAAI,WAAN;IAAmBma,KAAK,CAAxB;IAA2B4vG,YAAY;EAAvC,CAhC+B,CAAjC;EAkCA,MAAME,6BAA6B,CACjC,IADiC,EAEjC,IAFiC,EAGjC,IAHiC,EAIjC;IAAEjqH,IAAI,KAAN;IAAama,KAAK,CAAlB;IAAqB2qG,YAAY,CAAC;EAAlC,CAJiC,EAKjC;IAAE9kH,IAAI,IAAN;IAAYma,KAAK,CAAjB;IAAoB2qG,YAAY,CAAC;EAAjC,CALiC,EAMjC;IAAE9kH,IAAI,KAAN;IAAama,KAAK,CAAlB;IAAqB2qG,YAAY;EAAjC,CANiC,EAOjC,IAPiC,EAQjC,IARiC,EASjC,IATiC,EAUjC;IAAE9kH,IAAI,KAAN;IAAama,KAAK,CAAlB;IAAqB2qG,YAAY;EAAjC,CAViC,EAWjC;IACE9kH,IAAI,KADN;IAEEma,KAAK,CAFP;IAGE2qG,YAAY,CAAC,CAHf;IAIEoF,SAAS,SAASC,SAAT,CAAmBj+C,KAAnB,EAA0B9nC,KAA1B,EAAiC;MACxC8nC,MAAM9nC,QAAQ,CAAd,IAAmB8nC,MAAM9nC,QAAQ,CAAd,IAAmB8nC,MAAM9nC,QAAQ,CAAd,CAAtC8nC;IALJ;EAAA,CAXiC,EAmBjC;IACElsE,IAAI,KADN;IAEEma,KAAK,CAFP;IAGE2qG,YAAY,CAAC,CAHf;IAIEoF,SAAS,SAASC,SAAT,CAAmBj+C,KAAnB,EAA0B9nC,KAA1B,EAAiC;MACxC8nC,MAAM9nC,QAAQ,CAAd,IAAmB8nC,MAAM9nC,QAAQ,CAAd,IAAmB8nC,MAAM9nC,QAAQ,CAAd,CAAtC8nC;IALJ;EAAA,CAnBiC,EA2BjC;IACElsE,IAAI,KADN;IAEEma,KAAK,CAFP;IAGE2qG,YAAY,CAAC,CAHf;IAIEoF,SAAS,SAASC,SAAT,CAAmBj+C,KAAnB,EAA0B9nC,KAA1B,EAAiC;MACxC8nC,MAAM9nC,QAAQ,CAAd,IAAmB8nC,MAAM9nC,QAAQ,CAAd,IAAmB8nC,MAAM9nC,QAAQ,CAAd,CAAtC8nC;IALJ;EAAA,CA3BiC,EAmCjC,IAnCiC,EAoCjC;IACElsE,IAAI,KADN;IAEEma,KAAK,CAFP;IAGE2qG,YAAY,CAHd;IAIEoF,SAAS,SAASC,SAAT,CAAmBj+C,KAAnB,EAA0B9nC,KAA1B,EAAiC;MACxC8nC,MAAM9nC,QAAQ,CAAd,IAAmB,CAAC8nC,MAAM9nC,QAAQ,CAAd,CAApB8nC;IALJ;EAAA,CApCiC,EA4CjC;IAAElsE,IAAI,IAAN;IAAYma,KAAK,CAAjB;IAAoB2qG,YAAY,CAAC;EAAjC,CA5CiC,EA6CjC,IA7CiC,EA8CjC,IA9CiC,EA+CjC;IAAE9kH,IAAI,MAAN;IAAcma,KAAK,CAAnB;IAAsB2qG,YAAY,CAAC;EAAnC,CA/CiC,EAgDjC,IAhDiC,EAiDjC;IAAE9kH,IAAI,KAAN;IAAama,KAAK,CAAlB;IAAqB2qG,YAAY,CAAC;EAAlC,CAjDiC,EAkDjC;IAAE9kH,IAAI,KAAN;IAAama,KAAK,CAAlB;IAAqB2qG,YAAY;EAAjC,CAlDiC,EAmDjC;IAAE9kH,IAAI,QAAN;IAAgBma,KAAK,CAArB;IAAwB2qG,YAAY,CAAC;EAArC,CAnDiC,EAoDjC;IAAE9kH,IAAI,QAAN;IAAgBma,KAAK,CAArB;IAAwB2qG,YAAY;EAApC,CApDiC,EAqDjC;IACE9kH,IAAI,KADN;IAEEma,KAAK,CAFP;IAGE2qG,YAAY,CAAC,CAHf;IAIEoF,SAAS,SAASC,SAAT,CAAmBj+C,KAAnB,EAA0B9nC,KAA1B,EAAiC;MACxC8nC,MAAM9nC,QAAQ,CAAd,IAAmB8nC,MAAM9nC,QAAQ,CAAd,IAAmB8nC,MAAM9nC,QAAQ,CAAd,CAAtC8nC;IALJ;EAAA,CArDiC,EA6DjC,IA7DiC,EA8DjC;IAAElsE,IAAI,MAAN;IAAcma,KAAK,CAAnB;IAAsB2qG,YAAY;EAAlC,CA9DiC,EA+DjC;IAAE9kH,IAAI,KAAN;IAAama,KAAK,CAAlB;IAAqB2qG,YAAY;EAAjC,CA/DiC,EAgEjC;IAAE9kH,IAAI,MAAN;IAAcma,KAAK,CAAnB;IAAsB2qG,YAAY;EAAlC,CAhEiC,EAiEjC;IAAE9kH,IAAI,OAAN;IAAema,KAAK,CAApB;IAAuB2qG,YAAY;EAAnC,CAjEiC,EAkEjC;IAAE9kH,IAAI,MAAN;IAAcma,KAAK,CAAnB;IAAsB2qG,YAAY,CAAC;EAAnC,CAlEiC,EAmEjC,IAnEiC,EAoEjC,IApEiC,EAqEjC,IArEiC,EAsEjC;IAAE9kH,IAAI,OAAN;IAAema,KAAK,CAApB;IAAuB4vG,YAAY;EAAnC,CAtEiC,EAuEjC;IAAE/pH,IAAI,MAAN;IAAcma,KAAK,EAAnB;IAAuB4vG,YAAY;EAAnC,CAvEiC,EAwEjC;IAAE/pH,IAAI,QAAN;IAAgBma,KAAK,CAArB;IAAwB4vG,YAAY;EAApC,CAxEiC,EAyEjC;IAAE/pH,IAAI,OAAN;IAAema,KAAK,EAApB;IAAwB4vG,YAAY;EAApC,CAzEiC,CAAnC;;EA6EA,MAAM/C,SAAN,CAAgB;IACd5wH,YAAYwnD,IAAZ,EAAkBh5B,UAAlB,EAA8BwlG,mBAA9B,EAAmD;MACjD,KAAKxrH,KAAL,GAAag/C,KAAKp0B,QAALo0B,EAAb;MACA,KAAKh5B,UAAL,GAAkBA,UAAlB;MACA,KAAKwlG,mBAAL,GAA2B,CAAC,CAACA,mBAA7B;IAJY;;IAOdrzF,QAAQ;MACN,MAAMnS,aAAa,KAAKA,UAAxB;MACA,MAAMs1F,MAAM,IAAImQ,GAAJ,EAAZ;MACA,KAAKnQ,GAAL,GAAWA,GAAX;MAIA,MAAMztC,SAAS,KAAK69C,WAAL,EAAf;MACA,MAAM3G,YAAY,KAAK4G,UAAL,CAAgB99C,OAAO+9C,MAAvB,CAAlB;MACA,MAAMC,eAAe,KAAKF,UAAL,CAAgB5G,UAAU6G,MAA1B,CAArB;MACA,MAAME,cAAc,KAAKH,UAAL,CAAgBE,aAAaD,MAA7B,CAApB;MACA,MAAMG,kBAAkB,KAAKJ,UAAL,CAAgBG,YAAYF,MAA5B,CAAxB;MAEA,MAAMI,gBAAgB,KAAKC,SAAL,CAAeJ,aAAa1xG,GAAb0xG,CAAiB/qH,GAAjB+qH,CAAqB,CAArBA,CAAf,CAAtB;MACA,MAAMK,UAAU,KAAKC,UAAL,CAAgBC,UAAhB,EAA4BJ,aAA5B,EAA2C1Q,IAAIrB,OAA/C,CAAhB;MAEAqB,IAAIztC,MAAJytC,GAAaztC,OAAO1zD,GAApBmhG;MACAA,IAAIlB,KAAJkB,GAAY,KAAK+Q,cAAL,CAAoBtH,UAAU5qG,GAA9B,CAAZmhG;MACAA,IAAIrB,OAAJqB,GAAc,KAAKgR,gBAAL,CAAsBR,YAAY3xG,GAAlC,CAAdmhG;MACAA,IAAI4Q,OAAJ5Q,GAAc4Q,OAAd5Q;MACAA,IAAIyQ,eAAJzQ,GAAsByQ,gBAAgB5xG,GAAtCmhG;MAEA,KAAKiR,gBAAL,CAAsBjR,IAAI4Q,OAA1B;MAEA5Q,IAAIkR,SAAJlR,GAAgB4Q,QAAQO,OAARP,CAAgB,KAAhBA,CAAhB5Q;MAEA,MAAMoR,mBAAmBR,QAAQxpE,SAARwpE,CAAkB,aAAlBA,CAAzB;MACA,MAAMS,kBAAkB,KAAKhB,UAAL,CAAgBe,gBAAhB,EAAkCvyG,GAA1D;MAEA,MAAM0gD,aAAaqxD,QAAQxpE,SAARwpE,CAAkB,YAAlBA,CAAnB;;MACA,IAAIrxD,UAAJ,EAAgB;QACd70C,WAAW60C,UAAX70C,GAAwB60C,UAAxB70C;MA/BI;;MAkCN,MAAM4mG,WAAWV,QAAQxpE,SAARwpE,CAAkB,UAAlBA,CAAjB;;MACA,IAAIU,QAAJ,EAAc;QAEZ5mG,WAAWm1C,MAAXn1C,GAAoBloB,KAAKC,GAALD,CAAS8uH,SAAS,CAAT,CAAT9uH,EAAsB8uH,SAAS,CAAT,CAAtB9uH,CAApBkoB;QACAA,WAAW2wB,OAAX3wB,GAAqBloB,KAAKyd,GAALzd,CAAS8uH,SAAS,CAAT,CAAT9uH,EAAsB8uH,SAAS,CAAT,CAAtB9uH,CAArBkoB;QACAA,WAAWwzF,YAAXxzF,GAA0B,IAA1BA;MAvCI;;MA0CN,IAAIsjG,OAAJ,EAAanoG,QAAb;;MACA,IAAIm6F,IAAIkR,SAAR,EAAmB;QACjB,MAAMK,eAAe,KAAKlB,UAAL,CAAgBO,QAAQxpE,SAARwpE,CAAkB,SAAlBA,CAAhB,EAA8C/xG,GAAnE;;QACA,KAAK,IAAI1f,IAAI,CAAR,EAAWiJ,KAAKmpH,aAAahsE,KAAlC,EAAyCpmD,IAAIiJ,EAA7C,EAAiD,EAAEjJ,CAAnD,EAAsD;UACpD,MAAMqyH,UAAUD,aAAa/rH,GAAb+rH,CAAiBpyH,CAAjBoyH,CAAhB;UACA,MAAME,WAAW,KAAKZ,UAAL,CACfC,UADe,EAEf,KAAKH,SAAL,CAAea,OAAf,CAFe,EAGfxR,IAAIrB,OAHW,CAAjB;UAKA,KAAKsS,gBAAL,CAAsBQ,QAAtB;UACAzR,IAAI0R,OAAJ1R,CAAY1hH,IAAZ0hH,CAAiByR,QAAjBzR;QAVe;;QAajBn6F,WAAW,IAAXA;QACAmoG,UAAU,KAAK2D,aAAL,CACRf,QAAQxpE,SAARwpE,CAAkB,SAAlBA,CADQ,EAERS,gBAAgB9rE,KAFR,EAGRy6D,IAAIrB,OAHI,EAIR,IAJQ,CAAVqP;QAMAhO,IAAI4R,QAAJ5R,GAAe,KAAK6R,aAAL,CACbjB,QAAQxpE,SAARwpE,CAAkB,UAAlBA,CADa,EAEbS,gBAAgB9rE,KAFH,CAAfy6D;MApBF,OAwBO;QACLgO,UAAU,KAAK2D,aAAL,CACRf,QAAQxpE,SAARwpE,CAAkB,SAAlBA,CADQ,EAERS,gBAAgB9rE,KAFR,EAGRy6D,IAAIrB,OAHI,EAIR,KAJQ,CAAVqP;QAMAnoG,WAAW,KAAKisG,aAAL,CACTlB,QAAQxpE,SAARwpE,CAAkB,UAAlBA,CADS,EAETlmG,UAFS,EAGTs1F,IAAIrB,OAHK,EAITqP,QAAQA,OAJC,CAAXnoG;MA1EI;;MAkFNm6F,IAAIgO,OAAJhO,GAAcgO,OAAdhO;MACAA,IAAIn6F,QAAJm6F,GAAen6F,QAAfm6F;MAEA,MAAM+R,sBAAsB,KAAKC,gBAAL,CAAsB;QAChDC,aAAaZ,eADmC;QAEhDa,gBAAgBtB,QAAQuB,WAARvB,CAAoBwB,UAFY;QAGhD3B,iBAAiBA,gBAAgB5xG,GAHe;QAIhD+yG,UAAU5R,IAAI4R,QAJkC;QAKhDF,SAAS1R,IAAI0R,OALmC;QAMhDS,aAAavB,QAAQuB;MAN2B,CAAtB,CAA5B;MAQAnS,IAAIiS,WAAJjS,GAAkB+R,oBAAoBE,WAAtCjS;MACAA,IAAI+N,KAAJ/N,GAAY+R,oBAAoBhE,KAAhC/N;MACAA,IAAI31E,MAAJ21E,GAAa+R,oBAAoB1nF,MAAjC21E;MAEA,OAAOA,GAAP;IAxGY;;IA2GdoQ,cAAc;MACZ,IAAI1rH,QAAQ,KAAKA,KAAjB;MACA,MAAMwvE,cAAcxvE,MAAMnG,MAA1B;MACA,IAAIo1B,SAAS,CAAb;;MAIA,OAAOA,SAASugD,WAATvgD,IAAwBjvB,MAAMivB,MAAN,MAAkB,CAAjD,EAAoD;QAClD,EAAEA,MAAF;MARU;;MAUZ,IAAIA,UAAUugD,WAAd,EAA2B;QACzB,MAAM,IAAI10D,iBAAJ,CAAgB,oBAAhB,CAAN;MAXU;;MAaZ,IAAImU,WAAW,CAAf,EAAkB;QAChBvqB,gBAAK,qBAALA;QACA1E,QAAQA,MAAMyb,QAANzb,CAAeivB,MAAfjvB,CAARA;QACA,KAAKA,KAAL,GAAaA,KAAb;MAhBU;;MAkBZ,MAAMk5F,QAAQl5F,MAAM,CAAN,CAAd;MACA,MAAMm5F,QAAQn5F,MAAM,CAAN,CAAd;MACA,MAAM2tH,UAAU3tH,MAAM,CAAN,CAAhB;MACA,MAAM4tH,UAAU5tH,MAAM,CAAN,CAAhB;MACA,MAAM6tE,SAAS,IAAIggD,SAAJ,CAAc30B,KAAd,EAAqBC,KAArB,EAA4Bw0B,OAA5B,EAAqCC,OAArC,CAAf;MACA,OAAO;QAAEzzG,KAAK0zD,MAAP;QAAe+9C,QAAQ+B;MAAvB,CAAP;IAlIY;;IAqId1B,UAAU/lG,IAAV,EAAgB;MACd,IAAInK,MAAM,CAAV;;MAEA,SAAS+xG,YAAT,GAAwB;QACtB,IAAIpwH,QAAQwoB,KAAKnK,KAAL,CAAZ;;QACA,IAAIre,UAAU,EAAd,EAAkB;UAChB,OAAOqwH,mBAAP;QADF,OAEO,IAAIrwH,UAAU,EAAd,EAAkB;UACvBA,QAAQwoB,KAAKnK,KAAL,CAARre;UACAA,QAAS,CAACA,SAAS,EAATA,GAAgBwoB,KAAKnK,KAAL,KAAe,EAAhC,KAAwC,EAAjDre;UACA,OAAOA,KAAP;QAHK,OAIA,IAAIA,UAAU,EAAd,EAAkB;UACvBA,QAAQwoB,KAAKnK,KAAL,CAARre;UACAA,QAASA,SAAS,CAATA,GAAcwoB,KAAKnK,KAAL,CAAvBre;UACAA,QAASA,SAAS,CAATA,GAAcwoB,KAAKnK,KAAL,CAAvBre;UACAA,QAASA,SAAS,CAATA,GAAcwoB,KAAKnK,KAAL,CAAvBre;UACA,OAAOA,KAAP;QALK,OAMA,IAAIA,SAAS,EAATA,IAAeA,SAAS,GAA5B,EAAiC;UACtC,OAAOA,QAAQ,GAAf;QADK,OAEA,IAAIA,SAAS,GAATA,IAAgBA,SAAS,GAA7B,EAAkC;UACvC,OAAQ,SAAQ,GAAR,IAAe,GAAf,GAAqBwoB,KAAKnK,KAAL,CAArB,GAAmC,GAA3C;QADK,OAEA,IAAIre,SAAS,GAATA,IAAgBA,SAAS,GAA7B,EAAkC;UACvC,OAAO,EAAG,SAAQ,GAAR,IAAe,GAAlB,IAAyBwoB,KAAKnK,KAAL,CAAzB,GAAuC,GAA9C;QAnBoB;;QAqBtBxe,gBAAK,2BAA2BG,KAA3B,GAAmC,0BAAxCH;QACA,OAAO4oH,GAAP;MAzBY;;MA4Bd,SAAS4H,iBAAT,GAA6B;QAC3B,IAAIpyG,MAAM,EAAV;QACA,MAAM26D,MAAM,EAAZ;QAEA,MAAM9oD,SAAS,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,EAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,GAA/B,EAAoC,GAApC,EAAyC,GAAzC,EACC,GADD,EACM,GADN,EACW,GADX,EACgB,IADhB,EACsB,IADtB,EAC4B,GAD5B,CAAf;QAEA,MAAM3zB,SAASqsB,KAAKrsB,MAApB;;QACA,OAAOkiB,MAAMliB,MAAb,EAAqB;UACnB,MAAMqJ,IAAIgjB,KAAKnK,KAAL,CAAV;UACA,MAAM8W,KAAK3vB,KAAK,CAAhB;UACA,MAAM6vB,KAAK7vB,IAAI,EAAf;;UAEA,IAAI2vB,OAAOyjD,GAAX,EAAgB;YACd;UANiB;;UAQnB36D,OAAO6R,OAAOqF,EAAP,CAAPlX;;UAEA,IAAIoX,OAAOujD,GAAX,EAAgB;YACd;UAXiB;;UAanB36D,OAAO6R,OAAOuF,EAAP,CAAPpX;QApByB;;QAsB3B,OAAOmW,WAAWnW,GAAX,CAAP;MAlDY;;MAqDd,IAAIqyG,WAAW,EAAf;MACA,MAAM7nG,UAAU,EAAhB;MAEApK,MAAM,CAANA;MACA,MAAM0M,MAAMvC,KAAKrsB,MAAjB;;MACA,OAAOkiB,MAAM0M,GAAb,EAAkB;QAChB,IAAIvlB,IAAIgjB,KAAKnK,GAAL,CAAR;;QACA,IAAI7Y,KAAK,EAAT,EAAa;UACX,IAAIA,MAAM,EAAV,EAAc;YACZA,IAAKA,KAAK,CAALA,GAAUgjB,KAAK,EAAEnK,GAAP,CAAf7Y;UAFS;;UAIXijB,QAAQvsB,IAARusB,CAAa,CAACjjB,CAAD,EAAI8qH,QAAJ,CAAb7nG;UACA6nG,WAAW,EAAXA;UACA,EAAEjyG,GAAF;QANF,OAOO;UACLiyG,SAASp0H,IAATo0H,CAAcF,cAAdE;QAVc;MA1DJ;;MAuEd,OAAO7nG,OAAP;IA5MY;;IA+MdwlG,WAAW5vG,GAAX,EAAgB;MACd,MAAMkyG,WAAW,IAAIC,QAAJ,EAAjB;MACA,MAAMluH,QAAQ,KAAKA,KAAnB;MACA,MAAM6gD,QAAS7gD,MAAM+b,KAAN,KAAgB,CAAhB/b,GAAqBA,MAAM+b,KAAN,CAApC;MACA,MAAMqkG,UAAU,EAAhB;MACA,IAAI33F,MAAM1M,GAAV;MACA,IAAIthB,CAAJ,EAAOiJ,EAAP;;MAEA,IAAIm9C,UAAU,CAAd,EAAiB;QACf,MAAMstE,aAAanuH,MAAM+b,KAAN,CAAnB;QAEA,MAAM00D,WAAW10D,MAAO,SAAQ,CAAR,IAAaoyG,UAApBpyG,GAAiC,CAAlD;;QAEA,KAAKthB,IAAI,CAAJA,EAAOiJ,KAAKm9C,QAAQ,CAAzB,EAA4BpmD,IAAIiJ,EAAhC,EAAoC,EAAEjJ,CAAtC,EAAyC;UACvC,IAAIw0B,SAAS,CAAb;;UACA,KAAK,IAAIlO,IAAI,CAAb,EAAgBA,IAAIotG,UAApB,EAAgC,EAAEptG,CAAlC,EAAqC;YACnCkO,WAAW,CAAXA;YACAA,UAAUjvB,MAAM+b,KAAN,CAAVkT;UAJqC;;UAMvCmxF,QAAQxmH,IAARwmH,CAAa3vC,WAAWxhD,MAAxBmxF;QAXa;;QAaf33F,MAAM23F,QAAQv/D,KAAR,CAANp4B;MArBY;;MAuBd,KAAKhuB,IAAI,CAAJA,EAAOiJ,KAAK08G,QAAQvmH,MAARumH,GAAiB,CAAlC,EAAqC3lH,IAAIiJ,EAAzC,EAA6C,EAAEjJ,CAA/C,EAAkD;QAChD,MAAM2zH,cAAchO,QAAQ3lH,CAAR,CAApB;QACA,MAAM4zH,YAAYjO,QAAQ3lH,IAAI,CAAZ,CAAlB;QACAwzH,SAASnnG,GAATmnG,CAAajuH,MAAMyb,QAANzb,CAAeouH,WAAfpuH,EAA4BquH,SAA5BruH,CAAbiuH;MA1BY;;MA4Bd,OAAO;QAAE9zG,KAAK8zG,QAAP;QAAiBrC,QAAQnjG;MAAzB,CAAP;IA3OY;;IA8Od4jG,eAAe7mF,KAAf,EAAsB;MACpB,MAAM40E,QAAQ,EAAd;;MACA,KAAK,IAAI3/G,IAAI,CAAR,EAAWiJ,KAAK8hC,MAAMqb,KAA3B,EAAkCpmD,IAAIiJ,EAAtC,EAA0C,EAAEjJ,CAA5C,EAA+C;QAC7C,MAAMhD,OAAO+tC,MAAM1kC,GAAN0kC,CAAU/qC,CAAV+qC,CAAb;QACA40E,MAAMxgH,IAANwgH,CAAWr/F,yBAActjB,IAAdsjB,CAAXq/F;MAJkB;;MAMpB,OAAOA,KAAP;IApPY;;IAuPdkS,iBAAiB9mF,KAAjB,EAAwB;MACtB,MAAMy0E,UAAU,IAAIqU,UAAJ,EAAhB;;MACA,KAAK,IAAI7zH,IAAI,CAAR,EAAWiJ,KAAK8hC,MAAMqb,KAA3B,EAAkCpmD,IAAIiJ,EAAtC,EAA0C,EAAEjJ,CAA5C,EAA+C;QAC7C,MAAM9B,OAAO6sC,MAAM1kC,GAAN0kC,CAAU/qC,CAAV+qC,CAAb;QACAy0E,QAAQnzF,GAARmzF,CAAYl/F,yBAAcpiB,IAAdoiB,CAAZk/F;MAJoB;;MAMtB,OAAOA,OAAP;IA7PY;;IAgQdkS,WAAWoC,IAAX,EAAiBroG,IAAjB,EAAuB+zF,OAAvB,EAAgC;MAC9B,MAAMuU,UAAU,IAAID,IAAJ,CAAStU,OAAT,CAAhB;;MACA,KAAK,IAAIx/G,IAAI,CAAR,EAAWiJ,KAAKwiB,KAAKrsB,MAA1B,EAAkCY,IAAIiJ,EAAtC,EAA0C,EAAEjJ,CAA5C,EAA+C;QAC7C,MAAMg0H,OAAOvoG,KAAKzrB,CAAL,CAAb;QACA,MAAM0J,MAAMsqH,KAAK,CAAL,CAAZ;QACA,MAAM/wH,QAAQ+wH,KAAK,CAAL,CAAd;QACAD,QAAQE,QAARF,CAAiBrqH,GAAjBqqH,EAAsB9wH,KAAtB8wH;MAN4B;;MAQ9B,OAAOA,OAAP;IAxQY;;IA2QdG,gBAAgBxxE,KAAhB,EAAuBxkD,IAAvB,EAA6B60H,cAA7B,EAA6CzB,eAA7C,EAA8D;MAC5D,IAAI,CAACpzH,IAAD,IAASwkD,MAAMyxE,SAANzxE,GAAkBytE,gBAA/B,EAAiD;QAC/C,OAAO,KAAP;MAF0D;;MAI5D,IAAIiE,YAAY1xE,MAAM0xE,SAAtB;MACA,MAAMvhD,QAAQnwB,MAAMmwB,KAApB;MAEA,MAAMzzE,SAASlB,KAAKkB,MAApB;;MAEA,KAAK,IAAIknB,IAAI,CAAb,EAAgBA,IAAIlnB,MAApB,GAA8B;QAC5B,MAAM6D,QAAQ/E,KAAKooB,GAAL,CAAd;QACA,IAAI+tG,oBAAoB,IAAxB;;QACA,IAAIpxH,UAAU,EAAd,EAAkB;UAChB,MAAMonD,IAAInsD,KAAKooB,GAAL,CAAV;;UACA,IAAI+jC,MAAM,CAAV,EAAa;YAMXnsD,KAAKooB,IAAI,CAAT,IAAc,GAAdpoB;YACAA,KAAKooB,IAAI,CAAT,IAAc,EAAdpoB;YACAk2H,YAAY,CAAZA;UARF,OASO;YACLC,oBAAoBzD,2BAA2BvmE,CAA3B,CAApBgqE;UAZc;QAAlB,OAcO,IAAIpxH,UAAU,EAAd,EAAkB;UAEvB4vE,MAAMuhD,SAAN,IAAoB,CAACl2H,KAAKooB,CAAL,KAAW,EAAXpoB,GAAkBA,KAAKooB,IAAI,CAAT,KAAe,EAAlC,KAA0C,EAA9DusD;UACAvsD,KAAK,CAALA;UACA8tG;QAJK,OAKA,IAAInxH,UAAU,EAAd,EAAkB;UACvB,IAAImxH,aAAa,CAAjB,EAAoB;YAClBA,aAAa,CAAbA;;YACA,IAAI,KAAKrD,mBAAT,EAA8B;cAC5BruE,MAAMqsE,IAANrsE,GAAamwB,MAAM/uD,KAAN+uD,CAAYuhD,SAAZvhD,EAAuBuhD,YAAY,CAAnCvhD,CAAbnwB;cACA,OAAO,KAAP;YAJgB;UADG;;UAQvB2xE,oBAAoB9D,yBAAyBttH,KAAzB,CAApBoxH;QARK,OASA,IAAIpxH,SAAS,EAATA,IAAeA,SAAS,GAA5B,EAAiC;UAEtC4vE,MAAMuhD,SAAN,IAAmBnxH,QAAQ,GAA3B4vE;UACAuhD;QAHK,OAIA,IAAInxH,SAAS,GAATA,IAAgBA,SAAS,GAA7B,EAAkC;UAEvC4vE,MAAMuhD,SAAN,IACEnxH,QAAQ,GAARA,GACK,CAACA,QAAQ,GAARA,IAAgB,CAAjB,IAAsB/E,KAAKooB,CAAL,CAAtB,GAAgC,GADrCrjB,GAEI,EAAGA,QAAQ,GAARA,IAAgB,CAAnB,IAAwB/E,KAAKooB,CAAL,CAAxB,GAAkC,GAHxCusD;UAIAvsD;UACA8tG;QAPK,OAQA,IAAInxH,UAAU,GAAd,EAAmB;UAExB4vE,MAAMuhD,SAAN,IACG,CAACl2H,KAAKooB,CAAL,KAAW,EAAXpoB,GACCA,KAAKooB,IAAI,CAAT,KAAe,EADhBpoB,GAECA,KAAKooB,IAAI,CAAT,KAAe,CAFhBpoB,GAGAA,KAAKooB,IAAI,CAAT,CAHD,IAID,KALFusD;UAMAvsD,KAAK,CAALA;UACA8tG;QATK,OAUA,IAAInxH,UAAU,EAAVA,IAAgBA,UAAU,EAA9B,EAAkC;UACvCy/C,MAAMu4B,KAANv4B,IAAe0xE,aAAa,CAA5B1xE;UAEAp8B,KAAMo8B,MAAMu4B,KAANv4B,GAAc,CAAdA,IAAoB,CAA1Bp8B;UACA8tG,aAAa,CAAbA;UACAC,oBAAoB9D,yBAAyBttH,KAAzB,CAApBoxH;QALK,OAMA,IAAIpxH,UAAU,EAAVA,IAAgBA,UAAU,EAA9B,EAAkC;UACvC,IAAIgwH,UAAJ;;UACA,IAAIhwH,UAAU,EAAd,EAAkB;YAChBgwH,aAAaF,cAAbE;UADF,OAEO;YACLA,aAAa3B,eAAb2B;UALqC;;UAOvC,IAAI,CAACA,UAAL,EAAiB;YACfoB,oBAAoB9D,yBAAyBttH,KAAzB,CAApBoxH;YACAvxH,gBAAK,4BAA4BuxH,kBAAkB1tH,EAAnD7D;YACA,OAAO,KAAP;UAVqC;;UAYvC,IAAI06G,OAAO,KAAX;;UACA,IAAIyV,WAAW7sE,KAAX6sE,GAAmB,IAAvB,EAA6B;YAC3BzV,OAAO,GAAPA;UADF,OAEO,IAAIyV,WAAW7sE,KAAX6sE,GAAmB,KAAvB,EAA8B;YACnCzV,OAAO,IAAPA;UAhBqC;;UAkBvC,MAAM8W,aAAazhD,MAAM,EAAEuhD,SAAR,IAAqB5W,IAAxC;;UACA,IACE8W,aAAa,CAAbA,IACAA,cAAcrB,WAAW7sE,KADzBkuE,IAEAh9F,MAAMg9F,UAAN,CAHF,EAIE;YACAD,oBAAoB9D,yBAAyBttH,KAAzB,CAApBoxH;YACAvxH,gBAAK,iCAAiCuxH,kBAAkB1tH,EAAxD7D;YACA,OAAO,KAAP;UA1BqC;;UA4BvC4/C,MAAM0xE,SAAN1xE,GAAkB0xE,SAAlB1xE;UACAA,MAAMyxE,SAANzxE;UACA,MAAMgnE,QAAQ,KAAKwK,eAAL,CACZxxE,KADY,EAEZuwE,WAAW5sH,GAAX4sH,CAAeqB,UAAfrB,CAFY,EAGZF,cAHY,EAIZzB,eAJY,CAAd;;UAMA,IAAI,CAAC5H,KAAL,EAAY;YACV,OAAO,KAAP;UArCqC;;UAuCvChnE,MAAMyxE,SAANzxE;UACA0xE,YAAY1xE,MAAM0xE,SAAlBA;UACA;QAzCK,OA0CA,IAAInxH,UAAU,EAAd,EAAkB;UACvBy/C,MAAM0xE,SAAN1xE,GAAkB0xE,SAAlB1xE;UACA,OAAO,IAAP;QAFK,OAGA,IAAIz/C,UAAU,CAAVA,IAAeqjB,MAAMpoB,KAAKkB,MAA9B,EAAsC;UAI3ClB,KAAKooB,IAAI,CAAT,IAAc,EAAdpoB;UACAm2H,oBAAoB9D,yBAAyB,EAAzB,CAApB8D;QALK,OAMA;UACLA,oBAAoB9D,yBAAyBttH,KAAzB,CAApBoxH;QA/G0B;;QAiH5B,IAAIA,iBAAJ,EAAuB;UACrB,IAAIA,kBAAkB5D,IAAtB,EAA4B;YAC1B/tE,MAAMu4B,KAANv4B,IAAe0xE,aAAa,CAA5B1xE;;YACA,IAAIz/C,UAAU,CAAVA,IAAeA,UAAU,EAA7B,EAAiC;cAE/By/C,MAAM6xE,SAAN7xE,GAAkB,IAAlBA;YAFF,OAGO,IAAIA,MAAM6xE,SAAN7xE,KAAoBz/C,UAAU,CAAVA,IAAeA,UAAU,EAA7Cy/C,CAAJ,EAAsD;cAI3D5/C,gBAAK,mCAALA;cACA5E,KAAKooB,IAAI,CAAT,IAAcrjB,UAAU,CAAVA,GAAc,CAAdA,GAAkB,EAAhC/E;YAVwB;UADP;;UAcrB,IAAI,SAASm2H,iBAAb,EAAgC;YAC9B,IAAI,CAAC3xE,MAAMiuE,UAAP,IAAqByD,YAAYC,kBAAkBvzG,GAAvD,EAA4D;cAC1Dhe,gBACE,+BACEuxH,kBAAkB1tH,EADpB,GAEE,YAFF,GAGEytH,SAHF,GAIE,cAJF,GAKEC,kBAAkBvzG,GANtBhe;;cASA,IAAIsxH,cAAc,CAAlB,EAAqB;gBAInBl2H,KAAKooB,IAAI,CAAT,IAAc,EAAdpoB;gBACA,OAAO,IAAP;cAfwD;;cAiB1D,OAAO,KAAP;YAlB4B;UAdX;;UAmCrB,IAAIwkD,MAAM8xE,kBAAN9xE,IAA4B2xE,kBAAkB7D,aAAlD,EAAiE;YAC/D9tE,MAAM8xE,kBAAN9xE,GAA2B,KAA3BA;YAGA0xE,aAAaC,kBAAkBvzG,GAA/BszG;;YACA,IAAIA,aAAa,CAAbA,IAAkBC,kBAAkB5D,IAAxC,EAA8C;cAE5C2D,aAAa,CAAbA;YAFF,OAGO,IAAIA,YAAY,CAAhB,EAAmB;cACxBtxH,gBAAK,sDAALA;YAT6D;;YAW/D,IAAIsxH,YAAY,CAAhB,EAAmB;cAGjB1xE,MAAMxL,KAANwL,GAAcmwB,MAAMuhD,YAAY,CAAlB,CAAd1xE;YAd6D;UAnC5C;;UAoDrB,IAAI,gBAAgB2xE,iBAApB,EAAuC;YACrC,IAAI,aAAaA,iBAAjB,EAAoC;cAClCA,kBAAkBxD,OAAlBwD,CAA0BxhD,KAA1BwhD,EAAiCD,SAAjCC;YAFmC;;YAIrCD,aAAaC,kBAAkB5I,UAA/B2I;UAJF,OAKO,IAAIC,kBAAkB7D,aAAtB,EAAqC;YAC1C4D,YAAY,CAAZA;UADK,OAEA,IAAIC,kBAAkB3D,UAAtB,EAAkC;YACvC0D,YAAY,CAAZA;YACA1xE,MAAMiuE,UAANjuE,GAAmB,KAAnBA;UAFK,OAGA,IAAI2xE,kBAAkB1D,UAAtB,EAAkC;YACvCyD,YAAY,CAAZA;YACA1xE,MAAMiuE,UAANjuE,GAAmB,IAAnBA;YACAA,MAAM8xE,kBAAN9xE,GAA2B,KAA3BA;UAjEmB;QAjHK;MAT8B;;MA+L5DA,MAAM0xE,SAAN1xE,GAAkB0xE,SAAlB1xE;MACA,OAAO,IAAP;IA3cY;;IA8cdmwE,iBAAiB;MACfC,WADe;MAEfC,cAFe;MAGfzB,eAHe;MAIfmB,QAJe;MAKfF,OALe;MAMfS;IANe,CAAjB,EAOG;MACD,MAAMpE,QAAQ,EAAd;MACA,MAAM1jF,SAAS,EAAf;MACA,MAAMkb,QAAQ0sE,YAAY1sE,KAA1B;;MACA,KAAK,IAAIpmD,IAAI,CAAb,EAAgBA,IAAIomD,KAApB,EAA2BpmD,GAA3B,EAAgC;QAC9B,MAAMyvH,aAAaqD,YAAYzsH,GAAZysH,CAAgB9yH,CAAhB8yH,CAAnB;QACA,MAAMpwE,QAAQ;UACZyxE,WAAW,CADC;UAEZC,WAAW,CAFC;UAGZvhD,OAAO,EAHK;UAIZ89C,YAAY,IAJA;UAKZ11C,OAAO,CALK;UAMZu5C,oBAAoB,IANR;UAOZzF,MAAM,IAPM;UAQZ73E,OAAO,IARK;UASZq9E,WAAW;QATC,CAAd;QAWA,IAAI7K,QAAQ,IAAZ;QACA,IAAI+K,iBAAiB,IAArB;QACA,IAAIC,mBAAmB1B,WAAvB;;QACA,IAAIP,YAAYF,QAAQnzH,MAAxB,EAAgC;UAC9B,MAAMu1H,UAAUlC,SAASmC,UAATnC,CAAoBzyH,CAApByyH,CAAhB;;UACA,IAAIkC,YAAY,CAAC,CAAjB,EAAoB;YAClB7xH,gBAAK,kCAALA;YACA4mH,QAAQ,KAARA;UAJ4B;;UAM9B,IAAIiL,WAAWpC,QAAQnzH,MAAvB,EAA+B;YAC7B0D,gBAAK,mCAALA;YACA4mH,QAAQ,KAARA;UAR4B;;UAU9B,IAAIA,KAAJ,EAAW;YACTgL,mBAAmBnC,QAAQoC,OAAR,EAAiB3B,WAApC0B;YACAD,iBAAiBC,iBAAiBzB,UAAlCwB;UAZ4B;QAAhC,OAcO,IAAI1B,cAAJ,EAAoB;UACzB0B,iBAAiB1B,cAAjB0B;QA/B4B;;QAiC9B,IAAI/K,KAAJ,EAAW;UACTA,QAAQ,KAAKwK,eAAL,CACNxxE,KADM,EAEN+sE,UAFM,EAGNgF,cAHM,EAINnD,eAJM,CAAR5H;QAlC4B;;QAyC9B,IAAIhnE,MAAMxL,KAANwL,KAAgB,IAApB,EAA0B;UACxB,MAAMmyE,eAAeH,iBAAiBzsE,SAAjBysE,CAA2B,eAA3BA,CAArB;UACAxpF,OAAOlrC,CAAP,IAAY60H,eAAenyE,MAAMxL,KAAjChM;QAFF,OAGO;UACL,MAAM87B,eAAe0tD,iBAAiBzsE,SAAjBysE,CAA2B,eAA3BA,CAArB;UACAxpF,OAAOlrC,CAAP,IAAYgnE,YAAZ97B;QA9C4B;;QAgD9B,IAAIwX,MAAMqsE,IAANrsE,KAAe,IAAnB,EAAyB;UACvBksE,MAAM5uH,CAAN,IAAW0iD,MAAMqsE,IAAjBH;QAjD4B;;QAmD9B,IAAI,CAAClF,KAAL,EAAY;UAEVoJ,YAAYrxG,GAAZqxG,CAAgB9yH,CAAhB8yH,EAAmB,IAAI10H,UAAJ,CAAe,CAAC,EAAD,CAAf,CAAnB00H;QArD4B;MAJ/B;;MA4DD,OAAO;QAAEA,WAAF;QAAelE,KAAf;QAAsB1jF;MAAtB,CAAP;IAjhBY;;IAohBd4pF,uBAAuBC,UAAvB,EAAmC;MACjC,MAAM/B,cAAc,KAAKtB,UAAL,CAClBsD,cADkB,EAElB,EAFkB,EAGlBD,WAAWvV,OAHO,CAApB;MAKAuV,WAAWd,QAAXc,CAAoB,EAApBA,EAAwB,CAAC,CAAD,EAAI,CAAJ,CAAxBA;MACAA,WAAW/B,WAAX+B,GAAyB/B,WAAzB+B;IA3hBY;;IA8hBdjD,iBAAiBiD,UAAjB,EAA6B;MAE3B,IAAI,CAACA,WAAW/C,OAAX+C,CAAmB,SAAnBA,CAAL,EAAoC;QAClC,KAAKD,sBAAL,CAA4BC,UAA5B;QACA;MAJyB;;MAM3B,MAAME,gBAAgBF,WAAW9sE,SAAX8sE,CAAqB,SAArBA,CAAtB;;MAEA,IAAI,CAAChsH,MAAMC,OAAND,CAAcksH,aAAdlsH,CAAD,IAAiCksH,cAAc71H,MAAd61H,KAAyB,CAA9D,EAAiE;QAC/DF,WAAWG,YAAXH,CAAwB,SAAxBA;QACA;MAVyB;;MAY3B,MAAM3qG,OAAO6qG,cAAc,CAAd,CAAb;MACA,MAAMzgG,SAASygG,cAAc,CAAd,CAAf;;MAEA,IAAI7qG,SAAS,CAATA,IAAcoK,UAAU,KAAKjvB,KAAL,CAAWnG,MAAvC,EAA+C;QAC7C,KAAK01H,sBAAL,CAA4BC,UAA5B;QACA;MAjByB;;MAoB3B,MAAMI,iBAAiB3gG,SAASpK,IAAhC;MACA,MAAMgrG,WAAW,KAAK7vH,KAAL,CAAWyb,QAAX,CAAoBwT,MAApB,EAA4B2gG,cAA5B,CAAjB;MACA,MAAM1pG,OAAO,KAAK+lG,SAAL,CAAe4D,QAAf,CAAb;MACA,MAAMpC,cAAc,KAAKtB,UAAL,CAClBsD,cADkB,EAElBvpG,IAFkB,EAGlBspG,WAAWvV,OAHO,CAApB;MAKAuV,WAAW/B,WAAX+B,GAAyB/B,WAAzB+B;;MAGA,IAAI,CAAC/B,YAAY/qE,SAAZ+qE,CAAsB,OAAtBA,CAAL,EAAqC;QACnC;MAhCyB;;MAkC3B,MAAMqC,cAAcrC,YAAY/qE,SAAZ+qE,CAAsB,OAAtBA,CAApB;MACA,MAAMsC,iBAAiB9gG,SAAS6gG,WAAhC;;MAEA,IAAIA,gBAAgB,CAAhBA,IAAqBC,kBAAkB,KAAK/vH,KAAL,CAAWnG,MAAtD,EAA8D;QAC5D,KAAK01H,sBAAL,CAA4BC,UAA5B;QACA;MAvCyB;;MAyC3B,MAAM9B,aAAa,KAAK/B,UAAL,CAAgBoE,cAAhB,CAAnB;MACAtC,YAAYC,UAAZD,GAAyBC,WAAWvzG,GAApCszG;IAxkBY;;IA2kBdR,cAAclxG,GAAd,EAAmBliB,MAAnB,EAA2BogH,OAA3B,EAAoCr5C,GAApC,EAAyC;MACvC,IAAI7kD,QAAQ,CAAZ,EAAe;QACb,OAAO,IAAIi0G,UAAJ,CACL,IADK,EAELC,0BAA0BC,SAFrB,EAGLC,yBAHK,CAAP;MADF,OAMO,IAAIp0G,QAAQ,CAAZ,EAAe;QACpB,OAAO,IAAIi0G,UAAJ,CACL,IADK,EAELC,0BAA0BG,MAFrB,EAGLC,uBAHK,CAAP;MADK,OAMA,IAAIt0G,QAAQ,CAAZ,EAAe;QACpB,OAAO,IAAIi0G,UAAJ,CACL,IADK,EAELC,0BAA0BK,aAFrB,EAGLC,6BAHK,CAAP;MAdqC;;MAqBvC,MAAMvwH,QAAQ,KAAKA,KAAnB;MACA,MAAMkF,QAAQ6W,GAAd;MACA,MAAMyjG,SAASx/G,MAAM+b,KAAN,CAAf;MACA,MAAMutG,UAAU,CAAC1oD,MAAM,CAAN,GAAU,SAAX,CAAhB;MACA,IAAIx/D,EAAJ,EAAQy/C,KAAR,EAAepmD,CAAf;MAGAZ,UAAU,CAAVA;;MAEA,QAAQ2lH,MAAR;QACE,KAAK,CAAL;UACE,KAAK/kH,IAAI,CAAT,EAAYA,IAAIZ,MAAhB,EAAwBY,GAAxB,EAA6B;YAC3B2G,KAAMpB,MAAM+b,KAAN,KAAgB,CAAhB/b,GAAqBA,MAAM+b,KAAN,CAA3B3a;YACAkoH,QAAQ1vH,IAAR0vH,CAAa1oD,MAAMx/D,EAAN,GAAW64G,QAAQn5G,GAARm5G,CAAY74G,EAAZ64G,CAAxBqP;UAHJ;;UAKE;;QACF,KAAK,CAAL;UACE,OAAOA,QAAQzvH,MAARyvH,IAAkBzvH,MAAzB,EAAiC;YAC/BuH,KAAMpB,MAAM+b,KAAN,KAAgB,CAAhB/b,GAAqBA,MAAM+b,KAAN,CAA3B3a;YACAy/C,QAAQ7gD,MAAM+b,KAAN,CAAR8kC;;YACA,KAAKpmD,IAAI,CAAT,EAAYA,KAAKomD,KAAjB,EAAwBpmD,GAAxB,EAA6B;cAC3B6uH,QAAQ1vH,IAAR0vH,CAAa1oD,MAAMx/D,IAAN,GAAa64G,QAAQn5G,GAARm5G,CAAY74G,IAAZ64G,CAA1BqP;YAJ6B;UADnC;;UAQE;;QACF,KAAK,CAAL;UACE,OAAOA,QAAQzvH,MAARyvH,IAAkBzvH,MAAzB,EAAiC;YAC/BuH,KAAMpB,MAAM+b,KAAN,KAAgB,CAAhB/b,GAAqBA,MAAM+b,KAAN,CAA3B3a;YACAy/C,QAAS7gD,MAAM+b,KAAN,KAAgB,CAAhB/b,GAAqBA,MAAM+b,KAAN,CAA9B8kC;;YACA,KAAKpmD,IAAI,CAAT,EAAYA,KAAKomD,KAAjB,EAAwBpmD,GAAxB,EAA6B;cAC3B6uH,QAAQ1vH,IAAR0vH,CAAa1oD,MAAMx/D,IAAN,GAAa64G,QAAQn5G,GAARm5G,CAAY74G,IAAZ64G,CAA1BqP;YAJ6B;UADnC;;UAQE;;QACF;UACE,MAAM,IAAIxuG,iBAAJ,CAAgB,wBAAhB,CAAN;MA1BJ;;MA6BA,MAAM2N,MAAM1M,GAAZ;MACA,MAAM65C,MAAM51D,MAAMyb,QAANzb,CAAekF,KAAflF,EAAsByoB,GAAtBzoB,CAAZ;MAEA,OAAO,IAAIgwH,UAAJ,CAAe,KAAf,EAAsBxQ,MAAtB,EAA8B8J,OAA9B,EAAuC1zD,GAAvC,CAAP;IAzoBY;;IA4oBdw3D,cAAcrxG,GAAd,EAAmBiK,UAAnB,EAA+Bi0F,OAA/B,EAAwCqP,OAAxC,EAAiD;MAC/C,MAAMnoG,WAAWtd,OAAOC,MAAPD,CAAc,IAAdA,CAAjB;MACA,MAAM7D,QAAQ,KAAKA,KAAnB;MACA,IAAIwwH,aAAa,KAAjB;MACA,IAAIhR,MAAJ,EAAY/kH,CAAZ,EAAeiJ,EAAf;MACA,IAAIkyD,MAAM,IAAV;;MAEA,SAAS66D,cAAT,GAA0B;QACxB,MAAMC,mBAAmB1wH,MAAM+b,KAAN,CAAzB;;QACA,KAAKthB,IAAI,CAAT,EAAYA,IAAIi2H,gBAAhB,EAAkCj2H,GAAlC,EAAuC;UACrC,MAAMgE,OAAOuB,MAAM+b,KAAN,CAAb;UACA,MAAM40G,MAAO,OAAM50G,KAAN,KAAgB,CAAhB,KAAsB/b,MAAM+b,KAAN,IAAe,IAArC,CAAb;UACAoF,SAAS1iB,IAAT,IAAiB6qH,QAAQ5uH,OAAR4uH,CAAgBrP,QAAQn5G,GAARm5G,CAAY0W,GAAZ1W,CAAhBqP,CAAjBnoG;QALsB;MAPqB;;MAgB/C,IAAIpF,QAAQ,CAARA,IAAaA,QAAQ,CAAzB,EAA4B;QAC1By0G,aAAa,IAAbA;QACAhR,SAASzjG,GAATyjG;QACA,MAAMj4E,eAAexrB,MAAMmsB,yBAAN,GAAuBL,2BAA5C;;QACA,KAAKptC,IAAI,CAAJA,EAAOiJ,KAAK4lH,QAAQzvH,MAAzB,EAAiCY,IAAIiJ,EAArC,EAAyCjJ,GAAzC,EAA8C;UAC5C,MAAM+qC,QAAQ+B,aAAa7sC,OAAb6sC,CAAqB+hF,QAAQ7uH,CAAR,CAArB8sC,CAAd;;UACA,IAAI/B,UAAU,CAAC,CAAf,EAAkB;YAChBrkB,SAASqkB,KAAT,IAAkB/qC,CAAlB0mB;UAH0C;QAJpB;MAA5B,OAUO;QACL,MAAMyvG,YAAY70G,GAAlB;QACAyjG,SAASx/G,MAAM+b,KAAN,CAATyjG;;QACA,QAAQA,SAAS,IAAjB;UACE,KAAK,CAAL;YACE,MAAMqR,cAAc7wH,MAAM+b,KAAN,CAApB;;YACA,KAAKthB,IAAI,CAAT,EAAYA,KAAKo2H,WAAjB,EAA8Bp2H,GAA9B,EAAmC;cACjC0mB,SAASnhB,MAAM+b,KAAN,CAAT,IAAyBthB,CAAzB0mB;YAHJ;;YAKE;;UAEF,KAAK,CAAL;YACE,MAAM2vG,cAAc9wH,MAAM+b,KAAN,CAApB;YACA,IAAIg1G,MAAM,CAAV;;YACA,KAAKt2H,IAAI,CAAT,EAAYA,IAAIq2H,WAAhB,EAA6Br2H,GAA7B,EAAkC;cAChC,MAAMyK,QAAQlF,MAAM+b,KAAN,CAAd;cACA,MAAM8gF,OAAO78F,MAAM+b,KAAN,CAAb;;cACA,KAAK,IAAIgF,IAAI7b,KAAb,EAAoB6b,KAAK7b,QAAQ23F,IAAjC,EAAuC97E,GAAvC,EAA4C;gBAC1CI,SAASJ,CAAT,IAAcgwG,KAAd5vG;cAJ8B;YAHpC;;YAUE;;UAEF;YACE,MAAM,IAAIrG,iBAAJ,CAAiB,4BAA2B0kG,MAAO,SAAnD,CAAN;QArBJ;;QAuBA,MAAM7uB,UAAU50E,GAAhB;;QACA,IAAIyjG,SAAS,IAAb,EAAmB;UAOjBx/G,MAAM4wH,SAAN,KAAoB,IAApB5wH;UACAywH;QAnCG;;QAqCL76D,MAAM51D,MAAMyb,QAANzb,CAAe4wH,SAAf5wH,EAA0B2wF,OAA1B3wF,CAAN41D;MA/D6C;;MAiE/C4pD,UAAU,IAAVA;MACA,OAAO,IAAIwR,WAAJ,CAAgBR,UAAhB,EAA4BhR,MAA5B,EAAoCr+F,QAApC,EAA8Cy0C,GAA9C,CAAP;IA9sBY;;IAitBdu3D,cAAcpxG,GAAd,EAAmBliB,MAAnB,EAA2B;MACzB,MAAMmG,QAAQ,KAAKA,KAAnB;MACA,MAAMw/G,SAASx/G,MAAM+b,KAAN,CAAf;MACA,MAAMmxG,WAAW,EAAjB;MACA,IAAIzyH,CAAJ;;MAEA,QAAQ+kH,MAAR;QACE,KAAK,CAAL;UACE,KAAK/kH,IAAI,CAAT,EAAYA,IAAIZ,MAAhB,EAAwB,EAAEY,CAA1B,EAA6B;YAC3B,MAAM2G,KAAKpB,MAAM+b,KAAN,CAAX;YACAmxG,SAAStzH,IAATszH,CAAc9rH,EAAd8rH;UAHJ;;UAKE;;QACF,KAAK,CAAL;UACE,MAAM4D,cAAe9wH,MAAM+b,KAAN,KAAgB,CAAhB/b,GAAqBA,MAAM+b,KAAN,CAA1C;;UACA,KAAKthB,IAAI,CAAT,EAAYA,IAAIq2H,WAAhB,EAA6B,EAAEr2H,CAA/B,EAAkC;YAChC,IAAIukB,QAAShf,MAAM+b,KAAN,KAAgB,CAAhB/b,GAAqBA,MAAM+b,KAAN,CAAlC;;YACA,IAAIthB,MAAM,CAANA,IAAWukB,UAAU,CAAzB,EAA4B;cAC1BzhB,gBACE,8DACE,wBAFJA;cAIAyhB,QAAQ,CAARA;YAP8B;;YAShC,MAAMowG,UAAUpvH,MAAM+b,KAAN,CAAhB;YACA,MAAMo7C,OAAQn3D,MAAM+b,GAAN,KAAc,CAAd/b,GAAmBA,MAAM+b,MAAM,CAAZ,CAAjC;;YACA,KAAK,IAAIgF,IAAI/B,KAAb,EAAoB+B,IAAIo2C,IAAxB,EAA8B,EAAEp2C,CAAhC,EAAmC;cACjCmsG,SAAStzH,IAATszH,CAAckC,OAAdlC;YAZ8B;UAFpC;;UAkBEnxG,OAAO,CAAPA;UACA;;QACF;UACE,MAAM,IAAIjB,iBAAJ,CAAiB,kCAAiC0kG,MAAO,IAAzD,CAAN;MA5BJ;;MA8BA,IAAI0N,SAASrzH,MAATqzH,KAAoBrzH,MAAxB,EAAgC;QAC9B,MAAM,IAAIihB,iBAAJ,CAAgB,mCAAhB,CAAN;MArCuB;;MAwCzB,OAAO,IAAIm2G,WAAJ,CAAgBzR,MAAhB,EAAwB0N,QAAxB,CAAP;IAzvBY;;EAAA;;EA4vBhB,OAAO9E,SAAP;AA52BgB,CAAC,EAAnB;;;;AAg3BA,MAAMqD,GAAN,CAAU;EACRj0H,cAAc;IACZ,KAAKq2E,MAAL,GAAc,IAAd;IACA,KAAKusC,KAAL,GAAa,EAAb;IACA,KAAK8R,OAAL,GAAe,IAAf;IACA,KAAKjS,OAAL,GAAe,IAAIqU,UAAJ,EAAf;IACA,KAAKvC,eAAL,GAAuB,IAAvB;IAIA,KAAK5qG,QAAL,GAAgB,IAAhB;IACA,KAAKmoG,OAAL,GAAe,IAAf;IACA,KAAKiE,WAAL,GAAmB,IAAnB;IACA,KAAKP,OAAL,GAAe,EAAf;IACA,KAAKE,QAAL,GAAgB,IAAhB;IAEA,KAAKV,SAAL,GAAiB,KAAjB;EAhBM;;EAmBRnE,sBAAsB;IAIpB,IAAI,KAAKkF,WAAL,CAAiB1sE,KAAjB,IAA0B,KAA9B,EAAqC;MACnCtjD,gBAAK,2DAALA;MACA;IANkB;;IAQpB,MAAM2zH,YAAY,KAAK3D,WAAL,CAAiBzsH,GAAjB,CAAqB,CAArB,CAAlB;IACA,KAAKysH,WAAL,CAAiBzmG,GAAjB,CAAqBoqG,SAArB;;IACA,IAAI,KAAK1E,SAAT,EAAoB;MAClB,KAAKU,QAAL,CAAcA,QAAd,CAAuBtzH,IAAvB,CAA4B,KAAKszH,QAAL,CAAcA,QAAd,CAAuB,CAAvB,CAA5B;IAXkB;EAnBd;;EAkCRjE,WAAW7nH,EAAX,EAAe;IACb,IAAIA,KAAK,CAALA,IAAUA,MAAM,KAAKmsH,WAAL,CAAiB1sE,KAArC,EAA4C;MAC1C,OAAO,KAAP;IAFW;;IAIb,MAAMpJ,QAAQ,KAAK81E,WAAL,CAAiBzsH,GAAjB,CAAqBM,EAArB,CAAd;IACA,OAAOq2C,MAAM59C,MAAN49C,GAAe,CAAtB;EAvCM;;AAAA;;;;AA2CV,MAAMo2E,SAAN,CAAgB;EACdr2H,YAAY0hG,KAAZ,EAAmBC,KAAnB,EAA0Bw0B,OAA1B,EAAmCC,OAAnC,EAA4C;IAC1C,KAAK10B,KAAL,GAAaA,KAAb;IACA,KAAKC,KAAL,GAAaA,KAAb;IACA,KAAKw0B,OAAL,GAAeA,OAAf;IACA,KAAKC,OAAL,GAAeA,OAAf;EALY;;AAAA;;;;AAShB,MAAMU,UAAN,CAAiB;EACf92H,cAAc;IACZ,KAAKyiH,OAAL,GAAe,EAAf;EAFa;;EAKfn5G,IAAI0kC,KAAJ,EAAW;IACT,IAAIA,SAAS,CAATA,IAAcA,SAASslF,2BAA2B,CAAtD,EAAyD;MACvD,OAAOD,mBAAmBrlF,KAAnB,CAAP;IAFO;;IAIT,IAAIA,QAAQslF,wBAARtlF,IAAoC,KAAKy0E,OAAL,CAAapgH,MAArD,EAA6D;MAC3D,OAAO,KAAKogH,OAAL,CAAaz0E,QAAQslF,wBAArB,CAAP;IALO;;IAOT,OAAOD,mBAAmB,CAAnB,CAAP;EAZa;;EAefsG,OAAOx1G,GAAP,EAAY;IACV,IAAI6pB,QAAQqlF,mBAAmBnwH,OAAnBmwH,CAA2BlvG,GAA3BkvG,CAAZ;;IACA,IAAIrlF,UAAU,CAAC,CAAf,EAAkB;MAChB,OAAOA,KAAP;IAHQ;;IAKVA,QAAQ,KAAKy0E,OAAL,CAAav/G,OAAb,CAAqBihB,GAArB,CAAR6pB;;IACA,IAAIA,UAAU,CAAC,CAAf,EAAkB;MAChB,OAAOA,QAAQslF,wBAAf;IAPQ;;IASV,OAAO,CAAC,CAAR;EAxBa;;EA2BfhkG,IAAIppB,KAAJ,EAAW;IACT,KAAKu8G,OAAL,CAAargH,IAAb,CAAkB8D,KAAlB;EA5Ba;;EA+Bf,IAAImjD,KAAJ,GAAY;IACV,OAAO,KAAKo5D,OAAL,CAAapgH,MAApB;EAhCa;;AAAA;;;;AAoCjB,MAAMq0H,QAAN,CAAe;EACb12H,cAAc;IACZ,KAAK45H,OAAL,GAAe,EAAf;IACA,KAAKv3H,MAAL,GAAc,CAAd;EAHW;;EAMbitB,IAAInuB,IAAJ,EAAU;IACR,KAAKkB,MAAL,IAAelB,KAAKkB,MAApB;IACA,KAAKu3H,OAAL,CAAax3H,IAAb,CAAkBjB,IAAlB;EARW;;EAWbujB,IAAIspB,KAAJ,EAAW7sC,IAAX,EAAiB;IACf,KAAKkB,MAAL,IAAelB,KAAKkB,MAALlB,GAAc,KAAKy4H,OAAL,CAAa5rF,KAAb,EAAoB3rC,MAAjD;IACA,KAAKu3H,OAAL,CAAa5rF,KAAb,IAAsB7sC,IAAtB;EAbW;;EAgBbmI,IAAI0kC,KAAJ,EAAW;IACT,OAAO,KAAK4rF,OAAL,CAAa5rF,KAAb,CAAP;EAjBW;;EAoBb,IAAIqb,KAAJ,GAAY;IACV,OAAO,KAAKuwE,OAAL,CAAav3H,MAApB;EArBW;;AAAA;;;;AAyBf,MAAMw3H,OAAN,CAAc;EACZ75H,YAAYulH,MAAZ,EAAoB9C,OAApB,EAA6B;IAC3B,KAAKqX,YAAL,GAAoBvU,OAAOuU,YAA3B;IACA,KAAKC,YAAL,GAAoBxU,OAAOwU,YAA3B;IACA,KAAKC,QAAL,GAAgBzU,OAAOyU,QAAvB;IACA,KAAKC,KAAL,GAAa1U,OAAO0U,KAApB;IACA,KAAKC,OAAL,GAAe3U,OAAO2U,OAAtB;IACA,KAAKC,KAAL,GAAa5U,OAAO4U,KAApB;IACA,KAAK1X,OAAL,GAAeA,OAAf;IACA,KAAK10F,MAAL,GAAc1hB,OAAOC,MAAPD,CAAc,IAAdA,CAAd;EATU;;EAaZ6qH,SAASvqH,GAAT,EAAczG,KAAd,EAAqB;IACnB,IAAI,EAAEyG,OAAO,KAAKmtH,YAAd,CAAJ,EAAiC;MAC/B,OAAO,KAAP;IAFiB;;IAInB,MAAMM,cAAcl0H,MAAM7D,MAA1B;;IAEA,IAAI+3H,gBAAgB,CAApB,EAAuB;MACrB,OAAO,IAAP;IAPiB;;IAUnB,KAAK,IAAIn3H,IAAI,CAAb,EAAgBA,IAAIm3H,WAApB,EAAiCn3H,GAAjC,EAAsC;MACpC,IAAIs3B,MAAMr0B,MAAMjD,CAAN,CAAN,CAAJ,EAAqB;QACnB8C,gBAAK,6BAA6BG,KAA7B,GAAqC,aAArC,GAAqDyG,GAArD,GAA2D,IAAhE5G;QACA,OAAO,IAAP;MAHkC;IAVnB;;IAgBnB,MAAMgmB,OAAO,KAAKkuG,KAAL,CAAWttH,GAAX,CAAb;;IAEA,IAAIof,SAAS,KAATA,IAAkBA,SAAS,KAA3BA,IAAoCA,SAAS,QAAjD,EAA2D;MACzD7lB,QAAQA,MAAM,CAAN,CAARA;IAnBiB;;IAqBnB,KAAK6nB,MAAL,CAAYphB,GAAZ,IAAmBzG,KAAnB;IACA,OAAO,IAAP;EAnCU;;EAsCZm0H,UAAUp6H,IAAV,EAAgBiG,KAAhB,EAAuB;IACrB,IAAI,EAAEjG,QAAQ,KAAK85H,YAAf,CAAJ,EAAkC;MAChC,MAAM,IAAIz2G,iBAAJ,CAAiB,4BAA2BrjB,IAAK,GAAjD,CAAN;IAFmB;;IAIrB,KAAK8tB,MAAL,CAAY,KAAKgsG,YAAL,CAAkB95H,IAAlB,CAAZ,IAAuCiG,KAAvC;EA1CU;;EA6CZ+uH,QAAQh1H,IAAR,EAAc;IACZ,OAAO,KAAK85H,YAAL,CAAkB95H,IAAlB,KAA2B,KAAK8tB,MAAvC;EA9CU;;EAiDZm9B,UAAUjrD,IAAV,EAAgB;IACd,IAAI,EAAEA,QAAQ,KAAK85H,YAAf,CAAJ,EAAkC;MAChC,MAAM,IAAIz2G,iBAAJ,CAAiB,2BAA0BrjB,IAAK,GAAhD,CAAN;IAFY;;IAId,MAAM0M,MAAM,KAAKotH,YAAL,CAAkB95H,IAAlB,CAAZ;;IACA,IAAI,EAAE0M,OAAO,KAAKohB,MAAd,CAAJ,EAA2B;MACzB,OAAO,KAAKisG,QAAL,CAAcrtH,GAAd,CAAP;IANY;;IAQd,OAAO,KAAKohB,MAAL,CAAYphB,GAAZ,CAAP;EAzDU;;EA4DZwrH,aAAal4H,IAAb,EAAmB;IACjB,OAAO,KAAK8tB,MAAL,CAAY,KAAKgsG,YAAL,CAAkB95H,IAAlB,CAAZ,CAAP;EA7DU;;EAgEZ,OAAOq6H,YAAP,CAAoBC,MAApB,EAA4B;IAC1B,MAAMhV,SAAS;MACbuU,cAAc,EADD;MAEbC,cAAc,EAFD;MAGbC,UAAU,EAHG;MAIbC,OAAO,EAJM;MAKbC,SAAS,EALI;MAMbC,OAAO;IANM,CAAf;;IAQA,KAAK,IAAIl3H,IAAI,CAAR,EAAWiJ,KAAKquH,OAAOl4H,MAA5B,EAAoCY,IAAIiJ,EAAxC,EAA4C,EAAEjJ,CAA9C,EAAiD;MAC/C,MAAMs1B,QAAQgiG,OAAOt3H,CAAP,CAAd;MACA,MAAM0J,MAAMX,MAAMC,OAAND,CAAcusB,MAAM,CAAN,CAAdvsB,IACP,OAAM,CAAN,EAAS,CAATusB,KAAe,CAAf,IAAoBA,MAAM,CAAN,EAAS,CAATA,CADbvsB,GAERusB,MAAM,CAAN,CAFJ;MAGAgtF,OAAOuU,YAAPvU,CAAoB54G,GAApB44G,IAA2BhtF,MAAM,CAAN,CAA3BgtF;MACAA,OAAOwU,YAAPxU,CAAoBhtF,MAAM,CAAN,CAApBgtF,IAAgC54G,GAAhC44G;MACAA,OAAO0U,KAAP1U,CAAa54G,GAAb44G,IAAoBhtF,MAAM,CAAN,CAApBgtF;MACAA,OAAOyU,QAAPzU,CAAgB54G,GAAhB44G,IAAuBhtF,MAAM,CAAN,CAAvBgtF;MACAA,OAAO2U,OAAP3U,CAAe54G,GAAf44G,IAAsBv5G,MAAMC,OAAND,CAAcusB,MAAM,CAAN,CAAdvsB,IAA0BusB,MAAM,CAAN,CAA1BvsB,GAAqC,CAACusB,MAAM,CAAN,CAAD,CAA3DgtF;MACAA,OAAO4U,KAAP5U,CAAanjH,IAAbmjH,CAAkB54G,GAAlB44G;IAnBwB;;IAqB1B,OAAOA,MAAP;EArFU;;AAAA;;AAyFd,MAAMqP,aAAc,SAAS4F,iBAAT,GAA6B;EAC/C,MAAMD,SAAS,CACb,CAAC,CAAC,EAAD,EAAK,EAAL,CAAD,EAAW,KAAX,EAAkB,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAf,CAAlB,EAAyC,IAAzC,CADa,EAEb,CAAC,CAAC,EAAD,EAAK,EAAL,CAAD,EAAW,eAAX,EAA4B,KAA5B,EAAmC,IAAnC,CAFa,EAGb,CAAC,CAAD,EAAI,SAAJ,EAAe,KAAf,EAAsB,IAAtB,CAHa,EAIb,CAAC,CAAD,EAAI,QAAJ,EAAc,KAAd,EAAqB,IAArB,CAJa,EAKb,CAAC,CAAC,EAAD,EAAK,CAAL,CAAD,EAAU,WAAV,EAAuB,KAAvB,EAA8B,IAA9B,CALa,EAMb,CAAC,CAAD,EAAI,UAAJ,EAAgB,KAAhB,EAAuB,IAAvB,CANa,EAOb,CAAC,CAAD,EAAI,YAAJ,EAAkB,KAAlB,EAAyB,IAAzB,CAPa,EAQb,CAAC,CAAD,EAAI,QAAJ,EAAc,KAAd,EAAqB,IAArB,CARa,EASb,CAAC,CAAC,EAAD,EAAK,CAAL,CAAD,EAAU,cAAV,EAA0B,KAA1B,EAAiC,CAAjC,CATa,EAUb,CAAC,CAAC,EAAD,EAAK,CAAL,CAAD,EAAU,aAAV,EAAyB,KAAzB,EAAgC,CAAhC,CAVa,EAWb,CAAC,CAAC,EAAD,EAAK,CAAL,CAAD,EAAU,mBAAV,EAA+B,KAA/B,EAAsC,CAAC,GAAvC,CAXa,EAYb,CAAC,CAAC,EAAD,EAAK,CAAL,CAAD,EAAU,oBAAV,EAAgC,KAAhC,EAAuC,EAAvC,CAZa,EAab,CAAC,CAAC,EAAD,EAAK,CAAL,CAAD,EAAU,WAAV,EAAuB,KAAvB,EAA8B,CAA9B,CAba,EAcb,CAAC,CAAC,EAAD,EAAK,CAAL,CAAD,EAAU,gBAAV,EAA4B,KAA5B,EAAmC,CAAnC,CAda,EAgBb,CAAC,CAAC,EAAD,EAAK,CAAL,CAAD,EAAU,YAAV,EAAwB,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAf,EAAsB,KAAtB,EAA6B,KAA7B,EAAoC,KAApC,CAAxB,EACwB,CAAC,KAAD,EAAQ,CAAR,EAAW,CAAX,EAAc,KAAd,EAAqB,CAArB,EAAwB,CAAxB,CADxB,CAhBa,EAkBb,CAAC,EAAD,EAAK,UAAL,EAAiB,KAAjB,EAAwB,IAAxB,CAlBa,EAmBb,CAAC,CAAD,EAAI,UAAJ,EAAgB,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAf,EAAsB,KAAtB,CAAhB,EAA8C,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAA9C,CAnBa,EAoBb,CAAC,CAAC,EAAD,EAAK,CAAL,CAAD,EAAU,aAAV,EAAyB,KAAzB,EAAgC,CAAhC,CApBa,EAqBb,CAAC,EAAD,EAAK,MAAL,EAAa,OAAb,EAAsB,IAAtB,CArBa,EAsBb,CAAC,EAAD,EAAK,SAAL,EAAgB,QAAhB,EAA0B,CAA1B,CAtBa,EAuBb,CAAC,EAAD,EAAK,UAAL,EAAiB,QAAjB,EAA2B,CAA3B,CAvBa,EAwBb,CAAC,EAAD,EAAK,aAAL,EAAoB,QAApB,EAA8B,CAA9B,CAxBa,EAyBb,CAAC,EAAD,EAAK,SAAL,EAAgB,CAAC,QAAD,EAAW,QAAX,CAAhB,EAAsC,IAAtC,CAzBa,EA0Bb,CAAC,CAAC,EAAD,EAAK,EAAL,CAAD,EAAW,YAAX,EAAyB,KAAzB,EAAgC,IAAhC,CA1Ba,EA2Bb,CAAC,CAAC,EAAD,EAAK,EAAL,CAAD,EAAW,cAAX,EAA2B,KAA3B,EAAkC,IAAlC,CA3Ba,EA4Bb,CAAC,CAAC,EAAD,EAAK,EAAL,CAAD,EAAW,eAAX,EAA4B,OAA5B,EAAqC,IAArC,CA5Ba,EA6Bb,CAAC,CAAC,EAAD,EAAK,EAAL,CAAD,EAAW,gBAAX,EAA6B,KAA7B,EAAoC,CAApC,CA7Ba,EA8Bb,CAAC,CAAC,EAAD,EAAK,EAAL,CAAD,EAAW,iBAAX,EAA8B,KAA9B,EAAqC,CAArC,CA9Ba,EA+Bb,CAAC,CAAC,EAAD,EAAK,EAAL,CAAD,EAAW,aAAX,EAA0B,KAA1B,EAAiC,CAAjC,CA/Ba,EAgCb,CAAC,CAAC,EAAD,EAAK,EAAL,CAAD,EAAW,UAAX,EAAuB,KAAvB,EAA8B,IAA9B,CAhCa,EAiCb,CAAC,CAAC,EAAD,EAAK,EAAL,CAAD,EAAW,SAAX,EAAsB,KAAtB,EAA6B,IAA7B,CAjCa,EAoCb,CAAC,CAAC,EAAD,EAAK,EAAL,CAAD,EAAW,UAAX,EAAuB,QAAvB,EAAiC,IAAjC,CApCa,EAqCb,CAAC,CAAC,EAAD,EAAK,EAAL,CAAD,EAAW,SAAX,EAAsB,QAAtB,EAAgC,IAAhC,CArCa,EAsCb,CAAC,CAAC,EAAD,EAAK,EAAL,CAAD,EAAW,UAAX,EAAuB,KAAvB,EAA8B,IAA9B,CAtCa,CAAf;EAwCA,IAAIhV,SAAS,IAAb;;EAGA,MAAMqP,UAAN,SAAyBiF,OAAzB,CAAiC;IAC/B75H,YAAYyiH,OAAZ,EAAqB;MACnB,IAAI8C,WAAW,IAAf,EAAqB;QACnBA,SAASsU,QAAQS,YAART,CAAqBU,MAArBV,CAATtU;MAFiB;;MAInB,MAAMA,MAAN,EAAc9C,OAAd;MACA,KAAKwT,WAAL,GAAmB,IAAnB;IAN6B;;EAAA;;EASjC,OAAOrB,UAAP;AArDiB,CAAC,EAApB;;;;AAwDA,MAAMqD,iBAAkB,SAASwC,qBAAT,GAAiC;EACvD,MAAMF,SAAS,CACb,CAAC,CAAD,EAAI,YAAJ,EAAkB,OAAlB,EAA2B,IAA3B,CADa,EAEb,CAAC,CAAD,EAAI,YAAJ,EAAkB,OAAlB,EAA2B,IAA3B,CAFa,EAGb,CAAC,CAAD,EAAI,aAAJ,EAAmB,OAAnB,EAA4B,IAA5B,CAHa,EAIb,CAAC,CAAD,EAAI,kBAAJ,EAAwB,OAAxB,EAAiC,IAAjC,CAJa,EAKb,CAAC,CAAC,EAAD,EAAK,CAAL,CAAD,EAAU,WAAV,EAAuB,KAAvB,EAA8B,QAA9B,CALa,EAMb,CAAC,CAAC,EAAD,EAAK,EAAL,CAAD,EAAW,WAAX,EAAwB,KAAxB,EAA+B,CAA/B,CANa,EAOb,CAAC,CAAC,EAAD,EAAK,EAAL,CAAD,EAAW,UAAX,EAAuB,KAAvB,EAA8B,CAA9B,CAPa,EAQb,CAAC,EAAD,EAAK,OAAL,EAAc,KAAd,EAAqB,IAArB,CARa,EASb,CAAC,EAAD,EAAK,OAAL,EAAc,KAAd,EAAqB,IAArB,CATa,EAUb,CAAC,CAAC,EAAD,EAAK,EAAL,CAAD,EAAW,WAAX,EAAwB,OAAxB,EAAiC,IAAjC,CAVa,EAWb,CAAC,CAAC,EAAD,EAAK,EAAL,CAAD,EAAW,WAAX,EAAwB,OAAxB,EAAiC,IAAjC,CAXa,EAYb,CAAC,CAAC,EAAD,EAAK,EAAL,CAAD,EAAW,WAAX,EAAwB,KAAxB,EAA+B,CAA/B,CAZa,EAab,CAAC,CAAC,EAAD,EAAK,EAAL,CAAD,EAAW,eAAX,EAA4B,KAA5B,EAAmC,CAAnC,CAba,EAcb,CAAC,CAAC,EAAD,EAAK,EAAL,CAAD,EAAW,iBAAX,EAA8B,KAA9B,EAAqC,IAArC,CAda,EAeb,CAAC,CAAC,EAAD,EAAK,EAAL,CAAD,EAAW,mBAAX,EAAgC,KAAhC,EAAuC,CAAvC,CAfa,EAgBb,CAAC,EAAD,EAAK,eAAL,EAAsB,KAAtB,EAA6B,CAA7B,CAhBa,EAiBb,CAAC,EAAD,EAAK,eAAL,EAAsB,KAAtB,EAA6B,CAA7B,CAjBa,EAkBb,CAAC,EAAD,EAAK,OAAL,EAAc,QAAd,EAAwB,IAAxB,CAlBa,CAAf;EAoBA,IAAIhV,SAAS,IAAb;;EAGA,MAAM0S,cAAN,SAA6B4B,OAA7B,CAAqC;IACnC75H,YAAYyiH,OAAZ,EAAqB;MACnB,IAAI8C,WAAW,IAAf,EAAqB;QACnBA,SAASsU,QAAQS,YAART,CAAqBU,MAArBV,CAATtU;MAFiB;;MAInB,MAAMA,MAAN,EAAc9C,OAAd;MACA,KAAKyT,UAAL,GAAkB,IAAlB;IANiC;;EAAA;;EASrC,OAAO+B,cAAP;AAjCqB,CAAC,EAAxB;;;AAoCA,MAAMQ,4BAA4B;EAChCC,WAAW,CADqB;EAEhCE,QAAQ,CAFwB;EAGhCE,eAAe;AAHiB,CAAlC;;AAMA,MAAMN,UAAN,CAAiB;EACfx4H,YAAYg5H,UAAZ,EAAwBhR,MAAxB,EAAgC8J,OAAhC,EAAyC1zD,GAAzC,EAA8C;IAC5C,KAAK46D,UAAL,GAAkBA,UAAlB;IACA,KAAKhR,MAAL,GAAcA,MAAd;IACA,KAAK8J,OAAL,GAAeA,OAAf;IACA,KAAK1zD,GAAL,GAAWA,GAAX;EALa;;AAAA;;;;AASjB,MAAMo7D,WAAN,CAAkB;EAChBx5H,YAAYg5H,UAAZ,EAAwBhR,MAAxB,EAAgCr+F,QAAhC,EAA0Cy0C,GAA1C,EAA+C;IAC7C,KAAK46D,UAAL,GAAkBA,UAAlB;IACA,KAAKhR,MAAL,GAAcA,MAAd;IACA,KAAKr+F,QAAL,GAAgBA,QAAhB;IACA,KAAKy0C,GAAL,GAAWA,GAAX;EALc;;AAAA;;AASlB,MAAMq7D,WAAN,CAAkB;EAChBz5H,YAAYgoH,MAAZ,EAAoB0N,QAApB,EAA8B;IAC5B,KAAK1N,MAAL,GAAcA,MAAd;IACA,KAAK0N,QAAL,GAAgBA,QAAhB;EAHc;;EAMhBmC,WAAW/pF,UAAX,EAAuB;IACrB,IAAIA,aAAa,CAAbA,IAAkBA,cAAc,KAAK4nF,QAAL,CAAcrzH,MAAlD,EAA0D;MACxD,OAAO,CAAC,CAAR;IAFmB;;IAIrB,OAAO,KAAKqzH,QAAL,CAAc5nF,UAAd,CAAP;EAVc;;AAAA;;;;AAgBlB,MAAM4sF,gBAAN,CAAuB;EACrB16H,cAAc;IACZ,KAAK4oH,OAAL,GAAev8G,OAAOC,MAAPD,CAAc,IAAdA,CAAf;EAFmB;;EAKrBsuH,WAAWhuH,GAAX,EAAgB;IACd,OAAOA,OAAO,KAAKi8G,OAAnB;EANmB;;EASrBgS,MAAMjuH,GAAN,EAAWkuH,QAAX,EAAqB;IACnB,IAAIluH,OAAO,KAAKi8G,OAAhB,EAAyB;MACvB,MAAM,IAAItlG,iBAAJ,CAAiB,gCAA+B3W,GAAhC,EAAhB,CAAN;IAFiB;;IAInB,KAAKi8G,OAAL,CAAaj8G,GAAb,IAAoBkuH,QAApB;EAbmB;;EAgBrBpjG,OAAOvxB,KAAP,EAAc;IACZ,WAAWyG,GAAX,IAAkB,KAAKi8G,OAAvB,EAAgC;MAC9B,KAAKA,OAAL,CAAaj8G,GAAb,KAAqBzG,KAArB;IAFU;EAhBO;;EAsBrB40H,iBAAiBnuH,GAAjB,EAAsBohB,MAAtB,EAA8B01E,MAA9B,EAAsC;IACpC,IAAI,EAAE92F,OAAO,KAAKi8G,OAAd,CAAJ,EAA4B;MAC1B,MAAM,IAAItlG,iBAAJ,CAAiB,4BAA2B3W,GAA5B,EAAhB,CAAN;IAFkC;;IAIpC,MAAMxL,OAAOsiG,OAAOtiG,IAApB;IACA,MAAM45H,aAAa,KAAKnS,OAAL,CAAaj8G,GAAb,CAAnB;IACA,MAAM0gB,OAAO,CAAb;;IACA,KAAK,IAAIpqB,IAAI,CAAR,EAAWiJ,KAAK6hB,OAAO1rB,MAA5B,EAAoCY,IAAIiJ,EAAxC,EAA4C,EAAEjJ,CAA9C,EAAiD;MAC/C,MAAM8xF,UAAU9xF,IAAIoqB,IAAJpqB,GAAW83H,UAA3B;MACA,MAAMC,UAAUjmC,UAAU,CAA1B;MACA,MAAMkmC,UAAUlmC,UAAU,CAA1B;MACA,MAAMmmC,UAAUnmC,UAAU,CAA1B;MACA,MAAMomC,UAAUpmC,UAAU,CAA1B;;MAEA,IACE5zF,KAAK4zF,OAAL,MAAkB,IAAlB5zF,IACAA,KAAK65H,OAAL,MAAkB,CADlB75H,IAEAA,KAAK85H,OAAL,MAAkB,CAFlB95H,IAGAA,KAAK+5H,OAAL,MAAkB,CAHlB/5H,IAIAA,KAAKg6H,OAAL,MAAkB,CALpB,EAME;QACA,MAAM,IAAI73G,iBAAJ,CAAgB,wCAAhB,CAAN;MAd6C;;MAgB/C,MAAMpd,QAAQ6nB,OAAO9qB,CAAP,CAAd;MACA9B,KAAK4zF,OAAL,IAAgB,IAAhB5zF;MACAA,KAAK65H,OAAL,IAAiB90H,SAAS,EAATA,GAAe,IAAhC/E;MACAA,KAAK85H,OAAL,IAAiB/0H,SAAS,EAATA,GAAe,IAAhC/E;MACAA,KAAK+5H,OAAL,IAAiBh1H,SAAS,CAATA,GAAc,IAA/B/E;MACAA,KAAKg6H,OAAL,IAAgBj1H,QAAQ,IAAxB/E;IA5BkC;EAtBjB;;AAAA;;AAwDvB,MAAM4vH,WAAN,CAAkB;EAChB/wH,YAAY8jH,GAAZ,EAAiB;IACf,KAAKA,GAAL,GAAWA,GAAX;EAFc;;EAKhBkN,UAAU;IACR,MAAMlN,MAAM,KAAKA,GAAjB;IACA,MAAMrgB,SAAS;MACbtiG,MAAM,EADO;MAEbkB,QAAQ,CAFK;MAGbitB,KAAK,SAAS8rG,eAAT,CAAyBj6H,IAAzB,EAA+B;QAClC,KAAKA,IAAL,GAAY,KAAKA,IAAL,CAAUwK,MAAV,CAAiBxK,IAAjB,CAAZ;QACA,KAAKkB,MAAL,GAAc,KAAKlB,IAAL,CAAUkB,MAAxB;MALW;IAAA,CAAf;IAUA,MAAMg0E,SAAS,KAAKglD,aAAL,CAAmBvX,IAAIztC,MAAvB,CAAf;IACAotB,OAAOn0E,GAAPm0E,CAAWptB,MAAXotB;IAEA,MAAM8pB,YAAY,KAAK+N,gBAAL,CAAsBxX,IAAIlB,KAA1B,CAAlB;IACAnf,OAAOn0E,GAAPm0E,CAAW8pB,SAAX9pB;;IAEA,IAAIqgB,IAAIkR,SAAR,EAAmB;MAajB,IAAIlR,IAAI4Q,OAAJ5Q,CAAYmR,OAAZnR,CAAoB,YAApBA,CAAJ,EAAuC;QACrC,MAAMl3D,OAAOk3D,IAAI4Q,OAAJ5Q,CAAY54D,SAAZ44D,CAAsB,YAAtBA,CAAb;QACAA,IAAI4Q,OAAJ5Q,CAAYqU,YAAZrU,CAAyB,YAAzBA;;QACA,KAAK,IAAI7gH,IAAI,CAAR,EAAWiJ,KAAK43G,IAAI0R,OAAJ1R,CAAYzhH,MAAjC,EAAyCY,IAAIiJ,EAA7C,EAAiDjJ,GAAjD,EAAsD;UACpD,MAAM2rB,UAAUk1F,IAAI0R,OAAJ1R,CAAY7gH,CAAZ6gH,CAAhB;UACA,IAAI3tE,SAASyW,KAAK7lC,KAAL6lC,CAAW,CAAXA,CAAb;;UACA,IAAIh+B,QAAQqmG,OAARrmG,CAAgB,YAAhBA,CAAJ,EAAmC;YACjCunB,SAASvwB,WAAKnL,SAALmL,CAAeuwB,MAAfvwB,EAAuBgJ,QAAQs8B,SAARt8B,CAAkB,YAAlBA,CAAvBhJ,CAATuwB;UAJkD;;UAMpDvnB,QAAQyrG,SAARzrG,CAAkB,YAAlBA,EAAgCunB,MAAhCvnB;QATmC;MAbtB;IAlBX;;IA6CR,MAAM2sG,OAAOzX,IAAI4Q,OAAJ5Q,CAAY54D,SAAZ44D,CAAsB,MAAtBA,CAAb;;IACA,IAAIyX,QAAQA,KAAKl5H,MAALk5H,GAAc,EAA1B,EAA8B;MAE5BzX,IAAI4Q,OAAJ5Q,CAAYqU,YAAZrU,CAAyB,MAAzBA;IAhDM;;IAmDRA,IAAI4Q,OAAJ5Q,CAAYuW,SAAZvW,CAAsB,SAAtBA,EAAiC,CAAjCA;IACA,IAAI0X,WAAW,KAAKC,eAAL,CACb,CAAC3X,IAAI4Q,OAAL,CADa,EAEbjxB,OAAOphG,MAFM,EAGbyhH,IAAIkR,SAHS,CAAf;IAKAvxB,OAAOn0E,GAAPm0E,CAAW+3B,SAAS/3B,MAApBA;IACA,MAAMi4B,iBAAiBF,SAASG,QAATH,CAAkB,CAAlBA,CAAvB;IAEA,MAAMlH,cAAc,KAAKsH,kBAAL,CAAwB9X,IAAIrB,OAAJqB,CAAYrB,OAApC,CAApB;IACAhf,OAAOn0E,GAAPm0E,CAAW6wB,WAAX7wB;IAEA,MAAM8wB,kBAAkB,KAAKsH,YAAL,CAAkB/X,IAAIyQ,eAAtB,CAAxB;IACA9wB,OAAOn0E,GAAPm0E,CAAW8wB,eAAX9wB;;IAGA,IAAIqgB,IAAIn6F,QAAJm6F,IAAgBA,IAAI4Q,OAAJ5Q,CAAYmR,OAAZnR,CAAoB,UAApBA,CAApB,EAAqD;MACnD,IAAIA,IAAIn6F,QAAJm6F,CAAakV,UAAjB,EAA6B;QAC3B0C,eAAeZ,gBAAfY,CACE,UADFA,EAEE,CAAC5X,IAAIn6F,QAAJm6F,CAAakE,MAAd,CAFF0T,EAGEj4B,MAHFi4B;MADF,OAMO;QACL,MAAM/xG,WAAW,KAAKmyG,eAAL,CAAqBhY,IAAIn6F,QAAzB,CAAjB;QACA+xG,eAAeZ,gBAAfY,CAAgC,UAAhCA,EAA4C,CAACj4B,OAAOphG,MAAR,CAA5Cq5H,EAA6Dj4B,MAA7Di4B;QACAj4B,OAAOn0E,GAAPm0E,CAAW95E,QAAX85E;MAViD;IAnE7C;;IAgFR,MAAMquB,UAAU,KAAKiK,cAAL,CACdjY,IAAIgO,OADU,EAEdhO,IAAIiS,WAAJjS,CAAgBz6D,KAFF,EAGdy6D,IAAIrB,OAHU,EAIdqB,IAAIkR,SAJU,CAAhB;IAMA0G,eAAeZ,gBAAfY,CAAgC,SAAhCA,EAA2C,CAACj4B,OAAOphG,MAAR,CAA3Cq5H,EAA4Dj4B,MAA5Di4B;IACAj4B,OAAOn0E,GAAPm0E,CAAWquB,OAAXruB;IAEA,MAAMsyB,cAAc,KAAKiG,kBAAL,CAAwBlY,IAAIiS,WAA5B,CAApB;IACA2F,eAAeZ,gBAAfY,CAAgC,aAAhCA,EAA+C,CAACj4B,OAAOphG,MAAR,CAA/Cq5H,EAAgEj4B,MAAhEi4B;IACAj4B,OAAOn0E,GAAPm0E,CAAWsyB,WAAXtyB;;IAEA,IAAIqgB,IAAIkR,SAAR,EAAmB;MAGjB0G,eAAeZ,gBAAfY,CAAgC,UAAhCA,EAA4C,CAACj4B,OAAOphG,MAAR,CAA5Cq5H,EAA6Dj4B,MAA7Di4B;MACA,MAAMhG,WAAW,KAAKuG,eAAL,CAAqBnY,IAAI4R,QAAzB,CAAjB;MACAjyB,OAAOn0E,GAAPm0E,CAAWiyB,QAAXjyB;MAGA+3B,WAAW,KAAKC,eAAL,CAAqB3X,IAAI0R,OAAzB,EAAkC/xB,OAAOphG,MAAzC,EAAiD,IAAjD,CAAXm5H;MACAE,eAAeZ,gBAAfY,CAAgC,SAAhCA,EAA2C,CAACj4B,OAAOphG,MAAR,CAA3Cq5H,EAA4Dj4B,MAA5Di4B;MACAj4B,OAAOn0E,GAAPm0E,CAAW+3B,SAAS/3B,MAApBA;MACA,MAAMy4B,mBAAmBV,SAASG,QAAlC;MAEA,KAAKQ,mBAAL,CAAyBrY,IAAI0R,OAA7B,EAAsC0G,gBAAtC,EAAwDz4B,MAAxD;IA1GM;;IA6GR,KAAK04B,mBAAL,CAAyB,CAACrY,IAAI4Q,OAAL,CAAzB,EAAwC,CAACgH,cAAD,CAAxC,EAA0Dj4B,MAA1D;IAIAA,OAAOn0E,GAAPm0E,CAAW,CAAC,CAAD,CAAXA;IAEA,OAAOA,OAAOtiG,IAAd;EAxHc;;EA2HhBi7H,aAAal2H,KAAb,EAAoB;IAClB,IAAIkb,OAAOC,SAAPD,CAAiBlb,KAAjBkb,CAAJ,EAA6B;MAC3B,OAAO,KAAKi7G,aAAL,CAAmBn2H,KAAnB,CAAP;IAFgB;;IAIlB,OAAO,KAAKo2H,WAAL,CAAiBp2H,KAAjB,CAAP;EA/Hc;;EAkIhB,WAAWq2H,iBAAX,GAA+B;IAC7B,OAAO75G,kBACL,IADKA,EAEL,mBAFKA,EAGL,+CAHKA,CAAP;EAnIc;;EA0IhB45G,YAAY/yH,GAAZ,EAAiB;IACf,IAAIrD,QAAQqD,IAAI7B,QAAJ6B,EAAZ;IAGA,MAAMgd,IAAIwqG,YAAYwL,iBAAZxL,CAA8Bl2F,IAA9Bk2F,CAAmC7qH,KAAnC6qH,CAAV;;IACA,IAAIxqG,CAAJ,EAAO;MACL,MAAMuiF,UAAUxuE,WAAW,QAAS,GAAE,CAAF,IAAO,CAAC/T,EAAE,CAAF,CAARA,GAAe,CAAf,IAAoBA,EAAE,CAAF,EAAKlkB,MAAlC,CAAX,CAAhB;MACA6D,QAAS,MAAK+6C,KAAL36C,CAAWiD,MAAMu/F,OAAjBxiG,IAA4BwiG,OAA5B,EAAqCphG,QAArC,EAATxB;IAPa;;IAUf,IAAIs2H,UAAU,EAAd;IACA,IAAIv5H,CAAJ,EAAOiJ,EAAP;;IACA,KAAKjJ,IAAI,CAAJA,EAAOiJ,KAAKhG,MAAM7D,MAAvB,EAA+BY,IAAIiJ,EAAnC,EAAuC,EAAEjJ,CAAzC,EAA4C;MAC1C,MAAMwI,IAAIvF,MAAMjD,CAAN,CAAV;;MACA,IAAIwI,MAAM,GAAV,EAAe;QACb+wH,WAAWt2H,MAAM,EAAEjD,CAAR,MAAe,GAAfiD,GAAqB,GAArBA,GAA2B,GAAtCs2H;MADF,OAEO,IAAI/wH,MAAM,GAAV,EAAe;QACpB+wH,WAAW,GAAXA;MADK,OAEA,IAAI/wH,MAAM,GAAV,EAAe;QACpB+wH,WAAW,GAAXA;MADK,OAEA;QACLA,WAAW/wH,CAAX+wH;MATwC;IAZ7B;;IAwBfA,WAAWA,QAAQn6H,MAARm6H,GAAiB,CAAjBA,GAAqB,GAArBA,GAA2B,IAAtCA;IACA,MAAM/nD,MAAM,CAAC,EAAD,CAAZ;;IACA,KAAKxxE,IAAI,CAAJA,EAAOiJ,KAAKswH,QAAQn6H,MAAzB,EAAiCY,IAAIiJ,EAArC,EAAyCjJ,KAAK,CAA9C,EAAiD;MAC/CwxE,IAAIryE,IAAJqyE,CAASt8C,SAASqkG,QAAQnkG,SAARmkG,CAAkBv5H,CAAlBu5H,EAAqBv5H,IAAI,CAAzBu5H,CAAT,EAAsC,EAAtC,CAAT/nD;IA3Ba;;IA6Bf,OAAOA,GAAP;EAvKc;;EA0KhB4nD,cAAcn2H,KAAd,EAAqB;IACnB,IAAIe,IAAJ;;IACA,IAAIf,SAAS,CAAC,GAAVA,IAAiBA,SAAS,GAA9B,EAAmC;MACjCe,OAAO,CAACf,QAAQ,GAAT,CAAPe;IADF,OAEO,IAAIf,SAAS,GAATA,IAAgBA,SAAS,IAA7B,EAAmC;MACxCA,SAAS,GAATA;MACAe,OAAO,CAAE,UAAS,CAAT,IAAc,GAAhB,EAAqBf,QAAQ,IAA7B,CAAPe;IAFK,OAGA,IAAIf,SAAS,CAAC,IAAVA,IAAkBA,SAAS,CAAC,GAAhC,EAAqC;MAC1CA,QAAQ,CAACA,KAAD,GAAS,GAAjBA;MACAe,OAAO,CAAE,UAAS,CAAT,IAAc,GAAhB,EAAqBf,QAAQ,IAA7B,CAAPe;IAFK,OAGA,IAAIf,SAAS,CAAC,KAAVA,IAAmBA,SAAS,KAAhC,EAAuC;MAC5Ce,OAAO,CAAC,IAAD,EAAQf,SAAS,CAATA,GAAc,IAAtB,EAA4BA,QAAQ,IAApC,CAAPe;IADK,OAEA;MACLA,OAAO,CACL,IADK,EAEJf,SAAS,EAATA,GAAe,IAFX,EAGJA,SAAS,EAATA,GAAe,IAHX,EAIJA,SAAS,CAATA,GAAc,IAJV,EAKLA,QAAQ,IALH,CAAPe;IAbiB;;IAqBnB,OAAOA,IAAP;EA/Lc;;EAkMhBo0H,cAAchlD,MAAd,EAAsB;IAGpB,OAAO,CAACA,OAAOqrB,KAAR,EAAerrB,OAAOsrB,KAAtB,EAA6B,CAA7B,EAAgCtrB,OAAO+/C,OAAvC,CAAP;EArMc;;EAwMhBkF,iBAAiB1Y,KAAjB,EAAwB;IACtB,MAAM2K,YAAY,IAAImJ,QAAJ,EAAlB;;IACA,KAAK,IAAIzzH,IAAI,CAAR,EAAWiJ,KAAK02G,MAAMvgH,MAA3B,EAAmCY,IAAIiJ,EAAvC,EAA2C,EAAEjJ,CAA7C,EAAgD;MAC9C,MAAMhD,OAAO2iH,MAAM3/G,CAAN,CAAb;MAEA,MAAMZ,SAASiE,KAAKyd,GAALzd,CAASrG,KAAKoC,MAAdiE,EAAsB,GAAtBA,CAAf;MACA,IAAIm2H,gBAAgB,IAAIzwH,KAAJ,CAAU3J,MAAV,CAApB;;MACA,KAAK,IAAIknB,IAAI,CAAb,EAAgBA,IAAIlnB,MAApB,EAA4BknB,GAA5B,EAAiC;QAG/B,IAAIgB,OAAOtqB,KAAKspB,CAAL,CAAX;;QACA,IACEgB,OAAO,GAAPA,IACAA,OAAO,GADPA,IAEAA,SAAS,GAFTA,IAGAA,SAAS,GAHTA,IAIAA,SAAS,GAJTA,IAKAA,SAAS,GALTA,IAMAA,SAAS,GANTA,IAOAA,SAAS,GAPTA,IAQAA,SAAS,GARTA,IASAA,SAAS,GATTA,IAUAA,SAAS,GAVTA,IAWAA,SAAS,GAZX,EAaE;UACAA,OAAO,GAAPA;QAlB6B;;QAoB/BkyG,cAAclzG,CAAd,IAAmBgB,IAAnBkyG;MAzB4C;;MA2B9CA,gBAAgBA,cAAcn6H,IAAdm6H,CAAmB,EAAnBA,CAAhBA;;MAEA,IAAIA,kBAAkB,EAAtB,EAA0B;QACxBA,gBAAgB,eAAhBA;MA9B4C;;MAgC9ClP,UAAUj+F,GAAVi+F,CAAcrpG,yBAAcu4G,aAAdv4G,CAAdqpG;IAlCoB;;IAoCtB,OAAO,KAAKsO,YAAL,CAAkBtO,SAAlB,CAAP;EA5Oc;;EA+OhBkO,gBAAgBiB,KAAhB,EAAuBr6H,MAAvB,EAA+Bs6H,aAA/B,EAA8C;IAC5C,MAAMT,mBAAmB,EAAzB;IACA,IAAI7G,eAAe,IAAIqB,QAAJ,EAAnB;;IACA,KAAK,IAAIzzH,IAAI,CAAR,EAAWiJ,KAAKwwH,MAAMr6H,MAA3B,EAAmCY,IAAIiJ,EAAvC,EAA2C,EAAEjJ,CAA7C,EAAgD;MAC9C,MAAMsyH,WAAWmH,MAAMz5H,CAAN,CAAjB;;MACA,IAAI05H,aAAJ,EAAmB;QACjBpH,SAAS4C,YAAT5C,CAAsB,gBAAtBA;QACAA,SAAS4C,YAAT5C,CAAsB,iBAAtBA;QACAA,SAAS4C,YAAT5C,CAAsB,aAAtBA;QACAA,SAAS4C,YAAT5C,CAAsB,UAAtBA;QACAA,SAAS4C,YAAT5C,CAAsB,SAAtBA;MAP4C;;MAS9C,MAAMqH,kBAAkB,IAAIlC,gBAAJ,EAAxB;MACA,MAAMmC,eAAe,KAAKC,WAAL,CAAiBvH,QAAjB,EAA2BqH,eAA3B,CAArB;MACAV,iBAAiB95H,IAAjB85H,CAAsBU,eAAtBV;MACA7G,aAAa/lG,GAAb+lG,CAAiBwH,YAAjBxH;MACAuH,gBAAgBnlG,MAAhBmlG,CAAuBv6H,MAAvBu6H;IAhB0C;;IAkB5CvH,eAAe,KAAKwG,YAAL,CAAkBxG,YAAlB,EAAgC6G,gBAAhC,CAAf7G;IACA,OAAO;MACLsG,UAAUO,gBADL;MAELz4B,QAAQ4xB;IAFH,CAAP;EAlQc;;EAwQhB8G,oBAAoBO,KAApB,EAA2Bf,QAA3B,EAAqCl4B,MAArC,EAA6C;IAC3C,KAAK,IAAIxgG,IAAI,CAAR,EAAWiJ,KAAKwwH,MAAMr6H,MAA3B,EAAmCY,IAAIiJ,EAAvC,EAA2C,EAAEjJ,CAA7C,EAAgD;MAC9C,MAAMsyH,WAAWmH,MAAMz5H,CAAN,CAAjB;MACA,MAAMgzH,cAAcV,SAASU,WAA7B;;MACA,IAAI,CAACA,WAAD,IAAgB,CAACV,SAASN,OAATM,CAAiB,SAAjBA,CAArB,EAAkD;QAChD,MAAM,IAAIjyG,iBAAJ,CAAgB,qCAAhB,CAAN;MAJ4C;;MAM9C,MAAMy5G,qBAAqB,IAAIrC,gBAAJ,EAA3B;MACA,MAAMsC,kBAAkB,KAAKF,WAAL,CAAiB7G,WAAjB,EAA8B8G,kBAA9B,CAAxB;MAEA,IAAIE,eAAex5B,OAAOphG,MAA1B;MACA06H,mBAAmBtlG,MAAnBslG,CAA0BE,YAA1BF;;MACA,IAAI,CAACC,gBAAgB36H,MAArB,EAA6B;QAI3B46H,eAAe,CAAfA;MAf4C;;MAkB9CtB,SAAS14H,CAAT,EAAY63H,gBAAZa,CACE,SADFA,EAEE,CAACqB,gBAAgB36H,MAAjB,EAAyB46H,YAAzB,CAFFtB,EAGEl4B,MAHFk4B;MAKAl4B,OAAOn0E,GAAPm0E,CAAWu5B,eAAXv5B;;MAEA,IAAIwyB,YAAYC,UAAZD,IAA0BA,YAAYhB,OAAZgB,CAAoB,OAApBA,CAA9B,EAA4D;QAC1D,MAAMiH,QAAQ,KAAKrB,YAAL,CAAkB5F,YAAYC,UAA9B,CAAd;QACA6G,mBAAmBjC,gBAAnBiC,CACE,OADFA,EAEE,CAACC,gBAAgB36H,MAAjB,CAFF06H,EAGEt5B,MAHFs5B;QAKAt5B,OAAOn0E,GAAPm0E,CAAWy5B,KAAXz5B;MAhC4C;IADL;EAxQ7B;;EA8ShBq5B,YAAYpuG,IAAZ,EAAkByuG,aAAlB,EAAiC;IAC/B,IAAI1oD,MAAM,EAAV;IAEA,MAAM0lD,QAAQzrG,KAAKyrG,KAAnB;;IACA,KAAK,IAAIl3H,IAAI,CAAb,EAAgBA,IAAIk3H,MAAM93H,MAA1B,EAAkC,EAAEY,CAApC,EAAuC;MACrC,MAAM0J,MAAMwtH,MAAMl3H,CAAN,CAAZ;;MACA,IAAI,EAAE0J,OAAO+hB,KAAKX,MAAd,CAAJ,EAA2B;QACzB;MAHmC;;MAKrC,IAAIA,SAASW,KAAKX,MAALW,CAAY/hB,GAAZ+hB,CAAb;MACA,IAAIurG,QAAQvrG,KAAKurG,KAALvrG,CAAW/hB,GAAX+hB,CAAZ;;MACA,IAAI,CAAC1iB,MAAMC,OAAND,CAAciuH,KAAdjuH,CAAL,EAA2B;QACzBiuH,QAAQ,CAACA,KAAD,CAARA;MARmC;;MAUrC,IAAI,CAACjuH,MAAMC,OAAND,CAAc+hB,MAAd/hB,CAAL,EAA4B;QAC1B+hB,SAAS,CAACA,MAAD,CAATA;MAXmC;;MAerC,IAAIA,OAAO1rB,MAAP0rB,KAAkB,CAAtB,EAAyB;QACvB;MAhBmC;;MAmBrC,KAAK,IAAIxE,IAAI,CAAR,EAAW6rB,KAAK6kF,MAAM53H,MAA3B,EAAmCknB,IAAI6rB,EAAvC,EAA2C,EAAE7rB,CAA7C,EAAgD;QAC9C,MAAMwC,OAAOkuG,MAAM1wG,CAAN,CAAb;QACA,MAAMrjB,QAAQ6nB,OAAOxE,CAAP,CAAd;;QACA,QAAQwC,IAAR;UACE,KAAK,KAAL;UACA,KAAK,KAAL;YACE0oD,MAAMA,IAAI9oE,MAAJ8oE,CAAW,KAAK2nD,YAAL,CAAkBl2H,KAAlB,CAAXuuE,CAANA;YACA;;UACF,KAAK,QAAL;YAIE,MAAMx0E,OAAOyuB,KAAKorG,YAALprG,CAAkB/hB,GAAlB+hB,CAAb;;YAGA,IAAI,CAACyuG,cAAcxC,UAAdwC,CAAyBl9H,IAAzBk9H,CAAL,EAAqC;cACnCA,cAAcvC,KAAduC,CAAoBl9H,IAApBk9H,EAA0B1oD,IAAIpyE,MAA9B86H;YARJ;;YAUE1oD,MAAMA,IAAI9oE,MAAJ8oE,CAAW,CAAC,IAAD,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,CAAXA,CAANA;YACA;;UACF,KAAK,OAAL;UACA,KAAK,OAAL;YACEA,MAAMA,IAAI9oE,MAAJ8oE,CAAW,KAAK2nD,YAAL,CAAkBl2H,KAAlB,CAAXuuE,CAANA;;YACA,KAAK,IAAI/mB,IAAI,CAAR,EAAWknB,KAAK7mD,OAAO1rB,MAA5B,EAAoCqrD,IAAIknB,EAAxC,EAA4C,EAAElnB,CAA9C,EAAiD;cAC/C+mB,MAAMA,IAAI9oE,MAAJ8oE,CAAW,KAAK2nD,YAAL,CAAkBruG,OAAO2/B,CAAP,CAAlB,CAAX+mB,CAANA;YAHJ;;YAKE;;UACF;YACE,MAAM,IAAInxD,iBAAJ,CAAiB,wBAAuByI,IAAxB,EAAhB,CAAN;QAzBJ;MAtBmC;;MAkDrC0oD,MAAMA,IAAI9oE,MAAJ8oE,CAAW/lD,KAAKwrG,OAALxrG,CAAa/hB,GAAb+hB,CAAX+lD,CAANA;IAtD6B;;IAwD/B,OAAOA,GAAP;EAtWc;;EAyWhBmnD,mBAAmBnZ,OAAnB,EAA4B;IAC1B,MAAM6R,cAAc,IAAIoC,QAAJ,EAApB;;IACA,KAAK,IAAIzzH,IAAI,CAAR,EAAWiJ,KAAKu2G,QAAQpgH,MAA7B,EAAqCY,IAAIiJ,EAAzC,EAA6C,EAAEjJ,CAA/C,EAAkD;MAChDqxH,YAAYhlG,GAAZglG,CAAgBpwG,yBAAcu+F,QAAQx/G,CAAR,CAAdihB,CAAhBowG;IAHwB;;IAK1B,OAAO,KAAKuH,YAAL,CAAkBvH,WAAlB,CAAP;EA9Wc;;EAiXhB8I,yBAAyB;IACvB,MAAM7I,kBAAkB,KAAKzQ,GAAL,CAASyQ,eAAjC;IACA,KAAK9/C,GAAL,CAAS4oD,cAAT,CAAwB,KAAKxB,YAAL,CAAkBtH,eAAlB,CAAxB;EAnXc;;EAsXhByH,mBAAmBjG,WAAnB,EAAgC;IAC9B,MAAMuH,mBAAmB,IAAI5G,QAAJ,EAAzB;;IACA,KAAK,IAAIzzH,IAAI,CAAb,EAAgBA,IAAI8yH,YAAY1sE,KAAhC,EAAuCpmD,GAAvC,EAA4C;MAC1C,MAAMg9C,QAAQ81E,YAAYzsH,GAAZysH,CAAgB9yH,CAAhB8yH,CAAd;;MAGA,IAAI91E,MAAM59C,MAAN49C,KAAiB,CAArB,EAAwB;QACtBq9E,iBAAiBhuG,GAAjBguG,CAAqB,IAAIj8H,UAAJ,CAAe,CAAC,IAAD,EAAO,IAAP,CAAf,CAArBi8H;QACA;MANwC;;MAQ1CA,iBAAiBhuG,GAAjBguG,CAAqBr9E,KAArBq9E;IAV4B;;IAY9B,OAAO,KAAKzB,YAAL,CAAkByB,gBAAlB,CAAP;EAlYc;;EAqYhBvB,eAAejK,OAAf,EAAwBrS,SAAxB,EAAmCgD,OAAnC,EAA4CuS,SAA5C,EAAuD;IAGrD,IAAIvgD,GAAJ;IACA,MAAM8oD,sBAAsB9d,YAAY,CAAxC;;IACA,IAAIuV,SAAJ,EAAe;MAGbvgD,MAAM,IAAIpzE,UAAJ,CAAe,CACnB,CADmB,EAEnB,CAFmB,EAGnB,CAHmB,EAIlBk8H,uBAAuB,CAAvBA,GAA4B,IAJV,EAKnBA,sBAAsB,IALH,CAAf,CAAN9oD;IAHF,OAUO;MACL,MAAMpyE,SAAS,IAAIk7H,sBAAsB,CAAzC;MACA9oD,MAAM,IAAIpzE,UAAJ,CAAegB,MAAf,CAANoyE;MACAA,IAAI,CAAJ,IAAS,CAATA;MACA,IAAI+oD,eAAe,CAAnB;MACA,MAAMC,cAAc3L,QAAQA,OAARA,CAAgBzvH,MAApC;MACA,IAAIq7H,SAAS,KAAb;;MACA,KAAK,IAAIz6H,IAAI,CAAb,EAAgBA,IAAIwxE,IAAIpyE,MAAxB,EAAgCY,KAAK,CAArC,EAAwC;QACtC,IAAIk2H,MAAM,CAAV;;QACA,IAAIqE,eAAeC,WAAnB,EAAgC;UAC9B,MAAMx9H,OAAO6xH,QAAQA,OAARA,CAAgB0L,cAAhB1L,CAAb;UACAqH,MAAM1W,QAAQkX,MAARlX,CAAexiH,IAAfwiH,CAAN0W;;UACA,IAAIA,QAAQ,CAAC,CAAb,EAAgB;YACdA,MAAM,CAANA;;YACA,IAAI,CAACuE,MAAL,EAAa;cACXA,SAAS,IAATA;cACA33H,gBAAM,iBAAgB9F,IAAK,iBAA3B8F;YAJY;UAHc;QAFM;;QAatC0uE,IAAIxxE,CAAJ,IAAUk2H,OAAO,CAAPA,GAAY,IAAtB1kD;QACAA,IAAIxxE,IAAI,CAAR,IAAak2H,MAAM,IAAnB1kD;MArBG;IAf8C;;IAuCrD,OAAO,KAAKkpD,iBAAL,CAAuBlpD,GAAvB,CAAP;EA5ac;;EA+ahBqnD,gBAAgBnyG,QAAhB,EAA0B;IACxB,OAAO,KAAKg0G,iBAAL,CAAuBh0G,SAASy0C,GAAhC,CAAP;EAhbc;;EAmbhB69D,gBAAgBvG,QAAhB,EAA0B;IACxB,MAAM1N,SAAS0N,SAAS1N,MAAxB;IACA,IAAIvzC,GAAJ,EAASxxE,CAAT;;IACA,QAAQ+kH,MAAR;MACE,KAAK,CAAL;QACEvzC,MAAM,IAAIpzE,UAAJ,CAAe,IAAIq0H,SAASA,QAATA,CAAkBrzH,MAArC,CAANoyE;QACAA,IAAI,CAAJ,IAASuzC,MAATvzC;;QACA,KAAKxxE,IAAI,CAAT,EAAYA,IAAIyyH,SAASA,QAATA,CAAkBrzH,MAAlC,EAA0CY,GAA1C,EAA+C;UAC7CwxE,IAAIxxE,IAAI,CAAR,IAAayyH,SAASA,QAATA,CAAkBzyH,CAAlByyH,CAAbjhD;QAJJ;;QAME;;MACF,KAAK,CAAL;QACE,MAAM/mE,QAAQ,CAAd;QACA,IAAIkwH,SAASlI,SAASA,QAATA,CAAkB,CAAlBA,CAAb;QACA,MAAMvgG,SAAS,CACb6yF,MADa,EAEb,CAFa,EAGb,CAHa,EAIZt6G,SAAS,CAATA,GAAc,IAJF,EAKbA,QAAQ,IALK,EAMbkwH,MANa,CAAf;;QAQA,KAAK36H,IAAI,CAAT,EAAYA,IAAIyyH,SAASA,QAATA,CAAkBrzH,MAAlC,EAA0CY,GAA1C,EAA+C;UAC7C,MAAM46H,YAAYnI,SAASA,QAATA,CAAkBzyH,CAAlByyH,CAAlB;;UACA,IAAImI,cAAcD,MAAlB,EAA0B;YACxBzoG,OAAO/yB,IAAP+yB,CAAalyB,KAAK,CAALA,GAAU,IAAvBkyB,EAA6BlyB,IAAI,IAAjCkyB,EAAuC0oG,SAAvC1oG;YACAyoG,SAASC,SAATD;UAJ2C;QAXjD;;QAmBE,MAAME,YAAa,QAAOz7H,MAAP8yB,GAAgB,CAAhB,IAAqB,CAAxC;QACAA,OAAO,CAAP,IAAa2oG,aAAa,CAAbA,GAAkB,IAA/B3oG;QACAA,OAAO,CAAP,IAAY2oG,YAAY,IAAxB3oG;QAEAA,OAAO/yB,IAAP+yB,CAAalyB,KAAK,CAALA,GAAU,IAAvBkyB,EAA6BlyB,IAAI,IAAjCkyB;QACAs/C,MAAM,IAAIpzE,UAAJ,CAAe8zB,MAAf,CAANs/C;QACA;IAjCJ;;IAmCA,OAAO,KAAKkpD,iBAAL,CAAuBlpD,GAAvB,CAAP;EAzdc;;EA4dhBkpD,kBAAkBx8H,IAAlB,EAAwB;IACtB,MAAMszE,MAAM,EAAZ;;IACA,KAAK,IAAIxxE,IAAI,CAAR,EAAWiJ,KAAK/K,KAAKkB,MAA1B,EAAkCY,IAAIiJ,EAAtC,EAA0C,EAAEjJ,CAA5C,EAA+C;MAC7CwxE,IAAIxxE,CAAJ,IAAS9B,KAAK8B,CAAL,CAATwxE;IAHoB;;IAKtB,OAAOA,GAAP;EAjec;;EAoehBonD,aAAa7tF,KAAb,EAAoB2tF,WAAW,EAA/B,EAAmC;IACjC,MAAM/B,UAAU5rF,MAAM4rF,OAAtB;IAEA,MAAMvwE,QAAQuwE,QAAQv3H,MAAtB;;IAIA,IAAIgnD,UAAU,CAAd,EAAiB;MACf,OAAO,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAAP;IAR+B;;IAWjC,MAAMloD,OAAO,CAAEkoD,SAAS,CAATA,GAAc,IAAhB,EAAsBA,QAAQ,IAA9B,CAAb;IAEA,IAAI00E,aAAa,CAAjB;IAAA,IACE96H,CADF;;IAEA,KAAKA,IAAI,CAAT,EAAYA,IAAIomD,KAAhB,EAAuB,EAAEpmD,CAAzB,EAA4B;MAC1B86H,cAAcnE,QAAQ32H,CAAR,EAAWZ,MAAzB07H;IAhB+B;;IAmBjC,IAAIpH,UAAJ;;IACA,IAAIoH,aAAa,KAAjB,EAAwB;MACtBpH,aAAa,CAAbA;IADF,OAEO,IAAIoH,aAAa,OAAjB,EAA0B;MAC/BpH,aAAa,CAAbA;IADK,OAEA,IAAIoH,aAAa,SAAjB,EAA4B;MACjCpH,aAAa,CAAbA;IADK,OAEA;MACLA,aAAa,CAAbA;IA3B+B;;IA+BjCx1H,KAAKiB,IAALjB,CAAUw1H,UAAVx1H;IAGA,IAAIo3H,iBAAiB,CAArB;;IACA,KAAKt1H,IAAI,CAAT,EAAYA,IAAIomD,QAAQ,CAAxB,EAA2BpmD,GAA3B,EAAgC;MAC9B,IAAI0zH,eAAe,CAAnB,EAAsB;QACpBx1H,KAAKiB,IAALjB,CAAUo3H,iBAAiB,IAA3Bp3H;MADF,OAEO,IAAIw1H,eAAe,CAAnB,EAAsB;QAC3Bx1H,KAAKiB,IAALjB,CAAWo3H,kBAAkB,CAAlBA,GAAuB,IAAlCp3H,EAAwCo3H,iBAAiB,IAAzDp3H;MADK,OAEA,IAAIw1H,eAAe,CAAnB,EAAsB;QAC3Bx1H,KAAKiB,IAALjB,CACGo3H,kBAAkB,EAAlBA,GAAwB,IAD3Bp3H,EAEGo3H,kBAAkB,CAAlBA,GAAuB,IAF1Bp3H,EAGEo3H,iBAAiB,IAHnBp3H;MADK,OAMA;QACLA,KAAKiB,IAALjB,CACGo3H,mBAAmB,EAAnBA,GAAyB,IAD5Bp3H,EAEGo3H,kBAAkB,EAAlBA,GAAwB,IAF3Bp3H,EAGGo3H,kBAAkB,CAAlBA,GAAuB,IAH1Bp3H,EAIEo3H,iBAAiB,IAJnBp3H;MAZ4B;;MAoB9B,IAAIy4H,QAAQ32H,CAAR,CAAJ,EAAgB;QACds1H,kBAAkBqB,QAAQ32H,CAAR,EAAWZ,MAA7Bk2H;MArB4B;IAnCC;;IA4DjC,KAAKt1H,IAAI,CAAT,EAAYA,IAAIomD,KAAhB,EAAuBpmD,GAAvB,EAA4B;MAE1B,IAAI04H,SAAS14H,CAAT,CAAJ,EAAiB;QACf04H,SAAS14H,CAAT,EAAYw0B,MAAZkkG,CAAmBx6H,KAAKkB,MAAxBs5H;MAHwB;;MAK1B,KAAK,IAAIpyG,IAAI,CAAR,EAAW6rB,KAAKwkF,QAAQ32H,CAAR,EAAWZ,MAAhC,EAAwCknB,IAAI6rB,EAA5C,EAAgD7rB,GAAhD,EAAqD;QACnDpoB,KAAKiB,IAALjB,CAAUy4H,QAAQ32H,CAAR,EAAWsmB,CAAXqwG,CAAVz4H;MANwB;IA5DK;;IAqEjC,OAAOA,IAAP;EAziBc;;AAAA;;;;;;;;;;;;;;ACn1ClB,MAAMw3H,kBAAkB,CACtB,SADsB,EACX,OADW,EACF,QADE,EACQ,UADR,EACoB,YADpB,EACkC,QADlC,EAEtB,SAFsB,EAEX,WAFW,EAEE,YAFF,EAEgB,WAFhB,EAE6B,YAF7B,EAGtB,UAHsB,EAGV,MAHU,EAGF,OAHE,EAGO,QAHP,EAGiB,QAHjB,EAG2B,OAH3B,EAGoC,MAHpC,EAItB,KAJsB,EAIf,KAJe,EAIR,OAJQ,EAIC,MAJD,EAIS,MAJT,EAIiB,KAJjB,EAIwB,OAJxB,EAIiC,OAJjC,EAKtB,MALsB,EAKd,OALc,EAKL,WALK,EAKQ,MALR,EAKgB,OALhB,EAKyB,SALzB,EAKoC,UALpC,EAMtB,IANsB,EAMhB,GANgB,EAMX,GANW,EAMN,GANM,EAMD,GANC,EAMI,GANJ,EAMS,GANT,EAMc,GANd,EAMmB,GANnB,EAMwB,GANxB,EAM6B,GAN7B,EAMkC,GANlC,EAMuC,GANvC,EAM4C,GAN5C,EAOtB,GAPsB,EAOjB,GAPiB,EAOZ,GAPY,EAOP,GAPO,EAOF,GAPE,EAOG,GAPH,EAOQ,GAPR,EAOa,GAPb,EAOkB,GAPlB,EAOuB,GAPvB,EAO4B,GAP5B,EAOiC,GAPjC,EAOsC,GAPtC,EAQtB,aARsB,EAQP,WARO,EAQM,cARN,EAQsB,aARtB,EAQqC,YARrC,EAStB,WATsB,EAST,GATS,EASJ,GATI,EASC,GATD,EASM,GATN,EASW,GATX,EASgB,GAThB,EASqB,GATrB,EAS0B,GAT1B,EAS+B,GAT/B,EASoC,GATpC,EASyC,GATzC,EAS8C,GAT9C,EAUtB,GAVsB,EAUjB,GAViB,EAUZ,GAVY,EAUP,GAVO,EAUF,GAVE,EAUG,GAVH,EAUQ,GAVR,EAUa,GAVb,EAUkB,GAVlB,EAUuB,GAVvB,EAU4B,GAV5B,EAUiC,GAVjC,EAUsC,GAVtC,EAU2C,GAV3C,EAWtB,WAXsB,EAWT,KAXS,EAWF,YAXE,EAWY,YAXZ,EAW0B,YAX1B,EAWwC,MAXxC,EAYtB,UAZsB,EAYV,UAZU,EAYE,KAZF,EAYS,QAZT,EAYmB,SAZnB,EAY8B,UAZ9B,EAatB,aAbsB,EAaP,cAbO,EAaS,eAbT,EAa0B,eAb1B,EActB,gBAdsB,EAcJ,IAdI,EAcE,IAdF,EAcQ,QAdR,EAckB,QAdlB,EAc4B,WAd5B,EAetB,gBAfsB,EAeJ,WAfI,EAeS,QAfT,EAemB,gBAfnB,EAgBtB,cAhBsB,EAgBN,eAhBM,EAgBW,gBAhBX,EAgB6B,UAhB7B,EAiBtB,aAjBsB,EAiBP,cAjBO,EAiBS,OAjBT,EAiBkB,OAjBlB,EAiB2B,YAjB3B,EAiByC,OAjBzC,EAkBtB,QAlBsB,EAkBZ,OAlBY,EAkBH,WAlBG,EAkBU,UAlBV,EAkBsB,MAlBtB,EAkB8B,SAlB9B,EAmBtB,cAnBsB,EAmBN,QAnBM,EAmBI,OAnBJ,EAmBa,QAnBb,EAmBuB,IAnBvB,EAmB6B,aAnB7B,EAoBtB,QApBsB,EAoBZ,QApBY,EAoBF,IApBE,EAoBI,cApBJ,EAoBoB,IApBpB,EAoB0B,UApB1B,EAoBsC,QApBtC,EAqBtB,QArBsB,EAqBZ,IArBY,EAqBN,YArBM,EAqBQ,aArBR,EAqBuB,YArBvB,EAqBqC,IArBrC,EAsBtB,WAtBsB,EAsBT,KAtBS,EAsBF,SAtBE,EAsBS,WAtBT,EAsBsB,OAtBtB,EAsB+B,YAtB/B,EAuBtB,QAvBsB,EAuBZ,WAvBY,EAuBC,QAvBD,EAuBW,OAvBX,EAuBoB,eAvBpB,EAuBqC,aAvBrC,EAwBtB,YAxBsB,EAwBR,OAxBQ,EAwBC,KAxBD,EAwBQ,UAxBR,EAwBoB,eAxBpB,EAwBqC,WAxBrC,EAyBtB,QAzBsB,EAyBZ,aAzBY,EAyBG,WAzBH,EAyBgB,QAzBhB,EAyB0B,OAzB1B,EAyBmC,QAzBnC,EA0BtB,UA1BsB,EA0BV,QA1BU,EA0BA,aA1BA,EA0Be,WA1Bf,EA0B4B,QA1B5B,EA0BsC,QA1BtC,EA2BtB,aA3BsB,EA2BP,WA3BO,EA2BM,QA3BN,EA2BgB,QA3BhB,EA2B0B,QA3B1B,EA2BoC,aA3BpC,EA4BtB,WA5BsB,EA4BT,QA5BS,EA4BC,QA5BD,EA4BW,QA5BX,EA4BqB,QA5BrB,EA4B+B,aA5B/B,EA6BtB,WA7BsB,EA6BT,QA7BS,EA6BC,QA7BD,EA6BW,WA7BX,EA6BwB,QA7BxB,EA6BkC,QA7BlC,EA8BtB,aA9BsB,EA8BP,WA9BO,EA8BM,QA9BN,EA8BgB,OA9BhB,EA8ByB,QA9BzB,EA8BmC,UA9BnC,EA+BtB,QA/BsB,EA+BZ,aA/BY,EA+BG,WA/BH,EA+BgB,QA/BhB,EA+B0B,QA/B1B,EA+BoC,aA/BpC,EAgCtB,WAhCsB,EAgCT,QAhCS,EAgCC,QAhCD,EAgCW,QAhCX,EAgCqB,aAhCrB,EAgCoC,WAhCpC,EAiCtB,QAjCsB,EAiCZ,QAjCY,EAiCF,QAjCE,EAiCQ,QAjCR,EAiCkB,aAjClB,EAiCiC,WAjCjC,EAkCtB,QAlCsB,EAkCZ,QAlCY,EAkCF,WAlCE,EAkCW,QAlCX,CAAxB;;AAsCA,MAAME,gBAAgB,CACpB,SADoB,EACT,OADS,EACA,aADA,EACe,mBADf,EACoC,gBADpC,EAEpB,gBAFoB,EAEF,gBAFE,EAEgB,YAFhB,EAE8B,mBAF9B,EAGpB,oBAHoB,EAGE,gBAHF,EAGoB,gBAHpB,EAGsC,OAHtC,EAIpB,QAJoB,EAIV,QAJU,EAIA,UAJA,EAIY,cAJZ,EAI4B,aAJ5B,EAKpB,aALoB,EAKL,eALK,EAKY,cALZ,EAK4B,cAL5B,EAMpB,aANoB,EAML,eANK,EAMY,eANZ,EAM6B,cAN7B,EAOpB,OAPoB,EAOX,WAPW,EAOE,eAPF,EAOmB,qBAPnB,EAQpB,gBARoB,EAQF,eARE,EAQe,WARf,EAQ4B,WAR5B,EASpB,cAToB,EASJ,WATI,EASS,WATT,EASsB,WATtB,EASmC,WATnC,EAUpB,WAVoB,EAUP,WAVO,EAUM,WAVN,EAUmB,WAVnB,EAUgC,WAVhC,EAWpB,WAXoB,EAWP,IAXO,EAWD,IAXC,EAWK,IAXL,EAWW,KAXX,EAWkB,KAXlB,EAWyB,mBAXzB,EAYpB,oBAZoB,EAYE,iBAZF,EAYqB,gBAZrB,EAYuC,YAZvC,EAapB,QAboB,EAaV,QAbU,EAaA,QAbA,EAaU,QAbV,EAaoB,QAbpB,EAa8B,QAb9B,EAawC,QAbxC,EAcpB,QAdoB,EAcV,QAdU,EAcA,QAdA,EAcU,QAdV,EAcoB,QAdpB,EAc8B,QAd9B,EAcwC,QAdxC,EAepB,QAfoB,EAeV,QAfU,EAeA,QAfA,EAeU,QAfV,EAeoB,QAfpB,EAe8B,QAf9B,EAewC,QAfxC,EAgBpB,QAhBoB,EAgBV,QAhBU,EAgBA,QAhBA,EAgBU,QAhBV,EAgBoB,QAhBpB,EAgB8B,eAhB9B,EAiBpB,WAjBoB,EAiBP,QAjBO,EAiBG,YAjBH,EAiBiB,iBAjBjB,EAiBoC,cAjBpC,EAkBpB,aAlBoB,EAkBL,aAlBK,EAkBU,aAlBV,EAkByB,eAlBzB,EAmBpB,YAnBoB,EAmBN,YAnBM,EAmBQ,gBAnBR,EAmB0B,aAnB1B,EAoBpB,YApBoB,EAoBN,gBApBM,EAoBY,aApBZ,EAoB2B,WApB3B,EAqBpB,cArBoB,EAqBJ,YArBI,EAqBU,SArBV,EAqBqB,eArBrB,EAsBpB,mBAtBoB,EAsBC,WAtBD,EAsBc,cAtBd,EAsB8B,aAtB9B,EAuBpB,cAvBoB,EAuBJ,UAvBI,EAuBQ,WAvBR,EAuBqB,cAvBrB,EAuBqC,aAvBrC,EAwBpB,aAxBoB,EAwBL,eAxBK,EAwBY,cAxBZ,EAwB4B,cAxB5B,EAyBpB,aAzBoB,EAyBL,eAzBK,EAyBY,eAzBZ,EAyB6B,cAzB7B,EA0BpB,cA1BoB,EA0BJ,aA1BI,EA0BW,aA1BX,EA0B0B,eA1B1B,EA2BpB,cA3BoB,EA2BJ,cA3BI,EA2BY,aA3BZ,EA2B2B,eA3B3B,EA4BpB,eA5BoB,EA4BH,cA5BG,EA4Ba,cA5Bb,EA4B6B,gBA5B7B,EA6BpB,gBA7BoB,EA6BF,eA7BE,EA6Be,aA7Bf,EA6B8B,aA7B9B,EA8BpB,kBA9BoB,EA8BA,aA9BA,EA8Be,gBA9Bf,EA8BiC,YA9BjC,EA+BpB,SA/BoB,EA+BT,eA/BS,EA+BQ,aA/BR,EA+BuB,aA/BvB,EAgCpB,kBAhCoB,EAgCA,gBAhCA,EAgCkB,aAhClB,EAgCiC,aAhCjC,EAiCpB,kBAjCoB,EAiCA,gBAjCA,EAiCkB,UAjClB,EAiC8B,aAjC9B,EAkCpB,aAlCoB,EAkCL,aAlCK,EAkCU,kBAlCV,EAkC8B,aAlC9B,EAmCpB,gBAnCoB,EAmCF,SAnCE,EAmCS,aAnCT,EAmCwB,aAnCxB,EAmCuC,aAnCvC,EAoCpB,kBApCoB,EAoCA,gBApCA,EAoCkB,aApClB,EAoCiC,YApCjC,EAqCpB,gBArCoB,CAAtB;;AAyCA,MAAME,sBAAsB,CAC1B,SAD0B,EACf,OADe,EACN,gBADM,EACY,gBADZ,EAE1B,mBAF0B,EAEL,oBAFK,EAEiB,gBAFjB,EAG1B,gBAH0B,EAGR,OAHQ,EAGC,QAHD,EAGW,QAHX,EAGqB,UAHrB,EAI1B,cAJ0B,EAIV,aAJU,EAIK,aAJL,EAIoB,eAJpB,EAK1B,cAL0B,EAKV,cALU,EAKM,aALN,EAKqB,eALrB,EAM1B,eAN0B,EAMT,cANS,EAMO,OANP,EAMgB,WANhB,EAM6B,eAN7B,EAO1B,qBAP0B,EAOH,gBAPG,EAOe,WAPf,EAO4B,WAP5B,EAQ1B,cAR0B,EAQV,WARU,EAQG,WARH,EAQgB,WARhB,EAQ6B,WAR7B,EAS1B,WAT0B,EASb,WATa,EASA,WATA,EASa,WATb,EAS0B,WAT1B,EAU1B,WAV0B,EAUb,IAVa,EAUP,IAVO,EAUD,IAVC,EAUK,KAVL,EAUY,KAVZ,EAUmB,mBAVnB,EAW1B,oBAX0B,EAWJ,gBAXI,EAWc,eAXd,EAW+B,WAX/B,EAY1B,QAZ0B,EAYhB,cAZgB,EAYA,YAZA,EAYc,gBAZd,EAYgC,YAZhC,EAa1B,SAb0B,EAaf,eAbe,EAaE,WAbF,EAae,cAbf,EAa+B,aAb/B,EAc1B,cAd0B,EAcV,UAdU,EAcE,WAdF,EAce,cAdf,EAc+B,aAd/B,EAe1B,aAf0B,EAeX,eAfW,EAeM,cAfN,EAesB,cAftB,EAgB1B,aAhB0B,EAgBX,eAhBW,EAgBM,eAhBN,EAgBuB,cAhBvB,EAiB1B,cAjB0B,EAiBV,aAjBU,EAiBK,aAjBL,EAiBoB,eAjBpB,EAkB1B,cAlB0B,EAkBV,cAlBU,EAkBM,aAlBN,EAkBqB,eAlBrB,EAmB1B,eAnB0B,EAmBT,cAnBS,EAmBO,cAnBP,EAmBuB,gBAnBvB,EAoB1B,gBApB0B,EAoBR,eApBQ,CAA5B;;;;;;;;;;;;;;;;AChFA;;AACA;;AAMA,MAAM/tD,gBAAgBl1C,uCAAsB,UAAU7M,CAAV,EAAa;EAEvDA,EAAE,aAAF,IAAmB,aAAnBA;EACAA,EAAE2jB,SAAF3jB,GAAc,WAAdA;EACAA,EAAE+0G,OAAF/0G,GAAY,SAAZA;EACAA,EAAEgD,MAAFhD,GAAW,QAAXA;EACAA,EAAE,YAAF,IAAkB,YAAlBA;EACAA,EAAE,gBAAF,IAAsB,gBAAtBA;EACAA,EAAE,cAAF,IAAoB,cAApBA;EACAA,EAAEg1G,YAAFh1G,GAAiB,cAAjBA;EACAA,EAAE,cAAF,IAAoB,cAApBA;EACAA,EAAE,mBAAF,IAAyB,mBAAzBA;EACAA,EAAE,iBAAF,IAAuB,iBAAvBA;EACAA,EAAE,kBAAF,IAAwB,kBAAxBA;EACAA,EAAE,uBAAF,IAA6B,uBAA7BA;EACAA,EAAE,qBAAF,IAA2B,qBAA3BA;EAGAA,EAAEi1G,WAAFj1G,GAAgB,WAAhBA;EACAA,EAAE,kBAAF,IAAwB,gBAAxBA;EACAA,EAAE,wBAAF,IAA8B,uBAA9BA;EACAA,EAAE,oBAAF,IAA0B,mBAA1BA;EACAA,EAAEk1G,UAAFl1G,GAAe,WAAfA;EACAA,EAAE,iBAAF,IAAuB,gBAAvBA;EACAA,EAAE,uBAAF,IAA6B,uBAA7BA;EACAA,EAAE,mBAAF,IAAyB,mBAAzBA;EACAA,EAAE,aAAF,IAAmB,WAAnBA;EACAA,EAAE,kBAAF,IAAwB,gBAAxBA;EACAA,EAAE,wBAAF,IAA8B,uBAA9BA;EACAA,EAAE,oBAAF,IAA0B,mBAA1BA;EACAA,EAAE0iB,KAAF1iB,GAAU,WAAVA;EACAA,EAAE,YAAF,IAAkB,gBAAlBA;EACAA,EAAE,kBAAF,IAAwB,uBAAxBA;EACAA,EAAE,cAAF,IAAoB,mBAApBA;EACAA,EAAE,oBAAF,IAA0B,uBAA1BA;EACAA,EAAE,cAAF,IAAoB,gBAApBA;EACAA,EAAE,gBAAF,IAAsB,mBAAtBA;EACAA,EAAEyiB,OAAFziB,GAAY,WAAZA;EACAA,EAAE,oBAAF,IAA0B,qBAA1BA;EACAA,EAAE,gBAAF,IAAsB,iBAAtBA;EACAA,EAAEm1G,UAAFn1G,GAAe,SAAfA;EACAA,EAAE,iBAAF,IAAuB,cAAvBA;EACAA,EAAE,uBAAF,IAA6B,qBAA7BA;EACAA,EAAE,mBAAF,IAAyB,iBAAzBA;EACAA,EAAE,2BAAF,IAAiC,qBAAjCA;EACAA,EAAE,qBAAF,IAA2B,cAA3BA;EACAA,EAAE,uBAAF,IAA6B,iBAA7BA;EACAA,EAAEo1G,cAAFp1G,GAAmB,SAAnBA;EACAA,EAAE,sBAAF,IAA4B,uBAA5BA;EACAA,EAAE,kBAAF,IAAwB,mBAAxBA;EACAA,EAAE,aAAF,IAAmB,QAAnBA;EACAA,EAAE,mBAAF,IAAyB,QAAzBA;EACAA,EAAE,eAAF,IAAqB,QAArBA;EACAA,EAAEq1G,aAAFr1G,GAAkB,aAAlBA;EACAA,EAAE,oBAAF,IAA0B,YAA1BA;EACAA,EAAE,0BAAF,IAAgC,kBAAhCA;EACAA,EAAE,sBAAF,IAA4B,cAA5BA;EACAA,EAAEs1G,eAAFt1G,GAAoB,aAApBA;EACAA,EAAE,sBAAF,IAA4B,YAA5BA;EACAA,EAAE,4BAAF,IAAkC,kBAAlCA;EACAA,EAAE,8BAAF,IAAoC,kBAApCA;EACAA,EAAE,wBAAF,IAA8B,YAA9BA;EACAA,EAAE,wBAAF,IAA8B,cAA9BA;EACAA,EAAE,0BAAF,IAAgC,cAAhCA;EACAA,EAAEu1G,iBAAFv1G,GAAsB,aAAtBA;EACAA,EAAE,wBAAF,IAA8B,YAA9BA;EACAA,EAAE,8BAAF,IAAoC,kBAApCA;EACAA,EAAE,0BAAF,IAAgC,cAAhCA;AAnEoB,EAAtB;;AAuEA,MAAM2sC,uBAAuB9/B,uCAAsB,UAAU7M,CAAV,EAAa;EAC9DA,EAAE+0G,OAAF/0G,GAAY,gBAAZA;EACAA,EAAE,cAAF,IAAoB,oBAApBA;EACAA,EAAE,qBAAF,IAA2B,0BAA3BA;EACAA,EAAE,iBAAF,IAAuB,sBAAvBA;EACAA,EAAE2jB,SAAF3jB,GAAc,eAAdA;EACAA,EAAE,gBAAF,IAAsB,mBAAtBA;EACAA,EAAE,uBAAF,IAA6B,yBAA7BA;EACAA,EAAE,mBAAF,IAAyB,qBAAzBA;EACAA,EAAE,aAAF,IAAmB,gBAAnBA;EACAA,EAAE,YAAF,IAAkB,oBAAlBA;EACAA,EAAE,kBAAF,IAAwB,0BAAxBA;EACAA,EAAE,cAAF,IAAoB,sBAApBA;EACAA,EAAEgD,MAAFhD,GAAW,iBAAXA;EACAA,EAAEg1G,YAAFh1G,GAAiB,mBAAjBA;EACAA,EAAE,wBAAF,IAA8B,4BAA9BA;EACAA,EAAE,qBAAF,IAA2B,yBAA3BA;EACAA,EAAE,uBAAF,IAA6B,2BAA7BA;EACAA,EAAE,2BAAF,IAAiC,+BAAjCA;AAlB2B,EAA7B;;AAyBA,MAAMw7F,mBAAmB3uF,uCAAsB,UAAU7M,CAAV,EAAa;EAC1DA,EAAEw1G,OAAFx1G,GAAY,WAAZA;EACAA,EAAE,cAAF,IAAoB,gBAApBA;EACAA,EAAE,oBAAF,IAA0B,uBAA1BA;EACAA,EAAE,gBAAF,IAAsB,mBAAtBA;EACAA,EAAEy1G,aAAFz1G,GAAkB,WAAlBA;EACAA,EAAE,oBAAF,IAA0B,gBAA1BA;EACAA,EAAE,0BAAF,IAAgC,uBAAhCA;EACAA,EAAE,sBAAF,IAA4B,mBAA5BA;EACAA,EAAE01G,WAAF11G,GAAgB,eAAhBA;EACAA,EAAE,kBAAF,IAAwB,oBAAxBA;EACAA,EAAE,wBAAF,IAA8B,0BAA9BA;EACAA,EAAE,oBAAF,IAA0B,sBAA1BA;EACAA,EAAE,gBAAF,IAAsB,gBAAtBA;EACAA,EAAE,sBAAF,IAA4B,uBAA5BA;EACAA,EAAE,gBAAF,IAAsB,WAAtBA;EACAA,EAAE,sBAAF,IAA4B,mBAA5BA;EACAA,EAAE,kBAAF,IAAwB,WAAxBA;EACAA,EAAE,wBAAF,IAA8B,mBAA9BA;EACAA,EAAE21G,aAAF31G,GAAkB,SAAlBA;EACAA,EAAE,oBAAF,IAA0B,cAA1BA;EACAA,EAAE,0BAAF,IAAgC,qBAAhCA;EACAA,EAAE,sBAAF,IAA4B,iBAA5BA;EACAA,EAAE,iBAAF,IAAuB,gBAAvBA;EACAA,EAAE,WAAF,IAAiB,WAAjBA;EACAA,EAAE,gBAAF,IAAsB,gBAAtBA;EACAA,EAAE,sBAAF,IAA4B,sBAA5BA;EACAA,EAAE,kBAAF,IAAwB,kBAAxBA;EACAA,EAAE,WAAF,IAAiB,WAAjBA;EACAA,EAAE,gBAAF,IAAsB,gBAAtBA;EACAA,EAAE,sBAAF,IAA4B,sBAA5BA;EACAA,EAAE,kBAAF,IAAwB,kBAAxBA;EACAA,EAAE,YAAF,IAAkB,YAAlBA;EACAA,EAAE,iBAAF,IAAuB,iBAAvBA;EACAA,EAAE,uBAAF,IAA6B,uBAA7BA;EACAA,EAAE,mBAAF,IAAyB,mBAAzBA;EACAA,EAAE,YAAF,IAAkB,YAAlBA;EACAA,EAAE,iBAAF,IAAuB,iBAAvBA;EACAA,EAAE,uBAAF,IAA6B,uBAA7BA;EACAA,EAAE,mBAAF,IAAyB,mBAAzBA;EACAA,EAAE41G,aAAF51G,GAAkB,cAAlBA;EACAA,EAAE61G,aAAF71G,GAAkB,WAAlBA;EACAA,EAAE81G,SAAF91G,GAAc,cAAdA;EACAA,EAAE,mBAAF,IAAyB,cAAzBA;AA3CuB,EAAzB;;AA8CA,MAAM2hD,gBAAgB90C,uCAAsB,UAAU7M,CAAV,EAAa;EACvDA,EAAE,cAAF,IAAoB,IAApBA;EACAA,EAAE,YAAF,IAAkB,IAAlBA;EACAA,EAAE+1G,QAAF/1G,GAAa,IAAbA;EACAA,EAAEg2G,KAAFh2G,GAAU,IAAVA;EACAA,EAAEi2G,UAAFj2G,GAAe,IAAfA;EACAA,EAAEk2G,QAAFl2G,GAAa,IAAbA;EACAA,EAAE,qBAAF,IAA2B,IAA3BA;EACAA,EAAEm2G,OAAFn2G,GAAY,IAAZA;EACAA,EAAEo2G,IAAFp2G,GAAS,IAATA;EACAA,EAAEq2G,IAAFr2G,GAAS,IAATA;EACAA,EAAEs2G,KAAFt2G,GAAU,IAAVA;EACAA,EAAEu2G,MAAFv2G,GAAW,IAAXA;EACAA,EAAEw2G,WAAFx2G,GAAgB,IAAhBA;EACAA,EAAEy2G,IAAFz2G,GAAS,IAATA;EACAA,EAAE02G,KAAF12G,GAAU,IAAVA;EACAA,EAAE,kBAAF,IAAwB,IAAxBA;EACAA,EAAE22G,QAAF32G,GAAa,IAAbA;EACAA,EAAE,oBAAF,IAA0B,IAA1BA;EACAA,EAAE,iBAAF,IAAuB,IAAvBA;EACAA,EAAE,eAAF,IAAqB,IAArBA;EACAA,EAAE42G,MAAF52G,GAAW,IAAXA;EACAA,EAAE,cAAF,IAAoB,IAApBA;EACAA,EAAE,cAAF,IAAoB,IAApBA;EACAA,EAAE62G,OAAF72G,GAAY,IAAZA;EACAA,EAAE,gBAAF,IAAsB,IAAtBA;EACAA,EAAE,gBAAF,IAAsB,IAAtBA;EACAA,EAAE82G,OAAF92G,GAAY,IAAZA;EACAA,EAAE+2G,OAAF/2G,GAAY,IAAZA;EACAA,EAAEg3G,QAAFh3G,GAAa,IAAbA;EACAA,EAAEi3G,OAAFj3G,GAAY,IAAZA;EACAA,EAAEk3G,OAAFl3G,GAAY,IAAZA;EACAA,EAAEm3G,MAAFn3G,GAAW,IAAXA;EACAA,EAAEo3G,MAAFp3G,GAAW,IAAXA;EACAA,EAAEq3G,OAAFr3G,GAAY,IAAZA;EACAA,EAAE,mBAAF,IAAyB,IAAzBA;EACAA,EAAE,oBAAF,IAA0B,IAA1BA;EACAA,EAAEs3G,SAAFt3G,GAAc,IAAdA;EACAA,EAAE,YAAF,IAAkB,IAAlBA;EACAA,EAAEu3G,UAAFv3G,GAAe,IAAfA;EACAA,EAAE,aAAF,IAAmB,IAAnBA;EACAA,EAAEw3G,SAAFx3G,GAAc,IAAdA;EACAA,EAAEy3G,SAAFz3G,GAAc,IAAdA;EACAA,EAAE03G,MAAF13G,GAAW,IAAXA;EACAA,EAAE23G,OAAF33G,GAAY,IAAZA;EACAA,EAAE,iBAAF,IAAuB,IAAvBA;EACAA,EAAE,gBAAF,IAAsB,IAAtBA;EACAA,EAAE43G,UAAF53G,GAAe,IAAfA;EACAA,EAAE,cAAF,IAAoB,IAApBA;EACAA,EAAE63G,MAAF73G,GAAW,IAAXA;EACAA,EAAE83G,OAAF93G,GAAY,IAAZA;EACAA,EAAE+3G,UAAF/3G,GAAe,IAAfA;EACAA,EAAEg4G,QAAFh4G,GAAa,IAAbA;EACAA,EAAEi4G,SAAFj4G,GAAc,IAAdA;EACAA,EAAEk4G,SAAFl4G,GAAc,IAAdA;EACAA,EAAE,UAAF,IAAgB,IAAhBA;EACAA,EAAEm4G,OAAFn4G,GAAY,IAAZA;EACAA,EAAEo4G,SAAFp4G,GAAc,IAAdA;EACAA,EAAEq4G,SAAFr4G,GAAc,IAAdA;EACAA,EAAE,eAAF,IAAqB,IAArBA;EACAA,EAAEs4G,QAAFt4G,GAAa,IAAbA;EACAA,EAAEu4G,OAAFv4G,GAAY,IAAZA;EACAA,EAAEw4G,OAAFx4G,GAAY,IAAZA;EACAA,EAAEy4G,UAAFz4G,GAAe,IAAfA;EACAA,EAAE,iBAAF,IAAuB,IAAvBA;EACAA,EAAE,kBAAF,IAAwB,IAAxBA;EACAA,EAAE,gBAAF,IAAsB,IAAtBA;EACAA,EAAE04G,OAAF14G,GAAY,IAAZA;EACAA,EAAE,mBAAF,IAAyB,IAAzBA;EACAA,EAAE24G,OAAF34G,GAAY,IAAZA;EACAA,EAAE44G,QAAF54G,GAAa,IAAbA;EACAA,EAAE,iBAAF,IAAuB,IAAvBA;EACAA,EAAE64G,SAAF74G,GAAc,IAAdA;EACAA,EAAE,cAAF,IAAoB,IAApBA;EACAA,EAAE,cAAF,IAAoB,IAApBA;EACAA,EAAE84G,OAAF94G,GAAY,IAAZA;EACAA,EAAE,aAAF,IAAmB,IAAnBA;EACAA,EAAE+4G,MAAF/4G,GAAW,IAAXA;EACAA,EAAEg5G,MAAFh5G,GAAW,IAAXA;EACAA,EAAEi5G,OAAFj5G,GAAY,IAAZA;EACAA,EAAEk5G,OAAFl5G,GAAY,IAAZA;EACAA,EAAEm5G,eAAFn5G,GAAoB,IAApBA;EACAA,EAAE,kBAAF,IAAwB,IAAxBA;EACAA,EAAE,iBAAF,IAAuB,IAAvBA;EACAA,EAAEo5G,aAAFp5G,GAAkB,IAAlBA;EACAA,EAAEq5G,MAAFr5G,GAAW,IAAXA;EACAA,EAAE,eAAF,IAAqB,IAArBA;EACAA,EAAEs5G,MAAFt5G,GAAW,IAAXA;EACAA,EAAEu5G,OAAFv5G,GAAY,IAAZA;EACAA,EAAEw5G,MAAFx5G,GAAW,IAAXA;EACAA,EAAEy5G,MAAFz5G,GAAW,IAAXA;EACAA,EAAE05G,MAAF15G,GAAW,IAAXA;EACAA,EAAE,WAAF,IAAiB,IAAjBA;EACAA,EAAE,WAAF,IAAiB,IAAjBA;EACAA,EAAE,UAAF,IAAgB,IAAhBA;EACAA,EAAE,YAAF,IAAkB,IAAlBA;EACAA,EAAE,UAAF,IAAgB,IAAhBA;EACAA,EAAE,cAAF,IAAoB,IAApBA;EACAA,EAAE,uBAAF,IAA6B,IAA7BA;EACAA,EAAE41G,aAAF51G,GAAkB,IAAlBA;EACAA,EAAE25G,QAAF35G,GAAa,IAAbA;EACAA,EAAE45G,QAAF55G,GAAa,IAAbA;EACAA,EAAE65G,OAAF75G,GAAY,IAAZA;EACAA,EAAE,oBAAF,IAA0B,IAA1BA;EACAA,EAAE85G,QAAF95G,GAAa,IAAbA;EACAA,EAAE,cAAF,IAAoB,IAApBA;EACAA,EAAE,mBAAF,IAAyB,IAAzBA;EACAA,EAAE+5G,OAAF/5G,GAAY,IAAZA;EACAA,EAAEg6G,OAAFh6G,GAAY,IAAZA;EACAA,EAAEi6G,QAAFj6G,GAAa,IAAbA;EACAA,EAAEk6G,KAAFl6G,GAAU,IAAVA;EACAA,EAAE,aAAF,IAAmB,IAAnBA;EACAA,EAAEm6G,KAAFn6G,GAAU,IAAVA;EACAA,EAAEo6G,KAAFp6G,GAAU,IAAVA;EACAA,EAAEq6G,OAAFr6G,GAAY,IAAZA;EACAA,EAAEs6G,OAAFt6G,GAAY,IAAZA;EACAA,EAAEu6G,QAAFv6G,GAAa,IAAbA;EACAA,EAAEw6G,IAAFx6G,GAAS,IAATA;EACAA,EAAE,gBAAF,IAAsB,IAAtBA;EACAA,EAAE,aAAF,IAAmB,IAAnBA;EACAA,EAAEy6G,OAAFz6G,GAAY,IAAZA;EACAA,EAAE06G,KAAF16G,GAAU,IAAVA;EACAA,EAAE26G,MAAF36G,GAAW,IAAXA;EACAA,EAAE,SAAF,IAAe,IAAfA;EACAA,EAAE,iBAAF,IAAuB,IAAvBA;EACAA,EAAE46G,MAAF56G,GAAW,IAAXA;EACAA,EAAE,WAAF,IAAiB,IAAjBA;EACAA,EAAE,gBAAF,IAAsB,IAAtBA;EACAA,EAAE,YAAF,IAAkB,IAAlBA;EACAA,EAAE66G,UAAF76G,GAAe,IAAfA;EACAA,EAAE86G,MAAF96G,GAAW,IAAXA;EACAA,EAAE+6G,KAAF/6G,GAAU,IAAVA;EACAA,EAAE,YAAF,IAAkB,IAAlBA;EACAA,EAAEg7G,OAAFh7G,GAAY,IAAZA;EACAA,EAAEi7G,IAAFj7G,GAAS,IAATA;AAtIoB,EAAtB;;AAyIA,MAAMijD,kBAAkBp2C,uCAAsB,UAAU7M,CAAV,EAAa;EACzDA,EAAEk7G,QAAFl7G,GAAa,IAAbA;EACAA,EAAEgD,MAAFhD,GAAW,IAAXA;EACAA,EAAEg1G,YAAFh1G,GAAiB,IAAjBA;AAHsB,EAAxB;;AASA,MAAMg8F,8BAA8BnvF,uCAAsB,UAAU7M,CAAV,EAAa;EACrEA,EAAE,CAAF,IAAO,EAAPA;EACAA,EAAE,CAAF,IAAO,EAAPA;EACAA,EAAE,CAAF,IAAO,EAAPA;EACAA,EAAE,CAAF,IAAO,EAAPA;EACAA,EAAE,CAAF,IAAO,EAAPA;EACAA,EAAE,CAAF,IAAO,EAAPA;EACAA,EAAE,CAAF,IAAO,EAAPA;EACAA,EAAE,CAAF,IAAO,EAAPA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;AAhZkC,EAApC;;AAsZA,MAAMi8F,uCAAuCpvF,uCAAsB,UACjE7M,CADiE,EAEjE;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;AAL2C,EAA7C;;AAWA,MAAMk8F,oCAAoCrvF,uCAAsB,UAAU7M,CAAV,EAAa;EAC3EA,EAAE,CAAF,IAAO,EAAPA;EACAA,EAAE,CAAF,IAAO,EAAPA;EACAA,EAAE,CAAF,IAAO,GAAPA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;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","sources":["webpack://pdfjs-dist/build/pdf.worker/webpack/universalModuleDefinition","webpack://pdfjs-dist/build/pdf.worker/src/core/worker.js","webpack://pdfjs-dist/build/pdf.worker/src/shared/util.js","webpack://pdfjs-dist/build/pdf.worker/src/shared/compatibility.js","webpack://pdfjs-dist/build/pdf.worker/src/shared/is_node.js","webpack://pdfjs-dist/build/pdf.worker/src/core/primitives.js","webpack://pdfjs-dist/build/pdf.worker/src/core/pdf_manager.js","webpack://pdfjs-dist/build/pdf.worker/src/core/chunked_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/core_utils.js","webpack://pdfjs-dist/build/pdf.worker/src/core/base_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/document.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa_fonts.js","webpack://pdfjs-dist/build/pdf.worker/src/core/calibri_factors.js","webpack://pdfjs-dist/build/pdf.worker/src/core/helvetica_factors.js","webpack://pdfjs-dist/build/pdf.worker/src/core/liberationsans_widths.js","webpack://pdfjs-dist/build/pdf.worker/src/core/myriadpro_factors.js","webpack://pdfjs-dist/build/pdf.worker/src/core/segoeui_factors.js","webpack://pdfjs-dist/build/pdf.worker/src/core/fonts_utils.js","webpack://pdfjs-dist/build/pdf.worker/src/core/encodings.js","webpack://pdfjs-dist/build/pdf.worker/src/core/glyphlist.js","webpack://pdfjs-dist/build/pdf.worker/src/core/unicode.js","webpack://pdfjs-dist/build/pdf.worker/src/core/annotation.js","webpack://pdfjs-dist/build/pdf.worker/src/core/default_appearance.js","webpack://pdfjs-dist/build/pdf.worker/src/core/colorspace.js","webpack://pdfjs-dist/build/pdf.worker/src/core/evaluator.js","webpack://pdfjs-dist/build/pdf.worker/src/core/cmap.js","webpack://pdfjs-dist/build/pdf.worker/src/core/parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/ascii_85_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/decode_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/ascii_hex_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/ccitt_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/ccitt.js","webpack://pdfjs-dist/build/pdf.worker/src/core/flate_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jbig2_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jbig2.js","webpack://pdfjs-dist/build/pdf.worker/src/core/arithmetic_decoder.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jpeg_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jpg.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jpx_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jpx.js","webpack://pdfjs-dist/build/pdf.worker/src/core/lzw_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/predictor_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/run_length_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/fonts.js","webpack://pdfjs-dist/build/pdf.worker/src/core/cff_parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/charsets.js","webpack://pdfjs-dist/build/pdf.worker/src/core/standard_fonts.js","webpack://pdfjs-dist/build/pdf.worker/src/core/to_unicode_map.js","webpack://pdfjs-dist/build/pdf.worker/src/core/cff_font.js","webpack://pdfjs-dist/build/pdf.worker/src/core/font_renderer.js","webpack://pdfjs-dist/build/pdf.worker/src/core/metrics.js","webpack://pdfjs-dist/build/pdf.worker/src/core/glyf.js","webpack://pdfjs-dist/build/pdf.worker/src/core/opentype_file_builder.js","webpack://pdfjs-dist/build/pdf.worker/src/core/type1_font.js","webpack://pdfjs-dist/build/pdf.worker/src/core/type1_parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/pattern.js","webpack://pdfjs-dist/build/pdf.worker/src/core/function.js","webpack://pdfjs-dist/build/pdf.worker/src/core/ps_parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/image_utils.js","webpack://pdfjs-dist/build/pdf.worker/src/core/bidi.js","webpack://pdfjs-dist/build/pdf.worker/src/shared/murmurhash3.js","webpack://pdfjs-dist/build/pdf.worker/src/core/operator_list.js","webpack://pdfjs-dist/build/pdf.worker/src/core/image.js","webpack://pdfjs-dist/build/pdf.worker/src/shared/image_utils.js","webpack://pdfjs-dist/build/pdf.worker/src/core/bounding_boxes.js","webpack://pdfjs-dist/build/pdf.worker/src/core/catalog.js","webpack://pdfjs-dist/build/pdf.worker/src/core/name_number_tree.js","webpack://pdfjs-dist/build/pdf.worker/src/core/cleanup_helper.js","webpack://pdfjs-dist/build/pdf.worker/src/core/file_spec.js","webpack://pdfjs-dist/build/pdf.worker/src/core/metadata_parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xml_parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/struct_tree.js","webpack://pdfjs-dist/build/pdf.worker/src/core/object_loader.js","webpack://pdfjs-dist/build/pdf.worker/src/core/writer.js","webpack://pdfjs-dist/build/pdf.worker/src/core/crypto.js","webpack://pdfjs-dist/build/pdf.worker/src/core/decrypt_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/factory.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/xfa_object.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/utils.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/namespaces.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/som.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/bind.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/template.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/layout.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/html_utils.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/fonts.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/text.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/data.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/builder.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/setup.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/config.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/connection_set.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/datasets.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/locale_set.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/signature.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/stylesheet.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/xdp.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/xhtml.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/unknown.js","webpack://pdfjs-dist/build/pdf.worker/src/core/dataset_reader.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xref.js","webpack://pdfjs-dist/build/pdf.worker/src/shared/message_handler.js","webpack://pdfjs-dist/build/pdf.worker/src/core/worker_stream.js","webpack://pdfjs-dist/build/pdf.worker/webpack/bootstrap","webpack://pdfjs-dist/build/pdf.worker/webpack/runtime/define property getters","webpack://pdfjs-dist/build/pdf.worker/webpack/runtime/hasOwnProperty shorthand","webpack://pdfjs-dist/build/pdf.worker/webpack/runtime/make namespace object","webpack://pdfjs-dist/build/pdf.worker/src/pdf.worker.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf.worker\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf.worker\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf.worker\"] = factory();\n})(this, () => {\nreturn ","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AbortException,\n arrayByteLength,\n arraysToBytes,\n createPromiseCapability,\n getVerbosityLevel,\n info,\n InvalidPDFException,\n MissingPDFException,\n PasswordException,\n setVerbosityLevel,\n stringToPDFString,\n UnexpectedResponseException,\n UnknownErrorException,\n UNSUPPORTED_FEATURES,\n VerbosityLevel,\n warn,\n} from \"../shared/util.js\";\nimport { Dict, Ref } from \"./primitives.js\";\nimport { LocalPdfManager, NetworkPdfManager } from \"./pdf_manager.js\";\nimport { clearGlobalCaches } from \"./cleanup_helper.js\";\nimport { incrementalUpdate } from \"./writer.js\";\nimport { isNodeJS } from \"../shared/is_node.js\";\nimport { MessageHandler } from \"../shared/message_handler.js\";\nimport { PDFWorkerStream } from \"./worker_stream.js\";\nimport { XRefParseException } from \"./core_utils.js\";\n\nclass WorkerTask {\n constructor(name) {\n this.name = name;\n this.terminated = false;\n this._capability = createPromiseCapability();\n }\n\n get finished() {\n return this._capability.promise;\n }\n\n finish() {\n this._capability.resolve();\n }\n\n terminate() {\n this.terminated = true;\n }\n\n ensureNotTerminated() {\n if (this.terminated) {\n throw new Error(\"Worker task was terminated\");\n }\n }\n}\n\nclass WorkerMessageHandler {\n static setup(handler, port) {\n let testMessageProcessed = false;\n handler.on(\"test\", function wphSetupTest(data) {\n if (testMessageProcessed) {\n return; // we already processed 'test' message once\n }\n testMessageProcessed = true;\n\n // Ensure that `TypedArray`s can be sent to the worker.\n handler.send(\"test\", data instanceof Uint8Array);\n });\n\n handler.on(\"configure\", function wphConfigure(data) {\n setVerbosityLevel(data.verbosity);\n });\n\n handler.on(\"GetDocRequest\", function wphSetupDoc(data) {\n return WorkerMessageHandler.createDocumentHandler(data, port);\n });\n }\n\n static createDocumentHandler(docParams, port) {\n // This context is actually holds references on pdfManager and handler,\n // until the latter is destroyed.\n let pdfManager;\n let terminated = false;\n let cancelXHRs = null;\n const WorkerTasks = [];\n const verbosity = getVerbosityLevel();\n\n const apiVersion = docParams.apiVersion;\n const workerVersion =\n typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"TESTING\")\n ? PDFJSDev.eval(\"BUNDLE_VERSION\")\n : null;\n if (apiVersion !== workerVersion) {\n throw new Error(\n `The API version \"${apiVersion}\" does not match ` +\n `the Worker version \"${workerVersion}\".`\n );\n }\n\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n // Fail early, and predictably, rather than having (some) fonts fail to\n // load/render with slightly cryptic error messages in environments where\n // the `Array.prototype` has been *incorrectly* extended.\n //\n // PLEASE NOTE: We do *not* want to slow down font parsing by adding\n // `hasOwnProperty` checks all over the code-base.\n const enumerableProperties = [];\n for (const property in []) {\n enumerableProperties.push(property);\n }\n if (enumerableProperties.length) {\n throw new Error(\n \"The `Array.prototype` contains unexpected enumerable properties: \" +\n enumerableProperties.join(\", \") +\n \"; thus breaking e.g. `for...in` iteration of `Array`s.\"\n );\n }\n\n // Ensure that (primarily) Node.js users won't accidentally attempt to use\n // a non-translated/non-polyfilled build of the library, since that would\n // quickly fail anyway because of missing functionality.\n if (typeof ReadableStream === \"undefined\") {\n const partialMsg =\n \"The browser/environment lacks native support for critical \" +\n \"functionality used by the PDF.js library (e.g. `ReadableStream`); \";\n\n if (isNodeJS) {\n throw new Error(partialMsg + \"please use a `legacy`-build instead.\");\n }\n throw new Error(partialMsg + \"please update to a supported browser.\");\n }\n }\n\n const docId = docParams.docId;\n const docBaseUrl = docParams.docBaseUrl;\n const workerHandlerName = docParams.docId + \"_worker\";\n let handler = new MessageHandler(workerHandlerName, docId, port);\n\n function ensureNotTerminated() {\n if (terminated) {\n throw new Error(\"Worker was terminated\");\n }\n }\n\n function startWorkerTask(task) {\n WorkerTasks.push(task);\n }\n\n function finishWorkerTask(task) {\n task.finish();\n const i = WorkerTasks.indexOf(task);\n WorkerTasks.splice(i, 1);\n }\n\n async function loadDocument(recoveryMode) {\n await pdfManager.ensureDoc(\"checkHeader\");\n await pdfManager.ensureDoc(\"parseStartXRef\");\n await pdfManager.ensureDoc(\"parse\", [recoveryMode]);\n\n // Check that at least the first page can be successfully loaded,\n // since otherwise the XRef table is definitely not valid.\n await pdfManager.ensureDoc(\"checkFirstPage\", [recoveryMode]);\n // Check that the last page can be successfully loaded, to ensure that\n // `numPages` is correct, and fallback to walking the entire /Pages-tree.\n await pdfManager.ensureDoc(\"checkLastPage\", [recoveryMode]);\n\n const isPureXfa = await pdfManager.ensureDoc(\"isPureXfa\");\n if (isPureXfa) {\n const task = new WorkerTask(\"loadXfaFonts\");\n startWorkerTask(task);\n await Promise.all([\n pdfManager\n .loadXfaFonts(handler, task)\n .catch(reason => {\n // Ignore errors, to allow the document to load.\n })\n .then(() => finishWorkerTask(task)),\n pdfManager.loadXfaImages(),\n ]);\n }\n\n const [numPages, fingerprints, structureTree] = await Promise.all([\n pdfManager.ensureDoc(\"numPages\"),\n pdfManager.ensureDoc(\"fingerprints\"),\n pdfManager.ensureDoc('structureTree'),\n ]);\n\n // Get htmlForXfa after numPages to avoid to create HTML twice.\n const htmlForXfa = isPureXfa\n ? await pdfManager.ensureDoc(\"htmlForXfa\")\n : null;\n\n return { numPages, fingerprints, htmlForXfa, structureTree };\n }\n\n function getPdfManager(data, evaluatorOptions, enableXfa) {\n const pdfManagerCapability = createPromiseCapability();\n let newPdfManager;\n\n const source = data.source;\n if (source.data) {\n try {\n newPdfManager = new LocalPdfManager(\n docId,\n source.data,\n source.password,\n handler,\n evaluatorOptions,\n enableXfa,\n docBaseUrl\n );\n pdfManagerCapability.resolve(newPdfManager);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n }\n return pdfManagerCapability.promise;\n }\n\n let pdfStream,\n cachedChunks = [];\n try {\n pdfStream = new PDFWorkerStream(handler);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n return pdfManagerCapability.promise;\n }\n\n const fullRequest = pdfStream.getFullReader();\n fullRequest.headersReady\n .then(function () {\n if (!fullRequest.isRangeSupported) {\n return;\n }\n\n // We don't need auto-fetch when streaming is enabled.\n const disableAutoFetch =\n source.disableAutoFetch || fullRequest.isStreamingSupported;\n newPdfManager = new NetworkPdfManager(\n docId,\n pdfStream,\n {\n msgHandler: handler,\n password: source.password,\n length: fullRequest.contentLength,\n disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize,\n },\n evaluatorOptions,\n enableXfa,\n docBaseUrl\n );\n // There may be a chance that `newPdfManager` is not initialized for\n // the first few runs of `readchunk` block of code. Be sure to send\n // all cached chunks, if any, to chunked_stream via pdf_manager.\n for (let i = 0; i < cachedChunks.length; i++) {\n newPdfManager.sendProgressiveData(cachedChunks[i]);\n }\n\n cachedChunks = [];\n pdfManagerCapability.resolve(newPdfManager);\n cancelXHRs = null;\n })\n .catch(function (reason) {\n pdfManagerCapability.reject(reason);\n cancelXHRs = null;\n });\n\n let loaded = 0;\n const flushChunks = function () {\n const pdfFile = arraysToBytes(cachedChunks);\n if (source.length && pdfFile.length !== source.length) {\n warn(\"reported HTTP length is different from actual\");\n }\n // the data is array, instantiating directly from it\n try {\n newPdfManager = new LocalPdfManager(\n docId,\n pdfFile,\n source.password,\n handler,\n evaluatorOptions,\n enableXfa,\n docBaseUrl\n );\n pdfManagerCapability.resolve(newPdfManager);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n }\n cachedChunks = [];\n };\n const readPromise = new Promise(function (resolve, reject) {\n const readChunk = function ({ value, done }) {\n try {\n ensureNotTerminated();\n if (done) {\n if (!newPdfManager) {\n flushChunks();\n }\n cancelXHRs = null;\n return;\n }\n\n loaded += arrayByteLength(value);\n if (!fullRequest.isStreamingSupported) {\n handler.send(\"DocProgress\", {\n loaded,\n total: Math.max(loaded, fullRequest.contentLength || 0),\n });\n }\n\n if (newPdfManager) {\n newPdfManager.sendProgressiveData(value);\n } else {\n cachedChunks.push(value);\n }\n\n fullRequest.read().then(readChunk, reject);\n } catch (e) {\n reject(e);\n }\n };\n fullRequest.read().then(readChunk, reject);\n });\n readPromise.catch(function (e) {\n pdfManagerCapability.reject(e);\n cancelXHRs = null;\n });\n\n cancelXHRs = function (reason) {\n pdfStream.cancelAllRequests(reason);\n };\n\n return pdfManagerCapability.promise;\n }\n\n function setupDoc(data) {\n function onSuccess(doc) {\n ensureNotTerminated();\n handler.send(\"GetDoc\", { pdfInfo: doc });\n }\n\n function onFailure(ex) {\n ensureNotTerminated();\n\n if (ex instanceof PasswordException) {\n const task = new WorkerTask(`PasswordException: response ${ex.code}`);\n startWorkerTask(task);\n\n handler\n .sendWithPromise(\"PasswordRequest\", ex)\n .then(function ({ password }) {\n finishWorkerTask(task);\n pdfManager.updatePassword(password);\n pdfManagerReady();\n })\n .catch(function () {\n finishWorkerTask(task);\n handler.send(\"DocException\", ex);\n });\n } else if (\n ex instanceof InvalidPDFException ||\n ex instanceof MissingPDFException ||\n ex instanceof UnexpectedResponseException ||\n ex instanceof UnknownErrorException\n ) {\n handler.send(\"DocException\", ex);\n } else {\n handler.send(\n \"DocException\",\n new UnknownErrorException(ex.message, ex.toString())\n );\n }\n }\n\n function pdfManagerReady() {\n ensureNotTerminated();\n\n loadDocument(false).then(onSuccess, function (reason) {\n ensureNotTerminated();\n\n // Try again with recoveryMode == true\n if (!(reason instanceof XRefParseException)) {\n onFailure(reason);\n return;\n }\n pdfManager.requestLoadedStream();\n pdfManager.onLoadedStream().then(function () {\n ensureNotTerminated();\n\n loadDocument(true).then(onSuccess, onFailure);\n });\n });\n }\n\n ensureNotTerminated();\n\n const evaluatorOptions = {\n maxImageSize: data.maxImageSize,\n disableFontFace: data.disableFontFace,\n ignoreErrors: data.ignoreErrors,\n isEvalSupported: data.isEvalSupported,\n fontExtraProperties: data.fontExtraProperties,\n useSystemFonts: data.useSystemFonts,\n cMapUrl: data.cMapUrl,\n standardFontDataUrl: data.standardFontDataUrl,\n };\n\n getPdfManager(data, evaluatorOptions, data.enableXfa)\n .then(function (newPdfManager) {\n if (terminated) {\n // We were in a process of setting up the manager, but it got\n // terminated in the middle.\n newPdfManager.terminate(\n new AbortException(\"Worker was terminated.\")\n );\n throw new Error(\"Worker was terminated\");\n }\n pdfManager = newPdfManager;\n\n pdfManager.onLoadedStream().then(function (stream) {\n handler.send(\"DataLoaded\", { length: stream.bytes.byteLength });\n });\n })\n .then(pdfManagerReady, onFailure);\n }\n\n handler.on(\"GetPage\", function wphSetupGetPage(data) {\n return pdfManager.getPage(data.pageIndex).then(function (page) {\n return Promise.all([\n pdfManager.ensure(page, \"rotate\"),\n pdfManager.ensure(page, \"ref\"),\n pdfManager.ensure(page, \"userUnit\"),\n pdfManager.ensure(page, \"view\"),\n ]).then(function ([rotate, ref, userUnit, view]) {\n return {\n rotate,\n ref,\n userUnit,\n view,\n };\n });\n });\n });\n\n handler.on(\"GetPageIndex\", function wphSetupGetPageIndex(data) {\n const pageRef = Ref.get(data.num, data.gen);\n return pdfManager.ensureCatalog(\"getPageIndex\", [pageRef]);\n });\n\n handler.on(\"GetDestinations\", function wphSetupGetDestinations(data) {\n return pdfManager.ensureCatalog(\"destinations\");\n });\n\n handler.on(\"GetDestination\", function wphSetupGetDestination(data) {\n return pdfManager.ensureCatalog(\"getDestination\", [data.id]);\n });\n\n handler.on(\"GetPageLabels\", function wphSetupGetPageLabels(data) {\n return pdfManager.ensureCatalog(\"pageLabels\");\n });\n\n handler.on(\"GetPageLayout\", function wphSetupGetPageLayout(data) {\n return pdfManager.ensureCatalog(\"pageLayout\");\n });\n\n handler.on(\"GetPageMode\", function wphSetupGetPageMode(data) {\n return pdfManager.ensureCatalog(\"pageMode\");\n });\n\n handler.on(\"GetViewerPreferences\", function (data) {\n return pdfManager.ensureCatalog(\"viewerPreferences\");\n });\n\n handler.on(\"GetOpenAction\", function (data) {\n return pdfManager.ensureCatalog(\"openAction\");\n });\n\n handler.on(\"GetAttachments\", function wphSetupGetAttachments(data) {\n return pdfManager.ensureCatalog(\"attachments\");\n });\n\n handler.on(\"GetJavaScript\", function wphSetupGetJavaScript(data) {\n return pdfManager.ensureCatalog(\"javaScript\");\n });\n\n handler.on(\"GetDocJSActions\", function wphSetupGetDocJSActions(data) {\n return pdfManager.ensureCatalog(\"jsActions\");\n });\n\n handler.on(\"GetPageJSActions\", function ({ pageIndex }) {\n return pdfManager.getPage(pageIndex).then(function (page) {\n return pdfManager.ensure(page, \"jsActions\");\n });\n });\n\n handler.on(\"GetOutline\", function wphSetupGetOutline(data) {\n return pdfManager.ensureCatalog(\"documentOutline\");\n });\n\n handler.on(\"GetOptionalContentConfig\", function (data) {\n return pdfManager.ensureCatalog(\"optionalContentConfig\");\n });\n\n handler.on(\"GetPermissions\", function (data) {\n return pdfManager.ensureCatalog(\"permissions\");\n });\n\n handler.on(\"GetMetadata\", function wphSetupGetMetadata(data) {\n return Promise.all([\n pdfManager.ensureDoc(\"documentInfo\"),\n pdfManager.ensureCatalog(\"metadata\"),\n ]);\n });\n\n handler.on(\"GetMarkInfo\", function wphSetupGetMarkInfo(data) {\n return pdfManager.ensureCatalog(\"markInfo\");\n });\n\n handler.on(\"GetData\", function wphSetupGetData(data) {\n pdfManager.requestLoadedStream();\n return pdfManager.onLoadedStream().then(function (stream) {\n return stream.bytes;\n });\n });\n\n handler.on(\"GetAnnotations\", function ({ pageIndex, intent }) {\n return pdfManager.getPage(pageIndex).then(function (page) {\n return page.getAnnotationsData(intent);\n });\n });\n\n handler.on(\"GetFieldObjects\", function (data) {\n return pdfManager.ensureDoc(\"fieldObjects\");\n });\n\n handler.on(\"HasJSActions\", function (data) {\n return pdfManager.ensureDoc(\"hasJSActions\");\n });\n\n handler.on(\"GetCalculationOrderIds\", function (data) {\n return pdfManager.ensureDoc(\"calculationOrderIds\");\n });\n\n handler.on(\n \"SaveDocument\",\n function ({ isPureXfa, numPages, annotationStorage, filename }) {\n pdfManager.requestLoadedStream();\n\n const promises = [\n pdfManager.onLoadedStream(),\n pdfManager.ensureCatalog(\"acroForm\"),\n pdfManager.ensureCatalog(\"acroFormRef\"),\n pdfManager.ensureDoc(\"xref\"),\n pdfManager.ensureDoc(\"startXRef\"),\n ];\n\n if (isPureXfa) {\n promises.push(pdfManager.serializeXfaData(annotationStorage));\n } else {\n for (let pageIndex = 0; pageIndex < numPages; pageIndex++) {\n promises.push(\n pdfManager.getPage(pageIndex).then(function (page) {\n const task = new WorkerTask(`Save: page ${pageIndex}`);\n return page\n .save(handler, task, annotationStorage)\n .finally(function () {\n finishWorkerTask(task);\n });\n })\n );\n }\n }\n\n return Promise.all(promises).then(function ([\n stream,\n acroForm,\n acroFormRef,\n xref,\n startXRef,\n ...refs\n ]) {\n let newRefs = [];\n let xfaData = null;\n if (isPureXfa) {\n xfaData = refs[0];\n if (!xfaData) {\n return stream.bytes;\n }\n } else {\n for (const ref of refs) {\n newRefs = ref\n .filter(x => x !== null)\n .reduce((a, b) => a.concat(b), newRefs);\n }\n\n if (newRefs.length === 0) {\n // No new refs so just return the initial bytes\n return stream.bytes;\n }\n }\n\n const xfa = (acroForm instanceof Dict && acroForm.get(\"XFA\")) || null;\n let xfaDatasetsRef = null;\n let hasXfaDatasetsEntry = false;\n if (Array.isArray(xfa)) {\n for (let i = 0, ii = xfa.length; i < ii; i += 2) {\n if (xfa[i] === \"datasets\") {\n xfaDatasetsRef = xfa[i + 1];\n acroFormRef = null;\n hasXfaDatasetsEntry = true;\n }\n }\n if (xfaDatasetsRef === null) {\n xfaDatasetsRef = xref.getNewRef();\n }\n } else if (xfa) {\n acroFormRef = null;\n // TODO: Support XFA streams.\n warn(\"Unsupported XFA type.\");\n }\n\n let newXrefInfo = Object.create(null);\n if (xref.trailer) {\n // Get string info from Info in order to compute fileId.\n const infoObj = Object.create(null);\n const xrefInfo = xref.trailer.get(\"Info\") || null;\n if (xrefInfo instanceof Dict) {\n xrefInfo.forEach((key, value) => {\n if (typeof value === \"string\") {\n infoObj[key] = stringToPDFString(value);\n }\n });\n }\n\n newXrefInfo = {\n rootRef: xref.trailer.getRaw(\"Root\") || null,\n encryptRef: xref.trailer.getRaw(\"Encrypt\") || null,\n newRef: xref.getNewRef(),\n infoRef: xref.trailer.getRaw(\"Info\") || null,\n info: infoObj,\n fileIds: xref.trailer.get(\"ID\") || null,\n startXRef,\n filename,\n };\n }\n xref.resetNewRef();\n\n return incrementalUpdate({\n originalData: stream.bytes,\n xrefInfo: newXrefInfo,\n newRefs,\n xref,\n hasXfa: !!xfa,\n xfaDatasetsRef,\n hasXfaDatasetsEntry,\n acroFormRef,\n acroForm,\n xfaData,\n });\n });\n }\n );\n\n handler.on(\"GetOperatorList\", function wphSetupRenderPage(data, sink) {\n const pageIndex = data.pageIndex;\n pdfManager.getPage(pageIndex).then(function (page) {\n const task = new WorkerTask(`GetOperatorList: page ${pageIndex}`);\n startWorkerTask(task);\n\n // NOTE: Keep this condition in sync with the `info` helper function.\n const start = verbosity >= VerbosityLevel.INFOS ? Date.now() : 0;\n\n // Pre compile the pdf page and fetch the fonts/images.\n page\n .getOperatorList({\n handler,\n sink,\n task,\n intent: data.intent,\n cacheKey: data.cacheKey,\n annotationStorage: data.annotationStorage,\n })\n .then(\n function (operatorListInfo) {\n finishWorkerTask(task);\n\n if (start) {\n info(\n `page=${pageIndex + 1} - getOperatorList: time=` +\n `${Date.now() - start}ms, len=${operatorListInfo.length}`\n );\n }\n sink.close();\n },\n function (reason) {\n finishWorkerTask(task);\n if (task.terminated) {\n return; // ignoring errors from the terminated thread\n }\n // For compatibility with older behavior, generating unknown\n // unsupported feature notification on errors.\n handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorOperatorList,\n });\n\n sink.error(reason);\n\n // TODO: Should `reason` be re-thrown here (currently that casues\n // \"Uncaught exception: ...\" messages in the console)?\n }\n );\n });\n });\n\n handler.on(\"GetTextContent\", function wphExtractText(data, sink) {\n const pageIndex = data.pageIndex;\n\n pdfManager.getPage(pageIndex).then(function (page) {\n const task = new WorkerTask(\"GetTextContent: page \" + pageIndex);\n startWorkerTask(task);\n\n // NOTE: Keep this condition in sync with the `info` helper function.\n const start = verbosity >= VerbosityLevel.INFOS ? Date.now() : 0;\n\n page\n .extractTextContent({\n handler,\n task,\n sink,\n includeMarkedContent: data.includeMarkedContent,\n combineTextItems: data.combineTextItems,\n })\n .then(\n function () {\n finishWorkerTask(task);\n\n if (start) {\n info(\n `page=${pageIndex + 1} - getTextContent: time=` +\n `${Date.now() - start}ms`\n );\n }\n sink.close();\n },\n function (reason) {\n finishWorkerTask(task);\n if (task.terminated) {\n return; // ignoring errors from the terminated thread\n }\n sink.error(reason);\n\n // TODO: Should `reason` be re-thrown here (currently that casues\n // \"Uncaught exception: ...\" messages in the console)?\n }\n );\n });\n });\n\n handler.on(\"GetStructTree\", function wphGetStructTree(data) {\n return pdfManager.getPage(data.pageIndex).then(function (page) {\n return pdfManager.ensure(page, \"getStructTree\");\n });\n });\n\n handler.on(\"FontFallback\", function (data) {\n return pdfManager.fontFallback(data.id, handler);\n });\n\n handler.on(\"Cleanup\", function wphCleanup(data) {\n return pdfManager.cleanup(/* manuallyTriggered = */ true);\n });\n\n handler.on(\"Terminate\", function wphTerminate(data) {\n terminated = true;\n\n const waitOn = [];\n if (pdfManager) {\n pdfManager.terminate(new AbortException(\"Worker was terminated.\"));\n\n const cleanupPromise = pdfManager.cleanup();\n waitOn.push(cleanupPromise);\n\n pdfManager = null;\n } else {\n clearGlobalCaches();\n }\n if (cancelXHRs) {\n cancelXHRs(new AbortException(\"Worker was terminated.\"));\n }\n\n for (const task of WorkerTasks) {\n waitOn.push(task.finished);\n task.terminate();\n }\n\n return Promise.all(waitOn).then(function () {\n // Notice that even if we destroying handler, resolved response promise\n // must be sent back.\n handler.destroy();\n handler = null;\n });\n });\n\n handler.on(\"Ready\", function wphReady(data) {\n setupDoc(docParams);\n docParams = null; // we don't need docParams anymore -- saving memory.\n });\n return workerHandlerName;\n }\n\n static initializeFromPort(port) {\n const handler = new MessageHandler(\"worker\", \"main\", port);\n WorkerMessageHandler.setup(handler, port);\n handler.send(\"ready\", null);\n }\n}\n\nfunction isMessagePort(maybePort) {\n return (\n typeof maybePort.postMessage === \"function\" && \"onmessage\" in maybePort\n );\n}\n\n// Worker thread (and not Node.js)?\nif (\n typeof window === \"undefined\" &&\n !isNodeJS &&\n typeof self !== \"undefined\" &&\n isMessagePort(self)\n) {\n WorkerMessageHandler.initializeFromPort(self);\n}\n\nexport { WorkerMessageHandler, WorkerTask };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport \"./compatibility.js\";\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\n/**\n * Refer to the `WorkerTransport.getRenderingIntent`-method in the API, to see\n * how these flags are being used:\n * - ANY, DISPLAY, and PRINT are the normal rendering intents, note the\n * `PDFPageProxy.{render, getOperatorList, getAnnotations}`-methods.\n * - ANNOTATIONS_FORMS, ANNOTATIONS_STORAGE, ANNOTATIONS_DISABLE control which\n * annotations are rendered onto the canvas (i.e. by being included in the\n * operatorList), note the `PDFPageProxy.{render, getOperatorList}`-methods\n * and their `annotationMode`-option.\n * - OPLIST is used with the `PDFPageProxy.getOperatorList`-method, note the\n * `OperatorList`-constructor (on the worker-thread).\n */\nconst RenderingIntentFlag = {\n ANY: 0x01,\n DISPLAY: 0x02,\n PRINT: 0x04,\n ANNOTATIONS_FORMS: 0x10,\n ANNOTATIONS_STORAGE: 0x20,\n ANNOTATIONS_DISABLE: 0x40,\n OPLIST: 0x100,\n};\n\nconst AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3,\n};\n\n// Permission flags from Table 22, Section 7.6.3.2 of the PDF specification.\nconst PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800,\n};\n\nconst TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4,\n};\n\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3,\n};\n\nconst AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26,\n};\n\nconst AnnotationStateModelType = {\n MARKED: \"Marked\",\n REVIEW: \"Review\",\n};\n\nconst AnnotationMarkedState = {\n MARKED: \"Marked\",\n UNMARKED: \"Unmarked\",\n};\n\nconst AnnotationReviewState = {\n ACCEPTED: \"Accepted\",\n REJECTED: \"Rejected\",\n CANCELLED: \"Cancelled\",\n COMPLETED: \"Completed\",\n NONE: \"None\",\n};\n\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\",\n};\n\nconst AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200,\n};\n\nconst AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000,\n};\n\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5,\n};\n\nconst AnnotationActionEventType = {\n E: \"Mouse Enter\",\n X: \"Mouse Exit\",\n D: \"Mouse Down\",\n U: \"Mouse Up\",\n Fo: \"Focus\",\n Bl: \"Blur\",\n PO: \"PageOpen\",\n PC: \"PageClose\",\n PV: \"PageVisible\",\n PI: \"PageInvisible\",\n K: \"Keystroke\",\n F: \"Format\",\n V: \"Validate\",\n C: \"Calculate\",\n};\n\nconst DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\",\n};\n\nconst PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\",\n};\n\nconst StreamType = {\n UNKNOWN: \"UNKNOWN\",\n FLATE: \"FLATE\",\n LZW: \"LZW\",\n DCT: \"DCT\",\n JPX: \"JPX\",\n JBIG: \"JBIG\",\n A85: \"A85\",\n AHX: \"AHX\",\n CCF: \"CCF\",\n RLX: \"RLX\", // PDF short name is 'RL', but telemetry requires three chars.\n};\n\nconst FontType = {\n UNKNOWN: \"UNKNOWN\",\n TYPE1: \"TYPE1\",\n TYPE1STANDARD: \"TYPE1STANDARD\",\n TYPE1C: \"TYPE1C\",\n CIDFONTTYPE0: \"CIDFONTTYPE0\",\n CIDFONTTYPE0C: \"CIDFONTTYPE0C\",\n TRUETYPE: \"TRUETYPE\",\n CIDFONTTYPE2: \"CIDFONTTYPE2\",\n TYPE3: \"TYPE3\",\n OPENTYPE: \"OPENTYPE\",\n TYPE0: \"TYPE0\",\n MMTYPE1: \"MMTYPE1\",\n};\n\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5,\n};\n\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2,\n};\n\n// All the possible operations for an operator list.\nconst OPS = {\n // Intentionally start from 1 so it is easy to spot bad operators that will be\n // 0's.\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotations: 78,\n endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n /** @deprecated unused */\n paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91,\n boundingBoxes: 100,\n operationPosition: 101\n};\n\nconst UNSUPPORTED_FEATURES = {\n /** @deprecated unused */\n unknown: \"unknown\",\n forms: \"forms\",\n javaScript: \"javaScript\",\n signatures: \"signatures\",\n smask: \"smask\",\n shadingPattern: \"shadingPattern\",\n /** @deprecated unused */\n font: \"font\",\n errorTilingPattern: \"errorTilingPattern\",\n errorExtGState: \"errorExtGState\",\n errorXObject: \"errorXObject\",\n errorFontLoadType3: \"errorFontLoadType3\",\n errorFontState: \"errorFontState\",\n errorFontMissing: \"errorFontMissing\",\n errorFontTranslate: \"errorFontTranslate\",\n errorColorSpace: \"errorColorSpace\",\n errorOperatorList: \"errorOperatorList\",\n errorFontToUnicode: \"errorFontToUnicode\",\n errorFontLoadNative: \"errorFontLoadNative\",\n errorFontBuildPath: \"errorFontBuildPath\",\n errorFontGetPath: \"errorFontGetPath\",\n errorMarkedContent: \"errorMarkedContent\",\n errorContentSubStream: \"errorContentSubStream\",\n};\n\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2,\n};\n\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\n\nfunction getVerbosityLevel() {\n return verbosity;\n}\n\n// A notice for devs. These are good for things that are helpful to devs, such\n// as warning that Workers were disabled, which is important to devs but not\n// end users.\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\n\n// Non-fatal warnings.\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log(`Warning: ${msg}`);\n }\n}\n\nfunction unreachable(msg) {\n throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\n\n// Checks if URLs use one of the allowed protocols, e.g. to avoid XSS.\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n switch (url.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Attempts to create a valid absolute URL.\n *\n * @param {URL|string} url - An absolute, or relative, URL.\n * @param {URL|string} [baseUrl] - An absolute URL.\n * @param {Object} [options]\n * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n if (!url) {\n return null;\n }\n try {\n if (options && typeof url === \"string\") {\n // Let URLs beginning with \"www.\" default to using the \"http://\" protocol.\n if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n const dots = url.match(/\\./g);\n // Avoid accidentally matching a *relative* URL pointing to a file named\n // e.g. \"www.pdf\" or similar.\n if (dots && dots.length >= 2) {\n url = `http://${url}`;\n }\n }\n\n // According to ISO 32000-1:2008, section 12.6.4.7, URIs should be encoded\n // in 7-bit ASCII. Some bad PDFs use UTF-8 encoding; see bug 1122280.\n if (options.tryConvertEncoding) {\n try {\n url = stringToUTF8String(url);\n } catch (ex) {}\n }\n }\n\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {\n /* `new URL()` will throw on incorrect data. */\n }\n return null;\n}\n\nfunction shadow(obj, prop, value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n prop in obj,\n `shadow: Property \"${prop && prop.toString()}\" not found in object.`\n );\n }\n Object.defineProperty(obj, prop, {\n value,\n enumerable: true,\n configurable: true,\n writable: false,\n });\n return value;\n}\n\n/**\n * @type {any}\n */\nconst BaseException = (function BaseExceptionClosure() {\n // eslint-disable-next-line no-shadow\n function BaseException(message, name) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n this.message = message;\n this.name = name;\n }\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n\n return BaseException;\n})();\n\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg, \"PasswordException\");\n this.code = code;\n }\n}\n\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg, \"UnknownErrorException\");\n this.details = details;\n }\n}\n\nclass InvalidPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"InvalidPDFException\");\n }\n}\n\nclass MissingPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"MissingPDFException\");\n }\n}\n\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg, \"UnexpectedResponseException\");\n this.status = status;\n }\n}\n\n/**\n * Error caused during parsing PDF data.\n */\nclass FormatError extends BaseException {\n constructor(msg) {\n super(msg, \"FormatError\");\n }\n}\n\n/**\n * Error used to indicate task cancellation.\n */\nclass AbortException extends BaseException {\n constructor(msg) {\n super(msg, \"AbortException\");\n }\n}\n\nfunction bytesToString(bytes) {\n if (\n typeof bytes !== \"object\" ||\n bytes === null ||\n bytes.length === undefined\n ) {\n unreachable(\"Invalid argument for bytesToString\");\n }\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n const strBuf = [];\n for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n const chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n if (typeof str !== \"string\") {\n unreachable(\"Invalid argument for stringToBytes\");\n }\n const length = str.length;\n const bytes = new Uint8Array(length);\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n return bytes;\n}\n\n/**\n * Gets length of the array (Array, Uint8Array, or string) in bytes.\n * @param {Array|Uint8Array|string} arr\n * @returns {number}\n */\n// eslint-disable-next-line consistent-return\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n if (arr.byteLength !== undefined) {\n return arr.byteLength;\n }\n unreachable(\"Invalid argument for arrayByteLength\");\n}\n\n/**\n * Combines array items (arrays) into single Uint8Array object.\n * @param {Array|Uint8Array|string>} arr - the array of the arrays\n * (Array, Uint8Array, or string).\n * @returns {Uint8Array}\n */\nfunction arraysToBytes(arr) {\n const length = arr.length;\n // Shortcut: if first and only item is Uint8Array, return it.\n if (length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n let resultLength = 0;\n for (let i = 0; i < length; i++) {\n resultLength += arrayByteLength(arr[i]);\n }\n let pos = 0;\n const data = new Uint8Array(resultLength);\n for (let i = 0; i < length; i++) {\n let item = arr[i];\n if (!(item instanceof Uint8Array)) {\n if (typeof item === \"string\") {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n const itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n return data;\n}\n\nfunction string32(value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n typeof value === \"number\" && Math.abs(value) < 2 ** 32,\n `string32: Unexpected input \"${value}\".`\n );\n }\n return String.fromCharCode(\n (value >> 24) & 0xff,\n (value >> 16) & 0xff,\n (value >> 8) & 0xff,\n value & 0xff\n );\n}\n\nfunction objectSize(obj) {\n return Object.keys(obj).length;\n}\n\n// Ensure that the returned Object has a `null` prototype; hence why\n// `Object.fromEntries(...)` is not used.\nfunction objectFromMap(map) {\n const obj = Object.create(null);\n for (const [key, value] of map) {\n obj[key] = value;\n }\n return obj;\n}\n\n// Checks the endianness of the platform.\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\n\n// Checks if it's possible to eval JS expressions.\nfunction isEvalSupported() {\n try {\n new Function(\"\"); // eslint-disable-line no-new, no-new-func\n return true;\n } catch (e) {\n return false;\n }\n}\n\nclass FeatureTest {\n static get isLittleEndian() {\n return shadow(this, \"isLittleEndian\", isLittleEndian());\n }\n\n static get isEvalSupported() {\n return shadow(this, \"isEvalSupported\", isEvalSupported());\n }\n\n static get isOffscreenCanvasSupported() {\n return shadow(\n this,\n \"isOffscreenCanvasSupported\",\n typeof OffscreenCanvas !== \"undefined\"\n );\n }\n}\n\nconst hexNumbers = [...Array(256).keys()].map(n =>\n n.toString(16).padStart(2, \"0\")\n);\n\nclass Util {\n static makeHexColor(r, g, b) {\n return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n }\n\n // Apply a scaling matrix to some min/max values.\n // If a scaling factor is negative then min and max must be\n // swaped.\n static scaleMinMax(transform, minMax) {\n let temp;\n if (transform[0]) {\n if (transform[0] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[0];\n minMax[1] *= transform[0];\n\n if (transform[3] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[3];\n minMax[3] *= transform[3];\n } else {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n\n if (transform[1] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[1];\n minMax[3] *= transform[1];\n\n if (transform[2] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[2];\n minMax[1] *= transform[2];\n }\n minMax[0] += transform[4];\n minMax[1] += transform[4];\n minMax[2] += transform[5];\n minMax[3] += transform[5];\n }\n\n // Concatenates two transformation matrices together and returns the result.\n static transform(m1, m2) {\n return [\n m1[0] * m2[0] + m1[2] * m2[1],\n m1[1] * m2[0] + m1[3] * m2[1],\n m1[0] * m2[2] + m1[2] * m2[3],\n m1[1] * m2[2] + m1[3] * m2[3],\n m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n m1[1] * m2[4] + m1[3] * m2[5] + m1[5],\n ];\n }\n\n // For 2d affine transforms\n static applyTransform(p, m) {\n const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n }\n\n static applyInverseTransform(p, m) {\n const d = m[0] * m[3] - m[1] * m[2];\n const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n }\n\n // Applies the transform to the rectangle and finds the minimum axially\n // aligned bounding box.\n static getAxialAlignedBoundingBox(r, m) {\n const p1 = Util.applyTransform(r, m);\n const p2 = Util.applyTransform(r.slice(2, 4), m);\n const p3 = Util.applyTransform([r[0], r[3]], m);\n const p4 = Util.applyTransform([r[2], r[1]], m);\n return [\n Math.min(p1[0], p2[0], p3[0], p4[0]),\n Math.min(p1[1], p2[1], p3[1], p4[1]),\n Math.max(p1[0], p2[0], p3[0], p4[0]),\n Math.max(p1[1], p2[1], p3[1], p4[1]),\n ];\n }\n\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [\n m[3] / d,\n -m[1] / d,\n -m[2] / d,\n m[0] / d,\n (m[2] * m[5] - m[4] * m[3]) / d,\n (m[4] * m[1] - m[5] * m[0]) / d,\n ];\n }\n\n // Apply a generic 3d matrix M on a 3-vector v:\n // | a b c | | X |\n // | d e f | x | Y |\n // | g h i | | Z |\n // M is assumed to be serialized as [a,b,c,d,e,f,g,h,i],\n // with v as [X,Y,Z]\n static apply3dTransform(m, v) {\n return [\n m[0] * v[0] + m[1] * v[1] + m[2] * v[2],\n m[3] * v[0] + m[4] * v[1] + m[5] * v[2],\n m[6] * v[0] + m[7] * v[1] + m[8] * v[2],\n ];\n }\n\n // This calculation uses Singular Value Decomposition.\n // The SVD can be represented with formula A = USV. We are interested in the\n // matrix S here because it represents the scale values.\n static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\n\n // Multiply matrix m with its transpose.\n const a = m[0] * transpose[0] + m[1] * transpose[2];\n const b = m[0] * transpose[1] + m[1] * transpose[3];\n const c = m[2] * transpose[0] + m[3] * transpose[2];\n const d = m[2] * transpose[1] + m[3] * transpose[3];\n\n // Solve the second degree polynomial to get roots.\n const first = (a + d) / 2;\n const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n const sx = first + second || 1;\n const sy = first - second || 1;\n\n // Scale values are the square roots of the eigenvalues.\n return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n\n // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)\n // For coordinate systems whose origin lies in the bottom-left, this\n // means normalization to (BL,TR) ordering. For systems with origin in the\n // top-left, this means (TL,BR) ordering.\n static normalizeRect(rect) {\n const r = rect.slice(0); // clone rect\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n }\n\n // Returns a rectangle [x1, y1, x2, y2] corresponding to the\n // intersection of rect1 and rect2. If no intersection, returns 'null'\n // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n static intersect(rect1, rect2) {\n const xLow = Math.max(\n Math.min(rect1[0], rect1[2]),\n Math.min(rect2[0], rect2[2])\n );\n const xHigh = Math.min(\n Math.max(rect1[0], rect1[2]),\n Math.max(rect2[0], rect2[2])\n );\n if (xLow > xHigh) {\n return null;\n }\n const yLow = Math.max(\n Math.min(rect1[1], rect1[3]),\n Math.min(rect2[1], rect2[3])\n );\n const yHigh = Math.min(\n Math.max(rect1[1], rect1[3]),\n Math.max(rect2[1], rect2[3])\n );\n if (yLow > yHigh) {\n return null;\n }\n\n return [xLow, yLow, xHigh, yHigh];\n }\n\n // From https://github.com/adobe-webplatform/Snap.svg/blob/b365287722a72526000ac4bfcf0ce4cac2faa015/src/path.js#L852\n static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n const tvalues = [],\n bounds = [[], []];\n let a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n for (let i = 0; i < 2; ++i) {\n if (i === 0) {\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n } else {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) < 1e-12) {\n continue;\n }\n t = -c / b;\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n continue;\n }\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = Math.sqrt(b2ac);\n if (b2ac < 0) {\n continue;\n }\n t1 = (-b + sqrtb2ac) / (2 * a);\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n t2 = (-b - sqrtb2ac) / (2 * a);\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n let j = tvalues.length,\n mt;\n const jlen = j;\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] =\n mt * mt * mt * x0 +\n 3 * mt * mt * t * x1 +\n 3 * mt * t * t * x2 +\n t * t * t * x3;\n bounds[1][j] =\n mt * mt * mt * y0 +\n 3 * mt * mt * t * y1 +\n 3 * mt * t * t * y2 +\n t * t * t * y3;\n }\n\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n bounds[0].length = bounds[1].length = jlen + 2;\n\n return [\n Math.min(...bounds[0]),\n Math.min(...bounds[1]),\n Math.max(...bounds[0]),\n Math.max(...bounds[1]),\n ];\n }\n}\n\nconst PDFStringTranslateTable = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8,\n 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192,\n 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018,\n 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d,\n 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac,\n];\n\nfunction stringToPDFString(str) {\n if (str[0] >= \"\\xEF\") {\n let encoding;\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n encoding = \"utf-16be\";\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n encoding = \"utf-16le\";\n } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n encoding = \"utf-8\";\n }\n\n if (encoding) {\n try {\n const decoder = new TextDecoder(encoding, { fatal: true });\n const buffer = stringToBytes(str);\n return decoder.decode(buffer);\n } catch (ex) {\n warn(`stringToPDFString: \"${ex}\".`);\n }\n }\n }\n // ISO Latin 1\n const strBuf = [];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n return strBuf.join(\"\");\n}\n\nfunction escapeString(str) {\n // replace \"(\", \")\", \"\\n\", \"\\r\" and \"\\\"\n // by \"\\(\", \"\\)\", \"\\\\n\", \"\\\\r\" and \"\\\\\"\n // in order to write it in a PDF file.\n return str.replace(/([()\\\\\\n\\r])/g, match => {\n if (match === \"\\n\") {\n return \"\\\\n\";\n } else if (match === \"\\r\") {\n return \"\\\\r\";\n }\n return `\\\\${match}`;\n });\n}\n\nfunction isAscii(str) {\n return /^[\\x00-\\x7F]*$/.test(str);\n}\n\nfunction stringToUTF16BEString(str) {\n const buf = [\"\\xFE\\xFF\"];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n buf.push(\n String.fromCharCode((char >> 8) & 0xff),\n String.fromCharCode(char & 0xff)\n );\n }\n return buf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isArrayBuffer(v) {\n return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n for (let i = 0, ii = arr1.length; i < ii; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction getModificationDate(date = new Date()) {\n const buffer = [\n date.getUTCFullYear().toString(),\n (date.getUTCMonth() + 1).toString().padStart(2, \"0\"),\n date.getUTCDate().toString().padStart(2, \"0\"),\n date.getUTCHours().toString().padStart(2, \"0\"),\n date.getUTCMinutes().toString().padStart(2, \"0\"),\n date.getUTCSeconds().toString().padStart(2, \"0\"),\n ];\n\n return buffer.join(\"\");\n}\n\n/**\n * Promise Capability object.\n *\n * @typedef {Object} PromiseCapability\n * @property {Promise} promise - A Promise object.\n * @property {boolean} settled - If the Promise has been fulfilled/rejected.\n * @property {function} resolve - Fulfills the Promise.\n * @property {function} reject - Rejects the Promise.\n */\n\n/**\n * Creates a promise capability object.\n * @alias createPromiseCapability\n *\n * @returns {PromiseCapability}\n */\nfunction createPromiseCapability() {\n const capability = Object.create(null);\n let isSettled = false;\n\n Object.defineProperty(capability, \"settled\", {\n get() {\n return isSettled;\n },\n });\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = function (data) {\n isSettled = true;\n resolve(data);\n };\n capability.reject = function (reason) {\n isSettled = true;\n reject(reason);\n };\n });\n return capability;\n}\n\nexport {\n AbortException,\n AnnotationActionEventType,\n AnnotationBorderStyleType,\n AnnotationFieldFlag,\n AnnotationFlag,\n AnnotationMarkedState,\n AnnotationMode,\n AnnotationReplyType,\n AnnotationReviewState,\n AnnotationStateModelType,\n AnnotationType,\n arrayByteLength,\n arraysToBytes,\n assert,\n BaseException,\n bytesToString,\n CMapCompressionType,\n createPromiseCapability,\n createValidAbsoluteUrl,\n DocumentActionEventType,\n escapeString,\n FeatureTest,\n FONT_IDENTITY_MATRIX,\n FontType,\n FormatError,\n getModificationDate,\n getVerbosityLevel,\n IDENTITY_MATRIX,\n ImageKind,\n info,\n InvalidPDFException,\n isArrayBuffer,\n isArrayEqual,\n isAscii,\n MissingPDFException,\n objectFromMap,\n objectSize,\n OPS,\n PageActionEventType,\n PasswordException,\n PasswordResponses,\n PermissionFlag,\n RenderingIntentFlag,\n setVerbosityLevel,\n shadow,\n StreamType,\n string32,\n stringToBytes,\n stringToPDFString,\n stringToUTF16BEString,\n stringToUTF8String,\n TextRenderingMode,\n UnexpectedResponseException,\n UnknownErrorException,\n unreachable,\n UNSUPPORTED_FEATURES,\n utf8StringToString,\n Util,\n VerbosityLevel,\n warn,\n};\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals __non_webpack_require__ */\n\nimport { isNodeJS } from \"./is_node.js\";\n\n// Skip compatibility checks for modern builds and if we already ran the module.\nif (\n (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"SKIP_BABEL\")) &&\n !globalThis._pdfjsCompatibilityChecked\n) {\n globalThis._pdfjsCompatibilityChecked = true;\n\n // Support: Node.js\n (function checkNodeBtoa() {\n if (globalThis.btoa || !isNodeJS) {\n return;\n }\n globalThis.btoa = function (chars) {\n // eslint-disable-next-line no-undef\n return Buffer.from(chars, \"binary\").toString(\"base64\");\n };\n })();\n\n // Support: Node.js\n (function checkNodeAtob() {\n if (globalThis.atob || !isNodeJS) {\n return;\n }\n globalThis.atob = function (input) {\n // eslint-disable-next-line no-undef\n return Buffer.from(input, \"base64\").toString(\"binary\");\n };\n })();\n\n // Support: Node.js\n (function checkDOMMatrix() {\n if (globalThis.DOMMatrix || !isNodeJS) {\n return;\n }\n globalThis.DOMMatrix = __non_webpack_require__(\n \"dommatrix/dist/dommatrix.js\"\n );\n })();\n\n // Provides support for *recent* additions to the Promise specification,\n // however basic Promise support is assumed to be available natively.\n // Support: Firefox<71, Chrome<76, Safari<13, Node.js<12.9.0\n (function checkPromise() {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n // The current image decoders are synchronous, hence `Promise` shouldn't\n // need to be polyfilled for the IMAGE_DECODERS build target.\n return;\n }\n if (globalThis.Promise.allSettled) {\n return;\n }\n globalThis.Promise = require(\"core-js/es/promise/index.js\");\n })();\n\n // Support: Node.js\n (function checkReadableStream() {\n if (globalThis.ReadableStream || !isNodeJS) {\n return;\n }\n globalThis.ReadableStream = __non_webpack_require__(\n \"web-streams-polyfill/dist/ponyfill.js\"\n ).ReadableStream;\n })();\n\n // Support: Firefox<94, Chrome<98, Safari<15.4, Node.js<17.0.0\n (function checkStructuredClone() {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n // The current image decoders are synchronous, hence `structuredClone`\n // shouldn't need to be polyfilled for the IMAGE_DECODERS build target.\n return;\n }\n if (globalThis.structuredClone) {\n return;\n }\n require(\"core-js/web/structured-clone.js\");\n })();\n}\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals process */\n\n// NW.js / Electron is a browser context, but copies some Node.js objects; see\n// http://docs.nwjs.io/en/latest/For%20Users/Advanced/JavaScript%20Contexts%20in%20NW.js/#access-nodejs-and-nwjs-api-in-browser-context\n// https://www.electronjs.org/docs/api/process#processversionselectron-readonly\n// https://www.electronjs.org/docs/api/process#processtype-readonly\nconst isNodeJS =\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n typeof process === \"object\" &&\n process + \"\" === \"[object process]\" &&\n !process.versions.nw &&\n !(process.versions.electron && process.type && process.type !== \"browser\");\n\nexport { isNodeJS };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, shadow, unreachable } from \"../shared/util.js\";\n\nconst CIRCULAR_REF = Symbol(\"CIRCULAR_REF\");\nconst EOF = Symbol(\"EOF\");\n\nconst Name = (function NameClosure() {\n let nameCache = Object.create(null);\n\n // eslint-disable-next-line no-shadow\n class Name {\n constructor(name) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n typeof name !== \"string\"\n ) {\n unreachable('Name: The \"name\" must be a string.');\n }\n this.name = name;\n }\n\n static get(name) {\n const nameValue = nameCache[name];\n // eslint-disable-next-line no-restricted-syntax\n return nameValue ? nameValue : (nameCache[name] = new Name(name));\n }\n\n static _clearCache() {\n nameCache = Object.create(null);\n }\n }\n\n return Name;\n})();\n\nconst Cmd = (function CmdClosure() {\n let cmdCache = Object.create(null);\n\n // eslint-disable-next-line no-shadow\n class Cmd {\n constructor(cmd) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n typeof cmd !== \"string\"\n ) {\n unreachable('Cmd: The \"cmd\" must be a string.');\n }\n this.cmd = cmd;\n }\n\n static get(cmd) {\n const cmdValue = cmdCache[cmd];\n // eslint-disable-next-line no-restricted-syntax\n return cmdValue ? cmdValue : (cmdCache[cmd] = new Cmd(cmd));\n }\n\n static _clearCache() {\n cmdCache = Object.create(null);\n }\n }\n\n return Cmd;\n})();\n\nconst nonSerializable = function nonSerializableClosure() {\n return nonSerializable; // Creating closure on some variable.\n};\n\nclass Dict {\n constructor(xref = null) {\n // Map should only be used internally, use functions below to access.\n this._map = Object.create(null);\n this.xref = xref;\n this.objId = null;\n this.suppressEncryption = false;\n this.__nonSerializable__ = nonSerializable; // Disable cloning of the Dict.\n }\n\n assignXref(newXref) {\n this.xref = newXref;\n }\n\n get size() {\n return Object.keys(this._map).length;\n }\n\n // Automatically dereferences Ref objects.\n get(key1, key2, key3) {\n let value = this._map[key1];\n if (value === undefined && key2 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key2.length < key1.length\n ) {\n unreachable(\"Dict.get: Expected keys to be ordered by length.\");\n }\n value = this._map[key2];\n if (value === undefined && key3 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key3.length < key2.length\n ) {\n unreachable(\"Dict.get: Expected keys to be ordered by length.\");\n }\n value = this._map[key3];\n }\n }\n if (value instanceof Ref && this.xref) {\n return this.xref.fetch(value, this.suppressEncryption);\n }\n return value;\n }\n\n // Same as get(), but returns a promise and uses fetchIfRefAsync().\n async getAsync(key1, key2, key3) {\n let value = this._map[key1];\n if (value === undefined && key2 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key2.length < key1.length\n ) {\n unreachable(\"Dict.getAsync: Expected keys to be ordered by length.\");\n }\n value = this._map[key2];\n if (value === undefined && key3 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key3.length < key2.length\n ) {\n unreachable(\"Dict.getAsync: Expected keys to be ordered by length.\");\n }\n value = this._map[key3];\n }\n }\n if (value instanceof Ref && this.xref) {\n return this.xref.fetchAsync(value, this.suppressEncryption);\n }\n return value;\n }\n\n // Same as get(), but dereferences all elements if the result is an Array.\n getArray(key1, key2, key3) {\n let value = this._map[key1];\n if (value === undefined && key2 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key2.length < key1.length\n ) {\n unreachable(\"Dict.getArray: Expected keys to be ordered by length.\");\n }\n value = this._map[key2];\n if (value === undefined && key3 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key3.length < key2.length\n ) {\n unreachable(\"Dict.getArray: Expected keys to be ordered by length.\");\n }\n value = this._map[key3];\n }\n }\n if (value instanceof Ref && this.xref) {\n value = this.xref.fetch(value, this.suppressEncryption);\n }\n\n if (Array.isArray(value)) {\n value = value.slice(); // Ensure that we don't modify the Dict data.\n for (let i = 0, ii = value.length; i < ii; i++) {\n if (value[i] instanceof Ref && this.xref) {\n value[i] = this.xref.fetch(value[i], this.suppressEncryption);\n }\n }\n }\n return value;\n }\n\n // No dereferencing.\n getRaw(key) {\n return this._map[key];\n }\n\n getKeys() {\n return Object.keys(this._map);\n }\n\n // No dereferencing.\n getRawValues() {\n return Object.values(this._map);\n }\n\n set(key, value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n if (typeof key !== \"string\") {\n unreachable('Dict.set: The \"key\" must be a string.');\n } else if (value === undefined) {\n unreachable('Dict.set: The \"value\" cannot be undefined.');\n }\n }\n this._map[key] = value;\n }\n\n has(key) {\n return this._map[key] !== undefined;\n }\n\n forEach(callback) {\n for (const key in this._map) {\n callback(key, this.get(key));\n }\n }\n\n static get empty() {\n const emptyDict = new Dict(null);\n\n emptyDict.set = (key, value) => {\n unreachable(\"Should not call `set` on the empty dictionary.\");\n };\n return shadow(this, \"empty\", emptyDict);\n }\n\n static merge({ xref, dictArray, mergeSubDicts = false }) {\n const mergedDict = new Dict(xref),\n properties = new Map();\n\n for (const dict of dictArray) {\n if (!(dict instanceof Dict)) {\n continue;\n }\n for (const [key, value] of Object.entries(dict._map)) {\n let property = properties.get(key);\n if (property === undefined) {\n property = [];\n properties.set(key, property);\n } else if (!mergeSubDicts || !(value instanceof Dict)) {\n // Ignore additional entries, if either:\n // - This is a \"shallow\" merge, where only the first element matters.\n // - The value is *not* a `Dict`, since other types cannot be merged.\n continue;\n }\n property.push(value);\n }\n }\n for (const [name, values] of properties) {\n if (values.length === 1 || !(values[0] instanceof Dict)) {\n mergedDict._map[name] = values[0];\n continue;\n }\n const subDict = new Dict(xref);\n\n for (const dict of values) {\n for (const [key, value] of Object.entries(dict._map)) {\n if (subDict._map[key] === undefined) {\n subDict._map[key] = value;\n }\n }\n }\n if (subDict.size > 0) {\n mergedDict._map[name] = subDict;\n }\n }\n properties.clear();\n\n return mergedDict.size > 0 ? mergedDict : Dict.empty;\n }\n}\n\nconst Ref = (function RefClosure() {\n let refCache = Object.create(null);\n\n // eslint-disable-next-line no-shadow\n class Ref {\n constructor(num, gen) {\n this.num = num;\n this.gen = gen;\n }\n\n toString() {\n // This function is hot, so we make the string as compact as possible.\n // |this.gen| is almost always zero, so we treat that case specially.\n if (this.gen === 0) {\n return `${this.num}R`;\n }\n return `${this.num}R${this.gen}`;\n }\n\n static get(num, gen) {\n const key = gen === 0 ? `${num}R` : `${num}R${gen}`;\n const refValue = refCache[key];\n // eslint-disable-next-line no-restricted-syntax\n return refValue ? refValue : (refCache[key] = new Ref(num, gen));\n }\n\n static _clearCache() {\n refCache = Object.create(null);\n }\n }\n\n return Ref;\n})();\n\n// The reference is identified by number and generation.\n// This structure stores only one instance of the reference.\nclass RefSet {\n constructor(parent = null) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n parent &&\n !(parent instanceof RefSet)\n ) {\n unreachable('RefSet: Invalid \"parent\" value.');\n }\n this._set = new Set(parent && parent._set);\n }\n\n has(ref) {\n return this._set.has(ref.toString());\n }\n\n put(ref) {\n this._set.add(ref.toString());\n }\n\n remove(ref) {\n this._set.delete(ref.toString());\n }\n\n [Symbol.iterator]() {\n return this._set.values();\n }\n\n clear() {\n this._set.clear();\n }\n}\n\nclass RefSetCache {\n constructor() {\n this._map = new Map();\n }\n\n get size() {\n return this._map.size;\n }\n\n get(ref) {\n return this._map.get(ref.toString());\n }\n\n has(ref) {\n return this._map.has(ref.toString());\n }\n\n put(ref, obj) {\n this._map.set(ref.toString(), obj);\n }\n\n putAlias(ref, aliasRef) {\n this._map.set(ref.toString(), this.get(aliasRef));\n }\n\n [Symbol.iterator]() {\n return this._map.values();\n }\n\n clear() {\n this._map.clear();\n }\n}\n\nfunction isName(v, name) {\n return v instanceof Name && (name === undefined || v.name === name);\n}\n\nfunction isCmd(v, cmd) {\n return v instanceof Cmd && (cmd === undefined || v.cmd === cmd);\n}\n\nfunction isDict(v, type) {\n return (\n v instanceof Dict && (type === undefined || isName(v.get(\"Type\"), type))\n );\n}\n\nfunction isRefsEqual(v1, v2) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n v1 instanceof Ref && v2 instanceof Ref,\n \"isRefsEqual: Both parameters should be `Ref`s.\"\n );\n }\n return v1.num === v2.num && v1.gen === v2.gen;\n}\n\nfunction clearPrimitiveCaches() {\n Cmd._clearCache();\n Name._clearCache();\n Ref._clearCache();\n}\n\nexport {\n CIRCULAR_REF,\n clearPrimitiveCaches,\n Cmd,\n Dict,\n EOF,\n isCmd,\n isDict,\n isName,\n isRefsEqual,\n Name,\n Ref,\n RefSet,\n RefSetCache,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n createValidAbsoluteUrl,\n shadow,\n unreachable,\n warn,\n} from \"../shared/util.js\";\nimport { ChunkedStreamManager } from \"./chunked_stream.js\";\nimport { MissingDataException } from \"./core_utils.js\";\nimport { PDFDocument } from \"./document.js\";\nimport { Stream } from \"./stream.js\";\n\nfunction parseDocBaseUrl(url) {\n if (url) {\n const absoluteUrl = createValidAbsoluteUrl(url);\n if (absoluteUrl) {\n return absoluteUrl.href;\n }\n warn(`Invalid absolute docBaseUrl: \"${url}\".`);\n }\n return null;\n}\n\nclass BasePdfManager {\n constructor() {\n if (this.constructor === BasePdfManager) {\n unreachable(\"Cannot initialize BasePdfManager.\");\n }\n }\n\n get docId() {\n return this._docId;\n }\n\n get password() {\n return this._password;\n }\n\n get docBaseUrl() {\n const catalog = this.pdfDocument.catalog;\n return shadow(this, \"docBaseUrl\", catalog.baseUrl || this._docBaseUrl);\n }\n\n onLoadedStream() {\n unreachable(\"Abstract method `onLoadedStream` called\");\n }\n\n ensureDoc(prop, args) {\n return this.ensure(this.pdfDocument, prop, args);\n }\n\n ensureXRef(prop, args) {\n return this.ensure(this.pdfDocument.xref, prop, args);\n }\n\n ensureCatalog(prop, args) {\n return this.ensure(this.pdfDocument.catalog, prop, args);\n }\n\n getPage(pageIndex) {\n return this.pdfDocument.getPage(pageIndex);\n }\n\n fontFallback(id, handler) {\n return this.pdfDocument.fontFallback(id, handler);\n }\n\n loadXfaFonts(handler, task) {\n return this.pdfDocument.loadXfaFonts(handler, task);\n }\n\n loadXfaImages() {\n return this.pdfDocument.loadXfaImages();\n }\n\n serializeXfaData(annotationStorage) {\n return this.pdfDocument.serializeXfaData(annotationStorage);\n }\n\n cleanup(manuallyTriggered = false) {\n return this.pdfDocument.cleanup(manuallyTriggered);\n }\n\n async ensure(obj, prop, args) {\n unreachable(\"Abstract method `ensure` called\");\n }\n\n requestRange(begin, end) {\n unreachable(\"Abstract method `requestRange` called\");\n }\n\n requestLoadedStream() {\n unreachable(\"Abstract method `requestLoadedStream` called\");\n }\n\n sendProgressiveData(chunk) {\n unreachable(\"Abstract method `sendProgressiveData` called\");\n }\n\n updatePassword(password) {\n this._password = password;\n }\n\n terminate(reason) {\n unreachable(\"Abstract method `terminate` called\");\n }\n}\n\nclass LocalPdfManager extends BasePdfManager {\n constructor(\n docId,\n data,\n password,\n msgHandler,\n evaluatorOptions,\n enableXfa,\n docBaseUrl\n ) {\n super();\n\n this._docId = docId;\n this._password = password;\n this._docBaseUrl = parseDocBaseUrl(docBaseUrl);\n this.msgHandler = msgHandler;\n this.evaluatorOptions = evaluatorOptions;\n this.enableXfa = enableXfa;\n\n const stream = new Stream(data);\n this.pdfDocument = new PDFDocument(this, stream);\n this._loadedStreamPromise = Promise.resolve(stream);\n }\n\n async ensure(obj, prop, args) {\n const value = obj[prop];\n if (typeof value === \"function\") {\n return value.apply(obj, args);\n }\n return value;\n }\n\n requestRange(begin, end) {\n return Promise.resolve();\n }\n\n requestLoadedStream() {}\n\n onLoadedStream() {\n return this._loadedStreamPromise;\n }\n\n terminate(reason) {}\n}\n\nclass NetworkPdfManager extends BasePdfManager {\n constructor(\n docId,\n pdfNetworkStream,\n args,\n evaluatorOptions,\n enableXfa,\n docBaseUrl\n ) {\n super();\n\n this._docId = docId;\n this._password = args.password;\n this._docBaseUrl = parseDocBaseUrl(docBaseUrl);\n this.msgHandler = args.msgHandler;\n this.evaluatorOptions = evaluatorOptions;\n this.enableXfa = enableXfa;\n\n this.streamManager = new ChunkedStreamManager(pdfNetworkStream, {\n msgHandler: args.msgHandler,\n length: args.length,\n disableAutoFetch: args.disableAutoFetch,\n rangeChunkSize: args.rangeChunkSize,\n });\n this.pdfDocument = new PDFDocument(this, this.streamManager.getStream());\n }\n\n async ensure(obj, prop, args) {\n try {\n const value = obj[prop];\n if (typeof value === \"function\") {\n return value.apply(obj, args);\n }\n return value;\n } catch (ex) {\n if (!(ex instanceof MissingDataException)) {\n throw ex;\n }\n await this.requestRange(ex.begin, ex.end);\n return this.ensure(obj, prop, args);\n }\n }\n\n requestRange(begin, end) {\n return this.streamManager.requestRange(begin, end);\n }\n\n requestLoadedStream() {\n this.streamManager.requestAllChunks();\n }\n\n sendProgressiveData(chunk) {\n this.streamManager.onReceiveData({ chunk });\n }\n\n onLoadedStream() {\n return this.streamManager.onLoadedStream();\n }\n\n terminate(reason) {\n this.streamManager.abort(reason);\n }\n}\n\nexport { LocalPdfManager, NetworkPdfManager };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n arrayByteLength,\n arraysToBytes,\n createPromiseCapability,\n} from \"../shared/util.js\";\nimport { MissingDataException } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\n\nclass ChunkedStream extends Stream {\n constructor(length, chunkSize, manager) {\n super(\n /* arrayBuffer = */ new Uint8Array(length),\n /* start = */ 0,\n /* length = */ length,\n /* dict = */ null\n );\n\n this.chunkSize = chunkSize;\n this._loadedChunks = new Set();\n this.numChunks = Math.ceil(length / chunkSize);\n this.manager = manager;\n this.progressiveDataLength = 0;\n this.lastSuccessfulEnsureByteChunk = -1; // Single-entry cache\n }\n\n // If a particular stream does not implement one or more of these methods,\n // an error should be thrown.\n getMissingChunks() {\n const chunks = [];\n for (let chunk = 0, n = this.numChunks; chunk < n; ++chunk) {\n if (!this._loadedChunks.has(chunk)) {\n chunks.push(chunk);\n }\n }\n return chunks;\n }\n\n get numChunksLoaded() {\n return this._loadedChunks.size;\n }\n\n get isDataLoaded() {\n return this.numChunksLoaded === this.numChunks;\n }\n\n onReceiveData(begin, chunk) {\n const chunkSize = this.chunkSize;\n if (begin % chunkSize !== 0) {\n throw new Error(`Bad begin offset: ${begin}`);\n }\n\n // Using `this.length` is inaccurate here since `this.start` can be moved\n // (see the `moveStart` method).\n const end = begin + chunk.byteLength;\n if (end % chunkSize !== 0 && end !== this.bytes.length) {\n throw new Error(`Bad end offset: ${end}`);\n }\n\n this.bytes.set(new Uint8Array(chunk), begin);\n const beginChunk = Math.floor(begin / chunkSize);\n const endChunk = Math.floor((end - 1) / chunkSize) + 1;\n\n for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n // Since a value can only occur *once* in a `Set`, there's no need to\n // manually check `Set.prototype.has()` before adding the value here.\n this._loadedChunks.add(curChunk);\n }\n }\n\n onReceiveProgressiveData(data) {\n let position = this.progressiveDataLength;\n const beginChunk = Math.floor(position / this.chunkSize);\n\n this.bytes.set(new Uint8Array(data), position);\n position += data.byteLength;\n this.progressiveDataLength = position;\n const endChunk =\n position >= this.end\n ? this.numChunks\n : Math.floor(position / this.chunkSize);\n\n for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n // Since a value can only occur *once* in a `Set`, there's no need to\n // manually check `Set.prototype.has()` before adding the value here.\n this._loadedChunks.add(curChunk);\n }\n }\n\n ensureByte(pos) {\n if (pos < this.progressiveDataLength) {\n return;\n }\n\n const chunk = Math.floor(pos / this.chunkSize);\n if (chunk > this.numChunks) {\n return;\n }\n if (chunk === this.lastSuccessfulEnsureByteChunk) {\n return;\n }\n\n if (!this._loadedChunks.has(chunk)) {\n throw new MissingDataException(pos, pos + 1);\n }\n this.lastSuccessfulEnsureByteChunk = chunk;\n }\n\n ensureRange(begin, end) {\n if (begin >= end) {\n return;\n }\n if (end <= this.progressiveDataLength) {\n return;\n }\n\n const beginChunk = Math.floor(begin / this.chunkSize);\n if (beginChunk > this.numChunks) {\n return;\n }\n const endChunk = Math.min(\n Math.floor((end - 1) / this.chunkSize) + 1,\n this.numChunks\n );\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!this._loadedChunks.has(chunk)) {\n throw new MissingDataException(begin, end);\n }\n }\n }\n\n nextEmptyChunk(beginChunk) {\n const numChunks = this.numChunks;\n for (let i = 0; i < numChunks; ++i) {\n const chunk = (beginChunk + i) % numChunks; // Wrap around to beginning.\n if (!this._loadedChunks.has(chunk)) {\n return chunk;\n }\n }\n return null;\n }\n\n hasChunk(chunk) {\n return this._loadedChunks.has(chunk);\n }\n\n getByte() {\n const pos = this.pos;\n if (pos >= this.end) {\n return -1;\n }\n if (pos >= this.progressiveDataLength) {\n this.ensureByte(pos);\n }\n return this.bytes[this.pos++];\n }\n\n getBytes(length) {\n const bytes = this.bytes;\n const pos = this.pos;\n const strEnd = this.end;\n\n if (!length) {\n if (strEnd > this.progressiveDataLength) {\n this.ensureRange(pos, strEnd);\n }\n return bytes.subarray(pos, strEnd);\n }\n\n let end = pos + length;\n if (end > strEnd) {\n end = strEnd;\n }\n if (end > this.progressiveDataLength) {\n this.ensureRange(pos, end);\n }\n\n this.pos = end;\n return bytes.subarray(pos, end);\n }\n\n getByteRange(begin, end) {\n if (begin < 0) {\n begin = 0;\n }\n if (end > this.end) {\n end = this.end;\n }\n if (end > this.progressiveDataLength) {\n this.ensureRange(begin, end);\n }\n return this.bytes.subarray(begin, end);\n }\n\n makeSubStream(start, length, dict = null) {\n if (length) {\n if (start + length > this.progressiveDataLength) {\n this.ensureRange(start, start + length);\n }\n } else {\n // When the `length` is undefined you do *not*, under any circumstances,\n // want to fallback on calling `this.ensureRange(start, this.end)` since\n // that would force the *entire* PDF file to be loaded, thus completely\n // breaking the whole purpose of using streaming and/or range requests.\n //\n // However, not doing any checking here could very easily lead to wasted\n // time/resources during e.g. parsing, since `MissingDataException`s will\n // require data to be re-parsed, which we attempt to minimize by at least\n // checking that the *beginning* of the data is available here.\n if (start >= this.progressiveDataLength) {\n this.ensureByte(start);\n }\n }\n\n function ChunkedStreamSubstream() {}\n ChunkedStreamSubstream.prototype = Object.create(this);\n ChunkedStreamSubstream.prototype.getMissingChunks = function () {\n const chunkSize = this.chunkSize;\n const beginChunk = Math.floor(this.start / chunkSize);\n const endChunk = Math.floor((this.end - 1) / chunkSize) + 1;\n const missingChunks = [];\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!this._loadedChunks.has(chunk)) {\n missingChunks.push(chunk);\n }\n }\n return missingChunks;\n };\n Object.defineProperty(ChunkedStreamSubstream.prototype, \"isDataLoaded\", {\n get() {\n if (this.numChunksLoaded === this.numChunks) {\n return true;\n }\n return this.getMissingChunks().length === 0;\n },\n configurable: true,\n });\n\n const subStream = new ChunkedStreamSubstream();\n subStream.pos = subStream.start = start;\n subStream.end = start + length || this.end;\n subStream.dict = dict;\n return subStream;\n }\n\n getBaseStreams() {\n return [this];\n }\n}\n\nclass ChunkedStreamManager {\n constructor(pdfNetworkStream, args) {\n this.length = args.length;\n this.chunkSize = args.rangeChunkSize;\n this.stream = new ChunkedStream(this.length, this.chunkSize, this);\n this.pdfNetworkStream = pdfNetworkStream;\n this.disableAutoFetch = args.disableAutoFetch;\n this.msgHandler = args.msgHandler;\n\n this.currRequestId = 0;\n\n this._chunksNeededByRequest = new Map();\n this._requestsByChunk = new Map();\n this._promisesByRequest = new Map();\n this.progressiveDataLength = 0;\n this.aborted = false;\n\n this._loadedStreamCapability = createPromiseCapability();\n }\n\n onLoadedStream() {\n return this._loadedStreamCapability.promise;\n }\n\n sendRequest(begin, end) {\n const rangeReader = this.pdfNetworkStream.getRangeReader(begin, end);\n if (!rangeReader.isStreamingSupported) {\n rangeReader.onProgress = this.onProgress.bind(this);\n }\n\n let chunks = [],\n loaded = 0;\n return new Promise((resolve, reject) => {\n const readChunk = chunk => {\n try {\n if (!chunk.done) {\n const data = chunk.value;\n chunks.push(data);\n loaded += arrayByteLength(data);\n if (rangeReader.isStreamingSupported) {\n this.onProgress({ loaded });\n }\n rangeReader.read().then(readChunk, reject);\n return;\n }\n const chunkData = arraysToBytes(chunks);\n chunks = null;\n resolve(chunkData);\n } catch (e) {\n reject(e);\n }\n };\n rangeReader.read().then(readChunk, reject);\n }).then(data => {\n if (this.aborted) {\n return; // Ignoring any data after abort.\n }\n this.onReceiveData({ chunk: data, begin });\n });\n }\n\n /**\n * Get all the chunks that are not yet loaded and group them into\n * contiguous ranges to load in as few requests as possible.\n */\n requestAllChunks() {\n const missingChunks = this.stream.getMissingChunks();\n this._requestChunks(missingChunks);\n return this._loadedStreamCapability.promise;\n }\n\n _requestChunks(chunks) {\n const requestId = this.currRequestId++;\n\n const chunksNeeded = new Set();\n this._chunksNeededByRequest.set(requestId, chunksNeeded);\n for (const chunk of chunks) {\n if (!this.stream.hasChunk(chunk)) {\n chunksNeeded.add(chunk);\n }\n }\n\n if (chunksNeeded.size === 0) {\n return Promise.resolve();\n }\n\n const capability = createPromiseCapability();\n this._promisesByRequest.set(requestId, capability);\n\n const chunksToRequest = [];\n for (const chunk of chunksNeeded) {\n let requestIds = this._requestsByChunk.get(chunk);\n if (!requestIds) {\n requestIds = [];\n this._requestsByChunk.set(chunk, requestIds);\n\n chunksToRequest.push(chunk);\n }\n requestIds.push(requestId);\n }\n\n if (chunksToRequest.length > 0) {\n const groupedChunksToRequest = this.groupChunks(chunksToRequest);\n for (const groupedChunk of groupedChunksToRequest) {\n const begin = groupedChunk.beginChunk * this.chunkSize;\n const end = Math.min(\n groupedChunk.endChunk * this.chunkSize,\n this.length\n );\n this.sendRequest(begin, end).catch(capability.reject);\n }\n }\n\n return capability.promise.catch(reason => {\n if (this.aborted) {\n return; // Ignoring any pending requests after abort.\n }\n throw reason;\n });\n }\n\n getStream() {\n return this.stream;\n }\n\n /**\n * Loads any chunks in the requested range that are not yet loaded.\n */\n requestRange(begin, end) {\n end = Math.min(end, this.length);\n\n const beginChunk = this.getBeginChunk(begin);\n const endChunk = this.getEndChunk(end);\n\n const chunks = [];\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n chunks.push(chunk);\n }\n return this._requestChunks(chunks);\n }\n\n requestRanges(ranges = []) {\n const chunksToRequest = [];\n for (const range of ranges) {\n const beginChunk = this.getBeginChunk(range.begin);\n const endChunk = this.getEndChunk(range.end);\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!chunksToRequest.includes(chunk)) {\n chunksToRequest.push(chunk);\n }\n }\n }\n\n chunksToRequest.sort(function (a, b) {\n return a - b;\n });\n return this._requestChunks(chunksToRequest);\n }\n\n /**\n * Groups a sorted array of chunks into as few contiguous larger\n * chunks as possible.\n */\n groupChunks(chunks) {\n const groupedChunks = [];\n let beginChunk = -1;\n let prevChunk = -1;\n\n for (let i = 0, ii = chunks.length; i < ii; ++i) {\n const chunk = chunks[i];\n if (beginChunk < 0) {\n beginChunk = chunk;\n }\n\n if (prevChunk >= 0 && prevChunk + 1 !== chunk) {\n groupedChunks.push({ beginChunk, endChunk: prevChunk + 1 });\n beginChunk = chunk;\n }\n if (i + 1 === chunks.length) {\n groupedChunks.push({ beginChunk, endChunk: chunk + 1 });\n }\n\n prevChunk = chunk;\n }\n return groupedChunks;\n }\n\n onProgress(args) {\n this.msgHandler.send(\"DocProgress\", {\n loaded: this.stream.numChunksLoaded * this.chunkSize + args.loaded,\n total: this.length,\n });\n }\n\n onReceiveData(args) {\n const chunk = args.chunk;\n const isProgressive = args.begin === undefined;\n const begin = isProgressive ? this.progressiveDataLength : args.begin;\n const end = begin + chunk.byteLength;\n\n const beginChunk = Math.floor(begin / this.chunkSize);\n const endChunk =\n end < this.length\n ? Math.floor(end / this.chunkSize)\n : Math.ceil(end / this.chunkSize);\n\n if (isProgressive) {\n this.stream.onReceiveProgressiveData(chunk);\n this.progressiveDataLength = end;\n } else {\n this.stream.onReceiveData(begin, chunk);\n }\n\n if (this.stream.isDataLoaded) {\n this._loadedStreamCapability.resolve(this.stream);\n }\n\n const loadedRequests = [];\n for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n // The server might return more chunks than requested.\n const requestIds = this._requestsByChunk.get(curChunk);\n if (!requestIds) {\n continue;\n }\n this._requestsByChunk.delete(curChunk);\n\n for (const requestId of requestIds) {\n const chunksNeeded = this._chunksNeededByRequest.get(requestId);\n if (chunksNeeded.has(curChunk)) {\n chunksNeeded.delete(curChunk);\n }\n\n if (chunksNeeded.size > 0) {\n continue;\n }\n loadedRequests.push(requestId);\n }\n }\n\n // If there are no pending requests, automatically fetch the next\n // unfetched chunk of the PDF file.\n if (!this.disableAutoFetch && this._requestsByChunk.size === 0) {\n let nextEmptyChunk;\n if (this.stream.numChunksLoaded === 1) {\n // This is a special optimization so that after fetching the first\n // chunk, rather than fetching the second chunk, we fetch the last\n // chunk.\n const lastChunk = this.stream.numChunks - 1;\n if (!this.stream.hasChunk(lastChunk)) {\n nextEmptyChunk = lastChunk;\n }\n } else {\n nextEmptyChunk = this.stream.nextEmptyChunk(endChunk);\n }\n if (Number.isInteger(nextEmptyChunk)) {\n this._requestChunks([nextEmptyChunk]);\n }\n }\n\n for (const requestId of loadedRequests) {\n const capability = this._promisesByRequest.get(requestId);\n this._promisesByRequest.delete(requestId);\n capability.resolve();\n }\n\n this.msgHandler.send(\"DocProgress\", {\n loaded: this.stream.numChunksLoaded * this.chunkSize,\n total: this.length,\n });\n }\n\n onError(err) {\n this._loadedStreamCapability.reject(err);\n }\n\n getBeginChunk(begin) {\n return Math.floor(begin / this.chunkSize);\n }\n\n getEndChunk(end) {\n return Math.floor((end - 1) / this.chunkSize) + 1;\n }\n\n abort(reason) {\n this.aborted = true;\n if (this.pdfNetworkStream) {\n this.pdfNetworkStream.cancelAllRequests(reason);\n }\n for (const capability of this._promisesByRequest.values()) {\n capability.reject(reason);\n }\n }\n}\n\nexport { ChunkedStream, ChunkedStreamManager };\n","/* Copyright 2019 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n BaseException,\n FontType,\n objectSize,\n StreamType,\n stringToPDFString,\n warn,\n} from \"../shared/util.js\";\nimport { Dict, isName, Ref, RefSet } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\n\nfunction getLookupTableFactory(initializer) {\n let lookup;\n return function () {\n if (initializer) {\n lookup = Object.create(null);\n initializer(lookup);\n initializer = null;\n }\n return lookup;\n };\n}\n\nfunction getArrayLookupTableFactory(initializer) {\n let lookup;\n return function () {\n if (initializer) {\n let arr = initializer();\n initializer = null;\n lookup = Object.create(null);\n for (let i = 0, ii = arr.length; i < ii; i += 2) {\n lookup[arr[i]] = arr[i + 1];\n }\n arr = null;\n }\n return lookup;\n };\n}\n\nclass MissingDataException extends BaseException {\n constructor(begin, end) {\n super(`Missing data [${begin}, ${end})`, \"MissingDataException\");\n this.begin = begin;\n this.end = end;\n }\n}\n\nclass ParserEOFException extends BaseException {\n constructor(msg) {\n super(msg, \"ParserEOFException\");\n }\n}\n\nclass XRefEntryException extends BaseException {\n constructor(msg) {\n super(msg, \"XRefEntryException\");\n }\n}\n\nclass XRefParseException extends BaseException {\n constructor(msg) {\n super(msg, \"XRefParseException\");\n }\n}\n\nclass DocStats {\n constructor(handler) {\n this._handler = handler;\n\n this._streamTypes = new Set();\n this._fontTypes = new Set();\n }\n\n _send() {\n const streamTypes = Object.create(null),\n fontTypes = Object.create(null);\n for (const type of this._streamTypes) {\n streamTypes[type] = true;\n }\n for (const type of this._fontTypes) {\n fontTypes[type] = true;\n }\n this._handler.send(\"DocStats\", { streamTypes, fontTypes });\n }\n\n addStreamType(type) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(StreamType[type] === type, 'addStreamType: Invalid \"type\" value.');\n }\n if (this._streamTypes.has(type)) {\n return;\n }\n this._streamTypes.add(type);\n this._send();\n }\n\n addFontType(type) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(FontType[type] === type, 'addFontType: Invalid \"type\" value.');\n }\n if (this._fontTypes.has(type)) {\n return;\n }\n this._fontTypes.add(type);\n this._send();\n }\n}\n\n/**\n * Get the value of an inheritable property.\n *\n * If the PDF specification explicitly lists a property in a dictionary as\n * inheritable, then the value of the property may be present in the dictionary\n * itself or in one or more parents of the dictionary.\n *\n * If the key is not found in the tree, `undefined` is returned. Otherwise,\n * the value for the key is returned or, if `stopWhenFound` is `false`, a list\n * of values is returned.\n *\n * @param {Dict} dict - Dictionary from where to start the traversal.\n * @param {string} key - The key of the property to find the value for.\n * @param {boolean} getArray - Whether or not the value should be fetched as an\n * array. The default value is `false`.\n * @param {boolean} stopWhenFound - Whether or not to stop the traversal when\n * the key is found. If set to `false`, we always walk up the entire parent\n * chain, for example to be able to find `\\Resources` placed on multiple\n * levels of the tree. The default value is `true`.\n */\nfunction getInheritableProperty({\n dict,\n key,\n getArray = false,\n stopWhenFound = true,\n}) {\n let values;\n const visited = new RefSet();\n\n while (dict instanceof Dict && !(dict.objId && visited.has(dict.objId))) {\n if (dict.objId) {\n visited.put(dict.objId);\n }\n const value = getArray ? dict.getArray(key) : dict.get(key);\n if (value !== undefined) {\n if (stopWhenFound) {\n return value;\n }\n if (!values) {\n values = [];\n }\n values.push(value);\n }\n dict = dict.get(\"Parent\");\n }\n return values;\n}\n\n// prettier-ignore\nconst ROMAN_NUMBER_MAP = [\n \"\", \"C\", \"CC\", \"CCC\", \"CD\", \"D\", \"DC\", \"DCC\", \"DCCC\", \"CM\",\n \"\", \"X\", \"XX\", \"XXX\", \"XL\", \"L\", \"LX\", \"LXX\", \"LXXX\", \"XC\",\n \"\", \"I\", \"II\", \"III\", \"IV\", \"V\", \"VI\", \"VII\", \"VIII\", \"IX\"\n];\n\n/**\n * Converts positive integers to (upper case) Roman numerals.\n * @param {number} number - The number that should be converted.\n * @param {boolean} lowerCase - Indicates if the result should be converted\n * to lower case letters. The default value is `false`.\n * @returns {string} The resulting Roman number.\n */\nfunction toRomanNumerals(number, lowerCase = false) {\n assert(\n Number.isInteger(number) && number > 0,\n \"The number should be a positive integer.\"\n );\n const romanBuf = [];\n let pos;\n // Thousands\n while (number >= 1000) {\n number -= 1000;\n romanBuf.push(\"M\");\n }\n // Hundreds\n pos = (number / 100) | 0;\n number %= 100;\n romanBuf.push(ROMAN_NUMBER_MAP[pos]);\n // Tens\n pos = (number / 10) | 0;\n number %= 10;\n romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);\n // Ones\n romanBuf.push(ROMAN_NUMBER_MAP[20 + number]); // eslint-disable-line unicorn/no-array-push-push\n\n const romanStr = romanBuf.join(\"\");\n return lowerCase ? romanStr.toLowerCase() : romanStr;\n}\n\n// Calculate the base 2 logarithm of the number `x`. This differs from the\n// native function in the sense that it returns the ceiling value and that it\n// returns 0 instead of `Infinity`/`NaN` for `x` values smaller than/equal to 0.\nfunction log2(x) {\n if (x <= 0) {\n return 0;\n }\n return Math.ceil(Math.log2(x));\n}\n\nfunction readInt8(data, offset) {\n return (data[offset] << 24) >> 24;\n}\n\nfunction readUint16(data, offset) {\n return (data[offset] << 8) | data[offset + 1];\n}\n\nfunction readUint32(data, offset) {\n return (\n ((data[offset] << 24) |\n (data[offset + 1] << 16) |\n (data[offset + 2] << 8) |\n data[offset + 3]) >>>\n 0\n );\n}\n\n// Checks if ch is one of the following characters: SPACE, TAB, CR or LF.\nfunction isWhiteSpace(ch) {\n return ch === 0x20 || ch === 0x09 || ch === 0x0d || ch === 0x0a;\n}\n\n/**\n * AcroForm field names use an array like notation to refer to\n * repeated XFA elements e.g. foo.bar[nnn].\n * see: XFA Spec Chapter 3 - Repeated Elements\n *\n * @param {string} path - XFA path name.\n * @returns {Array} - Array of Objects with the name and pos of\n * each part of the path.\n */\nfunction parseXFAPath(path) {\n const positionPattern = /(.+)\\[(\\d+)\\]$/;\n return path.split(\".\").map(component => {\n const m = component.match(positionPattern);\n if (m) {\n return { name: m[1], pos: parseInt(m[2], 10) };\n }\n return { name: component, pos: 0 };\n });\n}\n\nfunction escapePDFName(str) {\n const buffer = [];\n let start = 0;\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n // Whitespace or delimiters aren't regular chars, so escape them.\n if (\n char < 0x21 ||\n char > 0x7e ||\n char === 0x23 /* # */ ||\n char === 0x28 /* ( */ ||\n char === 0x29 /* ) */ ||\n char === 0x3c /* < */ ||\n char === 0x3e /* > */ ||\n char === 0x5b /* [ */ ||\n char === 0x5d /* ] */ ||\n char === 0x7b /* { */ ||\n char === 0x7d /* } */ ||\n char === 0x2f /* / */ ||\n char === 0x25 /* % */\n ) {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n buffer.push(`#${char.toString(16)}`);\n start = i + 1;\n }\n }\n\n if (buffer.length === 0) {\n return str;\n }\n\n if (start < str.length) {\n buffer.push(str.substring(start, str.length));\n }\n\n return buffer.join(\"\");\n}\n\nfunction _collectJS(entry, xref, list, parents) {\n if (!entry) {\n return;\n }\n\n let parent = null;\n if (entry instanceof Ref) {\n if (parents.has(entry)) {\n // If we've already found entry then we've a cycle.\n return;\n }\n parent = entry;\n parents.put(parent);\n entry = xref.fetch(entry);\n }\n if (Array.isArray(entry)) {\n for (const element of entry) {\n _collectJS(element, xref, list, parents);\n }\n } else if (entry instanceof Dict) {\n if (isName(entry.get(\"S\"), \"JavaScript\")) {\n const js = entry.get(\"JS\");\n let code;\n if (js instanceof BaseStream) {\n code = js.getString();\n } else if (typeof js === \"string\") {\n code = js;\n }\n code = code && stringToPDFString(code);\n if (code) {\n list.push(code);\n }\n }\n _collectJS(entry.getRaw(\"Next\"), xref, list, parents);\n }\n\n if (parent) {\n parents.remove(parent);\n }\n}\n\nfunction collectActions(xref, dict, eventType) {\n const actions = Object.create(null);\n const additionalActionsDicts = getInheritableProperty({\n dict,\n key: \"AA\",\n stopWhenFound: false,\n });\n if (additionalActionsDicts) {\n // additionalActionsDicts contains dicts from ancestors\n // as they're found in the tree from bottom to top.\n // So the dicts are visited in reverse order to guarantee\n // that actions from elder ancestors will be overwritten\n // by ones from younger ancestors.\n for (let i = additionalActionsDicts.length - 1; i >= 0; i--) {\n const additionalActions = additionalActionsDicts[i];\n if (!(additionalActions instanceof Dict)) {\n continue;\n }\n for (const key of additionalActions.getKeys()) {\n const action = eventType[key];\n if (!action) {\n continue;\n }\n const actionDict = additionalActions.getRaw(key);\n const parents = new RefSet();\n const list = [];\n _collectJS(actionDict, xref, list, parents);\n if (list.length > 0) {\n actions[action] = list;\n }\n }\n }\n }\n // Collect the Action if any (we may have one on pushbutton).\n if (dict.has(\"A\")) {\n const actionDict = dict.get(\"A\");\n const parents = new RefSet();\n const list = [];\n _collectJS(actionDict, xref, list, parents);\n if (list.length > 0) {\n actions.Action = list;\n }\n }\n return objectSize(actions) > 0 ? actions : null;\n}\n\nconst XMLEntities = {\n /* < */ 0x3c: \"<\",\n /* > */ 0x3e: \">\",\n /* & */ 0x26: \"&\",\n /* \" */ 0x22: \""\",\n /* ' */ 0x27: \"'\",\n};\n\nfunction encodeToXmlString(str) {\n const buffer = [];\n let start = 0;\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.codePointAt(i);\n if (0x20 <= char && char <= 0x7e) {\n // ascii\n const entity = XMLEntities[char];\n if (entity) {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n buffer.push(entity);\n start = i + 1;\n }\n } else {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n buffer.push(`&#x${char.toString(16).toUpperCase()};`);\n if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) {\n // char is represented by two u16\n i++;\n }\n start = i + 1;\n }\n }\n\n if (buffer.length === 0) {\n return str;\n }\n if (start < str.length) {\n buffer.push(str.substring(start, str.length));\n }\n return buffer.join(\"\");\n}\n\nfunction validateCSSFont(cssFontInfo) {\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/font-style.\n const DEFAULT_CSS_FONT_OBLIQUE = \"14\";\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight.\n const DEFAULT_CSS_FONT_WEIGHT = \"400\";\n const CSS_FONT_WEIGHT_VALUES = new Set([\n \"100\",\n \"200\",\n \"300\",\n \"400\",\n \"500\",\n \"600\",\n \"700\",\n \"800\",\n \"900\",\n \"1000\",\n \"normal\",\n \"bold\",\n \"bolder\",\n \"lighter\",\n ]);\n\n const { fontFamily, fontWeight, italicAngle } = cssFontInfo;\n\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/string.\n if (/^\".*\"$/.test(fontFamily)) {\n if (/[^\\\\]\"/.test(fontFamily.slice(1, fontFamily.length - 1))) {\n warn(`XFA - FontFamily contains some unescaped \": ${fontFamily}.`);\n return false;\n }\n } else if (/^'.*'$/.test(fontFamily)) {\n if (/[^\\\\]'/.test(fontFamily.slice(1, fontFamily.length - 1))) {\n warn(`XFA - FontFamily contains some unescaped ': ${fontFamily}.`);\n return false;\n }\n } else {\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/custom-ident.\n for (const ident of fontFamily.split(/[ \\t]+/)) {\n if (/^(\\d|(-(\\d|-)))/.test(ident) || !/^[\\w-\\\\]+$/.test(ident)) {\n warn(\n `XFA - FontFamily contains some invalid : ${fontFamily}.`\n );\n return false;\n }\n }\n }\n\n const weight = fontWeight ? fontWeight.toString() : \"\";\n cssFontInfo.fontWeight = CSS_FONT_WEIGHT_VALUES.has(weight)\n ? weight\n : DEFAULT_CSS_FONT_WEIGHT;\n\n const angle = parseFloat(italicAngle);\n cssFontInfo.italicAngle =\n isNaN(angle) || angle < -90 || angle > 90\n ? DEFAULT_CSS_FONT_OBLIQUE\n : italicAngle.toString();\n\n return true;\n}\n\nfunction recoverJsURL(str) {\n // Attempt to recover valid URLs from `JS` entries with certain\n // white-listed formats:\n // - window.open('http://example.com')\n // - app.launchURL('http://example.com', true)\n // - xfa.host.gotoURL('http://example.com')\n const URL_OPEN_METHODS = [\"app.launchURL\", \"window.open\", \"xfa.host.gotoURL\"];\n const regex = new RegExp(\n \"^\\\\s*(\" +\n URL_OPEN_METHODS.join(\"|\").split(\".\").join(\"\\\\.\") +\n \")\\\\((?:'|\\\")([^'\\\"]*)(?:'|\\\")(?:,\\\\s*(\\\\w+)\\\\)|\\\\))\",\n \"i\"\n );\n\n const jsUrl = regex.exec(str);\n if (jsUrl && jsUrl[2]) {\n const url = jsUrl[2];\n let newWindow = false;\n\n if (jsUrl[3] === \"true\" && jsUrl[1] === \"app.launchURL\") {\n newWindow = true;\n }\n return { url, newWindow };\n }\n\n return null;\n}\n\nexport {\n collectActions,\n DocStats,\n encodeToXmlString,\n escapePDFName,\n getArrayLookupTableFactory,\n getInheritableProperty,\n getLookupTableFactory,\n isWhiteSpace,\n log2,\n MissingDataException,\n ParserEOFException,\n parseXFAPath,\n readInt8,\n readUint16,\n readUint32,\n recoverJsURL,\n toRomanNumerals,\n validateCSSFont,\n XRefEntryException,\n XRefParseException,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bytesToString, shadow, unreachable } from \"../shared/util.js\";\n\nclass BaseStream {\n constructor() {\n if (this.constructor === BaseStream) {\n unreachable(\"Cannot initialize BaseStream.\");\n }\n }\n\n // eslint-disable-next-line getter-return\n get length() {\n unreachable(\"Abstract getter `length` accessed\");\n }\n\n // eslint-disable-next-line getter-return\n get isEmpty() {\n unreachable(\"Abstract getter `isEmpty` accessed\");\n }\n\n get isDataLoaded() {\n return shadow(this, \"isDataLoaded\", true);\n }\n\n getByte() {\n unreachable(\"Abstract method `getByte` called\");\n }\n\n getBytes(length) {\n unreachable(\"Abstract method `getBytes` called\");\n }\n\n peekByte() {\n const peekedByte = this.getByte();\n if (peekedByte !== -1) {\n this.pos--;\n }\n return peekedByte;\n }\n\n peekBytes(length) {\n const bytes = this.getBytes(length);\n this.pos -= bytes.length;\n return bytes;\n }\n\n getUint16() {\n const b0 = this.getByte();\n const b1 = this.getByte();\n if (b0 === -1 || b1 === -1) {\n return -1;\n }\n return (b0 << 8) + b1;\n }\n\n getInt32() {\n const b0 = this.getByte();\n const b1 = this.getByte();\n const b2 = this.getByte();\n const b3 = this.getByte();\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n }\n\n getByteRange(begin, end) {\n unreachable(\"Abstract method `getByteRange` called\");\n }\n\n getString(length) {\n return bytesToString(this.getBytes(length));\n }\n\n skip(n) {\n this.pos += n || 1;\n }\n\n reset() {\n unreachable(\"Abstract method `reset` called\");\n }\n\n moveStart() {\n unreachable(\"Abstract method `moveStart` called\");\n }\n\n makeSubStream(start, length, dict = null) {\n unreachable(\"Abstract method `makeSubStream` called\");\n }\n\n /**\n * @returns {Array | null}\n */\n getBaseStreams() {\n return null;\n }\n}\n\nexport { BaseStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseStream } from \"./base_stream.js\";\nimport { stringToBytes } from \"../shared/util.js\";\n\nclass Stream extends BaseStream {\n constructor(arrayBuffer, start, length, dict) {\n super();\n\n this.bytes =\n arrayBuffer instanceof Uint8Array\n ? arrayBuffer\n : new Uint8Array(arrayBuffer);\n this.start = start || 0;\n this.pos = this.start;\n this.end = start + length || this.bytes.length;\n this.dict = dict;\n }\n\n get length() {\n return this.end - this.start;\n }\n\n get isEmpty() {\n return this.length === 0;\n }\n\n getByte() {\n if (this.pos >= this.end) {\n return -1;\n }\n return this.bytes[this.pos++];\n }\n\n getBytes(length) {\n const bytes = this.bytes;\n const pos = this.pos;\n const strEnd = this.end;\n\n if (!length) {\n return bytes.subarray(pos, strEnd);\n }\n let end = pos + length;\n if (end > strEnd) {\n end = strEnd;\n }\n this.pos = end;\n return bytes.subarray(pos, end);\n }\n\n getByteRange(begin, end) {\n if (begin < 0) {\n begin = 0;\n }\n if (end > this.end) {\n end = this.end;\n }\n return this.bytes.subarray(begin, end);\n }\n\n reset() {\n this.pos = this.start;\n }\n\n moveStart() {\n this.start = this.pos;\n }\n\n makeSubStream(start, length, dict = null) {\n return new Stream(this.bytes.buffer, start, length, dict);\n }\n}\n\nclass StringStream extends Stream {\n constructor(str) {\n super(stringToBytes(str));\n }\n}\n\nclass NullStream extends Stream {\n constructor() {\n super(new Uint8Array(0));\n }\n}\n\nexport { NullStream, Stream, StringStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n FormatError,\n info,\n InvalidPDFException,\n isArrayEqual,\n OPS,\n PageActionEventType,\n RenderingIntentFlag,\n shadow,\n stringToBytes,\n stringToPDFString,\n stringToUTF8String,\n unreachable,\n UNSUPPORTED_FEATURES,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport {\n collectActions,\n getInheritableProperty,\n isWhiteSpace,\n MissingDataException,\n validateCSSFont,\n XRefEntryException,\n XRefParseException,\n} from \"./core_utils.js\";\nimport { Dict, isName, Name, Ref } from \"./primitives.js\";\nimport { getXfaFontDict, getXfaFontName } from \"./xfa_fonts.js\";\nimport { AnnotationFactory } from \"./annotation.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { calculateMD5 } from \"./crypto.js\";\nimport { Catalog } from \"./catalog.js\";\nimport { clearGlobalCaches } from \"./cleanup_helper.js\";\nimport { DatasetReader } from \"./dataset_reader.js\";\nimport { Linearization } from \"./parser.js\";\nimport { NullStream } from \"./stream.js\";\nimport { ObjectLoader } from \"./object_loader.js\";\nimport { OperatorList } from \"./operator_list.js\";\nimport { PartialEvaluator } from \"./evaluator.js\";\nimport { StreamsSequenceStream } from \"./decode_stream.js\";\nimport { StructTreePage } from \"./struct_tree.js\";\nimport { XFAFactory } from \"./xfa/factory.js\";\nimport { XRef } from \"./xref.js\";\n\nconst DEFAULT_USER_UNIT = 1.0;\nconst LETTER_SIZE_MEDIABOX = [0, 0, 612, 792];\n\nclass Page {\n constructor({\n pdfManager,\n xref,\n pageIndex,\n pageDict,\n ref,\n globalIdFactory,\n fontCache,\n builtInCMapCache,\n standardFontDataCache,\n globalImageCache,\n nonBlendModesSet,\n xfaFactory,\n }) {\n this.pdfManager = pdfManager;\n this.pageIndex = pageIndex;\n this.pageDict = pageDict;\n this.xref = xref;\n this.ref = ref;\n this.fontCache = fontCache;\n this.builtInCMapCache = builtInCMapCache;\n this.standardFontDataCache = standardFontDataCache;\n this.globalImageCache = globalImageCache;\n this.nonBlendModesSet = nonBlendModesSet;\n this.evaluatorOptions = pdfManager.evaluatorOptions;\n this.resourcesPromise = null;\n this.xfaFactory = xfaFactory;\n\n const idCounters = {\n obj: 0,\n };\n this._localIdFactory = class extends globalIdFactory {\n static createObjId() {\n return `p${pageIndex}_${++idCounters.obj}`;\n }\n\n static getPageObjId() {\n return `page${ref.toString()}`;\n }\n };\n }\n\n /**\n * @private\n */\n _getInheritableProperty(key, getArray = false) {\n const value = getInheritableProperty({\n dict: this.pageDict,\n key,\n getArray,\n stopWhenFound: false,\n });\n if (!Array.isArray(value)) {\n return value;\n }\n if (value.length === 1 || !(value[0] instanceof Dict)) {\n return value[0];\n }\n return Dict.merge({ xref: this.xref, dictArray: value });\n }\n\n get content() {\n return this.pageDict.getArray(\"Contents\");\n }\n\n get resources() {\n // For robustness: The spec states that a \\Resources entry has to be\n // present, but can be empty. Some documents still omit it; in this case\n // we return an empty dictionary.\n return shadow(\n this,\n \"resources\",\n this._getInheritableProperty(\"Resources\") || Dict.empty\n );\n }\n\n _getBoundingBox(name) {\n if (this.xfaData) {\n return this.xfaData.bbox;\n }\n\n const box = this._getInheritableProperty(name, /* getArray = */ true);\n\n if (Array.isArray(box) && box.length === 4) {\n if (box[2] - box[0] !== 0 && box[3] - box[1] !== 0) {\n return box;\n }\n warn(`Empty /${name} entry.`);\n }\n return null;\n }\n\n get mediaBox() {\n // Reset invalid media box to letter size.\n return shadow(\n this,\n \"mediaBox\",\n this._getBoundingBox(\"MediaBox\") || LETTER_SIZE_MEDIABOX\n );\n }\n\n get cropBox() {\n // Reset invalid crop box to media box.\n return shadow(\n this,\n \"cropBox\",\n this._getBoundingBox(\"CropBox\") || this.mediaBox\n );\n }\n\n get userUnit() {\n let obj = this.pageDict.get(\"UserUnit\");\n if (typeof obj !== \"number\" || obj <= 0) {\n obj = DEFAULT_USER_UNIT;\n }\n return shadow(this, \"userUnit\", obj);\n }\n\n get view() {\n // From the spec, 6th ed., p.963:\n // \"The crop, bleed, trim, and art boxes should not ordinarily\n // extend beyond the boundaries of the media box. If they do, they are\n // effectively reduced to their intersection with the media box.\"\n const { cropBox, mediaBox } = this;\n let view;\n if (cropBox === mediaBox || isArrayEqual(cropBox, mediaBox)) {\n view = mediaBox;\n } else {\n const box = Util.intersect(cropBox, mediaBox);\n if (box && box[2] - box[0] !== 0 && box[3] - box[1] !== 0) {\n view = box;\n } else {\n warn(\"Empty /CropBox and /MediaBox intersection.\");\n }\n }\n return shadow(this, \"view\", view || mediaBox);\n }\n\n get rotate() {\n let rotate = this._getInheritableProperty(\"Rotate\") || 0;\n\n // Normalize rotation so it's a multiple of 90 and between 0 and 270.\n if (rotate % 90 !== 0) {\n rotate = 0;\n } else if (rotate >= 360) {\n rotate %= 360;\n } else if (rotate < 0) {\n // The spec doesn't cover negatives. Assume it's counterclockwise\n // rotation. The following is the other implementation of modulo.\n rotate = ((rotate % 360) + 360) % 360;\n }\n return shadow(this, \"rotate\", rotate);\n }\n\n /**\n * @private\n */\n _onSubStreamError(handler, reason, objId) {\n if (this.evaluatorOptions.ignoreErrors) {\n // Error(s) when reading one of the /Contents sub-streams -- sending\n // unsupported feature notification and allow parsing to continue.\n handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorContentSubStream,\n });\n warn(`getContentStream - ignoring sub-stream (${objId}): \"${reason}\".`);\n return;\n }\n throw reason;\n }\n\n /**\n * @returns {Promise}\n */\n getContentStream(handler) {\n return this.pdfManager.ensure(this, \"content\").then(content => {\n if (content instanceof BaseStream) {\n return content;\n }\n if (Array.isArray(content)) {\n return new StreamsSequenceStream(\n content,\n this._onSubStreamError.bind(this, handler)\n );\n }\n // Replace non-existent page content with empty content.\n return new NullStream();\n });\n }\n\n get xfaData() {\n return shadow(\n this,\n \"xfaData\",\n this.xfaFactory\n ? { bbox: this.xfaFactory.getBoundingBox(this.pageIndex) }\n : null\n );\n }\n\n save(handler, task, annotationStorage) {\n const partialEvaluator = new PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: this.pageIndex,\n idFactory: this._localIdFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n standardFontDataCache: this.standardFontDataCache,\n globalImageCache: this.globalImageCache,\n options: this.evaluatorOptions,\n });\n\n // Fetch the page's annotations and save the content\n // in case of interactive form fields.\n return this._parsedAnnotations.then(function (annotations) {\n const newRefsPromises = [];\n for (const annotation of annotations) {\n if (!annotation.mustBePrinted(annotationStorage)) {\n continue;\n }\n newRefsPromises.push(\n annotation\n .save(partialEvaluator, task, annotationStorage)\n .catch(function (reason) {\n warn(\n \"save - ignoring annotation data during \" +\n `\"${task.name}\" task: \"${reason}\".`\n );\n return null;\n })\n );\n }\n\n return Promise.all(newRefsPromises);\n });\n }\n\n loadResources(keys) {\n if (!this.resourcesPromise) {\n // TODO: add async `_getInheritableProperty` and remove this.\n this.resourcesPromise = this.pdfManager.ensure(this, \"resources\");\n }\n return this.resourcesPromise.then(() => {\n const objectLoader = new ObjectLoader(this.resources, keys, this.xref);\n return objectLoader.load();\n });\n }\n\n getOperatorList({\n handler,\n sink,\n task,\n intent,\n cacheKey,\n annotationStorage = null,\n }) {\n const contentStreamPromise = this.getContentStream(handler);\n const resourcesPromise = this.loadResources([\n \"ColorSpace\",\n \"ExtGState\",\n \"Font\",\n \"Pattern\",\n \"Properties\",\n \"Shading\",\n \"XObject\",\n ]);\n\n const partialEvaluator = new PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: this.pageIndex,\n idFactory: this._localIdFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n standardFontDataCache: this.standardFontDataCache,\n globalImageCache: this.globalImageCache,\n options: this.evaluatorOptions,\n });\n\n const dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n let MCIDBoundingBoxes, positionByOperationIndex, noMCIDBoundingBoxes;\n const pageListPromise = dataPromises.then(([contentStream]) => {\n const opList = new OperatorList(intent, sink);\n\n handler.send(\"StartRenderPage\", {\n transparency: partialEvaluator.hasBlendModes(\n this.resources,\n this.nonBlendModesSet\n ),\n pageIndex: this.pageIndex,\n cacheKey,\n });\n\n return partialEvaluator\n .getOperatorList({\n stream: contentStream,\n task,\n resources: this.resources,\n operatorList: opList,\n intent\n })\n .then(function ([boundingBoxesByMCID, operationArray, boundingBoxesWithoutMCID]) {\n MCIDBoundingBoxes = boundingBoxesByMCID;\n positionByOperationIndex = operationArray;\n noMCIDBoundingBoxes = boundingBoxesWithoutMCID;\n return opList;\n });\n });\n\n // Fetch the page's annotations and add their operator lists to the\n // page's operator list to render them.\n return Promise.all([pageListPromise, this._parsedAnnotations]).then(\n function ([pageOpList, annotations]) {\n if (\n annotations.length === 0 ||\n intent & RenderingIntentFlag.ANNOTATIONS_DISABLE\n ) {\n if (intent & RenderingIntentFlag.OPLIST) {\n pageOpList.addOp(OPS.operationPosition, positionByOperationIndex);\n pageOpList.addOp(OPS.boundingBoxes, [MCIDBoundingBoxes, noMCIDBoundingBoxes]);\n }\n pageOpList.flush(true);\n return { length: pageOpList.totalLength };\n }\n const renderForms = !!(intent & RenderingIntentFlag.ANNOTATIONS_FORMS),\n intentAny = !!(intent & RenderingIntentFlag.ANY),\n intentDisplay = !!(intent & RenderingIntentFlag.DISPLAY),\n intentPrint = !!(intent & RenderingIntentFlag.PRINT);\n\n // Collect the operator list promises for the annotations. Each promise\n // is resolved with the complete operator list for a single annotation.\n const opListPromises = [];\n for (const annotation of annotations) {\n if (\n intentAny ||\n (intentDisplay && annotation.mustBeViewed(annotationStorage)) ||\n (intentPrint && annotation.mustBePrinted(annotationStorage)) ||\n intent & RenderingIntentFlag.OPLIST\n ) {\n opListPromises.push(\n annotation\n .getOperatorList(\n partialEvaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n )\n .catch(function (reason) {\n warn(\n \"getOperatorList - ignoring annotation data during \" +\n `\"${task.name}\" task: \"${reason}\".`\n );\n return null;\n })\n );\n }\n }\n\n return Promise.all(opListPromises).then(function (opLists) {\n pageOpList.addOp(OPS.beginAnnotations, []);\n for (const opList of opLists) {\n pageOpList.addOpList(opList);\n }\n pageOpList.addOp(OPS.endAnnotations, []);\n if (intent & RenderingIntentFlag.OPLIST) { \n pageOpList.addOp(OPS.save, [MCIDBoundingBoxes, noMCIDBoundingBoxes]);\n }\n pageOpList.flush(true);\n return { length: pageOpList.totalLength };\n });\n }\n );\n }\n\n extractTextContent({\n handler,\n task,\n includeMarkedContent,\n sink,\n combineTextItems,\n }) {\n const contentStreamPromise = this.getContentStream(handler);\n const resourcesPromise = this.loadResources([\n \"ExtGState\",\n \"Font\",\n \"Properties\",\n \"XObject\",\n ]);\n\n const dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n return dataPromises.then(([contentStream]) => {\n const partialEvaluator = new PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: this.pageIndex,\n idFactory: this._localIdFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n standardFontDataCache: this.standardFontDataCache,\n globalImageCache: this.globalImageCache,\n options: this.evaluatorOptions,\n });\n\n return partialEvaluator.getTextContent({\n stream: contentStream,\n task,\n resources: this.resources,\n includeMarkedContent,\n combineTextItems,\n sink,\n viewBox: this.view,\n });\n });\n }\n\n async getStructTree() {\n const structTreeRoot = await this.pdfManager.ensureCatalog(\n \"structTreeRoot\"\n );\n if (!structTreeRoot) {\n return null;\n }\n const structTree = await this.pdfManager.ensure(this, \"_parseStructTree\", [\n structTreeRoot,\n ]);\n return structTree.serializable;\n }\n\n /**\n * @private\n */\n _parseStructTree(structTreeRoot) {\n const tree = new StructTreePage(structTreeRoot, this.pageDict);\n tree.parse();\n return tree;\n }\n\n getAnnotationsData(intent) {\n return this._parsedAnnotations.then(function (annotations) {\n const annotationsData = [];\n\n if (annotations.length === 0) {\n return annotationsData;\n }\n const intentAny = !!(intent & RenderingIntentFlag.ANY),\n intentDisplay = !!(intent & RenderingIntentFlag.DISPLAY),\n intentPrint = !!(intent & RenderingIntentFlag.PRINT);\n\n for (const annotation of annotations) {\n // Get the annotation even if it's hidden because\n // JS can change its display.\n if (\n intentAny ||\n (intentDisplay && annotation.viewable) ||\n (intentPrint && annotation.printable) ||\n intent & RenderingIntentFlag.OPLIST\n ) {\n annotationsData.push(annotation.data);\n }\n }\n return annotationsData;\n });\n }\n\n get annotations() {\n const annots = this._getInheritableProperty(\"Annots\");\n return shadow(this, \"annotations\", Array.isArray(annots) ? annots : []);\n }\n\n get _parsedAnnotations() {\n const parsedAnnotations = this.pdfManager\n .ensure(this, \"annotations\")\n .then(() => {\n const annotationPromises = [];\n for (const annotationRef of this.annotations) {\n annotationPromises.push(\n AnnotationFactory.create(\n this.xref,\n annotationRef,\n this.pdfManager,\n this._localIdFactory,\n /* collectFields */ false\n ).catch(function (reason) {\n warn(`_parsedAnnotations: \"${reason}\".`);\n return null;\n })\n );\n }\n\n return Promise.all(annotationPromises).then(function (annotations) {\n return annotations.filter(annotation => !!annotation);\n });\n });\n\n return shadow(this, \"_parsedAnnotations\", parsedAnnotations);\n }\n\n get jsActions() {\n const actions = collectActions(\n this.xref,\n this.pageDict,\n PageActionEventType\n );\n return shadow(this, \"jsActions\", actions);\n }\n}\n\nconst PDF_HEADER_SIGNATURE = new Uint8Array([0x25, 0x50, 0x44, 0x46, 0x2d]);\nconst STARTXREF_SIGNATURE = new Uint8Array([\n 0x73, 0x74, 0x61, 0x72, 0x74, 0x78, 0x72, 0x65, 0x66,\n]);\nconst ENDOBJ_SIGNATURE = new Uint8Array([0x65, 0x6e, 0x64, 0x6f, 0x62, 0x6a]);\n\nconst FINGERPRINT_FIRST_BYTES = 1024;\nconst EMPTY_FINGERPRINT =\n \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\";\n\nconst PDF_HEADER_VERSION_REGEXP = /^[1-9]\\.\\d$/;\n\nfunction find(stream, signature, limit = 1024, backwards = false) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(limit > 0, 'The \"limit\" must be a positive integer.');\n }\n const signatureLength = signature.length;\n\n const scanBytes = stream.peekBytes(limit);\n const scanLength = scanBytes.length - signatureLength;\n\n if (scanLength <= 0) {\n return false;\n }\n if (backwards) {\n const signatureEnd = signatureLength - 1;\n\n let pos = scanBytes.length - 1;\n while (pos >= signatureEnd) {\n let j = 0;\n while (\n j < signatureLength &&\n scanBytes[pos - j] === signature[signatureEnd - j]\n ) {\n j++;\n }\n if (j >= signatureLength) {\n // `signature` found.\n stream.pos += pos - signatureEnd;\n return true;\n }\n pos--;\n }\n } else {\n // forwards\n let pos = 0;\n while (pos <= scanLength) {\n let j = 0;\n while (j < signatureLength && scanBytes[pos + j] === signature[j]) {\n j++;\n }\n if (j >= signatureLength) {\n // `signature` found.\n stream.pos += pos;\n return true;\n }\n pos++;\n }\n }\n return false;\n}\n\n/**\n * The `PDFDocument` class holds all the (worker-thread) data of the PDF file.\n */\nclass PDFDocument {\n constructor(pdfManager, stream) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n stream instanceof BaseStream,\n 'PDFDocument: Invalid \"stream\" argument.'\n );\n }\n if (stream.length <= 0) {\n throw new InvalidPDFException(\n \"The PDF file is empty, i.e. its size is zero bytes.\"\n );\n }\n\n this.pdfManager = pdfManager;\n this.stream = stream;\n this.xref = new XRef(stream, pdfManager);\n this._pagePromises = new Map();\n this._version = null;\n\n const idCounters = {\n font: 0,\n };\n this._globalIdFactory = class {\n static getDocId() {\n return `g_${pdfManager.docId}`;\n }\n\n static createFontId() {\n return `f${++idCounters.font}`;\n }\n\n static createObjId() {\n unreachable(\"Abstract method `createObjId` called.\");\n }\n\n static getPageObjId() {\n unreachable(\"Abstract method `getPageObjId` called.\");\n }\n };\n }\n\n parse(recoveryMode) {\n this.xref.parse(recoveryMode);\n this.catalog = new Catalog(this.pdfManager, this.xref);\n\n // The `checkHeader` method is called before this method and parses the\n // version from the header. The specification states in section 7.5.2\n // that the version from the catalog, if present, should overwrite the\n // version from the header.\n if (this.catalog.version) {\n this._version = this.catalog.version;\n }\n }\n\n get linearization() {\n let linearization = null;\n try {\n linearization = Linearization.create(this.stream);\n } catch (err) {\n if (err instanceof MissingDataException) {\n throw err;\n }\n info(err);\n }\n return shadow(this, \"linearization\", linearization);\n }\n\n get startXRef() {\n const stream = this.stream;\n let startXRef = 0;\n\n if (this.linearization) {\n // Find the end of the first object.\n stream.reset();\n if (find(stream, ENDOBJ_SIGNATURE)) {\n startXRef = stream.pos + 6 - stream.start;\n }\n } else {\n // Find `startxref` by checking backwards from the end of the file.\n const step = 1024;\n const startXRefLength = STARTXREF_SIGNATURE.length;\n let found = false,\n pos = stream.end;\n\n while (!found && pos > 0) {\n pos -= step - startXRefLength;\n if (pos < 0) {\n pos = 0;\n }\n stream.pos = pos;\n found = find(stream, STARTXREF_SIGNATURE, step, true);\n }\n\n if (found) {\n stream.skip(9);\n let ch;\n do {\n ch = stream.getByte();\n } while (isWhiteSpace(ch));\n let str = \"\";\n while (ch >= /* Space = */ 0x20 && ch <= /* '9' = */ 0x39) {\n str += String.fromCharCode(ch);\n ch = stream.getByte();\n }\n startXRef = parseInt(str, 10);\n if (isNaN(startXRef)) {\n startXRef = 0;\n }\n }\n }\n return shadow(this, \"startXRef\", startXRef);\n }\n\n // Find the header, get the PDF format version and setup the\n // stream to start from the header.\n checkHeader() {\n const stream = this.stream;\n stream.reset();\n\n if (!find(stream, PDF_HEADER_SIGNATURE)) {\n // May not be a PDF file, but don't throw an error and let\n // parsing continue.\n return;\n }\n stream.moveStart();\n\n // Read the PDF format version.\n const MAX_PDF_VERSION_LENGTH = 12;\n let version = \"\",\n ch;\n while ((ch = stream.getByte()) > /* Space = */ 0x20) {\n if (version.length >= MAX_PDF_VERSION_LENGTH) {\n break;\n }\n version += String.fromCharCode(ch);\n }\n if (!this._version) {\n // Remove the \"%PDF-\" prefix.\n this._version = version.substring(5);\n }\n }\n\n parseStartXRef() {\n this.xref.setStartXRef(this.startXRef);\n }\n\n get numPages() {\n let num = 0;\n if (this.catalog.hasActualNumPages) {\n num = this.catalog.numPages;\n } else if (this.xfaFactory) {\n // num is a Promise.\n num = this.xfaFactory.getNumPages();\n } else if (this.linearization) {\n num = this.linearization.numPages;\n } else {\n num = this.catalog.numPages;\n }\n return shadow(this, \"numPages\", num);\n }\n\n /**\n * @private\n */\n _hasOnlyDocumentSignatures(fields, recursionDepth = 0) {\n const RECURSION_LIMIT = 10;\n\n if (!Array.isArray(fields)) {\n return false;\n }\n return fields.every(field => {\n field = this.xref.fetchIfRef(field);\n if (!(field instanceof Dict)) {\n return false;\n }\n if (field.has(\"Kids\")) {\n if (++recursionDepth > RECURSION_LIMIT) {\n warn(\"_hasOnlyDocumentSignatures: maximum recursion depth reached\");\n return false;\n }\n return this._hasOnlyDocumentSignatures(\n field.get(\"Kids\"),\n recursionDepth\n );\n }\n const isSignature = isName(field.get(\"FT\"), \"Sig\");\n const rectangle = field.get(\"Rect\");\n const isInvisible =\n Array.isArray(rectangle) && rectangle.every(value => value === 0);\n return isSignature && isInvisible;\n });\n }\n\n get _xfaStreams() {\n const acroForm = this.catalog.acroForm;\n if (!acroForm) {\n return null;\n }\n\n const xfa = acroForm.get(\"XFA\");\n const entries = {\n \"xdp:xdp\": \"\",\n template: \"\",\n datasets: \"\",\n config: \"\",\n connectionSet: \"\",\n localeSet: \"\",\n stylesheet: \"\",\n \"/xdp:xdp\": \"\",\n };\n if (xfa instanceof BaseStream && !xfa.isEmpty) {\n entries[\"xdp:xdp\"] = xfa;\n return entries;\n }\n\n if (!Array.isArray(xfa) || xfa.length === 0) {\n return null;\n }\n\n for (let i = 0, ii = xfa.length; i < ii; i += 2) {\n let name;\n if (i === 0) {\n name = \"xdp:xdp\";\n } else if (i === ii - 2) {\n name = \"/xdp:xdp\";\n } else {\n name = xfa[i];\n }\n\n if (!entries.hasOwnProperty(name)) {\n continue;\n }\n const data = this.xref.fetchIfRef(xfa[i + 1]);\n if (!(data instanceof BaseStream) || data.isEmpty) {\n continue;\n }\n entries[name] = data;\n }\n return entries;\n }\n\n get xfaDatasets() {\n const streams = this._xfaStreams;\n if (!streams) {\n return shadow(this, \"xfaDatasets\", null);\n }\n for (const key of [\"datasets\", \"xdp:xdp\"]) {\n const stream = streams[key];\n if (!stream) {\n continue;\n }\n try {\n const str = stringToUTF8String(stream.getString());\n const data = { [key]: str };\n return shadow(this, \"xfaDatasets\", new DatasetReader(data));\n } catch (_) {\n warn(\"XFA - Invalid utf-8 string.\");\n break;\n }\n }\n return shadow(this, \"xfaDatasets\", null);\n }\n\n get xfaData() {\n const streams = this._xfaStreams;\n if (!streams) {\n return null;\n }\n const data = Object.create(null);\n for (const [key, stream] of Object.entries(streams)) {\n if (!stream) {\n continue;\n }\n try {\n data[key] = stringToUTF8String(stream.getString());\n } catch (_) {\n warn(\"XFA - Invalid utf-8 string.\");\n return null;\n }\n }\n return data;\n }\n\n get xfaFactory() {\n let data;\n if (\n this.pdfManager.enableXfa &&\n this.catalog.needsRendering &&\n this.formInfo.hasXfa &&\n !this.formInfo.hasAcroForm\n ) {\n data = this.xfaData;\n }\n return shadow(this, \"xfaFactory\", data ? new XFAFactory(data) : null);\n }\n\n get isPureXfa() {\n return this.xfaFactory ? this.xfaFactory.isValid() : false;\n }\n\n get htmlForXfa() {\n return this.xfaFactory ? this.xfaFactory.getPages() : null;\n }\n\n async loadXfaImages() {\n const xfaImagesDict = await this.pdfManager.ensureCatalog(\"xfaImages\");\n if (!xfaImagesDict) {\n return;\n }\n\n const keys = xfaImagesDict.getKeys();\n const objectLoader = new ObjectLoader(xfaImagesDict, keys, this.xref);\n await objectLoader.load();\n\n const xfaImages = new Map();\n for (const key of keys) {\n const stream = xfaImagesDict.get(key);\n if (stream instanceof BaseStream) {\n xfaImages.set(key, stream.getBytes());\n }\n }\n\n this.xfaFactory.setImages(xfaImages);\n }\n\n async loadXfaFonts(handler, task) {\n const acroForm = await this.pdfManager.ensureCatalog(\"acroForm\");\n if (!acroForm) {\n return;\n }\n const resources = await acroForm.getAsync(\"DR\");\n if (!(resources instanceof Dict)) {\n return;\n }\n const objectLoader = new ObjectLoader(resources, [\"Font\"], this.xref);\n await objectLoader.load();\n\n const fontRes = resources.get(\"Font\");\n if (!(fontRes instanceof Dict)) {\n return;\n }\n\n const options = Object.assign(\n Object.create(null),\n this.pdfManager.evaluatorOptions\n );\n options.useSystemFonts = false;\n\n const partialEvaluator = new PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: -1,\n idFactory: this._globalIdFactory,\n fontCache: this.catalog.fontCache,\n builtInCMapCache: this.catalog.builtInCMapCache,\n standardFontDataCache: this.catalog.standardFontDataCache,\n options,\n });\n const operatorList = new OperatorList();\n const pdfFonts = [];\n const initialState = {\n get font() {\n return pdfFonts[pdfFonts.length - 1];\n },\n set font(font) {\n pdfFonts.push(font);\n },\n clone() {\n return this;\n },\n };\n\n const fonts = new Map();\n fontRes.forEach((fontName, font) => {\n fonts.set(fontName, font);\n });\n const promises = [];\n\n for (const [fontName, font] of fonts) {\n const descriptor = font.get(\"FontDescriptor\");\n if (!(descriptor instanceof Dict)) {\n continue;\n }\n let fontFamily = descriptor.get(\"FontFamily\");\n // For example, \"Wingdings 3\" is not a valid font name in the css specs.\n fontFamily = fontFamily.replace(/[ ]+(\\d)/g, \"$1\");\n const fontWeight = descriptor.get(\"FontWeight\");\n\n // Angle is expressed in degrees counterclockwise in PDF\n // when it's clockwise in CSS\n // (see https://drafts.csswg.org/css-fonts-4/#valdef-font-style-oblique-angle)\n const italicAngle = -descriptor.get(\"ItalicAngle\");\n const cssFontInfo = { fontFamily, fontWeight, italicAngle };\n\n if (!validateCSSFont(cssFontInfo)) {\n continue;\n }\n promises.push(\n partialEvaluator\n .handleSetFont(\n resources,\n [Name.get(fontName), 1],\n /* fontRef = */ null,\n operatorList,\n task,\n initialState,\n /* fallbackFontDict = */ null,\n /* cssFontInfo = */ cssFontInfo\n )\n .catch(function (reason) {\n warn(`loadXfaFonts: \"${reason}\".`);\n return null;\n })\n );\n }\n\n await Promise.all(promises);\n const missingFonts = this.xfaFactory.setFonts(pdfFonts);\n\n if (!missingFonts) {\n return;\n }\n\n options.ignoreErrors = true;\n promises.length = 0;\n pdfFonts.length = 0;\n\n const reallyMissingFonts = new Set();\n for (const missing of missingFonts) {\n if (!getXfaFontName(`${missing}-Regular`)) {\n // No substitution available: we'll fallback on Myriad.\n reallyMissingFonts.add(missing);\n }\n }\n\n if (reallyMissingFonts.size) {\n missingFonts.push(\"PdfJS-Fallback\");\n }\n\n for (const missing of missingFonts) {\n if (reallyMissingFonts.has(missing)) {\n continue;\n }\n for (const fontInfo of [\n { name: \"Regular\", fontWeight: 400, italicAngle: 0 },\n { name: \"Bold\", fontWeight: 700, italicAngle: 0 },\n { name: \"Italic\", fontWeight: 400, italicAngle: 12 },\n { name: \"BoldItalic\", fontWeight: 700, italicAngle: 12 },\n ]) {\n const name = `${missing}-${fontInfo.name}`;\n const dict = getXfaFontDict(name);\n\n promises.push(\n partialEvaluator\n .handleSetFont(\n resources,\n [Name.get(name), 1],\n /* fontRef = */ null,\n operatorList,\n task,\n initialState,\n /* fallbackFontDict = */ dict,\n /* cssFontInfo = */ {\n fontFamily: missing,\n fontWeight: fontInfo.fontWeight,\n italicAngle: fontInfo.italicAngle,\n }\n )\n .catch(function (reason) {\n warn(`loadXfaFonts: \"${reason}\".`);\n return null;\n })\n );\n }\n }\n\n await Promise.all(promises);\n this.xfaFactory.appendFonts(pdfFonts, reallyMissingFonts);\n }\n\n async serializeXfaData(annotationStorage) {\n return this.xfaFactory\n ? this.xfaFactory.serializeData(annotationStorage)\n : null;\n }\n\n get formInfo() {\n const formInfo = {\n hasFields: false,\n hasAcroForm: false,\n hasXfa: false,\n hasSignatures: false,\n };\n const acroForm = this.catalog.acroForm;\n if (!acroForm) {\n return shadow(this, \"formInfo\", formInfo);\n }\n\n try {\n const fields = acroForm.get(\"Fields\");\n const hasFields = Array.isArray(fields) && fields.length > 0;\n formInfo.hasFields = hasFields; // Used by the `fieldObjects` getter.\n\n // The document contains XFA data if the `XFA` entry is a non-empty\n // array or stream.\n const xfa = acroForm.get(\"XFA\");\n formInfo.hasXfa =\n (Array.isArray(xfa) && xfa.length > 0) ||\n (xfa instanceof BaseStream && !xfa.isEmpty);\n\n // The document contains AcroForm data if the `Fields` entry is a\n // non-empty array and it doesn't consist of only document signatures.\n // This second check is required for files that don't actually contain\n // AcroForm data (only XFA data), but that use the `Fields` entry to\n // store (invisible) document signatures. This can be detected using\n // the first bit of the `SigFlags` integer (see Table 219 in the\n // specification).\n const sigFlags = acroForm.get(\"SigFlags\");\n const hasSignatures = !!(sigFlags & 0x1);\n const hasOnlyDocumentSignatures =\n hasSignatures && this._hasOnlyDocumentSignatures(fields);\n formInfo.hasAcroForm = hasFields && !hasOnlyDocumentSignatures;\n formInfo.hasSignatures = hasSignatures;\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`Cannot fetch form information: \"${ex}\".`);\n }\n return shadow(this, \"formInfo\", formInfo);\n }\n\n get documentInfo() {\n let version = this._version;\n if (\n typeof version !== \"string\" ||\n !PDF_HEADER_VERSION_REGEXP.test(version)\n ) {\n warn(`Invalid PDF header version number: ${version}`);\n version = null;\n }\n\n const docInfo = {\n PDFFormatVersion: version,\n Language: this.catalog.lang,\n EncryptFilterName: this.xref.encrypt\n ? this.xref.encrypt.filterName\n : null,\n IsLinearized: !!this.linearization,\n IsAcroFormPresent: this.formInfo.hasAcroForm,\n IsXFAPresent: this.formInfo.hasXfa,\n IsCollectionPresent: !!this.catalog.collection,\n IsSignaturesPresent: this.formInfo.hasSignatures,\n };\n\n let infoDict;\n try {\n infoDict = this.xref.trailer.get(\"Info\");\n } catch (err) {\n if (err instanceof MissingDataException) {\n throw err;\n }\n info(\"The document information dictionary is invalid.\");\n }\n if (!(infoDict instanceof Dict)) {\n return shadow(this, \"documentInfo\", docInfo);\n }\n\n for (const key of infoDict.getKeys()) {\n const value = infoDict.get(key);\n\n switch (key) {\n case \"Title\":\n case \"Author\":\n case \"Subject\":\n case \"Keywords\":\n case \"Creator\":\n case \"Producer\":\n case \"CreationDate\":\n case \"ModDate\":\n if (typeof value === \"string\") {\n docInfo[key] = stringToPDFString(value);\n continue;\n }\n break;\n case \"Trapped\":\n if (value instanceof Name) {\n docInfo[key] = value;\n continue;\n }\n break;\n default:\n // For custom values, only accept white-listed types to prevent\n // errors that would occur when trying to send non-serializable\n // objects to the main-thread (for example `Dict` or `Stream`).\n let customValue;\n switch (typeof value) {\n case \"string\":\n customValue = stringToPDFString(value);\n break;\n case \"number\":\n case \"boolean\":\n customValue = value;\n break;\n default:\n if (value instanceof Name) {\n customValue = value;\n }\n break;\n }\n\n if (customValue === undefined) {\n warn(`Bad value, for custom key \"${key}\", in Info: ${value}.`);\n continue;\n }\n if (!docInfo.Custom) {\n docInfo.Custom = Object.create(null);\n }\n docInfo.Custom[key] = customValue;\n continue;\n }\n warn(`Bad value, for key \"${key}\", in Info: ${value}.`);\n }\n return shadow(this, \"documentInfo\", docInfo);\n }\n\n get fingerprints() {\n function validate(data) {\n return (\n typeof data === \"string\" &&\n data.length > 0 &&\n data !== EMPTY_FINGERPRINT\n );\n }\n\n function hexString(hash) {\n const buf = [];\n for (let i = 0, ii = hash.length; i < ii; i++) {\n const hex = hash[i].toString(16);\n buf.push(hex.padStart(2, \"0\"));\n }\n return buf.join(\"\");\n }\n\n const idArray = this.xref.trailer.get(\"ID\");\n let hashOriginal, hashModified;\n if (Array.isArray(idArray) && validate(idArray[0])) {\n hashOriginal = stringToBytes(idArray[0]);\n\n if (idArray[1] !== idArray[0] && validate(idArray[1])) {\n hashModified = stringToBytes(idArray[1]);\n }\n } else {\n hashOriginal = calculateMD5(\n this.stream.getByteRange(0, FINGERPRINT_FIRST_BYTES),\n 0,\n FINGERPRINT_FIRST_BYTES\n );\n }\n\n return shadow(this, \"fingerprints\", [\n hexString(hashOriginal),\n hashModified ? hexString(hashModified) : null,\n ]);\n }\n\n async _getLinearizationPage(pageIndex) {\n const { catalog, linearization, xref } = this;\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n linearization && linearization.pageFirst === pageIndex,\n \"_getLinearizationPage - invalid pageIndex argument.\"\n );\n }\n\n const ref = Ref.get(linearization.objectNumberFirst, 0);\n try {\n const obj = await xref.fetchAsync(ref);\n // Ensure that the object that was found is actually a Page dictionary.\n if (obj instanceof Dict) {\n let type = obj.getRaw(\"Type\");\n if (type instanceof Ref) {\n type = await xref.fetchAsync(type);\n }\n if (isName(type, \"Page\") || (!obj.has(\"Type\") && !obj.has(\"Kids\"))) {\n if (!catalog.pageKidsCountCache.has(ref)) {\n catalog.pageKidsCountCache.put(ref, 1); // Cache the Page reference.\n }\n // Help improve performance of the `Catalog.getPageIndex` method.\n if (!catalog.pageIndexCache.has(ref)) {\n catalog.pageIndexCache.put(ref, 0);\n }\n\n return [obj, ref];\n }\n }\n throw new FormatError(\n \"The Linearization dictionary doesn't point to a valid Page dictionary.\"\n );\n } catch (reason) {\n warn(`_getLinearizationPage: \"${reason.message}\".`);\n return catalog.getPageDict(pageIndex);\n }\n }\n\n getPage(pageIndex) {\n const cachedPromise = this._pagePromises.get(pageIndex);\n if (cachedPromise) {\n return cachedPromise;\n }\n const { catalog, linearization, xfaFactory } = this;\n\n let promise;\n if (xfaFactory) {\n promise = Promise.resolve([Dict.empty, null]);\n } else if (linearization && linearization.pageFirst === pageIndex) {\n promise = this._getLinearizationPage(pageIndex);\n } else {\n promise = catalog.getPageDict(pageIndex);\n }\n promise = promise.then(([pageDict, ref]) => {\n return new Page({\n pdfManager: this.pdfManager,\n xref: this.xref,\n pageIndex,\n pageDict,\n ref,\n globalIdFactory: this._globalIdFactory,\n fontCache: catalog.fontCache,\n builtInCMapCache: catalog.builtInCMapCache,\n standardFontDataCache: catalog.standardFontDataCache,\n globalImageCache: catalog.globalImageCache,\n nonBlendModesSet: catalog.nonBlendModesSet,\n xfaFactory,\n });\n });\n\n this._pagePromises.set(pageIndex, promise);\n return promise;\n }\n\n async checkFirstPage(recoveryMode = false) {\n if (recoveryMode) {\n return;\n }\n try {\n await this.getPage(0);\n } catch (reason) {\n if (reason instanceof XRefEntryException) {\n // Clear out the various caches to ensure that we haven't stored any\n // inconsistent and/or incorrect state, since that could easily break\n // subsequent `this.getPage` calls.\n this._pagePromises.delete(0);\n await this.cleanup();\n\n throw new XRefParseException();\n }\n }\n }\n\n async checkLastPage(recoveryMode = false) {\n const { catalog, pdfManager } = this;\n\n catalog.setActualNumPages(); // Ensure that it's always reset.\n let numPages;\n\n try {\n await Promise.all([\n pdfManager.ensureDoc(\"xfaFactory\"),\n pdfManager.ensureDoc(\"linearization\"),\n pdfManager.ensureCatalog(\"numPages\"),\n ]);\n\n if (this.xfaFactory) {\n return; // The Page count is always calculated for XFA-documents.\n } else if (this.linearization) {\n numPages = this.linearization.numPages;\n } else {\n numPages = catalog.numPages;\n }\n\n if (!Number.isInteger(numPages)) {\n throw new FormatError(\"Page count is not an integer.\");\n } else if (numPages <= 1) {\n return;\n }\n await this.getPage(numPages - 1);\n } catch (reason) {\n // Clear out the various caches to ensure that we haven't stored any\n // inconsistent and/or incorrect state, since that could easily break\n // subsequent `this.getPage` calls.\n this._pagePromises.delete(numPages - 1);\n await this.cleanup();\n\n if (reason instanceof XRefEntryException && !recoveryMode) {\n throw new XRefParseException();\n }\n warn(`checkLastPage - invalid /Pages tree /Count: ${numPages}.`);\n\n let pagesTree;\n try {\n pagesTree = await catalog.getAllPageDicts(recoveryMode);\n } catch (reasonAll) {\n if (reasonAll instanceof XRefEntryException && !recoveryMode) {\n throw new XRefParseException();\n }\n catalog.setActualNumPages(1);\n return;\n }\n\n for (const [pageIndex, [pageDict, ref]] of pagesTree) {\n let promise;\n if (pageDict instanceof Error) {\n promise = Promise.reject(pageDict);\n\n // Prevent \"uncaught exception: Object\"-messages in the console.\n promise.catch(() => {});\n } else {\n promise = Promise.resolve(\n new Page({\n pdfManager,\n xref: this.xref,\n pageIndex,\n pageDict,\n ref,\n globalIdFactory: this._globalIdFactory,\n fontCache: catalog.fontCache,\n builtInCMapCache: catalog.builtInCMapCache,\n standardFontDataCache: catalog.standardFontDataCache,\n globalImageCache: catalog.globalImageCache,\n nonBlendModesSet: catalog.nonBlendModesSet,\n xfaFactory: null,\n })\n );\n }\n\n this._pagePromises.set(pageIndex, promise);\n }\n catalog.setActualNumPages(pagesTree.size);\n }\n }\n\n fontFallback(id, handler) {\n return this.catalog.fontFallback(id, handler);\n }\n\n async cleanup(manuallyTriggered = false) {\n return this.catalog\n ? this.catalog.cleanup(manuallyTriggered)\n : clearGlobalCaches();\n }\n\n /**\n * @private\n */\n _collectFieldObjects(name, fieldRef, promises) {\n const field = this.xref.fetchIfRef(fieldRef);\n if (field.has(\"T\")) {\n const partName = stringToPDFString(field.get(\"T\"));\n if (name === \"\") {\n name = partName;\n } else {\n name = `${name}.${partName}`;\n }\n }\n\n if (!promises.has(name)) {\n promises.set(name, []);\n }\n promises.get(name).push(\n AnnotationFactory.create(\n this.xref,\n fieldRef,\n this.pdfManager,\n this._localIdFactory,\n /* collectFields */ true\n )\n .then(annotation => annotation && annotation.getFieldObject())\n .catch(function (reason) {\n warn(`_collectFieldObjects: \"${reason}\".`);\n return null;\n })\n );\n\n if (field.has(\"Kids\")) {\n const kids = field.get(\"Kids\");\n for (const kid of kids) {\n this._collectFieldObjects(name, kid, promises);\n }\n }\n }\n\n get fieldObjects() {\n if (!this.formInfo.hasFields) {\n return shadow(this, \"fieldObjects\", Promise.resolve(null));\n }\n\n const allFields = Object.create(null);\n const fieldPromises = new Map();\n for (const fieldRef of this.catalog.acroForm.get(\"Fields\")) {\n this._collectFieldObjects(\"\", fieldRef, fieldPromises);\n }\n\n const allPromises = [];\n for (const [name, promises] of fieldPromises) {\n allPromises.push(\n Promise.all(promises).then(fields => {\n fields = fields.filter(field => !!field);\n if (fields.length > 0) {\n allFields[name] = fields;\n }\n })\n );\n }\n\n return shadow(\n this,\n \"fieldObjects\",\n Promise.all(allPromises).then(() => allFields)\n );\n }\n\n get hasJSActions() {\n const promise = this.pdfManager.ensureDoc(\"_parseHasJSActions\");\n return shadow(this, \"hasJSActions\", promise);\n }\n\n /**\n * @private\n */\n async _parseHasJSActions() {\n const [catalogJsActions, fieldObjects] = await Promise.all([\n this.pdfManager.ensureCatalog(\"jsActions\"),\n this.pdfManager.ensureDoc(\"fieldObjects\"),\n ]);\n\n if (catalogJsActions) {\n return true;\n }\n if (fieldObjects) {\n return Object.values(fieldObjects).some(fieldObject =>\n fieldObject.some(object => object.actions !== null)\n );\n }\n return false;\n }\n\n get calculationOrderIds() {\n const acroForm = this.catalog.acroForm;\n if (!acroForm || !acroForm.has(\"CO\")) {\n return shadow(this, \"calculationOrderIds\", null);\n }\n\n const calculationOrder = acroForm.get(\"CO\");\n if (!Array.isArray(calculationOrder) || calculationOrder.length === 0) {\n return shadow(this, \"calculationOrderIds\", null);\n }\n\n const ids = [];\n for (const id of calculationOrder) {\n if (id instanceof Ref) {\n ids.push(id.toString());\n }\n }\n if (ids.length === 0) {\n return shadow(this, \"calculationOrderIds\", null);\n }\n return shadow(this, \"calculationOrderIds\", ids);\n }\n}\n\nclass ExtendedPDFDocument extends PDFDocument{\n constructor(pdfManager, arg) {\n super(pdfManager, arg);\n }\n\n get structureTree() {\n return shadow(this, 'structureTree', this.catalog.structureTree);\n }\n}\n\nexport {\n Page,\n ExtendedPDFDocument as PDFDocument,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n CalibriBoldFactors,\n CalibriBoldItalicFactors,\n CalibriBoldItalicMetrics,\n CalibriBoldMetrics,\n CalibriItalicFactors,\n CalibriItalicMetrics,\n CalibriRegularFactors,\n CalibriRegularMetrics,\n} from \"./calibri_factors.js\";\nimport { Dict, Name } from \"./primitives.js\";\nimport {\n HelveticaBoldFactors,\n HelveticaBoldItalicFactors,\n HelveticaBoldItalicMetrics,\n HelveticaBoldMetrics,\n HelveticaItalicFactors,\n HelveticaItalicMetrics,\n HelveticaRegularFactors,\n HelveticaRegularMetrics,\n} from \"./helvetica_factors.js\";\nimport {\n LiberationSansBoldItalicMapping,\n LiberationSansBoldItalicWidths,\n LiberationSansBoldMapping,\n LiberationSansBoldWidths,\n LiberationSansItalicMapping,\n LiberationSansItalicWidths,\n LiberationSansRegularMapping,\n LiberationSansRegularWidths,\n} from \"./liberationsans_widths.js\";\nimport {\n MyriadProBoldFactors,\n MyriadProBoldItalicFactors,\n MyriadProBoldItalicMetrics,\n MyriadProBoldMetrics,\n MyriadProItalicFactors,\n MyriadProItalicMetrics,\n MyriadProRegularFactors,\n MyriadProRegularMetrics,\n} from \"./myriadpro_factors.js\";\nimport {\n SegoeuiBoldFactors,\n SegoeuiBoldItalicFactors,\n SegoeuiBoldItalicMetrics,\n SegoeuiBoldMetrics,\n SegoeuiItalicFactors,\n SegoeuiItalicMetrics,\n SegoeuiRegularFactors,\n SegoeuiRegularMetrics,\n} from \"./segoeui_factors.js\";\nimport { getLookupTableFactory } from \"./core_utils.js\";\nimport { normalizeFontName } from \"./fonts_utils.js\";\n\nconst getXFAFontMap = getLookupTableFactory(function (t) {\n t[\"MyriadPro-Regular\"] = t[\"PdfJS-Fallback-Regular\"] = {\n name: \"LiberationSans-Regular\",\n factors: MyriadProRegularFactors,\n baseWidths: LiberationSansRegularWidths,\n baseMapping: LiberationSansRegularMapping,\n metrics: MyriadProRegularMetrics,\n };\n t[\"MyriadPro-Bold\"] = t[\"PdfJS-Fallback-Bold\"] = {\n name: \"LiberationSans-Bold\",\n factors: MyriadProBoldFactors,\n baseWidths: LiberationSansBoldWidths,\n baseMapping: LiberationSansBoldMapping,\n metrics: MyriadProBoldMetrics,\n };\n t[\"MyriadPro-It\"] =\n t[\"MyriadPro-Italic\"] =\n t[\"PdfJS-Fallback-Italic\"] =\n {\n name: \"LiberationSans-Italic\",\n factors: MyriadProItalicFactors,\n baseWidths: LiberationSansItalicWidths,\n baseMapping: LiberationSansItalicMapping,\n metrics: MyriadProItalicMetrics,\n };\n t[\"MyriadPro-BoldIt\"] =\n t[\"MyriadPro-BoldItalic\"] =\n t[\"PdfJS-Fallback-BoldItalic\"] =\n {\n name: \"LiberationSans-BoldItalic\",\n factors: MyriadProBoldItalicFactors,\n baseWidths: LiberationSansBoldItalicWidths,\n baseMapping: LiberationSansBoldItalicMapping,\n metrics: MyriadProBoldItalicMetrics,\n };\n t.ArialMT =\n t.Arial =\n t[\"Arial-Regular\"] =\n {\n name: \"LiberationSans-Regular\",\n baseWidths: LiberationSansRegularWidths,\n baseMapping: LiberationSansRegularMapping,\n };\n t[\"Arial-BoldMT\"] = t[\"Arial-Bold\"] = {\n name: \"LiberationSans-Bold\",\n baseWidths: LiberationSansBoldWidths,\n baseMapping: LiberationSansBoldMapping,\n };\n t[\"Arial-ItalicMT\"] = t[\"Arial-Italic\"] = {\n name: \"LiberationSans-Italic\",\n baseWidths: LiberationSansItalicWidths,\n baseMapping: LiberationSansItalicMapping,\n };\n t[\"Arial-BoldItalicMT\"] = t[\"Arial-BoldItalic\"] = {\n name: \"LiberationSans-BoldItalic\",\n baseWidths: LiberationSansBoldItalicWidths,\n baseMapping: LiberationSansBoldItalicMapping,\n };\n t[\"Calibri-Regular\"] = {\n name: \"LiberationSans-Regular\",\n factors: CalibriRegularFactors,\n baseWidths: LiberationSansRegularWidths,\n baseMapping: LiberationSansRegularMapping,\n metrics: CalibriRegularMetrics,\n };\n t[\"Calibri-Bold\"] = {\n name: \"LiberationSans-Bold\",\n factors: CalibriBoldFactors,\n baseWidths: LiberationSansBoldWidths,\n baseMapping: LiberationSansBoldMapping,\n metrics: CalibriBoldMetrics,\n };\n t[\"Calibri-Italic\"] = {\n name: \"LiberationSans-Italic\",\n factors: CalibriItalicFactors,\n baseWidths: LiberationSansItalicWidths,\n baseMapping: LiberationSansItalicMapping,\n metrics: CalibriItalicMetrics,\n };\n t[\"Calibri-BoldItalic\"] = {\n name: \"LiberationSans-BoldItalic\",\n factors: CalibriBoldItalicFactors,\n baseWidths: LiberationSansBoldItalicWidths,\n baseMapping: LiberationSansBoldItalicMapping,\n metrics: CalibriBoldItalicMetrics,\n };\n t[\"Segoeui-Regular\"] = {\n name: \"LiberationSans-Regular\",\n factors: SegoeuiRegularFactors,\n baseWidths: LiberationSansRegularWidths,\n baseMapping: LiberationSansRegularMapping,\n metrics: SegoeuiRegularMetrics,\n };\n t[\"Segoeui-Bold\"] = {\n name: \"LiberationSans-Bold\",\n factors: SegoeuiBoldFactors,\n baseWidths: LiberationSansBoldWidths,\n baseMapping: LiberationSansBoldMapping,\n metrics: SegoeuiBoldMetrics,\n };\n t[\"Segoeui-Italic\"] = {\n name: \"LiberationSans-Italic\",\n factors: SegoeuiItalicFactors,\n baseWidths: LiberationSansItalicWidths,\n baseMapping: LiberationSansItalicMapping,\n metrics: SegoeuiItalicMetrics,\n };\n t[\"Segoeui-BoldItalic\"] = {\n name: \"LiberationSans-BoldItalic\",\n factors: SegoeuiBoldItalicFactors,\n baseWidths: LiberationSansBoldItalicWidths,\n baseMapping: LiberationSansBoldItalicMapping,\n metrics: SegoeuiBoldItalicMetrics,\n };\n t[\"Helvetica-Regular\"] = t.Helvetica = {\n name: \"LiberationSans-Regular\",\n factors: HelveticaRegularFactors,\n baseWidths: LiberationSansRegularWidths,\n baseMapping: LiberationSansRegularMapping,\n metrics: HelveticaRegularMetrics,\n };\n t[\"Helvetica-Bold\"] = {\n name: \"LiberationSans-Bold\",\n factors: HelveticaBoldFactors,\n baseWidths: LiberationSansBoldWidths,\n baseMapping: LiberationSansBoldMapping,\n metrics: HelveticaBoldMetrics,\n };\n t[\"Helvetica-Italic\"] = {\n name: \"LiberationSans-Italic\",\n factors: HelveticaItalicFactors,\n baseWidths: LiberationSansItalicWidths,\n baseMapping: LiberationSansItalicMapping,\n metrics: HelveticaItalicMetrics,\n };\n t[\"Helvetica-BoldItalic\"] = {\n name: \"LiberationSans-BoldItalic\",\n factors: HelveticaBoldItalicFactors,\n baseWidths: LiberationSansBoldItalicWidths,\n baseMapping: LiberationSansBoldItalicMapping,\n metrics: HelveticaBoldItalicMetrics,\n };\n});\n\nfunction getXfaFontName(name) {\n const fontName = normalizeFontName(name);\n const fontMap = getXFAFontMap();\n return fontMap[fontName];\n}\n\nfunction getXfaFontWidths(name) {\n const info = getXfaFontName(name);\n if (!info) {\n return null;\n }\n\n const { baseWidths, baseMapping, factors } = info;\n let rescaledBaseWidths;\n if (!factors) {\n rescaledBaseWidths = baseWidths;\n } else {\n rescaledBaseWidths = baseWidths.map((w, i) => w * factors[i]);\n }\n\n let currentCode = -2;\n let currentArray;\n\n // Widths array for composite font is:\n // CharCode1 [10, 20, 30] ...\n // which means:\n // - CharCode1 has a width equal to 10\n // - CharCode1+1 has a width equal to 20\n // - CharCode1+2 has a width equal to 30\n //\n // The baseMapping array contains a map for glyph index to unicode.\n // So from baseMapping we'll get sorted unicodes and their positions\n // (i.e. glyph indices) and then we put widths in an array for the\n // the consecutive unicodes.\n const newWidths = [];\n for (const [unicode, glyphIndex] of baseMapping\n .map(\n (charUnicode, index) => [\n charUnicode,\n index,\n ] /* collect unicode and glyph index */\n )\n .sort(\n ([unicode1], [unicode2]) =>\n unicode1 - unicode2 /* order by unicode only */\n )) {\n if (unicode === -1) {\n continue;\n }\n\n if (unicode === currentCode + 1) {\n currentArray.push(rescaledBaseWidths[glyphIndex]);\n currentCode += 1;\n } else {\n currentCode = unicode;\n currentArray = [rescaledBaseWidths[glyphIndex]];\n newWidths.push(unicode, currentArray);\n }\n }\n\n return newWidths;\n}\n\nfunction getXfaFontDict(name) {\n const widths = getXfaFontWidths(name);\n const dict = new Dict(null);\n dict.set(\"BaseFont\", Name.get(name));\n dict.set(\"Type\", Name.get(\"Font\"));\n dict.set(\"Subtype\", Name.get(\"CIDFontType2\"));\n dict.set(\"Encoding\", Name.get(\"Identity-H\"));\n dict.set(\"CIDToGIDMap\", Name.get(\"Identity\"));\n dict.set(\"W\", widths);\n dict.set(\"FirstChar\", widths[0]);\n dict.set(\n \"LastChar\",\n widths[widths.length - 2] + widths[widths.length - 1].length - 1\n );\n const descriptor = new Dict(null);\n dict.set(\"FontDescriptor\", descriptor);\n const systemInfo = new Dict(null);\n systemInfo.set(\"Ordering\", \"Identity\");\n systemInfo.set(\"Registry\", \"Adobe\");\n systemInfo.set(\"Supplement\", 0);\n dict.set(\"CIDSystemInfo\", systemInfo);\n\n return dict;\n}\n\nexport { getXfaFontDict, getXfaFontName };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Factors to rescale LiberationSans-Bold.ttf to have the same\n// metrics as calibrib.ttf.\nconst CalibriBoldFactors = [\n 1.3877, 1, 1, 1, 0.97801, 0.92482, 0.89552, 0.91133, 0.81988, 0.97566,\n 0.98152, 0.93548, 0.93548, 1.2798, 0.85284, 0.92794, 1, 0.96134, 1.54657,\n 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133,\n 0.91133, 0.91133, 0.82845, 0.82845, 0.85284, 0.85284, 0.85284, 0.75859,\n 0.92138, 0.83908, 0.7762, 0.73293, 0.87289, 0.73133, 0.7514, 0.81921, 0.87356,\n 0.95958, 0.59526, 0.75727, 0.69225, 1.04924, 0.9121, 0.86943, 0.79795,\n 0.88198, 0.77958, 0.70864, 0.81055, 0.90399, 0.88653, 0.96017, 0.82577,\n 0.77892, 0.78257, 0.97507, 1.54657, 0.97507, 0.85284, 0.89552, 0.90176,\n 0.88762, 0.8785, 0.75241, 0.8785, 0.90518, 0.95015, 0.77618, 0.8785, 0.88401,\n 0.91916, 0.86304, 0.88401, 0.91488, 0.8785, 0.8801, 0.8785, 0.8785, 0.91343,\n 0.7173, 1.04106, 0.8785, 0.85075, 0.95794, 0.82616, 0.85162, 0.79492, 0.88331,\n 1.69808, 0.88331, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133,\n 1.7801, 0.89552, 1.24487, 1.13254, 1.12401, 0.96839, 0.85284, 0.68787,\n 0.70645, 0.85592, 0.90747, 1.01466, 1.0088, 0.90323, 1, 1.07463, 1, 0.91056,\n 0.75806, 1.19118, 0.96839, 0.78864, 0.82845, 0.84133, 0.75859, 0.83908,\n 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.77539, 0.73293, 0.73133,\n 0.73133, 0.73133, 0.73133, 0.95958, 0.95958, 0.95958, 0.95958, 0.88506,\n 0.9121, 0.86943, 0.86943, 0.86943, 0.86943, 0.86943, 0.85284, 0.87508,\n 0.90399, 0.90399, 0.90399, 0.90399, 0.77892, 0.79795, 0.90807, 0.88762,\n 0.88762, 0.88762, 0.88762, 0.88762, 0.88762, 0.8715, 0.75241, 0.90518,\n 0.90518, 0.90518, 0.90518, 0.88401, 0.88401, 0.88401, 0.88401, 0.8785, 0.8785,\n 0.8801, 0.8801, 0.8801, 0.8801, 0.8801, 0.90747, 0.89049, 0.8785, 0.8785,\n 0.8785, 0.8785, 0.85162, 0.8785, 0.85162, 0.83908, 0.88762, 0.83908, 0.88762,\n 0.83908, 0.88762, 0.73293, 0.75241, 0.73293, 0.75241, 0.73293, 0.75241,\n 0.73293, 0.75241, 0.87289, 0.83016, 0.88506, 0.93125, 0.73133, 0.90518,\n 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518,\n 0.81921, 0.77618, 0.81921, 0.77618, 0.81921, 0.77618, 1, 1, 0.87356, 0.8785,\n 0.91075, 0.89608, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401,\n 0.95958, 0.88401, 0.95958, 0.88401, 0.76229, 0.90167, 0.59526, 0.91916, 1, 1,\n 0.86304, 0.69225, 0.88401, 1, 1, 0.70424, 0.79468, 0.91926, 0.88175, 0.70823,\n 0.94903, 0.9121, 0.8785, 1, 1, 0.9121, 0.8785, 0.87802, 0.88656, 0.8785,\n 0.86943, 0.8801, 0.86943, 0.8801, 0.86943, 0.8801, 0.87402, 0.89291, 0.77958,\n 0.91343, 1, 1, 0.77958, 0.91343, 0.70864, 0.7173, 0.70864, 0.7173, 0.70864,\n 0.7173, 0.70864, 0.7173, 1, 1, 0.81055, 0.75841, 0.81055, 1.06452, 0.90399,\n 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785,\n 0.90399, 0.8785, 0.96017, 0.95794, 0.77892, 0.85162, 0.77892, 0.78257,\n 0.79492, 0.78257, 0.79492, 0.78257, 0.79492, 0.9297, 0.56892, 0.83908,\n 0.88762, 0.77539, 0.8715, 0.87508, 0.89049, 1, 1, 0.81055, 1.04106, 1.20528,\n 1.20528, 1, 1.15543, 0.70674, 0.98387, 0.94721, 1.33431, 1.45894, 0.95161,\n 1.06303, 0.83908, 0.80352, 0.57184, 0.6965, 0.56289, 0.82001, 0.56029,\n 0.81235, 1.02988, 0.83908, 0.7762, 0.68156, 0.80367, 0.73133, 0.78257,\n 0.87356, 0.86943, 0.95958, 0.75727, 0.89019, 1.04924, 0.9121, 0.7648, 0.86943,\n 0.87356, 0.79795, 0.78275, 0.81055, 0.77892, 0.9762, 0.82577, 0.99819,\n 0.84896, 0.95958, 0.77892, 0.96108, 1.01407, 0.89049, 1.02988, 0.94211,\n 0.96108, 0.8936, 0.84021, 0.87842, 0.96399, 0.79109, 0.89049, 1.00813,\n 1.02988, 0.86077, 0.87445, 0.92099, 0.84723, 0.86513, 0.8801, 0.75638,\n 0.85714, 0.78216, 0.79586, 0.87965, 0.94211, 0.97747, 0.78287, 0.97926,\n 0.84971, 1.02988, 0.94211, 0.8801, 0.94211, 0.84971, 0.73133, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 0.90264, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 0.90518, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90548, 1, 1, 1, 1, 1, 1,\n 0.96017, 0.95794, 0.96017, 0.95794, 0.96017, 0.95794, 0.77892, 0.85162, 1, 1,\n 0.89552, 0.90527, 1, 0.90363, 0.92794, 0.92794, 0.92794, 0.92794, 0.87012,\n 0.87012, 0.87012, 0.89552, 0.89552, 1.42259, 0.71143, 1.06152, 1, 1, 1.03372,\n 1.03372, 0.97171, 1.4956, 2.2807, 0.93835, 0.83406, 0.91133, 0.84107, 0.91133,\n 1, 1, 1, 0.72021, 1, 1.23108, 0.83489, 0.88525, 0.88525, 0.81499, 0.90527,\n 1.81055, 0.90527, 1.81055, 1.31006, 1.53711, 0.94434, 1.08696, 1, 0.95018,\n 0.77192, 0.85284, 0.90747, 1.17534, 0.69825, 0.9716, 1.37077, 0.90747,\n 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572,\n 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.08004, 0.91027, 1, 1, 1,\n 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90727, 0.90727, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst CalibriBoldMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };\n\n// Factors to rescale LiberationSans-BoldItalic.ttf to have the same\n// metrics as calibriz.ttf.\nconst CalibriBoldItalicFactors = [\n 1.3877, 1, 1, 1, 0.97801, 0.92482, 0.89552, 0.91133, 0.81988, 0.97566,\n 0.98152, 0.93548, 0.93548, 1.2798, 0.85284, 0.92794, 1, 0.96134, 1.56239,\n 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133,\n 0.91133, 0.91133, 0.82845, 0.82845, 0.85284, 0.85284, 0.85284, 0.75859,\n 0.92138, 0.83908, 0.7762, 0.71805, 0.87289, 0.73133, 0.7514, 0.81921, 0.87356,\n 0.95958, 0.59526, 0.75727, 0.69225, 1.04924, 0.90872, 0.85938, 0.79795,\n 0.87068, 0.77958, 0.69766, 0.81055, 0.90399, 0.88653, 0.96068, 0.82577,\n 0.77892, 0.78257, 0.97507, 1.529, 0.97507, 0.85284, 0.89552, 0.90176, 0.94908,\n 0.86411, 0.74012, 0.86411, 0.88323, 0.95015, 0.86411, 0.86331, 0.88401,\n 0.91916, 0.86304, 0.88401, 0.9039, 0.86331, 0.86331, 0.86411, 0.86411,\n 0.90464, 0.70852, 1.04106, 0.86331, 0.84372, 0.95794, 0.82616, 0.84548,\n 0.79492, 0.88331, 1.69808, 0.88331, 0.85284, 0.97801, 0.89552, 0.91133,\n 0.89552, 0.91133, 1.7801, 0.89552, 1.24487, 1.13254, 1.19129, 0.96839,\n 0.85284, 0.68787, 0.70645, 0.85592, 0.90747, 1.01466, 1.0088, 0.90323, 1,\n 1.07463, 1, 0.91056, 0.75806, 1.19118, 0.96839, 0.78864, 0.82845, 0.84133,\n 0.75859, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.77539,\n 0.71805, 0.73133, 0.73133, 0.73133, 0.73133, 0.95958, 0.95958, 0.95958,\n 0.95958, 0.88506, 0.90872, 0.85938, 0.85938, 0.85938, 0.85938, 0.85938,\n 0.85284, 0.87068, 0.90399, 0.90399, 0.90399, 0.90399, 0.77892, 0.79795,\n 0.90807, 0.94908, 0.94908, 0.94908, 0.94908, 0.94908, 0.94908, 0.85887,\n 0.74012, 0.88323, 0.88323, 0.88323, 0.88323, 0.88401, 0.88401, 0.88401,\n 0.88401, 0.8785, 0.86331, 0.86331, 0.86331, 0.86331, 0.86331, 0.86331,\n 0.90747, 0.89049, 0.86331, 0.86331, 0.86331, 0.86331, 0.84548, 0.86411,\n 0.84548, 0.83908, 0.94908, 0.83908, 0.94908, 0.83908, 0.94908, 0.71805,\n 0.74012, 0.71805, 0.74012, 0.71805, 0.74012, 0.71805, 0.74012, 0.87289,\n 0.79538, 0.88506, 0.92726, 0.73133, 0.88323, 0.73133, 0.88323, 0.73133,\n 0.88323, 0.73133, 0.88323, 0.73133, 0.88323, 0.81921, 0.86411, 0.81921,\n 0.86411, 0.81921, 0.86411, 1, 1, 0.87356, 0.86331, 0.91075, 0.8777, 0.95958,\n 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958,\n 0.88401, 0.76467, 0.90167, 0.59526, 0.91916, 1, 1, 0.86304, 0.69225, 0.88401,\n 1, 1, 0.70424, 0.77312, 0.91926, 0.88175, 0.70823, 0.94903, 0.90872, 0.86331,\n 1, 1, 0.90872, 0.86331, 0.86906, 0.88116, 0.86331, 0.85938, 0.86331, 0.85938,\n 0.86331, 0.85938, 0.86331, 0.87402, 0.86549, 0.77958, 0.90464, 1, 1, 0.77958,\n 0.90464, 0.69766, 0.70852, 0.69766, 0.70852, 0.69766, 0.70852, 0.69766,\n 0.70852, 1, 1, 0.81055, 0.75841, 0.81055, 1.06452, 0.90399, 0.86331, 0.90399,\n 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399,\n 0.86331, 0.96068, 0.95794, 0.77892, 0.84548, 0.77892, 0.78257, 0.79492,\n 0.78257, 0.79492, 0.78257, 0.79492, 0.9297, 0.56892, 0.83908, 0.94908,\n 0.77539, 0.85887, 0.87068, 0.89049, 1, 1, 0.81055, 1.04106, 1.20528, 1.20528,\n 1, 1.15543, 0.70088, 0.98387, 0.94721, 1.33431, 1.45894, 0.95161, 1.48387,\n 0.83908, 0.80352, 0.57118, 0.6965, 0.56347, 0.79179, 0.55853, 0.80346,\n 1.02988, 0.83908, 0.7762, 0.67174, 0.86036, 0.73133, 0.78257, 0.87356,\n 0.86441, 0.95958, 0.75727, 0.89019, 1.04924, 0.90872, 0.74889, 0.85938,\n 0.87891, 0.79795, 0.7957, 0.81055, 0.77892, 0.97447, 0.82577, 0.97466,\n 0.87179, 0.95958, 0.77892, 0.94252, 0.95612, 0.8753, 1.02988, 0.92733,\n 0.94252, 0.87411, 0.84021, 0.8728, 0.95612, 0.74081, 0.8753, 1.02189, 1.02988,\n 0.84814, 0.87445, 0.91822, 0.84723, 0.85668, 0.86331, 0.81344, 0.87581,\n 0.76422, 0.82046, 0.96057, 0.92733, 0.99375, 0.78022, 0.95452, 0.86015,\n 1.02988, 0.92733, 0.86331, 0.92733, 0.86015, 0.73133, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 0.90631, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.88323, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.85174, 1, 1, 1, 1, 1, 1, 0.96068, 0.95794,\n 0.96068, 0.95794, 0.96068, 0.95794, 0.77892, 0.84548, 1, 1, 0.89552, 0.90527,\n 1, 0.90363, 0.92794, 0.92794, 0.92794, 0.89807, 0.87012, 0.87012, 0.87012,\n 0.89552, 0.89552, 1.42259, 0.71094, 1.06152, 1, 1, 1.03372, 1.03372, 0.97171,\n 1.4956, 2.2807, 0.92972, 0.83406, 0.91133, 0.83326, 0.91133, 1, 1, 1, 0.72021,\n 1, 1.23108, 0.83489, 0.88525, 0.88525, 0.81499, 0.90616, 1.81055, 0.90527,\n 1.81055, 1.3107, 1.53711, 0.94434, 1.08696, 1, 0.95018, 0.77192, 0.85284,\n 0.90747, 1.17534, 0.69825, 0.9716, 1.37077, 0.90747, 0.90747, 0.85356,\n 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572,\n 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.08004, 0.91027, 1, 1, 1, 0.99862, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90727, 0.90727, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst CalibriBoldItalicMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };\n\n// Factors to rescale LiberationSans-Italic.ttf to have the same\n// metrics as calibrii.ttf.\nconst CalibriItalicFactors = [\n 1.3877, 1, 1, 1, 1.17223, 1.1293, 0.89552, 0.91133, 0.80395, 1.02269, 1.15601,\n 0.91056, 0.91056, 1.2798, 0.85284, 0.89807, 1, 0.90861, 1.39543, 0.91133,\n 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133,\n 0.91133, 0.96309, 0.96309, 0.85284, 0.85284, 0.85284, 0.83319, 0.88071,\n 0.8675, 0.81552, 0.72346, 0.85193, 0.73206, 0.7522, 0.81105, 0.86275, 0.90685,\n 0.6377, 0.77892, 0.75593, 1.02638, 0.89249, 0.84118, 0.77452, 0.85374,\n 0.75186, 0.67789, 0.79776, 0.88844, 0.85066, 0.94309, 0.77818, 0.7306,\n 0.76659, 1.10369, 1.38313, 1.10369, 1.06139, 0.89552, 0.8739, 0.9245, 0.9245,\n 0.83203, 0.9245, 0.85865, 1.09842, 0.9245, 0.9245, 1.03297, 1.07692, 0.90918,\n 1.03297, 0.94959, 0.9245, 0.92274, 0.9245, 0.9245, 1.02933, 0.77832, 1.20562,\n 0.9245, 0.8916, 0.98986, 0.86621, 0.89453, 0.79004, 0.94152, 1.77256, 0.94152,\n 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.91729, 0.89552,\n 1.17889, 1.13254, 1.16359, 0.92098, 0.85284, 0.68787, 0.71353, 0.84737,\n 0.90747, 1.0088, 1.0044, 0.87683, 1, 1.09091, 1, 0.92229, 0.739, 1.15642,\n 0.92098, 0.76288, 0.80504, 0.80972, 0.75859, 0.8675, 0.8675, 0.8675, 0.8675,\n 0.8675, 0.8675, 0.76318, 0.72346, 0.73206, 0.73206, 0.73206, 0.73206, 0.90685,\n 0.90685, 0.90685, 0.90685, 0.86477, 0.89249, 0.84118, 0.84118, 0.84118,\n 0.84118, 0.84118, 0.85284, 0.84557, 0.88844, 0.88844, 0.88844, 0.88844,\n 0.7306, 0.77452, 0.86331, 0.9245, 0.9245, 0.9245, 0.9245, 0.9245, 0.9245,\n 0.84843, 0.83203, 0.85865, 0.85865, 0.85865, 0.85865, 0.82601, 0.82601,\n 0.82601, 0.82601, 0.94469, 0.9245, 0.92274, 0.92274, 0.92274, 0.92274,\n 0.92274, 0.90747, 0.86651, 0.9245, 0.9245, 0.9245, 0.9245, 0.89453, 0.9245,\n 0.89453, 0.8675, 0.9245, 0.8675, 0.9245, 0.8675, 0.9245, 0.72346, 0.83203,\n 0.72346, 0.83203, 0.72346, 0.83203, 0.72346, 0.83203, 0.85193, 0.8875,\n 0.86477, 0.99034, 0.73206, 0.85865, 0.73206, 0.85865, 0.73206, 0.85865,\n 0.73206, 0.85865, 0.73206, 0.85865, 0.81105, 0.9245, 0.81105, 0.9245, 0.81105,\n 0.9245, 1, 1, 0.86275, 0.9245, 0.90872, 0.93591, 0.90685, 0.82601, 0.90685,\n 0.82601, 0.90685, 0.82601, 0.90685, 1.03297, 0.90685, 0.82601, 0.77896,\n 1.05611, 0.6377, 1.07692, 1, 1, 0.90918, 0.75593, 1.03297, 1, 1, 0.76032,\n 0.9375, 0.98156, 0.93407, 0.77261, 1.11429, 0.89249, 0.9245, 1, 1, 0.89249,\n 0.9245, 0.92534, 0.86698, 0.9245, 0.84118, 0.92274, 0.84118, 0.92274, 0.84118,\n 0.92274, 0.8667, 0.86291, 0.75186, 1.02933, 1, 1, 0.75186, 1.02933, 0.67789,\n 0.77832, 0.67789, 0.77832, 0.67789, 0.77832, 0.67789, 0.77832, 1, 1, 0.79776,\n 0.97655, 0.79776, 1.23023, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245,\n 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.94309, 0.98986, 0.7306,\n 0.89453, 0.7306, 0.76659, 0.79004, 0.76659, 0.79004, 0.76659, 0.79004,\n 1.09231, 0.54873, 0.8675, 0.9245, 0.76318, 0.84843, 0.84557, 0.86651, 1, 1,\n 0.79776, 1.20562, 1.18622, 1.18622, 1, 1.1437, 0.67009, 0.96334, 0.93695,\n 1.35191, 1.40909, 0.95161, 1.48387, 0.8675, 0.90861, 0.6192, 0.7363, 0.64824,\n 0.82411, 0.56321, 0.85696, 1.23516, 0.8675, 0.81552, 0.7286, 0.84134, 0.73206,\n 0.76659, 0.86275, 0.84369, 0.90685, 0.77892, 0.85871, 1.02638, 0.89249,\n 0.75828, 0.84118, 0.85984, 0.77452, 0.76466, 0.79776, 0.7306, 0.90782,\n 0.77818, 0.903, 0.87291, 0.90685, 0.7306, 0.99058, 1.03667, 0.94635, 1.23516,\n 0.9849, 0.99058, 0.92393, 0.8916, 0.942, 1.03667, 0.75026, 0.94635, 1.0297,\n 1.23516, 0.90918, 0.94048, 0.98217, 0.89746, 0.84153, 0.92274, 0.82507,\n 0.88832, 0.84438, 0.88178, 1.03525, 0.9849, 1.00225, 0.78086, 0.97248,\n 0.89404, 1.23516, 0.9849, 0.92274, 0.9849, 0.89404, 0.73206, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 0.89693, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.85865,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90933, 1, 1, 1, 1, 1, 1, 0.94309,\n 0.98986, 0.94309, 0.98986, 0.94309, 0.98986, 0.7306, 0.89453, 1, 1, 0.89552,\n 0.90527, 1, 0.90186, 1.12308, 1.12308, 1.12308, 1.12308, 1.2566, 1.2566,\n 1.2566, 0.89552, 0.89552, 1.42259, 0.68994, 1.03809, 1, 1, 1.0176, 1.0176,\n 1.11523, 1.4956, 2.01462, 0.97858, 0.82616, 0.91133, 0.83437, 0.91133, 1, 1,\n 1, 0.70508, 1, 1.23108, 0.79801, 0.84426, 0.84426, 0.774, 0.90572, 1.81055,\n 0.90749, 1.81055, 1.28809, 1.55469, 0.94434, 1.07806, 1, 0.97094, 0.7589,\n 0.85284, 0.90747, 1.19658, 0.69825, 0.97622, 1.33512, 0.90747, 0.90747,\n 0.85284, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8,\n 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.0336, 0.91027, 1, 1, 1,\n 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05859, 1.05859, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst CalibriItalicMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };\n\n// Factors to rescale LiberationSans-Regular.ttf to have the same\n// metrics as calibri.ttf.\nconst CalibriRegularFactors = [\n 1.3877, 1, 1, 1, 1.17223, 1.1293, 0.89552, 0.91133, 0.80395, 1.02269, 1.15601,\n 0.91056, 0.91056, 1.2798, 0.85284, 0.89807, 1, 0.90861, 1.39016, 0.91133,\n 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133,\n 0.91133, 0.96309, 0.96309, 0.85284, 0.85284, 0.85284, 0.83319, 0.88071,\n 0.8675, 0.81552, 0.73834, 0.85193, 0.73206, 0.7522, 0.81105, 0.86275, 0.90685,\n 0.6377, 0.77892, 0.75593, 1.02638, 0.89385, 0.85122, 0.77452, 0.86503,\n 0.75186, 0.68887, 0.79776, 0.88844, 0.85066, 0.94258, 0.77818, 0.7306,\n 0.76659, 1.10369, 1.39016, 1.10369, 1.06139, 0.89552, 0.8739, 0.86128,\n 0.94469, 0.8457, 0.94469, 0.89464, 1.09842, 0.84636, 0.94469, 1.03297,\n 1.07692, 0.90918, 1.03297, 0.95897, 0.94469, 0.9482, 0.94469, 0.94469,\n 1.04692, 0.78223, 1.20562, 0.94469, 0.90332, 0.98986, 0.86621, 0.90527,\n 0.79004, 0.94152, 1.77256, 0.94152, 0.85284, 0.97801, 0.89552, 0.91133,\n 0.89552, 0.91133, 1.91729, 0.89552, 1.17889, 1.13254, 1.08707, 0.92098,\n 0.85284, 0.68787, 0.71353, 0.84737, 0.90747, 1.0088, 1.0044, 0.87683, 1,\n 1.09091, 1, 0.92229, 0.739, 1.15642, 0.92098, 0.76288, 0.80504, 0.80972,\n 0.75859, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.76318, 0.73834,\n 0.73206, 0.73206, 0.73206, 0.73206, 0.90685, 0.90685, 0.90685, 0.90685,\n 0.86477, 0.89385, 0.85122, 0.85122, 0.85122, 0.85122, 0.85122, 0.85284,\n 0.85311, 0.88844, 0.88844, 0.88844, 0.88844, 0.7306, 0.77452, 0.86331,\n 0.86128, 0.86128, 0.86128, 0.86128, 0.86128, 0.86128, 0.8693, 0.8457, 0.89464,\n 0.89464, 0.89464, 0.89464, 0.82601, 0.82601, 0.82601, 0.82601, 0.94469,\n 0.94469, 0.9482, 0.9482, 0.9482, 0.9482, 0.9482, 0.90747, 0.86651, 0.94469,\n 0.94469, 0.94469, 0.94469, 0.90527, 0.94469, 0.90527, 0.8675, 0.86128, 0.8675,\n 0.86128, 0.8675, 0.86128, 0.73834, 0.8457, 0.73834, 0.8457, 0.73834, 0.8457,\n 0.73834, 0.8457, 0.85193, 0.92454, 0.86477, 0.9921, 0.73206, 0.89464, 0.73206,\n 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.81105,\n 0.84636, 0.81105, 0.84636, 0.81105, 0.84636, 1, 1, 0.86275, 0.94469, 0.90872,\n 0.95786, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685,\n 1.03297, 0.90685, 0.82601, 0.77741, 1.05611, 0.6377, 1.07692, 1, 1, 0.90918,\n 0.75593, 1.03297, 1, 1, 0.76032, 0.90452, 0.98156, 1.11842, 0.77261, 1.11429,\n 0.89385, 0.94469, 1, 1, 0.89385, 0.94469, 0.95877, 0.86901, 0.94469, 0.85122,\n 0.9482, 0.85122, 0.9482, 0.85122, 0.9482, 0.8667, 0.90016, 0.75186, 1.04692,\n 1, 1, 0.75186, 1.04692, 0.68887, 0.78223, 0.68887, 0.78223, 0.68887, 0.78223,\n 0.68887, 0.78223, 1, 1, 0.79776, 0.92188, 0.79776, 1.23023, 0.88844, 0.94469,\n 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469,\n 0.88844, 0.94469, 0.94258, 0.98986, 0.7306, 0.90527, 0.7306, 0.76659, 0.79004,\n 0.76659, 0.79004, 0.76659, 0.79004, 1.09231, 0.54873, 0.8675, 0.86128,\n 0.76318, 0.8693, 0.85311, 0.86651, 1, 1, 0.79776, 1.20562, 1.18622, 1.18622,\n 1, 1.1437, 0.67742, 0.96334, 0.93695, 1.35191, 1.40909, 0.95161, 1.48387,\n 0.86686, 0.90861, 0.62267, 0.74359, 0.65649, 0.85498, 0.56963, 0.88254,\n 1.23516, 0.8675, 0.81552, 0.75443, 0.84503, 0.73206, 0.76659, 0.86275,\n 0.85122, 0.90685, 0.77892, 0.85746, 1.02638, 0.89385, 0.75657, 0.85122,\n 0.86275, 0.77452, 0.74171, 0.79776, 0.7306, 0.95165, 0.77818, 0.89772,\n 0.88831, 0.90685, 0.7306, 0.98142, 1.02191, 0.96576, 1.23516, 0.99018,\n 0.98142, 0.9236, 0.89258, 0.94035, 1.02191, 0.78848, 0.96576, 0.9561, 1.23516,\n 0.90918, 0.92578, 0.95424, 0.89746, 0.83969, 0.9482, 0.80113, 0.89442,\n 0.85208, 0.86155, 0.98022, 0.99018, 1.00452, 0.81209, 0.99247, 0.89181,\n 1.23516, 0.99018, 0.9482, 0.99018, 0.89181, 0.73206, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 0.88844, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89464, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.96766, 1, 1, 1, 1, 1, 1, 0.94258, 0.98986,\n 0.94258, 0.98986, 0.94258, 0.98986, 0.7306, 0.90527, 1, 1, 0.89552, 0.90527,\n 1, 0.90186, 1.12308, 1.12308, 1.12308, 1.12308, 1.2566, 1.2566, 1.2566,\n 0.89552, 0.89552, 1.42259, 0.69043, 1.03809, 1, 1, 1.0176, 1.0176, 1.11523,\n 1.4956, 2.01462, 0.99331, 0.82616, 0.91133, 0.84286, 0.91133, 1, 1, 1,\n 0.70508, 1, 1.23108, 0.79801, 0.84426, 0.84426, 0.774, 0.90527, 1.81055,\n 0.90527, 1.81055, 1.28809, 1.55469, 0.94434, 1.07806, 1, 0.97094, 0.7589,\n 0.85284, 0.90747, 1.19658, 0.69825, 0.97622, 1.33512, 0.90747, 0.90747,\n 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8,\n 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.0336, 0.91027, 1, 1, 1,\n 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05859, 1.05859, 1, 1, 1,\n 1.07185, 0.99413, 0.96334, 1.08065, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst CalibriRegularMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };\n\nexport {\n CalibriBoldFactors,\n CalibriBoldItalicFactors,\n CalibriBoldItalicMetrics,\n CalibriBoldMetrics,\n CalibriItalicFactors,\n CalibriItalicMetrics,\n CalibriRegularFactors,\n CalibriRegularMetrics,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Factors to rescale LiberationSans-Bold.ttf to have the same\n// metrics as NimbusSans-Bold.otf.\nconst HelveticaBoldFactors = [\n 0.76116, 1, 1, 1.0006, 0.99998, 0.99974, 0.99973, 0.99973, 0.99982, 0.99977,\n 1.00087, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99998, 1, 1.00003, 1.00003, 1.00003, 1.00026, 0.9999,\n 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977,\n 1.0006, 0.99973, 0.99977, 1.00026, 0.99999, 0.99977, 1.00022, 1.00001,\n 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001,\n 1.00001, 1.00026, 0.99998, 1.0006, 0.99998, 1.00003, 0.99973, 0.99998,\n 0.99973, 1.00026, 0.99973, 1.00026, 0.99973, 0.99998, 1.00026, 1.00026,\n 1.0006, 1.0006, 0.99973, 1.0006, 0.99982, 1.00026, 1.00026, 1.00026, 1.00026,\n 0.99959, 0.99973, 0.99998, 1.00026, 0.99973, 1.00022, 0.99973, 0.99973, 1,\n 0.99959, 1.00077, 0.99959, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973,\n 0.99973, 1.00077, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003,\n 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.99973, 1.0006,\n 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 0.99977,\n 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 1, 0.99977, 1.00001, 1.00001,\n 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022,\n 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977,\n 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99982, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.00026, 1.00026, 1.00026, 1.00026,\n 1.00026, 1.00026, 1.00026, 1.06409, 1.00026, 1.00026, 1.00026, 1.00026,\n 1.00026, 0.99973, 1.00026, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 1.03374, 0.99977, 1.00026, 1.00001, 0.99973,\n 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973,\n 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,\n 0.99977, 1.00026, 0.99977, 1.00026, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006,\n 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.00042, 0.99973, 0.99973, 1.0006,\n 0.99977, 0.99973, 0.99973, 1.00026, 1.0006, 1.00026, 1.0006, 1.00026, 1.03828,\n 1.00026, 0.99999, 1.00026, 1.0006, 0.99977, 1.00026, 0.99977, 1.00026,\n 0.99977, 1.00026, 0.9993, 0.9998, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,\n 1.00022, 1.00026, 1, 1.00016, 0.99977, 0.99959, 0.99977, 0.99959, 0.99977,\n 0.99959, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,\n 0.99973, 1.00026, 0.99998, 1.00026, 0.8121, 1.00026, 0.99998, 0.99977,\n 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977,\n 1.00026, 0.99977, 1.00026, 1.00016, 1.00022, 1.00001, 0.99973, 1.00001,\n 1.00026, 1, 1.00026, 1, 1.00026, 1, 1.0006, 0.99973, 0.99977, 0.99973, 1,\n 0.99982, 1.00022, 1.00026, 1.00001, 0.99973, 1.00026, 0.99998, 0.99998,\n 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,\n 0.99998, 1.00034, 0.99977, 1, 0.99997, 1.00026, 1.00078, 1.00036, 0.99973,\n 1.00013, 1.0006, 0.99977, 0.99977, 0.99988, 0.85148, 1.00001, 1.00026,\n 0.99977, 1.00022, 1.0006, 0.99977, 1.00001, 0.99999, 0.99977, 1.00069,\n 1.00022, 0.99977, 1.00001, 0.99984, 1.00026, 1.00001, 1.00024, 1.00001,\n 0.9999, 1, 1.0006, 1.00001, 1.00041, 0.99962, 1.00026, 1.0006, 0.99995,\n 1.00041, 0.99942, 0.99973, 0.99927, 1.00082, 0.99902, 1.00026, 1.00087,\n 1.0006, 1.00069, 0.99973, 0.99867, 0.99973, 0.9993, 1.00026, 1.00049, 1.00056,\n 1, 0.99988, 0.99935, 0.99995, 0.99954, 1.00055, 0.99945, 1.00032, 1.0006,\n 0.99995, 1.00026, 0.99995, 1.00032, 1.00001, 1.00008, 0.99971, 1.00019,\n 0.9994, 1.00001, 1.0006, 1.00044, 0.99973, 1.00023, 1.00047, 1, 0.99942,\n 0.99561, 0.99989, 1.00035, 0.99977, 1.00035, 0.99977, 1.00019, 0.99944,\n 1.00001, 1.00021, 0.99926, 1.00035, 1.00035, 0.99942, 1.00048, 0.99999,\n 0.99977, 1.00022, 1.00035, 1.00001, 0.99977, 1.00026, 0.99989, 1.00057,\n 1.00001, 0.99936, 1.00052, 1.00012, 0.99996, 1.00043, 1, 1.00035, 0.9994,\n 0.99976, 1.00035, 0.99973, 1.00052, 1.00041, 1.00119, 1.00037, 0.99973,\n 1.00002, 0.99986, 1.00041, 1.00041, 0.99902, 0.9996, 1.00034, 0.99999,\n 1.00026, 0.99999, 1.00026, 0.99973, 1.00052, 0.99973, 1, 0.99973, 1.00041,\n 1.00075, 0.9994, 1.0003, 0.99999, 1, 1.00041, 0.99955, 1, 0.99915, 0.99973,\n 0.99973, 1.00026, 1.00119, 0.99955, 0.99973, 1.0006, 0.99911, 1.0006, 1.00026,\n 0.99972, 1.00026, 0.99902, 1.00041, 0.99973, 0.99999, 1, 1, 1.00038, 1.0005,\n 1.00016, 1.00022, 1.00016, 1.00022, 1.00016, 1.00022, 1.00001, 0.99973, 1, 1,\n 0.99973, 1, 1, 0.99955, 1.0006, 1.0006, 1.0006, 1.0006, 1, 1, 1, 0.99973,\n 0.99973, 0.99972, 1, 1, 1.00106, 0.99999, 0.99998, 0.99998, 0.99999, 0.99998,\n 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973, 0.99971, 1.00047, 1.00023, 1,\n 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1, 1, 1, 1, 1, 1, 1,\n 0.99972, 1, 1.20985, 1.39713, 1.00003, 1.00031, 1.00015, 1, 0.99561, 1.00027,\n 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999,\n 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625,\n 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.99972,\n 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1,\n 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998,\n 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst HelveticaBoldMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-BoldItalic.ttf to have the same\n// metrics as NimbusSans-BoldItalic.otf.\nconst HelveticaBoldItalicFactors = [\n 0.76116, 1, 1, 1.0006, 0.99998, 0.99974, 0.99973, 0.99973, 0.99982, 0.99977,\n 1.00087, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99998, 1, 1.00003, 1.00003, 1.00003, 1.00026, 0.9999,\n 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977,\n 1.0006, 0.99973, 0.99977, 1.00026, 0.99999, 0.99977, 1.00022, 1.00001,\n 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001,\n 1.00001, 1.00026, 0.99998, 1.0006, 0.99998, 1.00003, 0.99973, 0.99998,\n 0.99973, 1.00026, 0.99973, 1.00026, 0.99973, 0.99998, 1.00026, 1.00026,\n 1.0006, 1.0006, 0.99973, 1.0006, 0.99982, 1.00026, 1.00026, 1.00026, 1.00026,\n 0.99959, 0.99973, 0.99998, 1.00026, 0.99973, 1.00022, 0.99973, 0.99973, 1,\n 0.99959, 1.00077, 0.99959, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973,\n 0.99973, 1.00077, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003,\n 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.99973, 1.0006,\n 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 0.99977,\n 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 1, 0.99977, 1.00001, 1.00001,\n 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022,\n 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977,\n 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99982, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.00026, 1.00026, 1.00026, 1.00026,\n 1.00026, 1.00026, 1.00026, 1.06409, 1.00026, 1.00026, 1.00026, 1.00026,\n 1.00026, 0.99973, 1.00026, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 1.0044, 0.99977, 1.00026, 1.00001, 0.99973,\n 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973,\n 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,\n 0.99977, 1.00026, 0.99977, 1.00026, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006,\n 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99971, 0.99973, 0.99973, 1.0006,\n 0.99977, 0.99973, 0.99973, 1.00026, 1.0006, 1.00026, 1.0006, 1.00026, 1.01011,\n 1.00026, 0.99999, 1.00026, 1.0006, 0.99977, 1.00026, 0.99977, 1.00026,\n 0.99977, 1.00026, 0.9993, 0.9998, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,\n 1.00022, 1.00026, 1, 1.00016, 0.99977, 0.99959, 0.99977, 0.99959, 0.99977,\n 0.99959, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,\n 0.99973, 1.00026, 0.99998, 1.00026, 0.8121, 1.00026, 0.99998, 0.99977,\n 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977,\n 1.00026, 0.99977, 1.00026, 1.00016, 1.00022, 1.00001, 0.99973, 1.00001,\n 1.00026, 1, 1.00026, 1, 1.00026, 1, 1.0006, 0.99973, 0.99977, 0.99973, 1,\n 0.99982, 1.00022, 1.00026, 1.00001, 0.99973, 1.00026, 0.99998, 0.99998,\n 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,\n 0.99998, 0.99998, 0.99977, 1, 1, 1.00026, 0.99969, 0.99972, 0.99981, 0.9998,\n 1.0006, 0.99977, 0.99977, 1.00022, 0.91155, 1.00001, 1.00026, 0.99977,\n 1.00022, 1.0006, 0.99977, 1.00001, 0.99999, 0.99977, 0.99966, 1.00022,\n 1.00032, 1.00001, 0.99944, 1.00026, 1.00001, 0.99968, 1.00001, 1.00047, 1,\n 1.0006, 1.00001, 0.99981, 1.00101, 1.00026, 1.0006, 0.99948, 0.99981, 1.00064,\n 0.99973, 0.99942, 1.00101, 1.00061, 1.00026, 1.00069, 1.0006, 1.00014,\n 0.99973, 1.01322, 0.99973, 1.00065, 1.00026, 1.00012, 0.99923, 1, 1.00064,\n 1.00076, 0.99948, 1.00055, 1.00063, 1.00007, 0.99943, 1.0006, 0.99948,\n 1.00026, 0.99948, 0.99943, 1.00001, 1.00001, 1.00029, 1.00038, 1.00035,\n 1.00001, 1.0006, 1.0006, 0.99973, 0.99978, 1.00001, 1.00057, 0.99989, 0.99967,\n 0.99964, 0.99967, 0.99977, 0.99999, 0.99977, 1.00038, 0.99977, 1.00001,\n 0.99973, 1.00066, 0.99967, 0.99967, 1.00041, 0.99998, 0.99999, 0.99977,\n 1.00022, 0.99967, 1.00001, 0.99977, 1.00026, 0.99964, 1.00031, 1.00001,\n 0.99999, 0.99999, 1, 1.00023, 1, 1, 0.99999, 1.00035, 1.00001, 0.99999,\n 0.99973, 0.99977, 0.99999, 1.00058, 0.99973, 0.99973, 0.99955, 0.9995,\n 1.00026, 1.00026, 1.00032, 0.99989, 1.00034, 0.99999, 1.00026, 1.00026,\n 1.00026, 0.99973, 0.45998, 0.99973, 1.00026, 0.99973, 1.00001, 0.99999,\n 0.99982, 0.99994, 0.99996, 1, 1.00042, 1.00044, 1.00029, 1.00023, 0.99973,\n 0.99973, 1.00026, 0.99949, 1.00002, 0.99973, 1.0006, 1.0006, 1.0006, 0.99975,\n 1.00026, 1.00026, 1.00032, 0.98685, 0.99973, 1.00026, 1, 1, 0.99966, 1.00044,\n 1.00016, 1.00022, 1.00016, 1.00022, 1.00016, 1.00022, 1.00001, 0.99973, 1, 1,\n 0.99973, 1, 1, 0.99955, 1.0006, 1.0006, 1.0006, 1.0006, 1, 1, 1, 0.99973,\n 0.99973, 0.99972, 1, 1, 1.00106, 0.99999, 0.99998, 0.99998, 0.99999, 0.99998,\n 1.66475, 1, 0.99973, 0.99973, 1, 0.99973, 0.99971, 0.99978, 1, 1, 0.99991,\n 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1.00098, 1, 1, 1, 1.00049, 1, 1,\n 0.99972, 1, 1.20985, 1.39713, 1.00003, 1.00031, 1.00015, 1, 0.99561, 1.00027,\n 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999,\n 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625,\n 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.99972,\n 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1,\n 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998,\n 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst HelveticaBoldItalicMetrics = { lineHeight: 1.35, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-Italic.ttf to have the same\n// metrics as NimbusSans-Italic.otf.\nconst HelveticaItalicFactors = [\n 0.76116, 1, 1, 1.0006, 1.0006, 1.00006, 0.99973, 0.99973, 0.99982, 1.00001,\n 1.00043, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 1.0006, 1, 1.00003, 1.00003, 1.00003, 0.99973, 0.99987,\n 1.00001, 1.00001, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977,\n 1.0006, 1, 1.00001, 0.99973, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022,\n 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001,\n 1.00026, 1.0006, 1.0006, 1.0006, 0.99949, 0.99973, 0.99998, 0.99973, 0.99973,\n 1, 0.99973, 0.99973, 1.0006, 0.99973, 0.99973, 0.99924, 0.99924, 1, 0.99924,\n 0.99999, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.0006, 0.99973, 1,\n 0.99977, 1, 1, 1, 1.00005, 1.0009, 1.00005, 1.00003, 0.99998, 0.99973,\n 0.99973, 0.99973, 0.99973, 1.0009, 0.99973, 0.99998, 1.00025, 0.99968,\n 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1,\n 0.9998, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002,\n 1.00026, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1, 0.99977,\n 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977,\n 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022,\n 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 1, 0.99973, 0.99973,\n 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99973, 1.06409, 1.00026, 0.99973, 0.99973,\n 0.99973, 0.99973, 1, 0.99973, 1, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,\n 0.99973, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1.0288,\n 0.99977, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973,\n 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973,\n 1.00022, 0.99973, 1.00022, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99924, 1.0006,\n 1.0006, 0.99946, 1.00034, 1, 0.99924, 1.00001, 1, 1, 0.99973, 0.99924,\n 0.99973, 0.99924, 0.99973, 1.06311, 0.99973, 1.00024, 0.99973, 0.99924,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.00041, 0.9998,\n 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1, 1.00016,\n 0.99977, 0.99998, 0.99977, 0.99998, 0.99977, 0.99998, 1.00001, 1, 1.00001, 1,\n 1.00001, 1, 1.00001, 1, 1.00026, 1.0006, 1.00026, 0.89547, 1.00026, 1.0006,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 0.99973, 1.00016, 0.99977, 1.00001, 1, 1.00001,\n 1.00026, 1, 1.00026, 1, 1.00026, 1, 0.99924, 0.99973, 1.00001, 0.99973, 1,\n 0.99982, 1.00022, 1.00026, 1.00001, 1, 1.00026, 1.0006, 0.99998, 0.99998,\n 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,\n 0.99998, 1.00001, 1, 1.00054, 0.99977, 1.00084, 1.00007, 0.99973, 1.00013,\n 0.99924, 1.00001, 1.00001, 0.99945, 0.91221, 1.00001, 1.00026, 0.99977,\n 1.00022, 1.0006, 1.00001, 1.00001, 0.99999, 0.99977, 0.99933, 1.00022,\n 1.00054, 1.00001, 1.00065, 1.00026, 1.00001, 1.0001, 1.00001, 1.00052, 1,\n 1.0006, 1.00001, 0.99945, 0.99897, 0.99968, 0.99924, 1.00036, 0.99945,\n 0.99949, 1, 1.0006, 0.99897, 0.99918, 0.99968, 0.99911, 0.99924, 1, 0.99962,\n 1.01487, 1, 1.0005, 0.99973, 1.00012, 1.00043, 1, 0.99995, 0.99994, 1.00036,\n 0.99947, 1.00019, 1.00063, 1.00025, 0.99924, 1.00036, 0.99973, 1.00036,\n 1.00025, 1.00001, 1.00001, 1.00027, 1.0001, 1.00068, 1.00001, 1.0006, 1.0006,\n 1, 1.00008, 0.99957, 0.99972, 0.9994, 0.99954, 0.99975, 1.00051, 1.00001,\n 1.00019, 1.00001, 1.0001, 0.99986, 1.00001, 1.00001, 1.00038, 0.99954,\n 0.99954, 0.9994, 1.00066, 0.99999, 0.99977, 1.00022, 1.00054, 1.00001,\n 0.99977, 1.00026, 0.99975, 1.0001, 1.00001, 0.99993, 0.9995, 0.99955, 1.00016,\n 0.99978, 0.99974, 1.00019, 1.00022, 0.99955, 1.00053, 0.99973, 1.00089,\n 1.00005, 0.99967, 1.00048, 0.99973, 1.00002, 1.00034, 0.99973, 0.99973,\n 0.99964, 1.00006, 1.00066, 0.99947, 0.99973, 0.98894, 0.99973, 1, 0.44898, 1,\n 0.99946, 1, 1.00039, 1.00082, 0.99991, 0.99991, 0.99985, 1.00022, 1.00023,\n 1.00061, 1.00006, 0.99966, 0.99973, 0.99973, 0.99973, 1.00019, 1.0008, 1,\n 0.99924, 0.99924, 0.99924, 0.99983, 1.00044, 0.99973, 0.99964, 0.98332, 1,\n 0.99973, 1, 1, 0.99962, 0.99895, 1.00016, 0.99977, 1.00016, 0.99977, 1.00016,\n 0.99977, 1.00001, 1, 1, 1, 0.99973, 1, 1, 0.99955, 0.99924, 0.99924, 0.99924,\n 0.99924, 0.99998, 0.99998, 0.99998, 0.99973, 0.99973, 0.99972, 1, 1, 1.00267,\n 0.99999, 0.99998, 0.99998, 1, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023,\n 0.99973, 1.00423, 0.99925, 0.99999, 1, 0.99991, 0.99984, 1.00002, 1.00002,\n 1.00002, 1.00002, 1.00049, 1, 1.00245, 1, 1, 1, 1, 0.96329, 1, 1.20985,\n 1.39713, 1.00003, 0.8254, 1.00015, 1, 1.00035, 1.00027, 1.00031, 1.00031,\n 1.00003, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861,\n 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.95317, 0.99999, 0.99999,\n 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962,\n 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst HelveticaItalicMetrics = { lineHeight: 1.35, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-Regular.ttf to have the same\n// metrics as NimbusSans-Regular.otf.\nconst HelveticaRegularFactors = [\n 0.76116, 1, 1, 1.0006, 1.0006, 1.00006, 0.99973, 0.99973, 0.99982, 1.00001,\n 1.00043, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 1.0006, 1, 1.00003, 1.00003, 1.00003, 0.99973, 0.99987,\n 1.00001, 1.00001, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977,\n 1.0006, 1, 1.00001, 0.99973, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022,\n 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001,\n 1.00026, 1.0006, 1.0006, 1.0006, 0.99949, 0.99973, 0.99998, 0.99973, 0.99973,\n 1, 0.99973, 0.99973, 1.0006, 0.99973, 0.99973, 0.99924, 0.99924, 1, 0.99924,\n 0.99999, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.0006, 0.99973, 1,\n 0.99977, 1, 1, 1, 1.00005, 1.0009, 1.00005, 1.00003, 0.99998, 0.99973,\n 0.99973, 0.99973, 0.99973, 1.0009, 0.99973, 0.99998, 1.00025, 0.99968,\n 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1,\n 0.9998, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002,\n 1.00026, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1, 0.99977,\n 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977,\n 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022,\n 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 1, 0.99973, 0.99973,\n 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99973, 1.06409, 1.00026, 0.99973, 0.99973,\n 0.99973, 0.99973, 1, 0.99973, 1, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,\n 0.99973, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1.04596,\n 0.99977, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973,\n 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973,\n 1.00022, 0.99973, 1.00022, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99924, 1.0006,\n 1.0006, 1.00019, 1.00034, 1, 0.99924, 1.00001, 1, 1, 0.99973, 0.99924,\n 0.99973, 0.99924, 0.99973, 1.02572, 0.99973, 1.00005, 0.99973, 0.99924,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99999, 0.9998,\n 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1, 1.00016,\n 0.99977, 0.99998, 0.99977, 0.99998, 0.99977, 0.99998, 1.00001, 1, 1.00001, 1,\n 1.00001, 1, 1.00001, 1, 1.00026, 1.0006, 1.00026, 0.84533, 1.00026, 1.0006,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 0.99973, 1.00016, 0.99977, 1.00001, 1, 1.00001,\n 1.00026, 1, 1.00026, 1, 1.00026, 1, 0.99924, 0.99973, 1.00001, 0.99973, 1,\n 0.99982, 1.00022, 1.00026, 1.00001, 1, 1.00026, 1.0006, 0.99998, 0.99998,\n 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,\n 0.99998, 0.99928, 1, 0.99977, 1.00013, 1.00055, 0.99947, 0.99945, 0.99941,\n 0.99924, 1.00001, 1.00001, 1.0004, 0.91621, 1.00001, 1.00026, 0.99977,\n 1.00022, 1.0006, 1.00001, 1.00005, 0.99999, 0.99977, 1.00015, 1.00022,\n 0.99977, 1.00001, 0.99973, 1.00026, 1.00001, 1.00019, 1.00001, 0.99946, 1,\n 1.0006, 1.00001, 0.99978, 1.00045, 0.99973, 0.99924, 1.00023, 0.99978,\n 0.99966, 1, 1.00065, 1.00045, 1.00019, 0.99973, 0.99973, 0.99924, 1, 1,\n 0.96499, 1, 1.00055, 0.99973, 1.00008, 1.00027, 1, 0.9997, 0.99995, 1.00023,\n 0.99933, 1.00019, 1.00015, 1.00031, 0.99924, 1.00023, 0.99973, 1.00023,\n 1.00031, 1.00001, 0.99928, 1.00029, 1.00092, 1.00035, 1.00001, 1.0006, 1.0006,\n 1, 0.99988, 0.99975, 1, 1.00082, 0.99561, 0.9996, 1.00035, 1.00001, 0.99962,\n 1.00001, 1.00092, 0.99964, 1.00001, 0.99963, 0.99999, 1.00035, 1.00035,\n 1.00082, 0.99962, 0.99999, 0.99977, 1.00022, 1.00035, 1.00001, 0.99977,\n 1.00026, 0.9996, 0.99967, 1.00001, 1.00034, 1.00074, 1.00054, 1.00053,\n 1.00063, 0.99971, 0.99962, 1.00035, 0.99975, 0.99977, 0.99973, 1.00043,\n 0.99953, 1.0007, 0.99915, 0.99973, 1.00008, 0.99892, 1.00073, 1.00073,\n 1.00114, 0.99915, 1.00073, 0.99955, 0.99973, 1.00092, 0.99973, 1, 0.99998, 1,\n 1.0003, 1, 1.00043, 1.00001, 0.99969, 1.0003, 1, 1.00035, 1.00001, 0.9995, 1,\n 1.00092, 0.99973, 0.99973, 0.99973, 1.0007, 0.9995, 1, 0.99924, 1.0006,\n 0.99924, 0.99972, 1.00062, 0.99973, 1.00114, 1.00073, 1, 0.99955, 1, 1,\n 1.00047, 0.99968, 1.00016, 0.99977, 1.00016, 0.99977, 1.00016, 0.99977,\n 1.00001, 1, 1, 1, 0.99973, 1, 1, 0.99955, 0.99924, 0.99924, 0.99924, 0.99924,\n 0.99998, 0.99998, 0.99998, 0.99973, 0.99973, 0.99972, 1, 1, 1.00267, 0.99999,\n 0.99998, 0.99998, 1, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973,\n 0.99971, 0.99925, 1.00023, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002,\n 1.00002, 1, 1, 1, 1, 1, 1, 1, 0.96329, 1, 1.20985, 1.39713, 1.00003, 0.8254,\n 1.00015, 1, 1.00035, 1.00027, 1.00031, 1.00031, 0.99915, 1.00031, 1.00031,\n 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026,\n 1.00026, 1.00026, 0.95317, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1,\n 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst HelveticaRegularMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\nexport {\n HelveticaBoldFactors,\n HelveticaBoldItalicFactors,\n HelveticaBoldItalicMetrics,\n HelveticaBoldMetrics,\n HelveticaItalicFactors,\n HelveticaItalicMetrics,\n HelveticaRegularFactors,\n HelveticaRegularMetrics,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Widths of glyphs in LiberationSans-Bold.ttf.\nconst LiberationSansBoldWidths = [\n 365, 0, 333, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278,\n 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333,\n 584, 584, 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556,\n 722, 611, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667,\n 611, 333, 278, 333, 584, 556, 333, 556, 611, 556, 611, 556, 333, 611, 611,\n 278, 278, 556, 278, 889, 611, 611, 611, 611, 389, 556, 333, 611, 556, 778,\n 556, 556, 500, 389, 280, 389, 584, 333, 556, 556, 556, 556, 280, 556, 333,\n 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 556, 278, 333,\n 333, 365, 556, 834, 834, 834, 611, 722, 722, 722, 722, 722, 722, 1000, 722,\n 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778,\n 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556,\n 889, 556, 556, 556, 556, 556, 278, 278, 278, 278, 611, 611, 611, 611, 611,\n 611, 611, 549, 611, 611, 611, 611, 611, 556, 611, 556, 722, 556, 722, 556,\n 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 719, 722, 611, 667,\n 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 611, 778, 611, 778, 611,\n 778, 611, 722, 611, 722, 611, 278, 278, 278, 278, 278, 278, 278, 278, 278,\n 278, 785, 556, 556, 278, 722, 556, 556, 611, 278, 611, 278, 611, 385, 611,\n 479, 611, 278, 722, 611, 722, 611, 722, 611, 708, 723, 611, 778, 611, 778,\n 611, 778, 611, 1000, 944, 722, 389, 722, 389, 722, 389, 667, 556, 667, 556,\n 667, 556, 667, 556, 611, 333, 611, 479, 611, 333, 722, 611, 722, 611, 722,\n 611, 722, 611, 722, 611, 722, 611, 944, 778, 667, 556, 667, 611, 500, 611,\n 500, 611, 500, 278, 556, 722, 556, 1000, 889, 778, 611, 667, 556, 611, 333,\n 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 465, 722, 333, 853, 906,\n 474, 825, 927, 838, 278, 722, 722, 601, 719, 667, 611, 722, 778, 278, 722,\n 667, 833, 722, 644, 778, 722, 667, 600, 611, 667, 821, 667, 809, 802, 278,\n 667, 615, 451, 611, 278, 582, 615, 610, 556, 606, 475, 460, 611, 541, 278,\n 558, 556, 612, 556, 445, 611, 766, 619, 520, 684, 446, 582, 715, 576, 753,\n 845, 278, 582, 611, 582, 845, 667, 669, 885, 567, 711, 667, 278, 276, 556,\n 1094, 1062, 875, 610, 722, 622, 719, 722, 719, 722, 567, 712, 667, 904, 626,\n 719, 719, 610, 702, 833, 722, 778, 719, 667, 722, 611, 622, 854, 667, 730,\n 703, 1005, 1019, 870, 979, 719, 711, 1031, 719, 556, 618, 615, 417, 635, 556,\n 709, 497, 615, 615, 500, 635, 740, 604, 611, 604, 611, 556, 490, 556, 875,\n 556, 615, 581, 833, 844, 729, 854, 615, 552, 854, 583, 556, 556, 611, 417,\n 552, 556, 278, 281, 278, 969, 906, 611, 500, 615, 556, 604, 778, 611, 487,\n 447, 944, 778, 944, 778, 944, 778, 667, 556, 333, 333, 556, 1000, 1000, 552,\n 278, 278, 278, 278, 500, 500, 500, 556, 556, 350, 1000, 1000, 240, 479, 333,\n 333, 604, 333, 167, 396, 556, 556, 1094, 556, 885, 489, 1115, 1000, 768, 600,\n 834, 834, 834, 834, 1000, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713,\n 584, 549, 713, 979, 722, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604,\n 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604,\n 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750,\n 611, 611, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 333, 333, 333,\n 333, 333, 333, 333, 333,\n];\n\n// Char code of glyphs in LiberationSans-Bold.ttf.\nconst LiberationSansBoldMapping = [\n -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,\n 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,\n 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,\n 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,\n 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167,\n 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,\n 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,\n 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,\n 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,\n 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,\n 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,\n 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,\n 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,\n 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,\n 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,\n 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,\n 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,\n 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,\n 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,\n 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538,\n 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904,\n 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,\n 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937,\n 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,\n 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967,\n 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030,\n 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,\n 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,\n 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,\n 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,\n 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,\n 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108,\n 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139,\n 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211,\n 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226,\n 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359,\n 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,\n 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735,\n 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474,\n 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555,\n 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568,\n 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600,\n 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650,\n 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792,\n 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n\n// Widths of glyphs in LiberationSans-BoldItalic.ttf.\nconst LiberationSansBoldItalicWidths = [\n 365, 0, 333, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278,\n 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333,\n 584, 584, 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556,\n 722, 611, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667,\n 611, 333, 278, 333, 584, 556, 333, 556, 611, 556, 611, 556, 333, 611, 611,\n 278, 278, 556, 278, 889, 611, 611, 611, 611, 389, 556, 333, 611, 556, 778,\n 556, 556, 500, 389, 280, 389, 584, 333, 556, 556, 556, 556, 280, 556, 333,\n 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 556, 278, 333,\n 333, 365, 556, 834, 834, 834, 611, 722, 722, 722, 722, 722, 722, 1000, 722,\n 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778,\n 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556,\n 889, 556, 556, 556, 556, 556, 278, 278, 278, 278, 611, 611, 611, 611, 611,\n 611, 611, 549, 611, 611, 611, 611, 611, 556, 611, 556, 722, 556, 722, 556,\n 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 740, 722, 611, 667,\n 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 611, 778, 611, 778, 611,\n 778, 611, 722, 611, 722, 611, 278, 278, 278, 278, 278, 278, 278, 278, 278,\n 278, 782, 556, 556, 278, 722, 556, 556, 611, 278, 611, 278, 611, 396, 611,\n 479, 611, 278, 722, 611, 722, 611, 722, 611, 708, 723, 611, 778, 611, 778,\n 611, 778, 611, 1000, 944, 722, 389, 722, 389, 722, 389, 667, 556, 667, 556,\n 667, 556, 667, 556, 611, 333, 611, 479, 611, 333, 722, 611, 722, 611, 722,\n 611, 722, 611, 722, 611, 722, 611, 944, 778, 667, 556, 667, 611, 500, 611,\n 500, 611, 500, 278, 556, 722, 556, 1000, 889, 778, 611, 667, 556, 611, 333,\n 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 722, 333, 854, 906,\n 473, 844, 930, 847, 278, 722, 722, 610, 671, 667, 611, 722, 778, 278, 722,\n 667, 833, 722, 657, 778, 718, 667, 590, 611, 667, 822, 667, 829, 781, 278,\n 667, 620, 479, 611, 278, 591, 620, 621, 556, 610, 479, 492, 611, 558, 278,\n 566, 556, 603, 556, 450, 611, 712, 605, 532, 664, 409, 591, 704, 578, 773,\n 834, 278, 591, 611, 591, 834, 667, 667, 886, 614, 719, 667, 278, 278, 556,\n 1094, 1042, 854, 622, 719, 677, 719, 722, 708, 722, 614, 722, 667, 927, 643,\n 719, 719, 615, 687, 833, 722, 778, 719, 667, 722, 611, 677, 781, 667, 729,\n 708, 979, 989, 854, 1000, 708, 719, 1042, 729, 556, 619, 604, 534, 618, 556,\n 736, 510, 611, 611, 507, 622, 740, 604, 611, 611, 611, 556, 889, 556, 885,\n 556, 646, 583, 889, 935, 707, 854, 594, 552, 865, 589, 556, 556, 611, 469,\n 563, 556, 278, 278, 278, 969, 906, 611, 507, 619, 556, 611, 778, 611, 575,\n 467, 944, 778, 944, 778, 944, 778, 667, 556, 333, 333, 556, 1000, 1000, 552,\n 278, 278, 278, 278, 500, 500, 500, 556, 556, 350, 1000, 1000, 240, 479, 333,\n 333, 604, 333, 167, 396, 556, 556, 1104, 556, 885, 516, 1146, 1000, 768, 600,\n 834, 834, 834, 834, 999, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713,\n 584, 549, 713, 979, 722, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604,\n 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604,\n 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750,\n 611, 611, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 333, 333, 333,\n 333, 333, 333, 333, 333,\n];\n\n// Char code of glyphs in LiberationSans-BoldItalic.ttf.\nconst LiberationSansBoldItalicMapping = [\n -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,\n 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,\n 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,\n 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,\n 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167,\n 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,\n 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,\n 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,\n 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,\n 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,\n 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,\n 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,\n 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,\n 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,\n 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,\n 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,\n 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,\n 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,\n 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,\n 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538,\n 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904,\n 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,\n 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937,\n 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,\n 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967,\n 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030,\n 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,\n 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,\n 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,\n 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,\n 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,\n 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108,\n 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139,\n 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211,\n 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226,\n 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359,\n 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,\n 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735,\n 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474,\n 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555,\n 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568,\n 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600,\n 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650,\n 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792,\n 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n\n// Widths of glyphs in LiberationSans-Italic.ttf.\nconst LiberationSansItalicWidths = [\n 365, 0, 333, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278,\n 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278,\n 584, 584, 584, 556, 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500,\n 667, 556, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667,\n 611, 278, 278, 278, 469, 556, 333, 556, 556, 500, 556, 556, 278, 556, 556,\n 222, 222, 500, 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722,\n 500, 500, 500, 334, 260, 334, 584, 333, 556, 556, 556, 556, 260, 556, 333,\n 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 537, 278, 333,\n 333, 365, 556, 834, 834, 834, 611, 667, 667, 667, 667, 667, 667, 1000, 722,\n 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778,\n 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556,\n 889, 500, 556, 556, 556, 556, 278, 278, 278, 278, 556, 556, 556, 556, 556,\n 556, 556, 549, 611, 556, 556, 556, 556, 500, 556, 500, 667, 556, 667, 556,\n 667, 556, 722, 500, 722, 500, 722, 500, 722, 500, 722, 625, 722, 556, 667,\n 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 556, 778, 556, 778, 556,\n 778, 556, 722, 556, 722, 556, 278, 278, 278, 278, 278, 278, 278, 222, 278,\n 278, 733, 444, 500, 222, 667, 500, 500, 556, 222, 556, 222, 556, 281, 556,\n 400, 556, 222, 722, 556, 722, 556, 722, 556, 615, 723, 556, 778, 556, 778,\n 556, 778, 556, 1000, 944, 722, 333, 722, 333, 722, 333, 667, 500, 667, 500,\n 667, 500, 667, 500, 611, 278, 611, 354, 611, 278, 722, 556, 722, 556, 722,\n 556, 722, 556, 722, 556, 722, 556, 944, 722, 667, 500, 667, 611, 500, 611,\n 500, 611, 500, 222, 556, 667, 556, 1000, 889, 778, 611, 667, 500, 611, 278,\n 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 667, 278, 789, 846,\n 389, 794, 865, 775, 222, 667, 667, 570, 671, 667, 611, 722, 778, 278, 667,\n 667, 833, 722, 648, 778, 725, 667, 600, 611, 667, 837, 667, 831, 761, 278,\n 667, 570, 439, 555, 222, 550, 570, 571, 500, 556, 439, 463, 555, 542, 222,\n 500, 492, 548, 500, 447, 556, 670, 573, 486, 603, 374, 550, 652, 546, 728,\n 779, 222, 550, 556, 550, 779, 667, 667, 843, 544, 708, 667, 278, 278, 500,\n 1066, 982, 844, 589, 715, 639, 724, 667, 651, 667, 544, 704, 667, 917, 614,\n 715, 715, 589, 686, 833, 722, 778, 725, 667, 722, 611, 639, 795, 667, 727,\n 673, 920, 923, 805, 886, 651, 694, 1022, 682, 556, 562, 522, 493, 553, 556,\n 688, 465, 556, 556, 472, 564, 686, 550, 556, 556, 556, 500, 833, 500, 835,\n 500, 572, 518, 830, 851, 621, 736, 526, 492, 752, 534, 556, 556, 556, 378,\n 496, 500, 222, 222, 222, 910, 828, 556, 472, 565, 500, 556, 778, 556, 492,\n 339, 944, 722, 944, 722, 944, 722, 667, 500, 333, 333, 556, 1000, 1000, 552,\n 222, 222, 222, 222, 333, 333, 333, 556, 556, 350, 1000, 1000, 188, 354, 333,\n 333, 500, 333, 167, 365, 556, 556, 1094, 556, 885, 323, 1083, 1000, 768, 600,\n 834, 834, 834, 834, 1000, 500, 998, 500, 1000, 500, 500, 494, 612, 823, 713,\n 584, 549, 713, 979, 719, 274, 549, 549, 584, 549, 549, 604, 584, 604, 604,\n 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604,\n 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750,\n 500, 500, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 294, 294, 324,\n 324, 316, 328, 398, 285,\n];\n\n// Char code of glyphs in LiberationSans-Italic.ttf.\nconst LiberationSansItalicMapping = [\n -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,\n 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,\n 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,\n 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,\n 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167,\n 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,\n 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,\n 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,\n 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,\n 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,\n 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,\n 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,\n 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,\n 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,\n 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,\n 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,\n 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,\n 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,\n 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,\n 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538,\n 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904,\n 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,\n 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937,\n 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,\n 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967,\n 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030,\n 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,\n 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,\n 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,\n 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,\n 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,\n 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108,\n 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139,\n 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211,\n 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226,\n 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359,\n 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,\n 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735,\n 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474,\n 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555,\n 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568,\n 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600,\n 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650,\n 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792,\n 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n\n// Widths of glyphs in LiberationSans-Regular.ttf.\nconst LiberationSansRegularWidths = [\n 365, 0, 333, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278,\n 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278,\n 584, 584, 584, 556, 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500,\n 667, 556, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667,\n 611, 278, 278, 278, 469, 556, 333, 556, 556, 500, 556, 556, 278, 556, 556,\n 222, 222, 500, 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722,\n 500, 500, 500, 334, 260, 334, 584, 333, 556, 556, 556, 556, 260, 556, 333,\n 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 537, 278, 333,\n 333, 365, 556, 834, 834, 834, 611, 667, 667, 667, 667, 667, 667, 1000, 722,\n 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778,\n 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556,\n 889, 500, 556, 556, 556, 556, 278, 278, 278, 278, 556, 556, 556, 556, 556,\n 556, 556, 549, 611, 556, 556, 556, 556, 500, 556, 500, 667, 556, 667, 556,\n 667, 556, 722, 500, 722, 500, 722, 500, 722, 500, 722, 615, 722, 556, 667,\n 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 556, 778, 556, 778, 556,\n 778, 556, 722, 556, 722, 556, 278, 278, 278, 278, 278, 278, 278, 222, 278,\n 278, 735, 444, 500, 222, 667, 500, 500, 556, 222, 556, 222, 556, 292, 556,\n 334, 556, 222, 722, 556, 722, 556, 722, 556, 604, 723, 556, 778, 556, 778,\n 556, 778, 556, 1000, 944, 722, 333, 722, 333, 722, 333, 667, 500, 667, 500,\n 667, 500, 667, 500, 611, 278, 611, 375, 611, 278, 722, 556, 722, 556, 722,\n 556, 722, 556, 722, 556, 722, 556, 944, 722, 667, 500, 667, 611, 500, 611,\n 500, 611, 500, 222, 556, 667, 556, 1000, 889, 778, 611, 667, 500, 611, 278,\n 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 667, 278, 784, 838,\n 384, 774, 855, 752, 222, 667, 667, 551, 668, 667, 611, 722, 778, 278, 667,\n 668, 833, 722, 650, 778, 722, 667, 618, 611, 667, 798, 667, 835, 748, 278,\n 667, 578, 446, 556, 222, 547, 578, 575, 500, 557, 446, 441, 556, 556, 222,\n 500, 500, 576, 500, 448, 556, 690, 569, 482, 617, 395, 547, 648, 525, 713,\n 781, 222, 547, 556, 547, 781, 667, 667, 865, 542, 719, 667, 278, 278, 500,\n 1057, 1010, 854, 583, 722, 635, 719, 667, 656, 667, 542, 677, 667, 923, 604,\n 719, 719, 583, 656, 833, 722, 778, 719, 667, 722, 611, 635, 760, 667, 740,\n 667, 917, 938, 792, 885, 656, 719, 1010, 722, 556, 573, 531, 365, 583, 556,\n 669, 458, 559, 559, 438, 583, 688, 552, 556, 542, 556, 500, 458, 500, 823,\n 500, 573, 521, 802, 823, 625, 719, 521, 510, 750, 542, 556, 556, 556, 365,\n 510, 500, 222, 278, 222, 906, 812, 556, 438, 559, 500, 552, 778, 556, 489,\n 411, 944, 722, 944, 722, 944, 722, 667, 500, 333, 333, 556, 1000, 1000, 552,\n 222, 222, 222, 222, 333, 333, 333, 556, 556, 350, 1000, 1000, 188, 354, 333,\n 333, 500, 333, 167, 365, 556, 556, 1094, 556, 885, 323, 1073, 1000, 768, 600,\n 834, 834, 834, 834, 1000, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713,\n 584, 549, 713, 979, 719, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604,\n 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604,\n 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750,\n 500, 500, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 294, 294, 324,\n 324, 316, 328, 398, 285,\n];\n\n// Char code of glyphs in LiberationSans-Regular.ttf.\nconst LiberationSansRegularMapping = [\n -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,\n 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,\n 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,\n 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,\n 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167,\n 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,\n 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,\n 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,\n 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,\n 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,\n 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,\n 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,\n 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,\n 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,\n 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,\n 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,\n 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,\n 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,\n 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,\n 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538,\n 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904,\n 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,\n 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937,\n 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,\n 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967,\n 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030,\n 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,\n 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,\n 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,\n 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,\n 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,\n 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108,\n 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139,\n 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211,\n 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226,\n 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359,\n 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,\n 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735,\n 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474,\n 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555,\n 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568,\n 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600,\n 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650,\n 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792,\n 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n\nexport {\n LiberationSansBoldItalicMapping,\n LiberationSansBoldItalicWidths,\n LiberationSansBoldMapping,\n LiberationSansBoldWidths,\n LiberationSansItalicMapping,\n LiberationSansItalicWidths,\n LiberationSansRegularMapping,\n LiberationSansRegularWidths,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Factors to rescale LiberationSans-Bold.ttf to have the same\n// metrics as MyriadPro-Bold.otf.\nconst MyriadProBoldFactors = [\n 1.36898, 1, 1, 0.72706, 0.80479, 0.83734, 0.98894, 0.99793, 0.9897, 0.93884,\n 0.86209, 0.94292, 0.94292, 1.16661, 1.02058, 0.93582, 0.96694, 0.93582,\n 1.19137, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793,\n 0.99793, 0.99793, 0.99793, 0.78076, 0.78076, 1.02058, 1.02058, 1.02058,\n 0.72851, 0.78966, 0.90838, 0.83637, 0.82391, 0.96376, 0.80061, 0.86275,\n 0.8768, 0.95407, 1.0258, 0.73901, 0.85022, 0.83655, 1.0156, 0.95546, 0.92179,\n 0.87107, 0.92179, 0.82114, 0.8096, 0.89713, 0.94438, 0.95353, 0.94083,\n 0.91905, 0.90406, 0.9446, 0.94292, 1.18777, 0.94292, 1.02058, 0.89903,\n 0.90088, 0.94938, 0.97898, 0.81093, 0.97571, 0.94938, 1.024, 0.9577, 0.95933,\n 0.98621, 1.0474, 0.97455, 0.98981, 0.9672, 0.95933, 0.9446, 0.97898, 0.97407,\n 0.97646, 0.78036, 1.10208, 0.95442, 0.95298, 0.97579, 0.9332, 0.94039, 0.938,\n 0.80687, 1.01149, 0.80687, 1.02058, 0.80479, 0.99793, 0.99793, 0.99793,\n 0.99793, 1.01149, 1.00872, 0.90088, 0.91882, 1.0213, 0.8361, 1.02058, 0.62295,\n 0.54324, 0.89022, 1.08595, 1, 1, 0.90088, 1, 0.97455, 0.93582, 0.90088, 1,\n 1.05686, 0.8361, 0.99642, 0.99642, 0.99642, 0.72851, 0.90838, 0.90838,\n 0.90838, 0.90838, 0.90838, 0.90838, 0.868, 0.82391, 0.80061, 0.80061, 0.80061,\n 0.80061, 1.0258, 1.0258, 1.0258, 1.0258, 0.97484, 0.95546, 0.92179, 0.92179,\n 0.92179, 0.92179, 0.92179, 1.02058, 0.92179, 0.94438, 0.94438, 0.94438,\n 0.94438, 0.90406, 0.86958, 0.98225, 0.94938, 0.94938, 0.94938, 0.94938,\n 0.94938, 0.94938, 0.9031, 0.81093, 0.94938, 0.94938, 0.94938, 0.94938,\n 0.98621, 0.98621, 0.98621, 0.98621, 0.93969, 0.95933, 0.9446, 0.9446, 0.9446,\n 0.9446, 0.9446, 1.08595, 0.9446, 0.95442, 0.95442, 0.95442, 0.95442, 0.94039,\n 0.97898, 0.94039, 0.90838, 0.94938, 0.90838, 0.94938, 0.90838, 0.94938,\n 0.82391, 0.81093, 0.82391, 0.81093, 0.82391, 0.81093, 0.82391, 0.81093,\n 0.96376, 0.84313, 0.97484, 0.97571, 0.80061, 0.94938, 0.80061, 0.94938,\n 0.80061, 0.94938, 0.80061, 0.94938, 0.80061, 0.94938, 0.8768, 0.9577, 0.8768,\n 0.9577, 0.8768, 0.9577, 1, 1, 0.95407, 0.95933, 0.97069, 0.95933, 1.0258,\n 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621,\n 0.887, 1.01591, 0.73901, 1.0474, 1, 1, 0.97455, 0.83655, 0.98981, 1, 1,\n 0.83655, 0.73977, 0.83655, 0.73903, 0.84638, 1.033, 0.95546, 0.95933, 1, 1,\n 0.95546, 0.95933, 0.8271, 0.95417, 0.95933, 0.92179, 0.9446, 0.92179, 0.9446,\n 0.92179, 0.9446, 0.936, 0.91964, 0.82114, 0.97646, 1, 1, 0.82114, 0.97646,\n 0.8096, 0.78036, 0.8096, 0.78036, 1, 1, 0.8096, 0.78036, 1, 1, 0.89713,\n 0.77452, 0.89713, 1.10208, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438,\n 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94083,\n 0.97579, 0.90406, 0.94039, 0.90406, 0.9446, 0.938, 0.9446, 0.938, 0.9446,\n 0.938, 1, 0.99793, 0.90838, 0.94938, 0.868, 0.9031, 0.92179, 0.9446, 1, 1,\n 0.89713, 1.10208, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088,\n 0.90088, 0.90088, 0.90088, 0.90989, 0.9358, 0.91945, 0.83181, 0.75261,\n 0.87992, 0.82976, 0.96034, 0.83689, 0.97268, 1.0078, 0.90838, 0.83637, 0.8019,\n 0.90157, 0.80061, 0.9446, 0.95407, 0.92436, 1.0258, 0.85022, 0.97153, 1.0156,\n 0.95546, 0.89192, 0.92179, 0.92361, 0.87107, 0.96318, 0.89713, 0.93704,\n 0.95638, 0.91905, 0.91709, 0.92796, 1.0258, 0.93704, 0.94836, 1.0373, 0.95933,\n 1.0078, 0.95871, 0.94836, 0.96174, 0.92601, 0.9498, 0.98607, 0.95776, 0.95933,\n 1.05453, 1.0078, 0.98275, 0.9314, 0.95617, 0.91701, 1.05993, 0.9446, 0.78367,\n 0.9553, 1, 0.86832, 1.0128, 0.95871, 0.99394, 0.87548, 0.96361, 0.86774,\n 1.0078, 0.95871, 0.9446, 0.95871, 0.86774, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.94083, 0.97579, 0.94083, 0.97579, 0.94083,\n 0.97579, 0.90406, 0.94039, 0.96694, 1, 0.89903, 1, 1, 1, 0.93582, 0.93582,\n 0.93582, 1, 0.908, 0.908, 0.918, 0.94219, 0.94219, 0.96544, 1, 1.285, 1, 1,\n 0.81079, 0.81079, 1, 1, 0.74854, 1, 1, 1, 1, 0.99793, 1, 1, 1, 0.65, 1,\n 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.17173, 1, 0.80535, 0.76169,\n 1.02058, 1.0732, 1.05486, 1, 1, 1.30692, 1.08595, 1.08595, 1, 1.08595,\n 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.16161, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst MyriadProBoldMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-BoldItalic.ttf to have the same\n// metrics as MyriadPro-BoldIt.otf.\nconst MyriadProBoldItalicFactors = [\n 1.36898, 1, 1, 0.66227, 0.80779, 0.81625, 0.97276, 0.97276, 0.97733, 0.92222,\n 0.83266, 0.94292, 0.94292, 1.16148, 1.02058, 0.93582, 0.96694, 0.93582,\n 1.17337, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276,\n 0.97276, 0.97276, 0.97276, 0.78076, 0.78076, 1.02058, 1.02058, 1.02058,\n 0.71541, 0.76813, 0.85576, 0.80591, 0.80729, 0.94299, 0.77512, 0.83655,\n 0.86523, 0.92222, 0.98621, 0.71743, 0.81698, 0.79726, 0.98558, 0.92222,\n 0.90637, 0.83809, 0.90637, 0.80729, 0.76463, 0.86275, 0.90699, 0.91605,\n 0.9154, 0.85308, 0.85458, 0.90531, 0.94292, 1.21296, 0.94292, 1.02058,\n 0.89903, 1.18616, 0.99613, 0.91677, 0.78216, 0.91677, 0.90083, 0.98796,\n 0.9135, 0.92168, 0.95381, 0.98981, 0.95298, 0.95381, 0.93459, 0.92168,\n 0.91513, 0.92004, 0.91677, 0.95077, 0.748, 1.04502, 0.91677, 0.92061, 0.94236,\n 0.89544, 0.89364, 0.9, 0.80687, 0.8578, 0.80687, 1.02058, 0.80779, 0.97276,\n 0.97276, 0.97276, 0.97276, 0.8578, 0.99973, 1.18616, 0.91339, 1.08074,\n 0.82891, 1.02058, 0.55509, 0.71526, 0.89022, 1.08595, 1, 1, 1.18616, 1,\n 0.96736, 0.93582, 1.18616, 1, 1.04864, 0.82711, 0.99043, 0.99043, 0.99043,\n 0.71541, 0.85576, 0.85576, 0.85576, 0.85576, 0.85576, 0.85576, 0.845, 0.80729,\n 0.77512, 0.77512, 0.77512, 0.77512, 0.98621, 0.98621, 0.98621, 0.98621,\n 0.95961, 0.92222, 0.90637, 0.90637, 0.90637, 0.90637, 0.90637, 1.02058,\n 0.90251, 0.90699, 0.90699, 0.90699, 0.90699, 0.85458, 0.83659, 0.94951,\n 0.99613, 0.99613, 0.99613, 0.99613, 0.99613, 0.99613, 0.85811, 0.78216,\n 0.90083, 0.90083, 0.90083, 0.90083, 0.95381, 0.95381, 0.95381, 0.95381,\n 0.9135, 0.92168, 0.91513, 0.91513, 0.91513, 0.91513, 0.91513, 1.08595,\n 0.91677, 0.91677, 0.91677, 0.91677, 0.91677, 0.89364, 0.92332, 0.89364,\n 0.85576, 0.99613, 0.85576, 0.99613, 0.85576, 0.99613, 0.80729, 0.78216,\n 0.80729, 0.78216, 0.80729, 0.78216, 0.80729, 0.78216, 0.94299, 0.76783,\n 0.95961, 0.91677, 0.77512, 0.90083, 0.77512, 0.90083, 0.77512, 0.90083,\n 0.77512, 0.90083, 0.77512, 0.90083, 0.86523, 0.9135, 0.86523, 0.9135, 0.86523,\n 0.9135, 1, 1, 0.92222, 0.92168, 0.92222, 0.92168, 0.98621, 0.95381, 0.98621,\n 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.86036,\n 0.97096, 0.71743, 0.98981, 1, 1, 0.95298, 0.79726, 0.95381, 1, 1, 0.79726,\n 0.6894, 0.79726, 0.74321, 0.81691, 1.0006, 0.92222, 0.92168, 1, 1, 0.92222,\n 0.92168, 0.79464, 0.92098, 0.92168, 0.90637, 0.91513, 0.90637, 0.91513,\n 0.90637, 0.91513, 0.909, 0.87514, 0.80729, 0.95077, 1, 1, 0.80729, 0.95077,\n 0.76463, 0.748, 0.76463, 0.748, 1, 1, 0.76463, 0.748, 1, 1, 0.86275, 0.72651,\n 0.86275, 1.04502, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677,\n 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.9154, 0.94236,\n 0.85458, 0.89364, 0.85458, 0.90531, 0.9, 0.90531, 0.9, 0.90531, 0.9, 1,\n 0.97276, 0.85576, 0.99613, 0.845, 0.85811, 0.90251, 0.91677, 1, 1, 0.86275,\n 1.04502, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616,\n 1.18616, 1.18616, 1.00899, 1.30628, 0.85576, 0.80178, 0.66862, 0.7927,\n 0.69323, 0.88127, 0.72459, 0.89711, 0.95381, 0.85576, 0.80591, 0.7805,\n 0.94729, 0.77512, 0.90531, 0.92222, 0.90637, 0.98621, 0.81698, 0.92655,\n 0.98558, 0.92222, 0.85359, 0.90637, 0.90976, 0.83809, 0.94523, 0.86275,\n 0.83509, 0.93157, 0.85308, 0.83392, 0.92346, 0.98621, 0.83509, 0.92886,\n 0.91324, 0.92168, 0.95381, 0.90646, 0.92886, 0.90557, 0.86847, 0.90276,\n 0.91324, 0.86842, 0.92168, 0.99531, 0.95381, 0.9224, 0.85408, 0.92699,\n 0.86847, 1.0051, 0.91513, 0.80487, 0.93481, 1, 0.88159, 1.05214, 0.90646,\n 0.97355, 0.81539, 0.89398, 0.85923, 0.95381, 0.90646, 0.91513, 0.90646,\n 0.85923, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 0.9154, 0.94236, 0.9154, 0.94236, 0.9154, 0.94236, 0.85458, 0.89364, 0.96694,\n 1, 0.89903, 1, 1, 1, 0.91782, 0.91782, 0.91782, 1, 0.896, 0.896, 0.896,\n 0.9332, 0.9332, 0.95973, 1, 1.26, 1, 1, 0.80479, 0.80178, 1, 1, 0.85633, 1, 1,\n 1, 1, 0.97276, 1, 1, 1, 0.698, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1.14542, 1, 0.79199, 0.78694, 1.02058, 1.03493, 1.05486, 1, 1, 1.23026,\n 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.20006, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst MyriadProBoldItalicMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-Italic.ttf to have the same\n// metrics as MyriadPro-It.otf.\nconst MyriadProItalicFactors = [\n 1.36898, 1, 1, 0.65507, 0.84943, 0.85639, 0.88465, 0.88465, 0.86936, 0.88307,\n 0.86948, 0.85283, 0.85283, 1.06383, 1.02058, 0.75945, 0.9219, 0.75945,\n 1.17337, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465,\n 0.88465, 0.88465, 0.88465, 0.75945, 0.75945, 1.02058, 1.02058, 1.02058,\n 0.69046, 0.70926, 0.85158, 0.77812, 0.76852, 0.89591, 0.70466, 0.76125,\n 0.80094, 0.86822, 0.83864, 0.728, 0.77212, 0.79475, 0.93637, 0.87514, 0.8588,\n 0.76013, 0.8588, 0.72421, 0.69866, 0.77598, 0.85991, 0.80811, 0.87832,\n 0.78112, 0.77512, 0.8562, 1.0222, 1.18417, 1.0222, 1.27014, 0.89903, 1.15012,\n 0.93859, 0.94399, 0.846, 0.94399, 0.81453, 1.0186, 0.94219, 0.96017, 1.03075,\n 1.02175, 0.912, 1.03075, 0.96998, 0.96017, 0.93859, 0.94399, 0.94399, 0.95493,\n 0.746, 1.12658, 0.94578, 0.91, 0.979, 0.882, 0.882, 0.83, 0.85034, 0.83537,\n 0.85034, 1.02058, 0.70869, 0.88465, 0.88465, 0.88465, 0.88465, 0.83537,\n 0.90083, 1.15012, 0.9161, 0.94565, 0.73541, 1.02058, 0.53609, 0.69353,\n 0.79519, 1.08595, 1, 1, 1.15012, 1, 0.91974, 0.75945, 1.15012, 1, 0.9446,\n 0.73361, 0.9005, 0.9005, 0.9005, 0.62864, 0.85158, 0.85158, 0.85158, 0.85158,\n 0.85158, 0.85158, 0.773, 0.76852, 0.70466, 0.70466, 0.70466, 0.70466, 0.83864,\n 0.83864, 0.83864, 0.83864, 0.90561, 0.87514, 0.8588, 0.8588, 0.8588, 0.8588,\n 0.8588, 1.02058, 0.85751, 0.85991, 0.85991, 0.85991, 0.85991, 0.77512,\n 0.76013, 0.88075, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859,\n 0.8075, 0.846, 0.81453, 0.81453, 0.81453, 0.81453, 0.82424, 0.82424, 0.82424,\n 0.82424, 0.9278, 0.96017, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859,\n 1.08595, 0.8562, 0.94578, 0.94578, 0.94578, 0.94578, 0.882, 0.94578, 0.882,\n 0.85158, 0.93859, 0.85158, 0.93859, 0.85158, 0.93859, 0.76852, 0.846, 0.76852,\n 0.846, 0.76852, 0.846, 0.76852, 0.846, 0.89591, 0.8544, 0.90561, 0.94399,\n 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453,\n 0.70466, 0.81453, 0.80094, 0.94219, 0.80094, 0.94219, 0.80094, 0.94219, 1, 1,\n 0.86822, 0.96017, 0.86822, 0.96017, 0.83864, 0.82424, 0.83864, 0.82424,\n 0.83864, 0.82424, 0.83864, 1.03075, 0.83864, 0.82424, 0.81402, 1.02738, 0.728,\n 1.02175, 1, 1, 0.912, 0.79475, 1.03075, 1, 1, 0.79475, 0.83911, 0.79475,\n 0.66266, 0.80553, 1.06676, 0.87514, 0.96017, 1, 1, 0.87514, 0.96017, 0.86865,\n 0.87396, 0.96017, 0.8588, 0.93859, 0.8588, 0.93859, 0.8588, 0.93859, 0.867,\n 0.84759, 0.72421, 0.95493, 1, 1, 0.72421, 0.95493, 0.69866, 0.746, 0.69866,\n 0.746, 1, 1, 0.69866, 0.746, 1, 1, 0.77598, 0.88417, 0.77598, 1.12658,\n 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578,\n 0.85991, 0.94578, 0.85991, 0.94578, 0.87832, 0.979, 0.77512, 0.882, 0.77512,\n 0.8562, 0.83, 0.8562, 0.83, 0.8562, 0.83, 1, 0.88465, 0.85158, 0.93859, 0.773,\n 0.8075, 0.85751, 0.8562, 1, 1, 0.77598, 1.12658, 1.15012, 1.15012, 1.15012,\n 1.15012, 1.15012, 1.15313, 1.15012, 1.15012, 1.15012, 1.08106, 1.03901,\n 0.85158, 0.77025, 0.62264, 0.7646, 0.65351, 0.86026, 0.69461, 0.89947,\n 1.03075, 0.85158, 0.77812, 0.76449, 0.88836, 0.70466, 0.8562, 0.86822, 0.8588,\n 0.83864, 0.77212, 0.85308, 0.93637, 0.87514, 0.82352, 0.8588, 0.85701,\n 0.76013, 0.89058, 0.77598, 0.8156, 0.82565, 0.78112, 0.77899, 0.89386,\n 0.83864, 0.8156, 0.9486, 0.92388, 0.96186, 1.03075, 0.91123, 0.9486, 0.93298,\n 0.878, 0.93942, 0.92388, 0.84596, 0.96186, 0.95119, 1.03075, 0.922, 0.88787,\n 0.95829, 0.88, 0.93559, 0.93859, 0.78815, 0.93758, 1, 0.89217, 1.03737,\n 0.91123, 0.93969, 0.77487, 0.85769, 0.86799, 1.03075, 0.91123, 0.93859,\n 0.91123, 0.86799, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 0.87832, 0.979, 0.87832, 0.979, 0.87832, 0.979, 0.77512, 0.882, 0.9219,\n 1, 0.89903, 1, 1, 1, 0.87321, 0.87321, 0.87321, 1, 1.027, 1.027, 1.027,\n 0.86847, 0.86847, 0.79121, 1, 1.124, 1, 1, 0.73572, 0.73572, 1, 1, 0.85034, 1,\n 1, 1, 1, 0.88465, 1, 1, 1, 0.669, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1.04828, 1, 0.74948, 0.75187, 1.02058, 0.98391, 1.02119, 1, 1, 1.06233,\n 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05233, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst MyriadProItalicMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-Regular.ttf to have the same\n// metrics as MyriadPro-Regular.otf.\nconst MyriadProRegularFactors = [\n 1.36898, 1, 1, 0.76305, 0.82784, 0.94935, 0.89364, 0.92241, 0.89073, 0.90706,\n 0.98472, 0.85283, 0.85283, 1.0664, 1.02058, 0.74505, 0.9219, 0.74505, 1.23456,\n 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241,\n 0.92241, 0.92241, 0.74505, 0.74505, 1.02058, 1.02058, 1.02058, 0.73002,\n 0.72601, 0.91755, 0.8126, 0.80314, 0.92222, 0.73764, 0.79726, 0.83051,\n 0.90284, 0.86023, 0.74, 0.8126, 0.84869, 0.96518, 0.91115, 0.8858, 0.79761,\n 0.8858, 0.74498, 0.73914, 0.81363, 0.89591, 0.83659, 0.89633, 0.85608, 0.8111,\n 0.90531, 1.0222, 1.22736, 1.0222, 1.27014, 0.89903, 0.90088, 0.86667, 1.0231,\n 0.896, 1.01411, 0.90083, 1.05099, 1.00512, 0.99793, 1.05326, 1.09377, 0.938,\n 1.06226, 1.00119, 0.99793, 0.98714, 1.0231, 1.01231, 0.98196, 0.792, 1.19137,\n 0.99074, 0.962, 1.01915, 0.926, 0.942, 0.856, 0.85034, 0.92006, 0.85034,\n 1.02058, 0.69067, 0.92241, 0.92241, 0.92241, 0.92241, 0.92006, 0.9332,\n 0.90088, 0.91882, 0.93484, 0.75339, 1.02058, 0.56866, 0.54324, 0.79519,\n 1.08595, 1, 1, 0.90088, 1, 0.95325, 0.74505, 0.90088, 1, 0.97198, 0.75339,\n 0.91009, 0.91009, 0.91009, 0.66466, 0.91755, 0.91755, 0.91755, 0.91755,\n 0.91755, 0.91755, 0.788, 0.80314, 0.73764, 0.73764, 0.73764, 0.73764, 0.86023,\n 0.86023, 0.86023, 0.86023, 0.92915, 0.91115, 0.8858, 0.8858, 0.8858, 0.8858,\n 0.8858, 1.02058, 0.8858, 0.89591, 0.89591, 0.89591, 0.89591, 0.8111, 0.79611,\n 0.89713, 0.86667, 0.86667, 0.86667, 0.86667, 0.86667, 0.86667, 0.86936, 0.896,\n 0.90083, 0.90083, 0.90083, 0.90083, 0.84224, 0.84224, 0.84224, 0.84224,\n 0.97276, 0.99793, 0.98714, 0.98714, 0.98714, 0.98714, 0.98714, 1.08595,\n 0.89876, 0.99074, 0.99074, 0.99074, 0.99074, 0.942, 1.0231, 0.942, 0.91755,\n 0.86667, 0.91755, 0.86667, 0.91755, 0.86667, 0.80314, 0.896, 0.80314, 0.896,\n 0.80314, 0.896, 0.80314, 0.896, 0.92222, 0.93372, 0.92915, 1.01411, 0.73764,\n 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764,\n 0.90083, 0.83051, 1.00512, 0.83051, 1.00512, 0.83051, 1.00512, 1, 1, 0.90284,\n 0.99793, 0.90976, 0.99793, 0.86023, 0.84224, 0.86023, 0.84224, 0.86023,\n 0.84224, 0.86023, 1.05326, 0.86023, 0.84224, 0.82873, 1.07469, 0.74, 1.09377,\n 1, 1, 0.938, 0.84869, 1.06226, 1, 1, 0.84869, 0.83704, 0.84869, 0.81441,\n 0.85588, 1.08927, 0.91115, 0.99793, 1, 1, 0.91115, 0.99793, 0.91887, 0.90991,\n 0.99793, 0.8858, 0.98714, 0.8858, 0.98714, 0.8858, 0.98714, 0.894, 0.91434,\n 0.74498, 0.98196, 1, 1, 0.74498, 0.98196, 0.73914, 0.792, 0.73914, 0.792, 1,\n 1, 0.73914, 0.792, 1, 1, 0.81363, 0.904, 0.81363, 1.19137, 0.89591, 0.99074,\n 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074,\n 0.89591, 0.99074, 0.89633, 1.01915, 0.8111, 0.942, 0.8111, 0.90531, 0.856,\n 0.90531, 0.856, 0.90531, 0.856, 1, 0.92241, 0.91755, 0.86667, 0.788, 0.86936,\n 0.8858, 0.89876, 1, 1, 0.81363, 1.19137, 0.90088, 0.90088, 0.90088, 0.90088,\n 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90388, 1.03901, 0.92138,\n 0.78105, 0.7154, 0.86169, 0.80513, 0.94007, 0.82528, 0.98612, 1.06226,\n 0.91755, 0.8126, 0.81884, 0.92819, 0.73764, 0.90531, 0.90284, 0.8858, 0.86023,\n 0.8126, 0.91172, 0.96518, 0.91115, 0.83089, 0.8858, 0.87791, 0.79761, 0.89297,\n 0.81363, 0.88157, 0.89992, 0.85608, 0.81992, 0.94307, 0.86023, 0.88157,\n 0.95308, 0.98699, 0.99793, 1.06226, 0.95817, 0.95308, 0.97358, 0.928, 0.98088,\n 0.98699, 0.92761, 0.99793, 0.96017, 1.06226, 0.986, 0.944, 0.95978, 0.938,\n 0.96705, 0.98714, 0.80442, 0.98972, 1, 0.89762, 1.04552, 0.95817, 0.99007,\n 0.87064, 0.91879, 0.88888, 1.06226, 0.95817, 0.98714, 0.95817, 0.88888, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89633, 1.01915,\n 0.89633, 1.01915, 0.89633, 1.01915, 0.8111, 0.942, 0.9219, 1, 0.89903, 1, 1,\n 1, 0.93173, 0.93173, 0.93173, 1, 1.06304, 1.06304, 1.06904, 0.89903, 0.89903,\n 0.80549, 1, 1.156, 1, 1, 0.76575, 0.76575, 1, 1, 0.72458, 1, 1, 1, 1, 0.92241,\n 1, 1, 1, 0.619, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.07257, 1,\n 0.74705, 0.71119, 1.02058, 1.024, 1.02119, 1, 1, 1.1536, 1.08595, 1.08595, 1,\n 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05638, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1,\n];\nconst MyriadProRegularMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\nexport {\n MyriadProBoldFactors,\n MyriadProBoldItalicFactors,\n MyriadProBoldItalicMetrics,\n MyriadProBoldMetrics,\n MyriadProItalicFactors,\n MyriadProItalicMetrics,\n MyriadProRegularFactors,\n MyriadProRegularMetrics,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Factors to rescale LiberationSans-Bold.ttf to have the same\n// metrics as segoeuib.ttf.\nconst SegoeuiBoldFactors = [\n 1.76738, 1, 1, 0.99297, 0.9824, 1.04016, 1.06497, 1.03424, 0.97529, 1.17647,\n 1.23203, 1.1085, 1.1085, 1.16939, 1.2107, 0.9754, 1.21408, 0.9754, 1.59578,\n 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424,\n 1.03424, 1.03424, 0.81378, 0.81378, 1.2107, 1.2107, 1.2107, 0.71703, 0.97847,\n 0.97363, 0.88776, 0.8641, 1.02096, 0.79795, 0.85132, 0.914, 1.06085, 1.1406,\n 0.8007, 0.89858, 0.83693, 1.14889, 1.09398, 0.97489, 0.92094, 0.97489,\n 0.90399, 0.84041, 0.95923, 1.00135, 1, 1.06467, 0.98243, 0.90996, 0.99361,\n 1.1085, 1.56942, 1.1085, 1.2107, 0.74627, 0.94282, 0.96752, 1.01519, 0.86304,\n 1.01359, 0.97278, 1.15103, 1.01359, 0.98561, 1.02285, 1.02285, 1.00527,\n 1.02285, 1.0302, 0.99041, 1.0008, 1.01519, 1.01359, 1.02258, 0.79104, 1.16862,\n 0.99041, 0.97454, 1.02511, 0.99298, 0.96752, 0.95801, 0.94856, 1.16579,\n 0.94856, 1.2107, 0.9824, 1.03424, 1.03424, 1, 1.03424, 1.16579, 0.8727,\n 1.3871, 1.18622, 1.10818, 1.04478, 1.2107, 1.18622, 0.75155, 0.94994, 1.28826,\n 1.21408, 1.21408, 0.91056, 1, 0.91572, 0.9754, 0.64663, 1.18328, 1.24866,\n 1.04478, 1.14169, 1.15749, 1.17389, 0.71703, 0.97363, 0.97363, 0.97363,\n 0.97363, 0.97363, 0.97363, 0.93506, 0.8641, 0.79795, 0.79795, 0.79795,\n 0.79795, 1.1406, 1.1406, 1.1406, 1.1406, 1.02096, 1.09398, 0.97426, 0.97426,\n 0.97426, 0.97426, 0.97426, 1.2107, 0.97489, 1.00135, 1.00135, 1.00135,\n 1.00135, 0.90996, 0.92094, 1.02798, 0.96752, 0.96752, 0.96752, 0.96752,\n 0.96752, 0.96752, 0.93136, 0.86304, 0.97278, 0.97278, 0.97278, 0.97278,\n 1.02285, 1.02285, 1.02285, 1.02285, 0.97122, 0.99041, 1, 1, 1, 1, 1, 1.28826,\n 1.0008, 0.99041, 0.99041, 0.99041, 0.99041, 0.96752, 1.01519, 0.96752,\n 0.97363, 0.96752, 0.97363, 0.96752, 0.97363, 0.96752, 0.8641, 0.86304, 0.8641,\n 0.86304, 0.8641, 0.86304, 0.8641, 0.86304, 1.02096, 1.03057, 1.02096, 1.03517,\n 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278,\n 0.79795, 0.97278, 0.914, 1.01359, 0.914, 1.01359, 0.914, 1.01359, 1, 1,\n 1.06085, 0.98561, 1.06085, 1.00879, 1.1406, 1.02285, 1.1406, 1.02285, 1.1406,\n 1.02285, 1.1406, 1.02285, 1.1406, 1.02285, 0.97138, 1.08692, 0.8007, 1.02285,\n 1, 1, 1.00527, 0.83693, 1.02285, 1, 1, 0.83693, 0.9455, 0.83693, 0.90418,\n 0.83693, 1.13005, 1.09398, 0.99041, 1, 1, 1.09398, 0.99041, 0.96692, 1.09251,\n 0.99041, 0.97489, 1.0008, 0.97489, 1.0008, 0.97489, 1.0008, 0.93994, 0.97931,\n 0.90399, 1.02258, 1, 1, 0.90399, 1.02258, 0.84041, 0.79104, 0.84041, 0.79104,\n 0.84041, 0.79104, 0.84041, 0.79104, 1, 1, 0.95923, 1.07034, 0.95923, 1.16862,\n 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041,\n 1.00135, 0.99041, 1.00135, 0.99041, 1.06467, 1.02511, 0.90996, 0.96752,\n 0.90996, 0.99361, 0.95801, 0.99361, 0.95801, 0.99361, 0.95801, 1.07733,\n 1.03424, 0.97363, 0.96752, 0.93506, 0.93136, 0.97489, 1.0008, 1, 1, 0.95923,\n 1.16862, 1.15103, 1.15103, 1.01173, 1.03959, 0.75953, 0.81378, 0.79912,\n 1.15103, 1.21994, 0.95161, 0.87815, 1.01149, 0.81525, 0.7676, 0.98167,\n 1.01134, 1.02546, 0.84097, 1.03089, 1.18102, 0.97363, 0.88776, 0.85134,\n 0.97826, 0.79795, 0.99361, 1.06085, 0.97489, 1.1406, 0.89858, 1.0388, 1.14889,\n 1.09398, 0.86039, 0.97489, 1.0595, 0.92094, 0.94793, 0.95923, 0.90996,\n 0.99346, 0.98243, 1.02112, 0.95493, 1.1406, 0.90996, 1.03574, 1.02597, 1.0008,\n 1.18102, 1.06628, 1.03574, 1.0192, 1.01932, 1.00886, 0.97531, 1.0106, 1.0008,\n 1.13189, 1.18102, 1.02277, 0.98683, 1.0016, 0.99561, 1.07237, 1.0008, 0.90434,\n 0.99921, 0.93803, 0.8965, 1.23085, 1.06628, 1.04983, 0.96268, 1.0499, 0.98439,\n 1.18102, 1.06628, 1.0008, 1.06628, 0.98439, 0.79795, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1.09466, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.97278, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.02065, 1, 1, 1, 1, 1, 1, 1.06467, 1.02511,\n 1.06467, 1.02511, 1.06467, 1.02511, 0.90996, 0.96752, 1, 1.21408, 0.89903, 1,\n 1, 0.75155, 1.04394, 1.04394, 1.04394, 1.04394, 0.98633, 0.98633, 0.98633,\n 0.73047, 0.73047, 1.20642, 0.91211, 1.25635, 1.222, 1.02956, 1.03372, 1.03372,\n 0.96039, 1.24633, 1, 1.12454, 0.93503, 1.03424, 1.19687, 1.03424, 1, 1, 1,\n 0.771, 1, 1, 1.15749, 1.15749, 1.15749, 1.10948, 0.86279, 0.94434, 0.86279,\n 0.94434, 0.86182, 1, 1, 1.16897, 1, 0.96085, 0.90137, 1.2107, 1.18416,\n 1.13973, 0.69825, 0.9716, 2.10339, 1.29004, 1.29004, 1.21172, 1.29004,\n 1.29004, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025,\n 1.18874, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886,\n 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.09193, 1.09193, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst SegoeuiBoldMetrics = { lineHeight: 1.33008, lineGap: 0 };\n\n// Factors to rescale LiberationSans-BoldItalic.ttf to have the same\n// metrics as segoeuiz.ttf.\nconst SegoeuiBoldItalicFactors = [\n 1.76738, 1, 1, 0.98946, 1.03959, 1.04016, 1.02809, 1.036, 0.97639, 1.10953,\n 1.23203, 1.11144, 1.11144, 1.16939, 1.21237, 0.9754, 1.21261, 0.9754, 1.59754,\n 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 0.81378,\n 0.81378, 1.21237, 1.21237, 1.21237, 0.73541, 0.97847, 0.97363, 0.89723,\n 0.87897, 1.0426, 0.79429, 0.85292, 0.91149, 1.05815, 1.1406, 0.79631, 0.90128,\n 0.83853, 1.04396, 1.10615, 0.97552, 0.94436, 0.97552, 0.88641, 0.80527,\n 0.96083, 1.00135, 1, 1.06777, 0.9817, 0.91142, 0.99361, 1.11144, 1.57293,\n 1.11144, 1.21237, 0.74627, 1.31818, 1.06585, 0.97042, 0.83055, 0.97042,\n 0.93503, 1.1261, 0.97042, 0.97922, 1.14236, 0.94552, 1.01054, 1.14236,\n 1.02471, 0.97922, 0.94165, 0.97042, 0.97042, 1.0276, 0.78929, 1.1261, 0.97922,\n 0.95874, 1.02197, 0.98507, 0.96752, 0.97168, 0.95107, 1.16579, 0.95107,\n 1.21237, 1.03959, 1.036, 1.036, 1, 1.036, 1.16579, 0.87357, 1.31818, 1.18754,\n 1.26781, 1.05356, 1.21237, 1.18622, 0.79487, 0.94994, 1.29004, 1.24047,\n 1.24047, 1.31818, 1, 0.91484, 0.9754, 1.31818, 1.1349, 1.24866, 1.05356,\n 1.13934, 1.15574, 1.17389, 0.73541, 0.97363, 0.97363, 0.97363, 0.97363,\n 0.97363, 0.97363, 0.94385, 0.87897, 0.79429, 0.79429, 0.79429, 0.79429,\n 1.1406, 1.1406, 1.1406, 1.1406, 1.0426, 1.10615, 0.97552, 0.97552, 0.97552,\n 0.97552, 0.97552, 1.21237, 0.97552, 1.00135, 1.00135, 1.00135, 1.00135,\n 0.91142, 0.94436, 0.98721, 1.06585, 1.06585, 1.06585, 1.06585, 1.06585,\n 1.06585, 0.96705, 0.83055, 0.93503, 0.93503, 0.93503, 0.93503, 1.14236,\n 1.14236, 1.14236, 1.14236, 0.93125, 0.97922, 0.94165, 0.94165, 0.94165,\n 0.94165, 0.94165, 1.29004, 0.94165, 0.97922, 0.97922, 0.97922, 0.97922,\n 0.96752, 0.97042, 0.96752, 0.97363, 1.06585, 0.97363, 1.06585, 0.97363,\n 1.06585, 0.87897, 0.83055, 0.87897, 0.83055, 0.87897, 0.83055, 0.87897,\n 0.83055, 1.0426, 1.0033, 1.0426, 0.97042, 0.79429, 0.93503, 0.79429, 0.93503,\n 0.79429, 0.93503, 0.79429, 0.93503, 0.79429, 0.93503, 0.91149, 0.97042,\n 0.91149, 0.97042, 0.91149, 0.97042, 1, 1, 1.05815, 0.97922, 1.05815, 0.97922,\n 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406,\n 1.14236, 0.97441, 1.04302, 0.79631, 1.01582, 1, 1, 1.01054, 0.83853, 1.14236,\n 1, 1, 0.83853, 1.09125, 0.83853, 0.90418, 0.83853, 1.19508, 1.10615, 0.97922,\n 1, 1, 1.10615, 0.97922, 1.01034, 1.10466, 0.97922, 0.97552, 0.94165, 0.97552,\n 0.94165, 0.97552, 0.94165, 0.91602, 0.91981, 0.88641, 1.0276, 1, 1, 0.88641,\n 1.0276, 0.80527, 0.78929, 0.80527, 0.78929, 0.80527, 0.78929, 0.80527,\n 0.78929, 1, 1, 0.96083, 1.05403, 0.95923, 1.16862, 1.00135, 0.97922, 1.00135,\n 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135,\n 0.97922, 1.06777, 1.02197, 0.91142, 0.96752, 0.91142, 0.99361, 0.97168,\n 0.99361, 0.97168, 0.99361, 0.97168, 1.23199, 1.036, 0.97363, 1.06585, 0.94385,\n 0.96705, 0.97552, 0.94165, 1, 1, 0.96083, 1.1261, 1.31818, 1.31818, 1.31818,\n 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 0.95161, 1.27126,\n 1.00811, 0.83284, 0.77702, 0.99137, 0.95253, 1.0347, 0.86142, 1.07205,\n 1.14236, 0.97363, 0.89723, 0.86869, 1.09818, 0.79429, 0.99361, 1.05815,\n 0.97552, 1.1406, 0.90128, 1.06662, 1.04396, 1.10615, 0.84918, 0.97552,\n 1.04694, 0.94436, 0.98015, 0.96083, 0.91142, 1.00356, 0.9817, 1.01945,\n 0.98999, 1.1406, 0.91142, 1.04961, 0.9898, 1.00639, 1.14236, 1.07514, 1.04961,\n 0.99607, 1.02897, 1.008, 0.9898, 0.95134, 1.00639, 1.11121, 1.14236, 1.00518,\n 0.97981, 1.02186, 1, 1.08578, 0.94165, 0.99314, 0.98387, 0.93028, 0.93377,\n 1.35125, 1.07514, 1.10687, 0.93491, 1.04232, 1.00351, 1.14236, 1.07514,\n 0.94165, 1.07514, 1.00351, 0.79429, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1.09097, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.93503, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 0.96609, 1, 1, 1, 1, 1, 1, 1.06777, 1.02197, 1.06777,\n 1.02197, 1.06777, 1.02197, 0.91142, 0.96752, 1, 1.21261, 0.89903, 1, 1,\n 0.75155, 1.04745, 1.04745, 1.04745, 1.04394, 0.98633, 0.98633, 0.98633,\n 0.72959, 0.72959, 1.20502, 0.91406, 1.26514, 1.222, 1.02956, 1.03372, 1.03372,\n 0.96039, 1.24633, 1, 1.09125, 0.93327, 1.03336, 1.16541, 1.036, 1, 1, 1,\n 0.771, 1, 1, 1.15574, 1.15574, 1.15574, 1.15574, 0.86364, 0.94434, 0.86279,\n 0.94434, 0.86224, 1, 1, 1.16798, 1, 0.96085, 0.90068, 1.21237, 1.18416,\n 1.13904, 0.69825, 0.9716, 2.10339, 1.29004, 1.29004, 1.21339, 1.29004,\n 1.29004, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025,\n 1.18775, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886,\n 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.13269, 1.13269, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst SegoeuiBoldItalicMetrics = { lineHeight: 1.33008, lineGap: 0 };\n\n// Factors to rescale LiberationSans-Italic.ttf to have the same\n// metrics as segoeuii.ttf.\nconst SegoeuiItalicFactors = [\n 1.76738, 1, 1, 0.98946, 1.14763, 1.05365, 1.06234, 0.96927, 0.92586, 1.15373,\n 1.18414, 0.91349, 0.91349, 1.07403, 1.17308, 0.78383, 1.20088, 0.78383,\n 1.42531, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927,\n 0.96927, 0.96927, 0.96927, 0.78383, 0.78383, 1.17308, 1.17308, 1.17308,\n 0.77349, 0.94565, 0.94729, 0.85944, 0.88506, 0.9858, 0.74817, 0.80016,\n 0.88449, 0.98039, 0.95782, 0.69238, 0.89898, 0.83231, 0.98183, 1.03989,\n 0.96924, 0.86237, 0.96924, 0.80595, 0.74524, 0.86091, 0.95402, 0.94143,\n 0.98448, 0.8858, 0.83089, 0.93285, 1.0949, 1.39016, 1.0949, 1.45994, 0.74627,\n 1.04839, 0.97454, 0.97454, 0.87207, 0.97454, 0.87533, 1.06151, 0.97454,\n 1.00176, 1.16484, 1.08132, 0.98047, 1.16484, 1.02989, 1.01054, 0.96225,\n 0.97454, 0.97454, 1.06598, 0.79004, 1.16344, 1.00351, 0.94629, 0.9973,\n 0.91016, 0.96777, 0.9043, 0.91082, 0.92481, 0.91082, 1.17308, 0.95748,\n 0.96927, 0.96927, 1, 0.96927, 0.92481, 0.80597, 1.04839, 1.23393, 1.1781,\n 0.9245, 1.17308, 1.20808, 0.63218, 0.94261, 1.24822, 1.09971, 1.09971,\n 1.04839, 1, 0.85273, 0.78032, 1.04839, 1.09971, 1.22326, 0.9245, 1.09836,\n 1.13525, 1.15222, 0.70424, 0.94729, 0.94729, 0.94729, 0.94729, 0.94729,\n 0.94729, 0.85498, 0.88506, 0.74817, 0.74817, 0.74817, 0.74817, 0.95782,\n 0.95782, 0.95782, 0.95782, 0.9858, 1.03989, 0.96924, 0.96924, 0.96924,\n 0.96924, 0.96924, 1.17308, 0.96924, 0.95402, 0.95402, 0.95402, 0.95402,\n 0.83089, 0.86237, 0.88409, 0.97454, 0.97454, 0.97454, 0.97454, 0.97454,\n 0.97454, 0.92916, 0.87207, 0.87533, 0.87533, 0.87533, 0.87533, 0.93146,\n 0.93146, 0.93146, 0.93146, 0.93854, 1.01054, 0.96225, 0.96225, 0.96225,\n 0.96225, 0.96225, 1.24822, 0.8761, 1.00351, 1.00351, 1.00351, 1.00351,\n 0.96777, 0.97454, 0.96777, 0.94729, 0.97454, 0.94729, 0.97454, 0.94729,\n 0.97454, 0.88506, 0.87207, 0.88506, 0.87207, 0.88506, 0.87207, 0.88506,\n 0.87207, 0.9858, 0.95391, 0.9858, 0.97454, 0.74817, 0.87533, 0.74817, 0.87533,\n 0.74817, 0.87533, 0.74817, 0.87533, 0.74817, 0.87533, 0.88449, 0.97454,\n 0.88449, 0.97454, 0.88449, 0.97454, 1, 1, 0.98039, 1.00176, 0.98039, 1.00176,\n 0.95782, 0.93146, 0.95782, 0.93146, 0.95782, 0.93146, 0.95782, 1.16484,\n 0.95782, 0.93146, 0.84421, 1.12761, 0.69238, 1.08132, 1, 1, 0.98047, 0.83231,\n 1.16484, 1, 1, 0.84723, 1.04861, 0.84723, 0.78755, 0.83231, 1.23736, 1.03989,\n 1.01054, 1, 1, 1.03989, 1.01054, 0.9857, 1.03849, 1.01054, 0.96924, 0.96225,\n 0.96924, 0.96225, 0.96924, 0.96225, 0.92383, 0.90171, 0.80595, 1.06598, 1, 1,\n 0.80595, 1.06598, 0.74524, 0.79004, 0.74524, 0.79004, 0.74524, 0.79004,\n 0.74524, 0.79004, 1, 1, 0.86091, 1.02759, 0.85771, 1.16344, 0.95402, 1.00351,\n 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351,\n 0.95402, 1.00351, 0.98448, 0.9973, 0.83089, 0.96777, 0.83089, 0.93285, 0.9043,\n 0.93285, 0.9043, 0.93285, 0.9043, 1.31868, 0.96927, 0.94729, 0.97454, 0.85498,\n 0.92916, 0.96924, 0.8761, 1, 1, 0.86091, 1.16344, 1.04839, 1.04839, 1.04839,\n 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 0.81965, 0.81965,\n 0.94729, 0.78032, 0.71022, 0.90883, 0.84171, 0.99877, 0.77596, 1.05734, 1.2,\n 0.94729, 0.85944, 0.82791, 0.9607, 0.74817, 0.93285, 0.98039, 0.96924,\n 0.95782, 0.89898, 0.98316, 0.98183, 1.03989, 0.78614, 0.96924, 0.97642,\n 0.86237, 0.86075, 0.86091, 0.83089, 0.90082, 0.8858, 0.97296, 1.01284,\n 0.95782, 0.83089, 1.0976, 1.04, 1.03342, 1.2, 1.0675, 1.0976, 0.98205,\n 1.03809, 1.05097, 1.04, 0.95364, 1.03342, 1.05401, 1.2, 1.02148, 1.0119,\n 1.04724, 1.0127, 1.02732, 0.96225, 0.8965, 0.97783, 0.93574, 0.94818, 1.30679,\n 1.0675, 1.11826, 0.99821, 1.0557, 1.0326, 1.2, 1.0675, 0.96225, 1.0675,\n 1.0326, 0.74817, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.03754, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.87533, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 0.98705, 1, 1, 1, 1, 1, 1, 0.98448, 0.9973, 0.98448, 0.9973, 0.98448, 0.9973,\n 0.83089, 0.96777, 1, 1.20088, 0.89903, 1, 1, 0.75155, 0.94945, 0.94945,\n 0.94945, 0.94945, 1.12317, 1.12317, 1.12317, 0.67603, 0.67603, 1.15621,\n 0.73584, 1.21191, 1.22135, 1.06483, 0.94868, 0.94868, 0.95996, 1.24633, 1,\n 1.07497, 0.87709, 0.96927, 1.01473, 0.96927, 1, 1, 1, 0.77295, 1, 1, 1.09836,\n 1.09836, 1.09836, 1.01522, 0.86321, 0.94434, 0.8649, 0.94434, 0.86182, 1, 1,\n 1.083, 1, 0.91578, 0.86438, 1.17308, 1.18416, 1.14589, 0.69825, 0.97622,\n 1.96791, 1.24822, 1.24822, 1.17308, 1.24822, 1.24822, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862,\n 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.17984, 1.42603, 1, 1.42603,\n 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1,\n 1.10742, 1.10742, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst SegoeuiItalicMetrics = { lineHeight: 1.33008, lineGap: 0 };\n\n// Factors to rescale LiberationSans-Regular.ttf to have the same\n// metrics as segoeui.ttf.\nconst SegoeuiRegularFactors = [\n 1.76738, 1, 1, 0.98594, 1.02285, 1.10454, 1.06234, 0.96927, 0.92037, 1.19985,\n 1.2046, 0.90616, 0.90616, 1.07152, 1.1714, 0.78032, 1.20088, 0.78032, 1.40246,\n 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927,\n 0.96927, 0.96927, 0.78032, 0.78032, 1.1714, 1.1714, 1.1714, 0.80597, 0.94084,\n 0.96706, 0.85944, 0.85734, 0.97093, 0.75842, 0.79936, 0.88198, 0.9831,\n 0.95782, 0.71387, 0.86969, 0.84636, 1.07796, 1.03584, 0.96924, 0.83968,\n 0.96924, 0.82826, 0.79649, 0.85771, 0.95132, 0.93119, 0.98965, 0.88433,\n 0.8287, 0.93365, 1.08612, 1.3638, 1.08612, 1.45786, 0.74627, 0.80499, 0.91484,\n 1.05707, 0.92383, 1.05882, 0.9403, 1.12654, 1.05882, 1.01756, 1.09011,\n 1.09011, 0.99414, 1.09011, 1.034, 1.01756, 1.05356, 1.05707, 1.05882, 1.04399,\n 0.84863, 1.21968, 1.01756, 0.95801, 1.00068, 0.91797, 0.96777, 0.9043,\n 0.90351, 0.92105, 0.90351, 1.1714, 0.85337, 0.96927, 0.96927, 0.99912,\n 0.96927, 0.92105, 0.80597, 1.2434, 1.20808, 1.05937, 0.90957, 1.1714, 1.20808,\n 0.75155, 0.94261, 1.24644, 1.09971, 1.09971, 0.84751, 1, 0.85273, 0.78032,\n 0.61584, 1.05425, 1.17914, 0.90957, 1.08665, 1.11593, 1.14169, 0.73381,\n 0.96706, 0.96706, 0.96706, 0.96706, 0.96706, 0.96706, 0.86035, 0.85734,\n 0.75842, 0.75842, 0.75842, 0.75842, 0.95782, 0.95782, 0.95782, 0.95782,\n 0.97093, 1.03584, 0.96924, 0.96924, 0.96924, 0.96924, 0.96924, 1.1714,\n 0.96924, 0.95132, 0.95132, 0.95132, 0.95132, 0.8287, 0.83968, 0.89049,\n 0.91484, 0.91484, 0.91484, 0.91484, 0.91484, 0.91484, 0.93575, 0.92383,\n 0.9403, 0.9403, 0.9403, 0.9403, 0.8717, 0.8717, 0.8717, 0.8717, 1.00527,\n 1.01756, 1.05356, 1.05356, 1.05356, 1.05356, 1.05356, 1.24644, 0.95923,\n 1.01756, 1.01756, 1.01756, 1.01756, 0.96777, 1.05707, 0.96777, 0.96706,\n 0.91484, 0.96706, 0.91484, 0.96706, 0.91484, 0.85734, 0.92383, 0.85734,\n 0.92383, 0.85734, 0.92383, 0.85734, 0.92383, 0.97093, 1.0969, 0.97093,\n 1.05882, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403,\n 0.75842, 0.9403, 0.88198, 1.05882, 0.88198, 1.05882, 0.88198, 1.05882, 1, 1,\n 0.9831, 1.01756, 0.9831, 1.01756, 0.95782, 0.8717, 0.95782, 0.8717, 0.95782,\n 0.8717, 0.95782, 1.09011, 0.95782, 0.8717, 0.84784, 1.11551, 0.71387, 1.09011,\n 1, 1, 0.99414, 0.84636, 1.09011, 1, 1, 0.84636, 1.0536, 0.84636, 0.94298,\n 0.84636, 1.23297, 1.03584, 1.01756, 1, 1, 1.03584, 1.01756, 1.00323, 1.03444,\n 1.01756, 0.96924, 1.05356, 0.96924, 1.05356, 0.96924, 1.05356, 0.93066,\n 0.98293, 0.82826, 1.04399, 1, 1, 0.82826, 1.04399, 0.79649, 0.84863, 0.79649,\n 0.84863, 0.79649, 0.84863, 0.79649, 0.84863, 1, 1, 0.85771, 1.17318, 0.85771,\n 1.21968, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132,\n 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.98965, 1.00068, 0.8287,\n 0.96777, 0.8287, 0.93365, 0.9043, 0.93365, 0.9043, 0.93365, 0.9043, 1.08571,\n 0.96927, 0.96706, 0.91484, 0.86035, 0.93575, 0.96924, 0.95923, 1, 1, 0.85771,\n 1.21968, 1.11437, 1.11437, 0.93109, 0.91202, 0.60411, 0.84164, 0.55572,\n 1.01173, 0.97361, 0.81818, 0.81818, 0.96635, 0.78032, 0.72727, 0.92366,\n 0.98601, 1.03405, 0.77968, 1.09799, 1.2, 0.96706, 0.85944, 0.85638, 0.96491,\n 0.75842, 0.93365, 0.9831, 0.96924, 0.95782, 0.86969, 0.94152, 1.07796,\n 1.03584, 0.78437, 0.96924, 0.98715, 0.83968, 0.83491, 0.85771, 0.8287,\n 0.94492, 0.88433, 0.9287, 1.0098, 0.95782, 0.8287, 1.0625, 0.98248, 1.03424,\n 1.2, 1.01071, 1.0625, 0.95246, 1.03809, 1.04912, 0.98248, 1.00221, 1.03424,\n 1.05443, 1.2, 1.04785, 0.99609, 1.00169, 1.05176, 0.99346, 1.05356, 0.9087,\n 1.03004, 0.95542, 0.93117, 1.23362, 1.01071, 1.07831, 1.02512, 1.05205,\n 1.03502, 1.2, 1.01071, 1.05356, 1.01071, 1.03502, 0.75842, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1.03719, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.9403,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.04021, 1, 1, 1, 1, 1, 1, 0.98965,\n 1.00068, 0.98965, 1.00068, 0.98965, 1.00068, 0.8287, 0.96777, 1, 1.20088,\n 0.89903, 1, 1, 0.75155, 1.03077, 1.03077, 1.03077, 1.03077, 1.13196, 1.13196,\n 1.13196, 0.67428, 0.67428, 1.16039, 0.73291, 1.20996, 1.22135, 1.06483,\n 0.94868, 0.94868, 0.95996, 1.24633, 1, 1.07497, 0.87796, 0.96927, 1.01518,\n 0.96927, 1, 1, 1, 0.77295, 1, 1, 1.10539, 1.10539, 1.11358, 1.06967, 0.86279,\n 0.94434, 0.86279, 0.94434, 0.86182, 1, 1, 1.083, 1, 0.91578, 0.86507, 1.1714,\n 1.18416, 1.14589, 0.69825, 0.97622, 1.9697, 1.24822, 1.24822, 1.17238,\n 1.24822, 1.24822, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025,\n 0.87025, 1.18083, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1,\n 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.10938, 1.10938, 1, 1, 1,\n 1.05425, 1.09971, 1.09971, 1.09971, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst SegoeuiRegularMetrics = { lineHeight: 1.33008, lineGap: 0 };\n\nexport {\n SegoeuiBoldFactors,\n SegoeuiBoldItalicFactors,\n SegoeuiBoldItalicMetrics,\n SegoeuiBoldMetrics,\n SegoeuiItalicFactors,\n SegoeuiItalicMetrics,\n SegoeuiRegularFactors,\n SegoeuiRegularMetrics,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FontType, info } from \"../shared/util.js\";\nimport { getEncoding, StandardEncoding } from \"./encodings.js\";\nimport { getGlyphsUnicode } from \"./glyphlist.js\";\nimport { getUnicodeForGlyph } from \"./unicode.js\";\n\n// Accented characters have issues on Windows and Linux. When this flag is\n// enabled glyphs that use seac and seac style endchar operators are truncated\n// and we instead just store the glyph id's of the base glyph and its accent to\n// be drawn individually.\n// Linux (freetype) requires that when a seac style endchar is used\n// that the charset must be a predefined one, however we build a\n// custom one. Windows just refuses to draw glyphs with seac operators.\nconst SEAC_ANALYSIS_ENABLED = true;\n\nconst FontFlags = {\n FixedPitch: 1,\n Serif: 2,\n Symbolic: 4,\n Script: 8,\n Nonsymbolic: 32,\n Italic: 64,\n AllCap: 65536,\n SmallCap: 131072,\n ForceBold: 262144,\n};\n\n// prettier-ignore\nconst MacStandardGlyphOrdering = [\n \".notdef\", \".null\", \"nonmarkingreturn\", \"space\", \"exclam\", \"quotedbl\",\n \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quotesingle\", \"parenleft\",\n \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\",\n \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\",\n \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\",\n \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\",\n \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\",\n \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\",\n \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\",\n \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\",\n \"asciitilde\", \"Adieresis\", \"Aring\", \"Ccedilla\", \"Eacute\", \"Ntilde\",\n \"Odieresis\", \"Udieresis\", \"aacute\", \"agrave\", \"acircumflex\", \"adieresis\",\n \"atilde\", \"aring\", \"ccedilla\", \"eacute\", \"egrave\", \"ecircumflex\", \"edieresis\",\n \"iacute\", \"igrave\", \"icircumflex\", \"idieresis\", \"ntilde\", \"oacute\", \"ograve\",\n \"ocircumflex\", \"odieresis\", \"otilde\", \"uacute\", \"ugrave\", \"ucircumflex\",\n \"udieresis\", \"dagger\", \"degree\", \"cent\", \"sterling\", \"section\", \"bullet\",\n \"paragraph\", \"germandbls\", \"registered\", \"copyright\", \"trademark\", \"acute\",\n \"dieresis\", \"notequal\", \"AE\", \"Oslash\", \"infinity\", \"plusminus\", \"lessequal\",\n \"greaterequal\", \"yen\", \"mu\", \"partialdiff\", \"summation\", \"product\", \"pi\",\n \"integral\", \"ordfeminine\", \"ordmasculine\", \"Omega\", \"ae\", \"oslash\",\n \"questiondown\", \"exclamdown\", \"logicalnot\", \"radical\", \"florin\",\n \"approxequal\", \"Delta\", \"guillemotleft\", \"guillemotright\", \"ellipsis\",\n \"nonbreakingspace\", \"Agrave\", \"Atilde\", \"Otilde\", \"OE\", \"oe\", \"endash\",\n \"emdash\", \"quotedblleft\", \"quotedblright\", \"quoteleft\", \"quoteright\",\n \"divide\", \"lozenge\", \"ydieresis\", \"Ydieresis\", \"fraction\", \"currency\",\n \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"daggerdbl\", \"periodcentered\",\n \"quotesinglbase\", \"quotedblbase\", \"perthousand\", \"Acircumflex\",\n \"Ecircumflex\", \"Aacute\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\",\n \"Idieresis\", \"Igrave\", \"Oacute\", \"Ocircumflex\", \"apple\", \"Ograve\", \"Uacute\",\n \"Ucircumflex\", \"Ugrave\", \"dotlessi\", \"circumflex\", \"tilde\", \"macron\",\n \"breve\", \"dotaccent\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\",\n \"Lslash\", \"lslash\", \"Scaron\", \"scaron\", \"Zcaron\", \"zcaron\", \"brokenbar\",\n \"Eth\", \"eth\", \"Yacute\", \"yacute\", \"Thorn\", \"thorn\", \"minus\", \"multiply\",\n \"onesuperior\", \"twosuperior\", \"threesuperior\", \"onehalf\", \"onequarter\",\n \"threequarters\", \"franc\", \"Gbreve\", \"gbreve\", \"Idotaccent\", \"Scedilla\",\n \"scedilla\", \"Cacute\", \"cacute\", \"Ccaron\", \"ccaron\", \"dcroat\"];\n\nfunction getFontType(type, subtype, isStandardFont = false) {\n switch (type) {\n case \"Type1\":\n if (isStandardFont) {\n return FontType.TYPE1STANDARD;\n }\n return subtype === \"Type1C\" ? FontType.TYPE1C : FontType.TYPE1;\n case \"CIDFontType0\":\n return subtype === \"CIDFontType0C\"\n ? FontType.CIDFONTTYPE0C\n : FontType.CIDFONTTYPE0;\n case \"OpenType\":\n return FontType.OPENTYPE;\n case \"TrueType\":\n return FontType.TRUETYPE;\n case \"CIDFontType2\":\n return FontType.CIDFONTTYPE2;\n case \"MMType1\":\n return FontType.MMTYPE1;\n case \"Type0\":\n return FontType.TYPE0;\n default:\n return FontType.UNKNOWN;\n }\n}\n\n// Some bad PDF generators, e.g. Scribus PDF, include glyph names\n// in a 'uniXXXX' format -- attempting to recover proper ones.\nfunction recoverGlyphName(name, glyphsUnicodeMap) {\n if (glyphsUnicodeMap[name] !== undefined) {\n return name;\n }\n // The glyph name is non-standard, trying to recover.\n const unicode = getUnicodeForGlyph(name, glyphsUnicodeMap);\n if (unicode !== -1) {\n for (const key in glyphsUnicodeMap) {\n if (glyphsUnicodeMap[key] === unicode) {\n return key;\n }\n }\n }\n info(\"Unable to recover a standard glyph name for: \" + name);\n return name;\n}\n\n/**\n * Shared logic for building a char code to glyph id mapping for Type1 and\n * simple CFF fonts. See section 9.6.6.2 of the spec.\n * @param {Object} properties Font properties object.\n * @param {Object} builtInEncoding The encoding contained within the actual font\n * data.\n * @param {Array} glyphNames Array of glyph names where the index is the\n * glyph ID.\n * @returns {Object} A char code to glyph ID map.\n */\nfunction type1FontGlyphMapping(properties, builtInEncoding, glyphNames) {\n const charCodeToGlyphId = Object.create(null);\n let glyphId, charCode, baseEncoding;\n const isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n\n if (properties.isInternalFont) {\n baseEncoding = builtInEncoding;\n for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0; // notdef\n }\n }\n } else if (properties.baseEncodingName) {\n // If a valid base encoding name was used, the mapping is initialized with\n // that.\n baseEncoding = getEncoding(properties.baseEncodingName);\n for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0; // notdef\n }\n }\n } else if (isSymbolicFont) {\n // For a symbolic font the encoding should be the fonts built-in encoding.\n for (charCode in builtInEncoding) {\n charCodeToGlyphId[charCode] = builtInEncoding[charCode];\n }\n } else {\n // For non-symbolic fonts that don't have a base encoding the standard\n // encoding should be used.\n baseEncoding = StandardEncoding;\n for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0; // notdef\n }\n }\n }\n\n // Lastly, merge in the differences.\n const differences = properties.differences;\n let glyphsUnicodeMap;\n if (differences) {\n for (charCode in differences) {\n const glyphName = differences[charCode];\n glyphId = glyphNames.indexOf(glyphName);\n\n if (glyphId === -1) {\n if (!glyphsUnicodeMap) {\n glyphsUnicodeMap = getGlyphsUnicode();\n }\n const standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap);\n if (standardGlyphName !== glyphName) {\n glyphId = glyphNames.indexOf(standardGlyphName);\n }\n }\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0; // notdef\n }\n }\n }\n return charCodeToGlyphId;\n}\n\nfunction normalizeFontName(name) {\n return name.replace(/[,_]/g, \"-\").replace(/\\s/g, \"\");\n}\n\nexport {\n FontFlags,\n getFontType,\n MacStandardGlyphOrdering,\n normalizeFontName,\n recoverGlyphName,\n SEAC_ANALYSIS_ENABLED,\n type1FontGlyphMapping,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// prettier-ignore\nconst ExpertEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"\", \"dollaroldstyle\",\n \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\",\n \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\",\n \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\",\n \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\",\n \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"colon\",\n \"semicolon\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\",\n \"questionsmall\", \"\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\",\n \"esuperior\", \"\", \"\", \"\", \"isuperior\", \"\", \"\", \"lsuperior\", \"msuperior\",\n \"nsuperior\", \"osuperior\", \"\", \"\", \"rsuperior\", \"ssuperior\", \"tsuperior\",\n \"\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"\",\n \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\",\n \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\",\n \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\",\n \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\",\n \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\",\n \"onefitted\", \"rupiah\", \"Tildesmall\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\",\n \"\", \"\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\",\n \"Caronsmall\", \"\", \"Dotaccentsmall\", \"\", \"\", \"Macronsmall\", \"\", \"\",\n \"figuredash\", \"hypheninferior\", \"\", \"\", \"Ogoneksmall\", \"Ringsmall\",\n \"Cedillasmall\", \"\", \"\", \"\", \"onequarter\", \"onehalf\", \"threequarters\",\n \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n \"seveneighths\", \"onethird\", \"twothirds\", \"\", \"\", \"zerosuperior\",\n \"onesuperior\", \"twosuperior\", \"threesuperior\", \"foursuperior\",\n \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\",\n \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\",\n \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\",\n \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\",\n \"dollarinferior\", \"periodinferior\", \"commainferior\", \"Agravesmall\",\n \"Aacutesmall\", \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\",\n \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\",\n \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\",\n \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\",\n \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\",\n \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\",\n \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\",\n \"Ydieresissmall\"];\n\n// prettier-ignore\nconst MacExpertEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"centoldstyle\",\n \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\",\n \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\",\n \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\",\n \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\",\n \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\",\n \"nineoldstyle\", \"colon\", \"semicolon\", \"\", \"threequartersemdash\", \"\",\n \"questionsmall\", \"\", \"\", \"\", \"\", \"Ethsmall\", \"\", \"\", \"onequarter\",\n \"onehalf\", \"threequarters\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n \"seveneighths\", \"onethird\", \"twothirds\", \"\", \"\", \"\", \"\", \"\", \"\", \"ff\",\n \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"\", \"parenrightinferior\",\n \"Circumflexsmall\", \"hypheninferior\", \"Gravesmall\", \"Asmall\", \"Bsmall\",\n \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\",\n \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\",\n \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\",\n \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\",\n \"Tildesmall\", \"\", \"\", \"asuperior\", \"centsuperior\", \"\", \"\", \"\", \"\",\n \"Aacutesmall\", \"Agravesmall\", \"Acircumflexsmall\", \"Adieresissmall\",\n \"Atildesmall\", \"Aringsmall\", \"Ccedillasmall\", \"Eacutesmall\", \"Egravesmall\",\n \"Ecircumflexsmall\", \"Edieresissmall\", \"Iacutesmall\", \"Igravesmall\",\n \"Icircumflexsmall\", \"Idieresissmall\", \"Ntildesmall\", \"Oacutesmall\",\n \"Ogravesmall\", \"Ocircumflexsmall\", \"Odieresissmall\", \"Otildesmall\",\n \"Uacutesmall\", \"Ugravesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"\",\n \"eightsuperior\", \"fourinferior\", \"threeinferior\", \"sixinferior\",\n \"eightinferior\", \"seveninferior\", \"Scaronsmall\", \"\", \"centinferior\",\n \"twoinferior\", \"\", \"Dieresissmall\", \"\", \"Caronsmall\", \"osuperior\",\n \"fiveinferior\", \"\", \"commainferior\", \"periodinferior\", \"Yacutesmall\", \"\",\n \"dollarinferior\", \"\", \"\", \"Thornsmall\", \"\", \"nineinferior\", \"zeroinferior\",\n \"Zcaronsmall\", \"AEsmall\", \"Oslashsmall\", \"questiondownsmall\",\n \"oneinferior\", \"Lslashsmall\", \"\", \"\", \"\", \"\", \"\", \"\", \"Cedillasmall\", \"\",\n \"\", \"\", \"\", \"\", \"OEsmall\", \"figuredash\", \"hyphensuperior\", \"\", \"\", \"\", \"\",\n \"exclamdownsmall\", \"\", \"Ydieresissmall\", \"\", \"onesuperior\", \"twosuperior\",\n \"threesuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\",\n \"sevensuperior\", \"ninesuperior\", \"zerosuperior\", \"\", \"esuperior\",\n \"rsuperior\", \"tsuperior\", \"\", \"\", \"isuperior\", \"ssuperior\", \"dsuperior\",\n \"\", \"\", \"\", \"\", \"\", \"lsuperior\", \"Ogoneksmall\", \"Brevesmall\",\n \"Macronsmall\", \"bsuperior\", \"nsuperior\", \"msuperior\", \"commasuperior\",\n \"periodsuperior\", \"Dotaccentsmall\", \"Ringsmall\", \"\", \"\", \"\", \"\"];\n\n// prettier-ignore\nconst MacRomanEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\",\n \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\",\n \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\",\n \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\",\n \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\",\n \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\",\n \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\",\n \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\",\n \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\",\n \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"\",\n \"Adieresis\", \"Aring\", \"Ccedilla\", \"Eacute\", \"Ntilde\", \"Odieresis\",\n \"Udieresis\", \"aacute\", \"agrave\", \"acircumflex\", \"adieresis\", \"atilde\",\n \"aring\", \"ccedilla\", \"eacute\", \"egrave\", \"ecircumflex\", \"edieresis\",\n \"iacute\", \"igrave\", \"icircumflex\", \"idieresis\", \"ntilde\", \"oacute\",\n \"ograve\", \"ocircumflex\", \"odieresis\", \"otilde\", \"uacute\", \"ugrave\",\n \"ucircumflex\", \"udieresis\", \"dagger\", \"degree\", \"cent\", \"sterling\",\n \"section\", \"bullet\", \"paragraph\", \"germandbls\", \"registered\", \"copyright\",\n \"trademark\", \"acute\", \"dieresis\", \"notequal\", \"AE\", \"Oslash\", \"infinity\",\n \"plusminus\", \"lessequal\", \"greaterequal\", \"yen\", \"mu\", \"partialdiff\",\n \"summation\", \"product\", \"pi\", \"integral\", \"ordfeminine\", \"ordmasculine\",\n \"Omega\", \"ae\", \"oslash\", \"questiondown\", \"exclamdown\", \"logicalnot\",\n \"radical\", \"florin\", \"approxequal\", \"Delta\", \"guillemotleft\",\n \"guillemotright\", \"ellipsis\", \"space\", \"Agrave\", \"Atilde\", \"Otilde\", \"OE\",\n \"oe\", \"endash\", \"emdash\", \"quotedblleft\", \"quotedblright\", \"quoteleft\",\n \"quoteright\", \"divide\", \"lozenge\", \"ydieresis\", \"Ydieresis\", \"fraction\",\n \"currency\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"daggerdbl\",\n \"periodcentered\", \"quotesinglbase\", \"quotedblbase\", \"perthousand\",\n \"Acircumflex\", \"Ecircumflex\", \"Aacute\", \"Edieresis\", \"Egrave\", \"Iacute\",\n \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Oacute\", \"Ocircumflex\", \"apple\",\n \"Ograve\", \"Uacute\", \"Ucircumflex\", \"Ugrave\", \"dotlessi\", \"circumflex\",\n \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"ring\", \"cedilla\", \"hungarumlaut\",\n \"ogonek\", \"caron\"];\n\n// prettier-ignore\nconst StandardEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\",\n \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\",\n \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\",\n \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\",\n \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\",\n \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\",\n \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\",\n \"asciicircum\", \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\",\n \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\",\n \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"exclamdown\",\n \"cent\", \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\",\n \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\",\n \"guilsinglright\", \"fi\", \"fl\", \"\", \"endash\", \"dagger\", \"daggerdbl\",\n \"periodcentered\", \"\", \"paragraph\", \"bullet\", \"quotesinglbase\",\n \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\",\n \"perthousand\", \"\", \"questiondown\", \"\", \"grave\", \"acute\", \"circumflex\",\n \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"\", \"ring\", \"cedilla\",\n \"\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"AE\", \"\", \"ordfeminine\", \"\", \"\",\n \"\", \"\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"\", \"\", \"\", \"\", \"\", \"ae\",\n \"\", \"\", \"\", \"dotlessi\", \"\", \"\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"\",\n \"\", \"\", \"\"];\n\n// prettier-ignore\nconst WinAnsiEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\",\n \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\",\n \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\",\n \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\",\n \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\",\n \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\",\n \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\",\n \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\",\n \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\",\n \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\",\n \"bullet\", \"Euro\", \"bullet\", \"quotesinglbase\", \"florin\", \"quotedblbase\",\n \"ellipsis\", \"dagger\", \"daggerdbl\", \"circumflex\", \"perthousand\", \"Scaron\",\n \"guilsinglleft\", \"OE\", \"bullet\", \"Zcaron\", \"bullet\", \"bullet\", \"quoteleft\",\n \"quoteright\", \"quotedblleft\", \"quotedblright\", \"bullet\", \"endash\",\n \"emdash\", \"tilde\", \"trademark\", \"scaron\", \"guilsinglright\", \"oe\", \"bullet\",\n \"zcaron\", \"Ydieresis\", \"space\", \"exclamdown\", \"cent\", \"sterling\",\n \"currency\", \"yen\", \"brokenbar\", \"section\", \"dieresis\", \"copyright\",\n \"ordfeminine\", \"guillemotleft\", \"logicalnot\", \"hyphen\", \"registered\",\n \"macron\", \"degree\", \"plusminus\", \"twosuperior\", \"threesuperior\", \"acute\",\n \"mu\", \"paragraph\", \"periodcentered\", \"cedilla\", \"onesuperior\",\n \"ordmasculine\", \"guillemotright\", \"onequarter\", \"onehalf\", \"threequarters\",\n \"questiondown\", \"Agrave\", \"Aacute\", \"Acircumflex\", \"Atilde\", \"Adieresis\",\n \"Aring\", \"AE\", \"Ccedilla\", \"Egrave\", \"Eacute\", \"Ecircumflex\", \"Edieresis\",\n \"Igrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Eth\", \"Ntilde\", \"Ograve\",\n \"Oacute\", \"Ocircumflex\", \"Otilde\", \"Odieresis\", \"multiply\", \"Oslash\",\n \"Ugrave\", \"Uacute\", \"Ucircumflex\", \"Udieresis\", \"Yacute\", \"Thorn\",\n \"germandbls\", \"agrave\", \"aacute\", \"acircumflex\", \"atilde\", \"adieresis\",\n \"aring\", \"ae\", \"ccedilla\", \"egrave\", \"eacute\", \"ecircumflex\", \"edieresis\",\n \"igrave\", \"iacute\", \"icircumflex\", \"idieresis\", \"eth\", \"ntilde\", \"ograve\",\n \"oacute\", \"ocircumflex\", \"otilde\", \"odieresis\", \"divide\", \"oslash\",\n \"ugrave\", \"uacute\", \"ucircumflex\", \"udieresis\", \"yacute\", \"thorn\",\n \"ydieresis\"];\n\n// prettier-ignore\nconst SymbolSetEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclam\", \"universal\", \"numbersign\", \"existential\", \"percent\",\n \"ampersand\", \"suchthat\", \"parenleft\", \"parenright\", \"asteriskmath\", \"plus\",\n \"comma\", \"minus\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\",\n \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\",\n \"equal\", \"greater\", \"question\", \"congruent\", \"Alpha\", \"Beta\", \"Chi\",\n \"Delta\", \"Epsilon\", \"Phi\", \"Gamma\", \"Eta\", \"Iota\", \"theta1\", \"Kappa\",\n \"Lambda\", \"Mu\", \"Nu\", \"Omicron\", \"Pi\", \"Theta\", \"Rho\", \"Sigma\", \"Tau\",\n \"Upsilon\", \"sigma1\", \"Omega\", \"Xi\", \"Psi\", \"Zeta\", \"bracketleft\",\n \"therefore\", \"bracketright\", \"perpendicular\", \"underscore\", \"radicalex\",\n \"alpha\", \"beta\", \"chi\", \"delta\", \"epsilon\", \"phi\", \"gamma\", \"eta\", \"iota\",\n \"phi1\", \"kappa\", \"lambda\", \"mu\", \"nu\", \"omicron\", \"pi\", \"theta\", \"rho\",\n \"sigma\", \"tau\", \"upsilon\", \"omega1\", \"omega\", \"xi\", \"psi\", \"zeta\",\n \"braceleft\", \"bar\", \"braceright\", \"similar\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"Euro\", \"Upsilon1\", \"minute\", \"lessequal\",\n \"fraction\", \"infinity\", \"florin\", \"club\", \"diamond\", \"heart\", \"spade\",\n \"arrowboth\", \"arrowleft\", \"arrowup\", \"arrowright\", \"arrowdown\", \"degree\",\n \"plusminus\", \"second\", \"greaterequal\", \"multiply\", \"proportional\",\n \"partialdiff\", \"bullet\", \"divide\", \"notequal\", \"equivalence\",\n \"approxequal\", \"ellipsis\", \"arrowvertex\", \"arrowhorizex\", \"carriagereturn\",\n \"aleph\", \"Ifraktur\", \"Rfraktur\", \"weierstrass\", \"circlemultiply\",\n \"circleplus\", \"emptyset\", \"intersection\", \"union\", \"propersuperset\",\n \"reflexsuperset\", \"notsubset\", \"propersubset\", \"reflexsubset\", \"element\",\n \"notelement\", \"angle\", \"gradient\", \"registerserif\", \"copyrightserif\",\n \"trademarkserif\", \"product\", \"radical\", \"dotmath\", \"logicalnot\",\n \"logicaland\", \"logicalor\", \"arrowdblboth\", \"arrowdblleft\", \"arrowdblup\",\n \"arrowdblright\", \"arrowdbldown\", \"lozenge\", \"angleleft\", \"registersans\",\n \"copyrightsans\", \"trademarksans\", \"summation\", \"parenlefttp\",\n \"parenleftex\", \"parenleftbt\", \"bracketlefttp\", \"bracketleftex\",\n \"bracketleftbt\", \"bracelefttp\", \"braceleftmid\", \"braceleftbt\", \"braceex\",\n \"\", \"angleright\", \"integral\", \"integraltp\", \"integralex\", \"integralbt\",\n \"parenrighttp\", \"parenrightex\", \"parenrightbt\", \"bracketrighttp\",\n \"bracketrightex\", \"bracketrightbt\", \"bracerighttp\", \"bracerightmid\",\n \"bracerightbt\", \"\"];\n\n// prettier-ignore\nconst ZapfDingbatsEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"a1\", \"a2\", \"a202\", \"a3\", \"a4\", \"a5\", \"a119\", \"a118\", \"a117\",\n \"a11\", \"a12\", \"a13\", \"a14\", \"a15\", \"a16\", \"a105\", \"a17\", \"a18\", \"a19\",\n \"a20\", \"a21\", \"a22\", \"a23\", \"a24\", \"a25\", \"a26\", \"a27\", \"a28\", \"a6\", \"a7\",\n \"a8\", \"a9\", \"a10\", \"a29\", \"a30\", \"a31\", \"a32\", \"a33\", \"a34\", \"a35\", \"a36\",\n \"a37\", \"a38\", \"a39\", \"a40\", \"a41\", \"a42\", \"a43\", \"a44\", \"a45\", \"a46\",\n \"a47\", \"a48\", \"a49\", \"a50\", \"a51\", \"a52\", \"a53\", \"a54\", \"a55\", \"a56\",\n \"a57\", \"a58\", \"a59\", \"a60\", \"a61\", \"a62\", \"a63\", \"a64\", \"a65\", \"a66\",\n \"a67\", \"a68\", \"a69\", \"a70\", \"a71\", \"a72\", \"a73\", \"a74\", \"a203\", \"a75\",\n \"a204\", \"a76\", \"a77\", \"a78\", \"a79\", \"a81\", \"a82\", \"a83\", \"a84\", \"a97\",\n \"a98\", \"a99\", \"a100\", \"\", \"a89\", \"a90\", \"a93\", \"a94\", \"a91\", \"a92\", \"a205\",\n \"a85\", \"a206\", \"a86\", \"a87\", \"a88\", \"a95\", \"a96\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"a101\", \"a102\", \"a103\",\n \"a104\", \"a106\", \"a107\", \"a108\", \"a112\", \"a111\", \"a110\", \"a109\", \"a120\",\n \"a121\", \"a122\", \"a123\", \"a124\", \"a125\", \"a126\", \"a127\", \"a128\", \"a129\",\n \"a130\", \"a131\", \"a132\", \"a133\", \"a134\", \"a135\", \"a136\", \"a137\", \"a138\",\n \"a139\", \"a140\", \"a141\", \"a142\", \"a143\", \"a144\", \"a145\", \"a146\", \"a147\",\n \"a148\", \"a149\", \"a150\", \"a151\", \"a152\", \"a153\", \"a154\", \"a155\", \"a156\",\n \"a157\", \"a158\", \"a159\", \"a160\", \"a161\", \"a163\", \"a164\", \"a196\", \"a165\",\n \"a192\", \"a166\", \"a167\", \"a168\", \"a169\", \"a170\", \"a171\", \"a172\", \"a173\",\n \"a162\", \"a174\", \"a175\", \"a176\", \"a177\", \"a178\", \"a179\", \"a193\", \"a180\",\n \"a199\", \"a181\", \"a200\", \"a182\", \"\", \"a201\", \"a183\", \"a184\", \"a197\", \"a185\",\n \"a194\", \"a198\", \"a186\", \"a195\", \"a187\", \"a188\", \"a189\", \"a190\", \"a191\", \"\"];\n\nfunction getEncoding(encodingName) {\n switch (encodingName) {\n case \"WinAnsiEncoding\":\n return WinAnsiEncoding;\n case \"StandardEncoding\":\n return StandardEncoding;\n case \"MacRomanEncoding\":\n return MacRomanEncoding;\n case \"SymbolSetEncoding\":\n return SymbolSetEncoding;\n case \"ZapfDingbatsEncoding\":\n return ZapfDingbatsEncoding;\n case \"ExpertEncoding\":\n return ExpertEncoding;\n case \"MacExpertEncoding\":\n return MacExpertEncoding;\n default:\n return null;\n }\n}\n\nexport {\n ExpertEncoding,\n getEncoding,\n MacRomanEncoding,\n StandardEncoding,\n SymbolSetEncoding,\n WinAnsiEncoding,\n ZapfDingbatsEncoding,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* no-babel-preset */\n\nimport { getArrayLookupTableFactory } from \"./core_utils.js\";\n\nconst getGlyphsUnicode = getArrayLookupTableFactory(function () {\n // prettier-ignore\n return [\n \"A\", 0x0041,\n \"AE\", 0x00c6,\n \"AEacute\", 0x01fc,\n \"AEmacron\", 0x01e2,\n \"AEsmall\", 0xf7e6,\n \"Aacute\", 0x00c1,\n \"Aacutesmall\", 0xf7e1,\n \"Abreve\", 0x0102,\n \"Abreveacute\", 0x1eae,\n \"Abrevecyrillic\", 0x04d0,\n \"Abrevedotbelow\", 0x1eb6,\n \"Abrevegrave\", 0x1eb0,\n \"Abrevehookabove\", 0x1eb2,\n \"Abrevetilde\", 0x1eb4,\n \"Acaron\", 0x01cd,\n \"Acircle\", 0x24b6,\n \"Acircumflex\", 0x00c2,\n \"Acircumflexacute\", 0x1ea4,\n \"Acircumflexdotbelow\", 0x1eac,\n \"Acircumflexgrave\", 0x1ea6,\n \"Acircumflexhookabove\", 0x1ea8,\n \"Acircumflexsmall\", 0xf7e2,\n \"Acircumflextilde\", 0x1eaa,\n \"Acute\", 0xf6c9,\n \"Acutesmall\", 0xf7b4,\n \"Acyrillic\", 0x0410,\n \"Adblgrave\", 0x0200,\n \"Adieresis\", 0x00c4,\n \"Adieresiscyrillic\", 0x04d2,\n \"Adieresismacron\", 0x01de,\n \"Adieresissmall\", 0xf7e4,\n \"Adotbelow\", 0x1ea0,\n \"Adotmacron\", 0x01e0,\n \"Agrave\", 0x00c0,\n \"Agravesmall\", 0xf7e0,\n \"Ahookabove\", 0x1ea2,\n \"Aiecyrillic\", 0x04d4,\n \"Ainvertedbreve\", 0x0202,\n \"Alpha\", 0x0391,\n \"Alphatonos\", 0x0386,\n \"Amacron\", 0x0100,\n \"Amonospace\", 0xff21,\n \"Aogonek\", 0x0104,\n \"Aring\", 0x00c5,\n \"Aringacute\", 0x01fa,\n \"Aringbelow\", 0x1e00,\n \"Aringsmall\", 0xf7e5,\n \"Asmall\", 0xf761,\n \"Atilde\", 0x00c3,\n \"Atildesmall\", 0xf7e3,\n \"Aybarmenian\", 0x0531,\n \"B\", 0x0042,\n \"Bcircle\", 0x24b7,\n \"Bdotaccent\", 0x1e02,\n \"Bdotbelow\", 0x1e04,\n \"Becyrillic\", 0x0411,\n \"Benarmenian\", 0x0532,\n \"Beta\", 0x0392,\n \"Bhook\", 0x0181,\n \"Blinebelow\", 0x1e06,\n \"Bmonospace\", 0xff22,\n \"Brevesmall\", 0xf6f4,\n \"Bsmall\", 0xf762,\n \"Btopbar\", 0x0182,\n \"C\", 0x0043,\n \"Caarmenian\", 0x053e,\n \"Cacute\", 0x0106,\n \"Caron\", 0xf6ca,\n \"Caronsmall\", 0xf6f5,\n \"Ccaron\", 0x010c,\n \"Ccedilla\", 0x00c7,\n \"Ccedillaacute\", 0x1e08,\n \"Ccedillasmall\", 0xf7e7,\n \"Ccircle\", 0x24b8,\n \"Ccircumflex\", 0x0108,\n \"Cdot\", 0x010a,\n \"Cdotaccent\", 0x010a,\n \"Cedillasmall\", 0xf7b8,\n \"Chaarmenian\", 0x0549,\n \"Cheabkhasiancyrillic\", 0x04bc,\n \"Checyrillic\", 0x0427,\n \"Chedescenderabkhasiancyrillic\", 0x04be,\n \"Chedescendercyrillic\", 0x04b6,\n \"Chedieresiscyrillic\", 0x04f4,\n \"Cheharmenian\", 0x0543,\n \"Chekhakassiancyrillic\", 0x04cb,\n \"Cheverticalstrokecyrillic\", 0x04b8,\n \"Chi\", 0x03a7,\n \"Chook\", 0x0187,\n \"Circumflexsmall\", 0xf6f6,\n \"Cmonospace\", 0xff23,\n \"Coarmenian\", 0x0551,\n \"Csmall\", 0xf763,\n \"D\", 0x0044,\n \"DZ\", 0x01f1,\n \"DZcaron\", 0x01c4,\n \"Daarmenian\", 0x0534,\n \"Dafrican\", 0x0189,\n \"Dcaron\", 0x010e,\n \"Dcedilla\", 0x1e10,\n \"Dcircle\", 0x24b9,\n \"Dcircumflexbelow\", 0x1e12,\n \"Dcroat\", 0x0110,\n \"Ddotaccent\", 0x1e0a,\n \"Ddotbelow\", 0x1e0c,\n \"Decyrillic\", 0x0414,\n \"Deicoptic\", 0x03ee,\n \"Delta\", 0x2206,\n \"Deltagreek\", 0x0394,\n \"Dhook\", 0x018a,\n \"Dieresis\", 0xf6cb,\n \"DieresisAcute\", 0xf6cc,\n \"DieresisGrave\", 0xf6cd,\n \"Dieresissmall\", 0xf7a8,\n \"Digammagreek\", 0x03dc,\n \"Djecyrillic\", 0x0402,\n \"Dlinebelow\", 0x1e0e,\n \"Dmonospace\", 0xff24,\n \"Dotaccentsmall\", 0xf6f7,\n \"Dslash\", 0x0110,\n \"Dsmall\", 0xf764,\n \"Dtopbar\", 0x018b,\n \"Dz\", 0x01f2,\n \"Dzcaron\", 0x01c5,\n \"Dzeabkhasiancyrillic\", 0x04e0,\n \"Dzecyrillic\", 0x0405,\n \"Dzhecyrillic\", 0x040f,\n \"E\", 0x0045,\n \"Eacute\", 0x00c9,\n \"Eacutesmall\", 0xf7e9,\n \"Ebreve\", 0x0114,\n \"Ecaron\", 0x011a,\n \"Ecedillabreve\", 0x1e1c,\n \"Echarmenian\", 0x0535,\n \"Ecircle\", 0x24ba,\n \"Ecircumflex\", 0x00ca,\n \"Ecircumflexacute\", 0x1ebe,\n \"Ecircumflexbelow\", 0x1e18,\n \"Ecircumflexdotbelow\", 0x1ec6,\n \"Ecircumflexgrave\", 0x1ec0,\n \"Ecircumflexhookabove\", 0x1ec2,\n \"Ecircumflexsmall\", 0xf7ea,\n \"Ecircumflextilde\", 0x1ec4,\n \"Ecyrillic\", 0x0404,\n \"Edblgrave\", 0x0204,\n \"Edieresis\", 0x00cb,\n \"Edieresissmall\", 0xf7eb,\n \"Edot\", 0x0116,\n \"Edotaccent\", 0x0116,\n \"Edotbelow\", 0x1eb8,\n \"Efcyrillic\", 0x0424,\n \"Egrave\", 0x00c8,\n \"Egravesmall\", 0xf7e8,\n \"Eharmenian\", 0x0537,\n \"Ehookabove\", 0x1eba,\n \"Eightroman\", 0x2167,\n \"Einvertedbreve\", 0x0206,\n \"Eiotifiedcyrillic\", 0x0464,\n \"Elcyrillic\", 0x041b,\n \"Elevenroman\", 0x216a,\n \"Emacron\", 0x0112,\n \"Emacronacute\", 0x1e16,\n \"Emacrongrave\", 0x1e14,\n \"Emcyrillic\", 0x041c,\n \"Emonospace\", 0xff25,\n \"Encyrillic\", 0x041d,\n \"Endescendercyrillic\", 0x04a2,\n \"Eng\", 0x014a,\n \"Enghecyrillic\", 0x04a4,\n \"Enhookcyrillic\", 0x04c7,\n \"Eogonek\", 0x0118,\n \"Eopen\", 0x0190,\n \"Epsilon\", 0x0395,\n \"Epsilontonos\", 0x0388,\n \"Ercyrillic\", 0x0420,\n \"Ereversed\", 0x018e,\n \"Ereversedcyrillic\", 0x042d,\n \"Escyrillic\", 0x0421,\n \"Esdescendercyrillic\", 0x04aa,\n \"Esh\", 0x01a9,\n \"Esmall\", 0xf765,\n \"Eta\", 0x0397,\n \"Etarmenian\", 0x0538,\n \"Etatonos\", 0x0389,\n \"Eth\", 0x00d0,\n \"Ethsmall\", 0xf7f0,\n \"Etilde\", 0x1ebc,\n \"Etildebelow\", 0x1e1a,\n \"Euro\", 0x20ac,\n \"Ezh\", 0x01b7,\n \"Ezhcaron\", 0x01ee,\n \"Ezhreversed\", 0x01b8,\n \"F\", 0x0046,\n \"Fcircle\", 0x24bb,\n \"Fdotaccent\", 0x1e1e,\n \"Feharmenian\", 0x0556,\n \"Feicoptic\", 0x03e4,\n \"Fhook\", 0x0191,\n \"Fitacyrillic\", 0x0472,\n \"Fiveroman\", 0x2164,\n \"Fmonospace\", 0xff26,\n \"Fourroman\", 0x2163,\n \"Fsmall\", 0xf766,\n \"G\", 0x0047,\n \"GBsquare\", 0x3387,\n \"Gacute\", 0x01f4,\n \"Gamma\", 0x0393,\n \"Gammaafrican\", 0x0194,\n \"Gangiacoptic\", 0x03ea,\n \"Gbreve\", 0x011e,\n \"Gcaron\", 0x01e6,\n \"Gcedilla\", 0x0122,\n \"Gcircle\", 0x24bc,\n \"Gcircumflex\", 0x011c,\n \"Gcommaaccent\", 0x0122,\n \"Gdot\", 0x0120,\n \"Gdotaccent\", 0x0120,\n \"Gecyrillic\", 0x0413,\n \"Ghadarmenian\", 0x0542,\n \"Ghemiddlehookcyrillic\", 0x0494,\n \"Ghestrokecyrillic\", 0x0492,\n \"Gheupturncyrillic\", 0x0490,\n \"Ghook\", 0x0193,\n \"Gimarmenian\", 0x0533,\n \"Gjecyrillic\", 0x0403,\n \"Gmacron\", 0x1e20,\n \"Gmonospace\", 0xff27,\n \"Grave\", 0xf6ce,\n \"Gravesmall\", 0xf760,\n \"Gsmall\", 0xf767,\n \"Gsmallhook\", 0x029b,\n \"Gstroke\", 0x01e4,\n \"H\", 0x0048,\n \"H18533\", 0x25cf,\n \"H18543\", 0x25aa,\n \"H18551\", 0x25ab,\n \"H22073\", 0x25a1,\n \"HPsquare\", 0x33cb,\n \"Haabkhasiancyrillic\", 0x04a8,\n \"Hadescendercyrillic\", 0x04b2,\n \"Hardsigncyrillic\", 0x042a,\n \"Hbar\", 0x0126,\n \"Hbrevebelow\", 0x1e2a,\n \"Hcedilla\", 0x1e28,\n \"Hcircle\", 0x24bd,\n \"Hcircumflex\", 0x0124,\n \"Hdieresis\", 0x1e26,\n \"Hdotaccent\", 0x1e22,\n \"Hdotbelow\", 0x1e24,\n \"Hmonospace\", 0xff28,\n \"Hoarmenian\", 0x0540,\n \"Horicoptic\", 0x03e8,\n \"Hsmall\", 0xf768,\n \"Hungarumlaut\", 0xf6cf,\n \"Hungarumlautsmall\", 0xf6f8,\n \"Hzsquare\", 0x3390,\n \"I\", 0x0049,\n \"IAcyrillic\", 0x042f,\n \"IJ\", 0x0132,\n \"IUcyrillic\", 0x042e,\n \"Iacute\", 0x00cd,\n \"Iacutesmall\", 0xf7ed,\n \"Ibreve\", 0x012c,\n \"Icaron\", 0x01cf,\n \"Icircle\", 0x24be,\n \"Icircumflex\", 0x00ce,\n \"Icircumflexsmall\", 0xf7ee,\n \"Icyrillic\", 0x0406,\n \"Idblgrave\", 0x0208,\n \"Idieresis\", 0x00cf,\n \"Idieresisacute\", 0x1e2e,\n \"Idieresiscyrillic\", 0x04e4,\n \"Idieresissmall\", 0xf7ef,\n \"Idot\", 0x0130,\n \"Idotaccent\", 0x0130,\n \"Idotbelow\", 0x1eca,\n \"Iebrevecyrillic\", 0x04d6,\n \"Iecyrillic\", 0x0415,\n \"Ifraktur\", 0x2111,\n \"Igrave\", 0x00cc,\n \"Igravesmall\", 0xf7ec,\n \"Ihookabove\", 0x1ec8,\n \"Iicyrillic\", 0x0418,\n \"Iinvertedbreve\", 0x020a,\n \"Iishortcyrillic\", 0x0419,\n \"Imacron\", 0x012a,\n \"Imacroncyrillic\", 0x04e2,\n \"Imonospace\", 0xff29,\n \"Iniarmenian\", 0x053b,\n \"Iocyrillic\", 0x0401,\n \"Iogonek\", 0x012e,\n \"Iota\", 0x0399,\n \"Iotaafrican\", 0x0196,\n \"Iotadieresis\", 0x03aa,\n \"Iotatonos\", 0x038a,\n \"Ismall\", 0xf769,\n \"Istroke\", 0x0197,\n \"Itilde\", 0x0128,\n \"Itildebelow\", 0x1e2c,\n \"Izhitsacyrillic\", 0x0474,\n \"Izhitsadblgravecyrillic\", 0x0476,\n \"J\", 0x004a,\n \"Jaarmenian\", 0x0541,\n \"Jcircle\", 0x24bf,\n \"Jcircumflex\", 0x0134,\n \"Jecyrillic\", 0x0408,\n \"Jheharmenian\", 0x054b,\n \"Jmonospace\", 0xff2a,\n \"Jsmall\", 0xf76a,\n \"K\", 0x004b,\n \"KBsquare\", 0x3385,\n \"KKsquare\", 0x33cd,\n \"Kabashkircyrillic\", 0x04a0,\n \"Kacute\", 0x1e30,\n \"Kacyrillic\", 0x041a,\n \"Kadescendercyrillic\", 0x049a,\n \"Kahookcyrillic\", 0x04c3,\n \"Kappa\", 0x039a,\n \"Kastrokecyrillic\", 0x049e,\n \"Kaverticalstrokecyrillic\", 0x049c,\n \"Kcaron\", 0x01e8,\n \"Kcedilla\", 0x0136,\n \"Kcircle\", 0x24c0,\n \"Kcommaaccent\", 0x0136,\n \"Kdotbelow\", 0x1e32,\n \"Keharmenian\", 0x0554,\n \"Kenarmenian\", 0x053f,\n \"Khacyrillic\", 0x0425,\n \"Kheicoptic\", 0x03e6,\n \"Khook\", 0x0198,\n \"Kjecyrillic\", 0x040c,\n \"Klinebelow\", 0x1e34,\n \"Kmonospace\", 0xff2b,\n \"Koppacyrillic\", 0x0480,\n \"Koppagreek\", 0x03de,\n \"Ksicyrillic\", 0x046e,\n \"Ksmall\", 0xf76b,\n \"L\", 0x004c,\n \"LJ\", 0x01c7,\n \"LL\", 0xf6bf,\n \"Lacute\", 0x0139,\n \"Lambda\", 0x039b,\n \"Lcaron\", 0x013d,\n \"Lcedilla\", 0x013b,\n \"Lcircle\", 0x24c1,\n \"Lcircumflexbelow\", 0x1e3c,\n \"Lcommaaccent\", 0x013b,\n \"Ldot\", 0x013f,\n \"Ldotaccent\", 0x013f,\n \"Ldotbelow\", 0x1e36,\n \"Ldotbelowmacron\", 0x1e38,\n \"Liwnarmenian\", 0x053c,\n \"Lj\", 0x01c8,\n \"Ljecyrillic\", 0x0409,\n \"Llinebelow\", 0x1e3a,\n \"Lmonospace\", 0xff2c,\n \"Lslash\", 0x0141,\n \"Lslashsmall\", 0xf6f9,\n \"Lsmall\", 0xf76c,\n \"M\", 0x004d,\n \"MBsquare\", 0x3386,\n \"Macron\", 0xf6d0,\n \"Macronsmall\", 0xf7af,\n \"Macute\", 0x1e3e,\n \"Mcircle\", 0x24c2,\n \"Mdotaccent\", 0x1e40,\n \"Mdotbelow\", 0x1e42,\n \"Menarmenian\", 0x0544,\n \"Mmonospace\", 0xff2d,\n \"Msmall\", 0xf76d,\n \"Mturned\", 0x019c,\n \"Mu\", 0x039c,\n \"N\", 0x004e,\n \"NJ\", 0x01ca,\n \"Nacute\", 0x0143,\n \"Ncaron\", 0x0147,\n \"Ncedilla\", 0x0145,\n \"Ncircle\", 0x24c3,\n \"Ncircumflexbelow\", 0x1e4a,\n \"Ncommaaccent\", 0x0145,\n \"Ndotaccent\", 0x1e44,\n \"Ndotbelow\", 0x1e46,\n \"Nhookleft\", 0x019d,\n \"Nineroman\", 0x2168,\n \"Nj\", 0x01cb,\n \"Njecyrillic\", 0x040a,\n \"Nlinebelow\", 0x1e48,\n \"Nmonospace\", 0xff2e,\n \"Nowarmenian\", 0x0546,\n \"Nsmall\", 0xf76e,\n \"Ntilde\", 0x00d1,\n \"Ntildesmall\", 0xf7f1,\n \"Nu\", 0x039d,\n \"O\", 0x004f,\n \"OE\", 0x0152,\n \"OEsmall\", 0xf6fa,\n \"Oacute\", 0x00d3,\n \"Oacutesmall\", 0xf7f3,\n \"Obarredcyrillic\", 0x04e8,\n \"Obarreddieresiscyrillic\", 0x04ea,\n \"Obreve\", 0x014e,\n \"Ocaron\", 0x01d1,\n \"Ocenteredtilde\", 0x019f,\n \"Ocircle\", 0x24c4,\n \"Ocircumflex\", 0x00d4,\n \"Ocircumflexacute\", 0x1ed0,\n \"Ocircumflexdotbelow\", 0x1ed8,\n \"Ocircumflexgrave\", 0x1ed2,\n \"Ocircumflexhookabove\", 0x1ed4,\n \"Ocircumflexsmall\", 0xf7f4,\n \"Ocircumflextilde\", 0x1ed6,\n \"Ocyrillic\", 0x041e,\n \"Odblacute\", 0x0150,\n \"Odblgrave\", 0x020c,\n \"Odieresis\", 0x00d6,\n \"Odieresiscyrillic\", 0x04e6,\n \"Odieresissmall\", 0xf7f6,\n \"Odotbelow\", 0x1ecc,\n \"Ogoneksmall\", 0xf6fb,\n \"Ograve\", 0x00d2,\n \"Ogravesmall\", 0xf7f2,\n \"Oharmenian\", 0x0555,\n \"Ohm\", 0x2126,\n \"Ohookabove\", 0x1ece,\n \"Ohorn\", 0x01a0,\n \"Ohornacute\", 0x1eda,\n \"Ohorndotbelow\", 0x1ee2,\n \"Ohorngrave\", 0x1edc,\n \"Ohornhookabove\", 0x1ede,\n \"Ohorntilde\", 0x1ee0,\n \"Ohungarumlaut\", 0x0150,\n \"Oi\", 0x01a2,\n \"Oinvertedbreve\", 0x020e,\n \"Omacron\", 0x014c,\n \"Omacronacute\", 0x1e52,\n \"Omacrongrave\", 0x1e50,\n \"Omega\", 0x2126,\n \"Omegacyrillic\", 0x0460,\n \"Omegagreek\", 0x03a9,\n \"Omegaroundcyrillic\", 0x047a,\n \"Omegatitlocyrillic\", 0x047c,\n \"Omegatonos\", 0x038f,\n \"Omicron\", 0x039f,\n \"Omicrontonos\", 0x038c,\n \"Omonospace\", 0xff2f,\n \"Oneroman\", 0x2160,\n \"Oogonek\", 0x01ea,\n \"Oogonekmacron\", 0x01ec,\n \"Oopen\", 0x0186,\n \"Oslash\", 0x00d8,\n \"Oslashacute\", 0x01fe,\n \"Oslashsmall\", 0xf7f8,\n \"Osmall\", 0xf76f,\n \"Ostrokeacute\", 0x01fe,\n \"Otcyrillic\", 0x047e,\n \"Otilde\", 0x00d5,\n \"Otildeacute\", 0x1e4c,\n \"Otildedieresis\", 0x1e4e,\n \"Otildesmall\", 0xf7f5,\n \"P\", 0x0050,\n \"Pacute\", 0x1e54,\n \"Pcircle\", 0x24c5,\n \"Pdotaccent\", 0x1e56,\n \"Pecyrillic\", 0x041f,\n \"Peharmenian\", 0x054a,\n \"Pemiddlehookcyrillic\", 0x04a6,\n \"Phi\", 0x03a6,\n \"Phook\", 0x01a4,\n \"Pi\", 0x03a0,\n \"Piwrarmenian\", 0x0553,\n \"Pmonospace\", 0xff30,\n \"Psi\", 0x03a8,\n \"Psicyrillic\", 0x0470,\n \"Psmall\", 0xf770,\n \"Q\", 0x0051,\n \"Qcircle\", 0x24c6,\n \"Qmonospace\", 0xff31,\n \"Qsmall\", 0xf771,\n \"R\", 0x0052,\n \"Raarmenian\", 0x054c,\n \"Racute\", 0x0154,\n \"Rcaron\", 0x0158,\n \"Rcedilla\", 0x0156,\n \"Rcircle\", 0x24c7,\n \"Rcommaaccent\", 0x0156,\n \"Rdblgrave\", 0x0210,\n \"Rdotaccent\", 0x1e58,\n \"Rdotbelow\", 0x1e5a,\n \"Rdotbelowmacron\", 0x1e5c,\n \"Reharmenian\", 0x0550,\n \"Rfraktur\", 0x211c,\n \"Rho\", 0x03a1,\n \"Ringsmall\", 0xf6fc,\n \"Rinvertedbreve\", 0x0212,\n \"Rlinebelow\", 0x1e5e,\n \"Rmonospace\", 0xff32,\n \"Rsmall\", 0xf772,\n \"Rsmallinverted\", 0x0281,\n \"Rsmallinvertedsuperior\", 0x02b6,\n \"S\", 0x0053,\n \"SF010000\", 0x250c,\n \"SF020000\", 0x2514,\n \"SF030000\", 0x2510,\n \"SF040000\", 0x2518,\n \"SF050000\", 0x253c,\n \"SF060000\", 0x252c,\n \"SF070000\", 0x2534,\n \"SF080000\", 0x251c,\n \"SF090000\", 0x2524,\n \"SF100000\", 0x2500,\n \"SF110000\", 0x2502,\n \"SF190000\", 0x2561,\n \"SF200000\", 0x2562,\n \"SF210000\", 0x2556,\n \"SF220000\", 0x2555,\n \"SF230000\", 0x2563,\n \"SF240000\", 0x2551,\n \"SF250000\", 0x2557,\n \"SF260000\", 0x255d,\n \"SF270000\", 0x255c,\n \"SF280000\", 0x255b,\n \"SF360000\", 0x255e,\n \"SF370000\", 0x255f,\n \"SF380000\", 0x255a,\n \"SF390000\", 0x2554,\n \"SF400000\", 0x2569,\n \"SF410000\", 0x2566,\n \"SF420000\", 0x2560,\n \"SF430000\", 0x2550,\n \"SF440000\", 0x256c,\n \"SF450000\", 0x2567,\n \"SF460000\", 0x2568,\n \"SF470000\", 0x2564,\n \"SF480000\", 0x2565,\n \"SF490000\", 0x2559,\n \"SF500000\", 0x2558,\n \"SF510000\", 0x2552,\n \"SF520000\", 0x2553,\n \"SF530000\", 0x256b,\n \"SF540000\", 0x256a,\n \"Sacute\", 0x015a,\n \"Sacutedotaccent\", 0x1e64,\n \"Sampigreek\", 0x03e0,\n \"Scaron\", 0x0160,\n \"Scarondotaccent\", 0x1e66,\n \"Scaronsmall\", 0xf6fd,\n \"Scedilla\", 0x015e,\n \"Schwa\", 0x018f,\n \"Schwacyrillic\", 0x04d8,\n \"Schwadieresiscyrillic\", 0x04da,\n \"Scircle\", 0x24c8,\n \"Scircumflex\", 0x015c,\n \"Scommaaccent\", 0x0218,\n \"Sdotaccent\", 0x1e60,\n \"Sdotbelow\", 0x1e62,\n \"Sdotbelowdotaccent\", 0x1e68,\n \"Seharmenian\", 0x054d,\n \"Sevenroman\", 0x2166,\n \"Shaarmenian\", 0x0547,\n \"Shacyrillic\", 0x0428,\n \"Shchacyrillic\", 0x0429,\n \"Sheicoptic\", 0x03e2,\n \"Shhacyrillic\", 0x04ba,\n \"Shimacoptic\", 0x03ec,\n \"Sigma\", 0x03a3,\n \"Sixroman\", 0x2165,\n \"Smonospace\", 0xff33,\n \"Softsigncyrillic\", 0x042c,\n \"Ssmall\", 0xf773,\n \"Stigmagreek\", 0x03da,\n \"T\", 0x0054,\n \"Tau\", 0x03a4,\n \"Tbar\", 0x0166,\n \"Tcaron\", 0x0164,\n \"Tcedilla\", 0x0162,\n \"Tcircle\", 0x24c9,\n \"Tcircumflexbelow\", 0x1e70,\n \"Tcommaaccent\", 0x0162,\n \"Tdotaccent\", 0x1e6a,\n \"Tdotbelow\", 0x1e6c,\n \"Tecyrillic\", 0x0422,\n \"Tedescendercyrillic\", 0x04ac,\n \"Tenroman\", 0x2169,\n \"Tetsecyrillic\", 0x04b4,\n \"Theta\", 0x0398,\n \"Thook\", 0x01ac,\n \"Thorn\", 0x00de,\n \"Thornsmall\", 0xf7fe,\n \"Threeroman\", 0x2162,\n \"Tildesmall\", 0xf6fe,\n \"Tiwnarmenian\", 0x054f,\n \"Tlinebelow\", 0x1e6e,\n \"Tmonospace\", 0xff34,\n \"Toarmenian\", 0x0539,\n \"Tonefive\", 0x01bc,\n \"Tonesix\", 0x0184,\n \"Tonetwo\", 0x01a7,\n \"Tretroflexhook\", 0x01ae,\n \"Tsecyrillic\", 0x0426,\n \"Tshecyrillic\", 0x040b,\n \"Tsmall\", 0xf774,\n \"Twelveroman\", 0x216b,\n \"Tworoman\", 0x2161,\n \"U\", 0x0055,\n \"Uacute\", 0x00da,\n \"Uacutesmall\", 0xf7fa,\n \"Ubreve\", 0x016c,\n \"Ucaron\", 0x01d3,\n \"Ucircle\", 0x24ca,\n \"Ucircumflex\", 0x00db,\n \"Ucircumflexbelow\", 0x1e76,\n \"Ucircumflexsmall\", 0xf7fb,\n \"Ucyrillic\", 0x0423,\n \"Udblacute\", 0x0170,\n \"Udblgrave\", 0x0214,\n \"Udieresis\", 0x00dc,\n \"Udieresisacute\", 0x01d7,\n \"Udieresisbelow\", 0x1e72,\n \"Udieresiscaron\", 0x01d9,\n \"Udieresiscyrillic\", 0x04f0,\n \"Udieresisgrave\", 0x01db,\n \"Udieresismacron\", 0x01d5,\n \"Udieresissmall\", 0xf7fc,\n \"Udotbelow\", 0x1ee4,\n \"Ugrave\", 0x00d9,\n \"Ugravesmall\", 0xf7f9,\n \"Uhookabove\", 0x1ee6,\n \"Uhorn\", 0x01af,\n \"Uhornacute\", 0x1ee8,\n \"Uhorndotbelow\", 0x1ef0,\n \"Uhorngrave\", 0x1eea,\n \"Uhornhookabove\", 0x1eec,\n \"Uhorntilde\", 0x1eee,\n \"Uhungarumlaut\", 0x0170,\n \"Uhungarumlautcyrillic\", 0x04f2,\n \"Uinvertedbreve\", 0x0216,\n \"Ukcyrillic\", 0x0478,\n \"Umacron\", 0x016a,\n \"Umacroncyrillic\", 0x04ee,\n \"Umacrondieresis\", 0x1e7a,\n \"Umonospace\", 0xff35,\n \"Uogonek\", 0x0172,\n \"Upsilon\", 0x03a5,\n \"Upsilon1\", 0x03d2,\n \"Upsilonacutehooksymbolgreek\", 0x03d3,\n \"Upsilonafrican\", 0x01b1,\n \"Upsilondieresis\", 0x03ab,\n \"Upsilondieresishooksymbolgreek\", 0x03d4,\n \"Upsilonhooksymbol\", 0x03d2,\n \"Upsilontonos\", 0x038e,\n \"Uring\", 0x016e,\n \"Ushortcyrillic\", 0x040e,\n \"Usmall\", 0xf775,\n \"Ustraightcyrillic\", 0x04ae,\n \"Ustraightstrokecyrillic\", 0x04b0,\n \"Utilde\", 0x0168,\n \"Utildeacute\", 0x1e78,\n \"Utildebelow\", 0x1e74,\n \"V\", 0x0056,\n \"Vcircle\", 0x24cb,\n \"Vdotbelow\", 0x1e7e,\n \"Vecyrillic\", 0x0412,\n \"Vewarmenian\", 0x054e,\n \"Vhook\", 0x01b2,\n \"Vmonospace\", 0xff36,\n \"Voarmenian\", 0x0548,\n \"Vsmall\", 0xf776,\n \"Vtilde\", 0x1e7c,\n \"W\", 0x0057,\n \"Wacute\", 0x1e82,\n \"Wcircle\", 0x24cc,\n \"Wcircumflex\", 0x0174,\n \"Wdieresis\", 0x1e84,\n \"Wdotaccent\", 0x1e86,\n \"Wdotbelow\", 0x1e88,\n \"Wgrave\", 0x1e80,\n \"Wmonospace\", 0xff37,\n \"Wsmall\", 0xf777,\n \"X\", 0x0058,\n \"Xcircle\", 0x24cd,\n \"Xdieresis\", 0x1e8c,\n \"Xdotaccent\", 0x1e8a,\n \"Xeharmenian\", 0x053d,\n \"Xi\", 0x039e,\n \"Xmonospace\", 0xff38,\n \"Xsmall\", 0xf778,\n \"Y\", 0x0059,\n \"Yacute\", 0x00dd,\n \"Yacutesmall\", 0xf7fd,\n \"Yatcyrillic\", 0x0462,\n \"Ycircle\", 0x24ce,\n \"Ycircumflex\", 0x0176,\n \"Ydieresis\", 0x0178,\n \"Ydieresissmall\", 0xf7ff,\n \"Ydotaccent\", 0x1e8e,\n \"Ydotbelow\", 0x1ef4,\n \"Yericyrillic\", 0x042b,\n \"Yerudieresiscyrillic\", 0x04f8,\n \"Ygrave\", 0x1ef2,\n \"Yhook\", 0x01b3,\n \"Yhookabove\", 0x1ef6,\n \"Yiarmenian\", 0x0545,\n \"Yicyrillic\", 0x0407,\n \"Yiwnarmenian\", 0x0552,\n \"Ymonospace\", 0xff39,\n \"Ysmall\", 0xf779,\n \"Ytilde\", 0x1ef8,\n \"Yusbigcyrillic\", 0x046a,\n \"Yusbigiotifiedcyrillic\", 0x046c,\n \"Yuslittlecyrillic\", 0x0466,\n \"Yuslittleiotifiedcyrillic\", 0x0468,\n \"Z\", 0x005a,\n \"Zaarmenian\", 0x0536,\n \"Zacute\", 0x0179,\n \"Zcaron\", 0x017d,\n \"Zcaronsmall\", 0xf6ff,\n \"Zcircle\", 0x24cf,\n \"Zcircumflex\", 0x1e90,\n \"Zdot\", 0x017b,\n \"Zdotaccent\", 0x017b,\n \"Zdotbelow\", 0x1e92,\n \"Zecyrillic\", 0x0417,\n \"Zedescendercyrillic\", 0x0498,\n \"Zedieresiscyrillic\", 0x04de,\n \"Zeta\", 0x0396,\n \"Zhearmenian\", 0x053a,\n \"Zhebrevecyrillic\", 0x04c1,\n \"Zhecyrillic\", 0x0416,\n \"Zhedescendercyrillic\", 0x0496,\n \"Zhedieresiscyrillic\", 0x04dc,\n \"Zlinebelow\", 0x1e94,\n \"Zmonospace\", 0xff3a,\n \"Zsmall\", 0xf77a,\n \"Zstroke\", 0x01b5,\n \"a\", 0x0061,\n \"aabengali\", 0x0986,\n \"aacute\", 0x00e1,\n \"aadeva\", 0x0906,\n \"aagujarati\", 0x0a86,\n \"aagurmukhi\", 0x0a06,\n \"aamatragurmukhi\", 0x0a3e,\n \"aarusquare\", 0x3303,\n \"aavowelsignbengali\", 0x09be,\n \"aavowelsigndeva\", 0x093e,\n \"aavowelsigngujarati\", 0x0abe,\n \"abbreviationmarkarmenian\", 0x055f,\n \"abbreviationsigndeva\", 0x0970,\n \"abengali\", 0x0985,\n \"abopomofo\", 0x311a,\n \"abreve\", 0x0103,\n \"abreveacute\", 0x1eaf,\n \"abrevecyrillic\", 0x04d1,\n \"abrevedotbelow\", 0x1eb7,\n \"abrevegrave\", 0x1eb1,\n \"abrevehookabove\", 0x1eb3,\n \"abrevetilde\", 0x1eb5,\n \"acaron\", 0x01ce,\n \"acircle\", 0x24d0,\n \"acircumflex\", 0x00e2,\n \"acircumflexacute\", 0x1ea5,\n \"acircumflexdotbelow\", 0x1ead,\n \"acircumflexgrave\", 0x1ea7,\n \"acircumflexhookabove\", 0x1ea9,\n \"acircumflextilde\", 0x1eab,\n \"acute\", 0x00b4,\n \"acutebelowcmb\", 0x0317,\n \"acutecmb\", 0x0301,\n \"acutecomb\", 0x0301,\n \"acutedeva\", 0x0954,\n \"acutelowmod\", 0x02cf,\n \"acutetonecmb\", 0x0341,\n \"acyrillic\", 0x0430,\n \"adblgrave\", 0x0201,\n \"addakgurmukhi\", 0x0a71,\n \"adeva\", 0x0905,\n \"adieresis\", 0x00e4,\n \"adieresiscyrillic\", 0x04d3,\n \"adieresismacron\", 0x01df,\n \"adotbelow\", 0x1ea1,\n \"adotmacron\", 0x01e1,\n \"ae\", 0x00e6,\n \"aeacute\", 0x01fd,\n \"aekorean\", 0x3150,\n \"aemacron\", 0x01e3,\n \"afii00208\", 0x2015,\n \"afii08941\", 0x20a4,\n \"afii10017\", 0x0410,\n \"afii10018\", 0x0411,\n \"afii10019\", 0x0412,\n \"afii10020\", 0x0413,\n \"afii10021\", 0x0414,\n \"afii10022\", 0x0415,\n \"afii10023\", 0x0401,\n \"afii10024\", 0x0416,\n \"afii10025\", 0x0417,\n \"afii10026\", 0x0418,\n \"afii10027\", 0x0419,\n \"afii10028\", 0x041a,\n \"afii10029\", 0x041b,\n \"afii10030\", 0x041c,\n \"afii10031\", 0x041d,\n \"afii10032\", 0x041e,\n \"afii10033\", 0x041f,\n \"afii10034\", 0x0420,\n \"afii10035\", 0x0421,\n \"afii10036\", 0x0422,\n \"afii10037\", 0x0423,\n \"afii10038\", 0x0424,\n \"afii10039\", 0x0425,\n \"afii10040\", 0x0426,\n \"afii10041\", 0x0427,\n \"afii10042\", 0x0428,\n \"afii10043\", 0x0429,\n \"afii10044\", 0x042a,\n \"afii10045\", 0x042b,\n \"afii10046\", 0x042c,\n \"afii10047\", 0x042d,\n \"afii10048\", 0x042e,\n \"afii10049\", 0x042f,\n \"afii10050\", 0x0490,\n \"afii10051\", 0x0402,\n \"afii10052\", 0x0403,\n \"afii10053\", 0x0404,\n \"afii10054\", 0x0405,\n \"afii10055\", 0x0406,\n \"afii10056\", 0x0407,\n \"afii10057\", 0x0408,\n \"afii10058\", 0x0409,\n \"afii10059\", 0x040a,\n \"afii10060\", 0x040b,\n \"afii10061\", 0x040c,\n \"afii10062\", 0x040e,\n \"afii10063\", 0xf6c4,\n \"afii10064\", 0xf6c5,\n \"afii10065\", 0x0430,\n \"afii10066\", 0x0431,\n \"afii10067\", 0x0432,\n \"afii10068\", 0x0433,\n \"afii10069\", 0x0434,\n \"afii10070\", 0x0435,\n \"afii10071\", 0x0451,\n \"afii10072\", 0x0436,\n \"afii10073\", 0x0437,\n \"afii10074\", 0x0438,\n \"afii10075\", 0x0439,\n \"afii10076\", 0x043a,\n \"afii10077\", 0x043b,\n \"afii10078\", 0x043c,\n \"afii10079\", 0x043d,\n \"afii10080\", 0x043e,\n \"afii10081\", 0x043f,\n \"afii10082\", 0x0440,\n \"afii10083\", 0x0441,\n \"afii10084\", 0x0442,\n \"afii10085\", 0x0443,\n \"afii10086\", 0x0444,\n \"afii10087\", 0x0445,\n \"afii10088\", 0x0446,\n \"afii10089\", 0x0447,\n \"afii10090\", 0x0448,\n \"afii10091\", 0x0449,\n \"afii10092\", 0x044a,\n \"afii10093\", 0x044b,\n \"afii10094\", 0x044c,\n \"afii10095\", 0x044d,\n \"afii10096\", 0x044e,\n \"afii10097\", 0x044f,\n \"afii10098\", 0x0491,\n \"afii10099\", 0x0452,\n \"afii10100\", 0x0453,\n \"afii10101\", 0x0454,\n \"afii10102\", 0x0455,\n \"afii10103\", 0x0456,\n \"afii10104\", 0x0457,\n \"afii10105\", 0x0458,\n \"afii10106\", 0x0459,\n \"afii10107\", 0x045a,\n \"afii10108\", 0x045b,\n \"afii10109\", 0x045c,\n \"afii10110\", 0x045e,\n \"afii10145\", 0x040f,\n \"afii10146\", 0x0462,\n \"afii10147\", 0x0472,\n \"afii10148\", 0x0474,\n \"afii10192\", 0xf6c6,\n \"afii10193\", 0x045f,\n \"afii10194\", 0x0463,\n \"afii10195\", 0x0473,\n \"afii10196\", 0x0475,\n \"afii10831\", 0xf6c7,\n \"afii10832\", 0xf6c8,\n \"afii10846\", 0x04d9,\n \"afii299\", 0x200e,\n \"afii300\", 0x200f,\n \"afii301\", 0x200d,\n \"afii57381\", 0x066a,\n \"afii57388\", 0x060c,\n \"afii57392\", 0x0660,\n \"afii57393\", 0x0661,\n \"afii57394\", 0x0662,\n \"afii57395\", 0x0663,\n \"afii57396\", 0x0664,\n \"afii57397\", 0x0665,\n \"afii57398\", 0x0666,\n \"afii57399\", 0x0667,\n \"afii57400\", 0x0668,\n \"afii57401\", 0x0669,\n \"afii57403\", 0x061b,\n \"afii57407\", 0x061f,\n \"afii57409\", 0x0621,\n \"afii57410\", 0x0622,\n \"afii57411\", 0x0623,\n \"afii57412\", 0x0624,\n \"afii57413\", 0x0625,\n \"afii57414\", 0x0626,\n \"afii57415\", 0x0627,\n \"afii57416\", 0x0628,\n \"afii57417\", 0x0629,\n \"afii57418\", 0x062a,\n \"afii57419\", 0x062b,\n \"afii57420\", 0x062c,\n \"afii57421\", 0x062d,\n \"afii57422\", 0x062e,\n \"afii57423\", 0x062f,\n \"afii57424\", 0x0630,\n \"afii57425\", 0x0631,\n \"afii57426\", 0x0632,\n \"afii57427\", 0x0633,\n \"afii57428\", 0x0634,\n \"afii57429\", 0x0635,\n \"afii57430\", 0x0636,\n \"afii57431\", 0x0637,\n \"afii57432\", 0x0638,\n \"afii57433\", 0x0639,\n \"afii57434\", 0x063a,\n \"afii57440\", 0x0640,\n \"afii57441\", 0x0641,\n \"afii57442\", 0x0642,\n \"afii57443\", 0x0643,\n \"afii57444\", 0x0644,\n \"afii57445\", 0x0645,\n \"afii57446\", 0x0646,\n \"afii57448\", 0x0648,\n \"afii57449\", 0x0649,\n \"afii57450\", 0x064a,\n \"afii57451\", 0x064b,\n \"afii57452\", 0x064c,\n \"afii57453\", 0x064d,\n \"afii57454\", 0x064e,\n \"afii57455\", 0x064f,\n \"afii57456\", 0x0650,\n \"afii57457\", 0x0651,\n \"afii57458\", 0x0652,\n \"afii57470\", 0x0647,\n \"afii57505\", 0x06a4,\n \"afii57506\", 0x067e,\n \"afii57507\", 0x0686,\n \"afii57508\", 0x0698,\n \"afii57509\", 0x06af,\n \"afii57511\", 0x0679,\n \"afii57512\", 0x0688,\n \"afii57513\", 0x0691,\n \"afii57514\", 0x06ba,\n \"afii57519\", 0x06d2,\n \"afii57534\", 0x06d5,\n \"afii57636\", 0x20aa,\n \"afii57645\", 0x05be,\n \"afii57658\", 0x05c3,\n \"afii57664\", 0x05d0,\n \"afii57665\", 0x05d1,\n \"afii57666\", 0x05d2,\n \"afii57667\", 0x05d3,\n \"afii57668\", 0x05d4,\n \"afii57669\", 0x05d5,\n \"afii57670\", 0x05d6,\n \"afii57671\", 0x05d7,\n \"afii57672\", 0x05d8,\n \"afii57673\", 0x05d9,\n \"afii57674\", 0x05da,\n \"afii57675\", 0x05db,\n \"afii57676\", 0x05dc,\n \"afii57677\", 0x05dd,\n \"afii57678\", 0x05de,\n \"afii57679\", 0x05df,\n \"afii57680\", 0x05e0,\n \"afii57681\", 0x05e1,\n \"afii57682\", 0x05e2,\n \"afii57683\", 0x05e3,\n \"afii57684\", 0x05e4,\n \"afii57685\", 0x05e5,\n \"afii57686\", 0x05e6,\n \"afii57687\", 0x05e7,\n \"afii57688\", 0x05e8,\n \"afii57689\", 0x05e9,\n \"afii57690\", 0x05ea,\n \"afii57694\", 0xfb2a,\n \"afii57695\", 0xfb2b,\n \"afii57700\", 0xfb4b,\n \"afii57705\", 0xfb1f,\n \"afii57716\", 0x05f0,\n \"afii57717\", 0x05f1,\n \"afii57718\", 0x05f2,\n \"afii57723\", 0xfb35,\n \"afii57793\", 0x05b4,\n \"afii57794\", 0x05b5,\n \"afii57795\", 0x05b6,\n \"afii57796\", 0x05bb,\n \"afii57797\", 0x05b8,\n \"afii57798\", 0x05b7,\n \"afii57799\", 0x05b0,\n \"afii57800\", 0x05b2,\n \"afii57801\", 0x05b1,\n \"afii57802\", 0x05b3,\n \"afii57803\", 0x05c2,\n \"afii57804\", 0x05c1,\n \"afii57806\", 0x05b9,\n \"afii57807\", 0x05bc,\n \"afii57839\", 0x05bd,\n \"afii57841\", 0x05bf,\n \"afii57842\", 0x05c0,\n \"afii57929\", 0x02bc,\n \"afii61248\", 0x2105,\n \"afii61289\", 0x2113,\n \"afii61352\", 0x2116,\n \"afii61573\", 0x202c,\n \"afii61574\", 0x202d,\n \"afii61575\", 0x202e,\n \"afii61664\", 0x200c,\n \"afii63167\", 0x066d,\n \"afii64937\", 0x02bd,\n \"agrave\", 0x00e0,\n \"agujarati\", 0x0a85,\n \"agurmukhi\", 0x0a05,\n \"ahiragana\", 0x3042,\n \"ahookabove\", 0x1ea3,\n \"aibengali\", 0x0990,\n \"aibopomofo\", 0x311e,\n \"aideva\", 0x0910,\n \"aiecyrillic\", 0x04d5,\n \"aigujarati\", 0x0a90,\n \"aigurmukhi\", 0x0a10,\n \"aimatragurmukhi\", 0x0a48,\n \"ainarabic\", 0x0639,\n \"ainfinalarabic\", 0xfeca,\n \"aininitialarabic\", 0xfecb,\n \"ainmedialarabic\", 0xfecc,\n \"ainvertedbreve\", 0x0203,\n \"aivowelsignbengali\", 0x09c8,\n \"aivowelsigndeva\", 0x0948,\n \"aivowelsigngujarati\", 0x0ac8,\n \"akatakana\", 0x30a2,\n \"akatakanahalfwidth\", 0xff71,\n \"akorean\", 0x314f,\n \"alef\", 0x05d0,\n \"alefarabic\", 0x0627,\n \"alefdageshhebrew\", 0xfb30,\n \"aleffinalarabic\", 0xfe8e,\n \"alefhamzaabovearabic\", 0x0623,\n \"alefhamzaabovefinalarabic\", 0xfe84,\n \"alefhamzabelowarabic\", 0x0625,\n \"alefhamzabelowfinalarabic\", 0xfe88,\n \"alefhebrew\", 0x05d0,\n \"aleflamedhebrew\", 0xfb4f,\n \"alefmaddaabovearabic\", 0x0622,\n \"alefmaddaabovefinalarabic\", 0xfe82,\n \"alefmaksuraarabic\", 0x0649,\n \"alefmaksurafinalarabic\", 0xfef0,\n \"alefmaksurainitialarabic\", 0xfef3,\n \"alefmaksuramedialarabic\", 0xfef4,\n \"alefpatahhebrew\", 0xfb2e,\n \"alefqamatshebrew\", 0xfb2f,\n \"aleph\", 0x2135,\n \"allequal\", 0x224c,\n \"alpha\", 0x03b1,\n \"alphatonos\", 0x03ac,\n \"amacron\", 0x0101,\n \"amonospace\", 0xff41,\n \"ampersand\", 0x0026,\n \"ampersandmonospace\", 0xff06,\n \"ampersandsmall\", 0xf726,\n \"amsquare\", 0x33c2,\n \"anbopomofo\", 0x3122,\n \"angbopomofo\", 0x3124,\n \"angbracketleft\", 0x3008, // Glyph is missing from Adobe's original list.\n \"angbracketright\", 0x3009, // Glyph is missing from Adobe's original list.\n \"angkhankhuthai\", 0x0e5a,\n \"angle\", 0x2220,\n \"anglebracketleft\", 0x3008,\n \"anglebracketleftvertical\", 0xfe3f,\n \"anglebracketright\", 0x3009,\n \"anglebracketrightvertical\", 0xfe40,\n \"angleleft\", 0x2329,\n \"angleright\", 0x232a,\n \"angstrom\", 0x212b,\n \"anoteleia\", 0x0387,\n \"anudattadeva\", 0x0952,\n \"anusvarabengali\", 0x0982,\n \"anusvaradeva\", 0x0902,\n \"anusvaragujarati\", 0x0a82,\n \"aogonek\", 0x0105,\n \"apaatosquare\", 0x3300,\n \"aparen\", 0x249c,\n \"apostrophearmenian\", 0x055a,\n \"apostrophemod\", 0x02bc,\n \"apple\", 0xf8ff,\n \"approaches\", 0x2250,\n \"approxequal\", 0x2248,\n \"approxequalorimage\", 0x2252,\n \"approximatelyequal\", 0x2245,\n \"araeaekorean\", 0x318e,\n \"araeakorean\", 0x318d,\n \"arc\", 0x2312,\n \"arighthalfring\", 0x1e9a,\n \"aring\", 0x00e5,\n \"aringacute\", 0x01fb,\n \"aringbelow\", 0x1e01,\n \"arrowboth\", 0x2194,\n \"arrowdashdown\", 0x21e3,\n \"arrowdashleft\", 0x21e0,\n \"arrowdashright\", 0x21e2,\n \"arrowdashup\", 0x21e1,\n \"arrowdblboth\", 0x21d4,\n \"arrowdbldown\", 0x21d3,\n \"arrowdblleft\", 0x21d0,\n \"arrowdblright\", 0x21d2,\n \"arrowdblup\", 0x21d1,\n \"arrowdown\", 0x2193,\n \"arrowdownleft\", 0x2199,\n \"arrowdownright\", 0x2198,\n \"arrowdownwhite\", 0x21e9,\n \"arrowheaddownmod\", 0x02c5,\n \"arrowheadleftmod\", 0x02c2,\n \"arrowheadrightmod\", 0x02c3,\n \"arrowheadupmod\", 0x02c4,\n \"arrowhorizex\", 0xf8e7,\n \"arrowleft\", 0x2190,\n \"arrowleftdbl\", 0x21d0,\n \"arrowleftdblstroke\", 0x21cd,\n \"arrowleftoverright\", 0x21c6,\n \"arrowleftwhite\", 0x21e6,\n \"arrowright\", 0x2192,\n \"arrowrightdblstroke\", 0x21cf,\n \"arrowrightheavy\", 0x279e,\n \"arrowrightoverleft\", 0x21c4,\n \"arrowrightwhite\", 0x21e8,\n \"arrowtableft\", 0x21e4,\n \"arrowtabright\", 0x21e5,\n \"arrowup\", 0x2191,\n \"arrowupdn\", 0x2195,\n \"arrowupdnbse\", 0x21a8,\n \"arrowupdownbase\", 0x21a8,\n \"arrowupleft\", 0x2196,\n \"arrowupleftofdown\", 0x21c5,\n \"arrowupright\", 0x2197,\n \"arrowupwhite\", 0x21e7,\n \"arrowvertex\", 0xf8e6,\n \"asciicircum\", 0x005e,\n \"asciicircummonospace\", 0xff3e,\n \"asciitilde\", 0x007e,\n \"asciitildemonospace\", 0xff5e,\n \"ascript\", 0x0251,\n \"ascriptturned\", 0x0252,\n \"asmallhiragana\", 0x3041,\n \"asmallkatakana\", 0x30a1,\n \"asmallkatakanahalfwidth\", 0xff67,\n \"asterisk\", 0x002a,\n \"asteriskaltonearabic\", 0x066d,\n \"asteriskarabic\", 0x066d,\n \"asteriskmath\", 0x2217,\n \"asteriskmonospace\", 0xff0a,\n \"asterisksmall\", 0xfe61,\n \"asterism\", 0x2042,\n \"asuperior\", 0xf6e9,\n \"asymptoticallyequal\", 0x2243,\n \"at\", 0x0040,\n \"atilde\", 0x00e3,\n \"atmonospace\", 0xff20,\n \"atsmall\", 0xfe6b,\n \"aturned\", 0x0250,\n \"aubengali\", 0x0994,\n \"aubopomofo\", 0x3120,\n \"audeva\", 0x0914,\n \"augujarati\", 0x0a94,\n \"augurmukhi\", 0x0a14,\n \"aulengthmarkbengali\", 0x09d7,\n \"aumatragurmukhi\", 0x0a4c,\n \"auvowelsignbengali\", 0x09cc,\n \"auvowelsigndeva\", 0x094c,\n \"auvowelsigngujarati\", 0x0acc,\n \"avagrahadeva\", 0x093d,\n \"aybarmenian\", 0x0561,\n \"ayin\", 0x05e2,\n \"ayinaltonehebrew\", 0xfb20,\n \"ayinhebrew\", 0x05e2,\n \"b\", 0x0062,\n \"babengali\", 0x09ac,\n \"backslash\", 0x005c,\n \"backslashmonospace\", 0xff3c,\n \"badeva\", 0x092c,\n \"bagujarati\", 0x0aac,\n \"bagurmukhi\", 0x0a2c,\n \"bahiragana\", 0x3070,\n \"bahtthai\", 0x0e3f,\n \"bakatakana\", 0x30d0,\n \"bar\", 0x007c,\n \"barmonospace\", 0xff5c,\n \"bbopomofo\", 0x3105,\n \"bcircle\", 0x24d1,\n \"bdotaccent\", 0x1e03,\n \"bdotbelow\", 0x1e05,\n \"beamedsixteenthnotes\", 0x266c,\n \"because\", 0x2235,\n \"becyrillic\", 0x0431,\n \"beharabic\", 0x0628,\n \"behfinalarabic\", 0xfe90,\n \"behinitialarabic\", 0xfe91,\n \"behiragana\", 0x3079,\n \"behmedialarabic\", 0xfe92,\n \"behmeeminitialarabic\", 0xfc9f,\n \"behmeemisolatedarabic\", 0xfc08,\n \"behnoonfinalarabic\", 0xfc6d,\n \"bekatakana\", 0x30d9,\n \"benarmenian\", 0x0562,\n \"bet\", 0x05d1,\n \"beta\", 0x03b2,\n \"betasymbolgreek\", 0x03d0,\n \"betdagesh\", 0xfb31,\n \"betdageshhebrew\", 0xfb31,\n \"bethebrew\", 0x05d1,\n \"betrafehebrew\", 0xfb4c,\n \"bhabengali\", 0x09ad,\n \"bhadeva\", 0x092d,\n \"bhagujarati\", 0x0aad,\n \"bhagurmukhi\", 0x0a2d,\n \"bhook\", 0x0253,\n \"bihiragana\", 0x3073,\n \"bikatakana\", 0x30d3,\n \"bilabialclick\", 0x0298,\n \"bindigurmukhi\", 0x0a02,\n \"birusquare\", 0x3331,\n \"blackcircle\", 0x25cf,\n \"blackdiamond\", 0x25c6,\n \"blackdownpointingtriangle\", 0x25bc,\n \"blackleftpointingpointer\", 0x25c4,\n \"blackleftpointingtriangle\", 0x25c0,\n \"blacklenticularbracketleft\", 0x3010,\n \"blacklenticularbracketleftvertical\", 0xfe3b,\n \"blacklenticularbracketright\", 0x3011,\n \"blacklenticularbracketrightvertical\", 0xfe3c,\n \"blacklowerlefttriangle\", 0x25e3,\n \"blacklowerrighttriangle\", 0x25e2,\n \"blackrectangle\", 0x25ac,\n \"blackrightpointingpointer\", 0x25ba,\n \"blackrightpointingtriangle\", 0x25b6,\n \"blacksmallsquare\", 0x25aa,\n \"blacksmilingface\", 0x263b,\n \"blacksquare\", 0x25a0,\n \"blackstar\", 0x2605,\n \"blackupperlefttriangle\", 0x25e4,\n \"blackupperrighttriangle\", 0x25e5,\n \"blackuppointingsmalltriangle\", 0x25b4,\n \"blackuppointingtriangle\", 0x25b2,\n \"blank\", 0x2423,\n \"blinebelow\", 0x1e07,\n \"block\", 0x2588,\n \"bmonospace\", 0xff42,\n \"bobaimaithai\", 0x0e1a,\n \"bohiragana\", 0x307c,\n \"bokatakana\", 0x30dc,\n \"bparen\", 0x249d,\n \"bqsquare\", 0x33c3,\n \"braceex\", 0xf8f4,\n \"braceleft\", 0x007b,\n \"braceleftbt\", 0xf8f3,\n \"braceleftmid\", 0xf8f2,\n \"braceleftmonospace\", 0xff5b,\n \"braceleftsmall\", 0xfe5b,\n \"bracelefttp\", 0xf8f1,\n \"braceleftvertical\", 0xfe37,\n \"braceright\", 0x007d,\n \"bracerightbt\", 0xf8fe,\n \"bracerightmid\", 0xf8fd,\n \"bracerightmonospace\", 0xff5d,\n \"bracerightsmall\", 0xfe5c,\n \"bracerighttp\", 0xf8fc,\n \"bracerightvertical\", 0xfe38,\n \"bracketleft\", 0x005b,\n \"bracketleftbt\", 0xf8f0,\n \"bracketleftex\", 0xf8ef,\n \"bracketleftmonospace\", 0xff3b,\n \"bracketlefttp\", 0xf8ee,\n \"bracketright\", 0x005d,\n \"bracketrightbt\", 0xf8fb,\n \"bracketrightex\", 0xf8fa,\n \"bracketrightmonospace\", 0xff3d,\n \"bracketrighttp\", 0xf8f9,\n \"breve\", 0x02d8,\n \"brevebelowcmb\", 0x032e,\n \"brevecmb\", 0x0306,\n \"breveinvertedbelowcmb\", 0x032f,\n \"breveinvertedcmb\", 0x0311,\n \"breveinverteddoublecmb\", 0x0361,\n \"bridgebelowcmb\", 0x032a,\n \"bridgeinvertedbelowcmb\", 0x033a,\n \"brokenbar\", 0x00a6,\n \"bstroke\", 0x0180,\n \"bsuperior\", 0xf6ea,\n \"btopbar\", 0x0183,\n \"buhiragana\", 0x3076,\n \"bukatakana\", 0x30d6,\n \"bullet\", 0x2022,\n \"bulletinverse\", 0x25d8,\n \"bulletoperator\", 0x2219,\n \"bullseye\", 0x25ce,\n \"c\", 0x0063,\n \"caarmenian\", 0x056e,\n \"cabengali\", 0x099a,\n \"cacute\", 0x0107,\n \"cadeva\", 0x091a,\n \"cagujarati\", 0x0a9a,\n \"cagurmukhi\", 0x0a1a,\n \"calsquare\", 0x3388,\n \"candrabindubengali\", 0x0981,\n \"candrabinducmb\", 0x0310,\n \"candrabindudeva\", 0x0901,\n \"candrabindugujarati\", 0x0a81,\n \"capslock\", 0x21ea,\n \"careof\", 0x2105,\n \"caron\", 0x02c7,\n \"caronbelowcmb\", 0x032c,\n \"caroncmb\", 0x030c,\n \"carriagereturn\", 0x21b5,\n \"cbopomofo\", 0x3118,\n \"ccaron\", 0x010d,\n \"ccedilla\", 0x00e7,\n \"ccedillaacute\", 0x1e09,\n \"ccircle\", 0x24d2,\n \"ccircumflex\", 0x0109,\n \"ccurl\", 0x0255,\n \"cdot\", 0x010b,\n \"cdotaccent\", 0x010b,\n \"cdsquare\", 0x33c5,\n \"cedilla\", 0x00b8,\n \"cedillacmb\", 0x0327,\n \"cent\", 0x00a2,\n \"centigrade\", 0x2103,\n \"centinferior\", 0xf6df,\n \"centmonospace\", 0xffe0,\n \"centoldstyle\", 0xf7a2,\n \"centsuperior\", 0xf6e0,\n \"chaarmenian\", 0x0579,\n \"chabengali\", 0x099b,\n \"chadeva\", 0x091b,\n \"chagujarati\", 0x0a9b,\n \"chagurmukhi\", 0x0a1b,\n \"chbopomofo\", 0x3114,\n \"cheabkhasiancyrillic\", 0x04bd,\n \"checkmark\", 0x2713,\n \"checyrillic\", 0x0447,\n \"chedescenderabkhasiancyrillic\", 0x04bf,\n \"chedescendercyrillic\", 0x04b7,\n \"chedieresiscyrillic\", 0x04f5,\n \"cheharmenian\", 0x0573,\n \"chekhakassiancyrillic\", 0x04cc,\n \"cheverticalstrokecyrillic\", 0x04b9,\n \"chi\", 0x03c7,\n \"chieuchacirclekorean\", 0x3277,\n \"chieuchaparenkorean\", 0x3217,\n \"chieuchcirclekorean\", 0x3269,\n \"chieuchkorean\", 0x314a,\n \"chieuchparenkorean\", 0x3209,\n \"chochangthai\", 0x0e0a,\n \"chochanthai\", 0x0e08,\n \"chochingthai\", 0x0e09,\n \"chochoethai\", 0x0e0c,\n \"chook\", 0x0188,\n \"cieucacirclekorean\", 0x3276,\n \"cieucaparenkorean\", 0x3216,\n \"cieuccirclekorean\", 0x3268,\n \"cieuckorean\", 0x3148,\n \"cieucparenkorean\", 0x3208,\n \"cieucuparenkorean\", 0x321c,\n \"circle\", 0x25cb,\n \"circlecopyrt\", 0x00a9, // Glyph is missing from Adobe's original list.\n \"circlemultiply\", 0x2297,\n \"circleot\", 0x2299,\n \"circleplus\", 0x2295,\n \"circlepostalmark\", 0x3036,\n \"circlewithlefthalfblack\", 0x25d0,\n \"circlewithrighthalfblack\", 0x25d1,\n \"circumflex\", 0x02c6,\n \"circumflexbelowcmb\", 0x032d,\n \"circumflexcmb\", 0x0302,\n \"clear\", 0x2327,\n \"clickalveolar\", 0x01c2,\n \"clickdental\", 0x01c0,\n \"clicklateral\", 0x01c1,\n \"clickretroflex\", 0x01c3,\n \"club\", 0x2663,\n \"clubsuitblack\", 0x2663,\n \"clubsuitwhite\", 0x2667,\n \"cmcubedsquare\", 0x33a4,\n \"cmonospace\", 0xff43,\n \"cmsquaredsquare\", 0x33a0,\n \"coarmenian\", 0x0581,\n \"colon\", 0x003a,\n \"colonmonetary\", 0x20a1,\n \"colonmonospace\", 0xff1a,\n \"colonsign\", 0x20a1,\n \"colonsmall\", 0xfe55,\n \"colontriangularhalfmod\", 0x02d1,\n \"colontriangularmod\", 0x02d0,\n \"comma\", 0x002c,\n \"commaabovecmb\", 0x0313,\n \"commaaboverightcmb\", 0x0315,\n \"commaaccent\", 0xf6c3,\n \"commaarabic\", 0x060c,\n \"commaarmenian\", 0x055d,\n \"commainferior\", 0xf6e1,\n \"commamonospace\", 0xff0c,\n \"commareversedabovecmb\", 0x0314,\n \"commareversedmod\", 0x02bd,\n \"commasmall\", 0xfe50,\n \"commasuperior\", 0xf6e2,\n \"commaturnedabovecmb\", 0x0312,\n \"commaturnedmod\", 0x02bb,\n \"compass\", 0x263c,\n \"congruent\", 0x2245,\n \"contourintegral\", 0x222e,\n \"control\", 0x2303,\n \"controlACK\", 0x0006,\n \"controlBEL\", 0x0007,\n \"controlBS\", 0x0008,\n \"controlCAN\", 0x0018,\n \"controlCR\", 0x000d,\n \"controlDC1\", 0x0011,\n \"controlDC2\", 0x0012,\n \"controlDC3\", 0x0013,\n \"controlDC4\", 0x0014,\n \"controlDEL\", 0x007f,\n \"controlDLE\", 0x0010,\n \"controlEM\", 0x0019,\n \"controlENQ\", 0x0005,\n \"controlEOT\", 0x0004,\n \"controlESC\", 0x001b,\n \"controlETB\", 0x0017,\n \"controlETX\", 0x0003,\n \"controlFF\", 0x000c,\n \"controlFS\", 0x001c,\n \"controlGS\", 0x001d,\n \"controlHT\", 0x0009,\n \"controlLF\", 0x000a,\n \"controlNAK\", 0x0015,\n \"controlNULL\", 0x0000, // Glyph is missing from Adobe's original list.\n \"controlRS\", 0x001e,\n \"controlSI\", 0x000f,\n \"controlSO\", 0x000e,\n \"controlSOT\", 0x0002,\n \"controlSTX\", 0x0001,\n \"controlSUB\", 0x001a,\n \"controlSYN\", 0x0016,\n \"controlUS\", 0x001f,\n \"controlVT\", 0x000b,\n \"copyright\", 0x00a9,\n \"copyrightsans\", 0xf8e9,\n \"copyrightserif\", 0xf6d9,\n \"cornerbracketleft\", 0x300c,\n \"cornerbracketlefthalfwidth\", 0xff62,\n \"cornerbracketleftvertical\", 0xfe41,\n \"cornerbracketright\", 0x300d,\n \"cornerbracketrighthalfwidth\", 0xff63,\n \"cornerbracketrightvertical\", 0xfe42,\n \"corporationsquare\", 0x337f,\n \"cosquare\", 0x33c7,\n \"coverkgsquare\", 0x33c6,\n \"cparen\", 0x249e,\n \"cruzeiro\", 0x20a2,\n \"cstretched\", 0x0297,\n \"curlyand\", 0x22cf,\n \"curlyor\", 0x22ce,\n \"currency\", 0x00a4,\n \"cyrBreve\", 0xf6d1,\n \"cyrFlex\", 0xf6d2,\n \"cyrbreve\", 0xf6d4,\n \"cyrflex\", 0xf6d5,\n \"d\", 0x0064,\n \"daarmenian\", 0x0564,\n \"dabengali\", 0x09a6,\n \"dadarabic\", 0x0636,\n \"dadeva\", 0x0926,\n \"dadfinalarabic\", 0xfebe,\n \"dadinitialarabic\", 0xfebf,\n \"dadmedialarabic\", 0xfec0,\n \"dagesh\", 0x05bc,\n \"dageshhebrew\", 0x05bc,\n \"dagger\", 0x2020,\n \"daggerdbl\", 0x2021,\n \"dagujarati\", 0x0aa6,\n \"dagurmukhi\", 0x0a26,\n \"dahiragana\", 0x3060,\n \"dakatakana\", 0x30c0,\n \"dalarabic\", 0x062f,\n \"dalet\", 0x05d3,\n \"daletdagesh\", 0xfb33,\n \"daletdageshhebrew\", 0xfb33,\n \"dalethebrew\", 0x05d3,\n \"dalfinalarabic\", 0xfeaa,\n \"dammaarabic\", 0x064f,\n \"dammalowarabic\", 0x064f,\n \"dammatanaltonearabic\", 0x064c,\n \"dammatanarabic\", 0x064c,\n \"danda\", 0x0964,\n \"dargahebrew\", 0x05a7,\n \"dargalefthebrew\", 0x05a7,\n \"dasiapneumatacyrilliccmb\", 0x0485,\n \"dblGrave\", 0xf6d3,\n \"dblanglebracketleft\", 0x300a,\n \"dblanglebracketleftvertical\", 0xfe3d,\n \"dblanglebracketright\", 0x300b,\n \"dblanglebracketrightvertical\", 0xfe3e,\n \"dblarchinvertedbelowcmb\", 0x032b,\n \"dblarrowleft\", 0x21d4,\n \"dblarrowright\", 0x21d2,\n \"dbldanda\", 0x0965,\n \"dblgrave\", 0xf6d6,\n \"dblgravecmb\", 0x030f,\n \"dblintegral\", 0x222c,\n \"dbllowline\", 0x2017,\n \"dbllowlinecmb\", 0x0333,\n \"dbloverlinecmb\", 0x033f,\n \"dblprimemod\", 0x02ba,\n \"dblverticalbar\", 0x2016,\n \"dblverticallineabovecmb\", 0x030e,\n \"dbopomofo\", 0x3109,\n \"dbsquare\", 0x33c8,\n \"dcaron\", 0x010f,\n \"dcedilla\", 0x1e11,\n \"dcircle\", 0x24d3,\n \"dcircumflexbelow\", 0x1e13,\n \"dcroat\", 0x0111,\n \"ddabengali\", 0x09a1,\n \"ddadeva\", 0x0921,\n \"ddagujarati\", 0x0aa1,\n \"ddagurmukhi\", 0x0a21,\n \"ddalarabic\", 0x0688,\n \"ddalfinalarabic\", 0xfb89,\n \"dddhadeva\", 0x095c,\n \"ddhabengali\", 0x09a2,\n \"ddhadeva\", 0x0922,\n \"ddhagujarati\", 0x0aa2,\n \"ddhagurmukhi\", 0x0a22,\n \"ddotaccent\", 0x1e0b,\n \"ddotbelow\", 0x1e0d,\n \"decimalseparatorarabic\", 0x066b,\n \"decimalseparatorpersian\", 0x066b,\n \"decyrillic\", 0x0434,\n \"degree\", 0x00b0,\n \"dehihebrew\", 0x05ad,\n \"dehiragana\", 0x3067,\n \"deicoptic\", 0x03ef,\n \"dekatakana\", 0x30c7,\n \"deleteleft\", 0x232b,\n \"deleteright\", 0x2326,\n \"delta\", 0x03b4,\n \"deltaturned\", 0x018d,\n \"denominatorminusonenumeratorbengali\", 0x09f8,\n \"dezh\", 0x02a4,\n \"dhabengali\", 0x09a7,\n \"dhadeva\", 0x0927,\n \"dhagujarati\", 0x0aa7,\n \"dhagurmukhi\", 0x0a27,\n \"dhook\", 0x0257,\n \"dialytikatonos\", 0x0385,\n \"dialytikatonoscmb\", 0x0344,\n \"diamond\", 0x2666,\n \"diamondsuitwhite\", 0x2662,\n \"dieresis\", 0x00a8,\n \"dieresisacute\", 0xf6d7,\n \"dieresisbelowcmb\", 0x0324,\n \"dieresiscmb\", 0x0308,\n \"dieresisgrave\", 0xf6d8,\n \"dieresistonos\", 0x0385,\n \"dihiragana\", 0x3062,\n \"dikatakana\", 0x30c2,\n \"dittomark\", 0x3003,\n \"divide\", 0x00f7,\n \"divides\", 0x2223,\n \"divisionslash\", 0x2215,\n \"djecyrillic\", 0x0452,\n \"dkshade\", 0x2593,\n \"dlinebelow\", 0x1e0f,\n \"dlsquare\", 0x3397,\n \"dmacron\", 0x0111,\n \"dmonospace\", 0xff44,\n \"dnblock\", 0x2584,\n \"dochadathai\", 0x0e0e,\n \"dodekthai\", 0x0e14,\n \"dohiragana\", 0x3069,\n \"dokatakana\", 0x30c9,\n \"dollar\", 0x0024,\n \"dollarinferior\", 0xf6e3,\n \"dollarmonospace\", 0xff04,\n \"dollaroldstyle\", 0xf724,\n \"dollarsmall\", 0xfe69,\n \"dollarsuperior\", 0xf6e4,\n \"dong\", 0x20ab,\n \"dorusquare\", 0x3326,\n \"dotaccent\", 0x02d9,\n \"dotaccentcmb\", 0x0307,\n \"dotbelowcmb\", 0x0323,\n \"dotbelowcomb\", 0x0323,\n \"dotkatakana\", 0x30fb,\n \"dotlessi\", 0x0131,\n \"dotlessj\", 0xf6be,\n \"dotlessjstrokehook\", 0x0284,\n \"dotmath\", 0x22c5,\n \"dottedcircle\", 0x25cc,\n \"doubleyodpatah\", 0xfb1f,\n \"doubleyodpatahhebrew\", 0xfb1f,\n \"downtackbelowcmb\", 0x031e,\n \"downtackmod\", 0x02d5,\n \"dparen\", 0x249f,\n \"dsuperior\", 0xf6eb,\n \"dtail\", 0x0256,\n \"dtopbar\", 0x018c,\n \"duhiragana\", 0x3065,\n \"dukatakana\", 0x30c5,\n \"dz\", 0x01f3,\n \"dzaltone\", 0x02a3,\n \"dzcaron\", 0x01c6,\n \"dzcurl\", 0x02a5,\n \"dzeabkhasiancyrillic\", 0x04e1,\n \"dzecyrillic\", 0x0455,\n \"dzhecyrillic\", 0x045f,\n \"e\", 0x0065,\n \"eacute\", 0x00e9,\n \"earth\", 0x2641,\n \"ebengali\", 0x098f,\n \"ebopomofo\", 0x311c,\n \"ebreve\", 0x0115,\n \"ecandradeva\", 0x090d,\n \"ecandragujarati\", 0x0a8d,\n \"ecandravowelsigndeva\", 0x0945,\n \"ecandravowelsigngujarati\", 0x0ac5,\n \"ecaron\", 0x011b,\n \"ecedillabreve\", 0x1e1d,\n \"echarmenian\", 0x0565,\n \"echyiwnarmenian\", 0x0587,\n \"ecircle\", 0x24d4,\n \"ecircumflex\", 0x00ea,\n \"ecircumflexacute\", 0x1ebf,\n \"ecircumflexbelow\", 0x1e19,\n \"ecircumflexdotbelow\", 0x1ec7,\n \"ecircumflexgrave\", 0x1ec1,\n \"ecircumflexhookabove\", 0x1ec3,\n \"ecircumflextilde\", 0x1ec5,\n \"ecyrillic\", 0x0454,\n \"edblgrave\", 0x0205,\n \"edeva\", 0x090f,\n \"edieresis\", 0x00eb,\n \"edot\", 0x0117,\n \"edotaccent\", 0x0117,\n \"edotbelow\", 0x1eb9,\n \"eegurmukhi\", 0x0a0f,\n \"eematragurmukhi\", 0x0a47,\n \"efcyrillic\", 0x0444,\n \"egrave\", 0x00e8,\n \"egujarati\", 0x0a8f,\n \"eharmenian\", 0x0567,\n \"ehbopomofo\", 0x311d,\n \"ehiragana\", 0x3048,\n \"ehookabove\", 0x1ebb,\n \"eibopomofo\", 0x311f,\n \"eight\", 0x0038,\n \"eightarabic\", 0x0668,\n \"eightbengali\", 0x09ee,\n \"eightcircle\", 0x2467,\n \"eightcircleinversesansserif\", 0x2791,\n \"eightdeva\", 0x096e,\n \"eighteencircle\", 0x2471,\n \"eighteenparen\", 0x2485,\n \"eighteenperiod\", 0x2499,\n \"eightgujarati\", 0x0aee,\n \"eightgurmukhi\", 0x0a6e,\n \"eighthackarabic\", 0x0668,\n \"eighthangzhou\", 0x3028,\n \"eighthnotebeamed\", 0x266b,\n \"eightideographicparen\", 0x3227,\n \"eightinferior\", 0x2088,\n \"eightmonospace\", 0xff18,\n \"eightoldstyle\", 0xf738,\n \"eightparen\", 0x247b,\n \"eightperiod\", 0x248f,\n \"eightpersian\", 0x06f8,\n \"eightroman\", 0x2177,\n \"eightsuperior\", 0x2078,\n \"eightthai\", 0x0e58,\n \"einvertedbreve\", 0x0207,\n \"eiotifiedcyrillic\", 0x0465,\n \"ekatakana\", 0x30a8,\n \"ekatakanahalfwidth\", 0xff74,\n \"ekonkargurmukhi\", 0x0a74,\n \"ekorean\", 0x3154,\n \"elcyrillic\", 0x043b,\n \"element\", 0x2208,\n \"elevencircle\", 0x246a,\n \"elevenparen\", 0x247e,\n \"elevenperiod\", 0x2492,\n \"elevenroman\", 0x217a,\n \"ellipsis\", 0x2026,\n \"ellipsisvertical\", 0x22ee,\n \"emacron\", 0x0113,\n \"emacronacute\", 0x1e17,\n \"emacrongrave\", 0x1e15,\n \"emcyrillic\", 0x043c,\n \"emdash\", 0x2014,\n \"emdashvertical\", 0xfe31,\n \"emonospace\", 0xff45,\n \"emphasismarkarmenian\", 0x055b,\n \"emptyset\", 0x2205,\n \"enbopomofo\", 0x3123,\n \"encyrillic\", 0x043d,\n \"endash\", 0x2013,\n \"endashvertical\", 0xfe32,\n \"endescendercyrillic\", 0x04a3,\n \"eng\", 0x014b,\n \"engbopomofo\", 0x3125,\n \"enghecyrillic\", 0x04a5,\n \"enhookcyrillic\", 0x04c8,\n \"enspace\", 0x2002,\n \"eogonek\", 0x0119,\n \"eokorean\", 0x3153,\n \"eopen\", 0x025b,\n \"eopenclosed\", 0x029a,\n \"eopenreversed\", 0x025c,\n \"eopenreversedclosed\", 0x025e,\n \"eopenreversedhook\", 0x025d,\n \"eparen\", 0x24a0,\n \"epsilon\", 0x03b5,\n \"epsilontonos\", 0x03ad,\n \"equal\", 0x003d,\n \"equalmonospace\", 0xff1d,\n \"equalsmall\", 0xfe66,\n \"equalsuperior\", 0x207c,\n \"equivalence\", 0x2261,\n \"erbopomofo\", 0x3126,\n \"ercyrillic\", 0x0440,\n \"ereversed\", 0x0258,\n \"ereversedcyrillic\", 0x044d,\n \"escyrillic\", 0x0441,\n \"esdescendercyrillic\", 0x04ab,\n \"esh\", 0x0283,\n \"eshcurl\", 0x0286,\n \"eshortdeva\", 0x090e,\n \"eshortvowelsigndeva\", 0x0946,\n \"eshreversedloop\", 0x01aa,\n \"eshsquatreversed\", 0x0285,\n \"esmallhiragana\", 0x3047,\n \"esmallkatakana\", 0x30a7,\n \"esmallkatakanahalfwidth\", 0xff6a,\n \"estimated\", 0x212e,\n \"esuperior\", 0xf6ec,\n \"eta\", 0x03b7,\n \"etarmenian\", 0x0568,\n \"etatonos\", 0x03ae,\n \"eth\", 0x00f0,\n \"etilde\", 0x1ebd,\n \"etildebelow\", 0x1e1b,\n \"etnahtafoukhhebrew\", 0x0591,\n \"etnahtafoukhlefthebrew\", 0x0591,\n \"etnahtahebrew\", 0x0591,\n \"etnahtalefthebrew\", 0x0591,\n \"eturned\", 0x01dd,\n \"eukorean\", 0x3161,\n \"euro\", 0x20ac,\n \"evowelsignbengali\", 0x09c7,\n \"evowelsigndeva\", 0x0947,\n \"evowelsigngujarati\", 0x0ac7,\n \"exclam\", 0x0021,\n \"exclamarmenian\", 0x055c,\n \"exclamdbl\", 0x203c,\n \"exclamdown\", 0x00a1,\n \"exclamdownsmall\", 0xf7a1,\n \"exclammonospace\", 0xff01,\n \"exclamsmall\", 0xf721,\n \"existential\", 0x2203,\n \"ezh\", 0x0292,\n \"ezhcaron\", 0x01ef,\n \"ezhcurl\", 0x0293,\n \"ezhreversed\", 0x01b9,\n \"ezhtail\", 0x01ba,\n \"f\", 0x0066,\n \"fadeva\", 0x095e,\n \"fagurmukhi\", 0x0a5e,\n \"fahrenheit\", 0x2109,\n \"fathaarabic\", 0x064e,\n \"fathalowarabic\", 0x064e,\n \"fathatanarabic\", 0x064b,\n \"fbopomofo\", 0x3108,\n \"fcircle\", 0x24d5,\n \"fdotaccent\", 0x1e1f,\n \"feharabic\", 0x0641,\n \"feharmenian\", 0x0586,\n \"fehfinalarabic\", 0xfed2,\n \"fehinitialarabic\", 0xfed3,\n \"fehmedialarabic\", 0xfed4,\n \"feicoptic\", 0x03e5,\n \"female\", 0x2640,\n \"ff\", 0xfb00,\n \"f_f\", 0xfb00, // Fixes issue 11016.\n \"ffi\", 0xfb03,\n \"ffl\", 0xfb04,\n \"fi\", 0xfb01,\n \"fifteencircle\", 0x246e,\n \"fifteenparen\", 0x2482,\n \"fifteenperiod\", 0x2496,\n \"figuredash\", 0x2012,\n \"filledbox\", 0x25a0,\n \"filledrect\", 0x25ac,\n \"finalkaf\", 0x05da,\n \"finalkafdagesh\", 0xfb3a,\n \"finalkafdageshhebrew\", 0xfb3a,\n \"finalkafhebrew\", 0x05da,\n \"finalmem\", 0x05dd,\n \"finalmemhebrew\", 0x05dd,\n \"finalnun\", 0x05df,\n \"finalnunhebrew\", 0x05df,\n \"finalpe\", 0x05e3,\n \"finalpehebrew\", 0x05e3,\n \"finaltsadi\", 0x05e5,\n \"finaltsadihebrew\", 0x05e5,\n \"firsttonechinese\", 0x02c9,\n \"fisheye\", 0x25c9,\n \"fitacyrillic\", 0x0473,\n \"five\", 0x0035,\n \"fivearabic\", 0x0665,\n \"fivebengali\", 0x09eb,\n \"fivecircle\", 0x2464,\n \"fivecircleinversesansserif\", 0x278e,\n \"fivedeva\", 0x096b,\n \"fiveeighths\", 0x215d,\n \"fivegujarati\", 0x0aeb,\n \"fivegurmukhi\", 0x0a6b,\n \"fivehackarabic\", 0x0665,\n \"fivehangzhou\", 0x3025,\n \"fiveideographicparen\", 0x3224,\n \"fiveinferior\", 0x2085,\n \"fivemonospace\", 0xff15,\n \"fiveoldstyle\", 0xf735,\n \"fiveparen\", 0x2478,\n \"fiveperiod\", 0x248c,\n \"fivepersian\", 0x06f5,\n \"fiveroman\", 0x2174,\n \"fivesuperior\", 0x2075,\n \"fivethai\", 0x0e55,\n \"fl\", 0xfb02,\n \"florin\", 0x0192,\n \"fmonospace\", 0xff46,\n \"fmsquare\", 0x3399,\n \"fofanthai\", 0x0e1f,\n \"fofathai\", 0x0e1d,\n \"fongmanthai\", 0x0e4f,\n \"forall\", 0x2200,\n \"four\", 0x0034,\n \"fourarabic\", 0x0664,\n \"fourbengali\", 0x09ea,\n \"fourcircle\", 0x2463,\n \"fourcircleinversesansserif\", 0x278d,\n \"fourdeva\", 0x096a,\n \"fourgujarati\", 0x0aea,\n \"fourgurmukhi\", 0x0a6a,\n \"fourhackarabic\", 0x0664,\n \"fourhangzhou\", 0x3024,\n \"fourideographicparen\", 0x3223,\n \"fourinferior\", 0x2084,\n \"fourmonospace\", 0xff14,\n \"fournumeratorbengali\", 0x09f7,\n \"fouroldstyle\", 0xf734,\n \"fourparen\", 0x2477,\n \"fourperiod\", 0x248b,\n \"fourpersian\", 0x06f4,\n \"fourroman\", 0x2173,\n \"foursuperior\", 0x2074,\n \"fourteencircle\", 0x246d,\n \"fourteenparen\", 0x2481,\n \"fourteenperiod\", 0x2495,\n \"fourthai\", 0x0e54,\n \"fourthtonechinese\", 0x02cb,\n \"fparen\", 0x24a1,\n \"fraction\", 0x2044,\n \"franc\", 0x20a3,\n \"g\", 0x0067,\n \"gabengali\", 0x0997,\n \"gacute\", 0x01f5,\n \"gadeva\", 0x0917,\n \"gafarabic\", 0x06af,\n \"gaffinalarabic\", 0xfb93,\n \"gafinitialarabic\", 0xfb94,\n \"gafmedialarabic\", 0xfb95,\n \"gagujarati\", 0x0a97,\n \"gagurmukhi\", 0x0a17,\n \"gahiragana\", 0x304c,\n \"gakatakana\", 0x30ac,\n \"gamma\", 0x03b3,\n \"gammalatinsmall\", 0x0263,\n \"gammasuperior\", 0x02e0,\n \"gangiacoptic\", 0x03eb,\n \"gbopomofo\", 0x310d,\n \"gbreve\", 0x011f,\n \"gcaron\", 0x01e7,\n \"gcedilla\", 0x0123,\n \"gcircle\", 0x24d6,\n \"gcircumflex\", 0x011d,\n \"gcommaaccent\", 0x0123,\n \"gdot\", 0x0121,\n \"gdotaccent\", 0x0121,\n \"gecyrillic\", 0x0433,\n \"gehiragana\", 0x3052,\n \"gekatakana\", 0x30b2,\n \"geometricallyequal\", 0x2251,\n \"gereshaccenthebrew\", 0x059c,\n \"gereshhebrew\", 0x05f3,\n \"gereshmuqdamhebrew\", 0x059d,\n \"germandbls\", 0x00df,\n \"gershayimaccenthebrew\", 0x059e,\n \"gershayimhebrew\", 0x05f4,\n \"getamark\", 0x3013,\n \"ghabengali\", 0x0998,\n \"ghadarmenian\", 0x0572,\n \"ghadeva\", 0x0918,\n \"ghagujarati\", 0x0a98,\n \"ghagurmukhi\", 0x0a18,\n \"ghainarabic\", 0x063a,\n \"ghainfinalarabic\", 0xfece,\n \"ghaininitialarabic\", 0xfecf,\n \"ghainmedialarabic\", 0xfed0,\n \"ghemiddlehookcyrillic\", 0x0495,\n \"ghestrokecyrillic\", 0x0493,\n \"gheupturncyrillic\", 0x0491,\n \"ghhadeva\", 0x095a,\n \"ghhagurmukhi\", 0x0a5a,\n \"ghook\", 0x0260,\n \"ghzsquare\", 0x3393,\n \"gihiragana\", 0x304e,\n \"gikatakana\", 0x30ae,\n \"gimarmenian\", 0x0563,\n \"gimel\", 0x05d2,\n \"gimeldagesh\", 0xfb32,\n \"gimeldageshhebrew\", 0xfb32,\n \"gimelhebrew\", 0x05d2,\n \"gjecyrillic\", 0x0453,\n \"glottalinvertedstroke\", 0x01be,\n \"glottalstop\", 0x0294,\n \"glottalstopinverted\", 0x0296,\n \"glottalstopmod\", 0x02c0,\n \"glottalstopreversed\", 0x0295,\n \"glottalstopreversedmod\", 0x02c1,\n \"glottalstopreversedsuperior\", 0x02e4,\n \"glottalstopstroke\", 0x02a1,\n \"glottalstopstrokereversed\", 0x02a2,\n \"gmacron\", 0x1e21,\n \"gmonospace\", 0xff47,\n \"gohiragana\", 0x3054,\n \"gokatakana\", 0x30b4,\n \"gparen\", 0x24a2,\n \"gpasquare\", 0x33ac,\n \"gradient\", 0x2207,\n \"grave\", 0x0060,\n \"gravebelowcmb\", 0x0316,\n \"gravecmb\", 0x0300,\n \"gravecomb\", 0x0300,\n \"gravedeva\", 0x0953,\n \"gravelowmod\", 0x02ce,\n \"gravemonospace\", 0xff40,\n \"gravetonecmb\", 0x0340,\n \"greater\", 0x003e,\n \"greaterequal\", 0x2265,\n \"greaterequalorless\", 0x22db,\n \"greatermonospace\", 0xff1e,\n \"greaterorequivalent\", 0x2273,\n \"greaterorless\", 0x2277,\n \"greateroverequal\", 0x2267,\n \"greatersmall\", 0xfe65,\n \"gscript\", 0x0261,\n \"gstroke\", 0x01e5,\n \"guhiragana\", 0x3050,\n \"guillemotleft\", 0x00ab,\n \"guillemotright\", 0x00bb,\n \"guilsinglleft\", 0x2039,\n \"guilsinglright\", 0x203a,\n \"gukatakana\", 0x30b0,\n \"guramusquare\", 0x3318,\n \"gysquare\", 0x33c9,\n \"h\", 0x0068,\n \"haabkhasiancyrillic\", 0x04a9,\n \"haaltonearabic\", 0x06c1,\n \"habengali\", 0x09b9,\n \"hadescendercyrillic\", 0x04b3,\n \"hadeva\", 0x0939,\n \"hagujarati\", 0x0ab9,\n \"hagurmukhi\", 0x0a39,\n \"haharabic\", 0x062d,\n \"hahfinalarabic\", 0xfea2,\n \"hahinitialarabic\", 0xfea3,\n \"hahiragana\", 0x306f,\n \"hahmedialarabic\", 0xfea4,\n \"haitusquare\", 0x332a,\n \"hakatakana\", 0x30cf,\n \"hakatakanahalfwidth\", 0xff8a,\n \"halantgurmukhi\", 0x0a4d,\n \"hamzaarabic\", 0x0621,\n \"hamzalowarabic\", 0x0621,\n \"hangulfiller\", 0x3164,\n \"hardsigncyrillic\", 0x044a,\n \"harpoonleftbarbup\", 0x21bc,\n \"harpoonrightbarbup\", 0x21c0,\n \"hasquare\", 0x33ca,\n \"hatafpatah\", 0x05b2,\n \"hatafpatah16\", 0x05b2,\n \"hatafpatah23\", 0x05b2,\n \"hatafpatah2f\", 0x05b2,\n \"hatafpatahhebrew\", 0x05b2,\n \"hatafpatahnarrowhebrew\", 0x05b2,\n \"hatafpatahquarterhebrew\", 0x05b2,\n \"hatafpatahwidehebrew\", 0x05b2,\n \"hatafqamats\", 0x05b3,\n \"hatafqamats1b\", 0x05b3,\n \"hatafqamats28\", 0x05b3,\n \"hatafqamats34\", 0x05b3,\n \"hatafqamatshebrew\", 0x05b3,\n \"hatafqamatsnarrowhebrew\", 0x05b3,\n \"hatafqamatsquarterhebrew\", 0x05b3,\n \"hatafqamatswidehebrew\", 0x05b3,\n \"hatafsegol\", 0x05b1,\n \"hatafsegol17\", 0x05b1,\n \"hatafsegol24\", 0x05b1,\n \"hatafsegol30\", 0x05b1,\n \"hatafsegolhebrew\", 0x05b1,\n \"hatafsegolnarrowhebrew\", 0x05b1,\n \"hatafsegolquarterhebrew\", 0x05b1,\n \"hatafsegolwidehebrew\", 0x05b1,\n \"hbar\", 0x0127,\n \"hbopomofo\", 0x310f,\n \"hbrevebelow\", 0x1e2b,\n \"hcedilla\", 0x1e29,\n \"hcircle\", 0x24d7,\n \"hcircumflex\", 0x0125,\n \"hdieresis\", 0x1e27,\n \"hdotaccent\", 0x1e23,\n \"hdotbelow\", 0x1e25,\n \"he\", 0x05d4,\n \"heart\", 0x2665,\n \"heartsuitblack\", 0x2665,\n \"heartsuitwhite\", 0x2661,\n \"hedagesh\", 0xfb34,\n \"hedageshhebrew\", 0xfb34,\n \"hehaltonearabic\", 0x06c1,\n \"heharabic\", 0x0647,\n \"hehebrew\", 0x05d4,\n \"hehfinalaltonearabic\", 0xfba7,\n \"hehfinalalttwoarabic\", 0xfeea,\n \"hehfinalarabic\", 0xfeea,\n \"hehhamzaabovefinalarabic\", 0xfba5,\n \"hehhamzaaboveisolatedarabic\", 0xfba4,\n \"hehinitialaltonearabic\", 0xfba8,\n \"hehinitialarabic\", 0xfeeb,\n \"hehiragana\", 0x3078,\n \"hehmedialaltonearabic\", 0xfba9,\n \"hehmedialarabic\", 0xfeec,\n \"heiseierasquare\", 0x337b,\n \"hekatakana\", 0x30d8,\n \"hekatakanahalfwidth\", 0xff8d,\n \"hekutaarusquare\", 0x3336,\n \"henghook\", 0x0267,\n \"herutusquare\", 0x3339,\n \"het\", 0x05d7,\n \"hethebrew\", 0x05d7,\n \"hhook\", 0x0266,\n \"hhooksuperior\", 0x02b1,\n \"hieuhacirclekorean\", 0x327b,\n \"hieuhaparenkorean\", 0x321b,\n \"hieuhcirclekorean\", 0x326d,\n \"hieuhkorean\", 0x314e,\n \"hieuhparenkorean\", 0x320d,\n \"hihiragana\", 0x3072,\n \"hikatakana\", 0x30d2,\n \"hikatakanahalfwidth\", 0xff8b,\n \"hiriq\", 0x05b4,\n \"hiriq14\", 0x05b4,\n \"hiriq21\", 0x05b4,\n \"hiriq2d\", 0x05b4,\n \"hiriqhebrew\", 0x05b4,\n \"hiriqnarrowhebrew\", 0x05b4,\n \"hiriqquarterhebrew\", 0x05b4,\n \"hiriqwidehebrew\", 0x05b4,\n \"hlinebelow\", 0x1e96,\n \"hmonospace\", 0xff48,\n \"hoarmenian\", 0x0570,\n \"hohipthai\", 0x0e2b,\n \"hohiragana\", 0x307b,\n \"hokatakana\", 0x30db,\n \"hokatakanahalfwidth\", 0xff8e,\n \"holam\", 0x05b9,\n \"holam19\", 0x05b9,\n \"holam26\", 0x05b9,\n \"holam32\", 0x05b9,\n \"holamhebrew\", 0x05b9,\n \"holamnarrowhebrew\", 0x05b9,\n \"holamquarterhebrew\", 0x05b9,\n \"holamwidehebrew\", 0x05b9,\n \"honokhukthai\", 0x0e2e,\n \"hookabovecomb\", 0x0309,\n \"hookcmb\", 0x0309,\n \"hookpalatalizedbelowcmb\", 0x0321,\n \"hookretroflexbelowcmb\", 0x0322,\n \"hoonsquare\", 0x3342,\n \"horicoptic\", 0x03e9,\n \"horizontalbar\", 0x2015,\n \"horncmb\", 0x031b,\n \"hotsprings\", 0x2668,\n \"house\", 0x2302,\n \"hparen\", 0x24a3,\n \"hsuperior\", 0x02b0,\n \"hturned\", 0x0265,\n \"huhiragana\", 0x3075,\n \"huiitosquare\", 0x3333,\n \"hukatakana\", 0x30d5,\n \"hukatakanahalfwidth\", 0xff8c,\n \"hungarumlaut\", 0x02dd,\n \"hungarumlautcmb\", 0x030b,\n \"hv\", 0x0195,\n \"hyphen\", 0x002d,\n \"hypheninferior\", 0xf6e5,\n \"hyphenmonospace\", 0xff0d,\n \"hyphensmall\", 0xfe63,\n \"hyphensuperior\", 0xf6e6,\n \"hyphentwo\", 0x2010,\n \"i\", 0x0069,\n \"iacute\", 0x00ed,\n \"iacyrillic\", 0x044f,\n \"ibengali\", 0x0987,\n \"ibopomofo\", 0x3127,\n \"ibreve\", 0x012d,\n \"icaron\", 0x01d0,\n \"icircle\", 0x24d8,\n \"icircumflex\", 0x00ee,\n \"icyrillic\", 0x0456,\n \"idblgrave\", 0x0209,\n \"ideographearthcircle\", 0x328f,\n \"ideographfirecircle\", 0x328b,\n \"ideographicallianceparen\", 0x323f,\n \"ideographiccallparen\", 0x323a,\n \"ideographiccentrecircle\", 0x32a5,\n \"ideographicclose\", 0x3006,\n \"ideographiccomma\", 0x3001,\n \"ideographiccommaleft\", 0xff64,\n \"ideographiccongratulationparen\", 0x3237,\n \"ideographiccorrectcircle\", 0x32a3,\n \"ideographicearthparen\", 0x322f,\n \"ideographicenterpriseparen\", 0x323d,\n \"ideographicexcellentcircle\", 0x329d,\n \"ideographicfestivalparen\", 0x3240,\n \"ideographicfinancialcircle\", 0x3296,\n \"ideographicfinancialparen\", 0x3236,\n \"ideographicfireparen\", 0x322b,\n \"ideographichaveparen\", 0x3232,\n \"ideographichighcircle\", 0x32a4,\n \"ideographiciterationmark\", 0x3005,\n \"ideographiclaborcircle\", 0x3298,\n \"ideographiclaborparen\", 0x3238,\n \"ideographicleftcircle\", 0x32a7,\n \"ideographiclowcircle\", 0x32a6,\n \"ideographicmedicinecircle\", 0x32a9,\n \"ideographicmetalparen\", 0x322e,\n \"ideographicmoonparen\", 0x322a,\n \"ideographicnameparen\", 0x3234,\n \"ideographicperiod\", 0x3002,\n \"ideographicprintcircle\", 0x329e,\n \"ideographicreachparen\", 0x3243,\n \"ideographicrepresentparen\", 0x3239,\n \"ideographicresourceparen\", 0x323e,\n \"ideographicrightcircle\", 0x32a8,\n \"ideographicsecretcircle\", 0x3299,\n \"ideographicselfparen\", 0x3242,\n \"ideographicsocietyparen\", 0x3233,\n \"ideographicspace\", 0x3000,\n \"ideographicspecialparen\", 0x3235,\n \"ideographicstockparen\", 0x3231,\n \"ideographicstudyparen\", 0x323b,\n \"ideographicsunparen\", 0x3230,\n \"ideographicsuperviseparen\", 0x323c,\n \"ideographicwaterparen\", 0x322c,\n \"ideographicwoodparen\", 0x322d,\n \"ideographiczero\", 0x3007,\n \"ideographmetalcircle\", 0x328e,\n \"ideographmooncircle\", 0x328a,\n \"ideographnamecircle\", 0x3294,\n \"ideographsuncircle\", 0x3290,\n \"ideographwatercircle\", 0x328c,\n \"ideographwoodcircle\", 0x328d,\n \"ideva\", 0x0907,\n \"idieresis\", 0x00ef,\n \"idieresisacute\", 0x1e2f,\n \"idieresiscyrillic\", 0x04e5,\n \"idotbelow\", 0x1ecb,\n \"iebrevecyrillic\", 0x04d7,\n \"iecyrillic\", 0x0435,\n \"ieungacirclekorean\", 0x3275,\n \"ieungaparenkorean\", 0x3215,\n \"ieungcirclekorean\", 0x3267,\n \"ieungkorean\", 0x3147,\n \"ieungparenkorean\", 0x3207,\n \"igrave\", 0x00ec,\n \"igujarati\", 0x0a87,\n \"igurmukhi\", 0x0a07,\n \"ihiragana\", 0x3044,\n \"ihookabove\", 0x1ec9,\n \"iibengali\", 0x0988,\n \"iicyrillic\", 0x0438,\n \"iideva\", 0x0908,\n \"iigujarati\", 0x0a88,\n \"iigurmukhi\", 0x0a08,\n \"iimatragurmukhi\", 0x0a40,\n \"iinvertedbreve\", 0x020b,\n \"iishortcyrillic\", 0x0439,\n \"iivowelsignbengali\", 0x09c0,\n \"iivowelsigndeva\", 0x0940,\n \"iivowelsigngujarati\", 0x0ac0,\n \"ij\", 0x0133,\n \"ikatakana\", 0x30a4,\n \"ikatakanahalfwidth\", 0xff72,\n \"ikorean\", 0x3163,\n \"ilde\", 0x02dc,\n \"iluyhebrew\", 0x05ac,\n \"imacron\", 0x012b,\n \"imacroncyrillic\", 0x04e3,\n \"imageorapproximatelyequal\", 0x2253,\n \"imatragurmukhi\", 0x0a3f,\n \"imonospace\", 0xff49,\n \"increment\", 0x2206,\n \"infinity\", 0x221e,\n \"iniarmenian\", 0x056b,\n \"integral\", 0x222b,\n \"integralbottom\", 0x2321,\n \"integralbt\", 0x2321,\n \"integralex\", 0xf8f5,\n \"integraltop\", 0x2320,\n \"integraltp\", 0x2320,\n \"intersection\", 0x2229,\n \"intisquare\", 0x3305,\n \"invbullet\", 0x25d8,\n \"invcircle\", 0x25d9,\n \"invsmileface\", 0x263b,\n \"iocyrillic\", 0x0451,\n \"iogonek\", 0x012f,\n \"iota\", 0x03b9,\n \"iotadieresis\", 0x03ca,\n \"iotadieresistonos\", 0x0390,\n \"iotalatin\", 0x0269,\n \"iotatonos\", 0x03af,\n \"iparen\", 0x24a4,\n \"irigurmukhi\", 0x0a72,\n \"ismallhiragana\", 0x3043,\n \"ismallkatakana\", 0x30a3,\n \"ismallkatakanahalfwidth\", 0xff68,\n \"issharbengali\", 0x09fa,\n \"istroke\", 0x0268,\n \"isuperior\", 0xf6ed,\n \"iterationhiragana\", 0x309d,\n \"iterationkatakana\", 0x30fd,\n \"itilde\", 0x0129,\n \"itildebelow\", 0x1e2d,\n \"iubopomofo\", 0x3129,\n \"iucyrillic\", 0x044e,\n \"ivowelsignbengali\", 0x09bf,\n \"ivowelsigndeva\", 0x093f,\n \"ivowelsigngujarati\", 0x0abf,\n \"izhitsacyrillic\", 0x0475,\n \"izhitsadblgravecyrillic\", 0x0477,\n \"j\", 0x006a,\n \"jaarmenian\", 0x0571,\n \"jabengali\", 0x099c,\n \"jadeva\", 0x091c,\n \"jagujarati\", 0x0a9c,\n \"jagurmukhi\", 0x0a1c,\n \"jbopomofo\", 0x3110,\n \"jcaron\", 0x01f0,\n \"jcircle\", 0x24d9,\n \"jcircumflex\", 0x0135,\n \"jcrossedtail\", 0x029d,\n \"jdotlessstroke\", 0x025f,\n \"jecyrillic\", 0x0458,\n \"jeemarabic\", 0x062c,\n \"jeemfinalarabic\", 0xfe9e,\n \"jeeminitialarabic\", 0xfe9f,\n \"jeemmedialarabic\", 0xfea0,\n \"jeharabic\", 0x0698,\n \"jehfinalarabic\", 0xfb8b,\n \"jhabengali\", 0x099d,\n \"jhadeva\", 0x091d,\n \"jhagujarati\", 0x0a9d,\n \"jhagurmukhi\", 0x0a1d,\n \"jheharmenian\", 0x057b,\n \"jis\", 0x3004,\n \"jmonospace\", 0xff4a,\n \"jparen\", 0x24a5,\n \"jsuperior\", 0x02b2,\n \"k\", 0x006b,\n \"kabashkircyrillic\", 0x04a1,\n \"kabengali\", 0x0995,\n \"kacute\", 0x1e31,\n \"kacyrillic\", 0x043a,\n \"kadescendercyrillic\", 0x049b,\n \"kadeva\", 0x0915,\n \"kaf\", 0x05db,\n \"kafarabic\", 0x0643,\n \"kafdagesh\", 0xfb3b,\n \"kafdageshhebrew\", 0xfb3b,\n \"kaffinalarabic\", 0xfeda,\n \"kafhebrew\", 0x05db,\n \"kafinitialarabic\", 0xfedb,\n \"kafmedialarabic\", 0xfedc,\n \"kafrafehebrew\", 0xfb4d,\n \"kagujarati\", 0x0a95,\n \"kagurmukhi\", 0x0a15,\n \"kahiragana\", 0x304b,\n \"kahookcyrillic\", 0x04c4,\n \"kakatakana\", 0x30ab,\n \"kakatakanahalfwidth\", 0xff76,\n \"kappa\", 0x03ba,\n \"kappasymbolgreek\", 0x03f0,\n \"kapyeounmieumkorean\", 0x3171,\n \"kapyeounphieuphkorean\", 0x3184,\n \"kapyeounpieupkorean\", 0x3178,\n \"kapyeounssangpieupkorean\", 0x3179,\n \"karoriisquare\", 0x330d,\n \"kashidaautoarabic\", 0x0640,\n \"kashidaautonosidebearingarabic\", 0x0640,\n \"kasmallkatakana\", 0x30f5,\n \"kasquare\", 0x3384,\n \"kasraarabic\", 0x0650,\n \"kasratanarabic\", 0x064d,\n \"kastrokecyrillic\", 0x049f,\n \"katahiraprolongmarkhalfwidth\", 0xff70,\n \"kaverticalstrokecyrillic\", 0x049d,\n \"kbopomofo\", 0x310e,\n \"kcalsquare\", 0x3389,\n \"kcaron\", 0x01e9,\n \"kcedilla\", 0x0137,\n \"kcircle\", 0x24da,\n \"kcommaaccent\", 0x0137,\n \"kdotbelow\", 0x1e33,\n \"keharmenian\", 0x0584,\n \"kehiragana\", 0x3051,\n \"kekatakana\", 0x30b1,\n \"kekatakanahalfwidth\", 0xff79,\n \"kenarmenian\", 0x056f,\n \"kesmallkatakana\", 0x30f6,\n \"kgreenlandic\", 0x0138,\n \"khabengali\", 0x0996,\n \"khacyrillic\", 0x0445,\n \"khadeva\", 0x0916,\n \"khagujarati\", 0x0a96,\n \"khagurmukhi\", 0x0a16,\n \"khaharabic\", 0x062e,\n \"khahfinalarabic\", 0xfea6,\n \"khahinitialarabic\", 0xfea7,\n \"khahmedialarabic\", 0xfea8,\n \"kheicoptic\", 0x03e7,\n \"khhadeva\", 0x0959,\n \"khhagurmukhi\", 0x0a59,\n \"khieukhacirclekorean\", 0x3278,\n \"khieukhaparenkorean\", 0x3218,\n \"khieukhcirclekorean\", 0x326a,\n \"khieukhkorean\", 0x314b,\n \"khieukhparenkorean\", 0x320a,\n \"khokhaithai\", 0x0e02,\n \"khokhonthai\", 0x0e05,\n \"khokhuatthai\", 0x0e03,\n \"khokhwaithai\", 0x0e04,\n \"khomutthai\", 0x0e5b,\n \"khook\", 0x0199,\n \"khorakhangthai\", 0x0e06,\n \"khzsquare\", 0x3391,\n \"kihiragana\", 0x304d,\n \"kikatakana\", 0x30ad,\n \"kikatakanahalfwidth\", 0xff77,\n \"kiroguramusquare\", 0x3315,\n \"kiromeetorusquare\", 0x3316,\n \"kirosquare\", 0x3314,\n \"kiyeokacirclekorean\", 0x326e,\n \"kiyeokaparenkorean\", 0x320e,\n \"kiyeokcirclekorean\", 0x3260,\n \"kiyeokkorean\", 0x3131,\n \"kiyeokparenkorean\", 0x3200,\n \"kiyeoksioskorean\", 0x3133,\n \"kjecyrillic\", 0x045c,\n \"klinebelow\", 0x1e35,\n \"klsquare\", 0x3398,\n \"kmcubedsquare\", 0x33a6,\n \"kmonospace\", 0xff4b,\n \"kmsquaredsquare\", 0x33a2,\n \"kohiragana\", 0x3053,\n \"kohmsquare\", 0x33c0,\n \"kokaithai\", 0x0e01,\n \"kokatakana\", 0x30b3,\n \"kokatakanahalfwidth\", 0xff7a,\n \"kooposquare\", 0x331e,\n \"koppacyrillic\", 0x0481,\n \"koreanstandardsymbol\", 0x327f,\n \"koroniscmb\", 0x0343,\n \"kparen\", 0x24a6,\n \"kpasquare\", 0x33aa,\n \"ksicyrillic\", 0x046f,\n \"ktsquare\", 0x33cf,\n \"kturned\", 0x029e,\n \"kuhiragana\", 0x304f,\n \"kukatakana\", 0x30af,\n \"kukatakanahalfwidth\", 0xff78,\n \"kvsquare\", 0x33b8,\n \"kwsquare\", 0x33be,\n \"l\", 0x006c,\n \"labengali\", 0x09b2,\n \"lacute\", 0x013a,\n \"ladeva\", 0x0932,\n \"lagujarati\", 0x0ab2,\n \"lagurmukhi\", 0x0a32,\n \"lakkhangyaothai\", 0x0e45,\n \"lamaleffinalarabic\", 0xfefc,\n \"lamalefhamzaabovefinalarabic\", 0xfef8,\n \"lamalefhamzaaboveisolatedarabic\", 0xfef7,\n \"lamalefhamzabelowfinalarabic\", 0xfefa,\n \"lamalefhamzabelowisolatedarabic\", 0xfef9,\n \"lamalefisolatedarabic\", 0xfefb,\n \"lamalefmaddaabovefinalarabic\", 0xfef6,\n \"lamalefmaddaaboveisolatedarabic\", 0xfef5,\n \"lamarabic\", 0x0644,\n \"lambda\", 0x03bb,\n \"lambdastroke\", 0x019b,\n \"lamed\", 0x05dc,\n \"lameddagesh\", 0xfb3c,\n \"lameddageshhebrew\", 0xfb3c,\n \"lamedhebrew\", 0x05dc,\n \"lamfinalarabic\", 0xfede,\n \"lamhahinitialarabic\", 0xfcca,\n \"laminitialarabic\", 0xfedf,\n \"lamjeeminitialarabic\", 0xfcc9,\n \"lamkhahinitialarabic\", 0xfccb,\n \"lamlamhehisolatedarabic\", 0xfdf2,\n \"lammedialarabic\", 0xfee0,\n \"lammeemhahinitialarabic\", 0xfd88,\n \"lammeeminitialarabic\", 0xfccc,\n \"largecircle\", 0x25ef,\n \"lbar\", 0x019a,\n \"lbelt\", 0x026c,\n \"lbopomofo\", 0x310c,\n \"lcaron\", 0x013e,\n \"lcedilla\", 0x013c,\n \"lcircle\", 0x24db,\n \"lcircumflexbelow\", 0x1e3d,\n \"lcommaaccent\", 0x013c,\n \"ldot\", 0x0140,\n \"ldotaccent\", 0x0140,\n \"ldotbelow\", 0x1e37,\n \"ldotbelowmacron\", 0x1e39,\n \"leftangleabovecmb\", 0x031a,\n \"lefttackbelowcmb\", 0x0318,\n \"less\", 0x003c,\n \"lessequal\", 0x2264,\n \"lessequalorgreater\", 0x22da,\n \"lessmonospace\", 0xff1c,\n \"lessorequivalent\", 0x2272,\n \"lessorgreater\", 0x2276,\n \"lessoverequal\", 0x2266,\n \"lesssmall\", 0xfe64,\n \"lezh\", 0x026e,\n \"lfblock\", 0x258c,\n \"lhookretroflex\", 0x026d,\n \"lira\", 0x20a4,\n \"liwnarmenian\", 0x056c,\n \"lj\", 0x01c9,\n \"ljecyrillic\", 0x0459,\n \"ll\", 0xf6c0,\n \"lladeva\", 0x0933,\n \"llagujarati\", 0x0ab3,\n \"llinebelow\", 0x1e3b,\n \"llladeva\", 0x0934,\n \"llvocalicbengali\", 0x09e1,\n \"llvocalicdeva\", 0x0961,\n \"llvocalicvowelsignbengali\", 0x09e3,\n \"llvocalicvowelsigndeva\", 0x0963,\n \"lmiddletilde\", 0x026b,\n \"lmonospace\", 0xff4c,\n \"lmsquare\", 0x33d0,\n \"lochulathai\", 0x0e2c,\n \"logicaland\", 0x2227,\n \"logicalnot\", 0x00ac,\n \"logicalnotreversed\", 0x2310,\n \"logicalor\", 0x2228,\n \"lolingthai\", 0x0e25,\n \"longs\", 0x017f,\n \"lowlinecenterline\", 0xfe4e,\n \"lowlinecmb\", 0x0332,\n \"lowlinedashed\", 0xfe4d,\n \"lozenge\", 0x25ca,\n \"lparen\", 0x24a7,\n \"lslash\", 0x0142,\n \"lsquare\", 0x2113,\n \"lsuperior\", 0xf6ee,\n \"ltshade\", 0x2591,\n \"luthai\", 0x0e26,\n \"lvocalicbengali\", 0x098c,\n \"lvocalicdeva\", 0x090c,\n \"lvocalicvowelsignbengali\", 0x09e2,\n \"lvocalicvowelsigndeva\", 0x0962,\n \"lxsquare\", 0x33d3,\n \"m\", 0x006d,\n \"mabengali\", 0x09ae,\n \"macron\", 0x00af,\n \"macronbelowcmb\", 0x0331,\n \"macroncmb\", 0x0304,\n \"macronlowmod\", 0x02cd,\n \"macronmonospace\", 0xffe3,\n \"macute\", 0x1e3f,\n \"madeva\", 0x092e,\n \"magujarati\", 0x0aae,\n \"magurmukhi\", 0x0a2e,\n \"mahapakhhebrew\", 0x05a4,\n \"mahapakhlefthebrew\", 0x05a4,\n \"mahiragana\", 0x307e,\n \"maichattawalowleftthai\", 0xf895,\n \"maichattawalowrightthai\", 0xf894,\n \"maichattawathai\", 0x0e4b,\n \"maichattawaupperleftthai\", 0xf893,\n \"maieklowleftthai\", 0xf88c,\n \"maieklowrightthai\", 0xf88b,\n \"maiekthai\", 0x0e48,\n \"maiekupperleftthai\", 0xf88a,\n \"maihanakatleftthai\", 0xf884,\n \"maihanakatthai\", 0x0e31,\n \"maitaikhuleftthai\", 0xf889,\n \"maitaikhuthai\", 0x0e47,\n \"maitholowleftthai\", 0xf88f,\n \"maitholowrightthai\", 0xf88e,\n \"maithothai\", 0x0e49,\n \"maithoupperleftthai\", 0xf88d,\n \"maitrilowleftthai\", 0xf892,\n \"maitrilowrightthai\", 0xf891,\n \"maitrithai\", 0x0e4a,\n \"maitriupperleftthai\", 0xf890,\n \"maiyamokthai\", 0x0e46,\n \"makatakana\", 0x30de,\n \"makatakanahalfwidth\", 0xff8f,\n \"male\", 0x2642,\n \"mansyonsquare\", 0x3347,\n \"maqafhebrew\", 0x05be,\n \"mars\", 0x2642,\n \"masoracirclehebrew\", 0x05af,\n \"masquare\", 0x3383,\n \"mbopomofo\", 0x3107,\n \"mbsquare\", 0x33d4,\n \"mcircle\", 0x24dc,\n \"mcubedsquare\", 0x33a5,\n \"mdotaccent\", 0x1e41,\n \"mdotbelow\", 0x1e43,\n \"meemarabic\", 0x0645,\n \"meemfinalarabic\", 0xfee2,\n \"meeminitialarabic\", 0xfee3,\n \"meemmedialarabic\", 0xfee4,\n \"meemmeeminitialarabic\", 0xfcd1,\n \"meemmeemisolatedarabic\", 0xfc48,\n \"meetorusquare\", 0x334d,\n \"mehiragana\", 0x3081,\n \"meizierasquare\", 0x337e,\n \"mekatakana\", 0x30e1,\n \"mekatakanahalfwidth\", 0xff92,\n \"mem\", 0x05de,\n \"memdagesh\", 0xfb3e,\n \"memdageshhebrew\", 0xfb3e,\n \"memhebrew\", 0x05de,\n \"menarmenian\", 0x0574,\n \"merkhahebrew\", 0x05a5,\n \"merkhakefulahebrew\", 0x05a6,\n \"merkhakefulalefthebrew\", 0x05a6,\n \"merkhalefthebrew\", 0x05a5,\n \"mhook\", 0x0271,\n \"mhzsquare\", 0x3392,\n \"middledotkatakanahalfwidth\", 0xff65,\n \"middot\", 0x00b7,\n \"mieumacirclekorean\", 0x3272,\n \"mieumaparenkorean\", 0x3212,\n \"mieumcirclekorean\", 0x3264,\n \"mieumkorean\", 0x3141,\n \"mieumpansioskorean\", 0x3170,\n \"mieumparenkorean\", 0x3204,\n \"mieumpieupkorean\", 0x316e,\n \"mieumsioskorean\", 0x316f,\n \"mihiragana\", 0x307f,\n \"mikatakana\", 0x30df,\n \"mikatakanahalfwidth\", 0xff90,\n \"minus\", 0x2212,\n \"minusbelowcmb\", 0x0320,\n \"minuscircle\", 0x2296,\n \"minusmod\", 0x02d7,\n \"minusplus\", 0x2213,\n \"minute\", 0x2032,\n \"miribaarusquare\", 0x334a,\n \"mirisquare\", 0x3349,\n \"mlonglegturned\", 0x0270,\n \"mlsquare\", 0x3396,\n \"mmcubedsquare\", 0x33a3,\n \"mmonospace\", 0xff4d,\n \"mmsquaredsquare\", 0x339f,\n \"mohiragana\", 0x3082,\n \"mohmsquare\", 0x33c1,\n \"mokatakana\", 0x30e2,\n \"mokatakanahalfwidth\", 0xff93,\n \"molsquare\", 0x33d6,\n \"momathai\", 0x0e21,\n \"moverssquare\", 0x33a7,\n \"moverssquaredsquare\", 0x33a8,\n \"mparen\", 0x24a8,\n \"mpasquare\", 0x33ab,\n \"mssquare\", 0x33b3,\n \"msuperior\", 0xf6ef,\n \"mturned\", 0x026f,\n \"mu\", 0x00b5,\n \"mu1\", 0x00b5,\n \"muasquare\", 0x3382,\n \"muchgreater\", 0x226b,\n \"muchless\", 0x226a,\n \"mufsquare\", 0x338c,\n \"mugreek\", 0x03bc,\n \"mugsquare\", 0x338d,\n \"muhiragana\", 0x3080,\n \"mukatakana\", 0x30e0,\n \"mukatakanahalfwidth\", 0xff91,\n \"mulsquare\", 0x3395,\n \"multiply\", 0x00d7,\n \"mumsquare\", 0x339b,\n \"munahhebrew\", 0x05a3,\n \"munahlefthebrew\", 0x05a3,\n \"musicalnote\", 0x266a,\n \"musicalnotedbl\", 0x266b,\n \"musicflatsign\", 0x266d,\n \"musicsharpsign\", 0x266f,\n \"mussquare\", 0x33b2,\n \"muvsquare\", 0x33b6,\n \"muwsquare\", 0x33bc,\n \"mvmegasquare\", 0x33b9,\n \"mvsquare\", 0x33b7,\n \"mwmegasquare\", 0x33bf,\n \"mwsquare\", 0x33bd,\n \"n\", 0x006e,\n \"nabengali\", 0x09a8,\n \"nabla\", 0x2207,\n \"nacute\", 0x0144,\n \"nadeva\", 0x0928,\n \"nagujarati\", 0x0aa8,\n \"nagurmukhi\", 0x0a28,\n \"nahiragana\", 0x306a,\n \"nakatakana\", 0x30ca,\n \"nakatakanahalfwidth\", 0xff85,\n \"napostrophe\", 0x0149,\n \"nasquare\", 0x3381,\n \"nbopomofo\", 0x310b,\n \"nbspace\", 0x00a0,\n \"ncaron\", 0x0148,\n \"ncedilla\", 0x0146,\n \"ncircle\", 0x24dd,\n \"ncircumflexbelow\", 0x1e4b,\n \"ncommaaccent\", 0x0146,\n \"ndotaccent\", 0x1e45,\n \"ndotbelow\", 0x1e47,\n \"nehiragana\", 0x306d,\n \"nekatakana\", 0x30cd,\n \"nekatakanahalfwidth\", 0xff88,\n \"newsheqelsign\", 0x20aa,\n \"nfsquare\", 0x338b,\n \"ngabengali\", 0x0999,\n \"ngadeva\", 0x0919,\n \"ngagujarati\", 0x0a99,\n \"ngagurmukhi\", 0x0a19,\n \"ngonguthai\", 0x0e07,\n \"nhiragana\", 0x3093,\n \"nhookleft\", 0x0272,\n \"nhookretroflex\", 0x0273,\n \"nieunacirclekorean\", 0x326f,\n \"nieunaparenkorean\", 0x320f,\n \"nieuncieuckorean\", 0x3135,\n \"nieuncirclekorean\", 0x3261,\n \"nieunhieuhkorean\", 0x3136,\n \"nieunkorean\", 0x3134,\n \"nieunpansioskorean\", 0x3168,\n \"nieunparenkorean\", 0x3201,\n \"nieunsioskorean\", 0x3167,\n \"nieuntikeutkorean\", 0x3166,\n \"nihiragana\", 0x306b,\n \"nikatakana\", 0x30cb,\n \"nikatakanahalfwidth\", 0xff86,\n \"nikhahitleftthai\", 0xf899,\n \"nikhahitthai\", 0x0e4d,\n \"nine\", 0x0039,\n \"ninearabic\", 0x0669,\n \"ninebengali\", 0x09ef,\n \"ninecircle\", 0x2468,\n \"ninecircleinversesansserif\", 0x2792,\n \"ninedeva\", 0x096f,\n \"ninegujarati\", 0x0aef,\n \"ninegurmukhi\", 0x0a6f,\n \"ninehackarabic\", 0x0669,\n \"ninehangzhou\", 0x3029,\n \"nineideographicparen\", 0x3228,\n \"nineinferior\", 0x2089,\n \"ninemonospace\", 0xff19,\n \"nineoldstyle\", 0xf739,\n \"nineparen\", 0x247c,\n \"nineperiod\", 0x2490,\n \"ninepersian\", 0x06f9,\n \"nineroman\", 0x2178,\n \"ninesuperior\", 0x2079,\n \"nineteencircle\", 0x2472,\n \"nineteenparen\", 0x2486,\n \"nineteenperiod\", 0x249a,\n \"ninethai\", 0x0e59,\n \"nj\", 0x01cc,\n \"njecyrillic\", 0x045a,\n \"nkatakana\", 0x30f3,\n \"nkatakanahalfwidth\", 0xff9d,\n \"nlegrightlong\", 0x019e,\n \"nlinebelow\", 0x1e49,\n \"nmonospace\", 0xff4e,\n \"nmsquare\", 0x339a,\n \"nnabengali\", 0x09a3,\n \"nnadeva\", 0x0923,\n \"nnagujarati\", 0x0aa3,\n \"nnagurmukhi\", 0x0a23,\n \"nnnadeva\", 0x0929,\n \"nohiragana\", 0x306e,\n \"nokatakana\", 0x30ce,\n \"nokatakanahalfwidth\", 0xff89,\n \"nonbreakingspace\", 0x00a0,\n \"nonenthai\", 0x0e13,\n \"nonuthai\", 0x0e19,\n \"noonarabic\", 0x0646,\n \"noonfinalarabic\", 0xfee6,\n \"noonghunnaarabic\", 0x06ba,\n \"noonghunnafinalarabic\", 0xfb9f,\n \"nooninitialarabic\", 0xfee7,\n \"noonjeeminitialarabic\", 0xfcd2,\n \"noonjeemisolatedarabic\", 0xfc4b,\n \"noonmedialarabic\", 0xfee8,\n \"noonmeeminitialarabic\", 0xfcd5,\n \"noonmeemisolatedarabic\", 0xfc4e,\n \"noonnoonfinalarabic\", 0xfc8d,\n \"notcontains\", 0x220c,\n \"notelement\", 0x2209,\n \"notelementof\", 0x2209,\n \"notequal\", 0x2260,\n \"notgreater\", 0x226f,\n \"notgreaternorequal\", 0x2271,\n \"notgreaternorless\", 0x2279,\n \"notidentical\", 0x2262,\n \"notless\", 0x226e,\n \"notlessnorequal\", 0x2270,\n \"notparallel\", 0x2226,\n \"notprecedes\", 0x2280,\n \"notsubset\", 0x2284,\n \"notsucceeds\", 0x2281,\n \"notsuperset\", 0x2285,\n \"nowarmenian\", 0x0576,\n \"nparen\", 0x24a9,\n \"nssquare\", 0x33b1,\n \"nsuperior\", 0x207f,\n \"ntilde\", 0x00f1,\n \"nu\", 0x03bd,\n \"nuhiragana\", 0x306c,\n \"nukatakana\", 0x30cc,\n \"nukatakanahalfwidth\", 0xff87,\n \"nuktabengali\", 0x09bc,\n \"nuktadeva\", 0x093c,\n \"nuktagujarati\", 0x0abc,\n \"nuktagurmukhi\", 0x0a3c,\n \"numbersign\", 0x0023,\n \"numbersignmonospace\", 0xff03,\n \"numbersignsmall\", 0xfe5f,\n \"numeralsigngreek\", 0x0374,\n \"numeralsignlowergreek\", 0x0375,\n \"numero\", 0x2116,\n \"nun\", 0x05e0,\n \"nundagesh\", 0xfb40,\n \"nundageshhebrew\", 0xfb40,\n \"nunhebrew\", 0x05e0,\n \"nvsquare\", 0x33b5,\n \"nwsquare\", 0x33bb,\n \"nyabengali\", 0x099e,\n \"nyadeva\", 0x091e,\n \"nyagujarati\", 0x0a9e,\n \"nyagurmukhi\", 0x0a1e,\n \"o\", 0x006f,\n \"oacute\", 0x00f3,\n \"oangthai\", 0x0e2d,\n \"obarred\", 0x0275,\n \"obarredcyrillic\", 0x04e9,\n \"obarreddieresiscyrillic\", 0x04eb,\n \"obengali\", 0x0993,\n \"obopomofo\", 0x311b,\n \"obreve\", 0x014f,\n \"ocandradeva\", 0x0911,\n \"ocandragujarati\", 0x0a91,\n \"ocandravowelsigndeva\", 0x0949,\n \"ocandravowelsigngujarati\", 0x0ac9,\n \"ocaron\", 0x01d2,\n \"ocircle\", 0x24de,\n \"ocircumflex\", 0x00f4,\n \"ocircumflexacute\", 0x1ed1,\n \"ocircumflexdotbelow\", 0x1ed9,\n \"ocircumflexgrave\", 0x1ed3,\n \"ocircumflexhookabove\", 0x1ed5,\n \"ocircumflextilde\", 0x1ed7,\n \"ocyrillic\", 0x043e,\n \"odblacute\", 0x0151,\n \"odblgrave\", 0x020d,\n \"odeva\", 0x0913,\n \"odieresis\", 0x00f6,\n \"odieresiscyrillic\", 0x04e7,\n \"odotbelow\", 0x1ecd,\n \"oe\", 0x0153,\n \"oekorean\", 0x315a,\n \"ogonek\", 0x02db,\n \"ogonekcmb\", 0x0328,\n \"ograve\", 0x00f2,\n \"ogujarati\", 0x0a93,\n \"oharmenian\", 0x0585,\n \"ohiragana\", 0x304a,\n \"ohookabove\", 0x1ecf,\n \"ohorn\", 0x01a1,\n \"ohornacute\", 0x1edb,\n \"ohorndotbelow\", 0x1ee3,\n \"ohorngrave\", 0x1edd,\n \"ohornhookabove\", 0x1edf,\n \"ohorntilde\", 0x1ee1,\n \"ohungarumlaut\", 0x0151,\n \"oi\", 0x01a3,\n \"oinvertedbreve\", 0x020f,\n \"okatakana\", 0x30aa,\n \"okatakanahalfwidth\", 0xff75,\n \"okorean\", 0x3157,\n \"olehebrew\", 0x05ab,\n \"omacron\", 0x014d,\n \"omacronacute\", 0x1e53,\n \"omacrongrave\", 0x1e51,\n \"omdeva\", 0x0950,\n \"omega\", 0x03c9,\n \"omega1\", 0x03d6,\n \"omegacyrillic\", 0x0461,\n \"omegalatinclosed\", 0x0277,\n \"omegaroundcyrillic\", 0x047b,\n \"omegatitlocyrillic\", 0x047d,\n \"omegatonos\", 0x03ce,\n \"omgujarati\", 0x0ad0,\n \"omicron\", 0x03bf,\n \"omicrontonos\", 0x03cc,\n \"omonospace\", 0xff4f,\n \"one\", 0x0031,\n \"onearabic\", 0x0661,\n \"onebengali\", 0x09e7,\n \"onecircle\", 0x2460,\n \"onecircleinversesansserif\", 0x278a,\n \"onedeva\", 0x0967,\n \"onedotenleader\", 0x2024,\n \"oneeighth\", 0x215b,\n \"onefitted\", 0xf6dc,\n \"onegujarati\", 0x0ae7,\n \"onegurmukhi\", 0x0a67,\n \"onehackarabic\", 0x0661,\n \"onehalf\", 0x00bd,\n \"onehangzhou\", 0x3021,\n \"oneideographicparen\", 0x3220,\n \"oneinferior\", 0x2081,\n \"onemonospace\", 0xff11,\n \"onenumeratorbengali\", 0x09f4,\n \"oneoldstyle\", 0xf731,\n \"oneparen\", 0x2474,\n \"oneperiod\", 0x2488,\n \"onepersian\", 0x06f1,\n \"onequarter\", 0x00bc,\n \"oneroman\", 0x2170,\n \"onesuperior\", 0x00b9,\n \"onethai\", 0x0e51,\n \"onethird\", 0x2153,\n \"oogonek\", 0x01eb,\n \"oogonekmacron\", 0x01ed,\n \"oogurmukhi\", 0x0a13,\n \"oomatragurmukhi\", 0x0a4b,\n \"oopen\", 0x0254,\n \"oparen\", 0x24aa,\n \"openbullet\", 0x25e6,\n \"option\", 0x2325,\n \"ordfeminine\", 0x00aa,\n \"ordmasculine\", 0x00ba,\n \"orthogonal\", 0x221f,\n \"oshortdeva\", 0x0912,\n \"oshortvowelsigndeva\", 0x094a,\n \"oslash\", 0x00f8,\n \"oslashacute\", 0x01ff,\n \"osmallhiragana\", 0x3049,\n \"osmallkatakana\", 0x30a9,\n \"osmallkatakanahalfwidth\", 0xff6b,\n \"ostrokeacute\", 0x01ff,\n \"osuperior\", 0xf6f0,\n \"otcyrillic\", 0x047f,\n \"otilde\", 0x00f5,\n \"otildeacute\", 0x1e4d,\n \"otildedieresis\", 0x1e4f,\n \"oubopomofo\", 0x3121,\n \"overline\", 0x203e,\n \"overlinecenterline\", 0xfe4a,\n \"overlinecmb\", 0x0305,\n \"overlinedashed\", 0xfe49,\n \"overlinedblwavy\", 0xfe4c,\n \"overlinewavy\", 0xfe4b,\n \"overscore\", 0x00af,\n \"ovowelsignbengali\", 0x09cb,\n \"ovowelsigndeva\", 0x094b,\n \"ovowelsigngujarati\", 0x0acb,\n \"p\", 0x0070,\n \"paampssquare\", 0x3380,\n \"paasentosquare\", 0x332b,\n \"pabengali\", 0x09aa,\n \"pacute\", 0x1e55,\n \"padeva\", 0x092a,\n \"pagedown\", 0x21df,\n \"pageup\", 0x21de,\n \"pagujarati\", 0x0aaa,\n \"pagurmukhi\", 0x0a2a,\n \"pahiragana\", 0x3071,\n \"paiyannoithai\", 0x0e2f,\n \"pakatakana\", 0x30d1,\n \"palatalizationcyrilliccmb\", 0x0484,\n \"palochkacyrillic\", 0x04c0,\n \"pansioskorean\", 0x317f,\n \"paragraph\", 0x00b6,\n \"parallel\", 0x2225,\n \"parenleft\", 0x0028,\n \"parenleftaltonearabic\", 0xfd3e,\n \"parenleftbt\", 0xf8ed,\n \"parenleftex\", 0xf8ec,\n \"parenleftinferior\", 0x208d,\n \"parenleftmonospace\", 0xff08,\n \"parenleftsmall\", 0xfe59,\n \"parenleftsuperior\", 0x207d,\n \"parenlefttp\", 0xf8eb,\n \"parenleftvertical\", 0xfe35,\n \"parenright\", 0x0029,\n \"parenrightaltonearabic\", 0xfd3f,\n \"parenrightbt\", 0xf8f8,\n \"parenrightex\", 0xf8f7,\n \"parenrightinferior\", 0x208e,\n \"parenrightmonospace\", 0xff09,\n \"parenrightsmall\", 0xfe5a,\n \"parenrightsuperior\", 0x207e,\n \"parenrighttp\", 0xf8f6,\n \"parenrightvertical\", 0xfe36,\n \"partialdiff\", 0x2202,\n \"paseqhebrew\", 0x05c0,\n \"pashtahebrew\", 0x0599,\n \"pasquare\", 0x33a9,\n \"patah\", 0x05b7,\n \"patah11\", 0x05b7,\n \"patah1d\", 0x05b7,\n \"patah2a\", 0x05b7,\n \"patahhebrew\", 0x05b7,\n \"patahnarrowhebrew\", 0x05b7,\n \"patahquarterhebrew\", 0x05b7,\n \"patahwidehebrew\", 0x05b7,\n \"pazerhebrew\", 0x05a1,\n \"pbopomofo\", 0x3106,\n \"pcircle\", 0x24df,\n \"pdotaccent\", 0x1e57,\n \"pe\", 0x05e4,\n \"pecyrillic\", 0x043f,\n \"pedagesh\", 0xfb44,\n \"pedageshhebrew\", 0xfb44,\n \"peezisquare\", 0x333b,\n \"pefinaldageshhebrew\", 0xfb43,\n \"peharabic\", 0x067e,\n \"peharmenian\", 0x057a,\n \"pehebrew\", 0x05e4,\n \"pehfinalarabic\", 0xfb57,\n \"pehinitialarabic\", 0xfb58,\n \"pehiragana\", 0x307a,\n \"pehmedialarabic\", 0xfb59,\n \"pekatakana\", 0x30da,\n \"pemiddlehookcyrillic\", 0x04a7,\n \"perafehebrew\", 0xfb4e,\n \"percent\", 0x0025,\n \"percentarabic\", 0x066a,\n \"percentmonospace\", 0xff05,\n \"percentsmall\", 0xfe6a,\n \"period\", 0x002e,\n \"periodarmenian\", 0x0589,\n \"periodcentered\", 0x00b7,\n \"periodhalfwidth\", 0xff61,\n \"periodinferior\", 0xf6e7,\n \"periodmonospace\", 0xff0e,\n \"periodsmall\", 0xfe52,\n \"periodsuperior\", 0xf6e8,\n \"perispomenigreekcmb\", 0x0342,\n \"perpendicular\", 0x22a5,\n \"perthousand\", 0x2030,\n \"peseta\", 0x20a7,\n \"pfsquare\", 0x338a,\n \"phabengali\", 0x09ab,\n \"phadeva\", 0x092b,\n \"phagujarati\", 0x0aab,\n \"phagurmukhi\", 0x0a2b,\n \"phi\", 0x03c6,\n \"phi1\", 0x03d5,\n \"phieuphacirclekorean\", 0x327a,\n \"phieuphaparenkorean\", 0x321a,\n \"phieuphcirclekorean\", 0x326c,\n \"phieuphkorean\", 0x314d,\n \"phieuphparenkorean\", 0x320c,\n \"philatin\", 0x0278,\n \"phinthuthai\", 0x0e3a,\n \"phisymbolgreek\", 0x03d5,\n \"phook\", 0x01a5,\n \"phophanthai\", 0x0e1e,\n \"phophungthai\", 0x0e1c,\n \"phosamphaothai\", 0x0e20,\n \"pi\", 0x03c0,\n \"pieupacirclekorean\", 0x3273,\n \"pieupaparenkorean\", 0x3213,\n \"pieupcieuckorean\", 0x3176,\n \"pieupcirclekorean\", 0x3265,\n \"pieupkiyeokkorean\", 0x3172,\n \"pieupkorean\", 0x3142,\n \"pieupparenkorean\", 0x3205,\n \"pieupsioskiyeokkorean\", 0x3174,\n \"pieupsioskorean\", 0x3144,\n \"pieupsiostikeutkorean\", 0x3175,\n \"pieupthieuthkorean\", 0x3177,\n \"pieuptikeutkorean\", 0x3173,\n \"pihiragana\", 0x3074,\n \"pikatakana\", 0x30d4,\n \"pisymbolgreek\", 0x03d6,\n \"piwrarmenian\", 0x0583,\n \"plus\", 0x002b,\n \"plusbelowcmb\", 0x031f,\n \"pluscircle\", 0x2295,\n \"plusminus\", 0x00b1,\n \"plusmod\", 0x02d6,\n \"plusmonospace\", 0xff0b,\n \"plussmall\", 0xfe62,\n \"plussuperior\", 0x207a,\n \"pmonospace\", 0xff50,\n \"pmsquare\", 0x33d8,\n \"pohiragana\", 0x307d,\n \"pointingindexdownwhite\", 0x261f,\n \"pointingindexleftwhite\", 0x261c,\n \"pointingindexrightwhite\", 0x261e,\n \"pointingindexupwhite\", 0x261d,\n \"pokatakana\", 0x30dd,\n \"poplathai\", 0x0e1b,\n \"postalmark\", 0x3012,\n \"postalmarkface\", 0x3020,\n \"pparen\", 0x24ab,\n \"precedes\", 0x227a,\n \"prescription\", 0x211e,\n \"primemod\", 0x02b9,\n \"primereversed\", 0x2035,\n \"product\", 0x220f,\n \"projective\", 0x2305,\n \"prolongedkana\", 0x30fc,\n \"propellor\", 0x2318,\n \"propersubset\", 0x2282,\n \"propersuperset\", 0x2283,\n \"proportion\", 0x2237,\n \"proportional\", 0x221d,\n \"psi\", 0x03c8,\n \"psicyrillic\", 0x0471,\n \"psilipneumatacyrilliccmb\", 0x0486,\n \"pssquare\", 0x33b0,\n \"puhiragana\", 0x3077,\n \"pukatakana\", 0x30d7,\n \"pvsquare\", 0x33b4,\n \"pwsquare\", 0x33ba,\n \"q\", 0x0071,\n \"qadeva\", 0x0958,\n \"qadmahebrew\", 0x05a8,\n \"qafarabic\", 0x0642,\n \"qaffinalarabic\", 0xfed6,\n \"qafinitialarabic\", 0xfed7,\n \"qafmedialarabic\", 0xfed8,\n \"qamats\", 0x05b8,\n \"qamats10\", 0x05b8,\n \"qamats1a\", 0x05b8,\n \"qamats1c\", 0x05b8,\n \"qamats27\", 0x05b8,\n \"qamats29\", 0x05b8,\n \"qamats33\", 0x05b8,\n \"qamatsde\", 0x05b8,\n \"qamatshebrew\", 0x05b8,\n \"qamatsnarrowhebrew\", 0x05b8,\n \"qamatsqatanhebrew\", 0x05b8,\n \"qamatsqatannarrowhebrew\", 0x05b8,\n \"qamatsqatanquarterhebrew\", 0x05b8,\n \"qamatsqatanwidehebrew\", 0x05b8,\n \"qamatsquarterhebrew\", 0x05b8,\n \"qamatswidehebrew\", 0x05b8,\n \"qarneyparahebrew\", 0x059f,\n \"qbopomofo\", 0x3111,\n \"qcircle\", 0x24e0,\n \"qhook\", 0x02a0,\n \"qmonospace\", 0xff51,\n \"qof\", 0x05e7,\n \"qofdagesh\", 0xfb47,\n \"qofdageshhebrew\", 0xfb47,\n \"qofhebrew\", 0x05e7,\n \"qparen\", 0x24ac,\n \"quarternote\", 0x2669,\n \"qubuts\", 0x05bb,\n \"qubuts18\", 0x05bb,\n \"qubuts25\", 0x05bb,\n \"qubuts31\", 0x05bb,\n \"qubutshebrew\", 0x05bb,\n \"qubutsnarrowhebrew\", 0x05bb,\n \"qubutsquarterhebrew\", 0x05bb,\n \"qubutswidehebrew\", 0x05bb,\n \"question\", 0x003f,\n \"questionarabic\", 0x061f,\n \"questionarmenian\", 0x055e,\n \"questiondown\", 0x00bf,\n \"questiondownsmall\", 0xf7bf,\n \"questiongreek\", 0x037e,\n \"questionmonospace\", 0xff1f,\n \"questionsmall\", 0xf73f,\n \"quotedbl\", 0x0022,\n \"quotedblbase\", 0x201e,\n \"quotedblleft\", 0x201c,\n \"quotedblmonospace\", 0xff02,\n \"quotedblprime\", 0x301e,\n \"quotedblprimereversed\", 0x301d,\n \"quotedblright\", 0x201d,\n \"quoteleft\", 0x2018,\n \"quoteleftreversed\", 0x201b,\n \"quotereversed\", 0x201b,\n \"quoteright\", 0x2019,\n \"quoterightn\", 0x0149,\n \"quotesinglbase\", 0x201a,\n \"quotesingle\", 0x0027,\n \"quotesinglemonospace\", 0xff07,\n \"r\", 0x0072,\n \"raarmenian\", 0x057c,\n \"rabengali\", 0x09b0,\n \"racute\", 0x0155,\n \"radeva\", 0x0930,\n \"radical\", 0x221a,\n \"radicalex\", 0xf8e5,\n \"radoverssquare\", 0x33ae,\n \"radoverssquaredsquare\", 0x33af,\n \"radsquare\", 0x33ad,\n \"rafe\", 0x05bf,\n \"rafehebrew\", 0x05bf,\n \"ragujarati\", 0x0ab0,\n \"ragurmukhi\", 0x0a30,\n \"rahiragana\", 0x3089,\n \"rakatakana\", 0x30e9,\n \"rakatakanahalfwidth\", 0xff97,\n \"ralowerdiagonalbengali\", 0x09f1,\n \"ramiddlediagonalbengali\", 0x09f0,\n \"ramshorn\", 0x0264,\n \"ratio\", 0x2236,\n \"rbopomofo\", 0x3116,\n \"rcaron\", 0x0159,\n \"rcedilla\", 0x0157,\n \"rcircle\", 0x24e1,\n \"rcommaaccent\", 0x0157,\n \"rdblgrave\", 0x0211,\n \"rdotaccent\", 0x1e59,\n \"rdotbelow\", 0x1e5b,\n \"rdotbelowmacron\", 0x1e5d,\n \"referencemark\", 0x203b,\n \"reflexsubset\", 0x2286,\n \"reflexsuperset\", 0x2287,\n \"registered\", 0x00ae,\n \"registersans\", 0xf8e8,\n \"registerserif\", 0xf6da,\n \"reharabic\", 0x0631,\n \"reharmenian\", 0x0580,\n \"rehfinalarabic\", 0xfeae,\n \"rehiragana\", 0x308c,\n \"rekatakana\", 0x30ec,\n \"rekatakanahalfwidth\", 0xff9a,\n \"resh\", 0x05e8,\n \"reshdageshhebrew\", 0xfb48,\n \"reshhebrew\", 0x05e8,\n \"reversedtilde\", 0x223d,\n \"reviahebrew\", 0x0597,\n \"reviamugrashhebrew\", 0x0597,\n \"revlogicalnot\", 0x2310,\n \"rfishhook\", 0x027e,\n \"rfishhookreversed\", 0x027f,\n \"rhabengali\", 0x09dd,\n \"rhadeva\", 0x095d,\n \"rho\", 0x03c1,\n \"rhook\", 0x027d,\n \"rhookturned\", 0x027b,\n \"rhookturnedsuperior\", 0x02b5,\n \"rhosymbolgreek\", 0x03f1,\n \"rhotichookmod\", 0x02de,\n \"rieulacirclekorean\", 0x3271,\n \"rieulaparenkorean\", 0x3211,\n \"rieulcirclekorean\", 0x3263,\n \"rieulhieuhkorean\", 0x3140,\n \"rieulkiyeokkorean\", 0x313a,\n \"rieulkiyeoksioskorean\", 0x3169,\n \"rieulkorean\", 0x3139,\n \"rieulmieumkorean\", 0x313b,\n \"rieulpansioskorean\", 0x316c,\n \"rieulparenkorean\", 0x3203,\n \"rieulphieuphkorean\", 0x313f,\n \"rieulpieupkorean\", 0x313c,\n \"rieulpieupsioskorean\", 0x316b,\n \"rieulsioskorean\", 0x313d,\n \"rieulthieuthkorean\", 0x313e,\n \"rieultikeutkorean\", 0x316a,\n \"rieulyeorinhieuhkorean\", 0x316d,\n \"rightangle\", 0x221f,\n \"righttackbelowcmb\", 0x0319,\n \"righttriangle\", 0x22bf,\n \"rihiragana\", 0x308a,\n \"rikatakana\", 0x30ea,\n \"rikatakanahalfwidth\", 0xff98,\n \"ring\", 0x02da,\n \"ringbelowcmb\", 0x0325,\n \"ringcmb\", 0x030a,\n \"ringhalfleft\", 0x02bf,\n \"ringhalfleftarmenian\", 0x0559,\n \"ringhalfleftbelowcmb\", 0x031c,\n \"ringhalfleftcentered\", 0x02d3,\n \"ringhalfright\", 0x02be,\n \"ringhalfrightbelowcmb\", 0x0339,\n \"ringhalfrightcentered\", 0x02d2,\n \"rinvertedbreve\", 0x0213,\n \"rittorusquare\", 0x3351,\n \"rlinebelow\", 0x1e5f,\n \"rlongleg\", 0x027c,\n \"rlonglegturned\", 0x027a,\n \"rmonospace\", 0xff52,\n \"rohiragana\", 0x308d,\n \"rokatakana\", 0x30ed,\n \"rokatakanahalfwidth\", 0xff9b,\n \"roruathai\", 0x0e23,\n \"rparen\", 0x24ad,\n \"rrabengali\", 0x09dc,\n \"rradeva\", 0x0931,\n \"rragurmukhi\", 0x0a5c,\n \"rreharabic\", 0x0691,\n \"rrehfinalarabic\", 0xfb8d,\n \"rrvocalicbengali\", 0x09e0,\n \"rrvocalicdeva\", 0x0960,\n \"rrvocalicgujarati\", 0x0ae0,\n \"rrvocalicvowelsignbengali\", 0x09c4,\n \"rrvocalicvowelsigndeva\", 0x0944,\n \"rrvocalicvowelsigngujarati\", 0x0ac4,\n \"rsuperior\", 0xf6f1,\n \"rtblock\", 0x2590,\n \"rturned\", 0x0279,\n \"rturnedsuperior\", 0x02b4,\n \"ruhiragana\", 0x308b,\n \"rukatakana\", 0x30eb,\n \"rukatakanahalfwidth\", 0xff99,\n \"rupeemarkbengali\", 0x09f2,\n \"rupeesignbengali\", 0x09f3,\n \"rupiah\", 0xf6dd,\n \"ruthai\", 0x0e24,\n \"rvocalicbengali\", 0x098b,\n \"rvocalicdeva\", 0x090b,\n \"rvocalicgujarati\", 0x0a8b,\n \"rvocalicvowelsignbengali\", 0x09c3,\n \"rvocalicvowelsigndeva\", 0x0943,\n \"rvocalicvowelsigngujarati\", 0x0ac3,\n \"s\", 0x0073,\n \"sabengali\", 0x09b8,\n \"sacute\", 0x015b,\n \"sacutedotaccent\", 0x1e65,\n \"sadarabic\", 0x0635,\n \"sadeva\", 0x0938,\n \"sadfinalarabic\", 0xfeba,\n \"sadinitialarabic\", 0xfebb,\n \"sadmedialarabic\", 0xfebc,\n \"sagujarati\", 0x0ab8,\n \"sagurmukhi\", 0x0a38,\n \"sahiragana\", 0x3055,\n \"sakatakana\", 0x30b5,\n \"sakatakanahalfwidth\", 0xff7b,\n \"sallallahoualayhewasallamarabic\", 0xfdfa,\n \"samekh\", 0x05e1,\n \"samekhdagesh\", 0xfb41,\n \"samekhdageshhebrew\", 0xfb41,\n \"samekhhebrew\", 0x05e1,\n \"saraaathai\", 0x0e32,\n \"saraaethai\", 0x0e41,\n \"saraaimaimalaithai\", 0x0e44,\n \"saraaimaimuanthai\", 0x0e43,\n \"saraamthai\", 0x0e33,\n \"saraathai\", 0x0e30,\n \"saraethai\", 0x0e40,\n \"saraiileftthai\", 0xf886,\n \"saraiithai\", 0x0e35,\n \"saraileftthai\", 0xf885,\n \"saraithai\", 0x0e34,\n \"saraothai\", 0x0e42,\n \"saraueeleftthai\", 0xf888,\n \"saraueethai\", 0x0e37,\n \"saraueleftthai\", 0xf887,\n \"sarauethai\", 0x0e36,\n \"sarauthai\", 0x0e38,\n \"sarauuthai\", 0x0e39,\n \"sbopomofo\", 0x3119,\n \"scaron\", 0x0161,\n \"scarondotaccent\", 0x1e67,\n \"scedilla\", 0x015f,\n \"schwa\", 0x0259,\n \"schwacyrillic\", 0x04d9,\n \"schwadieresiscyrillic\", 0x04db,\n \"schwahook\", 0x025a,\n \"scircle\", 0x24e2,\n \"scircumflex\", 0x015d,\n \"scommaaccent\", 0x0219,\n \"sdotaccent\", 0x1e61,\n \"sdotbelow\", 0x1e63,\n \"sdotbelowdotaccent\", 0x1e69,\n \"seagullbelowcmb\", 0x033c,\n \"second\", 0x2033,\n \"secondtonechinese\", 0x02ca,\n \"section\", 0x00a7,\n \"seenarabic\", 0x0633,\n \"seenfinalarabic\", 0xfeb2,\n \"seeninitialarabic\", 0xfeb3,\n \"seenmedialarabic\", 0xfeb4,\n \"segol\", 0x05b6,\n \"segol13\", 0x05b6,\n \"segol1f\", 0x05b6,\n \"segol2c\", 0x05b6,\n \"segolhebrew\", 0x05b6,\n \"segolnarrowhebrew\", 0x05b6,\n \"segolquarterhebrew\", 0x05b6,\n \"segoltahebrew\", 0x0592,\n \"segolwidehebrew\", 0x05b6,\n \"seharmenian\", 0x057d,\n \"sehiragana\", 0x305b,\n \"sekatakana\", 0x30bb,\n \"sekatakanahalfwidth\", 0xff7e,\n \"semicolon\", 0x003b,\n \"semicolonarabic\", 0x061b,\n \"semicolonmonospace\", 0xff1b,\n \"semicolonsmall\", 0xfe54,\n \"semivoicedmarkkana\", 0x309c,\n \"semivoicedmarkkanahalfwidth\", 0xff9f,\n \"sentisquare\", 0x3322,\n \"sentosquare\", 0x3323,\n \"seven\", 0x0037,\n \"sevenarabic\", 0x0667,\n \"sevenbengali\", 0x09ed,\n \"sevencircle\", 0x2466,\n \"sevencircleinversesansserif\", 0x2790,\n \"sevendeva\", 0x096d,\n \"seveneighths\", 0x215e,\n \"sevengujarati\", 0x0aed,\n \"sevengurmukhi\", 0x0a6d,\n \"sevenhackarabic\", 0x0667,\n \"sevenhangzhou\", 0x3027,\n \"sevenideographicparen\", 0x3226,\n \"seveninferior\", 0x2087,\n \"sevenmonospace\", 0xff17,\n \"sevenoldstyle\", 0xf737,\n \"sevenparen\", 0x247a,\n \"sevenperiod\", 0x248e,\n \"sevenpersian\", 0x06f7,\n \"sevenroman\", 0x2176,\n \"sevensuperior\", 0x2077,\n \"seventeencircle\", 0x2470,\n \"seventeenparen\", 0x2484,\n \"seventeenperiod\", 0x2498,\n \"seventhai\", 0x0e57,\n \"sfthyphen\", 0x00ad,\n \"shaarmenian\", 0x0577,\n \"shabengali\", 0x09b6,\n \"shacyrillic\", 0x0448,\n \"shaddaarabic\", 0x0651,\n \"shaddadammaarabic\", 0xfc61,\n \"shaddadammatanarabic\", 0xfc5e,\n \"shaddafathaarabic\", 0xfc60,\n \"shaddakasraarabic\", 0xfc62,\n \"shaddakasratanarabic\", 0xfc5f,\n \"shade\", 0x2592,\n \"shadedark\", 0x2593,\n \"shadelight\", 0x2591,\n \"shademedium\", 0x2592,\n \"shadeva\", 0x0936,\n \"shagujarati\", 0x0ab6,\n \"shagurmukhi\", 0x0a36,\n \"shalshelethebrew\", 0x0593,\n \"shbopomofo\", 0x3115,\n \"shchacyrillic\", 0x0449,\n \"sheenarabic\", 0x0634,\n \"sheenfinalarabic\", 0xfeb6,\n \"sheeninitialarabic\", 0xfeb7,\n \"sheenmedialarabic\", 0xfeb8,\n \"sheicoptic\", 0x03e3,\n \"sheqel\", 0x20aa,\n \"sheqelhebrew\", 0x20aa,\n \"sheva\", 0x05b0,\n \"sheva115\", 0x05b0,\n \"sheva15\", 0x05b0,\n \"sheva22\", 0x05b0,\n \"sheva2e\", 0x05b0,\n \"shevahebrew\", 0x05b0,\n \"shevanarrowhebrew\", 0x05b0,\n \"shevaquarterhebrew\", 0x05b0,\n \"shevawidehebrew\", 0x05b0,\n \"shhacyrillic\", 0x04bb,\n \"shimacoptic\", 0x03ed,\n \"shin\", 0x05e9,\n \"shindagesh\", 0xfb49,\n \"shindageshhebrew\", 0xfb49,\n \"shindageshshindot\", 0xfb2c,\n \"shindageshshindothebrew\", 0xfb2c,\n \"shindageshsindot\", 0xfb2d,\n \"shindageshsindothebrew\", 0xfb2d,\n \"shindothebrew\", 0x05c1,\n \"shinhebrew\", 0x05e9,\n \"shinshindot\", 0xfb2a,\n \"shinshindothebrew\", 0xfb2a,\n \"shinsindot\", 0xfb2b,\n \"shinsindothebrew\", 0xfb2b,\n \"shook\", 0x0282,\n \"sigma\", 0x03c3,\n \"sigma1\", 0x03c2,\n \"sigmafinal\", 0x03c2,\n \"sigmalunatesymbolgreek\", 0x03f2,\n \"sihiragana\", 0x3057,\n \"sikatakana\", 0x30b7,\n \"sikatakanahalfwidth\", 0xff7c,\n \"siluqhebrew\", 0x05bd,\n \"siluqlefthebrew\", 0x05bd,\n \"similar\", 0x223c,\n \"sindothebrew\", 0x05c2,\n \"siosacirclekorean\", 0x3274,\n \"siosaparenkorean\", 0x3214,\n \"sioscieuckorean\", 0x317e,\n \"sioscirclekorean\", 0x3266,\n \"sioskiyeokkorean\", 0x317a,\n \"sioskorean\", 0x3145,\n \"siosnieunkorean\", 0x317b,\n \"siosparenkorean\", 0x3206,\n \"siospieupkorean\", 0x317d,\n \"siostikeutkorean\", 0x317c,\n \"six\", 0x0036,\n \"sixarabic\", 0x0666,\n \"sixbengali\", 0x09ec,\n \"sixcircle\", 0x2465,\n \"sixcircleinversesansserif\", 0x278f,\n \"sixdeva\", 0x096c,\n \"sixgujarati\", 0x0aec,\n \"sixgurmukhi\", 0x0a6c,\n \"sixhackarabic\", 0x0666,\n \"sixhangzhou\", 0x3026,\n \"sixideographicparen\", 0x3225,\n \"sixinferior\", 0x2086,\n \"sixmonospace\", 0xff16,\n \"sixoldstyle\", 0xf736,\n \"sixparen\", 0x2479,\n \"sixperiod\", 0x248d,\n \"sixpersian\", 0x06f6,\n \"sixroman\", 0x2175,\n \"sixsuperior\", 0x2076,\n \"sixteencircle\", 0x246f,\n \"sixteencurrencydenominatorbengali\", 0x09f9,\n \"sixteenparen\", 0x2483,\n \"sixteenperiod\", 0x2497,\n \"sixthai\", 0x0e56,\n \"slash\", 0x002f,\n \"slashmonospace\", 0xff0f,\n \"slong\", 0x017f,\n \"slongdotaccent\", 0x1e9b,\n \"smileface\", 0x263a,\n \"smonospace\", 0xff53,\n \"sofpasuqhebrew\", 0x05c3,\n \"softhyphen\", 0x00ad,\n \"softsigncyrillic\", 0x044c,\n \"sohiragana\", 0x305d,\n \"sokatakana\", 0x30bd,\n \"sokatakanahalfwidth\", 0xff7f,\n \"soliduslongoverlaycmb\", 0x0338,\n \"solidusshortoverlaycmb\", 0x0337,\n \"sorusithai\", 0x0e29,\n \"sosalathai\", 0x0e28,\n \"sosothai\", 0x0e0b,\n \"sosuathai\", 0x0e2a,\n \"space\", 0x0020,\n \"spacehackarabic\", 0x0020,\n \"spade\", 0x2660,\n \"spadesuitblack\", 0x2660,\n \"spadesuitwhite\", 0x2664,\n \"sparen\", 0x24ae,\n \"squarebelowcmb\", 0x033b,\n \"squarecc\", 0x33c4,\n \"squarecm\", 0x339d,\n \"squarediagonalcrosshatchfill\", 0x25a9,\n \"squarehorizontalfill\", 0x25a4,\n \"squarekg\", 0x338f,\n \"squarekm\", 0x339e,\n \"squarekmcapital\", 0x33ce,\n \"squareln\", 0x33d1,\n \"squarelog\", 0x33d2,\n \"squaremg\", 0x338e,\n \"squaremil\", 0x33d5,\n \"squaremm\", 0x339c,\n \"squaremsquared\", 0x33a1,\n \"squareorthogonalcrosshatchfill\", 0x25a6,\n \"squareupperlefttolowerrightfill\", 0x25a7,\n \"squareupperrighttolowerleftfill\", 0x25a8,\n \"squareverticalfill\", 0x25a5,\n \"squarewhitewithsmallblack\", 0x25a3,\n \"srsquare\", 0x33db,\n \"ssabengali\", 0x09b7,\n \"ssadeva\", 0x0937,\n \"ssagujarati\", 0x0ab7,\n \"ssangcieuckorean\", 0x3149,\n \"ssanghieuhkorean\", 0x3185,\n \"ssangieungkorean\", 0x3180,\n \"ssangkiyeokkorean\", 0x3132,\n \"ssangnieunkorean\", 0x3165,\n \"ssangpieupkorean\", 0x3143,\n \"ssangsioskorean\", 0x3146,\n \"ssangtikeutkorean\", 0x3138,\n \"ssuperior\", 0xf6f2,\n \"sterling\", 0x00a3,\n \"sterlingmonospace\", 0xffe1,\n \"strokelongoverlaycmb\", 0x0336,\n \"strokeshortoverlaycmb\", 0x0335,\n \"subset\", 0x2282,\n \"subsetnotequal\", 0x228a,\n \"subsetorequal\", 0x2286,\n \"succeeds\", 0x227b,\n \"suchthat\", 0x220b,\n \"suhiragana\", 0x3059,\n \"sukatakana\", 0x30b9,\n \"sukatakanahalfwidth\", 0xff7d,\n \"sukunarabic\", 0x0652,\n \"summation\", 0x2211,\n \"sun\", 0x263c,\n \"superset\", 0x2283,\n \"supersetnotequal\", 0x228b,\n \"supersetorequal\", 0x2287,\n \"svsquare\", 0x33dc,\n \"syouwaerasquare\", 0x337c,\n \"t\", 0x0074,\n \"tabengali\", 0x09a4,\n \"tackdown\", 0x22a4,\n \"tackleft\", 0x22a3,\n \"tadeva\", 0x0924,\n \"tagujarati\", 0x0aa4,\n \"tagurmukhi\", 0x0a24,\n \"taharabic\", 0x0637,\n \"tahfinalarabic\", 0xfec2,\n \"tahinitialarabic\", 0xfec3,\n \"tahiragana\", 0x305f,\n \"tahmedialarabic\", 0xfec4,\n \"taisyouerasquare\", 0x337d,\n \"takatakana\", 0x30bf,\n \"takatakanahalfwidth\", 0xff80,\n \"tatweelarabic\", 0x0640,\n \"tau\", 0x03c4,\n \"tav\", 0x05ea,\n \"tavdages\", 0xfb4a,\n \"tavdagesh\", 0xfb4a,\n \"tavdageshhebrew\", 0xfb4a,\n \"tavhebrew\", 0x05ea,\n \"tbar\", 0x0167,\n \"tbopomofo\", 0x310a,\n \"tcaron\", 0x0165,\n \"tccurl\", 0x02a8,\n \"tcedilla\", 0x0163,\n \"tcheharabic\", 0x0686,\n \"tchehfinalarabic\", 0xfb7b,\n \"tchehinitialarabic\", 0xfb7c,\n \"tchehmedialarabic\", 0xfb7d,\n \"tcircle\", 0x24e3,\n \"tcircumflexbelow\", 0x1e71,\n \"tcommaaccent\", 0x0163,\n \"tdieresis\", 0x1e97,\n \"tdotaccent\", 0x1e6b,\n \"tdotbelow\", 0x1e6d,\n \"tecyrillic\", 0x0442,\n \"tedescendercyrillic\", 0x04ad,\n \"teharabic\", 0x062a,\n \"tehfinalarabic\", 0xfe96,\n \"tehhahinitialarabic\", 0xfca2,\n \"tehhahisolatedarabic\", 0xfc0c,\n \"tehinitialarabic\", 0xfe97,\n \"tehiragana\", 0x3066,\n \"tehjeeminitialarabic\", 0xfca1,\n \"tehjeemisolatedarabic\", 0xfc0b,\n \"tehmarbutaarabic\", 0x0629,\n \"tehmarbutafinalarabic\", 0xfe94,\n \"tehmedialarabic\", 0xfe98,\n \"tehmeeminitialarabic\", 0xfca4,\n \"tehmeemisolatedarabic\", 0xfc0e,\n \"tehnoonfinalarabic\", 0xfc73,\n \"tekatakana\", 0x30c6,\n \"tekatakanahalfwidth\", 0xff83,\n \"telephone\", 0x2121,\n \"telephoneblack\", 0x260e,\n \"telishagedolahebrew\", 0x05a0,\n \"telishaqetanahebrew\", 0x05a9,\n \"tencircle\", 0x2469,\n \"tenideographicparen\", 0x3229,\n \"tenparen\", 0x247d,\n \"tenperiod\", 0x2491,\n \"tenroman\", 0x2179,\n \"tesh\", 0x02a7,\n \"tet\", 0x05d8,\n \"tetdagesh\", 0xfb38,\n \"tetdageshhebrew\", 0xfb38,\n \"tethebrew\", 0x05d8,\n \"tetsecyrillic\", 0x04b5,\n \"tevirhebrew\", 0x059b,\n \"tevirlefthebrew\", 0x059b,\n \"thabengali\", 0x09a5,\n \"thadeva\", 0x0925,\n \"thagujarati\", 0x0aa5,\n \"thagurmukhi\", 0x0a25,\n \"thalarabic\", 0x0630,\n \"thalfinalarabic\", 0xfeac,\n \"thanthakhatlowleftthai\", 0xf898,\n \"thanthakhatlowrightthai\", 0xf897,\n \"thanthakhatthai\", 0x0e4c,\n \"thanthakhatupperleftthai\", 0xf896,\n \"theharabic\", 0x062b,\n \"thehfinalarabic\", 0xfe9a,\n \"thehinitialarabic\", 0xfe9b,\n \"thehmedialarabic\", 0xfe9c,\n \"thereexists\", 0x2203,\n \"therefore\", 0x2234,\n \"theta\", 0x03b8,\n \"theta1\", 0x03d1,\n \"thetasymbolgreek\", 0x03d1,\n \"thieuthacirclekorean\", 0x3279,\n \"thieuthaparenkorean\", 0x3219,\n \"thieuthcirclekorean\", 0x326b,\n \"thieuthkorean\", 0x314c,\n \"thieuthparenkorean\", 0x320b,\n \"thirteencircle\", 0x246c,\n \"thirteenparen\", 0x2480,\n \"thirteenperiod\", 0x2494,\n \"thonangmonthothai\", 0x0e11,\n \"thook\", 0x01ad,\n \"thophuthaothai\", 0x0e12,\n \"thorn\", 0x00fe,\n \"thothahanthai\", 0x0e17,\n \"thothanthai\", 0x0e10,\n \"thothongthai\", 0x0e18,\n \"thothungthai\", 0x0e16,\n \"thousandcyrillic\", 0x0482,\n \"thousandsseparatorarabic\", 0x066c,\n \"thousandsseparatorpersian\", 0x066c,\n \"three\", 0x0033,\n \"threearabic\", 0x0663,\n \"threebengali\", 0x09e9,\n \"threecircle\", 0x2462,\n \"threecircleinversesansserif\", 0x278c,\n \"threedeva\", 0x0969,\n \"threeeighths\", 0x215c,\n \"threegujarati\", 0x0ae9,\n \"threegurmukhi\", 0x0a69,\n \"threehackarabic\", 0x0663,\n \"threehangzhou\", 0x3023,\n \"threeideographicparen\", 0x3222,\n \"threeinferior\", 0x2083,\n \"threemonospace\", 0xff13,\n \"threenumeratorbengali\", 0x09f6,\n \"threeoldstyle\", 0xf733,\n \"threeparen\", 0x2476,\n \"threeperiod\", 0x248a,\n \"threepersian\", 0x06f3,\n \"threequarters\", 0x00be,\n \"threequartersemdash\", 0xf6de,\n \"threeroman\", 0x2172,\n \"threesuperior\", 0x00b3,\n \"threethai\", 0x0e53,\n \"thzsquare\", 0x3394,\n \"tihiragana\", 0x3061,\n \"tikatakana\", 0x30c1,\n \"tikatakanahalfwidth\", 0xff81,\n \"tikeutacirclekorean\", 0x3270,\n \"tikeutaparenkorean\", 0x3210,\n \"tikeutcirclekorean\", 0x3262,\n \"tikeutkorean\", 0x3137,\n \"tikeutparenkorean\", 0x3202,\n \"tilde\", 0x02dc,\n \"tildebelowcmb\", 0x0330,\n \"tildecmb\", 0x0303,\n \"tildecomb\", 0x0303,\n \"tildedoublecmb\", 0x0360,\n \"tildeoperator\", 0x223c,\n \"tildeoverlaycmb\", 0x0334,\n \"tildeverticalcmb\", 0x033e,\n \"timescircle\", 0x2297,\n \"tipehahebrew\", 0x0596,\n \"tipehalefthebrew\", 0x0596,\n \"tippigurmukhi\", 0x0a70,\n \"titlocyrilliccmb\", 0x0483,\n \"tiwnarmenian\", 0x057f,\n \"tlinebelow\", 0x1e6f,\n \"tmonospace\", 0xff54,\n \"toarmenian\", 0x0569,\n \"tohiragana\", 0x3068,\n \"tokatakana\", 0x30c8,\n \"tokatakanahalfwidth\", 0xff84,\n \"tonebarextrahighmod\", 0x02e5,\n \"tonebarextralowmod\", 0x02e9,\n \"tonebarhighmod\", 0x02e6,\n \"tonebarlowmod\", 0x02e8,\n \"tonebarmidmod\", 0x02e7,\n \"tonefive\", 0x01bd,\n \"tonesix\", 0x0185,\n \"tonetwo\", 0x01a8,\n \"tonos\", 0x0384,\n \"tonsquare\", 0x3327,\n \"topatakthai\", 0x0e0f,\n \"tortoiseshellbracketleft\", 0x3014,\n \"tortoiseshellbracketleftsmall\", 0xfe5d,\n \"tortoiseshellbracketleftvertical\", 0xfe39,\n \"tortoiseshellbracketright\", 0x3015,\n \"tortoiseshellbracketrightsmall\", 0xfe5e,\n \"tortoiseshellbracketrightvertical\", 0xfe3a,\n \"totaothai\", 0x0e15,\n \"tpalatalhook\", 0x01ab,\n \"tparen\", 0x24af,\n \"trademark\", 0x2122,\n \"trademarksans\", 0xf8ea,\n \"trademarkserif\", 0xf6db,\n \"tretroflexhook\", 0x0288,\n \"triagdn\", 0x25bc,\n \"triaglf\", 0x25c4,\n \"triagrt\", 0x25ba,\n \"triagup\", 0x25b2,\n \"ts\", 0x02a6,\n \"tsadi\", 0x05e6,\n \"tsadidagesh\", 0xfb46,\n \"tsadidageshhebrew\", 0xfb46,\n \"tsadihebrew\", 0x05e6,\n \"tsecyrillic\", 0x0446,\n \"tsere\", 0x05b5,\n \"tsere12\", 0x05b5,\n \"tsere1e\", 0x05b5,\n \"tsere2b\", 0x05b5,\n \"tserehebrew\", 0x05b5,\n \"tserenarrowhebrew\", 0x05b5,\n \"tserequarterhebrew\", 0x05b5,\n \"tserewidehebrew\", 0x05b5,\n \"tshecyrillic\", 0x045b,\n \"tsuperior\", 0xf6f3,\n \"ttabengali\", 0x099f,\n \"ttadeva\", 0x091f,\n \"ttagujarati\", 0x0a9f,\n \"ttagurmukhi\", 0x0a1f,\n \"tteharabic\", 0x0679,\n \"ttehfinalarabic\", 0xfb67,\n \"ttehinitialarabic\", 0xfb68,\n \"ttehmedialarabic\", 0xfb69,\n \"tthabengali\", 0x09a0,\n \"tthadeva\", 0x0920,\n \"tthagujarati\", 0x0aa0,\n \"tthagurmukhi\", 0x0a20,\n \"tturned\", 0x0287,\n \"tuhiragana\", 0x3064,\n \"tukatakana\", 0x30c4,\n \"tukatakanahalfwidth\", 0xff82,\n \"tusmallhiragana\", 0x3063,\n \"tusmallkatakana\", 0x30c3,\n \"tusmallkatakanahalfwidth\", 0xff6f,\n \"twelvecircle\", 0x246b,\n \"twelveparen\", 0x247f,\n \"twelveperiod\", 0x2493,\n \"twelveroman\", 0x217b,\n \"twentycircle\", 0x2473,\n \"twentyhangzhou\", 0x5344,\n \"twentyparen\", 0x2487,\n \"twentyperiod\", 0x249b,\n \"two\", 0x0032,\n \"twoarabic\", 0x0662,\n \"twobengali\", 0x09e8,\n \"twocircle\", 0x2461,\n \"twocircleinversesansserif\", 0x278b,\n \"twodeva\", 0x0968,\n \"twodotenleader\", 0x2025,\n \"twodotleader\", 0x2025,\n \"twodotleadervertical\", 0xfe30,\n \"twogujarati\", 0x0ae8,\n \"twogurmukhi\", 0x0a68,\n \"twohackarabic\", 0x0662,\n \"twohangzhou\", 0x3022,\n \"twoideographicparen\", 0x3221,\n \"twoinferior\", 0x2082,\n \"twomonospace\", 0xff12,\n \"twonumeratorbengali\", 0x09f5,\n \"twooldstyle\", 0xf732,\n \"twoparen\", 0x2475,\n \"twoperiod\", 0x2489,\n \"twopersian\", 0x06f2,\n \"tworoman\", 0x2171,\n \"twostroke\", 0x01bb,\n \"twosuperior\", 0x00b2,\n \"twothai\", 0x0e52,\n \"twothirds\", 0x2154,\n \"u\", 0x0075,\n \"uacute\", 0x00fa,\n \"ubar\", 0x0289,\n \"ubengali\", 0x0989,\n \"ubopomofo\", 0x3128,\n \"ubreve\", 0x016d,\n \"ucaron\", 0x01d4,\n \"ucircle\", 0x24e4,\n \"ucircumflex\", 0x00fb,\n \"ucircumflexbelow\", 0x1e77,\n \"ucyrillic\", 0x0443,\n \"udattadeva\", 0x0951,\n \"udblacute\", 0x0171,\n \"udblgrave\", 0x0215,\n \"udeva\", 0x0909,\n \"udieresis\", 0x00fc,\n \"udieresisacute\", 0x01d8,\n \"udieresisbelow\", 0x1e73,\n \"udieresiscaron\", 0x01da,\n \"udieresiscyrillic\", 0x04f1,\n \"udieresisgrave\", 0x01dc,\n \"udieresismacron\", 0x01d6,\n \"udotbelow\", 0x1ee5,\n \"ugrave\", 0x00f9,\n \"ugujarati\", 0x0a89,\n \"ugurmukhi\", 0x0a09,\n \"uhiragana\", 0x3046,\n \"uhookabove\", 0x1ee7,\n \"uhorn\", 0x01b0,\n \"uhornacute\", 0x1ee9,\n \"uhorndotbelow\", 0x1ef1,\n \"uhorngrave\", 0x1eeb,\n \"uhornhookabove\", 0x1eed,\n \"uhorntilde\", 0x1eef,\n \"uhungarumlaut\", 0x0171,\n \"uhungarumlautcyrillic\", 0x04f3,\n \"uinvertedbreve\", 0x0217,\n \"ukatakana\", 0x30a6,\n \"ukatakanahalfwidth\", 0xff73,\n \"ukcyrillic\", 0x0479,\n \"ukorean\", 0x315c,\n \"umacron\", 0x016b,\n \"umacroncyrillic\", 0x04ef,\n \"umacrondieresis\", 0x1e7b,\n \"umatragurmukhi\", 0x0a41,\n \"umonospace\", 0xff55,\n \"underscore\", 0x005f,\n \"underscoredbl\", 0x2017,\n \"underscoremonospace\", 0xff3f,\n \"underscorevertical\", 0xfe33,\n \"underscorewavy\", 0xfe4f,\n \"union\", 0x222a,\n \"universal\", 0x2200,\n \"uogonek\", 0x0173,\n \"uparen\", 0x24b0,\n \"upblock\", 0x2580,\n \"upperdothebrew\", 0x05c4,\n \"upsilon\", 0x03c5,\n \"upsilondieresis\", 0x03cb,\n \"upsilondieresistonos\", 0x03b0,\n \"upsilonlatin\", 0x028a,\n \"upsilontonos\", 0x03cd,\n \"uptackbelowcmb\", 0x031d,\n \"uptackmod\", 0x02d4,\n \"uragurmukhi\", 0x0a73,\n \"uring\", 0x016f,\n \"ushortcyrillic\", 0x045e,\n \"usmallhiragana\", 0x3045,\n \"usmallkatakana\", 0x30a5,\n \"usmallkatakanahalfwidth\", 0xff69,\n \"ustraightcyrillic\", 0x04af,\n \"ustraightstrokecyrillic\", 0x04b1,\n \"utilde\", 0x0169,\n \"utildeacute\", 0x1e79,\n \"utildebelow\", 0x1e75,\n \"uubengali\", 0x098a,\n \"uudeva\", 0x090a,\n \"uugujarati\", 0x0a8a,\n \"uugurmukhi\", 0x0a0a,\n \"uumatragurmukhi\", 0x0a42,\n \"uuvowelsignbengali\", 0x09c2,\n \"uuvowelsigndeva\", 0x0942,\n \"uuvowelsigngujarati\", 0x0ac2,\n \"uvowelsignbengali\", 0x09c1,\n \"uvowelsigndeva\", 0x0941,\n \"uvowelsigngujarati\", 0x0ac1,\n \"v\", 0x0076,\n \"vadeva\", 0x0935,\n \"vagujarati\", 0x0ab5,\n \"vagurmukhi\", 0x0a35,\n \"vakatakana\", 0x30f7,\n \"vav\", 0x05d5,\n \"vavdagesh\", 0xfb35,\n \"vavdagesh65\", 0xfb35,\n \"vavdageshhebrew\", 0xfb35,\n \"vavhebrew\", 0x05d5,\n \"vavholam\", 0xfb4b,\n \"vavholamhebrew\", 0xfb4b,\n \"vavvavhebrew\", 0x05f0,\n \"vavyodhebrew\", 0x05f1,\n \"vcircle\", 0x24e5,\n \"vdotbelow\", 0x1e7f,\n \"vecyrillic\", 0x0432,\n \"veharabic\", 0x06a4,\n \"vehfinalarabic\", 0xfb6b,\n \"vehinitialarabic\", 0xfb6c,\n \"vehmedialarabic\", 0xfb6d,\n \"vekatakana\", 0x30f9,\n \"venus\", 0x2640,\n \"verticalbar\", 0x007c,\n \"verticallineabovecmb\", 0x030d,\n \"verticallinebelowcmb\", 0x0329,\n \"verticallinelowmod\", 0x02cc,\n \"verticallinemod\", 0x02c8,\n \"vewarmenian\", 0x057e,\n \"vhook\", 0x028b,\n \"vikatakana\", 0x30f8,\n \"viramabengali\", 0x09cd,\n \"viramadeva\", 0x094d,\n \"viramagujarati\", 0x0acd,\n \"visargabengali\", 0x0983,\n \"visargadeva\", 0x0903,\n \"visargagujarati\", 0x0a83,\n \"vmonospace\", 0xff56,\n \"voarmenian\", 0x0578,\n \"voicediterationhiragana\", 0x309e,\n \"voicediterationkatakana\", 0x30fe,\n \"voicedmarkkana\", 0x309b,\n \"voicedmarkkanahalfwidth\", 0xff9e,\n \"vokatakana\", 0x30fa,\n \"vparen\", 0x24b1,\n \"vtilde\", 0x1e7d,\n \"vturned\", 0x028c,\n \"vuhiragana\", 0x3094,\n \"vukatakana\", 0x30f4,\n \"w\", 0x0077,\n \"wacute\", 0x1e83,\n \"waekorean\", 0x3159,\n \"wahiragana\", 0x308f,\n \"wakatakana\", 0x30ef,\n \"wakatakanahalfwidth\", 0xff9c,\n \"wakorean\", 0x3158,\n \"wasmallhiragana\", 0x308e,\n \"wasmallkatakana\", 0x30ee,\n \"wattosquare\", 0x3357,\n \"wavedash\", 0x301c,\n \"wavyunderscorevertical\", 0xfe34,\n \"wawarabic\", 0x0648,\n \"wawfinalarabic\", 0xfeee,\n \"wawhamzaabovearabic\", 0x0624,\n \"wawhamzaabovefinalarabic\", 0xfe86,\n \"wbsquare\", 0x33dd,\n \"wcircle\", 0x24e6,\n \"wcircumflex\", 0x0175,\n \"wdieresis\", 0x1e85,\n \"wdotaccent\", 0x1e87,\n \"wdotbelow\", 0x1e89,\n \"wehiragana\", 0x3091,\n \"weierstrass\", 0x2118,\n \"wekatakana\", 0x30f1,\n \"wekorean\", 0x315e,\n \"weokorean\", 0x315d,\n \"wgrave\", 0x1e81,\n \"whitebullet\", 0x25e6,\n \"whitecircle\", 0x25cb,\n \"whitecircleinverse\", 0x25d9,\n \"whitecornerbracketleft\", 0x300e,\n \"whitecornerbracketleftvertical\", 0xfe43,\n \"whitecornerbracketright\", 0x300f,\n \"whitecornerbracketrightvertical\", 0xfe44,\n \"whitediamond\", 0x25c7,\n \"whitediamondcontainingblacksmalldiamond\", 0x25c8,\n \"whitedownpointingsmalltriangle\", 0x25bf,\n \"whitedownpointingtriangle\", 0x25bd,\n \"whiteleftpointingsmalltriangle\", 0x25c3,\n \"whiteleftpointingtriangle\", 0x25c1,\n \"whitelenticularbracketleft\", 0x3016,\n \"whitelenticularbracketright\", 0x3017,\n \"whiterightpointingsmalltriangle\", 0x25b9,\n \"whiterightpointingtriangle\", 0x25b7,\n \"whitesmallsquare\", 0x25ab,\n \"whitesmilingface\", 0x263a,\n \"whitesquare\", 0x25a1,\n \"whitestar\", 0x2606,\n \"whitetelephone\", 0x260f,\n \"whitetortoiseshellbracketleft\", 0x3018,\n \"whitetortoiseshellbracketright\", 0x3019,\n \"whiteuppointingsmalltriangle\", 0x25b5,\n \"whiteuppointingtriangle\", 0x25b3,\n \"wihiragana\", 0x3090,\n \"wikatakana\", 0x30f0,\n \"wikorean\", 0x315f,\n \"wmonospace\", 0xff57,\n \"wohiragana\", 0x3092,\n \"wokatakana\", 0x30f2,\n \"wokatakanahalfwidth\", 0xff66,\n \"won\", 0x20a9,\n \"wonmonospace\", 0xffe6,\n \"wowaenthai\", 0x0e27,\n \"wparen\", 0x24b2,\n \"wring\", 0x1e98,\n \"wsuperior\", 0x02b7,\n \"wturned\", 0x028d,\n \"wynn\", 0x01bf,\n \"x\", 0x0078,\n \"xabovecmb\", 0x033d,\n \"xbopomofo\", 0x3112,\n \"xcircle\", 0x24e7,\n \"xdieresis\", 0x1e8d,\n \"xdotaccent\", 0x1e8b,\n \"xeharmenian\", 0x056d,\n \"xi\", 0x03be,\n \"xmonospace\", 0xff58,\n \"xparen\", 0x24b3,\n \"xsuperior\", 0x02e3,\n \"y\", 0x0079,\n \"yaadosquare\", 0x334e,\n \"yabengali\", 0x09af,\n \"yacute\", 0x00fd,\n \"yadeva\", 0x092f,\n \"yaekorean\", 0x3152,\n \"yagujarati\", 0x0aaf,\n \"yagurmukhi\", 0x0a2f,\n \"yahiragana\", 0x3084,\n \"yakatakana\", 0x30e4,\n \"yakatakanahalfwidth\", 0xff94,\n \"yakorean\", 0x3151,\n \"yamakkanthai\", 0x0e4e,\n \"yasmallhiragana\", 0x3083,\n \"yasmallkatakana\", 0x30e3,\n \"yasmallkatakanahalfwidth\", 0xff6c,\n \"yatcyrillic\", 0x0463,\n \"ycircle\", 0x24e8,\n \"ycircumflex\", 0x0177,\n \"ydieresis\", 0x00ff,\n \"ydotaccent\", 0x1e8f,\n \"ydotbelow\", 0x1ef5,\n \"yeharabic\", 0x064a,\n \"yehbarreearabic\", 0x06d2,\n \"yehbarreefinalarabic\", 0xfbaf,\n \"yehfinalarabic\", 0xfef2,\n \"yehhamzaabovearabic\", 0x0626,\n \"yehhamzaabovefinalarabic\", 0xfe8a,\n \"yehhamzaaboveinitialarabic\", 0xfe8b,\n \"yehhamzaabovemedialarabic\", 0xfe8c,\n \"yehinitialarabic\", 0xfef3,\n \"yehmedialarabic\", 0xfef4,\n \"yehmeeminitialarabic\", 0xfcdd,\n \"yehmeemisolatedarabic\", 0xfc58,\n \"yehnoonfinalarabic\", 0xfc94,\n \"yehthreedotsbelowarabic\", 0x06d1,\n \"yekorean\", 0x3156,\n \"yen\", 0x00a5,\n \"yenmonospace\", 0xffe5,\n \"yeokorean\", 0x3155,\n \"yeorinhieuhkorean\", 0x3186,\n \"yerahbenyomohebrew\", 0x05aa,\n \"yerahbenyomolefthebrew\", 0x05aa,\n \"yericyrillic\", 0x044b,\n \"yerudieresiscyrillic\", 0x04f9,\n \"yesieungkorean\", 0x3181,\n \"yesieungpansioskorean\", 0x3183,\n \"yesieungsioskorean\", 0x3182,\n \"yetivhebrew\", 0x059a,\n \"ygrave\", 0x1ef3,\n \"yhook\", 0x01b4,\n \"yhookabove\", 0x1ef7,\n \"yiarmenian\", 0x0575,\n \"yicyrillic\", 0x0457,\n \"yikorean\", 0x3162,\n \"yinyang\", 0x262f,\n \"yiwnarmenian\", 0x0582,\n \"ymonospace\", 0xff59,\n \"yod\", 0x05d9,\n \"yoddagesh\", 0xfb39,\n \"yoddageshhebrew\", 0xfb39,\n \"yodhebrew\", 0x05d9,\n \"yodyodhebrew\", 0x05f2,\n \"yodyodpatahhebrew\", 0xfb1f,\n \"yohiragana\", 0x3088,\n \"yoikorean\", 0x3189,\n \"yokatakana\", 0x30e8,\n \"yokatakanahalfwidth\", 0xff96,\n \"yokorean\", 0x315b,\n \"yosmallhiragana\", 0x3087,\n \"yosmallkatakana\", 0x30e7,\n \"yosmallkatakanahalfwidth\", 0xff6e,\n \"yotgreek\", 0x03f3,\n \"yoyaekorean\", 0x3188,\n \"yoyakorean\", 0x3187,\n \"yoyakthai\", 0x0e22,\n \"yoyingthai\", 0x0e0d,\n \"yparen\", 0x24b4,\n \"ypogegrammeni\", 0x037a,\n \"ypogegrammenigreekcmb\", 0x0345,\n \"yr\", 0x01a6,\n \"yring\", 0x1e99,\n \"ysuperior\", 0x02b8,\n \"ytilde\", 0x1ef9,\n \"yturned\", 0x028e,\n \"yuhiragana\", 0x3086,\n \"yuikorean\", 0x318c,\n \"yukatakana\", 0x30e6,\n \"yukatakanahalfwidth\", 0xff95,\n \"yukorean\", 0x3160,\n \"yusbigcyrillic\", 0x046b,\n \"yusbigiotifiedcyrillic\", 0x046d,\n \"yuslittlecyrillic\", 0x0467,\n \"yuslittleiotifiedcyrillic\", 0x0469,\n \"yusmallhiragana\", 0x3085,\n \"yusmallkatakana\", 0x30e5,\n \"yusmallkatakanahalfwidth\", 0xff6d,\n \"yuyekorean\", 0x318b,\n \"yuyeokorean\", 0x318a,\n \"yyabengali\", 0x09df,\n \"yyadeva\", 0x095f,\n \"z\", 0x007a,\n \"zaarmenian\", 0x0566,\n \"zacute\", 0x017a,\n \"zadeva\", 0x095b,\n \"zagurmukhi\", 0x0a5b,\n \"zaharabic\", 0x0638,\n \"zahfinalarabic\", 0xfec6,\n \"zahinitialarabic\", 0xfec7,\n \"zahiragana\", 0x3056,\n \"zahmedialarabic\", 0xfec8,\n \"zainarabic\", 0x0632,\n \"zainfinalarabic\", 0xfeb0,\n \"zakatakana\", 0x30b6,\n \"zaqefgadolhebrew\", 0x0595,\n \"zaqefqatanhebrew\", 0x0594,\n \"zarqahebrew\", 0x0598,\n \"zayin\", 0x05d6,\n \"zayindagesh\", 0xfb36,\n \"zayindageshhebrew\", 0xfb36,\n \"zayinhebrew\", 0x05d6,\n \"zbopomofo\", 0x3117,\n \"zcaron\", 0x017e,\n \"zcircle\", 0x24e9,\n \"zcircumflex\", 0x1e91,\n \"zcurl\", 0x0291,\n \"zdot\", 0x017c,\n \"zdotaccent\", 0x017c,\n \"zdotbelow\", 0x1e93,\n \"zecyrillic\", 0x0437,\n \"zedescendercyrillic\", 0x0499,\n \"zedieresiscyrillic\", 0x04df,\n \"zehiragana\", 0x305c,\n \"zekatakana\", 0x30bc,\n \"zero\", 0x0030,\n \"zeroarabic\", 0x0660,\n \"zerobengali\", 0x09e6,\n \"zerodeva\", 0x0966,\n \"zerogujarati\", 0x0ae6,\n \"zerogurmukhi\", 0x0a66,\n \"zerohackarabic\", 0x0660,\n \"zeroinferior\", 0x2080,\n \"zeromonospace\", 0xff10,\n \"zerooldstyle\", 0xf730,\n \"zeropersian\", 0x06f0,\n \"zerosuperior\", 0x2070,\n \"zerothai\", 0x0e50,\n \"zerowidthjoiner\", 0xfeff,\n \"zerowidthnonjoiner\", 0x200c,\n \"zerowidthspace\", 0x200b,\n \"zeta\", 0x03b6,\n \"zhbopomofo\", 0x3113,\n \"zhearmenian\", 0x056a,\n \"zhebrevecyrillic\", 0x04c2,\n \"zhecyrillic\", 0x0436,\n \"zhedescendercyrillic\", 0x0497,\n \"zhedieresiscyrillic\", 0x04dd,\n \"zihiragana\", 0x3058,\n \"zikatakana\", 0x30b8,\n \"zinorhebrew\", 0x05ae,\n \"zlinebelow\", 0x1e95,\n \"zmonospace\", 0xff5a,\n \"zohiragana\", 0x305e,\n \"zokatakana\", 0x30be,\n \"zparen\", 0x24b5,\n \"zretroflexhook\", 0x0290,\n \"zstroke\", 0x01b6,\n \"zuhiragana\", 0x305a,\n \"zukatakana\", 0x30ba,\n \".notdef\", 0x0000,\n\n // TeX-specific glyph names.\n \"angbracketleftbig\", 0x2329,\n \"angbracketleftBig\", 0x2329,\n \"angbracketleftbigg\", 0x2329,\n \"angbracketleftBigg\", 0x2329,\n \"angbracketrightBig\", 0x232a,\n \"angbracketrightbig\", 0x232a,\n \"angbracketrightBigg\", 0x232a,\n \"angbracketrightbigg\", 0x232a,\n \"arrowhookleft\", 0x21aa,\n \"arrowhookright\", 0x21a9,\n \"arrowlefttophalf\", 0x21bc,\n \"arrowleftbothalf\", 0x21bd,\n \"arrownortheast\", 0x2197,\n \"arrownorthwest\", 0x2196,\n \"arrowrighttophalf\", 0x21c0,\n \"arrowrightbothalf\", 0x21c1,\n \"arrowsoutheast\", 0x2198,\n \"arrowsouthwest\", 0x2199,\n \"backslashbig\", 0x2216,\n \"backslashBig\", 0x2216,\n \"backslashBigg\", 0x2216,\n \"backslashbigg\", 0x2216,\n \"bardbl\", 0x2016,\n \"bracehtipdownleft\", 0xfe37,\n \"bracehtipdownright\", 0xfe37,\n \"bracehtipupleft\", 0xfe38,\n \"bracehtipupright\", 0xfe38,\n \"braceleftBig\", 0x007b,\n \"braceleftbig\", 0x007b,\n \"braceleftbigg\", 0x007b,\n \"braceleftBigg\", 0x007b,\n \"bracerightBig\", 0x007d,\n \"bracerightbig\", 0x007d,\n \"bracerightbigg\", 0x007d,\n \"bracerightBigg\", 0x007d,\n \"bracketleftbig\", 0x005b,\n \"bracketleftBig\", 0x005b,\n \"bracketleftbigg\", 0x005b,\n \"bracketleftBigg\", 0x005b,\n \"bracketrightBig\", 0x005d,\n \"bracketrightbig\", 0x005d,\n \"bracketrightbigg\", 0x005d,\n \"bracketrightBigg\", 0x005d,\n \"ceilingleftbig\", 0x2308,\n \"ceilingleftBig\", 0x2308,\n \"ceilingleftBigg\", 0x2308,\n \"ceilingleftbigg\", 0x2308,\n \"ceilingrightbig\", 0x2309,\n \"ceilingrightBig\", 0x2309,\n \"ceilingrightbigg\", 0x2309,\n \"ceilingrightBigg\", 0x2309,\n \"circledotdisplay\", 0x2299,\n \"circledottext\", 0x2299,\n \"circlemultiplydisplay\", 0x2297,\n \"circlemultiplytext\", 0x2297,\n \"circleplusdisplay\", 0x2295,\n \"circleplustext\", 0x2295,\n \"contintegraldisplay\", 0x222e,\n \"contintegraltext\", 0x222e,\n \"coproductdisplay\", 0x2210,\n \"coproducttext\", 0x2210,\n \"floorleftBig\", 0x230a,\n \"floorleftbig\", 0x230a,\n \"floorleftbigg\", 0x230a,\n \"floorleftBigg\", 0x230a,\n \"floorrightbig\", 0x230b,\n \"floorrightBig\", 0x230b,\n \"floorrightBigg\", 0x230b,\n \"floorrightbigg\", 0x230b,\n \"hatwide\", 0x0302,\n \"hatwider\", 0x0302,\n \"hatwidest\", 0x0302,\n \"intercal\", 0x1d40,\n \"integraldisplay\", 0x222b,\n \"integraltext\", 0x222b,\n \"intersectiondisplay\", 0x22c2,\n \"intersectiontext\", 0x22c2,\n \"logicalanddisplay\", 0x2227,\n \"logicalandtext\", 0x2227,\n \"logicalordisplay\", 0x2228,\n \"logicalortext\", 0x2228,\n \"parenleftBig\", 0x0028,\n \"parenleftbig\", 0x0028,\n \"parenleftBigg\", 0x0028,\n \"parenleftbigg\", 0x0028,\n \"parenrightBig\", 0x0029,\n \"parenrightbig\", 0x0029,\n \"parenrightBigg\", 0x0029,\n \"parenrightbigg\", 0x0029,\n \"prime\", 0x2032,\n \"productdisplay\", 0x220f,\n \"producttext\", 0x220f,\n \"radicalbig\", 0x221a,\n \"radicalBig\", 0x221a,\n \"radicalBigg\", 0x221a,\n \"radicalbigg\", 0x221a,\n \"radicalbt\", 0x221a,\n \"radicaltp\", 0x221a,\n \"radicalvertex\", 0x221a,\n \"slashbig\", 0x002f,\n \"slashBig\", 0x002f,\n \"slashBigg\", 0x002f,\n \"slashbigg\", 0x002f,\n \"summationdisplay\", 0x2211,\n \"summationtext\", 0x2211,\n \"tildewide\", 0x02dc,\n \"tildewider\", 0x02dc,\n \"tildewidest\", 0x02dc,\n \"uniondisplay\", 0x22c3,\n \"unionmultidisplay\", 0x228e,\n \"unionmultitext\", 0x228e,\n \"unionsqdisplay\", 0x2294,\n \"unionsqtext\", 0x2294,\n \"uniontext\", 0x22c3,\n \"vextenddouble\", 0x2225,\n \"vextendsingle\", 0x2223,\n ];\n});\n\nconst getDingbatsGlyphsUnicode = getArrayLookupTableFactory(function () {\n // prettier-ignore\n return [\n \"space\", 0x0020,\n \"a1\", 0x2701,\n \"a2\", 0x2702,\n \"a202\", 0x2703,\n \"a3\", 0x2704,\n \"a4\", 0x260e,\n \"a5\", 0x2706,\n \"a119\", 0x2707,\n \"a118\", 0x2708,\n \"a117\", 0x2709,\n \"a11\", 0x261b,\n \"a12\", 0x261e,\n \"a13\", 0x270c,\n \"a14\", 0x270d,\n \"a15\", 0x270e,\n \"a16\", 0x270f,\n \"a105\", 0x2710,\n \"a17\", 0x2711,\n \"a18\", 0x2712,\n \"a19\", 0x2713,\n \"a20\", 0x2714,\n \"a21\", 0x2715,\n \"a22\", 0x2716,\n \"a23\", 0x2717,\n \"a24\", 0x2718,\n \"a25\", 0x2719,\n \"a26\", 0x271a,\n \"a27\", 0x271b,\n \"a28\", 0x271c,\n \"a6\", 0x271d,\n \"a7\", 0x271e,\n \"a8\", 0x271f,\n \"a9\", 0x2720,\n \"a10\", 0x2721,\n \"a29\", 0x2722,\n \"a30\", 0x2723,\n \"a31\", 0x2724,\n \"a32\", 0x2725,\n \"a33\", 0x2726,\n \"a34\", 0x2727,\n \"a35\", 0x2605,\n \"a36\", 0x2729,\n \"a37\", 0x272a,\n \"a38\", 0x272b,\n \"a39\", 0x272c,\n \"a40\", 0x272d,\n \"a41\", 0x272e,\n \"a42\", 0x272f,\n \"a43\", 0x2730,\n \"a44\", 0x2731,\n \"a45\", 0x2732,\n \"a46\", 0x2733,\n \"a47\", 0x2734,\n \"a48\", 0x2735,\n \"a49\", 0x2736,\n \"a50\", 0x2737,\n \"a51\", 0x2738,\n \"a52\", 0x2739,\n \"a53\", 0x273a,\n \"a54\", 0x273b,\n \"a55\", 0x273c,\n \"a56\", 0x273d,\n \"a57\", 0x273e,\n \"a58\", 0x273f,\n \"a59\", 0x2740,\n \"a60\", 0x2741,\n \"a61\", 0x2742,\n \"a62\", 0x2743,\n \"a63\", 0x2744,\n \"a64\", 0x2745,\n \"a65\", 0x2746,\n \"a66\", 0x2747,\n \"a67\", 0x2748,\n \"a68\", 0x2749,\n \"a69\", 0x274a,\n \"a70\", 0x274b,\n \"a71\", 0x25cf,\n \"a72\", 0x274d,\n \"a73\", 0x25a0,\n \"a74\", 0x274f,\n \"a203\", 0x2750,\n \"a75\", 0x2751,\n \"a204\", 0x2752,\n \"a76\", 0x25b2,\n \"a77\", 0x25bc,\n \"a78\", 0x25c6,\n \"a79\", 0x2756,\n \"a81\", 0x25d7,\n \"a82\", 0x2758,\n \"a83\", 0x2759,\n \"a84\", 0x275a,\n \"a97\", 0x275b,\n \"a98\", 0x275c,\n \"a99\", 0x275d,\n \"a100\", 0x275e,\n \"a101\", 0x2761,\n \"a102\", 0x2762,\n \"a103\", 0x2763,\n \"a104\", 0x2764,\n \"a106\", 0x2765,\n \"a107\", 0x2766,\n \"a108\", 0x2767,\n \"a112\", 0x2663,\n \"a111\", 0x2666,\n \"a110\", 0x2665,\n \"a109\", 0x2660,\n \"a120\", 0x2460,\n \"a121\", 0x2461,\n \"a122\", 0x2462,\n \"a123\", 0x2463,\n \"a124\", 0x2464,\n \"a125\", 0x2465,\n \"a126\", 0x2466,\n \"a127\", 0x2467,\n \"a128\", 0x2468,\n \"a129\", 0x2469,\n \"a130\", 0x2776,\n \"a131\", 0x2777,\n \"a132\", 0x2778,\n \"a133\", 0x2779,\n \"a134\", 0x277a,\n \"a135\", 0x277b,\n \"a136\", 0x277c,\n \"a137\", 0x277d,\n \"a138\", 0x277e,\n \"a139\", 0x277f,\n \"a140\", 0x2780,\n \"a141\", 0x2781,\n \"a142\", 0x2782,\n \"a143\", 0x2783,\n \"a144\", 0x2784,\n \"a145\", 0x2785,\n \"a146\", 0x2786,\n \"a147\", 0x2787,\n \"a148\", 0x2788,\n \"a149\", 0x2789,\n \"a150\", 0x278a,\n \"a151\", 0x278b,\n \"a152\", 0x278c,\n \"a153\", 0x278d,\n \"a154\", 0x278e,\n \"a155\", 0x278f,\n \"a156\", 0x2790,\n \"a157\", 0x2791,\n \"a158\", 0x2792,\n \"a159\", 0x2793,\n \"a160\", 0x2794,\n \"a161\", 0x2192,\n \"a163\", 0x2194,\n \"a164\", 0x2195,\n \"a196\", 0x2798,\n \"a165\", 0x2799,\n \"a192\", 0x279a,\n \"a166\", 0x279b,\n \"a167\", 0x279c,\n \"a168\", 0x279d,\n \"a169\", 0x279e,\n \"a170\", 0x279f,\n \"a171\", 0x27a0,\n \"a172\", 0x27a1,\n \"a173\", 0x27a2,\n \"a162\", 0x27a3,\n \"a174\", 0x27a4,\n \"a175\", 0x27a5,\n \"a176\", 0x27a6,\n \"a177\", 0x27a7,\n \"a178\", 0x27a8,\n \"a179\", 0x27a9,\n \"a193\", 0x27aa,\n \"a180\", 0x27ab,\n \"a199\", 0x27ac,\n \"a181\", 0x27ad,\n \"a200\", 0x27ae,\n \"a182\", 0x27af,\n \"a201\", 0x27b1,\n \"a183\", 0x27b2,\n \"a184\", 0x27b3,\n \"a197\", 0x27b4,\n \"a185\", 0x27b5,\n \"a194\", 0x27b6,\n \"a198\", 0x27b7,\n \"a186\", 0x27b8,\n \"a195\", 0x27b9,\n \"a187\", 0x27ba,\n \"a188\", 0x27bb,\n \"a189\", 0x27bc,\n \"a190\", 0x27bd,\n \"a191\", 0x27be,\n \"a89\", 0x2768, // 0xF8D7\n \"a90\", 0x2769, // 0xF8D8\n \"a93\", 0x276a, // 0xF8D9\n \"a94\", 0x276b, // 0xF8DA\n \"a91\", 0x276c, // 0xF8DB\n \"a92\", 0x276d, // 0xF8DC\n \"a205\", 0x276e, // 0xF8DD\n \"a85\", 0x276f, // 0xF8DE\n \"a206\", 0x2770, // 0xF8DF\n \"a86\", 0x2771, // 0xF8E0\n \"a87\", 0x2772, // 0xF8E1\n \"a88\", 0x2773, // 0xF8E2\n \"a95\", 0x2774, // 0xF8E3\n \"a96\", 0x2775, // 0xF8E4\n \".notdef\", 0x0000,\n ];\n});\n\nexport { getDingbatsGlyphsUnicode, getGlyphsUnicode };\n","/* Copyright 2016 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* no-babel-preset */\n\nimport {\n getArrayLookupTableFactory,\n getLookupTableFactory,\n} from \"./core_utils.js\";\n\n// Some characters, e.g. copyrightserif, are mapped to the private use area\n// and might not be displayed using standard fonts. Mapping/hacking well-known\n// chars to the similar equivalents in the normal characters range.\nconst getSpecialPUASymbols = getLookupTableFactory(function (t) {\n t[63721] = 0x00a9; // copyrightsans (0xF8E9) => copyright\n t[63193] = 0x00a9; // copyrightserif (0xF6D9) => copyright\n t[63720] = 0x00ae; // registersans (0xF8E8) => registered\n t[63194] = 0x00ae; // registerserif (0xF6DA) => registered\n t[63722] = 0x2122; // trademarksans (0xF8EA) => trademark\n t[63195] = 0x2122; // trademarkserif (0xF6DB) => trademark\n t[63729] = 0x23a7; // bracelefttp (0xF8F1)\n t[63730] = 0x23a8; // braceleftmid (0xF8F2)\n t[63731] = 0x23a9; // braceleftbt (0xF8F3)\n t[63740] = 0x23ab; // bracerighttp (0xF8FC)\n t[63741] = 0x23ac; // bracerightmid (0xF8FD)\n t[63742] = 0x23ad; // bracerightbt (0xF8FE)\n t[63726] = 0x23a1; // bracketlefttp (0xF8EE)\n t[63727] = 0x23a2; // bracketleftex (0xF8EF)\n t[63728] = 0x23a3; // bracketleftbt (0xF8F0)\n t[63737] = 0x23a4; // bracketrighttp (0xF8F9)\n t[63738] = 0x23a5; // bracketrightex (0xF8FA)\n t[63739] = 0x23a6; // bracketrightbt (0xF8FB)\n t[63723] = 0x239b; // parenlefttp (0xF8EB)\n t[63724] = 0x239c; // parenleftex (0xF8EC)\n t[63725] = 0x239d; // parenleftbt (0xF8ED)\n t[63734] = 0x239e; // parenrighttp (0xF8F6)\n t[63735] = 0x239f; // parenrightex (0xF8F7)\n t[63736] = 0x23a0; // parenrightbt (0xF8F8)\n});\n\nfunction mapSpecialUnicodeValues(code) {\n if (code >= 0xfff0 && code <= 0xffff) {\n // Specials unicode block.\n return 0;\n } else if (code >= 0xf600 && code <= 0xf8ff) {\n return getSpecialPUASymbols()[code] || code;\n } else if (code === /* softhyphen = */ 0x00ad) {\n return 0x002d; // hyphen\n }\n return code;\n}\n\nfunction getUnicodeForGlyph(name, glyphsUnicodeMap) {\n let unicode = glyphsUnicodeMap[name];\n if (unicode !== undefined) {\n return unicode;\n }\n if (!name) {\n return -1;\n }\n // Try to recover valid Unicode values from 'uniXXXX'/'uXXXX{XX}' glyphs.\n if (name[0] === \"u\") {\n const nameLen = name.length;\n let hexStr;\n\n if (nameLen === 7 && name[1] === \"n\" && name[2] === \"i\") {\n // 'uniXXXX'\n hexStr = name.substring(3);\n } else if (nameLen >= 5 && nameLen <= 7) {\n // 'uXXXX{XX}'\n hexStr = name.substring(1);\n } else {\n return -1;\n }\n // Check for upper-case hexadecimal characters, to avoid false positives.\n if (hexStr === hexStr.toUpperCase()) {\n unicode = parseInt(hexStr, 16);\n if (unicode >= 0) {\n return unicode;\n }\n }\n }\n return -1;\n}\n\nconst UnicodeRanges = [\n { begin: 0x0000, end: 0x007f }, // Basic Latin\n { begin: 0x0080, end: 0x00ff }, // Latin-1 Supplement\n { begin: 0x0100, end: 0x017f }, // Latin Extended-A\n { begin: 0x0180, end: 0x024f }, // Latin Extended-B\n { begin: 0x0250, end: 0x02af }, // IPA Extensions\n { begin: 0x02b0, end: 0x02ff }, // Spacing Modifier Letters\n { begin: 0x0300, end: 0x036f }, // Combining Diacritical Marks\n { begin: 0x0370, end: 0x03ff }, // Greek and Coptic\n { begin: 0x2c80, end: 0x2cff }, // Coptic\n { begin: 0x0400, end: 0x04ff }, // Cyrillic\n { begin: 0x0530, end: 0x058f }, // Armenian\n { begin: 0x0590, end: 0x05ff }, // Hebrew\n { begin: 0xa500, end: 0xa63f }, // Vai\n { begin: 0x0600, end: 0x06ff }, // Arabic\n { begin: 0x07c0, end: 0x07ff }, // NKo\n { begin: 0x0900, end: 0x097f }, // Devanagari\n { begin: 0x0980, end: 0x09ff }, // Bengali\n { begin: 0x0a00, end: 0x0a7f }, // Gurmukhi\n { begin: 0x0a80, end: 0x0aff }, // Gujarati\n { begin: 0x0b00, end: 0x0b7f }, // Oriya\n { begin: 0x0b80, end: 0x0bff }, // Tamil\n { begin: 0x0c00, end: 0x0c7f }, // Telugu\n { begin: 0x0c80, end: 0x0cff }, // Kannada\n { begin: 0x0d00, end: 0x0d7f }, // Malayalam\n { begin: 0x0e00, end: 0x0e7f }, // Thai\n { begin: 0x0e80, end: 0x0eff }, // Lao\n { begin: 0x10a0, end: 0x10ff }, // Georgian\n { begin: 0x1b00, end: 0x1b7f }, // Balinese\n { begin: 0x1100, end: 0x11ff }, // Hangul Jamo\n { begin: 0x1e00, end: 0x1eff }, // Latin Extended Additional\n { begin: 0x1f00, end: 0x1fff }, // Greek Extended\n { begin: 0x2000, end: 0x206f }, // General Punctuation\n { begin: 0x2070, end: 0x209f }, // Superscripts And Subscripts\n { begin: 0x20a0, end: 0x20cf }, // Currency Symbol\n { begin: 0x20d0, end: 0x20ff }, // Combining Diacritical Marks\n { begin: 0x2100, end: 0x214f }, // Letterlike Symbols\n { begin: 0x2150, end: 0x218f }, // Number Forms\n { begin: 0x2190, end: 0x21ff }, // Arrows\n { begin: 0x2200, end: 0x22ff }, // Mathematical Operators\n { begin: 0x2300, end: 0x23ff }, // Miscellaneous Technical\n { begin: 0x2400, end: 0x243f }, // Control Pictures\n { begin: 0x2440, end: 0x245f }, // Optical Character Recognition\n { begin: 0x2460, end: 0x24ff }, // Enclosed Alphanumerics\n { begin: 0x2500, end: 0x257f }, // Box Drawing\n { begin: 0x2580, end: 0x259f }, // Block Elements\n { begin: 0x25a0, end: 0x25ff }, // Geometric Shapes\n { begin: 0x2600, end: 0x26ff }, // Miscellaneous Symbols\n { begin: 0x2700, end: 0x27bf }, // Dingbats\n { begin: 0x3000, end: 0x303f }, // CJK Symbols And Punctuation\n { begin: 0x3040, end: 0x309f }, // Hiragana\n { begin: 0x30a0, end: 0x30ff }, // Katakana\n { begin: 0x3100, end: 0x312f }, // Bopomofo\n { begin: 0x3130, end: 0x318f }, // Hangul Compatibility Jamo\n { begin: 0xa840, end: 0xa87f }, // Phags-pa\n { begin: 0x3200, end: 0x32ff }, // Enclosed CJK Letters And Months\n { begin: 0x3300, end: 0x33ff }, // CJK Compatibility\n { begin: 0xac00, end: 0xd7af }, // Hangul Syllables\n { begin: 0xd800, end: 0xdfff }, // Non-Plane 0 *\n { begin: 0x10900, end: 0x1091f }, // Phoenicia\n { begin: 0x4e00, end: 0x9fff }, // CJK Unified Ideographs\n { begin: 0xe000, end: 0xf8ff }, // Private Use Area (plane 0)\n { begin: 0x31c0, end: 0x31ef }, // CJK Strokes\n { begin: 0xfb00, end: 0xfb4f }, // Alphabetic Presentation Forms\n { begin: 0xfb50, end: 0xfdff }, // Arabic Presentation Forms-A\n { begin: 0xfe20, end: 0xfe2f }, // Combining Half Marks\n { begin: 0xfe10, end: 0xfe1f }, // Vertical Forms\n { begin: 0xfe50, end: 0xfe6f }, // Small Form Variants\n { begin: 0xfe70, end: 0xfeff }, // Arabic Presentation Forms-B\n { begin: 0xff00, end: 0xffef }, // Halfwidth And Fullwidth Forms\n { begin: 0xfff0, end: 0xffff }, // Specials\n { begin: 0x0f00, end: 0x0fff }, // Tibetan\n { begin: 0x0700, end: 0x074f }, // Syriac\n { begin: 0x0780, end: 0x07bf }, // Thaana\n { begin: 0x0d80, end: 0x0dff }, // Sinhala\n { begin: 0x1000, end: 0x109f }, // Myanmar\n { begin: 0x1200, end: 0x137f }, // Ethiopic\n { begin: 0x13a0, end: 0x13ff }, // Cherokee\n { begin: 0x1400, end: 0x167f }, // Unified Canadian Aboriginal Syllabics\n { begin: 0x1680, end: 0x169f }, // Ogham\n { begin: 0x16a0, end: 0x16ff }, // Runic\n { begin: 0x1780, end: 0x17ff }, // Khmer\n { begin: 0x1800, end: 0x18af }, // Mongolian\n { begin: 0x2800, end: 0x28ff }, // Braille Patterns\n { begin: 0xa000, end: 0xa48f }, // Yi Syllables\n { begin: 0x1700, end: 0x171f }, // Tagalog\n { begin: 0x10300, end: 0x1032f }, // Old Italic\n { begin: 0x10330, end: 0x1034f }, // Gothic\n { begin: 0x10400, end: 0x1044f }, // Deseret\n { begin: 0x1d000, end: 0x1d0ff }, // Byzantine Musical Symbols\n { begin: 0x1d400, end: 0x1d7ff }, // Mathematical Alphanumeric Symbols\n { begin: 0xff000, end: 0xffffd }, // Private Use (plane 15)\n { begin: 0xfe00, end: 0xfe0f }, // Variation Selectors\n { begin: 0xe0000, end: 0xe007f }, // Tags\n { begin: 0x1900, end: 0x194f }, // Limbu\n { begin: 0x1950, end: 0x197f }, // Tai Le\n { begin: 0x1980, end: 0x19df }, // New Tai Lue\n { begin: 0x1a00, end: 0x1a1f }, // Buginese\n { begin: 0x2c00, end: 0x2c5f }, // Glagolitic\n { begin: 0x2d30, end: 0x2d7f }, // Tifinagh\n { begin: 0x4dc0, end: 0x4dff }, // Yijing Hexagram Symbols\n { begin: 0xa800, end: 0xa82f }, // Syloti Nagri\n { begin: 0x10000, end: 0x1007f }, // Linear B Syllabary\n { begin: 0x10140, end: 0x1018f }, // Ancient Greek Numbers\n { begin: 0x10380, end: 0x1039f }, // Ugaritic\n { begin: 0x103a0, end: 0x103df }, // Old Persian\n { begin: 0x10450, end: 0x1047f }, // Shavian\n { begin: 0x10480, end: 0x104af }, // Osmanya\n { begin: 0x10800, end: 0x1083f }, // Cypriot Syllabary\n { begin: 0x10a00, end: 0x10a5f }, // Kharoshthi\n { begin: 0x1d300, end: 0x1d35f }, // Tai Xuan Jing Symbols\n { begin: 0x12000, end: 0x123ff }, // Cuneiform\n { begin: 0x1d360, end: 0x1d37f }, // Counting Rod Numerals\n { begin: 0x1b80, end: 0x1bbf }, // Sundanese\n { begin: 0x1c00, end: 0x1c4f }, // Lepcha\n { begin: 0x1c50, end: 0x1c7f }, // Ol Chiki\n { begin: 0xa880, end: 0xa8df }, // Saurashtra\n { begin: 0xa900, end: 0xa92f }, // Kayah Li\n { begin: 0xa930, end: 0xa95f }, // Rejang\n { begin: 0xaa00, end: 0xaa5f }, // Cham\n { begin: 0x10190, end: 0x101cf }, // Ancient Symbols\n { begin: 0x101d0, end: 0x101ff }, // Phaistos Disc\n { begin: 0x102a0, end: 0x102df }, // Carian\n { begin: 0x1f030, end: 0x1f09f }, // Domino Tiles\n];\n\nfunction getUnicodeRangeFor(value) {\n for (let i = 0, ii = UnicodeRanges.length; i < ii; i++) {\n const range = UnicodeRanges[i];\n if (value >= range.begin && value < range.end) {\n return i;\n }\n }\n return -1;\n}\n\nfunction isRTLRangeFor(value) {\n let range = UnicodeRanges[13];\n if (value >= range.begin && value < range.end) {\n return true;\n }\n range = UnicodeRanges[11];\n if (value >= range.begin && value < range.end) {\n return true;\n }\n return false;\n}\n\n// The normalization table is obtained by filtering the Unicode characters\n// database with entries.\nconst getNormalizedUnicodes = getArrayLookupTableFactory(function () {\n // prettier-ignore\n return [\n \"\\u00A8\", \"\\u0020\\u0308\",\n \"\\u00AF\", \"\\u0020\\u0304\",\n \"\\u00B4\", \"\\u0020\\u0301\",\n \"\\u00B5\", \"\\u03BC\",\n \"\\u00B8\", \"\\u0020\\u0327\",\n \"\\u0132\", \"\\u0049\\u004A\",\n \"\\u0133\", \"\\u0069\\u006A\",\n \"\\u013F\", \"\\u004C\\u00B7\",\n \"\\u0140\", \"\\u006C\\u00B7\",\n \"\\u0149\", \"\\u02BC\\u006E\",\n \"\\u017F\", \"\\u0073\",\n \"\\u01C4\", \"\\u0044\\u017D\",\n \"\\u01C5\", \"\\u0044\\u017E\",\n \"\\u01C6\", \"\\u0064\\u017E\",\n \"\\u01C7\", \"\\u004C\\u004A\",\n \"\\u01C8\", \"\\u004C\\u006A\",\n \"\\u01C9\", \"\\u006C\\u006A\",\n \"\\u01CA\", \"\\u004E\\u004A\",\n \"\\u01CB\", \"\\u004E\\u006A\",\n \"\\u01CC\", \"\\u006E\\u006A\",\n \"\\u01F1\", \"\\u0044\\u005A\",\n \"\\u01F2\", \"\\u0044\\u007A\",\n \"\\u01F3\", \"\\u0064\\u007A\",\n \"\\u02D8\", \"\\u0020\\u0306\",\n \"\\u02D9\", \"\\u0020\\u0307\",\n \"\\u02DA\", \"\\u0020\\u030A\",\n \"\\u02DB\", \"\\u0020\\u0328\",\n \"\\u02DC\", \"\\u0020\\u0303\",\n \"\\u02DD\", \"\\u0020\\u030B\",\n \"\\u037A\", \"\\u0020\\u0345\",\n \"\\u0384\", \"\\u0020\\u0301\",\n \"\\u03D0\", \"\\u03B2\",\n \"\\u03D1\", \"\\u03B8\",\n \"\\u03D2\", \"\\u03A5\",\n \"\\u03D5\", \"\\u03C6\",\n \"\\u03D6\", \"\\u03C0\",\n \"\\u03F0\", \"\\u03BA\",\n \"\\u03F1\", \"\\u03C1\",\n \"\\u03F2\", \"\\u03C2\",\n \"\\u03F4\", \"\\u0398\",\n \"\\u03F5\", \"\\u03B5\",\n \"\\u03F9\", \"\\u03A3\",\n \"\\u0587\", \"\\u0565\\u0582\",\n \"\\u0675\", \"\\u0627\\u0674\",\n \"\\u0676\", \"\\u0648\\u0674\",\n \"\\u0677\", \"\\u06C7\\u0674\",\n \"\\u0678\", \"\\u064A\\u0674\",\n \"\\u0E33\", \"\\u0E4D\\u0E32\",\n \"\\u0EB3\", \"\\u0ECD\\u0EB2\",\n \"\\u0EDC\", \"\\u0EAB\\u0E99\",\n \"\\u0EDD\", \"\\u0EAB\\u0EA1\",\n \"\\u0F77\", \"\\u0FB2\\u0F81\",\n \"\\u0F79\", \"\\u0FB3\\u0F81\",\n \"\\u1E9A\", \"\\u0061\\u02BE\",\n \"\\u1FBD\", \"\\u0020\\u0313\",\n \"\\u1FBF\", \"\\u0020\\u0313\",\n \"\\u1FC0\", \"\\u0020\\u0342\",\n \"\\u1FFE\", \"\\u0020\\u0314\",\n \"\\u2002\", \"\\u0020\",\n \"\\u2003\", \"\\u0020\",\n \"\\u2004\", \"\\u0020\",\n \"\\u2005\", \"\\u0020\",\n \"\\u2006\", \"\\u0020\",\n \"\\u2008\", \"\\u0020\",\n \"\\u2009\", \"\\u0020\",\n \"\\u200A\", \"\\u0020\",\n \"\\u2017\", \"\\u0020\\u0333\",\n \"\\u2024\", \"\\u002E\",\n \"\\u2025\", \"\\u002E\\u002E\",\n \"\\u2026\", \"\\u002E\\u002E\\u002E\",\n \"\\u2033\", \"\\u2032\\u2032\",\n \"\\u2034\", \"\\u2032\\u2032\\u2032\",\n \"\\u2036\", \"\\u2035\\u2035\",\n \"\\u2037\", \"\\u2035\\u2035\\u2035\",\n \"\\u203C\", \"\\u0021\\u0021\",\n \"\\u203E\", \"\\u0020\\u0305\",\n \"\\u2047\", \"\\u003F\\u003F\",\n \"\\u2048\", \"\\u003F\\u0021\",\n \"\\u2049\", \"\\u0021\\u003F\",\n \"\\u2057\", \"\\u2032\\u2032\\u2032\\u2032\",\n \"\\u205F\", \"\\u0020\",\n \"\\u20A8\", \"\\u0052\\u0073\",\n \"\\u2100\", \"\\u0061\\u002F\\u0063\",\n \"\\u2101\", \"\\u0061\\u002F\\u0073\",\n \"\\u2103\", \"\\u00B0\\u0043\",\n \"\\u2105\", \"\\u0063\\u002F\\u006F\",\n \"\\u2106\", \"\\u0063\\u002F\\u0075\",\n \"\\u2107\", \"\\u0190\",\n \"\\u2109\", \"\\u00B0\\u0046\",\n \"\\u2116\", \"\\u004E\\u006F\",\n \"\\u2121\", \"\\u0054\\u0045\\u004C\",\n \"\\u2135\", \"\\u05D0\",\n \"\\u2136\", \"\\u05D1\",\n \"\\u2137\", \"\\u05D2\",\n \"\\u2138\", \"\\u05D3\",\n \"\\u213B\", \"\\u0046\\u0041\\u0058\",\n \"\\u2160\", \"\\u0049\",\n \"\\u2161\", \"\\u0049\\u0049\",\n \"\\u2162\", \"\\u0049\\u0049\\u0049\",\n \"\\u2163\", \"\\u0049\\u0056\",\n \"\\u2164\", \"\\u0056\",\n \"\\u2165\", \"\\u0056\\u0049\",\n \"\\u2166\", \"\\u0056\\u0049\\u0049\",\n \"\\u2167\", \"\\u0056\\u0049\\u0049\\u0049\",\n \"\\u2168\", \"\\u0049\\u0058\",\n \"\\u2169\", \"\\u0058\",\n \"\\u216A\", \"\\u0058\\u0049\",\n \"\\u216B\", \"\\u0058\\u0049\\u0049\",\n \"\\u216C\", \"\\u004C\",\n \"\\u216D\", \"\\u0043\",\n \"\\u216E\", \"\\u0044\",\n \"\\u216F\", \"\\u004D\",\n \"\\u2170\", \"\\u0069\",\n \"\\u2171\", \"\\u0069\\u0069\",\n \"\\u2172\", \"\\u0069\\u0069\\u0069\",\n \"\\u2173\", \"\\u0069\\u0076\",\n \"\\u2174\", \"\\u0076\",\n \"\\u2175\", \"\\u0076\\u0069\",\n \"\\u2176\", \"\\u0076\\u0069\\u0069\",\n \"\\u2177\", \"\\u0076\\u0069\\u0069\\u0069\",\n \"\\u2178\", \"\\u0069\\u0078\",\n \"\\u2179\", \"\\u0078\",\n \"\\u217A\", \"\\u0078\\u0069\",\n \"\\u217B\", \"\\u0078\\u0069\\u0069\",\n \"\\u217C\", \"\\u006C\",\n \"\\u217D\", \"\\u0063\",\n \"\\u217E\", \"\\u0064\",\n \"\\u217F\", \"\\u006D\",\n \"\\u222C\", \"\\u222B\\u222B\",\n \"\\u222D\", \"\\u222B\\u222B\\u222B\",\n \"\\u222F\", \"\\u222E\\u222E\",\n \"\\u2230\", \"\\u222E\\u222E\\u222E\",\n \"\\u2474\", \"\\u0028\\u0031\\u0029\",\n \"\\u2475\", \"\\u0028\\u0032\\u0029\",\n \"\\u2476\", \"\\u0028\\u0033\\u0029\",\n \"\\u2477\", \"\\u0028\\u0034\\u0029\",\n \"\\u2478\", \"\\u0028\\u0035\\u0029\",\n \"\\u2479\", \"\\u0028\\u0036\\u0029\",\n \"\\u247A\", \"\\u0028\\u0037\\u0029\",\n \"\\u247B\", \"\\u0028\\u0038\\u0029\",\n \"\\u247C\", \"\\u0028\\u0039\\u0029\",\n \"\\u247D\", \"\\u0028\\u0031\\u0030\\u0029\",\n \"\\u247E\", \"\\u0028\\u0031\\u0031\\u0029\",\n \"\\u247F\", \"\\u0028\\u0031\\u0032\\u0029\",\n \"\\u2480\", \"\\u0028\\u0031\\u0033\\u0029\",\n \"\\u2481\", \"\\u0028\\u0031\\u0034\\u0029\",\n \"\\u2482\", \"\\u0028\\u0031\\u0035\\u0029\",\n \"\\u2483\", \"\\u0028\\u0031\\u0036\\u0029\",\n \"\\u2484\", \"\\u0028\\u0031\\u0037\\u0029\",\n \"\\u2485\", \"\\u0028\\u0031\\u0038\\u0029\",\n \"\\u2486\", \"\\u0028\\u0031\\u0039\\u0029\",\n \"\\u2487\", \"\\u0028\\u0032\\u0030\\u0029\",\n \"\\u2488\", \"\\u0031\\u002E\",\n \"\\u2489\", \"\\u0032\\u002E\",\n \"\\u248A\", \"\\u0033\\u002E\",\n \"\\u248B\", \"\\u0034\\u002E\",\n \"\\u248C\", \"\\u0035\\u002E\",\n \"\\u248D\", \"\\u0036\\u002E\",\n \"\\u248E\", \"\\u0037\\u002E\",\n \"\\u248F\", \"\\u0038\\u002E\",\n \"\\u2490\", \"\\u0039\\u002E\",\n \"\\u2491\", \"\\u0031\\u0030\\u002E\",\n \"\\u2492\", \"\\u0031\\u0031\\u002E\",\n \"\\u2493\", \"\\u0031\\u0032\\u002E\",\n \"\\u2494\", \"\\u0031\\u0033\\u002E\",\n \"\\u2495\", \"\\u0031\\u0034\\u002E\",\n \"\\u2496\", \"\\u0031\\u0035\\u002E\",\n \"\\u2497\", \"\\u0031\\u0036\\u002E\",\n \"\\u2498\", \"\\u0031\\u0037\\u002E\",\n \"\\u2499\", \"\\u0031\\u0038\\u002E\",\n \"\\u249A\", \"\\u0031\\u0039\\u002E\",\n \"\\u249B\", \"\\u0032\\u0030\\u002E\",\n \"\\u249C\", \"\\u0028\\u0061\\u0029\",\n \"\\u249D\", \"\\u0028\\u0062\\u0029\",\n \"\\u249E\", \"\\u0028\\u0063\\u0029\",\n \"\\u249F\", \"\\u0028\\u0064\\u0029\",\n \"\\u24A0\", \"\\u0028\\u0065\\u0029\",\n \"\\u24A1\", \"\\u0028\\u0066\\u0029\",\n \"\\u24A2\", \"\\u0028\\u0067\\u0029\",\n \"\\u24A3\", \"\\u0028\\u0068\\u0029\",\n \"\\u24A4\", \"\\u0028\\u0069\\u0029\",\n \"\\u24A5\", \"\\u0028\\u006A\\u0029\",\n \"\\u24A6\", \"\\u0028\\u006B\\u0029\",\n \"\\u24A7\", \"\\u0028\\u006C\\u0029\",\n \"\\u24A8\", \"\\u0028\\u006D\\u0029\",\n \"\\u24A9\", \"\\u0028\\u006E\\u0029\",\n \"\\u24AA\", \"\\u0028\\u006F\\u0029\",\n \"\\u24AB\", \"\\u0028\\u0070\\u0029\",\n \"\\u24AC\", \"\\u0028\\u0071\\u0029\",\n \"\\u24AD\", \"\\u0028\\u0072\\u0029\",\n \"\\u24AE\", \"\\u0028\\u0073\\u0029\",\n \"\\u24AF\", \"\\u0028\\u0074\\u0029\",\n \"\\u24B0\", \"\\u0028\\u0075\\u0029\",\n \"\\u24B1\", \"\\u0028\\u0076\\u0029\",\n \"\\u24B2\", \"\\u0028\\u0077\\u0029\",\n \"\\u24B3\", \"\\u0028\\u0078\\u0029\",\n \"\\u24B4\", \"\\u0028\\u0079\\u0029\",\n \"\\u24B5\", \"\\u0028\\u007A\\u0029\",\n \"\\u2A0C\", \"\\u222B\\u222B\\u222B\\u222B\",\n \"\\u2A74\", \"\\u003A\\u003A\\u003D\",\n \"\\u2A75\", \"\\u003D\\u003D\",\n \"\\u2A76\", \"\\u003D\\u003D\\u003D\",\n \"\\u2E9F\", \"\\u6BCD\",\n \"\\u2EF3\", \"\\u9F9F\",\n \"\\u2F00\", \"\\u4E00\",\n \"\\u2F01\", \"\\u4E28\",\n \"\\u2F02\", \"\\u4E36\",\n \"\\u2F03\", \"\\u4E3F\",\n \"\\u2F04\", \"\\u4E59\",\n \"\\u2F05\", \"\\u4E85\",\n \"\\u2F06\", \"\\u4E8C\",\n \"\\u2F07\", \"\\u4EA0\",\n \"\\u2F08\", \"\\u4EBA\",\n \"\\u2F09\", \"\\u513F\",\n \"\\u2F0A\", \"\\u5165\",\n \"\\u2F0B\", \"\\u516B\",\n \"\\u2F0C\", \"\\u5182\",\n \"\\u2F0D\", \"\\u5196\",\n \"\\u2F0E\", \"\\u51AB\",\n \"\\u2F0F\", \"\\u51E0\",\n \"\\u2F10\", \"\\u51F5\",\n \"\\u2F11\", \"\\u5200\",\n \"\\u2F12\", \"\\u529B\",\n \"\\u2F13\", \"\\u52F9\",\n \"\\u2F14\", \"\\u5315\",\n \"\\u2F15\", \"\\u531A\",\n \"\\u2F16\", \"\\u5338\",\n \"\\u2F17\", \"\\u5341\",\n \"\\u2F18\", \"\\u535C\",\n \"\\u2F19\", \"\\u5369\",\n \"\\u2F1A\", \"\\u5382\",\n \"\\u2F1B\", \"\\u53B6\",\n \"\\u2F1C\", \"\\u53C8\",\n \"\\u2F1D\", \"\\u53E3\",\n \"\\u2F1E\", \"\\u56D7\",\n \"\\u2F1F\", \"\\u571F\",\n \"\\u2F20\", \"\\u58EB\",\n \"\\u2F21\", \"\\u5902\",\n \"\\u2F22\", \"\\u590A\",\n \"\\u2F23\", \"\\u5915\",\n \"\\u2F24\", \"\\u5927\",\n \"\\u2F25\", \"\\u5973\",\n \"\\u2F26\", \"\\u5B50\",\n \"\\u2F27\", \"\\u5B80\",\n \"\\u2F28\", \"\\u5BF8\",\n \"\\u2F29\", \"\\u5C0F\",\n \"\\u2F2A\", \"\\u5C22\",\n \"\\u2F2B\", \"\\u5C38\",\n \"\\u2F2C\", \"\\u5C6E\",\n \"\\u2F2D\", \"\\u5C71\",\n \"\\u2F2E\", \"\\u5DDB\",\n \"\\u2F2F\", \"\\u5DE5\",\n \"\\u2F30\", \"\\u5DF1\",\n \"\\u2F31\", \"\\u5DFE\",\n \"\\u2F32\", \"\\u5E72\",\n \"\\u2F33\", \"\\u5E7A\",\n \"\\u2F34\", \"\\u5E7F\",\n \"\\u2F35\", \"\\u5EF4\",\n \"\\u2F36\", \"\\u5EFE\",\n \"\\u2F37\", \"\\u5F0B\",\n \"\\u2F38\", \"\\u5F13\",\n \"\\u2F39\", \"\\u5F50\",\n \"\\u2F3A\", \"\\u5F61\",\n \"\\u2F3B\", \"\\u5F73\",\n \"\\u2F3C\", \"\\u5FC3\",\n \"\\u2F3D\", \"\\u6208\",\n \"\\u2F3E\", \"\\u6236\",\n \"\\u2F3F\", \"\\u624B\",\n \"\\u2F40\", \"\\u652F\",\n \"\\u2F41\", \"\\u6534\",\n \"\\u2F42\", \"\\u6587\",\n \"\\u2F43\", \"\\u6597\",\n \"\\u2F44\", \"\\u65A4\",\n \"\\u2F45\", \"\\u65B9\",\n \"\\u2F46\", \"\\u65E0\",\n \"\\u2F47\", \"\\u65E5\",\n \"\\u2F48\", \"\\u66F0\",\n \"\\u2F49\", \"\\u6708\",\n \"\\u2F4A\", \"\\u6728\",\n \"\\u2F4B\", \"\\u6B20\",\n \"\\u2F4C\", \"\\u6B62\",\n \"\\u2F4D\", \"\\u6B79\",\n \"\\u2F4E\", \"\\u6BB3\",\n \"\\u2F4F\", \"\\u6BCB\",\n \"\\u2F50\", \"\\u6BD4\",\n \"\\u2F51\", \"\\u6BDB\",\n \"\\u2F52\", \"\\u6C0F\",\n \"\\u2F53\", \"\\u6C14\",\n \"\\u2F54\", \"\\u6C34\",\n \"\\u2F55\", \"\\u706B\",\n \"\\u2F56\", \"\\u722A\",\n \"\\u2F57\", \"\\u7236\",\n \"\\u2F58\", \"\\u723B\",\n \"\\u2F59\", \"\\u723F\",\n \"\\u2F5A\", \"\\u7247\",\n \"\\u2F5B\", \"\\u7259\",\n \"\\u2F5C\", \"\\u725B\",\n \"\\u2F5D\", \"\\u72AC\",\n \"\\u2F5E\", \"\\u7384\",\n \"\\u2F5F\", \"\\u7389\",\n \"\\u2F60\", \"\\u74DC\",\n \"\\u2F61\", \"\\u74E6\",\n \"\\u2F62\", \"\\u7518\",\n \"\\u2F63\", \"\\u751F\",\n \"\\u2F64\", \"\\u7528\",\n \"\\u2F65\", \"\\u7530\",\n \"\\u2F66\", \"\\u758B\",\n \"\\u2F67\", \"\\u7592\",\n \"\\u2F68\", \"\\u7676\",\n \"\\u2F69\", \"\\u767D\",\n \"\\u2F6A\", \"\\u76AE\",\n \"\\u2F6B\", \"\\u76BF\",\n \"\\u2F6C\", \"\\u76EE\",\n \"\\u2F6D\", \"\\u77DB\",\n \"\\u2F6E\", \"\\u77E2\",\n \"\\u2F6F\", \"\\u77F3\",\n \"\\u2F70\", \"\\u793A\",\n \"\\u2F71\", \"\\u79B8\",\n \"\\u2F72\", \"\\u79BE\",\n \"\\u2F73\", \"\\u7A74\",\n \"\\u2F74\", \"\\u7ACB\",\n \"\\u2F75\", \"\\u7AF9\",\n \"\\u2F76\", \"\\u7C73\",\n \"\\u2F77\", \"\\u7CF8\",\n \"\\u2F78\", \"\\u7F36\",\n \"\\u2F79\", \"\\u7F51\",\n \"\\u2F7A\", \"\\u7F8A\",\n \"\\u2F7B\", \"\\u7FBD\",\n \"\\u2F7C\", \"\\u8001\",\n \"\\u2F7D\", \"\\u800C\",\n \"\\u2F7E\", \"\\u8012\",\n \"\\u2F7F\", \"\\u8033\",\n \"\\u2F80\", \"\\u807F\",\n \"\\u2F81\", \"\\u8089\",\n \"\\u2F82\", \"\\u81E3\",\n \"\\u2F83\", \"\\u81EA\",\n \"\\u2F84\", \"\\u81F3\",\n \"\\u2F85\", \"\\u81FC\",\n \"\\u2F86\", \"\\u820C\",\n \"\\u2F87\", \"\\u821B\",\n \"\\u2F88\", \"\\u821F\",\n \"\\u2F89\", \"\\u826E\",\n \"\\u2F8A\", \"\\u8272\",\n \"\\u2F8B\", \"\\u8278\",\n \"\\u2F8C\", \"\\u864D\",\n \"\\u2F8D\", \"\\u866B\",\n \"\\u2F8E\", \"\\u8840\",\n \"\\u2F8F\", \"\\u884C\",\n \"\\u2F90\", \"\\u8863\",\n \"\\u2F91\", \"\\u897E\",\n \"\\u2F92\", \"\\u898B\",\n \"\\u2F93\", \"\\u89D2\",\n \"\\u2F94\", \"\\u8A00\",\n \"\\u2F95\", \"\\u8C37\",\n \"\\u2F96\", \"\\u8C46\",\n \"\\u2F97\", \"\\u8C55\",\n \"\\u2F98\", \"\\u8C78\",\n \"\\u2F99\", \"\\u8C9D\",\n \"\\u2F9A\", \"\\u8D64\",\n \"\\u2F9B\", \"\\u8D70\",\n \"\\u2F9C\", \"\\u8DB3\",\n \"\\u2F9D\", \"\\u8EAB\",\n \"\\u2F9E\", \"\\u8ECA\",\n \"\\u2F9F\", \"\\u8F9B\",\n \"\\u2FA0\", \"\\u8FB0\",\n \"\\u2FA1\", \"\\u8FB5\",\n \"\\u2FA2\", \"\\u9091\",\n \"\\u2FA3\", \"\\u9149\",\n \"\\u2FA4\", \"\\u91C6\",\n \"\\u2FA5\", \"\\u91CC\",\n \"\\u2FA6\", \"\\u91D1\",\n \"\\u2FA7\", \"\\u9577\",\n \"\\u2FA8\", \"\\u9580\",\n \"\\u2FA9\", \"\\u961C\",\n \"\\u2FAA\", \"\\u96B6\",\n \"\\u2FAB\", \"\\u96B9\",\n \"\\u2FAC\", \"\\u96E8\",\n \"\\u2FAD\", \"\\u9751\",\n \"\\u2FAE\", \"\\u975E\",\n \"\\u2FAF\", \"\\u9762\",\n \"\\u2FB0\", \"\\u9769\",\n \"\\u2FB1\", \"\\u97CB\",\n \"\\u2FB2\", \"\\u97ED\",\n \"\\u2FB3\", \"\\u97F3\",\n \"\\u2FB4\", \"\\u9801\",\n \"\\u2FB5\", \"\\u98A8\",\n \"\\u2FB6\", \"\\u98DB\",\n \"\\u2FB7\", \"\\u98DF\",\n \"\\u2FB8\", \"\\u9996\",\n \"\\u2FB9\", \"\\u9999\",\n \"\\u2FBA\", \"\\u99AC\",\n \"\\u2FBB\", \"\\u9AA8\",\n \"\\u2FBC\", \"\\u9AD8\",\n \"\\u2FBD\", \"\\u9ADF\",\n \"\\u2FBE\", \"\\u9B25\",\n \"\\u2FBF\", \"\\u9B2F\",\n \"\\u2FC0\", \"\\u9B32\",\n \"\\u2FC1\", \"\\u9B3C\",\n \"\\u2FC2\", \"\\u9B5A\",\n \"\\u2FC3\", \"\\u9CE5\",\n \"\\u2FC4\", \"\\u9E75\",\n \"\\u2FC5\", \"\\u9E7F\",\n \"\\u2FC6\", \"\\u9EA5\",\n \"\\u2FC7\", \"\\u9EBB\",\n \"\\u2FC8\", \"\\u9EC3\",\n \"\\u2FC9\", \"\\u9ECD\",\n \"\\u2FCA\", \"\\u9ED1\",\n \"\\u2FCB\", \"\\u9EF9\",\n \"\\u2FCC\", \"\\u9EFD\",\n \"\\u2FCD\", \"\\u9F0E\",\n \"\\u2FCE\", \"\\u9F13\",\n \"\\u2FCF\", \"\\u9F20\",\n \"\\u2FD0\", \"\\u9F3B\",\n \"\\u2FD1\", \"\\u9F4A\",\n \"\\u2FD2\", \"\\u9F52\",\n \"\\u2FD3\", \"\\u9F8D\",\n \"\\u2FD4\", \"\\u9F9C\",\n \"\\u2FD5\", \"\\u9FA0\",\n \"\\u3036\", \"\\u3012\",\n \"\\u3038\", \"\\u5341\",\n \"\\u3039\", \"\\u5344\",\n \"\\u303A\", \"\\u5345\",\n \"\\u309B\", \"\\u0020\\u3099\",\n \"\\u309C\", \"\\u0020\\u309A\",\n \"\\u3131\", \"\\u1100\",\n \"\\u3132\", \"\\u1101\",\n \"\\u3133\", \"\\u11AA\",\n \"\\u3134\", \"\\u1102\",\n \"\\u3135\", \"\\u11AC\",\n \"\\u3136\", \"\\u11AD\",\n \"\\u3137\", \"\\u1103\",\n \"\\u3138\", \"\\u1104\",\n \"\\u3139\", \"\\u1105\",\n \"\\u313A\", \"\\u11B0\",\n \"\\u313B\", \"\\u11B1\",\n \"\\u313C\", \"\\u11B2\",\n \"\\u313D\", \"\\u11B3\",\n \"\\u313E\", \"\\u11B4\",\n \"\\u313F\", \"\\u11B5\",\n \"\\u3140\", \"\\u111A\",\n \"\\u3141\", \"\\u1106\",\n \"\\u3142\", \"\\u1107\",\n \"\\u3143\", \"\\u1108\",\n \"\\u3144\", \"\\u1121\",\n \"\\u3145\", \"\\u1109\",\n \"\\u3146\", \"\\u110A\",\n \"\\u3147\", \"\\u110B\",\n \"\\u3148\", \"\\u110C\",\n \"\\u3149\", \"\\u110D\",\n \"\\u314A\", \"\\u110E\",\n \"\\u314B\", \"\\u110F\",\n \"\\u314C\", \"\\u1110\",\n \"\\u314D\", \"\\u1111\",\n \"\\u314E\", \"\\u1112\",\n \"\\u314F\", \"\\u1161\",\n \"\\u3150\", \"\\u1162\",\n \"\\u3151\", \"\\u1163\",\n \"\\u3152\", \"\\u1164\",\n \"\\u3153\", \"\\u1165\",\n \"\\u3154\", \"\\u1166\",\n \"\\u3155\", \"\\u1167\",\n \"\\u3156\", \"\\u1168\",\n \"\\u3157\", \"\\u1169\",\n \"\\u3158\", \"\\u116A\",\n \"\\u3159\", \"\\u116B\",\n \"\\u315A\", \"\\u116C\",\n \"\\u315B\", \"\\u116D\",\n \"\\u315C\", \"\\u116E\",\n \"\\u315D\", \"\\u116F\",\n \"\\u315E\", \"\\u1170\",\n \"\\u315F\", \"\\u1171\",\n \"\\u3160\", \"\\u1172\",\n \"\\u3161\", \"\\u1173\",\n \"\\u3162\", \"\\u1174\",\n \"\\u3163\", \"\\u1175\",\n \"\\u3164\", \"\\u1160\",\n \"\\u3165\", \"\\u1114\",\n \"\\u3166\", \"\\u1115\",\n \"\\u3167\", \"\\u11C7\",\n \"\\u3168\", \"\\u11C8\",\n \"\\u3169\", \"\\u11CC\",\n \"\\u316A\", \"\\u11CE\",\n \"\\u316B\", \"\\u11D3\",\n \"\\u316C\", \"\\u11D7\",\n \"\\u316D\", \"\\u11D9\",\n \"\\u316E\", \"\\u111C\",\n \"\\u316F\", \"\\u11DD\",\n \"\\u3170\", \"\\u11DF\",\n \"\\u3171\", \"\\u111D\",\n \"\\u3172\", \"\\u111E\",\n \"\\u3173\", \"\\u1120\",\n \"\\u3174\", \"\\u1122\",\n \"\\u3175\", \"\\u1123\",\n \"\\u3176\", \"\\u1127\",\n \"\\u3177\", \"\\u1129\",\n \"\\u3178\", \"\\u112B\",\n \"\\u3179\", \"\\u112C\",\n \"\\u317A\", \"\\u112D\",\n \"\\u317B\", \"\\u112E\",\n \"\\u317C\", \"\\u112F\",\n \"\\u317D\", \"\\u1132\",\n \"\\u317E\", \"\\u1136\",\n \"\\u317F\", \"\\u1140\",\n \"\\u3180\", \"\\u1147\",\n \"\\u3181\", \"\\u114C\",\n \"\\u3182\", \"\\u11F1\",\n \"\\u3183\", \"\\u11F2\",\n \"\\u3184\", \"\\u1157\",\n \"\\u3185\", \"\\u1158\",\n \"\\u3186\", \"\\u1159\",\n \"\\u3187\", \"\\u1184\",\n \"\\u3188\", \"\\u1185\",\n \"\\u3189\", \"\\u1188\",\n \"\\u318A\", \"\\u1191\",\n \"\\u318B\", \"\\u1192\",\n \"\\u318C\", \"\\u1194\",\n \"\\u318D\", \"\\u119E\",\n \"\\u318E\", \"\\u11A1\",\n \"\\u3200\", \"\\u0028\\u1100\\u0029\",\n \"\\u3201\", \"\\u0028\\u1102\\u0029\",\n \"\\u3202\", \"\\u0028\\u1103\\u0029\",\n \"\\u3203\", \"\\u0028\\u1105\\u0029\",\n \"\\u3204\", \"\\u0028\\u1106\\u0029\",\n \"\\u3205\", \"\\u0028\\u1107\\u0029\",\n \"\\u3206\", \"\\u0028\\u1109\\u0029\",\n \"\\u3207\", \"\\u0028\\u110B\\u0029\",\n \"\\u3208\", \"\\u0028\\u110C\\u0029\",\n \"\\u3209\", \"\\u0028\\u110E\\u0029\",\n \"\\u320A\", \"\\u0028\\u110F\\u0029\",\n \"\\u320B\", \"\\u0028\\u1110\\u0029\",\n \"\\u320C\", \"\\u0028\\u1111\\u0029\",\n \"\\u320D\", \"\\u0028\\u1112\\u0029\",\n \"\\u320E\", \"\\u0028\\u1100\\u1161\\u0029\",\n \"\\u320F\", \"\\u0028\\u1102\\u1161\\u0029\",\n \"\\u3210\", \"\\u0028\\u1103\\u1161\\u0029\",\n \"\\u3211\", \"\\u0028\\u1105\\u1161\\u0029\",\n \"\\u3212\", \"\\u0028\\u1106\\u1161\\u0029\",\n \"\\u3213\", \"\\u0028\\u1107\\u1161\\u0029\",\n \"\\u3214\", \"\\u0028\\u1109\\u1161\\u0029\",\n \"\\u3215\", \"\\u0028\\u110B\\u1161\\u0029\",\n \"\\u3216\", \"\\u0028\\u110C\\u1161\\u0029\",\n \"\\u3217\", \"\\u0028\\u110E\\u1161\\u0029\",\n \"\\u3218\", \"\\u0028\\u110F\\u1161\\u0029\",\n \"\\u3219\", \"\\u0028\\u1110\\u1161\\u0029\",\n \"\\u321A\", \"\\u0028\\u1111\\u1161\\u0029\",\n \"\\u321B\", \"\\u0028\\u1112\\u1161\\u0029\",\n \"\\u321C\", \"\\u0028\\u110C\\u116E\\u0029\",\n \"\\u321D\", \"\\u0028\\u110B\\u1169\\u110C\\u1165\\u11AB\\u0029\",\n \"\\u321E\", \"\\u0028\\u110B\\u1169\\u1112\\u116E\\u0029\",\n \"\\u3220\", \"\\u0028\\u4E00\\u0029\",\n \"\\u3221\", \"\\u0028\\u4E8C\\u0029\",\n \"\\u3222\", \"\\u0028\\u4E09\\u0029\",\n \"\\u3223\", \"\\u0028\\u56DB\\u0029\",\n \"\\u3224\", \"\\u0028\\u4E94\\u0029\",\n \"\\u3225\", \"\\u0028\\u516D\\u0029\",\n \"\\u3226\", \"\\u0028\\u4E03\\u0029\",\n \"\\u3227\", \"\\u0028\\u516B\\u0029\",\n \"\\u3228\", \"\\u0028\\u4E5D\\u0029\",\n \"\\u3229\", \"\\u0028\\u5341\\u0029\",\n \"\\u322A\", \"\\u0028\\u6708\\u0029\",\n \"\\u322B\", \"\\u0028\\u706B\\u0029\",\n \"\\u322C\", \"\\u0028\\u6C34\\u0029\",\n \"\\u322D\", \"\\u0028\\u6728\\u0029\",\n \"\\u322E\", \"\\u0028\\u91D1\\u0029\",\n \"\\u322F\", \"\\u0028\\u571F\\u0029\",\n \"\\u3230\", \"\\u0028\\u65E5\\u0029\",\n \"\\u3231\", \"\\u0028\\u682A\\u0029\",\n \"\\u3232\", \"\\u0028\\u6709\\u0029\",\n \"\\u3233\", \"\\u0028\\u793E\\u0029\",\n \"\\u3234\", \"\\u0028\\u540D\\u0029\",\n \"\\u3235\", \"\\u0028\\u7279\\u0029\",\n \"\\u3236\", \"\\u0028\\u8CA1\\u0029\",\n \"\\u3237\", \"\\u0028\\u795D\\u0029\",\n \"\\u3238\", \"\\u0028\\u52B4\\u0029\",\n \"\\u3239\", \"\\u0028\\u4EE3\\u0029\",\n \"\\u323A\", \"\\u0028\\u547C\\u0029\",\n \"\\u323B\", \"\\u0028\\u5B66\\u0029\",\n \"\\u323C\", \"\\u0028\\u76E3\\u0029\",\n \"\\u323D\", \"\\u0028\\u4F01\\u0029\",\n \"\\u323E\", \"\\u0028\\u8CC7\\u0029\",\n \"\\u323F\", \"\\u0028\\u5354\\u0029\",\n \"\\u3240\", \"\\u0028\\u796D\\u0029\",\n \"\\u3241\", \"\\u0028\\u4F11\\u0029\",\n \"\\u3242\", \"\\u0028\\u81EA\\u0029\",\n \"\\u3243\", \"\\u0028\\u81F3\\u0029\",\n \"\\u32C0\", \"\\u0031\\u6708\",\n \"\\u32C1\", \"\\u0032\\u6708\",\n \"\\u32C2\", \"\\u0033\\u6708\",\n \"\\u32C3\", \"\\u0034\\u6708\",\n \"\\u32C4\", \"\\u0035\\u6708\",\n \"\\u32C5\", \"\\u0036\\u6708\",\n \"\\u32C6\", \"\\u0037\\u6708\",\n \"\\u32C7\", \"\\u0038\\u6708\",\n \"\\u32C8\", \"\\u0039\\u6708\",\n \"\\u32C9\", \"\\u0031\\u0030\\u6708\",\n \"\\u32CA\", \"\\u0031\\u0031\\u6708\",\n \"\\u32CB\", \"\\u0031\\u0032\\u6708\",\n \"\\u3358\", \"\\u0030\\u70B9\",\n \"\\u3359\", \"\\u0031\\u70B9\",\n \"\\u335A\", \"\\u0032\\u70B9\",\n \"\\u335B\", \"\\u0033\\u70B9\",\n \"\\u335C\", \"\\u0034\\u70B9\",\n \"\\u335D\", \"\\u0035\\u70B9\",\n \"\\u335E\", \"\\u0036\\u70B9\",\n \"\\u335F\", \"\\u0037\\u70B9\",\n \"\\u3360\", \"\\u0038\\u70B9\",\n \"\\u3361\", \"\\u0039\\u70B9\",\n \"\\u3362\", \"\\u0031\\u0030\\u70B9\",\n \"\\u3363\", \"\\u0031\\u0031\\u70B9\",\n \"\\u3364\", \"\\u0031\\u0032\\u70B9\",\n \"\\u3365\", \"\\u0031\\u0033\\u70B9\",\n \"\\u3366\", \"\\u0031\\u0034\\u70B9\",\n \"\\u3367\", \"\\u0031\\u0035\\u70B9\",\n \"\\u3368\", \"\\u0031\\u0036\\u70B9\",\n \"\\u3369\", \"\\u0031\\u0037\\u70B9\",\n \"\\u336A\", \"\\u0031\\u0038\\u70B9\",\n \"\\u336B\", \"\\u0031\\u0039\\u70B9\",\n \"\\u336C\", \"\\u0032\\u0030\\u70B9\",\n \"\\u336D\", \"\\u0032\\u0031\\u70B9\",\n \"\\u336E\", \"\\u0032\\u0032\\u70B9\",\n \"\\u336F\", \"\\u0032\\u0033\\u70B9\",\n \"\\u3370\", \"\\u0032\\u0034\\u70B9\",\n \"\\u33E0\", \"\\u0031\\u65E5\",\n \"\\u33E1\", \"\\u0032\\u65E5\",\n \"\\u33E2\", \"\\u0033\\u65E5\",\n \"\\u33E3\", \"\\u0034\\u65E5\",\n \"\\u33E4\", \"\\u0035\\u65E5\",\n \"\\u33E5\", \"\\u0036\\u65E5\",\n \"\\u33E6\", \"\\u0037\\u65E5\",\n \"\\u33E7\", \"\\u0038\\u65E5\",\n \"\\u33E8\", \"\\u0039\\u65E5\",\n \"\\u33E9\", \"\\u0031\\u0030\\u65E5\",\n \"\\u33EA\", \"\\u0031\\u0031\\u65E5\",\n \"\\u33EB\", \"\\u0031\\u0032\\u65E5\",\n \"\\u33EC\", \"\\u0031\\u0033\\u65E5\",\n \"\\u33ED\", \"\\u0031\\u0034\\u65E5\",\n \"\\u33EE\", \"\\u0031\\u0035\\u65E5\",\n \"\\u33EF\", \"\\u0031\\u0036\\u65E5\",\n \"\\u33F0\", \"\\u0031\\u0037\\u65E5\",\n \"\\u33F1\", \"\\u0031\\u0038\\u65E5\",\n \"\\u33F2\", \"\\u0031\\u0039\\u65E5\",\n \"\\u33F3\", \"\\u0032\\u0030\\u65E5\",\n \"\\u33F4\", \"\\u0032\\u0031\\u65E5\",\n \"\\u33F5\", \"\\u0032\\u0032\\u65E5\",\n \"\\u33F6\", \"\\u0032\\u0033\\u65E5\",\n \"\\u33F7\", \"\\u0032\\u0034\\u65E5\",\n \"\\u33F8\", \"\\u0032\\u0035\\u65E5\",\n \"\\u33F9\", \"\\u0032\\u0036\\u65E5\",\n \"\\u33FA\", \"\\u0032\\u0037\\u65E5\",\n \"\\u33FB\", \"\\u0032\\u0038\\u65E5\",\n \"\\u33FC\", \"\\u0032\\u0039\\u65E5\",\n \"\\u33FD\", \"\\u0033\\u0030\\u65E5\",\n \"\\u33FE\", \"\\u0033\\u0031\\u65E5\",\n \"\\uFB00\", \"\\u0066\\u0066\",\n \"\\uFB01\", \"\\u0066\\u0069\",\n \"\\uFB02\", \"\\u0066\\u006C\",\n \"\\uFB03\", \"\\u0066\\u0066\\u0069\",\n \"\\uFB04\", \"\\u0066\\u0066\\u006C\",\n \"\\uFB05\", \"\\u017F\\u0074\",\n \"\\uFB06\", \"\\u0073\\u0074\",\n \"\\uFB13\", \"\\u0574\\u0576\",\n \"\\uFB14\", \"\\u0574\\u0565\",\n \"\\uFB15\", \"\\u0574\\u056B\",\n \"\\uFB16\", \"\\u057E\\u0576\",\n \"\\uFB17\", \"\\u0574\\u056D\",\n \"\\uFB4F\", \"\\u05D0\\u05DC\",\n \"\\uFB50\", \"\\u0671\",\n \"\\uFB51\", \"\\u0671\",\n \"\\uFB52\", \"\\u067B\",\n \"\\uFB53\", \"\\u067B\",\n \"\\uFB54\", \"\\u067B\",\n \"\\uFB55\", \"\\u067B\",\n \"\\uFB56\", \"\\u067E\",\n \"\\uFB57\", \"\\u067E\",\n \"\\uFB58\", \"\\u067E\",\n \"\\uFB59\", \"\\u067E\",\n \"\\uFB5A\", \"\\u0680\",\n \"\\uFB5B\", \"\\u0680\",\n \"\\uFB5C\", \"\\u0680\",\n \"\\uFB5D\", \"\\u0680\",\n \"\\uFB5E\", \"\\u067A\",\n \"\\uFB5F\", \"\\u067A\",\n \"\\uFB60\", \"\\u067A\",\n \"\\uFB61\", \"\\u067A\",\n \"\\uFB62\", \"\\u067F\",\n \"\\uFB63\", \"\\u067F\",\n \"\\uFB64\", \"\\u067F\",\n \"\\uFB65\", \"\\u067F\",\n \"\\uFB66\", \"\\u0679\",\n \"\\uFB67\", \"\\u0679\",\n \"\\uFB68\", \"\\u0679\",\n \"\\uFB69\", \"\\u0679\",\n \"\\uFB6A\", \"\\u06A4\",\n \"\\uFB6B\", \"\\u06A4\",\n \"\\uFB6C\", \"\\u06A4\",\n \"\\uFB6D\", \"\\u06A4\",\n \"\\uFB6E\", \"\\u06A6\",\n \"\\uFB6F\", \"\\u06A6\",\n \"\\uFB70\", \"\\u06A6\",\n \"\\uFB71\", \"\\u06A6\",\n \"\\uFB72\", \"\\u0684\",\n \"\\uFB73\", \"\\u0684\",\n \"\\uFB74\", \"\\u0684\",\n \"\\uFB75\", \"\\u0684\",\n \"\\uFB76\", \"\\u0683\",\n \"\\uFB77\", \"\\u0683\",\n \"\\uFB78\", \"\\u0683\",\n \"\\uFB79\", \"\\u0683\",\n \"\\uFB7A\", \"\\u0686\",\n \"\\uFB7B\", \"\\u0686\",\n \"\\uFB7C\", \"\\u0686\",\n \"\\uFB7D\", \"\\u0686\",\n \"\\uFB7E\", \"\\u0687\",\n \"\\uFB7F\", \"\\u0687\",\n \"\\uFB80\", \"\\u0687\",\n \"\\uFB81\", \"\\u0687\",\n \"\\uFB82\", \"\\u068D\",\n \"\\uFB83\", \"\\u068D\",\n \"\\uFB84\", \"\\u068C\",\n \"\\uFB85\", \"\\u068C\",\n \"\\uFB86\", \"\\u068E\",\n \"\\uFB87\", \"\\u068E\",\n \"\\uFB88\", \"\\u0688\",\n \"\\uFB89\", \"\\u0688\",\n \"\\uFB8A\", \"\\u0698\",\n \"\\uFB8B\", \"\\u0698\",\n \"\\uFB8C\", \"\\u0691\",\n \"\\uFB8D\", \"\\u0691\",\n \"\\uFB8E\", \"\\u06A9\",\n \"\\uFB8F\", \"\\u06A9\",\n \"\\uFB90\", \"\\u06A9\",\n \"\\uFB91\", \"\\u06A9\",\n \"\\uFB92\", \"\\u06AF\",\n \"\\uFB93\", \"\\u06AF\",\n \"\\uFB94\", \"\\u06AF\",\n \"\\uFB95\", \"\\u06AF\",\n \"\\uFB96\", \"\\u06B3\",\n \"\\uFB97\", \"\\u06B3\",\n \"\\uFB98\", \"\\u06B3\",\n \"\\uFB99\", \"\\u06B3\",\n \"\\uFB9A\", \"\\u06B1\",\n \"\\uFB9B\", \"\\u06B1\",\n \"\\uFB9C\", \"\\u06B1\",\n \"\\uFB9D\", \"\\u06B1\",\n \"\\uFB9E\", \"\\u06BA\",\n \"\\uFB9F\", \"\\u06BA\",\n \"\\uFBA0\", \"\\u06BB\",\n \"\\uFBA1\", \"\\u06BB\",\n \"\\uFBA2\", \"\\u06BB\",\n \"\\uFBA3\", \"\\u06BB\",\n \"\\uFBA4\", \"\\u06C0\",\n \"\\uFBA5\", \"\\u06C0\",\n \"\\uFBA6\", \"\\u06C1\",\n \"\\uFBA7\", \"\\u06C1\",\n \"\\uFBA8\", \"\\u06C1\",\n \"\\uFBA9\", \"\\u06C1\",\n \"\\uFBAA\", \"\\u06BE\",\n \"\\uFBAB\", \"\\u06BE\",\n \"\\uFBAC\", \"\\u06BE\",\n \"\\uFBAD\", \"\\u06BE\",\n \"\\uFBAE\", \"\\u06D2\",\n \"\\uFBAF\", \"\\u06D2\",\n \"\\uFBB0\", \"\\u06D3\",\n \"\\uFBB1\", \"\\u06D3\",\n \"\\uFBD3\", \"\\u06AD\",\n \"\\uFBD4\", \"\\u06AD\",\n \"\\uFBD5\", \"\\u06AD\",\n \"\\uFBD6\", \"\\u06AD\",\n \"\\uFBD7\", \"\\u06C7\",\n \"\\uFBD8\", \"\\u06C7\",\n \"\\uFBD9\", \"\\u06C6\",\n \"\\uFBDA\", \"\\u06C6\",\n \"\\uFBDB\", \"\\u06C8\",\n \"\\uFBDC\", \"\\u06C8\",\n \"\\uFBDD\", \"\\u0677\",\n \"\\uFBDE\", \"\\u06CB\",\n \"\\uFBDF\", \"\\u06CB\",\n \"\\uFBE0\", \"\\u06C5\",\n \"\\uFBE1\", \"\\u06C5\",\n \"\\uFBE2\", \"\\u06C9\",\n \"\\uFBE3\", \"\\u06C9\",\n \"\\uFBE4\", \"\\u06D0\",\n \"\\uFBE5\", \"\\u06D0\",\n \"\\uFBE6\", \"\\u06D0\",\n \"\\uFBE7\", \"\\u06D0\",\n \"\\uFBE8\", \"\\u0649\",\n \"\\uFBE9\", \"\\u0649\",\n \"\\uFBEA\", \"\\u0626\\u0627\",\n \"\\uFBEB\", \"\\u0626\\u0627\",\n \"\\uFBEC\", \"\\u0626\\u06D5\",\n \"\\uFBED\", \"\\u0626\\u06D5\",\n \"\\uFBEE\", \"\\u0626\\u0648\",\n \"\\uFBEF\", \"\\u0626\\u0648\",\n \"\\uFBF0\", \"\\u0626\\u06C7\",\n \"\\uFBF1\", \"\\u0626\\u06C7\",\n \"\\uFBF2\", \"\\u0626\\u06C6\",\n \"\\uFBF3\", \"\\u0626\\u06C6\",\n \"\\uFBF4\", \"\\u0626\\u06C8\",\n \"\\uFBF5\", \"\\u0626\\u06C8\",\n \"\\uFBF6\", \"\\u0626\\u06D0\",\n \"\\uFBF7\", \"\\u0626\\u06D0\",\n \"\\uFBF8\", \"\\u0626\\u06D0\",\n \"\\uFBF9\", \"\\u0626\\u0649\",\n \"\\uFBFA\", \"\\u0626\\u0649\",\n \"\\uFBFB\", \"\\u0626\\u0649\",\n \"\\uFBFC\", \"\\u06CC\",\n \"\\uFBFD\", \"\\u06CC\",\n \"\\uFBFE\", \"\\u06CC\",\n \"\\uFBFF\", \"\\u06CC\",\n \"\\uFC00\", \"\\u0626\\u062C\",\n \"\\uFC01\", \"\\u0626\\u062D\",\n \"\\uFC02\", \"\\u0626\\u0645\",\n \"\\uFC03\", \"\\u0626\\u0649\",\n \"\\uFC04\", \"\\u0626\\u064A\",\n \"\\uFC05\", \"\\u0628\\u062C\",\n \"\\uFC06\", \"\\u0628\\u062D\",\n \"\\uFC07\", \"\\u0628\\u062E\",\n \"\\uFC08\", \"\\u0628\\u0645\",\n \"\\uFC09\", \"\\u0628\\u0649\",\n \"\\uFC0A\", \"\\u0628\\u064A\",\n \"\\uFC0B\", \"\\u062A\\u062C\",\n \"\\uFC0C\", \"\\u062A\\u062D\",\n \"\\uFC0D\", \"\\u062A\\u062E\",\n \"\\uFC0E\", \"\\u062A\\u0645\",\n \"\\uFC0F\", \"\\u062A\\u0649\",\n \"\\uFC10\", \"\\u062A\\u064A\",\n \"\\uFC11\", \"\\u062B\\u062C\",\n \"\\uFC12\", \"\\u062B\\u0645\",\n \"\\uFC13\", \"\\u062B\\u0649\",\n \"\\uFC14\", \"\\u062B\\u064A\",\n \"\\uFC15\", \"\\u062C\\u062D\",\n \"\\uFC16\", \"\\u062C\\u0645\",\n \"\\uFC17\", \"\\u062D\\u062C\",\n \"\\uFC18\", \"\\u062D\\u0645\",\n \"\\uFC19\", \"\\u062E\\u062C\",\n \"\\uFC1A\", \"\\u062E\\u062D\",\n \"\\uFC1B\", \"\\u062E\\u0645\",\n \"\\uFC1C\", \"\\u0633\\u062C\",\n \"\\uFC1D\", \"\\u0633\\u062D\",\n \"\\uFC1E\", \"\\u0633\\u062E\",\n \"\\uFC1F\", \"\\u0633\\u0645\",\n \"\\uFC20\", \"\\u0635\\u062D\",\n \"\\uFC21\", \"\\u0635\\u0645\",\n \"\\uFC22\", \"\\u0636\\u062C\",\n \"\\uFC23\", \"\\u0636\\u062D\",\n \"\\uFC24\", \"\\u0636\\u062E\",\n \"\\uFC25\", \"\\u0636\\u0645\",\n \"\\uFC26\", \"\\u0637\\u062D\",\n \"\\uFC27\", \"\\u0637\\u0645\",\n \"\\uFC28\", \"\\u0638\\u0645\",\n \"\\uFC29\", \"\\u0639\\u062C\",\n \"\\uFC2A\", \"\\u0639\\u0645\",\n \"\\uFC2B\", \"\\u063A\\u062C\",\n \"\\uFC2C\", \"\\u063A\\u0645\",\n \"\\uFC2D\", \"\\u0641\\u062C\",\n \"\\uFC2E\", \"\\u0641\\u062D\",\n \"\\uFC2F\", \"\\u0641\\u062E\",\n \"\\uFC30\", \"\\u0641\\u0645\",\n \"\\uFC31\", \"\\u0641\\u0649\",\n \"\\uFC32\", \"\\u0641\\u064A\",\n \"\\uFC33\", \"\\u0642\\u062D\",\n \"\\uFC34\", \"\\u0642\\u0645\",\n \"\\uFC35\", \"\\u0642\\u0649\",\n \"\\uFC36\", \"\\u0642\\u064A\",\n \"\\uFC37\", \"\\u0643\\u0627\",\n \"\\uFC38\", \"\\u0643\\u062C\",\n \"\\uFC39\", \"\\u0643\\u062D\",\n \"\\uFC3A\", \"\\u0643\\u062E\",\n \"\\uFC3B\", \"\\u0643\\u0644\",\n \"\\uFC3C\", \"\\u0643\\u0645\",\n \"\\uFC3D\", \"\\u0643\\u0649\",\n \"\\uFC3E\", \"\\u0643\\u064A\",\n \"\\uFC3F\", \"\\u0644\\u062C\",\n \"\\uFC40\", \"\\u0644\\u062D\",\n \"\\uFC41\", \"\\u0644\\u062E\",\n \"\\uFC42\", \"\\u0644\\u0645\",\n \"\\uFC43\", \"\\u0644\\u0649\",\n \"\\uFC44\", \"\\u0644\\u064A\",\n \"\\uFC45\", \"\\u0645\\u062C\",\n \"\\uFC46\", \"\\u0645\\u062D\",\n \"\\uFC47\", \"\\u0645\\u062E\",\n \"\\uFC48\", \"\\u0645\\u0645\",\n \"\\uFC49\", \"\\u0645\\u0649\",\n \"\\uFC4A\", \"\\u0645\\u064A\",\n \"\\uFC4B\", \"\\u0646\\u062C\",\n \"\\uFC4C\", \"\\u0646\\u062D\",\n \"\\uFC4D\", \"\\u0646\\u062E\",\n \"\\uFC4E\", \"\\u0646\\u0645\",\n \"\\uFC4F\", \"\\u0646\\u0649\",\n \"\\uFC50\", \"\\u0646\\u064A\",\n \"\\uFC51\", \"\\u0647\\u062C\",\n \"\\uFC52\", \"\\u0647\\u0645\",\n \"\\uFC53\", \"\\u0647\\u0649\",\n \"\\uFC54\", \"\\u0647\\u064A\",\n \"\\uFC55\", \"\\u064A\\u062C\",\n \"\\uFC56\", \"\\u064A\\u062D\",\n \"\\uFC57\", \"\\u064A\\u062E\",\n \"\\uFC58\", \"\\u064A\\u0645\",\n \"\\uFC59\", \"\\u064A\\u0649\",\n \"\\uFC5A\", \"\\u064A\\u064A\",\n \"\\uFC5B\", \"\\u0630\\u0670\",\n \"\\uFC5C\", \"\\u0631\\u0670\",\n \"\\uFC5D\", \"\\u0649\\u0670\",\n \"\\uFC5E\", \"\\u0020\\u064C\\u0651\",\n \"\\uFC5F\", \"\\u0020\\u064D\\u0651\",\n \"\\uFC60\", \"\\u0020\\u064E\\u0651\",\n \"\\uFC61\", \"\\u0020\\u064F\\u0651\",\n \"\\uFC62\", \"\\u0020\\u0650\\u0651\",\n \"\\uFC63\", \"\\u0020\\u0651\\u0670\",\n \"\\uFC64\", \"\\u0626\\u0631\",\n \"\\uFC65\", \"\\u0626\\u0632\",\n \"\\uFC66\", \"\\u0626\\u0645\",\n \"\\uFC67\", \"\\u0626\\u0646\",\n \"\\uFC68\", \"\\u0626\\u0649\",\n \"\\uFC69\", \"\\u0626\\u064A\",\n \"\\uFC6A\", \"\\u0628\\u0631\",\n \"\\uFC6B\", \"\\u0628\\u0632\",\n \"\\uFC6C\", \"\\u0628\\u0645\",\n \"\\uFC6D\", \"\\u0628\\u0646\",\n \"\\uFC6E\", \"\\u0628\\u0649\",\n \"\\uFC6F\", \"\\u0628\\u064A\",\n \"\\uFC70\", \"\\u062A\\u0631\",\n \"\\uFC71\", \"\\u062A\\u0632\",\n \"\\uFC72\", \"\\u062A\\u0645\",\n \"\\uFC73\", \"\\u062A\\u0646\",\n \"\\uFC74\", \"\\u062A\\u0649\",\n \"\\uFC75\", \"\\u062A\\u064A\",\n \"\\uFC76\", \"\\u062B\\u0631\",\n \"\\uFC77\", \"\\u062B\\u0632\",\n \"\\uFC78\", \"\\u062B\\u0645\",\n \"\\uFC79\", \"\\u062B\\u0646\",\n \"\\uFC7A\", \"\\u062B\\u0649\",\n \"\\uFC7B\", \"\\u062B\\u064A\",\n \"\\uFC7C\", \"\\u0641\\u0649\",\n \"\\uFC7D\", \"\\u0641\\u064A\",\n \"\\uFC7E\", \"\\u0642\\u0649\",\n \"\\uFC7F\", \"\\u0642\\u064A\",\n \"\\uFC80\", \"\\u0643\\u0627\",\n \"\\uFC81\", \"\\u0643\\u0644\",\n \"\\uFC82\", \"\\u0643\\u0645\",\n \"\\uFC83\", \"\\u0643\\u0649\",\n \"\\uFC84\", \"\\u0643\\u064A\",\n \"\\uFC85\", \"\\u0644\\u0645\",\n \"\\uFC86\", \"\\u0644\\u0649\",\n \"\\uFC87\", \"\\u0644\\u064A\",\n \"\\uFC88\", \"\\u0645\\u0627\",\n \"\\uFC89\", \"\\u0645\\u0645\",\n \"\\uFC8A\", \"\\u0646\\u0631\",\n \"\\uFC8B\", \"\\u0646\\u0632\",\n \"\\uFC8C\", \"\\u0646\\u0645\",\n \"\\uFC8D\", \"\\u0646\\u0646\",\n \"\\uFC8E\", \"\\u0646\\u0649\",\n \"\\uFC8F\", \"\\u0646\\u064A\",\n \"\\uFC90\", \"\\u0649\\u0670\",\n \"\\uFC91\", \"\\u064A\\u0631\",\n \"\\uFC92\", \"\\u064A\\u0632\",\n \"\\uFC93\", \"\\u064A\\u0645\",\n \"\\uFC94\", \"\\u064A\\u0646\",\n \"\\uFC95\", \"\\u064A\\u0649\",\n \"\\uFC96\", \"\\u064A\\u064A\",\n \"\\uFC97\", \"\\u0626\\u062C\",\n \"\\uFC98\", \"\\u0626\\u062D\",\n \"\\uFC99\", \"\\u0626\\u062E\",\n \"\\uFC9A\", \"\\u0626\\u0645\",\n \"\\uFC9B\", \"\\u0626\\u0647\",\n \"\\uFC9C\", \"\\u0628\\u062C\",\n \"\\uFC9D\", \"\\u0628\\u062D\",\n \"\\uFC9E\", \"\\u0628\\u062E\",\n \"\\uFC9F\", \"\\u0628\\u0645\",\n \"\\uFCA0\", \"\\u0628\\u0647\",\n \"\\uFCA1\", \"\\u062A\\u062C\",\n \"\\uFCA2\", \"\\u062A\\u062D\",\n \"\\uFCA3\", \"\\u062A\\u062E\",\n \"\\uFCA4\", \"\\u062A\\u0645\",\n \"\\uFCA5\", \"\\u062A\\u0647\",\n \"\\uFCA6\", \"\\u062B\\u0645\",\n \"\\uFCA7\", \"\\u062C\\u062D\",\n \"\\uFCA8\", \"\\u062C\\u0645\",\n \"\\uFCA9\", \"\\u062D\\u062C\",\n \"\\uFCAA\", \"\\u062D\\u0645\",\n \"\\uFCAB\", \"\\u062E\\u062C\",\n \"\\uFCAC\", \"\\u062E\\u0645\",\n \"\\uFCAD\", \"\\u0633\\u062C\",\n \"\\uFCAE\", \"\\u0633\\u062D\",\n \"\\uFCAF\", \"\\u0633\\u062E\",\n \"\\uFCB0\", \"\\u0633\\u0645\",\n \"\\uFCB1\", \"\\u0635\\u062D\",\n \"\\uFCB2\", \"\\u0635\\u062E\",\n \"\\uFCB3\", \"\\u0635\\u0645\",\n \"\\uFCB4\", \"\\u0636\\u062C\",\n \"\\uFCB5\", \"\\u0636\\u062D\",\n \"\\uFCB6\", \"\\u0636\\u062E\",\n \"\\uFCB7\", \"\\u0636\\u0645\",\n \"\\uFCB8\", \"\\u0637\\u062D\",\n \"\\uFCB9\", \"\\u0638\\u0645\",\n \"\\uFCBA\", \"\\u0639\\u062C\",\n \"\\uFCBB\", \"\\u0639\\u0645\",\n \"\\uFCBC\", \"\\u063A\\u062C\",\n \"\\uFCBD\", \"\\u063A\\u0645\",\n \"\\uFCBE\", \"\\u0641\\u062C\",\n \"\\uFCBF\", \"\\u0641\\u062D\",\n \"\\uFCC0\", \"\\u0641\\u062E\",\n \"\\uFCC1\", \"\\u0641\\u0645\",\n \"\\uFCC2\", \"\\u0642\\u062D\",\n \"\\uFCC3\", \"\\u0642\\u0645\",\n \"\\uFCC4\", \"\\u0643\\u062C\",\n \"\\uFCC5\", \"\\u0643\\u062D\",\n \"\\uFCC6\", \"\\u0643\\u062E\",\n \"\\uFCC7\", \"\\u0643\\u0644\",\n \"\\uFCC8\", \"\\u0643\\u0645\",\n \"\\uFCC9\", \"\\u0644\\u062C\",\n \"\\uFCCA\", \"\\u0644\\u062D\",\n \"\\uFCCB\", \"\\u0644\\u062E\",\n \"\\uFCCC\", \"\\u0644\\u0645\",\n \"\\uFCCD\", \"\\u0644\\u0647\",\n \"\\uFCCE\", \"\\u0645\\u062C\",\n \"\\uFCCF\", \"\\u0645\\u062D\",\n \"\\uFCD0\", \"\\u0645\\u062E\",\n \"\\uFCD1\", \"\\u0645\\u0645\",\n \"\\uFCD2\", \"\\u0646\\u062C\",\n \"\\uFCD3\", \"\\u0646\\u062D\",\n \"\\uFCD4\", \"\\u0646\\u062E\",\n \"\\uFCD5\", \"\\u0646\\u0645\",\n \"\\uFCD6\", \"\\u0646\\u0647\",\n \"\\uFCD7\", \"\\u0647\\u062C\",\n \"\\uFCD8\", \"\\u0647\\u0645\",\n \"\\uFCD9\", \"\\u0647\\u0670\",\n \"\\uFCDA\", \"\\u064A\\u062C\",\n \"\\uFCDB\", \"\\u064A\\u062D\",\n \"\\uFCDC\", \"\\u064A\\u062E\",\n \"\\uFCDD\", \"\\u064A\\u0645\",\n \"\\uFCDE\", \"\\u064A\\u0647\",\n \"\\uFCDF\", \"\\u0626\\u0645\",\n \"\\uFCE0\", \"\\u0626\\u0647\",\n \"\\uFCE1\", \"\\u0628\\u0645\",\n \"\\uFCE2\", \"\\u0628\\u0647\",\n \"\\uFCE3\", \"\\u062A\\u0645\",\n \"\\uFCE4\", \"\\u062A\\u0647\",\n \"\\uFCE5\", \"\\u062B\\u0645\",\n \"\\uFCE6\", \"\\u062B\\u0647\",\n \"\\uFCE7\", \"\\u0633\\u0645\",\n \"\\uFCE8\", \"\\u0633\\u0647\",\n \"\\uFCE9\", \"\\u0634\\u0645\",\n \"\\uFCEA\", \"\\u0634\\u0647\",\n \"\\uFCEB\", \"\\u0643\\u0644\",\n \"\\uFCEC\", \"\\u0643\\u0645\",\n \"\\uFCED\", \"\\u0644\\u0645\",\n \"\\uFCEE\", \"\\u0646\\u0645\",\n \"\\uFCEF\", \"\\u0646\\u0647\",\n \"\\uFCF0\", \"\\u064A\\u0645\",\n \"\\uFCF1\", \"\\u064A\\u0647\",\n \"\\uFCF2\", \"\\u0640\\u064E\\u0651\",\n \"\\uFCF3\", \"\\u0640\\u064F\\u0651\",\n \"\\uFCF4\", \"\\u0640\\u0650\\u0651\",\n \"\\uFCF5\", \"\\u0637\\u0649\",\n \"\\uFCF6\", \"\\u0637\\u064A\",\n \"\\uFCF7\", \"\\u0639\\u0649\",\n \"\\uFCF8\", \"\\u0639\\u064A\",\n \"\\uFCF9\", \"\\u063A\\u0649\",\n \"\\uFCFA\", \"\\u063A\\u064A\",\n \"\\uFCFB\", \"\\u0633\\u0649\",\n \"\\uFCFC\", \"\\u0633\\u064A\",\n \"\\uFCFD\", \"\\u0634\\u0649\",\n \"\\uFCFE\", \"\\u0634\\u064A\",\n \"\\uFCFF\", \"\\u062D\\u0649\",\n \"\\uFD00\", \"\\u062D\\u064A\",\n \"\\uFD01\", \"\\u062C\\u0649\",\n \"\\uFD02\", \"\\u062C\\u064A\",\n \"\\uFD03\", \"\\u062E\\u0649\",\n \"\\uFD04\", \"\\u062E\\u064A\",\n \"\\uFD05\", \"\\u0635\\u0649\",\n \"\\uFD06\", \"\\u0635\\u064A\",\n \"\\uFD07\", \"\\u0636\\u0649\",\n \"\\uFD08\", \"\\u0636\\u064A\",\n \"\\uFD09\", \"\\u0634\\u062C\",\n \"\\uFD0A\", \"\\u0634\\u062D\",\n \"\\uFD0B\", \"\\u0634\\u062E\",\n \"\\uFD0C\", \"\\u0634\\u0645\",\n \"\\uFD0D\", \"\\u0634\\u0631\",\n \"\\uFD0E\", \"\\u0633\\u0631\",\n \"\\uFD0F\", \"\\u0635\\u0631\",\n \"\\uFD10\", \"\\u0636\\u0631\",\n \"\\uFD11\", \"\\u0637\\u0649\",\n \"\\uFD12\", \"\\u0637\\u064A\",\n \"\\uFD13\", \"\\u0639\\u0649\",\n \"\\uFD14\", \"\\u0639\\u064A\",\n \"\\uFD15\", \"\\u063A\\u0649\",\n \"\\uFD16\", \"\\u063A\\u064A\",\n \"\\uFD17\", \"\\u0633\\u0649\",\n \"\\uFD18\", \"\\u0633\\u064A\",\n \"\\uFD19\", \"\\u0634\\u0649\",\n \"\\uFD1A\", \"\\u0634\\u064A\",\n \"\\uFD1B\", \"\\u062D\\u0649\",\n \"\\uFD1C\", \"\\u062D\\u064A\",\n \"\\uFD1D\", \"\\u062C\\u0649\",\n \"\\uFD1E\", \"\\u062C\\u064A\",\n \"\\uFD1F\", \"\\u062E\\u0649\",\n \"\\uFD20\", \"\\u062E\\u064A\",\n \"\\uFD21\", \"\\u0635\\u0649\",\n \"\\uFD22\", \"\\u0635\\u064A\",\n \"\\uFD23\", \"\\u0636\\u0649\",\n \"\\uFD24\", \"\\u0636\\u064A\",\n \"\\uFD25\", \"\\u0634\\u062C\",\n \"\\uFD26\", \"\\u0634\\u062D\",\n \"\\uFD27\", \"\\u0634\\u062E\",\n \"\\uFD28\", \"\\u0634\\u0645\",\n \"\\uFD29\", \"\\u0634\\u0631\",\n \"\\uFD2A\", \"\\u0633\\u0631\",\n \"\\uFD2B\", \"\\u0635\\u0631\",\n \"\\uFD2C\", \"\\u0636\\u0631\",\n \"\\uFD2D\", \"\\u0634\\u062C\",\n \"\\uFD2E\", \"\\u0634\\u062D\",\n \"\\uFD2F\", \"\\u0634\\u062E\",\n \"\\uFD30\", \"\\u0634\\u0645\",\n \"\\uFD31\", \"\\u0633\\u0647\",\n \"\\uFD32\", \"\\u0634\\u0647\",\n \"\\uFD33\", \"\\u0637\\u0645\",\n \"\\uFD34\", \"\\u0633\\u062C\",\n \"\\uFD35\", \"\\u0633\\u062D\",\n \"\\uFD36\", \"\\u0633\\u062E\",\n \"\\uFD37\", \"\\u0634\\u062C\",\n \"\\uFD38\", \"\\u0634\\u062D\",\n \"\\uFD39\", \"\\u0634\\u062E\",\n \"\\uFD3A\", \"\\u0637\\u0645\",\n \"\\uFD3B\", \"\\u0638\\u0645\",\n \"\\uFD3C\", \"\\u0627\\u064B\",\n \"\\uFD3D\", \"\\u0627\\u064B\",\n \"\\uFD50\", \"\\u062A\\u062C\\u0645\",\n \"\\uFD51\", \"\\u062A\\u062D\\u062C\",\n \"\\uFD52\", \"\\u062A\\u062D\\u062C\",\n \"\\uFD53\", \"\\u062A\\u062D\\u0645\",\n \"\\uFD54\", \"\\u062A\\u062E\\u0645\",\n \"\\uFD55\", \"\\u062A\\u0645\\u062C\",\n \"\\uFD56\", \"\\u062A\\u0645\\u062D\",\n \"\\uFD57\", \"\\u062A\\u0645\\u062E\",\n \"\\uFD58\", \"\\u062C\\u0645\\u062D\",\n \"\\uFD59\", \"\\u062C\\u0645\\u062D\",\n \"\\uFD5A\", \"\\u062D\\u0645\\u064A\",\n \"\\uFD5B\", \"\\u062D\\u0645\\u0649\",\n \"\\uFD5C\", \"\\u0633\\u062D\\u062C\",\n \"\\uFD5D\", \"\\u0633\\u062C\\u062D\",\n \"\\uFD5E\", \"\\u0633\\u062C\\u0649\",\n \"\\uFD5F\", \"\\u0633\\u0645\\u062D\",\n \"\\uFD60\", \"\\u0633\\u0645\\u062D\",\n \"\\uFD61\", \"\\u0633\\u0645\\u062C\",\n \"\\uFD62\", \"\\u0633\\u0645\\u0645\",\n \"\\uFD63\", \"\\u0633\\u0645\\u0645\",\n \"\\uFD64\", \"\\u0635\\u062D\\u062D\",\n \"\\uFD65\", \"\\u0635\\u062D\\u062D\",\n \"\\uFD66\", \"\\u0635\\u0645\\u0645\",\n \"\\uFD67\", \"\\u0634\\u062D\\u0645\",\n \"\\uFD68\", \"\\u0634\\u062D\\u0645\",\n \"\\uFD69\", \"\\u0634\\u062C\\u064A\",\n \"\\uFD6A\", \"\\u0634\\u0645\\u062E\",\n \"\\uFD6B\", \"\\u0634\\u0645\\u062E\",\n \"\\uFD6C\", \"\\u0634\\u0645\\u0645\",\n \"\\uFD6D\", \"\\u0634\\u0645\\u0645\",\n \"\\uFD6E\", \"\\u0636\\u062D\\u0649\",\n \"\\uFD6F\", \"\\u0636\\u062E\\u0645\",\n \"\\uFD70\", \"\\u0636\\u062E\\u0645\",\n \"\\uFD71\", \"\\u0637\\u0645\\u062D\",\n \"\\uFD72\", \"\\u0637\\u0645\\u062D\",\n \"\\uFD73\", \"\\u0637\\u0645\\u0645\",\n \"\\uFD74\", \"\\u0637\\u0645\\u064A\",\n \"\\uFD75\", \"\\u0639\\u062C\\u0645\",\n \"\\uFD76\", \"\\u0639\\u0645\\u0645\",\n \"\\uFD77\", \"\\u0639\\u0645\\u0645\",\n \"\\uFD78\", \"\\u0639\\u0645\\u0649\",\n \"\\uFD79\", \"\\u063A\\u0645\\u0645\",\n \"\\uFD7A\", \"\\u063A\\u0645\\u064A\",\n \"\\uFD7B\", \"\\u063A\\u0645\\u0649\",\n \"\\uFD7C\", \"\\u0641\\u062E\\u0645\",\n \"\\uFD7D\", \"\\u0641\\u062E\\u0645\",\n \"\\uFD7E\", \"\\u0642\\u0645\\u062D\",\n \"\\uFD7F\", \"\\u0642\\u0645\\u0645\",\n \"\\uFD80\", \"\\u0644\\u062D\\u0645\",\n \"\\uFD81\", \"\\u0644\\u062D\\u064A\",\n \"\\uFD82\", \"\\u0644\\u062D\\u0649\",\n \"\\uFD83\", \"\\u0644\\u062C\\u062C\",\n \"\\uFD84\", \"\\u0644\\u062C\\u062C\",\n \"\\uFD85\", \"\\u0644\\u062E\\u0645\",\n \"\\uFD86\", \"\\u0644\\u062E\\u0645\",\n \"\\uFD87\", \"\\u0644\\u0645\\u062D\",\n \"\\uFD88\", \"\\u0644\\u0645\\u062D\",\n \"\\uFD89\", \"\\u0645\\u062D\\u062C\",\n \"\\uFD8A\", \"\\u0645\\u062D\\u0645\",\n \"\\uFD8B\", \"\\u0645\\u062D\\u064A\",\n \"\\uFD8C\", \"\\u0645\\u062C\\u062D\",\n \"\\uFD8D\", \"\\u0645\\u062C\\u0645\",\n \"\\uFD8E\", \"\\u0645\\u062E\\u062C\",\n \"\\uFD8F\", \"\\u0645\\u062E\\u0645\",\n \"\\uFD92\", \"\\u0645\\u062C\\u062E\",\n \"\\uFD93\", \"\\u0647\\u0645\\u062C\",\n \"\\uFD94\", \"\\u0647\\u0645\\u0645\",\n \"\\uFD95\", \"\\u0646\\u062D\\u0645\",\n \"\\uFD96\", \"\\u0646\\u062D\\u0649\",\n \"\\uFD97\", \"\\u0646\\u062C\\u0645\",\n \"\\uFD98\", \"\\u0646\\u062C\\u0645\",\n \"\\uFD99\", \"\\u0646\\u062C\\u0649\",\n \"\\uFD9A\", \"\\u0646\\u0645\\u064A\",\n \"\\uFD9B\", \"\\u0646\\u0645\\u0649\",\n \"\\uFD9C\", \"\\u064A\\u0645\\u0645\",\n \"\\uFD9D\", \"\\u064A\\u0645\\u0645\",\n \"\\uFD9E\", \"\\u0628\\u062E\\u064A\",\n \"\\uFD9F\", \"\\u062A\\u062C\\u064A\",\n \"\\uFDA0\", \"\\u062A\\u062C\\u0649\",\n \"\\uFDA1\", \"\\u062A\\u062E\\u064A\",\n \"\\uFDA2\", \"\\u062A\\u062E\\u0649\",\n \"\\uFDA3\", \"\\u062A\\u0645\\u064A\",\n \"\\uFDA4\", \"\\u062A\\u0645\\u0649\",\n \"\\uFDA5\", \"\\u062C\\u0645\\u064A\",\n \"\\uFDA6\", \"\\u062C\\u062D\\u0649\",\n \"\\uFDA7\", \"\\u062C\\u0645\\u0649\",\n \"\\uFDA8\", \"\\u0633\\u062E\\u0649\",\n \"\\uFDA9\", \"\\u0635\\u062D\\u064A\",\n \"\\uFDAA\", \"\\u0634\\u062D\\u064A\",\n \"\\uFDAB\", \"\\u0636\\u062D\\u064A\",\n \"\\uFDAC\", \"\\u0644\\u062C\\u064A\",\n \"\\uFDAD\", \"\\u0644\\u0645\\u064A\",\n \"\\uFDAE\", \"\\u064A\\u062D\\u064A\",\n \"\\uFDAF\", \"\\u064A\\u062C\\u064A\",\n \"\\uFDB0\", \"\\u064A\\u0645\\u064A\",\n \"\\uFDB1\", \"\\u0645\\u0645\\u064A\",\n \"\\uFDB2\", \"\\u0642\\u0645\\u064A\",\n \"\\uFDB3\", \"\\u0646\\u062D\\u064A\",\n \"\\uFDB4\", \"\\u0642\\u0645\\u062D\",\n \"\\uFDB5\", \"\\u0644\\u062D\\u0645\",\n \"\\uFDB6\", \"\\u0639\\u0645\\u064A\",\n \"\\uFDB7\", \"\\u0643\\u0645\\u064A\",\n \"\\uFDB8\", \"\\u0646\\u062C\\u062D\",\n \"\\uFDB9\", \"\\u0645\\u062E\\u064A\",\n \"\\uFDBA\", \"\\u0644\\u062C\\u0645\",\n \"\\uFDBB\", \"\\u0643\\u0645\\u0645\",\n \"\\uFDBC\", \"\\u0644\\u062C\\u0645\",\n \"\\uFDBD\", \"\\u0646\\u062C\\u062D\",\n \"\\uFDBE\", \"\\u062C\\u062D\\u064A\",\n \"\\uFDBF\", \"\\u062D\\u062C\\u064A\",\n \"\\uFDC0\", \"\\u0645\\u062C\\u064A\",\n \"\\uFDC1\", \"\\u0641\\u0645\\u064A\",\n \"\\uFDC2\", \"\\u0628\\u062D\\u064A\",\n \"\\uFDC3\", \"\\u0643\\u0645\\u0645\",\n \"\\uFDC4\", \"\\u0639\\u062C\\u0645\",\n \"\\uFDC5\", \"\\u0635\\u0645\\u0645\",\n \"\\uFDC6\", \"\\u0633\\u062E\\u064A\",\n \"\\uFDC7\", \"\\u0646\\u062C\\u064A\",\n \"\\uFE49\", \"\\u203E\",\n \"\\uFE4A\", \"\\u203E\",\n \"\\uFE4B\", \"\\u203E\",\n \"\\uFE4C\", \"\\u203E\",\n \"\\uFE4D\", \"\\u005F\",\n \"\\uFE4E\", \"\\u005F\",\n \"\\uFE4F\", \"\\u005F\",\n \"\\uFE80\", \"\\u0621\",\n \"\\uFE81\", \"\\u0622\",\n \"\\uFE82\", \"\\u0622\",\n \"\\uFE83\", \"\\u0623\",\n \"\\uFE84\", \"\\u0623\",\n \"\\uFE85\", \"\\u0624\",\n \"\\uFE86\", \"\\u0624\",\n \"\\uFE87\", \"\\u0625\",\n \"\\uFE88\", \"\\u0625\",\n \"\\uFE89\", \"\\u0626\",\n \"\\uFE8A\", \"\\u0626\",\n \"\\uFE8B\", \"\\u0626\",\n \"\\uFE8C\", \"\\u0626\",\n \"\\uFE8D\", \"\\u0627\",\n \"\\uFE8E\", \"\\u0627\",\n \"\\uFE8F\", \"\\u0628\",\n \"\\uFE90\", \"\\u0628\",\n \"\\uFE91\", \"\\u0628\",\n \"\\uFE92\", \"\\u0628\",\n \"\\uFE93\", \"\\u0629\",\n \"\\uFE94\", \"\\u0629\",\n \"\\uFE95\", \"\\u062A\",\n \"\\uFE96\", \"\\u062A\",\n \"\\uFE97\", \"\\u062A\",\n \"\\uFE98\", \"\\u062A\",\n \"\\uFE99\", \"\\u062B\",\n \"\\uFE9A\", \"\\u062B\",\n \"\\uFE9B\", \"\\u062B\",\n \"\\uFE9C\", \"\\u062B\",\n \"\\uFE9D\", \"\\u062C\",\n \"\\uFE9E\", \"\\u062C\",\n \"\\uFE9F\", \"\\u062C\",\n \"\\uFEA0\", \"\\u062C\",\n \"\\uFEA1\", \"\\u062D\",\n \"\\uFEA2\", \"\\u062D\",\n \"\\uFEA3\", \"\\u062D\",\n \"\\uFEA4\", \"\\u062D\",\n \"\\uFEA5\", \"\\u062E\",\n \"\\uFEA6\", \"\\u062E\",\n \"\\uFEA7\", \"\\u062E\",\n \"\\uFEA8\", \"\\u062E\",\n \"\\uFEA9\", \"\\u062F\",\n \"\\uFEAA\", \"\\u062F\",\n \"\\uFEAB\", \"\\u0630\",\n \"\\uFEAC\", \"\\u0630\",\n \"\\uFEAD\", \"\\u0631\",\n \"\\uFEAE\", \"\\u0631\",\n \"\\uFEAF\", \"\\u0632\",\n \"\\uFEB0\", \"\\u0632\",\n \"\\uFEB1\", \"\\u0633\",\n \"\\uFEB2\", \"\\u0633\",\n \"\\uFEB3\", \"\\u0633\",\n \"\\uFEB4\", \"\\u0633\",\n \"\\uFEB5\", \"\\u0634\",\n \"\\uFEB6\", \"\\u0634\",\n \"\\uFEB7\", \"\\u0634\",\n \"\\uFEB8\", \"\\u0634\",\n \"\\uFEB9\", \"\\u0635\",\n \"\\uFEBA\", \"\\u0635\",\n \"\\uFEBB\", \"\\u0635\",\n \"\\uFEBC\", \"\\u0635\",\n \"\\uFEBD\", \"\\u0636\",\n \"\\uFEBE\", \"\\u0636\",\n \"\\uFEBF\", \"\\u0636\",\n \"\\uFEC0\", \"\\u0636\",\n \"\\uFEC1\", \"\\u0637\",\n \"\\uFEC2\", \"\\u0637\",\n \"\\uFEC3\", \"\\u0637\",\n \"\\uFEC4\", \"\\u0637\",\n \"\\uFEC5\", \"\\u0638\",\n \"\\uFEC6\", \"\\u0638\",\n \"\\uFEC7\", \"\\u0638\",\n \"\\uFEC8\", \"\\u0638\",\n \"\\uFEC9\", \"\\u0639\",\n \"\\uFECA\", \"\\u0639\",\n \"\\uFECB\", \"\\u0639\",\n \"\\uFECC\", \"\\u0639\",\n \"\\uFECD\", \"\\u063A\",\n \"\\uFECE\", \"\\u063A\",\n \"\\uFECF\", \"\\u063A\",\n \"\\uFED0\", \"\\u063A\",\n \"\\uFED1\", \"\\u0641\",\n \"\\uFED2\", \"\\u0641\",\n \"\\uFED3\", \"\\u0641\",\n \"\\uFED4\", \"\\u0641\",\n \"\\uFED5\", \"\\u0642\",\n \"\\uFED6\", \"\\u0642\",\n \"\\uFED7\", \"\\u0642\",\n \"\\uFED8\", \"\\u0642\",\n \"\\uFED9\", \"\\u0643\",\n \"\\uFEDA\", \"\\u0643\",\n \"\\uFEDB\", \"\\u0643\",\n \"\\uFEDC\", \"\\u0643\",\n \"\\uFEDD\", \"\\u0644\",\n \"\\uFEDE\", \"\\u0644\",\n \"\\uFEDF\", \"\\u0644\",\n \"\\uFEE0\", \"\\u0644\",\n \"\\uFEE1\", \"\\u0645\",\n \"\\uFEE2\", \"\\u0645\",\n \"\\uFEE3\", \"\\u0645\",\n \"\\uFEE4\", \"\\u0645\",\n \"\\uFEE5\", \"\\u0646\",\n \"\\uFEE6\", \"\\u0646\",\n \"\\uFEE7\", \"\\u0646\",\n \"\\uFEE8\", \"\\u0646\",\n \"\\uFEE9\", \"\\u0647\",\n \"\\uFEEA\", \"\\u0647\",\n \"\\uFEEB\", \"\\u0647\",\n \"\\uFEEC\", \"\\u0647\",\n \"\\uFEED\", \"\\u0648\",\n \"\\uFEEE\", \"\\u0648\",\n \"\\uFEEF\", \"\\u0649\",\n \"\\uFEF0\", \"\\u0649\",\n \"\\uFEF1\", \"\\u064A\",\n \"\\uFEF2\", \"\\u064A\",\n \"\\uFEF3\", \"\\u064A\",\n \"\\uFEF4\", \"\\u064A\",\n \"\\uFEF5\", \"\\u0644\\u0622\",\n \"\\uFEF6\", \"\\u0644\\u0622\",\n \"\\uFEF7\", \"\\u0644\\u0623\",\n \"\\uFEF8\", \"\\u0644\\u0623\",\n \"\\uFEF9\", \"\\u0644\\u0625\",\n \"\\uFEFA\", \"\\u0644\\u0625\",\n \"\\uFEFB\", \"\\u0644\\u0627\",\n \"\\uFEFC\", \"\\u0644\\u0627\",\n ];\n});\n\nfunction reverseIfRtl(chars) {\n const charsLength = chars.length;\n // Reverse an arabic ligature.\n if (charsLength <= 1 || !isRTLRangeFor(chars.charCodeAt(0))) {\n return chars;\n }\n const buf = [];\n for (let ii = charsLength - 1; ii >= 0; ii--) {\n buf.push(chars[ii]);\n }\n return buf.join(\"\");\n}\n\nconst SpecialCharRegExp = new RegExp(\"^(\\\\s)|(\\\\p{Mn})|(\\\\p{Cf})$\", \"u\");\nconst CategoryCache = new Map();\n\nfunction getCharUnicodeCategory(char) {\n const cachedCategory = CategoryCache.get(char);\n if (cachedCategory) {\n return cachedCategory;\n }\n const groups = char.match(SpecialCharRegExp);\n const category = {\n isWhitespace: !!(groups && groups[1]),\n isZeroWidthDiacritic: !!(groups && groups[2]),\n isInvisibleFormatMark: !!(groups && groups[3]),\n };\n CategoryCache.set(char, category);\n return category;\n}\n\nfunction clearUnicodeCaches() {\n CategoryCache.clear();\n}\n\nexport {\n clearUnicodeCaches,\n getCharUnicodeCategory,\n getNormalizedUnicodes,\n getUnicodeForGlyph,\n getUnicodeRangeFor,\n mapSpecialUnicodeValues,\n reverseIfRtl,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AnnotationActionEventType,\n AnnotationBorderStyleType,\n AnnotationFieldFlag,\n AnnotationFlag,\n AnnotationReplyType,\n AnnotationType,\n assert,\n escapeString,\n getModificationDate,\n isAscii,\n OPS,\n RenderingIntentFlag,\n shadow,\n stringToPDFString,\n stringToUTF16BEString,\n unreachable,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport { collectActions, getInheritableProperty } from \"./core_utils.js\";\nimport {\n createDefaultAppearance,\n parseDefaultAppearance,\n} from \"./default_appearance.js\";\nimport { Dict, isName, Name, Ref, RefSet } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { bidi } from \"./bidi.js\";\nimport { Catalog } from \"./catalog.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { FileSpec } from \"./file_spec.js\";\nimport { ObjectLoader } from \"./object_loader.js\";\nimport { OperatorList } from \"./operator_list.js\";\nimport { StringStream } from \"./stream.js\";\nimport { writeDict } from \"./writer.js\";\nimport { XFAFactory } from \"./xfa/factory.js\";\n\n// Represent the percentage of the height of a single-line field over\n// the font size.\n// Acrobat seems to use this value.\nconst LINE_FACTOR = 1.35;\n\nclass AnnotationFactory {\n /**\n * Create an `Annotation` object of the correct type for the given reference\n * to an annotation dictionary. This yields a promise that is resolved when\n * the `Annotation` object is constructed.\n *\n * @param {XRef} xref\n * @param {Object} ref\n * @param {PDFManager} pdfManager\n * @param {Object} idFactory\n * @param {boolean} collectFields\n * @returns {Promise} A promise that is resolved with an {Annotation}\n * instance.\n */\n static create(xref, ref, pdfManager, idFactory, collectFields) {\n return Promise.all([\n pdfManager.ensureCatalog(\"acroForm\"),\n // Only necessary to prevent the `pdfManager.docBaseUrl`-getter, used\n // with certain Annotations, from throwing and thus breaking parsing:\n pdfManager.ensureCatalog(\"baseUrl\"),\n pdfManager.ensureDoc(\"xfaDatasets\"),\n collectFields ? this._getPageIndex(xref, ref, pdfManager) : -1,\n ]).then(([acroForm, baseUrl, xfaDatasets, pageIndex]) =>\n pdfManager.ensure(this, \"_create\", [\n xref,\n ref,\n pdfManager,\n idFactory,\n acroForm,\n xfaDatasets,\n collectFields,\n pageIndex,\n ])\n );\n }\n\n /**\n * @private\n */\n static _create(\n xref,\n ref,\n pdfManager,\n idFactory,\n acroForm,\n xfaDatasets,\n collectFields,\n pageIndex = -1\n ) {\n const dict = xref.fetchIfRef(ref);\n if (!(dict instanceof Dict)) {\n return undefined;\n }\n\n const id =\n ref instanceof Ref ? ref.toString() : `annot_${idFactory.createObjId()}`;\n\n // Determine the annotation's subtype.\n let subtype = dict.get(\"Subtype\");\n subtype = subtype instanceof Name ? subtype.name : null;\n\n // Return the right annotation object based on the subtype and field type.\n const parameters = {\n xref,\n ref,\n dict,\n subtype,\n id,\n pdfManager,\n acroForm: acroForm instanceof Dict ? acroForm : Dict.empty,\n xfaDatasets,\n collectFields,\n pageIndex,\n };\n\n switch (subtype) {\n case \"Link\":\n return new LinkAnnotation(parameters);\n\n case \"Text\":\n return new TextAnnotation(parameters);\n\n case \"Widget\":\n let fieldType = getInheritableProperty({ dict, key: \"FT\" });\n fieldType = fieldType instanceof Name ? fieldType.name : null;\n\n switch (fieldType) {\n case \"Tx\":\n return new TextWidgetAnnotation(parameters);\n case \"Btn\":\n return new ButtonWidgetAnnotation(parameters);\n case \"Ch\":\n return new ChoiceWidgetAnnotation(parameters);\n case \"Sig\":\n return new SignatureWidgetAnnotation(parameters);\n }\n warn(\n `Unimplemented widget field type \"${fieldType}\", ` +\n \"falling back to base field type.\"\n );\n return new WidgetAnnotation(parameters);\n\n case \"Popup\":\n return new PopupAnnotation(parameters);\n\n case \"FreeText\":\n return new FreeTextAnnotation(parameters);\n\n case \"Line\":\n return new LineAnnotation(parameters);\n\n case \"Square\":\n return new SquareAnnotation(parameters);\n\n case \"Circle\":\n return new CircleAnnotation(parameters);\n\n case \"PolyLine\":\n return new PolylineAnnotation(parameters);\n\n case \"Polygon\":\n return new PolygonAnnotation(parameters);\n\n case \"Caret\":\n return new CaretAnnotation(parameters);\n\n case \"Ink\":\n return new InkAnnotation(parameters);\n\n case \"Highlight\":\n return new HighlightAnnotation(parameters);\n\n case \"Underline\":\n return new UnderlineAnnotation(parameters);\n\n case \"Squiggly\":\n return new SquigglyAnnotation(parameters);\n\n case \"StrikeOut\":\n return new StrikeOutAnnotation(parameters);\n\n case \"Stamp\":\n return new StampAnnotation(parameters);\n\n case \"FileAttachment\":\n return new FileAttachmentAnnotation(parameters);\n\n default:\n if (!collectFields) {\n if (!subtype) {\n warn(\"Annotation is missing the required /Subtype.\");\n } else {\n warn(\n `Unimplemented annotation type \"${subtype}\", ` +\n \"falling back to base annotation.\"\n );\n }\n }\n return new Annotation(parameters);\n }\n }\n\n static async _getPageIndex(xref, ref, pdfManager) {\n try {\n const annotDict = await xref.fetchIfRefAsync(ref);\n if (!(annotDict instanceof Dict)) {\n return -1;\n }\n const pageRef = annotDict.getRaw(\"P\");\n if (!(pageRef instanceof Ref)) {\n return -1;\n }\n const pageIndex = await pdfManager.ensureCatalog(\"getPageIndex\", [\n pageRef,\n ]);\n return pageIndex;\n } catch (ex) {\n warn(`_getPageIndex: \"${ex}\".`);\n return -1;\n }\n }\n}\n\nfunction getRgbColor(color, defaultColor = new Uint8ClampedArray(3)) {\n if (!Array.isArray(color)) {\n return defaultColor;\n }\n\n const rgbColor = defaultColor || new Uint8ClampedArray(3);\n switch (color.length) {\n case 0: // Transparent, which we indicate with a null value\n return null;\n\n case 1: // Convert grayscale to RGB\n ColorSpace.singletons.gray.getRgbItem(color, 0, rgbColor, 0);\n return rgbColor;\n\n case 3: // Convert RGB percentages to RGB\n ColorSpace.singletons.rgb.getRgbItem(color, 0, rgbColor, 0);\n return rgbColor;\n\n case 4: // Convert CMYK to RGB\n ColorSpace.singletons.cmyk.getRgbItem(color, 0, rgbColor, 0);\n return rgbColor;\n\n default:\n return defaultColor;\n }\n}\n\nfunction getQuadPoints(dict, rect) {\n if (!dict.has(\"QuadPoints\")) {\n return null;\n }\n\n // The region is described as a number of quadrilaterals.\n // Each quadrilateral must consist of eight coordinates.\n const quadPoints = dict.getArray(\"QuadPoints\");\n if (\n !Array.isArray(quadPoints) ||\n quadPoints.length === 0 ||\n quadPoints.length % 8 > 0\n ) {\n return null;\n }\n\n const quadPointsLists = [];\n for (let i = 0, ii = quadPoints.length / 8; i < ii; i++) {\n // Each series of eight numbers represents the coordinates for one\n // quadrilateral in the order [x1, y1, x2, y2, x3, y3, x4, y4].\n // Convert this to an array of objects with x and y coordinates.\n quadPointsLists.push([]);\n for (let j = i * 8, jj = i * 8 + 8; j < jj; j += 2) {\n const x = quadPoints[j];\n const y = quadPoints[j + 1];\n\n // The quadpoints should be ignored if any coordinate in the array\n // lies outside the region specified by the rectangle. The rectangle\n // can be `null` for markup annotations since their rectangle may be\n // incorrect (fixes bug 1538111).\n if (\n rect !== null &&\n (x < rect[0] || x > rect[2] || y < rect[1] || y > rect[3])\n ) {\n return null;\n }\n quadPointsLists[i].push({ x, y });\n }\n }\n\n // The PDF specification states in section 12.5.6.10 (figure 64) that the\n // order of the quadpoints should be bottom left, bottom right, top right\n // and top left. However, in practice PDF files use a different order,\n // namely bottom left, bottom right, top left and top right (this is also\n // mentioned on https://github.com/highkite/pdfAnnotate#QuadPoints), so\n // this is the actual order we should work with. However, the situation is\n // even worse since Adobe's own applications and other applications violate\n // the specification and create annotations with other orders, namely top\n // left, top right, bottom left and bottom right or even top left, top right,\n // bottom right and bottom left. To avoid inconsistency and broken rendering,\n // we normalize all lists to put the quadpoints in the same standard order\n // (see https://stackoverflow.com/a/10729881).\n return quadPointsLists.map(quadPointsList => {\n const [minX, maxX, minY, maxY] = quadPointsList.reduce(\n ([mX, MX, mY, MY], quadPoint) => [\n Math.min(mX, quadPoint.x),\n Math.max(MX, quadPoint.x),\n Math.min(mY, quadPoint.y),\n Math.max(MY, quadPoint.y),\n ],\n [Number.MAX_VALUE, Number.MIN_VALUE, Number.MAX_VALUE, Number.MIN_VALUE]\n );\n return [\n { x: minX, y: maxY },\n { x: maxX, y: maxY },\n { x: minX, y: minY },\n { x: maxX, y: minY },\n ];\n });\n}\n\nfunction getTransformMatrix(rect, bbox, matrix) {\n // 12.5.5: Algorithm: Appearance streams\n const [minX, minY, maxX, maxY] = Util.getAxialAlignedBoundingBox(\n bbox,\n matrix\n );\n if (minX === maxX || minY === maxY) {\n // From real-life file, bbox was [0, 0, 0, 0]. In this case,\n // just apply the transform for rect\n return [1, 0, 0, 1, rect[0], rect[1]];\n }\n\n const xRatio = (rect[2] - rect[0]) / (maxX - minX);\n const yRatio = (rect[3] - rect[1]) / (maxY - minY);\n return [\n xRatio,\n 0,\n 0,\n yRatio,\n rect[0] - minX * xRatio,\n rect[1] - minY * yRatio,\n ];\n}\n\nclass Annotation {\n constructor(params) {\n const dict = params.dict;\n\n this.setTitle(dict.get(\"T\"));\n this.setContents(dict.get(\"Contents\"));\n this.setModificationDate(dict.get(\"M\"));\n this.setFlags(dict.get(\"F\"));\n this.setRectangle(dict.getArray(\"Rect\"));\n this.setColor(dict.getArray(\"C\"));\n this.setBorderStyle(dict);\n this.setAppearance(dict);\n this.setBorderAndBackgroundColors(dict.get(\"MK\"));\n\n this._streams = [];\n if (this.appearance) {\n this._streams.push(this.appearance);\n }\n\n // Expose public properties using a data object.\n this.data = {\n annotationFlags: this.flags,\n borderStyle: this.borderStyle,\n color: this.color,\n backgroundColor: this.backgroundColor,\n borderColor: this.borderColor,\n contentsObj: this._contents,\n hasAppearance: !!this.appearance,\n id: params.id,\n modificationDate: this.modificationDate,\n rect: this.rectangle,\n subtype: params.subtype,\n hasOwnCanvas: false,\n };\n\n if (params.collectFields) {\n // Fields can act as container for other fields and have\n // some actions even if no Annotation inherit from them.\n // Those fields can be referenced by CO (calculation order).\n const kids = dict.get(\"Kids\");\n if (Array.isArray(kids)) {\n const kidIds = [];\n for (const kid of kids) {\n if (kid instanceof Ref) {\n kidIds.push(kid.toString());\n }\n }\n if (kidIds.length !== 0) {\n this.data.kidIds = kidIds;\n }\n }\n\n this.data.actions = collectActions(\n params.xref,\n dict,\n AnnotationActionEventType\n );\n this.data.fieldName = this._constructFieldName(dict);\n this.data.pageIndex = params.pageIndex;\n }\n\n this._fallbackFontDict = null;\n }\n\n /**\n * @private\n */\n _hasFlag(flags, flag) {\n return !!(flags & flag);\n }\n\n /**\n * @private\n */\n _isViewable(flags) {\n return (\n !this._hasFlag(flags, AnnotationFlag.INVISIBLE) &&\n !this._hasFlag(flags, AnnotationFlag.NOVIEW)\n );\n }\n\n /**\n * @private\n */\n _isPrintable(flags) {\n return (\n this._hasFlag(flags, AnnotationFlag.PRINT) &&\n !this._hasFlag(flags, AnnotationFlag.INVISIBLE)\n );\n }\n\n /**\n * Check if the annotation must be displayed by taking into account\n * the value found in the annotationStorage which may have been set\n * through JS.\n *\n * @public\n * @memberof Annotation\n * @param {AnnotationStorage} [annotationStorage] - Storage for annotation\n */\n mustBeViewed(annotationStorage) {\n const storageEntry =\n annotationStorage && annotationStorage.get(this.data.id);\n if (storageEntry && storageEntry.hidden !== undefined) {\n return !storageEntry.hidden;\n }\n return this.viewable && !this._hasFlag(this.flags, AnnotationFlag.HIDDEN);\n }\n\n /**\n * Check if the annotation must be printed by taking into account\n * the value found in the annotationStorage which may have been set\n * through JS.\n *\n * @public\n * @memberof Annotation\n * @param {AnnotationStorage} [annotationStorage] - Storage for annotation\n */\n mustBePrinted(annotationStorage) {\n const storageEntry =\n annotationStorage && annotationStorage.get(this.data.id);\n if (storageEntry && storageEntry.print !== undefined) {\n return storageEntry.print;\n }\n return this.printable;\n }\n\n /**\n * @type {boolean}\n */\n get viewable() {\n if (this.data.quadPoints === null) {\n return false;\n }\n if (this.flags === 0) {\n return true;\n }\n return this._isViewable(this.flags);\n }\n\n /**\n * @type {boolean}\n */\n get printable() {\n if (this.data.quadPoints === null) {\n return false;\n }\n if (this.flags === 0) {\n return false;\n }\n return this._isPrintable(this.flags);\n }\n\n /**\n * @private\n */\n _parseStringHelper(data) {\n const str = typeof data === \"string\" ? stringToPDFString(data) : \"\";\n const dir = str && bidi(str).dir === \"rtl\" ? \"rtl\" : \"ltr\";\n\n return { str, dir };\n }\n\n /**\n * Set the title.\n *\n * @param {string} title - The title of the annotation, used e.g. with\n * PopupAnnotations.\n */\n setTitle(title) {\n this._title = this._parseStringHelper(title);\n }\n\n /**\n * Set the contents.\n *\n * @param {string} contents - Text to display for the annotation or, if the\n * type of annotation does not display text, a\n * description of the annotation's contents\n */\n setContents(contents) {\n this._contents = this._parseStringHelper(contents);\n }\n\n /**\n * Set the modification date.\n *\n * @public\n * @memberof Annotation\n * @param {string} modificationDate - PDF date string that indicates when the\n * annotation was last modified\n */\n setModificationDate(modificationDate) {\n this.modificationDate =\n typeof modificationDate === \"string\" ? modificationDate : null;\n }\n\n /**\n * Set the flags.\n *\n * @public\n * @memberof Annotation\n * @param {number} flags - Unsigned 32-bit integer specifying annotation\n * characteristics\n * @see {@link shared/util.js}\n */\n setFlags(flags) {\n this.flags = Number.isInteger(flags) && flags > 0 ? flags : 0;\n }\n\n /**\n * Check if a provided flag is set.\n *\n * @public\n * @memberof Annotation\n * @param {number} flag - Hexadecimal representation for an annotation\n * characteristic\n * @returns {boolean}\n * @see {@link shared/util.js}\n */\n hasFlag(flag) {\n return this._hasFlag(this.flags, flag);\n }\n\n /**\n * Set the rectangle.\n *\n * @public\n * @memberof Annotation\n * @param {Array} rectangle - The rectangle array with exactly four entries\n */\n setRectangle(rectangle) {\n if (Array.isArray(rectangle) && rectangle.length === 4) {\n this.rectangle = Util.normalizeRect(rectangle);\n } else {\n this.rectangle = [0, 0, 0, 0];\n }\n }\n\n /**\n * Set the color and take care of color space conversion.\n * The default value is black, in RGB color space.\n *\n * @public\n * @memberof Annotation\n * @param {Array} color - The color array containing either 0\n * (transparent), 1 (grayscale), 3 (RGB) or\n * 4 (CMYK) elements\n */\n setColor(color) {\n this.color = getRgbColor(color);\n }\n\n /**\n * Set the line endings; should only be used with specific annotation types.\n * @param {Array} lineEndings - The line endings array.\n */\n setLineEndings(lineEndings) {\n this.lineEndings = [\"None\", \"None\"]; // The default values.\n\n if (Array.isArray(lineEndings) && lineEndings.length === 2) {\n for (let i = 0; i < 2; i++) {\n const obj = lineEndings[i];\n\n if (obj instanceof Name) {\n switch (obj.name) {\n case \"None\":\n continue;\n case \"Square\":\n case \"Circle\":\n case \"Diamond\":\n case \"OpenArrow\":\n case \"ClosedArrow\":\n case \"Butt\":\n case \"ROpenArrow\":\n case \"RClosedArrow\":\n case \"Slash\":\n this.lineEndings[i] = obj.name;\n continue;\n }\n }\n warn(`Ignoring invalid lineEnding: ${obj}`);\n }\n }\n }\n\n /**\n * Set the color for background and border if any.\n * The default values are transparent.\n *\n * @public\n * @memberof Annotation\n * @param {Dict} mk - The MK dictionary\n */\n setBorderAndBackgroundColors(mk) {\n if (mk instanceof Dict) {\n this.borderColor = getRgbColor(mk.getArray(\"BC\"), null);\n this.backgroundColor = getRgbColor(mk.getArray(\"BG\"), null);\n } else {\n this.borderColor = this.backgroundColor = null;\n }\n }\n\n /**\n * Set the border style (as AnnotationBorderStyle object).\n *\n * @public\n * @memberof Annotation\n * @param {Dict} borderStyle - The border style dictionary\n */\n setBorderStyle(borderStyle) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(this.rectangle, \"setRectangle must have been called previously.\");\n }\n\n this.borderStyle = new AnnotationBorderStyle();\n if (!(borderStyle instanceof Dict)) {\n return;\n }\n if (borderStyle.has(\"BS\")) {\n const dict = borderStyle.get(\"BS\");\n const dictType = dict.get(\"Type\");\n\n if (!dictType || isName(dictType, \"Border\")) {\n this.borderStyle.setWidth(dict.get(\"W\"), this.rectangle);\n this.borderStyle.setStyle(dict.get(\"S\"));\n this.borderStyle.setDashArray(dict.getArray(\"D\"));\n }\n } else if (borderStyle.has(\"Border\")) {\n const array = borderStyle.getArray(\"Border\");\n if (Array.isArray(array) && array.length >= 3) {\n this.borderStyle.setHorizontalCornerRadius(array[0]);\n this.borderStyle.setVerticalCornerRadius(array[1]);\n this.borderStyle.setWidth(array[2], this.rectangle);\n\n if (array.length === 4) {\n // Dash array available\n this.borderStyle.setDashArray(array[3], /* forceStyle = */ true);\n }\n }\n } else {\n // There are no border entries in the dictionary. According to the\n // specification, we should draw a solid border of width 1 in that\n // case, but Adobe Reader did not implement that part of the\n // specification and instead draws no border at all, so we do the same.\n // See also https://github.com/mozilla/pdf.js/issues/6179.\n this.borderStyle.setWidth(0);\n }\n }\n\n /**\n * Set the (normal) appearance.\n *\n * @public\n * @memberof Annotation\n * @param {Dict} dict - The annotation's data dictionary\n */\n setAppearance(dict) {\n this.appearance = null;\n\n const appearanceStates = dict.get(\"AP\");\n if (!(appearanceStates instanceof Dict)) {\n return;\n }\n\n // In case the normal appearance is a stream, then it is used directly.\n const normalAppearanceState = appearanceStates.get(\"N\");\n if (normalAppearanceState instanceof BaseStream) {\n this.appearance = normalAppearanceState;\n return;\n }\n if (!(normalAppearanceState instanceof Dict)) {\n return;\n }\n\n // In case the normal appearance is a dictionary, the `AS` entry provides\n // the key of the stream in this dictionary.\n const as = dict.get(\"AS\");\n if (!(as instanceof Name) || !normalAppearanceState.has(as.name)) {\n return;\n }\n this.appearance = normalAppearanceState.get(as.name);\n }\n\n loadResources(keys, appearance) {\n return appearance.dict.getAsync(\"Resources\").then(resources => {\n if (!resources) {\n return undefined;\n }\n\n const objectLoader = new ObjectLoader(resources, keys, resources.xref);\n return objectLoader.load().then(function () {\n return resources;\n });\n });\n }\n\n getOperatorList(evaluator, task, intent, renderForms, annotationStorage) {\n const data = this.data;\n let appearance = this.appearance;\n const isUsingOwnCanvas =\n data.hasOwnCanvas && intent & RenderingIntentFlag.DISPLAY;\n if (!appearance) {\n if (!isUsingOwnCanvas) {\n return Promise.resolve(new OperatorList());\n }\n appearance = new StringStream(\"\");\n appearance.dict = new Dict();\n }\n\n const appearanceDict = appearance.dict;\n const resourcesPromise = this.loadResources(\n [\"ExtGState\", \"ColorSpace\", \"Pattern\", \"Shading\", \"XObject\", \"Font\"],\n appearance\n );\n const bbox = appearanceDict.getArray(\"BBox\") || [0, 0, 1, 1];\n const matrix = appearanceDict.getArray(\"Matrix\") || [1, 0, 0, 1, 0, 0];\n const transform = getTransformMatrix(data.rect, bbox, matrix);\n\n return resourcesPromise.then(resources => {\n const opList = new OperatorList();\n opList.addOp(OPS.beginAnnotation, [\n data.id,\n data.rect,\n transform,\n matrix,\n isUsingOwnCanvas,\n ]);\n\n return evaluator\n .getOperatorList({\n stream: appearance,\n task,\n resources,\n operatorList: opList,\n fallbackFontDict: this._fallbackFontDict,\n })\n .then(() => {\n opList.addOp(OPS.endAnnotation, []);\n this.reset();\n return opList;\n });\n });\n }\n\n async save(evaluator, task, annotationStorage) {\n return null;\n }\n\n /**\n * Get field data for usage in JS sandbox.\n *\n * Field object is defined here:\n * https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/js_api_reference.pdf#page=16\n *\n * @public\n * @memberof Annotation\n * @returns {Object | null}\n */\n getFieldObject() {\n if (this.data.kidIds) {\n return {\n id: this.data.id,\n actions: this.data.actions,\n name: this.data.fieldName,\n strokeColor: this.data.borderColor,\n fillColor: this.data.backgroundColor,\n type: \"\",\n kidIds: this.data.kidIds,\n page: this.data.pageIndex,\n };\n }\n return null;\n }\n\n /**\n * Reset the annotation.\n *\n * This involves resetting the various streams that are either cached on the\n * annotation instance or created during its construction.\n *\n * @public\n * @memberof Annotation\n */\n reset() {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n this.appearance &&\n !this._streams.includes(this.appearance)\n ) {\n unreachable(\"The appearance stream should always be reset.\");\n }\n\n for (const stream of this._streams) {\n stream.reset();\n }\n }\n\n /**\n * Construct the (fully qualified) field name from the (partial) field\n * names of the field and its ancestors.\n *\n * @private\n * @memberof Annotation\n * @param {Dict} dict - Complete widget annotation dictionary\n * @returns {string}\n */\n _constructFieldName(dict) {\n // Both the `Parent` and `T` fields are optional. While at least one of\n // them should be provided, bad PDF generators may fail to do so.\n if (!dict.has(\"T\") && !dict.has(\"Parent\")) {\n warn(\"Unknown field name, falling back to empty field name.\");\n return \"\";\n }\n\n // If no parent exists, the partial and fully qualified names are equal.\n if (!dict.has(\"Parent\")) {\n return stringToPDFString(dict.get(\"T\"));\n }\n\n // Form the fully qualified field name by appending the partial name to\n // the parent's fully qualified name, separated by a period.\n const fieldName = [];\n if (dict.has(\"T\")) {\n fieldName.unshift(stringToPDFString(dict.get(\"T\")));\n }\n\n let loopDict = dict;\n const visited = new RefSet();\n if (dict.objId) {\n visited.put(dict.objId);\n }\n while (loopDict.has(\"Parent\")) {\n loopDict = loopDict.get(\"Parent\");\n if (\n !(loopDict instanceof Dict) ||\n (loopDict.objId && visited.has(loopDict.objId))\n ) {\n // Even though it is not allowed according to the PDF specification,\n // bad PDF generators may provide a `Parent` entry that is not a\n // dictionary, but `null` for example (issue 8143).\n //\n // If parent has been already visited, it means that we're\n // in an infinite loop.\n break;\n }\n if (loopDict.objId) {\n visited.put(loopDict.objId);\n }\n\n if (loopDict.has(\"T\")) {\n fieldName.unshift(stringToPDFString(loopDict.get(\"T\")));\n }\n }\n return fieldName.join(\".\");\n }\n}\n\n/**\n * Contains all data regarding an annotation's border style.\n */\nclass AnnotationBorderStyle {\n constructor() {\n this.width = 1;\n this.style = AnnotationBorderStyleType.SOLID;\n this.dashArray = [3];\n this.horizontalCornerRadius = 0;\n this.verticalCornerRadius = 0;\n }\n\n /**\n * Set the width.\n *\n * @public\n * @memberof AnnotationBorderStyle\n * @param {number} width - The width.\n * @param {Array} rect - The annotation `Rect` entry.\n */\n setWidth(width, rect = [0, 0, 0, 0]) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n Array.isArray(rect) && rect.length === 4,\n \"A valid `rect` parameter must be provided.\"\n );\n }\n\n // Some corrupt PDF generators may provide the width as a `Name`,\n // rather than as a number (fixes issue 10385).\n if (width instanceof Name) {\n this.width = 0; // This is consistent with the behaviour in Adobe Reader.\n return;\n }\n if (typeof width === \"number\") {\n if (width > 0) {\n const maxWidth = (rect[2] - rect[0]) / 2;\n const maxHeight = (rect[3] - rect[1]) / 2;\n\n // Ignore large `width`s, since they lead to the Annotation overflowing\n // the size set by the `Rect` entry thus causing the `annotationLayer`\n // to render it over the surrounding document (fixes bug1552113.pdf).\n if (\n maxWidth > 0 &&\n maxHeight > 0 &&\n (width > maxWidth || width > maxHeight)\n ) {\n warn(`AnnotationBorderStyle.setWidth - ignoring width: ${width}`);\n width = 1;\n }\n }\n this.width = width;\n }\n }\n\n /**\n * Set the style.\n *\n * @public\n * @memberof AnnotationBorderStyle\n * @param {Name} style - The annotation style.\n * @see {@link shared/util.js}\n */\n setStyle(style) {\n if (!(style instanceof Name)) {\n return;\n }\n switch (style.name) {\n case \"S\":\n this.style = AnnotationBorderStyleType.SOLID;\n break;\n\n case \"D\":\n this.style = AnnotationBorderStyleType.DASHED;\n break;\n\n case \"B\":\n this.style = AnnotationBorderStyleType.BEVELED;\n break;\n\n case \"I\":\n this.style = AnnotationBorderStyleType.INSET;\n break;\n\n case \"U\":\n this.style = AnnotationBorderStyleType.UNDERLINE;\n break;\n\n default:\n break;\n }\n }\n\n /**\n * Set the dash array.\n *\n * @public\n * @memberof AnnotationBorderStyle\n * @param {Array} dashArray - The dash array with at least one element\n * @param {boolean} [forceStyle]\n */\n setDashArray(dashArray, forceStyle = false) {\n // We validate the dash array, but we do not use it because CSS does not\n // allow us to change spacing of dashes. For more information, visit\n // http://www.w3.org/TR/css3-background/#the-border-style.\n if (Array.isArray(dashArray) && dashArray.length > 0) {\n // According to the PDF specification: the elements in `dashArray`\n // shall be numbers that are nonnegative and not all equal to zero.\n let isValid = true;\n let allZeros = true;\n for (const element of dashArray) {\n const validNumber = +element >= 0;\n if (!validNumber) {\n isValid = false;\n break;\n } else if (element > 0) {\n allZeros = false;\n }\n }\n if (isValid && !allZeros) {\n this.dashArray = dashArray;\n\n if (forceStyle) {\n // Even though we cannot use the dash array in the display layer,\n // at least ensure that we use the correct border-style.\n this.setStyle(Name.get(\"D\"));\n }\n } else {\n this.width = 0; // Adobe behavior when the array is invalid.\n }\n } else if (dashArray) {\n this.width = 0; // Adobe behavior when the array is invalid.\n }\n }\n\n /**\n * Set the horizontal corner radius (from a Border dictionary).\n *\n * @public\n * @memberof AnnotationBorderStyle\n * @param {number} radius - The horizontal corner radius.\n */\n setHorizontalCornerRadius(radius) {\n if (Number.isInteger(radius)) {\n this.horizontalCornerRadius = radius;\n }\n }\n\n /**\n * Set the vertical corner radius (from a Border dictionary).\n *\n * @public\n * @memberof AnnotationBorderStyle\n * @param {number} radius - The vertical corner radius.\n */\n setVerticalCornerRadius(radius) {\n if (Number.isInteger(radius)) {\n this.verticalCornerRadius = radius;\n }\n }\n}\n\nclass MarkupAnnotation extends Annotation {\n constructor(parameters) {\n super(parameters);\n\n const dict = parameters.dict;\n\n if (dict.has(\"IRT\")) {\n const rawIRT = dict.getRaw(\"IRT\");\n this.data.inReplyTo = rawIRT instanceof Ref ? rawIRT.toString() : null;\n\n const rt = dict.get(\"RT\");\n this.data.replyType =\n rt instanceof Name ? rt.name : AnnotationReplyType.REPLY;\n }\n\n if (this.data.replyType === AnnotationReplyType.GROUP) {\n // Subordinate annotations in a group should inherit\n // the group attributes from the primary annotation.\n const parent = dict.get(\"IRT\");\n\n this.setTitle(parent.get(\"T\"));\n this.data.titleObj = this._title;\n\n this.setContents(parent.get(\"Contents\"));\n this.data.contentsObj = this._contents;\n\n if (!parent.has(\"CreationDate\")) {\n this.data.creationDate = null;\n } else {\n this.setCreationDate(parent.get(\"CreationDate\"));\n this.data.creationDate = this.creationDate;\n }\n\n if (!parent.has(\"M\")) {\n this.data.modificationDate = null;\n } else {\n this.setModificationDate(parent.get(\"M\"));\n this.data.modificationDate = this.modificationDate;\n }\n\n this.data.hasPopup = parent.has(\"Popup\");\n\n if (!parent.has(\"C\")) {\n // Fall back to the default background color.\n this.data.color = null;\n } else {\n this.setColor(parent.getArray(\"C\"));\n this.data.color = this.color;\n }\n } else {\n this.data.titleObj = this._title;\n\n this.setCreationDate(dict.get(\"CreationDate\"));\n this.data.creationDate = this.creationDate;\n\n this.data.hasPopup = dict.has(\"Popup\");\n\n if (!dict.has(\"C\")) {\n // Fall back to the default background color.\n this.data.color = null;\n }\n }\n\n if (dict.has(\"RC\")) {\n this.data.richText = XFAFactory.getRichTextAsHtml(dict.get(\"RC\"));\n }\n }\n\n /**\n * Set the creation date.\n *\n * @public\n * @memberof MarkupAnnotation\n * @param {string} creationDate - PDF date string that indicates when the\n * annotation was originally created\n */\n setCreationDate(creationDate) {\n this.creationDate = typeof creationDate === \"string\" ? creationDate : null;\n }\n\n _setDefaultAppearance({\n xref,\n extra,\n strokeColor,\n fillColor,\n blendMode,\n strokeAlpha,\n fillAlpha,\n pointsCallback,\n }) {\n let minX = Number.MAX_VALUE;\n let minY = Number.MAX_VALUE;\n let maxX = Number.MIN_VALUE;\n let maxY = Number.MIN_VALUE;\n\n const buffer = [\"q\"];\n if (extra) {\n buffer.push(extra);\n }\n if (strokeColor) {\n buffer.push(`${strokeColor[0]} ${strokeColor[1]} ${strokeColor[2]} RG`);\n }\n if (fillColor) {\n buffer.push(`${fillColor[0]} ${fillColor[1]} ${fillColor[2]} rg`);\n }\n\n let pointsArray = this.data.quadPoints;\n if (!pointsArray) {\n // If there are no quadpoints, the rectangle should be used instead.\n // Convert the rectangle definition to a points array similar to how the\n // quadpoints are defined.\n pointsArray = [\n [\n { x: this.rectangle[0], y: this.rectangle[3] },\n { x: this.rectangle[2], y: this.rectangle[3] },\n { x: this.rectangle[0], y: this.rectangle[1] },\n { x: this.rectangle[2], y: this.rectangle[1] },\n ],\n ];\n }\n\n for (const points of pointsArray) {\n const [mX, MX, mY, MY] = pointsCallback(buffer, points);\n minX = Math.min(minX, mX);\n maxX = Math.max(maxX, MX);\n minY = Math.min(minY, mY);\n maxY = Math.max(maxY, MY);\n }\n buffer.push(\"Q\");\n\n const formDict = new Dict(xref);\n const appearanceStreamDict = new Dict(xref);\n appearanceStreamDict.set(\"Subtype\", Name.get(\"Form\"));\n\n const appearanceStream = new StringStream(buffer.join(\" \"));\n appearanceStream.dict = appearanceStreamDict;\n formDict.set(\"Fm0\", appearanceStream);\n\n const gsDict = new Dict(xref);\n if (blendMode) {\n gsDict.set(\"BM\", Name.get(blendMode));\n }\n if (typeof strokeAlpha === \"number\") {\n gsDict.set(\"CA\", strokeAlpha);\n }\n if (typeof fillAlpha === \"number\") {\n gsDict.set(\"ca\", fillAlpha);\n }\n\n const stateDict = new Dict(xref);\n stateDict.set(\"GS0\", gsDict);\n\n const resources = new Dict(xref);\n resources.set(\"ExtGState\", stateDict);\n resources.set(\"XObject\", formDict);\n\n const appearanceDict = new Dict(xref);\n appearanceDict.set(\"Resources\", resources);\n const bbox = (this.data.rect = [minX, minY, maxX, maxY]);\n appearanceDict.set(\"BBox\", bbox);\n\n this.appearance = new StringStream(\"/GS0 gs /Fm0 Do\");\n this.appearance.dict = appearanceDict;\n\n // This method is only called if there is no appearance for the annotation,\n // so `this.appearance` is not pushed yet in the `Annotation` constructor.\n this._streams.push(this.appearance, appearanceStream);\n }\n}\n\nclass WidgetAnnotation extends Annotation {\n constructor(params) {\n super(params);\n\n const dict = params.dict;\n const data = this.data;\n this.ref = params.ref;\n\n data.annotationType = AnnotationType.WIDGET;\n if (data.fieldName === undefined) {\n data.fieldName = this._constructFieldName(dict);\n }\n if (data.actions === undefined) {\n data.actions = collectActions(\n params.xref,\n dict,\n AnnotationActionEventType\n );\n }\n\n let fieldValue = getInheritableProperty({\n dict,\n key: \"V\",\n getArray: true,\n });\n data.fieldValue = this._decodeFormValue(fieldValue);\n\n const defaultFieldValue = getInheritableProperty({\n dict,\n key: \"DV\",\n getArray: true,\n });\n data.defaultFieldValue = this._decodeFormValue(defaultFieldValue);\n\n if (fieldValue === undefined && params.xfaDatasets) {\n // Try to figure out if we have something in the xfa dataset.\n const path = this._title.str;\n if (path) {\n this._hasValueFromXFA = true;\n data.fieldValue = fieldValue = params.xfaDatasets.getValue(path);\n }\n }\n\n // When no \"V\" entry exists, let the fieldValue fallback to the \"DV\" entry\n // (fixes issue13823.pdf).\n if (fieldValue === undefined && data.defaultFieldValue !== null) {\n data.fieldValue = data.defaultFieldValue;\n }\n\n data.alternativeText = stringToPDFString(dict.get(\"TU\") || \"\");\n\n const defaultAppearance =\n getInheritableProperty({ dict, key: \"DA\" }) || params.acroForm.get(\"DA\");\n this._defaultAppearance =\n typeof defaultAppearance === \"string\" ? defaultAppearance : \"\";\n data.defaultAppearanceData = parseDefaultAppearance(\n this._defaultAppearance\n );\n\n const fieldType = getInheritableProperty({ dict, key: \"FT\" });\n data.fieldType = fieldType instanceof Name ? fieldType.name : null;\n\n const localResources = getInheritableProperty({ dict, key: \"DR\" });\n const acroFormResources = params.acroForm.get(\"DR\");\n const appearanceResources =\n this.appearance && this.appearance.dict.get(\"Resources\");\n\n this._fieldResources = {\n localResources,\n acroFormResources,\n appearanceResources,\n mergedResources: Dict.merge({\n xref: params.xref,\n dictArray: [localResources, appearanceResources, acroFormResources],\n mergeSubDicts: true,\n }),\n };\n\n data.fieldFlags = getInheritableProperty({ dict, key: \"Ff\" });\n if (!Number.isInteger(data.fieldFlags) || data.fieldFlags < 0) {\n data.fieldFlags = 0;\n }\n\n data.readOnly = this.hasFieldFlag(AnnotationFieldFlag.READONLY);\n data.hidden = this._hasFlag(data.annotationFlags, AnnotationFlag.HIDDEN);\n }\n\n /**\n * Decode the given form value.\n *\n * @private\n * @memberof WidgetAnnotation\n * @param {Array|Name|string} formValue - The (possibly encoded)\n * form value.\n * @returns {Array|string|null}\n */\n _decodeFormValue(formValue) {\n if (Array.isArray(formValue)) {\n return formValue\n .filter(item => typeof item === \"string\")\n .map(item => stringToPDFString(item));\n } else if (formValue instanceof Name) {\n return stringToPDFString(formValue.name);\n } else if (typeof formValue === \"string\") {\n return stringToPDFString(formValue);\n }\n return null;\n }\n\n /**\n * Check if a provided field flag is set.\n *\n * @public\n * @memberof WidgetAnnotation\n * @param {number} flag - Hexadecimal representation for an annotation\n * field characteristic\n * @returns {boolean}\n * @see {@link shared/util.js}\n */\n hasFieldFlag(flag) {\n return !!(this.data.fieldFlags & flag);\n }\n\n getOperatorList(evaluator, task, intent, renderForms, annotationStorage) {\n // Do not render form elements on the canvas when interactive forms are\n // enabled. The display layer is responsible for rendering them instead.\n if (renderForms && !(this instanceof SignatureWidgetAnnotation)) {\n return Promise.resolve(new OperatorList());\n }\n\n if (!this._hasText) {\n return super.getOperatorList(\n evaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n );\n }\n\n return this._getAppearance(evaluator, task, annotationStorage).then(\n content => {\n if (this.appearance && content === null) {\n return super.getOperatorList(\n evaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n );\n }\n\n const operatorList = new OperatorList();\n\n // Even if there is an appearance stream, ignore it. This is the\n // behaviour used by Adobe Reader.\n if (!this._defaultAppearance || content === null) {\n return operatorList;\n }\n\n const matrix = [1, 0, 0, 1, 0, 0];\n const bbox = [\n 0,\n 0,\n this.data.rect[2] - this.data.rect[0],\n this.data.rect[3] - this.data.rect[1],\n ];\n\n const transform = getTransformMatrix(this.data.rect, bbox, matrix);\n operatorList.addOp(OPS.beginAnnotation, [\n this.data.id,\n this.data.rect,\n transform,\n matrix,\n ]);\n\n const stream = new StringStream(content);\n return evaluator\n .getOperatorList({\n stream,\n task,\n resources: this._fieldResources.mergedResources,\n operatorList,\n })\n .then(function () {\n operatorList.addOp(OPS.endAnnotation, []);\n return operatorList;\n });\n }\n );\n }\n\n async save(evaluator, task, annotationStorage) {\n const storageEntry = annotationStorage\n ? annotationStorage.get(this.data.id)\n : undefined;\n let value = storageEntry && storageEntry.value;\n if (value === this.data.fieldValue || value === undefined) {\n if (!this._hasValueFromXFA) {\n return null;\n }\n value = value || this.data.fieldValue;\n }\n\n // Value can be an array (with choice list and multiple selections)\n if (\n !this._hasValueFromXFA &&\n Array.isArray(value) &&\n Array.isArray(this.data.fieldValue) &&\n value.length === this.data.fieldValue.length &&\n value.every((x, i) => x === this.data.fieldValue[i])\n ) {\n return null;\n }\n\n let appearance = await this._getAppearance(\n evaluator,\n task,\n annotationStorage\n );\n if (appearance === null) {\n return null;\n }\n const { xref } = evaluator;\n\n const dict = xref.fetchIfRef(this.ref);\n if (!(dict instanceof Dict)) {\n return null;\n }\n\n const bbox = [\n 0,\n 0,\n this.data.rect[2] - this.data.rect[0],\n this.data.rect[3] - this.data.rect[1],\n ];\n\n const xfa = {\n path: stringToPDFString(dict.get(\"T\") || \"\"),\n value,\n };\n\n const newRef = xref.getNewRef();\n const AP = new Dict(xref);\n AP.set(\"N\", newRef);\n\n const encrypt = xref.encrypt;\n let originalTransform = null;\n let newTransform = null;\n if (encrypt) {\n originalTransform = encrypt.createCipherTransform(\n this.ref.num,\n this.ref.gen\n );\n newTransform = encrypt.createCipherTransform(newRef.num, newRef.gen);\n appearance = newTransform.encryptString(appearance);\n }\n\n const encoder = val => (isAscii(val) ? val : stringToUTF16BEString(val));\n dict.set(\"V\", Array.isArray(value) ? value.map(encoder) : encoder(value));\n dict.set(\"AP\", AP);\n dict.set(\"M\", `D:${getModificationDate()}`);\n\n const appearanceDict = new Dict(xref);\n appearanceDict.set(\"Length\", appearance.length);\n appearanceDict.set(\"Subtype\", Name.get(\"Form\"));\n appearanceDict.set(\"Resources\", this._getSaveFieldResources(xref));\n appearanceDict.set(\"BBox\", bbox);\n\n const bufferOriginal = [`${this.ref.num} ${this.ref.gen} obj\\n`];\n writeDict(dict, bufferOriginal, originalTransform);\n bufferOriginal.push(\"\\nendobj\\n\");\n\n const bufferNew = [`${newRef.num} ${newRef.gen} obj\\n`];\n writeDict(appearanceDict, bufferNew, newTransform);\n bufferNew.push(\" stream\\n\", appearance, \"\\nendstream\\nendobj\\n\");\n\n return [\n // data for the original object\n // V field changed + reference for new AP\n { ref: this.ref, data: bufferOriginal.join(\"\"), xfa },\n // data for the new AP\n { ref: newRef, data: bufferNew.join(\"\"), xfa: null },\n ];\n }\n\n async _getAppearance(evaluator, task, annotationStorage) {\n const isPassword = this.hasFieldFlag(AnnotationFieldFlag.PASSWORD);\n if (isPassword) {\n return null;\n }\n const storageEntry = annotationStorage\n ? annotationStorage.get(this.data.id)\n : undefined;\n let value =\n storageEntry && (storageEntry.formattedValue || storageEntry.value);\n if (value === undefined) {\n if (!this._hasValueFromXFA || this.appearance) {\n // The annotation hasn't been rendered so use the appearance.\n return null;\n }\n // The annotation has its value in XFA datasets but not in the V field.\n value = this.data.fieldValue;\n if (!value) {\n return \"\";\n }\n }\n\n assert(typeof value === \"string\", \"Expected `value` to be a string.\");\n\n value = value.trim();\n\n if (value === \"\") {\n // the field is empty: nothing to render\n return \"\";\n }\n\n let lineCount = -1;\n if (this.data.multiLine) {\n lineCount = value.split(/\\r\\n|\\r|\\n/).length;\n }\n\n const defaultPadding = 2;\n const hPadding = defaultPadding;\n const totalHeight = this.data.rect[3] - this.data.rect[1];\n const totalWidth = this.data.rect[2] - this.data.rect[0];\n\n if (!this._defaultAppearance) {\n // The DA is required and must be a string.\n // If there is no font named Helvetica in the resource dictionary,\n // the evaluator will fall back to a default font.\n // Doing so prevents exceptions and allows saving/printing\n // the file as expected.\n this.data.defaultAppearanceData = parseDefaultAppearance(\n (this._defaultAppearance = \"/Helvetica 0 Tf 0 g\")\n );\n }\n\n const font = await this._getFontData(evaluator, task);\n const [defaultAppearance, fontSize] = this._computeFontSize(\n totalHeight - defaultPadding,\n totalWidth - 2 * hPadding,\n value,\n font,\n lineCount\n );\n\n let descent = font.descent;\n if (isNaN(descent)) {\n descent = 0;\n }\n\n const vPadding = defaultPadding + Math.abs(descent) * fontSize;\n const alignment = this.data.textAlignment;\n\n if (this.data.multiLine) {\n return this._getMultilineAppearance(\n defaultAppearance,\n value,\n font,\n fontSize,\n totalWidth,\n totalHeight,\n alignment,\n hPadding,\n vPadding\n );\n }\n\n // TODO: need to handle chars which are not in the font.\n const encodedString = font.encodeString(value).join(\"\");\n\n if (this.data.comb) {\n return this._getCombAppearance(\n defaultAppearance,\n font,\n encodedString,\n totalWidth,\n hPadding,\n vPadding\n );\n }\n\n if (alignment === 0 || alignment > 2) {\n // Left alignment: nothing to do\n return (\n \"/Tx BMC q BT \" +\n defaultAppearance +\n ` 1 0 0 1 ${hPadding} ${vPadding} Tm (${escapeString(\n encodedString\n )}) Tj` +\n \" ET Q EMC\"\n );\n }\n\n const renderedText = this._renderText(\n encodedString,\n font,\n fontSize,\n totalWidth,\n alignment,\n hPadding,\n vPadding\n );\n return (\n \"/Tx BMC q BT \" +\n defaultAppearance +\n ` 1 0 0 1 0 0 Tm ${renderedText}` +\n \" ET Q EMC\"\n );\n }\n\n async _getFontData(evaluator, task) {\n const operatorList = new OperatorList();\n const initialState = {\n font: null,\n clone() {\n return this;\n },\n };\n\n const { fontName, fontSize } = this.data.defaultAppearanceData;\n await evaluator.handleSetFont(\n this._fieldResources.mergedResources,\n [fontName && Name.get(fontName), fontSize],\n /* fontRef = */ null,\n operatorList,\n task,\n initialState,\n /* fallbackFontDict = */ null\n );\n\n return initialState.font;\n }\n\n _getTextWidth(text, font) {\n return (\n font\n .charsToGlyphs(text)\n .reduce((width, glyph) => width + glyph.width, 0) / 1000\n );\n }\n\n _computeFontSize(height, width, text, font, lineCount) {\n let { fontSize } = this.data.defaultAppearanceData;\n if (!fontSize) {\n // A zero value for size means that the font shall be auto-sized:\n // its size shall be computed as a function of the height of the\n // annotation rectangle (see 12.7.3.3).\n\n const roundWithTwoDigits = x => Math.floor(x * 100) / 100;\n\n if (lineCount === -1) {\n const textWidth = this._getTextWidth(text, font);\n fontSize = roundWithTwoDigits(\n Math.min(height / LINE_FACTOR, width / textWidth)\n );\n } else {\n const lines = text.split(/\\r\\n?|\\n/);\n const cachedLines = [];\n for (const line of lines) {\n const encoded = font.encodeString(line).join(\"\");\n const glyphs = font.charsToGlyphs(encoded);\n const positions = font.getCharPositions(encoded);\n cachedLines.push({\n line: encoded,\n glyphs,\n positions,\n });\n }\n\n const isTooBig = fsize => {\n // Return true when the text doesn't fit the given height.\n let totalHeight = 0;\n for (const cache of cachedLines) {\n const chunks = this._splitLine(null, font, fsize, width, cache);\n totalHeight += chunks.length * fsize;\n if (totalHeight > height) {\n return true;\n }\n }\n return false;\n };\n\n // Hard to guess how many lines there are.\n // The field may have been sized to have 10 lines\n // and the user entered only 1 so if we get font size from\n // height and number of lines then we'll get something too big.\n // So we compute a fake number of lines based on height and\n // a font size equal to 12 (this is the default font size in\n // Acrobat).\n // Then we'll adjust font size to what we have really.\n fontSize = 12;\n let lineHeight = fontSize * LINE_FACTOR;\n let numberOfLines = Math.round(height / lineHeight);\n numberOfLines = Math.max(numberOfLines, lineCount);\n\n while (true) {\n lineHeight = height / numberOfLines;\n fontSize = roundWithTwoDigits(lineHeight / LINE_FACTOR);\n\n if (isTooBig(fontSize)) {\n numberOfLines++;\n continue;\n }\n\n break;\n }\n }\n\n const { fontName, fontColor } = this.data.defaultAppearanceData;\n this._defaultAppearance = createDefaultAppearance({\n fontSize,\n fontName,\n fontColor,\n });\n }\n return [this._defaultAppearance, fontSize];\n }\n\n _renderText(text, font, fontSize, totalWidth, alignment, hPadding, vPadding) {\n let shift;\n if (alignment === 1) {\n // Center\n const width = this._getTextWidth(text, font) * fontSize;\n shift = (totalWidth - width) / 2;\n } else if (alignment === 2) {\n // Right\n const width = this._getTextWidth(text, font) * fontSize;\n shift = totalWidth - width - hPadding;\n } else {\n shift = hPadding;\n }\n shift = shift.toFixed(2);\n vPadding = vPadding.toFixed(2);\n\n return `${shift} ${vPadding} Td (${escapeString(text)}) Tj`;\n }\n\n /**\n * @private\n */\n _getSaveFieldResources(xref) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n this.data.defaultAppearanceData,\n \"Expected `_defaultAppearanceData` to have been set.\"\n );\n }\n const { localResources, appearanceResources, acroFormResources } =\n this._fieldResources;\n\n const fontName =\n this.data.defaultAppearanceData &&\n this.data.defaultAppearanceData.fontName;\n if (!fontName) {\n return localResources || Dict.empty;\n }\n\n for (const resources of [localResources, appearanceResources]) {\n if (resources instanceof Dict) {\n const localFont = resources.get(\"Font\");\n if (localFont instanceof Dict && localFont.has(fontName)) {\n return resources;\n }\n }\n }\n if (acroFormResources instanceof Dict) {\n const acroFormFont = acroFormResources.get(\"Font\");\n if (acroFormFont instanceof Dict && acroFormFont.has(fontName)) {\n const subFontDict = new Dict(xref);\n subFontDict.set(fontName, acroFormFont.getRaw(fontName));\n\n const subResourcesDict = new Dict(xref);\n subResourcesDict.set(\"Font\", subFontDict);\n\n return Dict.merge({\n xref,\n dictArray: [subResourcesDict, localResources],\n mergeSubDicts: true,\n });\n }\n }\n return localResources || Dict.empty;\n }\n\n getFieldObject() {\n return null;\n }\n}\n\nclass TextWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n\n this._hasText = true;\n\n const dict = params.dict;\n\n // The field value is always a string.\n if (typeof this.data.fieldValue !== \"string\") {\n this.data.fieldValue = \"\";\n }\n\n // Determine the alignment of text in the field.\n let alignment = getInheritableProperty({ dict, key: \"Q\" });\n if (!Number.isInteger(alignment) || alignment < 0 || alignment > 2) {\n alignment = null;\n }\n this.data.textAlignment = alignment;\n\n // Determine the maximum length of text in the field.\n let maximumLength = getInheritableProperty({ dict, key: \"MaxLen\" });\n if (!Number.isInteger(maximumLength) || maximumLength < 0) {\n maximumLength = null;\n }\n this.data.maxLen = maximumLength;\n\n // Process field flags for the display layer.\n this.data.multiLine = this.hasFieldFlag(AnnotationFieldFlag.MULTILINE);\n this.data.comb =\n this.hasFieldFlag(AnnotationFieldFlag.COMB) &&\n !this.hasFieldFlag(AnnotationFieldFlag.MULTILINE) &&\n !this.hasFieldFlag(AnnotationFieldFlag.PASSWORD) &&\n !this.hasFieldFlag(AnnotationFieldFlag.FILESELECT) &&\n this.data.maxLen !== null;\n }\n\n _getCombAppearance(defaultAppearance, font, text, width, hPadding, vPadding) {\n const combWidth = (width / this.data.maxLen).toFixed(2);\n const buf = [];\n const positions = font.getCharPositions(text);\n for (const [start, end] of positions) {\n buf.push(`(${escapeString(text.substring(start, end))}) Tj`);\n }\n\n const renderedComb = buf.join(` ${combWidth} 0 Td `);\n return (\n \"/Tx BMC q BT \" +\n defaultAppearance +\n ` 1 0 0 1 ${hPadding} ${vPadding} Tm ${renderedComb}` +\n \" ET Q EMC\"\n );\n }\n\n _getMultilineAppearance(\n defaultAppearance,\n text,\n font,\n fontSize,\n width,\n height,\n alignment,\n hPadding,\n vPadding\n ) {\n const lines = text.split(/\\r\\n?|\\n/);\n const buf = [];\n const totalWidth = width - 2 * hPadding;\n for (const line of lines) {\n const chunks = this._splitLine(line, font, fontSize, totalWidth);\n for (const chunk of chunks) {\n const padding = buf.length === 0 ? hPadding : 0;\n buf.push(\n this._renderText(\n chunk,\n font,\n fontSize,\n width,\n alignment,\n padding,\n -fontSize // <0 because a line is below the previous one\n )\n );\n }\n }\n\n const renderedText = buf.join(\"\\n\");\n return (\n \"/Tx BMC q BT \" +\n defaultAppearance +\n ` 1 0 0 1 0 ${height} Tm ${renderedText}` +\n \" ET Q EMC\"\n );\n }\n\n _splitLine(line, font, fontSize, width, cache = {}) {\n // TODO: need to handle chars which are not in the font.\n line = cache.line || font.encodeString(line).join(\"\");\n\n const glyphs = cache.glyphs || font.charsToGlyphs(line);\n\n if (glyphs.length <= 1) {\n // Nothing to split\n return [line];\n }\n\n const positions = cache.positions || font.getCharPositions(line);\n const scale = fontSize / 1000;\n const chunks = [];\n\n let lastSpacePosInStringStart = -1,\n lastSpacePosInStringEnd = -1,\n lastSpacePos = -1,\n startChunk = 0,\n currentWidth = 0;\n\n for (let i = 0, ii = glyphs.length; i < ii; i++) {\n const [start, end] = positions[i];\n const glyph = glyphs[i];\n const glyphWidth = glyph.width * scale;\n if (glyph.unicode === \" \") {\n if (currentWidth + glyphWidth > width) {\n // We can break here\n chunks.push(line.substring(startChunk, start));\n startChunk = start;\n currentWidth = glyphWidth;\n lastSpacePosInStringStart = -1;\n lastSpacePos = -1;\n } else {\n currentWidth += glyphWidth;\n lastSpacePosInStringStart = start;\n lastSpacePosInStringEnd = end;\n lastSpacePos = i;\n }\n } else {\n if (currentWidth + glyphWidth > width) {\n // We must break to the last white position (if available)\n if (lastSpacePosInStringStart !== -1) {\n chunks.push(line.substring(startChunk, lastSpacePosInStringEnd));\n startChunk = lastSpacePosInStringEnd;\n i = lastSpacePos + 1;\n lastSpacePosInStringStart = -1;\n currentWidth = 0;\n } else {\n // Just break in the middle of the word\n chunks.push(line.substring(startChunk, start));\n startChunk = start;\n currentWidth = glyphWidth;\n }\n } else {\n currentWidth += glyphWidth;\n }\n }\n }\n\n if (startChunk < line.length) {\n chunks.push(line.substring(startChunk, line.length));\n }\n\n return chunks;\n }\n\n getFieldObject() {\n return {\n id: this.data.id,\n value: this.data.fieldValue,\n defaultValue: this.data.defaultFieldValue || \"\",\n multiline: this.data.multiLine,\n password: this.hasFieldFlag(AnnotationFieldFlag.PASSWORD),\n charLimit: this.data.maxLen,\n comb: this.data.comb,\n editable: !this.data.readOnly,\n hidden: this.data.hidden,\n name: this.data.fieldName,\n rect: this.data.rect,\n actions: this.data.actions,\n page: this.data.pageIndex,\n strokeColor: this.data.borderColor,\n fillColor: this.data.backgroundColor,\n type: \"text\",\n };\n }\n}\n\nclass ButtonWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n\n this.checkedAppearance = null;\n this.uncheckedAppearance = null;\n\n this.data.checkBox =\n !this.hasFieldFlag(AnnotationFieldFlag.RADIO) &&\n !this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON);\n this.data.radioButton =\n this.hasFieldFlag(AnnotationFieldFlag.RADIO) &&\n !this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON);\n this.data.pushButton = this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON);\n this.data.isTooltipOnly = false;\n\n if (this.data.checkBox) {\n this._processCheckBox(params);\n } else if (this.data.radioButton) {\n this._processRadioButton(params);\n } else if (this.data.pushButton) {\n this.data.hasOwnCanvas = true;\n this._processPushButton(params);\n } else {\n warn(\"Invalid field flags for button widget annotation\");\n }\n }\n\n async getOperatorList(\n evaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n ) {\n if (this.data.pushButton) {\n return super.getOperatorList(\n evaluator,\n task,\n intent,\n false, // we use normalAppearance to render the button\n annotationStorage\n );\n }\n\n let value = null;\n if (annotationStorage) {\n const storageEntry = annotationStorage.get(this.data.id);\n value = storageEntry ? storageEntry.value : null;\n }\n\n if (value === null) {\n // Nothing in the annotationStorage.\n if (this.appearance) {\n // But we've a default appearance so use it.\n return super.getOperatorList(\n evaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n );\n }\n\n // There is no default appearance so use the one derived\n // from the field value.\n if (this.data.checkBox) {\n value = this.data.fieldValue === this.data.exportValue;\n } else {\n value = this.data.fieldValue === this.data.buttonValue;\n }\n }\n\n const appearance = value\n ? this.checkedAppearance\n : this.uncheckedAppearance;\n if (appearance) {\n const savedAppearance = this.appearance;\n this.appearance = appearance;\n const operatorList = super.getOperatorList(\n evaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n );\n this.appearance = savedAppearance;\n return operatorList;\n }\n\n // No appearance\n return new OperatorList();\n }\n\n async save(evaluator, task, annotationStorage) {\n if (this.data.checkBox) {\n return this._saveCheckbox(evaluator, task, annotationStorage);\n }\n\n if (this.data.radioButton) {\n return this._saveRadioButton(evaluator, task, annotationStorage);\n }\n\n // Nothing to save\n return null;\n }\n\n async _saveCheckbox(evaluator, task, annotationStorage) {\n if (!annotationStorage) {\n return null;\n }\n const storageEntry = annotationStorage.get(this.data.id);\n const value = storageEntry && storageEntry.value;\n if (value === undefined) {\n return null;\n }\n\n const defaultValue = this.data.fieldValue === this.data.exportValue;\n if (defaultValue === value) {\n return null;\n }\n\n const dict = evaluator.xref.fetchIfRef(this.ref);\n if (!(dict instanceof Dict)) {\n return null;\n }\n\n const xfa = {\n path: stringToPDFString(dict.get(\"T\") || \"\"),\n value: value ? this.data.exportValue : \"\",\n };\n\n const name = Name.get(value ? this.data.exportValue : \"Off\");\n dict.set(\"V\", name);\n dict.set(\"AS\", name);\n dict.set(\"M\", `D:${getModificationDate()}`);\n\n const encrypt = evaluator.xref.encrypt;\n let originalTransform = null;\n if (encrypt) {\n originalTransform = encrypt.createCipherTransform(\n this.ref.num,\n this.ref.gen\n );\n }\n\n const buffer = [`${this.ref.num} ${this.ref.gen} obj\\n`];\n writeDict(dict, buffer, originalTransform);\n buffer.push(\"\\nendobj\\n\");\n\n return [{ ref: this.ref, data: buffer.join(\"\"), xfa }];\n }\n\n async _saveRadioButton(evaluator, task, annotationStorage) {\n if (!annotationStorage) {\n return null;\n }\n const storageEntry = annotationStorage.get(this.data.id);\n const value = storageEntry && storageEntry.value;\n if (value === undefined) {\n return null;\n }\n\n const defaultValue = this.data.fieldValue === this.data.buttonValue;\n if (defaultValue === value) {\n return null;\n }\n\n const dict = evaluator.xref.fetchIfRef(this.ref);\n if (!(dict instanceof Dict)) {\n return null;\n }\n\n const xfa = {\n path: stringToPDFString(dict.get(\"T\") || \"\"),\n value: value ? this.data.buttonValue : \"\",\n };\n\n const name = Name.get(value ? this.data.buttonValue : \"Off\");\n let parentBuffer = null;\n const encrypt = evaluator.xref.encrypt;\n\n if (value) {\n if (this.parent instanceof Ref) {\n const parent = evaluator.xref.fetch(this.parent);\n let parentTransform = null;\n if (encrypt) {\n parentTransform = encrypt.createCipherTransform(\n this.parent.num,\n this.parent.gen\n );\n }\n parent.set(\"V\", name);\n parentBuffer = [`${this.parent.num} ${this.parent.gen} obj\\n`];\n writeDict(parent, parentBuffer, parentTransform);\n parentBuffer.push(\"\\nendobj\\n\");\n } else if (this.parent instanceof Dict) {\n this.parent.set(\"V\", name);\n }\n }\n\n dict.set(\"AS\", name);\n dict.set(\"M\", `D:${getModificationDate()}`);\n\n let originalTransform = null;\n if (encrypt) {\n originalTransform = encrypt.createCipherTransform(\n this.ref.num,\n this.ref.gen\n );\n }\n\n const buffer = [`${this.ref.num} ${this.ref.gen} obj\\n`];\n writeDict(dict, buffer, originalTransform);\n buffer.push(\"\\nendobj\\n\");\n\n const newRefs = [{ ref: this.ref, data: buffer.join(\"\"), xfa }];\n if (parentBuffer !== null) {\n newRefs.push({\n ref: this.parent,\n data: parentBuffer.join(\"\"),\n xfa: null,\n });\n }\n\n return newRefs;\n }\n\n _getDefaultCheckedAppearance(params, type) {\n const width = this.data.rect[2] - this.data.rect[0];\n const height = this.data.rect[3] - this.data.rect[1];\n const bbox = [0, 0, width, height];\n\n // Ratio used to have a mark slightly smaller than the bbox.\n const FONT_RATIO = 0.8;\n const fontSize = Math.min(width, height) * FONT_RATIO;\n\n // Char Metrics\n // Widths came from widths for ZapfDingbats.\n // Heights are guessed with Fontforge and FoxitDingbats.pfb.\n let metrics, char;\n if (type === \"check\") {\n // Char 33 (2713 in unicode)\n metrics = {\n width: 0.755 * fontSize,\n height: 0.705 * fontSize,\n };\n char = \"\\x33\";\n } else if (type === \"disc\") {\n // Char 6C (25CF in unicode)\n metrics = {\n width: 0.791 * fontSize,\n height: 0.705 * fontSize,\n };\n char = \"\\x6C\";\n } else {\n unreachable(`_getDefaultCheckedAppearance - unsupported type: ${type}`);\n }\n\n // Values to center the glyph in the bbox.\n const xShift = (width - metrics.width) / 2;\n const yShift = (height - metrics.height) / 2;\n\n const appearance = `q BT /PdfJsZaDb ${fontSize} Tf 0 g ${xShift} ${yShift} Td (${char}) Tj ET Q`;\n\n const appearanceStreamDict = new Dict(params.xref);\n appearanceStreamDict.set(\"FormType\", 1);\n appearanceStreamDict.set(\"Subtype\", Name.get(\"Form\"));\n appearanceStreamDict.set(\"Type\", Name.get(\"XObject\"));\n appearanceStreamDict.set(\"BBox\", bbox);\n appearanceStreamDict.set(\"Matrix\", [1, 0, 0, 1, 0, 0]);\n appearanceStreamDict.set(\"Length\", appearance.length);\n\n const resources = new Dict(params.xref);\n const font = new Dict(params.xref);\n font.set(\"PdfJsZaDb\", this.fallbackFontDict);\n resources.set(\"Font\", font);\n\n appearanceStreamDict.set(\"Resources\", resources);\n\n this.checkedAppearance = new StringStream(appearance);\n this.checkedAppearance.dict = appearanceStreamDict;\n\n this._streams.push(this.checkedAppearance);\n }\n\n _processCheckBox(params) {\n const customAppearance = params.dict.get(\"AP\");\n if (!(customAppearance instanceof Dict)) {\n return;\n }\n\n const normalAppearance = customAppearance.get(\"N\");\n if (!(normalAppearance instanceof Dict)) {\n return;\n }\n\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=1722036.\n // If we've an AS and a V then take AS.\n const asValue = this._decodeFormValue(params.dict.get(\"AS\"));\n if (typeof asValue === \"string\") {\n this.data.fieldValue = asValue;\n }\n\n const yes =\n this.data.fieldValue !== null && this.data.fieldValue !== \"Off\"\n ? this.data.fieldValue\n : \"Yes\";\n\n const exportValues = normalAppearance.getKeys();\n if (exportValues.length === 0) {\n exportValues.push(\"Off\", yes);\n } else if (exportValues.length === 1) {\n if (exportValues[0] === \"Off\") {\n exportValues.push(yes);\n } else {\n exportValues.unshift(\"Off\");\n }\n } else if (exportValues.includes(yes)) {\n exportValues.length = 0;\n exportValues.push(\"Off\", yes);\n } else {\n const otherYes = exportValues.find(v => v !== \"Off\");\n exportValues.length = 0;\n exportValues.push(\"Off\", otherYes);\n }\n\n // Don't use a \"V\" entry pointing to a non-existent appearance state,\n // see e.g. bug1720411.pdf where it's an *empty* Name-instance.\n if (!exportValues.includes(this.data.fieldValue)) {\n this.data.fieldValue = \"Off\";\n }\n\n this.data.exportValue = exportValues[1];\n\n this.checkedAppearance =\n normalAppearance.get(this.data.exportValue) || null;\n this.uncheckedAppearance = normalAppearance.get(\"Off\") || null;\n\n if (this.checkedAppearance) {\n this._streams.push(this.checkedAppearance);\n } else {\n this._getDefaultCheckedAppearance(params, \"check\");\n }\n if (this.uncheckedAppearance) {\n this._streams.push(this.uncheckedAppearance);\n }\n this._fallbackFontDict = this.fallbackFontDict;\n }\n\n _processRadioButton(params) {\n this.data.fieldValue = this.data.buttonValue = null;\n\n // The parent field's `V` entry holds a `Name` object with the appearance\n // state of whichever child field is currently in the \"on\" state.\n const fieldParent = params.dict.get(\"Parent\");\n if (fieldParent instanceof Dict) {\n this.parent = params.dict.getRaw(\"Parent\");\n const fieldParentValue = fieldParent.get(\"V\");\n if (fieldParentValue instanceof Name) {\n this.data.fieldValue = this._decodeFormValue(fieldParentValue);\n }\n }\n\n // The button's value corresponds to its appearance state.\n const appearanceStates = params.dict.get(\"AP\");\n if (!(appearanceStates instanceof Dict)) {\n return;\n }\n const normalAppearance = appearanceStates.get(\"N\");\n if (!(normalAppearance instanceof Dict)) {\n return;\n }\n for (const key of normalAppearance.getKeys()) {\n if (key !== \"Off\") {\n this.data.buttonValue = this._decodeFormValue(key);\n break;\n }\n }\n\n this.checkedAppearance =\n normalAppearance.get(this.data.buttonValue) || null;\n this.uncheckedAppearance = normalAppearance.get(\"Off\") || null;\n\n if (this.checkedAppearance) {\n this._streams.push(this.checkedAppearance);\n } else {\n this._getDefaultCheckedAppearance(params, \"disc\");\n }\n if (this.uncheckedAppearance) {\n this._streams.push(this.uncheckedAppearance);\n }\n this._fallbackFontDict = this.fallbackFontDict;\n }\n\n _processPushButton(params) {\n if (\n !params.dict.has(\"A\") &&\n !params.dict.has(\"AA\") &&\n !this.data.alternativeText\n ) {\n warn(\"Push buttons without action dictionaries are not supported\");\n return;\n }\n\n this.data.isTooltipOnly = !params.dict.has(\"A\") && !params.dict.has(\"AA\");\n\n Catalog.parseDestDictionary({\n destDict: params.dict,\n resultObj: this.data,\n docBaseUrl: params.pdfManager.docBaseUrl,\n });\n }\n\n getFieldObject() {\n let type = \"button\";\n let exportValues;\n if (this.data.checkBox) {\n type = \"checkbox\";\n exportValues = this.data.exportValue;\n } else if (this.data.radioButton) {\n type = \"radiobutton\";\n exportValues = this.data.buttonValue;\n }\n return {\n id: this.data.id,\n value: this.data.fieldValue || \"Off\",\n defaultValue: this.data.defaultFieldValue,\n exportValues,\n editable: !this.data.readOnly,\n name: this.data.fieldName,\n rect: this.data.rect,\n hidden: this.data.hidden,\n actions: this.data.actions,\n page: this.data.pageIndex,\n strokeColor: this.data.borderColor,\n fillColor: this.data.backgroundColor,\n type,\n };\n }\n\n get fallbackFontDict() {\n const dict = new Dict();\n dict.set(\"BaseFont\", Name.get(\"ZapfDingbats\"));\n dict.set(\"Type\", Name.get(\"FallbackType\"));\n dict.set(\"Subtype\", Name.get(\"FallbackType\"));\n dict.set(\"Encoding\", Name.get(\"ZapfDingbatsEncoding\"));\n\n return shadow(this, \"fallbackFontDict\", dict);\n }\n}\n\nclass ChoiceWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n\n // Determine the options. The options array may consist of strings or\n // arrays. If the array consists of arrays, then the first element of\n // each array is the export value and the second element of each array is\n // the display value. If the array consists of strings, then these\n // represent both the export and display value. In this case, we convert\n // it to an array of arrays as well for convenience in the display layer.\n // Note that the specification does not state that the `Opt` field is\n // inheritable, but in practice PDF generators do make annotations\n // inherit the options from a parent annotation (issue 8094).\n this.data.options = [];\n\n const options = getInheritableProperty({ dict: params.dict, key: \"Opt\" });\n if (Array.isArray(options)) {\n const xref = params.xref;\n for (let i = 0, ii = options.length; i < ii; i++) {\n const option = xref.fetchIfRef(options[i]);\n const isOptionArray = Array.isArray(option);\n\n this.data.options[i] = {\n exportValue: this._decodeFormValue(\n isOptionArray ? xref.fetchIfRef(option[0]) : option\n ),\n displayValue: this._decodeFormValue(\n isOptionArray ? xref.fetchIfRef(option[1]) : option\n ),\n };\n }\n }\n\n // The field value can be `null` if no item is selected, a string if one\n // item is selected or an array of strings if multiple items are selected.\n // For consistency in the API and convenience in the display layer, we\n // always make the field value an array with zero, one or multiple items.\n if (typeof this.data.fieldValue === \"string\") {\n this.data.fieldValue = [this.data.fieldValue];\n } else if (!this.data.fieldValue) {\n this.data.fieldValue = [];\n }\n\n // Process field flags for the display layer.\n this.data.combo = this.hasFieldFlag(AnnotationFieldFlag.COMBO);\n this.data.multiSelect = this.hasFieldFlag(AnnotationFieldFlag.MULTISELECT);\n this._hasText = true;\n }\n\n getFieldObject() {\n const type = this.data.combo ? \"combobox\" : \"listbox\";\n const value =\n this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : null;\n return {\n id: this.data.id,\n value,\n defaultValue: this.data.defaultFieldValue,\n editable: !this.data.readOnly,\n name: this.data.fieldName,\n rect: this.data.rect,\n numItems: this.data.fieldValue.length,\n multipleSelection: this.data.multiSelect,\n hidden: this.data.hidden,\n actions: this.data.actions,\n items: this.data.options,\n page: this.data.pageIndex,\n strokeColor: this.data.borderColor,\n fillColor: this.data.backgroundColor,\n type,\n };\n }\n\n async _getAppearance(evaluator, task, annotationStorage) {\n if (this.data.combo) {\n return super._getAppearance(evaluator, task, annotationStorage);\n }\n\n if (!annotationStorage) {\n return null;\n }\n const storageEntry = annotationStorage.get(this.data.id);\n let exportedValue = storageEntry && storageEntry.value;\n if (exportedValue === undefined) {\n // The annotation hasn't been rendered so use the appearance\n return null;\n }\n\n if (!Array.isArray(exportedValue)) {\n exportedValue = [exportedValue];\n }\n\n const defaultPadding = 2;\n const hPadding = defaultPadding;\n const totalHeight = this.data.rect[3] - this.data.rect[1];\n const totalWidth = this.data.rect[2] - this.data.rect[0];\n const lineCount = this.data.options.length;\n const valueIndices = [];\n for (let i = 0; i < lineCount; i++) {\n const { exportValue } = this.data.options[i];\n if (exportedValue.includes(exportValue)) {\n valueIndices.push(i);\n }\n }\n\n if (!this._defaultAppearance) {\n // The DA is required and must be a string.\n // If there is no font named Helvetica in the resource dictionary,\n // the evaluator will fall back to a default font.\n // Doing so prevents exceptions and allows saving/printing\n // the file as expected.\n this.data.defaultAppearanceData = parseDefaultAppearance(\n (this._defaultAppearance = \"/Helvetica 0 Tf 0 g\")\n );\n }\n\n const font = await this._getFontData(evaluator, task);\n\n let defaultAppearance;\n let { fontSize } = this.data.defaultAppearanceData;\n if (!fontSize) {\n const lineHeight = (totalHeight - defaultPadding) / lineCount;\n let lineWidth = -1;\n let value;\n for (const { displayValue } of this.data.options) {\n const width = this._getTextWidth(displayValue);\n if (width > lineWidth) {\n lineWidth = width;\n value = displayValue;\n }\n }\n\n [defaultAppearance, fontSize] = this._computeFontSize(\n lineHeight,\n totalWidth - 2 * hPadding,\n value,\n font,\n -1\n );\n } else {\n defaultAppearance = this._defaultAppearance;\n }\n\n const lineHeight = fontSize * LINE_FACTOR;\n const vPadding = (lineHeight - fontSize) / 2;\n const numberOfVisibleLines = Math.floor(totalHeight / lineHeight);\n\n let firstIndex;\n if (valueIndices.length === 1) {\n const valuePosition = valueIndices[0];\n const indexInPage = valuePosition % numberOfVisibleLines;\n firstIndex = valuePosition - indexInPage;\n } else {\n // If nothing is selected (valueIndice.length === 0), we render\n // from the first element.\n firstIndex = valueIndices.length ? valueIndices[0] : 0;\n }\n const end = Math.min(firstIndex + numberOfVisibleLines + 1, lineCount);\n\n const buf = [\"/Tx BMC q\", `1 1 ${totalWidth} ${totalHeight} re W n`];\n\n if (valueIndices.length) {\n // This value has been copied/pasted from annotation-choice-widget.pdf.\n // It corresponds to rgb(153, 193, 218).\n buf.push(\"0.600006 0.756866 0.854904 rg\");\n\n // Highlight the lines in filling a blue rectangle at the selected\n // positions.\n for (const index of valueIndices) {\n if (firstIndex <= index && index < end) {\n buf.push(\n `1 ${\n totalHeight - (index - firstIndex + 1) * lineHeight\n } ${totalWidth} ${lineHeight} re f`\n );\n }\n }\n }\n buf.push(\"BT\", defaultAppearance, `1 0 0 1 0 ${totalHeight} Tm`);\n\n for (let i = firstIndex; i < end; i++) {\n const { displayValue } = this.data.options[i];\n const hpadding = i === firstIndex ? hPadding : 0;\n const vpadding = i === firstIndex ? vPadding : 0;\n buf.push(\n this._renderText(\n displayValue,\n font,\n fontSize,\n totalWidth,\n 0,\n hpadding,\n -lineHeight + vpadding\n )\n );\n }\n\n buf.push(\"ET Q EMC\");\n\n return buf.join(\"\\n\");\n }\n}\n\nclass SignatureWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n\n // Unset the fieldValue since it's (most likely) a `Dict` which is\n // non-serializable and will thus cause errors when sending annotations\n // to the main-thread (issue 10347).\n this.data.fieldValue = null;\n }\n\n getFieldObject() {\n return {\n id: this.data.id,\n value: null,\n page: this.data.pageIndex,\n type: \"signature\",\n };\n }\n}\n\nclass TextAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n const DEFAULT_ICON_SIZE = 22; // px\n\n super(parameters);\n\n const dict = parameters.dict;\n this.data.annotationType = AnnotationType.TEXT;\n\n if (this.data.hasAppearance) {\n this.data.name = \"NoIcon\";\n } else {\n this.data.rect[1] = this.data.rect[3] - DEFAULT_ICON_SIZE;\n this.data.rect[2] = this.data.rect[0] + DEFAULT_ICON_SIZE;\n this.data.name = dict.has(\"Name\") ? dict.get(\"Name\").name : \"Note\";\n }\n\n if (dict.has(\"State\")) {\n this.data.state = dict.get(\"State\") || null;\n this.data.stateModel = dict.get(\"StateModel\") || null;\n } else {\n this.data.state = null;\n this.data.stateModel = null;\n }\n }\n}\n\nclass LinkAnnotation extends Annotation {\n constructor(params) {\n super(params);\n\n this.data.annotationType = AnnotationType.LINK;\n\n const quadPoints = getQuadPoints(params.dict, this.rectangle);\n if (quadPoints) {\n this.data.quadPoints = quadPoints;\n }\n\n Catalog.parseDestDictionary({\n destDict: params.dict,\n resultObj: this.data,\n docBaseUrl: params.pdfManager.docBaseUrl,\n });\n }\n}\n\nclass PopupAnnotation extends Annotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.POPUP;\n\n let parentItem = parameters.dict.get(\"Parent\");\n if (!parentItem) {\n warn(\"Popup annotation has a missing or invalid parent annotation.\");\n return;\n }\n\n const parentSubtype = parentItem.get(\"Subtype\");\n this.data.parentType =\n parentSubtype instanceof Name ? parentSubtype.name : null;\n const rawParent = parameters.dict.getRaw(\"Parent\");\n this.data.parentId = rawParent instanceof Ref ? rawParent.toString() : null;\n\n const parentRect = parentItem.getArray(\"Rect\");\n if (Array.isArray(parentRect) && parentRect.length === 4) {\n this.data.parentRect = Util.normalizeRect(parentRect);\n } else {\n this.data.parentRect = [0, 0, 0, 0];\n }\n\n const rt = parentItem.get(\"RT\");\n if (isName(rt, AnnotationReplyType.GROUP)) {\n // Subordinate annotations in a group should inherit\n // the group attributes from the primary annotation.\n parentItem = parentItem.get(\"IRT\");\n }\n\n if (!parentItem.has(\"M\")) {\n this.data.modificationDate = null;\n } else {\n this.setModificationDate(parentItem.get(\"M\"));\n this.data.modificationDate = this.modificationDate;\n }\n\n if (!parentItem.has(\"C\")) {\n // Fall back to the default background color.\n this.data.color = null;\n } else {\n this.setColor(parentItem.getArray(\"C\"));\n this.data.color = this.color;\n }\n\n // If the Popup annotation is not viewable, but the parent annotation is,\n // that is most likely a bug. Fallback to inherit the flags from the parent\n // annotation (this is consistent with the behaviour in Adobe Reader).\n if (!this.viewable) {\n const parentFlags = parentItem.get(\"F\");\n if (this._isViewable(parentFlags)) {\n this.setFlags(parentFlags);\n }\n }\n\n this.setTitle(parentItem.get(\"T\"));\n this.data.titleObj = this._title;\n\n this.setContents(parentItem.get(\"Contents\"));\n this.data.contentsObj = this._contents;\n\n if (parentItem.has(\"RC\")) {\n this.data.richText = XFAFactory.getRichTextAsHtml(parentItem.get(\"RC\"));\n }\n }\n}\n\nclass FreeTextAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.FREETEXT;\n }\n}\n\nclass LineAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n const { dict } = parameters;\n this.data.annotationType = AnnotationType.LINE;\n\n const lineCoordinates = dict.getArray(\"L\");\n this.data.lineCoordinates = Util.normalizeRect(lineCoordinates);\n\n this.setLineEndings(dict.getArray(\"LE\"));\n this.data.lineEndings = this.lineEndings;\n\n if (!this.appearance) {\n // The default stroke color is black.\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = dict.get(\"CA\");\n\n // The default fill color is transparent. Setting the fill colour is\n // necessary if/when we want to add support for non-default line endings.\n let fillColor = null,\n interiorColor = dict.getArray(\"IC\");\n if (interiorColor) {\n interiorColor = getRgbColor(interiorColor, null);\n fillColor = interiorColor\n ? Array.from(interiorColor).map(c => c / 255)\n : null;\n }\n const fillAlpha = fillColor ? strokeAlpha : null;\n\n const borderWidth = this.borderStyle.width || 1,\n borderAdjust = 2 * borderWidth;\n\n // If the /Rect-entry is empty/wrong, create a fallback rectangle so that\n // we get similar rendering/highlighting behaviour as in Adobe Reader.\n const bbox = [\n this.data.lineCoordinates[0] - borderAdjust,\n this.data.lineCoordinates[1] - borderAdjust,\n this.data.lineCoordinates[2] + borderAdjust,\n this.data.lineCoordinates[3] + borderAdjust,\n ];\n if (!Util.intersect(this.rectangle, bbox)) {\n this.rectangle = bbox;\n }\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: `${borderWidth} w`,\n strokeColor,\n fillColor,\n strokeAlpha,\n fillAlpha,\n pointsCallback: (buffer, points) => {\n buffer.push(\n `${lineCoordinates[0]} ${lineCoordinates[1]} m`,\n `${lineCoordinates[2]} ${lineCoordinates[3]} l`,\n \"S\"\n );\n return [\n points[0].x - borderWidth,\n points[1].x + borderWidth,\n points[3].y - borderWidth,\n points[1].y + borderWidth,\n ];\n },\n });\n }\n }\n}\n\nclass SquareAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.SQUARE;\n\n if (!this.appearance) {\n // The default stroke color is black.\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = parameters.dict.get(\"CA\");\n\n // The default fill color is transparent.\n let fillColor = null,\n interiorColor = parameters.dict.getArray(\"IC\");\n if (interiorColor) {\n interiorColor = getRgbColor(interiorColor, null);\n fillColor = interiorColor\n ? Array.from(interiorColor).map(c => c / 255)\n : null;\n }\n const fillAlpha = fillColor ? strokeAlpha : null;\n\n if (this.borderStyle.width === 0 && !fillColor) {\n // Prevent rendering a \"hairline\" border (fixes issue14164.pdf).\n return;\n }\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: `${this.borderStyle.width} w`,\n strokeColor,\n fillColor,\n strokeAlpha,\n fillAlpha,\n pointsCallback: (buffer, points) => {\n const x = points[2].x + this.borderStyle.width / 2;\n const y = points[2].y + this.borderStyle.width / 2;\n const width = points[3].x - points[2].x - this.borderStyle.width;\n const height = points[1].y - points[3].y - this.borderStyle.width;\n buffer.push(`${x} ${y} ${width} ${height} re`);\n if (fillColor) {\n buffer.push(\"B\");\n } else {\n buffer.push(\"S\");\n }\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n }\n}\n\nclass CircleAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.CIRCLE;\n\n if (!this.appearance) {\n // The default stroke color is black.\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = parameters.dict.get(\"CA\");\n\n // The default fill color is transparent.\n let fillColor = null;\n let interiorColor = parameters.dict.getArray(\"IC\");\n if (interiorColor) {\n interiorColor = getRgbColor(interiorColor, null);\n fillColor = interiorColor\n ? Array.from(interiorColor).map(c => c / 255)\n : null;\n }\n const fillAlpha = fillColor ? strokeAlpha : null;\n\n if (this.borderStyle.width === 0 && !fillColor) {\n // Prevent rendering a \"hairline\" border (fixes issue14164.pdf).\n return;\n }\n\n // Circles are approximated by Bézier curves with four segments since\n // there is no circle primitive in the PDF specification. For the control\n // points distance, see https://stackoverflow.com/a/27863181.\n const controlPointsDistance = (4 / 3) * Math.tan(Math.PI / (2 * 4));\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: `${this.borderStyle.width} w`,\n strokeColor,\n fillColor,\n strokeAlpha,\n fillAlpha,\n pointsCallback: (buffer, points) => {\n const x0 = points[0].x + this.borderStyle.width / 2;\n const y0 = points[0].y - this.borderStyle.width / 2;\n const x1 = points[3].x - this.borderStyle.width / 2;\n const y1 = points[3].y + this.borderStyle.width / 2;\n const xMid = x0 + (x1 - x0) / 2;\n const yMid = y0 + (y1 - y0) / 2;\n const xOffset = ((x1 - x0) / 2) * controlPointsDistance;\n const yOffset = ((y1 - y0) / 2) * controlPointsDistance;\n\n buffer.push(\n `${xMid} ${y1} m`,\n `${xMid + xOffset} ${y1} ${x1} ${yMid + yOffset} ${x1} ${yMid} c`,\n `${x1} ${yMid - yOffset} ${xMid + xOffset} ${y0} ${xMid} ${y0} c`,\n `${xMid - xOffset} ${y0} ${x0} ${yMid - yOffset} ${x0} ${yMid} c`,\n `${x0} ${yMid + yOffset} ${xMid - xOffset} ${y1} ${xMid} ${y1} c`,\n \"h\"\n );\n if (fillColor) {\n buffer.push(\"B\");\n } else {\n buffer.push(\"S\");\n }\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n }\n}\n\nclass PolylineAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n const { dict } = parameters;\n this.data.annotationType = AnnotationType.POLYLINE;\n this.data.vertices = [];\n\n if (!(this instanceof PolygonAnnotation)) {\n // Only meaningful for polyline annotations.\n this.setLineEndings(dict.getArray(\"LE\"));\n this.data.lineEndings = this.lineEndings;\n }\n\n // The vertices array is an array of numbers representing the alternating\n // horizontal and vertical coordinates, respectively, of each vertex.\n // Convert this to an array of objects with x and y coordinates.\n const rawVertices = dict.getArray(\"Vertices\");\n if (!Array.isArray(rawVertices)) {\n return;\n }\n for (let i = 0, ii = rawVertices.length; i < ii; i += 2) {\n this.data.vertices.push({\n x: rawVertices[i],\n y: rawVertices[i + 1],\n });\n }\n\n if (!this.appearance) {\n // The default stroke color is black.\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = dict.get(\"CA\");\n\n const borderWidth = this.borderStyle.width || 1,\n borderAdjust = 2 * borderWidth;\n\n // If the /Rect-entry is empty/wrong, create a fallback rectangle so that\n // we get similar rendering/highlighting behaviour as in Adobe Reader.\n const bbox = [Infinity, Infinity, -Infinity, -Infinity];\n for (const vertex of this.data.vertices) {\n bbox[0] = Math.min(bbox[0], vertex.x - borderAdjust);\n bbox[1] = Math.min(bbox[1], vertex.y - borderAdjust);\n bbox[2] = Math.max(bbox[2], vertex.x + borderAdjust);\n bbox[3] = Math.max(bbox[3], vertex.y + borderAdjust);\n }\n if (!Util.intersect(this.rectangle, bbox)) {\n this.rectangle = bbox;\n }\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: `${borderWidth} w`,\n strokeColor,\n strokeAlpha,\n pointsCallback: (buffer, points) => {\n const vertices = this.data.vertices;\n for (let i = 0, ii = vertices.length; i < ii; i++) {\n buffer.push(\n `${vertices[i].x} ${vertices[i].y} ${i === 0 ? \"m\" : \"l\"}`\n );\n }\n buffer.push(\"S\");\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n }\n}\n\nclass PolygonAnnotation extends PolylineAnnotation {\n constructor(parameters) {\n // Polygons are specific forms of polylines, so reuse their logic.\n super(parameters);\n\n this.data.annotationType = AnnotationType.POLYGON;\n }\n}\n\nclass CaretAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.CARET;\n }\n}\n\nclass InkAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.INK;\n this.data.inkLists = [];\n\n const rawInkLists = parameters.dict.getArray(\"InkList\");\n if (!Array.isArray(rawInkLists)) {\n return;\n }\n const xref = parameters.xref;\n for (let i = 0, ii = rawInkLists.length; i < ii; ++i) {\n // The raw ink lists array contains arrays of numbers representing\n // the alternating horizontal and vertical coordinates, respectively,\n // of each vertex. Convert this to an array of objects with x and y\n // coordinates.\n this.data.inkLists.push([]);\n for (let j = 0, jj = rawInkLists[i].length; j < jj; j += 2) {\n this.data.inkLists[i].push({\n x: xref.fetchIfRef(rawInkLists[i][j]),\n y: xref.fetchIfRef(rawInkLists[i][j + 1]),\n });\n }\n }\n\n if (!this.appearance) {\n // The default stroke color is black.\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = parameters.dict.get(\"CA\");\n\n const borderWidth = this.borderStyle.width || 1,\n borderAdjust = 2 * borderWidth;\n\n // If the /Rect-entry is empty/wrong, create a fallback rectangle so that\n // we get similar rendering/highlighting behaviour as in Adobe Reader.\n const bbox = [Infinity, Infinity, -Infinity, -Infinity];\n for (const inkLists of this.data.inkLists) {\n for (const vertex of inkLists) {\n bbox[0] = Math.min(bbox[0], vertex.x - borderAdjust);\n bbox[1] = Math.min(bbox[1], vertex.y - borderAdjust);\n bbox[2] = Math.max(bbox[2], vertex.x + borderAdjust);\n bbox[3] = Math.max(bbox[3], vertex.y + borderAdjust);\n }\n }\n if (!Util.intersect(this.rectangle, bbox)) {\n this.rectangle = bbox;\n }\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: `${borderWidth} w`,\n strokeColor,\n strokeAlpha,\n pointsCallback: (buffer, points) => {\n // According to the specification, see \"12.5.6.13 Ink Annotations\":\n // When drawn, the points shall be connected by straight lines or\n // curves in an implementation-dependent way.\n // In order to simplify things, we utilize straight lines for now.\n for (const inkList of this.data.inkLists) {\n for (let i = 0, ii = inkList.length; i < ii; i++) {\n buffer.push(\n `${inkList[i].x} ${inkList[i].y} ${i === 0 ? \"m\" : \"l\"}`\n );\n }\n buffer.push(\"S\");\n }\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n }\n}\n\nclass HighlightAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.HIGHLIGHT;\n const quadPoints = (this.data.quadPoints = getQuadPoints(\n parameters.dict,\n null\n ));\n if (quadPoints) {\n const resources =\n this.appearance && this.appearance.dict.get(\"Resources\");\n\n if (!this.appearance || !(resources && resources.has(\"ExtGState\"))) {\n if (this.appearance) {\n // Workaround for cases where there's no /ExtGState-entry directly\n // available, e.g. when the appearance stream contains a /XObject of\n // the /Form-type, since that causes the highlighting to completely\n // obscure the PDF content below it (fixes issue13242.pdf).\n warn(\"HighlightAnnotation - ignoring built-in appearance stream.\");\n }\n // Default color is yellow in Acrobat Reader\n const fillColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [1, 1, 0];\n const fillAlpha = parameters.dict.get(\"CA\");\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n fillColor,\n blendMode: \"Multiply\",\n fillAlpha,\n pointsCallback: (buffer, points) => {\n buffer.push(\n `${points[0].x} ${points[0].y} m`,\n `${points[1].x} ${points[1].y} l`,\n `${points[3].x} ${points[3].y} l`,\n `${points[2].x} ${points[2].y} l`,\n \"f\"\n );\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n } else {\n this.data.hasPopup = false;\n }\n }\n}\n\nclass UnderlineAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.UNDERLINE;\n const quadPoints = (this.data.quadPoints = getQuadPoints(\n parameters.dict,\n null\n ));\n if (quadPoints) {\n if (!this.appearance) {\n // Default color is black\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = parameters.dict.get(\"CA\");\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: \"[] 0 d 1 w\",\n strokeColor,\n strokeAlpha,\n pointsCallback: (buffer, points) => {\n buffer.push(\n `${points[2].x} ${points[2].y} m`,\n `${points[3].x} ${points[3].y} l`,\n \"S\"\n );\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n } else {\n this.data.hasPopup = false;\n }\n }\n}\n\nclass SquigglyAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.SQUIGGLY;\n\n const quadPoints = (this.data.quadPoints = getQuadPoints(\n parameters.dict,\n null\n ));\n if (quadPoints) {\n if (!this.appearance) {\n // Default color is black\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = parameters.dict.get(\"CA\");\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: \"[] 0 d 1 w\",\n strokeColor,\n strokeAlpha,\n pointsCallback: (buffer, points) => {\n const dy = (points[0].y - points[2].y) / 6;\n let shift = dy;\n let x = points[2].x;\n const y = points[2].y;\n const xEnd = points[3].x;\n buffer.push(`${x} ${y + shift} m`);\n do {\n x += 2;\n shift = shift === 0 ? dy : 0;\n buffer.push(`${x} ${y + shift} l`);\n } while (x < xEnd);\n buffer.push(\"S\");\n return [points[2].x, xEnd, y - 2 * dy, y + 2 * dy];\n },\n });\n }\n } else {\n this.data.hasPopup = false;\n }\n }\n}\n\nclass StrikeOutAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.STRIKEOUT;\n\n const quadPoints = (this.data.quadPoints = getQuadPoints(\n parameters.dict,\n null\n ));\n if (quadPoints) {\n if (!this.appearance) {\n // Default color is black\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = parameters.dict.get(\"CA\");\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: \"[] 0 d 1 w\",\n strokeColor,\n strokeAlpha,\n pointsCallback: (buffer, points) => {\n buffer.push(\n `${(points[0].x + points[2].x) / 2} ` +\n `${(points[0].y + points[2].y) / 2} m`,\n `${(points[1].x + points[3].x) / 2} ` +\n `${(points[1].y + points[3].y) / 2} l`,\n \"S\"\n );\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n } else {\n this.data.hasPopup = false;\n }\n }\n}\n\nclass StampAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.STAMP;\n }\n}\n\nclass FileAttachmentAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n const file = new FileSpec(parameters.dict.get(\"FS\"), parameters.xref);\n\n this.data.annotationType = AnnotationType.FILEATTACHMENT;\n this.data.file = file.serializable;\n }\n}\n\nexport {\n Annotation,\n AnnotationBorderStyle,\n AnnotationFactory,\n getQuadPoints,\n MarkupAnnotation,\n};\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { OPS, warn } from \"../shared/util.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { escapePDFName } from \"./core_utils.js\";\nimport { EvaluatorPreprocessor } from \"./evaluator.js\";\nimport { Name } from \"./primitives.js\";\nimport { StringStream } from \"./stream.js\";\n\nclass DefaultAppearanceEvaluator extends EvaluatorPreprocessor {\n constructor(str) {\n super(new StringStream(str));\n }\n\n parse() {\n const operation = {\n fn: 0,\n args: [],\n };\n const result = {\n fontSize: 0,\n fontName: \"\",\n fontColor: /* black = */ new Uint8ClampedArray(3),\n };\n\n try {\n while (true) {\n operation.args.length = 0; // Ensure that `args` it's always reset.\n\n if (!this.read(operation)) {\n break;\n }\n if (this.savedStatesDepth !== 0) {\n continue; // Don't get info in save/restore sections.\n }\n const { fn, args } = operation;\n\n switch (fn | 0) {\n case OPS.setFont:\n const [fontName, fontSize] = args;\n if (fontName instanceof Name) {\n result.fontName = fontName.name;\n }\n if (typeof fontSize === \"number\" && fontSize > 0) {\n result.fontSize = fontSize;\n }\n break;\n case OPS.setFillRGBColor:\n ColorSpace.singletons.rgb.getRgbItem(args, 0, result.fontColor, 0);\n break;\n case OPS.setFillGray:\n ColorSpace.singletons.gray.getRgbItem(args, 0, result.fontColor, 0);\n break;\n case OPS.setFillColorSpace:\n ColorSpace.singletons.cmyk.getRgbItem(args, 0, result.fontColor, 0);\n break;\n }\n }\n } catch (reason) {\n warn(`parseDefaultAppearance - ignoring errors: \"${reason}\".`);\n }\n\n return result;\n }\n}\n\n// Parse DA to extract font and color information.\nfunction parseDefaultAppearance(str) {\n return new DefaultAppearanceEvaluator(str).parse();\n}\n\n// Create default appearance string from some information.\nfunction createDefaultAppearance({ fontSize, fontName, fontColor }) {\n let colorCmd;\n if (fontColor.every(c => c === 0)) {\n colorCmd = \"0 g\";\n } else {\n colorCmd =\n Array.from(fontColor)\n .map(c => (c / 255).toFixed(2))\n .join(\" \") + \" rg\";\n }\n return `/${escapePDFName(fontName)} ${fontSize} Tf ${colorCmd}`;\n}\n\nexport { createDefaultAppearance, parseDefaultAppearance };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n FormatError,\n info,\n shadow,\n unreachable,\n warn,\n} from \"../shared/util.js\";\nimport { Dict, Name, Ref } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { MissingDataException } from \"./core_utils.js\";\n\n/**\n * Resizes an RGB image with 3 components.\n * @param {TypedArray} src - The source buffer.\n * @param {TypedArray} dest - The destination buffer.\n * @param {number} w1 - Original width.\n * @param {number} h1 - Original height.\n * @param {number} w2 - New width.\n * @param {number} h2 - New height.\n * @param {number} alpha01 - Size reserved for the alpha channel.\n */\nfunction resizeRgbImage(src, dest, w1, h1, w2, h2, alpha01) {\n const COMPONENTS = 3;\n alpha01 = alpha01 !== 1 ? 0 : alpha01;\n const xRatio = w1 / w2;\n const yRatio = h1 / h2;\n let newIndex = 0,\n oldIndex;\n const xScaled = new Uint16Array(w2);\n const w1Scanline = w1 * COMPONENTS;\n\n for (let i = 0; i < w2; i++) {\n xScaled[i] = Math.floor(i * xRatio) * COMPONENTS;\n }\n for (let i = 0; i < h2; i++) {\n const py = Math.floor(i * yRatio) * w1Scanline;\n for (let j = 0; j < w2; j++) {\n oldIndex = py + xScaled[j];\n dest[newIndex++] = src[oldIndex++];\n dest[newIndex++] = src[oldIndex++];\n dest[newIndex++] = src[oldIndex++];\n newIndex += alpha01;\n }\n }\n}\n\nclass ColorSpace {\n constructor(name, numComps) {\n if (this.constructor === ColorSpace) {\n unreachable(\"Cannot initialize ColorSpace.\");\n }\n this.name = name;\n this.numComps = numComps;\n }\n\n /**\n * Converts the color value to the RGB color. The color components are\n * located in the src array starting from the srcOffset. Returns the array\n * of the rgb components, each value ranging from [0,255].\n */\n getRgb(src, srcOffset) {\n const rgb = new Uint8ClampedArray(3);\n this.getRgbItem(src, srcOffset, rgb, 0);\n return rgb;\n }\n\n /**\n * Converts the color value to the RGB color, similar to the getRgb method.\n * The result placed into the dest array starting from the destOffset.\n */\n getRgbItem(src, srcOffset, dest, destOffset) {\n unreachable(\"Should not call ColorSpace.getRgbItem\");\n }\n\n /**\n * Converts the specified number of the color values to the RGB colors.\n * The colors are located in the src array starting from the srcOffset.\n * The result is placed into the dest array starting from the destOffset.\n * The src array items shall be in [0,2^bits) range, the dest array items\n * will be in [0,255] range. alpha01 indicates how many alpha components\n * there are in the dest array; it will be either 0 (RGB array) or 1 (RGBA\n * array).\n */\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n unreachable(\"Should not call ColorSpace.getRgbBuffer\");\n }\n\n /**\n * Determines the number of bytes required to store the result of the\n * conversion done by the getRgbBuffer method. As in getRgbBuffer,\n * |alpha01| is either 0 (RGB output) or 1 (RGBA output).\n */\n getOutputLength(inputLength, alpha01) {\n unreachable(\"Should not call ColorSpace.getOutputLength\");\n }\n\n /**\n * Returns true if source data will be equal the result/output data.\n */\n isPassthrough(bits) {\n return false;\n }\n\n /**\n * Refer to the static `ColorSpace.isDefaultDecode` method below.\n */\n isDefaultDecode(decodeMap, bpc) {\n return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n }\n\n /**\n * Fills in the RGB colors in the destination buffer. alpha01 indicates\n * how many alpha components there are in the dest array; it will be either\n * 0 (RGB array) or 1 (RGBA array).\n */\n fillRgb(\n dest,\n originalWidth,\n originalHeight,\n width,\n height,\n actualHeight,\n bpc,\n comps,\n alpha01\n ) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'ColorSpace.fillRgb: Unsupported \"dest\" type.'\n );\n }\n const count = originalWidth * originalHeight;\n let rgbBuf = null;\n const numComponentColors = 1 << bpc;\n const needsResizing = originalHeight !== height || originalWidth !== width;\n\n if (this.isPassthrough(bpc)) {\n rgbBuf = comps;\n } else if (\n this.numComps === 1 &&\n count > numComponentColors &&\n this.name !== \"DeviceGray\" &&\n this.name !== \"DeviceRGB\"\n ) {\n // Optimization: create a color map when there is just one component and\n // we are converting more colors than the size of the color map. We\n // don't build the map if the colorspace is gray or rgb since those\n // methods are faster than building a map. This mainly offers big speed\n // ups for indexed and alternate colorspaces.\n //\n // TODO it may be worth while to cache the color map. While running\n // testing I never hit a cache so I will leave that out for now (perhaps\n // we are reparsing colorspaces too much?).\n const allColors =\n bpc <= 8\n ? new Uint8Array(numComponentColors)\n : new Uint16Array(numComponentColors);\n for (let i = 0; i < numComponentColors; i++) {\n allColors[i] = i;\n }\n const colorMap = new Uint8ClampedArray(numComponentColors * 3);\n this.getRgbBuffer(\n allColors,\n 0,\n numComponentColors,\n colorMap,\n 0,\n bpc,\n /* alpha01 = */ 0\n );\n\n if (!needsResizing) {\n // Fill in the RGB values directly into |dest|.\n let destPos = 0;\n for (let i = 0; i < count; ++i) {\n const key = comps[i] * 3;\n dest[destPos++] = colorMap[key];\n dest[destPos++] = colorMap[key + 1];\n dest[destPos++] = colorMap[key + 2];\n destPos += alpha01;\n }\n } else {\n rgbBuf = new Uint8Array(count * 3);\n let rgbPos = 0;\n for (let i = 0; i < count; ++i) {\n const key = comps[i] * 3;\n rgbBuf[rgbPos++] = colorMap[key];\n rgbBuf[rgbPos++] = colorMap[key + 1];\n rgbBuf[rgbPos++] = colorMap[key + 2];\n }\n }\n } else {\n if (!needsResizing) {\n // Fill in the RGB values directly into |dest|.\n this.getRgbBuffer(\n comps,\n 0,\n width * actualHeight,\n dest,\n 0,\n bpc,\n alpha01\n );\n } else {\n rgbBuf = new Uint8ClampedArray(count * 3);\n this.getRgbBuffer(comps, 0, count, rgbBuf, 0, bpc, /* alpha01 = */ 0);\n }\n }\n\n if (rgbBuf) {\n if (needsResizing) {\n resizeRgbImage(\n rgbBuf,\n dest,\n originalWidth,\n originalHeight,\n width,\n height,\n alpha01\n );\n } else {\n let destPos = 0,\n rgbPos = 0;\n for (let i = 0, ii = width * actualHeight; i < ii; i++) {\n dest[destPos++] = rgbBuf[rgbPos++];\n dest[destPos++] = rgbBuf[rgbPos++];\n dest[destPos++] = rgbBuf[rgbPos++];\n destPos += alpha01;\n }\n }\n }\n }\n\n /**\n * True if the colorspace has components in the default range of [0, 1].\n * This should be true for all colorspaces except for lab color spaces\n * which are [0,100], [-128, 127], [-128, 127].\n */\n get usesZeroToOneRange() {\n return shadow(this, \"usesZeroToOneRange\", true);\n }\n\n /**\n * @private\n */\n static _cache(cacheKey, xref, localColorSpaceCache, parsedColorSpace) {\n if (!localColorSpaceCache) {\n throw new Error(\n 'ColorSpace._cache - expected \"localColorSpaceCache\" argument.'\n );\n }\n if (!parsedColorSpace) {\n throw new Error(\n 'ColorSpace._cache - expected \"parsedColorSpace\" argument.'\n );\n }\n let csName, csRef;\n if (cacheKey instanceof Ref) {\n csRef = cacheKey;\n\n // If parsing succeeded, we know that this call cannot throw.\n cacheKey = xref.fetch(cacheKey);\n }\n if (cacheKey instanceof Name) {\n csName = cacheKey.name;\n }\n if (csName || csRef) {\n localColorSpaceCache.set(csName, csRef, parsedColorSpace);\n }\n }\n\n static getCached(cacheKey, xref, localColorSpaceCache) {\n if (!localColorSpaceCache) {\n throw new Error(\n 'ColorSpace.getCached - expected \"localColorSpaceCache\" argument.'\n );\n }\n if (cacheKey instanceof Ref) {\n const localColorSpace = localColorSpaceCache.getByRef(cacheKey);\n if (localColorSpace) {\n return localColorSpace;\n }\n\n try {\n cacheKey = xref.fetch(cacheKey);\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n // Any errors should be handled during parsing, rather than here.\n }\n }\n if (cacheKey instanceof Name) {\n const localColorSpace = localColorSpaceCache.getByName(cacheKey.name);\n if (localColorSpace) {\n return localColorSpace;\n }\n }\n return null;\n }\n\n static async parseAsync({\n cs,\n xref,\n resources = null,\n pdfFunctionFactory,\n localColorSpaceCache,\n }) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n !this.getCached(cs, xref, localColorSpaceCache),\n \"Expected `ColorSpace.getCached` to have been manually checked \" +\n \"before calling `ColorSpace.parseAsync`.\"\n );\n }\n const parsedColorSpace = this._parse(\n cs,\n xref,\n resources,\n pdfFunctionFactory\n );\n\n // Attempt to cache the parsed ColorSpace, by name and/or reference.\n this._cache(cs, xref, localColorSpaceCache, parsedColorSpace);\n\n return parsedColorSpace;\n }\n\n static parse({\n cs,\n xref,\n resources = null,\n pdfFunctionFactory,\n localColorSpaceCache,\n }) {\n const cachedColorSpace = this.getCached(cs, xref, localColorSpaceCache);\n if (cachedColorSpace) {\n return cachedColorSpace;\n }\n const parsedColorSpace = this._parse(\n cs,\n xref,\n resources,\n pdfFunctionFactory\n );\n\n // Attempt to cache the parsed ColorSpace, by name and/or reference.\n this._cache(cs, xref, localColorSpaceCache, parsedColorSpace);\n\n return parsedColorSpace;\n }\n\n /**\n * @private\n */\n static _parse(cs, xref, resources = null, pdfFunctionFactory) {\n cs = xref.fetchIfRef(cs);\n if (cs instanceof Name) {\n switch (cs.name) {\n case \"G\":\n case \"DeviceGray\":\n return this.singletons.gray;\n case \"RGB\":\n case \"DeviceRGB\":\n return this.singletons.rgb;\n case \"CMYK\":\n case \"DeviceCMYK\":\n return this.singletons.cmyk;\n case \"Pattern\":\n return new PatternCS(/* baseCS = */ null);\n default:\n if (resources instanceof Dict) {\n const colorSpaces = resources.get(\"ColorSpace\");\n if (colorSpaces instanceof Dict) {\n const resourcesCS = colorSpaces.get(cs.name);\n if (resourcesCS) {\n if (resourcesCS instanceof Name) {\n return this._parse(\n resourcesCS,\n xref,\n resources,\n pdfFunctionFactory\n );\n }\n cs = resourcesCS;\n break;\n }\n }\n }\n throw new FormatError(`Unrecognized ColorSpace: ${cs.name}`);\n }\n }\n if (Array.isArray(cs)) {\n const mode = xref.fetchIfRef(cs[0]).name;\n let params, numComps, baseCS, whitePoint, blackPoint, gamma;\n\n switch (mode) {\n case \"G\":\n case \"DeviceGray\":\n return this.singletons.gray;\n case \"RGB\":\n case \"DeviceRGB\":\n return this.singletons.rgb;\n case \"CMYK\":\n case \"DeviceCMYK\":\n return this.singletons.cmyk;\n case \"CalGray\":\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray(\"WhitePoint\");\n blackPoint = params.getArray(\"BlackPoint\");\n gamma = params.get(\"Gamma\");\n return new CalGrayCS(whitePoint, blackPoint, gamma);\n case \"CalRGB\":\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray(\"WhitePoint\");\n blackPoint = params.getArray(\"BlackPoint\");\n gamma = params.getArray(\"Gamma\");\n const matrix = params.getArray(\"Matrix\");\n return new CalRGBCS(whitePoint, blackPoint, gamma, matrix);\n case \"ICCBased\":\n const stream = xref.fetchIfRef(cs[1]);\n const dict = stream.dict;\n numComps = dict.get(\"N\");\n const alt = dict.get(\"Alternate\");\n if (alt) {\n const altCS = this._parse(alt, xref, resources, pdfFunctionFactory);\n // Ensure that the number of components are correct,\n // and also (indirectly) that it is not a PatternCS.\n if (altCS.numComps === numComps) {\n return altCS;\n }\n warn(\"ICCBased color space: Ignoring incorrect /Alternate entry.\");\n }\n if (numComps === 1) {\n return this.singletons.gray;\n } else if (numComps === 3) {\n return this.singletons.rgb;\n } else if (numComps === 4) {\n return this.singletons.cmyk;\n }\n break;\n case \"Pattern\":\n baseCS = cs[1] || null;\n if (baseCS) {\n baseCS = this._parse(baseCS, xref, resources, pdfFunctionFactory);\n }\n return new PatternCS(baseCS);\n case \"I\":\n case \"Indexed\":\n baseCS = this._parse(cs[1], xref, resources, pdfFunctionFactory);\n const hiVal = xref.fetchIfRef(cs[2]) + 1;\n const lookup = xref.fetchIfRef(cs[3]);\n return new IndexedCS(baseCS, hiVal, lookup);\n case \"Separation\":\n case \"DeviceN\":\n const name = xref.fetchIfRef(cs[1]);\n numComps = Array.isArray(name) ? name.length : 1;\n baseCS = this._parse(cs[2], xref, resources, pdfFunctionFactory);\n const tintFn = pdfFunctionFactory.create(cs[3]);\n return new AlternateCS(numComps, baseCS, tintFn);\n case \"Lab\":\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray(\"WhitePoint\");\n blackPoint = params.getArray(\"BlackPoint\");\n const range = params.getArray(\"Range\");\n return new LabCS(whitePoint, blackPoint, range);\n default:\n throw new FormatError(`Unimplemented ColorSpace object: ${mode}`);\n }\n }\n throw new FormatError(`Unrecognized ColorSpace object: ${cs}`);\n }\n\n /**\n * Checks if a decode map matches the default decode map for a color space.\n * This handles the general decode maps where there are two values per\n * component, e.g. [0, 1, 0, 1, 0, 1] for a RGB color.\n * This does not handle Lab, Indexed, or Pattern decode maps since they are\n * slightly different.\n * @param {Array} decode - Decode map (usually from an image).\n * @param {number} numComps - Number of components the color space has.\n */\n static isDefaultDecode(decode, numComps) {\n if (!Array.isArray(decode)) {\n return true;\n }\n if (numComps * 2 !== decode.length) {\n warn(\"The decode map is not the correct length\");\n return true;\n }\n for (let i = 0, ii = decode.length; i < ii; i += 2) {\n if (decode[i] !== 0 || decode[i + 1] !== 1) {\n return false;\n }\n }\n return true;\n }\n\n static get singletons() {\n return shadow(this, \"singletons\", {\n get gray() {\n return shadow(this, \"gray\", new DeviceGrayCS());\n },\n get rgb() {\n return shadow(this, \"rgb\", new DeviceRgbCS());\n },\n get cmyk() {\n return shadow(this, \"cmyk\", new DeviceCmykCS());\n },\n });\n }\n}\n\n/**\n * Alternate color space handles both Separation and DeviceN color spaces. A\n * Separation color space is actually just a DeviceN with one color component.\n * Both color spaces use a tinting function to convert colors to a base color\n * space.\n *\n * The default color is `new Float32Array(new Array(numComps).fill(1))`.\n */\nclass AlternateCS extends ColorSpace {\n constructor(numComps, base, tintFn) {\n super(\"Alternate\", numComps);\n this.base = base;\n this.tintFn = tintFn;\n this.tmpBuf = new Float32Array(base.numComps);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'AlternateCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n const tmpBuf = this.tmpBuf;\n this.tintFn(src, srcOffset, tmpBuf, 0);\n this.base.getRgbItem(tmpBuf, 0, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'AlternateCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const tintFn = this.tintFn;\n const base = this.base;\n const scale = 1 / ((1 << bits) - 1);\n const baseNumComps = base.numComps;\n const usesZeroToOneRange = base.usesZeroToOneRange;\n const isPassthrough =\n (base.isPassthrough(8) || !usesZeroToOneRange) && alpha01 === 0;\n let pos = isPassthrough ? destOffset : 0;\n const baseBuf = isPassthrough\n ? dest\n : new Uint8ClampedArray(baseNumComps * count);\n const numComps = this.numComps;\n\n const scaled = new Float32Array(numComps);\n const tinted = new Float32Array(baseNumComps);\n let i, j;\n\n for (i = 0; i < count; i++) {\n for (j = 0; j < numComps; j++) {\n scaled[j] = src[srcOffset++] * scale;\n }\n tintFn(scaled, 0, tinted, 0);\n if (usesZeroToOneRange) {\n for (j = 0; j < baseNumComps; j++) {\n baseBuf[pos++] = tinted[j] * 255;\n }\n } else {\n base.getRgbItem(tinted, 0, baseBuf, pos);\n pos += baseNumComps;\n }\n }\n\n if (!isPassthrough) {\n base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8, alpha01);\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return this.base.getOutputLength(\n (inputLength * this.base.numComps) / this.numComps,\n alpha01\n );\n }\n}\n\nclass PatternCS extends ColorSpace {\n constructor(baseCS) {\n super(\"Pattern\", null);\n this.base = baseCS;\n }\n\n isDefaultDecode(decodeMap, bpc) {\n unreachable(\"Should not call PatternCS.isDefaultDecode\");\n }\n}\n\n/**\n * The default color is `new Uint8Array([0])`.\n */\nclass IndexedCS extends ColorSpace {\n constructor(base, highVal, lookup) {\n super(\"Indexed\", 1);\n this.base = base;\n this.highVal = highVal;\n\n const length = base.numComps * highVal;\n this.lookup = new Uint8Array(length);\n\n if (lookup instanceof BaseStream) {\n const bytes = lookup.getBytes(length);\n this.lookup.set(bytes);\n } else if (typeof lookup === \"string\") {\n for (let i = 0; i < length; ++i) {\n this.lookup[i] = lookup.charCodeAt(i) & 0xff;\n }\n } else {\n throw new FormatError(`IndexedCS - unrecognized lookup table: ${lookup}`);\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'IndexedCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n const numComps = this.base.numComps;\n const start = src[srcOffset] * numComps;\n this.base.getRgbBuffer(this.lookup, start, 1, dest, destOffset, 8, 0);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'IndexedCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const base = this.base;\n const numComps = base.numComps;\n const outputDelta = base.getOutputLength(numComps, alpha01);\n const lookup = this.lookup;\n\n for (let i = 0; i < count; ++i) {\n const lookupPos = src[srcOffset++] * numComps;\n base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8, alpha01);\n destOffset += outputDelta;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return this.base.getOutputLength(inputLength * this.base.numComps, alpha01);\n }\n\n isDefaultDecode(decodeMap, bpc) {\n if (!Array.isArray(decodeMap)) {\n return true;\n }\n if (decodeMap.length !== 2) {\n warn(\"Decode map length is not correct\");\n return true;\n }\n if (!Number.isInteger(bpc) || bpc < 1) {\n warn(\"Bits per component is not correct\");\n return true;\n }\n return decodeMap[0] === 0 && decodeMap[1] === (1 << bpc) - 1;\n }\n}\n\n/**\n * The default color is `new Float32Array([0])`.\n */\nclass DeviceGrayCS extends ColorSpace {\n constructor() {\n super(\"DeviceGray\", 1);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceGrayCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n const c = src[srcOffset] * 255;\n dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c;\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceGrayCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const scale = 255 / ((1 << bits) - 1);\n let j = srcOffset,\n q = destOffset;\n for (let i = 0; i < count; ++i) {\n const c = scale * src[j++];\n dest[q++] = c;\n dest[q++] = c;\n dest[q++] = c;\n q += alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01);\n }\n}\n\n/**\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nclass DeviceRgbCS extends ColorSpace {\n constructor() {\n super(\"DeviceRGB\", 3);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceRgbCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n dest[destOffset] = src[srcOffset] * 255;\n dest[destOffset + 1] = src[srcOffset + 1] * 255;\n dest[destOffset + 2] = src[srcOffset + 2] * 255;\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceRgbCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n if (bits === 8 && alpha01 === 0) {\n dest.set(src.subarray(srcOffset, srcOffset + count * 3), destOffset);\n return;\n }\n const scale = 255 / ((1 << bits) - 1);\n let j = srcOffset,\n q = destOffset;\n for (let i = 0; i < count; ++i) {\n dest[q++] = scale * src[j++];\n dest[q++] = scale * src[j++];\n dest[q++] = scale * src[j++];\n q += alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength * (3 + alpha01)) / 3) | 0;\n }\n\n isPassthrough(bits) {\n return bits === 8;\n }\n}\n\n/**\n * The default color is `new Float32Array([0, 0, 0, 1])`.\n */\nconst DeviceCmykCS = (function DeviceCmykCSClosure() {\n // The coefficients below was found using numerical analysis: the method of\n // steepest descent for the sum((f_i - color_value_i)^2) for r/g/b colors,\n // where color_value is the tabular value from the table of sampled RGB colors\n // from CMYK US Web Coated (SWOP) colorspace, and f_i is the corresponding\n // CMYK color conversion using the estimation below:\n // f(A, B,.. N) = Acc+Bcm+Ccy+Dck+c+Fmm+Gmy+Hmk+Im+Jyy+Kyk+Ly+Mkk+Nk+255\n function convertToRgb(src, srcOffset, srcScale, dest, destOffset) {\n const c = src[srcOffset] * srcScale;\n const m = src[srcOffset + 1] * srcScale;\n const y = src[srcOffset + 2] * srcScale;\n const k = src[srcOffset + 3] * srcScale;\n\n dest[destOffset] =\n 255 +\n c *\n (-4.387332384609988 * c +\n 54.48615194189176 * m +\n 18.82290502165302 * y +\n 212.25662451639585 * k +\n -285.2331026137004) +\n m *\n (1.7149763477362134 * m -\n 5.6096736904047315 * y +\n -17.873870861415444 * k -\n 5.497006427196366) +\n y *\n (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) +\n k * (-21.86122147463605 * k - 189.48180835922747);\n\n dest[destOffset + 1] =\n 255 +\n c *\n (8.841041422036149 * c +\n 60.118027045597366 * m +\n 6.871425592049007 * y +\n 31.159100130055922 * k +\n -79.2970844816548) +\n m *\n (-15.310361306967817 * m +\n 17.575251261109482 * y +\n 131.35250912493976 * k -\n 190.9453302588951) +\n y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) +\n k * (-20.737325471181034 * k - 187.80453709719578);\n\n dest[destOffset + 2] =\n 255 +\n c *\n (0.8842522430003296 * c +\n 8.078677503112928 * m +\n 30.89978309703729 * y -\n 0.23883238689178934 * k +\n -14.183576799673286) +\n m *\n (10.49593273432072 * m +\n 63.02378494754052 * y +\n 50.606957656360734 * k -\n 112.23884253719248) +\n y *\n (0.03296041114873217 * y +\n 115.60384449646641 * k +\n -193.58209356861505) +\n k * (-22.33816807309886 * k - 180.12613974708367);\n }\n\n // eslint-disable-next-line no-shadow\n class DeviceCmykCS extends ColorSpace {\n constructor() {\n super(\"DeviceCMYK\", 4);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceCmykCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n convertToRgb(src, srcOffset, 1, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceCmykCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const scale = 1 / ((1 << bits) - 1);\n for (let i = 0; i < count; i++) {\n convertToRgb(src, srcOffset, scale, dest, destOffset);\n srcOffset += 4;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength / 4) * (3 + alpha01)) | 0;\n }\n }\n return DeviceCmykCS;\n})();\n\n/**\n * CalGrayCS: Based on \"PDF Reference, Sixth Ed\", p.245\n *\n * The default color is `new Float32Array([0])`.\n */\nconst CalGrayCS = (function CalGrayCSClosure() {\n function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n // A represents a gray component of a calibrated gray space.\n // A <---> AG in the spec\n const A = src[srcOffset] * scale;\n const AG = A ** cs.G;\n\n // Computes L as per spec. ( = cs.YW * AG )\n // Except if other than default BlackPoint values are used.\n const L = cs.YW * AG;\n // http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html, Ch 4.\n // Convert values to rgb range [0, 255].\n const val = Math.max(295.8 * L ** 0.3333333333333333 - 40.8, 0);\n dest[destOffset] = val;\n dest[destOffset + 1] = val;\n dest[destOffset + 2] = val;\n }\n\n // eslint-disable-next-line no-shadow\n class CalGrayCS extends ColorSpace {\n constructor(whitePoint, blackPoint, gamma) {\n super(\"CalGray\", 1);\n\n if (!whitePoint) {\n throw new FormatError(\n \"WhitePoint missing - required for color space CalGray\"\n );\n }\n blackPoint = blackPoint || [0, 0, 0];\n gamma = gamma || 1;\n\n // Translate arguments to spec variables.\n this.XW = whitePoint[0];\n this.YW = whitePoint[1];\n this.ZW = whitePoint[2];\n\n this.XB = blackPoint[0];\n this.YB = blackPoint[1];\n this.ZB = blackPoint[2];\n\n this.G = gamma;\n\n // Validate variables as per spec.\n if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n throw new FormatError(\n `Invalid WhitePoint components for ${this.name}` +\n \", no fallback available\"\n );\n }\n\n if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n info(`Invalid BlackPoint for ${this.name}, falling back to default.`);\n this.XB = this.YB = this.ZB = 0;\n }\n\n if (this.XB !== 0 || this.YB !== 0 || this.ZB !== 0) {\n warn(\n `${this.name}, BlackPoint: XB: ${this.XB}, YB: ${this.YB}, ` +\n `ZB: ${this.ZB}, only default values are supported.`\n );\n }\n\n if (this.G < 1) {\n info(\n `Invalid Gamma: ${this.G} for ${this.name}, ` +\n \"falling back to default.\"\n );\n this.G = 1;\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'CalGrayCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'CalGrayCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const scale = 1 / ((1 << bits) - 1);\n\n for (let i = 0; i < count; ++i) {\n convertToRgb(this, src, srcOffset, dest, destOffset, scale);\n srcOffset += 1;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01);\n }\n }\n return CalGrayCS;\n})();\n\n/**\n * CalRGBCS: Based on \"PDF Reference, Sixth Ed\", p.247\n *\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nconst CalRGBCS = (function CalRGBCSClosure() {\n // See http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html for these\n // matrices.\n // prettier-ignore\n const BRADFORD_SCALE_MATRIX = new Float32Array([\n 0.8951, 0.2664, -0.1614,\n -0.7502, 1.7135, 0.0367,\n 0.0389, -0.0685, 1.0296]);\n\n // prettier-ignore\n const BRADFORD_SCALE_INVERSE_MATRIX = new Float32Array([\n 0.9869929, -0.1470543, 0.1599627,\n 0.4323053, 0.5183603, 0.0492912,\n -0.0085287, 0.0400428, 0.9684867]);\n\n // See http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html.\n // prettier-ignore\n const SRGB_D65_XYZ_TO_RGB_MATRIX = new Float32Array([\n 3.2404542, -1.5371385, -0.4985314,\n -0.9692660, 1.8760108, 0.0415560,\n 0.0556434, -0.2040259, 1.0572252]);\n\n const FLAT_WHITEPOINT_MATRIX = new Float32Array([1, 1, 1]);\n\n const tempNormalizeMatrix = new Float32Array(3);\n const tempConvertMatrix1 = new Float32Array(3);\n const tempConvertMatrix2 = new Float32Array(3);\n\n const DECODE_L_CONSTANT = ((8 + 16) / 116) ** 3 / 8.0;\n\n function matrixProduct(a, b, result) {\n result[0] = a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n result[1] = a[3] * b[0] + a[4] * b[1] + a[5] * b[2];\n result[2] = a[6] * b[0] + a[7] * b[1] + a[8] * b[2];\n }\n\n function convertToFlat(sourceWhitePoint, LMS, result) {\n result[0] = (LMS[0] * 1) / sourceWhitePoint[0];\n result[1] = (LMS[1] * 1) / sourceWhitePoint[1];\n result[2] = (LMS[2] * 1) / sourceWhitePoint[2];\n }\n\n function convertToD65(sourceWhitePoint, LMS, result) {\n const D65X = 0.95047;\n const D65Y = 1;\n const D65Z = 1.08883;\n\n result[0] = (LMS[0] * D65X) / sourceWhitePoint[0];\n result[1] = (LMS[1] * D65Y) / sourceWhitePoint[1];\n result[2] = (LMS[2] * D65Z) / sourceWhitePoint[2];\n }\n\n function sRGBTransferFunction(color) {\n // See http://en.wikipedia.org/wiki/SRGB.\n if (color <= 0.0031308) {\n return adjustToRange(0, 1, 12.92 * color);\n }\n // Optimization:\n // If color is close enough to 1, skip calling the following transform\n // since calling Math.pow is expensive. If color is larger than\n // the threshold, the final result is larger than 254.5 since\n // ((1 + 0.055) * 0.99554525 ** (1 / 2.4) - 0.055) * 255 ===\n // 254.50000003134699\n if (color >= 0.99554525) {\n return 1;\n }\n return adjustToRange(0, 1, (1 + 0.055) * color ** (1 / 2.4) - 0.055);\n }\n\n function adjustToRange(min, max, value) {\n return Math.max(min, Math.min(max, value));\n }\n\n function decodeL(L) {\n if (L < 0) {\n return -decodeL(-L);\n }\n if (L > 8.0) {\n return ((L + 16) / 116) ** 3;\n }\n return L * DECODE_L_CONSTANT;\n }\n\n function compensateBlackPoint(sourceBlackPoint, XYZ_Flat, result) {\n // In case the blackPoint is already the default blackPoint then there is\n // no need to do compensation.\n if (\n sourceBlackPoint[0] === 0 &&\n sourceBlackPoint[1] === 0 &&\n sourceBlackPoint[2] === 0\n ) {\n result[0] = XYZ_Flat[0];\n result[1] = XYZ_Flat[1];\n result[2] = XYZ_Flat[2];\n return;\n }\n\n // For the blackPoint calculation details, please see\n // http://www.adobe.com/content/dam/Adobe/en/devnet/photoshop/sdk/\n // AdobeBPC.pdf.\n // The destination blackPoint is the default blackPoint [0, 0, 0].\n const zeroDecodeL = decodeL(0);\n\n const X_DST = zeroDecodeL;\n const X_SRC = decodeL(sourceBlackPoint[0]);\n\n const Y_DST = zeroDecodeL;\n const Y_SRC = decodeL(sourceBlackPoint[1]);\n\n const Z_DST = zeroDecodeL;\n const Z_SRC = decodeL(sourceBlackPoint[2]);\n\n const X_Scale = (1 - X_DST) / (1 - X_SRC);\n const X_Offset = 1 - X_Scale;\n\n const Y_Scale = (1 - Y_DST) / (1 - Y_SRC);\n const Y_Offset = 1 - Y_Scale;\n\n const Z_Scale = (1 - Z_DST) / (1 - Z_SRC);\n const Z_Offset = 1 - Z_Scale;\n\n result[0] = XYZ_Flat[0] * X_Scale + X_Offset;\n result[1] = XYZ_Flat[1] * Y_Scale + Y_Offset;\n result[2] = XYZ_Flat[2] * Z_Scale + Z_Offset;\n }\n\n function normalizeWhitePointToFlat(sourceWhitePoint, XYZ_In, result) {\n // In case the whitePoint is already flat then there is no need to do\n // normalization.\n if (sourceWhitePoint[0] === 1 && sourceWhitePoint[2] === 1) {\n result[0] = XYZ_In[0];\n result[1] = XYZ_In[1];\n result[2] = XYZ_In[2];\n return;\n }\n\n const LMS = result;\n matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n\n const LMS_Flat = tempNormalizeMatrix;\n convertToFlat(sourceWhitePoint, LMS, LMS_Flat);\n\n matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_Flat, result);\n }\n\n function normalizeWhitePointToD65(sourceWhitePoint, XYZ_In, result) {\n const LMS = result;\n matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n\n const LMS_D65 = tempNormalizeMatrix;\n convertToD65(sourceWhitePoint, LMS, LMS_D65);\n\n matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_D65, result);\n }\n\n function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n // A, B and C represent a red, green and blue components of a calibrated\n // rgb space.\n const A = adjustToRange(0, 1, src[srcOffset] * scale);\n const B = adjustToRange(0, 1, src[srcOffset + 1] * scale);\n const C = adjustToRange(0, 1, src[srcOffset + 2] * scale);\n\n // A <---> AGR in the spec\n // B <---> BGG in the spec\n // C <---> CGB in the spec\n const AGR = A === 1 ? 1 : A ** cs.GR;\n const BGG = B === 1 ? 1 : B ** cs.GG;\n const CGB = C === 1 ? 1 : C ** cs.GB;\n\n // Computes intermediate variables L, M, N as per spec.\n // To decode X, Y, Z values map L, M, N directly to them.\n const X = cs.MXA * AGR + cs.MXB * BGG + cs.MXC * CGB;\n const Y = cs.MYA * AGR + cs.MYB * BGG + cs.MYC * CGB;\n const Z = cs.MZA * AGR + cs.MZB * BGG + cs.MZC * CGB;\n\n // The following calculations are based on this document:\n // http://www.adobe.com/content/dam/Adobe/en/devnet/photoshop/sdk/\n // AdobeBPC.pdf.\n const XYZ = tempConvertMatrix1;\n XYZ[0] = X;\n XYZ[1] = Y;\n XYZ[2] = Z;\n const XYZ_Flat = tempConvertMatrix2;\n\n normalizeWhitePointToFlat(cs.whitePoint, XYZ, XYZ_Flat);\n\n const XYZ_Black = tempConvertMatrix1;\n compensateBlackPoint(cs.blackPoint, XYZ_Flat, XYZ_Black);\n\n const XYZ_D65 = tempConvertMatrix2;\n normalizeWhitePointToD65(FLAT_WHITEPOINT_MATRIX, XYZ_Black, XYZ_D65);\n\n const SRGB = tempConvertMatrix1;\n matrixProduct(SRGB_D65_XYZ_TO_RGB_MATRIX, XYZ_D65, SRGB);\n\n // Convert the values to rgb range [0, 255].\n dest[destOffset] = sRGBTransferFunction(SRGB[0]) * 255;\n dest[destOffset + 1] = sRGBTransferFunction(SRGB[1]) * 255;\n dest[destOffset + 2] = sRGBTransferFunction(SRGB[2]) * 255;\n }\n\n // eslint-disable-next-line no-shadow\n class CalRGBCS extends ColorSpace {\n constructor(whitePoint, blackPoint, gamma, matrix) {\n super(\"CalRGB\", 3);\n\n if (!whitePoint) {\n throw new FormatError(\n \"WhitePoint missing - required for color space CalRGB\"\n );\n }\n blackPoint = blackPoint || new Float32Array(3);\n gamma = gamma || new Float32Array([1, 1, 1]);\n matrix = matrix || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);\n\n // Translate arguments to spec variables.\n const XW = whitePoint[0];\n const YW = whitePoint[1];\n const ZW = whitePoint[2];\n this.whitePoint = whitePoint;\n\n const XB = blackPoint[0];\n const YB = blackPoint[1];\n const ZB = blackPoint[2];\n this.blackPoint = blackPoint;\n\n this.GR = gamma[0];\n this.GG = gamma[1];\n this.GB = gamma[2];\n\n this.MXA = matrix[0];\n this.MYA = matrix[1];\n this.MZA = matrix[2];\n this.MXB = matrix[3];\n this.MYB = matrix[4];\n this.MZB = matrix[5];\n this.MXC = matrix[6];\n this.MYC = matrix[7];\n this.MZC = matrix[8];\n\n // Validate variables as per spec.\n if (XW < 0 || ZW < 0 || YW !== 1) {\n throw new FormatError(\n `Invalid WhitePoint components for ${this.name}` +\n \", no fallback available\"\n );\n }\n\n if (XB < 0 || YB < 0 || ZB < 0) {\n info(\n `Invalid BlackPoint for ${this.name} [${XB}, ${YB}, ${ZB}], ` +\n \"falling back to default.\"\n );\n this.blackPoint = new Float32Array(3);\n }\n\n if (this.GR < 0 || this.GG < 0 || this.GB < 0) {\n info(\n `Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ` +\n `${this.name}, falling back to default.`\n );\n this.GR = this.GG = this.GB = 1;\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'CalRGBCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'CalRGBCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const scale = 1 / ((1 << bits) - 1);\n\n for (let i = 0; i < count; ++i) {\n convertToRgb(this, src, srcOffset, dest, destOffset, scale);\n srcOffset += 3;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength * (3 + alpha01)) / 3) | 0;\n }\n }\n return CalRGBCS;\n})();\n\n/**\n * LabCS: Based on \"PDF Reference, Sixth Ed\", p.250\n *\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nconst LabCS = (function LabCSClosure() {\n // Function g(x) from spec\n function fn_g(x) {\n let result;\n if (x >= 6 / 29) {\n result = x ** 3;\n } else {\n result = (108 / 841) * (x - 4 / 29);\n }\n return result;\n }\n\n function decode(value, high1, low2, high2) {\n return low2 + (value * (high2 - low2)) / high1;\n }\n\n // If decoding is needed maxVal should be 2^bits per component - 1.\n function convertToRgb(cs, src, srcOffset, maxVal, dest, destOffset) {\n // XXX: Lab input is in the range of [0, 100], [amin, amax], [bmin, bmax]\n // not the usual [0, 1]. If a command like setFillColor is used the src\n // values will already be within the correct range. However, if we are\n // converting an image we have to map the values to the correct range given\n // above.\n // Ls,as,bs <---> L*,a*,b* in the spec\n let Ls = src[srcOffset];\n let as = src[srcOffset + 1];\n let bs = src[srcOffset + 2];\n if (maxVal !== false) {\n Ls = decode(Ls, maxVal, 0, 100);\n as = decode(as, maxVal, cs.amin, cs.amax);\n bs = decode(bs, maxVal, cs.bmin, cs.bmax);\n }\n\n // Adjust limits of 'as' and 'bs'\n if (as > cs.amax) {\n as = cs.amax;\n } else if (as < cs.amin) {\n as = cs.amin;\n }\n if (bs > cs.bmax) {\n bs = cs.bmax;\n } else if (bs < cs.bmin) {\n bs = cs.bmin;\n }\n\n // Computes intermediate variables X,Y,Z as per spec\n const M = (Ls + 16) / 116;\n const L = M + as / 500;\n const N = M - bs / 200;\n\n const X = cs.XW * fn_g(L);\n const Y = cs.YW * fn_g(M);\n const Z = cs.ZW * fn_g(N);\n\n let r, g, b;\n // Using different conversions for D50 and D65 white points,\n // per http://www.color.org/srgb.pdf\n if (cs.ZW < 1) {\n // Assuming D50 (X=0.9642, Y=1.00, Z=0.8249)\n r = X * 3.1339 + Y * -1.617 + Z * -0.4906;\n g = X * -0.9785 + Y * 1.916 + Z * 0.0333;\n b = X * 0.072 + Y * -0.229 + Z * 1.4057;\n } else {\n // Assuming D65 (X=0.9505, Y=1.00, Z=1.0888)\n r = X * 3.2406 + Y * -1.5372 + Z * -0.4986;\n g = X * -0.9689 + Y * 1.8758 + Z * 0.0415;\n b = X * 0.0557 + Y * -0.204 + Z * 1.057;\n }\n // Convert the color values to the [0,255] range (clamping is automatic).\n dest[destOffset] = Math.sqrt(r) * 255;\n dest[destOffset + 1] = Math.sqrt(g) * 255;\n dest[destOffset + 2] = Math.sqrt(b) * 255;\n }\n\n // eslint-disable-next-line no-shadow\n class LabCS extends ColorSpace {\n constructor(whitePoint, blackPoint, range) {\n super(\"Lab\", 3);\n\n if (!whitePoint) {\n throw new FormatError(\n \"WhitePoint missing - required for color space Lab\"\n );\n }\n blackPoint = blackPoint || [0, 0, 0];\n range = range || [-100, 100, -100, 100];\n\n // Translate args to spec variables\n this.XW = whitePoint[0];\n this.YW = whitePoint[1];\n this.ZW = whitePoint[2];\n this.amin = range[0];\n this.amax = range[1];\n this.bmin = range[2];\n this.bmax = range[3];\n\n // These are here just for completeness - the spec doesn't offer any\n // formulas that use BlackPoint in Lab\n this.XB = blackPoint[0];\n this.YB = blackPoint[1];\n this.ZB = blackPoint[2];\n\n // Validate vars as per spec\n if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n throw new FormatError(\n \"Invalid WhitePoint components, no fallback available\"\n );\n }\n\n if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n info(\"Invalid BlackPoint, falling back to default\");\n this.XB = this.YB = this.ZB = 0;\n }\n\n if (this.amin > this.amax || this.bmin > this.bmax) {\n info(\"Invalid Range, falling back to defaults\");\n this.amin = -100;\n this.amax = 100;\n this.bmin = -100;\n this.bmax = 100;\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'LabCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n convertToRgb(this, src, srcOffset, false, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'LabCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const maxVal = (1 << bits) - 1;\n for (let i = 0; i < count; i++) {\n convertToRgb(this, src, srcOffset, maxVal, dest, destOffset);\n srcOffset += 3;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength * (3 + alpha01)) / 3) | 0;\n }\n\n isDefaultDecode(decodeMap, bpc) {\n // XXX: Decoding is handled with the lab conversion because of the strange\n // ranges that are used.\n return true;\n }\n\n get usesZeroToOneRange() {\n return shadow(this, \"usesZeroToOneRange\", false);\n }\n }\n return LabCS;\n})();\n\nexport { ColorSpace };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable no-var */\n\nimport {\n AbortException,\n assert,\n CMapCompressionType,\n createPromiseCapability,\n FONT_IDENTITY_MATRIX,\n FormatError,\n IDENTITY_MATRIX,\n info,\n isArrayEqual,\n OPS,\n RenderingIntentFlag,\n shadow,\n stringToPDFString,\n TextRenderingMode,\n UNSUPPORTED_FEATURES,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport { CMapFactory, IdentityCMap } from \"./cmap.js\";\nimport { Cmd, Dict, EOF, isName, Name, Ref, RefSet } from \"./primitives.js\";\nimport { ErrorFont, Font } from \"./fonts.js\";\nimport { FontFlags, getFontType } from \"./fonts_utils.js\";\nimport {\n getEncoding,\n MacRomanEncoding,\n StandardEncoding,\n SymbolSetEncoding,\n WinAnsiEncoding,\n ZapfDingbatsEncoding,\n} from \"./encodings.js\";\nimport {\n getFontNameToFileMap,\n getSerifFonts,\n getStandardFontName,\n getStdFontMap,\n getSymbolsFonts,\n} from \"./standard_fonts.js\";\nimport {\n getNormalizedUnicodes,\n getUnicodeForGlyph,\n reverseIfRtl,\n} from \"./unicode.js\";\nimport { getTilingPatternIR, Pattern } from \"./pattern.js\";\nimport { getXfaFontDict, getXfaFontName } from \"./xfa_fonts.js\";\nimport { IdentityToUnicodeMap, ToUnicodeMap } from \"./to_unicode_map.js\";\nimport { isPDFFunction, PDFFunctionFactory } from \"./function.js\";\nimport { Lexer, Parser } from \"./parser.js\";\nimport {\n LocalColorSpaceCache,\n LocalGStateCache,\n LocalImageCache,\n LocalTilingPatternCache,\n} from \"./image_utils.js\";\nimport { NullStream, Stream } from \"./stream.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { bidi } from \"./bidi.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { getGlyphsUnicode } from \"./glyphlist.js\";\nimport { getLookupTableFactory } from \"./core_utils.js\";\nimport { getMetrics } from \"./metrics.js\";\nimport { MurmurHash3_64 } from \"../shared/murmurhash3.js\";\nimport { OperatorList } from \"./operator_list.js\";\nimport { PDFImage } from \"./image.js\";\nimport {BoundingBoxesCalculator} from \"./bounding_boxes\";\n\nconst DefaultPartialEvaluatorOptions = Object.freeze({\n maxImageSize: -1,\n disableFontFace: false,\n ignoreErrors: false,\n isEvalSupported: true,\n fontExtraProperties: false,\n useSystemFonts: true,\n cMapUrl: null,\n standardFontDataUrl: null,\n});\n\nconst PatternType = {\n TILING: 1,\n SHADING: 2,\n};\n\n// Optionally avoid sending individual, or very few, text chunks to reduce\n// `postMessage` overhead with ReadableStream (see issue 13962).\n//\n// PLEASE NOTE: This value should *not* be too large (it's used as a lower limit\n// in `enqueueChunk`), since that would cause streaming of textContent to become\n// essentially useless in practice by sending all (or most) chunks at once.\n// Also, a too large value would (indirectly) affect the main-thread `textLayer`\n// building negatively by forcing all textContent to be handled at once, which\n// could easily end up hurting *overall* performance (e.g. rendering as well).\nconst TEXT_CHUNK_BATCH_SIZE = 10;\n\nconst deferred = Promise.resolve();\n\n// Convert PDF blend mode names to HTML5 blend mode names.\nfunction normalizeBlendMode(value, parsingArray = false) {\n if (Array.isArray(value)) {\n // Use the first *supported* BM value in the Array (fixes issue11279.pdf).\n for (let i = 0, ii = value.length; i < ii; i++) {\n const maybeBM = normalizeBlendMode(value[i], /* parsingArray = */ true);\n if (maybeBM) {\n return maybeBM;\n }\n }\n warn(`Unsupported blend mode Array: ${value}`);\n return \"source-over\";\n }\n\n if (!(value instanceof Name)) {\n if (parsingArray) {\n return null;\n }\n return \"source-over\";\n }\n switch (value.name) {\n case \"Normal\":\n case \"Compatible\":\n return \"source-over\";\n case \"Multiply\":\n return \"multiply\";\n case \"Screen\":\n return \"screen\";\n case \"Overlay\":\n return \"overlay\";\n case \"Darken\":\n return \"darken\";\n case \"Lighten\":\n return \"lighten\";\n case \"ColorDodge\":\n return \"color-dodge\";\n case \"ColorBurn\":\n return \"color-burn\";\n case \"HardLight\":\n return \"hard-light\";\n case \"SoftLight\":\n return \"soft-light\";\n case \"Difference\":\n return \"difference\";\n case \"Exclusion\":\n return \"exclusion\";\n case \"Hue\":\n return \"hue\";\n case \"Saturation\":\n return \"saturation\";\n case \"Color\":\n return \"color\";\n case \"Luminosity\":\n return \"luminosity\";\n }\n if (parsingArray) {\n return null;\n }\n warn(`Unsupported blend mode: ${value.name}`);\n return \"source-over\";\n}\n\nfunction incrementCachedImageMaskCount(data) {\n if (\n data.fn === OPS.paintImageMaskXObject &&\n data.args[0] &&\n data.args[0].count > 0\n ) {\n data.args[0].count++;\n }\n}\n\n// Trying to minimize Date.now() usage and check every 100 time.\nclass TimeSlotManager {\n static get TIME_SLOT_DURATION_MS() {\n return shadow(this, \"TIME_SLOT_DURATION_MS\", 20);\n }\n\n static get CHECK_TIME_EVERY() {\n return shadow(this, \"CHECK_TIME_EVERY\", 100);\n }\n\n constructor() {\n this.reset();\n }\n\n check() {\n if (++this.checked < TimeSlotManager.CHECK_TIME_EVERY) {\n return false;\n }\n this.checked = 0;\n return this.endTime <= Date.now();\n }\n\n reset() {\n this.endTime = Date.now() + TimeSlotManager.TIME_SLOT_DURATION_MS;\n this.checked = 0;\n }\n}\n\nclass PartialEvaluator {\n constructor({\n xref,\n handler,\n pageIndex,\n idFactory,\n fontCache,\n builtInCMapCache,\n standardFontDataCache,\n globalImageCache,\n options = null,\n }) {\n this.xref = xref;\n this.handler = handler;\n this.pageIndex = pageIndex;\n this.idFactory = idFactory;\n this.fontCache = fontCache;\n this.builtInCMapCache = builtInCMapCache;\n this.standardFontDataCache = standardFontDataCache;\n this.globalImageCache = globalImageCache;\n this.options = options || DefaultPartialEvaluatorOptions;\n this.parsingType3Font = false;\n\n this._fetchBuiltInCMapBound = this.fetchBuiltInCMap.bind(this);\n }\n\n /**\n * Since Functions are only cached (locally) by reference, we can share one\n * `PDFFunctionFactory` instance within this `PartialEvaluator` instance.\n */\n get _pdfFunctionFactory() {\n const pdfFunctionFactory = new PDFFunctionFactory({\n xref: this.xref,\n isEvalSupported: this.options.isEvalSupported,\n });\n return shadow(this, \"_pdfFunctionFactory\", pdfFunctionFactory);\n }\n\n clone(newOptions = null) {\n const newEvaluator = Object.create(this);\n newEvaluator.options = Object.assign(\n Object.create(null),\n this.options,\n newOptions\n );\n return newEvaluator;\n }\n\n hasBlendModes(resources, nonBlendModesSet) {\n if (!(resources instanceof Dict)) {\n return false;\n }\n if (resources.objId && nonBlendModesSet.has(resources.objId)) {\n return false;\n }\n\n const processed = new RefSet(nonBlendModesSet);\n if (resources.objId) {\n processed.put(resources.objId);\n }\n\n const nodes = [resources],\n xref = this.xref;\n while (nodes.length) {\n const node = nodes.shift();\n // First check the current resources for blend modes.\n const graphicStates = node.get(\"ExtGState\");\n if (graphicStates instanceof Dict) {\n for (let graphicState of graphicStates.getRawValues()) {\n if (graphicState instanceof Ref) {\n if (processed.has(graphicState)) {\n continue; // The ExtGState has already been processed.\n }\n try {\n graphicState = xref.fetch(graphicState);\n } catch (ex) {\n // Avoid parsing a corrupt ExtGState more than once.\n processed.put(graphicState);\n\n info(`hasBlendModes - ignoring ExtGState: \"${ex}\".`);\n continue;\n }\n }\n if (!(graphicState instanceof Dict)) {\n continue;\n }\n if (graphicState.objId) {\n processed.put(graphicState.objId);\n }\n\n const bm = graphicState.get(\"BM\");\n if (bm instanceof Name) {\n if (bm.name !== \"Normal\") {\n return true;\n }\n continue;\n }\n if (bm !== undefined && Array.isArray(bm)) {\n for (const element of bm) {\n if (element instanceof Name && element.name !== \"Normal\") {\n return true;\n }\n }\n }\n }\n }\n // Descend into the XObjects to look for more resources and blend modes.\n const xObjects = node.get(\"XObject\");\n if (!(xObjects instanceof Dict)) {\n continue;\n }\n for (let xObject of xObjects.getRawValues()) {\n if (xObject instanceof Ref) {\n if (processed.has(xObject)) {\n // The XObject has already been processed, and by avoiding a\n // redundant `xref.fetch` we can *significantly* reduce the load\n // time for badly generated PDF files (fixes issue6961.pdf).\n continue;\n }\n try {\n xObject = xref.fetch(xObject);\n } catch (ex) {\n // Avoid parsing a corrupt XObject more than once.\n processed.put(xObject);\n\n info(`hasBlendModes - ignoring XObject: \"${ex}\".`);\n continue;\n }\n }\n if (!(xObject instanceof BaseStream)) {\n continue;\n }\n if (xObject.dict.objId) {\n processed.put(xObject.dict.objId);\n }\n const xResources = xObject.dict.get(\"Resources\");\n if (!(xResources instanceof Dict)) {\n continue;\n }\n // Checking objId to detect an infinite loop.\n if (xResources.objId && processed.has(xResources.objId)) {\n continue;\n }\n\n nodes.push(xResources);\n if (xResources.objId) {\n processed.put(xResources.objId);\n }\n }\n }\n\n // When no blend modes exist, there's no need re-fetch/re-parse any of the\n // processed `Ref`s again for subsequent pages. This helps reduce redundant\n // `XRef.fetch` calls for some documents (e.g. issue6961.pdf).\n for (const ref of processed) {\n nonBlendModesSet.put(ref);\n }\n return false;\n }\n\n async fetchBuiltInCMap(name) {\n const cachedData = this.builtInCMapCache.get(name);\n if (cachedData) {\n return cachedData;\n }\n let data;\n\n if (this.options.cMapUrl !== null) {\n // Only compressed CMaps are (currently) supported here.\n const url = `${this.options.cMapUrl}${name}.bcmap`;\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(\n `fetchBuiltInCMap: failed to fetch file \"${url}\" with \"${response.statusText}\".`\n );\n }\n data = {\n cMapData: new Uint8Array(await response.arrayBuffer()),\n compressionType: CMapCompressionType.BINARY,\n };\n } else {\n // Get the data on the main-thread instead.\n data = await this.handler.sendWithPromise(\"FetchBuiltInCMap\", { name });\n }\n\n if (data.compressionType !== CMapCompressionType.NONE) {\n // Given the size of uncompressed CMaps, only cache compressed ones.\n this.builtInCMapCache.set(name, data);\n }\n return data;\n }\n\n async fetchStandardFontData(name) {\n const cachedData = this.standardFontDataCache.get(name);\n if (cachedData) {\n return new Stream(cachedData);\n }\n\n // The symbol fonts are not consistent across platforms, always load the\n // standard font data for them.\n if (\n this.options.useSystemFonts &&\n name !== \"Symbol\" &&\n name !== \"ZapfDingbats\"\n ) {\n return null;\n }\n\n const standardFontNameToFileName = getFontNameToFileMap(),\n filename = standardFontNameToFileName[name];\n let data;\n\n if (this.options.standardFontDataUrl !== null) {\n const url = `${this.options.standardFontDataUrl}${filename}`;\n const response = await fetch(url);\n if (!response.ok) {\n warn(\n `fetchStandardFontData: failed to fetch file \"${url}\" with \"${response.statusText}\".`\n );\n } else {\n data = await response.arrayBuffer();\n }\n } else {\n // Get the data on the main-thread instead.\n try {\n data = await this.handler.sendWithPromise(\"FetchStandardFontData\", {\n filename,\n });\n } catch (e) {\n warn(\n `fetchStandardFontData: failed to fetch file \"${filename}\" with \"${e}\".`\n );\n }\n }\n\n if (!data) {\n return null;\n }\n // Cache the \"raw\" standard font data, to avoid fetching it repeatedly\n // (see e.g. issue 11399).\n this.standardFontDataCache.set(name, data);\n\n return new Stream(data);\n }\n\n async buildFormXObject(\n resources,\n xobj,\n smask,\n operatorList,\n task,\n initialState,\n localColorSpaceCache\n ) {\n const dict = xobj.dict;\n const matrix = dict.getArray(\"Matrix\");\n let bbox = dict.getArray(\"BBox\");\n if (Array.isArray(bbox) && bbox.length === 4) {\n bbox = Util.normalizeRect(bbox);\n } else {\n bbox = null;\n }\n\n let optionalContent, groupOptions;\n if (dict.has(\"OC\")) {\n optionalContent = await this.parseMarkedContentProps(\n dict.get(\"OC\"),\n resources\n );\n }\n if (optionalContent !== undefined) {\n operatorList.addOp(OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n }\n const group = dict.get(\"Group\");\n if (group) {\n groupOptions = {\n matrix,\n bbox,\n smask,\n isolated: false,\n knockout: false,\n };\n\n const groupSubtype = group.get(\"S\");\n let colorSpace = null;\n if (isName(groupSubtype, \"Transparency\")) {\n groupOptions.isolated = group.get(\"I\") || false;\n groupOptions.knockout = group.get(\"K\") || false;\n if (group.has(\"CS\")) {\n const cs = group.getRaw(\"CS\");\n\n const cachedColorSpace = ColorSpace.getCached(\n cs,\n this.xref,\n localColorSpaceCache\n );\n if (cachedColorSpace) {\n colorSpace = cachedColorSpace;\n } else {\n colorSpace = await this.parseColorSpace({\n cs,\n resources,\n localColorSpaceCache,\n });\n }\n }\n }\n\n if (smask && smask.backdrop) {\n colorSpace = colorSpace || ColorSpace.singletons.rgb;\n smask.backdrop = colorSpace.getRgb(smask.backdrop, 0);\n }\n\n operatorList.addOp(OPS.beginGroup, [groupOptions]);\n }\n\n // If it's a group, a new canvas will be created that is the size of the\n // bounding box and translated to the correct position so we don't need to\n // apply the bounding box to it.\n const args = group ? [matrix, null] : [matrix, bbox];\n operatorList.addOp(OPS.paintFormXObjectBegin, args);\n\n return this.getOperatorList({\n stream: xobj,\n task,\n resources: dict.get(\"Resources\") || resources,\n operatorList,\n initialState,\n }).then(function () {\n operatorList.addOp(OPS.paintFormXObjectEnd, []);\n\n if (group) {\n operatorList.addOp(OPS.endGroup, [groupOptions]);\n }\n\n if (optionalContent !== undefined) {\n operatorList.addOp(OPS.endMarkedContent, []);\n }\n });\n }\n\n _sendImgData(objId, imgData, cacheGlobally = false) {\n const transfers = imgData ? [imgData.bitmap || imgData.data.buffer] : null;\n\n if (this.parsingType3Font || cacheGlobally) {\n return this.handler.send(\n \"commonobj\",\n [objId, \"Image\", imgData],\n transfers\n );\n }\n return this.handler.send(\n \"obj\",\n [objId, this.pageIndex, \"Image\", imgData],\n transfers\n );\n }\n\n async buildPaintImageXObject({\n resources,\n image,\n isInline = false,\n operatorList,\n cacheKey,\n localImageCache,\n localColorSpaceCache,\n }) {\n const dict = image.dict;\n const imageRef = dict.objId;\n const w = dict.get(\"W\", \"Width\");\n const h = dict.get(\"H\", \"Height\");\n\n if (!(w && typeof w === \"number\") || !(h && typeof h === \"number\")) {\n warn(\"Image dimensions are missing, or not numbers.\");\n return;\n }\n const maxImageSize = this.options.maxImageSize;\n if (maxImageSize !== -1 && w * h > maxImageSize) {\n const msg = \"Image exceeded maximum allowed size and was removed.\";\n\n if (this.options.ignoreErrors) {\n warn(msg);\n return;\n }\n throw new Error(msg);\n }\n\n let optionalContent;\n if (dict.has(\"OC\")) {\n optionalContent = await this.parseMarkedContentProps(\n dict.get(\"OC\"),\n resources\n );\n }\n\n const imageMask = dict.get(\"IM\", \"ImageMask\") || false;\n let imgData, args;\n if (imageMask) {\n // This depends on a tmpCanvas being filled with the\n // current fillStyle, such that processing the pixel\n // data can't be done here. Instead of creating a\n // complete PDFImage, only read the information needed\n // for later.\n const interpolate = dict.get(\"I\", \"Interpolate\");\n const bitStrideLength = (w + 7) >> 3;\n const imgArray = image.getBytes(bitStrideLength * h);\n const decode = dict.getArray(\"D\", \"Decode\");\n\n if (this.parsingType3Font) {\n imgData = PDFImage.createRawMask({\n imgArray,\n width: w,\n height: h,\n imageIsFromDecodeStream: image instanceof DecodeStream,\n inverseDecode: !!decode && decode[0] > 0,\n interpolate,\n });\n\n imgData.cached = !!cacheKey;\n args = [imgData];\n\n operatorList.addImageOps(\n OPS.paintImageMaskXObject,\n args,\n optionalContent\n );\n\n if (cacheKey) {\n localImageCache.set(cacheKey, imageRef, {\n fn: OPS.paintImageMaskXObject,\n args,\n optionalContent,\n });\n }\n return;\n }\n\n imgData = PDFImage.createMask({\n imgArray,\n width: w,\n height: h,\n imageIsFromDecodeStream: image instanceof DecodeStream,\n inverseDecode: !!decode && decode[0] > 0,\n interpolate,\n });\n\n if (imgData.isSingleOpaquePixel) {\n // Handles special case of mainly LaTeX documents which use image\n // masks to draw lines with the current fill style.\n operatorList.addImageOps(\n OPS.paintSolidColorImageMask,\n [],\n optionalContent\n );\n\n if (cacheKey) {\n localImageCache.set(cacheKey, imageRef, {\n fn: OPS.paintSolidColorImageMask,\n args: [],\n optionalContent,\n });\n }\n return;\n }\n\n const objId = `mask_${this.idFactory.createObjId()}`;\n operatorList.addDependency(objId);\n this._sendImgData(objId, imgData);\n\n args = [\n {\n data: objId,\n width: imgData.width,\n height: imgData.height,\n interpolate: imgData.interpolate,\n count: 1,\n },\n ];\n operatorList.addImageOps(\n OPS.paintImageMaskXObject,\n args,\n optionalContent\n );\n\n if (cacheKey) {\n localImageCache.set(cacheKey, imageRef, {\n fn: OPS.paintImageMaskXObject,\n args,\n optionalContent,\n });\n }\n return;\n }\n\n const softMask = dict.get(\"SM\", \"SMask\") || false;\n const mask = dict.get(\"Mask\") || false;\n\n const SMALL_IMAGE_DIMENSIONS = 200;\n // Inlining small images into the queue as RGB data\n if (isInline && !softMask && !mask && w + h < SMALL_IMAGE_DIMENSIONS) {\n const imageObj = new PDFImage({\n xref: this.xref,\n res: resources,\n image,\n isInline,\n pdfFunctionFactory: this._pdfFunctionFactory,\n localColorSpaceCache,\n });\n // We force the use of RGBA_32BPP images here, because we can't handle\n // any other kind.\n imgData = imageObj.createImageData(/* forceRGBA = */ true);\n operatorList.addImageOps(\n OPS.paintInlineImageXObject,\n [imgData],\n optionalContent\n );\n return;\n }\n\n // If there is no imageMask, create the PDFImage and a lot\n // of image processing can be done here.\n let objId = `img_${this.idFactory.createObjId()}`,\n cacheGlobally = false;\n\n if (this.parsingType3Font) {\n objId = `${this.idFactory.getDocId()}_type3_${objId}`;\n } else if (imageRef) {\n cacheGlobally = this.globalImageCache.shouldCache(\n imageRef,\n this.pageIndex\n );\n\n if (cacheGlobally) {\n objId = `${this.idFactory.getDocId()}_${objId}`;\n }\n }\n\n // Ensure that the dependency is added before the image is decoded.\n operatorList.addDependency(objId);\n args = [objId, w, h];\n\n PDFImage.buildImage({\n xref: this.xref,\n res: resources,\n image,\n isInline,\n pdfFunctionFactory: this._pdfFunctionFactory,\n localColorSpaceCache,\n })\n .then(imageObj => {\n imgData = imageObj.createImageData(/* forceRGBA = */ false);\n\n if (cacheKey && imageRef && cacheGlobally) {\n this.globalImageCache.addByteSize(imageRef, imgData.data.length);\n }\n return this._sendImgData(objId, imgData, cacheGlobally);\n })\n .catch(reason => {\n warn(`Unable to decode image \"${objId}\": \"${reason}\".`);\n\n return this._sendImgData(objId, /* imgData = */ null, cacheGlobally);\n });\n\n operatorList.addImageOps(OPS.paintImageXObject, args, optionalContent);\n\n if (cacheKey) {\n localImageCache.set(cacheKey, imageRef, {\n fn: OPS.paintImageXObject,\n args,\n optionalContent,\n });\n\n if (imageRef) {\n assert(!isInline, \"Cannot cache an inline image globally.\");\n this.globalImageCache.addPageIndex(imageRef, this.pageIndex);\n\n if (cacheGlobally) {\n this.globalImageCache.setData(imageRef, {\n objId,\n fn: OPS.paintImageXObject,\n args,\n optionalContent,\n byteSize: 0, // Temporary entry, note `addByteSize` above.\n });\n }\n }\n }\n }\n\n handleSMask(\n smask,\n resources,\n operatorList,\n task,\n stateManager,\n localColorSpaceCache\n ) {\n const smaskContent = smask.get(\"G\");\n const smaskOptions = {\n subtype: smask.get(\"S\").name,\n backdrop: smask.get(\"BC\"),\n };\n\n // The SMask might have a alpha/luminosity value transfer function --\n // we will build a map of integer values in range 0..255 to be fast.\n const transferObj = smask.get(\"TR\");\n if (isPDFFunction(transferObj)) {\n const transferFn = this._pdfFunctionFactory.create(transferObj);\n const transferMap = new Uint8Array(256);\n const tmp = new Float32Array(1);\n for (let i = 0; i < 256; i++) {\n tmp[0] = i / 255;\n transferFn(tmp, 0, tmp, 0);\n transferMap[i] = (tmp[0] * 255) | 0;\n }\n smaskOptions.transferMap = transferMap;\n }\n\n return this.buildFormXObject(\n resources,\n smaskContent,\n smaskOptions,\n operatorList,\n task,\n stateManager.state.clone(),\n localColorSpaceCache\n );\n }\n\n handleTransferFunction(tr) {\n let transferArray;\n if (Array.isArray(tr)) {\n transferArray = tr;\n } else if (isPDFFunction(tr)) {\n transferArray = [tr];\n } else {\n return null; // Not a valid transfer function entry.\n }\n\n const transferMaps = [];\n let numFns = 0,\n numEffectfulFns = 0;\n for (const entry of transferArray) {\n const transferObj = this.xref.fetchIfRef(entry);\n numFns++;\n\n if (isName(transferObj, \"Identity\")) {\n transferMaps.push(null);\n continue;\n } else if (!isPDFFunction(transferObj)) {\n return null; // Not a valid transfer function object.\n }\n\n const transferFn = this._pdfFunctionFactory.create(transferObj);\n const transferMap = new Uint8Array(256),\n tmp = new Float32Array(1);\n for (let j = 0; j < 256; j++) {\n tmp[0] = j / 255;\n transferFn(tmp, 0, tmp, 0);\n transferMap[j] = (tmp[0] * 255) | 0;\n }\n transferMaps.push(transferMap);\n numEffectfulFns++;\n }\n\n if (!(numFns === 1 || numFns === 4)) {\n return null; // Only 1 or 4 functions are supported, by the specification.\n }\n if (numEffectfulFns === 0) {\n return null; // Only /Identity transfer functions found, which are no-ops.\n }\n return transferMaps;\n }\n\n handleTilingType(\n fn,\n color,\n resources,\n pattern,\n patternDict,\n operatorList,\n task,\n localTilingPatternCache\n ) {\n // Create an IR of the pattern code.\n const tilingOpList = new OperatorList();\n // Merge the available resources, to prevent issues when the patternDict\n // is missing some /Resources entries (fixes issue6541.pdf).\n const patternResources = Dict.merge({\n xref: this.xref,\n dictArray: [patternDict.get(\"Resources\"), resources],\n });\n\n return this.getOperatorList({\n stream: pattern,\n task,\n resources: patternResources,\n operatorList: tilingOpList,\n })\n .then(function () {\n const operatorListIR = tilingOpList.getIR();\n const tilingPatternIR = getTilingPatternIR(\n operatorListIR,\n patternDict,\n color\n );\n // Add the dependencies to the parent operator list so they are\n // resolved before the sub operator list is executed synchronously.\n operatorList.addDependencies(tilingOpList.dependencies);\n operatorList.addOp(fn, tilingPatternIR);\n\n if (patternDict.objId) {\n localTilingPatternCache.set(/* name = */ null, patternDict.objId, {\n operatorListIR,\n dict: patternDict,\n });\n }\n })\n .catch(reason => {\n if (reason instanceof AbortException) {\n return;\n }\n if (this.options.ignoreErrors) {\n // Error(s) in the TilingPattern -- sending unsupported feature\n // notification and allow rendering to continue.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorTilingPattern,\n });\n warn(`handleTilingType - ignoring pattern: \"${reason}\".`);\n return;\n }\n throw reason;\n });\n }\n\n handleSetFont(\n resources,\n fontArgs,\n fontRef,\n operatorList,\n task,\n state,\n fallbackFontDict = null,\n cssFontInfo = null\n ) {\n const fontName =\n fontArgs && fontArgs[0] instanceof Name ? fontArgs[0].name : null;\n\n return this.loadFont(\n fontName,\n fontRef,\n resources,\n fallbackFontDict,\n cssFontInfo\n )\n .then(translated => {\n if (!translated.font.isType3Font) {\n return translated;\n }\n return translated\n .loadType3Data(this, resources, task)\n .then(function () {\n // Add the dependencies to the parent operatorList so they are\n // resolved before Type3 operatorLists are executed synchronously.\n operatorList.addDependencies(translated.type3Dependencies);\n\n return translated;\n })\n .catch(reason => {\n // Error in the font data -- sending unsupported feature\n // notification.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorFontLoadType3,\n });\n return new TranslatedFont({\n loadedName: \"g_font_error\",\n font: new ErrorFont(`Type3 font load error: ${reason}`),\n dict: translated.font,\n evaluatorOptions: this.options,\n });\n });\n })\n .then(translated => {\n state.font = translated.font;\n translated.send(this.handler);\n return translated;\n });\n }\n\n handleText(chars, state) {\n const font = state.font;\n const glyphs = font.charsToGlyphs(chars);\n\n if (font.data) {\n const isAddToPathSet = !!(\n state.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG\n );\n if (\n isAddToPathSet ||\n state.fillColorSpace.name === \"Pattern\" ||\n font.disableFontFace ||\n this.options.disableFontFace\n ) {\n PartialEvaluator.buildFontPaths(\n font,\n glyphs,\n this.handler,\n this.options\n );\n }\n }\n return glyphs;\n }\n\n ensureStateFont(state) {\n if (state.font) {\n return;\n }\n const reason = new FormatError(\n \"Missing setFont (Tf) operator before text rendering operator.\"\n );\n\n if (this.options.ignoreErrors) {\n // Missing setFont operator before text rendering operator -- sending\n // unsupported feature notification and allow rendering to continue.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorFontState,\n });\n warn(`ensureStateFont: \"${reason}\".`);\n return;\n }\n throw reason;\n }\n\n async setGState({\n resources,\n gState,\n operatorList,\n cacheKey,\n task,\n stateManager,\n localGStateCache,\n localColorSpaceCache,\n }) {\n const gStateRef = gState.objId;\n let isSimpleGState = true;\n // This array holds the converted/processed state data.\n const gStateObj = [];\n const gStateKeys = gState.getKeys();\n let promise = Promise.resolve();\n for (let i = 0, ii = gStateKeys.length; i < ii; i++) {\n const key = gStateKeys[i];\n const value = gState.get(key);\n switch (key) {\n case \"Type\":\n break;\n case \"LW\":\n case \"LC\":\n case \"LJ\":\n case \"ML\":\n case \"D\":\n case \"RI\":\n case \"FL\":\n case \"CA\":\n case \"ca\":\n gStateObj.push([key, value]);\n break;\n case \"Font\":\n isSimpleGState = false;\n\n promise = promise.then(() => {\n return this.handleSetFont(\n resources,\n null,\n value[0],\n operatorList,\n task,\n stateManager.state\n ).then(function (translated) {\n operatorList.addDependency(translated.loadedName);\n gStateObj.push([key, [translated.loadedName, value[1]]]);\n });\n });\n break;\n case \"BM\":\n gStateObj.push([key, normalizeBlendMode(value)]);\n break;\n case \"SMask\":\n if (isName(value, \"None\")) {\n gStateObj.push([key, false]);\n break;\n }\n if (value instanceof Dict) {\n isSimpleGState = false;\n\n promise = promise.then(() => {\n return this.handleSMask(\n value,\n resources,\n operatorList,\n task,\n stateManager,\n localColorSpaceCache\n );\n });\n gStateObj.push([key, true]);\n } else {\n warn(\"Unsupported SMask type\");\n }\n break;\n case \"TR\":\n const transferMaps = this.handleTransferFunction(value);\n gStateObj.push([key, transferMaps]);\n break;\n // Only generate info log messages for the following since\n // they are unlikely to have a big impact on the rendering.\n case \"OP\":\n case \"op\":\n case \"OPM\":\n case \"BG\":\n case \"BG2\":\n case \"UCR\":\n case \"UCR2\":\n case \"TR2\":\n case \"HT\":\n case \"SM\":\n case \"SA\":\n case \"AIS\":\n case \"TK\":\n // TODO implement these operators.\n info(\"graphic state operator \" + key);\n break;\n default:\n info(\"Unknown graphic state operator \" + key);\n break;\n }\n }\n return promise.then(function () {\n if (gStateObj.length > 0) {\n operatorList.addOp(OPS.setGState, [gStateObj]);\n }\n\n if (isSimpleGState) {\n localGStateCache.set(cacheKey, gStateRef, gStateObj);\n }\n });\n }\n\n loadFont(\n fontName,\n font,\n resources,\n fallbackFontDict = null,\n cssFontInfo = null\n ) {\n const errorFont = async () => {\n return new TranslatedFont({\n loadedName: \"g_font_error\",\n font: new ErrorFont(`Font \"${fontName}\" is not available.`),\n dict: font,\n evaluatorOptions: this.options,\n });\n };\n\n const xref = this.xref;\n let fontRef;\n if (font) {\n // Loading by ref.\n if (!(font instanceof Ref)) {\n throw new FormatError('The \"font\" object should be a reference.');\n }\n fontRef = font;\n } else {\n // Loading by name.\n const fontRes = resources.get(\"Font\");\n if (fontRes) {\n fontRef = fontRes.getRaw(fontName);\n }\n }\n if (!fontRef) {\n const partialMsg = `Font \"${\n fontName || (font && font.toString())\n }\" is not available`;\n\n if (!this.options.ignoreErrors && !this.parsingType3Font) {\n warn(`${partialMsg}.`);\n return errorFont();\n }\n // Font not found -- sending unsupported feature notification.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorFontMissing,\n });\n warn(`${partialMsg} -- attempting to fallback to a default font.`);\n\n // Falling back to a default font to avoid completely broken rendering,\n // but note that there're no guarantees that things will look \"correct\".\n if (fallbackFontDict) {\n fontRef = fallbackFontDict;\n } else {\n fontRef = PartialEvaluator.fallbackFontDict;\n }\n }\n\n if (this.parsingType3Font && this.type3FontRefs.has(fontRef)) {\n return errorFont();\n }\n\n if (this.fontCache.has(fontRef)) {\n return this.fontCache.get(fontRef);\n }\n\n font = xref.fetchIfRef(fontRef);\n if (!(font instanceof Dict)) {\n return errorFont();\n }\n\n // We are holding `font.cacheKey` references only for `fontRef`s that\n // are not actually `Ref`s, but rather `Dict`s. See explanation below.\n if (font.cacheKey && this.fontCache.has(font.cacheKey)) {\n return this.fontCache.get(font.cacheKey);\n }\n\n const fontCapability = createPromiseCapability();\n\n let preEvaluatedFont;\n try {\n preEvaluatedFont = this.preEvaluateFont(font);\n preEvaluatedFont.cssFontInfo = cssFontInfo;\n } catch (reason) {\n warn(`loadFont - preEvaluateFont failed: \"${reason}\".`);\n return errorFont();\n }\n const { descriptor, hash } = preEvaluatedFont;\n\n const fontRefIsRef = fontRef instanceof Ref;\n let fontID;\n if (fontRefIsRef) {\n fontID = `f${fontRef.toString()}`;\n }\n\n if (hash && descriptor instanceof Dict) {\n if (!descriptor.fontAliases) {\n descriptor.fontAliases = Object.create(null);\n }\n const fontAliases = descriptor.fontAliases;\n\n if (fontAliases[hash]) {\n const aliasFontRef = fontAliases[hash].aliasRef;\n if (fontRefIsRef && aliasFontRef && this.fontCache.has(aliasFontRef)) {\n this.fontCache.putAlias(fontRef, aliasFontRef);\n return this.fontCache.get(fontRef);\n }\n } else {\n fontAliases[hash] = {\n fontID: this.idFactory.createFontId(),\n };\n }\n\n if (fontRefIsRef) {\n fontAliases[hash].aliasRef = fontRef;\n }\n fontID = fontAliases[hash].fontID;\n }\n\n // Workaround for bad PDF generators that reference fonts incorrectly,\n // where `fontRef` is a `Dict` rather than a `Ref` (fixes bug946506.pdf).\n // In this case we cannot put the font into `this.fontCache` (which is\n // a `RefSetCache`), since it's not possible to use a `Dict` as a key.\n //\n // However, if we don't cache the font it's not possible to remove it\n // when `cleanup` is triggered from the API, which causes issues on\n // subsequent rendering operations (see issue7403.pdf) and would force us\n // to unnecessarily load the same fonts over and over.\n //\n // Instead, we cheat a bit by using a modified `fontID` as a key in\n // `this.fontCache`, to allow the font to be cached.\n // NOTE: This works because `RefSetCache` calls `toString()` on provided\n // keys. Also, since `fontRef` is used when getting cached fonts,\n // we'll not accidentally match fonts cached with the `fontID`.\n if (fontRefIsRef) {\n this.fontCache.put(fontRef, fontCapability.promise);\n } else {\n if (!fontID) {\n fontID = this.idFactory.createFontId();\n }\n font.cacheKey = `cacheKey_${fontID}`;\n this.fontCache.put(font.cacheKey, fontCapability.promise);\n }\n assert(\n fontID && fontID.startsWith(\"f\"),\n 'The \"fontID\" must be (correctly) defined.'\n );\n\n // Keep track of each font we translated so the caller can\n // load them asynchronously before calling display on a page.\n font.loadedName = `${this.idFactory.getDocId()}_${fontID}`;\n\n this.translateFont(preEvaluatedFont)\n .then(translatedFont => {\n if (translatedFont.fontType !== undefined) {\n xref.stats.addFontType(translatedFont.fontType);\n }\n\n fontCapability.resolve(\n new TranslatedFont({\n loadedName: font.loadedName,\n font: translatedFont,\n dict: font,\n evaluatorOptions: this.options,\n })\n );\n })\n .catch(reason => {\n // TODO fontCapability.reject?\n // Error in the font data -- sending unsupported feature notification.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorFontTranslate,\n });\n warn(`loadFont - translateFont failed: \"${reason}\".`);\n\n try {\n // error, but it's still nice to have font type reported\n const fontFile3 = descriptor && descriptor.get(\"FontFile3\");\n const subtype = fontFile3 && fontFile3.get(\"Subtype\");\n const fontType = getFontType(\n preEvaluatedFont.type,\n subtype && subtype.name\n );\n if (fontType !== undefined) {\n xref.stats.addFontType(fontType);\n }\n } catch (ex) {}\n\n fontCapability.resolve(\n new TranslatedFont({\n loadedName: font.loadedName,\n font: new ErrorFont(\n reason instanceof Error ? reason.message : reason\n ),\n dict: font,\n evaluatorOptions: this.options,\n })\n );\n });\n return fontCapability.promise;\n }\n\n buildPath(operatorList, fn, args, parsingText = false) {\n const lastIndex = operatorList.length - 1;\n if (!args) {\n args = [];\n }\n let minMax;\n if (\n lastIndex < 0 ||\n operatorList.fnArray[lastIndex] !== OPS.constructPath\n ) {\n // Handle corrupt PDF documents that contains path operators inside of\n // text objects, which may shift subsequent text, by enclosing the path\n // operator in save/restore operators (fixes issue10542_reduced.pdf).\n //\n // Note that this will effectively disable the optimization in the\n // `else` branch below, but given that this type of corruption is\n // *extremely* rare that shouldn't really matter much in practice.\n if (parsingText) {\n warn(`Encountered path operator \"${fn}\" inside of a text object.`);\n operatorList.addOp(OPS.save, null);\n }\n\n minMax = [Infinity, -Infinity, Infinity, -Infinity];\n operatorList.addOp(OPS.constructPath, [[fn], args, minMax]);\n\n if (parsingText) {\n operatorList.addOp(OPS.restore, null);\n }\n } else {\n const opArgs = operatorList.argsArray[lastIndex];\n opArgs[0].push(fn);\n Array.prototype.push.apply(opArgs[1], args);\n minMax = opArgs[2];\n }\n\n // Compute min/max in the worker instead of the main thread.\n // If the current matrix (when drawing) is a scaling one\n // then min/max can be easily computed in using those values.\n // Only rectangle, lineTo and moveTo are handled here since\n // Bezier stuff requires to have the starting point.\n switch (fn) {\n case OPS.rectangle:\n minMax[0] = Math.min(minMax[0], args[0], args[0] + args[2]);\n minMax[1] = Math.max(minMax[1], args[0], args[0] + args[2]);\n minMax[2] = Math.min(minMax[2], args[1], args[1] + args[3]);\n minMax[3] = Math.max(minMax[3], args[1], args[1] + args[3]);\n break;\n case OPS.moveTo:\n case OPS.lineTo:\n minMax[0] = Math.min(minMax[0], args[0]);\n minMax[1] = Math.max(minMax[1], args[0]);\n minMax[2] = Math.min(minMax[2], args[1]);\n minMax[3] = Math.max(minMax[3], args[1]);\n break;\n }\n }\n\n parseColorSpace({ cs, resources, localColorSpaceCache }) {\n return ColorSpace.parseAsync({\n cs,\n xref: this.xref,\n resources,\n pdfFunctionFactory: this._pdfFunctionFactory,\n localColorSpaceCache,\n }).catch(reason => {\n if (reason instanceof AbortException) {\n return null;\n }\n if (this.options.ignoreErrors) {\n // Error(s) in the ColorSpace -- sending unsupported feature\n // notification and allow rendering to continue.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorColorSpace,\n });\n warn(`parseColorSpace - ignoring ColorSpace: \"${reason}\".`);\n return null;\n }\n throw reason;\n });\n }\n\n parseShading({\n shading,\n resources,\n localColorSpaceCache,\n localShadingPatternCache,\n }) {\n // Shadings and patterns may be referenced by the same name but the resource\n // dictionary could be different so we can't use the name for the cache key.\n let id = localShadingPatternCache.get(shading);\n if (!id) {\n var shadingFill = Pattern.parseShading(\n shading,\n this.xref,\n resources,\n this.handler,\n this._pdfFunctionFactory,\n localColorSpaceCache\n );\n const patternIR = shadingFill.getIR();\n id = `pattern_${this.idFactory.createObjId()}`;\n localShadingPatternCache.set(shading, id);\n this.handler.send(\"obj\", [id, this.pageIndex, \"Pattern\", patternIR]);\n }\n return id;\n }\n\n handleColorN(\n operatorList,\n fn,\n args,\n cs,\n patterns,\n resources,\n task,\n localColorSpaceCache,\n localTilingPatternCache,\n localShadingPatternCache\n ) {\n // compile tiling patterns\n const patternName = args.pop();\n // SCN/scn applies patterns along with normal colors\n if (patternName instanceof Name) {\n const rawPattern = patterns.getRaw(patternName.name);\n\n const localTilingPattern =\n rawPattern instanceof Ref &&\n localTilingPatternCache.getByRef(rawPattern);\n if (localTilingPattern) {\n try {\n const color = cs.base ? cs.base.getRgb(args, 0) : null;\n const tilingPatternIR = getTilingPatternIR(\n localTilingPattern.operatorListIR,\n localTilingPattern.dict,\n color\n );\n operatorList.addOp(fn, tilingPatternIR);\n return undefined;\n } catch (ex) {\n // Handle any errors during normal TilingPattern parsing.\n }\n }\n\n const pattern = this.xref.fetchIfRef(rawPattern);\n if (pattern) {\n const dict = pattern instanceof BaseStream ? pattern.dict : pattern;\n const typeNum = dict.get(\"PatternType\");\n\n if (typeNum === PatternType.TILING) {\n const color = cs.base ? cs.base.getRgb(args, 0) : null;\n return this.handleTilingType(\n fn,\n color,\n resources,\n pattern,\n dict,\n operatorList,\n task,\n localTilingPatternCache\n );\n } else if (typeNum === PatternType.SHADING) {\n const shading = dict.get(\"Shading\");\n const matrix = dict.getArray(\"Matrix\");\n const objId = this.parseShading({\n shading,\n resources,\n localColorSpaceCache,\n localShadingPatternCache,\n });\n operatorList.addOp(fn, [\"Shading\", objId, matrix]);\n return undefined;\n }\n throw new FormatError(`Unknown PatternType: ${typeNum}`);\n }\n }\n throw new FormatError(`Unknown PatternName: ${patternName}`);\n }\n\n _parseVisibilityExpression(array, nestingCounter, currentResult) {\n const MAX_NESTING = 10;\n if (++nestingCounter > MAX_NESTING) {\n warn(\"Visibility expression is too deeply nested\");\n return;\n }\n const length = array.length;\n const operator = this.xref.fetchIfRef(array[0]);\n if (length < 2 || !(operator instanceof Name)) {\n warn(\"Invalid visibility expression\");\n return;\n }\n switch (operator.name) {\n case \"And\":\n case \"Or\":\n case \"Not\":\n currentResult.push(operator.name);\n break;\n default:\n warn(`Invalid operator ${operator.name} in visibility expression`);\n return;\n }\n for (let i = 1; i < length; i++) {\n const raw = array[i];\n const object = this.xref.fetchIfRef(raw);\n if (Array.isArray(object)) {\n const nestedResult = [];\n currentResult.push(nestedResult);\n // Recursively parse a subarray.\n this._parseVisibilityExpression(object, nestingCounter, nestedResult);\n } else if (raw instanceof Ref) {\n // Reference to an OCG dictionary.\n currentResult.push(raw.toString());\n }\n }\n }\n\n async parseMarkedContentProps(contentProperties, resources) {\n let optionalContent;\n if (contentProperties instanceof Name) {\n const properties = resources.get(\"Properties\");\n optionalContent = properties.get(contentProperties.name);\n } else if (contentProperties instanceof Dict) {\n optionalContent = contentProperties;\n } else {\n throw new FormatError(\"Optional content properties malformed.\");\n }\n\n const optionalContentType = optionalContent.get(\"Type\").name;\n if (optionalContentType === \"OCG\") {\n return {\n type: optionalContentType,\n id: optionalContent.objId,\n };\n } else if (optionalContentType === \"OCMD\") {\n const expression = optionalContent.get(\"VE\");\n if (Array.isArray(expression)) {\n const result = [];\n this._parseVisibilityExpression(expression, 0, result);\n if (result.length > 0) {\n return {\n type: \"OCMD\",\n expression: result,\n };\n }\n }\n\n const optionalContentGroups = optionalContent.get(\"OCGs\");\n if (\n Array.isArray(optionalContentGroups) ||\n optionalContentGroups instanceof Dict\n ) {\n const groupIds = [];\n if (Array.isArray(optionalContentGroups)) {\n for (const ocg of optionalContentGroups) {\n groupIds.push(ocg.toString());\n }\n } else {\n // Dictionary, just use the obj id.\n groupIds.push(optionalContentGroups.objId);\n }\n\n return {\n type: optionalContentType,\n ids: groupIds,\n policy:\n optionalContent.get(\"P\") instanceof Name\n ? optionalContent.get(\"P\").name\n : null,\n expression: null,\n };\n } else if (optionalContentGroups instanceof Ref) {\n return {\n type: optionalContentType,\n id: optionalContentGroups.toString(),\n };\n }\n }\n return null;\n }\n\n getOperatorList({\n stream,\n task,\n resources,\n operatorList,\n initialState = null,\n fallbackFontDict = null,\n intent,\n }) {\n // Ensure that `resources`/`initialState` is correctly initialized,\n // even if the provided parameter is e.g. `null`.\n resources = resources || Dict.empty;\n initialState = initialState || new EvalState();\n\n if (!operatorList) {\n throw new Error('getOperatorList: missing \"operatorList\" parameter');\n }\n\n var boundingBoxCalculator = new BoundingBoxesCalculator(!(intent & RenderingIntentFlag.OPLIST));\n var self = this;\n var xref = this.xref;\n let parsingText = false;\n const localImageCache = new LocalImageCache();\n const localColorSpaceCache = new LocalColorSpaceCache();\n const localGStateCache = new LocalGStateCache();\n const localTilingPatternCache = new LocalTilingPatternCache();\n const localShadingPatternCache = new Map();\n\n const xobjs = resources.get(\"XObject\") || Dict.empty;\n const patterns = resources.get(\"Pattern\") || Dict.empty;\n const stateManager = new StateManager(initialState);\n const preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n const timeSlotManager = new TimeSlotManager();\n\n function closePendingRestoreOPS(argument) {\n for (let i = 0, ii = preprocessor.savedStatesDepth; i < ii; i++) {\n operatorList.addOp(OPS.restore, []);\n }\n }\n\n return new Promise(function promiseBody(resolve, reject) {\n const next = function (promise) {\n Promise.all([promise, operatorList.ready]).then(function () {\n try {\n promiseBody(resolve, reject);\n } catch (ex) {\n reject(ex);\n }\n }, reject);\n };\n task.ensureNotTerminated();\n timeSlotManager.reset();\n\n const operation = {};\n let stop, i, ii, cs, name, isValidName;\n while (!(stop = timeSlotManager.check())) {\n // The arguments parsed by read() are used beyond this loop, so we\n // cannot reuse the same array on each iteration. Therefore we pass\n // in |null| as the initial value (see the comment on\n // EvaluatorPreprocessor_read() for why).\n operation.args = null;\n if (!preprocessor.read(operation)) {\n break;\n }\n let args = operation.args;\n let fn = operation.fn;\n boundingBoxCalculator.incrementOperation(fn);\n\n switch (fn | 0) {\n case OPS.paintXObject:\n // eagerly compile XForm objects\n isValidName = args[0] instanceof Name;\n name = args[0].name;\n\n if (isValidName) {\n const localImage = localImageCache.getByName(name);\n if (localImage) {\n boundingBoxCalculator.parseOperator(OPS.paintXObject, [\"Image\"]);\n operatorList.addImageOps(\n localImage.fn,\n localImage.args,\n localImage.optionalContent\n );\n\n incrementCachedImageMaskCount(localImage);\n args = null;\n continue;\n }\n }\n\n next(\n new Promise(function (resolveXObject, rejectXObject) {\n if (!isValidName) {\n throw new FormatError(\"XObject must be referred to by name.\");\n }\n\n let xobj = xobjs.getRaw(name);\n if (xobj instanceof Ref) {\n const localImage = localImageCache.getByRef(xobj);\n if (localImage) {\n boundingBoxCalculator.parseOperator(OPS.paintXObject, [\"Image\"]);\n operatorList.addImageOps(\n localImage.fn,\n localImage.args,\n localImage.optionalContent\n );\n\n incrementCachedImageMaskCount(localImage);\n resolveXObject();\n return;\n }\n\n const globalImage = self.globalImageCache.getData(\n xobj,\n self.pageIndex\n );\n if (globalImage) {\n boundingBoxCalculator.parseOperator(OPS.paintXObject, [\"Image\"]);\n operatorList.addDependency(globalImage.objId);\n operatorList.addImageOps(\n globalImage.fn,\n globalImage.args,\n globalImage.optionalContent\n );\n\n resolveXObject();\n return;\n }\n\n xobj = xref.fetch(xobj);\n }\n\n if (!(xobj instanceof BaseStream)) {\n throw new FormatError(\"XObject should be a stream\");\n }\n\n const type = xobj.dict.get(\"Subtype\");\n if (!(type instanceof Name)) {\n throw new FormatError(\"XObject should have a Name subtype\");\n }\n\n if (type.name === \"Form\") {\n stateManager.save();\n self\n .buildFormXObject(\n resources,\n xobj,\n null,\n operatorList,\n task,\n stateManager.state.clone(),\n localColorSpaceCache\n )\n .then(function () {\n stateManager.restore();\n resolveXObject();\n }, rejectXObject);\n return;\n } else if (type.name === \"Image\") {\n boundingBoxCalculator.parseOperator(OPS.paintXObject, [type.name]);\n self\n .buildPaintImageXObject({\n resources,\n image: xobj,\n operatorList,\n cacheKey: name,\n localImageCache,\n localColorSpaceCache,\n })\n .then(resolveXObject, rejectXObject);\n return;\n } else if (type.name === \"PS\") {\n // PostScript XObjects are unused when viewing documents.\n // See section 4.7.1 of Adobe's PDF reference.\n info(\"Ignored XObject subtype PS\");\n } else {\n throw new FormatError(\n `Unhandled XObject subtype ${type.name}`\n );\n }\n resolveXObject();\n }).catch(function (reason) {\n if (reason instanceof AbortException) {\n return;\n }\n if (self.options.ignoreErrors) {\n // Error(s) in the XObject -- sending unsupported feature\n // notification and allow rendering to continue.\n self.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorXObject,\n });\n warn(`getOperatorList - ignoring XObject: \"${reason}\".`);\n return;\n }\n throw reason;\n })\n );\n return;\n case OPS.setFont:\n var fontSize = args[1];\n // eagerly collect all fonts\n next(\n self\n .handleSetFont(\n resources,\n args,\n null,\n operatorList,\n task,\n stateManager.state,\n fallbackFontDict\n )\n .then(function (translated) { \n boundingBoxCalculator.parseOperator(OPS.setFont, [fontSize, translated]);\n operatorList.addDependency(translated.loadedName);\n operatorList.addOp(OPS.setFont, [translated.loadedName, fontSize]);\n })\n );\n return;\n case OPS.beginText:\n parsingText = true;\n break;\n case OPS.endText:\n parsingText = false;\n break;\n case OPS.endInlineImage:\n var cacheKey = args[0].cacheKey;\n if (cacheKey) {\n const localImage = localImageCache.getByName(cacheKey);\n if (localImage) {\n operatorList.addImageOps(\n localImage.fn,\n localImage.args,\n localImage.optionalContent\n );\n\n incrementCachedImageMaskCount(localImage);\n args = null;\n continue;\n }\n }\n next(\n self.buildPaintImageXObject({\n resources,\n image: args[0],\n isInline: true,\n operatorList,\n cacheKey,\n localImageCache,\n localColorSpaceCache,\n })\n );\n boundingBoxCalculator.parseOperator(fn, args);\n return;\n case OPS.showText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n args[0] = self.handleText(args[0], stateManager.state);\n break;\n case OPS.showSpacedText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n var arr = args[0];\n var combinedGlyphs = [];\n var arrLength = arr.length;\n var state = stateManager.state;\n for (i = 0; i < arrLength; ++i) {\n const arrItem = arr[i];\n if (typeof arrItem === \"string\") {\n Array.prototype.push.apply(\n combinedGlyphs,\n self.handleText(arrItem, state)\n );\n } else if (typeof arrItem === \"number\") {\n combinedGlyphs.push(arrItem);\n }\n }\n args[0] = combinedGlyphs;\n fn = OPS.showText;\n break;\n case OPS.nextLineShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n operatorList.addOp(OPS.nextLine);\n boundingBoxCalculator.parseOperator(OPS.nextLine);\n args[0] = self.handleText(args[0], stateManager.state);\n fn = OPS.showText;\n break;\n case OPS.nextLineSetSpacingShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n operatorList.addOp(OPS.nextLine);\n operatorList.addOp(OPS.setWordSpacing, [args.shift()]);\n operatorList.addOp(OPS.setCharSpacing, [args.shift()]);\n boundingBoxCalculator.parseOperator(OPS.nextLine);\n boundingBoxCalculator.parseOperator(OPS.setWordSpacing, [args.shift()]);\n boundingBoxCalculator.parseOperator(OPS.setCharSpacing, [args.shift()]);\n args[0] = self.handleText(args[0], stateManager.state);\n fn = OPS.showText;\n break;\n case OPS.setTextRenderingMode:\n stateManager.state.textRenderingMode = args[0];\n break;\n\n case OPS.setFillColorSpace: {\n const cachedColorSpace = ColorSpace.getCached(\n args[0],\n xref,\n localColorSpaceCache\n );\n if (cachedColorSpace) {\n stateManager.state.fillColorSpace = cachedColorSpace;\n continue;\n }\n\n next(\n self\n .parseColorSpace({\n cs: args[0],\n resources,\n localColorSpaceCache,\n })\n .then(function (colorSpace) {\n boundingBoxCalculator.parseOperator(fn, args);\n if (colorSpace) {\n stateManager.state.fillColorSpace = colorSpace;\n }\n })\n );\n return;\n }\n case OPS.setStrokeColorSpace: {\n const cachedColorSpace = ColorSpace.getCached(\n args[0],\n xref,\n localColorSpaceCache\n );\n if (cachedColorSpace) {\n stateManager.state.strokeColorSpace = cachedColorSpace;\n continue;\n }\n\n next(\n self\n .parseColorSpace({\n cs: args[0],\n resources,\n localColorSpaceCache,\n })\n .then(function (colorSpace) {\n boundingBoxCalculator.parseOperator(fn, args);\n if (colorSpace) {\n stateManager.state.strokeColorSpace = colorSpace;\n }\n })\n );\n return;\n }\n case OPS.setFillColor:\n cs = stateManager.state.fillColorSpace;\n args = cs.getRgb(args, 0);\n fn = OPS.setFillRGBColor;\n break;\n case OPS.setStrokeColor:\n cs = stateManager.state.strokeColorSpace;\n args = cs.getRgb(args, 0);\n fn = OPS.setStrokeRGBColor;\n break;\n case OPS.setFillGray:\n stateManager.state.fillColorSpace = ColorSpace.singletons.gray;\n args = ColorSpace.singletons.gray.getRgb(args, 0);\n fn = OPS.setFillRGBColor;\n break;\n case OPS.setStrokeGray:\n stateManager.state.strokeColorSpace = ColorSpace.singletons.gray;\n args = ColorSpace.singletons.gray.getRgb(args, 0);\n fn = OPS.setStrokeRGBColor;\n break;\n case OPS.setFillCMYKColor:\n stateManager.state.fillColorSpace = ColorSpace.singletons.cmyk;\n args = ColorSpace.singletons.cmyk.getRgb(args, 0);\n fn = OPS.setFillRGBColor;\n break;\n case OPS.setStrokeCMYKColor:\n stateManager.state.strokeColorSpace = ColorSpace.singletons.cmyk;\n args = ColorSpace.singletons.cmyk.getRgb(args, 0);\n fn = OPS.setStrokeRGBColor;\n break;\n case OPS.setFillRGBColor:\n stateManager.state.fillColorSpace = ColorSpace.singletons.rgb;\n args = ColorSpace.singletons.rgb.getRgb(args, 0);\n break;\n case OPS.setStrokeRGBColor:\n stateManager.state.strokeColorSpace = ColorSpace.singletons.rgb;\n args = ColorSpace.singletons.rgb.getRgb(args, 0);\n break;\n case OPS.setFillColorN:\n cs = stateManager.state.fillColorSpace;\n if (cs.name === \"Pattern\") {\n next(\n self.handleColorN(\n operatorList,\n OPS.setFillColorN,\n args,\n cs,\n patterns,\n resources,\n task,\n localColorSpaceCache,\n localTilingPatternCache,\n localShadingPatternCache\n )\n );\n return;\n }\n args = cs.getRgb(args, 0);\n fn = OPS.setFillRGBColor;\n break;\n case OPS.setStrokeColorN:\n cs = stateManager.state.strokeColorSpace;\n if (cs.name === \"Pattern\") {\n next(\n self.handleColorN(\n operatorList,\n OPS.setStrokeColorN,\n args,\n cs,\n patterns,\n resources,\n task,\n localColorSpaceCache,\n localTilingPatternCache,\n localShadingPatternCache\n )\n );\n return;\n }\n args = cs.getRgb(args, 0);\n fn = OPS.setStrokeRGBColor;\n break;\n\n case OPS.shadingFill:\n var shadingRes = resources.get(\"Shading\");\n if (!shadingRes) {\n throw new FormatError(\"No shading resource found\");\n }\n\n var shading = shadingRes.get(args[0].name);\n if (!shading) {\n throw new FormatError(\"No shading object found\");\n }\n const patternId = self.parseShading({\n shading,\n resources,\n localColorSpaceCache,\n localShadingPatternCache,\n });\n args = [patternId];\n fn = OPS.shadingFill;\n break;\n case OPS.setGState:\n isValidName = args[0] instanceof Name;\n name = args[0].name;\n\n if (isValidName) {\n const localGStateObj = localGStateCache.getByName(name);\n if (localGStateObj) {\n if (localGStateObj.length > 0) {\n operatorList.addOp(OPS.setGState, [localGStateObj]);\n }\n args = null;\n continue;\n }\n }\n\n next(\n new Promise(function (resolveGState, rejectGState) {\n if (!isValidName) {\n throw new FormatError(\"GState must be referred to by name.\");\n }\n\n const extGState = resources.get(\"ExtGState\");\n if (!(extGState instanceof Dict)) {\n throw new FormatError(\"ExtGState should be a dictionary.\");\n }\n\n const gState = extGState.get(name);\n // TODO: Attempt to lookup cached GStates by reference as well,\n // if and only if there are PDF documents where doing so\n // would significantly improve performance.\n if (!(gState instanceof Dict)) {\n throw new FormatError(\"GState should be a dictionary.\");\n }\n\n self\n .setGState({\n resources,\n gState,\n operatorList,\n cacheKey: name,\n task,\n stateManager,\n localGStateCache,\n localColorSpaceCache,\n })\n .then(resolveGState, rejectGState);\n }).catch(function (reason) {\n if (reason instanceof AbortException) {\n return;\n }\n if (self.options.ignoreErrors) {\n // Error(s) in the ExtGState -- sending unsupported feature\n // notification and allow parsing/rendering to continue.\n self.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorExtGState,\n });\n warn(`getOperatorList - ignoring ExtGState: \"${reason}\".`);\n return;\n }\n throw reason;\n })\n );\n boundingBoxCalculator.parseOperator(fn, args);\n return;\n case OPS.moveTo:\n case OPS.lineTo:\n case OPS.curveTo:\n case OPS.curveTo2:\n case OPS.curveTo3:\n case OPS.closePath:\n case OPS.rectangle:\n self.buildPath(operatorList, fn, args, parsingText);\n boundingBoxCalculator.parseOperator(fn, args);\n continue;\n case OPS.markPoint:\n case OPS.markPointProps:\n case OPS.beginCompat:\n case OPS.endCompat:\n // Ignore operators where the corresponding handlers are known to\n // be no-op in CanvasGraphics (display/canvas.js). This prevents\n // serialization errors and is also a bit more efficient.\n // We could also try to serialize all objects in a general way,\n // e.g. as done in https://github.com/mozilla/pdf.js/pull/6266,\n // but doing so is meaningless without knowing the semantics.\n continue;\n case OPS.beginMarkedContentProps:\n boundingBoxCalculator.parseOperator(fn, args);\n if (!(args[0] instanceof Name)) {\n warn(`Expected name for beginMarkedContentProps arg0=${args[0]}`);\n continue;\n }\n if (args[0].name === \"OC\") {\n next(\n self\n .parseMarkedContentProps(args[1], resources)\n .then(data => {\n operatorList.addOp(OPS.beginMarkedContentProps, [\n \"OC\",\n data,\n ]);\n })\n .catch(reason => {\n if (reason instanceof AbortException) {\n return;\n }\n if (self.options.ignoreErrors) {\n self.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorMarkedContent,\n });\n warn(\n `getOperatorList - ignoring beginMarkedContentProps: \"${reason}\".`\n );\n return;\n }\n throw reason;\n })\n );\n return;\n }\n // Other marked content types aren't supported yet.\n args = [\n args[0].name,\n args[1] instanceof Dict ? args[1].get(\"MCID\") : null,\n ];\n\n break;\n case OPS.beginMarkedContent:\n case OPS.endMarkedContent:\n boundingBoxCalculator.parseOperator(fn, args);\n default:\n // Note: Ignore the operator if it has `Dict` arguments, since\n // those are non-serializable, otherwise postMessage will throw\n // \"An object could not be cloned.\".\n if (args !== null) {\n for (i = 0, ii = args.length; i < ii; i++) {\n if (args[i] instanceof Dict) {\n break;\n }\n }\n if (i < ii) {\n warn(\"getOperatorList - ignoring operator: \" + fn);\n continue;\n }\n }\n }\n boundingBoxCalculator.parseOperator(fn, args);\n operatorList.addOp(fn, args);\n }\n if (stop) {\n next(deferred);\n return;\n }\n // Some PDFs don't close all restores inside object/form.\n // Closing those for them.\n closePendingRestoreOPS();\n // Add extra data about marked content and glyphs position as last elements\n // of operator list with corresponding custom functions 'operationPosition'(100)\n // and 'boundingBoxes'(101), because it won't affect on\n // the process of rendering\n resolve([boundingBoxCalculator.boundingBoxes, boundingBoxCalculator.operationArray, boundingBoxCalculator.getNoMCIDBoundingBoxes()]);\n }).catch(reason => {\n if (reason instanceof AbortException) {\n return;\n }\n if (this.options.ignoreErrors) {\n // Error(s) in the OperatorList -- sending unsupported feature\n // notification and allow rendering to continue.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorOperatorList,\n });\n warn(\n `getOperatorList - ignoring errors during \"${task.name}\" ` +\n `task: \"${reason}\".`\n );\n\n closePendingRestoreOPS();\n return;\n }\n throw reason;\n });\n }\n\n getTextContent({\n stream,\n task,\n resources,\n stateManager = null,\n combineTextItems = false,\n includeMarkedContent = false,\n sink,\n seenStyles = new Set(),\n viewBox,\n }) {\n // Ensure that `resources`/`stateManager` is correctly initialized,\n // even if the provided parameter is e.g. `null`.\n resources = resources || Dict.empty;\n stateManager = stateManager || new StateManager(new TextState());\n\n const NormalizedUnicodes = getNormalizedUnicodes();\n\n const textContent = {\n items: [],\n styles: Object.create(null),\n };\n const textContentItem = {\n initialized: false,\n str: [],\n totalWidth: 0,\n totalHeight: 0,\n width: 0,\n height: 0,\n vertical: false,\n prevTransform: null,\n textAdvanceScale: 0,\n spaceInFlowMin: 0,\n spaceInFlowMax: 0,\n trackingSpaceMin: Infinity,\n negativeSpaceMax: -Infinity,\n notASpace: -Infinity,\n transform: null,\n fontName: null,\n hasEOL: false,\n };\n\n // Use a circular buffer (length === 2) to save the last chars in the\n // text stream.\n // This implementation of the circular buffer is using a fixed array\n // and the position of the next element:\n // function addElement(x) {\n // buffer[pos] = x;\n // pos = (pos + 1) % buffer.length;\n // }\n // It's a way faster than:\n // function addElement(x) {\n // buffer.push(x);\n // buffer.shift();\n // }\n //\n // It's useful to know when we need to add a whitespace in the\n // text chunk.\n const twoLastChars = [\" \", \" \"];\n let twoLastCharsPos = 0;\n\n /**\n * Save the last char.\n * @param {string} char\n * @returns {boolean} true when the two last chars before adding the new one\n * are a non-whitespace followed by a whitespace.\n */\n function saveLastChar(char) {\n const nextPos = (twoLastCharsPos + 1) % 2;\n const ret =\n twoLastChars[twoLastCharsPos] !== \" \" && twoLastChars[nextPos] === \" \";\n twoLastChars[twoLastCharsPos] = char;\n twoLastCharsPos = nextPos;\n\n return ret;\n }\n\n function resetLastChars() {\n twoLastChars[0] = twoLastChars[1] = \" \";\n twoLastCharsPos = 0;\n }\n\n // Used in addFakeSpaces.\n\n // A white <= fontSize * TRACKING_SPACE_FACTOR is a tracking space\n // so it doesn't count as a space.\n const TRACKING_SPACE_FACTOR = 0.1;\n\n // When a white <= fontSize * NOT_A_SPACE_FACTOR, there is no space\n // even if one is present in the text stream.\n const NOT_A_SPACE_FACTOR = 0.03;\n\n // A negative white < fontSize * NEGATIVE_SPACE_FACTOR induces\n // a break (a new chunk of text is created).\n // It doesn't change anything when the text is copied but\n // it improves potential mismatch between text layer and canvas.\n const NEGATIVE_SPACE_FACTOR = -0.2;\n\n // A white with a width in [fontSize * MIN_FACTOR; fontSize * MAX_FACTOR]\n // is a space which will be inserted in the current flow of words.\n // If the width is outside of this range then the flow is broken\n // (which means a new span in the text layer).\n // It's useful to adjust the best as possible the span in the layer\n // to what is displayed in the canvas.\n const SPACE_IN_FLOW_MIN_FACTOR = 0.1;\n const SPACE_IN_FLOW_MAX_FACTOR = 0.6;\n\n const self = this;\n const xref = this.xref;\n const showSpacedTextBuffer = [];\n\n // The xobj is parsed iff it's needed, e.g. if there is a `DO` cmd.\n let xobjs = null;\n const emptyXObjectCache = new LocalImageCache();\n const emptyGStateCache = new LocalGStateCache();\n\n const preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n\n let textState;\n\n function getCurrentTextTransform() {\n // 9.4.4 Text Space Details\n const font = textState.font;\n const tsm = [\n textState.fontSize * textState.textHScale,\n 0,\n 0,\n textState.fontSize,\n 0,\n textState.textRise,\n ];\n\n if (\n font.isType3Font &&\n (textState.fontSize <= 1 || font.isCharBBox) &&\n !isArrayEqual(textState.fontMatrix, FONT_IDENTITY_MATRIX)\n ) {\n const glyphHeight = font.bbox[3] - font.bbox[1];\n if (glyphHeight > 0) {\n tsm[3] *= glyphHeight * textState.fontMatrix[3];\n }\n }\n\n return Util.transform(\n textState.ctm,\n Util.transform(textState.textMatrix, tsm)\n );\n }\n\n function ensureTextContentItem() {\n if (textContentItem.initialized) {\n return textContentItem;\n }\n const font = textState.font,\n loadedName = font.loadedName;\n if (!seenStyles.has(loadedName)) {\n seenStyles.add(loadedName);\n\n textContent.styles[loadedName] = {\n fontFamily: font.fallbackName,\n ascent: font.ascent,\n descent: font.descent,\n vertical: font.vertical,\n };\n }\n textContentItem.fontName = loadedName;\n\n const trm = (textContentItem.transform = getCurrentTextTransform());\n if (!font.vertical) {\n textContentItem.width = textContentItem.totalWidth = 0;\n textContentItem.height = textContentItem.totalHeight = Math.hypot(\n trm[2],\n trm[3]\n );\n textContentItem.vertical = false;\n } else {\n textContentItem.width = textContentItem.totalWidth = Math.hypot(\n trm[0],\n trm[1]\n );\n textContentItem.height = textContentItem.totalHeight = 0;\n textContentItem.vertical = true;\n }\n\n const scaleLineX = Math.hypot(\n textState.textLineMatrix[0],\n textState.textLineMatrix[1]\n );\n const scaleCtmX = Math.hypot(textState.ctm[0], textState.ctm[1]);\n textContentItem.textAdvanceScale = scaleCtmX * scaleLineX;\n\n textContentItem.trackingSpaceMin =\n textState.fontSize * TRACKING_SPACE_FACTOR;\n textContentItem.notASpace = textState.fontSize * NOT_A_SPACE_FACTOR;\n textContentItem.negativeSpaceMax =\n textState.fontSize * NEGATIVE_SPACE_FACTOR;\n textContentItem.spaceInFlowMin =\n textState.fontSize * SPACE_IN_FLOW_MIN_FACTOR;\n textContentItem.spaceInFlowMax =\n textState.fontSize * SPACE_IN_FLOW_MAX_FACTOR;\n\n textContentItem.hasEOL = false;\n\n textContentItem.initialized = true;\n return textContentItem;\n }\n\n function updateAdvanceScale() {\n if (!textContentItem.initialized) {\n return;\n }\n\n const scaleLineX = Math.hypot(\n textState.textLineMatrix[0],\n textState.textLineMatrix[1]\n );\n const scaleCtmX = Math.hypot(textState.ctm[0], textState.ctm[1]);\n const scaleFactor = scaleCtmX * scaleLineX;\n if (scaleFactor === textContentItem.textAdvanceScale) {\n return;\n }\n\n if (!textContentItem.vertical) {\n textContentItem.totalWidth +=\n textContentItem.width * textContentItem.textAdvanceScale;\n textContentItem.width = 0;\n } else {\n textContentItem.totalHeight +=\n textContentItem.height * textContentItem.textAdvanceScale;\n textContentItem.height = 0;\n }\n\n textContentItem.textAdvanceScale = scaleFactor;\n }\n\n function runBidiTransform(textChunk) {\n const text = textChunk.str.join(\"\");\n const bidiResult = bidi(text, -1, textChunk.vertical);\n return {\n str: bidiResult.str,\n dir: bidiResult.dir,\n width: Math.abs(textChunk.totalWidth),\n height: Math.abs(textChunk.totalHeight),\n transform: textChunk.transform,\n fontName: textChunk.fontName,\n hasEOL: textChunk.hasEOL,\n };\n }\n\n function handleSetFont(fontName, fontRef) {\n return self\n .loadFont(fontName, fontRef, resources)\n .then(function (translated) {\n if (!translated.font.isType3Font) {\n return translated;\n }\n return translated\n .loadType3Data(self, resources, task)\n .catch(function () {\n // Ignore Type3-parsing errors, since we only use `loadType3Data`\n // here to ensure that we'll always obtain a useful /FontBBox.\n })\n .then(function () {\n return translated;\n });\n })\n .then(function (translated) {\n textState.font = translated.font;\n textState.fontMatrix =\n translated.font.fontMatrix || FONT_IDENTITY_MATRIX;\n });\n }\n\n function applyInverseRotation(x, y, matrix) {\n const scale = Math.hypot(matrix[0], matrix[1]);\n return [\n (matrix[0] * x + matrix[1] * y) / scale,\n (matrix[2] * x + matrix[3] * y) / scale,\n ];\n }\n\n function compareWithLastPosition() {\n const currentTransform = getCurrentTextTransform();\n let posX = currentTransform[4];\n let posY = currentTransform[5];\n\n const shiftedX = posX - viewBox[0];\n const shiftedY = posY - viewBox[1];\n\n if (\n shiftedX < 0 ||\n shiftedX > viewBox[2] ||\n shiftedY < 0 ||\n shiftedY > viewBox[3]\n ) {\n return false;\n }\n\n if (\n !combineTextItems ||\n !textState.font ||\n !textContentItem.prevTransform\n ) {\n return true;\n }\n\n let lastPosX = textContentItem.prevTransform[4];\n let lastPosY = textContentItem.prevTransform[5];\n\n if (lastPosX === posX && lastPosY === posY) {\n return true;\n }\n\n let rotate = -1;\n // Take into account the rotation is the current transform.\n if (\n currentTransform[0] &&\n currentTransform[1] === 0 &&\n currentTransform[2] === 0\n ) {\n rotate = currentTransform[0] > 0 ? 0 : 180;\n } else if (\n currentTransform[1] &&\n currentTransform[0] === 0 &&\n currentTransform[3] === 0\n ) {\n rotate = currentTransform[1] > 0 ? 90 : 270;\n }\n\n switch (rotate) {\n case 0:\n break;\n case 90:\n [posX, posY] = [posY, posX];\n [lastPosX, lastPosY] = [lastPosY, lastPosX];\n break;\n case 180:\n [posX, posY, lastPosX, lastPosY] = [\n -posX,\n -posY,\n -lastPosX,\n -lastPosY,\n ];\n break;\n case 270:\n [posX, posY] = [-posY, -posX];\n [lastPosX, lastPosY] = [-lastPosY, -lastPosX];\n break;\n default:\n // This is not a 0, 90, 180, 270 rotation so:\n // - remove the scale factor from the matrix to get a rotation matrix\n // - apply the inverse (which is the transposed) to the positions\n // and we can then compare positions of the glyphes to detect\n // a whitespace.\n [posX, posY] = applyInverseRotation(posX, posY, currentTransform);\n [lastPosX, lastPosY] = applyInverseRotation(\n lastPosX,\n lastPosY,\n textContentItem.prevTransform\n );\n }\n\n if (textState.font.vertical) {\n const advanceY = (lastPosY - posY) / textContentItem.textAdvanceScale;\n const advanceX = posX - lastPosX;\n\n // When the total height of the current chunk is negative\n // then we're writing from bottom to top.\n const textOrientation = Math.sign(textContentItem.height);\n if (advanceY < textOrientation * textContentItem.negativeSpaceMax) {\n if (\n Math.abs(advanceX) >\n 0.5 * textContentItem.width /* not the same column */\n ) {\n appendEOL();\n return true;\n }\n\n resetLastChars();\n flushTextContentItem();\n return true;\n }\n\n if (Math.abs(advanceX) > textContentItem.width) {\n appendEOL();\n return true;\n }\n\n if (advanceY <= textOrientation * textContentItem.notASpace) {\n // The real spacing between 2 consecutive chars is thin enough to be\n // considered a non-space.\n resetLastChars();\n }\n\n if (advanceY <= textOrientation * textContentItem.trackingSpaceMin) {\n textContentItem.height += advanceY;\n } else if (\n !addFakeSpaces(\n advanceY,\n textContentItem.prevTransform,\n textOrientation\n )\n ) {\n if (textContentItem.str.length === 0) {\n resetLastChars();\n textContent.items.push({\n str: \" \",\n dir: \"ltr\",\n width: 0,\n height: Math.abs(advanceY),\n transform: textContentItem.prevTransform,\n fontName: textContentItem.fontName,\n hasEOL: false,\n });\n } else {\n textContentItem.height += advanceY;\n }\n }\n\n return true;\n }\n\n const advanceX = (posX - lastPosX) / textContentItem.textAdvanceScale;\n const advanceY = posY - lastPosY;\n\n // When the total width of the current chunk is negative\n // then we're writing from right to left.\n const textOrientation = Math.sign(textContentItem.width);\n if (advanceX < textOrientation * textContentItem.negativeSpaceMax) {\n if (\n Math.abs(advanceY) >\n 0.5 * textContentItem.height /* not the same line */\n ) {\n appendEOL();\n return true;\n }\n\n // We're moving back so in case the last char was a whitespace\n // we cancel it: it doesn't make sense to insert it.\n resetLastChars();\n flushTextContentItem();\n return true;\n }\n\n if (Math.abs(advanceY) > textContentItem.height) {\n appendEOL();\n return true;\n }\n\n if (advanceX <= textOrientation * textContentItem.notASpace) {\n // The real spacing between 2 consecutive chars is thin enough to be\n // considered a non-space.\n resetLastChars();\n }\n\n if (advanceX <= textOrientation * textContentItem.trackingSpaceMin) {\n textContentItem.width += advanceX;\n } else if (\n !addFakeSpaces(advanceX, textContentItem.prevTransform, textOrientation)\n ) {\n if (textContentItem.str.length === 0) {\n resetLastChars();\n textContent.items.push({\n str: \" \",\n dir: \"ltr\",\n width: Math.abs(advanceX),\n height: 0,\n transform: textContentItem.prevTransform,\n fontName: textContentItem.fontName,\n hasEOL: false,\n });\n } else {\n textContentItem.width += advanceX;\n }\n }\n\n return true;\n }\n\n function buildTextContentItem({ chars, extraSpacing }) {\n const font = textState.font;\n if (!chars) {\n // Just move according to the space we have.\n const charSpacing = textState.charSpacing + extraSpacing;\n if (charSpacing) {\n if (!font.vertical) {\n textState.translateTextMatrix(\n charSpacing * textState.textHScale,\n 0\n );\n } else {\n textState.translateTextMatrix(0, -charSpacing);\n }\n }\n\n return;\n }\n\n const glyphs = font.charsToGlyphs(chars);\n const scale = textState.fontMatrix[0] * textState.fontSize;\n\n for (let i = 0, ii = glyphs.length; i < ii; i++) {\n const glyph = glyphs[i];\n if (glyph.isInvisibleFormatMark) {\n continue;\n }\n let charSpacing =\n textState.charSpacing + (i + 1 === ii ? extraSpacing : 0);\n\n let glyphWidth = glyph.width;\n if (font.vertical) {\n glyphWidth = glyph.vmetric ? glyph.vmetric[0] : -glyphWidth;\n }\n let scaledDim = glyphWidth * scale;\n\n if (glyph.isWhitespace) {\n // Don't push a \" \" in the textContentItem\n // (except when it's between two non-spaces chars),\n // it will be done (if required) in next call to\n // compareWithLastPosition.\n // This way we can merge real spaces and spaces due to cursor moves.\n if (!font.vertical) {\n charSpacing += scaledDim + textState.wordSpacing;\n textState.translateTextMatrix(\n charSpacing * textState.textHScale,\n 0\n );\n } else {\n charSpacing += -scaledDim + textState.wordSpacing;\n textState.translateTextMatrix(0, -charSpacing);\n }\n saveLastChar(\" \");\n continue;\n }\n\n if (!compareWithLastPosition()) {\n // The glyph is not in page so just skip it.\n continue;\n }\n\n // Must be called after compareWithLastPosition because\n // the textContentItem could have been flushed.\n const textChunk = ensureTextContentItem();\n if (glyph.isZeroWidthDiacritic) {\n scaledDim = 0;\n }\n\n if (!font.vertical) {\n scaledDim *= textState.textHScale;\n textState.translateTextMatrix(scaledDim, 0);\n textChunk.width += scaledDim;\n } else {\n textState.translateTextMatrix(0, scaledDim);\n scaledDim = Math.abs(scaledDim);\n textChunk.height += scaledDim;\n }\n\n if (scaledDim) {\n // Save the position of the last visible character.\n textChunk.prevTransform = getCurrentTextTransform();\n }\n\n let glyphUnicode = glyph.unicode;\n glyphUnicode = NormalizedUnicodes[glyphUnicode] || glyphUnicode;\n glyphUnicode = reverseIfRtl(glyphUnicode);\n if (saveLastChar(glyphUnicode)) {\n // The two last chars are a non-whitespace followed by a whitespace\n // and then this non-whitespace, so we insert a whitespace here.\n // Replaces all whitespaces with standard spaces (0x20), to avoid\n // alignment issues between the textLayer and the canvas if the text\n // contains e.g. tabs (fixes issue6612.pdf).\n textChunk.str.push(\" \");\n }\n textChunk.str.push(glyphUnicode);\n\n if (charSpacing) {\n if (!font.vertical) {\n textState.translateTextMatrix(\n charSpacing * textState.textHScale,\n 0\n );\n } else {\n textState.translateTextMatrix(0, -charSpacing);\n }\n }\n }\n }\n\n function appendEOL() {\n resetLastChars();\n if (textContentItem.initialized) {\n textContentItem.hasEOL = true;\n flushTextContentItem();\n } else {\n textContent.items.push({\n str: \"\",\n dir: \"ltr\",\n width: 0,\n height: 0,\n transform: getCurrentTextTransform(),\n fontName: textState.font.loadedName,\n hasEOL: true,\n });\n }\n }\n\n function addFakeSpaces(width, transf, textOrientation) {\n if (\n textOrientation * textContentItem.spaceInFlowMin <= width &&\n width <= textOrientation * textContentItem.spaceInFlowMax\n ) {\n if (textContentItem.initialized) {\n resetLastChars();\n textContentItem.str.push(\" \");\n }\n return false;\n }\n\n const fontName = textContentItem.fontName;\n\n let height = 0;\n if (textContentItem.vertical) {\n height = width;\n width = 0;\n }\n\n flushTextContentItem();\n resetLastChars();\n textContent.items.push({\n str: \" \",\n // TODO: check if using the orientation from last chunk is\n // better or not.\n dir: \"ltr\",\n width: Math.abs(width),\n height: Math.abs(height),\n transform: transf || getCurrentTextTransform(),\n fontName,\n hasEOL: false,\n });\n\n return true;\n }\n\n function flushTextContentItem() {\n if (!textContentItem.initialized || !textContentItem.str) {\n return;\n }\n\n // Do final text scaling.\n if (!textContentItem.vertical) {\n textContentItem.totalWidth +=\n textContentItem.width * textContentItem.textAdvanceScale;\n } else {\n textContentItem.totalHeight +=\n textContentItem.height * textContentItem.textAdvanceScale;\n }\n\n textContent.items.push(runBidiTransform(textContentItem));\n textContentItem.initialized = false;\n textContentItem.str.length = 0;\n }\n\n function enqueueChunk(batch = false) {\n const length = textContent.items.length;\n if (length === 0) {\n return;\n }\n if (batch && length < TEXT_CHUNK_BATCH_SIZE) {\n return;\n }\n sink.enqueue(textContent, length);\n textContent.items = [];\n textContent.styles = Object.create(null);\n }\n\n const timeSlotManager = new TimeSlotManager();\n\n return new Promise(function promiseBody(resolve, reject) {\n const next = function (promise) {\n enqueueChunk(/* batch = */ true);\n Promise.all([promise, sink.ready]).then(function () {\n try {\n promiseBody(resolve, reject);\n } catch (ex) {\n reject(ex);\n }\n }, reject);\n };\n task.ensureNotTerminated();\n timeSlotManager.reset();\n\n const operation = {};\n let stop,\n args = [];\n while (!(stop = timeSlotManager.check())) {\n // The arguments parsed by read() are not used beyond this loop, so\n // we can reuse the same array on every iteration, thus avoiding\n // unnecessary allocations.\n args.length = 0;\n operation.args = args;\n if (!preprocessor.read(operation)) {\n break;\n }\n textState = stateManager.state;\n const fn = operation.fn;\n args = operation.args;\n\n switch (fn | 0) {\n case OPS.setFont:\n // Optimization to ignore multiple identical Tf commands.\n var fontNameArg = args[0].name,\n fontSizeArg = args[1];\n if (\n textState.font &&\n fontNameArg === textState.fontName &&\n fontSizeArg === textState.fontSize\n ) {\n break;\n }\n\n flushTextContentItem();\n textState.fontName = fontNameArg;\n textState.fontSize = fontSizeArg;\n next(handleSetFont(fontNameArg, null));\n return;\n case OPS.setTextRise:\n textState.textRise = args[0];\n break;\n case OPS.setHScale:\n textState.textHScale = args[0] / 100;\n break;\n case OPS.setLeading:\n textState.leading = args[0];\n break;\n case OPS.moveText:\n textState.translateTextLineMatrix(args[0], args[1]);\n textState.textMatrix = textState.textLineMatrix.slice();\n break;\n case OPS.setLeadingMoveText:\n textState.leading = -args[1];\n textState.translateTextLineMatrix(args[0], args[1]);\n textState.textMatrix = textState.textLineMatrix.slice();\n break;\n case OPS.nextLine:\n textState.carriageReturn();\n break;\n case OPS.setTextMatrix:\n textState.setTextMatrix(\n args[0],\n args[1],\n args[2],\n args[3],\n args[4],\n args[5]\n );\n textState.setTextLineMatrix(\n args[0],\n args[1],\n args[2],\n args[3],\n args[4],\n args[5]\n );\n updateAdvanceScale();\n break;\n case OPS.setCharSpacing:\n textState.charSpacing = args[0];\n break;\n case OPS.setWordSpacing:\n textState.wordSpacing = args[0];\n break;\n case OPS.beginText:\n textState.textMatrix = IDENTITY_MATRIX.slice();\n textState.textLineMatrix = IDENTITY_MATRIX.slice();\n break;\n case OPS.showSpacedText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n const spaceFactor =\n ((textState.font.vertical ? 1 : -1) * textState.fontSize) / 1000;\n const elements = args[0];\n for (let i = 0, ii = elements.length; i < ii - 1; i++) {\n const item = elements[i];\n if (typeof item === \"string\") {\n showSpacedTextBuffer.push(item);\n } else if (typeof item === \"number\" && item !== 0) {\n // PDF Specification 5.3.2 states:\n // The number is expressed in thousandths of a unit of text\n // space.\n // This amount is subtracted from the current horizontal or\n // vertical coordinate, depending on the writing mode.\n // In the default coordinate system, a positive adjustment\n // has the effect of moving the next glyph painted either to\n // the left or down by the given amount.\n const str = showSpacedTextBuffer.join(\"\");\n showSpacedTextBuffer.length = 0;\n buildTextContentItem({\n chars: str,\n extraSpacing: item * spaceFactor,\n });\n }\n }\n\n const item = elements[elements.length - 1];\n if (typeof item === \"string\") {\n showSpacedTextBuffer.push(item);\n }\n\n if (showSpacedTextBuffer.length > 0) {\n const str = showSpacedTextBuffer.join(\"\");\n showSpacedTextBuffer.length = 0;\n buildTextContentItem({\n chars: str,\n extraSpacing: 0,\n });\n }\n break;\n case OPS.showText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n buildTextContentItem({\n chars: args[0],\n extraSpacing: 0,\n });\n break;\n case OPS.nextLineShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n textState.carriageReturn();\n buildTextContentItem({\n chars: args[0],\n extraSpacing: 0,\n });\n break;\n case OPS.nextLineSetSpacingShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n textState.wordSpacing = args[0];\n textState.charSpacing = args[1];\n textState.carriageReturn();\n buildTextContentItem({\n chars: args[2],\n extraSpacing: 0,\n });\n break;\n case OPS.paintXObject:\n flushTextContentItem();\n if (!xobjs) {\n xobjs = resources.get(\"XObject\") || Dict.empty;\n }\n\n var isValidName = args[0] instanceof Name;\n var name = args[0].name;\n\n if (isValidName && emptyXObjectCache.getByName(name)) {\n break;\n }\n\n next(\n new Promise(function (resolveXObject, rejectXObject) {\n if (!isValidName) {\n throw new FormatError(\"XObject must be referred to by name.\");\n }\n\n let xobj = xobjs.getRaw(name);\n if (xobj instanceof Ref) {\n if (emptyXObjectCache.getByRef(xobj)) {\n resolveXObject();\n return;\n }\n\n const globalImage = self.globalImageCache.getData(\n xobj,\n self.pageIndex\n );\n if (globalImage) {\n resolveXObject();\n return;\n }\n\n xobj = xref.fetch(xobj);\n }\n\n if (!(xobj instanceof BaseStream)) {\n throw new FormatError(\"XObject should be a stream\");\n }\n\n const type = xobj.dict.get(\"Subtype\");\n if (!(type instanceof Name)) {\n throw new FormatError(\"XObject should have a Name subtype\");\n }\n\n if (type.name !== \"Form\") {\n emptyXObjectCache.set(name, xobj.dict.objId, true);\n\n resolveXObject();\n return;\n }\n\n // Use a new `StateManager` to prevent incorrect positioning\n // of textItems *after* the Form XObject, since errors in the\n // data can otherwise prevent `restore` operators from\n // executing.\n // NOTE: Only an issue when `options.ignoreErrors === true`.\n const currentState = stateManager.state.clone();\n const xObjStateManager = new StateManager(currentState);\n\n const matrix = xobj.dict.getArray(\"Matrix\");\n if (Array.isArray(matrix) && matrix.length === 6) {\n xObjStateManager.transform(matrix);\n }\n\n // Enqueue the `textContent` chunk before parsing the /Form\n // XObject.\n enqueueChunk();\n const sinkWrapper = {\n enqueueInvoked: false,\n\n enqueue(chunk, size) {\n this.enqueueInvoked = true;\n sink.enqueue(chunk, size);\n },\n\n get desiredSize() {\n return sink.desiredSize;\n },\n\n get ready() {\n return sink.ready;\n },\n };\n\n self\n .getTextContent({\n stream: xobj,\n task,\n resources: xobj.dict.get(\"Resources\") || resources,\n stateManager: xObjStateManager,\n combineTextItems,\n includeMarkedContent,\n sink: sinkWrapper,\n seenStyles,\n viewBox,\n })\n .then(function () {\n if (!sinkWrapper.enqueueInvoked) {\n emptyXObjectCache.set(name, xobj.dict.objId, true);\n }\n resolveXObject();\n }, rejectXObject);\n }).catch(function (reason) {\n if (reason instanceof AbortException) {\n return;\n }\n if (self.options.ignoreErrors) {\n // Error(s) in the XObject -- allow text-extraction to\n // continue.\n warn(`getTextContent - ignoring XObject: \"${reason}\".`);\n return;\n }\n throw reason;\n })\n );\n return;\n case OPS.setGState:\n isValidName = args[0] instanceof Name;\n name = args[0].name;\n\n if (isValidName && emptyGStateCache.getByName(name)) {\n break;\n }\n\n next(\n new Promise(function (resolveGState, rejectGState) {\n if (!isValidName) {\n throw new FormatError(\"GState must be referred to by name.\");\n }\n\n const extGState = resources.get(\"ExtGState\");\n if (!(extGState instanceof Dict)) {\n throw new FormatError(\"ExtGState should be a dictionary.\");\n }\n\n const gState = extGState.get(name);\n // TODO: Attempt to lookup cached GStates by reference as well,\n // if and only if there are PDF documents where doing so\n // would significantly improve performance.\n if (!(gState instanceof Dict)) {\n throw new FormatError(\"GState should be a dictionary.\");\n }\n\n const gStateFont = gState.get(\"Font\");\n if (!gStateFont) {\n emptyGStateCache.set(name, gState.objId, true);\n\n resolveGState();\n return;\n }\n flushTextContentItem();\n\n textState.fontName = null;\n textState.fontSize = gStateFont[1];\n handleSetFont(null, gStateFont[0]).then(\n resolveGState,\n rejectGState\n );\n }).catch(function (reason) {\n if (reason instanceof AbortException) {\n return;\n }\n if (self.options.ignoreErrors) {\n // Error(s) in the ExtGState -- allow text-extraction to\n // continue.\n warn(`getTextContent - ignoring ExtGState: \"${reason}\".`);\n return;\n }\n throw reason;\n })\n );\n return;\n case OPS.beginMarkedContent:\n if (includeMarkedContent) {\n textContent.items.push({\n type: \"beginMarkedContent\",\n tag: args[0] instanceof Name ? args[0].name : null,\n });\n }\n break;\n case OPS.beginMarkedContentProps:\n if (includeMarkedContent) {\n flushTextContentItem();\n let mcid = null;\n if (args[1] instanceof Dict) {\n mcid = args[1].get(\"MCID\");\n }\n textContent.items.push({\n type: \"beginMarkedContentProps\",\n id: Number.isInteger(mcid)\n ? `${self.idFactory.getPageObjId()}_mcid${mcid}`\n : null,\n tag: args[0] instanceof Name ? args[0].name : null,\n });\n }\n break;\n case OPS.endMarkedContent:\n if (includeMarkedContent) {\n flushTextContentItem();\n textContent.items.push({\n type: \"endMarkedContent\",\n });\n }\n break;\n } // switch\n if (textContent.items.length >= sink.desiredSize) {\n // Wait for ready, if we reach highWaterMark.\n stop = true;\n break;\n }\n } // while\n if (stop) {\n next(deferred);\n return;\n }\n flushTextContentItem();\n enqueueChunk();\n resolve();\n }).catch(reason => {\n if (reason instanceof AbortException) {\n return;\n }\n if (this.options.ignoreErrors) {\n // Error(s) in the TextContent -- allow text-extraction to continue.\n warn(\n `getTextContent - ignoring errors during \"${task.name}\" ` +\n `task: \"${reason}\".`\n );\n\n flushTextContentItem();\n enqueueChunk();\n return;\n }\n throw reason;\n });\n }\n\n extractDataStructures(dict, baseDict, properties) {\n const xref = this.xref;\n let cidToGidBytes;\n // 9.10.2\n const toUnicodePromise = this.readToUnicode(\n properties.toUnicode || dict.get(\"ToUnicode\") || baseDict.get(\"ToUnicode\")\n );\n\n if (properties.composite) {\n // CIDSystemInfo helps to match CID to glyphs\n const cidSystemInfo = dict.get(\"CIDSystemInfo\");\n if (cidSystemInfo instanceof Dict) {\n properties.cidSystemInfo = {\n registry: stringToPDFString(cidSystemInfo.get(\"Registry\")),\n ordering: stringToPDFString(cidSystemInfo.get(\"Ordering\")),\n supplement: cidSystemInfo.get(\"Supplement\"),\n };\n }\n\n const cidToGidMap = dict.get(\"CIDToGIDMap\");\n if (cidToGidMap instanceof BaseStream) {\n cidToGidBytes = cidToGidMap.getBytes();\n }\n }\n\n // Based on 9.6.6 of the spec the encoding can come from multiple places\n // and depends on the font type. The base encoding and differences are\n // read here, but the encoding that is actually used is chosen during\n // glyph mapping in the font.\n // TODO: Loading the built in encoding in the font would allow the\n // differences to be merged in here not require us to hold on to it.\n const differences = [];\n let baseEncodingName = null;\n let encoding;\n if (dict.has(\"Encoding\")) {\n encoding = dict.get(\"Encoding\");\n if (encoding instanceof Dict) {\n baseEncodingName = encoding.get(\"BaseEncoding\");\n baseEncodingName =\n baseEncodingName instanceof Name ? baseEncodingName.name : null;\n // Load the differences between the base and original\n if (encoding.has(\"Differences\")) {\n const diffEncoding = encoding.get(\"Differences\");\n let index = 0;\n for (let j = 0, jj = diffEncoding.length; j < jj; j++) {\n const data = xref.fetchIfRef(diffEncoding[j]);\n if (typeof data === \"number\") {\n index = data;\n } else if (data instanceof Name) {\n differences[index++] = data.name;\n } else {\n throw new FormatError(\n `Invalid entry in 'Differences' array: ${data}`\n );\n }\n }\n }\n } else if (encoding instanceof Name) {\n baseEncodingName = encoding.name;\n } else {\n const msg = \"Encoding is not a Name nor a Dict\";\n\n if (!this.options.ignoreErrors) {\n throw new FormatError(msg);\n }\n warn(msg);\n }\n // According to table 114 if the encoding is a named encoding it must be\n // one of these predefined encodings.\n if (\n baseEncodingName !== \"MacRomanEncoding\" &&\n baseEncodingName !== \"MacExpertEncoding\" &&\n baseEncodingName !== \"WinAnsiEncoding\"\n ) {\n baseEncodingName = null;\n }\n }\n\n if (baseEncodingName) {\n properties.defaultEncoding = getEncoding(baseEncodingName);\n } else {\n const isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n const isNonsymbolicFont = !!(properties.flags & FontFlags.Nonsymbolic);\n // According to \"Table 114\" in section \"9.6.6.1 General\" (under\n // \"9.6.6 Character Encoding\") of the PDF specification, a Nonsymbolic\n // font should use the `StandardEncoding` if no encoding is specified.\n encoding = StandardEncoding;\n if (properties.type === \"TrueType\" && !isNonsymbolicFont) {\n encoding = WinAnsiEncoding;\n }\n // The Symbolic attribute can be misused for regular fonts\n // Heuristic: we have to check if the font is a standard one also\n if (isSymbolicFont) {\n encoding = MacRomanEncoding;\n if (!properties.file || properties.isInternalFont) {\n if (/Symbol/i.test(properties.name)) {\n encoding = SymbolSetEncoding;\n } else if (/Dingbats|Wingdings/i.test(properties.name)) {\n encoding = ZapfDingbatsEncoding;\n }\n }\n }\n properties.defaultEncoding = encoding;\n }\n\n properties.differences = differences;\n properties.baseEncodingName = baseEncodingName;\n properties.hasEncoding = !!baseEncodingName || differences.length > 0;\n properties.dict = dict;\n return toUnicodePromise\n .then(readToUnicode => {\n properties.toUnicode = readToUnicode;\n return this.buildToUnicode(properties);\n })\n .then(builtToUnicode => {\n properties.toUnicode = builtToUnicode;\n if (cidToGidBytes) {\n properties.cidToGidMap = this.readCidToGidMap(\n cidToGidBytes,\n builtToUnicode\n );\n }\n return properties;\n });\n }\n\n /**\n * @returns {Array}\n * @private\n */\n _simpleFontToUnicode(properties, forceGlyphs = false) {\n assert(!properties.composite, \"Must be a simple font.\");\n\n const toUnicode = [];\n const encoding = properties.defaultEncoding.slice();\n const baseEncodingName = properties.baseEncodingName;\n // Merge in the differences array.\n const differences = properties.differences;\n for (const charcode in differences) {\n const glyphName = differences[charcode];\n if (glyphName === \".notdef\") {\n // Skip .notdef to prevent rendering errors, e.g. boxes appearing\n // where there should be spaces (fixes issue5256.pdf).\n continue;\n }\n encoding[charcode] = glyphName;\n }\n const glyphsUnicodeMap = getGlyphsUnicode();\n for (const charcode in encoding) {\n // a) Map the character code to a character name.\n let glyphName = encoding[charcode];\n // b) Look up the character name in the Adobe Glyph List (see the\n // Bibliography) to obtain the corresponding Unicode value.\n if (glyphName === \"\") {\n continue;\n } else if (glyphsUnicodeMap[glyphName] === undefined) {\n // (undocumented) c) Few heuristics to recognize unknown glyphs\n // NOTE: Adobe Reader does not do this step, but OSX Preview does\n let code = 0;\n switch (glyphName[0]) {\n case \"G\": // Gxx glyph\n if (glyphName.length === 3) {\n code = parseInt(glyphName.substring(1), 16);\n }\n break;\n case \"g\": // g00xx glyph\n if (glyphName.length === 5) {\n code = parseInt(glyphName.substring(1), 16);\n }\n break;\n case \"C\": // Cdd{d} glyph\n case \"c\": // cdd{d} glyph\n if (glyphName.length >= 3 && glyphName.length <= 4) {\n const codeStr = glyphName.substring(1);\n\n if (forceGlyphs) {\n code = parseInt(codeStr, 16);\n break;\n }\n // Normally the Cdd{d}/cdd{d} glyphName format will contain\n // regular, i.e. base 10, charCodes (see issue4550.pdf)...\n code = +codeStr;\n\n // ... however some PDF generators violate that assumption by\n // containing glyph, i.e. base 16, codes instead.\n // In that case we need to re-parse the *entire* encoding to\n // prevent broken text-selection (fixes issue9655_reduced.pdf).\n if (\n Number.isNaN(code) &&\n Number.isInteger(parseInt(codeStr, 16))\n ) {\n return this._simpleFontToUnicode(\n properties,\n /* forceGlyphs */ true\n );\n }\n }\n break;\n default: // 'uniXXXX'/'uXXXX{XX}' glyphs\n const unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap);\n if (unicode !== -1) {\n code = unicode;\n }\n }\n if (code > 0 && code <= 0x10ffff && Number.isInteger(code)) {\n // If `baseEncodingName` is one the predefined encodings, and `code`\n // equals `charcode`, using the glyph defined in the baseEncoding\n // seems to yield a better `toUnicode` mapping (fixes issue 5070).\n if (baseEncodingName && code === +charcode) {\n const baseEncoding = getEncoding(baseEncodingName);\n if (baseEncoding && (glyphName = baseEncoding[charcode])) {\n toUnicode[charcode] = String.fromCharCode(\n glyphsUnicodeMap[glyphName]\n );\n continue;\n }\n }\n toUnicode[charcode] = String.fromCodePoint(code);\n }\n continue;\n }\n toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]);\n }\n return toUnicode;\n }\n\n /**\n * Builds a char code to unicode map based on section 9.10 of the spec.\n * @param {Object} properties Font properties object.\n * @returns {Promise} A Promise that is resolved with a\n * {ToUnicodeMap|IdentityToUnicodeMap} object.\n */\n async buildToUnicode(properties) {\n properties.hasIncludedToUnicodeMap =\n !!properties.toUnicode && properties.toUnicode.length > 0;\n\n // Section 9.10.2 Mapping Character Codes to Unicode Values\n if (properties.hasIncludedToUnicodeMap) {\n // Some fonts contain incomplete ToUnicode data, causing issues with\n // text-extraction. For simple fonts, containing encoding information,\n // use a fallback ToUnicode map to improve this (fixes issue8229.pdf).\n if (!properties.composite && properties.hasEncoding) {\n properties.fallbackToUnicode = this._simpleFontToUnicode(properties);\n }\n return properties.toUnicode;\n }\n\n // According to the spec if the font is a simple font we should only map\n // to unicode if the base encoding is MacRoman, MacExpert, or WinAnsi or\n // the differences array only contains adobe standard or symbol set names,\n // in pratice it seems better to always try to create a toUnicode map\n // based of the default encoding.\n if (!properties.composite /* is simple font */) {\n return new ToUnicodeMap(this._simpleFontToUnicode(properties));\n }\n\n // If the font is a composite font that uses one of the predefined CMaps\n // listed in Table 118 (except Identity–H and Identity–V) or whose\n // descendant CIDFont uses the Adobe-GB1, Adobe-CNS1, Adobe-Japan1, or\n // Adobe-Korea1 character collection:\n if (\n properties.composite &&\n ((properties.cMap.builtInCMap &&\n !(properties.cMap instanceof IdentityCMap)) ||\n (properties.cidSystemInfo.registry === \"Adobe\" &&\n (properties.cidSystemInfo.ordering === \"GB1\" ||\n properties.cidSystemInfo.ordering === \"CNS1\" ||\n properties.cidSystemInfo.ordering === \"Japan1\" ||\n properties.cidSystemInfo.ordering === \"Korea1\")))\n ) {\n // Then:\n // a) Map the character code to a character identifier (CID) according\n // to the font’s CMap.\n // b) Obtain the registry and ordering of the character collection used\n // by the font’s CMap (for example, Adobe and Japan1) from its\n // CIDSystemInfo dictionary.\n const { registry, ordering } = properties.cidSystemInfo;\n // c) Construct a second CMap name by concatenating the registry and\n // ordering obtained in step (b) in the format registry–ordering–UCS2\n // (for example, Adobe–Japan1–UCS2).\n const ucs2CMapName = Name.get(`${registry}-${ordering}-UCS2`);\n // d) Obtain the CMap with the name constructed in step (c) (available\n // from the ASN Web site; see the Bibliography).\n const ucs2CMap = await CMapFactory.create({\n encoding: ucs2CMapName,\n fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n useCMap: null,\n });\n const toUnicode = [];\n properties.cMap.forEach(function (charcode, cid) {\n if (cid > 0xffff) {\n throw new FormatError(\"Max size of CID is 65,535\");\n }\n // e) Map the CID obtained in step (a) according to the CMap\n // obtained in step (d), producing a Unicode value.\n const ucs2 = ucs2CMap.lookup(cid);\n if (ucs2) {\n toUnicode[charcode] = String.fromCharCode(\n (ucs2.charCodeAt(0) << 8) + ucs2.charCodeAt(1)\n );\n }\n });\n return new ToUnicodeMap(toUnicode);\n }\n\n // The viewer's choice, just use an identity map.\n return new IdentityToUnicodeMap(properties.firstChar, properties.lastChar);\n }\n\n readToUnicode(cmapObj) {\n if (!cmapObj) {\n return Promise.resolve(null);\n }\n if (cmapObj instanceof Name) {\n return CMapFactory.create({\n encoding: cmapObj,\n fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n useCMap: null,\n }).then(function (cmap) {\n if (cmap instanceof IdentityCMap) {\n return new IdentityToUnicodeMap(0, 0xffff);\n }\n return new ToUnicodeMap(cmap.getMap());\n });\n } else if (cmapObj instanceof BaseStream) {\n return CMapFactory.create({\n encoding: cmapObj,\n fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n useCMap: null,\n }).then(\n function (cmap) {\n if (cmap instanceof IdentityCMap) {\n return new IdentityToUnicodeMap(0, 0xffff);\n }\n const map = new Array(cmap.length);\n // Convert UTF-16BE\n // NOTE: cmap can be a sparse array, so use forEach instead of\n // `for(;;)` to iterate over all keys.\n cmap.forEach(function (charCode, token) {\n // Some cmaps contain *only* CID characters (fixes issue9367.pdf).\n if (typeof token === \"number\") {\n map[charCode] = String.fromCodePoint(token);\n return;\n }\n const str = [];\n for (let k = 0; k < token.length; k += 2) {\n const w1 = (token.charCodeAt(k) << 8) | token.charCodeAt(k + 1);\n if ((w1 & 0xf800) !== 0xd800) {\n // w1 < 0xD800 || w1 > 0xDFFF\n str.push(w1);\n continue;\n }\n k += 2;\n const w2 = (token.charCodeAt(k) << 8) | token.charCodeAt(k + 1);\n str.push(((w1 & 0x3ff) << 10) + (w2 & 0x3ff) + 0x10000);\n }\n map[charCode] = String.fromCodePoint.apply(String, str);\n });\n return new ToUnicodeMap(map);\n },\n reason => {\n if (reason instanceof AbortException) {\n return null;\n }\n if (this.options.ignoreErrors) {\n // Error in the ToUnicode data -- sending unsupported feature\n // notification and allow font parsing to continue.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorFontToUnicode,\n });\n warn(`readToUnicode - ignoring ToUnicode data: \"${reason}\".`);\n return null;\n }\n throw reason;\n }\n );\n }\n return Promise.resolve(null);\n }\n\n readCidToGidMap(glyphsData, toUnicode) {\n // Extract the encoding from the CIDToGIDMap\n\n // Set encoding 0 to later verify the font has an encoding\n const result = [];\n for (let j = 0, jj = glyphsData.length; j < jj; j++) {\n const glyphID = (glyphsData[j++] << 8) | glyphsData[j];\n const code = j >> 1;\n if (glyphID === 0 && !toUnicode.has(code)) {\n continue;\n }\n result[code] = glyphID;\n }\n return result;\n }\n\n extractWidths(dict, descriptor, properties) {\n const xref = this.xref;\n let glyphsWidths = [];\n let defaultWidth = 0;\n const glyphsVMetrics = [];\n let defaultVMetrics;\n let i, ii, j, jj, start, code, widths;\n if (properties.composite) {\n defaultWidth = dict.has(\"DW\") ? dict.get(\"DW\") : 1000;\n\n widths = dict.get(\"W\");\n if (widths) {\n for (i = 0, ii = widths.length; i < ii; i++) {\n start = xref.fetchIfRef(widths[i++]);\n code = xref.fetchIfRef(widths[i]);\n if (Array.isArray(code)) {\n for (j = 0, jj = code.length; j < jj; j++) {\n glyphsWidths[start++] = xref.fetchIfRef(code[j]);\n }\n } else {\n const width = xref.fetchIfRef(widths[++i]);\n for (j = start; j <= code; j++) {\n glyphsWidths[j] = width;\n }\n }\n }\n }\n\n if (properties.vertical) {\n let vmetrics = dict.getArray(\"DW2\") || [880, -1000];\n defaultVMetrics = [vmetrics[1], defaultWidth * 0.5, vmetrics[0]];\n vmetrics = dict.get(\"W2\");\n if (vmetrics) {\n for (i = 0, ii = vmetrics.length; i < ii; i++) {\n start = xref.fetchIfRef(vmetrics[i++]);\n code = xref.fetchIfRef(vmetrics[i]);\n if (Array.isArray(code)) {\n for (j = 0, jj = code.length; j < jj; j++) {\n glyphsVMetrics[start++] = [\n xref.fetchIfRef(code[j++]),\n xref.fetchIfRef(code[j++]),\n xref.fetchIfRef(code[j]),\n ];\n }\n } else {\n const vmetric = [\n xref.fetchIfRef(vmetrics[++i]),\n xref.fetchIfRef(vmetrics[++i]),\n xref.fetchIfRef(vmetrics[++i]),\n ];\n for (j = start; j <= code; j++) {\n glyphsVMetrics[j] = vmetric;\n }\n }\n }\n }\n }\n } else {\n const firstChar = properties.firstChar;\n widths = dict.get(\"Widths\");\n if (widths) {\n j = firstChar;\n for (i = 0, ii = widths.length; i < ii; i++) {\n glyphsWidths[j++] = xref.fetchIfRef(widths[i]);\n }\n defaultWidth = parseFloat(descriptor.get(\"MissingWidth\")) || 0;\n } else {\n // Trying get the BaseFont metrics (see comment above).\n const baseFontName = dict.get(\"BaseFont\");\n if (baseFontName instanceof Name) {\n const metrics = this.getBaseFontMetrics(baseFontName.name);\n\n glyphsWidths = this.buildCharCodeToWidth(metrics.widths, properties);\n defaultWidth = metrics.defaultWidth;\n }\n }\n }\n\n // Heuristic: detection of monospace font by checking all non-zero widths\n let isMonospace = true;\n let firstWidth = defaultWidth;\n for (const glyph in glyphsWidths) {\n const glyphWidth = glyphsWidths[glyph];\n if (!glyphWidth) {\n continue;\n }\n if (!firstWidth) {\n firstWidth = glyphWidth;\n continue;\n }\n if (firstWidth !== glyphWidth) {\n isMonospace = false;\n break;\n }\n }\n if (isMonospace) {\n properties.flags |= FontFlags.FixedPitch;\n }\n\n properties.defaultWidth = defaultWidth;\n properties.widths = glyphsWidths;\n properties.defaultVMetrics = defaultVMetrics;\n properties.vmetrics = glyphsVMetrics;\n }\n\n isSerifFont(baseFontName) {\n // Simulating descriptor flags attribute\n const fontNameWoStyle = baseFontName.split(\"-\")[0];\n return (\n fontNameWoStyle in getSerifFonts() ||\n fontNameWoStyle.search(/serif/gi) !== -1\n );\n }\n\n getBaseFontMetrics(name) {\n let defaultWidth = 0;\n let widths = Object.create(null);\n let monospace = false;\n const stdFontMap = getStdFontMap();\n let lookupName = stdFontMap[name] || name;\n const Metrics = getMetrics();\n\n if (!(lookupName in Metrics)) {\n // Use default fonts for looking up font metrics if the passed\n // font is not a base font\n if (this.isSerifFont(name)) {\n lookupName = \"Times-Roman\";\n } else {\n lookupName = \"Helvetica\";\n }\n }\n const glyphWidths = Metrics[lookupName];\n\n if (typeof glyphWidths === \"number\") {\n defaultWidth = glyphWidths;\n monospace = true;\n } else {\n widths = glyphWidths(); // expand lazy widths array\n }\n\n return {\n defaultWidth,\n monospace,\n widths,\n };\n }\n\n buildCharCodeToWidth(widthsByGlyphName, properties) {\n const widths = Object.create(null);\n const differences = properties.differences;\n const encoding = properties.defaultEncoding;\n for (let charCode = 0; charCode < 256; charCode++) {\n if (charCode in differences && widthsByGlyphName[differences[charCode]]) {\n widths[charCode] = widthsByGlyphName[differences[charCode]];\n continue;\n }\n if (charCode in encoding && widthsByGlyphName[encoding[charCode]]) {\n widths[charCode] = widthsByGlyphName[encoding[charCode]];\n continue;\n }\n }\n return widths;\n }\n\n preEvaluateFont(dict) {\n const baseDict = dict;\n let type = dict.get(\"Subtype\");\n if (!(type instanceof Name)) {\n throw new FormatError(\"invalid font Subtype\");\n }\n\n let composite = false;\n let hash, toUnicode;\n if (type.name === \"Type0\") {\n // If font is a composite\n // - get the descendant font\n // - set the type according to the descendant font\n // - get the FontDescriptor from the descendant font\n const df = dict.get(\"DescendantFonts\");\n if (!df) {\n throw new FormatError(\"Descendant fonts are not specified\");\n }\n dict = Array.isArray(df) ? this.xref.fetchIfRef(df[0]) : df;\n\n if (!(dict instanceof Dict)) {\n throw new FormatError(\"Descendant font is not a dictionary.\");\n }\n type = dict.get(\"Subtype\");\n if (!(type instanceof Name)) {\n throw new FormatError(\"invalid font Subtype\");\n }\n composite = true;\n }\n\n const firstChar = dict.get(\"FirstChar\") || 0,\n lastChar = dict.get(\"LastChar\") || (composite ? 0xffff : 0xff);\n const descriptor = dict.get(\"FontDescriptor\");\n if (descriptor) {\n hash = new MurmurHash3_64();\n\n const encoding = baseDict.getRaw(\"Encoding\");\n if (encoding instanceof Name) {\n hash.update(encoding.name);\n } else if (encoding instanceof Ref) {\n hash.update(encoding.toString());\n } else if (encoding instanceof Dict) {\n for (const entry of encoding.getRawValues()) {\n if (entry instanceof Name) {\n hash.update(entry.name);\n } else if (entry instanceof Ref) {\n hash.update(entry.toString());\n } else if (Array.isArray(entry)) {\n // 'Differences' array (fixes bug1157493.pdf).\n const diffLength = entry.length,\n diffBuf = new Array(diffLength);\n\n for (let j = 0; j < diffLength; j++) {\n const diffEntry = entry[j];\n if (diffEntry instanceof Name) {\n diffBuf[j] = diffEntry.name;\n } else if (\n typeof diffEntry === \"number\" ||\n diffEntry instanceof Ref\n ) {\n diffBuf[j] = diffEntry.toString();\n }\n }\n hash.update(diffBuf.join());\n }\n }\n }\n\n hash.update(`${firstChar}-${lastChar}`); // Fixes issue10665_reduced.pdf\n\n toUnicode = dict.get(\"ToUnicode\") || baseDict.get(\"ToUnicode\");\n if (toUnicode instanceof BaseStream) {\n const stream = toUnicode.str || toUnicode;\n const uint8array = stream.buffer\n ? new Uint8Array(stream.buffer.buffer, 0, stream.bufferLength)\n : new Uint8Array(\n stream.bytes.buffer,\n stream.start,\n stream.end - stream.start\n );\n hash.update(uint8array);\n } else if (toUnicode instanceof Name) {\n hash.update(toUnicode.name);\n }\n\n const widths = dict.get(\"Widths\") || baseDict.get(\"Widths\");\n if (Array.isArray(widths)) {\n const widthsBuf = [];\n for (const entry of widths) {\n if (typeof entry === \"number\" || entry instanceof Ref) {\n widthsBuf.push(entry.toString());\n }\n }\n hash.update(widthsBuf.join());\n }\n\n if (composite) {\n hash.update(\"compositeFont\");\n\n const compositeWidths = dict.get(\"W\") || baseDict.get(\"W\");\n if (Array.isArray(compositeWidths)) {\n const widthsBuf = [];\n for (const entry of compositeWidths) {\n if (typeof entry === \"number\" || entry instanceof Ref) {\n widthsBuf.push(entry.toString());\n } else if (Array.isArray(entry)) {\n const subWidthsBuf = [];\n for (const element of entry) {\n if (typeof element === \"number\" || element instanceof Ref) {\n subWidthsBuf.push(element.toString());\n }\n }\n widthsBuf.push(`[${subWidthsBuf.join()}]`);\n }\n }\n hash.update(widthsBuf.join());\n }\n\n const cidToGidMap =\n dict.getRaw(\"CIDToGIDMap\") || baseDict.getRaw(\"CIDToGIDMap\");\n if (cidToGidMap instanceof Name) {\n hash.update(cidToGidMap.name);\n } else if (cidToGidMap instanceof Ref) {\n hash.update(cidToGidMap.toString());\n } else if (cidToGidMap instanceof BaseStream) {\n hash.update(cidToGidMap.peekBytes());\n }\n }\n }\n\n return {\n descriptor,\n dict,\n baseDict,\n composite,\n type: type.name,\n firstChar,\n lastChar,\n toUnicode,\n hash: hash ? hash.hexdigest() : \"\",\n };\n }\n\n async translateFont({\n descriptor,\n dict,\n baseDict,\n composite,\n type,\n firstChar,\n lastChar,\n toUnicode,\n cssFontInfo,\n }) {\n const isType3Font = type === \"Type3\";\n let properties;\n\n if (!descriptor) {\n if (isType3Font) {\n // FontDescriptor is only required for Type3 fonts when the document\n // is a tagged pdf. Create a barbebones one to get by.\n descriptor = new Dict(null);\n descriptor.set(\"FontName\", Name.get(type));\n descriptor.set(\"FontBBox\", dict.getArray(\"FontBBox\") || [0, 0, 0, 0]);\n } else {\n // Before PDF 1.5 if the font was one of the base 14 fonts, having a\n // FontDescriptor was not required.\n // This case is here for compatibility.\n let baseFontName = dict.get(\"BaseFont\");\n if (!(baseFontName instanceof Name)) {\n throw new FormatError(\"Base font is not specified\");\n }\n\n // Using base font name as a font name.\n baseFontName = baseFontName.name.replace(/[,_]/g, \"-\");\n const metrics = this.getBaseFontMetrics(baseFontName);\n\n // Simulating descriptor flags attribute\n const fontNameWoStyle = baseFontName.split(\"-\")[0];\n const flags =\n (this.isSerifFont(fontNameWoStyle) ? FontFlags.Serif : 0) |\n (metrics.monospace ? FontFlags.FixedPitch : 0) |\n (getSymbolsFonts()[fontNameWoStyle]\n ? FontFlags.Symbolic\n : FontFlags.Nonsymbolic);\n\n properties = {\n type,\n name: baseFontName,\n loadedName: baseDict.loadedName,\n widths: metrics.widths,\n defaultWidth: metrics.defaultWidth,\n isSimulatedFlags: true,\n flags,\n firstChar,\n lastChar,\n toUnicode,\n xHeight: 0,\n capHeight: 0,\n italicAngle: 0,\n isType3Font,\n };\n const widths = dict.get(\"Widths\");\n\n const standardFontName = getStandardFontName(baseFontName);\n let file = null;\n if (standardFontName) {\n properties.isStandardFont = true;\n file = await this.fetchStandardFontData(standardFontName);\n properties.isInternalFont = !!file;\n }\n return this.extractDataStructures(dict, dict, properties).then(\n newProperties => {\n if (widths) {\n const glyphWidths = [];\n let j = firstChar;\n for (let i = 0, ii = widths.length; i < ii; i++) {\n glyphWidths[j++] = this.xref.fetchIfRef(widths[i]);\n }\n newProperties.widths = glyphWidths;\n } else {\n newProperties.widths = this.buildCharCodeToWidth(\n metrics.widths,\n newProperties\n );\n }\n return new Font(baseFontName, file, newProperties);\n }\n );\n }\n }\n\n // According to the spec if 'FontDescriptor' is declared, 'FirstChar',\n // 'LastChar' and 'Widths' should exist too, but some PDF encoders seem\n // to ignore this rule when a variant of a standard font is used.\n // TODO Fill the width array depending on which of the base font this is\n // a variant.\n\n let fontName = descriptor.get(\"FontName\");\n let baseFont = dict.get(\"BaseFont\");\n // Some bad PDFs have a string as the font name.\n if (typeof fontName === \"string\") {\n fontName = Name.get(fontName);\n }\n if (typeof baseFont === \"string\") {\n baseFont = Name.get(baseFont);\n }\n\n if (!isType3Font) {\n const fontNameStr = fontName && fontName.name;\n const baseFontStr = baseFont && baseFont.name;\n if (fontNameStr !== baseFontStr) {\n info(\n `The FontDescriptor's FontName is \"${fontNameStr}\" but ` +\n `should be the same as the Font's BaseFont \"${baseFontStr}\".`\n );\n // Workaround for cases where e.g. fontNameStr = 'Arial' and\n // baseFontStr = 'Arial,Bold' (needed when no font file is embedded).\n if (fontNameStr && baseFontStr && baseFontStr.startsWith(fontNameStr)) {\n fontName = baseFont;\n }\n }\n }\n fontName = fontName || baseFont;\n\n if (!(fontName instanceof Name)) {\n throw new FormatError(\"invalid font name\");\n }\n\n let fontFile, subtype, length1, length2, length3;\n try {\n fontFile = descriptor.get(\"FontFile\", \"FontFile2\", \"FontFile3\");\n } catch (ex) {\n if (!this.options.ignoreErrors) {\n throw ex;\n }\n warn(`translateFont - fetching \"${fontName.name}\" font file: \"${ex}\".`);\n fontFile = new NullStream();\n }\n let isStandardFont = false;\n let isInternalFont = false;\n let glyphScaleFactors = null;\n if (fontFile) {\n if (fontFile.dict) {\n const subtypeEntry = fontFile.dict.get(\"Subtype\");\n if (subtypeEntry instanceof Name) {\n subtype = subtypeEntry.name;\n }\n length1 = fontFile.dict.get(\"Length1\");\n length2 = fontFile.dict.get(\"Length2\");\n length3 = fontFile.dict.get(\"Length3\");\n }\n } else if (cssFontInfo) {\n // We've a missing XFA font.\n const standardFontName = getXfaFontName(fontName.name);\n if (standardFontName) {\n cssFontInfo.fontFamily = `${cssFontInfo.fontFamily}-PdfJS-XFA`;\n cssFontInfo.metrics = standardFontName.metrics || null;\n glyphScaleFactors = standardFontName.factors || null;\n fontFile = await this.fetchStandardFontData(standardFontName.name);\n isInternalFont = !!fontFile;\n\n // We're using a substitution font but for example widths (if any)\n // are related to the glyph positions in the font.\n // So we overwrite everything here to be sure that widths are\n // correct.\n baseDict = dict = getXfaFontDict(fontName.name);\n composite = true;\n }\n } else if (!isType3Font) {\n const standardFontName = getStandardFontName(fontName.name);\n if (standardFontName) {\n isStandardFont = true;\n fontFile = await this.fetchStandardFontData(standardFontName);\n isInternalFont = !!fontFile;\n }\n }\n\n properties = {\n type,\n name: fontName.name,\n subtype,\n file: fontFile,\n length1,\n length2,\n length3,\n isStandardFont,\n isInternalFont,\n loadedName: baseDict.loadedName,\n composite,\n fixedPitch: false,\n fontMatrix: dict.getArray(\"FontMatrix\") || FONT_IDENTITY_MATRIX,\n firstChar,\n lastChar,\n toUnicode,\n bbox: descriptor.getArray(\"FontBBox\") || dict.getArray(\"FontBBox\"),\n ascent: descriptor.get(\"Ascent\"),\n descent: descriptor.get(\"Descent\"),\n xHeight: descriptor.get(\"XHeight\") || 0,\n capHeight: descriptor.get(\"CapHeight\") || 0,\n flags: descriptor.get(\"Flags\"),\n italicAngle: descriptor.get(\"ItalicAngle\") || 0,\n isType3Font,\n cssFontInfo,\n scaleFactors: glyphScaleFactors,\n };\n\n if (composite) {\n const cidEncoding = baseDict.get(\"Encoding\");\n if (cidEncoding instanceof Name) {\n properties.cidEncoding = cidEncoding.name;\n }\n const cMap = await CMapFactory.create({\n encoding: cidEncoding,\n fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n useCMap: null,\n });\n properties.cMap = cMap;\n properties.vertical = properties.cMap.vertical;\n }\n\n return this.extractDataStructures(dict, baseDict, properties).then(\n newProperties => {\n this.extractWidths(dict, descriptor, newProperties);\n\n return new Font(fontName.name, fontFile, newProperties);\n }\n );\n }\n\n static buildFontPaths(font, glyphs, handler, evaluatorOptions) {\n function buildPath(fontChar) {\n const glyphName = `${font.loadedName}_path_${fontChar}`;\n try {\n if (font.renderer.hasBuiltPath(fontChar)) {\n return;\n }\n handler.send(\"commonobj\", [\n glyphName,\n \"FontPath\",\n font.renderer.getPathJs(fontChar),\n ]);\n } catch (reason) {\n if (evaluatorOptions.ignoreErrors) {\n // Error in the font data -- sending unsupported feature notification\n // and allow glyph path building to continue.\n handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorFontBuildPath,\n });\n warn(`buildFontPaths - ignoring ${glyphName} glyph: \"${reason}\".`);\n return;\n }\n throw reason;\n }\n }\n\n for (const glyph of glyphs) {\n buildPath(glyph.fontChar);\n\n // If the glyph has an accent we need to build a path for its\n // fontChar too, otherwise CanvasGraphics_paintChar will fail.\n const accent = glyph.accent;\n if (accent && accent.fontChar) {\n buildPath(accent.fontChar);\n }\n }\n }\n\n static get fallbackFontDict() {\n const dict = new Dict();\n dict.set(\"BaseFont\", Name.get(\"PDFJS-FallbackFont\"));\n dict.set(\"Type\", Name.get(\"FallbackType\"));\n dict.set(\"Subtype\", Name.get(\"FallbackType\"));\n dict.set(\"Encoding\", Name.get(\"WinAnsiEncoding\"));\n\n return shadow(this, \"fallbackFontDict\", dict);\n }\n}\n\nclass TranslatedFont {\n constructor({ loadedName, font, dict, evaluatorOptions }) {\n this.loadedName = loadedName;\n this.font = font;\n this.dict = dict;\n this._evaluatorOptions = evaluatorOptions || DefaultPartialEvaluatorOptions;\n this.type3Loaded = null;\n this.type3Dependencies = font.isType3Font ? new Set() : null;\n this.sent = false;\n }\n\n send(handler) {\n if (this.sent) {\n return;\n }\n this.sent = true;\n\n handler.send(\"commonobj\", [\n this.loadedName,\n \"Font\",\n this.font.exportData(this._evaluatorOptions.fontExtraProperties),\n ]);\n }\n\n fallback(handler) {\n if (!this.font.data) {\n return;\n }\n // When font loading failed, fall back to the built-in font renderer.\n this.font.disableFontFace = true;\n // An arbitrary number of text rendering operators could have been\n // encountered between the point in time when the 'Font' message was sent\n // to the main-thread, and the point in time when the 'FontFallback'\n // message was received on the worker-thread.\n // To ensure that all 'FontPath's are available on the main-thread, when\n // font loading failed, attempt to resend *all* previously parsed glyphs.\n PartialEvaluator.buildFontPaths(\n this.font,\n /* glyphs = */ this.font.glyphCacheValues,\n handler,\n this._evaluatorOptions\n );\n }\n\n loadType3Data(evaluator, resources, task) {\n if (this.type3Loaded) {\n return this.type3Loaded;\n }\n if (!this.font.isType3Font) {\n throw new Error(\"Must be a Type3 font.\");\n }\n // When parsing Type3 glyphs, always ignore them if there are errors.\n // Compared to the parsing of e.g. an entire page, it doesn't really\n // make sense to only be able to render a Type3 glyph partially.\n const type3Evaluator = evaluator.clone({ ignoreErrors: false });\n type3Evaluator.parsingType3Font = true;\n // Prevent circular references in Type3 fonts.\n const type3FontRefs = new RefSet(evaluator.type3FontRefs);\n if (this.dict.objId && !type3FontRefs.has(this.dict.objId)) {\n type3FontRefs.put(this.dict.objId);\n }\n type3Evaluator.type3FontRefs = type3FontRefs;\n\n const translatedFont = this.font,\n type3Dependencies = this.type3Dependencies;\n let loadCharProcsPromise = Promise.resolve();\n const charProcs = this.dict.get(\"CharProcs\");\n const fontResources = this.dict.get(\"Resources\") || resources;\n const charProcOperatorList = Object.create(null);\n\n const isEmptyBBox =\n !translatedFont.bbox || isArrayEqual(translatedFont.bbox, [0, 0, 0, 0]);\n\n for (const key of charProcs.getKeys()) {\n loadCharProcsPromise = loadCharProcsPromise.then(() => {\n const glyphStream = charProcs.get(key);\n const operatorList = new OperatorList();\n return type3Evaluator\n .getOperatorList({\n stream: glyphStream,\n task,\n resources: fontResources,\n operatorList,\n })\n .then(() => {\n // According to the PDF specification, section \"9.6.5 Type 3 Fonts\"\n // and \"Table 113\":\n // \"A glyph description that begins with the d1 operator should\n // not execute any operators that set the colour (or other\n // colour-related parameters) in the graphics state;\n // any use of such operators shall be ignored.\"\n if (operatorList.fnArray[0] === OPS.setCharWidthAndBounds) {\n this._removeType3ColorOperators(operatorList, isEmptyBBox);\n }\n charProcOperatorList[key] = operatorList.getIR();\n\n for (const dependency of operatorList.dependencies) {\n type3Dependencies.add(dependency);\n }\n })\n .catch(function (reason) {\n warn(`Type3 font resource \"${key}\" is not available.`);\n const dummyOperatorList = new OperatorList();\n charProcOperatorList[key] = dummyOperatorList.getIR();\n });\n });\n }\n this.type3Loaded = loadCharProcsPromise.then(() => {\n translatedFont.charProcOperatorList = charProcOperatorList;\n if (this._bbox) {\n translatedFont.isCharBBox = true;\n translatedFont.bbox = this._bbox;\n }\n });\n return this.type3Loaded;\n }\n\n /**\n * @private\n */\n _removeType3ColorOperators(operatorList, isEmptyBBox = false) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n operatorList.fnArray[0] === OPS.setCharWidthAndBounds,\n \"Type3 glyph shall start with the d1 operator.\"\n );\n }\n if (isEmptyBBox) {\n if (!this._bbox) {\n this._bbox = [Infinity, Infinity, -Infinity, -Infinity];\n }\n const charBBox = Util.normalizeRect(operatorList.argsArray[0].slice(2));\n\n this._bbox[0] = Math.min(this._bbox[0], charBBox[0]);\n this._bbox[1] = Math.min(this._bbox[1], charBBox[1]);\n this._bbox[2] = Math.max(this._bbox[2], charBBox[2]);\n this._bbox[3] = Math.max(this._bbox[3], charBBox[3]);\n }\n let i = 1,\n ii = operatorList.length;\n while (i < ii) {\n switch (operatorList.fnArray[i]) {\n case OPS.setStrokeColorSpace:\n case OPS.setFillColorSpace:\n case OPS.setStrokeColor:\n case OPS.setStrokeColorN:\n case OPS.setFillColor:\n case OPS.setFillColorN:\n case OPS.setStrokeGray:\n case OPS.setFillGray:\n case OPS.setStrokeRGBColor:\n case OPS.setFillRGBColor:\n case OPS.setStrokeCMYKColor:\n case OPS.setFillCMYKColor:\n case OPS.shadingFill:\n case OPS.setRenderingIntent:\n operatorList.fnArray.splice(i, 1);\n operatorList.argsArray.splice(i, 1);\n ii--;\n continue;\n\n case OPS.setGState:\n const [gStateObj] = operatorList.argsArray[i];\n let j = 0,\n jj = gStateObj.length;\n while (j < jj) {\n const [gStateKey] = gStateObj[j];\n switch (gStateKey) {\n case \"TR\":\n case \"TR2\":\n case \"HT\":\n case \"BG\":\n case \"BG2\":\n case \"UCR\":\n case \"UCR2\":\n gStateObj.splice(j, 1);\n jj--;\n continue;\n }\n j++;\n }\n break;\n }\n i++;\n }\n }\n}\n\nclass StateManager {\n constructor(initialState = new EvalState()) {\n this.state = initialState;\n this.stateStack = [];\n }\n\n save() {\n const old = this.state;\n this.stateStack.push(this.state);\n this.state = old.clone();\n }\n\n restore() {\n const prev = this.stateStack.pop();\n if (prev) {\n this.state = prev;\n }\n }\n\n transform(args) {\n this.state.ctm = Util.transform(this.state.ctm, args);\n }\n}\n\nclass TextState {\n constructor() {\n this.ctm = new Float32Array(IDENTITY_MATRIX);\n this.fontName = null;\n this.fontSize = 0;\n this.font = null;\n this.fontMatrix = FONT_IDENTITY_MATRIX.slice();\n this.textMatrix = IDENTITY_MATRIX.slice();\n this.textLineMatrix = IDENTITY_MATRIX.slice();\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.leading = 0;\n this.textHScale = 1;\n this.textRise = 0;\n }\n\n setTextMatrix(a, b, c, d, e, f) {\n const m = this.textMatrix;\n m[0] = a;\n m[1] = b;\n m[2] = c;\n m[3] = d;\n m[4] = e;\n m[5] = f;\n }\n\n setTextLineMatrix(a, b, c, d, e, f) {\n const m = this.textLineMatrix;\n m[0] = a;\n m[1] = b;\n m[2] = c;\n m[3] = d;\n m[4] = e;\n m[5] = f;\n }\n\n translateTextMatrix(x, y) {\n const m = this.textMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n }\n\n translateTextLineMatrix(x, y) {\n const m = this.textLineMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n }\n\n carriageReturn() {\n this.translateTextLineMatrix(0, -this.leading);\n this.textMatrix = this.textLineMatrix.slice();\n }\n\n clone() {\n const clone = Object.create(this);\n clone.textMatrix = this.textMatrix ? this.textMatrix.slice() : IDENTITY_MATRIX.slice();\n clone.textLineMatrix = this.textLineMatrix ? this.textLineMatrix.slice() : IDENTITY_MATRIX.slice();\n clone.fontMatrix = this.fontMatrix ? this.fontMatrix.slice() : FONT_IDENTITY_MATRIX.slice();\n return clone;\n }\n}\n\nclass EvalState {\n constructor() {\n this.ctm = new Float32Array(IDENTITY_MATRIX);\n this.font = null;\n this.textRenderingMode = TextRenderingMode.FILL;\n this.fillColorSpace = ColorSpace.singletons.gray;\n this.strokeColorSpace = ColorSpace.singletons.gray;\n }\n\n clone() {\n return Object.create(this);\n }\n}\n\nclass EvaluatorPreprocessor {\n static get opMap() {\n // Specifies properties for each command\n //\n // If variableArgs === true: [0, `numArgs`] expected\n // If variableArgs === false: exactly `numArgs` expected\n const getOPMap = getLookupTableFactory(function (t) {\n // Graphic state\n t.w = { id: OPS.setLineWidth, numArgs: 1, variableArgs: false };\n t.J = { id: OPS.setLineCap, numArgs: 1, variableArgs: false };\n t.j = { id: OPS.setLineJoin, numArgs: 1, variableArgs: false };\n t.M = { id: OPS.setMiterLimit, numArgs: 1, variableArgs: false };\n t.d = { id: OPS.setDash, numArgs: 2, variableArgs: false };\n t.ri = { id: OPS.setRenderingIntent, numArgs: 1, variableArgs: false };\n t.i = { id: OPS.setFlatness, numArgs: 1, variableArgs: false };\n t.gs = { id: OPS.setGState, numArgs: 1, variableArgs: false };\n t.q = { id: OPS.save, numArgs: 0, variableArgs: false };\n t.Q = { id: OPS.restore, numArgs: 0, variableArgs: false };\n t.cm = { id: OPS.transform, numArgs: 6, variableArgs: false };\n\n // Path\n t.m = { id: OPS.moveTo, numArgs: 2, variableArgs: false };\n t.l = { id: OPS.lineTo, numArgs: 2, variableArgs: false };\n t.c = { id: OPS.curveTo, numArgs: 6, variableArgs: false };\n t.v = { id: OPS.curveTo2, numArgs: 4, variableArgs: false };\n t.y = { id: OPS.curveTo3, numArgs: 4, variableArgs: false };\n t.h = { id: OPS.closePath, numArgs: 0, variableArgs: false };\n t.re = { id: OPS.rectangle, numArgs: 4, variableArgs: false };\n t.S = { id: OPS.stroke, numArgs: 0, variableArgs: false };\n t.s = { id: OPS.closeStroke, numArgs: 0, variableArgs: false };\n t.f = { id: OPS.fill, numArgs: 0, variableArgs: false };\n t.F = { id: OPS.fill, numArgs: 0, variableArgs: false };\n t[\"f*\"] = { id: OPS.eoFill, numArgs: 0, variableArgs: false };\n t.B = { id: OPS.fillStroke, numArgs: 0, variableArgs: false };\n t[\"B*\"] = { id: OPS.eoFillStroke, numArgs: 0, variableArgs: false };\n t.b = { id: OPS.closeFillStroke, numArgs: 0, variableArgs: false };\n t[\"b*\"] = { id: OPS.closeEOFillStroke, numArgs: 0, variableArgs: false };\n t.n = { id: OPS.endPath, numArgs: 0, variableArgs: false };\n\n // Clipping\n t.W = { id: OPS.clip, numArgs: 0, variableArgs: false };\n t[\"W*\"] = { id: OPS.eoClip, numArgs: 0, variableArgs: false };\n\n // Text\n t.BT = { id: OPS.beginText, numArgs: 0, variableArgs: false };\n t.ET = { id: OPS.endText, numArgs: 0, variableArgs: false };\n t.Tc = { id: OPS.setCharSpacing, numArgs: 1, variableArgs: false };\n t.Tw = { id: OPS.setWordSpacing, numArgs: 1, variableArgs: false };\n t.Tz = { id: OPS.setHScale, numArgs: 1, variableArgs: false };\n t.TL = { id: OPS.setLeading, numArgs: 1, variableArgs: false };\n t.Tf = { id: OPS.setFont, numArgs: 2, variableArgs: false };\n t.Tr = { id: OPS.setTextRenderingMode, numArgs: 1, variableArgs: false };\n t.Ts = { id: OPS.setTextRise, numArgs: 1, variableArgs: false };\n t.Td = { id: OPS.moveText, numArgs: 2, variableArgs: false };\n t.TD = { id: OPS.setLeadingMoveText, numArgs: 2, variableArgs: false };\n t.Tm = { id: OPS.setTextMatrix, numArgs: 6, variableArgs: false };\n t[\"T*\"] = { id: OPS.nextLine, numArgs: 0, variableArgs: false };\n t.Tj = { id: OPS.showText, numArgs: 1, variableArgs: false };\n t.TJ = { id: OPS.showSpacedText, numArgs: 1, variableArgs: false };\n t[\"'\"] = { id: OPS.nextLineShowText, numArgs: 1, variableArgs: false };\n t['\"'] = {\n id: OPS.nextLineSetSpacingShowText,\n numArgs: 3,\n variableArgs: false,\n };\n\n // Type3 fonts\n t.d0 = { id: OPS.setCharWidth, numArgs: 2, variableArgs: false };\n t.d1 = {\n id: OPS.setCharWidthAndBounds,\n numArgs: 6,\n variableArgs: false,\n };\n\n // Color\n t.CS = { id: OPS.setStrokeColorSpace, numArgs: 1, variableArgs: false };\n t.cs = { id: OPS.setFillColorSpace, numArgs: 1, variableArgs: false };\n t.SC = { id: OPS.setStrokeColor, numArgs: 4, variableArgs: true };\n t.SCN = { id: OPS.setStrokeColorN, numArgs: 33, variableArgs: true };\n t.sc = { id: OPS.setFillColor, numArgs: 4, variableArgs: true };\n t.scn = { id: OPS.setFillColorN, numArgs: 33, variableArgs: true };\n t.G = { id: OPS.setStrokeGray, numArgs: 1, variableArgs: false };\n t.g = { id: OPS.setFillGray, numArgs: 1, variableArgs: false };\n t.RG = { id: OPS.setStrokeRGBColor, numArgs: 3, variableArgs: false };\n t.rg = { id: OPS.setFillRGBColor, numArgs: 3, variableArgs: false };\n t.K = { id: OPS.setStrokeCMYKColor, numArgs: 4, variableArgs: false };\n t.k = { id: OPS.setFillCMYKColor, numArgs: 4, variableArgs: false };\n\n // Shading\n t.sh = { id: OPS.shadingFill, numArgs: 1, variableArgs: false };\n\n // Images\n t.BI = { id: OPS.beginInlineImage, numArgs: 0, variableArgs: false };\n t.ID = { id: OPS.beginImageData, numArgs: 0, variableArgs: false };\n t.EI = { id: OPS.endInlineImage, numArgs: 1, variableArgs: false };\n\n // XObjects\n t.Do = { id: OPS.paintXObject, numArgs: 1, variableArgs: false };\n t.MP = { id: OPS.markPoint, numArgs: 1, variableArgs: false };\n t.DP = { id: OPS.markPointProps, numArgs: 2, variableArgs: false };\n t.BMC = { id: OPS.beginMarkedContent, numArgs: 1, variableArgs: false };\n t.BDC = {\n id: OPS.beginMarkedContentProps,\n numArgs: 2,\n variableArgs: false,\n };\n t.EMC = { id: OPS.endMarkedContent, numArgs: 0, variableArgs: false };\n\n // Compatibility\n t.BX = { id: OPS.beginCompat, numArgs: 0, variableArgs: false };\n t.EX = { id: OPS.endCompat, numArgs: 0, variableArgs: false };\n\n // (reserved partial commands for the lexer)\n t.BM = null;\n t.BD = null;\n t.true = null;\n t.fa = null;\n t.fal = null;\n t.fals = null;\n t.false = null;\n t.nu = null;\n t.nul = null;\n t.null = null;\n });\n\n return shadow(this, \"opMap\", getOPMap());\n }\n\n static get MAX_INVALID_PATH_OPS() {\n return shadow(this, \"MAX_INVALID_PATH_OPS\", 10);\n }\n\n constructor(stream, xref, stateManager = new StateManager()) {\n // TODO(mduan): pass array of knownCommands rather than this.opMap\n // dictionary\n this.parser = new Parser({\n lexer: new Lexer(stream, EvaluatorPreprocessor.opMap),\n xref,\n });\n this.stateManager = stateManager;\n this.nonProcessedArgs = [];\n this._numInvalidPathOPS = 0;\n }\n\n get savedStatesDepth() {\n return this.stateManager.stateStack.length;\n }\n\n // |operation| is an object with two fields:\n //\n // - |fn| is an out param.\n //\n // - |args| is an inout param. On entry, it should have one of two values.\n //\n // - An empty array. This indicates that the caller is providing the\n // array in which the args will be stored in. The caller should use\n // this value if it can reuse a single array for each call to read().\n //\n // - |null|. This indicates that the caller needs this function to create\n // the array in which any args are stored in. If there are zero args,\n // this function will leave |operation.args| as |null| (thus avoiding\n // allocations that would occur if we used an empty array to represent\n // zero arguments). Otherwise, it will replace |null| with a new array\n // containing the arguments. The caller should use this value if it\n // cannot reuse an array for each call to read().\n //\n // These two modes are present because this function is very hot and so\n // avoiding allocations where possible is worthwhile.\n //\n read(operation) {\n let args = operation.args;\n while (true) {\n const obj = this.parser.getObj();\n if (obj instanceof Cmd) {\n const cmd = obj.cmd;\n // Check that the command is valid\n const opSpec = EvaluatorPreprocessor.opMap[cmd];\n if (!opSpec) {\n warn(`Unknown command \"${cmd}\".`);\n continue;\n }\n\n const fn = opSpec.id;\n const numArgs = opSpec.numArgs;\n let argsLength = args !== null ? args.length : 0;\n\n if (!opSpec.variableArgs) {\n // Postscript commands can be nested, e.g. /F2 /GS2 gs 5.711 Tf\n if (argsLength !== numArgs) {\n const nonProcessedArgs = this.nonProcessedArgs;\n while (argsLength > numArgs) {\n nonProcessedArgs.push(args.shift());\n argsLength--;\n }\n while (argsLength < numArgs && nonProcessedArgs.length !== 0) {\n if (args === null) {\n args = [];\n }\n args.unshift(nonProcessedArgs.pop());\n argsLength++;\n }\n }\n\n if (argsLength < numArgs) {\n const partialMsg =\n `command ${cmd}: expected ${numArgs} args, ` +\n `but received ${argsLength} args.`;\n\n // Incomplete path operators, in particular, can result in fairly\n // chaotic rendering artifacts. Hence the following heuristics is\n // used to error, rather than just warn, once a number of invalid\n // path operators have been encountered (fixes bug1443140.pdf).\n if (\n fn >= OPS.moveTo &&\n fn <= OPS.endPath && // Path operator\n ++this._numInvalidPathOPS >\n EvaluatorPreprocessor.MAX_INVALID_PATH_OPS\n ) {\n throw new FormatError(`Invalid ${partialMsg}`);\n }\n // If we receive too few arguments, it's not possible to execute\n // the command, hence we skip the command.\n warn(`Skipping ${partialMsg}`);\n if (args !== null) {\n args.length = 0;\n }\n continue;\n }\n } else if (argsLength > numArgs) {\n info(\n `Command ${cmd}: expected [0, ${numArgs}] args, ` +\n `but received ${argsLength} args.`\n );\n }\n\n // TODO figure out how to type-check vararg functions\n this.preprocessCommand(fn, args);\n\n operation.fn = fn;\n operation.args = args;\n return true;\n }\n if (obj === EOF) {\n return false; // no more commands\n }\n // argument\n if (obj !== null) {\n if (args === null) {\n args = [];\n }\n args.push(obj);\n if (args.length > 33) {\n throw new FormatError(\"Too many arguments\");\n }\n }\n }\n }\n\n preprocessCommand(fn, args) {\n switch (fn | 0) {\n case OPS.save:\n this.stateManager.save();\n break;\n case OPS.restore:\n this.stateManager.restore();\n break;\n case OPS.transform:\n this.stateManager.transform(args);\n break;\n }\n }\n}\n\nexport { EvaluatorPreprocessor, PartialEvaluator, StateManager, TextState };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n CMapCompressionType,\n FormatError,\n unreachable,\n warn,\n} from \"../shared/util.js\";\nimport { Cmd, EOF, isCmd, Name } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { Lexer } from \"./parser.js\";\nimport { MissingDataException } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\n\nconst BUILT_IN_CMAPS = [\n // << Start unicode maps.\n \"Adobe-GB1-UCS2\",\n \"Adobe-CNS1-UCS2\",\n \"Adobe-Japan1-UCS2\",\n \"Adobe-Korea1-UCS2\",\n // >> End unicode maps.\n \"78-EUC-H\",\n \"78-EUC-V\",\n \"78-H\",\n \"78-RKSJ-H\",\n \"78-RKSJ-V\",\n \"78-V\",\n \"78ms-RKSJ-H\",\n \"78ms-RKSJ-V\",\n \"83pv-RKSJ-H\",\n \"90ms-RKSJ-H\",\n \"90ms-RKSJ-V\",\n \"90msp-RKSJ-H\",\n \"90msp-RKSJ-V\",\n \"90pv-RKSJ-H\",\n \"90pv-RKSJ-V\",\n \"Add-H\",\n \"Add-RKSJ-H\",\n \"Add-RKSJ-V\",\n \"Add-V\",\n \"Adobe-CNS1-0\",\n \"Adobe-CNS1-1\",\n \"Adobe-CNS1-2\",\n \"Adobe-CNS1-3\",\n \"Adobe-CNS1-4\",\n \"Adobe-CNS1-5\",\n \"Adobe-CNS1-6\",\n \"Adobe-GB1-0\",\n \"Adobe-GB1-1\",\n \"Adobe-GB1-2\",\n \"Adobe-GB1-3\",\n \"Adobe-GB1-4\",\n \"Adobe-GB1-5\",\n \"Adobe-Japan1-0\",\n \"Adobe-Japan1-1\",\n \"Adobe-Japan1-2\",\n \"Adobe-Japan1-3\",\n \"Adobe-Japan1-4\",\n \"Adobe-Japan1-5\",\n \"Adobe-Japan1-6\",\n \"Adobe-Korea1-0\",\n \"Adobe-Korea1-1\",\n \"Adobe-Korea1-2\",\n \"B5-H\",\n \"B5-V\",\n \"B5pc-H\",\n \"B5pc-V\",\n \"CNS-EUC-H\",\n \"CNS-EUC-V\",\n \"CNS1-H\",\n \"CNS1-V\",\n \"CNS2-H\",\n \"CNS2-V\",\n \"ETHK-B5-H\",\n \"ETHK-B5-V\",\n \"ETen-B5-H\",\n \"ETen-B5-V\",\n \"ETenms-B5-H\",\n \"ETenms-B5-V\",\n \"EUC-H\",\n \"EUC-V\",\n \"Ext-H\",\n \"Ext-RKSJ-H\",\n \"Ext-RKSJ-V\",\n \"Ext-V\",\n \"GB-EUC-H\",\n \"GB-EUC-V\",\n \"GB-H\",\n \"GB-V\",\n \"GBK-EUC-H\",\n \"GBK-EUC-V\",\n \"GBK2K-H\",\n \"GBK2K-V\",\n \"GBKp-EUC-H\",\n \"GBKp-EUC-V\",\n \"GBT-EUC-H\",\n \"GBT-EUC-V\",\n \"GBT-H\",\n \"GBT-V\",\n \"GBTpc-EUC-H\",\n \"GBTpc-EUC-V\",\n \"GBpc-EUC-H\",\n \"GBpc-EUC-V\",\n \"H\",\n \"HKdla-B5-H\",\n \"HKdla-B5-V\",\n \"HKdlb-B5-H\",\n \"HKdlb-B5-V\",\n \"HKgccs-B5-H\",\n \"HKgccs-B5-V\",\n \"HKm314-B5-H\",\n \"HKm314-B5-V\",\n \"HKm471-B5-H\",\n \"HKm471-B5-V\",\n \"HKscs-B5-H\",\n \"HKscs-B5-V\",\n \"Hankaku\",\n \"Hiragana\",\n \"KSC-EUC-H\",\n \"KSC-EUC-V\",\n \"KSC-H\",\n \"KSC-Johab-H\",\n \"KSC-Johab-V\",\n \"KSC-V\",\n \"KSCms-UHC-H\",\n \"KSCms-UHC-HW-H\",\n \"KSCms-UHC-HW-V\",\n \"KSCms-UHC-V\",\n \"KSCpc-EUC-H\",\n \"KSCpc-EUC-V\",\n \"Katakana\",\n \"NWP-H\",\n \"NWP-V\",\n \"RKSJ-H\",\n \"RKSJ-V\",\n \"Roman\",\n \"UniCNS-UCS2-H\",\n \"UniCNS-UCS2-V\",\n \"UniCNS-UTF16-H\",\n \"UniCNS-UTF16-V\",\n \"UniCNS-UTF32-H\",\n \"UniCNS-UTF32-V\",\n \"UniCNS-UTF8-H\",\n \"UniCNS-UTF8-V\",\n \"UniGB-UCS2-H\",\n \"UniGB-UCS2-V\",\n \"UniGB-UTF16-H\",\n \"UniGB-UTF16-V\",\n \"UniGB-UTF32-H\",\n \"UniGB-UTF32-V\",\n \"UniGB-UTF8-H\",\n \"UniGB-UTF8-V\",\n \"UniJIS-UCS2-H\",\n \"UniJIS-UCS2-HW-H\",\n \"UniJIS-UCS2-HW-V\",\n \"UniJIS-UCS2-V\",\n \"UniJIS-UTF16-H\",\n \"UniJIS-UTF16-V\",\n \"UniJIS-UTF32-H\",\n \"UniJIS-UTF32-V\",\n \"UniJIS-UTF8-H\",\n \"UniJIS-UTF8-V\",\n \"UniJIS2004-UTF16-H\",\n \"UniJIS2004-UTF16-V\",\n \"UniJIS2004-UTF32-H\",\n \"UniJIS2004-UTF32-V\",\n \"UniJIS2004-UTF8-H\",\n \"UniJIS2004-UTF8-V\",\n \"UniJISPro-UCS2-HW-V\",\n \"UniJISPro-UCS2-V\",\n \"UniJISPro-UTF8-V\",\n \"UniJISX0213-UTF32-H\",\n \"UniJISX0213-UTF32-V\",\n \"UniJISX02132004-UTF32-H\",\n \"UniJISX02132004-UTF32-V\",\n \"UniKS-UCS2-H\",\n \"UniKS-UCS2-V\",\n \"UniKS-UTF16-H\",\n \"UniKS-UTF16-V\",\n \"UniKS-UTF32-H\",\n \"UniKS-UTF32-V\",\n \"UniKS-UTF8-H\",\n \"UniKS-UTF8-V\",\n \"V\",\n \"WP-Symbol\",\n];\n\n// Heuristic to avoid hanging the worker-thread for CMap data with ridiculously\n// large ranges, such as e.g. 0xFFFFFFFF (fixes issue11922_reduced.pdf).\nconst MAX_MAP_RANGE = 2 ** 24 - 1; // = 0xFFFFFF\n\n// CMap, not to be confused with TrueType's cmap.\nclass CMap {\n constructor(builtInCMap = false) {\n // Codespace ranges are stored as follows:\n // [[1BytePairs], [2BytePairs], [3BytePairs], [4BytePairs]]\n // where nBytePairs are ranges e.g. [low1, high1, low2, high2, ...]\n this.codespaceRanges = [[], [], [], []];\n this.numCodespaceRanges = 0;\n // Map entries have one of two forms.\n // - cid chars are 16-bit unsigned integers, stored as integers.\n // - bf chars are variable-length byte sequences, stored as strings, with\n // one byte per character.\n this._map = [];\n this.name = \"\";\n this.vertical = false;\n this.useCMap = null;\n this.builtInCMap = builtInCMap;\n }\n\n addCodespaceRange(n, low, high) {\n this.codespaceRanges[n - 1].push(low, high);\n this.numCodespaceRanges++;\n }\n\n mapCidRange(low, high, dstLow) {\n if (high - low > MAX_MAP_RANGE) {\n throw new Error(\"mapCidRange - ignoring data above MAX_MAP_RANGE.\");\n }\n while (low <= high) {\n this._map[low++] = dstLow++;\n }\n }\n\n mapBfRange(low, high, dstLow) {\n if (high - low > MAX_MAP_RANGE) {\n throw new Error(\"mapBfRange - ignoring data above MAX_MAP_RANGE.\");\n }\n const lastByte = dstLow.length - 1;\n while (low <= high) {\n this._map[low++] = dstLow;\n // Only the last byte has to be incremented (in the normal case).\n const nextCharCode = dstLow.charCodeAt(lastByte) + 1;\n if (nextCharCode > 0xff) {\n dstLow =\n dstLow.substring(0, lastByte - 1) +\n String.fromCharCode(dstLow.charCodeAt(lastByte - 1) + 1) +\n \"\\x00\";\n continue;\n }\n dstLow =\n dstLow.substring(0, lastByte) + String.fromCharCode(nextCharCode);\n }\n }\n\n mapBfRangeToArray(low, high, array) {\n if (high - low > MAX_MAP_RANGE) {\n throw new Error(\"mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.\");\n }\n const ii = array.length;\n let i = 0;\n while (low <= high && i < ii) {\n this._map[low] = array[i++];\n ++low;\n }\n }\n\n // This is used for both bf and cid chars.\n mapOne(src, dst) {\n this._map[src] = dst;\n }\n\n lookup(code) {\n return this._map[code];\n }\n\n contains(code) {\n return this._map[code] !== undefined;\n }\n\n forEach(callback) {\n // Most maps have fewer than 65536 entries, and for those we use normal\n // array iteration. But really sparse tables are possible -- e.g. with\n // indices in the *billions*. For such tables we use for..in, which isn't\n // ideal because it stringifies the indices for all present elements, but\n // it does avoid iterating over every undefined entry.\n const map = this._map;\n const length = map.length;\n if (length <= 0x10000) {\n for (let i = 0; i < length; i++) {\n if (map[i] !== undefined) {\n callback(i, map[i]);\n }\n }\n } else {\n for (const i in map) {\n callback(i, map[i]);\n }\n }\n }\n\n charCodeOf(value) {\n // `Array.prototype.indexOf` is *extremely* inefficient for arrays which\n // are both very sparse and very large (see issue8372.pdf).\n const map = this._map;\n if (map.length <= 0x10000) {\n return map.indexOf(value);\n }\n for (const charCode in map) {\n if (map[charCode] === value) {\n return charCode | 0;\n }\n }\n return -1;\n }\n\n getMap() {\n return this._map;\n }\n\n readCharCode(str, offset, out) {\n let c = 0;\n const codespaceRanges = this.codespaceRanges;\n // 9.7.6.2 CMap Mapping\n // The code length is at most 4.\n for (let n = 0, nn = codespaceRanges.length; n < nn; n++) {\n c = ((c << 8) | str.charCodeAt(offset + n)) >>> 0;\n // Check each codespace range to see if it falls within.\n const codespaceRange = codespaceRanges[n];\n for (let k = 0, kk = codespaceRange.length; k < kk; ) {\n const low = codespaceRange[k++];\n const high = codespaceRange[k++];\n if (c >= low && c <= high) {\n out.charcode = c;\n out.length = n + 1;\n return;\n }\n }\n }\n out.charcode = 0;\n out.length = 1;\n }\n\n getCharCodeLength(charCode) {\n const codespaceRanges = this.codespaceRanges;\n for (let n = 0, nn = codespaceRanges.length; n < nn; n++) {\n // Check each codespace range to see if it falls within.\n const codespaceRange = codespaceRanges[n];\n for (let k = 0, kk = codespaceRange.length; k < kk; ) {\n const low = codespaceRange[k++];\n const high = codespaceRange[k++];\n if (charCode >= low && charCode <= high) {\n return n + 1;\n }\n }\n }\n return 1;\n }\n\n get length() {\n return this._map.length;\n }\n\n get isIdentityCMap() {\n if (!(this.name === \"Identity-H\" || this.name === \"Identity-V\")) {\n return false;\n }\n if (this._map.length !== 0x10000) {\n return false;\n }\n for (let i = 0; i < 0x10000; i++) {\n if (this._map[i] !== i) {\n return false;\n }\n }\n return true;\n }\n}\n\n// A special case of CMap, where the _map array implicitly has a length of\n// 65536 and each element is equal to its index.\nclass IdentityCMap extends CMap {\n constructor(vertical, n) {\n super();\n\n this.vertical = vertical;\n this.addCodespaceRange(n, 0, 0xffff);\n }\n\n mapCidRange(low, high, dstLow) {\n unreachable(\"should not call mapCidRange\");\n }\n\n mapBfRange(low, high, dstLow) {\n unreachable(\"should not call mapBfRange\");\n }\n\n mapBfRangeToArray(low, high, array) {\n unreachable(\"should not call mapBfRangeToArray\");\n }\n\n mapOne(src, dst) {\n unreachable(\"should not call mapCidOne\");\n }\n\n lookup(code) {\n return Number.isInteger(code) && code <= 0xffff ? code : undefined;\n }\n\n contains(code) {\n return Number.isInteger(code) && code <= 0xffff;\n }\n\n forEach(callback) {\n for (let i = 0; i <= 0xffff; i++) {\n callback(i, i);\n }\n }\n\n charCodeOf(value) {\n return Number.isInteger(value) && value <= 0xffff ? value : -1;\n }\n\n getMap() {\n // Sometimes identity maps must be instantiated, but it's rare.\n const map = new Array(0x10000);\n for (let i = 0; i <= 0xffff; i++) {\n map[i] = i;\n }\n return map;\n }\n\n get length() {\n return 0x10000;\n }\n\n // eslint-disable-next-line getter-return\n get isIdentityCMap() {\n unreachable(\"should not access .isIdentityCMap\");\n }\n}\n\nconst BinaryCMapReader = (function BinaryCMapReaderClosure() {\n function hexToInt(a, size) {\n let n = 0;\n for (let i = 0; i <= size; i++) {\n n = (n << 8) | a[i];\n }\n return n >>> 0;\n }\n\n function hexToStr(a, size) {\n // This code is hot. Special-case some common values to avoid creating an\n // object with subarray().\n if (size === 1) {\n return String.fromCharCode(a[0], a[1]);\n }\n if (size === 3) {\n return String.fromCharCode(a[0], a[1], a[2], a[3]);\n }\n return String.fromCharCode.apply(null, a.subarray(0, size + 1));\n }\n\n function addHex(a, b, size) {\n let c = 0;\n for (let i = size; i >= 0; i--) {\n c += a[i] + b[i];\n a[i] = c & 255;\n c >>= 8;\n }\n }\n\n function incHex(a, size) {\n let c = 1;\n for (let i = size; i >= 0 && c > 0; i--) {\n c += a[i];\n a[i] = c & 255;\n c >>= 8;\n }\n }\n\n const MAX_NUM_SIZE = 16;\n const MAX_ENCODED_NUM_SIZE = 19; // ceil(MAX_NUM_SIZE * 7 / 8)\n\n class BinaryCMapStream {\n constructor(data) {\n this.buffer = data;\n this.pos = 0;\n this.end = data.length;\n this.tmpBuf = new Uint8Array(MAX_ENCODED_NUM_SIZE);\n }\n\n readByte() {\n if (this.pos >= this.end) {\n return -1;\n }\n return this.buffer[this.pos++];\n }\n\n readNumber() {\n let n = 0;\n let last;\n do {\n const b = this.readByte();\n if (b < 0) {\n throw new FormatError(\"unexpected EOF in bcmap\");\n }\n last = !(b & 0x80);\n n = (n << 7) | (b & 0x7f);\n } while (!last);\n return n;\n }\n\n readSigned() {\n const n = this.readNumber();\n return n & 1 ? ~(n >>> 1) : n >>> 1;\n }\n\n readHex(num, size) {\n num.set(this.buffer.subarray(this.pos, this.pos + size + 1));\n this.pos += size + 1;\n }\n\n readHexNumber(num, size) {\n let last;\n const stack = this.tmpBuf;\n let sp = 0;\n do {\n const b = this.readByte();\n if (b < 0) {\n throw new FormatError(\"unexpected EOF in bcmap\");\n }\n last = !(b & 0x80);\n stack[sp++] = b & 0x7f;\n } while (!last);\n let i = size,\n buffer = 0,\n bufferSize = 0;\n while (i >= 0) {\n while (bufferSize < 8 && stack.length > 0) {\n buffer |= stack[--sp] << bufferSize;\n bufferSize += 7;\n }\n num[i] = buffer & 255;\n i--;\n buffer >>= 8;\n bufferSize -= 8;\n }\n }\n\n readHexSigned(num, size) {\n this.readHexNumber(num, size);\n const sign = num[size] & 1 ? 255 : 0;\n let c = 0;\n for (let i = 0; i <= size; i++) {\n c = ((c & 1) << 8) | num[i];\n num[i] = (c >> 1) ^ sign;\n }\n }\n\n readString() {\n const len = this.readNumber();\n let s = \"\";\n for (let i = 0; i < len; i++) {\n s += String.fromCharCode(this.readNumber());\n }\n return s;\n }\n }\n\n // eslint-disable-next-line no-shadow\n class BinaryCMapReader {\n async process(data, cMap, extend) {\n const stream = new BinaryCMapStream(data);\n const header = stream.readByte();\n cMap.vertical = !!(header & 1);\n\n let useCMap = null;\n const start = new Uint8Array(MAX_NUM_SIZE);\n const end = new Uint8Array(MAX_NUM_SIZE);\n const char = new Uint8Array(MAX_NUM_SIZE);\n const charCode = new Uint8Array(MAX_NUM_SIZE);\n const tmp = new Uint8Array(MAX_NUM_SIZE);\n let code;\n\n let b;\n while ((b = stream.readByte()) >= 0) {\n const type = b >> 5;\n if (type === 7) {\n // metadata, e.g. comment or usecmap\n switch (b & 0x1f) {\n case 0:\n stream.readString(); // skipping comment\n break;\n case 1:\n useCMap = stream.readString();\n break;\n }\n continue;\n }\n const sequence = !!(b & 0x10);\n const dataSize = b & 15;\n\n if (dataSize + 1 > MAX_NUM_SIZE) {\n throw new Error(\"BinaryCMapReader.process: Invalid dataSize.\");\n }\n\n const ucs2DataSize = 1;\n const subitemsCount = stream.readNumber();\n switch (type) {\n case 0: // codespacerange\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n cMap.addCodespaceRange(\n dataSize + 1,\n hexToInt(start, dataSize),\n hexToInt(end, dataSize)\n );\n for (let i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n cMap.addCodespaceRange(\n dataSize + 1,\n hexToInt(start, dataSize),\n hexToInt(end, dataSize)\n );\n }\n break;\n case 1: // notdefrange\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n stream.readNumber(); // code\n // undefined range, skipping\n for (let i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n stream.readNumber(); // code\n // nop\n }\n break;\n case 2: // cidchar\n stream.readHex(char, dataSize);\n code = stream.readNumber();\n cMap.mapOne(hexToInt(char, dataSize), code);\n for (let i = 1; i < subitemsCount; i++) {\n incHex(char, dataSize);\n if (!sequence) {\n stream.readHexNumber(tmp, dataSize);\n addHex(char, tmp, dataSize);\n }\n code = stream.readSigned() + (code + 1);\n cMap.mapOne(hexToInt(char, dataSize), code);\n }\n break;\n case 3: // cidrange\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n code = stream.readNumber();\n cMap.mapCidRange(\n hexToInt(start, dataSize),\n hexToInt(end, dataSize),\n code\n );\n for (let i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n if (!sequence) {\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n } else {\n start.set(end);\n }\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n code = stream.readNumber();\n cMap.mapCidRange(\n hexToInt(start, dataSize),\n hexToInt(end, dataSize),\n code\n );\n }\n break;\n case 4: // bfchar\n stream.readHex(char, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapOne(\n hexToInt(char, ucs2DataSize),\n hexToStr(charCode, dataSize)\n );\n for (let i = 1; i < subitemsCount; i++) {\n incHex(char, ucs2DataSize);\n if (!sequence) {\n stream.readHexNumber(tmp, ucs2DataSize);\n addHex(char, tmp, ucs2DataSize);\n }\n incHex(charCode, dataSize);\n stream.readHexSigned(tmp, dataSize);\n addHex(charCode, tmp, dataSize);\n cMap.mapOne(\n hexToInt(char, ucs2DataSize),\n hexToStr(charCode, dataSize)\n );\n }\n break;\n case 5: // bfrange\n stream.readHex(start, ucs2DataSize);\n stream.readHexNumber(end, ucs2DataSize);\n addHex(end, start, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapBfRange(\n hexToInt(start, ucs2DataSize),\n hexToInt(end, ucs2DataSize),\n hexToStr(charCode, dataSize)\n );\n for (let i = 1; i < subitemsCount; i++) {\n incHex(end, ucs2DataSize);\n if (!sequence) {\n stream.readHexNumber(start, ucs2DataSize);\n addHex(start, end, ucs2DataSize);\n } else {\n start.set(end);\n }\n stream.readHexNumber(end, ucs2DataSize);\n addHex(end, start, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapBfRange(\n hexToInt(start, ucs2DataSize),\n hexToInt(end, ucs2DataSize),\n hexToStr(charCode, dataSize)\n );\n }\n break;\n default:\n throw new Error(`BinaryCMapReader.process - unknown type: ${type}`);\n }\n }\n\n if (useCMap) {\n return extend(useCMap);\n }\n return cMap;\n }\n }\n\n return BinaryCMapReader;\n})();\n\nconst CMapFactory = (function CMapFactoryClosure() {\n function strToInt(str) {\n let a = 0;\n for (let i = 0; i < str.length; i++) {\n a = (a << 8) | str.charCodeAt(i);\n }\n return a >>> 0;\n }\n\n function expectString(obj) {\n if (typeof obj !== \"string\") {\n throw new FormatError(\"Malformed CMap: expected string.\");\n }\n }\n\n function expectInt(obj) {\n if (!Number.isInteger(obj)) {\n throw new FormatError(\"Malformed CMap: expected int.\");\n }\n }\n\n function parseBfChar(cMap, lexer) {\n while (true) {\n let obj = lexer.getObj();\n if (obj === EOF) {\n break;\n }\n if (isCmd(obj, \"endbfchar\")) {\n return;\n }\n expectString(obj);\n const src = strToInt(obj);\n obj = lexer.getObj();\n // TODO are /dstName used?\n expectString(obj);\n const dst = obj;\n cMap.mapOne(src, dst);\n }\n }\n\n function parseBfRange(cMap, lexer) {\n while (true) {\n let obj = lexer.getObj();\n if (obj === EOF) {\n break;\n }\n if (isCmd(obj, \"endbfrange\")) {\n return;\n }\n expectString(obj);\n const low = strToInt(obj);\n obj = lexer.getObj();\n expectString(obj);\n const high = strToInt(obj);\n obj = lexer.getObj();\n if (Number.isInteger(obj) || typeof obj === \"string\") {\n const dstLow = Number.isInteger(obj) ? String.fromCharCode(obj) : obj;\n cMap.mapBfRange(low, high, dstLow);\n } else if (isCmd(obj, \"[\")) {\n obj = lexer.getObj();\n const array = [];\n while (!isCmd(obj, \"]\") && obj !== EOF) {\n array.push(obj);\n obj = lexer.getObj();\n }\n cMap.mapBfRangeToArray(low, high, array);\n } else {\n break;\n }\n }\n throw new FormatError(\"Invalid bf range.\");\n }\n\n function parseCidChar(cMap, lexer) {\n while (true) {\n let obj = lexer.getObj();\n if (obj === EOF) {\n break;\n }\n if (isCmd(obj, \"endcidchar\")) {\n return;\n }\n expectString(obj);\n const src = strToInt(obj);\n obj = lexer.getObj();\n expectInt(obj);\n const dst = obj;\n cMap.mapOne(src, dst);\n }\n }\n\n function parseCidRange(cMap, lexer) {\n while (true) {\n let obj = lexer.getObj();\n if (obj === EOF) {\n break;\n }\n if (isCmd(obj, \"endcidrange\")) {\n return;\n }\n expectString(obj);\n const low = strToInt(obj);\n obj = lexer.getObj();\n expectString(obj);\n const high = strToInt(obj);\n obj = lexer.getObj();\n expectInt(obj);\n const dstLow = obj;\n cMap.mapCidRange(low, high, dstLow);\n }\n }\n\n function parseCodespaceRange(cMap, lexer) {\n while (true) {\n let obj = lexer.getObj();\n if (obj === EOF) {\n break;\n }\n if (isCmd(obj, \"endcodespacerange\")) {\n return;\n }\n if (typeof obj !== \"string\") {\n break;\n }\n const low = strToInt(obj);\n obj = lexer.getObj();\n if (typeof obj !== \"string\") {\n break;\n }\n const high = strToInt(obj);\n cMap.addCodespaceRange(obj.length, low, high);\n }\n throw new FormatError(\"Invalid codespace range.\");\n }\n\n function parseWMode(cMap, lexer) {\n const obj = lexer.getObj();\n if (Number.isInteger(obj)) {\n cMap.vertical = !!obj;\n }\n }\n\n function parseCMapName(cMap, lexer) {\n const obj = lexer.getObj();\n if (obj instanceof Name) {\n cMap.name = obj.name;\n }\n }\n\n async function parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap) {\n let previous, embeddedUseCMap;\n objLoop: while (true) {\n try {\n const obj = lexer.getObj();\n if (obj === EOF) {\n break;\n } else if (obj instanceof Name) {\n if (obj.name === \"WMode\") {\n parseWMode(cMap, lexer);\n } else if (obj.name === \"CMapName\") {\n parseCMapName(cMap, lexer);\n }\n previous = obj;\n } else if (obj instanceof Cmd) {\n switch (obj.cmd) {\n case \"endcmap\":\n break objLoop;\n case \"usecmap\":\n if (previous instanceof Name) {\n embeddedUseCMap = previous.name;\n }\n break;\n case \"begincodespacerange\":\n parseCodespaceRange(cMap, lexer);\n break;\n case \"beginbfchar\":\n parseBfChar(cMap, lexer);\n break;\n case \"begincidchar\":\n parseCidChar(cMap, lexer);\n break;\n case \"beginbfrange\":\n parseBfRange(cMap, lexer);\n break;\n case \"begincidrange\":\n parseCidRange(cMap, lexer);\n break;\n }\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Invalid cMap data: \" + ex);\n continue;\n }\n }\n\n if (!useCMap && embeddedUseCMap) {\n // Load the useCMap definition from the file only if there wasn't one\n // specified.\n useCMap = embeddedUseCMap;\n }\n if (useCMap) {\n return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n }\n return cMap;\n }\n\n async function extendCMap(cMap, fetchBuiltInCMap, useCMap) {\n cMap.useCMap = await createBuiltInCMap(useCMap, fetchBuiltInCMap);\n // If there aren't any code space ranges defined clone all the parent ones\n // into this cMap.\n if (cMap.numCodespaceRanges === 0) {\n const useCodespaceRanges = cMap.useCMap.codespaceRanges;\n for (let i = 0; i < useCodespaceRanges.length; i++) {\n cMap.codespaceRanges[i] = useCodespaceRanges[i].slice();\n }\n cMap.numCodespaceRanges = cMap.useCMap.numCodespaceRanges;\n }\n // Merge the map into the current one, making sure not to override\n // any previously defined entries.\n cMap.useCMap.forEach(function (key, value) {\n if (!cMap.contains(key)) {\n cMap.mapOne(key, cMap.useCMap.lookup(key));\n }\n });\n\n return cMap;\n }\n\n async function createBuiltInCMap(name, fetchBuiltInCMap) {\n if (name === \"Identity-H\") {\n return new IdentityCMap(false, 2);\n } else if (name === \"Identity-V\") {\n return new IdentityCMap(true, 2);\n }\n if (!BUILT_IN_CMAPS.includes(name)) {\n throw new Error(\"Unknown CMap name: \" + name);\n }\n if (!fetchBuiltInCMap) {\n throw new Error(\"Built-in CMap parameters are not provided.\");\n }\n\n const { cMapData, compressionType } = await fetchBuiltInCMap(name);\n const cMap = new CMap(true);\n\n if (compressionType === CMapCompressionType.BINARY) {\n return new BinaryCMapReader().process(cMapData, cMap, useCMap => {\n return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n });\n }\n if (compressionType === CMapCompressionType.NONE) {\n const lexer = new Lexer(new Stream(cMapData));\n return parseCMap(cMap, lexer, fetchBuiltInCMap, null);\n }\n throw new Error(\n \"TODO: Only BINARY/NONE CMap compression is currently supported.\"\n );\n }\n\n return {\n async create(params) {\n const encoding = params.encoding;\n const fetchBuiltInCMap = params.fetchBuiltInCMap;\n const useCMap = params.useCMap;\n\n if (encoding instanceof Name) {\n return createBuiltInCMap(encoding.name, fetchBuiltInCMap);\n } else if (encoding instanceof BaseStream) {\n const parsedCMap = await parseCMap(\n /* cMap = */ new CMap(),\n /* lexer = */ new Lexer(encoding),\n fetchBuiltInCMap,\n useCMap\n );\n\n if (parsedCMap.isIdentityCMap) {\n return createBuiltInCMap(parsedCMap.name, fetchBuiltInCMap);\n }\n return parsedCMap;\n }\n throw new Error(\"Encoding required.\");\n },\n };\n})();\n\nexport { CMap, CMapFactory, IdentityCMap };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n bytesToString,\n FormatError,\n info,\n StreamType,\n warn,\n} from \"../shared/util.js\";\nimport { Cmd, Dict, EOF, isCmd, Name, Ref } from \"./primitives.js\";\nimport {\n isWhiteSpace,\n MissingDataException,\n ParserEOFException,\n} from \"./core_utils.js\";\nimport { Ascii85Stream } from \"./ascii_85_stream.js\";\nimport { AsciiHexStream } from \"./ascii_hex_stream.js\";\nimport { CCITTFaxStream } from \"./ccitt_stream.js\";\nimport { FlateStream } from \"./flate_stream.js\";\nimport { Jbig2Stream } from \"./jbig2_stream.js\";\nimport { JpegStream } from \"./jpeg_stream.js\";\nimport { JpxStream } from \"./jpx_stream.js\";\nimport { LZWStream } from \"./lzw_stream.js\";\nimport { NullStream } from \"./stream.js\";\nimport { PredictorStream } from \"./predictor_stream.js\";\nimport { RunLengthStream } from \"./run_length_stream.js\";\n\nconst MAX_LENGTH_TO_CACHE = 1000;\nconst MAX_ADLER32_LENGTH = 5552;\n\nfunction computeAdler32(bytes) {\n const bytesLength = bytes.length;\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n bytesLength < MAX_ADLER32_LENGTH,\n 'computeAdler32: Unsupported \"bytes\" length.'\n );\n }\n let a = 1,\n b = 0;\n for (let i = 0; i < bytesLength; ++i) {\n // No modulo required in the loop if `bytesLength < 5552`.\n a += bytes[i] & 0xff;\n b += a;\n }\n return (b % 65521 << 16) | a % 65521;\n}\n\nclass Parser {\n constructor({ lexer, xref, allowStreams = false, recoveryMode = false }) {\n this.lexer = lexer;\n this.xref = xref;\n this.allowStreams = allowStreams;\n this.recoveryMode = recoveryMode;\n\n this.imageCache = Object.create(null);\n this.refill();\n }\n\n refill() {\n this.buf1 = this.lexer.getObj();\n this.buf2 = this.lexer.getObj();\n }\n\n shift() {\n if (this.buf2 instanceof Cmd && this.buf2.cmd === \"ID\") {\n this.buf1 = this.buf2;\n this.buf2 = null;\n } else {\n this.buf1 = this.buf2;\n this.buf2 = this.lexer.getObj();\n }\n }\n\n tryShift() {\n try {\n this.shift();\n return true;\n } catch (e) {\n if (e instanceof MissingDataException) {\n throw e;\n }\n // Upon failure, the caller should reset this.lexer.pos to a known good\n // state and call this.shift() twice to reset the buffers.\n return false;\n }\n }\n\n getObj(cipherTransform = null) {\n const buf1 = this.buf1;\n this.shift();\n\n if (buf1 instanceof Cmd) {\n switch (buf1.cmd) {\n case \"BI\": // inline image\n return this.makeInlineImage(cipherTransform);\n case \"[\": // array\n const array = [];\n while (!isCmd(this.buf1, \"]\") && this.buf1 !== EOF) {\n array.push(this.getObj(cipherTransform));\n }\n if (this.buf1 === EOF) {\n if (this.recoveryMode) {\n return array;\n }\n throw new ParserEOFException(\"End of file inside array.\");\n }\n this.shift();\n return array;\n case \"<<\": // dictionary or stream\n const dict = new Dict(this.xref);\n while (!isCmd(this.buf1, \">>\") && this.buf1 !== EOF) {\n if (!(this.buf1 instanceof Name)) {\n info(\"Malformed dictionary: key must be a name object\");\n this.shift();\n continue;\n }\n\n const key = this.buf1.name;\n this.shift();\n if (this.buf1 === EOF) {\n break;\n }\n dict.set(key, this.getObj(cipherTransform));\n }\n if (this.buf1 === EOF) {\n if (this.recoveryMode) {\n return dict;\n }\n throw new ParserEOFException(\"End of file inside dictionary.\");\n }\n\n // Stream objects are not allowed inside content streams or\n // object streams.\n if (isCmd(this.buf2, \"stream\")) {\n return this.allowStreams\n ? this.makeStream(dict, cipherTransform)\n : dict;\n }\n this.shift();\n return dict;\n default: // simple object\n return buf1;\n }\n }\n\n if (Number.isInteger(buf1)) {\n // indirect reference or integer\n if (Number.isInteger(this.buf1) && isCmd(this.buf2, \"R\")) {\n const ref = Ref.get(buf1, this.buf1);\n this.shift();\n this.shift();\n return ref;\n }\n return buf1;\n }\n\n if (typeof buf1 === \"string\") {\n if (cipherTransform) {\n return cipherTransform.decryptString(buf1);\n }\n return buf1;\n }\n\n // simple object\n return buf1;\n }\n\n /**\n * Find the end of the stream by searching for the /EI\\s/.\n * @returns {number} The inline stream length.\n */\n findDefaultInlineStreamEnd(stream) {\n const E = 0x45,\n I = 0x49,\n SPACE = 0x20,\n LF = 0xa,\n CR = 0xd,\n NUL = 0x0;\n const lexer = this.lexer,\n startPos = stream.pos,\n n = 10;\n let state = 0,\n ch,\n maybeEIPos;\n while ((ch = stream.getByte()) !== -1) {\n if (state === 0) {\n state = ch === E ? 1 : 0;\n } else if (state === 1) {\n state = ch === I ? 2 : 0;\n } else {\n assert(state === 2, \"findDefaultInlineStreamEnd - invalid state.\");\n if (ch === SPACE || ch === LF || ch === CR) {\n maybeEIPos = stream.pos;\n // Let's check that the next `n` bytes are ASCII... just to be sure.\n const followingBytes = stream.peekBytes(n);\n for (let i = 0, ii = followingBytes.length; i < ii; i++) {\n ch = followingBytes[i];\n if (ch === NUL && followingBytes[i + 1] !== NUL) {\n // NUL bytes are not supposed to occur *outside* of inline\n // images, but some PDF generators violate that assumption,\n // thus breaking the EI detection heuristics used below.\n //\n // However, we can't unconditionally treat NUL bytes as \"ASCII\",\n // since that *could* result in inline images being truncated.\n //\n // To attempt to address this, we'll still treat any *sequence*\n // of NUL bytes as non-ASCII, but for a *single* NUL byte we'll\n // continue checking the `followingBytes` (fixes issue8823.pdf).\n continue;\n }\n if (ch !== LF && ch !== CR && (ch < SPACE || ch > 0x7f)) {\n // Not a LF, CR, SPACE or any visible ASCII character, i.e.\n // it's binary stuff. Resetting the state.\n state = 0;\n break;\n }\n }\n\n if (state !== 2) {\n continue;\n }\n // Check that the \"EI\" sequence isn't part of the image data, since\n // that would cause the image to be truncated (fixes issue11124.pdf).\n if (lexer.knownCommands) {\n const nextObj = lexer.peekObj();\n if (nextObj instanceof Cmd && !lexer.knownCommands[nextObj.cmd]) {\n // Not a valid command, i.e. the inline image data *itself*\n // contains an \"EI\" sequence. Resetting the state.\n state = 0;\n }\n } else {\n warn(\n \"findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.\"\n );\n }\n\n if (state === 2) {\n break; // Finished!\n }\n } else {\n state = 0;\n }\n }\n }\n\n if (ch === -1) {\n warn(\n \"findDefaultInlineStreamEnd: \" +\n \"Reached the end of the stream without finding a valid EI marker\"\n );\n if (maybeEIPos) {\n warn('... trying to recover by using the last \"EI\" occurrence.');\n stream.skip(-(stream.pos - maybeEIPos)); // Reset the stream position.\n }\n }\n\n let endOffset = 4;\n stream.skip(-endOffset); // Set the stream position to just before \"EI\".\n ch = stream.peekByte();\n stream.skip(endOffset); // ... and remember to reset the stream position.\n\n // Ensure that we don't accidentally truncate the inline image, when the\n // data is immediately followed by the \"EI\" marker (fixes issue10388.pdf).\n if (!isWhiteSpace(ch)) {\n endOffset--;\n }\n return stream.pos - endOffset - startPos;\n }\n\n /**\n * Find the EOI (end-of-image) marker 0xFFD9 of the stream.\n * @returns {number} The inline stream length.\n */\n findDCTDecodeInlineStreamEnd(stream) {\n const startPos = stream.pos;\n let foundEOI = false,\n b,\n markerLength;\n while ((b = stream.getByte()) !== -1) {\n if (b !== 0xff) {\n // Not a valid marker.\n continue;\n }\n switch (stream.getByte()) {\n case 0x00: // Byte stuffing.\n // 0xFF00 appears to be a very common byte sequence in JPEG images.\n break;\n\n case 0xff: // Fill byte.\n // Avoid skipping a valid marker, resetting the stream position.\n stream.skip(-1);\n break;\n\n case 0xd9: // EOI\n foundEOI = true;\n break;\n\n case 0xc0: // SOF0\n case 0xc1: // SOF1\n case 0xc2: // SOF2\n case 0xc3: // SOF3\n /* falls through */\n case 0xc5: // SOF5\n case 0xc6: // SOF6\n case 0xc7: // SOF7\n /* falls through */\n case 0xc9: // SOF9\n case 0xca: // SOF10\n case 0xcb: // SOF11\n /* falls through */\n case 0xcd: // SOF13\n case 0xce: // SOF14\n case 0xcf: // SOF15\n /* falls through */\n case 0xc4: // DHT\n case 0xcc: // DAC\n /* falls through */\n case 0xda: // SOS\n case 0xdb: // DQT\n case 0xdc: // DNL\n case 0xdd: // DRI\n case 0xde: // DHP\n case 0xdf: // EXP\n /* falls through */\n case 0xe0: // APP0\n case 0xe1: // APP1\n case 0xe2: // APP2\n case 0xe3: // APP3\n case 0xe4: // APP4\n case 0xe5: // APP5\n case 0xe6: // APP6\n case 0xe7: // APP7\n case 0xe8: // APP8\n case 0xe9: // APP9\n case 0xea: // APP10\n case 0xeb: // APP11\n case 0xec: // APP12\n case 0xed: // APP13\n case 0xee: // APP14\n case 0xef: // APP15\n /* falls through */\n case 0xfe: // COM\n // The marker should be followed by the length of the segment.\n markerLength = stream.getUint16();\n if (markerLength > 2) {\n // |markerLength| contains the byte length of the marker segment,\n // including its own length (2 bytes) and excluding the marker.\n stream.skip(markerLength - 2); // Jump to the next marker.\n } else {\n // The marker length is invalid, resetting the stream position.\n stream.skip(-2);\n }\n break;\n }\n if (foundEOI) {\n break;\n }\n }\n const length = stream.pos - startPos;\n if (b === -1) {\n warn(\n \"Inline DCTDecode image stream: \" +\n \"EOI marker not found, searching for /EI/ instead.\"\n );\n stream.skip(-length); // Reset the stream position.\n return this.findDefaultInlineStreamEnd(stream);\n }\n this.inlineStreamSkipEI(stream);\n return length;\n }\n\n /**\n * Find the EOD (end-of-data) marker '~>' (i.e. TILDE + GT) of the stream.\n * @returns {number} The inline stream length.\n */\n findASCII85DecodeInlineStreamEnd(stream) {\n const TILDE = 0x7e,\n GT = 0x3e;\n const startPos = stream.pos;\n let ch;\n while ((ch = stream.getByte()) !== -1) {\n if (ch === TILDE) {\n const tildePos = stream.pos;\n\n ch = stream.peekByte();\n // Handle corrupt PDF documents which contains whitespace \"inside\" of\n // the EOD marker (fixes issue10614.pdf).\n while (isWhiteSpace(ch)) {\n stream.skip();\n ch = stream.peekByte();\n }\n if (ch === GT) {\n stream.skip();\n break;\n }\n // Handle corrupt PDF documents which contains truncated EOD markers,\n // where the '>' character is missing (fixes issue11385.pdf).\n if (stream.pos > tildePos) {\n const maybeEI = stream.peekBytes(2);\n if (maybeEI[0] === /* E = */ 0x45 && maybeEI[1] === /* I = */ 0x49) {\n break;\n }\n }\n }\n }\n const length = stream.pos - startPos;\n if (ch === -1) {\n warn(\n \"Inline ASCII85Decode image stream: \" +\n \"EOD marker not found, searching for /EI/ instead.\"\n );\n stream.skip(-length); // Reset the stream position.\n return this.findDefaultInlineStreamEnd(stream);\n }\n this.inlineStreamSkipEI(stream);\n return length;\n }\n\n /**\n * Find the EOD (end-of-data) marker '>' (i.e. GT) of the stream.\n * @returns {number} The inline stream length.\n */\n findASCIIHexDecodeInlineStreamEnd(stream) {\n const GT = 0x3e;\n const startPos = stream.pos;\n let ch;\n while ((ch = stream.getByte()) !== -1) {\n if (ch === GT) {\n break;\n }\n }\n const length = stream.pos - startPos;\n if (ch === -1) {\n warn(\n \"Inline ASCIIHexDecode image stream: \" +\n \"EOD marker not found, searching for /EI/ instead.\"\n );\n stream.skip(-length); // Reset the stream position.\n return this.findDefaultInlineStreamEnd(stream);\n }\n this.inlineStreamSkipEI(stream);\n return length;\n }\n\n /**\n * Skip over the /EI/ for streams where we search for an EOD marker.\n */\n inlineStreamSkipEI(stream) {\n const E = 0x45,\n I = 0x49;\n let state = 0,\n ch;\n while ((ch = stream.getByte()) !== -1) {\n if (state === 0) {\n state = ch === E ? 1 : 0;\n } else if (state === 1) {\n state = ch === I ? 2 : 0;\n } else if (state === 2) {\n break;\n }\n }\n }\n\n makeInlineImage(cipherTransform) {\n const lexer = this.lexer;\n const stream = lexer.stream;\n\n // Parse dictionary.\n const dict = new Dict(this.xref);\n let dictLength;\n while (!isCmd(this.buf1, \"ID\") && this.buf1 !== EOF) {\n if (!(this.buf1 instanceof Name)) {\n throw new FormatError(\"Dictionary key must be a name object\");\n }\n const key = this.buf1.name;\n this.shift();\n if (this.buf1 === EOF) {\n break;\n }\n dict.set(key, this.getObj(cipherTransform));\n }\n if (lexer.beginInlineImagePos !== -1) {\n dictLength = stream.pos - lexer.beginInlineImagePos;\n }\n\n // Extract the name of the first (i.e. the current) image filter.\n const filter = dict.get(\"F\", \"Filter\");\n let filterName;\n if (filter instanceof Name) {\n filterName = filter.name;\n } else if (Array.isArray(filter)) {\n const filterZero = this.xref.fetchIfRef(filter[0]);\n if (filterZero instanceof Name) {\n filterName = filterZero.name;\n }\n }\n\n // Parse image stream.\n const startPos = stream.pos;\n let length;\n switch (filterName) {\n case \"DCT\":\n case \"DCTDecode\":\n length = this.findDCTDecodeInlineStreamEnd(stream);\n break;\n case \"A85\":\n case \"ASCII85Decode\":\n length = this.findASCII85DecodeInlineStreamEnd(stream);\n break;\n case \"AHx\":\n case \"ASCIIHexDecode\":\n length = this.findASCIIHexDecodeInlineStreamEnd(stream);\n break;\n default:\n length = this.findDefaultInlineStreamEnd(stream);\n }\n let imageStream = stream.makeSubStream(startPos, length, dict);\n\n // Cache all images below the MAX_LENGTH_TO_CACHE threshold by their\n // adler32 checksum.\n let cacheKey;\n if (length < MAX_LENGTH_TO_CACHE && dictLength < MAX_ADLER32_LENGTH) {\n const imageBytes = imageStream.getBytes();\n imageStream.reset();\n\n const initialStreamPos = stream.pos;\n // Set the stream position to the beginning of the dictionary data...\n stream.pos = lexer.beginInlineImagePos;\n // ... and fetch the bytes of the *entire* dictionary.\n const dictBytes = stream.getBytes(dictLength);\n // Finally, don't forget to reset the stream position.\n stream.pos = initialStreamPos;\n\n cacheKey = computeAdler32(imageBytes) + \"_\" + computeAdler32(dictBytes);\n\n const cacheEntry = this.imageCache[cacheKey];\n if (cacheEntry !== undefined) {\n this.buf2 = Cmd.get(\"EI\");\n this.shift();\n\n cacheEntry.reset();\n return cacheEntry;\n }\n }\n\n if (cipherTransform) {\n imageStream = cipherTransform.createStream(imageStream, length);\n }\n\n imageStream = this.filter(imageStream, dict, length);\n imageStream.dict = dict;\n if (cacheKey !== undefined) {\n imageStream.cacheKey = `inline_${length}_${cacheKey}`;\n this.imageCache[cacheKey] = imageStream;\n }\n\n this.buf2 = Cmd.get(\"EI\");\n this.shift();\n\n return imageStream;\n }\n\n _findStreamLength(startPos, signature) {\n const { stream } = this.lexer;\n stream.pos = startPos;\n\n const SCAN_BLOCK_LENGTH = 2048;\n const signatureLength = signature.length;\n\n while (stream.pos < stream.end) {\n const scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n const scanLength = scanBytes.length - signatureLength;\n\n if (scanLength <= 0) {\n break;\n }\n let pos = 0;\n while (pos < scanLength) {\n let j = 0;\n while (j < signatureLength && scanBytes[pos + j] === signature[j]) {\n j++;\n }\n if (j >= signatureLength) {\n // `signature` found.\n stream.pos += pos;\n return stream.pos - startPos;\n }\n pos++;\n }\n stream.pos += scanLength;\n }\n return -1;\n }\n\n makeStream(dict, cipherTransform) {\n const lexer = this.lexer;\n let stream = lexer.stream;\n\n // Get the stream's start position.\n lexer.skipToNextLine();\n const startPos = stream.pos - 1;\n\n // Get the length.\n let length = dict.get(\"Length\");\n if (!Number.isInteger(length)) {\n info(`Bad length \"${length && length.toString()}\" in stream.`);\n length = 0;\n }\n\n // Skip over the stream data.\n stream.pos = startPos + length;\n lexer.nextChar();\n\n // Shift '>>' and check whether the new object marks the end of the stream.\n if (this.tryShift() && isCmd(this.buf2, \"endstream\")) {\n this.shift(); // 'stream'\n } else {\n // Bad stream length, scanning for endstream command.\n const ENDSTREAM_SIGNATURE = new Uint8Array([\n 0x65, 0x6e, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d,\n ]);\n let actualLength = this._findStreamLength(startPos, ENDSTREAM_SIGNATURE);\n if (actualLength < 0) {\n // Only allow limited truncation of the endstream signature,\n // to prevent false positives.\n const MAX_TRUNCATION = 1;\n // Check if the PDF generator included truncated endstream commands,\n // such as e.g. \"endstrea\" (fixes issue10004.pdf).\n for (let i = 1; i <= MAX_TRUNCATION; i++) {\n const end = ENDSTREAM_SIGNATURE.length - i;\n const TRUNCATED_SIGNATURE = ENDSTREAM_SIGNATURE.slice(0, end);\n\n const maybeLength = this._findStreamLength(\n startPos,\n TRUNCATED_SIGNATURE\n );\n if (maybeLength >= 0) {\n // Ensure that the byte immediately following the truncated\n // endstream command is a space, to prevent false positives.\n const lastByte = stream.peekBytes(end + 1)[end];\n if (!isWhiteSpace(lastByte)) {\n break;\n }\n info(\n `Found \"${bytesToString(TRUNCATED_SIGNATURE)}\" when ` +\n \"searching for endstream command.\"\n );\n actualLength = maybeLength;\n break;\n }\n }\n\n if (actualLength < 0) {\n throw new FormatError(\"Missing endstream command.\");\n }\n }\n length = actualLength;\n\n lexer.nextChar();\n this.shift();\n this.shift();\n }\n this.shift(); // 'endstream'\n\n stream = stream.makeSubStream(startPos, length, dict);\n if (cipherTransform) {\n stream = cipherTransform.createStream(stream, length);\n }\n stream = this.filter(stream, dict, length);\n stream.dict = dict;\n return stream;\n }\n\n filter(stream, dict, length) {\n let filter = dict.get(\"F\", \"Filter\");\n let params = dict.get(\"DP\", \"DecodeParms\");\n\n if (filter instanceof Name) {\n if (Array.isArray(params)) {\n warn(\"/DecodeParms should not be an Array, when /Filter is a Name.\");\n }\n return this.makeFilter(stream, filter.name, length, params);\n }\n\n let maybeLength = length;\n if (Array.isArray(filter)) {\n const filterArray = filter;\n const paramsArray = params;\n for (let i = 0, ii = filterArray.length; i < ii; ++i) {\n filter = this.xref.fetchIfRef(filterArray[i]);\n if (!(filter instanceof Name)) {\n throw new FormatError(`Bad filter name \"${filter}\"`);\n }\n\n params = null;\n if (Array.isArray(paramsArray) && i in paramsArray) {\n params = this.xref.fetchIfRef(paramsArray[i]);\n }\n stream = this.makeFilter(stream, filter.name, maybeLength, params);\n // After the first stream the `length` variable is invalid.\n maybeLength = null;\n }\n }\n return stream;\n }\n\n makeFilter(stream, name, maybeLength, params) {\n // Since the 'Length' entry in the stream dictionary can be completely\n // wrong, e.g. zero for non-empty streams, only skip parsing the stream\n // when we can be absolutely certain that it actually is empty.\n if (maybeLength === 0) {\n warn(`Empty \"${name}\" stream.`);\n return new NullStream();\n }\n const xrefStats = this.xref.stats;\n\n try {\n switch (name) {\n case \"Fl\":\n case \"FlateDecode\":\n xrefStats.addStreamType(StreamType.FLATE);\n if (params) {\n return new PredictorStream(\n new FlateStream(stream, maybeLength),\n maybeLength,\n params\n );\n }\n return new FlateStream(stream, maybeLength);\n case \"LZW\":\n case \"LZWDecode\":\n xrefStats.addStreamType(StreamType.LZW);\n let earlyChange = 1;\n if (params) {\n if (params.has(\"EarlyChange\")) {\n earlyChange = params.get(\"EarlyChange\");\n }\n return new PredictorStream(\n new LZWStream(stream, maybeLength, earlyChange),\n maybeLength,\n params\n );\n }\n return new LZWStream(stream, maybeLength, earlyChange);\n case \"DCT\":\n case \"DCTDecode\":\n xrefStats.addStreamType(StreamType.DCT);\n return new JpegStream(stream, maybeLength, params);\n case \"JPX\":\n case \"JPXDecode\":\n xrefStats.addStreamType(StreamType.JPX);\n return new JpxStream(stream, maybeLength, params);\n case \"A85\":\n case \"ASCII85Decode\":\n xrefStats.addStreamType(StreamType.A85);\n return new Ascii85Stream(stream, maybeLength);\n case \"AHx\":\n case \"ASCIIHexDecode\":\n xrefStats.addStreamType(StreamType.AHX);\n return new AsciiHexStream(stream, maybeLength);\n case \"CCF\":\n case \"CCITTFaxDecode\":\n xrefStats.addStreamType(StreamType.CCF);\n return new CCITTFaxStream(stream, maybeLength, params);\n case \"RL\":\n case \"RunLengthDecode\":\n xrefStats.addStreamType(StreamType.RLX);\n return new RunLengthStream(stream, maybeLength);\n case \"JBIG2Decode\":\n xrefStats.addStreamType(StreamType.JBIG);\n return new Jbig2Stream(stream, maybeLength, params);\n }\n warn(`Filter \"${name}\" is not supported.`);\n return stream;\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`Invalid stream: \"${ex}\"`);\n return new NullStream();\n }\n }\n}\n\n// A '1' in this array means the character is white space. A '1' or\n// '2' means the character ends a name or command.\n// prettier-ignore\nconst specialChars = [\n 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, // 0x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x\n 1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, // 2x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, // 3x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 4x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, // 5x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 6x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, // 7x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 8x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 9x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // ax\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // bx\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // cx\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // dx\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // ex\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 // fx\n];\n\nfunction toHexDigit(ch) {\n if (ch >= /* '0' = */ 0x30 && ch /* '9' = */ <= 0x39) {\n return ch & 0x0f;\n }\n if (\n (ch >= /* 'A' = */ 0x41 && ch <= /* 'F' = */ 0x46) ||\n (ch >= /* 'a' = */ 0x61 && ch <= /* 'f' = */ 0x66)\n ) {\n return (ch & 0x0f) + 9;\n }\n return -1;\n}\n\nclass Lexer {\n constructor(stream, knownCommands = null) {\n this.stream = stream;\n this.nextChar();\n\n // While lexing, we build up many strings one char at a time. Using += for\n // this can result in lots of garbage strings. It's better to build an\n // array of single-char strings and then join() them together at the end.\n // And reusing a single array (i.e. |this.strBuf|) over and over for this\n // purpose uses less memory than using a new array for each string.\n this.strBuf = [];\n\n // The PDFs might have \"glued\" commands with other commands, operands or\n // literals, e.g. \"q1\". The knownCommands is a dictionary of the valid\n // commands and their prefixes. The prefixes are built the following way:\n // if there a command that is a prefix of the other valid command or\n // literal (e.g. 'f' and 'false') the following prefixes must be included,\n // 'fa', 'fal', 'fals'. The prefixes are not needed, if the command has no\n // other commands or literals as a prefix. The knowCommands is optional.\n this.knownCommands = knownCommands;\n\n this._hexStringNumWarn = 0;\n this.beginInlineImagePos = -1;\n }\n\n nextChar() {\n return (this.currentChar = this.stream.getByte());\n }\n\n peekChar() {\n return this.stream.peekByte();\n }\n\n getNumber() {\n let ch = this.currentChar;\n let eNotation = false;\n let divideBy = 0; // Different from 0 if it's a floating point value.\n let sign = 0;\n\n if (ch === /* '-' = */ 0x2d) {\n sign = -1;\n ch = this.nextChar();\n\n if (ch === /* '-' = */ 0x2d) {\n // Ignore double negative (this is consistent with Adobe Reader).\n ch = this.nextChar();\n }\n } else if (ch === /* '+' = */ 0x2b) {\n sign = 1;\n ch = this.nextChar();\n }\n if (ch === /* LF = */ 0x0a || ch === /* CR = */ 0x0d) {\n // Ignore line-breaks (this is consistent with Adobe Reader).\n do {\n ch = this.nextChar();\n } while (ch === 0x0a || ch === 0x0d);\n }\n if (ch === /* '.' = */ 0x2e) {\n divideBy = 10;\n ch = this.nextChar();\n }\n if (ch < /* '0' = */ 0x30 || ch > /* '9' = */ 0x39) {\n if (isWhiteSpace(ch) || ch === /* EOF = */ -1) {\n // This is consistent with Adobe Reader (fixes issue9252.pdf).\n if (divideBy === 10 && sign === 0) {\n warn(\"Lexer.getNumber - treating a single decimal point as zero.\");\n return 0;\n }\n // This is consistent with Adobe Reader (fixes bug1753983.pdf).\n if (divideBy === 0 && sign === -1) {\n warn(\"Lexer.getNumber - treating a single minus sign as zero.\");\n return 0;\n }\n }\n throw new FormatError(\n `Invalid number: ${String.fromCharCode(ch)} (charCode ${ch})`\n );\n }\n\n sign = sign || 1;\n let baseValue = ch - 0x30; // '0'\n let powerValue = 0;\n let powerValueSign = 1;\n\n while ((ch = this.nextChar()) >= 0) {\n if (ch >= /* '0' = */ 0x30 && ch <= /* '9' = */ 0x39) {\n const currentDigit = ch - 0x30; // '0'\n if (eNotation) {\n // We are after an 'e' or 'E'.\n powerValue = powerValue * 10 + currentDigit;\n } else {\n if (divideBy !== 0) {\n // We are after a point.\n divideBy *= 10;\n }\n baseValue = baseValue * 10 + currentDigit;\n }\n } else if (ch === /* '.' = */ 0x2e) {\n if (divideBy === 0) {\n divideBy = 1;\n } else {\n // A number can have only one dot.\n break;\n }\n } else if (ch === /* '-' = */ 0x2d) {\n // Ignore minus signs in the middle of numbers to match\n // Adobe's behavior.\n warn(\"Badly formatted number: minus sign in the middle\");\n } else if (ch === /* 'E' = */ 0x45 || ch === /* 'e' = */ 0x65) {\n // 'E' can be either a scientific notation or the beginning of a new\n // operator.\n ch = this.peekChar();\n if (ch === /* '+' = */ 0x2b || ch === /* '-' = */ 0x2d) {\n powerValueSign = ch === 0x2d ? -1 : 1;\n this.nextChar(); // Consume the sign character.\n } else if (ch < /* '0' = */ 0x30 || ch > /* '9' = */ 0x39) {\n // The 'E' must be the beginning of a new operator.\n break;\n }\n eNotation = true;\n } else {\n // The last character doesn't belong to us.\n break;\n }\n }\n\n if (divideBy !== 0) {\n baseValue /= divideBy;\n }\n if (eNotation) {\n baseValue *= 10 ** (powerValueSign * powerValue);\n }\n return sign * baseValue;\n }\n\n getString() {\n let numParen = 1;\n let done = false;\n const strBuf = this.strBuf;\n strBuf.length = 0;\n\n let ch = this.nextChar();\n while (true) {\n let charBuffered = false;\n switch (ch | 0) {\n case -1:\n warn(\"Unterminated string\");\n done = true;\n break;\n case 0x28: // '('\n ++numParen;\n strBuf.push(\"(\");\n break;\n case 0x29: // ')'\n if (--numParen === 0) {\n this.nextChar(); // consume strings ')'\n done = true;\n } else {\n strBuf.push(\")\");\n }\n break;\n case 0x5c: // '\\\\'\n ch = this.nextChar();\n switch (ch) {\n case -1:\n warn(\"Unterminated string\");\n done = true;\n break;\n case 0x6e: // 'n'\n strBuf.push(\"\\n\");\n break;\n case 0x72: // 'r'\n strBuf.push(\"\\r\");\n break;\n case 0x74: // 't'\n strBuf.push(\"\\t\");\n break;\n case 0x62: // 'b'\n strBuf.push(\"\\b\");\n break;\n case 0x66: // 'f'\n strBuf.push(\"\\f\");\n break;\n case 0x5c: // '\\'\n case 0x28: // '('\n case 0x29: // ')'\n strBuf.push(String.fromCharCode(ch));\n break;\n case 0x30: // '0'\n case 0x31: // '1'\n case 0x32: // '2'\n case 0x33: // '3'\n case 0x34: // '4'\n case 0x35: // '5'\n case 0x36: // '6'\n case 0x37: // '7'\n let x = ch & 0x0f;\n ch = this.nextChar();\n charBuffered = true;\n if (ch >= /* '0' = */ 0x30 && ch <= /* '7' = */ 0x37) {\n x = (x << 3) + (ch & 0x0f);\n ch = this.nextChar();\n if (ch >= /* '0' = */ 0x30 && ch /* '7' = */ <= 0x37) {\n charBuffered = false;\n x = (x << 3) + (ch & 0x0f);\n }\n }\n strBuf.push(String.fromCharCode(x));\n break;\n case 0x0d: // CR\n if (this.peekChar() === /* LF = */ 0x0a) {\n this.nextChar();\n }\n break;\n case 0x0a: // LF\n break;\n default:\n strBuf.push(String.fromCharCode(ch));\n break;\n }\n break;\n default:\n strBuf.push(String.fromCharCode(ch));\n break;\n }\n if (done) {\n break;\n }\n if (!charBuffered) {\n ch = this.nextChar();\n }\n }\n return strBuf.join(\"\");\n }\n\n getName() {\n let ch, previousCh;\n const strBuf = this.strBuf;\n strBuf.length = 0;\n\n while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n if (ch === /* '#' = */ 0x23) {\n ch = this.nextChar();\n if (specialChars[ch]) {\n warn(\n \"Lexer_getName: \" +\n \"NUMBER SIGN (#) should be followed by a hexadecimal number.\"\n );\n strBuf.push(\"#\");\n break;\n }\n const x = toHexDigit(ch);\n if (x !== -1) {\n previousCh = ch;\n ch = this.nextChar();\n const x2 = toHexDigit(ch);\n if (x2 === -1) {\n warn(\n `Lexer_getName: Illegal digit (${String.fromCharCode(ch)}) ` +\n \"in hexadecimal number.\"\n );\n strBuf.push(\"#\", String.fromCharCode(previousCh));\n if (specialChars[ch]) {\n break;\n }\n strBuf.push(String.fromCharCode(ch));\n continue;\n }\n strBuf.push(String.fromCharCode((x << 4) | x2));\n } else {\n strBuf.push(\"#\", String.fromCharCode(ch));\n }\n } else {\n strBuf.push(String.fromCharCode(ch));\n }\n }\n if (strBuf.length > 127) {\n warn(`Name token is longer than allowed by the spec: ${strBuf.length}`);\n }\n return Name.get(strBuf.join(\"\"));\n }\n\n /**\n * @private\n */\n _hexStringWarn(ch) {\n const MAX_HEX_STRING_NUM_WARN = 5;\n\n if (this._hexStringNumWarn++ === MAX_HEX_STRING_NUM_WARN) {\n warn(\"getHexString - ignoring additional invalid characters.\");\n return;\n }\n if (this._hexStringNumWarn > MAX_HEX_STRING_NUM_WARN) {\n // Limit the number of warning messages printed for a `this.getHexString`\n // invocation, since corrupt PDF documents may otherwise spam the console\n // enough to affect general performance negatively.\n return;\n }\n warn(`getHexString - ignoring invalid character: ${ch}`);\n }\n\n getHexString() {\n const strBuf = this.strBuf;\n strBuf.length = 0;\n let ch = this.currentChar;\n let isFirstHex = true;\n let firstDigit, secondDigit;\n this._hexStringNumWarn = 0;\n\n while (true) {\n if (ch < 0) {\n warn(\"Unterminated hex string\");\n break;\n } else if (ch === /* '>' = */ 0x3e) {\n this.nextChar();\n break;\n } else if (specialChars[ch] === 1) {\n ch = this.nextChar();\n continue;\n } else {\n if (isFirstHex) {\n firstDigit = toHexDigit(ch);\n if (firstDigit === -1) {\n this._hexStringWarn(ch);\n ch = this.nextChar();\n continue;\n }\n } else {\n secondDigit = toHexDigit(ch);\n if (secondDigit === -1) {\n this._hexStringWarn(ch);\n ch = this.nextChar();\n continue;\n }\n strBuf.push(String.fromCharCode((firstDigit << 4) | secondDigit));\n }\n isFirstHex = !isFirstHex;\n ch = this.nextChar();\n }\n }\n return strBuf.join(\"\");\n }\n\n getObj() {\n // Skip whitespace and comments.\n let comment = false;\n let ch = this.currentChar;\n while (true) {\n if (ch < 0) {\n return EOF;\n }\n if (comment) {\n if (ch === /* LF = */ 0x0a || ch === /* CR = */ 0x0d) {\n comment = false;\n }\n } else if (ch === /* '%' = */ 0x25) {\n comment = true;\n } else if (specialChars[ch] !== 1) {\n break;\n }\n ch = this.nextChar();\n }\n\n // Start reading a token.\n switch (ch | 0) {\n case 0x30: // '0'\n case 0x31: // '1'\n case 0x32: // '2'\n case 0x33: // '3'\n case 0x34: // '4'\n case 0x35: // '5'\n case 0x36: // '6'\n case 0x37: // '7'\n case 0x38: // '8'\n case 0x39: // '9'\n case 0x2b: // '+'\n case 0x2d: // '-'\n case 0x2e: // '.'\n return this.getNumber();\n case 0x28: // '('\n return this.getString();\n case 0x2f: // '/'\n return this.getName();\n // array punctuation\n case 0x5b: // '['\n this.nextChar();\n return Cmd.get(\"[\");\n case 0x5d: // ']'\n this.nextChar();\n return Cmd.get(\"]\");\n // hex string or dict punctuation\n case 0x3c: // '<'\n ch = this.nextChar();\n if (ch === 0x3c) {\n // dict punctuation\n this.nextChar();\n return Cmd.get(\"<<\");\n }\n return this.getHexString();\n // dict punctuation\n case 0x3e: // '>'\n ch = this.nextChar();\n if (ch === 0x3e) {\n this.nextChar();\n return Cmd.get(\">>\");\n }\n return Cmd.get(\">\");\n case 0x7b: // '{'\n this.nextChar();\n return Cmd.get(\"{\");\n case 0x7d: // '}'\n this.nextChar();\n return Cmd.get(\"}\");\n case 0x29: // ')'\n // Consume the current character in order to avoid permanently hanging\n // the worker thread if `Lexer.getObj` is called from within a loop\n // containing try-catch statements, since we would otherwise attempt\n // to parse the *same* character over and over (fixes issue8061.pdf).\n this.nextChar();\n throw new FormatError(`Illegal character: ${ch}`);\n }\n\n // Start reading a command.\n let str = String.fromCharCode(ch);\n // A valid command cannot start with a non-visible ASCII character,\n // and the next character may be (the start of) a valid command.\n if (ch < 0x20 || ch > 0x7f) {\n const nextCh = this.peekChar();\n if (nextCh >= 0x20 && nextCh <= 0x7f) {\n this.nextChar();\n return Cmd.get(str);\n }\n }\n const knownCommands = this.knownCommands;\n let knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n // Stop if a known command is found and next character does not make\n // the string a command.\n const possibleCommand = str + String.fromCharCode(ch);\n if (knownCommandFound && knownCommands[possibleCommand] === undefined) {\n break;\n }\n if (str.length === 128) {\n throw new FormatError(`Command token too long: ${str.length}`);\n }\n str = possibleCommand;\n knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n }\n if (str === \"true\") {\n return true;\n }\n if (str === \"false\") {\n return false;\n }\n if (str === \"null\") {\n return null;\n }\n\n if (str === \"BI\") {\n // Keep track of the current stream position, since it's needed in order\n // to correctly cache inline images; see `Parser.makeInlineImage`.\n this.beginInlineImagePos = this.stream.pos;\n }\n\n return Cmd.get(str);\n }\n\n peekObj() {\n const streamPos = this.stream.pos,\n currentChar = this.currentChar,\n beginInlineImagePos = this.beginInlineImagePos;\n\n let nextObj;\n try {\n nextObj = this.getObj();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`peekObj: ${ex}`);\n }\n // Ensure that we reset *all* relevant `Lexer`-instance state.\n this.stream.pos = streamPos;\n this.currentChar = currentChar;\n this.beginInlineImagePos = beginInlineImagePos;\n\n return nextObj;\n }\n\n skipToNextLine() {\n let ch = this.currentChar;\n while (ch >= 0) {\n if (ch === /* CR = */ 0x0d) {\n ch = this.nextChar();\n if (ch === /* LF = */ 0x0a) {\n this.nextChar();\n }\n break;\n } else if (ch === /* LF = */ 0x0a) {\n this.nextChar();\n break;\n }\n ch = this.nextChar();\n }\n }\n}\n\nclass Linearization {\n static create(stream) {\n function getInt(linDict, name, allowZeroValue = false) {\n const obj = linDict.get(name);\n if (Number.isInteger(obj) && (allowZeroValue ? obj >= 0 : obj > 0)) {\n return obj;\n }\n throw new Error(\n `The \"${name}\" parameter in the linearization ` +\n \"dictionary is invalid.\"\n );\n }\n\n function getHints(linDict) {\n const hints = linDict.get(\"H\");\n let hintsLength;\n\n if (\n Array.isArray(hints) &&\n ((hintsLength = hints.length) === 2 || hintsLength === 4)\n ) {\n for (let index = 0; index < hintsLength; index++) {\n const hint = hints[index];\n if (!(Number.isInteger(hint) && hint > 0)) {\n throw new Error(\n `Hint (${index}) in the linearization dictionary is invalid.`\n );\n }\n }\n return hints;\n }\n throw new Error(\"Hint array in the linearization dictionary is invalid.\");\n }\n\n const parser = new Parser({\n lexer: new Lexer(stream),\n xref: null,\n });\n const obj1 = parser.getObj();\n const obj2 = parser.getObj();\n const obj3 = parser.getObj();\n const linDict = parser.getObj();\n let obj, length;\n if (\n !(\n Number.isInteger(obj1) &&\n Number.isInteger(obj2) &&\n isCmd(obj3, \"obj\") &&\n linDict instanceof Dict &&\n typeof (obj = linDict.get(\"Linearized\")) === \"number\" &&\n obj > 0\n )\n ) {\n return null; // No valid linearization dictionary found.\n } else if ((length = getInt(linDict, \"L\")) !== stream.length) {\n throw new Error(\n 'The \"L\" parameter in the linearization dictionary ' +\n \"does not equal the stream length.\"\n );\n }\n return {\n length,\n hints: getHints(linDict),\n objectNumberFirst: getInt(linDict, \"O\"),\n endFirst: getInt(linDict, \"E\"),\n numPages: getInt(linDict, \"N\"),\n mainXRefEntriesOffset: getInt(linDict, \"T\"),\n pageFirst: linDict.has(\"P\")\n ? getInt(linDict, \"P\", /* allowZeroValue = */ true)\n : 0,\n };\n }\n}\n\nexport { Lexer, Linearization, Parser };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { isWhiteSpace } from \"./core_utils.js\";\n\nclass Ascii85Stream extends DecodeStream {\n constructor(str, maybeLength) {\n // Most streams increase in size when decoded, but Ascii85 streams\n // typically shrink by ~20%.\n if (maybeLength) {\n maybeLength *= 0.8;\n }\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n this.input = new Uint8Array(5);\n }\n\n readBlock() {\n const TILDA_CHAR = 0x7e; // '~'\n const Z_LOWER_CHAR = 0x7a; // 'z'\n const EOF = -1;\n\n const str = this.str;\n\n let c = str.getByte();\n while (isWhiteSpace(c)) {\n c = str.getByte();\n }\n\n if (c === EOF || c === TILDA_CHAR) {\n this.eof = true;\n return;\n }\n\n const bufferLength = this.bufferLength;\n let buffer, i;\n\n // special code for z\n if (c === Z_LOWER_CHAR) {\n buffer = this.ensureBuffer(bufferLength + 4);\n for (i = 0; i < 4; ++i) {\n buffer[bufferLength + i] = 0;\n }\n this.bufferLength += 4;\n } else {\n const input = this.input;\n input[0] = c;\n for (i = 1; i < 5; ++i) {\n c = str.getByte();\n while (isWhiteSpace(c)) {\n c = str.getByte();\n }\n\n input[i] = c;\n\n if (c === EOF || c === TILDA_CHAR) {\n break;\n }\n }\n buffer = this.ensureBuffer(bufferLength + i - 1);\n this.bufferLength += i - 1;\n\n // partial ending;\n if (i < 5) {\n for (; i < 5; ++i) {\n input[i] = 0x21 + 84;\n }\n this.eof = true;\n }\n let t = 0;\n for (i = 0; i < 5; ++i) {\n t = t * 85 + (input[i] - 0x21);\n }\n\n for (i = 3; i >= 0; --i) {\n buffer[bufferLength + i] = t & 0xff;\n t >>= 8;\n }\n }\n }\n}\n\nexport { Ascii85Stream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseStream } from \"./base_stream.js\";\nimport { Stream } from \"./stream.js\";\n\n// Lots of DecodeStreams are created whose buffers are never used. For these\n// we share a single empty buffer. This is (a) space-efficient and (b) avoids\n// having special cases that would be required if we used |null| for an empty\n// buffer.\nconst emptyBuffer = new Uint8Array(0);\n\n// Super class for the decoding streams.\nclass DecodeStream extends BaseStream {\n constructor(maybeMinBufferLength) {\n super();\n this._rawMinBufferLength = maybeMinBufferLength || 0;\n\n this.pos = 0;\n this.bufferLength = 0;\n this.eof = false;\n this.buffer = emptyBuffer;\n this.minBufferLength = 512;\n if (maybeMinBufferLength) {\n // Compute the first power of two that is as big as maybeMinBufferLength.\n while (this.minBufferLength < maybeMinBufferLength) {\n this.minBufferLength *= 2;\n }\n }\n }\n\n get isEmpty() {\n while (!this.eof && this.bufferLength === 0) {\n this.readBlock();\n }\n return this.bufferLength === 0;\n }\n\n ensureBuffer(requested) {\n const buffer = this.buffer;\n if (requested <= buffer.byteLength) {\n return buffer;\n }\n let size = this.minBufferLength;\n while (size < requested) {\n size *= 2;\n }\n const buffer2 = new Uint8Array(size);\n buffer2.set(buffer);\n return (this.buffer = buffer2);\n }\n\n getByte() {\n const pos = this.pos;\n while (this.bufferLength <= pos) {\n if (this.eof) {\n return -1;\n }\n this.readBlock();\n }\n return this.buffer[this.pos++];\n }\n\n getBytes(length) {\n const pos = this.pos;\n let end;\n\n if (length) {\n this.ensureBuffer(pos + length);\n end = pos + length;\n\n while (!this.eof && this.bufferLength < end) {\n this.readBlock();\n }\n const bufEnd = this.bufferLength;\n if (end > bufEnd) {\n end = bufEnd;\n }\n } else {\n while (!this.eof) {\n this.readBlock();\n }\n end = this.bufferLength;\n }\n\n this.pos = end;\n return this.buffer.subarray(pos, end);\n }\n\n reset() {\n this.pos = 0;\n }\n\n makeSubStream(start, length, dict = null) {\n if (length === undefined) {\n while (!this.eof) {\n this.readBlock();\n }\n } else {\n const end = start + length;\n while (this.bufferLength <= end && !this.eof) {\n this.readBlock();\n }\n }\n return new Stream(this.buffer, start, length, dict);\n }\n\n getBaseStreams() {\n return this.str ? this.str.getBaseStreams() : null;\n }\n}\n\nclass StreamsSequenceStream extends DecodeStream {\n constructor(streams, onError = null) {\n let maybeLength = 0;\n for (const stream of streams) {\n maybeLength +=\n stream instanceof DecodeStream\n ? stream._rawMinBufferLength\n : stream.length;\n }\n super(maybeLength);\n\n this.streams = streams;\n this._onError = onError;\n }\n\n readBlock() {\n const streams = this.streams;\n if (streams.length === 0) {\n this.eof = true;\n return;\n }\n const stream = streams.shift();\n let chunk;\n try {\n chunk = stream.getBytes();\n } catch (reason) {\n if (this._onError) {\n this._onError(reason, stream.dict && stream.dict.objId);\n return;\n }\n throw reason;\n }\n const bufferLength = this.bufferLength;\n const newLength = bufferLength + chunk.length;\n const buffer = this.ensureBuffer(newLength);\n buffer.set(chunk, bufferLength);\n this.bufferLength = newLength;\n }\n\n getBaseStreams() {\n const baseStreamsBuf = [];\n for (const stream of this.streams) {\n const baseStreams = stream.getBaseStreams();\n if (baseStreams) {\n baseStreamsBuf.push(...baseStreams);\n }\n }\n return baseStreamsBuf.length > 0 ? baseStreamsBuf : null;\n }\n}\n\nexport { DecodeStream, StreamsSequenceStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\n\nclass AsciiHexStream extends DecodeStream {\n constructor(str, maybeLength) {\n // Most streams increase in size when decoded, but AsciiHex streams shrink\n // by 50%.\n if (maybeLength) {\n maybeLength *= 0.5;\n }\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n\n this.firstDigit = -1;\n }\n\n readBlock() {\n const UPSTREAM_BLOCK_SIZE = 8000;\n const bytes = this.str.getBytes(UPSTREAM_BLOCK_SIZE);\n if (!bytes.length) {\n this.eof = true;\n return;\n }\n\n const maxDecodeLength = (bytes.length + 1) >> 1;\n const buffer = this.ensureBuffer(this.bufferLength + maxDecodeLength);\n let bufferLength = this.bufferLength;\n\n let firstDigit = this.firstDigit;\n for (const ch of bytes) {\n let digit;\n if (ch >= /* '0' = */ 0x30 && ch <= /* '9' = */ 0x39) {\n digit = ch & 0x0f;\n } else if (\n (ch >= /* 'A' = */ 0x41 && ch <= /* 'Z' = */ 0x46) ||\n (ch >= /* 'a' = */ 0x61 && ch <= /* 'z' = */ 0x66)\n ) {\n digit = (ch & 0x0f) + 9;\n } else if (ch === /* '>' = */ 0x3e) {\n this.eof = true;\n break;\n } else {\n // Probably whitespace, ignoring.\n continue;\n }\n if (firstDigit < 0) {\n firstDigit = digit;\n } else {\n buffer[bufferLength++] = (firstDigit << 4) | digit;\n firstDigit = -1;\n }\n }\n if (firstDigit >= 0 && this.eof) {\n // incomplete byte\n buffer[bufferLength++] = firstDigit << 4;\n firstDigit = -1;\n }\n this.firstDigit = firstDigit;\n this.bufferLength = bufferLength;\n }\n}\n\nexport { AsciiHexStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CCITTFaxDecoder } from \"./ccitt.js\";\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { Dict } from \"./primitives.js\";\n\nclass CCITTFaxStream extends DecodeStream {\n constructor(str, maybeLength, params) {\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n\n if (!(params instanceof Dict)) {\n params = Dict.empty;\n }\n\n const source = {\n next() {\n return str.getByte();\n },\n };\n this.ccittFaxDecoder = new CCITTFaxDecoder(source, {\n K: params.get(\"K\"),\n EndOfLine: params.get(\"EndOfLine\"),\n EncodedByteAlign: params.get(\"EncodedByteAlign\"),\n Columns: params.get(\"Columns\"),\n Rows: params.get(\"Rows\"),\n EndOfBlock: params.get(\"EndOfBlock\"),\n BlackIs1: params.get(\"BlackIs1\"),\n });\n }\n\n readBlock() {\n while (!this.eof) {\n const c = this.ccittFaxDecoder.readNextChar();\n if (c === -1) {\n this.eof = true;\n return;\n }\n this.ensureBuffer(this.bufferLength + 1);\n this.buffer[this.bufferLength++] = c;\n }\n }\n}\n\nexport { CCITTFaxStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Copyright 1996-2003 Glyph & Cog, LLC\n *\n * The CCITT stream implementation contained in this file is a JavaScript port\n * of XPDF's implementation, made available under the Apache 2.0 open source\n * license.\n */\n\nimport { FormatError, info } from \"../shared/util.js\";\n\n/**\n * @typedef {Object} CCITTFaxDecoderSource\n * @property {function} next - Method that return one byte of data for decoding,\n * or -1 when EOF is reached.\n */\n\nconst ccittEOL = -2;\nconst ccittEOF = -1;\nconst twoDimPass = 0;\nconst twoDimHoriz = 1;\nconst twoDimVert0 = 2;\nconst twoDimVertR1 = 3;\nconst twoDimVertL1 = 4;\nconst twoDimVertR2 = 5;\nconst twoDimVertL2 = 6;\nconst twoDimVertR3 = 7;\nconst twoDimVertL3 = 8;\n\n// prettier-ignore\nconst twoDimTable = [\n [-1, -1], [-1, -1], // 000000x\n [7, twoDimVertL3], // 0000010\n [7, twoDimVertR3], // 0000011\n [6, twoDimVertL2], [6, twoDimVertL2], // 000010x\n [6, twoDimVertR2], [6, twoDimVertR2], // 000011x\n [4, twoDimPass], [4, twoDimPass], // 0001xxx\n [4, twoDimPass], [4, twoDimPass],\n [4, twoDimPass], [4, twoDimPass],\n [4, twoDimPass], [4, twoDimPass],\n [3, twoDimHoriz], [3, twoDimHoriz], // 001xxxx\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimVertL1], [3, twoDimVertL1], // 010xxxx\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertR1], [3, twoDimVertR1], // 011xxxx\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [1, twoDimVert0], [1, twoDimVert0], // 1xxxxxx\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0]\n];\n\n// prettier-ignore\nconst whiteTable1 = [\n [-1, -1], // 00000\n [12, ccittEOL], // 00001\n [-1, -1], [-1, -1], // 0001x\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 001xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 010xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 011xx\n [11, 1792], [11, 1792], // 1000x\n [12, 1984], // 10010\n [12, 2048], // 10011\n [12, 2112], // 10100\n [12, 2176], // 10101\n [12, 2240], // 10110\n [12, 2304], // 10111\n [11, 1856], [11, 1856], // 1100x\n [11, 1920], [11, 1920], // 1101x\n [12, 2368], // 11100\n [12, 2432], // 11101\n [12, 2496], // 11110\n [12, 2560] // 11111\n];\n\n// prettier-ignore\nconst whiteTable2 = [\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 0000000xx\n [8, 29], [8, 29], // 00000010x\n [8, 30], [8, 30], // 00000011x\n [8, 45], [8, 45], // 00000100x\n [8, 46], [8, 46], // 00000101x\n [7, 22], [7, 22], [7, 22], [7, 22], // 0000011xx\n [7, 23], [7, 23], [7, 23], [7, 23], // 0000100xx\n [8, 47], [8, 47], // 00001010x\n [8, 48], [8, 48], // 00001011x\n [6, 13], [6, 13], [6, 13], [6, 13], // 000011xxx\n [6, 13], [6, 13], [6, 13], [6, 13],\n [7, 20], [7, 20], [7, 20], [7, 20], // 0001000xx\n [8, 33], [8, 33], // 00010010x\n [8, 34], [8, 34], // 00010011x\n [8, 35], [8, 35], // 00010100x\n [8, 36], [8, 36], // 00010101x\n [8, 37], [8, 37], // 00010110x\n [8, 38], [8, 38], // 00010111x\n [7, 19], [7, 19], [7, 19], [7, 19], // 0001100xx\n [8, 31], [8, 31], // 00011010x\n [8, 32], [8, 32], // 00011011x\n [6, 1], [6, 1], [6, 1], [6, 1], // 000111xxx\n [6, 1], [6, 1], [6, 1], [6, 1],\n [6, 12], [6, 12], [6, 12], [6, 12], // 001000xxx\n [6, 12], [6, 12], [6, 12], [6, 12],\n [8, 53], [8, 53], // 00100100x\n [8, 54], [8, 54], // 00100101x\n [7, 26], [7, 26], [7, 26], [7, 26], // 0010011xx\n [8, 39], [8, 39], // 00101000x\n [8, 40], [8, 40], // 00101001x\n [8, 41], [8, 41], // 00101010x\n [8, 42], [8, 42], // 00101011x\n [8, 43], [8, 43], // 00101100x\n [8, 44], [8, 44], // 00101101x\n [7, 21], [7, 21], [7, 21], [7, 21], // 0010111xx\n [7, 28], [7, 28], [7, 28], [7, 28], // 0011000xx\n [8, 61], [8, 61], // 00110010x\n [8, 62], [8, 62], // 00110011x\n [8, 63], [8, 63], // 00110100x\n [8, 0], [8, 0], // 00110101x\n [8, 320], [8, 320], // 00110110x\n [8, 384], [8, 384], // 00110111x\n [5, 10], [5, 10], [5, 10], [5, 10], // 00111xxxx\n [5, 10], [5, 10], [5, 10], [5, 10],\n [5, 10], [5, 10], [5, 10], [5, 10],\n [5, 10], [5, 10], [5, 10], [5, 10],\n [5, 11], [5, 11], [5, 11], [5, 11], // 01000xxxx\n [5, 11], [5, 11], [5, 11], [5, 11],\n [5, 11], [5, 11], [5, 11], [5, 11],\n [5, 11], [5, 11], [5, 11], [5, 11],\n [7, 27], [7, 27], [7, 27], [7, 27], // 0100100xx\n [8, 59], [8, 59], // 01001010x\n [8, 60], [8, 60], // 01001011x\n [9, 1472], // 010011000\n [9, 1536], // 010011001\n [9, 1600], // 010011010\n [9, 1728], // 010011011\n [7, 18], [7, 18], [7, 18], [7, 18], // 0100111xx\n [7, 24], [7, 24], [7, 24], [7, 24], // 0101000xx\n [8, 49], [8, 49], // 01010010x\n [8, 50], [8, 50], // 01010011x\n [8, 51], [8, 51], // 01010100x\n [8, 52], [8, 52], // 01010101x\n [7, 25], [7, 25], [7, 25], [7, 25], // 0101011xx\n [8, 55], [8, 55], // 01011000x\n [8, 56], [8, 56], // 01011001x\n [8, 57], [8, 57], // 01011010x\n [8, 58], [8, 58], // 01011011x\n [6, 192], [6, 192], [6, 192], [6, 192], // 010111xxx\n [6, 192], [6, 192], [6, 192], [6, 192],\n [6, 1664], [6, 1664], [6, 1664], [6, 1664], // 011000xxx\n [6, 1664], [6, 1664], [6, 1664], [6, 1664],\n [8, 448], [8, 448], // 01100100x\n [8, 512], [8, 512], // 01100101x\n [9, 704], // 011001100\n [9, 768], // 011001101\n [8, 640], [8, 640], // 01100111x\n [8, 576], [8, 576], // 01101000x\n [9, 832], // 011010010\n [9, 896], // 011010011\n [9, 960], // 011010100\n [9, 1024], // 011010101\n [9, 1088], // 011010110\n [9, 1152], // 011010111\n [9, 1216], // 011011000\n [9, 1280], // 011011001\n [9, 1344], // 011011010\n [9, 1408], // 011011011\n [7, 256], [7, 256], [7, 256], [7, 256], // 0110111xx\n [4, 2], [4, 2], [4, 2], [4, 2], // 0111xxxxx\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 3], [4, 3], [4, 3], [4, 3], // 1000xxxxx\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [5, 128], [5, 128], [5, 128], [5, 128], // 10010xxxx\n [5, 128], [5, 128], [5, 128], [5, 128],\n [5, 128], [5, 128], [5, 128], [5, 128],\n [5, 128], [5, 128], [5, 128], [5, 128],\n [5, 8], [5, 8], [5, 8], [5, 8], // 10011xxxx\n [5, 8], [5, 8], [5, 8], [5, 8],\n [5, 8], [5, 8], [5, 8], [5, 8],\n [5, 8], [5, 8], [5, 8], [5, 8],\n [5, 9], [5, 9], [5, 9], [5, 9], // 10100xxxx\n [5, 9], [5, 9], [5, 9], [5, 9],\n [5, 9], [5, 9], [5, 9], [5, 9],\n [5, 9], [5, 9], [5, 9], [5, 9],\n [6, 16], [6, 16], [6, 16], [6, 16], // 101010xxx\n [6, 16], [6, 16], [6, 16], [6, 16],\n [6, 17], [6, 17], [6, 17], [6, 17], // 101011xxx\n [6, 17], [6, 17], [6, 17], [6, 17],\n [4, 4], [4, 4], [4, 4], [4, 4], // 1011xxxxx\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 5], [4, 5], [4, 5], [4, 5], // 1100xxxxx\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [6, 14], [6, 14], [6, 14], [6, 14], // 110100xxx\n [6, 14], [6, 14], [6, 14], [6, 14],\n [6, 15], [6, 15], [6, 15], [6, 15], // 110101xxx\n [6, 15], [6, 15], [6, 15], [6, 15],\n [5, 64], [5, 64], [5, 64], [5, 64], // 11011xxxx\n [5, 64], [5, 64], [5, 64], [5, 64],\n [5, 64], [5, 64], [5, 64], [5, 64],\n [5, 64], [5, 64], [5, 64], [5, 64],\n [4, 6], [4, 6], [4, 6], [4, 6], // 1110xxxxx\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 7], [4, 7], [4, 7], [4, 7], // 1111xxxxx\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7]\n];\n\n// prettier-ignore\nconst blackTable1 = [\n [-1, -1], [-1, -1], // 000000000000x\n [12, ccittEOL], [12, ccittEOL], // 000000000001x\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000001xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000010xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000011xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000100xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000101xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000110xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000111xx\n [11, 1792], [11, 1792], [11, 1792], [11, 1792], // 00000001000xx\n [12, 1984], [12, 1984], // 000000010010x\n [12, 2048], [12, 2048], // 000000010011x\n [12, 2112], [12, 2112], // 000000010100x\n [12, 2176], [12, 2176], // 000000010101x\n [12, 2240], [12, 2240], // 000000010110x\n [12, 2304], [12, 2304], // 000000010111x\n [11, 1856], [11, 1856], [11, 1856], [11, 1856], // 00000001100xx\n [11, 1920], [11, 1920], [11, 1920], [11, 1920], // 00000001101xx\n [12, 2368], [12, 2368], // 000000011100x\n [12, 2432], [12, 2432], // 000000011101x\n [12, 2496], [12, 2496], // 000000011110x\n [12, 2560], [12, 2560], // 000000011111x\n [10, 18], [10, 18], [10, 18], [10, 18], // 0000001000xxx\n [10, 18], [10, 18], [10, 18], [10, 18],\n [12, 52], [12, 52], // 000000100100x\n [13, 640], // 0000001001010\n [13, 704], // 0000001001011\n [13, 768], // 0000001001100\n [13, 832], // 0000001001101\n [12, 55], [12, 55], // 000000100111x\n [12, 56], [12, 56], // 000000101000x\n [13, 1280], // 0000001010010\n [13, 1344], // 0000001010011\n [13, 1408], // 0000001010100\n [13, 1472], // 0000001010101\n [12, 59], [12, 59], // 000000101011x\n [12, 60], [12, 60], // 000000101100x\n [13, 1536], // 0000001011010\n [13, 1600], // 0000001011011\n [11, 24], [11, 24], [11, 24], [11, 24], // 00000010111xx\n [11, 25], [11, 25], [11, 25], [11, 25], // 00000011000xx\n [13, 1664], // 0000001100100\n [13, 1728], // 0000001100101\n [12, 320], [12, 320], // 000000110011x\n [12, 384], [12, 384], // 000000110100x\n [12, 448], [12, 448], // 000000110101x\n [13, 512], // 0000001101100\n [13, 576], // 0000001101101\n [12, 53], [12, 53], // 000000110111x\n [12, 54], [12, 54], // 000000111000x\n [13, 896], // 0000001110010\n [13, 960], // 0000001110011\n [13, 1024], // 0000001110100\n [13, 1088], // 0000001110101\n [13, 1152], // 0000001110110\n [13, 1216], // 0000001110111\n [10, 64], [10, 64], [10, 64], [10, 64], // 0000001111xxx\n [10, 64], [10, 64], [10, 64], [10, 64]\n];\n\n// prettier-ignore\nconst blackTable2 = [\n [8, 13], [8, 13], [8, 13], [8, 13], // 00000100xxxx\n [8, 13], [8, 13], [8, 13], [8, 13],\n [8, 13], [8, 13], [8, 13], [8, 13],\n [8, 13], [8, 13], [8, 13], [8, 13],\n [11, 23], [11, 23], // 00000101000x\n [12, 50], // 000001010010\n [12, 51], // 000001010011\n [12, 44], // 000001010100\n [12, 45], // 000001010101\n [12, 46], // 000001010110\n [12, 47], // 000001010111\n [12, 57], // 000001011000\n [12, 58], // 000001011001\n [12, 61], // 000001011010\n [12, 256], // 000001011011\n [10, 16], [10, 16], [10, 16], [10, 16], // 0000010111xx\n [10, 17], [10, 17], [10, 17], [10, 17], // 0000011000xx\n [12, 48], // 000001100100\n [12, 49], // 000001100101\n [12, 62], // 000001100110\n [12, 63], // 000001100111\n [12, 30], // 000001101000\n [12, 31], // 000001101001\n [12, 32], // 000001101010\n [12, 33], // 000001101011\n [12, 40], // 000001101100\n [12, 41], // 000001101101\n [11, 22], [11, 22], // 00000110111x\n [8, 14], [8, 14], [8, 14], [8, 14], // 00000111xxxx\n [8, 14], [8, 14], [8, 14], [8, 14],\n [8, 14], [8, 14], [8, 14], [8, 14],\n [8, 14], [8, 14], [8, 14], [8, 14],\n [7, 10], [7, 10], [7, 10], [7, 10], // 0000100xxxxx\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 11], [7, 11], [7, 11], [7, 11], // 0000101xxxxx\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [9, 15], [9, 15], [9, 15], [9, 15], // 000011000xxx\n [9, 15], [9, 15], [9, 15], [9, 15],\n [12, 128], // 000011001000\n [12, 192], // 000011001001\n [12, 26], // 000011001010\n [12, 27], // 000011001011\n [12, 28], // 000011001100\n [12, 29], // 000011001101\n [11, 19], [11, 19], // 00001100111x\n [11, 20], [11, 20], // 00001101000x\n [12, 34], // 000011010010\n [12, 35], // 000011010011\n [12, 36], // 000011010100\n [12, 37], // 000011010101\n [12, 38], // 000011010110\n [12, 39], // 000011010111\n [11, 21], [11, 21], // 00001101100x\n [12, 42], // 000011011010\n [12, 43], // 000011011011\n [10, 0], [10, 0], [10, 0], [10, 0], // 0000110111xx\n [7, 12], [7, 12], [7, 12], [7, 12], // 0000111xxxxx\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12]\n];\n\n// prettier-ignore\nconst blackTable3 = [\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 0000xx\n [6, 9], // 000100\n [6, 8], // 000101\n [5, 7], [5, 7], // 00011x\n [4, 6], [4, 6], [4, 6], [4, 6], // 0010xx\n [4, 5], [4, 5], [4, 5], [4, 5], // 0011xx\n [3, 1], [3, 1], [3, 1], [3, 1], // 010xxx\n [3, 1], [3, 1], [3, 1], [3, 1],\n [3, 4], [3, 4], [3, 4], [3, 4], // 011xxx\n [3, 4], [3, 4], [3, 4], [3, 4],\n [2, 3], [2, 3], [2, 3], [2, 3], // 10xxxx\n [2, 3], [2, 3], [2, 3], [2, 3],\n [2, 3], [2, 3], [2, 3], [2, 3],\n [2, 3], [2, 3], [2, 3], [2, 3],\n [2, 2], [2, 2], [2, 2], [2, 2], // 11xxxx\n [2, 2], [2, 2], [2, 2], [2, 2],\n [2, 2], [2, 2], [2, 2], [2, 2],\n [2, 2], [2, 2], [2, 2], [2, 2]\n];\n\n/**\n * @param {CCITTFaxDecoderSource} source - The data which should be decoded.\n * @param {Object} [options] - Decoding options.\n */\nclass CCITTFaxDecoder {\n constructor(source, options = {}) {\n if (!source || typeof source.next !== \"function\") {\n throw new Error('CCITTFaxDecoder - invalid \"source\" parameter.');\n }\n this.source = source;\n this.eof = false;\n\n this.encoding = options.K || 0;\n this.eoline = options.EndOfLine || false;\n this.byteAlign = options.EncodedByteAlign || false;\n this.columns = options.Columns || 1728;\n this.rows = options.Rows || 0;\n let eoblock = options.EndOfBlock;\n if (eoblock === null || eoblock === undefined) {\n eoblock = true;\n }\n this.eoblock = eoblock;\n this.black = options.BlackIs1 || false;\n\n this.codingLine = new Uint32Array(this.columns + 1);\n this.refLine = new Uint32Array(this.columns + 2);\n\n this.codingLine[0] = this.columns;\n this.codingPos = 0;\n\n this.row = 0;\n this.nextLine2D = this.encoding < 0;\n this.inputBits = 0;\n this.inputBuf = 0;\n this.outputBits = 0;\n this.rowsDone = false;\n\n let code1;\n while ((code1 = this._lookBits(12)) === 0) {\n this._eatBits(1);\n }\n if (code1 === 1) {\n this._eatBits(12);\n }\n if (this.encoding > 0) {\n this.nextLine2D = !this._lookBits(1);\n this._eatBits(1);\n }\n }\n\n readNextChar() {\n if (this.eof) {\n return -1;\n }\n const refLine = this.refLine;\n const codingLine = this.codingLine;\n const columns = this.columns;\n\n let refPos, blackPixels, bits, i;\n\n if (this.outputBits === 0) {\n if (this.rowsDone) {\n this.eof = true;\n }\n if (this.eof) {\n return -1;\n }\n this.err = false;\n\n let code1, code2, code3;\n if (this.nextLine2D) {\n for (i = 0; codingLine[i] < columns; ++i) {\n refLine[i] = codingLine[i];\n }\n refLine[i++] = columns;\n refLine[i] = columns;\n codingLine[0] = 0;\n this.codingPos = 0;\n refPos = 0;\n blackPixels = 0;\n\n while (codingLine[this.codingPos] < columns) {\n code1 = this._getTwoDimCode();\n switch (code1) {\n case twoDimPass:\n this._addPixels(refLine[refPos + 1], blackPixels);\n if (refLine[refPos + 1] < columns) {\n refPos += 2;\n }\n break;\n case twoDimHoriz:\n code1 = code2 = 0;\n if (blackPixels) {\n do {\n code1 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n do {\n code2 += code3 = this._getWhiteCode();\n } while (code3 >= 64);\n } else {\n do {\n code1 += code3 = this._getWhiteCode();\n } while (code3 >= 64);\n do {\n code2 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n }\n this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n if (codingLine[this.codingPos] < columns) {\n this._addPixels(\n codingLine[this.codingPos] + code2,\n blackPixels ^ 1\n );\n }\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n break;\n case twoDimVertR3:\n this._addPixels(refLine[refPos] + 3, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertR2:\n this._addPixels(refLine[refPos] + 2, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertR1:\n this._addPixels(refLine[refPos] + 1, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVert0:\n this._addPixels(refLine[refPos], blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL3:\n this._addPixelsNeg(refLine[refPos] - 3, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL2:\n this._addPixelsNeg(refLine[refPos] - 2, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL1:\n this._addPixelsNeg(refLine[refPos] - 1, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case ccittEOF:\n this._addPixels(columns, 0);\n this.eof = true;\n break;\n default:\n info(\"bad 2d code\");\n this._addPixels(columns, 0);\n this.err = true;\n }\n }\n } else {\n codingLine[0] = 0;\n this.codingPos = 0;\n blackPixels = 0;\n while (codingLine[this.codingPos] < columns) {\n code1 = 0;\n if (blackPixels) {\n do {\n code1 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n } else {\n do {\n code1 += code3 = this._getWhiteCode();\n } while (code3 >= 64);\n }\n this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n blackPixels ^= 1;\n }\n }\n\n let gotEOL = false;\n\n if (this.byteAlign) {\n this.inputBits &= ~7;\n }\n\n if (!this.eoblock && this.row === this.rows - 1) {\n this.rowsDone = true;\n } else {\n code1 = this._lookBits(12);\n if (this.eoline) {\n while (code1 !== ccittEOF && code1 !== 1) {\n this._eatBits(1);\n code1 = this._lookBits(12);\n }\n } else {\n while (code1 === 0) {\n this._eatBits(1);\n code1 = this._lookBits(12);\n }\n }\n if (code1 === 1) {\n this._eatBits(12);\n gotEOL = true;\n } else if (code1 === ccittEOF) {\n this.eof = true;\n }\n }\n\n if (!this.eof && this.encoding > 0 && !this.rowsDone) {\n this.nextLine2D = !this._lookBits(1);\n this._eatBits(1);\n }\n\n if (this.eoblock && gotEOL && this.byteAlign) {\n code1 = this._lookBits(12);\n if (code1 === 1) {\n this._eatBits(12);\n if (this.encoding > 0) {\n this._lookBits(1);\n this._eatBits(1);\n }\n if (this.encoding >= 0) {\n for (i = 0; i < 4; ++i) {\n code1 = this._lookBits(12);\n if (code1 !== 1) {\n info(\"bad rtc code: \" + code1);\n }\n this._eatBits(12);\n if (this.encoding > 0) {\n this._lookBits(1);\n this._eatBits(1);\n }\n }\n }\n this.eof = true;\n }\n } else if (this.err && this.eoline) {\n while (true) {\n code1 = this._lookBits(13);\n if (code1 === ccittEOF) {\n this.eof = true;\n return -1;\n }\n if (code1 >> 1 === 1) {\n break;\n }\n this._eatBits(1);\n }\n this._eatBits(12);\n if (this.encoding > 0) {\n this._eatBits(1);\n this.nextLine2D = !(code1 & 1);\n }\n }\n\n if (codingLine[0] > 0) {\n this.outputBits = codingLine[(this.codingPos = 0)];\n } else {\n this.outputBits = codingLine[(this.codingPos = 1)];\n }\n this.row++;\n }\n\n let c;\n if (this.outputBits >= 8) {\n c = this.codingPos & 1 ? 0 : 0xff;\n this.outputBits -= 8;\n if (this.outputBits === 0 && codingLine[this.codingPos] < columns) {\n this.codingPos++;\n this.outputBits =\n codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n }\n } else {\n bits = 8;\n c = 0;\n do {\n if (typeof this.outputBits !== \"number\") {\n throw new FormatError(\n 'Invalid /CCITTFaxDecode data, \"outputBits\" must be a number.'\n );\n }\n\n if (this.outputBits > bits) {\n c <<= bits;\n if (!(this.codingPos & 1)) {\n c |= 0xff >> (8 - bits);\n }\n this.outputBits -= bits;\n bits = 0;\n } else {\n c <<= this.outputBits;\n if (!(this.codingPos & 1)) {\n c |= 0xff >> (8 - this.outputBits);\n }\n bits -= this.outputBits;\n this.outputBits = 0;\n if (codingLine[this.codingPos] < columns) {\n this.codingPos++;\n this.outputBits =\n codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n } else if (bits > 0) {\n c <<= bits;\n bits = 0;\n }\n }\n } while (bits);\n }\n if (this.black) {\n c ^= 0xff;\n }\n return c;\n }\n\n /**\n * @private\n */\n _addPixels(a1, blackPixels) {\n const codingLine = this.codingLine;\n let codingPos = this.codingPos;\n\n if (a1 > codingLine[codingPos]) {\n if (a1 > this.columns) {\n info(\"row is wrong length\");\n this.err = true;\n a1 = this.columns;\n }\n if ((codingPos & 1) ^ blackPixels) {\n ++codingPos;\n }\n\n codingLine[codingPos] = a1;\n }\n this.codingPos = codingPos;\n }\n\n /**\n * @private\n */\n _addPixelsNeg(a1, blackPixels) {\n const codingLine = this.codingLine;\n let codingPos = this.codingPos;\n\n if (a1 > codingLine[codingPos]) {\n if (a1 > this.columns) {\n info(\"row is wrong length\");\n this.err = true;\n a1 = this.columns;\n }\n if ((codingPos & 1) ^ blackPixels) {\n ++codingPos;\n }\n\n codingLine[codingPos] = a1;\n } else if (a1 < codingLine[codingPos]) {\n if (a1 < 0) {\n info(\"invalid code\");\n this.err = true;\n a1 = 0;\n }\n while (codingPos > 0 && a1 < codingLine[codingPos - 1]) {\n --codingPos;\n }\n codingLine[codingPos] = a1;\n }\n\n this.codingPos = codingPos;\n }\n\n /**\n * This function returns the code found from the table.\n * The start and end parameters set the boundaries for searching the table.\n * The limit parameter is optional. Function returns an array with three\n * values. The first array element indicates whether a valid code is being\n * returned. The second array element is the actual code. The third array\n * element indicates whether EOF was reached.\n * @private\n */\n _findTableCode(start, end, table, limit) {\n const limitValue = limit || 0;\n for (let i = start; i <= end; ++i) {\n let code = this._lookBits(i);\n if (code === ccittEOF) {\n return [true, 1, false];\n }\n if (i < end) {\n code <<= end - i;\n }\n if (!limitValue || code >= limitValue) {\n const p = table[code - limitValue];\n if (p[0] === i) {\n this._eatBits(i);\n return [true, p[1], true];\n }\n }\n }\n return [false, 0, false];\n }\n\n /**\n * @private\n */\n _getTwoDimCode() {\n let code = 0;\n let p;\n if (this.eoblock) {\n code = this._lookBits(7);\n p = twoDimTable[code];\n if (p && p[0] > 0) {\n this._eatBits(p[0]);\n return p[1];\n }\n } else {\n const result = this._findTableCode(1, 7, twoDimTable);\n if (result[0] && result[2]) {\n return result[1];\n }\n }\n info(\"Bad two dim code\");\n return ccittEOF;\n }\n\n /**\n * @private\n */\n _getWhiteCode() {\n let code = 0;\n let p;\n if (this.eoblock) {\n code = this._lookBits(12);\n if (code === ccittEOF) {\n return 1;\n }\n\n if (code >> 5 === 0) {\n p = whiteTable1[code];\n } else {\n p = whiteTable2[code >> 3];\n }\n\n if (p[0] > 0) {\n this._eatBits(p[0]);\n return p[1];\n }\n } else {\n let result = this._findTableCode(1, 9, whiteTable2);\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(11, 12, whiteTable1);\n if (result[0]) {\n return result[1];\n }\n }\n info(\"bad white code\");\n this._eatBits(1);\n return 1;\n }\n\n /**\n * @private\n */\n _getBlackCode() {\n let code, p;\n if (this.eoblock) {\n code = this._lookBits(13);\n if (code === ccittEOF) {\n return 1;\n }\n if (code >> 7 === 0) {\n p = blackTable1[code];\n } else if (code >> 9 === 0 && code >> 7 !== 0) {\n p = blackTable2[(code >> 1) - 64];\n } else {\n p = blackTable3[code >> 7];\n }\n\n if (p[0] > 0) {\n this._eatBits(p[0]);\n return p[1];\n }\n } else {\n let result = this._findTableCode(2, 6, blackTable3);\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(7, 12, blackTable2, 64);\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(10, 13, blackTable1);\n if (result[0]) {\n return result[1];\n }\n }\n info(\"bad black code\");\n this._eatBits(1);\n return 1;\n }\n\n /**\n * @private\n */\n _lookBits(n) {\n let c;\n while (this.inputBits < n) {\n if ((c = this.source.next()) === -1) {\n if (this.inputBits === 0) {\n return ccittEOF;\n }\n return (this.inputBuf << (n - this.inputBits)) & (0xffff >> (16 - n));\n }\n this.inputBuf = (this.inputBuf << 8) | c;\n this.inputBits += 8;\n }\n return (this.inputBuf >> (this.inputBits - n)) & (0xffff >> (16 - n));\n }\n\n /**\n * @private\n */\n _eatBits(n) {\n if ((this.inputBits -= n) < 0) {\n this.inputBits = 0;\n }\n }\n}\n\nexport { CCITTFaxDecoder };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Copyright 1996-2003 Glyph & Cog, LLC\n *\n * The flate stream implementation contained in this file is a JavaScript port\n * of XPDF's implementation, made available under the Apache 2.0 open source\n * license.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { FormatError } from \"../shared/util.js\";\n\nconst codeLenCodeMap = new Int32Array([\n 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15,\n]);\n\nconst lengthDecode = new Int32Array([\n 0x00003, 0x00004, 0x00005, 0x00006, 0x00007, 0x00008, 0x00009, 0x0000a,\n 0x1000b, 0x1000d, 0x1000f, 0x10011, 0x20013, 0x20017, 0x2001b, 0x2001f,\n 0x30023, 0x3002b, 0x30033, 0x3003b, 0x40043, 0x40053, 0x40063, 0x40073,\n 0x50083, 0x500a3, 0x500c3, 0x500e3, 0x00102, 0x00102, 0x00102,\n]);\n\nconst distDecode = new Int32Array([\n 0x00001, 0x00002, 0x00003, 0x00004, 0x10005, 0x10007, 0x20009, 0x2000d,\n 0x30011, 0x30019, 0x40021, 0x40031, 0x50041, 0x50061, 0x60081, 0x600c1,\n 0x70101, 0x70181, 0x80201, 0x80301, 0x90401, 0x90601, 0xa0801, 0xa0c01,\n 0xb1001, 0xb1801, 0xc2001, 0xc3001, 0xd4001, 0xd6001,\n]);\n\nconst fixedLitCodeTab = [\n new Int32Array([\n 0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c0,\n 0x70108, 0x80060, 0x80020, 0x900a0, 0x80000, 0x80080, 0x80040, 0x900e0,\n 0x70104, 0x80058, 0x80018, 0x90090, 0x70114, 0x80078, 0x80038, 0x900d0,\n 0x7010c, 0x80068, 0x80028, 0x900b0, 0x80008, 0x80088, 0x80048, 0x900f0,\n 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c8,\n 0x7010a, 0x80064, 0x80024, 0x900a8, 0x80004, 0x80084, 0x80044, 0x900e8,\n 0x70106, 0x8005c, 0x8001c, 0x90098, 0x70116, 0x8007c, 0x8003c, 0x900d8,\n 0x7010e, 0x8006c, 0x8002c, 0x900b8, 0x8000c, 0x8008c, 0x8004c, 0x900f8,\n 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c4,\n 0x70109, 0x80062, 0x80022, 0x900a4, 0x80002, 0x80082, 0x80042, 0x900e4,\n 0x70105, 0x8005a, 0x8001a, 0x90094, 0x70115, 0x8007a, 0x8003a, 0x900d4,\n 0x7010d, 0x8006a, 0x8002a, 0x900b4, 0x8000a, 0x8008a, 0x8004a, 0x900f4,\n 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cc,\n 0x7010b, 0x80066, 0x80026, 0x900ac, 0x80006, 0x80086, 0x80046, 0x900ec,\n 0x70107, 0x8005e, 0x8001e, 0x9009c, 0x70117, 0x8007e, 0x8003e, 0x900dc,\n 0x7010f, 0x8006e, 0x8002e, 0x900bc, 0x8000e, 0x8008e, 0x8004e, 0x900fc,\n 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c2,\n 0x70108, 0x80061, 0x80021, 0x900a2, 0x80001, 0x80081, 0x80041, 0x900e2,\n 0x70104, 0x80059, 0x80019, 0x90092, 0x70114, 0x80079, 0x80039, 0x900d2,\n 0x7010c, 0x80069, 0x80029, 0x900b2, 0x80009, 0x80089, 0x80049, 0x900f2,\n 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900ca,\n 0x7010a, 0x80065, 0x80025, 0x900aa, 0x80005, 0x80085, 0x80045, 0x900ea,\n 0x70106, 0x8005d, 0x8001d, 0x9009a, 0x70116, 0x8007d, 0x8003d, 0x900da,\n 0x7010e, 0x8006d, 0x8002d, 0x900ba, 0x8000d, 0x8008d, 0x8004d, 0x900fa,\n 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c6,\n 0x70109, 0x80063, 0x80023, 0x900a6, 0x80003, 0x80083, 0x80043, 0x900e6,\n 0x70105, 0x8005b, 0x8001b, 0x90096, 0x70115, 0x8007b, 0x8003b, 0x900d6,\n 0x7010d, 0x8006b, 0x8002b, 0x900b6, 0x8000b, 0x8008b, 0x8004b, 0x900f6,\n 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900ce,\n 0x7010b, 0x80067, 0x80027, 0x900ae, 0x80007, 0x80087, 0x80047, 0x900ee,\n 0x70107, 0x8005f, 0x8001f, 0x9009e, 0x70117, 0x8007f, 0x8003f, 0x900de,\n 0x7010f, 0x8006f, 0x8002f, 0x900be, 0x8000f, 0x8008f, 0x8004f, 0x900fe,\n 0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c1,\n 0x70108, 0x80060, 0x80020, 0x900a1, 0x80000, 0x80080, 0x80040, 0x900e1,\n 0x70104, 0x80058, 0x80018, 0x90091, 0x70114, 0x80078, 0x80038, 0x900d1,\n 0x7010c, 0x80068, 0x80028, 0x900b1, 0x80008, 0x80088, 0x80048, 0x900f1,\n 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c9,\n 0x7010a, 0x80064, 0x80024, 0x900a9, 0x80004, 0x80084, 0x80044, 0x900e9,\n 0x70106, 0x8005c, 0x8001c, 0x90099, 0x70116, 0x8007c, 0x8003c, 0x900d9,\n 0x7010e, 0x8006c, 0x8002c, 0x900b9, 0x8000c, 0x8008c, 0x8004c, 0x900f9,\n 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c5,\n 0x70109, 0x80062, 0x80022, 0x900a5, 0x80002, 0x80082, 0x80042, 0x900e5,\n 0x70105, 0x8005a, 0x8001a, 0x90095, 0x70115, 0x8007a, 0x8003a, 0x900d5,\n 0x7010d, 0x8006a, 0x8002a, 0x900b5, 0x8000a, 0x8008a, 0x8004a, 0x900f5,\n 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cd,\n 0x7010b, 0x80066, 0x80026, 0x900ad, 0x80006, 0x80086, 0x80046, 0x900ed,\n 0x70107, 0x8005e, 0x8001e, 0x9009d, 0x70117, 0x8007e, 0x8003e, 0x900dd,\n 0x7010f, 0x8006e, 0x8002e, 0x900bd, 0x8000e, 0x8008e, 0x8004e, 0x900fd,\n 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c3,\n 0x70108, 0x80061, 0x80021, 0x900a3, 0x80001, 0x80081, 0x80041, 0x900e3,\n 0x70104, 0x80059, 0x80019, 0x90093, 0x70114, 0x80079, 0x80039, 0x900d3,\n 0x7010c, 0x80069, 0x80029, 0x900b3, 0x80009, 0x80089, 0x80049, 0x900f3,\n 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900cb,\n 0x7010a, 0x80065, 0x80025, 0x900ab, 0x80005, 0x80085, 0x80045, 0x900eb,\n 0x70106, 0x8005d, 0x8001d, 0x9009b, 0x70116, 0x8007d, 0x8003d, 0x900db,\n 0x7010e, 0x8006d, 0x8002d, 0x900bb, 0x8000d, 0x8008d, 0x8004d, 0x900fb,\n 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c7,\n 0x70109, 0x80063, 0x80023, 0x900a7, 0x80003, 0x80083, 0x80043, 0x900e7,\n 0x70105, 0x8005b, 0x8001b, 0x90097, 0x70115, 0x8007b, 0x8003b, 0x900d7,\n 0x7010d, 0x8006b, 0x8002b, 0x900b7, 0x8000b, 0x8008b, 0x8004b, 0x900f7,\n 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900cf,\n 0x7010b, 0x80067, 0x80027, 0x900af, 0x80007, 0x80087, 0x80047, 0x900ef,\n 0x70107, 0x8005f, 0x8001f, 0x9009f, 0x70117, 0x8007f, 0x8003f, 0x900df,\n 0x7010f, 0x8006f, 0x8002f, 0x900bf, 0x8000f, 0x8008f, 0x8004f, 0x900ff,\n ]),\n 9,\n];\n\nconst fixedDistCodeTab = [\n new Int32Array([\n 0x50000, 0x50010, 0x50008, 0x50018, 0x50004, 0x50014, 0x5000c, 0x5001c,\n 0x50002, 0x50012, 0x5000a, 0x5001a, 0x50006, 0x50016, 0x5000e, 0x00000,\n 0x50001, 0x50011, 0x50009, 0x50019, 0x50005, 0x50015, 0x5000d, 0x5001d,\n 0x50003, 0x50013, 0x5000b, 0x5001b, 0x50007, 0x50017, 0x5000f, 0x00000,\n ]),\n 5,\n];\n\nclass FlateStream extends DecodeStream {\n constructor(str, maybeLength) {\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n\n const cmf = str.getByte();\n const flg = str.getByte();\n if (cmf === -1 || flg === -1) {\n throw new FormatError(`Invalid header in flate stream: ${cmf}, ${flg}`);\n }\n if ((cmf & 0x0f) !== 0x08) {\n throw new FormatError(\n `Unknown compression method in flate stream: ${cmf}, ${flg}`\n );\n }\n if (((cmf << 8) + flg) % 31 !== 0) {\n throw new FormatError(`Bad FCHECK in flate stream: ${cmf}, ${flg}`);\n }\n if (flg & 0x20) {\n throw new FormatError(`FDICT bit set in flate stream: ${cmf}, ${flg}`);\n }\n\n this.codeSize = 0;\n this.codeBuf = 0;\n }\n\n getBits(bits) {\n const str = this.str;\n let codeSize = this.codeSize;\n let codeBuf = this.codeBuf;\n\n let b;\n while (codeSize < bits) {\n if ((b = str.getByte()) === -1) {\n throw new FormatError(\"Bad encoding in flate stream\");\n }\n codeBuf |= b << codeSize;\n codeSize += 8;\n }\n b = codeBuf & ((1 << bits) - 1);\n this.codeBuf = codeBuf >> bits;\n this.codeSize = codeSize -= bits;\n\n return b;\n }\n\n getCode(table) {\n const str = this.str;\n const codes = table[0];\n const maxLen = table[1];\n let codeSize = this.codeSize;\n let codeBuf = this.codeBuf;\n\n let b;\n while (codeSize < maxLen) {\n if ((b = str.getByte()) === -1) {\n // premature end of stream. code might however still be valid.\n // codeSize < codeLen check below guards against incomplete codeVal.\n break;\n }\n codeBuf |= b << codeSize;\n codeSize += 8;\n }\n const code = codes[codeBuf & ((1 << maxLen) - 1)];\n const codeLen = code >> 16;\n const codeVal = code & 0xffff;\n if (codeLen < 1 || codeSize < codeLen) {\n throw new FormatError(\"Bad encoding in flate stream\");\n }\n this.codeBuf = codeBuf >> codeLen;\n this.codeSize = codeSize - codeLen;\n return codeVal;\n }\n\n generateHuffmanTable(lengths) {\n const n = lengths.length;\n\n // find max code length\n let maxLen = 0;\n let i;\n for (i = 0; i < n; ++i) {\n if (lengths[i] > maxLen) {\n maxLen = lengths[i];\n }\n }\n\n // build the table\n const size = 1 << maxLen;\n const codes = new Int32Array(size);\n for (\n let len = 1, code = 0, skip = 2;\n len <= maxLen;\n ++len, code <<= 1, skip <<= 1\n ) {\n for (let val = 0; val < n; ++val) {\n if (lengths[val] === len) {\n // bit-reverse the code\n let code2 = 0;\n let t = code;\n for (i = 0; i < len; ++i) {\n code2 = (code2 << 1) | (t & 1);\n t >>= 1;\n }\n\n // fill the table entries\n for (i = code2; i < size; i += skip) {\n codes[i] = (len << 16) | val;\n }\n ++code;\n }\n }\n }\n\n return [codes, maxLen];\n }\n\n readBlock() {\n let buffer, len;\n const str = this.str;\n // read block header\n let hdr = this.getBits(3);\n if (hdr & 1) {\n this.eof = true;\n }\n hdr >>= 1;\n\n if (hdr === 0) {\n // uncompressed block\n let b;\n\n if ((b = str.getByte()) === -1) {\n throw new FormatError(\"Bad block header in flate stream\");\n }\n let blockLen = b;\n if ((b = str.getByte()) === -1) {\n throw new FormatError(\"Bad block header in flate stream\");\n }\n blockLen |= b << 8;\n if ((b = str.getByte()) === -1) {\n throw new FormatError(\"Bad block header in flate stream\");\n }\n let check = b;\n if ((b = str.getByte()) === -1) {\n throw new FormatError(\"Bad block header in flate stream\");\n }\n check |= b << 8;\n if (check !== (~blockLen & 0xffff) && (blockLen !== 0 || check !== 0)) {\n // Ignoring error for bad \"empty\" block (see issue 1277)\n throw new FormatError(\"Bad uncompressed block length in flate stream\");\n }\n\n this.codeBuf = 0;\n this.codeSize = 0;\n\n const bufferLength = this.bufferLength,\n end = bufferLength + blockLen;\n buffer = this.ensureBuffer(end);\n this.bufferLength = end;\n\n if (blockLen === 0) {\n if (str.peekByte() === -1) {\n this.eof = true;\n }\n } else {\n const block = str.getBytes(blockLen);\n buffer.set(block, bufferLength);\n if (block.length < blockLen) {\n this.eof = true;\n }\n }\n return;\n }\n\n let litCodeTable;\n let distCodeTable;\n if (hdr === 1) {\n // compressed block, fixed codes\n litCodeTable = fixedLitCodeTab;\n distCodeTable = fixedDistCodeTab;\n } else if (hdr === 2) {\n // compressed block, dynamic codes\n const numLitCodes = this.getBits(5) + 257;\n const numDistCodes = this.getBits(5) + 1;\n const numCodeLenCodes = this.getBits(4) + 4;\n\n // build the code lengths code table\n const codeLenCodeLengths = new Uint8Array(codeLenCodeMap.length);\n\n let i;\n for (i = 0; i < numCodeLenCodes; ++i) {\n codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3);\n }\n const codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths);\n\n // build the literal and distance code tables\n len = 0;\n i = 0;\n const codes = numLitCodes + numDistCodes;\n const codeLengths = new Uint8Array(codes);\n let bitsLength, bitsOffset, what;\n while (i < codes) {\n const code = this.getCode(codeLenCodeTab);\n if (code === 16) {\n bitsLength = 2;\n bitsOffset = 3;\n what = len;\n } else if (code === 17) {\n bitsLength = 3;\n bitsOffset = 3;\n what = len = 0;\n } else if (code === 18) {\n bitsLength = 7;\n bitsOffset = 11;\n what = len = 0;\n } else {\n codeLengths[i++] = len = code;\n continue;\n }\n\n let repeatLength = this.getBits(bitsLength) + bitsOffset;\n while (repeatLength-- > 0) {\n codeLengths[i++] = what;\n }\n }\n\n litCodeTable = this.generateHuffmanTable(\n codeLengths.subarray(0, numLitCodes)\n );\n distCodeTable = this.generateHuffmanTable(\n codeLengths.subarray(numLitCodes, codes)\n );\n } else {\n throw new FormatError(\"Unknown block type in flate stream\");\n }\n\n buffer = this.buffer;\n let limit = buffer ? buffer.length : 0;\n let pos = this.bufferLength;\n while (true) {\n let code1 = this.getCode(litCodeTable);\n if (code1 < 256) {\n if (pos + 1 >= limit) {\n buffer = this.ensureBuffer(pos + 1);\n limit = buffer.length;\n }\n buffer[pos++] = code1;\n continue;\n }\n if (code1 === 256) {\n this.bufferLength = pos;\n return;\n }\n code1 -= 257;\n code1 = lengthDecode[code1];\n let code2 = code1 >> 16;\n if (code2 > 0) {\n code2 = this.getBits(code2);\n }\n len = (code1 & 0xffff) + code2;\n code1 = this.getCode(distCodeTable);\n code1 = distDecode[code1];\n code2 = code1 >> 16;\n if (code2 > 0) {\n code2 = this.getBits(code2);\n }\n const dist = (code1 & 0xffff) + code2;\n if (pos + len >= limit) {\n buffer = this.ensureBuffer(pos + len);\n limit = buffer.length;\n }\n for (let k = 0; k < len; ++k, ++pos) {\n buffer[pos] = buffer[pos - dist];\n }\n }\n }\n}\n\nexport { FlateStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseStream } from \"./base_stream.js\";\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { Dict } from \"./primitives.js\";\nimport { Jbig2Image } from \"./jbig2.js\";\nimport { shadow } from \"../shared/util.js\";\n\n/**\n * For JBIG2's we use a library to decode these images and\n * the stream behaves like all the other DecodeStreams.\n */\nclass Jbig2Stream extends DecodeStream {\n constructor(stream, maybeLength, params) {\n super(maybeLength);\n\n this.stream = stream;\n this.dict = stream.dict;\n this.maybeLength = maybeLength;\n this.params = params;\n }\n\n get bytes() {\n // If `this.maybeLength` is null, we'll get the entire stream.\n return shadow(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n }\n\n ensureBuffer(requested) {\n // No-op, since `this.readBlock` will always parse the entire image and\n // directly insert all of its data into `this.buffer`.\n }\n\n readBlock() {\n if (this.eof) {\n return;\n }\n const jbig2Image = new Jbig2Image();\n\n const chunks = [];\n if (this.params instanceof Dict) {\n const globalsStream = this.params.get(\"JBIG2Globals\");\n if (globalsStream instanceof BaseStream) {\n const globals = globalsStream.getBytes();\n chunks.push({ data: globals, start: 0, end: globals.length });\n }\n }\n chunks.push({ data: this.bytes, start: 0, end: this.bytes.length });\n const data = jbig2Image.parseChunks(chunks);\n const dataLength = data.length;\n\n // JBIG2 had black as 1 and white as 0, inverting the colors\n for (let i = 0; i < dataLength; i++) {\n data[i] ^= 0xff;\n }\n this.buffer = data;\n this.bufferLength = dataLength;\n this.eof = true;\n }\n}\n\nexport { Jbig2Stream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseException, shadow } from \"../shared/util.js\";\nimport { log2, readInt8, readUint16, readUint32 } from \"./core_utils.js\";\nimport { ArithmeticDecoder } from \"./arithmetic_decoder.js\";\nimport { CCITTFaxDecoder } from \"./ccitt.js\";\n\nclass Jbig2Error extends BaseException {\n constructor(msg) {\n super(`JBIG2 error: ${msg}`, \"Jbig2Error\");\n }\n}\n\n// Utility data structures\nclass ContextCache {\n getContexts(id) {\n if (id in this) {\n return this[id];\n }\n return (this[id] = new Int8Array(1 << 16));\n }\n}\n\nclass DecodingContext {\n constructor(data, start, end) {\n this.data = data;\n this.start = start;\n this.end = end;\n }\n\n get decoder() {\n const decoder = new ArithmeticDecoder(this.data, this.start, this.end);\n return shadow(this, \"decoder\", decoder);\n }\n\n get contextCache() {\n const cache = new ContextCache();\n return shadow(this, \"contextCache\", cache);\n }\n}\n\n// Annex A. Arithmetic Integer Decoding Procedure\n// A.2 Procedure for decoding values\nfunction decodeInteger(contextCache, procedure, decoder) {\n const contexts = contextCache.getContexts(procedure);\n let prev = 1;\n\n function readBits(length) {\n let v = 0;\n for (let i = 0; i < length; i++) {\n const bit = decoder.readBit(contexts, prev);\n prev = prev < 256 ? (prev << 1) | bit : (((prev << 1) | bit) & 511) | 256;\n v = (v << 1) | bit;\n }\n return v >>> 0;\n }\n\n const sign = readBits(1);\n // prettier-ignore\n /* eslint-disable no-nested-ternary */\n const value = readBits(1) ?\n (readBits(1) ?\n (readBits(1) ?\n (readBits(1) ?\n (readBits(1) ?\n (readBits(32) + 4436) :\n readBits(12) + 340) :\n readBits(8) + 84) :\n readBits(6) + 20) :\n readBits(4) + 4) :\n readBits(2);\n /* eslint-enable no-nested-ternary */\n if (sign === 0) {\n return value;\n } else if (value > 0) {\n return -value;\n }\n return null;\n}\n\n// A.3 The IAID decoding procedure\nfunction decodeIAID(contextCache, decoder, codeLength) {\n const contexts = contextCache.getContexts(\"IAID\");\n\n let prev = 1;\n for (let i = 0; i < codeLength; i++) {\n const bit = decoder.readBit(contexts, prev);\n prev = (prev << 1) | bit;\n }\n if (codeLength < 31) {\n return prev & ((1 << codeLength) - 1);\n }\n return prev & 0x7fffffff;\n}\n\n// 7.3 Segment types\nconst SegmentTypes = [\n \"SymbolDictionary\",\n null,\n null,\n null,\n \"IntermediateTextRegion\",\n null,\n \"ImmediateTextRegion\",\n \"ImmediateLosslessTextRegion\",\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n \"PatternDictionary\",\n null,\n null,\n null,\n \"IntermediateHalftoneRegion\",\n null,\n \"ImmediateHalftoneRegion\",\n \"ImmediateLosslessHalftoneRegion\",\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n \"IntermediateGenericRegion\",\n null,\n \"ImmediateGenericRegion\",\n \"ImmediateLosslessGenericRegion\",\n \"IntermediateGenericRefinementRegion\",\n null,\n \"ImmediateGenericRefinementRegion\",\n \"ImmediateLosslessGenericRefinementRegion\",\n null,\n null,\n null,\n null,\n \"PageInformation\",\n \"EndOfPage\",\n \"EndOfStripe\",\n \"EndOfFile\",\n \"Profiles\",\n \"Tables\",\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n \"Extension\",\n];\n\nconst CodingTemplates = [\n [\n { x: -1, y: -2 },\n { x: 0, y: -2 },\n { x: 1, y: -2 },\n { x: -2, y: -1 },\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: 2, y: -1 },\n { x: -4, y: 0 },\n { x: -3, y: 0 },\n { x: -2, y: 0 },\n { x: -1, y: 0 },\n ],\n [\n { x: -1, y: -2 },\n { x: 0, y: -2 },\n { x: 1, y: -2 },\n { x: 2, y: -2 },\n { x: -2, y: -1 },\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: 2, y: -1 },\n { x: -3, y: 0 },\n { x: -2, y: 0 },\n { x: -1, y: 0 },\n ],\n [\n { x: -1, y: -2 },\n { x: 0, y: -2 },\n { x: 1, y: -2 },\n { x: -2, y: -1 },\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -2, y: 0 },\n { x: -1, y: 0 },\n ],\n [\n { x: -3, y: -1 },\n { x: -2, y: -1 },\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -4, y: 0 },\n { x: -3, y: 0 },\n { x: -2, y: 0 },\n { x: -1, y: 0 },\n ],\n];\n\nconst RefinementTemplates = [\n {\n coding: [\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -1, y: 0 },\n ],\n reference: [\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -1, y: 0 },\n { x: 0, y: 0 },\n { x: 1, y: 0 },\n { x: -1, y: 1 },\n { x: 0, y: 1 },\n { x: 1, y: 1 },\n ],\n },\n {\n coding: [\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -1, y: 0 },\n ],\n reference: [\n { x: 0, y: -1 },\n { x: -1, y: 0 },\n { x: 0, y: 0 },\n { x: 1, y: 0 },\n { x: 0, y: 1 },\n { x: 1, y: 1 },\n ],\n },\n];\n\n// See 6.2.5.7 Decoding the bitmap.\nconst ReusedContexts = [\n 0x9b25, // 10011 0110010 0101\n 0x0795, // 0011 110010 101\n 0x00e5, // 001 11001 01\n 0x0195, // 011001 0101\n];\n\nconst RefinementReusedContexts = [\n 0x0020, // '000' + '0' (coding) + '00010000' + '0' (reference)\n 0x0008, // '0000' + '001000'\n];\n\nfunction decodeBitmapTemplate0(width, height, decodingContext) {\n const decoder = decodingContext.decoder;\n const contexts = decodingContext.contextCache.getContexts(\"GB\");\n const bitmap = [];\n let contextLabel, i, j, pixel, row, row1, row2;\n\n // ...ooooo....\n // ..ooooooo... Context template for current pixel (X)\n // .ooooX...... (concatenate values of 'o'-pixels to get contextLabel)\n const OLD_PIXEL_MASK = 0x7bf7; // 01111 0111111 0111\n\n for (i = 0; i < height; i++) {\n row = bitmap[i] = new Uint8Array(width);\n row1 = i < 1 ? row : bitmap[i - 1];\n row2 = i < 2 ? row : bitmap[i - 2];\n\n // At the beginning of each row:\n // Fill contextLabel with pixels that are above/right of (X)\n contextLabel =\n (row2[0] << 13) |\n (row2[1] << 12) |\n (row2[2] << 11) |\n (row1[0] << 7) |\n (row1[1] << 6) |\n (row1[2] << 5) |\n (row1[3] << 4);\n\n for (j = 0; j < width; j++) {\n row[j] = pixel = decoder.readBit(contexts, contextLabel);\n\n // At each pixel: Clear contextLabel pixels that are shifted\n // out of the context, then add new ones.\n contextLabel =\n ((contextLabel & OLD_PIXEL_MASK) << 1) |\n (j + 3 < width ? row2[j + 3] << 11 : 0) |\n (j + 4 < width ? row1[j + 4] << 4 : 0) |\n pixel;\n }\n }\n\n return bitmap;\n}\n\n// 6.2 Generic Region Decoding Procedure\nfunction decodeBitmap(\n mmr,\n width,\n height,\n templateIndex,\n prediction,\n skip,\n at,\n decodingContext\n) {\n if (mmr) {\n const input = new Reader(\n decodingContext.data,\n decodingContext.start,\n decodingContext.end\n );\n return decodeMMRBitmap(input, width, height, false);\n }\n\n // Use optimized version for the most common case\n if (\n templateIndex === 0 &&\n !skip &&\n !prediction &&\n at.length === 4 &&\n at[0].x === 3 &&\n at[0].y === -1 &&\n at[1].x === -3 &&\n at[1].y === -1 &&\n at[2].x === 2 &&\n at[2].y === -2 &&\n at[3].x === -2 &&\n at[3].y === -2\n ) {\n return decodeBitmapTemplate0(width, height, decodingContext);\n }\n\n const useskip = !!skip;\n const template = CodingTemplates[templateIndex].concat(at);\n\n // Sorting is non-standard, and it is not required. But sorting increases\n // the number of template bits that can be reused from the previous\n // contextLabel in the main loop.\n template.sort(function (a, b) {\n return a.y - b.y || a.x - b.x;\n });\n\n const templateLength = template.length;\n const templateX = new Int8Array(templateLength);\n const templateY = new Int8Array(templateLength);\n const changingTemplateEntries = [];\n let reuseMask = 0,\n minX = 0,\n maxX = 0,\n minY = 0;\n let c, k;\n\n for (k = 0; k < templateLength; k++) {\n templateX[k] = template[k].x;\n templateY[k] = template[k].y;\n minX = Math.min(minX, template[k].x);\n maxX = Math.max(maxX, template[k].x);\n minY = Math.min(minY, template[k].y);\n // Check if the template pixel appears in two consecutive context labels,\n // so it can be reused. Otherwise, we add it to the list of changing\n // template entries.\n if (\n k < templateLength - 1 &&\n template[k].y === template[k + 1].y &&\n template[k].x === template[k + 1].x - 1\n ) {\n reuseMask |= 1 << (templateLength - 1 - k);\n } else {\n changingTemplateEntries.push(k);\n }\n }\n const changingEntriesLength = changingTemplateEntries.length;\n\n const changingTemplateX = new Int8Array(changingEntriesLength);\n const changingTemplateY = new Int8Array(changingEntriesLength);\n const changingTemplateBit = new Uint16Array(changingEntriesLength);\n for (c = 0; c < changingEntriesLength; c++) {\n k = changingTemplateEntries[c];\n changingTemplateX[c] = template[k].x;\n changingTemplateY[c] = template[k].y;\n changingTemplateBit[c] = 1 << (templateLength - 1 - k);\n }\n\n // Get the safe bounding box edges from the width, height, minX, maxX, minY\n const sbb_left = -minX;\n const sbb_top = -minY;\n const sbb_right = width - maxX;\n\n const pseudoPixelContext = ReusedContexts[templateIndex];\n let row = new Uint8Array(width);\n const bitmap = [];\n\n const decoder = decodingContext.decoder;\n const contexts = decodingContext.contextCache.getContexts(\"GB\");\n\n let ltp = 0,\n j,\n i0,\n j0,\n contextLabel = 0,\n bit,\n shift;\n for (let i = 0; i < height; i++) {\n if (prediction) {\n const sltp = decoder.readBit(contexts, pseudoPixelContext);\n ltp ^= sltp;\n if (ltp) {\n bitmap.push(row); // duplicate previous row\n continue;\n }\n }\n row = new Uint8Array(row);\n bitmap.push(row);\n for (j = 0; j < width; j++) {\n if (useskip && skip[i][j]) {\n row[j] = 0;\n continue;\n }\n // Are we in the middle of a scanline, so we can reuse contextLabel\n // bits?\n if (j >= sbb_left && j < sbb_right && i >= sbb_top) {\n // If yes, we can just shift the bits that are reusable and only\n // fetch the remaining ones.\n contextLabel = (contextLabel << 1) & reuseMask;\n for (k = 0; k < changingEntriesLength; k++) {\n i0 = i + changingTemplateY[k];\n j0 = j + changingTemplateX[k];\n bit = bitmap[i0][j0];\n if (bit) {\n bit = changingTemplateBit[k];\n contextLabel |= bit;\n }\n }\n } else {\n // compute the contextLabel from scratch\n contextLabel = 0;\n shift = templateLength - 1;\n for (k = 0; k < templateLength; k++, shift--) {\n j0 = j + templateX[k];\n if (j0 >= 0 && j0 < width) {\n i0 = i + templateY[k];\n if (i0 >= 0) {\n bit = bitmap[i0][j0];\n if (bit) {\n contextLabel |= bit << shift;\n }\n }\n }\n }\n }\n const pixel = decoder.readBit(contexts, contextLabel);\n row[j] = pixel;\n }\n }\n return bitmap;\n}\n\n// 6.3.2 Generic Refinement Region Decoding Procedure\nfunction decodeRefinement(\n width,\n height,\n templateIndex,\n referenceBitmap,\n offsetX,\n offsetY,\n prediction,\n at,\n decodingContext\n) {\n let codingTemplate = RefinementTemplates[templateIndex].coding;\n if (templateIndex === 0) {\n codingTemplate = codingTemplate.concat([at[0]]);\n }\n const codingTemplateLength = codingTemplate.length;\n const codingTemplateX = new Int32Array(codingTemplateLength);\n const codingTemplateY = new Int32Array(codingTemplateLength);\n let k;\n for (k = 0; k < codingTemplateLength; k++) {\n codingTemplateX[k] = codingTemplate[k].x;\n codingTemplateY[k] = codingTemplate[k].y;\n }\n\n let referenceTemplate = RefinementTemplates[templateIndex].reference;\n if (templateIndex === 0) {\n referenceTemplate = referenceTemplate.concat([at[1]]);\n }\n const referenceTemplateLength = referenceTemplate.length;\n const referenceTemplateX = new Int32Array(referenceTemplateLength);\n const referenceTemplateY = new Int32Array(referenceTemplateLength);\n for (k = 0; k < referenceTemplateLength; k++) {\n referenceTemplateX[k] = referenceTemplate[k].x;\n referenceTemplateY[k] = referenceTemplate[k].y;\n }\n const referenceWidth = referenceBitmap[0].length;\n const referenceHeight = referenceBitmap.length;\n\n const pseudoPixelContext = RefinementReusedContexts[templateIndex];\n const bitmap = [];\n\n const decoder = decodingContext.decoder;\n const contexts = decodingContext.contextCache.getContexts(\"GR\");\n\n let ltp = 0;\n for (let i = 0; i < height; i++) {\n if (prediction) {\n const sltp = decoder.readBit(contexts, pseudoPixelContext);\n ltp ^= sltp;\n if (ltp) {\n throw new Jbig2Error(\"prediction is not supported\");\n }\n }\n const row = new Uint8Array(width);\n bitmap.push(row);\n for (let j = 0; j < width; j++) {\n let i0, j0;\n let contextLabel = 0;\n for (k = 0; k < codingTemplateLength; k++) {\n i0 = i + codingTemplateY[k];\n j0 = j + codingTemplateX[k];\n if (i0 < 0 || j0 < 0 || j0 >= width) {\n contextLabel <<= 1; // out of bound pixel\n } else {\n contextLabel = (contextLabel << 1) | bitmap[i0][j0];\n }\n }\n for (k = 0; k < referenceTemplateLength; k++) {\n i0 = i + referenceTemplateY[k] - offsetY;\n j0 = j + referenceTemplateX[k] - offsetX;\n if (i0 < 0 || i0 >= referenceHeight || j0 < 0 || j0 >= referenceWidth) {\n contextLabel <<= 1; // out of bound pixel\n } else {\n contextLabel = (contextLabel << 1) | referenceBitmap[i0][j0];\n }\n }\n const pixel = decoder.readBit(contexts, contextLabel);\n row[j] = pixel;\n }\n }\n\n return bitmap;\n}\n\n// 6.5.5 Decoding the symbol dictionary\nfunction decodeSymbolDictionary(\n huffman,\n refinement,\n symbols,\n numberOfNewSymbols,\n numberOfExportedSymbols,\n huffmanTables,\n templateIndex,\n at,\n refinementTemplateIndex,\n refinementAt,\n decodingContext,\n huffmanInput\n) {\n if (huffman && refinement) {\n throw new Jbig2Error(\"symbol refinement with Huffman is not supported\");\n }\n\n const newSymbols = [];\n let currentHeight = 0;\n let symbolCodeLength = log2(symbols.length + numberOfNewSymbols);\n\n const decoder = decodingContext.decoder;\n const contextCache = decodingContext.contextCache;\n let tableB1, symbolWidths;\n if (huffman) {\n tableB1 = getStandardTable(1); // standard table B.1\n symbolWidths = [];\n symbolCodeLength = Math.max(symbolCodeLength, 1); // 6.5.8.2.3\n }\n\n while (newSymbols.length < numberOfNewSymbols) {\n const deltaHeight = huffman\n ? huffmanTables.tableDeltaHeight.decode(huffmanInput)\n : decodeInteger(contextCache, \"IADH\", decoder); // 6.5.6\n currentHeight += deltaHeight;\n let currentWidth = 0,\n totalWidth = 0;\n const firstSymbol = huffman ? symbolWidths.length : 0;\n while (true) {\n const deltaWidth = huffman\n ? huffmanTables.tableDeltaWidth.decode(huffmanInput)\n : decodeInteger(contextCache, \"IADW\", decoder); // 6.5.7\n if (deltaWidth === null) {\n break; // OOB\n }\n currentWidth += deltaWidth;\n totalWidth += currentWidth;\n let bitmap;\n if (refinement) {\n // 6.5.8.2 Refinement/aggregate-coded symbol bitmap\n const numberOfInstances = decodeInteger(contextCache, \"IAAI\", decoder);\n if (numberOfInstances > 1) {\n bitmap = decodeTextRegion(\n huffman,\n refinement,\n currentWidth,\n currentHeight,\n 0,\n numberOfInstances,\n 1, // strip size\n symbols.concat(newSymbols),\n symbolCodeLength,\n 0, // transposed\n 0, // ds offset\n 1, // top left 7.4.3.1.1\n 0, // OR operator\n huffmanTables,\n refinementTemplateIndex,\n refinementAt,\n decodingContext,\n 0,\n huffmanInput\n );\n } else {\n const symbolId = decodeIAID(contextCache, decoder, symbolCodeLength);\n const rdx = decodeInteger(contextCache, \"IARDX\", decoder); // 6.4.11.3\n const rdy = decodeInteger(contextCache, \"IARDY\", decoder); // 6.4.11.4\n const symbol =\n symbolId < symbols.length\n ? symbols[symbolId]\n : newSymbols[symbolId - symbols.length];\n bitmap = decodeRefinement(\n currentWidth,\n currentHeight,\n refinementTemplateIndex,\n symbol,\n rdx,\n rdy,\n false,\n refinementAt,\n decodingContext\n );\n }\n newSymbols.push(bitmap);\n } else if (huffman) {\n // Store only symbol width and decode a collective bitmap when the\n // height class is done.\n symbolWidths.push(currentWidth);\n } else {\n // 6.5.8.1 Direct-coded symbol bitmap\n bitmap = decodeBitmap(\n false,\n currentWidth,\n currentHeight,\n templateIndex,\n false,\n null,\n at,\n decodingContext\n );\n newSymbols.push(bitmap);\n }\n }\n if (huffman && !refinement) {\n // 6.5.9 Height class collective bitmap\n const bitmapSize = huffmanTables.tableBitmapSize.decode(huffmanInput);\n huffmanInput.byteAlign();\n let collectiveBitmap;\n if (bitmapSize === 0) {\n // Uncompressed collective bitmap\n collectiveBitmap = readUncompressedBitmap(\n huffmanInput,\n totalWidth,\n currentHeight\n );\n } else {\n // MMR collective bitmap\n const originalEnd = huffmanInput.end;\n const bitmapEnd = huffmanInput.position + bitmapSize;\n huffmanInput.end = bitmapEnd;\n collectiveBitmap = decodeMMRBitmap(\n huffmanInput,\n totalWidth,\n currentHeight,\n false\n );\n huffmanInput.end = originalEnd;\n huffmanInput.position = bitmapEnd;\n }\n const numberOfSymbolsDecoded = symbolWidths.length;\n if (firstSymbol === numberOfSymbolsDecoded - 1) {\n // collectiveBitmap is a single symbol.\n newSymbols.push(collectiveBitmap);\n } else {\n // Divide collectiveBitmap into symbols.\n let i,\n y,\n xMin = 0,\n xMax,\n bitmapWidth,\n symbolBitmap;\n for (i = firstSymbol; i < numberOfSymbolsDecoded; i++) {\n bitmapWidth = symbolWidths[i];\n xMax = xMin + bitmapWidth;\n symbolBitmap = [];\n for (y = 0; y < currentHeight; y++) {\n symbolBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n }\n newSymbols.push(symbolBitmap);\n xMin = xMax;\n }\n }\n }\n }\n\n // 6.5.10 Exported symbols\n const exportedSymbols = [],\n flags = [];\n let currentFlag = false,\n i,\n ii;\n const totalSymbolsLength = symbols.length + numberOfNewSymbols;\n while (flags.length < totalSymbolsLength) {\n let runLength = huffman\n ? tableB1.decode(huffmanInput)\n : decodeInteger(contextCache, \"IAEX\", decoder);\n while (runLength--) {\n flags.push(currentFlag);\n }\n currentFlag = !currentFlag;\n }\n for (i = 0, ii = symbols.length; i < ii; i++) {\n if (flags[i]) {\n exportedSymbols.push(symbols[i]);\n }\n }\n for (let j = 0; j < numberOfNewSymbols; i++, j++) {\n if (flags[i]) {\n exportedSymbols.push(newSymbols[j]);\n }\n }\n return exportedSymbols;\n}\n\nfunction decodeTextRegion(\n huffman,\n refinement,\n width,\n height,\n defaultPixelValue,\n numberOfSymbolInstances,\n stripSize,\n inputSymbols,\n symbolCodeLength,\n transposed,\n dsOffset,\n referenceCorner,\n combinationOperator,\n huffmanTables,\n refinementTemplateIndex,\n refinementAt,\n decodingContext,\n logStripSize,\n huffmanInput\n) {\n if (huffman && refinement) {\n throw new Jbig2Error(\"refinement with Huffman is not supported\");\n }\n\n // Prepare bitmap\n const bitmap = [];\n let i, row;\n for (i = 0; i < height; i++) {\n row = new Uint8Array(width);\n if (defaultPixelValue) {\n for (let j = 0; j < width; j++) {\n row[j] = defaultPixelValue;\n }\n }\n bitmap.push(row);\n }\n\n const decoder = decodingContext.decoder;\n const contextCache = decodingContext.contextCache;\n\n let stripT = huffman\n ? -huffmanTables.tableDeltaT.decode(huffmanInput)\n : -decodeInteger(contextCache, \"IADT\", decoder); // 6.4.6\n let firstS = 0;\n i = 0;\n while (i < numberOfSymbolInstances) {\n const deltaT = huffman\n ? huffmanTables.tableDeltaT.decode(huffmanInput)\n : decodeInteger(contextCache, \"IADT\", decoder); // 6.4.6\n stripT += deltaT;\n\n const deltaFirstS = huffman\n ? huffmanTables.tableFirstS.decode(huffmanInput)\n : decodeInteger(contextCache, \"IAFS\", decoder); // 6.4.7\n firstS += deltaFirstS;\n let currentS = firstS;\n do {\n let currentT = 0; // 6.4.9\n if (stripSize > 1) {\n currentT = huffman\n ? huffmanInput.readBits(logStripSize)\n : decodeInteger(contextCache, \"IAIT\", decoder);\n }\n const t = stripSize * stripT + currentT;\n const symbolId = huffman\n ? huffmanTables.symbolIDTable.decode(huffmanInput)\n : decodeIAID(contextCache, decoder, symbolCodeLength);\n const applyRefinement =\n refinement &&\n (huffman\n ? huffmanInput.readBit()\n : decodeInteger(contextCache, \"IARI\", decoder));\n let symbolBitmap = inputSymbols[symbolId];\n let symbolWidth = symbolBitmap[0].length;\n let symbolHeight = symbolBitmap.length;\n if (applyRefinement) {\n const rdw = decodeInteger(contextCache, \"IARDW\", decoder); // 6.4.11.1\n const rdh = decodeInteger(contextCache, \"IARDH\", decoder); // 6.4.11.2\n const rdx = decodeInteger(contextCache, \"IARDX\", decoder); // 6.4.11.3\n const rdy = decodeInteger(contextCache, \"IARDY\", decoder); // 6.4.11.4\n symbolWidth += rdw;\n symbolHeight += rdh;\n symbolBitmap = decodeRefinement(\n symbolWidth,\n symbolHeight,\n refinementTemplateIndex,\n symbolBitmap,\n (rdw >> 1) + rdx,\n (rdh >> 1) + rdy,\n false,\n refinementAt,\n decodingContext\n );\n }\n const offsetT = t - (referenceCorner & 1 ? 0 : symbolHeight - 1);\n const offsetS = currentS - (referenceCorner & 2 ? symbolWidth - 1 : 0);\n let s2, t2, symbolRow;\n if (transposed) {\n // Place Symbol Bitmap from T1,S1\n for (s2 = 0; s2 < symbolHeight; s2++) {\n row = bitmap[offsetS + s2];\n if (!row) {\n continue;\n }\n symbolRow = symbolBitmap[s2];\n // To ignore Parts of Symbol bitmap which goes\n // outside bitmap region\n const maxWidth = Math.min(width - offsetT, symbolWidth);\n switch (combinationOperator) {\n case 0: // OR\n for (t2 = 0; t2 < maxWidth; t2++) {\n row[offsetT + t2] |= symbolRow[t2];\n }\n break;\n case 2: // XOR\n for (t2 = 0; t2 < maxWidth; t2++) {\n row[offsetT + t2] ^= symbolRow[t2];\n }\n break;\n default:\n throw new Jbig2Error(\n `operator ${combinationOperator} is not supported`\n );\n }\n }\n currentS += symbolHeight - 1;\n } else {\n for (t2 = 0; t2 < symbolHeight; t2++) {\n row = bitmap[offsetT + t2];\n if (!row) {\n continue;\n }\n symbolRow = symbolBitmap[t2];\n switch (combinationOperator) {\n case 0: // OR\n for (s2 = 0; s2 < symbolWidth; s2++) {\n row[offsetS + s2] |= symbolRow[s2];\n }\n break;\n case 2: // XOR\n for (s2 = 0; s2 < symbolWidth; s2++) {\n row[offsetS + s2] ^= symbolRow[s2];\n }\n break;\n default:\n throw new Jbig2Error(\n `operator ${combinationOperator} is not supported`\n );\n }\n }\n currentS += symbolWidth - 1;\n }\n i++;\n const deltaS = huffman\n ? huffmanTables.tableDeltaS.decode(huffmanInput)\n : decodeInteger(contextCache, \"IADS\", decoder); // 6.4.8\n if (deltaS === null) {\n break; // OOB\n }\n currentS += deltaS + dsOffset;\n } while (true);\n }\n return bitmap;\n}\n\nfunction decodePatternDictionary(\n mmr,\n patternWidth,\n patternHeight,\n maxPatternIndex,\n template,\n decodingContext\n) {\n const at = [];\n if (!mmr) {\n at.push({\n x: -patternWidth,\n y: 0,\n });\n if (template === 0) {\n at.push(\n {\n x: -3,\n y: -1,\n },\n {\n x: 2,\n y: -2,\n },\n {\n x: -2,\n y: -2,\n }\n );\n }\n }\n const collectiveWidth = (maxPatternIndex + 1) * patternWidth;\n const collectiveBitmap = decodeBitmap(\n mmr,\n collectiveWidth,\n patternHeight,\n template,\n false,\n null,\n at,\n decodingContext\n );\n // Divide collective bitmap into patterns.\n const patterns = [];\n for (let i = 0; i <= maxPatternIndex; i++) {\n const patternBitmap = [];\n const xMin = patternWidth * i;\n const xMax = xMin + patternWidth;\n for (let y = 0; y < patternHeight; y++) {\n patternBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n }\n patterns.push(patternBitmap);\n }\n return patterns;\n}\n\nfunction decodeHalftoneRegion(\n mmr,\n patterns,\n template,\n regionWidth,\n regionHeight,\n defaultPixelValue,\n enableSkip,\n combinationOperator,\n gridWidth,\n gridHeight,\n gridOffsetX,\n gridOffsetY,\n gridVectorX,\n gridVectorY,\n decodingContext\n) {\n const skip = null;\n if (enableSkip) {\n throw new Jbig2Error(\"skip is not supported\");\n }\n if (combinationOperator !== 0) {\n throw new Jbig2Error(\n `operator \"${combinationOperator}\" is not supported in halftone region`\n );\n }\n\n // Prepare bitmap.\n const regionBitmap = [];\n let i, j, row;\n for (i = 0; i < regionHeight; i++) {\n row = new Uint8Array(regionWidth);\n if (defaultPixelValue) {\n for (j = 0; j < regionWidth; j++) {\n row[j] = defaultPixelValue;\n }\n }\n regionBitmap.push(row);\n }\n\n const numberOfPatterns = patterns.length;\n const pattern0 = patterns[0];\n const patternWidth = pattern0[0].length,\n patternHeight = pattern0.length;\n const bitsPerValue = log2(numberOfPatterns);\n const at = [];\n if (!mmr) {\n at.push({\n x: template <= 1 ? 3 : 2,\n y: -1,\n });\n if (template === 0) {\n at.push(\n {\n x: -3,\n y: -1,\n },\n {\n x: 2,\n y: -2,\n },\n {\n x: -2,\n y: -2,\n }\n );\n }\n }\n // Annex C. Gray-scale Image Decoding Procedure.\n const grayScaleBitPlanes = [];\n let mmrInput, bitmap;\n if (mmr) {\n // MMR bit planes are in one continuous stream. Only EOFB codes indicate\n // the end of each bitmap, so EOFBs must be decoded.\n mmrInput = new Reader(\n decodingContext.data,\n decodingContext.start,\n decodingContext.end\n );\n }\n for (i = bitsPerValue - 1; i >= 0; i--) {\n if (mmr) {\n bitmap = decodeMMRBitmap(mmrInput, gridWidth, gridHeight, true);\n } else {\n bitmap = decodeBitmap(\n false,\n gridWidth,\n gridHeight,\n template,\n false,\n skip,\n at,\n decodingContext\n );\n }\n grayScaleBitPlanes[i] = bitmap;\n }\n // 6.6.5.2 Rendering the patterns.\n let mg, ng, bit, patternIndex, patternBitmap, x, y, patternRow, regionRow;\n for (mg = 0; mg < gridHeight; mg++) {\n for (ng = 0; ng < gridWidth; ng++) {\n bit = 0;\n patternIndex = 0;\n for (j = bitsPerValue - 1; j >= 0; j--) {\n bit ^= grayScaleBitPlanes[j][mg][ng]; // Gray decoding\n patternIndex |= bit << j;\n }\n patternBitmap = patterns[patternIndex];\n x = (gridOffsetX + mg * gridVectorY + ng * gridVectorX) >> 8;\n y = (gridOffsetY + mg * gridVectorX - ng * gridVectorY) >> 8;\n // Draw patternBitmap at (x, y).\n if (\n x >= 0 &&\n x + patternWidth <= regionWidth &&\n y >= 0 &&\n y + patternHeight <= regionHeight\n ) {\n for (i = 0; i < patternHeight; i++) {\n regionRow = regionBitmap[y + i];\n patternRow = patternBitmap[i];\n for (j = 0; j < patternWidth; j++) {\n regionRow[x + j] |= patternRow[j];\n }\n }\n } else {\n let regionX, regionY;\n for (i = 0; i < patternHeight; i++) {\n regionY = y + i;\n if (regionY < 0 || regionY >= regionHeight) {\n continue;\n }\n regionRow = regionBitmap[regionY];\n patternRow = patternBitmap[i];\n for (j = 0; j < patternWidth; j++) {\n regionX = x + j;\n if (regionX >= 0 && regionX < regionWidth) {\n regionRow[regionX] |= patternRow[j];\n }\n }\n }\n }\n }\n }\n return regionBitmap;\n}\n\nfunction readSegmentHeader(data, start) {\n const segmentHeader = {};\n segmentHeader.number = readUint32(data, start);\n const flags = data[start + 4];\n const segmentType = flags & 0x3f;\n if (!SegmentTypes[segmentType]) {\n throw new Jbig2Error(\"invalid segment type: \" + segmentType);\n }\n segmentHeader.type = segmentType;\n segmentHeader.typeName = SegmentTypes[segmentType];\n segmentHeader.deferredNonRetain = !!(flags & 0x80);\n\n const pageAssociationFieldSize = !!(flags & 0x40);\n const referredFlags = data[start + 5];\n let referredToCount = (referredFlags >> 5) & 7;\n const retainBits = [referredFlags & 31];\n let position = start + 6;\n if (referredFlags === 7) {\n referredToCount = readUint32(data, position - 1) & 0x1fffffff;\n position += 3;\n let bytes = (referredToCount + 7) >> 3;\n retainBits[0] = data[position++];\n while (--bytes > 0) {\n retainBits.push(data[position++]);\n }\n } else if (referredFlags === 5 || referredFlags === 6) {\n throw new Jbig2Error(\"invalid referred-to flags\");\n }\n\n segmentHeader.retainBits = retainBits;\n\n let referredToSegmentNumberSize = 4;\n if (segmentHeader.number <= 256) {\n referredToSegmentNumberSize = 1;\n } else if (segmentHeader.number <= 65536) {\n referredToSegmentNumberSize = 2;\n }\n const referredTo = [];\n let i, ii;\n for (i = 0; i < referredToCount; i++) {\n let number;\n if (referredToSegmentNumberSize === 1) {\n number = data[position];\n } else if (referredToSegmentNumberSize === 2) {\n number = readUint16(data, position);\n } else {\n number = readUint32(data, position);\n }\n referredTo.push(number);\n position += referredToSegmentNumberSize;\n }\n segmentHeader.referredTo = referredTo;\n if (!pageAssociationFieldSize) {\n segmentHeader.pageAssociation = data[position++];\n } else {\n segmentHeader.pageAssociation = readUint32(data, position);\n position += 4;\n }\n segmentHeader.length = readUint32(data, position);\n position += 4;\n\n if (segmentHeader.length === 0xffffffff) {\n // 7.2.7 Segment data length, unknown segment length\n if (segmentType === 38) {\n // ImmediateGenericRegion\n const genericRegionInfo = readRegionSegmentInformation(data, position);\n const genericRegionSegmentFlags =\n data[position + RegionSegmentInformationFieldLength];\n const genericRegionMmr = !!(genericRegionSegmentFlags & 1);\n // searching for the segment end\n const searchPatternLength = 6;\n const searchPattern = new Uint8Array(searchPatternLength);\n if (!genericRegionMmr) {\n searchPattern[0] = 0xff;\n searchPattern[1] = 0xac;\n }\n searchPattern[2] = (genericRegionInfo.height >>> 24) & 0xff;\n searchPattern[3] = (genericRegionInfo.height >> 16) & 0xff;\n searchPattern[4] = (genericRegionInfo.height >> 8) & 0xff;\n searchPattern[5] = genericRegionInfo.height & 0xff;\n for (i = position, ii = data.length; i < ii; i++) {\n let j = 0;\n while (j < searchPatternLength && searchPattern[j] === data[i + j]) {\n j++;\n }\n if (j === searchPatternLength) {\n segmentHeader.length = i + searchPatternLength;\n break;\n }\n }\n if (segmentHeader.length === 0xffffffff) {\n throw new Jbig2Error(\"segment end was not found\");\n }\n } else {\n throw new Jbig2Error(\"invalid unknown segment length\");\n }\n }\n segmentHeader.headerEnd = position;\n return segmentHeader;\n}\n\nfunction readSegments(header, data, start, end) {\n const segments = [];\n let position = start;\n while (position < end) {\n const segmentHeader = readSegmentHeader(data, position);\n position = segmentHeader.headerEnd;\n const segment = {\n header: segmentHeader,\n data,\n };\n if (!header.randomAccess) {\n segment.start = position;\n position += segmentHeader.length;\n segment.end = position;\n }\n segments.push(segment);\n if (segmentHeader.type === 51) {\n break; // end of file is found\n }\n }\n if (header.randomAccess) {\n for (let i = 0, ii = segments.length; i < ii; i++) {\n segments[i].start = position;\n position += segments[i].header.length;\n segments[i].end = position;\n }\n }\n return segments;\n}\n\n// 7.4.1 Region segment information field\nfunction readRegionSegmentInformation(data, start) {\n return {\n width: readUint32(data, start),\n height: readUint32(data, start + 4),\n x: readUint32(data, start + 8),\n y: readUint32(data, start + 12),\n combinationOperator: data[start + 16] & 7,\n };\n}\nconst RegionSegmentInformationFieldLength = 17;\n\nfunction processSegment(segment, visitor) {\n const header = segment.header;\n\n const data = segment.data,\n end = segment.end;\n let position = segment.start;\n let args, at, i, atLength;\n switch (header.type) {\n case 0: // SymbolDictionary\n // 7.4.2 Symbol dictionary segment syntax\n const dictionary = {};\n const dictionaryFlags = readUint16(data, position); // 7.4.2.1.1\n dictionary.huffman = !!(dictionaryFlags & 1);\n dictionary.refinement = !!(dictionaryFlags & 2);\n dictionary.huffmanDHSelector = (dictionaryFlags >> 2) & 3;\n dictionary.huffmanDWSelector = (dictionaryFlags >> 4) & 3;\n dictionary.bitmapSizeSelector = (dictionaryFlags >> 6) & 1;\n dictionary.aggregationInstancesSelector = (dictionaryFlags >> 7) & 1;\n dictionary.bitmapCodingContextUsed = !!(dictionaryFlags & 256);\n dictionary.bitmapCodingContextRetained = !!(dictionaryFlags & 512);\n dictionary.template = (dictionaryFlags >> 10) & 3;\n dictionary.refinementTemplate = (dictionaryFlags >> 12) & 1;\n position += 2;\n if (!dictionary.huffman) {\n atLength = dictionary.template === 0 ? 4 : 1;\n at = [];\n for (i = 0; i < atLength; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n dictionary.at = at;\n }\n if (dictionary.refinement && !dictionary.refinementTemplate) {\n at = [];\n for (i = 0; i < 2; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n dictionary.refinementAt = at;\n }\n dictionary.numberOfExportedSymbols = readUint32(data, position);\n position += 4;\n dictionary.numberOfNewSymbols = readUint32(data, position);\n position += 4;\n args = [\n dictionary,\n header.number,\n header.referredTo,\n data,\n position,\n end,\n ];\n break;\n case 6: // ImmediateTextRegion\n case 7: // ImmediateLosslessTextRegion\n const textRegion = {};\n textRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n const textRegionSegmentFlags = readUint16(data, position);\n position += 2;\n textRegion.huffman = !!(textRegionSegmentFlags & 1);\n textRegion.refinement = !!(textRegionSegmentFlags & 2);\n textRegion.logStripSize = (textRegionSegmentFlags >> 2) & 3;\n textRegion.stripSize = 1 << textRegion.logStripSize;\n textRegion.referenceCorner = (textRegionSegmentFlags >> 4) & 3;\n textRegion.transposed = !!(textRegionSegmentFlags & 64);\n textRegion.combinationOperator = (textRegionSegmentFlags >> 7) & 3;\n textRegion.defaultPixelValue = (textRegionSegmentFlags >> 9) & 1;\n textRegion.dsOffset = (textRegionSegmentFlags << 17) >> 27;\n textRegion.refinementTemplate = (textRegionSegmentFlags >> 15) & 1;\n if (textRegion.huffman) {\n const textRegionHuffmanFlags = readUint16(data, position);\n position += 2;\n textRegion.huffmanFS = textRegionHuffmanFlags & 3;\n textRegion.huffmanDS = (textRegionHuffmanFlags >> 2) & 3;\n textRegion.huffmanDT = (textRegionHuffmanFlags >> 4) & 3;\n textRegion.huffmanRefinementDW = (textRegionHuffmanFlags >> 6) & 3;\n textRegion.huffmanRefinementDH = (textRegionHuffmanFlags >> 8) & 3;\n textRegion.huffmanRefinementDX = (textRegionHuffmanFlags >> 10) & 3;\n textRegion.huffmanRefinementDY = (textRegionHuffmanFlags >> 12) & 3;\n textRegion.huffmanRefinementSizeSelector = !!(\n textRegionHuffmanFlags & 0x4000\n );\n }\n if (textRegion.refinement && !textRegion.refinementTemplate) {\n at = [];\n for (i = 0; i < 2; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n textRegion.refinementAt = at;\n }\n textRegion.numberOfSymbolInstances = readUint32(data, position);\n position += 4;\n args = [textRegion, header.referredTo, data, position, end];\n break;\n case 16: // PatternDictionary\n // 7.4.4. Pattern dictionary segment syntax\n const patternDictionary = {};\n const patternDictionaryFlags = data[position++];\n patternDictionary.mmr = !!(patternDictionaryFlags & 1);\n patternDictionary.template = (patternDictionaryFlags >> 1) & 3;\n patternDictionary.patternWidth = data[position++];\n patternDictionary.patternHeight = data[position++];\n patternDictionary.maxPatternIndex = readUint32(data, position);\n position += 4;\n args = [patternDictionary, header.number, data, position, end];\n break;\n case 22: // ImmediateHalftoneRegion\n case 23: // ImmediateLosslessHalftoneRegion\n // 7.4.5 Halftone region segment syntax\n const halftoneRegion = {};\n halftoneRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n const halftoneRegionFlags = data[position++];\n halftoneRegion.mmr = !!(halftoneRegionFlags & 1);\n halftoneRegion.template = (halftoneRegionFlags >> 1) & 3;\n halftoneRegion.enableSkip = !!(halftoneRegionFlags & 8);\n halftoneRegion.combinationOperator = (halftoneRegionFlags >> 4) & 7;\n halftoneRegion.defaultPixelValue = (halftoneRegionFlags >> 7) & 1;\n halftoneRegion.gridWidth = readUint32(data, position);\n position += 4;\n halftoneRegion.gridHeight = readUint32(data, position);\n position += 4;\n halftoneRegion.gridOffsetX = readUint32(data, position) & 0xffffffff;\n position += 4;\n halftoneRegion.gridOffsetY = readUint32(data, position) & 0xffffffff;\n position += 4;\n halftoneRegion.gridVectorX = readUint16(data, position);\n position += 2;\n halftoneRegion.gridVectorY = readUint16(data, position);\n position += 2;\n args = [halftoneRegion, header.referredTo, data, position, end];\n break;\n case 38: // ImmediateGenericRegion\n case 39: // ImmediateLosslessGenericRegion\n const genericRegion = {};\n genericRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n const genericRegionSegmentFlags = data[position++];\n genericRegion.mmr = !!(genericRegionSegmentFlags & 1);\n genericRegion.template = (genericRegionSegmentFlags >> 1) & 3;\n genericRegion.prediction = !!(genericRegionSegmentFlags & 8);\n if (!genericRegion.mmr) {\n atLength = genericRegion.template === 0 ? 4 : 1;\n at = [];\n for (i = 0; i < atLength; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n genericRegion.at = at;\n }\n args = [genericRegion, data, position, end];\n break;\n case 48: // PageInformation\n const pageInfo = {\n width: readUint32(data, position),\n height: readUint32(data, position + 4),\n resolutionX: readUint32(data, position + 8),\n resolutionY: readUint32(data, position + 12),\n };\n if (pageInfo.height === 0xffffffff) {\n delete pageInfo.height;\n }\n const pageSegmentFlags = data[position + 16];\n readUint16(data, position + 17); // pageStripingInformation\n pageInfo.lossless = !!(pageSegmentFlags & 1);\n pageInfo.refinement = !!(pageSegmentFlags & 2);\n pageInfo.defaultPixelValue = (pageSegmentFlags >> 2) & 1;\n pageInfo.combinationOperator = (pageSegmentFlags >> 3) & 3;\n pageInfo.requiresBuffer = !!(pageSegmentFlags & 32);\n pageInfo.combinationOperatorOverride = !!(pageSegmentFlags & 64);\n args = [pageInfo];\n break;\n case 49: // EndOfPage\n break;\n case 50: // EndOfStripe\n break;\n case 51: // EndOfFile\n break;\n case 53: // Tables\n args = [header.number, data, position, end];\n break;\n case 62: // 7.4.15 defines 2 extension types which\n // are comments and can be ignored.\n break;\n default:\n throw new Jbig2Error(\n `segment type ${header.typeName}(${header.type})` +\n \" is not implemented\"\n );\n }\n const callbackName = \"on\" + header.typeName;\n if (callbackName in visitor) {\n visitor[callbackName].apply(visitor, args);\n }\n}\n\nfunction processSegments(segments, visitor) {\n for (let i = 0, ii = segments.length; i < ii; i++) {\n processSegment(segments[i], visitor);\n }\n}\n\nfunction parseJbig2Chunks(chunks) {\n const visitor = new SimpleSegmentVisitor();\n for (let i = 0, ii = chunks.length; i < ii; i++) {\n const chunk = chunks[i];\n const segments = readSegments({}, chunk.data, chunk.start, chunk.end);\n processSegments(segments, visitor);\n }\n return visitor.buffer;\n}\n\nfunction parseJbig2(data) {\n const end = data.length;\n let position = 0;\n\n if (\n data[position] !== 0x97 ||\n data[position + 1] !== 0x4a ||\n data[position + 2] !== 0x42 ||\n data[position + 3] !== 0x32 ||\n data[position + 4] !== 0x0d ||\n data[position + 5] !== 0x0a ||\n data[position + 6] !== 0x1a ||\n data[position + 7] !== 0x0a\n ) {\n throw new Jbig2Error(\"parseJbig2 - invalid header.\");\n }\n\n const header = Object.create(null);\n position += 8;\n const flags = data[position++];\n header.randomAccess = !(flags & 1);\n if (!(flags & 2)) {\n header.numberOfPages = readUint32(data, position);\n position += 4;\n }\n\n const segments = readSegments(header, data, position, end);\n const visitor = new SimpleSegmentVisitor();\n processSegments(segments, visitor);\n\n const { width, height } = visitor.currentPageInfo;\n const bitPacked = visitor.buffer;\n const imgData = new Uint8ClampedArray(width * height);\n let q = 0,\n k = 0;\n for (let i = 0; i < height; i++) {\n let mask = 0,\n buffer;\n for (let j = 0; j < width; j++) {\n if (!mask) {\n mask = 128;\n buffer = bitPacked[k++];\n }\n imgData[q++] = buffer & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n\n return { imgData, width, height };\n}\n\nclass SimpleSegmentVisitor {\n onPageInformation(info) {\n this.currentPageInfo = info;\n const rowSize = (info.width + 7) >> 3;\n const buffer = new Uint8ClampedArray(rowSize * info.height);\n // The contents of ArrayBuffers are initialized to 0.\n // Fill the buffer with 0xFF only if info.defaultPixelValue is set\n if (info.defaultPixelValue) {\n buffer.fill(0xff);\n }\n this.buffer = buffer;\n }\n\n drawBitmap(regionInfo, bitmap) {\n const pageInfo = this.currentPageInfo;\n const width = regionInfo.width,\n height = regionInfo.height;\n const rowSize = (pageInfo.width + 7) >> 3;\n const combinationOperator = pageInfo.combinationOperatorOverride\n ? regionInfo.combinationOperator\n : pageInfo.combinationOperator;\n const buffer = this.buffer;\n const mask0 = 128 >> (regionInfo.x & 7);\n let offset0 = regionInfo.y * rowSize + (regionInfo.x >> 3);\n let i, j, mask, offset;\n switch (combinationOperator) {\n case 0: // OR\n for (i = 0; i < height; i++) {\n mask = mask0;\n offset = offset0;\n for (j = 0; j < width; j++) {\n if (bitmap[i][j]) {\n buffer[offset] |= mask;\n }\n mask >>= 1;\n if (!mask) {\n mask = 128;\n offset++;\n }\n }\n offset0 += rowSize;\n }\n break;\n case 2: // XOR\n for (i = 0; i < height; i++) {\n mask = mask0;\n offset = offset0;\n for (j = 0; j < width; j++) {\n if (bitmap[i][j]) {\n buffer[offset] ^= mask;\n }\n mask >>= 1;\n if (!mask) {\n mask = 128;\n offset++;\n }\n }\n offset0 += rowSize;\n }\n break;\n default:\n throw new Jbig2Error(\n `operator ${combinationOperator} is not supported`\n );\n }\n }\n\n onImmediateGenericRegion(region, data, start, end) {\n const regionInfo = region.info;\n const decodingContext = new DecodingContext(data, start, end);\n const bitmap = decodeBitmap(\n region.mmr,\n regionInfo.width,\n regionInfo.height,\n region.template,\n region.prediction,\n null,\n region.at,\n decodingContext\n );\n this.drawBitmap(regionInfo, bitmap);\n }\n\n onImmediateLosslessGenericRegion() {\n this.onImmediateGenericRegion.apply(this, arguments);\n }\n\n onSymbolDictionary(\n dictionary,\n currentSegment,\n referredSegments,\n data,\n start,\n end\n ) {\n let huffmanTables, huffmanInput;\n if (dictionary.huffman) {\n huffmanTables = getSymbolDictionaryHuffmanTables(\n dictionary,\n referredSegments,\n this.customTables\n );\n huffmanInput = new Reader(data, start, end);\n }\n\n // Combines exported symbols from all referred segments\n let symbols = this.symbols;\n if (!symbols) {\n this.symbols = symbols = {};\n }\n\n let inputSymbols = [];\n for (let i = 0, ii = referredSegments.length; i < ii; i++) {\n const referredSymbols = symbols[referredSegments[i]];\n // referredSymbols is undefined when we have a reference to a Tables\n // segment instead of a SymbolDictionary.\n if (referredSymbols) {\n inputSymbols = inputSymbols.concat(referredSymbols);\n }\n }\n\n const decodingContext = new DecodingContext(data, start, end);\n symbols[currentSegment] = decodeSymbolDictionary(\n dictionary.huffman,\n dictionary.refinement,\n inputSymbols,\n dictionary.numberOfNewSymbols,\n dictionary.numberOfExportedSymbols,\n huffmanTables,\n dictionary.template,\n dictionary.at,\n dictionary.refinementTemplate,\n dictionary.refinementAt,\n decodingContext,\n huffmanInput\n );\n }\n\n onImmediateTextRegion(region, referredSegments, data, start, end) {\n const regionInfo = region.info;\n let huffmanTables, huffmanInput;\n\n // Combines exported symbols from all referred segments\n const symbols = this.symbols;\n let inputSymbols = [];\n for (let i = 0, ii = referredSegments.length; i < ii; i++) {\n const referredSymbols = symbols[referredSegments[i]];\n // referredSymbols is undefined when we have a reference to a Tables\n // segment instead of a SymbolDictionary.\n if (referredSymbols) {\n inputSymbols = inputSymbols.concat(referredSymbols);\n }\n }\n const symbolCodeLength = log2(inputSymbols.length);\n if (region.huffman) {\n huffmanInput = new Reader(data, start, end);\n huffmanTables = getTextRegionHuffmanTables(\n region,\n referredSegments,\n this.customTables,\n inputSymbols.length,\n huffmanInput\n );\n }\n\n const decodingContext = new DecodingContext(data, start, end);\n const bitmap = decodeTextRegion(\n region.huffman,\n region.refinement,\n regionInfo.width,\n regionInfo.height,\n region.defaultPixelValue,\n region.numberOfSymbolInstances,\n region.stripSize,\n inputSymbols,\n symbolCodeLength,\n region.transposed,\n region.dsOffset,\n region.referenceCorner,\n region.combinationOperator,\n huffmanTables,\n region.refinementTemplate,\n region.refinementAt,\n decodingContext,\n region.logStripSize,\n huffmanInput\n );\n this.drawBitmap(regionInfo, bitmap);\n }\n\n onImmediateLosslessTextRegion() {\n this.onImmediateTextRegion.apply(this, arguments);\n }\n\n onPatternDictionary(dictionary, currentSegment, data, start, end) {\n let patterns = this.patterns;\n if (!patterns) {\n this.patterns = patterns = {};\n }\n const decodingContext = new DecodingContext(data, start, end);\n patterns[currentSegment] = decodePatternDictionary(\n dictionary.mmr,\n dictionary.patternWidth,\n dictionary.patternHeight,\n dictionary.maxPatternIndex,\n dictionary.template,\n decodingContext\n );\n }\n\n onImmediateHalftoneRegion(region, referredSegments, data, start, end) {\n // HalftoneRegion refers to exactly one PatternDictionary.\n const patterns = this.patterns[referredSegments[0]];\n const regionInfo = region.info;\n const decodingContext = new DecodingContext(data, start, end);\n const bitmap = decodeHalftoneRegion(\n region.mmr,\n patterns,\n region.template,\n regionInfo.width,\n regionInfo.height,\n region.defaultPixelValue,\n region.enableSkip,\n region.combinationOperator,\n region.gridWidth,\n region.gridHeight,\n region.gridOffsetX,\n region.gridOffsetY,\n region.gridVectorX,\n region.gridVectorY,\n decodingContext\n );\n this.drawBitmap(regionInfo, bitmap);\n }\n\n onImmediateLosslessHalftoneRegion() {\n this.onImmediateHalftoneRegion.apply(this, arguments);\n }\n\n onTables(currentSegment, data, start, end) {\n let customTables = this.customTables;\n if (!customTables) {\n this.customTables = customTables = {};\n }\n customTables[currentSegment] = decodeTablesSegment(data, start, end);\n }\n}\n\nclass HuffmanLine {\n constructor(lineData) {\n if (lineData.length === 2) {\n // OOB line.\n this.isOOB = true;\n this.rangeLow = 0;\n this.prefixLength = lineData[0];\n this.rangeLength = 0;\n this.prefixCode = lineData[1];\n this.isLowerRange = false;\n } else {\n // Normal, upper range or lower range line.\n // Upper range lines are processed like normal lines.\n this.isOOB = false;\n this.rangeLow = lineData[0];\n this.prefixLength = lineData[1];\n this.rangeLength = lineData[2];\n this.prefixCode = lineData[3];\n this.isLowerRange = lineData[4] === \"lower\";\n }\n }\n}\n\nclass HuffmanTreeNode {\n constructor(line) {\n this.children = [];\n if (line) {\n // Leaf node\n this.isLeaf = true;\n this.rangeLength = line.rangeLength;\n this.rangeLow = line.rangeLow;\n this.isLowerRange = line.isLowerRange;\n this.isOOB = line.isOOB;\n } else {\n // Intermediate or root node\n this.isLeaf = false;\n }\n }\n\n buildTree(line, shift) {\n const bit = (line.prefixCode >> shift) & 1;\n if (shift <= 0) {\n // Create a leaf node.\n this.children[bit] = new HuffmanTreeNode(line);\n } else {\n // Create an intermediate node and continue recursively.\n let node = this.children[bit];\n if (!node) {\n this.children[bit] = node = new HuffmanTreeNode(null);\n }\n node.buildTree(line, shift - 1);\n }\n }\n\n decodeNode(reader) {\n if (this.isLeaf) {\n if (this.isOOB) {\n return null;\n }\n const htOffset = reader.readBits(this.rangeLength);\n return this.rangeLow + (this.isLowerRange ? -htOffset : htOffset);\n }\n const node = this.children[reader.readBit()];\n if (!node) {\n throw new Jbig2Error(\"invalid Huffman data\");\n }\n return node.decodeNode(reader);\n }\n}\n\nclass HuffmanTable {\n constructor(lines, prefixCodesDone) {\n if (!prefixCodesDone) {\n this.assignPrefixCodes(lines);\n }\n // Create Huffman tree.\n this.rootNode = new HuffmanTreeNode(null);\n for (let i = 0, ii = lines.length; i < ii; i++) {\n const line = lines[i];\n if (line.prefixLength > 0) {\n this.rootNode.buildTree(line, line.prefixLength - 1);\n }\n }\n }\n\n decode(reader) {\n return this.rootNode.decodeNode(reader);\n }\n\n assignPrefixCodes(lines) {\n // Annex B.3 Assigning the prefix codes.\n const linesLength = lines.length;\n let prefixLengthMax = 0;\n for (let i = 0; i < linesLength; i++) {\n prefixLengthMax = Math.max(prefixLengthMax, lines[i].prefixLength);\n }\n\n const histogram = new Uint32Array(prefixLengthMax + 1);\n for (let i = 0; i < linesLength; i++) {\n histogram[lines[i].prefixLength]++;\n }\n let currentLength = 1,\n firstCode = 0,\n currentCode,\n currentTemp,\n line;\n histogram[0] = 0;\n\n while (currentLength <= prefixLengthMax) {\n firstCode = (firstCode + histogram[currentLength - 1]) << 1;\n currentCode = firstCode;\n currentTemp = 0;\n while (currentTemp < linesLength) {\n line = lines[currentTemp];\n if (line.prefixLength === currentLength) {\n line.prefixCode = currentCode;\n currentCode++;\n }\n currentTemp++;\n }\n currentLength++;\n }\n }\n}\n\nfunction decodeTablesSegment(data, start, end) {\n // Decodes a Tables segment, i.e., a custom Huffman table.\n // Annex B.2 Code table structure.\n const flags = data[start];\n const lowestValue = readUint32(data, start + 1) & 0xffffffff;\n const highestValue = readUint32(data, start + 5) & 0xffffffff;\n const reader = new Reader(data, start + 9, end);\n\n const prefixSizeBits = ((flags >> 1) & 7) + 1;\n const rangeSizeBits = ((flags >> 4) & 7) + 1;\n const lines = [];\n let prefixLength,\n rangeLength,\n currentRangeLow = lowestValue;\n\n // Normal table lines\n do {\n prefixLength = reader.readBits(prefixSizeBits);\n rangeLength = reader.readBits(rangeSizeBits);\n lines.push(\n new HuffmanLine([currentRangeLow, prefixLength, rangeLength, 0])\n );\n currentRangeLow += 1 << rangeLength;\n } while (currentRangeLow < highestValue);\n\n // Lower range table line\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([lowestValue - 1, prefixLength, 32, 0, \"lower\"]));\n\n // Upper range table line\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([highestValue, prefixLength, 32, 0]));\n\n if (flags & 1) {\n // Out-of-band table line\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([prefixLength, 0]));\n }\n\n return new HuffmanTable(lines, false);\n}\n\nconst standardTablesCache = {};\n\nfunction getStandardTable(number) {\n // Annex B.5 Standard Huffman tables.\n let table = standardTablesCache[number];\n if (table) {\n return table;\n }\n let lines;\n switch (number) {\n case 1:\n lines = [\n [0, 1, 4, 0x0],\n [16, 2, 8, 0x2],\n [272, 3, 16, 0x6],\n [65808, 3, 32, 0x7], // upper\n ];\n break;\n case 2:\n lines = [\n [0, 1, 0, 0x0],\n [1, 2, 0, 0x2],\n [2, 3, 0, 0x6],\n [3, 4, 3, 0xe],\n [11, 5, 6, 0x1e],\n [75, 6, 32, 0x3e], // upper\n [6, 0x3f], // OOB\n ];\n break;\n case 3:\n lines = [\n [-256, 8, 8, 0xfe],\n [0, 1, 0, 0x0],\n [1, 2, 0, 0x2],\n [2, 3, 0, 0x6],\n [3, 4, 3, 0xe],\n [11, 5, 6, 0x1e],\n [-257, 8, 32, 0xff, \"lower\"],\n [75, 7, 32, 0x7e], // upper\n [6, 0x3e], // OOB\n ];\n break;\n case 4:\n lines = [\n [1, 1, 0, 0x0],\n [2, 2, 0, 0x2],\n [3, 3, 0, 0x6],\n [4, 4, 3, 0xe],\n [12, 5, 6, 0x1e],\n [76, 5, 32, 0x1f], // upper\n ];\n break;\n case 5:\n lines = [\n [-255, 7, 8, 0x7e],\n [1, 1, 0, 0x0],\n [2, 2, 0, 0x2],\n [3, 3, 0, 0x6],\n [4, 4, 3, 0xe],\n [12, 5, 6, 0x1e],\n [-256, 7, 32, 0x7f, \"lower\"],\n [76, 6, 32, 0x3e], // upper\n ];\n break;\n case 6:\n lines = [\n [-2048, 5, 10, 0x1c],\n [-1024, 4, 9, 0x8],\n [-512, 4, 8, 0x9],\n [-256, 4, 7, 0xa],\n [-128, 5, 6, 0x1d],\n [-64, 5, 5, 0x1e],\n [-32, 4, 5, 0xb],\n [0, 2, 7, 0x0],\n [128, 3, 7, 0x2],\n [256, 3, 8, 0x3],\n [512, 4, 9, 0xc],\n [1024, 4, 10, 0xd],\n [-2049, 6, 32, 0x3e, \"lower\"],\n [2048, 6, 32, 0x3f], // upper\n ];\n break;\n case 7:\n lines = [\n [-1024, 4, 9, 0x8],\n [-512, 3, 8, 0x0],\n [-256, 4, 7, 0x9],\n [-128, 5, 6, 0x1a],\n [-64, 5, 5, 0x1b],\n [-32, 4, 5, 0xa],\n [0, 4, 5, 0xb],\n [32, 5, 5, 0x1c],\n [64, 5, 6, 0x1d],\n [128, 4, 7, 0xc],\n [256, 3, 8, 0x1],\n [512, 3, 9, 0x2],\n [1024, 3, 10, 0x3],\n [-1025, 5, 32, 0x1e, \"lower\"],\n [2048, 5, 32, 0x1f], // upper\n ];\n break;\n case 8:\n lines = [\n [-15, 8, 3, 0xfc],\n [-7, 9, 1, 0x1fc],\n [-5, 8, 1, 0xfd],\n [-3, 9, 0, 0x1fd],\n [-2, 7, 0, 0x7c],\n [-1, 4, 0, 0xa],\n [0, 2, 1, 0x0],\n [2, 5, 0, 0x1a],\n [3, 6, 0, 0x3a],\n [4, 3, 4, 0x4],\n [20, 6, 1, 0x3b],\n [22, 4, 4, 0xb],\n [38, 4, 5, 0xc],\n [70, 5, 6, 0x1b],\n [134, 5, 7, 0x1c],\n [262, 6, 7, 0x3c],\n [390, 7, 8, 0x7d],\n [646, 6, 10, 0x3d],\n [-16, 9, 32, 0x1fe, \"lower\"],\n [1670, 9, 32, 0x1ff], // upper\n [2, 0x1], // OOB\n ];\n break;\n case 9:\n lines = [\n [-31, 8, 4, 0xfc],\n [-15, 9, 2, 0x1fc],\n [-11, 8, 2, 0xfd],\n [-7, 9, 1, 0x1fd],\n [-5, 7, 1, 0x7c],\n [-3, 4, 1, 0xa],\n [-1, 3, 1, 0x2],\n [1, 3, 1, 0x3],\n [3, 5, 1, 0x1a],\n [5, 6, 1, 0x3a],\n [7, 3, 5, 0x4],\n [39, 6, 2, 0x3b],\n [43, 4, 5, 0xb],\n [75, 4, 6, 0xc],\n [139, 5, 7, 0x1b],\n [267, 5, 8, 0x1c],\n [523, 6, 8, 0x3c],\n [779, 7, 9, 0x7d],\n [1291, 6, 11, 0x3d],\n [-32, 9, 32, 0x1fe, \"lower\"],\n [3339, 9, 32, 0x1ff], // upper\n [2, 0x0], // OOB\n ];\n break;\n case 10:\n lines = [\n [-21, 7, 4, 0x7a],\n [-5, 8, 0, 0xfc],\n [-4, 7, 0, 0x7b],\n [-3, 5, 0, 0x18],\n [-2, 2, 2, 0x0],\n [2, 5, 0, 0x19],\n [3, 6, 0, 0x36],\n [4, 7, 0, 0x7c],\n [5, 8, 0, 0xfd],\n [6, 2, 6, 0x1],\n [70, 5, 5, 0x1a],\n [102, 6, 5, 0x37],\n [134, 6, 6, 0x38],\n [198, 6, 7, 0x39],\n [326, 6, 8, 0x3a],\n [582, 6, 9, 0x3b],\n [1094, 6, 10, 0x3c],\n [2118, 7, 11, 0x7d],\n [-22, 8, 32, 0xfe, \"lower\"],\n [4166, 8, 32, 0xff], // upper\n [2, 0x2], // OOB\n ];\n break;\n case 11:\n lines = [\n [1, 1, 0, 0x0],\n [2, 2, 1, 0x2],\n [4, 4, 0, 0xc],\n [5, 4, 1, 0xd],\n [7, 5, 1, 0x1c],\n [9, 5, 2, 0x1d],\n [13, 6, 2, 0x3c],\n [17, 7, 2, 0x7a],\n [21, 7, 3, 0x7b],\n [29, 7, 4, 0x7c],\n [45, 7, 5, 0x7d],\n [77, 7, 6, 0x7e],\n [141, 7, 32, 0x7f], // upper\n ];\n break;\n case 12:\n lines = [\n [1, 1, 0, 0x0],\n [2, 2, 0, 0x2],\n [3, 3, 1, 0x6],\n [5, 5, 0, 0x1c],\n [6, 5, 1, 0x1d],\n [8, 6, 1, 0x3c],\n [10, 7, 0, 0x7a],\n [11, 7, 1, 0x7b],\n [13, 7, 2, 0x7c],\n [17, 7, 3, 0x7d],\n [25, 7, 4, 0x7e],\n [41, 8, 5, 0xfe],\n [73, 8, 32, 0xff], // upper\n ];\n break;\n case 13:\n lines = [\n [1, 1, 0, 0x0],\n [2, 3, 0, 0x4],\n [3, 4, 0, 0xc],\n [4, 5, 0, 0x1c],\n [5, 4, 1, 0xd],\n [7, 3, 3, 0x5],\n [15, 6, 1, 0x3a],\n [17, 6, 2, 0x3b],\n [21, 6, 3, 0x3c],\n [29, 6, 4, 0x3d],\n [45, 6, 5, 0x3e],\n [77, 7, 6, 0x7e],\n [141, 7, 32, 0x7f], // upper\n ];\n break;\n case 14:\n lines = [\n [-2, 3, 0, 0x4],\n [-1, 3, 0, 0x5],\n [0, 1, 0, 0x0],\n [1, 3, 0, 0x6],\n [2, 3, 0, 0x7],\n ];\n break;\n case 15:\n lines = [\n [-24, 7, 4, 0x7c],\n [-8, 6, 2, 0x3c],\n [-4, 5, 1, 0x1c],\n [-2, 4, 0, 0xc],\n [-1, 3, 0, 0x4],\n [0, 1, 0, 0x0],\n [1, 3, 0, 0x5],\n [2, 4, 0, 0xd],\n [3, 5, 1, 0x1d],\n [5, 6, 2, 0x3d],\n [9, 7, 4, 0x7d],\n [-25, 7, 32, 0x7e, \"lower\"],\n [25, 7, 32, 0x7f], // upper\n ];\n break;\n default:\n throw new Jbig2Error(`standard table B.${number} does not exist`);\n }\n\n for (let i = 0, ii = lines.length; i < ii; i++) {\n lines[i] = new HuffmanLine(lines[i]);\n }\n table = new HuffmanTable(lines, true);\n standardTablesCache[number] = table;\n return table;\n}\n\nclass Reader {\n constructor(data, start, end) {\n this.data = data;\n this.start = start;\n this.end = end;\n this.position = start;\n this.shift = -1;\n this.currentByte = 0;\n }\n\n readBit() {\n if (this.shift < 0) {\n if (this.position >= this.end) {\n throw new Jbig2Error(\"end of data while reading bit\");\n }\n this.currentByte = this.data[this.position++];\n this.shift = 7;\n }\n const bit = (this.currentByte >> this.shift) & 1;\n this.shift--;\n return bit;\n }\n\n readBits(numBits) {\n let result = 0,\n i;\n for (i = numBits - 1; i >= 0; i--) {\n result |= this.readBit() << i;\n }\n return result;\n }\n\n byteAlign() {\n this.shift = -1;\n }\n\n next() {\n if (this.position >= this.end) {\n return -1;\n }\n return this.data[this.position++];\n }\n}\n\nfunction getCustomHuffmanTable(index, referredTo, customTables) {\n // Returns a Tables segment that has been earlier decoded.\n // See 7.4.2.1.6 (symbol dictionary) or 7.4.3.1.6 (text region).\n let currentIndex = 0;\n for (let i = 0, ii = referredTo.length; i < ii; i++) {\n const table = customTables[referredTo[i]];\n if (table) {\n if (index === currentIndex) {\n return table;\n }\n currentIndex++;\n }\n }\n throw new Jbig2Error(\"can't find custom Huffman table\");\n}\n\nfunction getTextRegionHuffmanTables(\n textRegion,\n referredTo,\n customTables,\n numberOfSymbols,\n reader\n) {\n // 7.4.3.1.7 Symbol ID Huffman table decoding\n\n // Read code lengths for RUNCODEs 0...34.\n const codes = [];\n for (let i = 0; i <= 34; i++) {\n const codeLength = reader.readBits(4);\n codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n }\n // Assign Huffman codes for RUNCODEs.\n const runCodesTable = new HuffmanTable(codes, false);\n\n // Read a Huffman code using the assignment above.\n // Interpret the RUNCODE codes and the additional bits (if any).\n codes.length = 0;\n for (let i = 0; i < numberOfSymbols; ) {\n const codeLength = runCodesTable.decode(reader);\n if (codeLength >= 32) {\n let repeatedLength, numberOfRepeats, j;\n switch (codeLength) {\n case 32:\n if (i === 0) {\n throw new Jbig2Error(\"no previous value in symbol ID table\");\n }\n numberOfRepeats = reader.readBits(2) + 3;\n repeatedLength = codes[i - 1].prefixLength;\n break;\n case 33:\n numberOfRepeats = reader.readBits(3) + 3;\n repeatedLength = 0;\n break;\n case 34:\n numberOfRepeats = reader.readBits(7) + 11;\n repeatedLength = 0;\n break;\n default:\n throw new Jbig2Error(\"invalid code length in symbol ID table\");\n }\n for (j = 0; j < numberOfRepeats; j++) {\n codes.push(new HuffmanLine([i, repeatedLength, 0, 0]));\n i++;\n }\n } else {\n codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n i++;\n }\n }\n reader.byteAlign();\n const symbolIDTable = new HuffmanTable(codes, false);\n\n // 7.4.3.1.6 Text region segment Huffman table selection\n\n let customIndex = 0,\n tableFirstS,\n tableDeltaS,\n tableDeltaT;\n\n switch (textRegion.huffmanFS) {\n case 0:\n case 1:\n tableFirstS = getStandardTable(textRegion.huffmanFS + 6);\n break;\n case 3:\n tableFirstS = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman FS selector\");\n }\n\n switch (textRegion.huffmanDS) {\n case 0:\n case 1:\n case 2:\n tableDeltaS = getStandardTable(textRegion.huffmanDS + 8);\n break;\n case 3:\n tableDeltaS = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman DS selector\");\n }\n\n switch (textRegion.huffmanDT) {\n case 0:\n case 1:\n case 2:\n tableDeltaT = getStandardTable(textRegion.huffmanDT + 11);\n break;\n case 3:\n tableDeltaT = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman DT selector\");\n }\n\n if (textRegion.refinement) {\n // Load tables RDW, RDH, RDX and RDY.\n throw new Jbig2Error(\"refinement with Huffman is not supported\");\n }\n\n return {\n symbolIDTable,\n tableFirstS,\n tableDeltaS,\n tableDeltaT,\n };\n}\n\nfunction getSymbolDictionaryHuffmanTables(\n dictionary,\n referredTo,\n customTables\n) {\n // 7.4.2.1.6 Symbol dictionary segment Huffman table selection\n\n let customIndex = 0,\n tableDeltaHeight,\n tableDeltaWidth;\n switch (dictionary.huffmanDHSelector) {\n case 0:\n case 1:\n tableDeltaHeight = getStandardTable(dictionary.huffmanDHSelector + 4);\n break;\n case 3:\n tableDeltaHeight = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman DH selector\");\n }\n\n switch (dictionary.huffmanDWSelector) {\n case 0:\n case 1:\n tableDeltaWidth = getStandardTable(dictionary.huffmanDWSelector + 2);\n break;\n case 3:\n tableDeltaWidth = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman DW selector\");\n }\n\n let tableBitmapSize, tableAggregateInstances;\n if (dictionary.bitmapSizeSelector) {\n tableBitmapSize = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n } else {\n tableBitmapSize = getStandardTable(1);\n }\n\n if (dictionary.aggregationInstancesSelector) {\n tableAggregateInstances = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n } else {\n tableAggregateInstances = getStandardTable(1);\n }\n\n return {\n tableDeltaHeight,\n tableDeltaWidth,\n tableBitmapSize,\n tableAggregateInstances,\n };\n}\n\nfunction readUncompressedBitmap(reader, width, height) {\n const bitmap = [];\n for (let y = 0; y < height; y++) {\n const row = new Uint8Array(width);\n bitmap.push(row);\n for (let x = 0; x < width; x++) {\n row[x] = reader.readBit();\n }\n reader.byteAlign();\n }\n return bitmap;\n}\n\nfunction decodeMMRBitmap(input, width, height, endOfBlock) {\n // MMR is the same compression algorithm as the PDF filter\n // CCITTFaxDecode with /K -1.\n const params = {\n K: -1,\n Columns: width,\n Rows: height,\n BlackIs1: true,\n EndOfBlock: endOfBlock,\n };\n const decoder = new CCITTFaxDecoder(input, params);\n const bitmap = [];\n let currentByte,\n eof = false;\n\n for (let y = 0; y < height; y++) {\n const row = new Uint8Array(width);\n bitmap.push(row);\n let shift = -1;\n for (let x = 0; x < width; x++) {\n if (shift < 0) {\n currentByte = decoder.readNextChar();\n if (currentByte === -1) {\n // Set the rest of the bits to zero.\n currentByte = 0;\n eof = true;\n }\n shift = 7;\n }\n row[x] = (currentByte >> shift) & 1;\n shift--;\n }\n }\n\n if (endOfBlock && !eof) {\n // Read until EOFB has been consumed.\n const lookForEOFLimit = 5;\n for (let i = 0; i < lookForEOFLimit; i++) {\n if (decoder.readNextChar() === -1) {\n break;\n }\n }\n }\n\n return bitmap;\n}\n\nclass Jbig2Image {\n parseChunks(chunks) {\n return parseJbig2Chunks(chunks);\n }\n\n parse(data) {\n const { imgData, width, height } = parseJbig2(data);\n this.width = width;\n this.height = height;\n return imgData;\n }\n}\n\nexport { Jbig2Image };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Table C-2\nconst QeTable = [\n { qe: 0x5601, nmps: 1, nlps: 1, switchFlag: 1 },\n { qe: 0x3401, nmps: 2, nlps: 6, switchFlag: 0 },\n { qe: 0x1801, nmps: 3, nlps: 9, switchFlag: 0 },\n { qe: 0x0ac1, nmps: 4, nlps: 12, switchFlag: 0 },\n { qe: 0x0521, nmps: 5, nlps: 29, switchFlag: 0 },\n { qe: 0x0221, nmps: 38, nlps: 33, switchFlag: 0 },\n { qe: 0x5601, nmps: 7, nlps: 6, switchFlag: 1 },\n { qe: 0x5401, nmps: 8, nlps: 14, switchFlag: 0 },\n { qe: 0x4801, nmps: 9, nlps: 14, switchFlag: 0 },\n { qe: 0x3801, nmps: 10, nlps: 14, switchFlag: 0 },\n { qe: 0x3001, nmps: 11, nlps: 17, switchFlag: 0 },\n { qe: 0x2401, nmps: 12, nlps: 18, switchFlag: 0 },\n { qe: 0x1c01, nmps: 13, nlps: 20, switchFlag: 0 },\n { qe: 0x1601, nmps: 29, nlps: 21, switchFlag: 0 },\n { qe: 0x5601, nmps: 15, nlps: 14, switchFlag: 1 },\n { qe: 0x5401, nmps: 16, nlps: 14, switchFlag: 0 },\n { qe: 0x5101, nmps: 17, nlps: 15, switchFlag: 0 },\n { qe: 0x4801, nmps: 18, nlps: 16, switchFlag: 0 },\n { qe: 0x3801, nmps: 19, nlps: 17, switchFlag: 0 },\n { qe: 0x3401, nmps: 20, nlps: 18, switchFlag: 0 },\n { qe: 0x3001, nmps: 21, nlps: 19, switchFlag: 0 },\n { qe: 0x2801, nmps: 22, nlps: 19, switchFlag: 0 },\n { qe: 0x2401, nmps: 23, nlps: 20, switchFlag: 0 },\n { qe: 0x2201, nmps: 24, nlps: 21, switchFlag: 0 },\n { qe: 0x1c01, nmps: 25, nlps: 22, switchFlag: 0 },\n { qe: 0x1801, nmps: 26, nlps: 23, switchFlag: 0 },\n { qe: 0x1601, nmps: 27, nlps: 24, switchFlag: 0 },\n { qe: 0x1401, nmps: 28, nlps: 25, switchFlag: 0 },\n { qe: 0x1201, nmps: 29, nlps: 26, switchFlag: 0 },\n { qe: 0x1101, nmps: 30, nlps: 27, switchFlag: 0 },\n { qe: 0x0ac1, nmps: 31, nlps: 28, switchFlag: 0 },\n { qe: 0x09c1, nmps: 32, nlps: 29, switchFlag: 0 },\n { qe: 0x08a1, nmps: 33, nlps: 30, switchFlag: 0 },\n { qe: 0x0521, nmps: 34, nlps: 31, switchFlag: 0 },\n { qe: 0x0441, nmps: 35, nlps: 32, switchFlag: 0 },\n { qe: 0x02a1, nmps: 36, nlps: 33, switchFlag: 0 },\n { qe: 0x0221, nmps: 37, nlps: 34, switchFlag: 0 },\n { qe: 0x0141, nmps: 38, nlps: 35, switchFlag: 0 },\n { qe: 0x0111, nmps: 39, nlps: 36, switchFlag: 0 },\n { qe: 0x0085, nmps: 40, nlps: 37, switchFlag: 0 },\n { qe: 0x0049, nmps: 41, nlps: 38, switchFlag: 0 },\n { qe: 0x0025, nmps: 42, nlps: 39, switchFlag: 0 },\n { qe: 0x0015, nmps: 43, nlps: 40, switchFlag: 0 },\n { qe: 0x0009, nmps: 44, nlps: 41, switchFlag: 0 },\n { qe: 0x0005, nmps: 45, nlps: 42, switchFlag: 0 },\n { qe: 0x0001, nmps: 45, nlps: 43, switchFlag: 0 },\n { qe: 0x5601, nmps: 46, nlps: 46, switchFlag: 0 },\n];\n\n/**\n * This class implements the QM Coder decoding as defined in\n * JPEG 2000 Part I Final Committee Draft Version 1.0\n * Annex C.3 Arithmetic decoding procedure\n * available at http://www.jpeg.org/public/fcd15444-1.pdf\n *\n * The arithmetic decoder is used in conjunction with context models to decode\n * JPEG2000 and JBIG2 streams.\n */\nclass ArithmeticDecoder {\n // C.3.5 Initialisation of the decoder (INITDEC)\n constructor(data, start, end) {\n this.data = data;\n this.bp = start;\n this.dataEnd = end;\n\n this.chigh = data[start];\n this.clow = 0;\n\n this.byteIn();\n\n this.chigh = ((this.chigh << 7) & 0xffff) | ((this.clow >> 9) & 0x7f);\n this.clow = (this.clow << 7) & 0xffff;\n this.ct -= 7;\n this.a = 0x8000;\n }\n\n // C.3.4 Compressed data input (BYTEIN)\n byteIn() {\n const data = this.data;\n let bp = this.bp;\n\n if (data[bp] === 0xff) {\n if (data[bp + 1] > 0x8f) {\n this.clow += 0xff00;\n this.ct = 8;\n } else {\n bp++;\n this.clow += data[bp] << 9;\n this.ct = 7;\n this.bp = bp;\n }\n } else {\n bp++;\n this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xff00;\n this.ct = 8;\n this.bp = bp;\n }\n if (this.clow > 0xffff) {\n this.chigh += this.clow >> 16;\n this.clow &= 0xffff;\n }\n }\n\n // C.3.2 Decoding a decision (DECODE)\n readBit(contexts, pos) {\n // Contexts are packed into 1 byte:\n // highest 7 bits carry cx.index, lowest bit carries cx.mps\n let cx_index = contexts[pos] >> 1,\n cx_mps = contexts[pos] & 1;\n const qeTableIcx = QeTable[cx_index];\n const qeIcx = qeTableIcx.qe;\n let d;\n let a = this.a - qeIcx;\n\n if (this.chigh < qeIcx) {\n // exchangeLps\n if (a < qeIcx) {\n a = qeIcx;\n d = cx_mps;\n cx_index = qeTableIcx.nmps;\n } else {\n a = qeIcx;\n d = 1 ^ cx_mps;\n if (qeTableIcx.switchFlag === 1) {\n cx_mps = d;\n }\n cx_index = qeTableIcx.nlps;\n }\n } else {\n this.chigh -= qeIcx;\n if ((a & 0x8000) !== 0) {\n this.a = a;\n return cx_mps;\n }\n // exchangeMps\n if (a < qeIcx) {\n d = 1 ^ cx_mps;\n if (qeTableIcx.switchFlag === 1) {\n cx_mps = d;\n }\n cx_index = qeTableIcx.nlps;\n } else {\n d = cx_mps;\n cx_index = qeTableIcx.nmps;\n }\n }\n // C.3.3 renormD;\n do {\n if (this.ct === 0) {\n this.byteIn();\n }\n\n a <<= 1;\n this.chigh = ((this.chigh << 1) & 0xffff) | ((this.clow >> 15) & 1);\n this.clow = (this.clow << 1) & 0xffff;\n this.ct--;\n } while ((a & 0x8000) === 0);\n this.a = a;\n\n contexts[pos] = (cx_index << 1) | cx_mps;\n return d;\n }\n}\n\nexport { ArithmeticDecoder };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { Dict } from \"./primitives.js\";\nimport { JpegImage } from \"./jpg.js\";\nimport { shadow } from \"../shared/util.js\";\n\n/**\n * For JPEG's we use a library to decode these images and the stream behaves\n * like all the other DecodeStreams.\n */\nclass JpegStream extends DecodeStream {\n constructor(stream, maybeLength, params) {\n // Some images may contain 'junk' before the SOI (start-of-image) marker.\n // Note: this seems to mainly affect inline images.\n let ch;\n while ((ch = stream.getByte()) !== -1) {\n // Find the first byte of the SOI marker (0xFFD8).\n if (ch === 0xff) {\n stream.skip(-1); // Reset the stream position to the SOI.\n break;\n }\n }\n super(maybeLength);\n\n this.stream = stream;\n this.dict = stream.dict;\n this.maybeLength = maybeLength;\n this.params = params;\n }\n\n get bytes() {\n // If `this.maybeLength` is null, we'll get the entire stream.\n return shadow(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n }\n\n ensureBuffer(requested) {\n // No-op, since `this.readBlock` will always parse the entire image and\n // directly insert all of its data into `this.buffer`.\n }\n\n readBlock() {\n if (this.eof) {\n return;\n }\n const jpegOptions = {\n decodeTransform: undefined,\n colorTransform: undefined,\n };\n\n // Checking if values need to be transformed before conversion.\n const decodeArr = this.dict.getArray(\"D\", \"Decode\");\n if (this.forceRGB && Array.isArray(decodeArr)) {\n const bitsPerComponent = this.dict.get(\"BPC\", \"BitsPerComponent\") || 8;\n const decodeArrLength = decodeArr.length;\n const transform = new Int32Array(decodeArrLength);\n let transformNeeded = false;\n const maxValue = (1 << bitsPerComponent) - 1;\n for (let i = 0; i < decodeArrLength; i += 2) {\n transform[i] = ((decodeArr[i + 1] - decodeArr[i]) * 256) | 0;\n transform[i + 1] = (decodeArr[i] * maxValue) | 0;\n if (transform[i] !== 256 || transform[i + 1] !== 0) {\n transformNeeded = true;\n }\n }\n if (transformNeeded) {\n jpegOptions.decodeTransform = transform;\n }\n }\n // Fetching the 'ColorTransform' entry, if it exists.\n if (this.params instanceof Dict) {\n const colorTransform = this.params.get(\"ColorTransform\");\n if (Number.isInteger(colorTransform)) {\n jpegOptions.colorTransform = colorTransform;\n }\n }\n const jpegImage = new JpegImage(jpegOptions);\n\n jpegImage.parse(this.bytes);\n const data = jpegImage.getData({\n width: this.drawWidth,\n height: this.drawHeight,\n forceRGB: this.forceRGB,\n isSourcePDF: true,\n });\n this.buffer = data;\n this.bufferLength = data.length;\n this.eof = true;\n }\n}\n\nexport { JpegStream };\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, BaseException, warn } from \"../shared/util.js\";\nimport { readUint16 } from \"./core_utils.js\";\n\nclass JpegError extends BaseException {\n constructor(msg) {\n super(`JPEG error: ${msg}`, \"JpegError\");\n }\n}\n\nclass DNLMarkerError extends BaseException {\n constructor(message, scanLines) {\n super(message, \"DNLMarkerError\");\n this.scanLines = scanLines;\n }\n}\n\nclass EOIMarkerError extends BaseException {\n constructor(msg) {\n super(msg, \"EOIMarkerError\");\n }\n}\n\n/**\n * This code was forked from https://github.com/notmasteryet/jpgjs.\n * The original version was created by GitHub user notmasteryet.\n *\n * - The JPEG specification can be found in the ITU CCITT Recommendation T.81\n * (www.w3.org/Graphics/JPEG/itu-t81.pdf)\n * - The JFIF specification can be found in the JPEG File Interchange Format\n * (www.w3.org/Graphics/JPEG/jfif3.pdf)\n * - The Adobe Application-Specific JPEG markers in the\n * Supporting the DCT Filters in PostScript Level 2, Technical Note #5116\n * (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf)\n */\n\n// prettier-ignore\nconst dctZigZag = new Uint8Array([\n 0,\n 1, 8,\n 16, 9, 2,\n 3, 10, 17, 24,\n 32, 25, 18, 11, 4,\n 5, 12, 19, 26, 33, 40,\n 48, 41, 34, 27, 20, 13, 6,\n 7, 14, 21, 28, 35, 42, 49, 56,\n 57, 50, 43, 36, 29, 22, 15,\n 23, 30, 37, 44, 51, 58,\n 59, 52, 45, 38, 31,\n 39, 46, 53, 60,\n 61, 54, 47,\n 55, 62,\n 63\n]);\n\nconst dctCos1 = 4017; // cos(pi/16)\nconst dctSin1 = 799; // sin(pi/16)\nconst dctCos3 = 3406; // cos(3*pi/16)\nconst dctSin3 = 2276; // sin(3*pi/16)\nconst dctCos6 = 1567; // cos(6*pi/16)\nconst dctSin6 = 3784; // sin(6*pi/16)\nconst dctSqrt2 = 5793; // sqrt(2)\nconst dctSqrt1d2 = 2896; // sqrt(2) / 2\n\nfunction buildHuffmanTable(codeLengths, values) {\n let k = 0,\n i,\n j,\n length = 16;\n while (length > 0 && !codeLengths[length - 1]) {\n length--;\n }\n const code = [{ children: [], index: 0 }];\n let p = code[0],\n q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push((q = { children: [], index: 0 }));\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n // p here points to last code\n code.push((q = { children: [], index: 0 }));\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n}\n\nfunction getBlockBufferOffset(component, row, col) {\n return 64 * ((component.blocksPerLine + 1) * row + col);\n}\n\nfunction decodeScan(\n data,\n offset,\n frame,\n components,\n resetInterval,\n spectralStart,\n spectralEnd,\n successivePrev,\n successive,\n parseDNLMarker = false\n) {\n const mcusPerLine = frame.mcusPerLine;\n const progressive = frame.progressive;\n\n const startOffset = offset;\n let bitsData = 0,\n bitsCount = 0;\n\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return (bitsData >> bitsCount) & 1;\n }\n bitsData = data[offset++];\n if (bitsData === 0xff) {\n const nextByte = data[offset++];\n if (nextByte) {\n if (nextByte === /* DNL = */ 0xdc && parseDNLMarker) {\n offset += 2; // Skip marker length.\n\n const scanLines = readUint16(data, offset);\n offset += 2;\n if (scanLines > 0 && scanLines !== frame.scanLines) {\n throw new DNLMarkerError(\n \"Found DNL marker (0xFFDC) while parsing scan data\",\n scanLines\n );\n }\n } else if (nextByte === /* EOI = */ 0xd9) {\n if (parseDNLMarker) {\n // NOTE: only 8-bit JPEG images are supported in this decoder.\n const maybeScanLines = blockRow * (frame.precision === 8 ? 8 : 0);\n // Heuristic to attempt to handle corrupt JPEG images with too\n // large `scanLines` parameter, by falling back to the currently\n // parsed number of scanLines when it's at least (approximately)\n // one order of magnitude smaller than expected (fixes\n // issue10880.pdf and issue10989.pdf).\n if (\n maybeScanLines > 0 &&\n Math.round(frame.scanLines / maybeScanLines) >= 10\n ) {\n throw new DNLMarkerError(\n \"Found EOI marker (0xFFD9) while parsing scan data, \" +\n \"possibly caused by incorrect `scanLines` parameter\",\n maybeScanLines\n );\n }\n }\n throw new EOIMarkerError(\n \"Found EOI marker (0xFFD9) while parsing scan data\"\n );\n }\n throw new JpegError(\n `unexpected marker ${((bitsData << 8) | nextByte).toString(16)}`\n );\n }\n // unstuff 0\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n\n function decodeHuffman(tree) {\n let node = tree;\n while (true) {\n node = node[readBit()];\n switch (typeof node) {\n case \"number\":\n return node;\n case \"object\":\n continue;\n }\n throw new JpegError(\"invalid huffman sequence\");\n }\n }\n\n function receive(length) {\n let n = 0;\n while (length > 0) {\n n = (n << 1) | readBit();\n length--;\n }\n return n;\n }\n\n function receiveAndExtend(length) {\n if (length === 1) {\n return readBit() === 1 ? 1 : -1;\n }\n const n = receive(length);\n if (n >= 1 << (length - 1)) {\n return n;\n }\n return n + (-1 << length) + 1;\n }\n\n function decodeBaseline(component, blockOffset) {\n const t = decodeHuffman(component.huffmanTableDC);\n const diff = t === 0 ? 0 : receiveAndExtend(t);\n component.blockData[blockOffset] = component.pred += diff;\n let k = 1;\n while (k < 64) {\n const rs = decodeHuffman(component.huffmanTableAC);\n const s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n const z = dctZigZag[k];\n component.blockData[blockOffset + z] = receiveAndExtend(s);\n k++;\n }\n }\n\n function decodeDCFirst(component, blockOffset) {\n const t = decodeHuffman(component.huffmanTableDC);\n const diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n component.blockData[blockOffset] = component.pred += diff;\n }\n\n function decodeDCSuccessive(component, blockOffset) {\n component.blockData[blockOffset] |= readBit() << successive;\n }\n\n let eobrun = 0;\n function decodeACFirst(component, blockOffset) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n let k = spectralStart;\n const e = spectralEnd;\n while (k <= e) {\n const rs = decodeHuffman(component.huffmanTableAC);\n const s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n const z = dctZigZag[k];\n component.blockData[blockOffset + z] =\n receiveAndExtend(s) * (1 << successive);\n k++;\n }\n }\n\n let successiveACState = 0,\n successiveACNextValue;\n function decodeACSuccessive(component, blockOffset) {\n let k = spectralStart;\n const e = spectralEnd;\n let r = 0;\n let s;\n let rs;\n while (k <= e) {\n const offsetZ = blockOffset + dctZigZag[k];\n const sign = component.blockData[offsetZ] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0: // initial state\n rs = decodeHuffman(component.huffmanTableAC);\n s = rs & 15;\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1) {\n throw new JpegError(\"invalid ACn encoding\");\n }\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1: // skipping r zero items\n case 2:\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n } else {\n r--;\n if (r === 0) {\n successiveACState = successiveACState === 2 ? 3 : 0;\n }\n }\n break;\n case 3: // set value for a zero item\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n } else {\n component.blockData[offsetZ] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4: // eob\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n }\n break;\n }\n k++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0) {\n successiveACState = 0;\n }\n }\n }\n\n let blockRow = 0;\n function decodeMcu(component, decode, mcu, row, col) {\n const mcuRow = (mcu / mcusPerLine) | 0;\n const mcuCol = mcu % mcusPerLine;\n blockRow = mcuRow * component.v + row;\n const blockCol = mcuCol * component.h + col;\n const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, blockOffset);\n }\n\n function decodeBlock(component, decode, mcu) {\n blockRow = (mcu / component.blocksPerLine) | 0;\n const blockCol = mcu % component.blocksPerLine;\n const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, blockOffset);\n }\n\n const componentsLength = components.length;\n let component, i, j, k, n;\n let decodeFn;\n if (progressive) {\n if (spectralStart === 0) {\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n } else {\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n }\n } else {\n decodeFn = decodeBaseline;\n }\n\n let mcu = 0,\n fileMarker;\n let mcuExpected;\n if (componentsLength === 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n\n let h, v;\n while (mcu <= mcuExpected) {\n // reset interval stuff\n const mcuToRead = resetInterval\n ? Math.min(mcuExpected - mcu, resetInterval)\n : mcuExpected;\n\n // The `mcuToRead === 0` case should only occur when all of the expected\n // MCU data has been already parsed, i.e. when `mcu === mcuExpected`, but\n // some corrupt JPEG images contain more data than intended and we thus\n // want to skip over any extra RSTx markers below (fixes issue11794.pdf).\n if (mcuToRead > 0) {\n for (i = 0; i < componentsLength; i++) {\n components[i].pred = 0;\n }\n eobrun = 0;\n\n if (componentsLength === 1) {\n component = components[0];\n for (n = 0; n < mcuToRead; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < mcuToRead; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n }\n }\n }\n\n // find marker\n bitsCount = 0;\n fileMarker = findNextFileMarker(data, offset);\n if (!fileMarker) {\n break; // Reached the end of the image data without finding any marker.\n }\n if (fileMarker.invalid) {\n // Some bad images seem to pad Scan blocks with e.g. zero bytes, skip\n // past those to attempt to find a valid marker (fixes issue4090.pdf).\n const partialMsg = mcuToRead > 0 ? \"unexpected\" : \"excessive\";\n warn(\n `decodeScan - ${partialMsg} MCU data, current marker is: ${fileMarker.invalid}`\n );\n offset = fileMarker.offset;\n }\n if (fileMarker.marker >= 0xffd0 && fileMarker.marker <= 0xffd7) {\n // RSTx\n offset += 2;\n } else {\n break;\n }\n }\n\n return offset - startOffset;\n}\n\n// A port of poppler's IDCT method which in turn is taken from:\n// Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz,\n// 'Practical Fast 1-D DCT Algorithms with 11 Multiplications',\n// IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989,\n// 988-991.\nfunction quantizeAndInverse(component, blockBufferOffset, p) {\n const qt = component.quantizationTable,\n blockData = component.blockData;\n let v0, v1, v2, v3, v4, v5, v6, v7;\n let p0, p1, p2, p3, p4, p5, p6, p7;\n let t;\n\n if (!qt) {\n throw new JpegError(\"missing required Quantization Table.\");\n }\n\n // inverse DCT on rows\n for (let row = 0; row < 64; row += 8) {\n // gather block data\n p0 = blockData[blockBufferOffset + row];\n p1 = blockData[blockBufferOffset + row + 1];\n p2 = blockData[blockBufferOffset + row + 2];\n p3 = blockData[blockBufferOffset + row + 3];\n p4 = blockData[blockBufferOffset + row + 4];\n p5 = blockData[blockBufferOffset + row + 5];\n p6 = blockData[blockBufferOffset + row + 6];\n p7 = blockData[blockBufferOffset + row + 7];\n\n // dequant p0\n p0 *= qt[row];\n\n // check for all-zero AC coefficients\n if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = (dctSqrt2 * p0 + 512) >> 10;\n p[row] = t;\n p[row + 1] = t;\n p[row + 2] = t;\n p[row + 3] = t;\n p[row + 4] = t;\n p[row + 5] = t;\n p[row + 6] = t;\n p[row + 7] = t;\n continue;\n }\n // dequant p1 ... p7\n p1 *= qt[row + 1];\n p2 *= qt[row + 2];\n p3 *= qt[row + 3];\n p4 *= qt[row + 4];\n p5 *= qt[row + 5];\n p6 *= qt[row + 6];\n p7 *= qt[row + 7];\n\n // stage 4\n v0 = (dctSqrt2 * p0 + 128) >> 8;\n v1 = (dctSqrt2 * p4 + 128) >> 8;\n v2 = p2;\n v3 = p6;\n v4 = (dctSqrt1d2 * (p1 - p7) + 128) >> 8;\n v7 = (dctSqrt1d2 * (p1 + p7) + 128) >> 8;\n v5 = p3 << 4;\n v6 = p5 << 4;\n\n // stage 3\n v0 = (v0 + v1 + 1) >> 1;\n v1 = v0 - v1;\n t = (v2 * dctSin6 + v3 * dctCos6 + 128) >> 8;\n v2 = (v2 * dctCos6 - v3 * dctSin6 + 128) >> 8;\n v3 = t;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = v4 - v6;\n v7 = (v7 + v5 + 1) >> 1;\n v5 = v7 - v5;\n\n // stage 2\n v0 = (v0 + v3 + 1) >> 1;\n v3 = v0 - v3;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = v1 - v2;\n t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n v7 = t;\n t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p[row] = v0 + v7;\n p[row + 7] = v0 - v7;\n p[row + 1] = v1 + v6;\n p[row + 6] = v1 - v6;\n p[row + 2] = v2 + v5;\n p[row + 5] = v2 - v5;\n p[row + 3] = v3 + v4;\n p[row + 4] = v3 - v4;\n }\n\n // inverse DCT on columns\n for (let col = 0; col < 8; ++col) {\n p0 = p[col];\n p1 = p[col + 8];\n p2 = p[col + 16];\n p3 = p[col + 24];\n p4 = p[col + 32];\n p5 = p[col + 40];\n p6 = p[col + 48];\n p7 = p[col + 56];\n\n // check for all-zero AC coefficients\n if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = (dctSqrt2 * p0 + 8192) >> 14;\n // Convert to 8-bit.\n if (t < -2040) {\n t = 0;\n } else if (t >= 2024) {\n t = 255;\n } else {\n t = (t + 2056) >> 4;\n }\n blockData[blockBufferOffset + col] = t;\n blockData[blockBufferOffset + col + 8] = t;\n blockData[blockBufferOffset + col + 16] = t;\n blockData[blockBufferOffset + col + 24] = t;\n blockData[blockBufferOffset + col + 32] = t;\n blockData[blockBufferOffset + col + 40] = t;\n blockData[blockBufferOffset + col + 48] = t;\n blockData[blockBufferOffset + col + 56] = t;\n continue;\n }\n\n // stage 4\n v0 = (dctSqrt2 * p0 + 2048) >> 12;\n v1 = (dctSqrt2 * p4 + 2048) >> 12;\n v2 = p2;\n v3 = p6;\n v4 = (dctSqrt1d2 * (p1 - p7) + 2048) >> 12;\n v7 = (dctSqrt1d2 * (p1 + p7) + 2048) >> 12;\n v5 = p3;\n v6 = p5;\n\n // stage 3\n // Shift v0 by 128.5 << 5 here, so we don't need to shift p0...p7 when\n // converting to UInt8 range later.\n v0 = ((v0 + v1 + 1) >> 1) + 4112;\n v1 = v0 - v1;\n t = (v2 * dctSin6 + v3 * dctCos6 + 2048) >> 12;\n v2 = (v2 * dctCos6 - v3 * dctSin6 + 2048) >> 12;\n v3 = t;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = v4 - v6;\n v7 = (v7 + v5 + 1) >> 1;\n v5 = v7 - v5;\n\n // stage 2\n v0 = (v0 + v3 + 1) >> 1;\n v3 = v0 - v3;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = v1 - v2;\n t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n v7 = t;\n t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p0 = v0 + v7;\n p7 = v0 - v7;\n p1 = v1 + v6;\n p6 = v1 - v6;\n p2 = v2 + v5;\n p5 = v2 - v5;\n p3 = v3 + v4;\n p4 = v3 - v4;\n\n // Convert to 8-bit integers.\n if (p0 < 16) {\n p0 = 0;\n } else if (p0 >= 4080) {\n p0 = 255;\n } else {\n p0 >>= 4;\n }\n if (p1 < 16) {\n p1 = 0;\n } else if (p1 >= 4080) {\n p1 = 255;\n } else {\n p1 >>= 4;\n }\n if (p2 < 16) {\n p2 = 0;\n } else if (p2 >= 4080) {\n p2 = 255;\n } else {\n p2 >>= 4;\n }\n if (p3 < 16) {\n p3 = 0;\n } else if (p3 >= 4080) {\n p3 = 255;\n } else {\n p3 >>= 4;\n }\n if (p4 < 16) {\n p4 = 0;\n } else if (p4 >= 4080) {\n p4 = 255;\n } else {\n p4 >>= 4;\n }\n if (p5 < 16) {\n p5 = 0;\n } else if (p5 >= 4080) {\n p5 = 255;\n } else {\n p5 >>= 4;\n }\n if (p6 < 16) {\n p6 = 0;\n } else if (p6 >= 4080) {\n p6 = 255;\n } else {\n p6 >>= 4;\n }\n if (p7 < 16) {\n p7 = 0;\n } else if (p7 >= 4080) {\n p7 = 255;\n } else {\n p7 >>= 4;\n }\n\n // store block data\n blockData[blockBufferOffset + col] = p0;\n blockData[blockBufferOffset + col + 8] = p1;\n blockData[blockBufferOffset + col + 16] = p2;\n blockData[blockBufferOffset + col + 24] = p3;\n blockData[blockBufferOffset + col + 32] = p4;\n blockData[blockBufferOffset + col + 40] = p5;\n blockData[blockBufferOffset + col + 48] = p6;\n blockData[blockBufferOffset + col + 56] = p7;\n }\n}\n\nfunction buildComponentData(frame, component) {\n const blocksPerLine = component.blocksPerLine;\n const blocksPerColumn = component.blocksPerColumn;\n const computationBuffer = new Int16Array(64);\n\n for (let blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n for (let blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n const offset = getBlockBufferOffset(component, blockRow, blockCol);\n quantizeAndInverse(component, offset, computationBuffer);\n }\n }\n return component.blockData;\n}\n\nfunction findNextFileMarker(data, currentPos, startPos = currentPos) {\n const maxPos = data.length - 1;\n let newPos = startPos < currentPos ? startPos : currentPos;\n\n if (currentPos >= maxPos) {\n return null; // Don't attempt to read non-existent data and just return.\n }\n const currentMarker = readUint16(data, currentPos);\n if (currentMarker >= 0xffc0 && currentMarker <= 0xfffe) {\n return {\n invalid: null,\n marker: currentMarker,\n offset: currentPos,\n };\n }\n let newMarker = readUint16(data, newPos);\n while (!(newMarker >= 0xffc0 && newMarker <= 0xfffe)) {\n if (++newPos >= maxPos) {\n return null; // Don't attempt to read non-existent data and just return.\n }\n newMarker = readUint16(data, newPos);\n }\n return {\n invalid: currentMarker.toString(16),\n marker: newMarker,\n offset: newPos,\n };\n}\n\nclass JpegImage {\n constructor({ decodeTransform = null, colorTransform = -1 } = {}) {\n this._decodeTransform = decodeTransform;\n this._colorTransform = colorTransform;\n }\n\n parse(data, { dnlScanLines = null } = {}) {\n function readDataBlock() {\n const length = readUint16(data, offset);\n offset += 2;\n let endOffset = offset + length - 2;\n\n const fileMarker = findNextFileMarker(data, endOffset, offset);\n if (fileMarker && fileMarker.invalid) {\n warn(\n \"readDataBlock - incorrect length, current marker is: \" +\n fileMarker.invalid\n );\n endOffset = fileMarker.offset;\n }\n\n const array = data.subarray(offset, endOffset);\n offset += array.length;\n return array;\n }\n\n function prepareComponents(frame) {\n const mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);\n const mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);\n for (let i = 0, ii = frame.components.length; i < ii; i++) {\n const component = frame.components[i];\n const blocksPerLine = Math.ceil(\n (Math.ceil(frame.samplesPerLine / 8) * component.h) / frame.maxH\n );\n const blocksPerColumn = Math.ceil(\n (Math.ceil(frame.scanLines / 8) * component.v) / frame.maxV\n );\n const blocksPerLineForMcu = mcusPerLine * component.h;\n const blocksPerColumnForMcu = mcusPerColumn * component.v;\n\n const blocksBufferSize =\n 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1);\n component.blockData = new Int16Array(blocksBufferSize);\n component.blocksPerLine = blocksPerLine;\n component.blocksPerColumn = blocksPerColumn;\n }\n frame.mcusPerLine = mcusPerLine;\n frame.mcusPerColumn = mcusPerColumn;\n }\n\n let offset = 0;\n let jfif = null;\n let adobe = null;\n let frame, resetInterval;\n let numSOSMarkers = 0;\n const quantizationTables = [];\n const huffmanTablesAC = [],\n huffmanTablesDC = [];\n\n let fileMarker = readUint16(data, offset);\n offset += 2;\n if (fileMarker !== /* SOI (Start of Image) = */ 0xffd8) {\n throw new JpegError(\"SOI not found\");\n }\n fileMarker = readUint16(data, offset);\n offset += 2;\n\n markerLoop: while (fileMarker !== /* EOI (End of Image) = */ 0xffd9) {\n let i, j, l;\n switch (fileMarker) {\n case 0xffe0: // APP0 (Application Specific)\n case 0xffe1: // APP1\n case 0xffe2: // APP2\n case 0xffe3: // APP3\n case 0xffe4: // APP4\n case 0xffe5: // APP5\n case 0xffe6: // APP6\n case 0xffe7: // APP7\n case 0xffe8: // APP8\n case 0xffe9: // APP9\n case 0xffea: // APP10\n case 0xffeb: // APP11\n case 0xffec: // APP12\n case 0xffed: // APP13\n case 0xffee: // APP14\n case 0xffef: // APP15\n case 0xfffe: // COM (Comment)\n const appData = readDataBlock();\n\n if (fileMarker === 0xffe0) {\n // 'JFIF\\x00'\n if (\n appData[0] === 0x4a &&\n appData[1] === 0x46 &&\n appData[2] === 0x49 &&\n appData[3] === 0x46 &&\n appData[4] === 0\n ) {\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: (appData[8] << 8) | appData[9],\n yDensity: (appData[10] << 8) | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(\n 14,\n 14 + 3 * appData[12] * appData[13]\n ),\n };\n }\n }\n // TODO APP1 - Exif\n if (fileMarker === 0xffee) {\n // 'Adobe'\n if (\n appData[0] === 0x41 &&\n appData[1] === 0x64 &&\n appData[2] === 0x6f &&\n appData[3] === 0x62 &&\n appData[4] === 0x65\n ) {\n adobe = {\n version: (appData[5] << 8) | appData[6],\n flags0: (appData[7] << 8) | appData[8],\n flags1: (appData[9] << 8) | appData[10],\n transformCode: appData[11],\n };\n }\n }\n break;\n\n case 0xffdb: // DQT (Define Quantization Tables)\n const quantizationTablesLength = readUint16(data, offset);\n offset += 2;\n const quantizationTablesEnd = quantizationTablesLength + offset - 2;\n let z;\n while (offset < quantizationTablesEnd) {\n const quantizationTableSpec = data[offset++];\n const tableData = new Uint16Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n // 8 bit values\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n // 16 bit values\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = readUint16(data, offset);\n offset += 2;\n }\n } else {\n throw new JpegError(\"DQT - invalid table spec\");\n }\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n\n case 0xffc0: // SOF0 (Start of Frame, Baseline DCT)\n case 0xffc1: // SOF1 (Start of Frame, Extended DCT)\n case 0xffc2: // SOF2 (Start of Frame, Progressive DCT)\n if (frame) {\n throw new JpegError(\"Only single frame JPEGs supported\");\n }\n offset += 2; // Skip marker length.\n\n frame = {};\n frame.extended = fileMarker === 0xffc1;\n frame.progressive = fileMarker === 0xffc2;\n frame.precision = data[offset++];\n const sofScanLines = readUint16(data, offset);\n offset += 2;\n frame.scanLines = dnlScanLines || sofScanLines;\n frame.samplesPerLine = readUint16(data, offset);\n offset += 2;\n frame.components = [];\n frame.componentIds = {};\n const componentsCount = data[offset++];\n let maxH = 0,\n maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n const componentId = data[offset];\n const h = data[offset + 1] >> 4;\n const v = data[offset + 1] & 15;\n if (maxH < h) {\n maxH = h;\n }\n if (maxV < v) {\n maxV = v;\n }\n const qId = data[offset + 2];\n l = frame.components.push({\n h,\n v,\n quantizationId: qId,\n quantizationTable: null, // See comment below.\n });\n frame.componentIds[componentId] = l - 1;\n offset += 3;\n }\n frame.maxH = maxH;\n frame.maxV = maxV;\n prepareComponents(frame);\n break;\n\n case 0xffc4: // DHT (Define Huffman Tables)\n const huffmanLength = readUint16(data, offset);\n offset += 2;\n for (i = 2; i < huffmanLength; ) {\n const huffmanTableSpec = data[offset++];\n const codeLengths = new Uint8Array(16);\n let codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n const huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++) {\n huffmanValues[j] = data[offset];\n }\n i += 17 + codeLengthSum;\n\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[\n huffmanTableSpec & 15\n ] = buildHuffmanTable(codeLengths, huffmanValues);\n }\n break;\n\n case 0xffdd: // DRI (Define Restart Interval)\n offset += 2; // Skip marker length.\n\n resetInterval = readUint16(data, offset);\n offset += 2;\n break;\n\n case 0xffda: // SOS (Start of Scan)\n // A DNL marker (0xFFDC), if it exists, is only allowed at the end\n // of the first scan segment and may only occur once in an image.\n // Furthermore, to prevent an infinite loop, do *not* attempt to\n // parse DNL markers during re-parsing of the JPEG scan data.\n const parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines;\n\n offset += 2; // Skip marker length.\n\n const selectorsCount = data[offset++],\n components = [];\n for (i = 0; i < selectorsCount; i++) {\n const index = data[offset++];\n const componentIndex = frame.componentIds[index];\n const component = frame.components[componentIndex];\n component.index = index;\n const tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n const spectralStart = data[offset++],\n spectralEnd = data[offset++],\n successiveApproximation = data[offset++];\n try {\n const processed = decodeScan(\n data,\n offset,\n frame,\n components,\n resetInterval,\n spectralStart,\n spectralEnd,\n successiveApproximation >> 4,\n successiveApproximation & 15,\n parseDNLMarker\n );\n offset += processed;\n } catch (ex) {\n if (ex instanceof DNLMarkerError) {\n warn(`${ex.message} -- attempting to re-parse the JPEG image.`);\n return this.parse(data, { dnlScanLines: ex.scanLines });\n } else if (ex instanceof EOIMarkerError) {\n warn(`${ex.message} -- ignoring the rest of the image data.`);\n break markerLoop;\n }\n throw ex;\n }\n break;\n\n case 0xffdc: // DNL (Define Number of Lines)\n // Ignore the marker, since it's being handled in `decodeScan`.\n offset += 4;\n break;\n\n case 0xffff: // Fill bytes\n if (data[offset] !== 0xff) {\n // Avoid skipping a valid marker.\n offset--;\n }\n break;\n\n default:\n // Could be incorrect encoding -- the last 0xFF byte of the previous\n // block could have been eaten by the encoder, hence we fallback to\n // `startPos = offset - 3` when looking for the next valid marker.\n const nextFileMarker = findNextFileMarker(\n data,\n /* currentPos = */ offset - 2,\n /* startPos = */ offset - 3\n );\n if (nextFileMarker && nextFileMarker.invalid) {\n warn(\n \"JpegImage.parse - unexpected data, current marker is: \" +\n nextFileMarker.invalid\n );\n offset = nextFileMarker.offset;\n break;\n }\n if (!nextFileMarker || offset >= data.length - 1) {\n warn(\n \"JpegImage.parse - reached the end of the image data \" +\n \"without finding an EOI marker (0xFFD9).\"\n );\n break markerLoop;\n }\n throw new JpegError(\n \"JpegImage.parse - unknown marker: \" + fileMarker.toString(16)\n );\n }\n fileMarker = readUint16(data, offset);\n offset += 2;\n }\n\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (let i = 0, ii = frame.components.length; i < ii; i++) {\n const component = frame.components[i];\n\n // Prevent errors when DQT markers are placed after SOF{n} markers,\n // by assigning the `quantizationTable` entry after the entire image\n // has been parsed (fixes issue7406.pdf).\n const quantizationTable = quantizationTables[component.quantizationId];\n if (quantizationTable) {\n component.quantizationTable = quantizationTable;\n }\n\n this.components.push({\n index: component.index,\n output: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV,\n blocksPerLine: component.blocksPerLine,\n blocksPerColumn: component.blocksPerColumn,\n });\n }\n this.numComponents = this.components.length;\n return undefined;\n }\n\n _getLinearizedBlockData(width, height, isSourcePDF = false) {\n const scaleX = this.width / width,\n scaleY = this.height / height;\n\n let component, componentScaleX, componentScaleY, blocksPerScanline;\n let x, y, i, j, k;\n let index;\n let offset = 0;\n let output;\n const numComponents = this.components.length;\n const dataLength = width * height * numComponents;\n const data = new Uint8ClampedArray(dataLength);\n const xScaleBlockOffset = new Uint32Array(width);\n const mask3LSB = 0xfffffff8; // used to clear the 3 LSBs\n let lastComponentScaleX;\n\n for (i = 0; i < numComponents; i++) {\n component = this.components[i];\n componentScaleX = component.scaleX * scaleX;\n componentScaleY = component.scaleY * scaleY;\n offset = i;\n output = component.output;\n blocksPerScanline = (component.blocksPerLine + 1) << 3;\n // Precalculate the `xScaleBlockOffset`. Since it doesn't depend on the\n // component data, that's only necessary when `componentScaleX` changes.\n if (componentScaleX !== lastComponentScaleX) {\n for (x = 0; x < width; x++) {\n j = 0 | (x * componentScaleX);\n xScaleBlockOffset[x] = ((j & mask3LSB) << 3) | (j & 7);\n }\n lastComponentScaleX = componentScaleX;\n }\n // linearize the blocks of the component\n for (y = 0; y < height; y++) {\n j = 0 | (y * componentScaleY);\n index = (blocksPerScanline * (j & mask3LSB)) | ((j & 7) << 3);\n for (x = 0; x < width; x++) {\n data[offset] = output[index + xScaleBlockOffset[x]];\n offset += numComponents;\n }\n }\n }\n\n // decodeTransform contains pairs of multiplier (-256..256) and additive\n let transform = this._decodeTransform;\n\n // In PDF files, JPEG images with CMYK colour spaces are usually inverted\n // (this can be observed by extracting the raw image data).\n // Since the conversion algorithms (see below) were written primarily for\n // the PDF use-cases, attempting to use `JpegImage` to parse standalone\n // JPEG (CMYK) images may thus result in inverted images (see issue 9513).\n //\n // Unfortunately it's not (always) possible to tell, from the image data\n // alone, if it needs to be inverted. Thus in an attempt to provide better\n // out-of-box behaviour when `JpegImage` is used standalone, default to\n // inverting JPEG (CMYK) images if and only if the image data does *not*\n // come from a PDF file and no `decodeTransform` was passed by the user.\n if (!isSourcePDF && numComponents === 4 && !transform) {\n transform = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255]);\n }\n\n if (transform) {\n for (i = 0; i < dataLength; ) {\n for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) {\n data[i] = ((data[i] * transform[k]) >> 8) + transform[k + 1];\n }\n }\n }\n return data;\n }\n\n get _isColorConversionNeeded() {\n if (this.adobe) {\n // The adobe transform marker overrides any previous setting.\n return !!this.adobe.transformCode;\n }\n if (this.numComponents === 3) {\n if (this._colorTransform === 0) {\n // If the Adobe transform marker is not present and the image\n // dictionary has a 'ColorTransform' entry, explicitly set to `0`,\n // then the colours should *not* be transformed.\n return false;\n } else if (\n this.components[0].index === /* \"R\" = */ 0x52 &&\n this.components[1].index === /* \"G\" = */ 0x47 &&\n this.components[2].index === /* \"B\" = */ 0x42\n ) {\n // If the three components are indexed as RGB in ASCII\n // then the colours should *not* be transformed.\n return false;\n }\n return true;\n }\n // `this.numComponents !== 3`\n if (this._colorTransform === 1) {\n // If the Adobe transform marker is not present and the image\n // dictionary has a 'ColorTransform' entry, explicitly set to `1`,\n // then the colours should be transformed.\n return true;\n }\n return false;\n }\n\n _convertYccToRgb(data) {\n let Y, Cb, Cr;\n for (let i = 0, length = data.length; i < length; i += 3) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n data[i] = Y - 179.456 + 1.402 * Cr;\n data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n data[i + 2] = Y - 226.816 + 1.772 * Cb;\n }\n return data;\n }\n\n _convertYcckToRgb(data) {\n let Y, Cb, Cr, k;\n let offset = 0;\n for (let i = 0, length = data.length; i < length; i += 4) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n k = data[i + 3];\n\n data[offset++] =\n -122.67195406894 +\n Cb *\n (-6.60635669420364e-5 * Cb +\n 0.000437130475926232 * Cr -\n 5.4080610064599e-5 * Y +\n 0.00048449797120281 * k -\n 0.154362151871126) +\n Cr *\n (-0.000957964378445773 * Cr +\n 0.000817076911346625 * Y -\n 0.00477271405408747 * k +\n 1.53380253221734) +\n Y *\n (0.000961250184130688 * Y -\n 0.00266257332283933 * k +\n 0.48357088451265) +\n k * (-0.000336197177618394 * k + 0.484791561490776);\n\n data[offset++] =\n 107.268039397724 +\n Cb *\n (2.19927104525741e-5 * Cb -\n 0.000640992018297945 * Cr +\n 0.000659397001245577 * Y +\n 0.000426105652938837 * k -\n 0.176491792462875) +\n Cr *\n (-0.000778269941513683 * Cr +\n 0.00130872261408275 * Y +\n 0.000770482631801132 * k -\n 0.151051492775562) +\n Y *\n (0.00126935368114843 * Y -\n 0.00265090189010898 * k +\n 0.25802910206845) +\n k * (-0.000318913117588328 * k - 0.213742400323665);\n\n data[offset++] =\n -20.810012546947 +\n Cb *\n (-0.000570115196973677 * Cb -\n 2.63409051004589e-5 * Cr +\n 0.0020741088115012 * Y -\n 0.00288260236853442 * k +\n 0.814272968359295) +\n Cr *\n (-1.53496057440975e-5 * Cr -\n 0.000132689043961446 * Y +\n 0.000560833691242812 * k -\n 0.195152027534049) +\n Y *\n (0.00174418132927582 * Y -\n 0.00255243321439347 * k +\n 0.116935020465145) +\n k * (-0.000343531996510555 * k + 0.24165260232407);\n }\n // Ensure that only the converted RGB data is returned.\n return data.subarray(0, offset);\n }\n\n _convertYcckToCmyk(data) {\n let Y, Cb, Cr;\n for (let i = 0, length = data.length; i < length; i += 4) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n data[i] = 434.456 - Y - 1.402 * Cr;\n data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr;\n data[i + 2] = 481.816 - Y - 1.772 * Cb;\n // K in data[i + 3] is unchanged\n }\n return data;\n }\n\n _convertCmykToRgb(data) {\n let c, m, y, k;\n let offset = 0;\n for (let i = 0, length = data.length; i < length; i += 4) {\n c = data[i];\n m = data[i + 1];\n y = data[i + 2];\n k = data[i + 3];\n\n data[offset++] =\n 255 +\n c *\n (-0.00006747147073602441 * c +\n 0.0008379262121013727 * m +\n 0.0002894718188643294 * y +\n 0.003264231057537806 * k -\n 1.1185611867203937) +\n m *\n (0.000026374107616089405 * m -\n 0.00008626949158638572 * y -\n 0.0002748769067499491 * k -\n 0.02155688794978967) +\n y *\n (-0.00003878099212869363 * y -\n 0.0003267808279485286 * k +\n 0.0686742238595345) -\n k * (0.0003361971776183937 * k + 0.7430659151342254);\n\n data[offset++] =\n 255 +\n c *\n (0.00013596372813588848 * c +\n 0.000924537132573585 * m +\n 0.00010567359618683593 * y +\n 0.0004791864687436512 * k -\n 0.3109689587515875) +\n m *\n (-0.00023545346108370344 * m +\n 0.0002702845253534714 * y +\n 0.0020200308977307156 * k -\n 0.7488052167015494) +\n y *\n (0.00006834815998235662 * y +\n 0.00015168452363460973 * k -\n 0.09751927774728933) -\n k * (0.0003189131175883281 * k + 0.7364883807733168);\n\n data[offset++] =\n 255 +\n c *\n (0.000013598650411385307 * c +\n 0.00012423956175490851 * m +\n 0.0004751985097583589 * y -\n 0.0000036729317476630422 * k -\n 0.05562186980264034) +\n m *\n (0.00016141380598724676 * m +\n 0.0009692239130725186 * y +\n 0.0007782692450036253 * k -\n 0.44015232367526463) +\n y *\n (5.068882914068769e-7 * y +\n 0.0017778369011375071 * k -\n 0.7591454649749609) -\n k * (0.0003435319965105553 * k + 0.7063770186160144);\n }\n // Ensure that only the converted RGB data is returned.\n return data.subarray(0, offset);\n }\n\n getData({ width, height, forceRGB = false, isSourcePDF = false }) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n isSourcePDF === true,\n 'JpegImage.getData: Unexpected \"isSourcePDF\" value for PDF files.'\n );\n }\n if (this.numComponents > 4) {\n throw new JpegError(\"Unsupported color mode\");\n }\n // Type of data: Uint8ClampedArray(width * height * numComponents)\n const data = this._getLinearizedBlockData(width, height, isSourcePDF);\n\n if (this.numComponents === 1 && forceRGB) {\n const dataLength = data.length;\n const rgbData = new Uint8ClampedArray(dataLength * 3);\n let offset = 0;\n for (let i = 0; i < dataLength; i++) {\n const grayColor = data[i];\n rgbData[offset++] = grayColor;\n rgbData[offset++] = grayColor;\n rgbData[offset++] = grayColor;\n }\n return rgbData;\n } else if (this.numComponents === 3 && this._isColorConversionNeeded) {\n return this._convertYccToRgb(data);\n } else if (this.numComponents === 4) {\n if (this._isColorConversionNeeded) {\n if (forceRGB) {\n return this._convertYcckToRgb(data);\n }\n return this._convertYcckToCmyk(data);\n } else if (forceRGB) {\n return this._convertCmykToRgb(data);\n }\n }\n return data;\n }\n}\n\nexport { JpegImage };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { JpxImage } from \"./jpx.js\";\nimport { shadow } from \"../shared/util.js\";\n\n/**\n * For JPEG 2000's we use a library to decode these images and\n * the stream behaves like all the other DecodeStreams.\n */\nclass JpxStream extends DecodeStream {\n constructor(stream, maybeLength, params) {\n super(maybeLength);\n\n this.stream = stream;\n this.dict = stream.dict;\n this.maybeLength = maybeLength;\n this.params = params;\n }\n\n get bytes() {\n // If `this.maybeLength` is null, we'll get the entire stream.\n return shadow(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n }\n\n ensureBuffer(requested) {\n // No-op, since `this.readBlock` will always parse the entire image and\n // directly insert all of its data into `this.buffer`.\n }\n\n readBlock() {\n if (this.eof) {\n return;\n }\n const jpxImage = new JpxImage();\n jpxImage.parse(this.bytes);\n\n const width = jpxImage.width;\n const height = jpxImage.height;\n const componentsCount = jpxImage.componentsCount;\n const tileCount = jpxImage.tiles.length;\n if (tileCount === 1) {\n this.buffer = jpxImage.tiles[0].items;\n } else {\n const data = new Uint8ClampedArray(width * height * componentsCount);\n\n for (let k = 0; k < tileCount; k++) {\n const tileComponents = jpxImage.tiles[k];\n const tileWidth = tileComponents.width;\n const tileHeight = tileComponents.height;\n const tileLeft = tileComponents.left;\n const tileTop = tileComponents.top;\n\n const src = tileComponents.items;\n let srcPosition = 0;\n let dataPosition = (width * tileTop + tileLeft) * componentsCount;\n const imgRowSize = width * componentsCount;\n const tileRowSize = tileWidth * componentsCount;\n\n for (let j = 0; j < tileHeight; j++) {\n const rowBytes = src.subarray(srcPosition, srcPosition + tileRowSize);\n data.set(rowBytes, dataPosition);\n srcPosition += tileRowSize;\n dataPosition += imgRowSize;\n }\n }\n this.buffer = data;\n }\n this.bufferLength = this.buffer.length;\n this.eof = true;\n }\n}\n\nexport { JpxStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseException, info, unreachable, warn } from \"../shared/util.js\";\nimport { log2, readUint16, readUint32 } from \"./core_utils.js\";\nimport { ArithmeticDecoder } from \"./arithmetic_decoder.js\";\n\nclass JpxError extends BaseException {\n constructor(msg) {\n super(`JPX error: ${msg}`, \"JpxError\");\n }\n}\n\n// Table E.1\nconst SubbandsGainLog2 = {\n LL: 0,\n LH: 1,\n HL: 1,\n HH: 2,\n};\n\nclass JpxImage {\n constructor() {\n this.failOnCorruptedImage = false;\n }\n\n parse(data) {\n const head = readUint16(data, 0);\n // No box header, immediate start of codestream (SOC)\n if (head === 0xff4f) {\n this.parseCodestream(data, 0, data.length);\n return;\n }\n\n const length = data.length;\n let position = 0;\n while (position < length) {\n let headerSize = 8;\n let lbox = readUint32(data, position);\n const tbox = readUint32(data, position + 4);\n position += headerSize;\n if (lbox === 1) {\n // XLBox: read UInt64 according to spec.\n // JavaScript's int precision of 53 bit should be sufficient here.\n lbox =\n readUint32(data, position) * 4294967296 +\n readUint32(data, position + 4);\n position += 8;\n headerSize += 8;\n }\n if (lbox === 0) {\n lbox = length - position + headerSize;\n }\n if (lbox < headerSize) {\n throw new JpxError(\"Invalid box field size\");\n }\n const dataLength = lbox - headerSize;\n let jumpDataLength = true;\n switch (tbox) {\n case 0x6a703268: // 'jp2h'\n jumpDataLength = false; // parsing child boxes\n break;\n case 0x636f6c72: // 'colr'\n // Colorspaces are not used, the CS from the PDF is used.\n const method = data[position];\n if (method === 1) {\n // enumerated colorspace\n const colorspace = readUint32(data, position + 3);\n switch (colorspace) {\n case 16: // this indicates a sRGB colorspace\n case 17: // this indicates a grayscale colorspace\n case 18: // this indicates a YUV colorspace\n break;\n default:\n warn(\"Unknown colorspace \" + colorspace);\n break;\n }\n } else if (method === 2) {\n info(\"ICC profile not supported\");\n }\n break;\n case 0x6a703263: // 'jp2c'\n this.parseCodestream(data, position, position + dataLength);\n break;\n case 0x6a502020: // 'jP\\024\\024'\n if (readUint32(data, position) !== 0x0d0a870a) {\n warn(\"Invalid JP2 signature\");\n }\n break;\n // The following header types are valid but currently not used:\n case 0x6a501a1a: // 'jP\\032\\032'\n case 0x66747970: // 'ftyp'\n case 0x72726571: // 'rreq'\n case 0x72657320: // 'res '\n case 0x69686472: // 'ihdr'\n break;\n default:\n const headerType = String.fromCharCode(\n (tbox >> 24) & 0xff,\n (tbox >> 16) & 0xff,\n (tbox >> 8) & 0xff,\n tbox & 0xff\n );\n warn(`Unsupported header type ${tbox} (${headerType}).`);\n break;\n }\n if (jumpDataLength) {\n position += dataLength;\n }\n }\n }\n\n parseImageProperties(stream) {\n let newByte = stream.getByte();\n while (newByte >= 0) {\n const oldByte = newByte;\n newByte = stream.getByte();\n const code = (oldByte << 8) | newByte;\n // Image and tile size (SIZ)\n if (code === 0xff51) {\n stream.skip(4);\n const Xsiz = stream.getInt32() >>> 0; // Byte 4\n const Ysiz = stream.getInt32() >>> 0; // Byte 8\n const XOsiz = stream.getInt32() >>> 0; // Byte 12\n const YOsiz = stream.getInt32() >>> 0; // Byte 16\n stream.skip(16);\n const Csiz = stream.getUint16(); // Byte 36\n this.width = Xsiz - XOsiz;\n this.height = Ysiz - YOsiz;\n this.componentsCount = Csiz;\n // Results are always returned as `Uint8ClampedArray`s.\n this.bitsPerComponent = 8;\n return;\n }\n }\n throw new JpxError(\"No size marker found in JPX stream\");\n }\n\n parseCodestream(data, start, end) {\n const context = {};\n let doNotRecover = false;\n try {\n let position = start;\n while (position + 1 < end) {\n const code = readUint16(data, position);\n position += 2;\n\n let length = 0,\n j,\n sqcd,\n spqcds,\n spqcdSize,\n scalarExpounded,\n tile;\n switch (code) {\n case 0xff4f: // Start of codestream (SOC)\n context.mainHeader = true;\n break;\n case 0xffd9: // End of codestream (EOC)\n break;\n case 0xff51: // Image and tile size (SIZ)\n length = readUint16(data, position);\n const siz = {};\n siz.Xsiz = readUint32(data, position + 4);\n siz.Ysiz = readUint32(data, position + 8);\n siz.XOsiz = readUint32(data, position + 12);\n siz.YOsiz = readUint32(data, position + 16);\n siz.XTsiz = readUint32(data, position + 20);\n siz.YTsiz = readUint32(data, position + 24);\n siz.XTOsiz = readUint32(data, position + 28);\n siz.YTOsiz = readUint32(data, position + 32);\n const componentsCount = readUint16(data, position + 36);\n siz.Csiz = componentsCount;\n const components = [];\n j = position + 38;\n for (let i = 0; i < componentsCount; i++) {\n const component = {\n precision: (data[j] & 0x7f) + 1,\n isSigned: !!(data[j] & 0x80),\n XRsiz: data[j + 1],\n YRsiz: data[j + 2],\n };\n j += 3;\n calculateComponentDimensions(component, siz);\n components.push(component);\n }\n context.SIZ = siz;\n context.components = components;\n calculateTileGrids(context, components);\n context.QCC = [];\n context.COC = [];\n break;\n case 0xff5c: // Quantization default (QCD)\n length = readUint16(data, position);\n const qcd = {};\n j = position + 2;\n sqcd = data[j++];\n switch (sqcd & 0x1f) {\n case 0:\n spqcdSize = 8;\n scalarExpounded = true;\n break;\n case 1:\n spqcdSize = 16;\n scalarExpounded = false;\n break;\n case 2:\n spqcdSize = 16;\n scalarExpounded = true;\n break;\n default:\n throw new Error(\"Invalid SQcd value \" + sqcd);\n }\n qcd.noQuantization = spqcdSize === 8;\n qcd.scalarExpounded = scalarExpounded;\n qcd.guardBits = sqcd >> 5;\n spqcds = [];\n while (j < length + position) {\n const spqcd = {};\n if (spqcdSize === 8) {\n spqcd.epsilon = data[j++] >> 3;\n spqcd.mu = 0;\n } else {\n spqcd.epsilon = data[j] >> 3;\n spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1];\n j += 2;\n }\n spqcds.push(spqcd);\n }\n qcd.SPqcds = spqcds;\n if (context.mainHeader) {\n context.QCD = qcd;\n } else {\n context.currentTile.QCD = qcd;\n context.currentTile.QCC = [];\n }\n break;\n case 0xff5d: // Quantization component (QCC)\n length = readUint16(data, position);\n const qcc = {};\n j = position + 2;\n let cqcc;\n if (context.SIZ.Csiz < 257) {\n cqcc = data[j++];\n } else {\n cqcc = readUint16(data, j);\n j += 2;\n }\n sqcd = data[j++];\n switch (sqcd & 0x1f) {\n case 0:\n spqcdSize = 8;\n scalarExpounded = true;\n break;\n case 1:\n spqcdSize = 16;\n scalarExpounded = false;\n break;\n case 2:\n spqcdSize = 16;\n scalarExpounded = true;\n break;\n default:\n throw new Error(\"Invalid SQcd value \" + sqcd);\n }\n qcc.noQuantization = spqcdSize === 8;\n qcc.scalarExpounded = scalarExpounded;\n qcc.guardBits = sqcd >> 5;\n spqcds = [];\n while (j < length + position) {\n const spqcd = {};\n if (spqcdSize === 8) {\n spqcd.epsilon = data[j++] >> 3;\n spqcd.mu = 0;\n } else {\n spqcd.epsilon = data[j] >> 3;\n spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1];\n j += 2;\n }\n spqcds.push(spqcd);\n }\n qcc.SPqcds = spqcds;\n if (context.mainHeader) {\n context.QCC[cqcc] = qcc;\n } else {\n context.currentTile.QCC[cqcc] = qcc;\n }\n break;\n case 0xff52: // Coding style default (COD)\n length = readUint16(data, position);\n const cod = {};\n j = position + 2;\n const scod = data[j++];\n cod.entropyCoderWithCustomPrecincts = !!(scod & 1);\n cod.sopMarkerUsed = !!(scod & 2);\n cod.ephMarkerUsed = !!(scod & 4);\n cod.progressionOrder = data[j++];\n cod.layersCount = readUint16(data, j);\n j += 2;\n cod.multipleComponentTransform = data[j++];\n\n cod.decompositionLevelsCount = data[j++];\n cod.xcb = (data[j++] & 0xf) + 2;\n cod.ycb = (data[j++] & 0xf) + 2;\n const blockStyle = data[j++];\n cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1);\n cod.resetContextProbabilities = !!(blockStyle & 2);\n cod.terminationOnEachCodingPass = !!(blockStyle & 4);\n cod.verticallyStripe = !!(blockStyle & 8);\n cod.predictableTermination = !!(blockStyle & 16);\n cod.segmentationSymbolUsed = !!(blockStyle & 32);\n cod.reversibleTransformation = data[j++];\n if (cod.entropyCoderWithCustomPrecincts) {\n const precinctsSizes = [];\n while (j < length + position) {\n const precinctsSize = data[j++];\n precinctsSizes.push({\n PPx: precinctsSize & 0xf,\n PPy: precinctsSize >> 4,\n });\n }\n cod.precinctsSizes = precinctsSizes;\n }\n const unsupported = [];\n if (cod.selectiveArithmeticCodingBypass) {\n unsupported.push(\"selectiveArithmeticCodingBypass\");\n }\n if (cod.terminationOnEachCodingPass) {\n unsupported.push(\"terminationOnEachCodingPass\");\n }\n if (cod.verticallyStripe) {\n unsupported.push(\"verticallyStripe\");\n }\n if (cod.predictableTermination) {\n unsupported.push(\"predictableTermination\");\n }\n if (unsupported.length > 0) {\n doNotRecover = true;\n warn(`JPX: Unsupported COD options (${unsupported.join(\", \")}).`);\n }\n if (context.mainHeader) {\n context.COD = cod;\n } else {\n context.currentTile.COD = cod;\n context.currentTile.COC = [];\n }\n break;\n case 0xff90: // Start of tile-part (SOT)\n length = readUint16(data, position);\n tile = {};\n tile.index = readUint16(data, position + 2);\n tile.length = readUint32(data, position + 4);\n tile.dataEnd = tile.length + position - 2;\n tile.partIndex = data[position + 8];\n tile.partsCount = data[position + 9];\n\n context.mainHeader = false;\n if (tile.partIndex === 0) {\n // reset component specific settings\n tile.COD = context.COD;\n tile.COC = context.COC.slice(0); // clone of the global COC\n tile.QCD = context.QCD;\n tile.QCC = context.QCC.slice(0); // clone of the global COC\n }\n context.currentTile = tile;\n break;\n case 0xff93: // Start of data (SOD)\n tile = context.currentTile;\n if (tile.partIndex === 0) {\n initializeTile(context, tile.index);\n buildPackets(context);\n }\n\n // moving to the end of the data\n length = tile.dataEnd - position;\n parseTilePackets(context, data, position, length);\n break;\n case 0xff53: // Coding style component (COC)\n warn(\"JPX: Codestream code 0xFF53 (COC) is not implemented.\");\n /* falls through */\n case 0xff55: // Tile-part lengths, main header (TLM)\n case 0xff57: // Packet length, main header (PLM)\n case 0xff58: // Packet length, tile-part header (PLT)\n case 0xff64: // Comment (COM)\n length = readUint16(data, position);\n // skipping content\n break;\n default:\n throw new Error(\"Unknown codestream code: \" + code.toString(16));\n }\n position += length;\n }\n } catch (e) {\n if (doNotRecover || this.failOnCorruptedImage) {\n throw new JpxError(e.message);\n } else {\n warn(`JPX: Trying to recover from: \"${e.message}\".`);\n }\n }\n this.tiles = transformComponents(context);\n this.width = context.SIZ.Xsiz - context.SIZ.XOsiz;\n this.height = context.SIZ.Ysiz - context.SIZ.YOsiz;\n this.componentsCount = context.SIZ.Csiz;\n }\n}\n\nfunction calculateComponentDimensions(component, siz) {\n // Section B.2 Component mapping\n component.x0 = Math.ceil(siz.XOsiz / component.XRsiz);\n component.x1 = Math.ceil(siz.Xsiz / component.XRsiz);\n component.y0 = Math.ceil(siz.YOsiz / component.YRsiz);\n component.y1 = Math.ceil(siz.Ysiz / component.YRsiz);\n component.width = component.x1 - component.x0;\n component.height = component.y1 - component.y0;\n}\nfunction calculateTileGrids(context, components) {\n const siz = context.SIZ;\n // Section B.3 Division into tile and tile-components\n const tiles = [];\n let tile;\n const numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz);\n const numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz);\n for (let q = 0; q < numYtiles; q++) {\n for (let p = 0; p < numXtiles; p++) {\n tile = {};\n tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz);\n tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz);\n tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz);\n tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz);\n tile.width = tile.tx1 - tile.tx0;\n tile.height = tile.ty1 - tile.ty0;\n tile.components = [];\n tiles.push(tile);\n }\n }\n context.tiles = tiles;\n\n const componentsCount = siz.Csiz;\n for (let i = 0, ii = componentsCount; i < ii; i++) {\n const component = components[i];\n for (let j = 0, jj = tiles.length; j < jj; j++) {\n const tileComponent = {};\n tile = tiles[j];\n tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz);\n tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz);\n tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz);\n tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz);\n tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0;\n tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0;\n tile.components[i] = tileComponent;\n }\n }\n}\nfunction getBlocksDimensions(context, component, r) {\n const codOrCoc = component.codingStyleParameters;\n const result = {};\n if (!codOrCoc.entropyCoderWithCustomPrecincts) {\n result.PPx = 15;\n result.PPy = 15;\n } else {\n result.PPx = codOrCoc.precinctsSizes[r].PPx;\n result.PPy = codOrCoc.precinctsSizes[r].PPy;\n }\n // calculate codeblock size as described in section B.7\n result.xcb_ =\n r > 0\n ? Math.min(codOrCoc.xcb, result.PPx - 1)\n : Math.min(codOrCoc.xcb, result.PPx);\n result.ycb_ =\n r > 0\n ? Math.min(codOrCoc.ycb, result.PPy - 1)\n : Math.min(codOrCoc.ycb, result.PPy);\n return result;\n}\nfunction buildPrecincts(context, resolution, dimensions) {\n // Section B.6 Division resolution to precincts\n const precinctWidth = 1 << dimensions.PPx;\n const precinctHeight = 1 << dimensions.PPy;\n // Jasper introduces codeblock groups for mapping each subband codeblocks\n // to precincts. Precinct partition divides a resolution according to width\n // and height parameters. The subband that belongs to the resolution level\n // has a different size than the level, unless it is the zero resolution.\n\n // From Jasper documentation: jpeg2000.pdf, section K: Tier-2 coding:\n // The precinct partitioning for a particular subband is derived from a\n // partitioning of its parent LL band (i.e., the LL band at the next higher\n // resolution level)... The LL band associated with each resolution level is\n // divided into precincts... Each of the resulting precinct regions is then\n // mapped into its child subbands (if any) at the next lower resolution\n // level. This is accomplished by using the coordinate transformation\n // (u, v) = (ceil(x/2), ceil(y/2)) where (x, y) and (u, v) are the\n // coordinates of a point in the LL band and child subband, respectively.\n const isZeroRes = resolution.resLevel === 0;\n const precinctWidthInSubband = 1 << (dimensions.PPx + (isZeroRes ? 0 : -1));\n const precinctHeightInSubband = 1 << (dimensions.PPy + (isZeroRes ? 0 : -1));\n const numprecinctswide =\n resolution.trx1 > resolution.trx0\n ? Math.ceil(resolution.trx1 / precinctWidth) -\n Math.floor(resolution.trx0 / precinctWidth)\n : 0;\n const numprecinctshigh =\n resolution.try1 > resolution.try0\n ? Math.ceil(resolution.try1 / precinctHeight) -\n Math.floor(resolution.try0 / precinctHeight)\n : 0;\n const numprecincts = numprecinctswide * numprecinctshigh;\n\n resolution.precinctParameters = {\n precinctWidth,\n precinctHeight,\n numprecinctswide,\n numprecinctshigh,\n numprecincts,\n precinctWidthInSubband,\n precinctHeightInSubband,\n };\n}\nfunction buildCodeblocks(context, subband, dimensions) {\n // Section B.7 Division sub-band into code-blocks\n const xcb_ = dimensions.xcb_;\n const ycb_ = dimensions.ycb_;\n const codeblockWidth = 1 << xcb_;\n const codeblockHeight = 1 << ycb_;\n const cbx0 = subband.tbx0 >> xcb_;\n const cby0 = subband.tby0 >> ycb_;\n const cbx1 = (subband.tbx1 + codeblockWidth - 1) >> xcb_;\n const cby1 = (subband.tby1 + codeblockHeight - 1) >> ycb_;\n const precinctParameters = subband.resolution.precinctParameters;\n const codeblocks = [];\n const precincts = [];\n let i, j, codeblock, precinctNumber;\n for (j = cby0; j < cby1; j++) {\n for (i = cbx0; i < cbx1; i++) {\n codeblock = {\n cbx: i,\n cby: j,\n tbx0: codeblockWidth * i,\n tby0: codeblockHeight * j,\n tbx1: codeblockWidth * (i + 1),\n tby1: codeblockHeight * (j + 1),\n };\n\n codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0);\n codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0);\n codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1);\n codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1);\n\n // Calculate precinct number for this codeblock, codeblock position\n // should be relative to its subband, use actual dimension and position\n // See comment about codeblock group width and height\n const pi = Math.floor(\n (codeblock.tbx0_ - subband.tbx0) /\n precinctParameters.precinctWidthInSubband\n );\n const pj = Math.floor(\n (codeblock.tby0_ - subband.tby0) /\n precinctParameters.precinctHeightInSubband\n );\n precinctNumber = pi + pj * precinctParameters.numprecinctswide;\n\n codeblock.precinctNumber = precinctNumber;\n codeblock.subbandType = subband.type;\n codeblock.Lblock = 3;\n\n if (\n codeblock.tbx1_ <= codeblock.tbx0_ ||\n codeblock.tby1_ <= codeblock.tby0_\n ) {\n continue;\n }\n codeblocks.push(codeblock);\n // building precinct for the sub-band\n let precinct = precincts[precinctNumber];\n if (precinct !== undefined) {\n if (i < precinct.cbxMin) {\n precinct.cbxMin = i;\n } else if (i > precinct.cbxMax) {\n precinct.cbxMax = i;\n }\n if (j < precinct.cbyMin) {\n precinct.cbxMin = j;\n } else if (j > precinct.cbyMax) {\n precinct.cbyMax = j;\n }\n } else {\n precincts[precinctNumber] = precinct = {\n cbxMin: i,\n cbyMin: j,\n cbxMax: i,\n cbyMax: j,\n };\n }\n codeblock.precinct = precinct;\n }\n }\n subband.codeblockParameters = {\n codeblockWidth: xcb_,\n codeblockHeight: ycb_,\n numcodeblockwide: cbx1 - cbx0 + 1,\n numcodeblockhigh: cby1 - cby0 + 1,\n };\n subband.codeblocks = codeblocks;\n subband.precincts = precincts;\n}\nfunction createPacket(resolution, precinctNumber, layerNumber) {\n const precinctCodeblocks = [];\n // Section B.10.8 Order of info in packet\n const subbands = resolution.subbands;\n // sub-bands already ordered in 'LL', 'HL', 'LH', and 'HH' sequence\n for (let i = 0, ii = subbands.length; i < ii; i++) {\n const subband = subbands[i];\n const codeblocks = subband.codeblocks;\n for (let j = 0, jj = codeblocks.length; j < jj; j++) {\n const codeblock = codeblocks[j];\n if (codeblock.precinctNumber !== precinctNumber) {\n continue;\n }\n precinctCodeblocks.push(codeblock);\n }\n }\n return {\n layerNumber,\n codeblocks: precinctCodeblocks,\n };\n}\nfunction LayerResolutionComponentPositionIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n let maxDecompositionLevelsCount = 0;\n for (let q = 0; q < componentsCount; q++) {\n maxDecompositionLevelsCount = Math.max(\n maxDecompositionLevelsCount,\n tile.components[q].codingStyleParameters.decompositionLevelsCount\n );\n }\n\n let l = 0,\n r = 0,\n i = 0,\n k = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.1 Layer-resolution-component-position\n for (; l < layersCount; l++) {\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; i < componentsCount; i++) {\n const component = tile.components[i];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n\n const resolution = component.resolutions[r];\n const numprecincts = resolution.precinctParameters.numprecincts;\n for (; k < numprecincts; ) {\n const packet = createPacket(resolution, k, l);\n k++;\n return packet;\n }\n k = 0;\n }\n i = 0;\n }\n r = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction ResolutionLayerComponentPositionIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n let maxDecompositionLevelsCount = 0;\n for (let q = 0; q < componentsCount; q++) {\n maxDecompositionLevelsCount = Math.max(\n maxDecompositionLevelsCount,\n tile.components[q].codingStyleParameters.decompositionLevelsCount\n );\n }\n\n let r = 0,\n l = 0,\n i = 0,\n k = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.2 Resolution-layer-component-position\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; l < layersCount; l++) {\n for (; i < componentsCount; i++) {\n const component = tile.components[i];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n\n const resolution = component.resolutions[r];\n const numprecincts = resolution.precinctParameters.numprecincts;\n for (; k < numprecincts; ) {\n const packet = createPacket(resolution, k, l);\n k++;\n return packet;\n }\n k = 0;\n }\n i = 0;\n }\n l = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction ResolutionPositionComponentLayerIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n let l, r, c, p;\n let maxDecompositionLevelsCount = 0;\n for (c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n maxDecompositionLevelsCount = Math.max(\n maxDecompositionLevelsCount,\n component.codingStyleParameters.decompositionLevelsCount\n );\n }\n const maxNumPrecinctsInLevel = new Int32Array(\n maxDecompositionLevelsCount + 1\n );\n for (r = 0; r <= maxDecompositionLevelsCount; ++r) {\n let maxNumPrecincts = 0;\n for (c = 0; c < componentsCount; ++c) {\n const resolutions = tile.components[c].resolutions;\n if (r < resolutions.length) {\n maxNumPrecincts = Math.max(\n maxNumPrecincts,\n resolutions[r].precinctParameters.numprecincts\n );\n }\n }\n maxNumPrecinctsInLevel[r] = maxNumPrecincts;\n }\n l = 0;\n r = 0;\n c = 0;\n p = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.3 Resolution-position-component-layer\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; p < maxNumPrecinctsInLevel[r]; p++) {\n for (; c < componentsCount; c++) {\n const component = tile.components[c];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n const resolution = component.resolutions[r];\n const numprecincts = resolution.precinctParameters.numprecincts;\n if (p >= numprecincts) {\n continue;\n }\n for (; l < layersCount; ) {\n const packet = createPacket(resolution, p, l);\n l++;\n return packet;\n }\n l = 0;\n }\n c = 0;\n }\n p = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction PositionComponentResolutionLayerIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n const precinctsSizes = getPrecinctSizesInImageScale(tile);\n const precinctsIterationSizes = precinctsSizes;\n let l = 0,\n r = 0,\n c = 0,\n px = 0,\n py = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.4 Position-component-resolution-layer\n for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n for (; px < precinctsIterationSizes.maxNumWide; px++) {\n for (; c < componentsCount; c++) {\n const component = tile.components[c];\n const decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n for (; r <= decompositionLevelsCount; r++) {\n const resolution = component.resolutions[r];\n const sizeInImageScale =\n precinctsSizes.components[c].resolutions[r];\n const k = getPrecinctIndexIfExist(\n px,\n py,\n sizeInImageScale,\n precinctsIterationSizes,\n resolution\n );\n if (k === null) {\n continue;\n }\n for (; l < layersCount; ) {\n const packet = createPacket(resolution, k, l);\n l++;\n return packet;\n }\n l = 0;\n }\n r = 0;\n }\n c = 0;\n }\n px = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction ComponentPositionResolutionLayerIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n const precinctsSizes = getPrecinctSizesInImageScale(tile);\n let l = 0,\n r = 0,\n c = 0,\n px = 0,\n py = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.5 Component-position-resolution-layer\n for (; c < componentsCount; ++c) {\n const component = tile.components[c];\n const precinctsIterationSizes = precinctsSizes.components[c];\n const decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n for (; px < precinctsIterationSizes.maxNumWide; px++) {\n for (; r <= decompositionLevelsCount; r++) {\n const resolution = component.resolutions[r];\n const sizeInImageScale = precinctsIterationSizes.resolutions[r];\n const k = getPrecinctIndexIfExist(\n px,\n py,\n sizeInImageScale,\n precinctsIterationSizes,\n resolution\n );\n if (k === null) {\n continue;\n }\n for (; l < layersCount; ) {\n const packet = createPacket(resolution, k, l);\n l++;\n return packet;\n }\n l = 0;\n }\n r = 0;\n }\n px = 0;\n }\n py = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction getPrecinctIndexIfExist(\n pxIndex,\n pyIndex,\n sizeInImageScale,\n precinctIterationSizes,\n resolution\n) {\n const posX = pxIndex * precinctIterationSizes.minWidth;\n const posY = pyIndex * precinctIterationSizes.minHeight;\n if (\n posX % sizeInImageScale.width !== 0 ||\n posY % sizeInImageScale.height !== 0\n ) {\n return null;\n }\n const startPrecinctRowIndex =\n (posY / sizeInImageScale.width) *\n resolution.precinctParameters.numprecinctswide;\n return posX / sizeInImageScale.height + startPrecinctRowIndex;\n}\nfunction getPrecinctSizesInImageScale(tile) {\n const componentsCount = tile.components.length;\n let minWidth = Number.MAX_VALUE;\n let minHeight = Number.MAX_VALUE;\n let maxNumWide = 0;\n let maxNumHigh = 0;\n const sizePerComponent = new Array(componentsCount);\n for (let c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n const decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n const sizePerResolution = new Array(decompositionLevelsCount + 1);\n let minWidthCurrentComponent = Number.MAX_VALUE;\n let minHeightCurrentComponent = Number.MAX_VALUE;\n let maxNumWideCurrentComponent = 0;\n let maxNumHighCurrentComponent = 0;\n let scale = 1;\n for (let r = decompositionLevelsCount; r >= 0; --r) {\n const resolution = component.resolutions[r];\n const widthCurrentResolution =\n scale * resolution.precinctParameters.precinctWidth;\n const heightCurrentResolution =\n scale * resolution.precinctParameters.precinctHeight;\n minWidthCurrentComponent = Math.min(\n minWidthCurrentComponent,\n widthCurrentResolution\n );\n minHeightCurrentComponent = Math.min(\n minHeightCurrentComponent,\n heightCurrentResolution\n );\n maxNumWideCurrentComponent = Math.max(\n maxNumWideCurrentComponent,\n resolution.precinctParameters.numprecinctswide\n );\n maxNumHighCurrentComponent = Math.max(\n maxNumHighCurrentComponent,\n resolution.precinctParameters.numprecinctshigh\n );\n sizePerResolution[r] = {\n width: widthCurrentResolution,\n height: heightCurrentResolution,\n };\n scale <<= 1;\n }\n minWidth = Math.min(minWidth, minWidthCurrentComponent);\n minHeight = Math.min(minHeight, minHeightCurrentComponent);\n maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent);\n maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent);\n sizePerComponent[c] = {\n resolutions: sizePerResolution,\n minWidth: minWidthCurrentComponent,\n minHeight: minHeightCurrentComponent,\n maxNumWide: maxNumWideCurrentComponent,\n maxNumHigh: maxNumHighCurrentComponent,\n };\n }\n return {\n components: sizePerComponent,\n minWidth,\n minHeight,\n maxNumWide,\n maxNumHigh,\n };\n}\nfunction buildPackets(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const componentsCount = siz.Csiz;\n // Creating resolutions and sub-bands for each component\n for (let c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n const decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n // Section B.5 Resolution levels and sub-bands\n const resolutions = [];\n const subbands = [];\n for (let r = 0; r <= decompositionLevelsCount; r++) {\n const blocksDimensions = getBlocksDimensions(context, component, r);\n const resolution = {};\n const scale = 1 << (decompositionLevelsCount - r);\n resolution.trx0 = Math.ceil(component.tcx0 / scale);\n resolution.try0 = Math.ceil(component.tcy0 / scale);\n resolution.trx1 = Math.ceil(component.tcx1 / scale);\n resolution.try1 = Math.ceil(component.tcy1 / scale);\n resolution.resLevel = r;\n buildPrecincts(context, resolution, blocksDimensions);\n resolutions.push(resolution);\n\n let subband;\n if (r === 0) {\n // one sub-band (LL) with last decomposition\n subband = {};\n subband.type = \"LL\";\n subband.tbx0 = Math.ceil(component.tcx0 / scale);\n subband.tby0 = Math.ceil(component.tcy0 / scale);\n subband.tbx1 = Math.ceil(component.tcx1 / scale);\n subband.tby1 = Math.ceil(component.tcy1 / scale);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolution.subbands = [subband];\n } else {\n const bscale = 1 << (decompositionLevelsCount - r + 1);\n const resolutionSubbands = [];\n // three sub-bands (HL, LH and HH) with rest of decompositions\n subband = {};\n subband.type = \"HL\";\n subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n subband.tby0 = Math.ceil(component.tcy0 / bscale);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n subband.tby1 = Math.ceil(component.tcy1 / bscale);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n\n subband = {};\n subband.type = \"LH\";\n subband.tbx0 = Math.ceil(component.tcx0 / bscale);\n subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale);\n subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n\n subband = {};\n subband.type = \"HH\";\n subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n\n resolution.subbands = resolutionSubbands;\n }\n }\n component.resolutions = resolutions;\n component.subbands = subbands;\n }\n // Generate the packets sequence\n const progressionOrder = tile.codingStyleDefaultParameters.progressionOrder;\n switch (progressionOrder) {\n case 0:\n tile.packetsIterator = new LayerResolutionComponentPositionIterator(\n context\n );\n break;\n case 1:\n tile.packetsIterator = new ResolutionLayerComponentPositionIterator(\n context\n );\n break;\n case 2:\n tile.packetsIterator = new ResolutionPositionComponentLayerIterator(\n context\n );\n break;\n case 3:\n tile.packetsIterator = new PositionComponentResolutionLayerIterator(\n context\n );\n break;\n case 4:\n tile.packetsIterator = new ComponentPositionResolutionLayerIterator(\n context\n );\n break;\n default:\n throw new JpxError(`Unsupported progression order ${progressionOrder}`);\n }\n}\nfunction parseTilePackets(context, data, offset, dataLength) {\n let position = 0;\n let buffer,\n bufferSize = 0,\n skipNextBit = false;\n function readBits(count) {\n while (bufferSize < count) {\n const b = data[offset + position];\n position++;\n if (skipNextBit) {\n buffer = (buffer << 7) | b;\n bufferSize += 7;\n skipNextBit = false;\n } else {\n buffer = (buffer << 8) | b;\n bufferSize += 8;\n }\n if (b === 0xff) {\n skipNextBit = true;\n }\n }\n bufferSize -= count;\n return (buffer >>> bufferSize) & ((1 << count) - 1);\n }\n function skipMarkerIfEqual(value) {\n if (\n data[offset + position - 1] === 0xff &&\n data[offset + position] === value\n ) {\n skipBytes(1);\n return true;\n } else if (\n data[offset + position] === 0xff &&\n data[offset + position + 1] === value\n ) {\n skipBytes(2);\n return true;\n }\n return false;\n }\n function skipBytes(count) {\n position += count;\n }\n function alignToByte() {\n bufferSize = 0;\n if (skipNextBit) {\n position++;\n skipNextBit = false;\n }\n }\n function readCodingpasses() {\n if (readBits(1) === 0) {\n return 1;\n }\n if (readBits(1) === 0) {\n return 2;\n }\n let value = readBits(2);\n if (value < 3) {\n return value + 3;\n }\n value = readBits(5);\n if (value < 31) {\n return value + 6;\n }\n value = readBits(7);\n return value + 37;\n }\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const sopMarkerUsed = context.COD.sopMarkerUsed;\n const ephMarkerUsed = context.COD.ephMarkerUsed;\n const packetsIterator = tile.packetsIterator;\n while (position < dataLength) {\n alignToByte();\n if (sopMarkerUsed && skipMarkerIfEqual(0x91)) {\n // Skip also marker segment length and packet sequence ID\n skipBytes(4);\n }\n const packet = packetsIterator.nextPacket();\n if (!readBits(1)) {\n continue;\n }\n const layerNumber = packet.layerNumber,\n queue = [];\n let codeblock;\n for (let i = 0, ii = packet.codeblocks.length; i < ii; i++) {\n codeblock = packet.codeblocks[i];\n let precinct = codeblock.precinct;\n const codeblockColumn = codeblock.cbx - precinct.cbxMin;\n const codeblockRow = codeblock.cby - precinct.cbyMin;\n let codeblockIncluded = false;\n let firstTimeInclusion = false;\n let valueReady, zeroBitPlanesTree;\n if (codeblock.included !== undefined) {\n codeblockIncluded = !!readBits(1);\n } else {\n // reading inclusion tree\n precinct = codeblock.precinct;\n let inclusionTree;\n if (precinct.inclusionTree !== undefined) {\n inclusionTree = precinct.inclusionTree;\n } else {\n // building inclusion and zero bit-planes trees\n const width = precinct.cbxMax - precinct.cbxMin + 1;\n const height = precinct.cbyMax - precinct.cbyMin + 1;\n inclusionTree = new InclusionTree(width, height, layerNumber);\n zeroBitPlanesTree = new TagTree(width, height);\n precinct.inclusionTree = inclusionTree;\n precinct.zeroBitPlanesTree = zeroBitPlanesTree;\n for (let l = 0; l < layerNumber; l++) {\n if (readBits(1) !== 0) {\n throw new JpxError(\"Invalid tag tree\");\n }\n }\n }\n\n if (inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber)) {\n while (true) {\n if (readBits(1)) {\n valueReady = !inclusionTree.nextLevel();\n if (valueReady) {\n codeblock.included = true;\n codeblockIncluded = firstTimeInclusion = true;\n break;\n }\n } else {\n inclusionTree.incrementValue(layerNumber);\n break;\n }\n }\n }\n }\n if (!codeblockIncluded) {\n continue;\n }\n if (firstTimeInclusion) {\n zeroBitPlanesTree = precinct.zeroBitPlanesTree;\n zeroBitPlanesTree.reset(codeblockColumn, codeblockRow);\n while (true) {\n if (readBits(1)) {\n valueReady = !zeroBitPlanesTree.nextLevel();\n if (valueReady) {\n break;\n }\n } else {\n zeroBitPlanesTree.incrementValue();\n }\n }\n codeblock.zeroBitPlanes = zeroBitPlanesTree.value;\n }\n const codingpasses = readCodingpasses();\n while (readBits(1)) {\n codeblock.Lblock++;\n }\n const codingpassesLog2 = log2(codingpasses);\n // rounding down log2\n const bits =\n (codingpasses < 1 << codingpassesLog2\n ? codingpassesLog2 - 1\n : codingpassesLog2) + codeblock.Lblock;\n const codedDataLength = readBits(bits);\n queue.push({\n codeblock,\n codingpasses,\n dataLength: codedDataLength,\n });\n }\n alignToByte();\n if (ephMarkerUsed) {\n skipMarkerIfEqual(0x92);\n }\n while (queue.length > 0) {\n const packetItem = queue.shift();\n codeblock = packetItem.codeblock;\n if (codeblock.data === undefined) {\n codeblock.data = [];\n }\n codeblock.data.push({\n data,\n start: offset + position,\n end: offset + position + packetItem.dataLength,\n codingpasses: packetItem.codingpasses,\n });\n position += packetItem.dataLength;\n }\n }\n return position;\n}\nfunction copyCoefficients(\n coefficients,\n levelWidth,\n levelHeight,\n subband,\n delta,\n mb,\n reversible,\n segmentationSymbolUsed,\n resetContextProbabilities\n) {\n const x0 = subband.tbx0;\n const y0 = subband.tby0;\n const width = subband.tbx1 - subband.tbx0;\n const codeblocks = subband.codeblocks;\n const right = subband.type.charAt(0) === \"H\" ? 1 : 0;\n const bottom = subband.type.charAt(1) === \"H\" ? levelWidth : 0;\n\n for (let i = 0, ii = codeblocks.length; i < ii; ++i) {\n const codeblock = codeblocks[i];\n const blockWidth = codeblock.tbx1_ - codeblock.tbx0_;\n const blockHeight = codeblock.tby1_ - codeblock.tby0_;\n if (blockWidth === 0 || blockHeight === 0) {\n continue;\n }\n if (codeblock.data === undefined) {\n continue;\n }\n\n const bitModel = new BitModel(\n blockWidth,\n blockHeight,\n codeblock.subbandType,\n codeblock.zeroBitPlanes,\n mb\n );\n let currentCodingpassType = 2; // first bit plane starts from cleanup\n\n // collect data\n const data = codeblock.data;\n let totalLength = 0,\n codingpasses = 0;\n let j, jj, dataItem;\n for (j = 0, jj = data.length; j < jj; j++) {\n dataItem = data[j];\n totalLength += dataItem.end - dataItem.start;\n codingpasses += dataItem.codingpasses;\n }\n const encodedData = new Uint8Array(totalLength);\n let position = 0;\n for (j = 0, jj = data.length; j < jj; j++) {\n dataItem = data[j];\n const chunk = dataItem.data.subarray(dataItem.start, dataItem.end);\n encodedData.set(chunk, position);\n position += chunk.length;\n }\n // decoding the item\n const decoder = new ArithmeticDecoder(encodedData, 0, totalLength);\n bitModel.setDecoder(decoder);\n\n for (j = 0; j < codingpasses; j++) {\n switch (currentCodingpassType) {\n case 0:\n bitModel.runSignificancePropagationPass();\n break;\n case 1:\n bitModel.runMagnitudeRefinementPass();\n break;\n case 2:\n bitModel.runCleanupPass();\n if (segmentationSymbolUsed) {\n bitModel.checkSegmentationSymbol();\n }\n break;\n }\n\n if (resetContextProbabilities) {\n bitModel.reset();\n }\n\n currentCodingpassType = (currentCodingpassType + 1) % 3;\n }\n\n let offset = codeblock.tbx0_ - x0 + (codeblock.tby0_ - y0) * width;\n const sign = bitModel.coefficentsSign;\n const magnitude = bitModel.coefficentsMagnitude;\n const bitsDecoded = bitModel.bitsDecoded;\n const magnitudeCorrection = reversible ? 0 : 0.5;\n let k, n, nb;\n position = 0;\n // Do the interleaving of Section F.3.3 here, so we do not need\n // to copy later. LL level is not interleaved, just copied.\n const interleave = subband.type !== \"LL\";\n for (j = 0; j < blockHeight; j++) {\n const row = (offset / width) | 0; // row in the non-interleaved subband\n const levelOffset = 2 * row * (levelWidth - width) + right + bottom;\n for (k = 0; k < blockWidth; k++) {\n n = magnitude[position];\n if (n !== 0) {\n n = (n + magnitudeCorrection) * delta;\n if (sign[position] !== 0) {\n n = -n;\n }\n nb = bitsDecoded[position];\n const pos = interleave ? levelOffset + (offset << 1) : offset;\n if (reversible && nb >= mb) {\n coefficients[pos] = n;\n } else {\n coefficients[pos] = n * (1 << (mb - nb));\n }\n }\n offset++;\n position++;\n }\n offset += width - blockWidth;\n }\n }\n}\nfunction transformTile(context, tile, c) {\n const component = tile.components[c];\n const codingStyleParameters = component.codingStyleParameters;\n const quantizationParameters = component.quantizationParameters;\n const decompositionLevelsCount =\n codingStyleParameters.decompositionLevelsCount;\n const spqcds = quantizationParameters.SPqcds;\n const scalarExpounded = quantizationParameters.scalarExpounded;\n const guardBits = quantizationParameters.guardBits;\n const segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed;\n const resetContextProbabilities =\n codingStyleParameters.resetContextProbabilities;\n const precision = context.components[c].precision;\n\n const reversible = codingStyleParameters.reversibleTransformation;\n const transform = reversible\n ? new ReversibleTransform()\n : new IrreversibleTransform();\n\n const subbandCoefficients = [];\n let b = 0;\n for (let i = 0; i <= decompositionLevelsCount; i++) {\n const resolution = component.resolutions[i];\n\n const width = resolution.trx1 - resolution.trx0;\n const height = resolution.try1 - resolution.try0;\n // Allocate space for the whole sublevel.\n const coefficients = new Float32Array(width * height);\n\n for (let j = 0, jj = resolution.subbands.length; j < jj; j++) {\n let mu, epsilon;\n if (!scalarExpounded) {\n // formula E-5\n mu = spqcds[0].mu;\n epsilon = spqcds[0].epsilon + (i > 0 ? 1 - i : 0);\n } else {\n mu = spqcds[b].mu;\n epsilon = spqcds[b].epsilon;\n b++;\n }\n\n const subband = resolution.subbands[j];\n const gainLog2 = SubbandsGainLog2[subband.type];\n\n // calculate quantization coefficient (Section E.1.1.1)\n const delta = reversible\n ? 1\n : 2 ** (precision + gainLog2 - epsilon) * (1 + mu / 2048);\n const mb = guardBits + epsilon - 1;\n\n // In the first resolution level, copyCoefficients will fill the\n // whole array with coefficients. In the succeeding passes,\n // copyCoefficients will consecutively fill in the values that belong\n // to the interleaved positions of the HL, LH, and HH coefficients.\n // The LL coefficients will then be interleaved in Transform.iterate().\n copyCoefficients(\n coefficients,\n width,\n height,\n subband,\n delta,\n mb,\n reversible,\n segmentationSymbolUsed,\n resetContextProbabilities\n );\n }\n subbandCoefficients.push({\n width,\n height,\n items: coefficients,\n });\n }\n\n const result = transform.calculate(\n subbandCoefficients,\n component.tcx0,\n component.tcy0\n );\n return {\n left: component.tcx0,\n top: component.tcy0,\n width: result.width,\n height: result.height,\n items: result.items,\n };\n}\nfunction transformComponents(context) {\n const siz = context.SIZ;\n const components = context.components;\n const componentsCount = siz.Csiz;\n const resultImages = [];\n for (let i = 0, ii = context.tiles.length; i < ii; i++) {\n const tile = context.tiles[i];\n const transformedTiles = [];\n for (let c = 0; c < componentsCount; c++) {\n transformedTiles[c] = transformTile(context, tile, c);\n }\n const tile0 = transformedTiles[0];\n const out = new Uint8ClampedArray(tile0.items.length * componentsCount);\n const result = {\n left: tile0.left,\n top: tile0.top,\n width: tile0.width,\n height: tile0.height,\n items: out,\n };\n\n // Section G.2.2 Inverse multi component transform\n let shift, offset;\n let pos = 0,\n j,\n jj,\n y0,\n y1,\n y2;\n if (tile.codingStyleDefaultParameters.multipleComponentTransform) {\n const fourComponents = componentsCount === 4;\n const y0items = transformedTiles[0].items;\n const y1items = transformedTiles[1].items;\n const y2items = transformedTiles[2].items;\n const y3items = fourComponents ? transformedTiles[3].items : null;\n\n // HACK: The multiple component transform formulas below assume that\n // all components have the same precision. With this in mind, we\n // compute shift and offset only once.\n shift = components[0].precision - 8;\n offset = (128 << shift) + 0.5;\n\n const component0 = tile.components[0];\n const alpha01 = componentsCount - 3;\n jj = y0items.length;\n if (!component0.codingStyleParameters.reversibleTransformation) {\n // inverse irreversible multiple component transform\n for (j = 0; j < jj; j++, pos += alpha01) {\n y0 = y0items[j] + offset;\n y1 = y1items[j];\n y2 = y2items[j];\n out[pos++] = (y0 + 1.402 * y2) >> shift;\n out[pos++] = (y0 - 0.34413 * y1 - 0.71414 * y2) >> shift;\n out[pos++] = (y0 + 1.772 * y1) >> shift;\n }\n } else {\n // inverse reversible multiple component transform\n for (j = 0; j < jj; j++, pos += alpha01) {\n y0 = y0items[j] + offset;\n y1 = y1items[j];\n y2 = y2items[j];\n const g = y0 - ((y2 + y1) >> 2);\n\n out[pos++] = (g + y2) >> shift;\n out[pos++] = g >> shift;\n out[pos++] = (g + y1) >> shift;\n }\n }\n if (fourComponents) {\n for (j = 0, pos = 3; j < jj; j++, pos += 4) {\n out[pos] = (y3items[j] + offset) >> shift;\n }\n }\n } else {\n // no multi-component transform\n for (let c = 0; c < componentsCount; c++) {\n const items = transformedTiles[c].items;\n shift = components[c].precision - 8;\n offset = (128 << shift) + 0.5;\n for (pos = c, j = 0, jj = items.length; j < jj; j++) {\n out[pos] = (items[j] + offset) >> shift;\n pos += componentsCount;\n }\n }\n }\n resultImages.push(result);\n }\n return resultImages;\n}\nfunction initializeTile(context, tileIndex) {\n const siz = context.SIZ;\n const componentsCount = siz.Csiz;\n const tile = context.tiles[tileIndex];\n for (let c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n const qcdOrQcc =\n context.currentTile.QCC[c] !== undefined\n ? context.currentTile.QCC[c]\n : context.currentTile.QCD;\n component.quantizationParameters = qcdOrQcc;\n const codOrCoc =\n context.currentTile.COC[c] !== undefined\n ? context.currentTile.COC[c]\n : context.currentTile.COD;\n component.codingStyleParameters = codOrCoc;\n }\n tile.codingStyleDefaultParameters = context.currentTile.COD;\n}\n\n// Section B.10.2 Tag trees\nclass TagTree {\n constructor(width, height) {\n const levelsLength = log2(Math.max(width, height)) + 1;\n this.levels = [];\n for (let i = 0; i < levelsLength; i++) {\n const level = {\n width,\n height,\n items: [],\n };\n this.levels.push(level);\n width = Math.ceil(width / 2);\n height = Math.ceil(height / 2);\n }\n }\n\n reset(i, j) {\n let currentLevel = 0,\n value = 0,\n level;\n while (currentLevel < this.levels.length) {\n level = this.levels[currentLevel];\n const index = i + j * level.width;\n if (level.items[index] !== undefined) {\n value = level.items[index];\n break;\n }\n level.index = index;\n i >>= 1;\n j >>= 1;\n currentLevel++;\n }\n currentLevel--;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n this.currentLevel = currentLevel;\n delete this.value;\n }\n\n incrementValue() {\n const level = this.levels[this.currentLevel];\n level.items[level.index]++;\n }\n\n nextLevel() {\n let currentLevel = this.currentLevel;\n let level = this.levels[currentLevel];\n const value = level.items[level.index];\n currentLevel--;\n if (currentLevel < 0) {\n this.value = value;\n return false;\n }\n\n this.currentLevel = currentLevel;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n return true;\n }\n}\n\nclass InclusionTree {\n constructor(width, height, defaultValue) {\n const levelsLength = log2(Math.max(width, height)) + 1;\n this.levels = [];\n for (let i = 0; i < levelsLength; i++) {\n const items = new Uint8Array(width * height);\n for (let j = 0, jj = items.length; j < jj; j++) {\n items[j] = defaultValue;\n }\n\n const level = {\n width,\n height,\n items,\n };\n this.levels.push(level);\n\n width = Math.ceil(width / 2);\n height = Math.ceil(height / 2);\n }\n }\n\n reset(i, j, stopValue) {\n let currentLevel = 0;\n while (currentLevel < this.levels.length) {\n const level = this.levels[currentLevel];\n const index = i + j * level.width;\n level.index = index;\n const value = level.items[index];\n\n if (value === 0xff) {\n break;\n }\n\n if (value > stopValue) {\n this.currentLevel = currentLevel;\n // already know about this one, propagating the value to top levels\n this.propagateValues();\n return false;\n }\n\n i >>= 1;\n j >>= 1;\n currentLevel++;\n }\n this.currentLevel = currentLevel - 1;\n return true;\n }\n\n incrementValue(stopValue) {\n const level = this.levels[this.currentLevel];\n level.items[level.index] = stopValue + 1;\n this.propagateValues();\n }\n\n propagateValues() {\n let levelIndex = this.currentLevel;\n let level = this.levels[levelIndex];\n const currentValue = level.items[level.index];\n while (--levelIndex >= 0) {\n level = this.levels[levelIndex];\n level.items[level.index] = currentValue;\n }\n }\n\n nextLevel() {\n let currentLevel = this.currentLevel;\n let level = this.levels[currentLevel];\n const value = level.items[level.index];\n level.items[level.index] = 0xff;\n currentLevel--;\n if (currentLevel < 0) {\n return false;\n }\n\n this.currentLevel = currentLevel;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n return true;\n }\n}\n\n// Section D. Coefficient bit modeling\nconst BitModel = (function BitModelClosure() {\n const UNIFORM_CONTEXT = 17;\n const RUNLENGTH_CONTEXT = 18;\n // Table D-1\n // The index is binary presentation: 0dddvvhh, ddd - sum of Di (0..4),\n // vv - sum of Vi (0..2), and hh - sum of Hi (0..2)\n const LLAndLHContextsLabel = new Uint8Array([\n 0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4,\n 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6,\n 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8,\n ]);\n const HLContextLabel = new Uint8Array([\n 0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8,\n 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3,\n 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8,\n ]);\n const HHContextLabel = new Uint8Array([\n 0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5,\n 5, 5, 0, 0, 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8,\n 8, 0, 8, 8, 8, 0, 8, 8, 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8,\n ]);\n\n // eslint-disable-next-line no-shadow\n class BitModel {\n constructor(width, height, subband, zeroBitPlanes, mb) {\n this.width = width;\n this.height = height;\n\n let contextLabelTable;\n if (subband === \"HH\") {\n contextLabelTable = HHContextLabel;\n } else if (subband === \"HL\") {\n contextLabelTable = HLContextLabel;\n } else {\n contextLabelTable = LLAndLHContextsLabel;\n }\n this.contextLabelTable = contextLabelTable;\n\n const coefficientCount = width * height;\n\n // coefficients outside the encoding region treated as insignificant\n // add border state cells for significanceState\n this.neighborsSignificance = new Uint8Array(coefficientCount);\n this.coefficentsSign = new Uint8Array(coefficientCount);\n let coefficentsMagnitude;\n if (mb > 14) {\n coefficentsMagnitude = new Uint32Array(coefficientCount);\n } else if (mb > 6) {\n coefficentsMagnitude = new Uint16Array(coefficientCount);\n } else {\n coefficentsMagnitude = new Uint8Array(coefficientCount);\n }\n this.coefficentsMagnitude = coefficentsMagnitude;\n this.processingFlags = new Uint8Array(coefficientCount);\n\n const bitsDecoded = new Uint8Array(coefficientCount);\n if (zeroBitPlanes !== 0) {\n for (let i = 0; i < coefficientCount; i++) {\n bitsDecoded[i] = zeroBitPlanes;\n }\n }\n this.bitsDecoded = bitsDecoded;\n\n this.reset();\n }\n\n setDecoder(decoder) {\n this.decoder = decoder;\n }\n\n reset() {\n // We have 17 contexts that are accessed via context labels,\n // plus the uniform and runlength context.\n this.contexts = new Int8Array(19);\n\n // Contexts are packed into 1 byte:\n // highest 7 bits carry the index, lowest bit carries mps\n this.contexts[0] = (4 << 1) | 0;\n this.contexts[UNIFORM_CONTEXT] = (46 << 1) | 0;\n this.contexts[RUNLENGTH_CONTEXT] = (3 << 1) | 0;\n }\n\n setNeighborsSignificance(row, column, index) {\n const neighborsSignificance = this.neighborsSignificance;\n const width = this.width,\n height = this.height;\n const left = column > 0;\n const right = column + 1 < width;\n let i;\n\n if (row > 0) {\n i = index - width;\n if (left) {\n neighborsSignificance[i - 1] += 0x10;\n }\n if (right) {\n neighborsSignificance[i + 1] += 0x10;\n }\n neighborsSignificance[i] += 0x04;\n }\n\n if (row + 1 < height) {\n i = index + width;\n if (left) {\n neighborsSignificance[i - 1] += 0x10;\n }\n if (right) {\n neighborsSignificance[i + 1] += 0x10;\n }\n neighborsSignificance[i] += 0x04;\n }\n\n if (left) {\n neighborsSignificance[index - 1] += 0x01;\n }\n if (right) {\n neighborsSignificance[index + 1] += 0x01;\n }\n neighborsSignificance[index] |= 0x80;\n }\n\n runSignificancePropagationPass() {\n const decoder = this.decoder;\n const width = this.width,\n height = this.height;\n const coefficentsMagnitude = this.coefficentsMagnitude;\n const coefficentsSign = this.coefficentsSign;\n const neighborsSignificance = this.neighborsSignificance;\n const processingFlags = this.processingFlags;\n const contexts = this.contexts;\n const labels = this.contextLabelTable;\n const bitsDecoded = this.bitsDecoded;\n const processedInverseMask = ~1;\n const processedMask = 1;\n const firstMagnitudeBitMask = 2;\n\n for (let i0 = 0; i0 < height; i0 += 4) {\n for (let j = 0; j < width; j++) {\n let index = i0 * width + j;\n for (let i1 = 0; i1 < 4; i1++, index += width) {\n const i = i0 + i1;\n if (i >= height) {\n break;\n }\n // clear processed flag first\n processingFlags[index] &= processedInverseMask;\n\n if (coefficentsMagnitude[index] || !neighborsSignificance[index]) {\n continue;\n }\n\n const contextLabel = labels[neighborsSignificance[index]];\n const decision = decoder.readBit(contexts, contextLabel);\n if (decision) {\n const sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n }\n bitsDecoded[index]++;\n processingFlags[index] |= processedMask;\n }\n }\n }\n }\n\n decodeSignBit(row, column, index) {\n const width = this.width,\n height = this.height;\n const coefficentsMagnitude = this.coefficentsMagnitude;\n const coefficentsSign = this.coefficentsSign;\n let contribution, sign0, sign1, significance1;\n let contextLabel, decoded;\n\n // calculate horizontal contribution\n significance1 = column > 0 && coefficentsMagnitude[index - 1] !== 0;\n if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) {\n sign1 = coefficentsSign[index + 1];\n if (significance1) {\n sign0 = coefficentsSign[index - 1];\n contribution = 1 - sign1 - sign0;\n } else {\n contribution = 1 - sign1 - sign1;\n }\n } else if (significance1) {\n sign0 = coefficentsSign[index - 1];\n contribution = 1 - sign0 - sign0;\n } else {\n contribution = 0;\n }\n const horizontalContribution = 3 * contribution;\n\n // calculate vertical contribution and combine with the horizontal\n significance1 = row > 0 && coefficentsMagnitude[index - width] !== 0;\n if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) {\n sign1 = coefficentsSign[index + width];\n if (significance1) {\n sign0 = coefficentsSign[index - width];\n contribution = 1 - sign1 - sign0 + horizontalContribution;\n } else {\n contribution = 1 - sign1 - sign1 + horizontalContribution;\n }\n } else if (significance1) {\n sign0 = coefficentsSign[index - width];\n contribution = 1 - sign0 - sign0 + horizontalContribution;\n } else {\n contribution = horizontalContribution;\n }\n\n if (contribution >= 0) {\n contextLabel = 9 + contribution;\n decoded = this.decoder.readBit(this.contexts, contextLabel);\n } else {\n contextLabel = 9 - contribution;\n decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1;\n }\n return decoded;\n }\n\n runMagnitudeRefinementPass() {\n const decoder = this.decoder;\n const width = this.width,\n height = this.height;\n const coefficentsMagnitude = this.coefficentsMagnitude;\n const neighborsSignificance = this.neighborsSignificance;\n const contexts = this.contexts;\n const bitsDecoded = this.bitsDecoded;\n const processingFlags = this.processingFlags;\n const processedMask = 1;\n const firstMagnitudeBitMask = 2;\n const length = width * height;\n const width4 = width * 4;\n\n for (let index0 = 0, indexNext; index0 < length; index0 = indexNext) {\n indexNext = Math.min(length, index0 + width4);\n for (let j = 0; j < width; j++) {\n for (let index = index0 + j; index < indexNext; index += width) {\n // significant but not those that have just become\n if (\n !coefficentsMagnitude[index] ||\n (processingFlags[index] & processedMask) !== 0\n ) {\n continue;\n }\n\n let contextLabel = 16;\n if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) {\n processingFlags[index] ^= firstMagnitudeBitMask;\n // first refinement\n const significance = neighborsSignificance[index] & 127;\n contextLabel = significance === 0 ? 15 : 14;\n }\n\n const bit = decoder.readBit(contexts, contextLabel);\n coefficentsMagnitude[index] =\n (coefficentsMagnitude[index] << 1) | bit;\n bitsDecoded[index]++;\n processingFlags[index] |= processedMask;\n }\n }\n }\n }\n\n runCleanupPass() {\n const decoder = this.decoder;\n const width = this.width,\n height = this.height;\n const neighborsSignificance = this.neighborsSignificance;\n const coefficentsMagnitude = this.coefficentsMagnitude;\n const coefficentsSign = this.coefficentsSign;\n const contexts = this.contexts;\n const labels = this.contextLabelTable;\n const bitsDecoded = this.bitsDecoded;\n const processingFlags = this.processingFlags;\n const processedMask = 1;\n const firstMagnitudeBitMask = 2;\n const oneRowDown = width;\n const twoRowsDown = width * 2;\n const threeRowsDown = width * 3;\n let iNext;\n for (let i0 = 0; i0 < height; i0 = iNext) {\n iNext = Math.min(i0 + 4, height);\n const indexBase = i0 * width;\n const checkAllEmpty = i0 + 3 < height;\n for (let j = 0; j < width; j++) {\n const index0 = indexBase + j;\n // using the property: labels[neighborsSignificance[index]] === 0\n // when neighborsSignificance[index] === 0\n const allEmpty =\n checkAllEmpty &&\n processingFlags[index0] === 0 &&\n processingFlags[index0 + oneRowDown] === 0 &&\n processingFlags[index0 + twoRowsDown] === 0 &&\n processingFlags[index0 + threeRowsDown] === 0 &&\n neighborsSignificance[index0] === 0 &&\n neighborsSignificance[index0 + oneRowDown] === 0 &&\n neighborsSignificance[index0 + twoRowsDown] === 0 &&\n neighborsSignificance[index0 + threeRowsDown] === 0;\n let i1 = 0,\n index = index0;\n let i = i0,\n sign;\n if (allEmpty) {\n const hasSignificantCoefficent = decoder.readBit(\n contexts,\n RUNLENGTH_CONTEXT\n );\n if (!hasSignificantCoefficent) {\n bitsDecoded[index0]++;\n bitsDecoded[index0 + oneRowDown]++;\n bitsDecoded[index0 + twoRowsDown]++;\n bitsDecoded[index0 + threeRowsDown]++;\n continue; // next column\n }\n i1 =\n (decoder.readBit(contexts, UNIFORM_CONTEXT) << 1) |\n decoder.readBit(contexts, UNIFORM_CONTEXT);\n if (i1 !== 0) {\n i = i0 + i1;\n index += i1 * width;\n }\n\n sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n\n index = index0;\n for (let i2 = i0; i2 <= i; i2++, index += width) {\n bitsDecoded[index]++;\n }\n\n i1++;\n }\n for (i = i0 + i1; i < iNext; i++, index += width) {\n if (\n coefficentsMagnitude[index] ||\n (processingFlags[index] & processedMask) !== 0\n ) {\n continue;\n }\n\n const contextLabel = labels[neighborsSignificance[index]];\n const decision = decoder.readBit(contexts, contextLabel);\n if (decision === 1) {\n sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n }\n bitsDecoded[index]++;\n }\n }\n }\n }\n\n checkSegmentationSymbol() {\n const decoder = this.decoder;\n const contexts = this.contexts;\n const symbol =\n (decoder.readBit(contexts, UNIFORM_CONTEXT) << 3) |\n (decoder.readBit(contexts, UNIFORM_CONTEXT) << 2) |\n (decoder.readBit(contexts, UNIFORM_CONTEXT) << 1) |\n decoder.readBit(contexts, UNIFORM_CONTEXT);\n if (symbol !== 0xa) {\n throw new JpxError(\"Invalid segmentation symbol\");\n }\n }\n }\n\n return BitModel;\n})();\n\n// Section F, Discrete wavelet transformation\nclass Transform {\n constructor() {\n if (this.constructor === Transform) {\n unreachable(\"Cannot initialize Transform.\");\n }\n }\n\n calculate(subbands, u0, v0) {\n let ll = subbands[0];\n for (let i = 1, ii = subbands.length; i < ii; i++) {\n ll = this.iterate(ll, subbands[i], u0, v0);\n }\n return ll;\n }\n\n extend(buffer, offset, size) {\n // Section F.3.7 extending... using max extension of 4\n let i1 = offset - 1,\n j1 = offset + 1;\n let i2 = offset + size - 2,\n j2 = offset + size;\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1] = buffer[j1];\n buffer[j2] = buffer[i2];\n }\n\n filter(x, offset, length) {\n unreachable(\"Abstract method `filter` called\");\n }\n\n iterate(ll, hl_lh_hh, u0, v0) {\n const llWidth = ll.width,\n llHeight = ll.height;\n let llItems = ll.items;\n const width = hl_lh_hh.width;\n const height = hl_lh_hh.height;\n const items = hl_lh_hh.items;\n let i, j, k, l, u, v;\n\n // Interleave LL according to Section F.3.3\n for (k = 0, i = 0; i < llHeight; i++) {\n l = i * 2 * width;\n for (j = 0; j < llWidth; j++, k++, l += 2) {\n items[l] = llItems[k];\n }\n }\n // The LL band is not needed anymore.\n llItems = ll.items = null;\n\n const bufferPadding = 4;\n const rowBuffer = new Float32Array(width + 2 * bufferPadding);\n\n // Section F.3.4 HOR_SR\n if (width === 1) {\n // if width = 1, when u0 even keep items as is, when odd divide by 2\n if ((u0 & 1) !== 0) {\n for (v = 0, k = 0; v < height; v++, k += width) {\n items[k] *= 0.5;\n }\n }\n } else {\n for (v = 0, k = 0; v < height; v++, k += width) {\n rowBuffer.set(items.subarray(k, k + width), bufferPadding);\n\n this.extend(rowBuffer, bufferPadding, width);\n this.filter(rowBuffer, bufferPadding, width);\n\n items.set(rowBuffer.subarray(bufferPadding, bufferPadding + width), k);\n }\n }\n\n // Accesses to the items array can take long, because it may not fit into\n // CPU cache and has to be fetched from main memory. Since subsequent\n // accesses to the items array are not local when reading columns, we\n // have a cache miss every time. To reduce cache misses, get up to\n // 'numBuffers' items at a time and store them into the individual\n // buffers. The colBuffers should be small enough to fit into CPU cache.\n let numBuffers = 16;\n const colBuffers = [];\n for (i = 0; i < numBuffers; i++) {\n colBuffers.push(new Float32Array(height + 2 * bufferPadding));\n }\n let b,\n currentBuffer = 0;\n ll = bufferPadding + height;\n\n // Section F.3.5 VER_SR\n if (height === 1) {\n // if height = 1, when v0 even keep items as is, when odd divide by 2\n if ((v0 & 1) !== 0) {\n for (u = 0; u < width; u++) {\n items[u] *= 0.5;\n }\n }\n } else {\n for (u = 0; u < width; u++) {\n // if we ran out of buffers, copy several image columns at once\n if (currentBuffer === 0) {\n numBuffers = Math.min(width - u, numBuffers);\n for (k = u, l = bufferPadding; l < ll; k += width, l++) {\n for (b = 0; b < numBuffers; b++) {\n colBuffers[b][l] = items[k + b];\n }\n }\n currentBuffer = numBuffers;\n }\n\n currentBuffer--;\n const buffer = colBuffers[currentBuffer];\n this.extend(buffer, bufferPadding, height);\n this.filter(buffer, bufferPadding, height);\n\n // If this is last buffer in this group of buffers, flush all buffers.\n if (currentBuffer === 0) {\n k = u - numBuffers + 1;\n for (l = bufferPadding; l < ll; k += width, l++) {\n for (b = 0; b < numBuffers; b++) {\n items[k + b] = colBuffers[b][l];\n }\n }\n }\n }\n }\n\n return { width, height, items };\n }\n}\n\n// Section 3.8.2 Irreversible 9-7 filter\nclass IrreversibleTransform extends Transform {\n filter(x, offset, length) {\n const len = length >> 1;\n offset |= 0;\n let j, n, current, next;\n\n const alpha = -1.586134342059924;\n const beta = -0.052980118572961;\n const gamma = 0.882911075530934;\n const delta = 0.443506852043971;\n const K = 1.230174104914001;\n const K_ = 1 / K;\n\n // step 1 is combined with step 3\n\n // step 2\n j = offset - 3;\n for (n = len + 4; n--; j += 2) {\n x[j] *= K_;\n }\n\n // step 1 & 3\n j = offset - 2;\n current = delta * x[j - 1];\n for (n = len + 3; n--; j += 2) {\n next = delta * x[j + 1];\n x[j] = K * x[j] - current - next;\n if (n--) {\n j += 2;\n current = delta * x[j + 1];\n x[j] = K * x[j] - current - next;\n } else {\n break;\n }\n }\n\n // step 4\n j = offset - 1;\n current = gamma * x[j - 1];\n for (n = len + 2; n--; j += 2) {\n next = gamma * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = gamma * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n\n // step 5\n j = offset;\n current = beta * x[j - 1];\n for (n = len + 1; n--; j += 2) {\n next = beta * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = beta * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n\n // step 6\n if (len !== 0) {\n j = offset + 1;\n current = alpha * x[j - 1];\n for (n = len; n--; j += 2) {\n next = alpha * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = alpha * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n }\n }\n}\n\n// Section 3.8.1 Reversible 5-3 filter\nclass ReversibleTransform extends Transform {\n filter(x, offset, length) {\n const len = length >> 1;\n offset |= 0;\n let j, n;\n\n for (j = offset, n = len + 1; n--; j += 2) {\n x[j] -= (x[j - 1] + x[j + 1] + 2) >> 2;\n }\n\n for (j = offset + 1, n = len; n--; j += 2) {\n x[j] += (x[j - 1] + x[j + 1]) >> 1;\n }\n }\n}\n\nexport { JpxImage };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\n\nclass LZWStream extends DecodeStream {\n constructor(str, maybeLength, earlyChange) {\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n this.cachedData = 0;\n this.bitsCached = 0;\n\n const maxLzwDictionarySize = 4096;\n const lzwState = {\n earlyChange,\n codeLength: 9,\n nextCode: 258,\n dictionaryValues: new Uint8Array(maxLzwDictionarySize),\n dictionaryLengths: new Uint16Array(maxLzwDictionarySize),\n dictionaryPrevCodes: new Uint16Array(maxLzwDictionarySize),\n currentSequence: new Uint8Array(maxLzwDictionarySize),\n currentSequenceLength: 0,\n };\n for (let i = 0; i < 256; ++i) {\n lzwState.dictionaryValues[i] = i;\n lzwState.dictionaryLengths[i] = 1;\n }\n this.lzwState = lzwState;\n }\n\n readBits(n) {\n let bitsCached = this.bitsCached;\n let cachedData = this.cachedData;\n while (bitsCached < n) {\n const c = this.str.getByte();\n if (c === -1) {\n this.eof = true;\n return null;\n }\n cachedData = (cachedData << 8) | c;\n bitsCached += 8;\n }\n this.bitsCached = bitsCached -= n;\n this.cachedData = cachedData;\n this.lastCode = null;\n return (cachedData >>> bitsCached) & ((1 << n) - 1);\n }\n\n readBlock() {\n const blockSize = 512,\n decodedSizeDelta = blockSize;\n let estimatedDecodedSize = blockSize * 2;\n let i, j, q;\n\n const lzwState = this.lzwState;\n if (!lzwState) {\n return; // eof was found\n }\n\n const earlyChange = lzwState.earlyChange;\n let nextCode = lzwState.nextCode;\n const dictionaryValues = lzwState.dictionaryValues;\n const dictionaryLengths = lzwState.dictionaryLengths;\n const dictionaryPrevCodes = lzwState.dictionaryPrevCodes;\n let codeLength = lzwState.codeLength;\n let prevCode = lzwState.prevCode;\n const currentSequence = lzwState.currentSequence;\n let currentSequenceLength = lzwState.currentSequenceLength;\n\n let decodedLength = 0;\n let currentBufferLength = this.bufferLength;\n let buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n\n for (i = 0; i < blockSize; i++) {\n const code = this.readBits(codeLength);\n const hasPrev = currentSequenceLength > 0;\n if (code < 256) {\n currentSequence[0] = code;\n currentSequenceLength = 1;\n } else if (code >= 258) {\n if (code < nextCode) {\n currentSequenceLength = dictionaryLengths[code];\n for (j = currentSequenceLength - 1, q = code; j >= 0; j--) {\n currentSequence[j] = dictionaryValues[q];\n q = dictionaryPrevCodes[q];\n }\n } else {\n currentSequence[currentSequenceLength++] = currentSequence[0];\n }\n } else if (code === 256) {\n codeLength = 9;\n nextCode = 258;\n currentSequenceLength = 0;\n continue;\n } else {\n this.eof = true;\n delete this.lzwState;\n break;\n }\n\n if (hasPrev) {\n dictionaryPrevCodes[nextCode] = prevCode;\n dictionaryLengths[nextCode] = dictionaryLengths[prevCode] + 1;\n dictionaryValues[nextCode] = currentSequence[0];\n nextCode++;\n codeLength =\n (nextCode + earlyChange) & (nextCode + earlyChange - 1)\n ? codeLength\n : Math.min(\n Math.log(nextCode + earlyChange) / 0.6931471805599453 + 1,\n 12\n ) | 0;\n }\n prevCode = code;\n\n decodedLength += currentSequenceLength;\n if (estimatedDecodedSize < decodedLength) {\n do {\n estimatedDecodedSize += decodedSizeDelta;\n } while (estimatedDecodedSize < decodedLength);\n buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n }\n for (j = 0; j < currentSequenceLength; j++) {\n buffer[currentBufferLength++] = currentSequence[j];\n }\n }\n lzwState.nextCode = nextCode;\n lzwState.codeLength = codeLength;\n lzwState.prevCode = prevCode;\n lzwState.currentSequenceLength = currentSequenceLength;\n\n this.bufferLength = currentBufferLength;\n }\n}\n\nexport { LZWStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { Dict } from \"./primitives.js\";\nimport { FormatError } from \"../shared/util.js\";\n\nclass PredictorStream extends DecodeStream {\n constructor(str, maybeLength, params) {\n super(maybeLength);\n\n if (!(params instanceof Dict)) {\n return str; // no prediction\n }\n const predictor = (this.predictor = params.get(\"Predictor\") || 1);\n\n if (predictor <= 1) {\n return str; // no prediction\n }\n if (predictor !== 2 && (predictor < 10 || predictor > 15)) {\n throw new FormatError(`Unsupported predictor: ${predictor}`);\n }\n\n if (predictor === 2) {\n this.readBlock = this.readBlockTiff;\n } else {\n this.readBlock = this.readBlockPng;\n }\n\n this.str = str;\n this.dict = str.dict;\n\n const colors = (this.colors = params.get(\"Colors\") || 1);\n const bits = (this.bits = params.get(\"BPC\", \"BitsPerComponent\") || 8);\n const columns = (this.columns = params.get(\"Columns\") || 1);\n\n this.pixBytes = (colors * bits + 7) >> 3;\n this.rowBytes = (columns * colors * bits + 7) >> 3;\n\n return this;\n }\n\n readBlockTiff() {\n const rowBytes = this.rowBytes;\n\n const bufferLength = this.bufferLength;\n const buffer = this.ensureBuffer(bufferLength + rowBytes);\n\n const bits = this.bits;\n const colors = this.colors;\n\n const rawBytes = this.str.getBytes(rowBytes);\n this.eof = !rawBytes.length;\n if (this.eof) {\n return;\n }\n\n let inbuf = 0,\n outbuf = 0;\n let inbits = 0,\n outbits = 0;\n let pos = bufferLength;\n let i;\n\n if (bits === 1 && colors === 1) {\n // Optimized version of the loop in the \"else\"-branch\n // for 1 bit-per-component and 1 color TIFF images.\n for (i = 0; i < rowBytes; ++i) {\n let c = rawBytes[i] ^ inbuf;\n c ^= c >> 1;\n c ^= c >> 2;\n c ^= c >> 4;\n inbuf = (c & 1) << 7;\n buffer[pos++] = c;\n }\n } else if (bits === 8) {\n for (i = 0; i < colors; ++i) {\n buffer[pos++] = rawBytes[i];\n }\n for (; i < rowBytes; ++i) {\n buffer[pos] = buffer[pos - colors] + rawBytes[i];\n pos++;\n }\n } else if (bits === 16) {\n const bytesPerPixel = colors * 2;\n for (i = 0; i < bytesPerPixel; ++i) {\n buffer[pos++] = rawBytes[i];\n }\n for (; i < rowBytes; i += 2) {\n const sum =\n ((rawBytes[i] & 0xff) << 8) +\n (rawBytes[i + 1] & 0xff) +\n ((buffer[pos - bytesPerPixel] & 0xff) << 8) +\n (buffer[pos - bytesPerPixel + 1] & 0xff);\n buffer[pos++] = (sum >> 8) & 0xff;\n buffer[pos++] = sum & 0xff;\n }\n } else {\n const compArray = new Uint8Array(colors + 1);\n const bitMask = (1 << bits) - 1;\n let j = 0,\n k = bufferLength;\n const columns = this.columns;\n for (i = 0; i < columns; ++i) {\n for (let kk = 0; kk < colors; ++kk) {\n if (inbits < bits) {\n inbuf = (inbuf << 8) | (rawBytes[j++] & 0xff);\n inbits += 8;\n }\n compArray[kk] =\n (compArray[kk] + (inbuf >> (inbits - bits))) & bitMask;\n inbits -= bits;\n outbuf = (outbuf << bits) | compArray[kk];\n outbits += bits;\n if (outbits >= 8) {\n buffer[k++] = (outbuf >> (outbits - 8)) & 0xff;\n outbits -= 8;\n }\n }\n }\n if (outbits > 0) {\n buffer[k++] =\n (outbuf << (8 - outbits)) + (inbuf & ((1 << (8 - outbits)) - 1));\n }\n }\n this.bufferLength += rowBytes;\n }\n\n readBlockPng() {\n const rowBytes = this.rowBytes;\n const pixBytes = this.pixBytes;\n\n const predictor = this.str.getByte();\n const rawBytes = this.str.getBytes(rowBytes);\n this.eof = !rawBytes.length;\n if (this.eof) {\n return;\n }\n\n const bufferLength = this.bufferLength;\n const buffer = this.ensureBuffer(bufferLength + rowBytes);\n\n let prevRow = buffer.subarray(bufferLength - rowBytes, bufferLength);\n if (prevRow.length === 0) {\n prevRow = new Uint8Array(rowBytes);\n }\n\n let i,\n j = bufferLength,\n up,\n c;\n switch (predictor) {\n case 0:\n for (i = 0; i < rowBytes; ++i) {\n buffer[j++] = rawBytes[i];\n }\n break;\n case 1:\n for (i = 0; i < pixBytes; ++i) {\n buffer[j++] = rawBytes[i];\n }\n for (; i < rowBytes; ++i) {\n buffer[j] = (buffer[j - pixBytes] + rawBytes[i]) & 0xff;\n j++;\n }\n break;\n case 2:\n for (i = 0; i < rowBytes; ++i) {\n buffer[j++] = (prevRow[i] + rawBytes[i]) & 0xff;\n }\n break;\n case 3:\n for (i = 0; i < pixBytes; ++i) {\n buffer[j++] = (prevRow[i] >> 1) + rawBytes[i];\n }\n for (; i < rowBytes; ++i) {\n buffer[j] =\n (((prevRow[i] + buffer[j - pixBytes]) >> 1) + rawBytes[i]) & 0xff;\n j++;\n }\n break;\n case 4:\n // we need to save the up left pixels values. the simplest way\n // is to create a new buffer\n for (i = 0; i < pixBytes; ++i) {\n up = prevRow[i];\n c = rawBytes[i];\n buffer[j++] = up + c;\n }\n for (; i < rowBytes; ++i) {\n up = prevRow[i];\n const upLeft = prevRow[i - pixBytes];\n const left = buffer[j - pixBytes];\n const p = left + up - upLeft;\n\n let pa = p - left;\n if (pa < 0) {\n pa = -pa;\n }\n let pb = p - up;\n if (pb < 0) {\n pb = -pb;\n }\n let pc = p - upLeft;\n if (pc < 0) {\n pc = -pc;\n }\n\n c = rawBytes[i];\n if (pa <= pb && pa <= pc) {\n buffer[j++] = left + c;\n } else if (pb <= pc) {\n buffer[j++] = up + c;\n } else {\n buffer[j++] = upLeft + c;\n }\n }\n break;\n default:\n throw new FormatError(`Unsupported predictor: ${predictor}`);\n }\n this.bufferLength += rowBytes;\n }\n}\n\nexport { PredictorStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\n\nclass RunLengthStream extends DecodeStream {\n constructor(str, maybeLength) {\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n }\n\n readBlock() {\n // The repeatHeader has following format. The first byte defines type of run\n // and amount of bytes to repeat/copy: n = 0 through 127 - copy next n bytes\n // (in addition to the second byte from the header), n = 129 through 255 -\n // duplicate the second byte from the header (257 - n) times, n = 128 - end.\n const repeatHeader = this.str.getBytes(2);\n if (!repeatHeader || repeatHeader.length < 2 || repeatHeader[0] === 128) {\n this.eof = true;\n return;\n }\n\n let buffer;\n let bufferLength = this.bufferLength;\n let n = repeatHeader[0];\n if (n < 128) {\n // copy n bytes\n buffer = this.ensureBuffer(bufferLength + n + 1);\n buffer[bufferLength++] = repeatHeader[1];\n if (n > 0) {\n const source = this.str.getBytes(n);\n buffer.set(source, bufferLength);\n bufferLength += n;\n }\n } else {\n n = 257 - n;\n const b = repeatHeader[1];\n buffer = this.ensureBuffer(bufferLength + n + 1);\n for (let i = 0; i < n; i++) {\n buffer[bufferLength++] = b;\n }\n }\n this.bufferLength = bufferLength;\n }\n}\n\nexport { RunLengthStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n bytesToString,\n FONT_IDENTITY_MATRIX,\n FontType,\n FormatError,\n info,\n shadow,\n string32,\n warn,\n} from \"../shared/util.js\";\nimport { CFFCompiler, CFFParser } from \"./cff_parser.js\";\nimport {\n FontFlags,\n getFontType,\n MacStandardGlyphOrdering,\n normalizeFontName,\n recoverGlyphName,\n SEAC_ANALYSIS_ENABLED,\n} from \"./fonts_utils.js\";\nimport {\n getCharUnicodeCategory,\n getUnicodeForGlyph,\n getUnicodeRangeFor,\n mapSpecialUnicodeValues,\n} from \"./unicode.js\";\nimport { getDingbatsGlyphsUnicode, getGlyphsUnicode } from \"./glyphlist.js\";\nimport {\n getEncoding,\n MacRomanEncoding,\n StandardEncoding,\n SymbolSetEncoding,\n ZapfDingbatsEncoding,\n} from \"./encodings.js\";\nimport {\n getGlyphMapForStandardFonts,\n getNonStdFontMap,\n getSerifFonts,\n getStdFontMap,\n getSupplementalGlyphMapForArialBlack,\n getSupplementalGlyphMapForCalibri,\n} from \"./standard_fonts.js\";\nimport { IdentityToUnicodeMap, ToUnicodeMap } from \"./to_unicode_map.js\";\nimport { CFFFont } from \"./cff_font.js\";\nimport { FontRendererFactory } from \"./font_renderer.js\";\nimport { getFontBasicMetrics } from \"./metrics.js\";\nimport { GlyfTable } from \"./glyf.js\";\nimport { IdentityCMap } from \"./cmap.js\";\nimport { OpenTypeFileBuilder } from \"./opentype_file_builder.js\";\nimport { readUint32 } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\nimport { Type1Font } from \"./type1_font.js\";\n\n// Unicode Private Use Areas:\nconst PRIVATE_USE_AREAS = [\n [0xe000, 0xf8ff], // BMP (0)\n [0x100000, 0x10fffd], // PUP (16)\n];\n\n// PDF Glyph Space Units are one Thousandth of a TextSpace Unit\n// except for Type 3 fonts\nconst PDF_GLYPH_SPACE_UNITS = 1000;\n\nconst EXPORT_DATA_PROPERTIES = [\n \"ascent\",\n \"bbox\",\n \"black\",\n \"bold\",\n \"charProcOperatorList\",\n \"composite\",\n \"cssFontInfo\",\n \"data\",\n \"defaultVMetrics\",\n \"defaultWidth\",\n \"descent\",\n \"fallbackName\",\n \"fontMatrix\",\n \"fontType\",\n \"isType3Font\",\n \"italic\",\n \"loadedName\",\n \"mimetype\",\n \"missingFile\",\n \"name\",\n \"remeasure\",\n \"subtype\",\n \"type\",\n \"vertical\",\n];\n\nconst EXPORT_DATA_EXTRA_PROPERTIES = [\n \"cMap\",\n \"defaultEncoding\",\n \"differences\",\n \"isMonospace\",\n \"isSerifFont\",\n \"isSymbolicFont\",\n \"seacMap\",\n \"toFontChar\",\n \"toUnicode\",\n \"vmetrics\",\n \"widths\",\n];\n\nfunction adjustWidths(properties) {\n if (!properties.fontMatrix) {\n return;\n }\n if (properties.fontMatrix[0] === FONT_IDENTITY_MATRIX[0]) {\n return;\n }\n // adjusting width to fontMatrix scale\n const scale = 0.001 / properties.fontMatrix[0];\n const glyphsWidths = properties.widths;\n for (const glyph in glyphsWidths) {\n glyphsWidths[glyph] *= scale;\n }\n properties.defaultWidth *= scale;\n}\n\nfunction adjustToUnicode(properties, builtInEncoding) {\n if (properties.isInternalFont) {\n return;\n }\n if (builtInEncoding === properties.defaultEncoding) {\n return; // No point in trying to adjust `toUnicode` if the encodings match.\n }\n if (properties.toUnicode instanceof IdentityToUnicodeMap) {\n return;\n }\n const toUnicode = [],\n glyphsUnicodeMap = getGlyphsUnicode();\n for (const charCode in builtInEncoding) {\n if (properties.hasIncludedToUnicodeMap) {\n if (properties.toUnicode.has(charCode)) {\n continue; // The font dictionary has a `ToUnicode` entry.\n }\n } else if (properties.hasEncoding) {\n if (\n properties.differences.length === 0 ||\n properties.differences[charCode] !== undefined\n ) {\n continue; // The font dictionary has an `Encoding`/`Differences` entry.\n }\n }\n const glyphName = builtInEncoding[charCode];\n const unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap);\n if (unicode !== -1) {\n toUnicode[charCode] = String.fromCharCode(unicode);\n }\n }\n if (toUnicode.length > 0) {\n properties.toUnicode.amend(toUnicode);\n }\n}\n\n/**\n * NOTE: This function should only be called at the *end* of font-parsing,\n * after e.g. `adjustToUnicode` has run, to prevent any issues.\n */\nfunction amendFallbackToUnicode(properties) {\n if (!properties.fallbackToUnicode) {\n return;\n }\n if (properties.toUnicode instanceof IdentityToUnicodeMap) {\n return;\n }\n const toUnicode = [];\n for (const charCode in properties.fallbackToUnicode) {\n if (properties.toUnicode.has(charCode)) {\n continue; // The font dictionary has a `ToUnicode` entry.\n }\n toUnicode[charCode] = properties.fallbackToUnicode[charCode];\n }\n if (toUnicode.length > 0) {\n properties.toUnicode.amend(toUnicode);\n }\n}\n\nclass Glyph {\n constructor(\n originalCharCode,\n fontChar,\n unicode,\n accent,\n width,\n vmetric,\n operatorListId,\n isSpace,\n isInFont\n ) {\n this.originalCharCode = originalCharCode;\n this.fontChar = fontChar;\n this.unicode = unicode;\n this.accent = accent;\n this.width = width;\n this.vmetric = vmetric;\n this.operatorListId = operatorListId;\n this.isSpace = isSpace;\n this.isInFont = isInFont;\n\n const category = getCharUnicodeCategory(unicode);\n this.isWhitespace = category.isWhitespace;\n this.isZeroWidthDiacritic = category.isZeroWidthDiacritic;\n this.isInvisibleFormatMark = category.isInvisibleFormatMark;\n }\n\n matchesForCache(\n originalCharCode,\n fontChar,\n unicode,\n accent,\n width,\n vmetric,\n operatorListId,\n isSpace,\n isInFont\n ) {\n return (\n this.originalCharCode === originalCharCode &&\n this.fontChar === fontChar &&\n this.unicode === unicode &&\n this.accent === accent &&\n this.width === width &&\n this.vmetric === vmetric &&\n this.operatorListId === operatorListId &&\n this.isSpace === isSpace &&\n this.isInFont === isInFont\n );\n }\n}\n\nfunction int16(b0, b1) {\n return (b0 << 8) + b1;\n}\n\nfunction writeSignedInt16(bytes, index, value) {\n bytes[index + 1] = value;\n bytes[index] = value >>> 8;\n}\n\nfunction signedInt16(b0, b1) {\n const value = (b0 << 8) + b1;\n return value & (1 << 15) ? value - 0x10000 : value;\n}\n\nfunction int32(b0, b1, b2, b3) {\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n}\n\nfunction string16(value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n typeof value === \"number\" && Math.abs(value) < 2 ** 16,\n `string16: Unexpected input \"${value}\".`\n );\n }\n return String.fromCharCode((value >> 8) & 0xff, value & 0xff);\n}\n\nfunction safeString16(value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n typeof value === \"number\" && !Number.isNaN(value),\n `safeString16: Unexpected input \"${value}\".`\n );\n }\n // clamp value to the 16-bit int range\n if (value > 0x7fff) {\n value = 0x7fff;\n } else if (value < -0x8000) {\n value = -0x8000;\n }\n return String.fromCharCode((value >> 8) & 0xff, value & 0xff);\n}\n\nfunction isTrueTypeFile(file) {\n const header = file.peekBytes(4);\n return (\n readUint32(header, 0) === 0x00010000 || bytesToString(header) === \"true\"\n );\n}\n\nfunction isTrueTypeCollectionFile(file) {\n const header = file.peekBytes(4);\n return bytesToString(header) === \"ttcf\";\n}\n\nfunction isOpenTypeFile(file) {\n const header = file.peekBytes(4);\n return bytesToString(header) === \"OTTO\";\n}\n\nfunction isType1File(file) {\n const header = file.peekBytes(2);\n // All Type1 font programs must begin with the comment '%!' (0x25 + 0x21).\n if (header[0] === 0x25 && header[1] === 0x21) {\n return true;\n }\n // ... obviously some fonts violate that part of the specification,\n // please refer to the comment in |Type1Font| below (pfb file header).\n if (header[0] === 0x80 && header[1] === 0x01) {\n return true;\n }\n return false;\n}\n\n/**\n * Compared to other font formats, the header in CFF files is not constant\n * but contains version numbers. To reduce the possibility of misclassifying\n * font files as CFF, it's recommended to check for other font formats first.\n */\nfunction isCFFFile(file) {\n const header = file.peekBytes(4);\n if (\n /* major version, [1, 255] */ header[0] >= 1 &&\n /* minor version, [0, 255]; header[1] */\n /* header size, [0, 255]; header[2] */\n /* offset(0) size, [1, 4] */ header[3] >= 1 &&\n header[3] <= 4\n ) {\n return true;\n }\n return false;\n}\n\nfunction getFontFileType(file, { type, subtype, composite }) {\n let fileType, fileSubtype;\n\n if (isTrueTypeFile(file) || isTrueTypeCollectionFile(file)) {\n if (composite) {\n fileType = \"CIDFontType2\";\n } else {\n fileType = \"TrueType\";\n }\n } else if (isOpenTypeFile(file)) {\n if (composite) {\n fileType = \"CIDFontType2\";\n } else {\n fileType = \"OpenType\";\n }\n } else if (isType1File(file)) {\n if (composite) {\n fileType = \"CIDFontType0\";\n } else {\n fileType = type === \"MMType1\" ? \"MMType1\" : \"Type1\";\n }\n } else if (isCFFFile(file)) {\n if (composite) {\n fileType = \"CIDFontType0\";\n fileSubtype = \"CIDFontType0C\";\n } else {\n fileType = type === \"MMType1\" ? \"MMType1\" : \"Type1\";\n fileSubtype = \"Type1C\";\n }\n } else {\n warn(\"getFontFileType: Unable to detect correct font file Type/Subtype.\");\n fileType = type;\n fileSubtype = subtype;\n }\n\n return [fileType, fileSubtype];\n}\n\nfunction applyStandardFontGlyphMap(map, glyphMap) {\n for (const charCode in glyphMap) {\n map[+charCode] = glyphMap[charCode];\n }\n}\n\nfunction buildToFontChar(encoding, glyphsUnicodeMap, differences) {\n const toFontChar = [];\n let unicode;\n for (let i = 0, ii = encoding.length; i < ii; i++) {\n unicode = getUnicodeForGlyph(encoding[i], glyphsUnicodeMap);\n if (unicode !== -1) {\n toFontChar[i] = unicode;\n }\n }\n for (const charCode in differences) {\n unicode = getUnicodeForGlyph(differences[charCode], glyphsUnicodeMap);\n if (unicode !== -1) {\n toFontChar[+charCode] = unicode;\n }\n }\n return toFontChar;\n}\n\nfunction convertCidString(charCode, cid, shouldThrow = false) {\n switch (cid.length) {\n case 1:\n return cid.charCodeAt(0);\n case 2:\n return (cid.charCodeAt(0) << 8) | cid.charCodeAt(1);\n }\n const msg = `Unsupported CID string (charCode ${charCode}): \"${cid}\".`;\n if (shouldThrow) {\n throw new FormatError(msg);\n }\n warn(msg);\n return cid;\n}\n\n/**\n * Rebuilds the char code to glyph ID map by moving all char codes to the\n * private use area. This is done to avoid issues with various problematic\n * unicode areas where either a glyph won't be drawn or is deformed by a\n * shaper.\n * @returns {Object} Two properties:\n * 'toFontChar' - maps original char codes(the value that will be read\n * from commands such as show text) to the char codes that will be used in the\n * font that we build\n * 'charCodeToGlyphId' - maps the new font char codes to glyph ids\n */\nfunction adjustMapping(charCodeToGlyphId, hasGlyph, newGlyphZeroId) {\n const newMap = Object.create(null);\n const toFontChar = [];\n let privateUseAreaIndex = 0;\n let nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n let privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n for (let originalCharCode in charCodeToGlyphId) {\n originalCharCode |= 0;\n let glyphId = charCodeToGlyphId[originalCharCode];\n // For missing glyphs don't create the mappings so the glyph isn't\n // drawn.\n if (!hasGlyph(glyphId)) {\n continue;\n }\n if (nextAvailableFontCharCode > privateUseOffetEnd) {\n privateUseAreaIndex++;\n if (privateUseAreaIndex >= PRIVATE_USE_AREAS.length) {\n warn(\"Ran out of space in font private use area.\");\n break;\n }\n nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n }\n const fontCharCode = nextAvailableFontCharCode++;\n if (glyphId === 0) {\n glyphId = newGlyphZeroId;\n }\n\n newMap[fontCharCode] = glyphId;\n toFontChar[originalCharCode] = fontCharCode;\n }\n return {\n toFontChar,\n charCodeToGlyphId: newMap,\n nextAvailableFontCharCode,\n };\n}\n\nfunction getRanges(glyphs, numGlyphs) {\n // Array.sort() sorts by characters, not numerically, so convert to an\n // array of characters.\n const codes = [];\n for (const charCode in glyphs) {\n // Remove an invalid glyph ID mappings to make OTS happy.\n if (glyphs[charCode] >= numGlyphs) {\n continue;\n }\n codes.push({ fontCharCode: charCode | 0, glyphId: glyphs[charCode] });\n }\n // Some fonts have zero glyphs and are used only for text selection, but\n // there needs to be at least one to build a valid cmap table.\n if (codes.length === 0) {\n codes.push({ fontCharCode: 0, glyphId: 0 });\n }\n codes.sort(function fontGetRangesSort(a, b) {\n return a.fontCharCode - b.fontCharCode;\n });\n\n // Split the sorted codes into ranges.\n const ranges = [];\n const length = codes.length;\n for (let n = 0; n < length; ) {\n const start = codes[n].fontCharCode;\n const codeIndices = [codes[n].glyphId];\n ++n;\n let end = start;\n while (n < length && end + 1 === codes[n].fontCharCode) {\n codeIndices.push(codes[n].glyphId);\n ++end;\n ++n;\n if (end === 0xffff) {\n break;\n }\n }\n ranges.push([start, end, codeIndices]);\n }\n\n return ranges;\n}\n\nfunction createCmapTable(glyphs, numGlyphs) {\n const ranges = getRanges(glyphs, numGlyphs);\n const numTables = ranges[ranges.length - 1][1] > 0xffff ? 2 : 1;\n let cmap =\n \"\\x00\\x00\" + // version\n string16(numTables) + // numTables\n \"\\x00\\x03\" + // platformID\n \"\\x00\\x01\" + // encodingID\n string32(4 + numTables * 8); // start of the table record\n\n let i, ii, j, jj;\n for (i = ranges.length - 1; i >= 0; --i) {\n if (ranges[i][0] <= 0xffff) {\n break;\n }\n }\n const bmpLength = i + 1;\n\n if (ranges[i][0] < 0xffff && ranges[i][1] === 0xffff) {\n ranges[i][1] = 0xfffe;\n }\n const trailingRangesCount = ranges[i][1] < 0xffff ? 1 : 0;\n const segCount = bmpLength + trailingRangesCount;\n const searchParams = OpenTypeFileBuilder.getSearchParams(segCount, 2);\n\n // Fill up the 4 parallel arrays describing the segments.\n let startCount = \"\";\n let endCount = \"\";\n let idDeltas = \"\";\n let idRangeOffsets = \"\";\n let glyphsIds = \"\";\n let bias = 0;\n\n let range, start, end, codes;\n for (i = 0, ii = bmpLength; i < ii; i++) {\n range = ranges[i];\n start = range[0];\n end = range[1];\n startCount += string16(start);\n endCount += string16(end);\n codes = range[2];\n let contiguous = true;\n for (j = 1, jj = codes.length; j < jj; ++j) {\n if (codes[j] !== codes[j - 1] + 1) {\n contiguous = false;\n break;\n }\n }\n if (!contiguous) {\n const offset = (segCount - i) * 2 + bias * 2;\n bias += end - start + 1;\n\n idDeltas += string16(0);\n idRangeOffsets += string16(offset);\n\n for (j = 0, jj = codes.length; j < jj; ++j) {\n glyphsIds += string16(codes[j]);\n }\n } else {\n const startCode = codes[0];\n\n idDeltas += string16((startCode - start) & 0xffff);\n idRangeOffsets += string16(0);\n }\n }\n\n if (trailingRangesCount > 0) {\n endCount += \"\\xFF\\xFF\";\n startCount += \"\\xFF\\xFF\";\n idDeltas += \"\\x00\\x01\";\n idRangeOffsets += \"\\x00\\x00\";\n }\n\n const format314 =\n \"\\x00\\x00\" + // language\n string16(2 * segCount) +\n string16(searchParams.range) +\n string16(searchParams.entry) +\n string16(searchParams.rangeShift) +\n endCount +\n \"\\x00\\x00\" +\n startCount +\n idDeltas +\n idRangeOffsets +\n glyphsIds;\n\n let format31012 = \"\";\n let header31012 = \"\";\n if (numTables > 1) {\n cmap +=\n \"\\x00\\x03\" + // platformID\n \"\\x00\\x0A\" + // encodingID\n string32(4 + numTables * 8 + 4 + format314.length); // start of the table record\n format31012 = \"\";\n for (i = 0, ii = ranges.length; i < ii; i++) {\n range = ranges[i];\n start = range[0];\n codes = range[2];\n let code = codes[0];\n for (j = 1, jj = codes.length; j < jj; ++j) {\n if (codes[j] !== codes[j - 1] + 1) {\n end = range[0] + j - 1;\n format31012 +=\n string32(start) + // startCharCode\n string32(end) + // endCharCode\n string32(code); // startGlyphID\n start = end + 1;\n code = codes[j];\n }\n }\n format31012 +=\n string32(start) + // startCharCode\n string32(range[1]) + // endCharCode\n string32(code); // startGlyphID\n }\n header31012 =\n \"\\x00\\x0C\" + // format\n \"\\x00\\x00\" + // reserved\n string32(format31012.length + 16) + // length\n \"\\x00\\x00\\x00\\x00\" + // language\n string32(format31012.length / 12); // nGroups\n }\n\n return (\n cmap +\n \"\\x00\\x04\" + // format\n string16(format314.length + 4) + // length\n format314 +\n header31012 +\n format31012\n );\n}\n\nfunction validateOS2Table(os2, file) {\n file.pos = (file.start || 0) + os2.offset;\n const version = file.getUint16();\n // TODO verify all OS/2 tables fields, but currently we validate only those\n // that give us issues\n file.skip(60); // skipping type, misc sizes, panose, unicode ranges\n const selection = file.getUint16();\n if (version < 4 && selection & 0x0300) {\n return false;\n }\n const firstChar = file.getUint16();\n const lastChar = file.getUint16();\n if (firstChar > lastChar) {\n return false;\n }\n file.skip(6); // skipping sTypoAscender/Descender/LineGap\n const usWinAscent = file.getUint16();\n if (usWinAscent === 0) {\n // makes font unreadable by windows\n return false;\n }\n\n // OS/2 appears to be valid, resetting some fields\n os2.data[8] = os2.data[9] = 0; // IE rejects fonts if fsType != 0\n return true;\n}\n\nfunction createOS2Table(properties, charstrings, override) {\n override = override || {\n unitsPerEm: 0,\n yMax: 0,\n yMin: 0,\n ascent: 0,\n descent: 0,\n };\n\n let ulUnicodeRange1 = 0;\n let ulUnicodeRange2 = 0;\n let ulUnicodeRange3 = 0;\n let ulUnicodeRange4 = 0;\n\n let firstCharIndex = null;\n let lastCharIndex = 0;\n\n if (charstrings) {\n for (let code in charstrings) {\n code |= 0;\n if (firstCharIndex > code || !firstCharIndex) {\n firstCharIndex = code;\n }\n if (lastCharIndex < code) {\n lastCharIndex = code;\n }\n\n const position = getUnicodeRangeFor(code);\n if (position < 32) {\n ulUnicodeRange1 |= 1 << position;\n } else if (position < 64) {\n ulUnicodeRange2 |= 1 << (position - 32);\n } else if (position < 96) {\n ulUnicodeRange3 |= 1 << (position - 64);\n } else if (position < 123) {\n ulUnicodeRange4 |= 1 << (position - 96);\n } else {\n throw new FormatError(\n \"Unicode ranges Bits > 123 are reserved for internal usage\"\n );\n }\n }\n if (lastCharIndex > 0xffff) {\n // OS2 only supports a 16 bit int. The spec says if supplementary\n // characters are used the field should just be set to 0xFFFF.\n lastCharIndex = 0xffff;\n }\n } else {\n // TODO\n firstCharIndex = 0;\n lastCharIndex = 255;\n }\n\n const bbox = properties.bbox || [0, 0, 0, 0];\n const unitsPerEm =\n override.unitsPerEm ||\n 1 / (properties.fontMatrix || FONT_IDENTITY_MATRIX)[0];\n\n // if the font units differ to the PDF glyph space units\n // then scale up the values\n const scale = properties.ascentScaled\n ? 1.0\n : unitsPerEm / PDF_GLYPH_SPACE_UNITS;\n\n const typoAscent =\n override.ascent || Math.round(scale * (properties.ascent || bbox[3]));\n let typoDescent =\n override.descent || Math.round(scale * (properties.descent || bbox[1]));\n if (typoDescent > 0 && properties.descent > 0 && bbox[1] < 0) {\n typoDescent = -typoDescent; // fixing incorrect descent\n }\n const winAscent = override.yMax || typoAscent;\n const winDescent = -override.yMin || -typoDescent;\n\n return (\n \"\\x00\\x03\" + // version\n \"\\x02\\x24\" + // xAvgCharWidth\n \"\\x01\\xF4\" + // usWeightClass\n \"\\x00\\x05\" + // usWidthClass\n \"\\x00\\x00\" + // fstype (0 to let the font loads via font-face on IE)\n \"\\x02\\x8A\" + // ySubscriptXSize\n \"\\x02\\xBB\" + // ySubscriptYSize\n \"\\x00\\x00\" + // ySubscriptXOffset\n \"\\x00\\x8C\" + // ySubscriptYOffset\n \"\\x02\\x8A\" + // ySuperScriptXSize\n \"\\x02\\xBB\" + // ySuperScriptYSize\n \"\\x00\\x00\" + // ySuperScriptXOffset\n \"\\x01\\xDF\" + // ySuperScriptYOffset\n \"\\x00\\x31\" + // yStrikeOutSize\n \"\\x01\\x02\" + // yStrikeOutPosition\n \"\\x00\\x00\" + // sFamilyClass\n \"\\x00\\x00\\x06\" +\n String.fromCharCode(properties.fixedPitch ? 0x09 : 0x00) +\n \"\\x00\\x00\\x00\\x00\\x00\\x00\" + // Panose\n string32(ulUnicodeRange1) + // ulUnicodeRange1 (Bits 0-31)\n string32(ulUnicodeRange2) + // ulUnicodeRange2 (Bits 32-63)\n string32(ulUnicodeRange3) + // ulUnicodeRange3 (Bits 64-95)\n string32(ulUnicodeRange4) + // ulUnicodeRange4 (Bits 96-127)\n \"\\x2A\\x32\\x31\\x2A\" + // achVendID\n string16(properties.italicAngle ? 1 : 0) + // fsSelection\n string16(firstCharIndex || properties.firstChar) + // usFirstCharIndex\n string16(lastCharIndex || properties.lastChar) + // usLastCharIndex\n string16(typoAscent) + // sTypoAscender\n string16(typoDescent) + // sTypoDescender\n \"\\x00\\x64\" + // sTypoLineGap (7%-10% of the unitsPerEM value)\n string16(winAscent) + // usWinAscent\n string16(winDescent) + // usWinDescent\n \"\\x00\\x00\\x00\\x00\" + // ulCodePageRange1 (Bits 0-31)\n \"\\x00\\x00\\x00\\x00\" + // ulCodePageRange2 (Bits 32-63)\n string16(properties.xHeight) + // sxHeight\n string16(properties.capHeight) + // sCapHeight\n string16(0) + // usDefaultChar\n string16(firstCharIndex || properties.firstChar) + // usBreakChar\n \"\\x00\\x03\"\n ); // usMaxContext\n}\n\nfunction createPostTable(properties) {\n const angle = Math.floor(properties.italicAngle * 2 ** 16);\n return (\n \"\\x00\\x03\\x00\\x00\" + // Version number\n string32(angle) + // italicAngle\n \"\\x00\\x00\" + // underlinePosition\n \"\\x00\\x00\" + // underlineThickness\n string32(properties.fixedPitch ? 1 : 0) + // isFixedPitch\n \"\\x00\\x00\\x00\\x00\" + // minMemType42\n \"\\x00\\x00\\x00\\x00\" + // maxMemType42\n \"\\x00\\x00\\x00\\x00\" + // minMemType1\n \"\\x00\\x00\\x00\\x00\"\n ); // maxMemType1\n}\n\nfunction createPostscriptName(name) {\n // See https://docs.microsoft.com/en-us/typography/opentype/spec/recom#name.\n return name.replace(/[^\\x21-\\x7E]|[[\\](){}<>/%]/g, \"\").slice(0, 63);\n}\n\nfunction createNameTable(name, proto) {\n if (!proto) {\n proto = [[], []]; // no strings and unicode strings\n }\n\n const strings = [\n proto[0][0] || \"Original licence\", // 0.Copyright\n proto[0][1] || name, // 1.Font family\n proto[0][2] || \"Unknown\", // 2.Font subfamily (font weight)\n proto[0][3] || \"uniqueID\", // 3.Unique ID\n proto[0][4] || name, // 4.Full font name\n proto[0][5] || \"Version 0.11\", // 5.Version\n proto[0][6] || createPostscriptName(name), // 6.Postscript name\n proto[0][7] || \"Unknown\", // 7.Trademark\n proto[0][8] || \"Unknown\", // 8.Manufacturer\n proto[0][9] || \"Unknown\", // 9.Designer\n ];\n\n // Mac want 1-byte per character strings while Windows want\n // 2-bytes per character, so duplicate the names table\n const stringsUnicode = [];\n let i, ii, j, jj, str;\n for (i = 0, ii = strings.length; i < ii; i++) {\n str = proto[1][i] || strings[i];\n\n const strBufUnicode = [];\n for (j = 0, jj = str.length; j < jj; j++) {\n strBufUnicode.push(string16(str.charCodeAt(j)));\n }\n stringsUnicode.push(strBufUnicode.join(\"\"));\n }\n\n const names = [strings, stringsUnicode];\n const platforms = [\"\\x00\\x01\", \"\\x00\\x03\"];\n const encodings = [\"\\x00\\x00\", \"\\x00\\x01\"];\n const languages = [\"\\x00\\x00\", \"\\x04\\x09\"];\n\n const namesRecordCount = strings.length * platforms.length;\n let nameTable =\n \"\\x00\\x00\" + // format\n string16(namesRecordCount) + // Number of names Record\n string16(namesRecordCount * 12 + 6); // Storage\n\n // Build the name records field\n let strOffset = 0;\n for (i = 0, ii = platforms.length; i < ii; i++) {\n const strs = names[i];\n for (j = 0, jj = strs.length; j < jj; j++) {\n str = strs[j];\n const nameRecord =\n platforms[i] + // platform ID\n encodings[i] + // encoding ID\n languages[i] + // language ID\n string16(j) + // name ID\n string16(str.length) +\n string16(strOffset);\n nameTable += nameRecord;\n strOffset += str.length;\n }\n }\n\n nameTable += strings.join(\"\") + stringsUnicode.join(\"\");\n return nameTable;\n}\n\n/**\n * 'Font' is the class the outside world should use, it encapsulate all the font\n * decoding logics whatever type it is (assuming the font type is supported).\n */\nclass Font {\n constructor(name, file, properties) {\n this.name = name;\n this.psName = null;\n this.mimetype = null;\n this.disableFontFace = false;\n\n this.loadedName = properties.loadedName;\n this.isType3Font = properties.isType3Font;\n this.missingFile = false;\n this.cssFontInfo = properties.cssFontInfo;\n\n this._charsCache = Object.create(null);\n this._glyphCache = Object.create(null);\n\n let isSerifFont = !!(properties.flags & FontFlags.Serif);\n // Fallback to checking the font name, in order to improve text-selection,\n // since the /Flags-entry is often wrong (fixes issue13845.pdf).\n if (!isSerifFont && !properties.isSimulatedFlags) {\n const baseName = name.replace(/[,_]/g, \"-\").split(\"-\")[0],\n serifFonts = getSerifFonts();\n for (const namePart of baseName.split(\"+\")) {\n if (serifFonts[namePart]) {\n isSerifFont = true;\n break;\n }\n }\n }\n this.isSerifFont = isSerifFont;\n\n this.isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n this.isMonospace = !!(properties.flags & FontFlags.FixedPitch);\n\n let type = properties.type;\n let subtype = properties.subtype;\n this.type = type;\n this.subtype = subtype;\n\n let fallbackName = \"sans-serif\";\n if (this.isMonospace) {\n fallbackName = \"monospace\";\n } else if (this.isSerifFont) {\n fallbackName = \"serif\";\n }\n this.fallbackName = fallbackName;\n\n this.differences = properties.differences;\n this.widths = properties.widths;\n this.defaultWidth = properties.defaultWidth;\n this.composite = properties.composite;\n this.cMap = properties.cMap;\n this.capHeight = properties.capHeight / PDF_GLYPH_SPACE_UNITS;\n this.ascent = properties.ascent / PDF_GLYPH_SPACE_UNITS;\n this.descent = properties.descent / PDF_GLYPH_SPACE_UNITS;\n this.lineHeight = this.ascent - this.descent;\n this.fontMatrix = properties.fontMatrix;\n this.bbox = properties.bbox;\n this.defaultEncoding = properties.defaultEncoding;\n\n this.toUnicode = properties.toUnicode;\n this.toFontChar = [];\n\n if (properties.type === \"Type3\") {\n for (let charCode = 0; charCode < 256; charCode++) {\n this.toFontChar[charCode] =\n this.differences[charCode] || properties.defaultEncoding[charCode];\n }\n this.fontType = FontType.TYPE3;\n return;\n }\n\n this.cidEncoding = properties.cidEncoding || \"\";\n this.vertical = !!properties.vertical;\n if (this.vertical) {\n this.vmetrics = properties.vmetrics;\n this.defaultVMetrics = properties.defaultVMetrics;\n }\n\n if (!file || file.isEmpty) {\n if (file) {\n // Some bad PDF generators will include empty font files,\n // attempting to recover by assuming that no file exists.\n warn('Font file is empty in \"' + name + '\" (' + this.loadedName + \")\");\n }\n this.fallbackToSystemFont(properties);\n return;\n }\n\n // Parse the font file to determine the correct type/subtype, rather than\n // relying on the (often incorrect) data in the font dictionary; (see e.g.\n // issue6782.pdf, issue7598.pdf, and issue9949.pdf).\n [type, subtype] = getFontFileType(file, properties);\n\n if (type !== this.type || subtype !== this.subtype) {\n info(\n \"Inconsistent font file Type/SubType, expected: \" +\n `${this.type}/${this.subtype} but found: ${type}/${subtype}.`\n );\n }\n\n let data;\n try {\n switch (type) {\n case \"MMType1\":\n info(\"MMType1 font (\" + name + \"), falling back to Type1.\");\n /* falls through */\n case \"Type1\":\n case \"CIDFontType0\":\n this.mimetype = \"font/opentype\";\n\n const cff =\n subtype === \"Type1C\" || subtype === \"CIDFontType0C\"\n ? new CFFFont(file, properties)\n : new Type1Font(name, file, properties);\n\n adjustWidths(properties);\n\n // Wrap the CFF data inside an OTF font file\n data = this.convert(name, cff, properties);\n break;\n\n case \"OpenType\":\n case \"TrueType\":\n case \"CIDFontType2\":\n this.mimetype = \"font/opentype\";\n\n // Repair the TrueType file. It is can be damaged in the point of\n // view of the sanitizer\n data = this.checkAndRepair(name, file, properties);\n if (this.isOpenType) {\n adjustWidths(properties);\n\n type = \"OpenType\";\n }\n break;\n\n default:\n throw new FormatError(`Font ${type} is not supported`);\n }\n } catch (e) {\n warn(e);\n this.fallbackToSystemFont(properties);\n return;\n }\n\n amendFallbackToUnicode(properties);\n this.data = data;\n this.fontType = getFontType(type, subtype, properties.isStandardFont);\n\n // Transfer some properties again that could change during font conversion\n this.fontMatrix = properties.fontMatrix;\n this.widths = properties.widths;\n this.defaultWidth = properties.defaultWidth;\n this.toUnicode = properties.toUnicode;\n this.seacMap = properties.seacMap;\n }\n\n get renderer() {\n const renderer = FontRendererFactory.create(this, SEAC_ANALYSIS_ENABLED);\n return shadow(this, \"renderer\", renderer);\n }\n\n exportData(extraProperties = false) {\n const exportDataProperties = extraProperties\n ? [...EXPORT_DATA_PROPERTIES, ...EXPORT_DATA_EXTRA_PROPERTIES]\n : EXPORT_DATA_PROPERTIES;\n\n const data = Object.create(null);\n let property, value;\n for (property of exportDataProperties) {\n value = this[property];\n // Ignore properties that haven't been explicitly set.\n if (value !== undefined) {\n data[property] = value;\n }\n }\n return data;\n }\n\n fallbackToSystemFont(properties) {\n this.missingFile = true;\n // The file data is not specified. Trying to fix the font name\n // to be used with the canvas.font.\n const name = this.name;\n const type = this.type;\n const subtype = this.subtype;\n let fontName = normalizeFontName(name);\n const stdFontMap = getStdFontMap(),\n nonStdFontMap = getNonStdFontMap();\n const isStandardFont = !!stdFontMap[fontName];\n const isMappedToStandardFont = !!(\n nonStdFontMap[fontName] && stdFontMap[nonStdFontMap[fontName]]\n );\n\n fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName;\n\n const fontBasicMetricsMap = getFontBasicMetrics();\n const metrics = fontBasicMetricsMap[fontName];\n if (metrics) {\n if (isNaN(this.ascent)) {\n this.ascent = metrics.ascent / PDF_GLYPH_SPACE_UNITS;\n }\n if (isNaN(this.descent)) {\n this.descent = metrics.descent / PDF_GLYPH_SPACE_UNITS;\n }\n if (isNaN(this.capHeight)) {\n this.capHeight = metrics.capHeight / PDF_GLYPH_SPACE_UNITS;\n }\n }\n\n this.bold = fontName.search(/bold/gi) !== -1;\n this.italic =\n fontName.search(/oblique/gi) !== -1 || fontName.search(/italic/gi) !== -1;\n\n // Use 'name' instead of 'fontName' here because the original\n // name ArialBlack for example will be replaced by Helvetica.\n this.black = name.search(/Black/g) !== -1;\n\n // Use 'name' instead of 'fontName' here because the original\n // name ArialNarrow for example will be replaced by Helvetica.\n const isNarrow = name.search(/Narrow/g) !== -1;\n\n // if at least one width is present, remeasure all chars when exists\n this.remeasure =\n (!isStandardFont || isNarrow) && Object.keys(this.widths).length > 0;\n if (\n (isStandardFont || isMappedToStandardFont) &&\n type === \"CIDFontType2\" &&\n this.cidEncoding.startsWith(\"Identity-\")\n ) {\n const cidToGidMap = properties.cidToGidMap;\n // Standard fonts might be embedded as CID font without glyph mapping.\n // Building one based on GlyphMapForStandardFonts.\n const map = [];\n applyStandardFontGlyphMap(map, getGlyphMapForStandardFonts());\n\n if (/Arial-?Black/i.test(name)) {\n applyStandardFontGlyphMap(map, getSupplementalGlyphMapForArialBlack());\n } else if (/Calibri/i.test(name)) {\n applyStandardFontGlyphMap(map, getSupplementalGlyphMapForCalibri());\n }\n\n // Always update the glyph mapping with the `cidToGidMap` when it exists\n // (fixes issue12418_reduced.pdf).\n if (cidToGidMap) {\n for (const charCode in map) {\n const cid = map[charCode];\n if (cidToGidMap[cid] !== undefined) {\n map[+charCode] = cidToGidMap[cid];\n }\n }\n // When the /CIDToGIDMap is \"incomplete\", fallback to the included\n // /ToUnicode-map regardless of its encoding (fixes issue11915.pdf).\n if (\n cidToGidMap.length !== this.toUnicode.length &&\n properties.hasIncludedToUnicodeMap &&\n this.toUnicode instanceof IdentityToUnicodeMap\n ) {\n this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n const cid = map[charCode];\n if (cidToGidMap[cid] === undefined) {\n map[+charCode] = unicodeCharCode;\n }\n });\n }\n }\n\n if (!(this.toUnicode instanceof IdentityToUnicodeMap)) {\n this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n map[+charCode] = unicodeCharCode;\n });\n }\n this.toFontChar = map;\n this.toUnicode = new ToUnicodeMap(map);\n } else if (/Symbol/i.test(fontName)) {\n this.toFontChar = buildToFontChar(\n SymbolSetEncoding,\n getGlyphsUnicode(),\n this.differences\n );\n } else if (/Dingbats/i.test(fontName)) {\n if (/Wingdings/i.test(name)) {\n warn(\"Non-embedded Wingdings font, falling back to ZapfDingbats.\");\n }\n this.toFontChar = buildToFontChar(\n ZapfDingbatsEncoding,\n getDingbatsGlyphsUnicode(),\n this.differences\n );\n } else if (isStandardFont) {\n const map = buildToFontChar(\n this.defaultEncoding,\n getGlyphsUnicode(),\n this.differences\n );\n\n if (\n type === \"CIDFontType2\" &&\n !this.cidEncoding.startsWith(\"Identity-\") &&\n !(this.toUnicode instanceof IdentityToUnicodeMap)\n ) {\n this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n map[+charCode] = unicodeCharCode;\n });\n }\n this.toFontChar = map;\n } else {\n const glyphsUnicodeMap = getGlyphsUnicode();\n const map = [];\n this.toUnicode.forEach((charCode, unicodeCharCode) => {\n if (!this.composite) {\n const glyphName =\n this.differences[charCode] || this.defaultEncoding[charCode];\n const unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap);\n if (unicode !== -1) {\n unicodeCharCode = unicode;\n }\n }\n map[+charCode] = unicodeCharCode;\n });\n\n // Attempt to improve the glyph mapping for (some) composite fonts that\n // appear to lack meaningful ToUnicode data.\n if (this.composite && this.toUnicode instanceof IdentityToUnicodeMap) {\n if (/Verdana/i.test(name)) {\n // Fixes issue11242_reduced.pdf\n applyStandardFontGlyphMap(map, getGlyphMapForStandardFonts());\n }\n }\n this.toFontChar = map;\n }\n\n amendFallbackToUnicode(properties);\n this.loadedName = fontName.split(\"-\")[0];\n this.fontType = getFontType(type, subtype, properties.isStandardFont);\n }\n\n checkAndRepair(name, font, properties) {\n const VALID_TABLES = [\n \"OS/2\",\n \"cmap\",\n \"head\",\n \"hhea\",\n \"hmtx\",\n \"maxp\",\n \"name\",\n \"post\",\n \"loca\",\n \"glyf\",\n \"fpgm\",\n \"prep\",\n \"cvt \",\n \"CFF \",\n ];\n\n function readTables(file, numTables) {\n const tables = Object.create(null);\n tables[\"OS/2\"] = null;\n tables.cmap = null;\n tables.head = null;\n tables.hhea = null;\n tables.hmtx = null;\n tables.maxp = null;\n tables.name = null;\n tables.post = null;\n\n for (let i = 0; i < numTables; i++) {\n const table = readTableEntry(file);\n if (!VALID_TABLES.includes(table.tag)) {\n continue; // skipping table if it's not a required or optional table\n }\n if (table.length === 0) {\n continue; // skipping empty tables\n }\n tables[table.tag] = table;\n }\n return tables;\n }\n\n function readTableEntry(file) {\n const tag = file.getString(4);\n\n const checksum = file.getInt32() >>> 0;\n const offset = file.getInt32() >>> 0;\n const length = file.getInt32() >>> 0;\n\n // Read the table associated data\n const previousPosition = file.pos;\n file.pos = file.start ? file.start : 0;\n file.skip(offset);\n const data = file.getBytes(length);\n file.pos = previousPosition;\n\n if (tag === \"head\") {\n // clearing checksum adjustment\n data[8] = data[9] = data[10] = data[11] = 0;\n data[17] |= 0x20; // Set font optimized for cleartype flag.\n }\n\n return {\n tag,\n checksum,\n length,\n offset,\n data,\n };\n }\n\n function readOpenTypeHeader(ttf) {\n return {\n version: ttf.getString(4),\n numTables: ttf.getUint16(),\n searchRange: ttf.getUint16(),\n entrySelector: ttf.getUint16(),\n rangeShift: ttf.getUint16(),\n };\n }\n\n function readTrueTypeCollectionHeader(ttc) {\n const ttcTag = ttc.getString(4);\n assert(ttcTag === \"ttcf\", \"Must be a TrueType Collection font.\");\n\n const majorVersion = ttc.getUint16();\n const minorVersion = ttc.getUint16();\n const numFonts = ttc.getInt32() >>> 0;\n const offsetTable = [];\n for (let i = 0; i < numFonts; i++) {\n offsetTable.push(ttc.getInt32() >>> 0);\n }\n\n const header = {\n ttcTag,\n majorVersion,\n minorVersion,\n numFonts,\n offsetTable,\n };\n switch (majorVersion) {\n case 1:\n return header;\n case 2:\n header.dsigTag = ttc.getInt32() >>> 0;\n header.dsigLength = ttc.getInt32() >>> 0;\n header.dsigOffset = ttc.getInt32() >>> 0;\n return header;\n }\n throw new FormatError(\n `Invalid TrueType Collection majorVersion: ${majorVersion}.`\n );\n }\n\n function readTrueTypeCollectionData(ttc, fontName) {\n const { numFonts, offsetTable } = readTrueTypeCollectionHeader(ttc);\n const fontNameParts = fontName.split(\"+\");\n let fallbackData;\n\n for (let i = 0; i < numFonts; i++) {\n ttc.pos = (ttc.start || 0) + offsetTable[i];\n const potentialHeader = readOpenTypeHeader(ttc);\n const potentialTables = readTables(ttc, potentialHeader.numTables);\n\n if (!potentialTables.name) {\n throw new FormatError(\n 'TrueType Collection font must contain a \"name\" table.'\n );\n }\n const nameTable = readNameTable(potentialTables.name);\n\n for (let j = 0, jj = nameTable.length; j < jj; j++) {\n for (let k = 0, kk = nameTable[j].length; k < kk; k++) {\n const nameEntry =\n nameTable[j][k] && nameTable[j][k].replace(/\\s/g, \"\");\n if (!nameEntry) {\n continue;\n }\n if (nameEntry === fontName) {\n return {\n header: potentialHeader,\n tables: potentialTables,\n };\n }\n if (fontNameParts.length < 2) {\n continue;\n }\n for (const part of fontNameParts) {\n if (nameEntry === part) {\n fallbackData = {\n name: part,\n header: potentialHeader,\n tables: potentialTables,\n };\n }\n }\n }\n }\n }\n if (fallbackData) {\n warn(\n `TrueType Collection does not contain \"${fontName}\" font, ` +\n `falling back to \"${fallbackData.name}\" font instead.`\n );\n return {\n header: fallbackData.header,\n tables: fallbackData.tables,\n };\n }\n throw new FormatError(\n `TrueType Collection does not contain \"${fontName}\" font.`\n );\n }\n\n /**\n * Read the appropriate subtable from the cmap according to 9.6.6.4 from\n * PDF spec\n */\n function readCmapTable(cmap, file, isSymbolicFont, hasEncoding) {\n if (!cmap) {\n warn(\"No cmap table available.\");\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false,\n };\n }\n let segment;\n let start = (file.start ? file.start : 0) + cmap.offset;\n file.pos = start;\n\n file.skip(2); // version\n const numTables = file.getUint16();\n\n let potentialTable;\n let canBreak = false;\n // There's an order of preference in terms of which cmap subtable to\n // use:\n // - non-symbolic fonts the preference is a 3,1 table then a 1,0 table\n // - symbolic fonts the preference is a 3,0 table then a 1,0 table\n // The following takes advantage of the fact that the tables are sorted\n // to work.\n for (let i = 0; i < numTables; i++) {\n const platformId = file.getUint16();\n const encodingId = file.getUint16();\n const offset = file.getInt32() >>> 0;\n let useTable = false;\n\n // Sometimes there are multiple of the same type of table. Default\n // to choosing the first table and skip the rest.\n if (\n potentialTable &&\n potentialTable.platformId === platformId &&\n potentialTable.encodingId === encodingId\n ) {\n continue;\n }\n\n if (\n platformId === 0 &&\n (encodingId === /* Unicode Default */ 0 ||\n encodingId === /* Unicode 1.1 */ 1 ||\n encodingId === /* Unicode BMP */ 3)\n ) {\n useTable = true;\n // Continue the loop since there still may be a higher priority\n // table.\n } else if (platformId === 1 && encodingId === 0) {\n useTable = true;\n // Continue the loop since there still may be a higher priority\n // table.\n } else if (\n platformId === 3 &&\n encodingId === 1 &&\n (hasEncoding || !potentialTable)\n ) {\n useTable = true;\n if (!isSymbolicFont) {\n canBreak = true;\n }\n } else if (isSymbolicFont && platformId === 3 && encodingId === 0) {\n useTable = true;\n\n let correctlySorted = true;\n if (i < numTables - 1) {\n const nextBytes = file.peekBytes(2),\n nextPlatformId = int16(nextBytes[0], nextBytes[1]);\n if (nextPlatformId < platformId) {\n correctlySorted = false;\n }\n }\n if (correctlySorted) {\n canBreak = true;\n }\n }\n\n if (useTable) {\n potentialTable = {\n platformId,\n encodingId,\n offset,\n };\n }\n if (canBreak) {\n break;\n }\n }\n\n if (potentialTable) {\n file.pos = start + potentialTable.offset;\n }\n if (!potentialTable || file.peekByte() === -1) {\n warn(\"Could not find a preferred cmap table.\");\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false,\n };\n }\n\n const format = file.getUint16();\n let hasShortCmap = false;\n const mappings = [];\n let j, glyphId;\n\n // TODO(mack): refactor this cmap subtable reading logic out\n if (format === 0) {\n file.skip(2 + 2); // length + language\n\n for (j = 0; j < 256; j++) {\n const index = file.getByte();\n if (!index) {\n continue;\n }\n mappings.push({\n charCode: j,\n glyphId: index,\n });\n }\n hasShortCmap = true;\n } else if (format === 2) {\n file.skip(2 + 2); // length + language\n\n const subHeaderKeys = [];\n let maxSubHeaderKey = 0;\n // Read subHeaderKeys. If subHeaderKeys[i] === 0, then i is a\n // single-byte character. Otherwise, i is the first byte of a\n // multi-byte character, and the value is 8*index into\n // subHeaders.\n for (let i = 0; i < 256; i++) {\n const subHeaderKey = file.getUint16() >> 3;\n subHeaderKeys.push(subHeaderKey);\n maxSubHeaderKey = Math.max(subHeaderKey, maxSubHeaderKey);\n }\n // Read subHeaders. The number of entries is determined\n // dynamically based on the subHeaderKeys found above.\n const subHeaders = [];\n for (let i = 0; i <= maxSubHeaderKey; i++) {\n subHeaders.push({\n firstCode: file.getUint16(),\n entryCount: file.getUint16(),\n idDelta: signedInt16(file.getByte(), file.getByte()),\n idRangePos: file.pos + file.getUint16(),\n });\n }\n for (let i = 0; i < 256; i++) {\n if (subHeaderKeys[i] === 0) {\n // i is a single-byte code.\n file.pos = subHeaders[0].idRangePos + 2 * i;\n glyphId = file.getUint16();\n mappings.push({\n charCode: i,\n glyphId,\n });\n } else {\n // i is the first byte of a two-byte code.\n const s = subHeaders[subHeaderKeys[i]];\n for (j = 0; j < s.entryCount; j++) {\n const charCode = (i << 8) + j + s.firstCode;\n file.pos = s.idRangePos + 2 * j;\n glyphId = file.getUint16();\n if (glyphId !== 0) {\n glyphId = (glyphId + s.idDelta) % 65536;\n }\n mappings.push({\n charCode,\n glyphId,\n });\n }\n }\n }\n } else if (format === 4) {\n file.skip(2 + 2); // length + language\n\n // re-creating the table in format 4 since the encoding\n // might be changed\n const segCount = file.getUint16() >> 1;\n file.skip(6); // skipping range fields\n const segments = [];\n let segIndex;\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments.push({ end: file.getUint16() });\n }\n file.skip(2);\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments[segIndex].start = file.getUint16();\n }\n\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments[segIndex].delta = file.getUint16();\n }\n\n let offsetsCount = 0,\n offsetIndex;\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segment = segments[segIndex];\n const rangeOffset = file.getUint16();\n if (!rangeOffset) {\n segment.offsetIndex = -1;\n continue;\n }\n\n offsetIndex = (rangeOffset >> 1) - (segCount - segIndex);\n segment.offsetIndex = offsetIndex;\n offsetsCount = Math.max(\n offsetsCount,\n offsetIndex + segment.end - segment.start + 1\n );\n }\n\n const offsets = [];\n for (j = 0; j < offsetsCount; j++) {\n offsets.push(file.getUint16());\n }\n\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segment = segments[segIndex];\n start = segment.start;\n const end = segment.end;\n const delta = segment.delta;\n offsetIndex = segment.offsetIndex;\n\n for (j = start; j <= end; j++) {\n if (j === 0xffff) {\n continue;\n }\n\n glyphId = offsetIndex < 0 ? j : offsets[offsetIndex + j - start];\n glyphId = (glyphId + delta) & 0xffff;\n mappings.push({\n charCode: j,\n glyphId,\n });\n }\n }\n } else if (format === 6) {\n file.skip(2 + 2); // length + language\n\n // Format 6 is a 2-bytes dense mapping, which means the font data\n // lives glue together even if they are pretty far in the unicode\n // table. (This looks weird, so I can have missed something), this\n // works on Linux but seems to fails on Mac so let's rewrite the\n // cmap table to a 3-1-4 style\n const firstCode = file.getUint16();\n const entryCount = file.getUint16();\n\n for (j = 0; j < entryCount; j++) {\n glyphId = file.getUint16();\n const charCode = firstCode + j;\n\n mappings.push({\n charCode,\n glyphId,\n });\n }\n } else if (format === 12) {\n file.skip(2 + 4 + 4); // reserved + length + language\n\n const nGroups = file.getInt32() >>> 0;\n for (j = 0; j < nGroups; j++) {\n const startCharCode = file.getInt32() >>> 0;\n const endCharCode = file.getInt32() >>> 0;\n let glyphCode = file.getInt32() >>> 0;\n\n for (\n let charCode = startCharCode;\n charCode <= endCharCode;\n charCode++\n ) {\n mappings.push({\n charCode,\n glyphId: glyphCode++,\n });\n }\n }\n } else {\n warn(\"cmap table has unsupported format: \" + format);\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false,\n };\n }\n\n // removing duplicate entries\n mappings.sort(function (a, b) {\n return a.charCode - b.charCode;\n });\n for (let i = 1; i < mappings.length; i++) {\n if (mappings[i - 1].charCode === mappings[i].charCode) {\n mappings.splice(i, 1);\n i--;\n }\n }\n\n return {\n platformId: potentialTable.platformId,\n encodingId: potentialTable.encodingId,\n mappings,\n hasShortCmap,\n };\n }\n\n function sanitizeMetrics(\n file,\n header,\n metrics,\n headTable,\n numGlyphs,\n dupFirstEntry\n ) {\n if (!header) {\n if (metrics) {\n metrics.data = null;\n }\n return;\n }\n\n file.pos = (file.start ? file.start : 0) + header.offset;\n file.pos += 4; // version\n file.pos += 2; // ascent\n file.pos += 2; // descent\n file.pos += 2; // linegap\n file.pos += 2; // adv_width_max\n file.pos += 2; // min_sb1\n file.pos += 2; // min_sb2\n file.pos += 2; // max_extent\n file.pos += 2; // caret_slope_rise\n file.pos += 2; // caret_slope_run\n const caretOffset = file.getUint16();\n file.pos += 8; // reserved\n file.pos += 2; // format\n let numOfMetrics = file.getUint16();\n\n if (caretOffset !== 0) {\n const macStyle = int16(headTable.data[44], headTable.data[45]);\n if (!(macStyle & 2)) {\n // Suppress OTS warnings about the `caretOffset` in the hhea-table.\n header.data[22] = 0;\n header.data[23] = 0;\n }\n }\n\n if (numOfMetrics > numGlyphs) {\n info(\n `The numOfMetrics (${numOfMetrics}) should not be ` +\n `greater than the numGlyphs (${numGlyphs}).`\n );\n // Reduce numOfMetrics if it is greater than numGlyphs\n numOfMetrics = numGlyphs;\n header.data[34] = (numOfMetrics & 0xff00) >> 8;\n header.data[35] = numOfMetrics & 0x00ff;\n }\n\n const numOfSidebearings = numGlyphs - numOfMetrics;\n const numMissing =\n numOfSidebearings - ((metrics.length - numOfMetrics * 4) >> 1);\n\n if (numMissing > 0) {\n // For each missing glyph, we set both the width and lsb to 0 (zero).\n // Since we need to add two properties for each glyph, this explains\n // the use of |numMissing * 2| when initializing the typed array.\n const entries = new Uint8Array(metrics.length + numMissing * 2);\n entries.set(metrics.data);\n if (dupFirstEntry) {\n // Set the sidebearing value of the duplicated glyph.\n entries[metrics.length] = metrics.data[2];\n entries[metrics.length + 1] = metrics.data[3];\n }\n metrics.data = entries;\n }\n }\n\n function sanitizeGlyph(\n source,\n sourceStart,\n sourceEnd,\n dest,\n destStart,\n hintsValid\n ) {\n const glyphProfile = {\n length: 0,\n sizeOfInstructions: 0,\n };\n if (sourceEnd - sourceStart <= 12) {\n // glyph with data less than 12 is invalid one\n return glyphProfile;\n }\n const glyf = source.subarray(sourceStart, sourceEnd);\n let contoursCount = signedInt16(glyf[0], glyf[1]);\n if (contoursCount < 0) {\n // OTS doesn't like contour count to be less than -1.\n contoursCount = -1;\n writeSignedInt16(glyf, 0, contoursCount);\n // complex glyph, writing as is\n dest.set(glyf, destStart);\n glyphProfile.length = glyf.length;\n return glyphProfile;\n }\n\n let i,\n j = 10,\n flagsCount = 0;\n for (i = 0; i < contoursCount; i++) {\n const endPoint = (glyf[j] << 8) | glyf[j + 1];\n flagsCount = endPoint + 1;\n j += 2;\n }\n // skipping instructions\n const instructionsStart = j;\n const instructionsLength = (glyf[j] << 8) | glyf[j + 1];\n glyphProfile.sizeOfInstructions = instructionsLength;\n j += 2 + instructionsLength;\n const instructionsEnd = j;\n // validating flags\n let coordinatesLength = 0;\n for (i = 0; i < flagsCount; i++) {\n const flag = glyf[j++];\n if (flag & 0xc0) {\n // reserved flags must be zero, cleaning up\n glyf[j - 1] = flag & 0x3f;\n }\n let xLength = 2;\n if (flag & 2) {\n xLength = 1;\n } else if (flag & 16) {\n xLength = 0;\n }\n let yLength = 2;\n if (flag & 4) {\n yLength = 1;\n } else if (flag & 32) {\n yLength = 0;\n }\n const xyLength = xLength + yLength;\n coordinatesLength += xyLength;\n if (flag & 8) {\n const repeat = glyf[j++];\n i += repeat;\n coordinatesLength += repeat * xyLength;\n }\n }\n // glyph without coordinates will be rejected\n if (coordinatesLength === 0) {\n return glyphProfile;\n }\n let glyphDataLength = j + coordinatesLength;\n if (glyphDataLength > glyf.length) {\n // not enough data for coordinates\n return glyphProfile;\n }\n if (!hintsValid && instructionsLength > 0) {\n dest.set(glyf.subarray(0, instructionsStart), destStart);\n dest.set([0, 0], destStart + instructionsStart);\n dest.set(\n glyf.subarray(instructionsEnd, glyphDataLength),\n destStart + instructionsStart + 2\n );\n glyphDataLength -= instructionsLength;\n if (glyf.length - glyphDataLength > 3) {\n glyphDataLength = (glyphDataLength + 3) & ~3;\n }\n glyphProfile.length = glyphDataLength;\n return glyphProfile;\n }\n if (glyf.length - glyphDataLength > 3) {\n // truncating and aligning to 4 bytes the long glyph data\n glyphDataLength = (glyphDataLength + 3) & ~3;\n dest.set(glyf.subarray(0, glyphDataLength), destStart);\n glyphProfile.length = glyphDataLength;\n return glyphProfile;\n }\n // glyph data is fine\n dest.set(glyf, destStart);\n glyphProfile.length = glyf.length;\n return glyphProfile;\n }\n\n function sanitizeHead(head, numGlyphs, locaLength) {\n const data = head.data;\n\n // Validate version:\n // Should always be 0x00010000\n const version = int32(data[0], data[1], data[2], data[3]);\n if (version >> 16 !== 1) {\n info(\"Attempting to fix invalid version in head table: \" + version);\n data[0] = 0;\n data[1] = 1;\n data[2] = 0;\n data[3] = 0;\n }\n\n const indexToLocFormat = int16(data[50], data[51]);\n if (indexToLocFormat < 0 || indexToLocFormat > 1) {\n info(\n \"Attempting to fix invalid indexToLocFormat in head table: \" +\n indexToLocFormat\n );\n\n // The value of indexToLocFormat should be 0 if the loca table\n // consists of short offsets, and should be 1 if the loca table\n // consists of long offsets.\n //\n // The number of entries in the loca table should be numGlyphs + 1.\n //\n // Using this information, we can work backwards to deduce if the\n // size of each offset in the loca table, and thus figure out the\n // appropriate value for indexToLocFormat.\n\n const numGlyphsPlusOne = numGlyphs + 1;\n if (locaLength === numGlyphsPlusOne << 1) {\n // 0x0000 indicates the loca table consists of short offsets\n data[50] = 0;\n data[51] = 0;\n } else if (locaLength === numGlyphsPlusOne << 2) {\n // 0x0001 indicates the loca table consists of long offsets\n data[50] = 0;\n data[51] = 1;\n } else {\n throw new FormatError(\n \"Could not fix indexToLocFormat: \" + indexToLocFormat\n );\n }\n }\n }\n\n function sanitizeGlyphLocations(\n loca,\n glyf,\n numGlyphs,\n isGlyphLocationsLong,\n hintsValid,\n dupFirstEntry,\n maxSizeOfInstructions\n ) {\n let itemSize, itemDecode, itemEncode;\n if (isGlyphLocationsLong) {\n itemSize = 4;\n itemDecode = function fontItemDecodeLong(data, offset) {\n return (\n (data[offset] << 24) |\n (data[offset + 1] << 16) |\n (data[offset + 2] << 8) |\n data[offset + 3]\n );\n };\n itemEncode = function fontItemEncodeLong(data, offset, value) {\n data[offset] = (value >>> 24) & 0xff;\n data[offset + 1] = (value >> 16) & 0xff;\n data[offset + 2] = (value >> 8) & 0xff;\n data[offset + 3] = value & 0xff;\n };\n } else {\n itemSize = 2;\n itemDecode = function fontItemDecode(data, offset) {\n return (data[offset] << 9) | (data[offset + 1] << 1);\n };\n itemEncode = function fontItemEncode(data, offset, value) {\n data[offset] = (value >> 9) & 0xff;\n data[offset + 1] = (value >> 1) & 0xff;\n };\n }\n // The first glyph is duplicated.\n const numGlyphsOut = dupFirstEntry ? numGlyphs + 1 : numGlyphs;\n const locaDataSize = itemSize * (1 + numGlyphsOut);\n // Resize loca table to account for duplicated glyph.\n const locaData = new Uint8Array(locaDataSize);\n locaData.set(loca.data.subarray(0, locaDataSize));\n loca.data = locaData;\n // removing the invalid glyphs\n const oldGlyfData = glyf.data;\n const oldGlyfDataLength = oldGlyfData.length;\n const newGlyfData = new Uint8Array(oldGlyfDataLength);\n\n // The spec says the offsets should be in ascending order, however\n // this is not true for some fonts or they use the offset of 0 to mark a\n // glyph as missing. OTS requires the offsets to be in order and not to\n // be zero, so we must sort and rebuild the loca table and potentially\n // re-arrange the glyf data.\n let i, j;\n const locaEntries = [];\n // There are numGlyphs + 1 loca table entries.\n for (i = 0, j = 0; i < numGlyphs + 1; i++, j += itemSize) {\n let offset = itemDecode(locaData, j);\n if (offset > oldGlyfDataLength) {\n offset = oldGlyfDataLength;\n }\n locaEntries.push({\n index: i,\n offset,\n endOffset: 0,\n });\n }\n locaEntries.sort((a, b) => {\n return a.offset - b.offset;\n });\n // Now the offsets are sorted, calculate the end offset of each glyph.\n // The last loca entry's endOffset is not calculated since it's the end\n // of the data and will be stored on the previous entry's endOffset.\n for (i = 0; i < numGlyphs; i++) {\n locaEntries[i].endOffset = locaEntries[i + 1].offset;\n }\n // Re-sort so glyphs aren't out of order.\n locaEntries.sort((a, b) => {\n return a.index - b.index;\n });\n // Calculate the endOffset of the \"first\" glyph correctly when there are\n // *multiple* empty ones at the start of the data (fixes issue14618.pdf).\n for (i = 0; i < numGlyphs; i++) {\n const { offset, endOffset } = locaEntries[i];\n if (offset !== 0 || endOffset !== 0) {\n break;\n }\n const nextOffset = locaEntries[i + 1].offset;\n if (nextOffset === 0) {\n continue;\n }\n locaEntries[i].endOffset = nextOffset;\n break;\n }\n\n const missingGlyphs = Object.create(null);\n let writeOffset = 0;\n itemEncode(locaData, 0, writeOffset);\n for (i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) {\n const glyphProfile = sanitizeGlyph(\n oldGlyfData,\n locaEntries[i].offset,\n locaEntries[i].endOffset,\n newGlyfData,\n writeOffset,\n hintsValid\n );\n const newLength = glyphProfile.length;\n if (newLength === 0) {\n missingGlyphs[i] = true;\n }\n if (glyphProfile.sizeOfInstructions > maxSizeOfInstructions) {\n maxSizeOfInstructions = glyphProfile.sizeOfInstructions;\n }\n writeOffset += newLength;\n itemEncode(locaData, j, writeOffset);\n }\n\n if (writeOffset === 0) {\n // glyf table cannot be empty -- redoing the glyf and loca tables\n // to have single glyph with one point\n const simpleGlyph = new Uint8Array([\n 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0,\n ]);\n for (i = 0, j = itemSize; i < numGlyphsOut; i++, j += itemSize) {\n itemEncode(locaData, j, simpleGlyph.length);\n }\n glyf.data = simpleGlyph;\n } else if (dupFirstEntry) {\n // Browsers will not display a glyph at position 0. Typically glyph 0\n // is notdef, but a number of fonts put a valid glyph there so it must\n // be duplicated and appended.\n const firstEntryLength = itemDecode(locaData, itemSize);\n if (newGlyfData.length > firstEntryLength + writeOffset) {\n glyf.data = newGlyfData.subarray(0, firstEntryLength + writeOffset);\n } else {\n glyf.data = new Uint8Array(firstEntryLength + writeOffset);\n glyf.data.set(newGlyfData.subarray(0, writeOffset));\n }\n glyf.data.set(newGlyfData.subarray(0, firstEntryLength), writeOffset);\n itemEncode(\n loca.data,\n locaData.length - itemSize,\n writeOffset + firstEntryLength\n );\n } else {\n glyf.data = newGlyfData.subarray(0, writeOffset);\n }\n return {\n missingGlyphs,\n maxSizeOfInstructions,\n };\n }\n\n function readPostScriptTable(post, propertiesObj, maxpNumGlyphs) {\n const start = (font.start ? font.start : 0) + post.offset;\n font.pos = start;\n\n const length = post.length,\n end = start + length;\n const version = font.getInt32();\n // skip rest to the tables\n font.skip(28);\n\n let glyphNames;\n let valid = true;\n let i;\n\n switch (version) {\n case 0x00010000:\n glyphNames = MacStandardGlyphOrdering;\n break;\n case 0x00020000:\n const numGlyphs = font.getUint16();\n if (numGlyphs !== maxpNumGlyphs) {\n valid = false;\n break;\n }\n const glyphNameIndexes = [];\n for (i = 0; i < numGlyphs; ++i) {\n const index = font.getUint16();\n if (index >= 32768) {\n valid = false;\n break;\n }\n glyphNameIndexes.push(index);\n }\n if (!valid) {\n break;\n }\n const customNames = [],\n strBuf = [];\n while (font.pos < end) {\n const stringLength = font.getByte();\n strBuf.length = stringLength;\n for (i = 0; i < stringLength; ++i) {\n strBuf[i] = String.fromCharCode(font.getByte());\n }\n customNames.push(strBuf.join(\"\"));\n }\n glyphNames = [];\n for (i = 0; i < numGlyphs; ++i) {\n const j = glyphNameIndexes[i];\n if (j < 258) {\n glyphNames.push(MacStandardGlyphOrdering[j]);\n continue;\n }\n glyphNames.push(customNames[j - 258]);\n }\n break;\n case 0x00030000:\n break;\n default:\n warn(\"Unknown/unsupported post table version \" + version);\n valid = false;\n if (propertiesObj.defaultEncoding) {\n glyphNames = propertiesObj.defaultEncoding;\n }\n break;\n }\n propertiesObj.glyphNames = glyphNames;\n return valid;\n }\n\n function readNameTable(nameTable) {\n const start = (font.start ? font.start : 0) + nameTable.offset;\n font.pos = start;\n\n const names = [[], []];\n const length = nameTable.length,\n end = start + length;\n const format = font.getUint16();\n const FORMAT_0_HEADER_LENGTH = 6;\n if (format !== 0 || length < FORMAT_0_HEADER_LENGTH) {\n // unsupported name table format or table \"too\" small\n return names;\n }\n const numRecords = font.getUint16();\n const stringsStart = font.getUint16();\n const records = [];\n const NAME_RECORD_LENGTH = 12;\n let i, ii;\n\n for (i = 0; i < numRecords && font.pos + NAME_RECORD_LENGTH <= end; i++) {\n const r = {\n platform: font.getUint16(),\n encoding: font.getUint16(),\n language: font.getUint16(),\n name: font.getUint16(),\n length: font.getUint16(),\n offset: font.getUint16(),\n };\n // using only Macintosh and Windows platform/encoding names\n if (\n (r.platform === 1 && r.encoding === 0 && r.language === 0) ||\n (r.platform === 3 && r.encoding === 1 && r.language === 0x409)\n ) {\n records.push(r);\n }\n }\n for (i = 0, ii = records.length; i < ii; i++) {\n const record = records[i];\n if (record.length <= 0) {\n continue; // Nothing to process, ignoring.\n }\n const pos = start + stringsStart + record.offset;\n if (pos + record.length > end) {\n continue; // outside of name table, ignoring\n }\n font.pos = pos;\n const nameIndex = record.name;\n if (record.encoding) {\n // unicode\n let str = \"\";\n for (let j = 0, jj = record.length; j < jj; j += 2) {\n str += String.fromCharCode(font.getUint16());\n }\n names[1][nameIndex] = str;\n } else {\n names[0][nameIndex] = font.getString(record.length);\n }\n }\n return names;\n }\n\n // prettier-ignore\n const TTOpsStackDeltas = [\n 0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, 0, 0, -2, -5,\n -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1,\n 1, -1, -999, 0, 1, 0, -1, -2, 0, -1, -2, -1, -1, 0, -1, -1,\n 0, 0, -999, -999, -1, -1, -1, -1, -2, -999, -2, -2, -999, 0, -2, -2,\n 0, 0, -2, 0, -2, 0, 0, 0, -2, -1, -1, 1, 1, 0, 0, -1,\n -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, 0, -999, -1, -1,\n -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n -2, -999, -999, -999, -999, -999, -1, -1, -2, -2, 0, 0, 0, 0, -1, -1,\n -999, -2, -2, 0, 0, -1, -2, -2, 0, 0, 0, -1, -1, -1, -2];\n // 0xC0-DF == -1 and 0xE0-FF == -2\n\n function sanitizeTTProgram(table, ttContext) {\n let data = table.data;\n let i = 0,\n j,\n n,\n b,\n funcId,\n pc,\n lastEndf = 0,\n lastDeff = 0;\n const stack = [];\n const callstack = [];\n const functionsCalled = [];\n let tooComplexToFollowFunctions = ttContext.tooComplexToFollowFunctions;\n let inFDEF = false,\n ifLevel = 0,\n inELSE = 0;\n for (let ii = data.length; i < ii; ) {\n const op = data[i++];\n // The TrueType instruction set docs can be found at\n // https://developer.apple.com/fonts/TTRefMan/RM05/Chap5.html\n if (op === 0x40) {\n // NPUSHB - pushes n bytes\n n = data[i++];\n if (inFDEF || inELSE) {\n i += n;\n } else {\n for (j = 0; j < n; j++) {\n stack.push(data[i++]);\n }\n }\n } else if (op === 0x41) {\n // NPUSHW - pushes n words\n n = data[i++];\n if (inFDEF || inELSE) {\n i += n * 2;\n } else {\n for (j = 0; j < n; j++) {\n b = data[i++];\n stack.push((b << 8) | data[i++]);\n }\n }\n } else if ((op & 0xf8) === 0xb0) {\n // PUSHB - pushes bytes\n n = op - 0xb0 + 1;\n if (inFDEF || inELSE) {\n i += n;\n } else {\n for (j = 0; j < n; j++) {\n stack.push(data[i++]);\n }\n }\n } else if ((op & 0xf8) === 0xb8) {\n // PUSHW - pushes words\n n = op - 0xb8 + 1;\n if (inFDEF || inELSE) {\n i += n * 2;\n } else {\n for (j = 0; j < n; j++) {\n b = data[i++];\n stack.push((b << 8) | data[i++]);\n }\n }\n } else if (op === 0x2b && !tooComplexToFollowFunctions) {\n // CALL\n if (!inFDEF && !inELSE) {\n // collecting information about which functions are used\n funcId = stack[stack.length - 1];\n if (isNaN(funcId)) {\n info(\"TT: CALL empty stack (or invalid entry).\");\n } else {\n ttContext.functionsUsed[funcId] = true;\n if (funcId in ttContext.functionsStackDeltas) {\n const newStackLength =\n stack.length + ttContext.functionsStackDeltas[funcId];\n if (newStackLength < 0) {\n warn(\"TT: CALL invalid functions stack delta.\");\n ttContext.hintsValid = false;\n return;\n }\n stack.length = newStackLength;\n } else if (\n funcId in ttContext.functionsDefined &&\n !functionsCalled.includes(funcId)\n ) {\n callstack.push({ data, i, stackTop: stack.length - 1 });\n functionsCalled.push(funcId);\n pc = ttContext.functionsDefined[funcId];\n if (!pc) {\n warn(\"TT: CALL non-existent function\");\n ttContext.hintsValid = false;\n return;\n }\n data = pc.data;\n i = pc.i;\n }\n }\n }\n } else if (op === 0x2c && !tooComplexToFollowFunctions) {\n // FDEF\n if (inFDEF || inELSE) {\n warn(\"TT: nested FDEFs not allowed\");\n tooComplexToFollowFunctions = true;\n }\n inFDEF = true;\n // collecting information about which functions are defined\n lastDeff = i;\n funcId = stack.pop();\n ttContext.functionsDefined[funcId] = { data, i };\n } else if (op === 0x2d) {\n // ENDF - end of function\n if (inFDEF) {\n inFDEF = false;\n lastEndf = i;\n } else {\n pc = callstack.pop();\n if (!pc) {\n warn(\"TT: ENDF bad stack\");\n ttContext.hintsValid = false;\n return;\n }\n funcId = functionsCalled.pop();\n data = pc.data;\n i = pc.i;\n ttContext.functionsStackDeltas[funcId] = stack.length - pc.stackTop;\n }\n } else if (op === 0x89) {\n // IDEF - instruction definition\n if (inFDEF || inELSE) {\n warn(\"TT: nested IDEFs not allowed\");\n tooComplexToFollowFunctions = true;\n }\n inFDEF = true;\n // recording it as a function to track ENDF\n lastDeff = i;\n } else if (op === 0x58) {\n // IF\n ++ifLevel;\n } else if (op === 0x1b) {\n // ELSE\n inELSE = ifLevel;\n } else if (op === 0x59) {\n // EIF\n if (inELSE === ifLevel) {\n inELSE = 0;\n }\n --ifLevel;\n } else if (op === 0x1c) {\n // JMPR\n if (!inFDEF && !inELSE) {\n const offset = stack[stack.length - 1];\n // only jumping forward to prevent infinite loop\n if (offset > 0) {\n i += offset - 1;\n }\n }\n }\n // Adjusting stack not extactly, but just enough to get function id\n if (!inFDEF && !inELSE) {\n let stackDelta = 0;\n if (op <= 0x8e) {\n stackDelta = TTOpsStackDeltas[op];\n } else if (op >= 0xc0 && op <= 0xdf) {\n stackDelta = -1;\n } else if (op >= 0xe0) {\n stackDelta = -2;\n }\n if (op >= 0x71 && op <= 0x75) {\n n = stack.pop();\n if (!isNaN(n)) {\n stackDelta = -n * 2;\n }\n }\n while (stackDelta < 0 && stack.length > 0) {\n stack.pop();\n stackDelta++;\n }\n while (stackDelta > 0) {\n stack.push(NaN); // pushing any number into stack\n stackDelta--;\n }\n }\n }\n ttContext.tooComplexToFollowFunctions = tooComplexToFollowFunctions;\n const content = [data];\n if (i > data.length) {\n content.push(new Uint8Array(i - data.length));\n }\n if (lastDeff > lastEndf) {\n warn(\"TT: complementing a missing function tail\");\n // new function definition started, but not finished\n // complete function by [CLEAR, ENDF]\n content.push(new Uint8Array([0x22, 0x2d]));\n }\n foldTTTable(table, content);\n }\n\n function checkInvalidFunctions(ttContext, maxFunctionDefs) {\n if (ttContext.tooComplexToFollowFunctions) {\n return;\n }\n if (ttContext.functionsDefined.length > maxFunctionDefs) {\n warn(\"TT: more functions defined than expected\");\n ttContext.hintsValid = false;\n return;\n }\n for (let j = 0, jj = ttContext.functionsUsed.length; j < jj; j++) {\n if (j > maxFunctionDefs) {\n warn(\"TT: invalid function id: \" + j);\n ttContext.hintsValid = false;\n return;\n }\n if (ttContext.functionsUsed[j] && !ttContext.functionsDefined[j]) {\n warn(\"TT: undefined function: \" + j);\n ttContext.hintsValid = false;\n return;\n }\n }\n }\n\n function foldTTTable(table, content) {\n if (content.length > 1) {\n // concatenating the content items\n let newLength = 0;\n let j, jj;\n for (j = 0, jj = content.length; j < jj; j++) {\n newLength += content[j].length;\n }\n newLength = (newLength + 3) & ~3;\n const result = new Uint8Array(newLength);\n let pos = 0;\n for (j = 0, jj = content.length; j < jj; j++) {\n result.set(content[j], pos);\n pos += content[j].length;\n }\n table.data = result;\n table.length = newLength;\n }\n }\n\n function sanitizeTTPrograms(fpgm, prep, cvt, maxFunctionDefs) {\n const ttContext = {\n functionsDefined: [],\n functionsUsed: [],\n functionsStackDeltas: [],\n tooComplexToFollowFunctions: false,\n hintsValid: true,\n };\n if (fpgm) {\n sanitizeTTProgram(fpgm, ttContext);\n }\n if (prep) {\n sanitizeTTProgram(prep, ttContext);\n }\n if (fpgm) {\n checkInvalidFunctions(ttContext, maxFunctionDefs);\n }\n if (cvt && cvt.length & 1) {\n const cvtData = new Uint8Array(cvt.length + 1);\n cvtData.set(cvt.data);\n cvt.data = cvtData;\n }\n return ttContext.hintsValid;\n }\n\n // The following steps modify the original font data, making copy\n font = new Stream(new Uint8Array(font.getBytes()));\n\n let header, tables;\n if (isTrueTypeCollectionFile(font)) {\n const ttcData = readTrueTypeCollectionData(font, this.name);\n header = ttcData.header;\n tables = ttcData.tables;\n } else {\n header = readOpenTypeHeader(font);\n tables = readTables(font, header.numTables);\n }\n let cff, cffFile;\n\n const isTrueType = !tables[\"CFF \"];\n if (!isTrueType) {\n const isComposite =\n properties.composite &&\n ((properties.cidToGidMap || []).length > 0 ||\n !(properties.cMap instanceof IdentityCMap));\n // OpenType font (skip composite fonts with non-default glyph mapping).\n if (\n (header.version === \"OTTO\" && !isComposite) ||\n !tables.head ||\n !tables.hhea ||\n !tables.maxp ||\n !tables.post\n ) {\n // No major tables: throwing everything at `CFFFont`.\n cffFile = new Stream(tables[\"CFF \"].data);\n cff = new CFFFont(cffFile, properties);\n\n adjustWidths(properties);\n\n return this.convert(name, cff, properties);\n }\n\n delete tables.glyf;\n delete tables.loca;\n delete tables.fpgm;\n delete tables.prep;\n delete tables[\"cvt \"];\n this.isOpenType = true;\n } else {\n if (!tables.loca) {\n throw new FormatError('Required \"loca\" table is not found');\n }\n if (!tables.glyf) {\n warn('Required \"glyf\" table is not found -- trying to recover.');\n // Note: We use `sanitizeGlyphLocations` to add dummy glyf data below.\n tables.glyf = {\n tag: \"glyf\",\n data: new Uint8Array(0),\n };\n }\n this.isOpenType = false;\n }\n\n if (!tables.maxp) {\n throw new FormatError('Required \"maxp\" table is not found');\n }\n\n font.pos = (font.start || 0) + tables.maxp.offset;\n const version = font.getInt32();\n const numGlyphs = font.getUint16();\n\n if (\n properties.scaleFactors &&\n properties.scaleFactors.length === numGlyphs &&\n isTrueType\n ) {\n const { scaleFactors } = properties;\n const isGlyphLocationsLong = int16(\n tables.head.data[50],\n tables.head.data[51]\n );\n\n const glyphs = new GlyfTable({\n glyfTable: tables.glyf.data,\n isGlyphLocationsLong,\n locaTable: tables.loca.data,\n numGlyphs,\n });\n glyphs.scale(scaleFactors);\n\n const { glyf, loca, isLocationLong } = glyphs.write();\n tables.glyf.data = glyf;\n tables.loca.data = loca;\n\n if (isLocationLong !== !!isGlyphLocationsLong) {\n tables.head.data[50] = 0;\n tables.head.data[51] = isLocationLong ? 1 : 0;\n }\n\n const metrics = tables.hmtx.data;\n\n for (let i = 0; i < numGlyphs; i++) {\n const j = 4 * i;\n const advanceWidth = Math.round(\n scaleFactors[i] * int16(metrics[j], metrics[j + 1])\n );\n metrics[j] = (advanceWidth >> 8) & 0xff;\n metrics[j + 1] = advanceWidth & 0xff;\n const lsb = Math.round(\n scaleFactors[i] * signedInt16(metrics[j + 2], metrics[j + 3])\n );\n writeSignedInt16(metrics, j + 2, lsb);\n }\n }\n\n // Glyph 0 is duplicated and appended.\n let numGlyphsOut = numGlyphs + 1;\n let dupFirstEntry = true;\n if (numGlyphsOut > 0xffff) {\n dupFirstEntry = false;\n numGlyphsOut = numGlyphs;\n warn(\"Not enough space in glyfs to duplicate first glyph.\");\n }\n let maxFunctionDefs = 0;\n let maxSizeOfInstructions = 0;\n if (version >= 0x00010000 && tables.maxp.length >= 22) {\n // maxZones can be invalid\n font.pos += 8;\n const maxZones = font.getUint16();\n if (maxZones > 2) {\n // reset to 2 if font has invalid maxZones\n tables.maxp.data[14] = 0;\n tables.maxp.data[15] = 2;\n }\n font.pos += 4;\n maxFunctionDefs = font.getUint16();\n font.pos += 4;\n maxSizeOfInstructions = font.getUint16();\n }\n\n tables.maxp.data[4] = numGlyphsOut >> 8;\n tables.maxp.data[5] = numGlyphsOut & 255;\n\n const hintsValid = sanitizeTTPrograms(\n tables.fpgm,\n tables.prep,\n tables[\"cvt \"],\n maxFunctionDefs\n );\n if (!hintsValid) {\n delete tables.fpgm;\n delete tables.prep;\n delete tables[\"cvt \"];\n }\n\n // Ensure the hmtx table contains the advance width and\n // sidebearings information for numGlyphs in the maxp table\n sanitizeMetrics(\n font,\n tables.hhea,\n tables.hmtx,\n tables.head,\n numGlyphsOut,\n dupFirstEntry\n );\n\n if (!tables.head) {\n throw new FormatError('Required \"head\" table is not found');\n }\n\n sanitizeHead(tables.head, numGlyphs, isTrueType ? tables.loca.length : 0);\n\n let missingGlyphs = Object.create(null);\n if (isTrueType) {\n const isGlyphLocationsLong = int16(\n tables.head.data[50],\n tables.head.data[51]\n );\n const glyphsInfo = sanitizeGlyphLocations(\n tables.loca,\n tables.glyf,\n numGlyphs,\n isGlyphLocationsLong,\n hintsValid,\n dupFirstEntry,\n maxSizeOfInstructions\n );\n missingGlyphs = glyphsInfo.missingGlyphs;\n\n // Some fonts have incorrect maxSizeOfInstructions values, so we use\n // the computed value instead.\n if (version >= 0x00010000 && tables.maxp.length >= 22) {\n tables.maxp.data[26] = glyphsInfo.maxSizeOfInstructions >> 8;\n tables.maxp.data[27] = glyphsInfo.maxSizeOfInstructions & 255;\n }\n }\n if (!tables.hhea) {\n throw new FormatError('Required \"hhea\" table is not found');\n }\n\n // Sanitizer reduces the glyph advanceWidth to the maxAdvanceWidth\n // Sometimes it's 0. That needs to be fixed\n if (tables.hhea.data[10] === 0 && tables.hhea.data[11] === 0) {\n tables.hhea.data[10] = 0xff;\n tables.hhea.data[11] = 0xff;\n }\n\n // Extract some more font properties from the OpenType head and\n // hhea tables; yMin and descent value are always negative.\n const metricsOverride = {\n unitsPerEm: int16(tables.head.data[18], tables.head.data[19]),\n yMax: int16(tables.head.data[42], tables.head.data[43]),\n yMin: signedInt16(tables.head.data[38], tables.head.data[39]),\n ascent: signedInt16(tables.hhea.data[4], tables.hhea.data[5]),\n descent: signedInt16(tables.hhea.data[6], tables.hhea.data[7]),\n lineGap: signedInt16(tables.hhea.data[8], tables.hhea.data[9]),\n };\n\n // PDF FontDescriptor metrics lie -- using data from actual font.\n this.ascent = metricsOverride.ascent / metricsOverride.unitsPerEm;\n this.descent = metricsOverride.descent / metricsOverride.unitsPerEm;\n this.lineGap = metricsOverride.lineGap / metricsOverride.unitsPerEm;\n\n if (this.cssFontInfo && this.cssFontInfo.lineHeight) {\n this.lineHeight = this.cssFontInfo.metrics.lineHeight;\n this.lineGap = this.cssFontInfo.metrics.lineGap;\n } else {\n this.lineHeight = this.ascent - this.descent + this.lineGap;\n }\n\n // The 'post' table has glyphs names.\n if (tables.post) {\n readPostScriptTable(tables.post, properties, numGlyphs);\n }\n\n // The original 'post' table is not needed, replace it.\n tables.post = {\n tag: \"post\",\n data: createPostTable(properties),\n };\n\n const charCodeToGlyphId = [];\n\n // Helper function to try to skip mapping of empty glyphs.\n function hasGlyph(glyphId) {\n return !missingGlyphs[glyphId];\n }\n\n if (properties.composite) {\n const cidToGidMap = properties.cidToGidMap || [];\n const isCidToGidMapEmpty = cidToGidMap.length === 0;\n\n properties.cMap.forEach(function (charCode, cid) {\n if (typeof cid === \"string\") {\n cid = convertCidString(charCode, cid, /* shouldThrow = */ true);\n }\n if (cid > 0xffff) {\n throw new FormatError(\"Max size of CID is 65,535\");\n }\n let glyphId = -1;\n if (isCidToGidMapEmpty) {\n glyphId = cid;\n } else if (cidToGidMap[cid] !== undefined) {\n glyphId = cidToGidMap[cid];\n }\n\n if (glyphId >= 0 && glyphId < numGlyphs && hasGlyph(glyphId)) {\n charCodeToGlyphId[charCode] = glyphId;\n }\n });\n } else {\n // Most of the following logic in this code branch is based on the\n // 9.6.6.4 of the PDF spec.\n const cmapTable = readCmapTable(\n tables.cmap,\n font,\n this.isSymbolicFont,\n properties.hasEncoding\n );\n const cmapPlatformId = cmapTable.platformId;\n const cmapEncodingId = cmapTable.encodingId;\n const cmapMappings = cmapTable.mappings;\n const cmapMappingsLength = cmapMappings.length;\n let baseEncoding = [],\n forcePostTable = false;\n if (\n properties.hasEncoding &&\n (properties.baseEncodingName === \"MacRomanEncoding\" ||\n properties.baseEncodingName === \"WinAnsiEncoding\")\n ) {\n baseEncoding = getEncoding(properties.baseEncodingName);\n }\n\n // If the font has an encoding and is not symbolic then follow the rules\n // in section 9.6.6.4 of the spec on how to map 3,1 and 1,0 cmaps.\n if (\n properties.hasEncoding &&\n !this.isSymbolicFont &&\n ((cmapPlatformId === 3 && cmapEncodingId === 1) ||\n (cmapPlatformId === 1 && cmapEncodingId === 0))\n ) {\n const glyphsUnicodeMap = getGlyphsUnicode();\n for (let charCode = 0; charCode < 256; charCode++) {\n let glyphName;\n if (this.differences[charCode] !== undefined) {\n glyphName = this.differences[charCode];\n } else if (baseEncoding.length && baseEncoding[charCode] !== \"\") {\n glyphName = baseEncoding[charCode];\n } else {\n glyphName = StandardEncoding[charCode];\n }\n if (!glyphName) {\n continue;\n }\n // Ensure that non-standard glyph names are resolved to valid ones.\n const standardGlyphName = recoverGlyphName(\n glyphName,\n glyphsUnicodeMap\n );\n\n let unicodeOrCharCode;\n if (cmapPlatformId === 3 && cmapEncodingId === 1) {\n unicodeOrCharCode = glyphsUnicodeMap[standardGlyphName];\n } else if (cmapPlatformId === 1 && cmapEncodingId === 0) {\n // TODO: the encoding needs to be updated with mac os table.\n unicodeOrCharCode = MacRomanEncoding.indexOf(standardGlyphName);\n }\n\n if (unicodeOrCharCode === undefined) {\n // Not a valid glyph name, fallback to using the /ToUnicode map\n // when no post-table exists (fixes issue13316_reduced.pdf).\n if (\n !properties.glyphNames &&\n properties.hasIncludedToUnicodeMap &&\n !(this.toUnicode instanceof IdentityToUnicodeMap)\n ) {\n const unicode = this.toUnicode.get(charCode);\n if (unicode) {\n unicodeOrCharCode = unicode.codePointAt(0);\n }\n }\n\n if (unicodeOrCharCode === undefined) {\n continue; // No valid glyph mapping found.\n }\n }\n\n for (let i = 0; i < cmapMappingsLength; ++i) {\n if (cmapMappings[i].charCode !== unicodeOrCharCode) {\n continue;\n }\n charCodeToGlyphId[charCode] = cmapMappings[i].glyphId;\n break;\n }\n }\n } else if (cmapPlatformId === 0) {\n // Default Unicode semantics, use the charcodes as is.\n for (let i = 0; i < cmapMappingsLength; ++i) {\n charCodeToGlyphId[cmapMappings[i].charCode] = cmapMappings[i].glyphId;\n }\n // Always prefer the BaseEncoding/Differences arrays, when they exist\n // (fixes issue13433.pdf).\n forcePostTable = true;\n } else {\n // When there is only a (1, 0) cmap table, the char code is a single\n // byte and it is used directly as the char code.\n\n // When a (3, 0) cmap table is present, it is used instead but the\n // spec has special rules for char codes in the range of 0xF000 to\n // 0xF0FF and it says the (3, 0) table should map the values from\n // the (1, 0) table by prepending 0xF0 to the char codes. To reverse\n // this, the upper bits of the char code are cleared, but only for the\n // special range since some PDFs have char codes outside of this range\n // (e.g. 0x2013) which when masked would overwrite other values in the\n // cmap.\n for (let i = 0; i < cmapMappingsLength; ++i) {\n let charCode = cmapMappings[i].charCode;\n if (\n cmapPlatformId === 3 &&\n charCode >= 0xf000 &&\n charCode <= 0xf0ff\n ) {\n charCode &= 0xff;\n }\n charCodeToGlyphId[charCode] = cmapMappings[i].glyphId;\n }\n }\n\n // Last, try to map any missing charcodes using the post table.\n if (\n properties.glyphNames &&\n (baseEncoding.length || this.differences.length)\n ) {\n for (let i = 0; i < 256; ++i) {\n if (!forcePostTable && charCodeToGlyphId[i] !== undefined) {\n continue;\n }\n const glyphName = this.differences[i] || baseEncoding[i];\n if (!glyphName) {\n continue;\n }\n const glyphId = properties.glyphNames.indexOf(glyphName);\n if (glyphId > 0 && hasGlyph(glyphId)) {\n charCodeToGlyphId[i] = glyphId;\n }\n }\n }\n }\n\n if (charCodeToGlyphId.length === 0) {\n // defines at least one glyph\n charCodeToGlyphId[0] = 0;\n }\n\n // Typically glyph 0 is duplicated and the mapping must be updated, but if\n // there isn't enough room to duplicate, the glyph id is left the same. In\n // this case, glyph 0 may not work correctly, but that is better than\n // having the whole font fail.\n let glyphZeroId = numGlyphsOut - 1;\n if (!dupFirstEntry) {\n glyphZeroId = 0;\n }\n\n // When `cssFontInfo` is set, the font is used to render text in the HTML\n // view (e.g. with Xfa) so nothing must be moved in the private use area.\n if (!properties.cssFontInfo) {\n // Converting glyphs and ids into font's cmap table\n const newMapping = adjustMapping(\n charCodeToGlyphId,\n hasGlyph,\n glyphZeroId\n );\n this.toFontChar = newMapping.toFontChar;\n tables.cmap = {\n tag: \"cmap\",\n data: createCmapTable(newMapping.charCodeToGlyphId, numGlyphsOut),\n };\n\n if (!tables[\"OS/2\"] || !validateOS2Table(tables[\"OS/2\"], font)) {\n tables[\"OS/2\"] = {\n tag: \"OS/2\",\n data: createOS2Table(\n properties,\n newMapping.charCodeToGlyphId,\n metricsOverride\n ),\n };\n }\n }\n\n if (!isTrueType) {\n try {\n // Trying to repair CFF file\n cffFile = new Stream(tables[\"CFF \"].data);\n const parser = new CFFParser(\n cffFile,\n properties,\n SEAC_ANALYSIS_ENABLED\n );\n cff = parser.parse();\n cff.duplicateFirstGlyph();\n const compiler = new CFFCompiler(cff);\n tables[\"CFF \"].data = compiler.compile();\n } catch (e) {\n warn(\"Failed to compile font \" + properties.loadedName);\n }\n }\n\n // Re-creating 'name' table\n if (!tables.name) {\n tables.name = {\n tag: \"name\",\n data: createNameTable(this.name),\n };\n } else {\n // ... using existing 'name' table as prototype\n const namePrototype = readNameTable(tables.name);\n tables.name.data = createNameTable(name, namePrototype);\n this.psName = namePrototype[0][6] || null;\n }\n\n const builder = new OpenTypeFileBuilder(header.version);\n for (const tableTag in tables) {\n builder.addTable(tableTag, tables[tableTag].data);\n }\n return builder.toArray();\n }\n\n convert(fontName, font, properties) {\n // TODO: Check the charstring widths to determine this.\n properties.fixedPitch = false;\n\n if (properties.builtInEncoding) {\n // For Type1 fonts that do not include either `ToUnicode` or `Encoding`\n // data, attempt to use the `builtInEncoding` to improve text selection.\n adjustToUnicode(properties, properties.builtInEncoding);\n }\n\n // Type 1 fonts have a notdef inserted at the beginning, so glyph 0\n // becomes glyph 1. In a CFF font glyph 0 is appended to the end of the\n // char strings.\n let glyphZeroId = 1;\n if (font instanceof CFFFont) {\n glyphZeroId = font.numGlyphs - 1;\n }\n const mapping = font.getGlyphMapping(properties);\n let newMapping = null;\n let newCharCodeToGlyphId = mapping;\n\n // When `cssFontInfo` is set, the font is used to render text in the HTML\n // view (e.g. with Xfa) so nothing must be moved in the private use area.\n if (!properties.cssFontInfo) {\n newMapping = adjustMapping(\n mapping,\n font.hasGlyphId.bind(font),\n glyphZeroId\n );\n this.toFontChar = newMapping.toFontChar;\n newCharCodeToGlyphId = newMapping.charCodeToGlyphId;\n }\n const numGlyphs = font.numGlyphs;\n\n function getCharCodes(charCodeToGlyphId, glyphId) {\n let charCodes = null;\n for (const charCode in charCodeToGlyphId) {\n if (glyphId === charCodeToGlyphId[charCode]) {\n if (!charCodes) {\n charCodes = [];\n }\n charCodes.push(charCode | 0);\n }\n }\n return charCodes;\n }\n\n function createCharCode(charCodeToGlyphId, glyphId) {\n for (const charCode in charCodeToGlyphId) {\n if (glyphId === charCodeToGlyphId[charCode]) {\n return charCode | 0;\n }\n }\n newMapping.charCodeToGlyphId[newMapping.nextAvailableFontCharCode] =\n glyphId;\n return newMapping.nextAvailableFontCharCode++;\n }\n\n const seacs = font.seacs;\n if (newMapping && SEAC_ANALYSIS_ENABLED && seacs && seacs.length) {\n const matrix = properties.fontMatrix || FONT_IDENTITY_MATRIX;\n const charset = font.getCharset();\n const seacMap = Object.create(null);\n for (let glyphId in seacs) {\n glyphId |= 0;\n const seac = seacs[glyphId];\n const baseGlyphName = StandardEncoding[seac[2]];\n const accentGlyphName = StandardEncoding[seac[3]];\n const baseGlyphId = charset.indexOf(baseGlyphName);\n const accentGlyphId = charset.indexOf(accentGlyphName);\n if (baseGlyphId < 0 || accentGlyphId < 0) {\n continue;\n }\n const accentOffset = {\n x: seac[0] * matrix[0] + seac[1] * matrix[2] + matrix[4],\n y: seac[0] * matrix[1] + seac[1] * matrix[3] + matrix[5],\n };\n\n const charCodes = getCharCodes(mapping, glyphId);\n if (!charCodes) {\n // There's no point in mapping it if the char code was never mapped\n // to begin with.\n continue;\n }\n for (let i = 0, ii = charCodes.length; i < ii; i++) {\n const charCode = charCodes[i];\n // Find a fontCharCode that maps to the base and accent glyphs.\n // If one doesn't exists, create it.\n const charCodeToGlyphId = newMapping.charCodeToGlyphId;\n const baseFontCharCode = createCharCode(\n charCodeToGlyphId,\n baseGlyphId\n );\n const accentFontCharCode = createCharCode(\n charCodeToGlyphId,\n accentGlyphId\n );\n seacMap[charCode] = {\n baseFontCharCode,\n accentFontCharCode,\n accentOffset,\n };\n }\n }\n properties.seacMap = seacMap;\n }\n\n const unitsPerEm = 1 / (properties.fontMatrix || FONT_IDENTITY_MATRIX)[0];\n\n const builder = new OpenTypeFileBuilder(\"\\x4F\\x54\\x54\\x4F\");\n // PostScript Font Program\n builder.addTable(\"CFF \", font.data);\n // OS/2 and Windows Specific metrics\n builder.addTable(\"OS/2\", createOS2Table(properties, newCharCodeToGlyphId));\n // Character to glyphs mapping\n builder.addTable(\"cmap\", createCmapTable(newCharCodeToGlyphId, numGlyphs));\n // Font header\n builder.addTable(\n \"head\",\n \"\\x00\\x01\\x00\\x00\" + // Version number\n \"\\x00\\x00\\x10\\x00\" + // fontRevision\n \"\\x00\\x00\\x00\\x00\" + // checksumAdjustement\n \"\\x5F\\x0F\\x3C\\xF5\" + // magicNumber\n \"\\x00\\x00\" + // Flags\n safeString16(unitsPerEm) + // unitsPerEM\n \"\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27\" + // creation date\n \"\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27\" + // modifification date\n \"\\x00\\x00\" + // xMin\n safeString16(properties.descent) + // yMin\n \"\\x0F\\xFF\" + // xMax\n safeString16(properties.ascent) + // yMax\n string16(properties.italicAngle ? 2 : 0) + // macStyle\n \"\\x00\\x11\" + // lowestRecPPEM\n \"\\x00\\x00\" + // fontDirectionHint\n \"\\x00\\x00\" + // indexToLocFormat\n \"\\x00\\x00\"\n ); // glyphDataFormat\n\n // Horizontal header\n builder.addTable(\n \"hhea\",\n \"\\x00\\x01\\x00\\x00\" + // Version number\n safeString16(properties.ascent) + // Typographic Ascent\n safeString16(properties.descent) + // Typographic Descent\n \"\\x00\\x00\" + // Line Gap\n \"\\xFF\\xFF\" + // advanceWidthMax\n \"\\x00\\x00\" + // minLeftSidebearing\n \"\\x00\\x00\" + // minRightSidebearing\n \"\\x00\\x00\" + // xMaxExtent\n safeString16(properties.capHeight) + // caretSlopeRise\n safeString16(Math.tan(properties.italicAngle) * properties.xHeight) + // caretSlopeRun\n \"\\x00\\x00\" + // caretOffset\n \"\\x00\\x00\" + // -reserved-\n \"\\x00\\x00\" + // -reserved-\n \"\\x00\\x00\" + // -reserved-\n \"\\x00\\x00\" + // -reserved-\n \"\\x00\\x00\" + // metricDataFormat\n string16(numGlyphs)\n ); // Number of HMetrics\n\n // Horizontal metrics\n builder.addTable(\n \"hmtx\",\n (function fontFieldsHmtx() {\n const charstrings = font.charstrings;\n const cffWidths = font.cff ? font.cff.widths : null;\n let hmtx = \"\\x00\\x00\\x00\\x00\"; // Fake .notdef\n for (let i = 1, ii = numGlyphs; i < ii; i++) {\n let width = 0;\n if (charstrings) {\n const charstring = charstrings[i - 1];\n width = \"width\" in charstring ? charstring.width : 0;\n } else if (cffWidths) {\n width = Math.ceil(cffWidths[i] || 0);\n }\n hmtx += string16(width) + string16(0);\n }\n return hmtx;\n })()\n );\n\n // Maximum profile\n builder.addTable(\n \"maxp\",\n \"\\x00\\x00\\x50\\x00\" + string16(numGlyphs) // Version number\n ); // Num of glyphs\n\n // Naming tables\n builder.addTable(\"name\", createNameTable(fontName));\n\n // PostScript information\n builder.addTable(\"post\", createPostTable(properties));\n\n return builder.toArray();\n }\n\n get spaceWidth() {\n // trying to estimate space character width\n const possibleSpaceReplacements = [\"space\", \"minus\", \"one\", \"i\", \"I\"];\n let width;\n for (let i = 0, ii = possibleSpaceReplacements.length; i < ii; i++) {\n const glyphName = possibleSpaceReplacements[i];\n // if possible, getting width by glyph name\n if (glyphName in this.widths) {\n width = this.widths[glyphName];\n break;\n }\n const glyphsUnicodeMap = getGlyphsUnicode();\n const glyphUnicode = glyphsUnicodeMap[glyphName];\n // finding the charcode via unicodeToCID map\n let charcode = 0;\n if (this.composite && this.cMap.contains(glyphUnicode)) {\n charcode = this.cMap.lookup(glyphUnicode);\n\n if (typeof charcode === \"string\") {\n charcode = convertCidString(glyphUnicode, charcode);\n }\n }\n // ... via toUnicode map\n if (!charcode && this.toUnicode) {\n charcode = this.toUnicode.charCodeOf(glyphUnicode);\n }\n // setting it to unicode if negative or undefined\n if (charcode <= 0) {\n charcode = glyphUnicode;\n }\n // trying to get width via charcode\n width = this.widths[charcode];\n if (width) {\n break; // the non-zero width found\n }\n }\n width = width || this.defaultWidth;\n return shadow(this, \"spaceWidth\", width);\n }\n\n /**\n * @private\n */\n _charToGlyph(charcode, isSpace = false) {\n let fontCharCode, width, operatorListId;\n\n let widthCode = charcode;\n if (this.cMap && this.cMap.contains(charcode)) {\n widthCode = this.cMap.lookup(charcode);\n\n if (typeof widthCode === \"string\") {\n widthCode = convertCidString(charcode, widthCode);\n }\n }\n width = this.widths[widthCode];\n if (typeof width !== \"number\") {\n width = this.defaultWidth;\n }\n const vmetric = this.vmetrics && this.vmetrics[widthCode];\n\n let unicode = this.toUnicode.get(charcode) || charcode;\n if (typeof unicode === \"number\") {\n unicode = String.fromCharCode(unicode);\n }\n\n let isInFont = this.toFontChar[charcode] !== undefined;\n // First try the toFontChar map, if it's not there then try falling\n // back to the char code.\n fontCharCode = this.toFontChar[charcode] || charcode;\n if (this.missingFile) {\n const glyphName =\n this.differences[charcode] || this.defaultEncoding[charcode];\n if (\n (glyphName === \".notdef\" || glyphName === \"\") &&\n this.type === \"Type1\"\n ) {\n // .notdef glyphs should be invisible in non-embedded Type1 fonts, so\n // replace them with spaces.\n fontCharCode = 0x20;\n }\n fontCharCode = mapSpecialUnicodeValues(fontCharCode);\n }\n\n if (this.isType3Font) {\n // Font char code in this case is actually a glyph name.\n operatorListId = fontCharCode;\n }\n\n let accent = null;\n if (this.seacMap && this.seacMap[charcode]) {\n isInFont = true;\n const seac = this.seacMap[charcode];\n fontCharCode = seac.baseFontCharCode;\n accent = {\n fontChar: String.fromCodePoint(seac.accentFontCharCode),\n offset: seac.accentOffset,\n };\n }\n\n let fontChar = \"\";\n if (typeof fontCharCode === \"number\") {\n if (fontCharCode <= 0x10ffff) {\n fontChar = String.fromCodePoint(fontCharCode);\n } else {\n warn(`charToGlyph - invalid fontCharCode: ${fontCharCode}`);\n }\n }\n\n let glyph = this._glyphCache[charcode];\n if (\n !glyph ||\n !glyph.matchesForCache(\n charcode,\n fontChar,\n unicode,\n accent,\n width,\n vmetric,\n operatorListId,\n isSpace,\n isInFont\n )\n ) {\n glyph = new Glyph(\n charcode,\n fontChar,\n unicode,\n accent,\n width,\n vmetric,\n operatorListId,\n isSpace,\n isInFont\n );\n this._glyphCache[charcode] = glyph;\n }\n return glyph;\n }\n\n charsToGlyphs(chars) {\n // If we translated this string before, just grab it from the cache.\n let glyphs = this._charsCache[chars];\n if (glyphs) {\n return glyphs;\n }\n glyphs = [];\n\n if (this.cMap) {\n // Composite fonts have multi-byte strings, convert the string from\n // single-byte to multi-byte.\n const c = Object.create(null),\n ii = chars.length;\n let i = 0;\n while (i < ii) {\n this.cMap.readCharCode(chars, i, c);\n const { charcode, length } = c;\n i += length;\n // Space is char with code 0x20 and length 1 in multiple-byte codes.\n const glyph = this._charToGlyph(\n charcode,\n length === 1 && chars.charCodeAt(i - 1) === 0x20\n );\n glyphs.push(glyph);\n }\n } else {\n for (let i = 0, ii = chars.length; i < ii; ++i) {\n const charcode = chars.charCodeAt(i);\n const glyph = this._charToGlyph(charcode, charcode === 0x20);\n glyphs.push(glyph);\n }\n }\n\n // Enter the translated string into the cache.\n return (this._charsCache[chars] = glyphs);\n }\n\n /**\n * Chars can have different sizes (depends on the encoding).\n * @param {String} a string encoded with font encoding.\n * @returns {Array>} the positions of each char in the string.\n */\n getCharPositions(chars) {\n // This function doesn't use a cache because\n // it's called only when saving or printing.\n const positions = [];\n\n if (this.cMap) {\n const c = Object.create(null);\n let i = 0;\n while (i < chars.length) {\n this.cMap.readCharCode(chars, i, c);\n const length = c.length;\n positions.push([i, i + length]);\n i += length;\n }\n } else {\n for (let i = 0, ii = chars.length; i < ii; ++i) {\n positions.push([i, i + 1]);\n }\n }\n\n return positions;\n }\n\n get glyphCacheValues() {\n return Object.values(this._glyphCache);\n }\n\n /**\n * Encode a js string using font encoding.\n * The resulting array contains an encoded string at even positions\n * (can be empty) and a non-encoded one at odd positions.\n * @param {String} a js string.\n * @returns {Array} an array of encoded strings or non-encoded ones.\n */\n encodeString(str) {\n const buffers = [];\n const currentBuf = [];\n\n // buffers will contain: encoded, non-encoded, encoded, ...\n // currentBuf is pushed in buffers each time there is a change.\n // So when buffers.length is odd then the last string is an encoded one\n // and currentBuf contains non-encoded chars.\n const hasCurrentBufErrors = () => buffers.length % 2 === 1;\n\n const getCharCode =\n this.toUnicode instanceof IdentityToUnicodeMap\n ? unicode => this.toUnicode.charCodeOf(unicode)\n : unicode => this.toUnicode.charCodeOf(String.fromCodePoint(unicode));\n\n for (let i = 0, ii = str.length; i < ii; i++) {\n const unicode = str.codePointAt(i);\n if (unicode > 0xd7ff && (unicode < 0xe000 || unicode > 0xfffd)) {\n // unicode is represented by two uint16\n i++;\n }\n if (this.toUnicode) {\n const charCode = getCharCode(unicode);\n if (charCode !== -1) {\n if (hasCurrentBufErrors()) {\n buffers.push(currentBuf.join(\"\"));\n currentBuf.length = 0;\n }\n const charCodeLength = this.cMap\n ? this.cMap.getCharCodeLength(charCode)\n : 1;\n for (let j = charCodeLength - 1; j >= 0; j--) {\n currentBuf.push(String.fromCharCode((charCode >> (8 * j)) & 0xff));\n }\n continue;\n }\n }\n\n // unicode can't be encoded\n if (!hasCurrentBufErrors()) {\n buffers.push(currentBuf.join(\"\"));\n currentBuf.length = 0;\n }\n currentBuf.push(String.fromCodePoint(unicode));\n }\n\n buffers.push(currentBuf.join(\"\"));\n\n return buffers;\n }\n}\n\nclass ErrorFont {\n constructor(error) {\n this.error = error;\n this.loadedName = \"g_font_error\";\n this.missingFile = true;\n }\n\n charsToGlyphs() {\n return [];\n }\n\n encodeString(chars) {\n return [chars];\n }\n\n exportData(extraProperties = false) {\n return { error: this.error };\n }\n}\n\nexport { ErrorFont, Font };\n","/* Copyright 2016 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n bytesToString,\n FormatError,\n info,\n shadow,\n stringToBytes,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport {\n ExpertCharset,\n ExpertSubsetCharset,\n ISOAdobeCharset,\n} from \"./charsets.js\";\nimport { ExpertEncoding, StandardEncoding } from \"./encodings.js\";\n\n// Maximum subroutine call depth of type 2 charstrings. Matches OTS.\nconst MAX_SUBR_NESTING = 10;\n\n/**\n * The CFF class takes a Type1 file and wrap it into a\n * 'Compact Font Format' which itself embed Type2 charstrings.\n */\n// prettier-ignore\nconst CFFStandardStrings = [\n \".notdef\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\",\n \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\",\n \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\",\n \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\",\n \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\",\n \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\",\n \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\",\n \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\",\n \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\",\n \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"exclamdown\", \"cent\",\n \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\",\n \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\",\n \"guilsinglright\", \"fi\", \"fl\", \"endash\", \"dagger\", \"daggerdbl\",\n \"periodcentered\", \"paragraph\", \"bullet\", \"quotesinglbase\", \"quotedblbase\",\n \"quotedblright\", \"guillemotright\", \"ellipsis\", \"perthousand\", \"questiondown\",\n \"grave\", \"acute\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\",\n \"dieresis\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\",\n \"AE\", \"ordfeminine\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"ae\",\n \"dotlessi\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"onesuperior\",\n \"logicalnot\", \"mu\", \"trademark\", \"Eth\", \"onehalf\", \"plusminus\", \"Thorn\",\n \"onequarter\", \"divide\", \"brokenbar\", \"degree\", \"thorn\", \"threequarters\",\n \"twosuperior\", \"registered\", \"minus\", \"eth\", \"multiply\", \"threesuperior\",\n \"copyright\", \"Aacute\", \"Acircumflex\", \"Adieresis\", \"Agrave\", \"Aring\",\n \"Atilde\", \"Ccedilla\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Egrave\",\n \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Ntilde\", \"Oacute\",\n \"Ocircumflex\", \"Odieresis\", \"Ograve\", \"Otilde\", \"Scaron\", \"Uacute\",\n \"Ucircumflex\", \"Udieresis\", \"Ugrave\", \"Yacute\", \"Ydieresis\", \"Zcaron\",\n \"aacute\", \"acircumflex\", \"adieresis\", \"agrave\", \"aring\", \"atilde\",\n \"ccedilla\", \"eacute\", \"ecircumflex\", \"edieresis\", \"egrave\", \"iacute\",\n \"icircumflex\", \"idieresis\", \"igrave\", \"ntilde\", \"oacute\", \"ocircumflex\",\n \"odieresis\", \"ograve\", \"otilde\", \"scaron\", \"uacute\", \"ucircumflex\",\n \"udieresis\", \"ugrave\", \"yacute\", \"ydieresis\", \"zcaron\", \"exclamsmall\",\n \"Hungarumlautsmall\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\",\n \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\",\n \"onedotenleader\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\",\n \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\",\n \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"commasuperior\",\n \"threequartersemdash\", \"periodsuperior\", \"questionsmall\", \"asuperior\",\n \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\",\n \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\",\n \"tsuperior\", \"ff\", \"ffi\", \"ffl\", \"parenleftinferior\", \"parenrightinferior\",\n \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\", \"Asmall\", \"Bsmall\",\n \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\",\n \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\",\n \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\",\n \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\",\n \"Tildesmall\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\",\n \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\", \"Caronsmall\",\n \"Dotaccentsmall\", \"Macronsmall\", \"figuredash\", \"hypheninferior\",\n \"Ogoneksmall\", \"Ringsmall\", \"Cedillasmall\", \"questiondownsmall\", \"oneeighth\",\n \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\",\n \"zerosuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\",\n \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\",\n \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\",\n \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\",\n \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\",\n \"commainferior\", \"Agravesmall\", \"Aacutesmall\", \"Acircumflexsmall\",\n \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\",\n \"Egravesmall\", \"Eacutesmall\", \"Ecircumflexsmall\", \"Edieresissmall\",\n \"Igravesmall\", \"Iacutesmall\", \"Icircumflexsmall\", \"Idieresissmall\",\n \"Ethsmall\", \"Ntildesmall\", \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\",\n \"Otildesmall\", \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\",\n \"Uacutesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\",\n \"Thornsmall\", \"Ydieresissmall\", \"001.000\", \"001.001\", \"001.002\", \"001.003\",\n \"Black\", \"Bold\", \"Book\", \"Light\", \"Medium\", \"Regular\", \"Roman\", \"Semibold\"\n];\n\nconst NUM_STANDARD_CFF_STRINGS = 391;\n\nconst CFFParser = (function CFFParserClosure() {\n const CharstringValidationData = [\n null,\n { id: \"hstem\", min: 2, stackClearing: true, stem: true },\n null,\n { id: \"vstem\", min: 2, stackClearing: true, stem: true },\n { id: \"vmoveto\", min: 1, stackClearing: true },\n { id: \"rlineto\", min: 2, resetStack: true },\n { id: \"hlineto\", min: 1, resetStack: true },\n { id: \"vlineto\", min: 1, resetStack: true },\n { id: \"rrcurveto\", min: 6, resetStack: true },\n null,\n { id: \"callsubr\", min: 1, undefStack: true },\n { id: \"return\", min: 0, undefStack: true },\n null, // 12\n null,\n { id: \"endchar\", min: 0, stackClearing: true },\n null,\n null,\n null,\n { id: \"hstemhm\", min: 2, stackClearing: true, stem: true },\n { id: \"hintmask\", min: 0, stackClearing: true },\n { id: \"cntrmask\", min: 0, stackClearing: true },\n { id: \"rmoveto\", min: 2, stackClearing: true },\n { id: \"hmoveto\", min: 1, stackClearing: true },\n { id: \"vstemhm\", min: 2, stackClearing: true, stem: true },\n { id: \"rcurveline\", min: 8, resetStack: true },\n { id: \"rlinecurve\", min: 8, resetStack: true },\n { id: \"vvcurveto\", min: 4, resetStack: true },\n { id: \"hhcurveto\", min: 4, resetStack: true },\n null, // shortint\n { id: \"callgsubr\", min: 1, undefStack: true },\n { id: \"vhcurveto\", min: 4, resetStack: true },\n { id: \"hvcurveto\", min: 4, resetStack: true },\n ];\n const CharstringValidationData12 = [\n null,\n null,\n null,\n { id: \"and\", min: 2, stackDelta: -1 },\n { id: \"or\", min: 2, stackDelta: -1 },\n { id: \"not\", min: 1, stackDelta: 0 },\n null,\n null,\n null,\n { id: \"abs\", min: 1, stackDelta: 0 },\n {\n id: \"add\",\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] + stack[index - 1];\n },\n },\n {\n id: \"sub\",\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] - stack[index - 1];\n },\n },\n {\n id: \"div\",\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] / stack[index - 1];\n },\n },\n null,\n {\n id: \"neg\",\n min: 1,\n stackDelta: 0,\n stackFn: function stack_div(stack, index) {\n stack[index - 1] = -stack[index - 1];\n },\n },\n { id: \"eq\", min: 2, stackDelta: -1 },\n null,\n null,\n { id: \"drop\", min: 1, stackDelta: -1 },\n null,\n { id: \"put\", min: 2, stackDelta: -2 },\n { id: \"get\", min: 1, stackDelta: 0 },\n { id: \"ifelse\", min: 4, stackDelta: -3 },\n { id: \"random\", min: 0, stackDelta: 1 },\n {\n id: \"mul\",\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] * stack[index - 1];\n },\n },\n null,\n { id: \"sqrt\", min: 1, stackDelta: 0 },\n { id: \"dup\", min: 1, stackDelta: 1 },\n { id: \"exch\", min: 2, stackDelta: 0 },\n { id: \"index\", min: 2, stackDelta: 0 },\n { id: \"roll\", min: 3, stackDelta: -2 },\n null,\n null,\n null,\n { id: \"hflex\", min: 7, resetStack: true },\n { id: \"flex\", min: 13, resetStack: true },\n { id: \"hflex1\", min: 9, resetStack: true },\n { id: \"flex1\", min: 11, resetStack: true },\n ];\n\n // eslint-disable-next-line no-shadow\n class CFFParser {\n constructor(file, properties, seacAnalysisEnabled) {\n this.bytes = file.getBytes();\n this.properties = properties;\n this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n }\n\n parse() {\n const properties = this.properties;\n const cff = new CFF();\n this.cff = cff;\n\n // The first five sections must be in order, all the others are reached\n // via offsets contained in one of the below.\n const header = this.parseHeader();\n const nameIndex = this.parseIndex(header.endPos);\n const topDictIndex = this.parseIndex(nameIndex.endPos);\n const stringIndex = this.parseIndex(topDictIndex.endPos);\n const globalSubrIndex = this.parseIndex(stringIndex.endPos);\n\n const topDictParsed = this.parseDict(topDictIndex.obj.get(0));\n const topDict = this.createDict(CFFTopDict, topDictParsed, cff.strings);\n\n cff.header = header.obj;\n cff.names = this.parseNameIndex(nameIndex.obj);\n cff.strings = this.parseStringIndex(stringIndex.obj);\n cff.topDict = topDict;\n cff.globalSubrIndex = globalSubrIndex.obj;\n\n this.parsePrivateDict(cff.topDict);\n\n cff.isCIDFont = topDict.hasName(\"ROS\");\n\n const charStringOffset = topDict.getByName(\"CharStrings\");\n const charStringIndex = this.parseIndex(charStringOffset).obj;\n\n const fontMatrix = topDict.getByName(\"FontMatrix\");\n if (fontMatrix) {\n properties.fontMatrix = fontMatrix;\n }\n\n const fontBBox = topDict.getByName(\"FontBBox\");\n if (fontBBox) {\n // adjusting ascent/descent\n properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n properties.ascentScaled = true;\n }\n\n let charset, encoding;\n if (cff.isCIDFont) {\n const fdArrayIndex = this.parseIndex(topDict.getByName(\"FDArray\")).obj;\n for (let i = 0, ii = fdArrayIndex.count; i < ii; ++i) {\n const dictRaw = fdArrayIndex.get(i);\n const fontDict = this.createDict(\n CFFTopDict,\n this.parseDict(dictRaw),\n cff.strings\n );\n this.parsePrivateDict(fontDict);\n cff.fdArray.push(fontDict);\n }\n // cid fonts don't have an encoding\n encoding = null;\n charset = this.parseCharsets(\n topDict.getByName(\"charset\"),\n charStringIndex.count,\n cff.strings,\n true\n );\n cff.fdSelect = this.parseFDSelect(\n topDict.getByName(\"FDSelect\"),\n charStringIndex.count\n );\n } else {\n charset = this.parseCharsets(\n topDict.getByName(\"charset\"),\n charStringIndex.count,\n cff.strings,\n false\n );\n encoding = this.parseEncoding(\n topDict.getByName(\"Encoding\"),\n properties,\n cff.strings,\n charset.charset\n );\n }\n\n cff.charset = charset;\n cff.encoding = encoding;\n\n const charStringsAndSeacs = this.parseCharStrings({\n charStrings: charStringIndex,\n localSubrIndex: topDict.privateDict.subrsIndex,\n globalSubrIndex: globalSubrIndex.obj,\n fdSelect: cff.fdSelect,\n fdArray: cff.fdArray,\n privateDict: topDict.privateDict,\n });\n cff.charStrings = charStringsAndSeacs.charStrings;\n cff.seacs = charStringsAndSeacs.seacs;\n cff.widths = charStringsAndSeacs.widths;\n\n return cff;\n }\n\n parseHeader() {\n let bytes = this.bytes;\n const bytesLength = bytes.length;\n let offset = 0;\n\n // Prevent an infinite loop, by checking that the offset is within the\n // bounds of the bytes array. Necessary in empty, or invalid, font files.\n while (offset < bytesLength && bytes[offset] !== 1) {\n ++offset;\n }\n if (offset >= bytesLength) {\n throw new FormatError(\"Invalid CFF header\");\n }\n if (offset !== 0) {\n info(\"cff data is shifted\");\n bytes = bytes.subarray(offset);\n this.bytes = bytes;\n }\n const major = bytes[0];\n const minor = bytes[1];\n const hdrSize = bytes[2];\n const offSize = bytes[3];\n const header = new CFFHeader(major, minor, hdrSize, offSize);\n return { obj: header, endPos: hdrSize };\n }\n\n parseDict(dict) {\n let pos = 0;\n\n function parseOperand() {\n let value = dict[pos++];\n if (value === 30) {\n return parseFloatOperand();\n } else if (value === 28) {\n value = dict[pos++];\n value = ((value << 24) | (dict[pos++] << 16)) >> 16;\n return value;\n } else if (value === 29) {\n value = dict[pos++];\n value = (value << 8) | dict[pos++];\n value = (value << 8) | dict[pos++];\n value = (value << 8) | dict[pos++];\n return value;\n } else if (value >= 32 && value <= 246) {\n return value - 139;\n } else if (value >= 247 && value <= 250) {\n return (value - 247) * 256 + dict[pos++] + 108;\n } else if (value >= 251 && value <= 254) {\n return -((value - 251) * 256) - dict[pos++] - 108;\n }\n warn('CFFParser_parseDict: \"' + value + '\" is a reserved command.');\n return NaN;\n }\n\n function parseFloatOperand() {\n let str = \"\";\n const eof = 15;\n // prettier-ignore\n const lookup = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\",\n \"9\", \".\", \"E\", \"E-\", null, \"-\"];\n const length = dict.length;\n while (pos < length) {\n const b = dict[pos++];\n const b1 = b >> 4;\n const b2 = b & 15;\n\n if (b1 === eof) {\n break;\n }\n str += lookup[b1];\n\n if (b2 === eof) {\n break;\n }\n str += lookup[b2];\n }\n return parseFloat(str);\n }\n\n let operands = [];\n const entries = [];\n\n pos = 0;\n const end = dict.length;\n while (pos < end) {\n let b = dict[pos];\n if (b <= 21) {\n if (b === 12) {\n b = (b << 8) | dict[++pos];\n }\n entries.push([b, operands]);\n operands = [];\n ++pos;\n } else {\n operands.push(parseOperand());\n }\n }\n return entries;\n }\n\n parseIndex(pos) {\n const cffIndex = new CFFIndex();\n const bytes = this.bytes;\n const count = (bytes[pos++] << 8) | bytes[pos++];\n const offsets = [];\n let end = pos;\n let i, ii;\n\n if (count !== 0) {\n const offsetSize = bytes[pos++];\n // add 1 for offset to determine size of last object\n const startPos = pos + (count + 1) * offsetSize - 1;\n\n for (i = 0, ii = count + 1; i < ii; ++i) {\n let offset = 0;\n for (let j = 0; j < offsetSize; ++j) {\n offset <<= 8;\n offset += bytes[pos++];\n }\n offsets.push(startPos + offset);\n }\n end = offsets[count];\n }\n for (i = 0, ii = offsets.length - 1; i < ii; ++i) {\n const offsetStart = offsets[i];\n const offsetEnd = offsets[i + 1];\n cffIndex.add(bytes.subarray(offsetStart, offsetEnd));\n }\n return { obj: cffIndex, endPos: end };\n }\n\n parseNameIndex(index) {\n const names = [];\n for (let i = 0, ii = index.count; i < ii; ++i) {\n const name = index.get(i);\n names.push(bytesToString(name));\n }\n return names;\n }\n\n parseStringIndex(index) {\n const strings = new CFFStrings();\n for (let i = 0, ii = index.count; i < ii; ++i) {\n const data = index.get(i);\n strings.add(bytesToString(data));\n }\n return strings;\n }\n\n createDict(Type, dict, strings) {\n const cffDict = new Type(strings);\n for (let i = 0, ii = dict.length; i < ii; ++i) {\n const pair = dict[i];\n const key = pair[0];\n const value = pair[1];\n cffDict.setByKey(key, value);\n }\n return cffDict;\n }\n\n parseCharString(state, data, localSubrIndex, globalSubrIndex) {\n if (!data || state.callDepth > MAX_SUBR_NESTING) {\n return false;\n }\n let stackSize = state.stackSize;\n const stack = state.stack;\n\n const length = data.length;\n\n for (let j = 0; j < length; ) {\n const value = data[j++];\n let validationCommand = null;\n if (value === 12) {\n const q = data[j++];\n if (q === 0) {\n // The CFF specification state that the 'dotsection' command\n // (12, 0) is deprecated and treated as a no-op, but all Type2\n // charstrings processors should support them. Unfortunately\n // the font sanitizer don't. As a workaround the sequence (12, 0)\n // is replaced by a useless (0, hmoveto).\n data[j - 2] = 139;\n data[j - 1] = 22;\n stackSize = 0;\n } else {\n validationCommand = CharstringValidationData12[q];\n }\n } else if (value === 28) {\n // number (16 bit)\n stack[stackSize] = ((data[j] << 24) | (data[j + 1] << 16)) >> 16;\n j += 2;\n stackSize++;\n } else if (value === 14) {\n if (stackSize >= 4) {\n stackSize -= 4;\n if (this.seacAnalysisEnabled) {\n state.seac = stack.slice(stackSize, stackSize + 4);\n return false;\n }\n }\n validationCommand = CharstringValidationData[value];\n } else if (value >= 32 && value <= 246) {\n // number\n stack[stackSize] = value - 139;\n stackSize++;\n } else if (value >= 247 && value <= 254) {\n // number (+1 bytes)\n stack[stackSize] =\n value < 251\n ? ((value - 247) << 8) + data[j] + 108\n : -((value - 251) << 8) - data[j] - 108;\n j++;\n stackSize++;\n } else if (value === 255) {\n // number (32 bit)\n stack[stackSize] =\n ((data[j] << 24) |\n (data[j + 1] << 16) |\n (data[j + 2] << 8) |\n data[j + 3]) /\n 65536;\n j += 4;\n stackSize++;\n } else if (value === 19 || value === 20) {\n state.hints += stackSize >> 1;\n // skipping right amount of hints flag data\n j += (state.hints + 7) >> 3;\n stackSize %= 2;\n validationCommand = CharstringValidationData[value];\n } else if (value === 10 || value === 29) {\n let subrsIndex;\n if (value === 10) {\n subrsIndex = localSubrIndex;\n } else {\n subrsIndex = globalSubrIndex;\n }\n if (!subrsIndex) {\n validationCommand = CharstringValidationData[value];\n warn(\"Missing subrsIndex for \" + validationCommand.id);\n return false;\n }\n let bias = 32768;\n if (subrsIndex.count < 1240) {\n bias = 107;\n } else if (subrsIndex.count < 33900) {\n bias = 1131;\n }\n const subrNumber = stack[--stackSize] + bias;\n if (\n subrNumber < 0 ||\n subrNumber >= subrsIndex.count ||\n isNaN(subrNumber)\n ) {\n validationCommand = CharstringValidationData[value];\n warn(\"Out of bounds subrIndex for \" + validationCommand.id);\n return false;\n }\n state.stackSize = stackSize;\n state.callDepth++;\n const valid = this.parseCharString(\n state,\n subrsIndex.get(subrNumber),\n localSubrIndex,\n globalSubrIndex\n );\n if (!valid) {\n return false;\n }\n state.callDepth--;\n stackSize = state.stackSize;\n continue;\n } else if (value === 11) {\n state.stackSize = stackSize;\n return true;\n } else if (value === 0 && j === data.length) {\n // Operator 0 is not used according to the current spec and\n // it's the last char and consequently it's likely a terminator.\n // So just replace it by endchar command to make OTS happy.\n data[j - 1] = 14;\n validationCommand = CharstringValidationData[14];\n } else {\n validationCommand = CharstringValidationData[value];\n }\n if (validationCommand) {\n if (validationCommand.stem) {\n state.hints += stackSize >> 1;\n if (value === 3 || value === 23) {\n // vstem or vstemhm.\n state.hasVStems = true;\n } else if (state.hasVStems && (value === 1 || value === 18)) {\n // Some browsers don't draw glyphs that specify vstems before\n // hstems. As a workaround, replace hstem (1) and hstemhm (18)\n // with a pointless vstem (3) or vstemhm (23).\n warn(\"CFF stem hints are in wrong order\");\n data[j - 1] = value === 1 ? 3 : 23;\n }\n }\n if (\"min\" in validationCommand) {\n if (!state.undefStack && stackSize < validationCommand.min) {\n warn(\n \"Not enough parameters for \" +\n validationCommand.id +\n \"; actual: \" +\n stackSize +\n \", expected: \" +\n validationCommand.min\n );\n\n if (stackSize === 0) {\n // Just \"fix\" the outline in replacing command by a endchar:\n // it could lead to wrong rendering of some glyphs or not.\n // For example, the pdf in #6132 is well-rendered.\n data[j - 1] = 14;\n return true;\n }\n return false;\n }\n }\n if (state.firstStackClearing && validationCommand.stackClearing) {\n state.firstStackClearing = false;\n // the optional character width can be found before the first\n // stack-clearing command arguments\n stackSize -= validationCommand.min;\n if (stackSize >= 2 && validationCommand.stem) {\n // there are even amount of arguments for stem commands\n stackSize %= 2;\n } else if (stackSize > 1) {\n warn(\"Found too many parameters for stack-clearing command\");\n }\n if (stackSize > 0) {\n // Width can be any number since its the difference\n // from nominalWidthX.\n state.width = stack[stackSize - 1];\n }\n }\n if (\"stackDelta\" in validationCommand) {\n if (\"stackFn\" in validationCommand) {\n validationCommand.stackFn(stack, stackSize);\n }\n stackSize += validationCommand.stackDelta;\n } else if (validationCommand.stackClearing) {\n stackSize = 0;\n } else if (validationCommand.resetStack) {\n stackSize = 0;\n state.undefStack = false;\n } else if (validationCommand.undefStack) {\n stackSize = 0;\n state.undefStack = true;\n state.firstStackClearing = false;\n }\n }\n }\n state.stackSize = stackSize;\n return true;\n }\n\n parseCharStrings({\n charStrings,\n localSubrIndex,\n globalSubrIndex,\n fdSelect,\n fdArray,\n privateDict,\n }) {\n const seacs = [];\n const widths = [];\n const count = charStrings.count;\n for (let i = 0; i < count; i++) {\n const charstring = charStrings.get(i);\n const state = {\n callDepth: 0,\n stackSize: 0,\n stack: [],\n undefStack: true,\n hints: 0,\n firstStackClearing: true,\n seac: null,\n width: null,\n hasVStems: false,\n };\n let valid = true;\n let localSubrToUse = null;\n let privateDictToUse = privateDict;\n if (fdSelect && fdArray.length) {\n const fdIndex = fdSelect.getFDIndex(i);\n if (fdIndex === -1) {\n warn(\"Glyph index is not in fd select.\");\n valid = false;\n }\n if (fdIndex >= fdArray.length) {\n warn(\"Invalid fd index for glyph index.\");\n valid = false;\n }\n if (valid) {\n privateDictToUse = fdArray[fdIndex].privateDict;\n localSubrToUse = privateDictToUse.subrsIndex;\n }\n } else if (localSubrIndex) {\n localSubrToUse = localSubrIndex;\n }\n if (valid) {\n valid = this.parseCharString(\n state,\n charstring,\n localSubrToUse,\n globalSubrIndex\n );\n }\n if (state.width !== null) {\n const nominalWidth = privateDictToUse.getByName(\"nominalWidthX\");\n widths[i] = nominalWidth + state.width;\n } else {\n const defaultWidth = privateDictToUse.getByName(\"defaultWidthX\");\n widths[i] = defaultWidth;\n }\n if (state.seac !== null) {\n seacs[i] = state.seac;\n }\n if (!valid) {\n // resetting invalid charstring to single 'endchar'\n charStrings.set(i, new Uint8Array([14]));\n }\n }\n return { charStrings, seacs, widths };\n }\n\n emptyPrivateDictionary(parentDict) {\n const privateDict = this.createDict(\n CFFPrivateDict,\n [],\n parentDict.strings\n );\n parentDict.setByKey(18, [0, 0]);\n parentDict.privateDict = privateDict;\n }\n\n parsePrivateDict(parentDict) {\n // no private dict, do nothing\n if (!parentDict.hasName(\"Private\")) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n const privateOffset = parentDict.getByName(\"Private\");\n // make sure the params are formatted correctly\n if (!Array.isArray(privateOffset) || privateOffset.length !== 2) {\n parentDict.removeByName(\"Private\");\n return;\n }\n const size = privateOffset[0];\n const offset = privateOffset[1];\n // remove empty dicts or ones that refer to invalid location\n if (size === 0 || offset >= this.bytes.length) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n\n const privateDictEnd = offset + size;\n const dictData = this.bytes.subarray(offset, privateDictEnd);\n const dict = this.parseDict(dictData);\n const privateDict = this.createDict(\n CFFPrivateDict,\n dict,\n parentDict.strings\n );\n parentDict.privateDict = privateDict;\n\n // Parse the Subrs index also since it's relative to the private dict.\n if (!privateDict.getByName(\"Subrs\")) {\n return;\n }\n const subrsOffset = privateDict.getByName(\"Subrs\");\n const relativeOffset = offset + subrsOffset;\n // Validate the offset.\n if (subrsOffset === 0 || relativeOffset >= this.bytes.length) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n const subrsIndex = this.parseIndex(relativeOffset);\n privateDict.subrsIndex = subrsIndex.obj;\n }\n\n parseCharsets(pos, length, strings, cid) {\n if (pos === 0) {\n return new CFFCharset(\n true,\n CFFCharsetPredefinedTypes.ISO_ADOBE,\n ISOAdobeCharset\n );\n } else if (pos === 1) {\n return new CFFCharset(\n true,\n CFFCharsetPredefinedTypes.EXPERT,\n ExpertCharset\n );\n } else if (pos === 2) {\n return new CFFCharset(\n true,\n CFFCharsetPredefinedTypes.EXPERT_SUBSET,\n ExpertSubsetCharset\n );\n }\n\n const bytes = this.bytes;\n const start = pos;\n const format = bytes[pos++];\n const charset = [cid ? 0 : \".notdef\"];\n let id, count, i;\n\n // subtract 1 for the .notdef glyph\n length -= 1;\n\n switch (format) {\n case 0:\n for (i = 0; i < length; i++) {\n id = (bytes[pos++] << 8) | bytes[pos++];\n charset.push(cid ? id : strings.get(id));\n }\n break;\n case 1:\n while (charset.length <= length) {\n id = (bytes[pos++] << 8) | bytes[pos++];\n count = bytes[pos++];\n for (i = 0; i <= count; i++) {\n charset.push(cid ? id++ : strings.get(id++));\n }\n }\n break;\n case 2:\n while (charset.length <= length) {\n id = (bytes[pos++] << 8) | bytes[pos++];\n count = (bytes[pos++] << 8) | bytes[pos++];\n for (i = 0; i <= count; i++) {\n charset.push(cid ? id++ : strings.get(id++));\n }\n }\n break;\n default:\n throw new FormatError(\"Unknown charset format\");\n }\n // Raw won't be needed if we actually compile the charset.\n const end = pos;\n const raw = bytes.subarray(start, end);\n\n return new CFFCharset(false, format, charset, raw);\n }\n\n parseEncoding(pos, properties, strings, charset) {\n const encoding = Object.create(null);\n const bytes = this.bytes;\n let predefined = false;\n let format, i, ii;\n let raw = null;\n\n function readSupplement() {\n const supplementsCount = bytes[pos++];\n for (i = 0; i < supplementsCount; i++) {\n const code = bytes[pos++];\n const sid = (bytes[pos++] << 8) + (bytes[pos++] & 0xff);\n encoding[code] = charset.indexOf(strings.get(sid));\n }\n }\n\n if (pos === 0 || pos === 1) {\n predefined = true;\n format = pos;\n const baseEncoding = pos ? ExpertEncoding : StandardEncoding;\n for (i = 0, ii = charset.length; i < ii; i++) {\n const index = baseEncoding.indexOf(charset[i]);\n if (index !== -1) {\n encoding[index] = i;\n }\n }\n } else {\n const dataStart = pos;\n format = bytes[pos++];\n switch (format & 0x7f) {\n case 0:\n const glyphsCount = bytes[pos++];\n for (i = 1; i <= glyphsCount; i++) {\n encoding[bytes[pos++]] = i;\n }\n break;\n\n case 1:\n const rangesCount = bytes[pos++];\n let gid = 1;\n for (i = 0; i < rangesCount; i++) {\n const start = bytes[pos++];\n const left = bytes[pos++];\n for (let j = start; j <= start + left; j++) {\n encoding[j] = gid++;\n }\n }\n break;\n\n default:\n throw new FormatError(`Unknown encoding format: ${format} in CFF`);\n }\n const dataEnd = pos;\n if (format & 0x80) {\n // hasSupplement\n // The font sanitizer does not support CFF encoding with a\n // supplement, since the encoding is not really used to map\n // between gid to glyph, let's overwrite what is declared in\n // the top dictionary to let the sanitizer think the font use\n // StandardEncoding, that's a lie but that's ok.\n bytes[dataStart] &= 0x7f;\n readSupplement();\n }\n raw = bytes.subarray(dataStart, dataEnd);\n }\n format &= 0x7f;\n return new CFFEncoding(predefined, format, encoding, raw);\n }\n\n parseFDSelect(pos, length) {\n const bytes = this.bytes;\n const format = bytes[pos++];\n const fdSelect = [];\n let i;\n\n switch (format) {\n case 0:\n for (i = 0; i < length; ++i) {\n const id = bytes[pos++];\n fdSelect.push(id);\n }\n break;\n case 3:\n const rangesCount = (bytes[pos++] << 8) | bytes[pos++];\n for (i = 0; i < rangesCount; ++i) {\n let first = (bytes[pos++] << 8) | bytes[pos++];\n if (i === 0 && first !== 0) {\n warn(\n \"parseFDSelect: The first range must have a first GID of 0\" +\n \" -- trying to recover.\"\n );\n first = 0;\n }\n const fdIndex = bytes[pos++];\n const next = (bytes[pos] << 8) | bytes[pos + 1];\n for (let j = first; j < next; ++j) {\n fdSelect.push(fdIndex);\n }\n }\n // Advance past the sentinel(next).\n pos += 2;\n break;\n default:\n throw new FormatError(`parseFDSelect: Unknown format \"${format}\".`);\n }\n if (fdSelect.length !== length) {\n throw new FormatError(\"parseFDSelect: Invalid font data.\");\n }\n\n return new CFFFDSelect(format, fdSelect);\n }\n }\n return CFFParser;\n})();\n\n// Compact Font Format\nclass CFF {\n constructor() {\n this.header = null;\n this.names = [];\n this.topDict = null;\n this.strings = new CFFStrings();\n this.globalSubrIndex = null;\n\n // The following could really be per font, but since we only have one font\n // store them here.\n this.encoding = null;\n this.charset = null;\n this.charStrings = null;\n this.fdArray = [];\n this.fdSelect = null;\n\n this.isCIDFont = false;\n }\n\n duplicateFirstGlyph() {\n // Browsers will not display a glyph at position 0. Typically glyph 0 is\n // notdef, but a number of fonts put a valid glyph there so it must be\n // duplicated and appended.\n if (this.charStrings.count >= 65535) {\n warn(\"Not enough space in charstrings to duplicate first glyph.\");\n return;\n }\n const glyphZero = this.charStrings.get(0);\n this.charStrings.add(glyphZero);\n if (this.isCIDFont) {\n this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0]);\n }\n }\n\n hasGlyphId(id) {\n if (id < 0 || id >= this.charStrings.count) {\n return false;\n }\n const glyph = this.charStrings.get(id);\n return glyph.length > 0;\n }\n}\n\nclass CFFHeader {\n constructor(major, minor, hdrSize, offSize) {\n this.major = major;\n this.minor = minor;\n this.hdrSize = hdrSize;\n this.offSize = offSize;\n }\n}\n\nclass CFFStrings {\n constructor() {\n this.strings = [];\n }\n\n get(index) {\n if (index >= 0 && index <= NUM_STANDARD_CFF_STRINGS - 1) {\n return CFFStandardStrings[index];\n }\n if (index - NUM_STANDARD_CFF_STRINGS <= this.strings.length) {\n return this.strings[index - NUM_STANDARD_CFF_STRINGS];\n }\n return CFFStandardStrings[0];\n }\n\n getSID(str) {\n let index = CFFStandardStrings.indexOf(str);\n if (index !== -1) {\n return index;\n }\n index = this.strings.indexOf(str);\n if (index !== -1) {\n return index + NUM_STANDARD_CFF_STRINGS;\n }\n return -1;\n }\n\n add(value) {\n this.strings.push(value);\n }\n\n get count() {\n return this.strings.length;\n }\n}\n\nclass CFFIndex {\n constructor() {\n this.objects = [];\n this.length = 0;\n }\n\n add(data) {\n this.length += data.length;\n this.objects.push(data);\n }\n\n set(index, data) {\n this.length += data.length - this.objects[index].length;\n this.objects[index] = data;\n }\n\n get(index) {\n return this.objects[index];\n }\n\n get count() {\n return this.objects.length;\n }\n}\n\nclass CFFDict {\n constructor(tables, strings) {\n this.keyToNameMap = tables.keyToNameMap;\n this.nameToKeyMap = tables.nameToKeyMap;\n this.defaults = tables.defaults;\n this.types = tables.types;\n this.opcodes = tables.opcodes;\n this.order = tables.order;\n this.strings = strings;\n this.values = Object.create(null);\n }\n\n // value should always be an array\n setByKey(key, value) {\n if (!(key in this.keyToNameMap)) {\n return false;\n }\n const valueLength = value.length;\n // ignore empty values\n if (valueLength === 0) {\n return true;\n }\n // Ignore invalid values (fixes bug1068432.pdf and bug1308536.pdf).\n for (let i = 0; i < valueLength; i++) {\n if (isNaN(value[i])) {\n warn('Invalid CFFDict value: \"' + value + '\" for key \"' + key + '\".');\n return true;\n }\n }\n const type = this.types[key];\n // remove the array wrapping these types of values\n if (type === \"num\" || type === \"sid\" || type === \"offset\") {\n value = value[0];\n }\n this.values[key] = value;\n return true;\n }\n\n setByName(name, value) {\n if (!(name in this.nameToKeyMap)) {\n throw new FormatError(`Invalid dictionary name \"${name}\"`);\n }\n this.values[this.nameToKeyMap[name]] = value;\n }\n\n hasName(name) {\n return this.nameToKeyMap[name] in this.values;\n }\n\n getByName(name) {\n if (!(name in this.nameToKeyMap)) {\n throw new FormatError(`Invalid dictionary name ${name}\"`);\n }\n const key = this.nameToKeyMap[name];\n if (!(key in this.values)) {\n return this.defaults[key];\n }\n return this.values[key];\n }\n\n removeByName(name) {\n delete this.values[this.nameToKeyMap[name]];\n }\n\n static createTables(layout) {\n const tables = {\n keyToNameMap: {},\n nameToKeyMap: {},\n defaults: {},\n types: {},\n opcodes: {},\n order: [],\n };\n for (let i = 0, ii = layout.length; i < ii; ++i) {\n const entry = layout[i];\n const key = Array.isArray(entry[0])\n ? (entry[0][0] << 8) + entry[0][1]\n : entry[0];\n tables.keyToNameMap[key] = entry[1];\n tables.nameToKeyMap[entry[1]] = key;\n tables.types[key] = entry[2];\n tables.defaults[key] = entry[3];\n tables.opcodes[key] = Array.isArray(entry[0]) ? entry[0] : [entry[0]];\n tables.order.push(key);\n }\n return tables;\n }\n}\n\nconst CFFTopDict = (function CFFTopDictClosure() {\n const layout = [\n [[12, 30], \"ROS\", [\"sid\", \"sid\", \"num\"], null],\n [[12, 20], \"SyntheticBase\", \"num\", null],\n [0, \"version\", \"sid\", null],\n [1, \"Notice\", \"sid\", null],\n [[12, 0], \"Copyright\", \"sid\", null],\n [2, \"FullName\", \"sid\", null],\n [3, \"FamilyName\", \"sid\", null],\n [4, \"Weight\", \"sid\", null],\n [[12, 1], \"isFixedPitch\", \"num\", 0],\n [[12, 2], \"ItalicAngle\", \"num\", 0],\n [[12, 3], \"UnderlinePosition\", \"num\", -100],\n [[12, 4], \"UnderlineThickness\", \"num\", 50],\n [[12, 5], \"PaintType\", \"num\", 0],\n [[12, 6], \"CharstringType\", \"num\", 2],\n // prettier-ignore\n [[12, 7], \"FontMatrix\", [\"num\", \"num\", \"num\", \"num\", \"num\", \"num\"],\n [0.001, 0, 0, 0.001, 0, 0]],\n [13, \"UniqueID\", \"num\", null],\n [5, \"FontBBox\", [\"num\", \"num\", \"num\", \"num\"], [0, 0, 0, 0]],\n [[12, 8], \"StrokeWidth\", \"num\", 0],\n [14, \"XUID\", \"array\", null],\n [15, \"charset\", \"offset\", 0],\n [16, \"Encoding\", \"offset\", 0],\n [17, \"CharStrings\", \"offset\", 0],\n [18, \"Private\", [\"offset\", \"offset\"], null],\n [[12, 21], \"PostScript\", \"sid\", null],\n [[12, 22], \"BaseFontName\", \"sid\", null],\n [[12, 23], \"BaseFontBlend\", \"delta\", null],\n [[12, 31], \"CIDFontVersion\", \"num\", 0],\n [[12, 32], \"CIDFontRevision\", \"num\", 0],\n [[12, 33], \"CIDFontType\", \"num\", 0],\n [[12, 34], \"CIDCount\", \"num\", 8720],\n [[12, 35], \"UIDBase\", \"num\", null],\n // XXX: CID Fonts on DirectWrite 6.1 only seem to work if FDSelect comes\n // before FDArray.\n [[12, 37], \"FDSelect\", \"offset\", null],\n [[12, 36], \"FDArray\", \"offset\", null],\n [[12, 38], \"FontName\", \"sid\", null],\n ];\n let tables = null;\n\n // eslint-disable-next-line no-shadow\n class CFFTopDict extends CFFDict {\n constructor(strings) {\n if (tables === null) {\n tables = CFFDict.createTables(layout);\n }\n super(tables, strings);\n this.privateDict = null;\n }\n }\n return CFFTopDict;\n})();\n\nconst CFFPrivateDict = (function CFFPrivateDictClosure() {\n const layout = [\n [6, \"BlueValues\", \"delta\", null],\n [7, \"OtherBlues\", \"delta\", null],\n [8, \"FamilyBlues\", \"delta\", null],\n [9, \"FamilyOtherBlues\", \"delta\", null],\n [[12, 9], \"BlueScale\", \"num\", 0.039625],\n [[12, 10], \"BlueShift\", \"num\", 7],\n [[12, 11], \"BlueFuzz\", \"num\", 1],\n [10, \"StdHW\", \"num\", null],\n [11, \"StdVW\", \"num\", null],\n [[12, 12], \"StemSnapH\", \"delta\", null],\n [[12, 13], \"StemSnapV\", \"delta\", null],\n [[12, 14], \"ForceBold\", \"num\", 0],\n [[12, 17], \"LanguageGroup\", \"num\", 0],\n [[12, 18], \"ExpansionFactor\", \"num\", 0.06],\n [[12, 19], \"initialRandomSeed\", \"num\", 0],\n [20, \"defaultWidthX\", \"num\", 0],\n [21, \"nominalWidthX\", \"num\", 0],\n [19, \"Subrs\", \"offset\", null],\n ];\n let tables = null;\n\n // eslint-disable-next-line no-shadow\n class CFFPrivateDict extends CFFDict {\n constructor(strings) {\n if (tables === null) {\n tables = CFFDict.createTables(layout);\n }\n super(tables, strings);\n this.subrsIndex = null;\n }\n }\n return CFFPrivateDict;\n})();\n\nconst CFFCharsetPredefinedTypes = {\n ISO_ADOBE: 0,\n EXPERT: 1,\n EXPERT_SUBSET: 2,\n};\n\nclass CFFCharset {\n constructor(predefined, format, charset, raw) {\n this.predefined = predefined;\n this.format = format;\n this.charset = charset;\n this.raw = raw;\n }\n}\n\nclass CFFEncoding {\n constructor(predefined, format, encoding, raw) {\n this.predefined = predefined;\n this.format = format;\n this.encoding = encoding;\n this.raw = raw;\n }\n}\n\nclass CFFFDSelect {\n constructor(format, fdSelect) {\n this.format = format;\n this.fdSelect = fdSelect;\n }\n\n getFDIndex(glyphIndex) {\n if (glyphIndex < 0 || glyphIndex >= this.fdSelect.length) {\n return -1;\n }\n return this.fdSelect[glyphIndex];\n }\n}\n\n// Helper class to keep track of where an offset is within the data and helps\n// filling in that offset once it's known.\nclass CFFOffsetTracker {\n constructor() {\n this.offsets = Object.create(null);\n }\n\n isTracking(key) {\n return key in this.offsets;\n }\n\n track(key, location) {\n if (key in this.offsets) {\n throw new FormatError(`Already tracking location of ${key}`);\n }\n this.offsets[key] = location;\n }\n\n offset(value) {\n for (const key in this.offsets) {\n this.offsets[key] += value;\n }\n }\n\n setEntryLocation(key, values, output) {\n if (!(key in this.offsets)) {\n throw new FormatError(`Not tracking location of ${key}`);\n }\n const data = output.data;\n const dataOffset = this.offsets[key];\n const size = 5;\n for (let i = 0, ii = values.length; i < ii; ++i) {\n const offset0 = i * size + dataOffset;\n const offset1 = offset0 + 1;\n const offset2 = offset0 + 2;\n const offset3 = offset0 + 3;\n const offset4 = offset0 + 4;\n // It's easy to screw up offsets so perform this sanity check.\n if (\n data[offset0] !== 0x1d ||\n data[offset1] !== 0 ||\n data[offset2] !== 0 ||\n data[offset3] !== 0 ||\n data[offset4] !== 0\n ) {\n throw new FormatError(\"writing to an offset that is not empty\");\n }\n const value = values[i];\n data[offset0] = 0x1d;\n data[offset1] = (value >> 24) & 0xff;\n data[offset2] = (value >> 16) & 0xff;\n data[offset3] = (value >> 8) & 0xff;\n data[offset4] = value & 0xff;\n }\n }\n}\n\n// Takes a CFF and converts it to the binary representation.\nclass CFFCompiler {\n constructor(cff) {\n this.cff = cff;\n }\n\n compile() {\n const cff = this.cff;\n const output = {\n data: [],\n length: 0,\n add: function CFFCompiler_add(data) {\n this.data = this.data.concat(data);\n this.length = this.data.length;\n },\n };\n\n // Compile the five entries that must be in order.\n const header = this.compileHeader(cff.header);\n output.add(header);\n\n const nameIndex = this.compileNameIndex(cff.names);\n output.add(nameIndex);\n\n if (cff.isCIDFont) {\n // The spec is unclear on how font matrices should relate to each other\n // when there is one in the main top dict and the sub top dicts.\n // Windows handles this differently than linux and osx so we have to\n // normalize to work on all.\n // Rules based off of some mailing list discussions:\n // - If main font has a matrix and subfont doesn't, use the main matrix.\n // - If no main font matrix and there is a subfont matrix, use the\n // subfont matrix.\n // - If both have matrices, concat together.\n // - If neither have matrices, use default.\n // To make this work on all platforms we move the top matrix into each\n // sub top dict and concat if necessary.\n if (cff.topDict.hasName(\"FontMatrix\")) {\n const base = cff.topDict.getByName(\"FontMatrix\");\n cff.topDict.removeByName(\"FontMatrix\");\n for (let i = 0, ii = cff.fdArray.length; i < ii; i++) {\n const subDict = cff.fdArray[i];\n let matrix = base.slice(0);\n if (subDict.hasName(\"FontMatrix\")) {\n matrix = Util.transform(matrix, subDict.getByName(\"FontMatrix\"));\n }\n subDict.setByName(\"FontMatrix\", matrix);\n }\n }\n }\n\n const xuid = cff.topDict.getByName(\"XUID\");\n if (xuid && xuid.length > 16) {\n // Length of XUID array must not be greater than 16 (issue #12399).\n cff.topDict.removeByName(\"XUID\");\n }\n\n cff.topDict.setByName(\"charset\", 0);\n let compiled = this.compileTopDicts(\n [cff.topDict],\n output.length,\n cff.isCIDFont\n );\n output.add(compiled.output);\n const topDictTracker = compiled.trackers[0];\n\n const stringIndex = this.compileStringIndex(cff.strings.strings);\n output.add(stringIndex);\n\n const globalSubrIndex = this.compileIndex(cff.globalSubrIndex);\n output.add(globalSubrIndex);\n\n // Now start on the other entries that have no specific order.\n if (cff.encoding && cff.topDict.hasName(\"Encoding\")) {\n if (cff.encoding.predefined) {\n topDictTracker.setEntryLocation(\n \"Encoding\",\n [cff.encoding.format],\n output\n );\n } else {\n const encoding = this.compileEncoding(cff.encoding);\n topDictTracker.setEntryLocation(\"Encoding\", [output.length], output);\n output.add(encoding);\n }\n }\n const charset = this.compileCharset(\n cff.charset,\n cff.charStrings.count,\n cff.strings,\n cff.isCIDFont\n );\n topDictTracker.setEntryLocation(\"charset\", [output.length], output);\n output.add(charset);\n\n const charStrings = this.compileCharStrings(cff.charStrings);\n topDictTracker.setEntryLocation(\"CharStrings\", [output.length], output);\n output.add(charStrings);\n\n if (cff.isCIDFont) {\n // For some reason FDSelect must be in front of FDArray on windows. OSX\n // and linux don't seem to care.\n topDictTracker.setEntryLocation(\"FDSelect\", [output.length], output);\n const fdSelect = this.compileFDSelect(cff.fdSelect);\n output.add(fdSelect);\n // It is unclear if the sub font dictionary can have CID related\n // dictionary keys, but the sanitizer doesn't like them so remove them.\n compiled = this.compileTopDicts(cff.fdArray, output.length, true);\n topDictTracker.setEntryLocation(\"FDArray\", [output.length], output);\n output.add(compiled.output);\n const fontDictTrackers = compiled.trackers;\n\n this.compilePrivateDicts(cff.fdArray, fontDictTrackers, output);\n }\n\n this.compilePrivateDicts([cff.topDict], [topDictTracker], output);\n\n // If the font data ends with INDEX whose object data is zero-length,\n // the sanitizer will bail out. Add a dummy byte to avoid that.\n output.add([0]);\n\n return output.data;\n }\n\n encodeNumber(value) {\n if (Number.isInteger(value)) {\n return this.encodeInteger(value);\n }\n return this.encodeFloat(value);\n }\n\n static get EncodeFloatRegExp() {\n return shadow(\n this,\n \"EncodeFloatRegExp\",\n /\\.(\\d*?)(?:9{5,20}|0{5,20})\\d{0,2}(?:e(.+)|$)/\n );\n }\n\n encodeFloat(num) {\n let value = num.toString();\n\n // Rounding inaccurate doubles.\n const m = CFFCompiler.EncodeFloatRegExp.exec(value);\n if (m) {\n const epsilon = parseFloat(\"1e\" + ((m[2] ? +m[2] : 0) + m[1].length));\n value = (Math.round(num * epsilon) / epsilon).toString();\n }\n\n let nibbles = \"\";\n let i, ii;\n for (i = 0, ii = value.length; i < ii; ++i) {\n const a = value[i];\n if (a === \"e\") {\n nibbles += value[++i] === \"-\" ? \"c\" : \"b\";\n } else if (a === \".\") {\n nibbles += \"a\";\n } else if (a === \"-\") {\n nibbles += \"e\";\n } else {\n nibbles += a;\n }\n }\n nibbles += nibbles.length & 1 ? \"f\" : \"ff\";\n const out = [30];\n for (i = 0, ii = nibbles.length; i < ii; i += 2) {\n out.push(parseInt(nibbles.substring(i, i + 2), 16));\n }\n return out;\n }\n\n encodeInteger(value) {\n let code;\n if (value >= -107 && value <= 107) {\n code = [value + 139];\n } else if (value >= 108 && value <= 1131) {\n value -= 108;\n code = [(value >> 8) + 247, value & 0xff];\n } else if (value >= -1131 && value <= -108) {\n value = -value - 108;\n code = [(value >> 8) + 251, value & 0xff];\n } else if (value >= -32768 && value <= 32767) {\n code = [0x1c, (value >> 8) & 0xff, value & 0xff];\n } else {\n code = [\n 0x1d,\n (value >> 24) & 0xff,\n (value >> 16) & 0xff,\n (value >> 8) & 0xff,\n value & 0xff,\n ];\n }\n return code;\n }\n\n compileHeader(header) {\n // `header.hdrSize` can be any value but we only write 4 values\n // so header size is 4 (prevents OTS from rejecting the font).\n return [header.major, header.minor, 4, header.offSize];\n }\n\n compileNameIndex(names) {\n const nameIndex = new CFFIndex();\n for (let i = 0, ii = names.length; i < ii; ++i) {\n const name = names[i];\n // OTS doesn't allow names to be over 127 characters.\n const length = Math.min(name.length, 127);\n let sanitizedName = new Array(length);\n for (let j = 0; j < length; j++) {\n // OTS requires chars to be between a range and not certain other\n // chars.\n let char = name[j];\n if (\n char < \"!\" ||\n char > \"~\" ||\n char === \"[\" ||\n char === \"]\" ||\n char === \"(\" ||\n char === \")\" ||\n char === \"{\" ||\n char === \"}\" ||\n char === \"<\" ||\n char === \">\" ||\n char === \"/\" ||\n char === \"%\"\n ) {\n char = \"_\";\n }\n sanitizedName[j] = char;\n }\n sanitizedName = sanitizedName.join(\"\");\n\n if (sanitizedName === \"\") {\n sanitizedName = \"Bad_Font_Name\";\n }\n nameIndex.add(stringToBytes(sanitizedName));\n }\n return this.compileIndex(nameIndex);\n }\n\n compileTopDicts(dicts, length, removeCidKeys) {\n const fontDictTrackers = [];\n let fdArrayIndex = new CFFIndex();\n for (let i = 0, ii = dicts.length; i < ii; ++i) {\n const fontDict = dicts[i];\n if (removeCidKeys) {\n fontDict.removeByName(\"CIDFontVersion\");\n fontDict.removeByName(\"CIDFontRevision\");\n fontDict.removeByName(\"CIDFontType\");\n fontDict.removeByName(\"CIDCount\");\n fontDict.removeByName(\"UIDBase\");\n }\n const fontDictTracker = new CFFOffsetTracker();\n const fontDictData = this.compileDict(fontDict, fontDictTracker);\n fontDictTrackers.push(fontDictTracker);\n fdArrayIndex.add(fontDictData);\n fontDictTracker.offset(length);\n }\n fdArrayIndex = this.compileIndex(fdArrayIndex, fontDictTrackers);\n return {\n trackers: fontDictTrackers,\n output: fdArrayIndex,\n };\n }\n\n compilePrivateDicts(dicts, trackers, output) {\n for (let i = 0, ii = dicts.length; i < ii; ++i) {\n const fontDict = dicts[i];\n const privateDict = fontDict.privateDict;\n if (!privateDict || !fontDict.hasName(\"Private\")) {\n throw new FormatError(\"There must be a private dictionary.\");\n }\n const privateDictTracker = new CFFOffsetTracker();\n const privateDictData = this.compileDict(privateDict, privateDictTracker);\n\n let outputLength = output.length;\n privateDictTracker.offset(outputLength);\n if (!privateDictData.length) {\n // The private dictionary was empty, set the output length to zero to\n // ensure the offset length isn't out of bounds in the eyes of the\n // sanitizer.\n outputLength = 0;\n }\n\n trackers[i].setEntryLocation(\n \"Private\",\n [privateDictData.length, outputLength],\n output\n );\n output.add(privateDictData);\n\n if (privateDict.subrsIndex && privateDict.hasName(\"Subrs\")) {\n const subrs = this.compileIndex(privateDict.subrsIndex);\n privateDictTracker.setEntryLocation(\n \"Subrs\",\n [privateDictData.length],\n output\n );\n output.add(subrs);\n }\n }\n }\n\n compileDict(dict, offsetTracker) {\n let out = [];\n // The dictionary keys must be in a certain order.\n const order = dict.order;\n for (let i = 0; i < order.length; ++i) {\n const key = order[i];\n if (!(key in dict.values)) {\n continue;\n }\n let values = dict.values[key];\n let types = dict.types[key];\n if (!Array.isArray(types)) {\n types = [types];\n }\n if (!Array.isArray(values)) {\n values = [values];\n }\n\n // Remove any empty dict values.\n if (values.length === 0) {\n continue;\n }\n\n for (let j = 0, jj = types.length; j < jj; ++j) {\n const type = types[j];\n const value = values[j];\n switch (type) {\n case \"num\":\n case \"sid\":\n out = out.concat(this.encodeNumber(value));\n break;\n case \"offset\":\n // For offsets we just insert a 32bit integer so we don't have to\n // deal with figuring out the length of the offset when it gets\n // replaced later on by the compiler.\n const name = dict.keyToNameMap[key];\n // Some offsets have the offset and the length, so just record the\n // position of the first one.\n if (!offsetTracker.isTracking(name)) {\n offsetTracker.track(name, out.length);\n }\n out = out.concat([0x1d, 0, 0, 0, 0]);\n break;\n case \"array\":\n case \"delta\":\n out = out.concat(this.encodeNumber(value));\n for (let k = 1, kk = values.length; k < kk; ++k) {\n out = out.concat(this.encodeNumber(values[k]));\n }\n break;\n default:\n throw new FormatError(`Unknown data type of ${type}`);\n }\n }\n out = out.concat(dict.opcodes[key]);\n }\n return out;\n }\n\n compileStringIndex(strings) {\n const stringIndex = new CFFIndex();\n for (let i = 0, ii = strings.length; i < ii; ++i) {\n stringIndex.add(stringToBytes(strings[i]));\n }\n return this.compileIndex(stringIndex);\n }\n\n compileGlobalSubrIndex() {\n const globalSubrIndex = this.cff.globalSubrIndex;\n this.out.writeByteArray(this.compileIndex(globalSubrIndex));\n }\n\n compileCharStrings(charStrings) {\n const charStringsIndex = new CFFIndex();\n for (let i = 0; i < charStrings.count; i++) {\n const glyph = charStrings.get(i);\n // If the CharString outline is empty, replace it with .notdef to\n // prevent OTS from rejecting the font (fixes bug1252420.pdf).\n if (glyph.length === 0) {\n charStringsIndex.add(new Uint8Array([0x8b, 0x0e]));\n continue;\n }\n charStringsIndex.add(glyph);\n }\n return this.compileIndex(charStringsIndex);\n }\n\n compileCharset(charset, numGlyphs, strings, isCIDFont) {\n // Freetype requires the number of charset strings be correct and MacOS\n // requires a valid mapping for printing.\n let out;\n const numGlyphsLessNotDef = numGlyphs - 1;\n if (isCIDFont) {\n // In a CID font, the charset is a mapping of CIDs not SIDs so just\n // create an identity mapping.\n out = new Uint8Array([\n 2, // format\n 0, // first CID upper byte\n 0, // first CID lower byte\n (numGlyphsLessNotDef >> 8) & 0xff,\n numGlyphsLessNotDef & 0xff,\n ]);\n } else {\n const length = 1 + numGlyphsLessNotDef * 2;\n out = new Uint8Array(length);\n out[0] = 0; // format 0\n let charsetIndex = 0;\n const numCharsets = charset.charset.length;\n let warned = false;\n for (let i = 1; i < out.length; i += 2) {\n let sid = 0;\n if (charsetIndex < numCharsets) {\n const name = charset.charset[charsetIndex++];\n sid = strings.getSID(name);\n if (sid === -1) {\n sid = 0;\n if (!warned) {\n warned = true;\n warn(`Couldn't find ${name} in CFF strings`);\n }\n }\n }\n out[i] = (sid >> 8) & 0xff;\n out[i + 1] = sid & 0xff;\n }\n }\n return this.compileTypedArray(out);\n }\n\n compileEncoding(encoding) {\n return this.compileTypedArray(encoding.raw);\n }\n\n compileFDSelect(fdSelect) {\n const format = fdSelect.format;\n let out, i;\n switch (format) {\n case 0:\n out = new Uint8Array(1 + fdSelect.fdSelect.length);\n out[0] = format;\n for (i = 0; i < fdSelect.fdSelect.length; i++) {\n out[i + 1] = fdSelect.fdSelect[i];\n }\n break;\n case 3:\n const start = 0;\n let lastFD = fdSelect.fdSelect[0];\n const ranges = [\n format,\n 0, // nRanges place holder\n 0, // nRanges place holder\n (start >> 8) & 0xff,\n start & 0xff,\n lastFD,\n ];\n for (i = 1; i < fdSelect.fdSelect.length; i++) {\n const currentFD = fdSelect.fdSelect[i];\n if (currentFD !== lastFD) {\n ranges.push((i >> 8) & 0xff, i & 0xff, currentFD);\n lastFD = currentFD;\n }\n }\n // 3 bytes are pushed for every range and there are 3 header bytes.\n const numRanges = (ranges.length - 3) / 3;\n ranges[1] = (numRanges >> 8) & 0xff;\n ranges[2] = numRanges & 0xff;\n // sentinel\n ranges.push((i >> 8) & 0xff, i & 0xff);\n out = new Uint8Array(ranges);\n break;\n }\n return this.compileTypedArray(out);\n }\n\n compileTypedArray(data) {\n const out = [];\n for (let i = 0, ii = data.length; i < ii; ++i) {\n out[i] = data[i];\n }\n return out;\n }\n\n compileIndex(index, trackers = []) {\n const objects = index.objects;\n // First 2 bytes contains the number of objects contained into this index\n const count = objects.length;\n\n // If there is no object, just create an index. This technically\n // should just be [0, 0] but OTS has an issue with that.\n if (count === 0) {\n return [0, 0, 0];\n }\n\n const data = [(count >> 8) & 0xff, count & 0xff];\n\n let lastOffset = 1,\n i;\n for (i = 0; i < count; ++i) {\n lastOffset += objects[i].length;\n }\n\n let offsetSize;\n if (lastOffset < 0x100) {\n offsetSize = 1;\n } else if (lastOffset < 0x10000) {\n offsetSize = 2;\n } else if (lastOffset < 0x1000000) {\n offsetSize = 3;\n } else {\n offsetSize = 4;\n }\n\n // Next byte contains the offset size use to reference object in the file\n data.push(offsetSize);\n\n // Add another offset after this one because we need a new offset\n let relativeOffset = 1;\n for (i = 0; i < count + 1; i++) {\n if (offsetSize === 1) {\n data.push(relativeOffset & 0xff);\n } else if (offsetSize === 2) {\n data.push((relativeOffset >> 8) & 0xff, relativeOffset & 0xff);\n } else if (offsetSize === 3) {\n data.push(\n (relativeOffset >> 16) & 0xff,\n (relativeOffset >> 8) & 0xff,\n relativeOffset & 0xff\n );\n } else {\n data.push(\n (relativeOffset >>> 24) & 0xff,\n (relativeOffset >> 16) & 0xff,\n (relativeOffset >> 8) & 0xff,\n relativeOffset & 0xff\n );\n }\n\n if (objects[i]) {\n relativeOffset += objects[i].length;\n }\n }\n\n for (i = 0; i < count; i++) {\n // Notify the tracker where the object will be offset in the data.\n if (trackers[i]) {\n trackers[i].offset(data.length);\n }\n for (let j = 0, jj = objects[i].length; j < jj; j++) {\n data.push(objects[i][j]);\n }\n }\n return data;\n }\n}\n\nexport {\n CFF,\n CFFCharset,\n CFFCompiler,\n CFFFDSelect,\n CFFHeader,\n CFFIndex,\n CFFParser,\n CFFPrivateDict,\n CFFStandardStrings,\n CFFStrings,\n CFFTopDict,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// prettier-ignore\nconst ISOAdobeCharset = [\n \".notdef\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\",\n \"percent\", \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\",\n \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\",\n \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\",\n \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\",\n \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\",\n \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\",\n \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\",\n \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\",\n \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\",\n \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"exclamdown\", \"cent\",\n \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\",\n \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\",\n \"guilsinglright\", \"fi\", \"fl\", \"endash\", \"dagger\", \"daggerdbl\",\n \"periodcentered\", \"paragraph\", \"bullet\", \"quotesinglbase\",\n \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\",\n \"perthousand\", \"questiondown\", \"grave\", \"acute\", \"circumflex\", \"tilde\",\n \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"ring\", \"cedilla\",\n \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"AE\", \"ordfeminine\",\n \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"ae\", \"dotlessi\", \"lslash\",\n \"oslash\", \"oe\", \"germandbls\", \"onesuperior\", \"logicalnot\", \"mu\",\n \"trademark\", \"Eth\", \"onehalf\", \"plusminus\", \"Thorn\", \"onequarter\",\n \"divide\", \"brokenbar\", \"degree\", \"thorn\", \"threequarters\", \"twosuperior\",\n \"registered\", \"minus\", \"eth\", \"multiply\", \"threesuperior\", \"copyright\",\n \"Aacute\", \"Acircumflex\", \"Adieresis\", \"Agrave\", \"Aring\", \"Atilde\",\n \"Ccedilla\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Egrave\", \"Iacute\",\n \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Ntilde\", \"Oacute\", \"Ocircumflex\",\n \"Odieresis\", \"Ograve\", \"Otilde\", \"Scaron\", \"Uacute\", \"Ucircumflex\",\n \"Udieresis\", \"Ugrave\", \"Yacute\", \"Ydieresis\", \"Zcaron\", \"aacute\",\n \"acircumflex\", \"adieresis\", \"agrave\", \"aring\", \"atilde\", \"ccedilla\",\n \"eacute\", \"ecircumflex\", \"edieresis\", \"egrave\", \"iacute\", \"icircumflex\",\n \"idieresis\", \"igrave\", \"ntilde\", \"oacute\", \"ocircumflex\", \"odieresis\",\n \"ograve\", \"otilde\", \"scaron\", \"uacute\", \"ucircumflex\", \"udieresis\",\n \"ugrave\", \"yacute\", \"ydieresis\", \"zcaron\"\n];\n\n// prettier-ignore\nconst ExpertCharset = [\n \".notdef\", \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"dollaroldstyle\",\n \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\",\n \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\",\n \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\",\n \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\",\n \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\",\n \"colon\", \"semicolon\", \"commasuperior\", \"threequartersemdash\",\n \"periodsuperior\", \"questionsmall\", \"asuperior\", \"bsuperior\",\n \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\",\n \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\",\n \"tsuperior\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\",\n \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\",\n \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\",\n \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\",\n \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\",\n \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\",\n \"onefitted\", \"rupiah\", \"Tildesmall\", \"exclamdownsmall\", \"centoldstyle\",\n \"Lslashsmall\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\",\n \"Brevesmall\", \"Caronsmall\", \"Dotaccentsmall\", \"Macronsmall\",\n \"figuredash\", \"hypheninferior\", \"Ogoneksmall\", \"Ringsmall\",\n \"Cedillasmall\", \"onequarter\", \"onehalf\", \"threequarters\",\n \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"onesuperior\",\n \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\",\n \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\",\n \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\",\n \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\",\n \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\",\n \"periodinferior\", \"commainferior\", \"Agravesmall\", \"Aacutesmall\",\n \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\",\n \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\",\n \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\",\n \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\",\n \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\",\n \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\",\n \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\",\n \"Ydieresissmall\"\n];\n\n// prettier-ignore\nconst ExpertSubsetCharset = [\n \".notdef\", \"space\", \"dollaroldstyle\", \"dollarsuperior\",\n \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\",\n \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\",\n \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\",\n \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\",\n \"eightoldstyle\", \"nineoldstyle\", \"colon\", \"semicolon\", \"commasuperior\",\n \"threequartersemdash\", \"periodsuperior\", \"asuperior\", \"bsuperior\",\n \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\",\n \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\",\n \"tsuperior\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\",\n \"parenrightinferior\", \"hyphensuperior\", \"colonmonetary\", \"onefitted\",\n \"rupiah\", \"centoldstyle\", \"figuredash\", \"hypheninferior\", \"onequarter\",\n \"onehalf\", \"threequarters\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"onesuperior\",\n \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\",\n \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\",\n \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\",\n \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\",\n \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\",\n \"periodinferior\", \"commainferior\"\n];\n\nexport { ExpertCharset, ExpertSubsetCharset, ISOAdobeCharset };\n","/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getLookupTableFactory } from \"./core_utils.js\";\nimport { normalizeFontName } from \"./fonts_utils.js\";\n\n/**\n * Hold a map of decoded fonts and of the standard fourteen Type1\n * fonts and their acronyms.\n */\nconst getStdFontMap = getLookupTableFactory(function (t) {\n // The standard 14 fonts:\n t[\"Times-Roman\"] = \"Times-Roman\";\n t.Helvetica = \"Helvetica\";\n t.Courier = \"Courier\";\n t.Symbol = \"Symbol\";\n t[\"Times-Bold\"] = \"Times-Bold\";\n t[\"Helvetica-Bold\"] = \"Helvetica-Bold\";\n t[\"Courier-Bold\"] = \"Courier-Bold\";\n t.ZapfDingbats = \"ZapfDingbats\";\n t[\"Times-Italic\"] = \"Times-Italic\";\n t[\"Helvetica-Oblique\"] = \"Helvetica-Oblique\";\n t[\"Courier-Oblique\"] = \"Courier-Oblique\";\n t[\"Times-BoldItalic\"] = \"Times-BoldItalic\";\n t[\"Helvetica-BoldOblique\"] = \"Helvetica-BoldOblique\";\n t[\"Courier-BoldOblique\"] = \"Courier-BoldOblique\";\n\n // Extra mappings\n t.ArialNarrow = \"Helvetica\";\n t[\"ArialNarrow-Bold\"] = \"Helvetica-Bold\";\n t[\"ArialNarrow-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"ArialNarrow-Italic\"] = \"Helvetica-Oblique\";\n t.ArialBlack = \"Helvetica\";\n t[\"ArialBlack-Bold\"] = \"Helvetica-Bold\";\n t[\"ArialBlack-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"ArialBlack-Italic\"] = \"Helvetica-Oblique\";\n t[\"Arial-Black\"] = \"Helvetica\";\n t[\"Arial-Black-Bold\"] = \"Helvetica-Bold\";\n t[\"Arial-Black-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Arial-Black-Italic\"] = \"Helvetica-Oblique\";\n t.Arial = \"Helvetica\";\n t[\"Arial-Bold\"] = \"Helvetica-Bold\";\n t[\"Arial-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Arial-Italic\"] = \"Helvetica-Oblique\";\n t[\"Arial-BoldItalicMT\"] = \"Helvetica-BoldOblique\";\n t[\"Arial-BoldMT\"] = \"Helvetica-Bold\";\n t[\"Arial-ItalicMT\"] = \"Helvetica-Oblique\";\n t.ArialMT = \"Helvetica\";\n t[\"Courier-BoldItalic\"] = \"Courier-BoldOblique\";\n t[\"Courier-Italic\"] = \"Courier-Oblique\";\n t.CourierNew = \"Courier\";\n t[\"CourierNew-Bold\"] = \"Courier-Bold\";\n t[\"CourierNew-BoldItalic\"] = \"Courier-BoldOblique\";\n t[\"CourierNew-Italic\"] = \"Courier-Oblique\";\n t[\"CourierNewPS-BoldItalicMT\"] = \"Courier-BoldOblique\";\n t[\"CourierNewPS-BoldMT\"] = \"Courier-Bold\";\n t[\"CourierNewPS-ItalicMT\"] = \"Courier-Oblique\";\n t.CourierNewPSMT = \"Courier\";\n t[\"Helvetica-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Helvetica-Italic\"] = \"Helvetica-Oblique\";\n t[\"Symbol-Bold\"] = \"Symbol\";\n t[\"Symbol-BoldItalic\"] = \"Symbol\";\n t[\"Symbol-Italic\"] = \"Symbol\";\n t.TimesNewRoman = \"Times-Roman\";\n t[\"TimesNewRoman-Bold\"] = \"Times-Bold\";\n t[\"TimesNewRoman-BoldItalic\"] = \"Times-BoldItalic\";\n t[\"TimesNewRoman-Italic\"] = \"Times-Italic\";\n t.TimesNewRomanPS = \"Times-Roman\";\n t[\"TimesNewRomanPS-Bold\"] = \"Times-Bold\";\n t[\"TimesNewRomanPS-BoldItalic\"] = \"Times-BoldItalic\";\n t[\"TimesNewRomanPS-BoldItalicMT\"] = \"Times-BoldItalic\";\n t[\"TimesNewRomanPS-BoldMT\"] = \"Times-Bold\";\n t[\"TimesNewRomanPS-Italic\"] = \"Times-Italic\";\n t[\"TimesNewRomanPS-ItalicMT\"] = \"Times-Italic\";\n t.TimesNewRomanPSMT = \"Times-Roman\";\n t[\"TimesNewRomanPSMT-Bold\"] = \"Times-Bold\";\n t[\"TimesNewRomanPSMT-BoldItalic\"] = \"Times-BoldItalic\";\n t[\"TimesNewRomanPSMT-Italic\"] = \"Times-Italic\";\n});\n\n// Contains mapping for standard fonts and xfa fonts.\nconst getFontNameToFileMap = getLookupTableFactory(function (t) {\n t.Courier = \"FoxitFixed.pfb\";\n t[\"Courier-Bold\"] = \"FoxitFixedBold.pfb\";\n t[\"Courier-BoldOblique\"] = \"FoxitFixedBoldItalic.pfb\";\n t[\"Courier-Oblique\"] = \"FoxitFixedItalic.pfb\";\n t.Helvetica = \"FoxitSans.pfb\";\n t[\"Helvetica-Bold\"] = \"FoxitSansBold.pfb\";\n t[\"Helvetica-BoldOblique\"] = \"FoxitSansBoldItalic.pfb\";\n t[\"Helvetica-Oblique\"] = \"FoxitSansItalic.pfb\";\n t[\"Times-Roman\"] = \"FoxitSerif.pfb\";\n t[\"Times-Bold\"] = \"FoxitSerifBold.pfb\";\n t[\"Times-BoldItalic\"] = \"FoxitSerifBoldItalic.pfb\";\n t[\"Times-Italic\"] = \"FoxitSerifItalic.pfb\";\n t.Symbol = \"FoxitSymbol.pfb\";\n t.ZapfDingbats = \"FoxitDingbats.pfb\";\n t[\"LiberationSans-Regular\"] = \"LiberationSans-Regular.ttf\";\n t[\"LiberationSans-Bold\"] = \"LiberationSans-Bold.ttf\";\n t[\"LiberationSans-Italic\"] = \"LiberationSans-Italic.ttf\";\n t[\"LiberationSans-BoldItalic\"] = \"LiberationSans-BoldItalic.ttf\";\n});\n\n/**\n * Holds the map of the non-standard fonts that might be included as\n * a standard fonts without glyph data.\n */\nconst getNonStdFontMap = getLookupTableFactory(function (t) {\n t.Calibri = \"Helvetica\";\n t[\"Calibri-Bold\"] = \"Helvetica-Bold\";\n t[\"Calibri-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Calibri-Italic\"] = \"Helvetica-Oblique\";\n t.CenturyGothic = \"Helvetica\";\n t[\"CenturyGothic-Bold\"] = \"Helvetica-Bold\";\n t[\"CenturyGothic-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"CenturyGothic-Italic\"] = \"Helvetica-Oblique\";\n t.ComicSansMS = \"Comic Sans MS\";\n t[\"ComicSansMS-Bold\"] = \"Comic Sans MS-Bold\";\n t[\"ComicSansMS-BoldItalic\"] = \"Comic Sans MS-BoldItalic\";\n t[\"ComicSansMS-Italic\"] = \"Comic Sans MS-Italic\";\n t[\"ItcSymbol-Bold\"] = \"Helvetica-Bold\";\n t[\"ItcSymbol-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"ItcSymbol-Book\"] = \"Helvetica\";\n t[\"ItcSymbol-BookItalic\"] = \"Helvetica-Oblique\";\n t[\"ItcSymbol-Medium\"] = \"Helvetica\";\n t[\"ItcSymbol-MediumItalic\"] = \"Helvetica-Oblique\";\n t.LucidaConsole = \"Courier\";\n t[\"LucidaConsole-Bold\"] = \"Courier-Bold\";\n t[\"LucidaConsole-BoldItalic\"] = \"Courier-BoldOblique\";\n t[\"LucidaConsole-Italic\"] = \"Courier-Oblique\";\n t[\"LucidaSans-Demi\"] = \"Helvetica-Bold\";\n t[\"MS-Gothic\"] = \"MS Gothic\";\n t[\"MS-Gothic-Bold\"] = \"MS Gothic-Bold\";\n t[\"MS-Gothic-BoldItalic\"] = \"MS Gothic-BoldItalic\";\n t[\"MS-Gothic-Italic\"] = \"MS Gothic-Italic\";\n t[\"MS-Mincho\"] = \"MS Mincho\";\n t[\"MS-Mincho-Bold\"] = \"MS Mincho-Bold\";\n t[\"MS-Mincho-BoldItalic\"] = \"MS Mincho-BoldItalic\";\n t[\"MS-Mincho-Italic\"] = \"MS Mincho-Italic\";\n t[\"MS-PGothic\"] = \"MS PGothic\";\n t[\"MS-PGothic-Bold\"] = \"MS PGothic-Bold\";\n t[\"MS-PGothic-BoldItalic\"] = \"MS PGothic-BoldItalic\";\n t[\"MS-PGothic-Italic\"] = \"MS PGothic-Italic\";\n t[\"MS-PMincho\"] = \"MS PMincho\";\n t[\"MS-PMincho-Bold\"] = \"MS PMincho-Bold\";\n t[\"MS-PMincho-BoldItalic\"] = \"MS PMincho-BoldItalic\";\n t[\"MS-PMincho-Italic\"] = \"MS PMincho-Italic\";\n t.NuptialScript = \"Times-Italic\";\n t.SegoeUISymbol = \"Helvetica\";\n t.Wingdings = \"ZapfDingbats\";\n t[\"Wingdings-Regular\"] = \"ZapfDingbats\";\n});\n\nconst getSerifFonts = getLookupTableFactory(function (t) {\n t[\"Adobe Jenson\"] = true;\n t[\"Adobe Text\"] = true;\n t.Albertus = true;\n t.Aldus = true;\n t.Alexandria = true;\n t.Algerian = true;\n t[\"American Typewriter\"] = true;\n t.Antiqua = true;\n t.Apex = true;\n t.Arno = true;\n t.Aster = true;\n t.Aurora = true;\n t.Baskerville = true;\n t.Bell = true;\n t.Bembo = true;\n t[\"Bembo Schoolbook\"] = true;\n t.Benguiat = true;\n t[\"Berkeley Old Style\"] = true;\n t[\"Bernhard Modern\"] = true;\n t[\"Berthold City\"] = true;\n t.Bodoni = true;\n t[\"Bauer Bodoni\"] = true;\n t[\"Book Antiqua\"] = true;\n t.Bookman = true;\n t[\"Bordeaux Roman\"] = true;\n t[\"Californian FB\"] = true;\n t.Calisto = true;\n t.Calvert = true;\n t.Capitals = true;\n t.Cambria = true;\n t.Cartier = true;\n t.Caslon = true;\n t.Catull = true;\n t.Centaur = true;\n t[\"Century Old Style\"] = true;\n t[\"Century Schoolbook\"] = true;\n t.Chaparral = true;\n t[\"Charis SIL\"] = true;\n t.Cheltenham = true;\n t[\"Cholla Slab\"] = true;\n t.Clarendon = true;\n t.Clearface = true;\n t.Cochin = true;\n t.Colonna = true;\n t[\"Computer Modern\"] = true;\n t[\"Concrete Roman\"] = true;\n t.Constantia = true;\n t[\"Cooper Black\"] = true;\n t.Corona = true;\n t.Ecotype = true;\n t.Egyptienne = true;\n t.Elephant = true;\n t.Excelsior = true;\n t.Fairfield = true;\n t[\"FF Scala\"] = true;\n t.Folkard = true;\n t.Footlight = true;\n t.FreeSerif = true;\n t[\"Friz Quadrata\"] = true;\n t.Garamond = true;\n t.Gentium = true;\n t.Georgia = true;\n t.Gloucester = true;\n t[\"Goudy Old Style\"] = true;\n t[\"Goudy Schoolbook\"] = true;\n t[\"Goudy Pro Font\"] = true;\n t.Granjon = true;\n t[\"Guardian Egyptian\"] = true;\n t.Heather = true;\n t.Hercules = true;\n t[\"High Tower Text\"] = true;\n t.Hiroshige = true;\n t[\"Hoefler Text\"] = true;\n t[\"Humana Serif\"] = true;\n t.Imprint = true;\n t[\"Ionic No. 5\"] = true;\n t.Janson = true;\n t.Joanna = true;\n t.Korinna = true;\n t.Lexicon = true;\n t.LiberationSerif = true;\n t[\"Liberation Serif\"] = true;\n t[\"Linux Libertine\"] = true;\n t.Literaturnaya = true;\n t.Lucida = true;\n t[\"Lucida Bright\"] = true;\n t.Melior = true;\n t.Memphis = true;\n t.Miller = true;\n t.Minion = true;\n t.Modern = true;\n t[\"Mona Lisa\"] = true;\n t[\"Mrs Eaves\"] = true;\n t[\"MS Serif\"] = true;\n t[\"Museo Slab\"] = true;\n t[\"New York\"] = true;\n t[\"Nimbus Roman\"] = true;\n t[\"NPS Rawlinson Roadway\"] = true;\n t.NuptialScript = true;\n t.Palatino = true;\n t.Perpetua = true;\n t.Plantin = true;\n t[\"Plantin Schoolbook\"] = true;\n t.Playbill = true;\n t[\"Poor Richard\"] = true;\n t[\"Rawlinson Roadway\"] = true;\n t.Renault = true;\n t.Requiem = true;\n t.Rockwell = true;\n t.Roman = true;\n t[\"Rotis Serif\"] = true;\n t.Sabon = true;\n t.Scala = true;\n t.Seagull = true;\n t.Sistina = true;\n t.Souvenir = true;\n t.STIX = true;\n t[\"Stone Informal\"] = true;\n t[\"Stone Serif\"] = true;\n t.Sylfaen = true;\n t.Times = true;\n t.Trajan = true;\n t[\"Trinité\"] = true;\n t[\"Trump Mediaeval\"] = true;\n t.Utopia = true;\n t[\"Vale Type\"] = true;\n t[\"Bitstream Vera\"] = true;\n t[\"Vera Serif\"] = true;\n t.Versailles = true;\n t.Wanted = true;\n t.Weiss = true;\n t[\"Wide Latin\"] = true;\n t.Windsor = true;\n t.XITS = true;\n});\n\nconst getSymbolsFonts = getLookupTableFactory(function (t) {\n t.Dingbats = true;\n t.Symbol = true;\n t.ZapfDingbats = true;\n});\n\n// Glyph map for well-known standard fonts. Sometimes Ghostscript uses CID\n// fonts, but does not embed the CID to GID mapping. The mapping is incomplete\n// for all glyphs, but common for some set of the standard fonts.\nconst getGlyphMapForStandardFonts = getLookupTableFactory(function (t) {\n t[2] = 10;\n t[3] = 32;\n t[4] = 33;\n t[5] = 34;\n t[6] = 35;\n t[7] = 36;\n t[8] = 37;\n t[9] = 38;\n t[10] = 39;\n t[11] = 40;\n t[12] = 41;\n t[13] = 42;\n t[14] = 43;\n t[15] = 44;\n t[16] = 45;\n t[17] = 46;\n t[18] = 47;\n t[19] = 48;\n t[20] = 49;\n t[21] = 50;\n t[22] = 51;\n t[23] = 52;\n t[24] = 53;\n t[25] = 54;\n t[26] = 55;\n t[27] = 56;\n t[28] = 57;\n t[29] = 58;\n t[30] = 894;\n t[31] = 60;\n t[32] = 61;\n t[33] = 62;\n t[34] = 63;\n t[35] = 64;\n t[36] = 65;\n t[37] = 66;\n t[38] = 67;\n t[39] = 68;\n t[40] = 69;\n t[41] = 70;\n t[42] = 71;\n t[43] = 72;\n t[44] = 73;\n t[45] = 74;\n t[46] = 75;\n t[47] = 76;\n t[48] = 77;\n t[49] = 78;\n t[50] = 79;\n t[51] = 80;\n t[52] = 81;\n t[53] = 82;\n t[54] = 83;\n t[55] = 84;\n t[56] = 85;\n t[57] = 86;\n t[58] = 87;\n t[59] = 88;\n t[60] = 89;\n t[61] = 90;\n t[62] = 91;\n t[63] = 92;\n t[64] = 93;\n t[65] = 94;\n t[66] = 95;\n t[67] = 96;\n t[68] = 97;\n t[69] = 98;\n t[70] = 99;\n t[71] = 100;\n t[72] = 101;\n t[73] = 102;\n t[74] = 103;\n t[75] = 104;\n t[76] = 105;\n t[77] = 106;\n t[78] = 107;\n t[79] = 108;\n t[80] = 109;\n t[81] = 110;\n t[82] = 111;\n t[83] = 112;\n t[84] = 113;\n t[85] = 114;\n t[86] = 115;\n t[87] = 116;\n t[88] = 117;\n t[89] = 118;\n t[90] = 119;\n t[91] = 120;\n t[92] = 121;\n t[93] = 122;\n t[94] = 123;\n t[95] = 124;\n t[96] = 125;\n t[97] = 126;\n t[98] = 196;\n t[99] = 197;\n t[100] = 199;\n t[101] = 201;\n t[102] = 209;\n t[103] = 214;\n t[104] = 220;\n t[105] = 225;\n t[106] = 224;\n t[107] = 226;\n t[108] = 228;\n t[109] = 227;\n t[110] = 229;\n t[111] = 231;\n t[112] = 233;\n t[113] = 232;\n t[114] = 234;\n t[115] = 235;\n t[116] = 237;\n t[117] = 236;\n t[118] = 238;\n t[119] = 239;\n t[120] = 241;\n t[121] = 243;\n t[122] = 242;\n t[123] = 244;\n t[124] = 246;\n t[125] = 245;\n t[126] = 250;\n t[127] = 249;\n t[128] = 251;\n t[129] = 252;\n t[130] = 8224;\n t[131] = 176;\n t[132] = 162;\n t[133] = 163;\n t[134] = 167;\n t[135] = 8226;\n t[136] = 182;\n t[137] = 223;\n t[138] = 174;\n t[139] = 169;\n t[140] = 8482;\n t[141] = 180;\n t[142] = 168;\n t[143] = 8800;\n t[144] = 198;\n t[145] = 216;\n t[146] = 8734;\n t[147] = 177;\n t[148] = 8804;\n t[149] = 8805;\n t[150] = 165;\n t[151] = 181;\n t[152] = 8706;\n t[153] = 8721;\n t[154] = 8719;\n t[156] = 8747;\n t[157] = 170;\n t[158] = 186;\n t[159] = 8486;\n t[160] = 230;\n t[161] = 248;\n t[162] = 191;\n t[163] = 161;\n t[164] = 172;\n t[165] = 8730;\n t[166] = 402;\n t[167] = 8776;\n t[168] = 8710;\n t[169] = 171;\n t[170] = 187;\n t[171] = 8230;\n t[200] = 193;\n t[203] = 205;\n t[210] = 218;\n t[223] = 711;\n t[224] = 321;\n t[225] = 322;\n t[226] = 352;\n t[227] = 353;\n t[228] = 381;\n t[229] = 382;\n t[233] = 221;\n t[234] = 253;\n t[252] = 263;\n t[253] = 268;\n t[254] = 269;\n t[258] = 258;\n t[260] = 260;\n t[261] = 261;\n t[265] = 280;\n t[266] = 281;\n t[267] = 282;\n t[268] = 283;\n t[269] = 313;\n t[275] = 323;\n t[276] = 324;\n t[278] = 328;\n t[283] = 344;\n t[284] = 345;\n t[285] = 346;\n t[286] = 347;\n t[292] = 367;\n t[295] = 377;\n t[296] = 378;\n t[298] = 380;\n t[305] = 963;\n t[306] = 964;\n t[307] = 966;\n t[308] = 8215;\n t[309] = 8252;\n t[310] = 8319;\n t[311] = 8359;\n t[312] = 8592;\n t[313] = 8593;\n t[337] = 9552;\n t[493] = 1039;\n t[494] = 1040;\n t[705] = 1524;\n t[706] = 8362;\n t[710] = 64288;\n t[711] = 64298;\n t[759] = 1617;\n t[761] = 1776;\n t[763] = 1778;\n t[775] = 1652;\n t[777] = 1764;\n t[778] = 1780;\n t[779] = 1781;\n t[780] = 1782;\n t[782] = 771;\n t[783] = 64726;\n t[786] = 8363;\n t[788] = 8532;\n t[790] = 768;\n t[791] = 769;\n t[792] = 768;\n t[795] = 803;\n t[797] = 64336;\n t[798] = 64337;\n t[799] = 64342;\n t[800] = 64343;\n t[801] = 64344;\n t[802] = 64345;\n t[803] = 64362;\n t[804] = 64363;\n t[805] = 64364;\n t[2424] = 7821;\n t[2425] = 7822;\n t[2426] = 7823;\n t[2427] = 7824;\n t[2428] = 7825;\n t[2429] = 7826;\n t[2430] = 7827;\n t[2433] = 7682;\n t[2678] = 8045;\n t[2679] = 8046;\n t[2830] = 1552;\n t[2838] = 686;\n t[2840] = 751;\n t[2842] = 753;\n t[2843] = 754;\n t[2844] = 755;\n t[2846] = 757;\n t[2856] = 767;\n t[2857] = 848;\n t[2858] = 849;\n t[2862] = 853;\n t[2863] = 854;\n t[2864] = 855;\n t[2865] = 861;\n t[2866] = 862;\n t[2906] = 7460;\n t[2908] = 7462;\n t[2909] = 7463;\n t[2910] = 7464;\n t[2912] = 7466;\n t[2913] = 7467;\n t[2914] = 7468;\n t[2916] = 7470;\n t[2917] = 7471;\n t[2918] = 7472;\n t[2920] = 7474;\n t[2921] = 7475;\n t[2922] = 7476;\n t[2924] = 7478;\n t[2925] = 7479;\n t[2926] = 7480;\n t[2928] = 7482;\n t[2929] = 7483;\n t[2930] = 7484;\n t[2932] = 7486;\n t[2933] = 7487;\n t[2934] = 7488;\n t[2936] = 7490;\n t[2937] = 7491;\n t[2938] = 7492;\n t[2940] = 7494;\n t[2941] = 7495;\n t[2942] = 7496;\n t[2944] = 7498;\n t[2946] = 7500;\n t[2948] = 7502;\n t[2950] = 7504;\n t[2951] = 7505;\n t[2952] = 7506;\n t[2954] = 7508;\n t[2955] = 7509;\n t[2956] = 7510;\n t[2958] = 7512;\n t[2959] = 7513;\n t[2960] = 7514;\n t[2962] = 7516;\n t[2963] = 7517;\n t[2964] = 7518;\n t[2966] = 7520;\n t[2967] = 7521;\n t[2968] = 7522;\n t[2970] = 7524;\n t[2971] = 7525;\n t[2972] = 7526;\n t[2974] = 7528;\n t[2975] = 7529;\n t[2976] = 7530;\n t[2978] = 1537;\n t[2979] = 1538;\n t[2980] = 1539;\n t[2982] = 1549;\n t[2983] = 1551;\n t[2984] = 1552;\n t[2986] = 1554;\n t[2987] = 1555;\n t[2988] = 1556;\n t[2990] = 1623;\n t[2991] = 1624;\n t[2995] = 1775;\n t[2999] = 1791;\n t[3002] = 64290;\n t[3003] = 64291;\n t[3004] = 64292;\n t[3006] = 64294;\n t[3007] = 64295;\n t[3008] = 64296;\n t[3011] = 1900;\n t[3014] = 8223;\n t[3015] = 8244;\n t[3017] = 7532;\n t[3018] = 7533;\n t[3019] = 7534;\n t[3075] = 7590;\n t[3076] = 7591;\n t[3079] = 7594;\n t[3080] = 7595;\n t[3083] = 7598;\n t[3084] = 7599;\n t[3087] = 7602;\n t[3088] = 7603;\n t[3091] = 7606;\n t[3092] = 7607;\n t[3095] = 7610;\n t[3096] = 7611;\n t[3099] = 7614;\n t[3100] = 7615;\n t[3103] = 7618;\n t[3104] = 7619;\n t[3107] = 8337;\n t[3108] = 8338;\n t[3116] = 1884;\n t[3119] = 1885;\n t[3120] = 1885;\n t[3123] = 1886;\n t[3124] = 1886;\n t[3127] = 1887;\n t[3128] = 1887;\n t[3131] = 1888;\n t[3132] = 1888;\n t[3135] = 1889;\n t[3136] = 1889;\n t[3139] = 1890;\n t[3140] = 1890;\n t[3143] = 1891;\n t[3144] = 1891;\n t[3147] = 1892;\n t[3148] = 1892;\n t[3153] = 580;\n t[3154] = 581;\n t[3157] = 584;\n t[3158] = 585;\n t[3161] = 588;\n t[3162] = 589;\n t[3165] = 891;\n t[3166] = 892;\n t[3169] = 1274;\n t[3170] = 1275;\n t[3173] = 1278;\n t[3174] = 1279;\n t[3181] = 7622;\n t[3182] = 7623;\n t[3282] = 11799;\n t[3316] = 578;\n t[3379] = 42785;\n t[3393] = 1159;\n t[3416] = 8377;\n});\n\n// The glyph map for ArialBlack differs slightly from the glyph map used for\n// other well-known standard fonts. Hence we use this (incomplete) CID to GID\n// mapping to adjust the glyph map for non-embedded ArialBlack fonts.\nconst getSupplementalGlyphMapForArialBlack = getLookupTableFactory(function (\n t\n) {\n t[227] = 322;\n t[264] = 261;\n t[291] = 346;\n});\n\n// The glyph map for Calibri (a Windows font) differs from the glyph map used\n// in the standard fonts. Hence we use this (incomplete) CID to GID mapping to\n// adjust the glyph map for non-embedded Calibri fonts.\nconst getSupplementalGlyphMapForCalibri = getLookupTableFactory(function (t) {\n t[1] = 32;\n t[4] = 65;\n t[6] = 193;\n t[17] = 66;\n t[18] = 67;\n t[21] = 268;\n t[24] = 68;\n t[28] = 69;\n t[30] = 201;\n t[32] = 282;\n t[38] = 70;\n t[39] = 71;\n t[44] = 72;\n t[47] = 73;\n t[49] = 205;\n t[58] = 74;\n t[60] = 75;\n t[62] = 76;\n t[68] = 77;\n t[69] = 78;\n t[75] = 79;\n t[87] = 80;\n t[89] = 81;\n t[90] = 82;\n t[92] = 344;\n t[94] = 83;\n t[97] = 352;\n t[100] = 84;\n t[104] = 85;\n t[115] = 86;\n t[116] = 87;\n t[121] = 88;\n t[122] = 89;\n t[124] = 221;\n t[127] = 90;\n t[129] = 381;\n t[258] = 97;\n t[260] = 225;\n t[268] = 261;\n t[271] = 98;\n t[272] = 99;\n t[273] = 263;\n t[275] = 269;\n t[282] = 100;\n t[286] = 101;\n t[288] = 233;\n t[290] = 283;\n t[295] = 281;\n t[296] = 102;\n t[336] = 103;\n t[346] = 104;\n t[349] = 105;\n t[351] = 237;\n t[361] = 106;\n t[364] = 107;\n t[367] = 108;\n t[371] = 322;\n t[373] = 109;\n t[374] = 110;\n t[381] = 111;\n t[383] = 243;\n t[393] = 112;\n t[395] = 113;\n t[396] = 114;\n t[398] = 345;\n t[400] = 115;\n t[401] = 347;\n t[403] = 353;\n t[410] = 116;\n t[437] = 117;\n t[448] = 118;\n t[449] = 119;\n t[454] = 120;\n t[455] = 121;\n t[457] = 253;\n t[460] = 122;\n t[462] = 382;\n t[463] = 380;\n t[853] = 44;\n t[855] = 58;\n t[856] = 46;\n t[876] = 47;\n t[878] = 45;\n t[882] = 45;\n t[894] = 40;\n t[895] = 41;\n t[896] = 91;\n t[897] = 93;\n t[923] = 64;\n t[1004] = 48;\n t[1005] = 49;\n t[1006] = 50;\n t[1007] = 51;\n t[1008] = 52;\n t[1009] = 53;\n t[1010] = 54;\n t[1011] = 55;\n t[1012] = 56;\n t[1013] = 57;\n t[1081] = 37;\n t[1085] = 43;\n t[1086] = 45;\n});\n\nfunction getStandardFontName(name) {\n const fontName = normalizeFontName(name);\n const stdFontMap = getStdFontMap();\n return stdFontMap[fontName];\n}\n\nexport {\n getFontNameToFileMap,\n getGlyphMapForStandardFonts,\n getNonStdFontMap,\n getSerifFonts,\n getStandardFontName,\n getStdFontMap,\n getSupplementalGlyphMapForArialBlack,\n getSupplementalGlyphMapForCalibri,\n getSymbolsFonts,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { unreachable } from \"../shared/util.js\";\n\nclass ToUnicodeMap {\n constructor(cmap = []) {\n // The elements of this._map can be integers or strings, depending on how\n // `cmap` was created.\n this._map = cmap;\n }\n\n get length() {\n return this._map.length;\n }\n\n forEach(callback) {\n for (const charCode in this._map) {\n callback(charCode, this._map[charCode].charCodeAt(0));\n }\n }\n\n has(i) {\n return this._map[i] !== undefined;\n }\n\n get(i) {\n return this._map[i];\n }\n\n charCodeOf(value) {\n // `Array.prototype.indexOf` is *extremely* inefficient for arrays which\n // are both very sparse and very large (see issue8372.pdf).\n const map = this._map;\n if (map.length <= 0x10000) {\n return map.indexOf(value);\n }\n for (const charCode in map) {\n if (map[charCode] === value) {\n return charCode | 0;\n }\n }\n return -1;\n }\n\n amend(map) {\n for (const charCode in map) {\n this._map[charCode] = map[charCode];\n }\n }\n}\n\nclass IdentityToUnicodeMap {\n constructor(firstChar, lastChar) {\n this.firstChar = firstChar;\n this.lastChar = lastChar;\n }\n\n get length() {\n return this.lastChar + 1 - this.firstChar;\n }\n\n forEach(callback) {\n for (let i = this.firstChar, ii = this.lastChar; i <= ii; i++) {\n callback(i, i);\n }\n }\n\n has(i) {\n return this.firstChar <= i && i <= this.lastChar;\n }\n\n get(i) {\n if (this.firstChar <= i && i <= this.lastChar) {\n return String.fromCharCode(i);\n }\n return undefined;\n }\n\n charCodeOf(v) {\n return Number.isInteger(v) && v >= this.firstChar && v <= this.lastChar\n ? v\n : -1;\n }\n\n amend(map) {\n unreachable(\"Should not call amend()\");\n }\n}\n\nexport { IdentityToUnicodeMap, ToUnicodeMap };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CFFCompiler, CFFParser } from \"./cff_parser.js\";\nimport { SEAC_ANALYSIS_ENABLED, type1FontGlyphMapping } from \"./fonts_utils.js\";\nimport { warn } from \"../shared/util.js\";\n\nclass CFFFont {\n constructor(file, properties) {\n this.properties = properties;\n\n const parser = new CFFParser(file, properties, SEAC_ANALYSIS_ENABLED);\n this.cff = parser.parse();\n this.cff.duplicateFirstGlyph();\n const compiler = new CFFCompiler(this.cff);\n this.seacs = this.cff.seacs;\n try {\n this.data = compiler.compile();\n } catch (e) {\n warn(\"Failed to compile font \" + properties.loadedName);\n // There may have just been an issue with the compiler, set the data\n // anyway and hope the font loaded.\n this.data = file;\n }\n this._createBuiltInEncoding();\n }\n\n get numGlyphs() {\n return this.cff.charStrings.count;\n }\n\n getCharset() {\n return this.cff.charset.charset;\n }\n\n getGlyphMapping() {\n const cff = this.cff;\n const properties = this.properties;\n const charsets = cff.charset.charset;\n let charCodeToGlyphId;\n let glyphId;\n\n if (properties.composite) {\n charCodeToGlyphId = Object.create(null);\n let charCode;\n if (cff.isCIDFont) {\n // If the font is actually a CID font then we should use the charset\n // to map CIDs to GIDs.\n for (glyphId = 0; glyphId < charsets.length; glyphId++) {\n const cid = charsets[glyphId];\n charCode = properties.cMap.charCodeOf(cid);\n charCodeToGlyphId[charCode] = glyphId;\n }\n } else {\n // If it is NOT actually a CID font then CIDs should be mapped\n // directly to GIDs.\n for (glyphId = 0; glyphId < cff.charStrings.count; glyphId++) {\n charCode = properties.cMap.charCodeOf(glyphId);\n charCodeToGlyphId[charCode] = glyphId;\n }\n }\n return charCodeToGlyphId;\n }\n\n let encoding = cff.encoding ? cff.encoding.encoding : null;\n if (properties.isInternalFont) {\n encoding = properties.defaultEncoding;\n }\n charCodeToGlyphId = type1FontGlyphMapping(properties, encoding, charsets);\n return charCodeToGlyphId;\n }\n\n hasGlyphId(id) {\n return this.cff.hasGlyphId(id);\n }\n\n /**\n * @private\n */\n _createBuiltInEncoding() {\n const { charset, encoding } = this.cff;\n if (!charset || !encoding) {\n return;\n }\n const charsets = charset.charset,\n encodings = encoding.encoding;\n const map = [];\n\n for (const charCode in encodings) {\n const glyphId = encodings[charCode];\n if (glyphId >= 0) {\n const glyphName = charsets[glyphId];\n if (glyphName) {\n map[charCode] = glyphName;\n }\n }\n }\n if (map.length > 0) {\n this.properties.builtInEncoding = map;\n }\n }\n}\n\nexport { CFFFont };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n bytesToString,\n FONT_IDENTITY_MATRIX,\n FormatError,\n unreachable,\n warn,\n} from \"../shared/util.js\";\nimport { CFFParser } from \"./cff_parser.js\";\nimport { getGlyphsUnicode } from \"./glyphlist.js\";\nimport { StandardEncoding } from \"./encodings.js\";\nimport { Stream } from \"./stream.js\";\n\n// TODO: use DataView and its methods.\n\nfunction getUint32(data, offset) {\n return (\n ((data[offset] << 24) |\n (data[offset + 1] << 16) |\n (data[offset + 2] << 8) |\n data[offset + 3]) >>>\n 0\n );\n}\n\nfunction getUint16(data, offset) {\n return (data[offset] << 8) | data[offset + 1];\n}\n\nfunction getInt16(data, offset) {\n return ((data[offset] << 24) | (data[offset + 1] << 16)) >> 16;\n}\n\nfunction getInt8(data, offset) {\n return (data[offset] << 24) >> 24;\n}\n\nfunction getFloat214(data, offset) {\n return getInt16(data, offset) / 16384;\n}\n\nfunction getSubroutineBias(subrs) {\n const numSubrs = subrs.length;\n let bias = 32768;\n if (numSubrs < 1240) {\n bias = 107;\n } else if (numSubrs < 33900) {\n bias = 1131;\n }\n return bias;\n}\n\nfunction parseCmap(data, start, end) {\n const offset =\n getUint16(data, start + 2) === 1\n ? getUint32(data, start + 8)\n : getUint32(data, start + 16);\n const format = getUint16(data, start + offset);\n let ranges, p, i;\n if (format === 4) {\n getUint16(data, start + offset + 2); // length\n const segCount = getUint16(data, start + offset + 6) >> 1;\n p = start + offset + 14;\n ranges = [];\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i] = { end: getUint16(data, p) };\n }\n p += 2;\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i].start = getUint16(data, p);\n }\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i].idDelta = getUint16(data, p);\n }\n for (i = 0; i < segCount; i++, p += 2) {\n let idOffset = getUint16(data, p);\n if (idOffset === 0) {\n continue;\n }\n ranges[i].ids = [];\n for (let j = 0, jj = ranges[i].end - ranges[i].start + 1; j < jj; j++) {\n ranges[i].ids[j] = getUint16(data, p + idOffset);\n idOffset += 2;\n }\n }\n return ranges;\n } else if (format === 12) {\n const groups = getUint32(data, start + offset + 12);\n p = start + offset + 16;\n ranges = [];\n for (i = 0; i < groups; i++) {\n start = getUint32(data, p);\n ranges.push({\n start,\n end: getUint32(data, p + 4),\n idDelta: getUint32(data, p + 8) - start,\n });\n p += 12;\n }\n return ranges;\n }\n throw new FormatError(`unsupported cmap: ${format}`);\n}\n\nfunction parseCff(data, start, end, seacAnalysisEnabled) {\n const properties = {};\n const parser = new CFFParser(\n new Stream(data, start, end - start),\n properties,\n seacAnalysisEnabled\n );\n const cff = parser.parse();\n return {\n glyphs: cff.charStrings.objects,\n subrs:\n cff.topDict.privateDict &&\n cff.topDict.privateDict.subrsIndex &&\n cff.topDict.privateDict.subrsIndex.objects,\n gsubrs: cff.globalSubrIndex && cff.globalSubrIndex.objects,\n isCFFCIDFont: cff.isCIDFont,\n fdSelect: cff.fdSelect,\n fdArray: cff.fdArray,\n };\n}\n\nfunction parseGlyfTable(glyf, loca, isGlyphLocationsLong) {\n let itemSize, itemDecode;\n if (isGlyphLocationsLong) {\n itemSize = 4;\n itemDecode = getUint32;\n } else {\n itemSize = 2;\n itemDecode = (data, offset) => 2 * getUint16(data, offset);\n }\n const glyphs = [];\n let startOffset = itemDecode(loca, 0);\n for (let j = itemSize; j < loca.length; j += itemSize) {\n const endOffset = itemDecode(loca, j);\n glyphs.push(glyf.subarray(startOffset, endOffset));\n startOffset = endOffset;\n }\n return glyphs;\n}\n\nfunction lookupCmap(ranges, unicode) {\n const code = unicode.codePointAt(0);\n let gid = 0,\n l = 0,\n r = ranges.length - 1;\n while (l < r) {\n const c = (l + r + 1) >> 1;\n if (code < ranges[c].start) {\n r = c - 1;\n } else {\n l = c;\n }\n }\n if (ranges[l].start <= code && code <= ranges[l].end) {\n gid =\n (ranges[l].idDelta +\n (ranges[l].ids ? ranges[l].ids[code - ranges[l].start] : code)) &\n 0xffff;\n }\n return {\n charCode: code,\n glyphId: gid,\n };\n}\n\nfunction compileGlyf(code, cmds, font) {\n function moveTo(x, y) {\n cmds.push({ cmd: \"moveTo\", args: [x, y] });\n }\n function lineTo(x, y) {\n cmds.push({ cmd: \"lineTo\", args: [x, y] });\n }\n function quadraticCurveTo(xa, ya, x, y) {\n cmds.push({ cmd: \"quadraticCurveTo\", args: [xa, ya, x, y] });\n }\n\n let i = 0;\n const numberOfContours = getInt16(code, i);\n let flags;\n let x = 0,\n y = 0;\n i += 10;\n if (numberOfContours < 0) {\n // composite glyph\n do {\n flags = getUint16(code, i);\n const glyphIndex = getUint16(code, i + 2);\n i += 4;\n let arg1, arg2;\n if (flags & 0x01) {\n if (flags & 0x02) {\n arg1 = getInt16(code, i);\n arg2 = getInt16(code, i + 2);\n } else {\n arg1 = getUint16(code, i);\n arg2 = getUint16(code, i + 2);\n }\n i += 4;\n } else {\n if (flags & 0x02) {\n arg1 = getInt8(code, i++);\n arg2 = getInt8(code, i++);\n } else {\n arg1 = code[i++];\n arg2 = code[i++];\n }\n }\n if (flags & 0x02) {\n x = arg1;\n y = arg2;\n } else {\n x = 0;\n y = 0;\n }\n let scaleX = 1,\n scaleY = 1,\n scale01 = 0,\n scale10 = 0;\n if (flags & 0x08) {\n scaleX = scaleY = getFloat214(code, i);\n i += 2;\n } else if (flags & 0x40) {\n scaleX = getFloat214(code, i);\n scaleY = getFloat214(code, i + 2);\n i += 4;\n } else if (flags & 0x80) {\n scaleX = getFloat214(code, i);\n scale01 = getFloat214(code, i + 2);\n scale10 = getFloat214(code, i + 4);\n scaleY = getFloat214(code, i + 6);\n i += 8;\n }\n const subglyph = font.glyphs[glyphIndex];\n if (subglyph) {\n // TODO: the transform should be applied only if there is a scale:\n // https://github.com/freetype/freetype/blob/edd4fedc5427cf1cf1f4b045e53ff91eb282e9d4/src/truetype/ttgload.c#L1205\n cmds.push(\n { cmd: \"save\" },\n {\n cmd: \"transform\",\n args: [scaleX, scale01, scale10, scaleY, x, y],\n }\n );\n\n if (!(flags & 0x02)) {\n // TODO: we must use arg1 and arg2 to make something similar to:\n // https://github.com/freetype/freetype/blob/edd4fedc5427cf1cf1f4b045e53ff91eb282e9d4/src/truetype/ttgload.c#L1209\n }\n compileGlyf(subglyph, cmds, font);\n cmds.push({ cmd: \"restore\" });\n }\n } while (flags & 0x20);\n } else {\n // simple glyph\n const endPtsOfContours = [];\n let j, jj;\n for (j = 0; j < numberOfContours; j++) {\n endPtsOfContours.push(getUint16(code, i));\n i += 2;\n }\n const instructionLength = getUint16(code, i);\n i += 2 + instructionLength; // skipping the instructions\n const numberOfPoints = endPtsOfContours[endPtsOfContours.length - 1] + 1;\n const points = [];\n while (points.length < numberOfPoints) {\n flags = code[i++];\n let repeat = 1;\n if (flags & 0x08) {\n repeat += code[i++];\n }\n while (repeat-- > 0) {\n points.push({ flags });\n }\n }\n for (j = 0; j < numberOfPoints; j++) {\n switch (points[j].flags & 0x12) {\n case 0x00:\n x += getInt16(code, i);\n i += 2;\n break;\n case 0x02:\n x -= code[i++];\n break;\n case 0x12:\n x += code[i++];\n break;\n }\n points[j].x = x;\n }\n for (j = 0; j < numberOfPoints; j++) {\n switch (points[j].flags & 0x24) {\n case 0x00:\n y += getInt16(code, i);\n i += 2;\n break;\n case 0x04:\n y -= code[i++];\n break;\n case 0x24:\n y += code[i++];\n break;\n }\n points[j].y = y;\n }\n\n let startPoint = 0;\n for (i = 0; i < numberOfContours; i++) {\n const endPoint = endPtsOfContours[i];\n // contours might have implicit points, which is located in the middle\n // between two neighboring off-curve points\n const contour = points.slice(startPoint, endPoint + 1);\n if (contour[0].flags & 1) {\n contour.push(contour[0]); // using start point at the contour end\n } else if (contour[contour.length - 1].flags & 1) {\n // first is off-curve point, trying to use one from the end\n contour.unshift(contour[contour.length - 1]);\n } else {\n // start and end are off-curve points, creating implicit one\n const p = {\n flags: 1,\n x: (contour[0].x + contour[contour.length - 1].x) / 2,\n y: (contour[0].y + contour[contour.length - 1].y) / 2,\n };\n contour.unshift(p);\n contour.push(p);\n }\n moveTo(contour[0].x, contour[0].y);\n for (j = 1, jj = contour.length; j < jj; j++) {\n if (contour[j].flags & 1) {\n lineTo(contour[j].x, contour[j].y);\n } else if (contour[j + 1].flags & 1) {\n quadraticCurveTo(\n contour[j].x,\n contour[j].y,\n contour[j + 1].x,\n contour[j + 1].y\n );\n j++;\n } else {\n quadraticCurveTo(\n contour[j].x,\n contour[j].y,\n (contour[j].x + contour[j + 1].x) / 2,\n (contour[j].y + contour[j + 1].y) / 2\n );\n }\n }\n startPoint = endPoint + 1;\n }\n }\n}\n\nfunction compileCharString(charStringCode, cmds, font, glyphId) {\n function moveTo(x, y) {\n cmds.push({ cmd: \"moveTo\", args: [x, y] });\n }\n function lineTo(x, y) {\n cmds.push({ cmd: \"lineTo\", args: [x, y] });\n }\n function bezierCurveTo(x1, y1, x2, y2, x, y) {\n cmds.push({ cmd: \"bezierCurveTo\", args: [x1, y1, x2, y2, x, y] });\n }\n\n const stack = [];\n let x = 0,\n y = 0;\n let stems = 0;\n\n function parse(code) {\n let i = 0;\n while (i < code.length) {\n let stackClean = false;\n let v = code[i++];\n let xa, xb, ya, yb, y1, y2, y3, n, subrCode;\n switch (v) {\n case 1: // hstem\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 3: // vstem\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 4: // vmoveto\n y += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n case 5: // rlineto\n while (stack.length > 0) {\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n }\n break;\n case 6: // hlineto\n while (stack.length > 0) {\n x += stack.shift();\n lineTo(x, y);\n if (stack.length === 0) {\n break;\n }\n y += stack.shift();\n lineTo(x, y);\n }\n break;\n case 7: // vlineto\n while (stack.length > 0) {\n y += stack.shift();\n lineTo(x, y);\n if (stack.length === 0) {\n break;\n }\n x += stack.shift();\n lineTo(x, y);\n }\n break;\n case 8: // rrcurveto\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 10: // callsubr\n n = stack.pop();\n subrCode = null;\n if (font.isCFFCIDFont) {\n const fdIndex = font.fdSelect.getFDIndex(glyphId);\n if (fdIndex >= 0 && fdIndex < font.fdArray.length) {\n const fontDict = font.fdArray[fdIndex];\n let subrs;\n if (fontDict.privateDict && fontDict.privateDict.subrsIndex) {\n subrs = fontDict.privateDict.subrsIndex.objects;\n }\n if (subrs) {\n // Add subroutine bias.\n n += getSubroutineBias(subrs);\n subrCode = subrs[n];\n }\n } else {\n warn(\"Invalid fd index for glyph index.\");\n }\n } else {\n subrCode = font.subrs[n + font.subrsBias];\n }\n if (subrCode) {\n parse(subrCode);\n }\n break;\n case 11: // return\n return;\n case 12:\n v = code[i++];\n switch (v) {\n case 34: // flex\n xa = x + stack.shift();\n xb = xa + stack.shift();\n y1 = y + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y, xb, y1, x, y1);\n xa = x + stack.shift();\n xb = xa + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y1, xb, y, x, y);\n break;\n case 35: // flex\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n stack.pop(); // fd\n break;\n case 36: // hflex1\n xa = x + stack.shift();\n y1 = y + stack.shift();\n xb = xa + stack.shift();\n y2 = y1 + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y1, xb, y2, x, y2);\n xa = x + stack.shift();\n xb = xa + stack.shift();\n y3 = y2 + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y2, xb, y3, x, y);\n break;\n case 37: // flex1\n const x0 = x,\n y0 = y;\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb;\n y = yb;\n if (Math.abs(x - x0) > Math.abs(y - y0)) {\n x += stack.shift();\n } else {\n y += stack.shift();\n }\n bezierCurveTo(xa, ya, xb, yb, x, y);\n break;\n default:\n throw new FormatError(`unknown operator: 12 ${v}`);\n }\n break;\n case 14: // endchar\n if (stack.length >= 4) {\n const achar = stack.pop();\n const bchar = stack.pop();\n y = stack.pop();\n x = stack.pop();\n cmds.push({ cmd: \"save\" }, { cmd: \"translate\", args: [x, y] });\n let cmap = lookupCmap(\n font.cmap,\n String.fromCharCode(font.glyphNameMap[StandardEncoding[achar]])\n );\n compileCharString(\n font.glyphs[cmap.glyphId],\n cmds,\n font,\n cmap.glyphId\n );\n cmds.push({ cmd: \"restore\" });\n\n cmap = lookupCmap(\n font.cmap,\n String.fromCharCode(font.glyphNameMap[StandardEncoding[bchar]])\n );\n compileCharString(\n font.glyphs[cmap.glyphId],\n cmds,\n font,\n cmap.glyphId\n );\n }\n return;\n case 18: // hstemhm\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 19: // hintmask\n stems += stack.length >> 1;\n i += (stems + 7) >> 3;\n stackClean = true;\n break;\n case 20: // cntrmask\n stems += stack.length >> 1;\n i += (stems + 7) >> 3;\n stackClean = true;\n break;\n case 21: // rmoveto\n y += stack.pop();\n x += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n case 22: // hmoveto\n x += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n case 23: // vstemhm\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 24: // rcurveline\n while (stack.length > 2) {\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n break;\n case 25: // rlinecurve\n while (stack.length > 6) {\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n }\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n break;\n case 26: // vvcurveto\n if (stack.length % 2) {\n x += stack.shift();\n }\n while (stack.length > 0) {\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb;\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 27: // hhcurveto\n if (stack.length % 2) {\n y += stack.shift();\n }\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb;\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 28:\n stack.push(((code[i] << 24) | (code[i + 1] << 16)) >> 16);\n i += 2;\n break;\n case 29: // callgsubr\n n = stack.pop() + font.gsubrsBias;\n subrCode = font.gsubrs[n];\n if (subrCode) {\n parse(subrCode);\n }\n break;\n case 30: // vhcurveto\n while (stack.length > 0) {\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n if (stack.length === 0) {\n break;\n }\n\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n y = yb + stack.shift();\n x = xb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 31: // hvcurveto\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n y = yb + stack.shift();\n x = xb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n if (stack.length === 0) {\n break;\n }\n\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n default:\n if (v < 32) {\n throw new FormatError(`unknown operator: ${v}`);\n }\n if (v < 247) {\n stack.push(v - 139);\n } else if (v < 251) {\n stack.push((v - 247) * 256 + code[i++] + 108);\n } else if (v < 255) {\n stack.push(-(v - 251) * 256 - code[i++] - 108);\n } else {\n stack.push(\n ((code[i] << 24) |\n (code[i + 1] << 16) |\n (code[i + 2] << 8) |\n code[i + 3]) /\n 65536\n );\n i += 4;\n }\n break;\n }\n if (stackClean) {\n stack.length = 0;\n }\n }\n }\n parse(charStringCode);\n}\n\nconst NOOP = [];\n\nclass CompiledFont {\n constructor(fontMatrix) {\n if (this.constructor === CompiledFont) {\n unreachable(\"Cannot initialize CompiledFont.\");\n }\n this.fontMatrix = fontMatrix;\n\n this.compiledGlyphs = Object.create(null);\n this.compiledCharCodeToGlyphId = Object.create(null);\n }\n\n getPathJs(unicode) {\n const { charCode, glyphId } = lookupCmap(this.cmap, unicode);\n let fn = this.compiledGlyphs[glyphId];\n if (!fn) {\n try {\n fn = this.compileGlyph(this.glyphs[glyphId], glyphId);\n this.compiledGlyphs[glyphId] = fn;\n } catch (ex) {\n // Avoid attempting to re-compile a corrupt glyph.\n this.compiledGlyphs[glyphId] = NOOP;\n\n if (this.compiledCharCodeToGlyphId[charCode] === undefined) {\n this.compiledCharCodeToGlyphId[charCode] = glyphId;\n }\n throw ex;\n }\n }\n if (this.compiledCharCodeToGlyphId[charCode] === undefined) {\n this.compiledCharCodeToGlyphId[charCode] = glyphId;\n }\n return fn;\n }\n\n compileGlyph(code, glyphId) {\n if (!code || code.length === 0 || code[0] === 14) {\n return NOOP;\n }\n\n let fontMatrix = this.fontMatrix;\n if (this.isCFFCIDFont) {\n // Top DICT's FontMatrix can be ignored because CFFCompiler always\n // removes it and copies to FDArray DICTs.\n const fdIndex = this.fdSelect.getFDIndex(glyphId);\n if (fdIndex >= 0 && fdIndex < this.fdArray.length) {\n const fontDict = this.fdArray[fdIndex];\n fontMatrix = fontDict.getByName(\"FontMatrix\") || FONT_IDENTITY_MATRIX;\n } else {\n warn(\"Invalid fd index for glyph index.\");\n }\n }\n\n const cmds = [\n { cmd: \"save\" },\n { cmd: \"transform\", args: fontMatrix.slice() },\n { cmd: \"scale\", args: [\"size\", \"-size\"] },\n ];\n this.compileGlyphImpl(code, cmds, glyphId);\n\n cmds.push({ cmd: \"restore\" });\n\n return cmds;\n }\n\n compileGlyphImpl() {\n unreachable(\"Children classes should implement this.\");\n }\n\n hasBuiltPath(unicode) {\n const { charCode, glyphId } = lookupCmap(this.cmap, unicode);\n return (\n this.compiledGlyphs[glyphId] !== undefined &&\n this.compiledCharCodeToGlyphId[charCode] !== undefined\n );\n }\n}\n\nclass TrueTypeCompiled extends CompiledFont {\n constructor(glyphs, cmap, fontMatrix) {\n super(fontMatrix || [0.000488, 0, 0, 0.000488, 0, 0]);\n\n this.glyphs = glyphs;\n this.cmap = cmap;\n }\n\n compileGlyphImpl(code, cmds) {\n compileGlyf(code, cmds, this);\n }\n}\n\nclass Type2Compiled extends CompiledFont {\n constructor(cffInfo, cmap, fontMatrix, glyphNameMap) {\n super(fontMatrix || [0.001, 0, 0, 0.001, 0, 0]);\n\n this.glyphs = cffInfo.glyphs;\n this.gsubrs = cffInfo.gsubrs || [];\n this.subrs = cffInfo.subrs || [];\n this.cmap = cmap;\n this.glyphNameMap = glyphNameMap || getGlyphsUnicode();\n\n this.gsubrsBias = getSubroutineBias(this.gsubrs);\n this.subrsBias = getSubroutineBias(this.subrs);\n\n this.isCFFCIDFont = cffInfo.isCFFCIDFont;\n this.fdSelect = cffInfo.fdSelect;\n this.fdArray = cffInfo.fdArray;\n }\n\n compileGlyphImpl(code, cmds, glyphId) {\n compileCharString(code, cmds, this, glyphId);\n }\n}\n\nclass FontRendererFactory {\n static create(font, seacAnalysisEnabled) {\n const data = new Uint8Array(font.data);\n let cmap, glyf, loca, cff, indexToLocFormat, unitsPerEm;\n const numTables = getUint16(data, 4);\n for (let i = 0, p = 12; i < numTables; i++, p += 16) {\n const tag = bytesToString(data.subarray(p, p + 4));\n const offset = getUint32(data, p + 8);\n const length = getUint32(data, p + 12);\n switch (tag) {\n case \"cmap\":\n cmap = parseCmap(data, offset, offset + length);\n break;\n case \"glyf\":\n glyf = data.subarray(offset, offset + length);\n break;\n case \"loca\":\n loca = data.subarray(offset, offset + length);\n break;\n case \"head\":\n unitsPerEm = getUint16(data, offset + 18);\n indexToLocFormat = getUint16(data, offset + 50);\n break;\n case \"CFF \":\n cff = parseCff(data, offset, offset + length, seacAnalysisEnabled);\n break;\n }\n }\n\n if (glyf) {\n const fontMatrix = !unitsPerEm\n ? font.fontMatrix\n : [1 / unitsPerEm, 0, 0, 1 / unitsPerEm, 0, 0];\n return new TrueTypeCompiled(\n parseGlyfTable(glyf, loca, indexToLocFormat),\n cmap,\n fontMatrix\n );\n }\n return new Type2Compiled(cff, cmap, font.fontMatrix, font.glyphNameMap);\n }\n}\n\nexport { FontRendererFactory };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getLookupTableFactory } from \"./core_utils.js\";\n\n// The Metrics object contains glyph widths (in glyph space units).\n// As per PDF spec, for most fonts (Type 3 being an exception) a glyph\n// space unit corresponds to 1/1000th of text space unit.\nconst getMetrics = getLookupTableFactory(function (t) {\n t.Courier = 600;\n t[\"Courier-Bold\"] = 600;\n t[\"Courier-BoldOblique\"] = 600;\n t[\"Courier-Oblique\"] = 600;\n // eslint-disable-next-line no-shadow\n t.Helvetica = getLookupTableFactory(function (t) {\n t.space = 278;\n t.exclam = 278;\n t.quotedbl = 355;\n t.numbersign = 556;\n t.dollar = 556;\n t.percent = 889;\n t.ampersand = 667;\n t.quoteright = 222;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 389;\n t.plus = 584;\n t.comma = 278;\n t.hyphen = 333;\n t.period = 278;\n t.slash = 278;\n t.zero = 556;\n t.one = 556;\n t.two = 556;\n t.three = 556;\n t.four = 556;\n t.five = 556;\n t.six = 556;\n t.seven = 556;\n t.eight = 556;\n t.nine = 556;\n t.colon = 278;\n t.semicolon = 278;\n t.less = 584;\n t.equal = 584;\n t.greater = 584;\n t.question = 556;\n t.at = 1015;\n t.A = 667;\n t.B = 667;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 722;\n t.I = 278;\n t.J = 500;\n t.K = 667;\n t.L = 556;\n t.M = 833;\n t.N = 722;\n t.O = 778;\n t.P = 667;\n t.Q = 778;\n t.R = 722;\n t.S = 667;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 944;\n t.X = 667;\n t.Y = 667;\n t.Z = 611;\n t.bracketleft = 278;\n t.backslash = 278;\n t.bracketright = 278;\n t.asciicircum = 469;\n t.underscore = 556;\n t.quoteleft = 222;\n t.a = 556;\n t.b = 556;\n t.c = 500;\n t.d = 556;\n t.e = 556;\n t.f = 278;\n t.g = 556;\n t.h = 556;\n t.i = 222;\n t.j = 222;\n t.k = 500;\n t.l = 222;\n t.m = 833;\n t.n = 556;\n t.o = 556;\n t.p = 556;\n t.q = 556;\n t.r = 333;\n t.s = 500;\n t.t = 278;\n t.u = 556;\n t.v = 500;\n t.w = 722;\n t.x = 500;\n t.y = 500;\n t.z = 500;\n t.braceleft = 334;\n t.bar = 260;\n t.braceright = 334;\n t.asciitilde = 584;\n t.exclamdown = 333;\n t.cent = 556;\n t.sterling = 556;\n t.fraction = 167;\n t.yen = 556;\n t.florin = 556;\n t.section = 556;\n t.currency = 556;\n t.quotesingle = 191;\n t.quotedblleft = 333;\n t.guillemotleft = 556;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 500;\n t.fl = 500;\n t.endash = 556;\n t.dagger = 556;\n t.daggerdbl = 556;\n t.periodcentered = 278;\n t.paragraph = 537;\n t.bullet = 350;\n t.quotesinglbase = 222;\n t.quotedblbase = 333;\n t.quotedblright = 333;\n t.guillemotright = 556;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 611;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 370;\n t.Lslash = 556;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 365;\n t.ae = 889;\n t.dotlessi = 278;\n t.lslash = 222;\n t.oslash = 611;\n t.oe = 944;\n t.germandbls = 611;\n t.Idieresis = 278;\n t.eacute = 556;\n t.abreve = 556;\n t.uhungarumlaut = 556;\n t.ecaron = 556;\n t.Ydieresis = 667;\n t.divide = 584;\n t.Yacute = 667;\n t.Acircumflex = 667;\n t.aacute = 556;\n t.Ucircumflex = 722;\n t.yacute = 500;\n t.scommaaccent = 500;\n t.ecircumflex = 556;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 556;\n t.Uacute = 722;\n t.uogonek = 556;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 737;\n t.Emacron = 667;\n t.ccaron = 500;\n t.aring = 556;\n t.Ncommaaccent = 722;\n t.lacute = 222;\n t.agrave = 556;\n t.Tcommaaccent = 611;\n t.Cacute = 722;\n t.atilde = 556;\n t.Edotaccent = 667;\n t.scaron = 500;\n t.scedilla = 500;\n t.iacute = 278;\n t.lozenge = 471;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 556;\n t.acircumflex = 556;\n t.Amacron = 667;\n t.rcaron = 333;\n t.ccedilla = 500;\n t.Zdotaccent = 611;\n t.Thorn = 667;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 667;\n t.dcaron = 643;\n t.Umacron = 722;\n t.uring = 556;\n t.threesuperior = 333;\n t.Ograve = 778;\n t.Agrave = 667;\n t.Abreve = 667;\n t.multiply = 584;\n t.uacute = 556;\n t.Tcaron = 611;\n t.partialdiff = 476;\n t.ydieresis = 500;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 556;\n t.edieresis = 556;\n t.cacute = 500;\n t.nacute = 556;\n t.umacron = 556;\n t.Ncaron = 722;\n t.Iacute = 278;\n t.plusminus = 584;\n t.brokenbar = 260;\n t.registered = 737;\n t.Gbreve = 778;\n t.Idotaccent = 278;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 333;\n t.omacron = 556;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 222;\n t.tcaron = 317;\n t.eogonek = 556;\n t.Uogonek = 722;\n t.Aacute = 667;\n t.Adieresis = 667;\n t.egrave = 556;\n t.zacute = 500;\n t.iogonek = 222;\n t.Oacute = 778;\n t.oacute = 556;\n t.amacron = 556;\n t.sacute = 500;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 556;\n t.twosuperior = 333;\n t.Odieresis = 778;\n t.mu = 556;\n t.igrave = 278;\n t.ohungarumlaut = 556;\n t.Eogonek = 667;\n t.dcroat = 556;\n t.threequarters = 834;\n t.Scedilla = 667;\n t.lcaron = 299;\n t.Kcommaaccent = 667;\n t.Lacute = 556;\n t.trademark = 1000;\n t.edotaccent = 556;\n t.Igrave = 278;\n t.Imacron = 278;\n t.Lcaron = 556;\n t.onehalf = 834;\n t.lessequal = 549;\n t.ocircumflex = 556;\n t.ntilde = 556;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 556;\n t.gbreve = 556;\n t.onequarter = 834;\n t.Scaron = 667;\n t.Scommaaccent = 667;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 556;\n t.Ccaron = 722;\n t.ugrave = 556;\n t.radical = 453;\n t.Dcaron = 722;\n t.rcommaaccent = 333;\n t.Ntilde = 722;\n t.otilde = 556;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 556;\n t.Atilde = 667;\n t.Aogonek = 667;\n t.Aring = 667;\n t.Otilde = 778;\n t.zdotaccent = 500;\n t.Ecaron = 667;\n t.Iogonek = 278;\n t.kcommaaccent = 500;\n t.minus = 584;\n t.Icircumflex = 278;\n t.ncaron = 556;\n t.tcommaaccent = 278;\n t.logicalnot = 584;\n t.odieresis = 556;\n t.udieresis = 556;\n t.notequal = 549;\n t.gcommaaccent = 556;\n t.eth = 556;\n t.zcaron = 500;\n t.ncommaaccent = 556;\n t.onesuperior = 333;\n t.imacron = 278;\n t.Euro = 556;\n });\n // eslint-disable-next-line no-shadow\n t[\"Helvetica-Bold\"] = getLookupTableFactory(function (t) {\n t.space = 278;\n t.exclam = 333;\n t.quotedbl = 474;\n t.numbersign = 556;\n t.dollar = 556;\n t.percent = 889;\n t.ampersand = 722;\n t.quoteright = 278;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 389;\n t.plus = 584;\n t.comma = 278;\n t.hyphen = 333;\n t.period = 278;\n t.slash = 278;\n t.zero = 556;\n t.one = 556;\n t.two = 556;\n t.three = 556;\n t.four = 556;\n t.five = 556;\n t.six = 556;\n t.seven = 556;\n t.eight = 556;\n t.nine = 556;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 584;\n t.equal = 584;\n t.greater = 584;\n t.question = 611;\n t.at = 975;\n t.A = 722;\n t.B = 722;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 722;\n t.I = 278;\n t.J = 556;\n t.K = 722;\n t.L = 611;\n t.M = 833;\n t.N = 722;\n t.O = 778;\n t.P = 667;\n t.Q = 778;\n t.R = 722;\n t.S = 667;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 944;\n t.X = 667;\n t.Y = 667;\n t.Z = 611;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 584;\n t.underscore = 556;\n t.quoteleft = 278;\n t.a = 556;\n t.b = 611;\n t.c = 556;\n t.d = 611;\n t.e = 556;\n t.f = 333;\n t.g = 611;\n t.h = 611;\n t.i = 278;\n t.j = 278;\n t.k = 556;\n t.l = 278;\n t.m = 889;\n t.n = 611;\n t.o = 611;\n t.p = 611;\n t.q = 611;\n t.r = 389;\n t.s = 556;\n t.t = 333;\n t.u = 611;\n t.v = 556;\n t.w = 778;\n t.x = 556;\n t.y = 556;\n t.z = 500;\n t.braceleft = 389;\n t.bar = 280;\n t.braceright = 389;\n t.asciitilde = 584;\n t.exclamdown = 333;\n t.cent = 556;\n t.sterling = 556;\n t.fraction = 167;\n t.yen = 556;\n t.florin = 556;\n t.section = 556;\n t.currency = 556;\n t.quotesingle = 238;\n t.quotedblleft = 500;\n t.guillemotleft = 556;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 611;\n t.fl = 611;\n t.endash = 556;\n t.dagger = 556;\n t.daggerdbl = 556;\n t.periodcentered = 278;\n t.paragraph = 556;\n t.bullet = 350;\n t.quotesinglbase = 278;\n t.quotedblbase = 500;\n t.quotedblright = 500;\n t.guillemotright = 556;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 611;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 370;\n t.Lslash = 611;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 365;\n t.ae = 889;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 611;\n t.oe = 944;\n t.germandbls = 611;\n t.Idieresis = 278;\n t.eacute = 556;\n t.abreve = 556;\n t.uhungarumlaut = 611;\n t.ecaron = 556;\n t.Ydieresis = 667;\n t.divide = 584;\n t.Yacute = 667;\n t.Acircumflex = 722;\n t.aacute = 556;\n t.Ucircumflex = 722;\n t.yacute = 556;\n t.scommaaccent = 556;\n t.ecircumflex = 556;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 556;\n t.Uacute = 722;\n t.uogonek = 611;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 737;\n t.Emacron = 667;\n t.ccaron = 556;\n t.aring = 556;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 556;\n t.Tcommaaccent = 611;\n t.Cacute = 722;\n t.atilde = 556;\n t.Edotaccent = 667;\n t.scaron = 556;\n t.scedilla = 556;\n t.iacute = 278;\n t.lozenge = 494;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 611;\n t.acircumflex = 556;\n t.Amacron = 722;\n t.rcaron = 389;\n t.ccedilla = 556;\n t.Zdotaccent = 611;\n t.Thorn = 667;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 667;\n t.dcaron = 743;\n t.Umacron = 722;\n t.uring = 611;\n t.threesuperior = 333;\n t.Ograve = 778;\n t.Agrave = 722;\n t.Abreve = 722;\n t.multiply = 584;\n t.uacute = 611;\n t.Tcaron = 611;\n t.partialdiff = 494;\n t.ydieresis = 556;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 556;\n t.edieresis = 556;\n t.cacute = 556;\n t.nacute = 611;\n t.umacron = 611;\n t.Ncaron = 722;\n t.Iacute = 278;\n t.plusminus = 584;\n t.brokenbar = 280;\n t.registered = 737;\n t.Gbreve = 778;\n t.Idotaccent = 278;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 389;\n t.omacron = 611;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 278;\n t.tcaron = 389;\n t.eogonek = 556;\n t.Uogonek = 722;\n t.Aacute = 722;\n t.Adieresis = 722;\n t.egrave = 556;\n t.zacute = 500;\n t.iogonek = 278;\n t.Oacute = 778;\n t.oacute = 611;\n t.amacron = 556;\n t.sacute = 556;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 611;\n t.twosuperior = 333;\n t.Odieresis = 778;\n t.mu = 611;\n t.igrave = 278;\n t.ohungarumlaut = 611;\n t.Eogonek = 667;\n t.dcroat = 611;\n t.threequarters = 834;\n t.Scedilla = 667;\n t.lcaron = 400;\n t.Kcommaaccent = 722;\n t.Lacute = 611;\n t.trademark = 1000;\n t.edotaccent = 556;\n t.Igrave = 278;\n t.Imacron = 278;\n t.Lcaron = 611;\n t.onehalf = 834;\n t.lessequal = 549;\n t.ocircumflex = 611;\n t.ntilde = 611;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 556;\n t.gbreve = 611;\n t.onequarter = 834;\n t.Scaron = 667;\n t.Scommaaccent = 667;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 611;\n t.Ccaron = 722;\n t.ugrave = 611;\n t.radical = 549;\n t.Dcaron = 722;\n t.rcommaaccent = 389;\n t.Ntilde = 722;\n t.otilde = 611;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 611;\n t.Atilde = 722;\n t.Aogonek = 722;\n t.Aring = 722;\n t.Otilde = 778;\n t.zdotaccent = 500;\n t.Ecaron = 667;\n t.Iogonek = 278;\n t.kcommaaccent = 556;\n t.minus = 584;\n t.Icircumflex = 278;\n t.ncaron = 611;\n t.tcommaaccent = 333;\n t.logicalnot = 584;\n t.odieresis = 611;\n t.udieresis = 611;\n t.notequal = 549;\n t.gcommaaccent = 611;\n t.eth = 611;\n t.zcaron = 500;\n t.ncommaaccent = 611;\n t.onesuperior = 333;\n t.imacron = 278;\n t.Euro = 556;\n });\n // eslint-disable-next-line no-shadow\n t[\"Helvetica-BoldOblique\"] = getLookupTableFactory(function (t) {\n t.space = 278;\n t.exclam = 333;\n t.quotedbl = 474;\n t.numbersign = 556;\n t.dollar = 556;\n t.percent = 889;\n t.ampersand = 722;\n t.quoteright = 278;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 389;\n t.plus = 584;\n t.comma = 278;\n t.hyphen = 333;\n t.period = 278;\n t.slash = 278;\n t.zero = 556;\n t.one = 556;\n t.two = 556;\n t.three = 556;\n t.four = 556;\n t.five = 556;\n t.six = 556;\n t.seven = 556;\n t.eight = 556;\n t.nine = 556;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 584;\n t.equal = 584;\n t.greater = 584;\n t.question = 611;\n t.at = 975;\n t.A = 722;\n t.B = 722;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 722;\n t.I = 278;\n t.J = 556;\n t.K = 722;\n t.L = 611;\n t.M = 833;\n t.N = 722;\n t.O = 778;\n t.P = 667;\n t.Q = 778;\n t.R = 722;\n t.S = 667;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 944;\n t.X = 667;\n t.Y = 667;\n t.Z = 611;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 584;\n t.underscore = 556;\n t.quoteleft = 278;\n t.a = 556;\n t.b = 611;\n t.c = 556;\n t.d = 611;\n t.e = 556;\n t.f = 333;\n t.g = 611;\n t.h = 611;\n t.i = 278;\n t.j = 278;\n t.k = 556;\n t.l = 278;\n t.m = 889;\n t.n = 611;\n t.o = 611;\n t.p = 611;\n t.q = 611;\n t.r = 389;\n t.s = 556;\n t.t = 333;\n t.u = 611;\n t.v = 556;\n t.w = 778;\n t.x = 556;\n t.y = 556;\n t.z = 500;\n t.braceleft = 389;\n t.bar = 280;\n t.braceright = 389;\n t.asciitilde = 584;\n t.exclamdown = 333;\n t.cent = 556;\n t.sterling = 556;\n t.fraction = 167;\n t.yen = 556;\n t.florin = 556;\n t.section = 556;\n t.currency = 556;\n t.quotesingle = 238;\n t.quotedblleft = 500;\n t.guillemotleft = 556;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 611;\n t.fl = 611;\n t.endash = 556;\n t.dagger = 556;\n t.daggerdbl = 556;\n t.periodcentered = 278;\n t.paragraph = 556;\n t.bullet = 350;\n t.quotesinglbase = 278;\n t.quotedblbase = 500;\n t.quotedblright = 500;\n t.guillemotright = 556;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 611;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 370;\n t.Lslash = 611;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 365;\n t.ae = 889;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 611;\n t.oe = 944;\n t.germandbls = 611;\n t.Idieresis = 278;\n t.eacute = 556;\n t.abreve = 556;\n t.uhungarumlaut = 611;\n t.ecaron = 556;\n t.Ydieresis = 667;\n t.divide = 584;\n t.Yacute = 667;\n t.Acircumflex = 722;\n t.aacute = 556;\n t.Ucircumflex = 722;\n t.yacute = 556;\n t.scommaaccent = 556;\n t.ecircumflex = 556;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 556;\n t.Uacute = 722;\n t.uogonek = 611;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 737;\n t.Emacron = 667;\n t.ccaron = 556;\n t.aring = 556;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 556;\n t.Tcommaaccent = 611;\n t.Cacute = 722;\n t.atilde = 556;\n t.Edotaccent = 667;\n t.scaron = 556;\n t.scedilla = 556;\n t.iacute = 278;\n t.lozenge = 494;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 611;\n t.acircumflex = 556;\n t.Amacron = 722;\n t.rcaron = 389;\n t.ccedilla = 556;\n t.Zdotaccent = 611;\n t.Thorn = 667;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 667;\n t.dcaron = 743;\n t.Umacron = 722;\n t.uring = 611;\n t.threesuperior = 333;\n t.Ograve = 778;\n t.Agrave = 722;\n t.Abreve = 722;\n t.multiply = 584;\n t.uacute = 611;\n t.Tcaron = 611;\n t.partialdiff = 494;\n t.ydieresis = 556;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 556;\n t.edieresis = 556;\n t.cacute = 556;\n t.nacute = 611;\n t.umacron = 611;\n t.Ncaron = 722;\n t.Iacute = 278;\n t.plusminus = 584;\n t.brokenbar = 280;\n t.registered = 737;\n t.Gbreve = 778;\n t.Idotaccent = 278;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 389;\n t.omacron = 611;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 278;\n t.tcaron = 389;\n t.eogonek = 556;\n t.Uogonek = 722;\n t.Aacute = 722;\n t.Adieresis = 722;\n t.egrave = 556;\n t.zacute = 500;\n t.iogonek = 278;\n t.Oacute = 778;\n t.oacute = 611;\n t.amacron = 556;\n t.sacute = 556;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 611;\n t.twosuperior = 333;\n t.Odieresis = 778;\n t.mu = 611;\n t.igrave = 278;\n t.ohungarumlaut = 611;\n t.Eogonek = 667;\n t.dcroat = 611;\n t.threequarters = 834;\n t.Scedilla = 667;\n t.lcaron = 400;\n t.Kcommaaccent = 722;\n t.Lacute = 611;\n t.trademark = 1000;\n t.edotaccent = 556;\n t.Igrave = 278;\n t.Imacron = 278;\n t.Lcaron = 611;\n t.onehalf = 834;\n t.lessequal = 549;\n t.ocircumflex = 611;\n t.ntilde = 611;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 556;\n t.gbreve = 611;\n t.onequarter = 834;\n t.Scaron = 667;\n t.Scommaaccent = 667;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 611;\n t.Ccaron = 722;\n t.ugrave = 611;\n t.radical = 549;\n t.Dcaron = 722;\n t.rcommaaccent = 389;\n t.Ntilde = 722;\n t.otilde = 611;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 611;\n t.Atilde = 722;\n t.Aogonek = 722;\n t.Aring = 722;\n t.Otilde = 778;\n t.zdotaccent = 500;\n t.Ecaron = 667;\n t.Iogonek = 278;\n t.kcommaaccent = 556;\n t.minus = 584;\n t.Icircumflex = 278;\n t.ncaron = 611;\n t.tcommaaccent = 333;\n t.logicalnot = 584;\n t.odieresis = 611;\n t.udieresis = 611;\n t.notequal = 549;\n t.gcommaaccent = 611;\n t.eth = 611;\n t.zcaron = 500;\n t.ncommaaccent = 611;\n t.onesuperior = 333;\n t.imacron = 278;\n t.Euro = 556;\n });\n // eslint-disable-next-line no-shadow\n t[\"Helvetica-Oblique\"] = getLookupTableFactory(function (t) {\n t.space = 278;\n t.exclam = 278;\n t.quotedbl = 355;\n t.numbersign = 556;\n t.dollar = 556;\n t.percent = 889;\n t.ampersand = 667;\n t.quoteright = 222;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 389;\n t.plus = 584;\n t.comma = 278;\n t.hyphen = 333;\n t.period = 278;\n t.slash = 278;\n t.zero = 556;\n t.one = 556;\n t.two = 556;\n t.three = 556;\n t.four = 556;\n t.five = 556;\n t.six = 556;\n t.seven = 556;\n t.eight = 556;\n t.nine = 556;\n t.colon = 278;\n t.semicolon = 278;\n t.less = 584;\n t.equal = 584;\n t.greater = 584;\n t.question = 556;\n t.at = 1015;\n t.A = 667;\n t.B = 667;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 722;\n t.I = 278;\n t.J = 500;\n t.K = 667;\n t.L = 556;\n t.M = 833;\n t.N = 722;\n t.O = 778;\n t.P = 667;\n t.Q = 778;\n t.R = 722;\n t.S = 667;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 944;\n t.X = 667;\n t.Y = 667;\n t.Z = 611;\n t.bracketleft = 278;\n t.backslash = 278;\n t.bracketright = 278;\n t.asciicircum = 469;\n t.underscore = 556;\n t.quoteleft = 222;\n t.a = 556;\n t.b = 556;\n t.c = 500;\n t.d = 556;\n t.e = 556;\n t.f = 278;\n t.g = 556;\n t.h = 556;\n t.i = 222;\n t.j = 222;\n t.k = 500;\n t.l = 222;\n t.m = 833;\n t.n = 556;\n t.o = 556;\n t.p = 556;\n t.q = 556;\n t.r = 333;\n t.s = 500;\n t.t = 278;\n t.u = 556;\n t.v = 500;\n t.w = 722;\n t.x = 500;\n t.y = 500;\n t.z = 500;\n t.braceleft = 334;\n t.bar = 260;\n t.braceright = 334;\n t.asciitilde = 584;\n t.exclamdown = 333;\n t.cent = 556;\n t.sterling = 556;\n t.fraction = 167;\n t.yen = 556;\n t.florin = 556;\n t.section = 556;\n t.currency = 556;\n t.quotesingle = 191;\n t.quotedblleft = 333;\n t.guillemotleft = 556;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 500;\n t.fl = 500;\n t.endash = 556;\n t.dagger = 556;\n t.daggerdbl = 556;\n t.periodcentered = 278;\n t.paragraph = 537;\n t.bullet = 350;\n t.quotesinglbase = 222;\n t.quotedblbase = 333;\n t.quotedblright = 333;\n t.guillemotright = 556;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 611;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 370;\n t.Lslash = 556;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 365;\n t.ae = 889;\n t.dotlessi = 278;\n t.lslash = 222;\n t.oslash = 611;\n t.oe = 944;\n t.germandbls = 611;\n t.Idieresis = 278;\n t.eacute = 556;\n t.abreve = 556;\n t.uhungarumlaut = 556;\n t.ecaron = 556;\n t.Ydieresis = 667;\n t.divide = 584;\n t.Yacute = 667;\n t.Acircumflex = 667;\n t.aacute = 556;\n t.Ucircumflex = 722;\n t.yacute = 500;\n t.scommaaccent = 500;\n t.ecircumflex = 556;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 556;\n t.Uacute = 722;\n t.uogonek = 556;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 737;\n t.Emacron = 667;\n t.ccaron = 500;\n t.aring = 556;\n t.Ncommaaccent = 722;\n t.lacute = 222;\n t.agrave = 556;\n t.Tcommaaccent = 611;\n t.Cacute = 722;\n t.atilde = 556;\n t.Edotaccent = 667;\n t.scaron = 500;\n t.scedilla = 500;\n t.iacute = 278;\n t.lozenge = 471;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 556;\n t.acircumflex = 556;\n t.Amacron = 667;\n t.rcaron = 333;\n t.ccedilla = 500;\n t.Zdotaccent = 611;\n t.Thorn = 667;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 667;\n t.dcaron = 643;\n t.Umacron = 722;\n t.uring = 556;\n t.threesuperior = 333;\n t.Ograve = 778;\n t.Agrave = 667;\n t.Abreve = 667;\n t.multiply = 584;\n t.uacute = 556;\n t.Tcaron = 611;\n t.partialdiff = 476;\n t.ydieresis = 500;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 556;\n t.edieresis = 556;\n t.cacute = 500;\n t.nacute = 556;\n t.umacron = 556;\n t.Ncaron = 722;\n t.Iacute = 278;\n t.plusminus = 584;\n t.brokenbar = 260;\n t.registered = 737;\n t.Gbreve = 778;\n t.Idotaccent = 278;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 333;\n t.omacron = 556;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 222;\n t.tcaron = 317;\n t.eogonek = 556;\n t.Uogonek = 722;\n t.Aacute = 667;\n t.Adieresis = 667;\n t.egrave = 556;\n t.zacute = 500;\n t.iogonek = 222;\n t.Oacute = 778;\n t.oacute = 556;\n t.amacron = 556;\n t.sacute = 500;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 556;\n t.twosuperior = 333;\n t.Odieresis = 778;\n t.mu = 556;\n t.igrave = 278;\n t.ohungarumlaut = 556;\n t.Eogonek = 667;\n t.dcroat = 556;\n t.threequarters = 834;\n t.Scedilla = 667;\n t.lcaron = 299;\n t.Kcommaaccent = 667;\n t.Lacute = 556;\n t.trademark = 1000;\n t.edotaccent = 556;\n t.Igrave = 278;\n t.Imacron = 278;\n t.Lcaron = 556;\n t.onehalf = 834;\n t.lessequal = 549;\n t.ocircumflex = 556;\n t.ntilde = 556;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 556;\n t.gbreve = 556;\n t.onequarter = 834;\n t.Scaron = 667;\n t.Scommaaccent = 667;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 556;\n t.Ccaron = 722;\n t.ugrave = 556;\n t.radical = 453;\n t.Dcaron = 722;\n t.rcommaaccent = 333;\n t.Ntilde = 722;\n t.otilde = 556;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 556;\n t.Atilde = 667;\n t.Aogonek = 667;\n t.Aring = 667;\n t.Otilde = 778;\n t.zdotaccent = 500;\n t.Ecaron = 667;\n t.Iogonek = 278;\n t.kcommaaccent = 500;\n t.minus = 584;\n t.Icircumflex = 278;\n t.ncaron = 556;\n t.tcommaaccent = 278;\n t.logicalnot = 584;\n t.odieresis = 556;\n t.udieresis = 556;\n t.notequal = 549;\n t.gcommaaccent = 556;\n t.eth = 556;\n t.zcaron = 500;\n t.ncommaaccent = 556;\n t.onesuperior = 333;\n t.imacron = 278;\n t.Euro = 556;\n });\n // eslint-disable-next-line no-shadow\n t.Symbol = getLookupTableFactory(function (t) {\n t.space = 250;\n t.exclam = 333;\n t.universal = 713;\n t.numbersign = 500;\n t.existential = 549;\n t.percent = 833;\n t.ampersand = 778;\n t.suchthat = 439;\n t.parenleft = 333;\n t.parenright = 333;\n t.asteriskmath = 500;\n t.plus = 549;\n t.comma = 250;\n t.minus = 549;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 278;\n t.semicolon = 278;\n t.less = 549;\n t.equal = 549;\n t.greater = 549;\n t.question = 444;\n t.congruent = 549;\n t.Alpha = 722;\n t.Beta = 667;\n t.Chi = 722;\n t.Delta = 612;\n t.Epsilon = 611;\n t.Phi = 763;\n t.Gamma = 603;\n t.Eta = 722;\n t.Iota = 333;\n t.theta1 = 631;\n t.Kappa = 722;\n t.Lambda = 686;\n t.Mu = 889;\n t.Nu = 722;\n t.Omicron = 722;\n t.Pi = 768;\n t.Theta = 741;\n t.Rho = 556;\n t.Sigma = 592;\n t.Tau = 611;\n t.Upsilon = 690;\n t.sigma1 = 439;\n t.Omega = 768;\n t.Xi = 645;\n t.Psi = 795;\n t.Zeta = 611;\n t.bracketleft = 333;\n t.therefore = 863;\n t.bracketright = 333;\n t.perpendicular = 658;\n t.underscore = 500;\n t.radicalex = 500;\n t.alpha = 631;\n t.beta = 549;\n t.chi = 549;\n t.delta = 494;\n t.epsilon = 439;\n t.phi = 521;\n t.gamma = 411;\n t.eta = 603;\n t.iota = 329;\n t.phi1 = 603;\n t.kappa = 549;\n t.lambda = 549;\n t.mu = 576;\n t.nu = 521;\n t.omicron = 549;\n t.pi = 549;\n t.theta = 521;\n t.rho = 549;\n t.sigma = 603;\n t.tau = 439;\n t.upsilon = 576;\n t.omega1 = 713;\n t.omega = 686;\n t.xi = 493;\n t.psi = 686;\n t.zeta = 494;\n t.braceleft = 480;\n t.bar = 200;\n t.braceright = 480;\n t.similar = 549;\n t.Euro = 750;\n t.Upsilon1 = 620;\n t.minute = 247;\n t.lessequal = 549;\n t.fraction = 167;\n t.infinity = 713;\n t.florin = 500;\n t.club = 753;\n t.diamond = 753;\n t.heart = 753;\n t.spade = 753;\n t.arrowboth = 1042;\n t.arrowleft = 987;\n t.arrowup = 603;\n t.arrowright = 987;\n t.arrowdown = 603;\n t.degree = 400;\n t.plusminus = 549;\n t.second = 411;\n t.greaterequal = 549;\n t.multiply = 549;\n t.proportional = 713;\n t.partialdiff = 494;\n t.bullet = 460;\n t.divide = 549;\n t.notequal = 549;\n t.equivalence = 549;\n t.approxequal = 549;\n t.ellipsis = 1000;\n t.arrowvertex = 603;\n t.arrowhorizex = 1000;\n t.carriagereturn = 658;\n t.aleph = 823;\n t.Ifraktur = 686;\n t.Rfraktur = 795;\n t.weierstrass = 987;\n t.circlemultiply = 768;\n t.circleplus = 768;\n t.emptyset = 823;\n t.intersection = 768;\n t.union = 768;\n t.propersuperset = 713;\n t.reflexsuperset = 713;\n t.notsubset = 713;\n t.propersubset = 713;\n t.reflexsubset = 713;\n t.element = 713;\n t.notelement = 713;\n t.angle = 768;\n t.gradient = 713;\n t.registerserif = 790;\n t.copyrightserif = 790;\n t.trademarkserif = 890;\n t.product = 823;\n t.radical = 549;\n t.dotmath = 250;\n t.logicalnot = 713;\n t.logicaland = 603;\n t.logicalor = 603;\n t.arrowdblboth = 1042;\n t.arrowdblleft = 987;\n t.arrowdblup = 603;\n t.arrowdblright = 987;\n t.arrowdbldown = 603;\n t.lozenge = 494;\n t.angleleft = 329;\n t.registersans = 790;\n t.copyrightsans = 790;\n t.trademarksans = 786;\n t.summation = 713;\n t.parenlefttp = 384;\n t.parenleftex = 384;\n t.parenleftbt = 384;\n t.bracketlefttp = 384;\n t.bracketleftex = 384;\n t.bracketleftbt = 384;\n t.bracelefttp = 494;\n t.braceleftmid = 494;\n t.braceleftbt = 494;\n t.braceex = 494;\n t.angleright = 329;\n t.integral = 274;\n t.integraltp = 686;\n t.integralex = 686;\n t.integralbt = 686;\n t.parenrighttp = 384;\n t.parenrightex = 384;\n t.parenrightbt = 384;\n t.bracketrighttp = 384;\n t.bracketrightex = 384;\n t.bracketrightbt = 384;\n t.bracerighttp = 494;\n t.bracerightmid = 494;\n t.bracerightbt = 494;\n t.apple = 790;\n });\n // eslint-disable-next-line no-shadow\n t[\"Times-Roman\"] = getLookupTableFactory(function (t) {\n t.space = 250;\n t.exclam = 333;\n t.quotedbl = 408;\n t.numbersign = 500;\n t.dollar = 500;\n t.percent = 833;\n t.ampersand = 778;\n t.quoteright = 333;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 500;\n t.plus = 564;\n t.comma = 250;\n t.hyphen = 333;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 278;\n t.semicolon = 278;\n t.less = 564;\n t.equal = 564;\n t.greater = 564;\n t.question = 444;\n t.at = 921;\n t.A = 722;\n t.B = 667;\n t.C = 667;\n t.D = 722;\n t.E = 611;\n t.F = 556;\n t.G = 722;\n t.H = 722;\n t.I = 333;\n t.J = 389;\n t.K = 722;\n t.L = 611;\n t.M = 889;\n t.N = 722;\n t.O = 722;\n t.P = 556;\n t.Q = 722;\n t.R = 667;\n t.S = 556;\n t.T = 611;\n t.U = 722;\n t.V = 722;\n t.W = 944;\n t.X = 722;\n t.Y = 722;\n t.Z = 611;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 469;\n t.underscore = 500;\n t.quoteleft = 333;\n t.a = 444;\n t.b = 500;\n t.c = 444;\n t.d = 500;\n t.e = 444;\n t.f = 333;\n t.g = 500;\n t.h = 500;\n t.i = 278;\n t.j = 278;\n t.k = 500;\n t.l = 278;\n t.m = 778;\n t.n = 500;\n t.o = 500;\n t.p = 500;\n t.q = 500;\n t.r = 333;\n t.s = 389;\n t.t = 278;\n t.u = 500;\n t.v = 500;\n t.w = 722;\n t.x = 500;\n t.y = 500;\n t.z = 444;\n t.braceleft = 480;\n t.bar = 200;\n t.braceright = 480;\n t.asciitilde = 541;\n t.exclamdown = 333;\n t.cent = 500;\n t.sterling = 500;\n t.fraction = 167;\n t.yen = 500;\n t.florin = 500;\n t.section = 500;\n t.currency = 500;\n t.quotesingle = 180;\n t.quotedblleft = 444;\n t.guillemotleft = 500;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 556;\n t.fl = 556;\n t.endash = 500;\n t.dagger = 500;\n t.daggerdbl = 500;\n t.periodcentered = 250;\n t.paragraph = 453;\n t.bullet = 350;\n t.quotesinglbase = 333;\n t.quotedblbase = 444;\n t.quotedblright = 444;\n t.guillemotright = 500;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 444;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 889;\n t.ordfeminine = 276;\n t.Lslash = 611;\n t.Oslash = 722;\n t.OE = 889;\n t.ordmasculine = 310;\n t.ae = 667;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 500;\n t.oe = 722;\n t.germandbls = 500;\n t.Idieresis = 333;\n t.eacute = 444;\n t.abreve = 444;\n t.uhungarumlaut = 500;\n t.ecaron = 444;\n t.Ydieresis = 722;\n t.divide = 564;\n t.Yacute = 722;\n t.Acircumflex = 722;\n t.aacute = 444;\n t.Ucircumflex = 722;\n t.yacute = 500;\n t.scommaaccent = 389;\n t.ecircumflex = 444;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 444;\n t.Uacute = 722;\n t.uogonek = 500;\n t.Edieresis = 611;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 760;\n t.Emacron = 611;\n t.ccaron = 444;\n t.aring = 444;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 444;\n t.Tcommaaccent = 611;\n t.Cacute = 667;\n t.atilde = 444;\n t.Edotaccent = 611;\n t.scaron = 389;\n t.scedilla = 389;\n t.iacute = 278;\n t.lozenge = 471;\n t.Rcaron = 667;\n t.Gcommaaccent = 722;\n t.ucircumflex = 500;\n t.acircumflex = 444;\n t.Amacron = 722;\n t.rcaron = 333;\n t.ccedilla = 444;\n t.Zdotaccent = 611;\n t.Thorn = 556;\n t.Omacron = 722;\n t.Racute = 667;\n t.Sacute = 556;\n t.dcaron = 588;\n t.Umacron = 722;\n t.uring = 500;\n t.threesuperior = 300;\n t.Ograve = 722;\n t.Agrave = 722;\n t.Abreve = 722;\n t.multiply = 564;\n t.uacute = 500;\n t.Tcaron = 611;\n t.partialdiff = 476;\n t.ydieresis = 500;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 611;\n t.adieresis = 444;\n t.edieresis = 444;\n t.cacute = 444;\n t.nacute = 500;\n t.umacron = 500;\n t.Ncaron = 722;\n t.Iacute = 333;\n t.plusminus = 564;\n t.brokenbar = 200;\n t.registered = 760;\n t.Gbreve = 722;\n t.Idotaccent = 333;\n t.summation = 600;\n t.Egrave = 611;\n t.racute = 333;\n t.omacron = 500;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 667;\n t.lcommaaccent = 278;\n t.tcaron = 326;\n t.eogonek = 444;\n t.Uogonek = 722;\n t.Aacute = 722;\n t.Adieresis = 722;\n t.egrave = 444;\n t.zacute = 444;\n t.iogonek = 278;\n t.Oacute = 722;\n t.oacute = 500;\n t.amacron = 444;\n t.sacute = 389;\n t.idieresis = 278;\n t.Ocircumflex = 722;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 500;\n t.twosuperior = 300;\n t.Odieresis = 722;\n t.mu = 500;\n t.igrave = 278;\n t.ohungarumlaut = 500;\n t.Eogonek = 611;\n t.dcroat = 500;\n t.threequarters = 750;\n t.Scedilla = 556;\n t.lcaron = 344;\n t.Kcommaaccent = 722;\n t.Lacute = 611;\n t.trademark = 980;\n t.edotaccent = 444;\n t.Igrave = 333;\n t.Imacron = 333;\n t.Lcaron = 611;\n t.onehalf = 750;\n t.lessequal = 549;\n t.ocircumflex = 500;\n t.ntilde = 500;\n t.Uhungarumlaut = 722;\n t.Eacute = 611;\n t.emacron = 444;\n t.gbreve = 500;\n t.onequarter = 750;\n t.Scaron = 556;\n t.Scommaaccent = 556;\n t.Ohungarumlaut = 722;\n t.degree = 400;\n t.ograve = 500;\n t.Ccaron = 667;\n t.ugrave = 500;\n t.radical = 453;\n t.Dcaron = 722;\n t.rcommaaccent = 333;\n t.Ntilde = 722;\n t.otilde = 500;\n t.Rcommaaccent = 667;\n t.Lcommaaccent = 611;\n t.Atilde = 722;\n t.Aogonek = 722;\n t.Aring = 722;\n t.Otilde = 722;\n t.zdotaccent = 444;\n t.Ecaron = 611;\n t.Iogonek = 333;\n t.kcommaaccent = 500;\n t.minus = 564;\n t.Icircumflex = 333;\n t.ncaron = 500;\n t.tcommaaccent = 278;\n t.logicalnot = 564;\n t.odieresis = 500;\n t.udieresis = 500;\n t.notequal = 549;\n t.gcommaaccent = 500;\n t.eth = 500;\n t.zcaron = 444;\n t.ncommaaccent = 500;\n t.onesuperior = 300;\n t.imacron = 278;\n t.Euro = 500;\n });\n // eslint-disable-next-line no-shadow\n t[\"Times-Bold\"] = getLookupTableFactory(function (t) {\n t.space = 250;\n t.exclam = 333;\n t.quotedbl = 555;\n t.numbersign = 500;\n t.dollar = 500;\n t.percent = 1000;\n t.ampersand = 833;\n t.quoteright = 333;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 500;\n t.plus = 570;\n t.comma = 250;\n t.hyphen = 333;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 570;\n t.equal = 570;\n t.greater = 570;\n t.question = 500;\n t.at = 930;\n t.A = 722;\n t.B = 667;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 778;\n t.I = 389;\n t.J = 500;\n t.K = 778;\n t.L = 667;\n t.M = 944;\n t.N = 722;\n t.O = 778;\n t.P = 611;\n t.Q = 778;\n t.R = 722;\n t.S = 556;\n t.T = 667;\n t.U = 722;\n t.V = 722;\n t.W = 1000;\n t.X = 722;\n t.Y = 722;\n t.Z = 667;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 581;\n t.underscore = 500;\n t.quoteleft = 333;\n t.a = 500;\n t.b = 556;\n t.c = 444;\n t.d = 556;\n t.e = 444;\n t.f = 333;\n t.g = 500;\n t.h = 556;\n t.i = 278;\n t.j = 333;\n t.k = 556;\n t.l = 278;\n t.m = 833;\n t.n = 556;\n t.o = 500;\n t.p = 556;\n t.q = 556;\n t.r = 444;\n t.s = 389;\n t.t = 333;\n t.u = 556;\n t.v = 500;\n t.w = 722;\n t.x = 500;\n t.y = 500;\n t.z = 444;\n t.braceleft = 394;\n t.bar = 220;\n t.braceright = 394;\n t.asciitilde = 520;\n t.exclamdown = 333;\n t.cent = 500;\n t.sterling = 500;\n t.fraction = 167;\n t.yen = 500;\n t.florin = 500;\n t.section = 500;\n t.currency = 500;\n t.quotesingle = 278;\n t.quotedblleft = 500;\n t.guillemotleft = 500;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 556;\n t.fl = 556;\n t.endash = 500;\n t.dagger = 500;\n t.daggerdbl = 500;\n t.periodcentered = 250;\n t.paragraph = 540;\n t.bullet = 350;\n t.quotesinglbase = 333;\n t.quotedblbase = 500;\n t.quotedblright = 500;\n t.guillemotright = 500;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 500;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 300;\n t.Lslash = 667;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 330;\n t.ae = 722;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 500;\n t.oe = 722;\n t.germandbls = 556;\n t.Idieresis = 389;\n t.eacute = 444;\n t.abreve = 500;\n t.uhungarumlaut = 556;\n t.ecaron = 444;\n t.Ydieresis = 722;\n t.divide = 570;\n t.Yacute = 722;\n t.Acircumflex = 722;\n t.aacute = 500;\n t.Ucircumflex = 722;\n t.yacute = 500;\n t.scommaaccent = 389;\n t.ecircumflex = 444;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 500;\n t.Uacute = 722;\n t.uogonek = 556;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 747;\n t.Emacron = 667;\n t.ccaron = 444;\n t.aring = 500;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 500;\n t.Tcommaaccent = 667;\n t.Cacute = 722;\n t.atilde = 500;\n t.Edotaccent = 667;\n t.scaron = 389;\n t.scedilla = 389;\n t.iacute = 278;\n t.lozenge = 494;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 556;\n t.acircumflex = 500;\n t.Amacron = 722;\n t.rcaron = 444;\n t.ccedilla = 444;\n t.Zdotaccent = 667;\n t.Thorn = 611;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 556;\n t.dcaron = 672;\n t.Umacron = 722;\n t.uring = 556;\n t.threesuperior = 300;\n t.Ograve = 778;\n t.Agrave = 722;\n t.Abreve = 722;\n t.multiply = 570;\n t.uacute = 556;\n t.Tcaron = 667;\n t.partialdiff = 494;\n t.ydieresis = 500;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 500;\n t.edieresis = 444;\n t.cacute = 444;\n t.nacute = 556;\n t.umacron = 556;\n t.Ncaron = 722;\n t.Iacute = 389;\n t.plusminus = 570;\n t.brokenbar = 220;\n t.registered = 747;\n t.Gbreve = 778;\n t.Idotaccent = 389;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 444;\n t.omacron = 500;\n t.Zacute = 667;\n t.Zcaron = 667;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 278;\n t.tcaron = 416;\n t.eogonek = 444;\n t.Uogonek = 722;\n t.Aacute = 722;\n t.Adieresis = 722;\n t.egrave = 444;\n t.zacute = 444;\n t.iogonek = 278;\n t.Oacute = 778;\n t.oacute = 500;\n t.amacron = 500;\n t.sacute = 389;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 556;\n t.twosuperior = 300;\n t.Odieresis = 778;\n t.mu = 556;\n t.igrave = 278;\n t.ohungarumlaut = 500;\n t.Eogonek = 667;\n t.dcroat = 556;\n t.threequarters = 750;\n t.Scedilla = 556;\n t.lcaron = 394;\n t.Kcommaaccent = 778;\n t.Lacute = 667;\n t.trademark = 1000;\n t.edotaccent = 444;\n t.Igrave = 389;\n t.Imacron = 389;\n t.Lcaron = 667;\n t.onehalf = 750;\n t.lessequal = 549;\n t.ocircumflex = 500;\n t.ntilde = 556;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 444;\n t.gbreve = 500;\n t.onequarter = 750;\n t.Scaron = 556;\n t.Scommaaccent = 556;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 500;\n t.Ccaron = 722;\n t.ugrave = 556;\n t.radical = 549;\n t.Dcaron = 722;\n t.rcommaaccent = 444;\n t.Ntilde = 722;\n t.otilde = 500;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 667;\n t.Atilde = 722;\n t.Aogonek = 722;\n t.Aring = 722;\n t.Otilde = 778;\n t.zdotaccent = 444;\n t.Ecaron = 667;\n t.Iogonek = 389;\n t.kcommaaccent = 556;\n t.minus = 570;\n t.Icircumflex = 389;\n t.ncaron = 556;\n t.tcommaaccent = 333;\n t.logicalnot = 570;\n t.odieresis = 500;\n t.udieresis = 556;\n t.notequal = 549;\n t.gcommaaccent = 500;\n t.eth = 500;\n t.zcaron = 444;\n t.ncommaaccent = 556;\n t.onesuperior = 300;\n t.imacron = 278;\n t.Euro = 500;\n });\n // eslint-disable-next-line no-shadow\n t[\"Times-BoldItalic\"] = getLookupTableFactory(function (t) {\n t.space = 250;\n t.exclam = 389;\n t.quotedbl = 555;\n t.numbersign = 500;\n t.dollar = 500;\n t.percent = 833;\n t.ampersand = 778;\n t.quoteright = 333;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 500;\n t.plus = 570;\n t.comma = 250;\n t.hyphen = 333;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 570;\n t.equal = 570;\n t.greater = 570;\n t.question = 500;\n t.at = 832;\n t.A = 667;\n t.B = 667;\n t.C = 667;\n t.D = 722;\n t.E = 667;\n t.F = 667;\n t.G = 722;\n t.H = 778;\n t.I = 389;\n t.J = 500;\n t.K = 667;\n t.L = 611;\n t.M = 889;\n t.N = 722;\n t.O = 722;\n t.P = 611;\n t.Q = 722;\n t.R = 667;\n t.S = 556;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 889;\n t.X = 667;\n t.Y = 611;\n t.Z = 611;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 570;\n t.underscore = 500;\n t.quoteleft = 333;\n t.a = 500;\n t.b = 500;\n t.c = 444;\n t.d = 500;\n t.e = 444;\n t.f = 333;\n t.g = 500;\n t.h = 556;\n t.i = 278;\n t.j = 278;\n t.k = 500;\n t.l = 278;\n t.m = 778;\n t.n = 556;\n t.o = 500;\n t.p = 500;\n t.q = 500;\n t.r = 389;\n t.s = 389;\n t.t = 278;\n t.u = 556;\n t.v = 444;\n t.w = 667;\n t.x = 500;\n t.y = 444;\n t.z = 389;\n t.braceleft = 348;\n t.bar = 220;\n t.braceright = 348;\n t.asciitilde = 570;\n t.exclamdown = 389;\n t.cent = 500;\n t.sterling = 500;\n t.fraction = 167;\n t.yen = 500;\n t.florin = 500;\n t.section = 500;\n t.currency = 500;\n t.quotesingle = 278;\n t.quotedblleft = 500;\n t.guillemotleft = 500;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 556;\n t.fl = 556;\n t.endash = 500;\n t.dagger = 500;\n t.daggerdbl = 500;\n t.periodcentered = 250;\n t.paragraph = 500;\n t.bullet = 350;\n t.quotesinglbase = 333;\n t.quotedblbase = 500;\n t.quotedblright = 500;\n t.guillemotright = 500;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 500;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 944;\n t.ordfeminine = 266;\n t.Lslash = 611;\n t.Oslash = 722;\n t.OE = 944;\n t.ordmasculine = 300;\n t.ae = 722;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 500;\n t.oe = 722;\n t.germandbls = 500;\n t.Idieresis = 389;\n t.eacute = 444;\n t.abreve = 500;\n t.uhungarumlaut = 556;\n t.ecaron = 444;\n t.Ydieresis = 611;\n t.divide = 570;\n t.Yacute = 611;\n t.Acircumflex = 667;\n t.aacute = 500;\n t.Ucircumflex = 722;\n t.yacute = 444;\n t.scommaaccent = 389;\n t.ecircumflex = 444;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 500;\n t.Uacute = 722;\n t.uogonek = 556;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 747;\n t.Emacron = 667;\n t.ccaron = 444;\n t.aring = 500;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 500;\n t.Tcommaaccent = 611;\n t.Cacute = 667;\n t.atilde = 500;\n t.Edotaccent = 667;\n t.scaron = 389;\n t.scedilla = 389;\n t.iacute = 278;\n t.lozenge = 494;\n t.Rcaron = 667;\n t.Gcommaaccent = 722;\n t.ucircumflex = 556;\n t.acircumflex = 500;\n t.Amacron = 667;\n t.rcaron = 389;\n t.ccedilla = 444;\n t.Zdotaccent = 611;\n t.Thorn = 611;\n t.Omacron = 722;\n t.Racute = 667;\n t.Sacute = 556;\n t.dcaron = 608;\n t.Umacron = 722;\n t.uring = 556;\n t.threesuperior = 300;\n t.Ograve = 722;\n t.Agrave = 667;\n t.Abreve = 667;\n t.multiply = 570;\n t.uacute = 556;\n t.Tcaron = 611;\n t.partialdiff = 494;\n t.ydieresis = 444;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 500;\n t.edieresis = 444;\n t.cacute = 444;\n t.nacute = 556;\n t.umacron = 556;\n t.Ncaron = 722;\n t.Iacute = 389;\n t.plusminus = 570;\n t.brokenbar = 220;\n t.registered = 747;\n t.Gbreve = 722;\n t.Idotaccent = 389;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 389;\n t.omacron = 500;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 667;\n t.lcommaaccent = 278;\n t.tcaron = 366;\n t.eogonek = 444;\n t.Uogonek = 722;\n t.Aacute = 667;\n t.Adieresis = 667;\n t.egrave = 444;\n t.zacute = 389;\n t.iogonek = 278;\n t.Oacute = 722;\n t.oacute = 500;\n t.amacron = 500;\n t.sacute = 389;\n t.idieresis = 278;\n t.Ocircumflex = 722;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 500;\n t.twosuperior = 300;\n t.Odieresis = 722;\n t.mu = 576;\n t.igrave = 278;\n t.ohungarumlaut = 500;\n t.Eogonek = 667;\n t.dcroat = 500;\n t.threequarters = 750;\n t.Scedilla = 556;\n t.lcaron = 382;\n t.Kcommaaccent = 667;\n t.Lacute = 611;\n t.trademark = 1000;\n t.edotaccent = 444;\n t.Igrave = 389;\n t.Imacron = 389;\n t.Lcaron = 611;\n t.onehalf = 750;\n t.lessequal = 549;\n t.ocircumflex = 500;\n t.ntilde = 556;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 444;\n t.gbreve = 500;\n t.onequarter = 750;\n t.Scaron = 556;\n t.Scommaaccent = 556;\n t.Ohungarumlaut = 722;\n t.degree = 400;\n t.ograve = 500;\n t.Ccaron = 667;\n t.ugrave = 556;\n t.radical = 549;\n t.Dcaron = 722;\n t.rcommaaccent = 389;\n t.Ntilde = 722;\n t.otilde = 500;\n t.Rcommaaccent = 667;\n t.Lcommaaccent = 611;\n t.Atilde = 667;\n t.Aogonek = 667;\n t.Aring = 667;\n t.Otilde = 722;\n t.zdotaccent = 389;\n t.Ecaron = 667;\n t.Iogonek = 389;\n t.kcommaaccent = 500;\n t.minus = 606;\n t.Icircumflex = 389;\n t.ncaron = 556;\n t.tcommaaccent = 278;\n t.logicalnot = 606;\n t.odieresis = 500;\n t.udieresis = 556;\n t.notequal = 549;\n t.gcommaaccent = 500;\n t.eth = 500;\n t.zcaron = 389;\n t.ncommaaccent = 556;\n t.onesuperior = 300;\n t.imacron = 278;\n t.Euro = 500;\n });\n // eslint-disable-next-line no-shadow\n t[\"Times-Italic\"] = getLookupTableFactory(function (t) {\n t.space = 250;\n t.exclam = 333;\n t.quotedbl = 420;\n t.numbersign = 500;\n t.dollar = 500;\n t.percent = 833;\n t.ampersand = 778;\n t.quoteright = 333;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 500;\n t.plus = 675;\n t.comma = 250;\n t.hyphen = 333;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 675;\n t.equal = 675;\n t.greater = 675;\n t.question = 500;\n t.at = 920;\n t.A = 611;\n t.B = 611;\n t.C = 667;\n t.D = 722;\n t.E = 611;\n t.F = 611;\n t.G = 722;\n t.H = 722;\n t.I = 333;\n t.J = 444;\n t.K = 667;\n t.L = 556;\n t.M = 833;\n t.N = 667;\n t.O = 722;\n t.P = 611;\n t.Q = 722;\n t.R = 611;\n t.S = 500;\n t.T = 556;\n t.U = 722;\n t.V = 611;\n t.W = 833;\n t.X = 611;\n t.Y = 556;\n t.Z = 556;\n t.bracketleft = 389;\n t.backslash = 278;\n t.bracketright = 389;\n t.asciicircum = 422;\n t.underscore = 500;\n t.quoteleft = 333;\n t.a = 500;\n t.b = 500;\n t.c = 444;\n t.d = 500;\n t.e = 444;\n t.f = 278;\n t.g = 500;\n t.h = 500;\n t.i = 278;\n t.j = 278;\n t.k = 444;\n t.l = 278;\n t.m = 722;\n t.n = 500;\n t.o = 500;\n t.p = 500;\n t.q = 500;\n t.r = 389;\n t.s = 389;\n t.t = 278;\n t.u = 500;\n t.v = 444;\n t.w = 667;\n t.x = 444;\n t.y = 444;\n t.z = 389;\n t.braceleft = 400;\n t.bar = 275;\n t.braceright = 400;\n t.asciitilde = 541;\n t.exclamdown = 389;\n t.cent = 500;\n t.sterling = 500;\n t.fraction = 167;\n t.yen = 500;\n t.florin = 500;\n t.section = 500;\n t.currency = 500;\n t.quotesingle = 214;\n t.quotedblleft = 556;\n t.guillemotleft = 500;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 500;\n t.fl = 500;\n t.endash = 500;\n t.dagger = 500;\n t.daggerdbl = 500;\n t.periodcentered = 250;\n t.paragraph = 523;\n t.bullet = 350;\n t.quotesinglbase = 333;\n t.quotedblbase = 556;\n t.quotedblright = 556;\n t.guillemotright = 500;\n t.ellipsis = 889;\n t.perthousand = 1000;\n t.questiondown = 500;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 889;\n t.AE = 889;\n t.ordfeminine = 276;\n t.Lslash = 556;\n t.Oslash = 722;\n t.OE = 944;\n t.ordmasculine = 310;\n t.ae = 667;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 500;\n t.oe = 667;\n t.germandbls = 500;\n t.Idieresis = 333;\n t.eacute = 444;\n t.abreve = 500;\n t.uhungarumlaut = 500;\n t.ecaron = 444;\n t.Ydieresis = 556;\n t.divide = 675;\n t.Yacute = 556;\n t.Acircumflex = 611;\n t.aacute = 500;\n t.Ucircumflex = 722;\n t.yacute = 444;\n t.scommaaccent = 389;\n t.ecircumflex = 444;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 500;\n t.Uacute = 722;\n t.uogonek = 500;\n t.Edieresis = 611;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 760;\n t.Emacron = 611;\n t.ccaron = 444;\n t.aring = 500;\n t.Ncommaaccent = 667;\n t.lacute = 278;\n t.agrave = 500;\n t.Tcommaaccent = 556;\n t.Cacute = 667;\n t.atilde = 500;\n t.Edotaccent = 611;\n t.scaron = 389;\n t.scedilla = 389;\n t.iacute = 278;\n t.lozenge = 471;\n t.Rcaron = 611;\n t.Gcommaaccent = 722;\n t.ucircumflex = 500;\n t.acircumflex = 500;\n t.Amacron = 611;\n t.rcaron = 389;\n t.ccedilla = 444;\n t.Zdotaccent = 556;\n t.Thorn = 611;\n t.Omacron = 722;\n t.Racute = 611;\n t.Sacute = 500;\n t.dcaron = 544;\n t.Umacron = 722;\n t.uring = 500;\n t.threesuperior = 300;\n t.Ograve = 722;\n t.Agrave = 611;\n t.Abreve = 611;\n t.multiply = 675;\n t.uacute = 500;\n t.Tcaron = 556;\n t.partialdiff = 476;\n t.ydieresis = 444;\n t.Nacute = 667;\n t.icircumflex = 278;\n t.Ecircumflex = 611;\n t.adieresis = 500;\n t.edieresis = 444;\n t.cacute = 444;\n t.nacute = 500;\n t.umacron = 500;\n t.Ncaron = 667;\n t.Iacute = 333;\n t.plusminus = 675;\n t.brokenbar = 275;\n t.registered = 760;\n t.Gbreve = 722;\n t.Idotaccent = 333;\n t.summation = 600;\n t.Egrave = 611;\n t.racute = 389;\n t.omacron = 500;\n t.Zacute = 556;\n t.Zcaron = 556;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 667;\n t.lcommaaccent = 278;\n t.tcaron = 300;\n t.eogonek = 444;\n t.Uogonek = 722;\n t.Aacute = 611;\n t.Adieresis = 611;\n t.egrave = 444;\n t.zacute = 389;\n t.iogonek = 278;\n t.Oacute = 722;\n t.oacute = 500;\n t.amacron = 500;\n t.sacute = 389;\n t.idieresis = 278;\n t.Ocircumflex = 722;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 500;\n t.twosuperior = 300;\n t.Odieresis = 722;\n t.mu = 500;\n t.igrave = 278;\n t.ohungarumlaut = 500;\n t.Eogonek = 611;\n t.dcroat = 500;\n t.threequarters = 750;\n t.Scedilla = 500;\n t.lcaron = 300;\n t.Kcommaaccent = 667;\n t.Lacute = 556;\n t.trademark = 980;\n t.edotaccent = 444;\n t.Igrave = 333;\n t.Imacron = 333;\n t.Lcaron = 611;\n t.onehalf = 750;\n t.lessequal = 549;\n t.ocircumflex = 500;\n t.ntilde = 500;\n t.Uhungarumlaut = 722;\n t.Eacute = 611;\n t.emacron = 444;\n t.gbreve = 500;\n t.onequarter = 750;\n t.Scaron = 500;\n t.Scommaaccent = 500;\n t.Ohungarumlaut = 722;\n t.degree = 400;\n t.ograve = 500;\n t.Ccaron = 667;\n t.ugrave = 500;\n t.radical = 453;\n t.Dcaron = 722;\n t.rcommaaccent = 389;\n t.Ntilde = 667;\n t.otilde = 500;\n t.Rcommaaccent = 611;\n t.Lcommaaccent = 556;\n t.Atilde = 611;\n t.Aogonek = 611;\n t.Aring = 611;\n t.Otilde = 722;\n t.zdotaccent = 389;\n t.Ecaron = 611;\n t.Iogonek = 333;\n t.kcommaaccent = 444;\n t.minus = 675;\n t.Icircumflex = 333;\n t.ncaron = 500;\n t.tcommaaccent = 278;\n t.logicalnot = 675;\n t.odieresis = 500;\n t.udieresis = 500;\n t.notequal = 549;\n t.gcommaaccent = 500;\n t.eth = 500;\n t.zcaron = 389;\n t.ncommaaccent = 500;\n t.onesuperior = 300;\n t.imacron = 278;\n t.Euro = 500;\n });\n // eslint-disable-next-line no-shadow\n t.ZapfDingbats = getLookupTableFactory(function (t) {\n t.space = 278;\n t.a1 = 974;\n t.a2 = 961;\n t.a202 = 974;\n t.a3 = 980;\n t.a4 = 719;\n t.a5 = 789;\n t.a119 = 790;\n t.a118 = 791;\n t.a117 = 690;\n t.a11 = 960;\n t.a12 = 939;\n t.a13 = 549;\n t.a14 = 855;\n t.a15 = 911;\n t.a16 = 933;\n t.a105 = 911;\n t.a17 = 945;\n t.a18 = 974;\n t.a19 = 755;\n t.a20 = 846;\n t.a21 = 762;\n t.a22 = 761;\n t.a23 = 571;\n t.a24 = 677;\n t.a25 = 763;\n t.a26 = 760;\n t.a27 = 759;\n t.a28 = 754;\n t.a6 = 494;\n t.a7 = 552;\n t.a8 = 537;\n t.a9 = 577;\n t.a10 = 692;\n t.a29 = 786;\n t.a30 = 788;\n t.a31 = 788;\n t.a32 = 790;\n t.a33 = 793;\n t.a34 = 794;\n t.a35 = 816;\n t.a36 = 823;\n t.a37 = 789;\n t.a38 = 841;\n t.a39 = 823;\n t.a40 = 833;\n t.a41 = 816;\n t.a42 = 831;\n t.a43 = 923;\n t.a44 = 744;\n t.a45 = 723;\n t.a46 = 749;\n t.a47 = 790;\n t.a48 = 792;\n t.a49 = 695;\n t.a50 = 776;\n t.a51 = 768;\n t.a52 = 792;\n t.a53 = 759;\n t.a54 = 707;\n t.a55 = 708;\n t.a56 = 682;\n t.a57 = 701;\n t.a58 = 826;\n t.a59 = 815;\n t.a60 = 789;\n t.a61 = 789;\n t.a62 = 707;\n t.a63 = 687;\n t.a64 = 696;\n t.a65 = 689;\n t.a66 = 786;\n t.a67 = 787;\n t.a68 = 713;\n t.a69 = 791;\n t.a70 = 785;\n t.a71 = 791;\n t.a72 = 873;\n t.a73 = 761;\n t.a74 = 762;\n t.a203 = 762;\n t.a75 = 759;\n t.a204 = 759;\n t.a76 = 892;\n t.a77 = 892;\n t.a78 = 788;\n t.a79 = 784;\n t.a81 = 438;\n t.a82 = 138;\n t.a83 = 277;\n t.a84 = 415;\n t.a97 = 392;\n t.a98 = 392;\n t.a99 = 668;\n t.a100 = 668;\n t.a89 = 390;\n t.a90 = 390;\n t.a93 = 317;\n t.a94 = 317;\n t.a91 = 276;\n t.a92 = 276;\n t.a205 = 509;\n t.a85 = 509;\n t.a206 = 410;\n t.a86 = 410;\n t.a87 = 234;\n t.a88 = 234;\n t.a95 = 334;\n t.a96 = 334;\n t.a101 = 732;\n t.a102 = 544;\n t.a103 = 544;\n t.a104 = 910;\n t.a106 = 667;\n t.a107 = 760;\n t.a108 = 760;\n t.a112 = 776;\n t.a111 = 595;\n t.a110 = 694;\n t.a109 = 626;\n t.a120 = 788;\n t.a121 = 788;\n t.a122 = 788;\n t.a123 = 788;\n t.a124 = 788;\n t.a125 = 788;\n t.a126 = 788;\n t.a127 = 788;\n t.a128 = 788;\n t.a129 = 788;\n t.a130 = 788;\n t.a131 = 788;\n t.a132 = 788;\n t.a133 = 788;\n t.a134 = 788;\n t.a135 = 788;\n t.a136 = 788;\n t.a137 = 788;\n t.a138 = 788;\n t.a139 = 788;\n t.a140 = 788;\n t.a141 = 788;\n t.a142 = 788;\n t.a143 = 788;\n t.a144 = 788;\n t.a145 = 788;\n t.a146 = 788;\n t.a147 = 788;\n t.a148 = 788;\n t.a149 = 788;\n t.a150 = 788;\n t.a151 = 788;\n t.a152 = 788;\n t.a153 = 788;\n t.a154 = 788;\n t.a155 = 788;\n t.a156 = 788;\n t.a157 = 788;\n t.a158 = 788;\n t.a159 = 788;\n t.a160 = 894;\n t.a161 = 838;\n t.a163 = 1016;\n t.a164 = 458;\n t.a196 = 748;\n t.a165 = 924;\n t.a192 = 748;\n t.a166 = 918;\n t.a167 = 927;\n t.a168 = 928;\n t.a169 = 928;\n t.a170 = 834;\n t.a171 = 873;\n t.a172 = 828;\n t.a173 = 924;\n t.a162 = 924;\n t.a174 = 917;\n t.a175 = 930;\n t.a176 = 931;\n t.a177 = 463;\n t.a178 = 883;\n t.a179 = 836;\n t.a193 = 836;\n t.a180 = 867;\n t.a199 = 867;\n t.a181 = 696;\n t.a200 = 696;\n t.a182 = 874;\n t.a201 = 874;\n t.a183 = 760;\n t.a184 = 946;\n t.a197 = 771;\n t.a185 = 865;\n t.a194 = 771;\n t.a198 = 888;\n t.a186 = 967;\n t.a195 = 888;\n t.a187 = 831;\n t.a188 = 873;\n t.a189 = 927;\n t.a190 = 970;\n t.a191 = 918;\n });\n});\n\nconst getFontBasicMetrics = getLookupTableFactory(function (t) {\n t.Courier = {\n ascent: 629,\n descent: -157,\n capHeight: 562,\n xHeight: -426,\n };\n t[\"Courier-Bold\"] = {\n ascent: 629,\n descent: -157,\n capHeight: 562,\n xHeight: 439,\n };\n t[\"Courier-Oblique\"] = {\n ascent: 629,\n descent: -157,\n capHeight: 562,\n xHeight: 426,\n };\n t[\"Courier-BoldOblique\"] = {\n ascent: 629,\n descent: -157,\n capHeight: 562,\n xHeight: 426,\n };\n t.Helvetica = {\n ascent: 718,\n descent: -207,\n capHeight: 718,\n xHeight: 523,\n };\n t[\"Helvetica-Bold\"] = {\n ascent: 718,\n descent: -207,\n capHeight: 718,\n xHeight: 532,\n };\n t[\"Helvetica-Oblique\"] = {\n ascent: 718,\n descent: -207,\n capHeight: 718,\n xHeight: 523,\n };\n t[\"Helvetica-BoldOblique\"] = {\n ascent: 718,\n descent: -207,\n capHeight: 718,\n xHeight: 532,\n };\n t[\"Times-Roman\"] = {\n ascent: 683,\n descent: -217,\n capHeight: 662,\n xHeight: 450,\n };\n t[\"Times-Bold\"] = {\n ascent: 683,\n descent: -217,\n capHeight: 676,\n xHeight: 461,\n };\n t[\"Times-Italic\"] = {\n ascent: 683,\n descent: -217,\n capHeight: 653,\n xHeight: 441,\n };\n t[\"Times-BoldItalic\"] = {\n ascent: 683,\n descent: -217,\n capHeight: 669,\n xHeight: 462,\n };\n t.Symbol = {\n ascent: Math.NaN,\n descent: Math.NaN,\n capHeight: Math.NaN,\n xHeight: Math.NaN,\n };\n t.ZapfDingbats = {\n ascent: Math.NaN,\n descent: Math.NaN,\n capHeight: Math.NaN,\n xHeight: Math.NaN,\n };\n});\n\nexport { getFontBasicMetrics, getMetrics };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst ON_CURVE_POINT = 1 << 0;\nconst X_SHORT_VECTOR = 1 << 1;\nconst Y_SHORT_VECTOR = 1 << 2;\nconst REPEAT_FLAG = 1 << 3;\nconst X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR = 1 << 4;\nconst Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR = 1 << 5;\nconst OVERLAP_SIMPLE = 1 << 6;\n\nconst ARG_1_AND_2_ARE_WORDS = 1 << 0;\nconst ARGS_ARE_XY_VALUES = 1 << 1;\n// const ROUND_XY_TO_GRID = 1 << 2;\nconst WE_HAVE_A_SCALE = 1 << 3;\nconst MORE_COMPONENTS = 1 << 5;\nconst WE_HAVE_AN_X_AND_Y_SCALE = 1 << 6;\nconst WE_HAVE_A_TWO_BY_TWO = 1 << 7;\nconst WE_HAVE_INSTRUCTIONS = 1 << 8;\n// const USE_MY_METRICS = 1 << 9;\n// const OVERLAP_COMPOUND = 1 << 10;\n// const SCALED_COMPONENT_OFFSET = 1 << 11;\n// const UNSCALED_COMPONENT_OFFSET = 1 << 12;\n\n/**\n * GlyfTable object represents a glyf table containing glyph information:\n * - glyph header (xMin, yMin, xMax, yMax);\n * - contours if any;\n * - components if the glyph is a composite.\n *\n * It's possible to re-scale each glyph in order to have a new font which\n * exactly fits an other one: the goal is to be able to build some substitution\n * font for well-known fonts (Myriad, Arial, ...).\n *\n * A full description of glyf table can be found here\n * https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6glyf.html\n */\nclass GlyfTable {\n constructor({ glyfTable, isGlyphLocationsLong, locaTable, numGlyphs }) {\n this.glyphs = [];\n const loca = new DataView(\n locaTable.buffer,\n locaTable.byteOffset,\n locaTable.byteLength\n );\n const glyf = new DataView(\n glyfTable.buffer,\n glyfTable.byteOffset,\n glyfTable.byteLength\n );\n const offsetSize = isGlyphLocationsLong ? 4 : 2;\n let prev = isGlyphLocationsLong ? loca.getUint32(0) : 2 * loca.getUint16(0);\n let pos = 0;\n for (let i = 0; i < numGlyphs; i++) {\n pos += offsetSize;\n const next = isGlyphLocationsLong\n ? loca.getUint32(pos)\n : 2 * loca.getUint16(pos);\n if (next === prev) {\n this.glyphs.push(new Glyph({}));\n continue;\n }\n\n const glyph = Glyph.parse(prev, glyf);\n this.glyphs.push(glyph);\n\n prev = next;\n }\n }\n\n getSize() {\n return this.glyphs.reduce((a, g) => {\n const size = g.getSize();\n // Round to next multiple of 4 if needed.\n return a + ((size + 3) & ~3);\n }, 0);\n }\n\n write() {\n const totalSize = this.getSize();\n const glyfTable = new DataView(new ArrayBuffer(totalSize));\n const isLocationLong = totalSize > /* 0xffff * 2 */ 0x1fffe;\n const offsetSize = isLocationLong ? 4 : 2;\n const locaTable = new DataView(\n new ArrayBuffer((this.glyphs.length + 1) * offsetSize)\n );\n\n if (isLocationLong) {\n locaTable.setUint32(0, 0);\n } else {\n locaTable.setUint16(0, 0);\n }\n\n let pos = 0;\n let locaIndex = 0;\n for (const glyph of this.glyphs) {\n pos += glyph.write(pos, glyfTable);\n // Round to next multiple of 4 if needed.\n pos = (pos + 3) & ~3;\n\n locaIndex += offsetSize;\n if (isLocationLong) {\n locaTable.setUint32(locaIndex, pos);\n } else {\n locaTable.setUint16(locaIndex, pos >> 1);\n }\n }\n\n return {\n isLocationLong,\n loca: new Uint8Array(locaTable.buffer),\n glyf: new Uint8Array(glyfTable.buffer),\n };\n }\n\n scale(factors) {\n for (let i = 0, ii = this.glyphs.length; i < ii; i++) {\n this.glyphs[i].scale(factors[i]);\n }\n }\n}\n\nclass Glyph {\n constructor({ header = null, simple = null, composites = null }) {\n this.header = header;\n this.simple = simple;\n this.composites = composites;\n }\n\n static parse(pos, glyf) {\n const [read, header] = GlyphHeader.parse(pos, glyf);\n pos += read;\n\n if (header.numberOfContours < 0) {\n // Composite glyph.\n const composites = [];\n while (true) {\n const [n, composite] = CompositeGlyph.parse(pos, glyf);\n pos += n;\n composites.push(composite);\n if (!(composite.flags & MORE_COMPONENTS)) {\n break;\n }\n }\n\n return new Glyph({ header, composites });\n }\n\n const simple = SimpleGlyph.parse(pos, glyf, header.numberOfContours);\n\n return new Glyph({ header, simple });\n }\n\n getSize() {\n if (!this.header) {\n return 0;\n }\n const size = this.simple\n ? this.simple.getSize()\n : this.composites.reduce((a, c) => a + c.getSize(), 0);\n return this.header.getSize() + size;\n }\n\n write(pos, buf) {\n if (!this.header) {\n return 0;\n }\n\n const spos = pos;\n pos += this.header.write(pos, buf);\n if (this.simple) {\n pos += this.simple.write(pos, buf);\n } else {\n for (const composite of this.composites) {\n pos += composite.write(pos, buf);\n }\n }\n\n return pos - spos;\n }\n\n scale(factor) {\n if (!this.header) {\n return;\n }\n\n const xMiddle = (this.header.xMin + this.header.xMax) / 2;\n this.header.scale(xMiddle, factor);\n if (this.simple) {\n this.simple.scale(xMiddle, factor);\n } else {\n for (const composite of this.composites) {\n composite.scale(xMiddle, factor);\n }\n }\n }\n}\n\nclass GlyphHeader {\n constructor({ numberOfContours, xMin, yMin, xMax, yMax }) {\n this.numberOfContours = numberOfContours;\n this.xMin = xMin;\n this.yMin = yMin;\n this.xMax = xMax;\n this.yMax = yMax;\n }\n\n static parse(pos, glyf) {\n return [\n 10,\n new GlyphHeader({\n numberOfContours: glyf.getInt16(pos),\n xMin: glyf.getInt16(pos + 2),\n yMin: glyf.getInt16(pos + 4),\n xMax: glyf.getInt16(pos + 6),\n yMax: glyf.getInt16(pos + 8),\n }),\n ];\n }\n\n getSize() {\n return 10;\n }\n\n write(pos, buf) {\n buf.setInt16(pos, this.numberOfContours);\n buf.setInt16(pos + 2, this.xMin);\n buf.setInt16(pos + 4, this.yMin);\n buf.setInt16(pos + 6, this.xMax);\n buf.setInt16(pos + 8, this.yMax);\n\n return 10;\n }\n\n scale(x, factor) {\n this.xMin = Math.round(x + (this.xMin - x) * factor);\n this.xMax = Math.round(x + (this.xMax - x) * factor);\n }\n}\n\nclass Contour {\n constructor({ flags, xCoordinates, yCoordinates }) {\n this.xCoordinates = xCoordinates;\n this.yCoordinates = yCoordinates;\n this.flags = flags;\n }\n}\n\nclass SimpleGlyph {\n constructor({ contours, instructions }) {\n this.contours = contours;\n this.instructions = instructions;\n }\n\n static parse(pos, glyf, numberOfContours) {\n const endPtsOfContours = [];\n for (let i = 0; i < numberOfContours; i++) {\n const endPt = glyf.getUint16(pos);\n pos += 2;\n endPtsOfContours.push(endPt);\n }\n const numberOfPt = endPtsOfContours[numberOfContours - 1] + 1;\n const instructionLength = glyf.getUint16(pos);\n pos += 2;\n const instructions = new Uint8Array(glyf).slice(\n pos,\n pos + instructionLength\n );\n pos += instructionLength;\n\n const flags = [];\n for (let i = 0; i < numberOfPt; pos++, i++) {\n let flag = glyf.getUint8(pos);\n flags.push(flag);\n if (flag & REPEAT_FLAG) {\n const count = glyf.getUint8(++pos);\n flag ^= REPEAT_FLAG;\n for (let m = 0; m < count; m++) {\n flags.push(flag);\n }\n i += count;\n }\n }\n\n const allXCoordinates = [];\n let xCoordinates = [];\n let yCoordinates = [];\n let pointFlags = [];\n const contours = [];\n let endPtsOfContoursIndex = 0;\n let lastCoordinate = 0;\n\n // Get x coordinates.\n for (let i = 0; i < numberOfPt; i++) {\n const flag = flags[i];\n if (flag & X_SHORT_VECTOR) {\n // 8-bits unsigned value.\n const x = glyf.getUint8(pos++);\n lastCoordinate += flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR ? x : -x;\n xCoordinates.push(lastCoordinate);\n } else if (flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR) {\n // IS_SAME.\n xCoordinates.push(lastCoordinate);\n } else {\n lastCoordinate += glyf.getInt16(pos);\n pos += 2;\n xCoordinates.push(lastCoordinate);\n }\n\n if (endPtsOfContours[endPtsOfContoursIndex] === i) {\n // Next entry is the first one of a new contour.\n endPtsOfContoursIndex++;\n allXCoordinates.push(xCoordinates);\n xCoordinates = [];\n }\n }\n\n lastCoordinate = 0;\n endPtsOfContoursIndex = 0;\n for (let i = 0; i < numberOfPt; i++) {\n const flag = flags[i];\n if (flag & Y_SHORT_VECTOR) {\n // 8-bits unsigned value.\n const y = glyf.getUint8(pos++);\n lastCoordinate += flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR ? y : -y;\n yCoordinates.push(lastCoordinate);\n } else if (flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR) {\n // IS_SAME.\n yCoordinates.push(lastCoordinate);\n } else {\n lastCoordinate += glyf.getInt16(pos);\n pos += 2;\n yCoordinates.push(lastCoordinate);\n }\n\n pointFlags.push((flag & ON_CURVE_POINT) | (flag & OVERLAP_SIMPLE));\n\n if (endPtsOfContours[endPtsOfContoursIndex] === i) {\n // Next entry is the first one of a new contour.\n xCoordinates = allXCoordinates[endPtsOfContoursIndex];\n endPtsOfContoursIndex++;\n contours.push(\n new Contour({\n flags: pointFlags,\n xCoordinates,\n yCoordinates,\n })\n );\n yCoordinates = [];\n pointFlags = [];\n }\n }\n\n return new SimpleGlyph({\n contours,\n instructions,\n });\n }\n\n getSize() {\n let size = this.contours.length * 2 + 2 + this.instructions.length;\n let lastX = 0;\n let lastY = 0;\n for (const contour of this.contours) {\n size += contour.flags.length;\n for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {\n const x = contour.xCoordinates[i];\n const y = contour.yCoordinates[i];\n let abs = Math.abs(x - lastX);\n if (abs > 255) {\n size += 2;\n } else if (abs > 0) {\n size += 1;\n }\n lastX = x;\n\n abs = Math.abs(y - lastY);\n if (abs > 255) {\n size += 2;\n } else if (abs > 0) {\n size += 1;\n }\n lastY = y;\n }\n }\n return size;\n }\n\n write(pos, buf) {\n const spos = pos;\n const xCoordinates = [];\n const yCoordinates = [];\n const flags = [];\n let lastX = 0;\n let lastY = 0;\n\n for (const contour of this.contours) {\n for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {\n let flag = contour.flags[i];\n const x = contour.xCoordinates[i];\n let delta = x - lastX;\n if (delta === 0) {\n flag |= X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR;\n xCoordinates.push(0);\n } else {\n const abs = Math.abs(delta);\n if (abs <= 255) {\n flag |=\n delta >= 0\n ? X_SHORT_VECTOR | X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR\n : X_SHORT_VECTOR;\n xCoordinates.push(abs);\n } else {\n xCoordinates.push(delta);\n }\n }\n lastX = x;\n\n const y = contour.yCoordinates[i];\n delta = y - lastY;\n if (delta === 0) {\n flag |= Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR;\n yCoordinates.push(0);\n } else {\n const abs = Math.abs(delta);\n if (abs <= 255) {\n flag |=\n delta >= 0\n ? Y_SHORT_VECTOR | Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR\n : Y_SHORT_VECTOR;\n yCoordinates.push(abs);\n } else {\n yCoordinates.push(delta);\n }\n }\n lastY = y;\n\n flags.push(flag);\n }\n\n // Write endPtsOfContours entry.\n buf.setUint16(pos, xCoordinates.length - 1);\n pos += 2;\n }\n\n // Write instructionLength.\n buf.setUint16(pos, this.instructions.length);\n pos += 2;\n if (this.instructions.length) {\n // Write instructions.\n new Uint8Array(buf.buffer, 0, buf.buffer.byteLength).set(\n this.instructions,\n pos\n );\n pos += this.instructions.length;\n }\n\n // Write flags.\n for (const flag of flags) {\n buf.setUint8(pos++, flag);\n }\n\n // Write xCoordinates.\n for (let i = 0, ii = xCoordinates.length; i < ii; i++) {\n const x = xCoordinates[i];\n const flag = flags[i];\n if (flag & X_SHORT_VECTOR) {\n buf.setUint8(pos++, x);\n } else if (!(flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR)) {\n buf.setInt16(pos, x);\n pos += 2;\n }\n }\n\n // Write yCoordinates.\n for (let i = 0, ii = yCoordinates.length; i < ii; i++) {\n const y = yCoordinates[i];\n const flag = flags[i];\n if (flag & Y_SHORT_VECTOR) {\n buf.setUint8(pos++, y);\n } else if (!(flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR)) {\n buf.setInt16(pos, y);\n pos += 2;\n }\n }\n\n return pos - spos;\n }\n\n scale(x, factor) {\n for (const contour of this.contours) {\n if (contour.xCoordinates.length === 0) {\n continue;\n }\n\n for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {\n contour.xCoordinates[i] = Math.round(\n x + (contour.xCoordinates[i] - x) * factor\n );\n }\n }\n }\n}\n\nclass CompositeGlyph {\n constructor({\n flags,\n glyphIndex,\n argument1,\n argument2,\n transf,\n instructions,\n }) {\n this.flags = flags;\n this.glyphIndex = glyphIndex;\n this.argument1 = argument1;\n this.argument2 = argument2;\n this.transf = transf;\n this.instructions = instructions;\n }\n\n static parse(pos, glyf) {\n const spos = pos;\n const transf = [];\n let flags = glyf.getUint16(pos);\n const glyphIndex = glyf.getUint16(pos + 2);\n pos += 4;\n\n let argument1, argument2;\n if (flags & ARG_1_AND_2_ARE_WORDS) {\n if (flags & ARGS_ARE_XY_VALUES) {\n argument1 = glyf.getInt16(pos);\n argument2 = glyf.getInt16(pos + 2);\n } else {\n argument1 = glyf.getUint16(pos);\n argument2 = glyf.getUint16(pos + 2);\n }\n pos += 4;\n flags ^= ARG_1_AND_2_ARE_WORDS;\n } else {\n if (flags & ARGS_ARE_XY_VALUES) {\n argument1 = glyf.getInt8(pos);\n argument2 = glyf.getInt8(pos + 1);\n } else {\n argument1 = glyf.getUint8(pos);\n argument2 = glyf.getUint8(pos + 1);\n }\n pos += 2;\n }\n\n if (flags & WE_HAVE_A_SCALE) {\n // Single F2.14.\n transf.push(glyf.getUint16(pos));\n pos += 2;\n } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) {\n // Two F2.14.\n transf.push(glyf.getUint16(pos), glyf.getUint16(pos + 2));\n pos += 4;\n } else if (flags & WE_HAVE_A_TWO_BY_TWO) {\n // Four F2.14.\n transf.push(\n glyf.getUint16(pos),\n glyf.getUint16(pos + 2),\n glyf.getUint16(pos + 4),\n glyf.getUint16(pos + 6)\n );\n pos += 8;\n }\n\n let instructions = null;\n if (flags & WE_HAVE_INSTRUCTIONS) {\n const instructionLength = glyf.getUint16(pos);\n pos += 2;\n instructions = new Uint8Array(glyf).slice(pos, pos + instructionLength);\n pos += instructionLength;\n }\n\n return [\n pos - spos,\n new CompositeGlyph({\n flags,\n glyphIndex,\n argument1,\n argument2,\n transf,\n instructions,\n }),\n ];\n }\n\n getSize() {\n let size = 2 + 2 + this.transf.length * 2;\n if (this.flags & WE_HAVE_INSTRUCTIONS) {\n size += 2 + this.instructions.length;\n }\n\n size += 2;\n if (this.flags & 2) {\n // Arguments are signed.\n if (\n !(\n this.argument1 >= -128 &&\n this.argument1 <= 127 &&\n this.argument2 >= -128 &&\n this.argument2 <= 127\n )\n ) {\n size += 2;\n }\n } else {\n if (\n !(\n this.argument1 >= 0 &&\n this.argument1 <= 255 &&\n this.argument2 >= 0 &&\n this.argument2 <= 255\n )\n ) {\n size += 2;\n }\n }\n\n return size;\n }\n\n write(pos, buf) {\n const spos = pos;\n\n if (this.flags & ARGS_ARE_XY_VALUES) {\n // Arguments are signed.\n if (\n !(\n this.argument1 >= -128 &&\n this.argument1 <= 127 &&\n this.argument2 >= -128 &&\n this.argument2 <= 127\n )\n ) {\n this.flags |= ARG_1_AND_2_ARE_WORDS;\n }\n } else {\n if (\n !(\n this.argument1 >= 0 &&\n this.argument1 <= 255 &&\n this.argument2 >= 0 &&\n this.argument2 <= 255\n )\n ) {\n this.flags |= ARG_1_AND_2_ARE_WORDS;\n }\n }\n\n buf.setUint16(pos, this.flags);\n buf.setUint16(pos + 2, this.glyphIndex);\n pos += 4;\n\n if (this.flags & ARG_1_AND_2_ARE_WORDS) {\n if (this.flags & ARGS_ARE_XY_VALUES) {\n buf.setInt16(pos, this.argument1);\n buf.setInt16(pos + 2, this.argument2);\n } else {\n buf.setUint16(pos, this.argument1);\n buf.setUint16(pos + 2, this.argument2);\n }\n pos += 4;\n } else {\n buf.setUint8(pos, this.argument1);\n buf.setUint8(pos + 1, this.argument2);\n pos += 2;\n }\n\n if (this.flags & WE_HAVE_INSTRUCTIONS) {\n buf.setUint16(pos, this.instructions.length);\n pos += 2;\n // Write instructions.\n if (this.instructions.length) {\n new Uint8Array(buf.buffer, 0, buf.buffer.byteLength).set(\n this.instructions,\n pos\n );\n pos += this.instructions.length;\n }\n }\n\n return pos - spos;\n }\n\n scale(x, factor) {}\n}\n\nexport { GlyfTable };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { readUint32 } from \"./core_utils.js\";\nimport { string32 } from \"../shared/util.js\";\n\nfunction writeInt16(dest, offset, num) {\n dest[offset] = (num >> 8) & 0xff;\n dest[offset + 1] = num & 0xff;\n}\n\nfunction writeInt32(dest, offset, num) {\n dest[offset] = (num >> 24) & 0xff;\n dest[offset + 1] = (num >> 16) & 0xff;\n dest[offset + 2] = (num >> 8) & 0xff;\n dest[offset + 3] = num & 0xff;\n}\n\nfunction writeData(dest, offset, data) {\n if (data instanceof Uint8Array) {\n dest.set(data, offset);\n } else if (typeof data === \"string\") {\n for (let i = 0, ii = data.length; i < ii; i++) {\n dest[offset++] = data.charCodeAt(i) & 0xff;\n }\n } else {\n // treating everything else as array\n for (let i = 0, ii = data.length; i < ii; i++) {\n dest[offset++] = data[i] & 0xff;\n }\n }\n}\n\nconst OTF_HEADER_SIZE = 12;\nconst OTF_TABLE_ENTRY_SIZE = 16;\n\nclass OpenTypeFileBuilder {\n constructor(sfnt) {\n this.sfnt = sfnt;\n this.tables = Object.create(null);\n }\n\n static getSearchParams(entriesCount, entrySize) {\n let maxPower2 = 1,\n log2 = 0;\n while ((maxPower2 ^ entriesCount) > maxPower2) {\n maxPower2 <<= 1;\n log2++;\n }\n const searchRange = maxPower2 * entrySize;\n return {\n range: searchRange,\n entry: log2,\n rangeShift: entrySize * entriesCount - searchRange,\n };\n }\n\n toArray() {\n let sfnt = this.sfnt;\n\n // Tables needs to be written by ascendant alphabetic order\n const tables = this.tables;\n const tablesNames = Object.keys(tables);\n tablesNames.sort();\n const numTables = tablesNames.length;\n\n let i, j, jj, table, tableName;\n // layout the tables data\n let offset = OTF_HEADER_SIZE + numTables * OTF_TABLE_ENTRY_SIZE;\n const tableOffsets = [offset];\n for (i = 0; i < numTables; i++) {\n table = tables[tablesNames[i]];\n const paddedLength = ((table.length + 3) & ~3) >>> 0;\n offset += paddedLength;\n tableOffsets.push(offset);\n }\n\n const file = new Uint8Array(offset);\n // write the table data first (mostly for checksum)\n for (i = 0; i < numTables; i++) {\n table = tables[tablesNames[i]];\n writeData(file, tableOffsets[i], table);\n }\n\n // sfnt version (4 bytes)\n if (sfnt === \"true\") {\n // Windows hates the Mac TrueType sfnt version number\n sfnt = string32(0x00010000);\n }\n file[0] = sfnt.charCodeAt(0) & 0xff;\n file[1] = sfnt.charCodeAt(1) & 0xff;\n file[2] = sfnt.charCodeAt(2) & 0xff;\n file[3] = sfnt.charCodeAt(3) & 0xff;\n\n // numTables (2 bytes)\n writeInt16(file, 4, numTables);\n\n const searchParams = OpenTypeFileBuilder.getSearchParams(numTables, 16);\n\n // searchRange (2 bytes)\n writeInt16(file, 6, searchParams.range);\n // entrySelector (2 bytes)\n writeInt16(file, 8, searchParams.entry);\n // rangeShift (2 bytes)\n writeInt16(file, 10, searchParams.rangeShift);\n\n offset = OTF_HEADER_SIZE;\n // writing table entries\n for (i = 0; i < numTables; i++) {\n tableName = tablesNames[i];\n file[offset] = tableName.charCodeAt(0) & 0xff;\n file[offset + 1] = tableName.charCodeAt(1) & 0xff;\n file[offset + 2] = tableName.charCodeAt(2) & 0xff;\n file[offset + 3] = tableName.charCodeAt(3) & 0xff;\n\n // checksum\n let checksum = 0;\n for (j = tableOffsets[i], jj = tableOffsets[i + 1]; j < jj; j += 4) {\n const quad = readUint32(file, j);\n checksum = (checksum + quad) >>> 0;\n }\n writeInt32(file, offset + 4, checksum);\n\n // offset\n writeInt32(file, offset + 8, tableOffsets[i]);\n // length\n writeInt32(file, offset + 12, tables[tableName].length);\n\n offset += OTF_TABLE_ENTRY_SIZE;\n }\n return file;\n }\n\n addTable(tag, data) {\n if (tag in this.tables) {\n throw new Error(\"Table \" + tag + \" already exists\");\n }\n this.tables[tag] = data;\n }\n}\n\nexport { OpenTypeFileBuilder };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n CFF,\n CFFCharset,\n CFFCompiler,\n CFFHeader,\n CFFIndex,\n CFFPrivateDict,\n CFFStandardStrings,\n CFFStrings,\n CFFTopDict,\n} from \"./cff_parser.js\";\nimport { SEAC_ANALYSIS_ENABLED, type1FontGlyphMapping } from \"./fonts_utils.js\";\nimport { isWhiteSpace } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\nimport { Type1Parser } from \"./type1_parser.js\";\nimport { warn } from \"../shared/util.js\";\n\nfunction findBlock(streamBytes, signature, startIndex) {\n const streamBytesLength = streamBytes.length;\n const signatureLength = signature.length;\n const scanLength = streamBytesLength - signatureLength;\n\n let i = startIndex,\n found = false;\n while (i < scanLength) {\n let j = 0;\n while (j < signatureLength && streamBytes[i + j] === signature[j]) {\n j++;\n }\n if (j >= signatureLength) {\n // `signature` found, skip over whitespace.\n i += j;\n while (i < streamBytesLength && isWhiteSpace(streamBytes[i])) {\n i++;\n }\n found = true;\n break;\n }\n i++;\n }\n return {\n found,\n length: i,\n };\n}\n\nfunction getHeaderBlock(stream, suggestedLength) {\n const EEXEC_SIGNATURE = [0x65, 0x65, 0x78, 0x65, 0x63];\n\n const streamStartPos = stream.pos; // Save the initial stream position.\n let headerBytes, headerBytesLength, block;\n try {\n headerBytes = stream.getBytes(suggestedLength);\n headerBytesLength = headerBytes.length;\n } catch (ex) {\n // Ignore errors if the `suggestedLength` is huge enough that a Uint8Array\n // cannot hold the result of `getBytes`, and fallback to simply checking\n // the entire stream (fixes issue3928.pdf).\n }\n\n if (headerBytesLength === suggestedLength) {\n // Most of the time `suggestedLength` is correct, so to speed things up we\n // initially only check the last few bytes to see if the header was found.\n // Otherwise we (potentially) check the entire stream to prevent errors in\n // `Type1Parser` (fixes issue5686.pdf).\n block = findBlock(\n headerBytes,\n EEXEC_SIGNATURE,\n suggestedLength - 2 * EEXEC_SIGNATURE.length\n );\n\n if (block.found && block.length === suggestedLength) {\n return {\n stream: new Stream(headerBytes),\n length: suggestedLength,\n };\n }\n }\n warn('Invalid \"Length1\" property in Type1 font -- trying to recover.');\n stream.pos = streamStartPos; // Reset the stream position.\n\n const SCAN_BLOCK_LENGTH = 2048;\n let actualLength;\n while (true) {\n const scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n block = findBlock(scanBytes, EEXEC_SIGNATURE, 0);\n\n if (block.length === 0) {\n break;\n }\n stream.pos += block.length; // Update the stream position.\n\n if (block.found) {\n actualLength = stream.pos - streamStartPos;\n break;\n }\n }\n stream.pos = streamStartPos; // Reset the stream position.\n\n if (actualLength) {\n return {\n stream: new Stream(stream.getBytes(actualLength)),\n length: actualLength,\n };\n }\n warn('Unable to recover \"Length1\" property in Type1 font -- using as is.');\n return {\n stream: new Stream(stream.getBytes(suggestedLength)),\n length: suggestedLength,\n };\n}\n\nfunction getEexecBlock(stream, suggestedLength) {\n // We should ideally parse the eexec block to ensure that `suggestedLength`\n // is correct, so we don't truncate the block data if it's too small.\n // However, this would also require checking if the fixed-content portion\n // exists (using the 'Length3' property), and ensuring that it's valid.\n //\n // Given that `suggestedLength` almost always is correct, all the validation\n // would require a great deal of unnecessary parsing for most fonts.\n // To save time, we always fetch the entire stream instead, which also avoid\n // issues if `suggestedLength` is huge (see comment in `getHeaderBlock`).\n //\n // NOTE: This means that the function can include the fixed-content portion\n // in the returned eexec block. In practice this does *not* seem to matter,\n // since `Type1Parser_extractFontProgram` will skip over any non-commands.\n const eexecBytes = stream.getBytes();\n return {\n stream: new Stream(eexecBytes),\n length: eexecBytes.length,\n };\n}\n\n/**\n * Type1Font is also a CIDFontType0.\n */\nclass Type1Font {\n constructor(name, file, properties) {\n // Some bad generators embed pfb file as is, we have to strip 6-byte header.\n // Also, length1 and length2 might be off by 6 bytes as well.\n // http://www.math.ubc.ca/~cass/piscript/type1.pdf\n const PFB_HEADER_SIZE = 6;\n let headerBlockLength = properties.length1;\n let eexecBlockLength = properties.length2;\n let pfbHeader = file.peekBytes(PFB_HEADER_SIZE);\n const pfbHeaderPresent = pfbHeader[0] === 0x80 && pfbHeader[1] === 0x01;\n if (pfbHeaderPresent) {\n file.skip(PFB_HEADER_SIZE);\n headerBlockLength =\n (pfbHeader[5] << 24) |\n (pfbHeader[4] << 16) |\n (pfbHeader[3] << 8) |\n pfbHeader[2];\n }\n\n // Get the data block containing glyphs and subrs information\n const headerBlock = getHeaderBlock(file, headerBlockLength);\n const headerBlockParser = new Type1Parser(\n headerBlock.stream,\n false,\n SEAC_ANALYSIS_ENABLED\n );\n headerBlockParser.extractFontHeader(properties);\n\n if (pfbHeaderPresent) {\n pfbHeader = file.getBytes(PFB_HEADER_SIZE);\n eexecBlockLength =\n (pfbHeader[5] << 24) |\n (pfbHeader[4] << 16) |\n (pfbHeader[3] << 8) |\n pfbHeader[2];\n }\n\n // Decrypt the data blocks and retrieve it's content\n const eexecBlock = getEexecBlock(file, eexecBlockLength);\n const eexecBlockParser = new Type1Parser(\n eexecBlock.stream,\n true,\n SEAC_ANALYSIS_ENABLED\n );\n const data = eexecBlockParser.extractFontProgram(properties);\n for (const key in data.properties) {\n properties[key] = data.properties[key];\n }\n\n const charstrings = data.charstrings;\n const type2Charstrings = this.getType2Charstrings(charstrings);\n const subrs = this.getType2Subrs(data.subrs);\n\n this.charstrings = charstrings;\n this.data = this.wrap(\n name,\n type2Charstrings,\n this.charstrings,\n subrs,\n properties\n );\n this.seacs = this.getSeacs(data.charstrings);\n }\n\n get numGlyphs() {\n return this.charstrings.length + 1;\n }\n\n getCharset() {\n const charset = [\".notdef\"];\n const charstrings = this.charstrings;\n for (let glyphId = 0; glyphId < charstrings.length; glyphId++) {\n charset.push(charstrings[glyphId].glyphName);\n }\n return charset;\n }\n\n getGlyphMapping(properties) {\n const charstrings = this.charstrings;\n\n if (properties.composite) {\n const charCodeToGlyphId = Object.create(null);\n // Map CIDs directly to GIDs.\n for (\n let glyphId = 0, charstringsLen = charstrings.length;\n glyphId < charstringsLen;\n glyphId++\n ) {\n const charCode = properties.cMap.charCodeOf(glyphId);\n // Add 1 because glyph 0 is duplicated.\n charCodeToGlyphId[charCode] = glyphId + 1;\n }\n return charCodeToGlyphId;\n }\n\n const glyphNames = [\".notdef\"];\n let builtInEncoding, glyphId;\n for (glyphId = 0; glyphId < charstrings.length; glyphId++) {\n glyphNames.push(charstrings[glyphId].glyphName);\n }\n const encoding = properties.builtInEncoding;\n if (encoding) {\n builtInEncoding = Object.create(null);\n for (const charCode in encoding) {\n glyphId = glyphNames.indexOf(encoding[charCode]);\n if (glyphId >= 0) {\n builtInEncoding[charCode] = glyphId;\n }\n }\n }\n\n return type1FontGlyphMapping(properties, builtInEncoding, glyphNames);\n }\n\n hasGlyphId(id) {\n if (id < 0 || id >= this.numGlyphs) {\n return false;\n }\n if (id === 0) {\n // notdef is always defined.\n return true;\n }\n const glyph = this.charstrings[id - 1];\n return glyph.charstring.length > 0;\n }\n\n getSeacs(charstrings) {\n const seacMap = [];\n for (let i = 0, ii = charstrings.length; i < ii; i++) {\n const charstring = charstrings[i];\n if (charstring.seac) {\n // Offset by 1 for .notdef\n seacMap[i + 1] = charstring.seac;\n }\n }\n return seacMap;\n }\n\n getType2Charstrings(type1Charstrings) {\n const type2Charstrings = [];\n for (let i = 0, ii = type1Charstrings.length; i < ii; i++) {\n type2Charstrings.push(type1Charstrings[i].charstring);\n }\n return type2Charstrings;\n }\n\n getType2Subrs(type1Subrs) {\n let bias = 0;\n const count = type1Subrs.length;\n if (count < 1133) {\n bias = 107;\n } else if (count < 33769) {\n bias = 1131;\n } else {\n bias = 32768;\n }\n\n // Add a bunch of empty subrs to deal with the Type2 bias\n const type2Subrs = [];\n let i;\n for (i = 0; i < bias; i++) {\n type2Subrs.push([0x0b]);\n }\n\n for (i = 0; i < count; i++) {\n type2Subrs.push(type1Subrs[i]);\n }\n\n return type2Subrs;\n }\n\n wrap(name, glyphs, charstrings, subrs, properties) {\n const cff = new CFF();\n cff.header = new CFFHeader(1, 0, 4, 4);\n\n cff.names = [name];\n\n const topDict = new CFFTopDict();\n // CFF strings IDs 0...390 are predefined names, so refering\n // to entries in our own String INDEX starts at SID 391.\n topDict.setByName(\"version\", 391);\n topDict.setByName(\"Notice\", 392);\n topDict.setByName(\"FullName\", 393);\n topDict.setByName(\"FamilyName\", 394);\n topDict.setByName(\"Weight\", 395);\n topDict.setByName(\"Encoding\", null); // placeholder\n topDict.setByName(\"FontMatrix\", properties.fontMatrix);\n topDict.setByName(\"FontBBox\", properties.bbox);\n topDict.setByName(\"charset\", null); // placeholder\n topDict.setByName(\"CharStrings\", null); // placeholder\n topDict.setByName(\"Private\", null); // placeholder\n cff.topDict = topDict;\n\n const strings = new CFFStrings();\n strings.add(\"Version 0.11\"); // Version\n strings.add(\"See original notice\"); // Notice\n strings.add(name); // FullName\n strings.add(name); // FamilyName\n strings.add(\"Medium\"); // Weight\n cff.strings = strings;\n\n cff.globalSubrIndex = new CFFIndex();\n\n const count = glyphs.length;\n const charsetArray = [\".notdef\"];\n let i, ii;\n for (i = 0; i < count; i++) {\n const glyphName = charstrings[i].glyphName;\n const index = CFFStandardStrings.indexOf(glyphName);\n if (index === -1) {\n strings.add(glyphName);\n }\n charsetArray.push(glyphName);\n }\n cff.charset = new CFFCharset(false, 0, charsetArray);\n\n const charStringsIndex = new CFFIndex();\n charStringsIndex.add([0x8b, 0x0e]); // .notdef\n for (i = 0; i < count; i++) {\n charStringsIndex.add(glyphs[i]);\n }\n cff.charStrings = charStringsIndex;\n\n const privateDict = new CFFPrivateDict();\n privateDict.setByName(\"Subrs\", null); // placeholder\n const fields = [\n \"BlueValues\",\n \"OtherBlues\",\n \"FamilyBlues\",\n \"FamilyOtherBlues\",\n \"StemSnapH\",\n \"StemSnapV\",\n \"BlueShift\",\n \"BlueFuzz\",\n \"BlueScale\",\n \"LanguageGroup\",\n \"ExpansionFactor\",\n \"ForceBold\",\n \"StdHW\",\n \"StdVW\",\n ];\n for (i = 0, ii = fields.length; i < ii; i++) {\n const field = fields[i];\n if (!(field in properties.privateData)) {\n continue;\n }\n const value = properties.privateData[field];\n if (Array.isArray(value)) {\n // All of the private dictionary array data in CFF must be stored as\n // \"delta-encoded\" numbers.\n for (let j = value.length - 1; j > 0; j--) {\n value[j] -= value[j - 1]; // ... difference from previous value\n }\n }\n privateDict.setByName(field, value);\n }\n cff.topDict.privateDict = privateDict;\n\n const subrIndex = new CFFIndex();\n for (i = 0, ii = subrs.length; i < ii; i++) {\n subrIndex.add(subrs[i]);\n }\n privateDict.subrsIndex = subrIndex;\n\n const compiler = new CFFCompiler(cff);\n return compiler.compile();\n }\n}\n\nexport { Type1Font };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getEncoding } from \"./encodings.js\";\nimport { isWhiteSpace } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\nimport { warn } from \"../shared/util.js\";\n\n// Hinting is currently disabled due to unknown problems on windows\n// in tracemonkey and various other pdfs with type1 fonts.\nconst HINTING_ENABLED = false;\n\n/*\n * CharStrings are encoded following the the CharString Encoding sequence\n * describe in Chapter 6 of the \"Adobe Type1 Font Format\" specification.\n * The value in a byte indicates a command, a number, or subsequent bytes\n * that are to be interpreted in a special way.\n *\n * CharString Number Encoding:\n * A CharString byte containing the values from 32 through 255 inclusive\n * indicate an integer. These values are decoded in four ranges.\n *\n * 1. A CharString byte containing a value, v, between 32 and 246 inclusive,\n * indicate the integer v - 139. Thus, the integer values from -107 through\n * 107 inclusive may be encoded in single byte.\n *\n * 2. A CharString byte containing a value, v, between 247 and 250 inclusive,\n * indicates an integer involving the next byte, w, according to the formula:\n * [(v - 247) x 256] + w + 108\n *\n * 3. A CharString byte containing a value, v, between 251 and 254 inclusive,\n * indicates an integer involving the next byte, w, according to the formula:\n * -[(v - 251) * 256] - w - 108\n *\n * 4. A CharString containing the value 255 indicates that the next 4 bytes\n * are a two complement signed integer. The first of these bytes contains the\n * highest order bits, the second byte contains the next higher order bits\n * and the fourth byte contain the lowest order bits.\n *\n *\n * CharString Command Encoding:\n * CharStrings commands are encoded in 1 or 2 bytes.\n *\n * Single byte commands are encoded in 1 byte that contains a value between\n * 0 and 31 inclusive.\n * If a command byte contains the value 12, then the value in the next byte\n * indicates a command. This \"escape\" mechanism allows many extra commands\n * to be encoded and this encoding technique helps to minimize the length of\n * the charStrings.\n */\nconst Type1CharString = (function Type1CharStringClosure() {\n const COMMAND_MAP = {\n hstem: [1],\n vstem: [3],\n vmoveto: [4],\n rlineto: [5],\n hlineto: [6],\n vlineto: [7],\n rrcurveto: [8],\n callsubr: [10],\n flex: [12, 35],\n drop: [12, 18],\n endchar: [14],\n rmoveto: [21],\n hmoveto: [22],\n vhcurveto: [30],\n hvcurveto: [31],\n };\n\n // eslint-disable-next-line no-shadow\n class Type1CharString {\n constructor() {\n this.width = 0;\n this.lsb = 0;\n this.flexing = false;\n this.output = [];\n this.stack = [];\n }\n\n convert(encoded, subrs, seacAnalysisEnabled) {\n const count = encoded.length;\n let error = false;\n let wx, sbx, subrNumber;\n for (let i = 0; i < count; i++) {\n let value = encoded[i];\n if (value < 32) {\n if (value === 12) {\n value = (value << 8) + encoded[++i];\n }\n switch (value) {\n case 1: // hstem\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.hstem);\n break;\n case 3: // vstem\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.vstem);\n break;\n case 4: // vmoveto\n if (this.flexing) {\n if (this.stack.length < 1) {\n error = true;\n break;\n }\n // Add the dx for flex and but also swap the values so they are\n // the right order.\n const dy = this.stack.pop();\n this.stack.push(0, dy);\n break;\n }\n error = this.executeCommand(1, COMMAND_MAP.vmoveto);\n break;\n case 5: // rlineto\n error = this.executeCommand(2, COMMAND_MAP.rlineto);\n break;\n case 6: // hlineto\n error = this.executeCommand(1, COMMAND_MAP.hlineto);\n break;\n case 7: // vlineto\n error = this.executeCommand(1, COMMAND_MAP.vlineto);\n break;\n case 8: // rrcurveto\n error = this.executeCommand(6, COMMAND_MAP.rrcurveto);\n break;\n case 9: // closepath\n // closepath is a Type1 command that does not take argument and is\n // useless in Type2 and it can simply be ignored.\n this.stack = [];\n break;\n case 10: // callsubr\n if (this.stack.length < 1) {\n error = true;\n break;\n }\n subrNumber = this.stack.pop();\n if (!subrs[subrNumber]) {\n error = true;\n break;\n }\n error = this.convert(\n subrs[subrNumber],\n subrs,\n seacAnalysisEnabled\n );\n break;\n case 11: // return\n return error;\n case 13: // hsbw\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n // To convert to type2 we have to move the width value to the\n // first part of the charstring and then use hmoveto with lsb.\n wx = this.stack.pop();\n sbx = this.stack.pop();\n this.lsb = sbx;\n this.width = wx;\n this.stack.push(wx, sbx);\n error = this.executeCommand(2, COMMAND_MAP.hmoveto);\n break;\n case 14: // endchar\n this.output.push(COMMAND_MAP.endchar[0]);\n break;\n case 21: // rmoveto\n if (this.flexing) {\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.rmoveto);\n break;\n case 22: // hmoveto\n if (this.flexing) {\n // Add the dy for flex.\n this.stack.push(0);\n break;\n }\n error = this.executeCommand(1, COMMAND_MAP.hmoveto);\n break;\n case 30: // vhcurveto\n error = this.executeCommand(4, COMMAND_MAP.vhcurveto);\n break;\n case 31: // hvcurveto\n error = this.executeCommand(4, COMMAND_MAP.hvcurveto);\n break;\n case (12 << 8) + 0: // dotsection\n // dotsection is a Type1 command to specify some hinting feature\n // for dots that do not take a parameter and it can safely be\n // ignored for Type2.\n this.stack = [];\n break;\n case (12 << 8) + 1: // vstem3\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n // [vh]stem3 are Type1 only and Type2 supports [vh]stem with\n // multiple parameters, so instead of returning [vh]stem3 take a\n // shortcut and return [vhstem] instead.\n error = this.executeCommand(2, COMMAND_MAP.vstem);\n break;\n case (12 << 8) + 2: // hstem3\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n // See vstem3.\n error = this.executeCommand(2, COMMAND_MAP.hstem);\n break;\n case (12 << 8) + 6: // seac\n // seac is like type 2's special endchar but it doesn't use the\n // first argument asb, so remove it.\n if (seacAnalysisEnabled) {\n const asb = this.stack[this.stack.length - 5];\n this.seac = this.stack.splice(-4, 4);\n this.seac[0] += this.lsb - asb;\n error = this.executeCommand(0, COMMAND_MAP.endchar);\n } else {\n error = this.executeCommand(4, COMMAND_MAP.endchar);\n }\n break;\n case (12 << 8) + 7: // sbw\n if (this.stack.length < 4) {\n error = true;\n break;\n }\n // To convert to type2 we have to move the width value to the\n // first part of the charstring and then use rmoveto with\n // (dx, dy). The height argument will not be used for vmtx and\n // vhea tables reconstruction -- ignoring it.\n this.stack.pop(); // wy\n wx = this.stack.pop();\n const sby = this.stack.pop();\n sbx = this.stack.pop();\n this.lsb = sbx;\n this.width = wx;\n this.stack.push(wx, sbx, sby);\n error = this.executeCommand(3, COMMAND_MAP.rmoveto);\n break;\n case (12 << 8) + 12: // div\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n const num2 = this.stack.pop();\n const num1 = this.stack.pop();\n this.stack.push(num1 / num2);\n break;\n case (12 << 8) + 16: // callothersubr\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n subrNumber = this.stack.pop();\n const numArgs = this.stack.pop();\n if (subrNumber === 0 && numArgs === 3) {\n const flexArgs = this.stack.splice(this.stack.length - 17, 17);\n this.stack.push(\n flexArgs[2] + flexArgs[0], // bcp1x + rpx\n flexArgs[3] + flexArgs[1], // bcp1y + rpy\n flexArgs[4], // bcp2x\n flexArgs[5], // bcp2y\n flexArgs[6], // p2x\n flexArgs[7], // p2y\n flexArgs[8], // bcp3x\n flexArgs[9], // bcp3y\n flexArgs[10], // bcp4x\n flexArgs[11], // bcp4y\n flexArgs[12], // p3x\n flexArgs[13], // p3y\n flexArgs[14] // flexDepth\n // 15 = finalx unused by flex\n // 16 = finaly unused by flex\n );\n error = this.executeCommand(13, COMMAND_MAP.flex, true);\n this.flexing = false;\n this.stack.push(flexArgs[15], flexArgs[16]);\n } else if (subrNumber === 1 && numArgs === 0) {\n this.flexing = true;\n }\n break;\n case (12 << 8) + 17: // pop\n // Ignore this since it is only used with othersubr.\n break;\n case (12 << 8) + 33: // setcurrentpoint\n // Ignore for now.\n this.stack = [];\n break;\n default:\n warn('Unknown type 1 charstring command of \"' + value + '\"');\n break;\n }\n if (error) {\n break;\n }\n continue;\n } else if (value <= 246) {\n value -= 139;\n } else if (value <= 250) {\n value = (value - 247) * 256 + encoded[++i] + 108;\n } else if (value <= 254) {\n value = -((value - 251) * 256) - encoded[++i] - 108;\n } else {\n value =\n ((encoded[++i] & 0xff) << 24) |\n ((encoded[++i] & 0xff) << 16) |\n ((encoded[++i] & 0xff) << 8) |\n ((encoded[++i] & 0xff) << 0);\n }\n this.stack.push(value);\n }\n return error;\n }\n\n executeCommand(howManyArgs, command, keepStack) {\n const stackLength = this.stack.length;\n if (howManyArgs > stackLength) {\n return true;\n }\n const start = stackLength - howManyArgs;\n for (let i = start; i < stackLength; i++) {\n let value = this.stack[i];\n if (Number.isInteger(value)) {\n this.output.push(28, (value >> 8) & 0xff, value & 0xff);\n } else {\n // fixed point\n value = (65536 * value) | 0;\n this.output.push(\n 255,\n (value >> 24) & 0xff,\n (value >> 16) & 0xff,\n (value >> 8) & 0xff,\n value & 0xff\n );\n }\n }\n this.output.push.apply(this.output, command);\n if (keepStack) {\n this.stack.splice(start, howManyArgs);\n } else {\n this.stack.length = 0;\n }\n return false;\n }\n }\n\n return Type1CharString;\n})();\n\n/*\n * Type1Parser encapsulate the needed code for parsing a Type1 font\n * program. Some of its logic depends on the Type2 charstrings\n * structure.\n * Note: this doesn't really parse the font since that would require evaluation\n * of PostScript, but it is possible in most cases to extract what we need\n * without a full parse.\n */\nconst Type1Parser = (function Type1ParserClosure() {\n /*\n * Decrypt a Sequence of Ciphertext Bytes to Produce the Original Sequence\n * of Plaintext Bytes. The function took a key as a parameter which can be\n * for decrypting the eexec block of for decoding charStrings.\n */\n const EEXEC_ENCRYPT_KEY = 55665;\n const CHAR_STRS_ENCRYPT_KEY = 4330;\n\n function isHexDigit(code) {\n return (\n (code >= 48 && code <= 57) || // '0'-'9'\n (code >= 65 && code <= 70) || // 'A'-'F'\n (code >= 97 && code <= 102) // 'a'-'f'\n );\n }\n\n function decrypt(data, key, discardNumber) {\n if (discardNumber >= data.length) {\n return new Uint8Array(0);\n }\n const c1 = 52845,\n c2 = 22719;\n let r = key | 0,\n i,\n j;\n for (i = 0; i < discardNumber; i++) {\n r = ((data[i] + r) * c1 + c2) & ((1 << 16) - 1);\n }\n const count = data.length - discardNumber;\n const decrypted = new Uint8Array(count);\n for (i = discardNumber, j = 0; j < count; i++, j++) {\n const value = data[i];\n decrypted[j] = value ^ (r >> 8);\n r = ((value + r) * c1 + c2) & ((1 << 16) - 1);\n }\n return decrypted;\n }\n\n function decryptAscii(data, key, discardNumber) {\n const c1 = 52845,\n c2 = 22719;\n let r = key | 0;\n const count = data.length,\n maybeLength = count >>> 1;\n const decrypted = new Uint8Array(maybeLength);\n let i, j;\n for (i = 0, j = 0; i < count; i++) {\n const digit1 = data[i];\n if (!isHexDigit(digit1)) {\n continue;\n }\n i++;\n let digit2;\n while (i < count && !isHexDigit((digit2 = data[i]))) {\n i++;\n }\n if (i < count) {\n const value = parseInt(String.fromCharCode(digit1, digit2), 16);\n decrypted[j++] = value ^ (r >> 8);\n r = ((value + r) * c1 + c2) & ((1 << 16) - 1);\n }\n }\n return decrypted.slice(discardNumber, j);\n }\n\n function isSpecial(c) {\n return (\n c === /* '/' = */ 0x2f ||\n c === /* '[' = */ 0x5b ||\n c === /* ']' = */ 0x5d ||\n c === /* '{' = */ 0x7b ||\n c === /* '}' = */ 0x7d ||\n c === /* '(' = */ 0x28 ||\n c === /* ')' = */ 0x29\n );\n }\n\n // eslint-disable-next-line no-shadow\n class Type1Parser {\n constructor(stream, encrypted, seacAnalysisEnabled) {\n if (encrypted) {\n const data = stream.getBytes();\n const isBinary = !(\n (isHexDigit(data[0]) || isWhiteSpace(data[0])) &&\n isHexDigit(data[1]) &&\n isHexDigit(data[2]) &&\n isHexDigit(data[3]) &&\n isHexDigit(data[4]) &&\n isHexDigit(data[5]) &&\n isHexDigit(data[6]) &&\n isHexDigit(data[7])\n );\n stream = new Stream(\n isBinary\n ? decrypt(data, EEXEC_ENCRYPT_KEY, 4)\n : decryptAscii(data, EEXEC_ENCRYPT_KEY, 4)\n );\n }\n this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n\n this.stream = stream;\n this.nextChar();\n }\n\n readNumberArray() {\n this.getToken(); // read '[' or '{' (arrays can start with either)\n const array = [];\n while (true) {\n const token = this.getToken();\n if (token === null || token === \"]\" || token === \"}\") {\n break;\n }\n array.push(parseFloat(token || 0));\n }\n return array;\n }\n\n readNumber() {\n const token = this.getToken();\n return parseFloat(token || 0);\n }\n\n readInt() {\n // Use '| 0' to prevent setting a double into length such as the double\n // does not flow into the loop variable.\n const token = this.getToken();\n return parseInt(token || 0, 10) | 0;\n }\n\n readBoolean() {\n const token = this.getToken();\n // Use 1 and 0 since that's what type2 charstrings use.\n return token === \"true\" ? 1 : 0;\n }\n\n nextChar() {\n return (this.currentChar = this.stream.getByte());\n }\n\n prevChar() {\n this.stream.skip(-2);\n return (this.currentChar = this.stream.getByte());\n }\n\n getToken() {\n // Eat whitespace and comments.\n let comment = false;\n let ch = this.currentChar;\n while (true) {\n if (ch === -1) {\n return null;\n }\n\n if (comment) {\n if (ch === 0x0a || ch === 0x0d) {\n comment = false;\n }\n } else if (ch === /* '%' = */ 0x25) {\n comment = true;\n } else if (!isWhiteSpace(ch)) {\n break;\n }\n ch = this.nextChar();\n }\n if (isSpecial(ch)) {\n this.nextChar();\n return String.fromCharCode(ch);\n }\n let token = \"\";\n do {\n token += String.fromCharCode(ch);\n ch = this.nextChar();\n } while (ch >= 0 && !isWhiteSpace(ch) && !isSpecial(ch));\n return token;\n }\n\n readCharStrings(bytes, lenIV) {\n if (lenIV === -1) {\n // This isn't in the spec, but Adobe's tx program handles -1\n // as plain text.\n return bytes;\n }\n return decrypt(bytes, CHAR_STRS_ENCRYPT_KEY, lenIV);\n }\n\n /*\n * Returns an object containing a Subrs array and a CharStrings\n * array extracted from and eexec encrypted block of data\n */\n extractFontProgram(properties) {\n const stream = this.stream;\n\n const subrs = [],\n charstrings = [];\n const privateData = Object.create(null);\n privateData.lenIV = 4;\n const program = {\n subrs: [],\n charstrings: [],\n properties: {\n privateData,\n },\n };\n let token, length, data, lenIV, encoded;\n while ((token = this.getToken()) !== null) {\n if (token !== \"/\") {\n continue;\n }\n token = this.getToken();\n switch (token) {\n case \"CharStrings\":\n // The number immediately following CharStrings must be greater or\n // equal to the number of CharStrings.\n this.getToken();\n this.getToken(); // read in 'dict'\n this.getToken(); // read in 'dup'\n this.getToken(); // read in 'begin'\n while (true) {\n token = this.getToken();\n if (token === null || token === \"end\") {\n break;\n }\n\n if (token !== \"/\") {\n continue;\n }\n const glyph = this.getToken();\n length = this.readInt();\n this.getToken(); // read in 'RD' or '-|'\n data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n lenIV = program.properties.privateData.lenIV;\n encoded = this.readCharStrings(data, lenIV);\n this.nextChar();\n token = this.getToken(); // read in 'ND' or '|-'\n if (token === \"noaccess\") {\n this.getToken(); // read in 'def'\n } else if (token === \"/\") {\n // The expected 'ND' or '|-' token is missing, avoid swallowing\n // the start of the next glyph (fixes issue14462_reduced.pdf).\n this.prevChar();\n }\n charstrings.push({\n glyph,\n encoded,\n });\n }\n break;\n case \"Subrs\":\n this.readInt(); // num\n this.getToken(); // read in 'array'\n while (this.getToken() === \"dup\") {\n const index = this.readInt();\n length = this.readInt();\n this.getToken(); // read in 'RD' or '-|'\n data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n lenIV = program.properties.privateData.lenIV;\n encoded = this.readCharStrings(data, lenIV);\n this.nextChar();\n token = this.getToken(); // read in 'NP' or '|'\n if (token === \"noaccess\") {\n this.getToken(); // read in 'put'\n }\n subrs[index] = encoded;\n }\n break;\n case \"BlueValues\":\n case \"OtherBlues\":\n case \"FamilyBlues\":\n case \"FamilyOtherBlues\":\n const blueArray = this.readNumberArray();\n // *Blue* values may contain invalid data: disables reading of\n // those values when hinting is disabled.\n if (\n blueArray.length > 0 &&\n blueArray.length % 2 === 0 &&\n HINTING_ENABLED\n ) {\n program.properties.privateData[token] = blueArray;\n }\n break;\n case \"StemSnapH\":\n case \"StemSnapV\":\n program.properties.privateData[token] = this.readNumberArray();\n break;\n case \"StdHW\":\n case \"StdVW\":\n program.properties.privateData[token] = this.readNumberArray()[0];\n break;\n case \"BlueShift\":\n case \"lenIV\":\n case \"BlueFuzz\":\n case \"BlueScale\":\n case \"LanguageGroup\":\n case \"ExpansionFactor\":\n program.properties.privateData[token] = this.readNumber();\n break;\n case \"ForceBold\":\n program.properties.privateData[token] = this.readBoolean();\n break;\n }\n }\n\n for (let i = 0; i < charstrings.length; i++) {\n const glyph = charstrings[i].glyph;\n encoded = charstrings[i].encoded;\n const charString = new Type1CharString();\n const error = charString.convert(\n encoded,\n subrs,\n this.seacAnalysisEnabled\n );\n let output = charString.output;\n if (error) {\n // It seems when FreeType encounters an error while evaluating a glyph\n // that it completely ignores the glyph so we'll mimic that behaviour\n // here and put an endchar to make the validator happy.\n output = [14];\n }\n const charStringObject = {\n glyphName: glyph,\n charstring: output,\n width: charString.width,\n lsb: charString.lsb,\n seac: charString.seac,\n };\n if (glyph === \".notdef\") {\n // Make sure .notdef is at index zero (issue #11477).\n program.charstrings.unshift(charStringObject);\n } else {\n program.charstrings.push(charStringObject);\n }\n\n // Attempt to replace missing widths, from the font dictionary /Widths\n // entry, with ones from the font data (fixes issue11150_reduced.pdf).\n if (properties.builtInEncoding) {\n const index = properties.builtInEncoding.indexOf(glyph);\n if (\n index > -1 &&\n properties.widths[index] === undefined &&\n index >= properties.firstChar &&\n index <= properties.lastChar\n ) {\n properties.widths[index] = charString.width;\n }\n }\n }\n\n return program;\n }\n\n extractFontHeader(properties) {\n let token;\n while ((token = this.getToken()) !== null) {\n if (token !== \"/\") {\n continue;\n }\n token = this.getToken();\n switch (token) {\n case \"FontMatrix\":\n const matrix = this.readNumberArray();\n properties.fontMatrix = matrix;\n break;\n case \"Encoding\":\n const encodingArg = this.getToken();\n let encoding;\n if (!/^\\d+$/.test(encodingArg)) {\n // encoding name is specified\n encoding = getEncoding(encodingArg);\n } else {\n encoding = [];\n const size = parseInt(encodingArg, 10) | 0;\n this.getToken(); // read in 'array'\n\n for (let j = 0; j < size; j++) {\n token = this.getToken();\n // skipping till first dup or def (e.g. ignoring for statement)\n while (token !== \"dup\" && token !== \"def\") {\n token = this.getToken();\n if (token === null) {\n return; // invalid header\n }\n }\n if (token === \"def\") {\n break; // read all array data\n }\n const index = this.readInt();\n this.getToken(); // read in '/'\n const glyph = this.getToken();\n encoding[index] = glyph;\n this.getToken(); // read the in 'put'\n }\n }\n properties.builtInEncoding = encoding;\n break;\n case \"FontBBox\":\n const fontBBox = this.readNumberArray();\n // adjusting ascent/descent\n properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n properties.ascentScaled = true;\n break;\n }\n }\n }\n }\n\n return Type1Parser;\n})();\n\nexport { Type1Parser };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n FormatError,\n info,\n shadow,\n unreachable,\n UNSUPPORTED_FEATURES,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { MissingDataException } from \"./core_utils.js\";\n\nconst ShadingType = {\n FUNCTION_BASED: 1,\n AXIAL: 2,\n RADIAL: 3,\n FREE_FORM_MESH: 4,\n LATTICE_FORM_MESH: 5,\n COONS_PATCH_MESH: 6,\n TENSOR_PATCH_MESH: 7,\n};\n\nclass Pattern {\n constructor() {\n unreachable(\"Cannot initialize Pattern.\");\n }\n\n static parseShading(\n shading,\n xref,\n res,\n handler,\n pdfFunctionFactory,\n localColorSpaceCache\n ) {\n const dict = shading instanceof BaseStream ? shading.dict : shading;\n const type = dict.get(\"ShadingType\");\n\n try {\n switch (type) {\n case ShadingType.AXIAL:\n case ShadingType.RADIAL:\n return new RadialAxialShading(\n dict,\n xref,\n res,\n pdfFunctionFactory,\n localColorSpaceCache\n );\n case ShadingType.FREE_FORM_MESH:\n case ShadingType.LATTICE_FORM_MESH:\n case ShadingType.COONS_PATCH_MESH:\n case ShadingType.TENSOR_PATCH_MESH:\n return new MeshShading(\n shading,\n xref,\n res,\n pdfFunctionFactory,\n localColorSpaceCache\n );\n default:\n throw new FormatError(\"Unsupported ShadingType: \" + type);\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.shadingPattern,\n });\n warn(ex);\n return new DummyShading();\n }\n }\n}\n\nclass BaseShading {\n // A small number to offset the first/last color stops so we can insert ones\n // to support extend. Number.MIN_VALUE is too small and breaks the extend.\n static get SMALL_NUMBER() {\n return shadow(this, \"SMALL_NUMBER\", 1e-6);\n }\n\n constructor() {\n if (this.constructor === BaseShading) {\n unreachable(\"Cannot initialize BaseShading.\");\n }\n }\n\n getIR() {\n unreachable(\"Abstract method `getIR` called.\");\n }\n}\n\n// Radial and axial shading have very similar implementations\n// If needed, the implementations can be broken into two classes.\nclass RadialAxialShading extends BaseShading {\n constructor(dict, xref, resources, pdfFunctionFactory, localColorSpaceCache) {\n super();\n this.coordsArr = dict.getArray(\"Coords\");\n this.shadingType = dict.get(\"ShadingType\");\n const cs = ColorSpace.parse({\n cs: dict.getRaw(\"CS\") || dict.getRaw(\"ColorSpace\"),\n xref,\n resources,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n const bbox = dict.getArray(\"BBox\");\n if (Array.isArray(bbox) && bbox.length === 4) {\n this.bbox = Util.normalizeRect(bbox);\n } else {\n this.bbox = null;\n }\n\n let t0 = 0.0,\n t1 = 1.0;\n if (dict.has(\"Domain\")) {\n const domainArr = dict.getArray(\"Domain\");\n t0 = domainArr[0];\n t1 = domainArr[1];\n }\n\n let extendStart = false,\n extendEnd = false;\n if (dict.has(\"Extend\")) {\n const extendArr = dict.getArray(\"Extend\");\n extendStart = extendArr[0];\n extendEnd = extendArr[1];\n }\n\n if (\n this.shadingType === ShadingType.RADIAL &&\n (!extendStart || !extendEnd)\n ) {\n // Radial gradient only currently works if either circle is fully within\n // the other circle.\n const [x1, y1, r1, x2, y2, r2] = this.coordsArr;\n const distance = Math.hypot(x1 - x2, y1 - y2);\n if (r1 <= r2 + distance && r2 <= r1 + distance) {\n warn(\"Unsupported radial gradient.\");\n }\n }\n\n this.extendStart = extendStart;\n this.extendEnd = extendEnd;\n\n const fnObj = dict.getRaw(\"Function\");\n const fn = pdfFunctionFactory.createFromArray(fnObj);\n\n // 10 samples seems good enough for now, but probably won't work\n // if there are sharp color changes. Ideally, we would implement\n // the spec faithfully and add lossless optimizations.\n const NUMBER_OF_SAMPLES = 10;\n const step = (t1 - t0) / NUMBER_OF_SAMPLES;\n\n const colorStops = (this.colorStops = []);\n\n // Protect against bad domains.\n if (t0 >= t1 || step <= 0) {\n // Acrobat doesn't seem to handle these cases so we'll ignore for\n // now.\n info(\"Bad shading domain.\");\n return;\n }\n\n const color = new Float32Array(cs.numComps),\n ratio = new Float32Array(1);\n let rgbColor;\n for (let i = 0; i <= NUMBER_OF_SAMPLES; i++) {\n ratio[0] = t0 + i * step;\n fn(ratio, 0, color, 0);\n rgbColor = cs.getRgb(color, 0);\n const cssColor = Util.makeHexColor(rgbColor[0], rgbColor[1], rgbColor[2]);\n colorStops.push([i / NUMBER_OF_SAMPLES, cssColor]);\n }\n\n let background = \"transparent\";\n if (dict.has(\"Background\")) {\n rgbColor = cs.getRgb(dict.get(\"Background\"), 0);\n background = Util.makeHexColor(rgbColor[0], rgbColor[1], rgbColor[2]);\n }\n\n if (!extendStart) {\n // Insert a color stop at the front and offset the first real color stop\n // so it doesn't conflict with the one we insert.\n colorStops.unshift([0, background]);\n colorStops[1][0] += BaseShading.SMALL_NUMBER;\n }\n if (!extendEnd) {\n // Same idea as above in extendStart but for the end.\n colorStops[colorStops.length - 1][0] -= BaseShading.SMALL_NUMBER;\n colorStops.push([1, background]);\n }\n\n this.colorStops = colorStops;\n }\n\n getIR() {\n const coordsArr = this.coordsArr;\n const shadingType = this.shadingType;\n let type, p0, p1, r0, r1;\n if (shadingType === ShadingType.AXIAL) {\n p0 = [coordsArr[0], coordsArr[1]];\n p1 = [coordsArr[2], coordsArr[3]];\n r0 = null;\n r1 = null;\n type = \"axial\";\n } else if (shadingType === ShadingType.RADIAL) {\n p0 = [coordsArr[0], coordsArr[1]];\n p1 = [coordsArr[3], coordsArr[4]];\n r0 = coordsArr[2];\n r1 = coordsArr[5];\n type = \"radial\";\n } else {\n unreachable(`getPattern type unknown: ${shadingType}`);\n }\n\n return [\"RadialAxial\", type, this.bbox, this.colorStops, p0, p1, r0, r1];\n }\n}\n\n// All mesh shadings. For now, they will be presented as set of the triangles\n// to be drawn on the canvas and rgb color for each vertex.\nclass MeshStreamReader {\n constructor(stream, context) {\n this.stream = stream;\n this.context = context;\n this.buffer = 0;\n this.bufferLength = 0;\n\n const numComps = context.numComps;\n this.tmpCompsBuf = new Float32Array(numComps);\n const csNumComps = context.colorSpace.numComps;\n this.tmpCsCompsBuf = context.colorFn\n ? new Float32Array(csNumComps)\n : this.tmpCompsBuf;\n }\n\n get hasData() {\n if (this.stream.end) {\n return this.stream.pos < this.stream.end;\n }\n if (this.bufferLength > 0) {\n return true;\n }\n const nextByte = this.stream.getByte();\n if (nextByte < 0) {\n return false;\n }\n this.buffer = nextByte;\n this.bufferLength = 8;\n return true;\n }\n\n readBits(n) {\n let buffer = this.buffer;\n let bufferLength = this.bufferLength;\n if (n === 32) {\n if (bufferLength === 0) {\n return (\n ((this.stream.getByte() << 24) |\n (this.stream.getByte() << 16) |\n (this.stream.getByte() << 8) |\n this.stream.getByte()) >>>\n 0\n );\n }\n buffer =\n (buffer << 24) |\n (this.stream.getByte() << 16) |\n (this.stream.getByte() << 8) |\n this.stream.getByte();\n const nextByte = this.stream.getByte();\n this.buffer = nextByte & ((1 << bufferLength) - 1);\n return (\n ((buffer << (8 - bufferLength)) |\n ((nextByte & 0xff) >> bufferLength)) >>>\n 0\n );\n }\n if (n === 8 && bufferLength === 0) {\n return this.stream.getByte();\n }\n while (bufferLength < n) {\n buffer = (buffer << 8) | this.stream.getByte();\n bufferLength += 8;\n }\n bufferLength -= n;\n this.bufferLength = bufferLength;\n this.buffer = buffer & ((1 << bufferLength) - 1);\n return buffer >> bufferLength;\n }\n\n align() {\n this.buffer = 0;\n this.bufferLength = 0;\n }\n\n readFlag() {\n return this.readBits(this.context.bitsPerFlag);\n }\n\n readCoordinate() {\n const bitsPerCoordinate = this.context.bitsPerCoordinate;\n const xi = this.readBits(bitsPerCoordinate);\n const yi = this.readBits(bitsPerCoordinate);\n const decode = this.context.decode;\n const scale =\n bitsPerCoordinate < 32\n ? 1 / ((1 << bitsPerCoordinate) - 1)\n : 2.3283064365386963e-10; // 2 ^ -32\n return [\n xi * scale * (decode[1] - decode[0]) + decode[0],\n yi * scale * (decode[3] - decode[2]) + decode[2],\n ];\n }\n\n readComponents() {\n const numComps = this.context.numComps;\n const bitsPerComponent = this.context.bitsPerComponent;\n const scale =\n bitsPerComponent < 32\n ? 1 / ((1 << bitsPerComponent) - 1)\n : 2.3283064365386963e-10; // 2 ^ -32\n const decode = this.context.decode;\n const components = this.tmpCompsBuf;\n for (let i = 0, j = 4; i < numComps; i++, j += 2) {\n const ci = this.readBits(bitsPerComponent);\n components[i] = ci * scale * (decode[j + 1] - decode[j]) + decode[j];\n }\n const color = this.tmpCsCompsBuf;\n if (this.context.colorFn) {\n this.context.colorFn(components, 0, color, 0);\n }\n return this.context.colorSpace.getRgb(color, 0);\n }\n}\n\nconst getB = (function getBClosure() {\n function buildB(count) {\n const lut = [];\n for (let i = 0; i <= count; i++) {\n const t = i / count,\n t_ = 1 - t;\n lut.push(\n new Float32Array([\n t_ * t_ * t_,\n 3 * t * t_ * t_,\n 3 * t * t * t_,\n t * t * t,\n ])\n );\n }\n return lut;\n }\n const cache = [];\n\n return function (count) {\n if (!cache[count]) {\n cache[count] = buildB(count);\n }\n return cache[count];\n };\n})();\n\nclass MeshShading extends BaseShading {\n static get MIN_SPLIT_PATCH_CHUNKS_AMOUNT() {\n return shadow(this, \"MIN_SPLIT_PATCH_CHUNKS_AMOUNT\", 3);\n }\n\n static get MAX_SPLIT_PATCH_CHUNKS_AMOUNT() {\n return shadow(this, \"MAX_SPLIT_PATCH_CHUNKS_AMOUNT\", 20);\n }\n\n // Count of triangles per entire mesh bounds.\n static get TRIANGLE_DENSITY() {\n return shadow(this, \"TRIANGLE_DENSITY\", 20);\n }\n\n constructor(\n stream,\n xref,\n resources,\n pdfFunctionFactory,\n localColorSpaceCache\n ) {\n super();\n if (!(stream instanceof BaseStream)) {\n throw new FormatError(\"Mesh data is not a stream\");\n }\n const dict = stream.dict;\n this.shadingType = dict.get(\"ShadingType\");\n const bbox = dict.getArray(\"BBox\");\n if (Array.isArray(bbox) && bbox.length === 4) {\n this.bbox = Util.normalizeRect(bbox);\n } else {\n this.bbox = null;\n }\n const cs = ColorSpace.parse({\n cs: dict.getRaw(\"CS\") || dict.getRaw(\"ColorSpace\"),\n xref,\n resources,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n this.background = dict.has(\"Background\")\n ? cs.getRgb(dict.get(\"Background\"), 0)\n : null;\n\n const fnObj = dict.getRaw(\"Function\");\n const fn = fnObj ? pdfFunctionFactory.createFromArray(fnObj) : null;\n\n this.coords = [];\n this.colors = [];\n this.figures = [];\n\n const decodeContext = {\n bitsPerCoordinate: dict.get(\"BitsPerCoordinate\"),\n bitsPerComponent: dict.get(\"BitsPerComponent\"),\n bitsPerFlag: dict.get(\"BitsPerFlag\"),\n decode: dict.getArray(\"Decode\"),\n colorFn: fn,\n colorSpace: cs,\n numComps: fn ? 1 : cs.numComps,\n };\n const reader = new MeshStreamReader(stream, decodeContext);\n\n let patchMesh = false;\n switch (this.shadingType) {\n case ShadingType.FREE_FORM_MESH:\n this._decodeType4Shading(reader);\n break;\n case ShadingType.LATTICE_FORM_MESH:\n const verticesPerRow = dict.get(\"VerticesPerRow\") | 0;\n if (verticesPerRow < 2) {\n throw new FormatError(\"Invalid VerticesPerRow\");\n }\n this._decodeType5Shading(reader, verticesPerRow);\n break;\n case ShadingType.COONS_PATCH_MESH:\n this._decodeType6Shading(reader);\n patchMesh = true;\n break;\n case ShadingType.TENSOR_PATCH_MESH:\n this._decodeType7Shading(reader);\n patchMesh = true;\n break;\n default:\n unreachable(\"Unsupported mesh type.\");\n break;\n }\n\n if (patchMesh) {\n // Dirty bounds calculation, to determine how dense the triangles will be.\n this._updateBounds();\n for (let i = 0, ii = this.figures.length; i < ii; i++) {\n this._buildFigureFromPatch(i);\n }\n }\n // Calculate bounds.\n this._updateBounds();\n\n this._packData();\n }\n\n _decodeType4Shading(reader) {\n const coords = this.coords;\n const colors = this.colors;\n const operators = [];\n const ps = []; // not maintaining cs since that will match ps\n let verticesLeft = 0; // assuming we have all data to start a new triangle\n while (reader.hasData) {\n const f = reader.readFlag();\n const coord = reader.readCoordinate();\n const color = reader.readComponents();\n if (verticesLeft === 0) {\n // ignoring flags if we started a triangle\n if (!(0 <= f && f <= 2)) {\n throw new FormatError(\"Unknown type4 flag\");\n }\n switch (f) {\n case 0:\n verticesLeft = 3;\n break;\n case 1:\n ps.push(ps[ps.length - 2], ps[ps.length - 1]);\n verticesLeft = 1;\n break;\n case 2:\n ps.push(ps[ps.length - 3], ps[ps.length - 1]);\n verticesLeft = 1;\n break;\n }\n operators.push(f);\n }\n ps.push(coords.length);\n coords.push(coord);\n colors.push(color);\n verticesLeft--;\n\n reader.align();\n }\n this.figures.push({\n type: \"triangles\",\n coords: new Int32Array(ps),\n colors: new Int32Array(ps),\n });\n }\n\n _decodeType5Shading(reader, verticesPerRow) {\n const coords = this.coords;\n const colors = this.colors;\n const ps = []; // not maintaining cs since that will match ps\n while (reader.hasData) {\n const coord = reader.readCoordinate();\n const color = reader.readComponents();\n ps.push(coords.length);\n coords.push(coord);\n colors.push(color);\n }\n this.figures.push({\n type: \"lattice\",\n coords: new Int32Array(ps),\n colors: new Int32Array(ps),\n verticesPerRow,\n });\n }\n\n _decodeType6Shading(reader) {\n // A special case of Type 7. The p11, p12, p21, p22 automatically filled\n const coords = this.coords;\n const colors = this.colors;\n const ps = new Int32Array(16); // p00, p10, ..., p30, p01, ..., p33\n const cs = new Int32Array(4); // c00, c30, c03, c33\n while (reader.hasData) {\n const f = reader.readFlag();\n if (!(0 <= f && f <= 3)) {\n throw new FormatError(\"Unknown type6 flag\");\n }\n const pi = coords.length;\n for (let i = 0, ii = f !== 0 ? 8 : 12; i < ii; i++) {\n coords.push(reader.readCoordinate());\n }\n const ci = colors.length;\n for (let i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n colors.push(reader.readComponents());\n }\n let tmp1, tmp2, tmp3, tmp4;\n switch (f) {\n // prettier-ignore\n case 0:\n ps[12] = pi + 3; ps[13] = pi + 4; ps[14] = pi + 5; ps[15] = pi + 6;\n ps[ 8] = pi + 2; /* values for 5, 6, 9, 10 are */ ps[11] = pi + 7;\n ps[ 4] = pi + 1; /* calculated below */ ps[ 7] = pi + 8;\n ps[ 0] = pi; ps[ 1] = pi + 11; ps[ 2] = pi + 10; ps[ 3] = pi + 9;\n cs[2] = ci + 1; cs[3] = ci + 2;\n cs[0] = ci; cs[1] = ci + 3;\n break;\n // prettier-ignore\n case 1:\n tmp1 = ps[12]; tmp2 = ps[13]; tmp3 = ps[14]; tmp4 = ps[15];\n ps[12] = tmp4; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = tmp3; /* values for 5, 6, 9, 10 are */ ps[11] = pi + 3;\n ps[ 4] = tmp2; /* calculated below */ ps[ 7] = pi + 4;\n ps[ 0] = tmp1; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n tmp1 = cs[2]; tmp2 = cs[3];\n cs[2] = tmp2; cs[3] = ci;\n cs[0] = tmp1; cs[1] = ci + 1;\n break;\n // prettier-ignore\n case 2:\n tmp1 = ps[15];\n tmp2 = ps[11];\n ps[12] = ps[3]; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = ps[7]; /* values for 5, 6, 9, 10 are */ ps[11] = pi + 3;\n ps[ 4] = tmp2; /* calculated below */ ps[ 7] = pi + 4;\n ps[ 0] = tmp1; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n tmp1 = cs[3];\n cs[2] = cs[1]; cs[3] = ci;\n cs[0] = tmp1; cs[1] = ci + 1;\n break;\n // prettier-ignore\n case 3:\n ps[12] = ps[0]; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = ps[1]; /* values for 5, 6, 9, 10 are */ ps[11] = pi + 3;\n ps[ 4] = ps[2]; /* calculated below */ ps[ 7] = pi + 4;\n ps[ 0] = ps[3]; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n cs[2] = cs[0]; cs[3] = ci;\n cs[0] = cs[1]; cs[1] = ci + 1;\n break;\n }\n // set p11, p12, p21, p22\n ps[5] = coords.length;\n coords.push([\n (-4 * coords[ps[0]][0] -\n coords[ps[15]][0] +\n 6 * (coords[ps[4]][0] + coords[ps[1]][0]) -\n 2 * (coords[ps[12]][0] + coords[ps[3]][0]) +\n 3 * (coords[ps[13]][0] + coords[ps[7]][0])) /\n 9,\n (-4 * coords[ps[0]][1] -\n coords[ps[15]][1] +\n 6 * (coords[ps[4]][1] + coords[ps[1]][1]) -\n 2 * (coords[ps[12]][1] + coords[ps[3]][1]) +\n 3 * (coords[ps[13]][1] + coords[ps[7]][1])) /\n 9,\n ]);\n ps[6] = coords.length;\n coords.push([\n (-4 * coords[ps[3]][0] -\n coords[ps[12]][0] +\n 6 * (coords[ps[2]][0] + coords[ps[7]][0]) -\n 2 * (coords[ps[0]][0] + coords[ps[15]][0]) +\n 3 * (coords[ps[4]][0] + coords[ps[14]][0])) /\n 9,\n (-4 * coords[ps[3]][1] -\n coords[ps[12]][1] +\n 6 * (coords[ps[2]][1] + coords[ps[7]][1]) -\n 2 * (coords[ps[0]][1] + coords[ps[15]][1]) +\n 3 * (coords[ps[4]][1] + coords[ps[14]][1])) /\n 9,\n ]);\n ps[9] = coords.length;\n coords.push([\n (-4 * coords[ps[12]][0] -\n coords[ps[3]][0] +\n 6 * (coords[ps[8]][0] + coords[ps[13]][0]) -\n 2 * (coords[ps[0]][0] + coords[ps[15]][0]) +\n 3 * (coords[ps[11]][0] + coords[ps[1]][0])) /\n 9,\n (-4 * coords[ps[12]][1] -\n coords[ps[3]][1] +\n 6 * (coords[ps[8]][1] + coords[ps[13]][1]) -\n 2 * (coords[ps[0]][1] + coords[ps[15]][1]) +\n 3 * (coords[ps[11]][1] + coords[ps[1]][1])) /\n 9,\n ]);\n ps[10] = coords.length;\n coords.push([\n (-4 * coords[ps[15]][0] -\n coords[ps[0]][0] +\n 6 * (coords[ps[11]][0] + coords[ps[14]][0]) -\n 2 * (coords[ps[12]][0] + coords[ps[3]][0]) +\n 3 * (coords[ps[2]][0] + coords[ps[8]][0])) /\n 9,\n (-4 * coords[ps[15]][1] -\n coords[ps[0]][1] +\n 6 * (coords[ps[11]][1] + coords[ps[14]][1]) -\n 2 * (coords[ps[12]][1] + coords[ps[3]][1]) +\n 3 * (coords[ps[2]][1] + coords[ps[8]][1])) /\n 9,\n ]);\n this.figures.push({\n type: \"patch\",\n coords: new Int32Array(ps), // making copies of ps and cs\n colors: new Int32Array(cs),\n });\n }\n }\n\n _decodeType7Shading(reader) {\n const coords = this.coords;\n const colors = this.colors;\n const ps = new Int32Array(16); // p00, p10, ..., p30, p01, ..., p33\n const cs = new Int32Array(4); // c00, c30, c03, c33\n while (reader.hasData) {\n const f = reader.readFlag();\n if (!(0 <= f && f <= 3)) {\n throw new FormatError(\"Unknown type7 flag\");\n }\n const pi = coords.length;\n for (let i = 0, ii = f !== 0 ? 12 : 16; i < ii; i++) {\n coords.push(reader.readCoordinate());\n }\n const ci = colors.length;\n for (let i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n colors.push(reader.readComponents());\n }\n let tmp1, tmp2, tmp3, tmp4;\n switch (f) {\n // prettier-ignore\n case 0:\n ps[12] = pi + 3; ps[13] = pi + 4; ps[14] = pi + 5; ps[15] = pi + 6;\n ps[ 8] = pi + 2; ps[ 9] = pi + 13; ps[10] = pi + 14; ps[11] = pi + 7;\n ps[ 4] = pi + 1; ps[ 5] = pi + 12; ps[ 6] = pi + 15; ps[ 7] = pi + 8;\n ps[ 0] = pi; ps[ 1] = pi + 11; ps[ 2] = pi + 10; ps[ 3] = pi + 9;\n cs[2] = ci + 1; cs[3] = ci + 2;\n cs[0] = ci; cs[1] = ci + 3;\n break;\n // prettier-ignore\n case 1:\n tmp1 = ps[12]; tmp2 = ps[13]; tmp3 = ps[14]; tmp4 = ps[15];\n ps[12] = tmp4; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = tmp3; ps[ 9] = pi + 9; ps[10] = pi + 10; ps[11] = pi + 3;\n ps[ 4] = tmp2; ps[ 5] = pi + 8; ps[ 6] = pi + 11; ps[ 7] = pi + 4;\n ps[ 0] = tmp1; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n tmp1 = cs[2]; tmp2 = cs[3];\n cs[2] = tmp2; cs[3] = ci;\n cs[0] = tmp1; cs[1] = ci + 1;\n break;\n // prettier-ignore\n case 2:\n tmp1 = ps[15];\n tmp2 = ps[11];\n ps[12] = ps[3]; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = ps[7]; ps[ 9] = pi + 9; ps[10] = pi + 10; ps[11] = pi + 3;\n ps[ 4] = tmp2; ps[ 5] = pi + 8; ps[ 6] = pi + 11; ps[ 7] = pi + 4;\n ps[ 0] = tmp1; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n tmp1 = cs[3];\n cs[2] = cs[1]; cs[3] = ci;\n cs[0] = tmp1; cs[1] = ci + 1;\n break;\n // prettier-ignore\n case 3:\n ps[12] = ps[0]; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = ps[1]; ps[ 9] = pi + 9; ps[10] = pi + 10; ps[11] = pi + 3;\n ps[ 4] = ps[2]; ps[ 5] = pi + 8; ps[ 6] = pi + 11; ps[ 7] = pi + 4;\n ps[ 0] = ps[3]; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n cs[2] = cs[0]; cs[3] = ci;\n cs[0] = cs[1]; cs[1] = ci + 1;\n break;\n }\n this.figures.push({\n type: \"patch\",\n coords: new Int32Array(ps), // making copies of ps and cs\n colors: new Int32Array(cs),\n });\n }\n }\n\n _buildFigureFromPatch(index) {\n const figure = this.figures[index];\n assert(figure.type === \"patch\", \"Unexpected patch mesh figure\");\n\n const coords = this.coords,\n colors = this.colors;\n const pi = figure.coords;\n const ci = figure.colors;\n\n const figureMinX = Math.min(\n coords[pi[0]][0],\n coords[pi[3]][0],\n coords[pi[12]][0],\n coords[pi[15]][0]\n );\n const figureMinY = Math.min(\n coords[pi[0]][1],\n coords[pi[3]][1],\n coords[pi[12]][1],\n coords[pi[15]][1]\n );\n const figureMaxX = Math.max(\n coords[pi[0]][0],\n coords[pi[3]][0],\n coords[pi[12]][0],\n coords[pi[15]][0]\n );\n const figureMaxY = Math.max(\n coords[pi[0]][1],\n coords[pi[3]][1],\n coords[pi[12]][1],\n coords[pi[15]][1]\n );\n let splitXBy = Math.ceil(\n ((figureMaxX - figureMinX) * MeshShading.TRIANGLE_DENSITY) /\n (this.bounds[2] - this.bounds[0])\n );\n splitXBy = Math.max(\n MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT,\n Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitXBy)\n );\n let splitYBy = Math.ceil(\n ((figureMaxY - figureMinY) * MeshShading.TRIANGLE_DENSITY) /\n (this.bounds[3] - this.bounds[1])\n );\n splitYBy = Math.max(\n MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT,\n Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitYBy)\n );\n\n const verticesPerRow = splitXBy + 1;\n const figureCoords = new Int32Array((splitYBy + 1) * verticesPerRow);\n const figureColors = new Int32Array((splitYBy + 1) * verticesPerRow);\n let k = 0;\n const cl = new Uint8Array(3),\n cr = new Uint8Array(3);\n const c0 = colors[ci[0]],\n c1 = colors[ci[1]],\n c2 = colors[ci[2]],\n c3 = colors[ci[3]];\n const bRow = getB(splitYBy),\n bCol = getB(splitXBy);\n for (let row = 0; row <= splitYBy; row++) {\n cl[0] = ((c0[0] * (splitYBy - row) + c2[0] * row) / splitYBy) | 0;\n cl[1] = ((c0[1] * (splitYBy - row) + c2[1] * row) / splitYBy) | 0;\n cl[2] = ((c0[2] * (splitYBy - row) + c2[2] * row) / splitYBy) | 0;\n\n cr[0] = ((c1[0] * (splitYBy - row) + c3[0] * row) / splitYBy) | 0;\n cr[1] = ((c1[1] * (splitYBy - row) + c3[1] * row) / splitYBy) | 0;\n cr[2] = ((c1[2] * (splitYBy - row) + c3[2] * row) / splitYBy) | 0;\n\n for (let col = 0; col <= splitXBy; col++, k++) {\n if (\n (row === 0 || row === splitYBy) &&\n (col === 0 || col === splitXBy)\n ) {\n continue;\n }\n let x = 0,\n y = 0;\n let q = 0;\n for (let i = 0; i <= 3; i++) {\n for (let j = 0; j <= 3; j++, q++) {\n const m = bRow[row][i] * bCol[col][j];\n x += coords[pi[q]][0] * m;\n y += coords[pi[q]][1] * m;\n }\n }\n figureCoords[k] = coords.length;\n coords.push([x, y]);\n figureColors[k] = colors.length;\n const newColor = new Uint8Array(3);\n newColor[0] = ((cl[0] * (splitXBy - col) + cr[0] * col) / splitXBy) | 0;\n newColor[1] = ((cl[1] * (splitXBy - col) + cr[1] * col) / splitXBy) | 0;\n newColor[2] = ((cl[2] * (splitXBy - col) + cr[2] * col) / splitXBy) | 0;\n colors.push(newColor);\n }\n }\n figureCoords[0] = pi[0];\n figureColors[0] = ci[0];\n figureCoords[splitXBy] = pi[3];\n figureColors[splitXBy] = ci[1];\n figureCoords[verticesPerRow * splitYBy] = pi[12];\n figureColors[verticesPerRow * splitYBy] = ci[2];\n figureCoords[verticesPerRow * splitYBy + splitXBy] = pi[15];\n figureColors[verticesPerRow * splitYBy + splitXBy] = ci[3];\n\n this.figures[index] = {\n type: \"lattice\",\n coords: figureCoords,\n colors: figureColors,\n verticesPerRow,\n };\n }\n\n _updateBounds() {\n let minX = this.coords[0][0],\n minY = this.coords[0][1],\n maxX = minX,\n maxY = minY;\n for (let i = 1, ii = this.coords.length; i < ii; i++) {\n const x = this.coords[i][0],\n y = this.coords[i][1];\n minX = minX > x ? x : minX;\n minY = minY > y ? y : minY;\n maxX = maxX < x ? x : maxX;\n maxY = maxY < y ? y : maxY;\n }\n this.bounds = [minX, minY, maxX, maxY];\n }\n\n _packData() {\n let i, ii, j, jj;\n\n const coords = this.coords;\n const coordsPacked = new Float32Array(coords.length * 2);\n for (i = 0, j = 0, ii = coords.length; i < ii; i++) {\n const xy = coords[i];\n coordsPacked[j++] = xy[0];\n coordsPacked[j++] = xy[1];\n }\n this.coords = coordsPacked;\n\n const colors = this.colors;\n const colorsPacked = new Uint8Array(colors.length * 3);\n for (i = 0, j = 0, ii = colors.length; i < ii; i++) {\n const c = colors[i];\n colorsPacked[j++] = c[0];\n colorsPacked[j++] = c[1];\n colorsPacked[j++] = c[2];\n }\n this.colors = colorsPacked;\n\n const figures = this.figures;\n for (i = 0, ii = figures.length; i < ii; i++) {\n const figure = figures[i],\n ps = figure.coords,\n cs = figure.colors;\n for (j = 0, jj = ps.length; j < jj; j++) {\n ps[j] *= 2;\n cs[j] *= 3;\n }\n }\n }\n\n getIR() {\n return [\n \"Mesh\",\n this.shadingType,\n this.coords,\n this.colors,\n this.figures,\n this.bounds,\n this.bbox,\n this.background,\n ];\n }\n}\n\nclass DummyShading extends BaseShading {\n getIR() {\n return [\"Dummy\"];\n }\n}\n\nfunction getTilingPatternIR(operatorList, dict, color) {\n const matrix = dict.getArray(\"Matrix\");\n const bbox = Util.normalizeRect(dict.getArray(\"BBox\"));\n const xstep = dict.get(\"XStep\");\n const ystep = dict.get(\"YStep\");\n const paintType = dict.get(\"PaintType\");\n const tilingType = dict.get(\"TilingType\");\n\n // Ensure that the pattern has a non-zero width and height, to prevent errors\n // in `pattern_helper.js` (fixes issue8330.pdf).\n if (bbox[2] - bbox[0] === 0 || bbox[3] - bbox[1] === 0) {\n throw new FormatError(`Invalid getTilingPatternIR /BBox array: [${bbox}].`);\n }\n\n return [\n \"TilingPattern\",\n color,\n operatorList,\n matrix,\n bbox,\n xstep,\n ystep,\n paintType,\n tilingType,\n ];\n}\n\nexport { getTilingPatternIR, Pattern };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Dict, Ref } from \"./primitives.js\";\nimport {\n FeatureTest,\n FormatError,\n info,\n shadow,\n unreachable,\n} from \"../shared/util.js\";\nimport { PostScriptLexer, PostScriptParser } from \"./ps_parser.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { LocalFunctionCache } from \"./image_utils.js\";\n\nclass PDFFunctionFactory {\n constructor({ xref, isEvalSupported = true }) {\n this.xref = xref;\n this.isEvalSupported = isEvalSupported !== false;\n }\n\n create(fn) {\n const cachedFunction = this.getCached(fn);\n if (cachedFunction) {\n return cachedFunction;\n }\n const parsedFunction = PDFFunction.parse({\n xref: this.xref,\n isEvalSupported: this.isEvalSupported,\n fn: fn instanceof Ref ? this.xref.fetch(fn) : fn,\n });\n\n // Attempt to cache the parsed Function, by reference.\n this._cache(fn, parsedFunction);\n\n return parsedFunction;\n }\n\n createFromArray(fnObj) {\n const cachedFunction = this.getCached(fnObj);\n if (cachedFunction) {\n return cachedFunction;\n }\n const parsedFunction = PDFFunction.parseArray({\n xref: this.xref,\n isEvalSupported: this.isEvalSupported,\n fnObj: fnObj instanceof Ref ? this.xref.fetch(fnObj) : fnObj,\n });\n\n // Attempt to cache the parsed Function, by reference.\n this._cache(fnObj, parsedFunction);\n\n return parsedFunction;\n }\n\n getCached(cacheKey) {\n let fnRef;\n if (cacheKey instanceof Ref) {\n fnRef = cacheKey;\n } else if (cacheKey instanceof Dict) {\n fnRef = cacheKey.objId;\n } else if (cacheKey instanceof BaseStream) {\n fnRef = cacheKey.dict && cacheKey.dict.objId;\n }\n if (fnRef) {\n const localFunction = this._localFunctionCache.getByRef(fnRef);\n if (localFunction) {\n return localFunction;\n }\n }\n return null;\n }\n\n /**\n * @private\n */\n _cache(cacheKey, parsedFunction) {\n if (!parsedFunction) {\n throw new Error(\n 'PDFFunctionFactory._cache - expected \"parsedFunction\" argument.'\n );\n }\n let fnRef;\n if (cacheKey instanceof Ref) {\n fnRef = cacheKey;\n } else if (cacheKey instanceof Dict) {\n fnRef = cacheKey.objId;\n } else if (cacheKey instanceof BaseStream) {\n fnRef = cacheKey.dict && cacheKey.dict.objId;\n }\n if (fnRef) {\n this._localFunctionCache.set(/* name = */ null, fnRef, parsedFunction);\n }\n }\n\n /**\n * @private\n */\n get _localFunctionCache() {\n return shadow(this, \"_localFunctionCache\", new LocalFunctionCache());\n }\n}\n\nfunction toNumberArray(arr) {\n if (!Array.isArray(arr)) {\n return null;\n }\n const length = arr.length;\n for (let i = 0; i < length; i++) {\n if (typeof arr[i] !== \"number\") {\n // Non-number is found -- convert all items to numbers.\n const result = new Array(length);\n for (let j = 0; j < length; j++) {\n result[j] = +arr[j];\n }\n return result;\n }\n }\n return arr;\n}\n\nclass PDFFunction {\n static getSampleArray(size, outputSize, bps, stream) {\n let i, ii;\n let length = 1;\n for (i = 0, ii = size.length; i < ii; i++) {\n length *= size[i];\n }\n length *= outputSize;\n\n const array = new Array(length);\n let codeSize = 0;\n let codeBuf = 0;\n // 32 is a valid bps so shifting won't work\n const sampleMul = 1.0 / (2.0 ** bps - 1);\n\n const strBytes = stream.getBytes((length * bps + 7) / 8);\n let strIdx = 0;\n for (i = 0; i < length; i++) {\n while (codeSize < bps) {\n codeBuf <<= 8;\n codeBuf |= strBytes[strIdx++];\n codeSize += 8;\n }\n codeSize -= bps;\n array[i] = (codeBuf >> codeSize) * sampleMul;\n codeBuf &= (1 << codeSize) - 1;\n }\n return array;\n }\n\n static parse({ xref, isEvalSupported, fn }) {\n const dict = fn.dict || fn;\n const typeNum = dict.get(\"FunctionType\");\n\n switch (typeNum) {\n case 0:\n return this.constructSampled({ xref, isEvalSupported, fn, dict });\n case 1:\n break;\n case 2:\n return this.constructInterpolated({ xref, isEvalSupported, dict });\n case 3:\n return this.constructStiched({ xref, isEvalSupported, dict });\n case 4:\n return this.constructPostScript({ xref, isEvalSupported, fn, dict });\n }\n throw new FormatError(\"Unknown type of function\");\n }\n\n static parseArray({ xref, isEvalSupported, fnObj }) {\n if (!Array.isArray(fnObj)) {\n // not an array -- parsing as regular function\n return this.parse({ xref, isEvalSupported, fn: fnObj });\n }\n\n const fnArray = [];\n for (let j = 0, jj = fnObj.length; j < jj; j++) {\n fnArray.push(\n this.parse({ xref, isEvalSupported, fn: xref.fetchIfRef(fnObj[j]) })\n );\n }\n return function (src, srcOffset, dest, destOffset) {\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n fnArray[i](src, srcOffset, dest, destOffset + i);\n }\n };\n }\n\n static constructSampled({ xref, isEvalSupported, fn, dict }) {\n function toMultiArray(arr) {\n const inputLength = arr.length;\n const out = [];\n let index = 0;\n for (let i = 0; i < inputLength; i += 2) {\n out[index++] = [arr[i], arr[i + 1]];\n }\n return out;\n }\n // See chapter 3, page 109 of the PDF reference\n function interpolate(x, xmin, xmax, ymin, ymax) {\n return ymin + (x - xmin) * ((ymax - ymin) / (xmax - xmin));\n }\n\n let domain = toNumberArray(dict.getArray(\"Domain\"));\n let range = toNumberArray(dict.getArray(\"Range\"));\n\n if (!domain || !range) {\n throw new FormatError(\"No domain or range\");\n }\n\n const inputSize = domain.length / 2;\n const outputSize = range.length / 2;\n\n domain = toMultiArray(domain);\n range = toMultiArray(range);\n\n const size = toNumberArray(dict.getArray(\"Size\"));\n const bps = dict.get(\"BitsPerSample\");\n const order = dict.get(\"Order\") || 1;\n if (order !== 1) {\n // No description how cubic spline interpolation works in PDF32000:2008\n // As in poppler, ignoring order, linear interpolation may work as good\n info(\"No support for cubic spline interpolation: \" + order);\n }\n\n let encode = toNumberArray(dict.getArray(\"Encode\"));\n if (!encode) {\n encode = [];\n for (let i = 0; i < inputSize; ++i) {\n encode.push([0, size[i] - 1]);\n }\n } else {\n encode = toMultiArray(encode);\n }\n\n let decode = toNumberArray(dict.getArray(\"Decode\"));\n if (!decode) {\n decode = range;\n } else {\n decode = toMultiArray(decode);\n }\n\n const samples = this.getSampleArray(size, outputSize, bps, fn);\n // const mask = 2 ** bps - 1;\n\n return function constructSampledFn(src, srcOffset, dest, destOffset) {\n // See chapter 3, page 110 of the PDF reference.\n\n // Building the cube vertices: its part and sample index\n // http://rjwagner49.com/Mathematics/Interpolation.pdf\n const cubeVertices = 1 << inputSize;\n const cubeN = new Float64Array(cubeVertices);\n const cubeVertex = new Uint32Array(cubeVertices);\n let i, j;\n for (j = 0; j < cubeVertices; j++) {\n cubeN[j] = 1;\n }\n\n let k = outputSize,\n pos = 1;\n // Map x_i to y_j for 0 <= i < m using the sampled function.\n for (i = 0; i < inputSize; ++i) {\n // x_i' = min(max(x_i, Domain_2i), Domain_2i+1)\n const domain_2i = domain[i][0];\n const domain_2i_1 = domain[i][1];\n const xi = Math.min(\n Math.max(src[srcOffset + i], domain_2i),\n domain_2i_1\n );\n\n // e_i = Interpolate(x_i', Domain_2i, Domain_2i+1,\n // Encode_2i, Encode_2i+1)\n let e = interpolate(\n xi,\n domain_2i,\n domain_2i_1,\n encode[i][0],\n encode[i][1]\n );\n\n // e_i' = min(max(e_i, 0), Size_i - 1)\n const size_i = size[i];\n e = Math.min(Math.max(e, 0), size_i - 1);\n\n // Adjusting the cube: N and vertex sample index\n const e0 = e < size_i - 1 ? Math.floor(e) : e - 1; // e1 = e0 + 1;\n const n0 = e0 + 1 - e; // (e1 - e) / (e1 - e0);\n const n1 = e - e0; // (e - e0) / (e1 - e0);\n const offset0 = e0 * k;\n const offset1 = offset0 + k; // e1 * k\n for (j = 0; j < cubeVertices; j++) {\n if (j & pos) {\n cubeN[j] *= n1;\n cubeVertex[j] += offset1;\n } else {\n cubeN[j] *= n0;\n cubeVertex[j] += offset0;\n }\n }\n\n k *= size_i;\n pos <<= 1;\n }\n\n for (j = 0; j < outputSize; ++j) {\n // Sum all cube vertices' samples portions\n let rj = 0;\n for (i = 0; i < cubeVertices; i++) {\n rj += samples[cubeVertex[i] + j] * cubeN[i];\n }\n\n // r_j' = Interpolate(r_j, 0, 2^BitsPerSample - 1,\n // Decode_2j, Decode_2j+1)\n rj = interpolate(rj, 0, 1, decode[j][0], decode[j][1]);\n\n // y_j = min(max(r_j, range_2j), range_2j+1)\n dest[destOffset + j] = Math.min(Math.max(rj, range[j][0]), range[j][1]);\n }\n };\n }\n\n static constructInterpolated({ xref, isEvalSupported, dict }) {\n const c0 = toNumberArray(dict.getArray(\"C0\")) || [0];\n const c1 = toNumberArray(dict.getArray(\"C1\")) || [1];\n const n = dict.get(\"N\");\n\n const diff = [];\n for (let i = 0, ii = c0.length; i < ii; ++i) {\n diff.push(c1[i] - c0[i]);\n }\n const length = diff.length;\n\n return function constructInterpolatedFn(src, srcOffset, dest, destOffset) {\n const x = n === 1 ? src[srcOffset] : src[srcOffset] ** n;\n\n for (let j = 0; j < length; ++j) {\n dest[destOffset + j] = c0[j] + x * diff[j];\n }\n };\n }\n\n static constructStiched({ xref, isEvalSupported, dict }) {\n const domain = toNumberArray(dict.getArray(\"Domain\"));\n\n if (!domain) {\n throw new FormatError(\"No domain\");\n }\n\n const inputSize = domain.length / 2;\n if (inputSize !== 1) {\n throw new FormatError(\"Bad domain for stiched function\");\n }\n\n const fnRefs = dict.get(\"Functions\");\n const fns = [];\n for (let i = 0, ii = fnRefs.length; i < ii; ++i) {\n fns.push(\n this.parse({ xref, isEvalSupported, fn: xref.fetchIfRef(fnRefs[i]) })\n );\n }\n\n const bounds = toNumberArray(dict.getArray(\"Bounds\"));\n const encode = toNumberArray(dict.getArray(\"Encode\"));\n const tmpBuf = new Float32Array(1);\n\n return function constructStichedFn(src, srcOffset, dest, destOffset) {\n const clip = function constructStichedFromIRClip(v, min, max) {\n if (v > max) {\n v = max;\n } else if (v < min) {\n v = min;\n }\n return v;\n };\n\n // clip to domain\n const v = clip(src[srcOffset], domain[0], domain[1]);\n // calculate which bound the value is in\n const length = bounds.length;\n let i;\n for (i = 0; i < length; ++i) {\n if (v < bounds[i]) {\n break;\n }\n }\n\n // encode value into domain of function\n let dmin = domain[0];\n if (i > 0) {\n dmin = bounds[i - 1];\n }\n let dmax = domain[1];\n if (i < bounds.length) {\n dmax = bounds[i];\n }\n\n const rmin = encode[2 * i];\n const rmax = encode[2 * i + 1];\n\n // Prevent the value from becoming NaN as a result\n // of division by zero (fixes issue6113.pdf).\n tmpBuf[0] =\n dmin === dmax\n ? rmin\n : rmin + ((v - dmin) * (rmax - rmin)) / (dmax - dmin);\n\n // call the appropriate function\n fns[i](tmpBuf, 0, dest, destOffset);\n };\n }\n\n static constructPostScript({ xref, isEvalSupported, fn, dict }) {\n const domain = toNumberArray(dict.getArray(\"Domain\"));\n const range = toNumberArray(dict.getArray(\"Range\"));\n\n if (!domain) {\n throw new FormatError(\"No domain.\");\n }\n\n if (!range) {\n throw new FormatError(\"No range.\");\n }\n\n const lexer = new PostScriptLexer(fn);\n const parser = new PostScriptParser(lexer);\n const code = parser.parse();\n\n if (isEvalSupported && FeatureTest.isEvalSupported) {\n const compiled = new PostScriptCompiler().compile(code, domain, range);\n if (compiled) {\n // Compiled function consists of simple expressions such as addition,\n // subtraction, Math.max, and also contains 'var' and 'return'\n // statements. See the generation in the PostScriptCompiler below.\n // eslint-disable-next-line no-new-func\n return new Function(\"src\", \"srcOffset\", \"dest\", \"destOffset\", compiled);\n }\n }\n info(\"Unable to compile PS function\");\n\n const numOutputs = range.length >> 1;\n const numInputs = domain.length >> 1;\n const evaluator = new PostScriptEvaluator(code);\n // Cache the values for a big speed up, the cache size is limited though\n // since the number of possible values can be huge from a PS function.\n const cache = Object.create(null);\n // The MAX_CACHE_SIZE is set to ~4x the maximum number of distinct values\n // seen in our tests.\n const MAX_CACHE_SIZE = 2048 * 4;\n let cache_available = MAX_CACHE_SIZE;\n const tmpBuf = new Float32Array(numInputs);\n\n return function constructPostScriptFn(src, srcOffset, dest, destOffset) {\n let i, value;\n let key = \"\";\n const input = tmpBuf;\n for (i = 0; i < numInputs; i++) {\n value = src[srcOffset + i];\n input[i] = value;\n key += value + \"_\";\n }\n\n const cachedValue = cache[key];\n if (cachedValue !== undefined) {\n dest.set(cachedValue, destOffset);\n return;\n }\n\n const output = new Float32Array(numOutputs);\n const stack = evaluator.execute(input);\n const stackIndex = stack.length - numOutputs;\n for (i = 0; i < numOutputs; i++) {\n value = stack[stackIndex + i];\n let bound = range[i * 2];\n if (value < bound) {\n value = bound;\n } else {\n bound = range[i * 2 + 1];\n if (value > bound) {\n value = bound;\n }\n }\n output[i] = value;\n }\n if (cache_available > 0) {\n cache_available--;\n cache[key] = output;\n }\n dest.set(output, destOffset);\n };\n }\n}\n\nfunction isPDFFunction(v) {\n let fnDict;\n if (typeof v !== \"object\") {\n return false;\n } else if (v instanceof Dict) {\n fnDict = v;\n } else if (v instanceof BaseStream) {\n fnDict = v.dict;\n } else {\n return false;\n }\n return fnDict.has(\"FunctionType\");\n}\n\nclass PostScriptStack {\n static get MAX_STACK_SIZE() {\n return shadow(this, \"MAX_STACK_SIZE\", 100);\n }\n\n constructor(initialStack) {\n this.stack = !initialStack\n ? []\n : Array.prototype.slice.call(initialStack, 0);\n }\n\n push(value) {\n if (this.stack.length >= PostScriptStack.MAX_STACK_SIZE) {\n throw new Error(\"PostScript function stack overflow.\");\n }\n this.stack.push(value);\n }\n\n pop() {\n if (this.stack.length <= 0) {\n throw new Error(\"PostScript function stack underflow.\");\n }\n return this.stack.pop();\n }\n\n copy(n) {\n if (this.stack.length + n >= PostScriptStack.MAX_STACK_SIZE) {\n throw new Error(\"PostScript function stack overflow.\");\n }\n const stack = this.stack;\n for (let i = stack.length - n, j = n - 1; j >= 0; j--, i++) {\n stack.push(stack[i]);\n }\n }\n\n index(n) {\n this.push(this.stack[this.stack.length - n - 1]);\n }\n\n // rotate the last n stack elements p times\n roll(n, p) {\n const stack = this.stack;\n const l = stack.length - n;\n const r = stack.length - 1;\n const c = l + (p - Math.floor(p / n) * n);\n\n for (let i = l, j = r; i < j; i++, j--) {\n const t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n for (let i = l, j = c - 1; i < j; i++, j--) {\n const t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n for (let i = c, j = r; i < j; i++, j--) {\n const t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n }\n}\n\nclass PostScriptEvaluator {\n constructor(operators) {\n this.operators = operators;\n }\n\n execute(initialStack) {\n const stack = new PostScriptStack(initialStack);\n let counter = 0;\n const operators = this.operators;\n const length = operators.length;\n let operator, a, b;\n while (counter < length) {\n operator = operators[counter++];\n if (typeof operator === \"number\") {\n // Operator is really an operand and should be pushed to the stack.\n stack.push(operator);\n continue;\n }\n switch (operator) {\n // non standard ps operators\n case \"jz\": // jump if false\n b = stack.pop();\n a = stack.pop();\n if (!a) {\n counter = b;\n }\n break;\n case \"j\": // jump\n a = stack.pop();\n counter = a;\n break;\n\n // all ps operators in alphabetical order (excluding if/ifelse)\n case \"abs\":\n a = stack.pop();\n stack.push(Math.abs(a));\n break;\n case \"add\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a + b);\n break;\n case \"and\":\n b = stack.pop();\n a = stack.pop();\n if (typeof a === \"boolean\" && typeof b === \"boolean\") {\n stack.push(a && b);\n } else {\n stack.push(a & b);\n }\n break;\n case \"atan\":\n a = stack.pop();\n stack.push(Math.atan(a));\n break;\n case \"bitshift\":\n b = stack.pop();\n a = stack.pop();\n if (a > 0) {\n stack.push(a << b);\n } else {\n stack.push(a >> b);\n }\n break;\n case \"ceiling\":\n a = stack.pop();\n stack.push(Math.ceil(a));\n break;\n case \"copy\":\n a = stack.pop();\n stack.copy(a);\n break;\n case \"cos\":\n a = stack.pop();\n stack.push(Math.cos(a));\n break;\n case \"cvi\":\n a = stack.pop() | 0;\n stack.push(a);\n break;\n case \"cvr\":\n // noop\n break;\n case \"div\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a / b);\n break;\n case \"dup\":\n stack.copy(1);\n break;\n case \"eq\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a === b);\n break;\n case \"exch\":\n stack.roll(2, 1);\n break;\n case \"exp\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a ** b);\n break;\n case \"false\":\n stack.push(false);\n break;\n case \"floor\":\n a = stack.pop();\n stack.push(Math.floor(a));\n break;\n case \"ge\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a >= b);\n break;\n case \"gt\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a > b);\n break;\n case \"idiv\":\n b = stack.pop();\n a = stack.pop();\n stack.push((a / b) | 0);\n break;\n case \"index\":\n a = stack.pop();\n stack.index(a);\n break;\n case \"le\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a <= b);\n break;\n case \"ln\":\n a = stack.pop();\n stack.push(Math.log(a));\n break;\n case \"log\":\n a = stack.pop();\n stack.push(Math.log(a) / Math.LN10);\n break;\n case \"lt\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a < b);\n break;\n case \"mod\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a % b);\n break;\n case \"mul\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a * b);\n break;\n case \"ne\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a !== b);\n break;\n case \"neg\":\n a = stack.pop();\n stack.push(-a);\n break;\n case \"not\":\n a = stack.pop();\n if (typeof a === \"boolean\") {\n stack.push(!a);\n } else {\n stack.push(~a);\n }\n break;\n case \"or\":\n b = stack.pop();\n a = stack.pop();\n if (typeof a === \"boolean\" && typeof b === \"boolean\") {\n stack.push(a || b);\n } else {\n stack.push(a | b);\n }\n break;\n case \"pop\":\n stack.pop();\n break;\n case \"roll\":\n b = stack.pop();\n a = stack.pop();\n stack.roll(a, b);\n break;\n case \"round\":\n a = stack.pop();\n stack.push(Math.round(a));\n break;\n case \"sin\":\n a = stack.pop();\n stack.push(Math.sin(a));\n break;\n case \"sqrt\":\n a = stack.pop();\n stack.push(Math.sqrt(a));\n break;\n case \"sub\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a - b);\n break;\n case \"true\":\n stack.push(true);\n break;\n case \"truncate\":\n a = stack.pop();\n a = a < 0 ? Math.ceil(a) : Math.floor(a);\n stack.push(a);\n break;\n case \"xor\":\n b = stack.pop();\n a = stack.pop();\n if (typeof a === \"boolean\" && typeof b === \"boolean\") {\n stack.push(a !== b);\n } else {\n stack.push(a ^ b);\n }\n break;\n default:\n throw new FormatError(`Unknown operator ${operator}`);\n }\n }\n return stack.stack;\n }\n}\n\n// Most of the PDFs functions consist of simple operations such as:\n// roll, exch, sub, cvr, pop, index, dup, mul, if, gt, add.\n//\n// We can compile most of such programs, and at the same moment, we can\n// optimize some expressions using basic math properties. Keeping track of\n// min/max values will allow us to avoid extra Math.min/Math.max calls.\nconst PostScriptCompiler = (function PostScriptCompilerClosure() {\n class AstNode {\n constructor(type) {\n this.type = type;\n }\n\n visit(visitor) {\n unreachable(\"abstract method\");\n }\n }\n\n class AstArgument extends AstNode {\n constructor(index, min, max) {\n super(\"args\");\n this.index = index;\n this.min = min;\n this.max = max;\n }\n\n visit(visitor) {\n visitor.visitArgument(this);\n }\n }\n\n class AstLiteral extends AstNode {\n constructor(number) {\n super(\"literal\");\n this.number = number;\n this.min = number;\n this.max = number;\n }\n\n visit(visitor) {\n visitor.visitLiteral(this);\n }\n }\n\n class AstBinaryOperation extends AstNode {\n constructor(op, arg1, arg2, min, max) {\n super(\"binary\");\n this.op = op;\n this.arg1 = arg1;\n this.arg2 = arg2;\n this.min = min;\n this.max = max;\n }\n\n visit(visitor) {\n visitor.visitBinaryOperation(this);\n }\n }\n\n class AstMin extends AstNode {\n constructor(arg, max) {\n super(\"max\");\n this.arg = arg;\n this.min = arg.min;\n this.max = max;\n }\n\n visit(visitor) {\n visitor.visitMin(this);\n }\n }\n\n class AstVariable extends AstNode {\n constructor(index, min, max) {\n super(\"var\");\n this.index = index;\n this.min = min;\n this.max = max;\n }\n\n visit(visitor) {\n visitor.visitVariable(this);\n }\n }\n\n class AstVariableDefinition extends AstNode {\n constructor(variable, arg) {\n super(\"definition\");\n this.variable = variable;\n this.arg = arg;\n }\n\n visit(visitor) {\n visitor.visitVariableDefinition(this);\n }\n }\n\n class ExpressionBuilderVisitor {\n constructor() {\n this.parts = [];\n }\n\n visitArgument(arg) {\n this.parts.push(\n \"Math.max(\",\n arg.min,\n \", Math.min(\",\n arg.max,\n \", src[srcOffset + \",\n arg.index,\n \"]))\"\n );\n }\n\n visitVariable(variable) {\n this.parts.push(\"v\", variable.index);\n }\n\n visitLiteral(literal) {\n this.parts.push(literal.number);\n }\n\n visitBinaryOperation(operation) {\n this.parts.push(\"(\");\n operation.arg1.visit(this);\n this.parts.push(\" \", operation.op, \" \");\n operation.arg2.visit(this);\n this.parts.push(\")\");\n }\n\n visitVariableDefinition(definition) {\n this.parts.push(\"var \");\n definition.variable.visit(this);\n this.parts.push(\" = \");\n definition.arg.visit(this);\n this.parts.push(\";\");\n }\n\n visitMin(max) {\n this.parts.push(\"Math.min(\");\n max.arg.visit(this);\n this.parts.push(\", \", max.max, \")\");\n }\n\n toString() {\n return this.parts.join(\"\");\n }\n }\n\n function buildAddOperation(num1, num2) {\n if (num2.type === \"literal\" && num2.number === 0) {\n // optimization: second operand is 0\n return num1;\n }\n if (num1.type === \"literal\" && num1.number === 0) {\n // optimization: first operand is 0\n return num2;\n }\n if (num2.type === \"literal\" && num1.type === \"literal\") {\n // optimization: operands operand are literals\n return new AstLiteral(num1.number + num2.number);\n }\n return new AstBinaryOperation(\n \"+\",\n num1,\n num2,\n num1.min + num2.min,\n num1.max + num2.max\n );\n }\n\n function buildMulOperation(num1, num2) {\n if (num2.type === \"literal\") {\n // optimization: second operands is a literal...\n if (num2.number === 0) {\n return new AstLiteral(0); // and it's 0\n } else if (num2.number === 1) {\n return num1; // and it's 1\n } else if (num1.type === \"literal\") {\n // ... and first operands is a literal too\n return new AstLiteral(num1.number * num2.number);\n }\n }\n if (num1.type === \"literal\") {\n // optimization: first operands is a literal...\n if (num1.number === 0) {\n return new AstLiteral(0); // and it's 0\n } else if (num1.number === 1) {\n return num2; // and it's 1\n }\n }\n const min = Math.min(\n num1.min * num2.min,\n num1.min * num2.max,\n num1.max * num2.min,\n num1.max * num2.max\n );\n const max = Math.max(\n num1.min * num2.min,\n num1.min * num2.max,\n num1.max * num2.min,\n num1.max * num2.max\n );\n return new AstBinaryOperation(\"*\", num1, num2, min, max);\n }\n\n function buildSubOperation(num1, num2) {\n if (num2.type === \"literal\") {\n // optimization: second operands is a literal...\n if (num2.number === 0) {\n return num1; // ... and it's 0\n } else if (num1.type === \"literal\") {\n // ... and first operands is a literal too\n return new AstLiteral(num1.number - num2.number);\n }\n }\n if (\n num2.type === \"binary\" &&\n num2.op === \"-\" &&\n num1.type === \"literal\" &&\n num1.number === 1 &&\n num2.arg1.type === \"literal\" &&\n num2.arg1.number === 1\n ) {\n // optimization for case: 1 - (1 - x)\n return num2.arg2;\n }\n return new AstBinaryOperation(\n \"-\",\n num1,\n num2,\n num1.min - num2.max,\n num1.max - num2.min\n );\n }\n\n function buildMinOperation(num1, max) {\n if (num1.min >= max) {\n // optimization: num1 min value is not less than required max\n return new AstLiteral(max); // just returning max\n } else if (num1.max <= max) {\n // optimization: num1 max value is not greater than required max\n return num1; // just returning an argument\n }\n return new AstMin(num1, max);\n }\n\n // eslint-disable-next-line no-shadow\n class PostScriptCompiler {\n compile(code, domain, range) {\n const stack = [];\n const instructions = [];\n const inputSize = domain.length >> 1,\n outputSize = range.length >> 1;\n let lastRegister = 0;\n let n, j;\n let num1, num2, ast1, ast2, tmpVar, item;\n for (let i = 0; i < inputSize; i++) {\n stack.push(new AstArgument(i, domain[i * 2], domain[i * 2 + 1]));\n }\n\n for (let i = 0, ii = code.length; i < ii; i++) {\n item = code[i];\n if (typeof item === \"number\") {\n stack.push(new AstLiteral(item));\n continue;\n }\n\n switch (item) {\n case \"add\":\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildAddOperation(num1, num2));\n break;\n case \"cvr\":\n if (stack.length < 1) {\n return null;\n }\n break;\n case \"mul\":\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildMulOperation(num1, num2));\n break;\n case \"sub\":\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildSubOperation(num1, num2));\n break;\n case \"exch\":\n if (stack.length < 2) {\n return null;\n }\n ast1 = stack.pop();\n ast2 = stack.pop();\n stack.push(ast1, ast2);\n break;\n case \"pop\":\n if (stack.length < 1) {\n return null;\n }\n stack.pop();\n break;\n case \"index\":\n if (stack.length < 1) {\n return null;\n }\n num1 = stack.pop();\n if (num1.type !== \"literal\") {\n return null;\n }\n n = num1.number;\n if (n < 0 || !Number.isInteger(n) || stack.length < n) {\n return null;\n }\n ast1 = stack[stack.length - n - 1];\n if (ast1.type === \"literal\" || ast1.type === \"var\") {\n stack.push(ast1);\n break;\n }\n tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n stack[stack.length - n - 1] = tmpVar;\n stack.push(tmpVar);\n instructions.push(new AstVariableDefinition(tmpVar, ast1));\n break;\n case \"dup\":\n if (stack.length < 1) {\n return null;\n }\n if (\n typeof code[i + 1] === \"number\" &&\n code[i + 2] === \"gt\" &&\n code[i + 3] === i + 7 &&\n code[i + 4] === \"jz\" &&\n code[i + 5] === \"pop\" &&\n code[i + 6] === code[i + 1]\n ) {\n // special case of the commands sequence for the min operation\n num1 = stack.pop();\n stack.push(buildMinOperation(num1, code[i + 1]));\n i += 6;\n break;\n }\n ast1 = stack[stack.length - 1];\n if (ast1.type === \"literal\" || ast1.type === \"var\") {\n // we don't have to save into intermediate variable a literal or\n // variable.\n stack.push(ast1);\n break;\n }\n tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n stack[stack.length - 1] = tmpVar;\n stack.push(tmpVar);\n instructions.push(new AstVariableDefinition(tmpVar, ast1));\n break;\n case \"roll\":\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n if (num2.type !== \"literal\" || num1.type !== \"literal\") {\n // both roll operands must be numbers\n return null;\n }\n j = num2.number;\n n = num1.number;\n if (\n n <= 0 ||\n !Number.isInteger(n) ||\n !Number.isInteger(j) ||\n stack.length < n\n ) {\n // ... and integers\n return null;\n }\n j = ((j % n) + n) % n;\n if (j === 0) {\n break; // just skipping -- there are nothing to rotate\n }\n Array.prototype.push.apply(\n stack,\n stack.splice(stack.length - n, n - j)\n );\n break;\n default:\n return null; // unsupported operator\n }\n }\n\n if (stack.length !== outputSize) {\n return null;\n }\n\n const result = [];\n for (const instruction of instructions) {\n const statementBuilder = new ExpressionBuilderVisitor();\n instruction.visit(statementBuilder);\n result.push(statementBuilder.toString());\n }\n for (let i = 0, ii = stack.length; i < ii; i++) {\n const expr = stack[i],\n statementBuilder = new ExpressionBuilderVisitor();\n expr.visit(statementBuilder);\n const min = range[i * 2],\n max = range[i * 2 + 1];\n const out = [statementBuilder.toString()];\n if (min > expr.min) {\n out.unshift(\"Math.max(\", min, \", \");\n out.push(\")\");\n }\n if (max < expr.max) {\n out.unshift(\"Math.min(\", max, \", \");\n out.push(\")\");\n }\n out.unshift(\"dest[destOffset + \", i, \"] = \");\n out.push(\";\");\n result.push(out.join(\"\"));\n }\n return result.join(\"\\n\");\n }\n }\n\n return PostScriptCompiler;\n})();\n\nexport {\n isPDFFunction,\n PDFFunctionFactory,\n PostScriptCompiler,\n PostScriptEvaluator,\n};\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FormatError, shadow } from \"../shared/util.js\";\nimport { EOF } from \"./primitives.js\";\nimport { isWhiteSpace } from \"./core_utils.js\";\n\nclass PostScriptParser {\n constructor(lexer) {\n this.lexer = lexer;\n this.operators = [];\n this.token = null;\n this.prev = null;\n }\n\n nextToken() {\n this.prev = this.token;\n this.token = this.lexer.getToken();\n }\n\n accept(type) {\n if (this.token.type === type) {\n this.nextToken();\n return true;\n }\n return false;\n }\n\n expect(type) {\n if (this.accept(type)) {\n return true;\n }\n throw new FormatError(\n `Unexpected symbol: found ${this.token.type} expected ${type}.`\n );\n }\n\n parse() {\n this.nextToken();\n this.expect(PostScriptTokenTypes.LBRACE);\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n return this.operators;\n }\n\n parseBlock() {\n while (true) {\n if (this.accept(PostScriptTokenTypes.NUMBER)) {\n this.operators.push(this.prev.value);\n } else if (this.accept(PostScriptTokenTypes.OPERATOR)) {\n this.operators.push(this.prev.value);\n } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n this.parseCondition();\n } else {\n return;\n }\n }\n }\n\n parseCondition() {\n // Add two place holders that will be updated later\n const conditionLocation = this.operators.length;\n this.operators.push(null, null);\n\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n if (this.accept(PostScriptTokenTypes.IF)) {\n // The true block is right after the 'if' so it just falls through on true\n // else it jumps and skips the true block.\n this.operators[conditionLocation] = this.operators.length;\n this.operators[conditionLocation + 1] = \"jz\";\n } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n const jumpLocation = this.operators.length;\n this.operators.push(null, null);\n const endOfTrue = this.operators.length;\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n this.expect(PostScriptTokenTypes.IFELSE);\n // The jump is added at the end of the true block to skip the false block.\n this.operators[jumpLocation] = this.operators.length;\n this.operators[jumpLocation + 1] = \"j\";\n\n this.operators[conditionLocation] = endOfTrue;\n this.operators[conditionLocation + 1] = \"jz\";\n } else {\n throw new FormatError(\"PS Function: error parsing conditional.\");\n }\n }\n}\n\nconst PostScriptTokenTypes = {\n LBRACE: 0,\n RBRACE: 1,\n NUMBER: 2,\n OPERATOR: 3,\n IF: 4,\n IFELSE: 5,\n};\n\nclass PostScriptToken {\n static get opCache() {\n return shadow(this, \"opCache\", Object.create(null));\n }\n\n constructor(type, value) {\n this.type = type;\n this.value = value;\n }\n\n static getOperator(op) {\n const opValue = PostScriptToken.opCache[op];\n if (opValue) {\n return opValue;\n }\n return (PostScriptToken.opCache[op] = new PostScriptToken(\n PostScriptTokenTypes.OPERATOR,\n op\n ));\n }\n\n static get LBRACE() {\n return shadow(\n this,\n \"LBRACE\",\n new PostScriptToken(PostScriptTokenTypes.LBRACE, \"{\")\n );\n }\n\n static get RBRACE() {\n return shadow(\n this,\n \"RBRACE\",\n new PostScriptToken(PostScriptTokenTypes.RBRACE, \"}\")\n );\n }\n\n static get IF() {\n return shadow(\n this,\n \"IF\",\n new PostScriptToken(PostScriptTokenTypes.IF, \"IF\")\n );\n }\n\n static get IFELSE() {\n return shadow(\n this,\n \"IFELSE\",\n new PostScriptToken(PostScriptTokenTypes.IFELSE, \"IFELSE\")\n );\n }\n}\n\nclass PostScriptLexer {\n constructor(stream) {\n this.stream = stream;\n this.nextChar();\n\n this.strBuf = [];\n }\n\n nextChar() {\n return (this.currentChar = this.stream.getByte());\n }\n\n getToken() {\n let comment = false;\n let ch = this.currentChar;\n\n // skip comments\n while (true) {\n if (ch < 0) {\n return EOF;\n }\n\n if (comment) {\n if (ch === 0x0a || ch === 0x0d) {\n comment = false;\n }\n } else if (ch === /* '%' = */ 0x25) {\n comment = true;\n } else if (!isWhiteSpace(ch)) {\n break;\n }\n ch = this.nextChar();\n }\n switch (ch | 0) {\n case 0x30: // '0'\n case 0x31: // '1'\n case 0x32: // '2'\n case 0x33: // '3'\n case 0x34: // '4'\n case 0x35: // '5'\n case 0x36: // '6'\n case 0x37: // '7'\n case 0x38: // '8'\n case 0x39: // '9'\n case 0x2b: // '+'\n case 0x2d: // '-'\n case 0x2e: // '.'\n return new PostScriptToken(\n PostScriptTokenTypes.NUMBER,\n this.getNumber()\n );\n case 0x7b: // '{'\n this.nextChar();\n return PostScriptToken.LBRACE;\n case 0x7d: // '}'\n this.nextChar();\n return PostScriptToken.RBRACE;\n }\n // operator\n const strBuf = this.strBuf;\n strBuf.length = 0;\n strBuf[0] = String.fromCharCode(ch);\n\n while (\n (ch = this.nextChar()) >= 0 &&\n ((ch >= /* 'A' = */ 0x41 && ch <= /* 'Z' = */ 0x5a) ||\n (ch >= /* 'a' = */ 0x61 && ch <= /* 'z' = */ 0x7a))\n ) {\n strBuf.push(String.fromCharCode(ch));\n }\n const str = strBuf.join(\"\");\n switch (str.toLowerCase()) {\n case \"if\":\n return PostScriptToken.IF;\n case \"ifelse\":\n return PostScriptToken.IFELSE;\n default:\n return PostScriptToken.getOperator(str);\n }\n }\n\n getNumber() {\n let ch = this.currentChar;\n const strBuf = this.strBuf;\n strBuf.length = 0;\n strBuf[0] = String.fromCharCode(ch);\n\n while ((ch = this.nextChar()) >= 0) {\n if (\n (ch >= /* '0' = */ 0x30 && ch <= /* '9' = */ 0x39) ||\n ch === /* '-' = */ 0x2d ||\n ch === /* '.' = */ 0x2e\n ) {\n strBuf.push(String.fromCharCode(ch));\n } else {\n break;\n }\n }\n const value = parseFloat(strBuf.join(\"\"));\n if (isNaN(value)) {\n throw new FormatError(`Invalid floating point number: ${value}`);\n }\n return value;\n }\n}\n\nexport { PostScriptLexer, PostScriptParser };\n","/* Copyright 2019 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, shadow, unreachable, warn } from \"../shared/util.js\";\nimport { RefSetCache } from \"./primitives.js\";\n\nclass BaseLocalCache {\n constructor(options) {\n if (this.constructor === BaseLocalCache) {\n unreachable(\"Cannot initialize BaseLocalCache.\");\n }\n this._onlyRefs = (options && options.onlyRefs) === true;\n\n if (!this._onlyRefs) {\n this._nameRefMap = new Map();\n this._imageMap = new Map();\n }\n this._imageCache = new RefSetCache();\n }\n\n getByName(name) {\n if (this._onlyRefs) {\n unreachable(\"Should not call `getByName` method.\");\n }\n const ref = this._nameRefMap.get(name);\n if (ref) {\n return this.getByRef(ref);\n }\n return this._imageMap.get(name) || null;\n }\n\n getByRef(ref) {\n return this._imageCache.get(ref) || null;\n }\n\n set(name, ref, data) {\n unreachable(\"Abstract method `set` called.\");\n }\n}\n\nclass LocalImageCache extends BaseLocalCache {\n set(name, ref = null, data) {\n if (typeof name !== \"string\") {\n throw new Error('LocalImageCache.set - expected \"name\" argument.');\n }\n if (ref) {\n if (this._imageCache.has(ref)) {\n return;\n }\n this._nameRefMap.set(name, ref);\n this._imageCache.put(ref, data);\n return;\n }\n // name\n if (this._imageMap.has(name)) {\n return;\n }\n this._imageMap.set(name, data);\n }\n}\n\nclass LocalColorSpaceCache extends BaseLocalCache {\n set(name = null, ref = null, data) {\n if (typeof name !== \"string\" && !ref) {\n throw new Error(\n 'LocalColorSpaceCache.set - expected \"name\" and/or \"ref\" argument.'\n );\n }\n if (ref) {\n if (this._imageCache.has(ref)) {\n return;\n }\n if (name !== null) {\n // Optional when `ref` is defined.\n this._nameRefMap.set(name, ref);\n }\n this._imageCache.put(ref, data);\n return;\n }\n // name\n if (this._imageMap.has(name)) {\n return;\n }\n this._imageMap.set(name, data);\n }\n}\n\nclass LocalFunctionCache extends BaseLocalCache {\n constructor(options) {\n super({ onlyRefs: true });\n }\n\n set(name = null, ref, data) {\n if (!ref) {\n throw new Error('LocalFunctionCache.set - expected \"ref\" argument.');\n }\n if (this._imageCache.has(ref)) {\n return;\n }\n this._imageCache.put(ref, data);\n }\n}\n\nclass LocalGStateCache extends BaseLocalCache {\n set(name, ref = null, data) {\n if (typeof name !== \"string\") {\n throw new Error('LocalGStateCache.set - expected \"name\" argument.');\n }\n if (ref) {\n if (this._imageCache.has(ref)) {\n return;\n }\n this._nameRefMap.set(name, ref);\n this._imageCache.put(ref, data);\n return;\n }\n // name\n if (this._imageMap.has(name)) {\n return;\n }\n this._imageMap.set(name, data);\n }\n}\n\nclass LocalTilingPatternCache extends BaseLocalCache {\n constructor(options) {\n super({ onlyRefs: true });\n }\n\n set(name = null, ref, data) {\n if (!ref) {\n throw new Error('LocalTilingPatternCache.set - expected \"ref\" argument.');\n }\n if (this._imageCache.has(ref)) {\n return;\n }\n this._imageCache.put(ref, data);\n }\n}\n\nclass GlobalImageCache {\n static get NUM_PAGES_THRESHOLD() {\n return shadow(this, \"NUM_PAGES_THRESHOLD\", 2);\n }\n\n static get MIN_IMAGES_TO_CACHE() {\n return shadow(this, \"MIN_IMAGES_TO_CACHE\", 10);\n }\n\n static get MAX_BYTE_SIZE() {\n return shadow(this, \"MAX_BYTE_SIZE\", /* Forty megabytes = */ 40e6);\n }\n\n constructor() {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n GlobalImageCache.NUM_PAGES_THRESHOLD > 1,\n \"GlobalImageCache - invalid NUM_PAGES_THRESHOLD constant.\"\n );\n }\n this._refCache = new RefSetCache();\n this._imageCache = new RefSetCache();\n }\n\n get _byteSize() {\n let byteSize = 0;\n for (const imageData of this._imageCache) {\n byteSize += imageData.byteSize;\n }\n return byteSize;\n }\n\n get _cacheLimitReached() {\n if (this._imageCache.size < GlobalImageCache.MIN_IMAGES_TO_CACHE) {\n return false;\n }\n if (this._byteSize < GlobalImageCache.MAX_BYTE_SIZE) {\n return false;\n }\n return true;\n }\n\n shouldCache(ref, pageIndex) {\n const pageIndexSet = this._refCache.get(ref);\n const numPages = pageIndexSet\n ? pageIndexSet.size + (pageIndexSet.has(pageIndex) ? 0 : 1)\n : 1;\n\n if (numPages < GlobalImageCache.NUM_PAGES_THRESHOLD) {\n return false;\n }\n if (!this._imageCache.has(ref) && this._cacheLimitReached) {\n return false;\n }\n return true;\n }\n\n addPageIndex(ref, pageIndex) {\n let pageIndexSet = this._refCache.get(ref);\n if (!pageIndexSet) {\n pageIndexSet = new Set();\n this._refCache.put(ref, pageIndexSet);\n }\n pageIndexSet.add(pageIndex);\n }\n\n /**\n * PLEASE NOTE: Must be called *after* the `setData` method.\n */\n addByteSize(ref, byteSize) {\n const imageData = this._imageCache.get(ref);\n if (!imageData) {\n return; // The image data isn't cached (the limit was reached).\n }\n if (imageData.byteSize) {\n return; // The byte-size has already been set.\n }\n imageData.byteSize = byteSize;\n }\n\n getData(ref, pageIndex) {\n const pageIndexSet = this._refCache.get(ref);\n if (!pageIndexSet) {\n return null;\n }\n if (pageIndexSet.size < GlobalImageCache.NUM_PAGES_THRESHOLD) {\n return null;\n }\n const imageData = this._imageCache.get(ref);\n if (!imageData) {\n return null;\n }\n // Ensure that we keep track of all pages containing the image reference.\n pageIndexSet.add(pageIndex);\n\n return imageData;\n }\n\n setData(ref, data) {\n if (!this._refCache.has(ref)) {\n throw new Error(\n 'GlobalImageCache.setData - expected \"addPageIndex\" to have been called.'\n );\n }\n if (this._imageCache.has(ref)) {\n return;\n }\n if (this._cacheLimitReached) {\n warn(\"GlobalImageCache.setData - cache limit reached.\");\n return;\n }\n this._imageCache.put(ref, data);\n }\n\n clear(onlyData = false) {\n if (!onlyData) {\n this._refCache.clear();\n }\n this._imageCache.clear();\n }\n}\n\nexport {\n GlobalImageCache,\n LocalColorSpaceCache,\n LocalFunctionCache,\n LocalGStateCache,\n LocalImageCache,\n LocalTilingPatternCache,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { warn } from \"../shared/util.js\";\n\n// Character types for symbols from 0000 to 00FF.\n// Source: ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData.txt\n// prettier-ignore\nconst baseTypes = [\n \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"S\", \"B\", \"S\",\n \"WS\", \"B\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\",\n \"BN\", \"BN\", \"BN\", \"BN\", \"B\", \"B\", \"B\", \"S\", \"WS\", \"ON\", \"ON\", \"ET\",\n \"ET\", \"ET\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ES\", \"CS\", \"ES\", \"CS\", \"CS\",\n \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"CS\", \"ON\",\n \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\",\n \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"B\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\",\n \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\",\n \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"CS\", \"ON\", \"ET\",\n \"ET\", \"ET\", \"ET\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"ON\", \"ON\", \"BN\", \"ON\",\n \"ON\", \"ET\", \"ET\", \"EN\", \"EN\", \"ON\", \"L\", \"ON\", \"ON\", \"ON\", \"EN\", \"L\",\n \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\"\n];\n\n// Character types for symbols from 0600 to 06FF.\n// Source: ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData.txt\n// Note that 061D does not exist in the Unicode standard (see\n// http://unicode.org/charts/PDF/U0600.pdf), so we replace it with an\n// empty string and issue a warning if we encounter this character. The\n// empty string is required to properly index the items after it.\n// prettier-ignore\nconst arabicTypes = [\n \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"ON\", \"ON\", \"AL\", \"ET\", \"ET\", \"AL\",\n \"CS\", \"AL\", \"ON\", \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\",\n \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\",\n \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\",\n \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\",\n \"AN\", \"AN\", \"AN\", \"ET\", \"AN\", \"AN\", \"AL\", \"AL\", \"AL\", \"NSM\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AN\",\n \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"NSM\", \"NSM\",\n \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"EN\", \"EN\", \"EN\", \"EN\",\n \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\"\n];\n\nfunction isOdd(i) {\n return (i & 1) !== 0;\n}\n\nfunction isEven(i) {\n return (i & 1) === 0;\n}\n\nfunction findUnequal(arr, start, value) {\n let j, jj;\n for (j = start, jj = arr.length; j < jj; ++j) {\n if (arr[j] !== value) {\n return j;\n }\n }\n return j;\n}\n\nfunction setValues(arr, start, end, value) {\n for (let j = start; j < end; ++j) {\n arr[j] = value;\n }\n}\n\nfunction reverseValues(arr, start, end) {\n for (let i = start, j = end - 1; i < j; ++i, --j) {\n const temp = arr[i];\n arr[i] = arr[j];\n arr[j] = temp;\n }\n}\n\nfunction createBidiText(str, isLTR, vertical = false) {\n let dir = \"ltr\";\n if (vertical) {\n dir = \"ttb\";\n } else if (!isLTR) {\n dir = \"rtl\";\n }\n return { str, dir };\n}\n\n// These are used in bidi(), which is called frequently. We re-use them on\n// each call to avoid unnecessary allocations.\nconst chars = [];\nconst types = [];\n\nfunction bidi(str, startLevel = -1, vertical = false) {\n let isLTR = true;\n const strLength = str.length;\n if (strLength === 0 || vertical) {\n return createBidiText(str, isLTR, vertical);\n }\n\n // Get types and fill arrays\n chars.length = strLength;\n types.length = strLength;\n let numBidi = 0;\n\n let i, ii;\n for (i = 0; i < strLength; ++i) {\n chars[i] = str.charAt(i);\n\n const charCode = str.charCodeAt(i);\n let charType = \"L\";\n if (charCode <= 0x00ff) {\n charType = baseTypes[charCode];\n } else if (0x0590 <= charCode && charCode <= 0x05f4) {\n charType = \"R\";\n } else if (0x0600 <= charCode && charCode <= 0x06ff) {\n charType = arabicTypes[charCode & 0xff];\n if (!charType) {\n warn(\"Bidi: invalid Unicode character \" + charCode.toString(16));\n }\n } else if (0x0700 <= charCode && charCode <= 0x08ac) {\n charType = \"AL\";\n }\n if (charType === \"R\" || charType === \"AL\" || charType === \"AN\") {\n numBidi++;\n }\n types[i] = charType;\n }\n\n // Detect the bidi method\n // - If there are no rtl characters then no bidi needed\n // - If less than 30% chars are rtl then string is primarily ltr,\n // unless the string is very short.\n // - If more than 30% chars are rtl then string is primarily rtl\n if (numBidi === 0) {\n isLTR = true;\n return createBidiText(str, isLTR);\n }\n\n if (startLevel === -1) {\n if (numBidi / strLength < 0.3 && strLength > 4) {\n isLTR = true;\n startLevel = 0;\n } else {\n isLTR = false;\n startLevel = 1;\n }\n }\n\n const levels = [];\n for (i = 0; i < strLength; ++i) {\n levels[i] = startLevel;\n }\n\n /*\n X1-X10: skip most of this, since we are NOT doing the embeddings.\n */\n const e = isOdd(startLevel) ? \"R\" : \"L\";\n const sor = e;\n const eor = sor;\n\n /*\n W1. Examine each non-spacing mark (NSM) in the level run, and change the\n type of the NSM to the type of the previous character. If the NSM is at the\n start of the level run, it will get the type of sor.\n */\n let lastType = sor;\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"NSM\") {\n types[i] = lastType;\n } else {\n lastType = types[i];\n }\n }\n\n /*\n W2. Search backwards from each instance of a European number until the\n first strong type (R, L, AL, or sor) is found. If an AL is found, change\n the type of the European number to Arabic number.\n */\n lastType = sor;\n let t;\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === \"EN\") {\n types[i] = lastType === \"AL\" ? \"AN\" : \"EN\";\n } else if (t === \"R\" || t === \"L\" || t === \"AL\") {\n lastType = t;\n }\n }\n\n /*\n W3. Change all ALs to R.\n */\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === \"AL\") {\n types[i] = \"R\";\n }\n }\n\n /*\n W4. A single European separator between two European numbers changes to a\n European number. A single common separator between two numbers of the same\n type changes to that type:\n */\n for (i = 1; i < strLength - 1; ++i) {\n if (types[i] === \"ES\" && types[i - 1] === \"EN\" && types[i + 1] === \"EN\") {\n types[i] = \"EN\";\n }\n if (\n types[i] === \"CS\" &&\n (types[i - 1] === \"EN\" || types[i - 1] === \"AN\") &&\n types[i + 1] === types[i - 1]\n ) {\n types[i] = types[i - 1];\n }\n }\n\n /*\n W5. A sequence of European terminators adjacent to European numbers changes\n to all European numbers:\n */\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"EN\") {\n // do before\n for (let j = i - 1; j >= 0; --j) {\n if (types[j] !== \"ET\") {\n break;\n }\n types[j] = \"EN\";\n }\n // do after\n for (let j = i + 1; j < strLength; ++j) {\n if (types[j] !== \"ET\") {\n break;\n }\n types[j] = \"EN\";\n }\n }\n }\n\n /*\n W6. Otherwise, separators and terminators change to Other Neutral:\n */\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === \"WS\" || t === \"ES\" || t === \"ET\" || t === \"CS\") {\n types[i] = \"ON\";\n }\n }\n\n /*\n W7. Search backwards from each instance of a European number until the\n first strong type (R, L, or sor) is found. If an L is found, then change\n the type of the European number to L.\n */\n lastType = sor;\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === \"EN\") {\n types[i] = lastType === \"L\" ? \"L\" : \"EN\";\n } else if (t === \"R\" || t === \"L\") {\n lastType = t;\n }\n }\n\n /*\n N1. A sequence of neutrals takes the direction of the surrounding strong\n text if the text on both sides has the same direction. European and Arabic\n numbers are treated as though they were R. Start-of-level-run (sor) and\n end-of-level-run (eor) are used at level run boundaries.\n */\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"ON\") {\n const end = findUnequal(types, i + 1, \"ON\");\n let before = sor;\n if (i > 0) {\n before = types[i - 1];\n }\n\n let after = eor;\n if (end + 1 < strLength) {\n after = types[end + 1];\n }\n if (before !== \"L\") {\n before = \"R\";\n }\n if (after !== \"L\") {\n after = \"R\";\n }\n if (before === after) {\n setValues(types, i, end, before);\n }\n i = end - 1; // reset to end (-1 so next iteration is ok)\n }\n }\n\n /*\n N2. Any remaining neutrals take the embedding direction.\n */\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"ON\") {\n types[i] = e;\n }\n }\n\n /*\n I1. For all characters with an even (left-to-right) embedding direction,\n those of type R go up one level and those of type AN or EN go up two\n levels.\n I2. For all characters with an odd (right-to-left) embedding direction,\n those of type L, EN or AN go up one level.\n */\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (isEven(levels[i])) {\n if (t === \"R\") {\n levels[i] += 1;\n } else if (t === \"AN\" || t === \"EN\") {\n levels[i] += 2;\n }\n } else {\n // isOdd\n if (t === \"L\" || t === \"AN\" || t === \"EN\") {\n levels[i] += 1;\n }\n }\n }\n\n /*\n L1. On each line, reset the embedding level of the following characters to\n the paragraph embedding level:\n\n segment separators,\n paragraph separators,\n any sequence of whitespace characters preceding a segment separator or\n paragraph separator, and any sequence of white space characters at the end\n of the line.\n */\n\n // don't bother as text is only single line\n\n /*\n L2. From the highest level found in the text to the lowest odd level on\n each line, reverse any contiguous sequence of characters that are at that\n level or higher.\n */\n\n // find highest level & lowest odd level\n let highestLevel = -1;\n let lowestOddLevel = 99;\n let level;\n for (i = 0, ii = levels.length; i < ii; ++i) {\n level = levels[i];\n if (highestLevel < level) {\n highestLevel = level;\n }\n if (lowestOddLevel > level && isOdd(level)) {\n lowestOddLevel = level;\n }\n }\n\n // now reverse between those limits\n for (level = highestLevel; level >= lowestOddLevel; --level) {\n // find segments to reverse\n let start = -1;\n for (i = 0, ii = levels.length; i < ii; ++i) {\n if (levels[i] < level) {\n if (start >= 0) {\n reverseValues(chars, start, i);\n start = -1;\n }\n } else if (start < 0) {\n start = i;\n }\n }\n if (start >= 0) {\n reverseValues(chars, start, levels.length);\n }\n }\n\n /*\n L3. Combining marks applied to a right-to-left base character will at this\n point precede their base character. If the rendering engine expects them to\n follow the base characters in the final display process, then the ordering\n of the marks and the base character must be reversed.\n */\n\n // don't bother for now\n\n /*\n L4. A character that possesses the mirrored property as specified by\n Section 4.7, Mirrored, must be depicted by a mirrored glyph if the resolved\n directionality of that character is R.\n */\n\n // don't mirror as characters are already mirrored in the pdf\n\n // Finally, return string\n for (i = 0, ii = chars.length; i < ii; ++i) {\n const ch = chars[i];\n if (ch === \"<\" || ch === \">\") {\n chars[i] = \"\";\n }\n }\n return createBidiText(chars.join(\"\"), isLTR);\n}\n\nexport { bidi };\n","/* Copyright 2014 Opera Software ASA\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n *\n * Based on https://code.google.com/p/smhasher/wiki/MurmurHash3.\n * Hashes roughly 100 KB per millisecond on i7 3.4 GHz.\n */\n\nimport { isArrayBuffer } from \"./util.js\";\n\nconst SEED = 0xc3d2e1f0;\n// Workaround for missing math precision in JS.\nconst MASK_HIGH = 0xffff0000;\nconst MASK_LOW = 0xffff;\n\nclass MurmurHash3_64 {\n constructor(seed) {\n this.h1 = seed ? seed & 0xffffffff : SEED;\n this.h2 = seed ? seed & 0xffffffff : SEED;\n }\n\n update(input) {\n let data, length;\n if (typeof input === \"string\") {\n data = new Uint8Array(input.length * 2);\n length = 0;\n for (let i = 0, ii = input.length; i < ii; i++) {\n const code = input.charCodeAt(i);\n if (code <= 0xff) {\n data[length++] = code;\n } else {\n data[length++] = code >>> 8;\n data[length++] = code & 0xff;\n }\n }\n } else if (isArrayBuffer(input)) {\n data = input.slice();\n length = data.byteLength;\n } else {\n throw new Error(\n \"Wrong data format in MurmurHash3_64_update. \" +\n \"Input must be a string or array.\"\n );\n }\n\n const blockCounts = length >> 2;\n const tailLength = length - blockCounts * 4;\n // We don't care about endianness here.\n const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n let k1 = 0,\n k2 = 0;\n let h1 = this.h1,\n h2 = this.h2;\n const C1 = 0xcc9e2d51,\n C2 = 0x1b873593;\n const C1_LOW = C1 & MASK_LOW,\n C2_LOW = C2 & MASK_LOW;\n\n for (let i = 0; i < blockCounts; i++) {\n if (i & 1) {\n k1 = dataUint32[i];\n k1 = ((k1 * C1) & MASK_HIGH) | ((k1 * C1_LOW) & MASK_LOW);\n k1 = (k1 << 15) | (k1 >>> 17);\n k1 = ((k1 * C2) & MASK_HIGH) | ((k1 * C2_LOW) & MASK_LOW);\n h1 ^= k1;\n h1 = (h1 << 13) | (h1 >>> 19);\n h1 = h1 * 5 + 0xe6546b64;\n } else {\n k2 = dataUint32[i];\n k2 = ((k2 * C1) & MASK_HIGH) | ((k2 * C1_LOW) & MASK_LOW);\n k2 = (k2 << 15) | (k2 >>> 17);\n k2 = ((k2 * C2) & MASK_HIGH) | ((k2 * C2_LOW) & MASK_LOW);\n h2 ^= k2;\n h2 = (h2 << 13) | (h2 >>> 19);\n h2 = h2 * 5 + 0xe6546b64;\n }\n }\n\n k1 = 0;\n\n switch (tailLength) {\n case 3:\n k1 ^= data[blockCounts * 4 + 2] << 16;\n /* falls through */\n case 2:\n k1 ^= data[blockCounts * 4 + 1] << 8;\n /* falls through */\n case 1:\n k1 ^= data[blockCounts * 4];\n /* falls through */\n\n k1 = ((k1 * C1) & MASK_HIGH) | ((k1 * C1_LOW) & MASK_LOW);\n k1 = (k1 << 15) | (k1 >>> 17);\n k1 = ((k1 * C2) & MASK_HIGH) | ((k1 * C2_LOW) & MASK_LOW);\n if (blockCounts & 1) {\n h1 ^= k1;\n } else {\n h2 ^= k1;\n }\n }\n\n this.h1 = h1;\n this.h2 = h2;\n }\n\n hexdigest() {\n let h1 = this.h1,\n h2 = this.h2;\n\n h1 ^= h2 >>> 1;\n h1 = ((h1 * 0xed558ccd) & MASK_HIGH) | ((h1 * 0x8ccd) & MASK_LOW);\n h2 =\n ((h2 * 0xff51afd7) & MASK_HIGH) |\n (((((h2 << 16) | (h1 >>> 16)) * 0xafd7ed55) & MASK_HIGH) >>> 16);\n h1 ^= h2 >>> 1;\n h1 = ((h1 * 0x1a85ec53) & MASK_HIGH) | ((h1 * 0xec53) & MASK_LOW);\n h2 =\n ((h2 * 0xc4ceb9fe) & MASK_HIGH) |\n (((((h2 << 16) | (h1 >>> 16)) * 0xb9fe1a85) & MASK_HIGH) >>> 16);\n h1 ^= h2 >>> 1;\n\n const hex1 = (h1 >>> 0).toString(16),\n hex2 = (h2 >>> 0).toString(16);\n return hex1.padStart(8, \"0\") + hex2.padStart(8, \"0\");\n }\n}\n\nexport { MurmurHash3_64 };\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ImageKind,\n OPS,\n RenderingIntentFlag,\n shadow,\n warn,\n} from \"../shared/util.js\";\n\nfunction addState(parentState, pattern, checkFn, iterateFn, processFn) {\n let state = parentState;\n for (let i = 0, ii = pattern.length - 1; i < ii; i++) {\n const item = pattern[i];\n state = state[item] || (state[item] = []);\n }\n state[pattern[pattern.length - 1]] = {\n checkFn,\n iterateFn,\n processFn,\n };\n}\n\nconst InitialState = [];\n\n// This replaces (save, transform, paintInlineImageXObject, restore)+\n// sequences with one |paintInlineImageXObjectGroup| operation.\naddState(\n InitialState,\n [OPS.save, OPS.transform, OPS.paintInlineImageXObject, OPS.restore],\n null,\n function iterateInlineImageGroup(context, i) {\n const fnArray = context.fnArray;\n const iFirstSave = context.iCurr - 3;\n const pos = (i - iFirstSave) % 4;\n switch (pos) {\n case 0:\n return fnArray[i] === OPS.save;\n case 1:\n return fnArray[i] === OPS.transform;\n case 2:\n return fnArray[i] === OPS.paintInlineImageXObject;\n case 3:\n return fnArray[i] === OPS.restore;\n }\n throw new Error(`iterateInlineImageGroup - invalid pos: ${pos}`);\n },\n function foundInlineImageGroup(context, i) {\n const MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10;\n const MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200;\n const MAX_WIDTH = 1000;\n const IMAGE_PADDING = 1;\n\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const curr = context.iCurr;\n const iFirstSave = curr - 3;\n const iFirstTransform = curr - 2;\n const iFirstPIIXO = curr - 1;\n\n const count = Math.min(\n Math.floor((i - iFirstSave) / 4),\n MAX_IMAGES_IN_INLINE_IMAGES_BLOCK\n );\n if (count < MIN_IMAGES_IN_INLINE_IMAGES_BLOCK) {\n return i - ((i - iFirstSave) % 4);\n }\n\n // assuming that heights of those image is too small (~1 pixel)\n // packing as much as possible by lines\n let maxX = 0;\n const map = [];\n let maxLineHeight = 0;\n let currentX = IMAGE_PADDING,\n currentY = IMAGE_PADDING;\n for (let q = 0; q < count; q++) {\n const transform = argsArray[iFirstTransform + (q << 2)];\n const img = argsArray[iFirstPIIXO + (q << 2)][0];\n if (currentX + img.width > MAX_WIDTH) {\n // starting new line\n maxX = Math.max(maxX, currentX);\n currentY += maxLineHeight + 2 * IMAGE_PADDING;\n currentX = 0;\n maxLineHeight = 0;\n }\n map.push({\n transform,\n x: currentX,\n y: currentY,\n w: img.width,\n h: img.height,\n });\n currentX += img.width + 2 * IMAGE_PADDING;\n maxLineHeight = Math.max(maxLineHeight, img.height);\n }\n const imgWidth = Math.max(maxX, currentX) + IMAGE_PADDING;\n const imgHeight = currentY + maxLineHeight + IMAGE_PADDING;\n const imgData = new Uint8Array(imgWidth * imgHeight * 4);\n const imgRowSize = imgWidth << 2;\n for (let q = 0; q < count; q++) {\n const data = argsArray[iFirstPIIXO + (q << 2)][0].data;\n // Copy image by lines and extends pixels into padding.\n const rowSize = map[q].w << 2;\n let dataOffset = 0;\n let offset = (map[q].x + map[q].y * imgWidth) << 2;\n imgData.set(data.subarray(0, rowSize), offset - imgRowSize);\n for (let k = 0, kk = map[q].h; k < kk; k++) {\n imgData.set(data.subarray(dataOffset, dataOffset + rowSize), offset);\n dataOffset += rowSize;\n offset += imgRowSize;\n }\n imgData.set(data.subarray(dataOffset - rowSize, dataOffset), offset);\n while (offset >= 0) {\n data[offset - 4] = data[offset];\n data[offset - 3] = data[offset + 1];\n data[offset - 2] = data[offset + 2];\n data[offset - 1] = data[offset + 3];\n data[offset + rowSize] = data[offset + rowSize - 4];\n data[offset + rowSize + 1] = data[offset + rowSize - 3];\n data[offset + rowSize + 2] = data[offset + rowSize - 2];\n data[offset + rowSize + 3] = data[offset + rowSize - 1];\n offset -= imgRowSize;\n }\n }\n\n // Replace queue items.\n fnArray.splice(iFirstSave, count * 4, OPS.paintInlineImageXObjectGroup);\n argsArray.splice(iFirstSave, count * 4, [\n {\n width: imgWidth,\n height: imgHeight,\n kind: ImageKind.RGBA_32BPP,\n data: imgData,\n },\n map,\n ]);\n\n return iFirstSave + 1;\n }\n);\n\n// This replaces (save, transform, paintImageMaskXObject, restore)+\n// sequences with one |paintImageMaskXObjectGroup| or one\n// |paintImageMaskXObjectRepeat| operation.\naddState(\n InitialState,\n [OPS.save, OPS.transform, OPS.paintImageMaskXObject, OPS.restore],\n null,\n function iterateImageMaskGroup(context, i) {\n const fnArray = context.fnArray;\n const iFirstSave = context.iCurr - 3;\n const pos = (i - iFirstSave) % 4;\n switch (pos) {\n case 0:\n return fnArray[i] === OPS.save;\n case 1:\n return fnArray[i] === OPS.transform;\n case 2:\n return fnArray[i] === OPS.paintImageMaskXObject;\n case 3:\n return fnArray[i] === OPS.restore;\n }\n throw new Error(`iterateImageMaskGroup - invalid pos: ${pos}`);\n },\n function foundImageMaskGroup(context, i) {\n const MIN_IMAGES_IN_MASKS_BLOCK = 10;\n const MAX_IMAGES_IN_MASKS_BLOCK = 100;\n const MAX_SAME_IMAGES_IN_MASKS_BLOCK = 1000;\n\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const curr = context.iCurr;\n const iFirstSave = curr - 3;\n const iFirstTransform = curr - 2;\n const iFirstPIMXO = curr - 1;\n\n // At this point, i is the index of the first op past the last valid\n // quartet.\n let count = Math.floor((i - iFirstSave) / 4);\n if (count < MIN_IMAGES_IN_MASKS_BLOCK) {\n return i - ((i - iFirstSave) % 4);\n }\n\n let isSameImage = false;\n let iTransform, transformArgs;\n const firstPIMXOArg0 = argsArray[iFirstPIMXO][0];\n const firstTransformArg0 = argsArray[iFirstTransform][0],\n firstTransformArg1 = argsArray[iFirstTransform][1],\n firstTransformArg2 = argsArray[iFirstTransform][2],\n firstTransformArg3 = argsArray[iFirstTransform][3];\n\n if (firstTransformArg1 === firstTransformArg2) {\n isSameImage = true;\n iTransform = iFirstTransform + 4;\n let iPIMXO = iFirstPIMXO + 4;\n for (let q = 1; q < count; q++, iTransform += 4, iPIMXO += 4) {\n transformArgs = argsArray[iTransform];\n if (\n argsArray[iPIMXO][0] !== firstPIMXOArg0 ||\n transformArgs[0] !== firstTransformArg0 ||\n transformArgs[1] !== firstTransformArg1 ||\n transformArgs[2] !== firstTransformArg2 ||\n transformArgs[3] !== firstTransformArg3\n ) {\n if (q < MIN_IMAGES_IN_MASKS_BLOCK) {\n isSameImage = false;\n } else {\n count = q;\n }\n break; // different image or transform\n }\n }\n }\n\n if (isSameImage) {\n count = Math.min(count, MAX_SAME_IMAGES_IN_MASKS_BLOCK);\n const positions = new Float32Array(count * 2);\n iTransform = iFirstTransform;\n for (let q = 0; q < count; q++, iTransform += 4) {\n transformArgs = argsArray[iTransform];\n positions[q << 1] = transformArgs[4];\n positions[(q << 1) + 1] = transformArgs[5];\n }\n\n // Replace queue items.\n fnArray.splice(iFirstSave, count * 4, OPS.paintImageMaskXObjectRepeat);\n argsArray.splice(iFirstSave, count * 4, [\n firstPIMXOArg0,\n firstTransformArg0,\n firstTransformArg1,\n firstTransformArg2,\n firstTransformArg3,\n positions,\n ]);\n } else {\n count = Math.min(count, MAX_IMAGES_IN_MASKS_BLOCK);\n const images = [];\n for (let q = 0; q < count; q++) {\n transformArgs = argsArray[iFirstTransform + (q << 2)];\n const maskParams = argsArray[iFirstPIMXO + (q << 2)][0];\n images.push({\n data: maskParams.data,\n width: maskParams.width,\n height: maskParams.height,\n interpolate: maskParams.interpolate,\n count: maskParams.count,\n transform: transformArgs,\n });\n }\n\n // Replace queue items.\n fnArray.splice(iFirstSave, count * 4, OPS.paintImageMaskXObjectGroup);\n argsArray.splice(iFirstSave, count * 4, [images]);\n }\n\n return iFirstSave + 1;\n }\n);\n\n// This replaces (save, transform, paintImageXObject, restore)+ sequences\n// with one paintImageXObjectRepeat operation, if the |transform| and\n// |paintImageXObjectRepeat| ops are appropriate.\naddState(\n InitialState,\n [OPS.save, OPS.transform, OPS.paintImageXObject, OPS.restore],\n function (context) {\n const argsArray = context.argsArray;\n const iFirstTransform = context.iCurr - 2;\n return (\n argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0\n );\n },\n function iterateImageGroup(context, i) {\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const iFirstSave = context.iCurr - 3;\n const pos = (i - iFirstSave) % 4;\n switch (pos) {\n case 0:\n return fnArray[i] === OPS.save;\n case 1:\n if (fnArray[i] !== OPS.transform) {\n return false;\n }\n const iFirstTransform = context.iCurr - 2;\n const firstTransformArg0 = argsArray[iFirstTransform][0];\n const firstTransformArg3 = argsArray[iFirstTransform][3];\n if (\n argsArray[i][0] !== firstTransformArg0 ||\n argsArray[i][1] !== 0 ||\n argsArray[i][2] !== 0 ||\n argsArray[i][3] !== firstTransformArg3\n ) {\n return false; // transforms don't match\n }\n return true;\n case 2:\n if (fnArray[i] !== OPS.paintImageXObject) {\n return false;\n }\n const iFirstPIXO = context.iCurr - 1;\n const firstPIXOArg0 = argsArray[iFirstPIXO][0];\n if (argsArray[i][0] !== firstPIXOArg0) {\n return false; // images don't match\n }\n return true;\n case 3:\n return fnArray[i] === OPS.restore;\n }\n throw new Error(`iterateImageGroup - invalid pos: ${pos}`);\n },\n function (context, i) {\n const MIN_IMAGES_IN_BLOCK = 3;\n const MAX_IMAGES_IN_BLOCK = 1000;\n\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const curr = context.iCurr;\n const iFirstSave = curr - 3;\n const iFirstTransform = curr - 2;\n const iFirstPIXO = curr - 1;\n const firstPIXOArg0 = argsArray[iFirstPIXO][0];\n const firstTransformArg0 = argsArray[iFirstTransform][0];\n const firstTransformArg3 = argsArray[iFirstTransform][3];\n\n // At this point, i is the index of the first op past the last valid\n // quartet.\n const count = Math.min(\n Math.floor((i - iFirstSave) / 4),\n MAX_IMAGES_IN_BLOCK\n );\n if (count < MIN_IMAGES_IN_BLOCK) {\n return i - ((i - iFirstSave) % 4);\n }\n\n // Extract the (x,y) positions from all of the matching transforms.\n const positions = new Float32Array(count * 2);\n let iTransform = iFirstTransform;\n for (let q = 0; q < count; q++, iTransform += 4) {\n const transformArgs = argsArray[iTransform];\n positions[q << 1] = transformArgs[4];\n positions[(q << 1) + 1] = transformArgs[5];\n }\n\n // Replace queue items.\n const args = [\n firstPIXOArg0,\n firstTransformArg0,\n firstTransformArg3,\n positions,\n ];\n fnArray.splice(iFirstSave, count * 4, OPS.paintImageXObjectRepeat);\n argsArray.splice(iFirstSave, count * 4, args);\n\n return iFirstSave + 1;\n }\n);\n\n// This replaces (beginText, setFont, setTextMatrix, showText, endText)+\n// sequences with (beginText, setFont, (setTextMatrix, showText)+, endText)+\n// sequences, if the font for each one is the same.\naddState(\n InitialState,\n [OPS.beginText, OPS.setFont, OPS.setTextMatrix, OPS.showText, OPS.endText],\n null,\n function iterateShowTextGroup(context, i) {\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const iFirstSave = context.iCurr - 4;\n const pos = (i - iFirstSave) % 5;\n switch (pos) {\n case 0:\n return fnArray[i] === OPS.beginText;\n case 1:\n return fnArray[i] === OPS.setFont;\n case 2:\n return fnArray[i] === OPS.setTextMatrix;\n case 3:\n if (fnArray[i] !== OPS.showText) {\n return false;\n }\n const iFirstSetFont = context.iCurr - 3;\n const firstSetFontArg0 = argsArray[iFirstSetFont][0];\n const firstSetFontArg1 = argsArray[iFirstSetFont][1];\n if (\n argsArray[i][0] !== firstSetFontArg0 ||\n argsArray[i][1] !== firstSetFontArg1\n ) {\n return false; // fonts don't match\n }\n return true;\n case 4:\n return fnArray[i] === OPS.endText;\n }\n throw new Error(`iterateShowTextGroup - invalid pos: ${pos}`);\n },\n function (context, i) {\n const MIN_CHARS_IN_BLOCK = 3;\n const MAX_CHARS_IN_BLOCK = 1000;\n\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const curr = context.iCurr;\n const iFirstBeginText = curr - 4;\n const iFirstSetFont = curr - 3;\n const iFirstSetTextMatrix = curr - 2;\n const iFirstShowText = curr - 1;\n const iFirstEndText = curr;\n const firstSetFontArg0 = argsArray[iFirstSetFont][0];\n const firstSetFontArg1 = argsArray[iFirstSetFont][1];\n\n // At this point, i is the index of the first op past the last valid\n // quintet.\n let count = Math.min(\n Math.floor((i - iFirstBeginText) / 5),\n MAX_CHARS_IN_BLOCK\n );\n if (count < MIN_CHARS_IN_BLOCK) {\n return i - ((i - iFirstBeginText) % 5);\n }\n\n // If the preceding quintet is (, setFont, setTextMatrix,\n // showText, endText), include that as well. (E.g. might be\n // |dependency|.)\n let iFirst = iFirstBeginText;\n if (\n iFirstBeginText >= 4 &&\n fnArray[iFirstBeginText - 4] === fnArray[iFirstSetFont] &&\n fnArray[iFirstBeginText - 3] === fnArray[iFirstSetTextMatrix] &&\n fnArray[iFirstBeginText - 2] === fnArray[iFirstShowText] &&\n fnArray[iFirstBeginText - 1] === fnArray[iFirstEndText] &&\n argsArray[iFirstBeginText - 4][0] === firstSetFontArg0 &&\n argsArray[iFirstBeginText - 4][1] === firstSetFontArg1\n ) {\n count++;\n iFirst -= 5;\n }\n\n // Remove (endText, beginText, setFont) trios.\n let iEndText = iFirst + 4;\n for (let q = 1; q < count; q++) {\n fnArray.splice(iEndText, 3);\n argsArray.splice(iEndText, 3);\n iEndText += 2;\n }\n\n return iEndText + 1;\n }\n);\n\nclass NullOptimizer {\n constructor(queue) {\n this.queue = queue;\n }\n\n _optimize() {}\n\n push(fn, args) {\n this.queue.fnArray.push(fn);\n this.queue.argsArray.push(args);\n this._optimize();\n }\n\n flush() {}\n\n reset() {}\n}\n\nclass QueueOptimizer extends NullOptimizer {\n constructor(queue) {\n super(queue);\n this.state = null;\n this.context = {\n iCurr: 0,\n fnArray: queue.fnArray,\n argsArray: queue.argsArray,\n };\n this.match = null;\n this.lastProcessed = 0;\n }\n\n _optimize() {\n // Process new fnArray item(s) chunk.\n const fnArray = this.queue.fnArray;\n let i = this.lastProcessed,\n ii = fnArray.length;\n let state = this.state;\n let match = this.match;\n if (!state && !match && i + 1 === ii && !InitialState[fnArray[i]]) {\n // Micro-optimization for the common case: last item is not\n // optimizable, just skipping it.\n this.lastProcessed = ii;\n return;\n }\n\n const context = this.context;\n while (i < ii) {\n if (match) {\n // Already find a block of potentially optimizable items, iterating...\n const iterate = (0, match.iterateFn)(context, i);\n if (iterate) {\n i++;\n continue;\n }\n // Found last items for the block, processing...\n i = (0, match.processFn)(context, i + 1);\n ii = fnArray.length;\n match = null;\n state = null;\n if (i >= ii) {\n break;\n }\n }\n // Find the potentially optimizable items.\n state = (state || InitialState)[fnArray[i]];\n if (!state || Array.isArray(state)) {\n i++;\n continue;\n }\n // Found a start of the block based on addState rules.\n context.iCurr = i;\n i++;\n if (state.checkFn && !(0, state.checkFn)(context)) {\n // Check failed, continue search...\n state = null;\n continue;\n }\n match = state;\n state = null;\n }\n this.state = state;\n this.match = match;\n this.lastProcessed = i;\n }\n\n flush() {\n while (this.match) {\n const length = this.queue.fnArray.length;\n this.lastProcessed = (0, this.match.processFn)(this.context, length);\n this.match = null;\n this.state = null;\n // Repeat optimization until all chunks are exhausted.\n this._optimize();\n }\n }\n\n reset() {\n this.state = null;\n this.match = null;\n this.lastProcessed = 0;\n }\n}\n\nclass OperatorList {\n static get CHUNK_SIZE() {\n return shadow(this, \"CHUNK_SIZE\", 1000);\n }\n\n // Close to chunk size.\n static get CHUNK_SIZE_ABOUT() {\n return shadow(this, \"CHUNK_SIZE_ABOUT\", this.CHUNK_SIZE - 5);\n }\n\n constructor(intent = 0, streamSink) {\n this._streamSink = streamSink;\n this.fnArray = [];\n this.argsArray = [];\n if (streamSink && !(intent & RenderingIntentFlag.OPLIST)) {\n this.optimizer = new QueueOptimizer(this);\n } else {\n this.optimizer = new NullOptimizer(this);\n }\n this.dependencies = new Set();\n this._totalLength = 0;\n this.weight = 0;\n this._resolved = streamSink ? null : Promise.resolve();\n }\n\n get length() {\n return this.argsArray.length;\n }\n\n get ready() {\n return this._resolved || this._streamSink.ready;\n }\n\n /**\n * @type {number} The total length of the entire operator list, since\n * `this.length === 0` after flushing.\n */\n get totalLength() {\n return this._totalLength + this.length;\n }\n\n addOp(fn, args) {\n this.optimizer.push(fn, args);\n this.weight++;\n if (this._streamSink) {\n if (this.weight >= OperatorList.CHUNK_SIZE) {\n this.flush();\n } else if (\n this.weight >= OperatorList.CHUNK_SIZE_ABOUT &&\n (fn === OPS.restore || fn === OPS.endText)\n ) {\n // Heuristic to flush on boundary of restore or endText.\n this.flush();\n }\n }\n }\n\n addImageOps(fn, args, optionalContent) {\n if (optionalContent !== undefined) {\n this.addOp(OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n }\n\n this.addOp(fn, args);\n\n if (optionalContent !== undefined) {\n this.addOp(OPS.endMarkedContent, []);\n }\n }\n\n addDependency(dependency) {\n if (this.dependencies.has(dependency)) {\n return;\n }\n this.dependencies.add(dependency);\n this.addOp(OPS.dependency, [dependency]);\n }\n\n addDependencies(dependencies) {\n for (const dependency of dependencies) {\n this.addDependency(dependency);\n }\n }\n\n addOpList(opList) {\n if (!(opList instanceof OperatorList)) {\n warn('addOpList - ignoring invalid \"opList\" parameter.');\n return;\n }\n for (const dependency of opList.dependencies) {\n this.dependencies.add(dependency);\n }\n for (let i = 0, ii = opList.length; i < ii; i++) {\n this.addOp(opList.fnArray[i], opList.argsArray[i]);\n }\n }\n\n getIR() {\n return {\n fnArray: this.fnArray,\n argsArray: this.argsArray,\n length: this.length,\n };\n }\n\n get _transfers() {\n const transfers = [];\n const { fnArray, argsArray, length } = this;\n for (let i = 0; i < length; i++) {\n switch (fnArray[i]) {\n case OPS.paintInlineImageXObject:\n case OPS.paintInlineImageXObjectGroup:\n case OPS.paintImageMaskXObject:\n const arg = argsArray[i][0]; // First parameter in imgData.\n if (\n !arg.cached &&\n arg.data &&\n arg.data.buffer instanceof ArrayBuffer\n ) {\n transfers.push(arg.data.buffer);\n }\n break;\n }\n }\n return transfers;\n }\n\n flush(lastChunk = false) {\n this.optimizer.flush();\n const length = this.length;\n this._totalLength += length;\n\n this._streamSink.enqueue(\n {\n fnArray: this.fnArray,\n argsArray: this.argsArray,\n lastChunk,\n length,\n },\n 1,\n this._transfers\n );\n\n this.dependencies.clear();\n this.fnArray.length = 0;\n this.argsArray.length = 0;\n this.weight = 0;\n this.optimizer.reset();\n }\n}\n\nexport { OperatorList };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n FeatureTest,\n FormatError,\n ImageKind,\n info,\n warn,\n} from \"../shared/util.js\";\nimport { applyMaskImageData } from \"../shared/image_utils.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { JpegStream } from \"./jpeg_stream.js\";\nimport { JpxImage } from \"./jpx.js\";\nimport { Name } from \"./primitives.js\";\n\n/**\n * Decode and clamp a value. The formula is different from the spec because we\n * don't decode to float range [0,1], we decode it in the [0,max] range.\n */\nfunction decodeAndClamp(value, addend, coefficient, max) {\n value = addend + value * coefficient;\n // Clamp the value to the range\n if (value < 0) {\n value = 0;\n } else if (value > max) {\n value = max;\n }\n return value;\n}\n\n/**\n * Resizes an image mask with 1 component.\n * @param {TypedArray} src - The source buffer.\n * @param {number} bpc - Number of bits per component.\n * @param {number} w1 - Original width.\n * @param {number} h1 - Original height.\n * @param {number} w2 - New width.\n * @param {number} h2 - New height.\n * @returns {TypedArray} The resized image mask buffer.\n */\nfunction resizeImageMask(src, bpc, w1, h1, w2, h2) {\n const length = w2 * h2;\n let dest;\n if (bpc <= 8) {\n dest = new Uint8Array(length);\n } else if (bpc <= 16) {\n dest = new Uint16Array(length);\n } else {\n dest = new Uint32Array(length);\n }\n const xRatio = w1 / w2;\n const yRatio = h1 / h2;\n let i,\n j,\n py,\n newIndex = 0,\n oldIndex;\n const xScaled = new Uint16Array(w2);\n const w1Scanline = w1;\n\n for (i = 0; i < w2; i++) {\n xScaled[i] = Math.floor(i * xRatio);\n }\n for (i = 0; i < h2; i++) {\n py = Math.floor(i * yRatio) * w1Scanline;\n for (j = 0; j < w2; j++) {\n oldIndex = py + xScaled[j];\n dest[newIndex++] = src[oldIndex];\n }\n }\n return dest;\n}\n\nclass PDFImage {\n constructor({\n xref,\n res,\n image,\n isInline = false,\n smask = null,\n mask = null,\n isMask = false,\n pdfFunctionFactory,\n localColorSpaceCache,\n }) {\n this.image = image;\n const dict = image.dict;\n\n const filter = dict.get(\"F\", \"Filter\");\n if (filter instanceof Name) {\n switch (filter.name) {\n case \"JPXDecode\":\n const jpxImage = new JpxImage();\n jpxImage.parseImageProperties(image.stream);\n image.stream.reset();\n\n image.width = jpxImage.width;\n image.height = jpxImage.height;\n image.bitsPerComponent = jpxImage.bitsPerComponent;\n image.numComps = jpxImage.componentsCount;\n break;\n case \"JBIG2Decode\":\n image.bitsPerComponent = 1;\n image.numComps = 1;\n break;\n }\n }\n // TODO cache rendered images?\n\n let width = dict.get(\"W\", \"Width\");\n let height = dict.get(\"H\", \"Height\");\n\n if (\n Number.isInteger(image.width) &&\n image.width > 0 &&\n Number.isInteger(image.height) &&\n image.height > 0 &&\n (image.width !== width || image.height !== height)\n ) {\n warn(\n \"PDFImage - using the Width/Height of the image data, \" +\n \"rather than the image dictionary.\"\n );\n width = image.width;\n height = image.height;\n }\n if (width < 1 || height < 1) {\n throw new FormatError(\n `Invalid image width: ${width} or height: ${height}`\n );\n }\n this.width = width;\n this.height = height;\n\n this.interpolate = dict.get(\"I\", \"Interpolate\");\n this.imageMask = dict.get(\"IM\", \"ImageMask\") || false;\n this.matte = dict.get(\"Matte\") || false;\n\n let bitsPerComponent = image.bitsPerComponent;\n if (!bitsPerComponent) {\n bitsPerComponent = dict.get(\"BPC\", \"BitsPerComponent\");\n if (!bitsPerComponent) {\n if (this.imageMask) {\n bitsPerComponent = 1;\n } else {\n throw new FormatError(\n `Bits per component missing in image: ${this.imageMask}`\n );\n }\n }\n }\n this.bpc = bitsPerComponent;\n\n if (!this.imageMask) {\n let colorSpace = dict.getRaw(\"CS\") || dict.getRaw(\"ColorSpace\");\n if (!colorSpace) {\n info(\"JPX images (which do not require color spaces)\");\n switch (image.numComps) {\n case 1:\n colorSpace = Name.get(\"DeviceGray\");\n break;\n case 3:\n colorSpace = Name.get(\"DeviceRGB\");\n break;\n case 4:\n colorSpace = Name.get(\"DeviceCMYK\");\n break;\n default:\n throw new Error(\n `JPX images with ${image.numComps} color components not supported.`\n );\n }\n }\n this.colorSpace = ColorSpace.parse({\n cs: colorSpace,\n xref,\n resources: isInline ? res : null,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n this.numComps = this.colorSpace.numComps;\n }\n\n this.decode = dict.getArray(\"D\", \"Decode\");\n this.needsDecode = false;\n if (\n this.decode &&\n ((this.colorSpace &&\n !this.colorSpace.isDefaultDecode(this.decode, bitsPerComponent)) ||\n (isMask &&\n !ColorSpace.isDefaultDecode(this.decode, /* numComps = */ 1)))\n ) {\n this.needsDecode = true;\n // Do some preprocessing to avoid more math.\n const max = (1 << bitsPerComponent) - 1;\n this.decodeCoefficients = [];\n this.decodeAddends = [];\n const isIndexed = this.colorSpace && this.colorSpace.name === \"Indexed\";\n for (let i = 0, j = 0; i < this.decode.length; i += 2, ++j) {\n const dmin = this.decode[i];\n const dmax = this.decode[i + 1];\n this.decodeCoefficients[j] = isIndexed\n ? (dmax - dmin) / max\n : dmax - dmin;\n this.decodeAddends[j] = isIndexed ? dmin : max * dmin;\n }\n }\n\n if (smask) {\n this.smask = new PDFImage({\n xref,\n res,\n image: smask,\n isInline,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n } else if (mask) {\n if (mask instanceof BaseStream) {\n const maskDict = mask.dict,\n imageMask = maskDict.get(\"IM\", \"ImageMask\");\n if (!imageMask) {\n warn(\"Ignoring /Mask in image without /ImageMask.\");\n } else {\n this.mask = new PDFImage({\n xref,\n res,\n image: mask,\n isInline,\n isMask: true,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n }\n } else {\n // Color key mask (just an array).\n this.mask = mask;\n }\n }\n }\n\n /**\n * Handles processing of image data and returns the Promise that is resolved\n * with a PDFImage when the image is ready to be used.\n */\n static async buildImage({\n xref,\n res,\n image,\n isInline = false,\n pdfFunctionFactory,\n localColorSpaceCache,\n }) {\n const imageData = image;\n let smaskData = null;\n let maskData = null;\n\n const smask = image.dict.get(\"SMask\");\n const mask = image.dict.get(\"Mask\");\n\n if (smask) {\n if (smask instanceof BaseStream) {\n smaskData = smask;\n } else {\n warn(\"Unsupported /SMask format.\");\n }\n } else if (mask) {\n if (mask instanceof BaseStream || Array.isArray(mask)) {\n maskData = mask;\n } else {\n warn(\"Unsupported /Mask format.\");\n }\n }\n\n return new PDFImage({\n xref,\n res,\n image: imageData,\n isInline,\n smask: smaskData,\n mask: maskData,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n }\n\n static createRawMask({\n imgArray,\n width,\n height,\n imageIsFromDecodeStream,\n inverseDecode,\n interpolate,\n }) {\n // |imgArray| might not contain full data for every pixel of the mask, so\n // we need to distinguish between |computedLength| and |actualLength|.\n // In particular, if inverseDecode is true, then the array we return must\n // have a length of |computedLength|.\n\n const computedLength = ((width + 7) >> 3) * height;\n const actualLength = imgArray.byteLength;\n const haveFullData = computedLength === actualLength;\n let data, i;\n\n if (imageIsFromDecodeStream && (!inverseDecode || haveFullData)) {\n // imgArray came from a DecodeStream and its data is in an appropriate\n // form, so we can just transfer it.\n data = imgArray;\n } else if (!inverseDecode) {\n data = new Uint8Array(imgArray);\n } else {\n data = new Uint8Array(computedLength);\n data.set(imgArray);\n data.fill(0xff, actualLength);\n }\n\n // If necessary, invert the original mask data (but not any extra we might\n // have added above). It's safe to modify the array -- whether it's the\n // original or a copy, we're about to transfer it anyway, so nothing else\n // in this thread can be relying on its contents.\n if (inverseDecode) {\n for (i = 0; i < actualLength; i++) {\n data[i] ^= 0xff;\n }\n }\n\n return { data, width, height, interpolate };\n }\n\n static createMask({\n imgArray,\n width,\n height,\n imageIsFromDecodeStream,\n inverseDecode,\n interpolate,\n }) {\n const isSingleOpaquePixel =\n width === 1 &&\n height === 1 &&\n inverseDecode === (imgArray.length === 0 || !!(imgArray[0] & 128));\n\n if (isSingleOpaquePixel) {\n return { isSingleOpaquePixel };\n }\n\n if (FeatureTest.isOffscreenCanvasSupported) {\n const canvas = new OffscreenCanvas(width, height);\n const ctx = canvas.getContext(\"2d\");\n const imgData = ctx.createImageData(width, height);\n applyMaskImageData({\n src: imgArray,\n dest: imgData.data,\n width,\n height,\n inverseDecode,\n });\n\n ctx.putImageData(imgData, 0, 0);\n const bitmap = canvas.transferToImageBitmap();\n\n return {\n data: null,\n width,\n height,\n interpolate,\n bitmap,\n };\n }\n\n // Get the data almost as they're and they'll be decoded\n // just before being drawn.\n return this.createRawMask({\n imgArray,\n width,\n height,\n inverseDecode,\n imageIsFromDecodeStream,\n interpolate,\n });\n }\n\n get drawWidth() {\n return Math.max(\n this.width,\n (this.smask && this.smask.width) || 0,\n (this.mask && this.mask.width) || 0\n );\n }\n\n get drawHeight() {\n return Math.max(\n this.height,\n (this.smask && this.smask.height) || 0,\n (this.mask && this.mask.height) || 0\n );\n }\n\n decodeBuffer(buffer) {\n const bpc = this.bpc;\n const numComps = this.numComps;\n\n const decodeAddends = this.decodeAddends;\n const decodeCoefficients = this.decodeCoefficients;\n const max = (1 << bpc) - 1;\n let i, ii;\n\n if (bpc === 1) {\n // If the buffer needed decode that means it just needs to be inverted.\n for (i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] = +!buffer[i];\n }\n return;\n }\n let index = 0;\n for (i = 0, ii = this.width * this.height; i < ii; i++) {\n for (let j = 0; j < numComps; j++) {\n buffer[index] = decodeAndClamp(\n buffer[index],\n decodeAddends[j],\n decodeCoefficients[j],\n max\n );\n index++;\n }\n }\n }\n\n getComponents(buffer) {\n const bpc = this.bpc;\n\n // This image doesn't require any extra work.\n if (bpc === 8) {\n return buffer;\n }\n\n const width = this.width;\n const height = this.height;\n const numComps = this.numComps;\n\n const length = width * height * numComps;\n let bufferPos = 0;\n let output;\n if (bpc <= 8) {\n output = new Uint8Array(length);\n } else if (bpc <= 16) {\n output = new Uint16Array(length);\n } else {\n output = new Uint32Array(length);\n }\n const rowComps = width * numComps;\n\n const max = (1 << bpc) - 1;\n let i = 0,\n ii,\n buf;\n\n if (bpc === 1) {\n // Optimization for reading 1 bpc images.\n let mask, loop1End, loop2End;\n for (let j = 0; j < height; j++) {\n loop1End = i + (rowComps & ~7);\n loop2End = i + rowComps;\n\n // unroll loop for all full bytes\n while (i < loop1End) {\n buf = buffer[bufferPos++];\n output[i] = (buf >> 7) & 1;\n output[i + 1] = (buf >> 6) & 1;\n output[i + 2] = (buf >> 5) & 1;\n output[i + 3] = (buf >> 4) & 1;\n output[i + 4] = (buf >> 3) & 1;\n output[i + 5] = (buf >> 2) & 1;\n output[i + 6] = (buf >> 1) & 1;\n output[i + 7] = buf & 1;\n i += 8;\n }\n\n // handle remaining bits\n if (i < loop2End) {\n buf = buffer[bufferPos++];\n mask = 128;\n while (i < loop2End) {\n output[i++] = +!!(buf & mask);\n mask >>= 1;\n }\n }\n }\n } else {\n // The general case that handles all other bpc values.\n let bits = 0;\n buf = 0;\n for (i = 0, ii = length; i < ii; ++i) {\n if (i % rowComps === 0) {\n buf = 0;\n bits = 0;\n }\n\n while (bits < bpc) {\n buf = (buf << 8) | buffer[bufferPos++];\n bits += 8;\n }\n\n const remainingBits = bits - bpc;\n let value = buf >> remainingBits;\n if (value < 0) {\n value = 0;\n } else if (value > max) {\n value = max;\n }\n output[i] = value;\n buf &= (1 << remainingBits) - 1;\n bits = remainingBits;\n }\n }\n return output;\n }\n\n fillOpacity(rgbaBuf, width, height, actualHeight, image) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n rgbaBuf instanceof Uint8ClampedArray,\n 'PDFImage.fillOpacity: Unsupported \"rgbaBuf\" type.'\n );\n }\n const smask = this.smask;\n const mask = this.mask;\n let alphaBuf, sw, sh, i, ii, j;\n\n if (smask) {\n sw = smask.width;\n sh = smask.height;\n alphaBuf = new Uint8ClampedArray(sw * sh);\n smask.fillGrayBuffer(alphaBuf);\n if (sw !== width || sh !== height) {\n alphaBuf = resizeImageMask(alphaBuf, smask.bpc, sw, sh, width, height);\n }\n } else if (mask) {\n if (mask instanceof PDFImage) {\n sw = mask.width;\n sh = mask.height;\n alphaBuf = new Uint8ClampedArray(sw * sh);\n mask.numComps = 1;\n mask.fillGrayBuffer(alphaBuf);\n\n // Need to invert values in rgbaBuf\n for (i = 0, ii = sw * sh; i < ii; ++i) {\n alphaBuf[i] = 255 - alphaBuf[i];\n }\n\n if (sw !== width || sh !== height) {\n alphaBuf = resizeImageMask(alphaBuf, mask.bpc, sw, sh, width, height);\n }\n } else if (Array.isArray(mask)) {\n // Color key mask: if any of the components are outside the range\n // then they should be painted.\n alphaBuf = new Uint8ClampedArray(width * height);\n const numComps = this.numComps;\n for (i = 0, ii = width * height; i < ii; ++i) {\n let opacity = 0;\n const imageOffset = i * numComps;\n for (j = 0; j < numComps; ++j) {\n const color = image[imageOffset + j];\n const maskOffset = j * 2;\n if (color < mask[maskOffset] || color > mask[maskOffset + 1]) {\n opacity = 255;\n break;\n }\n }\n alphaBuf[i] = opacity;\n }\n } else {\n throw new FormatError(\"Unknown mask format.\");\n }\n }\n\n if (alphaBuf) {\n for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n rgbaBuf[j] = alphaBuf[i];\n }\n } else {\n // No mask.\n for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n rgbaBuf[j] = 255;\n }\n }\n }\n\n undoPreblend(buffer, width, height) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n buffer instanceof Uint8ClampedArray,\n 'PDFImage.undoPreblend: Unsupported \"buffer\" type.'\n );\n }\n const matte = this.smask && this.smask.matte;\n if (!matte) {\n return;\n }\n const matteRgb = this.colorSpace.getRgb(matte, 0);\n const matteR = matteRgb[0];\n const matteG = matteRgb[1];\n const matteB = matteRgb[2];\n const length = width * height * 4;\n for (let i = 0; i < length; i += 4) {\n const alpha = buffer[i + 3];\n if (alpha === 0) {\n // according formula we have to get Infinity in all components\n // making it white (typical paper color) should be okay\n buffer[i] = 255;\n buffer[i + 1] = 255;\n buffer[i + 2] = 255;\n continue;\n }\n const k = 255 / alpha;\n buffer[i] = (buffer[i] - matteR) * k + matteR;\n buffer[i + 1] = (buffer[i + 1] - matteG) * k + matteG;\n buffer[i + 2] = (buffer[i + 2] - matteB) * k + matteB;\n }\n }\n\n createImageData(forceRGBA = false) {\n const drawWidth = this.drawWidth;\n const drawHeight = this.drawHeight;\n const imgData = {\n width: drawWidth,\n height: drawHeight,\n interpolate: this.interpolate,\n kind: 0,\n data: null,\n // Other fields are filled in below.\n };\n\n const numComps = this.numComps;\n const originalWidth = this.width;\n const originalHeight = this.height;\n const bpc = this.bpc;\n\n // Rows start at byte boundary.\n const rowBytes = (originalWidth * numComps * bpc + 7) >> 3;\n\n if (!forceRGBA) {\n // If it is a 1-bit-per-pixel grayscale (i.e. black-and-white) image\n // without any complications, we pass a same-sized copy to the main\n // thread rather than expanding by 32x to RGBA form. This saves *lots*\n // of memory for many scanned documents. It's also much faster.\n //\n // Similarly, if it is a 24-bit-per pixel RGB image without any\n // complications, we avoid expanding by 1.333x to RGBA form.\n let kind;\n if (this.colorSpace.name === \"DeviceGray\" && bpc === 1) {\n kind = ImageKind.GRAYSCALE_1BPP;\n } else if (\n this.colorSpace.name === \"DeviceRGB\" &&\n bpc === 8 &&\n !this.needsDecode\n ) {\n kind = ImageKind.RGB_24BPP;\n }\n if (\n kind &&\n !this.smask &&\n !this.mask &&\n drawWidth === originalWidth &&\n drawHeight === originalHeight\n ) {\n imgData.kind = kind;\n imgData.data = this.getImageBytes(originalHeight * rowBytes, {});\n\n if (this.needsDecode) {\n // Invert the buffer (which must be grayscale if we reached here).\n assert(\n kind === ImageKind.GRAYSCALE_1BPP,\n \"PDFImage.createImageData: The image must be grayscale.\"\n );\n const buffer = imgData.data;\n for (let i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] ^= 0xff;\n }\n }\n return imgData;\n }\n if (this.image instanceof JpegStream && !this.smask && !this.mask) {\n let imageLength = originalHeight * rowBytes;\n switch (this.colorSpace.name) {\n case \"DeviceGray\":\n // Avoid truncating the image, since `JpegImage.getData`\n // will expand the image data when `forceRGB === true`.\n imageLength *= 3;\n /* falls through */\n case \"DeviceRGB\":\n case \"DeviceCMYK\":\n imgData.kind = ImageKind.RGB_24BPP;\n imgData.data = this.getImageBytes(imageLength, {\n drawWidth,\n drawHeight,\n forceRGB: true,\n });\n return imgData;\n }\n }\n }\n\n const imgArray = this.getImageBytes(originalHeight * rowBytes, {\n internal: true,\n });\n // imgArray can be incomplete (e.g. after CCITT fax encoding).\n const actualHeight =\n 0 | (((imgArray.length / rowBytes) * drawHeight) / originalHeight);\n\n const comps = this.getComponents(imgArray);\n\n // If opacity data is present, use RGBA_32BPP form. Otherwise, use the\n // more compact RGB_24BPP form if allowable.\n let alpha01, maybeUndoPreblend;\n if (!forceRGBA && !this.smask && !this.mask) {\n imgData.kind = ImageKind.RGB_24BPP;\n imgData.data = new Uint8ClampedArray(drawWidth * drawHeight * 3);\n alpha01 = 0;\n maybeUndoPreblend = false;\n } else {\n imgData.kind = ImageKind.RGBA_32BPP;\n imgData.data = new Uint8ClampedArray(drawWidth * drawHeight * 4);\n alpha01 = 1;\n maybeUndoPreblend = true;\n\n // Color key masking (opacity) must be performed before decoding.\n this.fillOpacity(\n imgData.data,\n drawWidth,\n drawHeight,\n actualHeight,\n comps\n );\n }\n\n if (this.needsDecode) {\n this.decodeBuffer(comps);\n }\n this.colorSpace.fillRgb(\n imgData.data,\n originalWidth,\n originalHeight,\n drawWidth,\n drawHeight,\n actualHeight,\n bpc,\n comps,\n alpha01\n );\n if (maybeUndoPreblend) {\n this.undoPreblend(imgData.data, drawWidth, actualHeight);\n }\n\n return imgData;\n }\n\n fillGrayBuffer(buffer) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n buffer instanceof Uint8ClampedArray,\n 'PDFImage.fillGrayBuffer: Unsupported \"buffer\" type.'\n );\n }\n const numComps = this.numComps;\n if (numComps !== 1) {\n throw new FormatError(\n `Reading gray scale from a color image: ${numComps}`\n );\n }\n\n const width = this.width;\n const height = this.height;\n const bpc = this.bpc;\n\n // rows start at byte boundary\n const rowBytes = (width * numComps * bpc + 7) >> 3;\n const imgArray = this.getImageBytes(height * rowBytes, { internal: true });\n\n const comps = this.getComponents(imgArray);\n let i, length;\n\n if (bpc === 1) {\n // inline decoding (= inversion) for 1 bpc images\n length = width * height;\n if (this.needsDecode) {\n // invert and scale to {0, 255}\n for (i = 0; i < length; ++i) {\n buffer[i] = (comps[i] - 1) & 255;\n }\n } else {\n // scale to {0, 255}\n for (i = 0; i < length; ++i) {\n buffer[i] = -comps[i] & 255;\n }\n }\n return;\n }\n\n if (this.needsDecode) {\n this.decodeBuffer(comps);\n }\n length = width * height;\n // we aren't using a colorspace so we need to scale the value\n const scale = 255 / ((1 << bpc) - 1);\n for (i = 0; i < length; ++i) {\n buffer[i] = scale * comps[i];\n }\n }\n\n getImageBytes(\n length,\n { drawWidth, drawHeight, forceRGB = false, internal = false }\n ) {\n this.image.reset();\n this.image.drawWidth = drawWidth || this.width;\n this.image.drawHeight = drawHeight || this.height;\n this.image.forceRGB = !!forceRGB;\n const imageBytes = this.image.getBytes(length);\n\n // If imageBytes came from a DecodeStream, we're safe to transfer it\n // (and thus detach its underlying buffer) because it will constitute\n // the entire DecodeStream's data. But if it came from a Stream, we\n // need to copy it because it'll only be a portion of the Stream's\n // data, and the rest will be read later on.\n if (internal || this.image instanceof DecodeStream) {\n return imageBytes;\n }\n assert(\n imageBytes instanceof Uint8Array,\n 'PDFImage.getImageBytes: Unsupported \"imageBytes\" type.'\n );\n return new Uint8Array(imageBytes);\n }\n}\n\nexport { PDFImage };\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FeatureTest } from \"./util.js\";\n\nfunction applyMaskImageData({\n src,\n srcPos = 0,\n dest,\n destPos = 0,\n width,\n height,\n inverseDecode = false,\n}) {\n const opaque = FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n const [zeroMapping, oneMapping] = !inverseDecode ? [opaque, 0] : [0, opaque];\n const widthInSource = width >> 3;\n const widthRemainder = width & 7;\n const srcLength = src.length;\n dest = new Uint32Array(dest.buffer);\n\n for (let i = 0; i < height; i++) {\n for (const max = srcPos + widthInSource; srcPos < max; srcPos++) {\n const elem = srcPos < srcLength ? src[srcPos] : 255;\n dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping;\n }\n if (widthRemainder === 0) {\n continue;\n }\n const elem = srcPos < srcLength ? src[srcPos++] : 255;\n for (let j = 0; j < widthRemainder; j++) {\n dest[destPos++] = elem & (1 << (7 - j)) ? oneMapping : zeroMapping;\n }\n }\n\n return { srcPos, destPos };\n}\n\nexport { applyMaskImageData };\n","import {\n OPS, Util, IDENTITY_MATRIX\n} from '../shared/util';\nimport {\n StateManager,\n TextState\n} from \"./evaluator\";\nimport {isDict} from \"./primitives\";\n\nvar BoundingBoxesCalculator = (function PartialEvaluatorClosure() {\n function BoundingBoxesCalculator(ignoreCalculations) {\n this.textStateManager = new StateManager(new TextState());\n this.graphicsStateManager = new StateManager(new GraphicsState());\n this.clipping = false;\n this.boundingBoxesStack = new NoMCIDBoundingBoxStack();\n this.boundingBoxes = {};\n this.ignoreCalculations = ignoreCalculations;\n this.operationArray = [];\n this.operationIndex = -1;\n }\n\n BoundingBoxesCalculator.prototype = {\n // Get Top points of rectangle\n // rectangle corners ABCD (clockwise starting with left bottom corner)\n // rectangle base AB: A(x0, y0), B(x1, y1)\n // rectangle height h\n // return CD\n getTopPoints: function BoundingBoxesCalculator_getTopPoints(x0, y0, x1, y1, h) {\n let l = Math.sqrt(Math.pow(x1 - x0, 2) + Math.pow(y1 - y0, 2)); //base length\n if (l === 0) {\n return [x1 + h, y1 + h, x0 + h, y0 + h];\n }\n\n let e = [(x1 - x0) / l, (y1 - y0) / l]; //get unit vector for line connecting A and B\n\n let rotated_e = [-e[1], e[0]]; //rotate unit vector by 90 deg to the left\n let result_vector = [rotated_e[0] * h, rotated_e[1] * h]; //scale unit vactor\n\n return [x1 + result_vector[0], y1 + result_vector[1], x0 + result_vector[0], y0 + result_vector[1]];\n },\n\n getTextBoundingBox: function BoundingBoxesCalculator_getTextBoundingBox(glyphs) {\n let tx = 0;\n let ty = 0;\n //Save previous x value to take it into account while calculating width of marked content\n\n let ctm = this.graphicsStateManager.state.ctm;\n\n let descent = (this.textStateManager.state.font.descent || 0) * this.textStateManager.state.fontSize;\n let ascent = (this.textStateManager.state.font.ascent || 1) * this.textStateManager.state.fontSize;\n let rise = this.textStateManager.state.textRise * this.textStateManager.state.fontSize;\n\n let tx0, ty0, shift, height;\n if (!this.textStateManager.state.font.vertical) {\n //Left Bottom point of text bbox\n //Save before text matrix will be changed with going through glyphs\n [tx0, ty0] = Util.applyTransform([0, descent + rise], this.textStateManager.state.textMatrix);\n //Calculate transformed height and shift to place whole glyph inside of bbox\n shift = [tx0 - this.textStateManager.state.textMatrix[4], ty0 - this.textStateManager.state.textMatrix[5]];\n height = Util.applyTransform([0, ascent - descent], this.textStateManager.state.textMatrix); \n } else {\n [tx0, ty0] = Util.applyTransform([-this.textStateManager.state.fontSize / 2, rise], this.textStateManager.state.textMatrix);\n shift = [tx0 - this.textStateManager.state.textMatrix[4], ty0 - this.textStateManager.state.textMatrix[5]];\n height = Util.applyTransform([ascent - descent, 0], this.textStateManager.state.textMatrix); \n }\n height[0] -= this.textStateManager.state.textMatrix[4];\n height[1] -= this.textStateManager.state.textMatrix[5];\n height = Math.sqrt(height[0] * height[0] + height[1] * height[1]);\n height *= (this.textStateManager.state.textMatrix[0] * this.textStateManager.state.textMatrix[3] < 0) ? -1 : 1;\n\n let glyphsSize = [];\n for (let i = 0; i < glyphs.length; i++) {\n let glyph = glyphs[i];\n if (typeof glyph === \"number\") {\n if (this.textStateManager.state.font.vertical) {\n ty = -glyph / 1000 * this.textStateManager.state.fontSize * this.textStateManager.state.textHScale;\n } else {\n tx = -glyph / 1000 * this.textStateManager.state.fontSize * this.textStateManager.state.textHScale;\n }\n } else {\n let glyphWidth = null;\n if (this.textStateManager.state.font.vertical && glyph.vmetric) {\n glyphWidth = glyph.vmetric[0];\n } else {\n glyphWidth = glyph.width;\n }\n if (!this.textStateManager.state.font.vertical) {\n let w0 = glyphWidth * (this.textStateManager.state.fontMatrix ? this.textStateManager.state.fontMatrix[0] : 1 / 1000);\n tx = (w0 * this.textStateManager.state.fontSize + this.textStateManager.state.charSpacing + (glyph.isSpace ? this.textStateManager.state.wordSpacing : 0)) *\n this.textStateManager.state.textHScale;\n } else {\n let w1 = glyphWidth * (this.textStateManager.state.fontMatrix ? this.textStateManager.state.fontMatrix[0] : 1 / 1000);\n ty = w1 * this.textStateManager.state.fontSize - this.textStateManager.state.charSpacing - (glyph.isSpace ? this.textStateManager.state.wordSpacing : 0);\n }\n }\n let [x, y] = [this.textStateManager.state.textMatrix[4] + shift[0], this.textStateManager.state.textMatrix[5] + shift[1]];\n this.textStateManager.state.translateTextMatrix(tx, -ty);\n if (typeof glyph !== \"number\") {\n glyphsSize.push([x, y, this.textStateManager.state.textMatrix[4] + shift[0], this.textStateManager.state.textMatrix[5] + shift[1]]);\n }\n }\n\n //Right Bottom point is in text matrix after going through glyphs\n let [tx1, ty1] = [this.textStateManager.state.textMatrix[4] + shift[0], this.textStateManager.state.textMatrix[5] + shift[1]];\n //Top point can be calculated from base and height\n let [tx2, ty2, tx3, ty3] = this.getTopPoints(tx0, ty0, tx1, ty1, height);\n glyphsSize = glyphsSize.map(glyphSize => [...glyphSize, ...this.getTopPoints(...glyphSize, height)])\n\n //Apply transform matrix to bbox\n let [x0, y0] = Util.applyTransform([tx0, ty0], ctm);\n let [x1, y1] = Util.applyTransform([tx1, ty1], ctm);\n let [x2, y2] = Util.applyTransform([tx2, ty2], ctm);\n let [x3, y3] = Util.applyTransform([tx3, ty3], ctm);\n glyphsSize = glyphsSize.map(glyphSize => [\n ...Util.applyTransform([glyphSize[0], glyphSize[1]], ctm),\n ...Util.applyTransform([glyphSize[2], glyphSize[3]], ctm),\n ...Util.applyTransform([glyphSize[4], glyphSize[5]], ctm),\n ...Util.applyTransform([glyphSize[6], glyphSize[7]], ctm),\n ]);\n let minX, maxX, minY, maxY;\n let glyphsPos = [];\n glyphsSize.forEach(glyphSize => {\n let xPoints = [...glyphSize].filter((point, index) => index % 2 === 0);\n let yPoints = [...glyphSize].filter((point, index) => index % 2 !== 0);\n minX = Math.min(...xPoints);\n maxX = Math.max(...xPoints);\n\n minY = Math.min(...yPoints);\n maxY = Math.max(...yPoints);\n glyphsPos.push([minX, minY, maxX - minX, maxY - minY]);\n })\n this.operationArray[this.operationIndex] = glyphsPos;\n\n minX = Math.min(x0, x1, x2, x3);\n maxX = Math.max(x0, x1, x2, x3);\n\n minY = Math.min(y0, y1, y2, y3);\n maxY = Math.max(y0, y1, y2, y3);\n\n this.boundingBoxesStack.save(minX, minY, maxX - minX, maxY - minY);\n },\n\n getClippingGraphicsBoundingBox: function BoundingBoxesCalculator_getClippingGraphicsBoundingBox() {\n let state = this.graphicsStateManager.state;\n\n if (state.clip === null) {\n return {\n x: state.x,\n y: state.y,\n w: state.w,\n h: state.h\n };\n }\n\n\n if ((state.x < state.clip.x && state.x + state.w < state.clip.x) ||\n (state.x > state.clip.x + state.clip.w && state.x + state.w > state.clip.x + state.clip.w) ||\n (state.y < state.clip.y && state.y + state.h < state.clip.y) ||\n (state.y > state.clip.y + state.clip.h && state.y + state.h > state.clip.y + state.clip.h)) {\n return null;\n }\n\n return {\n x: Math.max(state.x, state.clip.x),\n y: Math.max(state.y, state.clip.y),\n w: Math.min(state.x + state.w, state.clip.x + state.clip.w) - Math.max(state.x, state.clip.x),\n h: Math.min(state.y + state.h, state.clip.y + state.clip.h) - Math.max(state.y, state.clip.y)\n };\n },\n\n saveGraphicsBoundingBox: function saveGraphicsBoundingBox() {\n let clippingBBox = this.getClippingGraphicsBoundingBox();\n if (clippingBBox === null) {\n return;\n }\n\n let x = clippingBBox.x;\n let y = clippingBBox.y;\n let w = clippingBBox.w;\n let h = clippingBBox.h;\n\n this.graphicsStateManager.state.x = null;\n this.graphicsStateManager.state.y = null;\n this.graphicsStateManager.state.w = null;\n this.graphicsStateManager.state.h = null;\n\n this.boundingBoxesStack.save(x, y, w, h);\n },\n\n getRectBoundingBox: function getRectBoundingBox(x, y, w, h) {\n let state = this.graphicsStateManager.state;\n\n let [x1, y1] = Util.applyTransform([x, y], state.ctm);\n let [x2, y2] = Util.applyTransform([x + w, y], state.ctm);\n let [x3, y3] = Util.applyTransform([x, y + h], state.ctm);\n let [x4, y4] = Util.applyTransform([x + w, y + h], state.ctm);\n\n x = Math.min(x1, x2, x3, x4);\n y = Math.min(y1, y2, y3, y4);\n w = Math.max(x1, x2, x3, x4) - x;\n h = Math.max(y1, y2, y3, y4) - y;\n\n if (state.w === null) {\n state.w = Math.abs(w);\n } else {\n state.w = Math.max(state.x + state.w, x, x + w) -\n Math.min(state.x, x, x + w);\n }\n\n if (state.h === null) {\n state.h = Math.abs(h);\n } else {\n state.h = Math.max(state.y + state.h, y, y + h) -\n Math.min(state.y, y, y + h);\n }\n\n if (state.x === null) {\n state.x = Math.min(x, x + w);\n } else {\n state.x = Math.min(state.x, x, x + w);\n }\n\n if (state.y === null) {\n state.y = Math.min(y, y + h);\n } else {\n state.y = Math.min(state.y, y, y + h);\n }\n },\n\n getLineBoundingBox: function getLineBoundingBox(x, y) {\n let state = this.graphicsStateManager.state;\n\n [x, y] = Util.applyTransform([x, y], state.ctm);\n\n if (state.w === null) {\n state.w = Math.abs(x - state.move_x);\n } else {\n state.w = Math.max(x, state.move_x, state.x + state.w) -\n Math.min(x, state.move_x, state.x);\n }\n\n if (state.h === null) {\n state.h = Math.abs(y - state.move_y);\n } else {\n state.h = Math.max(y, state.move_y, state.y + state.h) -\n Math.min(y, state.move_y, state.y);\n }\n\n if (state.x === null) {\n state.x = Math.min(x, state.move_x);\n } else {\n state.x = Math.min(x, state.move_x, state.x);\n }\n\n if (state.y === null) {\n state.y = Math.min(y, state.move_y);\n } else {\n state.y = Math.min(y, state.move_y, state.y);\n }\n\n //Next line will start from the end of current line\n state.move_x = x;\n state.move_y = y;\n },\n\n getCurve: function getCurve(a, b, c, d) {\n return function curve(t) {\n return Math.pow(1 - t, 3) * a + 3 * t * Math.pow(1 - t, 2) * b + 3 * t * t * (1 - t) * c + t * t * t * d;\n }\n },\n\n //Equate the derivative to zero in order to find local extremum and solve the equation\n getCurveRoots: function getCurveRoots(a, b, c, d) {\n let sqrt;\n let root_1;\n let root_2;\n\n sqrt = Math.pow(6 * a - 12 * b + 6 * c, 2)\n - 4 * (3 * b - 3 * a) * (-3 * a + 9 * b - 9 * c + 3 * d);\n root_1 = null;\n root_2 = null;\n\n //Calculate roots if equation has roots and they are real\n //Equation has infinite(too big) roots if denominator is too small\n if (Math.abs(a + 3 * c - 3 * b - d) > Math.pow(0.1, -10)) {\n if (sqrt >= 0) {\n root_1 = ((-6 * a + 12 * b - 6 * c) + Math.sqrt(sqrt)) / (2 * (-3 * a + 9 * b - 9 * c + 3 * d));\n root_2 = ((-6 * a + 12 * b - 6 * c) - Math.sqrt(sqrt)) / (2 * (-3 * a + 9 * b - 9 * c + 3 * d));\n }\n } else if (sqrt > Math.pow(0.1, -10)) {\n root_1 = (a - b) / (2 * a - 4 * b + 2 * c);\n }\n\n //We are only interested in roots that lay in range from 0 to 1\n //Ignore other ones\n if (root_1 !== null && (root_1 < 0 || root_1 > 1)) {\n root_1 = null;\n }\n if (root_2 !== null && (root_2 < 0 || root_2 > 1)) {\n root_2 = null;\n }\n\n return [root_1, root_2];\n },\n\n getCurveBoundingBox: function getCurveBoundingBox(op, x0, y0, x1, y1, x2, y2, x3, y3) {\n let state = this.graphicsStateManager.state;\n\n if (op !== OPS.curveTo2) {\n [x1, y1] = Util.applyTransform([x1, y1], state.ctm);\n }\n [x2, y2] = Util.applyTransform([x2, y2], state.ctm);\n [x3, y3] = Util.applyTransform([x3, y3], state.ctm);\n\n let curveX = this.getCurve(x0, x1, x2, x3);\n let curveY = this.getCurve(y0, y1, y2, y3);\n\n let [root_1, root_2] = this.getCurveRoots(x0, x1, x2, x3);\n\n let minX = Math.min(x0, x3, root_1 !== null ? curveX(root_1) : Number.MAX_VALUE, root_2 !== null ? curveX(root_2) : Number.MAX_VALUE);\n let maxX = Math.max(x0, x3, root_1 !== null ? curveX(root_1) : Number.MIN_VALUE, root_2 !== null ? curveX(root_2) : Number.MIN_VALUE);\n\n [root_1, root_2] = this.getCurveRoots(y0, y1, y2, y3);\n\n let minY = Math.min(y0, y3, root_1 !== null ? curveY(root_1) : Number.MAX_VALUE, root_2 !== null ? curveY(root_2) : Number.MAX_VALUE);\n let maxY = Math.max(y0, y3, root_1 !== null ? curveY(root_1) : Number.MIN_VALUE, root_2 !== null ? curveY(root_2) : Number.MIN_VALUE);\n\n let x = minX;\n let y = minY;\n let h = maxY - minY;\n let w = maxX - minX;\n\n if (state.w === null) {\n state.w = Math.abs(w);\n } else {\n state.w = Math.max(state.x + state.w, x, x + w) -\n Math.min(state.x, x, x + w);\n }\n\n if (state.h === null) {\n state.h = Math.abs(h);\n } else {\n state.h = Math.max(state.y + state.h, y, y + h) -\n Math.min(state.y, y, y + h);\n }\n\n if (state.x === null) {\n state.x = Math.min(x, x + w);\n } else {\n state.x = Math.min(state.x, x, x + w);\n }\n\n if (state.y === null) {\n state.y = Math.min(y, y + h);\n } else {\n state.y = Math.min(state.y, y, y + h);\n }\n\n state.move_x = x;\n state.move_y = y;\n },\n\n getClip: function getClip() {\n if (this.clipping) {\n let state = this.graphicsStateManager.state;\n if (state.clip === null) {\n state.clip = {\n x: state.x,\n y: state.y,\n w: state.w,\n h: state.h\n };\n } else {\n //Intersection with previous clip\n state.clip = {\n x: Math.max(state.x, state.clip.x),\n y: Math.max(state.y, state.clip.y),\n w: Math.min(state.x + state.w, state.clip.x + state.clip.w) - Math.max(state.x, state.clip.x),\n h: Math.min(state.y + state.h, state.clip.y + state.clip.h) - Math.max(state.y, state.clip.y),\n }\n }\n this.clipping = false;\n }\n },\n\n getNoMCIDBoundingBoxes: function getNoMCIDBoundingBoxes() {\n return this.boundingBoxesStack.get();\n },\n\n getImageBoundingBox: function getImageBoundingBox() {\n let state = this.graphicsStateManager.state;\n let [x0, y0] = Util.applyTransform([0, 0], state.ctm);\n let [x1, y1] = Util.applyTransform([0, 1], state.ctm);\n let [x2, y2] = Util.applyTransform([1, 1], state.ctm);\n let [x3, y3] = Util.applyTransform([1, 0], state.ctm);\n\n state.x = Math.min(x0, x1, x2, x3);\n state.y = Math.min(y0, y1, y2, y3);\n state.w = Math.max(x0, x1, x2, x3) - state.x;\n state.h = Math.max(y0, y1, y2, y3) - state.y;\n },\n\n parseOperator: function BoundingBoxesCalculator_parseOperator(fn, args) {\n if (this.ignoreCalculations) {\n return;\n }\n\n if (fn !== OPS.markPoint && fn !== OPS.markPointProps &&\n fn !== OPS.beginMarkedContent && fn !== OPS.beginMarkedContentProps) {\n this.boundingBoxesStack.inc();\n }\n\n switch (fn | 0) {\n case OPS.restore:\n this.graphicsStateManager.restore();\n this.textStateManager.restore();\n break;\n case OPS.save:\n this.graphicsStateManager.save();\n this.textStateManager.save();\n break;\n case OPS.fill:\n case OPS.eoFill:\n case OPS.eoFillStroke:\n case OPS.fillStroke:\n case OPS.stroke:\n case OPS.closeEOFillStroke:\n case OPS.closeFillStroke:\n case OPS.closeStroke:\n this.getClip();\n this.saveGraphicsBoundingBox();\n break;\n case OPS.endPath:\n this.getClip();\n this.graphicsStateManager.state.clean();\n break;\n case OPS.transform:\n this.graphicsStateManager.state.ctm = Util.transform(this.graphicsStateManager.state.ctm, args);\n break;\n case OPS.clip:\n case OPS.eoClip:\n this.clipping = true;\n break;\n case OPS.setFont:\n this.textStateManager.state.fontSize = args[0];\n this.textStateManager.state.fontMatrix = args[1].font.fontMatrix;\n this.textStateManager.state.font = args[1].font;\n break;\n case OPS.setTextMatrix:\n this.textStateManager.state.setTextMatrix(args[0], args[1], args[2], args[3],\n args[4], args[5]);\n this.textStateManager.state.setTextLineMatrix(args[0], args[1], args[2], args[3],\n args[4], args[5]);\n break;\n case OPS.nextLine:\n this.textStateManager.state.carriageReturn();\n break;\n case OPS.setCharSpacing:\n this.textStateManager.state.charSpacing = args[0];\n break;\n case OPS.setWordSpacing:\n this.textStateManager.state.wordSpacing = args[0];\n break;\n case OPS.setHScale:\n this.textStateManager.state.textHScale = args[0] / 100;\n break;\n case OPS.setLeading:\n this.textStateManager.state.leading = args[0];\n break;\n case OPS.setTextRise:\n this.textStateManager.state.textRise = args[0];\n break;\n case OPS.setLeadingMoveText:\n this.textStateManager.state.leading = -args[1];\n this.textStateManager.state.translateTextLineMatrix(...args);\n this.textStateManager.state.textMatrix = this.textStateManager.state.textLineMatrix.slice();\n break;\n case OPS.moveText:\n this.textStateManager.state.translateTextLineMatrix(args[0], args[1]);\n this.textStateManager.state.textMatrix = this.textStateManager.state.textLineMatrix.slice();\n break;\n case OPS.beginText:\n this.textStateManager.state.textMatrix = IDENTITY_MATRIX.slice();\n this.textStateManager.state.textLineMatrix = IDENTITY_MATRIX.slice();\n break;\n case OPS.moveTo:\n let ctm = this.graphicsStateManager.state.ctm.slice();\n [this.graphicsStateManager.state.move_x, this.graphicsStateManager.state.move_y] = Util.applyTransform(args, ctm);\n break;\n case OPS.lineTo:\n this.getLineBoundingBox(args[0], args[1]);\n break;\n case OPS.curveTo:\n this.getCurveBoundingBox(\n OPS.curveTo,\n this.graphicsStateManager.state.move_x,\n this.graphicsStateManager.state.move_y,\n args[0],\n args[1],\n args[2],\n args[3],\n args[4],\n args[5],\n );\n break;\n case OPS.curveTo2:\n this.getCurveBoundingBox(\n OPS.curveTo2,\n this.graphicsStateManager.state.move_x,\n this.graphicsStateManager.state.move_y,\n this.graphicsStateManager.state.move_x,\n this.graphicsStateManager.state.move_y,\n args[0],\n args[1],\n args[2],\n args[3]\n );\n break;\n case OPS.curveTo3:\n this.getCurveBoundingBox(\n OPS.curveTo3,\n this.graphicsStateManager.state.move_x,\n this.graphicsStateManager.state.move_y,\n args[0],\n args[1],\n args[2],\n args[3],\n args[2],\n args[3]\n );\n break;\n case OPS.rectangle:\n this.getRectBoundingBox(args[0], args[1], args[2], args[3]);\n break;\n case OPS.markPoint:\n case OPS.markPointProps:\n case OPS.beginMarkedContent:\n //Marked content forms the scope\n this.boundingBoxesStack.begin();\n break;\n case OPS.beginMarkedContentProps:\n if (isDict(args[1]) && args[1].has('MCID')) {\n this.boundingBoxesStack.begin(args[1].get('MCID'));\n\n //Clear graphics bounding box to split graphics in different marked content\n this.graphicsStateManager.state.x = null;\n this.graphicsStateManager.state.y = null;\n this.graphicsStateManager.state.w = null;\n this.graphicsStateManager.state.h = null;\n\n } else {\n //Marked content with no MCID still forms the scope\n this.boundingBoxesStack.begin();\n }\n break;\n case OPS.endMarkedContent:\n let boundingBox = this.boundingBoxesStack.end();\n if (boundingBox !== null) {\n this.boundingBoxes[boundingBox.mcid] = {\n x: boundingBox.x,\n y: boundingBox.y,\n width: boundingBox.w,\n height: boundingBox.h\n };\n }\n break;\n case OPS.paintXObject:\n if (args[0] === 'Image') {\n this.getImageBoundingBox();\n this.saveGraphicsBoundingBox();\n }\n break;\n case OPS.showText:\n this.getTextBoundingBox(args[0]);\n break;\n default:\n break;\n }\n },\n\n setFont: function BoundingBoxesCalculator_setFont(translated) {\n this.textStateManager.state.fontMatrix = translated.font.fontMatrix;\n this.textStateManager.state.font = translated.font;\n },\n\n incrementOperation: function BoundingBoxesCalculator_incrementOperation(fn) {\n if (this.ignoreCalculations) {\n return;\n }\n this.operationIndex++;\n }\n };\n\n return BoundingBoxesCalculator;\n})();\n\nvar GraphicsState = (function GraphicsState() {\n function GraphicsState() {\n this.x = null;\n this.y = null;\n this.w = null;\n this.h = null;\n this.move_x = null;\n this.move_y = null;\n this.ctm = IDENTITY_MATRIX.slice();\n this.clip = null;\n }\n\n GraphicsState.prototype = {\n clone: function GraphicsState_clone() {\n var clone = Object.create(this);\n clone.ctm = this.ctm.slice();\n return clone;\n },\n clean: function GraphicsState_clear() {\n this.x = null;\n this.y = null;\n this.w = null;\n this.h = null;\n this.move_x = 0;\n this.move_y = 0;\n //this.ctm = IDENTITY_MATRIX.slice();\n //clip state stays the same\n }\n };\n return GraphicsState;\n})();\n\nvar BoundingBoxStack = (function BoundingBoxStack() {\n function BoundingBoxStack() {\n this.stack = [];\n }\n\n BoundingBoxStack.prototype = {\n begin: function BoundingBoxStack_begin(mcid) {\n this.stack.push({\n x: null,\n y: null,\n w: null,\n h: null,\n mcid: Number.isInteger(mcid) ? mcid : null\n });\n },\n\n save: function BoundingBoxStack_save(x, y, w, h) {\n let current = this.stack[this.stack.length - 1];\n\n if (!current) {\n return;\n }\n\n if (current.w === null) {\n current.w = w;\n } else {\n current.w = Math.max(current.x + current.w, x + w) - Math.min(current.x, x);\n }\n\n if (current.x === null) {\n current.x = x;\n } else {\n current.x = Math.min(current.x, x);\n }\n\n if (current.h === null) {\n current.h = h;\n } else {\n current.h = Math.max(current.y + current.h, y + h) - Math.min(current.y, y);\n }\n\n if (current.y === null) {\n current.y = y;\n } else {\n current.y = Math.min(current.y, y);\n }\n },\n\n end: function BoundingBoxStack_end() {\n let last = this.stack.pop();\n\n if (last.mcid !== null) {\n return last;\n } else {\n this.save(last.x, last.y, last.w, last.h);\n return null;\n }\n },\n\n };\n\n return BoundingBoxStack;\n})();\n\nvar NoMCIDBoundingBoxStack = (function NoMCIDBoundingBoxStack() {\n function NoMCIDBoundingBoxStack() {\n this.boundingBoxesStack = new BoundingBoxStack();\n this.contentCounter = null; \n this.content = {};\n this.pointer = {};\n }\n\n NoMCIDBoundingBoxStack.prototype = {\n begin: function NoMCIDBoundingBoxStack_begin(mcid) {\n if (!this.contentCounter || this.contentCounter.inMarkedContent !== false) {\n this.inc(true);\n } else {\n const newContentItem = { parent: this.pointer, contentItems: [] };\n this.pointer.contentItems.push(newContentItem);\n this.pointer = newContentItem;\n }\n this.boundingBoxesStack.begin(mcid);\n },\n\n save: function NoMCIDBoundingBoxStack_save(x, y, w, h) {\n if (this.pointer.contentItems) {\n this.pointer.contentItems.push({ \n contentItem: { x, y, w, h }\n });\n this.pointer.final = true;\n } else {\n console.log('NoMCIDBoundingBoxStackError:', 'The pointer was in an invalid state, saved data will be lost');\n }\n this.boundingBoxesStack.save(x, y, w, h);\n },\n\n end: function NoMCIDBoundingBoxStack_end() {\n const tempPointer = this.pointer;\n this.pointer = tempPointer.parent || this.content;\n delete tempPointer.parent;\n\n if (this.pointer === this.content) {\n this.contentCounter.inMarkedContent = null;\n this.pointer = {};\n }\n\n return this.boundingBoxesStack.end();\n },\n\n inc: function NoMCIDBoundingBoxStack_inc(isMC = false) {\n if (!this.contentCounter) {\n this.contentCounter = { index: 0, inMarkedContent: !isMC }\n this.content[this.contentCounter.index] = { parent: this.content, contentItems: [] };\n this.pointer = this.content[this.contentCounter.index];\n } else if (\n this.contentCounter.inMarkedContent !== false && isMC || \n !!this.contentCounter.inMarkedContent === isMC && !Object.keys(this.pointer).length\n ) {\n delete this.content[this.contentCounter.index].parent;\n this.contentCounter = { index: this.contentCounter.index + 1, inMarkedContent: !isMC }\n this.content[this.contentCounter.index] = { parent: this.content, contentItems: [] };\n this.pointer = this.content[this.contentCounter.index];\n }\n },\n\n get: function NoMCIDBoundingBoxStack_get() {\n try {\n if (Object.keys(this.content).length && this.contentCounter) {\n this.content[this.contentCounter.index].parent && delete this.content[this.contentCounter.index].parent;\n const result = JSON.parse(JSON.stringify(this.content));\n this.content[this.contentCounter.index].parent = this.content;\n return result;\n }\n return {};\n } catch (err) {\n console.log('NoMCIDBoundingBoxStackError:', err.message || err);\n return {};\n }\n },\n };\n return NoMCIDBoundingBoxStack;\n})();\n\nexport {\n BoundingBoxesCalculator,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n collectActions,\n MissingDataException,\n recoverJsURL,\n toRomanNumerals,\n XRefEntryException,\n} from \"./core_utils.js\";\nimport {\n createValidAbsoluteUrl,\n DocumentActionEventType,\n FormatError,\n info,\n objectSize,\n PermissionFlag,\n shadow,\n stringToPDFString,\n stringToUTF8String,\n warn,\n} from \"../shared/util.js\";\nimport {\n Dict,\n isDict,\n isName,\n isRefsEqual,\n Name,\n Ref,\n RefSet,\n RefSetCache,\n} from \"./primitives.js\";\nimport { NameTree, NumberTree } from \"./name_number_tree.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { clearGlobalCaches } from \"./cleanup_helper.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { FileSpec } from \"./file_spec.js\";\nimport { GlobalImageCache } from \"./image_utils.js\";\nimport { MetadataParser } from \"./metadata_parser.js\";\nimport { StructTreeRoot } from \"./struct_tree.js\";\n\nfunction fetchDestination(dest) {\n if (dest instanceof Dict) {\n dest = dest.get(\"D\");\n }\n return Array.isArray(dest) ? dest : null;\n}\n\nclass Catalog {\n constructor(pdfManager, xref) {\n this.pdfManager = pdfManager;\n this.xref = xref;\n\n this._catDict = xref.getCatalogObj();\n if (!(this._catDict instanceof Dict)) {\n throw new FormatError(\"Catalog object is not a dictionary.\");\n }\n // Given that `XRef.parse` will both fetch *and* validate the /Pages-entry,\n // the following call must always succeed here:\n this.toplevelPagesDict; // eslint-disable-line no-unused-expressions\n\n this._actualNumPages = null;\n\n this.fontCache = new RefSetCache();\n this.builtInCMapCache = new Map();\n this.standardFontDataCache = new Map();\n this.globalImageCache = new GlobalImageCache();\n this.pageKidsCountCache = new RefSetCache();\n this.pageIndexCache = new RefSetCache();\n this.nonBlendModesSet = new RefSet();\n }\n\n get version() {\n const version = this._catDict.get(\"Version\");\n return shadow(\n this,\n \"version\",\n version instanceof Name ? version.name : null\n );\n }\n\n get lang() {\n const lang = this._catDict.get(\"Lang\");\n return shadow(\n this,\n \"lang\",\n typeof lang === \"string\" ? stringToPDFString(lang) : null\n );\n }\n\n /**\n * @type {boolean} `true` for pure XFA documents,\n * `false` for XFA Foreground documents.\n */\n get needsRendering() {\n const needsRendering = this._catDict.get(\"NeedsRendering\");\n return shadow(\n this,\n \"needsRendering\",\n typeof needsRendering === \"boolean\" ? needsRendering : false\n );\n }\n\n get collection() {\n let collection = null;\n try {\n const obj = this._catDict.get(\"Collection\");\n if (obj instanceof Dict && obj.size > 0) {\n collection = obj;\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n info(\"Cannot fetch Collection entry; assuming no collection is present.\");\n }\n return shadow(this, \"collection\", collection);\n }\n\n get acroForm() {\n let acroForm = null;\n try {\n const obj = this._catDict.get(\"AcroForm\");\n if (obj instanceof Dict && obj.size > 0) {\n acroForm = obj;\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n info(\"Cannot fetch AcroForm entry; assuming no forms are present.\");\n }\n return shadow(this, \"acroForm\", acroForm);\n }\n\n get acroFormRef() {\n const value = this._catDict.getRaw(\"AcroForm\");\n return shadow(this, \"acroFormRef\", value instanceof Ref ? value : null);\n }\n\n get metadata() {\n const streamRef = this._catDict.getRaw(\"Metadata\");\n if (!(streamRef instanceof Ref)) {\n return shadow(this, \"metadata\", null);\n }\n\n let metadata = null;\n try {\n const suppressEncryption = !(\n this.xref.encrypt && this.xref.encrypt.encryptMetadata\n );\n const stream = this.xref.fetch(streamRef, suppressEncryption);\n\n if (stream instanceof BaseStream && stream.dict instanceof Dict) {\n const type = stream.dict.get(\"Type\");\n const subtype = stream.dict.get(\"Subtype\");\n\n if (isName(type, \"Metadata\") && isName(subtype, \"XML\")) {\n // XXX: This should examine the charset the XML document defines,\n // however since there are currently no real means to decode arbitrary\n // charsets, let's just hope that the author of the PDF was reasonable\n // enough to stick with the XML default charset, which is UTF-8.\n const data = stringToUTF8String(stream.getString());\n if (data) {\n metadata = new MetadataParser(data).serializable;\n }\n }\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n info(`Skipping invalid Metadata: \"${ex}\".`);\n }\n return shadow(this, \"metadata\", metadata);\n }\n\n get markInfo() {\n let markInfo = null;\n try {\n markInfo = this._readMarkInfo();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Unable to read mark info.\");\n }\n return shadow(this, \"markInfo\", markInfo);\n }\n\n /**\n * @private\n */\n _readMarkInfo() {\n const obj = this._catDict.get(\"MarkInfo\");\n if (!(obj instanceof Dict)) {\n return null;\n }\n\n const markInfo = {\n Marked: false,\n UserProperties: false,\n Suspects: false,\n };\n for (const key in markInfo) {\n const value = obj.get(key);\n if (typeof value === \"boolean\") {\n markInfo[key] = value;\n }\n }\n\n return markInfo;\n }\n\n get structTreeRoot() {\n let structTree = null;\n try {\n structTree = this._readStructTreeRoot();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Unable read to structTreeRoot info.\");\n }\n return shadow(this, \"structTreeRoot\", structTree);\n }\n\n /**\n * @private\n */\n _readStructTreeRoot() {\n const obj = this._catDict.get(\"StructTreeRoot\");\n if (!(obj instanceof Dict)) {\n return null;\n }\n const root = new StructTreeRoot(obj);\n root.init();\n return root;\n }\n\n get toplevelPagesDict() {\n const pagesObj = this._catDict.get(\"Pages\");\n if (!(pagesObj instanceof Dict)) {\n throw new FormatError(\"Invalid top-level pages dictionary.\");\n }\n return shadow(this, \"toplevelPagesDict\", pagesObj);\n }\n\n get documentOutline() {\n let obj = null;\n try {\n obj = this._readDocumentOutline();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Unable to read document outline.\");\n }\n return shadow(this, \"documentOutline\", obj);\n }\n\n /**\n * @private\n */\n _readDocumentOutline() {\n let obj = this._catDict.get(\"Outlines\");\n if (!(obj instanceof Dict)) {\n return null;\n }\n obj = obj.getRaw(\"First\");\n if (!(obj instanceof Ref)) {\n return null;\n }\n\n const root = { items: [] };\n const queue = [{ obj, parent: root }];\n // To avoid recursion, keep track of the already processed items.\n const processed = new RefSet();\n processed.put(obj);\n const xref = this.xref,\n blackColor = new Uint8ClampedArray(3);\n\n while (queue.length > 0) {\n const i = queue.shift();\n const outlineDict = xref.fetchIfRef(i.obj);\n if (outlineDict === null) {\n continue;\n }\n if (!outlineDict.has(\"Title\")) {\n throw new FormatError(\"Invalid outline item encountered.\");\n }\n\n const data = { url: null, dest: null };\n Catalog.parseDestDictionary({\n destDict: outlineDict,\n resultObj: data,\n docBaseUrl: this.pdfManager.docBaseUrl,\n });\n const title = outlineDict.get(\"Title\");\n const flags = outlineDict.get(\"F\") || 0;\n const color = outlineDict.getArray(\"C\");\n const count = outlineDict.get(\"Count\");\n let rgbColor = blackColor;\n\n // We only need to parse the color when it's valid, and non-default.\n if (\n Array.isArray(color) &&\n color.length === 3 &&\n (color[0] !== 0 || color[1] !== 0 || color[2] !== 0)\n ) {\n rgbColor = ColorSpace.singletons.rgb.getRgb(color, 0);\n }\n\n const outlineItem = {\n dest: data.dest,\n url: data.url,\n unsafeUrl: data.unsafeUrl,\n newWindow: data.newWindow,\n title: stringToPDFString(title),\n color: rgbColor,\n count: Number.isInteger(count) ? count : undefined,\n bold: !!(flags & 2),\n italic: !!(flags & 1),\n items: [],\n };\n\n i.parent.items.push(outlineItem);\n obj = outlineDict.getRaw(\"First\");\n if (obj instanceof Ref && !processed.has(obj)) {\n queue.push({ obj, parent: outlineItem });\n processed.put(obj);\n }\n obj = outlineDict.getRaw(\"Next\");\n if (obj instanceof Ref && !processed.has(obj)) {\n queue.push({ obj, parent: i.parent });\n processed.put(obj);\n }\n }\n return root.items.length > 0 ? root.items : null;\n }\n\n get permissions() {\n let permissions = null;\n try {\n permissions = this._readPermissions();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Unable to read permissions.\");\n }\n return shadow(this, \"permissions\", permissions);\n }\n\n /**\n * @private\n */\n _readPermissions() {\n const encrypt = this.xref.trailer.get(\"Encrypt\");\n if (!(encrypt instanceof Dict)) {\n return null;\n }\n\n let flags = encrypt.get(\"P\");\n if (typeof flags !== \"number\") {\n return null;\n }\n\n // PDF integer objects are represented internally in signed 2's complement\n // form. Therefore, convert the signed decimal integer to a signed 2's\n // complement binary integer so we can use regular bitwise operations on it.\n flags += 2 ** 32;\n\n const permissions = [];\n for (const key in PermissionFlag) {\n const value = PermissionFlag[key];\n if (flags & value) {\n permissions.push(value);\n }\n }\n return permissions;\n }\n\n get optionalContentConfig() {\n let config = null;\n try {\n const properties = this._catDict.get(\"OCProperties\");\n if (!properties) {\n return shadow(this, \"optionalContentConfig\", null);\n }\n const defaultConfig = properties.get(\"D\");\n if (!defaultConfig) {\n return shadow(this, \"optionalContentConfig\", null);\n }\n const groupsData = properties.get(\"OCGs\");\n if (!Array.isArray(groupsData)) {\n return shadow(this, \"optionalContentConfig\", null);\n }\n const groups = [];\n const groupRefs = [];\n // Ensure all the optional content groups are valid.\n for (const groupRef of groupsData) {\n if (!(groupRef instanceof Ref)) {\n continue;\n }\n groupRefs.push(groupRef);\n const group = this.xref.fetchIfRef(groupRef);\n groups.push({\n id: groupRef.toString(),\n name:\n typeof group.get(\"Name\") === \"string\"\n ? stringToPDFString(group.get(\"Name\"))\n : null,\n intent:\n typeof group.get(\"Intent\") === \"string\"\n ? stringToPDFString(group.get(\"Intent\"))\n : null,\n });\n }\n config = this._readOptionalContentConfig(defaultConfig, groupRefs);\n config.groups = groups;\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`Unable to read optional content config: ${ex}`);\n }\n return shadow(this, \"optionalContentConfig\", config);\n }\n\n _readOptionalContentConfig(config, contentGroupRefs) {\n function parseOnOff(refs) {\n const onParsed = [];\n if (Array.isArray(refs)) {\n for (const value of refs) {\n if (!(value instanceof Ref)) {\n continue;\n }\n if (contentGroupRefs.includes(value)) {\n onParsed.push(value.toString());\n }\n }\n }\n return onParsed;\n }\n\n function parseOrder(refs, nestedLevels = 0) {\n if (!Array.isArray(refs)) {\n return null;\n }\n const order = [];\n\n for (const value of refs) {\n if (value instanceof Ref && contentGroupRefs.includes(value)) {\n parsedOrderRefs.put(value); // Handle \"hidden\" groups, see below.\n\n order.push(value.toString());\n continue;\n }\n // Handle nested /Order arrays (see e.g. issue 9462 and bug 1240641).\n const nestedOrder = parseNestedOrder(value, nestedLevels);\n if (nestedOrder) {\n order.push(nestedOrder);\n }\n }\n\n if (nestedLevels > 0) {\n return order;\n }\n const hiddenGroups = [];\n for (const groupRef of contentGroupRefs) {\n if (parsedOrderRefs.has(groupRef)) {\n continue;\n }\n hiddenGroups.push(groupRef.toString());\n }\n if (hiddenGroups.length) {\n order.push({ name: null, order: hiddenGroups });\n }\n\n return order;\n }\n\n function parseNestedOrder(ref, nestedLevels) {\n if (++nestedLevels > MAX_NESTED_LEVELS) {\n warn(\"parseNestedOrder - reached MAX_NESTED_LEVELS.\");\n return null;\n }\n const value = xref.fetchIfRef(ref);\n if (!Array.isArray(value)) {\n return null;\n }\n const nestedName = xref.fetchIfRef(value[0]);\n if (typeof nestedName !== \"string\") {\n return null;\n }\n const nestedOrder = parseOrder(value.slice(1), nestedLevels);\n if (!nestedOrder || !nestedOrder.length) {\n return null;\n }\n return { name: stringToPDFString(nestedName), order: nestedOrder };\n }\n\n const xref = this.xref,\n parsedOrderRefs = new RefSet(),\n MAX_NESTED_LEVELS = 10;\n\n return {\n name:\n typeof config.get(\"Name\") === \"string\"\n ? stringToPDFString(config.get(\"Name\"))\n : null,\n creator:\n typeof config.get(\"Creator\") === \"string\"\n ? stringToPDFString(config.get(\"Creator\"))\n : null,\n baseState:\n config.get(\"BaseState\") instanceof Name\n ? config.get(\"BaseState\").name\n : null,\n on: parseOnOff(config.get(\"ON\")),\n off: parseOnOff(config.get(\"OFF\")),\n order: parseOrder(config.get(\"Order\")),\n groups: null,\n };\n }\n\n setActualNumPages(num = null) {\n this._actualNumPages = num;\n }\n\n get hasActualNumPages() {\n return this._actualNumPages !== null;\n }\n\n get _pagesCount() {\n const obj = this.toplevelPagesDict.get(\"Count\");\n if (!Number.isInteger(obj)) {\n throw new FormatError(\n \"Page count in top-level pages dictionary is not an integer.\"\n );\n }\n return shadow(this, \"_pagesCount\", obj);\n }\n\n get numPages() {\n return this.hasActualNumPages ? this._actualNumPages : this._pagesCount;\n }\n\n get destinations() {\n const obj = this._readDests(),\n dests = Object.create(null);\n if (obj instanceof NameTree) {\n for (const [key, value] of obj.getAll()) {\n const dest = fetchDestination(value);\n if (dest) {\n dests[stringToPDFString(key)] = dest;\n }\n }\n } else if (obj instanceof Dict) {\n obj.forEach(function (key, value) {\n const dest = fetchDestination(value);\n if (dest) {\n dests[key] = dest;\n }\n });\n }\n return shadow(this, \"destinations\", dests);\n }\n\n getDestination(id) {\n const obj = this._readDests();\n if (obj instanceof NameTree) {\n const dest = fetchDestination(obj.get(id));\n if (dest) {\n return dest;\n }\n // Fallback to checking the *entire* NameTree, in an attempt to handle\n // corrupt PDF documents with out-of-order NameTrees (fixes issue 10272).\n const allDest = this.destinations[id];\n if (allDest) {\n warn(`Found \"${id}\" at an incorrect position in the NameTree.`);\n return allDest;\n }\n } else if (obj instanceof Dict) {\n const dest = fetchDestination(obj.get(id));\n if (dest) {\n return dest;\n }\n }\n return null;\n }\n\n /**\n * @private\n */\n _readDests() {\n const obj = this._catDict.get(\"Names\");\n if (obj && obj.has(\"Dests\")) {\n return new NameTree(obj.getRaw(\"Dests\"), this.xref);\n } else if (this._catDict.has(\"Dests\")) {\n // Simple destination dictionary.\n return this._catDict.get(\"Dests\");\n }\n return undefined;\n }\n\n get pageLabels() {\n let obj = null;\n try {\n obj = this._readPageLabels();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Unable to read page labels.\");\n }\n return shadow(this, \"pageLabels\", obj);\n }\n\n /**\n * @private\n */\n _readPageLabels() {\n const obj = this._catDict.getRaw(\"PageLabels\");\n if (!obj) {\n return null;\n }\n\n const pageLabels = new Array(this.numPages);\n let style = null,\n prefix = \"\";\n\n const numberTree = new NumberTree(obj, this.xref);\n const nums = numberTree.getAll();\n let currentLabel = \"\",\n currentIndex = 1;\n\n for (let i = 0, ii = this.numPages; i < ii; i++) {\n const labelDict = nums.get(i);\n\n if (labelDict !== undefined) {\n if (!(labelDict instanceof Dict)) {\n throw new FormatError(\"PageLabel is not a dictionary.\");\n }\n\n if (\n labelDict.has(\"Type\") &&\n !isName(labelDict.get(\"Type\"), \"PageLabel\")\n ) {\n throw new FormatError(\"Invalid type in PageLabel dictionary.\");\n }\n\n if (labelDict.has(\"S\")) {\n const s = labelDict.get(\"S\");\n if (!(s instanceof Name)) {\n throw new FormatError(\"Invalid style in PageLabel dictionary.\");\n }\n style = s.name;\n } else {\n style = null;\n }\n\n if (labelDict.has(\"P\")) {\n const p = labelDict.get(\"P\");\n if (typeof p !== \"string\") {\n throw new FormatError(\"Invalid prefix in PageLabel dictionary.\");\n }\n prefix = stringToPDFString(p);\n } else {\n prefix = \"\";\n }\n\n if (labelDict.has(\"St\")) {\n const st = labelDict.get(\"St\");\n if (!(Number.isInteger(st) && st >= 1)) {\n throw new FormatError(\"Invalid start in PageLabel dictionary.\");\n }\n currentIndex = st;\n } else {\n currentIndex = 1;\n }\n }\n\n switch (style) {\n case \"D\":\n currentLabel = currentIndex;\n break;\n case \"R\":\n case \"r\":\n currentLabel = toRomanNumerals(currentIndex, style === \"r\");\n break;\n case \"A\":\n case \"a\":\n const LIMIT = 26; // Use only the characters A-Z, or a-z.\n const A_UPPER_CASE = 0x41,\n A_LOWER_CASE = 0x61;\n\n const baseCharCode = style === \"a\" ? A_LOWER_CASE : A_UPPER_CASE;\n const letterIndex = currentIndex - 1;\n const character = String.fromCharCode(\n baseCharCode + (letterIndex % LIMIT)\n );\n currentLabel = character.repeat(Math.floor(letterIndex / LIMIT) + 1);\n break;\n default:\n if (style) {\n throw new FormatError(\n `Invalid style \"${style}\" in PageLabel dictionary.`\n );\n }\n currentLabel = \"\";\n }\n\n pageLabels[i] = prefix + currentLabel;\n currentIndex++;\n }\n return pageLabels;\n }\n\n get pageLayout() {\n const obj = this._catDict.get(\"PageLayout\");\n // Purposely use a non-standard default value, rather than 'SinglePage', to\n // allow differentiating between `undefined` and /SinglePage since that does\n // affect the Scroll mode (continuous/non-continuous) used in Adobe Reader.\n let pageLayout = \"\";\n\n if (obj instanceof Name) {\n switch (obj.name) {\n case \"SinglePage\":\n case \"OneColumn\":\n case \"TwoColumnLeft\":\n case \"TwoColumnRight\":\n case \"TwoPageLeft\":\n case \"TwoPageRight\":\n pageLayout = obj.name;\n }\n }\n return shadow(this, \"pageLayout\", pageLayout);\n }\n\n get pageMode() {\n const obj = this._catDict.get(\"PageMode\");\n let pageMode = \"UseNone\"; // Default value.\n\n if (obj instanceof Name) {\n switch (obj.name) {\n case \"UseNone\":\n case \"UseOutlines\":\n case \"UseThumbs\":\n case \"FullScreen\":\n case \"UseOC\":\n case \"UseAttachments\":\n pageMode = obj.name;\n }\n }\n return shadow(this, \"pageMode\", pageMode);\n }\n\n get viewerPreferences() {\n const obj = this._catDict.get(\"ViewerPreferences\");\n if (!(obj instanceof Dict)) {\n return shadow(this, \"viewerPreferences\", null);\n }\n let prefs = null;\n\n for (const key of obj.getKeys()) {\n const value = obj.get(key);\n let prefValue;\n\n switch (key) {\n case \"HideToolbar\":\n case \"HideMenubar\":\n case \"HideWindowUI\":\n case \"FitWindow\":\n case \"CenterWindow\":\n case \"DisplayDocTitle\":\n case \"PickTrayByPDFSize\":\n if (typeof value === \"boolean\") {\n prefValue = value;\n }\n break;\n case \"NonFullScreenPageMode\":\n if (value instanceof Name) {\n switch (value.name) {\n case \"UseNone\":\n case \"UseOutlines\":\n case \"UseThumbs\":\n case \"UseOC\":\n prefValue = value.name;\n break;\n default:\n prefValue = \"UseNone\";\n }\n }\n break;\n case \"Direction\":\n if (value instanceof Name) {\n switch (value.name) {\n case \"L2R\":\n case \"R2L\":\n prefValue = value.name;\n break;\n default:\n prefValue = \"L2R\";\n }\n }\n break;\n case \"ViewArea\":\n case \"ViewClip\":\n case \"PrintArea\":\n case \"PrintClip\":\n if (value instanceof Name) {\n switch (value.name) {\n case \"MediaBox\":\n case \"CropBox\":\n case \"BleedBox\":\n case \"TrimBox\":\n case \"ArtBox\":\n prefValue = value.name;\n break;\n default:\n prefValue = \"CropBox\";\n }\n }\n break;\n case \"PrintScaling\":\n if (value instanceof Name) {\n switch (value.name) {\n case \"None\":\n case \"AppDefault\":\n prefValue = value.name;\n break;\n default:\n prefValue = \"AppDefault\";\n }\n }\n break;\n case \"Duplex\":\n if (value instanceof Name) {\n switch (value.name) {\n case \"Simplex\":\n case \"DuplexFlipShortEdge\":\n case \"DuplexFlipLongEdge\":\n prefValue = value.name;\n break;\n default:\n prefValue = \"None\";\n }\n }\n break;\n case \"PrintPageRange\":\n // The number of elements must be even.\n if (Array.isArray(value) && value.length % 2 === 0) {\n const isValid = value.every((page, i, arr) => {\n return (\n Number.isInteger(page) &&\n page > 0 &&\n (i === 0 || page >= arr[i - 1]) &&\n page <= this.numPages\n );\n });\n if (isValid) {\n prefValue = value;\n }\n }\n break;\n case \"NumCopies\":\n if (Number.isInteger(value) && value > 0) {\n prefValue = value;\n }\n break;\n default:\n warn(`Ignoring non-standard key in ViewerPreferences: ${key}.`);\n continue;\n }\n\n if (prefValue === undefined) {\n warn(`Bad value, for key \"${key}\", in ViewerPreferences: ${value}.`);\n continue;\n }\n if (!prefs) {\n prefs = Object.create(null);\n }\n prefs[key] = prefValue;\n }\n return shadow(this, \"viewerPreferences\", prefs);\n }\n\n get openAction() {\n const obj = this._catDict.get(\"OpenAction\");\n const openAction = Object.create(null);\n\n if (obj instanceof Dict) {\n // Convert the OpenAction dictionary into a format that works with\n // `parseDestDictionary`, to avoid having to re-implement those checks.\n const destDict = new Dict(this.xref);\n destDict.set(\"A\", obj);\n\n const resultObj = { url: null, dest: null, action: null };\n Catalog.parseDestDictionary({ destDict, resultObj });\n\n if (Array.isArray(resultObj.dest)) {\n openAction.dest = resultObj.dest;\n } else if (resultObj.action) {\n openAction.action = resultObj.action;\n }\n } else if (Array.isArray(obj)) {\n openAction.dest = obj;\n }\n return shadow(\n this,\n \"openAction\",\n objectSize(openAction) > 0 ? openAction : null\n );\n }\n\n get attachments() {\n const obj = this._catDict.get(\"Names\");\n let attachments = null;\n\n if (obj instanceof Dict && obj.has(\"EmbeddedFiles\")) {\n const nameTree = new NameTree(obj.getRaw(\"EmbeddedFiles\"), this.xref);\n for (const [key, value] of nameTree.getAll()) {\n const fs = new FileSpec(value, this.xref);\n if (!attachments) {\n attachments = Object.create(null);\n }\n attachments[stringToPDFString(key)] = fs.serializable;\n }\n }\n return shadow(this, \"attachments\", attachments);\n }\n\n get xfaImages() {\n const obj = this._catDict.get(\"Names\");\n let xfaImages = null;\n\n if (obj instanceof Dict && obj.has(\"XFAImages\")) {\n const nameTree = new NameTree(obj.getRaw(\"XFAImages\"), this.xref);\n for (const [key, value] of nameTree.getAll()) {\n if (!xfaImages) {\n xfaImages = new Dict(this.xref);\n }\n xfaImages.set(stringToPDFString(key), value);\n }\n }\n return shadow(this, \"xfaImages\", xfaImages);\n }\n\n _collectJavaScript() {\n const obj = this._catDict.get(\"Names\");\n let javaScript = null;\n\n function appendIfJavaScriptDict(name, jsDict) {\n if (!(jsDict instanceof Dict)) {\n return;\n }\n if (!isName(jsDict.get(\"S\"), \"JavaScript\")) {\n return;\n }\n\n let js = jsDict.get(\"JS\");\n if (js instanceof BaseStream) {\n js = js.getString();\n } else if (typeof js !== \"string\") {\n return;\n }\n\n if (javaScript === null) {\n javaScript = new Map();\n }\n javaScript.set(name, stringToPDFString(js));\n }\n\n if (obj instanceof Dict && obj.has(\"JavaScript\")) {\n const nameTree = new NameTree(obj.getRaw(\"JavaScript\"), this.xref);\n for (const [key, value] of nameTree.getAll()) {\n appendIfJavaScriptDict(stringToPDFString(key), value);\n }\n }\n // Append OpenAction \"JavaScript\" actions, if any, to the JavaScript map.\n const openAction = this._catDict.get(\"OpenAction\");\n if (openAction) {\n appendIfJavaScriptDict(\"OpenAction\", openAction);\n }\n\n return javaScript;\n }\n\n get javaScript() {\n const javaScript = this._collectJavaScript();\n return shadow(\n this,\n \"javaScript\",\n javaScript ? [...javaScript.values()] : null\n );\n }\n\n get jsActions() {\n const javaScript = this._collectJavaScript();\n let actions = collectActions(\n this.xref,\n this._catDict,\n DocumentActionEventType\n );\n\n if (javaScript) {\n if (!actions) {\n actions = Object.create(null);\n }\n for (const [key, val] of javaScript) {\n if (key in actions) {\n actions[key].push(val);\n } else {\n actions[key] = [val];\n }\n }\n }\n return shadow(this, \"jsActions\", actions);\n }\n\n async fontFallback(id, handler) {\n const translatedFonts = await Promise.all(this.fontCache);\n\n for (const translatedFont of translatedFonts) {\n if (translatedFont.loadedName === id) {\n translatedFont.fallback(handler);\n return;\n }\n }\n }\n\n async cleanup(manuallyTriggered = false) {\n clearGlobalCaches();\n this.globalImageCache.clear(/* onlyData = */ manuallyTriggered);\n this.pageKidsCountCache.clear();\n this.pageIndexCache.clear();\n this.nonBlendModesSet.clear();\n\n const translatedFonts = await Promise.all(this.fontCache);\n\n for (const { dict } of translatedFonts) {\n delete dict.cacheKey;\n }\n this.fontCache.clear();\n this.builtInCMapCache.clear();\n this.standardFontDataCache.clear();\n }\n\n async getPageDict(pageIndex) {\n const nodesToVisit = [this.toplevelPagesDict];\n const visitedNodes = new RefSet();\n\n const pagesRef = this._catDict.getRaw(\"Pages\");\n if (pagesRef instanceof Ref) {\n visitedNodes.put(pagesRef);\n }\n const xref = this.xref,\n pageKidsCountCache = this.pageKidsCountCache,\n pageIndexCache = this.pageIndexCache;\n let currentPageIndex = 0;\n\n while (nodesToVisit.length) {\n const currentNode = nodesToVisit.pop();\n\n if (currentNode instanceof Ref) {\n const count = pageKidsCountCache.get(currentNode);\n // Skip nodes where the page can't be.\n if (count >= 0 && currentPageIndex + count <= pageIndex) {\n currentPageIndex += count;\n continue;\n }\n // Prevent circular references in the /Pages tree.\n if (visitedNodes.has(currentNode)) {\n throw new FormatError(\"Pages tree contains circular reference.\");\n }\n visitedNodes.put(currentNode);\n\n const obj = await xref.fetchAsync(currentNode);\n if (obj instanceof Dict) {\n let type = obj.getRaw(\"Type\");\n if (type instanceof Ref) {\n type = await xref.fetchAsync(type);\n }\n if (isName(type, \"Page\") || !obj.has(\"Kids\")) {\n // Cache the Page reference, since it can *greatly* improve\n // performance by reducing redundant lookups in long documents\n // where all nodes are found at *one* level of the tree.\n if (!pageKidsCountCache.has(currentNode)) {\n pageKidsCountCache.put(currentNode, 1);\n }\n // Help improve performance of the `getPageIndex` method.\n if (!pageIndexCache.has(currentNode)) {\n pageIndexCache.put(currentNode, currentPageIndex);\n }\n\n if (currentPageIndex === pageIndex) {\n return [obj, currentNode];\n }\n currentPageIndex++;\n continue;\n }\n }\n nodesToVisit.push(obj);\n continue;\n }\n\n // Must be a child page dictionary.\n if (!(currentNode instanceof Dict)) {\n throw new FormatError(\n \"Page dictionary kid reference points to wrong type of object.\"\n );\n }\n const { objId } = currentNode;\n\n let count = currentNode.getRaw(\"Count\");\n if (count instanceof Ref) {\n count = await xref.fetchAsync(count);\n }\n if (Number.isInteger(count) && count >= 0) {\n // Cache the Kids count, since it can reduce redundant lookups in\n // documents where all nodes are found at *one* level of the tree.\n if (objId && !pageKidsCountCache.has(objId)) {\n pageKidsCountCache.put(objId, count);\n }\n\n // Skip nodes where the page can't be.\n if (currentPageIndex + count <= pageIndex) {\n currentPageIndex += count;\n continue;\n }\n }\n\n let kids = currentNode.getRaw(\"Kids\");\n if (kids instanceof Ref) {\n kids = await xref.fetchAsync(kids);\n }\n if (!Array.isArray(kids)) {\n // Prevent errors in corrupt PDF documents that violate the\n // specification by *inlining* Page dicts directly in the Kids\n // array, rather than using indirect objects (fixes issue9540.pdf).\n let type = currentNode.getRaw(\"Type\");\n if (type instanceof Ref) {\n type = await xref.fetchAsync(type);\n }\n if (isName(type, \"Page\") || !currentNode.has(\"Kids\")) {\n if (currentPageIndex === pageIndex) {\n return [currentNode, null];\n }\n currentPageIndex++;\n continue;\n }\n\n throw new FormatError(\"Page dictionary kids object is not an array.\");\n }\n\n // Always check all `Kids` nodes, to avoid getting stuck in an empty\n // node further down in the tree (see issue5644.pdf, issue8088.pdf),\n // and to ensure that we actually find the correct `Page` dict.\n for (let last = kids.length - 1; last >= 0; last--) {\n nodesToVisit.push(kids[last]);\n }\n }\n\n throw new Error(`Page index ${pageIndex} not found.`);\n }\n\n /**\n * Eagerly fetches the entire /Pages-tree; should ONLY be used as a fallback.\n * @returns {Promise}\n */\n async getAllPageDicts(recoveryMode = false) {\n const queue = [{ currentNode: this.toplevelPagesDict, posInKids: 0 }];\n const visitedNodes = new RefSet();\n\n const pagesRef = this._catDict.getRaw(\"Pages\");\n if (pagesRef instanceof Ref) {\n visitedNodes.put(pagesRef);\n }\n const map = new Map(),\n xref = this.xref,\n pageIndexCache = this.pageIndexCache;\n let pageIndex = 0;\n\n function addPageDict(pageDict, pageRef) {\n // Help improve performance of the `getPageIndex` method.\n if (pageRef && !pageIndexCache.has(pageRef)) {\n pageIndexCache.put(pageRef, pageIndex);\n }\n\n map.set(pageIndex++, [pageDict, pageRef]);\n }\n function addPageError(error) {\n if (error instanceof XRefEntryException && !recoveryMode) {\n throw error;\n }\n\n map.set(pageIndex++, [error, null]);\n }\n\n while (queue.length > 0) {\n const queueItem = queue[queue.length - 1];\n const { currentNode, posInKids } = queueItem;\n\n let kids = currentNode.getRaw(\"Kids\");\n if (kids instanceof Ref) {\n try {\n kids = await xref.fetchAsync(kids);\n } catch (ex) {\n addPageError(ex);\n break;\n }\n }\n if (!Array.isArray(kids)) {\n addPageError(\n new FormatError(\"Page dictionary kids object is not an array.\")\n );\n break;\n }\n\n if (posInKids >= kids.length) {\n queue.pop();\n continue;\n }\n\n const kidObj = kids[posInKids];\n let obj;\n if (kidObj instanceof Ref) {\n // Prevent circular references in the /Pages tree.\n if (visitedNodes.has(kidObj)) {\n addPageError(\n new FormatError(\"Pages tree contains circular reference.\")\n );\n break;\n }\n visitedNodes.put(kidObj);\n\n try {\n obj = await xref.fetchAsync(kidObj);\n } catch (ex) {\n addPageError(ex);\n break;\n }\n } else {\n // Prevent errors in corrupt PDF documents that violate the\n // specification by *inlining* Page dicts directly in the Kids\n // array, rather than using indirect objects (see issue9540.pdf).\n obj = kidObj;\n }\n if (!(obj instanceof Dict)) {\n addPageError(\n new FormatError(\n \"Page dictionary kid reference points to wrong type of object.\"\n )\n );\n break;\n }\n\n let type = obj.getRaw(\"Type\");\n if (type instanceof Ref) {\n try {\n type = await xref.fetchAsync(type);\n } catch (ex) {\n addPageError(ex);\n break;\n }\n }\n if (isName(type, \"Page\") || !obj.has(\"Kids\")) {\n addPageDict(obj, kidObj instanceof Ref ? kidObj : null);\n } else {\n queue.push({ currentNode: obj, posInKids: 0 });\n }\n queueItem.posInKids++;\n }\n return map;\n }\n\n getPageIndex(pageRef) {\n const cachedPageIndex = this.pageIndexCache.get(pageRef);\n if (cachedPageIndex !== undefined) {\n return Promise.resolve(cachedPageIndex);\n }\n\n // The page tree nodes have the count of all the leaves below them. To get\n // how many pages are before we just have to walk up the tree and keep\n // adding the count of siblings to the left of the node.\n const xref = this.xref;\n\n function pagesBeforeRef(kidRef) {\n let total = 0,\n parentRef;\n\n return xref\n .fetchAsync(kidRef)\n .then(function (node) {\n if (\n isRefsEqual(kidRef, pageRef) &&\n !isDict(node, \"Page\") &&\n !(node instanceof Dict && !node.has(\"Type\") && node.has(\"Contents\"))\n ) {\n throw new FormatError(\n \"The reference does not point to a /Page dictionary.\"\n );\n }\n if (!node) {\n return null;\n }\n if (!(node instanceof Dict)) {\n throw new FormatError(\"Node must be a dictionary.\");\n }\n parentRef = node.getRaw(\"Parent\");\n return node.getAsync(\"Parent\");\n })\n .then(function (parent) {\n if (!parent) {\n return null;\n }\n if (!(parent instanceof Dict)) {\n throw new FormatError(\"Parent must be a dictionary.\");\n }\n return parent.getAsync(\"Kids\");\n })\n .then(function (kids) {\n if (!kids) {\n return null;\n }\n\n const kidPromises = [];\n let found = false;\n for (let i = 0, ii = kids.length; i < ii; i++) {\n const kid = kids[i];\n if (!(kid instanceof Ref)) {\n throw new FormatError(\"Kid must be a reference.\");\n }\n if (isRefsEqual(kid, kidRef)) {\n found = true;\n break;\n }\n kidPromises.push(\n xref.fetchAsync(kid).then(function (obj) {\n if (!(obj instanceof Dict)) {\n throw new FormatError(\"Kid node must be a dictionary.\");\n }\n if (obj.has(\"Count\")) {\n total += obj.get(\"Count\");\n } else {\n // Page leaf node.\n total++;\n }\n })\n );\n }\n if (!found) {\n throw new FormatError(\"Kid reference not found in parent's kids.\");\n }\n return Promise.all(kidPromises).then(function () {\n return [total, parentRef];\n });\n });\n }\n\n let total = 0;\n const next = ref =>\n pagesBeforeRef(ref).then(args => {\n if (!args) {\n this.pageIndexCache.put(pageRef, total);\n return total;\n }\n const [count, parentRef] = args;\n total += count;\n return next(parentRef);\n });\n\n return next(pageRef);\n }\n\n get baseUrl() {\n const uri = this._catDict.get(\"URI\");\n if (uri instanceof Dict) {\n const base = uri.get(\"Base\");\n if (typeof base === \"string\") {\n const absoluteUrl = createValidAbsoluteUrl(base, null, {\n tryConvertEncoding: true,\n });\n if (absoluteUrl) {\n return shadow(this, \"baseUrl\", absoluteUrl.href);\n }\n }\n }\n return shadow(this, \"baseUrl\", null);\n }\n\n /**\n * @typedef {Object} ParseDestDictionaryParameters\n * @property {Dict} destDict - The dictionary containing the destination.\n * @property {Object} resultObj - The object where the parsed destination\n * properties will be placed.\n * @property {string} [docBaseUrl] - The document base URL that is used when\n * attempting to recover valid absolute URLs from relative ones.\n */\n\n /**\n * Helper function used to parse the contents of destination dictionaries.\n * @param {ParseDestDictionaryParameters} params\n */\n static parseDestDictionary(params) {\n const destDict = params.destDict;\n if (!(destDict instanceof Dict)) {\n warn(\"parseDestDictionary: `destDict` must be a dictionary.\");\n return;\n }\n const resultObj = params.resultObj;\n if (typeof resultObj !== \"object\") {\n warn(\"parseDestDictionary: `resultObj` must be an object.\");\n return;\n }\n const docBaseUrl = params.docBaseUrl || null;\n\n let action = destDict.get(\"A\"),\n url,\n dest;\n if (!(action instanceof Dict)) {\n if (destDict.has(\"Dest\")) {\n // A /Dest entry should *only* contain a Name or an Array, but some bad\n // PDF generators ignore that and treat it as an /A entry.\n action = destDict.get(\"Dest\");\n } else {\n action = destDict.get(\"AA\");\n if (action instanceof Dict) {\n if (action.has(\"D\")) {\n // MouseDown\n action = action.get(\"D\");\n } else if (action.has(\"U\")) {\n // MouseUp\n action = action.get(\"U\");\n }\n }\n }\n }\n\n if (action instanceof Dict) {\n const actionType = action.get(\"S\");\n if (!(actionType instanceof Name)) {\n warn(\"parseDestDictionary: Invalid type in Action dictionary.\");\n return;\n }\n const actionName = actionType.name;\n\n switch (actionName) {\n case \"ResetForm\":\n const flags = action.get(\"Flags\");\n const include = ((typeof flags === \"number\" ? flags : 0) & 1) === 0;\n const fields = [];\n const refs = [];\n for (const obj of action.get(\"Fields\") || []) {\n if (obj instanceof Ref) {\n refs.push(obj.toString());\n } else if (typeof obj === \"string\") {\n fields.push(stringToPDFString(obj));\n }\n }\n resultObj.resetForm = { fields, refs, include };\n break;\n case \"URI\":\n url = action.get(\"URI\");\n if (url instanceof Name) {\n // Some bad PDFs do not put parentheses around relative URLs.\n url = \"/\" + url.name;\n }\n break;\n\n case \"GoTo\":\n dest = action.get(\"D\");\n break;\n\n case \"Launch\":\n // We neither want, nor can, support arbitrary 'Launch' actions.\n // However, in practice they are mostly used for linking to other PDF\n // files, which we thus attempt to support (utilizing `docBaseUrl`).\n /* falls through */\n\n case \"GoToR\":\n const urlDict = action.get(\"F\");\n if (urlDict instanceof Dict) {\n // We assume that we found a FileSpec dictionary\n // and fetch the URL without checking any further.\n url = urlDict.get(\"F\") || null;\n } else if (typeof urlDict === \"string\") {\n url = urlDict;\n }\n\n // NOTE: the destination is relative to the *remote* document.\n let remoteDest = action.get(\"D\");\n if (remoteDest) {\n if (remoteDest instanceof Name) {\n remoteDest = remoteDest.name;\n }\n if (typeof url === \"string\") {\n const baseUrl = url.split(\"#\")[0];\n if (typeof remoteDest === \"string\") {\n url = baseUrl + \"#\" + remoteDest;\n } else if (Array.isArray(remoteDest)) {\n url = baseUrl + \"#\" + JSON.stringify(remoteDest);\n }\n }\n }\n // The 'NewWindow' property, equal to `LinkTarget.BLANK`.\n const newWindow = action.get(\"NewWindow\");\n if (typeof newWindow === \"boolean\") {\n resultObj.newWindow = newWindow;\n }\n break;\n\n case \"Named\":\n const namedAction = action.get(\"N\");\n if (namedAction instanceof Name) {\n resultObj.action = namedAction.name;\n }\n break;\n\n case \"JavaScript\":\n const jsAction = action.get(\"JS\");\n let js;\n\n if (jsAction instanceof BaseStream) {\n js = jsAction.getString();\n } else if (typeof jsAction === \"string\") {\n js = jsAction;\n }\n\n const jsURL = js && recoverJsURL(stringToPDFString(js));\n if (jsURL) {\n url = jsURL.url;\n resultObj.newWindow = jsURL.newWindow;\n break;\n }\n /* falls through */\n default:\n if (actionName === \"JavaScript\" || actionName === \"SubmitForm\") {\n // Don't bother the user with a warning for actions that require\n // scripting support, since those will be handled separately.\n break;\n }\n warn(`parseDestDictionary - unsupported action: \"${actionName}\".`);\n break;\n }\n } else if (destDict.has(\"Dest\")) {\n // Simple destination.\n dest = destDict.get(\"Dest\");\n }\n\n if (typeof url === \"string\") {\n const absoluteUrl = createValidAbsoluteUrl(url, docBaseUrl, {\n addDefaultProtocol: true,\n tryConvertEncoding: true,\n });\n if (absoluteUrl) {\n resultObj.url = absoluteUrl.href;\n }\n resultObj.unsafeUrl = url;\n }\n if (dest) {\n if (dest instanceof Name) {\n dest = dest.name;\n }\n if (typeof dest === \"string\") {\n resultObj.dest = stringToPDFString(dest);\n } else if (Array.isArray(dest)) {\n resultObj.dest = dest;\n }\n }\n }\n}\n\nclass ExtendedCatalog extends Catalog {\n constructor(pdfManager, xref) {\n super(pdfManager, xref);\n\n this.pages = this.getPages(this.toplevelPagesDict.get('Kids'));\n }\n\n _convertStructToObject(struct) {\n if (Array.isArray(struct)) {\n return struct.map(el => this._convertStructToObject(el));\n } else if (isDict(struct)) {\n let result = {};\n struct.getKeys().forEach(key => {\n result[key] = this._convertStructToObject(struct.get(key));\n });\n return result;\n } else if (isName(struct)) {\n return struct.name;\n } else {\n return struct;\n }\n }\n\n get structTreeRoot() {\n const structTreeRoot = this._catDict.get('StructTreeRoot');\n if (!isDict(structTreeRoot)) {\n return null;\n }\n return shadow(this, 'structTreeRoot', structTreeRoot);\n }\n\n getTreeElement(el, page, ref) {\n //update page for current element\n if (isDict(el) && el.has('Pg')) {\n let pageRef = el.getRaw('Pg');\n let newPage = this.pages.findIndex(el => el.num === pageRef.num && el.gen === pageRef.gen);\n newPage = newPage !== -1 ? newPage : null;\n if (newPage !== page) {\n page = newPage;\n }\n }\n\n if (isDict(el) && el.has('K')) {\n return {\n name: el.has('S') ? stringToUTF8String(el.get('S').name) : null,\n children: this.getTreeElement(el.get('K'), page, el.getRaw('K')),\n ref: ref\n }\n }\n\n if (isDict(el) && el.has('Obj')) {\n let obj = el.get('Obj');\n let type = null;\n if (obj.has('Type')) {\n type = obj.get('Type').name;\n }\n if (obj.has('Subtype')) {\n type = obj.get('Subtype').name;\n }\n switch (type){\n case 'Link':\n case 'Annot':\n let rect = obj.get('Rect');\n return {\n rect: [rect[0], rect[1], rect[2], rect[3]],\n pageIndex: page\n };\n default:\n break;\n }\n }\n\n if (Array.isArray(el)) {\n return el.map(subel => {\n if (Number.isInteger(subel)) {\n return {mcid: subel, pageIndex: page};\n } else if (!(subel.hasOwnProperty('num') && subel.hasOwnProperty('gen')) && subel.get('Type') !== 'OBJR') {\n return this.getTreeElement(subel, page);\n } else if (subel.hasOwnProperty('num') && subel.hasOwnProperty('gen')){\n return this.getTreeElement(this.xref.fetch(subel), page, subel);\n }\n })\n }\n\n if (Number.isInteger(el)) {\n return {mcid: el, pageIndex: page};\n }\n\n if (isDict(el) && el.has('Type') && el.get('Type').name === 'MCR') {\n return {mcid: el.get('MCID'), pageIndex: page};\n }\n }\n\n getPages(pages) {\n let pagesArray = [];\n pages.map(kid => {\n if (kid instanceof Ref){\n let kidObj = this.xref.fetch(kid);\n let kidObjType = kidObj.get('Type').name;\n switch (kidObjType) {\n case 'Page':\n pagesArray.push(kid);\n break;\n case 'Pages':\n let array = this.getPages(kidObj.get('Kids'));\n pagesArray = pagesArray.concat(array);\n break;\n default:\n break;\n }\n }\n });\n return pagesArray;\n }\n\n get structureTree() {\n let structureTree = null;\n if (this.structTreeRoot && isDict(this.structTreeRoot) && this.structTreeRoot.has('K')) {\n structureTree = this.getTreeElement(this.structTreeRoot.get('K'), null, this.structTreeRoot.getRaw('K'));\n }\n return shadow(this, 'structureTree', structureTree);\n }\n}\n\nexport { ExtendedCatalog as Catalog };\n\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Dict, RefSet } from \"./primitives.js\";\nimport { FormatError, unreachable, warn } from \"../shared/util.js\";\n\n/**\n * A NameTree/NumberTree is like a Dict but has some advantageous properties,\n * see the specification (7.9.6 and 7.9.7) for additional details.\n * TODO: implement all the Dict functions and make this more efficient.\n */\nclass NameOrNumberTree {\n constructor(root, xref, type) {\n if (this.constructor === NameOrNumberTree) {\n unreachable(\"Cannot initialize NameOrNumberTree.\");\n }\n this.root = root;\n this.xref = xref;\n this._type = type;\n }\n\n getAll() {\n const map = new Map();\n if (!this.root) {\n return map;\n }\n const xref = this.xref;\n // Reading Name/Number tree.\n const processed = new RefSet();\n processed.put(this.root);\n const queue = [this.root];\n while (queue.length > 0) {\n const obj = xref.fetchIfRef(queue.shift());\n if (!(obj instanceof Dict)) {\n continue;\n }\n if (obj.has(\"Kids\")) {\n const kids = obj.get(\"Kids\");\n if (!Array.isArray(kids)) {\n continue;\n }\n for (const kid of kids) {\n if (processed.has(kid)) {\n throw new FormatError(`Duplicate entry in \"${this._type}\" tree.`);\n }\n queue.push(kid);\n processed.put(kid);\n }\n continue;\n }\n const entries = obj.get(this._type);\n if (!Array.isArray(entries)) {\n continue;\n }\n for (let i = 0, ii = entries.length; i < ii; i += 2) {\n map.set(xref.fetchIfRef(entries[i]), xref.fetchIfRef(entries[i + 1]));\n }\n }\n return map;\n }\n\n get(key) {\n if (!this.root) {\n return null;\n }\n const xref = this.xref;\n let kidsOrEntries = xref.fetchIfRef(this.root);\n let loopCount = 0;\n const MAX_LEVELS = 10;\n\n // Perform a binary search to quickly find the entry that\n // contains the key we are looking for.\n while (kidsOrEntries.has(\"Kids\")) {\n if (++loopCount > MAX_LEVELS) {\n warn(`Search depth limit reached for \"${this._type}\" tree.`);\n return null;\n }\n\n const kids = kidsOrEntries.get(\"Kids\");\n if (!Array.isArray(kids)) {\n return null;\n }\n\n let l = 0,\n r = kids.length - 1;\n while (l <= r) {\n const m = (l + r) >> 1;\n const kid = xref.fetchIfRef(kids[m]);\n const limits = kid.get(\"Limits\");\n\n if (key < xref.fetchIfRef(limits[0])) {\n r = m - 1;\n } else if (key > xref.fetchIfRef(limits[1])) {\n l = m + 1;\n } else {\n kidsOrEntries = kid;\n break;\n }\n }\n if (l > r) {\n return null;\n }\n }\n\n // If we get here, then we have found the right entry. Now go through the\n // entries in the dictionary until we find the key we're looking for.\n const entries = kidsOrEntries.get(this._type);\n if (Array.isArray(entries)) {\n // Perform a binary search to reduce the lookup time.\n let l = 0,\n r = entries.length - 2;\n while (l <= r) {\n // Check only even indices (0, 2, 4, ...) because the\n // odd indices contain the actual data.\n const tmp = (l + r) >> 1,\n m = tmp + (tmp & 1);\n const currentKey = xref.fetchIfRef(entries[m]);\n if (key < currentKey) {\n r = m - 2;\n } else if (key > currentKey) {\n l = m + 2;\n } else {\n return xref.fetchIfRef(entries[m + 1]);\n }\n }\n }\n return null;\n }\n}\n\nclass NameTree extends NameOrNumberTree {\n constructor(root, xref) {\n super(root, xref, \"Names\");\n }\n}\n\nclass NumberTree extends NameOrNumberTree {\n constructor(root, xref) {\n super(root, xref, \"Nums\");\n }\n}\n\nexport { NameTree, NumberTree };\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { clearPrimitiveCaches } from \"./primitives.js\";\nimport { clearUnicodeCaches } from \"./unicode.js\";\n\nfunction clearGlobalCaches() {\n clearPrimitiveCaches();\n clearUnicodeCaches();\n}\n\nexport { clearGlobalCaches };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { stringToPDFString, warn } from \"../shared/util.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { Dict } from \"./primitives.js\";\n\nfunction pickPlatformItem(dict) {\n // Look for the filename in this order:\n // UF, F, Unix, Mac, DOS\n if (dict.has(\"UF\")) {\n return dict.get(\"UF\");\n } else if (dict.has(\"F\")) {\n return dict.get(\"F\");\n } else if (dict.has(\"Unix\")) {\n return dict.get(\"Unix\");\n } else if (dict.has(\"Mac\")) {\n return dict.get(\"Mac\");\n } else if (dict.has(\"DOS\")) {\n return dict.get(\"DOS\");\n }\n return null;\n}\n\n/**\n * \"A PDF file can refer to the contents of another file by using a File\n * Specification (PDF 1.1)\", see the spec (7.11) for more details.\n * NOTE: Only embedded files are supported (as part of the attachments support)\n * TODO: support the 'URL' file system (with caching if !/V), portable\n * collections attributes and related files (/RF)\n */\nclass FileSpec {\n constructor(root, xref) {\n if (!(root instanceof Dict)) {\n return;\n }\n this.xref = xref;\n this.root = root;\n if (root.has(\"FS\")) {\n this.fs = root.get(\"FS\");\n }\n this.description = root.has(\"Desc\")\n ? stringToPDFString(root.get(\"Desc\"))\n : \"\";\n if (root.has(\"RF\")) {\n warn(\"Related file specifications are not supported\");\n }\n this.contentAvailable = true;\n if (!root.has(\"EF\")) {\n this.contentAvailable = false;\n warn(\"Non-embedded file specifications are not supported\");\n }\n }\n\n get filename() {\n if (!this._filename && this.root) {\n const filename = pickPlatformItem(this.root) || \"unnamed\";\n this._filename = stringToPDFString(filename)\n .replace(/\\\\\\\\/g, \"\\\\\")\n .replace(/\\\\\\//g, \"/\")\n .replace(/\\\\/g, \"/\");\n }\n return this._filename;\n }\n\n get content() {\n if (!this.contentAvailable) {\n return null;\n }\n if (!this.contentRef && this.root) {\n this.contentRef = pickPlatformItem(this.root.get(\"EF\"));\n }\n let content = null;\n if (this.contentRef) {\n const fileObj = this.xref.fetchIfRef(this.contentRef);\n if (fileObj instanceof BaseStream) {\n content = fileObj.getBytes();\n } else {\n warn(\n \"Embedded file specification points to non-existing/invalid content\"\n );\n }\n } else {\n warn(\"Embedded file specification does not have a content\");\n }\n return content;\n }\n\n get serializable() {\n return {\n filename: this.filename,\n content: this.content,\n };\n }\n}\n\nexport { FileSpec };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SimpleXMLParser } from \"./xml_parser.js\";\n\nclass MetadataParser {\n constructor(data) {\n // Ghostscript may produce invalid metadata, so try to repair that first.\n data = this._repair(data);\n\n // Convert the string to an XML document.\n const parser = new SimpleXMLParser({ lowerCaseName: true });\n const xmlDocument = parser.parseFromString(data);\n\n this._metadataMap = new Map();\n this._data = data;\n\n if (xmlDocument) {\n this._parse(xmlDocument);\n }\n }\n\n _repair(data) {\n // Start by removing any \"junk\" before the first tag (see issue 10395).\n return data\n .replace(/^[^<]+/, \"\")\n .replace(/>\\\\376\\\\377([^<]+)/g, function (all, codes) {\n const bytes = codes\n .replace(/\\\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) {\n return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1);\n })\n .replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) {\n switch (name) {\n case \"amp\":\n return \"&\";\n case \"apos\":\n return \"'\";\n case \"gt\":\n return \">\";\n case \"lt\":\n return \"<\";\n case \"quot\":\n return '\"';\n }\n throw new Error(`_repair: ${name} isn't defined.`);\n });\n\n const charBuf = [];\n for (let i = 0, ii = bytes.length; i < ii; i += 2) {\n const code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);\n if (\n code >= /* Space = */ 32 &&\n code < /* Delete = */ 127 &&\n code !== /* '<' = */ 60 &&\n code !== /* '>' = */ 62 &&\n code !== /* '&' = */ 38\n ) {\n charBuf.push(String.fromCharCode(code));\n } else {\n charBuf.push(\n \"&#x\" + (0x10000 + code).toString(16).substring(1) + \";\"\n );\n }\n }\n return \">\" + charBuf.join(\"\");\n });\n }\n\n _getSequence(entry) {\n const name = entry.nodeName;\n if (name !== \"rdf:bag\" && name !== \"rdf:seq\" && name !== \"rdf:alt\") {\n return null;\n }\n return entry.childNodes.filter(node => node.nodeName === \"rdf:li\");\n }\n\n _parseArray(entry) {\n if (!entry.hasChildNodes()) {\n return;\n }\n // Child must be a Bag (unordered array) or a Seq.\n const [seqNode] = entry.childNodes;\n const sequence = this._getSequence(seqNode) || [];\n\n this._metadataMap.set(\n entry.nodeName,\n sequence.map(node => node.textContent.trim())\n );\n }\n\n _parse(xmlDocument) {\n let rdf = xmlDocument.documentElement;\n\n if (rdf.nodeName !== \"rdf:rdf\") {\n // Wrapped in \n rdf = rdf.firstChild;\n while (rdf && rdf.nodeName !== \"rdf:rdf\") {\n rdf = rdf.nextSibling;\n }\n }\n\n if (!rdf || rdf.nodeName !== \"rdf:rdf\" || !rdf.hasChildNodes()) {\n return;\n }\n\n for (const desc of rdf.childNodes) {\n if (desc.nodeName !== \"rdf:description\") {\n continue;\n }\n\n for (const entry of desc.childNodes) {\n const name = entry.nodeName;\n switch (name) {\n case \"#text\":\n continue;\n case \"dc:creator\":\n case \"dc:subject\":\n this._parseArray(entry);\n continue;\n }\n this._metadataMap.set(name, entry.textContent.trim());\n }\n }\n }\n\n get serializable() {\n return {\n parsedData: this._metadataMap,\n rawData: this._data,\n };\n }\n}\n\nexport { MetadataParser };\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// The code for XMLParserBase copied from\n// https://github.com/mozilla/shumway/blob/16451d8836fa85f4b16eeda8b4bda2fa9e2b22b0/src/avm2/natives/xml.ts\n\nimport { encodeToXmlString } from \"./core_utils.js\";\n\nconst XMLParserErrorCode = {\n NoError: 0,\n EndOfDocument: -1,\n UnterminatedCdat: -2,\n UnterminatedXmlDeclaration: -3,\n UnterminatedDoctypeDeclaration: -4,\n UnterminatedComment: -5,\n MalformedElement: -6,\n OutOfMemory: -7,\n UnterminatedAttributeValue: -8,\n UnterminatedElement: -9,\n ElementNeverBegun: -10,\n};\n\nfunction isWhitespace(s, index) {\n const ch = s[index];\n return ch === \" \" || ch === \"\\n\" || ch === \"\\r\" || ch === \"\\t\";\n}\n\nfunction isWhitespaceString(s) {\n for (let i = 0, ii = s.length; i < ii; i++) {\n if (!isWhitespace(s, i)) {\n return false;\n }\n }\n return true;\n}\n\nclass XMLParserBase {\n _resolveEntities(s) {\n return s.replace(/&([^;]+);/g, (all, entity) => {\n if (entity.substring(0, 2) === \"#x\") {\n return String.fromCodePoint(parseInt(entity.substring(2), 16));\n } else if (entity.substring(0, 1) === \"#\") {\n return String.fromCodePoint(parseInt(entity.substring(1), 10));\n }\n switch (entity) {\n case \"lt\":\n return \"<\";\n case \"gt\":\n return \">\";\n case \"amp\":\n return \"&\";\n case \"quot\":\n return '\"';\n case \"apos\":\n return \"'\";\n }\n return this.onResolveEntity(entity);\n });\n }\n\n _parseContent(s, start) {\n const attributes = [];\n let pos = start;\n\n function skipWs() {\n while (pos < s.length && isWhitespace(s, pos)) {\n ++pos;\n }\n }\n\n while (\n pos < s.length &&\n !isWhitespace(s, pos) &&\n s[pos] !== \">\" &&\n s[pos] !== \"/\"\n ) {\n ++pos;\n }\n const name = s.substring(start, pos);\n skipWs();\n while (\n pos < s.length &&\n s[pos] !== \">\" &&\n s[pos] !== \"/\" &&\n s[pos] !== \"?\"\n ) {\n skipWs();\n let attrName = \"\",\n attrValue = \"\";\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \"=\") {\n attrName += s[pos];\n ++pos;\n }\n skipWs();\n if (s[pos] !== \"=\") {\n return null;\n }\n ++pos;\n skipWs();\n const attrEndChar = s[pos];\n if (attrEndChar !== '\"' && attrEndChar !== \"'\") {\n return null;\n }\n const attrEndIndex = s.indexOf(attrEndChar, ++pos);\n if (attrEndIndex < 0) {\n return null;\n }\n attrValue = s.substring(pos, attrEndIndex);\n attributes.push({\n name: attrName,\n value: this._resolveEntities(attrValue),\n });\n pos = attrEndIndex + 1;\n skipWs();\n }\n return {\n name,\n attributes,\n parsed: pos - start,\n };\n }\n\n _parseProcessingInstruction(s, start) {\n let pos = start;\n\n function skipWs() {\n while (pos < s.length && isWhitespace(s, pos)) {\n ++pos;\n }\n }\n\n while (\n pos < s.length &&\n !isWhitespace(s, pos) &&\n s[pos] !== \">\" &&\n s[pos] !== \"?\" &&\n s[pos] !== \"/\"\n ) {\n ++pos;\n }\n const name = s.substring(start, pos);\n skipWs();\n const attrStart = pos;\n while (pos < s.length && (s[pos] !== \"?\" || s[pos + 1] !== \">\")) {\n ++pos;\n }\n const value = s.substring(attrStart, pos);\n return {\n name,\n value,\n parsed: pos - start,\n };\n }\n\n parseXml(s) {\n let i = 0;\n while (i < s.length) {\n const ch = s[i];\n let j = i;\n if (ch === \"<\") {\n ++j;\n const ch2 = s[j];\n let q;\n switch (ch2) {\n case \"/\":\n ++j;\n q = s.indexOf(\">\", j);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n this.onEndElement(s.substring(j, q));\n j = q + 1;\n break;\n case \"?\":\n ++j;\n const pi = this._parseProcessingInstruction(s, j);\n if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== \"?>\") {\n this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);\n return;\n }\n this.onPi(pi.name, pi.value);\n j += pi.parsed + 2;\n break;\n case \"!\":\n if (s.substring(j + 1, j + 3) === \"--\") {\n q = s.indexOf(\"-->\", j + 3);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedComment);\n return;\n }\n this.onComment(s.substring(j + 3, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === \"[CDATA[\") {\n q = s.indexOf(\"]]>\", j + 8);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedCdat);\n return;\n }\n this.onCdata(s.substring(j + 8, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === \"DOCTYPE\") {\n const q2 = s.indexOf(\"[\", j + 8);\n let complexDoctype = false;\n q = s.indexOf(\">\", j + 8);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n return;\n }\n if (q2 > 0 && q > q2) {\n q = s.indexOf(\"]>\", j + 8);\n if (q < 0) {\n this.onError(\n XMLParserErrorCode.UnterminatedDoctypeDeclaration\n );\n return;\n }\n complexDoctype = true;\n }\n const doctypeContent = s.substring(\n j + 8,\n q + (complexDoctype ? 1 : 0)\n );\n this.onDoctype(doctypeContent);\n j = q + (complexDoctype ? 2 : 1);\n } else {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n break;\n default:\n const content = this._parseContent(s, j);\n if (content === null) {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n let isClosed = false;\n if (\n s.substring(j + content.parsed, j + content.parsed + 2) === \"/>\"\n ) {\n isClosed = true;\n } else if (\n s.substring(j + content.parsed, j + content.parsed + 1) !== \">\"\n ) {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n this.onBeginElement(content.name, content.attributes, isClosed);\n j += content.parsed + (isClosed ? 2 : 1);\n break;\n }\n } else {\n while (j < s.length && s[j] !== \"<\") {\n j++;\n }\n const text = s.substring(i, j);\n this.onText(this._resolveEntities(text));\n }\n i = j;\n }\n }\n\n onResolveEntity(name) {\n return `&${name};`;\n }\n\n onPi(name, value) {}\n\n onComment(text) {}\n\n onCdata(text) {}\n\n onDoctype(doctypeContent) {}\n\n onText(text) {}\n\n onBeginElement(name, attributes, isEmpty) {}\n\n onEndElement(name) {}\n\n onError(code) {}\n}\n\nclass SimpleDOMNode {\n constructor(nodeName, nodeValue) {\n this.nodeName = nodeName;\n this.nodeValue = nodeValue;\n\n Object.defineProperty(this, \"parentNode\", { value: null, writable: true });\n }\n\n get firstChild() {\n return this.childNodes && this.childNodes[0];\n }\n\n get nextSibling() {\n const childNodes = this.parentNode.childNodes;\n if (!childNodes) {\n return undefined;\n }\n const index = childNodes.indexOf(this);\n if (index === -1) {\n return undefined;\n }\n return childNodes[index + 1];\n }\n\n get textContent() {\n if (!this.childNodes) {\n return this.nodeValue || \"\";\n }\n return this.childNodes\n .map(function (child) {\n return child.textContent;\n })\n .join(\"\");\n }\n\n get children() {\n return this.childNodes || [];\n }\n\n hasChildNodes() {\n return this.childNodes && this.childNodes.length > 0;\n }\n\n /**\n * Search a node in the tree with the given path\n * foo.bar[nnn], i.e. find the nnn-th node named\n * bar under a node named foo.\n *\n * @param {Array} paths - an array of objects as\n * returned by {parseXFAPath}.\n * @param {number} pos - the current position in\n * the paths array.\n * @returns {SimpleDOMNode} The node corresponding\n * to the path or null if not found.\n */\n searchNode(paths, pos) {\n if (pos >= paths.length) {\n return this;\n }\n\n const component = paths[pos];\n const stack = [];\n let node = this;\n\n while (true) {\n if (component.name === node.nodeName) {\n if (component.pos === 0) {\n const res = node.searchNode(paths, pos + 1);\n if (res !== null) {\n return res;\n }\n } else if (stack.length === 0) {\n return null;\n } else {\n const [parent] = stack.pop();\n let siblingPos = 0;\n for (const child of parent.childNodes) {\n if (component.name === child.nodeName) {\n if (siblingPos === component.pos) {\n return child.searchNode(paths, pos + 1);\n }\n siblingPos++;\n }\n }\n // We didn't find the correct sibling\n // so just return the first found node\n return node.searchNode(paths, pos + 1);\n }\n }\n\n if (node.childNodes && node.childNodes.length !== 0) {\n stack.push([node, 0]);\n node = node.childNodes[0];\n } else if (stack.length === 0) {\n return null;\n } else {\n while (stack.length !== 0) {\n const [parent, currentPos] = stack.pop();\n const newPos = currentPos + 1;\n if (newPos < parent.childNodes.length) {\n stack.push([parent, newPos]);\n node = parent.childNodes[newPos];\n break;\n }\n }\n if (stack.length === 0) {\n return null;\n }\n }\n }\n }\n\n dump(buffer) {\n if (this.nodeName === \"#text\") {\n buffer.push(encodeToXmlString(this.nodeValue));\n return;\n }\n\n buffer.push(`<${this.nodeName}`);\n if (this.attributes) {\n for (const attribute of this.attributes) {\n buffer.push(\n ` ${attribute.name}=\"${encodeToXmlString(attribute.value)}\"`\n );\n }\n }\n if (this.hasChildNodes()) {\n buffer.push(\">\");\n for (const child of this.childNodes) {\n child.dump(buffer);\n }\n buffer.push(``);\n } else if (this.nodeValue) {\n buffer.push(`>${encodeToXmlString(this.nodeValue)}`);\n } else {\n buffer.push(\"/>\");\n }\n }\n}\n\nclass SimpleXMLParser extends XMLParserBase {\n constructor({ hasAttributes = false, lowerCaseName = false }) {\n super();\n this._currentFragment = null;\n this._stack = null;\n this._errorCode = XMLParserErrorCode.NoError;\n this._hasAttributes = hasAttributes;\n this._lowerCaseName = lowerCaseName;\n }\n\n parseFromString(data) {\n this._currentFragment = [];\n this._stack = [];\n this._errorCode = XMLParserErrorCode.NoError;\n\n this.parseXml(data);\n\n if (this._errorCode !== XMLParserErrorCode.NoError) {\n return undefined; // return undefined on error\n }\n\n // We should only have one root.\n const [documentElement] = this._currentFragment;\n if (!documentElement) {\n return undefined; // Return undefined if no root was found.\n }\n return { documentElement };\n }\n\n onText(text) {\n if (isWhitespaceString(text)) {\n return;\n }\n const node = new SimpleDOMNode(\"#text\", text);\n this._currentFragment.push(node);\n }\n\n onCdata(text) {\n const node = new SimpleDOMNode(\"#text\", text);\n this._currentFragment.push(node);\n }\n\n onBeginElement(name, attributes, isEmpty) {\n if (this._lowerCaseName) {\n name = name.toLowerCase();\n }\n const node = new SimpleDOMNode(name);\n node.childNodes = [];\n if (this._hasAttributes) {\n node.attributes = attributes;\n }\n this._currentFragment.push(node);\n if (isEmpty) {\n return;\n }\n this._stack.push(this._currentFragment);\n this._currentFragment = node.childNodes;\n }\n\n onEndElement(name) {\n this._currentFragment = this._stack.pop() || [];\n const lastElement = this._currentFragment[this._currentFragment.length - 1];\n if (!lastElement) {\n return null;\n }\n for (let i = 0, ii = lastElement.childNodes.length; i < ii; i++) {\n lastElement.childNodes[i].parentNode = lastElement;\n }\n return lastElement;\n }\n\n onError(code) {\n this._errorCode = code;\n }\n}\n\nexport { SimpleDOMNode, SimpleXMLParser, XMLParserBase, XMLParserErrorCode };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Dict, isName, Name, Ref } from \"./primitives.js\";\nimport { stringToPDFString, warn } from \"../shared/util.js\";\nimport { NumberTree } from \"./name_number_tree.js\";\n\nconst MAX_DEPTH = 40;\n\nconst StructElementType = {\n PAGE_CONTENT: \"PAGE_CONTENT\",\n STREAM_CONTENT: \"STREAM_CONTENT\",\n OBJECT: \"OBJECT\",\n ELEMENT: \"ELEMENT\",\n};\n\nclass StructTreeRoot {\n constructor(rootDict) {\n this.dict = rootDict;\n this.roleMap = new Map();\n }\n\n init() {\n this.readRoleMap();\n }\n\n readRoleMap() {\n const roleMapDict = this.dict.get(\"RoleMap\");\n if (!(roleMapDict instanceof Dict)) {\n return;\n }\n roleMapDict.forEach((key, value) => {\n if (!(value instanceof Name)) {\n return;\n }\n this.roleMap.set(key, value.name);\n });\n }\n}\n\n/**\n * Instead of loading the whole tree we load just the page's relevant structure\n * elements, which means we need a wrapper structure to represent the tree.\n */\nclass StructElementNode {\n constructor(tree, dict) {\n this.tree = tree;\n this.dict = dict;\n this.kids = [];\n this.parseKids();\n }\n\n get role() {\n const nameObj = this.dict.get(\"S\");\n const name = nameObj instanceof Name ? nameObj.name : \"\";\n const { root } = this.tree;\n if (root.roleMap.has(name)) {\n return root.roleMap.get(name);\n }\n return name;\n }\n\n parseKids() {\n let pageObjId = null;\n const objRef = this.dict.getRaw(\"Pg\");\n if (objRef instanceof Ref) {\n pageObjId = objRef.toString();\n }\n const kids = this.dict.get(\"K\");\n if (Array.isArray(kids)) {\n for (const kid of kids) {\n const element = this.parseKid(pageObjId, kid);\n if (element) {\n this.kids.push(element);\n }\n }\n } else {\n const element = this.parseKid(pageObjId, kids);\n if (element) {\n this.kids.push(element);\n }\n }\n }\n\n parseKid(pageObjId, kid) {\n // A direct link to content, the integer is an mcid.\n if (Number.isInteger(kid)) {\n if (this.tree.pageDict.objId !== pageObjId) {\n return null;\n }\n\n return new StructElement({\n type: StructElementType.PAGE_CONTENT,\n mcid: kid,\n pageObjId,\n });\n }\n\n // Find the dictionary for the kid.\n let kidDict = null;\n if (kid instanceof Ref) {\n kidDict = this.dict.xref.fetch(kid);\n } else if (kid instanceof Dict) {\n kidDict = kid;\n }\n if (!kidDict) {\n return null;\n }\n const pageRef = kidDict.getRaw(\"Pg\");\n if (pageRef instanceof Ref) {\n pageObjId = pageRef.toString();\n }\n\n const type =\n kidDict.get(\"Type\") instanceof Name ? kidDict.get(\"Type\").name : null;\n if (type === \"MCR\") {\n if (this.tree.pageDict.objId !== pageObjId) {\n return null;\n }\n return new StructElement({\n type: StructElementType.STREAM_CONTENT,\n refObjId:\n kidDict.getRaw(\"Stm\") instanceof Ref\n ? kidDict.getRaw(\"Stm\").toString()\n : null,\n pageObjId,\n mcid: kidDict.get(\"MCID\"),\n });\n }\n\n if (type === \"OBJR\") {\n if (this.tree.pageDict.objId !== pageObjId) {\n return null;\n }\n return new StructElement({\n type: StructElementType.OBJECT,\n refObjId:\n kidDict.getRaw(\"Obj\") instanceof Ref\n ? kidDict.getRaw(\"Obj\").toString()\n : null,\n pageObjId,\n });\n }\n\n return new StructElement({\n type: StructElementType.ELEMENT,\n dict: kidDict,\n });\n }\n}\n\nclass StructElement {\n constructor({\n type,\n dict = null,\n mcid = null,\n pageObjId = null,\n refObjId = null,\n }) {\n this.type = type;\n this.dict = dict;\n this.mcid = mcid;\n this.pageObjId = pageObjId;\n this.refObjId = refObjId;\n this.parentNode = null;\n }\n}\n\nclass StructTreePage {\n constructor(structTreeRoot, pageDict) {\n this.root = structTreeRoot;\n this.rootDict = structTreeRoot ? structTreeRoot.dict : null;\n this.pageDict = pageDict;\n this.nodes = [];\n }\n\n parse() {\n if (!this.root || !this.rootDict) {\n return;\n }\n\n const parentTree = this.rootDict.get(\"ParentTree\");\n if (!parentTree) {\n return;\n }\n const id = this.pageDict.get(\"StructParents\");\n if (!Number.isInteger(id)) {\n return;\n }\n const numberTree = new NumberTree(parentTree, this.rootDict.xref);\n const parentArray = numberTree.get(id);\n if (!Array.isArray(parentArray)) {\n return;\n }\n const map = new Map();\n for (const ref of parentArray) {\n if (ref instanceof Ref) {\n this.addNode(this.rootDict.xref.fetch(ref), map);\n }\n }\n }\n\n addNode(dict, map, level = 0) {\n if (level > MAX_DEPTH) {\n warn(\"StructTree MAX_DEPTH reached.\");\n return null;\n }\n\n if (map.has(dict)) {\n return map.get(dict);\n }\n\n const element = new StructElementNode(this, dict);\n map.set(dict, element);\n\n const parent = dict.get(\"P\");\n\n if (!parent || isName(parent.get(\"Type\"), \"StructTreeRoot\")) {\n if (!this.addTopLevelNode(dict, element)) {\n map.delete(dict);\n }\n return element;\n }\n\n const parentNode = this.addNode(parent, map, level + 1);\n if (!parentNode) {\n return element;\n }\n let save = false;\n for (const kid of parentNode.kids) {\n if (kid.type === StructElementType.ELEMENT && kid.dict === dict) {\n kid.parentNode = element;\n save = true;\n }\n }\n if (!save) {\n map.delete(dict);\n }\n return element;\n }\n\n addTopLevelNode(dict, element) {\n const obj = this.rootDict.get(\"K\");\n if (!obj) {\n return false;\n }\n\n if (obj instanceof Dict) {\n if (obj.objId !== dict.objId) {\n return false;\n }\n this.nodes[0] = element;\n return true;\n }\n\n if (!Array.isArray(obj)) {\n return true;\n }\n let save = false;\n for (let i = 0; i < obj.length; i++) {\n const kidRef = obj[i];\n if (kidRef && kidRef.toString() === dict.objId) {\n this.nodes[i] = element;\n save = true;\n }\n }\n return save;\n }\n\n /**\n * Convert the tree structure into a simplified object literal that can\n * be sent to the main thread.\n * @returns {Object}\n */\n get serializable() {\n function nodeToSerializable(node, parent, level = 0) {\n if (level > MAX_DEPTH) {\n warn(\"StructTree too deep to be fully serialized.\");\n return;\n }\n const obj = Object.create(null);\n obj.role = node.role;\n obj.children = [];\n parent.children.push(obj);\n const alt = node.dict.get(\"Alt\");\n if (typeof alt === \"string\") {\n obj.alt = stringToPDFString(alt);\n }\n const lang = node.dict.get(\"Lang\");\n if (typeof lang === \"string\") {\n obj.lang = stringToPDFString(lang);\n }\n\n for (const kid of node.kids) {\n const kidElement =\n kid.type === StructElementType.ELEMENT ? kid.parentNode : null;\n if (kidElement) {\n nodeToSerializable(kidElement, obj, level + 1);\n continue;\n } else if (\n kid.type === StructElementType.PAGE_CONTENT ||\n kid.type === StructElementType.STREAM_CONTENT\n ) {\n obj.children.push({\n type: \"content\",\n id: `page${kid.pageObjId}_mcid${kid.mcid}`,\n });\n } else if (kid.type === StructElementType.OBJECT) {\n obj.children.push({\n type: \"object\",\n id: kid.refObjId,\n });\n }\n }\n }\n\n const root = Object.create(null);\n root.children = [];\n root.role = \"Root\";\n for (const child of this.nodes) {\n if (!child) {\n continue;\n }\n nodeToSerializable(child, root);\n }\n return root;\n }\n}\n\nexport { StructTreePage, StructTreeRoot };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Dict, Ref, RefSet } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { MissingDataException } from \"./core_utils.js\";\nimport { warn } from \"../shared/util.js\";\n\nfunction mayHaveChildren(value) {\n return (\n value instanceof Ref ||\n value instanceof Dict ||\n value instanceof BaseStream ||\n Array.isArray(value)\n );\n}\n\nfunction addChildren(node, nodesToVisit) {\n if (node instanceof Dict) {\n node = node.getRawValues();\n } else if (node instanceof BaseStream) {\n node = node.dict.getRawValues();\n } else if (!Array.isArray(node)) {\n return;\n }\n for (const rawValue of node) {\n if (mayHaveChildren(rawValue)) {\n nodesToVisit.push(rawValue);\n }\n }\n}\n\n/**\n * A helper for loading missing data in `Dict` graphs. It traverses the graph\n * depth first and queues up any objects that have missing data. Once it has\n * has traversed as many objects that are available it attempts to bundle the\n * missing data requests and then resume from the nodes that weren't ready.\n *\n * NOTE: It provides protection from circular references by keeping track of\n * loaded references. However, you must be careful not to load any graphs\n * that have references to the catalog or other pages since that will cause the\n * entire PDF document object graph to be traversed.\n */\nclass ObjectLoader {\n constructor(dict, keys, xref) {\n this.dict = dict;\n this.keys = keys;\n this.xref = xref;\n this.refSet = null;\n }\n\n async load() {\n // Don't walk the graph if all the data is already loaded.\n if (this.xref.stream.isDataLoaded) {\n return undefined;\n }\n\n const { keys, dict } = this;\n this.refSet = new RefSet();\n // Setup the initial nodes to visit.\n const nodesToVisit = [];\n for (let i = 0, ii = keys.length; i < ii; i++) {\n const rawValue = dict.getRaw(keys[i]);\n // Skip nodes that are guaranteed to be empty.\n if (rawValue !== undefined) {\n nodesToVisit.push(rawValue);\n }\n }\n return this._walk(nodesToVisit);\n }\n\n async _walk(nodesToVisit) {\n const nodesToRevisit = [];\n const pendingRequests = [];\n // DFS walk of the object graph.\n while (nodesToVisit.length) {\n let currentNode = nodesToVisit.pop();\n\n // Only references or chunked streams can cause missing data exceptions.\n if (currentNode instanceof Ref) {\n // Skip nodes that have already been visited.\n if (this.refSet.has(currentNode)) {\n continue;\n }\n try {\n this.refSet.put(currentNode);\n currentNode = this.xref.fetch(currentNode);\n } catch (ex) {\n if (!(ex instanceof MissingDataException)) {\n warn(`ObjectLoader._walk - requesting all data: \"${ex}\".`);\n this.refSet = null;\n\n const { manager } = this.xref.stream;\n return manager.requestAllChunks();\n }\n nodesToRevisit.push(currentNode);\n pendingRequests.push({ begin: ex.begin, end: ex.end });\n }\n }\n if (currentNode instanceof BaseStream) {\n const baseStreams = currentNode.getBaseStreams();\n if (baseStreams) {\n let foundMissingData = false;\n for (const stream of baseStreams) {\n if (stream.isDataLoaded) {\n continue;\n }\n foundMissingData = true;\n pendingRequests.push({ begin: stream.start, end: stream.end });\n }\n if (foundMissingData) {\n nodesToRevisit.push(currentNode);\n }\n }\n }\n\n addChildren(currentNode, nodesToVisit);\n }\n\n if (pendingRequests.length) {\n await this.xref.stream.manager.requestRanges(pendingRequests);\n\n for (const node of nodesToRevisit) {\n // Remove any reference nodes from the current `RefSet` so they\n // aren't skipped when we revist them.\n if (node instanceof Ref) {\n this.refSet.remove(node);\n }\n }\n return this._walk(nodesToRevisit);\n }\n // Everything is loaded.\n this.refSet = null;\n return undefined;\n }\n}\n\nexport { ObjectLoader };\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bytesToString, escapeString, warn } from \"../shared/util.js\";\nimport { Dict, Name, Ref } from \"./primitives.js\";\nimport { escapePDFName, parseXFAPath } from \"./core_utils.js\";\nimport { SimpleDOMNode, SimpleXMLParser } from \"./xml_parser.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { calculateMD5 } from \"./crypto.js\";\n\nfunction writeDict(dict, buffer, transform) {\n buffer.push(\"<<\");\n for (const key of dict.getKeys()) {\n buffer.push(` /${escapePDFName(key)} `);\n writeValue(dict.getRaw(key), buffer, transform);\n }\n buffer.push(\">>\");\n}\n\nfunction writeStream(stream, buffer, transform) {\n writeDict(stream.dict, buffer, transform);\n buffer.push(\" stream\\n\");\n let string = stream.getString();\n if (transform !== null) {\n string = transform.encryptString(string);\n }\n buffer.push(string, \"\\nendstream\\n\");\n}\n\nfunction writeArray(array, buffer, transform) {\n buffer.push(\"[\");\n let first = true;\n for (const val of array) {\n if (!first) {\n buffer.push(\" \");\n } else {\n first = false;\n }\n writeValue(val, buffer, transform);\n }\n buffer.push(\"]\");\n}\n\nfunction numberToString(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n\n const roundedValue = Math.round(value * 100);\n if (roundedValue % 100 === 0) {\n return (roundedValue / 100).toString();\n }\n\n if (roundedValue % 10 === 0) {\n return value.toFixed(1);\n }\n\n return value.toFixed(2);\n}\n\nfunction writeValue(value, buffer, transform) {\n if (value instanceof Name) {\n buffer.push(`/${escapePDFName(value.name)}`);\n } else if (value instanceof Ref) {\n buffer.push(`${value.num} ${value.gen} R`);\n } else if (Array.isArray(value)) {\n writeArray(value, buffer, transform);\n } else if (typeof value === \"string\") {\n if (transform !== null) {\n value = transform.encryptString(value);\n }\n buffer.push(`(${escapeString(value)})`);\n } else if (typeof value === \"number\") {\n buffer.push(numberToString(value));\n } else if (typeof value === \"boolean\") {\n buffer.push(value.toString());\n } else if (value instanceof Dict) {\n writeDict(value, buffer, transform);\n } else if (value instanceof BaseStream) {\n writeStream(value, buffer, transform);\n } else if (value === null) {\n buffer.push(\"null\");\n } else {\n warn(`Unhandled value in writer: ${typeof value}, please file a bug.`);\n }\n}\n\nfunction writeInt(number, size, offset, buffer) {\n for (let i = size + offset - 1; i > offset - 1; i--) {\n buffer[i] = number & 0xff;\n number >>= 8;\n }\n return offset + size;\n}\n\nfunction writeString(string, offset, buffer) {\n for (let i = 0, len = string.length; i < len; i++) {\n buffer[offset + i] = string.charCodeAt(i) & 0xff;\n }\n}\n\nfunction computeMD5(filesize, xrefInfo) {\n const time = Math.floor(Date.now() / 1000);\n const filename = xrefInfo.filename || \"\";\n const md5Buffer = [time.toString(), filename, filesize.toString()];\n let md5BufferLen = md5Buffer.reduce((a, str) => a + str.length, 0);\n for (const value of Object.values(xrefInfo.info)) {\n md5Buffer.push(value);\n md5BufferLen += value.length;\n }\n\n const array = new Uint8Array(md5BufferLen);\n let offset = 0;\n for (const str of md5Buffer) {\n writeString(str, offset, array);\n offset += str.length;\n }\n return bytesToString(calculateMD5(array));\n}\n\nfunction writeXFADataForAcroform(str, newRefs) {\n const xml = new SimpleXMLParser({ hasAttributes: true }).parseFromString(str);\n\n for (const { xfa } of newRefs) {\n if (!xfa) {\n continue;\n }\n const { path, value } = xfa;\n if (!path) {\n continue;\n }\n const node = xml.documentElement.searchNode(parseXFAPath(path), 0);\n if (node) {\n if (Array.isArray(value)) {\n node.childNodes = value.map(val => new SimpleDOMNode(\"value\", val));\n } else {\n node.childNodes = [new SimpleDOMNode(\"#text\", value)];\n }\n } else {\n warn(`Node not found for path: ${path}`);\n }\n }\n const buffer = [];\n xml.documentElement.dump(buffer);\n return buffer.join(\"\");\n}\n\nfunction updateXFA({\n xfaData,\n xfaDatasetsRef,\n hasXfaDatasetsEntry,\n acroFormRef,\n acroForm,\n newRefs,\n xref,\n xrefInfo,\n}) {\n if (xref === null) {\n return;\n }\n\n if (!hasXfaDatasetsEntry) {\n if (!acroFormRef) {\n warn(\"XFA - Cannot save it\");\n return;\n }\n\n // We've a XFA array which doesn't contain a datasets entry.\n // So we'll update the AcroForm dictionary to have an XFA containing\n // the datasets.\n const oldXfa = acroForm.get(\"XFA\");\n const newXfa = oldXfa.slice();\n newXfa.splice(2, 0, \"datasets\");\n newXfa.splice(3, 0, xfaDatasetsRef);\n\n acroForm.set(\"XFA\", newXfa);\n\n const encrypt = xref.encrypt;\n let transform = null;\n if (encrypt) {\n transform = encrypt.createCipherTransform(\n acroFormRef.num,\n acroFormRef.gen\n );\n }\n\n const buffer = [`${acroFormRef.num} ${acroFormRef.gen} obj\\n`];\n writeDict(acroForm, buffer, transform);\n buffer.push(\"\\n\");\n\n acroForm.set(\"XFA\", oldXfa);\n\n newRefs.push({ ref: acroFormRef, data: buffer.join(\"\") });\n }\n\n if (xfaData === null) {\n const datasets = xref.fetchIfRef(xfaDatasetsRef);\n xfaData = writeXFADataForAcroform(datasets.getString(), newRefs);\n }\n\n const encrypt = xref.encrypt;\n if (encrypt) {\n const transform = encrypt.createCipherTransform(\n xfaDatasetsRef.num,\n xfaDatasetsRef.gen\n );\n xfaData = transform.encryptString(xfaData);\n }\n const data =\n `${xfaDatasetsRef.num} ${xfaDatasetsRef.gen} obj\\n` +\n `<< /Type /EmbeddedFile /Length ${xfaData.length}>>\\nstream\\n` +\n xfaData +\n \"\\nendstream\\nendobj\\n\";\n\n newRefs.push({ ref: xfaDatasetsRef, data });\n}\n\nfunction incrementalUpdate({\n originalData,\n xrefInfo,\n newRefs,\n xref = null,\n hasXfa = false,\n xfaDatasetsRef = null,\n hasXfaDatasetsEntry = false,\n acroFormRef = null,\n acroForm = null,\n xfaData = null,\n}) {\n if (hasXfa) {\n updateXFA({\n xfaData,\n xfaDatasetsRef,\n hasXfaDatasetsEntry,\n acroFormRef,\n acroForm,\n newRefs,\n xref,\n xrefInfo,\n });\n }\n\n const newXref = new Dict(null);\n const refForXrefTable = xrefInfo.newRef;\n\n let buffer, baseOffset;\n const lastByte = originalData[originalData.length - 1];\n if (lastByte === /* \\n */ 0x0a || lastByte === /* \\r */ 0x0d) {\n buffer = [];\n baseOffset = originalData.length;\n } else {\n // Avoid to concatenate %%EOF with an object definition\n buffer = [\"\\n\"];\n baseOffset = originalData.length + 1;\n }\n\n newXref.set(\"Size\", refForXrefTable.num + 1);\n newXref.set(\"Prev\", xrefInfo.startXRef);\n newXref.set(\"Type\", Name.get(\"XRef\"));\n\n if (xrefInfo.rootRef !== null) {\n newXref.set(\"Root\", xrefInfo.rootRef);\n }\n if (xrefInfo.infoRef !== null) {\n newXref.set(\"Info\", xrefInfo.infoRef);\n }\n if (xrefInfo.encryptRef !== null) {\n newXref.set(\"Encrypt\", xrefInfo.encryptRef);\n }\n\n // Add a ref for the new xref and sort them\n newRefs.push({ ref: refForXrefTable, data: \"\" });\n newRefs = newRefs.sort((a, b) => {\n // compare the refs\n return a.ref.num - b.ref.num;\n });\n\n const xrefTableData = [[0, 1, 0xffff]];\n const indexes = [0, 1];\n let maxOffset = 0;\n for (const { ref, data } of newRefs) {\n maxOffset = Math.max(maxOffset, baseOffset);\n xrefTableData.push([1, baseOffset, Math.min(ref.gen, 0xffff)]);\n baseOffset += data.length;\n indexes.push(ref.num, 1);\n buffer.push(data);\n }\n\n newXref.set(\"Index\", indexes);\n\n if (Array.isArray(xrefInfo.fileIds) && xrefInfo.fileIds.length > 0) {\n const md5 = computeMD5(baseOffset, xrefInfo);\n newXref.set(\"ID\", [xrefInfo.fileIds[0], md5]);\n }\n\n const offsetSize = Math.ceil(Math.log2(maxOffset) / 8);\n const sizes = [1, offsetSize, 2];\n const structSize = sizes[0] + sizes[1] + sizes[2];\n const tableLength = structSize * xrefTableData.length;\n newXref.set(\"W\", sizes);\n newXref.set(\"Length\", tableLength);\n\n buffer.push(`${refForXrefTable.num} ${refForXrefTable.gen} obj\\n`);\n writeDict(newXref, buffer, null);\n buffer.push(\" stream\\n\");\n\n const bufferLen = buffer.reduce((a, str) => a + str.length, 0);\n const footer = `\\nendstream\\nendobj\\nstartxref\\n${baseOffset}\\n%%EOF\\n`;\n const array = new Uint8Array(\n originalData.length + bufferLen + tableLength + footer.length\n );\n\n // Original data\n array.set(originalData);\n let offset = originalData.length;\n\n // New data\n for (const str of buffer) {\n writeString(str, offset, array);\n offset += str.length;\n }\n\n // New xref table\n for (const [type, objOffset, gen] of xrefTableData) {\n offset = writeInt(type, sizes[0], offset, array);\n offset = writeInt(objOffset, sizes[1], offset, array);\n offset = writeInt(gen, sizes[2], offset, array);\n }\n\n // Add the footer\n writeString(footer, offset, array);\n\n return array;\n}\n\nexport { incrementalUpdate, writeDict };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n bytesToString,\n FormatError,\n isArrayEqual,\n PasswordException,\n PasswordResponses,\n stringToBytes,\n unreachable,\n utf8StringToString,\n warn,\n} from \"../shared/util.js\";\nimport { Dict, isName, Name } from \"./primitives.js\";\nimport { DecryptStream } from \"./decrypt_stream.js\";\n\nclass ARCFourCipher {\n constructor(key) {\n this.a = 0;\n this.b = 0;\n const s = new Uint8Array(256);\n const keyLength = key.length;\n\n for (let i = 0; i < 256; ++i) {\n s[i] = i;\n }\n for (let i = 0, j = 0; i < 256; ++i) {\n const tmp = s[i];\n j = (j + tmp + key[i % keyLength]) & 0xff;\n s[i] = s[j];\n s[j] = tmp;\n }\n this.s = s;\n }\n\n encryptBlock(data) {\n let a = this.a,\n b = this.b;\n const s = this.s;\n const n = data.length;\n const output = new Uint8Array(n);\n for (let i = 0; i < n; ++i) {\n a = (a + 1) & 0xff;\n const tmp = s[a];\n b = (b + tmp) & 0xff;\n const tmp2 = s[b];\n s[a] = tmp2;\n s[b] = tmp;\n output[i] = data[i] ^ s[(tmp + tmp2) & 0xff];\n }\n this.a = a;\n this.b = b;\n return output;\n }\n\n decryptBlock(data) {\n return this.encryptBlock(data);\n }\n\n encrypt(data) {\n return this.encryptBlock(data);\n }\n}\n\nconst calculateMD5 = (function calculateMD5Closure() {\n const r = new Uint8Array([\n 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5,\n 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11,\n 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10,\n 15, 21,\n ]);\n\n const k = new Int32Array([\n -680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426,\n -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162,\n 1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632,\n 643717713, -373897302, -701558691, 38016083, -660478335, -405537848,\n 568446438, -1019803690, -187363961, 1163531501, -1444681467, -51403784,\n 1735328473, -1926607734, -378558, -2022574463, 1839030562, -35309556,\n -1530992060, 1272893353, -155497632, -1094730640, 681279174, -358537222,\n -722521979, 76029189, -640364487, -421815835, 530742520, -995338651,\n -198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606,\n -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649,\n -145523070, -1120210379, 718787259, -343485551,\n ]);\n\n function hash(data, offset, length) {\n let h0 = 1732584193,\n h1 = -271733879,\n h2 = -1732584194,\n h3 = 271733878;\n // pre-processing\n const paddedLength = (length + 72) & ~63; // data + 9 extra bytes\n const padded = new Uint8Array(paddedLength);\n let i, j;\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n padded[i++] = 0x80;\n const n = paddedLength - 8;\n while (i < n) {\n padded[i++] = 0;\n }\n padded[i++] = (length << 3) & 0xff;\n padded[i++] = (length >> 5) & 0xff;\n padded[i++] = (length >> 13) & 0xff;\n padded[i++] = (length >> 21) & 0xff;\n padded[i++] = (length >>> 29) & 0xff;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n const w = new Int32Array(16);\n for (i = 0; i < paddedLength; ) {\n for (j = 0; j < 16; ++j, i += 4) {\n w[j] =\n padded[i] |\n (padded[i + 1] << 8) |\n (padded[i + 2] << 16) |\n (padded[i + 3] << 24);\n }\n let a = h0,\n b = h1,\n c = h2,\n d = h3,\n f,\n g;\n for (j = 0; j < 64; ++j) {\n if (j < 16) {\n f = (b & c) | (~b & d);\n g = j;\n } else if (j < 32) {\n f = (d & b) | (~d & c);\n g = (5 * j + 1) & 15;\n } else if (j < 48) {\n f = b ^ c ^ d;\n g = (3 * j + 5) & 15;\n } else {\n f = c ^ (b | ~d);\n g = (7 * j) & 15;\n }\n const tmp = d,\n rotateArg = (a + f + k[j] + w[g]) | 0,\n rotate = r[j];\n d = c;\n c = b;\n b = (b + ((rotateArg << rotate) | (rotateArg >>> (32 - rotate)))) | 0;\n a = tmp;\n }\n h0 = (h0 + a) | 0;\n h1 = (h1 + b) | 0;\n h2 = (h2 + c) | 0;\n h3 = (h3 + d) | 0;\n }\n // prettier-ignore\n return new Uint8Array([\n h0 & 0xFF, (h0 >> 8) & 0xFF, (h0 >> 16) & 0xFF, (h0 >>> 24) & 0xFF,\n h1 & 0xFF, (h1 >> 8) & 0xFF, (h1 >> 16) & 0xFF, (h1 >>> 24) & 0xFF,\n h2 & 0xFF, (h2 >> 8) & 0xFF, (h2 >> 16) & 0xFF, (h2 >>> 24) & 0xFF,\n h3 & 0xFF, (h3 >> 8) & 0xFF, (h3 >> 16) & 0xFF, (h3 >>> 24) & 0xFF\n ]);\n }\n\n return hash;\n})();\n\nclass Word64 {\n constructor(highInteger, lowInteger) {\n this.high = highInteger | 0;\n this.low = lowInteger | 0;\n }\n\n and(word) {\n this.high &= word.high;\n this.low &= word.low;\n }\n\n xor(word) {\n this.high ^= word.high;\n this.low ^= word.low;\n }\n\n or(word) {\n this.high |= word.high;\n this.low |= word.low;\n }\n\n shiftRight(places) {\n if (places >= 32) {\n this.low = (this.high >>> (places - 32)) | 0;\n this.high = 0;\n } else {\n this.low = (this.low >>> places) | (this.high << (32 - places));\n this.high = (this.high >>> places) | 0;\n }\n }\n\n shiftLeft(places) {\n if (places >= 32) {\n this.high = this.low << (places - 32);\n this.low = 0;\n } else {\n this.high = (this.high << places) | (this.low >>> (32 - places));\n this.low <<= places;\n }\n }\n\n rotateRight(places) {\n let low, high;\n if (places & 32) {\n high = this.low;\n low = this.high;\n } else {\n low = this.low;\n high = this.high;\n }\n places &= 31;\n this.low = (low >>> places) | (high << (32 - places));\n this.high = (high >>> places) | (low << (32 - places));\n }\n\n not() {\n this.high = ~this.high;\n this.low = ~this.low;\n }\n\n add(word) {\n const lowAdd = (this.low >>> 0) + (word.low >>> 0);\n let highAdd = (this.high >>> 0) + (word.high >>> 0);\n if (lowAdd > 0xffffffff) {\n highAdd += 1;\n }\n this.low = lowAdd | 0;\n this.high = highAdd | 0;\n }\n\n copyTo(bytes, offset) {\n bytes[offset] = (this.high >>> 24) & 0xff;\n bytes[offset + 1] = (this.high >> 16) & 0xff;\n bytes[offset + 2] = (this.high >> 8) & 0xff;\n bytes[offset + 3] = this.high & 0xff;\n bytes[offset + 4] = (this.low >>> 24) & 0xff;\n bytes[offset + 5] = (this.low >> 16) & 0xff;\n bytes[offset + 6] = (this.low >> 8) & 0xff;\n bytes[offset + 7] = this.low & 0xff;\n }\n\n assign(word) {\n this.high = word.high;\n this.low = word.low;\n }\n}\n\nconst calculateSHA256 = (function calculateSHA256Closure() {\n function rotr(x, n) {\n return (x >>> n) | (x << (32 - n));\n }\n\n function ch(x, y, z) {\n return (x & y) ^ (~x & z);\n }\n\n function maj(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n }\n\n function sigma(x) {\n return rotr(x, 2) ^ rotr(x, 13) ^ rotr(x, 22);\n }\n\n function sigmaPrime(x) {\n return rotr(x, 6) ^ rotr(x, 11) ^ rotr(x, 25);\n }\n\n function littleSigma(x) {\n return rotr(x, 7) ^ rotr(x, 18) ^ (x >>> 3);\n }\n\n function littleSigmaPrime(x) {\n return rotr(x, 17) ^ rotr(x, 19) ^ (x >>> 10);\n }\n\n const k = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1,\n 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786,\n 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b,\n 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a,\n 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,\n ];\n\n function hash(data, offset, length) {\n // initial hash values\n let h0 = 0x6a09e667,\n h1 = 0xbb67ae85,\n h2 = 0x3c6ef372,\n h3 = 0xa54ff53a,\n h4 = 0x510e527f,\n h5 = 0x9b05688c,\n h6 = 0x1f83d9ab,\n h7 = 0x5be0cd19;\n // pre-processing\n const paddedLength = Math.ceil((length + 9) / 64) * 64;\n const padded = new Uint8Array(paddedLength);\n let i, j;\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n padded[i++] = 0x80;\n const n = paddedLength - 8;\n while (i < n) {\n padded[i++] = 0;\n }\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = (length >>> 29) & 0xff;\n padded[i++] = (length >> 21) & 0xff;\n padded[i++] = (length >> 13) & 0xff;\n padded[i++] = (length >> 5) & 0xff;\n padded[i++] = (length << 3) & 0xff;\n const w = new Uint32Array(64);\n // for each 512 bit block\n for (i = 0; i < paddedLength; ) {\n for (j = 0; j < 16; ++j) {\n w[j] =\n (padded[i] << 24) |\n (padded[i + 1] << 16) |\n (padded[i + 2] << 8) |\n padded[i + 3];\n i += 4;\n }\n\n for (j = 16; j < 64; ++j) {\n w[j] =\n (littleSigmaPrime(w[j - 2]) +\n w[j - 7] +\n littleSigma(w[j - 15]) +\n w[j - 16]) |\n 0;\n }\n let a = h0,\n b = h1,\n c = h2,\n d = h3,\n e = h4,\n f = h5,\n g = h6,\n h = h7,\n t1,\n t2;\n for (j = 0; j < 64; ++j) {\n t1 = h + sigmaPrime(e) + ch(e, f, g) + k[j] + w[j];\n t2 = sigma(a) + maj(a, b, c);\n h = g;\n g = f;\n f = e;\n e = (d + t1) | 0;\n d = c;\n c = b;\n b = a;\n a = (t1 + t2) | 0;\n }\n h0 = (h0 + a) | 0;\n h1 = (h1 + b) | 0;\n h2 = (h2 + c) | 0;\n h3 = (h3 + d) | 0;\n h4 = (h4 + e) | 0;\n h5 = (h5 + f) | 0;\n h6 = (h6 + g) | 0;\n h7 = (h7 + h) | 0;\n }\n // prettier-ignore\n return new Uint8Array([\n (h0 >> 24) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 8) & 0xFF, (h0) & 0xFF,\n (h1 >> 24) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 8) & 0xFF, (h1) & 0xFF,\n (h2 >> 24) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 8) & 0xFF, (h2) & 0xFF,\n (h3 >> 24) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 8) & 0xFF, (h3) & 0xFF,\n (h4 >> 24) & 0xFF, (h4 >> 16) & 0xFF, (h4 >> 8) & 0xFF, (h4) & 0xFF,\n (h5 >> 24) & 0xFF, (h5 >> 16) & 0xFF, (h5 >> 8) & 0xFF, (h5) & 0xFF,\n (h6 >> 24) & 0xFF, (h6 >> 16) & 0xFF, (h6 >> 8) & 0xFF, (h6) & 0xFF,\n (h7 >> 24) & 0xFF, (h7 >> 16) & 0xFF, (h7 >> 8) & 0xFF, (h7) & 0xFF\n ]);\n }\n\n return hash;\n})();\n\nconst calculateSHA512 = (function calculateSHA512Closure() {\n function ch(result, x, y, z, tmp) {\n result.assign(x);\n result.and(y);\n tmp.assign(x);\n tmp.not();\n tmp.and(z);\n result.xor(tmp);\n }\n\n function maj(result, x, y, z, tmp) {\n result.assign(x);\n result.and(y);\n tmp.assign(x);\n tmp.and(z);\n result.xor(tmp);\n tmp.assign(y);\n tmp.and(z);\n result.xor(tmp);\n }\n\n function sigma(result, x, tmp) {\n result.assign(x);\n result.rotateRight(28);\n tmp.assign(x);\n tmp.rotateRight(34);\n result.xor(tmp);\n tmp.assign(x);\n tmp.rotateRight(39);\n result.xor(tmp);\n }\n\n function sigmaPrime(result, x, tmp) {\n result.assign(x);\n result.rotateRight(14);\n tmp.assign(x);\n tmp.rotateRight(18);\n result.xor(tmp);\n tmp.assign(x);\n tmp.rotateRight(41);\n result.xor(tmp);\n }\n\n function littleSigma(result, x, tmp) {\n result.assign(x);\n result.rotateRight(1);\n tmp.assign(x);\n tmp.rotateRight(8);\n result.xor(tmp);\n tmp.assign(x);\n tmp.shiftRight(7);\n result.xor(tmp);\n }\n\n function littleSigmaPrime(result, x, tmp) {\n result.assign(x);\n result.rotateRight(19);\n tmp.assign(x);\n tmp.rotateRight(61);\n result.xor(tmp);\n tmp.assign(x);\n tmp.shiftRight(6);\n result.xor(tmp);\n }\n\n // prettier-ignore\n const k = [\n new Word64(0x428a2f98, 0xd728ae22), new Word64(0x71374491, 0x23ef65cd),\n new Word64(0xb5c0fbcf, 0xec4d3b2f), new Word64(0xe9b5dba5, 0x8189dbbc),\n new Word64(0x3956c25b, 0xf348b538), new Word64(0x59f111f1, 0xb605d019),\n new Word64(0x923f82a4, 0xaf194f9b), new Word64(0xab1c5ed5, 0xda6d8118),\n new Word64(0xd807aa98, 0xa3030242), new Word64(0x12835b01, 0x45706fbe),\n new Word64(0x243185be, 0x4ee4b28c), new Word64(0x550c7dc3, 0xd5ffb4e2),\n new Word64(0x72be5d74, 0xf27b896f), new Word64(0x80deb1fe, 0x3b1696b1),\n new Word64(0x9bdc06a7, 0x25c71235), new Word64(0xc19bf174, 0xcf692694),\n new Word64(0xe49b69c1, 0x9ef14ad2), new Word64(0xefbe4786, 0x384f25e3),\n new Word64(0x0fc19dc6, 0x8b8cd5b5), new Word64(0x240ca1cc, 0x77ac9c65),\n new Word64(0x2de92c6f, 0x592b0275), new Word64(0x4a7484aa, 0x6ea6e483),\n new Word64(0x5cb0a9dc, 0xbd41fbd4), new Word64(0x76f988da, 0x831153b5),\n new Word64(0x983e5152, 0xee66dfab), new Word64(0xa831c66d, 0x2db43210),\n new Word64(0xb00327c8, 0x98fb213f), new Word64(0xbf597fc7, 0xbeef0ee4),\n new Word64(0xc6e00bf3, 0x3da88fc2), new Word64(0xd5a79147, 0x930aa725),\n new Word64(0x06ca6351, 0xe003826f), new Word64(0x14292967, 0x0a0e6e70),\n new Word64(0x27b70a85, 0x46d22ffc), new Word64(0x2e1b2138, 0x5c26c926),\n new Word64(0x4d2c6dfc, 0x5ac42aed), new Word64(0x53380d13, 0x9d95b3df),\n new Word64(0x650a7354, 0x8baf63de), new Word64(0x766a0abb, 0x3c77b2a8),\n new Word64(0x81c2c92e, 0x47edaee6), new Word64(0x92722c85, 0x1482353b),\n new Word64(0xa2bfe8a1, 0x4cf10364), new Word64(0xa81a664b, 0xbc423001),\n new Word64(0xc24b8b70, 0xd0f89791), new Word64(0xc76c51a3, 0x0654be30),\n new Word64(0xd192e819, 0xd6ef5218), new Word64(0xd6990624, 0x5565a910),\n new Word64(0xf40e3585, 0x5771202a), new Word64(0x106aa070, 0x32bbd1b8),\n new Word64(0x19a4c116, 0xb8d2d0c8), new Word64(0x1e376c08, 0x5141ab53),\n new Word64(0x2748774c, 0xdf8eeb99), new Word64(0x34b0bcb5, 0xe19b48a8),\n new Word64(0x391c0cb3, 0xc5c95a63), new Word64(0x4ed8aa4a, 0xe3418acb),\n new Word64(0x5b9cca4f, 0x7763e373), new Word64(0x682e6ff3, 0xd6b2b8a3),\n new Word64(0x748f82ee, 0x5defb2fc), new Word64(0x78a5636f, 0x43172f60),\n new Word64(0x84c87814, 0xa1f0ab72), new Word64(0x8cc70208, 0x1a6439ec),\n new Word64(0x90befffa, 0x23631e28), new Word64(0xa4506ceb, 0xde82bde9),\n new Word64(0xbef9a3f7, 0xb2c67915), new Word64(0xc67178f2, 0xe372532b),\n new Word64(0xca273ece, 0xea26619c), new Word64(0xd186b8c7, 0x21c0c207),\n new Word64(0xeada7dd6, 0xcde0eb1e), new Word64(0xf57d4f7f, 0xee6ed178),\n new Word64(0x06f067aa, 0x72176fba), new Word64(0x0a637dc5, 0xa2c898a6),\n new Word64(0x113f9804, 0xbef90dae), new Word64(0x1b710b35, 0x131c471b),\n new Word64(0x28db77f5, 0x23047d84), new Word64(0x32caab7b, 0x40c72493),\n new Word64(0x3c9ebe0a, 0x15c9bebc), new Word64(0x431d67c4, 0x9c100d4c),\n new Word64(0x4cc5d4be, 0xcb3e42b6), new Word64(0x597f299c, 0xfc657e2a),\n new Word64(0x5fcb6fab, 0x3ad6faec), new Word64(0x6c44198c, 0x4a475817)];\n\n function hash(data, offset, length, mode384 = false) {\n // initial hash values\n let h0, h1, h2, h3, h4, h5, h6, h7;\n if (!mode384) {\n h0 = new Word64(0x6a09e667, 0xf3bcc908);\n h1 = new Word64(0xbb67ae85, 0x84caa73b);\n h2 = new Word64(0x3c6ef372, 0xfe94f82b);\n h3 = new Word64(0xa54ff53a, 0x5f1d36f1);\n h4 = new Word64(0x510e527f, 0xade682d1);\n h5 = new Word64(0x9b05688c, 0x2b3e6c1f);\n h6 = new Word64(0x1f83d9ab, 0xfb41bd6b);\n h7 = new Word64(0x5be0cd19, 0x137e2179);\n } else {\n // SHA384 is exactly the same\n // except with different starting values and a trimmed result\n h0 = new Word64(0xcbbb9d5d, 0xc1059ed8);\n h1 = new Word64(0x629a292a, 0x367cd507);\n h2 = new Word64(0x9159015a, 0x3070dd17);\n h3 = new Word64(0x152fecd8, 0xf70e5939);\n h4 = new Word64(0x67332667, 0xffc00b31);\n h5 = new Word64(0x8eb44a87, 0x68581511);\n h6 = new Word64(0xdb0c2e0d, 0x64f98fa7);\n h7 = new Word64(0x47b5481d, 0xbefa4fa4);\n }\n\n // pre-processing\n const paddedLength = Math.ceil((length + 17) / 128) * 128;\n const padded = new Uint8Array(paddedLength);\n let i, j;\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n padded[i++] = 0x80;\n const n = paddedLength - 16;\n while (i < n) {\n padded[i++] = 0;\n }\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = (length >>> 29) & 0xff;\n padded[i++] = (length >> 21) & 0xff;\n padded[i++] = (length >> 13) & 0xff;\n padded[i++] = (length >> 5) & 0xff;\n padded[i++] = (length << 3) & 0xff;\n\n const w = new Array(80);\n for (i = 0; i < 80; i++) {\n w[i] = new Word64(0, 0);\n }\n let a = new Word64(0, 0),\n b = new Word64(0, 0),\n c = new Word64(0, 0);\n let d = new Word64(0, 0),\n e = new Word64(0, 0),\n f = new Word64(0, 0);\n let g = new Word64(0, 0),\n h = new Word64(0, 0);\n const t1 = new Word64(0, 0),\n t2 = new Word64(0, 0);\n const tmp1 = new Word64(0, 0),\n tmp2 = new Word64(0, 0);\n let tmp3;\n\n // for each 1024 bit block\n for (i = 0; i < paddedLength; ) {\n for (j = 0; j < 16; ++j) {\n w[j].high =\n (padded[i] << 24) |\n (padded[i + 1] << 16) |\n (padded[i + 2] << 8) |\n padded[i + 3];\n w[j].low =\n (padded[i + 4] << 24) |\n (padded[i + 5] << 16) |\n (padded[i + 6] << 8) |\n padded[i + 7];\n i += 8;\n }\n for (j = 16; j < 80; ++j) {\n tmp3 = w[j];\n littleSigmaPrime(tmp3, w[j - 2], tmp2);\n tmp3.add(w[j - 7]);\n littleSigma(tmp1, w[j - 15], tmp2);\n tmp3.add(tmp1);\n tmp3.add(w[j - 16]);\n }\n\n a.assign(h0);\n b.assign(h1);\n c.assign(h2);\n d.assign(h3);\n e.assign(h4);\n f.assign(h5);\n g.assign(h6);\n h.assign(h7);\n for (j = 0; j < 80; ++j) {\n t1.assign(h);\n sigmaPrime(tmp1, e, tmp2);\n t1.add(tmp1);\n ch(tmp1, e, f, g, tmp2);\n t1.add(tmp1);\n t1.add(k[j]);\n t1.add(w[j]);\n\n sigma(t2, a, tmp2);\n maj(tmp1, a, b, c, tmp2);\n t2.add(tmp1);\n\n tmp3 = h;\n h = g;\n g = f;\n f = e;\n d.add(t1);\n e = d;\n d = c;\n c = b;\n b = a;\n tmp3.assign(t1);\n tmp3.add(t2);\n a = tmp3;\n }\n h0.add(a);\n h1.add(b);\n h2.add(c);\n h3.add(d);\n h4.add(e);\n h5.add(f);\n h6.add(g);\n h7.add(h);\n }\n\n let result;\n if (!mode384) {\n result = new Uint8Array(64);\n h0.copyTo(result, 0);\n h1.copyTo(result, 8);\n h2.copyTo(result, 16);\n h3.copyTo(result, 24);\n h4.copyTo(result, 32);\n h5.copyTo(result, 40);\n h6.copyTo(result, 48);\n h7.copyTo(result, 56);\n } else {\n result = new Uint8Array(48);\n h0.copyTo(result, 0);\n h1.copyTo(result, 8);\n h2.copyTo(result, 16);\n h3.copyTo(result, 24);\n h4.copyTo(result, 32);\n h5.copyTo(result, 40);\n }\n return result;\n }\n\n return hash;\n})();\n\nfunction calculateSHA384(data, offset, length) {\n return calculateSHA512(data, offset, length, /* mode384 = */ true);\n}\n\nclass NullCipher {\n decryptBlock(data) {\n return data;\n }\n\n encrypt(data) {\n return data;\n }\n}\n\nclass AESBaseCipher {\n constructor() {\n if (this.constructor === AESBaseCipher) {\n unreachable(\"Cannot initialize AESBaseCipher.\");\n }\n\n this._s = new Uint8Array([\n 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b,\n 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0,\n 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26,\n 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,\n 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2,\n 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0,\n 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed,\n 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf,\n 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f,\n 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5,\n 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec,\n 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,\n 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14,\n 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c,\n 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d,\n 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08,\n 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f,\n 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e,\n 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11,\n 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,\n 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f,\n 0xb0, 0x54, 0xbb, 0x16,\n ]);\n\n this._inv_s = new Uint8Array([\n 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e,\n 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87,\n 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32,\n 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e,\n 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49,\n 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16,\n 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50,\n 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84,\n 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05,\n 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02,\n 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41,\n 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73,\n 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8,\n 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89,\n 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b,\n 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4,\n 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59,\n 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d,\n 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d,\n 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61,\n 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63,\n 0x55, 0x21, 0x0c, 0x7d,\n ]);\n\n this._mix = new Uint32Array([\n 0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927,\n 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45,\n 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb,\n 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381,\n 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf,\n 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66,\n 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28,\n 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012,\n 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec,\n 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e,\n 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd,\n 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7,\n 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89,\n 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b,\n 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815,\n 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f,\n 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa,\n 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8,\n 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36,\n 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c,\n 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742,\n 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea,\n 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4,\n 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e,\n 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360,\n 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502,\n 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87,\n 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd,\n 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3,\n 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621,\n 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f,\n 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55,\n 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26,\n 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844,\n 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba,\n 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480,\n 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce,\n 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67,\n 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929,\n 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713,\n 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed,\n 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f,\n 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3,\n ]);\n\n this._mixCol = new Uint8Array(256);\n for (let i = 0; i < 256; i++) {\n if (i < 128) {\n this._mixCol[i] = i << 1;\n } else {\n this._mixCol[i] = (i << 1) ^ 0x1b;\n }\n }\n\n this.buffer = new Uint8Array(16);\n this.bufferPosition = 0;\n }\n\n _expandKey(cipherKey) {\n unreachable(\"Cannot call `_expandKey` on the base class\");\n }\n\n _decrypt(input, key) {\n let t, u, v;\n const state = new Uint8Array(16);\n state.set(input);\n\n // AddRoundKey\n for (let j = 0, k = this._keySize; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n for (let i = this._cyclesOfRepetition - 1; i >= 1; --i) {\n // InvShiftRows\n t = state[13];\n state[13] = state[9];\n state[9] = state[5];\n state[5] = state[1];\n state[1] = t;\n t = state[14];\n u = state[10];\n state[14] = state[6];\n state[10] = state[2];\n state[6] = t;\n state[2] = u;\n t = state[15];\n u = state[11];\n v = state[7];\n state[15] = state[3];\n state[11] = t;\n state[7] = u;\n state[3] = v;\n // InvSubBytes\n for (let j = 0; j < 16; ++j) {\n state[j] = this._inv_s[state[j]];\n }\n // AddRoundKey\n for (let j = 0, k = i * 16; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n // InvMixColumns\n for (let j = 0; j < 16; j += 4) {\n const s0 = this._mix[state[j]];\n const s1 = this._mix[state[j + 1]];\n const s2 = this._mix[state[j + 2]];\n const s3 = this._mix[state[j + 3]];\n t =\n s0 ^\n (s1 >>> 8) ^\n (s1 << 24) ^\n (s2 >>> 16) ^\n (s2 << 16) ^\n (s3 >>> 24) ^\n (s3 << 8);\n state[j] = (t >>> 24) & 0xff;\n state[j + 1] = (t >> 16) & 0xff;\n state[j + 2] = (t >> 8) & 0xff;\n state[j + 3] = t & 0xff;\n }\n }\n // InvShiftRows\n t = state[13];\n state[13] = state[9];\n state[9] = state[5];\n state[5] = state[1];\n state[1] = t;\n t = state[14];\n u = state[10];\n state[14] = state[6];\n state[10] = state[2];\n state[6] = t;\n state[2] = u;\n t = state[15];\n u = state[11];\n v = state[7];\n state[15] = state[3];\n state[11] = t;\n state[7] = u;\n state[3] = v;\n for (let j = 0; j < 16; ++j) {\n // InvSubBytes\n state[j] = this._inv_s[state[j]];\n // AddRoundKey\n state[j] ^= key[j];\n }\n return state;\n }\n\n _encrypt(input, key) {\n const s = this._s;\n\n let t, u, v;\n const state = new Uint8Array(16);\n state.set(input);\n\n for (let j = 0; j < 16; ++j) {\n // AddRoundKey\n state[j] ^= key[j];\n }\n\n for (let i = 1; i < this._cyclesOfRepetition; i++) {\n // SubBytes\n for (let j = 0; j < 16; ++j) {\n state[j] = s[state[j]];\n }\n // ShiftRows\n v = state[1];\n state[1] = state[5];\n state[5] = state[9];\n state[9] = state[13];\n state[13] = v;\n v = state[2];\n u = state[6];\n state[2] = state[10];\n state[6] = state[14];\n state[10] = v;\n state[14] = u;\n v = state[3];\n u = state[7];\n t = state[11];\n state[3] = state[15];\n state[7] = v;\n state[11] = u;\n state[15] = t;\n // MixColumns\n for (let j = 0; j < 16; j += 4) {\n const s0 = state[j + 0];\n const s1 = state[j + 1];\n const s2 = state[j + 2];\n const s3 = state[j + 3];\n t = s0 ^ s1 ^ s2 ^ s3;\n state[j + 0] ^= t ^ this._mixCol[s0 ^ s1];\n state[j + 1] ^= t ^ this._mixCol[s1 ^ s2];\n state[j + 2] ^= t ^ this._mixCol[s2 ^ s3];\n state[j + 3] ^= t ^ this._mixCol[s3 ^ s0];\n }\n // AddRoundKey\n for (let j = 0, k = i * 16; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n }\n\n // SubBytes\n for (let j = 0; j < 16; ++j) {\n state[j] = s[state[j]];\n }\n // ShiftRows\n v = state[1];\n state[1] = state[5];\n state[5] = state[9];\n state[9] = state[13];\n state[13] = v;\n v = state[2];\n u = state[6];\n state[2] = state[10];\n state[6] = state[14];\n state[10] = v;\n state[14] = u;\n v = state[3];\n u = state[7];\n t = state[11];\n state[3] = state[15];\n state[7] = v;\n state[11] = u;\n state[15] = t;\n // AddRoundKey\n for (let j = 0, k = this._keySize; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n return state;\n }\n\n _decryptBlock2(data, finalize) {\n const sourceLength = data.length;\n let buffer = this.buffer,\n bufferLength = this.bufferPosition;\n const result = [];\n let iv = this.iv;\n\n for (let i = 0; i < sourceLength; ++i) {\n buffer[bufferLength] = data[i];\n ++bufferLength;\n if (bufferLength < 16) {\n continue;\n }\n // buffer is full, decrypting\n const plain = this._decrypt(buffer, this._key);\n // xor-ing the IV vector to get plain text\n for (let j = 0; j < 16; ++j) {\n plain[j] ^= iv[j];\n }\n iv = buffer;\n result.push(plain);\n buffer = new Uint8Array(16);\n bufferLength = 0;\n }\n // saving incomplete buffer\n this.buffer = buffer;\n this.bufferLength = bufferLength;\n this.iv = iv;\n if (result.length === 0) {\n return new Uint8Array(0);\n }\n // combining plain text blocks into one\n let outputLength = 16 * result.length;\n if (finalize) {\n // undo a padding that is described in RFC 2898\n const lastBlock = result[result.length - 1];\n let psLen = lastBlock[15];\n if (psLen <= 16) {\n for (let i = 15, ii = 16 - psLen; i >= ii; --i) {\n if (lastBlock[i] !== psLen) {\n // Invalid padding, assume that the block has no padding.\n psLen = 0;\n break;\n }\n }\n outputLength -= psLen;\n result[result.length - 1] = lastBlock.subarray(0, 16 - psLen);\n }\n }\n const output = new Uint8Array(outputLength);\n for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n output.set(result[i], j);\n }\n return output;\n }\n\n decryptBlock(data, finalize, iv = null) {\n const sourceLength = data.length;\n const buffer = this.buffer;\n let bufferLength = this.bufferPosition;\n // If an IV is not supplied, wait for IV values. They are at the start\n // of the stream.\n if (iv) {\n this.iv = iv;\n } else {\n for (\n let i = 0;\n bufferLength < 16 && i < sourceLength;\n ++i, ++bufferLength\n ) {\n buffer[bufferLength] = data[i];\n }\n if (bufferLength < 16) {\n // Need more data.\n this.bufferLength = bufferLength;\n return new Uint8Array(0);\n }\n this.iv = buffer;\n data = data.subarray(16);\n }\n this.buffer = new Uint8Array(16);\n this.bufferLength = 0;\n // starting decryption\n this.decryptBlock = this._decryptBlock2;\n return this.decryptBlock(data, finalize);\n }\n\n encrypt(data, iv) {\n const sourceLength = data.length;\n let buffer = this.buffer,\n bufferLength = this.bufferPosition;\n const result = [];\n\n if (!iv) {\n iv = new Uint8Array(16);\n }\n for (let i = 0; i < sourceLength; ++i) {\n buffer[bufferLength] = data[i];\n ++bufferLength;\n if (bufferLength < 16) {\n continue;\n }\n\n for (let j = 0; j < 16; ++j) {\n buffer[j] ^= iv[j];\n }\n\n // buffer is full, encrypting\n const cipher = this._encrypt(buffer, this._key);\n iv = cipher;\n result.push(cipher);\n buffer = new Uint8Array(16);\n bufferLength = 0;\n }\n // saving incomplete buffer\n this.buffer = buffer;\n this.bufferLength = bufferLength;\n this.iv = iv;\n if (result.length === 0) {\n return new Uint8Array(0);\n }\n // combining plain text blocks into one\n const outputLength = 16 * result.length;\n const output = new Uint8Array(outputLength);\n for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n output.set(result[i], j);\n }\n return output;\n }\n}\n\nclass AES128Cipher extends AESBaseCipher {\n constructor(key) {\n super();\n\n this._cyclesOfRepetition = 10;\n this._keySize = 160; // bits\n\n this._rcon = new Uint8Array([\n 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c,\n 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a,\n 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd,\n 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a,\n 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,\n 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6,\n 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72,\n 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc,\n 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10,\n 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e,\n 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5,\n 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94,\n 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02,\n 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d,\n 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d,\n 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f,\n 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb,\n 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c,\n 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a,\n 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd,\n 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a,\n 0x74, 0xe8, 0xcb, 0x8d,\n ]);\n\n this._key = this._expandKey(key);\n }\n\n _expandKey(cipherKey) {\n const b = 176;\n const s = this._s;\n const rcon = this._rcon;\n\n const result = new Uint8Array(b);\n result.set(cipherKey);\n\n for (let j = 16, i = 1; j < b; ++i) {\n // RotWord\n let t1 = result[j - 3];\n let t2 = result[j - 2];\n let t3 = result[j - 1];\n let t4 = result[j - 4];\n // SubWord\n t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n // Rcon\n t1 ^= rcon[i];\n for (let n = 0; n < 4; ++n) {\n result[j] = t1 ^= result[j - 16];\n j++;\n result[j] = t2 ^= result[j - 16];\n j++;\n result[j] = t3 ^= result[j - 16];\n j++;\n result[j] = t4 ^= result[j - 16];\n j++;\n }\n }\n return result;\n }\n}\n\nclass AES256Cipher extends AESBaseCipher {\n constructor(key) {\n super();\n\n this._cyclesOfRepetition = 14;\n this._keySize = 224; // bits\n\n this._key = this._expandKey(key);\n }\n\n _expandKey(cipherKey) {\n const b = 240;\n const s = this._s;\n\n const result = new Uint8Array(b);\n result.set(cipherKey);\n\n let r = 1;\n let t1, t2, t3, t4;\n for (let j = 32, i = 1; j < b; ++i) {\n if (j % 32 === 16) {\n t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n } else if (j % 32 === 0) {\n // RotWord\n t1 = result[j - 3];\n t2 = result[j - 2];\n t3 = result[j - 1];\n t4 = result[j - 4];\n // SubWord\n t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n // Rcon\n t1 ^= r;\n if ((r <<= 1) >= 256) {\n r = (r ^ 0x1b) & 0xff;\n }\n }\n\n for (let n = 0; n < 4; ++n) {\n result[j] = t1 ^= result[j - 32];\n j++;\n result[j] = t2 ^= result[j - 32];\n j++;\n result[j] = t3 ^= result[j - 32];\n j++;\n result[j] = t4 ^= result[j - 32];\n j++;\n }\n }\n return result;\n }\n}\n\nclass PDF17 {\n checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) {\n const hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerValidationSalt, password.length);\n hashData.set(userBytes, password.length + ownerValidationSalt.length);\n const result = calculateSHA256(hashData, 0, hashData.length);\n return isArrayEqual(result, ownerPassword);\n }\n\n checkUserPassword(password, userValidationSalt, userPassword) {\n const hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userValidationSalt, password.length);\n const result = calculateSHA256(hashData, 0, hashData.length);\n return isArrayEqual(result, userPassword);\n }\n\n getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n const hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerKeySalt, password.length);\n hashData.set(userBytes, password.length + ownerKeySalt.length);\n const key = calculateSHA256(hashData, 0, hashData.length);\n const cipher = new AES256Cipher(key);\n return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n }\n\n getUserKey(password, userKeySalt, userEncryption) {\n const hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userKeySalt, password.length);\n // `key` is the decryption key for the UE string.\n const key = calculateSHA256(hashData, 0, hashData.length);\n const cipher = new AES256Cipher(key);\n return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n }\n}\n\nconst PDF20 = (function PDF20Closure() {\n function calculatePDF20Hash(password, input, userBytes) {\n // This refers to Algorithm 2.B as defined in ISO 32000-2.\n let k = calculateSHA256(input, 0, input.length).subarray(0, 32);\n let e = [0];\n let i = 0;\n while (i < 64 || e[e.length - 1] > i - 32) {\n const combinedLength = password.length + k.length + userBytes.length,\n combinedArray = new Uint8Array(combinedLength);\n let writeOffset = 0;\n combinedArray.set(password, writeOffset);\n writeOffset += password.length;\n combinedArray.set(k, writeOffset);\n writeOffset += k.length;\n combinedArray.set(userBytes, writeOffset);\n\n const k1 = new Uint8Array(combinedLength * 64);\n for (let j = 0, pos = 0; j < 64; j++, pos += combinedLength) {\n k1.set(combinedArray, pos);\n }\n // AES128 CBC NO PADDING with first 16 bytes of k as the key\n // and the second 16 as the iv.\n const cipher = new AES128Cipher(k.subarray(0, 16));\n e = cipher.encrypt(k1, k.subarray(16, 32));\n // Now we have to take the first 16 bytes of an unsigned big endian\n // integer and compute the remainder modulo 3. That is a fairly large\n // number and JavaScript isn't going to handle that well, so we're using\n // a trick that allows us to perform modulo math byte by byte.\n let remainder = 0;\n for (let z = 0; z < 16; z++) {\n remainder *= 256 % 3;\n remainder %= 3;\n remainder += (e[z] >>> 0) % 3;\n remainder %= 3;\n }\n if (remainder === 0) {\n k = calculateSHA256(e, 0, e.length);\n } else if (remainder === 1) {\n k = calculateSHA384(e, 0, e.length);\n } else if (remainder === 2) {\n k = calculateSHA512(e, 0, e.length);\n }\n i++;\n }\n return k.subarray(0, 32);\n }\n\n // eslint-disable-next-line no-shadow\n class PDF20 {\n hash(password, concatBytes, userBytes) {\n return calculatePDF20Hash(password, concatBytes, userBytes);\n }\n\n checkOwnerPassword(\n password,\n ownerValidationSalt,\n userBytes,\n ownerPassword\n ) {\n const hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerValidationSalt, password.length);\n hashData.set(userBytes, password.length + ownerValidationSalt.length);\n const result = calculatePDF20Hash(password, hashData, userBytes);\n return isArrayEqual(result, ownerPassword);\n }\n\n checkUserPassword(password, userValidationSalt, userPassword) {\n const hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userValidationSalt, password.length);\n const result = calculatePDF20Hash(password, hashData, []);\n return isArrayEqual(result, userPassword);\n }\n\n getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n const hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerKeySalt, password.length);\n hashData.set(userBytes, password.length + ownerKeySalt.length);\n const key = calculatePDF20Hash(password, hashData, userBytes);\n const cipher = new AES256Cipher(key);\n return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n }\n\n getUserKey(password, userKeySalt, userEncryption) {\n const hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userKeySalt, password.length);\n // `key` is the decryption key for the UE string.\n const key = calculatePDF20Hash(password, hashData, []);\n const cipher = new AES256Cipher(key);\n return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n }\n }\n\n return PDF20;\n})();\n\nclass CipherTransform {\n constructor(stringCipherConstructor, streamCipherConstructor) {\n this.StringCipherConstructor = stringCipherConstructor;\n this.StreamCipherConstructor = streamCipherConstructor;\n }\n\n createStream(stream, length) {\n const cipher = new this.StreamCipherConstructor();\n return new DecryptStream(\n stream,\n length,\n function cipherTransformDecryptStream(data, finalize) {\n return cipher.decryptBlock(data, finalize);\n }\n );\n }\n\n decryptString(s) {\n const cipher = new this.StringCipherConstructor();\n let data = stringToBytes(s);\n data = cipher.decryptBlock(data, true);\n return bytesToString(data);\n }\n\n encryptString(s) {\n const cipher = new this.StringCipherConstructor();\n if (cipher instanceof AESBaseCipher) {\n // Append some chars equal to \"16 - (M mod 16)\"\n // where M is the string length (see section 7.6.2 in PDF specification)\n // to have a final string where the length is a multiple of 16.\n // Special note:\n // \"Note that the pad is present when M is evenly divisible by 16;\n // it contains 16 bytes of 0x10.\"\n const strLen = s.length;\n const pad = 16 - (strLen % 16);\n s += String.fromCharCode(pad).repeat(pad);\n\n // Generate an initialization vector\n const iv = new Uint8Array(16);\n if (typeof crypto !== \"undefined\") {\n crypto.getRandomValues(iv);\n } else {\n for (let i = 0; i < 16; i++) {\n iv[i] = Math.floor(256 * Math.random());\n }\n }\n\n let data = stringToBytes(s);\n data = cipher.encrypt(data, iv);\n\n const buf = new Uint8Array(16 + data.length);\n buf.set(iv);\n buf.set(data, 16);\n\n return bytesToString(buf);\n }\n\n let data = stringToBytes(s);\n data = cipher.encrypt(data);\n return bytesToString(data);\n }\n}\n\nconst CipherTransformFactory = (function CipherTransformFactoryClosure() {\n const defaultPasswordBytes = new Uint8Array([\n 0x28, 0xbf, 0x4e, 0x5e, 0x4e, 0x75, 0x8a, 0x41, 0x64, 0x00, 0x4e, 0x56,\n 0xff, 0xfa, 0x01, 0x08, 0x2e, 0x2e, 0x00, 0xb6, 0xd0, 0x68, 0x3e, 0x80,\n 0x2f, 0x0c, 0xa9, 0xfe, 0x64, 0x53, 0x69, 0x7a,\n ]);\n\n function createEncryptionKey20(\n revision,\n password,\n ownerPassword,\n ownerValidationSalt,\n ownerKeySalt,\n uBytes,\n userPassword,\n userValidationSalt,\n userKeySalt,\n ownerEncryption,\n userEncryption,\n perms\n ) {\n if (password) {\n const passwordLength = Math.min(127, password.length);\n password = password.subarray(0, passwordLength);\n } else {\n password = [];\n }\n let pdfAlgorithm;\n if (revision === 6) {\n pdfAlgorithm = new PDF20();\n } else {\n pdfAlgorithm = new PDF17();\n }\n\n if (\n pdfAlgorithm.checkUserPassword(password, userValidationSalt, userPassword)\n ) {\n return pdfAlgorithm.getUserKey(password, userKeySalt, userEncryption);\n } else if (\n password.length &&\n pdfAlgorithm.checkOwnerPassword(\n password,\n ownerValidationSalt,\n uBytes,\n ownerPassword\n )\n ) {\n return pdfAlgorithm.getOwnerKey(\n password,\n ownerKeySalt,\n uBytes,\n ownerEncryption\n );\n }\n\n return null;\n }\n\n function prepareKeyData(\n fileId,\n password,\n ownerPassword,\n userPassword,\n flags,\n revision,\n keyLength,\n encryptMetadata\n ) {\n const hashDataSize = 40 + ownerPassword.length + fileId.length;\n const hashData = new Uint8Array(hashDataSize);\n let i = 0,\n j,\n n;\n if (password) {\n n = Math.min(32, password.length);\n for (; i < n; ++i) {\n hashData[i] = password[i];\n }\n }\n j = 0;\n while (i < 32) {\n hashData[i++] = defaultPasswordBytes[j++];\n }\n // as now the padded password in the hashData[0..i]\n for (j = 0, n = ownerPassword.length; j < n; ++j) {\n hashData[i++] = ownerPassword[j];\n }\n hashData[i++] = flags & 0xff;\n hashData[i++] = (flags >> 8) & 0xff;\n hashData[i++] = (flags >> 16) & 0xff;\n hashData[i++] = (flags >>> 24) & 0xff;\n for (j = 0, n = fileId.length; j < n; ++j) {\n hashData[i++] = fileId[j];\n }\n if (revision >= 4 && !encryptMetadata) {\n hashData[i++] = 0xff;\n hashData[i++] = 0xff;\n hashData[i++] = 0xff;\n hashData[i++] = 0xff;\n }\n let hash = calculateMD5(hashData, 0, i);\n const keyLengthInBytes = keyLength >> 3;\n if (revision >= 3) {\n for (j = 0; j < 50; ++j) {\n hash = calculateMD5(hash, 0, keyLengthInBytes);\n }\n }\n const encryptionKey = hash.subarray(0, keyLengthInBytes);\n let cipher, checkData;\n\n if (revision >= 3) {\n for (i = 0; i < 32; ++i) {\n hashData[i] = defaultPasswordBytes[i];\n }\n for (j = 0, n = fileId.length; j < n; ++j) {\n hashData[i++] = fileId[j];\n }\n cipher = new ARCFourCipher(encryptionKey);\n checkData = cipher.encryptBlock(calculateMD5(hashData, 0, i));\n n = encryptionKey.length;\n const derivedKey = new Uint8Array(n);\n for (j = 1; j <= 19; ++j) {\n for (let k = 0; k < n; ++k) {\n derivedKey[k] = encryptionKey[k] ^ j;\n }\n cipher = new ARCFourCipher(derivedKey);\n checkData = cipher.encryptBlock(checkData);\n }\n for (j = 0, n = checkData.length; j < n; ++j) {\n if (userPassword[j] !== checkData[j]) {\n return null;\n }\n }\n } else {\n cipher = new ARCFourCipher(encryptionKey);\n checkData = cipher.encryptBlock(defaultPasswordBytes);\n for (j = 0, n = checkData.length; j < n; ++j) {\n if (userPassword[j] !== checkData[j]) {\n return null;\n }\n }\n }\n return encryptionKey;\n }\n\n function decodeUserPassword(password, ownerPassword, revision, keyLength) {\n const hashData = new Uint8Array(32);\n let i = 0;\n const n = Math.min(32, password.length);\n for (; i < n; ++i) {\n hashData[i] = password[i];\n }\n let j = 0;\n while (i < 32) {\n hashData[i++] = defaultPasswordBytes[j++];\n }\n let hash = calculateMD5(hashData, 0, i);\n const keyLengthInBytes = keyLength >> 3;\n if (revision >= 3) {\n for (j = 0; j < 50; ++j) {\n hash = calculateMD5(hash, 0, hash.length);\n }\n }\n\n let cipher, userPassword;\n if (revision >= 3) {\n userPassword = ownerPassword;\n const derivedKey = new Uint8Array(keyLengthInBytes);\n for (j = 19; j >= 0; j--) {\n for (let k = 0; k < keyLengthInBytes; ++k) {\n derivedKey[k] = hash[k] ^ j;\n }\n cipher = new ARCFourCipher(derivedKey);\n userPassword = cipher.encryptBlock(userPassword);\n }\n } else {\n cipher = new ARCFourCipher(hash.subarray(0, keyLengthInBytes));\n userPassword = cipher.encryptBlock(ownerPassword);\n }\n return userPassword;\n }\n\n const identityName = Name.get(\"Identity\");\n\n function buildObjectKey(num, gen, encryptionKey, isAes = false) {\n const key = new Uint8Array(encryptionKey.length + 9);\n const n = encryptionKey.length;\n let i;\n for (i = 0; i < n; ++i) {\n key[i] = encryptionKey[i];\n }\n key[i++] = num & 0xff;\n key[i++] = (num >> 8) & 0xff;\n key[i++] = (num >> 16) & 0xff;\n key[i++] = gen & 0xff;\n key[i++] = (gen >> 8) & 0xff;\n if (isAes) {\n key[i++] = 0x73;\n key[i++] = 0x41;\n key[i++] = 0x6c;\n key[i++] = 0x54;\n }\n const hash = calculateMD5(key, 0, i);\n return hash.subarray(0, Math.min(encryptionKey.length + 5, 16));\n }\n\n function buildCipherConstructor(cf, name, num, gen, key) {\n if (!(name instanceof Name)) {\n throw new FormatError(\"Invalid crypt filter name.\");\n }\n const cryptFilter = cf.get(name.name);\n let cfm;\n if (cryptFilter !== null && cryptFilter !== undefined) {\n cfm = cryptFilter.get(\"CFM\");\n }\n if (!cfm || cfm.name === \"None\") {\n return function cipherTransformFactoryBuildCipherConstructorNone() {\n return new NullCipher();\n };\n }\n if (cfm.name === \"V2\") {\n return function cipherTransformFactoryBuildCipherConstructorV2() {\n return new ARCFourCipher(\n buildObjectKey(num, gen, key, /* isAes = */ false)\n );\n };\n }\n if (cfm.name === \"AESV2\") {\n return function cipherTransformFactoryBuildCipherConstructorAESV2() {\n return new AES128Cipher(\n buildObjectKey(num, gen, key, /* isAes = */ true)\n );\n };\n }\n if (cfm.name === \"AESV3\") {\n return function cipherTransformFactoryBuildCipherConstructorAESV3() {\n return new AES256Cipher(key);\n };\n }\n throw new FormatError(\"Unknown crypto method\");\n }\n\n // eslint-disable-next-line no-shadow\n class CipherTransformFactory {\n constructor(dict, fileId, password) {\n const filter = dict.get(\"Filter\");\n if (!isName(filter, \"Standard\")) {\n throw new FormatError(\"unknown encryption method\");\n }\n this.filterName = filter.name;\n this.dict = dict;\n const algorithm = dict.get(\"V\");\n if (\n !Number.isInteger(algorithm) ||\n (algorithm !== 1 &&\n algorithm !== 2 &&\n algorithm !== 4 &&\n algorithm !== 5)\n ) {\n throw new FormatError(\"unsupported encryption algorithm\");\n }\n this.algorithm = algorithm;\n let keyLength = dict.get(\"Length\");\n if (!keyLength) {\n // Spec asks to rely on encryption dictionary's Length entry, however\n // some PDFs don't have it. Trying to recover.\n if (algorithm <= 3) {\n // For 1 and 2 it's fixed to 40-bit, for 3 40-bit is a minimal value.\n keyLength = 40;\n } else {\n // Trying to find default handler -- it usually has Length.\n const cfDict = dict.get(\"CF\");\n const streamCryptoName = dict.get(\"StmF\");\n if (cfDict instanceof Dict && streamCryptoName instanceof Name) {\n cfDict.suppressEncryption = true; // See comment below.\n const handlerDict = cfDict.get(streamCryptoName.name);\n keyLength = (handlerDict && handlerDict.get(\"Length\")) || 128;\n if (keyLength < 40) {\n // Sometimes it's incorrect value of bits, generators specify\n // bytes.\n keyLength <<= 3;\n }\n }\n }\n }\n if (\n !Number.isInteger(keyLength) ||\n keyLength < 40 ||\n keyLength % 8 !== 0\n ) {\n throw new FormatError(\"invalid key length\");\n }\n\n // prepare keys\n const ownerPassword = stringToBytes(dict.get(\"O\")).subarray(0, 32);\n const userPassword = stringToBytes(dict.get(\"U\")).subarray(0, 32);\n const flags = dict.get(\"P\");\n const revision = dict.get(\"R\");\n // meaningful when V is 4 or 5\n const encryptMetadata =\n (algorithm === 4 || algorithm === 5) &&\n dict.get(\"EncryptMetadata\") !== false;\n this.encryptMetadata = encryptMetadata;\n\n const fileIdBytes = stringToBytes(fileId);\n let passwordBytes;\n if (password) {\n if (revision === 6) {\n try {\n password = utf8StringToString(password);\n } catch (ex) {\n warn(\n \"CipherTransformFactory: \" +\n \"Unable to convert UTF8 encoded password.\"\n );\n }\n }\n passwordBytes = stringToBytes(password);\n }\n\n let encryptionKey;\n if (algorithm !== 5) {\n encryptionKey = prepareKeyData(\n fileIdBytes,\n passwordBytes,\n ownerPassword,\n userPassword,\n flags,\n revision,\n keyLength,\n encryptMetadata\n );\n } else {\n const ownerValidationSalt = stringToBytes(dict.get(\"O\")).subarray(\n 32,\n 40\n );\n const ownerKeySalt = stringToBytes(dict.get(\"O\")).subarray(40, 48);\n const uBytes = stringToBytes(dict.get(\"U\")).subarray(0, 48);\n const userValidationSalt = stringToBytes(dict.get(\"U\")).subarray(\n 32,\n 40\n );\n const userKeySalt = stringToBytes(dict.get(\"U\")).subarray(40, 48);\n const ownerEncryption = stringToBytes(dict.get(\"OE\"));\n const userEncryption = stringToBytes(dict.get(\"UE\"));\n const perms = stringToBytes(dict.get(\"Perms\"));\n encryptionKey = createEncryptionKey20(\n revision,\n passwordBytes,\n ownerPassword,\n ownerValidationSalt,\n ownerKeySalt,\n uBytes,\n userPassword,\n userValidationSalt,\n userKeySalt,\n ownerEncryption,\n userEncryption,\n perms\n );\n }\n if (!encryptionKey && !password) {\n throw new PasswordException(\n \"No password given\",\n PasswordResponses.NEED_PASSWORD\n );\n } else if (!encryptionKey && password) {\n // Attempting use the password as an owner password\n const decodedPassword = decodeUserPassword(\n passwordBytes,\n ownerPassword,\n revision,\n keyLength\n );\n encryptionKey = prepareKeyData(\n fileIdBytes,\n decodedPassword,\n ownerPassword,\n userPassword,\n flags,\n revision,\n keyLength,\n encryptMetadata\n );\n }\n\n if (!encryptionKey) {\n throw new PasswordException(\n \"Incorrect Password\",\n PasswordResponses.INCORRECT_PASSWORD\n );\n }\n\n this.encryptionKey = encryptionKey;\n\n if (algorithm >= 4) {\n const cf = dict.get(\"CF\");\n if (cf instanceof Dict) {\n // The 'CF' dictionary itself should not be encrypted, and by setting\n // `suppressEncryption` we can prevent an infinite loop inside of\n // `XRef_fetchUncompressed` if the dictionary contains indirect\n // objects (fixes issue7665.pdf).\n cf.suppressEncryption = true;\n }\n this.cf = cf;\n this.stmf = dict.get(\"StmF\") || identityName;\n this.strf = dict.get(\"StrF\") || identityName;\n this.eff = dict.get(\"EFF\") || this.stmf;\n }\n }\n\n createCipherTransform(num, gen) {\n if (this.algorithm === 4 || this.algorithm === 5) {\n return new CipherTransform(\n buildCipherConstructor(\n this.cf,\n this.stmf,\n num,\n gen,\n this.encryptionKey\n ),\n buildCipherConstructor(\n this.cf,\n this.strf,\n num,\n gen,\n this.encryptionKey\n )\n );\n }\n // algorithms 1 and 2\n const key = buildObjectKey(\n num,\n gen,\n this.encryptionKey,\n /* isAes = */ false\n );\n const cipherConstructor = function buildCipherCipherConstructor() {\n return new ARCFourCipher(key);\n };\n return new CipherTransform(cipherConstructor, cipherConstructor);\n }\n }\n\n return CipherTransformFactory;\n})();\n\nexport {\n AES128Cipher,\n AES256Cipher,\n ARCFourCipher,\n calculateMD5,\n calculateSHA256,\n calculateSHA384,\n calculateSHA512,\n CipherTransformFactory,\n PDF17,\n PDF20,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\n\nconst chunkSize = 512;\n\nclass DecryptStream extends DecodeStream {\n constructor(str, maybeLength, decrypt) {\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n this.decrypt = decrypt;\n this.nextChunk = null;\n this.initialized = false;\n }\n\n readBlock() {\n let chunk;\n if (this.initialized) {\n chunk = this.nextChunk;\n } else {\n chunk = this.str.getBytes(chunkSize);\n this.initialized = true;\n }\n if (!chunk || chunk.length === 0) {\n this.eof = true;\n return;\n }\n this.nextChunk = this.str.getBytes(chunkSize);\n const hasMoreData = this.nextChunk && this.nextChunk.length > 0;\n\n const decrypt = this.decrypt;\n chunk = decrypt(chunk, !hasMoreData);\n\n let bufferLength = this.bufferLength;\n const n = chunk.length,\n buffer = this.ensureBuffer(bufferLength + n);\n for (let i = 0; i < n; i++) {\n buffer[bufferLength++] = chunk[i];\n }\n this.bufferLength = bufferLength;\n }\n}\n\nexport { DecryptStream };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $appendChild,\n $globalData,\n $nodeName,\n $text,\n $toHTML,\n $toPages,\n} from \"./xfa_object.js\";\nimport { Binder } from \"./bind.js\";\nimport { DataHandler } from \"./data.js\";\nimport { FontFinder } from \"./fonts.js\";\nimport { stripQuotes } from \"./utils.js\";\nimport { warn } from \"../../shared/util.js\";\nimport { XFAParser } from \"./parser.js\";\nimport { XhtmlNamespace } from \"./xhtml.js\";\n\nclass XFAFactory {\n constructor(data) {\n try {\n this.root = new XFAParser().parse(XFAFactory._createDocument(data));\n const binder = new Binder(this.root);\n this.form = binder.bind();\n this.dataHandler = new DataHandler(this.root, binder.getData());\n this.form[$globalData].template = this.form;\n } catch (e) {\n warn(`XFA - an error occurred during parsing and binding: ${e}`);\n }\n }\n\n isValid() {\n return this.root && this.form;\n }\n\n /**\n * In order to avoid to block the event loop, the conversion\n * into pages is made asynchronously.\n */\n _createPagesHelper() {\n const iterator = this.form[$toPages]();\n return new Promise((resolve, reject) => {\n const nextIteration = () => {\n try {\n const value = iterator.next();\n if (value.done) {\n resolve(value.value);\n } else {\n setTimeout(nextIteration, 0);\n }\n } catch (e) {\n reject(e);\n }\n };\n setTimeout(nextIteration, 0);\n });\n }\n\n async _createPages() {\n try {\n this.pages = await this._createPagesHelper();\n this.dims = this.pages.children.map(c => {\n const { width, height } = c.attributes.style;\n return [0, 0, parseInt(width), parseInt(height)];\n });\n } catch (e) {\n warn(`XFA - an error occurred during layout: ${e}`);\n }\n }\n\n getBoundingBox(pageIndex) {\n return this.dims[pageIndex];\n }\n\n async getNumPages() {\n if (!this.pages) {\n await this._createPages();\n }\n return this.dims.length;\n }\n\n setImages(images) {\n this.form[$globalData].images = images;\n }\n\n setFonts(fonts) {\n this.form[$globalData].fontFinder = new FontFinder(fonts);\n const missingFonts = [];\n for (let typeface of this.form[$globalData].usedTypefaces) {\n typeface = stripQuotes(typeface);\n const font = this.form[$globalData].fontFinder.find(typeface);\n if (!font) {\n missingFonts.push(typeface);\n }\n }\n\n if (missingFonts.length > 0) {\n return missingFonts;\n }\n\n return null;\n }\n\n appendFonts(fonts, reallyMissingFonts) {\n this.form[$globalData].fontFinder.add(fonts, reallyMissingFonts);\n }\n\n async getPages() {\n if (!this.pages) {\n await this._createPages();\n }\n const pages = this.pages;\n this.pages = null;\n return pages;\n }\n\n serializeData(storage) {\n return this.dataHandler.serialize(storage);\n }\n\n static _createDocument(data) {\n if (!data[\"/xdp:xdp\"]) {\n return data[\"xdp:xdp\"];\n }\n return Object.values(data).join(\"\");\n }\n\n static getRichTextAsHtml(rc) {\n if (!rc || typeof rc !== \"string\") {\n return null;\n }\n\n try {\n let root = new XFAParser(XhtmlNamespace, /* richText */ true).parse(rc);\n if (![\"body\", \"xhtml\"].includes(root[$nodeName])) {\n // No body, so create one.\n const newRoot = XhtmlNamespace.body({});\n newRoot[$appendChild](root);\n root = newRoot;\n }\n\n const result = root[$toHTML]();\n if (!result.success) {\n return null;\n }\n\n const { html } = result;\n const { attributes } = html;\n if (attributes) {\n if (attributes.class) {\n attributes.class = attributes.class.filter(\n attr => !attr.startsWith(\"xfa\")\n );\n }\n attributes.dir = \"auto\";\n }\n\n return { html, str: root[$text]() };\n } catch (e) {\n warn(`XFA - an error occurred during parsing of rich text: ${e}`);\n }\n return null;\n }\n}\n\nexport { XFAFactory };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getInteger, getKeyword, HTMLResult } from \"./utils.js\";\nimport { shadow, utf8StringToString, warn } from \"../../shared/util.js\";\nimport { encodeToXmlString } from \"../core_utils.js\";\nimport { NamespaceIds } from \"./namespaces.js\";\nimport { searchNode } from \"./som.js\";\n\n// We use these symbols to avoid name conflict between tags\n// and properties/methods names.\nconst $acceptWhitespace = Symbol();\nconst $addHTML = Symbol();\nconst $appendChild = Symbol();\nconst $childrenToHTML = Symbol();\nconst $clean = Symbol();\nconst $cleanPage = Symbol();\nconst $cleanup = Symbol();\nconst $clone = Symbol();\nconst $consumed = Symbol();\nconst $content = Symbol(\"content\");\nconst $data = Symbol(\"data\");\nconst $dump = Symbol();\nconst $extra = Symbol(\"extra\");\nconst $finalize = Symbol();\nconst $flushHTML = Symbol();\nconst $getAttributeIt = Symbol();\nconst $getAttributes = Symbol();\nconst $getAvailableSpace = Symbol();\nconst $getChildrenByClass = Symbol();\nconst $getChildrenByName = Symbol();\nconst $getChildrenByNameIt = Symbol();\nconst $getDataValue = Symbol();\nconst $getExtra = Symbol();\nconst $getRealChildrenByNameIt = Symbol();\nconst $getChildren = Symbol();\nconst $getContainedChildren = Symbol();\nconst $getNextPage = Symbol();\nconst $getSubformParent = Symbol();\nconst $getParent = Symbol();\nconst $getTemplateRoot = Symbol();\nconst $globalData = Symbol();\nconst $hasSettableValue = Symbol();\nconst $ids = Symbol();\nconst $indexOf = Symbol();\nconst $insertAt = Symbol();\nconst $isCDATAXml = Symbol();\nconst $isBindable = Symbol();\nconst $isDataValue = Symbol();\nconst $isDescendent = Symbol();\nconst $isNsAgnostic = Symbol();\nconst $isSplittable = Symbol();\nconst $isThereMoreWidth = Symbol();\nconst $isTransparent = Symbol();\nconst $isUsable = Symbol();\nconst $lastAttribute = Symbol();\nconst $namespaceId = Symbol(\"namespaceId\");\nconst $nodeName = Symbol(\"nodeName\");\nconst $nsAttributes = Symbol();\nconst $onChild = Symbol();\nconst $onChildCheck = Symbol();\nconst $onText = Symbol();\nconst $pushGlyphs = Symbol();\nconst $popPara = Symbol();\nconst $pushPara = Symbol();\nconst $removeChild = Symbol();\nconst $root = Symbol(\"root\");\nconst $resolvePrototypes = Symbol();\nconst $searchNode = Symbol();\nconst $setId = Symbol();\nconst $setSetAttributes = Symbol();\nconst $setValue = Symbol();\nconst $tabIndex = Symbol();\nconst $text = Symbol();\nconst $toPages = Symbol();\nconst $toHTML = Symbol();\nconst $toString = Symbol();\nconst $toStyle = Symbol();\nconst $uid = Symbol(\"uid\");\n\nconst _applyPrototype = Symbol();\nconst _attributes = Symbol();\nconst _attributeNames = Symbol();\nconst _children = Symbol(\"_children\");\nconst _cloneAttribute = Symbol();\nconst _dataValue = Symbol();\nconst _defaultValue = Symbol();\nconst _filteredChildrenGenerator = Symbol();\nconst _getPrototype = Symbol();\nconst _getUnsetAttributes = Symbol();\nconst _hasChildren = Symbol();\nconst _max = Symbol();\nconst _options = Symbol();\nconst _parent = Symbol(\"parent\");\nconst _resolvePrototypesHelper = Symbol();\nconst _setAttributes = Symbol();\nconst _validator = Symbol();\n\nlet uid = 0;\n\nconst NS_DATASETS = NamespaceIds.datasets.id;\n\nclass XFAObject {\n constructor(nsId, name, hasChildren = false) {\n this[$namespaceId] = nsId;\n this[$nodeName] = name;\n this[_hasChildren] = hasChildren;\n this[_parent] = null;\n this[_children] = [];\n this[$uid] = `${name}${uid++}`;\n this[$globalData] = null;\n }\n\n [$onChild](child) {\n if (!this[_hasChildren] || !this[$onChildCheck](child)) {\n return false;\n }\n\n const name = child[$nodeName];\n const node = this[name];\n\n if (node instanceof XFAObjectArray) {\n if (node.push(child)) {\n this[$appendChild](child);\n return true;\n }\n } else {\n // IRL it's possible to already have a node.\n // So just replace it with the last version.\n if (node !== null) {\n this[$removeChild](node);\n }\n this[name] = child;\n this[$appendChild](child);\n return true;\n }\n\n let id = \"\";\n if (this.id) {\n id = ` (id: ${this.id})`;\n } else if (this.name) {\n id = ` (name: ${this.name} ${this.h.value})`;\n }\n warn(`XFA - node \"${this[$nodeName]}\"${id} has already enough \"${name}\"!`);\n return false;\n }\n\n [$onChildCheck](child) {\n return (\n this.hasOwnProperty(child[$nodeName]) &&\n child[$namespaceId] === this[$namespaceId]\n );\n }\n\n [$isNsAgnostic]() {\n return false;\n }\n\n [$acceptWhitespace]() {\n return false;\n }\n\n [$isCDATAXml]() {\n return false;\n }\n\n [$isBindable]() {\n return false;\n }\n\n [$popPara]() {\n if (this.para) {\n this[$getTemplateRoot]()[$extra].paraStack.pop();\n }\n }\n\n [$pushPara]() {\n this[$getTemplateRoot]()[$extra].paraStack.push(this.para);\n }\n\n [$setId](ids) {\n if (this.id && this[$namespaceId] === NamespaceIds.template.id) {\n ids.set(this.id, this);\n }\n }\n\n [$getTemplateRoot]() {\n return this[$globalData].template;\n }\n\n [$isSplittable]() {\n return false;\n }\n\n /**\n Return true if this node (typically a container)\n can provide more width during layout.\n The goal is to help to know what a descendant must\n do in case of horizontal overflow.\n */\n [$isThereMoreWidth]() {\n return false;\n }\n\n [$appendChild](child) {\n child[_parent] = this;\n this[_children].push(child);\n if (!child[$globalData] && this[$globalData]) {\n child[$globalData] = this[$globalData];\n }\n }\n\n [$removeChild](child) {\n const i = this[_children].indexOf(child);\n this[_children].splice(i, 1);\n }\n\n [$hasSettableValue]() {\n return this.hasOwnProperty(\"value\");\n }\n\n [$setValue](_) {}\n\n [$onText](_) {}\n\n [$finalize]() {}\n\n [$clean](builder) {\n delete this[_hasChildren];\n if (this[$cleanup]) {\n builder.clean(this[$cleanup]);\n delete this[$cleanup];\n }\n }\n\n [$indexOf](child) {\n return this[_children].indexOf(child);\n }\n\n [$insertAt](i, child) {\n child[_parent] = this;\n this[_children].splice(i, 0, child);\n if (!child[$globalData] && this[$globalData]) {\n child[$globalData] = this[$globalData];\n }\n }\n\n /**\n * If true the element is transparent when searching a node using\n * a SOM expression which means that looking for \"foo.bar\" in\n * <... name=\"foo\"><... name=\"bar\">...\n * is fine because toto and titi are transparent.\n */\n [$isTransparent]() {\n return !this.name;\n }\n\n [$lastAttribute]() {\n return \"\";\n }\n\n [$text]() {\n if (this[_children].length === 0) {\n return this[$content];\n }\n return this[_children].map(c => c[$text]()).join(\"\");\n }\n\n get [_attributeNames]() {\n // Lazily get attributes names\n const proto = Object.getPrototypeOf(this);\n if (!proto._attributes) {\n const attributes = (proto._attributes = new Set());\n for (const name of Object.getOwnPropertyNames(this)) {\n if (\n this[name] === null ||\n this[name] instanceof XFAObject ||\n this[name] instanceof XFAObjectArray\n ) {\n break;\n }\n attributes.add(name);\n }\n }\n return shadow(this, _attributeNames, proto._attributes);\n }\n\n [$isDescendent](parent) {\n let node = this;\n while (node) {\n if (node === parent) {\n return true;\n }\n node = node[$getParent]();\n }\n return false;\n }\n\n [$getParent]() {\n return this[_parent];\n }\n\n [$getSubformParent]() {\n return this[$getParent]();\n }\n\n [$getChildren](name = null) {\n if (!name) {\n return this[_children];\n }\n\n return this[name];\n }\n\n [$dump]() {\n const dumped = Object.create(null);\n if (this[$content]) {\n dumped.$content = this[$content];\n }\n\n for (const name of Object.getOwnPropertyNames(this)) {\n const value = this[name];\n if (value === null) {\n continue;\n }\n if (value instanceof XFAObject) {\n dumped[name] = value[$dump]();\n } else if (value instanceof XFAObjectArray) {\n if (!value.isEmpty()) {\n dumped[name] = value.dump();\n }\n } else {\n dumped[name] = value;\n }\n }\n\n return dumped;\n }\n\n [$toStyle]() {\n return null;\n }\n\n [$toHTML]() {\n return HTMLResult.EMPTY;\n }\n\n *[$getContainedChildren]() {\n // This function is overriden in Subform and SubformSet.\n for (const node of this[$getChildren]()) {\n yield node;\n }\n }\n\n *[_filteredChildrenGenerator](filter, include) {\n for (const node of this[$getContainedChildren]()) {\n if (!filter || include === filter.has(node[$nodeName])) {\n const availableSpace = this[$getAvailableSpace]();\n const res = node[$toHTML](availableSpace);\n if (!res.success) {\n this[$extra].failingNode = node;\n }\n yield res;\n }\n }\n }\n\n [$flushHTML]() {\n return null;\n }\n\n [$addHTML](html, bbox) {\n this[$extra].children.push(html);\n }\n\n [$getAvailableSpace]() {}\n\n [$childrenToHTML]({ filter = null, include = true }) {\n if (!this[$extra].generator) {\n this[$extra].generator = this[_filteredChildrenGenerator](\n filter,\n include\n );\n } else {\n const availableSpace = this[$getAvailableSpace]();\n const res = this[$extra].failingNode[$toHTML](availableSpace);\n if (!res.success) {\n return res;\n }\n if (res.html) {\n this[$addHTML](res.html, res.bbox);\n }\n delete this[$extra].failingNode;\n }\n\n while (true) {\n const gen = this[$extra].generator.next();\n if (gen.done) {\n break;\n }\n const res = gen.value;\n if (!res.success) {\n return res;\n }\n if (res.html) {\n this[$addHTML](res.html, res.bbox);\n }\n }\n\n this[$extra].generator = null;\n\n return HTMLResult.EMPTY;\n }\n\n [$setSetAttributes](attributes) {\n // Just keep set attributes because it can be used in a proto.\n this[_setAttributes] = new Set(Object.keys(attributes));\n }\n\n /**\n * Get attribute names which have been set in the proto but not in this.\n */\n [_getUnsetAttributes](protoAttributes) {\n const allAttr = this[_attributeNames];\n const setAttr = this[_setAttributes];\n return [...protoAttributes].filter(x => allAttr.has(x) && !setAttr.has(x));\n }\n\n /**\n * Update the node with properties coming from a prototype and apply\n * this function recursively to all children.\n */\n [$resolvePrototypes](ids, ancestors = new Set()) {\n for (const child of this[_children]) {\n child[_resolvePrototypesHelper](ids, ancestors);\n }\n }\n\n [_resolvePrototypesHelper](ids, ancestors) {\n const proto = this[_getPrototype](ids, ancestors);\n if (proto) {\n // _applyPrototype will apply $resolvePrototypes with correct ancestors\n // to avoid infinite loop.\n this[_applyPrototype](proto, ids, ancestors);\n } else {\n this[$resolvePrototypes](ids, ancestors);\n }\n }\n\n [_getPrototype](ids, ancestors) {\n const { use, usehref } = this;\n if (!use && !usehref) {\n return null;\n }\n\n let proto = null;\n let somExpression = null;\n let id = null;\n let ref = use;\n\n // If usehref and use are non-empty then use usehref.\n if (usehref) {\n ref = usehref;\n // Href can be one of the following:\n // - #ID\n // - URI#ID\n // - #som(expression)\n // - URI#som(expression)\n // - URI\n // For now we don't handle URI other than \".\" (current document).\n if (usehref.startsWith(\"#som(\") && usehref.endsWith(\")\")) {\n somExpression = usehref.slice(\"#som(\".length, usehref.length - 1);\n } else if (usehref.startsWith(\".#som(\") && usehref.endsWith(\")\")) {\n somExpression = usehref.slice(\".#som(\".length, usehref.length - 1);\n } else if (usehref.startsWith(\"#\")) {\n id = usehref.slice(1);\n } else if (usehref.startsWith(\".#\")) {\n id = usehref.slice(2);\n }\n } else if (use.startsWith(\"#\")) {\n id = use.slice(1);\n } else {\n somExpression = use;\n }\n\n this.use = this.usehref = \"\";\n if (id) {\n proto = ids.get(id);\n } else {\n proto = searchNode(\n ids.get($root),\n this,\n somExpression,\n true /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (proto) {\n proto = proto[0];\n }\n }\n\n if (!proto) {\n warn(`XFA - Invalid prototype reference: ${ref}.`);\n return null;\n }\n\n if (proto[$nodeName] !== this[$nodeName]) {\n warn(\n `XFA - Incompatible prototype: ${proto[$nodeName]} !== ${this[$nodeName]}.`\n );\n return null;\n }\n\n if (ancestors.has(proto)) {\n // We've a cycle so break it.\n warn(`XFA - Cycle detected in prototypes use.`);\n return null;\n }\n\n ancestors.add(proto);\n\n // The prototype can have a \"use\" attribute itself.\n const protoProto = proto[_getPrototype](ids, ancestors);\n if (protoProto) {\n proto[_applyPrototype](protoProto, ids, ancestors);\n }\n\n // The prototype can have a child which itself has a \"use\" property.\n proto[$resolvePrototypes](ids, ancestors);\n\n ancestors.delete(proto);\n\n return proto;\n }\n\n [_applyPrototype](proto, ids, ancestors) {\n if (ancestors.has(proto)) {\n // We've a cycle so break it.\n warn(`XFA - Cycle detected in prototypes use.`);\n return;\n }\n\n if (!this[$content] && proto[$content]) {\n this[$content] = proto[$content];\n }\n\n const newAncestors = new Set(ancestors);\n newAncestors.add(proto);\n\n for (const unsetAttrName of this[_getUnsetAttributes](\n proto[_setAttributes]\n )) {\n this[unsetAttrName] = proto[unsetAttrName];\n if (this[_setAttributes]) {\n this[_setAttributes].add(unsetAttrName);\n }\n }\n\n for (const name of Object.getOwnPropertyNames(this)) {\n if (this[_attributeNames].has(name)) {\n continue;\n }\n const value = this[name];\n const protoValue = proto[name];\n\n if (value instanceof XFAObjectArray) {\n for (const child of value[_children]) {\n child[_resolvePrototypesHelper](ids, ancestors);\n }\n\n for (\n let i = value[_children].length, ii = protoValue[_children].length;\n i < ii;\n i++\n ) {\n const child = proto[_children][i][$clone]();\n if (value.push(child)) {\n child[_parent] = this;\n this[_children].push(child);\n child[_resolvePrototypesHelper](ids, ancestors);\n } else {\n // No need to continue: other nodes will be rejected.\n break;\n }\n }\n continue;\n }\n\n if (value !== null) {\n value[$resolvePrototypes](ids, ancestors);\n if (protoValue) {\n // protoValue must be treated as a prototype for value.\n value[_applyPrototype](protoValue, ids, ancestors);\n }\n continue;\n }\n\n if (protoValue !== null) {\n const child = protoValue[$clone]();\n child[_parent] = this;\n this[name] = child;\n this[_children].push(child);\n child[_resolvePrototypesHelper](ids, ancestors);\n }\n }\n }\n\n static [_cloneAttribute](obj) {\n if (Array.isArray(obj)) {\n return obj.map(x => XFAObject[_cloneAttribute](x));\n }\n if (typeof obj === \"object\" && obj !== null) {\n return Object.assign({}, obj);\n }\n return obj;\n }\n\n [$clone]() {\n const clone = Object.create(Object.getPrototypeOf(this));\n for (const $symbol of Object.getOwnPropertySymbols(this)) {\n try {\n clone[$symbol] = this[$symbol];\n } catch (_) {\n shadow(clone, $symbol, this[$symbol]);\n }\n }\n clone[$uid] = `${clone[$nodeName]}${uid++}`;\n clone[_children] = [];\n\n for (const name of Object.getOwnPropertyNames(this)) {\n if (this[_attributeNames].has(name)) {\n clone[name] = XFAObject[_cloneAttribute](this[name]);\n continue;\n }\n const value = this[name];\n if (value instanceof XFAObjectArray) {\n clone[name] = new XFAObjectArray(value[_max]);\n } else {\n clone[name] = null;\n }\n }\n\n for (const child of this[_children]) {\n const name = child[$nodeName];\n const clonedChild = child[$clone]();\n clone[_children].push(clonedChild);\n clonedChild[_parent] = clone;\n if (clone[name] === null) {\n clone[name] = clonedChild;\n } else {\n clone[name][_children].push(clonedChild);\n }\n }\n\n return clone;\n }\n\n [$getChildren](name = null) {\n if (!name) {\n return this[_children];\n }\n\n return this[_children].filter(c => c[$nodeName] === name);\n }\n\n [$getChildrenByClass](name) {\n return this[name];\n }\n\n [$getChildrenByName](name, allTransparent, first = true) {\n return Array.from(this[$getChildrenByNameIt](name, allTransparent, first));\n }\n\n *[$getChildrenByNameIt](name, allTransparent, first = true) {\n if (name === \"parent\") {\n yield this[_parent];\n return;\n }\n\n for (const child of this[_children]) {\n if (child[$nodeName] === name) {\n yield child;\n }\n\n if (child.name === name) {\n yield child;\n }\n\n if (allTransparent || child[$isTransparent]()) {\n yield* child[$getChildrenByNameIt](name, allTransparent, false);\n }\n }\n\n if (first && this[_attributeNames].has(name)) {\n yield new XFAAttribute(this, name, this[name]);\n }\n }\n}\n\nclass XFAObjectArray {\n constructor(max = Infinity) {\n this[_max] = max;\n this[_children] = [];\n }\n\n push(child) {\n const len = this[_children].length;\n if (len <= this[_max]) {\n this[_children].push(child);\n return true;\n }\n warn(\n `XFA - node \"${child[$nodeName]}\" accepts no more than ${this[_max]} children`\n );\n return false;\n }\n\n isEmpty() {\n return this[_children].length === 0;\n }\n\n dump() {\n return this[_children].length === 1\n ? this[_children][0][$dump]()\n : this[_children].map(x => x[$dump]());\n }\n\n [$clone]() {\n const clone = new XFAObjectArray(this[_max]);\n clone[_children] = this[_children].map(c => c[$clone]());\n return clone;\n }\n\n get children() {\n return this[_children];\n }\n\n clear() {\n this[_children].length = 0;\n }\n}\n\nclass XFAAttribute {\n constructor(node, name, value) {\n this[_parent] = node;\n this[$nodeName] = name;\n this[$content] = value;\n this[$consumed] = false;\n this[$uid] = `attribute${uid++}`;\n }\n\n [$getParent]() {\n return this[_parent];\n }\n\n [$isDataValue]() {\n return true;\n }\n\n [$getDataValue]() {\n return this[$content].trim();\n }\n\n [$setValue](value) {\n value = value.value || \"\";\n this[$content] = value.toString();\n }\n\n [$text]() {\n return this[$content];\n }\n\n [$isDescendent](parent) {\n return this[_parent] === parent || this[_parent][$isDescendent](parent);\n }\n}\n\nclass XmlObject extends XFAObject {\n constructor(nsId, name, attributes = {}) {\n super(nsId, name);\n this[$content] = \"\";\n this[_dataValue] = null;\n if (name !== \"#text\") {\n const map = new Map();\n this[_attributes] = map;\n for (const [attrName, value] of Object.entries(attributes)) {\n map.set(attrName, new XFAAttribute(this, attrName, value));\n }\n if (attributes.hasOwnProperty($nsAttributes)) {\n // XFA attributes.\n const dataNode = attributes[$nsAttributes].xfa.dataNode;\n if (dataNode !== undefined) {\n if (dataNode === \"dataGroup\") {\n this[_dataValue] = false;\n } else if (dataNode === \"dataValue\") {\n this[_dataValue] = true;\n }\n }\n }\n }\n this[$consumed] = false;\n }\n\n [$toString](buf) {\n const tagName = this[$nodeName];\n if (tagName === \"#text\") {\n buf.push(encodeToXmlString(this[$content]));\n return;\n }\n const utf8TagName = utf8StringToString(tagName);\n const prefix = this[$namespaceId] === NS_DATASETS ? \"xfa:\" : \"\";\n buf.push(`<${prefix}${utf8TagName}`);\n for (const [name, value] of this[_attributes].entries()) {\n const utf8Name = utf8StringToString(name);\n buf.push(` ${utf8Name}=\"${encodeToXmlString(value[$content])}\"`);\n }\n if (this[_dataValue] !== null) {\n if (this[_dataValue]) {\n buf.push(` xfa:dataNode=\"dataValue\"`);\n } else {\n buf.push(` xfa:dataNode=\"dataGroup\"`);\n }\n }\n if (!this[$content] && this[_children].length === 0) {\n buf.push(\"/>\");\n return;\n }\n\n buf.push(\">\");\n if (this[$content]) {\n if (typeof this[$content] === \"string\") {\n buf.push(encodeToXmlString(this[$content]));\n } else {\n this[$content][$toString](buf);\n }\n } else {\n for (const child of this[_children]) {\n child[$toString](buf);\n }\n }\n buf.push(``);\n }\n\n [$onChild](child) {\n if (this[$content]) {\n const node = new XmlObject(this[$namespaceId], \"#text\");\n this[$appendChild](node);\n node[$content] = this[$content];\n this[$content] = \"\";\n }\n this[$appendChild](child);\n return true;\n }\n\n [$onText](str) {\n this[$content] += str;\n }\n\n [$finalize]() {\n if (this[$content] && this[_children].length > 0) {\n const node = new XmlObject(this[$namespaceId], \"#text\");\n this[$appendChild](node);\n node[$content] = this[$content];\n delete this[$content];\n }\n }\n\n [$toHTML]() {\n if (this[$nodeName] === \"#text\") {\n return HTMLResult.success({\n name: \"#text\",\n value: this[$content],\n });\n }\n\n return HTMLResult.EMPTY;\n }\n\n [$getChildren](name = null) {\n if (!name) {\n return this[_children];\n }\n\n return this[_children].filter(c => c[$nodeName] === name);\n }\n\n [$getAttributes]() {\n return this[_attributes];\n }\n\n [$getChildrenByClass](name) {\n const value = this[_attributes].get(name);\n if (value !== undefined) {\n return value;\n }\n return this[$getChildren](name);\n }\n\n *[$getChildrenByNameIt](name, allTransparent) {\n const value = this[_attributes].get(name);\n if (value) {\n yield value;\n }\n\n for (const child of this[_children]) {\n if (child[$nodeName] === name) {\n yield child;\n }\n\n if (allTransparent) {\n yield* child[$getChildrenByNameIt](name, allTransparent);\n }\n }\n }\n\n *[$getAttributeIt](name, skipConsumed) {\n const value = this[_attributes].get(name);\n if (value && (!skipConsumed || !value[$consumed])) {\n yield value;\n }\n for (const child of this[_children]) {\n yield* child[$getAttributeIt](name, skipConsumed);\n }\n }\n\n *[$getRealChildrenByNameIt](name, allTransparent, skipConsumed) {\n for (const child of this[_children]) {\n if (child[$nodeName] === name && (!skipConsumed || !child[$consumed])) {\n yield child;\n }\n\n if (allTransparent) {\n yield* child[$getRealChildrenByNameIt](\n name,\n allTransparent,\n skipConsumed\n );\n }\n }\n }\n\n [$isDataValue]() {\n if (this[_dataValue] === null) {\n return (\n this[_children].length === 0 ||\n this[_children][0][$namespaceId] === NamespaceIds.xhtml.id\n );\n }\n return this[_dataValue];\n }\n\n [$getDataValue]() {\n if (this[_dataValue] === null) {\n if (this[_children].length === 0) {\n return this[$content].trim();\n }\n if (this[_children][0][$namespaceId] === NamespaceIds.xhtml.id) {\n return this[_children][0][$text]().trim();\n }\n return null;\n }\n return this[$content].trim();\n }\n\n [$setValue](value) {\n value = value.value || \"\";\n this[$content] = value.toString();\n }\n\n [$dump](hasNS = false) {\n const dumped = Object.create(null);\n if (hasNS) {\n dumped.$ns = this[$namespaceId];\n }\n if (this[$content]) {\n dumped.$content = this[$content];\n }\n dumped.$name = this[$nodeName];\n\n dumped.children = [];\n for (const child of this[_children]) {\n dumped.children.push(child[$dump](hasNS));\n }\n\n dumped.attributes = Object.create(null);\n for (const [name, value] of this[_attributes]) {\n dumped.attributes[name] = value[$content];\n }\n\n return dumped;\n }\n}\n\nclass ContentObject extends XFAObject {\n constructor(nsId, name) {\n super(nsId, name);\n this[$content] = \"\";\n }\n\n [$onText](text) {\n this[$content] += text;\n }\n\n [$finalize]() {}\n}\n\nclass OptionObject extends ContentObject {\n constructor(nsId, name, options) {\n super(nsId, name);\n this[_options] = options;\n }\n\n [$finalize]() {\n this[$content] = getKeyword({\n data: this[$content],\n defaultValue: this[_options][0],\n validate: k => this[_options].includes(k),\n });\n }\n\n [$clean](builder) {\n super[$clean](builder);\n delete this[_options];\n }\n}\n\nclass StringObject extends ContentObject {\n [$finalize]() {\n this[$content] = this[$content].trim();\n }\n}\n\nclass IntegerObject extends ContentObject {\n constructor(nsId, name, defaultValue, validator) {\n super(nsId, name);\n this[_defaultValue] = defaultValue;\n this[_validator] = validator;\n }\n\n [$finalize]() {\n this[$content] = getInteger({\n data: this[$content],\n defaultValue: this[_defaultValue],\n validate: this[_validator],\n });\n }\n\n [$clean](builder) {\n super[$clean](builder);\n delete this[_defaultValue];\n delete this[_validator];\n }\n}\n\nclass Option01 extends IntegerObject {\n constructor(nsId, name) {\n super(nsId, name, 0, n => n === 1);\n }\n}\n\nclass Option10 extends IntegerObject {\n constructor(nsId, name) {\n super(nsId, name, 1, n => n === 0);\n }\n}\n\nexport {\n $acceptWhitespace,\n $addHTML,\n $appendChild,\n $childrenToHTML,\n $clean,\n $cleanPage,\n $cleanup,\n $clone,\n $consumed,\n $content,\n $data,\n $dump,\n $extra,\n $finalize,\n $flushHTML,\n $getAttributeIt,\n $getAttributes,\n $getAvailableSpace,\n $getChildren,\n $getChildrenByClass,\n $getChildrenByName,\n $getChildrenByNameIt,\n $getContainedChildren,\n $getDataValue,\n $getExtra,\n $getNextPage,\n $getParent,\n $getRealChildrenByNameIt,\n $getSubformParent,\n $getTemplateRoot,\n $globalData,\n $hasSettableValue,\n $ids,\n $indexOf,\n $insertAt,\n $isBindable,\n $isCDATAXml,\n $isDataValue,\n $isDescendent,\n $isNsAgnostic,\n $isSplittable,\n $isThereMoreWidth,\n $isTransparent,\n $isUsable,\n $namespaceId,\n $nodeName,\n $nsAttributes,\n $onChild,\n $onChildCheck,\n $onText,\n $popPara,\n $pushGlyphs,\n $pushPara,\n $removeChild,\n $resolvePrototypes,\n $root,\n $searchNode,\n $setId,\n $setSetAttributes,\n $setValue,\n $tabIndex,\n $text,\n $toHTML,\n $toPages,\n $toString,\n $toStyle,\n $uid,\n ContentObject,\n IntegerObject,\n Option01,\n Option10,\n OptionObject,\n StringObject,\n XFAAttribute,\n XFAObject,\n XFAObjectArray,\n XmlObject,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { shadow } from \"../../shared/util.js\";\n\nconst dimConverters = {\n pt: x => x,\n cm: x => (x / 2.54) * 72,\n mm: x => (x / (10 * 2.54)) * 72,\n in: x => x * 72,\n px: x => x,\n};\nconst measurementPattern = /([+-]?\\d+\\.?\\d*)(.*)/;\n\nfunction stripQuotes(str) {\n if (str.startsWith(\"'\") || str.startsWith('\"')) {\n return str.slice(1, str.length - 1);\n }\n return str;\n}\n\nfunction getInteger({ data, defaultValue, validate }) {\n if (!data) {\n return defaultValue;\n }\n data = data.trim();\n const n = parseInt(data, 10);\n if (!isNaN(n) && validate(n)) {\n return n;\n }\n return defaultValue;\n}\n\nfunction getFloat({ data, defaultValue, validate }) {\n if (!data) {\n return defaultValue;\n }\n data = data.trim();\n const n = parseFloat(data);\n if (!isNaN(n) && validate(n)) {\n return n;\n }\n return defaultValue;\n}\n\nfunction getKeyword({ data, defaultValue, validate }) {\n if (!data) {\n return defaultValue;\n }\n data = data.trim();\n if (validate(data)) {\n return data;\n }\n return defaultValue;\n}\n\nfunction getStringOption(data, options) {\n return getKeyword({\n data,\n defaultValue: options[0],\n validate: k => options.includes(k),\n });\n}\n\nfunction getMeasurement(str, def = \"0\") {\n def = def || \"0\";\n if (!str) {\n return getMeasurement(def);\n }\n const match = str.trim().match(measurementPattern);\n if (!match) {\n return getMeasurement(def);\n }\n const [, valueStr, unit] = match;\n const value = parseFloat(valueStr);\n if (isNaN(value)) {\n return getMeasurement(def);\n }\n\n if (value === 0) {\n return 0;\n }\n\n const conv = dimConverters[unit];\n if (conv) {\n return conv(value);\n }\n\n return value;\n}\n\nfunction getRatio(data) {\n if (!data) {\n return { num: 1, den: 1 };\n }\n const ratio = data\n .trim()\n .split(/\\s*:\\s*/)\n .map(x => parseFloat(x))\n .filter(x => !isNaN(x));\n if (ratio.length === 1) {\n ratio.push(1);\n }\n\n if (ratio.length === 0) {\n return { num: 1, den: 1 };\n }\n\n const [num, den] = ratio;\n return { num, den };\n}\n\nfunction getRelevant(data) {\n if (!data) {\n return [];\n }\n return data\n .trim()\n .split(/\\s+/)\n .map(e => {\n return {\n excluded: e[0] === \"-\",\n viewname: e.substring(1),\n };\n });\n}\n\nfunction getColor(data, def = [0, 0, 0]) {\n let [r, g, b] = def;\n if (!data) {\n return { r, g, b };\n }\n const color = data\n .trim()\n .split(/\\s*,\\s*/)\n .map(c => Math.min(Math.max(0, parseInt(c.trim(), 10)), 255))\n .map(c => (isNaN(c) ? 0 : c));\n\n if (color.length < 3) {\n return { r, g, b };\n }\n\n [r, g, b] = color;\n return { r, g, b };\n}\n\nfunction getBBox(data) {\n const def = -1;\n if (!data) {\n return { x: def, y: def, width: def, height: def };\n }\n const bbox = data\n .trim()\n .split(/\\s*,\\s*/)\n .map(m => getMeasurement(m, \"-1\"));\n if (bbox.length < 4 || bbox[2] < 0 || bbox[3] < 0) {\n return { x: def, y: def, width: def, height: def };\n }\n\n const [x, y, width, height] = bbox;\n return { x, y, width, height };\n}\n\nclass HTMLResult {\n static get FAILURE() {\n return shadow(this, \"FAILURE\", new HTMLResult(false, null, null, null));\n }\n\n static get EMPTY() {\n return shadow(this, \"EMPTY\", new HTMLResult(true, null, null, null));\n }\n\n constructor(success, html, bbox, breakNode) {\n this.success = success;\n this.html = html;\n this.bbox = bbox;\n this.breakNode = breakNode;\n }\n\n isBreak() {\n return !!this.breakNode;\n }\n\n static breakNode(node) {\n return new HTMLResult(false, null, null, node);\n }\n\n static success(html, bbox = null) {\n return new HTMLResult(true, html, bbox, null);\n }\n}\n\nexport {\n getBBox,\n getColor,\n getFloat,\n getInteger,\n getKeyword,\n getMeasurement,\n getRatio,\n getRelevant,\n getStringOption,\n HTMLResult,\n stripQuotes,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst $buildXFAObject = Symbol();\n\nconst NamespaceIds = {\n config: {\n id: 0,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xci/\"),\n },\n connectionSet: {\n id: 1,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-connection-set/\"),\n },\n datasets: {\n id: 2,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-data/\"),\n },\n form: {\n id: 3,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-form/\"),\n },\n localeSet: {\n id: 4,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-locale-set/\"),\n },\n pdf: {\n id: 5,\n check: ns => ns === \"http://ns.adobe.com/xdp/pdf/\",\n },\n signature: {\n id: 6,\n check: ns => ns === \"http://www.w3.org/2000/09/xmldsig#\",\n },\n sourceSet: {\n id: 7,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-source-set/\"),\n },\n stylesheet: {\n id: 8,\n check: ns => ns === \"http://www.w3.org/1999/XSL/Transform\",\n },\n template: {\n id: 9,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-template/\"),\n },\n xdc: {\n id: 10,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xdc/\"),\n },\n xdp: {\n id: 11,\n check: ns => ns === \"http://ns.adobe.com/xdp/\",\n },\n xfdf: {\n id: 12,\n check: ns => ns === \"http://ns.adobe.com/xfdf/\",\n },\n xhtml: {\n id: 13,\n check: ns => ns === \"http://www.w3.org/1999/xhtml\",\n },\n xmpmeta: {\n id: 14,\n check: ns => ns === \"http://ns.adobe.com/xmpmeta/\",\n },\n};\n\nexport { $buildXFAObject, NamespaceIds };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $appendChild,\n $getChildren,\n $getChildrenByClass,\n $getChildrenByName,\n $getParent,\n $namespaceId,\n XFAObject,\n XFAObjectArray,\n XmlObject,\n} from \"./xfa_object.js\";\nimport { NamespaceIds } from \"./namespaces.js\";\nimport { warn } from \"../../shared/util.js\";\n\nconst namePattern = /^[^.[]+/;\nconst indexPattern = /^[^\\]]+/;\nconst operators = {\n dot: 0,\n dotDot: 1,\n dotHash: 2,\n dotBracket: 3,\n dotParen: 4,\n};\n\nconst shortcuts = new Map([\n [\"$data\", (root, current) => (root.datasets ? root.datasets.data : root)],\n [\n \"$record\",\n (root, current) =>\n (root.datasets ? root.datasets.data : root)[$getChildren]()[0],\n ],\n [\"$template\", (root, current) => root.template],\n [\"$connectionSet\", (root, current) => root.connectionSet],\n [\"$form\", (root, current) => root.form],\n [\"$layout\", (root, current) => root.layout],\n [\"$host\", (root, current) => root.host],\n [\"$dataWindow\", (root, current) => root.dataWindow],\n [\"$event\", (root, current) => root.event],\n [\"!\", (root, current) => root.datasets],\n [\"$xfa\", (root, current) => root],\n [\"xfa\", (root, current) => root],\n [\"$\", (root, current) => current],\n]);\n\nconst somCache = new WeakMap();\nconst NS_DATASETS = NamespaceIds.datasets.id;\n\nfunction parseIndex(index) {\n index = index.trim();\n if (index === \"*\") {\n return Infinity;\n }\n return parseInt(index, 10) || 0;\n}\n\n// For now expressions containing .[...] or .(...) are not\n// evaluated so don't parse them.\n// TODO: implement that stuff and the remove the noExpr param.\nfunction parseExpression(expr, dotDotAllowed, noExpr = true) {\n let match = expr.match(namePattern);\n if (!match) {\n return null;\n }\n\n let [name] = match;\n const parsed = [\n {\n name,\n cacheName: \".\" + name,\n index: 0,\n js: null,\n formCalc: null,\n operator: operators.dot,\n },\n ];\n\n let pos = name.length;\n\n while (pos < expr.length) {\n const spos = pos;\n const char = expr.charAt(pos++);\n if (char === \"[\") {\n match = expr.slice(pos).match(indexPattern);\n if (!match) {\n warn(\"XFA - Invalid index in SOM expression\");\n return null;\n }\n parsed[parsed.length - 1].index = parseIndex(match[0]);\n pos += match[0].length + 1;\n continue;\n }\n\n let operator;\n switch (expr.charAt(pos)) {\n case \".\":\n if (!dotDotAllowed) {\n return null;\n }\n pos++;\n operator = operators.dotDot;\n break;\n case \"#\":\n pos++;\n operator = operators.dotHash;\n break;\n case \"[\":\n if (noExpr) {\n warn(\n \"XFA - SOM expression contains a FormCalc subexpression which is not supported for now.\"\n );\n return null;\n }\n // TODO: FormCalc expression so need to use the parser\n operator = operators.dotBracket;\n break;\n case \"(\":\n if (noExpr) {\n warn(\n \"XFA - SOM expression contains a JavaScript subexpression which is not supported for now.\"\n );\n return null;\n }\n // TODO:\n // JavaScript expression: should be a boolean operation with a path\n // so maybe we can have our own parser for that stuff or\n // maybe use the formcalc one.\n operator = operators.dotParen;\n break;\n default:\n operator = operators.dot;\n break;\n }\n\n match = expr.slice(pos).match(namePattern);\n if (!match) {\n break;\n }\n\n [name] = match;\n pos += name.length;\n parsed.push({\n name,\n cacheName: expr.slice(spos, pos),\n operator,\n index: 0,\n js: null,\n formCalc: null,\n });\n }\n return parsed;\n}\n\nfunction searchNode(\n root,\n container,\n expr,\n dotDotAllowed = true,\n useCache = true\n) {\n const parsed = parseExpression(expr, dotDotAllowed);\n if (!parsed) {\n return null;\n }\n\n const fn = shortcuts.get(parsed[0].name);\n let i = 0;\n let isQualified;\n if (fn) {\n isQualified = true;\n root = [fn(root, container)];\n i = 1;\n } else {\n isQualified = container === null;\n root = [container || root];\n }\n\n for (let ii = parsed.length; i < ii; i++) {\n const { name, cacheName, operator, index } = parsed[i];\n const nodes = [];\n for (const node of root) {\n if (!(node instanceof XFAObject)) {\n continue;\n }\n\n let children, cached;\n\n if (useCache) {\n cached = somCache.get(node);\n if (!cached) {\n cached = new Map();\n somCache.set(node, cached);\n }\n children = cached.get(cacheName);\n }\n\n if (!children) {\n switch (operator) {\n case operators.dot:\n children = node[$getChildrenByName](name, false);\n break;\n case operators.dotDot:\n children = node[$getChildrenByName](name, true);\n break;\n case operators.dotHash:\n children = node[$getChildrenByClass](name);\n if (children instanceof XFAObjectArray) {\n children = children.children;\n } else {\n children = [children];\n }\n break;\n default:\n break;\n }\n if (useCache) {\n cached.set(cacheName, children);\n }\n }\n\n if (children.length > 0) {\n nodes.push(children);\n }\n }\n\n if (nodes.length === 0 && !isQualified && i === 0) {\n // We've an unqualified expression and we didn't find anything\n // so look at container and siblings of container and so on.\n // http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.364.2157&rep=rep1&type=pdf#page=114\n const parent = container[$getParent]();\n container = parent;\n if (!container) {\n return null;\n }\n i = -1;\n root = [container];\n continue;\n }\n\n if (isFinite(index)) {\n root = nodes.filter(node => index < node.length).map(node => node[index]);\n } else {\n root = nodes.reduce((acc, node) => acc.concat(node), []);\n }\n }\n\n if (root.length === 0) {\n return null;\n }\n\n return root;\n}\n\nfunction createNodes(root, path) {\n let node = null;\n for (const { name, index } of path) {\n for (let i = 0, ii = !isFinite(index) ? 0 : index; i <= ii; i++) {\n const nsId = root[$namespaceId] === NS_DATASETS ? -1 : root[$namespaceId];\n node = new XmlObject(nsId, name);\n root[$appendChild](node);\n }\n\n root = node;\n }\n return node;\n}\n\nfunction createDataNode(root, container, expr) {\n const parsed = parseExpression(expr);\n if (!parsed) {\n return null;\n }\n\n if (parsed.some(x => x.operator === operators.dotDot)) {\n return null;\n }\n\n const fn = shortcuts.get(parsed[0].name);\n let i = 0;\n if (fn) {\n root = fn(root, container);\n i = 1;\n } else {\n root = container || root;\n }\n\n for (let ii = parsed.length; i < ii; i++) {\n const { name, operator, index } = parsed[i];\n if (!isFinite(index)) {\n parsed[i].index = 0;\n return createNodes(root, parsed.slice(i));\n }\n\n let children;\n switch (operator) {\n case operators.dot:\n children = root[$getChildrenByName](name, false);\n break;\n case operators.dotDot:\n children = root[$getChildrenByName](name, true);\n break;\n case operators.dotHash:\n children = root[$getChildrenByClass](name);\n if (children instanceof XFAObjectArray) {\n children = children.children;\n } else {\n children = [children];\n }\n break;\n default:\n break;\n }\n\n if (children.length === 0) {\n return createNodes(root, parsed.slice(i));\n }\n\n if (index < children.length) {\n const child = children[index];\n if (!(child instanceof XFAObject)) {\n warn(`XFA - Cannot create a node.`);\n return null;\n }\n root = child;\n } else {\n parsed[i].index = index - children.length;\n return createNodes(root, parsed.slice(i));\n }\n }\n return null;\n}\n\nexport { createDataNode, searchNode };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $appendChild,\n $clone,\n $consumed,\n $content,\n $data,\n $finalize,\n $getAttributeIt,\n $getChildren,\n $getDataValue,\n $getParent,\n $getRealChildrenByNameIt,\n $hasSettableValue,\n $indexOf,\n $insertAt,\n $isBindable,\n $isDataValue,\n $isDescendent,\n $namespaceId,\n $nodeName,\n $removeChild,\n $setValue,\n $text,\n XFAAttribute,\n XFAObjectArray,\n XmlObject,\n} from \"./xfa_object.js\";\nimport { BindItems, Field, Items, SetProperty, Text } from \"./template.js\";\nimport { createDataNode, searchNode } from \"./som.js\";\nimport { NamespaceIds } from \"./namespaces.js\";\nimport { warn } from \"../../shared/util.js\";\n\nconst NS_DATASETS = NamespaceIds.datasets.id;\n\nfunction createText(content) {\n const node = new Text({});\n node[$content] = content;\n return node;\n}\n\nclass Binder {\n constructor(root) {\n this.root = root;\n this.datasets = root.datasets;\n if (root.datasets && root.datasets.data) {\n this.data = root.datasets.data;\n } else {\n this.data = new XmlObject(NamespaceIds.datasets.id, \"data\");\n }\n this.emptyMerge = this.data[$getChildren]().length === 0;\n\n this.root.form = this.form = root.template[$clone]();\n }\n\n _isConsumeData() {\n return !this.emptyMerge && this._mergeMode;\n }\n\n _isMatchTemplate() {\n return !this._isConsumeData();\n }\n\n bind() {\n this._bindElement(this.form, this.data);\n return this.form;\n }\n\n getData() {\n return this.data;\n }\n\n _bindValue(formNode, data, picture) {\n // Nodes must have the same \"type\": container or value.\n // Here we make the link between form node and\n // data node (through $data property): we'll use it\n // to save form data.\n\n formNode[$data] = data;\n if (formNode[$hasSettableValue]()) {\n if (data[$isDataValue]()) {\n const value = data[$getDataValue]();\n // TODO: use picture.\n formNode[$setValue](createText(value));\n } else if (\n formNode instanceof Field &&\n formNode.ui &&\n formNode.ui.choiceList &&\n formNode.ui.choiceList.open === \"multiSelect\"\n ) {\n const value = data[$getChildren]()\n .map(child => child[$content].trim())\n .join(\"\\n\");\n formNode[$setValue](createText(value));\n } else if (this._isConsumeData()) {\n warn(`XFA - Nodes haven't the same type.`);\n }\n } else if (!data[$isDataValue]() || this._isMatchTemplate()) {\n this._bindElement(formNode, data);\n } else {\n warn(`XFA - Nodes haven't the same type.`);\n }\n }\n\n _findDataByNameToConsume(name, isValue, dataNode, global) {\n if (!name) {\n return null;\n }\n\n // Firstly, we try to find a node with the given name:\n // - in dataNode;\n // - if not found, then in parent;\n // - and if not in found, then in grand-parent.\n let generator, match;\n for (let i = 0; i < 3; i++) {\n generator = dataNode[$getRealChildrenByNameIt](\n name,\n /* allTransparent = */ false,\n /* skipConsumed = */ true\n );\n // Try to find a match of the same kind.\n while (true) {\n match = generator.next().value;\n if (!match) {\n break;\n }\n\n if (isValue === match[$isDataValue]()) {\n return match;\n }\n }\n if (\n dataNode[$namespaceId] === NamespaceIds.datasets.id &&\n dataNode[$nodeName] === \"data\"\n ) {\n break;\n }\n dataNode = dataNode[$getParent]();\n }\n\n if (!global) {\n return null;\n }\n\n // Secondly, if global try to find it just under the root of datasets\n // (which is the location of global variables).\n generator = this.data[$getRealChildrenByNameIt](\n name,\n /* allTransparent = */ true,\n /* skipConsumed = */ false\n );\n\n match = generator.next().value;\n if (match) {\n return match;\n }\n\n // Thirdly, try to find it in attributes.\n generator = this.data[$getAttributeIt](name, /* skipConsumed = */ true);\n match = generator.next().value;\n if (match && match[$isDataValue]()) {\n return match;\n }\n\n return null;\n }\n\n _setProperties(formNode, dataNode) {\n // For example:\n // \n // \n // \n // \n // \n\n if (!formNode.hasOwnProperty(\"setProperty\")) {\n return;\n }\n\n for (const { ref, target, connection } of formNode.setProperty.children) {\n if (connection) {\n // TODO: evaluate if we should implement this feature.\n // Skip for security reasons.\n continue;\n }\n if (!ref) {\n continue;\n }\n\n const nodes = searchNode(\n this.root,\n dataNode,\n ref,\n false /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (!nodes) {\n warn(`XFA - Invalid reference: ${ref}.`);\n continue;\n }\n const [node] = nodes;\n\n if (!node[$isDescendent](this.data)) {\n warn(`XFA - Invalid node: must be a data node.`);\n continue;\n }\n\n const targetNodes = searchNode(\n this.root,\n formNode,\n target,\n false /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (!targetNodes) {\n warn(`XFA - Invalid target: ${target}.`);\n continue;\n }\n const [targetNode] = targetNodes;\n\n if (!targetNode[$isDescendent](formNode)) {\n warn(`XFA - Invalid target: must be a property or subproperty.`);\n continue;\n }\n\n const targetParent = targetNode[$getParent]();\n if (\n targetNode instanceof SetProperty ||\n targetParent instanceof SetProperty\n ) {\n warn(\n `XFA - Invalid target: cannot be a setProperty or one of its properties.`\n );\n continue;\n }\n\n if (\n targetNode instanceof BindItems ||\n targetParent instanceof BindItems\n ) {\n warn(\n `XFA - Invalid target: cannot be a bindItems or one of its properties.`\n );\n continue;\n }\n\n const content = node[$text]();\n const name = targetNode[$nodeName];\n\n if (targetNode instanceof XFAAttribute) {\n const attrs = Object.create(null);\n attrs[name] = content;\n const obj = Reflect.construct(\n Object.getPrototypeOf(targetParent).constructor,\n [attrs]\n );\n targetParent[name] = obj[name];\n continue;\n }\n\n if (!targetNode.hasOwnProperty($content)) {\n warn(`XFA - Invalid node to use in setProperty`);\n continue;\n }\n\n targetNode[$data] = node;\n targetNode[$content] = content;\n targetNode[$finalize]();\n }\n }\n\n _bindItems(formNode, dataNode) {\n // For example:\n // \n // \n // \n // \n\n if (\n !formNode.hasOwnProperty(\"items\") ||\n !formNode.hasOwnProperty(\"bindItems\") ||\n formNode.bindItems.isEmpty()\n ) {\n return;\n }\n\n for (const item of formNode.items.children) {\n formNode[$removeChild](item);\n }\n\n formNode.items.clear();\n\n const labels = new Items({});\n const values = new Items({});\n\n formNode[$appendChild](labels);\n formNode.items.push(labels);\n\n formNode[$appendChild](values);\n formNode.items.push(values);\n\n for (const { ref, labelRef, valueRef, connection } of formNode.bindItems\n .children) {\n if (connection) {\n // TODO: evaluate if we should implement this feature.\n // Skip for security reasons.\n continue;\n }\n if (!ref) {\n continue;\n }\n\n const nodes = searchNode(\n this.root,\n dataNode,\n ref,\n false /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (!nodes) {\n warn(`XFA - Invalid reference: ${ref}.`);\n continue;\n }\n for (const node of nodes) {\n if (!node[$isDescendent](this.datasets)) {\n warn(`XFA - Invalid ref (${ref}): must be a datasets child.`);\n continue;\n }\n\n const labelNodes = searchNode(\n this.root,\n node,\n labelRef,\n true /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (!labelNodes) {\n warn(`XFA - Invalid label: ${labelRef}.`);\n continue;\n }\n const [labelNode] = labelNodes;\n\n if (!labelNode[$isDescendent](this.datasets)) {\n warn(`XFA - Invalid label: must be a datasets child.`);\n continue;\n }\n\n const valueNodes = searchNode(\n this.root,\n node,\n valueRef,\n true /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (!valueNodes) {\n warn(`XFA - Invalid value: ${valueRef}.`);\n continue;\n }\n const [valueNode] = valueNodes;\n\n if (!valueNode[$isDescendent](this.datasets)) {\n warn(`XFA - Invalid value: must be a datasets child.`);\n continue;\n }\n\n const label = createText(labelNode[$text]());\n const value = createText(valueNode[$text]());\n\n labels[$appendChild](label);\n labels.text.push(label);\n\n values[$appendChild](value);\n values.text.push(value);\n }\n }\n }\n\n _bindOccurrences(formNode, matches, picture) {\n // Insert nodes which are not in the template but reflect\n // what we've in data tree.\n\n let baseClone;\n if (matches.length > 1) {\n // Clone before binding to avoid bad state.\n baseClone = formNode[$clone]();\n baseClone[$removeChild](baseClone.occur);\n baseClone.occur = null;\n }\n\n this._bindValue(formNode, matches[0], picture);\n this._setProperties(formNode, matches[0]);\n this._bindItems(formNode, matches[0]);\n\n if (matches.length === 1) {\n return;\n }\n\n const parent = formNode[$getParent]();\n const name = formNode[$nodeName];\n const pos = parent[$indexOf](formNode);\n\n for (let i = 1, ii = matches.length; i < ii; i++) {\n const match = matches[i];\n const clone = baseClone[$clone]();\n parent[name].push(clone);\n parent[$insertAt](pos + i, clone);\n\n this._bindValue(clone, match, picture);\n this._setProperties(clone, match);\n this._bindItems(clone, match);\n }\n }\n\n _createOccurrences(formNode) {\n if (!this.emptyMerge) {\n return;\n }\n\n const { occur } = formNode;\n if (!occur || occur.initial <= 1) {\n return;\n }\n\n const parent = formNode[$getParent]();\n const name = formNode[$nodeName];\n\n if (!(parent[name] instanceof XFAObjectArray)) {\n return;\n }\n\n let currentNumber;\n if (formNode.name) {\n currentNumber = parent[name].children.filter(\n e => e.name === formNode.name\n ).length;\n } else {\n currentNumber = parent[name].children.length;\n }\n\n const pos = parent[$indexOf](formNode) + 1;\n const ii = occur.initial - currentNumber;\n if (ii) {\n const nodeClone = formNode[$clone]();\n nodeClone[$removeChild](nodeClone.occur);\n nodeClone.occur = null;\n parent[name].push(nodeClone);\n parent[$insertAt](pos, nodeClone);\n\n for (let i = 1; i < ii; i++) {\n const clone = nodeClone[$clone]();\n parent[name].push(clone);\n parent[$insertAt](pos + i, clone);\n }\n }\n }\n\n _getOccurInfo(formNode) {\n const { name, occur } = formNode;\n if (!occur || !name) {\n return [1, 1];\n }\n const max = occur.max === -1 ? Infinity : occur.max;\n return [occur.min, max];\n }\n\n _setAndBind(formNode, dataNode) {\n this._setProperties(formNode, dataNode);\n this._bindItems(formNode, dataNode);\n this._bindElement(formNode, dataNode);\n }\n\n _bindElement(formNode, dataNode) {\n // Some nodes can be useless because min=0 so remove them\n // after the loop to avoid bad things.\n\n const uselessNodes = [];\n\n this._createOccurrences(formNode);\n\n for (const child of formNode[$getChildren]()) {\n if (child[$data]) {\n // Already bound.\n continue;\n }\n\n if (this._mergeMode === undefined && child[$nodeName] === \"subform\") {\n this._mergeMode = child.mergeMode === \"consumeData\";\n\n // XFA specs p. 182:\n // The highest-level subform and the data node representing\n // the current record are special; they are always\n // bound even if their names don't match.\n const dataChildren = dataNode[$getChildren]();\n if (dataChildren.length > 0) {\n this._bindOccurrences(child, [dataChildren[0]], null);\n } else if (this.emptyMerge) {\n const nsId =\n dataNode[$namespaceId] === NS_DATASETS\n ? -1\n : dataNode[$namespaceId];\n const dataChild = (child[$data] = new XmlObject(\n nsId,\n child.name || \"root\"\n ));\n dataNode[$appendChild](dataChild);\n this._bindElement(child, dataChild);\n }\n continue;\n }\n\n if (!child[$isBindable]()) {\n // The node cannot contain some new data so there is nothing\n // to create in the data node.\n continue;\n }\n\n let global = false;\n let picture = null;\n let ref = null;\n let match = null;\n if (child.bind) {\n switch (child.bind.match) {\n case \"none\":\n this._setAndBind(child, dataNode);\n continue;\n case \"global\":\n global = true;\n break;\n case \"dataRef\":\n if (!child.bind.ref) {\n warn(`XFA - ref is empty in node ${child[$nodeName]}.`);\n this._setAndBind(child, dataNode);\n continue;\n }\n ref = child.bind.ref;\n break;\n default:\n break;\n }\n if (child.bind.picture) {\n picture = child.bind.picture[$content];\n }\n }\n\n const [min, max] = this._getOccurInfo(child);\n\n if (ref) {\n // Don't use a cache for searching: nodes can change during binding.\n match = searchNode(\n this.root,\n dataNode,\n ref,\n true /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (match === null) {\n // Nothing found: we must create some nodes in data in order\n // to have something to match with the given expression.\n // See http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.364.2157&rep=rep1&type=pdf#page=199\n match = createDataNode(this.data, dataNode, ref);\n if (!match) {\n // For example if the node contains a .(...) then it isn't\n // findable.\n // TODO: remove this when .(...) is implemented.\n continue;\n }\n if (this._isConsumeData()) {\n match[$consumed] = true;\n }\n\n // Don't bind the value in newly created node because it's empty.\n this._setAndBind(child, match);\n continue;\n } else {\n if (this._isConsumeData()) {\n // Filter out consumed nodes.\n match = match.filter(node => !node[$consumed]);\n }\n if (match.length > max) {\n match = match.slice(0, max);\n } else if (match.length === 0) {\n match = null;\n }\n if (match && this._isConsumeData()) {\n match.forEach(node => {\n node[$consumed] = true;\n });\n }\n }\n } else {\n if (!child.name) {\n this._setAndBind(child, dataNode);\n continue;\n }\n if (this._isConsumeData()) {\n // In consumeData mode, search for the next node with the given name.\n // occurs.max gives us the max number of node to match.\n const matches = [];\n while (matches.length < max) {\n const found = this._findDataByNameToConsume(\n child.name,\n child[$hasSettableValue](),\n dataNode,\n global\n );\n\n if (!found) {\n break;\n }\n found[$consumed] = true;\n matches.push(found);\n }\n match = matches.length > 0 ? matches : null;\n } else {\n // If we've an empty merge, there are no reason\n // to make multiple bind so skip consumed nodes.\n match = dataNode[$getRealChildrenByNameIt](\n child.name,\n /* allTransparent = */ false,\n /* skipConsumed = */ this.emptyMerge\n ).next().value;\n if (!match) {\n // If there is no match (no data) and `min === 0` then\n // the container is entirely excluded.\n // https://www.pdfa.org/norm-refs/XFA-3_3.pdf#G12.1428332\n if (min === 0) {\n uselessNodes.push(child);\n continue;\n }\n // We're in matchTemplate mode so create a node in data to reflect\n // what we've in template.\n const nsId =\n dataNode[$namespaceId] === NS_DATASETS\n ? -1\n : dataNode[$namespaceId];\n match = child[$data] = new XmlObject(nsId, child.name);\n if (this.emptyMerge) {\n match[$consumed] = true;\n }\n dataNode[$appendChild](match);\n\n // Don't bind the value in newly created node because it's empty.\n this._setAndBind(child, match);\n continue;\n }\n if (this.emptyMerge) {\n match[$consumed] = true;\n }\n match = [match];\n }\n }\n\n if (match) {\n this._bindOccurrences(child, match, picture);\n } else if (min > 0) {\n this._setAndBind(child, dataNode);\n } else {\n uselessNodes.push(child);\n }\n }\n\n uselessNodes.forEach(node => node[$getParent]()[$removeChild](node));\n }\n}\n\nexport { Binder };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $acceptWhitespace,\n $addHTML,\n $appendChild,\n $childrenToHTML,\n $clean,\n $cleanPage,\n $content,\n $data,\n $extra,\n $finalize,\n $flushHTML,\n $getAvailableSpace,\n $getChildren,\n $getContainedChildren,\n $getExtra,\n $getNextPage,\n $getParent,\n $getSubformParent,\n $getTemplateRoot,\n $globalData,\n $hasSettableValue,\n $ids,\n $isBindable,\n $isCDATAXml,\n $isSplittable,\n $isThereMoreWidth,\n $isTransparent,\n $isUsable,\n $namespaceId,\n $nodeName,\n $onChild,\n $onText,\n $popPara,\n $pushPara,\n $removeChild,\n $searchNode,\n $setSetAttributes,\n $setValue,\n $tabIndex,\n $text,\n $toHTML,\n $toPages,\n $toStyle,\n $uid,\n ContentObject,\n Option01,\n OptionObject,\n StringObject,\n XFAObject,\n XFAObjectArray,\n} from \"./xfa_object.js\";\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n addHTML,\n checkDimensions,\n flushHTML,\n getAvailableSpace,\n} from \"./layout.js\";\nimport {\n computeBbox,\n createWrapper,\n fixDimensions,\n fixTextIndent,\n fixURL,\n isPrintOnly,\n layoutClass,\n layoutNode,\n measureToString,\n setAccess,\n setFontFamily,\n setMinMaxDimensions,\n setPara,\n toStyle,\n} from \"./html_utils.js\";\nimport {\n getBBox,\n getColor,\n getFloat,\n getInteger,\n getKeyword,\n getMeasurement,\n getRatio,\n getRelevant,\n getStringOption,\n HTMLResult,\n} from \"./utils.js\";\nimport { stringToBytes, Util, warn } from \"../../shared/util.js\";\nimport { getMetrics } from \"./fonts.js\";\nimport { recoverJsURL } from \"../core_utils.js\";\nimport { searchNode } from \"./som.js\";\n\nconst TEMPLATE_NS_ID = NamespaceIds.template.id;\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\n\n// In case of lr-tb (and rl-tb) layouts, we try:\n// - to put the container at the end of a line\n// - and if it fails we try on the next line.\n// If both tries failed then it's up to the parent\n// to handle the situation.\nconst MAX_ATTEMPTS_FOR_LRTB_LAYOUT = 2;\n\n// It's possible to have a bug in the layout and so as\n// a consequence we could loop for ever in Template::toHTML()\n// so in order to avoid that (and avoid a OOM crash) we break\n// the loop after having MAX_EMPTY_PAGES empty pages.\nconst MAX_EMPTY_PAGES = 3;\n\n// Default value to start with for the tabIndex property.\nconst DEFAULT_TAB_INDEX = 5000;\n\nconst HEADING_PATTERN = /^H(\\d+)$/;\n\n// Allowed mime types for images\nconst MIMES = new Set([\n \"image/gif\",\n \"image/jpeg\",\n \"image/jpg\",\n \"image/pjpeg\",\n \"image/png\",\n \"image/apng\",\n \"image/x-png\",\n \"image/bmp\",\n \"image/x-ms-bmp\",\n \"image/tiff\",\n \"image/tif\",\n \"application/octet-stream\",\n]);\n\nconst IMAGES_HEADERS = [\n [[0x42, 0x4d], \"image/bmp\"],\n [[0xff, 0xd8, 0xff], \"image/jpeg\"],\n [[0x49, 0x49, 0x2a, 0x00], \"image/tiff\"],\n [[0x4d, 0x4d, 0x00, 0x2a], \"image/tiff\"],\n [[0x47, 0x49, 0x46, 0x38, 0x39, 0x61], \"image/gif\"],\n [[0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a], \"image/png\"],\n];\n\nfunction getBorderDims(node) {\n if (!node || !node.border) {\n return { w: 0, h: 0 };\n }\n\n const borderExtra = node.border[$getExtra]();\n if (!borderExtra) {\n return { w: 0, h: 0 };\n }\n\n return {\n w:\n borderExtra.widths[0] +\n borderExtra.widths[2] +\n borderExtra.insets[0] +\n borderExtra.insets[2],\n h:\n borderExtra.widths[1] +\n borderExtra.widths[3] +\n borderExtra.insets[1] +\n borderExtra.insets[3],\n };\n}\n\nfunction hasMargin(node) {\n return (\n node.margin &&\n (node.margin.topInset ||\n node.margin.rightInset ||\n node.margin.bottomInset ||\n node.margin.leftInset)\n );\n}\n\nfunction _setValue(templateNode, value) {\n if (!templateNode.value) {\n const nodeValue = new Value({});\n templateNode[$appendChild](nodeValue);\n templateNode.value = nodeValue;\n }\n templateNode.value[$setValue](value);\n}\n\nfunction* getContainedChildren(node) {\n for (const child of node[$getChildren]()) {\n if (child instanceof SubformSet) {\n yield* child[$getContainedChildren]();\n continue;\n }\n yield child;\n }\n}\n\nfunction setTabIndex(node) {\n while (node) {\n if (!node.traversal) {\n node[$tabIndex] = node[$getParent]()[$tabIndex];\n return;\n }\n\n if (node[$tabIndex]) {\n return;\n }\n\n let next = null;\n for (const child of node.traversal[$getChildren]()) {\n if (child.operation === \"next\") {\n next = child;\n break;\n }\n }\n\n if (!next || !next.ref) {\n node[$tabIndex] = node[$getParent]()[$tabIndex];\n return;\n }\n\n const root = node[$getTemplateRoot]();\n node[$tabIndex] = ++root[$tabIndex];\n\n const ref = root[$searchNode](next.ref, node);\n if (!ref) {\n return;\n }\n\n node = ref[0];\n }\n}\n\nfunction applyAssist(obj, attributes) {\n const assist = obj.assist;\n if (assist) {\n const assistTitle = assist[$toHTML]();\n if (assistTitle) {\n attributes.title = assistTitle;\n }\n const role = assist.role;\n const match = role.match(HEADING_PATTERN);\n if (match) {\n const ariaRole = \"heading\";\n const ariaLevel = match[1];\n attributes.role = ariaRole;\n attributes[\"aria-level\"] = ariaLevel;\n }\n }\n // XXX: We could end up in a situation where the obj has a heading role and\n // is also a table. For now prioritize the table role.\n if (obj.layout === \"table\") {\n attributes.role = \"table\";\n } else if (obj.layout === \"row\") {\n attributes.role = \"row\";\n } else {\n const parent = obj[$getParent]();\n if (parent.layout === \"row\") {\n if (parent.assist && parent.assist.role === \"TH\") {\n attributes.role = \"columnheader\";\n } else {\n attributes.role = \"cell\";\n }\n }\n }\n}\n\nfunction ariaLabel(obj) {\n if (!obj.assist) {\n return null;\n }\n const assist = obj.assist;\n if (assist.speak && assist.speak[$content] !== \"\") {\n return assist.speak[$content];\n }\n if (assist.toolTip) {\n return assist.toolTip[$content];\n }\n // TODO: support finding the related caption element. See xfa_bug1718037.pdf\n // for an example.\n return null;\n}\n\nfunction valueToHtml(value) {\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n class: [\"xfaRich\"],\n style: Object.create(null),\n },\n children: [\n {\n name: \"span\",\n attributes: {\n style: Object.create(null),\n },\n value,\n },\n ],\n });\n}\n\nfunction setFirstUnsplittable(node) {\n const root = node[$getTemplateRoot]();\n if (root[$extra].firstUnsplittable === null) {\n root[$extra].firstUnsplittable = node;\n root[$extra].noLayoutFailure = true;\n }\n}\n\nfunction unsetFirstUnsplittable(node) {\n const root = node[$getTemplateRoot]();\n if (root[$extra].firstUnsplittable === node) {\n root[$extra].noLayoutFailure = false;\n }\n}\n\nfunction handleBreak(node) {\n if (node[$extra]) {\n return false;\n }\n\n node[$extra] = Object.create(null);\n\n if (node.targetType === \"auto\") {\n return false;\n }\n\n const root = node[$getTemplateRoot]();\n let target = null;\n if (node.target) {\n target = root[$searchNode](node.target, node[$getParent]());\n if (!target) {\n return false;\n }\n target = target[0];\n }\n\n const { currentPageArea, currentContentArea } = root[$extra];\n\n if (node.targetType === \"pageArea\") {\n if (!(target instanceof PageArea)) {\n target = null;\n }\n\n if (node.startNew) {\n node[$extra].target = target || currentPageArea;\n return true;\n } else if (target && target !== currentPageArea) {\n node[$extra].target = target;\n return true;\n }\n\n return false;\n }\n\n if (!(target instanceof ContentArea)) {\n target = null;\n }\n\n const pageArea = target && target[$getParent]();\n\n let index;\n let nextPageArea = pageArea;\n if (node.startNew) {\n // startNew === 1 so we must create a new container (pageArea or\n // contentArea).\n if (target) {\n const contentAreas = pageArea.contentArea.children;\n const indexForCurrent = contentAreas.indexOf(currentContentArea);\n const indexForTarget = contentAreas.indexOf(target);\n if (indexForCurrent !== -1 && indexForCurrent < indexForTarget) {\n // The next container is after the current container so\n // we can stay on the same page.\n nextPageArea = null;\n }\n index = indexForTarget - 1;\n } else {\n index = currentPageArea.contentArea.children.indexOf(currentContentArea);\n }\n } else if (target && target !== currentContentArea) {\n const contentAreas = pageArea.contentArea.children;\n index = contentAreas.indexOf(target) - 1;\n nextPageArea = pageArea === currentPageArea ? null : pageArea;\n } else {\n return false;\n }\n\n node[$extra].target = nextPageArea;\n node[$extra].index = index;\n return true;\n}\n\nfunction handleOverflow(node, extraNode, space) {\n const root = node[$getTemplateRoot]();\n const saved = root[$extra].noLayoutFailure;\n const savedMethod = extraNode[$getSubformParent];\n\n // Replace $getSubformParent to emulate that extraNode is just\n // under node.\n extraNode[$getSubformParent] = () => node;\n\n root[$extra].noLayoutFailure = true;\n const res = extraNode[$toHTML](space);\n node[$addHTML](res.html, res.bbox);\n root[$extra].noLayoutFailure = saved;\n extraNode[$getSubformParent] = savedMethod;\n}\n\nclass AppearanceFilter extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"appearanceFilter\");\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Arc extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"arc\", /* hasChildren = */ true);\n this.circular = getInteger({\n data: attributes.circular,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.hand = getStringOption(attributes.hand, [\"even\", \"left\", \"right\"]);\n this.id = attributes.id || \"\";\n this.startAngle = getFloat({\n data: attributes.startAngle,\n defaultValue: 0,\n validate: x => true,\n });\n this.sweepAngle = getFloat({\n data: attributes.sweepAngle,\n defaultValue: 360,\n validate: x => true,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.edge = null;\n this.fill = null;\n }\n\n [$toHTML]() {\n const edge = this.edge ? this.edge : new Edge({});\n const edgeStyle = edge[$toStyle]();\n const style = Object.create(null);\n if (this.fill && this.fill.presence === \"visible\") {\n Object.assign(style, this.fill[$toStyle]());\n } else {\n style.fill = \"transparent\";\n }\n style.strokeWidth = measureToString(\n edge.presence === \"visible\" ? edge.thickness : 0\n );\n style.stroke = edgeStyle.color;\n let arc;\n const attributes = {\n xmlns: SVG_NS,\n style: {\n width: \"100%\",\n height: \"100%\",\n overflow: \"visible\",\n },\n };\n\n if (this.sweepAngle === 360) {\n arc = {\n name: \"ellipse\",\n attributes: {\n xmlns: SVG_NS,\n cx: \"50%\",\n cy: \"50%\",\n rx: \"50%\",\n ry: \"50%\",\n style,\n },\n };\n } else {\n const startAngle = (this.startAngle * Math.PI) / 180;\n const sweepAngle = (this.sweepAngle * Math.PI) / 180;\n const largeArc = this.sweepAngle > 180 ? 1 : 0;\n const [x1, y1, x2, y2] = [\n 50 * (1 + Math.cos(startAngle)),\n 50 * (1 - Math.sin(startAngle)),\n 50 * (1 + Math.cos(startAngle + sweepAngle)),\n 50 * (1 - Math.sin(startAngle + sweepAngle)),\n ];\n\n arc = {\n name: \"path\",\n attributes: {\n xmlns: SVG_NS,\n d: `M ${x1} ${y1} A 50 50 0 ${largeArc} 0 ${x2} ${y2}`,\n vectorEffect: \"non-scaling-stroke\",\n style,\n },\n };\n\n Object.assign(attributes, {\n viewBox: \"0 0 100 100\",\n preserveAspectRatio: \"none\",\n });\n }\n\n const svg = {\n name: \"svg\",\n children: [arc],\n attributes,\n };\n\n const parent = this[$getParent]()[$getParent]();\n if (hasMargin(parent)) {\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n style: {\n display: \"inline\",\n width: \"100%\",\n height: \"100%\",\n },\n },\n children: [svg],\n });\n }\n\n svg.attributes.style.position = \"absolute\";\n return HTMLResult.success(svg);\n }\n}\n\nclass Area extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"area\", /* hasChildren = */ true);\n this.colSpan = getInteger({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: n => n >= 1 || n === -1,\n });\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.desc = null;\n this.extras = null;\n this.area = new XFAObjectArray();\n this.draw = new XFAObjectArray();\n this.exObject = new XFAObjectArray();\n this.exclGroup = new XFAObjectArray();\n this.field = new XFAObjectArray();\n this.subform = new XFAObjectArray();\n this.subformSet = new XFAObjectArray();\n }\n\n *[$getContainedChildren]() {\n // This function is overriden in order to fake that subforms under\n // this set are in fact under parent subform.\n yield* getContainedChildren(this);\n }\n\n [$isTransparent]() {\n return true;\n }\n\n [$isBindable]() {\n return true;\n }\n\n [$addHTML](html, bbox) {\n const [x, y, w, h] = bbox;\n this[$extra].width = Math.max(this[$extra].width, x + w);\n this[$extra].height = Math.max(this[$extra].height, y + h);\n\n this[$extra].children.push(html);\n }\n\n [$getAvailableSpace]() {\n return this[$extra].availableSpace;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n const style = toStyle(this, \"position\");\n const attributes = {\n style,\n id: this[$uid],\n class: [\"xfaArea\"],\n };\n\n if (isPrintOnly(this)) {\n attributes.class.push(\"xfaPrintOnly\");\n }\n\n if (this.name) {\n attributes.xfaName = this.name;\n }\n\n const children = [];\n this[$extra] = {\n children,\n width: 0,\n height: 0,\n availableSpace,\n };\n\n const result = this[$childrenToHTML]({\n filter: new Set([\n \"area\",\n \"draw\",\n \"field\",\n \"exclGroup\",\n \"subform\",\n \"subformSet\",\n ]),\n include: true,\n });\n\n if (!result.success) {\n if (result.isBreak()) {\n return result;\n }\n // Nothing to propose for the element which doesn't fit the\n // available space.\n delete this[$extra];\n return HTMLResult.FAILURE;\n }\n\n style.width = measureToString(this[$extra].width);\n style.height = measureToString(this[$extra].height);\n\n const html = {\n name: \"div\",\n attributes,\n children,\n };\n\n const bbox = [this.x, this.y, this[$extra].width, this[$extra].height];\n delete this[$extra];\n\n return HTMLResult.success(html, bbox);\n }\n}\n\nclass Assist extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"assist\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.role = attributes.role || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.speak = null;\n this.toolTip = null;\n }\n\n [$toHTML]() {\n return this.toolTip && this.toolTip[$content]\n ? this.toolTip[$content]\n : null;\n }\n}\n\nclass Barcode extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"barcode\", /* hasChildren = */ true);\n this.charEncoding = getKeyword({\n data: attributes.charEncoding\n ? attributes.charEncoding.toLowerCase()\n : \"\",\n defaultValue: \"\",\n validate: k =>\n [\n \"utf-8\",\n \"big-five\",\n \"fontspecific\",\n \"gbk\",\n \"gb-18030\",\n \"gb-2312\",\n \"ksc-5601\",\n \"none\",\n \"shift-jis\",\n \"ucs-2\",\n \"utf-16\",\n ].includes(k) || k.match(/iso-8859-\\d{2}/),\n });\n this.checksum = getStringOption(attributes.checksum, [\n \"none\",\n \"1mod10\",\n \"1mod10_1mod11\",\n \"2mod10\",\n \"auto\",\n ]);\n this.dataColumnCount = getInteger({\n data: attributes.dataColumnCount,\n defaultValue: -1,\n validate: x => x >= 0,\n });\n this.dataLength = getInteger({\n data: attributes.dataLength,\n defaultValue: -1,\n validate: x => x >= 0,\n });\n this.dataPrep = getStringOption(attributes.dataPrep, [\n \"none\",\n \"flateCompress\",\n ]);\n this.dataRowCount = getInteger({\n data: attributes.dataRowCount,\n defaultValue: -1,\n validate: x => x >= 0,\n });\n this.endChar = attributes.endChar || \"\";\n this.errorCorrectionLevel = getInteger({\n data: attributes.errorCorrectionLevel,\n defaultValue: -1,\n validate: x => x >= 0 && x <= 8,\n });\n this.id = attributes.id || \"\";\n this.moduleHeight = getMeasurement(attributes.moduleHeight, \"5mm\");\n this.moduleWidth = getMeasurement(attributes.moduleWidth, \"0.25mm\");\n this.printCheckDigit = getInteger({\n data: attributes.printCheckDigit,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.rowColumnRatio = getRatio(attributes.rowColumnRatio);\n this.startChar = attributes.startChar || \"\";\n this.textLocation = getStringOption(attributes.textLocation, [\n \"below\",\n \"above\",\n \"aboveEmbedded\",\n \"belowEmbedded\",\n \"none\",\n ]);\n this.truncate = getInteger({\n data: attributes.truncate,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.type = getStringOption(\n attributes.type ? attributes.type.toLowerCase() : \"\",\n [\n \"aztec\",\n \"codabar\",\n \"code2of5industrial\",\n \"code2of5interleaved\",\n \"code2of5matrix\",\n \"code2of5standard\",\n \"code3of9\",\n \"code3of9extended\",\n \"code11\",\n \"code49\",\n \"code93\",\n \"code128\",\n \"code128a\",\n \"code128b\",\n \"code128c\",\n \"code128sscc\",\n \"datamatrix\",\n \"ean8\",\n \"ean8add2\",\n \"ean8add5\",\n \"ean13\",\n \"ean13add2\",\n \"ean13add5\",\n \"ean13pwcd\",\n \"fim\",\n \"logmars\",\n \"maxicode\",\n \"msi\",\n \"pdf417\",\n \"pdf417macro\",\n \"plessey\",\n \"postauscust2\",\n \"postauscust3\",\n \"postausreplypaid\",\n \"postausstandard\",\n \"postukrm4scc\",\n \"postusdpbc\",\n \"postusimb\",\n \"postusstandard\",\n \"postus5zip\",\n \"qrcode\",\n \"rfid\",\n \"rss14\",\n \"rss14expanded\",\n \"rss14limited\",\n \"rss14stacked\",\n \"rss14stackedomni\",\n \"rss14truncated\",\n \"telepen\",\n \"ucc128\",\n \"ucc128random\",\n \"ucc128sscc\",\n \"upca\",\n \"upcaadd2\",\n \"upcaadd5\",\n \"upcapwcd\",\n \"upce\",\n \"upceadd2\",\n \"upceadd5\",\n \"upcean2\",\n \"upcean5\",\n \"upsmaxicode\",\n ]\n );\n this.upsMode = getStringOption(attributes.upsMode, [\n \"usCarrier\",\n \"internationalCarrier\",\n \"secureSymbol\",\n \"standardSymbol\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.wideNarrowRatio = getRatio(attributes.wideNarrowRatio);\n this.encrypt = null;\n this.extras = null;\n }\n}\n\nclass Bind extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"bind\", /* hasChildren = */ true);\n this.match = getStringOption(attributes.match, [\n \"once\",\n \"dataRef\",\n \"global\",\n \"none\",\n ]);\n this.ref = attributes.ref || \"\";\n this.picture = null;\n }\n}\n\nclass BindItems extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"bindItems\");\n this.connection = attributes.connection || \"\";\n this.labelRef = attributes.labelRef || \"\";\n this.ref = attributes.ref || \"\";\n this.valueRef = attributes.valueRef || \"\";\n }\n}\n\nclass Bookend extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"bookend\");\n this.id = attributes.id || \"\";\n this.leader = attributes.leader || \"\";\n this.trailer = attributes.trailer || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass BooleanElement extends Option01 {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"boolean\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(this[$content] === 1 ? \"1\" : \"0\");\n }\n}\n\nclass Border extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"border\", /* hasChildren = */ true);\n this.break = getStringOption(attributes.break, [\"close\", \"open\"]);\n this.hand = getStringOption(attributes.hand, [\"even\", \"left\", \"right\"]);\n this.id = attributes.id || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.corner = new XFAObjectArray(4);\n this.edge = new XFAObjectArray(4);\n this.extras = null;\n this.fill = null;\n this.margin = null;\n }\n\n [$getExtra]() {\n if (!this[$extra]) {\n const edges = this.edge.children.slice();\n if (edges.length < 4) {\n const defaultEdge = edges[edges.length - 1] || new Edge({});\n for (let i = edges.length; i < 4; i++) {\n edges.push(defaultEdge);\n }\n }\n\n const widths = edges.map(edge => edge.thickness);\n const insets = [0, 0, 0, 0];\n if (this.margin) {\n insets[0] = this.margin.topInset;\n insets[1] = this.margin.rightInset;\n insets[2] = this.margin.bottomInset;\n insets[3] = this.margin.leftInset;\n }\n this[$extra] = { widths, insets, edges };\n }\n return this[$extra];\n }\n\n [$toStyle]() {\n // TODO: incomplete (hand).\n const { edges } = this[$getExtra]();\n const edgeStyles = edges.map(node => {\n const style = node[$toStyle]();\n style.color = style.color || \"#000000\";\n return style;\n });\n\n const style = Object.create(null);\n if (this.margin) {\n Object.assign(style, this.margin[$toStyle]());\n }\n\n if (this.fill && this.fill.presence === \"visible\") {\n Object.assign(style, this.fill[$toStyle]());\n }\n\n if (this.corner.children.some(node => node.radius !== 0)) {\n const cornerStyles = this.corner.children.map(node => node[$toStyle]());\n if (cornerStyles.length === 2 || cornerStyles.length === 3) {\n const last = cornerStyles[cornerStyles.length - 1];\n for (let i = cornerStyles.length; i < 4; i++) {\n cornerStyles.push(last);\n }\n }\n\n style.borderRadius = cornerStyles.map(s => s.radius).join(\" \");\n }\n\n switch (this.presence) {\n case \"invisible\":\n case \"hidden\":\n style.borderStyle = \"\";\n break;\n case \"inactive\":\n style.borderStyle = \"none\";\n break;\n default:\n style.borderStyle = edgeStyles.map(s => s.style).join(\" \");\n break;\n }\n\n style.borderWidth = edgeStyles.map(s => s.width).join(\" \");\n style.borderColor = edgeStyles.map(s => s.color).join(\" \");\n\n return style;\n }\n}\n\nclass Break extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"break\", /* hasChildren = */ true);\n this.after = getStringOption(attributes.after, [\n \"auto\",\n \"contentArea\",\n \"pageArea\",\n \"pageEven\",\n \"pageOdd\",\n ]);\n this.afterTarget = attributes.afterTarget || \"\";\n this.before = getStringOption(attributes.before, [\n \"auto\",\n \"contentArea\",\n \"pageArea\",\n \"pageEven\",\n \"pageOdd\",\n ]);\n this.beforeTarget = attributes.beforeTarget || \"\";\n this.bookendLeader = attributes.bookendLeader || \"\";\n this.bookendTrailer = attributes.bookendTrailer || \"\";\n this.id = attributes.id || \"\";\n this.overflowLeader = attributes.overflowLeader || \"\";\n this.overflowTarget = attributes.overflowTarget || \"\";\n this.overflowTrailer = attributes.overflowTrailer || \"\";\n this.startNew = getInteger({\n data: attributes.startNew,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n}\n\nclass BreakAfter extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"breakAfter\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.leader = attributes.leader || \"\";\n this.startNew = getInteger({\n data: attributes.startNew,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.target = attributes.target || \"\";\n this.targetType = getStringOption(attributes.targetType, [\n \"auto\",\n \"contentArea\",\n \"pageArea\",\n ]);\n this.trailer = attributes.trailer || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.script = null;\n }\n}\n\nclass BreakBefore extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"breakBefore\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.leader = attributes.leader || \"\";\n this.startNew = getInteger({\n data: attributes.startNew,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.target = attributes.target || \"\";\n this.targetType = getStringOption(attributes.targetType, [\n \"auto\",\n \"contentArea\",\n \"pageArea\",\n ]);\n this.trailer = attributes.trailer || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.script = null;\n }\n\n [$toHTML](availableSpace) {\n this[$extra] = {};\n return HTMLResult.FAILURE;\n }\n}\n\nclass Button extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"button\", /* hasChildren = */ true);\n this.highlight = getStringOption(attributes.highlight, [\n \"inverted\",\n \"none\",\n \"outline\",\n \"push\",\n ]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: highlight.\n\n const parent = this[$getParent]();\n const grandpa = parent[$getParent]();\n const htmlButton = {\n name: \"button\",\n attributes: {\n id: this[$uid],\n class: [\"xfaButton\"],\n style: {},\n },\n children: [],\n };\n\n for (const event of grandpa.event.children) {\n // if (true) break;\n if (event.activity !== \"click\" || !event.script) {\n continue;\n }\n const jsURL = recoverJsURL(event.script[$content]);\n if (!jsURL) {\n continue;\n }\n const href = fixURL(jsURL.url);\n if (!href) {\n continue;\n }\n\n // we've an url so generate a \n htmlButton.children.push({\n name: \"a\",\n attributes: {\n id: \"link\" + this[$uid],\n href,\n newWindow: jsURL.newWindow,\n class: [\"xfaLink\"],\n style: {},\n },\n children: [],\n });\n }\n\n return HTMLResult.success(htmlButton);\n }\n}\n\nclass Calculate extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"calculate\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.override = getStringOption(attributes.override, [\n \"disabled\",\n \"error\",\n \"ignore\",\n \"warning\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.message = null;\n this.script = null;\n }\n}\n\nclass Caption extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"caption\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.placement = getStringOption(attributes.placement, [\n \"left\",\n \"bottom\",\n \"inline\",\n \"right\",\n \"top\",\n ]);\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.reserve = Math.ceil(getMeasurement(attributes.reserve));\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.font = null;\n this.margin = null;\n this.para = null;\n this.value = null;\n }\n\n [$setValue](value) {\n _setValue(this, value);\n }\n\n [$getExtra](availableSpace) {\n if (!this[$extra]) {\n let { width, height } = availableSpace;\n switch (this.placement) {\n case \"left\":\n case \"right\":\n case \"inline\":\n width = this.reserve <= 0 ? width : this.reserve;\n break;\n case \"top\":\n case \"bottom\":\n height = this.reserve <= 0 ? height : this.reserve;\n break;\n }\n\n this[$extra] = layoutNode(this, { width, height });\n }\n return this[$extra];\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n if (!this.value) {\n return HTMLResult.EMPTY;\n }\n\n this[$pushPara]();\n const value = this.value[$toHTML](availableSpace).html;\n\n if (!value) {\n this[$popPara]();\n return HTMLResult.EMPTY;\n }\n\n const savedReserve = this.reserve;\n if (this.reserve <= 0) {\n const { w, h } = this[$getExtra](availableSpace);\n switch (this.placement) {\n case \"left\":\n case \"right\":\n case \"inline\":\n this.reserve = w;\n break;\n case \"top\":\n case \"bottom\":\n this.reserve = h;\n break;\n }\n }\n\n const children = [];\n if (typeof value === \"string\") {\n children.push({\n name: \"#text\",\n value,\n });\n } else {\n children.push(value);\n }\n\n const style = toStyle(this, \"font\", \"margin\", \"visibility\");\n switch (this.placement) {\n case \"left\":\n case \"right\":\n if (this.reserve > 0) {\n style.width = measureToString(this.reserve);\n }\n break;\n case \"top\":\n case \"bottom\":\n if (this.reserve > 0) {\n style.height = measureToString(this.reserve);\n }\n break;\n }\n\n setPara(this, null, value);\n this[$popPara]();\n\n this.reserve = savedReserve;\n\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n style,\n class: [\"xfaCaption\"],\n },\n children,\n });\n }\n}\n\nclass Certificate extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"certificate\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Certificates extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"certificates\", /* hasChildren = */ true);\n this.credentialServerPolicy = getStringOption(\n attributes.credentialServerPolicy,\n [\"optional\", \"required\"]\n );\n this.id = attributes.id || \"\";\n this.url = attributes.url || \"\";\n this.urlPolicy = attributes.urlPolicy || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.encryption = null;\n this.issuers = null;\n this.keyUsage = null;\n this.oids = null;\n this.signing = null;\n this.subjectDNs = null;\n }\n}\n\nclass CheckButton extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"checkButton\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.mark = getStringOption(attributes.mark, [\n \"default\",\n \"check\",\n \"circle\",\n \"cross\",\n \"diamond\",\n \"square\",\n \"star\",\n ]);\n this.shape = getStringOption(attributes.shape, [\"square\", \"round\"]);\n this.size = getMeasurement(attributes.size, \"10pt\");\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: border, shape and mark.\n\n const style = toStyle(\"margin\");\n const size = measureToString(this.size);\n\n style.width = style.height = size;\n\n let type;\n let className;\n let groupId;\n const field = this[$getParent]()[$getParent]();\n const items =\n (field.items.children.length &&\n field.items.children[0][$toHTML]().html) ||\n [];\n const exportedValue = {\n on: (items[0] !== undefined ? items[0] : \"on\").toString(),\n off: (items[1] !== undefined ? items[1] : \"off\").toString(),\n };\n\n const value = (field.value && field.value[$text]()) || \"off\";\n const checked = value === exportedValue.on || undefined;\n const container = field[$getSubformParent]();\n const fieldId = field[$uid];\n let dataId;\n\n if (container instanceof ExclGroup) {\n groupId = container[$uid];\n type = \"radio\";\n className = \"xfaRadio\";\n dataId = (container[$data] && container[$data][$uid]) || container[$uid];\n } else {\n type = \"checkbox\";\n className = \"xfaCheckbox\";\n dataId = (field[$data] && field[$data][$uid]) || field[$uid];\n }\n\n const input = {\n name: \"input\",\n attributes: {\n class: [className],\n style,\n fieldId,\n dataId,\n type,\n checked,\n xfaOn: exportedValue.on,\n xfaOff: exportedValue.off,\n \"aria-label\": ariaLabel(field),\n },\n };\n\n if (groupId) {\n input.attributes.name = groupId;\n }\n\n return HTMLResult.success({\n name: \"label\",\n attributes: {\n class: [\"xfaLabel\"],\n },\n children: [input],\n });\n }\n}\n\nclass ChoiceList extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"choiceList\", /* hasChildren = */ true);\n this.commitOn = getStringOption(attributes.commitOn, [\"select\", \"exit\"]);\n this.id = attributes.id || \"\";\n this.open = getStringOption(attributes.open, [\n \"userControl\",\n \"always\",\n \"multiSelect\",\n \"onEntry\",\n ]);\n this.textEntry = getInteger({\n data: attributes.textEntry,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n const style = toStyle(this, \"border\", \"margin\");\n const ui = this[$getParent]();\n const field = ui[$getParent]();\n const fontSize = (field.font && field.font.size) || 10;\n const optionStyle = {\n fontSize: `calc(${fontSize}px * var(--zoom-factor))`,\n };\n const children = [];\n\n if (field.items.children.length > 0) {\n const items = field.items;\n let displayedIndex = 0;\n let saveIndex = 0;\n if (items.children.length === 2) {\n displayedIndex = items.children[0].save;\n saveIndex = 1 - displayedIndex;\n }\n const displayed = items.children[displayedIndex][$toHTML]().html;\n const values = items.children[saveIndex][$toHTML]().html;\n\n let selected = false;\n const value = (field.value && field.value[$text]()) || \"\";\n for (let i = 0, ii = displayed.length; i < ii; i++) {\n const option = {\n name: \"option\",\n attributes: {\n value: values[i] || displayed[i],\n style: optionStyle,\n },\n value: displayed[i],\n };\n if (values[i] === value) {\n option.attributes.selected = selected = true;\n }\n children.push(option);\n }\n\n if (!selected) {\n children.splice(0, 0, {\n name: \"option\",\n attributes: {\n hidden: true,\n selected: true,\n },\n value: \" \",\n });\n }\n }\n\n const selectAttributes = {\n class: [\"xfaSelect\"],\n fieldId: field[$uid],\n dataId: (field[$data] && field[$data][$uid]) || field[$uid],\n style,\n \"aria-label\": ariaLabel(field),\n };\n\n if (this.open === \"multiSelect\") {\n selectAttributes.multiple = true;\n }\n\n return HTMLResult.success({\n name: \"label\",\n attributes: {\n class: [\"xfaLabel\"],\n },\n children: [\n {\n name: \"select\",\n children,\n attributes: selectAttributes,\n },\n ],\n });\n }\n}\n\nclass Color extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"color\", /* hasChildren = */ true);\n this.cSpace = getStringOption(attributes.cSpace, [\"SRGB\"]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.value = attributes.value ? getColor(attributes.value) : \"\";\n this.extras = null;\n }\n\n [$hasSettableValue]() {\n return false;\n }\n\n [$toStyle]() {\n return this.value\n ? Util.makeHexColor(this.value.r, this.value.g, this.value.b)\n : null;\n }\n}\n\nclass Comb extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"comb\");\n this.id = attributes.id || \"\";\n this.numberOfCells = getInteger({\n data: attributes.numberOfCells,\n defaultValue: 0,\n validate: x => x >= 0,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Connect extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"connect\", /* hasChildren = */ true);\n this.connection = attributes.connection || \"\";\n this.id = attributes.id || \"\";\n this.ref = attributes.ref || \"\";\n this.usage = getStringOption(attributes.usage, [\n \"exportAndImport\",\n \"exportOnly\",\n \"importOnly\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.picture = null;\n }\n}\n\nclass ContentArea extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"contentArea\", /* hasChildren = */ true);\n this.h = getMeasurement(attributes.h);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = getMeasurement(attributes.w);\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.desc = null;\n this.extras = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n const left = measureToString(this.x);\n const top = measureToString(this.y);\n\n const style = {\n left,\n top,\n width: measureToString(this.w),\n height: measureToString(this.h),\n };\n\n const classNames = [\"xfaContentarea\"];\n\n if (isPrintOnly(this)) {\n classNames.push(\"xfaPrintOnly\");\n }\n\n return HTMLResult.success({\n name: \"div\",\n children: [],\n attributes: {\n style,\n class: classNames,\n id: this[$uid],\n },\n });\n }\n}\n\nclass Corner extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"corner\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.inverted = getInteger({\n data: attributes.inverted,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.join = getStringOption(attributes.join, [\"square\", \"round\"]);\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.radius = getMeasurement(attributes.radius);\n this.stroke = getStringOption(attributes.stroke, [\n \"solid\",\n \"dashDot\",\n \"dashDotDot\",\n \"dashed\",\n \"dotted\",\n \"embossed\",\n \"etched\",\n \"lowered\",\n \"raised\",\n ]);\n this.thickness = getMeasurement(attributes.thickness, \"0.5pt\");\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle]() {\n // In using CSS it's only possible to handle radius\n // (at least with basic css).\n // Is there a real use (interest ?) of all these properties ?\n // Maybe it's possible to implement them using svg and border-image...\n // TODO: implement all the missing properties.\n const style = toStyle(this, \"visibility\");\n style.radius = measureToString(this.join === \"square\" ? 0 : this.radius);\n return style;\n }\n}\n\nclass DateElement extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"date\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n const date = this[$content].trim();\n this[$content] = date ? new Date(date) : null;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(this[$content] ? this[$content].toString() : \"\");\n }\n}\n\nclass DateTime extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"dateTime\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n const date = this[$content].trim();\n this[$content] = date ? new Date(date) : null;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(this[$content] ? this[$content].toString() : \"\");\n }\n}\n\nclass DateTimeEdit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"dateTimeEdit\", /* hasChildren = */ true);\n this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, [\n \"auto\",\n \"off\",\n \"on\",\n ]);\n this.id = attributes.id || \"\";\n this.picker = getStringOption(attributes.picker, [\"host\", \"none\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.comb = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n // When the picker is host we should use type=date for the input\n // but we need to put the buttons outside the text-field.\n const style = toStyle(this, \"border\", \"font\", \"margin\");\n const field = this[$getParent]()[$getParent]();\n const html = {\n name: \"input\",\n attributes: {\n type: \"text\",\n fieldId: field[$uid],\n dataId: (field[$data] && field[$data][$uid]) || field[$uid],\n class: [\"xfaTextfield\"],\n style,\n \"aria-label\": ariaLabel(field),\n },\n };\n\n return HTMLResult.success({\n name: \"label\",\n attributes: {\n class: [\"xfaLabel\"],\n },\n children: [html],\n });\n }\n}\n\nclass Decimal extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"decimal\");\n this.fracDigits = getInteger({\n data: attributes.fracDigits,\n defaultValue: 2,\n validate: x => true,\n });\n this.id = attributes.id || \"\";\n this.leadDigits = getInteger({\n data: attributes.leadDigits,\n defaultValue: -1,\n validate: x => true,\n });\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n const number = parseFloat(this[$content].trim());\n this[$content] = isNaN(number) ? null : number;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(\n this[$content] !== null ? this[$content].toString() : \"\"\n );\n }\n}\n\nclass DefaultUi extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"defaultUi\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n}\n\nclass Desc extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"desc\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.boolean = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.time = new XFAObjectArray();\n }\n}\n\nclass DigestMethod extends OptionObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"digestMethod\", [\n \"\",\n \"SHA1\",\n \"SHA256\",\n \"SHA512\",\n \"RIPEMD160\",\n ]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass DigestMethods extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"digestMethods\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.digestMethod = new XFAObjectArray();\n }\n}\n\nclass Draw extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"draw\", /* hasChildren = */ true);\n this.anchorType = getStringOption(attributes.anchorType, [\n \"topLeft\",\n \"bottomCenter\",\n \"bottomLeft\",\n \"bottomRight\",\n \"middleCenter\",\n \"middleLeft\",\n \"middleRight\",\n \"topCenter\",\n \"topRight\",\n ]);\n this.colSpan = getInteger({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: n => n >= 1 || n === -1,\n });\n this.h = attributes.h ? getMeasurement(attributes.h) : \"\";\n this.hAlign = getStringOption(attributes.hAlign, [\n \"left\",\n \"center\",\n \"justify\",\n \"justifyAll\",\n \"radix\",\n \"right\",\n ]);\n this.id = attributes.id || \"\";\n this.locale = attributes.locale || \"\";\n this.maxH = getMeasurement(attributes.maxH, \"0pt\");\n this.maxW = getMeasurement(attributes.maxW, \"0pt\");\n this.minH = getMeasurement(attributes.minH, \"0pt\");\n this.minW = getMeasurement(attributes.minW, \"0pt\");\n this.name = attributes.name || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.rotate = getInteger({\n data: attributes.rotate,\n defaultValue: 0,\n validate: x => x % 90 === 0,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = attributes.w ? getMeasurement(attributes.w) : \"\";\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.assist = null;\n this.border = null;\n this.caption = null;\n this.desc = null;\n this.extras = null;\n this.font = null;\n this.keep = null;\n this.margin = null;\n this.para = null;\n this.traversal = null;\n this.ui = null;\n this.value = null;\n this.setProperty = new XFAObjectArray();\n }\n\n [$setValue](value) {\n _setValue(this, value);\n }\n\n [$toHTML](availableSpace) {\n setTabIndex(this);\n\n if (this.presence === \"hidden\" || this.presence === \"inactive\") {\n return HTMLResult.EMPTY;\n }\n\n fixDimensions(this);\n this[$pushPara]();\n\n // If at least one dimension is missing and we've a text\n // then we can guess it in laying out the text.\n const savedW = this.w;\n const savedH = this.h;\n const { w, h, isBroken } = layoutNode(this, availableSpace);\n if (w && this.w === \"\") {\n // If the parent layout is lr-tb with a w=100 and we already have a child\n // which takes 90 on the current line.\n // If we have a text with a length (in px) equal to 100 then it'll be\n // splitted into almost 10 chunks: so it won't be nice.\n // So if we've potentially more width to provide in some parent containers\n // let's increase it to give a chance to have a better rendering.\n if (isBroken && this[$getSubformParent]()[$isThereMoreWidth]()) {\n this[$popPara]();\n return HTMLResult.FAILURE;\n }\n\n this.w = w;\n }\n if (h && this.h === \"\") {\n this.h = h;\n }\n\n setFirstUnsplittable(this);\n if (!checkDimensions(this, availableSpace)) {\n this.w = savedW;\n this.h = savedH;\n this[$popPara]();\n return HTMLResult.FAILURE;\n }\n unsetFirstUnsplittable(this);\n\n const style = toStyle(\n this,\n \"font\",\n \"hAlign\",\n \"dimensions\",\n \"position\",\n \"presence\",\n \"rotate\",\n \"anchorType\",\n \"border\",\n \"margin\"\n );\n\n setMinMaxDimensions(this, style);\n\n if (style.margin) {\n style.padding = style.margin;\n delete style.margin;\n }\n\n const classNames = [\"xfaDraw\"];\n if (this.font) {\n classNames.push(\"xfaFont\");\n }\n if (isPrintOnly(this)) {\n classNames.push(\"xfaPrintOnly\");\n }\n\n const attributes = {\n style,\n id: this[$uid],\n class: classNames,\n };\n\n if (this.name) {\n attributes.xfaName = this.name;\n }\n\n const html = {\n name: \"div\",\n attributes,\n children: [],\n };\n\n applyAssist(this, attributes);\n\n const bbox = computeBbox(this, html, availableSpace);\n\n const value = this.value ? this.value[$toHTML](availableSpace).html : null;\n if (value === null) {\n this.w = savedW;\n this.h = savedH;\n this[$popPara]();\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n\n html.children.push(value);\n setPara(this, style, value);\n\n this.w = savedW;\n this.h = savedH;\n\n this[$popPara]();\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n}\n\nclass Edge extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"edge\", /* hasChildren = */ true);\n this.cap = getStringOption(attributes.cap, [\"square\", \"butt\", \"round\"]);\n this.id = attributes.id || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.stroke = getStringOption(attributes.stroke, [\n \"solid\",\n \"dashDot\",\n \"dashDotDot\",\n \"dashed\",\n \"dotted\",\n \"embossed\",\n \"etched\",\n \"lowered\",\n \"raised\",\n ]);\n this.thickness = getMeasurement(attributes.thickness, \"0.5pt\");\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle]() {\n // TODO: dashDot & dashDotDot.\n const style = toStyle(this, \"visibility\");\n Object.assign(style, {\n linecap: this.cap,\n width: measureToString(this.thickness),\n color: this.color ? this.color[$toStyle]() : \"#000000\",\n style: \"\",\n });\n\n if (this.presence !== \"visible\") {\n style.style = \"none\";\n } else {\n switch (this.stroke) {\n case \"solid\":\n style.style = \"solid\";\n break;\n case \"dashDot\":\n style.style = \"dashed\";\n break;\n case \"dashDotDot\":\n style.style = \"dashed\";\n break;\n case \"dashed\":\n style.style = \"dashed\";\n break;\n case \"dotted\":\n style.style = \"dotted\";\n break;\n case \"embossed\":\n style.style = \"ridge\";\n break;\n case \"etched\":\n style.style = \"groove\";\n break;\n case \"lowered\":\n style.style = \"inset\";\n break;\n case \"raised\":\n style.style = \"outset\";\n break;\n }\n }\n return style;\n }\n}\n\nclass Encoding extends OptionObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encoding\", [\n \"adbe.x509.rsa_sha1\",\n \"adbe.pkcs7.detached\",\n \"adbe.pkcs7.sha1\",\n ]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Encodings extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encodings\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.encoding = new XFAObjectArray();\n }\n}\n\nclass Encrypt extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encrypt\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.certificate = null;\n }\n}\n\nclass EncryptData extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encryptData\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.operation = getStringOption(attributes.operation, [\n \"encrypt\",\n \"decrypt\",\n ]);\n this.target = attributes.target || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.filter = null;\n this.manifest = null;\n }\n}\n\nclass Encryption extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encryption\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.certificate = new XFAObjectArray();\n }\n}\n\nclass EncryptionMethod extends OptionObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encryptionMethod\", [\n \"\",\n \"AES256-CBC\",\n \"TRIPLEDES-CBC\",\n \"AES128-CBC\",\n \"AES192-CBC\",\n ]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass EncryptionMethods extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encryptionMethods\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.encryptionMethod = new XFAObjectArray();\n }\n}\n\nclass Event extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"event\", /* hasChildren = */ true);\n this.activity = getStringOption(attributes.activity, [\n \"click\",\n \"change\",\n \"docClose\",\n \"docReady\",\n \"enter\",\n \"exit\",\n \"full\",\n \"indexChange\",\n \"initialize\",\n \"mouseDown\",\n \"mouseEnter\",\n \"mouseExit\",\n \"mouseUp\",\n \"postExecute\",\n \"postOpen\",\n \"postPrint\",\n \"postSave\",\n \"postSign\",\n \"postSubmit\",\n \"preExecute\",\n \"preOpen\",\n \"prePrint\",\n \"preSave\",\n \"preSign\",\n \"preSubmit\",\n \"ready\",\n \"validationState\",\n ]);\n this.id = attributes.id || \"\";\n this.listen = getStringOption(attributes.listen, [\n \"refOnly\",\n \"refAndDescendents\",\n ]);\n this.name = attributes.name || \"\";\n this.ref = attributes.ref || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n\n // One-of properties\n this.encryptData = null;\n this.execute = null;\n this.script = null;\n this.signData = null;\n this.submit = null;\n }\n}\n\nclass ExData extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"exData\");\n this.contentType = attributes.contentType || \"\";\n this.href = attributes.href || \"\";\n this.id = attributes.id || \"\";\n this.maxLength = getInteger({\n data: attributes.maxLength,\n defaultValue: -1,\n validate: x => x >= -1,\n });\n this.name = attributes.name || \"\";\n this.rid = attributes.rid || \"\";\n this.transferEncoding = getStringOption(attributes.transferEncoding, [\n \"none\",\n \"base64\",\n \"package\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$isCDATAXml]() {\n return this.contentType === \"text/html\";\n }\n\n [$onChild](child) {\n if (\n this.contentType === \"text/html\" &&\n child[$namespaceId] === NamespaceIds.xhtml.id\n ) {\n this[$content] = child;\n return true;\n }\n\n if (this.contentType === \"text/xml\") {\n this[$content] = child;\n return true;\n }\n\n return false;\n }\n\n [$toHTML](availableSpace) {\n if (this.contentType !== \"text/html\" || !this[$content]) {\n // TODO: fix other cases.\n return HTMLResult.EMPTY;\n }\n\n return this[$content][$toHTML](availableSpace);\n }\n}\n\nclass ExObject extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"exObject\", /* hasChildren = */ true);\n this.archive = attributes.archive || \"\";\n this.classId = attributes.classId || \"\";\n this.codeBase = attributes.codeBase || \"\";\n this.codeType = attributes.codeType || \"\";\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.boolean = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.exObject = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.time = new XFAObjectArray();\n }\n}\n\nclass ExclGroup extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"exclGroup\", /* hasChildren = */ true);\n this.access = getStringOption(attributes.access, [\n \"open\",\n \"nonInteractive\",\n \"protected\",\n \"readOnly\",\n ]);\n this.accessKey = attributes.accessKey || \"\";\n this.anchorType = getStringOption(attributes.anchorType, [\n \"topLeft\",\n \"bottomCenter\",\n \"bottomLeft\",\n \"bottomRight\",\n \"middleCenter\",\n \"middleLeft\",\n \"middleRight\",\n \"topCenter\",\n \"topRight\",\n ]);\n this.colSpan = getInteger({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: n => n >= 1 || n === -1,\n });\n this.h = attributes.h ? getMeasurement(attributes.h) : \"\";\n this.hAlign = getStringOption(attributes.hAlign, [\n \"left\",\n \"center\",\n \"justify\",\n \"justifyAll\",\n \"radix\",\n \"right\",\n ]);\n this.id = attributes.id || \"\";\n this.layout = getStringOption(attributes.layout, [\n \"position\",\n \"lr-tb\",\n \"rl-row\",\n \"rl-tb\",\n \"row\",\n \"table\",\n \"tb\",\n ]);\n this.maxH = getMeasurement(attributes.maxH, \"0pt\");\n this.maxW = getMeasurement(attributes.maxW, \"0pt\");\n this.minH = getMeasurement(attributes.minH, \"0pt\");\n this.minW = getMeasurement(attributes.minW, \"0pt\");\n this.name = attributes.name || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = attributes.w ? getMeasurement(attributes.w) : \"\";\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.assist = null;\n this.bind = null;\n this.border = null;\n this.calculate = null;\n this.caption = null;\n this.desc = null;\n this.extras = null;\n this.margin = null;\n this.para = null;\n this.traversal = null;\n this.validate = null;\n this.connect = new XFAObjectArray();\n this.event = new XFAObjectArray();\n this.field = new XFAObjectArray();\n this.setProperty = new XFAObjectArray();\n }\n\n [$isBindable]() {\n return true;\n }\n\n [$hasSettableValue]() {\n return true;\n }\n\n [$setValue](value) {\n for (const field of this.field.children) {\n if (!field.value) {\n const nodeValue = new Value({});\n field[$appendChild](nodeValue);\n field.value = nodeValue;\n }\n\n field.value[$setValue](value);\n }\n }\n\n [$isThereMoreWidth]() {\n return (\n (this.layout.endsWith(\"-tb\") &&\n this[$extra].attempt === 0 &&\n this[$extra].numberInLine > 0) ||\n this[$getParent]()[$isThereMoreWidth]()\n );\n }\n\n [$isSplittable]() {\n // We cannot cache the result here because the contentArea\n // can change.\n const parent = this[$getSubformParent]();\n if (!parent[$isSplittable]()) {\n return false;\n }\n\n if (this[$extra]._isSplittable !== undefined) {\n return this[$extra]._isSplittable;\n }\n\n if (this.layout === \"position\" || this.layout.includes(\"row\")) {\n this[$extra]._isSplittable = false;\n return false;\n }\n\n if (\n parent.layout &&\n parent.layout.endsWith(\"-tb\") &&\n parent[$extra].numberInLine !== 0\n ) {\n // See comment in Subform::[$isSplittable] for an explanation.\n return false;\n }\n\n this[$extra]._isSplittable = true;\n return true;\n }\n\n [$flushHTML]() {\n return flushHTML(this);\n }\n\n [$addHTML](html, bbox) {\n addHTML(this, html, bbox);\n }\n\n [$getAvailableSpace]() {\n return getAvailableSpace(this);\n }\n\n [$toHTML](availableSpace) {\n setTabIndex(this);\n if (\n this.presence === \"hidden\" ||\n this.presence === \"inactive\" ||\n this.h === 0 ||\n this.w === 0\n ) {\n return HTMLResult.EMPTY;\n }\n\n fixDimensions(this);\n\n const children = [];\n const attributes = {\n id: this[$uid],\n class: [],\n };\n\n setAccess(this, attributes.class);\n\n if (!this[$extra]) {\n this[$extra] = Object.create(null);\n }\n\n Object.assign(this[$extra], {\n children,\n attributes,\n attempt: 0,\n line: null,\n numberInLine: 0,\n availableSpace: {\n width: Math.min(this.w || Infinity, availableSpace.width),\n height: Math.min(this.h || Infinity, availableSpace.height),\n },\n width: 0,\n height: 0,\n prevHeight: 0,\n currentWidth: 0,\n });\n\n const isSplittable = this[$isSplittable]();\n if (!isSplittable) {\n setFirstUnsplittable(this);\n }\n\n if (!checkDimensions(this, availableSpace)) {\n return HTMLResult.FAILURE;\n }\n const filter = new Set([\"field\"]);\n\n if (this.layout.includes(\"row\")) {\n const columnWidths = this[$getSubformParent]().columnWidths;\n if (Array.isArray(columnWidths) && columnWidths.length > 0) {\n this[$extra].columnWidths = columnWidths;\n this[$extra].currentColumn = 0;\n }\n }\n\n const style = toStyle(\n this,\n \"anchorType\",\n \"dimensions\",\n \"position\",\n \"presence\",\n \"border\",\n \"margin\",\n \"hAlign\"\n );\n const classNames = [\"xfaExclgroup\"];\n const cl = layoutClass(this);\n if (cl) {\n classNames.push(cl);\n }\n\n if (isPrintOnly(this)) {\n classNames.push(\"xfaPrintOnly\");\n }\n\n attributes.style = style;\n attributes.class = classNames;\n\n if (this.name) {\n attributes.xfaName = this.name;\n }\n\n this[$pushPara]();\n const isLrTb = this.layout === \"lr-tb\" || this.layout === \"rl-tb\";\n const maxRun = isLrTb ? MAX_ATTEMPTS_FOR_LRTB_LAYOUT : 1;\n for (; this[$extra].attempt < maxRun; this[$extra].attempt++) {\n if (isLrTb && this[$extra].attempt === MAX_ATTEMPTS_FOR_LRTB_LAYOUT - 1) {\n // If the layout is lr-tb then having attempt equals to\n // MAX_ATTEMPTS_FOR_LRTB_LAYOUT-1 means that we're trying to layout\n // on the next line so this on is empty.\n this[$extra].numberInLine = 0;\n }\n const result = this[$childrenToHTML]({\n filter,\n include: true,\n });\n if (result.success) {\n break;\n }\n if (result.isBreak()) {\n this[$popPara]();\n return result;\n }\n if (\n isLrTb &&\n this[$extra].attempt === 0 &&\n this[$extra].numberInLine === 0 &&\n !this[$getTemplateRoot]()[$extra].noLayoutFailure\n ) {\n // See comment in Subform::[$toHTML].\n this[$extra].attempt = maxRun;\n break;\n }\n }\n\n this[$popPara]();\n\n if (!isSplittable) {\n unsetFirstUnsplittable(this);\n }\n\n if (this[$extra].attempt === maxRun) {\n if (!isSplittable) {\n delete this[$extra];\n }\n return HTMLResult.FAILURE;\n }\n\n let marginH = 0;\n let marginV = 0;\n if (this.margin) {\n marginH = this.margin.leftInset + this.margin.rightInset;\n marginV = this.margin.topInset + this.margin.bottomInset;\n }\n\n const width = Math.max(this[$extra].width + marginH, this.w || 0);\n const height = Math.max(this[$extra].height + marginV, this.h || 0);\n const bbox = [this.x, this.y, width, height];\n\n if (this.w === \"\") {\n style.width = measureToString(width);\n }\n if (this.h === \"\") {\n style.height = measureToString(height);\n }\n\n const html = {\n name: \"div\",\n attributes,\n children,\n };\n\n applyAssist(this, attributes);\n\n delete this[$extra];\n\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n}\n\nclass Execute extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"execute\");\n this.connection = attributes.connection || \"\";\n this.executeType = getStringOption(attributes.executeType, [\n \"import\",\n \"remerge\",\n ]);\n this.id = attributes.id || \"\";\n this.runAt = getStringOption(attributes.runAt, [\n \"client\",\n \"both\",\n \"server\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Extras extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"extras\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.boolean = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.extras = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.time = new XFAObjectArray();\n }\n\n // (Spec) The XFA template grammar defines the extras and desc elements,\n // which can be used to add human-readable or machine-readable\n // data to a template.\n}\n\nclass Field extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"field\", /* hasChildren = */ true);\n this.access = getStringOption(attributes.access, [\n \"open\",\n \"nonInteractive\",\n \"protected\",\n \"readOnly\",\n ]);\n this.accessKey = attributes.accessKey || \"\";\n this.anchorType = getStringOption(attributes.anchorType, [\n \"topLeft\",\n \"bottomCenter\",\n \"bottomLeft\",\n \"bottomRight\",\n \"middleCenter\",\n \"middleLeft\",\n \"middleRight\",\n \"topCenter\",\n \"topRight\",\n ]);\n this.colSpan = getInteger({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: n => n >= 1 || n === -1,\n });\n this.h = attributes.h ? getMeasurement(attributes.h) : \"\";\n this.hAlign = getStringOption(attributes.hAlign, [\n \"left\",\n \"center\",\n \"justify\",\n \"justifyAll\",\n \"radix\",\n \"right\",\n ]);\n this.id = attributes.id || \"\";\n this.locale = attributes.locale || \"\";\n this.maxH = getMeasurement(attributes.maxH, \"0pt\");\n this.maxW = getMeasurement(attributes.maxW, \"0pt\");\n this.minH = getMeasurement(attributes.minH, \"0pt\");\n this.minW = getMeasurement(attributes.minW, \"0pt\");\n this.name = attributes.name || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.rotate = getInteger({\n data: attributes.rotate,\n defaultValue: 0,\n validate: x => x % 90 === 0,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = attributes.w ? getMeasurement(attributes.w) : \"\";\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.assist = null;\n this.bind = null;\n this.border = null;\n this.calculate = null;\n this.caption = null;\n this.desc = null;\n this.extras = null;\n this.font = null;\n this.format = null;\n // For a choice list, one list is used to have display entries\n // and the other for the exported values\n this.items = new XFAObjectArray(2);\n this.keep = null;\n this.margin = null;\n this.para = null;\n this.traversal = null;\n this.ui = null;\n this.validate = null;\n this.value = null;\n this.bindItems = new XFAObjectArray();\n this.connect = new XFAObjectArray();\n this.event = new XFAObjectArray();\n this.setProperty = new XFAObjectArray();\n }\n\n [$isBindable]() {\n return true;\n }\n\n [$setValue](value) {\n _setValue(this, value);\n }\n\n [$toHTML](availableSpace) {\n setTabIndex(this);\n\n if (!this.ui) {\n // It's allowed to not have an ui, specs say:\n // If the UI element contains no children or is not present,\n // the application chooses a default user interface for the\n // container, based on the type of the container's content.\n\n this.ui = new Ui({});\n this.ui[$globalData] = this[$globalData];\n this[$appendChild](this.ui);\n let node;\n\n // The items element can have 2 element max and\n // according to the items specs it's likely a good\n // way to guess the correct ui type.\n switch (this.items.children.length) {\n case 0:\n node = new TextEdit({});\n this.ui.textEdit = node;\n break;\n case 1:\n node = new CheckButton({});\n this.ui.checkButton = node;\n break;\n case 2:\n node = new ChoiceList({});\n this.ui.choiceList = node;\n break;\n }\n this.ui[$appendChild](node);\n }\n\n if (\n !this.ui ||\n this.presence === \"hidden\" ||\n this.presence === \"inactive\" ||\n this.h === 0 ||\n this.w === 0\n ) {\n return HTMLResult.EMPTY;\n }\n\n if (this.caption) {\n // Maybe we already tried to layout this field with\n // another availableSpace, so to avoid to use the cached\n // value just delete it.\n delete this.caption[$extra];\n }\n\n this[$pushPara]();\n\n const caption = this.caption\n ? this.caption[$toHTML](availableSpace).html\n : null;\n const savedW = this.w;\n const savedH = this.h;\n let marginH = 0;\n let marginV = 0;\n if (this.margin) {\n marginH = this.margin.leftInset + this.margin.rightInset;\n marginV = this.margin.topInset + this.margin.bottomInset;\n }\n\n let borderDims = null;\n if (this.w === \"\" || this.h === \"\") {\n let width = null;\n let height = null;\n\n let uiW = 0;\n let uiH = 0;\n if (this.ui.checkButton) {\n uiW = uiH = this.ui.checkButton.size;\n } else {\n const { w, h } = layoutNode(this, availableSpace);\n if (w !== null) {\n uiW = w;\n uiH = h;\n } else {\n uiH = getMetrics(this.font, /* real = */ true).lineNoGap;\n }\n }\n\n borderDims = getBorderDims(this.ui[$getExtra]());\n uiW += borderDims.w;\n uiH += borderDims.h;\n\n if (this.caption) {\n const { w, h, isBroken } = this.caption[$getExtra](availableSpace);\n // See comment in Draw::[$toHTML] to have an explanation\n // about this line.\n if (isBroken && this[$getSubformParent]()[$isThereMoreWidth]()) {\n this[$popPara]();\n return HTMLResult.FAILURE;\n }\n\n width = w;\n height = h;\n\n switch (this.caption.placement) {\n case \"left\":\n case \"right\":\n case \"inline\":\n width += uiW;\n break;\n case \"top\":\n case \"bottom\":\n height += uiH;\n break;\n }\n } else {\n width = uiW;\n height = uiH;\n }\n\n if (width && this.w === \"\") {\n width += marginH;\n this.w = Math.min(\n this.maxW <= 0 ? Infinity : this.maxW,\n this.minW + 1 < width ? width : this.minW\n );\n }\n\n if (height && this.h === \"\") {\n height += marginV;\n this.h = Math.min(\n this.maxH <= 0 ? Infinity : this.maxH,\n this.minH + 1 < height ? height : this.minH\n );\n }\n }\n\n this[$popPara]();\n\n fixDimensions(this);\n\n setFirstUnsplittable(this);\n if (!checkDimensions(this, availableSpace)) {\n this.w = savedW;\n this.h = savedH;\n this[$popPara]();\n return HTMLResult.FAILURE;\n }\n unsetFirstUnsplittable(this);\n\n const style = toStyle(\n this,\n \"font\",\n \"dimensions\",\n \"position\",\n \"rotate\",\n \"anchorType\",\n \"presence\",\n \"margin\",\n \"hAlign\"\n );\n\n setMinMaxDimensions(this, style);\n\n const classNames = [\"xfaField\"];\n // If no font, font properties are inherited.\n if (this.font) {\n classNames.push(\"xfaFont\");\n }\n\n if (isPrintOnly(this)) {\n classNames.push(\"xfaPrintOnly\");\n }\n\n const attributes = {\n style,\n id: this[$uid],\n class: classNames,\n };\n\n if (style.margin) {\n style.padding = style.margin;\n delete style.margin;\n }\n\n setAccess(this, classNames);\n\n if (this.name) {\n attributes.xfaName = this.name;\n }\n\n const children = [];\n const html = {\n name: \"div\",\n attributes,\n children,\n };\n\n applyAssist(this, attributes);\n\n const borderStyle = this.border ? this.border[$toStyle]() : null;\n const bbox = computeBbox(this, html, availableSpace);\n const ui = this.ui[$toHTML]().html;\n if (!ui) {\n Object.assign(style, borderStyle);\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n\n if (this[$tabIndex]) {\n if (ui.children && ui.children[0]) {\n ui.children[0].attributes.tabindex = this[$tabIndex];\n } else {\n ui.attributes.tabindex = this[$tabIndex];\n }\n }\n\n if (!ui.attributes.style) {\n ui.attributes.style = Object.create(null);\n }\n\n let aElement = null;\n\n if (this.ui.button) {\n if (ui.children.length === 1) {\n [aElement] = ui.children.splice(0, 1);\n }\n Object.assign(ui.attributes.style, borderStyle);\n } else {\n Object.assign(style, borderStyle);\n }\n\n children.push(ui);\n\n if (this.value) {\n if (this.ui.imageEdit) {\n ui.children.push(this.value[$toHTML]().html);\n } else if (!this.ui.button) {\n let value = \"\";\n if (this.value.exData) {\n value = this.value.exData[$text]();\n } else if (this.value.text) {\n value = this.value.text[$getExtra]();\n } else {\n const htmlValue = this.value[$toHTML]().html;\n if (htmlValue !== null) {\n value = htmlValue.children[0].value;\n }\n }\n if (this.ui.textEdit && this.value.text && this.value.text.maxChars) {\n ui.children[0].attributes.maxLength = this.value.text.maxChars;\n }\n\n if (value) {\n if (this.ui.numericEdit) {\n value = parseFloat(value);\n value = isNaN(value) ? \"\" : value.toString();\n }\n\n if (ui.children[0].name === \"textarea\") {\n ui.children[0].attributes.textContent = value;\n } else {\n ui.children[0].attributes.value = value;\n }\n }\n }\n }\n\n if (!this.ui.imageEdit && ui.children && ui.children[0] && this.h) {\n borderDims = borderDims || getBorderDims(this.ui[$getExtra]());\n\n let captionHeight = 0;\n if (this.caption && [\"top\", \"bottom\"].includes(this.caption.placement)) {\n captionHeight = this.caption.reserve;\n if (captionHeight <= 0) {\n captionHeight = this.caption[$getExtra](availableSpace).h;\n }\n const inputHeight = this.h - captionHeight - marginV - borderDims.h;\n ui.children[0].attributes.style.height = measureToString(inputHeight);\n } else {\n ui.children[0].attributes.style.height = \"100%\";\n }\n }\n\n if (aElement) {\n ui.children.push(aElement);\n }\n\n if (!caption) {\n if (ui.attributes.class) {\n // Even if no caption this class will help to center the ui.\n ui.attributes.class.push(\"xfaLeft\");\n }\n this.w = savedW;\n this.h = savedH;\n\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n\n if (this.ui.button) {\n if (style.padding) {\n delete style.padding;\n }\n if (caption.name === \"div\") {\n caption.name = \"span\";\n }\n ui.children.push(caption);\n return HTMLResult.success(html, bbox);\n } else if (this.ui.checkButton) {\n caption.attributes.class[0] = \"xfaCaptionForCheckButton\";\n }\n\n if (!ui.attributes.class) {\n ui.attributes.class = [];\n }\n\n ui.children.splice(0, 0, caption);\n\n switch (this.caption.placement) {\n case \"left\":\n ui.attributes.class.push(\"xfaLeft\");\n break;\n case \"right\":\n ui.attributes.class.push(\"xfaRight\");\n break;\n case \"top\":\n ui.attributes.class.push(\"xfaTop\");\n break;\n case \"bottom\":\n ui.attributes.class.push(\"xfaBottom\");\n break;\n case \"inline\":\n // TODO;\n ui.attributes.class.push(\"xfaLeft\");\n break;\n }\n\n this.w = savedW;\n this.h = savedH;\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n}\n\nclass Fill extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"fill\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n\n // One-of properties or none\n this.linear = null;\n this.pattern = null;\n this.radial = null;\n this.solid = null;\n this.stipple = null;\n }\n\n [$toStyle]() {\n const parent = this[$getParent]();\n const grandpa = parent[$getParent]();\n const ggrandpa = grandpa[$getParent]();\n const style = Object.create(null);\n\n // Use for color, i.e. #...\n let propName = \"color\";\n\n // Use for non-color, i.e. gradient, radial-gradient...\n let altPropName = propName;\n\n if (parent instanceof Border) {\n propName = \"background-color\";\n altPropName = \"background\";\n if (ggrandpa instanceof Ui) {\n // The default fill color is white.\n style.backgroundColor = \"white\";\n }\n }\n if (parent instanceof Rectangle || parent instanceof Arc) {\n propName = altPropName = \"fill\";\n style.fill = \"white\";\n }\n\n for (const name of Object.getOwnPropertyNames(this)) {\n if (name === \"extras\" || name === \"color\") {\n continue;\n }\n const obj = this[name];\n if (!(obj instanceof XFAObject)) {\n continue;\n }\n\n const color = obj[$toStyle](this.color);\n if (color) {\n style[color.startsWith(\"#\") ? propName : altPropName] = color;\n }\n return style;\n }\n\n if (this.color && this.color.value) {\n const color = this.color[$toStyle]();\n style[color.startsWith(\"#\") ? propName : altPropName] = color;\n }\n\n return style;\n }\n}\n\nclass Filter extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"filter\", /* hasChildren = */ true);\n this.addRevocationInfo = getStringOption(attributes.addRevocationInfo, [\n \"\",\n \"required\",\n \"optional\",\n \"none\",\n ]);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.version = getInteger({\n data: this.version,\n defaultValue: 5,\n validate: x => x >= 1 && x <= 5,\n });\n this.appearanceFilter = null;\n this.certificates = null;\n this.digestMethods = null;\n this.encodings = null;\n this.encryptionMethods = null;\n this.handler = null;\n this.lockDocument = null;\n this.mdp = null;\n this.reasons = null;\n this.timeStamp = null;\n }\n}\n\nclass Float extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"float\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n const number = parseFloat(this[$content].trim());\n this[$content] = isNaN(number) ? null : number;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(\n this[$content] !== null ? this[$content].toString() : \"\"\n );\n }\n}\n\nclass Font extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"font\", /* hasChildren = */ true);\n this.baselineShift = getMeasurement(attributes.baselineShift);\n this.fontHorizontalScale = getFloat({\n data: attributes.fontHorizontalScale,\n defaultValue: 100,\n validate: x => x >= 0,\n });\n this.fontVerticalScale = getFloat({\n data: attributes.fontVerticalScale,\n defaultValue: 100,\n validate: x => x >= 0,\n });\n this.id = attributes.id || \"\";\n this.kerningMode = getStringOption(attributes.kerningMode, [\n \"none\",\n \"pair\",\n ]);\n this.letterSpacing = getMeasurement(attributes.letterSpacing, \"0\");\n this.lineThrough = getInteger({\n data: attributes.lineThrough,\n defaultValue: 0,\n validate: x => x === 1 || x === 2,\n });\n this.lineThroughPeriod = getStringOption(attributes.lineThroughPeriod, [\n \"all\",\n \"word\",\n ]);\n this.overline = getInteger({\n data: attributes.overline,\n defaultValue: 0,\n validate: x => x === 1 || x === 2,\n });\n this.overlinePeriod = getStringOption(attributes.overlinePeriod, [\n \"all\",\n \"word\",\n ]);\n this.posture = getStringOption(attributes.posture, [\"normal\", \"italic\"]);\n this.size = getMeasurement(attributes.size, \"10pt\");\n this.typeface = attributes.typeface || \"Courier\";\n this.underline = getInteger({\n data: attributes.underline,\n defaultValue: 0,\n validate: x => x === 1 || x === 2,\n });\n this.underlinePeriod = getStringOption(attributes.underlinePeriod, [\n \"all\",\n \"word\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.weight = getStringOption(attributes.weight, [\"normal\", \"bold\"]);\n this.extras = null;\n this.fill = null;\n }\n\n [$clean](builder) {\n super[$clean](builder);\n this[$globalData].usedTypefaces.add(this.typeface);\n }\n\n [$toStyle]() {\n const style = toStyle(this, \"fill\");\n const color = style.color;\n if (color) {\n if (color === \"#000000\") {\n // Default font color.\n delete style.color;\n } else if (!color.startsWith(\"#\")) {\n // We've a gradient which is not possible for a font color\n // so use a workaround.\n style.background = color;\n style.backgroundClip = \"text\";\n style.color = \"transparent\";\n }\n }\n\n if (this.baselineShift) {\n style.verticalAlign = measureToString(this.baselineShift);\n }\n\n // TODO: fontHorizontalScale\n // TODO: fontVerticalScale\n\n style.fontKerning = this.kerningMode === \"none\" ? \"none\" : \"normal\";\n style.letterSpacing = measureToString(this.letterSpacing);\n\n if (this.lineThrough !== 0) {\n style.textDecoration = \"line-through\";\n if (this.lineThrough === 2) {\n style.textDecorationStyle = \"double\";\n }\n }\n\n // TODO: lineThroughPeriod\n\n if (this.overline !== 0) {\n style.textDecoration = \"overline\";\n if (this.overline === 2) {\n style.textDecorationStyle = \"double\";\n }\n }\n\n // TODO: overlinePeriod\n\n style.fontStyle = this.posture;\n style.fontSize = measureToString(0.99 * this.size);\n\n setFontFamily(this, this, this[$globalData].fontFinder, style);\n\n if (this.underline !== 0) {\n style.textDecoration = \"underline\";\n if (this.underline === 2) {\n style.textDecorationStyle = \"double\";\n }\n }\n\n // TODO: underlinePeriod\n\n style.fontWeight = this.weight;\n\n return style;\n }\n}\n\nclass Format extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"format\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.picture = null;\n }\n}\n\nclass Handler extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"handler\");\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Hyphenation extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"hyphenation\");\n this.excludeAllCaps = getInteger({\n data: attributes.excludeAllCaps,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.excludeInitialCap = getInteger({\n data: attributes.excludeInitialCap,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.hyphenate = getInteger({\n data: attributes.hyphenate,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.id = attributes.id || \"\";\n this.pushCharacterCount = getInteger({\n data: attributes.pushCharacterCount,\n defaultValue: 3,\n validate: x => x >= 0,\n });\n this.remainCharacterCount = getInteger({\n data: attributes.remainCharacterCount,\n defaultValue: 3,\n validate: x => x >= 0,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.wordCharacterCount = getInteger({\n data: attributes.wordCharacterCount,\n defaultValue: 7,\n validate: x => x >= 0,\n });\n }\n}\n\nclass Image extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"image\");\n this.aspect = getStringOption(attributes.aspect, [\n \"fit\",\n \"actual\",\n \"height\",\n \"none\",\n \"width\",\n ]);\n this.contentType = attributes.contentType || \"\";\n this.href = attributes.href || \"\";\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.transferEncoding = getStringOption(attributes.transferEncoding, [\n \"base64\",\n \"none\",\n \"package\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$toHTML]() {\n if (this.contentType && !MIMES.has(this.contentType.toLowerCase())) {\n return HTMLResult.EMPTY;\n }\n\n let buffer =\n this[$globalData].images && this[$globalData].images.get(this.href);\n if (!buffer && (this.href || !this[$content])) {\n // In general, we don't get remote data and use what we have\n // in the pdf itself, so no picture for non null href.\n return HTMLResult.EMPTY;\n }\n\n if (!buffer && this.transferEncoding === \"base64\") {\n buffer = stringToBytes(atob(this[$content]));\n }\n\n if (!buffer) {\n return HTMLResult.EMPTY;\n }\n\n if (!this.contentType) {\n for (const [header, type] of IMAGES_HEADERS) {\n if (\n buffer.length > header.length &&\n header.every((x, i) => x === buffer[i])\n ) {\n this.contentType = type;\n break;\n }\n }\n if (!this.contentType) {\n return HTMLResult.EMPTY;\n }\n }\n\n // TODO: Firefox doesn't support natively tiff (and tif) format.\n const blob = new Blob([buffer], { type: this.contentType });\n let style;\n switch (this.aspect) {\n case \"fit\":\n case \"actual\":\n // TODO: check what to do with actual.\n // Normally we should return {auto, auto} for it but\n // it implies some wrong rendering (see xfa_bug1716816.pdf).\n break;\n case \"height\":\n style = {\n height: \"100%\",\n objectFit: \"fill\",\n };\n break;\n case \"none\":\n style = {\n width: \"100%\",\n height: \"100%\",\n objectFit: \"fill\",\n };\n break;\n case \"width\":\n style = {\n width: \"100%\",\n objectFit: \"fill\",\n };\n break;\n }\n const parent = this[$getParent]();\n return HTMLResult.success({\n name: \"img\",\n attributes: {\n class: [\"xfaImage\"],\n style,\n src: URL.createObjectURL(blob),\n alt: parent ? ariaLabel(parent[$getParent]()) : null,\n },\n });\n }\n}\n\nclass ImageEdit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"imageEdit\", /* hasChildren = */ true);\n this.data = getStringOption(attributes.data, [\"link\", \"embed\"]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n if (this.data === \"embed\") {\n return HTMLResult.success({\n name: \"div\",\n children: [],\n attributes: {},\n });\n }\n\n return HTMLResult.EMPTY;\n }\n}\n\nclass Integer extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"integer\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n const number = parseInt(this[$content].trim(), 10);\n this[$content] = isNaN(number) ? null : number;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(\n this[$content] !== null ? this[$content].toString() : \"\"\n );\n }\n}\n\nclass Issuers extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"issuers\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.certificate = new XFAObjectArray();\n }\n}\n\nclass Items extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"items\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.ref = attributes.ref || \"\";\n this.save = getInteger({\n data: attributes.save,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.boolean = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.time = new XFAObjectArray();\n }\n\n [$toHTML]() {\n const output = [];\n for (const child of this[$getChildren]()) {\n output.push(child[$text]());\n }\n return HTMLResult.success(output);\n }\n}\n\nclass Keep extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"keep\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n const options = [\"none\", \"contentArea\", \"pageArea\"];\n this.intact = getStringOption(attributes.intact, options);\n this.next = getStringOption(attributes.next, options);\n this.previous = getStringOption(attributes.previous, options);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n}\n\nclass KeyUsage extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"keyUsage\");\n const options = [\"\", \"yes\", \"no\"];\n this.crlSign = getStringOption(attributes.crlSign, options);\n this.dataEncipherment = getStringOption(\n attributes.dataEncipherment,\n options\n );\n this.decipherOnly = getStringOption(attributes.decipherOnly, options);\n this.digitalSignature = getStringOption(\n attributes.digitalSignature,\n options\n );\n this.encipherOnly = getStringOption(attributes.encipherOnly, options);\n this.id = attributes.id || \"\";\n this.keyAgreement = getStringOption(attributes.keyAgreement, options);\n this.keyCertSign = getStringOption(attributes.keyCertSign, options);\n this.keyEncipherment = getStringOption(attributes.keyEncipherment, options);\n this.nonRepudiation = getStringOption(attributes.nonRepudiation, options);\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Line extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"line\", /* hasChildren = */ true);\n this.hand = getStringOption(attributes.hand, [\"even\", \"left\", \"right\"]);\n this.id = attributes.id || \"\";\n this.slope = getStringOption(attributes.slope, [\"\\\\\", \"/\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.edge = null;\n }\n\n [$toHTML]() {\n const parent = this[$getParent]()[$getParent]();\n const edge = this.edge ? this.edge : new Edge({});\n const edgeStyle = edge[$toStyle]();\n const style = Object.create(null);\n const thickness = edge.presence === \"visible\" ? edge.thickness : 0;\n style.strokeWidth = measureToString(thickness);\n style.stroke = edgeStyle.color;\n let x1, y1, x2, y2;\n let width = \"100%\";\n let height = \"100%\";\n\n if (parent.w <= thickness) {\n [x1, y1, x2, y2] = [\"50%\", 0, \"50%\", \"100%\"];\n width = style.strokeWidth;\n } else if (parent.h <= thickness) {\n [x1, y1, x2, y2] = [0, \"50%\", \"100%\", \"50%\"];\n height = style.strokeWidth;\n } else {\n if (this.slope === \"\\\\\") {\n [x1, y1, x2, y2] = [0, 0, \"100%\", \"100%\"];\n } else {\n [x1, y1, x2, y2] = [0, \"100%\", \"100%\", 0];\n }\n }\n\n const line = {\n name: \"line\",\n attributes: {\n xmlns: SVG_NS,\n x1,\n y1,\n x2,\n y2,\n style,\n },\n };\n\n const svg = {\n name: \"svg\",\n children: [line],\n attributes: {\n xmlns: SVG_NS,\n width,\n height,\n style: {\n overflow: \"visible\",\n },\n },\n };\n\n if (hasMargin(parent)) {\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n style: {\n display: \"inline\",\n width: \"100%\",\n height: \"100%\",\n },\n },\n children: [svg],\n });\n }\n\n svg.attributes.style.position = \"absolute\";\n return HTMLResult.success(svg);\n }\n}\n\nclass Linear extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"linear\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\n \"toRight\",\n \"toBottom\",\n \"toLeft\",\n \"toTop\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle](startColor) {\n startColor = startColor ? startColor[$toStyle]() : \"#FFFFFF\";\n const transf = this.type.replace(/([RBLT])/, \" $1\").toLowerCase();\n const endColor = this.color ? this.color[$toStyle]() : \"#000000\";\n return `linear-gradient(${transf}, ${startColor}, ${endColor})`;\n }\n}\n\nclass LockDocument extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"lockDocument\");\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n this[$content] = getStringOption(this[$content], [\"auto\", \"0\", \"1\"]);\n }\n}\n\nclass Manifest extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"manifest\", /* hasChildren = */ true);\n this.action = getStringOption(attributes.action, [\n \"include\",\n \"all\",\n \"exclude\",\n ]);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.ref = new XFAObjectArray();\n }\n}\n\nclass Margin extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"margin\", /* hasChildren = */ true);\n this.bottomInset = getMeasurement(attributes.bottomInset, \"0\");\n this.id = attributes.id || \"\";\n this.leftInset = getMeasurement(attributes.leftInset, \"0\");\n this.rightInset = getMeasurement(attributes.rightInset, \"0\");\n this.topInset = getMeasurement(attributes.topInset, \"0\");\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n\n [$toStyle]() {\n return {\n margin:\n measureToString(this.topInset) +\n \" \" +\n measureToString(this.rightInset) +\n \" \" +\n measureToString(this.bottomInset) +\n \" \" +\n measureToString(this.leftInset),\n };\n }\n}\n\nclass Mdp extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"mdp\");\n this.id = attributes.id || \"\";\n this.permissions = getInteger({\n data: attributes.permissions,\n defaultValue: 2,\n validate: x => x === 1 || x === 3,\n });\n this.signatureType = getStringOption(attributes.signatureType, [\n \"filler\",\n \"author\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Medium extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"medium\");\n this.id = attributes.id || \"\";\n this.imagingBBox = getBBox(attributes.imagingBBox);\n this.long = getMeasurement(attributes.long);\n this.orientation = getStringOption(attributes.orientation, [\n \"portrait\",\n \"landscape\",\n ]);\n this.short = getMeasurement(attributes.short);\n this.stock = attributes.stock || \"\";\n this.trayIn = getStringOption(attributes.trayIn, [\n \"auto\",\n \"delegate\",\n \"pageFront\",\n ]);\n this.trayOut = getStringOption(attributes.trayOut, [\"auto\", \"delegate\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Message extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"message\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.text = new XFAObjectArray();\n }\n}\n\nclass NumericEdit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"numericEdit\", /* hasChildren = */ true);\n this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, [\n \"auto\",\n \"off\",\n \"on\",\n ]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.comb = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n const style = toStyle(this, \"border\", \"font\", \"margin\");\n const field = this[$getParent]()[$getParent]();\n const html = {\n name: \"input\",\n attributes: {\n type: \"text\",\n fieldId: field[$uid],\n dataId: (field[$data] && field[$data][$uid]) || field[$uid],\n class: [\"xfaTextfield\"],\n style,\n \"aria-label\": ariaLabel(field),\n },\n };\n\n return HTMLResult.success({\n name: \"label\",\n attributes: {\n class: [\"xfaLabel\"],\n },\n children: [html],\n });\n }\n}\n\nclass Occur extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"occur\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.initial =\n attributes.initial !== \"\"\n ? getInteger({\n data: attributes.initial,\n defaultValue: \"\",\n validate: x => true,\n })\n : \"\";\n this.max =\n attributes.max !== \"\"\n ? getInteger({\n data: attributes.max,\n defaultValue: 1,\n validate: x => true,\n })\n : \"\";\n this.min =\n attributes.min !== \"\"\n ? getInteger({\n data: attributes.min,\n defaultValue: 1,\n validate: x => true,\n })\n : \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n\n [$clean]() {\n const parent = this[$getParent]();\n const originalMin = this.min;\n\n if (this.min === \"\") {\n this.min =\n parent instanceof PageArea || parent instanceof PageSet ? 0 : 1;\n }\n if (this.max === \"\") {\n if (originalMin === \"\") {\n this.max =\n parent instanceof PageArea || parent instanceof PageSet ? -1 : 1;\n } else {\n this.max = this.min;\n }\n }\n\n if (this.max !== -1 && this.max < this.min) {\n this.max = this.min;\n }\n\n if (this.initial === \"\") {\n this.initial = parent instanceof Template ? 1 : this.min;\n }\n }\n}\n\nclass Oid extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"oid\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Oids extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"oids\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.oid = new XFAObjectArray();\n }\n}\n\nclass Overflow extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"overflow\");\n this.id = attributes.id || \"\";\n this.leader = attributes.leader || \"\";\n this.target = attributes.target || \"\";\n this.trailer = attributes.trailer || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$getExtra]() {\n if (!this[$extra]) {\n const parent = this[$getParent]();\n const root = this[$getTemplateRoot]();\n const target = root[$searchNode](this.target, parent);\n const leader = root[$searchNode](this.leader, parent);\n const trailer = root[$searchNode](this.trailer, parent);\n this[$extra] = {\n target: (target && target[0]) || null,\n leader: (leader && leader[0]) || null,\n trailer: (trailer && trailer[0]) || null,\n addLeader: false,\n addTrailer: false,\n };\n }\n return this[$extra];\n }\n}\n\nclass PageArea extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"pageArea\", /* hasChildren = */ true);\n this.blankOrNotBlank = getStringOption(attributes.blankOrNotBlank, [\n \"any\",\n \"blank\",\n \"notBlank\",\n ]);\n this.id = attributes.id || \"\";\n this.initialNumber = getInteger({\n data: attributes.initialNumber,\n defaultValue: 1,\n validate: x => true,\n });\n this.name = attributes.name || \"\";\n this.numbered = getInteger({\n data: attributes.numbered,\n defaultValue: 1,\n validate: x => true,\n });\n this.oddOrEven = getStringOption(attributes.oddOrEven, [\n \"any\",\n \"even\",\n \"odd\",\n ]);\n this.pagePosition = getStringOption(attributes.pagePosition, [\n \"any\",\n \"first\",\n \"last\",\n \"only\",\n \"rest\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.desc = null;\n this.extras = null;\n this.medium = null;\n this.occur = null;\n this.area = new XFAObjectArray();\n this.contentArea = new XFAObjectArray();\n this.draw = new XFAObjectArray();\n this.exclGroup = new XFAObjectArray();\n this.field = new XFAObjectArray();\n this.subform = new XFAObjectArray();\n }\n\n [$isUsable]() {\n if (!this[$extra]) {\n this[$extra] = {\n numberOfUse: 0,\n };\n return true;\n }\n return (\n !this.occur ||\n this.occur.max === -1 ||\n this[$extra].numberOfUse < this.occur.max\n );\n }\n\n [$cleanPage]() {\n delete this[$extra];\n }\n\n [$getNextPage]() {\n if (!this[$extra]) {\n this[$extra] = {\n numberOfUse: 0,\n };\n }\n\n const parent = this[$getParent]();\n if (parent.relation === \"orderedOccurrence\") {\n if (this[$isUsable]()) {\n this[$extra].numberOfUse += 1;\n return this;\n }\n }\n\n return parent[$getNextPage]();\n }\n\n [$getAvailableSpace]() {\n return this[$extra].space || { width: 0, height: 0 };\n }\n\n [$toHTML]() {\n // TODO: incomplete.\n if (!this[$extra]) {\n this[$extra] = {\n numberOfUse: 1,\n };\n }\n\n const children = [];\n this[$extra].children = children;\n\n const style = Object.create(null);\n if (this.medium && this.medium.short && this.medium.long) {\n style.width = measureToString(this.medium.short);\n style.height = measureToString(this.medium.long);\n this[$extra].space = {\n width: this.medium.short,\n height: this.medium.long,\n };\n if (this.medium.orientation === \"landscape\") {\n const x = style.width;\n style.width = style.height;\n style.height = x;\n this[$extra].space = {\n width: this.medium.long,\n height: this.medium.short,\n };\n }\n } else {\n warn(\"XFA - No medium specified in pageArea: please file a bug.\");\n }\n\n this[$childrenToHTML]({\n filter: new Set([\"area\", \"draw\", \"field\", \"subform\"]),\n include: true,\n });\n\n // contentarea must be the last container to be sure it is\n // on top of the others.\n this[$childrenToHTML]({\n filter: new Set([\"contentArea\"]),\n include: true,\n });\n\n return HTMLResult.success({\n name: \"div\",\n children,\n attributes: {\n class: [\"xfaPage\"],\n id: this[$uid],\n style,\n xfaName: this.name,\n },\n });\n }\n}\n\nclass PageSet extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"pageSet\", /* hasChildren = */ true);\n this.duplexImposition = getStringOption(attributes.duplexImposition, [\n \"longEdge\",\n \"shortEdge\",\n ]);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.relation = getStringOption(attributes.relation, [\n \"orderedOccurrence\",\n \"duplexPaginated\",\n \"simplexPaginated\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.occur = null;\n this.pageArea = new XFAObjectArray();\n this.pageSet = new XFAObjectArray();\n }\n\n [$cleanPage]() {\n for (const page of this.pageArea.children) {\n page[$cleanPage]();\n }\n for (const page of this.pageSet.children) {\n page[$cleanPage]();\n }\n }\n\n [$isUsable]() {\n return (\n !this.occur ||\n this.occur.max === -1 ||\n this[$extra].numberOfUse < this.occur.max\n );\n }\n\n [$getNextPage]() {\n if (!this[$extra]) {\n this[$extra] = {\n numberOfUse: 1,\n pageIndex: -1,\n pageSetIndex: -1,\n };\n }\n\n if (this.relation === \"orderedOccurrence\") {\n if (this[$extra].pageIndex + 1 < this.pageArea.children.length) {\n this[$extra].pageIndex += 1;\n const pageArea = this.pageArea.children[this[$extra].pageIndex];\n return pageArea[$getNextPage]();\n }\n\n if (this[$extra].pageSetIndex + 1 < this.pageSet.children.length) {\n this[$extra].pageSetIndex += 1;\n return this.pageSet.children[this[$extra].pageSetIndex][$getNextPage]();\n }\n\n if (this[$isUsable]()) {\n this[$extra].numberOfUse += 1;\n this[$extra].pageIndex = -1;\n this[$extra].pageSetIndex = -1;\n return this[$getNextPage]();\n }\n\n const parent = this[$getParent]();\n if (parent instanceof PageSet) {\n return parent[$getNextPage]();\n }\n\n this[$cleanPage]();\n return this[$getNextPage]();\n }\n const pageNumber = this[$getTemplateRoot]()[$extra].pageNumber;\n const parity = pageNumber % 2 === 0 ? \"even\" : \"odd\";\n const position = pageNumber === 0 ? \"first\" : \"rest\";\n\n let page = this.pageArea.children.find(\n p => p.oddOrEven === parity && p.pagePosition === position\n );\n if (page) {\n return page;\n }\n\n page = this.pageArea.children.find(\n p => p.oddOrEven === \"any\" && p.pagePosition === position\n );\n if (page) {\n return page;\n }\n\n page = this.pageArea.children.find(\n p => p.oddOrEven === \"any\" && p.pagePosition === \"any\"\n );\n if (page) {\n return page;\n }\n\n return this.pageArea.children[0];\n }\n}\n\nclass Para extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"para\", /* hasChildren = */ true);\n this.hAlign = getStringOption(attributes.hAlign, [\n \"left\",\n \"center\",\n \"justify\",\n \"justifyAll\",\n \"radix\",\n \"right\",\n ]);\n this.id = attributes.id || \"\";\n this.lineHeight = attributes.lineHeight\n ? getMeasurement(attributes.lineHeight, \"0pt\")\n : \"\";\n this.marginLeft = attributes.marginLeft\n ? getMeasurement(attributes.marginLeft, \"0pt\")\n : \"\";\n this.marginRight = attributes.marginRight\n ? getMeasurement(attributes.marginRight, \"0pt\")\n : \"\";\n this.orphans = getInteger({\n data: attributes.orphans,\n defaultValue: 0,\n validate: x => x >= 0,\n });\n this.preserve = attributes.preserve || \"\";\n this.radixOffset = attributes.radixOffset\n ? getMeasurement(attributes.radixOffset, \"0pt\")\n : \"\";\n this.spaceAbove = attributes.spaceAbove\n ? getMeasurement(attributes.spaceAbove, \"0pt\")\n : \"\";\n this.spaceBelow = attributes.spaceBelow\n ? getMeasurement(attributes.spaceBelow, \"0pt\")\n : \"\";\n this.tabDefault = attributes.tabDefault\n ? getMeasurement(this.tabDefault)\n : \"\";\n this.tabStops = (attributes.tabStops || \"\")\n .trim()\n .split(/\\s+/)\n .map((x, i) => (i % 2 === 1 ? getMeasurement(x) : x));\n this.textIndent = attributes.textIndent\n ? getMeasurement(attributes.textIndent, \"0pt\")\n : \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.vAlign = getStringOption(attributes.vAlign, [\n \"top\",\n \"bottom\",\n \"middle\",\n ]);\n this.widows = getInteger({\n data: attributes.widows,\n defaultValue: 0,\n validate: x => x >= 0,\n });\n this.hyphenation = null;\n }\n\n [$toStyle]() {\n const style = toStyle(this, \"hAlign\");\n if (this.marginLeft !== \"\") {\n style.paddingLeft = measureToString(this.marginLeft);\n }\n if (this.marginRight !== \"\") {\n style.paddingight = measureToString(this.marginRight);\n }\n if (this.spaceAbove !== \"\") {\n style.paddingTop = measureToString(this.spaceAbove);\n }\n if (this.spaceBelow !== \"\") {\n style.paddingBottom = measureToString(this.spaceBelow);\n }\n if (this.textIndent !== \"\") {\n style.textIndent = measureToString(this.textIndent);\n fixTextIndent(style);\n }\n\n if (this.lineHeight > 0) {\n style.lineHeight = measureToString(this.lineHeight);\n }\n\n if (this.tabDefault !== \"\") {\n style.tabSize = measureToString(this.tabDefault);\n }\n\n if (this.tabStops.length > 0) {\n // TODO\n }\n\n if (this.hyphenatation) {\n Object.assign(style, this.hyphenatation[$toStyle]());\n }\n\n return style;\n }\n}\n\nclass PasswordEdit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"passwordEdit\", /* hasChildren = */ true);\n this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, [\n \"auto\",\n \"off\",\n \"on\",\n ]);\n this.id = attributes.id || \"\";\n this.passwordChar = attributes.passwordChar || \"*\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.margin = null;\n }\n}\n\nclass Pattern extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"pattern\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\n \"crossHatch\",\n \"crossDiagonal\",\n \"diagonalLeft\",\n \"diagonalRight\",\n \"horizontal\",\n \"vertical\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle](startColor) {\n startColor = startColor ? startColor[$toStyle]() : \"#FFFFFF\";\n const endColor = this.color ? this.color[$toStyle]() : \"#000000\";\n const width = 5;\n const cmd = \"repeating-linear-gradient\";\n const colors = `${startColor},${startColor} ${width}px,${endColor} ${width}px,${endColor} ${\n 2 * width\n }px`;\n switch (this.type) {\n case \"crossHatch\":\n return `${cmd}(to top,${colors}) ${cmd}(to right,${colors})`;\n case \"crossDiagonal\":\n return `${cmd}(45deg,${colors}) ${cmd}(-45deg,${colors})`;\n case \"diagonalLeft\":\n return `${cmd}(45deg,${colors})`;\n case \"diagonalRight\":\n return `${cmd}(-45deg,${colors})`;\n case \"horizontal\":\n return `${cmd}(to top,${colors})`;\n case \"vertical\":\n return `${cmd}(to right,${colors})`;\n }\n\n return \"\";\n }\n}\n\nclass Picture extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"picture\");\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Proto extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"proto\", /* hasChildren = */ true);\n this.appearanceFilter = new XFAObjectArray();\n this.arc = new XFAObjectArray();\n this.area = new XFAObjectArray();\n this.assist = new XFAObjectArray();\n this.barcode = new XFAObjectArray();\n this.bindItems = new XFAObjectArray();\n this.bookend = new XFAObjectArray();\n this.boolean = new XFAObjectArray();\n this.border = new XFAObjectArray();\n this.break = new XFAObjectArray();\n this.breakAfter = new XFAObjectArray();\n this.breakBefore = new XFAObjectArray();\n this.button = new XFAObjectArray();\n this.calculate = new XFAObjectArray();\n this.caption = new XFAObjectArray();\n this.certificate = new XFAObjectArray();\n this.certificates = new XFAObjectArray();\n this.checkButton = new XFAObjectArray();\n this.choiceList = new XFAObjectArray();\n this.color = new XFAObjectArray();\n this.comb = new XFAObjectArray();\n this.connect = new XFAObjectArray();\n this.contentArea = new XFAObjectArray();\n this.corner = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.dateTimeEdit = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.defaultUi = new XFAObjectArray();\n this.desc = new XFAObjectArray();\n this.digestMethod = new XFAObjectArray();\n this.digestMethods = new XFAObjectArray();\n this.draw = new XFAObjectArray();\n this.edge = new XFAObjectArray();\n this.encoding = new XFAObjectArray();\n this.encodings = new XFAObjectArray();\n this.encrypt = new XFAObjectArray();\n this.encryptData = new XFAObjectArray();\n this.encryption = new XFAObjectArray();\n this.encryptionMethod = new XFAObjectArray();\n this.encryptionMethods = new XFAObjectArray();\n this.event = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.exObject = new XFAObjectArray();\n this.exclGroup = new XFAObjectArray();\n this.execute = new XFAObjectArray();\n this.extras = new XFAObjectArray();\n this.field = new XFAObjectArray();\n this.fill = new XFAObjectArray();\n this.filter = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.font = new XFAObjectArray();\n this.format = new XFAObjectArray();\n this.handler = new XFAObjectArray();\n this.hyphenation = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.imageEdit = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.issuers = new XFAObjectArray();\n this.items = new XFAObjectArray();\n this.keep = new XFAObjectArray();\n this.keyUsage = new XFAObjectArray();\n this.line = new XFAObjectArray();\n this.linear = new XFAObjectArray();\n this.lockDocument = new XFAObjectArray();\n this.manifest = new XFAObjectArray();\n this.margin = new XFAObjectArray();\n this.mdp = new XFAObjectArray();\n this.medium = new XFAObjectArray();\n this.message = new XFAObjectArray();\n this.numericEdit = new XFAObjectArray();\n this.occur = new XFAObjectArray();\n this.oid = new XFAObjectArray();\n this.oids = new XFAObjectArray();\n this.overflow = new XFAObjectArray();\n this.pageArea = new XFAObjectArray();\n this.pageSet = new XFAObjectArray();\n this.para = new XFAObjectArray();\n this.passwordEdit = new XFAObjectArray();\n this.pattern = new XFAObjectArray();\n this.picture = new XFAObjectArray();\n this.radial = new XFAObjectArray();\n this.reason = new XFAObjectArray();\n this.reasons = new XFAObjectArray();\n this.rectangle = new XFAObjectArray();\n this.ref = new XFAObjectArray();\n this.script = new XFAObjectArray();\n this.setProperty = new XFAObjectArray();\n this.signData = new XFAObjectArray();\n this.signature = new XFAObjectArray();\n this.signing = new XFAObjectArray();\n this.solid = new XFAObjectArray();\n this.speak = new XFAObjectArray();\n this.stipple = new XFAObjectArray();\n this.subform = new XFAObjectArray();\n this.subformSet = new XFAObjectArray();\n this.subjectDN = new XFAObjectArray();\n this.subjectDNs = new XFAObjectArray();\n this.submit = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.textEdit = new XFAObjectArray();\n this.time = new XFAObjectArray();\n this.timeStamp = new XFAObjectArray();\n this.toolTip = new XFAObjectArray();\n this.traversal = new XFAObjectArray();\n this.traverse = new XFAObjectArray();\n this.ui = new XFAObjectArray();\n this.validate = new XFAObjectArray();\n this.value = new XFAObjectArray();\n this.variables = new XFAObjectArray();\n }\n}\n\nclass Radial extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"radial\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"toEdge\", \"toCenter\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle](startColor) {\n startColor = startColor ? startColor[$toStyle]() : \"#FFFFFF\";\n const endColor = this.color ? this.color[$toStyle]() : \"#000000\";\n const colors =\n this.type === \"toEdge\"\n ? `${startColor},${endColor}`\n : `${endColor},${startColor}`;\n return `radial-gradient(circle at center, ${colors})`;\n }\n}\n\nclass Reason extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"reason\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Reasons extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"reasons\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.reason = new XFAObjectArray();\n }\n}\n\nclass Rectangle extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"rectangle\", /* hasChildren = */ true);\n this.hand = getStringOption(attributes.hand, [\"even\", \"left\", \"right\"]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.corner = new XFAObjectArray(4);\n this.edge = new XFAObjectArray(4);\n this.fill = null;\n }\n\n [$toHTML]() {\n const edge = this.edge.children.length\n ? this.edge.children[0]\n : new Edge({});\n const edgeStyle = edge[$toStyle]();\n const style = Object.create(null);\n if (this.fill && this.fill.presence === \"visible\") {\n Object.assign(style, this.fill[$toStyle]());\n } else {\n style.fill = \"transparent\";\n }\n style.strokeWidth = measureToString(\n edge.presence === \"visible\" ? edge.thickness : 0\n );\n style.stroke = edgeStyle.color;\n\n const corner = this.corner.children.length\n ? this.corner.children[0]\n : new Corner({});\n const cornerStyle = corner[$toStyle]();\n\n const rect = {\n name: \"rect\",\n attributes: {\n xmlns: SVG_NS,\n width: \"100%\",\n height: \"100%\",\n x: 0,\n y: 0,\n rx: cornerStyle.radius,\n ry: cornerStyle.radius,\n style,\n },\n };\n\n const svg = {\n name: \"svg\",\n children: [rect],\n attributes: {\n xmlns: SVG_NS,\n style: {\n overflow: \"visible\",\n },\n width: \"100%\",\n height: \"100%\",\n },\n };\n\n const parent = this[$getParent]()[$getParent]();\n if (hasMargin(parent)) {\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n style: {\n display: \"inline\",\n width: \"100%\",\n height: \"100%\",\n },\n },\n children: [svg],\n });\n }\n\n svg.attributes.style.position = \"absolute\";\n return HTMLResult.success(svg);\n }\n}\n\nclass RefElement extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"ref\");\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Script extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"script\");\n this.binding = attributes.binding || \"\";\n this.contentType = attributes.contentType || \"\";\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.runAt = getStringOption(attributes.runAt, [\n \"client\",\n \"both\",\n \"server\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass SetProperty extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"setProperty\");\n this.connection = attributes.connection || \"\";\n this.ref = attributes.ref || \"\";\n this.target = attributes.target || \"\";\n }\n}\n\nclass SignData extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"signData\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.operation = getStringOption(attributes.operation, [\n \"sign\",\n \"clear\",\n \"verify\",\n ]);\n this.ref = attributes.ref || \"\";\n this.target = attributes.target || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.filter = null;\n this.manifest = null;\n }\n}\n\nclass Signature extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"signature\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"PDF1.3\", \"PDF1.6\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.filter = null;\n this.manifest = null;\n this.margin = null;\n }\n}\n\nclass Signing extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"signing\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.certificate = new XFAObjectArray();\n }\n}\n\nclass Solid extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"solid\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n\n [$toStyle](startColor) {\n return startColor ? startColor[$toStyle]() : \"#FFFFFF\";\n }\n}\n\nclass Speak extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"speak\");\n this.disable = getInteger({\n data: attributes.disable,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.id = attributes.id || \"\";\n this.priority = getStringOption(attributes.priority, [\n \"custom\",\n \"caption\",\n \"name\",\n \"toolTip\",\n ]);\n this.rid = attributes.rid || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Stipple extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"stipple\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.rate = getInteger({\n data: attributes.rate,\n defaultValue: 50,\n validate: x => x >= 0 && x <= 100,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle](bgColor) {\n const alpha = this.rate / 100;\n return Util.makeHexColor(\n Math.round(bgColor.value.r * (1 - alpha) + this.value.r * alpha),\n Math.round(bgColor.value.g * (1 - alpha) + this.value.g * alpha),\n Math.round(bgColor.value.b * (1 - alpha) + this.value.b * alpha)\n );\n }\n}\n\nclass Subform extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"subform\", /* hasChildren = */ true);\n this.access = getStringOption(attributes.access, [\n \"open\",\n \"nonInteractive\",\n \"protected\",\n \"readOnly\",\n ]);\n this.allowMacro = getInteger({\n data: attributes.allowMacro,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.anchorType = getStringOption(attributes.anchorType, [\n \"topLeft\",\n \"bottomCenter\",\n \"bottomLeft\",\n \"bottomRight\",\n \"middleCenter\",\n \"middleLeft\",\n \"middleRight\",\n \"topCenter\",\n \"topRight\",\n ]);\n this.colSpan = getInteger({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: n => n >= 1 || n === -1,\n });\n this.columnWidths = (attributes.columnWidths || \"\")\n .trim()\n .split(/\\s+/)\n .map(x => (x === \"-1\" ? -1 : getMeasurement(x)));\n this.h = attributes.h ? getMeasurement(attributes.h) : \"\";\n this.hAlign = getStringOption(attributes.hAlign, [\n \"left\",\n \"center\",\n \"justify\",\n \"justifyAll\",\n \"radix\",\n \"right\",\n ]);\n this.id = attributes.id || \"\";\n this.layout = getStringOption(attributes.layout, [\n \"position\",\n \"lr-tb\",\n \"rl-row\",\n \"rl-tb\",\n \"row\",\n \"table\",\n \"tb\",\n ]);\n this.locale = attributes.locale || \"\";\n this.maxH = getMeasurement(attributes.maxH, \"0pt\");\n this.maxW = getMeasurement(attributes.maxW, \"0pt\");\n this.mergeMode = getStringOption(attributes.mergeMode, [\n \"consumeData\",\n \"matchTemplate\",\n ]);\n this.minH = getMeasurement(attributes.minH, \"0pt\");\n this.minW = getMeasurement(attributes.minW, \"0pt\");\n this.name = attributes.name || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.restoreState = getStringOption(attributes.restoreState, [\n \"manual\",\n \"auto\",\n ]);\n this.scope = getStringOption(attributes.scope, [\"name\", \"none\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = attributes.w ? getMeasurement(attributes.w) : \"\";\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.assist = null;\n this.bind = null;\n this.bookend = null;\n this.border = null;\n this.break = null;\n this.calculate = null;\n this.desc = null;\n this.extras = null;\n this.keep = null;\n this.margin = null;\n this.occur = null;\n this.overflow = null;\n this.pageSet = null;\n this.para = null;\n this.traversal = null;\n this.validate = null;\n this.variables = null;\n this.area = new XFAObjectArray();\n this.breakAfter = new XFAObjectArray();\n this.breakBefore = new XFAObjectArray();\n this.connect = new XFAObjectArray();\n this.draw = new XFAObjectArray();\n this.event = new XFAObjectArray();\n this.exObject = new XFAObjectArray();\n this.exclGroup = new XFAObjectArray();\n this.field = new XFAObjectArray();\n this.proto = new XFAObjectArray();\n this.setProperty = new XFAObjectArray();\n this.subform = new XFAObjectArray();\n this.subformSet = new XFAObjectArray();\n }\n\n [$getSubformParent]() {\n const parent = this[$getParent]();\n if (parent instanceof SubformSet) {\n return parent[$getSubformParent]();\n }\n return parent;\n }\n\n [$isBindable]() {\n return true;\n }\n\n [$isThereMoreWidth]() {\n return (\n (this.layout.endsWith(\"-tb\") &&\n this[$extra].attempt === 0 &&\n this[$extra].numberInLine > 0) ||\n this[$getParent]()[$isThereMoreWidth]()\n );\n }\n\n *[$getContainedChildren]() {\n // This function is overriden in order to fake that subforms under\n // this set are in fact under parent subform.\n yield* getContainedChildren(this);\n }\n\n [$flushHTML]() {\n return flushHTML(this);\n }\n\n [$addHTML](html, bbox) {\n addHTML(this, html, bbox);\n }\n\n [$getAvailableSpace]() {\n return getAvailableSpace(this);\n }\n\n [$isSplittable]() {\n // We cannot cache the result here because the contentArea\n // can change.\n const parent = this[$getSubformParent]();\n if (!parent[$isSplittable]()) {\n return false;\n }\n\n if (this[$extra]._isSplittable !== undefined) {\n return this[$extra]._isSplittable;\n }\n\n if (this.layout === \"position\" || this.layout.includes(\"row\")) {\n this[$extra]._isSplittable = false;\n return false;\n }\n\n if (this.keep && this.keep.intact !== \"none\") {\n this[$extra]._isSplittable = false;\n return false;\n }\n\n if (\n parent.layout &&\n parent.layout.endsWith(\"-tb\") &&\n parent[$extra].numberInLine !== 0\n ) {\n // If parent can fit in w=100 and there's already an element which takes\n // 90 then we've 10 for this element. Suppose this element has a tb layout\n // and 5 elements have a width of 7 and the 6th has a width of 20:\n // then this element (and all its content) must move on the next line.\n // If this element is splittable then the first 5 children will stay\n // at the end of the line: we don't want that.\n return false;\n }\n\n this[$extra]._isSplittable = true;\n\n return true;\n }\n\n [$toHTML](availableSpace) {\n setTabIndex(this);\n\n if (this.break) {\n // break element is deprecated so plug it on one of its replacement\n // breakBefore or breakAfter.\n if (this.break.after !== \"auto\" || this.break.afterTarget !== \"\") {\n const node = new BreakAfter({\n targetType: this.break.after,\n target: this.break.afterTarget,\n startNew: this.break.startNew.toString(),\n });\n node[$globalData] = this[$globalData];\n this[$appendChild](node);\n this.breakAfter.push(node);\n }\n\n if (this.break.before !== \"auto\" || this.break.beforeTarget !== \"\") {\n const node = new BreakBefore({\n targetType: this.break.before,\n target: this.break.beforeTarget,\n startNew: this.break.startNew.toString(),\n });\n node[$globalData] = this[$globalData];\n this[$appendChild](node);\n this.breakBefore.push(node);\n }\n\n if (this.break.overflowTarget !== \"\") {\n const node = new Overflow({\n target: this.break.overflowTarget,\n leader: this.break.overflowLeader,\n trailer: this.break.overflowTrailer,\n });\n node[$globalData] = this[$globalData];\n this[$appendChild](node);\n this.overflow.push(node);\n }\n\n this[$removeChild](this.break);\n this.break = null;\n }\n\n if (this.presence === \"hidden\" || this.presence === \"inactive\") {\n return HTMLResult.EMPTY;\n }\n\n if (\n this.breakBefore.children.length > 1 ||\n this.breakAfter.children.length > 1\n ) {\n // Specs are always talking about the breakBefore element\n // and it doesn't really make sense to have several ones.\n warn(\n \"XFA - Several breakBefore or breakAfter in subforms: please file a bug.\"\n );\n }\n\n if (this.breakBefore.children.length >= 1) {\n const breakBefore = this.breakBefore.children[0];\n if (handleBreak(breakBefore)) {\n return HTMLResult.breakNode(breakBefore);\n }\n }\n\n if (this[$extra] && this[$extra].afterBreakAfter) {\n return HTMLResult.EMPTY;\n }\n\n // TODO: incomplete.\n fixDimensions(this);\n const children = [];\n const attributes = {\n id: this[$uid],\n class: [],\n };\n\n setAccess(this, attributes.class);\n\n if (!this[$extra]) {\n this[$extra] = Object.create(null);\n }\n\n Object.assign(this[$extra], {\n children,\n line: null,\n attributes,\n attempt: 0,\n numberInLine: 0,\n availableSpace: {\n width: Math.min(this.w || Infinity, availableSpace.width),\n height: Math.min(this.h || Infinity, availableSpace.height),\n },\n width: 0,\n height: 0,\n prevHeight: 0,\n currentWidth: 0,\n });\n\n const root = this[$getTemplateRoot]();\n const savedNoLayoutFailure = root[$extra].noLayoutFailure;\n\n const isSplittable = this[$isSplittable]();\n if (!isSplittable) {\n setFirstUnsplittable(this);\n }\n\n if (!checkDimensions(this, availableSpace)) {\n return HTMLResult.FAILURE;\n }\n\n const filter = new Set([\n \"area\",\n \"draw\",\n \"exclGroup\",\n \"field\",\n \"subform\",\n \"subformSet\",\n ]);\n\n if (this.layout.includes(\"row\")) {\n const columnWidths = this[$getSubformParent]().columnWidths;\n if (Array.isArray(columnWidths) && columnWidths.length > 0) {\n this[$extra].columnWidths = columnWidths;\n this[$extra].currentColumn = 0;\n }\n }\n\n const style = toStyle(\n this,\n \"anchorType\",\n \"dimensions\",\n \"position\",\n \"presence\",\n \"border\",\n \"margin\",\n \"hAlign\"\n );\n const classNames = [\"xfaSubform\"];\n const cl = layoutClass(this);\n if (cl) {\n classNames.push(cl);\n }\n\n attributes.style = style;\n attributes.class = classNames;\n\n if (this.name) {\n attributes.xfaName = this.name;\n }\n\n if (this.overflow) {\n const overflowExtra = this.overflow[$getExtra]();\n if (overflowExtra.addLeader) {\n overflowExtra.addLeader = false;\n handleOverflow(this, overflowExtra.leader, availableSpace);\n }\n }\n\n this[$pushPara]();\n const isLrTb = this.layout === \"lr-tb\" || this.layout === \"rl-tb\";\n const maxRun = isLrTb ? MAX_ATTEMPTS_FOR_LRTB_LAYOUT : 1;\n for (; this[$extra].attempt < maxRun; this[$extra].attempt++) {\n if (isLrTb && this[$extra].attempt === MAX_ATTEMPTS_FOR_LRTB_LAYOUT - 1) {\n // If the layout is lr-tb then having attempt equals to\n // MAX_ATTEMPTS_FOR_LRTB_LAYOUT-1 means that we're trying to layout\n // on the next line so this on is empty.\n this[$extra].numberInLine = 0;\n }\n const result = this[$childrenToHTML]({\n filter,\n include: true,\n });\n if (result.success) {\n break;\n }\n if (result.isBreak()) {\n this[$popPara]();\n return result;\n }\n if (\n isLrTb &&\n this[$extra].attempt === 0 &&\n this[$extra].numberInLine === 0 &&\n !root[$extra].noLayoutFailure\n ) {\n // We're failing to put the first element on the line so no\n // need to test on the next line.\n // The goal is not only to avoid some useless checks but to avoid\n // bugs too: if a descendant managed to put a node and failed\n // on the next one, going to the next step here will imply to\n // visit the descendant again, clear [$extra].children and restart\n // on the failing node, consequently the first node just disappears\n // because it has never been flushed.\n this[$extra].attempt = maxRun;\n break;\n }\n }\n\n this[$popPara]();\n if (!isSplittable) {\n unsetFirstUnsplittable(this);\n }\n root[$extra].noLayoutFailure = savedNoLayoutFailure;\n\n if (this[$extra].attempt === maxRun) {\n if (this.overflow) {\n this[$getTemplateRoot]()[$extra].overflowNode = this.overflow;\n }\n\n if (!isSplittable) {\n // Since a new try will happen in a new container with maybe\n // new dimensions, we invalidate already layed out components.\n delete this[$extra];\n }\n return HTMLResult.FAILURE;\n }\n\n if (this.overflow) {\n const overflowExtra = this.overflow[$getExtra]();\n if (overflowExtra.addTrailer) {\n overflowExtra.addTrailer = false;\n handleOverflow(this, overflowExtra.trailer, availableSpace);\n }\n }\n\n let marginH = 0;\n let marginV = 0;\n if (this.margin) {\n marginH = this.margin.leftInset + this.margin.rightInset;\n marginV = this.margin.topInset + this.margin.bottomInset;\n }\n\n const width = Math.max(this[$extra].width + marginH, this.w || 0);\n const height = Math.max(this[$extra].height + marginV, this.h || 0);\n const bbox = [this.x, this.y, width, height];\n\n if (this.w === \"\") {\n style.width = measureToString(width);\n }\n if (this.h === \"\") {\n style.height = measureToString(height);\n }\n\n if (\n (style.width === \"0px\" || style.height === \"0px\") &&\n children.length === 0\n ) {\n return HTMLResult.EMPTY;\n }\n\n const html = {\n name: \"div\",\n attributes,\n children,\n };\n\n applyAssist(this, attributes);\n\n const result = HTMLResult.success(createWrapper(this, html), bbox);\n\n if (this.breakAfter.children.length >= 1) {\n const breakAfter = this.breakAfter.children[0];\n if (handleBreak(breakAfter)) {\n this[$extra].afterBreakAfter = result;\n return HTMLResult.breakNode(breakAfter);\n }\n }\n\n delete this[$extra];\n\n return result;\n }\n}\n\nclass SubformSet extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"subformSet\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.relation = getStringOption(attributes.relation, [\n \"ordered\",\n \"choice\",\n \"unordered\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.bookend = null;\n this.break = null;\n this.desc = null;\n this.extras = null;\n this.occur = null;\n this.overflow = null;\n this.breakAfter = new XFAObjectArray();\n this.breakBefore = new XFAObjectArray();\n this.subform = new XFAObjectArray();\n this.subformSet = new XFAObjectArray();\n\n // TODO: need to handle break stuff and relation.\n }\n\n *[$getContainedChildren]() {\n // This function is overriden in order to fake that subforms under\n // this set are in fact under parent subform.\n yield* getContainedChildren(this);\n }\n\n [$getSubformParent]() {\n let parent = this[$getParent]();\n while (!(parent instanceof Subform)) {\n parent = parent[$getParent]();\n }\n return parent;\n }\n\n [$isBindable]() {\n return true;\n }\n}\n\nclass SubjectDN extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"subjectDN\");\n this.delimiter = attributes.delimiter || \",\";\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n this[$content] = new Map(\n this[$content].split(this.delimiter).map(kv => {\n kv = kv.split(\"=\", 2);\n kv[0] = kv[0].trim();\n return kv;\n })\n );\n }\n}\n\nclass SubjectDNs extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"subjectDNs\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.subjectDN = new XFAObjectArray();\n }\n}\n\nclass Submit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"submit\", /* hasChildren = */ true);\n this.embedPDF = getInteger({\n data: attributes.embedPDF,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.format = getStringOption(attributes.format, [\n \"xdp\",\n \"formdata\",\n \"pdf\",\n \"urlencoded\",\n \"xfd\",\n \"xml\",\n ]);\n this.id = attributes.id || \"\";\n this.target = attributes.target || \"\";\n this.textEncoding = getKeyword({\n data: attributes.textEncoding\n ? attributes.textEncoding.toLowerCase()\n : \"\",\n defaultValue: \"\",\n validate: k =>\n [\n \"utf-8\",\n \"big-five\",\n \"fontspecific\",\n \"gbk\",\n \"gb-18030\",\n \"gb-2312\",\n \"ksc-5601\",\n \"none\",\n \"shift-jis\",\n \"ucs-2\",\n \"utf-16\",\n ].includes(k) || k.match(/iso-8859-\\d{2}/),\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.xdpContent = attributes.xdpContent || \"\";\n this.encrypt = null;\n this.encryptData = new XFAObjectArray();\n this.signData = new XFAObjectArray();\n }\n}\n\nclass Template extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"template\", /* hasChildren = */ true);\n this.baseProfile = getStringOption(attributes.baseProfile, [\n \"full\",\n \"interactiveForms\",\n ]);\n this.extras = null;\n\n // Spec is unclear:\n // A container element that describes a single subform capable of\n // enclosing other containers.\n // Can we have more than one subform ?\n this.subform = new XFAObjectArray();\n }\n\n [$finalize]() {\n if (this.subform.children.length === 0) {\n warn(\"XFA - No subforms in template node.\");\n }\n if (this.subform.children.length >= 2) {\n warn(\"XFA - Several subforms in template node: please file a bug.\");\n }\n this[$tabIndex] = DEFAULT_TAB_INDEX;\n }\n\n [$isSplittable]() {\n return true;\n }\n\n [$searchNode](expr, container) {\n if (expr.startsWith(\"#\")) {\n // This is an id.\n return [this[$ids].get(expr.slice(1))];\n }\n return searchNode(this, container, expr, true, true);\n }\n\n /**\n * This function is a generator because the conversion into\n * pages is done asynchronously and we want to save the state\n * of the function where we were in the previous iteration.\n */\n *[$toPages]() {\n if (!this.subform.children.length) {\n return HTMLResult.success({\n name: \"div\",\n children: [],\n });\n }\n this[$extra] = {\n overflowNode: null,\n firstUnsplittable: null,\n currentContentArea: null,\n currentPageArea: null,\n noLayoutFailure: false,\n pageNumber: 1,\n pagePosition: \"first\",\n oddOrEven: \"odd\",\n blankOrNotBlank: \"nonBlank\",\n paraStack: [],\n };\n\n const root = this.subform.children[0];\n root.pageSet[$cleanPage]();\n\n const pageAreas = root.pageSet.pageArea.children;\n const mainHtml = {\n name: \"div\",\n children: [],\n };\n\n let pageArea = null;\n let breakBefore = null;\n let breakBeforeTarget = null;\n if (root.breakBefore.children.length >= 1) {\n breakBefore = root.breakBefore.children[0];\n breakBeforeTarget = breakBefore.target;\n } else if (\n root.subform.children.length >= 1 &&\n root.subform.children[0].breakBefore.children.length >= 1\n ) {\n breakBefore = root.subform.children[0].breakBefore.children[0];\n breakBeforeTarget = breakBefore.target;\n } else if (root.break && root.break.beforeTarget) {\n breakBefore = root.break;\n breakBeforeTarget = breakBefore.beforeTarget;\n } else if (\n root.subform.children.length >= 1 &&\n root.subform.children[0].break &&\n root.subform.children[0].break.beforeTarget\n ) {\n breakBefore = root.subform.children[0].break;\n breakBeforeTarget = breakBefore.beforeTarget;\n }\n\n if (breakBefore) {\n const target = this[$searchNode](\n breakBeforeTarget,\n breakBefore[$getParent]()\n );\n if (target instanceof PageArea) {\n pageArea = target;\n // Consume breakBefore.\n breakBefore[$extra] = {};\n }\n }\n\n if (!pageArea) {\n pageArea = pageAreas[0];\n }\n\n pageArea[$extra] = {\n numberOfUse: 1,\n };\n\n const pageAreaParent = pageArea[$getParent]();\n pageAreaParent[$extra] = {\n numberOfUse: 1,\n pageIndex: pageAreaParent.pageArea.children.indexOf(pageArea),\n pageSetIndex: 0,\n };\n\n let targetPageArea;\n let leader = null;\n let trailer = null;\n let hasSomething = true;\n let hasSomethingCounter = 0;\n let startIndex = 0;\n\n while (true) {\n if (!hasSomething) {\n mainHtml.children.pop();\n // Nothing has been added in the previous page\n if (++hasSomethingCounter === MAX_EMPTY_PAGES) {\n warn(\"XFA - Something goes wrong: please file a bug.\");\n return mainHtml;\n }\n } else {\n hasSomethingCounter = 0;\n }\n\n targetPageArea = null;\n this[$extra].currentPageArea = pageArea;\n const page = pageArea[$toHTML]().html;\n mainHtml.children.push(page);\n\n if (leader) {\n this[$extra].noLayoutFailure = true;\n page.children.push(leader[$toHTML](pageArea[$extra].space).html);\n leader = null;\n }\n\n if (trailer) {\n this[$extra].noLayoutFailure = true;\n page.children.push(trailer[$toHTML](pageArea[$extra].space).html);\n trailer = null;\n }\n\n const contentAreas = pageArea.contentArea.children;\n const htmlContentAreas = page.children.filter(node =>\n node.attributes.class.includes(\"xfaContentarea\")\n );\n\n hasSomething = false;\n this[$extra].firstUnsplittable = null;\n this[$extra].noLayoutFailure = false;\n\n const flush = index => {\n const html = root[$flushHTML]();\n if (html) {\n hasSomething =\n hasSomething || (html.children && html.children.length !== 0);\n htmlContentAreas[index].children.push(html);\n }\n };\n\n for (let i = startIndex, ii = contentAreas.length; i < ii; i++) {\n const contentArea = (this[$extra].currentContentArea = contentAreas[i]);\n const space = { width: contentArea.w, height: contentArea.h };\n startIndex = 0;\n\n if (leader) {\n htmlContentAreas[i].children.push(leader[$toHTML](space).html);\n leader = null;\n }\n\n if (trailer) {\n htmlContentAreas[i].children.push(trailer[$toHTML](space).html);\n trailer = null;\n }\n\n const html = root[$toHTML](space);\n if (html.success) {\n if (html.html) {\n hasSomething =\n hasSomething ||\n (html.html.children && html.html.children.length !== 0);\n htmlContentAreas[i].children.push(html.html);\n } else if (!hasSomething && mainHtml.children.length > 1) {\n mainHtml.children.pop();\n }\n return mainHtml;\n }\n\n if (html.isBreak()) {\n const node = html.breakNode;\n flush(i);\n\n if (node.targetType === \"auto\") {\n continue;\n }\n\n if (node.leader) {\n leader = this[$searchNode](node.leader, node[$getParent]());\n leader = leader ? leader[0] : null;\n }\n\n if (node.trailer) {\n trailer = this[$searchNode](node.trailer, node[$getParent]());\n trailer = trailer ? trailer[0] : null;\n }\n\n if (node.targetType === \"pageArea\") {\n targetPageArea = node[$extra].target;\n i = Infinity;\n } else if (!node[$extra].target) {\n // We stay on the same page.\n i = node[$extra].index;\n } else {\n targetPageArea = node[$extra].target;\n startIndex = node[$extra].index + 1;\n i = Infinity;\n }\n\n continue;\n }\n\n if (this[$extra].overflowNode) {\n const node = this[$extra].overflowNode;\n this[$extra].overflowNode = null;\n\n const overflowExtra = node[$getExtra]();\n const target = overflowExtra.target;\n overflowExtra.addLeader = overflowExtra.leader !== null;\n overflowExtra.addTrailer = overflowExtra.trailer !== null;\n\n flush(i);\n\n const currentIndex = i;\n\n i = Infinity;\n if (target instanceof PageArea) {\n // We must stop the contentAreas filling and go to the next page.\n targetPageArea = target;\n } else if (target instanceof ContentArea) {\n const index = contentAreas.findIndex(e => e === target);\n if (index !== -1) {\n if (index > currentIndex) {\n // In the next loop iteration `i` will be incremented, note the\n // `continue` just below, hence we need to subtract one here.\n i = index - 1;\n } else {\n // The targetted contentArea has already been filled\n // so create a new page.\n startIndex = index;\n }\n } else {\n targetPageArea = target[$getParent]();\n startIndex = targetPageArea.contentArea.children.findIndex(\n e => e === target\n );\n }\n }\n continue;\n }\n\n flush(i);\n }\n\n this[$extra].pageNumber += 1;\n if (targetPageArea) {\n if (targetPageArea[$isUsable]()) {\n targetPageArea[$extra].numberOfUse += 1;\n } else {\n targetPageArea = null;\n }\n }\n pageArea = targetPageArea || pageArea[$getNextPage]();\n yield null;\n }\n }\n}\n\nclass Text extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"text\");\n this.id = attributes.id || \"\";\n this.maxChars = getInteger({\n data: attributes.maxChars,\n defaultValue: 0,\n validate: x => x >= 0,\n });\n this.name = attributes.name || \"\";\n this.rid = attributes.rid || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$acceptWhitespace]() {\n return true;\n }\n\n [$onChild](child) {\n if (child[$namespaceId] === NamespaceIds.xhtml.id) {\n this[$content] = child;\n return true;\n }\n warn(`XFA - Invalid content in Text: ${child[$nodeName]}.`);\n return false;\n }\n\n [$onText](str) {\n if (this[$content] instanceof XFAObject) {\n return;\n }\n super[$onText](str);\n }\n\n [$finalize]() {\n if (typeof this[$content] === \"string\") {\n this[$content] = this[$content].replace(/\\r\\n/g, \"\\n\");\n }\n }\n\n [$getExtra]() {\n if (typeof this[$content] === \"string\") {\n return this[$content]\n .split(/[\\u2029\\u2028\\n]/)\n .reduce((acc, line) => {\n if (line) {\n acc.push(line);\n }\n return acc;\n }, [])\n .join(\"\\n\");\n }\n return this[$content][$text]();\n }\n\n [$toHTML](availableSpace) {\n if (typeof this[$content] === \"string\") {\n // \\u2028 is a line separator.\n // \\u2029 is a paragraph separator.\n const html = valueToHtml(this[$content]).html;\n\n if (this[$content].includes(\"\\u2029\")) {\n // We've plain text containing a paragraph separator\n // so convert it into a set of

.\n html.name = \"div\";\n html.children = [];\n this[$content]\n .split(\"\\u2029\")\n .map(para =>\n // Convert a paragraph into a set of (for lines)\n // separated by
.\n para.split(/[\\u2028\\n]/).reduce((acc, line) => {\n acc.push(\n {\n name: \"span\",\n value: line,\n },\n {\n name: \"br\",\n }\n );\n return acc;\n }, [])\n )\n .forEach(lines => {\n html.children.push({\n name: \"p\",\n children: lines,\n });\n });\n } else if (/[\\u2028\\n]/.test(this[$content])) {\n html.name = \"div\";\n html.children = [];\n // Convert plain text into a set of (for lines)\n // separated by
.\n this[$content].split(/[\\u2028\\n]/).forEach(line => {\n html.children.push(\n {\n name: \"span\",\n value: line,\n },\n {\n name: \"br\",\n }\n );\n });\n }\n\n return HTMLResult.success(html);\n }\n\n return this[$content][$toHTML](availableSpace);\n }\n}\n\nclass TextEdit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"textEdit\", /* hasChildren = */ true);\n this.allowRichText = getInteger({\n data: attributes.allowRichText,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, [\n \"auto\",\n \"off\",\n \"on\",\n ]);\n this.id = attributes.id || \"\";\n this.multiLine = getInteger({\n data: attributes.multiLine,\n defaultValue: \"\",\n validate: x => x === 0 || x === 1,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.vScrollPolicy = getStringOption(attributes.vScrollPolicy, [\n \"auto\",\n \"off\",\n \"on\",\n ]);\n this.border = null;\n this.comb = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n const style = toStyle(this, \"border\", \"font\", \"margin\");\n let html;\n const field = this[$getParent]()[$getParent]();\n if (this.multiLine === \"\") {\n this.multiLine = field instanceof Draw ? 1 : 0;\n }\n if (this.multiLine === 1) {\n html = {\n name: \"textarea\",\n attributes: {\n dataId: (field[$data] && field[$data][$uid]) || field[$uid],\n fieldId: field[$uid],\n class: [\"xfaTextfield\"],\n style,\n \"aria-label\": ariaLabel(field),\n },\n };\n } else {\n html = {\n name: \"input\",\n attributes: {\n type: \"text\",\n dataId: (field[$data] && field[$data][$uid]) || field[$uid],\n fieldId: field[$uid],\n class: [\"xfaTextfield\"],\n style,\n \"aria-label\": ariaLabel(field),\n },\n };\n }\n\n return HTMLResult.success({\n name: \"label\",\n attributes: {\n class: [\"xfaLabel\"],\n },\n children: [html],\n });\n }\n}\n\nclass Time extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"time\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n // TODO: need to handle the string as a time and not as a date.\n const date = this[$content].trim();\n this[$content] = date ? new Date(date) : null;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(this[$content] ? this[$content].toString() : \"\");\n }\n}\n\nclass TimeStamp extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"timeStamp\");\n this.id = attributes.id || \"\";\n this.server = attributes.server || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass ToolTip extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"toolTip\");\n this.id = attributes.id || \"\";\n this.rid = attributes.rid || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Traversal extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"traversal\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.traverse = new XFAObjectArray();\n }\n}\n\nclass Traverse extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"traverse\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.operation = getStringOption(attributes.operation, [\n \"next\",\n \"back\",\n \"down\",\n \"first\",\n \"left\",\n \"right\",\n \"up\",\n ]);\n this.ref = attributes.ref || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.script = null;\n }\n\n get name() {\n // SOM expression: see page 94\n return this.operation;\n }\n\n [$isTransparent]() {\n return false;\n }\n}\n\nclass Ui extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"ui\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.picture = null;\n\n // One-of properties\n this.barcode = null;\n this.button = null;\n this.checkButton = null;\n this.choiceList = null;\n this.dateTimeEdit = null;\n this.defaultUi = null;\n this.imageEdit = null;\n this.numericEdit = null;\n this.passwordEdit = null;\n this.signature = null;\n this.textEdit = null;\n }\n\n [$getExtra]() {\n if (this[$extra] === undefined) {\n for (const name of Object.getOwnPropertyNames(this)) {\n if (name === \"extras\" || name === \"picture\") {\n continue;\n }\n const obj = this[name];\n if (!(obj instanceof XFAObject)) {\n continue;\n }\n\n this[$extra] = obj;\n return obj;\n }\n this[$extra] = null;\n }\n return this[$extra];\n }\n\n [$toHTML](availableSpace) {\n // TODO: picture.\n const obj = this[$getExtra]();\n if (obj) {\n return obj[$toHTML](availableSpace);\n }\n return HTMLResult.EMPTY;\n }\n}\n\nclass Validate extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"validate\", /* hasChildren = */ true);\n this.formatTest = getStringOption(attributes.formatTest, [\n \"warning\",\n \"disabled\",\n \"error\",\n ]);\n this.id = attributes.id || \"\";\n this.nullTest = getStringOption(attributes.nullTest, [\n \"disabled\",\n \"error\",\n \"warning\",\n ]);\n this.scriptTest = getStringOption(attributes.scriptTest, [\n \"error\",\n \"disabled\",\n \"warning\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.message = null;\n this.picture = null;\n this.script = null;\n }\n}\n\nclass Value extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"value\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.override = getInteger({\n data: attributes.override,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n\n // One-of properties\n this.arc = null;\n this.boolean = null;\n this.date = null;\n this.dateTime = null;\n this.decimal = null;\n this.exData = null;\n this.float = null;\n this.image = null;\n this.integer = null;\n this.line = null;\n this.rectangle = null;\n this.text = null;\n this.time = null;\n }\n\n [$setValue](value) {\n const parent = this[$getParent]();\n if (parent instanceof Field) {\n if (parent.ui && parent.ui.imageEdit) {\n if (!this.image) {\n this.image = new Image({});\n this[$appendChild](this.image);\n }\n this.image[$content] = value[$content];\n return;\n }\n }\n\n const valueName = value[$nodeName];\n if (this[valueName] !== null) {\n this[valueName][$content] = value[$content];\n return;\n }\n\n // Reset all the properties.\n for (const name of Object.getOwnPropertyNames(this)) {\n const obj = this[name];\n if (obj instanceof XFAObject) {\n this[name] = null;\n this[$removeChild](obj);\n }\n }\n\n this[value[$nodeName]] = value;\n this[$appendChild](value);\n }\n\n [$text]() {\n if (this.exData) {\n if (typeof this.exData[$content] === \"string\") {\n return this.exData[$content].trim();\n }\n return this.exData[$content][$text]().trim();\n }\n for (const name of Object.getOwnPropertyNames(this)) {\n if (name === \"image\") {\n continue;\n }\n const obj = this[name];\n if (obj instanceof XFAObject) {\n return (obj[$content] || \"\").toString().trim();\n }\n }\n return null;\n }\n\n [$toHTML](availableSpace) {\n for (const name of Object.getOwnPropertyNames(this)) {\n const obj = this[name];\n if (!(obj instanceof XFAObject)) {\n continue;\n }\n\n return obj[$toHTML](availableSpace);\n }\n\n return HTMLResult.EMPTY;\n }\n}\n\nclass Variables extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"variables\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.boolean = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.manifest = new XFAObjectArray();\n this.script = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.time = new XFAObjectArray();\n }\n\n [$isTransparent]() {\n return true;\n }\n}\n\nclass TemplateNamespace {\n static [$buildXFAObject](name, attributes) {\n if (TemplateNamespace.hasOwnProperty(name)) {\n const node = TemplateNamespace[name](attributes);\n node[$setSetAttributes](attributes);\n return node;\n }\n return undefined;\n }\n\n static appearanceFilter(attrs) {\n return new AppearanceFilter(attrs);\n }\n\n static arc(attrs) {\n return new Arc(attrs);\n }\n\n static area(attrs) {\n return new Area(attrs);\n }\n\n static assist(attrs) {\n return new Assist(attrs);\n }\n\n static barcode(attrs) {\n return new Barcode(attrs);\n }\n\n static bind(attrs) {\n return new Bind(attrs);\n }\n\n static bindItems(attrs) {\n return new BindItems(attrs);\n }\n\n static bookend(attrs) {\n return new Bookend(attrs);\n }\n\n static boolean(attrs) {\n return new BooleanElement(attrs);\n }\n\n static border(attrs) {\n return new Border(attrs);\n }\n\n static break(attrs) {\n return new Break(attrs);\n }\n\n static breakAfter(attrs) {\n return new BreakAfter(attrs);\n }\n\n static breakBefore(attrs) {\n return new BreakBefore(attrs);\n }\n\n static button(attrs) {\n return new Button(attrs);\n }\n\n static calculate(attrs) {\n return new Calculate(attrs);\n }\n\n static caption(attrs) {\n return new Caption(attrs);\n }\n\n static certificate(attrs) {\n return new Certificate(attrs);\n }\n\n static certificates(attrs) {\n return new Certificates(attrs);\n }\n\n static checkButton(attrs) {\n return new CheckButton(attrs);\n }\n\n static choiceList(attrs) {\n return new ChoiceList(attrs);\n }\n\n static color(attrs) {\n return new Color(attrs);\n }\n\n static comb(attrs) {\n return new Comb(attrs);\n }\n\n static connect(attrs) {\n return new Connect(attrs);\n }\n\n static contentArea(attrs) {\n return new ContentArea(attrs);\n }\n\n static corner(attrs) {\n return new Corner(attrs);\n }\n\n static date(attrs) {\n return new DateElement(attrs);\n }\n\n static dateTime(attrs) {\n return new DateTime(attrs);\n }\n\n static dateTimeEdit(attrs) {\n return new DateTimeEdit(attrs);\n }\n\n static decimal(attrs) {\n return new Decimal(attrs);\n }\n\n static defaultUi(attrs) {\n return new DefaultUi(attrs);\n }\n\n static desc(attrs) {\n return new Desc(attrs);\n }\n\n static digestMethod(attrs) {\n return new DigestMethod(attrs);\n }\n\n static digestMethods(attrs) {\n return new DigestMethods(attrs);\n }\n\n static draw(attrs) {\n return new Draw(attrs);\n }\n\n static edge(attrs) {\n return new Edge(attrs);\n }\n\n static encoding(attrs) {\n return new Encoding(attrs);\n }\n\n static encodings(attrs) {\n return new Encodings(attrs);\n }\n\n static encrypt(attrs) {\n return new Encrypt(attrs);\n }\n\n static encryptData(attrs) {\n return new EncryptData(attrs);\n }\n\n static encryption(attrs) {\n return new Encryption(attrs);\n }\n\n static encryptionMethod(attrs) {\n return new EncryptionMethod(attrs);\n }\n\n static encryptionMethods(attrs) {\n return new EncryptionMethods(attrs);\n }\n\n static event(attrs) {\n return new Event(attrs);\n }\n\n static exData(attrs) {\n return new ExData(attrs);\n }\n\n static exObject(attrs) {\n return new ExObject(attrs);\n }\n\n static exclGroup(attrs) {\n return new ExclGroup(attrs);\n }\n\n static execute(attrs) {\n return new Execute(attrs);\n }\n\n static extras(attrs) {\n return new Extras(attrs);\n }\n\n static field(attrs) {\n return new Field(attrs);\n }\n\n static fill(attrs) {\n return new Fill(attrs);\n }\n\n static filter(attrs) {\n return new Filter(attrs);\n }\n\n static float(attrs) {\n return new Float(attrs);\n }\n\n static font(attrs) {\n return new Font(attrs);\n }\n\n static format(attrs) {\n return new Format(attrs);\n }\n\n static handler(attrs) {\n return new Handler(attrs);\n }\n\n static hyphenation(attrs) {\n return new Hyphenation(attrs);\n }\n\n static image(attrs) {\n return new Image(attrs);\n }\n\n static imageEdit(attrs) {\n return new ImageEdit(attrs);\n }\n\n static integer(attrs) {\n return new Integer(attrs);\n }\n\n static issuers(attrs) {\n return new Issuers(attrs);\n }\n\n static items(attrs) {\n return new Items(attrs);\n }\n\n static keep(attrs) {\n return new Keep(attrs);\n }\n\n static keyUsage(attrs) {\n return new KeyUsage(attrs);\n }\n\n static line(attrs) {\n return new Line(attrs);\n }\n\n static linear(attrs) {\n return new Linear(attrs);\n }\n\n static lockDocument(attrs) {\n return new LockDocument(attrs);\n }\n\n static manifest(attrs) {\n return new Manifest(attrs);\n }\n\n static margin(attrs) {\n return new Margin(attrs);\n }\n\n static mdp(attrs) {\n return new Mdp(attrs);\n }\n\n static medium(attrs) {\n return new Medium(attrs);\n }\n\n static message(attrs) {\n return new Message(attrs);\n }\n\n static numericEdit(attrs) {\n return new NumericEdit(attrs);\n }\n\n static occur(attrs) {\n return new Occur(attrs);\n }\n\n static oid(attrs) {\n return new Oid(attrs);\n }\n\n static oids(attrs) {\n return new Oids(attrs);\n }\n\n static overflow(attrs) {\n return new Overflow(attrs);\n }\n\n static pageArea(attrs) {\n return new PageArea(attrs);\n }\n\n static pageSet(attrs) {\n return new PageSet(attrs);\n }\n\n static para(attrs) {\n return new Para(attrs);\n }\n\n static passwordEdit(attrs) {\n return new PasswordEdit(attrs);\n }\n\n static pattern(attrs) {\n return new Pattern(attrs);\n }\n\n static picture(attrs) {\n return new Picture(attrs);\n }\n\n static proto(attrs) {\n return new Proto(attrs);\n }\n\n static radial(attrs) {\n return new Radial(attrs);\n }\n\n static reason(attrs) {\n return new Reason(attrs);\n }\n\n static reasons(attrs) {\n return new Reasons(attrs);\n }\n\n static rectangle(attrs) {\n return new Rectangle(attrs);\n }\n\n static ref(attrs) {\n return new RefElement(attrs);\n }\n\n static script(attrs) {\n return new Script(attrs);\n }\n\n static setProperty(attrs) {\n return new SetProperty(attrs);\n }\n\n static signData(attrs) {\n return new SignData(attrs);\n }\n\n static signature(attrs) {\n return new Signature(attrs);\n }\n\n static signing(attrs) {\n return new Signing(attrs);\n }\n\n static solid(attrs) {\n return new Solid(attrs);\n }\n\n static speak(attrs) {\n return new Speak(attrs);\n }\n\n static stipple(attrs) {\n return new Stipple(attrs);\n }\n\n static subform(attrs) {\n return new Subform(attrs);\n }\n\n static subformSet(attrs) {\n return new SubformSet(attrs);\n }\n\n static subjectDN(attrs) {\n return new SubjectDN(attrs);\n }\n\n static subjectDNs(attrs) {\n return new SubjectDNs(attrs);\n }\n\n static submit(attrs) {\n return new Submit(attrs);\n }\n\n static template(attrs) {\n return new Template(attrs);\n }\n\n static text(attrs) {\n return new Text(attrs);\n }\n\n static textEdit(attrs) {\n return new TextEdit(attrs);\n }\n\n static time(attrs) {\n return new Time(attrs);\n }\n\n static timeStamp(attrs) {\n return new TimeStamp(attrs);\n }\n\n static toolTip(attrs) {\n return new ToolTip(attrs);\n }\n\n static traversal(attrs) {\n return new Traversal(attrs);\n }\n\n static traverse(attrs) {\n return new Traverse(attrs);\n }\n\n static ui(attrs) {\n return new Ui(attrs);\n }\n\n static validate(attrs) {\n return new Validate(attrs);\n }\n\n static value(attrs) {\n return new Value(attrs);\n }\n\n static variables(attrs) {\n return new Variables(attrs);\n }\n}\n\nexport {\n BindItems,\n Field,\n Items,\n SetProperty,\n Template,\n TemplateNamespace,\n Text,\n Value,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $extra,\n $flushHTML,\n $getSubformParent,\n $getTemplateRoot,\n $isSplittable,\n $isThereMoreWidth,\n} from \"./xfa_object.js\";\nimport { measureToString } from \"./html_utils.js\";\n\n// Subform and ExclGroup have a layout so they share these functions.\n\n/**\n * How layout works ?\n *\n * A container has an initial space (with a width and a height) to fit in,\n * which means that once all the children have been added then\n * the total width/height must be lower than the given ones in\n * the initial space.\n * So if the container has known dimensions and these ones are ok with the\n * space then continue else we return HTMLResult.FAILURE: it's up to the\n * parent to deal with this failure (e.g. if parent layout is lr-tb and\n * we fail to add a child at end of line (lr) then we try to add it on the\n * next line).\n * And then we run through the children, each child gets its initial space\n * in calling its parent $getAvailableSpace method\n * (see _filteredChildrenGenerator and $childrenToHTML in xfa_object.js)\n * then we try to layout child in its space. If everything is ok then we add\n * the result to its parent through $addHTML which will recompute the available\n * space in parent according to its layout property else we return\n * HTMLResult.Failure.\n * Before a failure some children may have been layed out: they've been saved in\n * [$extra].children and [$extra] has properties generator and failingNode\n * in order to save the state where we were before a failure.\n * This [$extra].children property is useful when a container has to be splited.\n * So if a container is unbreakable, we must delete its [$extra] property before\n * returning.\n */\n\nfunction createLine(node, children) {\n return {\n name: \"div\",\n attributes: {\n class: [node.layout === \"lr-tb\" ? \"xfaLr\" : \"xfaRl\"],\n },\n children,\n };\n}\n\nfunction flushHTML(node) {\n if (!node[$extra]) {\n return null;\n }\n\n const attributes = node[$extra].attributes;\n const html = {\n name: \"div\",\n attributes,\n children: node[$extra].children,\n };\n\n if (node[$extra].failingNode) {\n const htmlFromFailing = node[$extra].failingNode[$flushHTML]();\n if (htmlFromFailing) {\n if (node.layout.endsWith(\"-tb\")) {\n html.children.push(createLine(node, [htmlFromFailing]));\n } else {\n html.children.push(htmlFromFailing);\n }\n }\n }\n\n if (html.children.length === 0) {\n return null;\n }\n\n return html;\n}\n\nfunction addHTML(node, html, bbox) {\n const extra = node[$extra];\n const availableSpace = extra.availableSpace;\n\n const [x, y, w, h] = bbox;\n switch (node.layout) {\n case \"position\": {\n extra.width = Math.max(extra.width, x + w);\n extra.height = Math.max(extra.height, y + h);\n extra.children.push(html);\n break;\n }\n case \"lr-tb\":\n case \"rl-tb\":\n if (!extra.line || extra.attempt === 1) {\n extra.line = createLine(node, []);\n extra.children.push(extra.line);\n extra.numberInLine = 0;\n }\n\n extra.numberInLine += 1;\n extra.line.children.push(html);\n\n if (extra.attempt === 0) {\n // Add the element on the line\n extra.currentWidth += w;\n extra.height = Math.max(extra.height, extra.prevHeight + h);\n } else {\n extra.currentWidth = w;\n extra.prevHeight = extra.height;\n extra.height += h;\n\n // The element has been added on a new line so switch to line mode now.\n extra.attempt = 0;\n }\n extra.width = Math.max(extra.width, extra.currentWidth);\n break;\n case \"rl-row\":\n case \"row\": {\n extra.children.push(html);\n extra.width += w;\n extra.height = Math.max(extra.height, h);\n const height = measureToString(extra.height);\n for (const child of extra.children) {\n child.attributes.style.height = height;\n }\n break;\n }\n case \"table\": {\n extra.width = Math.min(availableSpace.width, Math.max(extra.width, w));\n extra.height += h;\n extra.children.push(html);\n break;\n }\n case \"tb\": {\n // Even if the subform can possibly take all the available width,\n // we must compute the final width as it is in order to be able\n // for example to center the subform within its parent.\n extra.width = Math.min(availableSpace.width, Math.max(extra.width, w));\n extra.height += h;\n extra.children.push(html);\n break;\n }\n }\n}\n\nfunction getAvailableSpace(node) {\n const availableSpace = node[$extra].availableSpace;\n const marginV = node.margin\n ? node.margin.topInset + node.margin.bottomInset\n : 0;\n const marginH = node.margin\n ? node.margin.leftInset + node.margin.rightInset\n : 0;\n\n switch (node.layout) {\n case \"lr-tb\":\n case \"rl-tb\":\n if (node[$extra].attempt === 0) {\n return {\n width: availableSpace.width - marginH - node[$extra].currentWidth,\n height: availableSpace.height - marginV - node[$extra].prevHeight,\n };\n }\n return {\n width: availableSpace.width - marginH,\n height: availableSpace.height - marginV - node[$extra].height,\n };\n case \"rl-row\":\n case \"row\":\n const width = node[$extra].columnWidths\n .slice(node[$extra].currentColumn)\n .reduce((a, x) => a + x);\n return { width, height: availableSpace.height - marginH };\n case \"table\":\n case \"tb\":\n return {\n width: availableSpace.width - marginH,\n height: availableSpace.height - marginV - node[$extra].height,\n };\n case \"position\":\n default:\n return availableSpace;\n }\n}\n\nfunction getTransformedBBox(node) {\n // Take into account rotation and anchor to get the real bounding box.\n let w = node.w === \"\" ? NaN : node.w;\n let h = node.h === \"\" ? NaN : node.h;\n let [centerX, centerY] = [0, 0];\n switch (node.anchorType || \"\") {\n case \"bottomCenter\":\n [centerX, centerY] = [w / 2, h];\n break;\n case \"bottomLeft\":\n [centerX, centerY] = [0, h];\n break;\n case \"bottomRight\":\n [centerX, centerY] = [w, h];\n break;\n case \"middleCenter\":\n [centerX, centerY] = [w / 2, h / 2];\n break;\n case \"middleLeft\":\n [centerX, centerY] = [0, h / 2];\n break;\n case \"middleRight\":\n [centerX, centerY] = [w, h / 2];\n break;\n case \"topCenter\":\n [centerX, centerY] = [w / 2, 0];\n break;\n case \"topRight\":\n [centerX, centerY] = [w, 0];\n break;\n }\n\n let x, y;\n switch (node.rotate || 0) {\n case 0:\n [x, y] = [-centerX, -centerY];\n break;\n case 90:\n [x, y] = [-centerY, centerX];\n [w, h] = [h, -w];\n break;\n case 180:\n [x, y] = [centerX, centerY];\n [w, h] = [-w, -h];\n break;\n case 270:\n [x, y] = [centerY, -centerX];\n [w, h] = [-h, w];\n break;\n }\n\n return [\n node.x + x + Math.min(0, w),\n node.y + y + Math.min(0, h),\n Math.abs(w),\n Math.abs(h),\n ];\n}\n\n/**\n * Returning true means that the node will be layed out\n * else the layout will go to its next step (changing of line\n * in case of lr-tb or changing content area...).\n */\nfunction checkDimensions(node, space) {\n if (node[$getTemplateRoot]()[$extra].firstUnsplittable === null) {\n return true;\n }\n\n if (node.w === 0 || node.h === 0) {\n return true;\n }\n\n const ERROR = 2;\n const parent = node[$getSubformParent]();\n const attempt = (parent[$extra] && parent[$extra].attempt) || 0;\n\n const [, y, w, h] = getTransformedBBox(node);\n switch (parent.layout) {\n case \"lr-tb\":\n case \"rl-tb\":\n if (attempt === 0) {\n // Try to put an element in the line.\n\n if (!node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n if (node.h !== \"\" && Math.round(h - space.height) > ERROR) {\n // Not enough height.\n return false;\n }\n\n if (node.w !== \"\") {\n if (Math.round(w - space.width) <= ERROR) {\n return true;\n }\n if (parent[$extra].numberInLine === 0) {\n return space.height > ERROR;\n }\n\n return false;\n }\n\n return space.width > ERROR;\n }\n\n // No layout failure.\n\n // Put the element on the line but we can fail\n // and then in the second step (next line) we'll accept.\n if (node.w !== \"\") {\n return Math.round(w - space.width) <= ERROR;\n }\n\n return space.width > ERROR;\n }\n\n // Second attempt: try to put the element on the next line.\n\n if (node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n // We cannot fail.\n return true;\n }\n\n if (node.h !== \"\" && Math.round(h - space.height) > ERROR) {\n return false;\n }\n\n if (node.w === \"\" || Math.round(w - space.width) <= ERROR) {\n return space.height > ERROR;\n }\n\n if (parent[$isThereMoreWidth]()) {\n return false;\n }\n\n return space.height > ERROR;\n case \"table\":\n case \"tb\":\n if (node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n return true;\n }\n\n // If the node has a height then check if it's fine with available height.\n // If the node is breakable then we can return true.\n if (node.h !== \"\" && !node[$isSplittable]()) {\n return Math.round(h - space.height) <= ERROR;\n }\n // Else wait and see: this node will be layed out itself\n // in the provided space and maybe a children won't fit.\n\n if (node.w === \"\" || Math.round(w - space.width) <= ERROR) {\n return space.height > ERROR;\n }\n\n if (parent[$isThereMoreWidth]()) {\n return false;\n }\n\n return space.height > ERROR;\n case \"position\":\n if (node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n return true;\n }\n\n if (node.h === \"\" || Math.round(h + y - space.height) <= ERROR) {\n return true;\n }\n\n const area = node[$getTemplateRoot]()[$extra].currentContentArea;\n return h + y > area.h;\n case \"rl-row\":\n case \"row\":\n if (node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n return true;\n }\n\n if (node.h !== \"\") {\n return Math.round(h - space.height) <= ERROR;\n }\n return true;\n default:\n // No layout, so accept everything.\n return true;\n }\n}\n\nexport { addHTML, checkDimensions, flushHTML, getAvailableSpace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $content,\n $extra,\n $getParent,\n $getSubformParent,\n $getTemplateRoot,\n $globalData,\n $nodeName,\n $pushGlyphs,\n $text,\n $toStyle,\n XFAObject,\n} from \"./xfa_object.js\";\nimport { createValidAbsoluteUrl, warn } from \"../../shared/util.js\";\nimport { getMeasurement, stripQuotes } from \"./utils.js\";\nimport { selectFont } from \"./fonts.js\";\nimport { TextMeasure } from \"./text.js\";\n\nfunction measureToString(m) {\n if (typeof m === \"string\") {\n return \"0px\";\n }\n\n return Number.isInteger(m) ? `${m}px` : `${m.toFixed(2)}px`;\n}\n\nconst converters = {\n anchorType(node, style) {\n const parent = node[$getSubformParent]();\n if (!parent || (parent.layout && parent.layout !== \"position\")) {\n // anchorType is only used in a positioned layout.\n return;\n }\n\n if (!(\"transform\" in style)) {\n style.transform = \"\";\n }\n switch (node.anchorType) {\n case \"bottomCenter\":\n style.transform += \"translate(-50%, -100%)\";\n break;\n case \"bottomLeft\":\n style.transform += \"translate(0,-100%)\";\n break;\n case \"bottomRight\":\n style.transform += \"translate(-100%,-100%)\";\n break;\n case \"middleCenter\":\n style.transform += \"translate(-50%,-50%)\";\n break;\n case \"middleLeft\":\n style.transform += \"translate(0,-50%)\";\n break;\n case \"middleRight\":\n style.transform += \"translate(-100%,-50%)\";\n break;\n case \"topCenter\":\n style.transform += \"translate(-50%,0)\";\n break;\n case \"topRight\":\n style.transform += \"translate(-100%,0)\";\n break;\n }\n },\n dimensions(node, style) {\n const parent = node[$getSubformParent]();\n let width = node.w;\n const height = node.h;\n if (parent.layout && parent.layout.includes(\"row\")) {\n const extra = parent[$extra];\n const colSpan = node.colSpan;\n let w;\n if (colSpan === -1) {\n w = extra.columnWidths\n .slice(extra.currentColumn)\n .reduce((a, x) => a + x, 0);\n extra.currentColumn = 0;\n } else {\n w = extra.columnWidths\n .slice(extra.currentColumn, extra.currentColumn + colSpan)\n .reduce((a, x) => a + x, 0);\n extra.currentColumn =\n (extra.currentColumn + node.colSpan) % extra.columnWidths.length;\n }\n\n if (!isNaN(w)) {\n width = node.w = w;\n }\n }\n\n if (width !== \"\") {\n style.width = measureToString(width);\n } else {\n style.width = \"auto\";\n }\n\n if (height !== \"\") {\n style.height = measureToString(height);\n } else {\n style.height = \"auto\";\n }\n },\n position(node, style) {\n const parent = node[$getSubformParent]();\n if (parent && parent.layout && parent.layout !== \"position\") {\n // IRL, we've some x/y in tb layout.\n // Specs say x/y is only used in positioned layout.\n return;\n }\n\n style.position = \"absolute\";\n style.left = measureToString(node.x);\n style.top = measureToString(node.y);\n },\n rotate(node, style) {\n if (node.rotate) {\n if (!(\"transform\" in style)) {\n style.transform = \"\";\n }\n style.transform += `rotate(-${node.rotate}deg)`;\n style.transformOrigin = \"top left\";\n }\n },\n presence(node, style) {\n switch (node.presence) {\n case \"invisible\":\n style.visibility = \"hidden\";\n break;\n case \"hidden\":\n case \"inactive\":\n style.display = \"none\";\n break;\n }\n },\n hAlign(node, style) {\n if (node[$nodeName] === \"para\") {\n switch (node.hAlign) {\n case \"justifyAll\":\n style.textAlign = \"justify-all\";\n break;\n case \"radix\":\n // TODO: implement this correctly !\n style.textAlign = \"left\";\n break;\n default:\n style.textAlign = node.hAlign;\n }\n } else {\n switch (node.hAlign) {\n case \"left\":\n style.alignSelf = \"start\";\n break;\n case \"center\":\n style.alignSelf = \"center\";\n break;\n case \"right\":\n style.alignSelf = \"end\";\n break;\n }\n }\n },\n margin(node, style) {\n if (node.margin) {\n style.margin = node.margin[$toStyle]().margin;\n }\n },\n};\n\nfunction setMinMaxDimensions(node, style) {\n const parent = node[$getSubformParent]();\n if (parent.layout === \"position\") {\n if (node.minW > 0) {\n style.minWidth = measureToString(node.minW);\n }\n if (node.maxW > 0) {\n style.maxWidth = measureToString(node.maxW);\n }\n if (node.minH > 0) {\n style.minHeight = measureToString(node.minH);\n }\n if (node.maxH > 0) {\n style.maxHeight = measureToString(node.maxH);\n }\n }\n}\n\nfunction layoutText(text, xfaFont, margin, lineHeight, fontFinder, width) {\n const measure = new TextMeasure(xfaFont, margin, lineHeight, fontFinder);\n if (typeof text === \"string\") {\n measure.addString(text);\n } else {\n text[$pushGlyphs](measure);\n }\n\n return measure.compute(width);\n}\n\nfunction layoutNode(node, availableSpace) {\n let height = null;\n let width = null;\n let isBroken = false;\n\n if ((!node.w || !node.h) && node.value) {\n let marginH = 0;\n let marginV = 0;\n if (node.margin) {\n marginH = node.margin.leftInset + node.margin.rightInset;\n marginV = node.margin.topInset + node.margin.bottomInset;\n }\n\n let lineHeight = null;\n let margin = null;\n if (node.para) {\n margin = Object.create(null);\n lineHeight = node.para.lineHeight === \"\" ? null : node.para.lineHeight;\n margin.top = node.para.spaceAbove === \"\" ? 0 : node.para.spaceAbove;\n margin.bottom = node.para.spaceBelow === \"\" ? 0 : node.para.spaceBelow;\n margin.left = node.para.marginLeft === \"\" ? 0 : node.para.marginLeft;\n margin.right = node.para.marginRight === \"\" ? 0 : node.para.marginRight;\n }\n\n let font = node.font;\n if (!font) {\n const root = node[$getTemplateRoot]();\n let parent = node[$getParent]();\n while (parent && parent !== root) {\n if (parent.font) {\n font = parent.font;\n break;\n }\n parent = parent[$getParent]();\n }\n }\n\n const maxWidth = (!node.w ? availableSpace.width : node.w) - marginH;\n const fontFinder = node[$globalData].fontFinder;\n if (\n node.value.exData &&\n node.value.exData[$content] &&\n node.value.exData.contentType === \"text/html\"\n ) {\n const res = layoutText(\n node.value.exData[$content],\n font,\n margin,\n lineHeight,\n fontFinder,\n maxWidth\n );\n width = res.width;\n height = res.height;\n isBroken = res.isBroken;\n } else {\n const text = node.value[$text]();\n if (text) {\n const res = layoutText(\n text,\n font,\n margin,\n lineHeight,\n fontFinder,\n maxWidth\n );\n width = res.width;\n height = res.height;\n isBroken = res.isBroken;\n }\n }\n\n if (width !== null && !node.w) {\n width += marginH;\n }\n\n if (height !== null && !node.h) {\n height += marginV;\n }\n }\n return { w: width, h: height, isBroken };\n}\n\nfunction computeBbox(node, html, availableSpace) {\n let bbox;\n if (node.w !== \"\" && node.h !== \"\") {\n bbox = [node.x, node.y, node.w, node.h];\n } else {\n if (!availableSpace) {\n return null;\n }\n let width = node.w;\n if (width === \"\") {\n if (node.maxW === 0) {\n const parent = node[$getSubformParent]();\n if (parent.layout === \"position\" && parent.w !== \"\") {\n width = 0;\n } else {\n width = node.minW;\n }\n } else {\n width = Math.min(node.maxW, availableSpace.width);\n }\n html.attributes.style.width = measureToString(width);\n }\n\n let height = node.h;\n if (height === \"\") {\n if (node.maxH === 0) {\n const parent = node[$getSubformParent]();\n if (parent.layout === \"position\" && parent.h !== \"\") {\n height = 0;\n } else {\n height = node.minH;\n }\n } else {\n height = Math.min(node.maxH, availableSpace.height);\n }\n html.attributes.style.height = measureToString(height);\n }\n\n bbox = [node.x, node.y, width, height];\n }\n return bbox;\n}\n\nfunction fixDimensions(node) {\n const parent = node[$getSubformParent]();\n if (parent.layout && parent.layout.includes(\"row\")) {\n const extra = parent[$extra];\n const colSpan = node.colSpan;\n let width;\n if (colSpan === -1) {\n width = extra.columnWidths\n .slice(extra.currentColumn)\n .reduce((a, w) => a + w, 0);\n } else {\n width = extra.columnWidths\n .slice(extra.currentColumn, extra.currentColumn + colSpan)\n .reduce((a, w) => a + w, 0);\n }\n if (!isNaN(width)) {\n node.w = width;\n }\n }\n\n if (parent.layout && parent.layout !== \"position\") {\n // Useless in this context.\n node.x = node.y = 0;\n }\n\n if (node.layout === \"table\") {\n if (node.w === \"\" && Array.isArray(node.columnWidths)) {\n node.w = node.columnWidths.reduce((a, x) => a + x, 0);\n }\n }\n}\n\nfunction layoutClass(node) {\n switch (node.layout) {\n case \"position\":\n return \"xfaPosition\";\n case \"lr-tb\":\n return \"xfaLrTb\";\n case \"rl-row\":\n return \"xfaRlRow\";\n case \"rl-tb\":\n return \"xfaRlTb\";\n case \"row\":\n return \"xfaRow\";\n case \"table\":\n return \"xfaTable\";\n case \"tb\":\n return \"xfaTb\";\n default:\n return \"xfaPosition\";\n }\n}\n\nfunction toStyle(node, ...names) {\n const style = Object.create(null);\n for (const name of names) {\n const value = node[name];\n if (value === null) {\n continue;\n }\n if (converters.hasOwnProperty(name)) {\n converters[name](node, style);\n continue;\n }\n\n if (value instanceof XFAObject) {\n const newStyle = value[$toStyle]();\n if (newStyle) {\n Object.assign(style, newStyle);\n } else {\n warn(`(DEBUG) - XFA - style for ${name} not implemented yet`);\n }\n }\n }\n return style;\n}\n\nfunction createWrapper(node, html) {\n const { attributes } = html;\n const { style } = attributes;\n\n const wrapper = {\n name: \"div\",\n attributes: {\n class: [\"xfaWrapper\"],\n style: Object.create(null),\n },\n children: [],\n };\n\n attributes.class.push(\"xfaWrapped\");\n\n if (node.border) {\n const { widths, insets } = node.border[$extra];\n let width, height;\n let top = insets[0];\n let left = insets[3];\n const insetsH = insets[0] + insets[2];\n const insetsW = insets[1] + insets[3];\n switch (node.border.hand) {\n case \"even\":\n top -= widths[0] / 2;\n left -= widths[3] / 2;\n width = `calc(100% + ${(widths[1] + widths[3]) / 2 - insetsW}px)`;\n height = `calc(100% + ${(widths[0] + widths[2]) / 2 - insetsH}px)`;\n break;\n case \"left\":\n top -= widths[0];\n left -= widths[3];\n width = `calc(100% + ${widths[1] + widths[3] - insetsW}px)`;\n height = `calc(100% + ${widths[0] + widths[2] - insetsH}px)`;\n break;\n case \"right\":\n width = insetsW ? `calc(100% - ${insetsW}px)` : \"100%\";\n height = insetsH ? `calc(100% - ${insetsH}px)` : \"100%\";\n break;\n }\n const classNames = [\"xfaBorder\"];\n if (isPrintOnly(node.border)) {\n classNames.push(\"xfaPrintOnly\");\n }\n\n const border = {\n name: \"div\",\n attributes: {\n class: classNames,\n style: {\n top: `${top}px`,\n left: `${left}px`,\n width,\n height,\n },\n },\n children: [],\n };\n\n for (const key of [\n \"border\",\n \"borderWidth\",\n \"borderColor\",\n \"borderRadius\",\n \"borderStyle\",\n ]) {\n if (style[key] !== undefined) {\n border.attributes.style[key] = style[key];\n delete style[key];\n }\n }\n wrapper.children.push(border, html);\n } else {\n wrapper.children.push(html);\n }\n\n for (const key of [\n \"background\",\n \"backgroundClip\",\n \"top\",\n \"left\",\n \"width\",\n \"height\",\n \"minWidth\",\n \"minHeight\",\n \"maxWidth\",\n \"maxHeight\",\n \"transform\",\n \"transformOrigin\",\n \"visibility\",\n ]) {\n if (style[key] !== undefined) {\n wrapper.attributes.style[key] = style[key];\n delete style[key];\n }\n }\n\n if (style.position === \"absolute\") {\n wrapper.attributes.style.position = \"absolute\";\n } else {\n wrapper.attributes.style.position = \"relative\";\n }\n delete style.position;\n\n if (style.alignSelf) {\n wrapper.attributes.style.alignSelf = style.alignSelf;\n delete style.alignSelf;\n }\n\n return wrapper;\n}\n\nfunction fixTextIndent(styles) {\n const indent = getMeasurement(styles.textIndent, \"0px\");\n if (indent >= 0) {\n return;\n }\n\n // If indent is negative then it's a hanging indent.\n const align = styles.textAlign === \"right\" ? \"right\" : \"left\";\n const name = \"padding\" + (align === \"left\" ? \"Left\" : \"Right\");\n const padding = getMeasurement(styles[name], \"0px\");\n styles[name] = `${padding - indent}px`;\n}\n\nfunction setAccess(node, classNames) {\n switch (node.access) {\n case \"nonInteractive\":\n classNames.push(\"xfaNonInteractive\");\n break;\n case \"readOnly\":\n classNames.push(\"xfaReadOnly\");\n break;\n case \"protected\":\n classNames.push(\"xfaDisabled\");\n break;\n }\n}\n\nfunction isPrintOnly(node) {\n return (\n node.relevant.length > 0 &&\n !node.relevant[0].excluded &&\n node.relevant[0].viewname === \"print\"\n );\n}\n\nfunction getCurrentPara(node) {\n const stack = node[$getTemplateRoot]()[$extra].paraStack;\n return stack.length ? stack[stack.length - 1] : null;\n}\n\nfunction setPara(node, nodeStyle, value) {\n if (value.attributes.class && value.attributes.class.includes(\"xfaRich\")) {\n if (nodeStyle) {\n if (node.h === \"\") {\n nodeStyle.height = \"auto\";\n }\n if (node.w === \"\") {\n nodeStyle.width = \"auto\";\n }\n }\n\n const para = getCurrentPara(node);\n if (para) {\n // By definition exData are external data so para\n // has no effect on it.\n const valueStyle = value.attributes.style;\n valueStyle.display = \"flex\";\n valueStyle.flexDirection = \"column\";\n switch (para.vAlign) {\n case \"top\":\n valueStyle.justifyContent = \"start\";\n break;\n case \"bottom\":\n valueStyle.justifyContent = \"end\";\n break;\n case \"middle\":\n valueStyle.justifyContent = \"center\";\n break;\n }\n\n const paraStyle = para[$toStyle]();\n for (const [key, val] of Object.entries(paraStyle)) {\n if (!(key in valueStyle)) {\n valueStyle[key] = val;\n }\n }\n }\n }\n}\n\nfunction setFontFamily(xfaFont, node, fontFinder, style) {\n if (!fontFinder) {\n // The font cannot be found in the pdf so use the default one.\n delete style.fontFamily;\n return;\n }\n\n const name = stripQuotes(xfaFont.typeface);\n style.fontFamily = `\"${name}\"`;\n\n const typeface = fontFinder.find(name);\n if (typeface) {\n const { fontFamily } = typeface.regular.cssFontInfo;\n if (fontFamily !== name) {\n style.fontFamily = `\"${fontFamily}\"`;\n }\n\n const para = getCurrentPara(node);\n if (para && para.lineHeight !== \"\") {\n return;\n }\n\n if (style.lineHeight) {\n // Already something so don't overwrite.\n return;\n }\n\n const pdfFont = selectFont(xfaFont, typeface);\n if (pdfFont) {\n style.lineHeight = Math.max(1.2, pdfFont.lineHeight);\n }\n }\n}\n\nfunction fixURL(str) {\n const absoluteUrl = createValidAbsoluteUrl(str, /* baseUrl = */ null, {\n addDefaultProtocol: true,\n tryConvertEncoding: true,\n });\n return absoluteUrl ? absoluteUrl.href : null;\n}\n\nexport {\n computeBbox,\n createWrapper,\n fixDimensions,\n fixTextIndent,\n fixURL,\n isPrintOnly,\n layoutClass,\n layoutNode,\n measureToString,\n setAccess,\n setFontFamily,\n setMinMaxDimensions,\n setPara,\n toStyle,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $globalData } from \"./xfa_object.js\";\nimport { stripQuotes } from \"./utils.js\";\nimport { warn } from \"../../shared/util.js\";\n\nclass FontFinder {\n constructor(pdfFonts) {\n this.fonts = new Map();\n this.cache = new Map();\n this.warned = new Set();\n this.defaultFont = null;\n this.add(pdfFonts);\n }\n\n add(pdfFonts, reallyMissingFonts = null) {\n for (const pdfFont of pdfFonts) {\n this.addPdfFont(pdfFont);\n }\n for (const pdfFont of this.fonts.values()) {\n if (!pdfFont.regular) {\n pdfFont.regular = pdfFont.italic || pdfFont.bold || pdfFont.bolditalic;\n }\n }\n\n if (!reallyMissingFonts || reallyMissingFonts.size === 0) {\n return;\n }\n const myriad = this.fonts.get(\"PdfJS-Fallback-PdfJS-XFA\");\n for (const missing of reallyMissingFonts) {\n this.fonts.set(missing, myriad);\n }\n }\n\n addPdfFont(pdfFont) {\n const cssFontInfo = pdfFont.cssFontInfo;\n const name = cssFontInfo.fontFamily;\n let font = this.fonts.get(name);\n if (!font) {\n font = Object.create(null);\n this.fonts.set(name, font);\n if (!this.defaultFont) {\n this.defaultFont = font;\n }\n }\n let property = \"\";\n const fontWeight = parseFloat(cssFontInfo.fontWeight);\n if (parseFloat(cssFontInfo.italicAngle) !== 0) {\n property = fontWeight >= 700 ? \"bolditalic\" : \"italic\";\n } else if (fontWeight >= 700) {\n property = \"bold\";\n }\n\n if (!property) {\n if (\n pdfFont.name.includes(\"Bold\") ||\n (pdfFont.psName && pdfFont.psName.includes(\"Bold\"))\n ) {\n property = \"bold\";\n }\n if (\n pdfFont.name.includes(\"Italic\") ||\n pdfFont.name.endsWith(\"It\") ||\n (pdfFont.psName &&\n (pdfFont.psName.includes(\"Italic\") || pdfFont.psName.endsWith(\"It\")))\n ) {\n property += \"italic\";\n }\n }\n\n if (!property) {\n property = \"regular\";\n }\n\n font[property] = pdfFont;\n }\n\n getDefault() {\n return this.defaultFont;\n }\n\n find(fontName, mustWarn = true) {\n let font = this.fonts.get(fontName) || this.cache.get(fontName);\n if (font) {\n return font;\n }\n\n const pattern = /,|-|_| |bolditalic|bold|italic|regular|it/gi;\n let name = fontName.replace(pattern, \"\");\n font = this.fonts.get(name);\n if (font) {\n this.cache.set(fontName, font);\n return font;\n }\n name = name.toLowerCase();\n\n const maybe = [];\n for (const [family, pdfFont] of this.fonts.entries()) {\n if (family.replace(pattern, \"\").toLowerCase().startsWith(name)) {\n maybe.push(pdfFont);\n }\n }\n\n if (maybe.length === 0) {\n for (const [, pdfFont] of this.fonts.entries()) {\n if (\n pdfFont.regular.name &&\n pdfFont.regular.name\n .replace(pattern, \"\")\n .toLowerCase()\n .startsWith(name)\n ) {\n maybe.push(pdfFont);\n }\n }\n }\n\n if (maybe.length === 0) {\n name = name.replace(/psmt|mt/gi, \"\");\n for (const [family, pdfFont] of this.fonts.entries()) {\n if (family.replace(pattern, \"\").toLowerCase().startsWith(name)) {\n maybe.push(pdfFont);\n }\n }\n }\n\n if (maybe.length === 0) {\n for (const pdfFont of this.fonts.values()) {\n if (\n pdfFont.regular.name &&\n pdfFont.regular.name\n .replace(pattern, \"\")\n .toLowerCase()\n .startsWith(name)\n ) {\n maybe.push(pdfFont);\n }\n }\n }\n\n if (maybe.length >= 1) {\n if (maybe.length !== 1 && mustWarn) {\n warn(`XFA - Too many choices to guess the correct font: ${fontName}`);\n }\n this.cache.set(fontName, maybe[0]);\n return maybe[0];\n }\n\n if (mustWarn && !this.warned.has(fontName)) {\n this.warned.add(fontName);\n warn(`XFA - Cannot find the font: ${fontName}`);\n }\n return null;\n }\n}\n\nfunction selectFont(xfaFont, typeface) {\n if (xfaFont.posture === \"italic\") {\n if (xfaFont.weight === \"bold\") {\n return typeface.bolditalic;\n }\n return typeface.italic;\n } else if (xfaFont.weight === \"bold\") {\n return typeface.bold;\n }\n\n return typeface.regular;\n}\n\nfunction getMetrics(xfaFont, real = false) {\n let pdfFont = null;\n if (xfaFont) {\n const name = stripQuotes(xfaFont.typeface);\n const typeface = xfaFont[$globalData].fontFinder.find(name);\n pdfFont = selectFont(xfaFont, typeface);\n }\n\n if (!pdfFont) {\n return {\n lineHeight: 12,\n lineGap: 2,\n lineNoGap: 10,\n };\n }\n\n const size = xfaFont.size || 10;\n const lineHeight = pdfFont.lineHeight\n ? Math.max(real ? 0 : 1.2, pdfFont.lineHeight)\n : 1.2;\n const lineGap = pdfFont.lineGap === undefined ? 0.2 : pdfFont.lineGap;\n return {\n lineHeight: lineHeight * size,\n lineGap: lineGap * size,\n lineNoGap: Math.max(1, lineHeight - lineGap) * size,\n };\n}\n\nexport { FontFinder, getMetrics, selectFont };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { selectFont } from \"./fonts.js\";\n\nconst WIDTH_FACTOR = 1.02;\n\nclass FontInfo {\n constructor(xfaFont, margin, lineHeight, fontFinder) {\n this.lineHeight = lineHeight;\n this.paraMargin = margin || {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n };\n\n if (!xfaFont) {\n [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder);\n return;\n }\n\n this.xfaFont = {\n typeface: xfaFont.typeface,\n posture: xfaFont.posture,\n weight: xfaFont.weight,\n size: xfaFont.size,\n letterSpacing: xfaFont.letterSpacing,\n };\n const typeface = fontFinder.find(xfaFont.typeface);\n if (!typeface) {\n [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder);\n return;\n }\n\n this.pdfFont = selectFont(xfaFont, typeface);\n\n if (!this.pdfFont) {\n [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder);\n }\n }\n\n defaultFont(fontFinder) {\n // TODO: Add a default font based on Liberation.\n const font =\n fontFinder.find(\"Helvetica\", false) ||\n fontFinder.find(\"Myriad Pro\", false) ||\n fontFinder.find(\"Arial\", false) ||\n fontFinder.getDefault();\n if (font && font.regular) {\n const pdfFont = font.regular;\n const info = pdfFont.cssFontInfo;\n const xfaFont = {\n typeface: info.fontFamily,\n posture: \"normal\",\n weight: \"normal\",\n size: 10,\n letterSpacing: 0,\n };\n return [pdfFont, xfaFont];\n }\n\n const xfaFont = {\n typeface: \"Courier\",\n posture: \"normal\",\n weight: \"normal\",\n size: 10,\n letterSpacing: 0,\n };\n return [null, xfaFont];\n }\n}\n\nclass FontSelector {\n constructor(\n defaultXfaFont,\n defaultParaMargin,\n defaultLineHeight,\n fontFinder\n ) {\n this.fontFinder = fontFinder;\n this.stack = [\n new FontInfo(\n defaultXfaFont,\n defaultParaMargin,\n defaultLineHeight,\n fontFinder\n ),\n ];\n }\n\n pushData(xfaFont, margin, lineHeight) {\n const lastFont = this.stack[this.stack.length - 1];\n for (const name of [\n \"typeface\",\n \"posture\",\n \"weight\",\n \"size\",\n \"letterSpacing\",\n ]) {\n if (!xfaFont[name]) {\n xfaFont[name] = lastFont.xfaFont[name];\n }\n }\n\n for (const name of [\"top\", \"bottom\", \"left\", \"right\"]) {\n if (isNaN(margin[name])) {\n margin[name] = lastFont.paraMargin[name];\n }\n }\n\n const fontInfo = new FontInfo(\n xfaFont,\n margin,\n lineHeight || lastFont.lineHeight,\n this.fontFinder\n );\n if (!fontInfo.pdfFont) {\n fontInfo.pdfFont = lastFont.pdfFont;\n }\n\n this.stack.push(fontInfo);\n }\n\n popFont() {\n this.stack.pop();\n }\n\n topFont() {\n return this.stack[this.stack.length - 1];\n }\n}\n\n/**\n * Compute a text area dimensions based on font metrics.\n */\nclass TextMeasure {\n constructor(defaultXfaFont, defaultParaMargin, defaultLineHeight, fonts) {\n this.glyphs = [];\n this.fontSelector = new FontSelector(\n defaultXfaFont,\n defaultParaMargin,\n defaultLineHeight,\n fonts\n );\n this.extraHeight = 0;\n }\n\n pushData(xfaFont, margin, lineHeight) {\n this.fontSelector.pushData(xfaFont, margin, lineHeight);\n }\n\n popFont(xfaFont) {\n return this.fontSelector.popFont();\n }\n\n addPara() {\n const lastFont = this.fontSelector.topFont();\n this.extraHeight += lastFont.paraMargin.top + lastFont.paraMargin.bottom;\n }\n\n addString(str) {\n if (!str) {\n return;\n }\n\n const lastFont = this.fontSelector.topFont();\n const fontSize = lastFont.xfaFont.size;\n if (lastFont.pdfFont) {\n const letterSpacing = lastFont.xfaFont.letterSpacing;\n const pdfFont = lastFont.pdfFont;\n const fontLineHeight = pdfFont.lineHeight || 1.2;\n const lineHeight =\n lastFont.lineHeight || Math.max(1.2, fontLineHeight) * fontSize;\n const lineGap = pdfFont.lineGap === undefined ? 0.2 : pdfFont.lineGap;\n const noGap = fontLineHeight - lineGap;\n const firstLineHeight = Math.max(1, noGap) * fontSize;\n const scale = fontSize / 1000;\n const fallbackWidth =\n pdfFont.defaultWidth || pdfFont.charsToGlyphs(\" \")[0].width;\n\n for (const line of str.split(/[\\u2029\\n]/)) {\n const encodedLine = pdfFont.encodeString(line).join(\"\");\n const glyphs = pdfFont.charsToGlyphs(encodedLine);\n\n for (const glyph of glyphs) {\n const width = glyph.width || fallbackWidth;\n this.glyphs.push([\n width * scale + letterSpacing,\n lineHeight,\n firstLineHeight,\n glyph.unicode,\n false,\n ]);\n }\n\n this.glyphs.push([0, 0, 0, \"\\n\", true]);\n }\n this.glyphs.pop();\n return;\n }\n\n // When we have no font in the pdf, just use the font size as default width.\n for (const line of str.split(/[\\u2029\\n]/)) {\n for (const char of line.split(\"\")) {\n this.glyphs.push([fontSize, 1.2 * fontSize, fontSize, char, false]);\n }\n\n this.glyphs.push([0, 0, 0, \"\\n\", true]);\n }\n this.glyphs.pop();\n }\n\n compute(maxWidth) {\n let lastSpacePos = -1,\n lastSpaceWidth = 0,\n width = 0,\n height = 0,\n currentLineWidth = 0,\n currentLineHeight = 0;\n let isBroken = false;\n let isFirstLine = true;\n\n for (let i = 0, ii = this.glyphs.length; i < ii; i++) {\n const [glyphWidth, lineHeight, firstLineHeight, char, isEOL] =\n this.glyphs[i];\n const isSpace = char === \" \";\n const glyphHeight = isFirstLine ? firstLineHeight : lineHeight;\n if (isEOL) {\n width = Math.max(width, currentLineWidth);\n currentLineWidth = 0;\n height += currentLineHeight;\n currentLineHeight = glyphHeight;\n lastSpacePos = -1;\n lastSpaceWidth = 0;\n isFirstLine = false;\n continue;\n }\n\n if (isSpace) {\n if (currentLineWidth + glyphWidth > maxWidth) {\n // We can break here but the space is not taken into account.\n width = Math.max(width, currentLineWidth);\n currentLineWidth = 0;\n height += currentLineHeight;\n currentLineHeight = glyphHeight;\n lastSpacePos = -1;\n lastSpaceWidth = 0;\n isBroken = true;\n isFirstLine = false;\n } else {\n currentLineHeight = Math.max(glyphHeight, currentLineHeight);\n lastSpaceWidth = currentLineWidth;\n currentLineWidth += glyphWidth;\n lastSpacePos = i;\n }\n continue;\n }\n\n if (currentLineWidth + glyphWidth > maxWidth) {\n // We must break to the last white position (if available)\n height += currentLineHeight;\n currentLineHeight = glyphHeight;\n if (lastSpacePos !== -1) {\n i = lastSpacePos;\n width = Math.max(width, lastSpaceWidth);\n currentLineWidth = 0;\n lastSpacePos = -1;\n lastSpaceWidth = 0;\n } else {\n // Just break in the middle of the word\n width = Math.max(width, currentLineWidth);\n currentLineWidth = glyphWidth;\n }\n isBroken = true;\n isFirstLine = false;\n\n continue;\n }\n\n currentLineWidth += glyphWidth;\n currentLineHeight = Math.max(glyphHeight, currentLineHeight);\n }\n\n width = Math.max(width, currentLineWidth);\n height += currentLineHeight + this.extraHeight;\n\n return { width: WIDTH_FACTOR * width, height, isBroken };\n }\n}\n\nexport { TextMeasure };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $getAttributes,\n $getChildren,\n $nodeName,\n $setValue,\n $toString,\n $uid,\n} from \"./xfa_object.js\";\n\nclass DataHandler {\n constructor(root, data) {\n this.data = data;\n this.dataset = root.datasets || null;\n }\n\n serialize(storage) {\n const stack = [[-1, this.data[$getChildren]()]];\n\n while (stack.length > 0) {\n const last = stack[stack.length - 1];\n const [i, children] = last;\n if (i + 1 === children.length) {\n stack.pop();\n continue;\n }\n\n const child = children[++last[0]];\n const storageEntry = storage.get(child[$uid]);\n if (storageEntry) {\n child[$setValue](storageEntry);\n } else {\n const attributes = child[$getAttributes]();\n for (const value of attributes.values()) {\n const entry = storage.get(value[$uid]);\n if (entry) {\n value[$setValue](entry);\n break;\n }\n }\n }\n\n const nodes = child[$getChildren]();\n if (nodes.length > 0) {\n stack.push([-1, nodes]);\n }\n }\n\n const buf = [\n ``,\n ];\n if (this.dataset) {\n // Dump nodes other than data: they can contains for example\n // some data for choice lists.\n for (const child of this.dataset[$getChildren]()) {\n if (child[$nodeName] !== \"data\") {\n child[$toString](buf);\n }\n }\n }\n this.data[$toString](buf);\n buf.push(\"\");\n\n return buf.join(\"\");\n }\n}\n\nexport { DataHandler };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $acceptWhitespace,\n $clean,\n $content,\n $finalize,\n $globalData,\n $isCDATAXml,\n $nsAttributes,\n $onChild,\n $onText,\n $setId,\n} from \"./xfa_object.js\";\nimport { XMLParserBase, XMLParserErrorCode } from \"../xml_parser.js\";\nimport { Builder } from \"./builder.js\";\nimport { warn } from \"../../shared/util.js\";\n\nclass XFAParser extends XMLParserBase {\n constructor(rootNameSpace = null, richText = false) {\n super();\n this._builder = new Builder(rootNameSpace);\n this._stack = [];\n this._globalData = {\n usedTypefaces: new Set(),\n };\n this._ids = new Map();\n this._current = this._builder.buildRoot(this._ids);\n this._errorCode = XMLParserErrorCode.NoError;\n this._whiteRegex = /^\\s+$/;\n this._nbsps = /\\xa0+/g;\n this._richText = richText;\n }\n\n parse(data) {\n this.parseXml(data);\n\n if (this._errorCode !== XMLParserErrorCode.NoError) {\n return undefined;\n }\n\n this._current[$finalize]();\n\n return this._current.element;\n }\n\n onText(text) {\n // Normally by definition a   is unbreakable\n // but in real life Acrobat can break strings on  .\n text = text.replace(this._nbsps, match => match.slice(1) + \" \");\n if (this._richText || this._current[$acceptWhitespace]()) {\n this._current[$onText](text, this._richText);\n return;\n }\n\n if (this._whiteRegex.test(text)) {\n return;\n }\n this._current[$onText](text.trim());\n }\n\n onCdata(text) {\n this._current[$onText](text);\n }\n\n _mkAttributes(attributes, tagName) {\n // Transform attributes into an object and get out\n // namespaces information.\n let namespace = null;\n let prefixes = null;\n const attributeObj = Object.create({});\n for (const { name, value } of attributes) {\n if (name === \"xmlns\") {\n if (!namespace) {\n namespace = value;\n } else {\n warn(`XFA - multiple namespace definition in <${tagName}>`);\n }\n } else if (name.startsWith(\"xmlns:\")) {\n const prefix = name.substring(\"xmlns:\".length);\n if (!prefixes) {\n prefixes = [];\n }\n prefixes.push({ prefix, value });\n } else {\n const i = name.indexOf(\":\");\n if (i === -1) {\n attributeObj[name] = value;\n } else {\n // Attributes can have their own namespace.\n // For example in data, we can have \n let nsAttrs = attributeObj[$nsAttributes];\n if (!nsAttrs) {\n nsAttrs = attributeObj[$nsAttributes] = Object.create(null);\n }\n const [ns, attrName] = [name.slice(0, i), name.slice(i + 1)];\n let attrs = nsAttrs[ns];\n if (!attrs) {\n attrs = nsAttrs[ns] = Object.create(null);\n }\n attrs[attrName] = value;\n }\n }\n }\n\n return [namespace, prefixes, attributeObj];\n }\n\n _getNameAndPrefix(name, nsAgnostic) {\n const i = name.indexOf(\":\");\n if (i === -1) {\n return [name, null];\n }\n return [name.substring(i + 1), nsAgnostic ? \"\" : name.substring(0, i)];\n }\n\n onBeginElement(tagName, attributes, isEmpty) {\n const [namespace, prefixes, attributesObj] = this._mkAttributes(\n attributes,\n tagName\n );\n const [name, nsPrefix] = this._getNameAndPrefix(\n tagName,\n this._builder.isNsAgnostic()\n );\n const node = this._builder.build({\n nsPrefix,\n name,\n attributes: attributesObj,\n namespace,\n prefixes,\n });\n node[$globalData] = this._globalData;\n\n if (isEmpty) {\n // No children: just push the node into its parent.\n node[$finalize]();\n if (this._current[$onChild](node)) {\n node[$setId](this._ids);\n }\n node[$clean](this._builder);\n return;\n }\n\n this._stack.push(this._current);\n this._current = node;\n }\n\n onEndElement(name) {\n const node = this._current;\n if (node[$isCDATAXml]() && typeof node[$content] === \"string\") {\n const parser = new XFAParser();\n parser._globalData = this._globalData;\n const root = parser.parse(node[$content]);\n node[$content] = null;\n node[$onChild](root);\n }\n\n node[$finalize]();\n this._current = this._stack.pop();\n if (this._current[$onChild](node)) {\n node[$setId](this._ids);\n }\n node[$clean](this._builder);\n }\n\n onError(code) {\n this._errorCode = code;\n }\n}\n\nexport { XFAParser };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n $cleanup,\n $finalize,\n $ids,\n $isNsAgnostic,\n $nsAttributes,\n $onChild,\n $resolvePrototypes,\n $root,\n XFAObject,\n} from \"./xfa_object.js\";\nimport { NamespaceSetUp } from \"./setup.js\";\nimport { Template } from \"./template.js\";\nimport { UnknownNamespace } from \"./unknown.js\";\nimport { warn } from \"../../shared/util.js\";\n\nclass Root extends XFAObject {\n constructor(ids) {\n super(-1, \"root\", Object.create(null));\n this.element = null;\n this[$ids] = ids;\n }\n\n [$onChild](child) {\n this.element = child;\n return true;\n }\n\n [$finalize]() {\n super[$finalize]();\n if (this.element.template instanceof Template) {\n // Set the root element in $ids using a symbol in order\n // to avoid conflict with real IDs.\n this[$ids].set($root, this.element);\n\n this.element.template[$resolvePrototypes](this[$ids]);\n this.element.template[$ids] = this[$ids];\n }\n }\n}\n\nclass Empty extends XFAObject {\n constructor() {\n super(-1, \"\", Object.create(null));\n }\n\n [$onChild](_) {\n return false;\n }\n}\n\nclass Builder {\n constructor(rootNameSpace = null) {\n this._namespaceStack = [];\n this._nsAgnosticLevel = 0;\n\n // Each prefix has its own stack\n this._namespacePrefixes = new Map();\n this._namespaces = new Map();\n this._nextNsId = Math.max(\n ...Object.values(NamespaceIds).map(({ id }) => id)\n );\n this._currentNamespace =\n rootNameSpace || new UnknownNamespace(++this._nextNsId);\n }\n\n buildRoot(ids) {\n return new Root(ids);\n }\n\n build({ nsPrefix, name, attributes, namespace, prefixes }) {\n const hasNamespaceDef = namespace !== null;\n if (hasNamespaceDef) {\n // Define the current namespace to use.\n this._namespaceStack.push(this._currentNamespace);\n this._currentNamespace = this._searchNamespace(namespace);\n }\n\n if (prefixes) {\n // The xml node may have namespace prefix definitions\n this._addNamespacePrefix(prefixes);\n }\n\n if (attributes.hasOwnProperty($nsAttributes)) {\n // Only support xfa-data namespace.\n const dataTemplate = NamespaceSetUp.datasets;\n const nsAttrs = attributes[$nsAttributes];\n let xfaAttrs = null;\n for (const [ns, attrs] of Object.entries(nsAttrs)) {\n const nsToUse = this._getNamespaceToUse(ns);\n if (nsToUse === dataTemplate) {\n xfaAttrs = { xfa: attrs };\n break;\n }\n }\n if (xfaAttrs) {\n attributes[$nsAttributes] = xfaAttrs;\n } else {\n delete attributes[$nsAttributes];\n }\n }\n\n const namespaceToUse = this._getNamespaceToUse(nsPrefix);\n const node =\n (namespaceToUse && namespaceToUse[$buildXFAObject](name, attributes)) ||\n new Empty();\n\n if (node[$isNsAgnostic]()) {\n this._nsAgnosticLevel++;\n }\n\n // In case the node has some namespace things,\n // we must pop the different stacks.\n if (hasNamespaceDef || prefixes || node[$isNsAgnostic]()) {\n node[$cleanup] = {\n hasNamespace: hasNamespaceDef,\n prefixes,\n nsAgnostic: node[$isNsAgnostic](),\n };\n }\n\n return node;\n }\n\n isNsAgnostic() {\n return this._nsAgnosticLevel > 0;\n }\n\n _searchNamespace(nsName) {\n let ns = this._namespaces.get(nsName);\n if (ns) {\n return ns;\n }\n for (const [name, { check }] of Object.entries(NamespaceIds)) {\n if (check(nsName)) {\n ns = NamespaceSetUp[name];\n if (ns) {\n this._namespaces.set(nsName, ns);\n return ns;\n }\n // The namespace is known but not handled.\n break;\n }\n }\n\n ns = new UnknownNamespace(++this._nextNsId);\n this._namespaces.set(nsName, ns);\n return ns;\n }\n\n _addNamespacePrefix(prefixes) {\n for (const { prefix, value } of prefixes) {\n const namespace = this._searchNamespace(value);\n let prefixStack = this._namespacePrefixes.get(prefix);\n if (!prefixStack) {\n prefixStack = [];\n this._namespacePrefixes.set(prefix, prefixStack);\n }\n prefixStack.push(namespace);\n }\n }\n\n _getNamespaceToUse(prefix) {\n if (!prefix) {\n return this._currentNamespace;\n }\n const prefixStack = this._namespacePrefixes.get(prefix);\n if (prefixStack && prefixStack.length > 0) {\n return prefixStack[prefixStack.length - 1];\n }\n\n warn(`Unknown namespace prefix: ${prefix}.`);\n return null;\n }\n\n clean(data) {\n const { hasNamespace, prefixes, nsAgnostic } = data;\n if (hasNamespace) {\n this._currentNamespace = this._namespaceStack.pop();\n }\n if (prefixes) {\n prefixes.forEach(({ prefix }) => {\n this._namespacePrefixes.get(prefix).pop();\n });\n }\n if (nsAgnostic) {\n this._nsAgnosticLevel--;\n }\n }\n}\n\nexport { Builder };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ConfigNamespace } from \"./config.js\";\nimport { ConnectionSetNamespace } from \"./connection_set.js\";\nimport { DatasetsNamespace } from \"./datasets.js\";\nimport { LocaleSetNamespace } from \"./locale_set.js\";\nimport { SignatureNamespace } from \"./signature.js\";\nimport { StylesheetNamespace } from \"./stylesheet.js\";\nimport { TemplateNamespace } from \"./template.js\";\nimport { XdpNamespace } from \"./xdp.js\";\nimport { XhtmlNamespace } from \"./xhtml.js\";\n\nconst NamespaceSetUp = {\n config: ConfigNamespace,\n connection: ConnectionSetNamespace,\n datasets: DatasetsNamespace,\n localeSet: LocaleSetNamespace,\n signature: SignatureNamespace,\n stylesheet: StylesheetNamespace,\n template: TemplateNamespace,\n xdp: XdpNamespace,\n xhtml: XhtmlNamespace,\n};\n\nexport { NamespaceSetUp };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n $content,\n $finalize,\n ContentObject,\n IntegerObject,\n Option01,\n Option10,\n OptionObject,\n StringObject,\n XFAObject,\n XFAObjectArray,\n} from \"./xfa_object.js\";\nimport { getInteger, getStringOption } from \"./utils.js\";\nimport { shadow, warn } from \"../../shared/util.js\";\n\nconst CONFIG_NS_ID = NamespaceIds.config.id;\n\nclass Acrobat extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"acrobat\", /* hasChildren = */ true);\n this.acrobat7 = null;\n this.autoSave = null;\n this.common = null;\n this.validate = null;\n this.validateApprovalSignatures = null;\n this.submitUrl = new XFAObjectArray();\n }\n}\n\nclass Acrobat7 extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"acrobat7\", /* hasChildren = */ true);\n this.dynamicRender = null;\n }\n}\n\nclass ADBE_JSConsole extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"ADBE_JSConsole\", [\"delegate\", \"Enable\", \"Disable\"]);\n }\n}\n\nclass ADBE_JSDebugger extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"ADBE_JSDebugger\", [\"delegate\", \"Enable\", \"Disable\"]);\n }\n}\n\nclass AddSilentPrint extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"addSilentPrint\");\n }\n}\n\nclass AddViewerPreferences extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"addViewerPreferences\");\n }\n}\n\nclass AdjustData extends Option10 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"adjustData\");\n }\n}\n\nclass AdobeExtensionLevel extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"adobeExtensionLevel\", 0, n => n >= 1 && n <= 8);\n }\n}\n\nclass Agent extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"agent\", /* hasChildren = */ true);\n this.name = attributes.name ? attributes.name.trim() : \"\";\n this.common = new XFAObjectArray();\n }\n}\n\nclass AlwaysEmbed extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"alwaysEmbed\");\n }\n}\n\nclass Amd extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"amd\");\n }\n}\n\nclass Area extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"area\");\n this.level = getInteger({\n data: attributes.level,\n defaultValue: 0,\n validate: n => n >= 1 && n <= 3,\n });\n this.name = getStringOption(attributes.name, [\n \"\",\n \"barcode\",\n \"coreinit\",\n \"deviceDriver\",\n \"font\",\n \"general\",\n \"layout\",\n \"merge\",\n \"script\",\n \"signature\",\n \"sourceSet\",\n \"templateCache\",\n ]);\n }\n}\n\nclass Attributes extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"attributes\", [\"preserve\", \"delegate\", \"ignore\"]);\n }\n}\n\nclass AutoSave extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"autoSave\", [\"disabled\", \"enabled\"]);\n }\n}\n\nclass Base extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"base\");\n }\n}\n\nclass BatchOutput extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"batchOutput\");\n this.format = getStringOption(attributes.format, [\n \"none\",\n \"concat\",\n \"zip\",\n \"zipCompress\",\n ]);\n }\n}\n\nclass BehaviorOverride extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"behaviorOverride\");\n }\n\n [$finalize]() {\n this[$content] = new Map(\n this[$content]\n .trim()\n .split(/\\s+/)\n .filter(x => x.includes(\":\"))\n .map(x => x.split(\":\", 2))\n );\n }\n}\n\nclass Cache extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"cache\", /* hasChildren = */ true);\n this.templateCache = null;\n }\n}\n\nclass Change extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"change\");\n }\n}\n\nclass Common extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"common\", /* hasChildren = */ true);\n this.data = null;\n this.locale = null;\n this.localeSet = null;\n this.messaging = null;\n this.suppressBanner = null;\n this.template = null;\n this.validationMessaging = null;\n this.versionControl = null;\n this.log = new XFAObjectArray();\n }\n}\n\nclass Compress extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"compress\");\n this.scope = getStringOption(attributes.scope, [\"imageOnly\", \"document\"]);\n }\n}\n\nclass CompressLogicalStructure extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"compressLogicalStructure\");\n }\n}\n\nclass CompressObjectStream extends Option10 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"compressObjectStream\");\n }\n}\n\nclass Compression extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"compression\", /* hasChildren = */ true);\n this.compressLogicalStructure = null;\n this.compressObjectStream = null;\n this.level = null;\n this.type = null;\n }\n}\n\nclass Config extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"config\", /* hasChildren = */ true);\n this.acrobat = null;\n this.present = null;\n this.trace = null;\n this.agent = new XFAObjectArray();\n }\n}\n\nclass Conformance extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"conformance\", [\"A\", \"B\"]);\n }\n}\n\nclass ContentCopy extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"contentCopy\");\n }\n}\n\nclass Copies extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"copies\", 1, n => n >= 1);\n }\n}\n\nclass Creator extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"creator\");\n }\n}\n\nclass CurrentPage extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"currentPage\", 0, n => n >= 0);\n }\n}\n\nclass Data extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"data\", /* hasChildren = */ true);\n this.adjustData = null;\n this.attributes = null;\n this.incrementalLoad = null;\n this.outputXSL = null;\n this.range = null;\n this.record = null;\n this.startNode = null;\n this.uri = null;\n this.window = null;\n this.xsl = null;\n this.excludeNS = new XFAObjectArray();\n this.transform = new XFAObjectArray();\n }\n}\n\nclass Debug extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"debug\", /* hasChildren = */ true);\n this.uri = null;\n }\n}\n\nclass DefaultTypeface extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"defaultTypeface\");\n this.writingScript = getStringOption(attributes.writingScript, [\n \"*\",\n \"Arabic\",\n \"Cyrillic\",\n \"EastEuropeanRoman\",\n \"Greek\",\n \"Hebrew\",\n \"Japanese\",\n \"Korean\",\n \"Roman\",\n \"SimplifiedChinese\",\n \"Thai\",\n \"TraditionalChinese\",\n \"Vietnamese\",\n ]);\n }\n}\n\nclass Destination extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"destination\", [\n \"pdf\",\n \"pcl\",\n \"ps\",\n \"webClient\",\n \"zpl\",\n ]);\n }\n}\n\nclass DocumentAssembly extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"documentAssembly\");\n }\n}\n\nclass Driver extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"driver\", /* hasChildren = */ true);\n this.name = attributes.name ? attributes.name.trim() : \"\";\n this.fontInfo = null;\n this.xdc = null;\n }\n}\n\nclass DuplexOption extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"duplexOption\", [\n \"simplex\",\n \"duplexFlipLongEdge\",\n \"duplexFlipShortEdge\",\n ]);\n }\n}\n\nclass DynamicRender extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"dynamicRender\", [\"forbidden\", \"required\"]);\n }\n}\n\nclass Embed extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"embed\");\n }\n}\n\nclass Encrypt extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"encrypt\");\n }\n}\n\nclass Encryption extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"encryption\", /* hasChildren = */ true);\n this.encrypt = null;\n this.encryptionLevel = null;\n this.permissions = null;\n }\n}\n\nclass EncryptionLevel extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"encryptionLevel\", [\"40bit\", \"128bit\"]);\n }\n}\n\nclass Enforce extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"enforce\");\n }\n}\n\nclass Equate extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"equate\");\n\n this.force = getInteger({\n data: attributes.force,\n defaultValue: 1,\n validate: n => n === 0,\n });\n\n this.from = attributes.from || \"\";\n this.to = attributes.to || \"\";\n }\n}\n\nclass EquateRange extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"equateRange\");\n\n this.from = attributes.from || \"\";\n this.to = attributes.to || \"\";\n this._unicodeRange = attributes.unicodeRange || \"\";\n }\n\n get unicodeRange() {\n const ranges = [];\n const unicodeRegex = /U\\+([0-9a-fA-F]+)/;\n const unicodeRange = this._unicodeRange;\n for (let range of unicodeRange\n .split(\",\")\n .map(x => x.trim())\n .filter(x => !!x)) {\n range = range.split(\"-\", 2).map(x => {\n const found = x.match(unicodeRegex);\n if (!found) {\n return 0;\n }\n return parseInt(found[1], 16);\n });\n if (range.length === 1) {\n range.push(range[0]);\n }\n ranges.push(range);\n }\n return shadow(this, \"unicodeRange\", ranges);\n }\n}\n\nclass Exclude extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"exclude\");\n }\n\n [$finalize]() {\n this[$content] = this[$content]\n .trim()\n .split(/\\s+/)\n .filter(\n x =>\n x &&\n [\n \"calculate\",\n \"close\",\n \"enter\",\n \"exit\",\n \"initialize\",\n \"ready\",\n \"validate\",\n ].includes(x)\n );\n }\n}\n\nclass ExcludeNS extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"excludeNS\");\n }\n}\n\nclass FlipLabel extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"flipLabel\", [\"usePrinterSetting\", \"on\", \"off\"]);\n }\n}\n\nclass FontInfo extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"fontInfo\", /* hasChildren = */ true);\n this.embed = null;\n this.map = null;\n this.subsetBelow = null;\n this.alwaysEmbed = new XFAObjectArray();\n this.defaultTypeface = new XFAObjectArray();\n this.neverEmbed = new XFAObjectArray();\n }\n}\n\nclass FormFieldFilling extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"formFieldFilling\");\n }\n}\n\nclass GroupParent extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"groupParent\");\n }\n}\n\nclass IfEmpty extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"ifEmpty\", [\n \"dataValue\",\n \"dataGroup\",\n \"ignore\",\n \"remove\",\n ]);\n }\n}\n\nclass IncludeXDPContent extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"includeXDPContent\");\n }\n}\n\nclass IncrementalLoad extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"incrementalLoad\", [\"none\", \"forwardOnly\"]);\n }\n}\n\nclass IncrementalMerge extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"incrementalMerge\");\n }\n}\n\nclass Interactive extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"interactive\");\n }\n}\n\nclass Jog extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"jog\", [\"usePrinterSetting\", \"none\", \"pageSet\"]);\n }\n}\n\nclass LabelPrinter extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"labelPrinter\", /* hasChildren = */ true);\n this.name = getStringOption(attributes.name, [\"zpl\", \"dpl\", \"ipl\", \"tcpl\"]);\n this.batchOutput = null;\n this.flipLabel = null;\n this.fontInfo = null;\n this.xdc = null;\n }\n}\n\nclass Layout extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"layout\", [\"paginate\", \"panel\"]);\n }\n}\n\nclass Level extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"level\", 0, n => n > 0);\n }\n}\n\nclass Linearized extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"linearized\");\n }\n}\n\nclass Locale extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"locale\");\n }\n}\n\nclass LocaleSet extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"localeSet\");\n }\n}\n\nclass Log extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"log\", /* hasChildren = */ true);\n this.mode = null;\n this.threshold = null;\n this.to = null;\n this.uri = null;\n }\n}\n\n// Renamed in MapElement to avoid confusion with usual js Map.\nclass MapElement extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"map\", /* hasChildren = */ true);\n this.equate = new XFAObjectArray();\n this.equateRange = new XFAObjectArray();\n }\n}\n\nclass MediumInfo extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"mediumInfo\", /* hasChildren = */ true);\n this.map = null;\n }\n}\n\nclass Message extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"message\", /* hasChildren = */ true);\n this.msgId = null;\n this.severity = null;\n }\n}\n\nclass Messaging extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"messaging\", /* hasChildren = */ true);\n this.message = new XFAObjectArray();\n }\n}\n\nclass Mode extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"mode\", [\"append\", \"overwrite\"]);\n }\n}\n\nclass ModifyAnnots extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"modifyAnnots\");\n }\n}\n\nclass MsgId extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"msgId\", 1, n => n >= 1);\n }\n}\n\nclass NameAttr extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"nameAttr\");\n }\n}\n\nclass NeverEmbed extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"neverEmbed\");\n }\n}\n\nclass NumberOfCopies extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"numberOfCopies\", null, n => n >= 2 && n <= 5);\n }\n}\n\nclass OpenAction extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"openAction\", /* hasChildren = */ true);\n this.destination = null;\n }\n}\n\nclass Output extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"output\", /* hasChildren = */ true);\n this.to = null;\n this.type = null;\n this.uri = null;\n }\n}\n\nclass OutputBin extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"outputBin\");\n }\n}\n\nclass OutputXSL extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"outputXSL\", /* hasChildren = */ true);\n this.uri = null;\n }\n}\n\nclass Overprint extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"overprint\", [\"none\", \"both\", \"draw\", \"field\"]);\n }\n}\n\nclass Packets extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"packets\");\n }\n\n [$finalize]() {\n if (this[$content] === \"*\") {\n return;\n }\n this[$content] = this[$content]\n .trim()\n .split(/\\s+/)\n .filter(x =>\n [\"config\", \"datasets\", \"template\", \"xfdf\", \"xslt\"].includes(x)\n );\n }\n}\n\nclass PageOffset extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pageOffset\");\n this.x = getInteger({\n data: attributes.x,\n defaultValue: \"useXDCSetting\",\n validate: n => true,\n });\n this.y = getInteger({\n data: attributes.y,\n defaultValue: \"useXDCSetting\",\n validate: n => true,\n });\n }\n}\n\nclass PageRange extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pageRange\");\n }\n\n [$finalize]() {\n const numbers = this[$content]\n .trim()\n .split(/\\s+/)\n .map(x => parseInt(x, 10));\n const ranges = [];\n for (let i = 0, ii = numbers.length; i < ii; i += 2) {\n ranges.push(numbers.slice(i, i + 2));\n }\n this[$content] = ranges;\n }\n}\n\nclass Pagination extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pagination\", [\n \"simplex\",\n \"duplexShortEdge\",\n \"duplexLongEdge\",\n ]);\n }\n}\n\nclass PaginationOverride extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"paginationOverride\", [\n \"none\",\n \"forceDuplex\",\n \"forceDuplexLongEdge\",\n \"forceDuplexShortEdge\",\n \"forceSimplex\",\n ]);\n }\n}\n\nclass Part extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"part\", 1, n => false);\n }\n}\n\nclass Pcl extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pcl\", /* hasChildren = */ true);\n this.name = attributes.name || \"\";\n this.batchOutput = null;\n this.fontInfo = null;\n this.jog = null;\n this.mediumInfo = null;\n this.outputBin = null;\n this.pageOffset = null;\n this.staple = null;\n this.xdc = null;\n }\n}\n\nclass Pdf extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pdf\", /* hasChildren = */ true);\n this.name = attributes.name || \"\";\n this.adobeExtensionLevel = null;\n this.batchOutput = null;\n this.compression = null;\n this.creator = null;\n this.encryption = null;\n this.fontInfo = null;\n this.interactive = null;\n this.linearized = null;\n this.openAction = null;\n this.pdfa = null;\n this.producer = null;\n this.renderPolicy = null;\n this.scriptModel = null;\n this.silentPrint = null;\n this.submitFormat = null;\n this.tagged = null;\n this.version = null;\n this.viewerPreferences = null;\n this.xdc = null;\n }\n}\n\nclass Pdfa extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pdfa\", /* hasChildren = */ true);\n this.amd = null;\n this.conformance = null;\n this.includeXDPContent = null;\n this.part = null;\n }\n}\n\nclass Permissions extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"permissions\", /* hasChildren = */ true);\n this.accessibleContent = null;\n this.change = null;\n this.contentCopy = null;\n this.documentAssembly = null;\n this.formFieldFilling = null;\n this.modifyAnnots = null;\n this.plaintextMetadata = null;\n this.print = null;\n this.printHighQuality = null;\n }\n}\n\nclass PickTrayByPDFSize extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pickTrayByPDFSize\");\n }\n}\n\nclass Picture extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"picture\");\n }\n\n // TODO: check the validity of the picture clause.\n // See page 1150 in the spec.\n}\n\nclass PlaintextMetadata extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"plaintextMetadata\");\n }\n}\n\nclass Presence extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"presence\", [\n \"preserve\",\n \"dissolve\",\n \"dissolveStructure\",\n \"ignore\",\n \"remove\",\n ]);\n }\n}\n\nclass Present extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"present\", /* hasChildren = */ true);\n this.behaviorOverride = null;\n this.cache = null;\n this.common = null;\n this.copies = null;\n this.destination = null;\n this.incrementalMerge = null;\n this.layout = null;\n this.output = null;\n this.overprint = null;\n this.pagination = null;\n this.paginationOverride = null;\n this.script = null;\n this.validate = null;\n this.xdp = null;\n this.driver = new XFAObjectArray();\n this.labelPrinter = new XFAObjectArray();\n this.pcl = new XFAObjectArray();\n this.pdf = new XFAObjectArray();\n this.ps = new XFAObjectArray();\n this.submitUrl = new XFAObjectArray();\n this.webClient = new XFAObjectArray();\n this.zpl = new XFAObjectArray();\n }\n}\n\nclass Print extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"print\");\n }\n}\n\nclass PrintHighQuality extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"printHighQuality\");\n }\n}\n\nclass PrintScaling extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"printScaling\", [\"appdefault\", \"noScaling\"]);\n }\n}\n\nclass PrinterName extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"printerName\");\n }\n}\n\nclass Producer extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"producer\");\n }\n}\n\nclass Ps extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"ps\", /* hasChildren = */ true);\n this.name = attributes.name || \"\";\n this.batchOutput = null;\n this.fontInfo = null;\n this.jog = null;\n this.mediumInfo = null;\n this.outputBin = null;\n this.staple = null;\n this.xdc = null;\n }\n}\n\nclass Range extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"range\");\n }\n\n [$finalize]() {\n this[$content] = this[$content]\n .trim()\n .split(/\\s*,\\s*/, 2)\n .map(range => range.split(\"-\").map(x => parseInt(x.trim(), 10)))\n .filter(range => range.every(x => !isNaN(x)))\n .map(range => {\n if (range.length === 1) {\n range.push(range[0]);\n }\n return range;\n });\n }\n}\n\nclass Record extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"record\");\n }\n\n [$finalize]() {\n this[$content] = this[$content].trim();\n const n = parseInt(this[$content], 10);\n if (!isNaN(n) && n >= 0) {\n this[$content] = n;\n }\n }\n}\n\nclass Relevant extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"relevant\");\n }\n\n [$finalize]() {\n this[$content] = this[$content].trim().split(/\\s+/);\n }\n}\n\nclass Rename extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"rename\");\n }\n\n [$finalize]() {\n this[$content] = this[$content].trim();\n // String must be a XFA name: same as XML one except that there\n // is no colon.\n if (\n this[$content].toLowerCase().startsWith(\"xml\") ||\n this[$content].match(new RegExp(\"[\\\\p{L}_][\\\\p{L}\\\\d._\\\\p{M}-]*\", \"u\"))\n ) {\n warn(\"XFA - Rename: invalid XFA name\");\n }\n }\n}\n\nclass RenderPolicy extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"renderPolicy\", [\"server\", \"client\"]);\n }\n}\n\nclass RunScripts extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"runScripts\", [\"both\", \"client\", \"none\", \"server\"]);\n }\n}\n\nclass Script extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"script\", /* hasChildren = */ true);\n this.currentPage = null;\n this.exclude = null;\n this.runScripts = null;\n }\n}\n\nclass ScriptModel extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"scriptModel\", [\"XFA\", \"none\"]);\n }\n}\n\nclass Severity extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"severity\", [\n \"ignore\",\n \"error\",\n \"information\",\n \"trace\",\n \"warning\",\n ]);\n }\n}\n\nclass SilentPrint extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"silentPrint\", /* hasChildren = */ true);\n this.addSilentPrint = null;\n this.printerName = null;\n }\n}\n\nclass Staple extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"staple\");\n this.mode = getStringOption(attributes.mode, [\n \"usePrinterSetting\",\n \"on\",\n \"off\",\n ]);\n }\n}\n\nclass StartNode extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"startNode\");\n }\n}\n\nclass StartPage extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"startPage\", 0, n => true);\n }\n}\n\nclass SubmitFormat extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"submitFormat\", [\n \"html\",\n \"delegate\",\n \"fdf\",\n \"xml\",\n \"pdf\",\n ]);\n }\n}\n\nclass SubmitUrl extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"submitUrl\");\n }\n}\n\nclass SubsetBelow extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"subsetBelow\", 100, n => n >= 0 && n <= 100);\n }\n}\n\nclass SuppressBanner extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"suppressBanner\");\n }\n}\n\nclass Tagged extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"tagged\");\n }\n}\n\nclass Template extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"template\", /* hasChildren = */ true);\n this.base = null;\n this.relevant = null;\n this.startPage = null;\n this.uri = null;\n this.xsl = null;\n }\n}\n\nclass Threshold extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"threshold\", [\n \"trace\",\n \"error\",\n \"information\",\n \"warning\",\n ]);\n }\n}\n\nclass To extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"to\", [\n \"null\",\n \"memory\",\n \"stderr\",\n \"stdout\",\n \"system\",\n \"uri\",\n ]);\n }\n}\n\nclass TemplateCache extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"templateCache\");\n this.maxEntries = getInteger({\n data: attributes.maxEntries,\n defaultValue: 5,\n validate: n => n >= 0,\n });\n }\n}\n\nclass Trace extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"trace\", /* hasChildren = */ true);\n this.area = new XFAObjectArray();\n }\n}\n\nclass Transform extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"transform\", /* hasChildren = */ true);\n this.groupParent = null;\n this.ifEmpty = null;\n this.nameAttr = null;\n this.picture = null;\n this.presence = null;\n this.rename = null;\n this.whitespace = null;\n }\n}\n\nclass Type extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"type\", [\n \"none\",\n \"ascii85\",\n \"asciiHex\",\n \"ccittfax\",\n \"flate\",\n \"lzw\",\n \"runLength\",\n \"native\",\n \"xdp\",\n \"mergedXDP\",\n ]);\n }\n}\n\nclass Uri extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"uri\");\n }\n}\n\nclass Validate extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"validate\", [\n \"preSubmit\",\n \"prePrint\",\n \"preExecute\",\n \"preSave\",\n ]);\n }\n}\n\nclass ValidateApprovalSignatures extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"validateApprovalSignatures\");\n }\n\n [$finalize]() {\n this[$content] = this[$content]\n .trim()\n .split(/\\s+/)\n .filter(x => [\"docReady\", \"postSign\"].includes(x));\n }\n}\n\nclass ValidationMessaging extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"validationMessaging\", [\n \"allMessagesIndividually\",\n \"allMessagesTogether\",\n \"firstMessageOnly\",\n \"noMessages\",\n ]);\n }\n}\n\nclass Version extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"version\", [\"1.7\", \"1.6\", \"1.5\", \"1.4\", \"1.3\", \"1.2\"]);\n }\n}\n\nclass VersionControl extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"VersionControl\");\n this.outputBelow = getStringOption(attributes.outputBelow, [\n \"warn\",\n \"error\",\n \"update\",\n ]);\n this.sourceAbove = getStringOption(attributes.sourceAbove, [\n \"warn\",\n \"error\",\n ]);\n this.sourceBelow = getStringOption(attributes.sourceBelow, [\n \"update\",\n \"maintain\",\n ]);\n }\n}\n\nclass ViewerPreferences extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"viewerPreferences\", /* hasChildren = */ true);\n this.ADBE_JSConsole = null;\n this.ADBE_JSDebugger = null;\n this.addViewerPreferences = null;\n this.duplexOption = null;\n this.enforce = null;\n this.numberOfCopies = null;\n this.pageRange = null;\n this.pickTrayByPDFSize = null;\n this.printScaling = null;\n }\n}\n\nclass WebClient extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"webClient\", /* hasChildren = */ true);\n this.name = attributes.name ? attributes.name.trim() : \"\";\n this.fontInfo = null;\n this.xdc = null;\n }\n}\n\nclass Whitespace extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"whitespace\", [\n \"preserve\",\n \"ltrim\",\n \"normalize\",\n \"rtrim\",\n \"trim\",\n ]);\n }\n}\n\nclass Window extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"window\");\n }\n\n [$finalize]() {\n const pair = this[$content]\n .trim()\n .split(/\\s*,\\s*/, 2)\n .map(x => parseInt(x, 10));\n if (pair.some(x => isNaN(x))) {\n this[$content] = [0, 0];\n return;\n }\n if (pair.length === 1) {\n pair.push(pair[0]);\n }\n this[$content] = pair;\n }\n}\n\nclass Xdc extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"xdc\", /* hasChildren = */ true);\n this.uri = new XFAObjectArray();\n this.xsl = new XFAObjectArray();\n }\n}\n\nclass Xdp extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"xdp\", /* hasChildren = */ true);\n this.packets = null;\n }\n}\n\nclass Xsl extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"xsl\", /* hasChildren = */ true);\n this.debug = null;\n this.uri = null;\n }\n}\n\nclass Zpl extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"zpl\", /* hasChildren = */ true);\n this.name = attributes.name ? attributes.name.trim() : \"\";\n this.batchOutput = null;\n this.flipLabel = null;\n this.fontInfo = null;\n this.xdc = null;\n }\n}\n\nclass ConfigNamespace {\n static [$buildXFAObject](name, attributes) {\n if (ConfigNamespace.hasOwnProperty(name)) {\n return ConfigNamespace[name](attributes);\n }\n return undefined;\n }\n\n static acrobat(attrs) {\n return new Acrobat(attrs);\n }\n\n static acrobat7(attrs) {\n return new Acrobat7(attrs);\n }\n\n static ADBE_JSConsole(attrs) {\n return new ADBE_JSConsole(attrs);\n }\n\n static ADBE_JSDebugger(attrs) {\n return new ADBE_JSDebugger(attrs);\n }\n\n static addSilentPrint(attrs) {\n return new AddSilentPrint(attrs);\n }\n\n static addViewerPreferences(attrs) {\n return new AddViewerPreferences(attrs);\n }\n\n static adjustData(attrs) {\n return new AdjustData(attrs);\n }\n\n static adobeExtensionLevel(attrs) {\n return new AdobeExtensionLevel(attrs);\n }\n\n static agent(attrs) {\n return new Agent(attrs);\n }\n\n static alwaysEmbed(attrs) {\n return new AlwaysEmbed(attrs);\n }\n\n static amd(attrs) {\n return new Amd(attrs);\n }\n\n static area(attrs) {\n return new Area(attrs);\n }\n\n static attributes(attrs) {\n return new Attributes(attrs);\n }\n\n static autoSave(attrs) {\n return new AutoSave(attrs);\n }\n\n static base(attrs) {\n return new Base(attrs);\n }\n\n static batchOutput(attrs) {\n return new BatchOutput(attrs);\n }\n\n static behaviorOverride(attrs) {\n return new BehaviorOverride(attrs);\n }\n\n static cache(attrs) {\n return new Cache(attrs);\n }\n\n static change(attrs) {\n return new Change(attrs);\n }\n\n static common(attrs) {\n return new Common(attrs);\n }\n\n static compress(attrs) {\n return new Compress(attrs);\n }\n\n static compressLogicalStructure(attrs) {\n return new CompressLogicalStructure(attrs);\n }\n\n static compressObjectStream(attrs) {\n return new CompressObjectStream(attrs);\n }\n\n static compression(attrs) {\n return new Compression(attrs);\n }\n\n static config(attrs) {\n return new Config(attrs);\n }\n\n static conformance(attrs) {\n return new Conformance(attrs);\n }\n\n static contentCopy(attrs) {\n return new ContentCopy(attrs);\n }\n\n static copies(attrs) {\n return new Copies(attrs);\n }\n\n static creator(attrs) {\n return new Creator(attrs);\n }\n\n static currentPage(attrs) {\n return new CurrentPage(attrs);\n }\n\n static data(attrs) {\n return new Data(attrs);\n }\n\n static debug(attrs) {\n return new Debug(attrs);\n }\n\n static defaultTypeface(attrs) {\n return new DefaultTypeface(attrs);\n }\n\n static destination(attrs) {\n return new Destination(attrs);\n }\n\n static documentAssembly(attrs) {\n return new DocumentAssembly(attrs);\n }\n\n static driver(attrs) {\n return new Driver(attrs);\n }\n\n static duplexOption(attrs) {\n return new DuplexOption(attrs);\n }\n\n static dynamicRender(attrs) {\n return new DynamicRender(attrs);\n }\n\n static embed(attrs) {\n return new Embed(attrs);\n }\n\n static encrypt(attrs) {\n return new Encrypt(attrs);\n }\n\n static encryption(attrs) {\n return new Encryption(attrs);\n }\n\n static encryptionLevel(attrs) {\n return new EncryptionLevel(attrs);\n }\n\n static enforce(attrs) {\n return new Enforce(attrs);\n }\n\n static equate(attrs) {\n return new Equate(attrs);\n }\n\n static equateRange(attrs) {\n return new EquateRange(attrs);\n }\n\n static exclude(attrs) {\n return new Exclude(attrs);\n }\n\n static excludeNS(attrs) {\n return new ExcludeNS(attrs);\n }\n\n static flipLabel(attrs) {\n return new FlipLabel(attrs);\n }\n\n static fontInfo(attrs) {\n return new FontInfo(attrs);\n }\n\n static formFieldFilling(attrs) {\n return new FormFieldFilling(attrs);\n }\n\n static groupParent(attrs) {\n return new GroupParent(attrs);\n }\n\n static ifEmpty(attrs) {\n return new IfEmpty(attrs);\n }\n\n static includeXDPContent(attrs) {\n return new IncludeXDPContent(attrs);\n }\n\n static incrementalLoad(attrs) {\n return new IncrementalLoad(attrs);\n }\n\n static incrementalMerge(attrs) {\n return new IncrementalMerge(attrs);\n }\n\n static interactive(attrs) {\n return new Interactive(attrs);\n }\n\n static jog(attrs) {\n return new Jog(attrs);\n }\n\n static labelPrinter(attrs) {\n return new LabelPrinter(attrs);\n }\n\n static layout(attrs) {\n return new Layout(attrs);\n }\n\n static level(attrs) {\n return new Level(attrs);\n }\n\n static linearized(attrs) {\n return new Linearized(attrs);\n }\n\n static locale(attrs) {\n return new Locale(attrs);\n }\n\n static localeSet(attrs) {\n return new LocaleSet(attrs);\n }\n\n static log(attrs) {\n return new Log(attrs);\n }\n\n static map(attrs) {\n return new MapElement(attrs);\n }\n\n static mediumInfo(attrs) {\n return new MediumInfo(attrs);\n }\n\n static message(attrs) {\n return new Message(attrs);\n }\n\n static messaging(attrs) {\n return new Messaging(attrs);\n }\n\n static mode(attrs) {\n return new Mode(attrs);\n }\n\n static modifyAnnots(attrs) {\n return new ModifyAnnots(attrs);\n }\n\n static msgId(attrs) {\n return new MsgId(attrs);\n }\n\n static nameAttr(attrs) {\n return new NameAttr(attrs);\n }\n\n static neverEmbed(attrs) {\n return new NeverEmbed(attrs);\n }\n\n static numberOfCopies(attrs) {\n return new NumberOfCopies(attrs);\n }\n\n static openAction(attrs) {\n return new OpenAction(attrs);\n }\n\n static output(attrs) {\n return new Output(attrs);\n }\n\n static outputBin(attrs) {\n return new OutputBin(attrs);\n }\n\n static outputXSL(attrs) {\n return new OutputXSL(attrs);\n }\n\n static overprint(attrs) {\n return new Overprint(attrs);\n }\n\n static packets(attrs) {\n return new Packets(attrs);\n }\n\n static pageOffset(attrs) {\n return new PageOffset(attrs);\n }\n\n static pageRange(attrs) {\n return new PageRange(attrs);\n }\n\n static pagination(attrs) {\n return new Pagination(attrs);\n }\n\n static paginationOverride(attrs) {\n return new PaginationOverride(attrs);\n }\n\n static part(attrs) {\n return new Part(attrs);\n }\n\n static pcl(attrs) {\n return new Pcl(attrs);\n }\n\n static pdf(attrs) {\n return new Pdf(attrs);\n }\n\n static pdfa(attrs) {\n return new Pdfa(attrs);\n }\n\n static permissions(attrs) {\n return new Permissions(attrs);\n }\n\n static pickTrayByPDFSize(attrs) {\n return new PickTrayByPDFSize(attrs);\n }\n\n static picture(attrs) {\n return new Picture(attrs);\n }\n\n static plaintextMetadata(attrs) {\n return new PlaintextMetadata(attrs);\n }\n\n static presence(attrs) {\n return new Presence(attrs);\n }\n\n static present(attrs) {\n return new Present(attrs);\n }\n\n static print(attrs) {\n return new Print(attrs);\n }\n\n static printHighQuality(attrs) {\n return new PrintHighQuality(attrs);\n }\n\n static printScaling(attrs) {\n return new PrintScaling(attrs);\n }\n\n static printerName(attrs) {\n return new PrinterName(attrs);\n }\n\n static producer(attrs) {\n return new Producer(attrs);\n }\n\n static ps(attrs) {\n return new Ps(attrs);\n }\n\n static range(attrs) {\n return new Range(attrs);\n }\n\n static record(attrs) {\n return new Record(attrs);\n }\n\n static relevant(attrs) {\n return new Relevant(attrs);\n }\n\n static rename(attrs) {\n return new Rename(attrs);\n }\n\n static renderPolicy(attrs) {\n return new RenderPolicy(attrs);\n }\n\n static runScripts(attrs) {\n return new RunScripts(attrs);\n }\n\n static script(attrs) {\n return new Script(attrs);\n }\n\n static scriptModel(attrs) {\n return new ScriptModel(attrs);\n }\n\n static severity(attrs) {\n return new Severity(attrs);\n }\n\n static silentPrint(attrs) {\n return new SilentPrint(attrs);\n }\n\n static staple(attrs) {\n return new Staple(attrs);\n }\n\n static startNode(attrs) {\n return new StartNode(attrs);\n }\n\n static startPage(attrs) {\n return new StartPage(attrs);\n }\n\n static submitFormat(attrs) {\n return new SubmitFormat(attrs);\n }\n\n static submitUrl(attrs) {\n return new SubmitUrl(attrs);\n }\n\n static subsetBelow(attrs) {\n return new SubsetBelow(attrs);\n }\n\n static suppressBanner(attrs) {\n return new SuppressBanner(attrs);\n }\n\n static tagged(attrs) {\n return new Tagged(attrs);\n }\n\n static template(attrs) {\n return new Template(attrs);\n }\n\n static templateCache(attrs) {\n return new TemplateCache(attrs);\n }\n\n static threshold(attrs) {\n return new Threshold(attrs);\n }\n\n static to(attrs) {\n return new To(attrs);\n }\n\n static trace(attrs) {\n return new Trace(attrs);\n }\n\n static transform(attrs) {\n return new Transform(attrs);\n }\n\n static type(attrs) {\n return new Type(attrs);\n }\n\n static uri(attrs) {\n return new Uri(attrs);\n }\n\n static validate(attrs) {\n return new Validate(attrs);\n }\n\n static validateApprovalSignatures(attrs) {\n return new ValidateApprovalSignatures(attrs);\n }\n\n static validationMessaging(attrs) {\n return new ValidationMessaging(attrs);\n }\n\n static version(attrs) {\n return new Version(attrs);\n }\n\n static versionControl(attrs) {\n return new VersionControl(attrs);\n }\n\n static viewerPreferences(attrs) {\n return new ViewerPreferences(attrs);\n }\n\n static webClient(attrs) {\n return new WebClient(attrs);\n }\n\n static whitespace(attrs) {\n return new Whitespace(attrs);\n }\n\n static window(attrs) {\n return new Window(attrs);\n }\n\n static xdc(attrs) {\n return new Xdc(attrs);\n }\n\n static xdp(attrs) {\n return new Xdp(attrs);\n }\n\n static xsl(attrs) {\n return new Xsl(attrs);\n }\n\n static zpl(attrs) {\n return new Zpl(attrs);\n }\n}\n\nexport { ConfigNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport { StringObject, XFAObject, XFAObjectArray } from \"./xfa_object.js\";\n\nconst CONNECTION_SET_NS_ID = NamespaceIds.connectionSet.id;\n\nclass ConnectionSet extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"connectionSet\", /* hasChildren = */ true);\n this.wsdlConnection = new XFAObjectArray();\n this.xmlConnection = new XFAObjectArray();\n this.xsdConnection = new XFAObjectArray();\n }\n}\n\nclass EffectiveInputPolicy extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"effectiveInputPolicy\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass EffectiveOutputPolicy extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"effectiveOutputPolicy\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Operation extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"operation\");\n this.id = attributes.id || \"\";\n this.input = attributes.input || \"\";\n this.name = attributes.name || \"\";\n this.output = attributes.output || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass RootElement extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"rootElement\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass SoapAction extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"soapAction\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass SoapAddress extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"soapAddress\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Uri extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"uri\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass WsdlAddress extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"wsdlAddress\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass WsdlConnection extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"wsdlConnection\", /* hasChildren = */ true);\n this.dataDescription = attributes.dataDescription || \"\";\n this.name = attributes.name || \"\";\n this.effectiveInputPolicy = null;\n this.effectiveOutputPolicy = null;\n this.operation = null;\n this.soapAction = null;\n this.soapAddress = null;\n this.wsdlAddress = null;\n }\n}\n\nclass XmlConnection extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"xmlConnection\", /* hasChildren = */ true);\n this.dataDescription = attributes.dataDescription || \"\";\n this.name = attributes.name || \"\";\n this.uri = null;\n }\n}\n\nclass XsdConnection extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"xsdConnection\", /* hasChildren = */ true);\n this.dataDescription = attributes.dataDescription || \"\";\n this.name = attributes.name || \"\";\n this.rootElement = null;\n this.uri = null;\n }\n}\n\nclass ConnectionSetNamespace {\n static [$buildXFAObject](name, attributes) {\n if (ConnectionSetNamespace.hasOwnProperty(name)) {\n return ConnectionSetNamespace[name](attributes);\n }\n return undefined;\n }\n\n static connectionSet(attrs) {\n return new ConnectionSet(attrs);\n }\n\n static effectiveInputPolicy(attrs) {\n return new EffectiveInputPolicy(attrs);\n }\n\n static effectiveOutputPolicy(attrs) {\n return new EffectiveOutputPolicy(attrs);\n }\n\n static operation(attrs) {\n return new Operation(attrs);\n }\n\n static rootElement(attrs) {\n return new RootElement(attrs);\n }\n\n static soapAction(attrs) {\n return new SoapAction(attrs);\n }\n\n static soapAddress(attrs) {\n return new SoapAddress(attrs);\n }\n\n static uri(attrs) {\n return new Uri(attrs);\n }\n\n static wsdlAddress(attrs) {\n return new WsdlAddress(attrs);\n }\n\n static wsdlConnection(attrs) {\n return new WsdlConnection(attrs);\n }\n\n static xmlConnection(attrs) {\n return new XmlConnection(attrs);\n }\n\n static xsdConnection(attrs) {\n return new XsdConnection(attrs);\n }\n}\n\nexport { ConnectionSetNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $appendChild,\n $isNsAgnostic,\n $namespaceId,\n $nodeName,\n $onChild,\n XFAObject,\n XmlObject,\n} from \"./xfa_object.js\";\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\n\nconst DATASETS_NS_ID = NamespaceIds.datasets.id;\n\nclass Data extends XmlObject {\n constructor(attributes) {\n super(DATASETS_NS_ID, \"data\", attributes);\n }\n\n [$isNsAgnostic]() {\n return true;\n }\n}\n\nclass Datasets extends XFAObject {\n constructor(attributes) {\n super(DATASETS_NS_ID, \"datasets\", /* hasChildren = */ true);\n this.data = null;\n this.Signature = null;\n }\n\n [$onChild](child) {\n const name = child[$nodeName];\n if (\n (name === \"data\" && child[$namespaceId] === DATASETS_NS_ID) ||\n (name === \"Signature\" &&\n child[$namespaceId] === NamespaceIds.signature.id)\n ) {\n this[name] = child;\n }\n this[$appendChild](child);\n }\n}\n\nclass DatasetsNamespace {\n static [$buildXFAObject](name, attributes) {\n if (DatasetsNamespace.hasOwnProperty(name)) {\n return DatasetsNamespace[name](attributes);\n }\n return undefined;\n }\n\n static datasets(attributes) {\n return new Datasets(attributes);\n }\n\n static data(attributes) {\n return new Data(attributes);\n }\n}\n\nexport { DatasetsNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n ContentObject,\n StringObject,\n XFAObject,\n XFAObjectArray,\n} from \"./xfa_object.js\";\nimport { getInteger, getStringOption } from \"./utils.js\";\n\nconst LOCALE_SET_NS_ID = NamespaceIds.localeSet.id;\n\nclass CalendarSymbols extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"calendarSymbols\", /* hasChildren = */ true);\n this.name = \"gregorian\";\n this.dayNames = new XFAObjectArray(2);\n this.eraNames = null;\n this.meridiemNames = null;\n this.monthNames = new XFAObjectArray(2);\n }\n}\n\nclass CurrencySymbol extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"currencySymbol\");\n this.name = getStringOption(attributes.name, [\n \"symbol\",\n \"isoname\",\n \"decimal\",\n ]);\n }\n}\n\nclass CurrencySymbols extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"currencySymbols\", /* hasChildren = */ true);\n this.currencySymbol = new XFAObjectArray(3);\n }\n}\n\nclass DatePattern extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"datePattern\");\n this.name = getStringOption(attributes.name, [\n \"full\",\n \"long\",\n \"med\",\n \"short\",\n ]);\n }\n}\n\nclass DatePatterns extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"datePatterns\", /* hasChildren = */ true);\n this.datePattern = new XFAObjectArray(4);\n }\n}\n\nclass DateTimeSymbols extends ContentObject {\n // TODO: spec unclear about the format of the array.\n\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"dateTimeSymbols\");\n }\n}\n\nclass Day extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"day\");\n }\n}\n\nclass DayNames extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"dayNames\", /* hasChildren = */ true);\n this.abbr = getInteger({\n data: attributes.abbr,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.day = new XFAObjectArray(7);\n }\n}\n\nclass Era extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"era\");\n }\n}\n\nclass EraNames extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"eraNames\", /* hasChildren = */ true);\n this.era = new XFAObjectArray(2);\n }\n}\n\nclass Locale extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"locale\", /* hasChildren = */ true);\n this.desc = attributes.desc || \"\";\n this.name = \"isoname\";\n this.calendarSymbols = null;\n this.currencySymbols = null;\n this.datePatterns = null;\n this.dateTimeSymbols = null;\n this.numberPatterns = null;\n this.numberSymbols = null;\n this.timePatterns = null;\n this.typeFaces = null;\n }\n}\n\nclass LocaleSet extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"localeSet\", /* hasChildren = */ true);\n this.locale = new XFAObjectArray();\n }\n}\n\nclass Meridiem extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"meridiem\");\n }\n}\n\nclass MeridiemNames extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"meridiemNames\", /* hasChildren = */ true);\n this.meridiem = new XFAObjectArray(2);\n }\n}\n\nclass Month extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"month\");\n }\n}\n\nclass MonthNames extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"monthNames\", /* hasChildren = */ true);\n this.abbr = getInteger({\n data: attributes.abbr,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.month = new XFAObjectArray(12);\n }\n}\n\nclass NumberPattern extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"numberPattern\");\n this.name = getStringOption(attributes.name, [\n \"full\",\n \"long\",\n \"med\",\n \"short\",\n ]);\n }\n}\n\nclass NumberPatterns extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"numberPatterns\", /* hasChildren = */ true);\n this.numberPattern = new XFAObjectArray(4);\n }\n}\n\nclass NumberSymbol extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"numberSymbol\");\n this.name = getStringOption(attributes.name, [\n \"decimal\",\n \"grouping\",\n \"percent\",\n \"minus\",\n \"zero\",\n ]);\n }\n}\n\nclass NumberSymbols extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"numberSymbols\", /* hasChildren = */ true);\n this.numberSymbol = new XFAObjectArray(5);\n }\n}\n\nclass TimePattern extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"timePattern\");\n this.name = getStringOption(attributes.name, [\n \"full\",\n \"long\",\n \"med\",\n \"short\",\n ]);\n }\n}\n\nclass TimePatterns extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"timePatterns\", /* hasChildren = */ true);\n this.timePattern = new XFAObjectArray(4);\n }\n}\n\nclass TypeFace extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"typeFace\", /* hasChildren = */ true);\n this.name = attributes.name | \"\";\n }\n}\n\nclass TypeFaces extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"typeFaces\", /* hasChildren = */ true);\n this.typeFace = new XFAObjectArray();\n }\n}\n\nclass LocaleSetNamespace {\n static [$buildXFAObject](name, attributes) {\n if (LocaleSetNamespace.hasOwnProperty(name)) {\n return LocaleSetNamespace[name](attributes);\n }\n return undefined;\n }\n\n static calendarSymbols(attrs) {\n return new CalendarSymbols(attrs);\n }\n\n static currencySymbol(attrs) {\n return new CurrencySymbol(attrs);\n }\n\n static currencySymbols(attrs) {\n return new CurrencySymbols(attrs);\n }\n\n static datePattern(attrs) {\n return new DatePattern(attrs);\n }\n\n static datePatterns(attrs) {\n return new DatePatterns(attrs);\n }\n\n static dateTimeSymbols(attrs) {\n return new DateTimeSymbols(attrs);\n }\n\n static day(attrs) {\n return new Day(attrs);\n }\n\n static dayNames(attrs) {\n return new DayNames(attrs);\n }\n\n static era(attrs) {\n return new Era(attrs);\n }\n\n static eraNames(attrs) {\n return new EraNames(attrs);\n }\n\n static locale(attrs) {\n return new Locale(attrs);\n }\n\n static localeSet(attrs) {\n return new LocaleSet(attrs);\n }\n\n static meridiem(attrs) {\n return new Meridiem(attrs);\n }\n\n static meridiemNames(attrs) {\n return new MeridiemNames(attrs);\n }\n\n static month(attrs) {\n return new Month(attrs);\n }\n\n static monthNames(attrs) {\n return new MonthNames(attrs);\n }\n\n static numberPattern(attrs) {\n return new NumberPattern(attrs);\n }\n\n static numberPatterns(attrs) {\n return new NumberPatterns(attrs);\n }\n\n static numberSymbol(attrs) {\n return new NumberSymbol(attrs);\n }\n\n static numberSymbols(attrs) {\n return new NumberSymbols(attrs);\n }\n\n static timePattern(attrs) {\n return new TimePattern(attrs);\n }\n\n static timePatterns(attrs) {\n return new TimePatterns(attrs);\n }\n\n static typeFace(attrs) {\n return new TypeFace(attrs);\n }\n\n static typeFaces(attrs) {\n return new TypeFaces(attrs);\n }\n}\n\nexport { LocaleSetNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport { XFAObject } from \"./xfa_object.js\";\n\nconst SIGNATURE_NS_ID = NamespaceIds.signature.id;\n\nclass Signature extends XFAObject {\n constructor(attributes) {\n super(SIGNATURE_NS_ID, \"signature\", /* hasChildren = */ true);\n }\n}\n\nclass SignatureNamespace {\n static [$buildXFAObject](name, attributes) {\n if (SignatureNamespace.hasOwnProperty(name)) {\n return SignatureNamespace[name](attributes);\n }\n return undefined;\n }\n\n static signature(attributes) {\n return new Signature(attributes);\n }\n}\n\nexport { SignatureNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport { XFAObject } from \"./xfa_object.js\";\n\nconst STYLESHEET_NS_ID = NamespaceIds.stylesheet.id;\n\nclass Stylesheet extends XFAObject {\n constructor(attributes) {\n super(STYLESHEET_NS_ID, \"stylesheet\", /* hasChildren = */ true);\n }\n}\n\nclass StylesheetNamespace {\n static [$buildXFAObject](name, attributes) {\n if (StylesheetNamespace.hasOwnProperty(name)) {\n return StylesheetNamespace[name](attributes);\n }\n return undefined;\n }\n\n static stylesheet(attributes) {\n return new Stylesheet(attributes);\n }\n}\n\nexport { StylesheetNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n $namespaceId,\n $nodeName,\n $onChildCheck,\n XFAObject,\n XFAObjectArray,\n} from \"./xfa_object.js\";\n\nconst XDP_NS_ID = NamespaceIds.xdp.id;\n\nclass Xdp extends XFAObject {\n constructor(attributes) {\n super(XDP_NS_ID, \"xdp\", /* hasChildren = */ true);\n this.uuid = attributes.uuid || \"\";\n this.timeStamp = attributes.timeStamp || \"\";\n this.config = null;\n this.connectionSet = null;\n this.datasets = null;\n this.localeSet = null;\n this.stylesheet = new XFAObjectArray();\n this.template = null;\n }\n\n [$onChildCheck](child) {\n const ns = NamespaceIds[child[$nodeName]];\n return ns && child[$namespaceId] === ns.id;\n }\n}\n\nclass XdpNamespace {\n static [$buildXFAObject](name, attributes) {\n if (XdpNamespace.hasOwnProperty(name)) {\n return XdpNamespace[name](attributes);\n }\n return undefined;\n }\n\n static xdp(attributes) {\n return new Xdp(attributes);\n }\n}\n\nexport { XdpNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $acceptWhitespace,\n $childrenToHTML,\n $clean,\n $content,\n $extra,\n $getChildren,\n $getParent,\n $globalData,\n $nodeName,\n $onText,\n $pushGlyphs,\n $text,\n $toHTML,\n XmlObject,\n} from \"./xfa_object.js\";\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n fixTextIndent,\n fixURL,\n measureToString,\n setFontFamily,\n} from \"./html_utils.js\";\nimport { getMeasurement, HTMLResult, stripQuotes } from \"./utils.js\";\n\nconst XHTML_NS_ID = NamespaceIds.xhtml.id;\nconst $richText = Symbol();\n\nconst VALID_STYLES = new Set([\n \"color\",\n \"font\",\n \"font-family\",\n \"font-size\",\n \"font-stretch\",\n \"font-style\",\n \"font-weight\",\n \"margin\",\n \"margin-bottom\",\n \"margin-left\",\n \"margin-right\",\n \"margin-top\",\n \"letter-spacing\",\n \"line-height\",\n \"orphans\",\n \"page-break-after\",\n \"page-break-before\",\n \"page-break-inside\",\n \"tab-interval\",\n \"tab-stop\",\n \"text-align\",\n \"text-decoration\",\n \"text-indent\",\n \"vertical-align\",\n \"widows\",\n \"kerning-mode\",\n \"xfa-font-horizontal-scale\",\n \"xfa-font-vertical-scale\",\n \"xfa-spacerun\",\n \"xfa-tab-stops\",\n]);\n\nconst StyleMapping = new Map([\n [\"page-break-after\", \"breakAfter\"],\n [\"page-break-before\", \"breakBefore\"],\n [\"page-break-inside\", \"breakInside\"],\n [\"kerning-mode\", value => (value === \"none\" ? \"none\" : \"normal\")],\n [\n \"xfa-font-horizontal-scale\",\n value =>\n `scaleX(${Math.max(0, Math.min(parseInt(value) / 100)).toFixed(2)})`,\n ],\n [\n \"xfa-font-vertical-scale\",\n value =>\n `scaleY(${Math.max(0, Math.min(parseInt(value) / 100)).toFixed(2)})`,\n ],\n [\"xfa-spacerun\", \"\"],\n [\"xfa-tab-stops\", \"\"],\n [\n \"font-size\",\n (value, original) => {\n value = original.fontSize = getMeasurement(value);\n return measureToString(0.99 * value);\n },\n ],\n [\"letter-spacing\", value => measureToString(getMeasurement(value))],\n [\"line-height\", value => measureToString(getMeasurement(value))],\n [\"margin\", value => measureToString(getMeasurement(value))],\n [\"margin-bottom\", value => measureToString(getMeasurement(value))],\n [\"margin-left\", value => measureToString(getMeasurement(value))],\n [\"margin-right\", value => measureToString(getMeasurement(value))],\n [\"margin-top\", value => measureToString(getMeasurement(value))],\n [\"text-indent\", value => measureToString(getMeasurement(value))],\n [\"font-family\", value => value],\n [\"vertical-align\", value => measureToString(getMeasurement(value))],\n]);\n\nconst spacesRegExp = /\\s+/g;\nconst crlfRegExp = /[\\r\\n]+/g;\nconst crlfForRichTextRegExp = /\\r\\n?/g;\n\nfunction mapStyle(styleStr, node, richText) {\n const style = Object.create(null);\n if (!styleStr) {\n return style;\n }\n const original = Object.create(null);\n for (const [key, value] of styleStr.split(\";\").map(s => s.split(\":\", 2))) {\n const mapping = StyleMapping.get(key);\n if (mapping === \"\") {\n continue;\n }\n let newValue = value;\n if (mapping) {\n if (typeof mapping === \"string\") {\n newValue = mapping;\n } else {\n newValue = mapping(value, original);\n }\n }\n if (key.endsWith(\"scale\")) {\n if (style.transform) {\n style.transform = `${style[key]} ${newValue}`;\n } else {\n style.transform = newValue;\n }\n } else {\n style[key.replaceAll(/-([a-zA-Z])/g, (_, x) => x.toUpperCase())] =\n newValue;\n }\n }\n\n if (style.fontFamily) {\n setFontFamily(\n {\n typeface: style.fontFamily,\n weight: style.fontWeight || \"normal\",\n posture: style.fontStyle || \"normal\",\n size: original.fontSize || 0,\n },\n node,\n node[$globalData].fontFinder,\n style\n );\n }\n\n if (\n richText &&\n style.verticalAlign &&\n style.verticalAlign !== \"0px\" &&\n style.fontSize\n ) {\n // A non-zero verticalAlign means that we've a sub/super-script and\n // consequently the font size must be decreased.\n // https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf#G11.2097514\n // And the two following factors to position the scripts have been\n // found here:\n // https://en.wikipedia.org/wiki/Subscript_and_superscript#Desktop_publishing\n const SUB_SUPER_SCRIPT_FACTOR = 0.583;\n const VERTICAL_FACTOR = 0.333;\n const fontSize = getMeasurement(style.fontSize);\n style.fontSize = measureToString(fontSize * SUB_SUPER_SCRIPT_FACTOR);\n style.verticalAlign = measureToString(\n Math.sign(getMeasurement(style.verticalAlign)) *\n fontSize *\n VERTICAL_FACTOR\n );\n }\n\n fixTextIndent(style);\n return style;\n}\n\nfunction checkStyle(node) {\n if (!node.style) {\n return \"\";\n }\n\n // Remove any non-allowed keys.\n return node.style\n .trim()\n .split(/\\s*;\\s*/)\n .filter(s => !!s)\n .map(s => s.split(/\\s*:\\s*/, 2))\n .filter(([key, value]) => {\n if (key === \"font-family\") {\n node[$globalData].usedTypefaces.add(value);\n }\n return VALID_STYLES.has(key);\n })\n .map(kv => kv.join(\":\"))\n .join(\";\");\n}\n\nconst NoWhites = new Set([\"body\", \"html\"]);\n\nclass XhtmlObject extends XmlObject {\n constructor(attributes, name) {\n super(XHTML_NS_ID, name);\n this[$richText] = false;\n this.style = attributes.style || \"\";\n }\n\n [$clean](builder) {\n super[$clean](builder);\n this.style = checkStyle(this);\n }\n\n [$acceptWhitespace]() {\n return !NoWhites.has(this[$nodeName]);\n }\n\n [$onText](str, richText = false) {\n if (!richText) {\n str = str.replace(crlfRegExp, \"\");\n if (!this.style.includes(\"xfa-spacerun:yes\")) {\n str = str.replace(spacesRegExp, \" \");\n }\n } else {\n this[$richText] = true;\n }\n\n if (str) {\n this[$content] += str;\n }\n }\n\n [$pushGlyphs](measure, mustPop = true) {\n const xfaFont = Object.create(null);\n const margin = {\n top: NaN,\n bottom: NaN,\n left: NaN,\n right: NaN,\n };\n let lineHeight = null;\n for (const [key, value] of this.style\n .split(\";\")\n .map(s => s.split(\":\", 2))) {\n switch (key) {\n case \"font-family\":\n xfaFont.typeface = stripQuotes(value);\n break;\n case \"font-size\":\n xfaFont.size = getMeasurement(value);\n break;\n case \"font-weight\":\n xfaFont.weight = value;\n break;\n case \"font-style\":\n xfaFont.posture = value;\n break;\n case \"letter-spacing\":\n xfaFont.letterSpacing = getMeasurement(value);\n break;\n case \"margin\":\n const values = value.split(/ \\t/).map(x => getMeasurement(x));\n switch (values.length) {\n case 1:\n margin.top =\n margin.bottom =\n margin.left =\n margin.right =\n values[0];\n break;\n case 2:\n margin.top = margin.bottom = values[0];\n margin.left = margin.right = values[1];\n break;\n case 3:\n margin.top = values[0];\n margin.bottom = values[2];\n margin.left = margin.right = values[1];\n break;\n case 4:\n margin.top = values[0];\n margin.left = values[1];\n margin.bottom = values[2];\n margin.right = values[3];\n break;\n }\n break;\n case \"margin-top\":\n margin.top = getMeasurement(value);\n break;\n case \"margin-bottom\":\n margin.bottom = getMeasurement(value);\n break;\n case \"margin-left\":\n margin.left = getMeasurement(value);\n break;\n case \"margin-right\":\n margin.right = getMeasurement(value);\n break;\n case \"line-height\":\n lineHeight = getMeasurement(value);\n break;\n }\n }\n\n measure.pushData(xfaFont, margin, lineHeight);\n\n if (this[$content]) {\n measure.addString(this[$content]);\n } else {\n for (const child of this[$getChildren]()) {\n if (child[$nodeName] === \"#text\") {\n measure.addString(child[$content]);\n continue;\n }\n child[$pushGlyphs](measure);\n }\n }\n\n if (mustPop) {\n measure.popFont();\n }\n }\n\n [$toHTML](availableSpace) {\n const children = [];\n this[$extra] = {\n children,\n };\n\n this[$childrenToHTML]({});\n\n if (children.length === 0 && !this[$content]) {\n return HTMLResult.EMPTY;\n }\n\n let value;\n if (this[$richText]) {\n value = this[$content]\n ? this[$content].replace(crlfForRichTextRegExp, \"\\n\")\n : undefined;\n } else {\n value = this[$content] || undefined;\n }\n\n return HTMLResult.success({\n name: this[$nodeName],\n attributes: {\n href: this.href,\n style: mapStyle(this.style, this, this[$richText]),\n },\n children,\n value,\n });\n }\n}\n\nclass A extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"a\");\n this.href = fixURL(attributes.href) || \"\";\n }\n}\n\nclass B extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"b\");\n }\n\n [$pushGlyphs](measure) {\n measure.pushFont({ weight: \"bold\" });\n super[$pushGlyphs](measure);\n measure.popFont();\n }\n}\n\nclass Body extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"body\");\n }\n\n [$toHTML](availableSpace) {\n const res = super[$toHTML](availableSpace);\n const { html } = res;\n if (!html) {\n return HTMLResult.EMPTY;\n }\n html.name = \"div\";\n html.attributes.class = [\"xfaRich\"];\n return res;\n }\n}\n\nclass Br extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"br\");\n }\n\n [$text]() {\n return \"\\n\";\n }\n\n [$pushGlyphs](measure) {\n measure.addString(\"\\n\");\n }\n\n [$toHTML](availableSpace) {\n return HTMLResult.success({\n name: \"br\",\n });\n }\n}\n\nclass Html extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"html\");\n }\n\n [$toHTML](availableSpace) {\n const children = [];\n this[$extra] = {\n children,\n };\n\n this[$childrenToHTML]({});\n if (children.length === 0) {\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n class: [\"xfaRich\"],\n style: {},\n },\n value: this[$content] || \"\",\n });\n }\n\n if (children.length === 1) {\n const child = children[0];\n if (child.attributes && child.attributes.class.includes(\"xfaRich\")) {\n return HTMLResult.success(child);\n }\n }\n\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n class: [\"xfaRich\"],\n style: {},\n },\n children,\n });\n }\n}\n\nclass I extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"i\");\n }\n\n [$pushGlyphs](measure) {\n measure.pushFont({ posture: \"italic\" });\n super[$pushGlyphs](measure);\n measure.popFont();\n }\n}\n\nclass Li extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"li\");\n }\n}\n\nclass Ol extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"ol\");\n }\n}\n\nclass P extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"p\");\n }\n\n [$pushGlyphs](measure) {\n super[$pushGlyphs](measure, /* mustPop = */ false);\n measure.addString(\"\\n\");\n measure.addPara();\n measure.popFont();\n }\n\n [$text]() {\n const siblings = this[$getParent]()[$getChildren]();\n if (siblings[siblings.length - 1] === this) {\n return super[$text]();\n }\n return super[$text]() + \"\\n\";\n }\n}\n\nclass Span extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"span\");\n }\n}\n\nclass Sub extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"sub\");\n }\n}\n\nclass Sup extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"sup\");\n }\n}\n\nclass Ul extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"ul\");\n }\n}\n\nclass XhtmlNamespace {\n static [$buildXFAObject](name, attributes) {\n if (XhtmlNamespace.hasOwnProperty(name)) {\n return XhtmlNamespace[name](attributes);\n }\n return undefined;\n }\n\n static a(attributes) {\n return new A(attributes);\n }\n\n static b(attributes) {\n return new B(attributes);\n }\n\n static body(attributes) {\n return new Body(attributes);\n }\n\n static br(attributes) {\n return new Br(attributes);\n }\n\n static html(attributes) {\n return new Html(attributes);\n }\n\n static i(attributes) {\n return new I(attributes);\n }\n\n static li(attributes) {\n return new Li(attributes);\n }\n\n static ol(attributes) {\n return new Ol(attributes);\n }\n\n static p(attributes) {\n return new P(attributes);\n }\n\n static span(attributes) {\n return new Span(attributes);\n }\n\n static sub(attributes) {\n return new Sub(attributes);\n }\n\n static sup(attributes) {\n return new Sup(attributes);\n }\n\n static ul(attributes) {\n return new Ul(attributes);\n }\n}\n\nexport { XhtmlNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject } from \"./namespaces.js\";\nimport { XmlObject } from \"./xfa_object.js\";\n\nclass UnknownNamespace {\n constructor(nsId) {\n this.namespaceId = nsId;\n }\n\n [$buildXFAObject](name, attributes) {\n return new XmlObject(this.namespaceId, name, attributes);\n }\n}\n\nexport { UnknownNamespace };\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { stringToUTF8String, warn } from \"../shared/util.js\";\nimport { parseXFAPath } from \"./core_utils.js\";\nimport { SimpleXMLParser } from \"./xml_parser.js\";\n\nfunction decodeString(str) {\n try {\n return stringToUTF8String(str);\n } catch (ex) {\n warn(`UTF-8 decoding failed: \"${ex}\".`);\n return str;\n }\n}\n\nclass DatasetXMLParser extends SimpleXMLParser {\n constructor(options) {\n super(options);\n this.node = null;\n }\n\n onEndElement(name) {\n const node = super.onEndElement(name);\n if (node && name === \"xfa:datasets\") {\n this.node = node;\n\n // We don't need anything else, so just kill the parser.\n throw new Error(\"Aborting DatasetXMLParser.\");\n }\n }\n}\n\nclass DatasetReader {\n constructor(data) {\n if (data.datasets) {\n this.node = new SimpleXMLParser({ hasAttributes: true }).parseFromString(\n data.datasets\n ).documentElement;\n } else {\n const parser = new DatasetXMLParser({ hasAttributes: true });\n try {\n parser.parseFromString(data[\"xdp:xdp\"]);\n } catch (_) {}\n this.node = parser.node;\n }\n }\n\n getValue(path) {\n if (!this.node || !path) {\n return \"\";\n }\n const node = this.node.searchNode(parseXFAPath(path), 0);\n\n if (!node) {\n return \"\";\n }\n\n const first = node.firstChild;\n if (first && first.nodeName === \"value\") {\n return node.children.map(child => decodeString(child.textContent));\n }\n\n return decodeString(node.textContent);\n }\n}\n\nexport { DatasetReader };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n bytesToString,\n FormatError,\n info,\n InvalidPDFException,\n warn,\n} from \"../shared/util.js\";\nimport { CIRCULAR_REF, Cmd, Dict, isCmd, Ref, RefSet } from \"./primitives.js\";\nimport {\n DocStats,\n MissingDataException,\n ParserEOFException,\n XRefEntryException,\n XRefParseException,\n} from \"./core_utils.js\";\nimport { Lexer, Parser } from \"./parser.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { CipherTransformFactory } from \"./crypto.js\";\n\nclass XRef {\n constructor(stream, pdfManager) {\n this.stream = stream;\n this.pdfManager = pdfManager;\n this.entries = [];\n this.xrefstms = Object.create(null);\n this._cacheMap = new Map(); // Prepare the XRef cache.\n this._pendingRefs = new RefSet();\n this.stats = new DocStats(pdfManager.msgHandler);\n this._newRefNum = null;\n }\n\n getNewRef() {\n if (this._newRefNum === null) {\n this._newRefNum = this.entries.length;\n }\n return Ref.get(this._newRefNum++, 0);\n }\n\n resetNewRef() {\n this._newRefNum = null;\n }\n\n setStartXRef(startXRef) {\n // Store the starting positions of xref tables as we process them\n // so we can recover from missing data errors\n this.startXRefQueue = [startXRef];\n }\n\n parse(recoveryMode = false) {\n let trailerDict;\n if (!recoveryMode) {\n trailerDict = this.readXRef();\n } else {\n warn(\"Indexing all PDF objects\");\n trailerDict = this.indexObjects();\n }\n trailerDict.assignXref(this);\n this.trailer = trailerDict;\n\n let encrypt;\n try {\n encrypt = trailerDict.get(\"Encrypt\");\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`XRef.parse - Invalid \"Encrypt\" reference: \"${ex}\".`);\n }\n if (encrypt instanceof Dict) {\n const ids = trailerDict.get(\"ID\");\n const fileId = ids && ids.length ? ids[0] : \"\";\n // The 'Encrypt' dictionary itself should not be encrypted, and by\n // setting `suppressEncryption` we can prevent an infinite loop inside\n // of `XRef_fetchUncompressed` if the dictionary contains indirect\n // objects (fixes issue7665.pdf).\n encrypt.suppressEncryption = true;\n this.encrypt = new CipherTransformFactory(\n encrypt,\n fileId,\n this.pdfManager.password\n );\n }\n\n // Get the root dictionary (catalog) object, and do some basic validation.\n let root;\n try {\n root = trailerDict.get(\"Root\");\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`XRef.parse - Invalid \"Root\" reference: \"${ex}\".`);\n }\n if (root instanceof Dict) {\n try {\n const pages = root.get(\"Pages\");\n if (pages instanceof Dict) {\n this.root = root;\n return;\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`XRef.parse - Invalid \"Pages\" reference: \"${ex}\".`);\n }\n }\n\n if (!recoveryMode) {\n throw new XRefParseException();\n }\n // Even recovery failed, there's nothing more we can do here.\n throw new InvalidPDFException(\"Invalid Root reference.\");\n }\n\n processXRefTable(parser) {\n if (!(\"tableState\" in this)) {\n // Stores state of the table as we process it so we can resume\n // from middle of table in case of missing data error\n this.tableState = {\n entryNum: 0,\n streamPos: parser.lexer.stream.pos,\n parserBuf1: parser.buf1,\n parserBuf2: parser.buf2,\n };\n }\n\n const obj = this.readXRefTable(parser);\n\n // Sanity check\n if (!isCmd(obj, \"trailer\")) {\n throw new FormatError(\n \"Invalid XRef table: could not find trailer dictionary\"\n );\n }\n // Read trailer dictionary, e.g.\n // trailer\n // << /Size 22\n // /Root 20R\n // /Info 10R\n // /ID [ <81b14aafa313db63dbd6f981e49f94f4> ]\n // >>\n // The parser goes through the entire stream << ... >> and provides\n // a getter interface for the key-value table\n let dict = parser.getObj();\n\n // The pdflib PDF generator can generate a nested trailer dictionary\n if (!(dict instanceof Dict) && dict.dict) {\n dict = dict.dict;\n }\n if (!(dict instanceof Dict)) {\n throw new FormatError(\n \"Invalid XRef table: could not parse trailer dictionary\"\n );\n }\n delete this.tableState;\n\n return dict;\n }\n\n readXRefTable(parser) {\n // Example of cross-reference table:\n // xref\n // 0 1 <-- subsection header (first obj #, obj count)\n // 0000000000 65535 f <-- actual object (offset, generation #, f/n)\n // 23 2 <-- subsection header ... and so on ...\n // 0000025518 00002 n\n // 0000025635 00000 n\n // trailer\n // ...\n\n const stream = parser.lexer.stream;\n const tableState = this.tableState;\n stream.pos = tableState.streamPos;\n parser.buf1 = tableState.parserBuf1;\n parser.buf2 = tableState.parserBuf2;\n\n // Outer loop is over subsection headers\n let obj;\n\n while (true) {\n if (!(\"firstEntryNum\" in tableState) || !(\"entryCount\" in tableState)) {\n if (isCmd((obj = parser.getObj()), \"trailer\")) {\n break;\n }\n tableState.firstEntryNum = obj;\n tableState.entryCount = parser.getObj();\n }\n\n let first = tableState.firstEntryNum;\n const count = tableState.entryCount;\n if (!Number.isInteger(first) || !Number.isInteger(count)) {\n throw new FormatError(\n \"Invalid XRef table: wrong types in subsection header\"\n );\n }\n // Inner loop is over objects themselves\n for (let i = tableState.entryNum; i < count; i++) {\n tableState.streamPos = stream.pos;\n tableState.entryNum = i;\n tableState.parserBuf1 = parser.buf1;\n tableState.parserBuf2 = parser.buf2;\n\n const entry = {};\n entry.offset = parser.getObj();\n entry.gen = parser.getObj();\n const type = parser.getObj();\n\n if (type instanceof Cmd) {\n switch (type.cmd) {\n case \"f\":\n entry.free = true;\n break;\n case \"n\":\n entry.uncompressed = true;\n break;\n }\n }\n\n // Validate entry obj\n if (\n !Number.isInteger(entry.offset) ||\n !Number.isInteger(entry.gen) ||\n !(entry.free || entry.uncompressed)\n ) {\n throw new FormatError(\n `Invalid entry in XRef subsection: ${first}, ${count}`\n );\n }\n\n // The first xref table entry, i.e. obj 0, should be free. Attempting\n // to adjust an incorrect first obj # (fixes issue 3248 and 7229).\n if (i === 0 && entry.free && first === 1) {\n first = 0;\n }\n\n if (!this.entries[i + first]) {\n this.entries[i + first] = entry;\n }\n }\n\n tableState.entryNum = 0;\n tableState.streamPos = stream.pos;\n tableState.parserBuf1 = parser.buf1;\n tableState.parserBuf2 = parser.buf2;\n delete tableState.firstEntryNum;\n delete tableState.entryCount;\n }\n\n // Sanity check: as per spec, first object must be free\n if (this.entries[0] && !this.entries[0].free) {\n throw new FormatError(\"Invalid XRef table: unexpected first object\");\n }\n return obj;\n }\n\n processXRefStream(stream) {\n if (!(\"streamState\" in this)) {\n // Stores state of the stream as we process it so we can resume\n // from middle of stream in case of missing data error\n const streamParameters = stream.dict;\n const byteWidths = streamParameters.get(\"W\");\n let range = streamParameters.get(\"Index\");\n if (!range) {\n range = [0, streamParameters.get(\"Size\")];\n }\n\n this.streamState = {\n entryRanges: range,\n byteWidths,\n entryNum: 0,\n streamPos: stream.pos,\n };\n }\n this.readXRefStream(stream);\n delete this.streamState;\n\n return stream.dict;\n }\n\n readXRefStream(stream) {\n const streamState = this.streamState;\n stream.pos = streamState.streamPos;\n\n const [typeFieldWidth, offsetFieldWidth, generationFieldWidth] =\n streamState.byteWidths;\n\n const entryRanges = streamState.entryRanges;\n while (entryRanges.length > 0) {\n const [first, n] = entryRanges;\n\n if (!Number.isInteger(first) || !Number.isInteger(n)) {\n throw new FormatError(`Invalid XRef range fields: ${first}, ${n}`);\n }\n if (\n !Number.isInteger(typeFieldWidth) ||\n !Number.isInteger(offsetFieldWidth) ||\n !Number.isInteger(generationFieldWidth)\n ) {\n throw new FormatError(\n `Invalid XRef entry fields length: ${first}, ${n}`\n );\n }\n for (let i = streamState.entryNum; i < n; ++i) {\n streamState.entryNum = i;\n streamState.streamPos = stream.pos;\n\n let type = 0,\n offset = 0,\n generation = 0;\n for (let j = 0; j < typeFieldWidth; ++j) {\n const typeByte = stream.getByte();\n if (typeByte === -1) {\n throw new FormatError(\"Invalid XRef byteWidths 'type'.\");\n }\n type = (type << 8) | typeByte;\n }\n // if type field is absent, its default value is 1\n if (typeFieldWidth === 0) {\n type = 1;\n }\n for (let j = 0; j < offsetFieldWidth; ++j) {\n const offsetByte = stream.getByte();\n if (offsetByte === -1) {\n throw new FormatError(\"Invalid XRef byteWidths 'offset'.\");\n }\n offset = (offset << 8) | offsetByte;\n }\n for (let j = 0; j < generationFieldWidth; ++j) {\n const generationByte = stream.getByte();\n if (generationByte === -1) {\n throw new FormatError(\"Invalid XRef byteWidths 'generation'.\");\n }\n generation = (generation << 8) | generationByte;\n }\n const entry = {};\n entry.offset = offset;\n entry.gen = generation;\n switch (type) {\n case 0:\n entry.free = true;\n break;\n case 1:\n entry.uncompressed = true;\n break;\n case 2:\n break;\n default:\n throw new FormatError(`Invalid XRef entry type: ${type}`);\n }\n if (!this.entries[first + i]) {\n this.entries[first + i] = entry;\n }\n }\n\n streamState.entryNum = 0;\n streamState.streamPos = stream.pos;\n entryRanges.splice(0, 2);\n }\n }\n\n indexObjects() {\n // Simple scan through the PDF content to find objects,\n // trailers and XRef streams.\n const TAB = 0x9,\n LF = 0xa,\n CR = 0xd,\n SPACE = 0x20;\n const PERCENT = 0x25,\n LT = 0x3c;\n\n function readToken(data, offset) {\n let token = \"\",\n ch = data[offset];\n while (ch !== LF && ch !== CR && ch !== LT) {\n if (++offset >= data.length) {\n break;\n }\n token += String.fromCharCode(ch);\n ch = data[offset];\n }\n return token;\n }\n function skipUntil(data, offset, what) {\n const length = what.length,\n dataLength = data.length;\n let skipped = 0;\n // finding byte sequence\n while (offset < dataLength) {\n let i = 0;\n while (i < length && data[offset + i] === what[i]) {\n ++i;\n }\n if (i >= length) {\n break; // sequence found\n }\n offset++;\n skipped++;\n }\n return skipped;\n }\n const objRegExp = /^(\\d+)\\s+(\\d+)\\s+obj\\b/;\n const endobjRegExp = /\\bendobj[\\b\\s]$/;\n const nestedObjRegExp = /\\s+(\\d+\\s+\\d+\\s+obj[\\b\\s<])$/;\n const CHECK_CONTENT_LENGTH = 25;\n\n const trailerBytes = new Uint8Array([116, 114, 97, 105, 108, 101, 114]);\n const startxrefBytes = new Uint8Array([\n 115, 116, 97, 114, 116, 120, 114, 101, 102,\n ]);\n const objBytes = new Uint8Array([111, 98, 106]);\n const xrefBytes = new Uint8Array([47, 88, 82, 101, 102]);\n\n // Clear out any existing entries, since they may be bogus.\n this.entries.length = 0;\n this._cacheMap.clear();\n\n const stream = this.stream;\n stream.pos = 0;\n const buffer = stream.getBytes(),\n length = buffer.length;\n let position = stream.start;\n const trailers = [],\n xrefStms = [];\n while (position < length) {\n let ch = buffer[position];\n if (ch === TAB || ch === LF || ch === CR || ch === SPACE) {\n ++position;\n continue;\n }\n if (ch === PERCENT) {\n // %-comment\n do {\n ++position;\n if (position >= length) {\n break;\n }\n ch = buffer[position];\n } while (ch !== LF && ch !== CR);\n continue;\n }\n const token = readToken(buffer, position);\n let m;\n if (\n token.startsWith(\"xref\") &&\n (token.length === 4 || /\\s/.test(token[4]))\n ) {\n position += skipUntil(buffer, position, trailerBytes);\n trailers.push(position);\n position += skipUntil(buffer, position, startxrefBytes);\n } else if ((m = objRegExp.exec(token))) {\n const num = m[1] | 0,\n gen = m[2] | 0;\n\n let contentLength,\n startPos = position + token.length,\n updateEntries = false;\n if (!this.entries[num]) {\n updateEntries = true;\n } else if (this.entries[num].gen === gen) {\n // Before overwriting an existing entry, ensure that the new one won't\n // cause *immediate* errors when it's accessed (fixes issue13783.pdf).\n try {\n const parser = new Parser({\n lexer: new Lexer(stream.makeSubStream(startPos)),\n });\n parser.getObj();\n updateEntries = true;\n } catch (ex) {\n if (ex instanceof ParserEOFException) {\n warn(`indexObjects -- checking object (${token}): \"${ex}\".`);\n } else {\n // The error may come from the `Parser`-instance being initialized\n // without an `XRef`-instance (we don't have a usable one yet).\n updateEntries = true;\n }\n }\n }\n if (updateEntries) {\n this.entries[num] = {\n offset: position - stream.start,\n gen,\n uncompressed: true,\n };\n }\n\n // Find the next \"obj\" string, rather than \"endobj\", to ensure that\n // we won't skip over a new 'obj' operator in corrupt files where\n // 'endobj' operators are missing (fixes issue9105_reduced.pdf).\n while (startPos < buffer.length) {\n const endPos = startPos + skipUntil(buffer, startPos, objBytes) + 4;\n contentLength = endPos - position;\n\n const checkPos = Math.max(endPos - CHECK_CONTENT_LENGTH, startPos);\n const tokenStr = bytesToString(buffer.subarray(checkPos, endPos));\n\n // Check if the current object ends with an 'endobj' operator.\n if (endobjRegExp.test(tokenStr)) {\n break;\n } else {\n // Check if an \"obj\" occurrence is actually a new object,\n // i.e. the current object is missing the 'endobj' operator.\n const objToken = nestedObjRegExp.exec(tokenStr);\n\n if (objToken && objToken[1]) {\n warn(\n 'indexObjects: Found new \"obj\" inside of another \"obj\", ' +\n 'caused by missing \"endobj\" -- trying to recover.'\n );\n contentLength -= objToken[1].length;\n break;\n }\n }\n startPos = endPos;\n }\n const content = buffer.subarray(position, position + contentLength);\n\n // checking XRef stream suspect\n // (it shall have '/XRef' and next char is not a letter)\n const xrefTagOffset = skipUntil(content, 0, xrefBytes);\n if (xrefTagOffset < contentLength && content[xrefTagOffset + 5] < 64) {\n xrefStms.push(position - stream.start);\n this.xrefstms[position - stream.start] = 1; // Avoid recursion\n }\n\n position += contentLength;\n } else if (\n token.startsWith(\"trailer\") &&\n (token.length === 7 || /\\s/.test(token[7]))\n ) {\n trailers.push(position);\n position += skipUntil(buffer, position, startxrefBytes);\n } else {\n position += token.length + 1;\n }\n }\n // reading XRef streams\n for (let i = 0, ii = xrefStms.length; i < ii; ++i) {\n this.startXRefQueue.push(xrefStms[i]);\n this.readXRef(/* recoveryMode */ true);\n }\n // finding main trailer\n let trailerDict;\n for (let i = 0, ii = trailers.length; i < ii; ++i) {\n stream.pos = trailers[i];\n const parser = new Parser({\n lexer: new Lexer(stream),\n xref: this,\n allowStreams: true,\n recoveryMode: true,\n });\n const obj = parser.getObj();\n if (!isCmd(obj, \"trailer\")) {\n continue;\n }\n // read the trailer dictionary\n const dict = parser.getObj();\n if (!(dict instanceof Dict)) {\n continue;\n }\n // Do some basic validation of the trailer/root dictionary candidate.\n try {\n const rootDict = dict.get(\"Root\");\n if (!(rootDict instanceof Dict)) {\n continue;\n }\n const pagesDict = rootDict.get(\"Pages\");\n if (!(pagesDict instanceof Dict)) {\n continue;\n }\n const pagesCount = pagesDict.get(\"Count\");\n if (!Number.isInteger(pagesCount)) {\n continue;\n }\n // The top-level /Pages dictionary isn't obviously corrupt.\n } catch (ex) {\n continue;\n }\n // taking the first one with 'ID'\n if (dict.has(\"ID\")) {\n return dict;\n }\n // The current dictionary is a candidate, but continue searching.\n trailerDict = dict;\n }\n // No trailer with 'ID', taking last one (if exists).\n if (trailerDict) {\n return trailerDict;\n }\n // No trailer dictionary found, taking the \"top\"-dictionary (if exists).\n if (this.topDict) {\n return this.topDict;\n }\n // nothing helps\n throw new InvalidPDFException(\"Invalid PDF structure.\");\n }\n\n readXRef(recoveryMode = false) {\n const stream = this.stream;\n // Keep track of already parsed XRef tables, to prevent an infinite loop\n // when parsing corrupt PDF files where e.g. the /Prev entries create a\n // circular dependency between tables (fixes bug1393476.pdf).\n const startXRefParsedCache = new Set();\n\n try {\n while (this.startXRefQueue.length) {\n const startXRef = this.startXRefQueue[0];\n\n if (startXRefParsedCache.has(startXRef)) {\n warn(\"readXRef - skipping XRef table since it was already parsed.\");\n this.startXRefQueue.shift();\n continue;\n }\n startXRefParsedCache.add(startXRef);\n\n stream.pos = startXRef + stream.start;\n\n const parser = new Parser({\n lexer: new Lexer(stream),\n xref: this,\n allowStreams: true,\n });\n let obj = parser.getObj();\n let dict;\n\n // Get dictionary\n if (isCmd(obj, \"xref\")) {\n // Parse end-of-file XRef\n dict = this.processXRefTable(parser);\n if (!this.topDict) {\n this.topDict = dict;\n }\n\n // Recursively get other XRefs 'XRefStm', if any\n obj = dict.get(\"XRefStm\");\n if (Number.isInteger(obj)) {\n const pos = obj;\n // ignore previously loaded xref streams\n // (possible infinite recursion)\n if (!(pos in this.xrefstms)) {\n this.xrefstms[pos] = 1;\n this.startXRefQueue.push(pos);\n }\n }\n } else if (Number.isInteger(obj)) {\n // Parse in-stream XRef\n if (\n !Number.isInteger(parser.getObj()) ||\n !isCmd(parser.getObj(), \"obj\") ||\n !((obj = parser.getObj()) instanceof BaseStream)\n ) {\n throw new FormatError(\"Invalid XRef stream\");\n }\n dict = this.processXRefStream(obj);\n if (!this.topDict) {\n this.topDict = dict;\n }\n if (!dict) {\n throw new FormatError(\"Failed to read XRef stream\");\n }\n } else {\n throw new FormatError(\"Invalid XRef stream header\");\n }\n\n // Recursively get previous dictionary, if any\n obj = dict.get(\"Prev\");\n if (Number.isInteger(obj)) {\n this.startXRefQueue.push(obj);\n } else if (obj instanceof Ref) {\n // The spec says Prev must not be a reference, i.e. \"/Prev NNN\"\n // This is a fallback for non-compliant PDFs, i.e. \"/Prev NNN 0 R\"\n this.startXRefQueue.push(obj.num);\n }\n\n this.startXRefQueue.shift();\n }\n\n return this.topDict;\n } catch (e) {\n if (e instanceof MissingDataException) {\n throw e;\n }\n info(\"(while reading XRef): \" + e);\n\n this.startXRefQueue.shift();\n }\n\n if (recoveryMode) {\n return undefined;\n }\n throw new XRefParseException();\n }\n\n getEntry(i) {\n const xrefEntry = this.entries[i];\n if (xrefEntry && !xrefEntry.free && xrefEntry.offset) {\n return xrefEntry;\n }\n return null;\n }\n\n fetchIfRef(obj, suppressEncryption = false) {\n if (obj instanceof Ref) {\n return this.fetch(obj, suppressEncryption);\n }\n return obj;\n }\n\n fetch(ref, suppressEncryption = false) {\n if (!(ref instanceof Ref)) {\n throw new Error(\"ref object is not a reference\");\n }\n const num = ref.num;\n\n // The XRef cache is populated with objects which are obtained through\n // `Parser.getObj`, and indirectly via `Lexer.getObj`. Neither of these\n // methods should ever return `undefined` (note the `assert` calls below).\n const cacheEntry = this._cacheMap.get(num);\n if (cacheEntry !== undefined) {\n // In documents with Object Streams, it's possible that cached `Dict`s\n // have not been assigned an `objId` yet (see e.g. issue3115r.pdf).\n if (cacheEntry instanceof Dict && !cacheEntry.objId) {\n cacheEntry.objId = ref.toString();\n }\n return cacheEntry;\n }\n let xrefEntry = this.getEntry(num);\n\n if (xrefEntry === null) {\n // The referenced entry can be free.\n this._cacheMap.set(num, xrefEntry);\n return xrefEntry;\n }\n // Prevent circular references, in corrupt PDF documents, from hanging the\n // worker-thread. This relies, implicitly, on the parsing being synchronous.\n if (this._pendingRefs.has(ref)) {\n this._pendingRefs.remove(ref);\n\n warn(`Ignoring circular reference: ${ref}.`);\n return CIRCULAR_REF;\n }\n this._pendingRefs.put(ref);\n\n try {\n if (xrefEntry.uncompressed) {\n xrefEntry = this.fetchUncompressed(ref, xrefEntry, suppressEncryption);\n } else {\n xrefEntry = this.fetchCompressed(ref, xrefEntry, suppressEncryption);\n }\n this._pendingRefs.remove(ref);\n } catch (ex) {\n this._pendingRefs.remove(ref);\n throw ex;\n }\n if (xrefEntry instanceof Dict) {\n xrefEntry.objId = ref.toString();\n } else if (xrefEntry instanceof BaseStream) {\n xrefEntry.dict.objId = ref.toString();\n }\n return xrefEntry;\n }\n\n fetchUncompressed(ref, xrefEntry, suppressEncryption = false) {\n const gen = ref.gen;\n let num = ref.num;\n if (xrefEntry.gen !== gen) {\n throw new XRefEntryException(`Inconsistent generation in XRef: ${ref}`);\n }\n const stream = this.stream.makeSubStream(\n xrefEntry.offset + this.stream.start\n );\n const parser = new Parser({\n lexer: new Lexer(stream),\n xref: this,\n allowStreams: true,\n });\n const obj1 = parser.getObj();\n const obj2 = parser.getObj();\n const obj3 = parser.getObj();\n\n if (obj1 !== num || obj2 !== gen || !(obj3 instanceof Cmd)) {\n throw new XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`);\n }\n if (obj3.cmd !== \"obj\") {\n // some bad PDFs use \"obj1234\" and really mean 1234\n if (obj3.cmd.startsWith(\"obj\")) {\n num = parseInt(obj3.cmd.substring(3), 10);\n if (!Number.isNaN(num)) {\n return num;\n }\n }\n throw new XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`);\n }\n if (this.encrypt && !suppressEncryption) {\n xrefEntry = parser.getObj(this.encrypt.createCipherTransform(num, gen));\n } else {\n xrefEntry = parser.getObj();\n }\n if (!(xrefEntry instanceof BaseStream)) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n xrefEntry !== undefined,\n 'fetchUncompressed: The \"xrefEntry\" cannot be undefined.'\n );\n }\n this._cacheMap.set(num, xrefEntry);\n }\n return xrefEntry;\n }\n\n fetchCompressed(ref, xrefEntry, suppressEncryption = false) {\n const tableOffset = xrefEntry.offset;\n const stream = this.fetch(Ref.get(tableOffset, 0));\n if (!(stream instanceof BaseStream)) {\n throw new FormatError(\"bad ObjStm stream\");\n }\n const first = stream.dict.get(\"First\");\n const n = stream.dict.get(\"N\");\n if (!Number.isInteger(first) || !Number.isInteger(n)) {\n throw new FormatError(\"invalid first and n parameters for ObjStm stream\");\n }\n let parser = new Parser({\n lexer: new Lexer(stream),\n xref: this,\n allowStreams: true,\n });\n const nums = new Array(n);\n const offsets = new Array(n);\n // read the object numbers to populate cache\n for (let i = 0; i < n; ++i) {\n const num = parser.getObj();\n if (!Number.isInteger(num)) {\n throw new FormatError(\n `invalid object number in the ObjStm stream: ${num}`\n );\n }\n const offset = parser.getObj();\n if (!Number.isInteger(offset)) {\n throw new FormatError(\n `invalid object offset in the ObjStm stream: ${offset}`\n );\n }\n nums[i] = num;\n offsets[i] = offset;\n }\n\n const start = (stream.start || 0) + first;\n const entries = new Array(n);\n // read stream objects for cache\n for (let i = 0; i < n; ++i) {\n const length = i < n - 1 ? offsets[i + 1] - offsets[i] : undefined;\n if (length < 0) {\n throw new FormatError(\"Invalid offset in the ObjStm stream.\");\n }\n parser = new Parser({\n lexer: new Lexer(\n stream.makeSubStream(start + offsets[i], length, stream.dict)\n ),\n xref: this,\n allowStreams: true,\n });\n\n const obj = parser.getObj();\n entries[i] = obj;\n if (obj instanceof BaseStream) {\n continue;\n }\n const num = nums[i],\n entry = this.entries[num];\n if (entry && entry.offset === tableOffset && entry.gen === i) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n obj !== undefined,\n 'fetchCompressed: The \"obj\" cannot be undefined.'\n );\n }\n this._cacheMap.set(num, obj);\n }\n }\n xrefEntry = entries[xrefEntry.gen];\n if (xrefEntry === undefined) {\n throw new XRefEntryException(`Bad (compressed) XRef entry: ${ref}`);\n }\n return xrefEntry;\n }\n\n async fetchIfRefAsync(obj, suppressEncryption) {\n if (obj instanceof Ref) {\n return this.fetchAsync(obj, suppressEncryption);\n }\n return obj;\n }\n\n async fetchAsync(ref, suppressEncryption) {\n try {\n return this.fetch(ref, suppressEncryption);\n } catch (ex) {\n if (!(ex instanceof MissingDataException)) {\n throw ex;\n }\n await this.pdfManager.requestRange(ex.begin, ex.end);\n return this.fetchAsync(ref, suppressEncryption);\n }\n }\n\n getCatalogObj() {\n return this.root;\n }\n}\n\nexport { XRef };\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AbortException,\n assert,\n createPromiseCapability,\n MissingPDFException,\n PasswordException,\n UnexpectedResponseException,\n UnknownErrorException,\n unreachable,\n} from \"./util.js\";\n\nconst CallbackKind = {\n UNKNOWN: 0,\n DATA: 1,\n ERROR: 2,\n};\n\nconst StreamKind = {\n UNKNOWN: 0,\n CANCEL: 1,\n CANCEL_COMPLETE: 2,\n CLOSE: 3,\n ENQUEUE: 4,\n ERROR: 5,\n PULL: 6,\n PULL_COMPLETE: 7,\n START_COMPLETE: 8,\n};\n\nfunction wrapReason(reason) {\n if (\n !(\n reason instanceof Error ||\n (typeof reason === \"object\" && reason !== null)\n )\n ) {\n unreachable(\n 'wrapReason: Expected \"reason\" to be a (possibly cloned) Error.'\n );\n }\n switch (reason.name) {\n case \"AbortException\":\n return new AbortException(reason.message);\n case \"MissingPDFException\":\n return new MissingPDFException(reason.message);\n case \"PasswordException\":\n return new PasswordException(reason.message, reason.code);\n case \"UnexpectedResponseException\":\n return new UnexpectedResponseException(reason.message, reason.status);\n case \"UnknownErrorException\":\n return new UnknownErrorException(reason.message, reason.details);\n default:\n return new UnknownErrorException(reason.message, reason.toString());\n }\n}\n\nclass MessageHandler {\n constructor(sourceName, targetName, comObj) {\n this.sourceName = sourceName;\n this.targetName = targetName;\n this.comObj = comObj;\n this.callbackId = 1;\n this.streamId = 1;\n this.streamSinks = Object.create(null);\n this.streamControllers = Object.create(null);\n this.callbackCapabilities = Object.create(null);\n this.actionHandler = Object.create(null);\n\n this._onComObjOnMessage = event => {\n const data = event.data;\n if (data.targetName !== this.sourceName) {\n return;\n }\n if (data.stream) {\n this._processStreamMessage(data);\n return;\n }\n if (data.callback) {\n const callbackId = data.callbackId;\n const capability = this.callbackCapabilities[callbackId];\n if (!capability) {\n throw new Error(`Cannot resolve callback ${callbackId}`);\n }\n delete this.callbackCapabilities[callbackId];\n\n if (data.callback === CallbackKind.DATA) {\n capability.resolve(data.data);\n } else if (data.callback === CallbackKind.ERROR) {\n capability.reject(wrapReason(data.reason));\n } else {\n throw new Error(\"Unexpected callback case\");\n }\n return;\n }\n const action = this.actionHandler[data.action];\n if (!action) {\n throw new Error(`Unknown action from worker: ${data.action}`);\n }\n if (data.callbackId) {\n const cbSourceName = this.sourceName;\n const cbTargetName = data.sourceName;\n\n new Promise(function (resolve) {\n resolve(action(data.data));\n }).then(\n function (result) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.DATA,\n callbackId: data.callbackId,\n data: result,\n });\n },\n function (reason) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.ERROR,\n callbackId: data.callbackId,\n reason: wrapReason(reason),\n });\n }\n );\n return;\n }\n if (data.streamId) {\n this._createStreamSink(data);\n return;\n }\n action(data.data);\n };\n comObj.addEventListener(\"message\", this._onComObjOnMessage);\n }\n\n on(actionName, handler) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n typeof handler === \"function\",\n 'MessageHandler.on: Expected \"handler\" to be a function.'\n );\n }\n const ah = this.actionHandler;\n if (ah[actionName]) {\n throw new Error(`There is already an actionName called \"${actionName}\"`);\n }\n ah[actionName] = handler;\n }\n\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * @param {string} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n */\n send(actionName, data, transfers) {\n this.comObj.postMessage(\n {\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data,\n },\n transfers\n );\n }\n\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * Expects that the other side will callback with the response.\n * @param {string} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n * @returns {Promise} Promise to be resolved with response data.\n */\n sendWithPromise(actionName, data, transfers) {\n const callbackId = this.callbackId++;\n const capability = createPromiseCapability();\n this.callbackCapabilities[callbackId] = capability;\n try {\n this.comObj.postMessage(\n {\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n callbackId,\n data,\n },\n transfers\n );\n } catch (ex) {\n capability.reject(ex);\n }\n return capability.promise;\n }\n\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * Expect that the other side will callback to signal 'start_complete'.\n * @param {string} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Object} queueingStrategy - Strategy to signal backpressure based on\n * internal queue.\n * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n * @returns {ReadableStream} ReadableStream to read data in chunks.\n */\n sendWithStream(actionName, data, queueingStrategy, transfers) {\n const streamId = this.streamId++,\n sourceName = this.sourceName,\n targetName = this.targetName,\n comObj = this.comObj;\n\n return new ReadableStream(\n {\n start: controller => {\n const startCapability = createPromiseCapability();\n this.streamControllers[streamId] = {\n controller,\n startCall: startCapability,\n pullCall: null,\n cancelCall: null,\n isClosed: false,\n };\n comObj.postMessage(\n {\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize,\n },\n transfers\n );\n // Return Promise for Async process, to signal success/failure.\n return startCapability.promise;\n },\n\n pull: controller => {\n const pullCapability = createPromiseCapability();\n this.streamControllers[streamId].pullCall = pullCapability;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL,\n streamId,\n desiredSize: controller.desiredSize,\n });\n // Returning Promise will not call \"pull\"\n // again until current pull is resolved.\n return pullCapability.promise;\n },\n\n cancel: reason => {\n assert(reason instanceof Error, \"cancel must have a valid reason\");\n const cancelCapability = createPromiseCapability();\n this.streamControllers[streamId].cancelCall = cancelCapability;\n this.streamControllers[streamId].isClosed = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL,\n streamId,\n reason: wrapReason(reason),\n });\n // Return Promise to signal success or failure.\n return cancelCapability.promise;\n },\n },\n queueingStrategy\n );\n }\n\n /**\n * @private\n */\n _createStreamSink(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const self = this,\n action = this.actionHandler[data.action];\n\n const streamSink = {\n enqueue(chunk, size = 1, transfers) {\n if (this.isCancelled) {\n return;\n }\n const lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n // Enqueue decreases the desiredSize property of sink,\n // so when it changes from positive to negative,\n // set ready as unresolved promise.\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = createPromiseCapability();\n this.ready = this.sinkCapability.promise;\n }\n comObj.postMessage(\n {\n sourceName,\n targetName,\n stream: StreamKind.ENQUEUE,\n streamId,\n chunk,\n },\n transfers\n );\n },\n\n close() {\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CLOSE,\n streamId,\n });\n delete self.streamSinks[streamId];\n },\n\n error(reason) {\n assert(reason instanceof Error, \"error must have a valid reason\");\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ERROR,\n streamId,\n reason: wrapReason(reason),\n });\n },\n\n sinkCapability: createPromiseCapability(),\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: data.desiredSize,\n ready: null,\n };\n\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n\n new Promise(function (resolve) {\n resolve(action(data.data, streamSink));\n }).then(\n function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n success: true,\n });\n },\n function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n reason: wrapReason(reason),\n });\n }\n );\n }\n\n /**\n * @private\n */\n _processStreamMessage(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const streamController = this.streamControllers[streamId],\n streamSink = this.streamSinks[streamId];\n\n switch (data.stream) {\n case StreamKind.START_COMPLETE:\n if (data.success) {\n streamController.startCall.resolve();\n } else {\n streamController.startCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n streamController.pullCall.resolve();\n } else {\n streamController.pullCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL:\n // Ignore any pull after close is called.\n if (!streamSink) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true,\n });\n break;\n }\n // Pull increases the desiredSize property of sink, so when it changes\n // from negative to positive, set ready property as resolved promise.\n if (streamSink.desiredSize <= 0 && data.desiredSize > 0) {\n streamSink.sinkCapability.resolve();\n }\n // Reset desiredSize property of sink on every pull.\n streamSink.desiredSize = data.desiredSize;\n\n new Promise(function (resolve) {\n resolve(streamSink.onPull && streamSink.onPull());\n }).then(\n function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true,\n });\n },\n function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n reason: wrapReason(reason),\n });\n }\n );\n break;\n case StreamKind.ENQUEUE:\n assert(streamController, \"enqueue should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.controller.enqueue(data.chunk);\n break;\n case StreamKind.CLOSE:\n assert(streamController, \"close should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.isClosed = true;\n streamController.controller.close();\n this._deleteStreamController(streamController, streamId);\n break;\n case StreamKind.ERROR:\n assert(streamController, \"error should have stream controller\");\n streamController.controller.error(wrapReason(data.reason));\n this._deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n streamController.cancelCall.resolve();\n } else {\n streamController.cancelCall.reject(wrapReason(data.reason));\n }\n this._deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL:\n if (!streamSink) {\n break;\n }\n\n new Promise(function (resolve) {\n resolve(\n streamSink.onCancel && streamSink.onCancel(wrapReason(data.reason))\n );\n }).then(\n function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n success: true,\n });\n },\n function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n reason: wrapReason(reason),\n });\n }\n );\n streamSink.sinkCapability.reject(wrapReason(data.reason));\n streamSink.isCancelled = true;\n delete this.streamSinks[streamId];\n break;\n default:\n throw new Error(\"Unexpected stream case\");\n }\n }\n\n /**\n * @private\n */\n async _deleteStreamController(streamController, streamId) {\n // Delete the `streamController` only when the start, pull, and cancel\n // capabilities have settled, to prevent `TypeError`s.\n await Promise.allSettled([\n streamController.startCall && streamController.startCall.promise,\n streamController.pullCall && streamController.pullCall.promise,\n streamController.cancelCall && streamController.cancelCall.promise,\n ]);\n delete this.streamControllers[streamId];\n }\n\n destroy() {\n this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n }\n}\n\nexport { MessageHandler };\n","/* Copyright 2019 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert } from \"../shared/util.js\";\n\n/** @implements {IPDFStream} */\nclass PDFWorkerStream {\n constructor(msgHandler) {\n this._msgHandler = msgHandler;\n this._contentLength = null;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n getFullReader() {\n assert(\n !this._fullRequestReader,\n \"PDFWorkerStream.getFullReader can only be called once.\"\n );\n this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler);\n return this._fullRequestReader;\n }\n\n getRangeReader(begin, end) {\n const reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\n\n/** @implements {IPDFStreamReader} */\nclass PDFWorkerStreamReader {\n constructor(msgHandler) {\n this._msgHandler = msgHandler;\n this.onProgress = null;\n\n this._contentLength = null;\n this._isRangeSupported = false;\n this._isStreamingSupported = false;\n\n const readableStream = this._msgHandler.sendWithStream(\"GetReader\");\n this._reader = readableStream.getReader();\n\n this._headersReady = this._msgHandler\n .sendWithPromise(\"ReaderHeadersReady\")\n .then(data => {\n this._isStreamingSupported = data.isStreamingSupported;\n this._isRangeSupported = data.isRangeSupported;\n this._contentLength = data.contentLength;\n });\n }\n\n get headersReady() {\n return this._headersReady;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n async read() {\n const { value, done } = await this._reader.read();\n if (done) {\n return { value: undefined, done: true };\n }\n // `value` is wrapped into Uint8Array, we need to\n // unwrap it to ArrayBuffer for further processing.\n return { value: value.buffer, done: false };\n }\n\n cancel(reason) {\n this._reader.cancel(reason);\n }\n}\n\n/** @implements {IPDFStreamRangeReader} */\nclass PDFWorkerStreamRangeReader {\n constructor(begin, end, msgHandler) {\n this._msgHandler = msgHandler;\n this.onProgress = null;\n\n const readableStream = this._msgHandler.sendWithStream(\"GetRangeReader\", {\n begin,\n end,\n });\n this._reader = readableStream.getReader();\n }\n\n get isStreamingSupported() {\n return false;\n }\n\n async read() {\n const { value, done } = await this._reader.read();\n if (done) {\n return { value: undefined, done: true };\n }\n return { value: value.buffer, done: false };\n }\n\n cancel(reason) {\n this._reader.cancel(reason);\n }\n}\n\nexport { PDFWorkerStream };\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __w_pdfjs_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__w_pdfjs_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__w_pdfjs_require__.o(definition, key) && !__w_pdfjs_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__w_pdfjs_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__w_pdfjs_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WorkerMessageHandler } from \"./core/worker.js\";\n\n/* eslint-disable-next-line no-unused-vars */\nconst pdfjsVersion = PDFJSDev.eval(\"BUNDLE_VERSION\");\n/* eslint-disable-next-line no-unused-vars */\nconst pdfjsBuild = PDFJSDev.eval(\"BUNDLE_BUILD\");\n\nexport { WorkerMessageHandler };\n"],"names":["WorkerTask","constructor","name","terminated","_capability","createPromiseCapability","finished","promise","finish","resolve","terminate","ensureNotTerminated","Error","WorkerMessageHandler","setup","handler","port","testMessageProcessed","on","wphSetupTest","data","send","Uint8Array","wphConfigure","setVerbosityLevel","verbosity","wphSetupDoc","createDocumentHandler","docParams","pdfManager","cancelXHRs","WorkerTasks","getVerbosityLevel","apiVersion","workerVersion","enumerableProperties","property","push","length","join","ReadableStream","partialMsg","isNodeJS","docId","docBaseUrl","workerHandlerName","MessageHandler","startWorkerTask","task","finishWorkerTask","i","indexOf","splice","loadDocument","recoveryMode","ensureDoc","isPureXfa","Promise","all","loadXfaFonts","catch","reason","then","loadXfaImages","numPages","fingerprints","structureTree","htmlForXfa","getPdfManager","evaluatorOptions","enableXfa","pdfManagerCapability","newPdfManager","source","LocalPdfManager","password","ex","reject","pdfStream","cachedChunks","PDFWorkerStream","fullRequest","getFullReader","headersReady","isRangeSupported","disableAutoFetch","isStreamingSupported","NetworkPdfManager","msgHandler","contentLength","rangeChunkSize","sendProgressiveData","loaded","flushChunks","pdfFile","arraysToBytes","warn","readPromise","readChunk","value","done","arrayByteLength","total","Math","max","read","e","cancelAllRequests","setupDoc","onSuccess","doc","pdfInfo","onFailure","PasswordException","code","sendWithPromise","updatePassword","pdfManagerReady","InvalidPDFException","MissingPDFException","UnexpectedResponseException","UnknownErrorException","message","toString","XRefParseException","requestLoadedStream","onLoadedStream","maxImageSize","disableFontFace","ignoreErrors","isEvalSupported","fontExtraProperties","useSystemFonts","cMapUrl","standardFontDataUrl","AbortException","stream","bytes","byteLength","wphSetupGetPage","getPage","pageIndex","page","ensure","rotate","ref","userUnit","view","wphSetupGetPageIndex","pageRef","Ref","get","num","gen","ensureCatalog","wphSetupGetDestinations","wphSetupGetDestination","id","wphSetupGetPageLabels","wphSetupGetPageLayout","wphSetupGetPageMode","wphSetupGetAttachments","wphSetupGetJavaScript","wphSetupGetDocJSActions","wphSetupGetOutline","wphSetupGetMetadata","wphSetupGetMarkInfo","wphSetupGetData","intent","getAnnotationsData","annotationStorage","filename","promises","serializeXfaData","save","finally","acroForm","acroFormRef","xref","startXRef","newRefs","xfaData","refs","filter","x","reduce","a","b","concat","xfa","Dict","xfaDatasetsRef","hasXfaDatasetsEntry","Array","isArray","ii","getNewRef","newXrefInfo","Object","create","trailer","infoObj","xrefInfo","forEach","key","stringToPDFString","rootRef","getRaw","encryptRef","newRef","infoRef","info","fileIds","resetNewRef","incrementalUpdate","originalData","hasXfa","wphSetupRenderPage","sink","start","VerbosityLevel","INFOS","Date","now","getOperatorList","cacheKey","operatorListInfo","close","featureId","UNSUPPORTED_FEATURES","errorOperatorList","error","wphExtractText","extractTextContent","includeMarkedContent","combineTextItems","wphGetStructTree","fontFallback","wphCleanup","cleanup","wphTerminate","waitOn","cleanupPromise","clearGlobalCaches","destroy","wphReady","initializeFromPort","isMessagePort","maybePort","postMessage","window","self","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","RenderingIntentFlag","ANY","DISPLAY","PRINT","ANNOTATIONS_FORMS","ANNOTATIONS_STORAGE","ANNOTATIONS_DISABLE","OPLIST","AnnotationMode","DISABLE","ENABLE","ENABLE_FORMS","ENABLE_STORAGE","PermissionFlag","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","TextRenderingMode","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","ImageKind","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","AnnotationType","TEXT","LINK","FREETEXT","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","STAMP","CARET","INK","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","AnnotationStateModelType","MARKED","REVIEW","AnnotationMarkedState","UNMARKED","AnnotationReviewState","ACCEPTED","REJECTED","CANCELLED","COMPLETED","NONE","AnnotationReplyType","GROUP","REPLY","AnnotationFlag","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","AnnotationFieldFlag","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","AnnotationBorderStyleType","SOLID","DASHED","BEVELED","INSET","AnnotationActionEventType","E","X","D","U","Fo","Bl","PO","PC","PV","PI","K","F","V","C","DocumentActionEventType","WC","WS","DS","WP","DP","PageActionEventType","O","StreamType","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RLX","FontType","TYPE1","TYPE1STANDARD","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","ERRORS","WARNINGS","CMapCompressionType","BINARY","STREAM","OPS","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","boundingBoxes","operationPosition","unknown","forms","javaScript","signatures","smask","shadingPattern","font","errorTilingPattern","errorExtGState","errorXObject","errorFontLoadType3","errorFontState","errorFontMissing","errorFontTranslate","errorColorSpace","errorFontToUnicode","errorFontLoadNative","errorFontBuildPath","errorFontGetPath","errorMarkedContent","errorContentSubStream","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","level","Number","isInteger","msg","console","log","unreachable","assert","cond","_isValidProtocol","url","protocol","createValidAbsoluteUrl","baseUrl","options","addDefaultProtocol","startsWith","dots","match","tryConvertEncoding","stringToUTF8String","absoluteUrl","URL","shadow","obj","prop","defineProperty","enumerable","configurable","writable","BaseException","BaseExceptionClosure","prototype","details","status","FormatError","bytesToString","undefined","MAX_ARGUMENT_COUNT","String","fromCharCode","apply","strBuf","chunkEnd","min","chunk","subarray","stringToBytes","str","charCodeAt","arr","resultLength","pos","item","itemLength","set","string32","objectSize","keys","objectFromMap","map","isLittleEndian","buffer8","view32","Uint32Array","buffer","Function","FeatureTest","isOffscreenCanvasSupported","OffscreenCanvas","hexNumbers","n","padStart","Util","makeHexColor","r","g","scaleMinMax","minMax","temp","m1","m2","applyTransform","p","m","xt","yt","applyInverseTransform","d","getAxialAlignedBoundingBox","p1","p2","slice","p3","p4","inverseTransform","apply3dTransform","v","singularValueDecompose2dScale","transpose","c","first","second","sqrt","sx","sy","normalizeRect","rect","intersect","rect1","rect2","xLow","xHigh","yLow","yHigh","bezierBoundingBox","x0","y0","x1","y1","x2","y2","x3","y3","tvalues","bounds","t","t1","t2","b2ac","sqrtb2ac","abs","j","mt","jlen","PDFStringTranslateTable","encoding","decoder","TextDecoder","fatal","decode","charAt","escapeString","replace","isAscii","test","stringToUTF16BEString","buf","char","decodeURIComponent","escape","utf8StringToString","unescape","encodeURIComponent","isArrayBuffer","isArrayEqual","arr1","arr2","getModificationDate","date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","capability","isSettled","process","versions","nw","electron","type","CIRCULAR_REF","Symbol","EOF","Name","NameClosure","nameCache","nameValue","_clearCache","Cmd","CmdClosure","cmdCache","cmd","cmdValue","nonSerializable","nonSerializableClosure","_map","objId","suppressEncryption","__nonSerializable__","assignXref","newXref","size","key1","key2","key3","fetch","getAsync","fetchAsync","getArray","getKeys","getRawValues","values","has","callback","empty","emptyDict","merge","dictArray","mergeSubDicts","mergedDict","properties","Map","dict","entries","subDict","clear","RefClosure","refCache","refValue","RefSet","parent","_set","Set","put","add","remove","delete","iterator","RefSetCache","putAlias","aliasRef","isName","isCmd","isDict","isRefsEqual","v1","v2","clearPrimitiveCaches","parseDocBaseUrl","href","BasePdfManager","_docId","_password","catalog","pdfDocument","_docBaseUrl","args","ensureXRef","manuallyTriggered","requestRange","begin","end","Stream","PDFDocument","_loadedStreamPromise","pdfNetworkStream","streamManager","ChunkedStreamManager","getStream","MissingDataException","requestAllChunks","onReceiveData","abort","ChunkedStream","chunkSize","manager","_loadedChunks","numChunks","ceil","progressiveDataLength","lastSuccessfulEnsureByteChunk","getMissingChunks","chunks","numChunksLoaded","isDataLoaded","beginChunk","floor","endChunk","curChunk","onReceiveProgressiveData","position","ensureByte","ensureRange","nextEmptyChunk","hasChunk","getByte","getBytes","strEnd","getByteRange","makeSubStream","ChunkedStreamSubstream","missingChunks","subStream","getBaseStreams","currRequestId","_chunksNeededByRequest","_requestsByChunk","_promisesByRequest","aborted","_loadedStreamCapability","sendRequest","rangeReader","getRangeReader","onProgress","bind","chunkData","_requestChunks","requestId","chunksNeeded","chunksToRequest","requestIds","groupedChunksToRequest","groupChunks","groupedChunk","getBeginChunk","getEndChunk","requestRanges","ranges","range","includes","sort","groupedChunks","prevChunk","isProgressive","loadedRequests","lastChunk","onError","err","getLookupTableFactory","initializer","lookup","getArrayLookupTableFactory","ParserEOFException","XRefEntryException","DocStats","_handler","_streamTypes","_fontTypes","_send","streamTypes","fontTypes","addStreamType","addFontType","getInheritableProperty","stopWhenFound","visited","ROMAN_NUMBER_MAP","toRomanNumerals","number","lowerCase","romanBuf","romanStr","toLowerCase","log2","readInt8","offset","readUint16","readUint32","isWhiteSpace","ch","parseXFAPath","path","positionPattern","split","component","parseInt","escapePDFName","substring","_collectJS","entry","list","parents","element","js","BaseStream","getString","collectActions","eventType","actions","additionalActionsDicts","additionalActions","action","actionDict","Action","XMLEntities","encodeToXmlString","codePointAt","entity","toUpperCase","validateCSSFont","cssFontInfo","DEFAULT_CSS_FONT_OBLIQUE","DEFAULT_CSS_FONT_WEIGHT","CSS_FONT_WEIGHT_VALUES","fontFamily","fontWeight","italicAngle","ident","weight","angle","parseFloat","isNaN","recoverJsURL","URL_OPEN_METHODS","regex","RegExp","jsUrl","exec","newWindow","isEmpty","peekByte","peekedByte","peekBytes","getUint16","b0","b1","getInt32","b2","b3","skip","reset","moveStart","arrayBuffer","StringStream","NullStream","DEFAULT_USER_UNIT","LETTER_SIZE_MEDIABOX","Page","pageDict","globalIdFactory","fontCache","builtInCMapCache","standardFontDataCache","globalImageCache","nonBlendModesSet","xfaFactory","resourcesPromise","idCounters","_localIdFactory","createObjId","getPageObjId","_getInheritableProperty","content","resources","_getBoundingBox","bbox","box","mediaBox","cropBox","_onSubStreamError","getContentStream","StreamsSequenceStream","getBoundingBox","partialEvaluator","PartialEvaluator","idFactory","_parsedAnnotations","annotations","newRefsPromises","annotation","mustBePrinted","loadResources","objectLoader","ObjectLoader","load","contentStreamPromise","dataPromises","MCIDBoundingBoxes","positionByOperationIndex","noMCIDBoundingBoxes","pageListPromise","contentStream","opList","OperatorList","transparency","hasBlendModes","operatorList","boundingBoxesByMCID","operationArray","boundingBoxesWithoutMCID","pageOpList","addOp","flush","totalLength","renderForms","intentAny","intentDisplay","intentPrint","opListPromises","mustBeViewed","opLists","addOpList","getTextContent","viewBox","getStructTree","structTreeRoot","structTree","serializable","_parseStructTree","tree","StructTreePage","parse","annotationsData","viewable","printable","annots","parsedAnnotations","annotationPromises","annotationRef","AnnotationFactory","jsActions","PDF_HEADER_SIGNATURE","STARTXREF_SIGNATURE","ENDOBJ_SIGNATURE","FINGERPRINT_FIRST_BYTES","EMPTY_FINGERPRINT","PDF_HEADER_VERSION_REGEXP","find","signature","limit","backwards","signatureLength","scanBytes","scanLength","signatureEnd","XRef","_pagePromises","_version","_globalIdFactory","getDocId","createFontId","Catalog","version","linearization","Linearization","step","startXRefLength","found","checkHeader","MAX_PDF_VERSION_LENGTH","parseStartXRef","setStartXRef","hasActualNumPages","getNumPages","_hasOnlyDocumentSignatures","fields","recursionDepth","RECURSION_LIMIT","every","field","fetchIfRef","isSignature","isInvisible","_xfaStreams","template","datasets","config","connectionSet","localeSet","stylesheet","hasOwnProperty","xfaDatasets","streams","DatasetReader","_","needsRendering","formInfo","hasAcroForm","XFAFactory","isValid","getPages","xfaImagesDict","xfaImages","setImages","fontRes","assign","pdfFonts","initialState","clone","fonts","fontName","descriptor","handleSetFont","missingFonts","setFonts","reallyMissingFonts","missing","getXfaFontName","fontInfo","getXfaFontDict","appendFonts","serializeData","hasFields","hasSignatures","sigFlags","hasOnlyDocumentSignatures","documentInfo","docInfo","PDFFormatVersion","Language","lang","EncryptFilterName","encrypt","filterName","IsLinearized","IsAcroFormPresent","IsXFAPresent","IsCollectionPresent","collection","IsSignaturesPresent","infoDict","customValue","Custom","validate","hexString","hash","hex","idArray","hashOriginal","hashModified","calculateMD5","_getLinearizationPage","objectNumberFirst","pageKidsCountCache","pageIndexCache","getPageDict","cachedPromise","pageFirst","checkFirstPage","checkLastPage","setActualNumPages","pagesTree","getAllPageDicts","reasonAll","_collectFieldObjects","fieldRef","partName","getFieldObject","kids","kid","fieldObjects","allFields","fieldPromises","allPromises","hasJSActions","_parseHasJSActions","catalogJsActions","some","fieldObject","object","calculationOrderIds","calculationOrder","ids","ExtendedPDFDocument","arg","getXFAFontMap","factors","MyriadProRegularFactors","baseWidths","LiberationSansRegularWidths","baseMapping","LiberationSansRegularMapping","metrics","MyriadProRegularMetrics","MyriadProBoldFactors","LiberationSansBoldWidths","LiberationSansBoldMapping","MyriadProBoldMetrics","MyriadProItalicFactors","LiberationSansItalicWidths","LiberationSansItalicMapping","MyriadProItalicMetrics","MyriadProBoldItalicFactors","LiberationSansBoldItalicWidths","LiberationSansBoldItalicMapping","MyriadProBoldItalicMetrics","ArialMT","Arial","CalibriRegularFactors","CalibriRegularMetrics","CalibriBoldFactors","CalibriBoldMetrics","CalibriItalicFactors","CalibriItalicMetrics","CalibriBoldItalicFactors","CalibriBoldItalicMetrics","SegoeuiRegularFactors","SegoeuiRegularMetrics","SegoeuiBoldFactors","SegoeuiBoldMetrics","SegoeuiItalicFactors","SegoeuiItalicMetrics","SegoeuiBoldItalicFactors","SegoeuiBoldItalicMetrics","Helvetica","HelveticaRegularFactors","HelveticaRegularMetrics","HelveticaBoldFactors","HelveticaBoldMetrics","HelveticaItalicFactors","HelveticaItalicMetrics","HelveticaBoldItalicFactors","HelveticaBoldItalicMetrics","normalizeFontName","fontMap","getXfaFontWidths","rescaledBaseWidths","w","currentCode","currentArray","newWidths","unicode","glyphIndex","charUnicode","index","unicode1","unicode2","widths","systemInfo","lineHeight","lineGap","SEAC_ANALYSIS_ENABLED","FontFlags","FixedPitch","Serif","Symbolic","Script","Nonsymbolic","Italic","AllCap","SmallCap","ForceBold","MacStandardGlyphOrdering","getFontType","subtype","isStandardFont","recoverGlyphName","glyphsUnicodeMap","getUnicodeForGlyph","type1FontGlyphMapping","builtInEncoding","glyphNames","charCodeToGlyphId","glyphId","charCode","baseEncoding","isSymbolicFont","flags","isInternalFont","baseEncodingName","getEncoding","StandardEncoding","differences","glyphName","getGlyphsUnicode","standardGlyphName","ExpertEncoding","MacExpertEncoding","MacRomanEncoding","WinAnsiEncoding","SymbolSetEncoding","ZapfDingbatsEncoding","encodingName","getDingbatsGlyphsUnicode","getSpecialPUASymbols","mapSpecialUnicodeValues","nameLen","hexStr","UnicodeRanges","getUnicodeRangeFor","isRTLRangeFor","getNormalizedUnicodes","reverseIfRtl","chars","charsLength","SpecialCharRegExp","CategoryCache","getCharUnicodeCategory","cachedCategory","groups","category","isWhitespace","isZeroWidthDiacritic","isInvisibleFormatMark","clearUnicodeCaches","LINE_FACTOR","collectFields","_getPageIndex","_create","parameters","LinkAnnotation","TextAnnotation","fieldType","TextWidgetAnnotation","ButtonWidgetAnnotation","ChoiceWidgetAnnotation","SignatureWidgetAnnotation","WidgetAnnotation","PopupAnnotation","FreeTextAnnotation","LineAnnotation","SquareAnnotation","CircleAnnotation","PolylineAnnotation","PolygonAnnotation","CaretAnnotation","InkAnnotation","HighlightAnnotation","UnderlineAnnotation","SquigglyAnnotation","StrikeOutAnnotation","StampAnnotation","FileAttachmentAnnotation","Annotation","annotDict","fetchIfRefAsync","getRgbColor","color","defaultColor","Uint8ClampedArray","rgbColor","ColorSpace","singletons","gray","getRgbItem","rgb","cmyk","getQuadPoints","quadPoints","quadPointsLists","jj","y","quadPointsList","minX","maxX","minY","maxY","mX","MX","mY","MY","quadPoint","MAX_VALUE","MIN_VALUE","getTransformMatrix","matrix","xRatio","yRatio","params","setTitle","setContents","setModificationDate","setFlags","setRectangle","setColor","setBorderStyle","setAppearance","setBorderAndBackgroundColors","_streams","appearance","annotationFlags","borderStyle","backgroundColor","borderColor","contentsObj","_contents","hasAppearance","modificationDate","hasOwnCanvas","kidIds","fieldName","_constructFieldName","_fallbackFontDict","_hasFlag","flag","_isViewable","_isPrintable","storageEntry","hidden","print","_parseStringHelper","dir","bidi","title","_title","contents","hasFlag","setLineEndings","lineEndings","mk","AnnotationBorderStyle","dictType","setWidth","setStyle","setDashArray","array","setHorizontalCornerRadius","setVerticalCornerRadius","appearanceStates","normalAppearanceState","as","evaluator","isUsingOwnCanvas","appearanceDict","fallbackFontDict","strokeColor","fillColor","unshift","loopDict","width","style","dashArray","horizontalCornerRadius","verticalCornerRadius","maxWidth","maxHeight","forceStyle","allZeros","validNumber","radius","MarkupAnnotation","rawIRT","inReplyTo","rt","replyType","titleObj","creationDate","setCreationDate","hasPopup","richText","getRichTextAsHtml","_setDefaultAppearance","extra","blendMode","strokeAlpha","fillAlpha","pointsCallback","pointsArray","points","formDict","appearanceStreamDict","appearanceStream","gsDict","stateDict","annotationType","fieldValue","_decodeFormValue","defaultFieldValue","_hasValueFromXFA","getValue","alternativeText","defaultAppearance","_defaultAppearance","defaultAppearanceData","parseDefaultAppearance","localResources","acroFormResources","appearanceResources","_fieldResources","mergedResources","fieldFlags","readOnly","hasFieldFlag","formValue","_hasText","_getAppearance","AP","originalTransform","newTransform","createCipherTransform","encryptString","encoder","val","_getSaveFieldResources","bufferOriginal","writeDict","bufferNew","isPassword","formattedValue","trim","lineCount","multiLine","defaultPadding","hPadding","totalHeight","totalWidth","_getFontData","fontSize","_computeFontSize","descent","vPadding","alignment","textAlignment","_getMultilineAppearance","encodedString","encodeString","comb","_getCombAppearance","renderedText","_renderText","_getTextWidth","text","charsToGlyphs","glyph","height","roundWithTwoDigits","textWidth","lines","cachedLines","line","encoded","glyphs","positions","getCharPositions","isTooBig","fsize","cache","_splitLine","numberOfLines","round","fontColor","createDefaultAppearance","shift","toFixed","localFont","acroFormFont","subFontDict","subResourcesDict","maximumLength","maxLen","combWidth","renderedComb","padding","scale","lastSpacePosInStringStart","lastSpacePosInStringEnd","lastSpacePos","startChunk","currentWidth","glyphWidth","defaultValue","multiline","charLimit","editable","checkedAppearance","uncheckedAppearance","checkBox","radioButton","pushButton","isTooltipOnly","_processCheckBox","_processRadioButton","_processPushButton","exportValue","buttonValue","savedAppearance","_saveCheckbox","_saveRadioButton","parentBuffer","parentTransform","_getDefaultCheckedAppearance","FONT_RATIO","xShift","yShift","customAppearance","normalAppearance","asValue","yes","exportValues","otherYes","fieldParent","fieldParentValue","parseDestDictionary","destDict","resultObj","option","isOptionArray","displayValue","combo","multiSelect","numItems","multipleSelection","items","exportedValue","valueIndices","lineWidth","numberOfVisibleLines","firstIndex","valuePosition","indexInPage","hpadding","vpadding","DEFAULT_ICON_SIZE","state","stateModel","parentItem","parentSubtype","parentType","rawParent","parentId","parentRect","parentFlags","lineCoordinates","from","interiorColor","borderWidth","borderAdjust","controlPointsDistance","tan","xMid","yMid","xOffset","yOffset","vertices","rawVertices","Infinity","vertex","inkLists","rawInkLists","inkList","dy","xEnd","file","FileSpec","DefaultAppearanceEvaluator","EvaluatorPreprocessor","operation","fn","result","savedStatesDepth","colorCmd","resizeRgbImage","src","dest","w1","h1","w2","h2","alpha01","COMPONENTS","newIndex","oldIndex","xScaled","Uint16Array","w1Scanline","py","numComps","getRgb","srcOffset","destOffset","getRgbBuffer","count","bits","getOutputLength","inputLength","isPassthrough","isDefaultDecode","decodeMap","bpc","fillRgb","originalWidth","originalHeight","actualHeight","comps","rgbBuf","numComponentColors","needsResizing","allColors","colorMap","destPos","rgbPos","usesZeroToOneRange","_cache","localColorSpaceCache","parsedColorSpace","csName","csRef","getCached","localColorSpace","getByRef","getByName","parseAsync","cs","pdfFunctionFactory","_parse","cachedColorSpace","PatternCS","colorSpaces","resourcesCS","mode","baseCS","whitePoint","blackPoint","gamma","CalGrayCS","CalRGBCS","alt","altCS","hiVal","IndexedCS","tintFn","AlternateCS","LabCS","DeviceGrayCS","DeviceRgbCS","DeviceCmykCS","base","tmpBuf","Float32Array","baseNumComps","baseBuf","scaled","tinted","highVal","outputDelta","lookupPos","q","DeviceCmykCSClosure","convertToRgb","srcScale","k","CalGrayCSClosure","A","AG","G","L","YW","XW","ZW","XB","YB","ZB","CalRGBCSClosure","BRADFORD_SCALE_MATRIX","BRADFORD_SCALE_INVERSE_MATRIX","SRGB_D65_XYZ_TO_RGB_MATRIX","FLAT_WHITEPOINT_MATRIX","tempNormalizeMatrix","tempConvertMatrix1","tempConvertMatrix2","DECODE_L_CONSTANT","matrixProduct","convertToFlat","sourceWhitePoint","LMS","convertToD65","D65X","D65Y","D65Z","sRGBTransferFunction","adjustToRange","decodeL","compensateBlackPoint","sourceBlackPoint","XYZ_Flat","zeroDecodeL","X_DST","X_SRC","Y_DST","Y_SRC","Z_DST","Z_SRC","X_Scale","X_Offset","Y_Scale","Y_Offset","Z_Scale","Z_Offset","normalizeWhitePointToFlat","XYZ_In","LMS_Flat","normalizeWhitePointToD65","LMS_D65","B","AGR","GR","BGG","GG","CGB","GB","MXA","MXB","MXC","Y","MYA","MYB","MYC","Z","MZA","MZB","MZC","XYZ","XYZ_Black","XYZ_D65","SRGB","LabCSClosure","fn_g","high1","low2","high2","maxVal","Ls","bs","amin","amax","bmin","bmax","M","N","DefaultPartialEvaluatorOptions","freeze","PatternType","TILING","SHADING","TEXT_CHUNK_BATCH_SIZE","deferred","normalizeBlendMode","parsingArray","maybeBM","incrementCachedImageMaskCount","TimeSlotManager","TIME_SLOT_DURATION_MS","CHECK_TIME_EVERY","check","checked","endTime","parsingType3Font","_fetchBuiltInCMapBound","fetchBuiltInCMap","_pdfFunctionFactory","PDFFunctionFactory","newOptions","newEvaluator","processed","nodes","node","graphicStates","graphicState","bm","xObjects","xObject","xResources","cachedData","response","ok","statusText","cMapData","compressionType","fetchStandardFontData","standardFontNameToFileName","getFontNameToFileMap","buildFormXObject","xobj","optionalContent","groupOptions","parseMarkedContentProps","group","isolated","knockout","groupSubtype","colorSpace","parseColorSpace","backdrop","_sendImgData","imgData","cacheGlobally","transfers","bitmap","buildPaintImageXObject","image","isInline","localImageCache","imageRef","h","imageMask","interpolate","bitStrideLength","imgArray","PDFImage","createRawMask","imageIsFromDecodeStream","DecodeStream","inverseDecode","cached","addImageOps","createMask","isSingleOpaquePixel","addDependency","softMask","mask","SMALL_IMAGE_DIMENSIONS","imageObj","res","createImageData","shouldCache","buildImage","addByteSize","addPageIndex","setData","byteSize","handleSMask","stateManager","smaskContent","smaskOptions","transferObj","isPDFFunction","transferFn","transferMap","tmp","handleTransferFunction","tr","transferArray","transferMaps","numFns","numEffectfulFns","handleTilingType","pattern","patternDict","localTilingPatternCache","tilingOpList","patternResources","operatorListIR","getIR","tilingPatternIR","getTilingPatternIR","addDependencies","dependencies","fontArgs","fontRef","loadFont","translated","isType3Font","loadType3Data","type3Dependencies","TranslatedFont","loadedName","ErrorFont","handleText","isAddToPathSet","textRenderingMode","fillColorSpace","buildFontPaths","ensureStateFont","gState","localGStateCache","gStateRef","isSimpleGState","gStateObj","gStateKeys","errorFont","type3FontRefs","fontCapability","preEvaluatedFont","preEvaluateFont","fontRefIsRef","fontID","fontAliases","aliasFontRef","translateFont","translatedFont","fontType","stats","fontFile3","buildPath","parsingText","lastIndex","fnArray","opArgs","argsArray","parseShading","shading","localShadingPatternCache","Pattern","patternIR","handleColorN","patterns","patternName","pop","rawPattern","localTilingPattern","typeNum","_parseVisibilityExpression","nestingCounter","currentResult","MAX_NESTING","operator","raw","nestedResult","contentProperties","optionalContentType","expression","optionalContentGroups","groupIds","ocg","policy","EvalState","boundingBoxCalculator","BoundingBoxesCalculator","LocalImageCache","LocalColorSpaceCache","LocalGStateCache","LocalTilingPatternCache","xobjs","StateManager","preprocessor","timeSlotManager","closePendingRestoreOPS","argument","promiseBody","next","ready","stop","isValidName","incrementOperation","localImage","parseOperator","resolveXObject","rejectXObject","globalImage","getData","combinedGlyphs","arrLength","arrItem","strokeColorSpace","shadingRes","patternId","localGStateObj","resolveGState","rejectGState","extGState","getNoMCIDBoundingBoxes","seenStyles","TextState","NormalizedUnicodes","textContent","styles","textContentItem","initialized","vertical","prevTransform","textAdvanceScale","spaceInFlowMin","spaceInFlowMax","trackingSpaceMin","negativeSpaceMax","notASpace","hasEOL","twoLastChars","twoLastCharsPos","saveLastChar","nextPos","ret","resetLastChars","TRACKING_SPACE_FACTOR","NOT_A_SPACE_FACTOR","NEGATIVE_SPACE_FACTOR","SPACE_IN_FLOW_MIN_FACTOR","SPACE_IN_FLOW_MAX_FACTOR","showSpacedTextBuffer","emptyXObjectCache","emptyGStateCache","textState","getCurrentTextTransform","tsm","textHScale","textRise","isCharBBox","fontMatrix","glyphHeight","ctm","textMatrix","ensureTextContentItem","fallbackName","ascent","trm","hypot","scaleLineX","textLineMatrix","scaleCtmX","updateAdvanceScale","scaleFactor","runBidiTransform","textChunk","bidiResult","applyInverseRotation","compareWithLastPosition","currentTransform","posX","posY","shiftedX","shiftedY","lastPosX","lastPosY","advanceY","advanceX","textOrientation","sign","appendEOL","flushTextContentItem","addFakeSpaces","buildTextContentItem","extraSpacing","charSpacing","translateTextMatrix","vmetric","scaledDim","wordSpacing","glyphUnicode","transf","enqueueChunk","batch","enqueue","fontNameArg","fontSizeArg","leading","translateTextLineMatrix","carriageReturn","setTextLineMatrix","spaceFactor","elements","currentState","xObjStateManager","sinkWrapper","enqueueInvoked","desiredSize","gStateFont","tag","mcid","extractDataStructures","baseDict","cidToGidBytes","toUnicodePromise","readToUnicode","toUnicode","composite","cidSystemInfo","registry","ordering","supplement","cidToGidMap","diffEncoding","defaultEncoding","isNonsymbolicFont","hasEncoding","buildToUnicode","builtToUnicode","readCidToGidMap","_simpleFontToUnicode","forceGlyphs","charcode","codeStr","fromCodePoint","hasIncludedToUnicodeMap","fallbackToUnicode","ToUnicodeMap","cMap","builtInCMap","IdentityCMap","ucs2CMapName","ucs2CMap","CMapFactory","useCMap","cid","ucs2","IdentityToUnicodeMap","firstChar","lastChar","cmapObj","cmap","getMap","token","glyphsData","glyphID","extractWidths","glyphsWidths","defaultWidth","glyphsVMetrics","defaultVMetrics","vmetrics","baseFontName","getBaseFontMetrics","buildCharCodeToWidth","isMonospace","firstWidth","isSerifFont","fontNameWoStyle","getSerifFonts","search","monospace","stdFontMap","getStdFontMap","lookupName","Metrics","getMetrics","glyphWidths","widthsByGlyphName","df","MurmurHash3_64","update","diffLength","diffBuf","diffEntry","uint8array","bufferLength","widthsBuf","compositeWidths","subWidthsBuf","hexdigest","getSymbolsFonts","isSimulatedFlags","xHeight","capHeight","standardFontName","getStandardFontName","newProperties","Font","baseFont","fontNameStr","baseFontStr","fontFile","length1","length2","length3","glyphScaleFactors","subtypeEntry","fixedPitch","scaleFactors","cidEncoding","fontChar","renderer","hasBuiltPath","getPathJs","accent","_evaluatorOptions","type3Loaded","sent","exportData","fallback","glyphCacheValues","type3Evaluator","loadCharProcsPromise","charProcs","fontResources","charProcOperatorList","isEmptyBBox","glyphStream","_removeType3ColorOperators","dummyOperatorList","_bbox","charBBox","gStateKey","stateStack","old","prev","f","opMap","getOPMap","numArgs","variableArgs","J","ri","gs","Q","cm","l","re","S","s","W","BT","ET","Tc","Tw","Tz","TL","Tf","Tr","Ts","Td","TD","Tm","Tj","TJ","d0","d1","CS","SC","SCN","sc","scn","RG","rg","sh","BI","ID","EI","Do","MP","BMC","BDC","EMC","BX","EX","BM","BD","true","fa","fal","fals","false","nu","nul","null","MAX_INVALID_PATH_OPS","parser","Parser","lexer","Lexer","nonProcessedArgs","_numInvalidPathOPS","getObj","opSpec","argsLength","preprocessCommand","BUILT_IN_CMAPS","MAX_MAP_RANGE","CMap","codespaceRanges","numCodespaceRanges","addCodespaceRange","low","high","mapCidRange","dstLow","mapBfRange","lastByte","nextCharCode","mapBfRangeToArray","mapOne","dst","contains","charCodeOf","readCharCode","out","nn","codespaceRange","kk","getCharCodeLength","isIdentityCMap","BinaryCMapReader","BinaryCMapReaderClosure","hexToInt","hexToStr","addHex","incHex","MAX_NUM_SIZE","MAX_ENCODED_NUM_SIZE","BinaryCMapStream","readByte","readNumber","last","readSigned","readHex","readHexNumber","stack","sp","bufferSize","readHexSigned","readString","len","extend","header","sequence","dataSize","ucs2DataSize","subitemsCount","CMapFactoryClosure","strToInt","expectString","expectInt","parseBfChar","parseBfRange","parseCidChar","parseCidRange","parseCodespaceRange","parseWMode","parseCMapName","parseCMap","previous","embeddedUseCMap","objLoop","extendCMap","createBuiltInCMap","useCodespaceRanges","parsedCMap","MAX_LENGTH_TO_CACHE","MAX_ADLER32_LENGTH","computeAdler32","bytesLength","allowStreams","imageCache","refill","buf1","buf2","tryShift","cipherTransform","makeInlineImage","makeStream","decryptString","findDefaultInlineStreamEnd","I","SPACE","LF","CR","NUL","startPos","maybeEIPos","followingBytes","knownCommands","nextObj","peekObj","endOffset","findDCTDecodeInlineStreamEnd","foundEOI","markerLength","inlineStreamSkipEI","findASCII85DecodeInlineStreamEnd","TILDE","GT","tildePos","maybeEI","findASCIIHexDecodeInlineStreamEnd","dictLength","beginInlineImagePos","filterZero","imageStream","imageBytes","initialStreamPos","dictBytes","cacheEntry","createStream","_findStreamLength","SCAN_BLOCK_LENGTH","skipToNextLine","nextChar","ENDSTREAM_SIGNATURE","actualLength","MAX_TRUNCATION","TRUNCATED_SIGNATURE","maybeLength","makeFilter","filterArray","paramsArray","xrefStats","PredictorStream","FlateStream","earlyChange","LZWStream","JpegStream","JpxStream","Ascii85Stream","AsciiHexStream","CCITTFaxStream","RunLengthStream","Jbig2Stream","specialChars","toHexDigit","_hexStringNumWarn","currentChar","peekChar","getNumber","eNotation","divideBy","baseValue","powerValue","powerValueSign","currentDigit","numParen","charBuffered","getName","previousCh","_hexStringWarn","MAX_HEX_STRING_NUM_WARN","getHexString","isFirstHex","firstDigit","secondDigit","comment","nextCh","knownCommandFound","possibleCommand","streamPos","getInt","linDict","allowZeroValue","getHints","hints","hintsLength","hint","obj1","obj2","obj3","endFirst","mainXRefEntriesOffset","input","readBlock","TILDA_CHAR","Z_LOWER_CHAR","eof","ensureBuffer","emptyBuffer","maybeMinBufferLength","_rawMinBufferLength","minBufferLength","requested","buffer2","bufEnd","_onError","newLength","baseStreamsBuf","baseStreams","UPSTREAM_BLOCK_SIZE","maxDecodeLength","digit","ccittFaxDecoder","CCITTFaxDecoder","EndOfLine","EncodedByteAlign","Columns","Rows","EndOfBlock","BlackIs1","readNextChar","ccittEOL","ccittEOF","twoDimPass","twoDimHoriz","twoDimVert0","twoDimVertR1","twoDimVertL1","twoDimVertR2","twoDimVertL2","twoDimVertR3","twoDimVertL3","twoDimTable","whiteTable1","whiteTable2","blackTable1","blackTable2","blackTable3","eoline","byteAlign","columns","rows","eoblock","black","codingLine","refLine","codingPos","row","nextLine2D","inputBits","inputBuf","outputBits","rowsDone","code1","_lookBits","_eatBits","refPos","blackPixels","code2","code3","_getTwoDimCode","_addPixels","_getBlackCode","_getWhiteCode","_addPixelsNeg","gotEOL","a1","_findTableCode","table","limitValue","codeLenCodeMap","Int32Array","lengthDecode","distDecode","fixedLitCodeTab","fixedDistCodeTab","cmf","flg","codeSize","codeBuf","getBits","getCode","codes","codeLen","codeVal","generateHuffmanTable","lengths","hdr","blockLen","block","litCodeTable","distCodeTable","numLitCodes","numDistCodes","numCodeLenCodes","codeLenCodeLengths","codeLenCodeTab","codeLengths","bitsLength","bitsOffset","what","repeatLength","dist","jbig2Image","Jbig2Image","globalsStream","globals","parseChunks","dataLength","Jbig2Error","ContextCache","getContexts","Int8Array","DecodingContext","ArithmeticDecoder","contextCache","decodeInteger","procedure","contexts","readBits","bit","readBit","decodeIAID","codeLength","SegmentTypes","CodingTemplates","RefinementTemplates","coding","reference","ReusedContexts","RefinementReusedContexts","decodeBitmapTemplate0","decodingContext","contextLabel","pixel","row1","row2","OLD_PIXEL_MASK","decodeBitmap","mmr","templateIndex","prediction","at","Reader","decodeMMRBitmap","useskip","templateLength","templateX","templateY","changingTemplateEntries","reuseMask","changingEntriesLength","changingTemplateX","changingTemplateY","changingTemplateBit","sbb_left","sbb_top","sbb_right","pseudoPixelContext","ltp","i0","j0","sltp","decodeRefinement","referenceBitmap","offsetX","offsetY","codingTemplate","codingTemplateLength","codingTemplateX","codingTemplateY","referenceTemplate","referenceTemplateLength","referenceTemplateX","referenceTemplateY","referenceWidth","referenceHeight","decodeSymbolDictionary","huffman","refinement","symbols","numberOfNewSymbols","numberOfExportedSymbols","huffmanTables","refinementTemplateIndex","refinementAt","huffmanInput","newSymbols","currentHeight","symbolCodeLength","tableB1","symbolWidths","getStandardTable","deltaHeight","tableDeltaHeight","firstSymbol","deltaWidth","tableDeltaWidth","numberOfInstances","decodeTextRegion","symbolId","rdx","rdy","symbol","bitmapSize","tableBitmapSize","collectiveBitmap","readUncompressedBitmap","originalEnd","bitmapEnd","numberOfSymbolsDecoded","xMin","xMax","bitmapWidth","symbolBitmap","exportedSymbols","currentFlag","totalSymbolsLength","runLength","defaultPixelValue","numberOfSymbolInstances","stripSize","inputSymbols","transposed","dsOffset","referenceCorner","combinationOperator","logStripSize","stripT","tableDeltaT","firstS","deltaT","deltaFirstS","tableFirstS","currentS","currentT","symbolIDTable","applyRefinement","symbolWidth","symbolHeight","rdw","rdh","offsetT","offsetS","s2","symbolRow","deltaS","tableDeltaS","decodePatternDictionary","patternWidth","patternHeight","maxPatternIndex","collectiveWidth","patternBitmap","decodeHalftoneRegion","regionWidth","regionHeight","enableSkip","gridWidth","gridHeight","gridOffsetX","gridOffsetY","gridVectorX","gridVectorY","regionBitmap","numberOfPatterns","pattern0","bitsPerValue","grayScaleBitPlanes","mmrInput","mg","ng","patternIndex","patternRow","regionRow","regionX","regionY","readSegmentHeader","segmentHeader","segmentType","typeName","deferredNonRetain","pageAssociationFieldSize","referredFlags","referredToCount","retainBits","referredToSegmentNumberSize","referredTo","pageAssociation","genericRegionInfo","readRegionSegmentInformation","genericRegionSegmentFlags","RegionSegmentInformationFieldLength","genericRegionMmr","searchPatternLength","searchPattern","headerEnd","readSegments","segments","segment","randomAccess","processSegment","visitor","atLength","dictionary","dictionaryFlags","huffmanDHSelector","huffmanDWSelector","bitmapSizeSelector","aggregationInstancesSelector","bitmapCodingContextUsed","bitmapCodingContextRetained","refinementTemplate","textRegion","textRegionSegmentFlags","textRegionHuffmanFlags","huffmanFS","huffmanDS","huffmanDT","huffmanRefinementDW","huffmanRefinementDH","huffmanRefinementDX","huffmanRefinementDY","huffmanRefinementSizeSelector","patternDictionary","patternDictionaryFlags","halftoneRegion","halftoneRegionFlags","genericRegion","pageInfo","resolutionX","resolutionY","pageSegmentFlags","lossless","requiresBuffer","combinationOperatorOverride","callbackName","processSegments","parseJbig2Chunks","SimpleSegmentVisitor","parseJbig2","numberOfPages","currentPageInfo","bitPacked","onPageInformation","rowSize","drawBitmap","regionInfo","mask0","offset0","onImmediateGenericRegion","region","onImmediateLosslessGenericRegion","arguments","onSymbolDictionary","currentSegment","referredSegments","getSymbolDictionaryHuffmanTables","customTables","referredSymbols","onImmediateTextRegion","getTextRegionHuffmanTables","onImmediateLosslessTextRegion","onPatternDictionary","onImmediateHalftoneRegion","onImmediateLosslessHalftoneRegion","onTables","decodeTablesSegment","HuffmanLine","lineData","isOOB","rangeLow","prefixLength","rangeLength","prefixCode","isLowerRange","HuffmanTreeNode","children","isLeaf","buildTree","decodeNode","reader","htOffset","HuffmanTable","prefixCodesDone","assignPrefixCodes","rootNode","linesLength","prefixLengthMax","histogram","currentLength","firstCode","currentTemp","lowestValue","highestValue","prefixSizeBits","rangeSizeBits","currentRangeLow","standardTablesCache","currentByte","numBits","getCustomHuffmanTable","currentIndex","numberOfSymbols","runCodesTable","repeatedLength","numberOfRepeats","customIndex","tableAggregateInstances","endOfBlock","lookForEOFLimit","QeTable","qe","nmps","nlps","switchFlag","bp","dataEnd","chigh","clow","byteIn","ct","cx_index","cx_mps","qeTableIcx","qeIcx","jpegOptions","decodeTransform","colorTransform","decodeArr","forceRGB","bitsPerComponent","decodeArrLength","transformNeeded","maxValue","jpegImage","JpegImage","drawWidth","drawHeight","isSourcePDF","JpegError","DNLMarkerError","scanLines","EOIMarkerError","dctZigZag","dctCos1","dctSin1","dctCos3","dctSin3","dctCos6","dctSin6","dctSqrt2","dctSqrt1d2","buildHuffmanTable","getBlockBufferOffset","col","blocksPerLine","decodeScan","frame","components","resetInterval","spectralStart","spectralEnd","successivePrev","successive","parseDNLMarker","mcusPerLine","progressive","startOffset","bitsData","bitsCount","nextByte","maybeScanLines","blockRow","precision","decodeHuffman","receive","receiveAndExtend","decodeBaseline","blockOffset","huffmanTableDC","diff","blockData","pred","rs","huffmanTableAC","z","decodeDCFirst","decodeDCSuccessive","eobrun","decodeACFirst","successiveACState","successiveACNextValue","decodeACSuccessive","offsetZ","decodeMcu","mcu","mcuRow","mcuCol","blockCol","decodeBlock","componentsLength","decodeFn","fileMarker","mcuExpected","blocksPerColumn","mcusPerColumn","mcuToRead","findNextFileMarker","invalid","marker","quantizeAndInverse","blockBufferOffset","qt","quantizationTable","v0","v3","v4","v5","v6","v7","p0","p5","p6","p7","buildComponentData","computationBuffer","Int16Array","currentPos","maxPos","newPos","currentMarker","newMarker","_decodeTransform","_colorTransform","dnlScanLines","readDataBlock","prepareComponents","samplesPerLine","maxH","maxV","blocksPerLineForMcu","blocksPerColumnForMcu","blocksBufferSize","jfif","adobe","numSOSMarkers","quantizationTables","huffmanTablesAC","huffmanTablesDC","markerLoop","appData","major","minor","densityUnits","xDensity","yDensity","thumbWidth","thumbHeight","thumbData","flags0","flags1","transformCode","quantizationTablesLength","quantizationTablesEnd","quantizationTableSpec","tableData","extended","sofScanLines","componentIds","componentsCount","componentId","qId","quantizationId","huffmanLength","huffmanTableSpec","codeLengthSum","huffmanValues","selectorsCount","componentIndex","tableSpec","successiveApproximation","nextFileMarker","output","scaleX","scaleY","numComponents","_getLinearizedBlockData","componentScaleX","componentScaleY","blocksPerScanline","xScaleBlockOffset","mask3LSB","lastComponentScaleX","_isColorConversionNeeded","_convertYccToRgb","Cb","Cr","_convertYcckToRgb","_convertYcckToCmyk","_convertCmykToRgb","rgbData","grayColor","jpxImage","JpxImage","tileCount","tiles","tileComponents","tileWidth","tileHeight","tileLeft","left","tileTop","top","srcPosition","dataPosition","imgRowSize","tileRowSize","rowBytes","JpxError","SubbandsGainLog2","LL","LH","HL","HH","failOnCorruptedImage","head","parseCodestream","headerSize","lbox","tbox","jumpDataLength","method","colorspace","headerType","parseImageProperties","newByte","oldByte","Xsiz","Ysiz","XOsiz","YOsiz","Csiz","context","doNotRecover","sqcd","spqcds","spqcdSize","scalarExpounded","tile","mainHeader","siz","XTsiz","YTsiz","XTOsiz","YTOsiz","isSigned","XRsiz","YRsiz","calculateComponentDimensions","SIZ","calculateTileGrids","QCC","COC","qcd","noQuantization","guardBits","spqcd","epsilon","mu","SPqcds","QCD","currentTile","qcc","cqcc","cod","scod","entropyCoderWithCustomPrecincts","sopMarkerUsed","ephMarkerUsed","progressionOrder","layersCount","multipleComponentTransform","decompositionLevelsCount","xcb","ycb","blockStyle","selectiveArithmeticCodingBypass","resetContextProbabilities","terminationOnEachCodingPass","verticallyStripe","predictableTermination","segmentationSymbolUsed","reversibleTransformation","precinctsSizes","precinctsSize","PPx","PPy","unsupported","COD","partIndex","partsCount","initializeTile","buildPackets","parseTilePackets","transformComponents","numXtiles","numYtiles","tx0","ty0","tx1","ty1","tileComponent","tcx0","tcy0","tcx1","tcy1","getBlocksDimensions","codOrCoc","codingStyleParameters","xcb_","ycb_","buildPrecincts","resolution","dimensions","precinctWidth","precinctHeight","isZeroRes","resLevel","precinctWidthInSubband","precinctHeightInSubband","numprecinctswide","trx1","trx0","numprecinctshigh","try1","try0","numprecincts","precinctParameters","buildCodeblocks","subband","codeblockWidth","codeblockHeight","cbx0","tbx0","cby0","tby0","cbx1","tbx1","cby1","tby1","codeblocks","precincts","codeblock","precinctNumber","cbx","cby","tbx0_","tby0_","tbx1_","tby1_","pi","pj","subbandType","Lblock","precinct","cbxMin","cbxMax","cbyMin","cbyMax","codeblockParameters","numcodeblockwide","numcodeblockhigh","createPacket","layerNumber","precinctCodeblocks","subbands","LayerResolutionComponentPositionIterator","tileIndex","codingStyleDefaultParameters","maxDecompositionLevelsCount","nextPacket","JpxImage_nextPacket","resolutions","packet","ResolutionLayerComponentPositionIterator","ResolutionPositionComponentLayerIterator","maxNumPrecinctsInLevel","maxNumPrecincts","PositionComponentResolutionLayerIterator","getPrecinctSizesInImageScale","precinctsIterationSizes","px","maxNumHigh","maxNumWide","sizeInImageScale","getPrecinctIndexIfExist","ComponentPositionResolutionLayerIterator","pxIndex","pyIndex","precinctIterationSizes","minWidth","minHeight","startPrecinctRowIndex","sizePerComponent","sizePerResolution","minWidthCurrentComponent","minHeightCurrentComponent","maxNumWideCurrentComponent","maxNumHighCurrentComponent","widthCurrentResolution","heightCurrentResolution","blocksDimensions","bscale","resolutionSubbands","packetsIterator","skipNextBit","skipMarkerIfEqual","skipBytes","alignToByte","readCodingpasses","queue","codeblockColumn","codeblockRow","codeblockIncluded","firstTimeInclusion","valueReady","zeroBitPlanesTree","included","inclusionTree","InclusionTree","TagTree","nextLevel","incrementValue","zeroBitPlanes","codingpasses","codingpassesLog2","codedDataLength","packetItem","copyCoefficients","coefficients","levelWidth","levelHeight","delta","mb","reversible","right","bottom","blockWidth","blockHeight","bitModel","BitModel","currentCodingpassType","dataItem","encodedData","setDecoder","runSignificancePropagationPass","runMagnitudeRefinementPass","runCleanupPass","checkSegmentationSymbol","coefficentsSign","magnitude","coefficentsMagnitude","bitsDecoded","magnitudeCorrection","nb","interleave","levelOffset","transformTile","quantizationParameters","ReversibleTransform","IrreversibleTransform","subbandCoefficients","gainLog2","calculate","resultImages","transformedTiles","tile0","fourComponents","y0items","y1items","y2items","y3items","component0","qcdOrQcc","levelsLength","levels","currentLevel","stopValue","propagateValues","levelIndex","currentValue","BitModelClosure","UNIFORM_CONTEXT","RUNLENGTH_CONTEXT","LLAndLHContextsLabel","HLContextLabel","HHContextLabel","contextLabelTable","coefficientCount","neighborsSignificance","processingFlags","setNeighborsSignificance","column","labels","processedInverseMask","processedMask","firstMagnitudeBitMask","i1","decision","decodeSignBit","contribution","sign0","sign1","significance1","decoded","horizontalContribution","width4","index0","indexNext","significance","oneRowDown","twoRowsDown","threeRowsDown","iNext","indexBase","checkAllEmpty","allEmpty","hasSignificantCoefficent","i2","Transform","u0","ll","iterate","j1","j2","hl_lh_hh","llWidth","llHeight","llItems","u","bufferPadding","rowBuffer","numBuffers","colBuffers","currentBuffer","current","alpha","beta","K_","bitsCached","maxLzwDictionarySize","lzwState","nextCode","dictionaryValues","dictionaryLengths","dictionaryPrevCodes","currentSequence","currentSequenceLength","lastCode","blockSize","decodedSizeDelta","estimatedDecodedSize","prevCode","decodedLength","currentBufferLength","hasPrev","predictor","readBlockTiff","readBlockPng","colors","pixBytes","rawBytes","inbuf","outbuf","inbits","outbits","bytesPerPixel","sum","compArray","bitMask","prevRow","up","upLeft","pa","pb","pc","repeatHeader","PRIVATE_USE_AREAS","PDF_GLYPH_SPACE_UNITS","EXPORT_DATA_PROPERTIES","EXPORT_DATA_EXTRA_PROPERTIES","adjustWidths","adjustToUnicode","amend","amendFallbackToUnicode","Glyph","originalCharCode","operatorListId","isSpace","isInFont","matchesForCache","int16","writeSignedInt16","signedInt16","int32","string16","safeString16","isTrueTypeFile","isTrueTypeCollectionFile","isOpenTypeFile","isType1File","isCFFFile","getFontFileType","fileType","fileSubtype","applyStandardFontGlyphMap","glyphMap","buildToFontChar","toFontChar","convertCidString","shouldThrow","adjustMapping","hasGlyph","newGlyphZeroId","newMap","privateUseAreaIndex","nextAvailableFontCharCode","privateUseOffetEnd","fontCharCode","getRanges","numGlyphs","fontGetRangesSort","codeIndices","createCmapTable","numTables","bmpLength","trailingRangesCount","segCount","searchParams","OpenTypeFileBuilder","getSearchParams","startCount","endCount","idDeltas","idRangeOffsets","glyphsIds","bias","contiguous","startCode","format314","rangeShift","format31012","header31012","validateOS2Table","os2","selection","usWinAscent","createOS2Table","charstrings","override","unitsPerEm","yMax","yMin","ulUnicodeRange1","ulUnicodeRange2","ulUnicodeRange3","ulUnicodeRange4","firstCharIndex","lastCharIndex","ascentScaled","typoAscent","typoDescent","winAscent","winDescent","createPostTable","createPostscriptName","createNameTable","proto","strings","stringsUnicode","strBufUnicode","names","platforms","encodings","languages","namesRecordCount","nameTable","strOffset","strs","nameRecord","psName","mimetype","missingFile","_charsCache","_glyphCache","baseName","serifFonts","namePart","fallbackToSystemFont","cff","CFFFont","Type1Font","convert","checkAndRepair","isOpenType","seacMap","FontRendererFactory","extraProperties","exportDataProperties","nonStdFontMap","getNonStdFontMap","isMappedToStandardFont","fontBasicMetricsMap","getFontBasicMetrics","bold","italic","isNarrow","remeasure","getGlyphMapForStandardFonts","getSupplementalGlyphMapForArialBlack","getSupplementalGlyphMapForCalibri","unicodeCharCode","VALID_TABLES","readTables","tables","hhea","hmtx","maxp","post","readTableEntry","checksum","previousPosition","readOpenTypeHeader","ttf","searchRange","entrySelector","readTrueTypeCollectionHeader","ttc","ttcTag","majorVersion","minorVersion","numFonts","offsetTable","dsigTag","dsigLength","dsigOffset","readTrueTypeCollectionData","fontNameParts","fallbackData","potentialHeader","potentialTables","readNameTable","nameEntry","part","readCmapTable","platformId","encodingId","mappings","hasShortCmap","potentialTable","canBreak","useTable","correctlySorted","nextBytes","nextPlatformId","format","subHeaderKeys","maxSubHeaderKey","subHeaderKey","subHeaders","entryCount","idDelta","idRangePos","segIndex","offsetsCount","offsetIndex","rangeOffset","offsets","nGroups","startCharCode","endCharCode","glyphCode","sanitizeMetrics","headTable","dupFirstEntry","caretOffset","numOfMetrics","macStyle","numOfSidebearings","numMissing","sanitizeGlyph","sourceStart","sourceEnd","destStart","hintsValid","glyphProfile","sizeOfInstructions","glyf","contoursCount","flagsCount","endPoint","instructionsStart","instructionsLength","instructionsEnd","coordinatesLength","xLength","yLength","xyLength","repeat","glyphDataLength","sanitizeHead","locaLength","indexToLocFormat","numGlyphsPlusOne","sanitizeGlyphLocations","loca","isGlyphLocationsLong","maxSizeOfInstructions","itemSize","itemDecode","itemEncode","fontItemDecodeLong","fontItemEncodeLong","fontItemDecode","fontItemEncode","numGlyphsOut","locaDataSize","locaData","oldGlyfData","oldGlyfDataLength","newGlyfData","locaEntries","nextOffset","missingGlyphs","writeOffset","simpleGlyph","firstEntryLength","readPostScriptTable","propertiesObj","maxpNumGlyphs","valid","glyphNameIndexes","customNames","stringLength","FORMAT_0_HEADER_LENGTH","numRecords","stringsStart","records","NAME_RECORD_LENGTH","platform","language","record","nameIndex","TTOpsStackDeltas","sanitizeTTProgram","ttContext","funcId","lastEndf","lastDeff","callstack","functionsCalled","tooComplexToFollowFunctions","inFDEF","ifLevel","inELSE","op","functionsUsed","functionsStackDeltas","newStackLength","functionsDefined","stackTop","stackDelta","NaN","foldTTTable","checkInvalidFunctions","maxFunctionDefs","sanitizeTTPrograms","fpgm","prep","cvt","cvtData","ttcData","cffFile","isTrueType","isComposite","GlyfTable","glyfTable","locaTable","isLocationLong","write","advanceWidth","lsb","maxZones","glyphsInfo","metricsOverride","isCidToGidMapEmpty","cmapTable","cmapPlatformId","cmapEncodingId","cmapMappings","cmapMappingsLength","forcePostTable","unicodeOrCharCode","glyphZeroId","newMapping","CFFParser","duplicateFirstGlyph","compiler","CFFCompiler","compile","namePrototype","builder","tableTag","addTable","toArray","mapping","getGlyphMapping","newCharCodeToGlyphId","hasGlyphId","getCharCodes","charCodes","createCharCode","seacs","charset","getCharset","seac","baseGlyphName","accentGlyphName","baseGlyphId","accentGlyphId","accentOffset","baseFontCharCode","accentFontCharCode","fontFieldsHmtx","cffWidths","charstring","spaceWidth","possibleSpaceReplacements","_charToGlyph","widthCode","buffers","currentBuf","hasCurrentBufErrors","getCharCode","charCodeLength","MAX_SUBR_NESTING","CFFStandardStrings","NUM_STANDARD_CFF_STRINGS","CFFParserClosure","CharstringValidationData","stackClearing","stem","resetStack","undefStack","CharstringValidationData12","stackFn","stack_div","seacAnalysisEnabled","CFF","parseHeader","parseIndex","endPos","topDictIndex","stringIndex","globalSubrIndex","topDictParsed","parseDict","topDict","createDict","CFFTopDict","parseNameIndex","parseStringIndex","parsePrivateDict","isCIDFont","hasName","charStringOffset","charStringIndex","fontBBox","fdArrayIndex","dictRaw","fontDict","fdArray","parseCharsets","fdSelect","parseFDSelect","parseEncoding","charStringsAndSeacs","parseCharStrings","charStrings","localSubrIndex","privateDict","subrsIndex","hdrSize","offSize","CFFHeader","parseOperand","parseFloatOperand","operands","cffIndex","CFFIndex","offsetSize","offsetStart","offsetEnd","CFFStrings","Type","cffDict","pair","setByKey","parseCharString","callDepth","stackSize","validationCommand","subrNumber","hasVStems","firstStackClearing","localSubrToUse","privateDictToUse","fdIndex","getFDIndex","nominalWidth","emptyPrivateDictionary","parentDict","CFFPrivateDict","privateOffset","removeByName","privateDictEnd","dictData","subrsOffset","relativeOffset","CFFCharset","CFFCharsetPredefinedTypes","ISO_ADOBE","ISOAdobeCharset","EXPERT","ExpertCharset","EXPERT_SUBSET","ExpertSubsetCharset","predefined","readSupplement","supplementsCount","sid","dataStart","glyphsCount","rangesCount","gid","CFFEncoding","CFFFDSelect","glyphZero","getSID","objects","CFFDict","keyToNameMap","nameToKeyMap","defaults","types","opcodes","order","valueLength","setByName","createTables","layout","CFFTopDictClosure","CFFPrivateDictClosure","CFFOffsetTracker","isTracking","track","location","setEntryLocation","dataOffset","offset1","offset2","offset3","offset4","CFFCompiler_add","compileHeader","compileNameIndex","xuid","compiled","compileTopDicts","topDictTracker","trackers","compileStringIndex","compileIndex","compileEncoding","compileCharset","compileCharStrings","compileFDSelect","fontDictTrackers","compilePrivateDicts","encodeNumber","encodeInteger","encodeFloat","EncodeFloatRegExp","nibbles","sanitizedName","dicts","removeCidKeys","fontDictTracker","fontDictData","compileDict","privateDictTracker","privateDictData","outputLength","subrs","offsetTracker","compileGlobalSubrIndex","writeByteArray","charStringsIndex","numGlyphsLessNotDef","charsetIndex","numCharsets","warned","compileTypedArray","lastFD","currentFD","numRanges","lastOffset","Courier","ZapfDingbats","ArialNarrow","ArialBlack","CourierNew","CourierNewPSMT","TimesNewRoman","TimesNewRomanPS","TimesNewRomanPSMT","Calibri","CenturyGothic","ComicSansMS","LucidaConsole","NuptialScript","SegoeUISymbol","Wingdings","Albertus","Aldus","Alexandria","Algerian","Antiqua","Apex","Arno","Aster","Aurora","Baskerville","Bell","Bembo","Benguiat","Bodoni","Bookman","Calisto","Calvert","Capitals","Cambria","Cartier","Caslon","Catull","Centaur","Chaparral","Cheltenham","Clarendon","Clearface","Cochin","Colonna","Constantia","Corona","Ecotype","Egyptienne","Elephant","Excelsior","Fairfield","Folkard","Footlight","FreeSerif","Garamond","Gentium","Georgia","Gloucester","Granjon","Heather","Hercules","Hiroshige","Imprint","Janson","Joanna","Korinna","Lexicon","LiberationSerif","Literaturnaya","Lucida","Melior","Memphis","Miller","Minion","Modern","Palatino","Perpetua","Plantin","Playbill","Renault","Requiem","Rockwell","Roman","Sabon","Scala","Seagull","Sistina","Souvenir","STIX","Sylfaen","Times","Trajan","Utopia","Versailles","Wanted","Weiss","Windsor","XITS","Dingbats","_createBuiltInEncoding","charsets","getUint32","getInt16","getInt8","getFloat214","getSubroutineBias","numSubrs","parseCmap","idOffset","parseCff","gsubrs","isCFFCIDFont","parseGlyfTable","lookupCmap","compileGlyf","cmds","quadraticCurveTo","xa","ya","numberOfContours","arg1","arg2","scale01","scale10","subglyph","endPtsOfContours","instructionLength","numberOfPoints","startPoint","contour","compileCharString","charStringCode","bezierCurveTo","stems","stackClean","xb","yb","subrCode","subrsBias","achar","bchar","glyphNameMap","gsubrsBias","NOOP","CompiledFont","compiledGlyphs","compiledCharCodeToGlyphId","compileGlyph","compileGlyphImpl","TrueTypeCompiled","Type2Compiled","cffInfo","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","H","P","R","T","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","o","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","Idieresis","eacute","abreve","uhungarumlaut","ecaron","Ydieresis","divide","Yacute","Acircumflex","aacute","Ucircumflex","yacute","scommaaccent","ecircumflex","Uring","Udieresis","aogonek","Uacute","uogonek","Edieresis","Dcroat","commaaccent","copyright","Emacron","ccaron","aring","Ncommaaccent","lacute","agrave","Tcommaaccent","Cacute","atilde","Edotaccent","scaron","scedilla","iacute","lozenge","Rcaron","Gcommaaccent","ucircumflex","acircumflex","Amacron","rcaron","ccedilla","Zdotaccent","Thorn","Omacron","Racute","Sacute","dcaron","Umacron","uring","threesuperior","Ograve","Agrave","Abreve","multiply","uacute","Tcaron","partialdiff","ydieresis","Nacute","icircumflex","Ecircumflex","adieresis","edieresis","cacute","nacute","umacron","Ncaron","Iacute","plusminus","brokenbar","registered","Gbreve","Idotaccent","summation","Egrave","racute","omacron","Zacute","Zcaron","greaterequal","Eth","Ccedilla","lcommaaccent","tcaron","eogonek","Uogonek","Aacute","Adieresis","egrave","zacute","iogonek","Oacute","oacute","amacron","sacute","idieresis","Ocircumflex","Ugrave","Delta","thorn","twosuperior","Odieresis","igrave","ohungarumlaut","Eogonek","dcroat","threequarters","Scedilla","lcaron","Kcommaaccent","Lacute","trademark","edotaccent","Igrave","Imacron","Lcaron","onehalf","lessequal","ocircumflex","ntilde","Uhungarumlaut","Eacute","emacron","gbreve","onequarter","Scaron","Scommaaccent","Ohungarumlaut","degree","ograve","Ccaron","ugrave","radical","Dcaron","rcommaaccent","Ntilde","otilde","Rcommaaccent","Lcommaaccent","Atilde","Aogonek","Aring","Otilde","zdotaccent","Ecaron","Iogonek","kcommaaccent","minus","Icircumflex","ncaron","tcommaaccent","logicalnot","odieresis","udieresis","notequal","gcommaaccent","eth","zcaron","ncommaaccent","onesuperior","imacron","Euro","universal","existential","suchthat","asteriskmath","congruent","Alpha","Beta","Chi","Epsilon","Phi","Gamma","Eta","Iota","theta1","Kappa","Lambda","Mu","Nu","Omicron","Pi","Theta","Rho","Sigma","Tau","Upsilon","sigma1","Omega","Xi","Psi","Zeta","therefore","perpendicular","radicalex","chi","phi","eta","iota","phi1","kappa","lambda","omicron","theta","rho","sigma","tau","upsilon","omega1","omega","xi","psi","zeta","similar","Upsilon1","minute","infinity","club","diamond","heart","spade","arrowboth","arrowleft","arrowup","arrowright","arrowdown","proportional","equivalence","approxequal","arrowvertex","arrowhorizex","carriagereturn","aleph","Ifraktur","Rfraktur","weierstrass","circlemultiply","circleplus","emptyset","intersection","union","propersuperset","reflexsuperset","notsubset","propersubset","reflexsubset","notelement","gradient","registerserif","copyrightserif","trademarkserif","product","dotmath","logicaland","logicalor","arrowdblboth","arrowdblleft","arrowdblup","arrowdblright","arrowdbldown","angleleft","registersans","copyrightsans","trademarksans","parenlefttp","parenleftex","parenleftbt","bracketlefttp","bracketleftex","bracketleftbt","bracelefttp","braceleftmid","braceleftbt","braceex","angleright","integral","integraltp","integralex","integralbt","parenrighttp","parenrightex","parenrightbt","bracketrighttp","bracketrightex","bracketrightbt","bracerighttp","bracerightmid","bracerightbt","apple","a2","a202","a3","a4","a5","a119","a118","a117","a11","a12","a13","a14","a15","a16","a105","a17","a18","a19","a20","a21","a22","a23","a24","a25","a26","a27","a28","a6","a7","a8","a9","a10","a29","a30","a31","a32","a33","a34","a35","a36","a37","a38","a39","a40","a41","a42","a43","a44","a45","a46","a47","a48","a49","a50","a51","a52","a53","a54","a55","a56","a57","a58","a59","a60","a61","a62","a63","a64","a65","a66","a67","a68","a69","a70","a71","a72","a73","a74","a203","a75","a204","a76","a77","a78","a79","a81","a82","a83","a84","a97","a98","a99","a100","a89","a90","a93","a94","a91","a92","a205","a85","a206","a86","a87","a88","a95","a96","a101","a102","a103","a104","a106","a107","a108","a112","a111","a110","a109","a120","a121","a122","a123","a124","a125","a126","a127","a128","a129","a130","a131","a132","a133","a134","a135","a136","a137","a138","a139","a140","a141","a142","a143","a144","a145","a146","a147","a148","a149","a150","a151","a152","a153","a154","a155","a156","a157","a158","a159","a160","a161","a163","a164","a196","a165","a192","a166","a167","a168","a169","a170","a171","a172","a173","a162","a174","a175","a176","a177","a178","a179","a193","a180","a199","a181","a200","a182","a201","a183","a184","a197","a185","a194","a198","a186","a195","a187","a188","a189","a190","a191","ON_CURVE_POINT","X_SHORT_VECTOR","Y_SHORT_VECTOR","REPEAT_FLAG","X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR","Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR","OVERLAP_SIMPLE","ARG_1_AND_2_ARE_WORDS","ARGS_ARE_XY_VALUES","WE_HAVE_A_SCALE","MORE_COMPONENTS","WE_HAVE_AN_X_AND_Y_SCALE","WE_HAVE_A_TWO_BY_TWO","WE_HAVE_INSTRUCTIONS","DataView","byteOffset","getSize","totalSize","ArrayBuffer","setUint32","setUint16","locaIndex","simple","composites","GlyphHeader","CompositeGlyph","SimpleGlyph","spos","factor","xMiddle","setInt16","Contour","xCoordinates","yCoordinates","contours","instructions","endPt","numberOfPt","getUint8","allXCoordinates","pointFlags","endPtsOfContoursIndex","lastCoordinate","lastX","lastY","setUint8","argument1","argument2","writeInt16","writeInt32","writeData","OTF_HEADER_SIZE","OTF_TABLE_ENTRY_SIZE","sfnt","entriesCount","entrySize","maxPower2","tablesNames","tableName","tableOffsets","paddedLength","quad","findBlock","streamBytes","startIndex","streamBytesLength","getHeaderBlock","suggestedLength","EEXEC_SIGNATURE","streamStartPos","headerBytes","headerBytesLength","getEexecBlock","eexecBytes","PFB_HEADER_SIZE","headerBlockLength","eexecBlockLength","pfbHeader","pfbHeaderPresent","headerBlock","headerBlockParser","Type1Parser","extractFontHeader","eexecBlock","eexecBlockParser","extractFontProgram","type2Charstrings","getType2Charstrings","getType2Subrs","wrap","getSeacs","charstringsLen","type1Charstrings","type1Subrs","type2Subrs","charsetArray","privateData","subrIndex","HINTING_ENABLED","Type1CharString","Type1CharStringClosure","COMMAND_MAP","hstem","vstem","vmoveto","rlineto","hlineto","vlineto","rrcurveto","callsubr","flex","drop","endchar","rmoveto","hmoveto","vhcurveto","hvcurveto","flexing","wx","sbx","executeCommand","asb","sby","num2","num1","flexArgs","howManyArgs","command","keepStack","stackLength","Type1ParserClosure","EEXEC_ENCRYPT_KEY","CHAR_STRS_ENCRYPT_KEY","isHexDigit","decrypt","discardNumber","c1","c2","decrypted","decryptAscii","digit1","digit2","isSpecial","encrypted","isBinary","readNumberArray","getToken","readInt","readBoolean","prevChar","readCharStrings","lenIV","program","blueArray","charString","charStringObject","encodingArg","ShadingType","FUNCTION_BASED","AXIAL","RADIAL","FREE_FORM_MESH","LATTICE_FORM_MESH","COONS_PATCH_MESH","TENSOR_PATCH_MESH","RadialAxialShading","MeshShading","DummyShading","BaseShading","SMALL_NUMBER","coordsArr","shadingType","t0","domainArr","extendStart","extendEnd","extendArr","r1","r2","distance","fnObj","createFromArray","NUMBER_OF_SAMPLES","colorStops","ratio","cssColor","background","r0","MeshStreamReader","tmpCompsBuf","csNumComps","tmpCsCompsBuf","colorFn","hasData","align","readFlag","bitsPerFlag","readCoordinate","bitsPerCoordinate","yi","readComponents","ci","getB","getBClosure","buildB","lut","t_","MIN_SPLIT_PATCH_CHUNKS_AMOUNT","MAX_SPLIT_PATCH_CHUNKS_AMOUNT","TRIANGLE_DENSITY","coords","figures","decodeContext","patchMesh","_decodeType4Shading","verticesPerRow","_decodeType5Shading","_decodeType6Shading","_decodeType7Shading","_updateBounds","_buildFigureFromPatch","_packData","operators","ps","verticesLeft","coord","tmp1","tmp2","tmp3","tmp4","figure","figureMinX","figureMinY","figureMaxX","figureMaxY","splitXBy","splitYBy","figureCoords","figureColors","cl","cr","c0","c3","bRow","bCol","newColor","coordsPacked","xy","colorsPacked","xstep","ystep","paintType","tilingType","cachedFunction","parsedFunction","PDFFunction","parseArray","fnRef","localFunction","_localFunctionCache","LocalFunctionCache","toNumberArray","getSampleArray","outputSize","bps","sampleMul","strBytes","strIdx","constructSampled","constructInterpolated","constructStiched","constructPostScript","toMultiArray","xmin","xmax","ymin","ymax","domain","inputSize","encode","samples","constructSampledFn","cubeVertices","cubeN","Float64Array","cubeVertex","domain_2i","domain_2i_1","size_i","e0","n0","n1","rj","constructInterpolatedFn","fnRefs","fns","constructStichedFn","constructStichedFromIRClip","dmin","dmax","rmin","rmax","PostScriptLexer","PostScriptParser","PostScriptCompiler","numOutputs","numInputs","PostScriptEvaluator","MAX_CACHE_SIZE","cache_available","constructPostScriptFn","cachedValue","execute","stackIndex","bound","fnDict","PostScriptStack","MAX_STACK_SIZE","initialStack","call","copy","roll","counter","atan","cos","LN10","sin","PostScriptCompilerClosure","AstNode","visit","AstArgument","visitArgument","AstLiteral","visitLiteral","AstBinaryOperation","visitBinaryOperation","AstMin","visitMin","AstVariable","visitVariable","AstVariableDefinition","variable","visitVariableDefinition","ExpressionBuilderVisitor","parts","literal","definition","buildAddOperation","buildMulOperation","buildSubOperation","buildMinOperation","lastRegister","ast1","ast2","tmpVar","instruction","statementBuilder","expr","nextToken","accept","expect","PostScriptTokenTypes","LBRACE","parseBlock","RBRACE","NUMBER","OPERATOR","parseCondition","conditionLocation","IF","jumpLocation","endOfTrue","IFELSE","PostScriptToken","opCache","getOperator","opValue","BaseLocalCache","_onlyRefs","onlyRefs","_nameRefMap","_imageMap","_imageCache","GlobalImageCache","NUM_PAGES_THRESHOLD","MIN_IMAGES_TO_CACHE","MAX_BYTE_SIZE","_refCache","_byteSize","imageData","_cacheLimitReached","pageIndexSet","onlyData","baseTypes","arabicTypes","isOdd","isEven","findUnequal","setValues","reverseValues","createBidiText","isLTR","startLevel","strLength","numBidi","charType","sor","eor","lastType","before","after","highestLevel","lowestOddLevel","SEED","MASK_HIGH","MASK_LOW","seed","blockCounts","tailLength","dataUint32","k1","k2","C1","C2","C1_LOW","C2_LOW","hex1","hex2","addState","parentState","checkFn","iterateFn","processFn","InitialState","iterateInlineImageGroup","iFirstSave","iCurr","foundInlineImageGroup","MIN_IMAGES_IN_INLINE_IMAGES_BLOCK","MAX_IMAGES_IN_INLINE_IMAGES_BLOCK","MAX_WIDTH","IMAGE_PADDING","curr","iFirstTransform","iFirstPIIXO","maxLineHeight","currentX","currentY","img","imgWidth","imgHeight","kind","iterateImageMaskGroup","foundImageMaskGroup","MIN_IMAGES_IN_MASKS_BLOCK","MAX_IMAGES_IN_MASKS_BLOCK","MAX_SAME_IMAGES_IN_MASKS_BLOCK","iFirstPIMXO","isSameImage","iTransform","transformArgs","firstPIMXOArg0","firstTransformArg0","firstTransformArg1","firstTransformArg2","firstTransformArg3","iPIMXO","images","maskParams","iterateImageGroup","iFirstPIXO","firstPIXOArg0","MIN_IMAGES_IN_BLOCK","MAX_IMAGES_IN_BLOCK","iterateShowTextGroup","iFirstSetFont","firstSetFontArg0","firstSetFontArg1","MIN_CHARS_IN_BLOCK","MAX_CHARS_IN_BLOCK","iFirstBeginText","iFirstSetTextMatrix","iFirstShowText","iFirstEndText","iFirst","iEndText","NullOptimizer","_optimize","QueueOptimizer","lastProcessed","CHUNK_SIZE","CHUNK_SIZE_ABOUT","streamSink","_streamSink","optimizer","_totalLength","_resolved","_transfers","decodeAndClamp","addend","coefficient","resizeImageMask","isMask","matte","needsDecode","decodeCoefficients","decodeAddends","isIndexed","maskDict","smaskData","maskData","computedLength","haveFullData","canvas","ctx","getContext","applyMaskImageData","putImageData","transferToImageBitmap","decodeBuffer","getComponents","bufferPos","rowComps","loop1End","loop2End","remainingBits","fillOpacity","rgbaBuf","alphaBuf","sw","fillGrayBuffer","opacity","imageOffset","maskOffset","undoPreblend","matteRgb","matteR","matteG","matteB","forceRGBA","getImageBytes","imageLength","internal","maybeUndoPreblend","srcPos","opaque","zeroMapping","oneMapping","widthInSource","widthRemainder","srcLength","elem","PartialEvaluatorClosure","ignoreCalculations","textStateManager","graphicsStateManager","GraphicsState","clipping","boundingBoxesStack","NoMCIDBoundingBoxStack","operationIndex","getTopPoints","BoundingBoxesCalculator_getTopPoints","pow","rotated_e","result_vector","getTextBoundingBox","BoundingBoxesCalculator_getTextBoundingBox","tx","ty","rise","glyphsSize","w0","tx2","ty2","tx3","ty3","glyphSize","glyphsPos","xPoints","point","yPoints","getClippingGraphicsBoundingBox","BoundingBoxesCalculator_getClippingGraphicsBoundingBox","saveGraphicsBoundingBox","clippingBBox","getRectBoundingBox","x4","y4","getLineBoundingBox","move_x","move_y","getCurve","curve","getCurveRoots","root_1","root_2","getCurveBoundingBox","curveX","curveY","getClip","getImageBoundingBox","BoundingBoxesCalculator_parseOperator","inc","clean","boundingBox","BoundingBoxesCalculator_setFont","BoundingBoxesCalculator_incrementOperation","GraphicsState_clone","GraphicsState_clear","BoundingBoxStack","BoundingBoxStack_begin","BoundingBoxStack_save","BoundingBoxStack_end","contentCounter","pointer","NoMCIDBoundingBoxStack_begin","inMarkedContent","newContentItem","contentItems","NoMCIDBoundingBoxStack_save","contentItem","final","NoMCIDBoundingBoxStack_end","tempPointer","NoMCIDBoundingBoxStack_inc","isMC","NoMCIDBoundingBoxStack_get","JSON","stringify","fetchDestination","_catDict","getCatalogObj","toplevelPagesDict","_actualNumPages","metadata","streamRef","encryptMetadata","MetadataParser","markInfo","_readMarkInfo","Marked","UserProperties","Suspects","_readStructTreeRoot","root","StructTreeRoot","init","pagesObj","documentOutline","_readDocumentOutline","blackColor","outlineDict","outlineItem","unsafeUrl","permissions","_readPermissions","optionalContentConfig","defaultConfig","groupsData","groupRefs","groupRef","_readOptionalContentConfig","contentGroupRefs","parseOnOff","onParsed","parseOrder","nestedLevels","parsedOrderRefs","nestedOrder","parseNestedOrder","hiddenGroups","MAX_NESTED_LEVELS","nestedName","creator","baseState","off","_pagesCount","destinations","_readDests","dests","NameTree","getAll","getDestination","allDest","pageLabels","_readPageLabels","prefix","numberTree","NumberTree","nums","currentLabel","labelDict","st","LIMIT","A_UPPER_CASE","A_LOWER_CASE","baseCharCode","letterIndex","character","pageLayout","pageMode","viewerPreferences","prefs","prefValue","openAction","attachments","nameTree","fs","_collectJavaScript","appendIfJavaScriptDict","jsDict","translatedFonts","nodesToVisit","visitedNodes","pagesRef","currentPageIndex","currentNode","posInKids","addPageDict","addPageError","queueItem","kidObj","getPageIndex","cachedPageIndex","pagesBeforeRef","kidRef","parentRef","kidPromises","uri","actionType","actionName","include","resetForm","urlDict","remoteDest","namedAction","jsAction","jsURL","ExtendedCatalog","pages","_convertStructToObject","struct","el","getTreeElement","newPage","findIndex","subel","pagesArray","kidObjType","NameOrNumberTree","_type","kidsOrEntries","loopCount","MAX_LEVELS","limits","currentKey","pickPlatformItem","description","contentAvailable","_filename","contentRef","fileObj","_repair","SimpleXMLParser","lowerCaseName","xmlDocument","parseFromString","_metadataMap","_data","d2","d3","charBuf","_getSequence","nodeName","childNodes","_parseArray","hasChildNodes","seqNode","rdf","documentElement","firstChild","nextSibling","desc","parsedData","rawData","XMLParserErrorCode","NoError","EndOfDocument","UnterminatedCdat","UnterminatedXmlDeclaration","UnterminatedDoctypeDeclaration","UnterminatedComment","MalformedElement","OutOfMemory","UnterminatedAttributeValue","UnterminatedElement","ElementNeverBegun","isWhitespaceString","XMLParserBase","_resolveEntities","onResolveEntity","_parseContent","attributes","skipWs","attrName","attrValue","attrEndChar","attrEndIndex","parsed","_parseProcessingInstruction","attrStart","parseXml","ch2","onEndElement","onPi","onComment","onCdata","q2","complexDoctype","doctypeContent","onDoctype","isClosed","onBeginElement","onText","SimpleDOMNode","nodeValue","parentNode","child","searchNode","paths","siblingPos","dump","attribute","hasAttributes","_currentFragment","_stack","_errorCode","_hasAttributes","_lowerCaseName","lastElement","MAX_DEPTH","StructElementType","PAGE_CONTENT","STREAM_CONTENT","OBJECT","ELEMENT","rootDict","roleMap","readRoleMap","roleMapDict","StructElementNode","parseKids","role","nameObj","pageObjId","objRef","parseKid","StructElement","kidDict","refObjId","parentTree","parentArray","addNode","addTopLevelNode","nodeToSerializable","kidElement","mayHaveChildren","addChildren","rawValue","refSet","_walk","nodesToRevisit","pendingRequests","foundMissingData","writeValue","writeStream","string","writeArray","numberToString","roundedValue","writeInt","writeString","computeMD5","filesize","time","md5Buffer","md5BufferLen","writeXFADataForAcroform","xml","updateXFA","oldXfa","newXfa","refForXrefTable","baseOffset","xrefTableData","indexes","maxOffset","md5","sizes","structSize","tableLength","bufferLen","footer","objOffset","ARCFourCipher","keyLength","encryptBlock","decryptBlock","calculateMD5Closure","h0","h3","padded","rotateArg","Word64","highInteger","lowInteger","and","word","xor","or","shiftRight","places","shiftLeft","rotateRight","not","lowAdd","highAdd","copyTo","calculateSHA256","calculateSHA256Closure","rotr","maj","sigmaPrime","littleSigma","littleSigmaPrime","h4","h5","h6","h7","calculateSHA512","calculateSHA512Closure","mode384","calculateSHA384","NullCipher","AESBaseCipher","_s","_inv_s","_mix","_mixCol","bufferPosition","_expandKey","cipherKey","_decrypt","_keySize","_cyclesOfRepetition","s0","s1","s3","_encrypt","_decryptBlock2","finalize","sourceLength","iv","plain","_key","lastBlock","psLen","cipher","AES128Cipher","_rcon","rcon","t3","t4","AES256Cipher","PDF17","checkOwnerPassword","ownerValidationSalt","userBytes","ownerPassword","hashData","checkUserPassword","userValidationSalt","userPassword","getOwnerKey","ownerKeySalt","ownerEncryption","getUserKey","userKeySalt","userEncryption","PDF20","PDF20Closure","calculatePDF20Hash","combinedLength","combinedArray","remainder","concatBytes","CipherTransform","stringCipherConstructor","streamCipherConstructor","StringCipherConstructor","StreamCipherConstructor","DecryptStream","cipherTransformDecryptStream","strLen","pad","crypto","getRandomValues","random","CipherTransformFactory","CipherTransformFactoryClosure","defaultPasswordBytes","createEncryptionKey20","revision","uBytes","perms","passwordLength","pdfAlgorithm","prepareKeyData","fileId","hashDataSize","keyLengthInBytes","encryptionKey","checkData","derivedKey","decodeUserPassword","identityName","buildObjectKey","isAes","buildCipherConstructor","cf","cryptFilter","cfm","cipherTransformFactoryBuildCipherConstructorNone","cipherTransformFactoryBuildCipherConstructorV2","cipherTransformFactoryBuildCipherConstructorAESV2","cipherTransformFactoryBuildCipherConstructorAESV3","algorithm","cfDict","streamCryptoName","handlerDict","fileIdBytes","passwordBytes","decodedPassword","stmf","strf","eff","cipherConstructor","buildCipherCipherConstructor","nextChunk","hasMoreData","XFAParser","_createDocument","binder","Binder","form","dataHandler","DataHandler","$globalData","_createPagesHelper","$toPages","nextIteration","setTimeout","_createPages","dims","fontFinder","FontFinder","typeface","usedTypefaces","stripQuotes","storage","serialize","rc","XhtmlNamespace","$nodeName","newRoot","body","$appendChild","$toHTML","success","html","class","attr","$text","$acceptWhitespace","$addHTML","$childrenToHTML","$clean","$cleanPage","$cleanup","$clone","$consumed","$content","$data","$dump","$extra","$finalize","$flushHTML","$getAttributeIt","$getAttributes","$getAvailableSpace","$getChildrenByClass","$getChildrenByName","$getChildrenByNameIt","$getDataValue","$getExtra","$getRealChildrenByNameIt","$getChildren","$getContainedChildren","$getNextPage","$getSubformParent","$getParent","$getTemplateRoot","$hasSettableValue","$ids","$indexOf","$insertAt","$isCDATAXml","$isBindable","$isDataValue","$isDescendent","$isNsAgnostic","$isSplittable","$isThereMoreWidth","$isTransparent","$isUsable","$lastAttribute","$namespaceId","$nsAttributes","$onChild","$onChildCheck","$onText","$pushGlyphs","$popPara","$pushPara","$removeChild","$root","$resolvePrototypes","$searchNode","$setId","$setSetAttributes","$setValue","$tabIndex","$toString","$toStyle","$uid","_applyPrototype","_attributes","_attributeNames","_children","_cloneAttribute","_dataValue","_defaultValue","_filteredChildrenGenerator","_getPrototype","_getUnsetAttributes","_hasChildren","_max","_options","_parent","_resolvePrototypesHelper","_setAttributes","_validator","uid","NS_DATASETS","NamespaceIds","XFAObject","nsId","hasChildren","XFAObjectArray","para","paraStack","getPrototypeOf","getOwnPropertyNames","dumped","HTMLResult","EMPTY","availableSpace","failingNode","generator","protoAttributes","allAttr","setAttr","ancestors","use","usehref","somExpression","endsWith","protoProto","newAncestors","unsetAttrName","protoValue","$symbol","getOwnPropertySymbols","clonedChild","allTransparent","XFAAttribute","XmlObject","dataNode","tagName","utf8TagName","utf8Name","skipConsumed","xhtml","hasNS","$ns","$name","ContentObject","OptionObject","getKeyword","StringObject","IntegerObject","validator","getInteger","Option01","Option10","dimConverters","pt","mm","in","measurementPattern","getFloat","getStringOption","getMeasurement","def","valueStr","unit","conv","getRatio","den","getRelevant","excluded","viewname","getColor","getBBox","FAILURE","breakNode","isBreak","$buildXFAObject","ns","pdf","sourceSet","xdc","xdp","xfdf","xmpmeta","namePattern","indexPattern","dot","dotDot","dotHash","dotBracket","dotParen","shortcuts","host","dataWindow","event","somCache","WeakMap","parseExpression","dotDotAllowed","noExpr","cacheName","formCalc","container","useCache","isQualified","isFinite","acc","createNodes","createDataNode","createText","Text","emptyMerge","_isConsumeData","_mergeMode","_isMatchTemplate","_bindElement","_bindValue","formNode","picture","Field","ui","choiceList","open","_findDataByNameToConsume","isValue","global","_setProperties","target","connection","setProperty","targetNodes","targetNode","targetParent","SetProperty","BindItems","attrs","Reflect","construct","_bindItems","bindItems","Items","labelRef","valueRef","labelNodes","labelNode","valueNodes","valueNode","label","_bindOccurrences","matches","baseClone","occur","_createOccurrences","initial","currentNumber","nodeClone","_getOccurInfo","_setAndBind","uselessNodes","mergeMode","dataChildren","dataChild","TEMPLATE_NS_ID","SVG_NS","MAX_ATTEMPTS_FOR_LRTB_LAYOUT","MAX_EMPTY_PAGES","DEFAULT_TAB_INDEX","HEADING_PATTERN","MIMES","IMAGES_HEADERS","getBorderDims","border","borderExtra","insets","hasMargin","margin","topInset","rightInset","bottomInset","leftInset","_setValue","templateNode","Value","getContainedChildren","SubformSet","setTabIndex","traversal","applyAssist","assist","assistTitle","ariaRole","ariaLevel","ariaLabel","speak","toolTip","valueToHtml","setFirstUnsplittable","firstUnsplittable","noLayoutFailure","unsetFirstUnsplittable","handleBreak","targetType","currentPageArea","currentContentArea","PageArea","startNew","ContentArea","pageArea","nextPageArea","contentAreas","contentArea","indexForCurrent","indexForTarget","handleOverflow","extraNode","saved","savedMethod","AppearanceFilter","Arc","circular","hand","startAngle","sweepAngle","edge","Edge","edgeStyle","presence","strokeWidth","measureToString","thickness","arc","xmlns","overflow","cx","cy","rx","ry","largeArc","vectorEffect","preserveAspectRatio","svg","display","Area","colSpan","relevant","extras","area","draw","exObject","exclGroup","subform","subformSet","toStyle","isPrintOnly","xfaName","Assist","Barcode","charEncoding","dataColumnCount","dataPrep","dataRowCount","endChar","errorCorrectionLevel","moduleHeight","moduleWidth","printCheckDigit","rowColumnRatio","startChar","textLocation","truncate","upsMode","wideNarrowRatio","Bind","Bookend","leader","BooleanElement","Border","break","corner","edges","defaultEdge","edgeStyles","cornerStyles","borderRadius","Break","afterTarget","beforeTarget","bookendLeader","bookendTrailer","overflowLeader","overflowTarget","overflowTrailer","BreakAfter","script","BreakBefore","Button","highlight","grandpa","htmlButton","activity","fixURL","Calculate","Caption","placement","reserve","layoutNode","savedReserve","setPara","Certificate","Certificates","credentialServerPolicy","urlPolicy","encryption","issuers","keyUsage","oids","signing","subjectDNs","CheckButton","mark","shape","className","groupId","fieldId","dataId","ExclGroup","xfaOn","xfaOff","ChoiceList","commitOn","textEntry","optionStyle","displayedIndex","saveIndex","displayed","selected","selectAttributes","multiple","Color","cSpace","Comb","numberOfCells","Connect","usage","classNames","Corner","inverted","DateElement","DateTime","DateTimeEdit","hScrollPolicy","picker","Decimal","fracDigits","leadDigits","DefaultUi","Desc","boolean","dateTime","decimal","exData","float","integer","DigestMethod","DigestMethods","digestMethod","Draw","anchorType","hAlign","locale","maxW","minH","minW","caption","keep","fixDimensions","savedW","savedH","isBroken","checkDimensions","setMinMaxDimensions","computeBbox","createWrapper","cap","linecap","Encoding","Encodings","Encrypt","certificate","EncryptData","manifest","Encryption","EncryptionMethod","EncryptionMethods","encryptionMethod","Event","listen","encryptData","signData","submit","ExData","contentType","maxLength","rid","transferEncoding","ExObject","archive","classId","codeBase","codeType","access","accessKey","connect","attempt","numberInLine","_isSplittable","flushHTML","addHTML","getAvailableSpace","setAccess","prevHeight","isSplittable","columnWidths","currentColumn","layoutClass","isLrTb","maxRun","marginH","marginV","Execute","executeType","runAt","Extras","Ui","TextEdit","textEdit","checkButton","borderDims","uiW","uiH","lineNoGap","tabindex","aElement","button","imageEdit","htmlValue","maxChars","numericEdit","captionHeight","inputHeight","Fill","linear","radial","solid","stipple","ggrandpa","propName","altPropName","Rectangle","Filter","addRevocationInfo","appearanceFilter","certificates","digestMethods","encryptionMethods","lockDocument","mdp","reasons","timeStamp","Float","baselineShift","fontHorizontalScale","fontVerticalScale","kerningMode","letterSpacing","lineThrough","lineThroughPeriod","overline","overlinePeriod","posture","underline","underlinePeriod","backgroundClip","verticalAlign","fontKerning","textDecoration","textDecorationStyle","fontStyle","setFontFamily","Format","Handler","Hyphenation","excludeAllCaps","excludeInitialCap","hyphenate","pushCharacterCount","remainCharacterCount","wordCharacterCount","Image","aspect","atob","blob","Blob","objectFit","createObjectURL","ImageEdit","Integer","Issuers","Keep","intact","KeyUsage","crlSign","dataEncipherment","decipherOnly","digitalSignature","encipherOnly","keyAgreement","keyCertSign","keyEncipherment","nonRepudiation","Line","slope","Linear","startColor","endColor","LockDocument","Manifest","Margin","Mdp","signatureType","Medium","imagingBBox","long","orientation","short","stock","trayIn","trayOut","Message","NumericEdit","Occur","originalMin","PageSet","Template","Oid","Oids","oid","Overflow","addLeader","addTrailer","blankOrNotBlank","initialNumber","numbered","oddOrEven","pagePosition","medium","numberOfUse","relation","duplexImposition","pageSet","pageSetIndex","pageNumber","parity","Para","marginLeft","marginRight","orphans","preserve","radixOffset","spaceAbove","spaceBelow","tabDefault","tabStops","textIndent","vAlign","widows","hyphenation","paddingLeft","paddingight","paddingTop","paddingBottom","fixTextIndent","tabSize","hyphenatation","PasswordEdit","passwordChar","Picture","Proto","barcode","bookend","breakAfter","breakBefore","dateTimeEdit","defaultUi","passwordEdit","subjectDN","traverse","variables","Radial","Reason","Reasons","cornerStyle","RefElement","binding","SignData","Signature","Signing","Solid","Speak","disable","priority","Stipple","rate","bgColor","Subform","allowMacro","restoreState","scope","afterBreakAfter","savedNoLayoutFailure","overflowExtra","overflowNode","SubjectDN","delimiter","kv","SubjectDNs","Submit","embedPDF","textEncoding","xdpContent","baseProfile","pageAreas","mainHtml","breakBeforeTarget","pageAreaParent","targetPageArea","hasSomething","hasSomethingCounter","htmlContentAreas","allowRichText","vScrollPolicy","Time","TimeStamp","server","ToolTip","Traversal","Traverse","Validate","formatTest","nullTest","scriptTest","valueName","Variables","TemplateNamespace","createLine","htmlFromFailing","getTransformedBBox","centerX","centerY","ERROR","converters","transformOrigin","visibility","textAlign","alignSelf","layoutText","xfaFont","measure","TextMeasure","addString","compute","newStyle","wrapper","insetsH","insetsW","indent","getCurrentPara","nodeStyle","valueStyle","flexDirection","justifyContent","paraStyle","regular","pdfFont","selectFont","defaultFont","addPdfFont","bolditalic","myriad","getDefault","mustWarn","maybe","family","real","WIDTH_FACTOR","FontInfo","paraMargin","FontSelector","defaultXfaFont","defaultParaMargin","defaultLineHeight","pushData","lastFont","popFont","topFont","fontSelector","extraHeight","addPara","fontLineHeight","noGap","firstLineHeight","fallbackWidth","encodedLine","lastSpaceWidth","currentLineWidth","currentLineHeight","isFirstLine","isEOL","dataset","rootNameSpace","_builder","Builder","_globalData","_ids","_current","buildRoot","_whiteRegex","_nbsps","_richText","_mkAttributes","namespace","prefixes","attributeObj","nsAttrs","_getNameAndPrefix","nsAgnostic","attributesObj","nsPrefix","isNsAgnostic","build","Root","Empty","_namespaceStack","_nsAgnosticLevel","_namespacePrefixes","_namespaces","_nextNsId","_currentNamespace","UnknownNamespace","hasNamespaceDef","_searchNamespace","_addNamespacePrefix","dataTemplate","NamespaceSetUp","xfaAttrs","nsToUse","_getNamespaceToUse","namespaceToUse","hasNamespace","nsName","prefixStack","ConfigNamespace","ConnectionSetNamespace","DatasetsNamespace","LocaleSetNamespace","SignatureNamespace","StylesheetNamespace","XdpNamespace","CONFIG_NS_ID","Acrobat","acrobat7","autoSave","common","validateApprovalSignatures","submitUrl","Acrobat7","dynamicRender","ADBE_JSConsole","ADBE_JSDebugger","AddSilentPrint","AddViewerPreferences","AdjustData","AdobeExtensionLevel","Agent","AlwaysEmbed","Amd","Attributes","AutoSave","Base","BatchOutput","BehaviorOverride","Cache","templateCache","Change","Common","messaging","suppressBanner","validationMessaging","versionControl","Compress","CompressLogicalStructure","CompressObjectStream","Compression","compressLogicalStructure","compressObjectStream","Config","acrobat","present","trace","agent","Conformance","ContentCopy","Copies","Creator","CurrentPage","Data","adjustData","incrementalLoad","outputXSL","startNode","xsl","excludeNS","Debug","DefaultTypeface","writingScript","Destination","DocumentAssembly","Driver","DuplexOption","DynamicRender","Embed","encryptionLevel","EncryptionLevel","Enforce","Equate","force","to","EquateRange","_unicodeRange","unicodeRange","unicodeRegex","Exclude","ExcludeNS","FlipLabel","embed","subsetBelow","alwaysEmbed","defaultTypeface","neverEmbed","FormFieldFilling","GroupParent","IfEmpty","IncludeXDPContent","IncrementalLoad","IncrementalMerge","Interactive","Jog","LabelPrinter","batchOutput","flipLabel","Layout","Level","Linearized","Locale","LocaleSet","Log","threshold","MapElement","equate","equateRange","MediumInfo","msgId","severity","Messaging","Mode","ModifyAnnots","MsgId","NameAttr","NeverEmbed","NumberOfCopies","OpenAction","destination","Output","OutputBin","OutputXSL","Overprint","Packets","PageOffset","PageRange","numbers","Pagination","PaginationOverride","Part","Pcl","jog","mediumInfo","outputBin","pageOffset","staple","Pdf","adobeExtensionLevel","compression","interactive","linearized","pdfa","producer","renderPolicy","scriptModel","silentPrint","submitFormat","tagged","Pdfa","amd","conformance","includeXDPContent","Permissions","accessibleContent","change","contentCopy","documentAssembly","formFieldFilling","modifyAnnots","plaintextMetadata","printHighQuality","PickTrayByPDFSize","PlaintextMetadata","Presence","Present","behaviorOverride","copies","incrementalMerge","overprint","pagination","paginationOverride","driver","labelPrinter","pcl","webClient","zpl","Print","PrintHighQuality","PrintScaling","PrinterName","Producer","Ps","Range","Record","Relevant","Rename","RenderPolicy","RunScripts","currentPage","exclude","runScripts","ScriptModel","Severity","SilentPrint","addSilentPrint","printerName","Staple","StartNode","StartPage","SubmitFormat","SubmitUrl","SubsetBelow","SuppressBanner","Tagged","startPage","Threshold","To","TemplateCache","maxEntries","Trace","groupParent","ifEmpty","nameAttr","rename","whitespace","Uri","ValidateApprovalSignatures","ValidationMessaging","Version","VersionControl","outputBelow","sourceAbove","sourceBelow","ViewerPreferences","addViewerPreferences","duplexOption","enforce","numberOfCopies","pageRange","pickTrayByPDFSize","printScaling","WebClient","Whitespace","Window","Xdc","Xdp","packets","Xsl","debug","Zpl","compress","CONNECTION_SET_NS_ID","ConnectionSet","wsdlConnection","xmlConnection","xsdConnection","EffectiveInputPolicy","EffectiveOutputPolicy","Operation","RootElement","SoapAction","SoapAddress","WsdlAddress","WsdlConnection","dataDescription","effectiveInputPolicy","effectiveOutputPolicy","soapAction","soapAddress","wsdlAddress","XmlConnection","XsdConnection","rootElement","DATASETS_NS_ID","Datasets","LOCALE_SET_NS_ID","CalendarSymbols","dayNames","eraNames","meridiemNames","monthNames","CurrencySymbol","CurrencySymbols","currencySymbol","DatePattern","DatePatterns","datePattern","DateTimeSymbols","Day","DayNames","abbr","day","Era","EraNames","era","calendarSymbols","currencySymbols","datePatterns","dateTimeSymbols","numberPatterns","numberSymbols","timePatterns","typeFaces","Meridiem","MeridiemNames","meridiem","Month","MonthNames","month","NumberPattern","NumberPatterns","numberPattern","NumberSymbol","NumberSymbols","numberSymbol","TimePattern","TimePatterns","timePattern","TypeFace","TypeFaces","typeFace","SIGNATURE_NS_ID","STYLESHEET_NS_ID","Stylesheet","XDP_NS_ID","uuid","XHTML_NS_ID","$richText","VALID_STYLES","StyleMapping","original","spacesRegExp","crlfRegExp","crlfForRichTextRegExp","mapStyle","styleStr","newValue","replaceAll","SUB_SUPER_SCRIPT_FACTOR","VERTICAL_FACTOR","checkStyle","NoWhites","XhtmlObject","mustPop","pushFont","Body","Br","Html","Li","Ol","siblings","Span","Sub","Sup","Ul","br","li","ol","span","sub","sup","ul","namespaceId","decodeString","DatasetXMLParser","xrefstms","_cacheMap","_pendingRefs","_newRefNum","startXRefQueue","trailerDict","readXRef","indexObjects","processXRefTable","tableState","entryNum","parserBuf1","parserBuf2","readXRefTable","firstEntryNum","free","uncompressed","processXRefStream","streamParameters","byteWidths","streamState","entryRanges","readXRefStream","typeFieldWidth","offsetFieldWidth","generationFieldWidth","generation","typeByte","offsetByte","generationByte","TAB","PERCENT","LT","readToken","skipUntil","skipped","objRegExp","endobjRegExp","nestedObjRegExp","CHECK_CONTENT_LENGTH","trailerBytes","startxrefBytes","objBytes","xrefBytes","trailers","xrefStms","updateEntries","checkPos","tokenStr","objToken","xrefTagOffset","pagesDict","pagesCount","startXRefParsedCache","getEntry","xrefEntry","fetchUncompressed","fetchCompressed","tableOffset","CallbackKind","DATA","StreamKind","CANCEL","CANCEL_COMPLETE","CLOSE","ENQUEUE","PULL","PULL_COMPLETE","START_COMPLETE","wrapReason","sourceName","targetName","comObj","callbackId","streamId","streamSinks","streamControllers","callbackCapabilities","actionHandler","_onComObjOnMessage","_processStreamMessage","cbSourceName","cbTargetName","_createStreamSink","addEventListener","ah","sendWithStream","queueingStrategy","controller","startCapability","startCall","pullCall","cancelCall","pull","pullCapability","cancel","cancelCapability","isCancelled","lastDesiredSize","sinkCapability","onPull","onCancel","streamController","_deleteStreamController","allSettled","removeEventListener","_msgHandler","_contentLength","_fullRequestReader","_rangeRequestReaders","PDFWorkerStreamReader","PDFWorkerStreamRangeReader","_isRangeSupported","_isStreamingSupported","readableStream","_reader","getReader","_headersReady","pdfjsVersion","pdfjsBuild"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"pdf.worker.js","mappings":"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EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;AAhZkC,EAApC;;AAsZA,MAAMi8F,uCAAuCpvF,uCAAsB,UACjE7M,CADiE,EAEjE;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;AAL2C,EAA7C;;AAWA,MAAMk8F,oCAAoCrvF,uCAAsB,UAAU7M,CAAV,EAAa;EAC3EA,EAAE,CAAF,IAAO,EAAPA;EACAA,EAAE,CAAF,IAAO,EAAPA;EACAA,EAAE,CAAF,IAAO,GAAPA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;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","sources":["webpack://pdfjs-dist/build/pdf.worker/webpack/universalModuleDefinition","webpack://pdfjs-dist/build/pdf.worker/src/core/worker.js","webpack://pdfjs-dist/build/pdf.worker/src/shared/util.js","webpack://pdfjs-dist/build/pdf.worker/src/shared/compatibility.js","webpack://pdfjs-dist/build/pdf.worker/src/shared/is_node.js","webpack://pdfjs-dist/build/pdf.worker/src/core/primitives.js","webpack://pdfjs-dist/build/pdf.worker/src/core/pdf_manager.js","webpack://pdfjs-dist/build/pdf.worker/src/core/chunked_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/core_utils.js","webpack://pdfjs-dist/build/pdf.worker/src/core/base_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/document.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa_fonts.js","webpack://pdfjs-dist/build/pdf.worker/src/core/calibri_factors.js","webpack://pdfjs-dist/build/pdf.worker/src/core/helvetica_factors.js","webpack://pdfjs-dist/build/pdf.worker/src/core/liberationsans_widths.js","webpack://pdfjs-dist/build/pdf.worker/src/core/myriadpro_factors.js","webpack://pdfjs-dist/build/pdf.worker/src/core/segoeui_factors.js","webpack://pdfjs-dist/build/pdf.worker/src/core/fonts_utils.js","webpack://pdfjs-dist/build/pdf.worker/src/core/encodings.js","webpack://pdfjs-dist/build/pdf.worker/src/core/glyphlist.js","webpack://pdfjs-dist/build/pdf.worker/src/core/unicode.js","webpack://pdfjs-dist/build/pdf.worker/src/core/annotation.js","webpack://pdfjs-dist/build/pdf.worker/src/core/default_appearance.js","webpack://pdfjs-dist/build/pdf.worker/src/core/colorspace.js","webpack://pdfjs-dist/build/pdf.worker/src/core/evaluator.js","webpack://pdfjs-dist/build/pdf.worker/src/core/cmap.js","webpack://pdfjs-dist/build/pdf.worker/src/core/parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/ascii_85_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/decode_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/ascii_hex_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/ccitt_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/ccitt.js","webpack://pdfjs-dist/build/pdf.worker/src/core/flate_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jbig2_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jbig2.js","webpack://pdfjs-dist/build/pdf.worker/src/core/arithmetic_decoder.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jpeg_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jpg.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jpx_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jpx.js","webpack://pdfjs-dist/build/pdf.worker/src/core/lzw_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/predictor_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/run_length_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/fonts.js","webpack://pdfjs-dist/build/pdf.worker/src/core/cff_parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/charsets.js","webpack://pdfjs-dist/build/pdf.worker/src/core/standard_fonts.js","webpack://pdfjs-dist/build/pdf.worker/src/core/to_unicode_map.js","webpack://pdfjs-dist/build/pdf.worker/src/core/cff_font.js","webpack://pdfjs-dist/build/pdf.worker/src/core/font_renderer.js","webpack://pdfjs-dist/build/pdf.worker/src/core/metrics.js","webpack://pdfjs-dist/build/pdf.worker/src/core/glyf.js","webpack://pdfjs-dist/build/pdf.worker/src/core/opentype_file_builder.js","webpack://pdfjs-dist/build/pdf.worker/src/core/type1_font.js","webpack://pdfjs-dist/build/pdf.worker/src/core/type1_parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/pattern.js","webpack://pdfjs-dist/build/pdf.worker/src/core/function.js","webpack://pdfjs-dist/build/pdf.worker/src/core/ps_parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/image_utils.js","webpack://pdfjs-dist/build/pdf.worker/src/core/bidi.js","webpack://pdfjs-dist/build/pdf.worker/src/shared/murmurhash3.js","webpack://pdfjs-dist/build/pdf.worker/src/core/operator_list.js","webpack://pdfjs-dist/build/pdf.worker/src/core/image.js","webpack://pdfjs-dist/build/pdf.worker/src/shared/image_utils.js","webpack://pdfjs-dist/build/pdf.worker/src/core/bounding_boxes.js","webpack://pdfjs-dist/build/pdf.worker/src/core/catalog.js","webpack://pdfjs-dist/build/pdf.worker/src/core/name_number_tree.js","webpack://pdfjs-dist/build/pdf.worker/src/core/cleanup_helper.js","webpack://pdfjs-dist/build/pdf.worker/src/core/file_spec.js","webpack://pdfjs-dist/build/pdf.worker/src/core/metadata_parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xml_parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/struct_tree.js","webpack://pdfjs-dist/build/pdf.worker/src/core/object_loader.js","webpack://pdfjs-dist/build/pdf.worker/src/core/writer.js","webpack://pdfjs-dist/build/pdf.worker/src/core/crypto.js","webpack://pdfjs-dist/build/pdf.worker/src/core/decrypt_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/factory.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/xfa_object.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/utils.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/namespaces.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/som.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/bind.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/template.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/layout.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/html_utils.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/fonts.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/text.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/data.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/builder.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/setup.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/config.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/connection_set.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/datasets.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/locale_set.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/signature.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/stylesheet.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/xdp.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/xhtml.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/unknown.js","webpack://pdfjs-dist/build/pdf.worker/src/core/dataset_reader.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xref.js","webpack://pdfjs-dist/build/pdf.worker/src/shared/message_handler.js","webpack://pdfjs-dist/build/pdf.worker/src/core/worker_stream.js","webpack://pdfjs-dist/build/pdf.worker/webpack/bootstrap","webpack://pdfjs-dist/build/pdf.worker/webpack/runtime/define property getters","webpack://pdfjs-dist/build/pdf.worker/webpack/runtime/hasOwnProperty shorthand","webpack://pdfjs-dist/build/pdf.worker/webpack/runtime/make namespace object","webpack://pdfjs-dist/build/pdf.worker/src/pdf.worker.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf.worker\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf.worker\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf.worker\"] = factory();\n})(this, () => {\nreturn ","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AbortException,\n arrayByteLength,\n arraysToBytes,\n createPromiseCapability,\n getVerbosityLevel,\n info,\n InvalidPDFException,\n MissingPDFException,\n PasswordException,\n setVerbosityLevel,\n stringToPDFString,\n UnexpectedResponseException,\n UnknownErrorException,\n UNSUPPORTED_FEATURES,\n VerbosityLevel,\n warn,\n} from \"../shared/util.js\";\nimport { Dict, Ref } from \"./primitives.js\";\nimport { LocalPdfManager, NetworkPdfManager } from \"./pdf_manager.js\";\nimport { clearGlobalCaches } from \"./cleanup_helper.js\";\nimport { incrementalUpdate } from \"./writer.js\";\nimport { isNodeJS } from \"../shared/is_node.js\";\nimport { MessageHandler } from \"../shared/message_handler.js\";\nimport { PDFWorkerStream } from \"./worker_stream.js\";\nimport { XRefParseException } from \"./core_utils.js\";\n\nclass WorkerTask {\n constructor(name) {\n this.name = name;\n this.terminated = false;\n this._capability = createPromiseCapability();\n }\n\n get finished() {\n return this._capability.promise;\n }\n\n finish() {\n this._capability.resolve();\n }\n\n terminate() {\n this.terminated = true;\n }\n\n ensureNotTerminated() {\n if (this.terminated) {\n throw new Error(\"Worker task was terminated\");\n }\n }\n}\n\nclass WorkerMessageHandler {\n static setup(handler, port) {\n let testMessageProcessed = false;\n handler.on(\"test\", function wphSetupTest(data) {\n if (testMessageProcessed) {\n return; // we already processed 'test' message once\n }\n testMessageProcessed = true;\n\n // Ensure that `TypedArray`s can be sent to the worker.\n handler.send(\"test\", data instanceof Uint8Array);\n });\n\n handler.on(\"configure\", function wphConfigure(data) {\n setVerbosityLevel(data.verbosity);\n });\n\n handler.on(\"GetDocRequest\", function wphSetupDoc(data) {\n return WorkerMessageHandler.createDocumentHandler(data, port);\n });\n }\n\n static createDocumentHandler(docParams, port) {\n // This context is actually holds references on pdfManager and handler,\n // until the latter is destroyed.\n let pdfManager;\n let terminated = false;\n let cancelXHRs = null;\n const WorkerTasks = [];\n const verbosity = getVerbosityLevel();\n\n const apiVersion = docParams.apiVersion;\n const workerVersion =\n typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"TESTING\")\n ? PDFJSDev.eval(\"BUNDLE_VERSION\")\n : null;\n if (apiVersion !== workerVersion) {\n throw new Error(\n `The API version \"${apiVersion}\" does not match ` +\n `the Worker version \"${workerVersion}\".`\n );\n }\n\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n // Fail early, and predictably, rather than having (some) fonts fail to\n // load/render with slightly cryptic error messages in environments where\n // the `Array.prototype` has been *incorrectly* extended.\n //\n // PLEASE NOTE: We do *not* want to slow down font parsing by adding\n // `hasOwnProperty` checks all over the code-base.\n const enumerableProperties = [];\n for (const property in []) {\n enumerableProperties.push(property);\n }\n if (enumerableProperties.length) {\n throw new Error(\n \"The `Array.prototype` contains unexpected enumerable properties: \" +\n enumerableProperties.join(\", \") +\n \"; thus breaking e.g. `for...in` iteration of `Array`s.\"\n );\n }\n\n // Ensure that (primarily) Node.js users won't accidentally attempt to use\n // a non-translated/non-polyfilled build of the library, since that would\n // quickly fail anyway because of missing functionality.\n if (typeof ReadableStream === \"undefined\") {\n const partialMsg =\n \"The browser/environment lacks native support for critical \" +\n \"functionality used by the PDF.js library (e.g. `ReadableStream`); \";\n\n if (isNodeJS) {\n throw new Error(partialMsg + \"please use a `legacy`-build instead.\");\n }\n throw new Error(partialMsg + \"please update to a supported browser.\");\n }\n }\n\n const docId = docParams.docId;\n const docBaseUrl = docParams.docBaseUrl;\n const workerHandlerName = docParams.docId + \"_worker\";\n let handler = new MessageHandler(workerHandlerName, docId, port);\n\n function ensureNotTerminated() {\n if (terminated) {\n throw new Error(\"Worker was terminated\");\n }\n }\n\n function startWorkerTask(task) {\n WorkerTasks.push(task);\n }\n\n function finishWorkerTask(task) {\n task.finish();\n const i = WorkerTasks.indexOf(task);\n WorkerTasks.splice(i, 1);\n }\n\n async function loadDocument(recoveryMode) {\n await pdfManager.ensureDoc(\"checkHeader\");\n await pdfManager.ensureDoc(\"parseStartXRef\");\n await pdfManager.ensureDoc(\"parse\", [recoveryMode]);\n\n // Check that at least the first page can be successfully loaded,\n // since otherwise the XRef table is definitely not valid.\n await pdfManager.ensureDoc(\"checkFirstPage\", [recoveryMode]);\n // Check that the last page can be successfully loaded, to ensure that\n // `numPages` is correct, and fallback to walking the entire /Pages-tree.\n await pdfManager.ensureDoc(\"checkLastPage\", [recoveryMode]);\n\n const isPureXfa = await pdfManager.ensureDoc(\"isPureXfa\");\n if (isPureXfa) {\n const task = new WorkerTask(\"loadXfaFonts\");\n startWorkerTask(task);\n await Promise.all([\n pdfManager\n .loadXfaFonts(handler, task)\n .catch(reason => {\n // Ignore errors, to allow the document to load.\n })\n .then(() => finishWorkerTask(task)),\n pdfManager.loadXfaImages(),\n ]);\n }\n\n const [numPages, fingerprints, structureTree] = await Promise.all([\n pdfManager.ensureDoc(\"numPages\"),\n pdfManager.ensureDoc(\"fingerprints\"),\n pdfManager.ensureDoc('structureTree'),\n ]);\n\n // Get htmlForXfa after numPages to avoid to create HTML twice.\n const htmlForXfa = isPureXfa\n ? await pdfManager.ensureDoc(\"htmlForXfa\")\n : null;\n\n return { numPages, fingerprints, htmlForXfa, structureTree };\n }\n\n function getPdfManager(data, evaluatorOptions, enableXfa) {\n const pdfManagerCapability = createPromiseCapability();\n let newPdfManager;\n\n const source = data.source;\n if (source.data) {\n try {\n newPdfManager = new LocalPdfManager(\n docId,\n source.data,\n source.password,\n handler,\n evaluatorOptions,\n enableXfa,\n docBaseUrl\n );\n pdfManagerCapability.resolve(newPdfManager);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n }\n return pdfManagerCapability.promise;\n }\n\n let pdfStream,\n cachedChunks = [];\n try {\n pdfStream = new PDFWorkerStream(handler);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n return pdfManagerCapability.promise;\n }\n\n const fullRequest = pdfStream.getFullReader();\n fullRequest.headersReady\n .then(function () {\n if (!fullRequest.isRangeSupported) {\n return;\n }\n\n // We don't need auto-fetch when streaming is enabled.\n const disableAutoFetch =\n source.disableAutoFetch || fullRequest.isStreamingSupported;\n newPdfManager = new NetworkPdfManager(\n docId,\n pdfStream,\n {\n msgHandler: handler,\n password: source.password,\n length: fullRequest.contentLength,\n disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize,\n },\n evaluatorOptions,\n enableXfa,\n docBaseUrl\n );\n // There may be a chance that `newPdfManager` is not initialized for\n // the first few runs of `readchunk` block of code. Be sure to send\n // all cached chunks, if any, to chunked_stream via pdf_manager.\n for (let i = 0; i < cachedChunks.length; i++) {\n newPdfManager.sendProgressiveData(cachedChunks[i]);\n }\n\n cachedChunks = [];\n pdfManagerCapability.resolve(newPdfManager);\n cancelXHRs = null;\n })\n .catch(function (reason) {\n pdfManagerCapability.reject(reason);\n cancelXHRs = null;\n });\n\n let loaded = 0;\n const flushChunks = function () {\n const pdfFile = arraysToBytes(cachedChunks);\n if (source.length && pdfFile.length !== source.length) {\n warn(\"reported HTTP length is different from actual\");\n }\n // the data is array, instantiating directly from it\n try {\n newPdfManager = new LocalPdfManager(\n docId,\n pdfFile,\n source.password,\n handler,\n evaluatorOptions,\n enableXfa,\n docBaseUrl\n );\n pdfManagerCapability.resolve(newPdfManager);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n }\n cachedChunks = [];\n };\n const readPromise = new Promise(function (resolve, reject) {\n const readChunk = function ({ value, done }) {\n try {\n ensureNotTerminated();\n if (done) {\n if (!newPdfManager) {\n flushChunks();\n }\n cancelXHRs = null;\n return;\n }\n\n loaded += arrayByteLength(value);\n if (!fullRequest.isStreamingSupported) {\n handler.send(\"DocProgress\", {\n loaded,\n total: Math.max(loaded, fullRequest.contentLength || 0),\n });\n }\n\n if (newPdfManager) {\n newPdfManager.sendProgressiveData(value);\n } else {\n cachedChunks.push(value);\n }\n\n fullRequest.read().then(readChunk, reject);\n } catch (e) {\n reject(e);\n }\n };\n fullRequest.read().then(readChunk, reject);\n });\n readPromise.catch(function (e) {\n pdfManagerCapability.reject(e);\n cancelXHRs = null;\n });\n\n cancelXHRs = function (reason) {\n pdfStream.cancelAllRequests(reason);\n };\n\n return pdfManagerCapability.promise;\n }\n\n function setupDoc(data) {\n function onSuccess(doc) {\n ensureNotTerminated();\n handler.send(\"GetDoc\", { pdfInfo: doc });\n }\n\n function onFailure(ex) {\n ensureNotTerminated();\n\n if (ex instanceof PasswordException) {\n const task = new WorkerTask(`PasswordException: response ${ex.code}`);\n startWorkerTask(task);\n\n handler\n .sendWithPromise(\"PasswordRequest\", ex)\n .then(function ({ password }) {\n finishWorkerTask(task);\n pdfManager.updatePassword(password);\n pdfManagerReady();\n })\n .catch(function () {\n finishWorkerTask(task);\n handler.send(\"DocException\", ex);\n });\n } else if (\n ex instanceof InvalidPDFException ||\n ex instanceof MissingPDFException ||\n ex instanceof UnexpectedResponseException ||\n ex instanceof UnknownErrorException\n ) {\n handler.send(\"DocException\", ex);\n } else {\n handler.send(\n \"DocException\",\n new UnknownErrorException(ex.message, ex.toString())\n );\n }\n }\n\n function pdfManagerReady() {\n ensureNotTerminated();\n\n loadDocument(false).then(onSuccess, function (reason) {\n ensureNotTerminated();\n\n // Try again with recoveryMode == true\n if (!(reason instanceof XRefParseException)) {\n onFailure(reason);\n return;\n }\n pdfManager.requestLoadedStream();\n pdfManager.onLoadedStream().then(function () {\n ensureNotTerminated();\n\n loadDocument(true).then(onSuccess, onFailure);\n });\n });\n }\n\n ensureNotTerminated();\n\n const evaluatorOptions = {\n maxImageSize: data.maxImageSize,\n disableFontFace: data.disableFontFace,\n ignoreErrors: data.ignoreErrors,\n isEvalSupported: data.isEvalSupported,\n fontExtraProperties: data.fontExtraProperties,\n useSystemFonts: data.useSystemFonts,\n cMapUrl: data.cMapUrl,\n standardFontDataUrl: data.standardFontDataUrl,\n };\n\n getPdfManager(data, evaluatorOptions, data.enableXfa)\n .then(function (newPdfManager) {\n if (terminated) {\n // We were in a process of setting up the manager, but it got\n // terminated in the middle.\n newPdfManager.terminate(\n new AbortException(\"Worker was terminated.\")\n );\n throw new Error(\"Worker was terminated\");\n }\n pdfManager = newPdfManager;\n\n pdfManager.onLoadedStream().then(function (stream) {\n handler.send(\"DataLoaded\", { length: stream.bytes.byteLength });\n });\n })\n .then(pdfManagerReady, onFailure);\n }\n\n handler.on(\"GetPage\", function wphSetupGetPage(data) {\n return pdfManager.getPage(data.pageIndex).then(function (page) {\n return Promise.all([\n pdfManager.ensure(page, \"rotate\"),\n pdfManager.ensure(page, \"ref\"),\n pdfManager.ensure(page, \"userUnit\"),\n pdfManager.ensure(page, \"view\"),\n ]).then(function ([rotate, ref, userUnit, view]) {\n return {\n rotate,\n ref,\n userUnit,\n view,\n };\n });\n });\n });\n\n handler.on(\"GetPageIndex\", function wphSetupGetPageIndex(data) {\n const pageRef = Ref.get(data.num, data.gen);\n return pdfManager.ensureCatalog(\"getPageIndex\", [pageRef]);\n });\n\n handler.on(\"GetDestinations\", function wphSetupGetDestinations(data) {\n return pdfManager.ensureCatalog(\"destinations\");\n });\n\n handler.on(\"GetDestination\", function wphSetupGetDestination(data) {\n return pdfManager.ensureCatalog(\"getDestination\", [data.id]);\n });\n\n handler.on(\"GetPageLabels\", function wphSetupGetPageLabels(data) {\n return pdfManager.ensureCatalog(\"pageLabels\");\n });\n\n handler.on(\"GetPageLayout\", function wphSetupGetPageLayout(data) {\n return pdfManager.ensureCatalog(\"pageLayout\");\n });\n\n handler.on(\"GetPageMode\", function wphSetupGetPageMode(data) {\n return pdfManager.ensureCatalog(\"pageMode\");\n });\n\n handler.on(\"GetViewerPreferences\", function (data) {\n return pdfManager.ensureCatalog(\"viewerPreferences\");\n });\n\n handler.on(\"GetOpenAction\", function (data) {\n return pdfManager.ensureCatalog(\"openAction\");\n });\n\n handler.on(\"GetAttachments\", function wphSetupGetAttachments(data) {\n return pdfManager.ensureCatalog(\"attachments\");\n });\n\n handler.on(\"GetJavaScript\", function wphSetupGetJavaScript(data) {\n return pdfManager.ensureCatalog(\"javaScript\");\n });\n\n handler.on(\"GetDocJSActions\", function wphSetupGetDocJSActions(data) {\n return pdfManager.ensureCatalog(\"jsActions\");\n });\n\n handler.on(\"GetPageJSActions\", function ({ pageIndex }) {\n return pdfManager.getPage(pageIndex).then(function (page) {\n return pdfManager.ensure(page, \"jsActions\");\n });\n });\n\n handler.on(\"GetOutline\", function wphSetupGetOutline(data) {\n return pdfManager.ensureCatalog(\"documentOutline\");\n });\n\n handler.on(\"GetOptionalContentConfig\", function (data) {\n return pdfManager.ensureCatalog(\"optionalContentConfig\");\n });\n\n handler.on(\"GetPermissions\", function (data) {\n return pdfManager.ensureCatalog(\"permissions\");\n });\n\n handler.on(\"GetMetadata\", function wphSetupGetMetadata(data) {\n return Promise.all([\n pdfManager.ensureDoc(\"documentInfo\"),\n pdfManager.ensureCatalog(\"metadata\"),\n ]);\n });\n\n handler.on(\"GetMarkInfo\", function wphSetupGetMarkInfo(data) {\n return pdfManager.ensureCatalog(\"markInfo\");\n });\n\n handler.on(\"GetData\", function wphSetupGetData(data) {\n pdfManager.requestLoadedStream();\n return pdfManager.onLoadedStream().then(function (stream) {\n return stream.bytes;\n });\n });\n\n handler.on(\"GetAnnotations\", function ({ pageIndex, intent }) {\n return pdfManager.getPage(pageIndex).then(function (page) {\n return page.getAnnotationsData(intent);\n });\n });\n\n handler.on(\"GetFieldObjects\", function (data) {\n return pdfManager.ensureDoc(\"fieldObjects\");\n });\n\n handler.on(\"HasJSActions\", function (data) {\n return pdfManager.ensureDoc(\"hasJSActions\");\n });\n\n handler.on(\"GetCalculationOrderIds\", function (data) {\n return pdfManager.ensureDoc(\"calculationOrderIds\");\n });\n\n handler.on(\n \"SaveDocument\",\n function ({ isPureXfa, numPages, annotationStorage, filename }) {\n pdfManager.requestLoadedStream();\n\n const promises = [\n pdfManager.onLoadedStream(),\n pdfManager.ensureCatalog(\"acroForm\"),\n pdfManager.ensureCatalog(\"acroFormRef\"),\n pdfManager.ensureDoc(\"xref\"),\n pdfManager.ensureDoc(\"startXRef\"),\n ];\n\n if (isPureXfa) {\n promises.push(pdfManager.serializeXfaData(annotationStorage));\n } else {\n for (let pageIndex = 0; pageIndex < numPages; pageIndex++) {\n promises.push(\n pdfManager.getPage(pageIndex).then(function (page) {\n const task = new WorkerTask(`Save: page ${pageIndex}`);\n return page\n .save(handler, task, annotationStorage)\n .finally(function () {\n finishWorkerTask(task);\n });\n })\n );\n }\n }\n\n return Promise.all(promises).then(function ([\n stream,\n acroForm,\n acroFormRef,\n xref,\n startXRef,\n ...refs\n ]) {\n let newRefs = [];\n let xfaData = null;\n if (isPureXfa) {\n xfaData = refs[0];\n if (!xfaData) {\n return stream.bytes;\n }\n } else {\n for (const ref of refs) {\n newRefs = ref\n .filter(x => x !== null)\n .reduce((a, b) => a.concat(b), newRefs);\n }\n\n if (newRefs.length === 0) {\n // No new refs so just return the initial bytes\n return stream.bytes;\n }\n }\n\n const xfa = (acroForm instanceof Dict && acroForm.get(\"XFA\")) || null;\n let xfaDatasetsRef = null;\n let hasXfaDatasetsEntry = false;\n if (Array.isArray(xfa)) {\n for (let i = 0, ii = xfa.length; i < ii; i += 2) {\n if (xfa[i] === \"datasets\") {\n xfaDatasetsRef = xfa[i + 1];\n acroFormRef = null;\n hasXfaDatasetsEntry = true;\n }\n }\n if (xfaDatasetsRef === null) {\n xfaDatasetsRef = xref.getNewRef();\n }\n } else if (xfa) {\n acroFormRef = null;\n // TODO: Support XFA streams.\n warn(\"Unsupported XFA type.\");\n }\n\n let newXrefInfo = Object.create(null);\n if (xref.trailer) {\n // Get string info from Info in order to compute fileId.\n const infoObj = Object.create(null);\n const xrefInfo = xref.trailer.get(\"Info\") || null;\n if (xrefInfo instanceof Dict) {\n xrefInfo.forEach((key, value) => {\n if (typeof value === \"string\") {\n infoObj[key] = stringToPDFString(value);\n }\n });\n }\n\n newXrefInfo = {\n rootRef: xref.trailer.getRaw(\"Root\") || null,\n encryptRef: xref.trailer.getRaw(\"Encrypt\") || null,\n newRef: xref.getNewRef(),\n infoRef: xref.trailer.getRaw(\"Info\") || null,\n info: infoObj,\n fileIds: xref.trailer.get(\"ID\") || null,\n startXRef,\n filename,\n };\n }\n xref.resetNewRef();\n\n return incrementalUpdate({\n originalData: stream.bytes,\n xrefInfo: newXrefInfo,\n newRefs,\n xref,\n hasXfa: !!xfa,\n xfaDatasetsRef,\n hasXfaDatasetsEntry,\n acroFormRef,\n acroForm,\n xfaData,\n });\n });\n }\n );\n\n handler.on(\"GetOperatorList\", function wphSetupRenderPage(data, sink) {\n const pageIndex = data.pageIndex;\n pdfManager.getPage(pageIndex).then(function (page) {\n const task = new WorkerTask(`GetOperatorList: page ${pageIndex}`);\n startWorkerTask(task);\n\n // NOTE: Keep this condition in sync with the `info` helper function.\n const start = verbosity >= VerbosityLevel.INFOS ? Date.now() : 0;\n\n // Pre compile the pdf page and fetch the fonts/images.\n page\n .getOperatorList({\n handler,\n sink,\n task,\n intent: data.intent,\n cacheKey: data.cacheKey,\n annotationStorage: data.annotationStorage,\n })\n .then(\n function (operatorListInfo) {\n finishWorkerTask(task);\n\n if (start) {\n info(\n `page=${pageIndex + 1} - getOperatorList: time=` +\n `${Date.now() - start}ms, len=${operatorListInfo.length}`\n );\n }\n sink.close();\n },\n function (reason) {\n finishWorkerTask(task);\n if (task.terminated) {\n return; // ignoring errors from the terminated thread\n }\n // For compatibility with older behavior, generating unknown\n // unsupported feature notification on errors.\n handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorOperatorList,\n });\n\n sink.error(reason);\n\n // TODO: Should `reason` be re-thrown here (currently that casues\n // \"Uncaught exception: ...\" messages in the console)?\n }\n );\n });\n });\n\n handler.on(\"GetTextContent\", function wphExtractText(data, sink) {\n const pageIndex = data.pageIndex;\n\n pdfManager.getPage(pageIndex).then(function (page) {\n const task = new WorkerTask(\"GetTextContent: page \" + pageIndex);\n startWorkerTask(task);\n\n // NOTE: Keep this condition in sync with the `info` helper function.\n const start = verbosity >= VerbosityLevel.INFOS ? Date.now() : 0;\n\n page\n .extractTextContent({\n handler,\n task,\n sink,\n includeMarkedContent: data.includeMarkedContent,\n combineTextItems: data.combineTextItems,\n })\n .then(\n function () {\n finishWorkerTask(task);\n\n if (start) {\n info(\n `page=${pageIndex + 1} - getTextContent: time=` +\n `${Date.now() - start}ms`\n );\n }\n sink.close();\n },\n function (reason) {\n finishWorkerTask(task);\n if (task.terminated) {\n return; // ignoring errors from the terminated thread\n }\n sink.error(reason);\n\n // TODO: Should `reason` be re-thrown here (currently that casues\n // \"Uncaught exception: ...\" messages in the console)?\n }\n );\n });\n });\n\n handler.on(\"GetStructTree\", function wphGetStructTree(data) {\n return pdfManager.getPage(data.pageIndex).then(function (page) {\n return pdfManager.ensure(page, \"getStructTree\");\n });\n });\n\n handler.on(\"FontFallback\", function (data) {\n return pdfManager.fontFallback(data.id, handler);\n });\n\n handler.on(\"Cleanup\", function wphCleanup(data) {\n return pdfManager.cleanup(/* manuallyTriggered = */ true);\n });\n\n handler.on(\"Terminate\", function wphTerminate(data) {\n terminated = true;\n\n const waitOn = [];\n if (pdfManager) {\n pdfManager.terminate(new AbortException(\"Worker was terminated.\"));\n\n const cleanupPromise = pdfManager.cleanup();\n waitOn.push(cleanupPromise);\n\n pdfManager = null;\n } else {\n clearGlobalCaches();\n }\n if (cancelXHRs) {\n cancelXHRs(new AbortException(\"Worker was terminated.\"));\n }\n\n for (const task of WorkerTasks) {\n waitOn.push(task.finished);\n task.terminate();\n }\n\n return Promise.all(waitOn).then(function () {\n // Notice that even if we destroying handler, resolved response promise\n // must be sent back.\n handler.destroy();\n handler = null;\n });\n });\n\n handler.on(\"Ready\", function wphReady(data) {\n setupDoc(docParams);\n docParams = null; // we don't need docParams anymore -- saving memory.\n });\n return workerHandlerName;\n }\n\n static initializeFromPort(port) {\n const handler = new MessageHandler(\"worker\", \"main\", port);\n WorkerMessageHandler.setup(handler, port);\n handler.send(\"ready\", null);\n }\n}\n\nfunction isMessagePort(maybePort) {\n return (\n typeof maybePort.postMessage === \"function\" && \"onmessage\" in maybePort\n );\n}\n\n// Worker thread (and not Node.js)?\nif (\n typeof window === \"undefined\" &&\n !isNodeJS &&\n typeof self !== \"undefined\" &&\n isMessagePort(self)\n) {\n WorkerMessageHandler.initializeFromPort(self);\n}\n\nexport { WorkerMessageHandler, WorkerTask };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport \"./compatibility.js\";\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\n/**\n * Refer to the `WorkerTransport.getRenderingIntent`-method in the API, to see\n * how these flags are being used:\n * - ANY, DISPLAY, and PRINT are the normal rendering intents, note the\n * `PDFPageProxy.{render, getOperatorList, getAnnotations}`-methods.\n * - ANNOTATIONS_FORMS, ANNOTATIONS_STORAGE, ANNOTATIONS_DISABLE control which\n * annotations are rendered onto the canvas (i.e. by being included in the\n * operatorList), note the `PDFPageProxy.{render, getOperatorList}`-methods\n * and their `annotationMode`-option.\n * - OPLIST is used with the `PDFPageProxy.getOperatorList`-method, note the\n * `OperatorList`-constructor (on the worker-thread).\n */\nconst RenderingIntentFlag = {\n ANY: 0x01,\n DISPLAY: 0x02,\n PRINT: 0x04,\n ANNOTATIONS_FORMS: 0x10,\n ANNOTATIONS_STORAGE: 0x20,\n ANNOTATIONS_DISABLE: 0x40,\n OPLIST: 0x100,\n};\n\nconst AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3,\n};\n\n// Permission flags from Table 22, Section 7.6.3.2 of the PDF specification.\nconst PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800,\n};\n\nconst TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4,\n};\n\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3,\n};\n\nconst AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26,\n};\n\nconst AnnotationStateModelType = {\n MARKED: \"Marked\",\n REVIEW: \"Review\",\n};\n\nconst AnnotationMarkedState = {\n MARKED: \"Marked\",\n UNMARKED: \"Unmarked\",\n};\n\nconst AnnotationReviewState = {\n ACCEPTED: \"Accepted\",\n REJECTED: \"Rejected\",\n CANCELLED: \"Cancelled\",\n COMPLETED: \"Completed\",\n NONE: \"None\",\n};\n\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\",\n};\n\nconst AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200,\n};\n\nconst AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000,\n};\n\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5,\n};\n\nconst AnnotationActionEventType = {\n E: \"Mouse Enter\",\n X: \"Mouse Exit\",\n D: \"Mouse Down\",\n U: \"Mouse Up\",\n Fo: \"Focus\",\n Bl: \"Blur\",\n PO: \"PageOpen\",\n PC: \"PageClose\",\n PV: \"PageVisible\",\n PI: \"PageInvisible\",\n K: \"Keystroke\",\n F: \"Format\",\n V: \"Validate\",\n C: \"Calculate\",\n};\n\nconst DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\",\n};\n\nconst PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\",\n};\n\nconst StreamType = {\n UNKNOWN: \"UNKNOWN\",\n FLATE: \"FLATE\",\n LZW: \"LZW\",\n DCT: \"DCT\",\n JPX: \"JPX\",\n JBIG: \"JBIG\",\n A85: \"A85\",\n AHX: \"AHX\",\n CCF: \"CCF\",\n RLX: \"RLX\", // PDF short name is 'RL', but telemetry requires three chars.\n};\n\nconst FontType = {\n UNKNOWN: \"UNKNOWN\",\n TYPE1: \"TYPE1\",\n TYPE1STANDARD: \"TYPE1STANDARD\",\n TYPE1C: \"TYPE1C\",\n CIDFONTTYPE0: \"CIDFONTTYPE0\",\n CIDFONTTYPE0C: \"CIDFONTTYPE0C\",\n TRUETYPE: \"TRUETYPE\",\n CIDFONTTYPE2: \"CIDFONTTYPE2\",\n TYPE3: \"TYPE3\",\n OPENTYPE: \"OPENTYPE\",\n TYPE0: \"TYPE0\",\n MMTYPE1: \"MMTYPE1\",\n};\n\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5,\n};\n\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2,\n};\n\n// All the possible operations for an operator list.\nconst OPS = {\n // Intentionally start from 1 so it is easy to spot bad operators that will be\n // 0's.\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotations: 78,\n endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n /** @deprecated unused */\n paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91,\n boundingBoxes: 100,\n operationPosition: 101\n};\n\nconst UNSUPPORTED_FEATURES = {\n /** @deprecated unused */\n unknown: \"unknown\",\n forms: \"forms\",\n javaScript: \"javaScript\",\n signatures: \"signatures\",\n smask: \"smask\",\n shadingPattern: \"shadingPattern\",\n /** @deprecated unused */\n font: \"font\",\n errorTilingPattern: \"errorTilingPattern\",\n errorExtGState: \"errorExtGState\",\n errorXObject: \"errorXObject\",\n errorFontLoadType3: \"errorFontLoadType3\",\n errorFontState: \"errorFontState\",\n errorFontMissing: \"errorFontMissing\",\n errorFontTranslate: \"errorFontTranslate\",\n errorColorSpace: \"errorColorSpace\",\n errorOperatorList: \"errorOperatorList\",\n errorFontToUnicode: \"errorFontToUnicode\",\n errorFontLoadNative: \"errorFontLoadNative\",\n errorFontBuildPath: \"errorFontBuildPath\",\n errorFontGetPath: \"errorFontGetPath\",\n errorMarkedContent: \"errorMarkedContent\",\n errorContentSubStream: \"errorContentSubStream\",\n};\n\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2,\n};\n\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\n\nfunction getVerbosityLevel() {\n return verbosity;\n}\n\n// A notice for devs. These are good for things that are helpful to devs, such\n// as warning that Workers were disabled, which is important to devs but not\n// end users.\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\n\n// Non-fatal warnings.\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log(`Warning: ${msg}`);\n }\n}\n\nfunction unreachable(msg) {\n throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\n\n// Checks if URLs use one of the allowed protocols, e.g. to avoid XSS.\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n switch (url.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Attempts to create a valid absolute URL.\n *\n * @param {URL|string} url - An absolute, or relative, URL.\n * @param {URL|string} [baseUrl] - An absolute URL.\n * @param {Object} [options]\n * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n if (!url) {\n return null;\n }\n try {\n if (options && typeof url === \"string\") {\n // Let URLs beginning with \"www.\" default to using the \"http://\" protocol.\n if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n const dots = url.match(/\\./g);\n // Avoid accidentally matching a *relative* URL pointing to a file named\n // e.g. \"www.pdf\" or similar.\n if (dots && dots.length >= 2) {\n url = `http://${url}`;\n }\n }\n\n // According to ISO 32000-1:2008, section 12.6.4.7, URIs should be encoded\n // in 7-bit ASCII. Some bad PDFs use UTF-8 encoding; see bug 1122280.\n if (options.tryConvertEncoding) {\n try {\n url = stringToUTF8String(url);\n } catch (ex) {}\n }\n }\n\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {\n /* `new URL()` will throw on incorrect data. */\n }\n return null;\n}\n\nfunction shadow(obj, prop, value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n prop in obj,\n `shadow: Property \"${prop && prop.toString()}\" not found in object.`\n );\n }\n Object.defineProperty(obj, prop, {\n value,\n enumerable: true,\n configurable: true,\n writable: false,\n });\n return value;\n}\n\n/**\n * @type {any}\n */\nconst BaseException = (function BaseExceptionClosure() {\n // eslint-disable-next-line no-shadow\n function BaseException(message, name) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n this.message = message;\n this.name = name;\n }\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n\n return BaseException;\n})();\n\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg, \"PasswordException\");\n this.code = code;\n }\n}\n\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg, \"UnknownErrorException\");\n this.details = details;\n }\n}\n\nclass InvalidPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"InvalidPDFException\");\n }\n}\n\nclass MissingPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"MissingPDFException\");\n }\n}\n\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg, \"UnexpectedResponseException\");\n this.status = status;\n }\n}\n\n/**\n * Error caused during parsing PDF data.\n */\nclass FormatError extends BaseException {\n constructor(msg) {\n super(msg, \"FormatError\");\n }\n}\n\n/**\n * Error used to indicate task cancellation.\n */\nclass AbortException extends BaseException {\n constructor(msg) {\n super(msg, \"AbortException\");\n }\n}\n\nfunction bytesToString(bytes) {\n if (\n typeof bytes !== \"object\" ||\n bytes === null ||\n bytes.length === undefined\n ) {\n unreachable(\"Invalid argument for bytesToString\");\n }\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n const strBuf = [];\n for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n const chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n if (typeof str !== \"string\") {\n unreachable(\"Invalid argument for stringToBytes\");\n }\n const length = str.length;\n const bytes = new Uint8Array(length);\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n return bytes;\n}\n\n/**\n * Gets length of the array (Array, Uint8Array, or string) in bytes.\n * @param {Array|Uint8Array|string} arr\n * @returns {number}\n */\n// eslint-disable-next-line consistent-return\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n if (arr.byteLength !== undefined) {\n return arr.byteLength;\n }\n unreachable(\"Invalid argument for arrayByteLength\");\n}\n\n/**\n * Combines array items (arrays) into single Uint8Array object.\n * @param {Array|Uint8Array|string>} arr - the array of the arrays\n * (Array, Uint8Array, or string).\n * @returns {Uint8Array}\n */\nfunction arraysToBytes(arr) {\n const length = arr.length;\n // Shortcut: if first and only item is Uint8Array, return it.\n if (length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n let resultLength = 0;\n for (let i = 0; i < length; i++) {\n resultLength += arrayByteLength(arr[i]);\n }\n let pos = 0;\n const data = new Uint8Array(resultLength);\n for (let i = 0; i < length; i++) {\n let item = arr[i];\n if (!(item instanceof Uint8Array)) {\n if (typeof item === \"string\") {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n const itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n return data;\n}\n\nfunction string32(value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n typeof value === \"number\" && Math.abs(value) < 2 ** 32,\n `string32: Unexpected input \"${value}\".`\n );\n }\n return String.fromCharCode(\n (value >> 24) & 0xff,\n (value >> 16) & 0xff,\n (value >> 8) & 0xff,\n value & 0xff\n );\n}\n\nfunction objectSize(obj) {\n return Object.keys(obj).length;\n}\n\n// Ensure that the returned Object has a `null` prototype; hence why\n// `Object.fromEntries(...)` is not used.\nfunction objectFromMap(map) {\n const obj = Object.create(null);\n for (const [key, value] of map) {\n obj[key] = value;\n }\n return obj;\n}\n\n// Checks the endianness of the platform.\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\n\n// Checks if it's possible to eval JS expressions.\nfunction isEvalSupported() {\n try {\n new Function(\"\"); // eslint-disable-line no-new, no-new-func\n return true;\n } catch (e) {\n return false;\n }\n}\n\nclass FeatureTest {\n static get isLittleEndian() {\n return shadow(this, \"isLittleEndian\", isLittleEndian());\n }\n\n static get isEvalSupported() {\n return shadow(this, \"isEvalSupported\", isEvalSupported());\n }\n\n static get isOffscreenCanvasSupported() {\n return shadow(\n this,\n \"isOffscreenCanvasSupported\",\n typeof OffscreenCanvas !== \"undefined\"\n );\n }\n}\n\nconst hexNumbers = [...Array(256).keys()].map(n =>\n n.toString(16).padStart(2, \"0\")\n);\n\nclass Util {\n static makeHexColor(r, g, b) {\n return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n }\n\n // Apply a scaling matrix to some min/max values.\n // If a scaling factor is negative then min and max must be\n // swaped.\n static scaleMinMax(transform, minMax) {\n let temp;\n if (transform[0]) {\n if (transform[0] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[0];\n minMax[1] *= transform[0];\n\n if (transform[3] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[3];\n minMax[3] *= transform[3];\n } else {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n\n if (transform[1] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[1];\n minMax[3] *= transform[1];\n\n if (transform[2] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[2];\n minMax[1] *= transform[2];\n }\n minMax[0] += transform[4];\n minMax[1] += transform[4];\n minMax[2] += transform[5];\n minMax[3] += transform[5];\n }\n\n // Concatenates two transformation matrices together and returns the result.\n static transform(m1, m2) {\n return [\n m1[0] * m2[0] + m1[2] * m2[1],\n m1[1] * m2[0] + m1[3] * m2[1],\n m1[0] * m2[2] + m1[2] * m2[3],\n m1[1] * m2[2] + m1[3] * m2[3],\n m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n m1[1] * m2[4] + m1[3] * m2[5] + m1[5],\n ];\n }\n\n // For 2d affine transforms\n static applyTransform(p, m) {\n const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n }\n\n static applyInverseTransform(p, m) {\n const d = m[0] * m[3] - m[1] * m[2];\n const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n }\n\n // Applies the transform to the rectangle and finds the minimum axially\n // aligned bounding box.\n static getAxialAlignedBoundingBox(r, m) {\n const p1 = Util.applyTransform(r, m);\n const p2 = Util.applyTransform(r.slice(2, 4), m);\n const p3 = Util.applyTransform([r[0], r[3]], m);\n const p4 = Util.applyTransform([r[2], r[1]], m);\n return [\n Math.min(p1[0], p2[0], p3[0], p4[0]),\n Math.min(p1[1], p2[1], p3[1], p4[1]),\n Math.max(p1[0], p2[0], p3[0], p4[0]),\n Math.max(p1[1], p2[1], p3[1], p4[1]),\n ];\n }\n\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [\n m[3] / d,\n -m[1] / d,\n -m[2] / d,\n m[0] / d,\n (m[2] * m[5] - m[4] * m[3]) / d,\n (m[4] * m[1] - m[5] * m[0]) / d,\n ];\n }\n\n // Apply a generic 3d matrix M on a 3-vector v:\n // | a b c | | X |\n // | d e f | x | Y |\n // | g h i | | Z |\n // M is assumed to be serialized as [a,b,c,d,e,f,g,h,i],\n // with v as [X,Y,Z]\n static apply3dTransform(m, v) {\n return [\n m[0] * v[0] + m[1] * v[1] + m[2] * v[2],\n m[3] * v[0] + m[4] * v[1] + m[5] * v[2],\n m[6] * v[0] + m[7] * v[1] + m[8] * v[2],\n ];\n }\n\n // This calculation uses Singular Value Decomposition.\n // The SVD can be represented with formula A = USV. We are interested in the\n // matrix S here because it represents the scale values.\n static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\n\n // Multiply matrix m with its transpose.\n const a = m[0] * transpose[0] + m[1] * transpose[2];\n const b = m[0] * transpose[1] + m[1] * transpose[3];\n const c = m[2] * transpose[0] + m[3] * transpose[2];\n const d = m[2] * transpose[1] + m[3] * transpose[3];\n\n // Solve the second degree polynomial to get roots.\n const first = (a + d) / 2;\n const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n const sx = first + second || 1;\n const sy = first - second || 1;\n\n // Scale values are the square roots of the eigenvalues.\n return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n\n // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)\n // For coordinate systems whose origin lies in the bottom-left, this\n // means normalization to (BL,TR) ordering. For systems with origin in the\n // top-left, this means (TL,BR) ordering.\n static normalizeRect(rect) {\n const r = rect.slice(0); // clone rect\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n }\n\n // Returns a rectangle [x1, y1, x2, y2] corresponding to the\n // intersection of rect1 and rect2. If no intersection, returns 'null'\n // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n static intersect(rect1, rect2) {\n const xLow = Math.max(\n Math.min(rect1[0], rect1[2]),\n Math.min(rect2[0], rect2[2])\n );\n const xHigh = Math.min(\n Math.max(rect1[0], rect1[2]),\n Math.max(rect2[0], rect2[2])\n );\n if (xLow > xHigh) {\n return null;\n }\n const yLow = Math.max(\n Math.min(rect1[1], rect1[3]),\n Math.min(rect2[1], rect2[3])\n );\n const yHigh = Math.min(\n Math.max(rect1[1], rect1[3]),\n Math.max(rect2[1], rect2[3])\n );\n if (yLow > yHigh) {\n return null;\n }\n\n return [xLow, yLow, xHigh, yHigh];\n }\n\n // From https://github.com/adobe-webplatform/Snap.svg/blob/b365287722a72526000ac4bfcf0ce4cac2faa015/src/path.js#L852\n static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n const tvalues = [],\n bounds = [[], []];\n let a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n for (let i = 0; i < 2; ++i) {\n if (i === 0) {\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n } else {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) < 1e-12) {\n continue;\n }\n t = -c / b;\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n continue;\n }\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = Math.sqrt(b2ac);\n if (b2ac < 0) {\n continue;\n }\n t1 = (-b + sqrtb2ac) / (2 * a);\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n t2 = (-b - sqrtb2ac) / (2 * a);\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n let j = tvalues.length,\n mt;\n const jlen = j;\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] =\n mt * mt * mt * x0 +\n 3 * mt * mt * t * x1 +\n 3 * mt * t * t * x2 +\n t * t * t * x3;\n bounds[1][j] =\n mt * mt * mt * y0 +\n 3 * mt * mt * t * y1 +\n 3 * mt * t * t * y2 +\n t * t * t * y3;\n }\n\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n bounds[0].length = bounds[1].length = jlen + 2;\n\n return [\n Math.min(...bounds[0]),\n Math.min(...bounds[1]),\n Math.max(...bounds[0]),\n Math.max(...bounds[1]),\n ];\n }\n}\n\nconst PDFStringTranslateTable = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8,\n 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192,\n 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018,\n 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d,\n 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac,\n];\n\nfunction stringToPDFString(str) {\n if (str[0] >= \"\\xEF\") {\n let encoding;\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n encoding = \"utf-16be\";\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n encoding = \"utf-16le\";\n } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n encoding = \"utf-8\";\n }\n\n if (encoding) {\n try {\n const decoder = new TextDecoder(encoding, { fatal: true });\n const buffer = stringToBytes(str);\n return decoder.decode(buffer);\n } catch (ex) {\n warn(`stringToPDFString: \"${ex}\".`);\n }\n }\n }\n // ISO Latin 1\n const strBuf = [];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n return strBuf.join(\"\");\n}\n\nfunction escapeString(str) {\n // replace \"(\", \")\", \"\\n\", \"\\r\" and \"\\\"\n // by \"\\(\", \"\\)\", \"\\\\n\", \"\\\\r\" and \"\\\\\"\n // in order to write it in a PDF file.\n return str.replace(/([()\\\\\\n\\r])/g, match => {\n if (match === \"\\n\") {\n return \"\\\\n\";\n } else if (match === \"\\r\") {\n return \"\\\\r\";\n }\n return `\\\\${match}`;\n });\n}\n\nfunction isAscii(str) {\n return /^[\\x00-\\x7F]*$/.test(str);\n}\n\nfunction stringToUTF16BEString(str) {\n const buf = [\"\\xFE\\xFF\"];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n buf.push(\n String.fromCharCode((char >> 8) & 0xff),\n String.fromCharCode(char & 0xff)\n );\n }\n return buf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isArrayBuffer(v) {\n return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n for (let i = 0, ii = arr1.length; i < ii; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction getModificationDate(date = new Date()) {\n const buffer = [\n date.getUTCFullYear().toString(),\n (date.getUTCMonth() + 1).toString().padStart(2, \"0\"),\n date.getUTCDate().toString().padStart(2, \"0\"),\n date.getUTCHours().toString().padStart(2, \"0\"),\n date.getUTCMinutes().toString().padStart(2, \"0\"),\n date.getUTCSeconds().toString().padStart(2, \"0\"),\n ];\n\n return buffer.join(\"\");\n}\n\n/**\n * Promise Capability object.\n *\n * @typedef {Object} PromiseCapability\n * @property {Promise} promise - A Promise object.\n * @property {boolean} settled - If the Promise has been fulfilled/rejected.\n * @property {function} resolve - Fulfills the Promise.\n * @property {function} reject - Rejects the Promise.\n */\n\n/**\n * Creates a promise capability object.\n * @alias createPromiseCapability\n *\n * @returns {PromiseCapability}\n */\nfunction createPromiseCapability() {\n const capability = Object.create(null);\n let isSettled = false;\n\n Object.defineProperty(capability, \"settled\", {\n get() {\n return isSettled;\n },\n });\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = function (data) {\n isSettled = true;\n resolve(data);\n };\n capability.reject = function (reason) {\n isSettled = true;\n reject(reason);\n };\n });\n return capability;\n}\n\nexport {\n AbortException,\n AnnotationActionEventType,\n AnnotationBorderStyleType,\n AnnotationFieldFlag,\n AnnotationFlag,\n AnnotationMarkedState,\n AnnotationMode,\n AnnotationReplyType,\n AnnotationReviewState,\n AnnotationStateModelType,\n AnnotationType,\n arrayByteLength,\n arraysToBytes,\n assert,\n BaseException,\n bytesToString,\n CMapCompressionType,\n createPromiseCapability,\n createValidAbsoluteUrl,\n DocumentActionEventType,\n escapeString,\n FeatureTest,\n FONT_IDENTITY_MATRIX,\n FontType,\n FormatError,\n getModificationDate,\n getVerbosityLevel,\n IDENTITY_MATRIX,\n ImageKind,\n info,\n InvalidPDFException,\n isArrayBuffer,\n isArrayEqual,\n isAscii,\n MissingPDFException,\n objectFromMap,\n objectSize,\n OPS,\n PageActionEventType,\n PasswordException,\n PasswordResponses,\n PermissionFlag,\n RenderingIntentFlag,\n setVerbosityLevel,\n shadow,\n StreamType,\n string32,\n stringToBytes,\n stringToPDFString,\n stringToUTF16BEString,\n stringToUTF8String,\n TextRenderingMode,\n UnexpectedResponseException,\n UnknownErrorException,\n unreachable,\n UNSUPPORTED_FEATURES,\n utf8StringToString,\n Util,\n VerbosityLevel,\n warn,\n};\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals __non_webpack_require__ */\n\nimport { isNodeJS } from \"./is_node.js\";\n\n// Skip compatibility checks for modern builds and if we already ran the module.\nif (\n (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"SKIP_BABEL\")) &&\n !globalThis._pdfjsCompatibilityChecked\n) {\n globalThis._pdfjsCompatibilityChecked = true;\n\n // Support: Node.js\n (function checkNodeBtoa() {\n if (globalThis.btoa || !isNodeJS) {\n return;\n }\n globalThis.btoa = function (chars) {\n // eslint-disable-next-line no-undef\n return Buffer.from(chars, \"binary\").toString(\"base64\");\n };\n })();\n\n // Support: Node.js\n (function checkNodeAtob() {\n if (globalThis.atob || !isNodeJS) {\n return;\n }\n globalThis.atob = function (input) {\n // eslint-disable-next-line no-undef\n return Buffer.from(input, \"base64\").toString(\"binary\");\n };\n })();\n\n // Support: Node.js\n (function checkDOMMatrix() {\n if (globalThis.DOMMatrix || !isNodeJS) {\n return;\n }\n globalThis.DOMMatrix = __non_webpack_require__(\n \"dommatrix/dist/dommatrix.js\"\n );\n })();\n\n // Provides support for *recent* additions to the Promise specification,\n // however basic Promise support is assumed to be available natively.\n // Support: Firefox<71, Chrome<76, Safari<13, Node.js<12.9.0\n (function checkPromise() {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n // The current image decoders are synchronous, hence `Promise` shouldn't\n // need to be polyfilled for the IMAGE_DECODERS build target.\n return;\n }\n if (globalThis.Promise.allSettled) {\n return;\n }\n globalThis.Promise = require(\"core-js/es/promise/index.js\");\n })();\n\n // Support: Node.js\n (function checkReadableStream() {\n if (globalThis.ReadableStream || !isNodeJS) {\n return;\n }\n globalThis.ReadableStream = __non_webpack_require__(\n \"web-streams-polyfill/dist/ponyfill.js\"\n ).ReadableStream;\n })();\n\n // Support: Firefox<94, Chrome<98, Safari<15.4, Node.js<17.0.0\n (function checkStructuredClone() {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n // The current image decoders are synchronous, hence `structuredClone`\n // shouldn't need to be polyfilled for the IMAGE_DECODERS build target.\n return;\n }\n if (globalThis.structuredClone) {\n return;\n }\n require(\"core-js/web/structured-clone.js\");\n })();\n}\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals process */\n\n// NW.js / Electron is a browser context, but copies some Node.js objects; see\n// http://docs.nwjs.io/en/latest/For%20Users/Advanced/JavaScript%20Contexts%20in%20NW.js/#access-nodejs-and-nwjs-api-in-browser-context\n// https://www.electronjs.org/docs/api/process#processversionselectron-readonly\n// https://www.electronjs.org/docs/api/process#processtype-readonly\nconst isNodeJS =\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n typeof process === \"object\" &&\n process + \"\" === \"[object process]\" &&\n !process.versions.nw &&\n !(process.versions.electron && process.type && process.type !== \"browser\");\n\nexport { isNodeJS };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, shadow, unreachable } from \"../shared/util.js\";\n\nconst CIRCULAR_REF = Symbol(\"CIRCULAR_REF\");\nconst EOF = Symbol(\"EOF\");\n\nconst Name = (function NameClosure() {\n let nameCache = Object.create(null);\n\n // eslint-disable-next-line no-shadow\n class Name {\n constructor(name) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n typeof name !== \"string\"\n ) {\n unreachable('Name: The \"name\" must be a string.');\n }\n this.name = name;\n }\n\n static get(name) {\n const nameValue = nameCache[name];\n // eslint-disable-next-line no-restricted-syntax\n return nameValue ? nameValue : (nameCache[name] = new Name(name));\n }\n\n static _clearCache() {\n nameCache = Object.create(null);\n }\n }\n\n return Name;\n})();\n\nconst Cmd = (function CmdClosure() {\n let cmdCache = Object.create(null);\n\n // eslint-disable-next-line no-shadow\n class Cmd {\n constructor(cmd) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n typeof cmd !== \"string\"\n ) {\n unreachable('Cmd: The \"cmd\" must be a string.');\n }\n this.cmd = cmd;\n }\n\n static get(cmd) {\n const cmdValue = cmdCache[cmd];\n // eslint-disable-next-line no-restricted-syntax\n return cmdValue ? cmdValue : (cmdCache[cmd] = new Cmd(cmd));\n }\n\n static _clearCache() {\n cmdCache = Object.create(null);\n }\n }\n\n return Cmd;\n})();\n\nconst nonSerializable = function nonSerializableClosure() {\n return nonSerializable; // Creating closure on some variable.\n};\n\nclass Dict {\n constructor(xref = null) {\n // Map should only be used internally, use functions below to access.\n this._map = Object.create(null);\n this.xref = xref;\n this.objId = null;\n this.suppressEncryption = false;\n this.__nonSerializable__ = nonSerializable; // Disable cloning of the Dict.\n }\n\n assignXref(newXref) {\n this.xref = newXref;\n }\n\n get size() {\n return Object.keys(this._map).length;\n }\n\n // Automatically dereferences Ref objects.\n get(key1, key2, key3) {\n let value = this._map[key1];\n if (value === undefined && key2 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key2.length < key1.length\n ) {\n unreachable(\"Dict.get: Expected keys to be ordered by length.\");\n }\n value = this._map[key2];\n if (value === undefined && key3 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key3.length < key2.length\n ) {\n unreachable(\"Dict.get: Expected keys to be ordered by length.\");\n }\n value = this._map[key3];\n }\n }\n if (value instanceof Ref && this.xref) {\n return this.xref.fetch(value, this.suppressEncryption);\n }\n return value;\n }\n\n // Same as get(), but returns a promise and uses fetchIfRefAsync().\n async getAsync(key1, key2, key3) {\n let value = this._map[key1];\n if (value === undefined && key2 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key2.length < key1.length\n ) {\n unreachable(\"Dict.getAsync: Expected keys to be ordered by length.\");\n }\n value = this._map[key2];\n if (value === undefined && key3 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key3.length < key2.length\n ) {\n unreachable(\"Dict.getAsync: Expected keys to be ordered by length.\");\n }\n value = this._map[key3];\n }\n }\n if (value instanceof Ref && this.xref) {\n return this.xref.fetchAsync(value, this.suppressEncryption);\n }\n return value;\n }\n\n // Same as get(), but dereferences all elements if the result is an Array.\n getArray(key1, key2, key3) {\n let value = this._map[key1];\n if (value === undefined && key2 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key2.length < key1.length\n ) {\n unreachable(\"Dict.getArray: Expected keys to be ordered by length.\");\n }\n value = this._map[key2];\n if (value === undefined && key3 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key3.length < key2.length\n ) {\n unreachable(\"Dict.getArray: Expected keys to be ordered by length.\");\n }\n value = this._map[key3];\n }\n }\n if (value instanceof Ref && this.xref) {\n value = this.xref.fetch(value, this.suppressEncryption);\n }\n\n if (Array.isArray(value)) {\n value = value.slice(); // Ensure that we don't modify the Dict data.\n for (let i = 0, ii = value.length; i < ii; i++) {\n if (value[i] instanceof Ref && this.xref) {\n value[i] = this.xref.fetch(value[i], this.suppressEncryption);\n }\n }\n }\n return value;\n }\n\n // No dereferencing.\n getRaw(key) {\n return this._map[key];\n }\n\n getKeys() {\n return Object.keys(this._map);\n }\n\n // No dereferencing.\n getRawValues() {\n return Object.values(this._map);\n }\n\n set(key, value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n if (typeof key !== \"string\") {\n unreachable('Dict.set: The \"key\" must be a string.');\n } else if (value === undefined) {\n unreachable('Dict.set: The \"value\" cannot be undefined.');\n }\n }\n this._map[key] = value;\n }\n\n has(key) {\n return this._map[key] !== undefined;\n }\n\n forEach(callback) {\n for (const key in this._map) {\n callback(key, this.get(key));\n }\n }\n\n static get empty() {\n const emptyDict = new Dict(null);\n\n emptyDict.set = (key, value) => {\n unreachable(\"Should not call `set` on the empty dictionary.\");\n };\n return shadow(this, \"empty\", emptyDict);\n }\n\n static merge({ xref, dictArray, mergeSubDicts = false }) {\n const mergedDict = new Dict(xref),\n properties = new Map();\n\n for (const dict of dictArray) {\n if (!(dict instanceof Dict)) {\n continue;\n }\n for (const [key, value] of Object.entries(dict._map)) {\n let property = properties.get(key);\n if (property === undefined) {\n property = [];\n properties.set(key, property);\n } else if (!mergeSubDicts || !(value instanceof Dict)) {\n // Ignore additional entries, if either:\n // - This is a \"shallow\" merge, where only the first element matters.\n // - The value is *not* a `Dict`, since other types cannot be merged.\n continue;\n }\n property.push(value);\n }\n }\n for (const [name, values] of properties) {\n if (values.length === 1 || !(values[0] instanceof Dict)) {\n mergedDict._map[name] = values[0];\n continue;\n }\n const subDict = new Dict(xref);\n\n for (const dict of values) {\n for (const [key, value] of Object.entries(dict._map)) {\n if (subDict._map[key] === undefined) {\n subDict._map[key] = value;\n }\n }\n }\n if (subDict.size > 0) {\n mergedDict._map[name] = subDict;\n }\n }\n properties.clear();\n\n return mergedDict.size > 0 ? mergedDict : Dict.empty;\n }\n}\n\nconst Ref = (function RefClosure() {\n let refCache = Object.create(null);\n\n // eslint-disable-next-line no-shadow\n class Ref {\n constructor(num, gen) {\n this.num = num;\n this.gen = gen;\n }\n\n toString() {\n // This function is hot, so we make the string as compact as possible.\n // |this.gen| is almost always zero, so we treat that case specially.\n if (this.gen === 0) {\n return `${this.num}R`;\n }\n return `${this.num}R${this.gen}`;\n }\n\n static get(num, gen) {\n const key = gen === 0 ? `${num}R` : `${num}R${gen}`;\n const refValue = refCache[key];\n // eslint-disable-next-line no-restricted-syntax\n return refValue ? refValue : (refCache[key] = new Ref(num, gen));\n }\n\n static _clearCache() {\n refCache = Object.create(null);\n }\n }\n\n return Ref;\n})();\n\n// The reference is identified by number and generation.\n// This structure stores only one instance of the reference.\nclass RefSet {\n constructor(parent = null) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n parent &&\n !(parent instanceof RefSet)\n ) {\n unreachable('RefSet: Invalid \"parent\" value.');\n }\n this._set = new Set(parent && parent._set);\n }\n\n has(ref) {\n return this._set.has(ref.toString());\n }\n\n put(ref) {\n this._set.add(ref.toString());\n }\n\n remove(ref) {\n this._set.delete(ref.toString());\n }\n\n [Symbol.iterator]() {\n return this._set.values();\n }\n\n clear() {\n this._set.clear();\n }\n}\n\nclass RefSetCache {\n constructor() {\n this._map = new Map();\n }\n\n get size() {\n return this._map.size;\n }\n\n get(ref) {\n return this._map.get(ref.toString());\n }\n\n has(ref) {\n return this._map.has(ref.toString());\n }\n\n put(ref, obj) {\n this._map.set(ref.toString(), obj);\n }\n\n putAlias(ref, aliasRef) {\n this._map.set(ref.toString(), this.get(aliasRef));\n }\n\n [Symbol.iterator]() {\n return this._map.values();\n }\n\n clear() {\n this._map.clear();\n }\n}\n\nfunction isName(v, name) {\n return v instanceof Name && (name === undefined || v.name === name);\n}\n\nfunction isCmd(v, cmd) {\n return v instanceof Cmd && (cmd === undefined || v.cmd === cmd);\n}\n\nfunction isDict(v, type) {\n return (\n v instanceof Dict && (type === undefined || isName(v.get(\"Type\"), type))\n );\n}\n\nfunction isRefsEqual(v1, v2) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n v1 instanceof Ref && v2 instanceof Ref,\n \"isRefsEqual: Both parameters should be `Ref`s.\"\n );\n }\n return v1.num === v2.num && v1.gen === v2.gen;\n}\n\nfunction clearPrimitiveCaches() {\n Cmd._clearCache();\n Name._clearCache();\n Ref._clearCache();\n}\n\nexport {\n CIRCULAR_REF,\n clearPrimitiveCaches,\n Cmd,\n Dict,\n EOF,\n isCmd,\n isDict,\n isName,\n isRefsEqual,\n Name,\n Ref,\n RefSet,\n RefSetCache,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n createValidAbsoluteUrl,\n shadow,\n unreachable,\n warn,\n} from \"../shared/util.js\";\nimport { ChunkedStreamManager } from \"./chunked_stream.js\";\nimport { MissingDataException } from \"./core_utils.js\";\nimport { PDFDocument } from \"./document.js\";\nimport { Stream } from \"./stream.js\";\n\nfunction parseDocBaseUrl(url) {\n if (url) {\n const absoluteUrl = createValidAbsoluteUrl(url);\n if (absoluteUrl) {\n return absoluteUrl.href;\n }\n warn(`Invalid absolute docBaseUrl: \"${url}\".`);\n }\n return null;\n}\n\nclass BasePdfManager {\n constructor() {\n if (this.constructor === BasePdfManager) {\n unreachable(\"Cannot initialize BasePdfManager.\");\n }\n }\n\n get docId() {\n return this._docId;\n }\n\n get password() {\n return this._password;\n }\n\n get docBaseUrl() {\n const catalog = this.pdfDocument.catalog;\n return shadow(this, \"docBaseUrl\", catalog.baseUrl || this._docBaseUrl);\n }\n\n onLoadedStream() {\n unreachable(\"Abstract method `onLoadedStream` called\");\n }\n\n ensureDoc(prop, args) {\n return this.ensure(this.pdfDocument, prop, args);\n }\n\n ensureXRef(prop, args) {\n return this.ensure(this.pdfDocument.xref, prop, args);\n }\n\n ensureCatalog(prop, args) {\n return this.ensure(this.pdfDocument.catalog, prop, args);\n }\n\n getPage(pageIndex) {\n return this.pdfDocument.getPage(pageIndex);\n }\n\n fontFallback(id, handler) {\n return this.pdfDocument.fontFallback(id, handler);\n }\n\n loadXfaFonts(handler, task) {\n return this.pdfDocument.loadXfaFonts(handler, task);\n }\n\n loadXfaImages() {\n return this.pdfDocument.loadXfaImages();\n }\n\n serializeXfaData(annotationStorage) {\n return this.pdfDocument.serializeXfaData(annotationStorage);\n }\n\n cleanup(manuallyTriggered = false) {\n return this.pdfDocument.cleanup(manuallyTriggered);\n }\n\n async ensure(obj, prop, args) {\n unreachable(\"Abstract method `ensure` called\");\n }\n\n requestRange(begin, end) {\n unreachable(\"Abstract method `requestRange` called\");\n }\n\n requestLoadedStream() {\n unreachable(\"Abstract method `requestLoadedStream` called\");\n }\n\n sendProgressiveData(chunk) {\n unreachable(\"Abstract method `sendProgressiveData` called\");\n }\n\n updatePassword(password) {\n this._password = password;\n }\n\n terminate(reason) {\n unreachable(\"Abstract method `terminate` called\");\n }\n}\n\nclass LocalPdfManager extends BasePdfManager {\n constructor(\n docId,\n data,\n password,\n msgHandler,\n evaluatorOptions,\n enableXfa,\n docBaseUrl\n ) {\n super();\n\n this._docId = docId;\n this._password = password;\n this._docBaseUrl = parseDocBaseUrl(docBaseUrl);\n this.msgHandler = msgHandler;\n this.evaluatorOptions = evaluatorOptions;\n this.enableXfa = enableXfa;\n\n const stream = new Stream(data);\n this.pdfDocument = new PDFDocument(this, stream);\n this._loadedStreamPromise = Promise.resolve(stream);\n }\n\n async ensure(obj, prop, args) {\n const value = obj[prop];\n if (typeof value === \"function\") {\n return value.apply(obj, args);\n }\n return value;\n }\n\n requestRange(begin, end) {\n return Promise.resolve();\n }\n\n requestLoadedStream() {}\n\n onLoadedStream() {\n return this._loadedStreamPromise;\n }\n\n terminate(reason) {}\n}\n\nclass NetworkPdfManager extends BasePdfManager {\n constructor(\n docId,\n pdfNetworkStream,\n args,\n evaluatorOptions,\n enableXfa,\n docBaseUrl\n ) {\n super();\n\n this._docId = docId;\n this._password = args.password;\n this._docBaseUrl = parseDocBaseUrl(docBaseUrl);\n this.msgHandler = args.msgHandler;\n this.evaluatorOptions = evaluatorOptions;\n this.enableXfa = enableXfa;\n\n this.streamManager = new ChunkedStreamManager(pdfNetworkStream, {\n msgHandler: args.msgHandler,\n length: args.length,\n disableAutoFetch: args.disableAutoFetch,\n rangeChunkSize: args.rangeChunkSize,\n });\n this.pdfDocument = new PDFDocument(this, this.streamManager.getStream());\n }\n\n async ensure(obj, prop, args) {\n try {\n const value = obj[prop];\n if (typeof value === \"function\") {\n return value.apply(obj, args);\n }\n return value;\n } catch (ex) {\n if (!(ex instanceof MissingDataException)) {\n throw ex;\n }\n await this.requestRange(ex.begin, ex.end);\n return this.ensure(obj, prop, args);\n }\n }\n\n requestRange(begin, end) {\n return this.streamManager.requestRange(begin, end);\n }\n\n requestLoadedStream() {\n this.streamManager.requestAllChunks();\n }\n\n sendProgressiveData(chunk) {\n this.streamManager.onReceiveData({ chunk });\n }\n\n onLoadedStream() {\n return this.streamManager.onLoadedStream();\n }\n\n terminate(reason) {\n this.streamManager.abort(reason);\n }\n}\n\nexport { LocalPdfManager, NetworkPdfManager };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n arrayByteLength,\n arraysToBytes,\n createPromiseCapability,\n} from \"../shared/util.js\";\nimport { MissingDataException } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\n\nclass ChunkedStream extends Stream {\n constructor(length, chunkSize, manager) {\n super(\n /* arrayBuffer = */ new Uint8Array(length),\n /* start = */ 0,\n /* length = */ length,\n /* dict = */ null\n );\n\n this.chunkSize = chunkSize;\n this._loadedChunks = new Set();\n this.numChunks = Math.ceil(length / chunkSize);\n this.manager = manager;\n this.progressiveDataLength = 0;\n this.lastSuccessfulEnsureByteChunk = -1; // Single-entry cache\n }\n\n // If a particular stream does not implement one or more of these methods,\n // an error should be thrown.\n getMissingChunks() {\n const chunks = [];\n for (let chunk = 0, n = this.numChunks; chunk < n; ++chunk) {\n if (!this._loadedChunks.has(chunk)) {\n chunks.push(chunk);\n }\n }\n return chunks;\n }\n\n get numChunksLoaded() {\n return this._loadedChunks.size;\n }\n\n get isDataLoaded() {\n return this.numChunksLoaded === this.numChunks;\n }\n\n onReceiveData(begin, chunk) {\n const chunkSize = this.chunkSize;\n if (begin % chunkSize !== 0) {\n throw new Error(`Bad begin offset: ${begin}`);\n }\n\n // Using `this.length` is inaccurate here since `this.start` can be moved\n // (see the `moveStart` method).\n const end = begin + chunk.byteLength;\n if (end % chunkSize !== 0 && end !== this.bytes.length) {\n throw new Error(`Bad end offset: ${end}`);\n }\n\n this.bytes.set(new Uint8Array(chunk), begin);\n const beginChunk = Math.floor(begin / chunkSize);\n const endChunk = Math.floor((end - 1) / chunkSize) + 1;\n\n for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n // Since a value can only occur *once* in a `Set`, there's no need to\n // manually check `Set.prototype.has()` before adding the value here.\n this._loadedChunks.add(curChunk);\n }\n }\n\n onReceiveProgressiveData(data) {\n let position = this.progressiveDataLength;\n const beginChunk = Math.floor(position / this.chunkSize);\n\n this.bytes.set(new Uint8Array(data), position);\n position += data.byteLength;\n this.progressiveDataLength = position;\n const endChunk =\n position >= this.end\n ? this.numChunks\n : Math.floor(position / this.chunkSize);\n\n for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n // Since a value can only occur *once* in a `Set`, there's no need to\n // manually check `Set.prototype.has()` before adding the value here.\n this._loadedChunks.add(curChunk);\n }\n }\n\n ensureByte(pos) {\n if (pos < this.progressiveDataLength) {\n return;\n }\n\n const chunk = Math.floor(pos / this.chunkSize);\n if (chunk > this.numChunks) {\n return;\n }\n if (chunk === this.lastSuccessfulEnsureByteChunk) {\n return;\n }\n\n if (!this._loadedChunks.has(chunk)) {\n throw new MissingDataException(pos, pos + 1);\n }\n this.lastSuccessfulEnsureByteChunk = chunk;\n }\n\n ensureRange(begin, end) {\n if (begin >= end) {\n return;\n }\n if (end <= this.progressiveDataLength) {\n return;\n }\n\n const beginChunk = Math.floor(begin / this.chunkSize);\n if (beginChunk > this.numChunks) {\n return;\n }\n const endChunk = Math.min(\n Math.floor((end - 1) / this.chunkSize) + 1,\n this.numChunks\n );\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!this._loadedChunks.has(chunk)) {\n throw new MissingDataException(begin, end);\n }\n }\n }\n\n nextEmptyChunk(beginChunk) {\n const numChunks = this.numChunks;\n for (let i = 0; i < numChunks; ++i) {\n const chunk = (beginChunk + i) % numChunks; // Wrap around to beginning.\n if (!this._loadedChunks.has(chunk)) {\n return chunk;\n }\n }\n return null;\n }\n\n hasChunk(chunk) {\n return this._loadedChunks.has(chunk);\n }\n\n getByte() {\n const pos = this.pos;\n if (pos >= this.end) {\n return -1;\n }\n if (pos >= this.progressiveDataLength) {\n this.ensureByte(pos);\n }\n return this.bytes[this.pos++];\n }\n\n getBytes(length) {\n const bytes = this.bytes;\n const pos = this.pos;\n const strEnd = this.end;\n\n if (!length) {\n if (strEnd > this.progressiveDataLength) {\n this.ensureRange(pos, strEnd);\n }\n return bytes.subarray(pos, strEnd);\n }\n\n let end = pos + length;\n if (end > strEnd) {\n end = strEnd;\n }\n if (end > this.progressiveDataLength) {\n this.ensureRange(pos, end);\n }\n\n this.pos = end;\n return bytes.subarray(pos, end);\n }\n\n getByteRange(begin, end) {\n if (begin < 0) {\n begin = 0;\n }\n if (end > this.end) {\n end = this.end;\n }\n if (end > this.progressiveDataLength) {\n this.ensureRange(begin, end);\n }\n return this.bytes.subarray(begin, end);\n }\n\n makeSubStream(start, length, dict = null) {\n if (length) {\n if (start + length > this.progressiveDataLength) {\n this.ensureRange(start, start + length);\n }\n } else {\n // When the `length` is undefined you do *not*, under any circumstances,\n // want to fallback on calling `this.ensureRange(start, this.end)` since\n // that would force the *entire* PDF file to be loaded, thus completely\n // breaking the whole purpose of using streaming and/or range requests.\n //\n // However, not doing any checking here could very easily lead to wasted\n // time/resources during e.g. parsing, since `MissingDataException`s will\n // require data to be re-parsed, which we attempt to minimize by at least\n // checking that the *beginning* of the data is available here.\n if (start >= this.progressiveDataLength) {\n this.ensureByte(start);\n }\n }\n\n function ChunkedStreamSubstream() {}\n ChunkedStreamSubstream.prototype = Object.create(this);\n ChunkedStreamSubstream.prototype.getMissingChunks = function () {\n const chunkSize = this.chunkSize;\n const beginChunk = Math.floor(this.start / chunkSize);\n const endChunk = Math.floor((this.end - 1) / chunkSize) + 1;\n const missingChunks = [];\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!this._loadedChunks.has(chunk)) {\n missingChunks.push(chunk);\n }\n }\n return missingChunks;\n };\n Object.defineProperty(ChunkedStreamSubstream.prototype, \"isDataLoaded\", {\n get() {\n if (this.numChunksLoaded === this.numChunks) {\n return true;\n }\n return this.getMissingChunks().length === 0;\n },\n configurable: true,\n });\n\n const subStream = new ChunkedStreamSubstream();\n subStream.pos = subStream.start = start;\n subStream.end = start + length || this.end;\n subStream.dict = dict;\n return subStream;\n }\n\n getBaseStreams() {\n return [this];\n }\n}\n\nclass ChunkedStreamManager {\n constructor(pdfNetworkStream, args) {\n this.length = args.length;\n this.chunkSize = args.rangeChunkSize;\n this.stream = new ChunkedStream(this.length, this.chunkSize, this);\n this.pdfNetworkStream = pdfNetworkStream;\n this.disableAutoFetch = args.disableAutoFetch;\n this.msgHandler = args.msgHandler;\n\n this.currRequestId = 0;\n\n this._chunksNeededByRequest = new Map();\n this._requestsByChunk = new Map();\n this._promisesByRequest = new Map();\n this.progressiveDataLength = 0;\n this.aborted = false;\n\n this._loadedStreamCapability = createPromiseCapability();\n }\n\n onLoadedStream() {\n return this._loadedStreamCapability.promise;\n }\n\n sendRequest(begin, end) {\n const rangeReader = this.pdfNetworkStream.getRangeReader(begin, end);\n if (!rangeReader.isStreamingSupported) {\n rangeReader.onProgress = this.onProgress.bind(this);\n }\n\n let chunks = [],\n loaded = 0;\n return new Promise((resolve, reject) => {\n const readChunk = chunk => {\n try {\n if (!chunk.done) {\n const data = chunk.value;\n chunks.push(data);\n loaded += arrayByteLength(data);\n if (rangeReader.isStreamingSupported) {\n this.onProgress({ loaded });\n }\n rangeReader.read().then(readChunk, reject);\n return;\n }\n const chunkData = arraysToBytes(chunks);\n chunks = null;\n resolve(chunkData);\n } catch (e) {\n reject(e);\n }\n };\n rangeReader.read().then(readChunk, reject);\n }).then(data => {\n if (this.aborted) {\n return; // Ignoring any data after abort.\n }\n this.onReceiveData({ chunk: data, begin });\n });\n }\n\n /**\n * Get all the chunks that are not yet loaded and group them into\n * contiguous ranges to load in as few requests as possible.\n */\n requestAllChunks() {\n const missingChunks = this.stream.getMissingChunks();\n this._requestChunks(missingChunks);\n return this._loadedStreamCapability.promise;\n }\n\n _requestChunks(chunks) {\n const requestId = this.currRequestId++;\n\n const chunksNeeded = new Set();\n this._chunksNeededByRequest.set(requestId, chunksNeeded);\n for (const chunk of chunks) {\n if (!this.stream.hasChunk(chunk)) {\n chunksNeeded.add(chunk);\n }\n }\n\n if (chunksNeeded.size === 0) {\n return Promise.resolve();\n }\n\n const capability = createPromiseCapability();\n this._promisesByRequest.set(requestId, capability);\n\n const chunksToRequest = [];\n for (const chunk of chunksNeeded) {\n let requestIds = this._requestsByChunk.get(chunk);\n if (!requestIds) {\n requestIds = [];\n this._requestsByChunk.set(chunk, requestIds);\n\n chunksToRequest.push(chunk);\n }\n requestIds.push(requestId);\n }\n\n if (chunksToRequest.length > 0) {\n const groupedChunksToRequest = this.groupChunks(chunksToRequest);\n for (const groupedChunk of groupedChunksToRequest) {\n const begin = groupedChunk.beginChunk * this.chunkSize;\n const end = Math.min(\n groupedChunk.endChunk * this.chunkSize,\n this.length\n );\n this.sendRequest(begin, end).catch(capability.reject);\n }\n }\n\n return capability.promise.catch(reason => {\n if (this.aborted) {\n return; // Ignoring any pending requests after abort.\n }\n throw reason;\n });\n }\n\n getStream() {\n return this.stream;\n }\n\n /**\n * Loads any chunks in the requested range that are not yet loaded.\n */\n requestRange(begin, end) {\n end = Math.min(end, this.length);\n\n const beginChunk = this.getBeginChunk(begin);\n const endChunk = this.getEndChunk(end);\n\n const chunks = [];\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n chunks.push(chunk);\n }\n return this._requestChunks(chunks);\n }\n\n requestRanges(ranges = []) {\n const chunksToRequest = [];\n for (const range of ranges) {\n const beginChunk = this.getBeginChunk(range.begin);\n const endChunk = this.getEndChunk(range.end);\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!chunksToRequest.includes(chunk)) {\n chunksToRequest.push(chunk);\n }\n }\n }\n\n chunksToRequest.sort(function (a, b) {\n return a - b;\n });\n return this._requestChunks(chunksToRequest);\n }\n\n /**\n * Groups a sorted array of chunks into as few contiguous larger\n * chunks as possible.\n */\n groupChunks(chunks) {\n const groupedChunks = [];\n let beginChunk = -1;\n let prevChunk = -1;\n\n for (let i = 0, ii = chunks.length; i < ii; ++i) {\n const chunk = chunks[i];\n if (beginChunk < 0) {\n beginChunk = chunk;\n }\n\n if (prevChunk >= 0 && prevChunk + 1 !== chunk) {\n groupedChunks.push({ beginChunk, endChunk: prevChunk + 1 });\n beginChunk = chunk;\n }\n if (i + 1 === chunks.length) {\n groupedChunks.push({ beginChunk, endChunk: chunk + 1 });\n }\n\n prevChunk = chunk;\n }\n return groupedChunks;\n }\n\n onProgress(args) {\n this.msgHandler.send(\"DocProgress\", {\n loaded: this.stream.numChunksLoaded * this.chunkSize + args.loaded,\n total: this.length,\n });\n }\n\n onReceiveData(args) {\n const chunk = args.chunk;\n const isProgressive = args.begin === undefined;\n const begin = isProgressive ? this.progressiveDataLength : args.begin;\n const end = begin + chunk.byteLength;\n\n const beginChunk = Math.floor(begin / this.chunkSize);\n const endChunk =\n end < this.length\n ? Math.floor(end / this.chunkSize)\n : Math.ceil(end / this.chunkSize);\n\n if (isProgressive) {\n this.stream.onReceiveProgressiveData(chunk);\n this.progressiveDataLength = end;\n } else {\n this.stream.onReceiveData(begin, chunk);\n }\n\n if (this.stream.isDataLoaded) {\n this._loadedStreamCapability.resolve(this.stream);\n }\n\n const loadedRequests = [];\n for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n // The server might return more chunks than requested.\n const requestIds = this._requestsByChunk.get(curChunk);\n if (!requestIds) {\n continue;\n }\n this._requestsByChunk.delete(curChunk);\n\n for (const requestId of requestIds) {\n const chunksNeeded = this._chunksNeededByRequest.get(requestId);\n if (chunksNeeded.has(curChunk)) {\n chunksNeeded.delete(curChunk);\n }\n\n if (chunksNeeded.size > 0) {\n continue;\n }\n loadedRequests.push(requestId);\n }\n }\n\n // If there are no pending requests, automatically fetch the next\n // unfetched chunk of the PDF file.\n if (!this.disableAutoFetch && this._requestsByChunk.size === 0) {\n let nextEmptyChunk;\n if (this.stream.numChunksLoaded === 1) {\n // This is a special optimization so that after fetching the first\n // chunk, rather than fetching the second chunk, we fetch the last\n // chunk.\n const lastChunk = this.stream.numChunks - 1;\n if (!this.stream.hasChunk(lastChunk)) {\n nextEmptyChunk = lastChunk;\n }\n } else {\n nextEmptyChunk = this.stream.nextEmptyChunk(endChunk);\n }\n if (Number.isInteger(nextEmptyChunk)) {\n this._requestChunks([nextEmptyChunk]);\n }\n }\n\n for (const requestId of loadedRequests) {\n const capability = this._promisesByRequest.get(requestId);\n this._promisesByRequest.delete(requestId);\n capability.resolve();\n }\n\n this.msgHandler.send(\"DocProgress\", {\n loaded: this.stream.numChunksLoaded * this.chunkSize,\n total: this.length,\n });\n }\n\n onError(err) {\n this._loadedStreamCapability.reject(err);\n }\n\n getBeginChunk(begin) {\n return Math.floor(begin / this.chunkSize);\n }\n\n getEndChunk(end) {\n return Math.floor((end - 1) / this.chunkSize) + 1;\n }\n\n abort(reason) {\n this.aborted = true;\n if (this.pdfNetworkStream) {\n this.pdfNetworkStream.cancelAllRequests(reason);\n }\n for (const capability of this._promisesByRequest.values()) {\n capability.reject(reason);\n }\n }\n}\n\nexport { ChunkedStream, ChunkedStreamManager };\n","/* Copyright 2019 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n BaseException,\n FontType,\n objectSize,\n StreamType,\n stringToPDFString,\n warn,\n} from \"../shared/util.js\";\nimport { Dict, isName, Ref, RefSet } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\n\nfunction getLookupTableFactory(initializer) {\n let lookup;\n return function () {\n if (initializer) {\n lookup = Object.create(null);\n initializer(lookup);\n initializer = null;\n }\n return lookup;\n };\n}\n\nfunction getArrayLookupTableFactory(initializer) {\n let lookup;\n return function () {\n if (initializer) {\n let arr = initializer();\n initializer = null;\n lookup = Object.create(null);\n for (let i = 0, ii = arr.length; i < ii; i += 2) {\n lookup[arr[i]] = arr[i + 1];\n }\n arr = null;\n }\n return lookup;\n };\n}\n\nclass MissingDataException extends BaseException {\n constructor(begin, end) {\n super(`Missing data [${begin}, ${end})`, \"MissingDataException\");\n this.begin = begin;\n this.end = end;\n }\n}\n\nclass ParserEOFException extends BaseException {\n constructor(msg) {\n super(msg, \"ParserEOFException\");\n }\n}\n\nclass XRefEntryException extends BaseException {\n constructor(msg) {\n super(msg, \"XRefEntryException\");\n }\n}\n\nclass XRefParseException extends BaseException {\n constructor(msg) {\n super(msg, \"XRefParseException\");\n }\n}\n\nclass DocStats {\n constructor(handler) {\n this._handler = handler;\n\n this._streamTypes = new Set();\n this._fontTypes = new Set();\n }\n\n _send() {\n const streamTypes = Object.create(null),\n fontTypes = Object.create(null);\n for (const type of this._streamTypes) {\n streamTypes[type] = true;\n }\n for (const type of this._fontTypes) {\n fontTypes[type] = true;\n }\n this._handler.send(\"DocStats\", { streamTypes, fontTypes });\n }\n\n addStreamType(type) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(StreamType[type] === type, 'addStreamType: Invalid \"type\" value.');\n }\n if (this._streamTypes.has(type)) {\n return;\n }\n this._streamTypes.add(type);\n this._send();\n }\n\n addFontType(type) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(FontType[type] === type, 'addFontType: Invalid \"type\" value.');\n }\n if (this._fontTypes.has(type)) {\n return;\n }\n this._fontTypes.add(type);\n this._send();\n }\n}\n\n/**\n * Get the value of an inheritable property.\n *\n * If the PDF specification explicitly lists a property in a dictionary as\n * inheritable, then the value of the property may be present in the dictionary\n * itself or in one or more parents of the dictionary.\n *\n * If the key is not found in the tree, `undefined` is returned. Otherwise,\n * the value for the key is returned or, if `stopWhenFound` is `false`, a list\n * of values is returned.\n *\n * @param {Dict} dict - Dictionary from where to start the traversal.\n * @param {string} key - The key of the property to find the value for.\n * @param {boolean} getArray - Whether or not the value should be fetched as an\n * array. The default value is `false`.\n * @param {boolean} stopWhenFound - Whether or not to stop the traversal when\n * the key is found. If set to `false`, we always walk up the entire parent\n * chain, for example to be able to find `\\Resources` placed on multiple\n * levels of the tree. The default value is `true`.\n */\nfunction getInheritableProperty({\n dict,\n key,\n getArray = false,\n stopWhenFound = true,\n}) {\n let values;\n const visited = new RefSet();\n\n while (dict instanceof Dict && !(dict.objId && visited.has(dict.objId))) {\n if (dict.objId) {\n visited.put(dict.objId);\n }\n const value = getArray ? dict.getArray(key) : dict.get(key);\n if (value !== undefined) {\n if (stopWhenFound) {\n return value;\n }\n if (!values) {\n values = [];\n }\n values.push(value);\n }\n dict = dict.get(\"Parent\");\n }\n return values;\n}\n\n// prettier-ignore\nconst ROMAN_NUMBER_MAP = [\n \"\", \"C\", \"CC\", \"CCC\", \"CD\", \"D\", \"DC\", \"DCC\", \"DCCC\", \"CM\",\n \"\", \"X\", \"XX\", \"XXX\", \"XL\", \"L\", \"LX\", \"LXX\", \"LXXX\", \"XC\",\n \"\", \"I\", \"II\", \"III\", \"IV\", \"V\", \"VI\", \"VII\", \"VIII\", \"IX\"\n];\n\n/**\n * Converts positive integers to (upper case) Roman numerals.\n * @param {number} number - The number that should be converted.\n * @param {boolean} lowerCase - Indicates if the result should be converted\n * to lower case letters. The default value is `false`.\n * @returns {string} The resulting Roman number.\n */\nfunction toRomanNumerals(number, lowerCase = false) {\n assert(\n Number.isInteger(number) && number > 0,\n \"The number should be a positive integer.\"\n );\n const romanBuf = [];\n let pos;\n // Thousands\n while (number >= 1000) {\n number -= 1000;\n romanBuf.push(\"M\");\n }\n // Hundreds\n pos = (number / 100) | 0;\n number %= 100;\n romanBuf.push(ROMAN_NUMBER_MAP[pos]);\n // Tens\n pos = (number / 10) | 0;\n number %= 10;\n romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);\n // Ones\n romanBuf.push(ROMAN_NUMBER_MAP[20 + number]); // eslint-disable-line unicorn/no-array-push-push\n\n const romanStr = romanBuf.join(\"\");\n return lowerCase ? romanStr.toLowerCase() : romanStr;\n}\n\n// Calculate the base 2 logarithm of the number `x`. This differs from the\n// native function in the sense that it returns the ceiling value and that it\n// returns 0 instead of `Infinity`/`NaN` for `x` values smaller than/equal to 0.\nfunction log2(x) {\n if (x <= 0) {\n return 0;\n }\n return Math.ceil(Math.log2(x));\n}\n\nfunction readInt8(data, offset) {\n return (data[offset] << 24) >> 24;\n}\n\nfunction readUint16(data, offset) {\n return (data[offset] << 8) | data[offset + 1];\n}\n\nfunction readUint32(data, offset) {\n return (\n ((data[offset] << 24) |\n (data[offset + 1] << 16) |\n (data[offset + 2] << 8) |\n data[offset + 3]) >>>\n 0\n );\n}\n\n// Checks if ch is one of the following characters: SPACE, TAB, CR or LF.\nfunction isWhiteSpace(ch) {\n return ch === 0x20 || ch === 0x09 || ch === 0x0d || ch === 0x0a;\n}\n\n/**\n * AcroForm field names use an array like notation to refer to\n * repeated XFA elements e.g. foo.bar[nnn].\n * see: XFA Spec Chapter 3 - Repeated Elements\n *\n * @param {string} path - XFA path name.\n * @returns {Array} - Array of Objects with the name and pos of\n * each part of the path.\n */\nfunction parseXFAPath(path) {\n const positionPattern = /(.+)\\[(\\d+)\\]$/;\n return path.split(\".\").map(component => {\n const m = component.match(positionPattern);\n if (m) {\n return { name: m[1], pos: parseInt(m[2], 10) };\n }\n return { name: component, pos: 0 };\n });\n}\n\nfunction escapePDFName(str) {\n const buffer = [];\n let start = 0;\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n // Whitespace or delimiters aren't regular chars, so escape them.\n if (\n char < 0x21 ||\n char > 0x7e ||\n char === 0x23 /* # */ ||\n char === 0x28 /* ( */ ||\n char === 0x29 /* ) */ ||\n char === 0x3c /* < */ ||\n char === 0x3e /* > */ ||\n char === 0x5b /* [ */ ||\n char === 0x5d /* ] */ ||\n char === 0x7b /* { */ ||\n char === 0x7d /* } */ ||\n char === 0x2f /* / */ ||\n char === 0x25 /* % */\n ) {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n buffer.push(`#${char.toString(16)}`);\n start = i + 1;\n }\n }\n\n if (buffer.length === 0) {\n return str;\n }\n\n if (start < str.length) {\n buffer.push(str.substring(start, str.length));\n }\n\n return buffer.join(\"\");\n}\n\nfunction _collectJS(entry, xref, list, parents) {\n if (!entry) {\n return;\n }\n\n let parent = null;\n if (entry instanceof Ref) {\n if (parents.has(entry)) {\n // If we've already found entry then we've a cycle.\n return;\n }\n parent = entry;\n parents.put(parent);\n entry = xref.fetch(entry);\n }\n if (Array.isArray(entry)) {\n for (const element of entry) {\n _collectJS(element, xref, list, parents);\n }\n } else if (entry instanceof Dict) {\n if (isName(entry.get(\"S\"), \"JavaScript\")) {\n const js = entry.get(\"JS\");\n let code;\n if (js instanceof BaseStream) {\n code = js.getString();\n } else if (typeof js === \"string\") {\n code = js;\n }\n code = code && stringToPDFString(code);\n if (code) {\n list.push(code);\n }\n }\n _collectJS(entry.getRaw(\"Next\"), xref, list, parents);\n }\n\n if (parent) {\n parents.remove(parent);\n }\n}\n\nfunction collectActions(xref, dict, eventType) {\n const actions = Object.create(null);\n const additionalActionsDicts = getInheritableProperty({\n dict,\n key: \"AA\",\n stopWhenFound: false,\n });\n if (additionalActionsDicts) {\n // additionalActionsDicts contains dicts from ancestors\n // as they're found in the tree from bottom to top.\n // So the dicts are visited in reverse order to guarantee\n // that actions from elder ancestors will be overwritten\n // by ones from younger ancestors.\n for (let i = additionalActionsDicts.length - 1; i >= 0; i--) {\n const additionalActions = additionalActionsDicts[i];\n if (!(additionalActions instanceof Dict)) {\n continue;\n }\n for (const key of additionalActions.getKeys()) {\n const action = eventType[key];\n if (!action) {\n continue;\n }\n const actionDict = additionalActions.getRaw(key);\n const parents = new RefSet();\n const list = [];\n _collectJS(actionDict, xref, list, parents);\n if (list.length > 0) {\n actions[action] = list;\n }\n }\n }\n }\n // Collect the Action if any (we may have one on pushbutton).\n if (dict.has(\"A\")) {\n const actionDict = dict.get(\"A\");\n const parents = new RefSet();\n const list = [];\n _collectJS(actionDict, xref, list, parents);\n if (list.length > 0) {\n actions.Action = list;\n }\n }\n return objectSize(actions) > 0 ? actions : null;\n}\n\nconst XMLEntities = {\n /* < */ 0x3c: \"<\",\n /* > */ 0x3e: \">\",\n /* & */ 0x26: \"&\",\n /* \" */ 0x22: \""\",\n /* ' */ 0x27: \"'\",\n};\n\nfunction encodeToXmlString(str) {\n const buffer = [];\n let start = 0;\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.codePointAt(i);\n if (0x20 <= char && char <= 0x7e) {\n // ascii\n const entity = XMLEntities[char];\n if (entity) {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n buffer.push(entity);\n start = i + 1;\n }\n } else {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n buffer.push(`&#x${char.toString(16).toUpperCase()};`);\n if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) {\n // char is represented by two u16\n i++;\n }\n start = i + 1;\n }\n }\n\n if (buffer.length === 0) {\n return str;\n }\n if (start < str.length) {\n buffer.push(str.substring(start, str.length));\n }\n return buffer.join(\"\");\n}\n\nfunction validateCSSFont(cssFontInfo) {\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/font-style.\n const DEFAULT_CSS_FONT_OBLIQUE = \"14\";\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight.\n const DEFAULT_CSS_FONT_WEIGHT = \"400\";\n const CSS_FONT_WEIGHT_VALUES = new Set([\n \"100\",\n \"200\",\n \"300\",\n \"400\",\n \"500\",\n \"600\",\n \"700\",\n \"800\",\n \"900\",\n \"1000\",\n \"normal\",\n \"bold\",\n \"bolder\",\n \"lighter\",\n ]);\n\n const { fontFamily, fontWeight, italicAngle } = cssFontInfo;\n\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/string.\n if (/^\".*\"$/.test(fontFamily)) {\n if (/[^\\\\]\"/.test(fontFamily.slice(1, fontFamily.length - 1))) {\n warn(`XFA - FontFamily contains some unescaped \": ${fontFamily}.`);\n return false;\n }\n } else if (/^'.*'$/.test(fontFamily)) {\n if (/[^\\\\]'/.test(fontFamily.slice(1, fontFamily.length - 1))) {\n warn(`XFA - FontFamily contains some unescaped ': ${fontFamily}.`);\n return false;\n }\n } else {\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/custom-ident.\n for (const ident of fontFamily.split(/[ \\t]+/)) {\n if (/^(\\d|(-(\\d|-)))/.test(ident) || !/^[\\w-\\\\]+$/.test(ident)) {\n warn(\n `XFA - FontFamily contains some invalid : ${fontFamily}.`\n );\n return false;\n }\n }\n }\n\n const weight = fontWeight ? fontWeight.toString() : \"\";\n cssFontInfo.fontWeight = CSS_FONT_WEIGHT_VALUES.has(weight)\n ? weight\n : DEFAULT_CSS_FONT_WEIGHT;\n\n const angle = parseFloat(italicAngle);\n cssFontInfo.italicAngle =\n isNaN(angle) || angle < -90 || angle > 90\n ? DEFAULT_CSS_FONT_OBLIQUE\n : italicAngle.toString();\n\n return true;\n}\n\nfunction recoverJsURL(str) {\n // Attempt to recover valid URLs from `JS` entries with certain\n // white-listed formats:\n // - window.open('http://example.com')\n // - app.launchURL('http://example.com', true)\n // - xfa.host.gotoURL('http://example.com')\n const URL_OPEN_METHODS = [\"app.launchURL\", \"window.open\", \"xfa.host.gotoURL\"];\n const regex = new RegExp(\n \"^\\\\s*(\" +\n URL_OPEN_METHODS.join(\"|\").split(\".\").join(\"\\\\.\") +\n \")\\\\((?:'|\\\")([^'\\\"]*)(?:'|\\\")(?:,\\\\s*(\\\\w+)\\\\)|\\\\))\",\n \"i\"\n );\n\n const jsUrl = regex.exec(str);\n if (jsUrl && jsUrl[2]) {\n const url = jsUrl[2];\n let newWindow = false;\n\n if (jsUrl[3] === \"true\" && jsUrl[1] === \"app.launchURL\") {\n newWindow = true;\n }\n return { url, newWindow };\n }\n\n return null;\n}\n\nexport {\n collectActions,\n DocStats,\n encodeToXmlString,\n escapePDFName,\n getArrayLookupTableFactory,\n getInheritableProperty,\n getLookupTableFactory,\n isWhiteSpace,\n log2,\n MissingDataException,\n ParserEOFException,\n parseXFAPath,\n readInt8,\n readUint16,\n readUint32,\n recoverJsURL,\n toRomanNumerals,\n validateCSSFont,\n XRefEntryException,\n XRefParseException,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bytesToString, shadow, unreachable } from \"../shared/util.js\";\n\nclass BaseStream {\n constructor() {\n if (this.constructor === BaseStream) {\n unreachable(\"Cannot initialize BaseStream.\");\n }\n }\n\n // eslint-disable-next-line getter-return\n get length() {\n unreachable(\"Abstract getter `length` accessed\");\n }\n\n // eslint-disable-next-line getter-return\n get isEmpty() {\n unreachable(\"Abstract getter `isEmpty` accessed\");\n }\n\n get isDataLoaded() {\n return shadow(this, \"isDataLoaded\", true);\n }\n\n getByte() {\n unreachable(\"Abstract method `getByte` called\");\n }\n\n getBytes(length) {\n unreachable(\"Abstract method `getBytes` called\");\n }\n\n peekByte() {\n const peekedByte = this.getByte();\n if (peekedByte !== -1) {\n this.pos--;\n }\n return peekedByte;\n }\n\n peekBytes(length) {\n const bytes = this.getBytes(length);\n this.pos -= bytes.length;\n return bytes;\n }\n\n getUint16() {\n const b0 = this.getByte();\n const b1 = this.getByte();\n if (b0 === -1 || b1 === -1) {\n return -1;\n }\n return (b0 << 8) + b1;\n }\n\n getInt32() {\n const b0 = this.getByte();\n const b1 = this.getByte();\n const b2 = this.getByte();\n const b3 = this.getByte();\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n }\n\n getByteRange(begin, end) {\n unreachable(\"Abstract method `getByteRange` called\");\n }\n\n getString(length) {\n return bytesToString(this.getBytes(length));\n }\n\n skip(n) {\n this.pos += n || 1;\n }\n\n reset() {\n unreachable(\"Abstract method `reset` called\");\n }\n\n moveStart() {\n unreachable(\"Abstract method `moveStart` called\");\n }\n\n makeSubStream(start, length, dict = null) {\n unreachable(\"Abstract method `makeSubStream` called\");\n }\n\n /**\n * @returns {Array | null}\n */\n getBaseStreams() {\n return null;\n }\n}\n\nexport { BaseStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseStream } from \"./base_stream.js\";\nimport { stringToBytes } from \"../shared/util.js\";\n\nclass Stream extends BaseStream {\n constructor(arrayBuffer, start, length, dict) {\n super();\n\n this.bytes =\n arrayBuffer instanceof Uint8Array\n ? arrayBuffer\n : new Uint8Array(arrayBuffer);\n this.start = start || 0;\n this.pos = this.start;\n this.end = start + length || this.bytes.length;\n this.dict = dict;\n }\n\n get length() {\n return this.end - this.start;\n }\n\n get isEmpty() {\n return this.length === 0;\n }\n\n getByte() {\n if (this.pos >= this.end) {\n return -1;\n }\n return this.bytes[this.pos++];\n }\n\n getBytes(length) {\n const bytes = this.bytes;\n const pos = this.pos;\n const strEnd = this.end;\n\n if (!length) {\n return bytes.subarray(pos, strEnd);\n }\n let end = pos + length;\n if (end > strEnd) {\n end = strEnd;\n }\n this.pos = end;\n return bytes.subarray(pos, end);\n }\n\n getByteRange(begin, end) {\n if (begin < 0) {\n begin = 0;\n }\n if (end > this.end) {\n end = this.end;\n }\n return this.bytes.subarray(begin, end);\n }\n\n reset() {\n this.pos = this.start;\n }\n\n moveStart() {\n this.start = this.pos;\n }\n\n makeSubStream(start, length, dict = null) {\n return new Stream(this.bytes.buffer, start, length, dict);\n }\n}\n\nclass StringStream extends Stream {\n constructor(str) {\n super(stringToBytes(str));\n }\n}\n\nclass NullStream extends Stream {\n constructor() {\n super(new Uint8Array(0));\n }\n}\n\nexport { NullStream, Stream, StringStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n FormatError,\n info,\n InvalidPDFException,\n isArrayEqual,\n OPS,\n PageActionEventType,\n RenderingIntentFlag,\n shadow,\n stringToBytes,\n stringToPDFString,\n stringToUTF8String,\n unreachable,\n UNSUPPORTED_FEATURES,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport {\n collectActions,\n getInheritableProperty,\n isWhiteSpace,\n MissingDataException,\n validateCSSFont,\n XRefEntryException,\n XRefParseException,\n} from \"./core_utils.js\";\nimport { Dict, isName, Name, Ref } from \"./primitives.js\";\nimport { getXfaFontDict, getXfaFontName } from \"./xfa_fonts.js\";\nimport { AnnotationFactory } from \"./annotation.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { calculateMD5 } from \"./crypto.js\";\nimport { Catalog } from \"./catalog.js\";\nimport { clearGlobalCaches } from \"./cleanup_helper.js\";\nimport { DatasetReader } from \"./dataset_reader.js\";\nimport { Linearization } from \"./parser.js\";\nimport { NullStream } from \"./stream.js\";\nimport { ObjectLoader } from \"./object_loader.js\";\nimport { OperatorList } from \"./operator_list.js\";\nimport { PartialEvaluator } from \"./evaluator.js\";\nimport { StreamsSequenceStream } from \"./decode_stream.js\";\nimport { StructTreePage } from \"./struct_tree.js\";\nimport { XFAFactory } from \"./xfa/factory.js\";\nimport { XRef } from \"./xref.js\";\n\nconst DEFAULT_USER_UNIT = 1.0;\nconst LETTER_SIZE_MEDIABOX = [0, 0, 612, 792];\n\nclass Page {\n constructor({\n pdfManager,\n xref,\n pageIndex,\n pageDict,\n ref,\n globalIdFactory,\n fontCache,\n builtInCMapCache,\n standardFontDataCache,\n globalImageCache,\n nonBlendModesSet,\n xfaFactory,\n }) {\n this.pdfManager = pdfManager;\n this.pageIndex = pageIndex;\n this.pageDict = pageDict;\n this.xref = xref;\n this.ref = ref;\n this.fontCache = fontCache;\n this.builtInCMapCache = builtInCMapCache;\n this.standardFontDataCache = standardFontDataCache;\n this.globalImageCache = globalImageCache;\n this.nonBlendModesSet = nonBlendModesSet;\n this.evaluatorOptions = pdfManager.evaluatorOptions;\n this.resourcesPromise = null;\n this.xfaFactory = xfaFactory;\n\n const idCounters = {\n obj: 0,\n };\n this._localIdFactory = class extends globalIdFactory {\n static createObjId() {\n return `p${pageIndex}_${++idCounters.obj}`;\n }\n\n static getPageObjId() {\n return `page${ref.toString()}`;\n }\n };\n }\n\n /**\n * @private\n */\n _getInheritableProperty(key, getArray = false) {\n const value = getInheritableProperty({\n dict: this.pageDict,\n key,\n getArray,\n stopWhenFound: false,\n });\n if (!Array.isArray(value)) {\n return value;\n }\n if (value.length === 1 || !(value[0] instanceof Dict)) {\n return value[0];\n }\n return Dict.merge({ xref: this.xref, dictArray: value });\n }\n\n get content() {\n return this.pageDict.getArray(\"Contents\");\n }\n\n get resources() {\n // For robustness: The spec states that a \\Resources entry has to be\n // present, but can be empty. Some documents still omit it; in this case\n // we return an empty dictionary.\n return shadow(\n this,\n \"resources\",\n this._getInheritableProperty(\"Resources\") || Dict.empty\n );\n }\n\n _getBoundingBox(name) {\n if (this.xfaData) {\n return this.xfaData.bbox;\n }\n\n const box = this._getInheritableProperty(name, /* getArray = */ true);\n\n if (Array.isArray(box) && box.length === 4) {\n if (box[2] - box[0] !== 0 && box[3] - box[1] !== 0) {\n return box;\n }\n warn(`Empty /${name} entry.`);\n }\n return null;\n }\n\n get mediaBox() {\n // Reset invalid media box to letter size.\n return shadow(\n this,\n \"mediaBox\",\n this._getBoundingBox(\"MediaBox\") || LETTER_SIZE_MEDIABOX\n );\n }\n\n get cropBox() {\n // Reset invalid crop box to media box.\n return shadow(\n this,\n \"cropBox\",\n this._getBoundingBox(\"CropBox\") || this.mediaBox\n );\n }\n\n get userUnit() {\n let obj = this.pageDict.get(\"UserUnit\");\n if (typeof obj !== \"number\" || obj <= 0) {\n obj = DEFAULT_USER_UNIT;\n }\n return shadow(this, \"userUnit\", obj);\n }\n\n get view() {\n // From the spec, 6th ed., p.963:\n // \"The crop, bleed, trim, and art boxes should not ordinarily\n // extend beyond the boundaries of the media box. If they do, they are\n // effectively reduced to their intersection with the media box.\"\n const { cropBox, mediaBox } = this;\n let view;\n if (cropBox === mediaBox || isArrayEqual(cropBox, mediaBox)) {\n view = mediaBox;\n } else {\n const box = Util.intersect(cropBox, mediaBox);\n if (box && box[2] - box[0] !== 0 && box[3] - box[1] !== 0) {\n view = box;\n } else {\n warn(\"Empty /CropBox and /MediaBox intersection.\");\n }\n }\n return shadow(this, \"view\", view || mediaBox);\n }\n\n get rotate() {\n let rotate = this._getInheritableProperty(\"Rotate\") || 0;\n\n // Normalize rotation so it's a multiple of 90 and between 0 and 270.\n if (rotate % 90 !== 0) {\n rotate = 0;\n } else if (rotate >= 360) {\n rotate %= 360;\n } else if (rotate < 0) {\n // The spec doesn't cover negatives. Assume it's counterclockwise\n // rotation. The following is the other implementation of modulo.\n rotate = ((rotate % 360) + 360) % 360;\n }\n return shadow(this, \"rotate\", rotate);\n }\n\n /**\n * @private\n */\n _onSubStreamError(handler, reason, objId) {\n if (this.evaluatorOptions.ignoreErrors) {\n // Error(s) when reading one of the /Contents sub-streams -- sending\n // unsupported feature notification and allow parsing to continue.\n handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorContentSubStream,\n });\n warn(`getContentStream - ignoring sub-stream (${objId}): \"${reason}\".`);\n return;\n }\n throw reason;\n }\n\n /**\n * @returns {Promise}\n */\n getContentStream(handler) {\n return this.pdfManager.ensure(this, \"content\").then(content => {\n if (content instanceof BaseStream) {\n return content;\n }\n if (Array.isArray(content)) {\n return new StreamsSequenceStream(\n content,\n this._onSubStreamError.bind(this, handler)\n );\n }\n // Replace non-existent page content with empty content.\n return new NullStream();\n });\n }\n\n get xfaData() {\n return shadow(\n this,\n \"xfaData\",\n this.xfaFactory\n ? { bbox: this.xfaFactory.getBoundingBox(this.pageIndex) }\n : null\n );\n }\n\n save(handler, task, annotationStorage) {\n const partialEvaluator = new PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: this.pageIndex,\n idFactory: this._localIdFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n standardFontDataCache: this.standardFontDataCache,\n globalImageCache: this.globalImageCache,\n options: this.evaluatorOptions,\n });\n\n // Fetch the page's annotations and save the content\n // in case of interactive form fields.\n return this._parsedAnnotations.then(function (annotations) {\n const newRefsPromises = [];\n for (const annotation of annotations) {\n if (!annotation.mustBePrinted(annotationStorage)) {\n continue;\n }\n newRefsPromises.push(\n annotation\n .save(partialEvaluator, task, annotationStorage)\n .catch(function (reason) {\n warn(\n \"save - ignoring annotation data during \" +\n `\"${task.name}\" task: \"${reason}\".`\n );\n return null;\n })\n );\n }\n\n return Promise.all(newRefsPromises);\n });\n }\n\n loadResources(keys) {\n if (!this.resourcesPromise) {\n // TODO: add async `_getInheritableProperty` and remove this.\n this.resourcesPromise = this.pdfManager.ensure(this, \"resources\");\n }\n return this.resourcesPromise.then(() => {\n const objectLoader = new ObjectLoader(this.resources, keys, this.xref);\n return objectLoader.load();\n });\n }\n\n getOperatorList({\n handler,\n sink,\n task,\n intent,\n cacheKey,\n annotationStorage = null,\n }) {\n const contentStreamPromise = this.getContentStream(handler);\n const resourcesPromise = this.loadResources([\n \"ColorSpace\",\n \"ExtGState\",\n \"Font\",\n \"Pattern\",\n \"Properties\",\n \"Shading\",\n \"XObject\",\n ]);\n\n const partialEvaluator = new PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: this.pageIndex,\n idFactory: this._localIdFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n standardFontDataCache: this.standardFontDataCache,\n globalImageCache: this.globalImageCache,\n options: this.evaluatorOptions,\n });\n\n const dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n let MCIDBoundingBoxes, positionByOperationIndex, noMCIDBoundingBoxes;\n const pageListPromise = dataPromises.then(([contentStream]) => {\n const opList = new OperatorList(intent, sink);\n\n handler.send(\"StartRenderPage\", {\n transparency: partialEvaluator.hasBlendModes(\n this.resources,\n this.nonBlendModesSet\n ),\n pageIndex: this.pageIndex,\n cacheKey,\n });\n\n return partialEvaluator\n .getOperatorList({\n stream: contentStream,\n task,\n resources: this.resources,\n operatorList: opList,\n intent\n })\n .then(function ([boundingBoxesByMCID, operationArray, boundingBoxesWithoutMCID]) {\n MCIDBoundingBoxes = boundingBoxesByMCID;\n positionByOperationIndex = operationArray;\n noMCIDBoundingBoxes = boundingBoxesWithoutMCID;\n return opList;\n });\n });\n\n // Fetch the page's annotations and add their operator lists to the\n // page's operator list to render them.\n return Promise.all([pageListPromise, this._parsedAnnotations]).then(\n function ([pageOpList, annotations]) {\n if (\n annotations.length === 0 ||\n intent & RenderingIntentFlag.ANNOTATIONS_DISABLE\n ) {\n if (intent & RenderingIntentFlag.OPLIST) {\n pageOpList.addOp(OPS.operationPosition, positionByOperationIndex);\n pageOpList.addOp(OPS.boundingBoxes, [MCIDBoundingBoxes, noMCIDBoundingBoxes]);\n }\n pageOpList.flush(true);\n return { length: pageOpList.totalLength };\n }\n const renderForms = !!(intent & RenderingIntentFlag.ANNOTATIONS_FORMS),\n intentAny = !!(intent & RenderingIntentFlag.ANY),\n intentDisplay = !!(intent & RenderingIntentFlag.DISPLAY),\n intentPrint = !!(intent & RenderingIntentFlag.PRINT);\n\n // Collect the operator list promises for the annotations. Each promise\n // is resolved with the complete operator list for a single annotation.\n const opListPromises = [];\n for (const annotation of annotations) {\n if (\n intentAny ||\n (intentDisplay && annotation.mustBeViewed(annotationStorage)) ||\n (intentPrint && annotation.mustBePrinted(annotationStorage)) ||\n intent & RenderingIntentFlag.OPLIST\n ) {\n opListPromises.push(\n annotation\n .getOperatorList(\n partialEvaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n )\n .catch(function (reason) {\n warn(\n \"getOperatorList - ignoring annotation data during \" +\n `\"${task.name}\" task: \"${reason}\".`\n );\n return null;\n })\n );\n }\n }\n\n return Promise.all(opListPromises).then(function (opLists) {\n pageOpList.addOp(OPS.beginAnnotations, []);\n for (const opList of opLists) {\n pageOpList.addOpList(opList);\n }\n pageOpList.addOp(OPS.endAnnotations, []);\n if (intent & RenderingIntentFlag.OPLIST) { \n pageOpList.addOp(OPS.save, [MCIDBoundingBoxes, noMCIDBoundingBoxes]);\n }\n pageOpList.flush(true);\n return { length: pageOpList.totalLength };\n });\n }\n );\n }\n\n extractTextContent({\n handler,\n task,\n includeMarkedContent,\n sink,\n combineTextItems,\n }) {\n const contentStreamPromise = this.getContentStream(handler);\n const resourcesPromise = this.loadResources([\n \"ExtGState\",\n \"Font\",\n \"Properties\",\n \"XObject\",\n ]);\n\n const dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n return dataPromises.then(([contentStream]) => {\n const partialEvaluator = new PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: this.pageIndex,\n idFactory: this._localIdFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n standardFontDataCache: this.standardFontDataCache,\n globalImageCache: this.globalImageCache,\n options: this.evaluatorOptions,\n });\n\n return partialEvaluator.getTextContent({\n stream: contentStream,\n task,\n resources: this.resources,\n includeMarkedContent,\n combineTextItems,\n sink,\n viewBox: this.view,\n });\n });\n }\n\n async getStructTree() {\n const structTreeRoot = await this.pdfManager.ensureCatalog(\n \"structTreeRoot\"\n );\n if (!structTreeRoot) {\n return null;\n }\n const structTree = await this.pdfManager.ensure(this, \"_parseStructTree\", [\n structTreeRoot,\n ]);\n return structTree.serializable;\n }\n\n /**\n * @private\n */\n _parseStructTree(structTreeRoot) {\n const tree = new StructTreePage(structTreeRoot, this.pageDict);\n tree.parse();\n return tree;\n }\n\n getAnnotationsData(intent) {\n return this._parsedAnnotations.then(function (annotations) {\n const annotationsData = [];\n\n if (annotations.length === 0) {\n return annotationsData;\n }\n const intentAny = !!(intent & RenderingIntentFlag.ANY),\n intentDisplay = !!(intent & RenderingIntentFlag.DISPLAY),\n intentPrint = !!(intent & RenderingIntentFlag.PRINT);\n\n for (const annotation of annotations) {\n // Get the annotation even if it's hidden because\n // JS can change its display.\n if (\n intentAny ||\n (intentDisplay && annotation.viewable) ||\n (intentPrint && annotation.printable) ||\n intent & RenderingIntentFlag.OPLIST\n ) {\n annotationsData.push(annotation.data);\n }\n }\n return annotationsData;\n });\n }\n\n get annotations() {\n const annots = this._getInheritableProperty(\"Annots\");\n return shadow(this, \"annotations\", Array.isArray(annots) ? annots : []);\n }\n\n get _parsedAnnotations() {\n const parsedAnnotations = this.pdfManager\n .ensure(this, \"annotations\")\n .then(() => {\n const annotationPromises = [];\n for (const annotationRef of this.annotations) {\n annotationPromises.push(\n AnnotationFactory.create(\n this.xref,\n annotationRef,\n this.pdfManager,\n this._localIdFactory,\n /* collectFields */ false\n ).catch(function (reason) {\n warn(`_parsedAnnotations: \"${reason}\".`);\n return null;\n })\n );\n }\n\n return Promise.all(annotationPromises).then(function (annotations) {\n return annotations.filter(annotation => !!annotation);\n });\n });\n\n return shadow(this, \"_parsedAnnotations\", parsedAnnotations);\n }\n\n get jsActions() {\n const actions = collectActions(\n this.xref,\n this.pageDict,\n PageActionEventType\n );\n return shadow(this, \"jsActions\", actions);\n }\n}\n\nconst PDF_HEADER_SIGNATURE = new Uint8Array([0x25, 0x50, 0x44, 0x46, 0x2d]);\nconst STARTXREF_SIGNATURE = new Uint8Array([\n 0x73, 0x74, 0x61, 0x72, 0x74, 0x78, 0x72, 0x65, 0x66,\n]);\nconst ENDOBJ_SIGNATURE = new Uint8Array([0x65, 0x6e, 0x64, 0x6f, 0x62, 0x6a]);\n\nconst FINGERPRINT_FIRST_BYTES = 1024;\nconst EMPTY_FINGERPRINT =\n \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\";\n\nconst PDF_HEADER_VERSION_REGEXP = /^[1-9]\\.\\d$/;\n\nfunction find(stream, signature, limit = 1024, backwards = false) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(limit > 0, 'The \"limit\" must be a positive integer.');\n }\n const signatureLength = signature.length;\n\n const scanBytes = stream.peekBytes(limit);\n const scanLength = scanBytes.length - signatureLength;\n\n if (scanLength <= 0) {\n return false;\n }\n if (backwards) {\n const signatureEnd = signatureLength - 1;\n\n let pos = scanBytes.length - 1;\n while (pos >= signatureEnd) {\n let j = 0;\n while (\n j < signatureLength &&\n scanBytes[pos - j] === signature[signatureEnd - j]\n ) {\n j++;\n }\n if (j >= signatureLength) {\n // `signature` found.\n stream.pos += pos - signatureEnd;\n return true;\n }\n pos--;\n }\n } else {\n // forwards\n let pos = 0;\n while (pos <= scanLength) {\n let j = 0;\n while (j < signatureLength && scanBytes[pos + j] === signature[j]) {\n j++;\n }\n if (j >= signatureLength) {\n // `signature` found.\n stream.pos += pos;\n return true;\n }\n pos++;\n }\n }\n return false;\n}\n\n/**\n * The `PDFDocument` class holds all the (worker-thread) data of the PDF file.\n */\nclass PDFDocument {\n constructor(pdfManager, stream) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n stream instanceof BaseStream,\n 'PDFDocument: Invalid \"stream\" argument.'\n );\n }\n if (stream.length <= 0) {\n throw new InvalidPDFException(\n \"The PDF file is empty, i.e. its size is zero bytes.\"\n );\n }\n\n this.pdfManager = pdfManager;\n this.stream = stream;\n this.xref = new XRef(stream, pdfManager);\n this._pagePromises = new Map();\n this._version = null;\n\n const idCounters = {\n font: 0,\n };\n this._globalIdFactory = class {\n static getDocId() {\n return `g_${pdfManager.docId}`;\n }\n\n static createFontId() {\n return `f${++idCounters.font}`;\n }\n\n static createObjId() {\n unreachable(\"Abstract method `createObjId` called.\");\n }\n\n static getPageObjId() {\n unreachable(\"Abstract method `getPageObjId` called.\");\n }\n };\n }\n\n parse(recoveryMode) {\n this.xref.parse(recoveryMode);\n this.catalog = new Catalog(this.pdfManager, this.xref);\n\n // The `checkHeader` method is called before this method and parses the\n // version from the header. The specification states in section 7.5.2\n // that the version from the catalog, if present, should overwrite the\n // version from the header.\n if (this.catalog.version) {\n this._version = this.catalog.version;\n }\n }\n\n get linearization() {\n let linearization = null;\n try {\n linearization = Linearization.create(this.stream);\n } catch (err) {\n if (err instanceof MissingDataException) {\n throw err;\n }\n info(err);\n }\n return shadow(this, \"linearization\", linearization);\n }\n\n get startXRef() {\n const stream = this.stream;\n let startXRef = 0;\n\n if (this.linearization) {\n // Find the end of the first object.\n stream.reset();\n if (find(stream, ENDOBJ_SIGNATURE)) {\n startXRef = stream.pos + 6 - stream.start;\n }\n } else {\n // Find `startxref` by checking backwards from the end of the file.\n const step = 1024;\n const startXRefLength = STARTXREF_SIGNATURE.length;\n let found = false,\n pos = stream.end;\n\n while (!found && pos > 0) {\n pos -= step - startXRefLength;\n if (pos < 0) {\n pos = 0;\n }\n stream.pos = pos;\n found = find(stream, STARTXREF_SIGNATURE, step, true);\n }\n\n if (found) {\n stream.skip(9);\n let ch;\n do {\n ch = stream.getByte();\n } while (isWhiteSpace(ch));\n let str = \"\";\n while (ch >= /* Space = */ 0x20 && ch <= /* '9' = */ 0x39) {\n str += String.fromCharCode(ch);\n ch = stream.getByte();\n }\n startXRef = parseInt(str, 10);\n if (isNaN(startXRef)) {\n startXRef = 0;\n }\n }\n }\n return shadow(this, \"startXRef\", startXRef);\n }\n\n // Find the header, get the PDF format version and setup the\n // stream to start from the header.\n checkHeader() {\n const stream = this.stream;\n stream.reset();\n\n if (!find(stream, PDF_HEADER_SIGNATURE)) {\n // May not be a PDF file, but don't throw an error and let\n // parsing continue.\n return;\n }\n stream.moveStart();\n\n // Read the PDF format version.\n const MAX_PDF_VERSION_LENGTH = 12;\n let version = \"\",\n ch;\n while ((ch = stream.getByte()) > /* Space = */ 0x20) {\n if (version.length >= MAX_PDF_VERSION_LENGTH) {\n break;\n }\n version += String.fromCharCode(ch);\n }\n if (!this._version) {\n // Remove the \"%PDF-\" prefix.\n this._version = version.substring(5);\n }\n }\n\n parseStartXRef() {\n this.xref.setStartXRef(this.startXRef);\n }\n\n get numPages() {\n let num = 0;\n if (this.catalog.hasActualNumPages) {\n num = this.catalog.numPages;\n } else if (this.xfaFactory) {\n // num is a Promise.\n num = this.xfaFactory.getNumPages();\n } else if (this.linearization) {\n num = this.linearization.numPages;\n } else {\n num = this.catalog.numPages;\n }\n return shadow(this, \"numPages\", num);\n }\n\n /**\n * @private\n */\n _hasOnlyDocumentSignatures(fields, recursionDepth = 0) {\n const RECURSION_LIMIT = 10;\n\n if (!Array.isArray(fields)) {\n return false;\n }\n return fields.every(field => {\n field = this.xref.fetchIfRef(field);\n if (!(field instanceof Dict)) {\n return false;\n }\n if (field.has(\"Kids\")) {\n if (++recursionDepth > RECURSION_LIMIT) {\n warn(\"_hasOnlyDocumentSignatures: maximum recursion depth reached\");\n return false;\n }\n return this._hasOnlyDocumentSignatures(\n field.get(\"Kids\"),\n recursionDepth\n );\n }\n const isSignature = isName(field.get(\"FT\"), \"Sig\");\n const rectangle = field.get(\"Rect\");\n const isInvisible =\n Array.isArray(rectangle) && rectangle.every(value => value === 0);\n return isSignature && isInvisible;\n });\n }\n\n get _xfaStreams() {\n const acroForm = this.catalog.acroForm;\n if (!acroForm) {\n return null;\n }\n\n const xfa = acroForm.get(\"XFA\");\n const entries = {\n \"xdp:xdp\": \"\",\n template: \"\",\n datasets: \"\",\n config: \"\",\n connectionSet: \"\",\n localeSet: \"\",\n stylesheet: \"\",\n \"/xdp:xdp\": \"\",\n };\n if (xfa instanceof BaseStream && !xfa.isEmpty) {\n entries[\"xdp:xdp\"] = xfa;\n return entries;\n }\n\n if (!Array.isArray(xfa) || xfa.length === 0) {\n return null;\n }\n\n for (let i = 0, ii = xfa.length; i < ii; i += 2) {\n let name;\n if (i === 0) {\n name = \"xdp:xdp\";\n } else if (i === ii - 2) {\n name = \"/xdp:xdp\";\n } else {\n name = xfa[i];\n }\n\n if (!entries.hasOwnProperty(name)) {\n continue;\n }\n const data = this.xref.fetchIfRef(xfa[i + 1]);\n if (!(data instanceof BaseStream) || data.isEmpty) {\n continue;\n }\n entries[name] = data;\n }\n return entries;\n }\n\n get xfaDatasets() {\n const streams = this._xfaStreams;\n if (!streams) {\n return shadow(this, \"xfaDatasets\", null);\n }\n for (const key of [\"datasets\", \"xdp:xdp\"]) {\n const stream = streams[key];\n if (!stream) {\n continue;\n }\n try {\n const str = stringToUTF8String(stream.getString());\n const data = { [key]: str };\n return shadow(this, \"xfaDatasets\", new DatasetReader(data));\n } catch (_) {\n warn(\"XFA - Invalid utf-8 string.\");\n break;\n }\n }\n return shadow(this, \"xfaDatasets\", null);\n }\n\n get xfaData() {\n const streams = this._xfaStreams;\n if (!streams) {\n return null;\n }\n const data = Object.create(null);\n for (const [key, stream] of Object.entries(streams)) {\n if (!stream) {\n continue;\n }\n try {\n data[key] = stringToUTF8String(stream.getString());\n } catch (_) {\n warn(\"XFA - Invalid utf-8 string.\");\n return null;\n }\n }\n return data;\n }\n\n get xfaFactory() {\n let data;\n if (\n this.pdfManager.enableXfa &&\n this.catalog.needsRendering &&\n this.formInfo.hasXfa &&\n !this.formInfo.hasAcroForm\n ) {\n data = this.xfaData;\n }\n return shadow(this, \"xfaFactory\", data ? new XFAFactory(data) : null);\n }\n\n get isPureXfa() {\n return this.xfaFactory ? this.xfaFactory.isValid() : false;\n }\n\n get htmlForXfa() {\n return this.xfaFactory ? this.xfaFactory.getPages() : null;\n }\n\n async loadXfaImages() {\n const xfaImagesDict = await this.pdfManager.ensureCatalog(\"xfaImages\");\n if (!xfaImagesDict) {\n return;\n }\n\n const keys = xfaImagesDict.getKeys();\n const objectLoader = new ObjectLoader(xfaImagesDict, keys, this.xref);\n await objectLoader.load();\n\n const xfaImages = new Map();\n for (const key of keys) {\n const stream = xfaImagesDict.get(key);\n if (stream instanceof BaseStream) {\n xfaImages.set(key, stream.getBytes());\n }\n }\n\n this.xfaFactory.setImages(xfaImages);\n }\n\n async loadXfaFonts(handler, task) {\n const acroForm = await this.pdfManager.ensureCatalog(\"acroForm\");\n if (!acroForm) {\n return;\n }\n const resources = await acroForm.getAsync(\"DR\");\n if (!(resources instanceof Dict)) {\n return;\n }\n const objectLoader = new ObjectLoader(resources, [\"Font\"], this.xref);\n await objectLoader.load();\n\n const fontRes = resources.get(\"Font\");\n if (!(fontRes instanceof Dict)) {\n return;\n }\n\n const options = Object.assign(\n Object.create(null),\n this.pdfManager.evaluatorOptions\n );\n options.useSystemFonts = false;\n\n const partialEvaluator = new PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: -1,\n idFactory: this._globalIdFactory,\n fontCache: this.catalog.fontCache,\n builtInCMapCache: this.catalog.builtInCMapCache,\n standardFontDataCache: this.catalog.standardFontDataCache,\n options,\n });\n const operatorList = new OperatorList();\n const pdfFonts = [];\n const initialState = {\n get font() {\n return pdfFonts[pdfFonts.length - 1];\n },\n set font(font) {\n pdfFonts.push(font);\n },\n clone() {\n return this;\n },\n };\n\n const fonts = new Map();\n fontRes.forEach((fontName, font) => {\n fonts.set(fontName, font);\n });\n const promises = [];\n\n for (const [fontName, font] of fonts) {\n const descriptor = font.get(\"FontDescriptor\");\n if (!(descriptor instanceof Dict)) {\n continue;\n }\n let fontFamily = descriptor.get(\"FontFamily\");\n // For example, \"Wingdings 3\" is not a valid font name in the css specs.\n fontFamily = fontFamily.replace(/[ ]+(\\d)/g, \"$1\");\n const fontWeight = descriptor.get(\"FontWeight\");\n\n // Angle is expressed in degrees counterclockwise in PDF\n // when it's clockwise in CSS\n // (see https://drafts.csswg.org/css-fonts-4/#valdef-font-style-oblique-angle)\n const italicAngle = -descriptor.get(\"ItalicAngle\");\n const cssFontInfo = { fontFamily, fontWeight, italicAngle };\n\n if (!validateCSSFont(cssFontInfo)) {\n continue;\n }\n promises.push(\n partialEvaluator\n .handleSetFont(\n resources,\n [Name.get(fontName), 1],\n /* fontRef = */ null,\n operatorList,\n task,\n initialState,\n /* fallbackFontDict = */ null,\n /* cssFontInfo = */ cssFontInfo\n )\n .catch(function (reason) {\n warn(`loadXfaFonts: \"${reason}\".`);\n return null;\n })\n );\n }\n\n await Promise.all(promises);\n const missingFonts = this.xfaFactory.setFonts(pdfFonts);\n\n if (!missingFonts) {\n return;\n }\n\n options.ignoreErrors = true;\n promises.length = 0;\n pdfFonts.length = 0;\n\n const reallyMissingFonts = new Set();\n for (const missing of missingFonts) {\n if (!getXfaFontName(`${missing}-Regular`)) {\n // No substitution available: we'll fallback on Myriad.\n reallyMissingFonts.add(missing);\n }\n }\n\n if (reallyMissingFonts.size) {\n missingFonts.push(\"PdfJS-Fallback\");\n }\n\n for (const missing of missingFonts) {\n if (reallyMissingFonts.has(missing)) {\n continue;\n }\n for (const fontInfo of [\n { name: \"Regular\", fontWeight: 400, italicAngle: 0 },\n { name: \"Bold\", fontWeight: 700, italicAngle: 0 },\n { name: \"Italic\", fontWeight: 400, italicAngle: 12 },\n { name: \"BoldItalic\", fontWeight: 700, italicAngle: 12 },\n ]) {\n const name = `${missing}-${fontInfo.name}`;\n const dict = getXfaFontDict(name);\n\n promises.push(\n partialEvaluator\n .handleSetFont(\n resources,\n [Name.get(name), 1],\n /* fontRef = */ null,\n operatorList,\n task,\n initialState,\n /* fallbackFontDict = */ dict,\n /* cssFontInfo = */ {\n fontFamily: missing,\n fontWeight: fontInfo.fontWeight,\n italicAngle: fontInfo.italicAngle,\n }\n )\n .catch(function (reason) {\n warn(`loadXfaFonts: \"${reason}\".`);\n return null;\n })\n );\n }\n }\n\n await Promise.all(promises);\n this.xfaFactory.appendFonts(pdfFonts, reallyMissingFonts);\n }\n\n async serializeXfaData(annotationStorage) {\n return this.xfaFactory\n ? this.xfaFactory.serializeData(annotationStorage)\n : null;\n }\n\n get formInfo() {\n const formInfo = {\n hasFields: false,\n hasAcroForm: false,\n hasXfa: false,\n hasSignatures: false,\n };\n const acroForm = this.catalog.acroForm;\n if (!acroForm) {\n return shadow(this, \"formInfo\", formInfo);\n }\n\n try {\n const fields = acroForm.get(\"Fields\");\n const hasFields = Array.isArray(fields) && fields.length > 0;\n formInfo.hasFields = hasFields; // Used by the `fieldObjects` getter.\n\n // The document contains XFA data if the `XFA` entry is a non-empty\n // array or stream.\n const xfa = acroForm.get(\"XFA\");\n formInfo.hasXfa =\n (Array.isArray(xfa) && xfa.length > 0) ||\n (xfa instanceof BaseStream && !xfa.isEmpty);\n\n // The document contains AcroForm data if the `Fields` entry is a\n // non-empty array and it doesn't consist of only document signatures.\n // This second check is required for files that don't actually contain\n // AcroForm data (only XFA data), but that use the `Fields` entry to\n // store (invisible) document signatures. This can be detected using\n // the first bit of the `SigFlags` integer (see Table 219 in the\n // specification).\n const sigFlags = acroForm.get(\"SigFlags\");\n const hasSignatures = !!(sigFlags & 0x1);\n const hasOnlyDocumentSignatures =\n hasSignatures && this._hasOnlyDocumentSignatures(fields);\n formInfo.hasAcroForm = hasFields && !hasOnlyDocumentSignatures;\n formInfo.hasSignatures = hasSignatures;\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`Cannot fetch form information: \"${ex}\".`);\n }\n return shadow(this, \"formInfo\", formInfo);\n }\n\n get documentInfo() {\n let version = this._version;\n if (\n typeof version !== \"string\" ||\n !PDF_HEADER_VERSION_REGEXP.test(version)\n ) {\n warn(`Invalid PDF header version number: ${version}`);\n version = null;\n }\n\n const docInfo = {\n PDFFormatVersion: version,\n Language: this.catalog.lang,\n EncryptFilterName: this.xref.encrypt\n ? this.xref.encrypt.filterName\n : null,\n IsLinearized: !!this.linearization,\n IsAcroFormPresent: this.formInfo.hasAcroForm,\n IsXFAPresent: this.formInfo.hasXfa,\n IsCollectionPresent: !!this.catalog.collection,\n IsSignaturesPresent: this.formInfo.hasSignatures,\n };\n\n let infoDict;\n try {\n infoDict = this.xref.trailer.get(\"Info\");\n } catch (err) {\n if (err instanceof MissingDataException) {\n throw err;\n }\n info(\"The document information dictionary is invalid.\");\n }\n if (!(infoDict instanceof Dict)) {\n return shadow(this, \"documentInfo\", docInfo);\n }\n\n for (const key of infoDict.getKeys()) {\n const value = infoDict.get(key);\n\n switch (key) {\n case \"Title\":\n case \"Author\":\n case \"Subject\":\n case \"Keywords\":\n case \"Creator\":\n case \"Producer\":\n case \"CreationDate\":\n case \"ModDate\":\n if (typeof value === \"string\") {\n docInfo[key] = stringToPDFString(value);\n continue;\n }\n break;\n case \"Trapped\":\n if (value instanceof Name) {\n docInfo[key] = value;\n continue;\n }\n break;\n default:\n // For custom values, only accept white-listed types to prevent\n // errors that would occur when trying to send non-serializable\n // objects to the main-thread (for example `Dict` or `Stream`).\n let customValue;\n switch (typeof value) {\n case \"string\":\n customValue = stringToPDFString(value);\n break;\n case \"number\":\n case \"boolean\":\n customValue = value;\n break;\n default:\n if (value instanceof Name) {\n customValue = value;\n }\n break;\n }\n\n if (customValue === undefined) {\n warn(`Bad value, for custom key \"${key}\", in Info: ${value}.`);\n continue;\n }\n if (!docInfo.Custom) {\n docInfo.Custom = Object.create(null);\n }\n docInfo.Custom[key] = customValue;\n continue;\n }\n warn(`Bad value, for key \"${key}\", in Info: ${value}.`);\n }\n return shadow(this, \"documentInfo\", docInfo);\n }\n\n get fingerprints() {\n function validate(data) {\n return (\n typeof data === \"string\" &&\n data.length > 0 &&\n data !== EMPTY_FINGERPRINT\n );\n }\n\n function hexString(hash) {\n const buf = [];\n for (let i = 0, ii = hash.length; i < ii; i++) {\n const hex = hash[i].toString(16);\n buf.push(hex.padStart(2, \"0\"));\n }\n return buf.join(\"\");\n }\n\n const idArray = this.xref.trailer.get(\"ID\");\n let hashOriginal, hashModified;\n if (Array.isArray(idArray) && validate(idArray[0])) {\n hashOriginal = stringToBytes(idArray[0]);\n\n if (idArray[1] !== idArray[0] && validate(idArray[1])) {\n hashModified = stringToBytes(idArray[1]);\n }\n } else {\n hashOriginal = calculateMD5(\n this.stream.getByteRange(0, FINGERPRINT_FIRST_BYTES),\n 0,\n FINGERPRINT_FIRST_BYTES\n );\n }\n\n return shadow(this, \"fingerprints\", [\n hexString(hashOriginal),\n hashModified ? hexString(hashModified) : null,\n ]);\n }\n\n async _getLinearizationPage(pageIndex) {\n const { catalog, linearization, xref } = this;\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n linearization && linearization.pageFirst === pageIndex,\n \"_getLinearizationPage - invalid pageIndex argument.\"\n );\n }\n\n const ref = Ref.get(linearization.objectNumberFirst, 0);\n try {\n const obj = await xref.fetchAsync(ref);\n // Ensure that the object that was found is actually a Page dictionary.\n if (obj instanceof Dict) {\n let type = obj.getRaw(\"Type\");\n if (type instanceof Ref) {\n type = await xref.fetchAsync(type);\n }\n if (isName(type, \"Page\") || (!obj.has(\"Type\") && !obj.has(\"Kids\"))) {\n if (!catalog.pageKidsCountCache.has(ref)) {\n catalog.pageKidsCountCache.put(ref, 1); // Cache the Page reference.\n }\n // Help improve performance of the `Catalog.getPageIndex` method.\n if (!catalog.pageIndexCache.has(ref)) {\n catalog.pageIndexCache.put(ref, 0);\n }\n\n return [obj, ref];\n }\n }\n throw new FormatError(\n \"The Linearization dictionary doesn't point to a valid Page dictionary.\"\n );\n } catch (reason) {\n warn(`_getLinearizationPage: \"${reason.message}\".`);\n return catalog.getPageDict(pageIndex);\n }\n }\n\n getPage(pageIndex) {\n const cachedPromise = this._pagePromises.get(pageIndex);\n if (cachedPromise) {\n return cachedPromise;\n }\n const { catalog, linearization, xfaFactory } = this;\n\n let promise;\n if (xfaFactory) {\n promise = Promise.resolve([Dict.empty, null]);\n } else if (linearization && linearization.pageFirst === pageIndex) {\n promise = this._getLinearizationPage(pageIndex);\n } else {\n promise = catalog.getPageDict(pageIndex);\n }\n promise = promise.then(([pageDict, ref]) => {\n return new Page({\n pdfManager: this.pdfManager,\n xref: this.xref,\n pageIndex,\n pageDict,\n ref,\n globalIdFactory: this._globalIdFactory,\n fontCache: catalog.fontCache,\n builtInCMapCache: catalog.builtInCMapCache,\n standardFontDataCache: catalog.standardFontDataCache,\n globalImageCache: catalog.globalImageCache,\n nonBlendModesSet: catalog.nonBlendModesSet,\n xfaFactory,\n });\n });\n\n this._pagePromises.set(pageIndex, promise);\n return promise;\n }\n\n async checkFirstPage(recoveryMode = false) {\n if (recoveryMode) {\n return;\n }\n try {\n await this.getPage(0);\n } catch (reason) {\n if (reason instanceof XRefEntryException) {\n // Clear out the various caches to ensure that we haven't stored any\n // inconsistent and/or incorrect state, since that could easily break\n // subsequent `this.getPage` calls.\n this._pagePromises.delete(0);\n await this.cleanup();\n\n throw new XRefParseException();\n }\n }\n }\n\n async checkLastPage(recoveryMode = false) {\n const { catalog, pdfManager } = this;\n\n catalog.setActualNumPages(); // Ensure that it's always reset.\n let numPages;\n\n try {\n await Promise.all([\n pdfManager.ensureDoc(\"xfaFactory\"),\n pdfManager.ensureDoc(\"linearization\"),\n pdfManager.ensureCatalog(\"numPages\"),\n ]);\n\n if (this.xfaFactory) {\n return; // The Page count is always calculated for XFA-documents.\n } else if (this.linearization) {\n numPages = this.linearization.numPages;\n } else {\n numPages = catalog.numPages;\n }\n\n if (!Number.isInteger(numPages)) {\n throw new FormatError(\"Page count is not an integer.\");\n } else if (numPages <= 1) {\n return;\n }\n await this.getPage(numPages - 1);\n } catch (reason) {\n // Clear out the various caches to ensure that we haven't stored any\n // inconsistent and/or incorrect state, since that could easily break\n // subsequent `this.getPage` calls.\n this._pagePromises.delete(numPages - 1);\n await this.cleanup();\n\n if (reason instanceof XRefEntryException && !recoveryMode) {\n throw new XRefParseException();\n }\n warn(`checkLastPage - invalid /Pages tree /Count: ${numPages}.`);\n\n let pagesTree;\n try {\n pagesTree = await catalog.getAllPageDicts(recoveryMode);\n } catch (reasonAll) {\n if (reasonAll instanceof XRefEntryException && !recoveryMode) {\n throw new XRefParseException();\n }\n catalog.setActualNumPages(1);\n return;\n }\n\n for (const [pageIndex, [pageDict, ref]] of pagesTree) {\n let promise;\n if (pageDict instanceof Error) {\n promise = Promise.reject(pageDict);\n\n // Prevent \"uncaught exception: Object\"-messages in the console.\n promise.catch(() => {});\n } else {\n promise = Promise.resolve(\n new Page({\n pdfManager,\n xref: this.xref,\n pageIndex,\n pageDict,\n ref,\n globalIdFactory: this._globalIdFactory,\n fontCache: catalog.fontCache,\n builtInCMapCache: catalog.builtInCMapCache,\n standardFontDataCache: catalog.standardFontDataCache,\n globalImageCache: catalog.globalImageCache,\n nonBlendModesSet: catalog.nonBlendModesSet,\n xfaFactory: null,\n })\n );\n }\n\n this._pagePromises.set(pageIndex, promise);\n }\n catalog.setActualNumPages(pagesTree.size);\n }\n }\n\n fontFallback(id, handler) {\n return this.catalog.fontFallback(id, handler);\n }\n\n async cleanup(manuallyTriggered = false) {\n return this.catalog\n ? this.catalog.cleanup(manuallyTriggered)\n : clearGlobalCaches();\n }\n\n /**\n * @private\n */\n _collectFieldObjects(name, fieldRef, promises) {\n const field = this.xref.fetchIfRef(fieldRef);\n if (field.has(\"T\")) {\n const partName = stringToPDFString(field.get(\"T\"));\n if (name === \"\") {\n name = partName;\n } else {\n name = `${name}.${partName}`;\n }\n }\n\n if (!promises.has(name)) {\n promises.set(name, []);\n }\n promises.get(name).push(\n AnnotationFactory.create(\n this.xref,\n fieldRef,\n this.pdfManager,\n this._localIdFactory,\n /* collectFields */ true\n )\n .then(annotation => annotation && annotation.getFieldObject())\n .catch(function (reason) {\n warn(`_collectFieldObjects: \"${reason}\".`);\n return null;\n })\n );\n\n if (field.has(\"Kids\")) {\n const kids = field.get(\"Kids\");\n for (const kid of kids) {\n this._collectFieldObjects(name, kid, promises);\n }\n }\n }\n\n get fieldObjects() {\n if (!this.formInfo.hasFields) {\n return shadow(this, \"fieldObjects\", Promise.resolve(null));\n }\n\n const allFields = Object.create(null);\n const fieldPromises = new Map();\n for (const fieldRef of this.catalog.acroForm.get(\"Fields\")) {\n this._collectFieldObjects(\"\", fieldRef, fieldPromises);\n }\n\n const allPromises = [];\n for (const [name, promises] of fieldPromises) {\n allPromises.push(\n Promise.all(promises).then(fields => {\n fields = fields.filter(field => !!field);\n if (fields.length > 0) {\n allFields[name] = fields;\n }\n })\n );\n }\n\n return shadow(\n this,\n \"fieldObjects\",\n Promise.all(allPromises).then(() => allFields)\n );\n }\n\n get hasJSActions() {\n const promise = this.pdfManager.ensureDoc(\"_parseHasJSActions\");\n return shadow(this, \"hasJSActions\", promise);\n }\n\n /**\n * @private\n */\n async _parseHasJSActions() {\n const [catalogJsActions, fieldObjects] = await Promise.all([\n this.pdfManager.ensureCatalog(\"jsActions\"),\n this.pdfManager.ensureDoc(\"fieldObjects\"),\n ]);\n\n if (catalogJsActions) {\n return true;\n }\n if (fieldObjects) {\n return Object.values(fieldObjects).some(fieldObject =>\n fieldObject.some(object => object.actions !== null)\n );\n }\n return false;\n }\n\n get calculationOrderIds() {\n const acroForm = this.catalog.acroForm;\n if (!acroForm || !acroForm.has(\"CO\")) {\n return shadow(this, \"calculationOrderIds\", null);\n }\n\n const calculationOrder = acroForm.get(\"CO\");\n if (!Array.isArray(calculationOrder) || calculationOrder.length === 0) {\n return shadow(this, \"calculationOrderIds\", null);\n }\n\n const ids = [];\n for (const id of calculationOrder) {\n if (id instanceof Ref) {\n ids.push(id.toString());\n }\n }\n if (ids.length === 0) {\n return shadow(this, \"calculationOrderIds\", null);\n }\n return shadow(this, \"calculationOrderIds\", ids);\n }\n}\n\nclass ExtendedPDFDocument extends PDFDocument{\n constructor(pdfManager, arg) {\n super(pdfManager, arg);\n }\n\n get structureTree() {\n return shadow(this, 'structureTree', this.catalog.structureTree);\n }\n}\n\nexport {\n Page,\n ExtendedPDFDocument as PDFDocument,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n CalibriBoldFactors,\n CalibriBoldItalicFactors,\n CalibriBoldItalicMetrics,\n CalibriBoldMetrics,\n CalibriItalicFactors,\n CalibriItalicMetrics,\n CalibriRegularFactors,\n CalibriRegularMetrics,\n} from \"./calibri_factors.js\";\nimport { Dict, Name } from \"./primitives.js\";\nimport {\n HelveticaBoldFactors,\n HelveticaBoldItalicFactors,\n HelveticaBoldItalicMetrics,\n HelveticaBoldMetrics,\n HelveticaItalicFactors,\n HelveticaItalicMetrics,\n HelveticaRegularFactors,\n HelveticaRegularMetrics,\n} from \"./helvetica_factors.js\";\nimport {\n LiberationSansBoldItalicMapping,\n LiberationSansBoldItalicWidths,\n LiberationSansBoldMapping,\n LiberationSansBoldWidths,\n LiberationSansItalicMapping,\n LiberationSansItalicWidths,\n LiberationSansRegularMapping,\n LiberationSansRegularWidths,\n} from \"./liberationsans_widths.js\";\nimport {\n MyriadProBoldFactors,\n MyriadProBoldItalicFactors,\n MyriadProBoldItalicMetrics,\n MyriadProBoldMetrics,\n MyriadProItalicFactors,\n MyriadProItalicMetrics,\n MyriadProRegularFactors,\n MyriadProRegularMetrics,\n} from \"./myriadpro_factors.js\";\nimport {\n SegoeuiBoldFactors,\n SegoeuiBoldItalicFactors,\n SegoeuiBoldItalicMetrics,\n SegoeuiBoldMetrics,\n SegoeuiItalicFactors,\n SegoeuiItalicMetrics,\n SegoeuiRegularFactors,\n SegoeuiRegularMetrics,\n} from \"./segoeui_factors.js\";\nimport { getLookupTableFactory } from \"./core_utils.js\";\nimport { normalizeFontName } from \"./fonts_utils.js\";\n\nconst getXFAFontMap = getLookupTableFactory(function (t) {\n t[\"MyriadPro-Regular\"] = t[\"PdfJS-Fallback-Regular\"] = {\n name: \"LiberationSans-Regular\",\n factors: MyriadProRegularFactors,\n baseWidths: LiberationSansRegularWidths,\n baseMapping: LiberationSansRegularMapping,\n metrics: MyriadProRegularMetrics,\n };\n t[\"MyriadPro-Bold\"] = t[\"PdfJS-Fallback-Bold\"] = {\n name: \"LiberationSans-Bold\",\n factors: MyriadProBoldFactors,\n baseWidths: LiberationSansBoldWidths,\n baseMapping: LiberationSansBoldMapping,\n metrics: MyriadProBoldMetrics,\n };\n t[\"MyriadPro-It\"] =\n t[\"MyriadPro-Italic\"] =\n t[\"PdfJS-Fallback-Italic\"] =\n {\n name: \"LiberationSans-Italic\",\n factors: MyriadProItalicFactors,\n baseWidths: LiberationSansItalicWidths,\n baseMapping: LiberationSansItalicMapping,\n metrics: MyriadProItalicMetrics,\n };\n t[\"MyriadPro-BoldIt\"] =\n t[\"MyriadPro-BoldItalic\"] =\n t[\"PdfJS-Fallback-BoldItalic\"] =\n {\n name: \"LiberationSans-BoldItalic\",\n factors: MyriadProBoldItalicFactors,\n baseWidths: LiberationSansBoldItalicWidths,\n baseMapping: LiberationSansBoldItalicMapping,\n metrics: MyriadProBoldItalicMetrics,\n };\n t.ArialMT =\n t.Arial =\n t[\"Arial-Regular\"] =\n {\n name: \"LiberationSans-Regular\",\n baseWidths: LiberationSansRegularWidths,\n baseMapping: LiberationSansRegularMapping,\n };\n t[\"Arial-BoldMT\"] = t[\"Arial-Bold\"] = {\n name: \"LiberationSans-Bold\",\n baseWidths: LiberationSansBoldWidths,\n baseMapping: LiberationSansBoldMapping,\n };\n t[\"Arial-ItalicMT\"] = t[\"Arial-Italic\"] = {\n name: \"LiberationSans-Italic\",\n baseWidths: LiberationSansItalicWidths,\n baseMapping: LiberationSansItalicMapping,\n };\n t[\"Arial-BoldItalicMT\"] = t[\"Arial-BoldItalic\"] = {\n name: \"LiberationSans-BoldItalic\",\n baseWidths: LiberationSansBoldItalicWidths,\n baseMapping: LiberationSansBoldItalicMapping,\n };\n t[\"Calibri-Regular\"] = {\n name: \"LiberationSans-Regular\",\n factors: CalibriRegularFactors,\n baseWidths: LiberationSansRegularWidths,\n baseMapping: LiberationSansRegularMapping,\n metrics: CalibriRegularMetrics,\n };\n t[\"Calibri-Bold\"] = {\n name: \"LiberationSans-Bold\",\n factors: CalibriBoldFactors,\n baseWidths: LiberationSansBoldWidths,\n baseMapping: LiberationSansBoldMapping,\n metrics: CalibriBoldMetrics,\n };\n t[\"Calibri-Italic\"] = {\n name: \"LiberationSans-Italic\",\n factors: CalibriItalicFactors,\n baseWidths: LiberationSansItalicWidths,\n baseMapping: LiberationSansItalicMapping,\n metrics: CalibriItalicMetrics,\n };\n t[\"Calibri-BoldItalic\"] = {\n name: \"LiberationSans-BoldItalic\",\n factors: CalibriBoldItalicFactors,\n baseWidths: LiberationSansBoldItalicWidths,\n baseMapping: LiberationSansBoldItalicMapping,\n metrics: CalibriBoldItalicMetrics,\n };\n t[\"Segoeui-Regular\"] = {\n name: \"LiberationSans-Regular\",\n factors: SegoeuiRegularFactors,\n baseWidths: LiberationSansRegularWidths,\n baseMapping: LiberationSansRegularMapping,\n metrics: SegoeuiRegularMetrics,\n };\n t[\"Segoeui-Bold\"] = {\n name: \"LiberationSans-Bold\",\n factors: SegoeuiBoldFactors,\n baseWidths: LiberationSansBoldWidths,\n baseMapping: LiberationSansBoldMapping,\n metrics: SegoeuiBoldMetrics,\n };\n t[\"Segoeui-Italic\"] = {\n name: \"LiberationSans-Italic\",\n factors: SegoeuiItalicFactors,\n baseWidths: LiberationSansItalicWidths,\n baseMapping: LiberationSansItalicMapping,\n metrics: SegoeuiItalicMetrics,\n };\n t[\"Segoeui-BoldItalic\"] = {\n name: \"LiberationSans-BoldItalic\",\n factors: SegoeuiBoldItalicFactors,\n baseWidths: LiberationSansBoldItalicWidths,\n baseMapping: LiberationSansBoldItalicMapping,\n metrics: SegoeuiBoldItalicMetrics,\n };\n t[\"Helvetica-Regular\"] = t.Helvetica = {\n name: \"LiberationSans-Regular\",\n factors: HelveticaRegularFactors,\n baseWidths: LiberationSansRegularWidths,\n baseMapping: LiberationSansRegularMapping,\n metrics: HelveticaRegularMetrics,\n };\n t[\"Helvetica-Bold\"] = {\n name: \"LiberationSans-Bold\",\n factors: HelveticaBoldFactors,\n baseWidths: LiberationSansBoldWidths,\n baseMapping: LiberationSansBoldMapping,\n metrics: HelveticaBoldMetrics,\n };\n t[\"Helvetica-Italic\"] = {\n name: \"LiberationSans-Italic\",\n factors: HelveticaItalicFactors,\n baseWidths: LiberationSansItalicWidths,\n baseMapping: LiberationSansItalicMapping,\n metrics: HelveticaItalicMetrics,\n };\n t[\"Helvetica-BoldItalic\"] = {\n name: \"LiberationSans-BoldItalic\",\n factors: HelveticaBoldItalicFactors,\n baseWidths: LiberationSansBoldItalicWidths,\n baseMapping: LiberationSansBoldItalicMapping,\n metrics: HelveticaBoldItalicMetrics,\n };\n});\n\nfunction getXfaFontName(name) {\n const fontName = normalizeFontName(name);\n const fontMap = getXFAFontMap();\n return fontMap[fontName];\n}\n\nfunction getXfaFontWidths(name) {\n const info = getXfaFontName(name);\n if (!info) {\n return null;\n }\n\n const { baseWidths, baseMapping, factors } = info;\n let rescaledBaseWidths;\n if (!factors) {\n rescaledBaseWidths = baseWidths;\n } else {\n rescaledBaseWidths = baseWidths.map((w, i) => w * factors[i]);\n }\n\n let currentCode = -2;\n let currentArray;\n\n // Widths array for composite font is:\n // CharCode1 [10, 20, 30] ...\n // which means:\n // - CharCode1 has a width equal to 10\n // - CharCode1+1 has a width equal to 20\n // - CharCode1+2 has a width equal to 30\n //\n // The baseMapping array contains a map for glyph index to unicode.\n // So from baseMapping we'll get sorted unicodes and their positions\n // (i.e. glyph indices) and then we put widths in an array for the\n // the consecutive unicodes.\n const newWidths = [];\n for (const [unicode, glyphIndex] of baseMapping\n .map(\n (charUnicode, index) => [\n charUnicode,\n index,\n ] /* collect unicode and glyph index */\n )\n .sort(\n ([unicode1], [unicode2]) =>\n unicode1 - unicode2 /* order by unicode only */\n )) {\n if (unicode === -1) {\n continue;\n }\n\n if (unicode === currentCode + 1) {\n currentArray.push(rescaledBaseWidths[glyphIndex]);\n currentCode += 1;\n } else {\n currentCode = unicode;\n currentArray = [rescaledBaseWidths[glyphIndex]];\n newWidths.push(unicode, currentArray);\n }\n }\n\n return newWidths;\n}\n\nfunction getXfaFontDict(name) {\n const widths = getXfaFontWidths(name);\n const dict = new Dict(null);\n dict.set(\"BaseFont\", Name.get(name));\n dict.set(\"Type\", Name.get(\"Font\"));\n dict.set(\"Subtype\", Name.get(\"CIDFontType2\"));\n dict.set(\"Encoding\", Name.get(\"Identity-H\"));\n dict.set(\"CIDToGIDMap\", Name.get(\"Identity\"));\n dict.set(\"W\", widths);\n dict.set(\"FirstChar\", widths[0]);\n dict.set(\n \"LastChar\",\n widths[widths.length - 2] + widths[widths.length - 1].length - 1\n );\n const descriptor = new Dict(null);\n dict.set(\"FontDescriptor\", descriptor);\n const systemInfo = new Dict(null);\n systemInfo.set(\"Ordering\", \"Identity\");\n systemInfo.set(\"Registry\", \"Adobe\");\n systemInfo.set(\"Supplement\", 0);\n dict.set(\"CIDSystemInfo\", systemInfo);\n\n return dict;\n}\n\nexport { getXfaFontDict, getXfaFontName };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Factors to rescale LiberationSans-Bold.ttf to have the same\n// metrics as calibrib.ttf.\nconst CalibriBoldFactors = [\n 1.3877, 1, 1, 1, 0.97801, 0.92482, 0.89552, 0.91133, 0.81988, 0.97566,\n 0.98152, 0.93548, 0.93548, 1.2798, 0.85284, 0.92794, 1, 0.96134, 1.54657,\n 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133,\n 0.91133, 0.91133, 0.82845, 0.82845, 0.85284, 0.85284, 0.85284, 0.75859,\n 0.92138, 0.83908, 0.7762, 0.73293, 0.87289, 0.73133, 0.7514, 0.81921, 0.87356,\n 0.95958, 0.59526, 0.75727, 0.69225, 1.04924, 0.9121, 0.86943, 0.79795,\n 0.88198, 0.77958, 0.70864, 0.81055, 0.90399, 0.88653, 0.96017, 0.82577,\n 0.77892, 0.78257, 0.97507, 1.54657, 0.97507, 0.85284, 0.89552, 0.90176,\n 0.88762, 0.8785, 0.75241, 0.8785, 0.90518, 0.95015, 0.77618, 0.8785, 0.88401,\n 0.91916, 0.86304, 0.88401, 0.91488, 0.8785, 0.8801, 0.8785, 0.8785, 0.91343,\n 0.7173, 1.04106, 0.8785, 0.85075, 0.95794, 0.82616, 0.85162, 0.79492, 0.88331,\n 1.69808, 0.88331, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133,\n 1.7801, 0.89552, 1.24487, 1.13254, 1.12401, 0.96839, 0.85284, 0.68787,\n 0.70645, 0.85592, 0.90747, 1.01466, 1.0088, 0.90323, 1, 1.07463, 1, 0.91056,\n 0.75806, 1.19118, 0.96839, 0.78864, 0.82845, 0.84133, 0.75859, 0.83908,\n 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.77539, 0.73293, 0.73133,\n 0.73133, 0.73133, 0.73133, 0.95958, 0.95958, 0.95958, 0.95958, 0.88506,\n 0.9121, 0.86943, 0.86943, 0.86943, 0.86943, 0.86943, 0.85284, 0.87508,\n 0.90399, 0.90399, 0.90399, 0.90399, 0.77892, 0.79795, 0.90807, 0.88762,\n 0.88762, 0.88762, 0.88762, 0.88762, 0.88762, 0.8715, 0.75241, 0.90518,\n 0.90518, 0.90518, 0.90518, 0.88401, 0.88401, 0.88401, 0.88401, 0.8785, 0.8785,\n 0.8801, 0.8801, 0.8801, 0.8801, 0.8801, 0.90747, 0.89049, 0.8785, 0.8785,\n 0.8785, 0.8785, 0.85162, 0.8785, 0.85162, 0.83908, 0.88762, 0.83908, 0.88762,\n 0.83908, 0.88762, 0.73293, 0.75241, 0.73293, 0.75241, 0.73293, 0.75241,\n 0.73293, 0.75241, 0.87289, 0.83016, 0.88506, 0.93125, 0.73133, 0.90518,\n 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518,\n 0.81921, 0.77618, 0.81921, 0.77618, 0.81921, 0.77618, 1, 1, 0.87356, 0.8785,\n 0.91075, 0.89608, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401,\n 0.95958, 0.88401, 0.95958, 0.88401, 0.76229, 0.90167, 0.59526, 0.91916, 1, 1,\n 0.86304, 0.69225, 0.88401, 1, 1, 0.70424, 0.79468, 0.91926, 0.88175, 0.70823,\n 0.94903, 0.9121, 0.8785, 1, 1, 0.9121, 0.8785, 0.87802, 0.88656, 0.8785,\n 0.86943, 0.8801, 0.86943, 0.8801, 0.86943, 0.8801, 0.87402, 0.89291, 0.77958,\n 0.91343, 1, 1, 0.77958, 0.91343, 0.70864, 0.7173, 0.70864, 0.7173, 0.70864,\n 0.7173, 0.70864, 0.7173, 1, 1, 0.81055, 0.75841, 0.81055, 1.06452, 0.90399,\n 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785,\n 0.90399, 0.8785, 0.96017, 0.95794, 0.77892, 0.85162, 0.77892, 0.78257,\n 0.79492, 0.78257, 0.79492, 0.78257, 0.79492, 0.9297, 0.56892, 0.83908,\n 0.88762, 0.77539, 0.8715, 0.87508, 0.89049, 1, 1, 0.81055, 1.04106, 1.20528,\n 1.20528, 1, 1.15543, 0.70674, 0.98387, 0.94721, 1.33431, 1.45894, 0.95161,\n 1.06303, 0.83908, 0.80352, 0.57184, 0.6965, 0.56289, 0.82001, 0.56029,\n 0.81235, 1.02988, 0.83908, 0.7762, 0.68156, 0.80367, 0.73133, 0.78257,\n 0.87356, 0.86943, 0.95958, 0.75727, 0.89019, 1.04924, 0.9121, 0.7648, 0.86943,\n 0.87356, 0.79795, 0.78275, 0.81055, 0.77892, 0.9762, 0.82577, 0.99819,\n 0.84896, 0.95958, 0.77892, 0.96108, 1.01407, 0.89049, 1.02988, 0.94211,\n 0.96108, 0.8936, 0.84021, 0.87842, 0.96399, 0.79109, 0.89049, 1.00813,\n 1.02988, 0.86077, 0.87445, 0.92099, 0.84723, 0.86513, 0.8801, 0.75638,\n 0.85714, 0.78216, 0.79586, 0.87965, 0.94211, 0.97747, 0.78287, 0.97926,\n 0.84971, 1.02988, 0.94211, 0.8801, 0.94211, 0.84971, 0.73133, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 0.90264, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 0.90518, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90548, 1, 1, 1, 1, 1, 1,\n 0.96017, 0.95794, 0.96017, 0.95794, 0.96017, 0.95794, 0.77892, 0.85162, 1, 1,\n 0.89552, 0.90527, 1, 0.90363, 0.92794, 0.92794, 0.92794, 0.92794, 0.87012,\n 0.87012, 0.87012, 0.89552, 0.89552, 1.42259, 0.71143, 1.06152, 1, 1, 1.03372,\n 1.03372, 0.97171, 1.4956, 2.2807, 0.93835, 0.83406, 0.91133, 0.84107, 0.91133,\n 1, 1, 1, 0.72021, 1, 1.23108, 0.83489, 0.88525, 0.88525, 0.81499, 0.90527,\n 1.81055, 0.90527, 1.81055, 1.31006, 1.53711, 0.94434, 1.08696, 1, 0.95018,\n 0.77192, 0.85284, 0.90747, 1.17534, 0.69825, 0.9716, 1.37077, 0.90747,\n 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572,\n 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.08004, 0.91027, 1, 1, 1,\n 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90727, 0.90727, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst CalibriBoldMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };\n\n// Factors to rescale LiberationSans-BoldItalic.ttf to have the same\n// metrics as calibriz.ttf.\nconst CalibriBoldItalicFactors = [\n 1.3877, 1, 1, 1, 0.97801, 0.92482, 0.89552, 0.91133, 0.81988, 0.97566,\n 0.98152, 0.93548, 0.93548, 1.2798, 0.85284, 0.92794, 1, 0.96134, 1.56239,\n 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133,\n 0.91133, 0.91133, 0.82845, 0.82845, 0.85284, 0.85284, 0.85284, 0.75859,\n 0.92138, 0.83908, 0.7762, 0.71805, 0.87289, 0.73133, 0.7514, 0.81921, 0.87356,\n 0.95958, 0.59526, 0.75727, 0.69225, 1.04924, 0.90872, 0.85938, 0.79795,\n 0.87068, 0.77958, 0.69766, 0.81055, 0.90399, 0.88653, 0.96068, 0.82577,\n 0.77892, 0.78257, 0.97507, 1.529, 0.97507, 0.85284, 0.89552, 0.90176, 0.94908,\n 0.86411, 0.74012, 0.86411, 0.88323, 0.95015, 0.86411, 0.86331, 0.88401,\n 0.91916, 0.86304, 0.88401, 0.9039, 0.86331, 0.86331, 0.86411, 0.86411,\n 0.90464, 0.70852, 1.04106, 0.86331, 0.84372, 0.95794, 0.82616, 0.84548,\n 0.79492, 0.88331, 1.69808, 0.88331, 0.85284, 0.97801, 0.89552, 0.91133,\n 0.89552, 0.91133, 1.7801, 0.89552, 1.24487, 1.13254, 1.19129, 0.96839,\n 0.85284, 0.68787, 0.70645, 0.85592, 0.90747, 1.01466, 1.0088, 0.90323, 1,\n 1.07463, 1, 0.91056, 0.75806, 1.19118, 0.96839, 0.78864, 0.82845, 0.84133,\n 0.75859, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.77539,\n 0.71805, 0.73133, 0.73133, 0.73133, 0.73133, 0.95958, 0.95958, 0.95958,\n 0.95958, 0.88506, 0.90872, 0.85938, 0.85938, 0.85938, 0.85938, 0.85938,\n 0.85284, 0.87068, 0.90399, 0.90399, 0.90399, 0.90399, 0.77892, 0.79795,\n 0.90807, 0.94908, 0.94908, 0.94908, 0.94908, 0.94908, 0.94908, 0.85887,\n 0.74012, 0.88323, 0.88323, 0.88323, 0.88323, 0.88401, 0.88401, 0.88401,\n 0.88401, 0.8785, 0.86331, 0.86331, 0.86331, 0.86331, 0.86331, 0.86331,\n 0.90747, 0.89049, 0.86331, 0.86331, 0.86331, 0.86331, 0.84548, 0.86411,\n 0.84548, 0.83908, 0.94908, 0.83908, 0.94908, 0.83908, 0.94908, 0.71805,\n 0.74012, 0.71805, 0.74012, 0.71805, 0.74012, 0.71805, 0.74012, 0.87289,\n 0.79538, 0.88506, 0.92726, 0.73133, 0.88323, 0.73133, 0.88323, 0.73133,\n 0.88323, 0.73133, 0.88323, 0.73133, 0.88323, 0.81921, 0.86411, 0.81921,\n 0.86411, 0.81921, 0.86411, 1, 1, 0.87356, 0.86331, 0.91075, 0.8777, 0.95958,\n 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958,\n 0.88401, 0.76467, 0.90167, 0.59526, 0.91916, 1, 1, 0.86304, 0.69225, 0.88401,\n 1, 1, 0.70424, 0.77312, 0.91926, 0.88175, 0.70823, 0.94903, 0.90872, 0.86331,\n 1, 1, 0.90872, 0.86331, 0.86906, 0.88116, 0.86331, 0.85938, 0.86331, 0.85938,\n 0.86331, 0.85938, 0.86331, 0.87402, 0.86549, 0.77958, 0.90464, 1, 1, 0.77958,\n 0.90464, 0.69766, 0.70852, 0.69766, 0.70852, 0.69766, 0.70852, 0.69766,\n 0.70852, 1, 1, 0.81055, 0.75841, 0.81055, 1.06452, 0.90399, 0.86331, 0.90399,\n 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399,\n 0.86331, 0.96068, 0.95794, 0.77892, 0.84548, 0.77892, 0.78257, 0.79492,\n 0.78257, 0.79492, 0.78257, 0.79492, 0.9297, 0.56892, 0.83908, 0.94908,\n 0.77539, 0.85887, 0.87068, 0.89049, 1, 1, 0.81055, 1.04106, 1.20528, 1.20528,\n 1, 1.15543, 0.70088, 0.98387, 0.94721, 1.33431, 1.45894, 0.95161, 1.48387,\n 0.83908, 0.80352, 0.57118, 0.6965, 0.56347, 0.79179, 0.55853, 0.80346,\n 1.02988, 0.83908, 0.7762, 0.67174, 0.86036, 0.73133, 0.78257, 0.87356,\n 0.86441, 0.95958, 0.75727, 0.89019, 1.04924, 0.90872, 0.74889, 0.85938,\n 0.87891, 0.79795, 0.7957, 0.81055, 0.77892, 0.97447, 0.82577, 0.97466,\n 0.87179, 0.95958, 0.77892, 0.94252, 0.95612, 0.8753, 1.02988, 0.92733,\n 0.94252, 0.87411, 0.84021, 0.8728, 0.95612, 0.74081, 0.8753, 1.02189, 1.02988,\n 0.84814, 0.87445, 0.91822, 0.84723, 0.85668, 0.86331, 0.81344, 0.87581,\n 0.76422, 0.82046, 0.96057, 0.92733, 0.99375, 0.78022, 0.95452, 0.86015,\n 1.02988, 0.92733, 0.86331, 0.92733, 0.86015, 0.73133, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 0.90631, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.88323, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.85174, 1, 1, 1, 1, 1, 1, 0.96068, 0.95794,\n 0.96068, 0.95794, 0.96068, 0.95794, 0.77892, 0.84548, 1, 1, 0.89552, 0.90527,\n 1, 0.90363, 0.92794, 0.92794, 0.92794, 0.89807, 0.87012, 0.87012, 0.87012,\n 0.89552, 0.89552, 1.42259, 0.71094, 1.06152, 1, 1, 1.03372, 1.03372, 0.97171,\n 1.4956, 2.2807, 0.92972, 0.83406, 0.91133, 0.83326, 0.91133, 1, 1, 1, 0.72021,\n 1, 1.23108, 0.83489, 0.88525, 0.88525, 0.81499, 0.90616, 1.81055, 0.90527,\n 1.81055, 1.3107, 1.53711, 0.94434, 1.08696, 1, 0.95018, 0.77192, 0.85284,\n 0.90747, 1.17534, 0.69825, 0.9716, 1.37077, 0.90747, 0.90747, 0.85356,\n 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572,\n 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.08004, 0.91027, 1, 1, 1, 0.99862, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90727, 0.90727, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst CalibriBoldItalicMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };\n\n// Factors to rescale LiberationSans-Italic.ttf to have the same\n// metrics as calibrii.ttf.\nconst CalibriItalicFactors = [\n 1.3877, 1, 1, 1, 1.17223, 1.1293, 0.89552, 0.91133, 0.80395, 1.02269, 1.15601,\n 0.91056, 0.91056, 1.2798, 0.85284, 0.89807, 1, 0.90861, 1.39543, 0.91133,\n 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133,\n 0.91133, 0.96309, 0.96309, 0.85284, 0.85284, 0.85284, 0.83319, 0.88071,\n 0.8675, 0.81552, 0.72346, 0.85193, 0.73206, 0.7522, 0.81105, 0.86275, 0.90685,\n 0.6377, 0.77892, 0.75593, 1.02638, 0.89249, 0.84118, 0.77452, 0.85374,\n 0.75186, 0.67789, 0.79776, 0.88844, 0.85066, 0.94309, 0.77818, 0.7306,\n 0.76659, 1.10369, 1.38313, 1.10369, 1.06139, 0.89552, 0.8739, 0.9245, 0.9245,\n 0.83203, 0.9245, 0.85865, 1.09842, 0.9245, 0.9245, 1.03297, 1.07692, 0.90918,\n 1.03297, 0.94959, 0.9245, 0.92274, 0.9245, 0.9245, 1.02933, 0.77832, 1.20562,\n 0.9245, 0.8916, 0.98986, 0.86621, 0.89453, 0.79004, 0.94152, 1.77256, 0.94152,\n 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.91729, 0.89552,\n 1.17889, 1.13254, 1.16359, 0.92098, 0.85284, 0.68787, 0.71353, 0.84737,\n 0.90747, 1.0088, 1.0044, 0.87683, 1, 1.09091, 1, 0.92229, 0.739, 1.15642,\n 0.92098, 0.76288, 0.80504, 0.80972, 0.75859, 0.8675, 0.8675, 0.8675, 0.8675,\n 0.8675, 0.8675, 0.76318, 0.72346, 0.73206, 0.73206, 0.73206, 0.73206, 0.90685,\n 0.90685, 0.90685, 0.90685, 0.86477, 0.89249, 0.84118, 0.84118, 0.84118,\n 0.84118, 0.84118, 0.85284, 0.84557, 0.88844, 0.88844, 0.88844, 0.88844,\n 0.7306, 0.77452, 0.86331, 0.9245, 0.9245, 0.9245, 0.9245, 0.9245, 0.9245,\n 0.84843, 0.83203, 0.85865, 0.85865, 0.85865, 0.85865, 0.82601, 0.82601,\n 0.82601, 0.82601, 0.94469, 0.9245, 0.92274, 0.92274, 0.92274, 0.92274,\n 0.92274, 0.90747, 0.86651, 0.9245, 0.9245, 0.9245, 0.9245, 0.89453, 0.9245,\n 0.89453, 0.8675, 0.9245, 0.8675, 0.9245, 0.8675, 0.9245, 0.72346, 0.83203,\n 0.72346, 0.83203, 0.72346, 0.83203, 0.72346, 0.83203, 0.85193, 0.8875,\n 0.86477, 0.99034, 0.73206, 0.85865, 0.73206, 0.85865, 0.73206, 0.85865,\n 0.73206, 0.85865, 0.73206, 0.85865, 0.81105, 0.9245, 0.81105, 0.9245, 0.81105,\n 0.9245, 1, 1, 0.86275, 0.9245, 0.90872, 0.93591, 0.90685, 0.82601, 0.90685,\n 0.82601, 0.90685, 0.82601, 0.90685, 1.03297, 0.90685, 0.82601, 0.77896,\n 1.05611, 0.6377, 1.07692, 1, 1, 0.90918, 0.75593, 1.03297, 1, 1, 0.76032,\n 0.9375, 0.98156, 0.93407, 0.77261, 1.11429, 0.89249, 0.9245, 1, 1, 0.89249,\n 0.9245, 0.92534, 0.86698, 0.9245, 0.84118, 0.92274, 0.84118, 0.92274, 0.84118,\n 0.92274, 0.8667, 0.86291, 0.75186, 1.02933, 1, 1, 0.75186, 1.02933, 0.67789,\n 0.77832, 0.67789, 0.77832, 0.67789, 0.77832, 0.67789, 0.77832, 1, 1, 0.79776,\n 0.97655, 0.79776, 1.23023, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245,\n 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.94309, 0.98986, 0.7306,\n 0.89453, 0.7306, 0.76659, 0.79004, 0.76659, 0.79004, 0.76659, 0.79004,\n 1.09231, 0.54873, 0.8675, 0.9245, 0.76318, 0.84843, 0.84557, 0.86651, 1, 1,\n 0.79776, 1.20562, 1.18622, 1.18622, 1, 1.1437, 0.67009, 0.96334, 0.93695,\n 1.35191, 1.40909, 0.95161, 1.48387, 0.8675, 0.90861, 0.6192, 0.7363, 0.64824,\n 0.82411, 0.56321, 0.85696, 1.23516, 0.8675, 0.81552, 0.7286, 0.84134, 0.73206,\n 0.76659, 0.86275, 0.84369, 0.90685, 0.77892, 0.85871, 1.02638, 0.89249,\n 0.75828, 0.84118, 0.85984, 0.77452, 0.76466, 0.79776, 0.7306, 0.90782,\n 0.77818, 0.903, 0.87291, 0.90685, 0.7306, 0.99058, 1.03667, 0.94635, 1.23516,\n 0.9849, 0.99058, 0.92393, 0.8916, 0.942, 1.03667, 0.75026, 0.94635, 1.0297,\n 1.23516, 0.90918, 0.94048, 0.98217, 0.89746, 0.84153, 0.92274, 0.82507,\n 0.88832, 0.84438, 0.88178, 1.03525, 0.9849, 1.00225, 0.78086, 0.97248,\n 0.89404, 1.23516, 0.9849, 0.92274, 0.9849, 0.89404, 0.73206, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 0.89693, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.85865,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90933, 1, 1, 1, 1, 1, 1, 0.94309,\n 0.98986, 0.94309, 0.98986, 0.94309, 0.98986, 0.7306, 0.89453, 1, 1, 0.89552,\n 0.90527, 1, 0.90186, 1.12308, 1.12308, 1.12308, 1.12308, 1.2566, 1.2566,\n 1.2566, 0.89552, 0.89552, 1.42259, 0.68994, 1.03809, 1, 1, 1.0176, 1.0176,\n 1.11523, 1.4956, 2.01462, 0.97858, 0.82616, 0.91133, 0.83437, 0.91133, 1, 1,\n 1, 0.70508, 1, 1.23108, 0.79801, 0.84426, 0.84426, 0.774, 0.90572, 1.81055,\n 0.90749, 1.81055, 1.28809, 1.55469, 0.94434, 1.07806, 1, 0.97094, 0.7589,\n 0.85284, 0.90747, 1.19658, 0.69825, 0.97622, 1.33512, 0.90747, 0.90747,\n 0.85284, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8,\n 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.0336, 0.91027, 1, 1, 1,\n 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05859, 1.05859, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst CalibriItalicMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };\n\n// Factors to rescale LiberationSans-Regular.ttf to have the same\n// metrics as calibri.ttf.\nconst CalibriRegularFactors = [\n 1.3877, 1, 1, 1, 1.17223, 1.1293, 0.89552, 0.91133, 0.80395, 1.02269, 1.15601,\n 0.91056, 0.91056, 1.2798, 0.85284, 0.89807, 1, 0.90861, 1.39016, 0.91133,\n 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133,\n 0.91133, 0.96309, 0.96309, 0.85284, 0.85284, 0.85284, 0.83319, 0.88071,\n 0.8675, 0.81552, 0.73834, 0.85193, 0.73206, 0.7522, 0.81105, 0.86275, 0.90685,\n 0.6377, 0.77892, 0.75593, 1.02638, 0.89385, 0.85122, 0.77452, 0.86503,\n 0.75186, 0.68887, 0.79776, 0.88844, 0.85066, 0.94258, 0.77818, 0.7306,\n 0.76659, 1.10369, 1.39016, 1.10369, 1.06139, 0.89552, 0.8739, 0.86128,\n 0.94469, 0.8457, 0.94469, 0.89464, 1.09842, 0.84636, 0.94469, 1.03297,\n 1.07692, 0.90918, 1.03297, 0.95897, 0.94469, 0.9482, 0.94469, 0.94469,\n 1.04692, 0.78223, 1.20562, 0.94469, 0.90332, 0.98986, 0.86621, 0.90527,\n 0.79004, 0.94152, 1.77256, 0.94152, 0.85284, 0.97801, 0.89552, 0.91133,\n 0.89552, 0.91133, 1.91729, 0.89552, 1.17889, 1.13254, 1.08707, 0.92098,\n 0.85284, 0.68787, 0.71353, 0.84737, 0.90747, 1.0088, 1.0044, 0.87683, 1,\n 1.09091, 1, 0.92229, 0.739, 1.15642, 0.92098, 0.76288, 0.80504, 0.80972,\n 0.75859, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.76318, 0.73834,\n 0.73206, 0.73206, 0.73206, 0.73206, 0.90685, 0.90685, 0.90685, 0.90685,\n 0.86477, 0.89385, 0.85122, 0.85122, 0.85122, 0.85122, 0.85122, 0.85284,\n 0.85311, 0.88844, 0.88844, 0.88844, 0.88844, 0.7306, 0.77452, 0.86331,\n 0.86128, 0.86128, 0.86128, 0.86128, 0.86128, 0.86128, 0.8693, 0.8457, 0.89464,\n 0.89464, 0.89464, 0.89464, 0.82601, 0.82601, 0.82601, 0.82601, 0.94469,\n 0.94469, 0.9482, 0.9482, 0.9482, 0.9482, 0.9482, 0.90747, 0.86651, 0.94469,\n 0.94469, 0.94469, 0.94469, 0.90527, 0.94469, 0.90527, 0.8675, 0.86128, 0.8675,\n 0.86128, 0.8675, 0.86128, 0.73834, 0.8457, 0.73834, 0.8457, 0.73834, 0.8457,\n 0.73834, 0.8457, 0.85193, 0.92454, 0.86477, 0.9921, 0.73206, 0.89464, 0.73206,\n 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.81105,\n 0.84636, 0.81105, 0.84636, 0.81105, 0.84636, 1, 1, 0.86275, 0.94469, 0.90872,\n 0.95786, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685,\n 1.03297, 0.90685, 0.82601, 0.77741, 1.05611, 0.6377, 1.07692, 1, 1, 0.90918,\n 0.75593, 1.03297, 1, 1, 0.76032, 0.90452, 0.98156, 1.11842, 0.77261, 1.11429,\n 0.89385, 0.94469, 1, 1, 0.89385, 0.94469, 0.95877, 0.86901, 0.94469, 0.85122,\n 0.9482, 0.85122, 0.9482, 0.85122, 0.9482, 0.8667, 0.90016, 0.75186, 1.04692,\n 1, 1, 0.75186, 1.04692, 0.68887, 0.78223, 0.68887, 0.78223, 0.68887, 0.78223,\n 0.68887, 0.78223, 1, 1, 0.79776, 0.92188, 0.79776, 1.23023, 0.88844, 0.94469,\n 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469,\n 0.88844, 0.94469, 0.94258, 0.98986, 0.7306, 0.90527, 0.7306, 0.76659, 0.79004,\n 0.76659, 0.79004, 0.76659, 0.79004, 1.09231, 0.54873, 0.8675, 0.86128,\n 0.76318, 0.8693, 0.85311, 0.86651, 1, 1, 0.79776, 1.20562, 1.18622, 1.18622,\n 1, 1.1437, 0.67742, 0.96334, 0.93695, 1.35191, 1.40909, 0.95161, 1.48387,\n 0.86686, 0.90861, 0.62267, 0.74359, 0.65649, 0.85498, 0.56963, 0.88254,\n 1.23516, 0.8675, 0.81552, 0.75443, 0.84503, 0.73206, 0.76659, 0.86275,\n 0.85122, 0.90685, 0.77892, 0.85746, 1.02638, 0.89385, 0.75657, 0.85122,\n 0.86275, 0.77452, 0.74171, 0.79776, 0.7306, 0.95165, 0.77818, 0.89772,\n 0.88831, 0.90685, 0.7306, 0.98142, 1.02191, 0.96576, 1.23516, 0.99018,\n 0.98142, 0.9236, 0.89258, 0.94035, 1.02191, 0.78848, 0.96576, 0.9561, 1.23516,\n 0.90918, 0.92578, 0.95424, 0.89746, 0.83969, 0.9482, 0.80113, 0.89442,\n 0.85208, 0.86155, 0.98022, 0.99018, 1.00452, 0.81209, 0.99247, 0.89181,\n 1.23516, 0.99018, 0.9482, 0.99018, 0.89181, 0.73206, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 0.88844, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89464, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.96766, 1, 1, 1, 1, 1, 1, 0.94258, 0.98986,\n 0.94258, 0.98986, 0.94258, 0.98986, 0.7306, 0.90527, 1, 1, 0.89552, 0.90527,\n 1, 0.90186, 1.12308, 1.12308, 1.12308, 1.12308, 1.2566, 1.2566, 1.2566,\n 0.89552, 0.89552, 1.42259, 0.69043, 1.03809, 1, 1, 1.0176, 1.0176, 1.11523,\n 1.4956, 2.01462, 0.99331, 0.82616, 0.91133, 0.84286, 0.91133, 1, 1, 1,\n 0.70508, 1, 1.23108, 0.79801, 0.84426, 0.84426, 0.774, 0.90527, 1.81055,\n 0.90527, 1.81055, 1.28809, 1.55469, 0.94434, 1.07806, 1, 0.97094, 0.7589,\n 0.85284, 0.90747, 1.19658, 0.69825, 0.97622, 1.33512, 0.90747, 0.90747,\n 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8,\n 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.0336, 0.91027, 1, 1, 1,\n 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05859, 1.05859, 1, 1, 1,\n 1.07185, 0.99413, 0.96334, 1.08065, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst CalibriRegularMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };\n\nexport {\n CalibriBoldFactors,\n CalibriBoldItalicFactors,\n CalibriBoldItalicMetrics,\n CalibriBoldMetrics,\n CalibriItalicFactors,\n CalibriItalicMetrics,\n CalibriRegularFactors,\n CalibriRegularMetrics,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Factors to rescale LiberationSans-Bold.ttf to have the same\n// metrics as NimbusSans-Bold.otf.\nconst HelveticaBoldFactors = [\n 0.76116, 1, 1, 1.0006, 0.99998, 0.99974, 0.99973, 0.99973, 0.99982, 0.99977,\n 1.00087, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99998, 1, 1.00003, 1.00003, 1.00003, 1.00026, 0.9999,\n 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977,\n 1.0006, 0.99973, 0.99977, 1.00026, 0.99999, 0.99977, 1.00022, 1.00001,\n 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001,\n 1.00001, 1.00026, 0.99998, 1.0006, 0.99998, 1.00003, 0.99973, 0.99998,\n 0.99973, 1.00026, 0.99973, 1.00026, 0.99973, 0.99998, 1.00026, 1.00026,\n 1.0006, 1.0006, 0.99973, 1.0006, 0.99982, 1.00026, 1.00026, 1.00026, 1.00026,\n 0.99959, 0.99973, 0.99998, 1.00026, 0.99973, 1.00022, 0.99973, 0.99973, 1,\n 0.99959, 1.00077, 0.99959, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973,\n 0.99973, 1.00077, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003,\n 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.99973, 1.0006,\n 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 0.99977,\n 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 1, 0.99977, 1.00001, 1.00001,\n 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022,\n 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977,\n 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99982, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.00026, 1.00026, 1.00026, 1.00026,\n 1.00026, 1.00026, 1.00026, 1.06409, 1.00026, 1.00026, 1.00026, 1.00026,\n 1.00026, 0.99973, 1.00026, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 1.03374, 0.99977, 1.00026, 1.00001, 0.99973,\n 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973,\n 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,\n 0.99977, 1.00026, 0.99977, 1.00026, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006,\n 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.00042, 0.99973, 0.99973, 1.0006,\n 0.99977, 0.99973, 0.99973, 1.00026, 1.0006, 1.00026, 1.0006, 1.00026, 1.03828,\n 1.00026, 0.99999, 1.00026, 1.0006, 0.99977, 1.00026, 0.99977, 1.00026,\n 0.99977, 1.00026, 0.9993, 0.9998, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,\n 1.00022, 1.00026, 1, 1.00016, 0.99977, 0.99959, 0.99977, 0.99959, 0.99977,\n 0.99959, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,\n 0.99973, 1.00026, 0.99998, 1.00026, 0.8121, 1.00026, 0.99998, 0.99977,\n 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977,\n 1.00026, 0.99977, 1.00026, 1.00016, 1.00022, 1.00001, 0.99973, 1.00001,\n 1.00026, 1, 1.00026, 1, 1.00026, 1, 1.0006, 0.99973, 0.99977, 0.99973, 1,\n 0.99982, 1.00022, 1.00026, 1.00001, 0.99973, 1.00026, 0.99998, 0.99998,\n 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,\n 0.99998, 1.00034, 0.99977, 1, 0.99997, 1.00026, 1.00078, 1.00036, 0.99973,\n 1.00013, 1.0006, 0.99977, 0.99977, 0.99988, 0.85148, 1.00001, 1.00026,\n 0.99977, 1.00022, 1.0006, 0.99977, 1.00001, 0.99999, 0.99977, 1.00069,\n 1.00022, 0.99977, 1.00001, 0.99984, 1.00026, 1.00001, 1.00024, 1.00001,\n 0.9999, 1, 1.0006, 1.00001, 1.00041, 0.99962, 1.00026, 1.0006, 0.99995,\n 1.00041, 0.99942, 0.99973, 0.99927, 1.00082, 0.99902, 1.00026, 1.00087,\n 1.0006, 1.00069, 0.99973, 0.99867, 0.99973, 0.9993, 1.00026, 1.00049, 1.00056,\n 1, 0.99988, 0.99935, 0.99995, 0.99954, 1.00055, 0.99945, 1.00032, 1.0006,\n 0.99995, 1.00026, 0.99995, 1.00032, 1.00001, 1.00008, 0.99971, 1.00019,\n 0.9994, 1.00001, 1.0006, 1.00044, 0.99973, 1.00023, 1.00047, 1, 0.99942,\n 0.99561, 0.99989, 1.00035, 0.99977, 1.00035, 0.99977, 1.00019, 0.99944,\n 1.00001, 1.00021, 0.99926, 1.00035, 1.00035, 0.99942, 1.00048, 0.99999,\n 0.99977, 1.00022, 1.00035, 1.00001, 0.99977, 1.00026, 0.99989, 1.00057,\n 1.00001, 0.99936, 1.00052, 1.00012, 0.99996, 1.00043, 1, 1.00035, 0.9994,\n 0.99976, 1.00035, 0.99973, 1.00052, 1.00041, 1.00119, 1.00037, 0.99973,\n 1.00002, 0.99986, 1.00041, 1.00041, 0.99902, 0.9996, 1.00034, 0.99999,\n 1.00026, 0.99999, 1.00026, 0.99973, 1.00052, 0.99973, 1, 0.99973, 1.00041,\n 1.00075, 0.9994, 1.0003, 0.99999, 1, 1.00041, 0.99955, 1, 0.99915, 0.99973,\n 0.99973, 1.00026, 1.00119, 0.99955, 0.99973, 1.0006, 0.99911, 1.0006, 1.00026,\n 0.99972, 1.00026, 0.99902, 1.00041, 0.99973, 0.99999, 1, 1, 1.00038, 1.0005,\n 1.00016, 1.00022, 1.00016, 1.00022, 1.00016, 1.00022, 1.00001, 0.99973, 1, 1,\n 0.99973, 1, 1, 0.99955, 1.0006, 1.0006, 1.0006, 1.0006, 1, 1, 1, 0.99973,\n 0.99973, 0.99972, 1, 1, 1.00106, 0.99999, 0.99998, 0.99998, 0.99999, 0.99998,\n 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973, 0.99971, 1.00047, 1.00023, 1,\n 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1, 1, 1, 1, 1, 1, 1,\n 0.99972, 1, 1.20985, 1.39713, 1.00003, 1.00031, 1.00015, 1, 0.99561, 1.00027,\n 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999,\n 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625,\n 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.99972,\n 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1,\n 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998,\n 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst HelveticaBoldMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-BoldItalic.ttf to have the same\n// metrics as NimbusSans-BoldItalic.otf.\nconst HelveticaBoldItalicFactors = [\n 0.76116, 1, 1, 1.0006, 0.99998, 0.99974, 0.99973, 0.99973, 0.99982, 0.99977,\n 1.00087, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99998, 1, 1.00003, 1.00003, 1.00003, 1.00026, 0.9999,\n 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977,\n 1.0006, 0.99973, 0.99977, 1.00026, 0.99999, 0.99977, 1.00022, 1.00001,\n 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001,\n 1.00001, 1.00026, 0.99998, 1.0006, 0.99998, 1.00003, 0.99973, 0.99998,\n 0.99973, 1.00026, 0.99973, 1.00026, 0.99973, 0.99998, 1.00026, 1.00026,\n 1.0006, 1.0006, 0.99973, 1.0006, 0.99982, 1.00026, 1.00026, 1.00026, 1.00026,\n 0.99959, 0.99973, 0.99998, 1.00026, 0.99973, 1.00022, 0.99973, 0.99973, 1,\n 0.99959, 1.00077, 0.99959, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973,\n 0.99973, 1.00077, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003,\n 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.99973, 1.0006,\n 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 0.99977,\n 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 1, 0.99977, 1.00001, 1.00001,\n 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022,\n 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977,\n 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99982, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.00026, 1.00026, 1.00026, 1.00026,\n 1.00026, 1.00026, 1.00026, 1.06409, 1.00026, 1.00026, 1.00026, 1.00026,\n 1.00026, 0.99973, 1.00026, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 1.0044, 0.99977, 1.00026, 1.00001, 0.99973,\n 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973,\n 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,\n 0.99977, 1.00026, 0.99977, 1.00026, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006,\n 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99971, 0.99973, 0.99973, 1.0006,\n 0.99977, 0.99973, 0.99973, 1.00026, 1.0006, 1.00026, 1.0006, 1.00026, 1.01011,\n 1.00026, 0.99999, 1.00026, 1.0006, 0.99977, 1.00026, 0.99977, 1.00026,\n 0.99977, 1.00026, 0.9993, 0.9998, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,\n 1.00022, 1.00026, 1, 1.00016, 0.99977, 0.99959, 0.99977, 0.99959, 0.99977,\n 0.99959, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,\n 0.99973, 1.00026, 0.99998, 1.00026, 0.8121, 1.00026, 0.99998, 0.99977,\n 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977,\n 1.00026, 0.99977, 1.00026, 1.00016, 1.00022, 1.00001, 0.99973, 1.00001,\n 1.00026, 1, 1.00026, 1, 1.00026, 1, 1.0006, 0.99973, 0.99977, 0.99973, 1,\n 0.99982, 1.00022, 1.00026, 1.00001, 0.99973, 1.00026, 0.99998, 0.99998,\n 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,\n 0.99998, 0.99998, 0.99977, 1, 1, 1.00026, 0.99969, 0.99972, 0.99981, 0.9998,\n 1.0006, 0.99977, 0.99977, 1.00022, 0.91155, 1.00001, 1.00026, 0.99977,\n 1.00022, 1.0006, 0.99977, 1.00001, 0.99999, 0.99977, 0.99966, 1.00022,\n 1.00032, 1.00001, 0.99944, 1.00026, 1.00001, 0.99968, 1.00001, 1.00047, 1,\n 1.0006, 1.00001, 0.99981, 1.00101, 1.00026, 1.0006, 0.99948, 0.99981, 1.00064,\n 0.99973, 0.99942, 1.00101, 1.00061, 1.00026, 1.00069, 1.0006, 1.00014,\n 0.99973, 1.01322, 0.99973, 1.00065, 1.00026, 1.00012, 0.99923, 1, 1.00064,\n 1.00076, 0.99948, 1.00055, 1.00063, 1.00007, 0.99943, 1.0006, 0.99948,\n 1.00026, 0.99948, 0.99943, 1.00001, 1.00001, 1.00029, 1.00038, 1.00035,\n 1.00001, 1.0006, 1.0006, 0.99973, 0.99978, 1.00001, 1.00057, 0.99989, 0.99967,\n 0.99964, 0.99967, 0.99977, 0.99999, 0.99977, 1.00038, 0.99977, 1.00001,\n 0.99973, 1.00066, 0.99967, 0.99967, 1.00041, 0.99998, 0.99999, 0.99977,\n 1.00022, 0.99967, 1.00001, 0.99977, 1.00026, 0.99964, 1.00031, 1.00001,\n 0.99999, 0.99999, 1, 1.00023, 1, 1, 0.99999, 1.00035, 1.00001, 0.99999,\n 0.99973, 0.99977, 0.99999, 1.00058, 0.99973, 0.99973, 0.99955, 0.9995,\n 1.00026, 1.00026, 1.00032, 0.99989, 1.00034, 0.99999, 1.00026, 1.00026,\n 1.00026, 0.99973, 0.45998, 0.99973, 1.00026, 0.99973, 1.00001, 0.99999,\n 0.99982, 0.99994, 0.99996, 1, 1.00042, 1.00044, 1.00029, 1.00023, 0.99973,\n 0.99973, 1.00026, 0.99949, 1.00002, 0.99973, 1.0006, 1.0006, 1.0006, 0.99975,\n 1.00026, 1.00026, 1.00032, 0.98685, 0.99973, 1.00026, 1, 1, 0.99966, 1.00044,\n 1.00016, 1.00022, 1.00016, 1.00022, 1.00016, 1.00022, 1.00001, 0.99973, 1, 1,\n 0.99973, 1, 1, 0.99955, 1.0006, 1.0006, 1.0006, 1.0006, 1, 1, 1, 0.99973,\n 0.99973, 0.99972, 1, 1, 1.00106, 0.99999, 0.99998, 0.99998, 0.99999, 0.99998,\n 1.66475, 1, 0.99973, 0.99973, 1, 0.99973, 0.99971, 0.99978, 1, 1, 0.99991,\n 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1.00098, 1, 1, 1, 1.00049, 1, 1,\n 0.99972, 1, 1.20985, 1.39713, 1.00003, 1.00031, 1.00015, 1, 0.99561, 1.00027,\n 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999,\n 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625,\n 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.99972,\n 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1,\n 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998,\n 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst HelveticaBoldItalicMetrics = { lineHeight: 1.35, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-Italic.ttf to have the same\n// metrics as NimbusSans-Italic.otf.\nconst HelveticaItalicFactors = [\n 0.76116, 1, 1, 1.0006, 1.0006, 1.00006, 0.99973, 0.99973, 0.99982, 1.00001,\n 1.00043, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 1.0006, 1, 1.00003, 1.00003, 1.00003, 0.99973, 0.99987,\n 1.00001, 1.00001, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977,\n 1.0006, 1, 1.00001, 0.99973, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022,\n 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001,\n 1.00026, 1.0006, 1.0006, 1.0006, 0.99949, 0.99973, 0.99998, 0.99973, 0.99973,\n 1, 0.99973, 0.99973, 1.0006, 0.99973, 0.99973, 0.99924, 0.99924, 1, 0.99924,\n 0.99999, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.0006, 0.99973, 1,\n 0.99977, 1, 1, 1, 1.00005, 1.0009, 1.00005, 1.00003, 0.99998, 0.99973,\n 0.99973, 0.99973, 0.99973, 1.0009, 0.99973, 0.99998, 1.00025, 0.99968,\n 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1,\n 0.9998, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002,\n 1.00026, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1, 0.99977,\n 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977,\n 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022,\n 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 1, 0.99973, 0.99973,\n 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99973, 1.06409, 1.00026, 0.99973, 0.99973,\n 0.99973, 0.99973, 1, 0.99973, 1, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,\n 0.99973, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1.0288,\n 0.99977, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973,\n 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973,\n 1.00022, 0.99973, 1.00022, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99924, 1.0006,\n 1.0006, 0.99946, 1.00034, 1, 0.99924, 1.00001, 1, 1, 0.99973, 0.99924,\n 0.99973, 0.99924, 0.99973, 1.06311, 0.99973, 1.00024, 0.99973, 0.99924,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.00041, 0.9998,\n 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1, 1.00016,\n 0.99977, 0.99998, 0.99977, 0.99998, 0.99977, 0.99998, 1.00001, 1, 1.00001, 1,\n 1.00001, 1, 1.00001, 1, 1.00026, 1.0006, 1.00026, 0.89547, 1.00026, 1.0006,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 0.99973, 1.00016, 0.99977, 1.00001, 1, 1.00001,\n 1.00026, 1, 1.00026, 1, 1.00026, 1, 0.99924, 0.99973, 1.00001, 0.99973, 1,\n 0.99982, 1.00022, 1.00026, 1.00001, 1, 1.00026, 1.0006, 0.99998, 0.99998,\n 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,\n 0.99998, 1.00001, 1, 1.00054, 0.99977, 1.00084, 1.00007, 0.99973, 1.00013,\n 0.99924, 1.00001, 1.00001, 0.99945, 0.91221, 1.00001, 1.00026, 0.99977,\n 1.00022, 1.0006, 1.00001, 1.00001, 0.99999, 0.99977, 0.99933, 1.00022,\n 1.00054, 1.00001, 1.00065, 1.00026, 1.00001, 1.0001, 1.00001, 1.00052, 1,\n 1.0006, 1.00001, 0.99945, 0.99897, 0.99968, 0.99924, 1.00036, 0.99945,\n 0.99949, 1, 1.0006, 0.99897, 0.99918, 0.99968, 0.99911, 0.99924, 1, 0.99962,\n 1.01487, 1, 1.0005, 0.99973, 1.00012, 1.00043, 1, 0.99995, 0.99994, 1.00036,\n 0.99947, 1.00019, 1.00063, 1.00025, 0.99924, 1.00036, 0.99973, 1.00036,\n 1.00025, 1.00001, 1.00001, 1.00027, 1.0001, 1.00068, 1.00001, 1.0006, 1.0006,\n 1, 1.00008, 0.99957, 0.99972, 0.9994, 0.99954, 0.99975, 1.00051, 1.00001,\n 1.00019, 1.00001, 1.0001, 0.99986, 1.00001, 1.00001, 1.00038, 0.99954,\n 0.99954, 0.9994, 1.00066, 0.99999, 0.99977, 1.00022, 1.00054, 1.00001,\n 0.99977, 1.00026, 0.99975, 1.0001, 1.00001, 0.99993, 0.9995, 0.99955, 1.00016,\n 0.99978, 0.99974, 1.00019, 1.00022, 0.99955, 1.00053, 0.99973, 1.00089,\n 1.00005, 0.99967, 1.00048, 0.99973, 1.00002, 1.00034, 0.99973, 0.99973,\n 0.99964, 1.00006, 1.00066, 0.99947, 0.99973, 0.98894, 0.99973, 1, 0.44898, 1,\n 0.99946, 1, 1.00039, 1.00082, 0.99991, 0.99991, 0.99985, 1.00022, 1.00023,\n 1.00061, 1.00006, 0.99966, 0.99973, 0.99973, 0.99973, 1.00019, 1.0008, 1,\n 0.99924, 0.99924, 0.99924, 0.99983, 1.00044, 0.99973, 0.99964, 0.98332, 1,\n 0.99973, 1, 1, 0.99962, 0.99895, 1.00016, 0.99977, 1.00016, 0.99977, 1.00016,\n 0.99977, 1.00001, 1, 1, 1, 0.99973, 1, 1, 0.99955, 0.99924, 0.99924, 0.99924,\n 0.99924, 0.99998, 0.99998, 0.99998, 0.99973, 0.99973, 0.99972, 1, 1, 1.00267,\n 0.99999, 0.99998, 0.99998, 1, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023,\n 0.99973, 1.00423, 0.99925, 0.99999, 1, 0.99991, 0.99984, 1.00002, 1.00002,\n 1.00002, 1.00002, 1.00049, 1, 1.00245, 1, 1, 1, 1, 0.96329, 1, 1.20985,\n 1.39713, 1.00003, 0.8254, 1.00015, 1, 1.00035, 1.00027, 1.00031, 1.00031,\n 1.00003, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861,\n 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.95317, 0.99999, 0.99999,\n 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962,\n 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst HelveticaItalicMetrics = { lineHeight: 1.35, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-Regular.ttf to have the same\n// metrics as NimbusSans-Regular.otf.\nconst HelveticaRegularFactors = [\n 0.76116, 1, 1, 1.0006, 1.0006, 1.00006, 0.99973, 0.99973, 0.99982, 1.00001,\n 1.00043, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 1.0006, 1, 1.00003, 1.00003, 1.00003, 0.99973, 0.99987,\n 1.00001, 1.00001, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977,\n 1.0006, 1, 1.00001, 0.99973, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022,\n 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001,\n 1.00026, 1.0006, 1.0006, 1.0006, 0.99949, 0.99973, 0.99998, 0.99973, 0.99973,\n 1, 0.99973, 0.99973, 1.0006, 0.99973, 0.99973, 0.99924, 0.99924, 1, 0.99924,\n 0.99999, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.0006, 0.99973, 1,\n 0.99977, 1, 1, 1, 1.00005, 1.0009, 1.00005, 1.00003, 0.99998, 0.99973,\n 0.99973, 0.99973, 0.99973, 1.0009, 0.99973, 0.99998, 1.00025, 0.99968,\n 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1,\n 0.9998, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002,\n 1.00026, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1, 0.99977,\n 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977,\n 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022,\n 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 1, 0.99973, 0.99973,\n 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99973, 1.06409, 1.00026, 0.99973, 0.99973,\n 0.99973, 0.99973, 1, 0.99973, 1, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,\n 0.99973, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1.04596,\n 0.99977, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973,\n 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973,\n 1.00022, 0.99973, 1.00022, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99924, 1.0006,\n 1.0006, 1.00019, 1.00034, 1, 0.99924, 1.00001, 1, 1, 0.99973, 0.99924,\n 0.99973, 0.99924, 0.99973, 1.02572, 0.99973, 1.00005, 0.99973, 0.99924,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99999, 0.9998,\n 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1, 1.00016,\n 0.99977, 0.99998, 0.99977, 0.99998, 0.99977, 0.99998, 1.00001, 1, 1.00001, 1,\n 1.00001, 1, 1.00001, 1, 1.00026, 1.0006, 1.00026, 0.84533, 1.00026, 1.0006,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 0.99973, 1.00016, 0.99977, 1.00001, 1, 1.00001,\n 1.00026, 1, 1.00026, 1, 1.00026, 1, 0.99924, 0.99973, 1.00001, 0.99973, 1,\n 0.99982, 1.00022, 1.00026, 1.00001, 1, 1.00026, 1.0006, 0.99998, 0.99998,\n 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,\n 0.99998, 0.99928, 1, 0.99977, 1.00013, 1.00055, 0.99947, 0.99945, 0.99941,\n 0.99924, 1.00001, 1.00001, 1.0004, 0.91621, 1.00001, 1.00026, 0.99977,\n 1.00022, 1.0006, 1.00001, 1.00005, 0.99999, 0.99977, 1.00015, 1.00022,\n 0.99977, 1.00001, 0.99973, 1.00026, 1.00001, 1.00019, 1.00001, 0.99946, 1,\n 1.0006, 1.00001, 0.99978, 1.00045, 0.99973, 0.99924, 1.00023, 0.99978,\n 0.99966, 1, 1.00065, 1.00045, 1.00019, 0.99973, 0.99973, 0.99924, 1, 1,\n 0.96499, 1, 1.00055, 0.99973, 1.00008, 1.00027, 1, 0.9997, 0.99995, 1.00023,\n 0.99933, 1.00019, 1.00015, 1.00031, 0.99924, 1.00023, 0.99973, 1.00023,\n 1.00031, 1.00001, 0.99928, 1.00029, 1.00092, 1.00035, 1.00001, 1.0006, 1.0006,\n 1, 0.99988, 0.99975, 1, 1.00082, 0.99561, 0.9996, 1.00035, 1.00001, 0.99962,\n 1.00001, 1.00092, 0.99964, 1.00001, 0.99963, 0.99999, 1.00035, 1.00035,\n 1.00082, 0.99962, 0.99999, 0.99977, 1.00022, 1.00035, 1.00001, 0.99977,\n 1.00026, 0.9996, 0.99967, 1.00001, 1.00034, 1.00074, 1.00054, 1.00053,\n 1.00063, 0.99971, 0.99962, 1.00035, 0.99975, 0.99977, 0.99973, 1.00043,\n 0.99953, 1.0007, 0.99915, 0.99973, 1.00008, 0.99892, 1.00073, 1.00073,\n 1.00114, 0.99915, 1.00073, 0.99955, 0.99973, 1.00092, 0.99973, 1, 0.99998, 1,\n 1.0003, 1, 1.00043, 1.00001, 0.99969, 1.0003, 1, 1.00035, 1.00001, 0.9995, 1,\n 1.00092, 0.99973, 0.99973, 0.99973, 1.0007, 0.9995, 1, 0.99924, 1.0006,\n 0.99924, 0.99972, 1.00062, 0.99973, 1.00114, 1.00073, 1, 0.99955, 1, 1,\n 1.00047, 0.99968, 1.00016, 0.99977, 1.00016, 0.99977, 1.00016, 0.99977,\n 1.00001, 1, 1, 1, 0.99973, 1, 1, 0.99955, 0.99924, 0.99924, 0.99924, 0.99924,\n 0.99998, 0.99998, 0.99998, 0.99973, 0.99973, 0.99972, 1, 1, 1.00267, 0.99999,\n 0.99998, 0.99998, 1, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973,\n 0.99971, 0.99925, 1.00023, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002,\n 1.00002, 1, 1, 1, 1, 1, 1, 1, 0.96329, 1, 1.20985, 1.39713, 1.00003, 0.8254,\n 1.00015, 1, 1.00035, 1.00027, 1.00031, 1.00031, 0.99915, 1.00031, 1.00031,\n 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026,\n 1.00026, 1.00026, 0.95317, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1,\n 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst HelveticaRegularMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\nexport {\n HelveticaBoldFactors,\n HelveticaBoldItalicFactors,\n HelveticaBoldItalicMetrics,\n HelveticaBoldMetrics,\n HelveticaItalicFactors,\n HelveticaItalicMetrics,\n HelveticaRegularFactors,\n HelveticaRegularMetrics,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Widths of glyphs in LiberationSans-Bold.ttf.\nconst LiberationSansBoldWidths = [\n 365, 0, 333, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278,\n 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333,\n 584, 584, 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556,\n 722, 611, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667,\n 611, 333, 278, 333, 584, 556, 333, 556, 611, 556, 611, 556, 333, 611, 611,\n 278, 278, 556, 278, 889, 611, 611, 611, 611, 389, 556, 333, 611, 556, 778,\n 556, 556, 500, 389, 280, 389, 584, 333, 556, 556, 556, 556, 280, 556, 333,\n 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 556, 278, 333,\n 333, 365, 556, 834, 834, 834, 611, 722, 722, 722, 722, 722, 722, 1000, 722,\n 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778,\n 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556,\n 889, 556, 556, 556, 556, 556, 278, 278, 278, 278, 611, 611, 611, 611, 611,\n 611, 611, 549, 611, 611, 611, 611, 611, 556, 611, 556, 722, 556, 722, 556,\n 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 719, 722, 611, 667,\n 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 611, 778, 611, 778, 611,\n 778, 611, 722, 611, 722, 611, 278, 278, 278, 278, 278, 278, 278, 278, 278,\n 278, 785, 556, 556, 278, 722, 556, 556, 611, 278, 611, 278, 611, 385, 611,\n 479, 611, 278, 722, 611, 722, 611, 722, 611, 708, 723, 611, 778, 611, 778,\n 611, 778, 611, 1000, 944, 722, 389, 722, 389, 722, 389, 667, 556, 667, 556,\n 667, 556, 667, 556, 611, 333, 611, 479, 611, 333, 722, 611, 722, 611, 722,\n 611, 722, 611, 722, 611, 722, 611, 944, 778, 667, 556, 667, 611, 500, 611,\n 500, 611, 500, 278, 556, 722, 556, 1000, 889, 778, 611, 667, 556, 611, 333,\n 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 465, 722, 333, 853, 906,\n 474, 825, 927, 838, 278, 722, 722, 601, 719, 667, 611, 722, 778, 278, 722,\n 667, 833, 722, 644, 778, 722, 667, 600, 611, 667, 821, 667, 809, 802, 278,\n 667, 615, 451, 611, 278, 582, 615, 610, 556, 606, 475, 460, 611, 541, 278,\n 558, 556, 612, 556, 445, 611, 766, 619, 520, 684, 446, 582, 715, 576, 753,\n 845, 278, 582, 611, 582, 845, 667, 669, 885, 567, 711, 667, 278, 276, 556,\n 1094, 1062, 875, 610, 722, 622, 719, 722, 719, 722, 567, 712, 667, 904, 626,\n 719, 719, 610, 702, 833, 722, 778, 719, 667, 722, 611, 622, 854, 667, 730,\n 703, 1005, 1019, 870, 979, 719, 711, 1031, 719, 556, 618, 615, 417, 635, 556,\n 709, 497, 615, 615, 500, 635, 740, 604, 611, 604, 611, 556, 490, 556, 875,\n 556, 615, 581, 833, 844, 729, 854, 615, 552, 854, 583, 556, 556, 611, 417,\n 552, 556, 278, 281, 278, 969, 906, 611, 500, 615, 556, 604, 778, 611, 487,\n 447, 944, 778, 944, 778, 944, 778, 667, 556, 333, 333, 556, 1000, 1000, 552,\n 278, 278, 278, 278, 500, 500, 500, 556, 556, 350, 1000, 1000, 240, 479, 333,\n 333, 604, 333, 167, 396, 556, 556, 1094, 556, 885, 489, 1115, 1000, 768, 600,\n 834, 834, 834, 834, 1000, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713,\n 584, 549, 713, 979, 722, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604,\n 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604,\n 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750,\n 611, 611, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 333, 333, 333,\n 333, 333, 333, 333, 333,\n];\n\n// Char code of glyphs in LiberationSans-Bold.ttf.\nconst LiberationSansBoldMapping = [\n -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,\n 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,\n 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,\n 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,\n 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167,\n 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,\n 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,\n 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,\n 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,\n 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,\n 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,\n 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,\n 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,\n 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,\n 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,\n 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,\n 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,\n 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,\n 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,\n 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538,\n 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904,\n 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,\n 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937,\n 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,\n 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967,\n 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030,\n 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,\n 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,\n 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,\n 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,\n 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,\n 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108,\n 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139,\n 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211,\n 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226,\n 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359,\n 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,\n 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735,\n 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474,\n 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555,\n 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568,\n 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600,\n 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650,\n 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792,\n 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n\n// Widths of glyphs in LiberationSans-BoldItalic.ttf.\nconst LiberationSansBoldItalicWidths = [\n 365, 0, 333, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278,\n 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333,\n 584, 584, 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556,\n 722, 611, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667,\n 611, 333, 278, 333, 584, 556, 333, 556, 611, 556, 611, 556, 333, 611, 611,\n 278, 278, 556, 278, 889, 611, 611, 611, 611, 389, 556, 333, 611, 556, 778,\n 556, 556, 500, 389, 280, 389, 584, 333, 556, 556, 556, 556, 280, 556, 333,\n 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 556, 278, 333,\n 333, 365, 556, 834, 834, 834, 611, 722, 722, 722, 722, 722, 722, 1000, 722,\n 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778,\n 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556,\n 889, 556, 556, 556, 556, 556, 278, 278, 278, 278, 611, 611, 611, 611, 611,\n 611, 611, 549, 611, 611, 611, 611, 611, 556, 611, 556, 722, 556, 722, 556,\n 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 740, 722, 611, 667,\n 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 611, 778, 611, 778, 611,\n 778, 611, 722, 611, 722, 611, 278, 278, 278, 278, 278, 278, 278, 278, 278,\n 278, 782, 556, 556, 278, 722, 556, 556, 611, 278, 611, 278, 611, 396, 611,\n 479, 611, 278, 722, 611, 722, 611, 722, 611, 708, 723, 611, 778, 611, 778,\n 611, 778, 611, 1000, 944, 722, 389, 722, 389, 722, 389, 667, 556, 667, 556,\n 667, 556, 667, 556, 611, 333, 611, 479, 611, 333, 722, 611, 722, 611, 722,\n 611, 722, 611, 722, 611, 722, 611, 944, 778, 667, 556, 667, 611, 500, 611,\n 500, 611, 500, 278, 556, 722, 556, 1000, 889, 778, 611, 667, 556, 611, 333,\n 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 722, 333, 854, 906,\n 473, 844, 930, 847, 278, 722, 722, 610, 671, 667, 611, 722, 778, 278, 722,\n 667, 833, 722, 657, 778, 718, 667, 590, 611, 667, 822, 667, 829, 781, 278,\n 667, 620, 479, 611, 278, 591, 620, 621, 556, 610, 479, 492, 611, 558, 278,\n 566, 556, 603, 556, 450, 611, 712, 605, 532, 664, 409, 591, 704, 578, 773,\n 834, 278, 591, 611, 591, 834, 667, 667, 886, 614, 719, 667, 278, 278, 556,\n 1094, 1042, 854, 622, 719, 677, 719, 722, 708, 722, 614, 722, 667, 927, 643,\n 719, 719, 615, 687, 833, 722, 778, 719, 667, 722, 611, 677, 781, 667, 729,\n 708, 979, 989, 854, 1000, 708, 719, 1042, 729, 556, 619, 604, 534, 618, 556,\n 736, 510, 611, 611, 507, 622, 740, 604, 611, 611, 611, 556, 889, 556, 885,\n 556, 646, 583, 889, 935, 707, 854, 594, 552, 865, 589, 556, 556, 611, 469,\n 563, 556, 278, 278, 278, 969, 906, 611, 507, 619, 556, 611, 778, 611, 575,\n 467, 944, 778, 944, 778, 944, 778, 667, 556, 333, 333, 556, 1000, 1000, 552,\n 278, 278, 278, 278, 500, 500, 500, 556, 556, 350, 1000, 1000, 240, 479, 333,\n 333, 604, 333, 167, 396, 556, 556, 1104, 556, 885, 516, 1146, 1000, 768, 600,\n 834, 834, 834, 834, 999, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713,\n 584, 549, 713, 979, 722, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604,\n 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604,\n 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750,\n 611, 611, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 333, 333, 333,\n 333, 333, 333, 333, 333,\n];\n\n// Char code of glyphs in LiberationSans-BoldItalic.ttf.\nconst LiberationSansBoldItalicMapping = [\n -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,\n 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,\n 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,\n 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,\n 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167,\n 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,\n 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,\n 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,\n 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,\n 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,\n 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,\n 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,\n 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,\n 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,\n 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,\n 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,\n 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,\n 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,\n 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,\n 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538,\n 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904,\n 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,\n 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937,\n 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,\n 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967,\n 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030,\n 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,\n 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,\n 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,\n 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,\n 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,\n 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108,\n 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139,\n 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211,\n 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226,\n 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359,\n 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,\n 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735,\n 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474,\n 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555,\n 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568,\n 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600,\n 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650,\n 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792,\n 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n\n// Widths of glyphs in LiberationSans-Italic.ttf.\nconst LiberationSansItalicWidths = [\n 365, 0, 333, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278,\n 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278,\n 584, 584, 584, 556, 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500,\n 667, 556, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667,\n 611, 278, 278, 278, 469, 556, 333, 556, 556, 500, 556, 556, 278, 556, 556,\n 222, 222, 500, 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722,\n 500, 500, 500, 334, 260, 334, 584, 333, 556, 556, 556, 556, 260, 556, 333,\n 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 537, 278, 333,\n 333, 365, 556, 834, 834, 834, 611, 667, 667, 667, 667, 667, 667, 1000, 722,\n 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778,\n 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556,\n 889, 500, 556, 556, 556, 556, 278, 278, 278, 278, 556, 556, 556, 556, 556,\n 556, 556, 549, 611, 556, 556, 556, 556, 500, 556, 500, 667, 556, 667, 556,\n 667, 556, 722, 500, 722, 500, 722, 500, 722, 500, 722, 625, 722, 556, 667,\n 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 556, 778, 556, 778, 556,\n 778, 556, 722, 556, 722, 556, 278, 278, 278, 278, 278, 278, 278, 222, 278,\n 278, 733, 444, 500, 222, 667, 500, 500, 556, 222, 556, 222, 556, 281, 556,\n 400, 556, 222, 722, 556, 722, 556, 722, 556, 615, 723, 556, 778, 556, 778,\n 556, 778, 556, 1000, 944, 722, 333, 722, 333, 722, 333, 667, 500, 667, 500,\n 667, 500, 667, 500, 611, 278, 611, 354, 611, 278, 722, 556, 722, 556, 722,\n 556, 722, 556, 722, 556, 722, 556, 944, 722, 667, 500, 667, 611, 500, 611,\n 500, 611, 500, 222, 556, 667, 556, 1000, 889, 778, 611, 667, 500, 611, 278,\n 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 667, 278, 789, 846,\n 389, 794, 865, 775, 222, 667, 667, 570, 671, 667, 611, 722, 778, 278, 667,\n 667, 833, 722, 648, 778, 725, 667, 600, 611, 667, 837, 667, 831, 761, 278,\n 667, 570, 439, 555, 222, 550, 570, 571, 500, 556, 439, 463, 555, 542, 222,\n 500, 492, 548, 500, 447, 556, 670, 573, 486, 603, 374, 550, 652, 546, 728,\n 779, 222, 550, 556, 550, 779, 667, 667, 843, 544, 708, 667, 278, 278, 500,\n 1066, 982, 844, 589, 715, 639, 724, 667, 651, 667, 544, 704, 667, 917, 614,\n 715, 715, 589, 686, 833, 722, 778, 725, 667, 722, 611, 639, 795, 667, 727,\n 673, 920, 923, 805, 886, 651, 694, 1022, 682, 556, 562, 522, 493, 553, 556,\n 688, 465, 556, 556, 472, 564, 686, 550, 556, 556, 556, 500, 833, 500, 835,\n 500, 572, 518, 830, 851, 621, 736, 526, 492, 752, 534, 556, 556, 556, 378,\n 496, 500, 222, 222, 222, 910, 828, 556, 472, 565, 500, 556, 778, 556, 492,\n 339, 944, 722, 944, 722, 944, 722, 667, 500, 333, 333, 556, 1000, 1000, 552,\n 222, 222, 222, 222, 333, 333, 333, 556, 556, 350, 1000, 1000, 188, 354, 333,\n 333, 500, 333, 167, 365, 556, 556, 1094, 556, 885, 323, 1083, 1000, 768, 600,\n 834, 834, 834, 834, 1000, 500, 998, 500, 1000, 500, 500, 494, 612, 823, 713,\n 584, 549, 713, 979, 719, 274, 549, 549, 584, 549, 549, 604, 584, 604, 604,\n 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604,\n 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750,\n 500, 500, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 294, 294, 324,\n 324, 316, 328, 398, 285,\n];\n\n// Char code of glyphs in LiberationSans-Italic.ttf.\nconst LiberationSansItalicMapping = [\n -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,\n 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,\n 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,\n 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,\n 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167,\n 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,\n 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,\n 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,\n 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,\n 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,\n 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,\n 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,\n 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,\n 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,\n 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,\n 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,\n 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,\n 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,\n 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,\n 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538,\n 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904,\n 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,\n 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937,\n 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,\n 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967,\n 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030,\n 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,\n 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,\n 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,\n 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,\n 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,\n 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108,\n 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139,\n 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211,\n 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226,\n 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359,\n 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,\n 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735,\n 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474,\n 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555,\n 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568,\n 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600,\n 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650,\n 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792,\n 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n\n// Widths of glyphs in LiberationSans-Regular.ttf.\nconst LiberationSansRegularWidths = [\n 365, 0, 333, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278,\n 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278,\n 584, 584, 584, 556, 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500,\n 667, 556, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667,\n 611, 278, 278, 278, 469, 556, 333, 556, 556, 500, 556, 556, 278, 556, 556,\n 222, 222, 500, 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722,\n 500, 500, 500, 334, 260, 334, 584, 333, 556, 556, 556, 556, 260, 556, 333,\n 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 537, 278, 333,\n 333, 365, 556, 834, 834, 834, 611, 667, 667, 667, 667, 667, 667, 1000, 722,\n 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778,\n 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556,\n 889, 500, 556, 556, 556, 556, 278, 278, 278, 278, 556, 556, 556, 556, 556,\n 556, 556, 549, 611, 556, 556, 556, 556, 500, 556, 500, 667, 556, 667, 556,\n 667, 556, 722, 500, 722, 500, 722, 500, 722, 500, 722, 615, 722, 556, 667,\n 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 556, 778, 556, 778, 556,\n 778, 556, 722, 556, 722, 556, 278, 278, 278, 278, 278, 278, 278, 222, 278,\n 278, 735, 444, 500, 222, 667, 500, 500, 556, 222, 556, 222, 556, 292, 556,\n 334, 556, 222, 722, 556, 722, 556, 722, 556, 604, 723, 556, 778, 556, 778,\n 556, 778, 556, 1000, 944, 722, 333, 722, 333, 722, 333, 667, 500, 667, 500,\n 667, 500, 667, 500, 611, 278, 611, 375, 611, 278, 722, 556, 722, 556, 722,\n 556, 722, 556, 722, 556, 722, 556, 944, 722, 667, 500, 667, 611, 500, 611,\n 500, 611, 500, 222, 556, 667, 556, 1000, 889, 778, 611, 667, 500, 611, 278,\n 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 667, 278, 784, 838,\n 384, 774, 855, 752, 222, 667, 667, 551, 668, 667, 611, 722, 778, 278, 667,\n 668, 833, 722, 650, 778, 722, 667, 618, 611, 667, 798, 667, 835, 748, 278,\n 667, 578, 446, 556, 222, 547, 578, 575, 500, 557, 446, 441, 556, 556, 222,\n 500, 500, 576, 500, 448, 556, 690, 569, 482, 617, 395, 547, 648, 525, 713,\n 781, 222, 547, 556, 547, 781, 667, 667, 865, 542, 719, 667, 278, 278, 500,\n 1057, 1010, 854, 583, 722, 635, 719, 667, 656, 667, 542, 677, 667, 923, 604,\n 719, 719, 583, 656, 833, 722, 778, 719, 667, 722, 611, 635, 760, 667, 740,\n 667, 917, 938, 792, 885, 656, 719, 1010, 722, 556, 573, 531, 365, 583, 556,\n 669, 458, 559, 559, 438, 583, 688, 552, 556, 542, 556, 500, 458, 500, 823,\n 500, 573, 521, 802, 823, 625, 719, 521, 510, 750, 542, 556, 556, 556, 365,\n 510, 500, 222, 278, 222, 906, 812, 556, 438, 559, 500, 552, 778, 556, 489,\n 411, 944, 722, 944, 722, 944, 722, 667, 500, 333, 333, 556, 1000, 1000, 552,\n 222, 222, 222, 222, 333, 333, 333, 556, 556, 350, 1000, 1000, 188, 354, 333,\n 333, 500, 333, 167, 365, 556, 556, 1094, 556, 885, 323, 1073, 1000, 768, 600,\n 834, 834, 834, 834, 1000, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713,\n 584, 549, 713, 979, 719, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604,\n 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604,\n 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750,\n 500, 500, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 294, 294, 324,\n 324, 316, 328, 398, 285,\n];\n\n// Char code of glyphs in LiberationSans-Regular.ttf.\nconst LiberationSansRegularMapping = [\n -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,\n 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,\n 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,\n 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,\n 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167,\n 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,\n 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,\n 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,\n 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,\n 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,\n 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,\n 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,\n 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,\n 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,\n 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,\n 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,\n 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,\n 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,\n 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,\n 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538,\n 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904,\n 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,\n 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937,\n 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,\n 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967,\n 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030,\n 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,\n 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,\n 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,\n 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,\n 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,\n 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108,\n 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139,\n 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211,\n 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226,\n 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359,\n 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,\n 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735,\n 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474,\n 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555,\n 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568,\n 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600,\n 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650,\n 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792,\n 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n\nexport {\n LiberationSansBoldItalicMapping,\n LiberationSansBoldItalicWidths,\n LiberationSansBoldMapping,\n LiberationSansBoldWidths,\n LiberationSansItalicMapping,\n LiberationSansItalicWidths,\n LiberationSansRegularMapping,\n LiberationSansRegularWidths,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Factors to rescale LiberationSans-Bold.ttf to have the same\n// metrics as MyriadPro-Bold.otf.\nconst MyriadProBoldFactors = [\n 1.36898, 1, 1, 0.72706, 0.80479, 0.83734, 0.98894, 0.99793, 0.9897, 0.93884,\n 0.86209, 0.94292, 0.94292, 1.16661, 1.02058, 0.93582, 0.96694, 0.93582,\n 1.19137, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793,\n 0.99793, 0.99793, 0.99793, 0.78076, 0.78076, 1.02058, 1.02058, 1.02058,\n 0.72851, 0.78966, 0.90838, 0.83637, 0.82391, 0.96376, 0.80061, 0.86275,\n 0.8768, 0.95407, 1.0258, 0.73901, 0.85022, 0.83655, 1.0156, 0.95546, 0.92179,\n 0.87107, 0.92179, 0.82114, 0.8096, 0.89713, 0.94438, 0.95353, 0.94083,\n 0.91905, 0.90406, 0.9446, 0.94292, 1.18777, 0.94292, 1.02058, 0.89903,\n 0.90088, 0.94938, 0.97898, 0.81093, 0.97571, 0.94938, 1.024, 0.9577, 0.95933,\n 0.98621, 1.0474, 0.97455, 0.98981, 0.9672, 0.95933, 0.9446, 0.97898, 0.97407,\n 0.97646, 0.78036, 1.10208, 0.95442, 0.95298, 0.97579, 0.9332, 0.94039, 0.938,\n 0.80687, 1.01149, 0.80687, 1.02058, 0.80479, 0.99793, 0.99793, 0.99793,\n 0.99793, 1.01149, 1.00872, 0.90088, 0.91882, 1.0213, 0.8361, 1.02058, 0.62295,\n 0.54324, 0.89022, 1.08595, 1, 1, 0.90088, 1, 0.97455, 0.93582, 0.90088, 1,\n 1.05686, 0.8361, 0.99642, 0.99642, 0.99642, 0.72851, 0.90838, 0.90838,\n 0.90838, 0.90838, 0.90838, 0.90838, 0.868, 0.82391, 0.80061, 0.80061, 0.80061,\n 0.80061, 1.0258, 1.0258, 1.0258, 1.0258, 0.97484, 0.95546, 0.92179, 0.92179,\n 0.92179, 0.92179, 0.92179, 1.02058, 0.92179, 0.94438, 0.94438, 0.94438,\n 0.94438, 0.90406, 0.86958, 0.98225, 0.94938, 0.94938, 0.94938, 0.94938,\n 0.94938, 0.94938, 0.9031, 0.81093, 0.94938, 0.94938, 0.94938, 0.94938,\n 0.98621, 0.98621, 0.98621, 0.98621, 0.93969, 0.95933, 0.9446, 0.9446, 0.9446,\n 0.9446, 0.9446, 1.08595, 0.9446, 0.95442, 0.95442, 0.95442, 0.95442, 0.94039,\n 0.97898, 0.94039, 0.90838, 0.94938, 0.90838, 0.94938, 0.90838, 0.94938,\n 0.82391, 0.81093, 0.82391, 0.81093, 0.82391, 0.81093, 0.82391, 0.81093,\n 0.96376, 0.84313, 0.97484, 0.97571, 0.80061, 0.94938, 0.80061, 0.94938,\n 0.80061, 0.94938, 0.80061, 0.94938, 0.80061, 0.94938, 0.8768, 0.9577, 0.8768,\n 0.9577, 0.8768, 0.9577, 1, 1, 0.95407, 0.95933, 0.97069, 0.95933, 1.0258,\n 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621,\n 0.887, 1.01591, 0.73901, 1.0474, 1, 1, 0.97455, 0.83655, 0.98981, 1, 1,\n 0.83655, 0.73977, 0.83655, 0.73903, 0.84638, 1.033, 0.95546, 0.95933, 1, 1,\n 0.95546, 0.95933, 0.8271, 0.95417, 0.95933, 0.92179, 0.9446, 0.92179, 0.9446,\n 0.92179, 0.9446, 0.936, 0.91964, 0.82114, 0.97646, 1, 1, 0.82114, 0.97646,\n 0.8096, 0.78036, 0.8096, 0.78036, 1, 1, 0.8096, 0.78036, 1, 1, 0.89713,\n 0.77452, 0.89713, 1.10208, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438,\n 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94083,\n 0.97579, 0.90406, 0.94039, 0.90406, 0.9446, 0.938, 0.9446, 0.938, 0.9446,\n 0.938, 1, 0.99793, 0.90838, 0.94938, 0.868, 0.9031, 0.92179, 0.9446, 1, 1,\n 0.89713, 1.10208, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088,\n 0.90088, 0.90088, 0.90088, 0.90989, 0.9358, 0.91945, 0.83181, 0.75261,\n 0.87992, 0.82976, 0.96034, 0.83689, 0.97268, 1.0078, 0.90838, 0.83637, 0.8019,\n 0.90157, 0.80061, 0.9446, 0.95407, 0.92436, 1.0258, 0.85022, 0.97153, 1.0156,\n 0.95546, 0.89192, 0.92179, 0.92361, 0.87107, 0.96318, 0.89713, 0.93704,\n 0.95638, 0.91905, 0.91709, 0.92796, 1.0258, 0.93704, 0.94836, 1.0373, 0.95933,\n 1.0078, 0.95871, 0.94836, 0.96174, 0.92601, 0.9498, 0.98607, 0.95776, 0.95933,\n 1.05453, 1.0078, 0.98275, 0.9314, 0.95617, 0.91701, 1.05993, 0.9446, 0.78367,\n 0.9553, 1, 0.86832, 1.0128, 0.95871, 0.99394, 0.87548, 0.96361, 0.86774,\n 1.0078, 0.95871, 0.9446, 0.95871, 0.86774, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.94083, 0.97579, 0.94083, 0.97579, 0.94083,\n 0.97579, 0.90406, 0.94039, 0.96694, 1, 0.89903, 1, 1, 1, 0.93582, 0.93582,\n 0.93582, 1, 0.908, 0.908, 0.918, 0.94219, 0.94219, 0.96544, 1, 1.285, 1, 1,\n 0.81079, 0.81079, 1, 1, 0.74854, 1, 1, 1, 1, 0.99793, 1, 1, 1, 0.65, 1,\n 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.17173, 1, 0.80535, 0.76169,\n 1.02058, 1.0732, 1.05486, 1, 1, 1.30692, 1.08595, 1.08595, 1, 1.08595,\n 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.16161, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst MyriadProBoldMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-BoldItalic.ttf to have the same\n// metrics as MyriadPro-BoldIt.otf.\nconst MyriadProBoldItalicFactors = [\n 1.36898, 1, 1, 0.66227, 0.80779, 0.81625, 0.97276, 0.97276, 0.97733, 0.92222,\n 0.83266, 0.94292, 0.94292, 1.16148, 1.02058, 0.93582, 0.96694, 0.93582,\n 1.17337, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276,\n 0.97276, 0.97276, 0.97276, 0.78076, 0.78076, 1.02058, 1.02058, 1.02058,\n 0.71541, 0.76813, 0.85576, 0.80591, 0.80729, 0.94299, 0.77512, 0.83655,\n 0.86523, 0.92222, 0.98621, 0.71743, 0.81698, 0.79726, 0.98558, 0.92222,\n 0.90637, 0.83809, 0.90637, 0.80729, 0.76463, 0.86275, 0.90699, 0.91605,\n 0.9154, 0.85308, 0.85458, 0.90531, 0.94292, 1.21296, 0.94292, 1.02058,\n 0.89903, 1.18616, 0.99613, 0.91677, 0.78216, 0.91677, 0.90083, 0.98796,\n 0.9135, 0.92168, 0.95381, 0.98981, 0.95298, 0.95381, 0.93459, 0.92168,\n 0.91513, 0.92004, 0.91677, 0.95077, 0.748, 1.04502, 0.91677, 0.92061, 0.94236,\n 0.89544, 0.89364, 0.9, 0.80687, 0.8578, 0.80687, 1.02058, 0.80779, 0.97276,\n 0.97276, 0.97276, 0.97276, 0.8578, 0.99973, 1.18616, 0.91339, 1.08074,\n 0.82891, 1.02058, 0.55509, 0.71526, 0.89022, 1.08595, 1, 1, 1.18616, 1,\n 0.96736, 0.93582, 1.18616, 1, 1.04864, 0.82711, 0.99043, 0.99043, 0.99043,\n 0.71541, 0.85576, 0.85576, 0.85576, 0.85576, 0.85576, 0.85576, 0.845, 0.80729,\n 0.77512, 0.77512, 0.77512, 0.77512, 0.98621, 0.98621, 0.98621, 0.98621,\n 0.95961, 0.92222, 0.90637, 0.90637, 0.90637, 0.90637, 0.90637, 1.02058,\n 0.90251, 0.90699, 0.90699, 0.90699, 0.90699, 0.85458, 0.83659, 0.94951,\n 0.99613, 0.99613, 0.99613, 0.99613, 0.99613, 0.99613, 0.85811, 0.78216,\n 0.90083, 0.90083, 0.90083, 0.90083, 0.95381, 0.95381, 0.95381, 0.95381,\n 0.9135, 0.92168, 0.91513, 0.91513, 0.91513, 0.91513, 0.91513, 1.08595,\n 0.91677, 0.91677, 0.91677, 0.91677, 0.91677, 0.89364, 0.92332, 0.89364,\n 0.85576, 0.99613, 0.85576, 0.99613, 0.85576, 0.99613, 0.80729, 0.78216,\n 0.80729, 0.78216, 0.80729, 0.78216, 0.80729, 0.78216, 0.94299, 0.76783,\n 0.95961, 0.91677, 0.77512, 0.90083, 0.77512, 0.90083, 0.77512, 0.90083,\n 0.77512, 0.90083, 0.77512, 0.90083, 0.86523, 0.9135, 0.86523, 0.9135, 0.86523,\n 0.9135, 1, 1, 0.92222, 0.92168, 0.92222, 0.92168, 0.98621, 0.95381, 0.98621,\n 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.86036,\n 0.97096, 0.71743, 0.98981, 1, 1, 0.95298, 0.79726, 0.95381, 1, 1, 0.79726,\n 0.6894, 0.79726, 0.74321, 0.81691, 1.0006, 0.92222, 0.92168, 1, 1, 0.92222,\n 0.92168, 0.79464, 0.92098, 0.92168, 0.90637, 0.91513, 0.90637, 0.91513,\n 0.90637, 0.91513, 0.909, 0.87514, 0.80729, 0.95077, 1, 1, 0.80729, 0.95077,\n 0.76463, 0.748, 0.76463, 0.748, 1, 1, 0.76463, 0.748, 1, 1, 0.86275, 0.72651,\n 0.86275, 1.04502, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677,\n 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.9154, 0.94236,\n 0.85458, 0.89364, 0.85458, 0.90531, 0.9, 0.90531, 0.9, 0.90531, 0.9, 1,\n 0.97276, 0.85576, 0.99613, 0.845, 0.85811, 0.90251, 0.91677, 1, 1, 0.86275,\n 1.04502, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616,\n 1.18616, 1.18616, 1.00899, 1.30628, 0.85576, 0.80178, 0.66862, 0.7927,\n 0.69323, 0.88127, 0.72459, 0.89711, 0.95381, 0.85576, 0.80591, 0.7805,\n 0.94729, 0.77512, 0.90531, 0.92222, 0.90637, 0.98621, 0.81698, 0.92655,\n 0.98558, 0.92222, 0.85359, 0.90637, 0.90976, 0.83809, 0.94523, 0.86275,\n 0.83509, 0.93157, 0.85308, 0.83392, 0.92346, 0.98621, 0.83509, 0.92886,\n 0.91324, 0.92168, 0.95381, 0.90646, 0.92886, 0.90557, 0.86847, 0.90276,\n 0.91324, 0.86842, 0.92168, 0.99531, 0.95381, 0.9224, 0.85408, 0.92699,\n 0.86847, 1.0051, 0.91513, 0.80487, 0.93481, 1, 0.88159, 1.05214, 0.90646,\n 0.97355, 0.81539, 0.89398, 0.85923, 0.95381, 0.90646, 0.91513, 0.90646,\n 0.85923, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 0.9154, 0.94236, 0.9154, 0.94236, 0.9154, 0.94236, 0.85458, 0.89364, 0.96694,\n 1, 0.89903, 1, 1, 1, 0.91782, 0.91782, 0.91782, 1, 0.896, 0.896, 0.896,\n 0.9332, 0.9332, 0.95973, 1, 1.26, 1, 1, 0.80479, 0.80178, 1, 1, 0.85633, 1, 1,\n 1, 1, 0.97276, 1, 1, 1, 0.698, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1.14542, 1, 0.79199, 0.78694, 1.02058, 1.03493, 1.05486, 1, 1, 1.23026,\n 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.20006, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst MyriadProBoldItalicMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-Italic.ttf to have the same\n// metrics as MyriadPro-It.otf.\nconst MyriadProItalicFactors = [\n 1.36898, 1, 1, 0.65507, 0.84943, 0.85639, 0.88465, 0.88465, 0.86936, 0.88307,\n 0.86948, 0.85283, 0.85283, 1.06383, 1.02058, 0.75945, 0.9219, 0.75945,\n 1.17337, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465,\n 0.88465, 0.88465, 0.88465, 0.75945, 0.75945, 1.02058, 1.02058, 1.02058,\n 0.69046, 0.70926, 0.85158, 0.77812, 0.76852, 0.89591, 0.70466, 0.76125,\n 0.80094, 0.86822, 0.83864, 0.728, 0.77212, 0.79475, 0.93637, 0.87514, 0.8588,\n 0.76013, 0.8588, 0.72421, 0.69866, 0.77598, 0.85991, 0.80811, 0.87832,\n 0.78112, 0.77512, 0.8562, 1.0222, 1.18417, 1.0222, 1.27014, 0.89903, 1.15012,\n 0.93859, 0.94399, 0.846, 0.94399, 0.81453, 1.0186, 0.94219, 0.96017, 1.03075,\n 1.02175, 0.912, 1.03075, 0.96998, 0.96017, 0.93859, 0.94399, 0.94399, 0.95493,\n 0.746, 1.12658, 0.94578, 0.91, 0.979, 0.882, 0.882, 0.83, 0.85034, 0.83537,\n 0.85034, 1.02058, 0.70869, 0.88465, 0.88465, 0.88465, 0.88465, 0.83537,\n 0.90083, 1.15012, 0.9161, 0.94565, 0.73541, 1.02058, 0.53609, 0.69353,\n 0.79519, 1.08595, 1, 1, 1.15012, 1, 0.91974, 0.75945, 1.15012, 1, 0.9446,\n 0.73361, 0.9005, 0.9005, 0.9005, 0.62864, 0.85158, 0.85158, 0.85158, 0.85158,\n 0.85158, 0.85158, 0.773, 0.76852, 0.70466, 0.70466, 0.70466, 0.70466, 0.83864,\n 0.83864, 0.83864, 0.83864, 0.90561, 0.87514, 0.8588, 0.8588, 0.8588, 0.8588,\n 0.8588, 1.02058, 0.85751, 0.85991, 0.85991, 0.85991, 0.85991, 0.77512,\n 0.76013, 0.88075, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859,\n 0.8075, 0.846, 0.81453, 0.81453, 0.81453, 0.81453, 0.82424, 0.82424, 0.82424,\n 0.82424, 0.9278, 0.96017, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859,\n 1.08595, 0.8562, 0.94578, 0.94578, 0.94578, 0.94578, 0.882, 0.94578, 0.882,\n 0.85158, 0.93859, 0.85158, 0.93859, 0.85158, 0.93859, 0.76852, 0.846, 0.76852,\n 0.846, 0.76852, 0.846, 0.76852, 0.846, 0.89591, 0.8544, 0.90561, 0.94399,\n 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453,\n 0.70466, 0.81453, 0.80094, 0.94219, 0.80094, 0.94219, 0.80094, 0.94219, 1, 1,\n 0.86822, 0.96017, 0.86822, 0.96017, 0.83864, 0.82424, 0.83864, 0.82424,\n 0.83864, 0.82424, 0.83864, 1.03075, 0.83864, 0.82424, 0.81402, 1.02738, 0.728,\n 1.02175, 1, 1, 0.912, 0.79475, 1.03075, 1, 1, 0.79475, 0.83911, 0.79475,\n 0.66266, 0.80553, 1.06676, 0.87514, 0.96017, 1, 1, 0.87514, 0.96017, 0.86865,\n 0.87396, 0.96017, 0.8588, 0.93859, 0.8588, 0.93859, 0.8588, 0.93859, 0.867,\n 0.84759, 0.72421, 0.95493, 1, 1, 0.72421, 0.95493, 0.69866, 0.746, 0.69866,\n 0.746, 1, 1, 0.69866, 0.746, 1, 1, 0.77598, 0.88417, 0.77598, 1.12658,\n 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578,\n 0.85991, 0.94578, 0.85991, 0.94578, 0.87832, 0.979, 0.77512, 0.882, 0.77512,\n 0.8562, 0.83, 0.8562, 0.83, 0.8562, 0.83, 1, 0.88465, 0.85158, 0.93859, 0.773,\n 0.8075, 0.85751, 0.8562, 1, 1, 0.77598, 1.12658, 1.15012, 1.15012, 1.15012,\n 1.15012, 1.15012, 1.15313, 1.15012, 1.15012, 1.15012, 1.08106, 1.03901,\n 0.85158, 0.77025, 0.62264, 0.7646, 0.65351, 0.86026, 0.69461, 0.89947,\n 1.03075, 0.85158, 0.77812, 0.76449, 0.88836, 0.70466, 0.8562, 0.86822, 0.8588,\n 0.83864, 0.77212, 0.85308, 0.93637, 0.87514, 0.82352, 0.8588, 0.85701,\n 0.76013, 0.89058, 0.77598, 0.8156, 0.82565, 0.78112, 0.77899, 0.89386,\n 0.83864, 0.8156, 0.9486, 0.92388, 0.96186, 1.03075, 0.91123, 0.9486, 0.93298,\n 0.878, 0.93942, 0.92388, 0.84596, 0.96186, 0.95119, 1.03075, 0.922, 0.88787,\n 0.95829, 0.88, 0.93559, 0.93859, 0.78815, 0.93758, 1, 0.89217, 1.03737,\n 0.91123, 0.93969, 0.77487, 0.85769, 0.86799, 1.03075, 0.91123, 0.93859,\n 0.91123, 0.86799, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 0.87832, 0.979, 0.87832, 0.979, 0.87832, 0.979, 0.77512, 0.882, 0.9219,\n 1, 0.89903, 1, 1, 1, 0.87321, 0.87321, 0.87321, 1, 1.027, 1.027, 1.027,\n 0.86847, 0.86847, 0.79121, 1, 1.124, 1, 1, 0.73572, 0.73572, 1, 1, 0.85034, 1,\n 1, 1, 1, 0.88465, 1, 1, 1, 0.669, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1.04828, 1, 0.74948, 0.75187, 1.02058, 0.98391, 1.02119, 1, 1, 1.06233,\n 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05233, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst MyriadProItalicMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-Regular.ttf to have the same\n// metrics as MyriadPro-Regular.otf.\nconst MyriadProRegularFactors = [\n 1.36898, 1, 1, 0.76305, 0.82784, 0.94935, 0.89364, 0.92241, 0.89073, 0.90706,\n 0.98472, 0.85283, 0.85283, 1.0664, 1.02058, 0.74505, 0.9219, 0.74505, 1.23456,\n 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241,\n 0.92241, 0.92241, 0.74505, 0.74505, 1.02058, 1.02058, 1.02058, 0.73002,\n 0.72601, 0.91755, 0.8126, 0.80314, 0.92222, 0.73764, 0.79726, 0.83051,\n 0.90284, 0.86023, 0.74, 0.8126, 0.84869, 0.96518, 0.91115, 0.8858, 0.79761,\n 0.8858, 0.74498, 0.73914, 0.81363, 0.89591, 0.83659, 0.89633, 0.85608, 0.8111,\n 0.90531, 1.0222, 1.22736, 1.0222, 1.27014, 0.89903, 0.90088, 0.86667, 1.0231,\n 0.896, 1.01411, 0.90083, 1.05099, 1.00512, 0.99793, 1.05326, 1.09377, 0.938,\n 1.06226, 1.00119, 0.99793, 0.98714, 1.0231, 1.01231, 0.98196, 0.792, 1.19137,\n 0.99074, 0.962, 1.01915, 0.926, 0.942, 0.856, 0.85034, 0.92006, 0.85034,\n 1.02058, 0.69067, 0.92241, 0.92241, 0.92241, 0.92241, 0.92006, 0.9332,\n 0.90088, 0.91882, 0.93484, 0.75339, 1.02058, 0.56866, 0.54324, 0.79519,\n 1.08595, 1, 1, 0.90088, 1, 0.95325, 0.74505, 0.90088, 1, 0.97198, 0.75339,\n 0.91009, 0.91009, 0.91009, 0.66466, 0.91755, 0.91755, 0.91755, 0.91755,\n 0.91755, 0.91755, 0.788, 0.80314, 0.73764, 0.73764, 0.73764, 0.73764, 0.86023,\n 0.86023, 0.86023, 0.86023, 0.92915, 0.91115, 0.8858, 0.8858, 0.8858, 0.8858,\n 0.8858, 1.02058, 0.8858, 0.89591, 0.89591, 0.89591, 0.89591, 0.8111, 0.79611,\n 0.89713, 0.86667, 0.86667, 0.86667, 0.86667, 0.86667, 0.86667, 0.86936, 0.896,\n 0.90083, 0.90083, 0.90083, 0.90083, 0.84224, 0.84224, 0.84224, 0.84224,\n 0.97276, 0.99793, 0.98714, 0.98714, 0.98714, 0.98714, 0.98714, 1.08595,\n 0.89876, 0.99074, 0.99074, 0.99074, 0.99074, 0.942, 1.0231, 0.942, 0.91755,\n 0.86667, 0.91755, 0.86667, 0.91755, 0.86667, 0.80314, 0.896, 0.80314, 0.896,\n 0.80314, 0.896, 0.80314, 0.896, 0.92222, 0.93372, 0.92915, 1.01411, 0.73764,\n 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764,\n 0.90083, 0.83051, 1.00512, 0.83051, 1.00512, 0.83051, 1.00512, 1, 1, 0.90284,\n 0.99793, 0.90976, 0.99793, 0.86023, 0.84224, 0.86023, 0.84224, 0.86023,\n 0.84224, 0.86023, 1.05326, 0.86023, 0.84224, 0.82873, 1.07469, 0.74, 1.09377,\n 1, 1, 0.938, 0.84869, 1.06226, 1, 1, 0.84869, 0.83704, 0.84869, 0.81441,\n 0.85588, 1.08927, 0.91115, 0.99793, 1, 1, 0.91115, 0.99793, 0.91887, 0.90991,\n 0.99793, 0.8858, 0.98714, 0.8858, 0.98714, 0.8858, 0.98714, 0.894, 0.91434,\n 0.74498, 0.98196, 1, 1, 0.74498, 0.98196, 0.73914, 0.792, 0.73914, 0.792, 1,\n 1, 0.73914, 0.792, 1, 1, 0.81363, 0.904, 0.81363, 1.19137, 0.89591, 0.99074,\n 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074,\n 0.89591, 0.99074, 0.89633, 1.01915, 0.8111, 0.942, 0.8111, 0.90531, 0.856,\n 0.90531, 0.856, 0.90531, 0.856, 1, 0.92241, 0.91755, 0.86667, 0.788, 0.86936,\n 0.8858, 0.89876, 1, 1, 0.81363, 1.19137, 0.90088, 0.90088, 0.90088, 0.90088,\n 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90388, 1.03901, 0.92138,\n 0.78105, 0.7154, 0.86169, 0.80513, 0.94007, 0.82528, 0.98612, 1.06226,\n 0.91755, 0.8126, 0.81884, 0.92819, 0.73764, 0.90531, 0.90284, 0.8858, 0.86023,\n 0.8126, 0.91172, 0.96518, 0.91115, 0.83089, 0.8858, 0.87791, 0.79761, 0.89297,\n 0.81363, 0.88157, 0.89992, 0.85608, 0.81992, 0.94307, 0.86023, 0.88157,\n 0.95308, 0.98699, 0.99793, 1.06226, 0.95817, 0.95308, 0.97358, 0.928, 0.98088,\n 0.98699, 0.92761, 0.99793, 0.96017, 1.06226, 0.986, 0.944, 0.95978, 0.938,\n 0.96705, 0.98714, 0.80442, 0.98972, 1, 0.89762, 1.04552, 0.95817, 0.99007,\n 0.87064, 0.91879, 0.88888, 1.06226, 0.95817, 0.98714, 0.95817, 0.88888, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89633, 1.01915,\n 0.89633, 1.01915, 0.89633, 1.01915, 0.8111, 0.942, 0.9219, 1, 0.89903, 1, 1,\n 1, 0.93173, 0.93173, 0.93173, 1, 1.06304, 1.06304, 1.06904, 0.89903, 0.89903,\n 0.80549, 1, 1.156, 1, 1, 0.76575, 0.76575, 1, 1, 0.72458, 1, 1, 1, 1, 0.92241,\n 1, 1, 1, 0.619, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.07257, 1,\n 0.74705, 0.71119, 1.02058, 1.024, 1.02119, 1, 1, 1.1536, 1.08595, 1.08595, 1,\n 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05638, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1,\n];\nconst MyriadProRegularMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\nexport {\n MyriadProBoldFactors,\n MyriadProBoldItalicFactors,\n MyriadProBoldItalicMetrics,\n MyriadProBoldMetrics,\n MyriadProItalicFactors,\n MyriadProItalicMetrics,\n MyriadProRegularFactors,\n MyriadProRegularMetrics,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Factors to rescale LiberationSans-Bold.ttf to have the same\n// metrics as segoeuib.ttf.\nconst SegoeuiBoldFactors = [\n 1.76738, 1, 1, 0.99297, 0.9824, 1.04016, 1.06497, 1.03424, 0.97529, 1.17647,\n 1.23203, 1.1085, 1.1085, 1.16939, 1.2107, 0.9754, 1.21408, 0.9754, 1.59578,\n 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424,\n 1.03424, 1.03424, 0.81378, 0.81378, 1.2107, 1.2107, 1.2107, 0.71703, 0.97847,\n 0.97363, 0.88776, 0.8641, 1.02096, 0.79795, 0.85132, 0.914, 1.06085, 1.1406,\n 0.8007, 0.89858, 0.83693, 1.14889, 1.09398, 0.97489, 0.92094, 0.97489,\n 0.90399, 0.84041, 0.95923, 1.00135, 1, 1.06467, 0.98243, 0.90996, 0.99361,\n 1.1085, 1.56942, 1.1085, 1.2107, 0.74627, 0.94282, 0.96752, 1.01519, 0.86304,\n 1.01359, 0.97278, 1.15103, 1.01359, 0.98561, 1.02285, 1.02285, 1.00527,\n 1.02285, 1.0302, 0.99041, 1.0008, 1.01519, 1.01359, 1.02258, 0.79104, 1.16862,\n 0.99041, 0.97454, 1.02511, 0.99298, 0.96752, 0.95801, 0.94856, 1.16579,\n 0.94856, 1.2107, 0.9824, 1.03424, 1.03424, 1, 1.03424, 1.16579, 0.8727,\n 1.3871, 1.18622, 1.10818, 1.04478, 1.2107, 1.18622, 0.75155, 0.94994, 1.28826,\n 1.21408, 1.21408, 0.91056, 1, 0.91572, 0.9754, 0.64663, 1.18328, 1.24866,\n 1.04478, 1.14169, 1.15749, 1.17389, 0.71703, 0.97363, 0.97363, 0.97363,\n 0.97363, 0.97363, 0.97363, 0.93506, 0.8641, 0.79795, 0.79795, 0.79795,\n 0.79795, 1.1406, 1.1406, 1.1406, 1.1406, 1.02096, 1.09398, 0.97426, 0.97426,\n 0.97426, 0.97426, 0.97426, 1.2107, 0.97489, 1.00135, 1.00135, 1.00135,\n 1.00135, 0.90996, 0.92094, 1.02798, 0.96752, 0.96752, 0.96752, 0.96752,\n 0.96752, 0.96752, 0.93136, 0.86304, 0.97278, 0.97278, 0.97278, 0.97278,\n 1.02285, 1.02285, 1.02285, 1.02285, 0.97122, 0.99041, 1, 1, 1, 1, 1, 1.28826,\n 1.0008, 0.99041, 0.99041, 0.99041, 0.99041, 0.96752, 1.01519, 0.96752,\n 0.97363, 0.96752, 0.97363, 0.96752, 0.97363, 0.96752, 0.8641, 0.86304, 0.8641,\n 0.86304, 0.8641, 0.86304, 0.8641, 0.86304, 1.02096, 1.03057, 1.02096, 1.03517,\n 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278,\n 0.79795, 0.97278, 0.914, 1.01359, 0.914, 1.01359, 0.914, 1.01359, 1, 1,\n 1.06085, 0.98561, 1.06085, 1.00879, 1.1406, 1.02285, 1.1406, 1.02285, 1.1406,\n 1.02285, 1.1406, 1.02285, 1.1406, 1.02285, 0.97138, 1.08692, 0.8007, 1.02285,\n 1, 1, 1.00527, 0.83693, 1.02285, 1, 1, 0.83693, 0.9455, 0.83693, 0.90418,\n 0.83693, 1.13005, 1.09398, 0.99041, 1, 1, 1.09398, 0.99041, 0.96692, 1.09251,\n 0.99041, 0.97489, 1.0008, 0.97489, 1.0008, 0.97489, 1.0008, 0.93994, 0.97931,\n 0.90399, 1.02258, 1, 1, 0.90399, 1.02258, 0.84041, 0.79104, 0.84041, 0.79104,\n 0.84041, 0.79104, 0.84041, 0.79104, 1, 1, 0.95923, 1.07034, 0.95923, 1.16862,\n 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041,\n 1.00135, 0.99041, 1.00135, 0.99041, 1.06467, 1.02511, 0.90996, 0.96752,\n 0.90996, 0.99361, 0.95801, 0.99361, 0.95801, 0.99361, 0.95801, 1.07733,\n 1.03424, 0.97363, 0.96752, 0.93506, 0.93136, 0.97489, 1.0008, 1, 1, 0.95923,\n 1.16862, 1.15103, 1.15103, 1.01173, 1.03959, 0.75953, 0.81378, 0.79912,\n 1.15103, 1.21994, 0.95161, 0.87815, 1.01149, 0.81525, 0.7676, 0.98167,\n 1.01134, 1.02546, 0.84097, 1.03089, 1.18102, 0.97363, 0.88776, 0.85134,\n 0.97826, 0.79795, 0.99361, 1.06085, 0.97489, 1.1406, 0.89858, 1.0388, 1.14889,\n 1.09398, 0.86039, 0.97489, 1.0595, 0.92094, 0.94793, 0.95923, 0.90996,\n 0.99346, 0.98243, 1.02112, 0.95493, 1.1406, 0.90996, 1.03574, 1.02597, 1.0008,\n 1.18102, 1.06628, 1.03574, 1.0192, 1.01932, 1.00886, 0.97531, 1.0106, 1.0008,\n 1.13189, 1.18102, 1.02277, 0.98683, 1.0016, 0.99561, 1.07237, 1.0008, 0.90434,\n 0.99921, 0.93803, 0.8965, 1.23085, 1.06628, 1.04983, 0.96268, 1.0499, 0.98439,\n 1.18102, 1.06628, 1.0008, 1.06628, 0.98439, 0.79795, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1.09466, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.97278, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.02065, 1, 1, 1, 1, 1, 1, 1.06467, 1.02511,\n 1.06467, 1.02511, 1.06467, 1.02511, 0.90996, 0.96752, 1, 1.21408, 0.89903, 1,\n 1, 0.75155, 1.04394, 1.04394, 1.04394, 1.04394, 0.98633, 0.98633, 0.98633,\n 0.73047, 0.73047, 1.20642, 0.91211, 1.25635, 1.222, 1.02956, 1.03372, 1.03372,\n 0.96039, 1.24633, 1, 1.12454, 0.93503, 1.03424, 1.19687, 1.03424, 1, 1, 1,\n 0.771, 1, 1, 1.15749, 1.15749, 1.15749, 1.10948, 0.86279, 0.94434, 0.86279,\n 0.94434, 0.86182, 1, 1, 1.16897, 1, 0.96085, 0.90137, 1.2107, 1.18416,\n 1.13973, 0.69825, 0.9716, 2.10339, 1.29004, 1.29004, 1.21172, 1.29004,\n 1.29004, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025,\n 1.18874, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886,\n 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.09193, 1.09193, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst SegoeuiBoldMetrics = { lineHeight: 1.33008, lineGap: 0 };\n\n// Factors to rescale LiberationSans-BoldItalic.ttf to have the same\n// metrics as segoeuiz.ttf.\nconst SegoeuiBoldItalicFactors = [\n 1.76738, 1, 1, 0.98946, 1.03959, 1.04016, 1.02809, 1.036, 0.97639, 1.10953,\n 1.23203, 1.11144, 1.11144, 1.16939, 1.21237, 0.9754, 1.21261, 0.9754, 1.59754,\n 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 0.81378,\n 0.81378, 1.21237, 1.21237, 1.21237, 0.73541, 0.97847, 0.97363, 0.89723,\n 0.87897, 1.0426, 0.79429, 0.85292, 0.91149, 1.05815, 1.1406, 0.79631, 0.90128,\n 0.83853, 1.04396, 1.10615, 0.97552, 0.94436, 0.97552, 0.88641, 0.80527,\n 0.96083, 1.00135, 1, 1.06777, 0.9817, 0.91142, 0.99361, 1.11144, 1.57293,\n 1.11144, 1.21237, 0.74627, 1.31818, 1.06585, 0.97042, 0.83055, 0.97042,\n 0.93503, 1.1261, 0.97042, 0.97922, 1.14236, 0.94552, 1.01054, 1.14236,\n 1.02471, 0.97922, 0.94165, 0.97042, 0.97042, 1.0276, 0.78929, 1.1261, 0.97922,\n 0.95874, 1.02197, 0.98507, 0.96752, 0.97168, 0.95107, 1.16579, 0.95107,\n 1.21237, 1.03959, 1.036, 1.036, 1, 1.036, 1.16579, 0.87357, 1.31818, 1.18754,\n 1.26781, 1.05356, 1.21237, 1.18622, 0.79487, 0.94994, 1.29004, 1.24047,\n 1.24047, 1.31818, 1, 0.91484, 0.9754, 1.31818, 1.1349, 1.24866, 1.05356,\n 1.13934, 1.15574, 1.17389, 0.73541, 0.97363, 0.97363, 0.97363, 0.97363,\n 0.97363, 0.97363, 0.94385, 0.87897, 0.79429, 0.79429, 0.79429, 0.79429,\n 1.1406, 1.1406, 1.1406, 1.1406, 1.0426, 1.10615, 0.97552, 0.97552, 0.97552,\n 0.97552, 0.97552, 1.21237, 0.97552, 1.00135, 1.00135, 1.00135, 1.00135,\n 0.91142, 0.94436, 0.98721, 1.06585, 1.06585, 1.06585, 1.06585, 1.06585,\n 1.06585, 0.96705, 0.83055, 0.93503, 0.93503, 0.93503, 0.93503, 1.14236,\n 1.14236, 1.14236, 1.14236, 0.93125, 0.97922, 0.94165, 0.94165, 0.94165,\n 0.94165, 0.94165, 1.29004, 0.94165, 0.97922, 0.97922, 0.97922, 0.97922,\n 0.96752, 0.97042, 0.96752, 0.97363, 1.06585, 0.97363, 1.06585, 0.97363,\n 1.06585, 0.87897, 0.83055, 0.87897, 0.83055, 0.87897, 0.83055, 0.87897,\n 0.83055, 1.0426, 1.0033, 1.0426, 0.97042, 0.79429, 0.93503, 0.79429, 0.93503,\n 0.79429, 0.93503, 0.79429, 0.93503, 0.79429, 0.93503, 0.91149, 0.97042,\n 0.91149, 0.97042, 0.91149, 0.97042, 1, 1, 1.05815, 0.97922, 1.05815, 0.97922,\n 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406,\n 1.14236, 0.97441, 1.04302, 0.79631, 1.01582, 1, 1, 1.01054, 0.83853, 1.14236,\n 1, 1, 0.83853, 1.09125, 0.83853, 0.90418, 0.83853, 1.19508, 1.10615, 0.97922,\n 1, 1, 1.10615, 0.97922, 1.01034, 1.10466, 0.97922, 0.97552, 0.94165, 0.97552,\n 0.94165, 0.97552, 0.94165, 0.91602, 0.91981, 0.88641, 1.0276, 1, 1, 0.88641,\n 1.0276, 0.80527, 0.78929, 0.80527, 0.78929, 0.80527, 0.78929, 0.80527,\n 0.78929, 1, 1, 0.96083, 1.05403, 0.95923, 1.16862, 1.00135, 0.97922, 1.00135,\n 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135,\n 0.97922, 1.06777, 1.02197, 0.91142, 0.96752, 0.91142, 0.99361, 0.97168,\n 0.99361, 0.97168, 0.99361, 0.97168, 1.23199, 1.036, 0.97363, 1.06585, 0.94385,\n 0.96705, 0.97552, 0.94165, 1, 1, 0.96083, 1.1261, 1.31818, 1.31818, 1.31818,\n 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 0.95161, 1.27126,\n 1.00811, 0.83284, 0.77702, 0.99137, 0.95253, 1.0347, 0.86142, 1.07205,\n 1.14236, 0.97363, 0.89723, 0.86869, 1.09818, 0.79429, 0.99361, 1.05815,\n 0.97552, 1.1406, 0.90128, 1.06662, 1.04396, 1.10615, 0.84918, 0.97552,\n 1.04694, 0.94436, 0.98015, 0.96083, 0.91142, 1.00356, 0.9817, 1.01945,\n 0.98999, 1.1406, 0.91142, 1.04961, 0.9898, 1.00639, 1.14236, 1.07514, 1.04961,\n 0.99607, 1.02897, 1.008, 0.9898, 0.95134, 1.00639, 1.11121, 1.14236, 1.00518,\n 0.97981, 1.02186, 1, 1.08578, 0.94165, 0.99314, 0.98387, 0.93028, 0.93377,\n 1.35125, 1.07514, 1.10687, 0.93491, 1.04232, 1.00351, 1.14236, 1.07514,\n 0.94165, 1.07514, 1.00351, 0.79429, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1.09097, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.93503, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 0.96609, 1, 1, 1, 1, 1, 1, 1.06777, 1.02197, 1.06777,\n 1.02197, 1.06777, 1.02197, 0.91142, 0.96752, 1, 1.21261, 0.89903, 1, 1,\n 0.75155, 1.04745, 1.04745, 1.04745, 1.04394, 0.98633, 0.98633, 0.98633,\n 0.72959, 0.72959, 1.20502, 0.91406, 1.26514, 1.222, 1.02956, 1.03372, 1.03372,\n 0.96039, 1.24633, 1, 1.09125, 0.93327, 1.03336, 1.16541, 1.036, 1, 1, 1,\n 0.771, 1, 1, 1.15574, 1.15574, 1.15574, 1.15574, 0.86364, 0.94434, 0.86279,\n 0.94434, 0.86224, 1, 1, 1.16798, 1, 0.96085, 0.90068, 1.21237, 1.18416,\n 1.13904, 0.69825, 0.9716, 2.10339, 1.29004, 1.29004, 1.21339, 1.29004,\n 1.29004, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025,\n 1.18775, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886,\n 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.13269, 1.13269, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst SegoeuiBoldItalicMetrics = { lineHeight: 1.33008, lineGap: 0 };\n\n// Factors to rescale LiberationSans-Italic.ttf to have the same\n// metrics as segoeuii.ttf.\nconst SegoeuiItalicFactors = [\n 1.76738, 1, 1, 0.98946, 1.14763, 1.05365, 1.06234, 0.96927, 0.92586, 1.15373,\n 1.18414, 0.91349, 0.91349, 1.07403, 1.17308, 0.78383, 1.20088, 0.78383,\n 1.42531, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927,\n 0.96927, 0.96927, 0.96927, 0.78383, 0.78383, 1.17308, 1.17308, 1.17308,\n 0.77349, 0.94565, 0.94729, 0.85944, 0.88506, 0.9858, 0.74817, 0.80016,\n 0.88449, 0.98039, 0.95782, 0.69238, 0.89898, 0.83231, 0.98183, 1.03989,\n 0.96924, 0.86237, 0.96924, 0.80595, 0.74524, 0.86091, 0.95402, 0.94143,\n 0.98448, 0.8858, 0.83089, 0.93285, 1.0949, 1.39016, 1.0949, 1.45994, 0.74627,\n 1.04839, 0.97454, 0.97454, 0.87207, 0.97454, 0.87533, 1.06151, 0.97454,\n 1.00176, 1.16484, 1.08132, 0.98047, 1.16484, 1.02989, 1.01054, 0.96225,\n 0.97454, 0.97454, 1.06598, 0.79004, 1.16344, 1.00351, 0.94629, 0.9973,\n 0.91016, 0.96777, 0.9043, 0.91082, 0.92481, 0.91082, 1.17308, 0.95748,\n 0.96927, 0.96927, 1, 0.96927, 0.92481, 0.80597, 1.04839, 1.23393, 1.1781,\n 0.9245, 1.17308, 1.20808, 0.63218, 0.94261, 1.24822, 1.09971, 1.09971,\n 1.04839, 1, 0.85273, 0.78032, 1.04839, 1.09971, 1.22326, 0.9245, 1.09836,\n 1.13525, 1.15222, 0.70424, 0.94729, 0.94729, 0.94729, 0.94729, 0.94729,\n 0.94729, 0.85498, 0.88506, 0.74817, 0.74817, 0.74817, 0.74817, 0.95782,\n 0.95782, 0.95782, 0.95782, 0.9858, 1.03989, 0.96924, 0.96924, 0.96924,\n 0.96924, 0.96924, 1.17308, 0.96924, 0.95402, 0.95402, 0.95402, 0.95402,\n 0.83089, 0.86237, 0.88409, 0.97454, 0.97454, 0.97454, 0.97454, 0.97454,\n 0.97454, 0.92916, 0.87207, 0.87533, 0.87533, 0.87533, 0.87533, 0.93146,\n 0.93146, 0.93146, 0.93146, 0.93854, 1.01054, 0.96225, 0.96225, 0.96225,\n 0.96225, 0.96225, 1.24822, 0.8761, 1.00351, 1.00351, 1.00351, 1.00351,\n 0.96777, 0.97454, 0.96777, 0.94729, 0.97454, 0.94729, 0.97454, 0.94729,\n 0.97454, 0.88506, 0.87207, 0.88506, 0.87207, 0.88506, 0.87207, 0.88506,\n 0.87207, 0.9858, 0.95391, 0.9858, 0.97454, 0.74817, 0.87533, 0.74817, 0.87533,\n 0.74817, 0.87533, 0.74817, 0.87533, 0.74817, 0.87533, 0.88449, 0.97454,\n 0.88449, 0.97454, 0.88449, 0.97454, 1, 1, 0.98039, 1.00176, 0.98039, 1.00176,\n 0.95782, 0.93146, 0.95782, 0.93146, 0.95782, 0.93146, 0.95782, 1.16484,\n 0.95782, 0.93146, 0.84421, 1.12761, 0.69238, 1.08132, 1, 1, 0.98047, 0.83231,\n 1.16484, 1, 1, 0.84723, 1.04861, 0.84723, 0.78755, 0.83231, 1.23736, 1.03989,\n 1.01054, 1, 1, 1.03989, 1.01054, 0.9857, 1.03849, 1.01054, 0.96924, 0.96225,\n 0.96924, 0.96225, 0.96924, 0.96225, 0.92383, 0.90171, 0.80595, 1.06598, 1, 1,\n 0.80595, 1.06598, 0.74524, 0.79004, 0.74524, 0.79004, 0.74524, 0.79004,\n 0.74524, 0.79004, 1, 1, 0.86091, 1.02759, 0.85771, 1.16344, 0.95402, 1.00351,\n 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351,\n 0.95402, 1.00351, 0.98448, 0.9973, 0.83089, 0.96777, 0.83089, 0.93285, 0.9043,\n 0.93285, 0.9043, 0.93285, 0.9043, 1.31868, 0.96927, 0.94729, 0.97454, 0.85498,\n 0.92916, 0.96924, 0.8761, 1, 1, 0.86091, 1.16344, 1.04839, 1.04839, 1.04839,\n 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 0.81965, 0.81965,\n 0.94729, 0.78032, 0.71022, 0.90883, 0.84171, 0.99877, 0.77596, 1.05734, 1.2,\n 0.94729, 0.85944, 0.82791, 0.9607, 0.74817, 0.93285, 0.98039, 0.96924,\n 0.95782, 0.89898, 0.98316, 0.98183, 1.03989, 0.78614, 0.96924, 0.97642,\n 0.86237, 0.86075, 0.86091, 0.83089, 0.90082, 0.8858, 0.97296, 1.01284,\n 0.95782, 0.83089, 1.0976, 1.04, 1.03342, 1.2, 1.0675, 1.0976, 0.98205,\n 1.03809, 1.05097, 1.04, 0.95364, 1.03342, 1.05401, 1.2, 1.02148, 1.0119,\n 1.04724, 1.0127, 1.02732, 0.96225, 0.8965, 0.97783, 0.93574, 0.94818, 1.30679,\n 1.0675, 1.11826, 0.99821, 1.0557, 1.0326, 1.2, 1.0675, 0.96225, 1.0675,\n 1.0326, 0.74817, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.03754, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.87533, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 0.98705, 1, 1, 1, 1, 1, 1, 0.98448, 0.9973, 0.98448, 0.9973, 0.98448, 0.9973,\n 0.83089, 0.96777, 1, 1.20088, 0.89903, 1, 1, 0.75155, 0.94945, 0.94945,\n 0.94945, 0.94945, 1.12317, 1.12317, 1.12317, 0.67603, 0.67603, 1.15621,\n 0.73584, 1.21191, 1.22135, 1.06483, 0.94868, 0.94868, 0.95996, 1.24633, 1,\n 1.07497, 0.87709, 0.96927, 1.01473, 0.96927, 1, 1, 1, 0.77295, 1, 1, 1.09836,\n 1.09836, 1.09836, 1.01522, 0.86321, 0.94434, 0.8649, 0.94434, 0.86182, 1, 1,\n 1.083, 1, 0.91578, 0.86438, 1.17308, 1.18416, 1.14589, 0.69825, 0.97622,\n 1.96791, 1.24822, 1.24822, 1.17308, 1.24822, 1.24822, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862,\n 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.17984, 1.42603, 1, 1.42603,\n 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1,\n 1.10742, 1.10742, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst SegoeuiItalicMetrics = { lineHeight: 1.33008, lineGap: 0 };\n\n// Factors to rescale LiberationSans-Regular.ttf to have the same\n// metrics as segoeui.ttf.\nconst SegoeuiRegularFactors = [\n 1.76738, 1, 1, 0.98594, 1.02285, 1.10454, 1.06234, 0.96927, 0.92037, 1.19985,\n 1.2046, 0.90616, 0.90616, 1.07152, 1.1714, 0.78032, 1.20088, 0.78032, 1.40246,\n 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927,\n 0.96927, 0.96927, 0.78032, 0.78032, 1.1714, 1.1714, 1.1714, 0.80597, 0.94084,\n 0.96706, 0.85944, 0.85734, 0.97093, 0.75842, 0.79936, 0.88198, 0.9831,\n 0.95782, 0.71387, 0.86969, 0.84636, 1.07796, 1.03584, 0.96924, 0.83968,\n 0.96924, 0.82826, 0.79649, 0.85771, 0.95132, 0.93119, 0.98965, 0.88433,\n 0.8287, 0.93365, 1.08612, 1.3638, 1.08612, 1.45786, 0.74627, 0.80499, 0.91484,\n 1.05707, 0.92383, 1.05882, 0.9403, 1.12654, 1.05882, 1.01756, 1.09011,\n 1.09011, 0.99414, 1.09011, 1.034, 1.01756, 1.05356, 1.05707, 1.05882, 1.04399,\n 0.84863, 1.21968, 1.01756, 0.95801, 1.00068, 0.91797, 0.96777, 0.9043,\n 0.90351, 0.92105, 0.90351, 1.1714, 0.85337, 0.96927, 0.96927, 0.99912,\n 0.96927, 0.92105, 0.80597, 1.2434, 1.20808, 1.05937, 0.90957, 1.1714, 1.20808,\n 0.75155, 0.94261, 1.24644, 1.09971, 1.09971, 0.84751, 1, 0.85273, 0.78032,\n 0.61584, 1.05425, 1.17914, 0.90957, 1.08665, 1.11593, 1.14169, 0.73381,\n 0.96706, 0.96706, 0.96706, 0.96706, 0.96706, 0.96706, 0.86035, 0.85734,\n 0.75842, 0.75842, 0.75842, 0.75842, 0.95782, 0.95782, 0.95782, 0.95782,\n 0.97093, 1.03584, 0.96924, 0.96924, 0.96924, 0.96924, 0.96924, 1.1714,\n 0.96924, 0.95132, 0.95132, 0.95132, 0.95132, 0.8287, 0.83968, 0.89049,\n 0.91484, 0.91484, 0.91484, 0.91484, 0.91484, 0.91484, 0.93575, 0.92383,\n 0.9403, 0.9403, 0.9403, 0.9403, 0.8717, 0.8717, 0.8717, 0.8717, 1.00527,\n 1.01756, 1.05356, 1.05356, 1.05356, 1.05356, 1.05356, 1.24644, 0.95923,\n 1.01756, 1.01756, 1.01756, 1.01756, 0.96777, 1.05707, 0.96777, 0.96706,\n 0.91484, 0.96706, 0.91484, 0.96706, 0.91484, 0.85734, 0.92383, 0.85734,\n 0.92383, 0.85734, 0.92383, 0.85734, 0.92383, 0.97093, 1.0969, 0.97093,\n 1.05882, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403,\n 0.75842, 0.9403, 0.88198, 1.05882, 0.88198, 1.05882, 0.88198, 1.05882, 1, 1,\n 0.9831, 1.01756, 0.9831, 1.01756, 0.95782, 0.8717, 0.95782, 0.8717, 0.95782,\n 0.8717, 0.95782, 1.09011, 0.95782, 0.8717, 0.84784, 1.11551, 0.71387, 1.09011,\n 1, 1, 0.99414, 0.84636, 1.09011, 1, 1, 0.84636, 1.0536, 0.84636, 0.94298,\n 0.84636, 1.23297, 1.03584, 1.01756, 1, 1, 1.03584, 1.01756, 1.00323, 1.03444,\n 1.01756, 0.96924, 1.05356, 0.96924, 1.05356, 0.96924, 1.05356, 0.93066,\n 0.98293, 0.82826, 1.04399, 1, 1, 0.82826, 1.04399, 0.79649, 0.84863, 0.79649,\n 0.84863, 0.79649, 0.84863, 0.79649, 0.84863, 1, 1, 0.85771, 1.17318, 0.85771,\n 1.21968, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132,\n 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.98965, 1.00068, 0.8287,\n 0.96777, 0.8287, 0.93365, 0.9043, 0.93365, 0.9043, 0.93365, 0.9043, 1.08571,\n 0.96927, 0.96706, 0.91484, 0.86035, 0.93575, 0.96924, 0.95923, 1, 1, 0.85771,\n 1.21968, 1.11437, 1.11437, 0.93109, 0.91202, 0.60411, 0.84164, 0.55572,\n 1.01173, 0.97361, 0.81818, 0.81818, 0.96635, 0.78032, 0.72727, 0.92366,\n 0.98601, 1.03405, 0.77968, 1.09799, 1.2, 0.96706, 0.85944, 0.85638, 0.96491,\n 0.75842, 0.93365, 0.9831, 0.96924, 0.95782, 0.86969, 0.94152, 1.07796,\n 1.03584, 0.78437, 0.96924, 0.98715, 0.83968, 0.83491, 0.85771, 0.8287,\n 0.94492, 0.88433, 0.9287, 1.0098, 0.95782, 0.8287, 1.0625, 0.98248, 1.03424,\n 1.2, 1.01071, 1.0625, 0.95246, 1.03809, 1.04912, 0.98248, 1.00221, 1.03424,\n 1.05443, 1.2, 1.04785, 0.99609, 1.00169, 1.05176, 0.99346, 1.05356, 0.9087,\n 1.03004, 0.95542, 0.93117, 1.23362, 1.01071, 1.07831, 1.02512, 1.05205,\n 1.03502, 1.2, 1.01071, 1.05356, 1.01071, 1.03502, 0.75842, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1.03719, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.9403,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.04021, 1, 1, 1, 1, 1, 1, 0.98965,\n 1.00068, 0.98965, 1.00068, 0.98965, 1.00068, 0.8287, 0.96777, 1, 1.20088,\n 0.89903, 1, 1, 0.75155, 1.03077, 1.03077, 1.03077, 1.03077, 1.13196, 1.13196,\n 1.13196, 0.67428, 0.67428, 1.16039, 0.73291, 1.20996, 1.22135, 1.06483,\n 0.94868, 0.94868, 0.95996, 1.24633, 1, 1.07497, 0.87796, 0.96927, 1.01518,\n 0.96927, 1, 1, 1, 0.77295, 1, 1, 1.10539, 1.10539, 1.11358, 1.06967, 0.86279,\n 0.94434, 0.86279, 0.94434, 0.86182, 1, 1, 1.083, 1, 0.91578, 0.86507, 1.1714,\n 1.18416, 1.14589, 0.69825, 0.97622, 1.9697, 1.24822, 1.24822, 1.17238,\n 1.24822, 1.24822, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025,\n 0.87025, 1.18083, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1,\n 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.10938, 1.10938, 1, 1, 1,\n 1.05425, 1.09971, 1.09971, 1.09971, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst SegoeuiRegularMetrics = { lineHeight: 1.33008, lineGap: 0 };\n\nexport {\n SegoeuiBoldFactors,\n SegoeuiBoldItalicFactors,\n SegoeuiBoldItalicMetrics,\n SegoeuiBoldMetrics,\n SegoeuiItalicFactors,\n SegoeuiItalicMetrics,\n SegoeuiRegularFactors,\n SegoeuiRegularMetrics,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FontType, info } from \"../shared/util.js\";\nimport { getEncoding, StandardEncoding } from \"./encodings.js\";\nimport { getGlyphsUnicode } from \"./glyphlist.js\";\nimport { getUnicodeForGlyph } from \"./unicode.js\";\n\n// Accented characters have issues on Windows and Linux. When this flag is\n// enabled glyphs that use seac and seac style endchar operators are truncated\n// and we instead just store the glyph id's of the base glyph and its accent to\n// be drawn individually.\n// Linux (freetype) requires that when a seac style endchar is used\n// that the charset must be a predefined one, however we build a\n// custom one. Windows just refuses to draw glyphs with seac operators.\nconst SEAC_ANALYSIS_ENABLED = true;\n\nconst FontFlags = {\n FixedPitch: 1,\n Serif: 2,\n Symbolic: 4,\n Script: 8,\n Nonsymbolic: 32,\n Italic: 64,\n AllCap: 65536,\n SmallCap: 131072,\n ForceBold: 262144,\n};\n\n// prettier-ignore\nconst MacStandardGlyphOrdering = [\n \".notdef\", \".null\", \"nonmarkingreturn\", \"space\", \"exclam\", \"quotedbl\",\n \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quotesingle\", \"parenleft\",\n \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\",\n \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\",\n \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\",\n \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\",\n \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\",\n \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\",\n \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\",\n \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\",\n \"asciitilde\", \"Adieresis\", \"Aring\", \"Ccedilla\", \"Eacute\", \"Ntilde\",\n \"Odieresis\", \"Udieresis\", \"aacute\", \"agrave\", \"acircumflex\", \"adieresis\",\n \"atilde\", \"aring\", \"ccedilla\", \"eacute\", \"egrave\", \"ecircumflex\", \"edieresis\",\n \"iacute\", \"igrave\", \"icircumflex\", \"idieresis\", \"ntilde\", \"oacute\", \"ograve\",\n \"ocircumflex\", \"odieresis\", \"otilde\", \"uacute\", \"ugrave\", \"ucircumflex\",\n \"udieresis\", \"dagger\", \"degree\", \"cent\", \"sterling\", \"section\", \"bullet\",\n \"paragraph\", \"germandbls\", \"registered\", \"copyright\", \"trademark\", \"acute\",\n \"dieresis\", \"notequal\", \"AE\", \"Oslash\", \"infinity\", \"plusminus\", \"lessequal\",\n \"greaterequal\", \"yen\", \"mu\", \"partialdiff\", \"summation\", \"product\", \"pi\",\n \"integral\", \"ordfeminine\", \"ordmasculine\", \"Omega\", \"ae\", \"oslash\",\n \"questiondown\", \"exclamdown\", \"logicalnot\", \"radical\", \"florin\",\n \"approxequal\", \"Delta\", \"guillemotleft\", \"guillemotright\", \"ellipsis\",\n \"nonbreakingspace\", \"Agrave\", \"Atilde\", \"Otilde\", \"OE\", \"oe\", \"endash\",\n \"emdash\", \"quotedblleft\", \"quotedblright\", \"quoteleft\", \"quoteright\",\n \"divide\", \"lozenge\", \"ydieresis\", \"Ydieresis\", \"fraction\", \"currency\",\n \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"daggerdbl\", \"periodcentered\",\n \"quotesinglbase\", \"quotedblbase\", \"perthousand\", \"Acircumflex\",\n \"Ecircumflex\", \"Aacute\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\",\n \"Idieresis\", \"Igrave\", \"Oacute\", \"Ocircumflex\", \"apple\", \"Ograve\", \"Uacute\",\n \"Ucircumflex\", \"Ugrave\", \"dotlessi\", \"circumflex\", \"tilde\", \"macron\",\n \"breve\", \"dotaccent\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\",\n \"Lslash\", \"lslash\", \"Scaron\", \"scaron\", \"Zcaron\", \"zcaron\", \"brokenbar\",\n \"Eth\", \"eth\", \"Yacute\", \"yacute\", \"Thorn\", \"thorn\", \"minus\", \"multiply\",\n \"onesuperior\", \"twosuperior\", \"threesuperior\", \"onehalf\", \"onequarter\",\n \"threequarters\", \"franc\", \"Gbreve\", \"gbreve\", \"Idotaccent\", \"Scedilla\",\n \"scedilla\", \"Cacute\", \"cacute\", \"Ccaron\", \"ccaron\", \"dcroat\"];\n\nfunction getFontType(type, subtype, isStandardFont = false) {\n switch (type) {\n case \"Type1\":\n if (isStandardFont) {\n return FontType.TYPE1STANDARD;\n }\n return subtype === \"Type1C\" ? FontType.TYPE1C : FontType.TYPE1;\n case \"CIDFontType0\":\n return subtype === \"CIDFontType0C\"\n ? FontType.CIDFONTTYPE0C\n : FontType.CIDFONTTYPE0;\n case \"OpenType\":\n return FontType.OPENTYPE;\n case \"TrueType\":\n return FontType.TRUETYPE;\n case \"CIDFontType2\":\n return FontType.CIDFONTTYPE2;\n case \"MMType1\":\n return FontType.MMTYPE1;\n case \"Type0\":\n return FontType.TYPE0;\n default:\n return FontType.UNKNOWN;\n }\n}\n\n// Some bad PDF generators, e.g. Scribus PDF, include glyph names\n// in a 'uniXXXX' format -- attempting to recover proper ones.\nfunction recoverGlyphName(name, glyphsUnicodeMap) {\n if (glyphsUnicodeMap[name] !== undefined) {\n return name;\n }\n // The glyph name is non-standard, trying to recover.\n const unicode = getUnicodeForGlyph(name, glyphsUnicodeMap);\n if (unicode !== -1) {\n for (const key in glyphsUnicodeMap) {\n if (glyphsUnicodeMap[key] === unicode) {\n return key;\n }\n }\n }\n info(\"Unable to recover a standard glyph name for: \" + name);\n return name;\n}\n\n/**\n * Shared logic for building a char code to glyph id mapping for Type1 and\n * simple CFF fonts. See section 9.6.6.2 of the spec.\n * @param {Object} properties Font properties object.\n * @param {Object} builtInEncoding The encoding contained within the actual font\n * data.\n * @param {Array} glyphNames Array of glyph names where the index is the\n * glyph ID.\n * @returns {Object} A char code to glyph ID map.\n */\nfunction type1FontGlyphMapping(properties, builtInEncoding, glyphNames) {\n const charCodeToGlyphId = Object.create(null);\n let glyphId, charCode, baseEncoding;\n const isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n\n if (properties.isInternalFont) {\n baseEncoding = builtInEncoding;\n for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0; // notdef\n }\n }\n } else if (properties.baseEncodingName) {\n // If a valid base encoding name was used, the mapping is initialized with\n // that.\n baseEncoding = getEncoding(properties.baseEncodingName);\n for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0; // notdef\n }\n }\n } else if (isSymbolicFont) {\n // For a symbolic font the encoding should be the fonts built-in encoding.\n for (charCode in builtInEncoding) {\n charCodeToGlyphId[charCode] = builtInEncoding[charCode];\n }\n } else {\n // For non-symbolic fonts that don't have a base encoding the standard\n // encoding should be used.\n baseEncoding = StandardEncoding;\n for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0; // notdef\n }\n }\n }\n\n // Lastly, merge in the differences.\n const differences = properties.differences;\n let glyphsUnicodeMap;\n if (differences) {\n for (charCode in differences) {\n const glyphName = differences[charCode];\n glyphId = glyphNames.indexOf(glyphName);\n\n if (glyphId === -1) {\n if (!glyphsUnicodeMap) {\n glyphsUnicodeMap = getGlyphsUnicode();\n }\n const standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap);\n if (standardGlyphName !== glyphName) {\n glyphId = glyphNames.indexOf(standardGlyphName);\n }\n }\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0; // notdef\n }\n }\n }\n return charCodeToGlyphId;\n}\n\nfunction normalizeFontName(name) {\n return name.replace(/[,_]/g, \"-\").replace(/\\s/g, \"\");\n}\n\nexport {\n FontFlags,\n getFontType,\n MacStandardGlyphOrdering,\n normalizeFontName,\n recoverGlyphName,\n SEAC_ANALYSIS_ENABLED,\n type1FontGlyphMapping,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// prettier-ignore\nconst ExpertEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"\", \"dollaroldstyle\",\n \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\",\n \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\",\n \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\",\n \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\",\n \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"colon\",\n \"semicolon\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\",\n \"questionsmall\", \"\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\",\n \"esuperior\", \"\", \"\", \"\", \"isuperior\", \"\", \"\", \"lsuperior\", \"msuperior\",\n \"nsuperior\", \"osuperior\", \"\", \"\", \"rsuperior\", \"ssuperior\", \"tsuperior\",\n \"\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"\",\n \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\",\n \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\",\n \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\",\n \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\",\n \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\",\n \"onefitted\", \"rupiah\", \"Tildesmall\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\",\n \"\", \"\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\",\n \"Caronsmall\", \"\", \"Dotaccentsmall\", \"\", \"\", \"Macronsmall\", \"\", \"\",\n \"figuredash\", \"hypheninferior\", \"\", \"\", \"Ogoneksmall\", \"Ringsmall\",\n \"Cedillasmall\", \"\", \"\", \"\", \"onequarter\", \"onehalf\", \"threequarters\",\n \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n \"seveneighths\", \"onethird\", \"twothirds\", \"\", \"\", \"zerosuperior\",\n \"onesuperior\", \"twosuperior\", \"threesuperior\", \"foursuperior\",\n \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\",\n \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\",\n \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\",\n \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\",\n \"dollarinferior\", \"periodinferior\", \"commainferior\", \"Agravesmall\",\n \"Aacutesmall\", \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\",\n \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\",\n \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\",\n \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\",\n \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\",\n \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\",\n \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\",\n \"Ydieresissmall\"];\n\n// prettier-ignore\nconst MacExpertEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"centoldstyle\",\n \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\",\n \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\",\n \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\",\n \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\",\n \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\",\n \"nineoldstyle\", \"colon\", \"semicolon\", \"\", \"threequartersemdash\", \"\",\n \"questionsmall\", \"\", \"\", \"\", \"\", \"Ethsmall\", \"\", \"\", \"onequarter\",\n \"onehalf\", \"threequarters\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n \"seveneighths\", \"onethird\", \"twothirds\", \"\", \"\", \"\", \"\", \"\", \"\", \"ff\",\n \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"\", \"parenrightinferior\",\n \"Circumflexsmall\", \"hypheninferior\", \"Gravesmall\", \"Asmall\", \"Bsmall\",\n \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\",\n \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\",\n \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\",\n \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\",\n \"Tildesmall\", \"\", \"\", \"asuperior\", \"centsuperior\", \"\", \"\", \"\", \"\",\n \"Aacutesmall\", \"Agravesmall\", \"Acircumflexsmall\", \"Adieresissmall\",\n \"Atildesmall\", \"Aringsmall\", \"Ccedillasmall\", \"Eacutesmall\", \"Egravesmall\",\n \"Ecircumflexsmall\", \"Edieresissmall\", \"Iacutesmall\", \"Igravesmall\",\n \"Icircumflexsmall\", \"Idieresissmall\", \"Ntildesmall\", \"Oacutesmall\",\n \"Ogravesmall\", \"Ocircumflexsmall\", \"Odieresissmall\", \"Otildesmall\",\n \"Uacutesmall\", \"Ugravesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"\",\n \"eightsuperior\", \"fourinferior\", \"threeinferior\", \"sixinferior\",\n \"eightinferior\", \"seveninferior\", \"Scaronsmall\", \"\", \"centinferior\",\n \"twoinferior\", \"\", \"Dieresissmall\", \"\", \"Caronsmall\", \"osuperior\",\n \"fiveinferior\", \"\", \"commainferior\", \"periodinferior\", \"Yacutesmall\", \"\",\n \"dollarinferior\", \"\", \"\", \"Thornsmall\", \"\", \"nineinferior\", \"zeroinferior\",\n \"Zcaronsmall\", \"AEsmall\", \"Oslashsmall\", \"questiondownsmall\",\n \"oneinferior\", \"Lslashsmall\", \"\", \"\", \"\", \"\", \"\", \"\", \"Cedillasmall\", \"\",\n \"\", \"\", \"\", \"\", \"OEsmall\", \"figuredash\", \"hyphensuperior\", \"\", \"\", \"\", \"\",\n \"exclamdownsmall\", \"\", \"Ydieresissmall\", \"\", \"onesuperior\", \"twosuperior\",\n \"threesuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\",\n \"sevensuperior\", \"ninesuperior\", \"zerosuperior\", \"\", \"esuperior\",\n \"rsuperior\", \"tsuperior\", \"\", \"\", \"isuperior\", \"ssuperior\", \"dsuperior\",\n \"\", \"\", \"\", \"\", \"\", \"lsuperior\", \"Ogoneksmall\", \"Brevesmall\",\n \"Macronsmall\", \"bsuperior\", \"nsuperior\", \"msuperior\", \"commasuperior\",\n \"periodsuperior\", \"Dotaccentsmall\", \"Ringsmall\", \"\", \"\", \"\", \"\"];\n\n// prettier-ignore\nconst MacRomanEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\",\n \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\",\n \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\",\n \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\",\n \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\",\n \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\",\n \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\",\n \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\",\n \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\",\n \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"\",\n \"Adieresis\", \"Aring\", \"Ccedilla\", \"Eacute\", \"Ntilde\", \"Odieresis\",\n \"Udieresis\", \"aacute\", \"agrave\", \"acircumflex\", \"adieresis\", \"atilde\",\n \"aring\", \"ccedilla\", \"eacute\", \"egrave\", \"ecircumflex\", \"edieresis\",\n \"iacute\", \"igrave\", \"icircumflex\", \"idieresis\", \"ntilde\", \"oacute\",\n \"ograve\", \"ocircumflex\", \"odieresis\", \"otilde\", \"uacute\", \"ugrave\",\n \"ucircumflex\", \"udieresis\", \"dagger\", \"degree\", \"cent\", \"sterling\",\n \"section\", \"bullet\", \"paragraph\", \"germandbls\", \"registered\", \"copyright\",\n \"trademark\", \"acute\", \"dieresis\", \"notequal\", \"AE\", \"Oslash\", \"infinity\",\n \"plusminus\", \"lessequal\", \"greaterequal\", \"yen\", \"mu\", \"partialdiff\",\n \"summation\", \"product\", \"pi\", \"integral\", \"ordfeminine\", \"ordmasculine\",\n \"Omega\", \"ae\", \"oslash\", \"questiondown\", \"exclamdown\", \"logicalnot\",\n \"radical\", \"florin\", \"approxequal\", \"Delta\", \"guillemotleft\",\n \"guillemotright\", \"ellipsis\", \"space\", \"Agrave\", \"Atilde\", \"Otilde\", \"OE\",\n \"oe\", \"endash\", \"emdash\", \"quotedblleft\", \"quotedblright\", \"quoteleft\",\n \"quoteright\", \"divide\", \"lozenge\", \"ydieresis\", \"Ydieresis\", \"fraction\",\n \"currency\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"daggerdbl\",\n \"periodcentered\", \"quotesinglbase\", \"quotedblbase\", \"perthousand\",\n \"Acircumflex\", \"Ecircumflex\", \"Aacute\", \"Edieresis\", \"Egrave\", \"Iacute\",\n \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Oacute\", \"Ocircumflex\", \"apple\",\n \"Ograve\", \"Uacute\", \"Ucircumflex\", \"Ugrave\", \"dotlessi\", \"circumflex\",\n \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"ring\", \"cedilla\", \"hungarumlaut\",\n \"ogonek\", \"caron\"];\n\n// prettier-ignore\nconst StandardEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\",\n \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\",\n \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\",\n \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\",\n \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\",\n \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\",\n \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\",\n \"asciicircum\", \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\",\n \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\",\n \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"exclamdown\",\n \"cent\", \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\",\n \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\",\n \"guilsinglright\", \"fi\", \"fl\", \"\", \"endash\", \"dagger\", \"daggerdbl\",\n \"periodcentered\", \"\", \"paragraph\", \"bullet\", \"quotesinglbase\",\n \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\",\n \"perthousand\", \"\", \"questiondown\", \"\", \"grave\", \"acute\", \"circumflex\",\n \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"\", \"ring\", \"cedilla\",\n \"\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"AE\", \"\", \"ordfeminine\", \"\", \"\",\n \"\", \"\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"\", \"\", \"\", \"\", \"\", \"ae\",\n \"\", \"\", \"\", \"dotlessi\", \"\", \"\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"\",\n \"\", \"\", \"\"];\n\n// prettier-ignore\nconst WinAnsiEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\",\n \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\",\n \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\",\n \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\",\n \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\",\n \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\",\n \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\",\n \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\",\n \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\",\n \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\",\n \"bullet\", \"Euro\", \"bullet\", \"quotesinglbase\", \"florin\", \"quotedblbase\",\n \"ellipsis\", \"dagger\", \"daggerdbl\", \"circumflex\", \"perthousand\", \"Scaron\",\n \"guilsinglleft\", \"OE\", \"bullet\", \"Zcaron\", \"bullet\", \"bullet\", \"quoteleft\",\n \"quoteright\", \"quotedblleft\", \"quotedblright\", \"bullet\", \"endash\",\n \"emdash\", \"tilde\", \"trademark\", \"scaron\", \"guilsinglright\", \"oe\", \"bullet\",\n \"zcaron\", \"Ydieresis\", \"space\", \"exclamdown\", \"cent\", \"sterling\",\n \"currency\", \"yen\", \"brokenbar\", \"section\", \"dieresis\", \"copyright\",\n \"ordfeminine\", \"guillemotleft\", \"logicalnot\", \"hyphen\", \"registered\",\n \"macron\", \"degree\", \"plusminus\", \"twosuperior\", \"threesuperior\", \"acute\",\n \"mu\", \"paragraph\", \"periodcentered\", \"cedilla\", \"onesuperior\",\n \"ordmasculine\", \"guillemotright\", \"onequarter\", \"onehalf\", \"threequarters\",\n \"questiondown\", \"Agrave\", \"Aacute\", \"Acircumflex\", \"Atilde\", \"Adieresis\",\n \"Aring\", \"AE\", \"Ccedilla\", \"Egrave\", \"Eacute\", \"Ecircumflex\", \"Edieresis\",\n \"Igrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Eth\", \"Ntilde\", \"Ograve\",\n \"Oacute\", \"Ocircumflex\", \"Otilde\", \"Odieresis\", \"multiply\", \"Oslash\",\n \"Ugrave\", \"Uacute\", \"Ucircumflex\", \"Udieresis\", \"Yacute\", \"Thorn\",\n \"germandbls\", \"agrave\", \"aacute\", \"acircumflex\", \"atilde\", \"adieresis\",\n \"aring\", \"ae\", \"ccedilla\", \"egrave\", \"eacute\", \"ecircumflex\", \"edieresis\",\n \"igrave\", \"iacute\", \"icircumflex\", \"idieresis\", \"eth\", \"ntilde\", \"ograve\",\n \"oacute\", \"ocircumflex\", \"otilde\", \"odieresis\", \"divide\", \"oslash\",\n \"ugrave\", \"uacute\", \"ucircumflex\", \"udieresis\", \"yacute\", \"thorn\",\n \"ydieresis\"];\n\n// prettier-ignore\nconst SymbolSetEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclam\", \"universal\", \"numbersign\", \"existential\", \"percent\",\n \"ampersand\", \"suchthat\", \"parenleft\", \"parenright\", \"asteriskmath\", \"plus\",\n \"comma\", \"minus\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\",\n \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\",\n \"equal\", \"greater\", \"question\", \"congruent\", \"Alpha\", \"Beta\", \"Chi\",\n \"Delta\", \"Epsilon\", \"Phi\", \"Gamma\", \"Eta\", \"Iota\", \"theta1\", \"Kappa\",\n \"Lambda\", \"Mu\", \"Nu\", \"Omicron\", \"Pi\", \"Theta\", \"Rho\", \"Sigma\", \"Tau\",\n \"Upsilon\", \"sigma1\", \"Omega\", \"Xi\", \"Psi\", \"Zeta\", \"bracketleft\",\n \"therefore\", \"bracketright\", \"perpendicular\", \"underscore\", \"radicalex\",\n \"alpha\", \"beta\", \"chi\", \"delta\", \"epsilon\", \"phi\", \"gamma\", \"eta\", \"iota\",\n \"phi1\", \"kappa\", \"lambda\", \"mu\", \"nu\", \"omicron\", \"pi\", \"theta\", \"rho\",\n \"sigma\", \"tau\", \"upsilon\", \"omega1\", \"omega\", \"xi\", \"psi\", \"zeta\",\n \"braceleft\", \"bar\", \"braceright\", \"similar\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"Euro\", \"Upsilon1\", \"minute\", \"lessequal\",\n \"fraction\", \"infinity\", \"florin\", \"club\", \"diamond\", \"heart\", \"spade\",\n \"arrowboth\", \"arrowleft\", \"arrowup\", \"arrowright\", \"arrowdown\", \"degree\",\n \"plusminus\", \"second\", \"greaterequal\", \"multiply\", \"proportional\",\n \"partialdiff\", \"bullet\", \"divide\", \"notequal\", \"equivalence\",\n \"approxequal\", \"ellipsis\", \"arrowvertex\", \"arrowhorizex\", \"carriagereturn\",\n \"aleph\", \"Ifraktur\", \"Rfraktur\", \"weierstrass\", \"circlemultiply\",\n \"circleplus\", \"emptyset\", \"intersection\", \"union\", \"propersuperset\",\n \"reflexsuperset\", \"notsubset\", \"propersubset\", \"reflexsubset\", \"element\",\n \"notelement\", \"angle\", \"gradient\", \"registerserif\", \"copyrightserif\",\n \"trademarkserif\", \"product\", \"radical\", \"dotmath\", \"logicalnot\",\n \"logicaland\", \"logicalor\", \"arrowdblboth\", \"arrowdblleft\", \"arrowdblup\",\n \"arrowdblright\", \"arrowdbldown\", \"lozenge\", \"angleleft\", \"registersans\",\n \"copyrightsans\", \"trademarksans\", \"summation\", \"parenlefttp\",\n \"parenleftex\", \"parenleftbt\", \"bracketlefttp\", \"bracketleftex\",\n \"bracketleftbt\", \"bracelefttp\", \"braceleftmid\", \"braceleftbt\", \"braceex\",\n \"\", \"angleright\", \"integral\", \"integraltp\", \"integralex\", \"integralbt\",\n \"parenrighttp\", \"parenrightex\", \"parenrightbt\", \"bracketrighttp\",\n \"bracketrightex\", \"bracketrightbt\", \"bracerighttp\", \"bracerightmid\",\n \"bracerightbt\", \"\"];\n\n// prettier-ignore\nconst ZapfDingbatsEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"a1\", \"a2\", \"a202\", \"a3\", \"a4\", \"a5\", \"a119\", \"a118\", \"a117\",\n \"a11\", \"a12\", \"a13\", \"a14\", \"a15\", \"a16\", \"a105\", \"a17\", \"a18\", \"a19\",\n \"a20\", \"a21\", \"a22\", \"a23\", \"a24\", \"a25\", \"a26\", \"a27\", \"a28\", \"a6\", \"a7\",\n \"a8\", \"a9\", \"a10\", \"a29\", \"a30\", \"a31\", \"a32\", \"a33\", \"a34\", \"a35\", \"a36\",\n \"a37\", \"a38\", \"a39\", \"a40\", \"a41\", \"a42\", \"a43\", \"a44\", \"a45\", \"a46\",\n \"a47\", \"a48\", \"a49\", \"a50\", \"a51\", \"a52\", \"a53\", \"a54\", \"a55\", \"a56\",\n \"a57\", \"a58\", \"a59\", \"a60\", \"a61\", \"a62\", \"a63\", \"a64\", \"a65\", \"a66\",\n \"a67\", \"a68\", \"a69\", \"a70\", \"a71\", \"a72\", \"a73\", \"a74\", \"a203\", \"a75\",\n \"a204\", \"a76\", \"a77\", \"a78\", \"a79\", \"a81\", \"a82\", \"a83\", \"a84\", \"a97\",\n \"a98\", \"a99\", \"a100\", \"\", \"a89\", \"a90\", \"a93\", \"a94\", \"a91\", \"a92\", \"a205\",\n \"a85\", \"a206\", \"a86\", \"a87\", \"a88\", \"a95\", \"a96\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"a101\", \"a102\", \"a103\",\n \"a104\", \"a106\", \"a107\", \"a108\", \"a112\", \"a111\", \"a110\", \"a109\", \"a120\",\n \"a121\", \"a122\", \"a123\", \"a124\", \"a125\", \"a126\", \"a127\", \"a128\", \"a129\",\n \"a130\", \"a131\", \"a132\", \"a133\", \"a134\", \"a135\", \"a136\", \"a137\", \"a138\",\n \"a139\", \"a140\", \"a141\", \"a142\", \"a143\", \"a144\", \"a145\", \"a146\", \"a147\",\n \"a148\", \"a149\", \"a150\", \"a151\", \"a152\", \"a153\", \"a154\", \"a155\", \"a156\",\n \"a157\", \"a158\", \"a159\", \"a160\", \"a161\", \"a163\", \"a164\", \"a196\", \"a165\",\n \"a192\", \"a166\", \"a167\", \"a168\", \"a169\", \"a170\", \"a171\", \"a172\", \"a173\",\n \"a162\", \"a174\", \"a175\", \"a176\", \"a177\", \"a178\", \"a179\", \"a193\", \"a180\",\n \"a199\", \"a181\", \"a200\", \"a182\", \"\", \"a201\", \"a183\", \"a184\", \"a197\", \"a185\",\n \"a194\", \"a198\", \"a186\", \"a195\", \"a187\", \"a188\", \"a189\", \"a190\", \"a191\", \"\"];\n\nfunction getEncoding(encodingName) {\n switch (encodingName) {\n case \"WinAnsiEncoding\":\n return WinAnsiEncoding;\n case \"StandardEncoding\":\n return StandardEncoding;\n case \"MacRomanEncoding\":\n return MacRomanEncoding;\n case \"SymbolSetEncoding\":\n return SymbolSetEncoding;\n case \"ZapfDingbatsEncoding\":\n return ZapfDingbatsEncoding;\n case \"ExpertEncoding\":\n return ExpertEncoding;\n case \"MacExpertEncoding\":\n return MacExpertEncoding;\n default:\n return null;\n }\n}\n\nexport {\n ExpertEncoding,\n getEncoding,\n MacRomanEncoding,\n StandardEncoding,\n SymbolSetEncoding,\n WinAnsiEncoding,\n ZapfDingbatsEncoding,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* no-babel-preset */\n\nimport { getArrayLookupTableFactory } from \"./core_utils.js\";\n\nconst getGlyphsUnicode = getArrayLookupTableFactory(function () {\n // prettier-ignore\n return [\n \"A\", 0x0041,\n \"AE\", 0x00c6,\n \"AEacute\", 0x01fc,\n \"AEmacron\", 0x01e2,\n \"AEsmall\", 0xf7e6,\n \"Aacute\", 0x00c1,\n \"Aacutesmall\", 0xf7e1,\n \"Abreve\", 0x0102,\n \"Abreveacute\", 0x1eae,\n \"Abrevecyrillic\", 0x04d0,\n \"Abrevedotbelow\", 0x1eb6,\n \"Abrevegrave\", 0x1eb0,\n \"Abrevehookabove\", 0x1eb2,\n \"Abrevetilde\", 0x1eb4,\n \"Acaron\", 0x01cd,\n \"Acircle\", 0x24b6,\n \"Acircumflex\", 0x00c2,\n \"Acircumflexacute\", 0x1ea4,\n \"Acircumflexdotbelow\", 0x1eac,\n \"Acircumflexgrave\", 0x1ea6,\n \"Acircumflexhookabove\", 0x1ea8,\n \"Acircumflexsmall\", 0xf7e2,\n \"Acircumflextilde\", 0x1eaa,\n \"Acute\", 0xf6c9,\n \"Acutesmall\", 0xf7b4,\n \"Acyrillic\", 0x0410,\n \"Adblgrave\", 0x0200,\n \"Adieresis\", 0x00c4,\n \"Adieresiscyrillic\", 0x04d2,\n \"Adieresismacron\", 0x01de,\n \"Adieresissmall\", 0xf7e4,\n \"Adotbelow\", 0x1ea0,\n \"Adotmacron\", 0x01e0,\n \"Agrave\", 0x00c0,\n \"Agravesmall\", 0xf7e0,\n \"Ahookabove\", 0x1ea2,\n \"Aiecyrillic\", 0x04d4,\n \"Ainvertedbreve\", 0x0202,\n \"Alpha\", 0x0391,\n \"Alphatonos\", 0x0386,\n \"Amacron\", 0x0100,\n \"Amonospace\", 0xff21,\n \"Aogonek\", 0x0104,\n \"Aring\", 0x00c5,\n \"Aringacute\", 0x01fa,\n \"Aringbelow\", 0x1e00,\n \"Aringsmall\", 0xf7e5,\n \"Asmall\", 0xf761,\n \"Atilde\", 0x00c3,\n \"Atildesmall\", 0xf7e3,\n \"Aybarmenian\", 0x0531,\n \"B\", 0x0042,\n \"Bcircle\", 0x24b7,\n \"Bdotaccent\", 0x1e02,\n \"Bdotbelow\", 0x1e04,\n \"Becyrillic\", 0x0411,\n \"Benarmenian\", 0x0532,\n \"Beta\", 0x0392,\n \"Bhook\", 0x0181,\n \"Blinebelow\", 0x1e06,\n \"Bmonospace\", 0xff22,\n \"Brevesmall\", 0xf6f4,\n \"Bsmall\", 0xf762,\n \"Btopbar\", 0x0182,\n \"C\", 0x0043,\n \"Caarmenian\", 0x053e,\n \"Cacute\", 0x0106,\n \"Caron\", 0xf6ca,\n \"Caronsmall\", 0xf6f5,\n \"Ccaron\", 0x010c,\n \"Ccedilla\", 0x00c7,\n \"Ccedillaacute\", 0x1e08,\n \"Ccedillasmall\", 0xf7e7,\n \"Ccircle\", 0x24b8,\n \"Ccircumflex\", 0x0108,\n \"Cdot\", 0x010a,\n \"Cdotaccent\", 0x010a,\n \"Cedillasmall\", 0xf7b8,\n \"Chaarmenian\", 0x0549,\n \"Cheabkhasiancyrillic\", 0x04bc,\n \"Checyrillic\", 0x0427,\n \"Chedescenderabkhasiancyrillic\", 0x04be,\n \"Chedescendercyrillic\", 0x04b6,\n \"Chedieresiscyrillic\", 0x04f4,\n \"Cheharmenian\", 0x0543,\n \"Chekhakassiancyrillic\", 0x04cb,\n \"Cheverticalstrokecyrillic\", 0x04b8,\n \"Chi\", 0x03a7,\n \"Chook\", 0x0187,\n \"Circumflexsmall\", 0xf6f6,\n \"Cmonospace\", 0xff23,\n \"Coarmenian\", 0x0551,\n \"Csmall\", 0xf763,\n \"D\", 0x0044,\n \"DZ\", 0x01f1,\n \"DZcaron\", 0x01c4,\n \"Daarmenian\", 0x0534,\n \"Dafrican\", 0x0189,\n \"Dcaron\", 0x010e,\n \"Dcedilla\", 0x1e10,\n \"Dcircle\", 0x24b9,\n \"Dcircumflexbelow\", 0x1e12,\n \"Dcroat\", 0x0110,\n \"Ddotaccent\", 0x1e0a,\n \"Ddotbelow\", 0x1e0c,\n \"Decyrillic\", 0x0414,\n \"Deicoptic\", 0x03ee,\n \"Delta\", 0x2206,\n \"Deltagreek\", 0x0394,\n \"Dhook\", 0x018a,\n \"Dieresis\", 0xf6cb,\n \"DieresisAcute\", 0xf6cc,\n \"DieresisGrave\", 0xf6cd,\n \"Dieresissmall\", 0xf7a8,\n \"Digammagreek\", 0x03dc,\n \"Djecyrillic\", 0x0402,\n \"Dlinebelow\", 0x1e0e,\n \"Dmonospace\", 0xff24,\n \"Dotaccentsmall\", 0xf6f7,\n \"Dslash\", 0x0110,\n \"Dsmall\", 0xf764,\n \"Dtopbar\", 0x018b,\n \"Dz\", 0x01f2,\n \"Dzcaron\", 0x01c5,\n \"Dzeabkhasiancyrillic\", 0x04e0,\n \"Dzecyrillic\", 0x0405,\n \"Dzhecyrillic\", 0x040f,\n \"E\", 0x0045,\n \"Eacute\", 0x00c9,\n \"Eacutesmall\", 0xf7e9,\n \"Ebreve\", 0x0114,\n \"Ecaron\", 0x011a,\n \"Ecedillabreve\", 0x1e1c,\n \"Echarmenian\", 0x0535,\n \"Ecircle\", 0x24ba,\n \"Ecircumflex\", 0x00ca,\n \"Ecircumflexacute\", 0x1ebe,\n \"Ecircumflexbelow\", 0x1e18,\n \"Ecircumflexdotbelow\", 0x1ec6,\n \"Ecircumflexgrave\", 0x1ec0,\n \"Ecircumflexhookabove\", 0x1ec2,\n \"Ecircumflexsmall\", 0xf7ea,\n \"Ecircumflextilde\", 0x1ec4,\n \"Ecyrillic\", 0x0404,\n \"Edblgrave\", 0x0204,\n \"Edieresis\", 0x00cb,\n \"Edieresissmall\", 0xf7eb,\n \"Edot\", 0x0116,\n \"Edotaccent\", 0x0116,\n \"Edotbelow\", 0x1eb8,\n \"Efcyrillic\", 0x0424,\n \"Egrave\", 0x00c8,\n \"Egravesmall\", 0xf7e8,\n \"Eharmenian\", 0x0537,\n \"Ehookabove\", 0x1eba,\n \"Eightroman\", 0x2167,\n \"Einvertedbreve\", 0x0206,\n \"Eiotifiedcyrillic\", 0x0464,\n \"Elcyrillic\", 0x041b,\n \"Elevenroman\", 0x216a,\n \"Emacron\", 0x0112,\n \"Emacronacute\", 0x1e16,\n \"Emacrongrave\", 0x1e14,\n \"Emcyrillic\", 0x041c,\n \"Emonospace\", 0xff25,\n \"Encyrillic\", 0x041d,\n \"Endescendercyrillic\", 0x04a2,\n \"Eng\", 0x014a,\n \"Enghecyrillic\", 0x04a4,\n \"Enhookcyrillic\", 0x04c7,\n \"Eogonek\", 0x0118,\n \"Eopen\", 0x0190,\n \"Epsilon\", 0x0395,\n \"Epsilontonos\", 0x0388,\n \"Ercyrillic\", 0x0420,\n \"Ereversed\", 0x018e,\n \"Ereversedcyrillic\", 0x042d,\n \"Escyrillic\", 0x0421,\n \"Esdescendercyrillic\", 0x04aa,\n \"Esh\", 0x01a9,\n \"Esmall\", 0xf765,\n \"Eta\", 0x0397,\n \"Etarmenian\", 0x0538,\n \"Etatonos\", 0x0389,\n \"Eth\", 0x00d0,\n \"Ethsmall\", 0xf7f0,\n \"Etilde\", 0x1ebc,\n \"Etildebelow\", 0x1e1a,\n \"Euro\", 0x20ac,\n \"Ezh\", 0x01b7,\n \"Ezhcaron\", 0x01ee,\n \"Ezhreversed\", 0x01b8,\n \"F\", 0x0046,\n \"Fcircle\", 0x24bb,\n \"Fdotaccent\", 0x1e1e,\n \"Feharmenian\", 0x0556,\n \"Feicoptic\", 0x03e4,\n \"Fhook\", 0x0191,\n \"Fitacyrillic\", 0x0472,\n \"Fiveroman\", 0x2164,\n \"Fmonospace\", 0xff26,\n \"Fourroman\", 0x2163,\n \"Fsmall\", 0xf766,\n \"G\", 0x0047,\n \"GBsquare\", 0x3387,\n \"Gacute\", 0x01f4,\n \"Gamma\", 0x0393,\n \"Gammaafrican\", 0x0194,\n \"Gangiacoptic\", 0x03ea,\n \"Gbreve\", 0x011e,\n \"Gcaron\", 0x01e6,\n \"Gcedilla\", 0x0122,\n \"Gcircle\", 0x24bc,\n \"Gcircumflex\", 0x011c,\n \"Gcommaaccent\", 0x0122,\n \"Gdot\", 0x0120,\n \"Gdotaccent\", 0x0120,\n \"Gecyrillic\", 0x0413,\n \"Ghadarmenian\", 0x0542,\n \"Ghemiddlehookcyrillic\", 0x0494,\n \"Ghestrokecyrillic\", 0x0492,\n \"Gheupturncyrillic\", 0x0490,\n \"Ghook\", 0x0193,\n \"Gimarmenian\", 0x0533,\n \"Gjecyrillic\", 0x0403,\n \"Gmacron\", 0x1e20,\n \"Gmonospace\", 0xff27,\n \"Grave\", 0xf6ce,\n \"Gravesmall\", 0xf760,\n \"Gsmall\", 0xf767,\n \"Gsmallhook\", 0x029b,\n \"Gstroke\", 0x01e4,\n \"H\", 0x0048,\n \"H18533\", 0x25cf,\n \"H18543\", 0x25aa,\n \"H18551\", 0x25ab,\n \"H22073\", 0x25a1,\n \"HPsquare\", 0x33cb,\n \"Haabkhasiancyrillic\", 0x04a8,\n \"Hadescendercyrillic\", 0x04b2,\n \"Hardsigncyrillic\", 0x042a,\n \"Hbar\", 0x0126,\n \"Hbrevebelow\", 0x1e2a,\n \"Hcedilla\", 0x1e28,\n \"Hcircle\", 0x24bd,\n \"Hcircumflex\", 0x0124,\n \"Hdieresis\", 0x1e26,\n \"Hdotaccent\", 0x1e22,\n \"Hdotbelow\", 0x1e24,\n \"Hmonospace\", 0xff28,\n \"Hoarmenian\", 0x0540,\n \"Horicoptic\", 0x03e8,\n \"Hsmall\", 0xf768,\n \"Hungarumlaut\", 0xf6cf,\n \"Hungarumlautsmall\", 0xf6f8,\n \"Hzsquare\", 0x3390,\n \"I\", 0x0049,\n \"IAcyrillic\", 0x042f,\n \"IJ\", 0x0132,\n \"IUcyrillic\", 0x042e,\n \"Iacute\", 0x00cd,\n \"Iacutesmall\", 0xf7ed,\n \"Ibreve\", 0x012c,\n \"Icaron\", 0x01cf,\n \"Icircle\", 0x24be,\n \"Icircumflex\", 0x00ce,\n \"Icircumflexsmall\", 0xf7ee,\n \"Icyrillic\", 0x0406,\n \"Idblgrave\", 0x0208,\n \"Idieresis\", 0x00cf,\n \"Idieresisacute\", 0x1e2e,\n \"Idieresiscyrillic\", 0x04e4,\n \"Idieresissmall\", 0xf7ef,\n \"Idot\", 0x0130,\n \"Idotaccent\", 0x0130,\n \"Idotbelow\", 0x1eca,\n \"Iebrevecyrillic\", 0x04d6,\n \"Iecyrillic\", 0x0415,\n \"Ifraktur\", 0x2111,\n \"Igrave\", 0x00cc,\n \"Igravesmall\", 0xf7ec,\n \"Ihookabove\", 0x1ec8,\n \"Iicyrillic\", 0x0418,\n \"Iinvertedbreve\", 0x020a,\n \"Iishortcyrillic\", 0x0419,\n \"Imacron\", 0x012a,\n \"Imacroncyrillic\", 0x04e2,\n \"Imonospace\", 0xff29,\n \"Iniarmenian\", 0x053b,\n \"Iocyrillic\", 0x0401,\n \"Iogonek\", 0x012e,\n \"Iota\", 0x0399,\n \"Iotaafrican\", 0x0196,\n \"Iotadieresis\", 0x03aa,\n \"Iotatonos\", 0x038a,\n \"Ismall\", 0xf769,\n \"Istroke\", 0x0197,\n \"Itilde\", 0x0128,\n \"Itildebelow\", 0x1e2c,\n \"Izhitsacyrillic\", 0x0474,\n \"Izhitsadblgravecyrillic\", 0x0476,\n \"J\", 0x004a,\n \"Jaarmenian\", 0x0541,\n \"Jcircle\", 0x24bf,\n \"Jcircumflex\", 0x0134,\n \"Jecyrillic\", 0x0408,\n \"Jheharmenian\", 0x054b,\n \"Jmonospace\", 0xff2a,\n \"Jsmall\", 0xf76a,\n \"K\", 0x004b,\n \"KBsquare\", 0x3385,\n \"KKsquare\", 0x33cd,\n \"Kabashkircyrillic\", 0x04a0,\n \"Kacute\", 0x1e30,\n \"Kacyrillic\", 0x041a,\n \"Kadescendercyrillic\", 0x049a,\n \"Kahookcyrillic\", 0x04c3,\n \"Kappa\", 0x039a,\n \"Kastrokecyrillic\", 0x049e,\n \"Kaverticalstrokecyrillic\", 0x049c,\n \"Kcaron\", 0x01e8,\n \"Kcedilla\", 0x0136,\n \"Kcircle\", 0x24c0,\n \"Kcommaaccent\", 0x0136,\n \"Kdotbelow\", 0x1e32,\n \"Keharmenian\", 0x0554,\n \"Kenarmenian\", 0x053f,\n \"Khacyrillic\", 0x0425,\n \"Kheicoptic\", 0x03e6,\n \"Khook\", 0x0198,\n \"Kjecyrillic\", 0x040c,\n \"Klinebelow\", 0x1e34,\n \"Kmonospace\", 0xff2b,\n \"Koppacyrillic\", 0x0480,\n \"Koppagreek\", 0x03de,\n \"Ksicyrillic\", 0x046e,\n \"Ksmall\", 0xf76b,\n \"L\", 0x004c,\n \"LJ\", 0x01c7,\n \"LL\", 0xf6bf,\n \"Lacute\", 0x0139,\n \"Lambda\", 0x039b,\n \"Lcaron\", 0x013d,\n \"Lcedilla\", 0x013b,\n \"Lcircle\", 0x24c1,\n \"Lcircumflexbelow\", 0x1e3c,\n \"Lcommaaccent\", 0x013b,\n \"Ldot\", 0x013f,\n \"Ldotaccent\", 0x013f,\n \"Ldotbelow\", 0x1e36,\n \"Ldotbelowmacron\", 0x1e38,\n \"Liwnarmenian\", 0x053c,\n \"Lj\", 0x01c8,\n \"Ljecyrillic\", 0x0409,\n \"Llinebelow\", 0x1e3a,\n \"Lmonospace\", 0xff2c,\n \"Lslash\", 0x0141,\n \"Lslashsmall\", 0xf6f9,\n \"Lsmall\", 0xf76c,\n \"M\", 0x004d,\n \"MBsquare\", 0x3386,\n \"Macron\", 0xf6d0,\n \"Macronsmall\", 0xf7af,\n \"Macute\", 0x1e3e,\n \"Mcircle\", 0x24c2,\n \"Mdotaccent\", 0x1e40,\n \"Mdotbelow\", 0x1e42,\n \"Menarmenian\", 0x0544,\n \"Mmonospace\", 0xff2d,\n \"Msmall\", 0xf76d,\n \"Mturned\", 0x019c,\n \"Mu\", 0x039c,\n \"N\", 0x004e,\n \"NJ\", 0x01ca,\n \"Nacute\", 0x0143,\n \"Ncaron\", 0x0147,\n \"Ncedilla\", 0x0145,\n \"Ncircle\", 0x24c3,\n \"Ncircumflexbelow\", 0x1e4a,\n \"Ncommaaccent\", 0x0145,\n \"Ndotaccent\", 0x1e44,\n \"Ndotbelow\", 0x1e46,\n \"Nhookleft\", 0x019d,\n \"Nineroman\", 0x2168,\n \"Nj\", 0x01cb,\n \"Njecyrillic\", 0x040a,\n \"Nlinebelow\", 0x1e48,\n \"Nmonospace\", 0xff2e,\n \"Nowarmenian\", 0x0546,\n \"Nsmall\", 0xf76e,\n \"Ntilde\", 0x00d1,\n \"Ntildesmall\", 0xf7f1,\n \"Nu\", 0x039d,\n \"O\", 0x004f,\n \"OE\", 0x0152,\n \"OEsmall\", 0xf6fa,\n \"Oacute\", 0x00d3,\n \"Oacutesmall\", 0xf7f3,\n \"Obarredcyrillic\", 0x04e8,\n \"Obarreddieresiscyrillic\", 0x04ea,\n \"Obreve\", 0x014e,\n \"Ocaron\", 0x01d1,\n \"Ocenteredtilde\", 0x019f,\n \"Ocircle\", 0x24c4,\n \"Ocircumflex\", 0x00d4,\n \"Ocircumflexacute\", 0x1ed0,\n \"Ocircumflexdotbelow\", 0x1ed8,\n \"Ocircumflexgrave\", 0x1ed2,\n \"Ocircumflexhookabove\", 0x1ed4,\n \"Ocircumflexsmall\", 0xf7f4,\n \"Ocircumflextilde\", 0x1ed6,\n \"Ocyrillic\", 0x041e,\n \"Odblacute\", 0x0150,\n \"Odblgrave\", 0x020c,\n \"Odieresis\", 0x00d6,\n \"Odieresiscyrillic\", 0x04e6,\n \"Odieresissmall\", 0xf7f6,\n \"Odotbelow\", 0x1ecc,\n \"Ogoneksmall\", 0xf6fb,\n \"Ograve\", 0x00d2,\n \"Ogravesmall\", 0xf7f2,\n \"Oharmenian\", 0x0555,\n \"Ohm\", 0x2126,\n \"Ohookabove\", 0x1ece,\n \"Ohorn\", 0x01a0,\n \"Ohornacute\", 0x1eda,\n \"Ohorndotbelow\", 0x1ee2,\n \"Ohorngrave\", 0x1edc,\n \"Ohornhookabove\", 0x1ede,\n \"Ohorntilde\", 0x1ee0,\n \"Ohungarumlaut\", 0x0150,\n \"Oi\", 0x01a2,\n \"Oinvertedbreve\", 0x020e,\n \"Omacron\", 0x014c,\n \"Omacronacute\", 0x1e52,\n \"Omacrongrave\", 0x1e50,\n \"Omega\", 0x2126,\n \"Omegacyrillic\", 0x0460,\n \"Omegagreek\", 0x03a9,\n \"Omegaroundcyrillic\", 0x047a,\n \"Omegatitlocyrillic\", 0x047c,\n \"Omegatonos\", 0x038f,\n \"Omicron\", 0x039f,\n \"Omicrontonos\", 0x038c,\n \"Omonospace\", 0xff2f,\n \"Oneroman\", 0x2160,\n \"Oogonek\", 0x01ea,\n \"Oogonekmacron\", 0x01ec,\n \"Oopen\", 0x0186,\n \"Oslash\", 0x00d8,\n \"Oslashacute\", 0x01fe,\n \"Oslashsmall\", 0xf7f8,\n \"Osmall\", 0xf76f,\n \"Ostrokeacute\", 0x01fe,\n \"Otcyrillic\", 0x047e,\n \"Otilde\", 0x00d5,\n \"Otildeacute\", 0x1e4c,\n \"Otildedieresis\", 0x1e4e,\n \"Otildesmall\", 0xf7f5,\n \"P\", 0x0050,\n \"Pacute\", 0x1e54,\n \"Pcircle\", 0x24c5,\n \"Pdotaccent\", 0x1e56,\n \"Pecyrillic\", 0x041f,\n \"Peharmenian\", 0x054a,\n \"Pemiddlehookcyrillic\", 0x04a6,\n \"Phi\", 0x03a6,\n \"Phook\", 0x01a4,\n \"Pi\", 0x03a0,\n \"Piwrarmenian\", 0x0553,\n \"Pmonospace\", 0xff30,\n \"Psi\", 0x03a8,\n \"Psicyrillic\", 0x0470,\n \"Psmall\", 0xf770,\n \"Q\", 0x0051,\n \"Qcircle\", 0x24c6,\n \"Qmonospace\", 0xff31,\n \"Qsmall\", 0xf771,\n \"R\", 0x0052,\n \"Raarmenian\", 0x054c,\n \"Racute\", 0x0154,\n \"Rcaron\", 0x0158,\n \"Rcedilla\", 0x0156,\n \"Rcircle\", 0x24c7,\n \"Rcommaaccent\", 0x0156,\n \"Rdblgrave\", 0x0210,\n \"Rdotaccent\", 0x1e58,\n \"Rdotbelow\", 0x1e5a,\n \"Rdotbelowmacron\", 0x1e5c,\n \"Reharmenian\", 0x0550,\n \"Rfraktur\", 0x211c,\n \"Rho\", 0x03a1,\n \"Ringsmall\", 0xf6fc,\n \"Rinvertedbreve\", 0x0212,\n \"Rlinebelow\", 0x1e5e,\n \"Rmonospace\", 0xff32,\n \"Rsmall\", 0xf772,\n \"Rsmallinverted\", 0x0281,\n \"Rsmallinvertedsuperior\", 0x02b6,\n \"S\", 0x0053,\n \"SF010000\", 0x250c,\n \"SF020000\", 0x2514,\n \"SF030000\", 0x2510,\n \"SF040000\", 0x2518,\n \"SF050000\", 0x253c,\n \"SF060000\", 0x252c,\n \"SF070000\", 0x2534,\n \"SF080000\", 0x251c,\n \"SF090000\", 0x2524,\n \"SF100000\", 0x2500,\n \"SF110000\", 0x2502,\n \"SF190000\", 0x2561,\n \"SF200000\", 0x2562,\n \"SF210000\", 0x2556,\n \"SF220000\", 0x2555,\n \"SF230000\", 0x2563,\n \"SF240000\", 0x2551,\n \"SF250000\", 0x2557,\n \"SF260000\", 0x255d,\n \"SF270000\", 0x255c,\n \"SF280000\", 0x255b,\n \"SF360000\", 0x255e,\n \"SF370000\", 0x255f,\n \"SF380000\", 0x255a,\n \"SF390000\", 0x2554,\n \"SF400000\", 0x2569,\n \"SF410000\", 0x2566,\n \"SF420000\", 0x2560,\n \"SF430000\", 0x2550,\n \"SF440000\", 0x256c,\n \"SF450000\", 0x2567,\n \"SF460000\", 0x2568,\n \"SF470000\", 0x2564,\n \"SF480000\", 0x2565,\n \"SF490000\", 0x2559,\n \"SF500000\", 0x2558,\n \"SF510000\", 0x2552,\n \"SF520000\", 0x2553,\n \"SF530000\", 0x256b,\n \"SF540000\", 0x256a,\n \"Sacute\", 0x015a,\n \"Sacutedotaccent\", 0x1e64,\n \"Sampigreek\", 0x03e0,\n \"Scaron\", 0x0160,\n \"Scarondotaccent\", 0x1e66,\n \"Scaronsmall\", 0xf6fd,\n \"Scedilla\", 0x015e,\n \"Schwa\", 0x018f,\n \"Schwacyrillic\", 0x04d8,\n \"Schwadieresiscyrillic\", 0x04da,\n \"Scircle\", 0x24c8,\n \"Scircumflex\", 0x015c,\n \"Scommaaccent\", 0x0218,\n \"Sdotaccent\", 0x1e60,\n \"Sdotbelow\", 0x1e62,\n \"Sdotbelowdotaccent\", 0x1e68,\n \"Seharmenian\", 0x054d,\n \"Sevenroman\", 0x2166,\n \"Shaarmenian\", 0x0547,\n \"Shacyrillic\", 0x0428,\n \"Shchacyrillic\", 0x0429,\n \"Sheicoptic\", 0x03e2,\n \"Shhacyrillic\", 0x04ba,\n \"Shimacoptic\", 0x03ec,\n \"Sigma\", 0x03a3,\n \"Sixroman\", 0x2165,\n \"Smonospace\", 0xff33,\n \"Softsigncyrillic\", 0x042c,\n \"Ssmall\", 0xf773,\n \"Stigmagreek\", 0x03da,\n \"T\", 0x0054,\n \"Tau\", 0x03a4,\n \"Tbar\", 0x0166,\n \"Tcaron\", 0x0164,\n \"Tcedilla\", 0x0162,\n \"Tcircle\", 0x24c9,\n \"Tcircumflexbelow\", 0x1e70,\n \"Tcommaaccent\", 0x0162,\n \"Tdotaccent\", 0x1e6a,\n \"Tdotbelow\", 0x1e6c,\n \"Tecyrillic\", 0x0422,\n \"Tedescendercyrillic\", 0x04ac,\n \"Tenroman\", 0x2169,\n \"Tetsecyrillic\", 0x04b4,\n \"Theta\", 0x0398,\n \"Thook\", 0x01ac,\n \"Thorn\", 0x00de,\n \"Thornsmall\", 0xf7fe,\n \"Threeroman\", 0x2162,\n \"Tildesmall\", 0xf6fe,\n \"Tiwnarmenian\", 0x054f,\n \"Tlinebelow\", 0x1e6e,\n \"Tmonospace\", 0xff34,\n \"Toarmenian\", 0x0539,\n \"Tonefive\", 0x01bc,\n \"Tonesix\", 0x0184,\n \"Tonetwo\", 0x01a7,\n \"Tretroflexhook\", 0x01ae,\n \"Tsecyrillic\", 0x0426,\n \"Tshecyrillic\", 0x040b,\n \"Tsmall\", 0xf774,\n \"Twelveroman\", 0x216b,\n \"Tworoman\", 0x2161,\n \"U\", 0x0055,\n \"Uacute\", 0x00da,\n \"Uacutesmall\", 0xf7fa,\n \"Ubreve\", 0x016c,\n \"Ucaron\", 0x01d3,\n \"Ucircle\", 0x24ca,\n \"Ucircumflex\", 0x00db,\n \"Ucircumflexbelow\", 0x1e76,\n \"Ucircumflexsmall\", 0xf7fb,\n \"Ucyrillic\", 0x0423,\n \"Udblacute\", 0x0170,\n \"Udblgrave\", 0x0214,\n \"Udieresis\", 0x00dc,\n \"Udieresisacute\", 0x01d7,\n \"Udieresisbelow\", 0x1e72,\n \"Udieresiscaron\", 0x01d9,\n \"Udieresiscyrillic\", 0x04f0,\n \"Udieresisgrave\", 0x01db,\n \"Udieresismacron\", 0x01d5,\n \"Udieresissmall\", 0xf7fc,\n \"Udotbelow\", 0x1ee4,\n \"Ugrave\", 0x00d9,\n \"Ugravesmall\", 0xf7f9,\n \"Uhookabove\", 0x1ee6,\n \"Uhorn\", 0x01af,\n \"Uhornacute\", 0x1ee8,\n \"Uhorndotbelow\", 0x1ef0,\n \"Uhorngrave\", 0x1eea,\n \"Uhornhookabove\", 0x1eec,\n \"Uhorntilde\", 0x1eee,\n \"Uhungarumlaut\", 0x0170,\n \"Uhungarumlautcyrillic\", 0x04f2,\n \"Uinvertedbreve\", 0x0216,\n \"Ukcyrillic\", 0x0478,\n \"Umacron\", 0x016a,\n \"Umacroncyrillic\", 0x04ee,\n \"Umacrondieresis\", 0x1e7a,\n \"Umonospace\", 0xff35,\n \"Uogonek\", 0x0172,\n \"Upsilon\", 0x03a5,\n \"Upsilon1\", 0x03d2,\n \"Upsilonacutehooksymbolgreek\", 0x03d3,\n \"Upsilonafrican\", 0x01b1,\n \"Upsilondieresis\", 0x03ab,\n \"Upsilondieresishooksymbolgreek\", 0x03d4,\n \"Upsilonhooksymbol\", 0x03d2,\n \"Upsilontonos\", 0x038e,\n \"Uring\", 0x016e,\n \"Ushortcyrillic\", 0x040e,\n \"Usmall\", 0xf775,\n \"Ustraightcyrillic\", 0x04ae,\n \"Ustraightstrokecyrillic\", 0x04b0,\n \"Utilde\", 0x0168,\n \"Utildeacute\", 0x1e78,\n \"Utildebelow\", 0x1e74,\n \"V\", 0x0056,\n \"Vcircle\", 0x24cb,\n \"Vdotbelow\", 0x1e7e,\n \"Vecyrillic\", 0x0412,\n \"Vewarmenian\", 0x054e,\n \"Vhook\", 0x01b2,\n \"Vmonospace\", 0xff36,\n \"Voarmenian\", 0x0548,\n \"Vsmall\", 0xf776,\n \"Vtilde\", 0x1e7c,\n \"W\", 0x0057,\n \"Wacute\", 0x1e82,\n \"Wcircle\", 0x24cc,\n \"Wcircumflex\", 0x0174,\n \"Wdieresis\", 0x1e84,\n \"Wdotaccent\", 0x1e86,\n \"Wdotbelow\", 0x1e88,\n \"Wgrave\", 0x1e80,\n \"Wmonospace\", 0xff37,\n \"Wsmall\", 0xf777,\n \"X\", 0x0058,\n \"Xcircle\", 0x24cd,\n \"Xdieresis\", 0x1e8c,\n \"Xdotaccent\", 0x1e8a,\n \"Xeharmenian\", 0x053d,\n \"Xi\", 0x039e,\n \"Xmonospace\", 0xff38,\n \"Xsmall\", 0xf778,\n \"Y\", 0x0059,\n \"Yacute\", 0x00dd,\n \"Yacutesmall\", 0xf7fd,\n \"Yatcyrillic\", 0x0462,\n \"Ycircle\", 0x24ce,\n \"Ycircumflex\", 0x0176,\n \"Ydieresis\", 0x0178,\n \"Ydieresissmall\", 0xf7ff,\n \"Ydotaccent\", 0x1e8e,\n \"Ydotbelow\", 0x1ef4,\n \"Yericyrillic\", 0x042b,\n \"Yerudieresiscyrillic\", 0x04f8,\n \"Ygrave\", 0x1ef2,\n \"Yhook\", 0x01b3,\n \"Yhookabove\", 0x1ef6,\n \"Yiarmenian\", 0x0545,\n \"Yicyrillic\", 0x0407,\n \"Yiwnarmenian\", 0x0552,\n \"Ymonospace\", 0xff39,\n \"Ysmall\", 0xf779,\n \"Ytilde\", 0x1ef8,\n \"Yusbigcyrillic\", 0x046a,\n \"Yusbigiotifiedcyrillic\", 0x046c,\n \"Yuslittlecyrillic\", 0x0466,\n \"Yuslittleiotifiedcyrillic\", 0x0468,\n \"Z\", 0x005a,\n \"Zaarmenian\", 0x0536,\n \"Zacute\", 0x0179,\n \"Zcaron\", 0x017d,\n \"Zcaronsmall\", 0xf6ff,\n \"Zcircle\", 0x24cf,\n \"Zcircumflex\", 0x1e90,\n \"Zdot\", 0x017b,\n \"Zdotaccent\", 0x017b,\n \"Zdotbelow\", 0x1e92,\n \"Zecyrillic\", 0x0417,\n \"Zedescendercyrillic\", 0x0498,\n \"Zedieresiscyrillic\", 0x04de,\n \"Zeta\", 0x0396,\n \"Zhearmenian\", 0x053a,\n \"Zhebrevecyrillic\", 0x04c1,\n \"Zhecyrillic\", 0x0416,\n \"Zhedescendercyrillic\", 0x0496,\n \"Zhedieresiscyrillic\", 0x04dc,\n \"Zlinebelow\", 0x1e94,\n \"Zmonospace\", 0xff3a,\n \"Zsmall\", 0xf77a,\n \"Zstroke\", 0x01b5,\n \"a\", 0x0061,\n \"aabengali\", 0x0986,\n \"aacute\", 0x00e1,\n \"aadeva\", 0x0906,\n \"aagujarati\", 0x0a86,\n \"aagurmukhi\", 0x0a06,\n \"aamatragurmukhi\", 0x0a3e,\n \"aarusquare\", 0x3303,\n \"aavowelsignbengali\", 0x09be,\n \"aavowelsigndeva\", 0x093e,\n \"aavowelsigngujarati\", 0x0abe,\n \"abbreviationmarkarmenian\", 0x055f,\n \"abbreviationsigndeva\", 0x0970,\n \"abengali\", 0x0985,\n \"abopomofo\", 0x311a,\n \"abreve\", 0x0103,\n \"abreveacute\", 0x1eaf,\n \"abrevecyrillic\", 0x04d1,\n \"abrevedotbelow\", 0x1eb7,\n \"abrevegrave\", 0x1eb1,\n \"abrevehookabove\", 0x1eb3,\n \"abrevetilde\", 0x1eb5,\n \"acaron\", 0x01ce,\n \"acircle\", 0x24d0,\n \"acircumflex\", 0x00e2,\n \"acircumflexacute\", 0x1ea5,\n \"acircumflexdotbelow\", 0x1ead,\n \"acircumflexgrave\", 0x1ea7,\n \"acircumflexhookabove\", 0x1ea9,\n \"acircumflextilde\", 0x1eab,\n \"acute\", 0x00b4,\n \"acutebelowcmb\", 0x0317,\n \"acutecmb\", 0x0301,\n \"acutecomb\", 0x0301,\n \"acutedeva\", 0x0954,\n \"acutelowmod\", 0x02cf,\n \"acutetonecmb\", 0x0341,\n \"acyrillic\", 0x0430,\n \"adblgrave\", 0x0201,\n \"addakgurmukhi\", 0x0a71,\n \"adeva\", 0x0905,\n \"adieresis\", 0x00e4,\n \"adieresiscyrillic\", 0x04d3,\n \"adieresismacron\", 0x01df,\n \"adotbelow\", 0x1ea1,\n \"adotmacron\", 0x01e1,\n \"ae\", 0x00e6,\n \"aeacute\", 0x01fd,\n \"aekorean\", 0x3150,\n \"aemacron\", 0x01e3,\n \"afii00208\", 0x2015,\n \"afii08941\", 0x20a4,\n \"afii10017\", 0x0410,\n \"afii10018\", 0x0411,\n \"afii10019\", 0x0412,\n \"afii10020\", 0x0413,\n \"afii10021\", 0x0414,\n \"afii10022\", 0x0415,\n \"afii10023\", 0x0401,\n \"afii10024\", 0x0416,\n \"afii10025\", 0x0417,\n \"afii10026\", 0x0418,\n \"afii10027\", 0x0419,\n \"afii10028\", 0x041a,\n \"afii10029\", 0x041b,\n \"afii10030\", 0x041c,\n \"afii10031\", 0x041d,\n \"afii10032\", 0x041e,\n \"afii10033\", 0x041f,\n \"afii10034\", 0x0420,\n \"afii10035\", 0x0421,\n \"afii10036\", 0x0422,\n \"afii10037\", 0x0423,\n \"afii10038\", 0x0424,\n \"afii10039\", 0x0425,\n \"afii10040\", 0x0426,\n \"afii10041\", 0x0427,\n \"afii10042\", 0x0428,\n \"afii10043\", 0x0429,\n \"afii10044\", 0x042a,\n \"afii10045\", 0x042b,\n \"afii10046\", 0x042c,\n \"afii10047\", 0x042d,\n \"afii10048\", 0x042e,\n \"afii10049\", 0x042f,\n \"afii10050\", 0x0490,\n \"afii10051\", 0x0402,\n \"afii10052\", 0x0403,\n \"afii10053\", 0x0404,\n \"afii10054\", 0x0405,\n \"afii10055\", 0x0406,\n \"afii10056\", 0x0407,\n \"afii10057\", 0x0408,\n \"afii10058\", 0x0409,\n \"afii10059\", 0x040a,\n \"afii10060\", 0x040b,\n \"afii10061\", 0x040c,\n \"afii10062\", 0x040e,\n \"afii10063\", 0xf6c4,\n \"afii10064\", 0xf6c5,\n \"afii10065\", 0x0430,\n \"afii10066\", 0x0431,\n \"afii10067\", 0x0432,\n \"afii10068\", 0x0433,\n \"afii10069\", 0x0434,\n \"afii10070\", 0x0435,\n \"afii10071\", 0x0451,\n \"afii10072\", 0x0436,\n \"afii10073\", 0x0437,\n \"afii10074\", 0x0438,\n \"afii10075\", 0x0439,\n \"afii10076\", 0x043a,\n \"afii10077\", 0x043b,\n \"afii10078\", 0x043c,\n \"afii10079\", 0x043d,\n \"afii10080\", 0x043e,\n \"afii10081\", 0x043f,\n \"afii10082\", 0x0440,\n \"afii10083\", 0x0441,\n \"afii10084\", 0x0442,\n \"afii10085\", 0x0443,\n \"afii10086\", 0x0444,\n \"afii10087\", 0x0445,\n \"afii10088\", 0x0446,\n \"afii10089\", 0x0447,\n \"afii10090\", 0x0448,\n \"afii10091\", 0x0449,\n \"afii10092\", 0x044a,\n \"afii10093\", 0x044b,\n \"afii10094\", 0x044c,\n \"afii10095\", 0x044d,\n \"afii10096\", 0x044e,\n \"afii10097\", 0x044f,\n \"afii10098\", 0x0491,\n \"afii10099\", 0x0452,\n \"afii10100\", 0x0453,\n \"afii10101\", 0x0454,\n \"afii10102\", 0x0455,\n \"afii10103\", 0x0456,\n \"afii10104\", 0x0457,\n \"afii10105\", 0x0458,\n \"afii10106\", 0x0459,\n \"afii10107\", 0x045a,\n \"afii10108\", 0x045b,\n \"afii10109\", 0x045c,\n \"afii10110\", 0x045e,\n \"afii10145\", 0x040f,\n \"afii10146\", 0x0462,\n \"afii10147\", 0x0472,\n \"afii10148\", 0x0474,\n \"afii10192\", 0xf6c6,\n \"afii10193\", 0x045f,\n \"afii10194\", 0x0463,\n \"afii10195\", 0x0473,\n \"afii10196\", 0x0475,\n \"afii10831\", 0xf6c7,\n \"afii10832\", 0xf6c8,\n \"afii10846\", 0x04d9,\n \"afii299\", 0x200e,\n \"afii300\", 0x200f,\n \"afii301\", 0x200d,\n \"afii57381\", 0x066a,\n \"afii57388\", 0x060c,\n \"afii57392\", 0x0660,\n \"afii57393\", 0x0661,\n \"afii57394\", 0x0662,\n \"afii57395\", 0x0663,\n \"afii57396\", 0x0664,\n \"afii57397\", 0x0665,\n \"afii57398\", 0x0666,\n \"afii57399\", 0x0667,\n \"afii57400\", 0x0668,\n \"afii57401\", 0x0669,\n \"afii57403\", 0x061b,\n \"afii57407\", 0x061f,\n \"afii57409\", 0x0621,\n \"afii57410\", 0x0622,\n \"afii57411\", 0x0623,\n \"afii57412\", 0x0624,\n \"afii57413\", 0x0625,\n \"afii57414\", 0x0626,\n \"afii57415\", 0x0627,\n \"afii57416\", 0x0628,\n \"afii57417\", 0x0629,\n \"afii57418\", 0x062a,\n \"afii57419\", 0x062b,\n \"afii57420\", 0x062c,\n \"afii57421\", 0x062d,\n \"afii57422\", 0x062e,\n \"afii57423\", 0x062f,\n \"afii57424\", 0x0630,\n \"afii57425\", 0x0631,\n \"afii57426\", 0x0632,\n \"afii57427\", 0x0633,\n \"afii57428\", 0x0634,\n \"afii57429\", 0x0635,\n \"afii57430\", 0x0636,\n \"afii57431\", 0x0637,\n \"afii57432\", 0x0638,\n \"afii57433\", 0x0639,\n \"afii57434\", 0x063a,\n \"afii57440\", 0x0640,\n \"afii57441\", 0x0641,\n \"afii57442\", 0x0642,\n \"afii57443\", 0x0643,\n \"afii57444\", 0x0644,\n \"afii57445\", 0x0645,\n \"afii57446\", 0x0646,\n \"afii57448\", 0x0648,\n \"afii57449\", 0x0649,\n \"afii57450\", 0x064a,\n \"afii57451\", 0x064b,\n \"afii57452\", 0x064c,\n \"afii57453\", 0x064d,\n \"afii57454\", 0x064e,\n \"afii57455\", 0x064f,\n \"afii57456\", 0x0650,\n \"afii57457\", 0x0651,\n \"afii57458\", 0x0652,\n \"afii57470\", 0x0647,\n \"afii57505\", 0x06a4,\n \"afii57506\", 0x067e,\n \"afii57507\", 0x0686,\n \"afii57508\", 0x0698,\n \"afii57509\", 0x06af,\n \"afii57511\", 0x0679,\n \"afii57512\", 0x0688,\n \"afii57513\", 0x0691,\n \"afii57514\", 0x06ba,\n \"afii57519\", 0x06d2,\n \"afii57534\", 0x06d5,\n \"afii57636\", 0x20aa,\n \"afii57645\", 0x05be,\n \"afii57658\", 0x05c3,\n \"afii57664\", 0x05d0,\n \"afii57665\", 0x05d1,\n \"afii57666\", 0x05d2,\n \"afii57667\", 0x05d3,\n \"afii57668\", 0x05d4,\n \"afii57669\", 0x05d5,\n \"afii57670\", 0x05d6,\n \"afii57671\", 0x05d7,\n \"afii57672\", 0x05d8,\n \"afii57673\", 0x05d9,\n \"afii57674\", 0x05da,\n \"afii57675\", 0x05db,\n \"afii57676\", 0x05dc,\n \"afii57677\", 0x05dd,\n \"afii57678\", 0x05de,\n \"afii57679\", 0x05df,\n \"afii57680\", 0x05e0,\n \"afii57681\", 0x05e1,\n \"afii57682\", 0x05e2,\n \"afii57683\", 0x05e3,\n \"afii57684\", 0x05e4,\n \"afii57685\", 0x05e5,\n \"afii57686\", 0x05e6,\n \"afii57687\", 0x05e7,\n \"afii57688\", 0x05e8,\n \"afii57689\", 0x05e9,\n \"afii57690\", 0x05ea,\n \"afii57694\", 0xfb2a,\n \"afii57695\", 0xfb2b,\n \"afii57700\", 0xfb4b,\n \"afii57705\", 0xfb1f,\n \"afii57716\", 0x05f0,\n \"afii57717\", 0x05f1,\n \"afii57718\", 0x05f2,\n \"afii57723\", 0xfb35,\n \"afii57793\", 0x05b4,\n \"afii57794\", 0x05b5,\n \"afii57795\", 0x05b6,\n \"afii57796\", 0x05bb,\n \"afii57797\", 0x05b8,\n \"afii57798\", 0x05b7,\n \"afii57799\", 0x05b0,\n \"afii57800\", 0x05b2,\n \"afii57801\", 0x05b1,\n \"afii57802\", 0x05b3,\n \"afii57803\", 0x05c2,\n \"afii57804\", 0x05c1,\n \"afii57806\", 0x05b9,\n \"afii57807\", 0x05bc,\n \"afii57839\", 0x05bd,\n \"afii57841\", 0x05bf,\n \"afii57842\", 0x05c0,\n \"afii57929\", 0x02bc,\n \"afii61248\", 0x2105,\n \"afii61289\", 0x2113,\n \"afii61352\", 0x2116,\n \"afii61573\", 0x202c,\n \"afii61574\", 0x202d,\n \"afii61575\", 0x202e,\n \"afii61664\", 0x200c,\n \"afii63167\", 0x066d,\n \"afii64937\", 0x02bd,\n \"agrave\", 0x00e0,\n \"agujarati\", 0x0a85,\n \"agurmukhi\", 0x0a05,\n \"ahiragana\", 0x3042,\n \"ahookabove\", 0x1ea3,\n \"aibengali\", 0x0990,\n \"aibopomofo\", 0x311e,\n \"aideva\", 0x0910,\n \"aiecyrillic\", 0x04d5,\n \"aigujarati\", 0x0a90,\n \"aigurmukhi\", 0x0a10,\n \"aimatragurmukhi\", 0x0a48,\n \"ainarabic\", 0x0639,\n \"ainfinalarabic\", 0xfeca,\n \"aininitialarabic\", 0xfecb,\n \"ainmedialarabic\", 0xfecc,\n \"ainvertedbreve\", 0x0203,\n \"aivowelsignbengali\", 0x09c8,\n \"aivowelsigndeva\", 0x0948,\n \"aivowelsigngujarati\", 0x0ac8,\n \"akatakana\", 0x30a2,\n \"akatakanahalfwidth\", 0xff71,\n \"akorean\", 0x314f,\n \"alef\", 0x05d0,\n \"alefarabic\", 0x0627,\n \"alefdageshhebrew\", 0xfb30,\n \"aleffinalarabic\", 0xfe8e,\n \"alefhamzaabovearabic\", 0x0623,\n \"alefhamzaabovefinalarabic\", 0xfe84,\n \"alefhamzabelowarabic\", 0x0625,\n \"alefhamzabelowfinalarabic\", 0xfe88,\n \"alefhebrew\", 0x05d0,\n \"aleflamedhebrew\", 0xfb4f,\n \"alefmaddaabovearabic\", 0x0622,\n \"alefmaddaabovefinalarabic\", 0xfe82,\n \"alefmaksuraarabic\", 0x0649,\n \"alefmaksurafinalarabic\", 0xfef0,\n \"alefmaksurainitialarabic\", 0xfef3,\n \"alefmaksuramedialarabic\", 0xfef4,\n \"alefpatahhebrew\", 0xfb2e,\n \"alefqamatshebrew\", 0xfb2f,\n \"aleph\", 0x2135,\n \"allequal\", 0x224c,\n \"alpha\", 0x03b1,\n \"alphatonos\", 0x03ac,\n \"amacron\", 0x0101,\n \"amonospace\", 0xff41,\n \"ampersand\", 0x0026,\n \"ampersandmonospace\", 0xff06,\n \"ampersandsmall\", 0xf726,\n \"amsquare\", 0x33c2,\n \"anbopomofo\", 0x3122,\n \"angbopomofo\", 0x3124,\n \"angbracketleft\", 0x3008, // Glyph is missing from Adobe's original list.\n \"angbracketright\", 0x3009, // Glyph is missing from Adobe's original list.\n \"angkhankhuthai\", 0x0e5a,\n \"angle\", 0x2220,\n \"anglebracketleft\", 0x3008,\n \"anglebracketleftvertical\", 0xfe3f,\n \"anglebracketright\", 0x3009,\n \"anglebracketrightvertical\", 0xfe40,\n \"angleleft\", 0x2329,\n \"angleright\", 0x232a,\n \"angstrom\", 0x212b,\n \"anoteleia\", 0x0387,\n \"anudattadeva\", 0x0952,\n \"anusvarabengali\", 0x0982,\n \"anusvaradeva\", 0x0902,\n \"anusvaragujarati\", 0x0a82,\n \"aogonek\", 0x0105,\n \"apaatosquare\", 0x3300,\n \"aparen\", 0x249c,\n \"apostrophearmenian\", 0x055a,\n \"apostrophemod\", 0x02bc,\n \"apple\", 0xf8ff,\n \"approaches\", 0x2250,\n \"approxequal\", 0x2248,\n \"approxequalorimage\", 0x2252,\n \"approximatelyequal\", 0x2245,\n \"araeaekorean\", 0x318e,\n \"araeakorean\", 0x318d,\n \"arc\", 0x2312,\n \"arighthalfring\", 0x1e9a,\n \"aring\", 0x00e5,\n \"aringacute\", 0x01fb,\n \"aringbelow\", 0x1e01,\n \"arrowboth\", 0x2194,\n \"arrowdashdown\", 0x21e3,\n \"arrowdashleft\", 0x21e0,\n \"arrowdashright\", 0x21e2,\n \"arrowdashup\", 0x21e1,\n \"arrowdblboth\", 0x21d4,\n \"arrowdbldown\", 0x21d3,\n \"arrowdblleft\", 0x21d0,\n \"arrowdblright\", 0x21d2,\n \"arrowdblup\", 0x21d1,\n \"arrowdown\", 0x2193,\n \"arrowdownleft\", 0x2199,\n \"arrowdownright\", 0x2198,\n \"arrowdownwhite\", 0x21e9,\n \"arrowheaddownmod\", 0x02c5,\n \"arrowheadleftmod\", 0x02c2,\n \"arrowheadrightmod\", 0x02c3,\n \"arrowheadupmod\", 0x02c4,\n \"arrowhorizex\", 0xf8e7,\n \"arrowleft\", 0x2190,\n \"arrowleftdbl\", 0x21d0,\n \"arrowleftdblstroke\", 0x21cd,\n \"arrowleftoverright\", 0x21c6,\n \"arrowleftwhite\", 0x21e6,\n \"arrowright\", 0x2192,\n \"arrowrightdblstroke\", 0x21cf,\n \"arrowrightheavy\", 0x279e,\n \"arrowrightoverleft\", 0x21c4,\n \"arrowrightwhite\", 0x21e8,\n \"arrowtableft\", 0x21e4,\n \"arrowtabright\", 0x21e5,\n \"arrowup\", 0x2191,\n \"arrowupdn\", 0x2195,\n \"arrowupdnbse\", 0x21a8,\n \"arrowupdownbase\", 0x21a8,\n \"arrowupleft\", 0x2196,\n \"arrowupleftofdown\", 0x21c5,\n \"arrowupright\", 0x2197,\n \"arrowupwhite\", 0x21e7,\n \"arrowvertex\", 0xf8e6,\n \"asciicircum\", 0x005e,\n \"asciicircummonospace\", 0xff3e,\n \"asciitilde\", 0x007e,\n \"asciitildemonospace\", 0xff5e,\n \"ascript\", 0x0251,\n \"ascriptturned\", 0x0252,\n \"asmallhiragana\", 0x3041,\n \"asmallkatakana\", 0x30a1,\n \"asmallkatakanahalfwidth\", 0xff67,\n \"asterisk\", 0x002a,\n \"asteriskaltonearabic\", 0x066d,\n \"asteriskarabic\", 0x066d,\n \"asteriskmath\", 0x2217,\n \"asteriskmonospace\", 0xff0a,\n \"asterisksmall\", 0xfe61,\n \"asterism\", 0x2042,\n \"asuperior\", 0xf6e9,\n \"asymptoticallyequal\", 0x2243,\n \"at\", 0x0040,\n \"atilde\", 0x00e3,\n \"atmonospace\", 0xff20,\n \"atsmall\", 0xfe6b,\n \"aturned\", 0x0250,\n \"aubengali\", 0x0994,\n \"aubopomofo\", 0x3120,\n \"audeva\", 0x0914,\n \"augujarati\", 0x0a94,\n \"augurmukhi\", 0x0a14,\n \"aulengthmarkbengali\", 0x09d7,\n \"aumatragurmukhi\", 0x0a4c,\n \"auvowelsignbengali\", 0x09cc,\n \"auvowelsigndeva\", 0x094c,\n \"auvowelsigngujarati\", 0x0acc,\n \"avagrahadeva\", 0x093d,\n \"aybarmenian\", 0x0561,\n \"ayin\", 0x05e2,\n \"ayinaltonehebrew\", 0xfb20,\n \"ayinhebrew\", 0x05e2,\n \"b\", 0x0062,\n \"babengali\", 0x09ac,\n \"backslash\", 0x005c,\n \"backslashmonospace\", 0xff3c,\n \"badeva\", 0x092c,\n \"bagujarati\", 0x0aac,\n \"bagurmukhi\", 0x0a2c,\n \"bahiragana\", 0x3070,\n \"bahtthai\", 0x0e3f,\n \"bakatakana\", 0x30d0,\n \"bar\", 0x007c,\n \"barmonospace\", 0xff5c,\n \"bbopomofo\", 0x3105,\n \"bcircle\", 0x24d1,\n \"bdotaccent\", 0x1e03,\n \"bdotbelow\", 0x1e05,\n \"beamedsixteenthnotes\", 0x266c,\n \"because\", 0x2235,\n \"becyrillic\", 0x0431,\n \"beharabic\", 0x0628,\n \"behfinalarabic\", 0xfe90,\n \"behinitialarabic\", 0xfe91,\n \"behiragana\", 0x3079,\n \"behmedialarabic\", 0xfe92,\n \"behmeeminitialarabic\", 0xfc9f,\n \"behmeemisolatedarabic\", 0xfc08,\n \"behnoonfinalarabic\", 0xfc6d,\n \"bekatakana\", 0x30d9,\n \"benarmenian\", 0x0562,\n \"bet\", 0x05d1,\n \"beta\", 0x03b2,\n \"betasymbolgreek\", 0x03d0,\n \"betdagesh\", 0xfb31,\n \"betdageshhebrew\", 0xfb31,\n \"bethebrew\", 0x05d1,\n \"betrafehebrew\", 0xfb4c,\n \"bhabengali\", 0x09ad,\n \"bhadeva\", 0x092d,\n \"bhagujarati\", 0x0aad,\n \"bhagurmukhi\", 0x0a2d,\n \"bhook\", 0x0253,\n \"bihiragana\", 0x3073,\n \"bikatakana\", 0x30d3,\n \"bilabialclick\", 0x0298,\n \"bindigurmukhi\", 0x0a02,\n \"birusquare\", 0x3331,\n \"blackcircle\", 0x25cf,\n \"blackdiamond\", 0x25c6,\n \"blackdownpointingtriangle\", 0x25bc,\n \"blackleftpointingpointer\", 0x25c4,\n \"blackleftpointingtriangle\", 0x25c0,\n \"blacklenticularbracketleft\", 0x3010,\n \"blacklenticularbracketleftvertical\", 0xfe3b,\n \"blacklenticularbracketright\", 0x3011,\n \"blacklenticularbracketrightvertical\", 0xfe3c,\n \"blacklowerlefttriangle\", 0x25e3,\n \"blacklowerrighttriangle\", 0x25e2,\n \"blackrectangle\", 0x25ac,\n \"blackrightpointingpointer\", 0x25ba,\n \"blackrightpointingtriangle\", 0x25b6,\n \"blacksmallsquare\", 0x25aa,\n \"blacksmilingface\", 0x263b,\n \"blacksquare\", 0x25a0,\n \"blackstar\", 0x2605,\n \"blackupperlefttriangle\", 0x25e4,\n \"blackupperrighttriangle\", 0x25e5,\n \"blackuppointingsmalltriangle\", 0x25b4,\n \"blackuppointingtriangle\", 0x25b2,\n \"blank\", 0x2423,\n \"blinebelow\", 0x1e07,\n \"block\", 0x2588,\n \"bmonospace\", 0xff42,\n \"bobaimaithai\", 0x0e1a,\n \"bohiragana\", 0x307c,\n \"bokatakana\", 0x30dc,\n \"bparen\", 0x249d,\n \"bqsquare\", 0x33c3,\n \"braceex\", 0xf8f4,\n \"braceleft\", 0x007b,\n \"braceleftbt\", 0xf8f3,\n \"braceleftmid\", 0xf8f2,\n \"braceleftmonospace\", 0xff5b,\n \"braceleftsmall\", 0xfe5b,\n \"bracelefttp\", 0xf8f1,\n \"braceleftvertical\", 0xfe37,\n \"braceright\", 0x007d,\n \"bracerightbt\", 0xf8fe,\n \"bracerightmid\", 0xf8fd,\n \"bracerightmonospace\", 0xff5d,\n \"bracerightsmall\", 0xfe5c,\n \"bracerighttp\", 0xf8fc,\n \"bracerightvertical\", 0xfe38,\n \"bracketleft\", 0x005b,\n \"bracketleftbt\", 0xf8f0,\n \"bracketleftex\", 0xf8ef,\n \"bracketleftmonospace\", 0xff3b,\n \"bracketlefttp\", 0xf8ee,\n \"bracketright\", 0x005d,\n \"bracketrightbt\", 0xf8fb,\n \"bracketrightex\", 0xf8fa,\n \"bracketrightmonospace\", 0xff3d,\n \"bracketrighttp\", 0xf8f9,\n \"breve\", 0x02d8,\n \"brevebelowcmb\", 0x032e,\n \"brevecmb\", 0x0306,\n \"breveinvertedbelowcmb\", 0x032f,\n \"breveinvertedcmb\", 0x0311,\n \"breveinverteddoublecmb\", 0x0361,\n \"bridgebelowcmb\", 0x032a,\n \"bridgeinvertedbelowcmb\", 0x033a,\n \"brokenbar\", 0x00a6,\n \"bstroke\", 0x0180,\n \"bsuperior\", 0xf6ea,\n \"btopbar\", 0x0183,\n \"buhiragana\", 0x3076,\n \"bukatakana\", 0x30d6,\n \"bullet\", 0x2022,\n \"bulletinverse\", 0x25d8,\n \"bulletoperator\", 0x2219,\n \"bullseye\", 0x25ce,\n \"c\", 0x0063,\n \"caarmenian\", 0x056e,\n \"cabengali\", 0x099a,\n \"cacute\", 0x0107,\n \"cadeva\", 0x091a,\n \"cagujarati\", 0x0a9a,\n \"cagurmukhi\", 0x0a1a,\n \"calsquare\", 0x3388,\n \"candrabindubengali\", 0x0981,\n \"candrabinducmb\", 0x0310,\n \"candrabindudeva\", 0x0901,\n \"candrabindugujarati\", 0x0a81,\n \"capslock\", 0x21ea,\n \"careof\", 0x2105,\n \"caron\", 0x02c7,\n \"caronbelowcmb\", 0x032c,\n \"caroncmb\", 0x030c,\n \"carriagereturn\", 0x21b5,\n \"cbopomofo\", 0x3118,\n \"ccaron\", 0x010d,\n \"ccedilla\", 0x00e7,\n \"ccedillaacute\", 0x1e09,\n \"ccircle\", 0x24d2,\n \"ccircumflex\", 0x0109,\n \"ccurl\", 0x0255,\n \"cdot\", 0x010b,\n \"cdotaccent\", 0x010b,\n \"cdsquare\", 0x33c5,\n \"cedilla\", 0x00b8,\n \"cedillacmb\", 0x0327,\n \"cent\", 0x00a2,\n \"centigrade\", 0x2103,\n \"centinferior\", 0xf6df,\n \"centmonospace\", 0xffe0,\n \"centoldstyle\", 0xf7a2,\n \"centsuperior\", 0xf6e0,\n \"chaarmenian\", 0x0579,\n \"chabengali\", 0x099b,\n \"chadeva\", 0x091b,\n \"chagujarati\", 0x0a9b,\n \"chagurmukhi\", 0x0a1b,\n \"chbopomofo\", 0x3114,\n \"cheabkhasiancyrillic\", 0x04bd,\n \"checkmark\", 0x2713,\n \"checyrillic\", 0x0447,\n \"chedescenderabkhasiancyrillic\", 0x04bf,\n \"chedescendercyrillic\", 0x04b7,\n \"chedieresiscyrillic\", 0x04f5,\n \"cheharmenian\", 0x0573,\n \"chekhakassiancyrillic\", 0x04cc,\n \"cheverticalstrokecyrillic\", 0x04b9,\n \"chi\", 0x03c7,\n \"chieuchacirclekorean\", 0x3277,\n \"chieuchaparenkorean\", 0x3217,\n \"chieuchcirclekorean\", 0x3269,\n \"chieuchkorean\", 0x314a,\n \"chieuchparenkorean\", 0x3209,\n \"chochangthai\", 0x0e0a,\n \"chochanthai\", 0x0e08,\n \"chochingthai\", 0x0e09,\n \"chochoethai\", 0x0e0c,\n \"chook\", 0x0188,\n \"cieucacirclekorean\", 0x3276,\n \"cieucaparenkorean\", 0x3216,\n \"cieuccirclekorean\", 0x3268,\n \"cieuckorean\", 0x3148,\n \"cieucparenkorean\", 0x3208,\n \"cieucuparenkorean\", 0x321c,\n \"circle\", 0x25cb,\n \"circlecopyrt\", 0x00a9, // Glyph is missing from Adobe's original list.\n \"circlemultiply\", 0x2297,\n \"circleot\", 0x2299,\n \"circleplus\", 0x2295,\n \"circlepostalmark\", 0x3036,\n \"circlewithlefthalfblack\", 0x25d0,\n \"circlewithrighthalfblack\", 0x25d1,\n \"circumflex\", 0x02c6,\n \"circumflexbelowcmb\", 0x032d,\n \"circumflexcmb\", 0x0302,\n \"clear\", 0x2327,\n \"clickalveolar\", 0x01c2,\n \"clickdental\", 0x01c0,\n \"clicklateral\", 0x01c1,\n \"clickretroflex\", 0x01c3,\n \"club\", 0x2663,\n \"clubsuitblack\", 0x2663,\n \"clubsuitwhite\", 0x2667,\n \"cmcubedsquare\", 0x33a4,\n \"cmonospace\", 0xff43,\n \"cmsquaredsquare\", 0x33a0,\n \"coarmenian\", 0x0581,\n \"colon\", 0x003a,\n \"colonmonetary\", 0x20a1,\n \"colonmonospace\", 0xff1a,\n \"colonsign\", 0x20a1,\n \"colonsmall\", 0xfe55,\n \"colontriangularhalfmod\", 0x02d1,\n \"colontriangularmod\", 0x02d0,\n \"comma\", 0x002c,\n \"commaabovecmb\", 0x0313,\n \"commaaboverightcmb\", 0x0315,\n \"commaaccent\", 0xf6c3,\n \"commaarabic\", 0x060c,\n \"commaarmenian\", 0x055d,\n \"commainferior\", 0xf6e1,\n \"commamonospace\", 0xff0c,\n \"commareversedabovecmb\", 0x0314,\n \"commareversedmod\", 0x02bd,\n \"commasmall\", 0xfe50,\n \"commasuperior\", 0xf6e2,\n \"commaturnedabovecmb\", 0x0312,\n \"commaturnedmod\", 0x02bb,\n \"compass\", 0x263c,\n \"congruent\", 0x2245,\n \"contourintegral\", 0x222e,\n \"control\", 0x2303,\n \"controlACK\", 0x0006,\n \"controlBEL\", 0x0007,\n \"controlBS\", 0x0008,\n \"controlCAN\", 0x0018,\n \"controlCR\", 0x000d,\n \"controlDC1\", 0x0011,\n \"controlDC2\", 0x0012,\n \"controlDC3\", 0x0013,\n \"controlDC4\", 0x0014,\n \"controlDEL\", 0x007f,\n \"controlDLE\", 0x0010,\n \"controlEM\", 0x0019,\n \"controlENQ\", 0x0005,\n \"controlEOT\", 0x0004,\n \"controlESC\", 0x001b,\n \"controlETB\", 0x0017,\n \"controlETX\", 0x0003,\n \"controlFF\", 0x000c,\n \"controlFS\", 0x001c,\n \"controlGS\", 0x001d,\n \"controlHT\", 0x0009,\n \"controlLF\", 0x000a,\n \"controlNAK\", 0x0015,\n \"controlNULL\", 0x0000, // Glyph is missing from Adobe's original list.\n \"controlRS\", 0x001e,\n \"controlSI\", 0x000f,\n \"controlSO\", 0x000e,\n \"controlSOT\", 0x0002,\n \"controlSTX\", 0x0001,\n \"controlSUB\", 0x001a,\n \"controlSYN\", 0x0016,\n \"controlUS\", 0x001f,\n \"controlVT\", 0x000b,\n \"copyright\", 0x00a9,\n \"copyrightsans\", 0xf8e9,\n \"copyrightserif\", 0xf6d9,\n \"cornerbracketleft\", 0x300c,\n \"cornerbracketlefthalfwidth\", 0xff62,\n \"cornerbracketleftvertical\", 0xfe41,\n \"cornerbracketright\", 0x300d,\n \"cornerbracketrighthalfwidth\", 0xff63,\n \"cornerbracketrightvertical\", 0xfe42,\n \"corporationsquare\", 0x337f,\n \"cosquare\", 0x33c7,\n \"coverkgsquare\", 0x33c6,\n \"cparen\", 0x249e,\n \"cruzeiro\", 0x20a2,\n \"cstretched\", 0x0297,\n \"curlyand\", 0x22cf,\n \"curlyor\", 0x22ce,\n \"currency\", 0x00a4,\n \"cyrBreve\", 0xf6d1,\n \"cyrFlex\", 0xf6d2,\n \"cyrbreve\", 0xf6d4,\n \"cyrflex\", 0xf6d5,\n \"d\", 0x0064,\n \"daarmenian\", 0x0564,\n \"dabengali\", 0x09a6,\n \"dadarabic\", 0x0636,\n \"dadeva\", 0x0926,\n \"dadfinalarabic\", 0xfebe,\n \"dadinitialarabic\", 0xfebf,\n \"dadmedialarabic\", 0xfec0,\n \"dagesh\", 0x05bc,\n \"dageshhebrew\", 0x05bc,\n \"dagger\", 0x2020,\n \"daggerdbl\", 0x2021,\n \"dagujarati\", 0x0aa6,\n \"dagurmukhi\", 0x0a26,\n \"dahiragana\", 0x3060,\n \"dakatakana\", 0x30c0,\n \"dalarabic\", 0x062f,\n \"dalet\", 0x05d3,\n \"daletdagesh\", 0xfb33,\n \"daletdageshhebrew\", 0xfb33,\n \"dalethebrew\", 0x05d3,\n \"dalfinalarabic\", 0xfeaa,\n \"dammaarabic\", 0x064f,\n \"dammalowarabic\", 0x064f,\n \"dammatanaltonearabic\", 0x064c,\n \"dammatanarabic\", 0x064c,\n \"danda\", 0x0964,\n \"dargahebrew\", 0x05a7,\n \"dargalefthebrew\", 0x05a7,\n \"dasiapneumatacyrilliccmb\", 0x0485,\n \"dblGrave\", 0xf6d3,\n \"dblanglebracketleft\", 0x300a,\n \"dblanglebracketleftvertical\", 0xfe3d,\n \"dblanglebracketright\", 0x300b,\n \"dblanglebracketrightvertical\", 0xfe3e,\n \"dblarchinvertedbelowcmb\", 0x032b,\n \"dblarrowleft\", 0x21d4,\n \"dblarrowright\", 0x21d2,\n \"dbldanda\", 0x0965,\n \"dblgrave\", 0xf6d6,\n \"dblgravecmb\", 0x030f,\n \"dblintegral\", 0x222c,\n \"dbllowline\", 0x2017,\n \"dbllowlinecmb\", 0x0333,\n \"dbloverlinecmb\", 0x033f,\n \"dblprimemod\", 0x02ba,\n \"dblverticalbar\", 0x2016,\n \"dblverticallineabovecmb\", 0x030e,\n \"dbopomofo\", 0x3109,\n \"dbsquare\", 0x33c8,\n \"dcaron\", 0x010f,\n \"dcedilla\", 0x1e11,\n \"dcircle\", 0x24d3,\n \"dcircumflexbelow\", 0x1e13,\n \"dcroat\", 0x0111,\n \"ddabengali\", 0x09a1,\n \"ddadeva\", 0x0921,\n \"ddagujarati\", 0x0aa1,\n \"ddagurmukhi\", 0x0a21,\n \"ddalarabic\", 0x0688,\n \"ddalfinalarabic\", 0xfb89,\n \"dddhadeva\", 0x095c,\n \"ddhabengali\", 0x09a2,\n \"ddhadeva\", 0x0922,\n \"ddhagujarati\", 0x0aa2,\n \"ddhagurmukhi\", 0x0a22,\n \"ddotaccent\", 0x1e0b,\n \"ddotbelow\", 0x1e0d,\n \"decimalseparatorarabic\", 0x066b,\n \"decimalseparatorpersian\", 0x066b,\n \"decyrillic\", 0x0434,\n \"degree\", 0x00b0,\n \"dehihebrew\", 0x05ad,\n \"dehiragana\", 0x3067,\n \"deicoptic\", 0x03ef,\n \"dekatakana\", 0x30c7,\n \"deleteleft\", 0x232b,\n \"deleteright\", 0x2326,\n \"delta\", 0x03b4,\n \"deltaturned\", 0x018d,\n \"denominatorminusonenumeratorbengali\", 0x09f8,\n \"dezh\", 0x02a4,\n \"dhabengali\", 0x09a7,\n \"dhadeva\", 0x0927,\n \"dhagujarati\", 0x0aa7,\n \"dhagurmukhi\", 0x0a27,\n \"dhook\", 0x0257,\n \"dialytikatonos\", 0x0385,\n \"dialytikatonoscmb\", 0x0344,\n \"diamond\", 0x2666,\n \"diamondsuitwhite\", 0x2662,\n \"dieresis\", 0x00a8,\n \"dieresisacute\", 0xf6d7,\n \"dieresisbelowcmb\", 0x0324,\n \"dieresiscmb\", 0x0308,\n \"dieresisgrave\", 0xf6d8,\n \"dieresistonos\", 0x0385,\n \"dihiragana\", 0x3062,\n \"dikatakana\", 0x30c2,\n \"dittomark\", 0x3003,\n \"divide\", 0x00f7,\n \"divides\", 0x2223,\n \"divisionslash\", 0x2215,\n \"djecyrillic\", 0x0452,\n \"dkshade\", 0x2593,\n \"dlinebelow\", 0x1e0f,\n \"dlsquare\", 0x3397,\n \"dmacron\", 0x0111,\n \"dmonospace\", 0xff44,\n \"dnblock\", 0x2584,\n \"dochadathai\", 0x0e0e,\n \"dodekthai\", 0x0e14,\n \"dohiragana\", 0x3069,\n \"dokatakana\", 0x30c9,\n \"dollar\", 0x0024,\n \"dollarinferior\", 0xf6e3,\n \"dollarmonospace\", 0xff04,\n \"dollaroldstyle\", 0xf724,\n \"dollarsmall\", 0xfe69,\n \"dollarsuperior\", 0xf6e4,\n \"dong\", 0x20ab,\n \"dorusquare\", 0x3326,\n \"dotaccent\", 0x02d9,\n \"dotaccentcmb\", 0x0307,\n \"dotbelowcmb\", 0x0323,\n \"dotbelowcomb\", 0x0323,\n \"dotkatakana\", 0x30fb,\n \"dotlessi\", 0x0131,\n \"dotlessj\", 0xf6be,\n \"dotlessjstrokehook\", 0x0284,\n \"dotmath\", 0x22c5,\n \"dottedcircle\", 0x25cc,\n \"doubleyodpatah\", 0xfb1f,\n \"doubleyodpatahhebrew\", 0xfb1f,\n \"downtackbelowcmb\", 0x031e,\n \"downtackmod\", 0x02d5,\n \"dparen\", 0x249f,\n \"dsuperior\", 0xf6eb,\n \"dtail\", 0x0256,\n \"dtopbar\", 0x018c,\n \"duhiragana\", 0x3065,\n \"dukatakana\", 0x30c5,\n \"dz\", 0x01f3,\n \"dzaltone\", 0x02a3,\n \"dzcaron\", 0x01c6,\n \"dzcurl\", 0x02a5,\n \"dzeabkhasiancyrillic\", 0x04e1,\n \"dzecyrillic\", 0x0455,\n \"dzhecyrillic\", 0x045f,\n \"e\", 0x0065,\n \"eacute\", 0x00e9,\n \"earth\", 0x2641,\n \"ebengali\", 0x098f,\n \"ebopomofo\", 0x311c,\n \"ebreve\", 0x0115,\n \"ecandradeva\", 0x090d,\n \"ecandragujarati\", 0x0a8d,\n \"ecandravowelsigndeva\", 0x0945,\n \"ecandravowelsigngujarati\", 0x0ac5,\n \"ecaron\", 0x011b,\n \"ecedillabreve\", 0x1e1d,\n \"echarmenian\", 0x0565,\n \"echyiwnarmenian\", 0x0587,\n \"ecircle\", 0x24d4,\n \"ecircumflex\", 0x00ea,\n \"ecircumflexacute\", 0x1ebf,\n \"ecircumflexbelow\", 0x1e19,\n \"ecircumflexdotbelow\", 0x1ec7,\n \"ecircumflexgrave\", 0x1ec1,\n \"ecircumflexhookabove\", 0x1ec3,\n \"ecircumflextilde\", 0x1ec5,\n \"ecyrillic\", 0x0454,\n \"edblgrave\", 0x0205,\n \"edeva\", 0x090f,\n \"edieresis\", 0x00eb,\n \"edot\", 0x0117,\n \"edotaccent\", 0x0117,\n \"edotbelow\", 0x1eb9,\n \"eegurmukhi\", 0x0a0f,\n \"eematragurmukhi\", 0x0a47,\n \"efcyrillic\", 0x0444,\n \"egrave\", 0x00e8,\n \"egujarati\", 0x0a8f,\n \"eharmenian\", 0x0567,\n \"ehbopomofo\", 0x311d,\n \"ehiragana\", 0x3048,\n \"ehookabove\", 0x1ebb,\n \"eibopomofo\", 0x311f,\n \"eight\", 0x0038,\n \"eightarabic\", 0x0668,\n \"eightbengali\", 0x09ee,\n \"eightcircle\", 0x2467,\n \"eightcircleinversesansserif\", 0x2791,\n \"eightdeva\", 0x096e,\n \"eighteencircle\", 0x2471,\n \"eighteenparen\", 0x2485,\n \"eighteenperiod\", 0x2499,\n \"eightgujarati\", 0x0aee,\n \"eightgurmukhi\", 0x0a6e,\n \"eighthackarabic\", 0x0668,\n \"eighthangzhou\", 0x3028,\n \"eighthnotebeamed\", 0x266b,\n \"eightideographicparen\", 0x3227,\n \"eightinferior\", 0x2088,\n \"eightmonospace\", 0xff18,\n \"eightoldstyle\", 0xf738,\n \"eightparen\", 0x247b,\n \"eightperiod\", 0x248f,\n \"eightpersian\", 0x06f8,\n \"eightroman\", 0x2177,\n \"eightsuperior\", 0x2078,\n \"eightthai\", 0x0e58,\n \"einvertedbreve\", 0x0207,\n \"eiotifiedcyrillic\", 0x0465,\n \"ekatakana\", 0x30a8,\n \"ekatakanahalfwidth\", 0xff74,\n \"ekonkargurmukhi\", 0x0a74,\n \"ekorean\", 0x3154,\n \"elcyrillic\", 0x043b,\n \"element\", 0x2208,\n \"elevencircle\", 0x246a,\n \"elevenparen\", 0x247e,\n \"elevenperiod\", 0x2492,\n \"elevenroman\", 0x217a,\n \"ellipsis\", 0x2026,\n \"ellipsisvertical\", 0x22ee,\n \"emacron\", 0x0113,\n \"emacronacute\", 0x1e17,\n \"emacrongrave\", 0x1e15,\n \"emcyrillic\", 0x043c,\n \"emdash\", 0x2014,\n \"emdashvertical\", 0xfe31,\n \"emonospace\", 0xff45,\n \"emphasismarkarmenian\", 0x055b,\n \"emptyset\", 0x2205,\n \"enbopomofo\", 0x3123,\n \"encyrillic\", 0x043d,\n \"endash\", 0x2013,\n \"endashvertical\", 0xfe32,\n \"endescendercyrillic\", 0x04a3,\n \"eng\", 0x014b,\n \"engbopomofo\", 0x3125,\n \"enghecyrillic\", 0x04a5,\n \"enhookcyrillic\", 0x04c8,\n \"enspace\", 0x2002,\n \"eogonek\", 0x0119,\n \"eokorean\", 0x3153,\n \"eopen\", 0x025b,\n \"eopenclosed\", 0x029a,\n \"eopenreversed\", 0x025c,\n \"eopenreversedclosed\", 0x025e,\n \"eopenreversedhook\", 0x025d,\n \"eparen\", 0x24a0,\n \"epsilon\", 0x03b5,\n \"epsilontonos\", 0x03ad,\n \"equal\", 0x003d,\n \"equalmonospace\", 0xff1d,\n \"equalsmall\", 0xfe66,\n \"equalsuperior\", 0x207c,\n \"equivalence\", 0x2261,\n \"erbopomofo\", 0x3126,\n \"ercyrillic\", 0x0440,\n \"ereversed\", 0x0258,\n \"ereversedcyrillic\", 0x044d,\n \"escyrillic\", 0x0441,\n \"esdescendercyrillic\", 0x04ab,\n \"esh\", 0x0283,\n \"eshcurl\", 0x0286,\n \"eshortdeva\", 0x090e,\n \"eshortvowelsigndeva\", 0x0946,\n \"eshreversedloop\", 0x01aa,\n \"eshsquatreversed\", 0x0285,\n \"esmallhiragana\", 0x3047,\n \"esmallkatakana\", 0x30a7,\n \"esmallkatakanahalfwidth\", 0xff6a,\n \"estimated\", 0x212e,\n \"esuperior\", 0xf6ec,\n \"eta\", 0x03b7,\n \"etarmenian\", 0x0568,\n \"etatonos\", 0x03ae,\n \"eth\", 0x00f0,\n \"etilde\", 0x1ebd,\n \"etildebelow\", 0x1e1b,\n \"etnahtafoukhhebrew\", 0x0591,\n \"etnahtafoukhlefthebrew\", 0x0591,\n \"etnahtahebrew\", 0x0591,\n \"etnahtalefthebrew\", 0x0591,\n \"eturned\", 0x01dd,\n \"eukorean\", 0x3161,\n \"euro\", 0x20ac,\n \"evowelsignbengali\", 0x09c7,\n \"evowelsigndeva\", 0x0947,\n \"evowelsigngujarati\", 0x0ac7,\n \"exclam\", 0x0021,\n \"exclamarmenian\", 0x055c,\n \"exclamdbl\", 0x203c,\n \"exclamdown\", 0x00a1,\n \"exclamdownsmall\", 0xf7a1,\n \"exclammonospace\", 0xff01,\n \"exclamsmall\", 0xf721,\n \"existential\", 0x2203,\n \"ezh\", 0x0292,\n \"ezhcaron\", 0x01ef,\n \"ezhcurl\", 0x0293,\n \"ezhreversed\", 0x01b9,\n \"ezhtail\", 0x01ba,\n \"f\", 0x0066,\n \"fadeva\", 0x095e,\n \"fagurmukhi\", 0x0a5e,\n \"fahrenheit\", 0x2109,\n \"fathaarabic\", 0x064e,\n \"fathalowarabic\", 0x064e,\n \"fathatanarabic\", 0x064b,\n \"fbopomofo\", 0x3108,\n \"fcircle\", 0x24d5,\n \"fdotaccent\", 0x1e1f,\n \"feharabic\", 0x0641,\n \"feharmenian\", 0x0586,\n \"fehfinalarabic\", 0xfed2,\n \"fehinitialarabic\", 0xfed3,\n \"fehmedialarabic\", 0xfed4,\n \"feicoptic\", 0x03e5,\n \"female\", 0x2640,\n \"ff\", 0xfb00,\n \"f_f\", 0xfb00, // Fixes issue 11016.\n \"ffi\", 0xfb03,\n \"ffl\", 0xfb04,\n \"fi\", 0xfb01,\n \"fifteencircle\", 0x246e,\n \"fifteenparen\", 0x2482,\n \"fifteenperiod\", 0x2496,\n \"figuredash\", 0x2012,\n \"filledbox\", 0x25a0,\n \"filledrect\", 0x25ac,\n \"finalkaf\", 0x05da,\n \"finalkafdagesh\", 0xfb3a,\n \"finalkafdageshhebrew\", 0xfb3a,\n \"finalkafhebrew\", 0x05da,\n \"finalmem\", 0x05dd,\n \"finalmemhebrew\", 0x05dd,\n \"finalnun\", 0x05df,\n \"finalnunhebrew\", 0x05df,\n \"finalpe\", 0x05e3,\n \"finalpehebrew\", 0x05e3,\n \"finaltsadi\", 0x05e5,\n \"finaltsadihebrew\", 0x05e5,\n \"firsttonechinese\", 0x02c9,\n \"fisheye\", 0x25c9,\n \"fitacyrillic\", 0x0473,\n \"five\", 0x0035,\n \"fivearabic\", 0x0665,\n \"fivebengali\", 0x09eb,\n \"fivecircle\", 0x2464,\n \"fivecircleinversesansserif\", 0x278e,\n \"fivedeva\", 0x096b,\n \"fiveeighths\", 0x215d,\n \"fivegujarati\", 0x0aeb,\n \"fivegurmukhi\", 0x0a6b,\n \"fivehackarabic\", 0x0665,\n \"fivehangzhou\", 0x3025,\n \"fiveideographicparen\", 0x3224,\n \"fiveinferior\", 0x2085,\n \"fivemonospace\", 0xff15,\n \"fiveoldstyle\", 0xf735,\n \"fiveparen\", 0x2478,\n \"fiveperiod\", 0x248c,\n \"fivepersian\", 0x06f5,\n \"fiveroman\", 0x2174,\n \"fivesuperior\", 0x2075,\n \"fivethai\", 0x0e55,\n \"fl\", 0xfb02,\n \"florin\", 0x0192,\n \"fmonospace\", 0xff46,\n \"fmsquare\", 0x3399,\n \"fofanthai\", 0x0e1f,\n \"fofathai\", 0x0e1d,\n \"fongmanthai\", 0x0e4f,\n \"forall\", 0x2200,\n \"four\", 0x0034,\n \"fourarabic\", 0x0664,\n \"fourbengali\", 0x09ea,\n \"fourcircle\", 0x2463,\n \"fourcircleinversesansserif\", 0x278d,\n \"fourdeva\", 0x096a,\n \"fourgujarati\", 0x0aea,\n \"fourgurmukhi\", 0x0a6a,\n \"fourhackarabic\", 0x0664,\n \"fourhangzhou\", 0x3024,\n \"fourideographicparen\", 0x3223,\n \"fourinferior\", 0x2084,\n \"fourmonospace\", 0xff14,\n \"fournumeratorbengali\", 0x09f7,\n \"fouroldstyle\", 0xf734,\n \"fourparen\", 0x2477,\n \"fourperiod\", 0x248b,\n \"fourpersian\", 0x06f4,\n \"fourroman\", 0x2173,\n \"foursuperior\", 0x2074,\n \"fourteencircle\", 0x246d,\n \"fourteenparen\", 0x2481,\n \"fourteenperiod\", 0x2495,\n \"fourthai\", 0x0e54,\n \"fourthtonechinese\", 0x02cb,\n \"fparen\", 0x24a1,\n \"fraction\", 0x2044,\n \"franc\", 0x20a3,\n \"g\", 0x0067,\n \"gabengali\", 0x0997,\n \"gacute\", 0x01f5,\n \"gadeva\", 0x0917,\n \"gafarabic\", 0x06af,\n \"gaffinalarabic\", 0xfb93,\n \"gafinitialarabic\", 0xfb94,\n \"gafmedialarabic\", 0xfb95,\n \"gagujarati\", 0x0a97,\n \"gagurmukhi\", 0x0a17,\n \"gahiragana\", 0x304c,\n \"gakatakana\", 0x30ac,\n \"gamma\", 0x03b3,\n \"gammalatinsmall\", 0x0263,\n \"gammasuperior\", 0x02e0,\n \"gangiacoptic\", 0x03eb,\n \"gbopomofo\", 0x310d,\n \"gbreve\", 0x011f,\n \"gcaron\", 0x01e7,\n \"gcedilla\", 0x0123,\n \"gcircle\", 0x24d6,\n \"gcircumflex\", 0x011d,\n \"gcommaaccent\", 0x0123,\n \"gdot\", 0x0121,\n \"gdotaccent\", 0x0121,\n \"gecyrillic\", 0x0433,\n \"gehiragana\", 0x3052,\n \"gekatakana\", 0x30b2,\n \"geometricallyequal\", 0x2251,\n \"gereshaccenthebrew\", 0x059c,\n \"gereshhebrew\", 0x05f3,\n \"gereshmuqdamhebrew\", 0x059d,\n \"germandbls\", 0x00df,\n \"gershayimaccenthebrew\", 0x059e,\n \"gershayimhebrew\", 0x05f4,\n \"getamark\", 0x3013,\n \"ghabengali\", 0x0998,\n \"ghadarmenian\", 0x0572,\n \"ghadeva\", 0x0918,\n \"ghagujarati\", 0x0a98,\n \"ghagurmukhi\", 0x0a18,\n \"ghainarabic\", 0x063a,\n \"ghainfinalarabic\", 0xfece,\n \"ghaininitialarabic\", 0xfecf,\n \"ghainmedialarabic\", 0xfed0,\n \"ghemiddlehookcyrillic\", 0x0495,\n \"ghestrokecyrillic\", 0x0493,\n \"gheupturncyrillic\", 0x0491,\n \"ghhadeva\", 0x095a,\n \"ghhagurmukhi\", 0x0a5a,\n \"ghook\", 0x0260,\n \"ghzsquare\", 0x3393,\n \"gihiragana\", 0x304e,\n \"gikatakana\", 0x30ae,\n \"gimarmenian\", 0x0563,\n \"gimel\", 0x05d2,\n \"gimeldagesh\", 0xfb32,\n \"gimeldageshhebrew\", 0xfb32,\n \"gimelhebrew\", 0x05d2,\n \"gjecyrillic\", 0x0453,\n \"glottalinvertedstroke\", 0x01be,\n \"glottalstop\", 0x0294,\n \"glottalstopinverted\", 0x0296,\n \"glottalstopmod\", 0x02c0,\n \"glottalstopreversed\", 0x0295,\n \"glottalstopreversedmod\", 0x02c1,\n \"glottalstopreversedsuperior\", 0x02e4,\n \"glottalstopstroke\", 0x02a1,\n \"glottalstopstrokereversed\", 0x02a2,\n \"gmacron\", 0x1e21,\n \"gmonospace\", 0xff47,\n \"gohiragana\", 0x3054,\n \"gokatakana\", 0x30b4,\n \"gparen\", 0x24a2,\n \"gpasquare\", 0x33ac,\n \"gradient\", 0x2207,\n \"grave\", 0x0060,\n \"gravebelowcmb\", 0x0316,\n \"gravecmb\", 0x0300,\n \"gravecomb\", 0x0300,\n \"gravedeva\", 0x0953,\n \"gravelowmod\", 0x02ce,\n \"gravemonospace\", 0xff40,\n \"gravetonecmb\", 0x0340,\n \"greater\", 0x003e,\n \"greaterequal\", 0x2265,\n \"greaterequalorless\", 0x22db,\n \"greatermonospace\", 0xff1e,\n \"greaterorequivalent\", 0x2273,\n \"greaterorless\", 0x2277,\n \"greateroverequal\", 0x2267,\n \"greatersmall\", 0xfe65,\n \"gscript\", 0x0261,\n \"gstroke\", 0x01e5,\n \"guhiragana\", 0x3050,\n \"guillemotleft\", 0x00ab,\n \"guillemotright\", 0x00bb,\n \"guilsinglleft\", 0x2039,\n \"guilsinglright\", 0x203a,\n \"gukatakana\", 0x30b0,\n \"guramusquare\", 0x3318,\n \"gysquare\", 0x33c9,\n \"h\", 0x0068,\n \"haabkhasiancyrillic\", 0x04a9,\n \"haaltonearabic\", 0x06c1,\n \"habengali\", 0x09b9,\n \"hadescendercyrillic\", 0x04b3,\n \"hadeva\", 0x0939,\n \"hagujarati\", 0x0ab9,\n \"hagurmukhi\", 0x0a39,\n \"haharabic\", 0x062d,\n \"hahfinalarabic\", 0xfea2,\n \"hahinitialarabic\", 0xfea3,\n \"hahiragana\", 0x306f,\n \"hahmedialarabic\", 0xfea4,\n \"haitusquare\", 0x332a,\n \"hakatakana\", 0x30cf,\n \"hakatakanahalfwidth\", 0xff8a,\n \"halantgurmukhi\", 0x0a4d,\n \"hamzaarabic\", 0x0621,\n \"hamzalowarabic\", 0x0621,\n \"hangulfiller\", 0x3164,\n \"hardsigncyrillic\", 0x044a,\n \"harpoonleftbarbup\", 0x21bc,\n \"harpoonrightbarbup\", 0x21c0,\n \"hasquare\", 0x33ca,\n \"hatafpatah\", 0x05b2,\n \"hatafpatah16\", 0x05b2,\n \"hatafpatah23\", 0x05b2,\n \"hatafpatah2f\", 0x05b2,\n \"hatafpatahhebrew\", 0x05b2,\n \"hatafpatahnarrowhebrew\", 0x05b2,\n \"hatafpatahquarterhebrew\", 0x05b2,\n \"hatafpatahwidehebrew\", 0x05b2,\n \"hatafqamats\", 0x05b3,\n \"hatafqamats1b\", 0x05b3,\n \"hatafqamats28\", 0x05b3,\n \"hatafqamats34\", 0x05b3,\n \"hatafqamatshebrew\", 0x05b3,\n \"hatafqamatsnarrowhebrew\", 0x05b3,\n \"hatafqamatsquarterhebrew\", 0x05b3,\n \"hatafqamatswidehebrew\", 0x05b3,\n \"hatafsegol\", 0x05b1,\n \"hatafsegol17\", 0x05b1,\n \"hatafsegol24\", 0x05b1,\n \"hatafsegol30\", 0x05b1,\n \"hatafsegolhebrew\", 0x05b1,\n \"hatafsegolnarrowhebrew\", 0x05b1,\n \"hatafsegolquarterhebrew\", 0x05b1,\n \"hatafsegolwidehebrew\", 0x05b1,\n \"hbar\", 0x0127,\n \"hbopomofo\", 0x310f,\n \"hbrevebelow\", 0x1e2b,\n \"hcedilla\", 0x1e29,\n \"hcircle\", 0x24d7,\n \"hcircumflex\", 0x0125,\n \"hdieresis\", 0x1e27,\n \"hdotaccent\", 0x1e23,\n \"hdotbelow\", 0x1e25,\n \"he\", 0x05d4,\n \"heart\", 0x2665,\n \"heartsuitblack\", 0x2665,\n \"heartsuitwhite\", 0x2661,\n \"hedagesh\", 0xfb34,\n \"hedageshhebrew\", 0xfb34,\n \"hehaltonearabic\", 0x06c1,\n \"heharabic\", 0x0647,\n \"hehebrew\", 0x05d4,\n \"hehfinalaltonearabic\", 0xfba7,\n \"hehfinalalttwoarabic\", 0xfeea,\n \"hehfinalarabic\", 0xfeea,\n \"hehhamzaabovefinalarabic\", 0xfba5,\n \"hehhamzaaboveisolatedarabic\", 0xfba4,\n \"hehinitialaltonearabic\", 0xfba8,\n \"hehinitialarabic\", 0xfeeb,\n \"hehiragana\", 0x3078,\n \"hehmedialaltonearabic\", 0xfba9,\n \"hehmedialarabic\", 0xfeec,\n \"heiseierasquare\", 0x337b,\n \"hekatakana\", 0x30d8,\n \"hekatakanahalfwidth\", 0xff8d,\n \"hekutaarusquare\", 0x3336,\n \"henghook\", 0x0267,\n \"herutusquare\", 0x3339,\n \"het\", 0x05d7,\n \"hethebrew\", 0x05d7,\n \"hhook\", 0x0266,\n \"hhooksuperior\", 0x02b1,\n \"hieuhacirclekorean\", 0x327b,\n \"hieuhaparenkorean\", 0x321b,\n \"hieuhcirclekorean\", 0x326d,\n \"hieuhkorean\", 0x314e,\n \"hieuhparenkorean\", 0x320d,\n \"hihiragana\", 0x3072,\n \"hikatakana\", 0x30d2,\n \"hikatakanahalfwidth\", 0xff8b,\n \"hiriq\", 0x05b4,\n \"hiriq14\", 0x05b4,\n \"hiriq21\", 0x05b4,\n \"hiriq2d\", 0x05b4,\n \"hiriqhebrew\", 0x05b4,\n \"hiriqnarrowhebrew\", 0x05b4,\n \"hiriqquarterhebrew\", 0x05b4,\n \"hiriqwidehebrew\", 0x05b4,\n \"hlinebelow\", 0x1e96,\n \"hmonospace\", 0xff48,\n \"hoarmenian\", 0x0570,\n \"hohipthai\", 0x0e2b,\n \"hohiragana\", 0x307b,\n \"hokatakana\", 0x30db,\n \"hokatakanahalfwidth\", 0xff8e,\n \"holam\", 0x05b9,\n \"holam19\", 0x05b9,\n \"holam26\", 0x05b9,\n \"holam32\", 0x05b9,\n \"holamhebrew\", 0x05b9,\n \"holamnarrowhebrew\", 0x05b9,\n \"holamquarterhebrew\", 0x05b9,\n \"holamwidehebrew\", 0x05b9,\n \"honokhukthai\", 0x0e2e,\n \"hookabovecomb\", 0x0309,\n \"hookcmb\", 0x0309,\n \"hookpalatalizedbelowcmb\", 0x0321,\n \"hookretroflexbelowcmb\", 0x0322,\n \"hoonsquare\", 0x3342,\n \"horicoptic\", 0x03e9,\n \"horizontalbar\", 0x2015,\n \"horncmb\", 0x031b,\n \"hotsprings\", 0x2668,\n \"house\", 0x2302,\n \"hparen\", 0x24a3,\n \"hsuperior\", 0x02b0,\n \"hturned\", 0x0265,\n \"huhiragana\", 0x3075,\n \"huiitosquare\", 0x3333,\n \"hukatakana\", 0x30d5,\n \"hukatakanahalfwidth\", 0xff8c,\n \"hungarumlaut\", 0x02dd,\n \"hungarumlautcmb\", 0x030b,\n \"hv\", 0x0195,\n \"hyphen\", 0x002d,\n \"hypheninferior\", 0xf6e5,\n \"hyphenmonospace\", 0xff0d,\n \"hyphensmall\", 0xfe63,\n \"hyphensuperior\", 0xf6e6,\n \"hyphentwo\", 0x2010,\n \"i\", 0x0069,\n \"iacute\", 0x00ed,\n \"iacyrillic\", 0x044f,\n \"ibengali\", 0x0987,\n \"ibopomofo\", 0x3127,\n \"ibreve\", 0x012d,\n \"icaron\", 0x01d0,\n \"icircle\", 0x24d8,\n \"icircumflex\", 0x00ee,\n \"icyrillic\", 0x0456,\n \"idblgrave\", 0x0209,\n \"ideographearthcircle\", 0x328f,\n \"ideographfirecircle\", 0x328b,\n \"ideographicallianceparen\", 0x323f,\n \"ideographiccallparen\", 0x323a,\n \"ideographiccentrecircle\", 0x32a5,\n \"ideographicclose\", 0x3006,\n \"ideographiccomma\", 0x3001,\n \"ideographiccommaleft\", 0xff64,\n \"ideographiccongratulationparen\", 0x3237,\n \"ideographiccorrectcircle\", 0x32a3,\n \"ideographicearthparen\", 0x322f,\n \"ideographicenterpriseparen\", 0x323d,\n \"ideographicexcellentcircle\", 0x329d,\n \"ideographicfestivalparen\", 0x3240,\n \"ideographicfinancialcircle\", 0x3296,\n \"ideographicfinancialparen\", 0x3236,\n \"ideographicfireparen\", 0x322b,\n \"ideographichaveparen\", 0x3232,\n \"ideographichighcircle\", 0x32a4,\n \"ideographiciterationmark\", 0x3005,\n \"ideographiclaborcircle\", 0x3298,\n \"ideographiclaborparen\", 0x3238,\n \"ideographicleftcircle\", 0x32a7,\n \"ideographiclowcircle\", 0x32a6,\n \"ideographicmedicinecircle\", 0x32a9,\n \"ideographicmetalparen\", 0x322e,\n \"ideographicmoonparen\", 0x322a,\n \"ideographicnameparen\", 0x3234,\n \"ideographicperiod\", 0x3002,\n \"ideographicprintcircle\", 0x329e,\n \"ideographicreachparen\", 0x3243,\n \"ideographicrepresentparen\", 0x3239,\n \"ideographicresourceparen\", 0x323e,\n \"ideographicrightcircle\", 0x32a8,\n \"ideographicsecretcircle\", 0x3299,\n \"ideographicselfparen\", 0x3242,\n \"ideographicsocietyparen\", 0x3233,\n \"ideographicspace\", 0x3000,\n \"ideographicspecialparen\", 0x3235,\n \"ideographicstockparen\", 0x3231,\n \"ideographicstudyparen\", 0x323b,\n \"ideographicsunparen\", 0x3230,\n \"ideographicsuperviseparen\", 0x323c,\n \"ideographicwaterparen\", 0x322c,\n \"ideographicwoodparen\", 0x322d,\n \"ideographiczero\", 0x3007,\n \"ideographmetalcircle\", 0x328e,\n \"ideographmooncircle\", 0x328a,\n \"ideographnamecircle\", 0x3294,\n \"ideographsuncircle\", 0x3290,\n \"ideographwatercircle\", 0x328c,\n \"ideographwoodcircle\", 0x328d,\n \"ideva\", 0x0907,\n \"idieresis\", 0x00ef,\n \"idieresisacute\", 0x1e2f,\n \"idieresiscyrillic\", 0x04e5,\n \"idotbelow\", 0x1ecb,\n \"iebrevecyrillic\", 0x04d7,\n \"iecyrillic\", 0x0435,\n \"ieungacirclekorean\", 0x3275,\n \"ieungaparenkorean\", 0x3215,\n \"ieungcirclekorean\", 0x3267,\n \"ieungkorean\", 0x3147,\n \"ieungparenkorean\", 0x3207,\n \"igrave\", 0x00ec,\n \"igujarati\", 0x0a87,\n \"igurmukhi\", 0x0a07,\n \"ihiragana\", 0x3044,\n \"ihookabove\", 0x1ec9,\n \"iibengali\", 0x0988,\n \"iicyrillic\", 0x0438,\n \"iideva\", 0x0908,\n \"iigujarati\", 0x0a88,\n \"iigurmukhi\", 0x0a08,\n \"iimatragurmukhi\", 0x0a40,\n \"iinvertedbreve\", 0x020b,\n \"iishortcyrillic\", 0x0439,\n \"iivowelsignbengali\", 0x09c0,\n \"iivowelsigndeva\", 0x0940,\n \"iivowelsigngujarati\", 0x0ac0,\n \"ij\", 0x0133,\n \"ikatakana\", 0x30a4,\n \"ikatakanahalfwidth\", 0xff72,\n \"ikorean\", 0x3163,\n \"ilde\", 0x02dc,\n \"iluyhebrew\", 0x05ac,\n \"imacron\", 0x012b,\n \"imacroncyrillic\", 0x04e3,\n \"imageorapproximatelyequal\", 0x2253,\n \"imatragurmukhi\", 0x0a3f,\n \"imonospace\", 0xff49,\n \"increment\", 0x2206,\n \"infinity\", 0x221e,\n \"iniarmenian\", 0x056b,\n \"integral\", 0x222b,\n \"integralbottom\", 0x2321,\n \"integralbt\", 0x2321,\n \"integralex\", 0xf8f5,\n \"integraltop\", 0x2320,\n \"integraltp\", 0x2320,\n \"intersection\", 0x2229,\n \"intisquare\", 0x3305,\n \"invbullet\", 0x25d8,\n \"invcircle\", 0x25d9,\n \"invsmileface\", 0x263b,\n \"iocyrillic\", 0x0451,\n \"iogonek\", 0x012f,\n \"iota\", 0x03b9,\n \"iotadieresis\", 0x03ca,\n \"iotadieresistonos\", 0x0390,\n \"iotalatin\", 0x0269,\n \"iotatonos\", 0x03af,\n \"iparen\", 0x24a4,\n \"irigurmukhi\", 0x0a72,\n \"ismallhiragana\", 0x3043,\n \"ismallkatakana\", 0x30a3,\n \"ismallkatakanahalfwidth\", 0xff68,\n \"issharbengali\", 0x09fa,\n \"istroke\", 0x0268,\n \"isuperior\", 0xf6ed,\n \"iterationhiragana\", 0x309d,\n \"iterationkatakana\", 0x30fd,\n \"itilde\", 0x0129,\n \"itildebelow\", 0x1e2d,\n \"iubopomofo\", 0x3129,\n \"iucyrillic\", 0x044e,\n \"ivowelsignbengali\", 0x09bf,\n \"ivowelsigndeva\", 0x093f,\n \"ivowelsigngujarati\", 0x0abf,\n \"izhitsacyrillic\", 0x0475,\n \"izhitsadblgravecyrillic\", 0x0477,\n \"j\", 0x006a,\n \"jaarmenian\", 0x0571,\n \"jabengali\", 0x099c,\n \"jadeva\", 0x091c,\n \"jagujarati\", 0x0a9c,\n \"jagurmukhi\", 0x0a1c,\n \"jbopomofo\", 0x3110,\n \"jcaron\", 0x01f0,\n \"jcircle\", 0x24d9,\n \"jcircumflex\", 0x0135,\n \"jcrossedtail\", 0x029d,\n \"jdotlessstroke\", 0x025f,\n \"jecyrillic\", 0x0458,\n \"jeemarabic\", 0x062c,\n \"jeemfinalarabic\", 0xfe9e,\n \"jeeminitialarabic\", 0xfe9f,\n \"jeemmedialarabic\", 0xfea0,\n \"jeharabic\", 0x0698,\n \"jehfinalarabic\", 0xfb8b,\n \"jhabengali\", 0x099d,\n \"jhadeva\", 0x091d,\n \"jhagujarati\", 0x0a9d,\n \"jhagurmukhi\", 0x0a1d,\n \"jheharmenian\", 0x057b,\n \"jis\", 0x3004,\n \"jmonospace\", 0xff4a,\n \"jparen\", 0x24a5,\n \"jsuperior\", 0x02b2,\n \"k\", 0x006b,\n \"kabashkircyrillic\", 0x04a1,\n \"kabengali\", 0x0995,\n \"kacute\", 0x1e31,\n \"kacyrillic\", 0x043a,\n \"kadescendercyrillic\", 0x049b,\n \"kadeva\", 0x0915,\n \"kaf\", 0x05db,\n \"kafarabic\", 0x0643,\n \"kafdagesh\", 0xfb3b,\n \"kafdageshhebrew\", 0xfb3b,\n \"kaffinalarabic\", 0xfeda,\n \"kafhebrew\", 0x05db,\n \"kafinitialarabic\", 0xfedb,\n \"kafmedialarabic\", 0xfedc,\n \"kafrafehebrew\", 0xfb4d,\n \"kagujarati\", 0x0a95,\n \"kagurmukhi\", 0x0a15,\n \"kahiragana\", 0x304b,\n \"kahookcyrillic\", 0x04c4,\n \"kakatakana\", 0x30ab,\n \"kakatakanahalfwidth\", 0xff76,\n \"kappa\", 0x03ba,\n \"kappasymbolgreek\", 0x03f0,\n \"kapyeounmieumkorean\", 0x3171,\n \"kapyeounphieuphkorean\", 0x3184,\n \"kapyeounpieupkorean\", 0x3178,\n \"kapyeounssangpieupkorean\", 0x3179,\n \"karoriisquare\", 0x330d,\n \"kashidaautoarabic\", 0x0640,\n \"kashidaautonosidebearingarabic\", 0x0640,\n \"kasmallkatakana\", 0x30f5,\n \"kasquare\", 0x3384,\n \"kasraarabic\", 0x0650,\n \"kasratanarabic\", 0x064d,\n \"kastrokecyrillic\", 0x049f,\n \"katahiraprolongmarkhalfwidth\", 0xff70,\n \"kaverticalstrokecyrillic\", 0x049d,\n \"kbopomofo\", 0x310e,\n \"kcalsquare\", 0x3389,\n \"kcaron\", 0x01e9,\n \"kcedilla\", 0x0137,\n \"kcircle\", 0x24da,\n \"kcommaaccent\", 0x0137,\n \"kdotbelow\", 0x1e33,\n \"keharmenian\", 0x0584,\n \"kehiragana\", 0x3051,\n \"kekatakana\", 0x30b1,\n \"kekatakanahalfwidth\", 0xff79,\n \"kenarmenian\", 0x056f,\n \"kesmallkatakana\", 0x30f6,\n \"kgreenlandic\", 0x0138,\n \"khabengali\", 0x0996,\n \"khacyrillic\", 0x0445,\n \"khadeva\", 0x0916,\n \"khagujarati\", 0x0a96,\n \"khagurmukhi\", 0x0a16,\n \"khaharabic\", 0x062e,\n \"khahfinalarabic\", 0xfea6,\n \"khahinitialarabic\", 0xfea7,\n \"khahmedialarabic\", 0xfea8,\n \"kheicoptic\", 0x03e7,\n \"khhadeva\", 0x0959,\n \"khhagurmukhi\", 0x0a59,\n \"khieukhacirclekorean\", 0x3278,\n \"khieukhaparenkorean\", 0x3218,\n \"khieukhcirclekorean\", 0x326a,\n \"khieukhkorean\", 0x314b,\n \"khieukhparenkorean\", 0x320a,\n \"khokhaithai\", 0x0e02,\n \"khokhonthai\", 0x0e05,\n \"khokhuatthai\", 0x0e03,\n \"khokhwaithai\", 0x0e04,\n \"khomutthai\", 0x0e5b,\n \"khook\", 0x0199,\n \"khorakhangthai\", 0x0e06,\n \"khzsquare\", 0x3391,\n \"kihiragana\", 0x304d,\n \"kikatakana\", 0x30ad,\n \"kikatakanahalfwidth\", 0xff77,\n \"kiroguramusquare\", 0x3315,\n \"kiromeetorusquare\", 0x3316,\n \"kirosquare\", 0x3314,\n \"kiyeokacirclekorean\", 0x326e,\n \"kiyeokaparenkorean\", 0x320e,\n \"kiyeokcirclekorean\", 0x3260,\n \"kiyeokkorean\", 0x3131,\n \"kiyeokparenkorean\", 0x3200,\n \"kiyeoksioskorean\", 0x3133,\n \"kjecyrillic\", 0x045c,\n \"klinebelow\", 0x1e35,\n \"klsquare\", 0x3398,\n \"kmcubedsquare\", 0x33a6,\n \"kmonospace\", 0xff4b,\n \"kmsquaredsquare\", 0x33a2,\n \"kohiragana\", 0x3053,\n \"kohmsquare\", 0x33c0,\n \"kokaithai\", 0x0e01,\n \"kokatakana\", 0x30b3,\n \"kokatakanahalfwidth\", 0xff7a,\n \"kooposquare\", 0x331e,\n \"koppacyrillic\", 0x0481,\n \"koreanstandardsymbol\", 0x327f,\n \"koroniscmb\", 0x0343,\n \"kparen\", 0x24a6,\n \"kpasquare\", 0x33aa,\n \"ksicyrillic\", 0x046f,\n \"ktsquare\", 0x33cf,\n \"kturned\", 0x029e,\n \"kuhiragana\", 0x304f,\n \"kukatakana\", 0x30af,\n \"kukatakanahalfwidth\", 0xff78,\n \"kvsquare\", 0x33b8,\n \"kwsquare\", 0x33be,\n \"l\", 0x006c,\n \"labengali\", 0x09b2,\n \"lacute\", 0x013a,\n \"ladeva\", 0x0932,\n \"lagujarati\", 0x0ab2,\n \"lagurmukhi\", 0x0a32,\n \"lakkhangyaothai\", 0x0e45,\n \"lamaleffinalarabic\", 0xfefc,\n \"lamalefhamzaabovefinalarabic\", 0xfef8,\n \"lamalefhamzaaboveisolatedarabic\", 0xfef7,\n \"lamalefhamzabelowfinalarabic\", 0xfefa,\n \"lamalefhamzabelowisolatedarabic\", 0xfef9,\n \"lamalefisolatedarabic\", 0xfefb,\n \"lamalefmaddaabovefinalarabic\", 0xfef6,\n \"lamalefmaddaaboveisolatedarabic\", 0xfef5,\n \"lamarabic\", 0x0644,\n \"lambda\", 0x03bb,\n \"lambdastroke\", 0x019b,\n \"lamed\", 0x05dc,\n \"lameddagesh\", 0xfb3c,\n \"lameddageshhebrew\", 0xfb3c,\n \"lamedhebrew\", 0x05dc,\n \"lamfinalarabic\", 0xfede,\n \"lamhahinitialarabic\", 0xfcca,\n \"laminitialarabic\", 0xfedf,\n \"lamjeeminitialarabic\", 0xfcc9,\n \"lamkhahinitialarabic\", 0xfccb,\n \"lamlamhehisolatedarabic\", 0xfdf2,\n \"lammedialarabic\", 0xfee0,\n \"lammeemhahinitialarabic\", 0xfd88,\n \"lammeeminitialarabic\", 0xfccc,\n \"largecircle\", 0x25ef,\n \"lbar\", 0x019a,\n \"lbelt\", 0x026c,\n \"lbopomofo\", 0x310c,\n \"lcaron\", 0x013e,\n \"lcedilla\", 0x013c,\n \"lcircle\", 0x24db,\n \"lcircumflexbelow\", 0x1e3d,\n \"lcommaaccent\", 0x013c,\n \"ldot\", 0x0140,\n \"ldotaccent\", 0x0140,\n \"ldotbelow\", 0x1e37,\n \"ldotbelowmacron\", 0x1e39,\n \"leftangleabovecmb\", 0x031a,\n \"lefttackbelowcmb\", 0x0318,\n \"less\", 0x003c,\n \"lessequal\", 0x2264,\n \"lessequalorgreater\", 0x22da,\n \"lessmonospace\", 0xff1c,\n \"lessorequivalent\", 0x2272,\n \"lessorgreater\", 0x2276,\n \"lessoverequal\", 0x2266,\n \"lesssmall\", 0xfe64,\n \"lezh\", 0x026e,\n \"lfblock\", 0x258c,\n \"lhookretroflex\", 0x026d,\n \"lira\", 0x20a4,\n \"liwnarmenian\", 0x056c,\n \"lj\", 0x01c9,\n \"ljecyrillic\", 0x0459,\n \"ll\", 0xf6c0,\n \"lladeva\", 0x0933,\n \"llagujarati\", 0x0ab3,\n \"llinebelow\", 0x1e3b,\n \"llladeva\", 0x0934,\n \"llvocalicbengali\", 0x09e1,\n \"llvocalicdeva\", 0x0961,\n \"llvocalicvowelsignbengali\", 0x09e3,\n \"llvocalicvowelsigndeva\", 0x0963,\n \"lmiddletilde\", 0x026b,\n \"lmonospace\", 0xff4c,\n \"lmsquare\", 0x33d0,\n \"lochulathai\", 0x0e2c,\n \"logicaland\", 0x2227,\n \"logicalnot\", 0x00ac,\n \"logicalnotreversed\", 0x2310,\n \"logicalor\", 0x2228,\n \"lolingthai\", 0x0e25,\n \"longs\", 0x017f,\n \"lowlinecenterline\", 0xfe4e,\n \"lowlinecmb\", 0x0332,\n \"lowlinedashed\", 0xfe4d,\n \"lozenge\", 0x25ca,\n \"lparen\", 0x24a7,\n \"lslash\", 0x0142,\n \"lsquare\", 0x2113,\n \"lsuperior\", 0xf6ee,\n \"ltshade\", 0x2591,\n \"luthai\", 0x0e26,\n \"lvocalicbengali\", 0x098c,\n \"lvocalicdeva\", 0x090c,\n \"lvocalicvowelsignbengali\", 0x09e2,\n \"lvocalicvowelsigndeva\", 0x0962,\n \"lxsquare\", 0x33d3,\n \"m\", 0x006d,\n \"mabengali\", 0x09ae,\n \"macron\", 0x00af,\n \"macronbelowcmb\", 0x0331,\n \"macroncmb\", 0x0304,\n \"macronlowmod\", 0x02cd,\n \"macronmonospace\", 0xffe3,\n \"macute\", 0x1e3f,\n \"madeva\", 0x092e,\n \"magujarati\", 0x0aae,\n \"magurmukhi\", 0x0a2e,\n \"mahapakhhebrew\", 0x05a4,\n \"mahapakhlefthebrew\", 0x05a4,\n \"mahiragana\", 0x307e,\n \"maichattawalowleftthai\", 0xf895,\n \"maichattawalowrightthai\", 0xf894,\n \"maichattawathai\", 0x0e4b,\n \"maichattawaupperleftthai\", 0xf893,\n \"maieklowleftthai\", 0xf88c,\n \"maieklowrightthai\", 0xf88b,\n \"maiekthai\", 0x0e48,\n \"maiekupperleftthai\", 0xf88a,\n \"maihanakatleftthai\", 0xf884,\n \"maihanakatthai\", 0x0e31,\n \"maitaikhuleftthai\", 0xf889,\n \"maitaikhuthai\", 0x0e47,\n \"maitholowleftthai\", 0xf88f,\n \"maitholowrightthai\", 0xf88e,\n \"maithothai\", 0x0e49,\n \"maithoupperleftthai\", 0xf88d,\n \"maitrilowleftthai\", 0xf892,\n \"maitrilowrightthai\", 0xf891,\n \"maitrithai\", 0x0e4a,\n \"maitriupperleftthai\", 0xf890,\n \"maiyamokthai\", 0x0e46,\n \"makatakana\", 0x30de,\n \"makatakanahalfwidth\", 0xff8f,\n \"male\", 0x2642,\n \"mansyonsquare\", 0x3347,\n \"maqafhebrew\", 0x05be,\n \"mars\", 0x2642,\n \"masoracirclehebrew\", 0x05af,\n \"masquare\", 0x3383,\n \"mbopomofo\", 0x3107,\n \"mbsquare\", 0x33d4,\n \"mcircle\", 0x24dc,\n \"mcubedsquare\", 0x33a5,\n \"mdotaccent\", 0x1e41,\n \"mdotbelow\", 0x1e43,\n \"meemarabic\", 0x0645,\n \"meemfinalarabic\", 0xfee2,\n \"meeminitialarabic\", 0xfee3,\n \"meemmedialarabic\", 0xfee4,\n \"meemmeeminitialarabic\", 0xfcd1,\n \"meemmeemisolatedarabic\", 0xfc48,\n \"meetorusquare\", 0x334d,\n \"mehiragana\", 0x3081,\n \"meizierasquare\", 0x337e,\n \"mekatakana\", 0x30e1,\n \"mekatakanahalfwidth\", 0xff92,\n \"mem\", 0x05de,\n \"memdagesh\", 0xfb3e,\n \"memdageshhebrew\", 0xfb3e,\n \"memhebrew\", 0x05de,\n \"menarmenian\", 0x0574,\n \"merkhahebrew\", 0x05a5,\n \"merkhakefulahebrew\", 0x05a6,\n \"merkhakefulalefthebrew\", 0x05a6,\n \"merkhalefthebrew\", 0x05a5,\n \"mhook\", 0x0271,\n \"mhzsquare\", 0x3392,\n \"middledotkatakanahalfwidth\", 0xff65,\n \"middot\", 0x00b7,\n \"mieumacirclekorean\", 0x3272,\n \"mieumaparenkorean\", 0x3212,\n \"mieumcirclekorean\", 0x3264,\n \"mieumkorean\", 0x3141,\n \"mieumpansioskorean\", 0x3170,\n \"mieumparenkorean\", 0x3204,\n \"mieumpieupkorean\", 0x316e,\n \"mieumsioskorean\", 0x316f,\n \"mihiragana\", 0x307f,\n \"mikatakana\", 0x30df,\n \"mikatakanahalfwidth\", 0xff90,\n \"minus\", 0x2212,\n \"minusbelowcmb\", 0x0320,\n \"minuscircle\", 0x2296,\n \"minusmod\", 0x02d7,\n \"minusplus\", 0x2213,\n \"minute\", 0x2032,\n \"miribaarusquare\", 0x334a,\n \"mirisquare\", 0x3349,\n \"mlonglegturned\", 0x0270,\n \"mlsquare\", 0x3396,\n \"mmcubedsquare\", 0x33a3,\n \"mmonospace\", 0xff4d,\n \"mmsquaredsquare\", 0x339f,\n \"mohiragana\", 0x3082,\n \"mohmsquare\", 0x33c1,\n \"mokatakana\", 0x30e2,\n \"mokatakanahalfwidth\", 0xff93,\n \"molsquare\", 0x33d6,\n \"momathai\", 0x0e21,\n \"moverssquare\", 0x33a7,\n \"moverssquaredsquare\", 0x33a8,\n \"mparen\", 0x24a8,\n \"mpasquare\", 0x33ab,\n \"mssquare\", 0x33b3,\n \"msuperior\", 0xf6ef,\n \"mturned\", 0x026f,\n \"mu\", 0x00b5,\n \"mu1\", 0x00b5,\n \"muasquare\", 0x3382,\n \"muchgreater\", 0x226b,\n \"muchless\", 0x226a,\n \"mufsquare\", 0x338c,\n \"mugreek\", 0x03bc,\n \"mugsquare\", 0x338d,\n \"muhiragana\", 0x3080,\n \"mukatakana\", 0x30e0,\n \"mukatakanahalfwidth\", 0xff91,\n \"mulsquare\", 0x3395,\n \"multiply\", 0x00d7,\n \"mumsquare\", 0x339b,\n \"munahhebrew\", 0x05a3,\n \"munahlefthebrew\", 0x05a3,\n \"musicalnote\", 0x266a,\n \"musicalnotedbl\", 0x266b,\n \"musicflatsign\", 0x266d,\n \"musicsharpsign\", 0x266f,\n \"mussquare\", 0x33b2,\n \"muvsquare\", 0x33b6,\n \"muwsquare\", 0x33bc,\n \"mvmegasquare\", 0x33b9,\n \"mvsquare\", 0x33b7,\n \"mwmegasquare\", 0x33bf,\n \"mwsquare\", 0x33bd,\n \"n\", 0x006e,\n \"nabengali\", 0x09a8,\n \"nabla\", 0x2207,\n \"nacute\", 0x0144,\n \"nadeva\", 0x0928,\n \"nagujarati\", 0x0aa8,\n \"nagurmukhi\", 0x0a28,\n \"nahiragana\", 0x306a,\n \"nakatakana\", 0x30ca,\n \"nakatakanahalfwidth\", 0xff85,\n \"napostrophe\", 0x0149,\n \"nasquare\", 0x3381,\n \"nbopomofo\", 0x310b,\n \"nbspace\", 0x00a0,\n \"ncaron\", 0x0148,\n \"ncedilla\", 0x0146,\n \"ncircle\", 0x24dd,\n \"ncircumflexbelow\", 0x1e4b,\n \"ncommaaccent\", 0x0146,\n \"ndotaccent\", 0x1e45,\n \"ndotbelow\", 0x1e47,\n \"nehiragana\", 0x306d,\n \"nekatakana\", 0x30cd,\n \"nekatakanahalfwidth\", 0xff88,\n \"newsheqelsign\", 0x20aa,\n \"nfsquare\", 0x338b,\n \"ngabengali\", 0x0999,\n \"ngadeva\", 0x0919,\n \"ngagujarati\", 0x0a99,\n \"ngagurmukhi\", 0x0a19,\n \"ngonguthai\", 0x0e07,\n \"nhiragana\", 0x3093,\n \"nhookleft\", 0x0272,\n \"nhookretroflex\", 0x0273,\n \"nieunacirclekorean\", 0x326f,\n \"nieunaparenkorean\", 0x320f,\n \"nieuncieuckorean\", 0x3135,\n \"nieuncirclekorean\", 0x3261,\n \"nieunhieuhkorean\", 0x3136,\n \"nieunkorean\", 0x3134,\n \"nieunpansioskorean\", 0x3168,\n \"nieunparenkorean\", 0x3201,\n \"nieunsioskorean\", 0x3167,\n \"nieuntikeutkorean\", 0x3166,\n \"nihiragana\", 0x306b,\n \"nikatakana\", 0x30cb,\n \"nikatakanahalfwidth\", 0xff86,\n \"nikhahitleftthai\", 0xf899,\n \"nikhahitthai\", 0x0e4d,\n \"nine\", 0x0039,\n \"ninearabic\", 0x0669,\n \"ninebengali\", 0x09ef,\n \"ninecircle\", 0x2468,\n \"ninecircleinversesansserif\", 0x2792,\n \"ninedeva\", 0x096f,\n \"ninegujarati\", 0x0aef,\n \"ninegurmukhi\", 0x0a6f,\n \"ninehackarabic\", 0x0669,\n \"ninehangzhou\", 0x3029,\n \"nineideographicparen\", 0x3228,\n \"nineinferior\", 0x2089,\n \"ninemonospace\", 0xff19,\n \"nineoldstyle\", 0xf739,\n \"nineparen\", 0x247c,\n \"nineperiod\", 0x2490,\n \"ninepersian\", 0x06f9,\n \"nineroman\", 0x2178,\n \"ninesuperior\", 0x2079,\n \"nineteencircle\", 0x2472,\n \"nineteenparen\", 0x2486,\n \"nineteenperiod\", 0x249a,\n \"ninethai\", 0x0e59,\n \"nj\", 0x01cc,\n \"njecyrillic\", 0x045a,\n \"nkatakana\", 0x30f3,\n \"nkatakanahalfwidth\", 0xff9d,\n \"nlegrightlong\", 0x019e,\n \"nlinebelow\", 0x1e49,\n \"nmonospace\", 0xff4e,\n \"nmsquare\", 0x339a,\n \"nnabengali\", 0x09a3,\n \"nnadeva\", 0x0923,\n \"nnagujarati\", 0x0aa3,\n \"nnagurmukhi\", 0x0a23,\n \"nnnadeva\", 0x0929,\n \"nohiragana\", 0x306e,\n \"nokatakana\", 0x30ce,\n \"nokatakanahalfwidth\", 0xff89,\n \"nonbreakingspace\", 0x00a0,\n \"nonenthai\", 0x0e13,\n \"nonuthai\", 0x0e19,\n \"noonarabic\", 0x0646,\n \"noonfinalarabic\", 0xfee6,\n \"noonghunnaarabic\", 0x06ba,\n \"noonghunnafinalarabic\", 0xfb9f,\n \"nooninitialarabic\", 0xfee7,\n \"noonjeeminitialarabic\", 0xfcd2,\n \"noonjeemisolatedarabic\", 0xfc4b,\n \"noonmedialarabic\", 0xfee8,\n \"noonmeeminitialarabic\", 0xfcd5,\n \"noonmeemisolatedarabic\", 0xfc4e,\n \"noonnoonfinalarabic\", 0xfc8d,\n \"notcontains\", 0x220c,\n \"notelement\", 0x2209,\n \"notelementof\", 0x2209,\n \"notequal\", 0x2260,\n \"notgreater\", 0x226f,\n \"notgreaternorequal\", 0x2271,\n \"notgreaternorless\", 0x2279,\n \"notidentical\", 0x2262,\n \"notless\", 0x226e,\n \"notlessnorequal\", 0x2270,\n \"notparallel\", 0x2226,\n \"notprecedes\", 0x2280,\n \"notsubset\", 0x2284,\n \"notsucceeds\", 0x2281,\n \"notsuperset\", 0x2285,\n \"nowarmenian\", 0x0576,\n \"nparen\", 0x24a9,\n \"nssquare\", 0x33b1,\n \"nsuperior\", 0x207f,\n \"ntilde\", 0x00f1,\n \"nu\", 0x03bd,\n \"nuhiragana\", 0x306c,\n \"nukatakana\", 0x30cc,\n \"nukatakanahalfwidth\", 0xff87,\n \"nuktabengali\", 0x09bc,\n \"nuktadeva\", 0x093c,\n \"nuktagujarati\", 0x0abc,\n \"nuktagurmukhi\", 0x0a3c,\n \"numbersign\", 0x0023,\n \"numbersignmonospace\", 0xff03,\n \"numbersignsmall\", 0xfe5f,\n \"numeralsigngreek\", 0x0374,\n \"numeralsignlowergreek\", 0x0375,\n \"numero\", 0x2116,\n \"nun\", 0x05e0,\n \"nundagesh\", 0xfb40,\n \"nundageshhebrew\", 0xfb40,\n \"nunhebrew\", 0x05e0,\n \"nvsquare\", 0x33b5,\n \"nwsquare\", 0x33bb,\n \"nyabengali\", 0x099e,\n \"nyadeva\", 0x091e,\n \"nyagujarati\", 0x0a9e,\n \"nyagurmukhi\", 0x0a1e,\n \"o\", 0x006f,\n \"oacute\", 0x00f3,\n \"oangthai\", 0x0e2d,\n \"obarred\", 0x0275,\n \"obarredcyrillic\", 0x04e9,\n \"obarreddieresiscyrillic\", 0x04eb,\n \"obengali\", 0x0993,\n \"obopomofo\", 0x311b,\n \"obreve\", 0x014f,\n \"ocandradeva\", 0x0911,\n \"ocandragujarati\", 0x0a91,\n \"ocandravowelsigndeva\", 0x0949,\n \"ocandravowelsigngujarati\", 0x0ac9,\n \"ocaron\", 0x01d2,\n \"ocircle\", 0x24de,\n \"ocircumflex\", 0x00f4,\n \"ocircumflexacute\", 0x1ed1,\n \"ocircumflexdotbelow\", 0x1ed9,\n \"ocircumflexgrave\", 0x1ed3,\n \"ocircumflexhookabove\", 0x1ed5,\n \"ocircumflextilde\", 0x1ed7,\n \"ocyrillic\", 0x043e,\n \"odblacute\", 0x0151,\n \"odblgrave\", 0x020d,\n \"odeva\", 0x0913,\n \"odieresis\", 0x00f6,\n \"odieresiscyrillic\", 0x04e7,\n \"odotbelow\", 0x1ecd,\n \"oe\", 0x0153,\n \"oekorean\", 0x315a,\n \"ogonek\", 0x02db,\n \"ogonekcmb\", 0x0328,\n \"ograve\", 0x00f2,\n \"ogujarati\", 0x0a93,\n \"oharmenian\", 0x0585,\n \"ohiragana\", 0x304a,\n \"ohookabove\", 0x1ecf,\n \"ohorn\", 0x01a1,\n \"ohornacute\", 0x1edb,\n \"ohorndotbelow\", 0x1ee3,\n \"ohorngrave\", 0x1edd,\n \"ohornhookabove\", 0x1edf,\n \"ohorntilde\", 0x1ee1,\n \"ohungarumlaut\", 0x0151,\n \"oi\", 0x01a3,\n \"oinvertedbreve\", 0x020f,\n \"okatakana\", 0x30aa,\n \"okatakanahalfwidth\", 0xff75,\n \"okorean\", 0x3157,\n \"olehebrew\", 0x05ab,\n \"omacron\", 0x014d,\n \"omacronacute\", 0x1e53,\n \"omacrongrave\", 0x1e51,\n \"omdeva\", 0x0950,\n \"omega\", 0x03c9,\n \"omega1\", 0x03d6,\n \"omegacyrillic\", 0x0461,\n \"omegalatinclosed\", 0x0277,\n \"omegaroundcyrillic\", 0x047b,\n \"omegatitlocyrillic\", 0x047d,\n \"omegatonos\", 0x03ce,\n \"omgujarati\", 0x0ad0,\n \"omicron\", 0x03bf,\n \"omicrontonos\", 0x03cc,\n \"omonospace\", 0xff4f,\n \"one\", 0x0031,\n \"onearabic\", 0x0661,\n \"onebengali\", 0x09e7,\n \"onecircle\", 0x2460,\n \"onecircleinversesansserif\", 0x278a,\n \"onedeva\", 0x0967,\n \"onedotenleader\", 0x2024,\n \"oneeighth\", 0x215b,\n \"onefitted\", 0xf6dc,\n \"onegujarati\", 0x0ae7,\n \"onegurmukhi\", 0x0a67,\n \"onehackarabic\", 0x0661,\n \"onehalf\", 0x00bd,\n \"onehangzhou\", 0x3021,\n \"oneideographicparen\", 0x3220,\n \"oneinferior\", 0x2081,\n \"onemonospace\", 0xff11,\n \"onenumeratorbengali\", 0x09f4,\n \"oneoldstyle\", 0xf731,\n \"oneparen\", 0x2474,\n \"oneperiod\", 0x2488,\n \"onepersian\", 0x06f1,\n \"onequarter\", 0x00bc,\n \"oneroman\", 0x2170,\n \"onesuperior\", 0x00b9,\n \"onethai\", 0x0e51,\n \"onethird\", 0x2153,\n \"oogonek\", 0x01eb,\n \"oogonekmacron\", 0x01ed,\n \"oogurmukhi\", 0x0a13,\n \"oomatragurmukhi\", 0x0a4b,\n \"oopen\", 0x0254,\n \"oparen\", 0x24aa,\n \"openbullet\", 0x25e6,\n \"option\", 0x2325,\n \"ordfeminine\", 0x00aa,\n \"ordmasculine\", 0x00ba,\n \"orthogonal\", 0x221f,\n \"oshortdeva\", 0x0912,\n \"oshortvowelsigndeva\", 0x094a,\n \"oslash\", 0x00f8,\n \"oslashacute\", 0x01ff,\n \"osmallhiragana\", 0x3049,\n \"osmallkatakana\", 0x30a9,\n \"osmallkatakanahalfwidth\", 0xff6b,\n \"ostrokeacute\", 0x01ff,\n \"osuperior\", 0xf6f0,\n \"otcyrillic\", 0x047f,\n \"otilde\", 0x00f5,\n \"otildeacute\", 0x1e4d,\n \"otildedieresis\", 0x1e4f,\n \"oubopomofo\", 0x3121,\n \"overline\", 0x203e,\n \"overlinecenterline\", 0xfe4a,\n \"overlinecmb\", 0x0305,\n \"overlinedashed\", 0xfe49,\n \"overlinedblwavy\", 0xfe4c,\n \"overlinewavy\", 0xfe4b,\n \"overscore\", 0x00af,\n \"ovowelsignbengali\", 0x09cb,\n \"ovowelsigndeva\", 0x094b,\n \"ovowelsigngujarati\", 0x0acb,\n \"p\", 0x0070,\n \"paampssquare\", 0x3380,\n \"paasentosquare\", 0x332b,\n \"pabengali\", 0x09aa,\n \"pacute\", 0x1e55,\n \"padeva\", 0x092a,\n \"pagedown\", 0x21df,\n \"pageup\", 0x21de,\n \"pagujarati\", 0x0aaa,\n \"pagurmukhi\", 0x0a2a,\n \"pahiragana\", 0x3071,\n \"paiyannoithai\", 0x0e2f,\n \"pakatakana\", 0x30d1,\n \"palatalizationcyrilliccmb\", 0x0484,\n \"palochkacyrillic\", 0x04c0,\n \"pansioskorean\", 0x317f,\n \"paragraph\", 0x00b6,\n \"parallel\", 0x2225,\n \"parenleft\", 0x0028,\n \"parenleftaltonearabic\", 0xfd3e,\n \"parenleftbt\", 0xf8ed,\n \"parenleftex\", 0xf8ec,\n \"parenleftinferior\", 0x208d,\n \"parenleftmonospace\", 0xff08,\n \"parenleftsmall\", 0xfe59,\n \"parenleftsuperior\", 0x207d,\n \"parenlefttp\", 0xf8eb,\n \"parenleftvertical\", 0xfe35,\n \"parenright\", 0x0029,\n \"parenrightaltonearabic\", 0xfd3f,\n \"parenrightbt\", 0xf8f8,\n \"parenrightex\", 0xf8f7,\n \"parenrightinferior\", 0x208e,\n \"parenrightmonospace\", 0xff09,\n \"parenrightsmall\", 0xfe5a,\n \"parenrightsuperior\", 0x207e,\n \"parenrighttp\", 0xf8f6,\n \"parenrightvertical\", 0xfe36,\n \"partialdiff\", 0x2202,\n \"paseqhebrew\", 0x05c0,\n \"pashtahebrew\", 0x0599,\n \"pasquare\", 0x33a9,\n \"patah\", 0x05b7,\n \"patah11\", 0x05b7,\n \"patah1d\", 0x05b7,\n \"patah2a\", 0x05b7,\n \"patahhebrew\", 0x05b7,\n \"patahnarrowhebrew\", 0x05b7,\n \"patahquarterhebrew\", 0x05b7,\n \"patahwidehebrew\", 0x05b7,\n \"pazerhebrew\", 0x05a1,\n \"pbopomofo\", 0x3106,\n \"pcircle\", 0x24df,\n \"pdotaccent\", 0x1e57,\n \"pe\", 0x05e4,\n \"pecyrillic\", 0x043f,\n \"pedagesh\", 0xfb44,\n \"pedageshhebrew\", 0xfb44,\n \"peezisquare\", 0x333b,\n \"pefinaldageshhebrew\", 0xfb43,\n \"peharabic\", 0x067e,\n \"peharmenian\", 0x057a,\n \"pehebrew\", 0x05e4,\n \"pehfinalarabic\", 0xfb57,\n \"pehinitialarabic\", 0xfb58,\n \"pehiragana\", 0x307a,\n \"pehmedialarabic\", 0xfb59,\n \"pekatakana\", 0x30da,\n \"pemiddlehookcyrillic\", 0x04a7,\n \"perafehebrew\", 0xfb4e,\n \"percent\", 0x0025,\n \"percentarabic\", 0x066a,\n \"percentmonospace\", 0xff05,\n \"percentsmall\", 0xfe6a,\n \"period\", 0x002e,\n \"periodarmenian\", 0x0589,\n \"periodcentered\", 0x00b7,\n \"periodhalfwidth\", 0xff61,\n \"periodinferior\", 0xf6e7,\n \"periodmonospace\", 0xff0e,\n \"periodsmall\", 0xfe52,\n \"periodsuperior\", 0xf6e8,\n \"perispomenigreekcmb\", 0x0342,\n \"perpendicular\", 0x22a5,\n \"perthousand\", 0x2030,\n \"peseta\", 0x20a7,\n \"pfsquare\", 0x338a,\n \"phabengali\", 0x09ab,\n \"phadeva\", 0x092b,\n \"phagujarati\", 0x0aab,\n \"phagurmukhi\", 0x0a2b,\n \"phi\", 0x03c6,\n \"phi1\", 0x03d5,\n \"phieuphacirclekorean\", 0x327a,\n \"phieuphaparenkorean\", 0x321a,\n \"phieuphcirclekorean\", 0x326c,\n \"phieuphkorean\", 0x314d,\n \"phieuphparenkorean\", 0x320c,\n \"philatin\", 0x0278,\n \"phinthuthai\", 0x0e3a,\n \"phisymbolgreek\", 0x03d5,\n \"phook\", 0x01a5,\n \"phophanthai\", 0x0e1e,\n \"phophungthai\", 0x0e1c,\n \"phosamphaothai\", 0x0e20,\n \"pi\", 0x03c0,\n \"pieupacirclekorean\", 0x3273,\n \"pieupaparenkorean\", 0x3213,\n \"pieupcieuckorean\", 0x3176,\n \"pieupcirclekorean\", 0x3265,\n \"pieupkiyeokkorean\", 0x3172,\n \"pieupkorean\", 0x3142,\n \"pieupparenkorean\", 0x3205,\n \"pieupsioskiyeokkorean\", 0x3174,\n \"pieupsioskorean\", 0x3144,\n \"pieupsiostikeutkorean\", 0x3175,\n \"pieupthieuthkorean\", 0x3177,\n \"pieuptikeutkorean\", 0x3173,\n \"pihiragana\", 0x3074,\n \"pikatakana\", 0x30d4,\n \"pisymbolgreek\", 0x03d6,\n \"piwrarmenian\", 0x0583,\n \"plus\", 0x002b,\n \"plusbelowcmb\", 0x031f,\n \"pluscircle\", 0x2295,\n \"plusminus\", 0x00b1,\n \"plusmod\", 0x02d6,\n \"plusmonospace\", 0xff0b,\n \"plussmall\", 0xfe62,\n \"plussuperior\", 0x207a,\n \"pmonospace\", 0xff50,\n \"pmsquare\", 0x33d8,\n \"pohiragana\", 0x307d,\n \"pointingindexdownwhite\", 0x261f,\n \"pointingindexleftwhite\", 0x261c,\n \"pointingindexrightwhite\", 0x261e,\n \"pointingindexupwhite\", 0x261d,\n \"pokatakana\", 0x30dd,\n \"poplathai\", 0x0e1b,\n \"postalmark\", 0x3012,\n \"postalmarkface\", 0x3020,\n \"pparen\", 0x24ab,\n \"precedes\", 0x227a,\n \"prescription\", 0x211e,\n \"primemod\", 0x02b9,\n \"primereversed\", 0x2035,\n \"product\", 0x220f,\n \"projective\", 0x2305,\n \"prolongedkana\", 0x30fc,\n \"propellor\", 0x2318,\n \"propersubset\", 0x2282,\n \"propersuperset\", 0x2283,\n \"proportion\", 0x2237,\n \"proportional\", 0x221d,\n \"psi\", 0x03c8,\n \"psicyrillic\", 0x0471,\n \"psilipneumatacyrilliccmb\", 0x0486,\n \"pssquare\", 0x33b0,\n \"puhiragana\", 0x3077,\n \"pukatakana\", 0x30d7,\n \"pvsquare\", 0x33b4,\n \"pwsquare\", 0x33ba,\n \"q\", 0x0071,\n \"qadeva\", 0x0958,\n \"qadmahebrew\", 0x05a8,\n \"qafarabic\", 0x0642,\n \"qaffinalarabic\", 0xfed6,\n \"qafinitialarabic\", 0xfed7,\n \"qafmedialarabic\", 0xfed8,\n \"qamats\", 0x05b8,\n \"qamats10\", 0x05b8,\n \"qamats1a\", 0x05b8,\n \"qamats1c\", 0x05b8,\n \"qamats27\", 0x05b8,\n \"qamats29\", 0x05b8,\n \"qamats33\", 0x05b8,\n \"qamatsde\", 0x05b8,\n \"qamatshebrew\", 0x05b8,\n \"qamatsnarrowhebrew\", 0x05b8,\n \"qamatsqatanhebrew\", 0x05b8,\n \"qamatsqatannarrowhebrew\", 0x05b8,\n \"qamatsqatanquarterhebrew\", 0x05b8,\n \"qamatsqatanwidehebrew\", 0x05b8,\n \"qamatsquarterhebrew\", 0x05b8,\n \"qamatswidehebrew\", 0x05b8,\n \"qarneyparahebrew\", 0x059f,\n \"qbopomofo\", 0x3111,\n \"qcircle\", 0x24e0,\n \"qhook\", 0x02a0,\n \"qmonospace\", 0xff51,\n \"qof\", 0x05e7,\n \"qofdagesh\", 0xfb47,\n \"qofdageshhebrew\", 0xfb47,\n \"qofhebrew\", 0x05e7,\n \"qparen\", 0x24ac,\n \"quarternote\", 0x2669,\n \"qubuts\", 0x05bb,\n \"qubuts18\", 0x05bb,\n \"qubuts25\", 0x05bb,\n \"qubuts31\", 0x05bb,\n \"qubutshebrew\", 0x05bb,\n \"qubutsnarrowhebrew\", 0x05bb,\n \"qubutsquarterhebrew\", 0x05bb,\n \"qubutswidehebrew\", 0x05bb,\n \"question\", 0x003f,\n \"questionarabic\", 0x061f,\n \"questionarmenian\", 0x055e,\n \"questiondown\", 0x00bf,\n \"questiondownsmall\", 0xf7bf,\n \"questiongreek\", 0x037e,\n \"questionmonospace\", 0xff1f,\n \"questionsmall\", 0xf73f,\n \"quotedbl\", 0x0022,\n \"quotedblbase\", 0x201e,\n \"quotedblleft\", 0x201c,\n \"quotedblmonospace\", 0xff02,\n \"quotedblprime\", 0x301e,\n \"quotedblprimereversed\", 0x301d,\n \"quotedblright\", 0x201d,\n \"quoteleft\", 0x2018,\n \"quoteleftreversed\", 0x201b,\n \"quotereversed\", 0x201b,\n \"quoteright\", 0x2019,\n \"quoterightn\", 0x0149,\n \"quotesinglbase\", 0x201a,\n \"quotesingle\", 0x0027,\n \"quotesinglemonospace\", 0xff07,\n \"r\", 0x0072,\n \"raarmenian\", 0x057c,\n \"rabengali\", 0x09b0,\n \"racute\", 0x0155,\n \"radeva\", 0x0930,\n \"radical\", 0x221a,\n \"radicalex\", 0xf8e5,\n \"radoverssquare\", 0x33ae,\n \"radoverssquaredsquare\", 0x33af,\n \"radsquare\", 0x33ad,\n \"rafe\", 0x05bf,\n \"rafehebrew\", 0x05bf,\n \"ragujarati\", 0x0ab0,\n \"ragurmukhi\", 0x0a30,\n \"rahiragana\", 0x3089,\n \"rakatakana\", 0x30e9,\n \"rakatakanahalfwidth\", 0xff97,\n \"ralowerdiagonalbengali\", 0x09f1,\n \"ramiddlediagonalbengali\", 0x09f0,\n \"ramshorn\", 0x0264,\n \"ratio\", 0x2236,\n \"rbopomofo\", 0x3116,\n \"rcaron\", 0x0159,\n \"rcedilla\", 0x0157,\n \"rcircle\", 0x24e1,\n \"rcommaaccent\", 0x0157,\n \"rdblgrave\", 0x0211,\n \"rdotaccent\", 0x1e59,\n \"rdotbelow\", 0x1e5b,\n \"rdotbelowmacron\", 0x1e5d,\n \"referencemark\", 0x203b,\n \"reflexsubset\", 0x2286,\n \"reflexsuperset\", 0x2287,\n \"registered\", 0x00ae,\n \"registersans\", 0xf8e8,\n \"registerserif\", 0xf6da,\n \"reharabic\", 0x0631,\n \"reharmenian\", 0x0580,\n \"rehfinalarabic\", 0xfeae,\n \"rehiragana\", 0x308c,\n \"rekatakana\", 0x30ec,\n \"rekatakanahalfwidth\", 0xff9a,\n \"resh\", 0x05e8,\n \"reshdageshhebrew\", 0xfb48,\n \"reshhebrew\", 0x05e8,\n \"reversedtilde\", 0x223d,\n \"reviahebrew\", 0x0597,\n \"reviamugrashhebrew\", 0x0597,\n \"revlogicalnot\", 0x2310,\n \"rfishhook\", 0x027e,\n \"rfishhookreversed\", 0x027f,\n \"rhabengali\", 0x09dd,\n \"rhadeva\", 0x095d,\n \"rho\", 0x03c1,\n \"rhook\", 0x027d,\n \"rhookturned\", 0x027b,\n \"rhookturnedsuperior\", 0x02b5,\n \"rhosymbolgreek\", 0x03f1,\n \"rhotichookmod\", 0x02de,\n \"rieulacirclekorean\", 0x3271,\n \"rieulaparenkorean\", 0x3211,\n \"rieulcirclekorean\", 0x3263,\n \"rieulhieuhkorean\", 0x3140,\n \"rieulkiyeokkorean\", 0x313a,\n \"rieulkiyeoksioskorean\", 0x3169,\n \"rieulkorean\", 0x3139,\n \"rieulmieumkorean\", 0x313b,\n \"rieulpansioskorean\", 0x316c,\n \"rieulparenkorean\", 0x3203,\n \"rieulphieuphkorean\", 0x313f,\n \"rieulpieupkorean\", 0x313c,\n \"rieulpieupsioskorean\", 0x316b,\n \"rieulsioskorean\", 0x313d,\n \"rieulthieuthkorean\", 0x313e,\n \"rieultikeutkorean\", 0x316a,\n \"rieulyeorinhieuhkorean\", 0x316d,\n \"rightangle\", 0x221f,\n \"righttackbelowcmb\", 0x0319,\n \"righttriangle\", 0x22bf,\n \"rihiragana\", 0x308a,\n \"rikatakana\", 0x30ea,\n \"rikatakanahalfwidth\", 0xff98,\n \"ring\", 0x02da,\n \"ringbelowcmb\", 0x0325,\n \"ringcmb\", 0x030a,\n \"ringhalfleft\", 0x02bf,\n \"ringhalfleftarmenian\", 0x0559,\n \"ringhalfleftbelowcmb\", 0x031c,\n \"ringhalfleftcentered\", 0x02d3,\n \"ringhalfright\", 0x02be,\n \"ringhalfrightbelowcmb\", 0x0339,\n \"ringhalfrightcentered\", 0x02d2,\n \"rinvertedbreve\", 0x0213,\n \"rittorusquare\", 0x3351,\n \"rlinebelow\", 0x1e5f,\n \"rlongleg\", 0x027c,\n \"rlonglegturned\", 0x027a,\n \"rmonospace\", 0xff52,\n \"rohiragana\", 0x308d,\n \"rokatakana\", 0x30ed,\n \"rokatakanahalfwidth\", 0xff9b,\n \"roruathai\", 0x0e23,\n \"rparen\", 0x24ad,\n \"rrabengali\", 0x09dc,\n \"rradeva\", 0x0931,\n \"rragurmukhi\", 0x0a5c,\n \"rreharabic\", 0x0691,\n \"rrehfinalarabic\", 0xfb8d,\n \"rrvocalicbengali\", 0x09e0,\n \"rrvocalicdeva\", 0x0960,\n \"rrvocalicgujarati\", 0x0ae0,\n \"rrvocalicvowelsignbengali\", 0x09c4,\n \"rrvocalicvowelsigndeva\", 0x0944,\n \"rrvocalicvowelsigngujarati\", 0x0ac4,\n \"rsuperior\", 0xf6f1,\n \"rtblock\", 0x2590,\n \"rturned\", 0x0279,\n \"rturnedsuperior\", 0x02b4,\n \"ruhiragana\", 0x308b,\n \"rukatakana\", 0x30eb,\n \"rukatakanahalfwidth\", 0xff99,\n \"rupeemarkbengali\", 0x09f2,\n \"rupeesignbengali\", 0x09f3,\n \"rupiah\", 0xf6dd,\n \"ruthai\", 0x0e24,\n \"rvocalicbengali\", 0x098b,\n \"rvocalicdeva\", 0x090b,\n \"rvocalicgujarati\", 0x0a8b,\n \"rvocalicvowelsignbengali\", 0x09c3,\n \"rvocalicvowelsigndeva\", 0x0943,\n \"rvocalicvowelsigngujarati\", 0x0ac3,\n \"s\", 0x0073,\n \"sabengali\", 0x09b8,\n \"sacute\", 0x015b,\n \"sacutedotaccent\", 0x1e65,\n \"sadarabic\", 0x0635,\n \"sadeva\", 0x0938,\n \"sadfinalarabic\", 0xfeba,\n \"sadinitialarabic\", 0xfebb,\n \"sadmedialarabic\", 0xfebc,\n \"sagujarati\", 0x0ab8,\n \"sagurmukhi\", 0x0a38,\n \"sahiragana\", 0x3055,\n \"sakatakana\", 0x30b5,\n \"sakatakanahalfwidth\", 0xff7b,\n \"sallallahoualayhewasallamarabic\", 0xfdfa,\n \"samekh\", 0x05e1,\n \"samekhdagesh\", 0xfb41,\n \"samekhdageshhebrew\", 0xfb41,\n \"samekhhebrew\", 0x05e1,\n \"saraaathai\", 0x0e32,\n \"saraaethai\", 0x0e41,\n \"saraaimaimalaithai\", 0x0e44,\n \"saraaimaimuanthai\", 0x0e43,\n \"saraamthai\", 0x0e33,\n \"saraathai\", 0x0e30,\n \"saraethai\", 0x0e40,\n \"saraiileftthai\", 0xf886,\n \"saraiithai\", 0x0e35,\n \"saraileftthai\", 0xf885,\n \"saraithai\", 0x0e34,\n \"saraothai\", 0x0e42,\n \"saraueeleftthai\", 0xf888,\n \"saraueethai\", 0x0e37,\n \"saraueleftthai\", 0xf887,\n \"sarauethai\", 0x0e36,\n \"sarauthai\", 0x0e38,\n \"sarauuthai\", 0x0e39,\n \"sbopomofo\", 0x3119,\n \"scaron\", 0x0161,\n \"scarondotaccent\", 0x1e67,\n \"scedilla\", 0x015f,\n \"schwa\", 0x0259,\n \"schwacyrillic\", 0x04d9,\n \"schwadieresiscyrillic\", 0x04db,\n \"schwahook\", 0x025a,\n \"scircle\", 0x24e2,\n \"scircumflex\", 0x015d,\n \"scommaaccent\", 0x0219,\n \"sdotaccent\", 0x1e61,\n \"sdotbelow\", 0x1e63,\n \"sdotbelowdotaccent\", 0x1e69,\n \"seagullbelowcmb\", 0x033c,\n \"second\", 0x2033,\n \"secondtonechinese\", 0x02ca,\n \"section\", 0x00a7,\n \"seenarabic\", 0x0633,\n \"seenfinalarabic\", 0xfeb2,\n \"seeninitialarabic\", 0xfeb3,\n \"seenmedialarabic\", 0xfeb4,\n \"segol\", 0x05b6,\n \"segol13\", 0x05b6,\n \"segol1f\", 0x05b6,\n \"segol2c\", 0x05b6,\n \"segolhebrew\", 0x05b6,\n \"segolnarrowhebrew\", 0x05b6,\n \"segolquarterhebrew\", 0x05b6,\n \"segoltahebrew\", 0x0592,\n \"segolwidehebrew\", 0x05b6,\n \"seharmenian\", 0x057d,\n \"sehiragana\", 0x305b,\n \"sekatakana\", 0x30bb,\n \"sekatakanahalfwidth\", 0xff7e,\n \"semicolon\", 0x003b,\n \"semicolonarabic\", 0x061b,\n \"semicolonmonospace\", 0xff1b,\n \"semicolonsmall\", 0xfe54,\n \"semivoicedmarkkana\", 0x309c,\n \"semivoicedmarkkanahalfwidth\", 0xff9f,\n \"sentisquare\", 0x3322,\n \"sentosquare\", 0x3323,\n \"seven\", 0x0037,\n \"sevenarabic\", 0x0667,\n \"sevenbengali\", 0x09ed,\n \"sevencircle\", 0x2466,\n \"sevencircleinversesansserif\", 0x2790,\n \"sevendeva\", 0x096d,\n \"seveneighths\", 0x215e,\n \"sevengujarati\", 0x0aed,\n \"sevengurmukhi\", 0x0a6d,\n \"sevenhackarabic\", 0x0667,\n \"sevenhangzhou\", 0x3027,\n \"sevenideographicparen\", 0x3226,\n \"seveninferior\", 0x2087,\n \"sevenmonospace\", 0xff17,\n \"sevenoldstyle\", 0xf737,\n \"sevenparen\", 0x247a,\n \"sevenperiod\", 0x248e,\n \"sevenpersian\", 0x06f7,\n \"sevenroman\", 0x2176,\n \"sevensuperior\", 0x2077,\n \"seventeencircle\", 0x2470,\n \"seventeenparen\", 0x2484,\n \"seventeenperiod\", 0x2498,\n \"seventhai\", 0x0e57,\n \"sfthyphen\", 0x00ad,\n \"shaarmenian\", 0x0577,\n \"shabengali\", 0x09b6,\n \"shacyrillic\", 0x0448,\n \"shaddaarabic\", 0x0651,\n \"shaddadammaarabic\", 0xfc61,\n \"shaddadammatanarabic\", 0xfc5e,\n \"shaddafathaarabic\", 0xfc60,\n \"shaddakasraarabic\", 0xfc62,\n \"shaddakasratanarabic\", 0xfc5f,\n \"shade\", 0x2592,\n \"shadedark\", 0x2593,\n \"shadelight\", 0x2591,\n \"shademedium\", 0x2592,\n \"shadeva\", 0x0936,\n \"shagujarati\", 0x0ab6,\n \"shagurmukhi\", 0x0a36,\n \"shalshelethebrew\", 0x0593,\n \"shbopomofo\", 0x3115,\n \"shchacyrillic\", 0x0449,\n \"sheenarabic\", 0x0634,\n \"sheenfinalarabic\", 0xfeb6,\n \"sheeninitialarabic\", 0xfeb7,\n \"sheenmedialarabic\", 0xfeb8,\n \"sheicoptic\", 0x03e3,\n \"sheqel\", 0x20aa,\n \"sheqelhebrew\", 0x20aa,\n \"sheva\", 0x05b0,\n \"sheva115\", 0x05b0,\n \"sheva15\", 0x05b0,\n \"sheva22\", 0x05b0,\n \"sheva2e\", 0x05b0,\n \"shevahebrew\", 0x05b0,\n \"shevanarrowhebrew\", 0x05b0,\n \"shevaquarterhebrew\", 0x05b0,\n \"shevawidehebrew\", 0x05b0,\n \"shhacyrillic\", 0x04bb,\n \"shimacoptic\", 0x03ed,\n \"shin\", 0x05e9,\n \"shindagesh\", 0xfb49,\n \"shindageshhebrew\", 0xfb49,\n \"shindageshshindot\", 0xfb2c,\n \"shindageshshindothebrew\", 0xfb2c,\n \"shindageshsindot\", 0xfb2d,\n \"shindageshsindothebrew\", 0xfb2d,\n \"shindothebrew\", 0x05c1,\n \"shinhebrew\", 0x05e9,\n \"shinshindot\", 0xfb2a,\n \"shinshindothebrew\", 0xfb2a,\n \"shinsindot\", 0xfb2b,\n \"shinsindothebrew\", 0xfb2b,\n \"shook\", 0x0282,\n \"sigma\", 0x03c3,\n \"sigma1\", 0x03c2,\n \"sigmafinal\", 0x03c2,\n \"sigmalunatesymbolgreek\", 0x03f2,\n \"sihiragana\", 0x3057,\n \"sikatakana\", 0x30b7,\n \"sikatakanahalfwidth\", 0xff7c,\n \"siluqhebrew\", 0x05bd,\n \"siluqlefthebrew\", 0x05bd,\n \"similar\", 0x223c,\n \"sindothebrew\", 0x05c2,\n \"siosacirclekorean\", 0x3274,\n \"siosaparenkorean\", 0x3214,\n \"sioscieuckorean\", 0x317e,\n \"sioscirclekorean\", 0x3266,\n \"sioskiyeokkorean\", 0x317a,\n \"sioskorean\", 0x3145,\n \"siosnieunkorean\", 0x317b,\n \"siosparenkorean\", 0x3206,\n \"siospieupkorean\", 0x317d,\n \"siostikeutkorean\", 0x317c,\n \"six\", 0x0036,\n \"sixarabic\", 0x0666,\n \"sixbengali\", 0x09ec,\n \"sixcircle\", 0x2465,\n \"sixcircleinversesansserif\", 0x278f,\n \"sixdeva\", 0x096c,\n \"sixgujarati\", 0x0aec,\n \"sixgurmukhi\", 0x0a6c,\n \"sixhackarabic\", 0x0666,\n \"sixhangzhou\", 0x3026,\n \"sixideographicparen\", 0x3225,\n \"sixinferior\", 0x2086,\n \"sixmonospace\", 0xff16,\n \"sixoldstyle\", 0xf736,\n \"sixparen\", 0x2479,\n \"sixperiod\", 0x248d,\n \"sixpersian\", 0x06f6,\n \"sixroman\", 0x2175,\n \"sixsuperior\", 0x2076,\n \"sixteencircle\", 0x246f,\n \"sixteencurrencydenominatorbengali\", 0x09f9,\n \"sixteenparen\", 0x2483,\n \"sixteenperiod\", 0x2497,\n \"sixthai\", 0x0e56,\n \"slash\", 0x002f,\n \"slashmonospace\", 0xff0f,\n \"slong\", 0x017f,\n \"slongdotaccent\", 0x1e9b,\n \"smileface\", 0x263a,\n \"smonospace\", 0xff53,\n \"sofpasuqhebrew\", 0x05c3,\n \"softhyphen\", 0x00ad,\n \"softsigncyrillic\", 0x044c,\n \"sohiragana\", 0x305d,\n \"sokatakana\", 0x30bd,\n \"sokatakanahalfwidth\", 0xff7f,\n \"soliduslongoverlaycmb\", 0x0338,\n \"solidusshortoverlaycmb\", 0x0337,\n \"sorusithai\", 0x0e29,\n \"sosalathai\", 0x0e28,\n \"sosothai\", 0x0e0b,\n \"sosuathai\", 0x0e2a,\n \"space\", 0x0020,\n \"spacehackarabic\", 0x0020,\n \"spade\", 0x2660,\n \"spadesuitblack\", 0x2660,\n \"spadesuitwhite\", 0x2664,\n \"sparen\", 0x24ae,\n \"squarebelowcmb\", 0x033b,\n \"squarecc\", 0x33c4,\n \"squarecm\", 0x339d,\n \"squarediagonalcrosshatchfill\", 0x25a9,\n \"squarehorizontalfill\", 0x25a4,\n \"squarekg\", 0x338f,\n \"squarekm\", 0x339e,\n \"squarekmcapital\", 0x33ce,\n \"squareln\", 0x33d1,\n \"squarelog\", 0x33d2,\n \"squaremg\", 0x338e,\n \"squaremil\", 0x33d5,\n \"squaremm\", 0x339c,\n \"squaremsquared\", 0x33a1,\n \"squareorthogonalcrosshatchfill\", 0x25a6,\n \"squareupperlefttolowerrightfill\", 0x25a7,\n \"squareupperrighttolowerleftfill\", 0x25a8,\n \"squareverticalfill\", 0x25a5,\n \"squarewhitewithsmallblack\", 0x25a3,\n \"srsquare\", 0x33db,\n \"ssabengali\", 0x09b7,\n \"ssadeva\", 0x0937,\n \"ssagujarati\", 0x0ab7,\n \"ssangcieuckorean\", 0x3149,\n \"ssanghieuhkorean\", 0x3185,\n \"ssangieungkorean\", 0x3180,\n \"ssangkiyeokkorean\", 0x3132,\n \"ssangnieunkorean\", 0x3165,\n \"ssangpieupkorean\", 0x3143,\n \"ssangsioskorean\", 0x3146,\n \"ssangtikeutkorean\", 0x3138,\n \"ssuperior\", 0xf6f2,\n \"sterling\", 0x00a3,\n \"sterlingmonospace\", 0xffe1,\n \"strokelongoverlaycmb\", 0x0336,\n \"strokeshortoverlaycmb\", 0x0335,\n \"subset\", 0x2282,\n \"subsetnotequal\", 0x228a,\n \"subsetorequal\", 0x2286,\n \"succeeds\", 0x227b,\n \"suchthat\", 0x220b,\n \"suhiragana\", 0x3059,\n \"sukatakana\", 0x30b9,\n \"sukatakanahalfwidth\", 0xff7d,\n \"sukunarabic\", 0x0652,\n \"summation\", 0x2211,\n \"sun\", 0x263c,\n \"superset\", 0x2283,\n \"supersetnotequal\", 0x228b,\n \"supersetorequal\", 0x2287,\n \"svsquare\", 0x33dc,\n \"syouwaerasquare\", 0x337c,\n \"t\", 0x0074,\n \"tabengali\", 0x09a4,\n \"tackdown\", 0x22a4,\n \"tackleft\", 0x22a3,\n \"tadeva\", 0x0924,\n \"tagujarati\", 0x0aa4,\n \"tagurmukhi\", 0x0a24,\n \"taharabic\", 0x0637,\n \"tahfinalarabic\", 0xfec2,\n \"tahinitialarabic\", 0xfec3,\n \"tahiragana\", 0x305f,\n \"tahmedialarabic\", 0xfec4,\n \"taisyouerasquare\", 0x337d,\n \"takatakana\", 0x30bf,\n \"takatakanahalfwidth\", 0xff80,\n \"tatweelarabic\", 0x0640,\n \"tau\", 0x03c4,\n \"tav\", 0x05ea,\n \"tavdages\", 0xfb4a,\n \"tavdagesh\", 0xfb4a,\n \"tavdageshhebrew\", 0xfb4a,\n \"tavhebrew\", 0x05ea,\n \"tbar\", 0x0167,\n \"tbopomofo\", 0x310a,\n \"tcaron\", 0x0165,\n \"tccurl\", 0x02a8,\n \"tcedilla\", 0x0163,\n \"tcheharabic\", 0x0686,\n \"tchehfinalarabic\", 0xfb7b,\n \"tchehinitialarabic\", 0xfb7c,\n \"tchehmedialarabic\", 0xfb7d,\n \"tcircle\", 0x24e3,\n \"tcircumflexbelow\", 0x1e71,\n \"tcommaaccent\", 0x0163,\n \"tdieresis\", 0x1e97,\n \"tdotaccent\", 0x1e6b,\n \"tdotbelow\", 0x1e6d,\n \"tecyrillic\", 0x0442,\n \"tedescendercyrillic\", 0x04ad,\n \"teharabic\", 0x062a,\n \"tehfinalarabic\", 0xfe96,\n \"tehhahinitialarabic\", 0xfca2,\n \"tehhahisolatedarabic\", 0xfc0c,\n \"tehinitialarabic\", 0xfe97,\n \"tehiragana\", 0x3066,\n \"tehjeeminitialarabic\", 0xfca1,\n \"tehjeemisolatedarabic\", 0xfc0b,\n \"tehmarbutaarabic\", 0x0629,\n \"tehmarbutafinalarabic\", 0xfe94,\n \"tehmedialarabic\", 0xfe98,\n \"tehmeeminitialarabic\", 0xfca4,\n \"tehmeemisolatedarabic\", 0xfc0e,\n \"tehnoonfinalarabic\", 0xfc73,\n \"tekatakana\", 0x30c6,\n \"tekatakanahalfwidth\", 0xff83,\n \"telephone\", 0x2121,\n \"telephoneblack\", 0x260e,\n \"telishagedolahebrew\", 0x05a0,\n \"telishaqetanahebrew\", 0x05a9,\n \"tencircle\", 0x2469,\n \"tenideographicparen\", 0x3229,\n \"tenparen\", 0x247d,\n \"tenperiod\", 0x2491,\n \"tenroman\", 0x2179,\n \"tesh\", 0x02a7,\n \"tet\", 0x05d8,\n \"tetdagesh\", 0xfb38,\n \"tetdageshhebrew\", 0xfb38,\n \"tethebrew\", 0x05d8,\n \"tetsecyrillic\", 0x04b5,\n \"tevirhebrew\", 0x059b,\n \"tevirlefthebrew\", 0x059b,\n \"thabengali\", 0x09a5,\n \"thadeva\", 0x0925,\n \"thagujarati\", 0x0aa5,\n \"thagurmukhi\", 0x0a25,\n \"thalarabic\", 0x0630,\n \"thalfinalarabic\", 0xfeac,\n \"thanthakhatlowleftthai\", 0xf898,\n \"thanthakhatlowrightthai\", 0xf897,\n \"thanthakhatthai\", 0x0e4c,\n \"thanthakhatupperleftthai\", 0xf896,\n \"theharabic\", 0x062b,\n \"thehfinalarabic\", 0xfe9a,\n \"thehinitialarabic\", 0xfe9b,\n \"thehmedialarabic\", 0xfe9c,\n \"thereexists\", 0x2203,\n \"therefore\", 0x2234,\n \"theta\", 0x03b8,\n \"theta1\", 0x03d1,\n \"thetasymbolgreek\", 0x03d1,\n \"thieuthacirclekorean\", 0x3279,\n \"thieuthaparenkorean\", 0x3219,\n \"thieuthcirclekorean\", 0x326b,\n \"thieuthkorean\", 0x314c,\n \"thieuthparenkorean\", 0x320b,\n \"thirteencircle\", 0x246c,\n \"thirteenparen\", 0x2480,\n \"thirteenperiod\", 0x2494,\n \"thonangmonthothai\", 0x0e11,\n \"thook\", 0x01ad,\n \"thophuthaothai\", 0x0e12,\n \"thorn\", 0x00fe,\n \"thothahanthai\", 0x0e17,\n \"thothanthai\", 0x0e10,\n \"thothongthai\", 0x0e18,\n \"thothungthai\", 0x0e16,\n \"thousandcyrillic\", 0x0482,\n \"thousandsseparatorarabic\", 0x066c,\n \"thousandsseparatorpersian\", 0x066c,\n \"three\", 0x0033,\n \"threearabic\", 0x0663,\n \"threebengali\", 0x09e9,\n \"threecircle\", 0x2462,\n \"threecircleinversesansserif\", 0x278c,\n \"threedeva\", 0x0969,\n \"threeeighths\", 0x215c,\n \"threegujarati\", 0x0ae9,\n \"threegurmukhi\", 0x0a69,\n \"threehackarabic\", 0x0663,\n \"threehangzhou\", 0x3023,\n \"threeideographicparen\", 0x3222,\n \"threeinferior\", 0x2083,\n \"threemonospace\", 0xff13,\n \"threenumeratorbengali\", 0x09f6,\n \"threeoldstyle\", 0xf733,\n \"threeparen\", 0x2476,\n \"threeperiod\", 0x248a,\n \"threepersian\", 0x06f3,\n \"threequarters\", 0x00be,\n \"threequartersemdash\", 0xf6de,\n \"threeroman\", 0x2172,\n \"threesuperior\", 0x00b3,\n \"threethai\", 0x0e53,\n \"thzsquare\", 0x3394,\n \"tihiragana\", 0x3061,\n \"tikatakana\", 0x30c1,\n \"tikatakanahalfwidth\", 0xff81,\n \"tikeutacirclekorean\", 0x3270,\n \"tikeutaparenkorean\", 0x3210,\n \"tikeutcirclekorean\", 0x3262,\n \"tikeutkorean\", 0x3137,\n \"tikeutparenkorean\", 0x3202,\n \"tilde\", 0x02dc,\n \"tildebelowcmb\", 0x0330,\n \"tildecmb\", 0x0303,\n \"tildecomb\", 0x0303,\n \"tildedoublecmb\", 0x0360,\n \"tildeoperator\", 0x223c,\n \"tildeoverlaycmb\", 0x0334,\n \"tildeverticalcmb\", 0x033e,\n \"timescircle\", 0x2297,\n \"tipehahebrew\", 0x0596,\n \"tipehalefthebrew\", 0x0596,\n \"tippigurmukhi\", 0x0a70,\n \"titlocyrilliccmb\", 0x0483,\n \"tiwnarmenian\", 0x057f,\n \"tlinebelow\", 0x1e6f,\n \"tmonospace\", 0xff54,\n \"toarmenian\", 0x0569,\n \"tohiragana\", 0x3068,\n \"tokatakana\", 0x30c8,\n \"tokatakanahalfwidth\", 0xff84,\n \"tonebarextrahighmod\", 0x02e5,\n \"tonebarextralowmod\", 0x02e9,\n \"tonebarhighmod\", 0x02e6,\n \"tonebarlowmod\", 0x02e8,\n \"tonebarmidmod\", 0x02e7,\n \"tonefive\", 0x01bd,\n \"tonesix\", 0x0185,\n \"tonetwo\", 0x01a8,\n \"tonos\", 0x0384,\n \"tonsquare\", 0x3327,\n \"topatakthai\", 0x0e0f,\n \"tortoiseshellbracketleft\", 0x3014,\n \"tortoiseshellbracketleftsmall\", 0xfe5d,\n \"tortoiseshellbracketleftvertical\", 0xfe39,\n \"tortoiseshellbracketright\", 0x3015,\n \"tortoiseshellbracketrightsmall\", 0xfe5e,\n \"tortoiseshellbracketrightvertical\", 0xfe3a,\n \"totaothai\", 0x0e15,\n \"tpalatalhook\", 0x01ab,\n \"tparen\", 0x24af,\n \"trademark\", 0x2122,\n \"trademarksans\", 0xf8ea,\n \"trademarkserif\", 0xf6db,\n \"tretroflexhook\", 0x0288,\n \"triagdn\", 0x25bc,\n \"triaglf\", 0x25c4,\n \"triagrt\", 0x25ba,\n \"triagup\", 0x25b2,\n \"ts\", 0x02a6,\n \"tsadi\", 0x05e6,\n \"tsadidagesh\", 0xfb46,\n \"tsadidageshhebrew\", 0xfb46,\n \"tsadihebrew\", 0x05e6,\n \"tsecyrillic\", 0x0446,\n \"tsere\", 0x05b5,\n \"tsere12\", 0x05b5,\n \"tsere1e\", 0x05b5,\n \"tsere2b\", 0x05b5,\n \"tserehebrew\", 0x05b5,\n \"tserenarrowhebrew\", 0x05b5,\n \"tserequarterhebrew\", 0x05b5,\n \"tserewidehebrew\", 0x05b5,\n \"tshecyrillic\", 0x045b,\n \"tsuperior\", 0xf6f3,\n \"ttabengali\", 0x099f,\n \"ttadeva\", 0x091f,\n \"ttagujarati\", 0x0a9f,\n \"ttagurmukhi\", 0x0a1f,\n \"tteharabic\", 0x0679,\n \"ttehfinalarabic\", 0xfb67,\n \"ttehinitialarabic\", 0xfb68,\n \"ttehmedialarabic\", 0xfb69,\n \"tthabengali\", 0x09a0,\n \"tthadeva\", 0x0920,\n \"tthagujarati\", 0x0aa0,\n \"tthagurmukhi\", 0x0a20,\n \"tturned\", 0x0287,\n \"tuhiragana\", 0x3064,\n \"tukatakana\", 0x30c4,\n \"tukatakanahalfwidth\", 0xff82,\n \"tusmallhiragana\", 0x3063,\n \"tusmallkatakana\", 0x30c3,\n \"tusmallkatakanahalfwidth\", 0xff6f,\n \"twelvecircle\", 0x246b,\n \"twelveparen\", 0x247f,\n \"twelveperiod\", 0x2493,\n \"twelveroman\", 0x217b,\n \"twentycircle\", 0x2473,\n \"twentyhangzhou\", 0x5344,\n \"twentyparen\", 0x2487,\n \"twentyperiod\", 0x249b,\n \"two\", 0x0032,\n \"twoarabic\", 0x0662,\n \"twobengali\", 0x09e8,\n \"twocircle\", 0x2461,\n \"twocircleinversesansserif\", 0x278b,\n \"twodeva\", 0x0968,\n \"twodotenleader\", 0x2025,\n \"twodotleader\", 0x2025,\n \"twodotleadervertical\", 0xfe30,\n \"twogujarati\", 0x0ae8,\n \"twogurmukhi\", 0x0a68,\n \"twohackarabic\", 0x0662,\n \"twohangzhou\", 0x3022,\n \"twoideographicparen\", 0x3221,\n \"twoinferior\", 0x2082,\n \"twomonospace\", 0xff12,\n \"twonumeratorbengali\", 0x09f5,\n \"twooldstyle\", 0xf732,\n \"twoparen\", 0x2475,\n \"twoperiod\", 0x2489,\n \"twopersian\", 0x06f2,\n \"tworoman\", 0x2171,\n \"twostroke\", 0x01bb,\n \"twosuperior\", 0x00b2,\n \"twothai\", 0x0e52,\n \"twothirds\", 0x2154,\n \"u\", 0x0075,\n \"uacute\", 0x00fa,\n \"ubar\", 0x0289,\n \"ubengali\", 0x0989,\n \"ubopomofo\", 0x3128,\n \"ubreve\", 0x016d,\n \"ucaron\", 0x01d4,\n \"ucircle\", 0x24e4,\n \"ucircumflex\", 0x00fb,\n \"ucircumflexbelow\", 0x1e77,\n \"ucyrillic\", 0x0443,\n \"udattadeva\", 0x0951,\n \"udblacute\", 0x0171,\n \"udblgrave\", 0x0215,\n \"udeva\", 0x0909,\n \"udieresis\", 0x00fc,\n \"udieresisacute\", 0x01d8,\n \"udieresisbelow\", 0x1e73,\n \"udieresiscaron\", 0x01da,\n \"udieresiscyrillic\", 0x04f1,\n \"udieresisgrave\", 0x01dc,\n \"udieresismacron\", 0x01d6,\n \"udotbelow\", 0x1ee5,\n \"ugrave\", 0x00f9,\n \"ugujarati\", 0x0a89,\n \"ugurmukhi\", 0x0a09,\n \"uhiragana\", 0x3046,\n \"uhookabove\", 0x1ee7,\n \"uhorn\", 0x01b0,\n \"uhornacute\", 0x1ee9,\n \"uhorndotbelow\", 0x1ef1,\n \"uhorngrave\", 0x1eeb,\n \"uhornhookabove\", 0x1eed,\n \"uhorntilde\", 0x1eef,\n \"uhungarumlaut\", 0x0171,\n \"uhungarumlautcyrillic\", 0x04f3,\n \"uinvertedbreve\", 0x0217,\n \"ukatakana\", 0x30a6,\n \"ukatakanahalfwidth\", 0xff73,\n \"ukcyrillic\", 0x0479,\n \"ukorean\", 0x315c,\n \"umacron\", 0x016b,\n \"umacroncyrillic\", 0x04ef,\n \"umacrondieresis\", 0x1e7b,\n \"umatragurmukhi\", 0x0a41,\n \"umonospace\", 0xff55,\n \"underscore\", 0x005f,\n \"underscoredbl\", 0x2017,\n \"underscoremonospace\", 0xff3f,\n \"underscorevertical\", 0xfe33,\n \"underscorewavy\", 0xfe4f,\n \"union\", 0x222a,\n \"universal\", 0x2200,\n \"uogonek\", 0x0173,\n \"uparen\", 0x24b0,\n \"upblock\", 0x2580,\n \"upperdothebrew\", 0x05c4,\n \"upsilon\", 0x03c5,\n \"upsilondieresis\", 0x03cb,\n \"upsilondieresistonos\", 0x03b0,\n \"upsilonlatin\", 0x028a,\n \"upsilontonos\", 0x03cd,\n \"uptackbelowcmb\", 0x031d,\n \"uptackmod\", 0x02d4,\n \"uragurmukhi\", 0x0a73,\n \"uring\", 0x016f,\n \"ushortcyrillic\", 0x045e,\n \"usmallhiragana\", 0x3045,\n \"usmallkatakana\", 0x30a5,\n \"usmallkatakanahalfwidth\", 0xff69,\n \"ustraightcyrillic\", 0x04af,\n \"ustraightstrokecyrillic\", 0x04b1,\n \"utilde\", 0x0169,\n \"utildeacute\", 0x1e79,\n \"utildebelow\", 0x1e75,\n \"uubengali\", 0x098a,\n \"uudeva\", 0x090a,\n \"uugujarati\", 0x0a8a,\n \"uugurmukhi\", 0x0a0a,\n \"uumatragurmukhi\", 0x0a42,\n \"uuvowelsignbengali\", 0x09c2,\n \"uuvowelsigndeva\", 0x0942,\n \"uuvowelsigngujarati\", 0x0ac2,\n \"uvowelsignbengali\", 0x09c1,\n \"uvowelsigndeva\", 0x0941,\n \"uvowelsigngujarati\", 0x0ac1,\n \"v\", 0x0076,\n \"vadeva\", 0x0935,\n \"vagujarati\", 0x0ab5,\n \"vagurmukhi\", 0x0a35,\n \"vakatakana\", 0x30f7,\n \"vav\", 0x05d5,\n \"vavdagesh\", 0xfb35,\n \"vavdagesh65\", 0xfb35,\n \"vavdageshhebrew\", 0xfb35,\n \"vavhebrew\", 0x05d5,\n \"vavholam\", 0xfb4b,\n \"vavholamhebrew\", 0xfb4b,\n \"vavvavhebrew\", 0x05f0,\n \"vavyodhebrew\", 0x05f1,\n \"vcircle\", 0x24e5,\n \"vdotbelow\", 0x1e7f,\n \"vecyrillic\", 0x0432,\n \"veharabic\", 0x06a4,\n \"vehfinalarabic\", 0xfb6b,\n \"vehinitialarabic\", 0xfb6c,\n \"vehmedialarabic\", 0xfb6d,\n \"vekatakana\", 0x30f9,\n \"venus\", 0x2640,\n \"verticalbar\", 0x007c,\n \"verticallineabovecmb\", 0x030d,\n \"verticallinebelowcmb\", 0x0329,\n \"verticallinelowmod\", 0x02cc,\n \"verticallinemod\", 0x02c8,\n \"vewarmenian\", 0x057e,\n \"vhook\", 0x028b,\n \"vikatakana\", 0x30f8,\n \"viramabengali\", 0x09cd,\n \"viramadeva\", 0x094d,\n \"viramagujarati\", 0x0acd,\n \"visargabengali\", 0x0983,\n \"visargadeva\", 0x0903,\n \"visargagujarati\", 0x0a83,\n \"vmonospace\", 0xff56,\n \"voarmenian\", 0x0578,\n \"voicediterationhiragana\", 0x309e,\n \"voicediterationkatakana\", 0x30fe,\n \"voicedmarkkana\", 0x309b,\n \"voicedmarkkanahalfwidth\", 0xff9e,\n \"vokatakana\", 0x30fa,\n \"vparen\", 0x24b1,\n \"vtilde\", 0x1e7d,\n \"vturned\", 0x028c,\n \"vuhiragana\", 0x3094,\n \"vukatakana\", 0x30f4,\n \"w\", 0x0077,\n \"wacute\", 0x1e83,\n \"waekorean\", 0x3159,\n \"wahiragana\", 0x308f,\n \"wakatakana\", 0x30ef,\n \"wakatakanahalfwidth\", 0xff9c,\n \"wakorean\", 0x3158,\n \"wasmallhiragana\", 0x308e,\n \"wasmallkatakana\", 0x30ee,\n \"wattosquare\", 0x3357,\n \"wavedash\", 0x301c,\n \"wavyunderscorevertical\", 0xfe34,\n \"wawarabic\", 0x0648,\n \"wawfinalarabic\", 0xfeee,\n \"wawhamzaabovearabic\", 0x0624,\n \"wawhamzaabovefinalarabic\", 0xfe86,\n \"wbsquare\", 0x33dd,\n \"wcircle\", 0x24e6,\n \"wcircumflex\", 0x0175,\n \"wdieresis\", 0x1e85,\n \"wdotaccent\", 0x1e87,\n \"wdotbelow\", 0x1e89,\n \"wehiragana\", 0x3091,\n \"weierstrass\", 0x2118,\n \"wekatakana\", 0x30f1,\n \"wekorean\", 0x315e,\n \"weokorean\", 0x315d,\n \"wgrave\", 0x1e81,\n \"whitebullet\", 0x25e6,\n \"whitecircle\", 0x25cb,\n \"whitecircleinverse\", 0x25d9,\n \"whitecornerbracketleft\", 0x300e,\n \"whitecornerbracketleftvertical\", 0xfe43,\n \"whitecornerbracketright\", 0x300f,\n \"whitecornerbracketrightvertical\", 0xfe44,\n \"whitediamond\", 0x25c7,\n \"whitediamondcontainingblacksmalldiamond\", 0x25c8,\n \"whitedownpointingsmalltriangle\", 0x25bf,\n \"whitedownpointingtriangle\", 0x25bd,\n \"whiteleftpointingsmalltriangle\", 0x25c3,\n \"whiteleftpointingtriangle\", 0x25c1,\n \"whitelenticularbracketleft\", 0x3016,\n \"whitelenticularbracketright\", 0x3017,\n \"whiterightpointingsmalltriangle\", 0x25b9,\n \"whiterightpointingtriangle\", 0x25b7,\n \"whitesmallsquare\", 0x25ab,\n \"whitesmilingface\", 0x263a,\n \"whitesquare\", 0x25a1,\n \"whitestar\", 0x2606,\n \"whitetelephone\", 0x260f,\n \"whitetortoiseshellbracketleft\", 0x3018,\n \"whitetortoiseshellbracketright\", 0x3019,\n \"whiteuppointingsmalltriangle\", 0x25b5,\n \"whiteuppointingtriangle\", 0x25b3,\n \"wihiragana\", 0x3090,\n \"wikatakana\", 0x30f0,\n \"wikorean\", 0x315f,\n \"wmonospace\", 0xff57,\n \"wohiragana\", 0x3092,\n \"wokatakana\", 0x30f2,\n \"wokatakanahalfwidth\", 0xff66,\n \"won\", 0x20a9,\n \"wonmonospace\", 0xffe6,\n \"wowaenthai\", 0x0e27,\n \"wparen\", 0x24b2,\n \"wring\", 0x1e98,\n \"wsuperior\", 0x02b7,\n \"wturned\", 0x028d,\n \"wynn\", 0x01bf,\n \"x\", 0x0078,\n \"xabovecmb\", 0x033d,\n \"xbopomofo\", 0x3112,\n \"xcircle\", 0x24e7,\n \"xdieresis\", 0x1e8d,\n \"xdotaccent\", 0x1e8b,\n \"xeharmenian\", 0x056d,\n \"xi\", 0x03be,\n \"xmonospace\", 0xff58,\n \"xparen\", 0x24b3,\n \"xsuperior\", 0x02e3,\n \"y\", 0x0079,\n \"yaadosquare\", 0x334e,\n \"yabengali\", 0x09af,\n \"yacute\", 0x00fd,\n \"yadeva\", 0x092f,\n \"yaekorean\", 0x3152,\n \"yagujarati\", 0x0aaf,\n \"yagurmukhi\", 0x0a2f,\n \"yahiragana\", 0x3084,\n \"yakatakana\", 0x30e4,\n \"yakatakanahalfwidth\", 0xff94,\n \"yakorean\", 0x3151,\n \"yamakkanthai\", 0x0e4e,\n \"yasmallhiragana\", 0x3083,\n \"yasmallkatakana\", 0x30e3,\n \"yasmallkatakanahalfwidth\", 0xff6c,\n \"yatcyrillic\", 0x0463,\n \"ycircle\", 0x24e8,\n \"ycircumflex\", 0x0177,\n \"ydieresis\", 0x00ff,\n \"ydotaccent\", 0x1e8f,\n \"ydotbelow\", 0x1ef5,\n \"yeharabic\", 0x064a,\n \"yehbarreearabic\", 0x06d2,\n \"yehbarreefinalarabic\", 0xfbaf,\n \"yehfinalarabic\", 0xfef2,\n \"yehhamzaabovearabic\", 0x0626,\n \"yehhamzaabovefinalarabic\", 0xfe8a,\n \"yehhamzaaboveinitialarabic\", 0xfe8b,\n \"yehhamzaabovemedialarabic\", 0xfe8c,\n \"yehinitialarabic\", 0xfef3,\n \"yehmedialarabic\", 0xfef4,\n \"yehmeeminitialarabic\", 0xfcdd,\n \"yehmeemisolatedarabic\", 0xfc58,\n \"yehnoonfinalarabic\", 0xfc94,\n \"yehthreedotsbelowarabic\", 0x06d1,\n \"yekorean\", 0x3156,\n \"yen\", 0x00a5,\n \"yenmonospace\", 0xffe5,\n \"yeokorean\", 0x3155,\n \"yeorinhieuhkorean\", 0x3186,\n \"yerahbenyomohebrew\", 0x05aa,\n \"yerahbenyomolefthebrew\", 0x05aa,\n \"yericyrillic\", 0x044b,\n \"yerudieresiscyrillic\", 0x04f9,\n \"yesieungkorean\", 0x3181,\n \"yesieungpansioskorean\", 0x3183,\n \"yesieungsioskorean\", 0x3182,\n \"yetivhebrew\", 0x059a,\n \"ygrave\", 0x1ef3,\n \"yhook\", 0x01b4,\n \"yhookabove\", 0x1ef7,\n \"yiarmenian\", 0x0575,\n \"yicyrillic\", 0x0457,\n \"yikorean\", 0x3162,\n \"yinyang\", 0x262f,\n \"yiwnarmenian\", 0x0582,\n \"ymonospace\", 0xff59,\n \"yod\", 0x05d9,\n \"yoddagesh\", 0xfb39,\n \"yoddageshhebrew\", 0xfb39,\n \"yodhebrew\", 0x05d9,\n \"yodyodhebrew\", 0x05f2,\n \"yodyodpatahhebrew\", 0xfb1f,\n \"yohiragana\", 0x3088,\n \"yoikorean\", 0x3189,\n \"yokatakana\", 0x30e8,\n \"yokatakanahalfwidth\", 0xff96,\n \"yokorean\", 0x315b,\n \"yosmallhiragana\", 0x3087,\n \"yosmallkatakana\", 0x30e7,\n \"yosmallkatakanahalfwidth\", 0xff6e,\n \"yotgreek\", 0x03f3,\n \"yoyaekorean\", 0x3188,\n \"yoyakorean\", 0x3187,\n \"yoyakthai\", 0x0e22,\n \"yoyingthai\", 0x0e0d,\n \"yparen\", 0x24b4,\n \"ypogegrammeni\", 0x037a,\n \"ypogegrammenigreekcmb\", 0x0345,\n \"yr\", 0x01a6,\n \"yring\", 0x1e99,\n \"ysuperior\", 0x02b8,\n \"ytilde\", 0x1ef9,\n \"yturned\", 0x028e,\n \"yuhiragana\", 0x3086,\n \"yuikorean\", 0x318c,\n \"yukatakana\", 0x30e6,\n \"yukatakanahalfwidth\", 0xff95,\n \"yukorean\", 0x3160,\n \"yusbigcyrillic\", 0x046b,\n \"yusbigiotifiedcyrillic\", 0x046d,\n \"yuslittlecyrillic\", 0x0467,\n \"yuslittleiotifiedcyrillic\", 0x0469,\n \"yusmallhiragana\", 0x3085,\n \"yusmallkatakana\", 0x30e5,\n \"yusmallkatakanahalfwidth\", 0xff6d,\n \"yuyekorean\", 0x318b,\n \"yuyeokorean\", 0x318a,\n \"yyabengali\", 0x09df,\n \"yyadeva\", 0x095f,\n \"z\", 0x007a,\n \"zaarmenian\", 0x0566,\n \"zacute\", 0x017a,\n \"zadeva\", 0x095b,\n \"zagurmukhi\", 0x0a5b,\n \"zaharabic\", 0x0638,\n \"zahfinalarabic\", 0xfec6,\n \"zahinitialarabic\", 0xfec7,\n \"zahiragana\", 0x3056,\n \"zahmedialarabic\", 0xfec8,\n \"zainarabic\", 0x0632,\n \"zainfinalarabic\", 0xfeb0,\n \"zakatakana\", 0x30b6,\n \"zaqefgadolhebrew\", 0x0595,\n \"zaqefqatanhebrew\", 0x0594,\n \"zarqahebrew\", 0x0598,\n \"zayin\", 0x05d6,\n \"zayindagesh\", 0xfb36,\n \"zayindageshhebrew\", 0xfb36,\n \"zayinhebrew\", 0x05d6,\n \"zbopomofo\", 0x3117,\n \"zcaron\", 0x017e,\n \"zcircle\", 0x24e9,\n \"zcircumflex\", 0x1e91,\n \"zcurl\", 0x0291,\n \"zdot\", 0x017c,\n \"zdotaccent\", 0x017c,\n \"zdotbelow\", 0x1e93,\n \"zecyrillic\", 0x0437,\n \"zedescendercyrillic\", 0x0499,\n \"zedieresiscyrillic\", 0x04df,\n \"zehiragana\", 0x305c,\n \"zekatakana\", 0x30bc,\n \"zero\", 0x0030,\n \"zeroarabic\", 0x0660,\n \"zerobengali\", 0x09e6,\n \"zerodeva\", 0x0966,\n \"zerogujarati\", 0x0ae6,\n \"zerogurmukhi\", 0x0a66,\n \"zerohackarabic\", 0x0660,\n \"zeroinferior\", 0x2080,\n \"zeromonospace\", 0xff10,\n \"zerooldstyle\", 0xf730,\n \"zeropersian\", 0x06f0,\n \"zerosuperior\", 0x2070,\n \"zerothai\", 0x0e50,\n \"zerowidthjoiner\", 0xfeff,\n \"zerowidthnonjoiner\", 0x200c,\n \"zerowidthspace\", 0x200b,\n \"zeta\", 0x03b6,\n \"zhbopomofo\", 0x3113,\n \"zhearmenian\", 0x056a,\n \"zhebrevecyrillic\", 0x04c2,\n \"zhecyrillic\", 0x0436,\n \"zhedescendercyrillic\", 0x0497,\n \"zhedieresiscyrillic\", 0x04dd,\n \"zihiragana\", 0x3058,\n \"zikatakana\", 0x30b8,\n \"zinorhebrew\", 0x05ae,\n \"zlinebelow\", 0x1e95,\n \"zmonospace\", 0xff5a,\n \"zohiragana\", 0x305e,\n \"zokatakana\", 0x30be,\n \"zparen\", 0x24b5,\n \"zretroflexhook\", 0x0290,\n \"zstroke\", 0x01b6,\n \"zuhiragana\", 0x305a,\n \"zukatakana\", 0x30ba,\n \".notdef\", 0x0000,\n\n // TeX-specific glyph names.\n \"angbracketleftbig\", 0x2329,\n \"angbracketleftBig\", 0x2329,\n \"angbracketleftbigg\", 0x2329,\n \"angbracketleftBigg\", 0x2329,\n \"angbracketrightBig\", 0x232a,\n \"angbracketrightbig\", 0x232a,\n \"angbracketrightBigg\", 0x232a,\n \"angbracketrightbigg\", 0x232a,\n \"arrowhookleft\", 0x21aa,\n \"arrowhookright\", 0x21a9,\n \"arrowlefttophalf\", 0x21bc,\n \"arrowleftbothalf\", 0x21bd,\n \"arrownortheast\", 0x2197,\n \"arrownorthwest\", 0x2196,\n \"arrowrighttophalf\", 0x21c0,\n \"arrowrightbothalf\", 0x21c1,\n \"arrowsoutheast\", 0x2198,\n \"arrowsouthwest\", 0x2199,\n \"backslashbig\", 0x2216,\n \"backslashBig\", 0x2216,\n \"backslashBigg\", 0x2216,\n \"backslashbigg\", 0x2216,\n \"bardbl\", 0x2016,\n \"bracehtipdownleft\", 0xfe37,\n \"bracehtipdownright\", 0xfe37,\n \"bracehtipupleft\", 0xfe38,\n \"bracehtipupright\", 0xfe38,\n \"braceleftBig\", 0x007b,\n \"braceleftbig\", 0x007b,\n \"braceleftbigg\", 0x007b,\n \"braceleftBigg\", 0x007b,\n \"bracerightBig\", 0x007d,\n \"bracerightbig\", 0x007d,\n \"bracerightbigg\", 0x007d,\n \"bracerightBigg\", 0x007d,\n \"bracketleftbig\", 0x005b,\n \"bracketleftBig\", 0x005b,\n \"bracketleftbigg\", 0x005b,\n \"bracketleftBigg\", 0x005b,\n \"bracketrightBig\", 0x005d,\n \"bracketrightbig\", 0x005d,\n \"bracketrightbigg\", 0x005d,\n \"bracketrightBigg\", 0x005d,\n \"ceilingleftbig\", 0x2308,\n \"ceilingleftBig\", 0x2308,\n \"ceilingleftBigg\", 0x2308,\n \"ceilingleftbigg\", 0x2308,\n \"ceilingrightbig\", 0x2309,\n \"ceilingrightBig\", 0x2309,\n \"ceilingrightbigg\", 0x2309,\n \"ceilingrightBigg\", 0x2309,\n \"circledotdisplay\", 0x2299,\n \"circledottext\", 0x2299,\n \"circlemultiplydisplay\", 0x2297,\n \"circlemultiplytext\", 0x2297,\n \"circleplusdisplay\", 0x2295,\n \"circleplustext\", 0x2295,\n \"contintegraldisplay\", 0x222e,\n \"contintegraltext\", 0x222e,\n \"coproductdisplay\", 0x2210,\n \"coproducttext\", 0x2210,\n \"floorleftBig\", 0x230a,\n \"floorleftbig\", 0x230a,\n \"floorleftbigg\", 0x230a,\n \"floorleftBigg\", 0x230a,\n \"floorrightbig\", 0x230b,\n \"floorrightBig\", 0x230b,\n \"floorrightBigg\", 0x230b,\n \"floorrightbigg\", 0x230b,\n \"hatwide\", 0x0302,\n \"hatwider\", 0x0302,\n \"hatwidest\", 0x0302,\n \"intercal\", 0x1d40,\n \"integraldisplay\", 0x222b,\n \"integraltext\", 0x222b,\n \"intersectiondisplay\", 0x22c2,\n \"intersectiontext\", 0x22c2,\n \"logicalanddisplay\", 0x2227,\n \"logicalandtext\", 0x2227,\n \"logicalordisplay\", 0x2228,\n \"logicalortext\", 0x2228,\n \"parenleftBig\", 0x0028,\n \"parenleftbig\", 0x0028,\n \"parenleftBigg\", 0x0028,\n \"parenleftbigg\", 0x0028,\n \"parenrightBig\", 0x0029,\n \"parenrightbig\", 0x0029,\n \"parenrightBigg\", 0x0029,\n \"parenrightbigg\", 0x0029,\n \"prime\", 0x2032,\n \"productdisplay\", 0x220f,\n \"producttext\", 0x220f,\n \"radicalbig\", 0x221a,\n \"radicalBig\", 0x221a,\n \"radicalBigg\", 0x221a,\n \"radicalbigg\", 0x221a,\n \"radicalbt\", 0x221a,\n \"radicaltp\", 0x221a,\n \"radicalvertex\", 0x221a,\n \"slashbig\", 0x002f,\n \"slashBig\", 0x002f,\n \"slashBigg\", 0x002f,\n \"slashbigg\", 0x002f,\n \"summationdisplay\", 0x2211,\n \"summationtext\", 0x2211,\n \"tildewide\", 0x02dc,\n \"tildewider\", 0x02dc,\n \"tildewidest\", 0x02dc,\n \"uniondisplay\", 0x22c3,\n \"unionmultidisplay\", 0x228e,\n \"unionmultitext\", 0x228e,\n \"unionsqdisplay\", 0x2294,\n \"unionsqtext\", 0x2294,\n \"uniontext\", 0x22c3,\n \"vextenddouble\", 0x2225,\n \"vextendsingle\", 0x2223,\n ];\n});\n\nconst getDingbatsGlyphsUnicode = getArrayLookupTableFactory(function () {\n // prettier-ignore\n return [\n \"space\", 0x0020,\n \"a1\", 0x2701,\n \"a2\", 0x2702,\n \"a202\", 0x2703,\n \"a3\", 0x2704,\n \"a4\", 0x260e,\n \"a5\", 0x2706,\n \"a119\", 0x2707,\n \"a118\", 0x2708,\n \"a117\", 0x2709,\n \"a11\", 0x261b,\n \"a12\", 0x261e,\n \"a13\", 0x270c,\n \"a14\", 0x270d,\n \"a15\", 0x270e,\n \"a16\", 0x270f,\n \"a105\", 0x2710,\n \"a17\", 0x2711,\n \"a18\", 0x2712,\n \"a19\", 0x2713,\n \"a20\", 0x2714,\n \"a21\", 0x2715,\n \"a22\", 0x2716,\n \"a23\", 0x2717,\n \"a24\", 0x2718,\n \"a25\", 0x2719,\n \"a26\", 0x271a,\n \"a27\", 0x271b,\n \"a28\", 0x271c,\n \"a6\", 0x271d,\n \"a7\", 0x271e,\n \"a8\", 0x271f,\n \"a9\", 0x2720,\n \"a10\", 0x2721,\n \"a29\", 0x2722,\n \"a30\", 0x2723,\n \"a31\", 0x2724,\n \"a32\", 0x2725,\n \"a33\", 0x2726,\n \"a34\", 0x2727,\n \"a35\", 0x2605,\n \"a36\", 0x2729,\n \"a37\", 0x272a,\n \"a38\", 0x272b,\n \"a39\", 0x272c,\n \"a40\", 0x272d,\n \"a41\", 0x272e,\n \"a42\", 0x272f,\n \"a43\", 0x2730,\n \"a44\", 0x2731,\n \"a45\", 0x2732,\n \"a46\", 0x2733,\n \"a47\", 0x2734,\n \"a48\", 0x2735,\n \"a49\", 0x2736,\n \"a50\", 0x2737,\n \"a51\", 0x2738,\n \"a52\", 0x2739,\n \"a53\", 0x273a,\n \"a54\", 0x273b,\n \"a55\", 0x273c,\n \"a56\", 0x273d,\n \"a57\", 0x273e,\n \"a58\", 0x273f,\n \"a59\", 0x2740,\n \"a60\", 0x2741,\n \"a61\", 0x2742,\n \"a62\", 0x2743,\n \"a63\", 0x2744,\n \"a64\", 0x2745,\n \"a65\", 0x2746,\n \"a66\", 0x2747,\n \"a67\", 0x2748,\n \"a68\", 0x2749,\n \"a69\", 0x274a,\n \"a70\", 0x274b,\n \"a71\", 0x25cf,\n \"a72\", 0x274d,\n \"a73\", 0x25a0,\n \"a74\", 0x274f,\n \"a203\", 0x2750,\n \"a75\", 0x2751,\n \"a204\", 0x2752,\n \"a76\", 0x25b2,\n \"a77\", 0x25bc,\n \"a78\", 0x25c6,\n \"a79\", 0x2756,\n \"a81\", 0x25d7,\n \"a82\", 0x2758,\n \"a83\", 0x2759,\n \"a84\", 0x275a,\n \"a97\", 0x275b,\n \"a98\", 0x275c,\n \"a99\", 0x275d,\n \"a100\", 0x275e,\n \"a101\", 0x2761,\n \"a102\", 0x2762,\n \"a103\", 0x2763,\n \"a104\", 0x2764,\n \"a106\", 0x2765,\n \"a107\", 0x2766,\n \"a108\", 0x2767,\n \"a112\", 0x2663,\n \"a111\", 0x2666,\n \"a110\", 0x2665,\n \"a109\", 0x2660,\n \"a120\", 0x2460,\n \"a121\", 0x2461,\n \"a122\", 0x2462,\n \"a123\", 0x2463,\n \"a124\", 0x2464,\n \"a125\", 0x2465,\n \"a126\", 0x2466,\n \"a127\", 0x2467,\n \"a128\", 0x2468,\n \"a129\", 0x2469,\n \"a130\", 0x2776,\n \"a131\", 0x2777,\n \"a132\", 0x2778,\n \"a133\", 0x2779,\n \"a134\", 0x277a,\n \"a135\", 0x277b,\n \"a136\", 0x277c,\n \"a137\", 0x277d,\n \"a138\", 0x277e,\n \"a139\", 0x277f,\n \"a140\", 0x2780,\n \"a141\", 0x2781,\n \"a142\", 0x2782,\n \"a143\", 0x2783,\n \"a144\", 0x2784,\n \"a145\", 0x2785,\n \"a146\", 0x2786,\n \"a147\", 0x2787,\n \"a148\", 0x2788,\n \"a149\", 0x2789,\n \"a150\", 0x278a,\n \"a151\", 0x278b,\n \"a152\", 0x278c,\n \"a153\", 0x278d,\n \"a154\", 0x278e,\n \"a155\", 0x278f,\n \"a156\", 0x2790,\n \"a157\", 0x2791,\n \"a158\", 0x2792,\n \"a159\", 0x2793,\n \"a160\", 0x2794,\n \"a161\", 0x2192,\n \"a163\", 0x2194,\n \"a164\", 0x2195,\n \"a196\", 0x2798,\n \"a165\", 0x2799,\n \"a192\", 0x279a,\n \"a166\", 0x279b,\n \"a167\", 0x279c,\n \"a168\", 0x279d,\n \"a169\", 0x279e,\n \"a170\", 0x279f,\n \"a171\", 0x27a0,\n \"a172\", 0x27a1,\n \"a173\", 0x27a2,\n \"a162\", 0x27a3,\n \"a174\", 0x27a4,\n \"a175\", 0x27a5,\n \"a176\", 0x27a6,\n \"a177\", 0x27a7,\n \"a178\", 0x27a8,\n \"a179\", 0x27a9,\n \"a193\", 0x27aa,\n \"a180\", 0x27ab,\n \"a199\", 0x27ac,\n \"a181\", 0x27ad,\n \"a200\", 0x27ae,\n \"a182\", 0x27af,\n \"a201\", 0x27b1,\n \"a183\", 0x27b2,\n \"a184\", 0x27b3,\n \"a197\", 0x27b4,\n \"a185\", 0x27b5,\n \"a194\", 0x27b6,\n \"a198\", 0x27b7,\n \"a186\", 0x27b8,\n \"a195\", 0x27b9,\n \"a187\", 0x27ba,\n \"a188\", 0x27bb,\n \"a189\", 0x27bc,\n \"a190\", 0x27bd,\n \"a191\", 0x27be,\n \"a89\", 0x2768, // 0xF8D7\n \"a90\", 0x2769, // 0xF8D8\n \"a93\", 0x276a, // 0xF8D9\n \"a94\", 0x276b, // 0xF8DA\n \"a91\", 0x276c, // 0xF8DB\n \"a92\", 0x276d, // 0xF8DC\n \"a205\", 0x276e, // 0xF8DD\n \"a85\", 0x276f, // 0xF8DE\n \"a206\", 0x2770, // 0xF8DF\n \"a86\", 0x2771, // 0xF8E0\n \"a87\", 0x2772, // 0xF8E1\n \"a88\", 0x2773, // 0xF8E2\n \"a95\", 0x2774, // 0xF8E3\n \"a96\", 0x2775, // 0xF8E4\n \".notdef\", 0x0000,\n ];\n});\n\nexport { getDingbatsGlyphsUnicode, getGlyphsUnicode };\n","/* Copyright 2016 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* no-babel-preset */\n\nimport {\n getArrayLookupTableFactory,\n getLookupTableFactory,\n} from \"./core_utils.js\";\n\n// Some characters, e.g. copyrightserif, are mapped to the private use area\n// and might not be displayed using standard fonts. Mapping/hacking well-known\n// chars to the similar equivalents in the normal characters range.\nconst getSpecialPUASymbols = getLookupTableFactory(function (t) {\n t[63721] = 0x00a9; // copyrightsans (0xF8E9) => copyright\n t[63193] = 0x00a9; // copyrightserif (0xF6D9) => copyright\n t[63720] = 0x00ae; // registersans (0xF8E8) => registered\n t[63194] = 0x00ae; // registerserif (0xF6DA) => registered\n t[63722] = 0x2122; // trademarksans (0xF8EA) => trademark\n t[63195] = 0x2122; // trademarkserif (0xF6DB) => trademark\n t[63729] = 0x23a7; // bracelefttp (0xF8F1)\n t[63730] = 0x23a8; // braceleftmid (0xF8F2)\n t[63731] = 0x23a9; // braceleftbt (0xF8F3)\n t[63740] = 0x23ab; // bracerighttp (0xF8FC)\n t[63741] = 0x23ac; // bracerightmid (0xF8FD)\n t[63742] = 0x23ad; // bracerightbt (0xF8FE)\n t[63726] = 0x23a1; // bracketlefttp (0xF8EE)\n t[63727] = 0x23a2; // bracketleftex (0xF8EF)\n t[63728] = 0x23a3; // bracketleftbt (0xF8F0)\n t[63737] = 0x23a4; // bracketrighttp (0xF8F9)\n t[63738] = 0x23a5; // bracketrightex (0xF8FA)\n t[63739] = 0x23a6; // bracketrightbt (0xF8FB)\n t[63723] = 0x239b; // parenlefttp (0xF8EB)\n t[63724] = 0x239c; // parenleftex (0xF8EC)\n t[63725] = 0x239d; // parenleftbt (0xF8ED)\n t[63734] = 0x239e; // parenrighttp (0xF8F6)\n t[63735] = 0x239f; // parenrightex (0xF8F7)\n t[63736] = 0x23a0; // parenrightbt (0xF8F8)\n});\n\nfunction mapSpecialUnicodeValues(code) {\n if (code >= 0xfff0 && code <= 0xffff) {\n // Specials unicode block.\n return 0;\n } else if (code >= 0xf600 && code <= 0xf8ff) {\n return getSpecialPUASymbols()[code] || code;\n } else if (code === /* softhyphen = */ 0x00ad) {\n return 0x002d; // hyphen\n }\n return code;\n}\n\nfunction getUnicodeForGlyph(name, glyphsUnicodeMap) {\n let unicode = glyphsUnicodeMap[name];\n if (unicode !== undefined) {\n return unicode;\n }\n if (!name) {\n return -1;\n }\n // Try to recover valid Unicode values from 'uniXXXX'/'uXXXX{XX}' glyphs.\n if (name[0] === \"u\") {\n const nameLen = name.length;\n let hexStr;\n\n if (nameLen === 7 && name[1] === \"n\" && name[2] === \"i\") {\n // 'uniXXXX'\n hexStr = name.substring(3);\n } else if (nameLen >= 5 && nameLen <= 7) {\n // 'uXXXX{XX}'\n hexStr = name.substring(1);\n } else {\n return -1;\n }\n // Check for upper-case hexadecimal characters, to avoid false positives.\n if (hexStr === hexStr.toUpperCase()) {\n unicode = parseInt(hexStr, 16);\n if (unicode >= 0) {\n return unicode;\n }\n }\n }\n return -1;\n}\n\nconst UnicodeRanges = [\n { begin: 0x0000, end: 0x007f }, // Basic Latin\n { begin: 0x0080, end: 0x00ff }, // Latin-1 Supplement\n { begin: 0x0100, end: 0x017f }, // Latin Extended-A\n { begin: 0x0180, end: 0x024f }, // Latin Extended-B\n { begin: 0x0250, end: 0x02af }, // IPA Extensions\n { begin: 0x02b0, end: 0x02ff }, // Spacing Modifier Letters\n { begin: 0x0300, end: 0x036f }, // Combining Diacritical Marks\n { begin: 0x0370, end: 0x03ff }, // Greek and Coptic\n { begin: 0x2c80, end: 0x2cff }, // Coptic\n { begin: 0x0400, end: 0x04ff }, // Cyrillic\n { begin: 0x0530, end: 0x058f }, // Armenian\n { begin: 0x0590, end: 0x05ff }, // Hebrew\n { begin: 0xa500, end: 0xa63f }, // Vai\n { begin: 0x0600, end: 0x06ff }, // Arabic\n { begin: 0x07c0, end: 0x07ff }, // NKo\n { begin: 0x0900, end: 0x097f }, // Devanagari\n { begin: 0x0980, end: 0x09ff }, // Bengali\n { begin: 0x0a00, end: 0x0a7f }, // Gurmukhi\n { begin: 0x0a80, end: 0x0aff }, // Gujarati\n { begin: 0x0b00, end: 0x0b7f }, // Oriya\n { begin: 0x0b80, end: 0x0bff }, // Tamil\n { begin: 0x0c00, end: 0x0c7f }, // Telugu\n { begin: 0x0c80, end: 0x0cff }, // Kannada\n { begin: 0x0d00, end: 0x0d7f }, // Malayalam\n { begin: 0x0e00, end: 0x0e7f }, // Thai\n { begin: 0x0e80, end: 0x0eff }, // Lao\n { begin: 0x10a0, end: 0x10ff }, // Georgian\n { begin: 0x1b00, end: 0x1b7f }, // Balinese\n { begin: 0x1100, end: 0x11ff }, // Hangul Jamo\n { begin: 0x1e00, end: 0x1eff }, // Latin Extended Additional\n { begin: 0x1f00, end: 0x1fff }, // Greek Extended\n { begin: 0x2000, end: 0x206f }, // General Punctuation\n { begin: 0x2070, end: 0x209f }, // Superscripts And Subscripts\n { begin: 0x20a0, end: 0x20cf }, // Currency Symbol\n { begin: 0x20d0, end: 0x20ff }, // Combining Diacritical Marks\n { begin: 0x2100, end: 0x214f }, // Letterlike Symbols\n { begin: 0x2150, end: 0x218f }, // Number Forms\n { begin: 0x2190, end: 0x21ff }, // Arrows\n { begin: 0x2200, end: 0x22ff }, // Mathematical Operators\n { begin: 0x2300, end: 0x23ff }, // Miscellaneous Technical\n { begin: 0x2400, end: 0x243f }, // Control Pictures\n { begin: 0x2440, end: 0x245f }, // Optical Character Recognition\n { begin: 0x2460, end: 0x24ff }, // Enclosed Alphanumerics\n { begin: 0x2500, end: 0x257f }, // Box Drawing\n { begin: 0x2580, end: 0x259f }, // Block Elements\n { begin: 0x25a0, end: 0x25ff }, // Geometric Shapes\n { begin: 0x2600, end: 0x26ff }, // Miscellaneous Symbols\n { begin: 0x2700, end: 0x27bf }, // Dingbats\n { begin: 0x3000, end: 0x303f }, // CJK Symbols And Punctuation\n { begin: 0x3040, end: 0x309f }, // Hiragana\n { begin: 0x30a0, end: 0x30ff }, // Katakana\n { begin: 0x3100, end: 0x312f }, // Bopomofo\n { begin: 0x3130, end: 0x318f }, // Hangul Compatibility Jamo\n { begin: 0xa840, end: 0xa87f }, // Phags-pa\n { begin: 0x3200, end: 0x32ff }, // Enclosed CJK Letters And Months\n { begin: 0x3300, end: 0x33ff }, // CJK Compatibility\n { begin: 0xac00, end: 0xd7af }, // Hangul Syllables\n { begin: 0xd800, end: 0xdfff }, // Non-Plane 0 *\n { begin: 0x10900, end: 0x1091f }, // Phoenicia\n { begin: 0x4e00, end: 0x9fff }, // CJK Unified Ideographs\n { begin: 0xe000, end: 0xf8ff }, // Private Use Area (plane 0)\n { begin: 0x31c0, end: 0x31ef }, // CJK Strokes\n { begin: 0xfb00, end: 0xfb4f }, // Alphabetic Presentation Forms\n { begin: 0xfb50, end: 0xfdff }, // Arabic Presentation Forms-A\n { begin: 0xfe20, end: 0xfe2f }, // Combining Half Marks\n { begin: 0xfe10, end: 0xfe1f }, // Vertical Forms\n { begin: 0xfe50, end: 0xfe6f }, // Small Form Variants\n { begin: 0xfe70, end: 0xfeff }, // Arabic Presentation Forms-B\n { begin: 0xff00, end: 0xffef }, // Halfwidth And Fullwidth Forms\n { begin: 0xfff0, end: 0xffff }, // Specials\n { begin: 0x0f00, end: 0x0fff }, // Tibetan\n { begin: 0x0700, end: 0x074f }, // Syriac\n { begin: 0x0780, end: 0x07bf }, // Thaana\n { begin: 0x0d80, end: 0x0dff }, // Sinhala\n { begin: 0x1000, end: 0x109f }, // Myanmar\n { begin: 0x1200, end: 0x137f }, // Ethiopic\n { begin: 0x13a0, end: 0x13ff }, // Cherokee\n { begin: 0x1400, end: 0x167f }, // Unified Canadian Aboriginal Syllabics\n { begin: 0x1680, end: 0x169f }, // Ogham\n { begin: 0x16a0, end: 0x16ff }, // Runic\n { begin: 0x1780, end: 0x17ff }, // Khmer\n { begin: 0x1800, end: 0x18af }, // Mongolian\n { begin: 0x2800, end: 0x28ff }, // Braille Patterns\n { begin: 0xa000, end: 0xa48f }, // Yi Syllables\n { begin: 0x1700, end: 0x171f }, // Tagalog\n { begin: 0x10300, end: 0x1032f }, // Old Italic\n { begin: 0x10330, end: 0x1034f }, // Gothic\n { begin: 0x10400, end: 0x1044f }, // Deseret\n { begin: 0x1d000, end: 0x1d0ff }, // Byzantine Musical Symbols\n { begin: 0x1d400, end: 0x1d7ff }, // Mathematical Alphanumeric Symbols\n { begin: 0xff000, end: 0xffffd }, // Private Use (plane 15)\n { begin: 0xfe00, end: 0xfe0f }, // Variation Selectors\n { begin: 0xe0000, end: 0xe007f }, // Tags\n { begin: 0x1900, end: 0x194f }, // Limbu\n { begin: 0x1950, end: 0x197f }, // Tai Le\n { begin: 0x1980, end: 0x19df }, // New Tai Lue\n { begin: 0x1a00, end: 0x1a1f }, // Buginese\n { begin: 0x2c00, end: 0x2c5f }, // Glagolitic\n { begin: 0x2d30, end: 0x2d7f }, // Tifinagh\n { begin: 0x4dc0, end: 0x4dff }, // Yijing Hexagram Symbols\n { begin: 0xa800, end: 0xa82f }, // Syloti Nagri\n { begin: 0x10000, end: 0x1007f }, // Linear B Syllabary\n { begin: 0x10140, end: 0x1018f }, // Ancient Greek Numbers\n { begin: 0x10380, end: 0x1039f }, // Ugaritic\n { begin: 0x103a0, end: 0x103df }, // Old Persian\n { begin: 0x10450, end: 0x1047f }, // Shavian\n { begin: 0x10480, end: 0x104af }, // Osmanya\n { begin: 0x10800, end: 0x1083f }, // Cypriot Syllabary\n { begin: 0x10a00, end: 0x10a5f }, // Kharoshthi\n { begin: 0x1d300, end: 0x1d35f }, // Tai Xuan Jing Symbols\n { begin: 0x12000, end: 0x123ff }, // Cuneiform\n { begin: 0x1d360, end: 0x1d37f }, // Counting Rod Numerals\n { begin: 0x1b80, end: 0x1bbf }, // Sundanese\n { begin: 0x1c00, end: 0x1c4f }, // Lepcha\n { begin: 0x1c50, end: 0x1c7f }, // Ol Chiki\n { begin: 0xa880, end: 0xa8df }, // Saurashtra\n { begin: 0xa900, end: 0xa92f }, // Kayah Li\n { begin: 0xa930, end: 0xa95f }, // Rejang\n { begin: 0xaa00, end: 0xaa5f }, // Cham\n { begin: 0x10190, end: 0x101cf }, // Ancient Symbols\n { begin: 0x101d0, end: 0x101ff }, // Phaistos Disc\n { begin: 0x102a0, end: 0x102df }, // Carian\n { begin: 0x1f030, end: 0x1f09f }, // Domino Tiles\n];\n\nfunction getUnicodeRangeFor(value) {\n for (let i = 0, ii = UnicodeRanges.length; i < ii; i++) {\n const range = UnicodeRanges[i];\n if (value >= range.begin && value < range.end) {\n return i;\n }\n }\n return -1;\n}\n\nfunction isRTLRangeFor(value) {\n let range = UnicodeRanges[13];\n if (value >= range.begin && value < range.end) {\n return true;\n }\n range = UnicodeRanges[11];\n if (value >= range.begin && value < range.end) {\n return true;\n }\n return false;\n}\n\n// The normalization table is obtained by filtering the Unicode characters\n// database with entries.\nconst getNormalizedUnicodes = getArrayLookupTableFactory(function () {\n // prettier-ignore\n return [\n \"\\u00A8\", \"\\u0020\\u0308\",\n \"\\u00AF\", \"\\u0020\\u0304\",\n \"\\u00B4\", \"\\u0020\\u0301\",\n \"\\u00B5\", \"\\u03BC\",\n \"\\u00B8\", \"\\u0020\\u0327\",\n \"\\u0132\", \"\\u0049\\u004A\",\n \"\\u0133\", \"\\u0069\\u006A\",\n \"\\u013F\", \"\\u004C\\u00B7\",\n \"\\u0140\", \"\\u006C\\u00B7\",\n \"\\u0149\", \"\\u02BC\\u006E\",\n \"\\u017F\", \"\\u0073\",\n \"\\u01C4\", \"\\u0044\\u017D\",\n \"\\u01C5\", \"\\u0044\\u017E\",\n \"\\u01C6\", \"\\u0064\\u017E\",\n \"\\u01C7\", \"\\u004C\\u004A\",\n \"\\u01C8\", \"\\u004C\\u006A\",\n \"\\u01C9\", \"\\u006C\\u006A\",\n \"\\u01CA\", \"\\u004E\\u004A\",\n \"\\u01CB\", \"\\u004E\\u006A\",\n \"\\u01CC\", \"\\u006E\\u006A\",\n \"\\u01F1\", \"\\u0044\\u005A\",\n \"\\u01F2\", \"\\u0044\\u007A\",\n \"\\u01F3\", \"\\u0064\\u007A\",\n \"\\u02D8\", \"\\u0020\\u0306\",\n \"\\u02D9\", \"\\u0020\\u0307\",\n \"\\u02DA\", \"\\u0020\\u030A\",\n \"\\u02DB\", \"\\u0020\\u0328\",\n \"\\u02DC\", \"\\u0020\\u0303\",\n \"\\u02DD\", \"\\u0020\\u030B\",\n \"\\u037A\", \"\\u0020\\u0345\",\n \"\\u0384\", \"\\u0020\\u0301\",\n \"\\u03D0\", \"\\u03B2\",\n \"\\u03D1\", \"\\u03B8\",\n \"\\u03D2\", \"\\u03A5\",\n \"\\u03D5\", \"\\u03C6\",\n \"\\u03D6\", \"\\u03C0\",\n \"\\u03F0\", \"\\u03BA\",\n \"\\u03F1\", \"\\u03C1\",\n \"\\u03F2\", \"\\u03C2\",\n \"\\u03F4\", \"\\u0398\",\n \"\\u03F5\", \"\\u03B5\",\n \"\\u03F9\", \"\\u03A3\",\n \"\\u0587\", \"\\u0565\\u0582\",\n \"\\u0675\", \"\\u0627\\u0674\",\n \"\\u0676\", \"\\u0648\\u0674\",\n \"\\u0677\", \"\\u06C7\\u0674\",\n \"\\u0678\", \"\\u064A\\u0674\",\n \"\\u0E33\", \"\\u0E4D\\u0E32\",\n \"\\u0EB3\", \"\\u0ECD\\u0EB2\",\n \"\\u0EDC\", \"\\u0EAB\\u0E99\",\n \"\\u0EDD\", \"\\u0EAB\\u0EA1\",\n \"\\u0F77\", \"\\u0FB2\\u0F81\",\n \"\\u0F79\", \"\\u0FB3\\u0F81\",\n \"\\u1E9A\", \"\\u0061\\u02BE\",\n \"\\u1FBD\", \"\\u0020\\u0313\",\n \"\\u1FBF\", \"\\u0020\\u0313\",\n \"\\u1FC0\", \"\\u0020\\u0342\",\n \"\\u1FFE\", \"\\u0020\\u0314\",\n \"\\u2002\", \"\\u0020\",\n \"\\u2003\", \"\\u0020\",\n \"\\u2004\", \"\\u0020\",\n \"\\u2005\", \"\\u0020\",\n \"\\u2006\", \"\\u0020\",\n \"\\u2008\", \"\\u0020\",\n \"\\u2009\", \"\\u0020\",\n \"\\u200A\", \"\\u0020\",\n \"\\u2017\", \"\\u0020\\u0333\",\n \"\\u2024\", \"\\u002E\",\n \"\\u2025\", \"\\u002E\\u002E\",\n \"\\u2026\", \"\\u002E\\u002E\\u002E\",\n \"\\u2033\", \"\\u2032\\u2032\",\n \"\\u2034\", \"\\u2032\\u2032\\u2032\",\n \"\\u2036\", \"\\u2035\\u2035\",\n \"\\u2037\", \"\\u2035\\u2035\\u2035\",\n \"\\u203C\", \"\\u0021\\u0021\",\n \"\\u203E\", \"\\u0020\\u0305\",\n \"\\u2047\", \"\\u003F\\u003F\",\n \"\\u2048\", \"\\u003F\\u0021\",\n \"\\u2049\", \"\\u0021\\u003F\",\n \"\\u2057\", \"\\u2032\\u2032\\u2032\\u2032\",\n \"\\u205F\", \"\\u0020\",\n \"\\u20A8\", \"\\u0052\\u0073\",\n \"\\u2100\", \"\\u0061\\u002F\\u0063\",\n \"\\u2101\", \"\\u0061\\u002F\\u0073\",\n \"\\u2103\", \"\\u00B0\\u0043\",\n \"\\u2105\", \"\\u0063\\u002F\\u006F\",\n \"\\u2106\", \"\\u0063\\u002F\\u0075\",\n \"\\u2107\", \"\\u0190\",\n \"\\u2109\", \"\\u00B0\\u0046\",\n \"\\u2116\", \"\\u004E\\u006F\",\n \"\\u2121\", \"\\u0054\\u0045\\u004C\",\n \"\\u2135\", \"\\u05D0\",\n \"\\u2136\", \"\\u05D1\",\n \"\\u2137\", \"\\u05D2\",\n \"\\u2138\", \"\\u05D3\",\n \"\\u213B\", \"\\u0046\\u0041\\u0058\",\n \"\\u2160\", \"\\u0049\",\n \"\\u2161\", \"\\u0049\\u0049\",\n \"\\u2162\", \"\\u0049\\u0049\\u0049\",\n \"\\u2163\", \"\\u0049\\u0056\",\n \"\\u2164\", \"\\u0056\",\n \"\\u2165\", \"\\u0056\\u0049\",\n \"\\u2166\", \"\\u0056\\u0049\\u0049\",\n \"\\u2167\", \"\\u0056\\u0049\\u0049\\u0049\",\n \"\\u2168\", \"\\u0049\\u0058\",\n \"\\u2169\", \"\\u0058\",\n \"\\u216A\", \"\\u0058\\u0049\",\n \"\\u216B\", \"\\u0058\\u0049\\u0049\",\n \"\\u216C\", \"\\u004C\",\n \"\\u216D\", \"\\u0043\",\n \"\\u216E\", \"\\u0044\",\n \"\\u216F\", \"\\u004D\",\n \"\\u2170\", \"\\u0069\",\n \"\\u2171\", \"\\u0069\\u0069\",\n \"\\u2172\", \"\\u0069\\u0069\\u0069\",\n \"\\u2173\", \"\\u0069\\u0076\",\n \"\\u2174\", \"\\u0076\",\n \"\\u2175\", \"\\u0076\\u0069\",\n \"\\u2176\", \"\\u0076\\u0069\\u0069\",\n \"\\u2177\", \"\\u0076\\u0069\\u0069\\u0069\",\n \"\\u2178\", \"\\u0069\\u0078\",\n \"\\u2179\", \"\\u0078\",\n \"\\u217A\", \"\\u0078\\u0069\",\n \"\\u217B\", \"\\u0078\\u0069\\u0069\",\n \"\\u217C\", \"\\u006C\",\n \"\\u217D\", \"\\u0063\",\n \"\\u217E\", \"\\u0064\",\n \"\\u217F\", \"\\u006D\",\n \"\\u222C\", \"\\u222B\\u222B\",\n \"\\u222D\", \"\\u222B\\u222B\\u222B\",\n \"\\u222F\", \"\\u222E\\u222E\",\n \"\\u2230\", \"\\u222E\\u222E\\u222E\",\n \"\\u2474\", \"\\u0028\\u0031\\u0029\",\n \"\\u2475\", \"\\u0028\\u0032\\u0029\",\n \"\\u2476\", \"\\u0028\\u0033\\u0029\",\n \"\\u2477\", \"\\u0028\\u0034\\u0029\",\n \"\\u2478\", \"\\u0028\\u0035\\u0029\",\n \"\\u2479\", \"\\u0028\\u0036\\u0029\",\n \"\\u247A\", \"\\u0028\\u0037\\u0029\",\n \"\\u247B\", \"\\u0028\\u0038\\u0029\",\n \"\\u247C\", \"\\u0028\\u0039\\u0029\",\n \"\\u247D\", \"\\u0028\\u0031\\u0030\\u0029\",\n \"\\u247E\", \"\\u0028\\u0031\\u0031\\u0029\",\n \"\\u247F\", \"\\u0028\\u0031\\u0032\\u0029\",\n \"\\u2480\", \"\\u0028\\u0031\\u0033\\u0029\",\n \"\\u2481\", \"\\u0028\\u0031\\u0034\\u0029\",\n \"\\u2482\", \"\\u0028\\u0031\\u0035\\u0029\",\n \"\\u2483\", \"\\u0028\\u0031\\u0036\\u0029\",\n \"\\u2484\", \"\\u0028\\u0031\\u0037\\u0029\",\n \"\\u2485\", \"\\u0028\\u0031\\u0038\\u0029\",\n \"\\u2486\", \"\\u0028\\u0031\\u0039\\u0029\",\n \"\\u2487\", \"\\u0028\\u0032\\u0030\\u0029\",\n \"\\u2488\", \"\\u0031\\u002E\",\n \"\\u2489\", \"\\u0032\\u002E\",\n \"\\u248A\", \"\\u0033\\u002E\",\n \"\\u248B\", \"\\u0034\\u002E\",\n \"\\u248C\", \"\\u0035\\u002E\",\n \"\\u248D\", \"\\u0036\\u002E\",\n \"\\u248E\", \"\\u0037\\u002E\",\n \"\\u248F\", \"\\u0038\\u002E\",\n \"\\u2490\", \"\\u0039\\u002E\",\n \"\\u2491\", \"\\u0031\\u0030\\u002E\",\n \"\\u2492\", \"\\u0031\\u0031\\u002E\",\n \"\\u2493\", \"\\u0031\\u0032\\u002E\",\n \"\\u2494\", \"\\u0031\\u0033\\u002E\",\n \"\\u2495\", \"\\u0031\\u0034\\u002E\",\n \"\\u2496\", \"\\u0031\\u0035\\u002E\",\n \"\\u2497\", \"\\u0031\\u0036\\u002E\",\n \"\\u2498\", \"\\u0031\\u0037\\u002E\",\n \"\\u2499\", \"\\u0031\\u0038\\u002E\",\n \"\\u249A\", \"\\u0031\\u0039\\u002E\",\n \"\\u249B\", \"\\u0032\\u0030\\u002E\",\n \"\\u249C\", \"\\u0028\\u0061\\u0029\",\n \"\\u249D\", \"\\u0028\\u0062\\u0029\",\n \"\\u249E\", \"\\u0028\\u0063\\u0029\",\n \"\\u249F\", \"\\u0028\\u0064\\u0029\",\n \"\\u24A0\", \"\\u0028\\u0065\\u0029\",\n \"\\u24A1\", \"\\u0028\\u0066\\u0029\",\n \"\\u24A2\", \"\\u0028\\u0067\\u0029\",\n \"\\u24A3\", \"\\u0028\\u0068\\u0029\",\n \"\\u24A4\", \"\\u0028\\u0069\\u0029\",\n \"\\u24A5\", \"\\u0028\\u006A\\u0029\",\n \"\\u24A6\", \"\\u0028\\u006B\\u0029\",\n \"\\u24A7\", \"\\u0028\\u006C\\u0029\",\n \"\\u24A8\", \"\\u0028\\u006D\\u0029\",\n \"\\u24A9\", \"\\u0028\\u006E\\u0029\",\n \"\\u24AA\", \"\\u0028\\u006F\\u0029\",\n \"\\u24AB\", \"\\u0028\\u0070\\u0029\",\n \"\\u24AC\", \"\\u0028\\u0071\\u0029\",\n \"\\u24AD\", \"\\u0028\\u0072\\u0029\",\n \"\\u24AE\", \"\\u0028\\u0073\\u0029\",\n \"\\u24AF\", \"\\u0028\\u0074\\u0029\",\n \"\\u24B0\", \"\\u0028\\u0075\\u0029\",\n \"\\u24B1\", \"\\u0028\\u0076\\u0029\",\n \"\\u24B2\", \"\\u0028\\u0077\\u0029\",\n \"\\u24B3\", \"\\u0028\\u0078\\u0029\",\n \"\\u24B4\", \"\\u0028\\u0079\\u0029\",\n \"\\u24B5\", \"\\u0028\\u007A\\u0029\",\n \"\\u2A0C\", \"\\u222B\\u222B\\u222B\\u222B\",\n \"\\u2A74\", \"\\u003A\\u003A\\u003D\",\n \"\\u2A75\", \"\\u003D\\u003D\",\n \"\\u2A76\", \"\\u003D\\u003D\\u003D\",\n \"\\u2E9F\", \"\\u6BCD\",\n \"\\u2EF3\", \"\\u9F9F\",\n \"\\u2F00\", \"\\u4E00\",\n \"\\u2F01\", \"\\u4E28\",\n \"\\u2F02\", \"\\u4E36\",\n \"\\u2F03\", \"\\u4E3F\",\n \"\\u2F04\", \"\\u4E59\",\n \"\\u2F05\", \"\\u4E85\",\n \"\\u2F06\", \"\\u4E8C\",\n \"\\u2F07\", \"\\u4EA0\",\n \"\\u2F08\", \"\\u4EBA\",\n \"\\u2F09\", \"\\u513F\",\n \"\\u2F0A\", \"\\u5165\",\n \"\\u2F0B\", \"\\u516B\",\n \"\\u2F0C\", \"\\u5182\",\n \"\\u2F0D\", \"\\u5196\",\n \"\\u2F0E\", \"\\u51AB\",\n \"\\u2F0F\", \"\\u51E0\",\n \"\\u2F10\", \"\\u51F5\",\n \"\\u2F11\", \"\\u5200\",\n \"\\u2F12\", \"\\u529B\",\n \"\\u2F13\", \"\\u52F9\",\n \"\\u2F14\", \"\\u5315\",\n \"\\u2F15\", \"\\u531A\",\n \"\\u2F16\", \"\\u5338\",\n \"\\u2F17\", \"\\u5341\",\n \"\\u2F18\", \"\\u535C\",\n \"\\u2F19\", \"\\u5369\",\n \"\\u2F1A\", \"\\u5382\",\n \"\\u2F1B\", \"\\u53B6\",\n \"\\u2F1C\", \"\\u53C8\",\n \"\\u2F1D\", \"\\u53E3\",\n \"\\u2F1E\", \"\\u56D7\",\n \"\\u2F1F\", \"\\u571F\",\n \"\\u2F20\", \"\\u58EB\",\n \"\\u2F21\", \"\\u5902\",\n \"\\u2F22\", \"\\u590A\",\n \"\\u2F23\", \"\\u5915\",\n \"\\u2F24\", \"\\u5927\",\n \"\\u2F25\", \"\\u5973\",\n \"\\u2F26\", \"\\u5B50\",\n \"\\u2F27\", \"\\u5B80\",\n \"\\u2F28\", \"\\u5BF8\",\n \"\\u2F29\", \"\\u5C0F\",\n \"\\u2F2A\", \"\\u5C22\",\n \"\\u2F2B\", \"\\u5C38\",\n \"\\u2F2C\", \"\\u5C6E\",\n \"\\u2F2D\", \"\\u5C71\",\n \"\\u2F2E\", \"\\u5DDB\",\n \"\\u2F2F\", \"\\u5DE5\",\n \"\\u2F30\", \"\\u5DF1\",\n \"\\u2F31\", \"\\u5DFE\",\n \"\\u2F32\", \"\\u5E72\",\n \"\\u2F33\", \"\\u5E7A\",\n \"\\u2F34\", \"\\u5E7F\",\n \"\\u2F35\", \"\\u5EF4\",\n \"\\u2F36\", \"\\u5EFE\",\n \"\\u2F37\", \"\\u5F0B\",\n \"\\u2F38\", \"\\u5F13\",\n \"\\u2F39\", \"\\u5F50\",\n \"\\u2F3A\", \"\\u5F61\",\n \"\\u2F3B\", \"\\u5F73\",\n \"\\u2F3C\", \"\\u5FC3\",\n \"\\u2F3D\", \"\\u6208\",\n \"\\u2F3E\", \"\\u6236\",\n \"\\u2F3F\", \"\\u624B\",\n \"\\u2F40\", \"\\u652F\",\n \"\\u2F41\", \"\\u6534\",\n \"\\u2F42\", \"\\u6587\",\n \"\\u2F43\", \"\\u6597\",\n \"\\u2F44\", \"\\u65A4\",\n \"\\u2F45\", \"\\u65B9\",\n \"\\u2F46\", \"\\u65E0\",\n \"\\u2F47\", \"\\u65E5\",\n \"\\u2F48\", \"\\u66F0\",\n \"\\u2F49\", \"\\u6708\",\n \"\\u2F4A\", \"\\u6728\",\n \"\\u2F4B\", \"\\u6B20\",\n \"\\u2F4C\", \"\\u6B62\",\n \"\\u2F4D\", \"\\u6B79\",\n \"\\u2F4E\", \"\\u6BB3\",\n \"\\u2F4F\", \"\\u6BCB\",\n \"\\u2F50\", \"\\u6BD4\",\n \"\\u2F51\", \"\\u6BDB\",\n \"\\u2F52\", \"\\u6C0F\",\n \"\\u2F53\", \"\\u6C14\",\n \"\\u2F54\", \"\\u6C34\",\n \"\\u2F55\", \"\\u706B\",\n \"\\u2F56\", \"\\u722A\",\n \"\\u2F57\", \"\\u7236\",\n \"\\u2F58\", \"\\u723B\",\n \"\\u2F59\", \"\\u723F\",\n \"\\u2F5A\", \"\\u7247\",\n \"\\u2F5B\", \"\\u7259\",\n \"\\u2F5C\", \"\\u725B\",\n \"\\u2F5D\", \"\\u72AC\",\n \"\\u2F5E\", \"\\u7384\",\n \"\\u2F5F\", \"\\u7389\",\n \"\\u2F60\", \"\\u74DC\",\n \"\\u2F61\", \"\\u74E6\",\n \"\\u2F62\", \"\\u7518\",\n \"\\u2F63\", \"\\u751F\",\n \"\\u2F64\", \"\\u7528\",\n \"\\u2F65\", \"\\u7530\",\n \"\\u2F66\", \"\\u758B\",\n \"\\u2F67\", \"\\u7592\",\n \"\\u2F68\", \"\\u7676\",\n \"\\u2F69\", \"\\u767D\",\n \"\\u2F6A\", \"\\u76AE\",\n \"\\u2F6B\", \"\\u76BF\",\n \"\\u2F6C\", \"\\u76EE\",\n \"\\u2F6D\", \"\\u77DB\",\n \"\\u2F6E\", \"\\u77E2\",\n \"\\u2F6F\", \"\\u77F3\",\n \"\\u2F70\", \"\\u793A\",\n \"\\u2F71\", \"\\u79B8\",\n \"\\u2F72\", \"\\u79BE\",\n \"\\u2F73\", \"\\u7A74\",\n \"\\u2F74\", \"\\u7ACB\",\n \"\\u2F75\", \"\\u7AF9\",\n \"\\u2F76\", \"\\u7C73\",\n \"\\u2F77\", \"\\u7CF8\",\n \"\\u2F78\", \"\\u7F36\",\n \"\\u2F79\", \"\\u7F51\",\n \"\\u2F7A\", \"\\u7F8A\",\n \"\\u2F7B\", \"\\u7FBD\",\n \"\\u2F7C\", \"\\u8001\",\n \"\\u2F7D\", \"\\u800C\",\n \"\\u2F7E\", \"\\u8012\",\n \"\\u2F7F\", \"\\u8033\",\n \"\\u2F80\", \"\\u807F\",\n \"\\u2F81\", \"\\u8089\",\n \"\\u2F82\", \"\\u81E3\",\n \"\\u2F83\", \"\\u81EA\",\n \"\\u2F84\", \"\\u81F3\",\n \"\\u2F85\", \"\\u81FC\",\n \"\\u2F86\", \"\\u820C\",\n \"\\u2F87\", \"\\u821B\",\n \"\\u2F88\", \"\\u821F\",\n \"\\u2F89\", \"\\u826E\",\n \"\\u2F8A\", \"\\u8272\",\n \"\\u2F8B\", \"\\u8278\",\n \"\\u2F8C\", \"\\u864D\",\n \"\\u2F8D\", \"\\u866B\",\n \"\\u2F8E\", \"\\u8840\",\n \"\\u2F8F\", \"\\u884C\",\n \"\\u2F90\", \"\\u8863\",\n \"\\u2F91\", \"\\u897E\",\n \"\\u2F92\", \"\\u898B\",\n \"\\u2F93\", \"\\u89D2\",\n \"\\u2F94\", \"\\u8A00\",\n \"\\u2F95\", \"\\u8C37\",\n \"\\u2F96\", \"\\u8C46\",\n \"\\u2F97\", \"\\u8C55\",\n \"\\u2F98\", \"\\u8C78\",\n \"\\u2F99\", \"\\u8C9D\",\n \"\\u2F9A\", \"\\u8D64\",\n \"\\u2F9B\", \"\\u8D70\",\n \"\\u2F9C\", \"\\u8DB3\",\n \"\\u2F9D\", \"\\u8EAB\",\n \"\\u2F9E\", \"\\u8ECA\",\n \"\\u2F9F\", \"\\u8F9B\",\n \"\\u2FA0\", \"\\u8FB0\",\n \"\\u2FA1\", \"\\u8FB5\",\n \"\\u2FA2\", \"\\u9091\",\n \"\\u2FA3\", \"\\u9149\",\n \"\\u2FA4\", \"\\u91C6\",\n \"\\u2FA5\", \"\\u91CC\",\n \"\\u2FA6\", \"\\u91D1\",\n \"\\u2FA7\", \"\\u9577\",\n \"\\u2FA8\", \"\\u9580\",\n \"\\u2FA9\", \"\\u961C\",\n \"\\u2FAA\", \"\\u96B6\",\n \"\\u2FAB\", \"\\u96B9\",\n \"\\u2FAC\", \"\\u96E8\",\n \"\\u2FAD\", \"\\u9751\",\n \"\\u2FAE\", \"\\u975E\",\n \"\\u2FAF\", \"\\u9762\",\n \"\\u2FB0\", \"\\u9769\",\n \"\\u2FB1\", \"\\u97CB\",\n \"\\u2FB2\", \"\\u97ED\",\n \"\\u2FB3\", \"\\u97F3\",\n \"\\u2FB4\", \"\\u9801\",\n \"\\u2FB5\", \"\\u98A8\",\n \"\\u2FB6\", \"\\u98DB\",\n \"\\u2FB7\", \"\\u98DF\",\n \"\\u2FB8\", \"\\u9996\",\n \"\\u2FB9\", \"\\u9999\",\n \"\\u2FBA\", \"\\u99AC\",\n \"\\u2FBB\", \"\\u9AA8\",\n \"\\u2FBC\", \"\\u9AD8\",\n \"\\u2FBD\", \"\\u9ADF\",\n \"\\u2FBE\", \"\\u9B25\",\n \"\\u2FBF\", \"\\u9B2F\",\n \"\\u2FC0\", \"\\u9B32\",\n \"\\u2FC1\", \"\\u9B3C\",\n \"\\u2FC2\", \"\\u9B5A\",\n \"\\u2FC3\", \"\\u9CE5\",\n \"\\u2FC4\", \"\\u9E75\",\n \"\\u2FC5\", \"\\u9E7F\",\n \"\\u2FC6\", \"\\u9EA5\",\n \"\\u2FC7\", \"\\u9EBB\",\n \"\\u2FC8\", \"\\u9EC3\",\n \"\\u2FC9\", \"\\u9ECD\",\n \"\\u2FCA\", \"\\u9ED1\",\n \"\\u2FCB\", \"\\u9EF9\",\n \"\\u2FCC\", \"\\u9EFD\",\n \"\\u2FCD\", \"\\u9F0E\",\n \"\\u2FCE\", \"\\u9F13\",\n \"\\u2FCF\", \"\\u9F20\",\n \"\\u2FD0\", \"\\u9F3B\",\n \"\\u2FD1\", \"\\u9F4A\",\n \"\\u2FD2\", \"\\u9F52\",\n \"\\u2FD3\", \"\\u9F8D\",\n \"\\u2FD4\", \"\\u9F9C\",\n \"\\u2FD5\", \"\\u9FA0\",\n \"\\u3036\", \"\\u3012\",\n \"\\u3038\", \"\\u5341\",\n \"\\u3039\", \"\\u5344\",\n \"\\u303A\", \"\\u5345\",\n \"\\u309B\", \"\\u0020\\u3099\",\n \"\\u309C\", \"\\u0020\\u309A\",\n \"\\u3131\", \"\\u1100\",\n \"\\u3132\", \"\\u1101\",\n \"\\u3133\", \"\\u11AA\",\n \"\\u3134\", \"\\u1102\",\n \"\\u3135\", \"\\u11AC\",\n \"\\u3136\", \"\\u11AD\",\n \"\\u3137\", \"\\u1103\",\n \"\\u3138\", \"\\u1104\",\n \"\\u3139\", \"\\u1105\",\n \"\\u313A\", \"\\u11B0\",\n \"\\u313B\", \"\\u11B1\",\n \"\\u313C\", \"\\u11B2\",\n \"\\u313D\", \"\\u11B3\",\n \"\\u313E\", \"\\u11B4\",\n \"\\u313F\", \"\\u11B5\",\n \"\\u3140\", \"\\u111A\",\n \"\\u3141\", \"\\u1106\",\n \"\\u3142\", \"\\u1107\",\n \"\\u3143\", \"\\u1108\",\n \"\\u3144\", \"\\u1121\",\n \"\\u3145\", \"\\u1109\",\n \"\\u3146\", \"\\u110A\",\n \"\\u3147\", \"\\u110B\",\n \"\\u3148\", \"\\u110C\",\n \"\\u3149\", \"\\u110D\",\n \"\\u314A\", \"\\u110E\",\n \"\\u314B\", \"\\u110F\",\n \"\\u314C\", \"\\u1110\",\n \"\\u314D\", \"\\u1111\",\n \"\\u314E\", \"\\u1112\",\n \"\\u314F\", \"\\u1161\",\n \"\\u3150\", \"\\u1162\",\n \"\\u3151\", \"\\u1163\",\n \"\\u3152\", \"\\u1164\",\n \"\\u3153\", \"\\u1165\",\n \"\\u3154\", \"\\u1166\",\n \"\\u3155\", \"\\u1167\",\n \"\\u3156\", \"\\u1168\",\n \"\\u3157\", \"\\u1169\",\n \"\\u3158\", \"\\u116A\",\n \"\\u3159\", \"\\u116B\",\n \"\\u315A\", \"\\u116C\",\n \"\\u315B\", \"\\u116D\",\n \"\\u315C\", \"\\u116E\",\n \"\\u315D\", \"\\u116F\",\n \"\\u315E\", \"\\u1170\",\n \"\\u315F\", \"\\u1171\",\n \"\\u3160\", \"\\u1172\",\n \"\\u3161\", \"\\u1173\",\n \"\\u3162\", \"\\u1174\",\n \"\\u3163\", \"\\u1175\",\n \"\\u3164\", \"\\u1160\",\n \"\\u3165\", \"\\u1114\",\n \"\\u3166\", \"\\u1115\",\n \"\\u3167\", \"\\u11C7\",\n \"\\u3168\", \"\\u11C8\",\n \"\\u3169\", \"\\u11CC\",\n \"\\u316A\", \"\\u11CE\",\n \"\\u316B\", \"\\u11D3\",\n \"\\u316C\", \"\\u11D7\",\n \"\\u316D\", \"\\u11D9\",\n \"\\u316E\", \"\\u111C\",\n \"\\u316F\", \"\\u11DD\",\n \"\\u3170\", \"\\u11DF\",\n \"\\u3171\", \"\\u111D\",\n \"\\u3172\", \"\\u111E\",\n \"\\u3173\", \"\\u1120\",\n \"\\u3174\", \"\\u1122\",\n \"\\u3175\", \"\\u1123\",\n \"\\u3176\", \"\\u1127\",\n \"\\u3177\", \"\\u1129\",\n \"\\u3178\", \"\\u112B\",\n \"\\u3179\", \"\\u112C\",\n \"\\u317A\", \"\\u112D\",\n \"\\u317B\", \"\\u112E\",\n \"\\u317C\", \"\\u112F\",\n \"\\u317D\", \"\\u1132\",\n \"\\u317E\", \"\\u1136\",\n \"\\u317F\", \"\\u1140\",\n \"\\u3180\", \"\\u1147\",\n \"\\u3181\", \"\\u114C\",\n \"\\u3182\", \"\\u11F1\",\n \"\\u3183\", \"\\u11F2\",\n \"\\u3184\", \"\\u1157\",\n \"\\u3185\", \"\\u1158\",\n \"\\u3186\", \"\\u1159\",\n \"\\u3187\", \"\\u1184\",\n \"\\u3188\", \"\\u1185\",\n \"\\u3189\", \"\\u1188\",\n \"\\u318A\", \"\\u1191\",\n \"\\u318B\", \"\\u1192\",\n \"\\u318C\", \"\\u1194\",\n \"\\u318D\", \"\\u119E\",\n \"\\u318E\", \"\\u11A1\",\n \"\\u3200\", \"\\u0028\\u1100\\u0029\",\n \"\\u3201\", \"\\u0028\\u1102\\u0029\",\n \"\\u3202\", \"\\u0028\\u1103\\u0029\",\n \"\\u3203\", \"\\u0028\\u1105\\u0029\",\n \"\\u3204\", \"\\u0028\\u1106\\u0029\",\n \"\\u3205\", \"\\u0028\\u1107\\u0029\",\n \"\\u3206\", \"\\u0028\\u1109\\u0029\",\n \"\\u3207\", \"\\u0028\\u110B\\u0029\",\n \"\\u3208\", \"\\u0028\\u110C\\u0029\",\n \"\\u3209\", \"\\u0028\\u110E\\u0029\",\n \"\\u320A\", \"\\u0028\\u110F\\u0029\",\n \"\\u320B\", \"\\u0028\\u1110\\u0029\",\n \"\\u320C\", \"\\u0028\\u1111\\u0029\",\n \"\\u320D\", \"\\u0028\\u1112\\u0029\",\n \"\\u320E\", \"\\u0028\\u1100\\u1161\\u0029\",\n \"\\u320F\", \"\\u0028\\u1102\\u1161\\u0029\",\n \"\\u3210\", \"\\u0028\\u1103\\u1161\\u0029\",\n \"\\u3211\", \"\\u0028\\u1105\\u1161\\u0029\",\n \"\\u3212\", \"\\u0028\\u1106\\u1161\\u0029\",\n \"\\u3213\", \"\\u0028\\u1107\\u1161\\u0029\",\n \"\\u3214\", \"\\u0028\\u1109\\u1161\\u0029\",\n \"\\u3215\", \"\\u0028\\u110B\\u1161\\u0029\",\n \"\\u3216\", \"\\u0028\\u110C\\u1161\\u0029\",\n \"\\u3217\", \"\\u0028\\u110E\\u1161\\u0029\",\n \"\\u3218\", \"\\u0028\\u110F\\u1161\\u0029\",\n \"\\u3219\", \"\\u0028\\u1110\\u1161\\u0029\",\n \"\\u321A\", \"\\u0028\\u1111\\u1161\\u0029\",\n \"\\u321B\", \"\\u0028\\u1112\\u1161\\u0029\",\n \"\\u321C\", \"\\u0028\\u110C\\u116E\\u0029\",\n \"\\u321D\", \"\\u0028\\u110B\\u1169\\u110C\\u1165\\u11AB\\u0029\",\n \"\\u321E\", \"\\u0028\\u110B\\u1169\\u1112\\u116E\\u0029\",\n \"\\u3220\", \"\\u0028\\u4E00\\u0029\",\n \"\\u3221\", \"\\u0028\\u4E8C\\u0029\",\n \"\\u3222\", \"\\u0028\\u4E09\\u0029\",\n \"\\u3223\", \"\\u0028\\u56DB\\u0029\",\n \"\\u3224\", \"\\u0028\\u4E94\\u0029\",\n \"\\u3225\", \"\\u0028\\u516D\\u0029\",\n \"\\u3226\", \"\\u0028\\u4E03\\u0029\",\n \"\\u3227\", \"\\u0028\\u516B\\u0029\",\n \"\\u3228\", \"\\u0028\\u4E5D\\u0029\",\n \"\\u3229\", \"\\u0028\\u5341\\u0029\",\n \"\\u322A\", \"\\u0028\\u6708\\u0029\",\n \"\\u322B\", \"\\u0028\\u706B\\u0029\",\n \"\\u322C\", \"\\u0028\\u6C34\\u0029\",\n \"\\u322D\", \"\\u0028\\u6728\\u0029\",\n \"\\u322E\", \"\\u0028\\u91D1\\u0029\",\n \"\\u322F\", \"\\u0028\\u571F\\u0029\",\n \"\\u3230\", \"\\u0028\\u65E5\\u0029\",\n \"\\u3231\", \"\\u0028\\u682A\\u0029\",\n \"\\u3232\", \"\\u0028\\u6709\\u0029\",\n \"\\u3233\", \"\\u0028\\u793E\\u0029\",\n \"\\u3234\", \"\\u0028\\u540D\\u0029\",\n \"\\u3235\", \"\\u0028\\u7279\\u0029\",\n \"\\u3236\", \"\\u0028\\u8CA1\\u0029\",\n \"\\u3237\", \"\\u0028\\u795D\\u0029\",\n \"\\u3238\", \"\\u0028\\u52B4\\u0029\",\n \"\\u3239\", \"\\u0028\\u4EE3\\u0029\",\n \"\\u323A\", \"\\u0028\\u547C\\u0029\",\n \"\\u323B\", \"\\u0028\\u5B66\\u0029\",\n \"\\u323C\", \"\\u0028\\u76E3\\u0029\",\n \"\\u323D\", \"\\u0028\\u4F01\\u0029\",\n \"\\u323E\", \"\\u0028\\u8CC7\\u0029\",\n \"\\u323F\", \"\\u0028\\u5354\\u0029\",\n \"\\u3240\", \"\\u0028\\u796D\\u0029\",\n \"\\u3241\", \"\\u0028\\u4F11\\u0029\",\n \"\\u3242\", \"\\u0028\\u81EA\\u0029\",\n \"\\u3243\", \"\\u0028\\u81F3\\u0029\",\n \"\\u32C0\", \"\\u0031\\u6708\",\n \"\\u32C1\", \"\\u0032\\u6708\",\n \"\\u32C2\", \"\\u0033\\u6708\",\n \"\\u32C3\", \"\\u0034\\u6708\",\n \"\\u32C4\", \"\\u0035\\u6708\",\n \"\\u32C5\", \"\\u0036\\u6708\",\n \"\\u32C6\", \"\\u0037\\u6708\",\n \"\\u32C7\", \"\\u0038\\u6708\",\n \"\\u32C8\", \"\\u0039\\u6708\",\n \"\\u32C9\", \"\\u0031\\u0030\\u6708\",\n \"\\u32CA\", \"\\u0031\\u0031\\u6708\",\n \"\\u32CB\", \"\\u0031\\u0032\\u6708\",\n \"\\u3358\", \"\\u0030\\u70B9\",\n \"\\u3359\", \"\\u0031\\u70B9\",\n \"\\u335A\", \"\\u0032\\u70B9\",\n \"\\u335B\", \"\\u0033\\u70B9\",\n \"\\u335C\", \"\\u0034\\u70B9\",\n \"\\u335D\", \"\\u0035\\u70B9\",\n \"\\u335E\", \"\\u0036\\u70B9\",\n \"\\u335F\", \"\\u0037\\u70B9\",\n \"\\u3360\", \"\\u0038\\u70B9\",\n \"\\u3361\", \"\\u0039\\u70B9\",\n \"\\u3362\", \"\\u0031\\u0030\\u70B9\",\n \"\\u3363\", \"\\u0031\\u0031\\u70B9\",\n \"\\u3364\", \"\\u0031\\u0032\\u70B9\",\n \"\\u3365\", \"\\u0031\\u0033\\u70B9\",\n \"\\u3366\", \"\\u0031\\u0034\\u70B9\",\n \"\\u3367\", \"\\u0031\\u0035\\u70B9\",\n \"\\u3368\", \"\\u0031\\u0036\\u70B9\",\n \"\\u3369\", \"\\u0031\\u0037\\u70B9\",\n \"\\u336A\", \"\\u0031\\u0038\\u70B9\",\n \"\\u336B\", \"\\u0031\\u0039\\u70B9\",\n \"\\u336C\", \"\\u0032\\u0030\\u70B9\",\n \"\\u336D\", \"\\u0032\\u0031\\u70B9\",\n \"\\u336E\", \"\\u0032\\u0032\\u70B9\",\n \"\\u336F\", \"\\u0032\\u0033\\u70B9\",\n \"\\u3370\", \"\\u0032\\u0034\\u70B9\",\n \"\\u33E0\", \"\\u0031\\u65E5\",\n \"\\u33E1\", \"\\u0032\\u65E5\",\n \"\\u33E2\", \"\\u0033\\u65E5\",\n \"\\u33E3\", \"\\u0034\\u65E5\",\n \"\\u33E4\", \"\\u0035\\u65E5\",\n \"\\u33E5\", \"\\u0036\\u65E5\",\n \"\\u33E6\", \"\\u0037\\u65E5\",\n \"\\u33E7\", \"\\u0038\\u65E5\",\n \"\\u33E8\", \"\\u0039\\u65E5\",\n \"\\u33E9\", \"\\u0031\\u0030\\u65E5\",\n \"\\u33EA\", \"\\u0031\\u0031\\u65E5\",\n \"\\u33EB\", \"\\u0031\\u0032\\u65E5\",\n \"\\u33EC\", \"\\u0031\\u0033\\u65E5\",\n \"\\u33ED\", \"\\u0031\\u0034\\u65E5\",\n \"\\u33EE\", \"\\u0031\\u0035\\u65E5\",\n \"\\u33EF\", \"\\u0031\\u0036\\u65E5\",\n \"\\u33F0\", \"\\u0031\\u0037\\u65E5\",\n \"\\u33F1\", \"\\u0031\\u0038\\u65E5\",\n \"\\u33F2\", \"\\u0031\\u0039\\u65E5\",\n \"\\u33F3\", \"\\u0032\\u0030\\u65E5\",\n \"\\u33F4\", \"\\u0032\\u0031\\u65E5\",\n \"\\u33F5\", \"\\u0032\\u0032\\u65E5\",\n \"\\u33F6\", \"\\u0032\\u0033\\u65E5\",\n \"\\u33F7\", \"\\u0032\\u0034\\u65E5\",\n \"\\u33F8\", \"\\u0032\\u0035\\u65E5\",\n \"\\u33F9\", \"\\u0032\\u0036\\u65E5\",\n \"\\u33FA\", \"\\u0032\\u0037\\u65E5\",\n \"\\u33FB\", \"\\u0032\\u0038\\u65E5\",\n \"\\u33FC\", \"\\u0032\\u0039\\u65E5\",\n \"\\u33FD\", \"\\u0033\\u0030\\u65E5\",\n \"\\u33FE\", \"\\u0033\\u0031\\u65E5\",\n \"\\uFB00\", \"\\u0066\\u0066\",\n \"\\uFB01\", \"\\u0066\\u0069\",\n \"\\uFB02\", \"\\u0066\\u006C\",\n \"\\uFB03\", \"\\u0066\\u0066\\u0069\",\n \"\\uFB04\", \"\\u0066\\u0066\\u006C\",\n \"\\uFB05\", \"\\u017F\\u0074\",\n \"\\uFB06\", \"\\u0073\\u0074\",\n \"\\uFB13\", \"\\u0574\\u0576\",\n \"\\uFB14\", \"\\u0574\\u0565\",\n \"\\uFB15\", \"\\u0574\\u056B\",\n \"\\uFB16\", \"\\u057E\\u0576\",\n \"\\uFB17\", \"\\u0574\\u056D\",\n \"\\uFB4F\", \"\\u05D0\\u05DC\",\n \"\\uFB50\", \"\\u0671\",\n \"\\uFB51\", \"\\u0671\",\n \"\\uFB52\", \"\\u067B\",\n \"\\uFB53\", \"\\u067B\",\n \"\\uFB54\", \"\\u067B\",\n \"\\uFB55\", \"\\u067B\",\n \"\\uFB56\", \"\\u067E\",\n \"\\uFB57\", \"\\u067E\",\n \"\\uFB58\", \"\\u067E\",\n \"\\uFB59\", \"\\u067E\",\n \"\\uFB5A\", \"\\u0680\",\n \"\\uFB5B\", \"\\u0680\",\n \"\\uFB5C\", \"\\u0680\",\n \"\\uFB5D\", \"\\u0680\",\n \"\\uFB5E\", \"\\u067A\",\n \"\\uFB5F\", \"\\u067A\",\n \"\\uFB60\", \"\\u067A\",\n \"\\uFB61\", \"\\u067A\",\n \"\\uFB62\", \"\\u067F\",\n \"\\uFB63\", \"\\u067F\",\n \"\\uFB64\", \"\\u067F\",\n \"\\uFB65\", \"\\u067F\",\n \"\\uFB66\", \"\\u0679\",\n \"\\uFB67\", \"\\u0679\",\n \"\\uFB68\", \"\\u0679\",\n \"\\uFB69\", \"\\u0679\",\n \"\\uFB6A\", \"\\u06A4\",\n \"\\uFB6B\", \"\\u06A4\",\n \"\\uFB6C\", \"\\u06A4\",\n \"\\uFB6D\", \"\\u06A4\",\n \"\\uFB6E\", \"\\u06A6\",\n \"\\uFB6F\", \"\\u06A6\",\n \"\\uFB70\", \"\\u06A6\",\n \"\\uFB71\", \"\\u06A6\",\n \"\\uFB72\", \"\\u0684\",\n \"\\uFB73\", \"\\u0684\",\n \"\\uFB74\", \"\\u0684\",\n \"\\uFB75\", \"\\u0684\",\n \"\\uFB76\", \"\\u0683\",\n \"\\uFB77\", \"\\u0683\",\n \"\\uFB78\", \"\\u0683\",\n \"\\uFB79\", \"\\u0683\",\n \"\\uFB7A\", \"\\u0686\",\n \"\\uFB7B\", \"\\u0686\",\n \"\\uFB7C\", \"\\u0686\",\n \"\\uFB7D\", \"\\u0686\",\n \"\\uFB7E\", \"\\u0687\",\n \"\\uFB7F\", \"\\u0687\",\n \"\\uFB80\", \"\\u0687\",\n \"\\uFB81\", \"\\u0687\",\n \"\\uFB82\", \"\\u068D\",\n \"\\uFB83\", \"\\u068D\",\n \"\\uFB84\", \"\\u068C\",\n \"\\uFB85\", \"\\u068C\",\n \"\\uFB86\", \"\\u068E\",\n \"\\uFB87\", \"\\u068E\",\n \"\\uFB88\", \"\\u0688\",\n \"\\uFB89\", \"\\u0688\",\n \"\\uFB8A\", \"\\u0698\",\n \"\\uFB8B\", \"\\u0698\",\n \"\\uFB8C\", \"\\u0691\",\n \"\\uFB8D\", \"\\u0691\",\n \"\\uFB8E\", \"\\u06A9\",\n \"\\uFB8F\", \"\\u06A9\",\n \"\\uFB90\", \"\\u06A9\",\n \"\\uFB91\", \"\\u06A9\",\n \"\\uFB92\", \"\\u06AF\",\n \"\\uFB93\", \"\\u06AF\",\n \"\\uFB94\", \"\\u06AF\",\n \"\\uFB95\", \"\\u06AF\",\n \"\\uFB96\", \"\\u06B3\",\n \"\\uFB97\", \"\\u06B3\",\n \"\\uFB98\", \"\\u06B3\",\n \"\\uFB99\", \"\\u06B3\",\n \"\\uFB9A\", \"\\u06B1\",\n \"\\uFB9B\", \"\\u06B1\",\n \"\\uFB9C\", \"\\u06B1\",\n \"\\uFB9D\", \"\\u06B1\",\n \"\\uFB9E\", \"\\u06BA\",\n \"\\uFB9F\", \"\\u06BA\",\n \"\\uFBA0\", \"\\u06BB\",\n \"\\uFBA1\", \"\\u06BB\",\n \"\\uFBA2\", \"\\u06BB\",\n \"\\uFBA3\", \"\\u06BB\",\n \"\\uFBA4\", \"\\u06C0\",\n \"\\uFBA5\", \"\\u06C0\",\n \"\\uFBA6\", \"\\u06C1\",\n \"\\uFBA7\", \"\\u06C1\",\n \"\\uFBA8\", \"\\u06C1\",\n \"\\uFBA9\", \"\\u06C1\",\n \"\\uFBAA\", \"\\u06BE\",\n \"\\uFBAB\", \"\\u06BE\",\n \"\\uFBAC\", \"\\u06BE\",\n \"\\uFBAD\", \"\\u06BE\",\n \"\\uFBAE\", \"\\u06D2\",\n \"\\uFBAF\", \"\\u06D2\",\n \"\\uFBB0\", \"\\u06D3\",\n \"\\uFBB1\", \"\\u06D3\",\n \"\\uFBD3\", \"\\u06AD\",\n \"\\uFBD4\", \"\\u06AD\",\n \"\\uFBD5\", \"\\u06AD\",\n \"\\uFBD6\", \"\\u06AD\",\n \"\\uFBD7\", \"\\u06C7\",\n \"\\uFBD8\", \"\\u06C7\",\n \"\\uFBD9\", \"\\u06C6\",\n \"\\uFBDA\", \"\\u06C6\",\n \"\\uFBDB\", \"\\u06C8\",\n \"\\uFBDC\", \"\\u06C8\",\n \"\\uFBDD\", \"\\u0677\",\n \"\\uFBDE\", \"\\u06CB\",\n \"\\uFBDF\", \"\\u06CB\",\n \"\\uFBE0\", \"\\u06C5\",\n \"\\uFBE1\", \"\\u06C5\",\n \"\\uFBE2\", \"\\u06C9\",\n \"\\uFBE3\", \"\\u06C9\",\n \"\\uFBE4\", \"\\u06D0\",\n \"\\uFBE5\", \"\\u06D0\",\n \"\\uFBE6\", \"\\u06D0\",\n \"\\uFBE7\", \"\\u06D0\",\n \"\\uFBE8\", \"\\u0649\",\n \"\\uFBE9\", \"\\u0649\",\n \"\\uFBEA\", \"\\u0626\\u0627\",\n \"\\uFBEB\", \"\\u0626\\u0627\",\n \"\\uFBEC\", \"\\u0626\\u06D5\",\n \"\\uFBED\", \"\\u0626\\u06D5\",\n \"\\uFBEE\", \"\\u0626\\u0648\",\n \"\\uFBEF\", \"\\u0626\\u0648\",\n \"\\uFBF0\", \"\\u0626\\u06C7\",\n \"\\uFBF1\", \"\\u0626\\u06C7\",\n \"\\uFBF2\", \"\\u0626\\u06C6\",\n \"\\uFBF3\", \"\\u0626\\u06C6\",\n \"\\uFBF4\", \"\\u0626\\u06C8\",\n \"\\uFBF5\", \"\\u0626\\u06C8\",\n \"\\uFBF6\", \"\\u0626\\u06D0\",\n \"\\uFBF7\", \"\\u0626\\u06D0\",\n \"\\uFBF8\", \"\\u0626\\u06D0\",\n \"\\uFBF9\", \"\\u0626\\u0649\",\n \"\\uFBFA\", \"\\u0626\\u0649\",\n \"\\uFBFB\", \"\\u0626\\u0649\",\n \"\\uFBFC\", \"\\u06CC\",\n \"\\uFBFD\", \"\\u06CC\",\n \"\\uFBFE\", \"\\u06CC\",\n \"\\uFBFF\", \"\\u06CC\",\n \"\\uFC00\", \"\\u0626\\u062C\",\n \"\\uFC01\", \"\\u0626\\u062D\",\n \"\\uFC02\", \"\\u0626\\u0645\",\n \"\\uFC03\", \"\\u0626\\u0649\",\n \"\\uFC04\", \"\\u0626\\u064A\",\n \"\\uFC05\", \"\\u0628\\u062C\",\n \"\\uFC06\", \"\\u0628\\u062D\",\n \"\\uFC07\", \"\\u0628\\u062E\",\n \"\\uFC08\", \"\\u0628\\u0645\",\n \"\\uFC09\", \"\\u0628\\u0649\",\n \"\\uFC0A\", \"\\u0628\\u064A\",\n \"\\uFC0B\", \"\\u062A\\u062C\",\n \"\\uFC0C\", \"\\u062A\\u062D\",\n \"\\uFC0D\", \"\\u062A\\u062E\",\n \"\\uFC0E\", \"\\u062A\\u0645\",\n \"\\uFC0F\", \"\\u062A\\u0649\",\n \"\\uFC10\", \"\\u062A\\u064A\",\n \"\\uFC11\", \"\\u062B\\u062C\",\n \"\\uFC12\", \"\\u062B\\u0645\",\n \"\\uFC13\", \"\\u062B\\u0649\",\n \"\\uFC14\", \"\\u062B\\u064A\",\n \"\\uFC15\", \"\\u062C\\u062D\",\n \"\\uFC16\", \"\\u062C\\u0645\",\n \"\\uFC17\", \"\\u062D\\u062C\",\n \"\\uFC18\", \"\\u062D\\u0645\",\n \"\\uFC19\", \"\\u062E\\u062C\",\n \"\\uFC1A\", \"\\u062E\\u062D\",\n \"\\uFC1B\", \"\\u062E\\u0645\",\n \"\\uFC1C\", \"\\u0633\\u062C\",\n \"\\uFC1D\", \"\\u0633\\u062D\",\n \"\\uFC1E\", \"\\u0633\\u062E\",\n \"\\uFC1F\", \"\\u0633\\u0645\",\n \"\\uFC20\", \"\\u0635\\u062D\",\n \"\\uFC21\", \"\\u0635\\u0645\",\n \"\\uFC22\", \"\\u0636\\u062C\",\n \"\\uFC23\", \"\\u0636\\u062D\",\n \"\\uFC24\", \"\\u0636\\u062E\",\n \"\\uFC25\", \"\\u0636\\u0645\",\n \"\\uFC26\", \"\\u0637\\u062D\",\n \"\\uFC27\", \"\\u0637\\u0645\",\n \"\\uFC28\", \"\\u0638\\u0645\",\n \"\\uFC29\", \"\\u0639\\u062C\",\n \"\\uFC2A\", \"\\u0639\\u0645\",\n \"\\uFC2B\", \"\\u063A\\u062C\",\n \"\\uFC2C\", \"\\u063A\\u0645\",\n \"\\uFC2D\", \"\\u0641\\u062C\",\n \"\\uFC2E\", \"\\u0641\\u062D\",\n \"\\uFC2F\", \"\\u0641\\u062E\",\n \"\\uFC30\", \"\\u0641\\u0645\",\n \"\\uFC31\", \"\\u0641\\u0649\",\n \"\\uFC32\", \"\\u0641\\u064A\",\n \"\\uFC33\", \"\\u0642\\u062D\",\n \"\\uFC34\", \"\\u0642\\u0645\",\n \"\\uFC35\", \"\\u0642\\u0649\",\n \"\\uFC36\", \"\\u0642\\u064A\",\n \"\\uFC37\", \"\\u0643\\u0627\",\n \"\\uFC38\", \"\\u0643\\u062C\",\n \"\\uFC39\", \"\\u0643\\u062D\",\n \"\\uFC3A\", \"\\u0643\\u062E\",\n \"\\uFC3B\", \"\\u0643\\u0644\",\n \"\\uFC3C\", \"\\u0643\\u0645\",\n \"\\uFC3D\", \"\\u0643\\u0649\",\n \"\\uFC3E\", \"\\u0643\\u064A\",\n \"\\uFC3F\", \"\\u0644\\u062C\",\n \"\\uFC40\", \"\\u0644\\u062D\",\n \"\\uFC41\", \"\\u0644\\u062E\",\n \"\\uFC42\", \"\\u0644\\u0645\",\n \"\\uFC43\", \"\\u0644\\u0649\",\n \"\\uFC44\", \"\\u0644\\u064A\",\n \"\\uFC45\", \"\\u0645\\u062C\",\n \"\\uFC46\", \"\\u0645\\u062D\",\n \"\\uFC47\", \"\\u0645\\u062E\",\n \"\\uFC48\", \"\\u0645\\u0645\",\n \"\\uFC49\", \"\\u0645\\u0649\",\n \"\\uFC4A\", \"\\u0645\\u064A\",\n \"\\uFC4B\", \"\\u0646\\u062C\",\n \"\\uFC4C\", \"\\u0646\\u062D\",\n \"\\uFC4D\", \"\\u0646\\u062E\",\n \"\\uFC4E\", \"\\u0646\\u0645\",\n \"\\uFC4F\", \"\\u0646\\u0649\",\n \"\\uFC50\", \"\\u0646\\u064A\",\n \"\\uFC51\", \"\\u0647\\u062C\",\n \"\\uFC52\", \"\\u0647\\u0645\",\n \"\\uFC53\", \"\\u0647\\u0649\",\n \"\\uFC54\", \"\\u0647\\u064A\",\n \"\\uFC55\", \"\\u064A\\u062C\",\n \"\\uFC56\", \"\\u064A\\u062D\",\n \"\\uFC57\", \"\\u064A\\u062E\",\n \"\\uFC58\", \"\\u064A\\u0645\",\n \"\\uFC59\", \"\\u064A\\u0649\",\n \"\\uFC5A\", \"\\u064A\\u064A\",\n \"\\uFC5B\", \"\\u0630\\u0670\",\n \"\\uFC5C\", \"\\u0631\\u0670\",\n \"\\uFC5D\", \"\\u0649\\u0670\",\n \"\\uFC5E\", \"\\u0020\\u064C\\u0651\",\n \"\\uFC5F\", \"\\u0020\\u064D\\u0651\",\n \"\\uFC60\", \"\\u0020\\u064E\\u0651\",\n \"\\uFC61\", \"\\u0020\\u064F\\u0651\",\n \"\\uFC62\", \"\\u0020\\u0650\\u0651\",\n \"\\uFC63\", \"\\u0020\\u0651\\u0670\",\n \"\\uFC64\", \"\\u0626\\u0631\",\n \"\\uFC65\", \"\\u0626\\u0632\",\n \"\\uFC66\", \"\\u0626\\u0645\",\n \"\\uFC67\", \"\\u0626\\u0646\",\n \"\\uFC68\", \"\\u0626\\u0649\",\n \"\\uFC69\", \"\\u0626\\u064A\",\n \"\\uFC6A\", \"\\u0628\\u0631\",\n \"\\uFC6B\", \"\\u0628\\u0632\",\n \"\\uFC6C\", \"\\u0628\\u0645\",\n \"\\uFC6D\", \"\\u0628\\u0646\",\n \"\\uFC6E\", \"\\u0628\\u0649\",\n \"\\uFC6F\", \"\\u0628\\u064A\",\n \"\\uFC70\", \"\\u062A\\u0631\",\n \"\\uFC71\", \"\\u062A\\u0632\",\n \"\\uFC72\", \"\\u062A\\u0645\",\n \"\\uFC73\", \"\\u062A\\u0646\",\n \"\\uFC74\", \"\\u062A\\u0649\",\n \"\\uFC75\", \"\\u062A\\u064A\",\n \"\\uFC76\", \"\\u062B\\u0631\",\n \"\\uFC77\", \"\\u062B\\u0632\",\n \"\\uFC78\", \"\\u062B\\u0645\",\n \"\\uFC79\", \"\\u062B\\u0646\",\n \"\\uFC7A\", \"\\u062B\\u0649\",\n \"\\uFC7B\", \"\\u062B\\u064A\",\n \"\\uFC7C\", \"\\u0641\\u0649\",\n \"\\uFC7D\", \"\\u0641\\u064A\",\n \"\\uFC7E\", \"\\u0642\\u0649\",\n \"\\uFC7F\", \"\\u0642\\u064A\",\n \"\\uFC80\", \"\\u0643\\u0627\",\n \"\\uFC81\", \"\\u0643\\u0644\",\n \"\\uFC82\", \"\\u0643\\u0645\",\n \"\\uFC83\", \"\\u0643\\u0649\",\n \"\\uFC84\", \"\\u0643\\u064A\",\n \"\\uFC85\", \"\\u0644\\u0645\",\n \"\\uFC86\", \"\\u0644\\u0649\",\n \"\\uFC87\", \"\\u0644\\u064A\",\n \"\\uFC88\", \"\\u0645\\u0627\",\n \"\\uFC89\", \"\\u0645\\u0645\",\n \"\\uFC8A\", \"\\u0646\\u0631\",\n \"\\uFC8B\", \"\\u0646\\u0632\",\n \"\\uFC8C\", \"\\u0646\\u0645\",\n \"\\uFC8D\", \"\\u0646\\u0646\",\n \"\\uFC8E\", \"\\u0646\\u0649\",\n \"\\uFC8F\", \"\\u0646\\u064A\",\n \"\\uFC90\", \"\\u0649\\u0670\",\n \"\\uFC91\", \"\\u064A\\u0631\",\n \"\\uFC92\", \"\\u064A\\u0632\",\n \"\\uFC93\", \"\\u064A\\u0645\",\n \"\\uFC94\", \"\\u064A\\u0646\",\n \"\\uFC95\", \"\\u064A\\u0649\",\n \"\\uFC96\", \"\\u064A\\u064A\",\n \"\\uFC97\", \"\\u0626\\u062C\",\n \"\\uFC98\", \"\\u0626\\u062D\",\n \"\\uFC99\", \"\\u0626\\u062E\",\n \"\\uFC9A\", \"\\u0626\\u0645\",\n \"\\uFC9B\", \"\\u0626\\u0647\",\n \"\\uFC9C\", \"\\u0628\\u062C\",\n \"\\uFC9D\", \"\\u0628\\u062D\",\n \"\\uFC9E\", \"\\u0628\\u062E\",\n \"\\uFC9F\", \"\\u0628\\u0645\",\n \"\\uFCA0\", \"\\u0628\\u0647\",\n \"\\uFCA1\", \"\\u062A\\u062C\",\n \"\\uFCA2\", \"\\u062A\\u062D\",\n \"\\uFCA3\", \"\\u062A\\u062E\",\n \"\\uFCA4\", \"\\u062A\\u0645\",\n \"\\uFCA5\", \"\\u062A\\u0647\",\n \"\\uFCA6\", \"\\u062B\\u0645\",\n \"\\uFCA7\", \"\\u062C\\u062D\",\n \"\\uFCA8\", \"\\u062C\\u0645\",\n \"\\uFCA9\", \"\\u062D\\u062C\",\n \"\\uFCAA\", \"\\u062D\\u0645\",\n \"\\uFCAB\", \"\\u062E\\u062C\",\n \"\\uFCAC\", \"\\u062E\\u0645\",\n \"\\uFCAD\", \"\\u0633\\u062C\",\n \"\\uFCAE\", \"\\u0633\\u062D\",\n \"\\uFCAF\", \"\\u0633\\u062E\",\n \"\\uFCB0\", \"\\u0633\\u0645\",\n \"\\uFCB1\", \"\\u0635\\u062D\",\n \"\\uFCB2\", \"\\u0635\\u062E\",\n \"\\uFCB3\", \"\\u0635\\u0645\",\n \"\\uFCB4\", \"\\u0636\\u062C\",\n \"\\uFCB5\", \"\\u0636\\u062D\",\n \"\\uFCB6\", \"\\u0636\\u062E\",\n \"\\uFCB7\", \"\\u0636\\u0645\",\n \"\\uFCB8\", \"\\u0637\\u062D\",\n \"\\uFCB9\", \"\\u0638\\u0645\",\n \"\\uFCBA\", \"\\u0639\\u062C\",\n \"\\uFCBB\", \"\\u0639\\u0645\",\n \"\\uFCBC\", \"\\u063A\\u062C\",\n \"\\uFCBD\", \"\\u063A\\u0645\",\n \"\\uFCBE\", \"\\u0641\\u062C\",\n \"\\uFCBF\", \"\\u0641\\u062D\",\n \"\\uFCC0\", \"\\u0641\\u062E\",\n \"\\uFCC1\", \"\\u0641\\u0645\",\n \"\\uFCC2\", \"\\u0642\\u062D\",\n \"\\uFCC3\", \"\\u0642\\u0645\",\n \"\\uFCC4\", \"\\u0643\\u062C\",\n \"\\uFCC5\", \"\\u0643\\u062D\",\n \"\\uFCC6\", \"\\u0643\\u062E\",\n \"\\uFCC7\", \"\\u0643\\u0644\",\n \"\\uFCC8\", \"\\u0643\\u0645\",\n \"\\uFCC9\", \"\\u0644\\u062C\",\n \"\\uFCCA\", \"\\u0644\\u062D\",\n \"\\uFCCB\", \"\\u0644\\u062E\",\n \"\\uFCCC\", \"\\u0644\\u0645\",\n \"\\uFCCD\", \"\\u0644\\u0647\",\n \"\\uFCCE\", \"\\u0645\\u062C\",\n \"\\uFCCF\", \"\\u0645\\u062D\",\n \"\\uFCD0\", \"\\u0645\\u062E\",\n \"\\uFCD1\", \"\\u0645\\u0645\",\n \"\\uFCD2\", \"\\u0646\\u062C\",\n \"\\uFCD3\", \"\\u0646\\u062D\",\n \"\\uFCD4\", \"\\u0646\\u062E\",\n \"\\uFCD5\", \"\\u0646\\u0645\",\n \"\\uFCD6\", \"\\u0646\\u0647\",\n \"\\uFCD7\", \"\\u0647\\u062C\",\n \"\\uFCD8\", \"\\u0647\\u0645\",\n \"\\uFCD9\", \"\\u0647\\u0670\",\n \"\\uFCDA\", \"\\u064A\\u062C\",\n \"\\uFCDB\", \"\\u064A\\u062D\",\n \"\\uFCDC\", \"\\u064A\\u062E\",\n \"\\uFCDD\", \"\\u064A\\u0645\",\n \"\\uFCDE\", \"\\u064A\\u0647\",\n \"\\uFCDF\", \"\\u0626\\u0645\",\n \"\\uFCE0\", \"\\u0626\\u0647\",\n \"\\uFCE1\", \"\\u0628\\u0645\",\n \"\\uFCE2\", \"\\u0628\\u0647\",\n \"\\uFCE3\", \"\\u062A\\u0645\",\n \"\\uFCE4\", \"\\u062A\\u0647\",\n \"\\uFCE5\", \"\\u062B\\u0645\",\n \"\\uFCE6\", \"\\u062B\\u0647\",\n \"\\uFCE7\", \"\\u0633\\u0645\",\n \"\\uFCE8\", \"\\u0633\\u0647\",\n \"\\uFCE9\", \"\\u0634\\u0645\",\n \"\\uFCEA\", \"\\u0634\\u0647\",\n \"\\uFCEB\", \"\\u0643\\u0644\",\n \"\\uFCEC\", \"\\u0643\\u0645\",\n \"\\uFCED\", \"\\u0644\\u0645\",\n \"\\uFCEE\", \"\\u0646\\u0645\",\n \"\\uFCEF\", \"\\u0646\\u0647\",\n \"\\uFCF0\", \"\\u064A\\u0645\",\n \"\\uFCF1\", \"\\u064A\\u0647\",\n \"\\uFCF2\", \"\\u0640\\u064E\\u0651\",\n \"\\uFCF3\", \"\\u0640\\u064F\\u0651\",\n \"\\uFCF4\", \"\\u0640\\u0650\\u0651\",\n \"\\uFCF5\", \"\\u0637\\u0649\",\n \"\\uFCF6\", \"\\u0637\\u064A\",\n \"\\uFCF7\", \"\\u0639\\u0649\",\n \"\\uFCF8\", \"\\u0639\\u064A\",\n \"\\uFCF9\", \"\\u063A\\u0649\",\n \"\\uFCFA\", \"\\u063A\\u064A\",\n \"\\uFCFB\", \"\\u0633\\u0649\",\n \"\\uFCFC\", \"\\u0633\\u064A\",\n \"\\uFCFD\", \"\\u0634\\u0649\",\n \"\\uFCFE\", \"\\u0634\\u064A\",\n \"\\uFCFF\", \"\\u062D\\u0649\",\n \"\\uFD00\", \"\\u062D\\u064A\",\n \"\\uFD01\", \"\\u062C\\u0649\",\n \"\\uFD02\", \"\\u062C\\u064A\",\n \"\\uFD03\", \"\\u062E\\u0649\",\n \"\\uFD04\", \"\\u062E\\u064A\",\n \"\\uFD05\", \"\\u0635\\u0649\",\n \"\\uFD06\", \"\\u0635\\u064A\",\n \"\\uFD07\", \"\\u0636\\u0649\",\n \"\\uFD08\", \"\\u0636\\u064A\",\n \"\\uFD09\", \"\\u0634\\u062C\",\n \"\\uFD0A\", \"\\u0634\\u062D\",\n \"\\uFD0B\", \"\\u0634\\u062E\",\n \"\\uFD0C\", \"\\u0634\\u0645\",\n \"\\uFD0D\", \"\\u0634\\u0631\",\n \"\\uFD0E\", \"\\u0633\\u0631\",\n \"\\uFD0F\", \"\\u0635\\u0631\",\n \"\\uFD10\", \"\\u0636\\u0631\",\n \"\\uFD11\", \"\\u0637\\u0649\",\n \"\\uFD12\", \"\\u0637\\u064A\",\n \"\\uFD13\", \"\\u0639\\u0649\",\n \"\\uFD14\", \"\\u0639\\u064A\",\n \"\\uFD15\", \"\\u063A\\u0649\",\n \"\\uFD16\", \"\\u063A\\u064A\",\n \"\\uFD17\", \"\\u0633\\u0649\",\n \"\\uFD18\", \"\\u0633\\u064A\",\n \"\\uFD19\", \"\\u0634\\u0649\",\n \"\\uFD1A\", \"\\u0634\\u064A\",\n \"\\uFD1B\", \"\\u062D\\u0649\",\n \"\\uFD1C\", \"\\u062D\\u064A\",\n \"\\uFD1D\", \"\\u062C\\u0649\",\n \"\\uFD1E\", \"\\u062C\\u064A\",\n \"\\uFD1F\", \"\\u062E\\u0649\",\n \"\\uFD20\", \"\\u062E\\u064A\",\n \"\\uFD21\", \"\\u0635\\u0649\",\n \"\\uFD22\", \"\\u0635\\u064A\",\n \"\\uFD23\", \"\\u0636\\u0649\",\n \"\\uFD24\", \"\\u0636\\u064A\",\n \"\\uFD25\", \"\\u0634\\u062C\",\n \"\\uFD26\", \"\\u0634\\u062D\",\n \"\\uFD27\", \"\\u0634\\u062E\",\n \"\\uFD28\", \"\\u0634\\u0645\",\n \"\\uFD29\", \"\\u0634\\u0631\",\n \"\\uFD2A\", \"\\u0633\\u0631\",\n \"\\uFD2B\", \"\\u0635\\u0631\",\n \"\\uFD2C\", \"\\u0636\\u0631\",\n \"\\uFD2D\", \"\\u0634\\u062C\",\n \"\\uFD2E\", \"\\u0634\\u062D\",\n \"\\uFD2F\", \"\\u0634\\u062E\",\n \"\\uFD30\", \"\\u0634\\u0645\",\n \"\\uFD31\", \"\\u0633\\u0647\",\n \"\\uFD32\", \"\\u0634\\u0647\",\n \"\\uFD33\", \"\\u0637\\u0645\",\n \"\\uFD34\", \"\\u0633\\u062C\",\n \"\\uFD35\", \"\\u0633\\u062D\",\n \"\\uFD36\", \"\\u0633\\u062E\",\n \"\\uFD37\", \"\\u0634\\u062C\",\n \"\\uFD38\", \"\\u0634\\u062D\",\n \"\\uFD39\", \"\\u0634\\u062E\",\n \"\\uFD3A\", \"\\u0637\\u0645\",\n \"\\uFD3B\", \"\\u0638\\u0645\",\n \"\\uFD3C\", \"\\u0627\\u064B\",\n \"\\uFD3D\", \"\\u0627\\u064B\",\n \"\\uFD50\", \"\\u062A\\u062C\\u0645\",\n \"\\uFD51\", \"\\u062A\\u062D\\u062C\",\n \"\\uFD52\", \"\\u062A\\u062D\\u062C\",\n \"\\uFD53\", \"\\u062A\\u062D\\u0645\",\n \"\\uFD54\", \"\\u062A\\u062E\\u0645\",\n \"\\uFD55\", \"\\u062A\\u0645\\u062C\",\n \"\\uFD56\", \"\\u062A\\u0645\\u062D\",\n \"\\uFD57\", \"\\u062A\\u0645\\u062E\",\n \"\\uFD58\", \"\\u062C\\u0645\\u062D\",\n \"\\uFD59\", \"\\u062C\\u0645\\u062D\",\n \"\\uFD5A\", \"\\u062D\\u0645\\u064A\",\n \"\\uFD5B\", \"\\u062D\\u0645\\u0649\",\n \"\\uFD5C\", \"\\u0633\\u062D\\u062C\",\n \"\\uFD5D\", \"\\u0633\\u062C\\u062D\",\n \"\\uFD5E\", \"\\u0633\\u062C\\u0649\",\n \"\\uFD5F\", \"\\u0633\\u0645\\u062D\",\n \"\\uFD60\", \"\\u0633\\u0645\\u062D\",\n \"\\uFD61\", \"\\u0633\\u0645\\u062C\",\n \"\\uFD62\", \"\\u0633\\u0645\\u0645\",\n \"\\uFD63\", \"\\u0633\\u0645\\u0645\",\n \"\\uFD64\", \"\\u0635\\u062D\\u062D\",\n \"\\uFD65\", \"\\u0635\\u062D\\u062D\",\n \"\\uFD66\", \"\\u0635\\u0645\\u0645\",\n \"\\uFD67\", \"\\u0634\\u062D\\u0645\",\n \"\\uFD68\", \"\\u0634\\u062D\\u0645\",\n \"\\uFD69\", \"\\u0634\\u062C\\u064A\",\n \"\\uFD6A\", \"\\u0634\\u0645\\u062E\",\n \"\\uFD6B\", \"\\u0634\\u0645\\u062E\",\n \"\\uFD6C\", \"\\u0634\\u0645\\u0645\",\n \"\\uFD6D\", \"\\u0634\\u0645\\u0645\",\n \"\\uFD6E\", \"\\u0636\\u062D\\u0649\",\n \"\\uFD6F\", \"\\u0636\\u062E\\u0645\",\n \"\\uFD70\", \"\\u0636\\u062E\\u0645\",\n \"\\uFD71\", \"\\u0637\\u0645\\u062D\",\n \"\\uFD72\", \"\\u0637\\u0645\\u062D\",\n \"\\uFD73\", \"\\u0637\\u0645\\u0645\",\n \"\\uFD74\", \"\\u0637\\u0645\\u064A\",\n \"\\uFD75\", \"\\u0639\\u062C\\u0645\",\n \"\\uFD76\", \"\\u0639\\u0645\\u0645\",\n \"\\uFD77\", \"\\u0639\\u0645\\u0645\",\n \"\\uFD78\", \"\\u0639\\u0645\\u0649\",\n \"\\uFD79\", \"\\u063A\\u0645\\u0645\",\n \"\\uFD7A\", \"\\u063A\\u0645\\u064A\",\n \"\\uFD7B\", \"\\u063A\\u0645\\u0649\",\n \"\\uFD7C\", \"\\u0641\\u062E\\u0645\",\n \"\\uFD7D\", \"\\u0641\\u062E\\u0645\",\n \"\\uFD7E\", \"\\u0642\\u0645\\u062D\",\n \"\\uFD7F\", \"\\u0642\\u0645\\u0645\",\n \"\\uFD80\", \"\\u0644\\u062D\\u0645\",\n \"\\uFD81\", \"\\u0644\\u062D\\u064A\",\n \"\\uFD82\", \"\\u0644\\u062D\\u0649\",\n \"\\uFD83\", \"\\u0644\\u062C\\u062C\",\n \"\\uFD84\", \"\\u0644\\u062C\\u062C\",\n \"\\uFD85\", \"\\u0644\\u062E\\u0645\",\n \"\\uFD86\", \"\\u0644\\u062E\\u0645\",\n \"\\uFD87\", \"\\u0644\\u0645\\u062D\",\n \"\\uFD88\", \"\\u0644\\u0645\\u062D\",\n \"\\uFD89\", \"\\u0645\\u062D\\u062C\",\n \"\\uFD8A\", \"\\u0645\\u062D\\u0645\",\n \"\\uFD8B\", \"\\u0645\\u062D\\u064A\",\n \"\\uFD8C\", \"\\u0645\\u062C\\u062D\",\n \"\\uFD8D\", \"\\u0645\\u062C\\u0645\",\n \"\\uFD8E\", \"\\u0645\\u062E\\u062C\",\n \"\\uFD8F\", \"\\u0645\\u062E\\u0645\",\n \"\\uFD92\", \"\\u0645\\u062C\\u062E\",\n \"\\uFD93\", \"\\u0647\\u0645\\u062C\",\n \"\\uFD94\", \"\\u0647\\u0645\\u0645\",\n \"\\uFD95\", \"\\u0646\\u062D\\u0645\",\n \"\\uFD96\", \"\\u0646\\u062D\\u0649\",\n \"\\uFD97\", \"\\u0646\\u062C\\u0645\",\n \"\\uFD98\", \"\\u0646\\u062C\\u0645\",\n \"\\uFD99\", \"\\u0646\\u062C\\u0649\",\n \"\\uFD9A\", \"\\u0646\\u0645\\u064A\",\n \"\\uFD9B\", \"\\u0646\\u0645\\u0649\",\n \"\\uFD9C\", \"\\u064A\\u0645\\u0645\",\n \"\\uFD9D\", \"\\u064A\\u0645\\u0645\",\n \"\\uFD9E\", \"\\u0628\\u062E\\u064A\",\n \"\\uFD9F\", \"\\u062A\\u062C\\u064A\",\n \"\\uFDA0\", \"\\u062A\\u062C\\u0649\",\n \"\\uFDA1\", \"\\u062A\\u062E\\u064A\",\n \"\\uFDA2\", \"\\u062A\\u062E\\u0649\",\n \"\\uFDA3\", \"\\u062A\\u0645\\u064A\",\n \"\\uFDA4\", \"\\u062A\\u0645\\u0649\",\n \"\\uFDA5\", \"\\u062C\\u0645\\u064A\",\n \"\\uFDA6\", \"\\u062C\\u062D\\u0649\",\n \"\\uFDA7\", \"\\u062C\\u0645\\u0649\",\n \"\\uFDA8\", \"\\u0633\\u062E\\u0649\",\n \"\\uFDA9\", \"\\u0635\\u062D\\u064A\",\n \"\\uFDAA\", \"\\u0634\\u062D\\u064A\",\n \"\\uFDAB\", \"\\u0636\\u062D\\u064A\",\n \"\\uFDAC\", \"\\u0644\\u062C\\u064A\",\n \"\\uFDAD\", \"\\u0644\\u0645\\u064A\",\n \"\\uFDAE\", \"\\u064A\\u062D\\u064A\",\n \"\\uFDAF\", \"\\u064A\\u062C\\u064A\",\n \"\\uFDB0\", \"\\u064A\\u0645\\u064A\",\n \"\\uFDB1\", \"\\u0645\\u0645\\u064A\",\n \"\\uFDB2\", \"\\u0642\\u0645\\u064A\",\n \"\\uFDB3\", \"\\u0646\\u062D\\u064A\",\n \"\\uFDB4\", \"\\u0642\\u0645\\u062D\",\n \"\\uFDB5\", \"\\u0644\\u062D\\u0645\",\n \"\\uFDB6\", \"\\u0639\\u0645\\u064A\",\n \"\\uFDB7\", \"\\u0643\\u0645\\u064A\",\n \"\\uFDB8\", \"\\u0646\\u062C\\u062D\",\n \"\\uFDB9\", \"\\u0645\\u062E\\u064A\",\n \"\\uFDBA\", \"\\u0644\\u062C\\u0645\",\n \"\\uFDBB\", \"\\u0643\\u0645\\u0645\",\n \"\\uFDBC\", \"\\u0644\\u062C\\u0645\",\n \"\\uFDBD\", \"\\u0646\\u062C\\u062D\",\n \"\\uFDBE\", \"\\u062C\\u062D\\u064A\",\n \"\\uFDBF\", \"\\u062D\\u062C\\u064A\",\n \"\\uFDC0\", \"\\u0645\\u062C\\u064A\",\n \"\\uFDC1\", \"\\u0641\\u0645\\u064A\",\n \"\\uFDC2\", \"\\u0628\\u062D\\u064A\",\n \"\\uFDC3\", \"\\u0643\\u0645\\u0645\",\n \"\\uFDC4\", \"\\u0639\\u062C\\u0645\",\n \"\\uFDC5\", \"\\u0635\\u0645\\u0645\",\n \"\\uFDC6\", \"\\u0633\\u062E\\u064A\",\n \"\\uFDC7\", \"\\u0646\\u062C\\u064A\",\n \"\\uFE49\", \"\\u203E\",\n \"\\uFE4A\", \"\\u203E\",\n \"\\uFE4B\", \"\\u203E\",\n \"\\uFE4C\", \"\\u203E\",\n \"\\uFE4D\", \"\\u005F\",\n \"\\uFE4E\", \"\\u005F\",\n \"\\uFE4F\", \"\\u005F\",\n \"\\uFE80\", \"\\u0621\",\n \"\\uFE81\", \"\\u0622\",\n \"\\uFE82\", \"\\u0622\",\n \"\\uFE83\", \"\\u0623\",\n \"\\uFE84\", \"\\u0623\",\n \"\\uFE85\", \"\\u0624\",\n \"\\uFE86\", \"\\u0624\",\n \"\\uFE87\", \"\\u0625\",\n \"\\uFE88\", \"\\u0625\",\n \"\\uFE89\", \"\\u0626\",\n \"\\uFE8A\", \"\\u0626\",\n \"\\uFE8B\", \"\\u0626\",\n \"\\uFE8C\", \"\\u0626\",\n \"\\uFE8D\", \"\\u0627\",\n \"\\uFE8E\", \"\\u0627\",\n \"\\uFE8F\", \"\\u0628\",\n \"\\uFE90\", \"\\u0628\",\n \"\\uFE91\", \"\\u0628\",\n \"\\uFE92\", \"\\u0628\",\n \"\\uFE93\", \"\\u0629\",\n \"\\uFE94\", \"\\u0629\",\n \"\\uFE95\", \"\\u062A\",\n \"\\uFE96\", \"\\u062A\",\n \"\\uFE97\", \"\\u062A\",\n \"\\uFE98\", \"\\u062A\",\n \"\\uFE99\", \"\\u062B\",\n \"\\uFE9A\", \"\\u062B\",\n \"\\uFE9B\", \"\\u062B\",\n \"\\uFE9C\", \"\\u062B\",\n \"\\uFE9D\", \"\\u062C\",\n \"\\uFE9E\", \"\\u062C\",\n \"\\uFE9F\", \"\\u062C\",\n \"\\uFEA0\", \"\\u062C\",\n \"\\uFEA1\", \"\\u062D\",\n \"\\uFEA2\", \"\\u062D\",\n \"\\uFEA3\", \"\\u062D\",\n \"\\uFEA4\", \"\\u062D\",\n \"\\uFEA5\", \"\\u062E\",\n \"\\uFEA6\", \"\\u062E\",\n \"\\uFEA7\", \"\\u062E\",\n \"\\uFEA8\", \"\\u062E\",\n \"\\uFEA9\", \"\\u062F\",\n \"\\uFEAA\", \"\\u062F\",\n \"\\uFEAB\", \"\\u0630\",\n \"\\uFEAC\", \"\\u0630\",\n \"\\uFEAD\", \"\\u0631\",\n \"\\uFEAE\", \"\\u0631\",\n \"\\uFEAF\", \"\\u0632\",\n \"\\uFEB0\", \"\\u0632\",\n \"\\uFEB1\", \"\\u0633\",\n \"\\uFEB2\", \"\\u0633\",\n \"\\uFEB3\", \"\\u0633\",\n \"\\uFEB4\", \"\\u0633\",\n \"\\uFEB5\", \"\\u0634\",\n \"\\uFEB6\", \"\\u0634\",\n \"\\uFEB7\", \"\\u0634\",\n \"\\uFEB8\", \"\\u0634\",\n \"\\uFEB9\", \"\\u0635\",\n \"\\uFEBA\", \"\\u0635\",\n \"\\uFEBB\", \"\\u0635\",\n \"\\uFEBC\", \"\\u0635\",\n \"\\uFEBD\", \"\\u0636\",\n \"\\uFEBE\", \"\\u0636\",\n \"\\uFEBF\", \"\\u0636\",\n \"\\uFEC0\", \"\\u0636\",\n \"\\uFEC1\", \"\\u0637\",\n \"\\uFEC2\", \"\\u0637\",\n \"\\uFEC3\", \"\\u0637\",\n \"\\uFEC4\", \"\\u0637\",\n \"\\uFEC5\", \"\\u0638\",\n \"\\uFEC6\", \"\\u0638\",\n \"\\uFEC7\", \"\\u0638\",\n \"\\uFEC8\", \"\\u0638\",\n \"\\uFEC9\", \"\\u0639\",\n \"\\uFECA\", \"\\u0639\",\n \"\\uFECB\", \"\\u0639\",\n \"\\uFECC\", \"\\u0639\",\n \"\\uFECD\", \"\\u063A\",\n \"\\uFECE\", \"\\u063A\",\n \"\\uFECF\", \"\\u063A\",\n \"\\uFED0\", \"\\u063A\",\n \"\\uFED1\", \"\\u0641\",\n \"\\uFED2\", \"\\u0641\",\n \"\\uFED3\", \"\\u0641\",\n \"\\uFED4\", \"\\u0641\",\n \"\\uFED5\", \"\\u0642\",\n \"\\uFED6\", \"\\u0642\",\n \"\\uFED7\", \"\\u0642\",\n \"\\uFED8\", \"\\u0642\",\n \"\\uFED9\", \"\\u0643\",\n \"\\uFEDA\", \"\\u0643\",\n \"\\uFEDB\", \"\\u0643\",\n \"\\uFEDC\", \"\\u0643\",\n \"\\uFEDD\", \"\\u0644\",\n \"\\uFEDE\", \"\\u0644\",\n \"\\uFEDF\", \"\\u0644\",\n \"\\uFEE0\", \"\\u0644\",\n \"\\uFEE1\", \"\\u0645\",\n \"\\uFEE2\", \"\\u0645\",\n \"\\uFEE3\", \"\\u0645\",\n \"\\uFEE4\", \"\\u0645\",\n \"\\uFEE5\", \"\\u0646\",\n \"\\uFEE6\", \"\\u0646\",\n \"\\uFEE7\", \"\\u0646\",\n \"\\uFEE8\", \"\\u0646\",\n \"\\uFEE9\", \"\\u0647\",\n \"\\uFEEA\", \"\\u0647\",\n \"\\uFEEB\", \"\\u0647\",\n \"\\uFEEC\", \"\\u0647\",\n \"\\uFEED\", \"\\u0648\",\n \"\\uFEEE\", \"\\u0648\",\n \"\\uFEEF\", \"\\u0649\",\n \"\\uFEF0\", \"\\u0649\",\n \"\\uFEF1\", \"\\u064A\",\n \"\\uFEF2\", \"\\u064A\",\n \"\\uFEF3\", \"\\u064A\",\n \"\\uFEF4\", \"\\u064A\",\n \"\\uFEF5\", \"\\u0644\\u0622\",\n \"\\uFEF6\", \"\\u0644\\u0622\",\n \"\\uFEF7\", \"\\u0644\\u0623\",\n \"\\uFEF8\", \"\\u0644\\u0623\",\n \"\\uFEF9\", \"\\u0644\\u0625\",\n \"\\uFEFA\", \"\\u0644\\u0625\",\n \"\\uFEFB\", \"\\u0644\\u0627\",\n \"\\uFEFC\", \"\\u0644\\u0627\",\n ];\n});\n\nfunction reverseIfRtl(chars) {\n const charsLength = chars.length;\n // Reverse an arabic ligature.\n if (charsLength <= 1 || !isRTLRangeFor(chars.charCodeAt(0))) {\n return chars;\n }\n const buf = [];\n for (let ii = charsLength - 1; ii >= 0; ii--) {\n buf.push(chars[ii]);\n }\n return buf.join(\"\");\n}\n\nconst SpecialCharRegExp = new RegExp(\"^(\\\\s)|(\\\\p{Mn})|(\\\\p{Cf})$\", \"u\");\nconst CategoryCache = new Map();\n\nfunction getCharUnicodeCategory(char) {\n const cachedCategory = CategoryCache.get(char);\n if (cachedCategory) {\n return cachedCategory;\n }\n const groups = char.match(SpecialCharRegExp);\n const category = {\n isWhitespace: !!(groups && groups[1]),\n isZeroWidthDiacritic: !!(groups && groups[2]),\n isInvisibleFormatMark: !!(groups && groups[3]),\n };\n CategoryCache.set(char, category);\n return category;\n}\n\nfunction clearUnicodeCaches() {\n CategoryCache.clear();\n}\n\nexport {\n clearUnicodeCaches,\n getCharUnicodeCategory,\n getNormalizedUnicodes,\n getUnicodeForGlyph,\n getUnicodeRangeFor,\n mapSpecialUnicodeValues,\n reverseIfRtl,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AnnotationActionEventType,\n AnnotationBorderStyleType,\n AnnotationFieldFlag,\n AnnotationFlag,\n AnnotationReplyType,\n AnnotationType,\n assert,\n escapeString,\n getModificationDate,\n isAscii,\n OPS,\n RenderingIntentFlag,\n shadow,\n stringToPDFString,\n stringToUTF16BEString,\n unreachable,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport { collectActions, getInheritableProperty } from \"./core_utils.js\";\nimport {\n createDefaultAppearance,\n parseDefaultAppearance,\n} from \"./default_appearance.js\";\nimport { Dict, isName, Name, Ref, RefSet } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { bidi } from \"./bidi.js\";\nimport { Catalog } from \"./catalog.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { FileSpec } from \"./file_spec.js\";\nimport { ObjectLoader } from \"./object_loader.js\";\nimport { OperatorList } from \"./operator_list.js\";\nimport { StringStream } from \"./stream.js\";\nimport { writeDict } from \"./writer.js\";\nimport { XFAFactory } from \"./xfa/factory.js\";\n\n// Represent the percentage of the height of a single-line field over\n// the font size.\n// Acrobat seems to use this value.\nconst LINE_FACTOR = 1.35;\n\nclass AnnotationFactory {\n /**\n * Create an `Annotation` object of the correct type for the given reference\n * to an annotation dictionary. This yields a promise that is resolved when\n * the `Annotation` object is constructed.\n *\n * @param {XRef} xref\n * @param {Object} ref\n * @param {PDFManager} pdfManager\n * @param {Object} idFactory\n * @param {boolean} collectFields\n * @returns {Promise} A promise that is resolved with an {Annotation}\n * instance.\n */\n static create(xref, ref, pdfManager, idFactory, collectFields) {\n return Promise.all([\n pdfManager.ensureCatalog(\"acroForm\"),\n // Only necessary to prevent the `pdfManager.docBaseUrl`-getter, used\n // with certain Annotations, from throwing and thus breaking parsing:\n pdfManager.ensureCatalog(\"baseUrl\"),\n pdfManager.ensureDoc(\"xfaDatasets\"),\n collectFields ? this._getPageIndex(xref, ref, pdfManager) : -1,\n ]).then(([acroForm, baseUrl, xfaDatasets, pageIndex]) =>\n pdfManager.ensure(this, \"_create\", [\n xref,\n ref,\n pdfManager,\n idFactory,\n acroForm,\n xfaDatasets,\n collectFields,\n pageIndex,\n ])\n );\n }\n\n /**\n * @private\n */\n static _create(\n xref,\n ref,\n pdfManager,\n idFactory,\n acroForm,\n xfaDatasets,\n collectFields,\n pageIndex = -1\n ) {\n const dict = xref.fetchIfRef(ref);\n if (!(dict instanceof Dict)) {\n return undefined;\n }\n\n const id =\n ref instanceof Ref ? ref.toString() : `annot_${idFactory.createObjId()}`;\n\n // Determine the annotation's subtype.\n let subtype = dict.get(\"Subtype\");\n subtype = subtype instanceof Name ? subtype.name : null;\n\n // Return the right annotation object based on the subtype and field type.\n const parameters = {\n xref,\n ref,\n dict,\n subtype,\n id,\n pdfManager,\n acroForm: acroForm instanceof Dict ? acroForm : Dict.empty,\n xfaDatasets,\n collectFields,\n pageIndex,\n };\n\n switch (subtype) {\n case \"Link\":\n return new LinkAnnotation(parameters);\n\n case \"Text\":\n return new TextAnnotation(parameters);\n\n case \"Widget\":\n let fieldType = getInheritableProperty({ dict, key: \"FT\" });\n fieldType = fieldType instanceof Name ? fieldType.name : null;\n\n switch (fieldType) {\n case \"Tx\":\n return new TextWidgetAnnotation(parameters);\n case \"Btn\":\n return new ButtonWidgetAnnotation(parameters);\n case \"Ch\":\n return new ChoiceWidgetAnnotation(parameters);\n case \"Sig\":\n return new SignatureWidgetAnnotation(parameters);\n }\n warn(\n `Unimplemented widget field type \"${fieldType}\", ` +\n \"falling back to base field type.\"\n );\n return new WidgetAnnotation(parameters);\n\n case \"Popup\":\n return new PopupAnnotation(parameters);\n\n case \"FreeText\":\n return new FreeTextAnnotation(parameters);\n\n case \"Line\":\n return new LineAnnotation(parameters);\n\n case \"Square\":\n return new SquareAnnotation(parameters);\n\n case \"Circle\":\n return new CircleAnnotation(parameters);\n\n case \"PolyLine\":\n return new PolylineAnnotation(parameters);\n\n case \"Polygon\":\n return new PolygonAnnotation(parameters);\n\n case \"Caret\":\n return new CaretAnnotation(parameters);\n\n case \"Ink\":\n return new InkAnnotation(parameters);\n\n case \"Highlight\":\n return new HighlightAnnotation(parameters);\n\n case \"Underline\":\n return new UnderlineAnnotation(parameters);\n\n case \"Squiggly\":\n return new SquigglyAnnotation(parameters);\n\n case \"StrikeOut\":\n return new StrikeOutAnnotation(parameters);\n\n case \"Stamp\":\n return new StampAnnotation(parameters);\n\n case \"FileAttachment\":\n return new FileAttachmentAnnotation(parameters);\n\n default:\n if (!collectFields) {\n if (!subtype) {\n warn(\"Annotation is missing the required /Subtype.\");\n } else {\n warn(\n `Unimplemented annotation type \"${subtype}\", ` +\n \"falling back to base annotation.\"\n );\n }\n }\n return new Annotation(parameters);\n }\n }\n\n static async _getPageIndex(xref, ref, pdfManager) {\n try {\n const annotDict = await xref.fetchIfRefAsync(ref);\n if (!(annotDict instanceof Dict)) {\n return -1;\n }\n const pageRef = annotDict.getRaw(\"P\");\n if (!(pageRef instanceof Ref)) {\n return -1;\n }\n const pageIndex = await pdfManager.ensureCatalog(\"getPageIndex\", [\n pageRef,\n ]);\n return pageIndex;\n } catch (ex) {\n warn(`_getPageIndex: \"${ex}\".`);\n return -1;\n }\n }\n}\n\nfunction getRgbColor(color, defaultColor = new Uint8ClampedArray(3)) {\n if (!Array.isArray(color)) {\n return defaultColor;\n }\n\n const rgbColor = defaultColor || new Uint8ClampedArray(3);\n switch (color.length) {\n case 0: // Transparent, which we indicate with a null value\n return null;\n\n case 1: // Convert grayscale to RGB\n ColorSpace.singletons.gray.getRgbItem(color, 0, rgbColor, 0);\n return rgbColor;\n\n case 3: // Convert RGB percentages to RGB\n ColorSpace.singletons.rgb.getRgbItem(color, 0, rgbColor, 0);\n return rgbColor;\n\n case 4: // Convert CMYK to RGB\n ColorSpace.singletons.cmyk.getRgbItem(color, 0, rgbColor, 0);\n return rgbColor;\n\n default:\n return defaultColor;\n }\n}\n\nfunction getQuadPoints(dict, rect) {\n if (!dict.has(\"QuadPoints\")) {\n return null;\n }\n\n // The region is described as a number of quadrilaterals.\n // Each quadrilateral must consist of eight coordinates.\n const quadPoints = dict.getArray(\"QuadPoints\");\n if (\n !Array.isArray(quadPoints) ||\n quadPoints.length === 0 ||\n quadPoints.length % 8 > 0\n ) {\n return null;\n }\n\n const quadPointsLists = [];\n for (let i = 0, ii = quadPoints.length / 8; i < ii; i++) {\n // Each series of eight numbers represents the coordinates for one\n // quadrilateral in the order [x1, y1, x2, y2, x3, y3, x4, y4].\n // Convert this to an array of objects with x and y coordinates.\n quadPointsLists.push([]);\n for (let j = i * 8, jj = i * 8 + 8; j < jj; j += 2) {\n const x = quadPoints[j];\n const y = quadPoints[j + 1];\n\n // The quadpoints should be ignored if any coordinate in the array\n // lies outside the region specified by the rectangle. The rectangle\n // can be `null` for markup annotations since their rectangle may be\n // incorrect (fixes bug 1538111).\n if (\n rect !== null &&\n (x < rect[0] || x > rect[2] || y < rect[1] || y > rect[3])\n ) {\n return null;\n }\n quadPointsLists[i].push({ x, y });\n }\n }\n\n // The PDF specification states in section 12.5.6.10 (figure 64) that the\n // order of the quadpoints should be bottom left, bottom right, top right\n // and top left. However, in practice PDF files use a different order,\n // namely bottom left, bottom right, top left and top right (this is also\n // mentioned on https://github.com/highkite/pdfAnnotate#QuadPoints), so\n // this is the actual order we should work with. However, the situation is\n // even worse since Adobe's own applications and other applications violate\n // the specification and create annotations with other orders, namely top\n // left, top right, bottom left and bottom right or even top left, top right,\n // bottom right and bottom left. To avoid inconsistency and broken rendering,\n // we normalize all lists to put the quadpoints in the same standard order\n // (see https://stackoverflow.com/a/10729881).\n return quadPointsLists.map(quadPointsList => {\n const [minX, maxX, minY, maxY] = quadPointsList.reduce(\n ([mX, MX, mY, MY], quadPoint) => [\n Math.min(mX, quadPoint.x),\n Math.max(MX, quadPoint.x),\n Math.min(mY, quadPoint.y),\n Math.max(MY, quadPoint.y),\n ],\n [Number.MAX_VALUE, Number.MIN_VALUE, Number.MAX_VALUE, Number.MIN_VALUE]\n );\n return [\n { x: minX, y: maxY },\n { x: maxX, y: maxY },\n { x: minX, y: minY },\n { x: maxX, y: minY },\n ];\n });\n}\n\nfunction getTransformMatrix(rect, bbox, matrix) {\n // 12.5.5: Algorithm: Appearance streams\n const [minX, minY, maxX, maxY] = Util.getAxialAlignedBoundingBox(\n bbox,\n matrix\n );\n if (minX === maxX || minY === maxY) {\n // From real-life file, bbox was [0, 0, 0, 0]. In this case,\n // just apply the transform for rect\n return [1, 0, 0, 1, rect[0], rect[1]];\n }\n\n const xRatio = (rect[2] - rect[0]) / (maxX - minX);\n const yRatio = (rect[3] - rect[1]) / (maxY - minY);\n return [\n xRatio,\n 0,\n 0,\n yRatio,\n rect[0] - minX * xRatio,\n rect[1] - minY * yRatio,\n ];\n}\n\nclass Annotation {\n constructor(params) {\n const dict = params.dict;\n\n this.setTitle(dict.get(\"T\"));\n this.setContents(dict.get(\"Contents\"));\n this.setModificationDate(dict.get(\"M\"));\n this.setFlags(dict.get(\"F\"));\n this.setRectangle(dict.getArray(\"Rect\"));\n this.setColor(dict.getArray(\"C\"));\n this.setBorderStyle(dict);\n this.setAppearance(dict);\n this.setBorderAndBackgroundColors(dict.get(\"MK\"));\n\n this._streams = [];\n if (this.appearance) {\n this._streams.push(this.appearance);\n }\n\n // Expose public properties using a data object.\n this.data = {\n annotationFlags: this.flags,\n borderStyle: this.borderStyle,\n color: this.color,\n backgroundColor: this.backgroundColor,\n borderColor: this.borderColor,\n contentsObj: this._contents,\n hasAppearance: !!this.appearance,\n id: params.id,\n modificationDate: this.modificationDate,\n rect: this.rectangle,\n subtype: params.subtype,\n hasOwnCanvas: false,\n };\n\n if (params.collectFields) {\n // Fields can act as container for other fields and have\n // some actions even if no Annotation inherit from them.\n // Those fields can be referenced by CO (calculation order).\n const kids = dict.get(\"Kids\");\n if (Array.isArray(kids)) {\n const kidIds = [];\n for (const kid of kids) {\n if (kid instanceof Ref) {\n kidIds.push(kid.toString());\n }\n }\n if (kidIds.length !== 0) {\n this.data.kidIds = kidIds;\n }\n }\n\n this.data.actions = collectActions(\n params.xref,\n dict,\n AnnotationActionEventType\n );\n this.data.fieldName = this._constructFieldName(dict);\n this.data.pageIndex = params.pageIndex;\n }\n\n this._fallbackFontDict = null;\n }\n\n /**\n * @private\n */\n _hasFlag(flags, flag) {\n return !!(flags & flag);\n }\n\n /**\n * @private\n */\n _isViewable(flags) {\n return (\n !this._hasFlag(flags, AnnotationFlag.INVISIBLE) &&\n !this._hasFlag(flags, AnnotationFlag.NOVIEW)\n );\n }\n\n /**\n * @private\n */\n _isPrintable(flags) {\n return (\n this._hasFlag(flags, AnnotationFlag.PRINT) &&\n !this._hasFlag(flags, AnnotationFlag.INVISIBLE)\n );\n }\n\n /**\n * Check if the annotation must be displayed by taking into account\n * the value found in the annotationStorage which may have been set\n * through JS.\n *\n * @public\n * @memberof Annotation\n * @param {AnnotationStorage} [annotationStorage] - Storage for annotation\n */\n mustBeViewed(annotationStorage) {\n const storageEntry =\n annotationStorage && annotationStorage.get(this.data.id);\n if (storageEntry && storageEntry.hidden !== undefined) {\n return !storageEntry.hidden;\n }\n return this.viewable && !this._hasFlag(this.flags, AnnotationFlag.HIDDEN);\n }\n\n /**\n * Check if the annotation must be printed by taking into account\n * the value found in the annotationStorage which may have been set\n * through JS.\n *\n * @public\n * @memberof Annotation\n * @param {AnnotationStorage} [annotationStorage] - Storage for annotation\n */\n mustBePrinted(annotationStorage) {\n const storageEntry =\n annotationStorage && annotationStorage.get(this.data.id);\n if (storageEntry && storageEntry.print !== undefined) {\n return storageEntry.print;\n }\n return this.printable;\n }\n\n /**\n * @type {boolean}\n */\n get viewable() {\n if (this.data.quadPoints === null) {\n return false;\n }\n if (this.flags === 0) {\n return true;\n }\n return this._isViewable(this.flags);\n }\n\n /**\n * @type {boolean}\n */\n get printable() {\n if (this.data.quadPoints === null) {\n return false;\n }\n if (this.flags === 0) {\n return false;\n }\n return this._isPrintable(this.flags);\n }\n\n /**\n * @private\n */\n _parseStringHelper(data) {\n const str = typeof data === \"string\" ? stringToPDFString(data) : \"\";\n const dir = str && bidi(str).dir === \"rtl\" ? \"rtl\" : \"ltr\";\n\n return { str, dir };\n }\n\n /**\n * Set the title.\n *\n * @param {string} title - The title of the annotation, used e.g. with\n * PopupAnnotations.\n */\n setTitle(title) {\n this._title = this._parseStringHelper(title);\n }\n\n /**\n * Set the contents.\n *\n * @param {string} contents - Text to display for the annotation or, if the\n * type of annotation does not display text, a\n * description of the annotation's contents\n */\n setContents(contents) {\n this._contents = this._parseStringHelper(contents);\n }\n\n /**\n * Set the modification date.\n *\n * @public\n * @memberof Annotation\n * @param {string} modificationDate - PDF date string that indicates when the\n * annotation was last modified\n */\n setModificationDate(modificationDate) {\n this.modificationDate =\n typeof modificationDate === \"string\" ? modificationDate : null;\n }\n\n /**\n * Set the flags.\n *\n * @public\n * @memberof Annotation\n * @param {number} flags - Unsigned 32-bit integer specifying annotation\n * characteristics\n * @see {@link shared/util.js}\n */\n setFlags(flags) {\n this.flags = Number.isInteger(flags) && flags > 0 ? flags : 0;\n }\n\n /**\n * Check if a provided flag is set.\n *\n * @public\n * @memberof Annotation\n * @param {number} flag - Hexadecimal representation for an annotation\n * characteristic\n * @returns {boolean}\n * @see {@link shared/util.js}\n */\n hasFlag(flag) {\n return this._hasFlag(this.flags, flag);\n }\n\n /**\n * Set the rectangle.\n *\n * @public\n * @memberof Annotation\n * @param {Array} rectangle - The rectangle array with exactly four entries\n */\n setRectangle(rectangle) {\n if (Array.isArray(rectangle) && rectangle.length === 4) {\n this.rectangle = Util.normalizeRect(rectangle);\n } else {\n this.rectangle = [0, 0, 0, 0];\n }\n }\n\n /**\n * Set the color and take care of color space conversion.\n * The default value is black, in RGB color space.\n *\n * @public\n * @memberof Annotation\n * @param {Array} color - The color array containing either 0\n * (transparent), 1 (grayscale), 3 (RGB) or\n * 4 (CMYK) elements\n */\n setColor(color) {\n this.color = getRgbColor(color);\n }\n\n /**\n * Set the line endings; should only be used with specific annotation types.\n * @param {Array} lineEndings - The line endings array.\n */\n setLineEndings(lineEndings) {\n this.lineEndings = [\"None\", \"None\"]; // The default values.\n\n if (Array.isArray(lineEndings) && lineEndings.length === 2) {\n for (let i = 0; i < 2; i++) {\n const obj = lineEndings[i];\n\n if (obj instanceof Name) {\n switch (obj.name) {\n case \"None\":\n continue;\n case \"Square\":\n case \"Circle\":\n case \"Diamond\":\n case \"OpenArrow\":\n case \"ClosedArrow\":\n case \"Butt\":\n case \"ROpenArrow\":\n case \"RClosedArrow\":\n case \"Slash\":\n this.lineEndings[i] = obj.name;\n continue;\n }\n }\n warn(`Ignoring invalid lineEnding: ${obj}`);\n }\n }\n }\n\n /**\n * Set the color for background and border if any.\n * The default values are transparent.\n *\n * @public\n * @memberof Annotation\n * @param {Dict} mk - The MK dictionary\n */\n setBorderAndBackgroundColors(mk) {\n if (mk instanceof Dict) {\n this.borderColor = getRgbColor(mk.getArray(\"BC\"), null);\n this.backgroundColor = getRgbColor(mk.getArray(\"BG\"), null);\n } else {\n this.borderColor = this.backgroundColor = null;\n }\n }\n\n /**\n * Set the border style (as AnnotationBorderStyle object).\n *\n * @public\n * @memberof Annotation\n * @param {Dict} borderStyle - The border style dictionary\n */\n setBorderStyle(borderStyle) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(this.rectangle, \"setRectangle must have been called previously.\");\n }\n\n this.borderStyle = new AnnotationBorderStyle();\n if (!(borderStyle instanceof Dict)) {\n return;\n }\n if (borderStyle.has(\"BS\")) {\n const dict = borderStyle.get(\"BS\");\n const dictType = dict.get(\"Type\");\n\n if (!dictType || isName(dictType, \"Border\")) {\n this.borderStyle.setWidth(dict.get(\"W\"), this.rectangle);\n this.borderStyle.setStyle(dict.get(\"S\"));\n this.borderStyle.setDashArray(dict.getArray(\"D\"));\n }\n } else if (borderStyle.has(\"Border\")) {\n const array = borderStyle.getArray(\"Border\");\n if (Array.isArray(array) && array.length >= 3) {\n this.borderStyle.setHorizontalCornerRadius(array[0]);\n this.borderStyle.setVerticalCornerRadius(array[1]);\n this.borderStyle.setWidth(array[2], this.rectangle);\n\n if (array.length === 4) {\n // Dash array available\n this.borderStyle.setDashArray(array[3], /* forceStyle = */ true);\n }\n }\n } else {\n // There are no border entries in the dictionary. According to the\n // specification, we should draw a solid border of width 1 in that\n // case, but Adobe Reader did not implement that part of the\n // specification and instead draws no border at all, so we do the same.\n // See also https://github.com/mozilla/pdf.js/issues/6179.\n this.borderStyle.setWidth(0);\n }\n }\n\n /**\n * Set the (normal) appearance.\n *\n * @public\n * @memberof Annotation\n * @param {Dict} dict - The annotation's data dictionary\n */\n setAppearance(dict) {\n this.appearance = null;\n\n const appearanceStates = dict.get(\"AP\");\n if (!(appearanceStates instanceof Dict)) {\n return;\n }\n\n // In case the normal appearance is a stream, then it is used directly.\n const normalAppearanceState = appearanceStates.get(\"N\");\n if (normalAppearanceState instanceof BaseStream) {\n this.appearance = normalAppearanceState;\n return;\n }\n if (!(normalAppearanceState instanceof Dict)) {\n return;\n }\n\n // In case the normal appearance is a dictionary, the `AS` entry provides\n // the key of the stream in this dictionary.\n const as = dict.get(\"AS\");\n if (!(as instanceof Name) || !normalAppearanceState.has(as.name)) {\n return;\n }\n this.appearance = normalAppearanceState.get(as.name);\n }\n\n loadResources(keys, appearance) {\n return appearance.dict.getAsync(\"Resources\").then(resources => {\n if (!resources) {\n return undefined;\n }\n\n const objectLoader = new ObjectLoader(resources, keys, resources.xref);\n return objectLoader.load().then(function () {\n return resources;\n });\n });\n }\n\n getOperatorList(evaluator, task, intent, renderForms, annotationStorage) {\n const data = this.data;\n let appearance = this.appearance;\n const isUsingOwnCanvas =\n data.hasOwnCanvas && intent & RenderingIntentFlag.DISPLAY;\n if (!appearance) {\n if (!isUsingOwnCanvas) {\n return Promise.resolve(new OperatorList());\n }\n appearance = new StringStream(\"\");\n appearance.dict = new Dict();\n }\n\n const appearanceDict = appearance.dict;\n const resourcesPromise = this.loadResources(\n [\"ExtGState\", \"ColorSpace\", \"Pattern\", \"Shading\", \"XObject\", \"Font\"],\n appearance\n );\n const bbox = appearanceDict.getArray(\"BBox\") || [0, 0, 1, 1];\n const matrix = appearanceDict.getArray(\"Matrix\") || [1, 0, 0, 1, 0, 0];\n const transform = getTransformMatrix(data.rect, bbox, matrix);\n\n return resourcesPromise.then(resources => {\n const opList = new OperatorList();\n opList.addOp(OPS.beginAnnotation, [\n data.id,\n data.rect,\n transform,\n matrix,\n isUsingOwnCanvas,\n ]);\n\n return evaluator\n .getOperatorList({\n stream: appearance,\n task,\n resources,\n operatorList: opList,\n fallbackFontDict: this._fallbackFontDict,\n })\n .then(() => {\n opList.addOp(OPS.endAnnotation, []);\n this.reset();\n return opList;\n });\n });\n }\n\n async save(evaluator, task, annotationStorage) {\n return null;\n }\n\n /**\n * Get field data for usage in JS sandbox.\n *\n * Field object is defined here:\n * https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/js_api_reference.pdf#page=16\n *\n * @public\n * @memberof Annotation\n * @returns {Object | null}\n */\n getFieldObject() {\n if (this.data.kidIds) {\n return {\n id: this.data.id,\n actions: this.data.actions,\n name: this.data.fieldName,\n strokeColor: this.data.borderColor,\n fillColor: this.data.backgroundColor,\n type: \"\",\n kidIds: this.data.kidIds,\n page: this.data.pageIndex,\n };\n }\n return null;\n }\n\n /**\n * Reset the annotation.\n *\n * This involves resetting the various streams that are either cached on the\n * annotation instance or created during its construction.\n *\n * @public\n * @memberof Annotation\n */\n reset() {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n this.appearance &&\n !this._streams.includes(this.appearance)\n ) {\n unreachable(\"The appearance stream should always be reset.\");\n }\n\n for (const stream of this._streams) {\n stream.reset();\n }\n }\n\n /**\n * Construct the (fully qualified) field name from the (partial) field\n * names of the field and its ancestors.\n *\n * @private\n * @memberof Annotation\n * @param {Dict} dict - Complete widget annotation dictionary\n * @returns {string}\n */\n _constructFieldName(dict) {\n // Both the `Parent` and `T` fields are optional. While at least one of\n // them should be provided, bad PDF generators may fail to do so.\n if (!dict.has(\"T\") && !dict.has(\"Parent\")) {\n warn(\"Unknown field name, falling back to empty field name.\");\n return \"\";\n }\n\n // If no parent exists, the partial and fully qualified names are equal.\n if (!dict.has(\"Parent\")) {\n return stringToPDFString(dict.get(\"T\"));\n }\n\n // Form the fully qualified field name by appending the partial name to\n // the parent's fully qualified name, separated by a period.\n const fieldName = [];\n if (dict.has(\"T\")) {\n fieldName.unshift(stringToPDFString(dict.get(\"T\")));\n }\n\n let loopDict = dict;\n const visited = new RefSet();\n if (dict.objId) {\n visited.put(dict.objId);\n }\n while (loopDict.has(\"Parent\")) {\n loopDict = loopDict.get(\"Parent\");\n if (\n !(loopDict instanceof Dict) ||\n (loopDict.objId && visited.has(loopDict.objId))\n ) {\n // Even though it is not allowed according to the PDF specification,\n // bad PDF generators may provide a `Parent` entry that is not a\n // dictionary, but `null` for example (issue 8143).\n //\n // If parent has been already visited, it means that we're\n // in an infinite loop.\n break;\n }\n if (loopDict.objId) {\n visited.put(loopDict.objId);\n }\n\n if (loopDict.has(\"T\")) {\n fieldName.unshift(stringToPDFString(loopDict.get(\"T\")));\n }\n }\n return fieldName.join(\".\");\n }\n}\n\n/**\n * Contains all data regarding an annotation's border style.\n */\nclass AnnotationBorderStyle {\n constructor() {\n this.width = 1;\n this.style = AnnotationBorderStyleType.SOLID;\n this.dashArray = [3];\n this.horizontalCornerRadius = 0;\n this.verticalCornerRadius = 0;\n }\n\n /**\n * Set the width.\n *\n * @public\n * @memberof AnnotationBorderStyle\n * @param {number} width - The width.\n * @param {Array} rect - The annotation `Rect` entry.\n */\n setWidth(width, rect = [0, 0, 0, 0]) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n Array.isArray(rect) && rect.length === 4,\n \"A valid `rect` parameter must be provided.\"\n );\n }\n\n // Some corrupt PDF generators may provide the width as a `Name`,\n // rather than as a number (fixes issue 10385).\n if (width instanceof Name) {\n this.width = 0; // This is consistent with the behaviour in Adobe Reader.\n return;\n }\n if (typeof width === \"number\") {\n if (width > 0) {\n const maxWidth = (rect[2] - rect[0]) / 2;\n const maxHeight = (rect[3] - rect[1]) / 2;\n\n // Ignore large `width`s, since they lead to the Annotation overflowing\n // the size set by the `Rect` entry thus causing the `annotationLayer`\n // to render it over the surrounding document (fixes bug1552113.pdf).\n if (\n maxWidth > 0 &&\n maxHeight > 0 &&\n (width > maxWidth || width > maxHeight)\n ) {\n warn(`AnnotationBorderStyle.setWidth - ignoring width: ${width}`);\n width = 1;\n }\n }\n this.width = width;\n }\n }\n\n /**\n * Set the style.\n *\n * @public\n * @memberof AnnotationBorderStyle\n * @param {Name} style - The annotation style.\n * @see {@link shared/util.js}\n */\n setStyle(style) {\n if (!(style instanceof Name)) {\n return;\n }\n switch (style.name) {\n case \"S\":\n this.style = AnnotationBorderStyleType.SOLID;\n break;\n\n case \"D\":\n this.style = AnnotationBorderStyleType.DASHED;\n break;\n\n case \"B\":\n this.style = AnnotationBorderStyleType.BEVELED;\n break;\n\n case \"I\":\n this.style = AnnotationBorderStyleType.INSET;\n break;\n\n case \"U\":\n this.style = AnnotationBorderStyleType.UNDERLINE;\n break;\n\n default:\n break;\n }\n }\n\n /**\n * Set the dash array.\n *\n * @public\n * @memberof AnnotationBorderStyle\n * @param {Array} dashArray - The dash array with at least one element\n * @param {boolean} [forceStyle]\n */\n setDashArray(dashArray, forceStyle = false) {\n // We validate the dash array, but we do not use it because CSS does not\n // allow us to change spacing of dashes. For more information, visit\n // http://www.w3.org/TR/css3-background/#the-border-style.\n if (Array.isArray(dashArray) && dashArray.length > 0) {\n // According to the PDF specification: the elements in `dashArray`\n // shall be numbers that are nonnegative and not all equal to zero.\n let isValid = true;\n let allZeros = true;\n for (const element of dashArray) {\n const validNumber = +element >= 0;\n if (!validNumber) {\n isValid = false;\n break;\n } else if (element > 0) {\n allZeros = false;\n }\n }\n if (isValid && !allZeros) {\n this.dashArray = dashArray;\n\n if (forceStyle) {\n // Even though we cannot use the dash array in the display layer,\n // at least ensure that we use the correct border-style.\n this.setStyle(Name.get(\"D\"));\n }\n } else {\n this.width = 0; // Adobe behavior when the array is invalid.\n }\n } else if (dashArray) {\n this.width = 0; // Adobe behavior when the array is invalid.\n }\n }\n\n /**\n * Set the horizontal corner radius (from a Border dictionary).\n *\n * @public\n * @memberof AnnotationBorderStyle\n * @param {number} radius - The horizontal corner radius.\n */\n setHorizontalCornerRadius(radius) {\n if (Number.isInteger(radius)) {\n this.horizontalCornerRadius = radius;\n }\n }\n\n /**\n * Set the vertical corner radius (from a Border dictionary).\n *\n * @public\n * @memberof AnnotationBorderStyle\n * @param {number} radius - The vertical corner radius.\n */\n setVerticalCornerRadius(radius) {\n if (Number.isInteger(radius)) {\n this.verticalCornerRadius = radius;\n }\n }\n}\n\nclass MarkupAnnotation extends Annotation {\n constructor(parameters) {\n super(parameters);\n\n const dict = parameters.dict;\n\n if (dict.has(\"IRT\")) {\n const rawIRT = dict.getRaw(\"IRT\");\n this.data.inReplyTo = rawIRT instanceof Ref ? rawIRT.toString() : null;\n\n const rt = dict.get(\"RT\");\n this.data.replyType =\n rt instanceof Name ? rt.name : AnnotationReplyType.REPLY;\n }\n\n if (this.data.replyType === AnnotationReplyType.GROUP) {\n // Subordinate annotations in a group should inherit\n // the group attributes from the primary annotation.\n const parent = dict.get(\"IRT\");\n\n this.setTitle(parent.get(\"T\"));\n this.data.titleObj = this._title;\n\n this.setContents(parent.get(\"Contents\"));\n this.data.contentsObj = this._contents;\n\n if (!parent.has(\"CreationDate\")) {\n this.data.creationDate = null;\n } else {\n this.setCreationDate(parent.get(\"CreationDate\"));\n this.data.creationDate = this.creationDate;\n }\n\n if (!parent.has(\"M\")) {\n this.data.modificationDate = null;\n } else {\n this.setModificationDate(parent.get(\"M\"));\n this.data.modificationDate = this.modificationDate;\n }\n\n this.data.hasPopup = parent.has(\"Popup\");\n\n if (!parent.has(\"C\")) {\n // Fall back to the default background color.\n this.data.color = null;\n } else {\n this.setColor(parent.getArray(\"C\"));\n this.data.color = this.color;\n }\n } else {\n this.data.titleObj = this._title;\n\n this.setCreationDate(dict.get(\"CreationDate\"));\n this.data.creationDate = this.creationDate;\n\n this.data.hasPopup = dict.has(\"Popup\");\n\n if (!dict.has(\"C\")) {\n // Fall back to the default background color.\n this.data.color = null;\n }\n }\n\n if (dict.has(\"RC\")) {\n this.data.richText = XFAFactory.getRichTextAsHtml(dict.get(\"RC\"));\n }\n }\n\n /**\n * Set the creation date.\n *\n * @public\n * @memberof MarkupAnnotation\n * @param {string} creationDate - PDF date string that indicates when the\n * annotation was originally created\n */\n setCreationDate(creationDate) {\n this.creationDate = typeof creationDate === \"string\" ? creationDate : null;\n }\n\n _setDefaultAppearance({\n xref,\n extra,\n strokeColor,\n fillColor,\n blendMode,\n strokeAlpha,\n fillAlpha,\n pointsCallback,\n }) {\n let minX = Number.MAX_VALUE;\n let minY = Number.MAX_VALUE;\n let maxX = Number.MIN_VALUE;\n let maxY = Number.MIN_VALUE;\n\n const buffer = [\"q\"];\n if (extra) {\n buffer.push(extra);\n }\n if (strokeColor) {\n buffer.push(`${strokeColor[0]} ${strokeColor[1]} ${strokeColor[2]} RG`);\n }\n if (fillColor) {\n buffer.push(`${fillColor[0]} ${fillColor[1]} ${fillColor[2]} rg`);\n }\n\n let pointsArray = this.data.quadPoints;\n if (!pointsArray) {\n // If there are no quadpoints, the rectangle should be used instead.\n // Convert the rectangle definition to a points array similar to how the\n // quadpoints are defined.\n pointsArray = [\n [\n { x: this.rectangle[0], y: this.rectangle[3] },\n { x: this.rectangle[2], y: this.rectangle[3] },\n { x: this.rectangle[0], y: this.rectangle[1] },\n { x: this.rectangle[2], y: this.rectangle[1] },\n ],\n ];\n }\n\n for (const points of pointsArray) {\n const [mX, MX, mY, MY] = pointsCallback(buffer, points);\n minX = Math.min(minX, mX);\n maxX = Math.max(maxX, MX);\n minY = Math.min(minY, mY);\n maxY = Math.max(maxY, MY);\n }\n buffer.push(\"Q\");\n\n const formDict = new Dict(xref);\n const appearanceStreamDict = new Dict(xref);\n appearanceStreamDict.set(\"Subtype\", Name.get(\"Form\"));\n\n const appearanceStream = new StringStream(buffer.join(\" \"));\n appearanceStream.dict = appearanceStreamDict;\n formDict.set(\"Fm0\", appearanceStream);\n\n const gsDict = new Dict(xref);\n if (blendMode) {\n gsDict.set(\"BM\", Name.get(blendMode));\n }\n if (typeof strokeAlpha === \"number\") {\n gsDict.set(\"CA\", strokeAlpha);\n }\n if (typeof fillAlpha === \"number\") {\n gsDict.set(\"ca\", fillAlpha);\n }\n\n const stateDict = new Dict(xref);\n stateDict.set(\"GS0\", gsDict);\n\n const resources = new Dict(xref);\n resources.set(\"ExtGState\", stateDict);\n resources.set(\"XObject\", formDict);\n\n const appearanceDict = new Dict(xref);\n appearanceDict.set(\"Resources\", resources);\n const bbox = (this.data.rect = [minX, minY, maxX, maxY]);\n appearanceDict.set(\"BBox\", bbox);\n\n this.appearance = new StringStream(\"/GS0 gs /Fm0 Do\");\n this.appearance.dict = appearanceDict;\n\n // This method is only called if there is no appearance for the annotation,\n // so `this.appearance` is not pushed yet in the `Annotation` constructor.\n this._streams.push(this.appearance, appearanceStream);\n }\n}\n\nclass WidgetAnnotation extends Annotation {\n constructor(params) {\n super(params);\n\n const dict = params.dict;\n const data = this.data;\n this.ref = params.ref;\n\n data.annotationType = AnnotationType.WIDGET;\n if (data.fieldName === undefined) {\n data.fieldName = this._constructFieldName(dict);\n }\n if (data.actions === undefined) {\n data.actions = collectActions(\n params.xref,\n dict,\n AnnotationActionEventType\n );\n }\n\n let fieldValue = getInheritableProperty({\n dict,\n key: \"V\",\n getArray: true,\n });\n data.fieldValue = this._decodeFormValue(fieldValue);\n\n const defaultFieldValue = getInheritableProperty({\n dict,\n key: \"DV\",\n getArray: true,\n });\n data.defaultFieldValue = this._decodeFormValue(defaultFieldValue);\n\n if (fieldValue === undefined && params.xfaDatasets) {\n // Try to figure out if we have something in the xfa dataset.\n const path = this._title.str;\n if (path) {\n this._hasValueFromXFA = true;\n data.fieldValue = fieldValue = params.xfaDatasets.getValue(path);\n }\n }\n\n // When no \"V\" entry exists, let the fieldValue fallback to the \"DV\" entry\n // (fixes issue13823.pdf).\n if (fieldValue === undefined && data.defaultFieldValue !== null) {\n data.fieldValue = data.defaultFieldValue;\n }\n\n data.alternativeText = stringToPDFString(dict.get(\"TU\") || \"\");\n\n const defaultAppearance =\n getInheritableProperty({ dict, key: \"DA\" }) || params.acroForm.get(\"DA\");\n this._defaultAppearance =\n typeof defaultAppearance === \"string\" ? defaultAppearance : \"\";\n data.defaultAppearanceData = parseDefaultAppearance(\n this._defaultAppearance\n );\n\n const fieldType = getInheritableProperty({ dict, key: \"FT\" });\n data.fieldType = fieldType instanceof Name ? fieldType.name : null;\n\n const localResources = getInheritableProperty({ dict, key: \"DR\" });\n const acroFormResources = params.acroForm.get(\"DR\");\n const appearanceResources =\n this.appearance && this.appearance.dict.get(\"Resources\");\n\n this._fieldResources = {\n localResources,\n acroFormResources,\n appearanceResources,\n mergedResources: Dict.merge({\n xref: params.xref,\n dictArray: [localResources, appearanceResources, acroFormResources],\n mergeSubDicts: true,\n }),\n };\n\n data.fieldFlags = getInheritableProperty({ dict, key: \"Ff\" });\n if (!Number.isInteger(data.fieldFlags) || data.fieldFlags < 0) {\n data.fieldFlags = 0;\n }\n\n data.readOnly = this.hasFieldFlag(AnnotationFieldFlag.READONLY);\n data.hidden = this._hasFlag(data.annotationFlags, AnnotationFlag.HIDDEN);\n }\n\n /**\n * Decode the given form value.\n *\n * @private\n * @memberof WidgetAnnotation\n * @param {Array|Name|string} formValue - The (possibly encoded)\n * form value.\n * @returns {Array|string|null}\n */\n _decodeFormValue(formValue) {\n if (Array.isArray(formValue)) {\n return formValue\n .filter(item => typeof item === \"string\")\n .map(item => stringToPDFString(item));\n } else if (formValue instanceof Name) {\n return stringToPDFString(formValue.name);\n } else if (typeof formValue === \"string\") {\n return stringToPDFString(formValue);\n }\n return null;\n }\n\n /**\n * Check if a provided field flag is set.\n *\n * @public\n * @memberof WidgetAnnotation\n * @param {number} flag - Hexadecimal representation for an annotation\n * field characteristic\n * @returns {boolean}\n * @see {@link shared/util.js}\n */\n hasFieldFlag(flag) {\n return !!(this.data.fieldFlags & flag);\n }\n\n getOperatorList(evaluator, task, intent, renderForms, annotationStorage) {\n // Do not render form elements on the canvas when interactive forms are\n // enabled. The display layer is responsible for rendering them instead.\n if (renderForms && !(this instanceof SignatureWidgetAnnotation)) {\n return Promise.resolve(new OperatorList());\n }\n\n if (!this._hasText) {\n return super.getOperatorList(\n evaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n );\n }\n\n return this._getAppearance(evaluator, task, annotationStorage).then(\n content => {\n if (this.appearance && content === null) {\n return super.getOperatorList(\n evaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n );\n }\n\n const operatorList = new OperatorList();\n\n // Even if there is an appearance stream, ignore it. This is the\n // behaviour used by Adobe Reader.\n if (!this._defaultAppearance || content === null) {\n return operatorList;\n }\n\n const matrix = [1, 0, 0, 1, 0, 0];\n const bbox = [\n 0,\n 0,\n this.data.rect[2] - this.data.rect[0],\n this.data.rect[3] - this.data.rect[1],\n ];\n\n const transform = getTransformMatrix(this.data.rect, bbox, matrix);\n operatorList.addOp(OPS.beginAnnotation, [\n this.data.id,\n this.data.rect,\n transform,\n matrix,\n ]);\n\n const stream = new StringStream(content);\n return evaluator\n .getOperatorList({\n stream,\n task,\n resources: this._fieldResources.mergedResources,\n operatorList,\n })\n .then(function () {\n operatorList.addOp(OPS.endAnnotation, []);\n return operatorList;\n });\n }\n );\n }\n\n async save(evaluator, task, annotationStorage) {\n const storageEntry = annotationStorage\n ? annotationStorage.get(this.data.id)\n : undefined;\n let value = storageEntry && storageEntry.value;\n if (value === this.data.fieldValue || value === undefined) {\n if (!this._hasValueFromXFA) {\n return null;\n }\n value = value || this.data.fieldValue;\n }\n\n // Value can be an array (with choice list and multiple selections)\n if (\n !this._hasValueFromXFA &&\n Array.isArray(value) &&\n Array.isArray(this.data.fieldValue) &&\n value.length === this.data.fieldValue.length &&\n value.every((x, i) => x === this.data.fieldValue[i])\n ) {\n return null;\n }\n\n let appearance = await this._getAppearance(\n evaluator,\n task,\n annotationStorage\n );\n if (appearance === null) {\n return null;\n }\n const { xref } = evaluator;\n\n const dict = xref.fetchIfRef(this.ref);\n if (!(dict instanceof Dict)) {\n return null;\n }\n\n const bbox = [\n 0,\n 0,\n this.data.rect[2] - this.data.rect[0],\n this.data.rect[3] - this.data.rect[1],\n ];\n\n const xfa = {\n path: stringToPDFString(dict.get(\"T\") || \"\"),\n value,\n };\n\n const newRef = xref.getNewRef();\n const AP = new Dict(xref);\n AP.set(\"N\", newRef);\n\n const encrypt = xref.encrypt;\n let originalTransform = null;\n let newTransform = null;\n if (encrypt) {\n originalTransform = encrypt.createCipherTransform(\n this.ref.num,\n this.ref.gen\n );\n newTransform = encrypt.createCipherTransform(newRef.num, newRef.gen);\n appearance = newTransform.encryptString(appearance);\n }\n\n const encoder = val => (isAscii(val) ? val : stringToUTF16BEString(val));\n dict.set(\"V\", Array.isArray(value) ? value.map(encoder) : encoder(value));\n dict.set(\"AP\", AP);\n dict.set(\"M\", `D:${getModificationDate()}`);\n\n const appearanceDict = new Dict(xref);\n appearanceDict.set(\"Length\", appearance.length);\n appearanceDict.set(\"Subtype\", Name.get(\"Form\"));\n appearanceDict.set(\"Resources\", this._getSaveFieldResources(xref));\n appearanceDict.set(\"BBox\", bbox);\n\n const bufferOriginal = [`${this.ref.num} ${this.ref.gen} obj\\n`];\n writeDict(dict, bufferOriginal, originalTransform);\n bufferOriginal.push(\"\\nendobj\\n\");\n\n const bufferNew = [`${newRef.num} ${newRef.gen} obj\\n`];\n writeDict(appearanceDict, bufferNew, newTransform);\n bufferNew.push(\" stream\\n\", appearance, \"\\nendstream\\nendobj\\n\");\n\n return [\n // data for the original object\n // V field changed + reference for new AP\n { ref: this.ref, data: bufferOriginal.join(\"\"), xfa },\n // data for the new AP\n { ref: newRef, data: bufferNew.join(\"\"), xfa: null },\n ];\n }\n\n async _getAppearance(evaluator, task, annotationStorage) {\n const isPassword = this.hasFieldFlag(AnnotationFieldFlag.PASSWORD);\n if (isPassword) {\n return null;\n }\n const storageEntry = annotationStorage\n ? annotationStorage.get(this.data.id)\n : undefined;\n let value =\n storageEntry && (storageEntry.formattedValue || storageEntry.value);\n if (value === undefined) {\n if (!this._hasValueFromXFA || this.appearance) {\n // The annotation hasn't been rendered so use the appearance.\n return null;\n }\n // The annotation has its value in XFA datasets but not in the V field.\n value = this.data.fieldValue;\n if (!value) {\n return \"\";\n }\n }\n\n assert(typeof value === \"string\", \"Expected `value` to be a string.\");\n\n value = value.trim();\n\n if (value === \"\") {\n // the field is empty: nothing to render\n return \"\";\n }\n\n let lineCount = -1;\n if (this.data.multiLine) {\n lineCount = value.split(/\\r\\n|\\r|\\n/).length;\n }\n\n const defaultPadding = 2;\n const hPadding = defaultPadding;\n const totalHeight = this.data.rect[3] - this.data.rect[1];\n const totalWidth = this.data.rect[2] - this.data.rect[0];\n\n if (!this._defaultAppearance) {\n // The DA is required and must be a string.\n // If there is no font named Helvetica in the resource dictionary,\n // the evaluator will fall back to a default font.\n // Doing so prevents exceptions and allows saving/printing\n // the file as expected.\n this.data.defaultAppearanceData = parseDefaultAppearance(\n (this._defaultAppearance = \"/Helvetica 0 Tf 0 g\")\n );\n }\n\n const font = await this._getFontData(evaluator, task);\n const [defaultAppearance, fontSize] = this._computeFontSize(\n totalHeight - defaultPadding,\n totalWidth - 2 * hPadding,\n value,\n font,\n lineCount\n );\n\n let descent = font.descent;\n if (isNaN(descent)) {\n descent = 0;\n }\n\n const vPadding = defaultPadding + Math.abs(descent) * fontSize;\n const alignment = this.data.textAlignment;\n\n if (this.data.multiLine) {\n return this._getMultilineAppearance(\n defaultAppearance,\n value,\n font,\n fontSize,\n totalWidth,\n totalHeight,\n alignment,\n hPadding,\n vPadding\n );\n }\n\n // TODO: need to handle chars which are not in the font.\n const encodedString = font.encodeString(value).join(\"\");\n\n if (this.data.comb) {\n return this._getCombAppearance(\n defaultAppearance,\n font,\n encodedString,\n totalWidth,\n hPadding,\n vPadding\n );\n }\n\n if (alignment === 0 || alignment > 2) {\n // Left alignment: nothing to do\n return (\n \"/Tx BMC q BT \" +\n defaultAppearance +\n ` 1 0 0 1 ${hPadding} ${vPadding} Tm (${escapeString(\n encodedString\n )}) Tj` +\n \" ET Q EMC\"\n );\n }\n\n const renderedText = this._renderText(\n encodedString,\n font,\n fontSize,\n totalWidth,\n alignment,\n hPadding,\n vPadding\n );\n return (\n \"/Tx BMC q BT \" +\n defaultAppearance +\n ` 1 0 0 1 0 0 Tm ${renderedText}` +\n \" ET Q EMC\"\n );\n }\n\n async _getFontData(evaluator, task) {\n const operatorList = new OperatorList();\n const initialState = {\n font: null,\n clone() {\n return this;\n },\n };\n\n const { fontName, fontSize } = this.data.defaultAppearanceData;\n await evaluator.handleSetFont(\n this._fieldResources.mergedResources,\n [fontName && Name.get(fontName), fontSize],\n /* fontRef = */ null,\n operatorList,\n task,\n initialState,\n /* fallbackFontDict = */ null\n );\n\n return initialState.font;\n }\n\n _getTextWidth(text, font) {\n return (\n font\n .charsToGlyphs(text)\n .reduce((width, glyph) => width + glyph.width, 0) / 1000\n );\n }\n\n _computeFontSize(height, width, text, font, lineCount) {\n let { fontSize } = this.data.defaultAppearanceData;\n if (!fontSize) {\n // A zero value for size means that the font shall be auto-sized:\n // its size shall be computed as a function of the height of the\n // annotation rectangle (see 12.7.3.3).\n\n const roundWithTwoDigits = x => Math.floor(x * 100) / 100;\n\n if (lineCount === -1) {\n const textWidth = this._getTextWidth(text, font);\n fontSize = roundWithTwoDigits(\n Math.min(height / LINE_FACTOR, width / textWidth)\n );\n } else {\n const lines = text.split(/\\r\\n?|\\n/);\n const cachedLines = [];\n for (const line of lines) {\n const encoded = font.encodeString(line).join(\"\");\n const glyphs = font.charsToGlyphs(encoded);\n const positions = font.getCharPositions(encoded);\n cachedLines.push({\n line: encoded,\n glyphs,\n positions,\n });\n }\n\n const isTooBig = fsize => {\n // Return true when the text doesn't fit the given height.\n let totalHeight = 0;\n for (const cache of cachedLines) {\n const chunks = this._splitLine(null, font, fsize, width, cache);\n totalHeight += chunks.length * fsize;\n if (totalHeight > height) {\n return true;\n }\n }\n return false;\n };\n\n // Hard to guess how many lines there are.\n // The field may have been sized to have 10 lines\n // and the user entered only 1 so if we get font size from\n // height and number of lines then we'll get something too big.\n // So we compute a fake number of lines based on height and\n // a font size equal to 12 (this is the default font size in\n // Acrobat).\n // Then we'll adjust font size to what we have really.\n fontSize = 12;\n let lineHeight = fontSize * LINE_FACTOR;\n let numberOfLines = Math.round(height / lineHeight);\n numberOfLines = Math.max(numberOfLines, lineCount);\n\n while (true) {\n lineHeight = height / numberOfLines;\n fontSize = roundWithTwoDigits(lineHeight / LINE_FACTOR);\n\n if (isTooBig(fontSize)) {\n numberOfLines++;\n continue;\n }\n\n break;\n }\n }\n\n const { fontName, fontColor } = this.data.defaultAppearanceData;\n this._defaultAppearance = createDefaultAppearance({\n fontSize,\n fontName,\n fontColor,\n });\n }\n return [this._defaultAppearance, fontSize];\n }\n\n _renderText(text, font, fontSize, totalWidth, alignment, hPadding, vPadding) {\n let shift;\n if (alignment === 1) {\n // Center\n const width = this._getTextWidth(text, font) * fontSize;\n shift = (totalWidth - width) / 2;\n } else if (alignment === 2) {\n // Right\n const width = this._getTextWidth(text, font) * fontSize;\n shift = totalWidth - width - hPadding;\n } else {\n shift = hPadding;\n }\n shift = shift.toFixed(2);\n vPadding = vPadding.toFixed(2);\n\n return `${shift} ${vPadding} Td (${escapeString(text)}) Tj`;\n }\n\n /**\n * @private\n */\n _getSaveFieldResources(xref) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n this.data.defaultAppearanceData,\n \"Expected `_defaultAppearanceData` to have been set.\"\n );\n }\n const { localResources, appearanceResources, acroFormResources } =\n this._fieldResources;\n\n const fontName =\n this.data.defaultAppearanceData &&\n this.data.defaultAppearanceData.fontName;\n if (!fontName) {\n return localResources || Dict.empty;\n }\n\n for (const resources of [localResources, appearanceResources]) {\n if (resources instanceof Dict) {\n const localFont = resources.get(\"Font\");\n if (localFont instanceof Dict && localFont.has(fontName)) {\n return resources;\n }\n }\n }\n if (acroFormResources instanceof Dict) {\n const acroFormFont = acroFormResources.get(\"Font\");\n if (acroFormFont instanceof Dict && acroFormFont.has(fontName)) {\n const subFontDict = new Dict(xref);\n subFontDict.set(fontName, acroFormFont.getRaw(fontName));\n\n const subResourcesDict = new Dict(xref);\n subResourcesDict.set(\"Font\", subFontDict);\n\n return Dict.merge({\n xref,\n dictArray: [subResourcesDict, localResources],\n mergeSubDicts: true,\n });\n }\n }\n return localResources || Dict.empty;\n }\n\n getFieldObject() {\n return null;\n }\n}\n\nclass TextWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n\n this._hasText = true;\n\n const dict = params.dict;\n\n // The field value is always a string.\n if (typeof this.data.fieldValue !== \"string\") {\n this.data.fieldValue = \"\";\n }\n\n // Determine the alignment of text in the field.\n let alignment = getInheritableProperty({ dict, key: \"Q\" });\n if (!Number.isInteger(alignment) || alignment < 0 || alignment > 2) {\n alignment = null;\n }\n this.data.textAlignment = alignment;\n\n // Determine the maximum length of text in the field.\n let maximumLength = getInheritableProperty({ dict, key: \"MaxLen\" });\n if (!Number.isInteger(maximumLength) || maximumLength < 0) {\n maximumLength = null;\n }\n this.data.maxLen = maximumLength;\n\n // Process field flags for the display layer.\n this.data.multiLine = this.hasFieldFlag(AnnotationFieldFlag.MULTILINE);\n this.data.comb =\n this.hasFieldFlag(AnnotationFieldFlag.COMB) &&\n !this.hasFieldFlag(AnnotationFieldFlag.MULTILINE) &&\n !this.hasFieldFlag(AnnotationFieldFlag.PASSWORD) &&\n !this.hasFieldFlag(AnnotationFieldFlag.FILESELECT) &&\n this.data.maxLen !== null;\n }\n\n _getCombAppearance(defaultAppearance, font, text, width, hPadding, vPadding) {\n const combWidth = (width / this.data.maxLen).toFixed(2);\n const buf = [];\n const positions = font.getCharPositions(text);\n for (const [start, end] of positions) {\n buf.push(`(${escapeString(text.substring(start, end))}) Tj`);\n }\n\n const renderedComb = buf.join(` ${combWidth} 0 Td `);\n return (\n \"/Tx BMC q BT \" +\n defaultAppearance +\n ` 1 0 0 1 ${hPadding} ${vPadding} Tm ${renderedComb}` +\n \" ET Q EMC\"\n );\n }\n\n _getMultilineAppearance(\n defaultAppearance,\n text,\n font,\n fontSize,\n width,\n height,\n alignment,\n hPadding,\n vPadding\n ) {\n const lines = text.split(/\\r\\n?|\\n/);\n const buf = [];\n const totalWidth = width - 2 * hPadding;\n for (const line of lines) {\n const chunks = this._splitLine(line, font, fontSize, totalWidth);\n for (const chunk of chunks) {\n const padding = buf.length === 0 ? hPadding : 0;\n buf.push(\n this._renderText(\n chunk,\n font,\n fontSize,\n width,\n alignment,\n padding,\n -fontSize // <0 because a line is below the previous one\n )\n );\n }\n }\n\n const renderedText = buf.join(\"\\n\");\n return (\n \"/Tx BMC q BT \" +\n defaultAppearance +\n ` 1 0 0 1 0 ${height} Tm ${renderedText}` +\n \" ET Q EMC\"\n );\n }\n\n _splitLine(line, font, fontSize, width, cache = {}) {\n // TODO: need to handle chars which are not in the font.\n line = cache.line || font.encodeString(line).join(\"\");\n\n const glyphs = cache.glyphs || font.charsToGlyphs(line);\n\n if (glyphs.length <= 1) {\n // Nothing to split\n return [line];\n }\n\n const positions = cache.positions || font.getCharPositions(line);\n const scale = fontSize / 1000;\n const chunks = [];\n\n let lastSpacePosInStringStart = -1,\n lastSpacePosInStringEnd = -1,\n lastSpacePos = -1,\n startChunk = 0,\n currentWidth = 0;\n\n for (let i = 0, ii = glyphs.length; i < ii; i++) {\n const [start, end] = positions[i];\n const glyph = glyphs[i];\n const glyphWidth = glyph.width * scale;\n if (glyph.unicode === \" \") {\n if (currentWidth + glyphWidth > width) {\n // We can break here\n chunks.push(line.substring(startChunk, start));\n startChunk = start;\n currentWidth = glyphWidth;\n lastSpacePosInStringStart = -1;\n lastSpacePos = -1;\n } else {\n currentWidth += glyphWidth;\n lastSpacePosInStringStart = start;\n lastSpacePosInStringEnd = end;\n lastSpacePos = i;\n }\n } else {\n if (currentWidth + glyphWidth > width) {\n // We must break to the last white position (if available)\n if (lastSpacePosInStringStart !== -1) {\n chunks.push(line.substring(startChunk, lastSpacePosInStringEnd));\n startChunk = lastSpacePosInStringEnd;\n i = lastSpacePos + 1;\n lastSpacePosInStringStart = -1;\n currentWidth = 0;\n } else {\n // Just break in the middle of the word\n chunks.push(line.substring(startChunk, start));\n startChunk = start;\n currentWidth = glyphWidth;\n }\n } else {\n currentWidth += glyphWidth;\n }\n }\n }\n\n if (startChunk < line.length) {\n chunks.push(line.substring(startChunk, line.length));\n }\n\n return chunks;\n }\n\n getFieldObject() {\n return {\n id: this.data.id,\n value: this.data.fieldValue,\n defaultValue: this.data.defaultFieldValue || \"\",\n multiline: this.data.multiLine,\n password: this.hasFieldFlag(AnnotationFieldFlag.PASSWORD),\n charLimit: this.data.maxLen,\n comb: this.data.comb,\n editable: !this.data.readOnly,\n hidden: this.data.hidden,\n name: this.data.fieldName,\n rect: this.data.rect,\n actions: this.data.actions,\n page: this.data.pageIndex,\n strokeColor: this.data.borderColor,\n fillColor: this.data.backgroundColor,\n type: \"text\",\n };\n }\n}\n\nclass ButtonWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n\n this.checkedAppearance = null;\n this.uncheckedAppearance = null;\n\n this.data.checkBox =\n !this.hasFieldFlag(AnnotationFieldFlag.RADIO) &&\n !this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON);\n this.data.radioButton =\n this.hasFieldFlag(AnnotationFieldFlag.RADIO) &&\n !this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON);\n this.data.pushButton = this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON);\n this.data.isTooltipOnly = false;\n\n if (this.data.checkBox) {\n this._processCheckBox(params);\n } else if (this.data.radioButton) {\n this._processRadioButton(params);\n } else if (this.data.pushButton) {\n this.data.hasOwnCanvas = true;\n this._processPushButton(params);\n } else {\n warn(\"Invalid field flags for button widget annotation\");\n }\n }\n\n async getOperatorList(\n evaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n ) {\n if (this.data.pushButton) {\n return super.getOperatorList(\n evaluator,\n task,\n intent,\n false, // we use normalAppearance to render the button\n annotationStorage\n );\n }\n\n let value = null;\n if (annotationStorage) {\n const storageEntry = annotationStorage.get(this.data.id);\n value = storageEntry ? storageEntry.value : null;\n }\n\n if (value === null) {\n // Nothing in the annotationStorage.\n if (this.appearance) {\n // But we've a default appearance so use it.\n return super.getOperatorList(\n evaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n );\n }\n\n // There is no default appearance so use the one derived\n // from the field value.\n if (this.data.checkBox) {\n value = this.data.fieldValue === this.data.exportValue;\n } else {\n value = this.data.fieldValue === this.data.buttonValue;\n }\n }\n\n const appearance = value\n ? this.checkedAppearance\n : this.uncheckedAppearance;\n if (appearance) {\n const savedAppearance = this.appearance;\n this.appearance = appearance;\n const operatorList = super.getOperatorList(\n evaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n );\n this.appearance = savedAppearance;\n return operatorList;\n }\n\n // No appearance\n return new OperatorList();\n }\n\n async save(evaluator, task, annotationStorage) {\n if (this.data.checkBox) {\n return this._saveCheckbox(evaluator, task, annotationStorage);\n }\n\n if (this.data.radioButton) {\n return this._saveRadioButton(evaluator, task, annotationStorage);\n }\n\n // Nothing to save\n return null;\n }\n\n async _saveCheckbox(evaluator, task, annotationStorage) {\n if (!annotationStorage) {\n return null;\n }\n const storageEntry = annotationStorage.get(this.data.id);\n const value = storageEntry && storageEntry.value;\n if (value === undefined) {\n return null;\n }\n\n const defaultValue = this.data.fieldValue === this.data.exportValue;\n if (defaultValue === value) {\n return null;\n }\n\n const dict = evaluator.xref.fetchIfRef(this.ref);\n if (!(dict instanceof Dict)) {\n return null;\n }\n\n const xfa = {\n path: stringToPDFString(dict.get(\"T\") || \"\"),\n value: value ? this.data.exportValue : \"\",\n };\n\n const name = Name.get(value ? this.data.exportValue : \"Off\");\n dict.set(\"V\", name);\n dict.set(\"AS\", name);\n dict.set(\"M\", `D:${getModificationDate()}`);\n\n const encrypt = evaluator.xref.encrypt;\n let originalTransform = null;\n if (encrypt) {\n originalTransform = encrypt.createCipherTransform(\n this.ref.num,\n this.ref.gen\n );\n }\n\n const buffer = [`${this.ref.num} ${this.ref.gen} obj\\n`];\n writeDict(dict, buffer, originalTransform);\n buffer.push(\"\\nendobj\\n\");\n\n return [{ ref: this.ref, data: buffer.join(\"\"), xfa }];\n }\n\n async _saveRadioButton(evaluator, task, annotationStorage) {\n if (!annotationStorage) {\n return null;\n }\n const storageEntry = annotationStorage.get(this.data.id);\n const value = storageEntry && storageEntry.value;\n if (value === undefined) {\n return null;\n }\n\n const defaultValue = this.data.fieldValue === this.data.buttonValue;\n if (defaultValue === value) {\n return null;\n }\n\n const dict = evaluator.xref.fetchIfRef(this.ref);\n if (!(dict instanceof Dict)) {\n return null;\n }\n\n const xfa = {\n path: stringToPDFString(dict.get(\"T\") || \"\"),\n value: value ? this.data.buttonValue : \"\",\n };\n\n const name = Name.get(value ? this.data.buttonValue : \"Off\");\n let parentBuffer = null;\n const encrypt = evaluator.xref.encrypt;\n\n if (value) {\n if (this.parent instanceof Ref) {\n const parent = evaluator.xref.fetch(this.parent);\n let parentTransform = null;\n if (encrypt) {\n parentTransform = encrypt.createCipherTransform(\n this.parent.num,\n this.parent.gen\n );\n }\n parent.set(\"V\", name);\n parentBuffer = [`${this.parent.num} ${this.parent.gen} obj\\n`];\n writeDict(parent, parentBuffer, parentTransform);\n parentBuffer.push(\"\\nendobj\\n\");\n } else if (this.parent instanceof Dict) {\n this.parent.set(\"V\", name);\n }\n }\n\n dict.set(\"AS\", name);\n dict.set(\"M\", `D:${getModificationDate()}`);\n\n let originalTransform = null;\n if (encrypt) {\n originalTransform = encrypt.createCipherTransform(\n this.ref.num,\n this.ref.gen\n );\n }\n\n const buffer = [`${this.ref.num} ${this.ref.gen} obj\\n`];\n writeDict(dict, buffer, originalTransform);\n buffer.push(\"\\nendobj\\n\");\n\n const newRefs = [{ ref: this.ref, data: buffer.join(\"\"), xfa }];\n if (parentBuffer !== null) {\n newRefs.push({\n ref: this.parent,\n data: parentBuffer.join(\"\"),\n xfa: null,\n });\n }\n\n return newRefs;\n }\n\n _getDefaultCheckedAppearance(params, type) {\n const width = this.data.rect[2] - this.data.rect[0];\n const height = this.data.rect[3] - this.data.rect[1];\n const bbox = [0, 0, width, height];\n\n // Ratio used to have a mark slightly smaller than the bbox.\n const FONT_RATIO = 0.8;\n const fontSize = Math.min(width, height) * FONT_RATIO;\n\n // Char Metrics\n // Widths came from widths for ZapfDingbats.\n // Heights are guessed with Fontforge and FoxitDingbats.pfb.\n let metrics, char;\n if (type === \"check\") {\n // Char 33 (2713 in unicode)\n metrics = {\n width: 0.755 * fontSize,\n height: 0.705 * fontSize,\n };\n char = \"\\x33\";\n } else if (type === \"disc\") {\n // Char 6C (25CF in unicode)\n metrics = {\n width: 0.791 * fontSize,\n height: 0.705 * fontSize,\n };\n char = \"\\x6C\";\n } else {\n unreachable(`_getDefaultCheckedAppearance - unsupported type: ${type}`);\n }\n\n // Values to center the glyph in the bbox.\n const xShift = (width - metrics.width) / 2;\n const yShift = (height - metrics.height) / 2;\n\n const appearance = `q BT /PdfJsZaDb ${fontSize} Tf 0 g ${xShift} ${yShift} Td (${char}) Tj ET Q`;\n\n const appearanceStreamDict = new Dict(params.xref);\n appearanceStreamDict.set(\"FormType\", 1);\n appearanceStreamDict.set(\"Subtype\", Name.get(\"Form\"));\n appearanceStreamDict.set(\"Type\", Name.get(\"XObject\"));\n appearanceStreamDict.set(\"BBox\", bbox);\n appearanceStreamDict.set(\"Matrix\", [1, 0, 0, 1, 0, 0]);\n appearanceStreamDict.set(\"Length\", appearance.length);\n\n const resources = new Dict(params.xref);\n const font = new Dict(params.xref);\n font.set(\"PdfJsZaDb\", this.fallbackFontDict);\n resources.set(\"Font\", font);\n\n appearanceStreamDict.set(\"Resources\", resources);\n\n this.checkedAppearance = new StringStream(appearance);\n this.checkedAppearance.dict = appearanceStreamDict;\n\n this._streams.push(this.checkedAppearance);\n }\n\n _processCheckBox(params) {\n const customAppearance = params.dict.get(\"AP\");\n if (!(customAppearance instanceof Dict)) {\n return;\n }\n\n const normalAppearance = customAppearance.get(\"N\");\n if (!(normalAppearance instanceof Dict)) {\n return;\n }\n\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=1722036.\n // If we've an AS and a V then take AS.\n const asValue = this._decodeFormValue(params.dict.get(\"AS\"));\n if (typeof asValue === \"string\") {\n this.data.fieldValue = asValue;\n }\n\n const yes =\n this.data.fieldValue !== null && this.data.fieldValue !== \"Off\"\n ? this.data.fieldValue\n : \"Yes\";\n\n const exportValues = normalAppearance.getKeys();\n if (exportValues.length === 0) {\n exportValues.push(\"Off\", yes);\n } else if (exportValues.length === 1) {\n if (exportValues[0] === \"Off\") {\n exportValues.push(yes);\n } else {\n exportValues.unshift(\"Off\");\n }\n } else if (exportValues.includes(yes)) {\n exportValues.length = 0;\n exportValues.push(\"Off\", yes);\n } else {\n const otherYes = exportValues.find(v => v !== \"Off\");\n exportValues.length = 0;\n exportValues.push(\"Off\", otherYes);\n }\n\n // Don't use a \"V\" entry pointing to a non-existent appearance state,\n // see e.g. bug1720411.pdf where it's an *empty* Name-instance.\n if (!exportValues.includes(this.data.fieldValue)) {\n this.data.fieldValue = \"Off\";\n }\n\n this.data.exportValue = exportValues[1];\n\n this.checkedAppearance =\n normalAppearance.get(this.data.exportValue) || null;\n this.uncheckedAppearance = normalAppearance.get(\"Off\") || null;\n\n if (this.checkedAppearance) {\n this._streams.push(this.checkedAppearance);\n } else {\n this._getDefaultCheckedAppearance(params, \"check\");\n }\n if (this.uncheckedAppearance) {\n this._streams.push(this.uncheckedAppearance);\n }\n this._fallbackFontDict = this.fallbackFontDict;\n }\n\n _processRadioButton(params) {\n this.data.fieldValue = this.data.buttonValue = null;\n\n // The parent field's `V` entry holds a `Name` object with the appearance\n // state of whichever child field is currently in the \"on\" state.\n const fieldParent = params.dict.get(\"Parent\");\n if (fieldParent instanceof Dict) {\n this.parent = params.dict.getRaw(\"Parent\");\n const fieldParentValue = fieldParent.get(\"V\");\n if (fieldParentValue instanceof Name) {\n this.data.fieldValue = this._decodeFormValue(fieldParentValue);\n }\n }\n\n // The button's value corresponds to its appearance state.\n const appearanceStates = params.dict.get(\"AP\");\n if (!(appearanceStates instanceof Dict)) {\n return;\n }\n const normalAppearance = appearanceStates.get(\"N\");\n if (!(normalAppearance instanceof Dict)) {\n return;\n }\n for (const key of normalAppearance.getKeys()) {\n if (key !== \"Off\") {\n this.data.buttonValue = this._decodeFormValue(key);\n break;\n }\n }\n\n this.checkedAppearance =\n normalAppearance.get(this.data.buttonValue) || null;\n this.uncheckedAppearance = normalAppearance.get(\"Off\") || null;\n\n if (this.checkedAppearance) {\n this._streams.push(this.checkedAppearance);\n } else {\n this._getDefaultCheckedAppearance(params, \"disc\");\n }\n if (this.uncheckedAppearance) {\n this._streams.push(this.uncheckedAppearance);\n }\n this._fallbackFontDict = this.fallbackFontDict;\n }\n\n _processPushButton(params) {\n if (\n !params.dict.has(\"A\") &&\n !params.dict.has(\"AA\") &&\n !this.data.alternativeText\n ) {\n warn(\"Push buttons without action dictionaries are not supported\");\n return;\n }\n\n this.data.isTooltipOnly = !params.dict.has(\"A\") && !params.dict.has(\"AA\");\n\n Catalog.parseDestDictionary({\n destDict: params.dict,\n resultObj: this.data,\n docBaseUrl: params.pdfManager.docBaseUrl,\n });\n }\n\n getFieldObject() {\n let type = \"button\";\n let exportValues;\n if (this.data.checkBox) {\n type = \"checkbox\";\n exportValues = this.data.exportValue;\n } else if (this.data.radioButton) {\n type = \"radiobutton\";\n exportValues = this.data.buttonValue;\n }\n return {\n id: this.data.id,\n value: this.data.fieldValue || \"Off\",\n defaultValue: this.data.defaultFieldValue,\n exportValues,\n editable: !this.data.readOnly,\n name: this.data.fieldName,\n rect: this.data.rect,\n hidden: this.data.hidden,\n actions: this.data.actions,\n page: this.data.pageIndex,\n strokeColor: this.data.borderColor,\n fillColor: this.data.backgroundColor,\n type,\n };\n }\n\n get fallbackFontDict() {\n const dict = new Dict();\n dict.set(\"BaseFont\", Name.get(\"ZapfDingbats\"));\n dict.set(\"Type\", Name.get(\"FallbackType\"));\n dict.set(\"Subtype\", Name.get(\"FallbackType\"));\n dict.set(\"Encoding\", Name.get(\"ZapfDingbatsEncoding\"));\n\n return shadow(this, \"fallbackFontDict\", dict);\n }\n}\n\nclass ChoiceWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n\n // Determine the options. The options array may consist of strings or\n // arrays. If the array consists of arrays, then the first element of\n // each array is the export value and the second element of each array is\n // the display value. If the array consists of strings, then these\n // represent both the export and display value. In this case, we convert\n // it to an array of arrays as well for convenience in the display layer.\n // Note that the specification does not state that the `Opt` field is\n // inheritable, but in practice PDF generators do make annotations\n // inherit the options from a parent annotation (issue 8094).\n this.data.options = [];\n\n const options = getInheritableProperty({ dict: params.dict, key: \"Opt\" });\n if (Array.isArray(options)) {\n const xref = params.xref;\n for (let i = 0, ii = options.length; i < ii; i++) {\n const option = xref.fetchIfRef(options[i]);\n const isOptionArray = Array.isArray(option);\n\n this.data.options[i] = {\n exportValue: this._decodeFormValue(\n isOptionArray ? xref.fetchIfRef(option[0]) : option\n ),\n displayValue: this._decodeFormValue(\n isOptionArray ? xref.fetchIfRef(option[1]) : option\n ),\n };\n }\n }\n\n // The field value can be `null` if no item is selected, a string if one\n // item is selected or an array of strings if multiple items are selected.\n // For consistency in the API and convenience in the display layer, we\n // always make the field value an array with zero, one or multiple items.\n if (typeof this.data.fieldValue === \"string\") {\n this.data.fieldValue = [this.data.fieldValue];\n } else if (!this.data.fieldValue) {\n this.data.fieldValue = [];\n }\n\n // Process field flags for the display layer.\n this.data.combo = this.hasFieldFlag(AnnotationFieldFlag.COMBO);\n this.data.multiSelect = this.hasFieldFlag(AnnotationFieldFlag.MULTISELECT);\n this._hasText = true;\n }\n\n getFieldObject() {\n const type = this.data.combo ? \"combobox\" : \"listbox\";\n const value =\n this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : null;\n return {\n id: this.data.id,\n value,\n defaultValue: this.data.defaultFieldValue,\n editable: !this.data.readOnly,\n name: this.data.fieldName,\n rect: this.data.rect,\n numItems: this.data.fieldValue.length,\n multipleSelection: this.data.multiSelect,\n hidden: this.data.hidden,\n actions: this.data.actions,\n items: this.data.options,\n page: this.data.pageIndex,\n strokeColor: this.data.borderColor,\n fillColor: this.data.backgroundColor,\n type,\n };\n }\n\n async _getAppearance(evaluator, task, annotationStorage) {\n if (this.data.combo) {\n return super._getAppearance(evaluator, task, annotationStorage);\n }\n\n if (!annotationStorage) {\n return null;\n }\n const storageEntry = annotationStorage.get(this.data.id);\n let exportedValue = storageEntry && storageEntry.value;\n if (exportedValue === undefined) {\n // The annotation hasn't been rendered so use the appearance\n return null;\n }\n\n if (!Array.isArray(exportedValue)) {\n exportedValue = [exportedValue];\n }\n\n const defaultPadding = 2;\n const hPadding = defaultPadding;\n const totalHeight = this.data.rect[3] - this.data.rect[1];\n const totalWidth = this.data.rect[2] - this.data.rect[0];\n const lineCount = this.data.options.length;\n const valueIndices = [];\n for (let i = 0; i < lineCount; i++) {\n const { exportValue } = this.data.options[i];\n if (exportedValue.includes(exportValue)) {\n valueIndices.push(i);\n }\n }\n\n if (!this._defaultAppearance) {\n // The DA is required and must be a string.\n // If there is no font named Helvetica in the resource dictionary,\n // the evaluator will fall back to a default font.\n // Doing so prevents exceptions and allows saving/printing\n // the file as expected.\n this.data.defaultAppearanceData = parseDefaultAppearance(\n (this._defaultAppearance = \"/Helvetica 0 Tf 0 g\")\n );\n }\n\n const font = await this._getFontData(evaluator, task);\n\n let defaultAppearance;\n let { fontSize } = this.data.defaultAppearanceData;\n if (!fontSize) {\n const lineHeight = (totalHeight - defaultPadding) / lineCount;\n let lineWidth = -1;\n let value;\n for (const { displayValue } of this.data.options) {\n const width = this._getTextWidth(displayValue);\n if (width > lineWidth) {\n lineWidth = width;\n value = displayValue;\n }\n }\n\n [defaultAppearance, fontSize] = this._computeFontSize(\n lineHeight,\n totalWidth - 2 * hPadding,\n value,\n font,\n -1\n );\n } else {\n defaultAppearance = this._defaultAppearance;\n }\n\n const lineHeight = fontSize * LINE_FACTOR;\n const vPadding = (lineHeight - fontSize) / 2;\n const numberOfVisibleLines = Math.floor(totalHeight / lineHeight);\n\n let firstIndex;\n if (valueIndices.length === 1) {\n const valuePosition = valueIndices[0];\n const indexInPage = valuePosition % numberOfVisibleLines;\n firstIndex = valuePosition - indexInPage;\n } else {\n // If nothing is selected (valueIndice.length === 0), we render\n // from the first element.\n firstIndex = valueIndices.length ? valueIndices[0] : 0;\n }\n const end = Math.min(firstIndex + numberOfVisibleLines + 1, lineCount);\n\n const buf = [\"/Tx BMC q\", `1 1 ${totalWidth} ${totalHeight} re W n`];\n\n if (valueIndices.length) {\n // This value has been copied/pasted from annotation-choice-widget.pdf.\n // It corresponds to rgb(153, 193, 218).\n buf.push(\"0.600006 0.756866 0.854904 rg\");\n\n // Highlight the lines in filling a blue rectangle at the selected\n // positions.\n for (const index of valueIndices) {\n if (firstIndex <= index && index < end) {\n buf.push(\n `1 ${\n totalHeight - (index - firstIndex + 1) * lineHeight\n } ${totalWidth} ${lineHeight} re f`\n );\n }\n }\n }\n buf.push(\"BT\", defaultAppearance, `1 0 0 1 0 ${totalHeight} Tm`);\n\n for (let i = firstIndex; i < end; i++) {\n const { displayValue } = this.data.options[i];\n const hpadding = i === firstIndex ? hPadding : 0;\n const vpadding = i === firstIndex ? vPadding : 0;\n buf.push(\n this._renderText(\n displayValue,\n font,\n fontSize,\n totalWidth,\n 0,\n hpadding,\n -lineHeight + vpadding\n )\n );\n }\n\n buf.push(\"ET Q EMC\");\n\n return buf.join(\"\\n\");\n }\n}\n\nclass SignatureWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n\n // Unset the fieldValue since it's (most likely) a `Dict` which is\n // non-serializable and will thus cause errors when sending annotations\n // to the main-thread (issue 10347).\n this.data.fieldValue = null;\n }\n\n getFieldObject() {\n return {\n id: this.data.id,\n value: null,\n page: this.data.pageIndex,\n type: \"signature\",\n };\n }\n}\n\nclass TextAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n const DEFAULT_ICON_SIZE = 22; // px\n\n super(parameters);\n\n const dict = parameters.dict;\n this.data.annotationType = AnnotationType.TEXT;\n\n if (this.data.hasAppearance) {\n this.data.name = \"NoIcon\";\n } else {\n this.data.rect[1] = this.data.rect[3] - DEFAULT_ICON_SIZE;\n this.data.rect[2] = this.data.rect[0] + DEFAULT_ICON_SIZE;\n this.data.name = dict.has(\"Name\") ? dict.get(\"Name\").name : \"Note\";\n }\n\n if (dict.has(\"State\")) {\n this.data.state = dict.get(\"State\") || null;\n this.data.stateModel = dict.get(\"StateModel\") || null;\n } else {\n this.data.state = null;\n this.data.stateModel = null;\n }\n }\n}\n\nclass LinkAnnotation extends Annotation {\n constructor(params) {\n super(params);\n\n this.data.annotationType = AnnotationType.LINK;\n\n const quadPoints = getQuadPoints(params.dict, this.rectangle);\n if (quadPoints) {\n this.data.quadPoints = quadPoints;\n }\n\n Catalog.parseDestDictionary({\n destDict: params.dict,\n resultObj: this.data,\n docBaseUrl: params.pdfManager.docBaseUrl,\n });\n }\n}\n\nclass PopupAnnotation extends Annotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.POPUP;\n\n let parentItem = parameters.dict.get(\"Parent\");\n if (!parentItem) {\n warn(\"Popup annotation has a missing or invalid parent annotation.\");\n return;\n }\n\n const parentSubtype = parentItem.get(\"Subtype\");\n this.data.parentType =\n parentSubtype instanceof Name ? parentSubtype.name : null;\n const rawParent = parameters.dict.getRaw(\"Parent\");\n this.data.parentId = rawParent instanceof Ref ? rawParent.toString() : null;\n\n const parentRect = parentItem.getArray(\"Rect\");\n if (Array.isArray(parentRect) && parentRect.length === 4) {\n this.data.parentRect = Util.normalizeRect(parentRect);\n } else {\n this.data.parentRect = [0, 0, 0, 0];\n }\n\n const rt = parentItem.get(\"RT\");\n if (isName(rt, AnnotationReplyType.GROUP)) {\n // Subordinate annotations in a group should inherit\n // the group attributes from the primary annotation.\n parentItem = parentItem.get(\"IRT\");\n }\n\n if (!parentItem.has(\"M\")) {\n this.data.modificationDate = null;\n } else {\n this.setModificationDate(parentItem.get(\"M\"));\n this.data.modificationDate = this.modificationDate;\n }\n\n if (!parentItem.has(\"C\")) {\n // Fall back to the default background color.\n this.data.color = null;\n } else {\n this.setColor(parentItem.getArray(\"C\"));\n this.data.color = this.color;\n }\n\n // If the Popup annotation is not viewable, but the parent annotation is,\n // that is most likely a bug. Fallback to inherit the flags from the parent\n // annotation (this is consistent with the behaviour in Adobe Reader).\n if (!this.viewable) {\n const parentFlags = parentItem.get(\"F\");\n if (this._isViewable(parentFlags)) {\n this.setFlags(parentFlags);\n }\n }\n\n this.setTitle(parentItem.get(\"T\"));\n this.data.titleObj = this._title;\n\n this.setContents(parentItem.get(\"Contents\"));\n this.data.contentsObj = this._contents;\n\n if (parentItem.has(\"RC\")) {\n this.data.richText = XFAFactory.getRichTextAsHtml(parentItem.get(\"RC\"));\n }\n }\n}\n\nclass FreeTextAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.FREETEXT;\n }\n}\n\nclass LineAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n const { dict } = parameters;\n this.data.annotationType = AnnotationType.LINE;\n\n const lineCoordinates = dict.getArray(\"L\");\n this.data.lineCoordinates = Util.normalizeRect(lineCoordinates);\n\n this.setLineEndings(dict.getArray(\"LE\"));\n this.data.lineEndings = this.lineEndings;\n\n if (!this.appearance) {\n // The default stroke color is black.\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = dict.get(\"CA\");\n\n // The default fill color is transparent. Setting the fill colour is\n // necessary if/when we want to add support for non-default line endings.\n let fillColor = null,\n interiorColor = dict.getArray(\"IC\");\n if (interiorColor) {\n interiorColor = getRgbColor(interiorColor, null);\n fillColor = interiorColor\n ? Array.from(interiorColor).map(c => c / 255)\n : null;\n }\n const fillAlpha = fillColor ? strokeAlpha : null;\n\n const borderWidth = this.borderStyle.width || 1,\n borderAdjust = 2 * borderWidth;\n\n // If the /Rect-entry is empty/wrong, create a fallback rectangle so that\n // we get similar rendering/highlighting behaviour as in Adobe Reader.\n const bbox = [\n this.data.lineCoordinates[0] - borderAdjust,\n this.data.lineCoordinates[1] - borderAdjust,\n this.data.lineCoordinates[2] + borderAdjust,\n this.data.lineCoordinates[3] + borderAdjust,\n ];\n if (!Util.intersect(this.rectangle, bbox)) {\n this.rectangle = bbox;\n }\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: `${borderWidth} w`,\n strokeColor,\n fillColor,\n strokeAlpha,\n fillAlpha,\n pointsCallback: (buffer, points) => {\n buffer.push(\n `${lineCoordinates[0]} ${lineCoordinates[1]} m`,\n `${lineCoordinates[2]} ${lineCoordinates[3]} l`,\n \"S\"\n );\n return [\n points[0].x - borderWidth,\n points[1].x + borderWidth,\n points[3].y - borderWidth,\n points[1].y + borderWidth,\n ];\n },\n });\n }\n }\n}\n\nclass SquareAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.SQUARE;\n\n if (!this.appearance) {\n // The default stroke color is black.\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = parameters.dict.get(\"CA\");\n\n // The default fill color is transparent.\n let fillColor = null,\n interiorColor = parameters.dict.getArray(\"IC\");\n if (interiorColor) {\n interiorColor = getRgbColor(interiorColor, null);\n fillColor = interiorColor\n ? Array.from(interiorColor).map(c => c / 255)\n : null;\n }\n const fillAlpha = fillColor ? strokeAlpha : null;\n\n if (this.borderStyle.width === 0 && !fillColor) {\n // Prevent rendering a \"hairline\" border (fixes issue14164.pdf).\n return;\n }\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: `${this.borderStyle.width} w`,\n strokeColor,\n fillColor,\n strokeAlpha,\n fillAlpha,\n pointsCallback: (buffer, points) => {\n const x = points[2].x + this.borderStyle.width / 2;\n const y = points[2].y + this.borderStyle.width / 2;\n const width = points[3].x - points[2].x - this.borderStyle.width;\n const height = points[1].y - points[3].y - this.borderStyle.width;\n buffer.push(`${x} ${y} ${width} ${height} re`);\n if (fillColor) {\n buffer.push(\"B\");\n } else {\n buffer.push(\"S\");\n }\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n }\n}\n\nclass CircleAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.CIRCLE;\n\n if (!this.appearance) {\n // The default stroke color is black.\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = parameters.dict.get(\"CA\");\n\n // The default fill color is transparent.\n let fillColor = null;\n let interiorColor = parameters.dict.getArray(\"IC\");\n if (interiorColor) {\n interiorColor = getRgbColor(interiorColor, null);\n fillColor = interiorColor\n ? Array.from(interiorColor).map(c => c / 255)\n : null;\n }\n const fillAlpha = fillColor ? strokeAlpha : null;\n\n if (this.borderStyle.width === 0 && !fillColor) {\n // Prevent rendering a \"hairline\" border (fixes issue14164.pdf).\n return;\n }\n\n // Circles are approximated by Bézier curves with four segments since\n // there is no circle primitive in the PDF specification. For the control\n // points distance, see https://stackoverflow.com/a/27863181.\n const controlPointsDistance = (4 / 3) * Math.tan(Math.PI / (2 * 4));\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: `${this.borderStyle.width} w`,\n strokeColor,\n fillColor,\n strokeAlpha,\n fillAlpha,\n pointsCallback: (buffer, points) => {\n const x0 = points[0].x + this.borderStyle.width / 2;\n const y0 = points[0].y - this.borderStyle.width / 2;\n const x1 = points[3].x - this.borderStyle.width / 2;\n const y1 = points[3].y + this.borderStyle.width / 2;\n const xMid = x0 + (x1 - x0) / 2;\n const yMid = y0 + (y1 - y0) / 2;\n const xOffset = ((x1 - x0) / 2) * controlPointsDistance;\n const yOffset = ((y1 - y0) / 2) * controlPointsDistance;\n\n buffer.push(\n `${xMid} ${y1} m`,\n `${xMid + xOffset} ${y1} ${x1} ${yMid + yOffset} ${x1} ${yMid} c`,\n `${x1} ${yMid - yOffset} ${xMid + xOffset} ${y0} ${xMid} ${y0} c`,\n `${xMid - xOffset} ${y0} ${x0} ${yMid - yOffset} ${x0} ${yMid} c`,\n `${x0} ${yMid + yOffset} ${xMid - xOffset} ${y1} ${xMid} ${y1} c`,\n \"h\"\n );\n if (fillColor) {\n buffer.push(\"B\");\n } else {\n buffer.push(\"S\");\n }\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n }\n}\n\nclass PolylineAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n const { dict } = parameters;\n this.data.annotationType = AnnotationType.POLYLINE;\n this.data.vertices = [];\n\n if (!(this instanceof PolygonAnnotation)) {\n // Only meaningful for polyline annotations.\n this.setLineEndings(dict.getArray(\"LE\"));\n this.data.lineEndings = this.lineEndings;\n }\n\n // The vertices array is an array of numbers representing the alternating\n // horizontal and vertical coordinates, respectively, of each vertex.\n // Convert this to an array of objects with x and y coordinates.\n const rawVertices = dict.getArray(\"Vertices\");\n if (!Array.isArray(rawVertices)) {\n return;\n }\n for (let i = 0, ii = rawVertices.length; i < ii; i += 2) {\n this.data.vertices.push({\n x: rawVertices[i],\n y: rawVertices[i + 1],\n });\n }\n\n if (!this.appearance) {\n // The default stroke color is black.\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = dict.get(\"CA\");\n\n const borderWidth = this.borderStyle.width || 1,\n borderAdjust = 2 * borderWidth;\n\n // If the /Rect-entry is empty/wrong, create a fallback rectangle so that\n // we get similar rendering/highlighting behaviour as in Adobe Reader.\n const bbox = [Infinity, Infinity, -Infinity, -Infinity];\n for (const vertex of this.data.vertices) {\n bbox[0] = Math.min(bbox[0], vertex.x - borderAdjust);\n bbox[1] = Math.min(bbox[1], vertex.y - borderAdjust);\n bbox[2] = Math.max(bbox[2], vertex.x + borderAdjust);\n bbox[3] = Math.max(bbox[3], vertex.y + borderAdjust);\n }\n if (!Util.intersect(this.rectangle, bbox)) {\n this.rectangle = bbox;\n }\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: `${borderWidth} w`,\n strokeColor,\n strokeAlpha,\n pointsCallback: (buffer, points) => {\n const vertices = this.data.vertices;\n for (let i = 0, ii = vertices.length; i < ii; i++) {\n buffer.push(\n `${vertices[i].x} ${vertices[i].y} ${i === 0 ? \"m\" : \"l\"}`\n );\n }\n buffer.push(\"S\");\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n }\n}\n\nclass PolygonAnnotation extends PolylineAnnotation {\n constructor(parameters) {\n // Polygons are specific forms of polylines, so reuse their logic.\n super(parameters);\n\n this.data.annotationType = AnnotationType.POLYGON;\n }\n}\n\nclass CaretAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.CARET;\n }\n}\n\nclass InkAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.INK;\n this.data.inkLists = [];\n\n const rawInkLists = parameters.dict.getArray(\"InkList\");\n if (!Array.isArray(rawInkLists)) {\n return;\n }\n const xref = parameters.xref;\n for (let i = 0, ii = rawInkLists.length; i < ii; ++i) {\n // The raw ink lists array contains arrays of numbers representing\n // the alternating horizontal and vertical coordinates, respectively,\n // of each vertex. Convert this to an array of objects with x and y\n // coordinates.\n this.data.inkLists.push([]);\n for (let j = 0, jj = rawInkLists[i].length; j < jj; j += 2) {\n this.data.inkLists[i].push({\n x: xref.fetchIfRef(rawInkLists[i][j]),\n y: xref.fetchIfRef(rawInkLists[i][j + 1]),\n });\n }\n }\n\n if (!this.appearance) {\n // The default stroke color is black.\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = parameters.dict.get(\"CA\");\n\n const borderWidth = this.borderStyle.width || 1,\n borderAdjust = 2 * borderWidth;\n\n // If the /Rect-entry is empty/wrong, create a fallback rectangle so that\n // we get similar rendering/highlighting behaviour as in Adobe Reader.\n const bbox = [Infinity, Infinity, -Infinity, -Infinity];\n for (const inkLists of this.data.inkLists) {\n for (const vertex of inkLists) {\n bbox[0] = Math.min(bbox[0], vertex.x - borderAdjust);\n bbox[1] = Math.min(bbox[1], vertex.y - borderAdjust);\n bbox[2] = Math.max(bbox[2], vertex.x + borderAdjust);\n bbox[3] = Math.max(bbox[3], vertex.y + borderAdjust);\n }\n }\n if (!Util.intersect(this.rectangle, bbox)) {\n this.rectangle = bbox;\n }\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: `${borderWidth} w`,\n strokeColor,\n strokeAlpha,\n pointsCallback: (buffer, points) => {\n // According to the specification, see \"12.5.6.13 Ink Annotations\":\n // When drawn, the points shall be connected by straight lines or\n // curves in an implementation-dependent way.\n // In order to simplify things, we utilize straight lines for now.\n for (const inkList of this.data.inkLists) {\n for (let i = 0, ii = inkList.length; i < ii; i++) {\n buffer.push(\n `${inkList[i].x} ${inkList[i].y} ${i === 0 ? \"m\" : \"l\"}`\n );\n }\n buffer.push(\"S\");\n }\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n }\n}\n\nclass HighlightAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.HIGHLIGHT;\n const quadPoints = (this.data.quadPoints = getQuadPoints(\n parameters.dict,\n null\n ));\n if (quadPoints) {\n const resources =\n this.appearance && this.appearance.dict.get(\"Resources\");\n\n if (!this.appearance || !(resources && resources.has(\"ExtGState\"))) {\n if (this.appearance) {\n // Workaround for cases where there's no /ExtGState-entry directly\n // available, e.g. when the appearance stream contains a /XObject of\n // the /Form-type, since that causes the highlighting to completely\n // obscure the PDF content below it (fixes issue13242.pdf).\n warn(\"HighlightAnnotation - ignoring built-in appearance stream.\");\n }\n // Default color is yellow in Acrobat Reader\n const fillColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [1, 1, 0];\n const fillAlpha = parameters.dict.get(\"CA\");\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n fillColor,\n blendMode: \"Multiply\",\n fillAlpha,\n pointsCallback: (buffer, points) => {\n buffer.push(\n `${points[0].x} ${points[0].y} m`,\n `${points[1].x} ${points[1].y} l`,\n `${points[3].x} ${points[3].y} l`,\n `${points[2].x} ${points[2].y} l`,\n \"f\"\n );\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n } else {\n this.data.hasPopup = false;\n }\n }\n}\n\nclass UnderlineAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.UNDERLINE;\n const quadPoints = (this.data.quadPoints = getQuadPoints(\n parameters.dict,\n null\n ));\n if (quadPoints) {\n if (!this.appearance) {\n // Default color is black\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = parameters.dict.get(\"CA\");\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: \"[] 0 d 1 w\",\n strokeColor,\n strokeAlpha,\n pointsCallback: (buffer, points) => {\n buffer.push(\n `${points[2].x} ${points[2].y} m`,\n `${points[3].x} ${points[3].y} l`,\n \"S\"\n );\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n } else {\n this.data.hasPopup = false;\n }\n }\n}\n\nclass SquigglyAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.SQUIGGLY;\n\n const quadPoints = (this.data.quadPoints = getQuadPoints(\n parameters.dict,\n null\n ));\n if (quadPoints) {\n if (!this.appearance) {\n // Default color is black\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = parameters.dict.get(\"CA\");\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: \"[] 0 d 1 w\",\n strokeColor,\n strokeAlpha,\n pointsCallback: (buffer, points) => {\n const dy = (points[0].y - points[2].y) / 6;\n let shift = dy;\n let x = points[2].x;\n const y = points[2].y;\n const xEnd = points[3].x;\n buffer.push(`${x} ${y + shift} m`);\n do {\n x += 2;\n shift = shift === 0 ? dy : 0;\n buffer.push(`${x} ${y + shift} l`);\n } while (x < xEnd);\n buffer.push(\"S\");\n return [points[2].x, xEnd, y - 2 * dy, y + 2 * dy];\n },\n });\n }\n } else {\n this.data.hasPopup = false;\n }\n }\n}\n\nclass StrikeOutAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.STRIKEOUT;\n\n const quadPoints = (this.data.quadPoints = getQuadPoints(\n parameters.dict,\n null\n ));\n if (quadPoints) {\n if (!this.appearance) {\n // Default color is black\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = parameters.dict.get(\"CA\");\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: \"[] 0 d 1 w\",\n strokeColor,\n strokeAlpha,\n pointsCallback: (buffer, points) => {\n buffer.push(\n `${(points[0].x + points[2].x) / 2} ` +\n `${(points[0].y + points[2].y) / 2} m`,\n `${(points[1].x + points[3].x) / 2} ` +\n `${(points[1].y + points[3].y) / 2} l`,\n \"S\"\n );\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n } else {\n this.data.hasPopup = false;\n }\n }\n}\n\nclass StampAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.STAMP;\n }\n}\n\nclass FileAttachmentAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n const file = new FileSpec(parameters.dict.get(\"FS\"), parameters.xref);\n\n this.data.annotationType = AnnotationType.FILEATTACHMENT;\n this.data.file = file.serializable;\n }\n}\n\nexport {\n Annotation,\n AnnotationBorderStyle,\n AnnotationFactory,\n getQuadPoints,\n MarkupAnnotation,\n};\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { OPS, warn } from \"../shared/util.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { escapePDFName } from \"./core_utils.js\";\nimport { EvaluatorPreprocessor } from \"./evaluator.js\";\nimport { Name } from \"./primitives.js\";\nimport { StringStream } from \"./stream.js\";\n\nclass DefaultAppearanceEvaluator extends EvaluatorPreprocessor {\n constructor(str) {\n super(new StringStream(str));\n }\n\n parse() {\n const operation = {\n fn: 0,\n args: [],\n };\n const result = {\n fontSize: 0,\n fontName: \"\",\n fontColor: /* black = */ new Uint8ClampedArray(3),\n };\n\n try {\n while (true) {\n operation.args.length = 0; // Ensure that `args` it's always reset.\n\n if (!this.read(operation)) {\n break;\n }\n if (this.savedStatesDepth !== 0) {\n continue; // Don't get info in save/restore sections.\n }\n const { fn, args } = operation;\n\n switch (fn | 0) {\n case OPS.setFont:\n const [fontName, fontSize] = args;\n if (fontName instanceof Name) {\n result.fontName = fontName.name;\n }\n if (typeof fontSize === \"number\" && fontSize > 0) {\n result.fontSize = fontSize;\n }\n break;\n case OPS.setFillRGBColor:\n ColorSpace.singletons.rgb.getRgbItem(args, 0, result.fontColor, 0);\n break;\n case OPS.setFillGray:\n ColorSpace.singletons.gray.getRgbItem(args, 0, result.fontColor, 0);\n break;\n case OPS.setFillColorSpace:\n ColorSpace.singletons.cmyk.getRgbItem(args, 0, result.fontColor, 0);\n break;\n }\n }\n } catch (reason) {\n warn(`parseDefaultAppearance - ignoring errors: \"${reason}\".`);\n }\n\n return result;\n }\n}\n\n// Parse DA to extract font and color information.\nfunction parseDefaultAppearance(str) {\n return new DefaultAppearanceEvaluator(str).parse();\n}\n\n// Create default appearance string from some information.\nfunction createDefaultAppearance({ fontSize, fontName, fontColor }) {\n let colorCmd;\n if (fontColor.every(c => c === 0)) {\n colorCmd = \"0 g\";\n } else {\n colorCmd =\n Array.from(fontColor)\n .map(c => (c / 255).toFixed(2))\n .join(\" \") + \" rg\";\n }\n return `/${escapePDFName(fontName)} ${fontSize} Tf ${colorCmd}`;\n}\n\nexport { createDefaultAppearance, parseDefaultAppearance };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n FormatError,\n info,\n shadow,\n unreachable,\n warn,\n} from \"../shared/util.js\";\nimport { Dict, Name, Ref } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { MissingDataException } from \"./core_utils.js\";\n\n/**\n * Resizes an RGB image with 3 components.\n * @param {TypedArray} src - The source buffer.\n * @param {TypedArray} dest - The destination buffer.\n * @param {number} w1 - Original width.\n * @param {number} h1 - Original height.\n * @param {number} w2 - New width.\n * @param {number} h2 - New height.\n * @param {number} alpha01 - Size reserved for the alpha channel.\n */\nfunction resizeRgbImage(src, dest, w1, h1, w2, h2, alpha01) {\n const COMPONENTS = 3;\n alpha01 = alpha01 !== 1 ? 0 : alpha01;\n const xRatio = w1 / w2;\n const yRatio = h1 / h2;\n let newIndex = 0,\n oldIndex;\n const xScaled = new Uint16Array(w2);\n const w1Scanline = w1 * COMPONENTS;\n\n for (let i = 0; i < w2; i++) {\n xScaled[i] = Math.floor(i * xRatio) * COMPONENTS;\n }\n for (let i = 0; i < h2; i++) {\n const py = Math.floor(i * yRatio) * w1Scanline;\n for (let j = 0; j < w2; j++) {\n oldIndex = py + xScaled[j];\n dest[newIndex++] = src[oldIndex++];\n dest[newIndex++] = src[oldIndex++];\n dest[newIndex++] = src[oldIndex++];\n newIndex += alpha01;\n }\n }\n}\n\nclass ColorSpace {\n constructor(name, numComps) {\n if (this.constructor === ColorSpace) {\n unreachable(\"Cannot initialize ColorSpace.\");\n }\n this.name = name;\n this.numComps = numComps;\n }\n\n /**\n * Converts the color value to the RGB color. The color components are\n * located in the src array starting from the srcOffset. Returns the array\n * of the rgb components, each value ranging from [0,255].\n */\n getRgb(src, srcOffset) {\n const rgb = new Uint8ClampedArray(3);\n this.getRgbItem(src, srcOffset, rgb, 0);\n return rgb;\n }\n\n /**\n * Converts the color value to the RGB color, similar to the getRgb method.\n * The result placed into the dest array starting from the destOffset.\n */\n getRgbItem(src, srcOffset, dest, destOffset) {\n unreachable(\"Should not call ColorSpace.getRgbItem\");\n }\n\n /**\n * Converts the specified number of the color values to the RGB colors.\n * The colors are located in the src array starting from the srcOffset.\n * The result is placed into the dest array starting from the destOffset.\n * The src array items shall be in [0,2^bits) range, the dest array items\n * will be in [0,255] range. alpha01 indicates how many alpha components\n * there are in the dest array; it will be either 0 (RGB array) or 1 (RGBA\n * array).\n */\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n unreachable(\"Should not call ColorSpace.getRgbBuffer\");\n }\n\n /**\n * Determines the number of bytes required to store the result of the\n * conversion done by the getRgbBuffer method. As in getRgbBuffer,\n * |alpha01| is either 0 (RGB output) or 1 (RGBA output).\n */\n getOutputLength(inputLength, alpha01) {\n unreachable(\"Should not call ColorSpace.getOutputLength\");\n }\n\n /**\n * Returns true if source data will be equal the result/output data.\n */\n isPassthrough(bits) {\n return false;\n }\n\n /**\n * Refer to the static `ColorSpace.isDefaultDecode` method below.\n */\n isDefaultDecode(decodeMap, bpc) {\n return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n }\n\n /**\n * Fills in the RGB colors in the destination buffer. alpha01 indicates\n * how many alpha components there are in the dest array; it will be either\n * 0 (RGB array) or 1 (RGBA array).\n */\n fillRgb(\n dest,\n originalWidth,\n originalHeight,\n width,\n height,\n actualHeight,\n bpc,\n comps,\n alpha01\n ) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'ColorSpace.fillRgb: Unsupported \"dest\" type.'\n );\n }\n const count = originalWidth * originalHeight;\n let rgbBuf = null;\n const numComponentColors = 1 << bpc;\n const needsResizing = originalHeight !== height || originalWidth !== width;\n\n if (this.isPassthrough(bpc)) {\n rgbBuf = comps;\n } else if (\n this.numComps === 1 &&\n count > numComponentColors &&\n this.name !== \"DeviceGray\" &&\n this.name !== \"DeviceRGB\"\n ) {\n // Optimization: create a color map when there is just one component and\n // we are converting more colors than the size of the color map. We\n // don't build the map if the colorspace is gray or rgb since those\n // methods are faster than building a map. This mainly offers big speed\n // ups for indexed and alternate colorspaces.\n //\n // TODO it may be worth while to cache the color map. While running\n // testing I never hit a cache so I will leave that out for now (perhaps\n // we are reparsing colorspaces too much?).\n const allColors =\n bpc <= 8\n ? new Uint8Array(numComponentColors)\n : new Uint16Array(numComponentColors);\n for (let i = 0; i < numComponentColors; i++) {\n allColors[i] = i;\n }\n const colorMap = new Uint8ClampedArray(numComponentColors * 3);\n this.getRgbBuffer(\n allColors,\n 0,\n numComponentColors,\n colorMap,\n 0,\n bpc,\n /* alpha01 = */ 0\n );\n\n if (!needsResizing) {\n // Fill in the RGB values directly into |dest|.\n let destPos = 0;\n for (let i = 0; i < count; ++i) {\n const key = comps[i] * 3;\n dest[destPos++] = colorMap[key];\n dest[destPos++] = colorMap[key + 1];\n dest[destPos++] = colorMap[key + 2];\n destPos += alpha01;\n }\n } else {\n rgbBuf = new Uint8Array(count * 3);\n let rgbPos = 0;\n for (let i = 0; i < count; ++i) {\n const key = comps[i] * 3;\n rgbBuf[rgbPos++] = colorMap[key];\n rgbBuf[rgbPos++] = colorMap[key + 1];\n rgbBuf[rgbPos++] = colorMap[key + 2];\n }\n }\n } else {\n if (!needsResizing) {\n // Fill in the RGB values directly into |dest|.\n this.getRgbBuffer(\n comps,\n 0,\n width * actualHeight,\n dest,\n 0,\n bpc,\n alpha01\n );\n } else {\n rgbBuf = new Uint8ClampedArray(count * 3);\n this.getRgbBuffer(comps, 0, count, rgbBuf, 0, bpc, /* alpha01 = */ 0);\n }\n }\n\n if (rgbBuf) {\n if (needsResizing) {\n resizeRgbImage(\n rgbBuf,\n dest,\n originalWidth,\n originalHeight,\n width,\n height,\n alpha01\n );\n } else {\n let destPos = 0,\n rgbPos = 0;\n for (let i = 0, ii = width * actualHeight; i < ii; i++) {\n dest[destPos++] = rgbBuf[rgbPos++];\n dest[destPos++] = rgbBuf[rgbPos++];\n dest[destPos++] = rgbBuf[rgbPos++];\n destPos += alpha01;\n }\n }\n }\n }\n\n /**\n * True if the colorspace has components in the default range of [0, 1].\n * This should be true for all colorspaces except for lab color spaces\n * which are [0,100], [-128, 127], [-128, 127].\n */\n get usesZeroToOneRange() {\n return shadow(this, \"usesZeroToOneRange\", true);\n }\n\n /**\n * @private\n */\n static _cache(cacheKey, xref, localColorSpaceCache, parsedColorSpace) {\n if (!localColorSpaceCache) {\n throw new Error(\n 'ColorSpace._cache - expected \"localColorSpaceCache\" argument.'\n );\n }\n if (!parsedColorSpace) {\n throw new Error(\n 'ColorSpace._cache - expected \"parsedColorSpace\" argument.'\n );\n }\n let csName, csRef;\n if (cacheKey instanceof Ref) {\n csRef = cacheKey;\n\n // If parsing succeeded, we know that this call cannot throw.\n cacheKey = xref.fetch(cacheKey);\n }\n if (cacheKey instanceof Name) {\n csName = cacheKey.name;\n }\n if (csName || csRef) {\n localColorSpaceCache.set(csName, csRef, parsedColorSpace);\n }\n }\n\n static getCached(cacheKey, xref, localColorSpaceCache) {\n if (!localColorSpaceCache) {\n throw new Error(\n 'ColorSpace.getCached - expected \"localColorSpaceCache\" argument.'\n );\n }\n if (cacheKey instanceof Ref) {\n const localColorSpace = localColorSpaceCache.getByRef(cacheKey);\n if (localColorSpace) {\n return localColorSpace;\n }\n\n try {\n cacheKey = xref.fetch(cacheKey);\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n // Any errors should be handled during parsing, rather than here.\n }\n }\n if (cacheKey instanceof Name) {\n const localColorSpace = localColorSpaceCache.getByName(cacheKey.name);\n if (localColorSpace) {\n return localColorSpace;\n }\n }\n return null;\n }\n\n static async parseAsync({\n cs,\n xref,\n resources = null,\n pdfFunctionFactory,\n localColorSpaceCache,\n }) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n !this.getCached(cs, xref, localColorSpaceCache),\n \"Expected `ColorSpace.getCached` to have been manually checked \" +\n \"before calling `ColorSpace.parseAsync`.\"\n );\n }\n const parsedColorSpace = this._parse(\n cs,\n xref,\n resources,\n pdfFunctionFactory\n );\n\n // Attempt to cache the parsed ColorSpace, by name and/or reference.\n this._cache(cs, xref, localColorSpaceCache, parsedColorSpace);\n\n return parsedColorSpace;\n }\n\n static parse({\n cs,\n xref,\n resources = null,\n pdfFunctionFactory,\n localColorSpaceCache,\n }) {\n const cachedColorSpace = this.getCached(cs, xref, localColorSpaceCache);\n if (cachedColorSpace) {\n return cachedColorSpace;\n }\n const parsedColorSpace = this._parse(\n cs,\n xref,\n resources,\n pdfFunctionFactory\n );\n\n // Attempt to cache the parsed ColorSpace, by name and/or reference.\n this._cache(cs, xref, localColorSpaceCache, parsedColorSpace);\n\n return parsedColorSpace;\n }\n\n /**\n * @private\n */\n static _parse(cs, xref, resources = null, pdfFunctionFactory) {\n cs = xref.fetchIfRef(cs);\n if (cs instanceof Name) {\n switch (cs.name) {\n case \"G\":\n case \"DeviceGray\":\n return this.singletons.gray;\n case \"RGB\":\n case \"DeviceRGB\":\n return this.singletons.rgb;\n case \"CMYK\":\n case \"DeviceCMYK\":\n return this.singletons.cmyk;\n case \"Pattern\":\n return new PatternCS(/* baseCS = */ null);\n default:\n if (resources instanceof Dict) {\n const colorSpaces = resources.get(\"ColorSpace\");\n if (colorSpaces instanceof Dict) {\n const resourcesCS = colorSpaces.get(cs.name);\n if (resourcesCS) {\n if (resourcesCS instanceof Name) {\n return this._parse(\n resourcesCS,\n xref,\n resources,\n pdfFunctionFactory\n );\n }\n cs = resourcesCS;\n break;\n }\n }\n }\n throw new FormatError(`Unrecognized ColorSpace: ${cs.name}`);\n }\n }\n if (Array.isArray(cs)) {\n const mode = xref.fetchIfRef(cs[0]).name;\n let params, numComps, baseCS, whitePoint, blackPoint, gamma;\n\n switch (mode) {\n case \"G\":\n case \"DeviceGray\":\n return this.singletons.gray;\n case \"RGB\":\n case \"DeviceRGB\":\n return this.singletons.rgb;\n case \"CMYK\":\n case \"DeviceCMYK\":\n return this.singletons.cmyk;\n case \"CalGray\":\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray(\"WhitePoint\");\n blackPoint = params.getArray(\"BlackPoint\");\n gamma = params.get(\"Gamma\");\n return new CalGrayCS(whitePoint, blackPoint, gamma);\n case \"CalRGB\":\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray(\"WhitePoint\");\n blackPoint = params.getArray(\"BlackPoint\");\n gamma = params.getArray(\"Gamma\");\n const matrix = params.getArray(\"Matrix\");\n return new CalRGBCS(whitePoint, blackPoint, gamma, matrix);\n case \"ICCBased\":\n const stream = xref.fetchIfRef(cs[1]);\n const dict = stream.dict;\n numComps = dict.get(\"N\");\n const alt = dict.get(\"Alternate\");\n if (alt) {\n const altCS = this._parse(alt, xref, resources, pdfFunctionFactory);\n // Ensure that the number of components are correct,\n // and also (indirectly) that it is not a PatternCS.\n if (altCS.numComps === numComps) {\n return altCS;\n }\n warn(\"ICCBased color space: Ignoring incorrect /Alternate entry.\");\n }\n if (numComps === 1) {\n return this.singletons.gray;\n } else if (numComps === 3) {\n return this.singletons.rgb;\n } else if (numComps === 4) {\n return this.singletons.cmyk;\n }\n break;\n case \"Pattern\":\n baseCS = cs[1] || null;\n if (baseCS) {\n baseCS = this._parse(baseCS, xref, resources, pdfFunctionFactory);\n }\n return new PatternCS(baseCS);\n case \"I\":\n case \"Indexed\":\n baseCS = this._parse(cs[1], xref, resources, pdfFunctionFactory);\n const hiVal = xref.fetchIfRef(cs[2]) + 1;\n const lookup = xref.fetchIfRef(cs[3]);\n return new IndexedCS(baseCS, hiVal, lookup);\n case \"Separation\":\n case \"DeviceN\":\n const name = xref.fetchIfRef(cs[1]);\n numComps = Array.isArray(name) ? name.length : 1;\n baseCS = this._parse(cs[2], xref, resources, pdfFunctionFactory);\n const tintFn = pdfFunctionFactory.create(cs[3]);\n return new AlternateCS(numComps, baseCS, tintFn);\n case \"Lab\":\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray(\"WhitePoint\");\n blackPoint = params.getArray(\"BlackPoint\");\n const range = params.getArray(\"Range\");\n return new LabCS(whitePoint, blackPoint, range);\n default:\n throw new FormatError(`Unimplemented ColorSpace object: ${mode}`);\n }\n }\n throw new FormatError(`Unrecognized ColorSpace object: ${cs}`);\n }\n\n /**\n * Checks if a decode map matches the default decode map for a color space.\n * This handles the general decode maps where there are two values per\n * component, e.g. [0, 1, 0, 1, 0, 1] for a RGB color.\n * This does not handle Lab, Indexed, or Pattern decode maps since they are\n * slightly different.\n * @param {Array} decode - Decode map (usually from an image).\n * @param {number} numComps - Number of components the color space has.\n */\n static isDefaultDecode(decode, numComps) {\n if (!Array.isArray(decode)) {\n return true;\n }\n if (numComps * 2 !== decode.length) {\n warn(\"The decode map is not the correct length\");\n return true;\n }\n for (let i = 0, ii = decode.length; i < ii; i += 2) {\n if (decode[i] !== 0 || decode[i + 1] !== 1) {\n return false;\n }\n }\n return true;\n }\n\n static get singletons() {\n return shadow(this, \"singletons\", {\n get gray() {\n return shadow(this, \"gray\", new DeviceGrayCS());\n },\n get rgb() {\n return shadow(this, \"rgb\", new DeviceRgbCS());\n },\n get cmyk() {\n return shadow(this, \"cmyk\", new DeviceCmykCS());\n },\n });\n }\n}\n\n/**\n * Alternate color space handles both Separation and DeviceN color spaces. A\n * Separation color space is actually just a DeviceN with one color component.\n * Both color spaces use a tinting function to convert colors to a base color\n * space.\n *\n * The default color is `new Float32Array(new Array(numComps).fill(1))`.\n */\nclass AlternateCS extends ColorSpace {\n constructor(numComps, base, tintFn) {\n super(\"Alternate\", numComps);\n this.base = base;\n this.tintFn = tintFn;\n this.tmpBuf = new Float32Array(base.numComps);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'AlternateCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n const tmpBuf = this.tmpBuf;\n this.tintFn(src, srcOffset, tmpBuf, 0);\n this.base.getRgbItem(tmpBuf, 0, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'AlternateCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const tintFn = this.tintFn;\n const base = this.base;\n const scale = 1 / ((1 << bits) - 1);\n const baseNumComps = base.numComps;\n const usesZeroToOneRange = base.usesZeroToOneRange;\n const isPassthrough =\n (base.isPassthrough(8) || !usesZeroToOneRange) && alpha01 === 0;\n let pos = isPassthrough ? destOffset : 0;\n const baseBuf = isPassthrough\n ? dest\n : new Uint8ClampedArray(baseNumComps * count);\n const numComps = this.numComps;\n\n const scaled = new Float32Array(numComps);\n const tinted = new Float32Array(baseNumComps);\n let i, j;\n\n for (i = 0; i < count; i++) {\n for (j = 0; j < numComps; j++) {\n scaled[j] = src[srcOffset++] * scale;\n }\n tintFn(scaled, 0, tinted, 0);\n if (usesZeroToOneRange) {\n for (j = 0; j < baseNumComps; j++) {\n baseBuf[pos++] = tinted[j] * 255;\n }\n } else {\n base.getRgbItem(tinted, 0, baseBuf, pos);\n pos += baseNumComps;\n }\n }\n\n if (!isPassthrough) {\n base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8, alpha01);\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return this.base.getOutputLength(\n (inputLength * this.base.numComps) / this.numComps,\n alpha01\n );\n }\n}\n\nclass PatternCS extends ColorSpace {\n constructor(baseCS) {\n super(\"Pattern\", null);\n this.base = baseCS;\n }\n\n isDefaultDecode(decodeMap, bpc) {\n unreachable(\"Should not call PatternCS.isDefaultDecode\");\n }\n}\n\n/**\n * The default color is `new Uint8Array([0])`.\n */\nclass IndexedCS extends ColorSpace {\n constructor(base, highVal, lookup) {\n super(\"Indexed\", 1);\n this.base = base;\n this.highVal = highVal;\n\n const length = base.numComps * highVal;\n this.lookup = new Uint8Array(length);\n\n if (lookup instanceof BaseStream) {\n const bytes = lookup.getBytes(length);\n this.lookup.set(bytes);\n } else if (typeof lookup === \"string\") {\n for (let i = 0; i < length; ++i) {\n this.lookup[i] = lookup.charCodeAt(i) & 0xff;\n }\n } else {\n throw new FormatError(`IndexedCS - unrecognized lookup table: ${lookup}`);\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'IndexedCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n const numComps = this.base.numComps;\n const start = src[srcOffset] * numComps;\n this.base.getRgbBuffer(this.lookup, start, 1, dest, destOffset, 8, 0);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'IndexedCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const base = this.base;\n const numComps = base.numComps;\n const outputDelta = base.getOutputLength(numComps, alpha01);\n const lookup = this.lookup;\n\n for (let i = 0; i < count; ++i) {\n const lookupPos = src[srcOffset++] * numComps;\n base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8, alpha01);\n destOffset += outputDelta;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return this.base.getOutputLength(inputLength * this.base.numComps, alpha01);\n }\n\n isDefaultDecode(decodeMap, bpc) {\n if (!Array.isArray(decodeMap)) {\n return true;\n }\n if (decodeMap.length !== 2) {\n warn(\"Decode map length is not correct\");\n return true;\n }\n if (!Number.isInteger(bpc) || bpc < 1) {\n warn(\"Bits per component is not correct\");\n return true;\n }\n return decodeMap[0] === 0 && decodeMap[1] === (1 << bpc) - 1;\n }\n}\n\n/**\n * The default color is `new Float32Array([0])`.\n */\nclass DeviceGrayCS extends ColorSpace {\n constructor() {\n super(\"DeviceGray\", 1);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceGrayCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n const c = src[srcOffset] * 255;\n dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c;\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceGrayCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const scale = 255 / ((1 << bits) - 1);\n let j = srcOffset,\n q = destOffset;\n for (let i = 0; i < count; ++i) {\n const c = scale * src[j++];\n dest[q++] = c;\n dest[q++] = c;\n dest[q++] = c;\n q += alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01);\n }\n}\n\n/**\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nclass DeviceRgbCS extends ColorSpace {\n constructor() {\n super(\"DeviceRGB\", 3);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceRgbCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n dest[destOffset] = src[srcOffset] * 255;\n dest[destOffset + 1] = src[srcOffset + 1] * 255;\n dest[destOffset + 2] = src[srcOffset + 2] * 255;\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceRgbCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n if (bits === 8 && alpha01 === 0) {\n dest.set(src.subarray(srcOffset, srcOffset + count * 3), destOffset);\n return;\n }\n const scale = 255 / ((1 << bits) - 1);\n let j = srcOffset,\n q = destOffset;\n for (let i = 0; i < count; ++i) {\n dest[q++] = scale * src[j++];\n dest[q++] = scale * src[j++];\n dest[q++] = scale * src[j++];\n q += alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength * (3 + alpha01)) / 3) | 0;\n }\n\n isPassthrough(bits) {\n return bits === 8;\n }\n}\n\n/**\n * The default color is `new Float32Array([0, 0, 0, 1])`.\n */\nconst DeviceCmykCS = (function DeviceCmykCSClosure() {\n // The coefficients below was found using numerical analysis: the method of\n // steepest descent for the sum((f_i - color_value_i)^2) for r/g/b colors,\n // where color_value is the tabular value from the table of sampled RGB colors\n // from CMYK US Web Coated (SWOP) colorspace, and f_i is the corresponding\n // CMYK color conversion using the estimation below:\n // f(A, B,.. N) = Acc+Bcm+Ccy+Dck+c+Fmm+Gmy+Hmk+Im+Jyy+Kyk+Ly+Mkk+Nk+255\n function convertToRgb(src, srcOffset, srcScale, dest, destOffset) {\n const c = src[srcOffset] * srcScale;\n const m = src[srcOffset + 1] * srcScale;\n const y = src[srcOffset + 2] * srcScale;\n const k = src[srcOffset + 3] * srcScale;\n\n dest[destOffset] =\n 255 +\n c *\n (-4.387332384609988 * c +\n 54.48615194189176 * m +\n 18.82290502165302 * y +\n 212.25662451639585 * k +\n -285.2331026137004) +\n m *\n (1.7149763477362134 * m -\n 5.6096736904047315 * y +\n -17.873870861415444 * k -\n 5.497006427196366) +\n y *\n (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) +\n k * (-21.86122147463605 * k - 189.48180835922747);\n\n dest[destOffset + 1] =\n 255 +\n c *\n (8.841041422036149 * c +\n 60.118027045597366 * m +\n 6.871425592049007 * y +\n 31.159100130055922 * k +\n -79.2970844816548) +\n m *\n (-15.310361306967817 * m +\n 17.575251261109482 * y +\n 131.35250912493976 * k -\n 190.9453302588951) +\n y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) +\n k * (-20.737325471181034 * k - 187.80453709719578);\n\n dest[destOffset + 2] =\n 255 +\n c *\n (0.8842522430003296 * c +\n 8.078677503112928 * m +\n 30.89978309703729 * y -\n 0.23883238689178934 * k +\n -14.183576799673286) +\n m *\n (10.49593273432072 * m +\n 63.02378494754052 * y +\n 50.606957656360734 * k -\n 112.23884253719248) +\n y *\n (0.03296041114873217 * y +\n 115.60384449646641 * k +\n -193.58209356861505) +\n k * (-22.33816807309886 * k - 180.12613974708367);\n }\n\n // eslint-disable-next-line no-shadow\n class DeviceCmykCS extends ColorSpace {\n constructor() {\n super(\"DeviceCMYK\", 4);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceCmykCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n convertToRgb(src, srcOffset, 1, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceCmykCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const scale = 1 / ((1 << bits) - 1);\n for (let i = 0; i < count; i++) {\n convertToRgb(src, srcOffset, scale, dest, destOffset);\n srcOffset += 4;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength / 4) * (3 + alpha01)) | 0;\n }\n }\n return DeviceCmykCS;\n})();\n\n/**\n * CalGrayCS: Based on \"PDF Reference, Sixth Ed\", p.245\n *\n * The default color is `new Float32Array([0])`.\n */\nconst CalGrayCS = (function CalGrayCSClosure() {\n function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n // A represents a gray component of a calibrated gray space.\n // A <---> AG in the spec\n const A = src[srcOffset] * scale;\n const AG = A ** cs.G;\n\n // Computes L as per spec. ( = cs.YW * AG )\n // Except if other than default BlackPoint values are used.\n const L = cs.YW * AG;\n // http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html, Ch 4.\n // Convert values to rgb range [0, 255].\n const val = Math.max(295.8 * L ** 0.3333333333333333 - 40.8, 0);\n dest[destOffset] = val;\n dest[destOffset + 1] = val;\n dest[destOffset + 2] = val;\n }\n\n // eslint-disable-next-line no-shadow\n class CalGrayCS extends ColorSpace {\n constructor(whitePoint, blackPoint, gamma) {\n super(\"CalGray\", 1);\n\n if (!whitePoint) {\n throw new FormatError(\n \"WhitePoint missing - required for color space CalGray\"\n );\n }\n blackPoint = blackPoint || [0, 0, 0];\n gamma = gamma || 1;\n\n // Translate arguments to spec variables.\n this.XW = whitePoint[0];\n this.YW = whitePoint[1];\n this.ZW = whitePoint[2];\n\n this.XB = blackPoint[0];\n this.YB = blackPoint[1];\n this.ZB = blackPoint[2];\n\n this.G = gamma;\n\n // Validate variables as per spec.\n if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n throw new FormatError(\n `Invalid WhitePoint components for ${this.name}` +\n \", no fallback available\"\n );\n }\n\n if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n info(`Invalid BlackPoint for ${this.name}, falling back to default.`);\n this.XB = this.YB = this.ZB = 0;\n }\n\n if (this.XB !== 0 || this.YB !== 0 || this.ZB !== 0) {\n warn(\n `${this.name}, BlackPoint: XB: ${this.XB}, YB: ${this.YB}, ` +\n `ZB: ${this.ZB}, only default values are supported.`\n );\n }\n\n if (this.G < 1) {\n info(\n `Invalid Gamma: ${this.G} for ${this.name}, ` +\n \"falling back to default.\"\n );\n this.G = 1;\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'CalGrayCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'CalGrayCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const scale = 1 / ((1 << bits) - 1);\n\n for (let i = 0; i < count; ++i) {\n convertToRgb(this, src, srcOffset, dest, destOffset, scale);\n srcOffset += 1;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01);\n }\n }\n return CalGrayCS;\n})();\n\n/**\n * CalRGBCS: Based on \"PDF Reference, Sixth Ed\", p.247\n *\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nconst CalRGBCS = (function CalRGBCSClosure() {\n // See http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html for these\n // matrices.\n // prettier-ignore\n const BRADFORD_SCALE_MATRIX = new Float32Array([\n 0.8951, 0.2664, -0.1614,\n -0.7502, 1.7135, 0.0367,\n 0.0389, -0.0685, 1.0296]);\n\n // prettier-ignore\n const BRADFORD_SCALE_INVERSE_MATRIX = new Float32Array([\n 0.9869929, -0.1470543, 0.1599627,\n 0.4323053, 0.5183603, 0.0492912,\n -0.0085287, 0.0400428, 0.9684867]);\n\n // See http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html.\n // prettier-ignore\n const SRGB_D65_XYZ_TO_RGB_MATRIX = new Float32Array([\n 3.2404542, -1.5371385, -0.4985314,\n -0.9692660, 1.8760108, 0.0415560,\n 0.0556434, -0.2040259, 1.0572252]);\n\n const FLAT_WHITEPOINT_MATRIX = new Float32Array([1, 1, 1]);\n\n const tempNormalizeMatrix = new Float32Array(3);\n const tempConvertMatrix1 = new Float32Array(3);\n const tempConvertMatrix2 = new Float32Array(3);\n\n const DECODE_L_CONSTANT = ((8 + 16) / 116) ** 3 / 8.0;\n\n function matrixProduct(a, b, result) {\n result[0] = a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n result[1] = a[3] * b[0] + a[4] * b[1] + a[5] * b[2];\n result[2] = a[6] * b[0] + a[7] * b[1] + a[8] * b[2];\n }\n\n function convertToFlat(sourceWhitePoint, LMS, result) {\n result[0] = (LMS[0] * 1) / sourceWhitePoint[0];\n result[1] = (LMS[1] * 1) / sourceWhitePoint[1];\n result[2] = (LMS[2] * 1) / sourceWhitePoint[2];\n }\n\n function convertToD65(sourceWhitePoint, LMS, result) {\n const D65X = 0.95047;\n const D65Y = 1;\n const D65Z = 1.08883;\n\n result[0] = (LMS[0] * D65X) / sourceWhitePoint[0];\n result[1] = (LMS[1] * D65Y) / sourceWhitePoint[1];\n result[2] = (LMS[2] * D65Z) / sourceWhitePoint[2];\n }\n\n function sRGBTransferFunction(color) {\n // See http://en.wikipedia.org/wiki/SRGB.\n if (color <= 0.0031308) {\n return adjustToRange(0, 1, 12.92 * color);\n }\n // Optimization:\n // If color is close enough to 1, skip calling the following transform\n // since calling Math.pow is expensive. If color is larger than\n // the threshold, the final result is larger than 254.5 since\n // ((1 + 0.055) * 0.99554525 ** (1 / 2.4) - 0.055) * 255 ===\n // 254.50000003134699\n if (color >= 0.99554525) {\n return 1;\n }\n return adjustToRange(0, 1, (1 + 0.055) * color ** (1 / 2.4) - 0.055);\n }\n\n function adjustToRange(min, max, value) {\n return Math.max(min, Math.min(max, value));\n }\n\n function decodeL(L) {\n if (L < 0) {\n return -decodeL(-L);\n }\n if (L > 8.0) {\n return ((L + 16) / 116) ** 3;\n }\n return L * DECODE_L_CONSTANT;\n }\n\n function compensateBlackPoint(sourceBlackPoint, XYZ_Flat, result) {\n // In case the blackPoint is already the default blackPoint then there is\n // no need to do compensation.\n if (\n sourceBlackPoint[0] === 0 &&\n sourceBlackPoint[1] === 0 &&\n sourceBlackPoint[2] === 0\n ) {\n result[0] = XYZ_Flat[0];\n result[1] = XYZ_Flat[1];\n result[2] = XYZ_Flat[2];\n return;\n }\n\n // For the blackPoint calculation details, please see\n // http://www.adobe.com/content/dam/Adobe/en/devnet/photoshop/sdk/\n // AdobeBPC.pdf.\n // The destination blackPoint is the default blackPoint [0, 0, 0].\n const zeroDecodeL = decodeL(0);\n\n const X_DST = zeroDecodeL;\n const X_SRC = decodeL(sourceBlackPoint[0]);\n\n const Y_DST = zeroDecodeL;\n const Y_SRC = decodeL(sourceBlackPoint[1]);\n\n const Z_DST = zeroDecodeL;\n const Z_SRC = decodeL(sourceBlackPoint[2]);\n\n const X_Scale = (1 - X_DST) / (1 - X_SRC);\n const X_Offset = 1 - X_Scale;\n\n const Y_Scale = (1 - Y_DST) / (1 - Y_SRC);\n const Y_Offset = 1 - Y_Scale;\n\n const Z_Scale = (1 - Z_DST) / (1 - Z_SRC);\n const Z_Offset = 1 - Z_Scale;\n\n result[0] = XYZ_Flat[0] * X_Scale + X_Offset;\n result[1] = XYZ_Flat[1] * Y_Scale + Y_Offset;\n result[2] = XYZ_Flat[2] * Z_Scale + Z_Offset;\n }\n\n function normalizeWhitePointToFlat(sourceWhitePoint, XYZ_In, result) {\n // In case the whitePoint is already flat then there is no need to do\n // normalization.\n if (sourceWhitePoint[0] === 1 && sourceWhitePoint[2] === 1) {\n result[0] = XYZ_In[0];\n result[1] = XYZ_In[1];\n result[2] = XYZ_In[2];\n return;\n }\n\n const LMS = result;\n matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n\n const LMS_Flat = tempNormalizeMatrix;\n convertToFlat(sourceWhitePoint, LMS, LMS_Flat);\n\n matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_Flat, result);\n }\n\n function normalizeWhitePointToD65(sourceWhitePoint, XYZ_In, result) {\n const LMS = result;\n matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n\n const LMS_D65 = tempNormalizeMatrix;\n convertToD65(sourceWhitePoint, LMS, LMS_D65);\n\n matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_D65, result);\n }\n\n function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n // A, B and C represent a red, green and blue components of a calibrated\n // rgb space.\n const A = adjustToRange(0, 1, src[srcOffset] * scale);\n const B = adjustToRange(0, 1, src[srcOffset + 1] * scale);\n const C = adjustToRange(0, 1, src[srcOffset + 2] * scale);\n\n // A <---> AGR in the spec\n // B <---> BGG in the spec\n // C <---> CGB in the spec\n const AGR = A === 1 ? 1 : A ** cs.GR;\n const BGG = B === 1 ? 1 : B ** cs.GG;\n const CGB = C === 1 ? 1 : C ** cs.GB;\n\n // Computes intermediate variables L, M, N as per spec.\n // To decode X, Y, Z values map L, M, N directly to them.\n const X = cs.MXA * AGR + cs.MXB * BGG + cs.MXC * CGB;\n const Y = cs.MYA * AGR + cs.MYB * BGG + cs.MYC * CGB;\n const Z = cs.MZA * AGR + cs.MZB * BGG + cs.MZC * CGB;\n\n // The following calculations are based on this document:\n // http://www.adobe.com/content/dam/Adobe/en/devnet/photoshop/sdk/\n // AdobeBPC.pdf.\n const XYZ = tempConvertMatrix1;\n XYZ[0] = X;\n XYZ[1] = Y;\n XYZ[2] = Z;\n const XYZ_Flat = tempConvertMatrix2;\n\n normalizeWhitePointToFlat(cs.whitePoint, XYZ, XYZ_Flat);\n\n const XYZ_Black = tempConvertMatrix1;\n compensateBlackPoint(cs.blackPoint, XYZ_Flat, XYZ_Black);\n\n const XYZ_D65 = tempConvertMatrix2;\n normalizeWhitePointToD65(FLAT_WHITEPOINT_MATRIX, XYZ_Black, XYZ_D65);\n\n const SRGB = tempConvertMatrix1;\n matrixProduct(SRGB_D65_XYZ_TO_RGB_MATRIX, XYZ_D65, SRGB);\n\n // Convert the values to rgb range [0, 255].\n dest[destOffset] = sRGBTransferFunction(SRGB[0]) * 255;\n dest[destOffset + 1] = sRGBTransferFunction(SRGB[1]) * 255;\n dest[destOffset + 2] = sRGBTransferFunction(SRGB[2]) * 255;\n }\n\n // eslint-disable-next-line no-shadow\n class CalRGBCS extends ColorSpace {\n constructor(whitePoint, blackPoint, gamma, matrix) {\n super(\"CalRGB\", 3);\n\n if (!whitePoint) {\n throw new FormatError(\n \"WhitePoint missing - required for color space CalRGB\"\n );\n }\n blackPoint = blackPoint || new Float32Array(3);\n gamma = gamma || new Float32Array([1, 1, 1]);\n matrix = matrix || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);\n\n // Translate arguments to spec variables.\n const XW = whitePoint[0];\n const YW = whitePoint[1];\n const ZW = whitePoint[2];\n this.whitePoint = whitePoint;\n\n const XB = blackPoint[0];\n const YB = blackPoint[1];\n const ZB = blackPoint[2];\n this.blackPoint = blackPoint;\n\n this.GR = gamma[0];\n this.GG = gamma[1];\n this.GB = gamma[2];\n\n this.MXA = matrix[0];\n this.MYA = matrix[1];\n this.MZA = matrix[2];\n this.MXB = matrix[3];\n this.MYB = matrix[4];\n this.MZB = matrix[5];\n this.MXC = matrix[6];\n this.MYC = matrix[7];\n this.MZC = matrix[8];\n\n // Validate variables as per spec.\n if (XW < 0 || ZW < 0 || YW !== 1) {\n throw new FormatError(\n `Invalid WhitePoint components for ${this.name}` +\n \", no fallback available\"\n );\n }\n\n if (XB < 0 || YB < 0 || ZB < 0) {\n info(\n `Invalid BlackPoint for ${this.name} [${XB}, ${YB}, ${ZB}], ` +\n \"falling back to default.\"\n );\n this.blackPoint = new Float32Array(3);\n }\n\n if (this.GR < 0 || this.GG < 0 || this.GB < 0) {\n info(\n `Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ` +\n `${this.name}, falling back to default.`\n );\n this.GR = this.GG = this.GB = 1;\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'CalRGBCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'CalRGBCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const scale = 1 / ((1 << bits) - 1);\n\n for (let i = 0; i < count; ++i) {\n convertToRgb(this, src, srcOffset, dest, destOffset, scale);\n srcOffset += 3;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength * (3 + alpha01)) / 3) | 0;\n }\n }\n return CalRGBCS;\n})();\n\n/**\n * LabCS: Based on \"PDF Reference, Sixth Ed\", p.250\n *\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nconst LabCS = (function LabCSClosure() {\n // Function g(x) from spec\n function fn_g(x) {\n let result;\n if (x >= 6 / 29) {\n result = x ** 3;\n } else {\n result = (108 / 841) * (x - 4 / 29);\n }\n return result;\n }\n\n function decode(value, high1, low2, high2) {\n return low2 + (value * (high2 - low2)) / high1;\n }\n\n // If decoding is needed maxVal should be 2^bits per component - 1.\n function convertToRgb(cs, src, srcOffset, maxVal, dest, destOffset) {\n // XXX: Lab input is in the range of [0, 100], [amin, amax], [bmin, bmax]\n // not the usual [0, 1]. If a command like setFillColor is used the src\n // values will already be within the correct range. However, if we are\n // converting an image we have to map the values to the correct range given\n // above.\n // Ls,as,bs <---> L*,a*,b* in the spec\n let Ls = src[srcOffset];\n let as = src[srcOffset + 1];\n let bs = src[srcOffset + 2];\n if (maxVal !== false) {\n Ls = decode(Ls, maxVal, 0, 100);\n as = decode(as, maxVal, cs.amin, cs.amax);\n bs = decode(bs, maxVal, cs.bmin, cs.bmax);\n }\n\n // Adjust limits of 'as' and 'bs'\n if (as > cs.amax) {\n as = cs.amax;\n } else if (as < cs.amin) {\n as = cs.amin;\n }\n if (bs > cs.bmax) {\n bs = cs.bmax;\n } else if (bs < cs.bmin) {\n bs = cs.bmin;\n }\n\n // Computes intermediate variables X,Y,Z as per spec\n const M = (Ls + 16) / 116;\n const L = M + as / 500;\n const N = M - bs / 200;\n\n const X = cs.XW * fn_g(L);\n const Y = cs.YW * fn_g(M);\n const Z = cs.ZW * fn_g(N);\n\n let r, g, b;\n // Using different conversions for D50 and D65 white points,\n // per http://www.color.org/srgb.pdf\n if (cs.ZW < 1) {\n // Assuming D50 (X=0.9642, Y=1.00, Z=0.8249)\n r = X * 3.1339 + Y * -1.617 + Z * -0.4906;\n g = X * -0.9785 + Y * 1.916 + Z * 0.0333;\n b = X * 0.072 + Y * -0.229 + Z * 1.4057;\n } else {\n // Assuming D65 (X=0.9505, Y=1.00, Z=1.0888)\n r = X * 3.2406 + Y * -1.5372 + Z * -0.4986;\n g = X * -0.9689 + Y * 1.8758 + Z * 0.0415;\n b = X * 0.0557 + Y * -0.204 + Z * 1.057;\n }\n // Convert the color values to the [0,255] range (clamping is automatic).\n dest[destOffset] = Math.sqrt(r) * 255;\n dest[destOffset + 1] = Math.sqrt(g) * 255;\n dest[destOffset + 2] = Math.sqrt(b) * 255;\n }\n\n // eslint-disable-next-line no-shadow\n class LabCS extends ColorSpace {\n constructor(whitePoint, blackPoint, range) {\n super(\"Lab\", 3);\n\n if (!whitePoint) {\n throw new FormatError(\n \"WhitePoint missing - required for color space Lab\"\n );\n }\n blackPoint = blackPoint || [0, 0, 0];\n range = range || [-100, 100, -100, 100];\n\n // Translate args to spec variables\n this.XW = whitePoint[0];\n this.YW = whitePoint[1];\n this.ZW = whitePoint[2];\n this.amin = range[0];\n this.amax = range[1];\n this.bmin = range[2];\n this.bmax = range[3];\n\n // These are here just for completeness - the spec doesn't offer any\n // formulas that use BlackPoint in Lab\n this.XB = blackPoint[0];\n this.YB = blackPoint[1];\n this.ZB = blackPoint[2];\n\n // Validate vars as per spec\n if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n throw new FormatError(\n \"Invalid WhitePoint components, no fallback available\"\n );\n }\n\n if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n info(\"Invalid BlackPoint, falling back to default\");\n this.XB = this.YB = this.ZB = 0;\n }\n\n if (this.amin > this.amax || this.bmin > this.bmax) {\n info(\"Invalid Range, falling back to defaults\");\n this.amin = -100;\n this.amax = 100;\n this.bmin = -100;\n this.bmax = 100;\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'LabCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n convertToRgb(this, src, srcOffset, false, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'LabCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const maxVal = (1 << bits) - 1;\n for (let i = 0; i < count; i++) {\n convertToRgb(this, src, srcOffset, maxVal, dest, destOffset);\n srcOffset += 3;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength * (3 + alpha01)) / 3) | 0;\n }\n\n isDefaultDecode(decodeMap, bpc) {\n // XXX: Decoding is handled with the lab conversion because of the strange\n // ranges that are used.\n return true;\n }\n\n get usesZeroToOneRange() {\n return shadow(this, \"usesZeroToOneRange\", false);\n }\n }\n return LabCS;\n})();\n\nexport { ColorSpace };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable no-var */\n\nimport {\n AbortException,\n assert,\n CMapCompressionType,\n createPromiseCapability,\n FONT_IDENTITY_MATRIX,\n FormatError,\n IDENTITY_MATRIX,\n info,\n isArrayEqual,\n OPS,\n RenderingIntentFlag,\n shadow,\n stringToPDFString,\n TextRenderingMode,\n UNSUPPORTED_FEATURES,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport { CMapFactory, IdentityCMap } from \"./cmap.js\";\nimport { Cmd, Dict, EOF, isName, Name, Ref, RefSet } from \"./primitives.js\";\nimport { ErrorFont, Font } from \"./fonts.js\";\nimport { FontFlags, getFontType } from \"./fonts_utils.js\";\nimport {\n getEncoding,\n MacRomanEncoding,\n StandardEncoding,\n SymbolSetEncoding,\n WinAnsiEncoding,\n ZapfDingbatsEncoding,\n} from \"./encodings.js\";\nimport {\n getFontNameToFileMap,\n getSerifFonts,\n getStandardFontName,\n getStdFontMap,\n getSymbolsFonts,\n} from \"./standard_fonts.js\";\nimport {\n getNormalizedUnicodes,\n getUnicodeForGlyph,\n reverseIfRtl,\n} from \"./unicode.js\";\nimport { getTilingPatternIR, Pattern } from \"./pattern.js\";\nimport { getXfaFontDict, getXfaFontName } from \"./xfa_fonts.js\";\nimport { IdentityToUnicodeMap, ToUnicodeMap } from \"./to_unicode_map.js\";\nimport { isPDFFunction, PDFFunctionFactory } from \"./function.js\";\nimport { Lexer, Parser } from \"./parser.js\";\nimport {\n LocalColorSpaceCache,\n LocalGStateCache,\n LocalImageCache,\n LocalTilingPatternCache,\n} from \"./image_utils.js\";\nimport { NullStream, Stream } from \"./stream.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { bidi } from \"./bidi.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { getGlyphsUnicode } from \"./glyphlist.js\";\nimport { getLookupTableFactory } from \"./core_utils.js\";\nimport { getMetrics } from \"./metrics.js\";\nimport { MurmurHash3_64 } from \"../shared/murmurhash3.js\";\nimport { OperatorList } from \"./operator_list.js\";\nimport { PDFImage } from \"./image.js\";\nimport {BoundingBoxesCalculator} from \"./bounding_boxes\";\n\nconst DefaultPartialEvaluatorOptions = Object.freeze({\n maxImageSize: -1,\n disableFontFace: false,\n ignoreErrors: false,\n isEvalSupported: true,\n fontExtraProperties: false,\n useSystemFonts: true,\n cMapUrl: null,\n standardFontDataUrl: null,\n});\n\nconst PatternType = {\n TILING: 1,\n SHADING: 2,\n};\n\n// Optionally avoid sending individual, or very few, text chunks to reduce\n// `postMessage` overhead with ReadableStream (see issue 13962).\n//\n// PLEASE NOTE: This value should *not* be too large (it's used as a lower limit\n// in `enqueueChunk`), since that would cause streaming of textContent to become\n// essentially useless in practice by sending all (or most) chunks at once.\n// Also, a too large value would (indirectly) affect the main-thread `textLayer`\n// building negatively by forcing all textContent to be handled at once, which\n// could easily end up hurting *overall* performance (e.g. rendering as well).\nconst TEXT_CHUNK_BATCH_SIZE = 10;\n\nconst deferred = Promise.resolve();\n\n// Convert PDF blend mode names to HTML5 blend mode names.\nfunction normalizeBlendMode(value, parsingArray = false) {\n if (Array.isArray(value)) {\n // Use the first *supported* BM value in the Array (fixes issue11279.pdf).\n for (let i = 0, ii = value.length; i < ii; i++) {\n const maybeBM = normalizeBlendMode(value[i], /* parsingArray = */ true);\n if (maybeBM) {\n return maybeBM;\n }\n }\n warn(`Unsupported blend mode Array: ${value}`);\n return \"source-over\";\n }\n\n if (!(value instanceof Name)) {\n if (parsingArray) {\n return null;\n }\n return \"source-over\";\n }\n switch (value.name) {\n case \"Normal\":\n case \"Compatible\":\n return \"source-over\";\n case \"Multiply\":\n return \"multiply\";\n case \"Screen\":\n return \"screen\";\n case \"Overlay\":\n return \"overlay\";\n case \"Darken\":\n return \"darken\";\n case \"Lighten\":\n return \"lighten\";\n case \"ColorDodge\":\n return \"color-dodge\";\n case \"ColorBurn\":\n return \"color-burn\";\n case \"HardLight\":\n return \"hard-light\";\n case \"SoftLight\":\n return \"soft-light\";\n case \"Difference\":\n return \"difference\";\n case \"Exclusion\":\n return \"exclusion\";\n case \"Hue\":\n return \"hue\";\n case \"Saturation\":\n return \"saturation\";\n case \"Color\":\n return \"color\";\n case \"Luminosity\":\n return \"luminosity\";\n }\n if (parsingArray) {\n return null;\n }\n warn(`Unsupported blend mode: ${value.name}`);\n return \"source-over\";\n}\n\nfunction incrementCachedImageMaskCount(data) {\n if (\n data.fn === OPS.paintImageMaskXObject &&\n data.args[0] &&\n data.args[0].count > 0\n ) {\n data.args[0].count++;\n }\n}\n\n// Trying to minimize Date.now() usage and check every 100 time.\nclass TimeSlotManager {\n static get TIME_SLOT_DURATION_MS() {\n return shadow(this, \"TIME_SLOT_DURATION_MS\", 20);\n }\n\n static get CHECK_TIME_EVERY() {\n return shadow(this, \"CHECK_TIME_EVERY\", 100);\n }\n\n constructor() {\n this.reset();\n }\n\n check() {\n if (++this.checked < TimeSlotManager.CHECK_TIME_EVERY) {\n return false;\n }\n this.checked = 0;\n return this.endTime <= Date.now();\n }\n\n reset() {\n this.endTime = Date.now() + TimeSlotManager.TIME_SLOT_DURATION_MS;\n this.checked = 0;\n }\n}\n\nclass PartialEvaluator {\n constructor({\n xref,\n handler,\n pageIndex,\n idFactory,\n fontCache,\n builtInCMapCache,\n standardFontDataCache,\n globalImageCache,\n options = null,\n }) {\n this.xref = xref;\n this.handler = handler;\n this.pageIndex = pageIndex;\n this.idFactory = idFactory;\n this.fontCache = fontCache;\n this.builtInCMapCache = builtInCMapCache;\n this.standardFontDataCache = standardFontDataCache;\n this.globalImageCache = globalImageCache;\n this.options = options || DefaultPartialEvaluatorOptions;\n this.parsingType3Font = false;\n\n this._fetchBuiltInCMapBound = this.fetchBuiltInCMap.bind(this);\n }\n\n /**\n * Since Functions are only cached (locally) by reference, we can share one\n * `PDFFunctionFactory` instance within this `PartialEvaluator` instance.\n */\n get _pdfFunctionFactory() {\n const pdfFunctionFactory = new PDFFunctionFactory({\n xref: this.xref,\n isEvalSupported: this.options.isEvalSupported,\n });\n return shadow(this, \"_pdfFunctionFactory\", pdfFunctionFactory);\n }\n\n clone(newOptions = null) {\n const newEvaluator = Object.create(this);\n newEvaluator.options = Object.assign(\n Object.create(null),\n this.options,\n newOptions\n );\n return newEvaluator;\n }\n\n hasBlendModes(resources, nonBlendModesSet) {\n if (!(resources instanceof Dict)) {\n return false;\n }\n if (resources.objId && nonBlendModesSet.has(resources.objId)) {\n return false;\n }\n\n const processed = new RefSet(nonBlendModesSet);\n if (resources.objId) {\n processed.put(resources.objId);\n }\n\n const nodes = [resources],\n xref = this.xref;\n while (nodes.length) {\n const node = nodes.shift();\n // First check the current resources for blend modes.\n const graphicStates = node.get(\"ExtGState\");\n if (graphicStates instanceof Dict) {\n for (let graphicState of graphicStates.getRawValues()) {\n if (graphicState instanceof Ref) {\n if (processed.has(graphicState)) {\n continue; // The ExtGState has already been processed.\n }\n try {\n graphicState = xref.fetch(graphicState);\n } catch (ex) {\n // Avoid parsing a corrupt ExtGState more than once.\n processed.put(graphicState);\n\n info(`hasBlendModes - ignoring ExtGState: \"${ex}\".`);\n continue;\n }\n }\n if (!(graphicState instanceof Dict)) {\n continue;\n }\n if (graphicState.objId) {\n processed.put(graphicState.objId);\n }\n\n const bm = graphicState.get(\"BM\");\n if (bm instanceof Name) {\n if (bm.name !== \"Normal\") {\n return true;\n }\n continue;\n }\n if (bm !== undefined && Array.isArray(bm)) {\n for (const element of bm) {\n if (element instanceof Name && element.name !== \"Normal\") {\n return true;\n }\n }\n }\n }\n }\n // Descend into the XObjects to look for more resources and blend modes.\n const xObjects = node.get(\"XObject\");\n if (!(xObjects instanceof Dict)) {\n continue;\n }\n for (let xObject of xObjects.getRawValues()) {\n if (xObject instanceof Ref) {\n if (processed.has(xObject)) {\n // The XObject has already been processed, and by avoiding a\n // redundant `xref.fetch` we can *significantly* reduce the load\n // time for badly generated PDF files (fixes issue6961.pdf).\n continue;\n }\n try {\n xObject = xref.fetch(xObject);\n } catch (ex) {\n // Avoid parsing a corrupt XObject more than once.\n processed.put(xObject);\n\n info(`hasBlendModes - ignoring XObject: \"${ex}\".`);\n continue;\n }\n }\n if (!(xObject instanceof BaseStream)) {\n continue;\n }\n if (xObject.dict.objId) {\n processed.put(xObject.dict.objId);\n }\n const xResources = xObject.dict.get(\"Resources\");\n if (!(xResources instanceof Dict)) {\n continue;\n }\n // Checking objId to detect an infinite loop.\n if (xResources.objId && processed.has(xResources.objId)) {\n continue;\n }\n\n nodes.push(xResources);\n if (xResources.objId) {\n processed.put(xResources.objId);\n }\n }\n }\n\n // When no blend modes exist, there's no need re-fetch/re-parse any of the\n // processed `Ref`s again for subsequent pages. This helps reduce redundant\n // `XRef.fetch` calls for some documents (e.g. issue6961.pdf).\n for (const ref of processed) {\n nonBlendModesSet.put(ref);\n }\n return false;\n }\n\n async fetchBuiltInCMap(name) {\n const cachedData = this.builtInCMapCache.get(name);\n if (cachedData) {\n return cachedData;\n }\n let data;\n\n if (this.options.cMapUrl !== null) {\n // Only compressed CMaps are (currently) supported here.\n const url = `${this.options.cMapUrl}${name}.bcmap`;\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(\n `fetchBuiltInCMap: failed to fetch file \"${url}\" with \"${response.statusText}\".`\n );\n }\n data = {\n cMapData: new Uint8Array(await response.arrayBuffer()),\n compressionType: CMapCompressionType.BINARY,\n };\n } else {\n // Get the data on the main-thread instead.\n data = await this.handler.sendWithPromise(\"FetchBuiltInCMap\", { name });\n }\n\n if (data.compressionType !== CMapCompressionType.NONE) {\n // Given the size of uncompressed CMaps, only cache compressed ones.\n this.builtInCMapCache.set(name, data);\n }\n return data;\n }\n\n async fetchStandardFontData(name) {\n const cachedData = this.standardFontDataCache.get(name);\n if (cachedData) {\n return new Stream(cachedData);\n }\n\n // The symbol fonts are not consistent across platforms, always load the\n // standard font data for them.\n if (\n this.options.useSystemFonts &&\n name !== \"Symbol\" &&\n name !== \"ZapfDingbats\"\n ) {\n return null;\n }\n\n const standardFontNameToFileName = getFontNameToFileMap(),\n filename = standardFontNameToFileName[name];\n let data;\n\n if (this.options.standardFontDataUrl !== null) {\n const url = `${this.options.standardFontDataUrl}${filename}`;\n const response = await fetch(url);\n if (!response.ok) {\n warn(\n `fetchStandardFontData: failed to fetch file \"${url}\" with \"${response.statusText}\".`\n );\n } else {\n data = await response.arrayBuffer();\n }\n } else {\n // Get the data on the main-thread instead.\n try {\n data = await this.handler.sendWithPromise(\"FetchStandardFontData\", {\n filename,\n });\n } catch (e) {\n warn(\n `fetchStandardFontData: failed to fetch file \"${filename}\" with \"${e}\".`\n );\n }\n }\n\n if (!data) {\n return null;\n }\n // Cache the \"raw\" standard font data, to avoid fetching it repeatedly\n // (see e.g. issue 11399).\n this.standardFontDataCache.set(name, data);\n\n return new Stream(data);\n }\n\n async buildFormXObject(\n resources,\n xobj,\n smask,\n operatorList,\n task,\n initialState,\n localColorSpaceCache\n ) {\n const dict = xobj.dict;\n const matrix = dict.getArray(\"Matrix\");\n let bbox = dict.getArray(\"BBox\");\n if (Array.isArray(bbox) && bbox.length === 4) {\n bbox = Util.normalizeRect(bbox);\n } else {\n bbox = null;\n }\n\n let optionalContent, groupOptions;\n if (dict.has(\"OC\")) {\n optionalContent = await this.parseMarkedContentProps(\n dict.get(\"OC\"),\n resources\n );\n }\n if (optionalContent !== undefined) {\n operatorList.addOp(OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n }\n const group = dict.get(\"Group\");\n if (group) {\n groupOptions = {\n matrix,\n bbox,\n smask,\n isolated: false,\n knockout: false,\n };\n\n const groupSubtype = group.get(\"S\");\n let colorSpace = null;\n if (isName(groupSubtype, \"Transparency\")) {\n groupOptions.isolated = group.get(\"I\") || false;\n groupOptions.knockout = group.get(\"K\") || false;\n if (group.has(\"CS\")) {\n const cs = group.getRaw(\"CS\");\n\n const cachedColorSpace = ColorSpace.getCached(\n cs,\n this.xref,\n localColorSpaceCache\n );\n if (cachedColorSpace) {\n colorSpace = cachedColorSpace;\n } else {\n colorSpace = await this.parseColorSpace({\n cs,\n resources,\n localColorSpaceCache,\n });\n }\n }\n }\n\n if (smask && smask.backdrop) {\n colorSpace = colorSpace || ColorSpace.singletons.rgb;\n smask.backdrop = colorSpace.getRgb(smask.backdrop, 0);\n }\n\n operatorList.addOp(OPS.beginGroup, [groupOptions]);\n }\n\n // If it's a group, a new canvas will be created that is the size of the\n // bounding box and translated to the correct position so we don't need to\n // apply the bounding box to it.\n const args = group ? [matrix, null] : [matrix, bbox];\n operatorList.addOp(OPS.paintFormXObjectBegin, args);\n\n return this.getOperatorList({\n stream: xobj,\n task,\n resources: dict.get(\"Resources\") || resources,\n operatorList,\n initialState,\n }).then(function () {\n operatorList.addOp(OPS.paintFormXObjectEnd, []);\n\n if (group) {\n operatorList.addOp(OPS.endGroup, [groupOptions]);\n }\n\n if (optionalContent !== undefined) {\n operatorList.addOp(OPS.endMarkedContent, []);\n }\n });\n }\n\n _sendImgData(objId, imgData, cacheGlobally = false) {\n const transfers = imgData ? [imgData.bitmap || imgData.data.buffer] : null;\n\n if (this.parsingType3Font || cacheGlobally) {\n return this.handler.send(\n \"commonobj\",\n [objId, \"Image\", imgData],\n transfers\n );\n }\n return this.handler.send(\n \"obj\",\n [objId, this.pageIndex, \"Image\", imgData],\n transfers\n );\n }\n\n async buildPaintImageXObject({\n resources,\n image,\n isInline = false,\n operatorList,\n cacheKey,\n localImageCache,\n localColorSpaceCache,\n }) {\n const dict = image.dict;\n const imageRef = dict.objId;\n const w = dict.get(\"W\", \"Width\");\n const h = dict.get(\"H\", \"Height\");\n\n if (!(w && typeof w === \"number\") || !(h && typeof h === \"number\")) {\n warn(\"Image dimensions are missing, or not numbers.\");\n return;\n }\n const maxImageSize = this.options.maxImageSize;\n if (maxImageSize !== -1 && w * h > maxImageSize) {\n const msg = \"Image exceeded maximum allowed size and was removed.\";\n\n if (this.options.ignoreErrors) {\n warn(msg);\n return;\n }\n throw new Error(msg);\n }\n\n let optionalContent;\n if (dict.has(\"OC\")) {\n optionalContent = await this.parseMarkedContentProps(\n dict.get(\"OC\"),\n resources\n );\n }\n\n const imageMask = dict.get(\"IM\", \"ImageMask\") || false;\n let imgData, args;\n if (imageMask) {\n // This depends on a tmpCanvas being filled with the\n // current fillStyle, such that processing the pixel\n // data can't be done here. Instead of creating a\n // complete PDFImage, only read the information needed\n // for later.\n const interpolate = dict.get(\"I\", \"Interpolate\");\n const bitStrideLength = (w + 7) >> 3;\n const imgArray = image.getBytes(bitStrideLength * h);\n const decode = dict.getArray(\"D\", \"Decode\");\n\n if (this.parsingType3Font) {\n imgData = PDFImage.createRawMask({\n imgArray,\n width: w,\n height: h,\n imageIsFromDecodeStream: image instanceof DecodeStream,\n inverseDecode: !!decode && decode[0] > 0,\n interpolate,\n });\n\n imgData.cached = !!cacheKey;\n args = [imgData];\n\n operatorList.addImageOps(\n OPS.paintImageMaskXObject,\n args,\n optionalContent\n );\n\n if (cacheKey) {\n localImageCache.set(cacheKey, imageRef, {\n fn: OPS.paintImageMaskXObject,\n args,\n optionalContent,\n });\n }\n return;\n }\n\n imgData = PDFImage.createMask({\n imgArray,\n width: w,\n height: h,\n imageIsFromDecodeStream: image instanceof DecodeStream,\n inverseDecode: !!decode && decode[0] > 0,\n interpolate,\n });\n\n if (imgData.isSingleOpaquePixel) {\n // Handles special case of mainly LaTeX documents which use image\n // masks to draw lines with the current fill style.\n operatorList.addImageOps(\n OPS.paintSolidColorImageMask,\n [],\n optionalContent\n );\n\n if (cacheKey) {\n localImageCache.set(cacheKey, imageRef, {\n fn: OPS.paintSolidColorImageMask,\n args: [],\n optionalContent,\n });\n }\n return;\n }\n\n const objId = `mask_${this.idFactory.createObjId()}`;\n operatorList.addDependency(objId);\n this._sendImgData(objId, imgData);\n\n args = [\n {\n data: objId,\n width: imgData.width,\n height: imgData.height,\n interpolate: imgData.interpolate,\n count: 1,\n },\n ];\n operatorList.addImageOps(\n OPS.paintImageMaskXObject,\n args,\n optionalContent\n );\n\n if (cacheKey) {\n localImageCache.set(cacheKey, imageRef, {\n fn: OPS.paintImageMaskXObject,\n args,\n optionalContent,\n });\n }\n return;\n }\n\n const softMask = dict.get(\"SM\", \"SMask\") || false;\n const mask = dict.get(\"Mask\") || false;\n\n const SMALL_IMAGE_DIMENSIONS = 200;\n // Inlining small images into the queue as RGB data\n if (isInline && !softMask && !mask && w + h < SMALL_IMAGE_DIMENSIONS) {\n const imageObj = new PDFImage({\n xref: this.xref,\n res: resources,\n image,\n isInline,\n pdfFunctionFactory: this._pdfFunctionFactory,\n localColorSpaceCache,\n });\n // We force the use of RGBA_32BPP images here, because we can't handle\n // any other kind.\n imgData = imageObj.createImageData(/* forceRGBA = */ true);\n operatorList.addImageOps(\n OPS.paintInlineImageXObject,\n [imgData],\n optionalContent\n );\n return;\n }\n\n // If there is no imageMask, create the PDFImage and a lot\n // of image processing can be done here.\n let objId = `img_${this.idFactory.createObjId()}`,\n cacheGlobally = false;\n\n if (this.parsingType3Font) {\n objId = `${this.idFactory.getDocId()}_type3_${objId}`;\n } else if (imageRef) {\n cacheGlobally = this.globalImageCache.shouldCache(\n imageRef,\n this.pageIndex\n );\n\n if (cacheGlobally) {\n objId = `${this.idFactory.getDocId()}_${objId}`;\n }\n }\n\n // Ensure that the dependency is added before the image is decoded.\n operatorList.addDependency(objId);\n args = [objId, w, h];\n\n PDFImage.buildImage({\n xref: this.xref,\n res: resources,\n image,\n isInline,\n pdfFunctionFactory: this._pdfFunctionFactory,\n localColorSpaceCache,\n })\n .then(imageObj => {\n imgData = imageObj.createImageData(/* forceRGBA = */ false);\n\n if (cacheKey && imageRef && cacheGlobally) {\n this.globalImageCache.addByteSize(imageRef, imgData.data.length);\n }\n return this._sendImgData(objId, imgData, cacheGlobally);\n })\n .catch(reason => {\n warn(`Unable to decode image \"${objId}\": \"${reason}\".`);\n\n return this._sendImgData(objId, /* imgData = */ null, cacheGlobally);\n });\n\n operatorList.addImageOps(OPS.paintImageXObject, args, optionalContent);\n\n if (cacheKey) {\n localImageCache.set(cacheKey, imageRef, {\n fn: OPS.paintImageXObject,\n args,\n optionalContent,\n });\n\n if (imageRef) {\n assert(!isInline, \"Cannot cache an inline image globally.\");\n this.globalImageCache.addPageIndex(imageRef, this.pageIndex);\n\n if (cacheGlobally) {\n this.globalImageCache.setData(imageRef, {\n objId,\n fn: OPS.paintImageXObject,\n args,\n optionalContent,\n byteSize: 0, // Temporary entry, note `addByteSize` above.\n });\n }\n }\n }\n }\n\n handleSMask(\n smask,\n resources,\n operatorList,\n task,\n stateManager,\n localColorSpaceCache\n ) {\n const smaskContent = smask.get(\"G\");\n const smaskOptions = {\n subtype: smask.get(\"S\").name,\n backdrop: smask.get(\"BC\"),\n };\n\n // The SMask might have a alpha/luminosity value transfer function --\n // we will build a map of integer values in range 0..255 to be fast.\n const transferObj = smask.get(\"TR\");\n if (isPDFFunction(transferObj)) {\n const transferFn = this._pdfFunctionFactory.create(transferObj);\n const transferMap = new Uint8Array(256);\n const tmp = new Float32Array(1);\n for (let i = 0; i < 256; i++) {\n tmp[0] = i / 255;\n transferFn(tmp, 0, tmp, 0);\n transferMap[i] = (tmp[0] * 255) | 0;\n }\n smaskOptions.transferMap = transferMap;\n }\n\n return this.buildFormXObject(\n resources,\n smaskContent,\n smaskOptions,\n operatorList,\n task,\n stateManager.state.clone(),\n localColorSpaceCache\n );\n }\n\n handleTransferFunction(tr) {\n let transferArray;\n if (Array.isArray(tr)) {\n transferArray = tr;\n } else if (isPDFFunction(tr)) {\n transferArray = [tr];\n } else {\n return null; // Not a valid transfer function entry.\n }\n\n const transferMaps = [];\n let numFns = 0,\n numEffectfulFns = 0;\n for (const entry of transferArray) {\n const transferObj = this.xref.fetchIfRef(entry);\n numFns++;\n\n if (isName(transferObj, \"Identity\")) {\n transferMaps.push(null);\n continue;\n } else if (!isPDFFunction(transferObj)) {\n return null; // Not a valid transfer function object.\n }\n\n const transferFn = this._pdfFunctionFactory.create(transferObj);\n const transferMap = new Uint8Array(256),\n tmp = new Float32Array(1);\n for (let j = 0; j < 256; j++) {\n tmp[0] = j / 255;\n transferFn(tmp, 0, tmp, 0);\n transferMap[j] = (tmp[0] * 255) | 0;\n }\n transferMaps.push(transferMap);\n numEffectfulFns++;\n }\n\n if (!(numFns === 1 || numFns === 4)) {\n return null; // Only 1 or 4 functions are supported, by the specification.\n }\n if (numEffectfulFns === 0) {\n return null; // Only /Identity transfer functions found, which are no-ops.\n }\n return transferMaps;\n }\n\n handleTilingType(\n fn,\n color,\n resources,\n pattern,\n patternDict,\n operatorList,\n task,\n localTilingPatternCache\n ) {\n // Create an IR of the pattern code.\n const tilingOpList = new OperatorList();\n // Merge the available resources, to prevent issues when the patternDict\n // is missing some /Resources entries (fixes issue6541.pdf).\n const patternResources = Dict.merge({\n xref: this.xref,\n dictArray: [patternDict.get(\"Resources\"), resources],\n });\n\n return this.getOperatorList({\n stream: pattern,\n task,\n resources: patternResources,\n operatorList: tilingOpList,\n })\n .then(function () {\n const operatorListIR = tilingOpList.getIR();\n const tilingPatternIR = getTilingPatternIR(\n operatorListIR,\n patternDict,\n color\n );\n // Add the dependencies to the parent operator list so they are\n // resolved before the sub operator list is executed synchronously.\n operatorList.addDependencies(tilingOpList.dependencies);\n operatorList.addOp(fn, tilingPatternIR);\n\n if (patternDict.objId) {\n localTilingPatternCache.set(/* name = */ null, patternDict.objId, {\n operatorListIR,\n dict: patternDict,\n });\n }\n })\n .catch(reason => {\n if (reason instanceof AbortException) {\n return;\n }\n if (this.options.ignoreErrors) {\n // Error(s) in the TilingPattern -- sending unsupported feature\n // notification and allow rendering to continue.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorTilingPattern,\n });\n warn(`handleTilingType - ignoring pattern: \"${reason}\".`);\n return;\n }\n throw reason;\n });\n }\n\n handleSetFont(\n resources,\n fontArgs,\n fontRef,\n operatorList,\n task,\n state,\n fallbackFontDict = null,\n cssFontInfo = null\n ) {\n const fontName =\n fontArgs && fontArgs[0] instanceof Name ? fontArgs[0].name : null;\n\n return this.loadFont(\n fontName,\n fontRef,\n resources,\n fallbackFontDict,\n cssFontInfo\n )\n .then(translated => {\n if (!translated.font.isType3Font) {\n return translated;\n }\n return translated\n .loadType3Data(this, resources, task)\n .then(function () {\n // Add the dependencies to the parent operatorList so they are\n // resolved before Type3 operatorLists are executed synchronously.\n operatorList.addDependencies(translated.type3Dependencies);\n\n return translated;\n })\n .catch(reason => {\n // Error in the font data -- sending unsupported feature\n // notification.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorFontLoadType3,\n });\n return new TranslatedFont({\n loadedName: \"g_font_error\",\n font: new ErrorFont(`Type3 font load error: ${reason}`),\n dict: translated.font,\n evaluatorOptions: this.options,\n });\n });\n })\n .then(translated => {\n state.font = translated.font;\n translated.send(this.handler);\n return translated;\n });\n }\n\n handleText(chars, state) {\n const font = state.font;\n const glyphs = font.charsToGlyphs(chars);\n\n if (font.data) {\n const isAddToPathSet = !!(\n state.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG\n );\n if (\n isAddToPathSet ||\n state.fillColorSpace.name === \"Pattern\" ||\n font.disableFontFace ||\n this.options.disableFontFace\n ) {\n PartialEvaluator.buildFontPaths(\n font,\n glyphs,\n this.handler,\n this.options\n );\n }\n }\n return glyphs;\n }\n\n ensureStateFont(state) {\n if (state.font) {\n return;\n }\n const reason = new FormatError(\n \"Missing setFont (Tf) operator before text rendering operator.\"\n );\n\n if (this.options.ignoreErrors) {\n // Missing setFont operator before text rendering operator -- sending\n // unsupported feature notification and allow rendering to continue.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorFontState,\n });\n warn(`ensureStateFont: \"${reason}\".`);\n return;\n }\n throw reason;\n }\n\n async setGState({\n resources,\n gState,\n operatorList,\n cacheKey,\n task,\n stateManager,\n localGStateCache,\n localColorSpaceCache,\n }) {\n const gStateRef = gState.objId;\n let isSimpleGState = true;\n // This array holds the converted/processed state data.\n const gStateObj = [];\n const gStateKeys = gState.getKeys();\n let promise = Promise.resolve();\n for (let i = 0, ii = gStateKeys.length; i < ii; i++) {\n const key = gStateKeys[i];\n const value = gState.get(key);\n switch (key) {\n case \"Type\":\n break;\n case \"LW\":\n case \"LC\":\n case \"LJ\":\n case \"ML\":\n case \"D\":\n case \"RI\":\n case \"FL\":\n case \"CA\":\n case \"ca\":\n gStateObj.push([key, value]);\n break;\n case \"Font\":\n isSimpleGState = false;\n\n promise = promise.then(() => {\n return this.handleSetFont(\n resources,\n null,\n value[0],\n operatorList,\n task,\n stateManager.state\n ).then(function (translated) {\n operatorList.addDependency(translated.loadedName);\n gStateObj.push([key, [translated.loadedName, value[1]]]);\n });\n });\n break;\n case \"BM\":\n gStateObj.push([key, normalizeBlendMode(value)]);\n break;\n case \"SMask\":\n if (isName(value, \"None\")) {\n gStateObj.push([key, false]);\n break;\n }\n if (value instanceof Dict) {\n isSimpleGState = false;\n\n promise = promise.then(() => {\n return this.handleSMask(\n value,\n resources,\n operatorList,\n task,\n stateManager,\n localColorSpaceCache\n );\n });\n gStateObj.push([key, true]);\n } else {\n warn(\"Unsupported SMask type\");\n }\n break;\n case \"TR\":\n const transferMaps = this.handleTransferFunction(value);\n gStateObj.push([key, transferMaps]);\n break;\n // Only generate info log messages for the following since\n // they are unlikely to have a big impact on the rendering.\n case \"OP\":\n case \"op\":\n case \"OPM\":\n case \"BG\":\n case \"BG2\":\n case \"UCR\":\n case \"UCR2\":\n case \"TR2\":\n case \"HT\":\n case \"SM\":\n case \"SA\":\n case \"AIS\":\n case \"TK\":\n // TODO implement these operators.\n info(\"graphic state operator \" + key);\n break;\n default:\n info(\"Unknown graphic state operator \" + key);\n break;\n }\n }\n return promise.then(function () {\n if (gStateObj.length > 0) {\n operatorList.addOp(OPS.setGState, [gStateObj]);\n }\n\n if (isSimpleGState) {\n localGStateCache.set(cacheKey, gStateRef, gStateObj);\n }\n });\n }\n\n loadFont(\n fontName,\n font,\n resources,\n fallbackFontDict = null,\n cssFontInfo = null\n ) {\n const errorFont = async () => {\n return new TranslatedFont({\n loadedName: \"g_font_error\",\n font: new ErrorFont(`Font \"${fontName}\" is not available.`),\n dict: font,\n evaluatorOptions: this.options,\n });\n };\n\n const xref = this.xref;\n let fontRef;\n if (font) {\n // Loading by ref.\n if (!(font instanceof Ref)) {\n throw new FormatError('The \"font\" object should be a reference.');\n }\n fontRef = font;\n } else {\n // Loading by name.\n const fontRes = resources.get(\"Font\");\n if (fontRes) {\n fontRef = fontRes.getRaw(fontName);\n }\n }\n if (!fontRef) {\n const partialMsg = `Font \"${\n fontName || (font && font.toString())\n }\" is not available`;\n\n if (!this.options.ignoreErrors && !this.parsingType3Font) {\n warn(`${partialMsg}.`);\n return errorFont();\n }\n // Font not found -- sending unsupported feature notification.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorFontMissing,\n });\n warn(`${partialMsg} -- attempting to fallback to a default font.`);\n\n // Falling back to a default font to avoid completely broken rendering,\n // but note that there're no guarantees that things will look \"correct\".\n if (fallbackFontDict) {\n fontRef = fallbackFontDict;\n } else {\n fontRef = PartialEvaluator.fallbackFontDict;\n }\n }\n\n if (this.parsingType3Font && this.type3FontRefs.has(fontRef)) {\n return errorFont();\n }\n\n if (this.fontCache.has(fontRef)) {\n return this.fontCache.get(fontRef);\n }\n\n font = xref.fetchIfRef(fontRef);\n if (!(font instanceof Dict)) {\n return errorFont();\n }\n\n // We are holding `font.cacheKey` references only for `fontRef`s that\n // are not actually `Ref`s, but rather `Dict`s. See explanation below.\n if (font.cacheKey && this.fontCache.has(font.cacheKey)) {\n return this.fontCache.get(font.cacheKey);\n }\n\n const fontCapability = createPromiseCapability();\n\n let preEvaluatedFont;\n try {\n preEvaluatedFont = this.preEvaluateFont(font);\n preEvaluatedFont.cssFontInfo = cssFontInfo;\n } catch (reason) {\n warn(`loadFont - preEvaluateFont failed: \"${reason}\".`);\n return errorFont();\n }\n const { descriptor, hash } = preEvaluatedFont;\n\n const fontRefIsRef = fontRef instanceof Ref;\n let fontID;\n if (fontRefIsRef) {\n fontID = `f${fontRef.toString()}`;\n }\n\n if (hash && descriptor instanceof Dict) {\n if (!descriptor.fontAliases) {\n descriptor.fontAliases = Object.create(null);\n }\n const fontAliases = descriptor.fontAliases;\n\n if (fontAliases[hash]) {\n const aliasFontRef = fontAliases[hash].aliasRef;\n if (fontRefIsRef && aliasFontRef && this.fontCache.has(aliasFontRef)) {\n this.fontCache.putAlias(fontRef, aliasFontRef);\n return this.fontCache.get(fontRef);\n }\n } else {\n fontAliases[hash] = {\n fontID: this.idFactory.createFontId(),\n };\n }\n\n if (fontRefIsRef) {\n fontAliases[hash].aliasRef = fontRef;\n }\n fontID = fontAliases[hash].fontID;\n }\n\n // Workaround for bad PDF generators that reference fonts incorrectly,\n // where `fontRef` is a `Dict` rather than a `Ref` (fixes bug946506.pdf).\n // In this case we cannot put the font into `this.fontCache` (which is\n // a `RefSetCache`), since it's not possible to use a `Dict` as a key.\n //\n // However, if we don't cache the font it's not possible to remove it\n // when `cleanup` is triggered from the API, which causes issues on\n // subsequent rendering operations (see issue7403.pdf) and would force us\n // to unnecessarily load the same fonts over and over.\n //\n // Instead, we cheat a bit by using a modified `fontID` as a key in\n // `this.fontCache`, to allow the font to be cached.\n // NOTE: This works because `RefSetCache` calls `toString()` on provided\n // keys. Also, since `fontRef` is used when getting cached fonts,\n // we'll not accidentally match fonts cached with the `fontID`.\n if (fontRefIsRef) {\n this.fontCache.put(fontRef, fontCapability.promise);\n } else {\n if (!fontID) {\n fontID = this.idFactory.createFontId();\n }\n font.cacheKey = `cacheKey_${fontID}`;\n this.fontCache.put(font.cacheKey, fontCapability.promise);\n }\n assert(\n fontID && fontID.startsWith(\"f\"),\n 'The \"fontID\" must be (correctly) defined.'\n );\n\n // Keep track of each font we translated so the caller can\n // load them asynchronously before calling display on a page.\n font.loadedName = `${this.idFactory.getDocId()}_${fontID}`;\n\n this.translateFont(preEvaluatedFont)\n .then(translatedFont => {\n if (translatedFont.fontType !== undefined) {\n xref.stats.addFontType(translatedFont.fontType);\n }\n\n fontCapability.resolve(\n new TranslatedFont({\n loadedName: font.loadedName,\n font: translatedFont,\n dict: font,\n evaluatorOptions: this.options,\n })\n );\n })\n .catch(reason => {\n // TODO fontCapability.reject?\n // Error in the font data -- sending unsupported feature notification.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorFontTranslate,\n });\n warn(`loadFont - translateFont failed: \"${reason}\".`);\n\n try {\n // error, but it's still nice to have font type reported\n const fontFile3 = descriptor && descriptor.get(\"FontFile3\");\n const subtype = fontFile3 && fontFile3.get(\"Subtype\");\n const fontType = getFontType(\n preEvaluatedFont.type,\n subtype && subtype.name\n );\n if (fontType !== undefined) {\n xref.stats.addFontType(fontType);\n }\n } catch (ex) {}\n\n fontCapability.resolve(\n new TranslatedFont({\n loadedName: font.loadedName,\n font: new ErrorFont(\n reason instanceof Error ? reason.message : reason\n ),\n dict: font,\n evaluatorOptions: this.options,\n })\n );\n });\n return fontCapability.promise;\n }\n\n buildPath(operatorList, fn, args, parsingText = false) {\n const lastIndex = operatorList.length - 1;\n if (!args) {\n args = [];\n }\n let minMax;\n if (\n lastIndex < 0 ||\n operatorList.fnArray[lastIndex] !== OPS.constructPath\n ) {\n // Handle corrupt PDF documents that contains path operators inside of\n // text objects, which may shift subsequent text, by enclosing the path\n // operator in save/restore operators (fixes issue10542_reduced.pdf).\n //\n // Note that this will effectively disable the optimization in the\n // `else` branch below, but given that this type of corruption is\n // *extremely* rare that shouldn't really matter much in practice.\n if (parsingText) {\n warn(`Encountered path operator \"${fn}\" inside of a text object.`);\n operatorList.addOp(OPS.save, null);\n }\n\n minMax = [Infinity, -Infinity, Infinity, -Infinity];\n operatorList.addOp(OPS.constructPath, [[fn], args, minMax]);\n\n if (parsingText) {\n operatorList.addOp(OPS.restore, null);\n }\n } else {\n const opArgs = operatorList.argsArray[lastIndex];\n opArgs[0].push(fn);\n Array.prototype.push.apply(opArgs[1], args);\n minMax = opArgs[2];\n }\n\n // Compute min/max in the worker instead of the main thread.\n // If the current matrix (when drawing) is a scaling one\n // then min/max can be easily computed in using those values.\n // Only rectangle, lineTo and moveTo are handled here since\n // Bezier stuff requires to have the starting point.\n switch (fn) {\n case OPS.rectangle:\n minMax[0] = Math.min(minMax[0], args[0], args[0] + args[2]);\n minMax[1] = Math.max(minMax[1], args[0], args[0] + args[2]);\n minMax[2] = Math.min(minMax[2], args[1], args[1] + args[3]);\n minMax[3] = Math.max(minMax[3], args[1], args[1] + args[3]);\n break;\n case OPS.moveTo:\n case OPS.lineTo:\n minMax[0] = Math.min(minMax[0], args[0]);\n minMax[1] = Math.max(minMax[1], args[0]);\n minMax[2] = Math.min(minMax[2], args[1]);\n minMax[3] = Math.max(minMax[3], args[1]);\n break;\n }\n }\n\n parseColorSpace({ cs, resources, localColorSpaceCache }) {\n return ColorSpace.parseAsync({\n cs,\n xref: this.xref,\n resources,\n pdfFunctionFactory: this._pdfFunctionFactory,\n localColorSpaceCache,\n }).catch(reason => {\n if (reason instanceof AbortException) {\n return null;\n }\n if (this.options.ignoreErrors) {\n // Error(s) in the ColorSpace -- sending unsupported feature\n // notification and allow rendering to continue.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorColorSpace,\n });\n warn(`parseColorSpace - ignoring ColorSpace: \"${reason}\".`);\n return null;\n }\n throw reason;\n });\n }\n\n parseShading({\n shading,\n resources,\n localColorSpaceCache,\n localShadingPatternCache,\n }) {\n // Shadings and patterns may be referenced by the same name but the resource\n // dictionary could be different so we can't use the name for the cache key.\n let id = localShadingPatternCache.get(shading);\n if (!id) {\n var shadingFill = Pattern.parseShading(\n shading,\n this.xref,\n resources,\n this.handler,\n this._pdfFunctionFactory,\n localColorSpaceCache\n );\n const patternIR = shadingFill.getIR();\n id = `pattern_${this.idFactory.createObjId()}`;\n localShadingPatternCache.set(shading, id);\n this.handler.send(\"obj\", [id, this.pageIndex, \"Pattern\", patternIR]);\n }\n return id;\n }\n\n handleColorN(\n operatorList,\n fn,\n args,\n cs,\n patterns,\n resources,\n task,\n localColorSpaceCache,\n localTilingPatternCache,\n localShadingPatternCache\n ) {\n // compile tiling patterns\n const patternName = args.pop();\n // SCN/scn applies patterns along with normal colors\n if (patternName instanceof Name) {\n const rawPattern = patterns.getRaw(patternName.name);\n\n const localTilingPattern =\n rawPattern instanceof Ref &&\n localTilingPatternCache.getByRef(rawPattern);\n if (localTilingPattern) {\n try {\n const color = cs.base ? cs.base.getRgb(args, 0) : null;\n const tilingPatternIR = getTilingPatternIR(\n localTilingPattern.operatorListIR,\n localTilingPattern.dict,\n color\n );\n operatorList.addOp(fn, tilingPatternIR);\n return undefined;\n } catch (ex) {\n // Handle any errors during normal TilingPattern parsing.\n }\n }\n\n const pattern = this.xref.fetchIfRef(rawPattern);\n if (pattern) {\n const dict = pattern instanceof BaseStream ? pattern.dict : pattern;\n const typeNum = dict.get(\"PatternType\");\n\n if (typeNum === PatternType.TILING) {\n const color = cs.base ? cs.base.getRgb(args, 0) : null;\n return this.handleTilingType(\n fn,\n color,\n resources,\n pattern,\n dict,\n operatorList,\n task,\n localTilingPatternCache\n );\n } else if (typeNum === PatternType.SHADING) {\n const shading = dict.get(\"Shading\");\n const matrix = dict.getArray(\"Matrix\");\n const objId = this.parseShading({\n shading,\n resources,\n localColorSpaceCache,\n localShadingPatternCache,\n });\n operatorList.addOp(fn, [\"Shading\", objId, matrix]);\n return undefined;\n }\n throw new FormatError(`Unknown PatternType: ${typeNum}`);\n }\n }\n throw new FormatError(`Unknown PatternName: ${patternName}`);\n }\n\n _parseVisibilityExpression(array, nestingCounter, currentResult) {\n const MAX_NESTING = 10;\n if (++nestingCounter > MAX_NESTING) {\n warn(\"Visibility expression is too deeply nested\");\n return;\n }\n const length = array.length;\n const operator = this.xref.fetchIfRef(array[0]);\n if (length < 2 || !(operator instanceof Name)) {\n warn(\"Invalid visibility expression\");\n return;\n }\n switch (operator.name) {\n case \"And\":\n case \"Or\":\n case \"Not\":\n currentResult.push(operator.name);\n break;\n default:\n warn(`Invalid operator ${operator.name} in visibility expression`);\n return;\n }\n for (let i = 1; i < length; i++) {\n const raw = array[i];\n const object = this.xref.fetchIfRef(raw);\n if (Array.isArray(object)) {\n const nestedResult = [];\n currentResult.push(nestedResult);\n // Recursively parse a subarray.\n this._parseVisibilityExpression(object, nestingCounter, nestedResult);\n } else if (raw instanceof Ref) {\n // Reference to an OCG dictionary.\n currentResult.push(raw.toString());\n }\n }\n }\n\n async parseMarkedContentProps(contentProperties, resources) {\n let optionalContent;\n if (contentProperties instanceof Name) {\n const properties = resources.get(\"Properties\");\n optionalContent = properties.get(contentProperties.name);\n } else if (contentProperties instanceof Dict) {\n optionalContent = contentProperties;\n } else {\n throw new FormatError(\"Optional content properties malformed.\");\n }\n\n const optionalContentType = optionalContent.get(\"Type\").name;\n if (optionalContentType === \"OCG\") {\n return {\n type: optionalContentType,\n id: optionalContent.objId,\n };\n } else if (optionalContentType === \"OCMD\") {\n const expression = optionalContent.get(\"VE\");\n if (Array.isArray(expression)) {\n const result = [];\n this._parseVisibilityExpression(expression, 0, result);\n if (result.length > 0) {\n return {\n type: \"OCMD\",\n expression: result,\n };\n }\n }\n\n const optionalContentGroups = optionalContent.get(\"OCGs\");\n if (\n Array.isArray(optionalContentGroups) ||\n optionalContentGroups instanceof Dict\n ) {\n const groupIds = [];\n if (Array.isArray(optionalContentGroups)) {\n for (const ocg of optionalContentGroups) {\n groupIds.push(ocg.toString());\n }\n } else {\n // Dictionary, just use the obj id.\n groupIds.push(optionalContentGroups.objId);\n }\n\n return {\n type: optionalContentType,\n ids: groupIds,\n policy:\n optionalContent.get(\"P\") instanceof Name\n ? optionalContent.get(\"P\").name\n : null,\n expression: null,\n };\n } else if (optionalContentGroups instanceof Ref) {\n return {\n type: optionalContentType,\n id: optionalContentGroups.toString(),\n };\n }\n }\n return null;\n }\n\n getOperatorList({\n stream,\n task,\n resources,\n operatorList,\n initialState = null,\n fallbackFontDict = null,\n intent,\n }) {\n // Ensure that `resources`/`initialState` is correctly initialized,\n // even if the provided parameter is e.g. `null`.\n resources = resources || Dict.empty;\n initialState = initialState || new EvalState();\n\n if (!operatorList) {\n throw new Error('getOperatorList: missing \"operatorList\" parameter');\n }\n\n var boundingBoxCalculator = new BoundingBoxesCalculator(!(intent & RenderingIntentFlag.OPLIST));\n var self = this;\n var xref = this.xref;\n let parsingText = false;\n const localImageCache = new LocalImageCache();\n const localColorSpaceCache = new LocalColorSpaceCache();\n const localGStateCache = new LocalGStateCache();\n const localTilingPatternCache = new LocalTilingPatternCache();\n const localShadingPatternCache = new Map();\n\n const xobjs = resources.get(\"XObject\") || Dict.empty;\n const patterns = resources.get(\"Pattern\") || Dict.empty;\n const stateManager = new StateManager(initialState);\n const preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n const timeSlotManager = new TimeSlotManager();\n\n function closePendingRestoreOPS(argument) {\n for (let i = 0, ii = preprocessor.savedStatesDepth; i < ii; i++) {\n operatorList.addOp(OPS.restore, []);\n }\n }\n\n return new Promise(function promiseBody(resolve, reject) {\n const next = function (promise) {\n Promise.all([promise, operatorList.ready]).then(function () {\n try {\n promiseBody(resolve, reject);\n } catch (ex) {\n reject(ex);\n }\n }, reject);\n };\n task.ensureNotTerminated();\n timeSlotManager.reset();\n\n const operation = {};\n let stop, i, ii, cs, name, isValidName;\n while (!(stop = timeSlotManager.check())) {\n // The arguments parsed by read() are used beyond this loop, so we\n // cannot reuse the same array on each iteration. Therefore we pass\n // in |null| as the initial value (see the comment on\n // EvaluatorPreprocessor_read() for why).\n operation.args = null;\n if (!preprocessor.read(operation)) {\n break;\n }\n let args = operation.args;\n let fn = operation.fn;\n boundingBoxCalculator.incrementOperation(fn);\n\n switch (fn | 0) {\n case OPS.paintXObject:\n // eagerly compile XForm objects\n isValidName = args[0] instanceof Name;\n name = args[0].name;\n\n if (isValidName) {\n const localImage = localImageCache.getByName(name);\n if (localImage) {\n boundingBoxCalculator.parseOperator(OPS.paintXObject, [\"Image\"]);\n operatorList.addImageOps(\n localImage.fn,\n localImage.args,\n localImage.optionalContent\n );\n\n incrementCachedImageMaskCount(localImage);\n args = null;\n continue;\n }\n }\n\n next(\n new Promise(function (resolveXObject, rejectXObject) {\n if (!isValidName) {\n throw new FormatError(\"XObject must be referred to by name.\");\n }\n\n let xobj = xobjs.getRaw(name);\n if (xobj instanceof Ref) {\n const localImage = localImageCache.getByRef(xobj);\n if (localImage) {\n boundingBoxCalculator.parseOperator(OPS.paintXObject, [\"Image\"]);\n operatorList.addImageOps(\n localImage.fn,\n localImage.args,\n localImage.optionalContent\n );\n\n incrementCachedImageMaskCount(localImage);\n resolveXObject();\n return;\n }\n\n const globalImage = self.globalImageCache.getData(\n xobj,\n self.pageIndex\n );\n if (globalImage) {\n boundingBoxCalculator.parseOperator(OPS.paintXObject, [\"Image\"]);\n operatorList.addDependency(globalImage.objId);\n operatorList.addImageOps(\n globalImage.fn,\n globalImage.args,\n globalImage.optionalContent\n );\n\n resolveXObject();\n return;\n }\n\n xobj = xref.fetch(xobj);\n }\n\n if (!(xobj instanceof BaseStream)) {\n throw new FormatError(\"XObject should be a stream\");\n }\n\n const type = xobj.dict.get(\"Subtype\");\n if (!(type instanceof Name)) {\n throw new FormatError(\"XObject should have a Name subtype\");\n }\n\n if (type.name === \"Form\") {\n stateManager.save();\n self\n .buildFormXObject(\n resources,\n xobj,\n null,\n operatorList,\n task,\n stateManager.state.clone(),\n localColorSpaceCache\n )\n .then(function () {\n stateManager.restore();\n resolveXObject();\n }, rejectXObject);\n return;\n } else if (type.name === \"Image\") {\n boundingBoxCalculator.parseOperator(OPS.paintXObject, [type.name]);\n self\n .buildPaintImageXObject({\n resources,\n image: xobj,\n operatorList,\n cacheKey: name,\n localImageCache,\n localColorSpaceCache,\n })\n .then(resolveXObject, rejectXObject);\n return;\n } else if (type.name === \"PS\") {\n // PostScript XObjects are unused when viewing documents.\n // See section 4.7.1 of Adobe's PDF reference.\n info(\"Ignored XObject subtype PS\");\n } else {\n throw new FormatError(\n `Unhandled XObject subtype ${type.name}`\n );\n }\n resolveXObject();\n }).catch(function (reason) {\n if (reason instanceof AbortException) {\n return;\n }\n if (self.options.ignoreErrors) {\n // Error(s) in the XObject -- sending unsupported feature\n // notification and allow rendering to continue.\n self.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorXObject,\n });\n warn(`getOperatorList - ignoring XObject: \"${reason}\".`);\n return;\n }\n throw reason;\n })\n );\n return;\n case OPS.setFont:\n var fontSize = args[1];\n // eagerly collect all fonts\n next(\n self\n .handleSetFont(\n resources,\n args,\n null,\n operatorList,\n task,\n stateManager.state,\n fallbackFontDict\n )\n .then(function (translated) { \n boundingBoxCalculator.parseOperator(OPS.setFont, [fontSize, translated]);\n operatorList.addDependency(translated.loadedName);\n operatorList.addOp(OPS.setFont, [translated.loadedName, fontSize]);\n })\n );\n return;\n case OPS.beginText:\n parsingText = true;\n break;\n case OPS.endText:\n parsingText = false;\n break;\n case OPS.endInlineImage:\n var cacheKey = args[0].cacheKey;\n if (cacheKey) {\n const localImage = localImageCache.getByName(cacheKey);\n if (localImage) {\n operatorList.addImageOps(\n localImage.fn,\n localImage.args,\n localImage.optionalContent\n );\n\n incrementCachedImageMaskCount(localImage);\n args = null;\n continue;\n }\n }\n next(\n self.buildPaintImageXObject({\n resources,\n image: args[0],\n isInline: true,\n operatorList,\n cacheKey,\n localImageCache,\n localColorSpaceCache,\n })\n );\n boundingBoxCalculator.parseOperator(fn, args);\n return;\n case OPS.showText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n args[0] = self.handleText(args[0], stateManager.state);\n break;\n case OPS.showSpacedText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n var arr = args[0];\n var combinedGlyphs = [];\n var arrLength = arr.length;\n var state = stateManager.state;\n for (i = 0; i < arrLength; ++i) {\n const arrItem = arr[i];\n if (typeof arrItem === \"string\") {\n Array.prototype.push.apply(\n combinedGlyphs,\n self.handleText(arrItem, state)\n );\n } else if (typeof arrItem === \"number\") {\n combinedGlyphs.push(arrItem);\n }\n }\n args[0] = combinedGlyphs;\n fn = OPS.showText;\n break;\n case OPS.nextLineShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n operatorList.addOp(OPS.nextLine);\n boundingBoxCalculator.parseOperator(OPS.nextLine);\n args[0] = self.handleText(args[0], stateManager.state);\n fn = OPS.showText;\n break;\n case OPS.nextLineSetSpacingShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n operatorList.addOp(OPS.nextLine);\n operatorList.addOp(OPS.setWordSpacing, [args.shift()]);\n operatorList.addOp(OPS.setCharSpacing, [args.shift()]);\n boundingBoxCalculator.parseOperator(OPS.nextLine);\n boundingBoxCalculator.parseOperator(OPS.setWordSpacing, [args.shift()]);\n boundingBoxCalculator.parseOperator(OPS.setCharSpacing, [args.shift()]);\n args[0] = self.handleText(args[0], stateManager.state);\n fn = OPS.showText;\n break;\n case OPS.setTextRenderingMode:\n stateManager.state.textRenderingMode = args[0];\n break;\n\n case OPS.setFillColorSpace: {\n const cachedColorSpace = ColorSpace.getCached(\n args[0],\n xref,\n localColorSpaceCache\n );\n if (cachedColorSpace) {\n stateManager.state.fillColorSpace = cachedColorSpace;\n continue;\n }\n\n next(\n self\n .parseColorSpace({\n cs: args[0],\n resources,\n localColorSpaceCache,\n })\n .then(function (colorSpace) {\n boundingBoxCalculator.parseOperator(fn, args);\n if (colorSpace) {\n stateManager.state.fillColorSpace = colorSpace;\n }\n })\n );\n return;\n }\n case OPS.setStrokeColorSpace: {\n const cachedColorSpace = ColorSpace.getCached(\n args[0],\n xref,\n localColorSpaceCache\n );\n if (cachedColorSpace) {\n stateManager.state.strokeColorSpace = cachedColorSpace;\n continue;\n }\n\n next(\n self\n .parseColorSpace({\n cs: args[0],\n resources,\n localColorSpaceCache,\n })\n .then(function (colorSpace) {\n boundingBoxCalculator.parseOperator(fn, args);\n if (colorSpace) {\n stateManager.state.strokeColorSpace = colorSpace;\n }\n })\n );\n return;\n }\n case OPS.setFillColor:\n cs = stateManager.state.fillColorSpace;\n args = cs.getRgb(args, 0);\n fn = OPS.setFillRGBColor;\n break;\n case OPS.setStrokeColor:\n cs = stateManager.state.strokeColorSpace;\n args = cs.getRgb(args, 0);\n fn = OPS.setStrokeRGBColor;\n break;\n case OPS.setFillGray:\n stateManager.state.fillColorSpace = ColorSpace.singletons.gray;\n args = ColorSpace.singletons.gray.getRgb(args, 0);\n fn = OPS.setFillRGBColor;\n break;\n case OPS.setStrokeGray:\n stateManager.state.strokeColorSpace = ColorSpace.singletons.gray;\n args = ColorSpace.singletons.gray.getRgb(args, 0);\n fn = OPS.setStrokeRGBColor;\n break;\n case OPS.setFillCMYKColor:\n stateManager.state.fillColorSpace = ColorSpace.singletons.cmyk;\n args = ColorSpace.singletons.cmyk.getRgb(args, 0);\n fn = OPS.setFillRGBColor;\n break;\n case OPS.setStrokeCMYKColor:\n stateManager.state.strokeColorSpace = ColorSpace.singletons.cmyk;\n args = ColorSpace.singletons.cmyk.getRgb(args, 0);\n fn = OPS.setStrokeRGBColor;\n break;\n case OPS.setFillRGBColor:\n stateManager.state.fillColorSpace = ColorSpace.singletons.rgb;\n args = ColorSpace.singletons.rgb.getRgb(args, 0);\n break;\n case OPS.setStrokeRGBColor:\n stateManager.state.strokeColorSpace = ColorSpace.singletons.rgb;\n args = ColorSpace.singletons.rgb.getRgb(args, 0);\n break;\n case OPS.setFillColorN:\n cs = stateManager.state.fillColorSpace;\n if (cs.name === \"Pattern\") {\n next(\n self.handleColorN(\n operatorList,\n OPS.setFillColorN,\n args,\n cs,\n patterns,\n resources,\n task,\n localColorSpaceCache,\n localTilingPatternCache,\n localShadingPatternCache\n )\n );\n return;\n }\n args = cs.getRgb(args, 0);\n fn = OPS.setFillRGBColor;\n break;\n case OPS.setStrokeColorN:\n cs = stateManager.state.strokeColorSpace;\n if (cs.name === \"Pattern\") {\n next(\n self.handleColorN(\n operatorList,\n OPS.setStrokeColorN,\n args,\n cs,\n patterns,\n resources,\n task,\n localColorSpaceCache,\n localTilingPatternCache,\n localShadingPatternCache\n )\n );\n return;\n }\n args = cs.getRgb(args, 0);\n fn = OPS.setStrokeRGBColor;\n break;\n\n case OPS.shadingFill:\n var shadingRes = resources.get(\"Shading\");\n if (!shadingRes) {\n throw new FormatError(\"No shading resource found\");\n }\n\n var shading = shadingRes.get(args[0].name);\n if (!shading) {\n throw new FormatError(\"No shading object found\");\n }\n const patternId = self.parseShading({\n shading,\n resources,\n localColorSpaceCache,\n localShadingPatternCache,\n });\n args = [patternId];\n fn = OPS.shadingFill;\n break;\n case OPS.setGState:\n isValidName = args[0] instanceof Name;\n name = args[0].name;\n\n if (isValidName) {\n const localGStateObj = localGStateCache.getByName(name);\n if (localGStateObj) {\n if (localGStateObj.length > 0) {\n operatorList.addOp(OPS.setGState, [localGStateObj]);\n }\n args = null;\n continue;\n }\n }\n\n next(\n new Promise(function (resolveGState, rejectGState) {\n if (!isValidName) {\n throw new FormatError(\"GState must be referred to by name.\");\n }\n\n const extGState = resources.get(\"ExtGState\");\n if (!(extGState instanceof Dict)) {\n throw new FormatError(\"ExtGState should be a dictionary.\");\n }\n\n const gState = extGState.get(name);\n // TODO: Attempt to lookup cached GStates by reference as well,\n // if and only if there are PDF documents where doing so\n // would significantly improve performance.\n if (!(gState instanceof Dict)) {\n throw new FormatError(\"GState should be a dictionary.\");\n }\n\n self\n .setGState({\n resources,\n gState,\n operatorList,\n cacheKey: name,\n task,\n stateManager,\n localGStateCache,\n localColorSpaceCache,\n })\n .then(resolveGState, rejectGState);\n }).catch(function (reason) {\n if (reason instanceof AbortException) {\n return;\n }\n if (self.options.ignoreErrors) {\n // Error(s) in the ExtGState -- sending unsupported feature\n // notification and allow parsing/rendering to continue.\n self.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorExtGState,\n });\n warn(`getOperatorList - ignoring ExtGState: \"${reason}\".`);\n return;\n }\n throw reason;\n })\n );\n boundingBoxCalculator.parseOperator(fn, args);\n return;\n case OPS.moveTo:\n case OPS.lineTo:\n case OPS.curveTo:\n case OPS.curveTo2:\n case OPS.curveTo3:\n case OPS.closePath:\n case OPS.rectangle:\n self.buildPath(operatorList, fn, args, parsingText);\n boundingBoxCalculator.parseOperator(fn, args);\n continue;\n case OPS.markPoint:\n case OPS.markPointProps:\n case OPS.beginCompat:\n case OPS.endCompat:\n // Ignore operators where the corresponding handlers are known to\n // be no-op in CanvasGraphics (display/canvas.js). This prevents\n // serialization errors and is also a bit more efficient.\n // We could also try to serialize all objects in a general way,\n // e.g. as done in https://github.com/mozilla/pdf.js/pull/6266,\n // but doing so is meaningless without knowing the semantics.\n continue;\n case OPS.beginMarkedContentProps:\n boundingBoxCalculator.parseOperator(fn, args);\n if (!(args[0] instanceof Name)) {\n warn(`Expected name for beginMarkedContentProps arg0=${args[0]}`);\n continue;\n }\n if (args[0].name === \"OC\") {\n next(\n self\n .parseMarkedContentProps(args[1], resources)\n .then(data => {\n operatorList.addOp(OPS.beginMarkedContentProps, [\n \"OC\",\n data,\n ]);\n })\n .catch(reason => {\n if (reason instanceof AbortException) {\n return;\n }\n if (self.options.ignoreErrors) {\n self.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorMarkedContent,\n });\n warn(\n `getOperatorList - ignoring beginMarkedContentProps: \"${reason}\".`\n );\n return;\n }\n throw reason;\n })\n );\n return;\n }\n // Other marked content types aren't supported yet.\n args = [\n args[0].name,\n args[1] instanceof Dict ? args[1].get(\"MCID\") : null,\n ];\n\n break;\n case OPS.beginMarkedContent:\n case OPS.endMarkedContent:\n boundingBoxCalculator.parseOperator(fn, args);\n default:\n // Note: Ignore the operator if it has `Dict` arguments, since\n // those are non-serializable, otherwise postMessage will throw\n // \"An object could not be cloned.\".\n if (args !== null) {\n for (i = 0, ii = args.length; i < ii; i++) {\n if (args[i] instanceof Dict) {\n break;\n }\n }\n if (i < ii) {\n warn(\"getOperatorList - ignoring operator: \" + fn);\n continue;\n }\n }\n }\n boundingBoxCalculator.parseOperator(fn, args);\n operatorList.addOp(fn, args);\n }\n if (stop) {\n next(deferred);\n return;\n }\n // Some PDFs don't close all restores inside object/form.\n // Closing those for them.\n closePendingRestoreOPS();\n // Add extra data about marked content and glyphs position as last elements\n // of operator list with corresponding custom functions 'operationPosition'(100)\n // and 'boundingBoxes'(101), because it won't affect on\n // the process of rendering\n resolve([boundingBoxCalculator.boundingBoxes, boundingBoxCalculator.operationArray, boundingBoxCalculator.getNoMCIDBoundingBoxes()]);\n }).catch(reason => {\n if (reason instanceof AbortException) {\n return;\n }\n if (this.options.ignoreErrors) {\n // Error(s) in the OperatorList -- sending unsupported feature\n // notification and allow rendering to continue.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorOperatorList,\n });\n warn(\n `getOperatorList - ignoring errors during \"${task.name}\" ` +\n `task: \"${reason}\".`\n );\n\n closePendingRestoreOPS();\n return;\n }\n throw reason;\n });\n }\n\n getTextContent({\n stream,\n task,\n resources,\n stateManager = null,\n combineTextItems = false,\n includeMarkedContent = false,\n sink,\n seenStyles = new Set(),\n viewBox,\n }) {\n // Ensure that `resources`/`stateManager` is correctly initialized,\n // even if the provided parameter is e.g. `null`.\n resources = resources || Dict.empty;\n stateManager = stateManager || new StateManager(new TextState());\n\n const NormalizedUnicodes = getNormalizedUnicodes();\n\n const textContent = {\n items: [],\n styles: Object.create(null),\n };\n const textContentItem = {\n initialized: false,\n str: [],\n totalWidth: 0,\n totalHeight: 0,\n width: 0,\n height: 0,\n vertical: false,\n prevTransform: null,\n textAdvanceScale: 0,\n spaceInFlowMin: 0,\n spaceInFlowMax: 0,\n trackingSpaceMin: Infinity,\n negativeSpaceMax: -Infinity,\n notASpace: -Infinity,\n transform: null,\n fontName: null,\n hasEOL: false,\n };\n\n // Use a circular buffer (length === 2) to save the last chars in the\n // text stream.\n // This implementation of the circular buffer is using a fixed array\n // and the position of the next element:\n // function addElement(x) {\n // buffer[pos] = x;\n // pos = (pos + 1) % buffer.length;\n // }\n // It's a way faster than:\n // function addElement(x) {\n // buffer.push(x);\n // buffer.shift();\n // }\n //\n // It's useful to know when we need to add a whitespace in the\n // text chunk.\n const twoLastChars = [\" \", \" \"];\n let twoLastCharsPos = 0;\n\n /**\n * Save the last char.\n * @param {string} char\n * @returns {boolean} true when the two last chars before adding the new one\n * are a non-whitespace followed by a whitespace.\n */\n function saveLastChar(char) {\n const nextPos = (twoLastCharsPos + 1) % 2;\n const ret =\n twoLastChars[twoLastCharsPos] !== \" \" && twoLastChars[nextPos] === \" \";\n twoLastChars[twoLastCharsPos] = char;\n twoLastCharsPos = nextPos;\n\n return ret;\n }\n\n function resetLastChars() {\n twoLastChars[0] = twoLastChars[1] = \" \";\n twoLastCharsPos = 0;\n }\n\n // Used in addFakeSpaces.\n\n // A white <= fontSize * TRACKING_SPACE_FACTOR is a tracking space\n // so it doesn't count as a space.\n const TRACKING_SPACE_FACTOR = 0.1;\n\n // When a white <= fontSize * NOT_A_SPACE_FACTOR, there is no space\n // even if one is present in the text stream.\n const NOT_A_SPACE_FACTOR = 0.03;\n\n // A negative white < fontSize * NEGATIVE_SPACE_FACTOR induces\n // a break (a new chunk of text is created).\n // It doesn't change anything when the text is copied but\n // it improves potential mismatch between text layer and canvas.\n const NEGATIVE_SPACE_FACTOR = -0.2;\n\n // A white with a width in [fontSize * MIN_FACTOR; fontSize * MAX_FACTOR]\n // is a space which will be inserted in the current flow of words.\n // If the width is outside of this range then the flow is broken\n // (which means a new span in the text layer).\n // It's useful to adjust the best as possible the span in the layer\n // to what is displayed in the canvas.\n const SPACE_IN_FLOW_MIN_FACTOR = 0.1;\n const SPACE_IN_FLOW_MAX_FACTOR = 0.6;\n\n const self = this;\n const xref = this.xref;\n const showSpacedTextBuffer = [];\n\n // The xobj is parsed iff it's needed, e.g. if there is a `DO` cmd.\n let xobjs = null;\n const emptyXObjectCache = new LocalImageCache();\n const emptyGStateCache = new LocalGStateCache();\n\n const preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n\n let textState;\n\n function getCurrentTextTransform() {\n // 9.4.4 Text Space Details\n const font = textState.font;\n const tsm = [\n textState.fontSize * textState.textHScale,\n 0,\n 0,\n textState.fontSize,\n 0,\n textState.textRise,\n ];\n\n if (\n font.isType3Font &&\n (textState.fontSize <= 1 || font.isCharBBox) &&\n !isArrayEqual(textState.fontMatrix, FONT_IDENTITY_MATRIX)\n ) {\n const glyphHeight = font.bbox[3] - font.bbox[1];\n if (glyphHeight > 0) {\n tsm[3] *= glyphHeight * textState.fontMatrix[3];\n }\n }\n\n return Util.transform(\n textState.ctm,\n Util.transform(textState.textMatrix, tsm)\n );\n }\n\n function ensureTextContentItem() {\n if (textContentItem.initialized) {\n return textContentItem;\n }\n const font = textState.font,\n loadedName = font.loadedName;\n if (!seenStyles.has(loadedName)) {\n seenStyles.add(loadedName);\n\n textContent.styles[loadedName] = {\n fontFamily: font.fallbackName,\n ascent: font.ascent,\n descent: font.descent,\n vertical: font.vertical,\n };\n }\n textContentItem.fontName = loadedName;\n\n const trm = (textContentItem.transform = getCurrentTextTransform());\n if (!font.vertical) {\n textContentItem.width = textContentItem.totalWidth = 0;\n textContentItem.height = textContentItem.totalHeight = Math.hypot(\n trm[2],\n trm[3]\n );\n textContentItem.vertical = false;\n } else {\n textContentItem.width = textContentItem.totalWidth = Math.hypot(\n trm[0],\n trm[1]\n );\n textContentItem.height = textContentItem.totalHeight = 0;\n textContentItem.vertical = true;\n }\n\n const scaleLineX = Math.hypot(\n textState.textLineMatrix[0],\n textState.textLineMatrix[1]\n );\n const scaleCtmX = Math.hypot(textState.ctm[0], textState.ctm[1]);\n textContentItem.textAdvanceScale = scaleCtmX * scaleLineX;\n\n textContentItem.trackingSpaceMin =\n textState.fontSize * TRACKING_SPACE_FACTOR;\n textContentItem.notASpace = textState.fontSize * NOT_A_SPACE_FACTOR;\n textContentItem.negativeSpaceMax =\n textState.fontSize * NEGATIVE_SPACE_FACTOR;\n textContentItem.spaceInFlowMin =\n textState.fontSize * SPACE_IN_FLOW_MIN_FACTOR;\n textContentItem.spaceInFlowMax =\n textState.fontSize * SPACE_IN_FLOW_MAX_FACTOR;\n\n textContentItem.hasEOL = false;\n\n textContentItem.initialized = true;\n return textContentItem;\n }\n\n function updateAdvanceScale() {\n if (!textContentItem.initialized) {\n return;\n }\n\n const scaleLineX = Math.hypot(\n textState.textLineMatrix[0],\n textState.textLineMatrix[1]\n );\n const scaleCtmX = Math.hypot(textState.ctm[0], textState.ctm[1]);\n const scaleFactor = scaleCtmX * scaleLineX;\n if (scaleFactor === textContentItem.textAdvanceScale) {\n return;\n }\n\n if (!textContentItem.vertical) {\n textContentItem.totalWidth +=\n textContentItem.width * textContentItem.textAdvanceScale;\n textContentItem.width = 0;\n } else {\n textContentItem.totalHeight +=\n textContentItem.height * textContentItem.textAdvanceScale;\n textContentItem.height = 0;\n }\n\n textContentItem.textAdvanceScale = scaleFactor;\n }\n\n function runBidiTransform(textChunk) {\n const text = textChunk.str.join(\"\");\n const bidiResult = bidi(text, -1, textChunk.vertical);\n return {\n str: bidiResult.str,\n dir: bidiResult.dir,\n width: Math.abs(textChunk.totalWidth),\n height: Math.abs(textChunk.totalHeight),\n transform: textChunk.transform,\n fontName: textChunk.fontName,\n hasEOL: textChunk.hasEOL,\n };\n }\n\n function handleSetFont(fontName, fontRef) {\n return self\n .loadFont(fontName, fontRef, resources)\n .then(function (translated) {\n if (!translated.font.isType3Font) {\n return translated;\n }\n return translated\n .loadType3Data(self, resources, task)\n .catch(function () {\n // Ignore Type3-parsing errors, since we only use `loadType3Data`\n // here to ensure that we'll always obtain a useful /FontBBox.\n })\n .then(function () {\n return translated;\n });\n })\n .then(function (translated) {\n textState.font = translated.font;\n textState.fontMatrix =\n translated.font.fontMatrix || FONT_IDENTITY_MATRIX;\n });\n }\n\n function applyInverseRotation(x, y, matrix) {\n const scale = Math.hypot(matrix[0], matrix[1]);\n return [\n (matrix[0] * x + matrix[1] * y) / scale,\n (matrix[2] * x + matrix[3] * y) / scale,\n ];\n }\n\n function compareWithLastPosition() {\n const currentTransform = getCurrentTextTransform();\n let posX = currentTransform[4];\n let posY = currentTransform[5];\n\n const shiftedX = posX - viewBox[0];\n const shiftedY = posY - viewBox[1];\n\n if (\n shiftedX < 0 ||\n shiftedX > viewBox[2] ||\n shiftedY < 0 ||\n shiftedY > viewBox[3]\n ) {\n return false;\n }\n\n if (\n !combineTextItems ||\n !textState.font ||\n !textContentItem.prevTransform\n ) {\n return true;\n }\n\n let lastPosX = textContentItem.prevTransform[4];\n let lastPosY = textContentItem.prevTransform[5];\n\n if (lastPosX === posX && lastPosY === posY) {\n return true;\n }\n\n let rotate = -1;\n // Take into account the rotation is the current transform.\n if (\n currentTransform[0] &&\n currentTransform[1] === 0 &&\n currentTransform[2] === 0\n ) {\n rotate = currentTransform[0] > 0 ? 0 : 180;\n } else if (\n currentTransform[1] &&\n currentTransform[0] === 0 &&\n currentTransform[3] === 0\n ) {\n rotate = currentTransform[1] > 0 ? 90 : 270;\n }\n\n switch (rotate) {\n case 0:\n break;\n case 90:\n [posX, posY] = [posY, posX];\n [lastPosX, lastPosY] = [lastPosY, lastPosX];\n break;\n case 180:\n [posX, posY, lastPosX, lastPosY] = [\n -posX,\n -posY,\n -lastPosX,\n -lastPosY,\n ];\n break;\n case 270:\n [posX, posY] = [-posY, -posX];\n [lastPosX, lastPosY] = [-lastPosY, -lastPosX];\n break;\n default:\n // This is not a 0, 90, 180, 270 rotation so:\n // - remove the scale factor from the matrix to get a rotation matrix\n // - apply the inverse (which is the transposed) to the positions\n // and we can then compare positions of the glyphes to detect\n // a whitespace.\n [posX, posY] = applyInverseRotation(posX, posY, currentTransform);\n [lastPosX, lastPosY] = applyInverseRotation(\n lastPosX,\n lastPosY,\n textContentItem.prevTransform\n );\n }\n\n if (textState.font.vertical) {\n const advanceY = (lastPosY - posY) / textContentItem.textAdvanceScale;\n const advanceX = posX - lastPosX;\n\n // When the total height of the current chunk is negative\n // then we're writing from bottom to top.\n const textOrientation = Math.sign(textContentItem.height);\n if (advanceY < textOrientation * textContentItem.negativeSpaceMax) {\n if (\n Math.abs(advanceX) >\n 0.5 * textContentItem.width /* not the same column */\n ) {\n appendEOL();\n return true;\n }\n\n resetLastChars();\n flushTextContentItem();\n return true;\n }\n\n if (Math.abs(advanceX) > textContentItem.width) {\n appendEOL();\n return true;\n }\n\n if (advanceY <= textOrientation * textContentItem.notASpace) {\n // The real spacing between 2 consecutive chars is thin enough to be\n // considered a non-space.\n resetLastChars();\n }\n\n if (advanceY <= textOrientation * textContentItem.trackingSpaceMin) {\n textContentItem.height += advanceY;\n } else if (\n !addFakeSpaces(\n advanceY,\n textContentItem.prevTransform,\n textOrientation\n )\n ) {\n if (textContentItem.str.length === 0) {\n resetLastChars();\n textContent.items.push({\n str: \" \",\n dir: \"ltr\",\n width: 0,\n height: Math.abs(advanceY),\n transform: textContentItem.prevTransform,\n fontName: textContentItem.fontName,\n hasEOL: false,\n });\n } else {\n textContentItem.height += advanceY;\n }\n }\n\n return true;\n }\n\n const advanceX = (posX - lastPosX) / textContentItem.textAdvanceScale;\n const advanceY = posY - lastPosY;\n\n // When the total width of the current chunk is negative\n // then we're writing from right to left.\n const textOrientation = Math.sign(textContentItem.width);\n if (advanceX < textOrientation * textContentItem.negativeSpaceMax) {\n if (\n Math.abs(advanceY) >\n 0.5 * textContentItem.height /* not the same line */\n ) {\n appendEOL();\n return true;\n }\n\n // We're moving back so in case the last char was a whitespace\n // we cancel it: it doesn't make sense to insert it.\n resetLastChars();\n flushTextContentItem();\n return true;\n }\n\n if (Math.abs(advanceY) > textContentItem.height) {\n appendEOL();\n return true;\n }\n\n if (advanceX <= textOrientation * textContentItem.notASpace) {\n // The real spacing between 2 consecutive chars is thin enough to be\n // considered a non-space.\n resetLastChars();\n }\n\n if (advanceX <= textOrientation * textContentItem.trackingSpaceMin) {\n textContentItem.width += advanceX;\n } else if (\n !addFakeSpaces(advanceX, textContentItem.prevTransform, textOrientation)\n ) {\n if (textContentItem.str.length === 0) {\n resetLastChars();\n textContent.items.push({\n str: \" \",\n dir: \"ltr\",\n width: Math.abs(advanceX),\n height: 0,\n transform: textContentItem.prevTransform,\n fontName: textContentItem.fontName,\n hasEOL: false,\n });\n } else {\n textContentItem.width += advanceX;\n }\n }\n\n return true;\n }\n\n function buildTextContentItem({ chars, extraSpacing }) {\n const font = textState.font;\n if (!chars) {\n // Just move according to the space we have.\n const charSpacing = textState.charSpacing + extraSpacing;\n if (charSpacing) {\n if (!font.vertical) {\n textState.translateTextMatrix(\n charSpacing * textState.textHScale,\n 0\n );\n } else {\n textState.translateTextMatrix(0, -charSpacing);\n }\n }\n\n return;\n }\n\n const glyphs = font.charsToGlyphs(chars);\n const scale = textState.fontMatrix[0] * textState.fontSize;\n\n for (let i = 0, ii = glyphs.length; i < ii; i++) {\n const glyph = glyphs[i];\n if (glyph.isInvisibleFormatMark) {\n continue;\n }\n let charSpacing =\n textState.charSpacing + (i + 1 === ii ? extraSpacing : 0);\n\n let glyphWidth = glyph.width;\n if (font.vertical) {\n glyphWidth = glyph.vmetric ? glyph.vmetric[0] : -glyphWidth;\n }\n let scaledDim = glyphWidth * scale;\n\n if (glyph.isWhitespace) {\n // Don't push a \" \" in the textContentItem\n // (except when it's between two non-spaces chars),\n // it will be done (if required) in next call to\n // compareWithLastPosition.\n // This way we can merge real spaces and spaces due to cursor moves.\n if (!font.vertical) {\n charSpacing += scaledDim + textState.wordSpacing;\n textState.translateTextMatrix(\n charSpacing * textState.textHScale,\n 0\n );\n } else {\n charSpacing += -scaledDim + textState.wordSpacing;\n textState.translateTextMatrix(0, -charSpacing);\n }\n saveLastChar(\" \");\n continue;\n }\n\n if (!compareWithLastPosition()) {\n // The glyph is not in page so just skip it.\n continue;\n }\n\n // Must be called after compareWithLastPosition because\n // the textContentItem could have been flushed.\n const textChunk = ensureTextContentItem();\n if (glyph.isZeroWidthDiacritic) {\n scaledDim = 0;\n }\n\n if (!font.vertical) {\n scaledDim *= textState.textHScale;\n textState.translateTextMatrix(scaledDim, 0);\n textChunk.width += scaledDim;\n } else {\n textState.translateTextMatrix(0, scaledDim);\n scaledDim = Math.abs(scaledDim);\n textChunk.height += scaledDim;\n }\n\n if (scaledDim) {\n // Save the position of the last visible character.\n textChunk.prevTransform = getCurrentTextTransform();\n }\n\n let glyphUnicode = glyph.unicode;\n glyphUnicode = NormalizedUnicodes[glyphUnicode] || glyphUnicode;\n glyphUnicode = reverseIfRtl(glyphUnicode);\n if (saveLastChar(glyphUnicode)) {\n // The two last chars are a non-whitespace followed by a whitespace\n // and then this non-whitespace, so we insert a whitespace here.\n // Replaces all whitespaces with standard spaces (0x20), to avoid\n // alignment issues between the textLayer and the canvas if the text\n // contains e.g. tabs (fixes issue6612.pdf).\n textChunk.str.push(\" \");\n }\n textChunk.str.push(glyphUnicode);\n\n if (charSpacing) {\n if (!font.vertical) {\n textState.translateTextMatrix(\n charSpacing * textState.textHScale,\n 0\n );\n } else {\n textState.translateTextMatrix(0, -charSpacing);\n }\n }\n }\n }\n\n function appendEOL() {\n resetLastChars();\n if (textContentItem.initialized) {\n textContentItem.hasEOL = true;\n flushTextContentItem();\n } else {\n textContent.items.push({\n str: \"\",\n dir: \"ltr\",\n width: 0,\n height: 0,\n transform: getCurrentTextTransform(),\n fontName: textState.font.loadedName,\n hasEOL: true,\n });\n }\n }\n\n function addFakeSpaces(width, transf, textOrientation) {\n if (\n textOrientation * textContentItem.spaceInFlowMin <= width &&\n width <= textOrientation * textContentItem.spaceInFlowMax\n ) {\n if (textContentItem.initialized) {\n resetLastChars();\n textContentItem.str.push(\" \");\n }\n return false;\n }\n\n const fontName = textContentItem.fontName;\n\n let height = 0;\n if (textContentItem.vertical) {\n height = width;\n width = 0;\n }\n\n flushTextContentItem();\n resetLastChars();\n textContent.items.push({\n str: \" \",\n // TODO: check if using the orientation from last chunk is\n // better or not.\n dir: \"ltr\",\n width: Math.abs(width),\n height: Math.abs(height),\n transform: transf || getCurrentTextTransform(),\n fontName,\n hasEOL: false,\n });\n\n return true;\n }\n\n function flushTextContentItem() {\n if (!textContentItem.initialized || !textContentItem.str) {\n return;\n }\n\n // Do final text scaling.\n if (!textContentItem.vertical) {\n textContentItem.totalWidth +=\n textContentItem.width * textContentItem.textAdvanceScale;\n } else {\n textContentItem.totalHeight +=\n textContentItem.height * textContentItem.textAdvanceScale;\n }\n\n textContent.items.push(runBidiTransform(textContentItem));\n textContentItem.initialized = false;\n textContentItem.str.length = 0;\n }\n\n function enqueueChunk(batch = false) {\n const length = textContent.items.length;\n if (length === 0) {\n return;\n }\n if (batch && length < TEXT_CHUNK_BATCH_SIZE) {\n return;\n }\n sink.enqueue(textContent, length);\n textContent.items = [];\n textContent.styles = Object.create(null);\n }\n\n const timeSlotManager = new TimeSlotManager();\n\n return new Promise(function promiseBody(resolve, reject) {\n const next = function (promise) {\n enqueueChunk(/* batch = */ true);\n Promise.all([promise, sink.ready]).then(function () {\n try {\n promiseBody(resolve, reject);\n } catch (ex) {\n reject(ex);\n }\n }, reject);\n };\n task.ensureNotTerminated();\n timeSlotManager.reset();\n\n const operation = {};\n let stop,\n args = [];\n while (!(stop = timeSlotManager.check())) {\n // The arguments parsed by read() are not used beyond this loop, so\n // we can reuse the same array on every iteration, thus avoiding\n // unnecessary allocations.\n args.length = 0;\n operation.args = args;\n if (!preprocessor.read(operation)) {\n break;\n }\n textState = stateManager.state;\n const fn = operation.fn;\n args = operation.args;\n\n switch (fn | 0) {\n case OPS.setFont:\n // Optimization to ignore multiple identical Tf commands.\n var fontNameArg = args[0].name,\n fontSizeArg = args[1];\n if (\n textState.font &&\n fontNameArg === textState.fontName &&\n fontSizeArg === textState.fontSize\n ) {\n break;\n }\n\n flushTextContentItem();\n textState.fontName = fontNameArg;\n textState.fontSize = fontSizeArg;\n next(handleSetFont(fontNameArg, null));\n return;\n case OPS.setTextRise:\n textState.textRise = args[0];\n break;\n case OPS.setHScale:\n textState.textHScale = args[0] / 100;\n break;\n case OPS.setLeading:\n textState.leading = args[0];\n break;\n case OPS.moveText:\n textState.translateTextLineMatrix(args[0], args[1]);\n textState.textMatrix = textState.textLineMatrix.slice();\n break;\n case OPS.setLeadingMoveText:\n textState.leading = -args[1];\n textState.translateTextLineMatrix(args[0], args[1]);\n textState.textMatrix = textState.textLineMatrix.slice();\n break;\n case OPS.nextLine:\n textState.carriageReturn();\n break;\n case OPS.setTextMatrix:\n textState.setTextMatrix(\n args[0],\n args[1],\n args[2],\n args[3],\n args[4],\n args[5]\n );\n textState.setTextLineMatrix(\n args[0],\n args[1],\n args[2],\n args[3],\n args[4],\n args[5]\n );\n updateAdvanceScale();\n break;\n case OPS.setCharSpacing:\n textState.charSpacing = args[0];\n break;\n case OPS.setWordSpacing:\n textState.wordSpacing = args[0];\n break;\n case OPS.beginText:\n textState.textMatrix = IDENTITY_MATRIX.slice();\n textState.textLineMatrix = IDENTITY_MATRIX.slice();\n break;\n case OPS.showSpacedText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n const spaceFactor =\n ((textState.font.vertical ? 1 : -1) * textState.fontSize) / 1000;\n const elements = args[0];\n for (let i = 0, ii = elements.length; i < ii - 1; i++) {\n const item = elements[i];\n if (typeof item === \"string\") {\n showSpacedTextBuffer.push(item);\n } else if (typeof item === \"number\" && item !== 0) {\n // PDF Specification 5.3.2 states:\n // The number is expressed in thousandths of a unit of text\n // space.\n // This amount is subtracted from the current horizontal or\n // vertical coordinate, depending on the writing mode.\n // In the default coordinate system, a positive adjustment\n // has the effect of moving the next glyph painted either to\n // the left or down by the given amount.\n const str = showSpacedTextBuffer.join(\"\");\n showSpacedTextBuffer.length = 0;\n buildTextContentItem({\n chars: str,\n extraSpacing: item * spaceFactor,\n });\n }\n }\n\n const item = elements[elements.length - 1];\n if (typeof item === \"string\") {\n showSpacedTextBuffer.push(item);\n }\n\n if (showSpacedTextBuffer.length > 0) {\n const str = showSpacedTextBuffer.join(\"\");\n showSpacedTextBuffer.length = 0;\n buildTextContentItem({\n chars: str,\n extraSpacing: 0,\n });\n }\n break;\n case OPS.showText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n buildTextContentItem({\n chars: args[0],\n extraSpacing: 0,\n });\n break;\n case OPS.nextLineShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n textState.carriageReturn();\n buildTextContentItem({\n chars: args[0],\n extraSpacing: 0,\n });\n break;\n case OPS.nextLineSetSpacingShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n textState.wordSpacing = args[0];\n textState.charSpacing = args[1];\n textState.carriageReturn();\n buildTextContentItem({\n chars: args[2],\n extraSpacing: 0,\n });\n break;\n case OPS.paintXObject:\n flushTextContentItem();\n if (!xobjs) {\n xobjs = resources.get(\"XObject\") || Dict.empty;\n }\n\n var isValidName = args[0] instanceof Name;\n var name = args[0].name;\n\n if (isValidName && emptyXObjectCache.getByName(name)) {\n break;\n }\n\n next(\n new Promise(function (resolveXObject, rejectXObject) {\n if (!isValidName) {\n throw new FormatError(\"XObject must be referred to by name.\");\n }\n\n let xobj = xobjs.getRaw(name);\n if (xobj instanceof Ref) {\n if (emptyXObjectCache.getByRef(xobj)) {\n resolveXObject();\n return;\n }\n\n const globalImage = self.globalImageCache.getData(\n xobj,\n self.pageIndex\n );\n if (globalImage) {\n resolveXObject();\n return;\n }\n\n xobj = xref.fetch(xobj);\n }\n\n if (!(xobj instanceof BaseStream)) {\n throw new FormatError(\"XObject should be a stream\");\n }\n\n const type = xobj.dict.get(\"Subtype\");\n if (!(type instanceof Name)) {\n throw new FormatError(\"XObject should have a Name subtype\");\n }\n\n if (type.name !== \"Form\") {\n emptyXObjectCache.set(name, xobj.dict.objId, true);\n\n resolveXObject();\n return;\n }\n\n // Use a new `StateManager` to prevent incorrect positioning\n // of textItems *after* the Form XObject, since errors in the\n // data can otherwise prevent `restore` operators from\n // executing.\n // NOTE: Only an issue when `options.ignoreErrors === true`.\n const currentState = stateManager.state.clone();\n const xObjStateManager = new StateManager(currentState);\n\n const matrix = xobj.dict.getArray(\"Matrix\");\n if (Array.isArray(matrix) && matrix.length === 6) {\n xObjStateManager.transform(matrix);\n }\n\n // Enqueue the `textContent` chunk before parsing the /Form\n // XObject.\n enqueueChunk();\n const sinkWrapper = {\n enqueueInvoked: false,\n\n enqueue(chunk, size) {\n this.enqueueInvoked = true;\n sink.enqueue(chunk, size);\n },\n\n get desiredSize() {\n return sink.desiredSize;\n },\n\n get ready() {\n return sink.ready;\n },\n };\n\n self\n .getTextContent({\n stream: xobj,\n task,\n resources: xobj.dict.get(\"Resources\") || resources,\n stateManager: xObjStateManager,\n combineTextItems,\n includeMarkedContent,\n sink: sinkWrapper,\n seenStyles,\n viewBox,\n })\n .then(function () {\n if (!sinkWrapper.enqueueInvoked) {\n emptyXObjectCache.set(name, xobj.dict.objId, true);\n }\n resolveXObject();\n }, rejectXObject);\n }).catch(function (reason) {\n if (reason instanceof AbortException) {\n return;\n }\n if (self.options.ignoreErrors) {\n // Error(s) in the XObject -- allow text-extraction to\n // continue.\n warn(`getTextContent - ignoring XObject: \"${reason}\".`);\n return;\n }\n throw reason;\n })\n );\n return;\n case OPS.setGState:\n isValidName = args[0] instanceof Name;\n name = args[0].name;\n\n if (isValidName && emptyGStateCache.getByName(name)) {\n break;\n }\n\n next(\n new Promise(function (resolveGState, rejectGState) {\n if (!isValidName) {\n throw new FormatError(\"GState must be referred to by name.\");\n }\n\n const extGState = resources.get(\"ExtGState\");\n if (!(extGState instanceof Dict)) {\n throw new FormatError(\"ExtGState should be a dictionary.\");\n }\n\n const gState = extGState.get(name);\n // TODO: Attempt to lookup cached GStates by reference as well,\n // if and only if there are PDF documents where doing so\n // would significantly improve performance.\n if (!(gState instanceof Dict)) {\n throw new FormatError(\"GState should be a dictionary.\");\n }\n\n const gStateFont = gState.get(\"Font\");\n if (!gStateFont) {\n emptyGStateCache.set(name, gState.objId, true);\n\n resolveGState();\n return;\n }\n flushTextContentItem();\n\n textState.fontName = null;\n textState.fontSize = gStateFont[1];\n handleSetFont(null, gStateFont[0]).then(\n resolveGState,\n rejectGState\n );\n }).catch(function (reason) {\n if (reason instanceof AbortException) {\n return;\n }\n if (self.options.ignoreErrors) {\n // Error(s) in the ExtGState -- allow text-extraction to\n // continue.\n warn(`getTextContent - ignoring ExtGState: \"${reason}\".`);\n return;\n }\n throw reason;\n })\n );\n return;\n case OPS.beginMarkedContent:\n if (includeMarkedContent) {\n textContent.items.push({\n type: \"beginMarkedContent\",\n tag: args[0] instanceof Name ? args[0].name : null,\n });\n }\n break;\n case OPS.beginMarkedContentProps:\n if (includeMarkedContent) {\n flushTextContentItem();\n let mcid = null;\n if (args[1] instanceof Dict) {\n mcid = args[1].get(\"MCID\");\n }\n textContent.items.push({\n type: \"beginMarkedContentProps\",\n id: Number.isInteger(mcid)\n ? `${self.idFactory.getPageObjId()}_mcid${mcid}`\n : null,\n tag: args[0] instanceof Name ? args[0].name : null,\n });\n }\n break;\n case OPS.endMarkedContent:\n if (includeMarkedContent) {\n flushTextContentItem();\n textContent.items.push({\n type: \"endMarkedContent\",\n });\n }\n break;\n } // switch\n if (textContent.items.length >= sink.desiredSize) {\n // Wait for ready, if we reach highWaterMark.\n stop = true;\n break;\n }\n } // while\n if (stop) {\n next(deferred);\n return;\n }\n flushTextContentItem();\n enqueueChunk();\n resolve();\n }).catch(reason => {\n if (reason instanceof AbortException) {\n return;\n }\n if (this.options.ignoreErrors) {\n // Error(s) in the TextContent -- allow text-extraction to continue.\n warn(\n `getTextContent - ignoring errors during \"${task.name}\" ` +\n `task: \"${reason}\".`\n );\n\n flushTextContentItem();\n enqueueChunk();\n return;\n }\n throw reason;\n });\n }\n\n extractDataStructures(dict, baseDict, properties) {\n const xref = this.xref;\n let cidToGidBytes;\n // 9.10.2\n const toUnicodePromise = this.readToUnicode(\n properties.toUnicode || dict.get(\"ToUnicode\") || baseDict.get(\"ToUnicode\")\n );\n\n if (properties.composite) {\n // CIDSystemInfo helps to match CID to glyphs\n const cidSystemInfo = dict.get(\"CIDSystemInfo\");\n if (cidSystemInfo instanceof Dict) {\n properties.cidSystemInfo = {\n registry: stringToPDFString(cidSystemInfo.get(\"Registry\")),\n ordering: stringToPDFString(cidSystemInfo.get(\"Ordering\")),\n supplement: cidSystemInfo.get(\"Supplement\"),\n };\n }\n\n const cidToGidMap = dict.get(\"CIDToGIDMap\");\n if (cidToGidMap instanceof BaseStream) {\n cidToGidBytes = cidToGidMap.getBytes();\n }\n }\n\n // Based on 9.6.6 of the spec the encoding can come from multiple places\n // and depends on the font type. The base encoding and differences are\n // read here, but the encoding that is actually used is chosen during\n // glyph mapping in the font.\n // TODO: Loading the built in encoding in the font would allow the\n // differences to be merged in here not require us to hold on to it.\n const differences = [];\n let baseEncodingName = null;\n let encoding;\n if (dict.has(\"Encoding\")) {\n encoding = dict.get(\"Encoding\");\n if (encoding instanceof Dict) {\n baseEncodingName = encoding.get(\"BaseEncoding\");\n baseEncodingName =\n baseEncodingName instanceof Name ? baseEncodingName.name : null;\n // Load the differences between the base and original\n if (encoding.has(\"Differences\")) {\n const diffEncoding = encoding.get(\"Differences\");\n let index = 0;\n for (let j = 0, jj = diffEncoding.length; j < jj; j++) {\n const data = xref.fetchIfRef(diffEncoding[j]);\n if (typeof data === \"number\") {\n index = data;\n } else if (data instanceof Name) {\n differences[index++] = data.name;\n } else {\n throw new FormatError(\n `Invalid entry in 'Differences' array: ${data}`\n );\n }\n }\n }\n } else if (encoding instanceof Name) {\n baseEncodingName = encoding.name;\n } else {\n const msg = \"Encoding is not a Name nor a Dict\";\n\n if (!this.options.ignoreErrors) {\n throw new FormatError(msg);\n }\n warn(msg);\n }\n // According to table 114 if the encoding is a named encoding it must be\n // one of these predefined encodings.\n if (\n baseEncodingName !== \"MacRomanEncoding\" &&\n baseEncodingName !== \"MacExpertEncoding\" &&\n baseEncodingName !== \"WinAnsiEncoding\"\n ) {\n baseEncodingName = null;\n }\n }\n\n if (baseEncodingName) {\n properties.defaultEncoding = getEncoding(baseEncodingName);\n } else {\n const isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n const isNonsymbolicFont = !!(properties.flags & FontFlags.Nonsymbolic);\n // According to \"Table 114\" in section \"9.6.6.1 General\" (under\n // \"9.6.6 Character Encoding\") of the PDF specification, a Nonsymbolic\n // font should use the `StandardEncoding` if no encoding is specified.\n encoding = StandardEncoding;\n if (properties.type === \"TrueType\" && !isNonsymbolicFont) {\n encoding = WinAnsiEncoding;\n }\n // The Symbolic attribute can be misused for regular fonts\n // Heuristic: we have to check if the font is a standard one also\n if (isSymbolicFont) {\n encoding = MacRomanEncoding;\n if (!properties.file || properties.isInternalFont) {\n if (/Symbol/i.test(properties.name)) {\n encoding = SymbolSetEncoding;\n } else if (/Dingbats|Wingdings/i.test(properties.name)) {\n encoding = ZapfDingbatsEncoding;\n }\n }\n }\n properties.defaultEncoding = encoding;\n }\n\n properties.differences = differences;\n properties.baseEncodingName = baseEncodingName;\n properties.hasEncoding = !!baseEncodingName || differences.length > 0;\n properties.dict = dict;\n return toUnicodePromise\n .then(readToUnicode => {\n properties.toUnicode = readToUnicode;\n return this.buildToUnicode(properties);\n })\n .then(builtToUnicode => {\n properties.toUnicode = builtToUnicode;\n if (cidToGidBytes) {\n properties.cidToGidMap = this.readCidToGidMap(\n cidToGidBytes,\n builtToUnicode\n );\n }\n return properties;\n });\n }\n\n /**\n * @returns {Array}\n * @private\n */\n _simpleFontToUnicode(properties, forceGlyphs = false) {\n assert(!properties.composite, \"Must be a simple font.\");\n\n const toUnicode = [];\n const encoding = properties.defaultEncoding.slice();\n const baseEncodingName = properties.baseEncodingName;\n // Merge in the differences array.\n const differences = properties.differences;\n for (const charcode in differences) {\n const glyphName = differences[charcode];\n if (glyphName === \".notdef\") {\n // Skip .notdef to prevent rendering errors, e.g. boxes appearing\n // where there should be spaces (fixes issue5256.pdf).\n continue;\n }\n encoding[charcode] = glyphName;\n }\n const glyphsUnicodeMap = getGlyphsUnicode();\n for (const charcode in encoding) {\n // a) Map the character code to a character name.\n let glyphName = encoding[charcode];\n // b) Look up the character name in the Adobe Glyph List (see the\n // Bibliography) to obtain the corresponding Unicode value.\n if (glyphName === \"\") {\n continue;\n } else if (glyphsUnicodeMap[glyphName] === undefined) {\n // (undocumented) c) Few heuristics to recognize unknown glyphs\n // NOTE: Adobe Reader does not do this step, but OSX Preview does\n let code = 0;\n switch (glyphName[0]) {\n case \"G\": // Gxx glyph\n if (glyphName.length === 3) {\n code = parseInt(glyphName.substring(1), 16);\n }\n break;\n case \"g\": // g00xx glyph\n if (glyphName.length === 5) {\n code = parseInt(glyphName.substring(1), 16);\n }\n break;\n case \"C\": // Cdd{d} glyph\n case \"c\": // cdd{d} glyph\n if (glyphName.length >= 3 && glyphName.length <= 4) {\n const codeStr = glyphName.substring(1);\n\n if (forceGlyphs) {\n code = parseInt(codeStr, 16);\n break;\n }\n // Normally the Cdd{d}/cdd{d} glyphName format will contain\n // regular, i.e. base 10, charCodes (see issue4550.pdf)...\n code = +codeStr;\n\n // ... however some PDF generators violate that assumption by\n // containing glyph, i.e. base 16, codes instead.\n // In that case we need to re-parse the *entire* encoding to\n // prevent broken text-selection (fixes issue9655_reduced.pdf).\n if (\n Number.isNaN(code) &&\n Number.isInteger(parseInt(codeStr, 16))\n ) {\n return this._simpleFontToUnicode(\n properties,\n /* forceGlyphs */ true\n );\n }\n }\n break;\n default: // 'uniXXXX'/'uXXXX{XX}' glyphs\n const unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap);\n if (unicode !== -1) {\n code = unicode;\n }\n }\n if (code > 0 && code <= 0x10ffff && Number.isInteger(code)) {\n // If `baseEncodingName` is one the predefined encodings, and `code`\n // equals `charcode`, using the glyph defined in the baseEncoding\n // seems to yield a better `toUnicode` mapping (fixes issue 5070).\n if (baseEncodingName && code === +charcode) {\n const baseEncoding = getEncoding(baseEncodingName);\n if (baseEncoding && (glyphName = baseEncoding[charcode])) {\n toUnicode[charcode] = String.fromCharCode(\n glyphsUnicodeMap[glyphName]\n );\n continue;\n }\n }\n toUnicode[charcode] = String.fromCodePoint(code);\n }\n continue;\n }\n toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]);\n }\n return toUnicode;\n }\n\n /**\n * Builds a char code to unicode map based on section 9.10 of the spec.\n * @param {Object} properties Font properties object.\n * @returns {Promise} A Promise that is resolved with a\n * {ToUnicodeMap|IdentityToUnicodeMap} object.\n */\n async buildToUnicode(properties) {\n properties.hasIncludedToUnicodeMap =\n !!properties.toUnicode && properties.toUnicode.length > 0;\n\n // Section 9.10.2 Mapping Character Codes to Unicode Values\n if (properties.hasIncludedToUnicodeMap) {\n // Some fonts contain incomplete ToUnicode data, causing issues with\n // text-extraction. For simple fonts, containing encoding information,\n // use a fallback ToUnicode map to improve this (fixes issue8229.pdf).\n if (!properties.composite && properties.hasEncoding) {\n properties.fallbackToUnicode = this._simpleFontToUnicode(properties);\n }\n return properties.toUnicode;\n }\n\n // According to the spec if the font is a simple font we should only map\n // to unicode if the base encoding is MacRoman, MacExpert, or WinAnsi or\n // the differences array only contains adobe standard or symbol set names,\n // in pratice it seems better to always try to create a toUnicode map\n // based of the default encoding.\n if (!properties.composite /* is simple font */) {\n return new ToUnicodeMap(this._simpleFontToUnicode(properties));\n }\n\n // If the font is a composite font that uses one of the predefined CMaps\n // listed in Table 118 (except Identity–H and Identity–V) or whose\n // descendant CIDFont uses the Adobe-GB1, Adobe-CNS1, Adobe-Japan1, or\n // Adobe-Korea1 character collection:\n if (\n properties.composite &&\n ((properties.cMap.builtInCMap &&\n !(properties.cMap instanceof IdentityCMap)) ||\n (properties.cidSystemInfo.registry === \"Adobe\" &&\n (properties.cidSystemInfo.ordering === \"GB1\" ||\n properties.cidSystemInfo.ordering === \"CNS1\" ||\n properties.cidSystemInfo.ordering === \"Japan1\" ||\n properties.cidSystemInfo.ordering === \"Korea1\")))\n ) {\n // Then:\n // a) Map the character code to a character identifier (CID) according\n // to the font’s CMap.\n // b) Obtain the registry and ordering of the character collection used\n // by the font’s CMap (for example, Adobe and Japan1) from its\n // CIDSystemInfo dictionary.\n const { registry, ordering } = properties.cidSystemInfo;\n // c) Construct a second CMap name by concatenating the registry and\n // ordering obtained in step (b) in the format registry–ordering–UCS2\n // (for example, Adobe–Japan1–UCS2).\n const ucs2CMapName = Name.get(`${registry}-${ordering}-UCS2`);\n // d) Obtain the CMap with the name constructed in step (c) (available\n // from the ASN Web site; see the Bibliography).\n const ucs2CMap = await CMapFactory.create({\n encoding: ucs2CMapName,\n fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n useCMap: null,\n });\n const toUnicode = [];\n properties.cMap.forEach(function (charcode, cid) {\n if (cid > 0xffff) {\n throw new FormatError(\"Max size of CID is 65,535\");\n }\n // e) Map the CID obtained in step (a) according to the CMap\n // obtained in step (d), producing a Unicode value.\n const ucs2 = ucs2CMap.lookup(cid);\n if (ucs2) {\n toUnicode[charcode] = String.fromCharCode(\n (ucs2.charCodeAt(0) << 8) + ucs2.charCodeAt(1)\n );\n }\n });\n return new ToUnicodeMap(toUnicode);\n }\n\n // The viewer's choice, just use an identity map.\n return new IdentityToUnicodeMap(properties.firstChar, properties.lastChar);\n }\n\n readToUnicode(cmapObj) {\n if (!cmapObj) {\n return Promise.resolve(null);\n }\n if (cmapObj instanceof Name) {\n return CMapFactory.create({\n encoding: cmapObj,\n fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n useCMap: null,\n }).then(function (cmap) {\n if (cmap instanceof IdentityCMap) {\n return new IdentityToUnicodeMap(0, 0xffff);\n }\n return new ToUnicodeMap(cmap.getMap());\n });\n } else if (cmapObj instanceof BaseStream) {\n return CMapFactory.create({\n encoding: cmapObj,\n fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n useCMap: null,\n }).then(\n function (cmap) {\n if (cmap instanceof IdentityCMap) {\n return new IdentityToUnicodeMap(0, 0xffff);\n }\n const map = new Array(cmap.length);\n // Convert UTF-16BE\n // NOTE: cmap can be a sparse array, so use forEach instead of\n // `for(;;)` to iterate over all keys.\n cmap.forEach(function (charCode, token) {\n // Some cmaps contain *only* CID characters (fixes issue9367.pdf).\n if (typeof token === \"number\") {\n map[charCode] = String.fromCodePoint(token);\n return;\n }\n const str = [];\n for (let k = 0; k < token.length; k += 2) {\n const w1 = (token.charCodeAt(k) << 8) | token.charCodeAt(k + 1);\n if ((w1 & 0xf800) !== 0xd800) {\n // w1 < 0xD800 || w1 > 0xDFFF\n str.push(w1);\n continue;\n }\n k += 2;\n const w2 = (token.charCodeAt(k) << 8) | token.charCodeAt(k + 1);\n str.push(((w1 & 0x3ff) << 10) + (w2 & 0x3ff) + 0x10000);\n }\n map[charCode] = String.fromCodePoint.apply(String, str);\n });\n return new ToUnicodeMap(map);\n },\n reason => {\n if (reason instanceof AbortException) {\n return null;\n }\n if (this.options.ignoreErrors) {\n // Error in the ToUnicode data -- sending unsupported feature\n // notification and allow font parsing to continue.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorFontToUnicode,\n });\n warn(`readToUnicode - ignoring ToUnicode data: \"${reason}\".`);\n return null;\n }\n throw reason;\n }\n );\n }\n return Promise.resolve(null);\n }\n\n readCidToGidMap(glyphsData, toUnicode) {\n // Extract the encoding from the CIDToGIDMap\n\n // Set encoding 0 to later verify the font has an encoding\n const result = [];\n for (let j = 0, jj = glyphsData.length; j < jj; j++) {\n const glyphID = (glyphsData[j++] << 8) | glyphsData[j];\n const code = j >> 1;\n if (glyphID === 0 && !toUnicode.has(code)) {\n continue;\n }\n result[code] = glyphID;\n }\n return result;\n }\n\n extractWidths(dict, descriptor, properties) {\n const xref = this.xref;\n let glyphsWidths = [];\n let defaultWidth = 0;\n const glyphsVMetrics = [];\n let defaultVMetrics;\n let i, ii, j, jj, start, code, widths;\n if (properties.composite) {\n defaultWidth = dict.has(\"DW\") ? dict.get(\"DW\") : 1000;\n\n widths = dict.get(\"W\");\n if (widths) {\n for (i = 0, ii = widths.length; i < ii; i++) {\n start = xref.fetchIfRef(widths[i++]);\n code = xref.fetchIfRef(widths[i]);\n if (Array.isArray(code)) {\n for (j = 0, jj = code.length; j < jj; j++) {\n glyphsWidths[start++] = xref.fetchIfRef(code[j]);\n }\n } else {\n const width = xref.fetchIfRef(widths[++i]);\n for (j = start; j <= code; j++) {\n glyphsWidths[j] = width;\n }\n }\n }\n }\n\n if (properties.vertical) {\n let vmetrics = dict.getArray(\"DW2\") || [880, -1000];\n defaultVMetrics = [vmetrics[1], defaultWidth * 0.5, vmetrics[0]];\n vmetrics = dict.get(\"W2\");\n if (vmetrics) {\n for (i = 0, ii = vmetrics.length; i < ii; i++) {\n start = xref.fetchIfRef(vmetrics[i++]);\n code = xref.fetchIfRef(vmetrics[i]);\n if (Array.isArray(code)) {\n for (j = 0, jj = code.length; j < jj; j++) {\n glyphsVMetrics[start++] = [\n xref.fetchIfRef(code[j++]),\n xref.fetchIfRef(code[j++]),\n xref.fetchIfRef(code[j]),\n ];\n }\n } else {\n const vmetric = [\n xref.fetchIfRef(vmetrics[++i]),\n xref.fetchIfRef(vmetrics[++i]),\n xref.fetchIfRef(vmetrics[++i]),\n ];\n for (j = start; j <= code; j++) {\n glyphsVMetrics[j] = vmetric;\n }\n }\n }\n }\n }\n } else {\n const firstChar = properties.firstChar;\n widths = dict.get(\"Widths\");\n if (widths) {\n j = firstChar;\n for (i = 0, ii = widths.length; i < ii; i++) {\n glyphsWidths[j++] = xref.fetchIfRef(widths[i]);\n }\n defaultWidth = parseFloat(descriptor.get(\"MissingWidth\")) || 0;\n } else {\n // Trying get the BaseFont metrics (see comment above).\n const baseFontName = dict.get(\"BaseFont\");\n if (baseFontName instanceof Name) {\n const metrics = this.getBaseFontMetrics(baseFontName.name);\n\n glyphsWidths = this.buildCharCodeToWidth(metrics.widths, properties);\n defaultWidth = metrics.defaultWidth;\n }\n }\n }\n\n // Heuristic: detection of monospace font by checking all non-zero widths\n let isMonospace = true;\n let firstWidth = defaultWidth;\n for (const glyph in glyphsWidths) {\n const glyphWidth = glyphsWidths[glyph];\n if (!glyphWidth) {\n continue;\n }\n if (!firstWidth) {\n firstWidth = glyphWidth;\n continue;\n }\n if (firstWidth !== glyphWidth) {\n isMonospace = false;\n break;\n }\n }\n if (isMonospace) {\n properties.flags |= FontFlags.FixedPitch;\n }\n\n properties.defaultWidth = defaultWidth;\n properties.widths = glyphsWidths;\n properties.defaultVMetrics = defaultVMetrics;\n properties.vmetrics = glyphsVMetrics;\n }\n\n isSerifFont(baseFontName) {\n // Simulating descriptor flags attribute\n const fontNameWoStyle = baseFontName.split(\"-\")[0];\n return (\n fontNameWoStyle in getSerifFonts() ||\n fontNameWoStyle.search(/serif/gi) !== -1\n );\n }\n\n getBaseFontMetrics(name) {\n let defaultWidth = 0;\n let widths = Object.create(null);\n let monospace = false;\n const stdFontMap = getStdFontMap();\n let lookupName = stdFontMap[name] || name;\n const Metrics = getMetrics();\n\n if (!(lookupName in Metrics)) {\n // Use default fonts for looking up font metrics if the passed\n // font is not a base font\n if (this.isSerifFont(name)) {\n lookupName = \"Times-Roman\";\n } else {\n lookupName = \"Helvetica\";\n }\n }\n const glyphWidths = Metrics[lookupName];\n\n if (typeof glyphWidths === \"number\") {\n defaultWidth = glyphWidths;\n monospace = true;\n } else {\n widths = glyphWidths(); // expand lazy widths array\n }\n\n return {\n defaultWidth,\n monospace,\n widths,\n };\n }\n\n buildCharCodeToWidth(widthsByGlyphName, properties) {\n const widths = Object.create(null);\n const differences = properties.differences;\n const encoding = properties.defaultEncoding;\n for (let charCode = 0; charCode < 256; charCode++) {\n if (charCode in differences && widthsByGlyphName[differences[charCode]]) {\n widths[charCode] = widthsByGlyphName[differences[charCode]];\n continue;\n }\n if (charCode in encoding && widthsByGlyphName[encoding[charCode]]) {\n widths[charCode] = widthsByGlyphName[encoding[charCode]];\n continue;\n }\n }\n return widths;\n }\n\n preEvaluateFont(dict) {\n const baseDict = dict;\n let type = dict.get(\"Subtype\");\n if (!(type instanceof Name)) {\n throw new FormatError(\"invalid font Subtype\");\n }\n\n let composite = false;\n let hash, toUnicode;\n if (type.name === \"Type0\") {\n // If font is a composite\n // - get the descendant font\n // - set the type according to the descendant font\n // - get the FontDescriptor from the descendant font\n const df = dict.get(\"DescendantFonts\");\n if (!df) {\n throw new FormatError(\"Descendant fonts are not specified\");\n }\n dict = Array.isArray(df) ? this.xref.fetchIfRef(df[0]) : df;\n\n if (!(dict instanceof Dict)) {\n throw new FormatError(\"Descendant font is not a dictionary.\");\n }\n type = dict.get(\"Subtype\");\n if (!(type instanceof Name)) {\n throw new FormatError(\"invalid font Subtype\");\n }\n composite = true;\n }\n\n const firstChar = dict.get(\"FirstChar\") || 0,\n lastChar = dict.get(\"LastChar\") || (composite ? 0xffff : 0xff);\n const descriptor = dict.get(\"FontDescriptor\");\n if (descriptor) {\n hash = new MurmurHash3_64();\n\n const encoding = baseDict.getRaw(\"Encoding\");\n if (encoding instanceof Name) {\n hash.update(encoding.name);\n } else if (encoding instanceof Ref) {\n hash.update(encoding.toString());\n } else if (encoding instanceof Dict) {\n for (const entry of encoding.getRawValues()) {\n if (entry instanceof Name) {\n hash.update(entry.name);\n } else if (entry instanceof Ref) {\n hash.update(entry.toString());\n } else if (Array.isArray(entry)) {\n // 'Differences' array (fixes bug1157493.pdf).\n const diffLength = entry.length,\n diffBuf = new Array(diffLength);\n\n for (let j = 0; j < diffLength; j++) {\n const diffEntry = entry[j];\n if (diffEntry instanceof Name) {\n diffBuf[j] = diffEntry.name;\n } else if (\n typeof diffEntry === \"number\" ||\n diffEntry instanceof Ref\n ) {\n diffBuf[j] = diffEntry.toString();\n }\n }\n hash.update(diffBuf.join());\n }\n }\n }\n\n hash.update(`${firstChar}-${lastChar}`); // Fixes issue10665_reduced.pdf\n\n toUnicode = dict.get(\"ToUnicode\") || baseDict.get(\"ToUnicode\");\n if (toUnicode instanceof BaseStream) {\n const stream = toUnicode.str || toUnicode;\n const uint8array = stream.buffer\n ? new Uint8Array(stream.buffer.buffer, 0, stream.bufferLength)\n : new Uint8Array(\n stream.bytes.buffer,\n stream.start,\n stream.end - stream.start\n );\n hash.update(uint8array);\n } else if (toUnicode instanceof Name) {\n hash.update(toUnicode.name);\n }\n\n const widths = dict.get(\"Widths\") || baseDict.get(\"Widths\");\n if (Array.isArray(widths)) {\n const widthsBuf = [];\n for (const entry of widths) {\n if (typeof entry === \"number\" || entry instanceof Ref) {\n widthsBuf.push(entry.toString());\n }\n }\n hash.update(widthsBuf.join());\n }\n\n if (composite) {\n hash.update(\"compositeFont\");\n\n const compositeWidths = dict.get(\"W\") || baseDict.get(\"W\");\n if (Array.isArray(compositeWidths)) {\n const widthsBuf = [];\n for (const entry of compositeWidths) {\n if (typeof entry === \"number\" || entry instanceof Ref) {\n widthsBuf.push(entry.toString());\n } else if (Array.isArray(entry)) {\n const subWidthsBuf = [];\n for (const element of entry) {\n if (typeof element === \"number\" || element instanceof Ref) {\n subWidthsBuf.push(element.toString());\n }\n }\n widthsBuf.push(`[${subWidthsBuf.join()}]`);\n }\n }\n hash.update(widthsBuf.join());\n }\n\n const cidToGidMap =\n dict.getRaw(\"CIDToGIDMap\") || baseDict.getRaw(\"CIDToGIDMap\");\n if (cidToGidMap instanceof Name) {\n hash.update(cidToGidMap.name);\n } else if (cidToGidMap instanceof Ref) {\n hash.update(cidToGidMap.toString());\n } else if (cidToGidMap instanceof BaseStream) {\n hash.update(cidToGidMap.peekBytes());\n }\n }\n }\n\n return {\n descriptor,\n dict,\n baseDict,\n composite,\n type: type.name,\n firstChar,\n lastChar,\n toUnicode,\n hash: hash ? hash.hexdigest() : \"\",\n };\n }\n\n async translateFont({\n descriptor,\n dict,\n baseDict,\n composite,\n type,\n firstChar,\n lastChar,\n toUnicode,\n cssFontInfo,\n }) {\n const isType3Font = type === \"Type3\";\n let properties;\n\n if (!descriptor) {\n if (isType3Font) {\n // FontDescriptor is only required for Type3 fonts when the document\n // is a tagged pdf. Create a barbebones one to get by.\n descriptor = new Dict(null);\n descriptor.set(\"FontName\", Name.get(type));\n descriptor.set(\"FontBBox\", dict.getArray(\"FontBBox\") || [0, 0, 0, 0]);\n } else {\n // Before PDF 1.5 if the font was one of the base 14 fonts, having a\n // FontDescriptor was not required.\n // This case is here for compatibility.\n let baseFontName = dict.get(\"BaseFont\");\n if (!(baseFontName instanceof Name)) {\n throw new FormatError(\"Base font is not specified\");\n }\n\n // Using base font name as a font name.\n baseFontName = baseFontName.name.replace(/[,_]/g, \"-\");\n const metrics = this.getBaseFontMetrics(baseFontName);\n\n // Simulating descriptor flags attribute\n const fontNameWoStyle = baseFontName.split(\"-\")[0];\n const flags =\n (this.isSerifFont(fontNameWoStyle) ? FontFlags.Serif : 0) |\n (metrics.monospace ? FontFlags.FixedPitch : 0) |\n (getSymbolsFonts()[fontNameWoStyle]\n ? FontFlags.Symbolic\n : FontFlags.Nonsymbolic);\n\n properties = {\n type,\n name: baseFontName,\n loadedName: baseDict.loadedName,\n widths: metrics.widths,\n defaultWidth: metrics.defaultWidth,\n isSimulatedFlags: true,\n flags,\n firstChar,\n lastChar,\n toUnicode,\n xHeight: 0,\n capHeight: 0,\n italicAngle: 0,\n isType3Font,\n };\n const widths = dict.get(\"Widths\");\n\n const standardFontName = getStandardFontName(baseFontName);\n let file = null;\n if (standardFontName) {\n properties.isStandardFont = true;\n file = await this.fetchStandardFontData(standardFontName);\n properties.isInternalFont = !!file;\n }\n return this.extractDataStructures(dict, dict, properties).then(\n newProperties => {\n if (widths) {\n const glyphWidths = [];\n let j = firstChar;\n for (let i = 0, ii = widths.length; i < ii; i++) {\n glyphWidths[j++] = this.xref.fetchIfRef(widths[i]);\n }\n newProperties.widths = glyphWidths;\n } else {\n newProperties.widths = this.buildCharCodeToWidth(\n metrics.widths,\n newProperties\n );\n }\n return new Font(baseFontName, file, newProperties);\n }\n );\n }\n }\n\n // According to the spec if 'FontDescriptor' is declared, 'FirstChar',\n // 'LastChar' and 'Widths' should exist too, but some PDF encoders seem\n // to ignore this rule when a variant of a standard font is used.\n // TODO Fill the width array depending on which of the base font this is\n // a variant.\n\n let fontName = descriptor.get(\"FontName\");\n let baseFont = dict.get(\"BaseFont\");\n // Some bad PDFs have a string as the font name.\n if (typeof fontName === \"string\") {\n fontName = Name.get(fontName);\n }\n if (typeof baseFont === \"string\") {\n baseFont = Name.get(baseFont);\n }\n\n if (!isType3Font) {\n const fontNameStr = fontName && fontName.name;\n const baseFontStr = baseFont && baseFont.name;\n if (fontNameStr !== baseFontStr) {\n info(\n `The FontDescriptor's FontName is \"${fontNameStr}\" but ` +\n `should be the same as the Font's BaseFont \"${baseFontStr}\".`\n );\n // Workaround for cases where e.g. fontNameStr = 'Arial' and\n // baseFontStr = 'Arial,Bold' (needed when no font file is embedded).\n if (fontNameStr && baseFontStr && baseFontStr.startsWith(fontNameStr)) {\n fontName = baseFont;\n }\n }\n }\n fontName = fontName || baseFont;\n\n if (!(fontName instanceof Name)) {\n throw new FormatError(\"invalid font name\");\n }\n\n let fontFile, subtype, length1, length2, length3;\n try {\n fontFile = descriptor.get(\"FontFile\", \"FontFile2\", \"FontFile3\");\n } catch (ex) {\n if (!this.options.ignoreErrors) {\n throw ex;\n }\n warn(`translateFont - fetching \"${fontName.name}\" font file: \"${ex}\".`);\n fontFile = new NullStream();\n }\n let isStandardFont = false;\n let isInternalFont = false;\n let glyphScaleFactors = null;\n if (fontFile) {\n if (fontFile.dict) {\n const subtypeEntry = fontFile.dict.get(\"Subtype\");\n if (subtypeEntry instanceof Name) {\n subtype = subtypeEntry.name;\n }\n length1 = fontFile.dict.get(\"Length1\");\n length2 = fontFile.dict.get(\"Length2\");\n length3 = fontFile.dict.get(\"Length3\");\n }\n } else if (cssFontInfo) {\n // We've a missing XFA font.\n const standardFontName = getXfaFontName(fontName.name);\n if (standardFontName) {\n cssFontInfo.fontFamily = `${cssFontInfo.fontFamily}-PdfJS-XFA`;\n cssFontInfo.metrics = standardFontName.metrics || null;\n glyphScaleFactors = standardFontName.factors || null;\n fontFile = await this.fetchStandardFontData(standardFontName.name);\n isInternalFont = !!fontFile;\n\n // We're using a substitution font but for example widths (if any)\n // are related to the glyph positions in the font.\n // So we overwrite everything here to be sure that widths are\n // correct.\n baseDict = dict = getXfaFontDict(fontName.name);\n composite = true;\n }\n } else if (!isType3Font) {\n const standardFontName = getStandardFontName(fontName.name);\n if (standardFontName) {\n isStandardFont = true;\n fontFile = await this.fetchStandardFontData(standardFontName);\n isInternalFont = !!fontFile;\n }\n }\n\n properties = {\n type,\n name: fontName.name,\n subtype,\n file: fontFile,\n length1,\n length2,\n length3,\n isStandardFont,\n isInternalFont,\n loadedName: baseDict.loadedName,\n composite,\n fixedPitch: false,\n fontMatrix: dict.getArray(\"FontMatrix\") || FONT_IDENTITY_MATRIX,\n firstChar,\n lastChar,\n toUnicode,\n bbox: descriptor.getArray(\"FontBBox\") || dict.getArray(\"FontBBox\"),\n ascent: descriptor.get(\"Ascent\"),\n descent: descriptor.get(\"Descent\"),\n xHeight: descriptor.get(\"XHeight\") || 0,\n capHeight: descriptor.get(\"CapHeight\") || 0,\n flags: descriptor.get(\"Flags\"),\n italicAngle: descriptor.get(\"ItalicAngle\") || 0,\n isType3Font,\n cssFontInfo,\n scaleFactors: glyphScaleFactors,\n };\n\n if (composite) {\n const cidEncoding = baseDict.get(\"Encoding\");\n if (cidEncoding instanceof Name) {\n properties.cidEncoding = cidEncoding.name;\n }\n const cMap = await CMapFactory.create({\n encoding: cidEncoding,\n fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n useCMap: null,\n });\n properties.cMap = cMap;\n properties.vertical = properties.cMap.vertical;\n }\n\n return this.extractDataStructures(dict, baseDict, properties).then(\n newProperties => {\n this.extractWidths(dict, descriptor, newProperties);\n\n return new Font(fontName.name, fontFile, newProperties);\n }\n );\n }\n\n static buildFontPaths(font, glyphs, handler, evaluatorOptions) {\n function buildPath(fontChar) {\n const glyphName = `${font.loadedName}_path_${fontChar}`;\n try {\n if (font.renderer.hasBuiltPath(fontChar)) {\n return;\n }\n handler.send(\"commonobj\", [\n glyphName,\n \"FontPath\",\n font.renderer.getPathJs(fontChar),\n ]);\n } catch (reason) {\n if (evaluatorOptions.ignoreErrors) {\n // Error in the font data -- sending unsupported feature notification\n // and allow glyph path building to continue.\n handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorFontBuildPath,\n });\n warn(`buildFontPaths - ignoring ${glyphName} glyph: \"${reason}\".`);\n return;\n }\n throw reason;\n }\n }\n\n for (const glyph of glyphs) {\n buildPath(glyph.fontChar);\n\n // If the glyph has an accent we need to build a path for its\n // fontChar too, otherwise CanvasGraphics_paintChar will fail.\n const accent = glyph.accent;\n if (accent && accent.fontChar) {\n buildPath(accent.fontChar);\n }\n }\n }\n\n static get fallbackFontDict() {\n const dict = new Dict();\n dict.set(\"BaseFont\", Name.get(\"PDFJS-FallbackFont\"));\n dict.set(\"Type\", Name.get(\"FallbackType\"));\n dict.set(\"Subtype\", Name.get(\"FallbackType\"));\n dict.set(\"Encoding\", Name.get(\"WinAnsiEncoding\"));\n\n return shadow(this, \"fallbackFontDict\", dict);\n }\n}\n\nclass TranslatedFont {\n constructor({ loadedName, font, dict, evaluatorOptions }) {\n this.loadedName = loadedName;\n this.font = font;\n this.dict = dict;\n this._evaluatorOptions = evaluatorOptions || DefaultPartialEvaluatorOptions;\n this.type3Loaded = null;\n this.type3Dependencies = font.isType3Font ? new Set() : null;\n this.sent = false;\n }\n\n send(handler) {\n if (this.sent) {\n return;\n }\n this.sent = true;\n\n handler.send(\"commonobj\", [\n this.loadedName,\n \"Font\",\n this.font.exportData(this._evaluatorOptions.fontExtraProperties),\n ]);\n }\n\n fallback(handler) {\n if (!this.font.data) {\n return;\n }\n // When font loading failed, fall back to the built-in font renderer.\n this.font.disableFontFace = true;\n // An arbitrary number of text rendering operators could have been\n // encountered between the point in time when the 'Font' message was sent\n // to the main-thread, and the point in time when the 'FontFallback'\n // message was received on the worker-thread.\n // To ensure that all 'FontPath's are available on the main-thread, when\n // font loading failed, attempt to resend *all* previously parsed glyphs.\n PartialEvaluator.buildFontPaths(\n this.font,\n /* glyphs = */ this.font.glyphCacheValues,\n handler,\n this._evaluatorOptions\n );\n }\n\n loadType3Data(evaluator, resources, task) {\n if (this.type3Loaded) {\n return this.type3Loaded;\n }\n if (!this.font.isType3Font) {\n throw new Error(\"Must be a Type3 font.\");\n }\n // When parsing Type3 glyphs, always ignore them if there are errors.\n // Compared to the parsing of e.g. an entire page, it doesn't really\n // make sense to only be able to render a Type3 glyph partially.\n const type3Evaluator = evaluator.clone({ ignoreErrors: false });\n type3Evaluator.parsingType3Font = true;\n // Prevent circular references in Type3 fonts.\n const type3FontRefs = new RefSet(evaluator.type3FontRefs);\n if (this.dict.objId && !type3FontRefs.has(this.dict.objId)) {\n type3FontRefs.put(this.dict.objId);\n }\n type3Evaluator.type3FontRefs = type3FontRefs;\n\n const translatedFont = this.font,\n type3Dependencies = this.type3Dependencies;\n let loadCharProcsPromise = Promise.resolve();\n const charProcs = this.dict.get(\"CharProcs\");\n const fontResources = this.dict.get(\"Resources\") || resources;\n const charProcOperatorList = Object.create(null);\n\n const isEmptyBBox =\n !translatedFont.bbox || isArrayEqual(translatedFont.bbox, [0, 0, 0, 0]);\n\n for (const key of charProcs.getKeys()) {\n loadCharProcsPromise = loadCharProcsPromise.then(() => {\n const glyphStream = charProcs.get(key);\n const operatorList = new OperatorList();\n return type3Evaluator\n .getOperatorList({\n stream: glyphStream,\n task,\n resources: fontResources,\n operatorList,\n })\n .then(() => {\n // According to the PDF specification, section \"9.6.5 Type 3 Fonts\"\n // and \"Table 113\":\n // \"A glyph description that begins with the d1 operator should\n // not execute any operators that set the colour (or other\n // colour-related parameters) in the graphics state;\n // any use of such operators shall be ignored.\"\n if (operatorList.fnArray[0] === OPS.setCharWidthAndBounds) {\n this._removeType3ColorOperators(operatorList, isEmptyBBox);\n }\n charProcOperatorList[key] = operatorList.getIR();\n\n for (const dependency of operatorList.dependencies) {\n type3Dependencies.add(dependency);\n }\n })\n .catch(function (reason) {\n warn(`Type3 font resource \"${key}\" is not available.`);\n const dummyOperatorList = new OperatorList();\n charProcOperatorList[key] = dummyOperatorList.getIR();\n });\n });\n }\n this.type3Loaded = loadCharProcsPromise.then(() => {\n translatedFont.charProcOperatorList = charProcOperatorList;\n if (this._bbox) {\n translatedFont.isCharBBox = true;\n translatedFont.bbox = this._bbox;\n }\n });\n return this.type3Loaded;\n }\n\n /**\n * @private\n */\n _removeType3ColorOperators(operatorList, isEmptyBBox = false) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n operatorList.fnArray[0] === OPS.setCharWidthAndBounds,\n \"Type3 glyph shall start with the d1 operator.\"\n );\n }\n if (isEmptyBBox) {\n if (!this._bbox) {\n this._bbox = [Infinity, Infinity, -Infinity, -Infinity];\n }\n const charBBox = Util.normalizeRect(operatorList.argsArray[0].slice(2));\n\n this._bbox[0] = Math.min(this._bbox[0], charBBox[0]);\n this._bbox[1] = Math.min(this._bbox[1], charBBox[1]);\n this._bbox[2] = Math.max(this._bbox[2], charBBox[2]);\n this._bbox[3] = Math.max(this._bbox[3], charBBox[3]);\n }\n let i = 1,\n ii = operatorList.length;\n while (i < ii) {\n switch (operatorList.fnArray[i]) {\n case OPS.setStrokeColorSpace:\n case OPS.setFillColorSpace:\n case OPS.setStrokeColor:\n case OPS.setStrokeColorN:\n case OPS.setFillColor:\n case OPS.setFillColorN:\n case OPS.setStrokeGray:\n case OPS.setFillGray:\n case OPS.setStrokeRGBColor:\n case OPS.setFillRGBColor:\n case OPS.setStrokeCMYKColor:\n case OPS.setFillCMYKColor:\n case OPS.shadingFill:\n case OPS.setRenderingIntent:\n operatorList.fnArray.splice(i, 1);\n operatorList.argsArray.splice(i, 1);\n ii--;\n continue;\n\n case OPS.setGState:\n const [gStateObj] = operatorList.argsArray[i];\n let j = 0,\n jj = gStateObj.length;\n while (j < jj) {\n const [gStateKey] = gStateObj[j];\n switch (gStateKey) {\n case \"TR\":\n case \"TR2\":\n case \"HT\":\n case \"BG\":\n case \"BG2\":\n case \"UCR\":\n case \"UCR2\":\n gStateObj.splice(j, 1);\n jj--;\n continue;\n }\n j++;\n }\n break;\n }\n i++;\n }\n }\n}\n\nclass StateManager {\n constructor(initialState = new EvalState()) {\n this.state = initialState;\n this.stateStack = [];\n }\n\n save() {\n const old = this.state;\n this.stateStack.push(this.state);\n this.state = old.clone();\n }\n\n restore() {\n const prev = this.stateStack.pop();\n if (prev) {\n this.state = prev;\n }\n }\n\n transform(args) {\n this.state.ctm = Util.transform(this.state.ctm, args);\n }\n}\n\nclass TextState {\n constructor() {\n this.ctm = new Float32Array(IDENTITY_MATRIX);\n this.fontName = null;\n this.fontSize = 0;\n this.font = null;\n this.fontMatrix = FONT_IDENTITY_MATRIX.slice();\n this.textMatrix = IDENTITY_MATRIX.slice();\n this.textLineMatrix = IDENTITY_MATRIX.slice();\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.leading = 0;\n this.textHScale = 1;\n this.textRise = 0;\n }\n\n setTextMatrix(a, b, c, d, e, f) {\n const m = this.textMatrix;\n m[0] = a;\n m[1] = b;\n m[2] = c;\n m[3] = d;\n m[4] = e;\n m[5] = f;\n }\n\n setTextLineMatrix(a, b, c, d, e, f) {\n const m = this.textLineMatrix;\n m[0] = a;\n m[1] = b;\n m[2] = c;\n m[3] = d;\n m[4] = e;\n m[5] = f;\n }\n\n translateTextMatrix(x, y) {\n const m = this.textMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n }\n\n translateTextLineMatrix(x, y) {\n const m = this.textLineMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n }\n\n carriageReturn() {\n this.translateTextLineMatrix(0, -this.leading);\n this.textMatrix = this.textLineMatrix.slice();\n }\n\n clone() {\n const clone = Object.create(this);\n clone.textMatrix = this.textMatrix ? this.textMatrix.slice() : IDENTITY_MATRIX.slice();\n clone.textLineMatrix = this.textLineMatrix ? this.textLineMatrix.slice() : IDENTITY_MATRIX.slice();\n clone.fontMatrix = this.fontMatrix ? this.fontMatrix.slice() : FONT_IDENTITY_MATRIX.slice();\n return clone;\n }\n}\n\nclass EvalState {\n constructor() {\n this.ctm = new Float32Array(IDENTITY_MATRIX);\n this.font = null;\n this.textRenderingMode = TextRenderingMode.FILL;\n this.fillColorSpace = ColorSpace.singletons.gray;\n this.strokeColorSpace = ColorSpace.singletons.gray;\n }\n\n clone() {\n return Object.create(this);\n }\n}\n\nclass EvaluatorPreprocessor {\n static get opMap() {\n // Specifies properties for each command\n //\n // If variableArgs === true: [0, `numArgs`] expected\n // If variableArgs === false: exactly `numArgs` expected\n const getOPMap = getLookupTableFactory(function (t) {\n // Graphic state\n t.w = { id: OPS.setLineWidth, numArgs: 1, variableArgs: false };\n t.J = { id: OPS.setLineCap, numArgs: 1, variableArgs: false };\n t.j = { id: OPS.setLineJoin, numArgs: 1, variableArgs: false };\n t.M = { id: OPS.setMiterLimit, numArgs: 1, variableArgs: false };\n t.d = { id: OPS.setDash, numArgs: 2, variableArgs: false };\n t.ri = { id: OPS.setRenderingIntent, numArgs: 1, variableArgs: false };\n t.i = { id: OPS.setFlatness, numArgs: 1, variableArgs: false };\n t.gs = { id: OPS.setGState, numArgs: 1, variableArgs: false };\n t.q = { id: OPS.save, numArgs: 0, variableArgs: false };\n t.Q = { id: OPS.restore, numArgs: 0, variableArgs: false };\n t.cm = { id: OPS.transform, numArgs: 6, variableArgs: false };\n\n // Path\n t.m = { id: OPS.moveTo, numArgs: 2, variableArgs: false };\n t.l = { id: OPS.lineTo, numArgs: 2, variableArgs: false };\n t.c = { id: OPS.curveTo, numArgs: 6, variableArgs: false };\n t.v = { id: OPS.curveTo2, numArgs: 4, variableArgs: false };\n t.y = { id: OPS.curveTo3, numArgs: 4, variableArgs: false };\n t.h = { id: OPS.closePath, numArgs: 0, variableArgs: false };\n t.re = { id: OPS.rectangle, numArgs: 4, variableArgs: false };\n t.S = { id: OPS.stroke, numArgs: 0, variableArgs: false };\n t.s = { id: OPS.closeStroke, numArgs: 0, variableArgs: false };\n t.f = { id: OPS.fill, numArgs: 0, variableArgs: false };\n t.F = { id: OPS.fill, numArgs: 0, variableArgs: false };\n t[\"f*\"] = { id: OPS.eoFill, numArgs: 0, variableArgs: false };\n t.B = { id: OPS.fillStroke, numArgs: 0, variableArgs: false };\n t[\"B*\"] = { id: OPS.eoFillStroke, numArgs: 0, variableArgs: false };\n t.b = { id: OPS.closeFillStroke, numArgs: 0, variableArgs: false };\n t[\"b*\"] = { id: OPS.closeEOFillStroke, numArgs: 0, variableArgs: false };\n t.n = { id: OPS.endPath, numArgs: 0, variableArgs: false };\n\n // Clipping\n t.W = { id: OPS.clip, numArgs: 0, variableArgs: false };\n t[\"W*\"] = { id: OPS.eoClip, numArgs: 0, variableArgs: false };\n\n // Text\n t.BT = { id: OPS.beginText, numArgs: 0, variableArgs: false };\n t.ET = { id: OPS.endText, numArgs: 0, variableArgs: false };\n t.Tc = { id: OPS.setCharSpacing, numArgs: 1, variableArgs: false };\n t.Tw = { id: OPS.setWordSpacing, numArgs: 1, variableArgs: false };\n t.Tz = { id: OPS.setHScale, numArgs: 1, variableArgs: false };\n t.TL = { id: OPS.setLeading, numArgs: 1, variableArgs: false };\n t.Tf = { id: OPS.setFont, numArgs: 2, variableArgs: false };\n t.Tr = { id: OPS.setTextRenderingMode, numArgs: 1, variableArgs: false };\n t.Ts = { id: OPS.setTextRise, numArgs: 1, variableArgs: false };\n t.Td = { id: OPS.moveText, numArgs: 2, variableArgs: false };\n t.TD = { id: OPS.setLeadingMoveText, numArgs: 2, variableArgs: false };\n t.Tm = { id: OPS.setTextMatrix, numArgs: 6, variableArgs: false };\n t[\"T*\"] = { id: OPS.nextLine, numArgs: 0, variableArgs: false };\n t.Tj = { id: OPS.showText, numArgs: 1, variableArgs: false };\n t.TJ = { id: OPS.showSpacedText, numArgs: 1, variableArgs: false };\n t[\"'\"] = { id: OPS.nextLineShowText, numArgs: 1, variableArgs: false };\n t['\"'] = {\n id: OPS.nextLineSetSpacingShowText,\n numArgs: 3,\n variableArgs: false,\n };\n\n // Type3 fonts\n t.d0 = { id: OPS.setCharWidth, numArgs: 2, variableArgs: false };\n t.d1 = {\n id: OPS.setCharWidthAndBounds,\n numArgs: 6,\n variableArgs: false,\n };\n\n // Color\n t.CS = { id: OPS.setStrokeColorSpace, numArgs: 1, variableArgs: false };\n t.cs = { id: OPS.setFillColorSpace, numArgs: 1, variableArgs: false };\n t.SC = { id: OPS.setStrokeColor, numArgs: 4, variableArgs: true };\n t.SCN = { id: OPS.setStrokeColorN, numArgs: 33, variableArgs: true };\n t.sc = { id: OPS.setFillColor, numArgs: 4, variableArgs: true };\n t.scn = { id: OPS.setFillColorN, numArgs: 33, variableArgs: true };\n t.G = { id: OPS.setStrokeGray, numArgs: 1, variableArgs: false };\n t.g = { id: OPS.setFillGray, numArgs: 1, variableArgs: false };\n t.RG = { id: OPS.setStrokeRGBColor, numArgs: 3, variableArgs: false };\n t.rg = { id: OPS.setFillRGBColor, numArgs: 3, variableArgs: false };\n t.K = { id: OPS.setStrokeCMYKColor, numArgs: 4, variableArgs: false };\n t.k = { id: OPS.setFillCMYKColor, numArgs: 4, variableArgs: false };\n\n // Shading\n t.sh = { id: OPS.shadingFill, numArgs: 1, variableArgs: false };\n\n // Images\n t.BI = { id: OPS.beginInlineImage, numArgs: 0, variableArgs: false };\n t.ID = { id: OPS.beginImageData, numArgs: 0, variableArgs: false };\n t.EI = { id: OPS.endInlineImage, numArgs: 1, variableArgs: false };\n\n // XObjects\n t.Do = { id: OPS.paintXObject, numArgs: 1, variableArgs: false };\n t.MP = { id: OPS.markPoint, numArgs: 1, variableArgs: false };\n t.DP = { id: OPS.markPointProps, numArgs: 2, variableArgs: false };\n t.BMC = { id: OPS.beginMarkedContent, numArgs: 1, variableArgs: false };\n t.BDC = {\n id: OPS.beginMarkedContentProps,\n numArgs: 2,\n variableArgs: false,\n };\n t.EMC = { id: OPS.endMarkedContent, numArgs: 0, variableArgs: false };\n\n // Compatibility\n t.BX = { id: OPS.beginCompat, numArgs: 0, variableArgs: false };\n t.EX = { id: OPS.endCompat, numArgs: 0, variableArgs: false };\n\n // (reserved partial commands for the lexer)\n t.BM = null;\n t.BD = null;\n t.true = null;\n t.fa = null;\n t.fal = null;\n t.fals = null;\n t.false = null;\n t.nu = null;\n t.nul = null;\n t.null = null;\n });\n\n return shadow(this, \"opMap\", getOPMap());\n }\n\n static get MAX_INVALID_PATH_OPS() {\n return shadow(this, \"MAX_INVALID_PATH_OPS\", 10);\n }\n\n constructor(stream, xref, stateManager = new StateManager()) {\n // TODO(mduan): pass array of knownCommands rather than this.opMap\n // dictionary\n this.parser = new Parser({\n lexer: new Lexer(stream, EvaluatorPreprocessor.opMap),\n xref,\n });\n this.stateManager = stateManager;\n this.nonProcessedArgs = [];\n this._numInvalidPathOPS = 0;\n }\n\n get savedStatesDepth() {\n return this.stateManager.stateStack.length;\n }\n\n // |operation| is an object with two fields:\n //\n // - |fn| is an out param.\n //\n // - |args| is an inout param. On entry, it should have one of two values.\n //\n // - An empty array. This indicates that the caller is providing the\n // array in which the args will be stored in. The caller should use\n // this value if it can reuse a single array for each call to read().\n //\n // - |null|. This indicates that the caller needs this function to create\n // the array in which any args are stored in. If there are zero args,\n // this function will leave |operation.args| as |null| (thus avoiding\n // allocations that would occur if we used an empty array to represent\n // zero arguments). Otherwise, it will replace |null| with a new array\n // containing the arguments. The caller should use this value if it\n // cannot reuse an array for each call to read().\n //\n // These two modes are present because this function is very hot and so\n // avoiding allocations where possible is worthwhile.\n //\n read(operation) {\n let args = operation.args;\n while (true) {\n const obj = this.parser.getObj();\n if (obj instanceof Cmd) {\n const cmd = obj.cmd;\n // Check that the command is valid\n const opSpec = EvaluatorPreprocessor.opMap[cmd];\n if (!opSpec) {\n warn(`Unknown command \"${cmd}\".`);\n continue;\n }\n\n const fn = opSpec.id;\n const numArgs = opSpec.numArgs;\n let argsLength = args !== null ? args.length : 0;\n\n if (!opSpec.variableArgs) {\n // Postscript commands can be nested, e.g. /F2 /GS2 gs 5.711 Tf\n if (argsLength !== numArgs) {\n const nonProcessedArgs = this.nonProcessedArgs;\n while (argsLength > numArgs) {\n nonProcessedArgs.push(args.shift());\n argsLength--;\n }\n while (argsLength < numArgs && nonProcessedArgs.length !== 0) {\n if (args === null) {\n args = [];\n }\n args.unshift(nonProcessedArgs.pop());\n argsLength++;\n }\n }\n\n if (argsLength < numArgs) {\n const partialMsg =\n `command ${cmd}: expected ${numArgs} args, ` +\n `but received ${argsLength} args.`;\n\n // Incomplete path operators, in particular, can result in fairly\n // chaotic rendering artifacts. Hence the following heuristics is\n // used to error, rather than just warn, once a number of invalid\n // path operators have been encountered (fixes bug1443140.pdf).\n if (\n fn >= OPS.moveTo &&\n fn <= OPS.endPath && // Path operator\n ++this._numInvalidPathOPS >\n EvaluatorPreprocessor.MAX_INVALID_PATH_OPS\n ) {\n throw new FormatError(`Invalid ${partialMsg}`);\n }\n // If we receive too few arguments, it's not possible to execute\n // the command, hence we skip the command.\n warn(`Skipping ${partialMsg}`);\n if (args !== null) {\n args.length = 0;\n }\n continue;\n }\n } else if (argsLength > numArgs) {\n info(\n `Command ${cmd}: expected [0, ${numArgs}] args, ` +\n `but received ${argsLength} args.`\n );\n }\n\n // TODO figure out how to type-check vararg functions\n this.preprocessCommand(fn, args);\n\n operation.fn = fn;\n operation.args = args;\n return true;\n }\n if (obj === EOF) {\n return false; // no more commands\n }\n // argument\n if (obj !== null) {\n if (args === null) {\n args = [];\n }\n args.push(obj);\n if (args.length > 33) {\n throw new FormatError(\"Too many arguments\");\n }\n }\n }\n }\n\n preprocessCommand(fn, args) {\n switch (fn | 0) {\n case OPS.save:\n this.stateManager.save();\n break;\n case OPS.restore:\n this.stateManager.restore();\n break;\n case OPS.transform:\n this.stateManager.transform(args);\n break;\n }\n }\n}\n\nexport { EvaluatorPreprocessor, PartialEvaluator, StateManager, TextState };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n CMapCompressionType,\n FormatError,\n unreachable,\n warn,\n} from \"../shared/util.js\";\nimport { Cmd, EOF, isCmd, Name } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { Lexer } from \"./parser.js\";\nimport { MissingDataException } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\n\nconst BUILT_IN_CMAPS = [\n // << Start unicode maps.\n \"Adobe-GB1-UCS2\",\n \"Adobe-CNS1-UCS2\",\n \"Adobe-Japan1-UCS2\",\n \"Adobe-Korea1-UCS2\",\n // >> End unicode maps.\n \"78-EUC-H\",\n \"78-EUC-V\",\n \"78-H\",\n \"78-RKSJ-H\",\n \"78-RKSJ-V\",\n \"78-V\",\n \"78ms-RKSJ-H\",\n \"78ms-RKSJ-V\",\n \"83pv-RKSJ-H\",\n \"90ms-RKSJ-H\",\n \"90ms-RKSJ-V\",\n \"90msp-RKSJ-H\",\n \"90msp-RKSJ-V\",\n \"90pv-RKSJ-H\",\n \"90pv-RKSJ-V\",\n \"Add-H\",\n \"Add-RKSJ-H\",\n \"Add-RKSJ-V\",\n \"Add-V\",\n \"Adobe-CNS1-0\",\n \"Adobe-CNS1-1\",\n \"Adobe-CNS1-2\",\n \"Adobe-CNS1-3\",\n \"Adobe-CNS1-4\",\n \"Adobe-CNS1-5\",\n \"Adobe-CNS1-6\",\n \"Adobe-GB1-0\",\n \"Adobe-GB1-1\",\n \"Adobe-GB1-2\",\n \"Adobe-GB1-3\",\n \"Adobe-GB1-4\",\n \"Adobe-GB1-5\",\n \"Adobe-Japan1-0\",\n \"Adobe-Japan1-1\",\n \"Adobe-Japan1-2\",\n \"Adobe-Japan1-3\",\n \"Adobe-Japan1-4\",\n \"Adobe-Japan1-5\",\n \"Adobe-Japan1-6\",\n \"Adobe-Korea1-0\",\n \"Adobe-Korea1-1\",\n \"Adobe-Korea1-2\",\n \"B5-H\",\n \"B5-V\",\n \"B5pc-H\",\n \"B5pc-V\",\n \"CNS-EUC-H\",\n \"CNS-EUC-V\",\n \"CNS1-H\",\n \"CNS1-V\",\n \"CNS2-H\",\n \"CNS2-V\",\n \"ETHK-B5-H\",\n \"ETHK-B5-V\",\n \"ETen-B5-H\",\n \"ETen-B5-V\",\n \"ETenms-B5-H\",\n \"ETenms-B5-V\",\n \"EUC-H\",\n \"EUC-V\",\n \"Ext-H\",\n \"Ext-RKSJ-H\",\n \"Ext-RKSJ-V\",\n \"Ext-V\",\n \"GB-EUC-H\",\n \"GB-EUC-V\",\n \"GB-H\",\n \"GB-V\",\n \"GBK-EUC-H\",\n \"GBK-EUC-V\",\n \"GBK2K-H\",\n \"GBK2K-V\",\n \"GBKp-EUC-H\",\n \"GBKp-EUC-V\",\n \"GBT-EUC-H\",\n \"GBT-EUC-V\",\n \"GBT-H\",\n \"GBT-V\",\n \"GBTpc-EUC-H\",\n \"GBTpc-EUC-V\",\n \"GBpc-EUC-H\",\n \"GBpc-EUC-V\",\n \"H\",\n \"HKdla-B5-H\",\n \"HKdla-B5-V\",\n \"HKdlb-B5-H\",\n \"HKdlb-B5-V\",\n \"HKgccs-B5-H\",\n \"HKgccs-B5-V\",\n \"HKm314-B5-H\",\n \"HKm314-B5-V\",\n \"HKm471-B5-H\",\n \"HKm471-B5-V\",\n \"HKscs-B5-H\",\n \"HKscs-B5-V\",\n \"Hankaku\",\n \"Hiragana\",\n \"KSC-EUC-H\",\n \"KSC-EUC-V\",\n \"KSC-H\",\n \"KSC-Johab-H\",\n \"KSC-Johab-V\",\n \"KSC-V\",\n \"KSCms-UHC-H\",\n \"KSCms-UHC-HW-H\",\n \"KSCms-UHC-HW-V\",\n \"KSCms-UHC-V\",\n \"KSCpc-EUC-H\",\n \"KSCpc-EUC-V\",\n \"Katakana\",\n \"NWP-H\",\n \"NWP-V\",\n \"RKSJ-H\",\n \"RKSJ-V\",\n \"Roman\",\n \"UniCNS-UCS2-H\",\n \"UniCNS-UCS2-V\",\n \"UniCNS-UTF16-H\",\n \"UniCNS-UTF16-V\",\n \"UniCNS-UTF32-H\",\n \"UniCNS-UTF32-V\",\n \"UniCNS-UTF8-H\",\n \"UniCNS-UTF8-V\",\n \"UniGB-UCS2-H\",\n \"UniGB-UCS2-V\",\n \"UniGB-UTF16-H\",\n \"UniGB-UTF16-V\",\n \"UniGB-UTF32-H\",\n \"UniGB-UTF32-V\",\n \"UniGB-UTF8-H\",\n \"UniGB-UTF8-V\",\n \"UniJIS-UCS2-H\",\n \"UniJIS-UCS2-HW-H\",\n \"UniJIS-UCS2-HW-V\",\n \"UniJIS-UCS2-V\",\n \"UniJIS-UTF16-H\",\n \"UniJIS-UTF16-V\",\n \"UniJIS-UTF32-H\",\n \"UniJIS-UTF32-V\",\n \"UniJIS-UTF8-H\",\n \"UniJIS-UTF8-V\",\n \"UniJIS2004-UTF16-H\",\n \"UniJIS2004-UTF16-V\",\n \"UniJIS2004-UTF32-H\",\n \"UniJIS2004-UTF32-V\",\n \"UniJIS2004-UTF8-H\",\n \"UniJIS2004-UTF8-V\",\n \"UniJISPro-UCS2-HW-V\",\n \"UniJISPro-UCS2-V\",\n \"UniJISPro-UTF8-V\",\n \"UniJISX0213-UTF32-H\",\n \"UniJISX0213-UTF32-V\",\n \"UniJISX02132004-UTF32-H\",\n \"UniJISX02132004-UTF32-V\",\n \"UniKS-UCS2-H\",\n \"UniKS-UCS2-V\",\n \"UniKS-UTF16-H\",\n \"UniKS-UTF16-V\",\n \"UniKS-UTF32-H\",\n \"UniKS-UTF32-V\",\n \"UniKS-UTF8-H\",\n \"UniKS-UTF8-V\",\n \"V\",\n \"WP-Symbol\",\n];\n\n// Heuristic to avoid hanging the worker-thread for CMap data with ridiculously\n// large ranges, such as e.g. 0xFFFFFFFF (fixes issue11922_reduced.pdf).\nconst MAX_MAP_RANGE = 2 ** 24 - 1; // = 0xFFFFFF\n\n// CMap, not to be confused with TrueType's cmap.\nclass CMap {\n constructor(builtInCMap = false) {\n // Codespace ranges are stored as follows:\n // [[1BytePairs], [2BytePairs], [3BytePairs], [4BytePairs]]\n // where nBytePairs are ranges e.g. [low1, high1, low2, high2, ...]\n this.codespaceRanges = [[], [], [], []];\n this.numCodespaceRanges = 0;\n // Map entries have one of two forms.\n // - cid chars are 16-bit unsigned integers, stored as integers.\n // - bf chars are variable-length byte sequences, stored as strings, with\n // one byte per character.\n this._map = [];\n this.name = \"\";\n this.vertical = false;\n this.useCMap = null;\n this.builtInCMap = builtInCMap;\n }\n\n addCodespaceRange(n, low, high) {\n this.codespaceRanges[n - 1].push(low, high);\n this.numCodespaceRanges++;\n }\n\n mapCidRange(low, high, dstLow) {\n if (high - low > MAX_MAP_RANGE) {\n throw new Error(\"mapCidRange - ignoring data above MAX_MAP_RANGE.\");\n }\n while (low <= high) {\n this._map[low++] = dstLow++;\n }\n }\n\n mapBfRange(low, high, dstLow) {\n if (high - low > MAX_MAP_RANGE) {\n throw new Error(\"mapBfRange - ignoring data above MAX_MAP_RANGE.\");\n }\n const lastByte = dstLow.length - 1;\n while (low <= high) {\n this._map[low++] = dstLow;\n // Only the last byte has to be incremented (in the normal case).\n const nextCharCode = dstLow.charCodeAt(lastByte) + 1;\n if (nextCharCode > 0xff) {\n dstLow =\n dstLow.substring(0, lastByte - 1) +\n String.fromCharCode(dstLow.charCodeAt(lastByte - 1) + 1) +\n \"\\x00\";\n continue;\n }\n dstLow =\n dstLow.substring(0, lastByte) + String.fromCharCode(nextCharCode);\n }\n }\n\n mapBfRangeToArray(low, high, array) {\n if (high - low > MAX_MAP_RANGE) {\n throw new Error(\"mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.\");\n }\n const ii = array.length;\n let i = 0;\n while (low <= high && i < ii) {\n this._map[low] = array[i++];\n ++low;\n }\n }\n\n // This is used for both bf and cid chars.\n mapOne(src, dst) {\n this._map[src] = dst;\n }\n\n lookup(code) {\n return this._map[code];\n }\n\n contains(code) {\n return this._map[code] !== undefined;\n }\n\n forEach(callback) {\n // Most maps have fewer than 65536 entries, and for those we use normal\n // array iteration. But really sparse tables are possible -- e.g. with\n // indices in the *billions*. For such tables we use for..in, which isn't\n // ideal because it stringifies the indices for all present elements, but\n // it does avoid iterating over every undefined entry.\n const map = this._map;\n const length = map.length;\n if (length <= 0x10000) {\n for (let i = 0; i < length; i++) {\n if (map[i] !== undefined) {\n callback(i, map[i]);\n }\n }\n } else {\n for (const i in map) {\n callback(i, map[i]);\n }\n }\n }\n\n charCodeOf(value) {\n // `Array.prototype.indexOf` is *extremely* inefficient for arrays which\n // are both very sparse and very large (see issue8372.pdf).\n const map = this._map;\n if (map.length <= 0x10000) {\n return map.indexOf(value);\n }\n for (const charCode in map) {\n if (map[charCode] === value) {\n return charCode | 0;\n }\n }\n return -1;\n }\n\n getMap() {\n return this._map;\n }\n\n readCharCode(str, offset, out) {\n let c = 0;\n const codespaceRanges = this.codespaceRanges;\n // 9.7.6.2 CMap Mapping\n // The code length is at most 4.\n for (let n = 0, nn = codespaceRanges.length; n < nn; n++) {\n c = ((c << 8) | str.charCodeAt(offset + n)) >>> 0;\n // Check each codespace range to see if it falls within.\n const codespaceRange = codespaceRanges[n];\n for (let k = 0, kk = codespaceRange.length; k < kk; ) {\n const low = codespaceRange[k++];\n const high = codespaceRange[k++];\n if (c >= low && c <= high) {\n out.charcode = c;\n out.length = n + 1;\n return;\n }\n }\n }\n out.charcode = 0;\n out.length = 1;\n }\n\n getCharCodeLength(charCode) {\n const codespaceRanges = this.codespaceRanges;\n for (let n = 0, nn = codespaceRanges.length; n < nn; n++) {\n // Check each codespace range to see if it falls within.\n const codespaceRange = codespaceRanges[n];\n for (let k = 0, kk = codespaceRange.length; k < kk; ) {\n const low = codespaceRange[k++];\n const high = codespaceRange[k++];\n if (charCode >= low && charCode <= high) {\n return n + 1;\n }\n }\n }\n return 1;\n }\n\n get length() {\n return this._map.length;\n }\n\n get isIdentityCMap() {\n if (!(this.name === \"Identity-H\" || this.name === \"Identity-V\")) {\n return false;\n }\n if (this._map.length !== 0x10000) {\n return false;\n }\n for (let i = 0; i < 0x10000; i++) {\n if (this._map[i] !== i) {\n return false;\n }\n }\n return true;\n }\n}\n\n// A special case of CMap, where the _map array implicitly has a length of\n// 65536 and each element is equal to its index.\nclass IdentityCMap extends CMap {\n constructor(vertical, n) {\n super();\n\n this.vertical = vertical;\n this.addCodespaceRange(n, 0, 0xffff);\n }\n\n mapCidRange(low, high, dstLow) {\n unreachable(\"should not call mapCidRange\");\n }\n\n mapBfRange(low, high, dstLow) {\n unreachable(\"should not call mapBfRange\");\n }\n\n mapBfRangeToArray(low, high, array) {\n unreachable(\"should not call mapBfRangeToArray\");\n }\n\n mapOne(src, dst) {\n unreachable(\"should not call mapCidOne\");\n }\n\n lookup(code) {\n return Number.isInteger(code) && code <= 0xffff ? code : undefined;\n }\n\n contains(code) {\n return Number.isInteger(code) && code <= 0xffff;\n }\n\n forEach(callback) {\n for (let i = 0; i <= 0xffff; i++) {\n callback(i, i);\n }\n }\n\n charCodeOf(value) {\n return Number.isInteger(value) && value <= 0xffff ? value : -1;\n }\n\n getMap() {\n // Sometimes identity maps must be instantiated, but it's rare.\n const map = new Array(0x10000);\n for (let i = 0; i <= 0xffff; i++) {\n map[i] = i;\n }\n return map;\n }\n\n get length() {\n return 0x10000;\n }\n\n // eslint-disable-next-line getter-return\n get isIdentityCMap() {\n unreachable(\"should not access .isIdentityCMap\");\n }\n}\n\nconst BinaryCMapReader = (function BinaryCMapReaderClosure() {\n function hexToInt(a, size) {\n let n = 0;\n for (let i = 0; i <= size; i++) {\n n = (n << 8) | a[i];\n }\n return n >>> 0;\n }\n\n function hexToStr(a, size) {\n // This code is hot. Special-case some common values to avoid creating an\n // object with subarray().\n if (size === 1) {\n return String.fromCharCode(a[0], a[1]);\n }\n if (size === 3) {\n return String.fromCharCode(a[0], a[1], a[2], a[3]);\n }\n return String.fromCharCode.apply(null, a.subarray(0, size + 1));\n }\n\n function addHex(a, b, size) {\n let c = 0;\n for (let i = size; i >= 0; i--) {\n c += a[i] + b[i];\n a[i] = c & 255;\n c >>= 8;\n }\n }\n\n function incHex(a, size) {\n let c = 1;\n for (let i = size; i >= 0 && c > 0; i--) {\n c += a[i];\n a[i] = c & 255;\n c >>= 8;\n }\n }\n\n const MAX_NUM_SIZE = 16;\n const MAX_ENCODED_NUM_SIZE = 19; // ceil(MAX_NUM_SIZE * 7 / 8)\n\n class BinaryCMapStream {\n constructor(data) {\n this.buffer = data;\n this.pos = 0;\n this.end = data.length;\n this.tmpBuf = new Uint8Array(MAX_ENCODED_NUM_SIZE);\n }\n\n readByte() {\n if (this.pos >= this.end) {\n return -1;\n }\n return this.buffer[this.pos++];\n }\n\n readNumber() {\n let n = 0;\n let last;\n do {\n const b = this.readByte();\n if (b < 0) {\n throw new FormatError(\"unexpected EOF in bcmap\");\n }\n last = !(b & 0x80);\n n = (n << 7) | (b & 0x7f);\n } while (!last);\n return n;\n }\n\n readSigned() {\n const n = this.readNumber();\n return n & 1 ? ~(n >>> 1) : n >>> 1;\n }\n\n readHex(num, size) {\n num.set(this.buffer.subarray(this.pos, this.pos + size + 1));\n this.pos += size + 1;\n }\n\n readHexNumber(num, size) {\n let last;\n const stack = this.tmpBuf;\n let sp = 0;\n do {\n const b = this.readByte();\n if (b < 0) {\n throw new FormatError(\"unexpected EOF in bcmap\");\n }\n last = !(b & 0x80);\n stack[sp++] = b & 0x7f;\n } while (!last);\n let i = size,\n buffer = 0,\n bufferSize = 0;\n while (i >= 0) {\n while (bufferSize < 8 && stack.length > 0) {\n buffer |= stack[--sp] << bufferSize;\n bufferSize += 7;\n }\n num[i] = buffer & 255;\n i--;\n buffer >>= 8;\n bufferSize -= 8;\n }\n }\n\n readHexSigned(num, size) {\n this.readHexNumber(num, size);\n const sign = num[size] & 1 ? 255 : 0;\n let c = 0;\n for (let i = 0; i <= size; i++) {\n c = ((c & 1) << 8) | num[i];\n num[i] = (c >> 1) ^ sign;\n }\n }\n\n readString() {\n const len = this.readNumber();\n let s = \"\";\n for (let i = 0; i < len; i++) {\n s += String.fromCharCode(this.readNumber());\n }\n return s;\n }\n }\n\n // eslint-disable-next-line no-shadow\n class BinaryCMapReader {\n async process(data, cMap, extend) {\n const stream = new BinaryCMapStream(data);\n const header = stream.readByte();\n cMap.vertical = !!(header & 1);\n\n let useCMap = null;\n const start = new Uint8Array(MAX_NUM_SIZE);\n const end = new Uint8Array(MAX_NUM_SIZE);\n const char = new Uint8Array(MAX_NUM_SIZE);\n const charCode = new Uint8Array(MAX_NUM_SIZE);\n const tmp = new Uint8Array(MAX_NUM_SIZE);\n let code;\n\n let b;\n while ((b = stream.readByte()) >= 0) {\n const type = b >> 5;\n if (type === 7) {\n // metadata, e.g. comment or usecmap\n switch (b & 0x1f) {\n case 0:\n stream.readString(); // skipping comment\n break;\n case 1:\n useCMap = stream.readString();\n break;\n }\n continue;\n }\n const sequence = !!(b & 0x10);\n const dataSize = b & 15;\n\n if (dataSize + 1 > MAX_NUM_SIZE) {\n throw new Error(\"BinaryCMapReader.process: Invalid dataSize.\");\n }\n\n const ucs2DataSize = 1;\n const subitemsCount = stream.readNumber();\n switch (type) {\n case 0: // codespacerange\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n cMap.addCodespaceRange(\n dataSize + 1,\n hexToInt(start, dataSize),\n hexToInt(end, dataSize)\n );\n for (let i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n cMap.addCodespaceRange(\n dataSize + 1,\n hexToInt(start, dataSize),\n hexToInt(end, dataSize)\n );\n }\n break;\n case 1: // notdefrange\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n stream.readNumber(); // code\n // undefined range, skipping\n for (let i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n stream.readNumber(); // code\n // nop\n }\n break;\n case 2: // cidchar\n stream.readHex(char, dataSize);\n code = stream.readNumber();\n cMap.mapOne(hexToInt(char, dataSize), code);\n for (let i = 1; i < subitemsCount; i++) {\n incHex(char, dataSize);\n if (!sequence) {\n stream.readHexNumber(tmp, dataSize);\n addHex(char, tmp, dataSize);\n }\n code = stream.readSigned() + (code + 1);\n cMap.mapOne(hexToInt(char, dataSize), code);\n }\n break;\n case 3: // cidrange\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n code = stream.readNumber();\n cMap.mapCidRange(\n hexToInt(start, dataSize),\n hexToInt(end, dataSize),\n code\n );\n for (let i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n if (!sequence) {\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n } else {\n start.set(end);\n }\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n code = stream.readNumber();\n cMap.mapCidRange(\n hexToInt(start, dataSize),\n hexToInt(end, dataSize),\n code\n );\n }\n break;\n case 4: // bfchar\n stream.readHex(char, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapOne(\n hexToInt(char, ucs2DataSize),\n hexToStr(charCode, dataSize)\n );\n for (let i = 1; i < subitemsCount; i++) {\n incHex(char, ucs2DataSize);\n if (!sequence) {\n stream.readHexNumber(tmp, ucs2DataSize);\n addHex(char, tmp, ucs2DataSize);\n }\n incHex(charCode, dataSize);\n stream.readHexSigned(tmp, dataSize);\n addHex(charCode, tmp, dataSize);\n cMap.mapOne(\n hexToInt(char, ucs2DataSize),\n hexToStr(charCode, dataSize)\n );\n }\n break;\n case 5: // bfrange\n stream.readHex(start, ucs2DataSize);\n stream.readHexNumber(end, ucs2DataSize);\n addHex(end, start, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapBfRange(\n hexToInt(start, ucs2DataSize),\n hexToInt(end, ucs2DataSize),\n hexToStr(charCode, dataSize)\n );\n for (let i = 1; i < subitemsCount; i++) {\n incHex(end, ucs2DataSize);\n if (!sequence) {\n stream.readHexNumber(start, ucs2DataSize);\n addHex(start, end, ucs2DataSize);\n } else {\n start.set(end);\n }\n stream.readHexNumber(end, ucs2DataSize);\n addHex(end, start, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapBfRange(\n hexToInt(start, ucs2DataSize),\n hexToInt(end, ucs2DataSize),\n hexToStr(charCode, dataSize)\n );\n }\n break;\n default:\n throw new Error(`BinaryCMapReader.process - unknown type: ${type}`);\n }\n }\n\n if (useCMap) {\n return extend(useCMap);\n }\n return cMap;\n }\n }\n\n return BinaryCMapReader;\n})();\n\nconst CMapFactory = (function CMapFactoryClosure() {\n function strToInt(str) {\n let a = 0;\n for (let i = 0; i < str.length; i++) {\n a = (a << 8) | str.charCodeAt(i);\n }\n return a >>> 0;\n }\n\n function expectString(obj) {\n if (typeof obj !== \"string\") {\n throw new FormatError(\"Malformed CMap: expected string.\");\n }\n }\n\n function expectInt(obj) {\n if (!Number.isInteger(obj)) {\n throw new FormatError(\"Malformed CMap: expected int.\");\n }\n }\n\n function parseBfChar(cMap, lexer) {\n while (true) {\n let obj = lexer.getObj();\n if (obj === EOF) {\n break;\n }\n if (isCmd(obj, \"endbfchar\")) {\n return;\n }\n expectString(obj);\n const src = strToInt(obj);\n obj = lexer.getObj();\n // TODO are /dstName used?\n expectString(obj);\n const dst = obj;\n cMap.mapOne(src, dst);\n }\n }\n\n function parseBfRange(cMap, lexer) {\n while (true) {\n let obj = lexer.getObj();\n if (obj === EOF) {\n break;\n }\n if (isCmd(obj, \"endbfrange\")) {\n return;\n }\n expectString(obj);\n const low = strToInt(obj);\n obj = lexer.getObj();\n expectString(obj);\n const high = strToInt(obj);\n obj = lexer.getObj();\n if (Number.isInteger(obj) || typeof obj === \"string\") {\n const dstLow = Number.isInteger(obj) ? String.fromCharCode(obj) : obj;\n cMap.mapBfRange(low, high, dstLow);\n } else if (isCmd(obj, \"[\")) {\n obj = lexer.getObj();\n const array = [];\n while (!isCmd(obj, \"]\") && obj !== EOF) {\n array.push(obj);\n obj = lexer.getObj();\n }\n cMap.mapBfRangeToArray(low, high, array);\n } else {\n break;\n }\n }\n throw new FormatError(\"Invalid bf range.\");\n }\n\n function parseCidChar(cMap, lexer) {\n while (true) {\n let obj = lexer.getObj();\n if (obj === EOF) {\n break;\n }\n if (isCmd(obj, \"endcidchar\")) {\n return;\n }\n expectString(obj);\n const src = strToInt(obj);\n obj = lexer.getObj();\n expectInt(obj);\n const dst = obj;\n cMap.mapOne(src, dst);\n }\n }\n\n function parseCidRange(cMap, lexer) {\n while (true) {\n let obj = lexer.getObj();\n if (obj === EOF) {\n break;\n }\n if (isCmd(obj, \"endcidrange\")) {\n return;\n }\n expectString(obj);\n const low = strToInt(obj);\n obj = lexer.getObj();\n expectString(obj);\n const high = strToInt(obj);\n obj = lexer.getObj();\n expectInt(obj);\n const dstLow = obj;\n cMap.mapCidRange(low, high, dstLow);\n }\n }\n\n function parseCodespaceRange(cMap, lexer) {\n while (true) {\n let obj = lexer.getObj();\n if (obj === EOF) {\n break;\n }\n if (isCmd(obj, \"endcodespacerange\")) {\n return;\n }\n if (typeof obj !== \"string\") {\n break;\n }\n const low = strToInt(obj);\n obj = lexer.getObj();\n if (typeof obj !== \"string\") {\n break;\n }\n const high = strToInt(obj);\n cMap.addCodespaceRange(obj.length, low, high);\n }\n throw new FormatError(\"Invalid codespace range.\");\n }\n\n function parseWMode(cMap, lexer) {\n const obj = lexer.getObj();\n if (Number.isInteger(obj)) {\n cMap.vertical = !!obj;\n }\n }\n\n function parseCMapName(cMap, lexer) {\n const obj = lexer.getObj();\n if (obj instanceof Name) {\n cMap.name = obj.name;\n }\n }\n\n async function parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap) {\n let previous, embeddedUseCMap;\n objLoop: while (true) {\n try {\n const obj = lexer.getObj();\n if (obj === EOF) {\n break;\n } else if (obj instanceof Name) {\n if (obj.name === \"WMode\") {\n parseWMode(cMap, lexer);\n } else if (obj.name === \"CMapName\") {\n parseCMapName(cMap, lexer);\n }\n previous = obj;\n } else if (obj instanceof Cmd) {\n switch (obj.cmd) {\n case \"endcmap\":\n break objLoop;\n case \"usecmap\":\n if (previous instanceof Name) {\n embeddedUseCMap = previous.name;\n }\n break;\n case \"begincodespacerange\":\n parseCodespaceRange(cMap, lexer);\n break;\n case \"beginbfchar\":\n parseBfChar(cMap, lexer);\n break;\n case \"begincidchar\":\n parseCidChar(cMap, lexer);\n break;\n case \"beginbfrange\":\n parseBfRange(cMap, lexer);\n break;\n case \"begincidrange\":\n parseCidRange(cMap, lexer);\n break;\n }\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Invalid cMap data: \" + ex);\n continue;\n }\n }\n\n if (!useCMap && embeddedUseCMap) {\n // Load the useCMap definition from the file only if there wasn't one\n // specified.\n useCMap = embeddedUseCMap;\n }\n if (useCMap) {\n return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n }\n return cMap;\n }\n\n async function extendCMap(cMap, fetchBuiltInCMap, useCMap) {\n cMap.useCMap = await createBuiltInCMap(useCMap, fetchBuiltInCMap);\n // If there aren't any code space ranges defined clone all the parent ones\n // into this cMap.\n if (cMap.numCodespaceRanges === 0) {\n const useCodespaceRanges = cMap.useCMap.codespaceRanges;\n for (let i = 0; i < useCodespaceRanges.length; i++) {\n cMap.codespaceRanges[i] = useCodespaceRanges[i].slice();\n }\n cMap.numCodespaceRanges = cMap.useCMap.numCodespaceRanges;\n }\n // Merge the map into the current one, making sure not to override\n // any previously defined entries.\n cMap.useCMap.forEach(function (key, value) {\n if (!cMap.contains(key)) {\n cMap.mapOne(key, cMap.useCMap.lookup(key));\n }\n });\n\n return cMap;\n }\n\n async function createBuiltInCMap(name, fetchBuiltInCMap) {\n if (name === \"Identity-H\") {\n return new IdentityCMap(false, 2);\n } else if (name === \"Identity-V\") {\n return new IdentityCMap(true, 2);\n }\n if (!BUILT_IN_CMAPS.includes(name)) {\n throw new Error(\"Unknown CMap name: \" + name);\n }\n if (!fetchBuiltInCMap) {\n throw new Error(\"Built-in CMap parameters are not provided.\");\n }\n\n const { cMapData, compressionType } = await fetchBuiltInCMap(name);\n const cMap = new CMap(true);\n\n if (compressionType === CMapCompressionType.BINARY) {\n return new BinaryCMapReader().process(cMapData, cMap, useCMap => {\n return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n });\n }\n if (compressionType === CMapCompressionType.NONE) {\n const lexer = new Lexer(new Stream(cMapData));\n return parseCMap(cMap, lexer, fetchBuiltInCMap, null);\n }\n throw new Error(\n \"TODO: Only BINARY/NONE CMap compression is currently supported.\"\n );\n }\n\n return {\n async create(params) {\n const encoding = params.encoding;\n const fetchBuiltInCMap = params.fetchBuiltInCMap;\n const useCMap = params.useCMap;\n\n if (encoding instanceof Name) {\n return createBuiltInCMap(encoding.name, fetchBuiltInCMap);\n } else if (encoding instanceof BaseStream) {\n const parsedCMap = await parseCMap(\n /* cMap = */ new CMap(),\n /* lexer = */ new Lexer(encoding),\n fetchBuiltInCMap,\n useCMap\n );\n\n if (parsedCMap.isIdentityCMap) {\n return createBuiltInCMap(parsedCMap.name, fetchBuiltInCMap);\n }\n return parsedCMap;\n }\n throw new Error(\"Encoding required.\");\n },\n };\n})();\n\nexport { CMap, CMapFactory, IdentityCMap };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n bytesToString,\n FormatError,\n info,\n StreamType,\n warn,\n} from \"../shared/util.js\";\nimport { Cmd, Dict, EOF, isCmd, Name, Ref } from \"./primitives.js\";\nimport {\n isWhiteSpace,\n MissingDataException,\n ParserEOFException,\n} from \"./core_utils.js\";\nimport { Ascii85Stream } from \"./ascii_85_stream.js\";\nimport { AsciiHexStream } from \"./ascii_hex_stream.js\";\nimport { CCITTFaxStream } from \"./ccitt_stream.js\";\nimport { FlateStream } from \"./flate_stream.js\";\nimport { Jbig2Stream } from \"./jbig2_stream.js\";\nimport { JpegStream } from \"./jpeg_stream.js\";\nimport { JpxStream } from \"./jpx_stream.js\";\nimport { LZWStream } from \"./lzw_stream.js\";\nimport { NullStream } from \"./stream.js\";\nimport { PredictorStream } from \"./predictor_stream.js\";\nimport { RunLengthStream } from \"./run_length_stream.js\";\n\nconst MAX_LENGTH_TO_CACHE = 1000;\nconst MAX_ADLER32_LENGTH = 5552;\n\nfunction computeAdler32(bytes) {\n const bytesLength = bytes.length;\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n bytesLength < MAX_ADLER32_LENGTH,\n 'computeAdler32: Unsupported \"bytes\" length.'\n );\n }\n let a = 1,\n b = 0;\n for (let i = 0; i < bytesLength; ++i) {\n // No modulo required in the loop if `bytesLength < 5552`.\n a += bytes[i] & 0xff;\n b += a;\n }\n return (b % 65521 << 16) | a % 65521;\n}\n\nclass Parser {\n constructor({ lexer, xref, allowStreams = false, recoveryMode = false }) {\n this.lexer = lexer;\n this.xref = xref;\n this.allowStreams = allowStreams;\n this.recoveryMode = recoveryMode;\n\n this.imageCache = Object.create(null);\n this.refill();\n }\n\n refill() {\n this.buf1 = this.lexer.getObj();\n this.buf2 = this.lexer.getObj();\n }\n\n shift() {\n if (this.buf2 instanceof Cmd && this.buf2.cmd === \"ID\") {\n this.buf1 = this.buf2;\n this.buf2 = null;\n } else {\n this.buf1 = this.buf2;\n this.buf2 = this.lexer.getObj();\n }\n }\n\n tryShift() {\n try {\n this.shift();\n return true;\n } catch (e) {\n if (e instanceof MissingDataException) {\n throw e;\n }\n // Upon failure, the caller should reset this.lexer.pos to a known good\n // state and call this.shift() twice to reset the buffers.\n return false;\n }\n }\n\n getObj(cipherTransform = null) {\n const buf1 = this.buf1;\n this.shift();\n\n if (buf1 instanceof Cmd) {\n switch (buf1.cmd) {\n case \"BI\": // inline image\n return this.makeInlineImage(cipherTransform);\n case \"[\": // array\n const array = [];\n while (!isCmd(this.buf1, \"]\") && this.buf1 !== EOF) {\n array.push(this.getObj(cipherTransform));\n }\n if (this.buf1 === EOF) {\n if (this.recoveryMode) {\n return array;\n }\n throw new ParserEOFException(\"End of file inside array.\");\n }\n this.shift();\n return array;\n case \"<<\": // dictionary or stream\n const dict = new Dict(this.xref);\n while (!isCmd(this.buf1, \">>\") && this.buf1 !== EOF) {\n if (!(this.buf1 instanceof Name)) {\n info(\"Malformed dictionary: key must be a name object\");\n this.shift();\n continue;\n }\n\n const key = this.buf1.name;\n this.shift();\n if (this.buf1 === EOF) {\n break;\n }\n dict.set(key, this.getObj(cipherTransform));\n }\n if (this.buf1 === EOF) {\n if (this.recoveryMode) {\n return dict;\n }\n throw new ParserEOFException(\"End of file inside dictionary.\");\n }\n\n // Stream objects are not allowed inside content streams or\n // object streams.\n if (isCmd(this.buf2, \"stream\")) {\n return this.allowStreams\n ? this.makeStream(dict, cipherTransform)\n : dict;\n }\n this.shift();\n return dict;\n default: // simple object\n return buf1;\n }\n }\n\n if (Number.isInteger(buf1)) {\n // indirect reference or integer\n if (Number.isInteger(this.buf1) && isCmd(this.buf2, \"R\")) {\n const ref = Ref.get(buf1, this.buf1);\n this.shift();\n this.shift();\n return ref;\n }\n return buf1;\n }\n\n if (typeof buf1 === \"string\") {\n if (cipherTransform) {\n return cipherTransform.decryptString(buf1);\n }\n return buf1;\n }\n\n // simple object\n return buf1;\n }\n\n /**\n * Find the end of the stream by searching for the /EI\\s/.\n * @returns {number} The inline stream length.\n */\n findDefaultInlineStreamEnd(stream) {\n const E = 0x45,\n I = 0x49,\n SPACE = 0x20,\n LF = 0xa,\n CR = 0xd,\n NUL = 0x0;\n const lexer = this.lexer,\n startPos = stream.pos,\n n = 10;\n let state = 0,\n ch,\n maybeEIPos;\n while ((ch = stream.getByte()) !== -1) {\n if (state === 0) {\n state = ch === E ? 1 : 0;\n } else if (state === 1) {\n state = ch === I ? 2 : 0;\n } else {\n assert(state === 2, \"findDefaultInlineStreamEnd - invalid state.\");\n if (ch === SPACE || ch === LF || ch === CR) {\n maybeEIPos = stream.pos;\n // Let's check that the next `n` bytes are ASCII... just to be sure.\n const followingBytes = stream.peekBytes(n);\n for (let i = 0, ii = followingBytes.length; i < ii; i++) {\n ch = followingBytes[i];\n if (ch === NUL && followingBytes[i + 1] !== NUL) {\n // NUL bytes are not supposed to occur *outside* of inline\n // images, but some PDF generators violate that assumption,\n // thus breaking the EI detection heuristics used below.\n //\n // However, we can't unconditionally treat NUL bytes as \"ASCII\",\n // since that *could* result in inline images being truncated.\n //\n // To attempt to address this, we'll still treat any *sequence*\n // of NUL bytes as non-ASCII, but for a *single* NUL byte we'll\n // continue checking the `followingBytes` (fixes issue8823.pdf).\n continue;\n }\n if (ch !== LF && ch !== CR && (ch < SPACE || ch > 0x7f)) {\n // Not a LF, CR, SPACE or any visible ASCII character, i.e.\n // it's binary stuff. Resetting the state.\n state = 0;\n break;\n }\n }\n\n if (state !== 2) {\n continue;\n }\n // Check that the \"EI\" sequence isn't part of the image data, since\n // that would cause the image to be truncated (fixes issue11124.pdf).\n if (lexer.knownCommands) {\n const nextObj = lexer.peekObj();\n if (nextObj instanceof Cmd && !lexer.knownCommands[nextObj.cmd]) {\n // Not a valid command, i.e. the inline image data *itself*\n // contains an \"EI\" sequence. Resetting the state.\n state = 0;\n }\n } else {\n warn(\n \"findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.\"\n );\n }\n\n if (state === 2) {\n break; // Finished!\n }\n } else {\n state = 0;\n }\n }\n }\n\n if (ch === -1) {\n warn(\n \"findDefaultInlineStreamEnd: \" +\n \"Reached the end of the stream without finding a valid EI marker\"\n );\n if (maybeEIPos) {\n warn('... trying to recover by using the last \"EI\" occurrence.');\n stream.skip(-(stream.pos - maybeEIPos)); // Reset the stream position.\n }\n }\n\n let endOffset = 4;\n stream.skip(-endOffset); // Set the stream position to just before \"EI\".\n ch = stream.peekByte();\n stream.skip(endOffset); // ... and remember to reset the stream position.\n\n // Ensure that we don't accidentally truncate the inline image, when the\n // data is immediately followed by the \"EI\" marker (fixes issue10388.pdf).\n if (!isWhiteSpace(ch)) {\n endOffset--;\n }\n return stream.pos - endOffset - startPos;\n }\n\n /**\n * Find the EOI (end-of-image) marker 0xFFD9 of the stream.\n * @returns {number} The inline stream length.\n */\n findDCTDecodeInlineStreamEnd(stream) {\n const startPos = stream.pos;\n let foundEOI = false,\n b,\n markerLength;\n while ((b = stream.getByte()) !== -1) {\n if (b !== 0xff) {\n // Not a valid marker.\n continue;\n }\n switch (stream.getByte()) {\n case 0x00: // Byte stuffing.\n // 0xFF00 appears to be a very common byte sequence in JPEG images.\n break;\n\n case 0xff: // Fill byte.\n // Avoid skipping a valid marker, resetting the stream position.\n stream.skip(-1);\n break;\n\n case 0xd9: // EOI\n foundEOI = true;\n break;\n\n case 0xc0: // SOF0\n case 0xc1: // SOF1\n case 0xc2: // SOF2\n case 0xc3: // SOF3\n /* falls through */\n case 0xc5: // SOF5\n case 0xc6: // SOF6\n case 0xc7: // SOF7\n /* falls through */\n case 0xc9: // SOF9\n case 0xca: // SOF10\n case 0xcb: // SOF11\n /* falls through */\n case 0xcd: // SOF13\n case 0xce: // SOF14\n case 0xcf: // SOF15\n /* falls through */\n case 0xc4: // DHT\n case 0xcc: // DAC\n /* falls through */\n case 0xda: // SOS\n case 0xdb: // DQT\n case 0xdc: // DNL\n case 0xdd: // DRI\n case 0xde: // DHP\n case 0xdf: // EXP\n /* falls through */\n case 0xe0: // APP0\n case 0xe1: // APP1\n case 0xe2: // APP2\n case 0xe3: // APP3\n case 0xe4: // APP4\n case 0xe5: // APP5\n case 0xe6: // APP6\n case 0xe7: // APP7\n case 0xe8: // APP8\n case 0xe9: // APP9\n case 0xea: // APP10\n case 0xeb: // APP11\n case 0xec: // APP12\n case 0xed: // APP13\n case 0xee: // APP14\n case 0xef: // APP15\n /* falls through */\n case 0xfe: // COM\n // The marker should be followed by the length of the segment.\n markerLength = stream.getUint16();\n if (markerLength > 2) {\n // |markerLength| contains the byte length of the marker segment,\n // including its own length (2 bytes) and excluding the marker.\n stream.skip(markerLength - 2); // Jump to the next marker.\n } else {\n // The marker length is invalid, resetting the stream position.\n stream.skip(-2);\n }\n break;\n }\n if (foundEOI) {\n break;\n }\n }\n const length = stream.pos - startPos;\n if (b === -1) {\n warn(\n \"Inline DCTDecode image stream: \" +\n \"EOI marker not found, searching for /EI/ instead.\"\n );\n stream.skip(-length); // Reset the stream position.\n return this.findDefaultInlineStreamEnd(stream);\n }\n this.inlineStreamSkipEI(stream);\n return length;\n }\n\n /**\n * Find the EOD (end-of-data) marker '~>' (i.e. TILDE + GT) of the stream.\n * @returns {number} The inline stream length.\n */\n findASCII85DecodeInlineStreamEnd(stream) {\n const TILDE = 0x7e,\n GT = 0x3e;\n const startPos = stream.pos;\n let ch;\n while ((ch = stream.getByte()) !== -1) {\n if (ch === TILDE) {\n const tildePos = stream.pos;\n\n ch = stream.peekByte();\n // Handle corrupt PDF documents which contains whitespace \"inside\" of\n // the EOD marker (fixes issue10614.pdf).\n while (isWhiteSpace(ch)) {\n stream.skip();\n ch = stream.peekByte();\n }\n if (ch === GT) {\n stream.skip();\n break;\n }\n // Handle corrupt PDF documents which contains truncated EOD markers,\n // where the '>' character is missing (fixes issue11385.pdf).\n if (stream.pos > tildePos) {\n const maybeEI = stream.peekBytes(2);\n if (maybeEI[0] === /* E = */ 0x45 && maybeEI[1] === /* I = */ 0x49) {\n break;\n }\n }\n }\n }\n const length = stream.pos - startPos;\n if (ch === -1) {\n warn(\n \"Inline ASCII85Decode image stream: \" +\n \"EOD marker not found, searching for /EI/ instead.\"\n );\n stream.skip(-length); // Reset the stream position.\n return this.findDefaultInlineStreamEnd(stream);\n }\n this.inlineStreamSkipEI(stream);\n return length;\n }\n\n /**\n * Find the EOD (end-of-data) marker '>' (i.e. GT) of the stream.\n * @returns {number} The inline stream length.\n */\n findASCIIHexDecodeInlineStreamEnd(stream) {\n const GT = 0x3e;\n const startPos = stream.pos;\n let ch;\n while ((ch = stream.getByte()) !== -1) {\n if (ch === GT) {\n break;\n }\n }\n const length = stream.pos - startPos;\n if (ch === -1) {\n warn(\n \"Inline ASCIIHexDecode image stream: \" +\n \"EOD marker not found, searching for /EI/ instead.\"\n );\n stream.skip(-length); // Reset the stream position.\n return this.findDefaultInlineStreamEnd(stream);\n }\n this.inlineStreamSkipEI(stream);\n return length;\n }\n\n /**\n * Skip over the /EI/ for streams where we search for an EOD marker.\n */\n inlineStreamSkipEI(stream) {\n const E = 0x45,\n I = 0x49;\n let state = 0,\n ch;\n while ((ch = stream.getByte()) !== -1) {\n if (state === 0) {\n state = ch === E ? 1 : 0;\n } else if (state === 1) {\n state = ch === I ? 2 : 0;\n } else if (state === 2) {\n break;\n }\n }\n }\n\n makeInlineImage(cipherTransform) {\n const lexer = this.lexer;\n const stream = lexer.stream;\n\n // Parse dictionary.\n const dict = new Dict(this.xref);\n let dictLength;\n while (!isCmd(this.buf1, \"ID\") && this.buf1 !== EOF) {\n if (!(this.buf1 instanceof Name)) {\n throw new FormatError(\"Dictionary key must be a name object\");\n }\n const key = this.buf1.name;\n this.shift();\n if (this.buf1 === EOF) {\n break;\n }\n dict.set(key, this.getObj(cipherTransform));\n }\n if (lexer.beginInlineImagePos !== -1) {\n dictLength = stream.pos - lexer.beginInlineImagePos;\n }\n\n // Extract the name of the first (i.e. the current) image filter.\n const filter = dict.get(\"F\", \"Filter\");\n let filterName;\n if (filter instanceof Name) {\n filterName = filter.name;\n } else if (Array.isArray(filter)) {\n const filterZero = this.xref.fetchIfRef(filter[0]);\n if (filterZero instanceof Name) {\n filterName = filterZero.name;\n }\n }\n\n // Parse image stream.\n const startPos = stream.pos;\n let length;\n switch (filterName) {\n case \"DCT\":\n case \"DCTDecode\":\n length = this.findDCTDecodeInlineStreamEnd(stream);\n break;\n case \"A85\":\n case \"ASCII85Decode\":\n length = this.findASCII85DecodeInlineStreamEnd(stream);\n break;\n case \"AHx\":\n case \"ASCIIHexDecode\":\n length = this.findASCIIHexDecodeInlineStreamEnd(stream);\n break;\n default:\n length = this.findDefaultInlineStreamEnd(stream);\n }\n let imageStream = stream.makeSubStream(startPos, length, dict);\n\n // Cache all images below the MAX_LENGTH_TO_CACHE threshold by their\n // adler32 checksum.\n let cacheKey;\n if (length < MAX_LENGTH_TO_CACHE && dictLength < MAX_ADLER32_LENGTH) {\n const imageBytes = imageStream.getBytes();\n imageStream.reset();\n\n const initialStreamPos = stream.pos;\n // Set the stream position to the beginning of the dictionary data...\n stream.pos = lexer.beginInlineImagePos;\n // ... and fetch the bytes of the *entire* dictionary.\n const dictBytes = stream.getBytes(dictLength);\n // Finally, don't forget to reset the stream position.\n stream.pos = initialStreamPos;\n\n cacheKey = computeAdler32(imageBytes) + \"_\" + computeAdler32(dictBytes);\n\n const cacheEntry = this.imageCache[cacheKey];\n if (cacheEntry !== undefined) {\n this.buf2 = Cmd.get(\"EI\");\n this.shift();\n\n cacheEntry.reset();\n return cacheEntry;\n }\n }\n\n if (cipherTransform) {\n imageStream = cipherTransform.createStream(imageStream, length);\n }\n\n imageStream = this.filter(imageStream, dict, length);\n imageStream.dict = dict;\n if (cacheKey !== undefined) {\n imageStream.cacheKey = `inline_${length}_${cacheKey}`;\n this.imageCache[cacheKey] = imageStream;\n }\n\n this.buf2 = Cmd.get(\"EI\");\n this.shift();\n\n return imageStream;\n }\n\n _findStreamLength(startPos, signature) {\n const { stream } = this.lexer;\n stream.pos = startPos;\n\n const SCAN_BLOCK_LENGTH = 2048;\n const signatureLength = signature.length;\n\n while (stream.pos < stream.end) {\n const scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n const scanLength = scanBytes.length - signatureLength;\n\n if (scanLength <= 0) {\n break;\n }\n let pos = 0;\n while (pos < scanLength) {\n let j = 0;\n while (j < signatureLength && scanBytes[pos + j] === signature[j]) {\n j++;\n }\n if (j >= signatureLength) {\n // `signature` found.\n stream.pos += pos;\n return stream.pos - startPos;\n }\n pos++;\n }\n stream.pos += scanLength;\n }\n return -1;\n }\n\n makeStream(dict, cipherTransform) {\n const lexer = this.lexer;\n let stream = lexer.stream;\n\n // Get the stream's start position.\n lexer.skipToNextLine();\n const startPos = stream.pos - 1;\n\n // Get the length.\n let length = dict.get(\"Length\");\n if (!Number.isInteger(length)) {\n info(`Bad length \"${length && length.toString()}\" in stream.`);\n length = 0;\n }\n\n // Skip over the stream data.\n stream.pos = startPos + length;\n lexer.nextChar();\n\n // Shift '>>' and check whether the new object marks the end of the stream.\n if (this.tryShift() && isCmd(this.buf2, \"endstream\")) {\n this.shift(); // 'stream'\n } else {\n // Bad stream length, scanning for endstream command.\n const ENDSTREAM_SIGNATURE = new Uint8Array([\n 0x65, 0x6e, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d,\n ]);\n let actualLength = this._findStreamLength(startPos, ENDSTREAM_SIGNATURE);\n if (actualLength < 0) {\n // Only allow limited truncation of the endstream signature,\n // to prevent false positives.\n const MAX_TRUNCATION = 1;\n // Check if the PDF generator included truncated endstream commands,\n // such as e.g. \"endstrea\" (fixes issue10004.pdf).\n for (let i = 1; i <= MAX_TRUNCATION; i++) {\n const end = ENDSTREAM_SIGNATURE.length - i;\n const TRUNCATED_SIGNATURE = ENDSTREAM_SIGNATURE.slice(0, end);\n\n const maybeLength = this._findStreamLength(\n startPos,\n TRUNCATED_SIGNATURE\n );\n if (maybeLength >= 0) {\n // Ensure that the byte immediately following the truncated\n // endstream command is a space, to prevent false positives.\n const lastByte = stream.peekBytes(end + 1)[end];\n if (!isWhiteSpace(lastByte)) {\n break;\n }\n info(\n `Found \"${bytesToString(TRUNCATED_SIGNATURE)}\" when ` +\n \"searching for endstream command.\"\n );\n actualLength = maybeLength;\n break;\n }\n }\n\n if (actualLength < 0) {\n throw new FormatError(\"Missing endstream command.\");\n }\n }\n length = actualLength;\n\n lexer.nextChar();\n this.shift();\n this.shift();\n }\n this.shift(); // 'endstream'\n\n stream = stream.makeSubStream(startPos, length, dict);\n if (cipherTransform) {\n stream = cipherTransform.createStream(stream, length);\n }\n stream = this.filter(stream, dict, length);\n stream.dict = dict;\n return stream;\n }\n\n filter(stream, dict, length) {\n let filter = dict.get(\"F\", \"Filter\");\n let params = dict.get(\"DP\", \"DecodeParms\");\n\n if (filter instanceof Name) {\n if (Array.isArray(params)) {\n warn(\"/DecodeParms should not be an Array, when /Filter is a Name.\");\n }\n return this.makeFilter(stream, filter.name, length, params);\n }\n\n let maybeLength = length;\n if (Array.isArray(filter)) {\n const filterArray = filter;\n const paramsArray = params;\n for (let i = 0, ii = filterArray.length; i < ii; ++i) {\n filter = this.xref.fetchIfRef(filterArray[i]);\n if (!(filter instanceof Name)) {\n throw new FormatError(`Bad filter name \"${filter}\"`);\n }\n\n params = null;\n if (Array.isArray(paramsArray) && i in paramsArray) {\n params = this.xref.fetchIfRef(paramsArray[i]);\n }\n stream = this.makeFilter(stream, filter.name, maybeLength, params);\n // After the first stream the `length` variable is invalid.\n maybeLength = null;\n }\n }\n return stream;\n }\n\n makeFilter(stream, name, maybeLength, params) {\n // Since the 'Length' entry in the stream dictionary can be completely\n // wrong, e.g. zero for non-empty streams, only skip parsing the stream\n // when we can be absolutely certain that it actually is empty.\n if (maybeLength === 0) {\n warn(`Empty \"${name}\" stream.`);\n return new NullStream();\n }\n const xrefStats = this.xref.stats;\n\n try {\n switch (name) {\n case \"Fl\":\n case \"FlateDecode\":\n xrefStats.addStreamType(StreamType.FLATE);\n if (params) {\n return new PredictorStream(\n new FlateStream(stream, maybeLength),\n maybeLength,\n params\n );\n }\n return new FlateStream(stream, maybeLength);\n case \"LZW\":\n case \"LZWDecode\":\n xrefStats.addStreamType(StreamType.LZW);\n let earlyChange = 1;\n if (params) {\n if (params.has(\"EarlyChange\")) {\n earlyChange = params.get(\"EarlyChange\");\n }\n return new PredictorStream(\n new LZWStream(stream, maybeLength, earlyChange),\n maybeLength,\n params\n );\n }\n return new LZWStream(stream, maybeLength, earlyChange);\n case \"DCT\":\n case \"DCTDecode\":\n xrefStats.addStreamType(StreamType.DCT);\n return new JpegStream(stream, maybeLength, params);\n case \"JPX\":\n case \"JPXDecode\":\n xrefStats.addStreamType(StreamType.JPX);\n return new JpxStream(stream, maybeLength, params);\n case \"A85\":\n case \"ASCII85Decode\":\n xrefStats.addStreamType(StreamType.A85);\n return new Ascii85Stream(stream, maybeLength);\n case \"AHx\":\n case \"ASCIIHexDecode\":\n xrefStats.addStreamType(StreamType.AHX);\n return new AsciiHexStream(stream, maybeLength);\n case \"CCF\":\n case \"CCITTFaxDecode\":\n xrefStats.addStreamType(StreamType.CCF);\n return new CCITTFaxStream(stream, maybeLength, params);\n case \"RL\":\n case \"RunLengthDecode\":\n xrefStats.addStreamType(StreamType.RLX);\n return new RunLengthStream(stream, maybeLength);\n case \"JBIG2Decode\":\n xrefStats.addStreamType(StreamType.JBIG);\n return new Jbig2Stream(stream, maybeLength, params);\n }\n warn(`Filter \"${name}\" is not supported.`);\n return stream;\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`Invalid stream: \"${ex}\"`);\n return new NullStream();\n }\n }\n}\n\n// A '1' in this array means the character is white space. A '1' or\n// '2' means the character ends a name or command.\n// prettier-ignore\nconst specialChars = [\n 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, // 0x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x\n 1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, // 2x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, // 3x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 4x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, // 5x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 6x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, // 7x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 8x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 9x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // ax\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // bx\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // cx\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // dx\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // ex\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 // fx\n];\n\nfunction toHexDigit(ch) {\n if (ch >= /* '0' = */ 0x30 && ch /* '9' = */ <= 0x39) {\n return ch & 0x0f;\n }\n if (\n (ch >= /* 'A' = */ 0x41 && ch <= /* 'F' = */ 0x46) ||\n (ch >= /* 'a' = */ 0x61 && ch <= /* 'f' = */ 0x66)\n ) {\n return (ch & 0x0f) + 9;\n }\n return -1;\n}\n\nclass Lexer {\n constructor(stream, knownCommands = null) {\n this.stream = stream;\n this.nextChar();\n\n // While lexing, we build up many strings one char at a time. Using += for\n // this can result in lots of garbage strings. It's better to build an\n // array of single-char strings and then join() them together at the end.\n // And reusing a single array (i.e. |this.strBuf|) over and over for this\n // purpose uses less memory than using a new array for each string.\n this.strBuf = [];\n\n // The PDFs might have \"glued\" commands with other commands, operands or\n // literals, e.g. \"q1\". The knownCommands is a dictionary of the valid\n // commands and their prefixes. The prefixes are built the following way:\n // if there a command that is a prefix of the other valid command or\n // literal (e.g. 'f' and 'false') the following prefixes must be included,\n // 'fa', 'fal', 'fals'. The prefixes are not needed, if the command has no\n // other commands or literals as a prefix. The knowCommands is optional.\n this.knownCommands = knownCommands;\n\n this._hexStringNumWarn = 0;\n this.beginInlineImagePos = -1;\n }\n\n nextChar() {\n return (this.currentChar = this.stream.getByte());\n }\n\n peekChar() {\n return this.stream.peekByte();\n }\n\n getNumber() {\n let ch = this.currentChar;\n let eNotation = false;\n let divideBy = 0; // Different from 0 if it's a floating point value.\n let sign = 0;\n\n if (ch === /* '-' = */ 0x2d) {\n sign = -1;\n ch = this.nextChar();\n\n if (ch === /* '-' = */ 0x2d) {\n // Ignore double negative (this is consistent with Adobe Reader).\n ch = this.nextChar();\n }\n } else if (ch === /* '+' = */ 0x2b) {\n sign = 1;\n ch = this.nextChar();\n }\n if (ch === /* LF = */ 0x0a || ch === /* CR = */ 0x0d) {\n // Ignore line-breaks (this is consistent with Adobe Reader).\n do {\n ch = this.nextChar();\n } while (ch === 0x0a || ch === 0x0d);\n }\n if (ch === /* '.' = */ 0x2e) {\n divideBy = 10;\n ch = this.nextChar();\n }\n if (ch < /* '0' = */ 0x30 || ch > /* '9' = */ 0x39) {\n if (isWhiteSpace(ch) || ch === /* EOF = */ -1) {\n // This is consistent with Adobe Reader (fixes issue9252.pdf).\n if (divideBy === 10 && sign === 0) {\n warn(\"Lexer.getNumber - treating a single decimal point as zero.\");\n return 0;\n }\n // This is consistent with Adobe Reader (fixes bug1753983.pdf).\n if (divideBy === 0 && sign === -1) {\n warn(\"Lexer.getNumber - treating a single minus sign as zero.\");\n return 0;\n }\n }\n throw new FormatError(\n `Invalid number: ${String.fromCharCode(ch)} (charCode ${ch})`\n );\n }\n\n sign = sign || 1;\n let baseValue = ch - 0x30; // '0'\n let powerValue = 0;\n let powerValueSign = 1;\n\n while ((ch = this.nextChar()) >= 0) {\n if (ch >= /* '0' = */ 0x30 && ch <= /* '9' = */ 0x39) {\n const currentDigit = ch - 0x30; // '0'\n if (eNotation) {\n // We are after an 'e' or 'E'.\n powerValue = powerValue * 10 + currentDigit;\n } else {\n if (divideBy !== 0) {\n // We are after a point.\n divideBy *= 10;\n }\n baseValue = baseValue * 10 + currentDigit;\n }\n } else if (ch === /* '.' = */ 0x2e) {\n if (divideBy === 0) {\n divideBy = 1;\n } else {\n // A number can have only one dot.\n break;\n }\n } else if (ch === /* '-' = */ 0x2d) {\n // Ignore minus signs in the middle of numbers to match\n // Adobe's behavior.\n warn(\"Badly formatted number: minus sign in the middle\");\n } else if (ch === /* 'E' = */ 0x45 || ch === /* 'e' = */ 0x65) {\n // 'E' can be either a scientific notation or the beginning of a new\n // operator.\n ch = this.peekChar();\n if (ch === /* '+' = */ 0x2b || ch === /* '-' = */ 0x2d) {\n powerValueSign = ch === 0x2d ? -1 : 1;\n this.nextChar(); // Consume the sign character.\n } else if (ch < /* '0' = */ 0x30 || ch > /* '9' = */ 0x39) {\n // The 'E' must be the beginning of a new operator.\n break;\n }\n eNotation = true;\n } else {\n // The last character doesn't belong to us.\n break;\n }\n }\n\n if (divideBy !== 0) {\n baseValue /= divideBy;\n }\n if (eNotation) {\n baseValue *= 10 ** (powerValueSign * powerValue);\n }\n return sign * baseValue;\n }\n\n getString() {\n let numParen = 1;\n let done = false;\n const strBuf = this.strBuf;\n strBuf.length = 0;\n\n let ch = this.nextChar();\n while (true) {\n let charBuffered = false;\n switch (ch | 0) {\n case -1:\n warn(\"Unterminated string\");\n done = true;\n break;\n case 0x28: // '('\n ++numParen;\n strBuf.push(\"(\");\n break;\n case 0x29: // ')'\n if (--numParen === 0) {\n this.nextChar(); // consume strings ')'\n done = true;\n } else {\n strBuf.push(\")\");\n }\n break;\n case 0x5c: // '\\\\'\n ch = this.nextChar();\n switch (ch) {\n case -1:\n warn(\"Unterminated string\");\n done = true;\n break;\n case 0x6e: // 'n'\n strBuf.push(\"\\n\");\n break;\n case 0x72: // 'r'\n strBuf.push(\"\\r\");\n break;\n case 0x74: // 't'\n strBuf.push(\"\\t\");\n break;\n case 0x62: // 'b'\n strBuf.push(\"\\b\");\n break;\n case 0x66: // 'f'\n strBuf.push(\"\\f\");\n break;\n case 0x5c: // '\\'\n case 0x28: // '('\n case 0x29: // ')'\n strBuf.push(String.fromCharCode(ch));\n break;\n case 0x30: // '0'\n case 0x31: // '1'\n case 0x32: // '2'\n case 0x33: // '3'\n case 0x34: // '4'\n case 0x35: // '5'\n case 0x36: // '6'\n case 0x37: // '7'\n let x = ch & 0x0f;\n ch = this.nextChar();\n charBuffered = true;\n if (ch >= /* '0' = */ 0x30 && ch <= /* '7' = */ 0x37) {\n x = (x << 3) + (ch & 0x0f);\n ch = this.nextChar();\n if (ch >= /* '0' = */ 0x30 && ch /* '7' = */ <= 0x37) {\n charBuffered = false;\n x = (x << 3) + (ch & 0x0f);\n }\n }\n strBuf.push(String.fromCharCode(x));\n break;\n case 0x0d: // CR\n if (this.peekChar() === /* LF = */ 0x0a) {\n this.nextChar();\n }\n break;\n case 0x0a: // LF\n break;\n default:\n strBuf.push(String.fromCharCode(ch));\n break;\n }\n break;\n default:\n strBuf.push(String.fromCharCode(ch));\n break;\n }\n if (done) {\n break;\n }\n if (!charBuffered) {\n ch = this.nextChar();\n }\n }\n return strBuf.join(\"\");\n }\n\n getName() {\n let ch, previousCh;\n const strBuf = this.strBuf;\n strBuf.length = 0;\n\n while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n if (ch === /* '#' = */ 0x23) {\n ch = this.nextChar();\n if (specialChars[ch]) {\n warn(\n \"Lexer_getName: \" +\n \"NUMBER SIGN (#) should be followed by a hexadecimal number.\"\n );\n strBuf.push(\"#\");\n break;\n }\n const x = toHexDigit(ch);\n if (x !== -1) {\n previousCh = ch;\n ch = this.nextChar();\n const x2 = toHexDigit(ch);\n if (x2 === -1) {\n warn(\n `Lexer_getName: Illegal digit (${String.fromCharCode(ch)}) ` +\n \"in hexadecimal number.\"\n );\n strBuf.push(\"#\", String.fromCharCode(previousCh));\n if (specialChars[ch]) {\n break;\n }\n strBuf.push(String.fromCharCode(ch));\n continue;\n }\n strBuf.push(String.fromCharCode((x << 4) | x2));\n } else {\n strBuf.push(\"#\", String.fromCharCode(ch));\n }\n } else {\n strBuf.push(String.fromCharCode(ch));\n }\n }\n if (strBuf.length > 127) {\n warn(`Name token is longer than allowed by the spec: ${strBuf.length}`);\n }\n return Name.get(strBuf.join(\"\"));\n }\n\n /**\n * @private\n */\n _hexStringWarn(ch) {\n const MAX_HEX_STRING_NUM_WARN = 5;\n\n if (this._hexStringNumWarn++ === MAX_HEX_STRING_NUM_WARN) {\n warn(\"getHexString - ignoring additional invalid characters.\");\n return;\n }\n if (this._hexStringNumWarn > MAX_HEX_STRING_NUM_WARN) {\n // Limit the number of warning messages printed for a `this.getHexString`\n // invocation, since corrupt PDF documents may otherwise spam the console\n // enough to affect general performance negatively.\n return;\n }\n warn(`getHexString - ignoring invalid character: ${ch}`);\n }\n\n getHexString() {\n const strBuf = this.strBuf;\n strBuf.length = 0;\n let ch = this.currentChar;\n let isFirstHex = true;\n let firstDigit, secondDigit;\n this._hexStringNumWarn = 0;\n\n while (true) {\n if (ch < 0) {\n warn(\"Unterminated hex string\");\n break;\n } else if (ch === /* '>' = */ 0x3e) {\n this.nextChar();\n break;\n } else if (specialChars[ch] === 1) {\n ch = this.nextChar();\n continue;\n } else {\n if (isFirstHex) {\n firstDigit = toHexDigit(ch);\n if (firstDigit === -1) {\n this._hexStringWarn(ch);\n ch = this.nextChar();\n continue;\n }\n } else {\n secondDigit = toHexDigit(ch);\n if (secondDigit === -1) {\n this._hexStringWarn(ch);\n ch = this.nextChar();\n continue;\n }\n strBuf.push(String.fromCharCode((firstDigit << 4) | secondDigit));\n }\n isFirstHex = !isFirstHex;\n ch = this.nextChar();\n }\n }\n return strBuf.join(\"\");\n }\n\n getObj() {\n // Skip whitespace and comments.\n let comment = false;\n let ch = this.currentChar;\n while (true) {\n if (ch < 0) {\n return EOF;\n }\n if (comment) {\n if (ch === /* LF = */ 0x0a || ch === /* CR = */ 0x0d) {\n comment = false;\n }\n } else if (ch === /* '%' = */ 0x25) {\n comment = true;\n } else if (specialChars[ch] !== 1) {\n break;\n }\n ch = this.nextChar();\n }\n\n // Start reading a token.\n switch (ch | 0) {\n case 0x30: // '0'\n case 0x31: // '1'\n case 0x32: // '2'\n case 0x33: // '3'\n case 0x34: // '4'\n case 0x35: // '5'\n case 0x36: // '6'\n case 0x37: // '7'\n case 0x38: // '8'\n case 0x39: // '9'\n case 0x2b: // '+'\n case 0x2d: // '-'\n case 0x2e: // '.'\n return this.getNumber();\n case 0x28: // '('\n return this.getString();\n case 0x2f: // '/'\n return this.getName();\n // array punctuation\n case 0x5b: // '['\n this.nextChar();\n return Cmd.get(\"[\");\n case 0x5d: // ']'\n this.nextChar();\n return Cmd.get(\"]\");\n // hex string or dict punctuation\n case 0x3c: // '<'\n ch = this.nextChar();\n if (ch === 0x3c) {\n // dict punctuation\n this.nextChar();\n return Cmd.get(\"<<\");\n }\n return this.getHexString();\n // dict punctuation\n case 0x3e: // '>'\n ch = this.nextChar();\n if (ch === 0x3e) {\n this.nextChar();\n return Cmd.get(\">>\");\n }\n return Cmd.get(\">\");\n case 0x7b: // '{'\n this.nextChar();\n return Cmd.get(\"{\");\n case 0x7d: // '}'\n this.nextChar();\n return Cmd.get(\"}\");\n case 0x29: // ')'\n // Consume the current character in order to avoid permanently hanging\n // the worker thread if `Lexer.getObj` is called from within a loop\n // containing try-catch statements, since we would otherwise attempt\n // to parse the *same* character over and over (fixes issue8061.pdf).\n this.nextChar();\n throw new FormatError(`Illegal character: ${ch}`);\n }\n\n // Start reading a command.\n let str = String.fromCharCode(ch);\n // A valid command cannot start with a non-visible ASCII character,\n // and the next character may be (the start of) a valid command.\n if (ch < 0x20 || ch > 0x7f) {\n const nextCh = this.peekChar();\n if (nextCh >= 0x20 && nextCh <= 0x7f) {\n this.nextChar();\n return Cmd.get(str);\n }\n }\n const knownCommands = this.knownCommands;\n let knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n // Stop if a known command is found and next character does not make\n // the string a command.\n const possibleCommand = str + String.fromCharCode(ch);\n if (knownCommandFound && knownCommands[possibleCommand] === undefined) {\n break;\n }\n if (str.length === 128) {\n throw new FormatError(`Command token too long: ${str.length}`);\n }\n str = possibleCommand;\n knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n }\n if (str === \"true\") {\n return true;\n }\n if (str === \"false\") {\n return false;\n }\n if (str === \"null\") {\n return null;\n }\n\n if (str === \"BI\") {\n // Keep track of the current stream position, since it's needed in order\n // to correctly cache inline images; see `Parser.makeInlineImage`.\n this.beginInlineImagePos = this.stream.pos;\n }\n\n return Cmd.get(str);\n }\n\n peekObj() {\n const streamPos = this.stream.pos,\n currentChar = this.currentChar,\n beginInlineImagePos = this.beginInlineImagePos;\n\n let nextObj;\n try {\n nextObj = this.getObj();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`peekObj: ${ex}`);\n }\n // Ensure that we reset *all* relevant `Lexer`-instance state.\n this.stream.pos = streamPos;\n this.currentChar = currentChar;\n this.beginInlineImagePos = beginInlineImagePos;\n\n return nextObj;\n }\n\n skipToNextLine() {\n let ch = this.currentChar;\n while (ch >= 0) {\n if (ch === /* CR = */ 0x0d) {\n ch = this.nextChar();\n if (ch === /* LF = */ 0x0a) {\n this.nextChar();\n }\n break;\n } else if (ch === /* LF = */ 0x0a) {\n this.nextChar();\n break;\n }\n ch = this.nextChar();\n }\n }\n}\n\nclass Linearization {\n static create(stream) {\n function getInt(linDict, name, allowZeroValue = false) {\n const obj = linDict.get(name);\n if (Number.isInteger(obj) && (allowZeroValue ? obj >= 0 : obj > 0)) {\n return obj;\n }\n throw new Error(\n `The \"${name}\" parameter in the linearization ` +\n \"dictionary is invalid.\"\n );\n }\n\n function getHints(linDict) {\n const hints = linDict.get(\"H\");\n let hintsLength;\n\n if (\n Array.isArray(hints) &&\n ((hintsLength = hints.length) === 2 || hintsLength === 4)\n ) {\n for (let index = 0; index < hintsLength; index++) {\n const hint = hints[index];\n if (!(Number.isInteger(hint) && hint > 0)) {\n throw new Error(\n `Hint (${index}) in the linearization dictionary is invalid.`\n );\n }\n }\n return hints;\n }\n throw new Error(\"Hint array in the linearization dictionary is invalid.\");\n }\n\n const parser = new Parser({\n lexer: new Lexer(stream),\n xref: null,\n });\n const obj1 = parser.getObj();\n const obj2 = parser.getObj();\n const obj3 = parser.getObj();\n const linDict = parser.getObj();\n let obj, length;\n if (\n !(\n Number.isInteger(obj1) &&\n Number.isInteger(obj2) &&\n isCmd(obj3, \"obj\") &&\n linDict instanceof Dict &&\n typeof (obj = linDict.get(\"Linearized\")) === \"number\" &&\n obj > 0\n )\n ) {\n return null; // No valid linearization dictionary found.\n } else if ((length = getInt(linDict, \"L\")) !== stream.length) {\n throw new Error(\n 'The \"L\" parameter in the linearization dictionary ' +\n \"does not equal the stream length.\"\n );\n }\n return {\n length,\n hints: getHints(linDict),\n objectNumberFirst: getInt(linDict, \"O\"),\n endFirst: getInt(linDict, \"E\"),\n numPages: getInt(linDict, \"N\"),\n mainXRefEntriesOffset: getInt(linDict, \"T\"),\n pageFirst: linDict.has(\"P\")\n ? getInt(linDict, \"P\", /* allowZeroValue = */ true)\n : 0,\n };\n }\n}\n\nexport { Lexer, Linearization, Parser };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { isWhiteSpace } from \"./core_utils.js\";\n\nclass Ascii85Stream extends DecodeStream {\n constructor(str, maybeLength) {\n // Most streams increase in size when decoded, but Ascii85 streams\n // typically shrink by ~20%.\n if (maybeLength) {\n maybeLength *= 0.8;\n }\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n this.input = new Uint8Array(5);\n }\n\n readBlock() {\n const TILDA_CHAR = 0x7e; // '~'\n const Z_LOWER_CHAR = 0x7a; // 'z'\n const EOF = -1;\n\n const str = this.str;\n\n let c = str.getByte();\n while (isWhiteSpace(c)) {\n c = str.getByte();\n }\n\n if (c === EOF || c === TILDA_CHAR) {\n this.eof = true;\n return;\n }\n\n const bufferLength = this.bufferLength;\n let buffer, i;\n\n // special code for z\n if (c === Z_LOWER_CHAR) {\n buffer = this.ensureBuffer(bufferLength + 4);\n for (i = 0; i < 4; ++i) {\n buffer[bufferLength + i] = 0;\n }\n this.bufferLength += 4;\n } else {\n const input = this.input;\n input[0] = c;\n for (i = 1; i < 5; ++i) {\n c = str.getByte();\n while (isWhiteSpace(c)) {\n c = str.getByte();\n }\n\n input[i] = c;\n\n if (c === EOF || c === TILDA_CHAR) {\n break;\n }\n }\n buffer = this.ensureBuffer(bufferLength + i - 1);\n this.bufferLength += i - 1;\n\n // partial ending;\n if (i < 5) {\n for (; i < 5; ++i) {\n input[i] = 0x21 + 84;\n }\n this.eof = true;\n }\n let t = 0;\n for (i = 0; i < 5; ++i) {\n t = t * 85 + (input[i] - 0x21);\n }\n\n for (i = 3; i >= 0; --i) {\n buffer[bufferLength + i] = t & 0xff;\n t >>= 8;\n }\n }\n }\n}\n\nexport { Ascii85Stream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseStream } from \"./base_stream.js\";\nimport { Stream } from \"./stream.js\";\n\n// Lots of DecodeStreams are created whose buffers are never used. For these\n// we share a single empty buffer. This is (a) space-efficient and (b) avoids\n// having special cases that would be required if we used |null| for an empty\n// buffer.\nconst emptyBuffer = new Uint8Array(0);\n\n// Super class for the decoding streams.\nclass DecodeStream extends BaseStream {\n constructor(maybeMinBufferLength) {\n super();\n this._rawMinBufferLength = maybeMinBufferLength || 0;\n\n this.pos = 0;\n this.bufferLength = 0;\n this.eof = false;\n this.buffer = emptyBuffer;\n this.minBufferLength = 512;\n if (maybeMinBufferLength) {\n // Compute the first power of two that is as big as maybeMinBufferLength.\n while (this.minBufferLength < maybeMinBufferLength) {\n this.minBufferLength *= 2;\n }\n }\n }\n\n get isEmpty() {\n while (!this.eof && this.bufferLength === 0) {\n this.readBlock();\n }\n return this.bufferLength === 0;\n }\n\n ensureBuffer(requested) {\n const buffer = this.buffer;\n if (requested <= buffer.byteLength) {\n return buffer;\n }\n let size = this.minBufferLength;\n while (size < requested) {\n size *= 2;\n }\n const buffer2 = new Uint8Array(size);\n buffer2.set(buffer);\n return (this.buffer = buffer2);\n }\n\n getByte() {\n const pos = this.pos;\n while (this.bufferLength <= pos) {\n if (this.eof) {\n return -1;\n }\n this.readBlock();\n }\n return this.buffer[this.pos++];\n }\n\n getBytes(length) {\n const pos = this.pos;\n let end;\n\n if (length) {\n this.ensureBuffer(pos + length);\n end = pos + length;\n\n while (!this.eof && this.bufferLength < end) {\n this.readBlock();\n }\n const bufEnd = this.bufferLength;\n if (end > bufEnd) {\n end = bufEnd;\n }\n } else {\n while (!this.eof) {\n this.readBlock();\n }\n end = this.bufferLength;\n }\n\n this.pos = end;\n return this.buffer.subarray(pos, end);\n }\n\n reset() {\n this.pos = 0;\n }\n\n makeSubStream(start, length, dict = null) {\n if (length === undefined) {\n while (!this.eof) {\n this.readBlock();\n }\n } else {\n const end = start + length;\n while (this.bufferLength <= end && !this.eof) {\n this.readBlock();\n }\n }\n return new Stream(this.buffer, start, length, dict);\n }\n\n getBaseStreams() {\n return this.str ? this.str.getBaseStreams() : null;\n }\n}\n\nclass StreamsSequenceStream extends DecodeStream {\n constructor(streams, onError = null) {\n let maybeLength = 0;\n for (const stream of streams) {\n maybeLength +=\n stream instanceof DecodeStream\n ? stream._rawMinBufferLength\n : stream.length;\n }\n super(maybeLength);\n\n this.streams = streams;\n this._onError = onError;\n }\n\n readBlock() {\n const streams = this.streams;\n if (streams.length === 0) {\n this.eof = true;\n return;\n }\n const stream = streams.shift();\n let chunk;\n try {\n chunk = stream.getBytes();\n } catch (reason) {\n if (this._onError) {\n this._onError(reason, stream.dict && stream.dict.objId);\n return;\n }\n throw reason;\n }\n const bufferLength = this.bufferLength;\n const newLength = bufferLength + chunk.length;\n const buffer = this.ensureBuffer(newLength);\n buffer.set(chunk, bufferLength);\n this.bufferLength = newLength;\n }\n\n getBaseStreams() {\n const baseStreamsBuf = [];\n for (const stream of this.streams) {\n const baseStreams = stream.getBaseStreams();\n if (baseStreams) {\n baseStreamsBuf.push(...baseStreams);\n }\n }\n return baseStreamsBuf.length > 0 ? baseStreamsBuf : null;\n }\n}\n\nexport { DecodeStream, StreamsSequenceStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\n\nclass AsciiHexStream extends DecodeStream {\n constructor(str, maybeLength) {\n // Most streams increase in size when decoded, but AsciiHex streams shrink\n // by 50%.\n if (maybeLength) {\n maybeLength *= 0.5;\n }\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n\n this.firstDigit = -1;\n }\n\n readBlock() {\n const UPSTREAM_BLOCK_SIZE = 8000;\n const bytes = this.str.getBytes(UPSTREAM_BLOCK_SIZE);\n if (!bytes.length) {\n this.eof = true;\n return;\n }\n\n const maxDecodeLength = (bytes.length + 1) >> 1;\n const buffer = this.ensureBuffer(this.bufferLength + maxDecodeLength);\n let bufferLength = this.bufferLength;\n\n let firstDigit = this.firstDigit;\n for (const ch of bytes) {\n let digit;\n if (ch >= /* '0' = */ 0x30 && ch <= /* '9' = */ 0x39) {\n digit = ch & 0x0f;\n } else if (\n (ch >= /* 'A' = */ 0x41 && ch <= /* 'Z' = */ 0x46) ||\n (ch >= /* 'a' = */ 0x61 && ch <= /* 'z' = */ 0x66)\n ) {\n digit = (ch & 0x0f) + 9;\n } else if (ch === /* '>' = */ 0x3e) {\n this.eof = true;\n break;\n } else {\n // Probably whitespace, ignoring.\n continue;\n }\n if (firstDigit < 0) {\n firstDigit = digit;\n } else {\n buffer[bufferLength++] = (firstDigit << 4) | digit;\n firstDigit = -1;\n }\n }\n if (firstDigit >= 0 && this.eof) {\n // incomplete byte\n buffer[bufferLength++] = firstDigit << 4;\n firstDigit = -1;\n }\n this.firstDigit = firstDigit;\n this.bufferLength = bufferLength;\n }\n}\n\nexport { AsciiHexStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CCITTFaxDecoder } from \"./ccitt.js\";\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { Dict } from \"./primitives.js\";\n\nclass CCITTFaxStream extends DecodeStream {\n constructor(str, maybeLength, params) {\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n\n if (!(params instanceof Dict)) {\n params = Dict.empty;\n }\n\n const source = {\n next() {\n return str.getByte();\n },\n };\n this.ccittFaxDecoder = new CCITTFaxDecoder(source, {\n K: params.get(\"K\"),\n EndOfLine: params.get(\"EndOfLine\"),\n EncodedByteAlign: params.get(\"EncodedByteAlign\"),\n Columns: params.get(\"Columns\"),\n Rows: params.get(\"Rows\"),\n EndOfBlock: params.get(\"EndOfBlock\"),\n BlackIs1: params.get(\"BlackIs1\"),\n });\n }\n\n readBlock() {\n while (!this.eof) {\n const c = this.ccittFaxDecoder.readNextChar();\n if (c === -1) {\n this.eof = true;\n return;\n }\n this.ensureBuffer(this.bufferLength + 1);\n this.buffer[this.bufferLength++] = c;\n }\n }\n}\n\nexport { CCITTFaxStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Copyright 1996-2003 Glyph & Cog, LLC\n *\n * The CCITT stream implementation contained in this file is a JavaScript port\n * of XPDF's implementation, made available under the Apache 2.0 open source\n * license.\n */\n\nimport { FormatError, info } from \"../shared/util.js\";\n\n/**\n * @typedef {Object} CCITTFaxDecoderSource\n * @property {function} next - Method that return one byte of data for decoding,\n * or -1 when EOF is reached.\n */\n\nconst ccittEOL = -2;\nconst ccittEOF = -1;\nconst twoDimPass = 0;\nconst twoDimHoriz = 1;\nconst twoDimVert0 = 2;\nconst twoDimVertR1 = 3;\nconst twoDimVertL1 = 4;\nconst twoDimVertR2 = 5;\nconst twoDimVertL2 = 6;\nconst twoDimVertR3 = 7;\nconst twoDimVertL3 = 8;\n\n// prettier-ignore\nconst twoDimTable = [\n [-1, -1], [-1, -1], // 000000x\n [7, twoDimVertL3], // 0000010\n [7, twoDimVertR3], // 0000011\n [6, twoDimVertL2], [6, twoDimVertL2], // 000010x\n [6, twoDimVertR2], [6, twoDimVertR2], // 000011x\n [4, twoDimPass], [4, twoDimPass], // 0001xxx\n [4, twoDimPass], [4, twoDimPass],\n [4, twoDimPass], [4, twoDimPass],\n [4, twoDimPass], [4, twoDimPass],\n [3, twoDimHoriz], [3, twoDimHoriz], // 001xxxx\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimVertL1], [3, twoDimVertL1], // 010xxxx\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertR1], [3, twoDimVertR1], // 011xxxx\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [1, twoDimVert0], [1, twoDimVert0], // 1xxxxxx\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0]\n];\n\n// prettier-ignore\nconst whiteTable1 = [\n [-1, -1], // 00000\n [12, ccittEOL], // 00001\n [-1, -1], [-1, -1], // 0001x\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 001xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 010xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 011xx\n [11, 1792], [11, 1792], // 1000x\n [12, 1984], // 10010\n [12, 2048], // 10011\n [12, 2112], // 10100\n [12, 2176], // 10101\n [12, 2240], // 10110\n [12, 2304], // 10111\n [11, 1856], [11, 1856], // 1100x\n [11, 1920], [11, 1920], // 1101x\n [12, 2368], // 11100\n [12, 2432], // 11101\n [12, 2496], // 11110\n [12, 2560] // 11111\n];\n\n// prettier-ignore\nconst whiteTable2 = [\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 0000000xx\n [8, 29], [8, 29], // 00000010x\n [8, 30], [8, 30], // 00000011x\n [8, 45], [8, 45], // 00000100x\n [8, 46], [8, 46], // 00000101x\n [7, 22], [7, 22], [7, 22], [7, 22], // 0000011xx\n [7, 23], [7, 23], [7, 23], [7, 23], // 0000100xx\n [8, 47], [8, 47], // 00001010x\n [8, 48], [8, 48], // 00001011x\n [6, 13], [6, 13], [6, 13], [6, 13], // 000011xxx\n [6, 13], [6, 13], [6, 13], [6, 13],\n [7, 20], [7, 20], [7, 20], [7, 20], // 0001000xx\n [8, 33], [8, 33], // 00010010x\n [8, 34], [8, 34], // 00010011x\n [8, 35], [8, 35], // 00010100x\n [8, 36], [8, 36], // 00010101x\n [8, 37], [8, 37], // 00010110x\n [8, 38], [8, 38], // 00010111x\n [7, 19], [7, 19], [7, 19], [7, 19], // 0001100xx\n [8, 31], [8, 31], // 00011010x\n [8, 32], [8, 32], // 00011011x\n [6, 1], [6, 1], [6, 1], [6, 1], // 000111xxx\n [6, 1], [6, 1], [6, 1], [6, 1],\n [6, 12], [6, 12], [6, 12], [6, 12], // 001000xxx\n [6, 12], [6, 12], [6, 12], [6, 12],\n [8, 53], [8, 53], // 00100100x\n [8, 54], [8, 54], // 00100101x\n [7, 26], [7, 26], [7, 26], [7, 26], // 0010011xx\n [8, 39], [8, 39], // 00101000x\n [8, 40], [8, 40], // 00101001x\n [8, 41], [8, 41], // 00101010x\n [8, 42], [8, 42], // 00101011x\n [8, 43], [8, 43], // 00101100x\n [8, 44], [8, 44], // 00101101x\n [7, 21], [7, 21], [7, 21], [7, 21], // 0010111xx\n [7, 28], [7, 28], [7, 28], [7, 28], // 0011000xx\n [8, 61], [8, 61], // 00110010x\n [8, 62], [8, 62], // 00110011x\n [8, 63], [8, 63], // 00110100x\n [8, 0], [8, 0], // 00110101x\n [8, 320], [8, 320], // 00110110x\n [8, 384], [8, 384], // 00110111x\n [5, 10], [5, 10], [5, 10], [5, 10], // 00111xxxx\n [5, 10], [5, 10], [5, 10], [5, 10],\n [5, 10], [5, 10], [5, 10], [5, 10],\n [5, 10], [5, 10], [5, 10], [5, 10],\n [5, 11], [5, 11], [5, 11], [5, 11], // 01000xxxx\n [5, 11], [5, 11], [5, 11], [5, 11],\n [5, 11], [5, 11], [5, 11], [5, 11],\n [5, 11], [5, 11], [5, 11], [5, 11],\n [7, 27], [7, 27], [7, 27], [7, 27], // 0100100xx\n [8, 59], [8, 59], // 01001010x\n [8, 60], [8, 60], // 01001011x\n [9, 1472], // 010011000\n [9, 1536], // 010011001\n [9, 1600], // 010011010\n [9, 1728], // 010011011\n [7, 18], [7, 18], [7, 18], [7, 18], // 0100111xx\n [7, 24], [7, 24], [7, 24], [7, 24], // 0101000xx\n [8, 49], [8, 49], // 01010010x\n [8, 50], [8, 50], // 01010011x\n [8, 51], [8, 51], // 01010100x\n [8, 52], [8, 52], // 01010101x\n [7, 25], [7, 25], [7, 25], [7, 25], // 0101011xx\n [8, 55], [8, 55], // 01011000x\n [8, 56], [8, 56], // 01011001x\n [8, 57], [8, 57], // 01011010x\n [8, 58], [8, 58], // 01011011x\n [6, 192], [6, 192], [6, 192], [6, 192], // 010111xxx\n [6, 192], [6, 192], [6, 192], [6, 192],\n [6, 1664], [6, 1664], [6, 1664], [6, 1664], // 011000xxx\n [6, 1664], [6, 1664], [6, 1664], [6, 1664],\n [8, 448], [8, 448], // 01100100x\n [8, 512], [8, 512], // 01100101x\n [9, 704], // 011001100\n [9, 768], // 011001101\n [8, 640], [8, 640], // 01100111x\n [8, 576], [8, 576], // 01101000x\n [9, 832], // 011010010\n [9, 896], // 011010011\n [9, 960], // 011010100\n [9, 1024], // 011010101\n [9, 1088], // 011010110\n [9, 1152], // 011010111\n [9, 1216], // 011011000\n [9, 1280], // 011011001\n [9, 1344], // 011011010\n [9, 1408], // 011011011\n [7, 256], [7, 256], [7, 256], [7, 256], // 0110111xx\n [4, 2], [4, 2], [4, 2], [4, 2], // 0111xxxxx\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 3], [4, 3], [4, 3], [4, 3], // 1000xxxxx\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [5, 128], [5, 128], [5, 128], [5, 128], // 10010xxxx\n [5, 128], [5, 128], [5, 128], [5, 128],\n [5, 128], [5, 128], [5, 128], [5, 128],\n [5, 128], [5, 128], [5, 128], [5, 128],\n [5, 8], [5, 8], [5, 8], [5, 8], // 10011xxxx\n [5, 8], [5, 8], [5, 8], [5, 8],\n [5, 8], [5, 8], [5, 8], [5, 8],\n [5, 8], [5, 8], [5, 8], [5, 8],\n [5, 9], [5, 9], [5, 9], [5, 9], // 10100xxxx\n [5, 9], [5, 9], [5, 9], [5, 9],\n [5, 9], [5, 9], [5, 9], [5, 9],\n [5, 9], [5, 9], [5, 9], [5, 9],\n [6, 16], [6, 16], [6, 16], [6, 16], // 101010xxx\n [6, 16], [6, 16], [6, 16], [6, 16],\n [6, 17], [6, 17], [6, 17], [6, 17], // 101011xxx\n [6, 17], [6, 17], [6, 17], [6, 17],\n [4, 4], [4, 4], [4, 4], [4, 4], // 1011xxxxx\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 5], [4, 5], [4, 5], [4, 5], // 1100xxxxx\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [6, 14], [6, 14], [6, 14], [6, 14], // 110100xxx\n [6, 14], [6, 14], [6, 14], [6, 14],\n [6, 15], [6, 15], [6, 15], [6, 15], // 110101xxx\n [6, 15], [6, 15], [6, 15], [6, 15],\n [5, 64], [5, 64], [5, 64], [5, 64], // 11011xxxx\n [5, 64], [5, 64], [5, 64], [5, 64],\n [5, 64], [5, 64], [5, 64], [5, 64],\n [5, 64], [5, 64], [5, 64], [5, 64],\n [4, 6], [4, 6], [4, 6], [4, 6], // 1110xxxxx\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 7], [4, 7], [4, 7], [4, 7], // 1111xxxxx\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7]\n];\n\n// prettier-ignore\nconst blackTable1 = [\n [-1, -1], [-1, -1], // 000000000000x\n [12, ccittEOL], [12, ccittEOL], // 000000000001x\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000001xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000010xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000011xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000100xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000101xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000110xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000111xx\n [11, 1792], [11, 1792], [11, 1792], [11, 1792], // 00000001000xx\n [12, 1984], [12, 1984], // 000000010010x\n [12, 2048], [12, 2048], // 000000010011x\n [12, 2112], [12, 2112], // 000000010100x\n [12, 2176], [12, 2176], // 000000010101x\n [12, 2240], [12, 2240], // 000000010110x\n [12, 2304], [12, 2304], // 000000010111x\n [11, 1856], [11, 1856], [11, 1856], [11, 1856], // 00000001100xx\n [11, 1920], [11, 1920], [11, 1920], [11, 1920], // 00000001101xx\n [12, 2368], [12, 2368], // 000000011100x\n [12, 2432], [12, 2432], // 000000011101x\n [12, 2496], [12, 2496], // 000000011110x\n [12, 2560], [12, 2560], // 000000011111x\n [10, 18], [10, 18], [10, 18], [10, 18], // 0000001000xxx\n [10, 18], [10, 18], [10, 18], [10, 18],\n [12, 52], [12, 52], // 000000100100x\n [13, 640], // 0000001001010\n [13, 704], // 0000001001011\n [13, 768], // 0000001001100\n [13, 832], // 0000001001101\n [12, 55], [12, 55], // 000000100111x\n [12, 56], [12, 56], // 000000101000x\n [13, 1280], // 0000001010010\n [13, 1344], // 0000001010011\n [13, 1408], // 0000001010100\n [13, 1472], // 0000001010101\n [12, 59], [12, 59], // 000000101011x\n [12, 60], [12, 60], // 000000101100x\n [13, 1536], // 0000001011010\n [13, 1600], // 0000001011011\n [11, 24], [11, 24], [11, 24], [11, 24], // 00000010111xx\n [11, 25], [11, 25], [11, 25], [11, 25], // 00000011000xx\n [13, 1664], // 0000001100100\n [13, 1728], // 0000001100101\n [12, 320], [12, 320], // 000000110011x\n [12, 384], [12, 384], // 000000110100x\n [12, 448], [12, 448], // 000000110101x\n [13, 512], // 0000001101100\n [13, 576], // 0000001101101\n [12, 53], [12, 53], // 000000110111x\n [12, 54], [12, 54], // 000000111000x\n [13, 896], // 0000001110010\n [13, 960], // 0000001110011\n [13, 1024], // 0000001110100\n [13, 1088], // 0000001110101\n [13, 1152], // 0000001110110\n [13, 1216], // 0000001110111\n [10, 64], [10, 64], [10, 64], [10, 64], // 0000001111xxx\n [10, 64], [10, 64], [10, 64], [10, 64]\n];\n\n// prettier-ignore\nconst blackTable2 = [\n [8, 13], [8, 13], [8, 13], [8, 13], // 00000100xxxx\n [8, 13], [8, 13], [8, 13], [8, 13],\n [8, 13], [8, 13], [8, 13], [8, 13],\n [8, 13], [8, 13], [8, 13], [8, 13],\n [11, 23], [11, 23], // 00000101000x\n [12, 50], // 000001010010\n [12, 51], // 000001010011\n [12, 44], // 000001010100\n [12, 45], // 000001010101\n [12, 46], // 000001010110\n [12, 47], // 000001010111\n [12, 57], // 000001011000\n [12, 58], // 000001011001\n [12, 61], // 000001011010\n [12, 256], // 000001011011\n [10, 16], [10, 16], [10, 16], [10, 16], // 0000010111xx\n [10, 17], [10, 17], [10, 17], [10, 17], // 0000011000xx\n [12, 48], // 000001100100\n [12, 49], // 000001100101\n [12, 62], // 000001100110\n [12, 63], // 000001100111\n [12, 30], // 000001101000\n [12, 31], // 000001101001\n [12, 32], // 000001101010\n [12, 33], // 000001101011\n [12, 40], // 000001101100\n [12, 41], // 000001101101\n [11, 22], [11, 22], // 00000110111x\n [8, 14], [8, 14], [8, 14], [8, 14], // 00000111xxxx\n [8, 14], [8, 14], [8, 14], [8, 14],\n [8, 14], [8, 14], [8, 14], [8, 14],\n [8, 14], [8, 14], [8, 14], [8, 14],\n [7, 10], [7, 10], [7, 10], [7, 10], // 0000100xxxxx\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 11], [7, 11], [7, 11], [7, 11], // 0000101xxxxx\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [9, 15], [9, 15], [9, 15], [9, 15], // 000011000xxx\n [9, 15], [9, 15], [9, 15], [9, 15],\n [12, 128], // 000011001000\n [12, 192], // 000011001001\n [12, 26], // 000011001010\n [12, 27], // 000011001011\n [12, 28], // 000011001100\n [12, 29], // 000011001101\n [11, 19], [11, 19], // 00001100111x\n [11, 20], [11, 20], // 00001101000x\n [12, 34], // 000011010010\n [12, 35], // 000011010011\n [12, 36], // 000011010100\n [12, 37], // 000011010101\n [12, 38], // 000011010110\n [12, 39], // 000011010111\n [11, 21], [11, 21], // 00001101100x\n [12, 42], // 000011011010\n [12, 43], // 000011011011\n [10, 0], [10, 0], [10, 0], [10, 0], // 0000110111xx\n [7, 12], [7, 12], [7, 12], [7, 12], // 0000111xxxxx\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12]\n];\n\n// prettier-ignore\nconst blackTable3 = [\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 0000xx\n [6, 9], // 000100\n [6, 8], // 000101\n [5, 7], [5, 7], // 00011x\n [4, 6], [4, 6], [4, 6], [4, 6], // 0010xx\n [4, 5], [4, 5], [4, 5], [4, 5], // 0011xx\n [3, 1], [3, 1], [3, 1], [3, 1], // 010xxx\n [3, 1], [3, 1], [3, 1], [3, 1],\n [3, 4], [3, 4], [3, 4], [3, 4], // 011xxx\n [3, 4], [3, 4], [3, 4], [3, 4],\n [2, 3], [2, 3], [2, 3], [2, 3], // 10xxxx\n [2, 3], [2, 3], [2, 3], [2, 3],\n [2, 3], [2, 3], [2, 3], [2, 3],\n [2, 3], [2, 3], [2, 3], [2, 3],\n [2, 2], [2, 2], [2, 2], [2, 2], // 11xxxx\n [2, 2], [2, 2], [2, 2], [2, 2],\n [2, 2], [2, 2], [2, 2], [2, 2],\n [2, 2], [2, 2], [2, 2], [2, 2]\n];\n\n/**\n * @param {CCITTFaxDecoderSource} source - The data which should be decoded.\n * @param {Object} [options] - Decoding options.\n */\nclass CCITTFaxDecoder {\n constructor(source, options = {}) {\n if (!source || typeof source.next !== \"function\") {\n throw new Error('CCITTFaxDecoder - invalid \"source\" parameter.');\n }\n this.source = source;\n this.eof = false;\n\n this.encoding = options.K || 0;\n this.eoline = options.EndOfLine || false;\n this.byteAlign = options.EncodedByteAlign || false;\n this.columns = options.Columns || 1728;\n this.rows = options.Rows || 0;\n let eoblock = options.EndOfBlock;\n if (eoblock === null || eoblock === undefined) {\n eoblock = true;\n }\n this.eoblock = eoblock;\n this.black = options.BlackIs1 || false;\n\n this.codingLine = new Uint32Array(this.columns + 1);\n this.refLine = new Uint32Array(this.columns + 2);\n\n this.codingLine[0] = this.columns;\n this.codingPos = 0;\n\n this.row = 0;\n this.nextLine2D = this.encoding < 0;\n this.inputBits = 0;\n this.inputBuf = 0;\n this.outputBits = 0;\n this.rowsDone = false;\n\n let code1;\n while ((code1 = this._lookBits(12)) === 0) {\n this._eatBits(1);\n }\n if (code1 === 1) {\n this._eatBits(12);\n }\n if (this.encoding > 0) {\n this.nextLine2D = !this._lookBits(1);\n this._eatBits(1);\n }\n }\n\n readNextChar() {\n if (this.eof) {\n return -1;\n }\n const refLine = this.refLine;\n const codingLine = this.codingLine;\n const columns = this.columns;\n\n let refPos, blackPixels, bits, i;\n\n if (this.outputBits === 0) {\n if (this.rowsDone) {\n this.eof = true;\n }\n if (this.eof) {\n return -1;\n }\n this.err = false;\n\n let code1, code2, code3;\n if (this.nextLine2D) {\n for (i = 0; codingLine[i] < columns; ++i) {\n refLine[i] = codingLine[i];\n }\n refLine[i++] = columns;\n refLine[i] = columns;\n codingLine[0] = 0;\n this.codingPos = 0;\n refPos = 0;\n blackPixels = 0;\n\n while (codingLine[this.codingPos] < columns) {\n code1 = this._getTwoDimCode();\n switch (code1) {\n case twoDimPass:\n this._addPixels(refLine[refPos + 1], blackPixels);\n if (refLine[refPos + 1] < columns) {\n refPos += 2;\n }\n break;\n case twoDimHoriz:\n code1 = code2 = 0;\n if (blackPixels) {\n do {\n code1 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n do {\n code2 += code3 = this._getWhiteCode();\n } while (code3 >= 64);\n } else {\n do {\n code1 += code3 = this._getWhiteCode();\n } while (code3 >= 64);\n do {\n code2 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n }\n this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n if (codingLine[this.codingPos] < columns) {\n this._addPixels(\n codingLine[this.codingPos] + code2,\n blackPixels ^ 1\n );\n }\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n break;\n case twoDimVertR3:\n this._addPixels(refLine[refPos] + 3, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertR2:\n this._addPixels(refLine[refPos] + 2, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertR1:\n this._addPixels(refLine[refPos] + 1, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVert0:\n this._addPixels(refLine[refPos], blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL3:\n this._addPixelsNeg(refLine[refPos] - 3, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL2:\n this._addPixelsNeg(refLine[refPos] - 2, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL1:\n this._addPixelsNeg(refLine[refPos] - 1, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case ccittEOF:\n this._addPixels(columns, 0);\n this.eof = true;\n break;\n default:\n info(\"bad 2d code\");\n this._addPixels(columns, 0);\n this.err = true;\n }\n }\n } else {\n codingLine[0] = 0;\n this.codingPos = 0;\n blackPixels = 0;\n while (codingLine[this.codingPos] < columns) {\n code1 = 0;\n if (blackPixels) {\n do {\n code1 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n } else {\n do {\n code1 += code3 = this._getWhiteCode();\n } while (code3 >= 64);\n }\n this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n blackPixels ^= 1;\n }\n }\n\n let gotEOL = false;\n\n if (this.byteAlign) {\n this.inputBits &= ~7;\n }\n\n if (!this.eoblock && this.row === this.rows - 1) {\n this.rowsDone = true;\n } else {\n code1 = this._lookBits(12);\n if (this.eoline) {\n while (code1 !== ccittEOF && code1 !== 1) {\n this._eatBits(1);\n code1 = this._lookBits(12);\n }\n } else {\n while (code1 === 0) {\n this._eatBits(1);\n code1 = this._lookBits(12);\n }\n }\n if (code1 === 1) {\n this._eatBits(12);\n gotEOL = true;\n } else if (code1 === ccittEOF) {\n this.eof = true;\n }\n }\n\n if (!this.eof && this.encoding > 0 && !this.rowsDone) {\n this.nextLine2D = !this._lookBits(1);\n this._eatBits(1);\n }\n\n if (this.eoblock && gotEOL && this.byteAlign) {\n code1 = this._lookBits(12);\n if (code1 === 1) {\n this._eatBits(12);\n if (this.encoding > 0) {\n this._lookBits(1);\n this._eatBits(1);\n }\n if (this.encoding >= 0) {\n for (i = 0; i < 4; ++i) {\n code1 = this._lookBits(12);\n if (code1 !== 1) {\n info(\"bad rtc code: \" + code1);\n }\n this._eatBits(12);\n if (this.encoding > 0) {\n this._lookBits(1);\n this._eatBits(1);\n }\n }\n }\n this.eof = true;\n }\n } else if (this.err && this.eoline) {\n while (true) {\n code1 = this._lookBits(13);\n if (code1 === ccittEOF) {\n this.eof = true;\n return -1;\n }\n if (code1 >> 1 === 1) {\n break;\n }\n this._eatBits(1);\n }\n this._eatBits(12);\n if (this.encoding > 0) {\n this._eatBits(1);\n this.nextLine2D = !(code1 & 1);\n }\n }\n\n if (codingLine[0] > 0) {\n this.outputBits = codingLine[(this.codingPos = 0)];\n } else {\n this.outputBits = codingLine[(this.codingPos = 1)];\n }\n this.row++;\n }\n\n let c;\n if (this.outputBits >= 8) {\n c = this.codingPos & 1 ? 0 : 0xff;\n this.outputBits -= 8;\n if (this.outputBits === 0 && codingLine[this.codingPos] < columns) {\n this.codingPos++;\n this.outputBits =\n codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n }\n } else {\n bits = 8;\n c = 0;\n do {\n if (typeof this.outputBits !== \"number\") {\n throw new FormatError(\n 'Invalid /CCITTFaxDecode data, \"outputBits\" must be a number.'\n );\n }\n\n if (this.outputBits > bits) {\n c <<= bits;\n if (!(this.codingPos & 1)) {\n c |= 0xff >> (8 - bits);\n }\n this.outputBits -= bits;\n bits = 0;\n } else {\n c <<= this.outputBits;\n if (!(this.codingPos & 1)) {\n c |= 0xff >> (8 - this.outputBits);\n }\n bits -= this.outputBits;\n this.outputBits = 0;\n if (codingLine[this.codingPos] < columns) {\n this.codingPos++;\n this.outputBits =\n codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n } else if (bits > 0) {\n c <<= bits;\n bits = 0;\n }\n }\n } while (bits);\n }\n if (this.black) {\n c ^= 0xff;\n }\n return c;\n }\n\n /**\n * @private\n */\n _addPixels(a1, blackPixels) {\n const codingLine = this.codingLine;\n let codingPos = this.codingPos;\n\n if (a1 > codingLine[codingPos]) {\n if (a1 > this.columns) {\n info(\"row is wrong length\");\n this.err = true;\n a1 = this.columns;\n }\n if ((codingPos & 1) ^ blackPixels) {\n ++codingPos;\n }\n\n codingLine[codingPos] = a1;\n }\n this.codingPos = codingPos;\n }\n\n /**\n * @private\n */\n _addPixelsNeg(a1, blackPixels) {\n const codingLine = this.codingLine;\n let codingPos = this.codingPos;\n\n if (a1 > codingLine[codingPos]) {\n if (a1 > this.columns) {\n info(\"row is wrong length\");\n this.err = true;\n a1 = this.columns;\n }\n if ((codingPos & 1) ^ blackPixels) {\n ++codingPos;\n }\n\n codingLine[codingPos] = a1;\n } else if (a1 < codingLine[codingPos]) {\n if (a1 < 0) {\n info(\"invalid code\");\n this.err = true;\n a1 = 0;\n }\n while (codingPos > 0 && a1 < codingLine[codingPos - 1]) {\n --codingPos;\n }\n codingLine[codingPos] = a1;\n }\n\n this.codingPos = codingPos;\n }\n\n /**\n * This function returns the code found from the table.\n * The start and end parameters set the boundaries for searching the table.\n * The limit parameter is optional. Function returns an array with three\n * values. The first array element indicates whether a valid code is being\n * returned. The second array element is the actual code. The third array\n * element indicates whether EOF was reached.\n * @private\n */\n _findTableCode(start, end, table, limit) {\n const limitValue = limit || 0;\n for (let i = start; i <= end; ++i) {\n let code = this._lookBits(i);\n if (code === ccittEOF) {\n return [true, 1, false];\n }\n if (i < end) {\n code <<= end - i;\n }\n if (!limitValue || code >= limitValue) {\n const p = table[code - limitValue];\n if (p[0] === i) {\n this._eatBits(i);\n return [true, p[1], true];\n }\n }\n }\n return [false, 0, false];\n }\n\n /**\n * @private\n */\n _getTwoDimCode() {\n let code = 0;\n let p;\n if (this.eoblock) {\n code = this._lookBits(7);\n p = twoDimTable[code];\n if (p && p[0] > 0) {\n this._eatBits(p[0]);\n return p[1];\n }\n } else {\n const result = this._findTableCode(1, 7, twoDimTable);\n if (result[0] && result[2]) {\n return result[1];\n }\n }\n info(\"Bad two dim code\");\n return ccittEOF;\n }\n\n /**\n * @private\n */\n _getWhiteCode() {\n let code = 0;\n let p;\n if (this.eoblock) {\n code = this._lookBits(12);\n if (code === ccittEOF) {\n return 1;\n }\n\n if (code >> 5 === 0) {\n p = whiteTable1[code];\n } else {\n p = whiteTable2[code >> 3];\n }\n\n if (p[0] > 0) {\n this._eatBits(p[0]);\n return p[1];\n }\n } else {\n let result = this._findTableCode(1, 9, whiteTable2);\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(11, 12, whiteTable1);\n if (result[0]) {\n return result[1];\n }\n }\n info(\"bad white code\");\n this._eatBits(1);\n return 1;\n }\n\n /**\n * @private\n */\n _getBlackCode() {\n let code, p;\n if (this.eoblock) {\n code = this._lookBits(13);\n if (code === ccittEOF) {\n return 1;\n }\n if (code >> 7 === 0) {\n p = blackTable1[code];\n } else if (code >> 9 === 0 && code >> 7 !== 0) {\n p = blackTable2[(code >> 1) - 64];\n } else {\n p = blackTable3[code >> 7];\n }\n\n if (p[0] > 0) {\n this._eatBits(p[0]);\n return p[1];\n }\n } else {\n let result = this._findTableCode(2, 6, blackTable3);\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(7, 12, blackTable2, 64);\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(10, 13, blackTable1);\n if (result[0]) {\n return result[1];\n }\n }\n info(\"bad black code\");\n this._eatBits(1);\n return 1;\n }\n\n /**\n * @private\n */\n _lookBits(n) {\n let c;\n while (this.inputBits < n) {\n if ((c = this.source.next()) === -1) {\n if (this.inputBits === 0) {\n return ccittEOF;\n }\n return (this.inputBuf << (n - this.inputBits)) & (0xffff >> (16 - n));\n }\n this.inputBuf = (this.inputBuf << 8) | c;\n this.inputBits += 8;\n }\n return (this.inputBuf >> (this.inputBits - n)) & (0xffff >> (16 - n));\n }\n\n /**\n * @private\n */\n _eatBits(n) {\n if ((this.inputBits -= n) < 0) {\n this.inputBits = 0;\n }\n }\n}\n\nexport { CCITTFaxDecoder };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Copyright 1996-2003 Glyph & Cog, LLC\n *\n * The flate stream implementation contained in this file is a JavaScript port\n * of XPDF's implementation, made available under the Apache 2.0 open source\n * license.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { FormatError } from \"../shared/util.js\";\n\nconst codeLenCodeMap = new Int32Array([\n 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15,\n]);\n\nconst lengthDecode = new Int32Array([\n 0x00003, 0x00004, 0x00005, 0x00006, 0x00007, 0x00008, 0x00009, 0x0000a,\n 0x1000b, 0x1000d, 0x1000f, 0x10011, 0x20013, 0x20017, 0x2001b, 0x2001f,\n 0x30023, 0x3002b, 0x30033, 0x3003b, 0x40043, 0x40053, 0x40063, 0x40073,\n 0x50083, 0x500a3, 0x500c3, 0x500e3, 0x00102, 0x00102, 0x00102,\n]);\n\nconst distDecode = new Int32Array([\n 0x00001, 0x00002, 0x00003, 0x00004, 0x10005, 0x10007, 0x20009, 0x2000d,\n 0x30011, 0x30019, 0x40021, 0x40031, 0x50041, 0x50061, 0x60081, 0x600c1,\n 0x70101, 0x70181, 0x80201, 0x80301, 0x90401, 0x90601, 0xa0801, 0xa0c01,\n 0xb1001, 0xb1801, 0xc2001, 0xc3001, 0xd4001, 0xd6001,\n]);\n\nconst fixedLitCodeTab = [\n new Int32Array([\n 0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c0,\n 0x70108, 0x80060, 0x80020, 0x900a0, 0x80000, 0x80080, 0x80040, 0x900e0,\n 0x70104, 0x80058, 0x80018, 0x90090, 0x70114, 0x80078, 0x80038, 0x900d0,\n 0x7010c, 0x80068, 0x80028, 0x900b0, 0x80008, 0x80088, 0x80048, 0x900f0,\n 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c8,\n 0x7010a, 0x80064, 0x80024, 0x900a8, 0x80004, 0x80084, 0x80044, 0x900e8,\n 0x70106, 0x8005c, 0x8001c, 0x90098, 0x70116, 0x8007c, 0x8003c, 0x900d8,\n 0x7010e, 0x8006c, 0x8002c, 0x900b8, 0x8000c, 0x8008c, 0x8004c, 0x900f8,\n 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c4,\n 0x70109, 0x80062, 0x80022, 0x900a4, 0x80002, 0x80082, 0x80042, 0x900e4,\n 0x70105, 0x8005a, 0x8001a, 0x90094, 0x70115, 0x8007a, 0x8003a, 0x900d4,\n 0x7010d, 0x8006a, 0x8002a, 0x900b4, 0x8000a, 0x8008a, 0x8004a, 0x900f4,\n 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cc,\n 0x7010b, 0x80066, 0x80026, 0x900ac, 0x80006, 0x80086, 0x80046, 0x900ec,\n 0x70107, 0x8005e, 0x8001e, 0x9009c, 0x70117, 0x8007e, 0x8003e, 0x900dc,\n 0x7010f, 0x8006e, 0x8002e, 0x900bc, 0x8000e, 0x8008e, 0x8004e, 0x900fc,\n 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c2,\n 0x70108, 0x80061, 0x80021, 0x900a2, 0x80001, 0x80081, 0x80041, 0x900e2,\n 0x70104, 0x80059, 0x80019, 0x90092, 0x70114, 0x80079, 0x80039, 0x900d2,\n 0x7010c, 0x80069, 0x80029, 0x900b2, 0x80009, 0x80089, 0x80049, 0x900f2,\n 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900ca,\n 0x7010a, 0x80065, 0x80025, 0x900aa, 0x80005, 0x80085, 0x80045, 0x900ea,\n 0x70106, 0x8005d, 0x8001d, 0x9009a, 0x70116, 0x8007d, 0x8003d, 0x900da,\n 0x7010e, 0x8006d, 0x8002d, 0x900ba, 0x8000d, 0x8008d, 0x8004d, 0x900fa,\n 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c6,\n 0x70109, 0x80063, 0x80023, 0x900a6, 0x80003, 0x80083, 0x80043, 0x900e6,\n 0x70105, 0x8005b, 0x8001b, 0x90096, 0x70115, 0x8007b, 0x8003b, 0x900d6,\n 0x7010d, 0x8006b, 0x8002b, 0x900b6, 0x8000b, 0x8008b, 0x8004b, 0x900f6,\n 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900ce,\n 0x7010b, 0x80067, 0x80027, 0x900ae, 0x80007, 0x80087, 0x80047, 0x900ee,\n 0x70107, 0x8005f, 0x8001f, 0x9009e, 0x70117, 0x8007f, 0x8003f, 0x900de,\n 0x7010f, 0x8006f, 0x8002f, 0x900be, 0x8000f, 0x8008f, 0x8004f, 0x900fe,\n 0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c1,\n 0x70108, 0x80060, 0x80020, 0x900a1, 0x80000, 0x80080, 0x80040, 0x900e1,\n 0x70104, 0x80058, 0x80018, 0x90091, 0x70114, 0x80078, 0x80038, 0x900d1,\n 0x7010c, 0x80068, 0x80028, 0x900b1, 0x80008, 0x80088, 0x80048, 0x900f1,\n 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c9,\n 0x7010a, 0x80064, 0x80024, 0x900a9, 0x80004, 0x80084, 0x80044, 0x900e9,\n 0x70106, 0x8005c, 0x8001c, 0x90099, 0x70116, 0x8007c, 0x8003c, 0x900d9,\n 0x7010e, 0x8006c, 0x8002c, 0x900b9, 0x8000c, 0x8008c, 0x8004c, 0x900f9,\n 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c5,\n 0x70109, 0x80062, 0x80022, 0x900a5, 0x80002, 0x80082, 0x80042, 0x900e5,\n 0x70105, 0x8005a, 0x8001a, 0x90095, 0x70115, 0x8007a, 0x8003a, 0x900d5,\n 0x7010d, 0x8006a, 0x8002a, 0x900b5, 0x8000a, 0x8008a, 0x8004a, 0x900f5,\n 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cd,\n 0x7010b, 0x80066, 0x80026, 0x900ad, 0x80006, 0x80086, 0x80046, 0x900ed,\n 0x70107, 0x8005e, 0x8001e, 0x9009d, 0x70117, 0x8007e, 0x8003e, 0x900dd,\n 0x7010f, 0x8006e, 0x8002e, 0x900bd, 0x8000e, 0x8008e, 0x8004e, 0x900fd,\n 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c3,\n 0x70108, 0x80061, 0x80021, 0x900a3, 0x80001, 0x80081, 0x80041, 0x900e3,\n 0x70104, 0x80059, 0x80019, 0x90093, 0x70114, 0x80079, 0x80039, 0x900d3,\n 0x7010c, 0x80069, 0x80029, 0x900b3, 0x80009, 0x80089, 0x80049, 0x900f3,\n 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900cb,\n 0x7010a, 0x80065, 0x80025, 0x900ab, 0x80005, 0x80085, 0x80045, 0x900eb,\n 0x70106, 0x8005d, 0x8001d, 0x9009b, 0x70116, 0x8007d, 0x8003d, 0x900db,\n 0x7010e, 0x8006d, 0x8002d, 0x900bb, 0x8000d, 0x8008d, 0x8004d, 0x900fb,\n 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c7,\n 0x70109, 0x80063, 0x80023, 0x900a7, 0x80003, 0x80083, 0x80043, 0x900e7,\n 0x70105, 0x8005b, 0x8001b, 0x90097, 0x70115, 0x8007b, 0x8003b, 0x900d7,\n 0x7010d, 0x8006b, 0x8002b, 0x900b7, 0x8000b, 0x8008b, 0x8004b, 0x900f7,\n 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900cf,\n 0x7010b, 0x80067, 0x80027, 0x900af, 0x80007, 0x80087, 0x80047, 0x900ef,\n 0x70107, 0x8005f, 0x8001f, 0x9009f, 0x70117, 0x8007f, 0x8003f, 0x900df,\n 0x7010f, 0x8006f, 0x8002f, 0x900bf, 0x8000f, 0x8008f, 0x8004f, 0x900ff,\n ]),\n 9,\n];\n\nconst fixedDistCodeTab = [\n new Int32Array([\n 0x50000, 0x50010, 0x50008, 0x50018, 0x50004, 0x50014, 0x5000c, 0x5001c,\n 0x50002, 0x50012, 0x5000a, 0x5001a, 0x50006, 0x50016, 0x5000e, 0x00000,\n 0x50001, 0x50011, 0x50009, 0x50019, 0x50005, 0x50015, 0x5000d, 0x5001d,\n 0x50003, 0x50013, 0x5000b, 0x5001b, 0x50007, 0x50017, 0x5000f, 0x00000,\n ]),\n 5,\n];\n\nclass FlateStream extends DecodeStream {\n constructor(str, maybeLength) {\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n\n const cmf = str.getByte();\n const flg = str.getByte();\n if (cmf === -1 || flg === -1) {\n throw new FormatError(`Invalid header in flate stream: ${cmf}, ${flg}`);\n }\n if ((cmf & 0x0f) !== 0x08) {\n throw new FormatError(\n `Unknown compression method in flate stream: ${cmf}, ${flg}`\n );\n }\n if (((cmf << 8) + flg) % 31 !== 0) {\n throw new FormatError(`Bad FCHECK in flate stream: ${cmf}, ${flg}`);\n }\n if (flg & 0x20) {\n throw new FormatError(`FDICT bit set in flate stream: ${cmf}, ${flg}`);\n }\n\n this.codeSize = 0;\n this.codeBuf = 0;\n }\n\n getBits(bits) {\n const str = this.str;\n let codeSize = this.codeSize;\n let codeBuf = this.codeBuf;\n\n let b;\n while (codeSize < bits) {\n if ((b = str.getByte()) === -1) {\n throw new FormatError(\"Bad encoding in flate stream\");\n }\n codeBuf |= b << codeSize;\n codeSize += 8;\n }\n b = codeBuf & ((1 << bits) - 1);\n this.codeBuf = codeBuf >> bits;\n this.codeSize = codeSize -= bits;\n\n return b;\n }\n\n getCode(table) {\n const str = this.str;\n const codes = table[0];\n const maxLen = table[1];\n let codeSize = this.codeSize;\n let codeBuf = this.codeBuf;\n\n let b;\n while (codeSize < maxLen) {\n if ((b = str.getByte()) === -1) {\n // premature end of stream. code might however still be valid.\n // codeSize < codeLen check below guards against incomplete codeVal.\n break;\n }\n codeBuf |= b << codeSize;\n codeSize += 8;\n }\n const code = codes[codeBuf & ((1 << maxLen) - 1)];\n const codeLen = code >> 16;\n const codeVal = code & 0xffff;\n if (codeLen < 1 || codeSize < codeLen) {\n throw new FormatError(\"Bad encoding in flate stream\");\n }\n this.codeBuf = codeBuf >> codeLen;\n this.codeSize = codeSize - codeLen;\n return codeVal;\n }\n\n generateHuffmanTable(lengths) {\n const n = lengths.length;\n\n // find max code length\n let maxLen = 0;\n let i;\n for (i = 0; i < n; ++i) {\n if (lengths[i] > maxLen) {\n maxLen = lengths[i];\n }\n }\n\n // build the table\n const size = 1 << maxLen;\n const codes = new Int32Array(size);\n for (\n let len = 1, code = 0, skip = 2;\n len <= maxLen;\n ++len, code <<= 1, skip <<= 1\n ) {\n for (let val = 0; val < n; ++val) {\n if (lengths[val] === len) {\n // bit-reverse the code\n let code2 = 0;\n let t = code;\n for (i = 0; i < len; ++i) {\n code2 = (code2 << 1) | (t & 1);\n t >>= 1;\n }\n\n // fill the table entries\n for (i = code2; i < size; i += skip) {\n codes[i] = (len << 16) | val;\n }\n ++code;\n }\n }\n }\n\n return [codes, maxLen];\n }\n\n readBlock() {\n let buffer, len;\n const str = this.str;\n // read block header\n let hdr = this.getBits(3);\n if (hdr & 1) {\n this.eof = true;\n }\n hdr >>= 1;\n\n if (hdr === 0) {\n // uncompressed block\n let b;\n\n if ((b = str.getByte()) === -1) {\n throw new FormatError(\"Bad block header in flate stream\");\n }\n let blockLen = b;\n if ((b = str.getByte()) === -1) {\n throw new FormatError(\"Bad block header in flate stream\");\n }\n blockLen |= b << 8;\n if ((b = str.getByte()) === -1) {\n throw new FormatError(\"Bad block header in flate stream\");\n }\n let check = b;\n if ((b = str.getByte()) === -1) {\n throw new FormatError(\"Bad block header in flate stream\");\n }\n check |= b << 8;\n if (check !== (~blockLen & 0xffff) && (blockLen !== 0 || check !== 0)) {\n // Ignoring error for bad \"empty\" block (see issue 1277)\n throw new FormatError(\"Bad uncompressed block length in flate stream\");\n }\n\n this.codeBuf = 0;\n this.codeSize = 0;\n\n const bufferLength = this.bufferLength,\n end = bufferLength + blockLen;\n buffer = this.ensureBuffer(end);\n this.bufferLength = end;\n\n if (blockLen === 0) {\n if (str.peekByte() === -1) {\n this.eof = true;\n }\n } else {\n const block = str.getBytes(blockLen);\n buffer.set(block, bufferLength);\n if (block.length < blockLen) {\n this.eof = true;\n }\n }\n return;\n }\n\n let litCodeTable;\n let distCodeTable;\n if (hdr === 1) {\n // compressed block, fixed codes\n litCodeTable = fixedLitCodeTab;\n distCodeTable = fixedDistCodeTab;\n } else if (hdr === 2) {\n // compressed block, dynamic codes\n const numLitCodes = this.getBits(5) + 257;\n const numDistCodes = this.getBits(5) + 1;\n const numCodeLenCodes = this.getBits(4) + 4;\n\n // build the code lengths code table\n const codeLenCodeLengths = new Uint8Array(codeLenCodeMap.length);\n\n let i;\n for (i = 0; i < numCodeLenCodes; ++i) {\n codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3);\n }\n const codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths);\n\n // build the literal and distance code tables\n len = 0;\n i = 0;\n const codes = numLitCodes + numDistCodes;\n const codeLengths = new Uint8Array(codes);\n let bitsLength, bitsOffset, what;\n while (i < codes) {\n const code = this.getCode(codeLenCodeTab);\n if (code === 16) {\n bitsLength = 2;\n bitsOffset = 3;\n what = len;\n } else if (code === 17) {\n bitsLength = 3;\n bitsOffset = 3;\n what = len = 0;\n } else if (code === 18) {\n bitsLength = 7;\n bitsOffset = 11;\n what = len = 0;\n } else {\n codeLengths[i++] = len = code;\n continue;\n }\n\n let repeatLength = this.getBits(bitsLength) + bitsOffset;\n while (repeatLength-- > 0) {\n codeLengths[i++] = what;\n }\n }\n\n litCodeTable = this.generateHuffmanTable(\n codeLengths.subarray(0, numLitCodes)\n );\n distCodeTable = this.generateHuffmanTable(\n codeLengths.subarray(numLitCodes, codes)\n );\n } else {\n throw new FormatError(\"Unknown block type in flate stream\");\n }\n\n buffer = this.buffer;\n let limit = buffer ? buffer.length : 0;\n let pos = this.bufferLength;\n while (true) {\n let code1 = this.getCode(litCodeTable);\n if (code1 < 256) {\n if (pos + 1 >= limit) {\n buffer = this.ensureBuffer(pos + 1);\n limit = buffer.length;\n }\n buffer[pos++] = code1;\n continue;\n }\n if (code1 === 256) {\n this.bufferLength = pos;\n return;\n }\n code1 -= 257;\n code1 = lengthDecode[code1];\n let code2 = code1 >> 16;\n if (code2 > 0) {\n code2 = this.getBits(code2);\n }\n len = (code1 & 0xffff) + code2;\n code1 = this.getCode(distCodeTable);\n code1 = distDecode[code1];\n code2 = code1 >> 16;\n if (code2 > 0) {\n code2 = this.getBits(code2);\n }\n const dist = (code1 & 0xffff) + code2;\n if (pos + len >= limit) {\n buffer = this.ensureBuffer(pos + len);\n limit = buffer.length;\n }\n for (let k = 0; k < len; ++k, ++pos) {\n buffer[pos] = buffer[pos - dist];\n }\n }\n }\n}\n\nexport { FlateStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseStream } from \"./base_stream.js\";\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { Dict } from \"./primitives.js\";\nimport { Jbig2Image } from \"./jbig2.js\";\nimport { shadow } from \"../shared/util.js\";\n\n/**\n * For JBIG2's we use a library to decode these images and\n * the stream behaves like all the other DecodeStreams.\n */\nclass Jbig2Stream extends DecodeStream {\n constructor(stream, maybeLength, params) {\n super(maybeLength);\n\n this.stream = stream;\n this.dict = stream.dict;\n this.maybeLength = maybeLength;\n this.params = params;\n }\n\n get bytes() {\n // If `this.maybeLength` is null, we'll get the entire stream.\n return shadow(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n }\n\n ensureBuffer(requested) {\n // No-op, since `this.readBlock` will always parse the entire image and\n // directly insert all of its data into `this.buffer`.\n }\n\n readBlock() {\n if (this.eof) {\n return;\n }\n const jbig2Image = new Jbig2Image();\n\n const chunks = [];\n if (this.params instanceof Dict) {\n const globalsStream = this.params.get(\"JBIG2Globals\");\n if (globalsStream instanceof BaseStream) {\n const globals = globalsStream.getBytes();\n chunks.push({ data: globals, start: 0, end: globals.length });\n }\n }\n chunks.push({ data: this.bytes, start: 0, end: this.bytes.length });\n const data = jbig2Image.parseChunks(chunks);\n const dataLength = data.length;\n\n // JBIG2 had black as 1 and white as 0, inverting the colors\n for (let i = 0; i < dataLength; i++) {\n data[i] ^= 0xff;\n }\n this.buffer = data;\n this.bufferLength = dataLength;\n this.eof = true;\n }\n}\n\nexport { Jbig2Stream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseException, shadow } from \"../shared/util.js\";\nimport { log2, readInt8, readUint16, readUint32 } from \"./core_utils.js\";\nimport { ArithmeticDecoder } from \"./arithmetic_decoder.js\";\nimport { CCITTFaxDecoder } from \"./ccitt.js\";\n\nclass Jbig2Error extends BaseException {\n constructor(msg) {\n super(`JBIG2 error: ${msg}`, \"Jbig2Error\");\n }\n}\n\n// Utility data structures\nclass ContextCache {\n getContexts(id) {\n if (id in this) {\n return this[id];\n }\n return (this[id] = new Int8Array(1 << 16));\n }\n}\n\nclass DecodingContext {\n constructor(data, start, end) {\n this.data = data;\n this.start = start;\n this.end = end;\n }\n\n get decoder() {\n const decoder = new ArithmeticDecoder(this.data, this.start, this.end);\n return shadow(this, \"decoder\", decoder);\n }\n\n get contextCache() {\n const cache = new ContextCache();\n return shadow(this, \"contextCache\", cache);\n }\n}\n\n// Annex A. Arithmetic Integer Decoding Procedure\n// A.2 Procedure for decoding values\nfunction decodeInteger(contextCache, procedure, decoder) {\n const contexts = contextCache.getContexts(procedure);\n let prev = 1;\n\n function readBits(length) {\n let v = 0;\n for (let i = 0; i < length; i++) {\n const bit = decoder.readBit(contexts, prev);\n prev = prev < 256 ? (prev << 1) | bit : (((prev << 1) | bit) & 511) | 256;\n v = (v << 1) | bit;\n }\n return v >>> 0;\n }\n\n const sign = readBits(1);\n // prettier-ignore\n /* eslint-disable no-nested-ternary */\n const value = readBits(1) ?\n (readBits(1) ?\n (readBits(1) ?\n (readBits(1) ?\n (readBits(1) ?\n (readBits(32) + 4436) :\n readBits(12) + 340) :\n readBits(8) + 84) :\n readBits(6) + 20) :\n readBits(4) + 4) :\n readBits(2);\n /* eslint-enable no-nested-ternary */\n if (sign === 0) {\n return value;\n } else if (value > 0) {\n return -value;\n }\n return null;\n}\n\n// A.3 The IAID decoding procedure\nfunction decodeIAID(contextCache, decoder, codeLength) {\n const contexts = contextCache.getContexts(\"IAID\");\n\n let prev = 1;\n for (let i = 0; i < codeLength; i++) {\n const bit = decoder.readBit(contexts, prev);\n prev = (prev << 1) | bit;\n }\n if (codeLength < 31) {\n return prev & ((1 << codeLength) - 1);\n }\n return prev & 0x7fffffff;\n}\n\n// 7.3 Segment types\nconst SegmentTypes = [\n \"SymbolDictionary\",\n null,\n null,\n null,\n \"IntermediateTextRegion\",\n null,\n \"ImmediateTextRegion\",\n \"ImmediateLosslessTextRegion\",\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n \"PatternDictionary\",\n null,\n null,\n null,\n \"IntermediateHalftoneRegion\",\n null,\n \"ImmediateHalftoneRegion\",\n \"ImmediateLosslessHalftoneRegion\",\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n \"IntermediateGenericRegion\",\n null,\n \"ImmediateGenericRegion\",\n \"ImmediateLosslessGenericRegion\",\n \"IntermediateGenericRefinementRegion\",\n null,\n \"ImmediateGenericRefinementRegion\",\n \"ImmediateLosslessGenericRefinementRegion\",\n null,\n null,\n null,\n null,\n \"PageInformation\",\n \"EndOfPage\",\n \"EndOfStripe\",\n \"EndOfFile\",\n \"Profiles\",\n \"Tables\",\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n \"Extension\",\n];\n\nconst CodingTemplates = [\n [\n { x: -1, y: -2 },\n { x: 0, y: -2 },\n { x: 1, y: -2 },\n { x: -2, y: -1 },\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: 2, y: -1 },\n { x: -4, y: 0 },\n { x: -3, y: 0 },\n { x: -2, y: 0 },\n { x: -1, y: 0 },\n ],\n [\n { x: -1, y: -2 },\n { x: 0, y: -2 },\n { x: 1, y: -2 },\n { x: 2, y: -2 },\n { x: -2, y: -1 },\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: 2, y: -1 },\n { x: -3, y: 0 },\n { x: -2, y: 0 },\n { x: -1, y: 0 },\n ],\n [\n { x: -1, y: -2 },\n { x: 0, y: -2 },\n { x: 1, y: -2 },\n { x: -2, y: -1 },\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -2, y: 0 },\n { x: -1, y: 0 },\n ],\n [\n { x: -3, y: -1 },\n { x: -2, y: -1 },\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -4, y: 0 },\n { x: -3, y: 0 },\n { x: -2, y: 0 },\n { x: -1, y: 0 },\n ],\n];\n\nconst RefinementTemplates = [\n {\n coding: [\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -1, y: 0 },\n ],\n reference: [\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -1, y: 0 },\n { x: 0, y: 0 },\n { x: 1, y: 0 },\n { x: -1, y: 1 },\n { x: 0, y: 1 },\n { x: 1, y: 1 },\n ],\n },\n {\n coding: [\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -1, y: 0 },\n ],\n reference: [\n { x: 0, y: -1 },\n { x: -1, y: 0 },\n { x: 0, y: 0 },\n { x: 1, y: 0 },\n { x: 0, y: 1 },\n { x: 1, y: 1 },\n ],\n },\n];\n\n// See 6.2.5.7 Decoding the bitmap.\nconst ReusedContexts = [\n 0x9b25, // 10011 0110010 0101\n 0x0795, // 0011 110010 101\n 0x00e5, // 001 11001 01\n 0x0195, // 011001 0101\n];\n\nconst RefinementReusedContexts = [\n 0x0020, // '000' + '0' (coding) + '00010000' + '0' (reference)\n 0x0008, // '0000' + '001000'\n];\n\nfunction decodeBitmapTemplate0(width, height, decodingContext) {\n const decoder = decodingContext.decoder;\n const contexts = decodingContext.contextCache.getContexts(\"GB\");\n const bitmap = [];\n let contextLabel, i, j, pixel, row, row1, row2;\n\n // ...ooooo....\n // ..ooooooo... Context template for current pixel (X)\n // .ooooX...... (concatenate values of 'o'-pixels to get contextLabel)\n const OLD_PIXEL_MASK = 0x7bf7; // 01111 0111111 0111\n\n for (i = 0; i < height; i++) {\n row = bitmap[i] = new Uint8Array(width);\n row1 = i < 1 ? row : bitmap[i - 1];\n row2 = i < 2 ? row : bitmap[i - 2];\n\n // At the beginning of each row:\n // Fill contextLabel with pixels that are above/right of (X)\n contextLabel =\n (row2[0] << 13) |\n (row2[1] << 12) |\n (row2[2] << 11) |\n (row1[0] << 7) |\n (row1[1] << 6) |\n (row1[2] << 5) |\n (row1[3] << 4);\n\n for (j = 0; j < width; j++) {\n row[j] = pixel = decoder.readBit(contexts, contextLabel);\n\n // At each pixel: Clear contextLabel pixels that are shifted\n // out of the context, then add new ones.\n contextLabel =\n ((contextLabel & OLD_PIXEL_MASK) << 1) |\n (j + 3 < width ? row2[j + 3] << 11 : 0) |\n (j + 4 < width ? row1[j + 4] << 4 : 0) |\n pixel;\n }\n }\n\n return bitmap;\n}\n\n// 6.2 Generic Region Decoding Procedure\nfunction decodeBitmap(\n mmr,\n width,\n height,\n templateIndex,\n prediction,\n skip,\n at,\n decodingContext\n) {\n if (mmr) {\n const input = new Reader(\n decodingContext.data,\n decodingContext.start,\n decodingContext.end\n );\n return decodeMMRBitmap(input, width, height, false);\n }\n\n // Use optimized version for the most common case\n if (\n templateIndex === 0 &&\n !skip &&\n !prediction &&\n at.length === 4 &&\n at[0].x === 3 &&\n at[0].y === -1 &&\n at[1].x === -3 &&\n at[1].y === -1 &&\n at[2].x === 2 &&\n at[2].y === -2 &&\n at[3].x === -2 &&\n at[3].y === -2\n ) {\n return decodeBitmapTemplate0(width, height, decodingContext);\n }\n\n const useskip = !!skip;\n const template = CodingTemplates[templateIndex].concat(at);\n\n // Sorting is non-standard, and it is not required. But sorting increases\n // the number of template bits that can be reused from the previous\n // contextLabel in the main loop.\n template.sort(function (a, b) {\n return a.y - b.y || a.x - b.x;\n });\n\n const templateLength = template.length;\n const templateX = new Int8Array(templateLength);\n const templateY = new Int8Array(templateLength);\n const changingTemplateEntries = [];\n let reuseMask = 0,\n minX = 0,\n maxX = 0,\n minY = 0;\n let c, k;\n\n for (k = 0; k < templateLength; k++) {\n templateX[k] = template[k].x;\n templateY[k] = template[k].y;\n minX = Math.min(minX, template[k].x);\n maxX = Math.max(maxX, template[k].x);\n minY = Math.min(minY, template[k].y);\n // Check if the template pixel appears in two consecutive context labels,\n // so it can be reused. Otherwise, we add it to the list of changing\n // template entries.\n if (\n k < templateLength - 1 &&\n template[k].y === template[k + 1].y &&\n template[k].x === template[k + 1].x - 1\n ) {\n reuseMask |= 1 << (templateLength - 1 - k);\n } else {\n changingTemplateEntries.push(k);\n }\n }\n const changingEntriesLength = changingTemplateEntries.length;\n\n const changingTemplateX = new Int8Array(changingEntriesLength);\n const changingTemplateY = new Int8Array(changingEntriesLength);\n const changingTemplateBit = new Uint16Array(changingEntriesLength);\n for (c = 0; c < changingEntriesLength; c++) {\n k = changingTemplateEntries[c];\n changingTemplateX[c] = template[k].x;\n changingTemplateY[c] = template[k].y;\n changingTemplateBit[c] = 1 << (templateLength - 1 - k);\n }\n\n // Get the safe bounding box edges from the width, height, minX, maxX, minY\n const sbb_left = -minX;\n const sbb_top = -minY;\n const sbb_right = width - maxX;\n\n const pseudoPixelContext = ReusedContexts[templateIndex];\n let row = new Uint8Array(width);\n const bitmap = [];\n\n const decoder = decodingContext.decoder;\n const contexts = decodingContext.contextCache.getContexts(\"GB\");\n\n let ltp = 0,\n j,\n i0,\n j0,\n contextLabel = 0,\n bit,\n shift;\n for (let i = 0; i < height; i++) {\n if (prediction) {\n const sltp = decoder.readBit(contexts, pseudoPixelContext);\n ltp ^= sltp;\n if (ltp) {\n bitmap.push(row); // duplicate previous row\n continue;\n }\n }\n row = new Uint8Array(row);\n bitmap.push(row);\n for (j = 0; j < width; j++) {\n if (useskip && skip[i][j]) {\n row[j] = 0;\n continue;\n }\n // Are we in the middle of a scanline, so we can reuse contextLabel\n // bits?\n if (j >= sbb_left && j < sbb_right && i >= sbb_top) {\n // If yes, we can just shift the bits that are reusable and only\n // fetch the remaining ones.\n contextLabel = (contextLabel << 1) & reuseMask;\n for (k = 0; k < changingEntriesLength; k++) {\n i0 = i + changingTemplateY[k];\n j0 = j + changingTemplateX[k];\n bit = bitmap[i0][j0];\n if (bit) {\n bit = changingTemplateBit[k];\n contextLabel |= bit;\n }\n }\n } else {\n // compute the contextLabel from scratch\n contextLabel = 0;\n shift = templateLength - 1;\n for (k = 0; k < templateLength; k++, shift--) {\n j0 = j + templateX[k];\n if (j0 >= 0 && j0 < width) {\n i0 = i + templateY[k];\n if (i0 >= 0) {\n bit = bitmap[i0][j0];\n if (bit) {\n contextLabel |= bit << shift;\n }\n }\n }\n }\n }\n const pixel = decoder.readBit(contexts, contextLabel);\n row[j] = pixel;\n }\n }\n return bitmap;\n}\n\n// 6.3.2 Generic Refinement Region Decoding Procedure\nfunction decodeRefinement(\n width,\n height,\n templateIndex,\n referenceBitmap,\n offsetX,\n offsetY,\n prediction,\n at,\n decodingContext\n) {\n let codingTemplate = RefinementTemplates[templateIndex].coding;\n if (templateIndex === 0) {\n codingTemplate = codingTemplate.concat([at[0]]);\n }\n const codingTemplateLength = codingTemplate.length;\n const codingTemplateX = new Int32Array(codingTemplateLength);\n const codingTemplateY = new Int32Array(codingTemplateLength);\n let k;\n for (k = 0; k < codingTemplateLength; k++) {\n codingTemplateX[k] = codingTemplate[k].x;\n codingTemplateY[k] = codingTemplate[k].y;\n }\n\n let referenceTemplate = RefinementTemplates[templateIndex].reference;\n if (templateIndex === 0) {\n referenceTemplate = referenceTemplate.concat([at[1]]);\n }\n const referenceTemplateLength = referenceTemplate.length;\n const referenceTemplateX = new Int32Array(referenceTemplateLength);\n const referenceTemplateY = new Int32Array(referenceTemplateLength);\n for (k = 0; k < referenceTemplateLength; k++) {\n referenceTemplateX[k] = referenceTemplate[k].x;\n referenceTemplateY[k] = referenceTemplate[k].y;\n }\n const referenceWidth = referenceBitmap[0].length;\n const referenceHeight = referenceBitmap.length;\n\n const pseudoPixelContext = RefinementReusedContexts[templateIndex];\n const bitmap = [];\n\n const decoder = decodingContext.decoder;\n const contexts = decodingContext.contextCache.getContexts(\"GR\");\n\n let ltp = 0;\n for (let i = 0; i < height; i++) {\n if (prediction) {\n const sltp = decoder.readBit(contexts, pseudoPixelContext);\n ltp ^= sltp;\n if (ltp) {\n throw new Jbig2Error(\"prediction is not supported\");\n }\n }\n const row = new Uint8Array(width);\n bitmap.push(row);\n for (let j = 0; j < width; j++) {\n let i0, j0;\n let contextLabel = 0;\n for (k = 0; k < codingTemplateLength; k++) {\n i0 = i + codingTemplateY[k];\n j0 = j + codingTemplateX[k];\n if (i0 < 0 || j0 < 0 || j0 >= width) {\n contextLabel <<= 1; // out of bound pixel\n } else {\n contextLabel = (contextLabel << 1) | bitmap[i0][j0];\n }\n }\n for (k = 0; k < referenceTemplateLength; k++) {\n i0 = i + referenceTemplateY[k] - offsetY;\n j0 = j + referenceTemplateX[k] - offsetX;\n if (i0 < 0 || i0 >= referenceHeight || j0 < 0 || j0 >= referenceWidth) {\n contextLabel <<= 1; // out of bound pixel\n } else {\n contextLabel = (contextLabel << 1) | referenceBitmap[i0][j0];\n }\n }\n const pixel = decoder.readBit(contexts, contextLabel);\n row[j] = pixel;\n }\n }\n\n return bitmap;\n}\n\n// 6.5.5 Decoding the symbol dictionary\nfunction decodeSymbolDictionary(\n huffman,\n refinement,\n symbols,\n numberOfNewSymbols,\n numberOfExportedSymbols,\n huffmanTables,\n templateIndex,\n at,\n refinementTemplateIndex,\n refinementAt,\n decodingContext,\n huffmanInput\n) {\n if (huffman && refinement) {\n throw new Jbig2Error(\"symbol refinement with Huffman is not supported\");\n }\n\n const newSymbols = [];\n let currentHeight = 0;\n let symbolCodeLength = log2(symbols.length + numberOfNewSymbols);\n\n const decoder = decodingContext.decoder;\n const contextCache = decodingContext.contextCache;\n let tableB1, symbolWidths;\n if (huffman) {\n tableB1 = getStandardTable(1); // standard table B.1\n symbolWidths = [];\n symbolCodeLength = Math.max(symbolCodeLength, 1); // 6.5.8.2.3\n }\n\n while (newSymbols.length < numberOfNewSymbols) {\n const deltaHeight = huffman\n ? huffmanTables.tableDeltaHeight.decode(huffmanInput)\n : decodeInteger(contextCache, \"IADH\", decoder); // 6.5.6\n currentHeight += deltaHeight;\n let currentWidth = 0,\n totalWidth = 0;\n const firstSymbol = huffman ? symbolWidths.length : 0;\n while (true) {\n const deltaWidth = huffman\n ? huffmanTables.tableDeltaWidth.decode(huffmanInput)\n : decodeInteger(contextCache, \"IADW\", decoder); // 6.5.7\n if (deltaWidth === null) {\n break; // OOB\n }\n currentWidth += deltaWidth;\n totalWidth += currentWidth;\n let bitmap;\n if (refinement) {\n // 6.5.8.2 Refinement/aggregate-coded symbol bitmap\n const numberOfInstances = decodeInteger(contextCache, \"IAAI\", decoder);\n if (numberOfInstances > 1) {\n bitmap = decodeTextRegion(\n huffman,\n refinement,\n currentWidth,\n currentHeight,\n 0,\n numberOfInstances,\n 1, // strip size\n symbols.concat(newSymbols),\n symbolCodeLength,\n 0, // transposed\n 0, // ds offset\n 1, // top left 7.4.3.1.1\n 0, // OR operator\n huffmanTables,\n refinementTemplateIndex,\n refinementAt,\n decodingContext,\n 0,\n huffmanInput\n );\n } else {\n const symbolId = decodeIAID(contextCache, decoder, symbolCodeLength);\n const rdx = decodeInteger(contextCache, \"IARDX\", decoder); // 6.4.11.3\n const rdy = decodeInteger(contextCache, \"IARDY\", decoder); // 6.4.11.4\n const symbol =\n symbolId < symbols.length\n ? symbols[symbolId]\n : newSymbols[symbolId - symbols.length];\n bitmap = decodeRefinement(\n currentWidth,\n currentHeight,\n refinementTemplateIndex,\n symbol,\n rdx,\n rdy,\n false,\n refinementAt,\n decodingContext\n );\n }\n newSymbols.push(bitmap);\n } else if (huffman) {\n // Store only symbol width and decode a collective bitmap when the\n // height class is done.\n symbolWidths.push(currentWidth);\n } else {\n // 6.5.8.1 Direct-coded symbol bitmap\n bitmap = decodeBitmap(\n false,\n currentWidth,\n currentHeight,\n templateIndex,\n false,\n null,\n at,\n decodingContext\n );\n newSymbols.push(bitmap);\n }\n }\n if (huffman && !refinement) {\n // 6.5.9 Height class collective bitmap\n const bitmapSize = huffmanTables.tableBitmapSize.decode(huffmanInput);\n huffmanInput.byteAlign();\n let collectiveBitmap;\n if (bitmapSize === 0) {\n // Uncompressed collective bitmap\n collectiveBitmap = readUncompressedBitmap(\n huffmanInput,\n totalWidth,\n currentHeight\n );\n } else {\n // MMR collective bitmap\n const originalEnd = huffmanInput.end;\n const bitmapEnd = huffmanInput.position + bitmapSize;\n huffmanInput.end = bitmapEnd;\n collectiveBitmap = decodeMMRBitmap(\n huffmanInput,\n totalWidth,\n currentHeight,\n false\n );\n huffmanInput.end = originalEnd;\n huffmanInput.position = bitmapEnd;\n }\n const numberOfSymbolsDecoded = symbolWidths.length;\n if (firstSymbol === numberOfSymbolsDecoded - 1) {\n // collectiveBitmap is a single symbol.\n newSymbols.push(collectiveBitmap);\n } else {\n // Divide collectiveBitmap into symbols.\n let i,\n y,\n xMin = 0,\n xMax,\n bitmapWidth,\n symbolBitmap;\n for (i = firstSymbol; i < numberOfSymbolsDecoded; i++) {\n bitmapWidth = symbolWidths[i];\n xMax = xMin + bitmapWidth;\n symbolBitmap = [];\n for (y = 0; y < currentHeight; y++) {\n symbolBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n }\n newSymbols.push(symbolBitmap);\n xMin = xMax;\n }\n }\n }\n }\n\n // 6.5.10 Exported symbols\n const exportedSymbols = [],\n flags = [];\n let currentFlag = false,\n i,\n ii;\n const totalSymbolsLength = symbols.length + numberOfNewSymbols;\n while (flags.length < totalSymbolsLength) {\n let runLength = huffman\n ? tableB1.decode(huffmanInput)\n : decodeInteger(contextCache, \"IAEX\", decoder);\n while (runLength--) {\n flags.push(currentFlag);\n }\n currentFlag = !currentFlag;\n }\n for (i = 0, ii = symbols.length; i < ii; i++) {\n if (flags[i]) {\n exportedSymbols.push(symbols[i]);\n }\n }\n for (let j = 0; j < numberOfNewSymbols; i++, j++) {\n if (flags[i]) {\n exportedSymbols.push(newSymbols[j]);\n }\n }\n return exportedSymbols;\n}\n\nfunction decodeTextRegion(\n huffman,\n refinement,\n width,\n height,\n defaultPixelValue,\n numberOfSymbolInstances,\n stripSize,\n inputSymbols,\n symbolCodeLength,\n transposed,\n dsOffset,\n referenceCorner,\n combinationOperator,\n huffmanTables,\n refinementTemplateIndex,\n refinementAt,\n decodingContext,\n logStripSize,\n huffmanInput\n) {\n if (huffman && refinement) {\n throw new Jbig2Error(\"refinement with Huffman is not supported\");\n }\n\n // Prepare bitmap\n const bitmap = [];\n let i, row;\n for (i = 0; i < height; i++) {\n row = new Uint8Array(width);\n if (defaultPixelValue) {\n for (let j = 0; j < width; j++) {\n row[j] = defaultPixelValue;\n }\n }\n bitmap.push(row);\n }\n\n const decoder = decodingContext.decoder;\n const contextCache = decodingContext.contextCache;\n\n let stripT = huffman\n ? -huffmanTables.tableDeltaT.decode(huffmanInput)\n : -decodeInteger(contextCache, \"IADT\", decoder); // 6.4.6\n let firstS = 0;\n i = 0;\n while (i < numberOfSymbolInstances) {\n const deltaT = huffman\n ? huffmanTables.tableDeltaT.decode(huffmanInput)\n : decodeInteger(contextCache, \"IADT\", decoder); // 6.4.6\n stripT += deltaT;\n\n const deltaFirstS = huffman\n ? huffmanTables.tableFirstS.decode(huffmanInput)\n : decodeInteger(contextCache, \"IAFS\", decoder); // 6.4.7\n firstS += deltaFirstS;\n let currentS = firstS;\n do {\n let currentT = 0; // 6.4.9\n if (stripSize > 1) {\n currentT = huffman\n ? huffmanInput.readBits(logStripSize)\n : decodeInteger(contextCache, \"IAIT\", decoder);\n }\n const t = stripSize * stripT + currentT;\n const symbolId = huffman\n ? huffmanTables.symbolIDTable.decode(huffmanInput)\n : decodeIAID(contextCache, decoder, symbolCodeLength);\n const applyRefinement =\n refinement &&\n (huffman\n ? huffmanInput.readBit()\n : decodeInteger(contextCache, \"IARI\", decoder));\n let symbolBitmap = inputSymbols[symbolId];\n let symbolWidth = symbolBitmap[0].length;\n let symbolHeight = symbolBitmap.length;\n if (applyRefinement) {\n const rdw = decodeInteger(contextCache, \"IARDW\", decoder); // 6.4.11.1\n const rdh = decodeInteger(contextCache, \"IARDH\", decoder); // 6.4.11.2\n const rdx = decodeInteger(contextCache, \"IARDX\", decoder); // 6.4.11.3\n const rdy = decodeInteger(contextCache, \"IARDY\", decoder); // 6.4.11.4\n symbolWidth += rdw;\n symbolHeight += rdh;\n symbolBitmap = decodeRefinement(\n symbolWidth,\n symbolHeight,\n refinementTemplateIndex,\n symbolBitmap,\n (rdw >> 1) + rdx,\n (rdh >> 1) + rdy,\n false,\n refinementAt,\n decodingContext\n );\n }\n const offsetT = t - (referenceCorner & 1 ? 0 : symbolHeight - 1);\n const offsetS = currentS - (referenceCorner & 2 ? symbolWidth - 1 : 0);\n let s2, t2, symbolRow;\n if (transposed) {\n // Place Symbol Bitmap from T1,S1\n for (s2 = 0; s2 < symbolHeight; s2++) {\n row = bitmap[offsetS + s2];\n if (!row) {\n continue;\n }\n symbolRow = symbolBitmap[s2];\n // To ignore Parts of Symbol bitmap which goes\n // outside bitmap region\n const maxWidth = Math.min(width - offsetT, symbolWidth);\n switch (combinationOperator) {\n case 0: // OR\n for (t2 = 0; t2 < maxWidth; t2++) {\n row[offsetT + t2] |= symbolRow[t2];\n }\n break;\n case 2: // XOR\n for (t2 = 0; t2 < maxWidth; t2++) {\n row[offsetT + t2] ^= symbolRow[t2];\n }\n break;\n default:\n throw new Jbig2Error(\n `operator ${combinationOperator} is not supported`\n );\n }\n }\n currentS += symbolHeight - 1;\n } else {\n for (t2 = 0; t2 < symbolHeight; t2++) {\n row = bitmap[offsetT + t2];\n if (!row) {\n continue;\n }\n symbolRow = symbolBitmap[t2];\n switch (combinationOperator) {\n case 0: // OR\n for (s2 = 0; s2 < symbolWidth; s2++) {\n row[offsetS + s2] |= symbolRow[s2];\n }\n break;\n case 2: // XOR\n for (s2 = 0; s2 < symbolWidth; s2++) {\n row[offsetS + s2] ^= symbolRow[s2];\n }\n break;\n default:\n throw new Jbig2Error(\n `operator ${combinationOperator} is not supported`\n );\n }\n }\n currentS += symbolWidth - 1;\n }\n i++;\n const deltaS = huffman\n ? huffmanTables.tableDeltaS.decode(huffmanInput)\n : decodeInteger(contextCache, \"IADS\", decoder); // 6.4.8\n if (deltaS === null) {\n break; // OOB\n }\n currentS += deltaS + dsOffset;\n } while (true);\n }\n return bitmap;\n}\n\nfunction decodePatternDictionary(\n mmr,\n patternWidth,\n patternHeight,\n maxPatternIndex,\n template,\n decodingContext\n) {\n const at = [];\n if (!mmr) {\n at.push({\n x: -patternWidth,\n y: 0,\n });\n if (template === 0) {\n at.push(\n {\n x: -3,\n y: -1,\n },\n {\n x: 2,\n y: -2,\n },\n {\n x: -2,\n y: -2,\n }\n );\n }\n }\n const collectiveWidth = (maxPatternIndex + 1) * patternWidth;\n const collectiveBitmap = decodeBitmap(\n mmr,\n collectiveWidth,\n patternHeight,\n template,\n false,\n null,\n at,\n decodingContext\n );\n // Divide collective bitmap into patterns.\n const patterns = [];\n for (let i = 0; i <= maxPatternIndex; i++) {\n const patternBitmap = [];\n const xMin = patternWidth * i;\n const xMax = xMin + patternWidth;\n for (let y = 0; y < patternHeight; y++) {\n patternBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n }\n patterns.push(patternBitmap);\n }\n return patterns;\n}\n\nfunction decodeHalftoneRegion(\n mmr,\n patterns,\n template,\n regionWidth,\n regionHeight,\n defaultPixelValue,\n enableSkip,\n combinationOperator,\n gridWidth,\n gridHeight,\n gridOffsetX,\n gridOffsetY,\n gridVectorX,\n gridVectorY,\n decodingContext\n) {\n const skip = null;\n if (enableSkip) {\n throw new Jbig2Error(\"skip is not supported\");\n }\n if (combinationOperator !== 0) {\n throw new Jbig2Error(\n `operator \"${combinationOperator}\" is not supported in halftone region`\n );\n }\n\n // Prepare bitmap.\n const regionBitmap = [];\n let i, j, row;\n for (i = 0; i < regionHeight; i++) {\n row = new Uint8Array(regionWidth);\n if (defaultPixelValue) {\n for (j = 0; j < regionWidth; j++) {\n row[j] = defaultPixelValue;\n }\n }\n regionBitmap.push(row);\n }\n\n const numberOfPatterns = patterns.length;\n const pattern0 = patterns[0];\n const patternWidth = pattern0[0].length,\n patternHeight = pattern0.length;\n const bitsPerValue = log2(numberOfPatterns);\n const at = [];\n if (!mmr) {\n at.push({\n x: template <= 1 ? 3 : 2,\n y: -1,\n });\n if (template === 0) {\n at.push(\n {\n x: -3,\n y: -1,\n },\n {\n x: 2,\n y: -2,\n },\n {\n x: -2,\n y: -2,\n }\n );\n }\n }\n // Annex C. Gray-scale Image Decoding Procedure.\n const grayScaleBitPlanes = [];\n let mmrInput, bitmap;\n if (mmr) {\n // MMR bit planes are in one continuous stream. Only EOFB codes indicate\n // the end of each bitmap, so EOFBs must be decoded.\n mmrInput = new Reader(\n decodingContext.data,\n decodingContext.start,\n decodingContext.end\n );\n }\n for (i = bitsPerValue - 1; i >= 0; i--) {\n if (mmr) {\n bitmap = decodeMMRBitmap(mmrInput, gridWidth, gridHeight, true);\n } else {\n bitmap = decodeBitmap(\n false,\n gridWidth,\n gridHeight,\n template,\n false,\n skip,\n at,\n decodingContext\n );\n }\n grayScaleBitPlanes[i] = bitmap;\n }\n // 6.6.5.2 Rendering the patterns.\n let mg, ng, bit, patternIndex, patternBitmap, x, y, patternRow, regionRow;\n for (mg = 0; mg < gridHeight; mg++) {\n for (ng = 0; ng < gridWidth; ng++) {\n bit = 0;\n patternIndex = 0;\n for (j = bitsPerValue - 1; j >= 0; j--) {\n bit ^= grayScaleBitPlanes[j][mg][ng]; // Gray decoding\n patternIndex |= bit << j;\n }\n patternBitmap = patterns[patternIndex];\n x = (gridOffsetX + mg * gridVectorY + ng * gridVectorX) >> 8;\n y = (gridOffsetY + mg * gridVectorX - ng * gridVectorY) >> 8;\n // Draw patternBitmap at (x, y).\n if (\n x >= 0 &&\n x + patternWidth <= regionWidth &&\n y >= 0 &&\n y + patternHeight <= regionHeight\n ) {\n for (i = 0; i < patternHeight; i++) {\n regionRow = regionBitmap[y + i];\n patternRow = patternBitmap[i];\n for (j = 0; j < patternWidth; j++) {\n regionRow[x + j] |= patternRow[j];\n }\n }\n } else {\n let regionX, regionY;\n for (i = 0; i < patternHeight; i++) {\n regionY = y + i;\n if (regionY < 0 || regionY >= regionHeight) {\n continue;\n }\n regionRow = regionBitmap[regionY];\n patternRow = patternBitmap[i];\n for (j = 0; j < patternWidth; j++) {\n regionX = x + j;\n if (regionX >= 0 && regionX < regionWidth) {\n regionRow[regionX] |= patternRow[j];\n }\n }\n }\n }\n }\n }\n return regionBitmap;\n}\n\nfunction readSegmentHeader(data, start) {\n const segmentHeader = {};\n segmentHeader.number = readUint32(data, start);\n const flags = data[start + 4];\n const segmentType = flags & 0x3f;\n if (!SegmentTypes[segmentType]) {\n throw new Jbig2Error(\"invalid segment type: \" + segmentType);\n }\n segmentHeader.type = segmentType;\n segmentHeader.typeName = SegmentTypes[segmentType];\n segmentHeader.deferredNonRetain = !!(flags & 0x80);\n\n const pageAssociationFieldSize = !!(flags & 0x40);\n const referredFlags = data[start + 5];\n let referredToCount = (referredFlags >> 5) & 7;\n const retainBits = [referredFlags & 31];\n let position = start + 6;\n if (referredFlags === 7) {\n referredToCount = readUint32(data, position - 1) & 0x1fffffff;\n position += 3;\n let bytes = (referredToCount + 7) >> 3;\n retainBits[0] = data[position++];\n while (--bytes > 0) {\n retainBits.push(data[position++]);\n }\n } else if (referredFlags === 5 || referredFlags === 6) {\n throw new Jbig2Error(\"invalid referred-to flags\");\n }\n\n segmentHeader.retainBits = retainBits;\n\n let referredToSegmentNumberSize = 4;\n if (segmentHeader.number <= 256) {\n referredToSegmentNumberSize = 1;\n } else if (segmentHeader.number <= 65536) {\n referredToSegmentNumberSize = 2;\n }\n const referredTo = [];\n let i, ii;\n for (i = 0; i < referredToCount; i++) {\n let number;\n if (referredToSegmentNumberSize === 1) {\n number = data[position];\n } else if (referredToSegmentNumberSize === 2) {\n number = readUint16(data, position);\n } else {\n number = readUint32(data, position);\n }\n referredTo.push(number);\n position += referredToSegmentNumberSize;\n }\n segmentHeader.referredTo = referredTo;\n if (!pageAssociationFieldSize) {\n segmentHeader.pageAssociation = data[position++];\n } else {\n segmentHeader.pageAssociation = readUint32(data, position);\n position += 4;\n }\n segmentHeader.length = readUint32(data, position);\n position += 4;\n\n if (segmentHeader.length === 0xffffffff) {\n // 7.2.7 Segment data length, unknown segment length\n if (segmentType === 38) {\n // ImmediateGenericRegion\n const genericRegionInfo = readRegionSegmentInformation(data, position);\n const genericRegionSegmentFlags =\n data[position + RegionSegmentInformationFieldLength];\n const genericRegionMmr = !!(genericRegionSegmentFlags & 1);\n // searching for the segment end\n const searchPatternLength = 6;\n const searchPattern = new Uint8Array(searchPatternLength);\n if (!genericRegionMmr) {\n searchPattern[0] = 0xff;\n searchPattern[1] = 0xac;\n }\n searchPattern[2] = (genericRegionInfo.height >>> 24) & 0xff;\n searchPattern[3] = (genericRegionInfo.height >> 16) & 0xff;\n searchPattern[4] = (genericRegionInfo.height >> 8) & 0xff;\n searchPattern[5] = genericRegionInfo.height & 0xff;\n for (i = position, ii = data.length; i < ii; i++) {\n let j = 0;\n while (j < searchPatternLength && searchPattern[j] === data[i + j]) {\n j++;\n }\n if (j === searchPatternLength) {\n segmentHeader.length = i + searchPatternLength;\n break;\n }\n }\n if (segmentHeader.length === 0xffffffff) {\n throw new Jbig2Error(\"segment end was not found\");\n }\n } else {\n throw new Jbig2Error(\"invalid unknown segment length\");\n }\n }\n segmentHeader.headerEnd = position;\n return segmentHeader;\n}\n\nfunction readSegments(header, data, start, end) {\n const segments = [];\n let position = start;\n while (position < end) {\n const segmentHeader = readSegmentHeader(data, position);\n position = segmentHeader.headerEnd;\n const segment = {\n header: segmentHeader,\n data,\n };\n if (!header.randomAccess) {\n segment.start = position;\n position += segmentHeader.length;\n segment.end = position;\n }\n segments.push(segment);\n if (segmentHeader.type === 51) {\n break; // end of file is found\n }\n }\n if (header.randomAccess) {\n for (let i = 0, ii = segments.length; i < ii; i++) {\n segments[i].start = position;\n position += segments[i].header.length;\n segments[i].end = position;\n }\n }\n return segments;\n}\n\n// 7.4.1 Region segment information field\nfunction readRegionSegmentInformation(data, start) {\n return {\n width: readUint32(data, start),\n height: readUint32(data, start + 4),\n x: readUint32(data, start + 8),\n y: readUint32(data, start + 12),\n combinationOperator: data[start + 16] & 7,\n };\n}\nconst RegionSegmentInformationFieldLength = 17;\n\nfunction processSegment(segment, visitor) {\n const header = segment.header;\n\n const data = segment.data,\n end = segment.end;\n let position = segment.start;\n let args, at, i, atLength;\n switch (header.type) {\n case 0: // SymbolDictionary\n // 7.4.2 Symbol dictionary segment syntax\n const dictionary = {};\n const dictionaryFlags = readUint16(data, position); // 7.4.2.1.1\n dictionary.huffman = !!(dictionaryFlags & 1);\n dictionary.refinement = !!(dictionaryFlags & 2);\n dictionary.huffmanDHSelector = (dictionaryFlags >> 2) & 3;\n dictionary.huffmanDWSelector = (dictionaryFlags >> 4) & 3;\n dictionary.bitmapSizeSelector = (dictionaryFlags >> 6) & 1;\n dictionary.aggregationInstancesSelector = (dictionaryFlags >> 7) & 1;\n dictionary.bitmapCodingContextUsed = !!(dictionaryFlags & 256);\n dictionary.bitmapCodingContextRetained = !!(dictionaryFlags & 512);\n dictionary.template = (dictionaryFlags >> 10) & 3;\n dictionary.refinementTemplate = (dictionaryFlags >> 12) & 1;\n position += 2;\n if (!dictionary.huffman) {\n atLength = dictionary.template === 0 ? 4 : 1;\n at = [];\n for (i = 0; i < atLength; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n dictionary.at = at;\n }\n if (dictionary.refinement && !dictionary.refinementTemplate) {\n at = [];\n for (i = 0; i < 2; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n dictionary.refinementAt = at;\n }\n dictionary.numberOfExportedSymbols = readUint32(data, position);\n position += 4;\n dictionary.numberOfNewSymbols = readUint32(data, position);\n position += 4;\n args = [\n dictionary,\n header.number,\n header.referredTo,\n data,\n position,\n end,\n ];\n break;\n case 6: // ImmediateTextRegion\n case 7: // ImmediateLosslessTextRegion\n const textRegion = {};\n textRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n const textRegionSegmentFlags = readUint16(data, position);\n position += 2;\n textRegion.huffman = !!(textRegionSegmentFlags & 1);\n textRegion.refinement = !!(textRegionSegmentFlags & 2);\n textRegion.logStripSize = (textRegionSegmentFlags >> 2) & 3;\n textRegion.stripSize = 1 << textRegion.logStripSize;\n textRegion.referenceCorner = (textRegionSegmentFlags >> 4) & 3;\n textRegion.transposed = !!(textRegionSegmentFlags & 64);\n textRegion.combinationOperator = (textRegionSegmentFlags >> 7) & 3;\n textRegion.defaultPixelValue = (textRegionSegmentFlags >> 9) & 1;\n textRegion.dsOffset = (textRegionSegmentFlags << 17) >> 27;\n textRegion.refinementTemplate = (textRegionSegmentFlags >> 15) & 1;\n if (textRegion.huffman) {\n const textRegionHuffmanFlags = readUint16(data, position);\n position += 2;\n textRegion.huffmanFS = textRegionHuffmanFlags & 3;\n textRegion.huffmanDS = (textRegionHuffmanFlags >> 2) & 3;\n textRegion.huffmanDT = (textRegionHuffmanFlags >> 4) & 3;\n textRegion.huffmanRefinementDW = (textRegionHuffmanFlags >> 6) & 3;\n textRegion.huffmanRefinementDH = (textRegionHuffmanFlags >> 8) & 3;\n textRegion.huffmanRefinementDX = (textRegionHuffmanFlags >> 10) & 3;\n textRegion.huffmanRefinementDY = (textRegionHuffmanFlags >> 12) & 3;\n textRegion.huffmanRefinementSizeSelector = !!(\n textRegionHuffmanFlags & 0x4000\n );\n }\n if (textRegion.refinement && !textRegion.refinementTemplate) {\n at = [];\n for (i = 0; i < 2; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n textRegion.refinementAt = at;\n }\n textRegion.numberOfSymbolInstances = readUint32(data, position);\n position += 4;\n args = [textRegion, header.referredTo, data, position, end];\n break;\n case 16: // PatternDictionary\n // 7.4.4. Pattern dictionary segment syntax\n const patternDictionary = {};\n const patternDictionaryFlags = data[position++];\n patternDictionary.mmr = !!(patternDictionaryFlags & 1);\n patternDictionary.template = (patternDictionaryFlags >> 1) & 3;\n patternDictionary.patternWidth = data[position++];\n patternDictionary.patternHeight = data[position++];\n patternDictionary.maxPatternIndex = readUint32(data, position);\n position += 4;\n args = [patternDictionary, header.number, data, position, end];\n break;\n case 22: // ImmediateHalftoneRegion\n case 23: // ImmediateLosslessHalftoneRegion\n // 7.4.5 Halftone region segment syntax\n const halftoneRegion = {};\n halftoneRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n const halftoneRegionFlags = data[position++];\n halftoneRegion.mmr = !!(halftoneRegionFlags & 1);\n halftoneRegion.template = (halftoneRegionFlags >> 1) & 3;\n halftoneRegion.enableSkip = !!(halftoneRegionFlags & 8);\n halftoneRegion.combinationOperator = (halftoneRegionFlags >> 4) & 7;\n halftoneRegion.defaultPixelValue = (halftoneRegionFlags >> 7) & 1;\n halftoneRegion.gridWidth = readUint32(data, position);\n position += 4;\n halftoneRegion.gridHeight = readUint32(data, position);\n position += 4;\n halftoneRegion.gridOffsetX = readUint32(data, position) & 0xffffffff;\n position += 4;\n halftoneRegion.gridOffsetY = readUint32(data, position) & 0xffffffff;\n position += 4;\n halftoneRegion.gridVectorX = readUint16(data, position);\n position += 2;\n halftoneRegion.gridVectorY = readUint16(data, position);\n position += 2;\n args = [halftoneRegion, header.referredTo, data, position, end];\n break;\n case 38: // ImmediateGenericRegion\n case 39: // ImmediateLosslessGenericRegion\n const genericRegion = {};\n genericRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n const genericRegionSegmentFlags = data[position++];\n genericRegion.mmr = !!(genericRegionSegmentFlags & 1);\n genericRegion.template = (genericRegionSegmentFlags >> 1) & 3;\n genericRegion.prediction = !!(genericRegionSegmentFlags & 8);\n if (!genericRegion.mmr) {\n atLength = genericRegion.template === 0 ? 4 : 1;\n at = [];\n for (i = 0; i < atLength; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n genericRegion.at = at;\n }\n args = [genericRegion, data, position, end];\n break;\n case 48: // PageInformation\n const pageInfo = {\n width: readUint32(data, position),\n height: readUint32(data, position + 4),\n resolutionX: readUint32(data, position + 8),\n resolutionY: readUint32(data, position + 12),\n };\n if (pageInfo.height === 0xffffffff) {\n delete pageInfo.height;\n }\n const pageSegmentFlags = data[position + 16];\n readUint16(data, position + 17); // pageStripingInformation\n pageInfo.lossless = !!(pageSegmentFlags & 1);\n pageInfo.refinement = !!(pageSegmentFlags & 2);\n pageInfo.defaultPixelValue = (pageSegmentFlags >> 2) & 1;\n pageInfo.combinationOperator = (pageSegmentFlags >> 3) & 3;\n pageInfo.requiresBuffer = !!(pageSegmentFlags & 32);\n pageInfo.combinationOperatorOverride = !!(pageSegmentFlags & 64);\n args = [pageInfo];\n break;\n case 49: // EndOfPage\n break;\n case 50: // EndOfStripe\n break;\n case 51: // EndOfFile\n break;\n case 53: // Tables\n args = [header.number, data, position, end];\n break;\n case 62: // 7.4.15 defines 2 extension types which\n // are comments and can be ignored.\n break;\n default:\n throw new Jbig2Error(\n `segment type ${header.typeName}(${header.type})` +\n \" is not implemented\"\n );\n }\n const callbackName = \"on\" + header.typeName;\n if (callbackName in visitor) {\n visitor[callbackName].apply(visitor, args);\n }\n}\n\nfunction processSegments(segments, visitor) {\n for (let i = 0, ii = segments.length; i < ii; i++) {\n processSegment(segments[i], visitor);\n }\n}\n\nfunction parseJbig2Chunks(chunks) {\n const visitor = new SimpleSegmentVisitor();\n for (let i = 0, ii = chunks.length; i < ii; i++) {\n const chunk = chunks[i];\n const segments = readSegments({}, chunk.data, chunk.start, chunk.end);\n processSegments(segments, visitor);\n }\n return visitor.buffer;\n}\n\nfunction parseJbig2(data) {\n const end = data.length;\n let position = 0;\n\n if (\n data[position] !== 0x97 ||\n data[position + 1] !== 0x4a ||\n data[position + 2] !== 0x42 ||\n data[position + 3] !== 0x32 ||\n data[position + 4] !== 0x0d ||\n data[position + 5] !== 0x0a ||\n data[position + 6] !== 0x1a ||\n data[position + 7] !== 0x0a\n ) {\n throw new Jbig2Error(\"parseJbig2 - invalid header.\");\n }\n\n const header = Object.create(null);\n position += 8;\n const flags = data[position++];\n header.randomAccess = !(flags & 1);\n if (!(flags & 2)) {\n header.numberOfPages = readUint32(data, position);\n position += 4;\n }\n\n const segments = readSegments(header, data, position, end);\n const visitor = new SimpleSegmentVisitor();\n processSegments(segments, visitor);\n\n const { width, height } = visitor.currentPageInfo;\n const bitPacked = visitor.buffer;\n const imgData = new Uint8ClampedArray(width * height);\n let q = 0,\n k = 0;\n for (let i = 0; i < height; i++) {\n let mask = 0,\n buffer;\n for (let j = 0; j < width; j++) {\n if (!mask) {\n mask = 128;\n buffer = bitPacked[k++];\n }\n imgData[q++] = buffer & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n\n return { imgData, width, height };\n}\n\nclass SimpleSegmentVisitor {\n onPageInformation(info) {\n this.currentPageInfo = info;\n const rowSize = (info.width + 7) >> 3;\n const buffer = new Uint8ClampedArray(rowSize * info.height);\n // The contents of ArrayBuffers are initialized to 0.\n // Fill the buffer with 0xFF only if info.defaultPixelValue is set\n if (info.defaultPixelValue) {\n buffer.fill(0xff);\n }\n this.buffer = buffer;\n }\n\n drawBitmap(regionInfo, bitmap) {\n const pageInfo = this.currentPageInfo;\n const width = regionInfo.width,\n height = regionInfo.height;\n const rowSize = (pageInfo.width + 7) >> 3;\n const combinationOperator = pageInfo.combinationOperatorOverride\n ? regionInfo.combinationOperator\n : pageInfo.combinationOperator;\n const buffer = this.buffer;\n const mask0 = 128 >> (regionInfo.x & 7);\n let offset0 = regionInfo.y * rowSize + (regionInfo.x >> 3);\n let i, j, mask, offset;\n switch (combinationOperator) {\n case 0: // OR\n for (i = 0; i < height; i++) {\n mask = mask0;\n offset = offset0;\n for (j = 0; j < width; j++) {\n if (bitmap[i][j]) {\n buffer[offset] |= mask;\n }\n mask >>= 1;\n if (!mask) {\n mask = 128;\n offset++;\n }\n }\n offset0 += rowSize;\n }\n break;\n case 2: // XOR\n for (i = 0; i < height; i++) {\n mask = mask0;\n offset = offset0;\n for (j = 0; j < width; j++) {\n if (bitmap[i][j]) {\n buffer[offset] ^= mask;\n }\n mask >>= 1;\n if (!mask) {\n mask = 128;\n offset++;\n }\n }\n offset0 += rowSize;\n }\n break;\n default:\n throw new Jbig2Error(\n `operator ${combinationOperator} is not supported`\n );\n }\n }\n\n onImmediateGenericRegion(region, data, start, end) {\n const regionInfo = region.info;\n const decodingContext = new DecodingContext(data, start, end);\n const bitmap = decodeBitmap(\n region.mmr,\n regionInfo.width,\n regionInfo.height,\n region.template,\n region.prediction,\n null,\n region.at,\n decodingContext\n );\n this.drawBitmap(regionInfo, bitmap);\n }\n\n onImmediateLosslessGenericRegion() {\n this.onImmediateGenericRegion.apply(this, arguments);\n }\n\n onSymbolDictionary(\n dictionary,\n currentSegment,\n referredSegments,\n data,\n start,\n end\n ) {\n let huffmanTables, huffmanInput;\n if (dictionary.huffman) {\n huffmanTables = getSymbolDictionaryHuffmanTables(\n dictionary,\n referredSegments,\n this.customTables\n );\n huffmanInput = new Reader(data, start, end);\n }\n\n // Combines exported symbols from all referred segments\n let symbols = this.symbols;\n if (!symbols) {\n this.symbols = symbols = {};\n }\n\n let inputSymbols = [];\n for (let i = 0, ii = referredSegments.length; i < ii; i++) {\n const referredSymbols = symbols[referredSegments[i]];\n // referredSymbols is undefined when we have a reference to a Tables\n // segment instead of a SymbolDictionary.\n if (referredSymbols) {\n inputSymbols = inputSymbols.concat(referredSymbols);\n }\n }\n\n const decodingContext = new DecodingContext(data, start, end);\n symbols[currentSegment] = decodeSymbolDictionary(\n dictionary.huffman,\n dictionary.refinement,\n inputSymbols,\n dictionary.numberOfNewSymbols,\n dictionary.numberOfExportedSymbols,\n huffmanTables,\n dictionary.template,\n dictionary.at,\n dictionary.refinementTemplate,\n dictionary.refinementAt,\n decodingContext,\n huffmanInput\n );\n }\n\n onImmediateTextRegion(region, referredSegments, data, start, end) {\n const regionInfo = region.info;\n let huffmanTables, huffmanInput;\n\n // Combines exported symbols from all referred segments\n const symbols = this.symbols;\n let inputSymbols = [];\n for (let i = 0, ii = referredSegments.length; i < ii; i++) {\n const referredSymbols = symbols[referredSegments[i]];\n // referredSymbols is undefined when we have a reference to a Tables\n // segment instead of a SymbolDictionary.\n if (referredSymbols) {\n inputSymbols = inputSymbols.concat(referredSymbols);\n }\n }\n const symbolCodeLength = log2(inputSymbols.length);\n if (region.huffman) {\n huffmanInput = new Reader(data, start, end);\n huffmanTables = getTextRegionHuffmanTables(\n region,\n referredSegments,\n this.customTables,\n inputSymbols.length,\n huffmanInput\n );\n }\n\n const decodingContext = new DecodingContext(data, start, end);\n const bitmap = decodeTextRegion(\n region.huffman,\n region.refinement,\n regionInfo.width,\n regionInfo.height,\n region.defaultPixelValue,\n region.numberOfSymbolInstances,\n region.stripSize,\n inputSymbols,\n symbolCodeLength,\n region.transposed,\n region.dsOffset,\n region.referenceCorner,\n region.combinationOperator,\n huffmanTables,\n region.refinementTemplate,\n region.refinementAt,\n decodingContext,\n region.logStripSize,\n huffmanInput\n );\n this.drawBitmap(regionInfo, bitmap);\n }\n\n onImmediateLosslessTextRegion() {\n this.onImmediateTextRegion.apply(this, arguments);\n }\n\n onPatternDictionary(dictionary, currentSegment, data, start, end) {\n let patterns = this.patterns;\n if (!patterns) {\n this.patterns = patterns = {};\n }\n const decodingContext = new DecodingContext(data, start, end);\n patterns[currentSegment] = decodePatternDictionary(\n dictionary.mmr,\n dictionary.patternWidth,\n dictionary.patternHeight,\n dictionary.maxPatternIndex,\n dictionary.template,\n decodingContext\n );\n }\n\n onImmediateHalftoneRegion(region, referredSegments, data, start, end) {\n // HalftoneRegion refers to exactly one PatternDictionary.\n const patterns = this.patterns[referredSegments[0]];\n const regionInfo = region.info;\n const decodingContext = new DecodingContext(data, start, end);\n const bitmap = decodeHalftoneRegion(\n region.mmr,\n patterns,\n region.template,\n regionInfo.width,\n regionInfo.height,\n region.defaultPixelValue,\n region.enableSkip,\n region.combinationOperator,\n region.gridWidth,\n region.gridHeight,\n region.gridOffsetX,\n region.gridOffsetY,\n region.gridVectorX,\n region.gridVectorY,\n decodingContext\n );\n this.drawBitmap(regionInfo, bitmap);\n }\n\n onImmediateLosslessHalftoneRegion() {\n this.onImmediateHalftoneRegion.apply(this, arguments);\n }\n\n onTables(currentSegment, data, start, end) {\n let customTables = this.customTables;\n if (!customTables) {\n this.customTables = customTables = {};\n }\n customTables[currentSegment] = decodeTablesSegment(data, start, end);\n }\n}\n\nclass HuffmanLine {\n constructor(lineData) {\n if (lineData.length === 2) {\n // OOB line.\n this.isOOB = true;\n this.rangeLow = 0;\n this.prefixLength = lineData[0];\n this.rangeLength = 0;\n this.prefixCode = lineData[1];\n this.isLowerRange = false;\n } else {\n // Normal, upper range or lower range line.\n // Upper range lines are processed like normal lines.\n this.isOOB = false;\n this.rangeLow = lineData[0];\n this.prefixLength = lineData[1];\n this.rangeLength = lineData[2];\n this.prefixCode = lineData[3];\n this.isLowerRange = lineData[4] === \"lower\";\n }\n }\n}\n\nclass HuffmanTreeNode {\n constructor(line) {\n this.children = [];\n if (line) {\n // Leaf node\n this.isLeaf = true;\n this.rangeLength = line.rangeLength;\n this.rangeLow = line.rangeLow;\n this.isLowerRange = line.isLowerRange;\n this.isOOB = line.isOOB;\n } else {\n // Intermediate or root node\n this.isLeaf = false;\n }\n }\n\n buildTree(line, shift) {\n const bit = (line.prefixCode >> shift) & 1;\n if (shift <= 0) {\n // Create a leaf node.\n this.children[bit] = new HuffmanTreeNode(line);\n } else {\n // Create an intermediate node and continue recursively.\n let node = this.children[bit];\n if (!node) {\n this.children[bit] = node = new HuffmanTreeNode(null);\n }\n node.buildTree(line, shift - 1);\n }\n }\n\n decodeNode(reader) {\n if (this.isLeaf) {\n if (this.isOOB) {\n return null;\n }\n const htOffset = reader.readBits(this.rangeLength);\n return this.rangeLow + (this.isLowerRange ? -htOffset : htOffset);\n }\n const node = this.children[reader.readBit()];\n if (!node) {\n throw new Jbig2Error(\"invalid Huffman data\");\n }\n return node.decodeNode(reader);\n }\n}\n\nclass HuffmanTable {\n constructor(lines, prefixCodesDone) {\n if (!prefixCodesDone) {\n this.assignPrefixCodes(lines);\n }\n // Create Huffman tree.\n this.rootNode = new HuffmanTreeNode(null);\n for (let i = 0, ii = lines.length; i < ii; i++) {\n const line = lines[i];\n if (line.prefixLength > 0) {\n this.rootNode.buildTree(line, line.prefixLength - 1);\n }\n }\n }\n\n decode(reader) {\n return this.rootNode.decodeNode(reader);\n }\n\n assignPrefixCodes(lines) {\n // Annex B.3 Assigning the prefix codes.\n const linesLength = lines.length;\n let prefixLengthMax = 0;\n for (let i = 0; i < linesLength; i++) {\n prefixLengthMax = Math.max(prefixLengthMax, lines[i].prefixLength);\n }\n\n const histogram = new Uint32Array(prefixLengthMax + 1);\n for (let i = 0; i < linesLength; i++) {\n histogram[lines[i].prefixLength]++;\n }\n let currentLength = 1,\n firstCode = 0,\n currentCode,\n currentTemp,\n line;\n histogram[0] = 0;\n\n while (currentLength <= prefixLengthMax) {\n firstCode = (firstCode + histogram[currentLength - 1]) << 1;\n currentCode = firstCode;\n currentTemp = 0;\n while (currentTemp < linesLength) {\n line = lines[currentTemp];\n if (line.prefixLength === currentLength) {\n line.prefixCode = currentCode;\n currentCode++;\n }\n currentTemp++;\n }\n currentLength++;\n }\n }\n}\n\nfunction decodeTablesSegment(data, start, end) {\n // Decodes a Tables segment, i.e., a custom Huffman table.\n // Annex B.2 Code table structure.\n const flags = data[start];\n const lowestValue = readUint32(data, start + 1) & 0xffffffff;\n const highestValue = readUint32(data, start + 5) & 0xffffffff;\n const reader = new Reader(data, start + 9, end);\n\n const prefixSizeBits = ((flags >> 1) & 7) + 1;\n const rangeSizeBits = ((flags >> 4) & 7) + 1;\n const lines = [];\n let prefixLength,\n rangeLength,\n currentRangeLow = lowestValue;\n\n // Normal table lines\n do {\n prefixLength = reader.readBits(prefixSizeBits);\n rangeLength = reader.readBits(rangeSizeBits);\n lines.push(\n new HuffmanLine([currentRangeLow, prefixLength, rangeLength, 0])\n );\n currentRangeLow += 1 << rangeLength;\n } while (currentRangeLow < highestValue);\n\n // Lower range table line\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([lowestValue - 1, prefixLength, 32, 0, \"lower\"]));\n\n // Upper range table line\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([highestValue, prefixLength, 32, 0]));\n\n if (flags & 1) {\n // Out-of-band table line\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([prefixLength, 0]));\n }\n\n return new HuffmanTable(lines, false);\n}\n\nconst standardTablesCache = {};\n\nfunction getStandardTable(number) {\n // Annex B.5 Standard Huffman tables.\n let table = standardTablesCache[number];\n if (table) {\n return table;\n }\n let lines;\n switch (number) {\n case 1:\n lines = [\n [0, 1, 4, 0x0],\n [16, 2, 8, 0x2],\n [272, 3, 16, 0x6],\n [65808, 3, 32, 0x7], // upper\n ];\n break;\n case 2:\n lines = [\n [0, 1, 0, 0x0],\n [1, 2, 0, 0x2],\n [2, 3, 0, 0x6],\n [3, 4, 3, 0xe],\n [11, 5, 6, 0x1e],\n [75, 6, 32, 0x3e], // upper\n [6, 0x3f], // OOB\n ];\n break;\n case 3:\n lines = [\n [-256, 8, 8, 0xfe],\n [0, 1, 0, 0x0],\n [1, 2, 0, 0x2],\n [2, 3, 0, 0x6],\n [3, 4, 3, 0xe],\n [11, 5, 6, 0x1e],\n [-257, 8, 32, 0xff, \"lower\"],\n [75, 7, 32, 0x7e], // upper\n [6, 0x3e], // OOB\n ];\n break;\n case 4:\n lines = [\n [1, 1, 0, 0x0],\n [2, 2, 0, 0x2],\n [3, 3, 0, 0x6],\n [4, 4, 3, 0xe],\n [12, 5, 6, 0x1e],\n [76, 5, 32, 0x1f], // upper\n ];\n break;\n case 5:\n lines = [\n [-255, 7, 8, 0x7e],\n [1, 1, 0, 0x0],\n [2, 2, 0, 0x2],\n [3, 3, 0, 0x6],\n [4, 4, 3, 0xe],\n [12, 5, 6, 0x1e],\n [-256, 7, 32, 0x7f, \"lower\"],\n [76, 6, 32, 0x3e], // upper\n ];\n break;\n case 6:\n lines = [\n [-2048, 5, 10, 0x1c],\n [-1024, 4, 9, 0x8],\n [-512, 4, 8, 0x9],\n [-256, 4, 7, 0xa],\n [-128, 5, 6, 0x1d],\n [-64, 5, 5, 0x1e],\n [-32, 4, 5, 0xb],\n [0, 2, 7, 0x0],\n [128, 3, 7, 0x2],\n [256, 3, 8, 0x3],\n [512, 4, 9, 0xc],\n [1024, 4, 10, 0xd],\n [-2049, 6, 32, 0x3e, \"lower\"],\n [2048, 6, 32, 0x3f], // upper\n ];\n break;\n case 7:\n lines = [\n [-1024, 4, 9, 0x8],\n [-512, 3, 8, 0x0],\n [-256, 4, 7, 0x9],\n [-128, 5, 6, 0x1a],\n [-64, 5, 5, 0x1b],\n [-32, 4, 5, 0xa],\n [0, 4, 5, 0xb],\n [32, 5, 5, 0x1c],\n [64, 5, 6, 0x1d],\n [128, 4, 7, 0xc],\n [256, 3, 8, 0x1],\n [512, 3, 9, 0x2],\n [1024, 3, 10, 0x3],\n [-1025, 5, 32, 0x1e, \"lower\"],\n [2048, 5, 32, 0x1f], // upper\n ];\n break;\n case 8:\n lines = [\n [-15, 8, 3, 0xfc],\n [-7, 9, 1, 0x1fc],\n [-5, 8, 1, 0xfd],\n [-3, 9, 0, 0x1fd],\n [-2, 7, 0, 0x7c],\n [-1, 4, 0, 0xa],\n [0, 2, 1, 0x0],\n [2, 5, 0, 0x1a],\n [3, 6, 0, 0x3a],\n [4, 3, 4, 0x4],\n [20, 6, 1, 0x3b],\n [22, 4, 4, 0xb],\n [38, 4, 5, 0xc],\n [70, 5, 6, 0x1b],\n [134, 5, 7, 0x1c],\n [262, 6, 7, 0x3c],\n [390, 7, 8, 0x7d],\n [646, 6, 10, 0x3d],\n [-16, 9, 32, 0x1fe, \"lower\"],\n [1670, 9, 32, 0x1ff], // upper\n [2, 0x1], // OOB\n ];\n break;\n case 9:\n lines = [\n [-31, 8, 4, 0xfc],\n [-15, 9, 2, 0x1fc],\n [-11, 8, 2, 0xfd],\n [-7, 9, 1, 0x1fd],\n [-5, 7, 1, 0x7c],\n [-3, 4, 1, 0xa],\n [-1, 3, 1, 0x2],\n [1, 3, 1, 0x3],\n [3, 5, 1, 0x1a],\n [5, 6, 1, 0x3a],\n [7, 3, 5, 0x4],\n [39, 6, 2, 0x3b],\n [43, 4, 5, 0xb],\n [75, 4, 6, 0xc],\n [139, 5, 7, 0x1b],\n [267, 5, 8, 0x1c],\n [523, 6, 8, 0x3c],\n [779, 7, 9, 0x7d],\n [1291, 6, 11, 0x3d],\n [-32, 9, 32, 0x1fe, \"lower\"],\n [3339, 9, 32, 0x1ff], // upper\n [2, 0x0], // OOB\n ];\n break;\n case 10:\n lines = [\n [-21, 7, 4, 0x7a],\n [-5, 8, 0, 0xfc],\n [-4, 7, 0, 0x7b],\n [-3, 5, 0, 0x18],\n [-2, 2, 2, 0x0],\n [2, 5, 0, 0x19],\n [3, 6, 0, 0x36],\n [4, 7, 0, 0x7c],\n [5, 8, 0, 0xfd],\n [6, 2, 6, 0x1],\n [70, 5, 5, 0x1a],\n [102, 6, 5, 0x37],\n [134, 6, 6, 0x38],\n [198, 6, 7, 0x39],\n [326, 6, 8, 0x3a],\n [582, 6, 9, 0x3b],\n [1094, 6, 10, 0x3c],\n [2118, 7, 11, 0x7d],\n [-22, 8, 32, 0xfe, \"lower\"],\n [4166, 8, 32, 0xff], // upper\n [2, 0x2], // OOB\n ];\n break;\n case 11:\n lines = [\n [1, 1, 0, 0x0],\n [2, 2, 1, 0x2],\n [4, 4, 0, 0xc],\n [5, 4, 1, 0xd],\n [7, 5, 1, 0x1c],\n [9, 5, 2, 0x1d],\n [13, 6, 2, 0x3c],\n [17, 7, 2, 0x7a],\n [21, 7, 3, 0x7b],\n [29, 7, 4, 0x7c],\n [45, 7, 5, 0x7d],\n [77, 7, 6, 0x7e],\n [141, 7, 32, 0x7f], // upper\n ];\n break;\n case 12:\n lines = [\n [1, 1, 0, 0x0],\n [2, 2, 0, 0x2],\n [3, 3, 1, 0x6],\n [5, 5, 0, 0x1c],\n [6, 5, 1, 0x1d],\n [8, 6, 1, 0x3c],\n [10, 7, 0, 0x7a],\n [11, 7, 1, 0x7b],\n [13, 7, 2, 0x7c],\n [17, 7, 3, 0x7d],\n [25, 7, 4, 0x7e],\n [41, 8, 5, 0xfe],\n [73, 8, 32, 0xff], // upper\n ];\n break;\n case 13:\n lines = [\n [1, 1, 0, 0x0],\n [2, 3, 0, 0x4],\n [3, 4, 0, 0xc],\n [4, 5, 0, 0x1c],\n [5, 4, 1, 0xd],\n [7, 3, 3, 0x5],\n [15, 6, 1, 0x3a],\n [17, 6, 2, 0x3b],\n [21, 6, 3, 0x3c],\n [29, 6, 4, 0x3d],\n [45, 6, 5, 0x3e],\n [77, 7, 6, 0x7e],\n [141, 7, 32, 0x7f], // upper\n ];\n break;\n case 14:\n lines = [\n [-2, 3, 0, 0x4],\n [-1, 3, 0, 0x5],\n [0, 1, 0, 0x0],\n [1, 3, 0, 0x6],\n [2, 3, 0, 0x7],\n ];\n break;\n case 15:\n lines = [\n [-24, 7, 4, 0x7c],\n [-8, 6, 2, 0x3c],\n [-4, 5, 1, 0x1c],\n [-2, 4, 0, 0xc],\n [-1, 3, 0, 0x4],\n [0, 1, 0, 0x0],\n [1, 3, 0, 0x5],\n [2, 4, 0, 0xd],\n [3, 5, 1, 0x1d],\n [5, 6, 2, 0x3d],\n [9, 7, 4, 0x7d],\n [-25, 7, 32, 0x7e, \"lower\"],\n [25, 7, 32, 0x7f], // upper\n ];\n break;\n default:\n throw new Jbig2Error(`standard table B.${number} does not exist`);\n }\n\n for (let i = 0, ii = lines.length; i < ii; i++) {\n lines[i] = new HuffmanLine(lines[i]);\n }\n table = new HuffmanTable(lines, true);\n standardTablesCache[number] = table;\n return table;\n}\n\nclass Reader {\n constructor(data, start, end) {\n this.data = data;\n this.start = start;\n this.end = end;\n this.position = start;\n this.shift = -1;\n this.currentByte = 0;\n }\n\n readBit() {\n if (this.shift < 0) {\n if (this.position >= this.end) {\n throw new Jbig2Error(\"end of data while reading bit\");\n }\n this.currentByte = this.data[this.position++];\n this.shift = 7;\n }\n const bit = (this.currentByte >> this.shift) & 1;\n this.shift--;\n return bit;\n }\n\n readBits(numBits) {\n let result = 0,\n i;\n for (i = numBits - 1; i >= 0; i--) {\n result |= this.readBit() << i;\n }\n return result;\n }\n\n byteAlign() {\n this.shift = -1;\n }\n\n next() {\n if (this.position >= this.end) {\n return -1;\n }\n return this.data[this.position++];\n }\n}\n\nfunction getCustomHuffmanTable(index, referredTo, customTables) {\n // Returns a Tables segment that has been earlier decoded.\n // See 7.4.2.1.6 (symbol dictionary) or 7.4.3.1.6 (text region).\n let currentIndex = 0;\n for (let i = 0, ii = referredTo.length; i < ii; i++) {\n const table = customTables[referredTo[i]];\n if (table) {\n if (index === currentIndex) {\n return table;\n }\n currentIndex++;\n }\n }\n throw new Jbig2Error(\"can't find custom Huffman table\");\n}\n\nfunction getTextRegionHuffmanTables(\n textRegion,\n referredTo,\n customTables,\n numberOfSymbols,\n reader\n) {\n // 7.4.3.1.7 Symbol ID Huffman table decoding\n\n // Read code lengths for RUNCODEs 0...34.\n const codes = [];\n for (let i = 0; i <= 34; i++) {\n const codeLength = reader.readBits(4);\n codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n }\n // Assign Huffman codes for RUNCODEs.\n const runCodesTable = new HuffmanTable(codes, false);\n\n // Read a Huffman code using the assignment above.\n // Interpret the RUNCODE codes and the additional bits (if any).\n codes.length = 0;\n for (let i = 0; i < numberOfSymbols; ) {\n const codeLength = runCodesTable.decode(reader);\n if (codeLength >= 32) {\n let repeatedLength, numberOfRepeats, j;\n switch (codeLength) {\n case 32:\n if (i === 0) {\n throw new Jbig2Error(\"no previous value in symbol ID table\");\n }\n numberOfRepeats = reader.readBits(2) + 3;\n repeatedLength = codes[i - 1].prefixLength;\n break;\n case 33:\n numberOfRepeats = reader.readBits(3) + 3;\n repeatedLength = 0;\n break;\n case 34:\n numberOfRepeats = reader.readBits(7) + 11;\n repeatedLength = 0;\n break;\n default:\n throw new Jbig2Error(\"invalid code length in symbol ID table\");\n }\n for (j = 0; j < numberOfRepeats; j++) {\n codes.push(new HuffmanLine([i, repeatedLength, 0, 0]));\n i++;\n }\n } else {\n codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n i++;\n }\n }\n reader.byteAlign();\n const symbolIDTable = new HuffmanTable(codes, false);\n\n // 7.4.3.1.6 Text region segment Huffman table selection\n\n let customIndex = 0,\n tableFirstS,\n tableDeltaS,\n tableDeltaT;\n\n switch (textRegion.huffmanFS) {\n case 0:\n case 1:\n tableFirstS = getStandardTable(textRegion.huffmanFS + 6);\n break;\n case 3:\n tableFirstS = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman FS selector\");\n }\n\n switch (textRegion.huffmanDS) {\n case 0:\n case 1:\n case 2:\n tableDeltaS = getStandardTable(textRegion.huffmanDS + 8);\n break;\n case 3:\n tableDeltaS = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman DS selector\");\n }\n\n switch (textRegion.huffmanDT) {\n case 0:\n case 1:\n case 2:\n tableDeltaT = getStandardTable(textRegion.huffmanDT + 11);\n break;\n case 3:\n tableDeltaT = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman DT selector\");\n }\n\n if (textRegion.refinement) {\n // Load tables RDW, RDH, RDX and RDY.\n throw new Jbig2Error(\"refinement with Huffman is not supported\");\n }\n\n return {\n symbolIDTable,\n tableFirstS,\n tableDeltaS,\n tableDeltaT,\n };\n}\n\nfunction getSymbolDictionaryHuffmanTables(\n dictionary,\n referredTo,\n customTables\n) {\n // 7.4.2.1.6 Symbol dictionary segment Huffman table selection\n\n let customIndex = 0,\n tableDeltaHeight,\n tableDeltaWidth;\n switch (dictionary.huffmanDHSelector) {\n case 0:\n case 1:\n tableDeltaHeight = getStandardTable(dictionary.huffmanDHSelector + 4);\n break;\n case 3:\n tableDeltaHeight = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman DH selector\");\n }\n\n switch (dictionary.huffmanDWSelector) {\n case 0:\n case 1:\n tableDeltaWidth = getStandardTable(dictionary.huffmanDWSelector + 2);\n break;\n case 3:\n tableDeltaWidth = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman DW selector\");\n }\n\n let tableBitmapSize, tableAggregateInstances;\n if (dictionary.bitmapSizeSelector) {\n tableBitmapSize = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n } else {\n tableBitmapSize = getStandardTable(1);\n }\n\n if (dictionary.aggregationInstancesSelector) {\n tableAggregateInstances = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n } else {\n tableAggregateInstances = getStandardTable(1);\n }\n\n return {\n tableDeltaHeight,\n tableDeltaWidth,\n tableBitmapSize,\n tableAggregateInstances,\n };\n}\n\nfunction readUncompressedBitmap(reader, width, height) {\n const bitmap = [];\n for (let y = 0; y < height; y++) {\n const row = new Uint8Array(width);\n bitmap.push(row);\n for (let x = 0; x < width; x++) {\n row[x] = reader.readBit();\n }\n reader.byteAlign();\n }\n return bitmap;\n}\n\nfunction decodeMMRBitmap(input, width, height, endOfBlock) {\n // MMR is the same compression algorithm as the PDF filter\n // CCITTFaxDecode with /K -1.\n const params = {\n K: -1,\n Columns: width,\n Rows: height,\n BlackIs1: true,\n EndOfBlock: endOfBlock,\n };\n const decoder = new CCITTFaxDecoder(input, params);\n const bitmap = [];\n let currentByte,\n eof = false;\n\n for (let y = 0; y < height; y++) {\n const row = new Uint8Array(width);\n bitmap.push(row);\n let shift = -1;\n for (let x = 0; x < width; x++) {\n if (shift < 0) {\n currentByte = decoder.readNextChar();\n if (currentByte === -1) {\n // Set the rest of the bits to zero.\n currentByte = 0;\n eof = true;\n }\n shift = 7;\n }\n row[x] = (currentByte >> shift) & 1;\n shift--;\n }\n }\n\n if (endOfBlock && !eof) {\n // Read until EOFB has been consumed.\n const lookForEOFLimit = 5;\n for (let i = 0; i < lookForEOFLimit; i++) {\n if (decoder.readNextChar() === -1) {\n break;\n }\n }\n }\n\n return bitmap;\n}\n\nclass Jbig2Image {\n parseChunks(chunks) {\n return parseJbig2Chunks(chunks);\n }\n\n parse(data) {\n const { imgData, width, height } = parseJbig2(data);\n this.width = width;\n this.height = height;\n return imgData;\n }\n}\n\nexport { Jbig2Image };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Table C-2\nconst QeTable = [\n { qe: 0x5601, nmps: 1, nlps: 1, switchFlag: 1 },\n { qe: 0x3401, nmps: 2, nlps: 6, switchFlag: 0 },\n { qe: 0x1801, nmps: 3, nlps: 9, switchFlag: 0 },\n { qe: 0x0ac1, nmps: 4, nlps: 12, switchFlag: 0 },\n { qe: 0x0521, nmps: 5, nlps: 29, switchFlag: 0 },\n { qe: 0x0221, nmps: 38, nlps: 33, switchFlag: 0 },\n { qe: 0x5601, nmps: 7, nlps: 6, switchFlag: 1 },\n { qe: 0x5401, nmps: 8, nlps: 14, switchFlag: 0 },\n { qe: 0x4801, nmps: 9, nlps: 14, switchFlag: 0 },\n { qe: 0x3801, nmps: 10, nlps: 14, switchFlag: 0 },\n { qe: 0x3001, nmps: 11, nlps: 17, switchFlag: 0 },\n { qe: 0x2401, nmps: 12, nlps: 18, switchFlag: 0 },\n { qe: 0x1c01, nmps: 13, nlps: 20, switchFlag: 0 },\n { qe: 0x1601, nmps: 29, nlps: 21, switchFlag: 0 },\n { qe: 0x5601, nmps: 15, nlps: 14, switchFlag: 1 },\n { qe: 0x5401, nmps: 16, nlps: 14, switchFlag: 0 },\n { qe: 0x5101, nmps: 17, nlps: 15, switchFlag: 0 },\n { qe: 0x4801, nmps: 18, nlps: 16, switchFlag: 0 },\n { qe: 0x3801, nmps: 19, nlps: 17, switchFlag: 0 },\n { qe: 0x3401, nmps: 20, nlps: 18, switchFlag: 0 },\n { qe: 0x3001, nmps: 21, nlps: 19, switchFlag: 0 },\n { qe: 0x2801, nmps: 22, nlps: 19, switchFlag: 0 },\n { qe: 0x2401, nmps: 23, nlps: 20, switchFlag: 0 },\n { qe: 0x2201, nmps: 24, nlps: 21, switchFlag: 0 },\n { qe: 0x1c01, nmps: 25, nlps: 22, switchFlag: 0 },\n { qe: 0x1801, nmps: 26, nlps: 23, switchFlag: 0 },\n { qe: 0x1601, nmps: 27, nlps: 24, switchFlag: 0 },\n { qe: 0x1401, nmps: 28, nlps: 25, switchFlag: 0 },\n { qe: 0x1201, nmps: 29, nlps: 26, switchFlag: 0 },\n { qe: 0x1101, nmps: 30, nlps: 27, switchFlag: 0 },\n { qe: 0x0ac1, nmps: 31, nlps: 28, switchFlag: 0 },\n { qe: 0x09c1, nmps: 32, nlps: 29, switchFlag: 0 },\n { qe: 0x08a1, nmps: 33, nlps: 30, switchFlag: 0 },\n { qe: 0x0521, nmps: 34, nlps: 31, switchFlag: 0 },\n { qe: 0x0441, nmps: 35, nlps: 32, switchFlag: 0 },\n { qe: 0x02a1, nmps: 36, nlps: 33, switchFlag: 0 },\n { qe: 0x0221, nmps: 37, nlps: 34, switchFlag: 0 },\n { qe: 0x0141, nmps: 38, nlps: 35, switchFlag: 0 },\n { qe: 0x0111, nmps: 39, nlps: 36, switchFlag: 0 },\n { qe: 0x0085, nmps: 40, nlps: 37, switchFlag: 0 },\n { qe: 0x0049, nmps: 41, nlps: 38, switchFlag: 0 },\n { qe: 0x0025, nmps: 42, nlps: 39, switchFlag: 0 },\n { qe: 0x0015, nmps: 43, nlps: 40, switchFlag: 0 },\n { qe: 0x0009, nmps: 44, nlps: 41, switchFlag: 0 },\n { qe: 0x0005, nmps: 45, nlps: 42, switchFlag: 0 },\n { qe: 0x0001, nmps: 45, nlps: 43, switchFlag: 0 },\n { qe: 0x5601, nmps: 46, nlps: 46, switchFlag: 0 },\n];\n\n/**\n * This class implements the QM Coder decoding as defined in\n * JPEG 2000 Part I Final Committee Draft Version 1.0\n * Annex C.3 Arithmetic decoding procedure\n * available at http://www.jpeg.org/public/fcd15444-1.pdf\n *\n * The arithmetic decoder is used in conjunction with context models to decode\n * JPEG2000 and JBIG2 streams.\n */\nclass ArithmeticDecoder {\n // C.3.5 Initialisation of the decoder (INITDEC)\n constructor(data, start, end) {\n this.data = data;\n this.bp = start;\n this.dataEnd = end;\n\n this.chigh = data[start];\n this.clow = 0;\n\n this.byteIn();\n\n this.chigh = ((this.chigh << 7) & 0xffff) | ((this.clow >> 9) & 0x7f);\n this.clow = (this.clow << 7) & 0xffff;\n this.ct -= 7;\n this.a = 0x8000;\n }\n\n // C.3.4 Compressed data input (BYTEIN)\n byteIn() {\n const data = this.data;\n let bp = this.bp;\n\n if (data[bp] === 0xff) {\n if (data[bp + 1] > 0x8f) {\n this.clow += 0xff00;\n this.ct = 8;\n } else {\n bp++;\n this.clow += data[bp] << 9;\n this.ct = 7;\n this.bp = bp;\n }\n } else {\n bp++;\n this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xff00;\n this.ct = 8;\n this.bp = bp;\n }\n if (this.clow > 0xffff) {\n this.chigh += this.clow >> 16;\n this.clow &= 0xffff;\n }\n }\n\n // C.3.2 Decoding a decision (DECODE)\n readBit(contexts, pos) {\n // Contexts are packed into 1 byte:\n // highest 7 bits carry cx.index, lowest bit carries cx.mps\n let cx_index = contexts[pos] >> 1,\n cx_mps = contexts[pos] & 1;\n const qeTableIcx = QeTable[cx_index];\n const qeIcx = qeTableIcx.qe;\n let d;\n let a = this.a - qeIcx;\n\n if (this.chigh < qeIcx) {\n // exchangeLps\n if (a < qeIcx) {\n a = qeIcx;\n d = cx_mps;\n cx_index = qeTableIcx.nmps;\n } else {\n a = qeIcx;\n d = 1 ^ cx_mps;\n if (qeTableIcx.switchFlag === 1) {\n cx_mps = d;\n }\n cx_index = qeTableIcx.nlps;\n }\n } else {\n this.chigh -= qeIcx;\n if ((a & 0x8000) !== 0) {\n this.a = a;\n return cx_mps;\n }\n // exchangeMps\n if (a < qeIcx) {\n d = 1 ^ cx_mps;\n if (qeTableIcx.switchFlag === 1) {\n cx_mps = d;\n }\n cx_index = qeTableIcx.nlps;\n } else {\n d = cx_mps;\n cx_index = qeTableIcx.nmps;\n }\n }\n // C.3.3 renormD;\n do {\n if (this.ct === 0) {\n this.byteIn();\n }\n\n a <<= 1;\n this.chigh = ((this.chigh << 1) & 0xffff) | ((this.clow >> 15) & 1);\n this.clow = (this.clow << 1) & 0xffff;\n this.ct--;\n } while ((a & 0x8000) === 0);\n this.a = a;\n\n contexts[pos] = (cx_index << 1) | cx_mps;\n return d;\n }\n}\n\nexport { ArithmeticDecoder };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { Dict } from \"./primitives.js\";\nimport { JpegImage } from \"./jpg.js\";\nimport { shadow } from \"../shared/util.js\";\n\n/**\n * For JPEG's we use a library to decode these images and the stream behaves\n * like all the other DecodeStreams.\n */\nclass JpegStream extends DecodeStream {\n constructor(stream, maybeLength, params) {\n // Some images may contain 'junk' before the SOI (start-of-image) marker.\n // Note: this seems to mainly affect inline images.\n let ch;\n while ((ch = stream.getByte()) !== -1) {\n // Find the first byte of the SOI marker (0xFFD8).\n if (ch === 0xff) {\n stream.skip(-1); // Reset the stream position to the SOI.\n break;\n }\n }\n super(maybeLength);\n\n this.stream = stream;\n this.dict = stream.dict;\n this.maybeLength = maybeLength;\n this.params = params;\n }\n\n get bytes() {\n // If `this.maybeLength` is null, we'll get the entire stream.\n return shadow(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n }\n\n ensureBuffer(requested) {\n // No-op, since `this.readBlock` will always parse the entire image and\n // directly insert all of its data into `this.buffer`.\n }\n\n readBlock() {\n if (this.eof) {\n return;\n }\n const jpegOptions = {\n decodeTransform: undefined,\n colorTransform: undefined,\n };\n\n // Checking if values need to be transformed before conversion.\n const decodeArr = this.dict.getArray(\"D\", \"Decode\");\n if (this.forceRGB && Array.isArray(decodeArr)) {\n const bitsPerComponent = this.dict.get(\"BPC\", \"BitsPerComponent\") || 8;\n const decodeArrLength = decodeArr.length;\n const transform = new Int32Array(decodeArrLength);\n let transformNeeded = false;\n const maxValue = (1 << bitsPerComponent) - 1;\n for (let i = 0; i < decodeArrLength; i += 2) {\n transform[i] = ((decodeArr[i + 1] - decodeArr[i]) * 256) | 0;\n transform[i + 1] = (decodeArr[i] * maxValue) | 0;\n if (transform[i] !== 256 || transform[i + 1] !== 0) {\n transformNeeded = true;\n }\n }\n if (transformNeeded) {\n jpegOptions.decodeTransform = transform;\n }\n }\n // Fetching the 'ColorTransform' entry, if it exists.\n if (this.params instanceof Dict) {\n const colorTransform = this.params.get(\"ColorTransform\");\n if (Number.isInteger(colorTransform)) {\n jpegOptions.colorTransform = colorTransform;\n }\n }\n const jpegImage = new JpegImage(jpegOptions);\n\n jpegImage.parse(this.bytes);\n const data = jpegImage.getData({\n width: this.drawWidth,\n height: this.drawHeight,\n forceRGB: this.forceRGB,\n isSourcePDF: true,\n });\n this.buffer = data;\n this.bufferLength = data.length;\n this.eof = true;\n }\n}\n\nexport { JpegStream };\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, BaseException, warn } from \"../shared/util.js\";\nimport { readUint16 } from \"./core_utils.js\";\n\nclass JpegError extends BaseException {\n constructor(msg) {\n super(`JPEG error: ${msg}`, \"JpegError\");\n }\n}\n\nclass DNLMarkerError extends BaseException {\n constructor(message, scanLines) {\n super(message, \"DNLMarkerError\");\n this.scanLines = scanLines;\n }\n}\n\nclass EOIMarkerError extends BaseException {\n constructor(msg) {\n super(msg, \"EOIMarkerError\");\n }\n}\n\n/**\n * This code was forked from https://github.com/notmasteryet/jpgjs.\n * The original version was created by GitHub user notmasteryet.\n *\n * - The JPEG specification can be found in the ITU CCITT Recommendation T.81\n * (www.w3.org/Graphics/JPEG/itu-t81.pdf)\n * - The JFIF specification can be found in the JPEG File Interchange Format\n * (www.w3.org/Graphics/JPEG/jfif3.pdf)\n * - The Adobe Application-Specific JPEG markers in the\n * Supporting the DCT Filters in PostScript Level 2, Technical Note #5116\n * (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf)\n */\n\n// prettier-ignore\nconst dctZigZag = new Uint8Array([\n 0,\n 1, 8,\n 16, 9, 2,\n 3, 10, 17, 24,\n 32, 25, 18, 11, 4,\n 5, 12, 19, 26, 33, 40,\n 48, 41, 34, 27, 20, 13, 6,\n 7, 14, 21, 28, 35, 42, 49, 56,\n 57, 50, 43, 36, 29, 22, 15,\n 23, 30, 37, 44, 51, 58,\n 59, 52, 45, 38, 31,\n 39, 46, 53, 60,\n 61, 54, 47,\n 55, 62,\n 63\n]);\n\nconst dctCos1 = 4017; // cos(pi/16)\nconst dctSin1 = 799; // sin(pi/16)\nconst dctCos3 = 3406; // cos(3*pi/16)\nconst dctSin3 = 2276; // sin(3*pi/16)\nconst dctCos6 = 1567; // cos(6*pi/16)\nconst dctSin6 = 3784; // sin(6*pi/16)\nconst dctSqrt2 = 5793; // sqrt(2)\nconst dctSqrt1d2 = 2896; // sqrt(2) / 2\n\nfunction buildHuffmanTable(codeLengths, values) {\n let k = 0,\n i,\n j,\n length = 16;\n while (length > 0 && !codeLengths[length - 1]) {\n length--;\n }\n const code = [{ children: [], index: 0 }];\n let p = code[0],\n q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push((q = { children: [], index: 0 }));\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n // p here points to last code\n code.push((q = { children: [], index: 0 }));\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n}\n\nfunction getBlockBufferOffset(component, row, col) {\n return 64 * ((component.blocksPerLine + 1) * row + col);\n}\n\nfunction decodeScan(\n data,\n offset,\n frame,\n components,\n resetInterval,\n spectralStart,\n spectralEnd,\n successivePrev,\n successive,\n parseDNLMarker = false\n) {\n const mcusPerLine = frame.mcusPerLine;\n const progressive = frame.progressive;\n\n const startOffset = offset;\n let bitsData = 0,\n bitsCount = 0;\n\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return (bitsData >> bitsCount) & 1;\n }\n bitsData = data[offset++];\n if (bitsData === 0xff) {\n const nextByte = data[offset++];\n if (nextByte) {\n if (nextByte === /* DNL = */ 0xdc && parseDNLMarker) {\n offset += 2; // Skip marker length.\n\n const scanLines = readUint16(data, offset);\n offset += 2;\n if (scanLines > 0 && scanLines !== frame.scanLines) {\n throw new DNLMarkerError(\n \"Found DNL marker (0xFFDC) while parsing scan data\",\n scanLines\n );\n }\n } else if (nextByte === /* EOI = */ 0xd9) {\n if (parseDNLMarker) {\n // NOTE: only 8-bit JPEG images are supported in this decoder.\n const maybeScanLines = blockRow * (frame.precision === 8 ? 8 : 0);\n // Heuristic to attempt to handle corrupt JPEG images with too\n // large `scanLines` parameter, by falling back to the currently\n // parsed number of scanLines when it's at least (approximately)\n // one order of magnitude smaller than expected (fixes\n // issue10880.pdf and issue10989.pdf).\n if (\n maybeScanLines > 0 &&\n Math.round(frame.scanLines / maybeScanLines) >= 10\n ) {\n throw new DNLMarkerError(\n \"Found EOI marker (0xFFD9) while parsing scan data, \" +\n \"possibly caused by incorrect `scanLines` parameter\",\n maybeScanLines\n );\n }\n }\n throw new EOIMarkerError(\n \"Found EOI marker (0xFFD9) while parsing scan data\"\n );\n }\n throw new JpegError(\n `unexpected marker ${((bitsData << 8) | nextByte).toString(16)}`\n );\n }\n // unstuff 0\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n\n function decodeHuffman(tree) {\n let node = tree;\n while (true) {\n node = node[readBit()];\n switch (typeof node) {\n case \"number\":\n return node;\n case \"object\":\n continue;\n }\n throw new JpegError(\"invalid huffman sequence\");\n }\n }\n\n function receive(length) {\n let n = 0;\n while (length > 0) {\n n = (n << 1) | readBit();\n length--;\n }\n return n;\n }\n\n function receiveAndExtend(length) {\n if (length === 1) {\n return readBit() === 1 ? 1 : -1;\n }\n const n = receive(length);\n if (n >= 1 << (length - 1)) {\n return n;\n }\n return n + (-1 << length) + 1;\n }\n\n function decodeBaseline(component, blockOffset) {\n const t = decodeHuffman(component.huffmanTableDC);\n const diff = t === 0 ? 0 : receiveAndExtend(t);\n component.blockData[blockOffset] = component.pred += diff;\n let k = 1;\n while (k < 64) {\n const rs = decodeHuffman(component.huffmanTableAC);\n const s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n const z = dctZigZag[k];\n component.blockData[blockOffset + z] = receiveAndExtend(s);\n k++;\n }\n }\n\n function decodeDCFirst(component, blockOffset) {\n const t = decodeHuffman(component.huffmanTableDC);\n const diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n component.blockData[blockOffset] = component.pred += diff;\n }\n\n function decodeDCSuccessive(component, blockOffset) {\n component.blockData[blockOffset] |= readBit() << successive;\n }\n\n let eobrun = 0;\n function decodeACFirst(component, blockOffset) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n let k = spectralStart;\n const e = spectralEnd;\n while (k <= e) {\n const rs = decodeHuffman(component.huffmanTableAC);\n const s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n const z = dctZigZag[k];\n component.blockData[blockOffset + z] =\n receiveAndExtend(s) * (1 << successive);\n k++;\n }\n }\n\n let successiveACState = 0,\n successiveACNextValue;\n function decodeACSuccessive(component, blockOffset) {\n let k = spectralStart;\n const e = spectralEnd;\n let r = 0;\n let s;\n let rs;\n while (k <= e) {\n const offsetZ = blockOffset + dctZigZag[k];\n const sign = component.blockData[offsetZ] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0: // initial state\n rs = decodeHuffman(component.huffmanTableAC);\n s = rs & 15;\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1) {\n throw new JpegError(\"invalid ACn encoding\");\n }\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1: // skipping r zero items\n case 2:\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n } else {\n r--;\n if (r === 0) {\n successiveACState = successiveACState === 2 ? 3 : 0;\n }\n }\n break;\n case 3: // set value for a zero item\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n } else {\n component.blockData[offsetZ] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4: // eob\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n }\n break;\n }\n k++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0) {\n successiveACState = 0;\n }\n }\n }\n\n let blockRow = 0;\n function decodeMcu(component, decode, mcu, row, col) {\n const mcuRow = (mcu / mcusPerLine) | 0;\n const mcuCol = mcu % mcusPerLine;\n blockRow = mcuRow * component.v + row;\n const blockCol = mcuCol * component.h + col;\n const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, blockOffset);\n }\n\n function decodeBlock(component, decode, mcu) {\n blockRow = (mcu / component.blocksPerLine) | 0;\n const blockCol = mcu % component.blocksPerLine;\n const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, blockOffset);\n }\n\n const componentsLength = components.length;\n let component, i, j, k, n;\n let decodeFn;\n if (progressive) {\n if (spectralStart === 0) {\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n } else {\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n }\n } else {\n decodeFn = decodeBaseline;\n }\n\n let mcu = 0,\n fileMarker;\n let mcuExpected;\n if (componentsLength === 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n\n let h, v;\n while (mcu <= mcuExpected) {\n // reset interval stuff\n const mcuToRead = resetInterval\n ? Math.min(mcuExpected - mcu, resetInterval)\n : mcuExpected;\n\n // The `mcuToRead === 0` case should only occur when all of the expected\n // MCU data has been already parsed, i.e. when `mcu === mcuExpected`, but\n // some corrupt JPEG images contain more data than intended and we thus\n // want to skip over any extra RSTx markers below (fixes issue11794.pdf).\n if (mcuToRead > 0) {\n for (i = 0; i < componentsLength; i++) {\n components[i].pred = 0;\n }\n eobrun = 0;\n\n if (componentsLength === 1) {\n component = components[0];\n for (n = 0; n < mcuToRead; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < mcuToRead; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n }\n }\n }\n\n // find marker\n bitsCount = 0;\n fileMarker = findNextFileMarker(data, offset);\n if (!fileMarker) {\n break; // Reached the end of the image data without finding any marker.\n }\n if (fileMarker.invalid) {\n // Some bad images seem to pad Scan blocks with e.g. zero bytes, skip\n // past those to attempt to find a valid marker (fixes issue4090.pdf).\n const partialMsg = mcuToRead > 0 ? \"unexpected\" : \"excessive\";\n warn(\n `decodeScan - ${partialMsg} MCU data, current marker is: ${fileMarker.invalid}`\n );\n offset = fileMarker.offset;\n }\n if (fileMarker.marker >= 0xffd0 && fileMarker.marker <= 0xffd7) {\n // RSTx\n offset += 2;\n } else {\n break;\n }\n }\n\n return offset - startOffset;\n}\n\n// A port of poppler's IDCT method which in turn is taken from:\n// Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz,\n// 'Practical Fast 1-D DCT Algorithms with 11 Multiplications',\n// IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989,\n// 988-991.\nfunction quantizeAndInverse(component, blockBufferOffset, p) {\n const qt = component.quantizationTable,\n blockData = component.blockData;\n let v0, v1, v2, v3, v4, v5, v6, v7;\n let p0, p1, p2, p3, p4, p5, p6, p7;\n let t;\n\n if (!qt) {\n throw new JpegError(\"missing required Quantization Table.\");\n }\n\n // inverse DCT on rows\n for (let row = 0; row < 64; row += 8) {\n // gather block data\n p0 = blockData[blockBufferOffset + row];\n p1 = blockData[blockBufferOffset + row + 1];\n p2 = blockData[blockBufferOffset + row + 2];\n p3 = blockData[blockBufferOffset + row + 3];\n p4 = blockData[blockBufferOffset + row + 4];\n p5 = blockData[blockBufferOffset + row + 5];\n p6 = blockData[blockBufferOffset + row + 6];\n p7 = blockData[blockBufferOffset + row + 7];\n\n // dequant p0\n p0 *= qt[row];\n\n // check for all-zero AC coefficients\n if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = (dctSqrt2 * p0 + 512) >> 10;\n p[row] = t;\n p[row + 1] = t;\n p[row + 2] = t;\n p[row + 3] = t;\n p[row + 4] = t;\n p[row + 5] = t;\n p[row + 6] = t;\n p[row + 7] = t;\n continue;\n }\n // dequant p1 ... p7\n p1 *= qt[row + 1];\n p2 *= qt[row + 2];\n p3 *= qt[row + 3];\n p4 *= qt[row + 4];\n p5 *= qt[row + 5];\n p6 *= qt[row + 6];\n p7 *= qt[row + 7];\n\n // stage 4\n v0 = (dctSqrt2 * p0 + 128) >> 8;\n v1 = (dctSqrt2 * p4 + 128) >> 8;\n v2 = p2;\n v3 = p6;\n v4 = (dctSqrt1d2 * (p1 - p7) + 128) >> 8;\n v7 = (dctSqrt1d2 * (p1 + p7) + 128) >> 8;\n v5 = p3 << 4;\n v6 = p5 << 4;\n\n // stage 3\n v0 = (v0 + v1 + 1) >> 1;\n v1 = v0 - v1;\n t = (v2 * dctSin6 + v3 * dctCos6 + 128) >> 8;\n v2 = (v2 * dctCos6 - v3 * dctSin6 + 128) >> 8;\n v3 = t;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = v4 - v6;\n v7 = (v7 + v5 + 1) >> 1;\n v5 = v7 - v5;\n\n // stage 2\n v0 = (v0 + v3 + 1) >> 1;\n v3 = v0 - v3;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = v1 - v2;\n t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n v7 = t;\n t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p[row] = v0 + v7;\n p[row + 7] = v0 - v7;\n p[row + 1] = v1 + v6;\n p[row + 6] = v1 - v6;\n p[row + 2] = v2 + v5;\n p[row + 5] = v2 - v5;\n p[row + 3] = v3 + v4;\n p[row + 4] = v3 - v4;\n }\n\n // inverse DCT on columns\n for (let col = 0; col < 8; ++col) {\n p0 = p[col];\n p1 = p[col + 8];\n p2 = p[col + 16];\n p3 = p[col + 24];\n p4 = p[col + 32];\n p5 = p[col + 40];\n p6 = p[col + 48];\n p7 = p[col + 56];\n\n // check for all-zero AC coefficients\n if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = (dctSqrt2 * p0 + 8192) >> 14;\n // Convert to 8-bit.\n if (t < -2040) {\n t = 0;\n } else if (t >= 2024) {\n t = 255;\n } else {\n t = (t + 2056) >> 4;\n }\n blockData[blockBufferOffset + col] = t;\n blockData[blockBufferOffset + col + 8] = t;\n blockData[blockBufferOffset + col + 16] = t;\n blockData[blockBufferOffset + col + 24] = t;\n blockData[blockBufferOffset + col + 32] = t;\n blockData[blockBufferOffset + col + 40] = t;\n blockData[blockBufferOffset + col + 48] = t;\n blockData[blockBufferOffset + col + 56] = t;\n continue;\n }\n\n // stage 4\n v0 = (dctSqrt2 * p0 + 2048) >> 12;\n v1 = (dctSqrt2 * p4 + 2048) >> 12;\n v2 = p2;\n v3 = p6;\n v4 = (dctSqrt1d2 * (p1 - p7) + 2048) >> 12;\n v7 = (dctSqrt1d2 * (p1 + p7) + 2048) >> 12;\n v5 = p3;\n v6 = p5;\n\n // stage 3\n // Shift v0 by 128.5 << 5 here, so we don't need to shift p0...p7 when\n // converting to UInt8 range later.\n v0 = ((v0 + v1 + 1) >> 1) + 4112;\n v1 = v0 - v1;\n t = (v2 * dctSin6 + v3 * dctCos6 + 2048) >> 12;\n v2 = (v2 * dctCos6 - v3 * dctSin6 + 2048) >> 12;\n v3 = t;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = v4 - v6;\n v7 = (v7 + v5 + 1) >> 1;\n v5 = v7 - v5;\n\n // stage 2\n v0 = (v0 + v3 + 1) >> 1;\n v3 = v0 - v3;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = v1 - v2;\n t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n v7 = t;\n t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p0 = v0 + v7;\n p7 = v0 - v7;\n p1 = v1 + v6;\n p6 = v1 - v6;\n p2 = v2 + v5;\n p5 = v2 - v5;\n p3 = v3 + v4;\n p4 = v3 - v4;\n\n // Convert to 8-bit integers.\n if (p0 < 16) {\n p0 = 0;\n } else if (p0 >= 4080) {\n p0 = 255;\n } else {\n p0 >>= 4;\n }\n if (p1 < 16) {\n p1 = 0;\n } else if (p1 >= 4080) {\n p1 = 255;\n } else {\n p1 >>= 4;\n }\n if (p2 < 16) {\n p2 = 0;\n } else if (p2 >= 4080) {\n p2 = 255;\n } else {\n p2 >>= 4;\n }\n if (p3 < 16) {\n p3 = 0;\n } else if (p3 >= 4080) {\n p3 = 255;\n } else {\n p3 >>= 4;\n }\n if (p4 < 16) {\n p4 = 0;\n } else if (p4 >= 4080) {\n p4 = 255;\n } else {\n p4 >>= 4;\n }\n if (p5 < 16) {\n p5 = 0;\n } else if (p5 >= 4080) {\n p5 = 255;\n } else {\n p5 >>= 4;\n }\n if (p6 < 16) {\n p6 = 0;\n } else if (p6 >= 4080) {\n p6 = 255;\n } else {\n p6 >>= 4;\n }\n if (p7 < 16) {\n p7 = 0;\n } else if (p7 >= 4080) {\n p7 = 255;\n } else {\n p7 >>= 4;\n }\n\n // store block data\n blockData[blockBufferOffset + col] = p0;\n blockData[blockBufferOffset + col + 8] = p1;\n blockData[blockBufferOffset + col + 16] = p2;\n blockData[blockBufferOffset + col + 24] = p3;\n blockData[blockBufferOffset + col + 32] = p4;\n blockData[blockBufferOffset + col + 40] = p5;\n blockData[blockBufferOffset + col + 48] = p6;\n blockData[blockBufferOffset + col + 56] = p7;\n }\n}\n\nfunction buildComponentData(frame, component) {\n const blocksPerLine = component.blocksPerLine;\n const blocksPerColumn = component.blocksPerColumn;\n const computationBuffer = new Int16Array(64);\n\n for (let blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n for (let blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n const offset = getBlockBufferOffset(component, blockRow, blockCol);\n quantizeAndInverse(component, offset, computationBuffer);\n }\n }\n return component.blockData;\n}\n\nfunction findNextFileMarker(data, currentPos, startPos = currentPos) {\n const maxPos = data.length - 1;\n let newPos = startPos < currentPos ? startPos : currentPos;\n\n if (currentPos >= maxPos) {\n return null; // Don't attempt to read non-existent data and just return.\n }\n const currentMarker = readUint16(data, currentPos);\n if (currentMarker >= 0xffc0 && currentMarker <= 0xfffe) {\n return {\n invalid: null,\n marker: currentMarker,\n offset: currentPos,\n };\n }\n let newMarker = readUint16(data, newPos);\n while (!(newMarker >= 0xffc0 && newMarker <= 0xfffe)) {\n if (++newPos >= maxPos) {\n return null; // Don't attempt to read non-existent data and just return.\n }\n newMarker = readUint16(data, newPos);\n }\n return {\n invalid: currentMarker.toString(16),\n marker: newMarker,\n offset: newPos,\n };\n}\n\nclass JpegImage {\n constructor({ decodeTransform = null, colorTransform = -1 } = {}) {\n this._decodeTransform = decodeTransform;\n this._colorTransform = colorTransform;\n }\n\n parse(data, { dnlScanLines = null } = {}) {\n function readDataBlock() {\n const length = readUint16(data, offset);\n offset += 2;\n let endOffset = offset + length - 2;\n\n const fileMarker = findNextFileMarker(data, endOffset, offset);\n if (fileMarker && fileMarker.invalid) {\n warn(\n \"readDataBlock - incorrect length, current marker is: \" +\n fileMarker.invalid\n );\n endOffset = fileMarker.offset;\n }\n\n const array = data.subarray(offset, endOffset);\n offset += array.length;\n return array;\n }\n\n function prepareComponents(frame) {\n const mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);\n const mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);\n for (let i = 0, ii = frame.components.length; i < ii; i++) {\n const component = frame.components[i];\n const blocksPerLine = Math.ceil(\n (Math.ceil(frame.samplesPerLine / 8) * component.h) / frame.maxH\n );\n const blocksPerColumn = Math.ceil(\n (Math.ceil(frame.scanLines / 8) * component.v) / frame.maxV\n );\n const blocksPerLineForMcu = mcusPerLine * component.h;\n const blocksPerColumnForMcu = mcusPerColumn * component.v;\n\n const blocksBufferSize =\n 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1);\n component.blockData = new Int16Array(blocksBufferSize);\n component.blocksPerLine = blocksPerLine;\n component.blocksPerColumn = blocksPerColumn;\n }\n frame.mcusPerLine = mcusPerLine;\n frame.mcusPerColumn = mcusPerColumn;\n }\n\n let offset = 0;\n let jfif = null;\n let adobe = null;\n let frame, resetInterval;\n let numSOSMarkers = 0;\n const quantizationTables = [];\n const huffmanTablesAC = [],\n huffmanTablesDC = [];\n\n let fileMarker = readUint16(data, offset);\n offset += 2;\n if (fileMarker !== /* SOI (Start of Image) = */ 0xffd8) {\n throw new JpegError(\"SOI not found\");\n }\n fileMarker = readUint16(data, offset);\n offset += 2;\n\n markerLoop: while (fileMarker !== /* EOI (End of Image) = */ 0xffd9) {\n let i, j, l;\n switch (fileMarker) {\n case 0xffe0: // APP0 (Application Specific)\n case 0xffe1: // APP1\n case 0xffe2: // APP2\n case 0xffe3: // APP3\n case 0xffe4: // APP4\n case 0xffe5: // APP5\n case 0xffe6: // APP6\n case 0xffe7: // APP7\n case 0xffe8: // APP8\n case 0xffe9: // APP9\n case 0xffea: // APP10\n case 0xffeb: // APP11\n case 0xffec: // APP12\n case 0xffed: // APP13\n case 0xffee: // APP14\n case 0xffef: // APP15\n case 0xfffe: // COM (Comment)\n const appData = readDataBlock();\n\n if (fileMarker === 0xffe0) {\n // 'JFIF\\x00'\n if (\n appData[0] === 0x4a &&\n appData[1] === 0x46 &&\n appData[2] === 0x49 &&\n appData[3] === 0x46 &&\n appData[4] === 0\n ) {\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: (appData[8] << 8) | appData[9],\n yDensity: (appData[10] << 8) | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(\n 14,\n 14 + 3 * appData[12] * appData[13]\n ),\n };\n }\n }\n // TODO APP1 - Exif\n if (fileMarker === 0xffee) {\n // 'Adobe'\n if (\n appData[0] === 0x41 &&\n appData[1] === 0x64 &&\n appData[2] === 0x6f &&\n appData[3] === 0x62 &&\n appData[4] === 0x65\n ) {\n adobe = {\n version: (appData[5] << 8) | appData[6],\n flags0: (appData[7] << 8) | appData[8],\n flags1: (appData[9] << 8) | appData[10],\n transformCode: appData[11],\n };\n }\n }\n break;\n\n case 0xffdb: // DQT (Define Quantization Tables)\n const quantizationTablesLength = readUint16(data, offset);\n offset += 2;\n const quantizationTablesEnd = quantizationTablesLength + offset - 2;\n let z;\n while (offset < quantizationTablesEnd) {\n const quantizationTableSpec = data[offset++];\n const tableData = new Uint16Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n // 8 bit values\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n // 16 bit values\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = readUint16(data, offset);\n offset += 2;\n }\n } else {\n throw new JpegError(\"DQT - invalid table spec\");\n }\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n\n case 0xffc0: // SOF0 (Start of Frame, Baseline DCT)\n case 0xffc1: // SOF1 (Start of Frame, Extended DCT)\n case 0xffc2: // SOF2 (Start of Frame, Progressive DCT)\n if (frame) {\n throw new JpegError(\"Only single frame JPEGs supported\");\n }\n offset += 2; // Skip marker length.\n\n frame = {};\n frame.extended = fileMarker === 0xffc1;\n frame.progressive = fileMarker === 0xffc2;\n frame.precision = data[offset++];\n const sofScanLines = readUint16(data, offset);\n offset += 2;\n frame.scanLines = dnlScanLines || sofScanLines;\n frame.samplesPerLine = readUint16(data, offset);\n offset += 2;\n frame.components = [];\n frame.componentIds = {};\n const componentsCount = data[offset++];\n let maxH = 0,\n maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n const componentId = data[offset];\n const h = data[offset + 1] >> 4;\n const v = data[offset + 1] & 15;\n if (maxH < h) {\n maxH = h;\n }\n if (maxV < v) {\n maxV = v;\n }\n const qId = data[offset + 2];\n l = frame.components.push({\n h,\n v,\n quantizationId: qId,\n quantizationTable: null, // See comment below.\n });\n frame.componentIds[componentId] = l - 1;\n offset += 3;\n }\n frame.maxH = maxH;\n frame.maxV = maxV;\n prepareComponents(frame);\n break;\n\n case 0xffc4: // DHT (Define Huffman Tables)\n const huffmanLength = readUint16(data, offset);\n offset += 2;\n for (i = 2; i < huffmanLength; ) {\n const huffmanTableSpec = data[offset++];\n const codeLengths = new Uint8Array(16);\n let codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n const huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++) {\n huffmanValues[j] = data[offset];\n }\n i += 17 + codeLengthSum;\n\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[\n huffmanTableSpec & 15\n ] = buildHuffmanTable(codeLengths, huffmanValues);\n }\n break;\n\n case 0xffdd: // DRI (Define Restart Interval)\n offset += 2; // Skip marker length.\n\n resetInterval = readUint16(data, offset);\n offset += 2;\n break;\n\n case 0xffda: // SOS (Start of Scan)\n // A DNL marker (0xFFDC), if it exists, is only allowed at the end\n // of the first scan segment and may only occur once in an image.\n // Furthermore, to prevent an infinite loop, do *not* attempt to\n // parse DNL markers during re-parsing of the JPEG scan data.\n const parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines;\n\n offset += 2; // Skip marker length.\n\n const selectorsCount = data[offset++],\n components = [];\n for (i = 0; i < selectorsCount; i++) {\n const index = data[offset++];\n const componentIndex = frame.componentIds[index];\n const component = frame.components[componentIndex];\n component.index = index;\n const tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n const spectralStart = data[offset++],\n spectralEnd = data[offset++],\n successiveApproximation = data[offset++];\n try {\n const processed = decodeScan(\n data,\n offset,\n frame,\n components,\n resetInterval,\n spectralStart,\n spectralEnd,\n successiveApproximation >> 4,\n successiveApproximation & 15,\n parseDNLMarker\n );\n offset += processed;\n } catch (ex) {\n if (ex instanceof DNLMarkerError) {\n warn(`${ex.message} -- attempting to re-parse the JPEG image.`);\n return this.parse(data, { dnlScanLines: ex.scanLines });\n } else if (ex instanceof EOIMarkerError) {\n warn(`${ex.message} -- ignoring the rest of the image data.`);\n break markerLoop;\n }\n throw ex;\n }\n break;\n\n case 0xffdc: // DNL (Define Number of Lines)\n // Ignore the marker, since it's being handled in `decodeScan`.\n offset += 4;\n break;\n\n case 0xffff: // Fill bytes\n if (data[offset] !== 0xff) {\n // Avoid skipping a valid marker.\n offset--;\n }\n break;\n\n default:\n // Could be incorrect encoding -- the last 0xFF byte of the previous\n // block could have been eaten by the encoder, hence we fallback to\n // `startPos = offset - 3` when looking for the next valid marker.\n const nextFileMarker = findNextFileMarker(\n data,\n /* currentPos = */ offset - 2,\n /* startPos = */ offset - 3\n );\n if (nextFileMarker && nextFileMarker.invalid) {\n warn(\n \"JpegImage.parse - unexpected data, current marker is: \" +\n nextFileMarker.invalid\n );\n offset = nextFileMarker.offset;\n break;\n }\n if (!nextFileMarker || offset >= data.length - 1) {\n warn(\n \"JpegImage.parse - reached the end of the image data \" +\n \"without finding an EOI marker (0xFFD9).\"\n );\n break markerLoop;\n }\n throw new JpegError(\n \"JpegImage.parse - unknown marker: \" + fileMarker.toString(16)\n );\n }\n fileMarker = readUint16(data, offset);\n offset += 2;\n }\n\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (let i = 0, ii = frame.components.length; i < ii; i++) {\n const component = frame.components[i];\n\n // Prevent errors when DQT markers are placed after SOF{n} markers,\n // by assigning the `quantizationTable` entry after the entire image\n // has been parsed (fixes issue7406.pdf).\n const quantizationTable = quantizationTables[component.quantizationId];\n if (quantizationTable) {\n component.quantizationTable = quantizationTable;\n }\n\n this.components.push({\n index: component.index,\n output: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV,\n blocksPerLine: component.blocksPerLine,\n blocksPerColumn: component.blocksPerColumn,\n });\n }\n this.numComponents = this.components.length;\n return undefined;\n }\n\n _getLinearizedBlockData(width, height, isSourcePDF = false) {\n const scaleX = this.width / width,\n scaleY = this.height / height;\n\n let component, componentScaleX, componentScaleY, blocksPerScanline;\n let x, y, i, j, k;\n let index;\n let offset = 0;\n let output;\n const numComponents = this.components.length;\n const dataLength = width * height * numComponents;\n const data = new Uint8ClampedArray(dataLength);\n const xScaleBlockOffset = new Uint32Array(width);\n const mask3LSB = 0xfffffff8; // used to clear the 3 LSBs\n let lastComponentScaleX;\n\n for (i = 0; i < numComponents; i++) {\n component = this.components[i];\n componentScaleX = component.scaleX * scaleX;\n componentScaleY = component.scaleY * scaleY;\n offset = i;\n output = component.output;\n blocksPerScanline = (component.blocksPerLine + 1) << 3;\n // Precalculate the `xScaleBlockOffset`. Since it doesn't depend on the\n // component data, that's only necessary when `componentScaleX` changes.\n if (componentScaleX !== lastComponentScaleX) {\n for (x = 0; x < width; x++) {\n j = 0 | (x * componentScaleX);\n xScaleBlockOffset[x] = ((j & mask3LSB) << 3) | (j & 7);\n }\n lastComponentScaleX = componentScaleX;\n }\n // linearize the blocks of the component\n for (y = 0; y < height; y++) {\n j = 0 | (y * componentScaleY);\n index = (blocksPerScanline * (j & mask3LSB)) | ((j & 7) << 3);\n for (x = 0; x < width; x++) {\n data[offset] = output[index + xScaleBlockOffset[x]];\n offset += numComponents;\n }\n }\n }\n\n // decodeTransform contains pairs of multiplier (-256..256) and additive\n let transform = this._decodeTransform;\n\n // In PDF files, JPEG images with CMYK colour spaces are usually inverted\n // (this can be observed by extracting the raw image data).\n // Since the conversion algorithms (see below) were written primarily for\n // the PDF use-cases, attempting to use `JpegImage` to parse standalone\n // JPEG (CMYK) images may thus result in inverted images (see issue 9513).\n //\n // Unfortunately it's not (always) possible to tell, from the image data\n // alone, if it needs to be inverted. Thus in an attempt to provide better\n // out-of-box behaviour when `JpegImage` is used standalone, default to\n // inverting JPEG (CMYK) images if and only if the image data does *not*\n // come from a PDF file and no `decodeTransform` was passed by the user.\n if (!isSourcePDF && numComponents === 4 && !transform) {\n transform = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255]);\n }\n\n if (transform) {\n for (i = 0; i < dataLength; ) {\n for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) {\n data[i] = ((data[i] * transform[k]) >> 8) + transform[k + 1];\n }\n }\n }\n return data;\n }\n\n get _isColorConversionNeeded() {\n if (this.adobe) {\n // The adobe transform marker overrides any previous setting.\n return !!this.adobe.transformCode;\n }\n if (this.numComponents === 3) {\n if (this._colorTransform === 0) {\n // If the Adobe transform marker is not present and the image\n // dictionary has a 'ColorTransform' entry, explicitly set to `0`,\n // then the colours should *not* be transformed.\n return false;\n } else if (\n this.components[0].index === /* \"R\" = */ 0x52 &&\n this.components[1].index === /* \"G\" = */ 0x47 &&\n this.components[2].index === /* \"B\" = */ 0x42\n ) {\n // If the three components are indexed as RGB in ASCII\n // then the colours should *not* be transformed.\n return false;\n }\n return true;\n }\n // `this.numComponents !== 3`\n if (this._colorTransform === 1) {\n // If the Adobe transform marker is not present and the image\n // dictionary has a 'ColorTransform' entry, explicitly set to `1`,\n // then the colours should be transformed.\n return true;\n }\n return false;\n }\n\n _convertYccToRgb(data) {\n let Y, Cb, Cr;\n for (let i = 0, length = data.length; i < length; i += 3) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n data[i] = Y - 179.456 + 1.402 * Cr;\n data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n data[i + 2] = Y - 226.816 + 1.772 * Cb;\n }\n return data;\n }\n\n _convertYcckToRgb(data) {\n let Y, Cb, Cr, k;\n let offset = 0;\n for (let i = 0, length = data.length; i < length; i += 4) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n k = data[i + 3];\n\n data[offset++] =\n -122.67195406894 +\n Cb *\n (-6.60635669420364e-5 * Cb +\n 0.000437130475926232 * Cr -\n 5.4080610064599e-5 * Y +\n 0.00048449797120281 * k -\n 0.154362151871126) +\n Cr *\n (-0.000957964378445773 * Cr +\n 0.000817076911346625 * Y -\n 0.00477271405408747 * k +\n 1.53380253221734) +\n Y *\n (0.000961250184130688 * Y -\n 0.00266257332283933 * k +\n 0.48357088451265) +\n k * (-0.000336197177618394 * k + 0.484791561490776);\n\n data[offset++] =\n 107.268039397724 +\n Cb *\n (2.19927104525741e-5 * Cb -\n 0.000640992018297945 * Cr +\n 0.000659397001245577 * Y +\n 0.000426105652938837 * k -\n 0.176491792462875) +\n Cr *\n (-0.000778269941513683 * Cr +\n 0.00130872261408275 * Y +\n 0.000770482631801132 * k -\n 0.151051492775562) +\n Y *\n (0.00126935368114843 * Y -\n 0.00265090189010898 * k +\n 0.25802910206845) +\n k * (-0.000318913117588328 * k - 0.213742400323665);\n\n data[offset++] =\n -20.810012546947 +\n Cb *\n (-0.000570115196973677 * Cb -\n 2.63409051004589e-5 * Cr +\n 0.0020741088115012 * Y -\n 0.00288260236853442 * k +\n 0.814272968359295) +\n Cr *\n (-1.53496057440975e-5 * Cr -\n 0.000132689043961446 * Y +\n 0.000560833691242812 * k -\n 0.195152027534049) +\n Y *\n (0.00174418132927582 * Y -\n 0.00255243321439347 * k +\n 0.116935020465145) +\n k * (-0.000343531996510555 * k + 0.24165260232407);\n }\n // Ensure that only the converted RGB data is returned.\n return data.subarray(0, offset);\n }\n\n _convertYcckToCmyk(data) {\n let Y, Cb, Cr;\n for (let i = 0, length = data.length; i < length; i += 4) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n data[i] = 434.456 - Y - 1.402 * Cr;\n data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr;\n data[i + 2] = 481.816 - Y - 1.772 * Cb;\n // K in data[i + 3] is unchanged\n }\n return data;\n }\n\n _convertCmykToRgb(data) {\n let c, m, y, k;\n let offset = 0;\n for (let i = 0, length = data.length; i < length; i += 4) {\n c = data[i];\n m = data[i + 1];\n y = data[i + 2];\n k = data[i + 3];\n\n data[offset++] =\n 255 +\n c *\n (-0.00006747147073602441 * c +\n 0.0008379262121013727 * m +\n 0.0002894718188643294 * y +\n 0.003264231057537806 * k -\n 1.1185611867203937) +\n m *\n (0.000026374107616089405 * m -\n 0.00008626949158638572 * y -\n 0.0002748769067499491 * k -\n 0.02155688794978967) +\n y *\n (-0.00003878099212869363 * y -\n 0.0003267808279485286 * k +\n 0.0686742238595345) -\n k * (0.0003361971776183937 * k + 0.7430659151342254);\n\n data[offset++] =\n 255 +\n c *\n (0.00013596372813588848 * c +\n 0.000924537132573585 * m +\n 0.00010567359618683593 * y +\n 0.0004791864687436512 * k -\n 0.3109689587515875) +\n m *\n (-0.00023545346108370344 * m +\n 0.0002702845253534714 * y +\n 0.0020200308977307156 * k -\n 0.7488052167015494) +\n y *\n (0.00006834815998235662 * y +\n 0.00015168452363460973 * k -\n 0.09751927774728933) -\n k * (0.0003189131175883281 * k + 0.7364883807733168);\n\n data[offset++] =\n 255 +\n c *\n (0.000013598650411385307 * c +\n 0.00012423956175490851 * m +\n 0.0004751985097583589 * y -\n 0.0000036729317476630422 * k -\n 0.05562186980264034) +\n m *\n (0.00016141380598724676 * m +\n 0.0009692239130725186 * y +\n 0.0007782692450036253 * k -\n 0.44015232367526463) +\n y *\n (5.068882914068769e-7 * y +\n 0.0017778369011375071 * k -\n 0.7591454649749609) -\n k * (0.0003435319965105553 * k + 0.7063770186160144);\n }\n // Ensure that only the converted RGB data is returned.\n return data.subarray(0, offset);\n }\n\n getData({ width, height, forceRGB = false, isSourcePDF = false }) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n isSourcePDF === true,\n 'JpegImage.getData: Unexpected \"isSourcePDF\" value for PDF files.'\n );\n }\n if (this.numComponents > 4) {\n throw new JpegError(\"Unsupported color mode\");\n }\n // Type of data: Uint8ClampedArray(width * height * numComponents)\n const data = this._getLinearizedBlockData(width, height, isSourcePDF);\n\n if (this.numComponents === 1 && forceRGB) {\n const dataLength = data.length;\n const rgbData = new Uint8ClampedArray(dataLength * 3);\n let offset = 0;\n for (let i = 0; i < dataLength; i++) {\n const grayColor = data[i];\n rgbData[offset++] = grayColor;\n rgbData[offset++] = grayColor;\n rgbData[offset++] = grayColor;\n }\n return rgbData;\n } else if (this.numComponents === 3 && this._isColorConversionNeeded) {\n return this._convertYccToRgb(data);\n } else if (this.numComponents === 4) {\n if (this._isColorConversionNeeded) {\n if (forceRGB) {\n return this._convertYcckToRgb(data);\n }\n return this._convertYcckToCmyk(data);\n } else if (forceRGB) {\n return this._convertCmykToRgb(data);\n }\n }\n return data;\n }\n}\n\nexport { JpegImage };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { JpxImage } from \"./jpx.js\";\nimport { shadow } from \"../shared/util.js\";\n\n/**\n * For JPEG 2000's we use a library to decode these images and\n * the stream behaves like all the other DecodeStreams.\n */\nclass JpxStream extends DecodeStream {\n constructor(stream, maybeLength, params) {\n super(maybeLength);\n\n this.stream = stream;\n this.dict = stream.dict;\n this.maybeLength = maybeLength;\n this.params = params;\n }\n\n get bytes() {\n // If `this.maybeLength` is null, we'll get the entire stream.\n return shadow(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n }\n\n ensureBuffer(requested) {\n // No-op, since `this.readBlock` will always parse the entire image and\n // directly insert all of its data into `this.buffer`.\n }\n\n readBlock() {\n if (this.eof) {\n return;\n }\n const jpxImage = new JpxImage();\n jpxImage.parse(this.bytes);\n\n const width = jpxImage.width;\n const height = jpxImage.height;\n const componentsCount = jpxImage.componentsCount;\n const tileCount = jpxImage.tiles.length;\n if (tileCount === 1) {\n this.buffer = jpxImage.tiles[0].items;\n } else {\n const data = new Uint8ClampedArray(width * height * componentsCount);\n\n for (let k = 0; k < tileCount; k++) {\n const tileComponents = jpxImage.tiles[k];\n const tileWidth = tileComponents.width;\n const tileHeight = tileComponents.height;\n const tileLeft = tileComponents.left;\n const tileTop = tileComponents.top;\n\n const src = tileComponents.items;\n let srcPosition = 0;\n let dataPosition = (width * tileTop + tileLeft) * componentsCount;\n const imgRowSize = width * componentsCount;\n const tileRowSize = tileWidth * componentsCount;\n\n for (let j = 0; j < tileHeight; j++) {\n const rowBytes = src.subarray(srcPosition, srcPosition + tileRowSize);\n data.set(rowBytes, dataPosition);\n srcPosition += tileRowSize;\n dataPosition += imgRowSize;\n }\n }\n this.buffer = data;\n }\n this.bufferLength = this.buffer.length;\n this.eof = true;\n }\n}\n\nexport { JpxStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseException, info, unreachable, warn } from \"../shared/util.js\";\nimport { log2, readUint16, readUint32 } from \"./core_utils.js\";\nimport { ArithmeticDecoder } from \"./arithmetic_decoder.js\";\n\nclass JpxError extends BaseException {\n constructor(msg) {\n super(`JPX error: ${msg}`, \"JpxError\");\n }\n}\n\n// Table E.1\nconst SubbandsGainLog2 = {\n LL: 0,\n LH: 1,\n HL: 1,\n HH: 2,\n};\n\nclass JpxImage {\n constructor() {\n this.failOnCorruptedImage = false;\n }\n\n parse(data) {\n const head = readUint16(data, 0);\n // No box header, immediate start of codestream (SOC)\n if (head === 0xff4f) {\n this.parseCodestream(data, 0, data.length);\n return;\n }\n\n const length = data.length;\n let position = 0;\n while (position < length) {\n let headerSize = 8;\n let lbox = readUint32(data, position);\n const tbox = readUint32(data, position + 4);\n position += headerSize;\n if (lbox === 1) {\n // XLBox: read UInt64 according to spec.\n // JavaScript's int precision of 53 bit should be sufficient here.\n lbox =\n readUint32(data, position) * 4294967296 +\n readUint32(data, position + 4);\n position += 8;\n headerSize += 8;\n }\n if (lbox === 0) {\n lbox = length - position + headerSize;\n }\n if (lbox < headerSize) {\n throw new JpxError(\"Invalid box field size\");\n }\n const dataLength = lbox - headerSize;\n let jumpDataLength = true;\n switch (tbox) {\n case 0x6a703268: // 'jp2h'\n jumpDataLength = false; // parsing child boxes\n break;\n case 0x636f6c72: // 'colr'\n // Colorspaces are not used, the CS from the PDF is used.\n const method = data[position];\n if (method === 1) {\n // enumerated colorspace\n const colorspace = readUint32(data, position + 3);\n switch (colorspace) {\n case 16: // this indicates a sRGB colorspace\n case 17: // this indicates a grayscale colorspace\n case 18: // this indicates a YUV colorspace\n break;\n default:\n warn(\"Unknown colorspace \" + colorspace);\n break;\n }\n } else if (method === 2) {\n info(\"ICC profile not supported\");\n }\n break;\n case 0x6a703263: // 'jp2c'\n this.parseCodestream(data, position, position + dataLength);\n break;\n case 0x6a502020: // 'jP\\024\\024'\n if (readUint32(data, position) !== 0x0d0a870a) {\n warn(\"Invalid JP2 signature\");\n }\n break;\n // The following header types are valid but currently not used:\n case 0x6a501a1a: // 'jP\\032\\032'\n case 0x66747970: // 'ftyp'\n case 0x72726571: // 'rreq'\n case 0x72657320: // 'res '\n case 0x69686472: // 'ihdr'\n break;\n default:\n const headerType = String.fromCharCode(\n (tbox >> 24) & 0xff,\n (tbox >> 16) & 0xff,\n (tbox >> 8) & 0xff,\n tbox & 0xff\n );\n warn(`Unsupported header type ${tbox} (${headerType}).`);\n break;\n }\n if (jumpDataLength) {\n position += dataLength;\n }\n }\n }\n\n parseImageProperties(stream) {\n let newByte = stream.getByte();\n while (newByte >= 0) {\n const oldByte = newByte;\n newByte = stream.getByte();\n const code = (oldByte << 8) | newByte;\n // Image and tile size (SIZ)\n if (code === 0xff51) {\n stream.skip(4);\n const Xsiz = stream.getInt32() >>> 0; // Byte 4\n const Ysiz = stream.getInt32() >>> 0; // Byte 8\n const XOsiz = stream.getInt32() >>> 0; // Byte 12\n const YOsiz = stream.getInt32() >>> 0; // Byte 16\n stream.skip(16);\n const Csiz = stream.getUint16(); // Byte 36\n this.width = Xsiz - XOsiz;\n this.height = Ysiz - YOsiz;\n this.componentsCount = Csiz;\n // Results are always returned as `Uint8ClampedArray`s.\n this.bitsPerComponent = 8;\n return;\n }\n }\n throw new JpxError(\"No size marker found in JPX stream\");\n }\n\n parseCodestream(data, start, end) {\n const context = {};\n let doNotRecover = false;\n try {\n let position = start;\n while (position + 1 < end) {\n const code = readUint16(data, position);\n position += 2;\n\n let length = 0,\n j,\n sqcd,\n spqcds,\n spqcdSize,\n scalarExpounded,\n tile;\n switch (code) {\n case 0xff4f: // Start of codestream (SOC)\n context.mainHeader = true;\n break;\n case 0xffd9: // End of codestream (EOC)\n break;\n case 0xff51: // Image and tile size (SIZ)\n length = readUint16(data, position);\n const siz = {};\n siz.Xsiz = readUint32(data, position + 4);\n siz.Ysiz = readUint32(data, position + 8);\n siz.XOsiz = readUint32(data, position + 12);\n siz.YOsiz = readUint32(data, position + 16);\n siz.XTsiz = readUint32(data, position + 20);\n siz.YTsiz = readUint32(data, position + 24);\n siz.XTOsiz = readUint32(data, position + 28);\n siz.YTOsiz = readUint32(data, position + 32);\n const componentsCount = readUint16(data, position + 36);\n siz.Csiz = componentsCount;\n const components = [];\n j = position + 38;\n for (let i = 0; i < componentsCount; i++) {\n const component = {\n precision: (data[j] & 0x7f) + 1,\n isSigned: !!(data[j] & 0x80),\n XRsiz: data[j + 1],\n YRsiz: data[j + 2],\n };\n j += 3;\n calculateComponentDimensions(component, siz);\n components.push(component);\n }\n context.SIZ = siz;\n context.components = components;\n calculateTileGrids(context, components);\n context.QCC = [];\n context.COC = [];\n break;\n case 0xff5c: // Quantization default (QCD)\n length = readUint16(data, position);\n const qcd = {};\n j = position + 2;\n sqcd = data[j++];\n switch (sqcd & 0x1f) {\n case 0:\n spqcdSize = 8;\n scalarExpounded = true;\n break;\n case 1:\n spqcdSize = 16;\n scalarExpounded = false;\n break;\n case 2:\n spqcdSize = 16;\n scalarExpounded = true;\n break;\n default:\n throw new Error(\"Invalid SQcd value \" + sqcd);\n }\n qcd.noQuantization = spqcdSize === 8;\n qcd.scalarExpounded = scalarExpounded;\n qcd.guardBits = sqcd >> 5;\n spqcds = [];\n while (j < length + position) {\n const spqcd = {};\n if (spqcdSize === 8) {\n spqcd.epsilon = data[j++] >> 3;\n spqcd.mu = 0;\n } else {\n spqcd.epsilon = data[j] >> 3;\n spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1];\n j += 2;\n }\n spqcds.push(spqcd);\n }\n qcd.SPqcds = spqcds;\n if (context.mainHeader) {\n context.QCD = qcd;\n } else {\n context.currentTile.QCD = qcd;\n context.currentTile.QCC = [];\n }\n break;\n case 0xff5d: // Quantization component (QCC)\n length = readUint16(data, position);\n const qcc = {};\n j = position + 2;\n let cqcc;\n if (context.SIZ.Csiz < 257) {\n cqcc = data[j++];\n } else {\n cqcc = readUint16(data, j);\n j += 2;\n }\n sqcd = data[j++];\n switch (sqcd & 0x1f) {\n case 0:\n spqcdSize = 8;\n scalarExpounded = true;\n break;\n case 1:\n spqcdSize = 16;\n scalarExpounded = false;\n break;\n case 2:\n spqcdSize = 16;\n scalarExpounded = true;\n break;\n default:\n throw new Error(\"Invalid SQcd value \" + sqcd);\n }\n qcc.noQuantization = spqcdSize === 8;\n qcc.scalarExpounded = scalarExpounded;\n qcc.guardBits = sqcd >> 5;\n spqcds = [];\n while (j < length + position) {\n const spqcd = {};\n if (spqcdSize === 8) {\n spqcd.epsilon = data[j++] >> 3;\n spqcd.mu = 0;\n } else {\n spqcd.epsilon = data[j] >> 3;\n spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1];\n j += 2;\n }\n spqcds.push(spqcd);\n }\n qcc.SPqcds = spqcds;\n if (context.mainHeader) {\n context.QCC[cqcc] = qcc;\n } else {\n context.currentTile.QCC[cqcc] = qcc;\n }\n break;\n case 0xff52: // Coding style default (COD)\n length = readUint16(data, position);\n const cod = {};\n j = position + 2;\n const scod = data[j++];\n cod.entropyCoderWithCustomPrecincts = !!(scod & 1);\n cod.sopMarkerUsed = !!(scod & 2);\n cod.ephMarkerUsed = !!(scod & 4);\n cod.progressionOrder = data[j++];\n cod.layersCount = readUint16(data, j);\n j += 2;\n cod.multipleComponentTransform = data[j++];\n\n cod.decompositionLevelsCount = data[j++];\n cod.xcb = (data[j++] & 0xf) + 2;\n cod.ycb = (data[j++] & 0xf) + 2;\n const blockStyle = data[j++];\n cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1);\n cod.resetContextProbabilities = !!(blockStyle & 2);\n cod.terminationOnEachCodingPass = !!(blockStyle & 4);\n cod.verticallyStripe = !!(blockStyle & 8);\n cod.predictableTermination = !!(blockStyle & 16);\n cod.segmentationSymbolUsed = !!(blockStyle & 32);\n cod.reversibleTransformation = data[j++];\n if (cod.entropyCoderWithCustomPrecincts) {\n const precinctsSizes = [];\n while (j < length + position) {\n const precinctsSize = data[j++];\n precinctsSizes.push({\n PPx: precinctsSize & 0xf,\n PPy: precinctsSize >> 4,\n });\n }\n cod.precinctsSizes = precinctsSizes;\n }\n const unsupported = [];\n if (cod.selectiveArithmeticCodingBypass) {\n unsupported.push(\"selectiveArithmeticCodingBypass\");\n }\n if (cod.terminationOnEachCodingPass) {\n unsupported.push(\"terminationOnEachCodingPass\");\n }\n if (cod.verticallyStripe) {\n unsupported.push(\"verticallyStripe\");\n }\n if (cod.predictableTermination) {\n unsupported.push(\"predictableTermination\");\n }\n if (unsupported.length > 0) {\n doNotRecover = true;\n warn(`JPX: Unsupported COD options (${unsupported.join(\", \")}).`);\n }\n if (context.mainHeader) {\n context.COD = cod;\n } else {\n context.currentTile.COD = cod;\n context.currentTile.COC = [];\n }\n break;\n case 0xff90: // Start of tile-part (SOT)\n length = readUint16(data, position);\n tile = {};\n tile.index = readUint16(data, position + 2);\n tile.length = readUint32(data, position + 4);\n tile.dataEnd = tile.length + position - 2;\n tile.partIndex = data[position + 8];\n tile.partsCount = data[position + 9];\n\n context.mainHeader = false;\n if (tile.partIndex === 0) {\n // reset component specific settings\n tile.COD = context.COD;\n tile.COC = context.COC.slice(0); // clone of the global COC\n tile.QCD = context.QCD;\n tile.QCC = context.QCC.slice(0); // clone of the global COC\n }\n context.currentTile = tile;\n break;\n case 0xff93: // Start of data (SOD)\n tile = context.currentTile;\n if (tile.partIndex === 0) {\n initializeTile(context, tile.index);\n buildPackets(context);\n }\n\n // moving to the end of the data\n length = tile.dataEnd - position;\n parseTilePackets(context, data, position, length);\n break;\n case 0xff53: // Coding style component (COC)\n warn(\"JPX: Codestream code 0xFF53 (COC) is not implemented.\");\n /* falls through */\n case 0xff55: // Tile-part lengths, main header (TLM)\n case 0xff57: // Packet length, main header (PLM)\n case 0xff58: // Packet length, tile-part header (PLT)\n case 0xff64: // Comment (COM)\n length = readUint16(data, position);\n // skipping content\n break;\n default:\n throw new Error(\"Unknown codestream code: \" + code.toString(16));\n }\n position += length;\n }\n } catch (e) {\n if (doNotRecover || this.failOnCorruptedImage) {\n throw new JpxError(e.message);\n } else {\n warn(`JPX: Trying to recover from: \"${e.message}\".`);\n }\n }\n this.tiles = transformComponents(context);\n this.width = context.SIZ.Xsiz - context.SIZ.XOsiz;\n this.height = context.SIZ.Ysiz - context.SIZ.YOsiz;\n this.componentsCount = context.SIZ.Csiz;\n }\n}\n\nfunction calculateComponentDimensions(component, siz) {\n // Section B.2 Component mapping\n component.x0 = Math.ceil(siz.XOsiz / component.XRsiz);\n component.x1 = Math.ceil(siz.Xsiz / component.XRsiz);\n component.y0 = Math.ceil(siz.YOsiz / component.YRsiz);\n component.y1 = Math.ceil(siz.Ysiz / component.YRsiz);\n component.width = component.x1 - component.x0;\n component.height = component.y1 - component.y0;\n}\nfunction calculateTileGrids(context, components) {\n const siz = context.SIZ;\n // Section B.3 Division into tile and tile-components\n const tiles = [];\n let tile;\n const numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz);\n const numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz);\n for (let q = 0; q < numYtiles; q++) {\n for (let p = 0; p < numXtiles; p++) {\n tile = {};\n tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz);\n tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz);\n tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz);\n tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz);\n tile.width = tile.tx1 - tile.tx0;\n tile.height = tile.ty1 - tile.ty0;\n tile.components = [];\n tiles.push(tile);\n }\n }\n context.tiles = tiles;\n\n const componentsCount = siz.Csiz;\n for (let i = 0, ii = componentsCount; i < ii; i++) {\n const component = components[i];\n for (let j = 0, jj = tiles.length; j < jj; j++) {\n const tileComponent = {};\n tile = tiles[j];\n tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz);\n tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz);\n tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz);\n tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz);\n tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0;\n tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0;\n tile.components[i] = tileComponent;\n }\n }\n}\nfunction getBlocksDimensions(context, component, r) {\n const codOrCoc = component.codingStyleParameters;\n const result = {};\n if (!codOrCoc.entropyCoderWithCustomPrecincts) {\n result.PPx = 15;\n result.PPy = 15;\n } else {\n result.PPx = codOrCoc.precinctsSizes[r].PPx;\n result.PPy = codOrCoc.precinctsSizes[r].PPy;\n }\n // calculate codeblock size as described in section B.7\n result.xcb_ =\n r > 0\n ? Math.min(codOrCoc.xcb, result.PPx - 1)\n : Math.min(codOrCoc.xcb, result.PPx);\n result.ycb_ =\n r > 0\n ? Math.min(codOrCoc.ycb, result.PPy - 1)\n : Math.min(codOrCoc.ycb, result.PPy);\n return result;\n}\nfunction buildPrecincts(context, resolution, dimensions) {\n // Section B.6 Division resolution to precincts\n const precinctWidth = 1 << dimensions.PPx;\n const precinctHeight = 1 << dimensions.PPy;\n // Jasper introduces codeblock groups for mapping each subband codeblocks\n // to precincts. Precinct partition divides a resolution according to width\n // and height parameters. The subband that belongs to the resolution level\n // has a different size than the level, unless it is the zero resolution.\n\n // From Jasper documentation: jpeg2000.pdf, section K: Tier-2 coding:\n // The precinct partitioning for a particular subband is derived from a\n // partitioning of its parent LL band (i.e., the LL band at the next higher\n // resolution level)... The LL band associated with each resolution level is\n // divided into precincts... Each of the resulting precinct regions is then\n // mapped into its child subbands (if any) at the next lower resolution\n // level. This is accomplished by using the coordinate transformation\n // (u, v) = (ceil(x/2), ceil(y/2)) where (x, y) and (u, v) are the\n // coordinates of a point in the LL band and child subband, respectively.\n const isZeroRes = resolution.resLevel === 0;\n const precinctWidthInSubband = 1 << (dimensions.PPx + (isZeroRes ? 0 : -1));\n const precinctHeightInSubband = 1 << (dimensions.PPy + (isZeroRes ? 0 : -1));\n const numprecinctswide =\n resolution.trx1 > resolution.trx0\n ? Math.ceil(resolution.trx1 / precinctWidth) -\n Math.floor(resolution.trx0 / precinctWidth)\n : 0;\n const numprecinctshigh =\n resolution.try1 > resolution.try0\n ? Math.ceil(resolution.try1 / precinctHeight) -\n Math.floor(resolution.try0 / precinctHeight)\n : 0;\n const numprecincts = numprecinctswide * numprecinctshigh;\n\n resolution.precinctParameters = {\n precinctWidth,\n precinctHeight,\n numprecinctswide,\n numprecinctshigh,\n numprecincts,\n precinctWidthInSubband,\n precinctHeightInSubband,\n };\n}\nfunction buildCodeblocks(context, subband, dimensions) {\n // Section B.7 Division sub-band into code-blocks\n const xcb_ = dimensions.xcb_;\n const ycb_ = dimensions.ycb_;\n const codeblockWidth = 1 << xcb_;\n const codeblockHeight = 1 << ycb_;\n const cbx0 = subband.tbx0 >> xcb_;\n const cby0 = subband.tby0 >> ycb_;\n const cbx1 = (subband.tbx1 + codeblockWidth - 1) >> xcb_;\n const cby1 = (subband.tby1 + codeblockHeight - 1) >> ycb_;\n const precinctParameters = subband.resolution.precinctParameters;\n const codeblocks = [];\n const precincts = [];\n let i, j, codeblock, precinctNumber;\n for (j = cby0; j < cby1; j++) {\n for (i = cbx0; i < cbx1; i++) {\n codeblock = {\n cbx: i,\n cby: j,\n tbx0: codeblockWidth * i,\n tby0: codeblockHeight * j,\n tbx1: codeblockWidth * (i + 1),\n tby1: codeblockHeight * (j + 1),\n };\n\n codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0);\n codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0);\n codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1);\n codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1);\n\n // Calculate precinct number for this codeblock, codeblock position\n // should be relative to its subband, use actual dimension and position\n // See comment about codeblock group width and height\n const pi = Math.floor(\n (codeblock.tbx0_ - subband.tbx0) /\n precinctParameters.precinctWidthInSubband\n );\n const pj = Math.floor(\n (codeblock.tby0_ - subband.tby0) /\n precinctParameters.precinctHeightInSubband\n );\n precinctNumber = pi + pj * precinctParameters.numprecinctswide;\n\n codeblock.precinctNumber = precinctNumber;\n codeblock.subbandType = subband.type;\n codeblock.Lblock = 3;\n\n if (\n codeblock.tbx1_ <= codeblock.tbx0_ ||\n codeblock.tby1_ <= codeblock.tby0_\n ) {\n continue;\n }\n codeblocks.push(codeblock);\n // building precinct for the sub-band\n let precinct = precincts[precinctNumber];\n if (precinct !== undefined) {\n if (i < precinct.cbxMin) {\n precinct.cbxMin = i;\n } else if (i > precinct.cbxMax) {\n precinct.cbxMax = i;\n }\n if (j < precinct.cbyMin) {\n precinct.cbxMin = j;\n } else if (j > precinct.cbyMax) {\n precinct.cbyMax = j;\n }\n } else {\n precincts[precinctNumber] = precinct = {\n cbxMin: i,\n cbyMin: j,\n cbxMax: i,\n cbyMax: j,\n };\n }\n codeblock.precinct = precinct;\n }\n }\n subband.codeblockParameters = {\n codeblockWidth: xcb_,\n codeblockHeight: ycb_,\n numcodeblockwide: cbx1 - cbx0 + 1,\n numcodeblockhigh: cby1 - cby0 + 1,\n };\n subband.codeblocks = codeblocks;\n subband.precincts = precincts;\n}\nfunction createPacket(resolution, precinctNumber, layerNumber) {\n const precinctCodeblocks = [];\n // Section B.10.8 Order of info in packet\n const subbands = resolution.subbands;\n // sub-bands already ordered in 'LL', 'HL', 'LH', and 'HH' sequence\n for (let i = 0, ii = subbands.length; i < ii; i++) {\n const subband = subbands[i];\n const codeblocks = subband.codeblocks;\n for (let j = 0, jj = codeblocks.length; j < jj; j++) {\n const codeblock = codeblocks[j];\n if (codeblock.precinctNumber !== precinctNumber) {\n continue;\n }\n precinctCodeblocks.push(codeblock);\n }\n }\n return {\n layerNumber,\n codeblocks: precinctCodeblocks,\n };\n}\nfunction LayerResolutionComponentPositionIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n let maxDecompositionLevelsCount = 0;\n for (let q = 0; q < componentsCount; q++) {\n maxDecompositionLevelsCount = Math.max(\n maxDecompositionLevelsCount,\n tile.components[q].codingStyleParameters.decompositionLevelsCount\n );\n }\n\n let l = 0,\n r = 0,\n i = 0,\n k = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.1 Layer-resolution-component-position\n for (; l < layersCount; l++) {\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; i < componentsCount; i++) {\n const component = tile.components[i];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n\n const resolution = component.resolutions[r];\n const numprecincts = resolution.precinctParameters.numprecincts;\n for (; k < numprecincts; ) {\n const packet = createPacket(resolution, k, l);\n k++;\n return packet;\n }\n k = 0;\n }\n i = 0;\n }\n r = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction ResolutionLayerComponentPositionIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n let maxDecompositionLevelsCount = 0;\n for (let q = 0; q < componentsCount; q++) {\n maxDecompositionLevelsCount = Math.max(\n maxDecompositionLevelsCount,\n tile.components[q].codingStyleParameters.decompositionLevelsCount\n );\n }\n\n let r = 0,\n l = 0,\n i = 0,\n k = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.2 Resolution-layer-component-position\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; l < layersCount; l++) {\n for (; i < componentsCount; i++) {\n const component = tile.components[i];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n\n const resolution = component.resolutions[r];\n const numprecincts = resolution.precinctParameters.numprecincts;\n for (; k < numprecincts; ) {\n const packet = createPacket(resolution, k, l);\n k++;\n return packet;\n }\n k = 0;\n }\n i = 0;\n }\n l = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction ResolutionPositionComponentLayerIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n let l, r, c, p;\n let maxDecompositionLevelsCount = 0;\n for (c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n maxDecompositionLevelsCount = Math.max(\n maxDecompositionLevelsCount,\n component.codingStyleParameters.decompositionLevelsCount\n );\n }\n const maxNumPrecinctsInLevel = new Int32Array(\n maxDecompositionLevelsCount + 1\n );\n for (r = 0; r <= maxDecompositionLevelsCount; ++r) {\n let maxNumPrecincts = 0;\n for (c = 0; c < componentsCount; ++c) {\n const resolutions = tile.components[c].resolutions;\n if (r < resolutions.length) {\n maxNumPrecincts = Math.max(\n maxNumPrecincts,\n resolutions[r].precinctParameters.numprecincts\n );\n }\n }\n maxNumPrecinctsInLevel[r] = maxNumPrecincts;\n }\n l = 0;\n r = 0;\n c = 0;\n p = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.3 Resolution-position-component-layer\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; p < maxNumPrecinctsInLevel[r]; p++) {\n for (; c < componentsCount; c++) {\n const component = tile.components[c];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n const resolution = component.resolutions[r];\n const numprecincts = resolution.precinctParameters.numprecincts;\n if (p >= numprecincts) {\n continue;\n }\n for (; l < layersCount; ) {\n const packet = createPacket(resolution, p, l);\n l++;\n return packet;\n }\n l = 0;\n }\n c = 0;\n }\n p = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction PositionComponentResolutionLayerIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n const precinctsSizes = getPrecinctSizesInImageScale(tile);\n const precinctsIterationSizes = precinctsSizes;\n let l = 0,\n r = 0,\n c = 0,\n px = 0,\n py = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.4 Position-component-resolution-layer\n for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n for (; px < precinctsIterationSizes.maxNumWide; px++) {\n for (; c < componentsCount; c++) {\n const component = tile.components[c];\n const decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n for (; r <= decompositionLevelsCount; r++) {\n const resolution = component.resolutions[r];\n const sizeInImageScale =\n precinctsSizes.components[c].resolutions[r];\n const k = getPrecinctIndexIfExist(\n px,\n py,\n sizeInImageScale,\n precinctsIterationSizes,\n resolution\n );\n if (k === null) {\n continue;\n }\n for (; l < layersCount; ) {\n const packet = createPacket(resolution, k, l);\n l++;\n return packet;\n }\n l = 0;\n }\n r = 0;\n }\n c = 0;\n }\n px = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction ComponentPositionResolutionLayerIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n const precinctsSizes = getPrecinctSizesInImageScale(tile);\n let l = 0,\n r = 0,\n c = 0,\n px = 0,\n py = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.5 Component-position-resolution-layer\n for (; c < componentsCount; ++c) {\n const component = tile.components[c];\n const precinctsIterationSizes = precinctsSizes.components[c];\n const decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n for (; px < precinctsIterationSizes.maxNumWide; px++) {\n for (; r <= decompositionLevelsCount; r++) {\n const resolution = component.resolutions[r];\n const sizeInImageScale = precinctsIterationSizes.resolutions[r];\n const k = getPrecinctIndexIfExist(\n px,\n py,\n sizeInImageScale,\n precinctsIterationSizes,\n resolution\n );\n if (k === null) {\n continue;\n }\n for (; l < layersCount; ) {\n const packet = createPacket(resolution, k, l);\n l++;\n return packet;\n }\n l = 0;\n }\n r = 0;\n }\n px = 0;\n }\n py = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction getPrecinctIndexIfExist(\n pxIndex,\n pyIndex,\n sizeInImageScale,\n precinctIterationSizes,\n resolution\n) {\n const posX = pxIndex * precinctIterationSizes.minWidth;\n const posY = pyIndex * precinctIterationSizes.minHeight;\n if (\n posX % sizeInImageScale.width !== 0 ||\n posY % sizeInImageScale.height !== 0\n ) {\n return null;\n }\n const startPrecinctRowIndex =\n (posY / sizeInImageScale.width) *\n resolution.precinctParameters.numprecinctswide;\n return posX / sizeInImageScale.height + startPrecinctRowIndex;\n}\nfunction getPrecinctSizesInImageScale(tile) {\n const componentsCount = tile.components.length;\n let minWidth = Number.MAX_VALUE;\n let minHeight = Number.MAX_VALUE;\n let maxNumWide = 0;\n let maxNumHigh = 0;\n const sizePerComponent = new Array(componentsCount);\n for (let c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n const decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n const sizePerResolution = new Array(decompositionLevelsCount + 1);\n let minWidthCurrentComponent = Number.MAX_VALUE;\n let minHeightCurrentComponent = Number.MAX_VALUE;\n let maxNumWideCurrentComponent = 0;\n let maxNumHighCurrentComponent = 0;\n let scale = 1;\n for (let r = decompositionLevelsCount; r >= 0; --r) {\n const resolution = component.resolutions[r];\n const widthCurrentResolution =\n scale * resolution.precinctParameters.precinctWidth;\n const heightCurrentResolution =\n scale * resolution.precinctParameters.precinctHeight;\n minWidthCurrentComponent = Math.min(\n minWidthCurrentComponent,\n widthCurrentResolution\n );\n minHeightCurrentComponent = Math.min(\n minHeightCurrentComponent,\n heightCurrentResolution\n );\n maxNumWideCurrentComponent = Math.max(\n maxNumWideCurrentComponent,\n resolution.precinctParameters.numprecinctswide\n );\n maxNumHighCurrentComponent = Math.max(\n maxNumHighCurrentComponent,\n resolution.precinctParameters.numprecinctshigh\n );\n sizePerResolution[r] = {\n width: widthCurrentResolution,\n height: heightCurrentResolution,\n };\n scale <<= 1;\n }\n minWidth = Math.min(minWidth, minWidthCurrentComponent);\n minHeight = Math.min(minHeight, minHeightCurrentComponent);\n maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent);\n maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent);\n sizePerComponent[c] = {\n resolutions: sizePerResolution,\n minWidth: minWidthCurrentComponent,\n minHeight: minHeightCurrentComponent,\n maxNumWide: maxNumWideCurrentComponent,\n maxNumHigh: maxNumHighCurrentComponent,\n };\n }\n return {\n components: sizePerComponent,\n minWidth,\n minHeight,\n maxNumWide,\n maxNumHigh,\n };\n}\nfunction buildPackets(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const componentsCount = siz.Csiz;\n // Creating resolutions and sub-bands for each component\n for (let c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n const decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n // Section B.5 Resolution levels and sub-bands\n const resolutions = [];\n const subbands = [];\n for (let r = 0; r <= decompositionLevelsCount; r++) {\n const blocksDimensions = getBlocksDimensions(context, component, r);\n const resolution = {};\n const scale = 1 << (decompositionLevelsCount - r);\n resolution.trx0 = Math.ceil(component.tcx0 / scale);\n resolution.try0 = Math.ceil(component.tcy0 / scale);\n resolution.trx1 = Math.ceil(component.tcx1 / scale);\n resolution.try1 = Math.ceil(component.tcy1 / scale);\n resolution.resLevel = r;\n buildPrecincts(context, resolution, blocksDimensions);\n resolutions.push(resolution);\n\n let subband;\n if (r === 0) {\n // one sub-band (LL) with last decomposition\n subband = {};\n subband.type = \"LL\";\n subband.tbx0 = Math.ceil(component.tcx0 / scale);\n subband.tby0 = Math.ceil(component.tcy0 / scale);\n subband.tbx1 = Math.ceil(component.tcx1 / scale);\n subband.tby1 = Math.ceil(component.tcy1 / scale);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolution.subbands = [subband];\n } else {\n const bscale = 1 << (decompositionLevelsCount - r + 1);\n const resolutionSubbands = [];\n // three sub-bands (HL, LH and HH) with rest of decompositions\n subband = {};\n subband.type = \"HL\";\n subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n subband.tby0 = Math.ceil(component.tcy0 / bscale);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n subband.tby1 = Math.ceil(component.tcy1 / bscale);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n\n subband = {};\n subband.type = \"LH\";\n subband.tbx0 = Math.ceil(component.tcx0 / bscale);\n subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale);\n subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n\n subband = {};\n subband.type = \"HH\";\n subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n\n resolution.subbands = resolutionSubbands;\n }\n }\n component.resolutions = resolutions;\n component.subbands = subbands;\n }\n // Generate the packets sequence\n const progressionOrder = tile.codingStyleDefaultParameters.progressionOrder;\n switch (progressionOrder) {\n case 0:\n tile.packetsIterator = new LayerResolutionComponentPositionIterator(\n context\n );\n break;\n case 1:\n tile.packetsIterator = new ResolutionLayerComponentPositionIterator(\n context\n );\n break;\n case 2:\n tile.packetsIterator = new ResolutionPositionComponentLayerIterator(\n context\n );\n break;\n case 3:\n tile.packetsIterator = new PositionComponentResolutionLayerIterator(\n context\n );\n break;\n case 4:\n tile.packetsIterator = new ComponentPositionResolutionLayerIterator(\n context\n );\n break;\n default:\n throw new JpxError(`Unsupported progression order ${progressionOrder}`);\n }\n}\nfunction parseTilePackets(context, data, offset, dataLength) {\n let position = 0;\n let buffer,\n bufferSize = 0,\n skipNextBit = false;\n function readBits(count) {\n while (bufferSize < count) {\n const b = data[offset + position];\n position++;\n if (skipNextBit) {\n buffer = (buffer << 7) | b;\n bufferSize += 7;\n skipNextBit = false;\n } else {\n buffer = (buffer << 8) | b;\n bufferSize += 8;\n }\n if (b === 0xff) {\n skipNextBit = true;\n }\n }\n bufferSize -= count;\n return (buffer >>> bufferSize) & ((1 << count) - 1);\n }\n function skipMarkerIfEqual(value) {\n if (\n data[offset + position - 1] === 0xff &&\n data[offset + position] === value\n ) {\n skipBytes(1);\n return true;\n } else if (\n data[offset + position] === 0xff &&\n data[offset + position + 1] === value\n ) {\n skipBytes(2);\n return true;\n }\n return false;\n }\n function skipBytes(count) {\n position += count;\n }\n function alignToByte() {\n bufferSize = 0;\n if (skipNextBit) {\n position++;\n skipNextBit = false;\n }\n }\n function readCodingpasses() {\n if (readBits(1) === 0) {\n return 1;\n }\n if (readBits(1) === 0) {\n return 2;\n }\n let value = readBits(2);\n if (value < 3) {\n return value + 3;\n }\n value = readBits(5);\n if (value < 31) {\n return value + 6;\n }\n value = readBits(7);\n return value + 37;\n }\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const sopMarkerUsed = context.COD.sopMarkerUsed;\n const ephMarkerUsed = context.COD.ephMarkerUsed;\n const packetsIterator = tile.packetsIterator;\n while (position < dataLength) {\n alignToByte();\n if (sopMarkerUsed && skipMarkerIfEqual(0x91)) {\n // Skip also marker segment length and packet sequence ID\n skipBytes(4);\n }\n const packet = packetsIterator.nextPacket();\n if (!readBits(1)) {\n continue;\n }\n const layerNumber = packet.layerNumber,\n queue = [];\n let codeblock;\n for (let i = 0, ii = packet.codeblocks.length; i < ii; i++) {\n codeblock = packet.codeblocks[i];\n let precinct = codeblock.precinct;\n const codeblockColumn = codeblock.cbx - precinct.cbxMin;\n const codeblockRow = codeblock.cby - precinct.cbyMin;\n let codeblockIncluded = false;\n let firstTimeInclusion = false;\n let valueReady, zeroBitPlanesTree;\n if (codeblock.included !== undefined) {\n codeblockIncluded = !!readBits(1);\n } else {\n // reading inclusion tree\n precinct = codeblock.precinct;\n let inclusionTree;\n if (precinct.inclusionTree !== undefined) {\n inclusionTree = precinct.inclusionTree;\n } else {\n // building inclusion and zero bit-planes trees\n const width = precinct.cbxMax - precinct.cbxMin + 1;\n const height = precinct.cbyMax - precinct.cbyMin + 1;\n inclusionTree = new InclusionTree(width, height, layerNumber);\n zeroBitPlanesTree = new TagTree(width, height);\n precinct.inclusionTree = inclusionTree;\n precinct.zeroBitPlanesTree = zeroBitPlanesTree;\n for (let l = 0; l < layerNumber; l++) {\n if (readBits(1) !== 0) {\n throw new JpxError(\"Invalid tag tree\");\n }\n }\n }\n\n if (inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber)) {\n while (true) {\n if (readBits(1)) {\n valueReady = !inclusionTree.nextLevel();\n if (valueReady) {\n codeblock.included = true;\n codeblockIncluded = firstTimeInclusion = true;\n break;\n }\n } else {\n inclusionTree.incrementValue(layerNumber);\n break;\n }\n }\n }\n }\n if (!codeblockIncluded) {\n continue;\n }\n if (firstTimeInclusion) {\n zeroBitPlanesTree = precinct.zeroBitPlanesTree;\n zeroBitPlanesTree.reset(codeblockColumn, codeblockRow);\n while (true) {\n if (readBits(1)) {\n valueReady = !zeroBitPlanesTree.nextLevel();\n if (valueReady) {\n break;\n }\n } else {\n zeroBitPlanesTree.incrementValue();\n }\n }\n codeblock.zeroBitPlanes = zeroBitPlanesTree.value;\n }\n const codingpasses = readCodingpasses();\n while (readBits(1)) {\n codeblock.Lblock++;\n }\n const codingpassesLog2 = log2(codingpasses);\n // rounding down log2\n const bits =\n (codingpasses < 1 << codingpassesLog2\n ? codingpassesLog2 - 1\n : codingpassesLog2) + codeblock.Lblock;\n const codedDataLength = readBits(bits);\n queue.push({\n codeblock,\n codingpasses,\n dataLength: codedDataLength,\n });\n }\n alignToByte();\n if (ephMarkerUsed) {\n skipMarkerIfEqual(0x92);\n }\n while (queue.length > 0) {\n const packetItem = queue.shift();\n codeblock = packetItem.codeblock;\n if (codeblock.data === undefined) {\n codeblock.data = [];\n }\n codeblock.data.push({\n data,\n start: offset + position,\n end: offset + position + packetItem.dataLength,\n codingpasses: packetItem.codingpasses,\n });\n position += packetItem.dataLength;\n }\n }\n return position;\n}\nfunction copyCoefficients(\n coefficients,\n levelWidth,\n levelHeight,\n subband,\n delta,\n mb,\n reversible,\n segmentationSymbolUsed,\n resetContextProbabilities\n) {\n const x0 = subband.tbx0;\n const y0 = subband.tby0;\n const width = subband.tbx1 - subband.tbx0;\n const codeblocks = subband.codeblocks;\n const right = subband.type.charAt(0) === \"H\" ? 1 : 0;\n const bottom = subband.type.charAt(1) === \"H\" ? levelWidth : 0;\n\n for (let i = 0, ii = codeblocks.length; i < ii; ++i) {\n const codeblock = codeblocks[i];\n const blockWidth = codeblock.tbx1_ - codeblock.tbx0_;\n const blockHeight = codeblock.tby1_ - codeblock.tby0_;\n if (blockWidth === 0 || blockHeight === 0) {\n continue;\n }\n if (codeblock.data === undefined) {\n continue;\n }\n\n const bitModel = new BitModel(\n blockWidth,\n blockHeight,\n codeblock.subbandType,\n codeblock.zeroBitPlanes,\n mb\n );\n let currentCodingpassType = 2; // first bit plane starts from cleanup\n\n // collect data\n const data = codeblock.data;\n let totalLength = 0,\n codingpasses = 0;\n let j, jj, dataItem;\n for (j = 0, jj = data.length; j < jj; j++) {\n dataItem = data[j];\n totalLength += dataItem.end - dataItem.start;\n codingpasses += dataItem.codingpasses;\n }\n const encodedData = new Uint8Array(totalLength);\n let position = 0;\n for (j = 0, jj = data.length; j < jj; j++) {\n dataItem = data[j];\n const chunk = dataItem.data.subarray(dataItem.start, dataItem.end);\n encodedData.set(chunk, position);\n position += chunk.length;\n }\n // decoding the item\n const decoder = new ArithmeticDecoder(encodedData, 0, totalLength);\n bitModel.setDecoder(decoder);\n\n for (j = 0; j < codingpasses; j++) {\n switch (currentCodingpassType) {\n case 0:\n bitModel.runSignificancePropagationPass();\n break;\n case 1:\n bitModel.runMagnitudeRefinementPass();\n break;\n case 2:\n bitModel.runCleanupPass();\n if (segmentationSymbolUsed) {\n bitModel.checkSegmentationSymbol();\n }\n break;\n }\n\n if (resetContextProbabilities) {\n bitModel.reset();\n }\n\n currentCodingpassType = (currentCodingpassType + 1) % 3;\n }\n\n let offset = codeblock.tbx0_ - x0 + (codeblock.tby0_ - y0) * width;\n const sign = bitModel.coefficentsSign;\n const magnitude = bitModel.coefficentsMagnitude;\n const bitsDecoded = bitModel.bitsDecoded;\n const magnitudeCorrection = reversible ? 0 : 0.5;\n let k, n, nb;\n position = 0;\n // Do the interleaving of Section F.3.3 here, so we do not need\n // to copy later. LL level is not interleaved, just copied.\n const interleave = subband.type !== \"LL\";\n for (j = 0; j < blockHeight; j++) {\n const row = (offset / width) | 0; // row in the non-interleaved subband\n const levelOffset = 2 * row * (levelWidth - width) + right + bottom;\n for (k = 0; k < blockWidth; k++) {\n n = magnitude[position];\n if (n !== 0) {\n n = (n + magnitudeCorrection) * delta;\n if (sign[position] !== 0) {\n n = -n;\n }\n nb = bitsDecoded[position];\n const pos = interleave ? levelOffset + (offset << 1) : offset;\n if (reversible && nb >= mb) {\n coefficients[pos] = n;\n } else {\n coefficients[pos] = n * (1 << (mb - nb));\n }\n }\n offset++;\n position++;\n }\n offset += width - blockWidth;\n }\n }\n}\nfunction transformTile(context, tile, c) {\n const component = tile.components[c];\n const codingStyleParameters = component.codingStyleParameters;\n const quantizationParameters = component.quantizationParameters;\n const decompositionLevelsCount =\n codingStyleParameters.decompositionLevelsCount;\n const spqcds = quantizationParameters.SPqcds;\n const scalarExpounded = quantizationParameters.scalarExpounded;\n const guardBits = quantizationParameters.guardBits;\n const segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed;\n const resetContextProbabilities =\n codingStyleParameters.resetContextProbabilities;\n const precision = context.components[c].precision;\n\n const reversible = codingStyleParameters.reversibleTransformation;\n const transform = reversible\n ? new ReversibleTransform()\n : new IrreversibleTransform();\n\n const subbandCoefficients = [];\n let b = 0;\n for (let i = 0; i <= decompositionLevelsCount; i++) {\n const resolution = component.resolutions[i];\n\n const width = resolution.trx1 - resolution.trx0;\n const height = resolution.try1 - resolution.try0;\n // Allocate space for the whole sublevel.\n const coefficients = new Float32Array(width * height);\n\n for (let j = 0, jj = resolution.subbands.length; j < jj; j++) {\n let mu, epsilon;\n if (!scalarExpounded) {\n // formula E-5\n mu = spqcds[0].mu;\n epsilon = spqcds[0].epsilon + (i > 0 ? 1 - i : 0);\n } else {\n mu = spqcds[b].mu;\n epsilon = spqcds[b].epsilon;\n b++;\n }\n\n const subband = resolution.subbands[j];\n const gainLog2 = SubbandsGainLog2[subband.type];\n\n // calculate quantization coefficient (Section E.1.1.1)\n const delta = reversible\n ? 1\n : 2 ** (precision + gainLog2 - epsilon) * (1 + mu / 2048);\n const mb = guardBits + epsilon - 1;\n\n // In the first resolution level, copyCoefficients will fill the\n // whole array with coefficients. In the succeeding passes,\n // copyCoefficients will consecutively fill in the values that belong\n // to the interleaved positions of the HL, LH, and HH coefficients.\n // The LL coefficients will then be interleaved in Transform.iterate().\n copyCoefficients(\n coefficients,\n width,\n height,\n subband,\n delta,\n mb,\n reversible,\n segmentationSymbolUsed,\n resetContextProbabilities\n );\n }\n subbandCoefficients.push({\n width,\n height,\n items: coefficients,\n });\n }\n\n const result = transform.calculate(\n subbandCoefficients,\n component.tcx0,\n component.tcy0\n );\n return {\n left: component.tcx0,\n top: component.tcy0,\n width: result.width,\n height: result.height,\n items: result.items,\n };\n}\nfunction transformComponents(context) {\n const siz = context.SIZ;\n const components = context.components;\n const componentsCount = siz.Csiz;\n const resultImages = [];\n for (let i = 0, ii = context.tiles.length; i < ii; i++) {\n const tile = context.tiles[i];\n const transformedTiles = [];\n for (let c = 0; c < componentsCount; c++) {\n transformedTiles[c] = transformTile(context, tile, c);\n }\n const tile0 = transformedTiles[0];\n const out = new Uint8ClampedArray(tile0.items.length * componentsCount);\n const result = {\n left: tile0.left,\n top: tile0.top,\n width: tile0.width,\n height: tile0.height,\n items: out,\n };\n\n // Section G.2.2 Inverse multi component transform\n let shift, offset;\n let pos = 0,\n j,\n jj,\n y0,\n y1,\n y2;\n if (tile.codingStyleDefaultParameters.multipleComponentTransform) {\n const fourComponents = componentsCount === 4;\n const y0items = transformedTiles[0].items;\n const y1items = transformedTiles[1].items;\n const y2items = transformedTiles[2].items;\n const y3items = fourComponents ? transformedTiles[3].items : null;\n\n // HACK: The multiple component transform formulas below assume that\n // all components have the same precision. With this in mind, we\n // compute shift and offset only once.\n shift = components[0].precision - 8;\n offset = (128 << shift) + 0.5;\n\n const component0 = tile.components[0];\n const alpha01 = componentsCount - 3;\n jj = y0items.length;\n if (!component0.codingStyleParameters.reversibleTransformation) {\n // inverse irreversible multiple component transform\n for (j = 0; j < jj; j++, pos += alpha01) {\n y0 = y0items[j] + offset;\n y1 = y1items[j];\n y2 = y2items[j];\n out[pos++] = (y0 + 1.402 * y2) >> shift;\n out[pos++] = (y0 - 0.34413 * y1 - 0.71414 * y2) >> shift;\n out[pos++] = (y0 + 1.772 * y1) >> shift;\n }\n } else {\n // inverse reversible multiple component transform\n for (j = 0; j < jj; j++, pos += alpha01) {\n y0 = y0items[j] + offset;\n y1 = y1items[j];\n y2 = y2items[j];\n const g = y0 - ((y2 + y1) >> 2);\n\n out[pos++] = (g + y2) >> shift;\n out[pos++] = g >> shift;\n out[pos++] = (g + y1) >> shift;\n }\n }\n if (fourComponents) {\n for (j = 0, pos = 3; j < jj; j++, pos += 4) {\n out[pos] = (y3items[j] + offset) >> shift;\n }\n }\n } else {\n // no multi-component transform\n for (let c = 0; c < componentsCount; c++) {\n const items = transformedTiles[c].items;\n shift = components[c].precision - 8;\n offset = (128 << shift) + 0.5;\n for (pos = c, j = 0, jj = items.length; j < jj; j++) {\n out[pos] = (items[j] + offset) >> shift;\n pos += componentsCount;\n }\n }\n }\n resultImages.push(result);\n }\n return resultImages;\n}\nfunction initializeTile(context, tileIndex) {\n const siz = context.SIZ;\n const componentsCount = siz.Csiz;\n const tile = context.tiles[tileIndex];\n for (let c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n const qcdOrQcc =\n context.currentTile.QCC[c] !== undefined\n ? context.currentTile.QCC[c]\n : context.currentTile.QCD;\n component.quantizationParameters = qcdOrQcc;\n const codOrCoc =\n context.currentTile.COC[c] !== undefined\n ? context.currentTile.COC[c]\n : context.currentTile.COD;\n component.codingStyleParameters = codOrCoc;\n }\n tile.codingStyleDefaultParameters = context.currentTile.COD;\n}\n\n// Section B.10.2 Tag trees\nclass TagTree {\n constructor(width, height) {\n const levelsLength = log2(Math.max(width, height)) + 1;\n this.levels = [];\n for (let i = 0; i < levelsLength; i++) {\n const level = {\n width,\n height,\n items: [],\n };\n this.levels.push(level);\n width = Math.ceil(width / 2);\n height = Math.ceil(height / 2);\n }\n }\n\n reset(i, j) {\n let currentLevel = 0,\n value = 0,\n level;\n while (currentLevel < this.levels.length) {\n level = this.levels[currentLevel];\n const index = i + j * level.width;\n if (level.items[index] !== undefined) {\n value = level.items[index];\n break;\n }\n level.index = index;\n i >>= 1;\n j >>= 1;\n currentLevel++;\n }\n currentLevel--;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n this.currentLevel = currentLevel;\n delete this.value;\n }\n\n incrementValue() {\n const level = this.levels[this.currentLevel];\n level.items[level.index]++;\n }\n\n nextLevel() {\n let currentLevel = this.currentLevel;\n let level = this.levels[currentLevel];\n const value = level.items[level.index];\n currentLevel--;\n if (currentLevel < 0) {\n this.value = value;\n return false;\n }\n\n this.currentLevel = currentLevel;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n return true;\n }\n}\n\nclass InclusionTree {\n constructor(width, height, defaultValue) {\n const levelsLength = log2(Math.max(width, height)) + 1;\n this.levels = [];\n for (let i = 0; i < levelsLength; i++) {\n const items = new Uint8Array(width * height);\n for (let j = 0, jj = items.length; j < jj; j++) {\n items[j] = defaultValue;\n }\n\n const level = {\n width,\n height,\n items,\n };\n this.levels.push(level);\n\n width = Math.ceil(width / 2);\n height = Math.ceil(height / 2);\n }\n }\n\n reset(i, j, stopValue) {\n let currentLevel = 0;\n while (currentLevel < this.levels.length) {\n const level = this.levels[currentLevel];\n const index = i + j * level.width;\n level.index = index;\n const value = level.items[index];\n\n if (value === 0xff) {\n break;\n }\n\n if (value > stopValue) {\n this.currentLevel = currentLevel;\n // already know about this one, propagating the value to top levels\n this.propagateValues();\n return false;\n }\n\n i >>= 1;\n j >>= 1;\n currentLevel++;\n }\n this.currentLevel = currentLevel - 1;\n return true;\n }\n\n incrementValue(stopValue) {\n const level = this.levels[this.currentLevel];\n level.items[level.index] = stopValue + 1;\n this.propagateValues();\n }\n\n propagateValues() {\n let levelIndex = this.currentLevel;\n let level = this.levels[levelIndex];\n const currentValue = level.items[level.index];\n while (--levelIndex >= 0) {\n level = this.levels[levelIndex];\n level.items[level.index] = currentValue;\n }\n }\n\n nextLevel() {\n let currentLevel = this.currentLevel;\n let level = this.levels[currentLevel];\n const value = level.items[level.index];\n level.items[level.index] = 0xff;\n currentLevel--;\n if (currentLevel < 0) {\n return false;\n }\n\n this.currentLevel = currentLevel;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n return true;\n }\n}\n\n// Section D. Coefficient bit modeling\nconst BitModel = (function BitModelClosure() {\n const UNIFORM_CONTEXT = 17;\n const RUNLENGTH_CONTEXT = 18;\n // Table D-1\n // The index is binary presentation: 0dddvvhh, ddd - sum of Di (0..4),\n // vv - sum of Vi (0..2), and hh - sum of Hi (0..2)\n const LLAndLHContextsLabel = new Uint8Array([\n 0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4,\n 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6,\n 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8,\n ]);\n const HLContextLabel = new Uint8Array([\n 0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8,\n 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3,\n 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8,\n ]);\n const HHContextLabel = new Uint8Array([\n 0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5,\n 5, 5, 0, 0, 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8,\n 8, 0, 8, 8, 8, 0, 8, 8, 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8,\n ]);\n\n // eslint-disable-next-line no-shadow\n class BitModel {\n constructor(width, height, subband, zeroBitPlanes, mb) {\n this.width = width;\n this.height = height;\n\n let contextLabelTable;\n if (subband === \"HH\") {\n contextLabelTable = HHContextLabel;\n } else if (subband === \"HL\") {\n contextLabelTable = HLContextLabel;\n } else {\n contextLabelTable = LLAndLHContextsLabel;\n }\n this.contextLabelTable = contextLabelTable;\n\n const coefficientCount = width * height;\n\n // coefficients outside the encoding region treated as insignificant\n // add border state cells for significanceState\n this.neighborsSignificance = new Uint8Array(coefficientCount);\n this.coefficentsSign = new Uint8Array(coefficientCount);\n let coefficentsMagnitude;\n if (mb > 14) {\n coefficentsMagnitude = new Uint32Array(coefficientCount);\n } else if (mb > 6) {\n coefficentsMagnitude = new Uint16Array(coefficientCount);\n } else {\n coefficentsMagnitude = new Uint8Array(coefficientCount);\n }\n this.coefficentsMagnitude = coefficentsMagnitude;\n this.processingFlags = new Uint8Array(coefficientCount);\n\n const bitsDecoded = new Uint8Array(coefficientCount);\n if (zeroBitPlanes !== 0) {\n for (let i = 0; i < coefficientCount; i++) {\n bitsDecoded[i] = zeroBitPlanes;\n }\n }\n this.bitsDecoded = bitsDecoded;\n\n this.reset();\n }\n\n setDecoder(decoder) {\n this.decoder = decoder;\n }\n\n reset() {\n // We have 17 contexts that are accessed via context labels,\n // plus the uniform and runlength context.\n this.contexts = new Int8Array(19);\n\n // Contexts are packed into 1 byte:\n // highest 7 bits carry the index, lowest bit carries mps\n this.contexts[0] = (4 << 1) | 0;\n this.contexts[UNIFORM_CONTEXT] = (46 << 1) | 0;\n this.contexts[RUNLENGTH_CONTEXT] = (3 << 1) | 0;\n }\n\n setNeighborsSignificance(row, column, index) {\n const neighborsSignificance = this.neighborsSignificance;\n const width = this.width,\n height = this.height;\n const left = column > 0;\n const right = column + 1 < width;\n let i;\n\n if (row > 0) {\n i = index - width;\n if (left) {\n neighborsSignificance[i - 1] += 0x10;\n }\n if (right) {\n neighborsSignificance[i + 1] += 0x10;\n }\n neighborsSignificance[i] += 0x04;\n }\n\n if (row + 1 < height) {\n i = index + width;\n if (left) {\n neighborsSignificance[i - 1] += 0x10;\n }\n if (right) {\n neighborsSignificance[i + 1] += 0x10;\n }\n neighborsSignificance[i] += 0x04;\n }\n\n if (left) {\n neighborsSignificance[index - 1] += 0x01;\n }\n if (right) {\n neighborsSignificance[index + 1] += 0x01;\n }\n neighborsSignificance[index] |= 0x80;\n }\n\n runSignificancePropagationPass() {\n const decoder = this.decoder;\n const width = this.width,\n height = this.height;\n const coefficentsMagnitude = this.coefficentsMagnitude;\n const coefficentsSign = this.coefficentsSign;\n const neighborsSignificance = this.neighborsSignificance;\n const processingFlags = this.processingFlags;\n const contexts = this.contexts;\n const labels = this.contextLabelTable;\n const bitsDecoded = this.bitsDecoded;\n const processedInverseMask = ~1;\n const processedMask = 1;\n const firstMagnitudeBitMask = 2;\n\n for (let i0 = 0; i0 < height; i0 += 4) {\n for (let j = 0; j < width; j++) {\n let index = i0 * width + j;\n for (let i1 = 0; i1 < 4; i1++, index += width) {\n const i = i0 + i1;\n if (i >= height) {\n break;\n }\n // clear processed flag first\n processingFlags[index] &= processedInverseMask;\n\n if (coefficentsMagnitude[index] || !neighborsSignificance[index]) {\n continue;\n }\n\n const contextLabel = labels[neighborsSignificance[index]];\n const decision = decoder.readBit(contexts, contextLabel);\n if (decision) {\n const sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n }\n bitsDecoded[index]++;\n processingFlags[index] |= processedMask;\n }\n }\n }\n }\n\n decodeSignBit(row, column, index) {\n const width = this.width,\n height = this.height;\n const coefficentsMagnitude = this.coefficentsMagnitude;\n const coefficentsSign = this.coefficentsSign;\n let contribution, sign0, sign1, significance1;\n let contextLabel, decoded;\n\n // calculate horizontal contribution\n significance1 = column > 0 && coefficentsMagnitude[index - 1] !== 0;\n if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) {\n sign1 = coefficentsSign[index + 1];\n if (significance1) {\n sign0 = coefficentsSign[index - 1];\n contribution = 1 - sign1 - sign0;\n } else {\n contribution = 1 - sign1 - sign1;\n }\n } else if (significance1) {\n sign0 = coefficentsSign[index - 1];\n contribution = 1 - sign0 - sign0;\n } else {\n contribution = 0;\n }\n const horizontalContribution = 3 * contribution;\n\n // calculate vertical contribution and combine with the horizontal\n significance1 = row > 0 && coefficentsMagnitude[index - width] !== 0;\n if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) {\n sign1 = coefficentsSign[index + width];\n if (significance1) {\n sign0 = coefficentsSign[index - width];\n contribution = 1 - sign1 - sign0 + horizontalContribution;\n } else {\n contribution = 1 - sign1 - sign1 + horizontalContribution;\n }\n } else if (significance1) {\n sign0 = coefficentsSign[index - width];\n contribution = 1 - sign0 - sign0 + horizontalContribution;\n } else {\n contribution = horizontalContribution;\n }\n\n if (contribution >= 0) {\n contextLabel = 9 + contribution;\n decoded = this.decoder.readBit(this.contexts, contextLabel);\n } else {\n contextLabel = 9 - contribution;\n decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1;\n }\n return decoded;\n }\n\n runMagnitudeRefinementPass() {\n const decoder = this.decoder;\n const width = this.width,\n height = this.height;\n const coefficentsMagnitude = this.coefficentsMagnitude;\n const neighborsSignificance = this.neighborsSignificance;\n const contexts = this.contexts;\n const bitsDecoded = this.bitsDecoded;\n const processingFlags = this.processingFlags;\n const processedMask = 1;\n const firstMagnitudeBitMask = 2;\n const length = width * height;\n const width4 = width * 4;\n\n for (let index0 = 0, indexNext; index0 < length; index0 = indexNext) {\n indexNext = Math.min(length, index0 + width4);\n for (let j = 0; j < width; j++) {\n for (let index = index0 + j; index < indexNext; index += width) {\n // significant but not those that have just become\n if (\n !coefficentsMagnitude[index] ||\n (processingFlags[index] & processedMask) !== 0\n ) {\n continue;\n }\n\n let contextLabel = 16;\n if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) {\n processingFlags[index] ^= firstMagnitudeBitMask;\n // first refinement\n const significance = neighborsSignificance[index] & 127;\n contextLabel = significance === 0 ? 15 : 14;\n }\n\n const bit = decoder.readBit(contexts, contextLabel);\n coefficentsMagnitude[index] =\n (coefficentsMagnitude[index] << 1) | bit;\n bitsDecoded[index]++;\n processingFlags[index] |= processedMask;\n }\n }\n }\n }\n\n runCleanupPass() {\n const decoder = this.decoder;\n const width = this.width,\n height = this.height;\n const neighborsSignificance = this.neighborsSignificance;\n const coefficentsMagnitude = this.coefficentsMagnitude;\n const coefficentsSign = this.coefficentsSign;\n const contexts = this.contexts;\n const labels = this.contextLabelTable;\n const bitsDecoded = this.bitsDecoded;\n const processingFlags = this.processingFlags;\n const processedMask = 1;\n const firstMagnitudeBitMask = 2;\n const oneRowDown = width;\n const twoRowsDown = width * 2;\n const threeRowsDown = width * 3;\n let iNext;\n for (let i0 = 0; i0 < height; i0 = iNext) {\n iNext = Math.min(i0 + 4, height);\n const indexBase = i0 * width;\n const checkAllEmpty = i0 + 3 < height;\n for (let j = 0; j < width; j++) {\n const index0 = indexBase + j;\n // using the property: labels[neighborsSignificance[index]] === 0\n // when neighborsSignificance[index] === 0\n const allEmpty =\n checkAllEmpty &&\n processingFlags[index0] === 0 &&\n processingFlags[index0 + oneRowDown] === 0 &&\n processingFlags[index0 + twoRowsDown] === 0 &&\n processingFlags[index0 + threeRowsDown] === 0 &&\n neighborsSignificance[index0] === 0 &&\n neighborsSignificance[index0 + oneRowDown] === 0 &&\n neighborsSignificance[index0 + twoRowsDown] === 0 &&\n neighborsSignificance[index0 + threeRowsDown] === 0;\n let i1 = 0,\n index = index0;\n let i = i0,\n sign;\n if (allEmpty) {\n const hasSignificantCoefficent = decoder.readBit(\n contexts,\n RUNLENGTH_CONTEXT\n );\n if (!hasSignificantCoefficent) {\n bitsDecoded[index0]++;\n bitsDecoded[index0 + oneRowDown]++;\n bitsDecoded[index0 + twoRowsDown]++;\n bitsDecoded[index0 + threeRowsDown]++;\n continue; // next column\n }\n i1 =\n (decoder.readBit(contexts, UNIFORM_CONTEXT) << 1) |\n decoder.readBit(contexts, UNIFORM_CONTEXT);\n if (i1 !== 0) {\n i = i0 + i1;\n index += i1 * width;\n }\n\n sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n\n index = index0;\n for (let i2 = i0; i2 <= i; i2++, index += width) {\n bitsDecoded[index]++;\n }\n\n i1++;\n }\n for (i = i0 + i1; i < iNext; i++, index += width) {\n if (\n coefficentsMagnitude[index] ||\n (processingFlags[index] & processedMask) !== 0\n ) {\n continue;\n }\n\n const contextLabel = labels[neighborsSignificance[index]];\n const decision = decoder.readBit(contexts, contextLabel);\n if (decision === 1) {\n sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n }\n bitsDecoded[index]++;\n }\n }\n }\n }\n\n checkSegmentationSymbol() {\n const decoder = this.decoder;\n const contexts = this.contexts;\n const symbol =\n (decoder.readBit(contexts, UNIFORM_CONTEXT) << 3) |\n (decoder.readBit(contexts, UNIFORM_CONTEXT) << 2) |\n (decoder.readBit(contexts, UNIFORM_CONTEXT) << 1) |\n decoder.readBit(contexts, UNIFORM_CONTEXT);\n if (symbol !== 0xa) {\n throw new JpxError(\"Invalid segmentation symbol\");\n }\n }\n }\n\n return BitModel;\n})();\n\n// Section F, Discrete wavelet transformation\nclass Transform {\n constructor() {\n if (this.constructor === Transform) {\n unreachable(\"Cannot initialize Transform.\");\n }\n }\n\n calculate(subbands, u0, v0) {\n let ll = subbands[0];\n for (let i = 1, ii = subbands.length; i < ii; i++) {\n ll = this.iterate(ll, subbands[i], u0, v0);\n }\n return ll;\n }\n\n extend(buffer, offset, size) {\n // Section F.3.7 extending... using max extension of 4\n let i1 = offset - 1,\n j1 = offset + 1;\n let i2 = offset + size - 2,\n j2 = offset + size;\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1] = buffer[j1];\n buffer[j2] = buffer[i2];\n }\n\n filter(x, offset, length) {\n unreachable(\"Abstract method `filter` called\");\n }\n\n iterate(ll, hl_lh_hh, u0, v0) {\n const llWidth = ll.width,\n llHeight = ll.height;\n let llItems = ll.items;\n const width = hl_lh_hh.width;\n const height = hl_lh_hh.height;\n const items = hl_lh_hh.items;\n let i, j, k, l, u, v;\n\n // Interleave LL according to Section F.3.3\n for (k = 0, i = 0; i < llHeight; i++) {\n l = i * 2 * width;\n for (j = 0; j < llWidth; j++, k++, l += 2) {\n items[l] = llItems[k];\n }\n }\n // The LL band is not needed anymore.\n llItems = ll.items = null;\n\n const bufferPadding = 4;\n const rowBuffer = new Float32Array(width + 2 * bufferPadding);\n\n // Section F.3.4 HOR_SR\n if (width === 1) {\n // if width = 1, when u0 even keep items as is, when odd divide by 2\n if ((u0 & 1) !== 0) {\n for (v = 0, k = 0; v < height; v++, k += width) {\n items[k] *= 0.5;\n }\n }\n } else {\n for (v = 0, k = 0; v < height; v++, k += width) {\n rowBuffer.set(items.subarray(k, k + width), bufferPadding);\n\n this.extend(rowBuffer, bufferPadding, width);\n this.filter(rowBuffer, bufferPadding, width);\n\n items.set(rowBuffer.subarray(bufferPadding, bufferPadding + width), k);\n }\n }\n\n // Accesses to the items array can take long, because it may not fit into\n // CPU cache and has to be fetched from main memory. Since subsequent\n // accesses to the items array are not local when reading columns, we\n // have a cache miss every time. To reduce cache misses, get up to\n // 'numBuffers' items at a time and store them into the individual\n // buffers. The colBuffers should be small enough to fit into CPU cache.\n let numBuffers = 16;\n const colBuffers = [];\n for (i = 0; i < numBuffers; i++) {\n colBuffers.push(new Float32Array(height + 2 * bufferPadding));\n }\n let b,\n currentBuffer = 0;\n ll = bufferPadding + height;\n\n // Section F.3.5 VER_SR\n if (height === 1) {\n // if height = 1, when v0 even keep items as is, when odd divide by 2\n if ((v0 & 1) !== 0) {\n for (u = 0; u < width; u++) {\n items[u] *= 0.5;\n }\n }\n } else {\n for (u = 0; u < width; u++) {\n // if we ran out of buffers, copy several image columns at once\n if (currentBuffer === 0) {\n numBuffers = Math.min(width - u, numBuffers);\n for (k = u, l = bufferPadding; l < ll; k += width, l++) {\n for (b = 0; b < numBuffers; b++) {\n colBuffers[b][l] = items[k + b];\n }\n }\n currentBuffer = numBuffers;\n }\n\n currentBuffer--;\n const buffer = colBuffers[currentBuffer];\n this.extend(buffer, bufferPadding, height);\n this.filter(buffer, bufferPadding, height);\n\n // If this is last buffer in this group of buffers, flush all buffers.\n if (currentBuffer === 0) {\n k = u - numBuffers + 1;\n for (l = bufferPadding; l < ll; k += width, l++) {\n for (b = 0; b < numBuffers; b++) {\n items[k + b] = colBuffers[b][l];\n }\n }\n }\n }\n }\n\n return { width, height, items };\n }\n}\n\n// Section 3.8.2 Irreversible 9-7 filter\nclass IrreversibleTransform extends Transform {\n filter(x, offset, length) {\n const len = length >> 1;\n offset |= 0;\n let j, n, current, next;\n\n const alpha = -1.586134342059924;\n const beta = -0.052980118572961;\n const gamma = 0.882911075530934;\n const delta = 0.443506852043971;\n const K = 1.230174104914001;\n const K_ = 1 / K;\n\n // step 1 is combined with step 3\n\n // step 2\n j = offset - 3;\n for (n = len + 4; n--; j += 2) {\n x[j] *= K_;\n }\n\n // step 1 & 3\n j = offset - 2;\n current = delta * x[j - 1];\n for (n = len + 3; n--; j += 2) {\n next = delta * x[j + 1];\n x[j] = K * x[j] - current - next;\n if (n--) {\n j += 2;\n current = delta * x[j + 1];\n x[j] = K * x[j] - current - next;\n } else {\n break;\n }\n }\n\n // step 4\n j = offset - 1;\n current = gamma * x[j - 1];\n for (n = len + 2; n--; j += 2) {\n next = gamma * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = gamma * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n\n // step 5\n j = offset;\n current = beta * x[j - 1];\n for (n = len + 1; n--; j += 2) {\n next = beta * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = beta * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n\n // step 6\n if (len !== 0) {\n j = offset + 1;\n current = alpha * x[j - 1];\n for (n = len; n--; j += 2) {\n next = alpha * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = alpha * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n }\n }\n}\n\n// Section 3.8.1 Reversible 5-3 filter\nclass ReversibleTransform extends Transform {\n filter(x, offset, length) {\n const len = length >> 1;\n offset |= 0;\n let j, n;\n\n for (j = offset, n = len + 1; n--; j += 2) {\n x[j] -= (x[j - 1] + x[j + 1] + 2) >> 2;\n }\n\n for (j = offset + 1, n = len; n--; j += 2) {\n x[j] += (x[j - 1] + x[j + 1]) >> 1;\n }\n }\n}\n\nexport { JpxImage };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\n\nclass LZWStream extends DecodeStream {\n constructor(str, maybeLength, earlyChange) {\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n this.cachedData = 0;\n this.bitsCached = 0;\n\n const maxLzwDictionarySize = 4096;\n const lzwState = {\n earlyChange,\n codeLength: 9,\n nextCode: 258,\n dictionaryValues: new Uint8Array(maxLzwDictionarySize),\n dictionaryLengths: new Uint16Array(maxLzwDictionarySize),\n dictionaryPrevCodes: new Uint16Array(maxLzwDictionarySize),\n currentSequence: new Uint8Array(maxLzwDictionarySize),\n currentSequenceLength: 0,\n };\n for (let i = 0; i < 256; ++i) {\n lzwState.dictionaryValues[i] = i;\n lzwState.dictionaryLengths[i] = 1;\n }\n this.lzwState = lzwState;\n }\n\n readBits(n) {\n let bitsCached = this.bitsCached;\n let cachedData = this.cachedData;\n while (bitsCached < n) {\n const c = this.str.getByte();\n if (c === -1) {\n this.eof = true;\n return null;\n }\n cachedData = (cachedData << 8) | c;\n bitsCached += 8;\n }\n this.bitsCached = bitsCached -= n;\n this.cachedData = cachedData;\n this.lastCode = null;\n return (cachedData >>> bitsCached) & ((1 << n) - 1);\n }\n\n readBlock() {\n const blockSize = 512,\n decodedSizeDelta = blockSize;\n let estimatedDecodedSize = blockSize * 2;\n let i, j, q;\n\n const lzwState = this.lzwState;\n if (!lzwState) {\n return; // eof was found\n }\n\n const earlyChange = lzwState.earlyChange;\n let nextCode = lzwState.nextCode;\n const dictionaryValues = lzwState.dictionaryValues;\n const dictionaryLengths = lzwState.dictionaryLengths;\n const dictionaryPrevCodes = lzwState.dictionaryPrevCodes;\n let codeLength = lzwState.codeLength;\n let prevCode = lzwState.prevCode;\n const currentSequence = lzwState.currentSequence;\n let currentSequenceLength = lzwState.currentSequenceLength;\n\n let decodedLength = 0;\n let currentBufferLength = this.bufferLength;\n let buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n\n for (i = 0; i < blockSize; i++) {\n const code = this.readBits(codeLength);\n const hasPrev = currentSequenceLength > 0;\n if (code < 256) {\n currentSequence[0] = code;\n currentSequenceLength = 1;\n } else if (code >= 258) {\n if (code < nextCode) {\n currentSequenceLength = dictionaryLengths[code];\n for (j = currentSequenceLength - 1, q = code; j >= 0; j--) {\n currentSequence[j] = dictionaryValues[q];\n q = dictionaryPrevCodes[q];\n }\n } else {\n currentSequence[currentSequenceLength++] = currentSequence[0];\n }\n } else if (code === 256) {\n codeLength = 9;\n nextCode = 258;\n currentSequenceLength = 0;\n continue;\n } else {\n this.eof = true;\n delete this.lzwState;\n break;\n }\n\n if (hasPrev) {\n dictionaryPrevCodes[nextCode] = prevCode;\n dictionaryLengths[nextCode] = dictionaryLengths[prevCode] + 1;\n dictionaryValues[nextCode] = currentSequence[0];\n nextCode++;\n codeLength =\n (nextCode + earlyChange) & (nextCode + earlyChange - 1)\n ? codeLength\n : Math.min(\n Math.log(nextCode + earlyChange) / 0.6931471805599453 + 1,\n 12\n ) | 0;\n }\n prevCode = code;\n\n decodedLength += currentSequenceLength;\n if (estimatedDecodedSize < decodedLength) {\n do {\n estimatedDecodedSize += decodedSizeDelta;\n } while (estimatedDecodedSize < decodedLength);\n buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n }\n for (j = 0; j < currentSequenceLength; j++) {\n buffer[currentBufferLength++] = currentSequence[j];\n }\n }\n lzwState.nextCode = nextCode;\n lzwState.codeLength = codeLength;\n lzwState.prevCode = prevCode;\n lzwState.currentSequenceLength = currentSequenceLength;\n\n this.bufferLength = currentBufferLength;\n }\n}\n\nexport { LZWStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { Dict } from \"./primitives.js\";\nimport { FormatError } from \"../shared/util.js\";\n\nclass PredictorStream extends DecodeStream {\n constructor(str, maybeLength, params) {\n super(maybeLength);\n\n if (!(params instanceof Dict)) {\n return str; // no prediction\n }\n const predictor = (this.predictor = params.get(\"Predictor\") || 1);\n\n if (predictor <= 1) {\n return str; // no prediction\n }\n if (predictor !== 2 && (predictor < 10 || predictor > 15)) {\n throw new FormatError(`Unsupported predictor: ${predictor}`);\n }\n\n if (predictor === 2) {\n this.readBlock = this.readBlockTiff;\n } else {\n this.readBlock = this.readBlockPng;\n }\n\n this.str = str;\n this.dict = str.dict;\n\n const colors = (this.colors = params.get(\"Colors\") || 1);\n const bits = (this.bits = params.get(\"BPC\", \"BitsPerComponent\") || 8);\n const columns = (this.columns = params.get(\"Columns\") || 1);\n\n this.pixBytes = (colors * bits + 7) >> 3;\n this.rowBytes = (columns * colors * bits + 7) >> 3;\n\n return this;\n }\n\n readBlockTiff() {\n const rowBytes = this.rowBytes;\n\n const bufferLength = this.bufferLength;\n const buffer = this.ensureBuffer(bufferLength + rowBytes);\n\n const bits = this.bits;\n const colors = this.colors;\n\n const rawBytes = this.str.getBytes(rowBytes);\n this.eof = !rawBytes.length;\n if (this.eof) {\n return;\n }\n\n let inbuf = 0,\n outbuf = 0;\n let inbits = 0,\n outbits = 0;\n let pos = bufferLength;\n let i;\n\n if (bits === 1 && colors === 1) {\n // Optimized version of the loop in the \"else\"-branch\n // for 1 bit-per-component and 1 color TIFF images.\n for (i = 0; i < rowBytes; ++i) {\n let c = rawBytes[i] ^ inbuf;\n c ^= c >> 1;\n c ^= c >> 2;\n c ^= c >> 4;\n inbuf = (c & 1) << 7;\n buffer[pos++] = c;\n }\n } else if (bits === 8) {\n for (i = 0; i < colors; ++i) {\n buffer[pos++] = rawBytes[i];\n }\n for (; i < rowBytes; ++i) {\n buffer[pos] = buffer[pos - colors] + rawBytes[i];\n pos++;\n }\n } else if (bits === 16) {\n const bytesPerPixel = colors * 2;\n for (i = 0; i < bytesPerPixel; ++i) {\n buffer[pos++] = rawBytes[i];\n }\n for (; i < rowBytes; i += 2) {\n const sum =\n ((rawBytes[i] & 0xff) << 8) +\n (rawBytes[i + 1] & 0xff) +\n ((buffer[pos - bytesPerPixel] & 0xff) << 8) +\n (buffer[pos - bytesPerPixel + 1] & 0xff);\n buffer[pos++] = (sum >> 8) & 0xff;\n buffer[pos++] = sum & 0xff;\n }\n } else {\n const compArray = new Uint8Array(colors + 1);\n const bitMask = (1 << bits) - 1;\n let j = 0,\n k = bufferLength;\n const columns = this.columns;\n for (i = 0; i < columns; ++i) {\n for (let kk = 0; kk < colors; ++kk) {\n if (inbits < bits) {\n inbuf = (inbuf << 8) | (rawBytes[j++] & 0xff);\n inbits += 8;\n }\n compArray[kk] =\n (compArray[kk] + (inbuf >> (inbits - bits))) & bitMask;\n inbits -= bits;\n outbuf = (outbuf << bits) | compArray[kk];\n outbits += bits;\n if (outbits >= 8) {\n buffer[k++] = (outbuf >> (outbits - 8)) & 0xff;\n outbits -= 8;\n }\n }\n }\n if (outbits > 0) {\n buffer[k++] =\n (outbuf << (8 - outbits)) + (inbuf & ((1 << (8 - outbits)) - 1));\n }\n }\n this.bufferLength += rowBytes;\n }\n\n readBlockPng() {\n const rowBytes = this.rowBytes;\n const pixBytes = this.pixBytes;\n\n const predictor = this.str.getByte();\n const rawBytes = this.str.getBytes(rowBytes);\n this.eof = !rawBytes.length;\n if (this.eof) {\n return;\n }\n\n const bufferLength = this.bufferLength;\n const buffer = this.ensureBuffer(bufferLength + rowBytes);\n\n let prevRow = buffer.subarray(bufferLength - rowBytes, bufferLength);\n if (prevRow.length === 0) {\n prevRow = new Uint8Array(rowBytes);\n }\n\n let i,\n j = bufferLength,\n up,\n c;\n switch (predictor) {\n case 0:\n for (i = 0; i < rowBytes; ++i) {\n buffer[j++] = rawBytes[i];\n }\n break;\n case 1:\n for (i = 0; i < pixBytes; ++i) {\n buffer[j++] = rawBytes[i];\n }\n for (; i < rowBytes; ++i) {\n buffer[j] = (buffer[j - pixBytes] + rawBytes[i]) & 0xff;\n j++;\n }\n break;\n case 2:\n for (i = 0; i < rowBytes; ++i) {\n buffer[j++] = (prevRow[i] + rawBytes[i]) & 0xff;\n }\n break;\n case 3:\n for (i = 0; i < pixBytes; ++i) {\n buffer[j++] = (prevRow[i] >> 1) + rawBytes[i];\n }\n for (; i < rowBytes; ++i) {\n buffer[j] =\n (((prevRow[i] + buffer[j - pixBytes]) >> 1) + rawBytes[i]) & 0xff;\n j++;\n }\n break;\n case 4:\n // we need to save the up left pixels values. the simplest way\n // is to create a new buffer\n for (i = 0; i < pixBytes; ++i) {\n up = prevRow[i];\n c = rawBytes[i];\n buffer[j++] = up + c;\n }\n for (; i < rowBytes; ++i) {\n up = prevRow[i];\n const upLeft = prevRow[i - pixBytes];\n const left = buffer[j - pixBytes];\n const p = left + up - upLeft;\n\n let pa = p - left;\n if (pa < 0) {\n pa = -pa;\n }\n let pb = p - up;\n if (pb < 0) {\n pb = -pb;\n }\n let pc = p - upLeft;\n if (pc < 0) {\n pc = -pc;\n }\n\n c = rawBytes[i];\n if (pa <= pb && pa <= pc) {\n buffer[j++] = left + c;\n } else if (pb <= pc) {\n buffer[j++] = up + c;\n } else {\n buffer[j++] = upLeft + c;\n }\n }\n break;\n default:\n throw new FormatError(`Unsupported predictor: ${predictor}`);\n }\n this.bufferLength += rowBytes;\n }\n}\n\nexport { PredictorStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\n\nclass RunLengthStream extends DecodeStream {\n constructor(str, maybeLength) {\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n }\n\n readBlock() {\n // The repeatHeader has following format. The first byte defines type of run\n // and amount of bytes to repeat/copy: n = 0 through 127 - copy next n bytes\n // (in addition to the second byte from the header), n = 129 through 255 -\n // duplicate the second byte from the header (257 - n) times, n = 128 - end.\n const repeatHeader = this.str.getBytes(2);\n if (!repeatHeader || repeatHeader.length < 2 || repeatHeader[0] === 128) {\n this.eof = true;\n return;\n }\n\n let buffer;\n let bufferLength = this.bufferLength;\n let n = repeatHeader[0];\n if (n < 128) {\n // copy n bytes\n buffer = this.ensureBuffer(bufferLength + n + 1);\n buffer[bufferLength++] = repeatHeader[1];\n if (n > 0) {\n const source = this.str.getBytes(n);\n buffer.set(source, bufferLength);\n bufferLength += n;\n }\n } else {\n n = 257 - n;\n const b = repeatHeader[1];\n buffer = this.ensureBuffer(bufferLength + n + 1);\n for (let i = 0; i < n; i++) {\n buffer[bufferLength++] = b;\n }\n }\n this.bufferLength = bufferLength;\n }\n}\n\nexport { RunLengthStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n bytesToString,\n FONT_IDENTITY_MATRIX,\n FontType,\n FormatError,\n info,\n shadow,\n string32,\n warn,\n} from \"../shared/util.js\";\nimport { CFFCompiler, CFFParser } from \"./cff_parser.js\";\nimport {\n FontFlags,\n getFontType,\n MacStandardGlyphOrdering,\n normalizeFontName,\n recoverGlyphName,\n SEAC_ANALYSIS_ENABLED,\n} from \"./fonts_utils.js\";\nimport {\n getCharUnicodeCategory,\n getUnicodeForGlyph,\n getUnicodeRangeFor,\n mapSpecialUnicodeValues,\n} from \"./unicode.js\";\nimport { getDingbatsGlyphsUnicode, getGlyphsUnicode } from \"./glyphlist.js\";\nimport {\n getEncoding,\n MacRomanEncoding,\n StandardEncoding,\n SymbolSetEncoding,\n ZapfDingbatsEncoding,\n} from \"./encodings.js\";\nimport {\n getGlyphMapForStandardFonts,\n getNonStdFontMap,\n getSerifFonts,\n getStdFontMap,\n getSupplementalGlyphMapForArialBlack,\n getSupplementalGlyphMapForCalibri,\n} from \"./standard_fonts.js\";\nimport { IdentityToUnicodeMap, ToUnicodeMap } from \"./to_unicode_map.js\";\nimport { CFFFont } from \"./cff_font.js\";\nimport { FontRendererFactory } from \"./font_renderer.js\";\nimport { getFontBasicMetrics } from \"./metrics.js\";\nimport { GlyfTable } from \"./glyf.js\";\nimport { IdentityCMap } from \"./cmap.js\";\nimport { OpenTypeFileBuilder } from \"./opentype_file_builder.js\";\nimport { readUint32 } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\nimport { Type1Font } from \"./type1_font.js\";\n\n// Unicode Private Use Areas:\nconst PRIVATE_USE_AREAS = [\n [0xe000, 0xf8ff], // BMP (0)\n [0x100000, 0x10fffd], // PUP (16)\n];\n\n// PDF Glyph Space Units are one Thousandth of a TextSpace Unit\n// except for Type 3 fonts\nconst PDF_GLYPH_SPACE_UNITS = 1000;\n\nconst EXPORT_DATA_PROPERTIES = [\n \"ascent\",\n \"bbox\",\n \"black\",\n \"bold\",\n \"charProcOperatorList\",\n \"composite\",\n \"cssFontInfo\",\n \"data\",\n \"defaultVMetrics\",\n \"defaultWidth\",\n \"descent\",\n \"fallbackName\",\n \"fontMatrix\",\n \"fontType\",\n \"isType3Font\",\n \"italic\",\n \"loadedName\",\n \"mimetype\",\n \"missingFile\",\n \"name\",\n \"remeasure\",\n \"subtype\",\n \"type\",\n \"vertical\",\n];\n\nconst EXPORT_DATA_EXTRA_PROPERTIES = [\n \"cMap\",\n \"defaultEncoding\",\n \"differences\",\n \"isMonospace\",\n \"isSerifFont\",\n \"isSymbolicFont\",\n \"seacMap\",\n \"toFontChar\",\n \"toUnicode\",\n \"vmetrics\",\n \"widths\",\n];\n\nfunction adjustWidths(properties) {\n if (!properties.fontMatrix) {\n return;\n }\n if (properties.fontMatrix[0] === FONT_IDENTITY_MATRIX[0]) {\n return;\n }\n // adjusting width to fontMatrix scale\n const scale = 0.001 / properties.fontMatrix[0];\n const glyphsWidths = properties.widths;\n for (const glyph in glyphsWidths) {\n glyphsWidths[glyph] *= scale;\n }\n properties.defaultWidth *= scale;\n}\n\nfunction adjustToUnicode(properties, builtInEncoding) {\n if (properties.isInternalFont) {\n return;\n }\n if (builtInEncoding === properties.defaultEncoding) {\n return; // No point in trying to adjust `toUnicode` if the encodings match.\n }\n if (properties.toUnicode instanceof IdentityToUnicodeMap) {\n return;\n }\n const toUnicode = [],\n glyphsUnicodeMap = getGlyphsUnicode();\n for (const charCode in builtInEncoding) {\n if (properties.hasIncludedToUnicodeMap) {\n if (properties.toUnicode.has(charCode)) {\n continue; // The font dictionary has a `ToUnicode` entry.\n }\n } else if (properties.hasEncoding) {\n if (\n properties.differences.length === 0 ||\n properties.differences[charCode] !== undefined\n ) {\n continue; // The font dictionary has an `Encoding`/`Differences` entry.\n }\n }\n const glyphName = builtInEncoding[charCode];\n const unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap);\n if (unicode !== -1) {\n toUnicode[charCode] = String.fromCharCode(unicode);\n }\n }\n if (toUnicode.length > 0) {\n properties.toUnicode.amend(toUnicode);\n }\n}\n\n/**\n * NOTE: This function should only be called at the *end* of font-parsing,\n * after e.g. `adjustToUnicode` has run, to prevent any issues.\n */\nfunction amendFallbackToUnicode(properties) {\n if (!properties.fallbackToUnicode) {\n return;\n }\n if (properties.toUnicode instanceof IdentityToUnicodeMap) {\n return;\n }\n const toUnicode = [];\n for (const charCode in properties.fallbackToUnicode) {\n if (properties.toUnicode.has(charCode)) {\n continue; // The font dictionary has a `ToUnicode` entry.\n }\n toUnicode[charCode] = properties.fallbackToUnicode[charCode];\n }\n if (toUnicode.length > 0) {\n properties.toUnicode.amend(toUnicode);\n }\n}\n\nclass Glyph {\n constructor(\n originalCharCode,\n fontChar,\n unicode,\n accent,\n width,\n vmetric,\n operatorListId,\n isSpace,\n isInFont\n ) {\n this.originalCharCode = originalCharCode;\n this.fontChar = fontChar;\n this.unicode = unicode;\n this.accent = accent;\n this.width = width;\n this.vmetric = vmetric;\n this.operatorListId = operatorListId;\n this.isSpace = isSpace;\n this.isInFont = isInFont;\n\n const category = getCharUnicodeCategory(unicode);\n this.isWhitespace = category.isWhitespace;\n this.isZeroWidthDiacritic = category.isZeroWidthDiacritic;\n this.isInvisibleFormatMark = category.isInvisibleFormatMark;\n }\n\n matchesForCache(\n originalCharCode,\n fontChar,\n unicode,\n accent,\n width,\n vmetric,\n operatorListId,\n isSpace,\n isInFont\n ) {\n return (\n this.originalCharCode === originalCharCode &&\n this.fontChar === fontChar &&\n this.unicode === unicode &&\n this.accent === accent &&\n this.width === width &&\n this.vmetric === vmetric &&\n this.operatorListId === operatorListId &&\n this.isSpace === isSpace &&\n this.isInFont === isInFont\n );\n }\n}\n\nfunction int16(b0, b1) {\n return (b0 << 8) + b1;\n}\n\nfunction writeSignedInt16(bytes, index, value) {\n bytes[index + 1] = value;\n bytes[index] = value >>> 8;\n}\n\nfunction signedInt16(b0, b1) {\n const value = (b0 << 8) + b1;\n return value & (1 << 15) ? value - 0x10000 : value;\n}\n\nfunction int32(b0, b1, b2, b3) {\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n}\n\nfunction string16(value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n typeof value === \"number\" && Math.abs(value) < 2 ** 16,\n `string16: Unexpected input \"${value}\".`\n );\n }\n return String.fromCharCode((value >> 8) & 0xff, value & 0xff);\n}\n\nfunction safeString16(value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n typeof value === \"number\" && !Number.isNaN(value),\n `safeString16: Unexpected input \"${value}\".`\n );\n }\n // clamp value to the 16-bit int range\n if (value > 0x7fff) {\n value = 0x7fff;\n } else if (value < -0x8000) {\n value = -0x8000;\n }\n return String.fromCharCode((value >> 8) & 0xff, value & 0xff);\n}\n\nfunction isTrueTypeFile(file) {\n const header = file.peekBytes(4);\n return (\n readUint32(header, 0) === 0x00010000 || bytesToString(header) === \"true\"\n );\n}\n\nfunction isTrueTypeCollectionFile(file) {\n const header = file.peekBytes(4);\n return bytesToString(header) === \"ttcf\";\n}\n\nfunction isOpenTypeFile(file) {\n const header = file.peekBytes(4);\n return bytesToString(header) === \"OTTO\";\n}\n\nfunction isType1File(file) {\n const header = file.peekBytes(2);\n // All Type1 font programs must begin with the comment '%!' (0x25 + 0x21).\n if (header[0] === 0x25 && header[1] === 0x21) {\n return true;\n }\n // ... obviously some fonts violate that part of the specification,\n // please refer to the comment in |Type1Font| below (pfb file header).\n if (header[0] === 0x80 && header[1] === 0x01) {\n return true;\n }\n return false;\n}\n\n/**\n * Compared to other font formats, the header in CFF files is not constant\n * but contains version numbers. To reduce the possibility of misclassifying\n * font files as CFF, it's recommended to check for other font formats first.\n */\nfunction isCFFFile(file) {\n const header = file.peekBytes(4);\n if (\n /* major version, [1, 255] */ header[0] >= 1 &&\n /* minor version, [0, 255]; header[1] */\n /* header size, [0, 255]; header[2] */\n /* offset(0) size, [1, 4] */ header[3] >= 1 &&\n header[3] <= 4\n ) {\n return true;\n }\n return false;\n}\n\nfunction getFontFileType(file, { type, subtype, composite }) {\n let fileType, fileSubtype;\n\n if (isTrueTypeFile(file) || isTrueTypeCollectionFile(file)) {\n if (composite) {\n fileType = \"CIDFontType2\";\n } else {\n fileType = \"TrueType\";\n }\n } else if (isOpenTypeFile(file)) {\n if (composite) {\n fileType = \"CIDFontType2\";\n } else {\n fileType = \"OpenType\";\n }\n } else if (isType1File(file)) {\n if (composite) {\n fileType = \"CIDFontType0\";\n } else {\n fileType = type === \"MMType1\" ? \"MMType1\" : \"Type1\";\n }\n } else if (isCFFFile(file)) {\n if (composite) {\n fileType = \"CIDFontType0\";\n fileSubtype = \"CIDFontType0C\";\n } else {\n fileType = type === \"MMType1\" ? \"MMType1\" : \"Type1\";\n fileSubtype = \"Type1C\";\n }\n } else {\n warn(\"getFontFileType: Unable to detect correct font file Type/Subtype.\");\n fileType = type;\n fileSubtype = subtype;\n }\n\n return [fileType, fileSubtype];\n}\n\nfunction applyStandardFontGlyphMap(map, glyphMap) {\n for (const charCode in glyphMap) {\n map[+charCode] = glyphMap[charCode];\n }\n}\n\nfunction buildToFontChar(encoding, glyphsUnicodeMap, differences) {\n const toFontChar = [];\n let unicode;\n for (let i = 0, ii = encoding.length; i < ii; i++) {\n unicode = getUnicodeForGlyph(encoding[i], glyphsUnicodeMap);\n if (unicode !== -1) {\n toFontChar[i] = unicode;\n }\n }\n for (const charCode in differences) {\n unicode = getUnicodeForGlyph(differences[charCode], glyphsUnicodeMap);\n if (unicode !== -1) {\n toFontChar[+charCode] = unicode;\n }\n }\n return toFontChar;\n}\n\nfunction convertCidString(charCode, cid, shouldThrow = false) {\n switch (cid.length) {\n case 1:\n return cid.charCodeAt(0);\n case 2:\n return (cid.charCodeAt(0) << 8) | cid.charCodeAt(1);\n }\n const msg = `Unsupported CID string (charCode ${charCode}): \"${cid}\".`;\n if (shouldThrow) {\n throw new FormatError(msg);\n }\n warn(msg);\n return cid;\n}\n\n/**\n * Rebuilds the char code to glyph ID map by moving all char codes to the\n * private use area. This is done to avoid issues with various problematic\n * unicode areas where either a glyph won't be drawn or is deformed by a\n * shaper.\n * @returns {Object} Two properties:\n * 'toFontChar' - maps original char codes(the value that will be read\n * from commands such as show text) to the char codes that will be used in the\n * font that we build\n * 'charCodeToGlyphId' - maps the new font char codes to glyph ids\n */\nfunction adjustMapping(charCodeToGlyphId, hasGlyph, newGlyphZeroId) {\n const newMap = Object.create(null);\n const toFontChar = [];\n let privateUseAreaIndex = 0;\n let nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n let privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n for (let originalCharCode in charCodeToGlyphId) {\n originalCharCode |= 0;\n let glyphId = charCodeToGlyphId[originalCharCode];\n // For missing glyphs don't create the mappings so the glyph isn't\n // drawn.\n if (!hasGlyph(glyphId)) {\n continue;\n }\n if (nextAvailableFontCharCode > privateUseOffetEnd) {\n privateUseAreaIndex++;\n if (privateUseAreaIndex >= PRIVATE_USE_AREAS.length) {\n warn(\"Ran out of space in font private use area.\");\n break;\n }\n nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n }\n const fontCharCode = nextAvailableFontCharCode++;\n if (glyphId === 0) {\n glyphId = newGlyphZeroId;\n }\n\n newMap[fontCharCode] = glyphId;\n toFontChar[originalCharCode] = fontCharCode;\n }\n return {\n toFontChar,\n charCodeToGlyphId: newMap,\n nextAvailableFontCharCode,\n };\n}\n\nfunction getRanges(glyphs, numGlyphs) {\n // Array.sort() sorts by characters, not numerically, so convert to an\n // array of characters.\n const codes = [];\n for (const charCode in glyphs) {\n // Remove an invalid glyph ID mappings to make OTS happy.\n if (glyphs[charCode] >= numGlyphs) {\n continue;\n }\n codes.push({ fontCharCode: charCode | 0, glyphId: glyphs[charCode] });\n }\n // Some fonts have zero glyphs and are used only for text selection, but\n // there needs to be at least one to build a valid cmap table.\n if (codes.length === 0) {\n codes.push({ fontCharCode: 0, glyphId: 0 });\n }\n codes.sort(function fontGetRangesSort(a, b) {\n return a.fontCharCode - b.fontCharCode;\n });\n\n // Split the sorted codes into ranges.\n const ranges = [];\n const length = codes.length;\n for (let n = 0; n < length; ) {\n const start = codes[n].fontCharCode;\n const codeIndices = [codes[n].glyphId];\n ++n;\n let end = start;\n while (n < length && end + 1 === codes[n].fontCharCode) {\n codeIndices.push(codes[n].glyphId);\n ++end;\n ++n;\n if (end === 0xffff) {\n break;\n }\n }\n ranges.push([start, end, codeIndices]);\n }\n\n return ranges;\n}\n\nfunction createCmapTable(glyphs, numGlyphs) {\n const ranges = getRanges(glyphs, numGlyphs);\n const numTables = ranges[ranges.length - 1][1] > 0xffff ? 2 : 1;\n let cmap =\n \"\\x00\\x00\" + // version\n string16(numTables) + // numTables\n \"\\x00\\x03\" + // platformID\n \"\\x00\\x01\" + // encodingID\n string32(4 + numTables * 8); // start of the table record\n\n let i, ii, j, jj;\n for (i = ranges.length - 1; i >= 0; --i) {\n if (ranges[i][0] <= 0xffff) {\n break;\n }\n }\n const bmpLength = i + 1;\n\n if (ranges[i][0] < 0xffff && ranges[i][1] === 0xffff) {\n ranges[i][1] = 0xfffe;\n }\n const trailingRangesCount = ranges[i][1] < 0xffff ? 1 : 0;\n const segCount = bmpLength + trailingRangesCount;\n const searchParams = OpenTypeFileBuilder.getSearchParams(segCount, 2);\n\n // Fill up the 4 parallel arrays describing the segments.\n let startCount = \"\";\n let endCount = \"\";\n let idDeltas = \"\";\n let idRangeOffsets = \"\";\n let glyphsIds = \"\";\n let bias = 0;\n\n let range, start, end, codes;\n for (i = 0, ii = bmpLength; i < ii; i++) {\n range = ranges[i];\n start = range[0];\n end = range[1];\n startCount += string16(start);\n endCount += string16(end);\n codes = range[2];\n let contiguous = true;\n for (j = 1, jj = codes.length; j < jj; ++j) {\n if (codes[j] !== codes[j - 1] + 1) {\n contiguous = false;\n break;\n }\n }\n if (!contiguous) {\n const offset = (segCount - i) * 2 + bias * 2;\n bias += end - start + 1;\n\n idDeltas += string16(0);\n idRangeOffsets += string16(offset);\n\n for (j = 0, jj = codes.length; j < jj; ++j) {\n glyphsIds += string16(codes[j]);\n }\n } else {\n const startCode = codes[0];\n\n idDeltas += string16((startCode - start) & 0xffff);\n idRangeOffsets += string16(0);\n }\n }\n\n if (trailingRangesCount > 0) {\n endCount += \"\\xFF\\xFF\";\n startCount += \"\\xFF\\xFF\";\n idDeltas += \"\\x00\\x01\";\n idRangeOffsets += \"\\x00\\x00\";\n }\n\n const format314 =\n \"\\x00\\x00\" + // language\n string16(2 * segCount) +\n string16(searchParams.range) +\n string16(searchParams.entry) +\n string16(searchParams.rangeShift) +\n endCount +\n \"\\x00\\x00\" +\n startCount +\n idDeltas +\n idRangeOffsets +\n glyphsIds;\n\n let format31012 = \"\";\n let header31012 = \"\";\n if (numTables > 1) {\n cmap +=\n \"\\x00\\x03\" + // platformID\n \"\\x00\\x0A\" + // encodingID\n string32(4 + numTables * 8 + 4 + format314.length); // start of the table record\n format31012 = \"\";\n for (i = 0, ii = ranges.length; i < ii; i++) {\n range = ranges[i];\n start = range[0];\n codes = range[2];\n let code = codes[0];\n for (j = 1, jj = codes.length; j < jj; ++j) {\n if (codes[j] !== codes[j - 1] + 1) {\n end = range[0] + j - 1;\n format31012 +=\n string32(start) + // startCharCode\n string32(end) + // endCharCode\n string32(code); // startGlyphID\n start = end + 1;\n code = codes[j];\n }\n }\n format31012 +=\n string32(start) + // startCharCode\n string32(range[1]) + // endCharCode\n string32(code); // startGlyphID\n }\n header31012 =\n \"\\x00\\x0C\" + // format\n \"\\x00\\x00\" + // reserved\n string32(format31012.length + 16) + // length\n \"\\x00\\x00\\x00\\x00\" + // language\n string32(format31012.length / 12); // nGroups\n }\n\n return (\n cmap +\n \"\\x00\\x04\" + // format\n string16(format314.length + 4) + // length\n format314 +\n header31012 +\n format31012\n );\n}\n\nfunction validateOS2Table(os2, file) {\n file.pos = (file.start || 0) + os2.offset;\n const version = file.getUint16();\n // TODO verify all OS/2 tables fields, but currently we validate only those\n // that give us issues\n file.skip(60); // skipping type, misc sizes, panose, unicode ranges\n const selection = file.getUint16();\n if (version < 4 && selection & 0x0300) {\n return false;\n }\n const firstChar = file.getUint16();\n const lastChar = file.getUint16();\n if (firstChar > lastChar) {\n return false;\n }\n file.skip(6); // skipping sTypoAscender/Descender/LineGap\n const usWinAscent = file.getUint16();\n if (usWinAscent === 0) {\n // makes font unreadable by windows\n return false;\n }\n\n // OS/2 appears to be valid, resetting some fields\n os2.data[8] = os2.data[9] = 0; // IE rejects fonts if fsType != 0\n return true;\n}\n\nfunction createOS2Table(properties, charstrings, override) {\n override = override || {\n unitsPerEm: 0,\n yMax: 0,\n yMin: 0,\n ascent: 0,\n descent: 0,\n };\n\n let ulUnicodeRange1 = 0;\n let ulUnicodeRange2 = 0;\n let ulUnicodeRange3 = 0;\n let ulUnicodeRange4 = 0;\n\n let firstCharIndex = null;\n let lastCharIndex = 0;\n\n if (charstrings) {\n for (let code in charstrings) {\n code |= 0;\n if (firstCharIndex > code || !firstCharIndex) {\n firstCharIndex = code;\n }\n if (lastCharIndex < code) {\n lastCharIndex = code;\n }\n\n const position = getUnicodeRangeFor(code);\n if (position < 32) {\n ulUnicodeRange1 |= 1 << position;\n } else if (position < 64) {\n ulUnicodeRange2 |= 1 << (position - 32);\n } else if (position < 96) {\n ulUnicodeRange3 |= 1 << (position - 64);\n } else if (position < 123) {\n ulUnicodeRange4 |= 1 << (position - 96);\n } else {\n throw new FormatError(\n \"Unicode ranges Bits > 123 are reserved for internal usage\"\n );\n }\n }\n if (lastCharIndex > 0xffff) {\n // OS2 only supports a 16 bit int. The spec says if supplementary\n // characters are used the field should just be set to 0xFFFF.\n lastCharIndex = 0xffff;\n }\n } else {\n // TODO\n firstCharIndex = 0;\n lastCharIndex = 255;\n }\n\n const bbox = properties.bbox || [0, 0, 0, 0];\n const unitsPerEm =\n override.unitsPerEm ||\n 1 / (properties.fontMatrix || FONT_IDENTITY_MATRIX)[0];\n\n // if the font units differ to the PDF glyph space units\n // then scale up the values\n const scale = properties.ascentScaled\n ? 1.0\n : unitsPerEm / PDF_GLYPH_SPACE_UNITS;\n\n const typoAscent =\n override.ascent || Math.round(scale * (properties.ascent || bbox[3]));\n let typoDescent =\n override.descent || Math.round(scale * (properties.descent || bbox[1]));\n if (typoDescent > 0 && properties.descent > 0 && bbox[1] < 0) {\n typoDescent = -typoDescent; // fixing incorrect descent\n }\n const winAscent = override.yMax || typoAscent;\n const winDescent = -override.yMin || -typoDescent;\n\n return (\n \"\\x00\\x03\" + // version\n \"\\x02\\x24\" + // xAvgCharWidth\n \"\\x01\\xF4\" + // usWeightClass\n \"\\x00\\x05\" + // usWidthClass\n \"\\x00\\x00\" + // fstype (0 to let the font loads via font-face on IE)\n \"\\x02\\x8A\" + // ySubscriptXSize\n \"\\x02\\xBB\" + // ySubscriptYSize\n \"\\x00\\x00\" + // ySubscriptXOffset\n \"\\x00\\x8C\" + // ySubscriptYOffset\n \"\\x02\\x8A\" + // ySuperScriptXSize\n \"\\x02\\xBB\" + // ySuperScriptYSize\n \"\\x00\\x00\" + // ySuperScriptXOffset\n \"\\x01\\xDF\" + // ySuperScriptYOffset\n \"\\x00\\x31\" + // yStrikeOutSize\n \"\\x01\\x02\" + // yStrikeOutPosition\n \"\\x00\\x00\" + // sFamilyClass\n \"\\x00\\x00\\x06\" +\n String.fromCharCode(properties.fixedPitch ? 0x09 : 0x00) +\n \"\\x00\\x00\\x00\\x00\\x00\\x00\" + // Panose\n string32(ulUnicodeRange1) + // ulUnicodeRange1 (Bits 0-31)\n string32(ulUnicodeRange2) + // ulUnicodeRange2 (Bits 32-63)\n string32(ulUnicodeRange3) + // ulUnicodeRange3 (Bits 64-95)\n string32(ulUnicodeRange4) + // ulUnicodeRange4 (Bits 96-127)\n \"\\x2A\\x32\\x31\\x2A\" + // achVendID\n string16(properties.italicAngle ? 1 : 0) + // fsSelection\n string16(firstCharIndex || properties.firstChar) + // usFirstCharIndex\n string16(lastCharIndex || properties.lastChar) + // usLastCharIndex\n string16(typoAscent) + // sTypoAscender\n string16(typoDescent) + // sTypoDescender\n \"\\x00\\x64\" + // sTypoLineGap (7%-10% of the unitsPerEM value)\n string16(winAscent) + // usWinAscent\n string16(winDescent) + // usWinDescent\n \"\\x00\\x00\\x00\\x00\" + // ulCodePageRange1 (Bits 0-31)\n \"\\x00\\x00\\x00\\x00\" + // ulCodePageRange2 (Bits 32-63)\n string16(properties.xHeight) + // sxHeight\n string16(properties.capHeight) + // sCapHeight\n string16(0) + // usDefaultChar\n string16(firstCharIndex || properties.firstChar) + // usBreakChar\n \"\\x00\\x03\"\n ); // usMaxContext\n}\n\nfunction createPostTable(properties) {\n const angle = Math.floor(properties.italicAngle * 2 ** 16);\n return (\n \"\\x00\\x03\\x00\\x00\" + // Version number\n string32(angle) + // italicAngle\n \"\\x00\\x00\" + // underlinePosition\n \"\\x00\\x00\" + // underlineThickness\n string32(properties.fixedPitch ? 1 : 0) + // isFixedPitch\n \"\\x00\\x00\\x00\\x00\" + // minMemType42\n \"\\x00\\x00\\x00\\x00\" + // maxMemType42\n \"\\x00\\x00\\x00\\x00\" + // minMemType1\n \"\\x00\\x00\\x00\\x00\"\n ); // maxMemType1\n}\n\nfunction createPostscriptName(name) {\n // See https://docs.microsoft.com/en-us/typography/opentype/spec/recom#name.\n return name.replace(/[^\\x21-\\x7E]|[[\\](){}<>/%]/g, \"\").slice(0, 63);\n}\n\nfunction createNameTable(name, proto) {\n if (!proto) {\n proto = [[], []]; // no strings and unicode strings\n }\n\n const strings = [\n proto[0][0] || \"Original licence\", // 0.Copyright\n proto[0][1] || name, // 1.Font family\n proto[0][2] || \"Unknown\", // 2.Font subfamily (font weight)\n proto[0][3] || \"uniqueID\", // 3.Unique ID\n proto[0][4] || name, // 4.Full font name\n proto[0][5] || \"Version 0.11\", // 5.Version\n proto[0][6] || createPostscriptName(name), // 6.Postscript name\n proto[0][7] || \"Unknown\", // 7.Trademark\n proto[0][8] || \"Unknown\", // 8.Manufacturer\n proto[0][9] || \"Unknown\", // 9.Designer\n ];\n\n // Mac want 1-byte per character strings while Windows want\n // 2-bytes per character, so duplicate the names table\n const stringsUnicode = [];\n let i, ii, j, jj, str;\n for (i = 0, ii = strings.length; i < ii; i++) {\n str = proto[1][i] || strings[i];\n\n const strBufUnicode = [];\n for (j = 0, jj = str.length; j < jj; j++) {\n strBufUnicode.push(string16(str.charCodeAt(j)));\n }\n stringsUnicode.push(strBufUnicode.join(\"\"));\n }\n\n const names = [strings, stringsUnicode];\n const platforms = [\"\\x00\\x01\", \"\\x00\\x03\"];\n const encodings = [\"\\x00\\x00\", \"\\x00\\x01\"];\n const languages = [\"\\x00\\x00\", \"\\x04\\x09\"];\n\n const namesRecordCount = strings.length * platforms.length;\n let nameTable =\n \"\\x00\\x00\" + // format\n string16(namesRecordCount) + // Number of names Record\n string16(namesRecordCount * 12 + 6); // Storage\n\n // Build the name records field\n let strOffset = 0;\n for (i = 0, ii = platforms.length; i < ii; i++) {\n const strs = names[i];\n for (j = 0, jj = strs.length; j < jj; j++) {\n str = strs[j];\n const nameRecord =\n platforms[i] + // platform ID\n encodings[i] + // encoding ID\n languages[i] + // language ID\n string16(j) + // name ID\n string16(str.length) +\n string16(strOffset);\n nameTable += nameRecord;\n strOffset += str.length;\n }\n }\n\n nameTable += strings.join(\"\") + stringsUnicode.join(\"\");\n return nameTable;\n}\n\n/**\n * 'Font' is the class the outside world should use, it encapsulate all the font\n * decoding logics whatever type it is (assuming the font type is supported).\n */\nclass Font {\n constructor(name, file, properties) {\n this.name = name;\n this.psName = null;\n this.mimetype = null;\n this.disableFontFace = false;\n\n this.loadedName = properties.loadedName;\n this.isType3Font = properties.isType3Font;\n this.missingFile = false;\n this.cssFontInfo = properties.cssFontInfo;\n\n this._charsCache = Object.create(null);\n this._glyphCache = Object.create(null);\n\n let isSerifFont = !!(properties.flags & FontFlags.Serif);\n // Fallback to checking the font name, in order to improve text-selection,\n // since the /Flags-entry is often wrong (fixes issue13845.pdf).\n if (!isSerifFont && !properties.isSimulatedFlags) {\n const baseName = name.replace(/[,_]/g, \"-\").split(\"-\")[0],\n serifFonts = getSerifFonts();\n for (const namePart of baseName.split(\"+\")) {\n if (serifFonts[namePart]) {\n isSerifFont = true;\n break;\n }\n }\n }\n this.isSerifFont = isSerifFont;\n\n this.isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n this.isMonospace = !!(properties.flags & FontFlags.FixedPitch);\n\n let type = properties.type;\n let subtype = properties.subtype;\n this.type = type;\n this.subtype = subtype;\n\n let fallbackName = \"sans-serif\";\n if (this.isMonospace) {\n fallbackName = \"monospace\";\n } else if (this.isSerifFont) {\n fallbackName = \"serif\";\n }\n this.fallbackName = fallbackName;\n\n this.differences = properties.differences;\n this.widths = properties.widths;\n this.defaultWidth = properties.defaultWidth;\n this.composite = properties.composite;\n this.cMap = properties.cMap;\n this.capHeight = properties.capHeight / PDF_GLYPH_SPACE_UNITS;\n this.ascent = properties.ascent / PDF_GLYPH_SPACE_UNITS;\n this.descent = properties.descent / PDF_GLYPH_SPACE_UNITS;\n this.lineHeight = this.ascent - this.descent;\n this.fontMatrix = properties.fontMatrix;\n this.bbox = properties.bbox;\n this.defaultEncoding = properties.defaultEncoding;\n\n this.toUnicode = properties.toUnicode;\n this.toFontChar = [];\n\n if (properties.type === \"Type3\") {\n for (let charCode = 0; charCode < 256; charCode++) {\n this.toFontChar[charCode] =\n this.differences[charCode] || properties.defaultEncoding[charCode];\n }\n this.fontType = FontType.TYPE3;\n return;\n }\n\n this.cidEncoding = properties.cidEncoding || \"\";\n this.vertical = !!properties.vertical;\n if (this.vertical) {\n this.vmetrics = properties.vmetrics;\n this.defaultVMetrics = properties.defaultVMetrics;\n }\n\n if (!file || file.isEmpty) {\n if (file) {\n // Some bad PDF generators will include empty font files,\n // attempting to recover by assuming that no file exists.\n warn('Font file is empty in \"' + name + '\" (' + this.loadedName + \")\");\n }\n this.fallbackToSystemFont(properties);\n return;\n }\n\n // Parse the font file to determine the correct type/subtype, rather than\n // relying on the (often incorrect) data in the font dictionary; (see e.g.\n // issue6782.pdf, issue7598.pdf, and issue9949.pdf).\n [type, subtype] = getFontFileType(file, properties);\n\n if (type !== this.type || subtype !== this.subtype) {\n info(\n \"Inconsistent font file Type/SubType, expected: \" +\n `${this.type}/${this.subtype} but found: ${type}/${subtype}.`\n );\n }\n\n let data;\n try {\n switch (type) {\n case \"MMType1\":\n info(\"MMType1 font (\" + name + \"), falling back to Type1.\");\n /* falls through */\n case \"Type1\":\n case \"CIDFontType0\":\n this.mimetype = \"font/opentype\";\n\n const cff =\n subtype === \"Type1C\" || subtype === \"CIDFontType0C\"\n ? new CFFFont(file, properties)\n : new Type1Font(name, file, properties);\n\n adjustWidths(properties);\n\n // Wrap the CFF data inside an OTF font file\n data = this.convert(name, cff, properties);\n break;\n\n case \"OpenType\":\n case \"TrueType\":\n case \"CIDFontType2\":\n this.mimetype = \"font/opentype\";\n\n // Repair the TrueType file. It is can be damaged in the point of\n // view of the sanitizer\n data = this.checkAndRepair(name, file, properties);\n if (this.isOpenType) {\n adjustWidths(properties);\n\n type = \"OpenType\";\n }\n break;\n\n default:\n throw new FormatError(`Font ${type} is not supported`);\n }\n } catch (e) {\n warn(e);\n this.fallbackToSystemFont(properties);\n return;\n }\n\n amendFallbackToUnicode(properties);\n this.data = data;\n this.fontType = getFontType(type, subtype, properties.isStandardFont);\n\n // Transfer some properties again that could change during font conversion\n this.fontMatrix = properties.fontMatrix;\n this.widths = properties.widths;\n this.defaultWidth = properties.defaultWidth;\n this.toUnicode = properties.toUnicode;\n this.seacMap = properties.seacMap;\n }\n\n get renderer() {\n const renderer = FontRendererFactory.create(this, SEAC_ANALYSIS_ENABLED);\n return shadow(this, \"renderer\", renderer);\n }\n\n exportData(extraProperties = false) {\n const exportDataProperties = extraProperties\n ? [...EXPORT_DATA_PROPERTIES, ...EXPORT_DATA_EXTRA_PROPERTIES]\n : EXPORT_DATA_PROPERTIES;\n\n const data = Object.create(null);\n let property, value;\n for (property of exportDataProperties) {\n value = this[property];\n // Ignore properties that haven't been explicitly set.\n if (value !== undefined) {\n data[property] = value;\n }\n }\n return data;\n }\n\n fallbackToSystemFont(properties) {\n this.missingFile = true;\n // The file data is not specified. Trying to fix the font name\n // to be used with the canvas.font.\n const name = this.name;\n const type = this.type;\n const subtype = this.subtype;\n let fontName = normalizeFontName(name);\n const stdFontMap = getStdFontMap(),\n nonStdFontMap = getNonStdFontMap();\n const isStandardFont = !!stdFontMap[fontName];\n const isMappedToStandardFont = !!(\n nonStdFontMap[fontName] && stdFontMap[nonStdFontMap[fontName]]\n );\n\n fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName;\n\n const fontBasicMetricsMap = getFontBasicMetrics();\n const metrics = fontBasicMetricsMap[fontName];\n if (metrics) {\n if (isNaN(this.ascent)) {\n this.ascent = metrics.ascent / PDF_GLYPH_SPACE_UNITS;\n }\n if (isNaN(this.descent)) {\n this.descent = metrics.descent / PDF_GLYPH_SPACE_UNITS;\n }\n if (isNaN(this.capHeight)) {\n this.capHeight = metrics.capHeight / PDF_GLYPH_SPACE_UNITS;\n }\n }\n\n this.bold = fontName.search(/bold/gi) !== -1;\n this.italic =\n fontName.search(/oblique/gi) !== -1 || fontName.search(/italic/gi) !== -1;\n\n // Use 'name' instead of 'fontName' here because the original\n // name ArialBlack for example will be replaced by Helvetica.\n this.black = name.search(/Black/g) !== -1;\n\n // Use 'name' instead of 'fontName' here because the original\n // name ArialNarrow for example will be replaced by Helvetica.\n const isNarrow = name.search(/Narrow/g) !== -1;\n\n // if at least one width is present, remeasure all chars when exists\n this.remeasure =\n (!isStandardFont || isNarrow) && Object.keys(this.widths).length > 0;\n if (\n (isStandardFont || isMappedToStandardFont) &&\n type === \"CIDFontType2\" &&\n this.cidEncoding.startsWith(\"Identity-\")\n ) {\n const cidToGidMap = properties.cidToGidMap;\n // Standard fonts might be embedded as CID font without glyph mapping.\n // Building one based on GlyphMapForStandardFonts.\n const map = [];\n applyStandardFontGlyphMap(map, getGlyphMapForStandardFonts());\n\n if (/Arial-?Black/i.test(name)) {\n applyStandardFontGlyphMap(map, getSupplementalGlyphMapForArialBlack());\n } else if (/Calibri/i.test(name)) {\n applyStandardFontGlyphMap(map, getSupplementalGlyphMapForCalibri());\n }\n\n // Always update the glyph mapping with the `cidToGidMap` when it exists\n // (fixes issue12418_reduced.pdf).\n if (cidToGidMap) {\n for (const charCode in map) {\n const cid = map[charCode];\n if (cidToGidMap[cid] !== undefined) {\n map[+charCode] = cidToGidMap[cid];\n }\n }\n // When the /CIDToGIDMap is \"incomplete\", fallback to the included\n // /ToUnicode-map regardless of its encoding (fixes issue11915.pdf).\n if (\n cidToGidMap.length !== this.toUnicode.length &&\n properties.hasIncludedToUnicodeMap &&\n this.toUnicode instanceof IdentityToUnicodeMap\n ) {\n this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n const cid = map[charCode];\n if (cidToGidMap[cid] === undefined) {\n map[+charCode] = unicodeCharCode;\n }\n });\n }\n }\n\n if (!(this.toUnicode instanceof IdentityToUnicodeMap)) {\n this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n map[+charCode] = unicodeCharCode;\n });\n }\n this.toFontChar = map;\n this.toUnicode = new ToUnicodeMap(map);\n } else if (/Symbol/i.test(fontName)) {\n this.toFontChar = buildToFontChar(\n SymbolSetEncoding,\n getGlyphsUnicode(),\n this.differences\n );\n } else if (/Dingbats/i.test(fontName)) {\n if (/Wingdings/i.test(name)) {\n warn(\"Non-embedded Wingdings font, falling back to ZapfDingbats.\");\n }\n this.toFontChar = buildToFontChar(\n ZapfDingbatsEncoding,\n getDingbatsGlyphsUnicode(),\n this.differences\n );\n } else if (isStandardFont) {\n const map = buildToFontChar(\n this.defaultEncoding,\n getGlyphsUnicode(),\n this.differences\n );\n\n if (\n type === \"CIDFontType2\" &&\n !this.cidEncoding.startsWith(\"Identity-\") &&\n !(this.toUnicode instanceof IdentityToUnicodeMap)\n ) {\n this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n map[+charCode] = unicodeCharCode;\n });\n }\n this.toFontChar = map;\n } else {\n const glyphsUnicodeMap = getGlyphsUnicode();\n const map = [];\n this.toUnicode.forEach((charCode, unicodeCharCode) => {\n if (!this.composite) {\n const glyphName =\n this.differences[charCode] || this.defaultEncoding[charCode];\n const unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap);\n if (unicode !== -1) {\n unicodeCharCode = unicode;\n }\n }\n map[+charCode] = unicodeCharCode;\n });\n\n // Attempt to improve the glyph mapping for (some) composite fonts that\n // appear to lack meaningful ToUnicode data.\n if (this.composite && this.toUnicode instanceof IdentityToUnicodeMap) {\n if (/Verdana/i.test(name)) {\n // Fixes issue11242_reduced.pdf\n applyStandardFontGlyphMap(map, getGlyphMapForStandardFonts());\n }\n }\n this.toFontChar = map;\n }\n\n amendFallbackToUnicode(properties);\n this.loadedName = fontName.split(\"-\")[0];\n this.fontType = getFontType(type, subtype, properties.isStandardFont);\n }\n\n checkAndRepair(name, font, properties) {\n const VALID_TABLES = [\n \"OS/2\",\n \"cmap\",\n \"head\",\n \"hhea\",\n \"hmtx\",\n \"maxp\",\n \"name\",\n \"post\",\n \"loca\",\n \"glyf\",\n \"fpgm\",\n \"prep\",\n \"cvt \",\n \"CFF \",\n ];\n\n function readTables(file, numTables) {\n const tables = Object.create(null);\n tables[\"OS/2\"] = null;\n tables.cmap = null;\n tables.head = null;\n tables.hhea = null;\n tables.hmtx = null;\n tables.maxp = null;\n tables.name = null;\n tables.post = null;\n\n for (let i = 0; i < numTables; i++) {\n const table = readTableEntry(file);\n if (!VALID_TABLES.includes(table.tag)) {\n continue; // skipping table if it's not a required or optional table\n }\n if (table.length === 0) {\n continue; // skipping empty tables\n }\n tables[table.tag] = table;\n }\n return tables;\n }\n\n function readTableEntry(file) {\n const tag = file.getString(4);\n\n const checksum = file.getInt32() >>> 0;\n const offset = file.getInt32() >>> 0;\n const length = file.getInt32() >>> 0;\n\n // Read the table associated data\n const previousPosition = file.pos;\n file.pos = file.start ? file.start : 0;\n file.skip(offset);\n const data = file.getBytes(length);\n file.pos = previousPosition;\n\n if (tag === \"head\") {\n // clearing checksum adjustment\n data[8] = data[9] = data[10] = data[11] = 0;\n data[17] |= 0x20; // Set font optimized for cleartype flag.\n }\n\n return {\n tag,\n checksum,\n length,\n offset,\n data,\n };\n }\n\n function readOpenTypeHeader(ttf) {\n return {\n version: ttf.getString(4),\n numTables: ttf.getUint16(),\n searchRange: ttf.getUint16(),\n entrySelector: ttf.getUint16(),\n rangeShift: ttf.getUint16(),\n };\n }\n\n function readTrueTypeCollectionHeader(ttc) {\n const ttcTag = ttc.getString(4);\n assert(ttcTag === \"ttcf\", \"Must be a TrueType Collection font.\");\n\n const majorVersion = ttc.getUint16();\n const minorVersion = ttc.getUint16();\n const numFonts = ttc.getInt32() >>> 0;\n const offsetTable = [];\n for (let i = 0; i < numFonts; i++) {\n offsetTable.push(ttc.getInt32() >>> 0);\n }\n\n const header = {\n ttcTag,\n majorVersion,\n minorVersion,\n numFonts,\n offsetTable,\n };\n switch (majorVersion) {\n case 1:\n return header;\n case 2:\n header.dsigTag = ttc.getInt32() >>> 0;\n header.dsigLength = ttc.getInt32() >>> 0;\n header.dsigOffset = ttc.getInt32() >>> 0;\n return header;\n }\n throw new FormatError(\n `Invalid TrueType Collection majorVersion: ${majorVersion}.`\n );\n }\n\n function readTrueTypeCollectionData(ttc, fontName) {\n const { numFonts, offsetTable } = readTrueTypeCollectionHeader(ttc);\n const fontNameParts = fontName.split(\"+\");\n let fallbackData;\n\n for (let i = 0; i < numFonts; i++) {\n ttc.pos = (ttc.start || 0) + offsetTable[i];\n const potentialHeader = readOpenTypeHeader(ttc);\n const potentialTables = readTables(ttc, potentialHeader.numTables);\n\n if (!potentialTables.name) {\n throw new FormatError(\n 'TrueType Collection font must contain a \"name\" table.'\n );\n }\n const nameTable = readNameTable(potentialTables.name);\n\n for (let j = 0, jj = nameTable.length; j < jj; j++) {\n for (let k = 0, kk = nameTable[j].length; k < kk; k++) {\n const nameEntry =\n nameTable[j][k] && nameTable[j][k].replace(/\\s/g, \"\");\n if (!nameEntry) {\n continue;\n }\n if (nameEntry === fontName) {\n return {\n header: potentialHeader,\n tables: potentialTables,\n };\n }\n if (fontNameParts.length < 2) {\n continue;\n }\n for (const part of fontNameParts) {\n if (nameEntry === part) {\n fallbackData = {\n name: part,\n header: potentialHeader,\n tables: potentialTables,\n };\n }\n }\n }\n }\n }\n if (fallbackData) {\n warn(\n `TrueType Collection does not contain \"${fontName}\" font, ` +\n `falling back to \"${fallbackData.name}\" font instead.`\n );\n return {\n header: fallbackData.header,\n tables: fallbackData.tables,\n };\n }\n throw new FormatError(\n `TrueType Collection does not contain \"${fontName}\" font.`\n );\n }\n\n /**\n * Read the appropriate subtable from the cmap according to 9.6.6.4 from\n * PDF spec\n */\n function readCmapTable(cmap, file, isSymbolicFont, hasEncoding) {\n if (!cmap) {\n warn(\"No cmap table available.\");\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false,\n };\n }\n let segment;\n let start = (file.start ? file.start : 0) + cmap.offset;\n file.pos = start;\n\n file.skip(2); // version\n const numTables = file.getUint16();\n\n let potentialTable;\n let canBreak = false;\n // There's an order of preference in terms of which cmap subtable to\n // use:\n // - non-symbolic fonts the preference is a 3,1 table then a 1,0 table\n // - symbolic fonts the preference is a 3,0 table then a 1,0 table\n // The following takes advantage of the fact that the tables are sorted\n // to work.\n for (let i = 0; i < numTables; i++) {\n const platformId = file.getUint16();\n const encodingId = file.getUint16();\n const offset = file.getInt32() >>> 0;\n let useTable = false;\n\n // Sometimes there are multiple of the same type of table. Default\n // to choosing the first table and skip the rest.\n if (\n potentialTable &&\n potentialTable.platformId === platformId &&\n potentialTable.encodingId === encodingId\n ) {\n continue;\n }\n\n if (\n platformId === 0 &&\n (encodingId === /* Unicode Default */ 0 ||\n encodingId === /* Unicode 1.1 */ 1 ||\n encodingId === /* Unicode BMP */ 3)\n ) {\n useTable = true;\n // Continue the loop since there still may be a higher priority\n // table.\n } else if (platformId === 1 && encodingId === 0) {\n useTable = true;\n // Continue the loop since there still may be a higher priority\n // table.\n } else if (\n platformId === 3 &&\n encodingId === 1 &&\n (hasEncoding || !potentialTable)\n ) {\n useTable = true;\n if (!isSymbolicFont) {\n canBreak = true;\n }\n } else if (isSymbolicFont && platformId === 3 && encodingId === 0) {\n useTable = true;\n\n let correctlySorted = true;\n if (i < numTables - 1) {\n const nextBytes = file.peekBytes(2),\n nextPlatformId = int16(nextBytes[0], nextBytes[1]);\n if (nextPlatformId < platformId) {\n correctlySorted = false;\n }\n }\n if (correctlySorted) {\n canBreak = true;\n }\n }\n\n if (useTable) {\n potentialTable = {\n platformId,\n encodingId,\n offset,\n };\n }\n if (canBreak) {\n break;\n }\n }\n\n if (potentialTable) {\n file.pos = start + potentialTable.offset;\n }\n if (!potentialTable || file.peekByte() === -1) {\n warn(\"Could not find a preferred cmap table.\");\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false,\n };\n }\n\n const format = file.getUint16();\n let hasShortCmap = false;\n const mappings = [];\n let j, glyphId;\n\n // TODO(mack): refactor this cmap subtable reading logic out\n if (format === 0) {\n file.skip(2 + 2); // length + language\n\n for (j = 0; j < 256; j++) {\n const index = file.getByte();\n if (!index) {\n continue;\n }\n mappings.push({\n charCode: j,\n glyphId: index,\n });\n }\n hasShortCmap = true;\n } else if (format === 2) {\n file.skip(2 + 2); // length + language\n\n const subHeaderKeys = [];\n let maxSubHeaderKey = 0;\n // Read subHeaderKeys. If subHeaderKeys[i] === 0, then i is a\n // single-byte character. Otherwise, i is the first byte of a\n // multi-byte character, and the value is 8*index into\n // subHeaders.\n for (let i = 0; i < 256; i++) {\n const subHeaderKey = file.getUint16() >> 3;\n subHeaderKeys.push(subHeaderKey);\n maxSubHeaderKey = Math.max(subHeaderKey, maxSubHeaderKey);\n }\n // Read subHeaders. The number of entries is determined\n // dynamically based on the subHeaderKeys found above.\n const subHeaders = [];\n for (let i = 0; i <= maxSubHeaderKey; i++) {\n subHeaders.push({\n firstCode: file.getUint16(),\n entryCount: file.getUint16(),\n idDelta: signedInt16(file.getByte(), file.getByte()),\n idRangePos: file.pos + file.getUint16(),\n });\n }\n for (let i = 0; i < 256; i++) {\n if (subHeaderKeys[i] === 0) {\n // i is a single-byte code.\n file.pos = subHeaders[0].idRangePos + 2 * i;\n glyphId = file.getUint16();\n mappings.push({\n charCode: i,\n glyphId,\n });\n } else {\n // i is the first byte of a two-byte code.\n const s = subHeaders[subHeaderKeys[i]];\n for (j = 0; j < s.entryCount; j++) {\n const charCode = (i << 8) + j + s.firstCode;\n file.pos = s.idRangePos + 2 * j;\n glyphId = file.getUint16();\n if (glyphId !== 0) {\n glyphId = (glyphId + s.idDelta) % 65536;\n }\n mappings.push({\n charCode,\n glyphId,\n });\n }\n }\n }\n } else if (format === 4) {\n file.skip(2 + 2); // length + language\n\n // re-creating the table in format 4 since the encoding\n // might be changed\n const segCount = file.getUint16() >> 1;\n file.skip(6); // skipping range fields\n const segments = [];\n let segIndex;\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments.push({ end: file.getUint16() });\n }\n file.skip(2);\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments[segIndex].start = file.getUint16();\n }\n\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments[segIndex].delta = file.getUint16();\n }\n\n let offsetsCount = 0,\n offsetIndex;\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segment = segments[segIndex];\n const rangeOffset = file.getUint16();\n if (!rangeOffset) {\n segment.offsetIndex = -1;\n continue;\n }\n\n offsetIndex = (rangeOffset >> 1) - (segCount - segIndex);\n segment.offsetIndex = offsetIndex;\n offsetsCount = Math.max(\n offsetsCount,\n offsetIndex + segment.end - segment.start + 1\n );\n }\n\n const offsets = [];\n for (j = 0; j < offsetsCount; j++) {\n offsets.push(file.getUint16());\n }\n\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segment = segments[segIndex];\n start = segment.start;\n const end = segment.end;\n const delta = segment.delta;\n offsetIndex = segment.offsetIndex;\n\n for (j = start; j <= end; j++) {\n if (j === 0xffff) {\n continue;\n }\n\n glyphId = offsetIndex < 0 ? j : offsets[offsetIndex + j - start];\n glyphId = (glyphId + delta) & 0xffff;\n mappings.push({\n charCode: j,\n glyphId,\n });\n }\n }\n } else if (format === 6) {\n file.skip(2 + 2); // length + language\n\n // Format 6 is a 2-bytes dense mapping, which means the font data\n // lives glue together even if they are pretty far in the unicode\n // table. (This looks weird, so I can have missed something), this\n // works on Linux but seems to fails on Mac so let's rewrite the\n // cmap table to a 3-1-4 style\n const firstCode = file.getUint16();\n const entryCount = file.getUint16();\n\n for (j = 0; j < entryCount; j++) {\n glyphId = file.getUint16();\n const charCode = firstCode + j;\n\n mappings.push({\n charCode,\n glyphId,\n });\n }\n } else if (format === 12) {\n file.skip(2 + 4 + 4); // reserved + length + language\n\n const nGroups = file.getInt32() >>> 0;\n for (j = 0; j < nGroups; j++) {\n const startCharCode = file.getInt32() >>> 0;\n const endCharCode = file.getInt32() >>> 0;\n let glyphCode = file.getInt32() >>> 0;\n\n for (\n let charCode = startCharCode;\n charCode <= endCharCode;\n charCode++\n ) {\n mappings.push({\n charCode,\n glyphId: glyphCode++,\n });\n }\n }\n } else {\n warn(\"cmap table has unsupported format: \" + format);\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false,\n };\n }\n\n // removing duplicate entries\n mappings.sort(function (a, b) {\n return a.charCode - b.charCode;\n });\n for (let i = 1; i < mappings.length; i++) {\n if (mappings[i - 1].charCode === mappings[i].charCode) {\n mappings.splice(i, 1);\n i--;\n }\n }\n\n return {\n platformId: potentialTable.platformId,\n encodingId: potentialTable.encodingId,\n mappings,\n hasShortCmap,\n };\n }\n\n function sanitizeMetrics(\n file,\n header,\n metrics,\n headTable,\n numGlyphs,\n dupFirstEntry\n ) {\n if (!header) {\n if (metrics) {\n metrics.data = null;\n }\n return;\n }\n\n file.pos = (file.start ? file.start : 0) + header.offset;\n file.pos += 4; // version\n file.pos += 2; // ascent\n file.pos += 2; // descent\n file.pos += 2; // linegap\n file.pos += 2; // adv_width_max\n file.pos += 2; // min_sb1\n file.pos += 2; // min_sb2\n file.pos += 2; // max_extent\n file.pos += 2; // caret_slope_rise\n file.pos += 2; // caret_slope_run\n const caretOffset = file.getUint16();\n file.pos += 8; // reserved\n file.pos += 2; // format\n let numOfMetrics = file.getUint16();\n\n if (caretOffset !== 0) {\n const macStyle = int16(headTable.data[44], headTable.data[45]);\n if (!(macStyle & 2)) {\n // Suppress OTS warnings about the `caretOffset` in the hhea-table.\n header.data[22] = 0;\n header.data[23] = 0;\n }\n }\n\n if (numOfMetrics > numGlyphs) {\n info(\n `The numOfMetrics (${numOfMetrics}) should not be ` +\n `greater than the numGlyphs (${numGlyphs}).`\n );\n // Reduce numOfMetrics if it is greater than numGlyphs\n numOfMetrics = numGlyphs;\n header.data[34] = (numOfMetrics & 0xff00) >> 8;\n header.data[35] = numOfMetrics & 0x00ff;\n }\n\n const numOfSidebearings = numGlyphs - numOfMetrics;\n const numMissing =\n numOfSidebearings - ((metrics.length - numOfMetrics * 4) >> 1);\n\n if (numMissing > 0) {\n // For each missing glyph, we set both the width and lsb to 0 (zero).\n // Since we need to add two properties for each glyph, this explains\n // the use of |numMissing * 2| when initializing the typed array.\n const entries = new Uint8Array(metrics.length + numMissing * 2);\n entries.set(metrics.data);\n if (dupFirstEntry) {\n // Set the sidebearing value of the duplicated glyph.\n entries[metrics.length] = metrics.data[2];\n entries[metrics.length + 1] = metrics.data[3];\n }\n metrics.data = entries;\n }\n }\n\n function sanitizeGlyph(\n source,\n sourceStart,\n sourceEnd,\n dest,\n destStart,\n hintsValid\n ) {\n const glyphProfile = {\n length: 0,\n sizeOfInstructions: 0,\n };\n if (sourceEnd - sourceStart <= 12) {\n // glyph with data less than 12 is invalid one\n return glyphProfile;\n }\n const glyf = source.subarray(sourceStart, sourceEnd);\n let contoursCount = signedInt16(glyf[0], glyf[1]);\n if (contoursCount < 0) {\n // OTS doesn't like contour count to be less than -1.\n contoursCount = -1;\n writeSignedInt16(glyf, 0, contoursCount);\n // complex glyph, writing as is\n dest.set(glyf, destStart);\n glyphProfile.length = glyf.length;\n return glyphProfile;\n }\n\n let i,\n j = 10,\n flagsCount = 0;\n for (i = 0; i < contoursCount; i++) {\n const endPoint = (glyf[j] << 8) | glyf[j + 1];\n flagsCount = endPoint + 1;\n j += 2;\n }\n // skipping instructions\n const instructionsStart = j;\n const instructionsLength = (glyf[j] << 8) | glyf[j + 1];\n glyphProfile.sizeOfInstructions = instructionsLength;\n j += 2 + instructionsLength;\n const instructionsEnd = j;\n // validating flags\n let coordinatesLength = 0;\n for (i = 0; i < flagsCount; i++) {\n const flag = glyf[j++];\n if (flag & 0xc0) {\n // reserved flags must be zero, cleaning up\n glyf[j - 1] = flag & 0x3f;\n }\n let xLength = 2;\n if (flag & 2) {\n xLength = 1;\n } else if (flag & 16) {\n xLength = 0;\n }\n let yLength = 2;\n if (flag & 4) {\n yLength = 1;\n } else if (flag & 32) {\n yLength = 0;\n }\n const xyLength = xLength + yLength;\n coordinatesLength += xyLength;\n if (flag & 8) {\n const repeat = glyf[j++];\n i += repeat;\n coordinatesLength += repeat * xyLength;\n }\n }\n // glyph without coordinates will be rejected\n if (coordinatesLength === 0) {\n return glyphProfile;\n }\n let glyphDataLength = j + coordinatesLength;\n if (glyphDataLength > glyf.length) {\n // not enough data for coordinates\n return glyphProfile;\n }\n if (!hintsValid && instructionsLength > 0) {\n dest.set(glyf.subarray(0, instructionsStart), destStart);\n dest.set([0, 0], destStart + instructionsStart);\n dest.set(\n glyf.subarray(instructionsEnd, glyphDataLength),\n destStart + instructionsStart + 2\n );\n glyphDataLength -= instructionsLength;\n if (glyf.length - glyphDataLength > 3) {\n glyphDataLength = (glyphDataLength + 3) & ~3;\n }\n glyphProfile.length = glyphDataLength;\n return glyphProfile;\n }\n if (glyf.length - glyphDataLength > 3) {\n // truncating and aligning to 4 bytes the long glyph data\n glyphDataLength = (glyphDataLength + 3) & ~3;\n dest.set(glyf.subarray(0, glyphDataLength), destStart);\n glyphProfile.length = glyphDataLength;\n return glyphProfile;\n }\n // glyph data is fine\n dest.set(glyf, destStart);\n glyphProfile.length = glyf.length;\n return glyphProfile;\n }\n\n function sanitizeHead(head, numGlyphs, locaLength) {\n const data = head.data;\n\n // Validate version:\n // Should always be 0x00010000\n const version = int32(data[0], data[1], data[2], data[3]);\n if (version >> 16 !== 1) {\n info(\"Attempting to fix invalid version in head table: \" + version);\n data[0] = 0;\n data[1] = 1;\n data[2] = 0;\n data[3] = 0;\n }\n\n const indexToLocFormat = int16(data[50], data[51]);\n if (indexToLocFormat < 0 || indexToLocFormat > 1) {\n info(\n \"Attempting to fix invalid indexToLocFormat in head table: \" +\n indexToLocFormat\n );\n\n // The value of indexToLocFormat should be 0 if the loca table\n // consists of short offsets, and should be 1 if the loca table\n // consists of long offsets.\n //\n // The number of entries in the loca table should be numGlyphs + 1.\n //\n // Using this information, we can work backwards to deduce if the\n // size of each offset in the loca table, and thus figure out the\n // appropriate value for indexToLocFormat.\n\n const numGlyphsPlusOne = numGlyphs + 1;\n if (locaLength === numGlyphsPlusOne << 1) {\n // 0x0000 indicates the loca table consists of short offsets\n data[50] = 0;\n data[51] = 0;\n } else if (locaLength === numGlyphsPlusOne << 2) {\n // 0x0001 indicates the loca table consists of long offsets\n data[50] = 0;\n data[51] = 1;\n } else {\n throw new FormatError(\n \"Could not fix indexToLocFormat: \" + indexToLocFormat\n );\n }\n }\n }\n\n function sanitizeGlyphLocations(\n loca,\n glyf,\n numGlyphs,\n isGlyphLocationsLong,\n hintsValid,\n dupFirstEntry,\n maxSizeOfInstructions\n ) {\n let itemSize, itemDecode, itemEncode;\n if (isGlyphLocationsLong) {\n itemSize = 4;\n itemDecode = function fontItemDecodeLong(data, offset) {\n return (\n (data[offset] << 24) |\n (data[offset + 1] << 16) |\n (data[offset + 2] << 8) |\n data[offset + 3]\n );\n };\n itemEncode = function fontItemEncodeLong(data, offset, value) {\n data[offset] = (value >>> 24) & 0xff;\n data[offset + 1] = (value >> 16) & 0xff;\n data[offset + 2] = (value >> 8) & 0xff;\n data[offset + 3] = value & 0xff;\n };\n } else {\n itemSize = 2;\n itemDecode = function fontItemDecode(data, offset) {\n return (data[offset] << 9) | (data[offset + 1] << 1);\n };\n itemEncode = function fontItemEncode(data, offset, value) {\n data[offset] = (value >> 9) & 0xff;\n data[offset + 1] = (value >> 1) & 0xff;\n };\n }\n // The first glyph is duplicated.\n const numGlyphsOut = dupFirstEntry ? numGlyphs + 1 : numGlyphs;\n const locaDataSize = itemSize * (1 + numGlyphsOut);\n // Resize loca table to account for duplicated glyph.\n const locaData = new Uint8Array(locaDataSize);\n locaData.set(loca.data.subarray(0, locaDataSize));\n loca.data = locaData;\n // removing the invalid glyphs\n const oldGlyfData = glyf.data;\n const oldGlyfDataLength = oldGlyfData.length;\n const newGlyfData = new Uint8Array(oldGlyfDataLength);\n\n // The spec says the offsets should be in ascending order, however\n // this is not true for some fonts or they use the offset of 0 to mark a\n // glyph as missing. OTS requires the offsets to be in order and not to\n // be zero, so we must sort and rebuild the loca table and potentially\n // re-arrange the glyf data.\n let i, j;\n const locaEntries = [];\n // There are numGlyphs + 1 loca table entries.\n for (i = 0, j = 0; i < numGlyphs + 1; i++, j += itemSize) {\n let offset = itemDecode(locaData, j);\n if (offset > oldGlyfDataLength) {\n offset = oldGlyfDataLength;\n }\n locaEntries.push({\n index: i,\n offset,\n endOffset: 0,\n });\n }\n locaEntries.sort((a, b) => {\n return a.offset - b.offset;\n });\n // Now the offsets are sorted, calculate the end offset of each glyph.\n // The last loca entry's endOffset is not calculated since it's the end\n // of the data and will be stored on the previous entry's endOffset.\n for (i = 0; i < numGlyphs; i++) {\n locaEntries[i].endOffset = locaEntries[i + 1].offset;\n }\n // Re-sort so glyphs aren't out of order.\n locaEntries.sort((a, b) => {\n return a.index - b.index;\n });\n // Calculate the endOffset of the \"first\" glyph correctly when there are\n // *multiple* empty ones at the start of the data (fixes issue14618.pdf).\n for (i = 0; i < numGlyphs; i++) {\n const { offset, endOffset } = locaEntries[i];\n if (offset !== 0 || endOffset !== 0) {\n break;\n }\n const nextOffset = locaEntries[i + 1].offset;\n if (nextOffset === 0) {\n continue;\n }\n locaEntries[i].endOffset = nextOffset;\n break;\n }\n\n const missingGlyphs = Object.create(null);\n let writeOffset = 0;\n itemEncode(locaData, 0, writeOffset);\n for (i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) {\n const glyphProfile = sanitizeGlyph(\n oldGlyfData,\n locaEntries[i].offset,\n locaEntries[i].endOffset,\n newGlyfData,\n writeOffset,\n hintsValid\n );\n const newLength = glyphProfile.length;\n if (newLength === 0) {\n missingGlyphs[i] = true;\n }\n if (glyphProfile.sizeOfInstructions > maxSizeOfInstructions) {\n maxSizeOfInstructions = glyphProfile.sizeOfInstructions;\n }\n writeOffset += newLength;\n itemEncode(locaData, j, writeOffset);\n }\n\n if (writeOffset === 0) {\n // glyf table cannot be empty -- redoing the glyf and loca tables\n // to have single glyph with one point\n const simpleGlyph = new Uint8Array([\n 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0,\n ]);\n for (i = 0, j = itemSize; i < numGlyphsOut; i++, j += itemSize) {\n itemEncode(locaData, j, simpleGlyph.length);\n }\n glyf.data = simpleGlyph;\n } else if (dupFirstEntry) {\n // Browsers will not display a glyph at position 0. Typically glyph 0\n // is notdef, but a number of fonts put a valid glyph there so it must\n // be duplicated and appended.\n const firstEntryLength = itemDecode(locaData, itemSize);\n if (newGlyfData.length > firstEntryLength + writeOffset) {\n glyf.data = newGlyfData.subarray(0, firstEntryLength + writeOffset);\n } else {\n glyf.data = new Uint8Array(firstEntryLength + writeOffset);\n glyf.data.set(newGlyfData.subarray(0, writeOffset));\n }\n glyf.data.set(newGlyfData.subarray(0, firstEntryLength), writeOffset);\n itemEncode(\n loca.data,\n locaData.length - itemSize,\n writeOffset + firstEntryLength\n );\n } else {\n glyf.data = newGlyfData.subarray(0, writeOffset);\n }\n return {\n missingGlyphs,\n maxSizeOfInstructions,\n };\n }\n\n function readPostScriptTable(post, propertiesObj, maxpNumGlyphs) {\n const start = (font.start ? font.start : 0) + post.offset;\n font.pos = start;\n\n const length = post.length,\n end = start + length;\n const version = font.getInt32();\n // skip rest to the tables\n font.skip(28);\n\n let glyphNames;\n let valid = true;\n let i;\n\n switch (version) {\n case 0x00010000:\n glyphNames = MacStandardGlyphOrdering;\n break;\n case 0x00020000:\n const numGlyphs = font.getUint16();\n if (numGlyphs !== maxpNumGlyphs) {\n valid = false;\n break;\n }\n const glyphNameIndexes = [];\n for (i = 0; i < numGlyphs; ++i) {\n const index = font.getUint16();\n if (index >= 32768) {\n valid = false;\n break;\n }\n glyphNameIndexes.push(index);\n }\n if (!valid) {\n break;\n }\n const customNames = [],\n strBuf = [];\n while (font.pos < end) {\n const stringLength = font.getByte();\n strBuf.length = stringLength;\n for (i = 0; i < stringLength; ++i) {\n strBuf[i] = String.fromCharCode(font.getByte());\n }\n customNames.push(strBuf.join(\"\"));\n }\n glyphNames = [];\n for (i = 0; i < numGlyphs; ++i) {\n const j = glyphNameIndexes[i];\n if (j < 258) {\n glyphNames.push(MacStandardGlyphOrdering[j]);\n continue;\n }\n glyphNames.push(customNames[j - 258]);\n }\n break;\n case 0x00030000:\n break;\n default:\n warn(\"Unknown/unsupported post table version \" + version);\n valid = false;\n if (propertiesObj.defaultEncoding) {\n glyphNames = propertiesObj.defaultEncoding;\n }\n break;\n }\n propertiesObj.glyphNames = glyphNames;\n return valid;\n }\n\n function readNameTable(nameTable) {\n const start = (font.start ? font.start : 0) + nameTable.offset;\n font.pos = start;\n\n const names = [[], []];\n const length = nameTable.length,\n end = start + length;\n const format = font.getUint16();\n const FORMAT_0_HEADER_LENGTH = 6;\n if (format !== 0 || length < FORMAT_0_HEADER_LENGTH) {\n // unsupported name table format or table \"too\" small\n return names;\n }\n const numRecords = font.getUint16();\n const stringsStart = font.getUint16();\n const records = [];\n const NAME_RECORD_LENGTH = 12;\n let i, ii;\n\n for (i = 0; i < numRecords && font.pos + NAME_RECORD_LENGTH <= end; i++) {\n const r = {\n platform: font.getUint16(),\n encoding: font.getUint16(),\n language: font.getUint16(),\n name: font.getUint16(),\n length: font.getUint16(),\n offset: font.getUint16(),\n };\n // using only Macintosh and Windows platform/encoding names\n if (\n (r.platform === 1 && r.encoding === 0 && r.language === 0) ||\n (r.platform === 3 && r.encoding === 1 && r.language === 0x409)\n ) {\n records.push(r);\n }\n }\n for (i = 0, ii = records.length; i < ii; i++) {\n const record = records[i];\n if (record.length <= 0) {\n continue; // Nothing to process, ignoring.\n }\n const pos = start + stringsStart + record.offset;\n if (pos + record.length > end) {\n continue; // outside of name table, ignoring\n }\n font.pos = pos;\n const nameIndex = record.name;\n if (record.encoding) {\n // unicode\n let str = \"\";\n for (let j = 0, jj = record.length; j < jj; j += 2) {\n str += String.fromCharCode(font.getUint16());\n }\n names[1][nameIndex] = str;\n } else {\n names[0][nameIndex] = font.getString(record.length);\n }\n }\n return names;\n }\n\n // prettier-ignore\n const TTOpsStackDeltas = [\n 0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, 0, 0, -2, -5,\n -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1,\n 1, -1, -999, 0, 1, 0, -1, -2, 0, -1, -2, -1, -1, 0, -1, -1,\n 0, 0, -999, -999, -1, -1, -1, -1, -2, -999, -2, -2, -999, 0, -2, -2,\n 0, 0, -2, 0, -2, 0, 0, 0, -2, -1, -1, 1, 1, 0, 0, -1,\n -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, 0, -999, -1, -1,\n -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n -2, -999, -999, -999, -999, -999, -1, -1, -2, -2, 0, 0, 0, 0, -1, -1,\n -999, -2, -2, 0, 0, -1, -2, -2, 0, 0, 0, -1, -1, -1, -2];\n // 0xC0-DF == -1 and 0xE0-FF == -2\n\n function sanitizeTTProgram(table, ttContext) {\n let data = table.data;\n let i = 0,\n j,\n n,\n b,\n funcId,\n pc,\n lastEndf = 0,\n lastDeff = 0;\n const stack = [];\n const callstack = [];\n const functionsCalled = [];\n let tooComplexToFollowFunctions = ttContext.tooComplexToFollowFunctions;\n let inFDEF = false,\n ifLevel = 0,\n inELSE = 0;\n for (let ii = data.length; i < ii; ) {\n const op = data[i++];\n // The TrueType instruction set docs can be found at\n // https://developer.apple.com/fonts/TTRefMan/RM05/Chap5.html\n if (op === 0x40) {\n // NPUSHB - pushes n bytes\n n = data[i++];\n if (inFDEF || inELSE) {\n i += n;\n } else {\n for (j = 0; j < n; j++) {\n stack.push(data[i++]);\n }\n }\n } else if (op === 0x41) {\n // NPUSHW - pushes n words\n n = data[i++];\n if (inFDEF || inELSE) {\n i += n * 2;\n } else {\n for (j = 0; j < n; j++) {\n b = data[i++];\n stack.push((b << 8) | data[i++]);\n }\n }\n } else if ((op & 0xf8) === 0xb0) {\n // PUSHB - pushes bytes\n n = op - 0xb0 + 1;\n if (inFDEF || inELSE) {\n i += n;\n } else {\n for (j = 0; j < n; j++) {\n stack.push(data[i++]);\n }\n }\n } else if ((op & 0xf8) === 0xb8) {\n // PUSHW - pushes words\n n = op - 0xb8 + 1;\n if (inFDEF || inELSE) {\n i += n * 2;\n } else {\n for (j = 0; j < n; j++) {\n b = data[i++];\n stack.push((b << 8) | data[i++]);\n }\n }\n } else if (op === 0x2b && !tooComplexToFollowFunctions) {\n // CALL\n if (!inFDEF && !inELSE) {\n // collecting information about which functions are used\n funcId = stack[stack.length - 1];\n if (isNaN(funcId)) {\n info(\"TT: CALL empty stack (or invalid entry).\");\n } else {\n ttContext.functionsUsed[funcId] = true;\n if (funcId in ttContext.functionsStackDeltas) {\n const newStackLength =\n stack.length + ttContext.functionsStackDeltas[funcId];\n if (newStackLength < 0) {\n warn(\"TT: CALL invalid functions stack delta.\");\n ttContext.hintsValid = false;\n return;\n }\n stack.length = newStackLength;\n } else if (\n funcId in ttContext.functionsDefined &&\n !functionsCalled.includes(funcId)\n ) {\n callstack.push({ data, i, stackTop: stack.length - 1 });\n functionsCalled.push(funcId);\n pc = ttContext.functionsDefined[funcId];\n if (!pc) {\n warn(\"TT: CALL non-existent function\");\n ttContext.hintsValid = false;\n return;\n }\n data = pc.data;\n i = pc.i;\n }\n }\n }\n } else if (op === 0x2c && !tooComplexToFollowFunctions) {\n // FDEF\n if (inFDEF || inELSE) {\n warn(\"TT: nested FDEFs not allowed\");\n tooComplexToFollowFunctions = true;\n }\n inFDEF = true;\n // collecting information about which functions are defined\n lastDeff = i;\n funcId = stack.pop();\n ttContext.functionsDefined[funcId] = { data, i };\n } else if (op === 0x2d) {\n // ENDF - end of function\n if (inFDEF) {\n inFDEF = false;\n lastEndf = i;\n } else {\n pc = callstack.pop();\n if (!pc) {\n warn(\"TT: ENDF bad stack\");\n ttContext.hintsValid = false;\n return;\n }\n funcId = functionsCalled.pop();\n data = pc.data;\n i = pc.i;\n ttContext.functionsStackDeltas[funcId] = stack.length - pc.stackTop;\n }\n } else if (op === 0x89) {\n // IDEF - instruction definition\n if (inFDEF || inELSE) {\n warn(\"TT: nested IDEFs not allowed\");\n tooComplexToFollowFunctions = true;\n }\n inFDEF = true;\n // recording it as a function to track ENDF\n lastDeff = i;\n } else if (op === 0x58) {\n // IF\n ++ifLevel;\n } else if (op === 0x1b) {\n // ELSE\n inELSE = ifLevel;\n } else if (op === 0x59) {\n // EIF\n if (inELSE === ifLevel) {\n inELSE = 0;\n }\n --ifLevel;\n } else if (op === 0x1c) {\n // JMPR\n if (!inFDEF && !inELSE) {\n const offset = stack[stack.length - 1];\n // only jumping forward to prevent infinite loop\n if (offset > 0) {\n i += offset - 1;\n }\n }\n }\n // Adjusting stack not extactly, but just enough to get function id\n if (!inFDEF && !inELSE) {\n let stackDelta = 0;\n if (op <= 0x8e) {\n stackDelta = TTOpsStackDeltas[op];\n } else if (op >= 0xc0 && op <= 0xdf) {\n stackDelta = -1;\n } else if (op >= 0xe0) {\n stackDelta = -2;\n }\n if (op >= 0x71 && op <= 0x75) {\n n = stack.pop();\n if (!isNaN(n)) {\n stackDelta = -n * 2;\n }\n }\n while (stackDelta < 0 && stack.length > 0) {\n stack.pop();\n stackDelta++;\n }\n while (stackDelta > 0) {\n stack.push(NaN); // pushing any number into stack\n stackDelta--;\n }\n }\n }\n ttContext.tooComplexToFollowFunctions = tooComplexToFollowFunctions;\n const content = [data];\n if (i > data.length) {\n content.push(new Uint8Array(i - data.length));\n }\n if (lastDeff > lastEndf) {\n warn(\"TT: complementing a missing function tail\");\n // new function definition started, but not finished\n // complete function by [CLEAR, ENDF]\n content.push(new Uint8Array([0x22, 0x2d]));\n }\n foldTTTable(table, content);\n }\n\n function checkInvalidFunctions(ttContext, maxFunctionDefs) {\n if (ttContext.tooComplexToFollowFunctions) {\n return;\n }\n if (ttContext.functionsDefined.length > maxFunctionDefs) {\n warn(\"TT: more functions defined than expected\");\n ttContext.hintsValid = false;\n return;\n }\n for (let j = 0, jj = ttContext.functionsUsed.length; j < jj; j++) {\n if (j > maxFunctionDefs) {\n warn(\"TT: invalid function id: \" + j);\n ttContext.hintsValid = false;\n return;\n }\n if (ttContext.functionsUsed[j] && !ttContext.functionsDefined[j]) {\n warn(\"TT: undefined function: \" + j);\n ttContext.hintsValid = false;\n return;\n }\n }\n }\n\n function foldTTTable(table, content) {\n if (content.length > 1) {\n // concatenating the content items\n let newLength = 0;\n let j, jj;\n for (j = 0, jj = content.length; j < jj; j++) {\n newLength += content[j].length;\n }\n newLength = (newLength + 3) & ~3;\n const result = new Uint8Array(newLength);\n let pos = 0;\n for (j = 0, jj = content.length; j < jj; j++) {\n result.set(content[j], pos);\n pos += content[j].length;\n }\n table.data = result;\n table.length = newLength;\n }\n }\n\n function sanitizeTTPrograms(fpgm, prep, cvt, maxFunctionDefs) {\n const ttContext = {\n functionsDefined: [],\n functionsUsed: [],\n functionsStackDeltas: [],\n tooComplexToFollowFunctions: false,\n hintsValid: true,\n };\n if (fpgm) {\n sanitizeTTProgram(fpgm, ttContext);\n }\n if (prep) {\n sanitizeTTProgram(prep, ttContext);\n }\n if (fpgm) {\n checkInvalidFunctions(ttContext, maxFunctionDefs);\n }\n if (cvt && cvt.length & 1) {\n const cvtData = new Uint8Array(cvt.length + 1);\n cvtData.set(cvt.data);\n cvt.data = cvtData;\n }\n return ttContext.hintsValid;\n }\n\n // The following steps modify the original font data, making copy\n font = new Stream(new Uint8Array(font.getBytes()));\n\n let header, tables;\n if (isTrueTypeCollectionFile(font)) {\n const ttcData = readTrueTypeCollectionData(font, this.name);\n header = ttcData.header;\n tables = ttcData.tables;\n } else {\n header = readOpenTypeHeader(font);\n tables = readTables(font, header.numTables);\n }\n let cff, cffFile;\n\n const isTrueType = !tables[\"CFF \"];\n if (!isTrueType) {\n const isComposite =\n properties.composite &&\n ((properties.cidToGidMap || []).length > 0 ||\n !(properties.cMap instanceof IdentityCMap));\n // OpenType font (skip composite fonts with non-default glyph mapping).\n if (\n (header.version === \"OTTO\" && !isComposite) ||\n !tables.head ||\n !tables.hhea ||\n !tables.maxp ||\n !tables.post\n ) {\n // No major tables: throwing everything at `CFFFont`.\n cffFile = new Stream(tables[\"CFF \"].data);\n cff = new CFFFont(cffFile, properties);\n\n adjustWidths(properties);\n\n return this.convert(name, cff, properties);\n }\n\n delete tables.glyf;\n delete tables.loca;\n delete tables.fpgm;\n delete tables.prep;\n delete tables[\"cvt \"];\n this.isOpenType = true;\n } else {\n if (!tables.loca) {\n throw new FormatError('Required \"loca\" table is not found');\n }\n if (!tables.glyf) {\n warn('Required \"glyf\" table is not found -- trying to recover.');\n // Note: We use `sanitizeGlyphLocations` to add dummy glyf data below.\n tables.glyf = {\n tag: \"glyf\",\n data: new Uint8Array(0),\n };\n }\n this.isOpenType = false;\n }\n\n if (!tables.maxp) {\n throw new FormatError('Required \"maxp\" table is not found');\n }\n\n font.pos = (font.start || 0) + tables.maxp.offset;\n const version = font.getInt32();\n const numGlyphs = font.getUint16();\n\n if (\n properties.scaleFactors &&\n properties.scaleFactors.length === numGlyphs &&\n isTrueType\n ) {\n const { scaleFactors } = properties;\n const isGlyphLocationsLong = int16(\n tables.head.data[50],\n tables.head.data[51]\n );\n\n const glyphs = new GlyfTable({\n glyfTable: tables.glyf.data,\n isGlyphLocationsLong,\n locaTable: tables.loca.data,\n numGlyphs,\n });\n glyphs.scale(scaleFactors);\n\n const { glyf, loca, isLocationLong } = glyphs.write();\n tables.glyf.data = glyf;\n tables.loca.data = loca;\n\n if (isLocationLong !== !!isGlyphLocationsLong) {\n tables.head.data[50] = 0;\n tables.head.data[51] = isLocationLong ? 1 : 0;\n }\n\n const metrics = tables.hmtx.data;\n\n for (let i = 0; i < numGlyphs; i++) {\n const j = 4 * i;\n const advanceWidth = Math.round(\n scaleFactors[i] * int16(metrics[j], metrics[j + 1])\n );\n metrics[j] = (advanceWidth >> 8) & 0xff;\n metrics[j + 1] = advanceWidth & 0xff;\n const lsb = Math.round(\n scaleFactors[i] * signedInt16(metrics[j + 2], metrics[j + 3])\n );\n writeSignedInt16(metrics, j + 2, lsb);\n }\n }\n\n // Glyph 0 is duplicated and appended.\n let numGlyphsOut = numGlyphs + 1;\n let dupFirstEntry = true;\n if (numGlyphsOut > 0xffff) {\n dupFirstEntry = false;\n numGlyphsOut = numGlyphs;\n warn(\"Not enough space in glyfs to duplicate first glyph.\");\n }\n let maxFunctionDefs = 0;\n let maxSizeOfInstructions = 0;\n if (version >= 0x00010000 && tables.maxp.length >= 22) {\n // maxZones can be invalid\n font.pos += 8;\n const maxZones = font.getUint16();\n if (maxZones > 2) {\n // reset to 2 if font has invalid maxZones\n tables.maxp.data[14] = 0;\n tables.maxp.data[15] = 2;\n }\n font.pos += 4;\n maxFunctionDefs = font.getUint16();\n font.pos += 4;\n maxSizeOfInstructions = font.getUint16();\n }\n\n tables.maxp.data[4] = numGlyphsOut >> 8;\n tables.maxp.data[5] = numGlyphsOut & 255;\n\n const hintsValid = sanitizeTTPrograms(\n tables.fpgm,\n tables.prep,\n tables[\"cvt \"],\n maxFunctionDefs\n );\n if (!hintsValid) {\n delete tables.fpgm;\n delete tables.prep;\n delete tables[\"cvt \"];\n }\n\n // Ensure the hmtx table contains the advance width and\n // sidebearings information for numGlyphs in the maxp table\n sanitizeMetrics(\n font,\n tables.hhea,\n tables.hmtx,\n tables.head,\n numGlyphsOut,\n dupFirstEntry\n );\n\n if (!tables.head) {\n throw new FormatError('Required \"head\" table is not found');\n }\n\n sanitizeHead(tables.head, numGlyphs, isTrueType ? tables.loca.length : 0);\n\n let missingGlyphs = Object.create(null);\n if (isTrueType) {\n const isGlyphLocationsLong = int16(\n tables.head.data[50],\n tables.head.data[51]\n );\n const glyphsInfo = sanitizeGlyphLocations(\n tables.loca,\n tables.glyf,\n numGlyphs,\n isGlyphLocationsLong,\n hintsValid,\n dupFirstEntry,\n maxSizeOfInstructions\n );\n missingGlyphs = glyphsInfo.missingGlyphs;\n\n // Some fonts have incorrect maxSizeOfInstructions values, so we use\n // the computed value instead.\n if (version >= 0x00010000 && tables.maxp.length >= 22) {\n tables.maxp.data[26] = glyphsInfo.maxSizeOfInstructions >> 8;\n tables.maxp.data[27] = glyphsInfo.maxSizeOfInstructions & 255;\n }\n }\n if (!tables.hhea) {\n throw new FormatError('Required \"hhea\" table is not found');\n }\n\n // Sanitizer reduces the glyph advanceWidth to the maxAdvanceWidth\n // Sometimes it's 0. That needs to be fixed\n if (tables.hhea.data[10] === 0 && tables.hhea.data[11] === 0) {\n tables.hhea.data[10] = 0xff;\n tables.hhea.data[11] = 0xff;\n }\n\n // Extract some more font properties from the OpenType head and\n // hhea tables; yMin and descent value are always negative.\n const metricsOverride = {\n unitsPerEm: int16(tables.head.data[18], tables.head.data[19]),\n yMax: int16(tables.head.data[42], tables.head.data[43]),\n yMin: signedInt16(tables.head.data[38], tables.head.data[39]),\n ascent: signedInt16(tables.hhea.data[4], tables.hhea.data[5]),\n descent: signedInt16(tables.hhea.data[6], tables.hhea.data[7]),\n lineGap: signedInt16(tables.hhea.data[8], tables.hhea.data[9]),\n };\n\n // PDF FontDescriptor metrics lie -- using data from actual font.\n this.ascent = metricsOverride.ascent / metricsOverride.unitsPerEm;\n this.descent = metricsOverride.descent / metricsOverride.unitsPerEm;\n this.lineGap = metricsOverride.lineGap / metricsOverride.unitsPerEm;\n\n if (this.cssFontInfo && this.cssFontInfo.lineHeight) {\n this.lineHeight = this.cssFontInfo.metrics.lineHeight;\n this.lineGap = this.cssFontInfo.metrics.lineGap;\n } else {\n this.lineHeight = this.ascent - this.descent + this.lineGap;\n }\n\n // The 'post' table has glyphs names.\n if (tables.post) {\n readPostScriptTable(tables.post, properties, numGlyphs);\n }\n\n // The original 'post' table is not needed, replace it.\n tables.post = {\n tag: \"post\",\n data: createPostTable(properties),\n };\n\n const charCodeToGlyphId = [];\n\n // Helper function to try to skip mapping of empty glyphs.\n function hasGlyph(glyphId) {\n return !missingGlyphs[glyphId];\n }\n\n if (properties.composite) {\n const cidToGidMap = properties.cidToGidMap || [];\n const isCidToGidMapEmpty = cidToGidMap.length === 0;\n\n properties.cMap.forEach(function (charCode, cid) {\n if (typeof cid === \"string\") {\n cid = convertCidString(charCode, cid, /* shouldThrow = */ true);\n }\n if (cid > 0xffff) {\n throw new FormatError(\"Max size of CID is 65,535\");\n }\n let glyphId = -1;\n if (isCidToGidMapEmpty) {\n glyphId = cid;\n } else if (cidToGidMap[cid] !== undefined) {\n glyphId = cidToGidMap[cid];\n }\n\n if (glyphId >= 0 && glyphId < numGlyphs && hasGlyph(glyphId)) {\n charCodeToGlyphId[charCode] = glyphId;\n }\n });\n } else {\n // Most of the following logic in this code branch is based on the\n // 9.6.6.4 of the PDF spec.\n const cmapTable = readCmapTable(\n tables.cmap,\n font,\n this.isSymbolicFont,\n properties.hasEncoding\n );\n const cmapPlatformId = cmapTable.platformId;\n const cmapEncodingId = cmapTable.encodingId;\n const cmapMappings = cmapTable.mappings;\n const cmapMappingsLength = cmapMappings.length;\n let baseEncoding = [],\n forcePostTable = false;\n if (\n properties.hasEncoding &&\n (properties.baseEncodingName === \"MacRomanEncoding\" ||\n properties.baseEncodingName === \"WinAnsiEncoding\")\n ) {\n baseEncoding = getEncoding(properties.baseEncodingName);\n }\n\n // If the font has an encoding and is not symbolic then follow the rules\n // in section 9.6.6.4 of the spec on how to map 3,1 and 1,0 cmaps.\n if (\n properties.hasEncoding &&\n !this.isSymbolicFont &&\n ((cmapPlatformId === 3 && cmapEncodingId === 1) ||\n (cmapPlatformId === 1 && cmapEncodingId === 0))\n ) {\n const glyphsUnicodeMap = getGlyphsUnicode();\n for (let charCode = 0; charCode < 256; charCode++) {\n let glyphName;\n if (this.differences[charCode] !== undefined) {\n glyphName = this.differences[charCode];\n } else if (baseEncoding.length && baseEncoding[charCode] !== \"\") {\n glyphName = baseEncoding[charCode];\n } else {\n glyphName = StandardEncoding[charCode];\n }\n if (!glyphName) {\n continue;\n }\n // Ensure that non-standard glyph names are resolved to valid ones.\n const standardGlyphName = recoverGlyphName(\n glyphName,\n glyphsUnicodeMap\n );\n\n let unicodeOrCharCode;\n if (cmapPlatformId === 3 && cmapEncodingId === 1) {\n unicodeOrCharCode = glyphsUnicodeMap[standardGlyphName];\n } else if (cmapPlatformId === 1 && cmapEncodingId === 0) {\n // TODO: the encoding needs to be updated with mac os table.\n unicodeOrCharCode = MacRomanEncoding.indexOf(standardGlyphName);\n }\n\n if (unicodeOrCharCode === undefined) {\n // Not a valid glyph name, fallback to using the /ToUnicode map\n // when no post-table exists (fixes issue13316_reduced.pdf).\n if (\n !properties.glyphNames &&\n properties.hasIncludedToUnicodeMap &&\n !(this.toUnicode instanceof IdentityToUnicodeMap)\n ) {\n const unicode = this.toUnicode.get(charCode);\n if (unicode) {\n unicodeOrCharCode = unicode.codePointAt(0);\n }\n }\n\n if (unicodeOrCharCode === undefined) {\n continue; // No valid glyph mapping found.\n }\n }\n\n for (let i = 0; i < cmapMappingsLength; ++i) {\n if (cmapMappings[i].charCode !== unicodeOrCharCode) {\n continue;\n }\n charCodeToGlyphId[charCode] = cmapMappings[i].glyphId;\n break;\n }\n }\n } else if (cmapPlatformId === 0) {\n // Default Unicode semantics, use the charcodes as is.\n for (let i = 0; i < cmapMappingsLength; ++i) {\n charCodeToGlyphId[cmapMappings[i].charCode] = cmapMappings[i].glyphId;\n }\n // Always prefer the BaseEncoding/Differences arrays, when they exist\n // (fixes issue13433.pdf).\n forcePostTable = true;\n } else {\n // When there is only a (1, 0) cmap table, the char code is a single\n // byte and it is used directly as the char code.\n\n // When a (3, 0) cmap table is present, it is used instead but the\n // spec has special rules for char codes in the range of 0xF000 to\n // 0xF0FF and it says the (3, 0) table should map the values from\n // the (1, 0) table by prepending 0xF0 to the char codes. To reverse\n // this, the upper bits of the char code are cleared, but only for the\n // special range since some PDFs have char codes outside of this range\n // (e.g. 0x2013) which when masked would overwrite other values in the\n // cmap.\n for (let i = 0; i < cmapMappingsLength; ++i) {\n let charCode = cmapMappings[i].charCode;\n if (\n cmapPlatformId === 3 &&\n charCode >= 0xf000 &&\n charCode <= 0xf0ff\n ) {\n charCode &= 0xff;\n }\n charCodeToGlyphId[charCode] = cmapMappings[i].glyphId;\n }\n }\n\n // Last, try to map any missing charcodes using the post table.\n if (\n properties.glyphNames &&\n (baseEncoding.length || this.differences.length)\n ) {\n for (let i = 0; i < 256; ++i) {\n if (!forcePostTable && charCodeToGlyphId[i] !== undefined) {\n continue;\n }\n const glyphName = this.differences[i] || baseEncoding[i];\n if (!glyphName) {\n continue;\n }\n const glyphId = properties.glyphNames.indexOf(glyphName);\n if (glyphId > 0 && hasGlyph(glyphId)) {\n charCodeToGlyphId[i] = glyphId;\n }\n }\n }\n }\n\n if (charCodeToGlyphId.length === 0) {\n // defines at least one glyph\n charCodeToGlyphId[0] = 0;\n }\n\n // Typically glyph 0 is duplicated and the mapping must be updated, but if\n // there isn't enough room to duplicate, the glyph id is left the same. In\n // this case, glyph 0 may not work correctly, but that is better than\n // having the whole font fail.\n let glyphZeroId = numGlyphsOut - 1;\n if (!dupFirstEntry) {\n glyphZeroId = 0;\n }\n\n // When `cssFontInfo` is set, the font is used to render text in the HTML\n // view (e.g. with Xfa) so nothing must be moved in the private use area.\n if (!properties.cssFontInfo) {\n // Converting glyphs and ids into font's cmap table\n const newMapping = adjustMapping(\n charCodeToGlyphId,\n hasGlyph,\n glyphZeroId\n );\n this.toFontChar = newMapping.toFontChar;\n tables.cmap = {\n tag: \"cmap\",\n data: createCmapTable(newMapping.charCodeToGlyphId, numGlyphsOut),\n };\n\n if (!tables[\"OS/2\"] || !validateOS2Table(tables[\"OS/2\"], font)) {\n tables[\"OS/2\"] = {\n tag: \"OS/2\",\n data: createOS2Table(\n properties,\n newMapping.charCodeToGlyphId,\n metricsOverride\n ),\n };\n }\n }\n\n if (!isTrueType) {\n try {\n // Trying to repair CFF file\n cffFile = new Stream(tables[\"CFF \"].data);\n const parser = new CFFParser(\n cffFile,\n properties,\n SEAC_ANALYSIS_ENABLED\n );\n cff = parser.parse();\n cff.duplicateFirstGlyph();\n const compiler = new CFFCompiler(cff);\n tables[\"CFF \"].data = compiler.compile();\n } catch (e) {\n warn(\"Failed to compile font \" + properties.loadedName);\n }\n }\n\n // Re-creating 'name' table\n if (!tables.name) {\n tables.name = {\n tag: \"name\",\n data: createNameTable(this.name),\n };\n } else {\n // ... using existing 'name' table as prototype\n const namePrototype = readNameTable(tables.name);\n tables.name.data = createNameTable(name, namePrototype);\n this.psName = namePrototype[0][6] || null;\n }\n\n const builder = new OpenTypeFileBuilder(header.version);\n for (const tableTag in tables) {\n builder.addTable(tableTag, tables[tableTag].data);\n }\n return builder.toArray();\n }\n\n convert(fontName, font, properties) {\n // TODO: Check the charstring widths to determine this.\n properties.fixedPitch = false;\n\n if (properties.builtInEncoding) {\n // For Type1 fonts that do not include either `ToUnicode` or `Encoding`\n // data, attempt to use the `builtInEncoding` to improve text selection.\n adjustToUnicode(properties, properties.builtInEncoding);\n }\n\n // Type 1 fonts have a notdef inserted at the beginning, so glyph 0\n // becomes glyph 1. In a CFF font glyph 0 is appended to the end of the\n // char strings.\n let glyphZeroId = 1;\n if (font instanceof CFFFont) {\n glyphZeroId = font.numGlyphs - 1;\n }\n const mapping = font.getGlyphMapping(properties);\n let newMapping = null;\n let newCharCodeToGlyphId = mapping;\n\n // When `cssFontInfo` is set, the font is used to render text in the HTML\n // view (e.g. with Xfa) so nothing must be moved in the private use area.\n if (!properties.cssFontInfo) {\n newMapping = adjustMapping(\n mapping,\n font.hasGlyphId.bind(font),\n glyphZeroId\n );\n this.toFontChar = newMapping.toFontChar;\n newCharCodeToGlyphId = newMapping.charCodeToGlyphId;\n }\n const numGlyphs = font.numGlyphs;\n\n function getCharCodes(charCodeToGlyphId, glyphId) {\n let charCodes = null;\n for (const charCode in charCodeToGlyphId) {\n if (glyphId === charCodeToGlyphId[charCode]) {\n if (!charCodes) {\n charCodes = [];\n }\n charCodes.push(charCode | 0);\n }\n }\n return charCodes;\n }\n\n function createCharCode(charCodeToGlyphId, glyphId) {\n for (const charCode in charCodeToGlyphId) {\n if (glyphId === charCodeToGlyphId[charCode]) {\n return charCode | 0;\n }\n }\n newMapping.charCodeToGlyphId[newMapping.nextAvailableFontCharCode] =\n glyphId;\n return newMapping.nextAvailableFontCharCode++;\n }\n\n const seacs = font.seacs;\n if (newMapping && SEAC_ANALYSIS_ENABLED && seacs && seacs.length) {\n const matrix = properties.fontMatrix || FONT_IDENTITY_MATRIX;\n const charset = font.getCharset();\n const seacMap = Object.create(null);\n for (let glyphId in seacs) {\n glyphId |= 0;\n const seac = seacs[glyphId];\n const baseGlyphName = StandardEncoding[seac[2]];\n const accentGlyphName = StandardEncoding[seac[3]];\n const baseGlyphId = charset.indexOf(baseGlyphName);\n const accentGlyphId = charset.indexOf(accentGlyphName);\n if (baseGlyphId < 0 || accentGlyphId < 0) {\n continue;\n }\n const accentOffset = {\n x: seac[0] * matrix[0] + seac[1] * matrix[2] + matrix[4],\n y: seac[0] * matrix[1] + seac[1] * matrix[3] + matrix[5],\n };\n\n const charCodes = getCharCodes(mapping, glyphId);\n if (!charCodes) {\n // There's no point in mapping it if the char code was never mapped\n // to begin with.\n continue;\n }\n for (let i = 0, ii = charCodes.length; i < ii; i++) {\n const charCode = charCodes[i];\n // Find a fontCharCode that maps to the base and accent glyphs.\n // If one doesn't exists, create it.\n const charCodeToGlyphId = newMapping.charCodeToGlyphId;\n const baseFontCharCode = createCharCode(\n charCodeToGlyphId,\n baseGlyphId\n );\n const accentFontCharCode = createCharCode(\n charCodeToGlyphId,\n accentGlyphId\n );\n seacMap[charCode] = {\n baseFontCharCode,\n accentFontCharCode,\n accentOffset,\n };\n }\n }\n properties.seacMap = seacMap;\n }\n\n const unitsPerEm = 1 / (properties.fontMatrix || FONT_IDENTITY_MATRIX)[0];\n\n const builder = new OpenTypeFileBuilder(\"\\x4F\\x54\\x54\\x4F\");\n // PostScript Font Program\n builder.addTable(\"CFF \", font.data);\n // OS/2 and Windows Specific metrics\n builder.addTable(\"OS/2\", createOS2Table(properties, newCharCodeToGlyphId));\n // Character to glyphs mapping\n builder.addTable(\"cmap\", createCmapTable(newCharCodeToGlyphId, numGlyphs));\n // Font header\n builder.addTable(\n \"head\",\n \"\\x00\\x01\\x00\\x00\" + // Version number\n \"\\x00\\x00\\x10\\x00\" + // fontRevision\n \"\\x00\\x00\\x00\\x00\" + // checksumAdjustement\n \"\\x5F\\x0F\\x3C\\xF5\" + // magicNumber\n \"\\x00\\x00\" + // Flags\n safeString16(unitsPerEm) + // unitsPerEM\n \"\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27\" + // creation date\n \"\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27\" + // modifification date\n \"\\x00\\x00\" + // xMin\n safeString16(properties.descent) + // yMin\n \"\\x0F\\xFF\" + // xMax\n safeString16(properties.ascent) + // yMax\n string16(properties.italicAngle ? 2 : 0) + // macStyle\n \"\\x00\\x11\" + // lowestRecPPEM\n \"\\x00\\x00\" + // fontDirectionHint\n \"\\x00\\x00\" + // indexToLocFormat\n \"\\x00\\x00\"\n ); // glyphDataFormat\n\n // Horizontal header\n builder.addTable(\n \"hhea\",\n \"\\x00\\x01\\x00\\x00\" + // Version number\n safeString16(properties.ascent) + // Typographic Ascent\n safeString16(properties.descent) + // Typographic Descent\n \"\\x00\\x00\" + // Line Gap\n \"\\xFF\\xFF\" + // advanceWidthMax\n \"\\x00\\x00\" + // minLeftSidebearing\n \"\\x00\\x00\" + // minRightSidebearing\n \"\\x00\\x00\" + // xMaxExtent\n safeString16(properties.capHeight) + // caretSlopeRise\n safeString16(Math.tan(properties.italicAngle) * properties.xHeight) + // caretSlopeRun\n \"\\x00\\x00\" + // caretOffset\n \"\\x00\\x00\" + // -reserved-\n \"\\x00\\x00\" + // -reserved-\n \"\\x00\\x00\" + // -reserved-\n \"\\x00\\x00\" + // -reserved-\n \"\\x00\\x00\" + // metricDataFormat\n string16(numGlyphs)\n ); // Number of HMetrics\n\n // Horizontal metrics\n builder.addTable(\n \"hmtx\",\n (function fontFieldsHmtx() {\n const charstrings = font.charstrings;\n const cffWidths = font.cff ? font.cff.widths : null;\n let hmtx = \"\\x00\\x00\\x00\\x00\"; // Fake .notdef\n for (let i = 1, ii = numGlyphs; i < ii; i++) {\n let width = 0;\n if (charstrings) {\n const charstring = charstrings[i - 1];\n width = \"width\" in charstring ? charstring.width : 0;\n } else if (cffWidths) {\n width = Math.ceil(cffWidths[i] || 0);\n }\n hmtx += string16(width) + string16(0);\n }\n return hmtx;\n })()\n );\n\n // Maximum profile\n builder.addTable(\n \"maxp\",\n \"\\x00\\x00\\x50\\x00\" + string16(numGlyphs) // Version number\n ); // Num of glyphs\n\n // Naming tables\n builder.addTable(\"name\", createNameTable(fontName));\n\n // PostScript information\n builder.addTable(\"post\", createPostTable(properties));\n\n return builder.toArray();\n }\n\n get spaceWidth() {\n // trying to estimate space character width\n const possibleSpaceReplacements = [\"space\", \"minus\", \"one\", \"i\", \"I\"];\n let width;\n for (let i = 0, ii = possibleSpaceReplacements.length; i < ii; i++) {\n const glyphName = possibleSpaceReplacements[i];\n // if possible, getting width by glyph name\n if (glyphName in this.widths) {\n width = this.widths[glyphName];\n break;\n }\n const glyphsUnicodeMap = getGlyphsUnicode();\n const glyphUnicode = glyphsUnicodeMap[glyphName];\n // finding the charcode via unicodeToCID map\n let charcode = 0;\n if (this.composite && this.cMap.contains(glyphUnicode)) {\n charcode = this.cMap.lookup(glyphUnicode);\n\n if (typeof charcode === \"string\") {\n charcode = convertCidString(glyphUnicode, charcode);\n }\n }\n // ... via toUnicode map\n if (!charcode && this.toUnicode) {\n charcode = this.toUnicode.charCodeOf(glyphUnicode);\n }\n // setting it to unicode if negative or undefined\n if (charcode <= 0) {\n charcode = glyphUnicode;\n }\n // trying to get width via charcode\n width = this.widths[charcode];\n if (width) {\n break; // the non-zero width found\n }\n }\n width = width || this.defaultWidth;\n return shadow(this, \"spaceWidth\", width);\n }\n\n /**\n * @private\n */\n _charToGlyph(charcode, isSpace = false) {\n let fontCharCode, width, operatorListId;\n\n let widthCode = charcode;\n if (this.cMap && this.cMap.contains(charcode)) {\n widthCode = this.cMap.lookup(charcode);\n\n if (typeof widthCode === \"string\") {\n widthCode = convertCidString(charcode, widthCode);\n }\n }\n width = this.widths[widthCode];\n if (typeof width !== \"number\") {\n width = this.defaultWidth;\n }\n const vmetric = this.vmetrics && this.vmetrics[widthCode];\n\n let unicode = this.toUnicode.get(charcode) || charcode;\n if (typeof unicode === \"number\") {\n unicode = String.fromCharCode(unicode);\n }\n\n let isInFont = this.toFontChar[charcode] !== undefined;\n // First try the toFontChar map, if it's not there then try falling\n // back to the char code.\n fontCharCode = this.toFontChar[charcode] || charcode;\n if (this.missingFile) {\n const glyphName =\n this.differences[charcode] || this.defaultEncoding[charcode];\n if (\n (glyphName === \".notdef\" || glyphName === \"\") &&\n this.type === \"Type1\"\n ) {\n // .notdef glyphs should be invisible in non-embedded Type1 fonts, so\n // replace them with spaces.\n fontCharCode = 0x20;\n }\n fontCharCode = mapSpecialUnicodeValues(fontCharCode);\n }\n\n if (this.isType3Font) {\n // Font char code in this case is actually a glyph name.\n operatorListId = fontCharCode;\n }\n\n let accent = null;\n if (this.seacMap && this.seacMap[charcode]) {\n isInFont = true;\n const seac = this.seacMap[charcode];\n fontCharCode = seac.baseFontCharCode;\n accent = {\n fontChar: String.fromCodePoint(seac.accentFontCharCode),\n offset: seac.accentOffset,\n };\n }\n\n let fontChar = \"\";\n if (typeof fontCharCode === \"number\") {\n if (fontCharCode <= 0x10ffff) {\n fontChar = String.fromCodePoint(fontCharCode);\n } else {\n warn(`charToGlyph - invalid fontCharCode: ${fontCharCode}`);\n }\n }\n\n let glyph = this._glyphCache[charcode];\n if (\n !glyph ||\n !glyph.matchesForCache(\n charcode,\n fontChar,\n unicode,\n accent,\n width,\n vmetric,\n operatorListId,\n isSpace,\n isInFont\n )\n ) {\n glyph = new Glyph(\n charcode,\n fontChar,\n unicode,\n accent,\n width,\n vmetric,\n operatorListId,\n isSpace,\n isInFont\n );\n this._glyphCache[charcode] = glyph;\n }\n return glyph;\n }\n\n charsToGlyphs(chars) {\n // If we translated this string before, just grab it from the cache.\n let glyphs = this._charsCache[chars];\n if (glyphs) {\n return glyphs;\n }\n glyphs = [];\n\n if (this.cMap) {\n // Composite fonts have multi-byte strings, convert the string from\n // single-byte to multi-byte.\n const c = Object.create(null),\n ii = chars.length;\n let i = 0;\n while (i < ii) {\n this.cMap.readCharCode(chars, i, c);\n const { charcode, length } = c;\n i += length;\n // Space is char with code 0x20 and length 1 in multiple-byte codes.\n const glyph = this._charToGlyph(\n charcode,\n length === 1 && chars.charCodeAt(i - 1) === 0x20\n );\n glyphs.push(glyph);\n }\n } else {\n for (let i = 0, ii = chars.length; i < ii; ++i) {\n const charcode = chars.charCodeAt(i);\n const glyph = this._charToGlyph(charcode, charcode === 0x20);\n glyphs.push(glyph);\n }\n }\n\n // Enter the translated string into the cache.\n return (this._charsCache[chars] = glyphs);\n }\n\n /**\n * Chars can have different sizes (depends on the encoding).\n * @param {String} a string encoded with font encoding.\n * @returns {Array>} the positions of each char in the string.\n */\n getCharPositions(chars) {\n // This function doesn't use a cache because\n // it's called only when saving or printing.\n const positions = [];\n\n if (this.cMap) {\n const c = Object.create(null);\n let i = 0;\n while (i < chars.length) {\n this.cMap.readCharCode(chars, i, c);\n const length = c.length;\n positions.push([i, i + length]);\n i += length;\n }\n } else {\n for (let i = 0, ii = chars.length; i < ii; ++i) {\n positions.push([i, i + 1]);\n }\n }\n\n return positions;\n }\n\n get glyphCacheValues() {\n return Object.values(this._glyphCache);\n }\n\n /**\n * Encode a js string using font encoding.\n * The resulting array contains an encoded string at even positions\n * (can be empty) and a non-encoded one at odd positions.\n * @param {String} a js string.\n * @returns {Array} an array of encoded strings or non-encoded ones.\n */\n encodeString(str) {\n const buffers = [];\n const currentBuf = [];\n\n // buffers will contain: encoded, non-encoded, encoded, ...\n // currentBuf is pushed in buffers each time there is a change.\n // So when buffers.length is odd then the last string is an encoded one\n // and currentBuf contains non-encoded chars.\n const hasCurrentBufErrors = () => buffers.length % 2 === 1;\n\n const getCharCode =\n this.toUnicode instanceof IdentityToUnicodeMap\n ? unicode => this.toUnicode.charCodeOf(unicode)\n : unicode => this.toUnicode.charCodeOf(String.fromCodePoint(unicode));\n\n for (let i = 0, ii = str.length; i < ii; i++) {\n const unicode = str.codePointAt(i);\n if (unicode > 0xd7ff && (unicode < 0xe000 || unicode > 0xfffd)) {\n // unicode is represented by two uint16\n i++;\n }\n if (this.toUnicode) {\n const charCode = getCharCode(unicode);\n if (charCode !== -1) {\n if (hasCurrentBufErrors()) {\n buffers.push(currentBuf.join(\"\"));\n currentBuf.length = 0;\n }\n const charCodeLength = this.cMap\n ? this.cMap.getCharCodeLength(charCode)\n : 1;\n for (let j = charCodeLength - 1; j >= 0; j--) {\n currentBuf.push(String.fromCharCode((charCode >> (8 * j)) & 0xff));\n }\n continue;\n }\n }\n\n // unicode can't be encoded\n if (!hasCurrentBufErrors()) {\n buffers.push(currentBuf.join(\"\"));\n currentBuf.length = 0;\n }\n currentBuf.push(String.fromCodePoint(unicode));\n }\n\n buffers.push(currentBuf.join(\"\"));\n\n return buffers;\n }\n}\n\nclass ErrorFont {\n constructor(error) {\n this.error = error;\n this.loadedName = \"g_font_error\";\n this.missingFile = true;\n }\n\n charsToGlyphs() {\n return [];\n }\n\n encodeString(chars) {\n return [chars];\n }\n\n exportData(extraProperties = false) {\n return { error: this.error };\n }\n}\n\nexport { ErrorFont, Font };\n","/* Copyright 2016 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n bytesToString,\n FormatError,\n info,\n shadow,\n stringToBytes,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport {\n ExpertCharset,\n ExpertSubsetCharset,\n ISOAdobeCharset,\n} from \"./charsets.js\";\nimport { ExpertEncoding, StandardEncoding } from \"./encodings.js\";\n\n// Maximum subroutine call depth of type 2 charstrings. Matches OTS.\nconst MAX_SUBR_NESTING = 10;\n\n/**\n * The CFF class takes a Type1 file and wrap it into a\n * 'Compact Font Format' which itself embed Type2 charstrings.\n */\n// prettier-ignore\nconst CFFStandardStrings = [\n \".notdef\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\",\n \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\",\n \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\",\n \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\",\n \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\",\n \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\",\n \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\",\n \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\",\n \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\",\n \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"exclamdown\", \"cent\",\n \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\",\n \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\",\n \"guilsinglright\", \"fi\", \"fl\", \"endash\", \"dagger\", \"daggerdbl\",\n \"periodcentered\", \"paragraph\", \"bullet\", \"quotesinglbase\", \"quotedblbase\",\n \"quotedblright\", \"guillemotright\", \"ellipsis\", \"perthousand\", \"questiondown\",\n \"grave\", \"acute\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\",\n \"dieresis\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\",\n \"AE\", \"ordfeminine\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"ae\",\n \"dotlessi\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"onesuperior\",\n \"logicalnot\", \"mu\", \"trademark\", \"Eth\", \"onehalf\", \"plusminus\", \"Thorn\",\n \"onequarter\", \"divide\", \"brokenbar\", \"degree\", \"thorn\", \"threequarters\",\n \"twosuperior\", \"registered\", \"minus\", \"eth\", \"multiply\", \"threesuperior\",\n \"copyright\", \"Aacute\", \"Acircumflex\", \"Adieresis\", \"Agrave\", \"Aring\",\n \"Atilde\", \"Ccedilla\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Egrave\",\n \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Ntilde\", \"Oacute\",\n \"Ocircumflex\", \"Odieresis\", \"Ograve\", \"Otilde\", \"Scaron\", \"Uacute\",\n \"Ucircumflex\", \"Udieresis\", \"Ugrave\", \"Yacute\", \"Ydieresis\", \"Zcaron\",\n \"aacute\", \"acircumflex\", \"adieresis\", \"agrave\", \"aring\", \"atilde\",\n \"ccedilla\", \"eacute\", \"ecircumflex\", \"edieresis\", \"egrave\", \"iacute\",\n \"icircumflex\", \"idieresis\", \"igrave\", \"ntilde\", \"oacute\", \"ocircumflex\",\n \"odieresis\", \"ograve\", \"otilde\", \"scaron\", \"uacute\", \"ucircumflex\",\n \"udieresis\", \"ugrave\", \"yacute\", \"ydieresis\", \"zcaron\", \"exclamsmall\",\n \"Hungarumlautsmall\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\",\n \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\",\n \"onedotenleader\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\",\n \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\",\n \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"commasuperior\",\n \"threequartersemdash\", \"periodsuperior\", \"questionsmall\", \"asuperior\",\n \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\",\n \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\",\n \"tsuperior\", \"ff\", \"ffi\", \"ffl\", \"parenleftinferior\", \"parenrightinferior\",\n \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\", \"Asmall\", \"Bsmall\",\n \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\",\n \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\",\n \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\",\n \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\",\n \"Tildesmall\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\",\n \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\", \"Caronsmall\",\n \"Dotaccentsmall\", \"Macronsmall\", \"figuredash\", \"hypheninferior\",\n \"Ogoneksmall\", \"Ringsmall\", \"Cedillasmall\", \"questiondownsmall\", \"oneeighth\",\n \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\",\n \"zerosuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\",\n \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\",\n \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\",\n \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\",\n \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\",\n \"commainferior\", \"Agravesmall\", \"Aacutesmall\", \"Acircumflexsmall\",\n \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\",\n \"Egravesmall\", \"Eacutesmall\", \"Ecircumflexsmall\", \"Edieresissmall\",\n \"Igravesmall\", \"Iacutesmall\", \"Icircumflexsmall\", \"Idieresissmall\",\n \"Ethsmall\", \"Ntildesmall\", \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\",\n \"Otildesmall\", \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\",\n \"Uacutesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\",\n \"Thornsmall\", \"Ydieresissmall\", \"001.000\", \"001.001\", \"001.002\", \"001.003\",\n \"Black\", \"Bold\", \"Book\", \"Light\", \"Medium\", \"Regular\", \"Roman\", \"Semibold\"\n];\n\nconst NUM_STANDARD_CFF_STRINGS = 391;\n\nconst CFFParser = (function CFFParserClosure() {\n const CharstringValidationData = [\n null,\n { id: \"hstem\", min: 2, stackClearing: true, stem: true },\n null,\n { id: \"vstem\", min: 2, stackClearing: true, stem: true },\n { id: \"vmoveto\", min: 1, stackClearing: true },\n { id: \"rlineto\", min: 2, resetStack: true },\n { id: \"hlineto\", min: 1, resetStack: true },\n { id: \"vlineto\", min: 1, resetStack: true },\n { id: \"rrcurveto\", min: 6, resetStack: true },\n null,\n { id: \"callsubr\", min: 1, undefStack: true },\n { id: \"return\", min: 0, undefStack: true },\n null, // 12\n null,\n { id: \"endchar\", min: 0, stackClearing: true },\n null,\n null,\n null,\n { id: \"hstemhm\", min: 2, stackClearing: true, stem: true },\n { id: \"hintmask\", min: 0, stackClearing: true },\n { id: \"cntrmask\", min: 0, stackClearing: true },\n { id: \"rmoveto\", min: 2, stackClearing: true },\n { id: \"hmoveto\", min: 1, stackClearing: true },\n { id: \"vstemhm\", min: 2, stackClearing: true, stem: true },\n { id: \"rcurveline\", min: 8, resetStack: true },\n { id: \"rlinecurve\", min: 8, resetStack: true },\n { id: \"vvcurveto\", min: 4, resetStack: true },\n { id: \"hhcurveto\", min: 4, resetStack: true },\n null, // shortint\n { id: \"callgsubr\", min: 1, undefStack: true },\n { id: \"vhcurveto\", min: 4, resetStack: true },\n { id: \"hvcurveto\", min: 4, resetStack: true },\n ];\n const CharstringValidationData12 = [\n null,\n null,\n null,\n { id: \"and\", min: 2, stackDelta: -1 },\n { id: \"or\", min: 2, stackDelta: -1 },\n { id: \"not\", min: 1, stackDelta: 0 },\n null,\n null,\n null,\n { id: \"abs\", min: 1, stackDelta: 0 },\n {\n id: \"add\",\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] + stack[index - 1];\n },\n },\n {\n id: \"sub\",\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] - stack[index - 1];\n },\n },\n {\n id: \"div\",\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] / stack[index - 1];\n },\n },\n null,\n {\n id: \"neg\",\n min: 1,\n stackDelta: 0,\n stackFn: function stack_div(stack, index) {\n stack[index - 1] = -stack[index - 1];\n },\n },\n { id: \"eq\", min: 2, stackDelta: -1 },\n null,\n null,\n { id: \"drop\", min: 1, stackDelta: -1 },\n null,\n { id: \"put\", min: 2, stackDelta: -2 },\n { id: \"get\", min: 1, stackDelta: 0 },\n { id: \"ifelse\", min: 4, stackDelta: -3 },\n { id: \"random\", min: 0, stackDelta: 1 },\n {\n id: \"mul\",\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] * stack[index - 1];\n },\n },\n null,\n { id: \"sqrt\", min: 1, stackDelta: 0 },\n { id: \"dup\", min: 1, stackDelta: 1 },\n { id: \"exch\", min: 2, stackDelta: 0 },\n { id: \"index\", min: 2, stackDelta: 0 },\n { id: \"roll\", min: 3, stackDelta: -2 },\n null,\n null,\n null,\n { id: \"hflex\", min: 7, resetStack: true },\n { id: \"flex\", min: 13, resetStack: true },\n { id: \"hflex1\", min: 9, resetStack: true },\n { id: \"flex1\", min: 11, resetStack: true },\n ];\n\n // eslint-disable-next-line no-shadow\n class CFFParser {\n constructor(file, properties, seacAnalysisEnabled) {\n this.bytes = file.getBytes();\n this.properties = properties;\n this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n }\n\n parse() {\n const properties = this.properties;\n const cff = new CFF();\n this.cff = cff;\n\n // The first five sections must be in order, all the others are reached\n // via offsets contained in one of the below.\n const header = this.parseHeader();\n const nameIndex = this.parseIndex(header.endPos);\n const topDictIndex = this.parseIndex(nameIndex.endPos);\n const stringIndex = this.parseIndex(topDictIndex.endPos);\n const globalSubrIndex = this.parseIndex(stringIndex.endPos);\n\n const topDictParsed = this.parseDict(topDictIndex.obj.get(0));\n const topDict = this.createDict(CFFTopDict, topDictParsed, cff.strings);\n\n cff.header = header.obj;\n cff.names = this.parseNameIndex(nameIndex.obj);\n cff.strings = this.parseStringIndex(stringIndex.obj);\n cff.topDict = topDict;\n cff.globalSubrIndex = globalSubrIndex.obj;\n\n this.parsePrivateDict(cff.topDict);\n\n cff.isCIDFont = topDict.hasName(\"ROS\");\n\n const charStringOffset = topDict.getByName(\"CharStrings\");\n const charStringIndex = this.parseIndex(charStringOffset).obj;\n\n const fontMatrix = topDict.getByName(\"FontMatrix\");\n if (fontMatrix) {\n properties.fontMatrix = fontMatrix;\n }\n\n const fontBBox = topDict.getByName(\"FontBBox\");\n if (fontBBox) {\n // adjusting ascent/descent\n properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n properties.ascentScaled = true;\n }\n\n let charset, encoding;\n if (cff.isCIDFont) {\n const fdArrayIndex = this.parseIndex(topDict.getByName(\"FDArray\")).obj;\n for (let i = 0, ii = fdArrayIndex.count; i < ii; ++i) {\n const dictRaw = fdArrayIndex.get(i);\n const fontDict = this.createDict(\n CFFTopDict,\n this.parseDict(dictRaw),\n cff.strings\n );\n this.parsePrivateDict(fontDict);\n cff.fdArray.push(fontDict);\n }\n // cid fonts don't have an encoding\n encoding = null;\n charset = this.parseCharsets(\n topDict.getByName(\"charset\"),\n charStringIndex.count,\n cff.strings,\n true\n );\n cff.fdSelect = this.parseFDSelect(\n topDict.getByName(\"FDSelect\"),\n charStringIndex.count\n );\n } else {\n charset = this.parseCharsets(\n topDict.getByName(\"charset\"),\n charStringIndex.count,\n cff.strings,\n false\n );\n encoding = this.parseEncoding(\n topDict.getByName(\"Encoding\"),\n properties,\n cff.strings,\n charset.charset\n );\n }\n\n cff.charset = charset;\n cff.encoding = encoding;\n\n const charStringsAndSeacs = this.parseCharStrings({\n charStrings: charStringIndex,\n localSubrIndex: topDict.privateDict.subrsIndex,\n globalSubrIndex: globalSubrIndex.obj,\n fdSelect: cff.fdSelect,\n fdArray: cff.fdArray,\n privateDict: topDict.privateDict,\n });\n cff.charStrings = charStringsAndSeacs.charStrings;\n cff.seacs = charStringsAndSeacs.seacs;\n cff.widths = charStringsAndSeacs.widths;\n\n return cff;\n }\n\n parseHeader() {\n let bytes = this.bytes;\n const bytesLength = bytes.length;\n let offset = 0;\n\n // Prevent an infinite loop, by checking that the offset is within the\n // bounds of the bytes array. Necessary in empty, or invalid, font files.\n while (offset < bytesLength && bytes[offset] !== 1) {\n ++offset;\n }\n if (offset >= bytesLength) {\n throw new FormatError(\"Invalid CFF header\");\n }\n if (offset !== 0) {\n info(\"cff data is shifted\");\n bytes = bytes.subarray(offset);\n this.bytes = bytes;\n }\n const major = bytes[0];\n const minor = bytes[1];\n const hdrSize = bytes[2];\n const offSize = bytes[3];\n const header = new CFFHeader(major, minor, hdrSize, offSize);\n return { obj: header, endPos: hdrSize };\n }\n\n parseDict(dict) {\n let pos = 0;\n\n function parseOperand() {\n let value = dict[pos++];\n if (value === 30) {\n return parseFloatOperand();\n } else if (value === 28) {\n value = dict[pos++];\n value = ((value << 24) | (dict[pos++] << 16)) >> 16;\n return value;\n } else if (value === 29) {\n value = dict[pos++];\n value = (value << 8) | dict[pos++];\n value = (value << 8) | dict[pos++];\n value = (value << 8) | dict[pos++];\n return value;\n } else if (value >= 32 && value <= 246) {\n return value - 139;\n } else if (value >= 247 && value <= 250) {\n return (value - 247) * 256 + dict[pos++] + 108;\n } else if (value >= 251 && value <= 254) {\n return -((value - 251) * 256) - dict[pos++] - 108;\n }\n warn('CFFParser_parseDict: \"' + value + '\" is a reserved command.');\n return NaN;\n }\n\n function parseFloatOperand() {\n let str = \"\";\n const eof = 15;\n // prettier-ignore\n const lookup = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\",\n \"9\", \".\", \"E\", \"E-\", null, \"-\"];\n const length = dict.length;\n while (pos < length) {\n const b = dict[pos++];\n const b1 = b >> 4;\n const b2 = b & 15;\n\n if (b1 === eof) {\n break;\n }\n str += lookup[b1];\n\n if (b2 === eof) {\n break;\n }\n str += lookup[b2];\n }\n return parseFloat(str);\n }\n\n let operands = [];\n const entries = [];\n\n pos = 0;\n const end = dict.length;\n while (pos < end) {\n let b = dict[pos];\n if (b <= 21) {\n if (b === 12) {\n b = (b << 8) | dict[++pos];\n }\n entries.push([b, operands]);\n operands = [];\n ++pos;\n } else {\n operands.push(parseOperand());\n }\n }\n return entries;\n }\n\n parseIndex(pos) {\n const cffIndex = new CFFIndex();\n const bytes = this.bytes;\n const count = (bytes[pos++] << 8) | bytes[pos++];\n const offsets = [];\n let end = pos;\n let i, ii;\n\n if (count !== 0) {\n const offsetSize = bytes[pos++];\n // add 1 for offset to determine size of last object\n const startPos = pos + (count + 1) * offsetSize - 1;\n\n for (i = 0, ii = count + 1; i < ii; ++i) {\n let offset = 0;\n for (let j = 0; j < offsetSize; ++j) {\n offset <<= 8;\n offset += bytes[pos++];\n }\n offsets.push(startPos + offset);\n }\n end = offsets[count];\n }\n for (i = 0, ii = offsets.length - 1; i < ii; ++i) {\n const offsetStart = offsets[i];\n const offsetEnd = offsets[i + 1];\n cffIndex.add(bytes.subarray(offsetStart, offsetEnd));\n }\n return { obj: cffIndex, endPos: end };\n }\n\n parseNameIndex(index) {\n const names = [];\n for (let i = 0, ii = index.count; i < ii; ++i) {\n const name = index.get(i);\n names.push(bytesToString(name));\n }\n return names;\n }\n\n parseStringIndex(index) {\n const strings = new CFFStrings();\n for (let i = 0, ii = index.count; i < ii; ++i) {\n const data = index.get(i);\n strings.add(bytesToString(data));\n }\n return strings;\n }\n\n createDict(Type, dict, strings) {\n const cffDict = new Type(strings);\n for (let i = 0, ii = dict.length; i < ii; ++i) {\n const pair = dict[i];\n const key = pair[0];\n const value = pair[1];\n cffDict.setByKey(key, value);\n }\n return cffDict;\n }\n\n parseCharString(state, data, localSubrIndex, globalSubrIndex) {\n if (!data || state.callDepth > MAX_SUBR_NESTING) {\n return false;\n }\n let stackSize = state.stackSize;\n const stack = state.stack;\n\n const length = data.length;\n\n for (let j = 0; j < length; ) {\n const value = data[j++];\n let validationCommand = null;\n if (value === 12) {\n const q = data[j++];\n if (q === 0) {\n // The CFF specification state that the 'dotsection' command\n // (12, 0) is deprecated and treated as a no-op, but all Type2\n // charstrings processors should support them. Unfortunately\n // the font sanitizer don't. As a workaround the sequence (12, 0)\n // is replaced by a useless (0, hmoveto).\n data[j - 2] = 139;\n data[j - 1] = 22;\n stackSize = 0;\n } else {\n validationCommand = CharstringValidationData12[q];\n }\n } else if (value === 28) {\n // number (16 bit)\n stack[stackSize] = ((data[j] << 24) | (data[j + 1] << 16)) >> 16;\n j += 2;\n stackSize++;\n } else if (value === 14) {\n if (stackSize >= 4) {\n stackSize -= 4;\n if (this.seacAnalysisEnabled) {\n state.seac = stack.slice(stackSize, stackSize + 4);\n return false;\n }\n }\n validationCommand = CharstringValidationData[value];\n } else if (value >= 32 && value <= 246) {\n // number\n stack[stackSize] = value - 139;\n stackSize++;\n } else if (value >= 247 && value <= 254) {\n // number (+1 bytes)\n stack[stackSize] =\n value < 251\n ? ((value - 247) << 8) + data[j] + 108\n : -((value - 251) << 8) - data[j] - 108;\n j++;\n stackSize++;\n } else if (value === 255) {\n // number (32 bit)\n stack[stackSize] =\n ((data[j] << 24) |\n (data[j + 1] << 16) |\n (data[j + 2] << 8) |\n data[j + 3]) /\n 65536;\n j += 4;\n stackSize++;\n } else if (value === 19 || value === 20) {\n state.hints += stackSize >> 1;\n // skipping right amount of hints flag data\n j += (state.hints + 7) >> 3;\n stackSize %= 2;\n validationCommand = CharstringValidationData[value];\n } else if (value === 10 || value === 29) {\n let subrsIndex;\n if (value === 10) {\n subrsIndex = localSubrIndex;\n } else {\n subrsIndex = globalSubrIndex;\n }\n if (!subrsIndex) {\n validationCommand = CharstringValidationData[value];\n warn(\"Missing subrsIndex for \" + validationCommand.id);\n return false;\n }\n let bias = 32768;\n if (subrsIndex.count < 1240) {\n bias = 107;\n } else if (subrsIndex.count < 33900) {\n bias = 1131;\n }\n const subrNumber = stack[--stackSize] + bias;\n if (\n subrNumber < 0 ||\n subrNumber >= subrsIndex.count ||\n isNaN(subrNumber)\n ) {\n validationCommand = CharstringValidationData[value];\n warn(\"Out of bounds subrIndex for \" + validationCommand.id);\n return false;\n }\n state.stackSize = stackSize;\n state.callDepth++;\n const valid = this.parseCharString(\n state,\n subrsIndex.get(subrNumber),\n localSubrIndex,\n globalSubrIndex\n );\n if (!valid) {\n return false;\n }\n state.callDepth--;\n stackSize = state.stackSize;\n continue;\n } else if (value === 11) {\n state.stackSize = stackSize;\n return true;\n } else if (value === 0 && j === data.length) {\n // Operator 0 is not used according to the current spec and\n // it's the last char and consequently it's likely a terminator.\n // So just replace it by endchar command to make OTS happy.\n data[j - 1] = 14;\n validationCommand = CharstringValidationData[14];\n } else {\n validationCommand = CharstringValidationData[value];\n }\n if (validationCommand) {\n if (validationCommand.stem) {\n state.hints += stackSize >> 1;\n if (value === 3 || value === 23) {\n // vstem or vstemhm.\n state.hasVStems = true;\n } else if (state.hasVStems && (value === 1 || value === 18)) {\n // Some browsers don't draw glyphs that specify vstems before\n // hstems. As a workaround, replace hstem (1) and hstemhm (18)\n // with a pointless vstem (3) or vstemhm (23).\n warn(\"CFF stem hints are in wrong order\");\n data[j - 1] = value === 1 ? 3 : 23;\n }\n }\n if (\"min\" in validationCommand) {\n if (!state.undefStack && stackSize < validationCommand.min) {\n warn(\n \"Not enough parameters for \" +\n validationCommand.id +\n \"; actual: \" +\n stackSize +\n \", expected: \" +\n validationCommand.min\n );\n\n if (stackSize === 0) {\n // Just \"fix\" the outline in replacing command by a endchar:\n // it could lead to wrong rendering of some glyphs or not.\n // For example, the pdf in #6132 is well-rendered.\n data[j - 1] = 14;\n return true;\n }\n return false;\n }\n }\n if (state.firstStackClearing && validationCommand.stackClearing) {\n state.firstStackClearing = false;\n // the optional character width can be found before the first\n // stack-clearing command arguments\n stackSize -= validationCommand.min;\n if (stackSize >= 2 && validationCommand.stem) {\n // there are even amount of arguments for stem commands\n stackSize %= 2;\n } else if (stackSize > 1) {\n warn(\"Found too many parameters for stack-clearing command\");\n }\n if (stackSize > 0) {\n // Width can be any number since its the difference\n // from nominalWidthX.\n state.width = stack[stackSize - 1];\n }\n }\n if (\"stackDelta\" in validationCommand) {\n if (\"stackFn\" in validationCommand) {\n validationCommand.stackFn(stack, stackSize);\n }\n stackSize += validationCommand.stackDelta;\n } else if (validationCommand.stackClearing) {\n stackSize = 0;\n } else if (validationCommand.resetStack) {\n stackSize = 0;\n state.undefStack = false;\n } else if (validationCommand.undefStack) {\n stackSize = 0;\n state.undefStack = true;\n state.firstStackClearing = false;\n }\n }\n }\n state.stackSize = stackSize;\n return true;\n }\n\n parseCharStrings({\n charStrings,\n localSubrIndex,\n globalSubrIndex,\n fdSelect,\n fdArray,\n privateDict,\n }) {\n const seacs = [];\n const widths = [];\n const count = charStrings.count;\n for (let i = 0; i < count; i++) {\n const charstring = charStrings.get(i);\n const state = {\n callDepth: 0,\n stackSize: 0,\n stack: [],\n undefStack: true,\n hints: 0,\n firstStackClearing: true,\n seac: null,\n width: null,\n hasVStems: false,\n };\n let valid = true;\n let localSubrToUse = null;\n let privateDictToUse = privateDict;\n if (fdSelect && fdArray.length) {\n const fdIndex = fdSelect.getFDIndex(i);\n if (fdIndex === -1) {\n warn(\"Glyph index is not in fd select.\");\n valid = false;\n }\n if (fdIndex >= fdArray.length) {\n warn(\"Invalid fd index for glyph index.\");\n valid = false;\n }\n if (valid) {\n privateDictToUse = fdArray[fdIndex].privateDict;\n localSubrToUse = privateDictToUse.subrsIndex;\n }\n } else if (localSubrIndex) {\n localSubrToUse = localSubrIndex;\n }\n if (valid) {\n valid = this.parseCharString(\n state,\n charstring,\n localSubrToUse,\n globalSubrIndex\n );\n }\n if (state.width !== null) {\n const nominalWidth = privateDictToUse.getByName(\"nominalWidthX\");\n widths[i] = nominalWidth + state.width;\n } else {\n const defaultWidth = privateDictToUse.getByName(\"defaultWidthX\");\n widths[i] = defaultWidth;\n }\n if (state.seac !== null) {\n seacs[i] = state.seac;\n }\n if (!valid) {\n // resetting invalid charstring to single 'endchar'\n charStrings.set(i, new Uint8Array([14]));\n }\n }\n return { charStrings, seacs, widths };\n }\n\n emptyPrivateDictionary(parentDict) {\n const privateDict = this.createDict(\n CFFPrivateDict,\n [],\n parentDict.strings\n );\n parentDict.setByKey(18, [0, 0]);\n parentDict.privateDict = privateDict;\n }\n\n parsePrivateDict(parentDict) {\n // no private dict, do nothing\n if (!parentDict.hasName(\"Private\")) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n const privateOffset = parentDict.getByName(\"Private\");\n // make sure the params are formatted correctly\n if (!Array.isArray(privateOffset) || privateOffset.length !== 2) {\n parentDict.removeByName(\"Private\");\n return;\n }\n const size = privateOffset[0];\n const offset = privateOffset[1];\n // remove empty dicts or ones that refer to invalid location\n if (size === 0 || offset >= this.bytes.length) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n\n const privateDictEnd = offset + size;\n const dictData = this.bytes.subarray(offset, privateDictEnd);\n const dict = this.parseDict(dictData);\n const privateDict = this.createDict(\n CFFPrivateDict,\n dict,\n parentDict.strings\n );\n parentDict.privateDict = privateDict;\n\n // Parse the Subrs index also since it's relative to the private dict.\n if (!privateDict.getByName(\"Subrs\")) {\n return;\n }\n const subrsOffset = privateDict.getByName(\"Subrs\");\n const relativeOffset = offset + subrsOffset;\n // Validate the offset.\n if (subrsOffset === 0 || relativeOffset >= this.bytes.length) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n const subrsIndex = this.parseIndex(relativeOffset);\n privateDict.subrsIndex = subrsIndex.obj;\n }\n\n parseCharsets(pos, length, strings, cid) {\n if (pos === 0) {\n return new CFFCharset(\n true,\n CFFCharsetPredefinedTypes.ISO_ADOBE,\n ISOAdobeCharset\n );\n } else if (pos === 1) {\n return new CFFCharset(\n true,\n CFFCharsetPredefinedTypes.EXPERT,\n ExpertCharset\n );\n } else if (pos === 2) {\n return new CFFCharset(\n true,\n CFFCharsetPredefinedTypes.EXPERT_SUBSET,\n ExpertSubsetCharset\n );\n }\n\n const bytes = this.bytes;\n const start = pos;\n const format = bytes[pos++];\n const charset = [cid ? 0 : \".notdef\"];\n let id, count, i;\n\n // subtract 1 for the .notdef glyph\n length -= 1;\n\n switch (format) {\n case 0:\n for (i = 0; i < length; i++) {\n id = (bytes[pos++] << 8) | bytes[pos++];\n charset.push(cid ? id : strings.get(id));\n }\n break;\n case 1:\n while (charset.length <= length) {\n id = (bytes[pos++] << 8) | bytes[pos++];\n count = bytes[pos++];\n for (i = 0; i <= count; i++) {\n charset.push(cid ? id++ : strings.get(id++));\n }\n }\n break;\n case 2:\n while (charset.length <= length) {\n id = (bytes[pos++] << 8) | bytes[pos++];\n count = (bytes[pos++] << 8) | bytes[pos++];\n for (i = 0; i <= count; i++) {\n charset.push(cid ? id++ : strings.get(id++));\n }\n }\n break;\n default:\n throw new FormatError(\"Unknown charset format\");\n }\n // Raw won't be needed if we actually compile the charset.\n const end = pos;\n const raw = bytes.subarray(start, end);\n\n return new CFFCharset(false, format, charset, raw);\n }\n\n parseEncoding(pos, properties, strings, charset) {\n const encoding = Object.create(null);\n const bytes = this.bytes;\n let predefined = false;\n let format, i, ii;\n let raw = null;\n\n function readSupplement() {\n const supplementsCount = bytes[pos++];\n for (i = 0; i < supplementsCount; i++) {\n const code = bytes[pos++];\n const sid = (bytes[pos++] << 8) + (bytes[pos++] & 0xff);\n encoding[code] = charset.indexOf(strings.get(sid));\n }\n }\n\n if (pos === 0 || pos === 1) {\n predefined = true;\n format = pos;\n const baseEncoding = pos ? ExpertEncoding : StandardEncoding;\n for (i = 0, ii = charset.length; i < ii; i++) {\n const index = baseEncoding.indexOf(charset[i]);\n if (index !== -1) {\n encoding[index] = i;\n }\n }\n } else {\n const dataStart = pos;\n format = bytes[pos++];\n switch (format & 0x7f) {\n case 0:\n const glyphsCount = bytes[pos++];\n for (i = 1; i <= glyphsCount; i++) {\n encoding[bytes[pos++]] = i;\n }\n break;\n\n case 1:\n const rangesCount = bytes[pos++];\n let gid = 1;\n for (i = 0; i < rangesCount; i++) {\n const start = bytes[pos++];\n const left = bytes[pos++];\n for (let j = start; j <= start + left; j++) {\n encoding[j] = gid++;\n }\n }\n break;\n\n default:\n throw new FormatError(`Unknown encoding format: ${format} in CFF`);\n }\n const dataEnd = pos;\n if (format & 0x80) {\n // hasSupplement\n // The font sanitizer does not support CFF encoding with a\n // supplement, since the encoding is not really used to map\n // between gid to glyph, let's overwrite what is declared in\n // the top dictionary to let the sanitizer think the font use\n // StandardEncoding, that's a lie but that's ok.\n bytes[dataStart] &= 0x7f;\n readSupplement();\n }\n raw = bytes.subarray(dataStart, dataEnd);\n }\n format &= 0x7f;\n return new CFFEncoding(predefined, format, encoding, raw);\n }\n\n parseFDSelect(pos, length) {\n const bytes = this.bytes;\n const format = bytes[pos++];\n const fdSelect = [];\n let i;\n\n switch (format) {\n case 0:\n for (i = 0; i < length; ++i) {\n const id = bytes[pos++];\n fdSelect.push(id);\n }\n break;\n case 3:\n const rangesCount = (bytes[pos++] << 8) | bytes[pos++];\n for (i = 0; i < rangesCount; ++i) {\n let first = (bytes[pos++] << 8) | bytes[pos++];\n if (i === 0 && first !== 0) {\n warn(\n \"parseFDSelect: The first range must have a first GID of 0\" +\n \" -- trying to recover.\"\n );\n first = 0;\n }\n const fdIndex = bytes[pos++];\n const next = (bytes[pos] << 8) | bytes[pos + 1];\n for (let j = first; j < next; ++j) {\n fdSelect.push(fdIndex);\n }\n }\n // Advance past the sentinel(next).\n pos += 2;\n break;\n default:\n throw new FormatError(`parseFDSelect: Unknown format \"${format}\".`);\n }\n if (fdSelect.length !== length) {\n throw new FormatError(\"parseFDSelect: Invalid font data.\");\n }\n\n return new CFFFDSelect(format, fdSelect);\n }\n }\n return CFFParser;\n})();\n\n// Compact Font Format\nclass CFF {\n constructor() {\n this.header = null;\n this.names = [];\n this.topDict = null;\n this.strings = new CFFStrings();\n this.globalSubrIndex = null;\n\n // The following could really be per font, but since we only have one font\n // store them here.\n this.encoding = null;\n this.charset = null;\n this.charStrings = null;\n this.fdArray = [];\n this.fdSelect = null;\n\n this.isCIDFont = false;\n }\n\n duplicateFirstGlyph() {\n // Browsers will not display a glyph at position 0. Typically glyph 0 is\n // notdef, but a number of fonts put a valid glyph there so it must be\n // duplicated and appended.\n if (this.charStrings.count >= 65535) {\n warn(\"Not enough space in charstrings to duplicate first glyph.\");\n return;\n }\n const glyphZero = this.charStrings.get(0);\n this.charStrings.add(glyphZero);\n if (this.isCIDFont) {\n this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0]);\n }\n }\n\n hasGlyphId(id) {\n if (id < 0 || id >= this.charStrings.count) {\n return false;\n }\n const glyph = this.charStrings.get(id);\n return glyph.length > 0;\n }\n}\n\nclass CFFHeader {\n constructor(major, minor, hdrSize, offSize) {\n this.major = major;\n this.minor = minor;\n this.hdrSize = hdrSize;\n this.offSize = offSize;\n }\n}\n\nclass CFFStrings {\n constructor() {\n this.strings = [];\n }\n\n get(index) {\n if (index >= 0 && index <= NUM_STANDARD_CFF_STRINGS - 1) {\n return CFFStandardStrings[index];\n }\n if (index - NUM_STANDARD_CFF_STRINGS <= this.strings.length) {\n return this.strings[index - NUM_STANDARD_CFF_STRINGS];\n }\n return CFFStandardStrings[0];\n }\n\n getSID(str) {\n let index = CFFStandardStrings.indexOf(str);\n if (index !== -1) {\n return index;\n }\n index = this.strings.indexOf(str);\n if (index !== -1) {\n return index + NUM_STANDARD_CFF_STRINGS;\n }\n return -1;\n }\n\n add(value) {\n this.strings.push(value);\n }\n\n get count() {\n return this.strings.length;\n }\n}\n\nclass CFFIndex {\n constructor() {\n this.objects = [];\n this.length = 0;\n }\n\n add(data) {\n this.length += data.length;\n this.objects.push(data);\n }\n\n set(index, data) {\n this.length += data.length - this.objects[index].length;\n this.objects[index] = data;\n }\n\n get(index) {\n return this.objects[index];\n }\n\n get count() {\n return this.objects.length;\n }\n}\n\nclass CFFDict {\n constructor(tables, strings) {\n this.keyToNameMap = tables.keyToNameMap;\n this.nameToKeyMap = tables.nameToKeyMap;\n this.defaults = tables.defaults;\n this.types = tables.types;\n this.opcodes = tables.opcodes;\n this.order = tables.order;\n this.strings = strings;\n this.values = Object.create(null);\n }\n\n // value should always be an array\n setByKey(key, value) {\n if (!(key in this.keyToNameMap)) {\n return false;\n }\n const valueLength = value.length;\n // ignore empty values\n if (valueLength === 0) {\n return true;\n }\n // Ignore invalid values (fixes bug1068432.pdf and bug1308536.pdf).\n for (let i = 0; i < valueLength; i++) {\n if (isNaN(value[i])) {\n warn('Invalid CFFDict value: \"' + value + '\" for key \"' + key + '\".');\n return true;\n }\n }\n const type = this.types[key];\n // remove the array wrapping these types of values\n if (type === \"num\" || type === \"sid\" || type === \"offset\") {\n value = value[0];\n }\n this.values[key] = value;\n return true;\n }\n\n setByName(name, value) {\n if (!(name in this.nameToKeyMap)) {\n throw new FormatError(`Invalid dictionary name \"${name}\"`);\n }\n this.values[this.nameToKeyMap[name]] = value;\n }\n\n hasName(name) {\n return this.nameToKeyMap[name] in this.values;\n }\n\n getByName(name) {\n if (!(name in this.nameToKeyMap)) {\n throw new FormatError(`Invalid dictionary name ${name}\"`);\n }\n const key = this.nameToKeyMap[name];\n if (!(key in this.values)) {\n return this.defaults[key];\n }\n return this.values[key];\n }\n\n removeByName(name) {\n delete this.values[this.nameToKeyMap[name]];\n }\n\n static createTables(layout) {\n const tables = {\n keyToNameMap: {},\n nameToKeyMap: {},\n defaults: {},\n types: {},\n opcodes: {},\n order: [],\n };\n for (let i = 0, ii = layout.length; i < ii; ++i) {\n const entry = layout[i];\n const key = Array.isArray(entry[0])\n ? (entry[0][0] << 8) + entry[0][1]\n : entry[0];\n tables.keyToNameMap[key] = entry[1];\n tables.nameToKeyMap[entry[1]] = key;\n tables.types[key] = entry[2];\n tables.defaults[key] = entry[3];\n tables.opcodes[key] = Array.isArray(entry[0]) ? entry[0] : [entry[0]];\n tables.order.push(key);\n }\n return tables;\n }\n}\n\nconst CFFTopDict = (function CFFTopDictClosure() {\n const layout = [\n [[12, 30], \"ROS\", [\"sid\", \"sid\", \"num\"], null],\n [[12, 20], \"SyntheticBase\", \"num\", null],\n [0, \"version\", \"sid\", null],\n [1, \"Notice\", \"sid\", null],\n [[12, 0], \"Copyright\", \"sid\", null],\n [2, \"FullName\", \"sid\", null],\n [3, \"FamilyName\", \"sid\", null],\n [4, \"Weight\", \"sid\", null],\n [[12, 1], \"isFixedPitch\", \"num\", 0],\n [[12, 2], \"ItalicAngle\", \"num\", 0],\n [[12, 3], \"UnderlinePosition\", \"num\", -100],\n [[12, 4], \"UnderlineThickness\", \"num\", 50],\n [[12, 5], \"PaintType\", \"num\", 0],\n [[12, 6], \"CharstringType\", \"num\", 2],\n // prettier-ignore\n [[12, 7], \"FontMatrix\", [\"num\", \"num\", \"num\", \"num\", \"num\", \"num\"],\n [0.001, 0, 0, 0.001, 0, 0]],\n [13, \"UniqueID\", \"num\", null],\n [5, \"FontBBox\", [\"num\", \"num\", \"num\", \"num\"], [0, 0, 0, 0]],\n [[12, 8], \"StrokeWidth\", \"num\", 0],\n [14, \"XUID\", \"array\", null],\n [15, \"charset\", \"offset\", 0],\n [16, \"Encoding\", \"offset\", 0],\n [17, \"CharStrings\", \"offset\", 0],\n [18, \"Private\", [\"offset\", \"offset\"], null],\n [[12, 21], \"PostScript\", \"sid\", null],\n [[12, 22], \"BaseFontName\", \"sid\", null],\n [[12, 23], \"BaseFontBlend\", \"delta\", null],\n [[12, 31], \"CIDFontVersion\", \"num\", 0],\n [[12, 32], \"CIDFontRevision\", \"num\", 0],\n [[12, 33], \"CIDFontType\", \"num\", 0],\n [[12, 34], \"CIDCount\", \"num\", 8720],\n [[12, 35], \"UIDBase\", \"num\", null],\n // XXX: CID Fonts on DirectWrite 6.1 only seem to work if FDSelect comes\n // before FDArray.\n [[12, 37], \"FDSelect\", \"offset\", null],\n [[12, 36], \"FDArray\", \"offset\", null],\n [[12, 38], \"FontName\", \"sid\", null],\n ];\n let tables = null;\n\n // eslint-disable-next-line no-shadow\n class CFFTopDict extends CFFDict {\n constructor(strings) {\n if (tables === null) {\n tables = CFFDict.createTables(layout);\n }\n super(tables, strings);\n this.privateDict = null;\n }\n }\n return CFFTopDict;\n})();\n\nconst CFFPrivateDict = (function CFFPrivateDictClosure() {\n const layout = [\n [6, \"BlueValues\", \"delta\", null],\n [7, \"OtherBlues\", \"delta\", null],\n [8, \"FamilyBlues\", \"delta\", null],\n [9, \"FamilyOtherBlues\", \"delta\", null],\n [[12, 9], \"BlueScale\", \"num\", 0.039625],\n [[12, 10], \"BlueShift\", \"num\", 7],\n [[12, 11], \"BlueFuzz\", \"num\", 1],\n [10, \"StdHW\", \"num\", null],\n [11, \"StdVW\", \"num\", null],\n [[12, 12], \"StemSnapH\", \"delta\", null],\n [[12, 13], \"StemSnapV\", \"delta\", null],\n [[12, 14], \"ForceBold\", \"num\", 0],\n [[12, 17], \"LanguageGroup\", \"num\", 0],\n [[12, 18], \"ExpansionFactor\", \"num\", 0.06],\n [[12, 19], \"initialRandomSeed\", \"num\", 0],\n [20, \"defaultWidthX\", \"num\", 0],\n [21, \"nominalWidthX\", \"num\", 0],\n [19, \"Subrs\", \"offset\", null],\n ];\n let tables = null;\n\n // eslint-disable-next-line no-shadow\n class CFFPrivateDict extends CFFDict {\n constructor(strings) {\n if (tables === null) {\n tables = CFFDict.createTables(layout);\n }\n super(tables, strings);\n this.subrsIndex = null;\n }\n }\n return CFFPrivateDict;\n})();\n\nconst CFFCharsetPredefinedTypes = {\n ISO_ADOBE: 0,\n EXPERT: 1,\n EXPERT_SUBSET: 2,\n};\n\nclass CFFCharset {\n constructor(predefined, format, charset, raw) {\n this.predefined = predefined;\n this.format = format;\n this.charset = charset;\n this.raw = raw;\n }\n}\n\nclass CFFEncoding {\n constructor(predefined, format, encoding, raw) {\n this.predefined = predefined;\n this.format = format;\n this.encoding = encoding;\n this.raw = raw;\n }\n}\n\nclass CFFFDSelect {\n constructor(format, fdSelect) {\n this.format = format;\n this.fdSelect = fdSelect;\n }\n\n getFDIndex(glyphIndex) {\n if (glyphIndex < 0 || glyphIndex >= this.fdSelect.length) {\n return -1;\n }\n return this.fdSelect[glyphIndex];\n }\n}\n\n// Helper class to keep track of where an offset is within the data and helps\n// filling in that offset once it's known.\nclass CFFOffsetTracker {\n constructor() {\n this.offsets = Object.create(null);\n }\n\n isTracking(key) {\n return key in this.offsets;\n }\n\n track(key, location) {\n if (key in this.offsets) {\n throw new FormatError(`Already tracking location of ${key}`);\n }\n this.offsets[key] = location;\n }\n\n offset(value) {\n for (const key in this.offsets) {\n this.offsets[key] += value;\n }\n }\n\n setEntryLocation(key, values, output) {\n if (!(key in this.offsets)) {\n throw new FormatError(`Not tracking location of ${key}`);\n }\n const data = output.data;\n const dataOffset = this.offsets[key];\n const size = 5;\n for (let i = 0, ii = values.length; i < ii; ++i) {\n const offset0 = i * size + dataOffset;\n const offset1 = offset0 + 1;\n const offset2 = offset0 + 2;\n const offset3 = offset0 + 3;\n const offset4 = offset0 + 4;\n // It's easy to screw up offsets so perform this sanity check.\n if (\n data[offset0] !== 0x1d ||\n data[offset1] !== 0 ||\n data[offset2] !== 0 ||\n data[offset3] !== 0 ||\n data[offset4] !== 0\n ) {\n throw new FormatError(\"writing to an offset that is not empty\");\n }\n const value = values[i];\n data[offset0] = 0x1d;\n data[offset1] = (value >> 24) & 0xff;\n data[offset2] = (value >> 16) & 0xff;\n data[offset3] = (value >> 8) & 0xff;\n data[offset4] = value & 0xff;\n }\n }\n}\n\n// Takes a CFF and converts it to the binary representation.\nclass CFFCompiler {\n constructor(cff) {\n this.cff = cff;\n }\n\n compile() {\n const cff = this.cff;\n const output = {\n data: [],\n length: 0,\n add: function CFFCompiler_add(data) {\n this.data = this.data.concat(data);\n this.length = this.data.length;\n },\n };\n\n // Compile the five entries that must be in order.\n const header = this.compileHeader(cff.header);\n output.add(header);\n\n const nameIndex = this.compileNameIndex(cff.names);\n output.add(nameIndex);\n\n if (cff.isCIDFont) {\n // The spec is unclear on how font matrices should relate to each other\n // when there is one in the main top dict and the sub top dicts.\n // Windows handles this differently than linux and osx so we have to\n // normalize to work on all.\n // Rules based off of some mailing list discussions:\n // - If main font has a matrix and subfont doesn't, use the main matrix.\n // - If no main font matrix and there is a subfont matrix, use the\n // subfont matrix.\n // - If both have matrices, concat together.\n // - If neither have matrices, use default.\n // To make this work on all platforms we move the top matrix into each\n // sub top dict and concat if necessary.\n if (cff.topDict.hasName(\"FontMatrix\")) {\n const base = cff.topDict.getByName(\"FontMatrix\");\n cff.topDict.removeByName(\"FontMatrix\");\n for (let i = 0, ii = cff.fdArray.length; i < ii; i++) {\n const subDict = cff.fdArray[i];\n let matrix = base.slice(0);\n if (subDict.hasName(\"FontMatrix\")) {\n matrix = Util.transform(matrix, subDict.getByName(\"FontMatrix\"));\n }\n subDict.setByName(\"FontMatrix\", matrix);\n }\n }\n }\n\n const xuid = cff.topDict.getByName(\"XUID\");\n if (xuid && xuid.length > 16) {\n // Length of XUID array must not be greater than 16 (issue #12399).\n cff.topDict.removeByName(\"XUID\");\n }\n\n cff.topDict.setByName(\"charset\", 0);\n let compiled = this.compileTopDicts(\n [cff.topDict],\n output.length,\n cff.isCIDFont\n );\n output.add(compiled.output);\n const topDictTracker = compiled.trackers[0];\n\n const stringIndex = this.compileStringIndex(cff.strings.strings);\n output.add(stringIndex);\n\n const globalSubrIndex = this.compileIndex(cff.globalSubrIndex);\n output.add(globalSubrIndex);\n\n // Now start on the other entries that have no specific order.\n if (cff.encoding && cff.topDict.hasName(\"Encoding\")) {\n if (cff.encoding.predefined) {\n topDictTracker.setEntryLocation(\n \"Encoding\",\n [cff.encoding.format],\n output\n );\n } else {\n const encoding = this.compileEncoding(cff.encoding);\n topDictTracker.setEntryLocation(\"Encoding\", [output.length], output);\n output.add(encoding);\n }\n }\n const charset = this.compileCharset(\n cff.charset,\n cff.charStrings.count,\n cff.strings,\n cff.isCIDFont\n );\n topDictTracker.setEntryLocation(\"charset\", [output.length], output);\n output.add(charset);\n\n const charStrings = this.compileCharStrings(cff.charStrings);\n topDictTracker.setEntryLocation(\"CharStrings\", [output.length], output);\n output.add(charStrings);\n\n if (cff.isCIDFont) {\n // For some reason FDSelect must be in front of FDArray on windows. OSX\n // and linux don't seem to care.\n topDictTracker.setEntryLocation(\"FDSelect\", [output.length], output);\n const fdSelect = this.compileFDSelect(cff.fdSelect);\n output.add(fdSelect);\n // It is unclear if the sub font dictionary can have CID related\n // dictionary keys, but the sanitizer doesn't like them so remove them.\n compiled = this.compileTopDicts(cff.fdArray, output.length, true);\n topDictTracker.setEntryLocation(\"FDArray\", [output.length], output);\n output.add(compiled.output);\n const fontDictTrackers = compiled.trackers;\n\n this.compilePrivateDicts(cff.fdArray, fontDictTrackers, output);\n }\n\n this.compilePrivateDicts([cff.topDict], [topDictTracker], output);\n\n // If the font data ends with INDEX whose object data is zero-length,\n // the sanitizer will bail out. Add a dummy byte to avoid that.\n output.add([0]);\n\n return output.data;\n }\n\n encodeNumber(value) {\n if (Number.isInteger(value)) {\n return this.encodeInteger(value);\n }\n return this.encodeFloat(value);\n }\n\n static get EncodeFloatRegExp() {\n return shadow(\n this,\n \"EncodeFloatRegExp\",\n /\\.(\\d*?)(?:9{5,20}|0{5,20})\\d{0,2}(?:e(.+)|$)/\n );\n }\n\n encodeFloat(num) {\n let value = num.toString();\n\n // Rounding inaccurate doubles.\n const m = CFFCompiler.EncodeFloatRegExp.exec(value);\n if (m) {\n const epsilon = parseFloat(\"1e\" + ((m[2] ? +m[2] : 0) + m[1].length));\n value = (Math.round(num * epsilon) / epsilon).toString();\n }\n\n let nibbles = \"\";\n let i, ii;\n for (i = 0, ii = value.length; i < ii; ++i) {\n const a = value[i];\n if (a === \"e\") {\n nibbles += value[++i] === \"-\" ? \"c\" : \"b\";\n } else if (a === \".\") {\n nibbles += \"a\";\n } else if (a === \"-\") {\n nibbles += \"e\";\n } else {\n nibbles += a;\n }\n }\n nibbles += nibbles.length & 1 ? \"f\" : \"ff\";\n const out = [30];\n for (i = 0, ii = nibbles.length; i < ii; i += 2) {\n out.push(parseInt(nibbles.substring(i, i + 2), 16));\n }\n return out;\n }\n\n encodeInteger(value) {\n let code;\n if (value >= -107 && value <= 107) {\n code = [value + 139];\n } else if (value >= 108 && value <= 1131) {\n value -= 108;\n code = [(value >> 8) + 247, value & 0xff];\n } else if (value >= -1131 && value <= -108) {\n value = -value - 108;\n code = [(value >> 8) + 251, value & 0xff];\n } else if (value >= -32768 && value <= 32767) {\n code = [0x1c, (value >> 8) & 0xff, value & 0xff];\n } else {\n code = [\n 0x1d,\n (value >> 24) & 0xff,\n (value >> 16) & 0xff,\n (value >> 8) & 0xff,\n value & 0xff,\n ];\n }\n return code;\n }\n\n compileHeader(header) {\n // `header.hdrSize` can be any value but we only write 4 values\n // so header size is 4 (prevents OTS from rejecting the font).\n return [header.major, header.minor, 4, header.offSize];\n }\n\n compileNameIndex(names) {\n const nameIndex = new CFFIndex();\n for (let i = 0, ii = names.length; i < ii; ++i) {\n const name = names[i];\n // OTS doesn't allow names to be over 127 characters.\n const length = Math.min(name.length, 127);\n let sanitizedName = new Array(length);\n for (let j = 0; j < length; j++) {\n // OTS requires chars to be between a range and not certain other\n // chars.\n let char = name[j];\n if (\n char < \"!\" ||\n char > \"~\" ||\n char === \"[\" ||\n char === \"]\" ||\n char === \"(\" ||\n char === \")\" ||\n char === \"{\" ||\n char === \"}\" ||\n char === \"<\" ||\n char === \">\" ||\n char === \"/\" ||\n char === \"%\"\n ) {\n char = \"_\";\n }\n sanitizedName[j] = char;\n }\n sanitizedName = sanitizedName.join(\"\");\n\n if (sanitizedName === \"\") {\n sanitizedName = \"Bad_Font_Name\";\n }\n nameIndex.add(stringToBytes(sanitizedName));\n }\n return this.compileIndex(nameIndex);\n }\n\n compileTopDicts(dicts, length, removeCidKeys) {\n const fontDictTrackers = [];\n let fdArrayIndex = new CFFIndex();\n for (let i = 0, ii = dicts.length; i < ii; ++i) {\n const fontDict = dicts[i];\n if (removeCidKeys) {\n fontDict.removeByName(\"CIDFontVersion\");\n fontDict.removeByName(\"CIDFontRevision\");\n fontDict.removeByName(\"CIDFontType\");\n fontDict.removeByName(\"CIDCount\");\n fontDict.removeByName(\"UIDBase\");\n }\n const fontDictTracker = new CFFOffsetTracker();\n const fontDictData = this.compileDict(fontDict, fontDictTracker);\n fontDictTrackers.push(fontDictTracker);\n fdArrayIndex.add(fontDictData);\n fontDictTracker.offset(length);\n }\n fdArrayIndex = this.compileIndex(fdArrayIndex, fontDictTrackers);\n return {\n trackers: fontDictTrackers,\n output: fdArrayIndex,\n };\n }\n\n compilePrivateDicts(dicts, trackers, output) {\n for (let i = 0, ii = dicts.length; i < ii; ++i) {\n const fontDict = dicts[i];\n const privateDict = fontDict.privateDict;\n if (!privateDict || !fontDict.hasName(\"Private\")) {\n throw new FormatError(\"There must be a private dictionary.\");\n }\n const privateDictTracker = new CFFOffsetTracker();\n const privateDictData = this.compileDict(privateDict, privateDictTracker);\n\n let outputLength = output.length;\n privateDictTracker.offset(outputLength);\n if (!privateDictData.length) {\n // The private dictionary was empty, set the output length to zero to\n // ensure the offset length isn't out of bounds in the eyes of the\n // sanitizer.\n outputLength = 0;\n }\n\n trackers[i].setEntryLocation(\n \"Private\",\n [privateDictData.length, outputLength],\n output\n );\n output.add(privateDictData);\n\n if (privateDict.subrsIndex && privateDict.hasName(\"Subrs\")) {\n const subrs = this.compileIndex(privateDict.subrsIndex);\n privateDictTracker.setEntryLocation(\n \"Subrs\",\n [privateDictData.length],\n output\n );\n output.add(subrs);\n }\n }\n }\n\n compileDict(dict, offsetTracker) {\n let out = [];\n // The dictionary keys must be in a certain order.\n const order = dict.order;\n for (let i = 0; i < order.length; ++i) {\n const key = order[i];\n if (!(key in dict.values)) {\n continue;\n }\n let values = dict.values[key];\n let types = dict.types[key];\n if (!Array.isArray(types)) {\n types = [types];\n }\n if (!Array.isArray(values)) {\n values = [values];\n }\n\n // Remove any empty dict values.\n if (values.length === 0) {\n continue;\n }\n\n for (let j = 0, jj = types.length; j < jj; ++j) {\n const type = types[j];\n const value = values[j];\n switch (type) {\n case \"num\":\n case \"sid\":\n out = out.concat(this.encodeNumber(value));\n break;\n case \"offset\":\n // For offsets we just insert a 32bit integer so we don't have to\n // deal with figuring out the length of the offset when it gets\n // replaced later on by the compiler.\n const name = dict.keyToNameMap[key];\n // Some offsets have the offset and the length, so just record the\n // position of the first one.\n if (!offsetTracker.isTracking(name)) {\n offsetTracker.track(name, out.length);\n }\n out = out.concat([0x1d, 0, 0, 0, 0]);\n break;\n case \"array\":\n case \"delta\":\n out = out.concat(this.encodeNumber(value));\n for (let k = 1, kk = values.length; k < kk; ++k) {\n out = out.concat(this.encodeNumber(values[k]));\n }\n break;\n default:\n throw new FormatError(`Unknown data type of ${type}`);\n }\n }\n out = out.concat(dict.opcodes[key]);\n }\n return out;\n }\n\n compileStringIndex(strings) {\n const stringIndex = new CFFIndex();\n for (let i = 0, ii = strings.length; i < ii; ++i) {\n stringIndex.add(stringToBytes(strings[i]));\n }\n return this.compileIndex(stringIndex);\n }\n\n compileGlobalSubrIndex() {\n const globalSubrIndex = this.cff.globalSubrIndex;\n this.out.writeByteArray(this.compileIndex(globalSubrIndex));\n }\n\n compileCharStrings(charStrings) {\n const charStringsIndex = new CFFIndex();\n for (let i = 0; i < charStrings.count; i++) {\n const glyph = charStrings.get(i);\n // If the CharString outline is empty, replace it with .notdef to\n // prevent OTS from rejecting the font (fixes bug1252420.pdf).\n if (glyph.length === 0) {\n charStringsIndex.add(new Uint8Array([0x8b, 0x0e]));\n continue;\n }\n charStringsIndex.add(glyph);\n }\n return this.compileIndex(charStringsIndex);\n }\n\n compileCharset(charset, numGlyphs, strings, isCIDFont) {\n // Freetype requires the number of charset strings be correct and MacOS\n // requires a valid mapping for printing.\n let out;\n const numGlyphsLessNotDef = numGlyphs - 1;\n if (isCIDFont) {\n // In a CID font, the charset is a mapping of CIDs not SIDs so just\n // create an identity mapping.\n out = new Uint8Array([\n 2, // format\n 0, // first CID upper byte\n 0, // first CID lower byte\n (numGlyphsLessNotDef >> 8) & 0xff,\n numGlyphsLessNotDef & 0xff,\n ]);\n } else {\n const length = 1 + numGlyphsLessNotDef * 2;\n out = new Uint8Array(length);\n out[0] = 0; // format 0\n let charsetIndex = 0;\n const numCharsets = charset.charset.length;\n let warned = false;\n for (let i = 1; i < out.length; i += 2) {\n let sid = 0;\n if (charsetIndex < numCharsets) {\n const name = charset.charset[charsetIndex++];\n sid = strings.getSID(name);\n if (sid === -1) {\n sid = 0;\n if (!warned) {\n warned = true;\n warn(`Couldn't find ${name} in CFF strings`);\n }\n }\n }\n out[i] = (sid >> 8) & 0xff;\n out[i + 1] = sid & 0xff;\n }\n }\n return this.compileTypedArray(out);\n }\n\n compileEncoding(encoding) {\n return this.compileTypedArray(encoding.raw);\n }\n\n compileFDSelect(fdSelect) {\n const format = fdSelect.format;\n let out, i;\n switch (format) {\n case 0:\n out = new Uint8Array(1 + fdSelect.fdSelect.length);\n out[0] = format;\n for (i = 0; i < fdSelect.fdSelect.length; i++) {\n out[i + 1] = fdSelect.fdSelect[i];\n }\n break;\n case 3:\n const start = 0;\n let lastFD = fdSelect.fdSelect[0];\n const ranges = [\n format,\n 0, // nRanges place holder\n 0, // nRanges place holder\n (start >> 8) & 0xff,\n start & 0xff,\n lastFD,\n ];\n for (i = 1; i < fdSelect.fdSelect.length; i++) {\n const currentFD = fdSelect.fdSelect[i];\n if (currentFD !== lastFD) {\n ranges.push((i >> 8) & 0xff, i & 0xff, currentFD);\n lastFD = currentFD;\n }\n }\n // 3 bytes are pushed for every range and there are 3 header bytes.\n const numRanges = (ranges.length - 3) / 3;\n ranges[1] = (numRanges >> 8) & 0xff;\n ranges[2] = numRanges & 0xff;\n // sentinel\n ranges.push((i >> 8) & 0xff, i & 0xff);\n out = new Uint8Array(ranges);\n break;\n }\n return this.compileTypedArray(out);\n }\n\n compileTypedArray(data) {\n const out = [];\n for (let i = 0, ii = data.length; i < ii; ++i) {\n out[i] = data[i];\n }\n return out;\n }\n\n compileIndex(index, trackers = []) {\n const objects = index.objects;\n // First 2 bytes contains the number of objects contained into this index\n const count = objects.length;\n\n // If there is no object, just create an index. This technically\n // should just be [0, 0] but OTS has an issue with that.\n if (count === 0) {\n return [0, 0, 0];\n }\n\n const data = [(count >> 8) & 0xff, count & 0xff];\n\n let lastOffset = 1,\n i;\n for (i = 0; i < count; ++i) {\n lastOffset += objects[i].length;\n }\n\n let offsetSize;\n if (lastOffset < 0x100) {\n offsetSize = 1;\n } else if (lastOffset < 0x10000) {\n offsetSize = 2;\n } else if (lastOffset < 0x1000000) {\n offsetSize = 3;\n } else {\n offsetSize = 4;\n }\n\n // Next byte contains the offset size use to reference object in the file\n data.push(offsetSize);\n\n // Add another offset after this one because we need a new offset\n let relativeOffset = 1;\n for (i = 0; i < count + 1; i++) {\n if (offsetSize === 1) {\n data.push(relativeOffset & 0xff);\n } else if (offsetSize === 2) {\n data.push((relativeOffset >> 8) & 0xff, relativeOffset & 0xff);\n } else if (offsetSize === 3) {\n data.push(\n (relativeOffset >> 16) & 0xff,\n (relativeOffset >> 8) & 0xff,\n relativeOffset & 0xff\n );\n } else {\n data.push(\n (relativeOffset >>> 24) & 0xff,\n (relativeOffset >> 16) & 0xff,\n (relativeOffset >> 8) & 0xff,\n relativeOffset & 0xff\n );\n }\n\n if (objects[i]) {\n relativeOffset += objects[i].length;\n }\n }\n\n for (i = 0; i < count; i++) {\n // Notify the tracker where the object will be offset in the data.\n if (trackers[i]) {\n trackers[i].offset(data.length);\n }\n for (let j = 0, jj = objects[i].length; j < jj; j++) {\n data.push(objects[i][j]);\n }\n }\n return data;\n }\n}\n\nexport {\n CFF,\n CFFCharset,\n CFFCompiler,\n CFFFDSelect,\n CFFHeader,\n CFFIndex,\n CFFParser,\n CFFPrivateDict,\n CFFStandardStrings,\n CFFStrings,\n CFFTopDict,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// prettier-ignore\nconst ISOAdobeCharset = [\n \".notdef\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\",\n \"percent\", \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\",\n \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\",\n \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\",\n \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\",\n \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\",\n \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\",\n \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\",\n \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\",\n \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\",\n \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"exclamdown\", \"cent\",\n \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\",\n \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\",\n \"guilsinglright\", \"fi\", \"fl\", \"endash\", \"dagger\", \"daggerdbl\",\n \"periodcentered\", \"paragraph\", \"bullet\", \"quotesinglbase\",\n \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\",\n \"perthousand\", \"questiondown\", \"grave\", \"acute\", \"circumflex\", \"tilde\",\n \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"ring\", \"cedilla\",\n \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"AE\", \"ordfeminine\",\n \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"ae\", \"dotlessi\", \"lslash\",\n \"oslash\", \"oe\", \"germandbls\", \"onesuperior\", \"logicalnot\", \"mu\",\n \"trademark\", \"Eth\", \"onehalf\", \"plusminus\", \"Thorn\", \"onequarter\",\n \"divide\", \"brokenbar\", \"degree\", \"thorn\", \"threequarters\", \"twosuperior\",\n \"registered\", \"minus\", \"eth\", \"multiply\", \"threesuperior\", \"copyright\",\n \"Aacute\", \"Acircumflex\", \"Adieresis\", \"Agrave\", \"Aring\", \"Atilde\",\n \"Ccedilla\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Egrave\", \"Iacute\",\n \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Ntilde\", \"Oacute\", \"Ocircumflex\",\n \"Odieresis\", \"Ograve\", \"Otilde\", \"Scaron\", \"Uacute\", \"Ucircumflex\",\n \"Udieresis\", \"Ugrave\", \"Yacute\", \"Ydieresis\", \"Zcaron\", \"aacute\",\n \"acircumflex\", \"adieresis\", \"agrave\", \"aring\", \"atilde\", \"ccedilla\",\n \"eacute\", \"ecircumflex\", \"edieresis\", \"egrave\", \"iacute\", \"icircumflex\",\n \"idieresis\", \"igrave\", \"ntilde\", \"oacute\", \"ocircumflex\", \"odieresis\",\n \"ograve\", \"otilde\", \"scaron\", \"uacute\", \"ucircumflex\", \"udieresis\",\n \"ugrave\", \"yacute\", \"ydieresis\", \"zcaron\"\n];\n\n// prettier-ignore\nconst ExpertCharset = [\n \".notdef\", \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"dollaroldstyle\",\n \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\",\n \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\",\n \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\",\n \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\",\n \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\",\n \"colon\", \"semicolon\", \"commasuperior\", \"threequartersemdash\",\n \"periodsuperior\", \"questionsmall\", \"asuperior\", \"bsuperior\",\n \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\",\n \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\",\n \"tsuperior\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\",\n \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\",\n \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\",\n \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\",\n \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\",\n \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\",\n \"onefitted\", \"rupiah\", \"Tildesmall\", \"exclamdownsmall\", \"centoldstyle\",\n \"Lslashsmall\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\",\n \"Brevesmall\", \"Caronsmall\", \"Dotaccentsmall\", \"Macronsmall\",\n \"figuredash\", \"hypheninferior\", \"Ogoneksmall\", \"Ringsmall\",\n \"Cedillasmall\", \"onequarter\", \"onehalf\", \"threequarters\",\n \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"onesuperior\",\n \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\",\n \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\",\n \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\",\n \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\",\n \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\",\n \"periodinferior\", \"commainferior\", \"Agravesmall\", \"Aacutesmall\",\n \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\",\n \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\",\n \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\",\n \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\",\n \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\",\n \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\",\n \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\",\n \"Ydieresissmall\"\n];\n\n// prettier-ignore\nconst ExpertSubsetCharset = [\n \".notdef\", \"space\", \"dollaroldstyle\", \"dollarsuperior\",\n \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\",\n \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\",\n \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\",\n \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\",\n \"eightoldstyle\", \"nineoldstyle\", \"colon\", \"semicolon\", \"commasuperior\",\n \"threequartersemdash\", \"periodsuperior\", \"asuperior\", \"bsuperior\",\n \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\",\n \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\",\n \"tsuperior\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\",\n \"parenrightinferior\", \"hyphensuperior\", \"colonmonetary\", \"onefitted\",\n \"rupiah\", \"centoldstyle\", \"figuredash\", \"hypheninferior\", \"onequarter\",\n \"onehalf\", \"threequarters\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"onesuperior\",\n \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\",\n \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\",\n \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\",\n \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\",\n \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\",\n \"periodinferior\", \"commainferior\"\n];\n\nexport { ExpertCharset, ExpertSubsetCharset, ISOAdobeCharset };\n","/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getLookupTableFactory } from \"./core_utils.js\";\nimport { normalizeFontName } from \"./fonts_utils.js\";\n\n/**\n * Hold a map of decoded fonts and of the standard fourteen Type1\n * fonts and their acronyms.\n */\nconst getStdFontMap = getLookupTableFactory(function (t) {\n // The standard 14 fonts:\n t[\"Times-Roman\"] = \"Times-Roman\";\n t.Helvetica = \"Helvetica\";\n t.Courier = \"Courier\";\n t.Symbol = \"Symbol\";\n t[\"Times-Bold\"] = \"Times-Bold\";\n t[\"Helvetica-Bold\"] = \"Helvetica-Bold\";\n t[\"Courier-Bold\"] = \"Courier-Bold\";\n t.ZapfDingbats = \"ZapfDingbats\";\n t[\"Times-Italic\"] = \"Times-Italic\";\n t[\"Helvetica-Oblique\"] = \"Helvetica-Oblique\";\n t[\"Courier-Oblique\"] = \"Courier-Oblique\";\n t[\"Times-BoldItalic\"] = \"Times-BoldItalic\";\n t[\"Helvetica-BoldOblique\"] = \"Helvetica-BoldOblique\";\n t[\"Courier-BoldOblique\"] = \"Courier-BoldOblique\";\n\n // Extra mappings\n t.ArialNarrow = \"Helvetica\";\n t[\"ArialNarrow-Bold\"] = \"Helvetica-Bold\";\n t[\"ArialNarrow-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"ArialNarrow-Italic\"] = \"Helvetica-Oblique\";\n t.ArialBlack = \"Helvetica\";\n t[\"ArialBlack-Bold\"] = \"Helvetica-Bold\";\n t[\"ArialBlack-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"ArialBlack-Italic\"] = \"Helvetica-Oblique\";\n t[\"Arial-Black\"] = \"Helvetica\";\n t[\"Arial-Black-Bold\"] = \"Helvetica-Bold\";\n t[\"Arial-Black-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Arial-Black-Italic\"] = \"Helvetica-Oblique\";\n t.Arial = \"Helvetica\";\n t[\"Arial-Bold\"] = \"Helvetica-Bold\";\n t[\"Arial-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Arial-Italic\"] = \"Helvetica-Oblique\";\n t[\"Arial-BoldItalicMT\"] = \"Helvetica-BoldOblique\";\n t[\"Arial-BoldMT\"] = \"Helvetica-Bold\";\n t[\"Arial-ItalicMT\"] = \"Helvetica-Oblique\";\n t.ArialMT = \"Helvetica\";\n t[\"Courier-BoldItalic\"] = \"Courier-BoldOblique\";\n t[\"Courier-Italic\"] = \"Courier-Oblique\";\n t.CourierNew = \"Courier\";\n t[\"CourierNew-Bold\"] = \"Courier-Bold\";\n t[\"CourierNew-BoldItalic\"] = \"Courier-BoldOblique\";\n t[\"CourierNew-Italic\"] = \"Courier-Oblique\";\n t[\"CourierNewPS-BoldItalicMT\"] = \"Courier-BoldOblique\";\n t[\"CourierNewPS-BoldMT\"] = \"Courier-Bold\";\n t[\"CourierNewPS-ItalicMT\"] = \"Courier-Oblique\";\n t.CourierNewPSMT = \"Courier\";\n t[\"Helvetica-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Helvetica-Italic\"] = \"Helvetica-Oblique\";\n t[\"Symbol-Bold\"] = \"Symbol\";\n t[\"Symbol-BoldItalic\"] = \"Symbol\";\n t[\"Symbol-Italic\"] = \"Symbol\";\n t.TimesNewRoman = \"Times-Roman\";\n t[\"TimesNewRoman-Bold\"] = \"Times-Bold\";\n t[\"TimesNewRoman-BoldItalic\"] = \"Times-BoldItalic\";\n t[\"TimesNewRoman-Italic\"] = \"Times-Italic\";\n t.TimesNewRomanPS = \"Times-Roman\";\n t[\"TimesNewRomanPS-Bold\"] = \"Times-Bold\";\n t[\"TimesNewRomanPS-BoldItalic\"] = \"Times-BoldItalic\";\n t[\"TimesNewRomanPS-BoldItalicMT\"] = \"Times-BoldItalic\";\n t[\"TimesNewRomanPS-BoldMT\"] = \"Times-Bold\";\n t[\"TimesNewRomanPS-Italic\"] = \"Times-Italic\";\n t[\"TimesNewRomanPS-ItalicMT\"] = \"Times-Italic\";\n t.TimesNewRomanPSMT = \"Times-Roman\";\n t[\"TimesNewRomanPSMT-Bold\"] = \"Times-Bold\";\n t[\"TimesNewRomanPSMT-BoldItalic\"] = \"Times-BoldItalic\";\n t[\"TimesNewRomanPSMT-Italic\"] = \"Times-Italic\";\n});\n\n// Contains mapping for standard fonts and xfa fonts.\nconst getFontNameToFileMap = getLookupTableFactory(function (t) {\n t.Courier = \"FoxitFixed.pfb\";\n t[\"Courier-Bold\"] = \"FoxitFixedBold.pfb\";\n t[\"Courier-BoldOblique\"] = \"FoxitFixedBoldItalic.pfb\";\n t[\"Courier-Oblique\"] = \"FoxitFixedItalic.pfb\";\n t.Helvetica = \"FoxitSans.pfb\";\n t[\"Helvetica-Bold\"] = \"FoxitSansBold.pfb\";\n t[\"Helvetica-BoldOblique\"] = \"FoxitSansBoldItalic.pfb\";\n t[\"Helvetica-Oblique\"] = \"FoxitSansItalic.pfb\";\n t[\"Times-Roman\"] = \"FoxitSerif.pfb\";\n t[\"Times-Bold\"] = \"FoxitSerifBold.pfb\";\n t[\"Times-BoldItalic\"] = \"FoxitSerifBoldItalic.pfb\";\n t[\"Times-Italic\"] = \"FoxitSerifItalic.pfb\";\n t.Symbol = \"FoxitSymbol.pfb\";\n t.ZapfDingbats = \"FoxitDingbats.pfb\";\n t[\"LiberationSans-Regular\"] = \"LiberationSans-Regular.ttf\";\n t[\"LiberationSans-Bold\"] = \"LiberationSans-Bold.ttf\";\n t[\"LiberationSans-Italic\"] = \"LiberationSans-Italic.ttf\";\n t[\"LiberationSans-BoldItalic\"] = \"LiberationSans-BoldItalic.ttf\";\n});\n\n/**\n * Holds the map of the non-standard fonts that might be included as\n * a standard fonts without glyph data.\n */\nconst getNonStdFontMap = getLookupTableFactory(function (t) {\n t.Calibri = \"Helvetica\";\n t[\"Calibri-Bold\"] = \"Helvetica-Bold\";\n t[\"Calibri-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Calibri-Italic\"] = \"Helvetica-Oblique\";\n t.CenturyGothic = \"Helvetica\";\n t[\"CenturyGothic-Bold\"] = \"Helvetica-Bold\";\n t[\"CenturyGothic-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"CenturyGothic-Italic\"] = \"Helvetica-Oblique\";\n t.ComicSansMS = \"Comic Sans MS\";\n t[\"ComicSansMS-Bold\"] = \"Comic Sans MS-Bold\";\n t[\"ComicSansMS-BoldItalic\"] = \"Comic Sans MS-BoldItalic\";\n t[\"ComicSansMS-Italic\"] = \"Comic Sans MS-Italic\";\n t[\"ItcSymbol-Bold\"] = \"Helvetica-Bold\";\n t[\"ItcSymbol-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"ItcSymbol-Book\"] = \"Helvetica\";\n t[\"ItcSymbol-BookItalic\"] = \"Helvetica-Oblique\";\n t[\"ItcSymbol-Medium\"] = \"Helvetica\";\n t[\"ItcSymbol-MediumItalic\"] = \"Helvetica-Oblique\";\n t.LucidaConsole = \"Courier\";\n t[\"LucidaConsole-Bold\"] = \"Courier-Bold\";\n t[\"LucidaConsole-BoldItalic\"] = \"Courier-BoldOblique\";\n t[\"LucidaConsole-Italic\"] = \"Courier-Oblique\";\n t[\"LucidaSans-Demi\"] = \"Helvetica-Bold\";\n t[\"MS-Gothic\"] = \"MS Gothic\";\n t[\"MS-Gothic-Bold\"] = \"MS Gothic-Bold\";\n t[\"MS-Gothic-BoldItalic\"] = \"MS Gothic-BoldItalic\";\n t[\"MS-Gothic-Italic\"] = \"MS Gothic-Italic\";\n t[\"MS-Mincho\"] = \"MS Mincho\";\n t[\"MS-Mincho-Bold\"] = \"MS Mincho-Bold\";\n t[\"MS-Mincho-BoldItalic\"] = \"MS Mincho-BoldItalic\";\n t[\"MS-Mincho-Italic\"] = \"MS Mincho-Italic\";\n t[\"MS-PGothic\"] = \"MS PGothic\";\n t[\"MS-PGothic-Bold\"] = \"MS PGothic-Bold\";\n t[\"MS-PGothic-BoldItalic\"] = \"MS PGothic-BoldItalic\";\n t[\"MS-PGothic-Italic\"] = \"MS PGothic-Italic\";\n t[\"MS-PMincho\"] = \"MS PMincho\";\n t[\"MS-PMincho-Bold\"] = \"MS PMincho-Bold\";\n t[\"MS-PMincho-BoldItalic\"] = \"MS PMincho-BoldItalic\";\n t[\"MS-PMincho-Italic\"] = \"MS PMincho-Italic\";\n t.NuptialScript = \"Times-Italic\";\n t.SegoeUISymbol = \"Helvetica\";\n t.Wingdings = \"ZapfDingbats\";\n t[\"Wingdings-Regular\"] = \"ZapfDingbats\";\n});\n\nconst getSerifFonts = getLookupTableFactory(function (t) {\n t[\"Adobe Jenson\"] = true;\n t[\"Adobe Text\"] = true;\n t.Albertus = true;\n t.Aldus = true;\n t.Alexandria = true;\n t.Algerian = true;\n t[\"American Typewriter\"] = true;\n t.Antiqua = true;\n t.Apex = true;\n t.Arno = true;\n t.Aster = true;\n t.Aurora = true;\n t.Baskerville = true;\n t.Bell = true;\n t.Bembo = true;\n t[\"Bembo Schoolbook\"] = true;\n t.Benguiat = true;\n t[\"Berkeley Old Style\"] = true;\n t[\"Bernhard Modern\"] = true;\n t[\"Berthold City\"] = true;\n t.Bodoni = true;\n t[\"Bauer Bodoni\"] = true;\n t[\"Book Antiqua\"] = true;\n t.Bookman = true;\n t[\"Bordeaux Roman\"] = true;\n t[\"Californian FB\"] = true;\n t.Calisto = true;\n t.Calvert = true;\n t.Capitals = true;\n t.Cambria = true;\n t.Cartier = true;\n t.Caslon = true;\n t.Catull = true;\n t.Centaur = true;\n t[\"Century Old Style\"] = true;\n t[\"Century Schoolbook\"] = true;\n t.Chaparral = true;\n t[\"Charis SIL\"] = true;\n t.Cheltenham = true;\n t[\"Cholla Slab\"] = true;\n t.Clarendon = true;\n t.Clearface = true;\n t.Cochin = true;\n t.Colonna = true;\n t[\"Computer Modern\"] = true;\n t[\"Concrete Roman\"] = true;\n t.Constantia = true;\n t[\"Cooper Black\"] = true;\n t.Corona = true;\n t.Ecotype = true;\n t.Egyptienne = true;\n t.Elephant = true;\n t.Excelsior = true;\n t.Fairfield = true;\n t[\"FF Scala\"] = true;\n t.Folkard = true;\n t.Footlight = true;\n t.FreeSerif = true;\n t[\"Friz Quadrata\"] = true;\n t.Garamond = true;\n t.Gentium = true;\n t.Georgia = true;\n t.Gloucester = true;\n t[\"Goudy Old Style\"] = true;\n t[\"Goudy Schoolbook\"] = true;\n t[\"Goudy Pro Font\"] = true;\n t.Granjon = true;\n t[\"Guardian Egyptian\"] = true;\n t.Heather = true;\n t.Hercules = true;\n t[\"High Tower Text\"] = true;\n t.Hiroshige = true;\n t[\"Hoefler Text\"] = true;\n t[\"Humana Serif\"] = true;\n t.Imprint = true;\n t[\"Ionic No. 5\"] = true;\n t.Janson = true;\n t.Joanna = true;\n t.Korinna = true;\n t.Lexicon = true;\n t.LiberationSerif = true;\n t[\"Liberation Serif\"] = true;\n t[\"Linux Libertine\"] = true;\n t.Literaturnaya = true;\n t.Lucida = true;\n t[\"Lucida Bright\"] = true;\n t.Melior = true;\n t.Memphis = true;\n t.Miller = true;\n t.Minion = true;\n t.Modern = true;\n t[\"Mona Lisa\"] = true;\n t[\"Mrs Eaves\"] = true;\n t[\"MS Serif\"] = true;\n t[\"Museo Slab\"] = true;\n t[\"New York\"] = true;\n t[\"Nimbus Roman\"] = true;\n t[\"NPS Rawlinson Roadway\"] = true;\n t.NuptialScript = true;\n t.Palatino = true;\n t.Perpetua = true;\n t.Plantin = true;\n t[\"Plantin Schoolbook\"] = true;\n t.Playbill = true;\n t[\"Poor Richard\"] = true;\n t[\"Rawlinson Roadway\"] = true;\n t.Renault = true;\n t.Requiem = true;\n t.Rockwell = true;\n t.Roman = true;\n t[\"Rotis Serif\"] = true;\n t.Sabon = true;\n t.Scala = true;\n t.Seagull = true;\n t.Sistina = true;\n t.Souvenir = true;\n t.STIX = true;\n t[\"Stone Informal\"] = true;\n t[\"Stone Serif\"] = true;\n t.Sylfaen = true;\n t.Times = true;\n t.Trajan = true;\n t[\"Trinité\"] = true;\n t[\"Trump Mediaeval\"] = true;\n t.Utopia = true;\n t[\"Vale Type\"] = true;\n t[\"Bitstream Vera\"] = true;\n t[\"Vera Serif\"] = true;\n t.Versailles = true;\n t.Wanted = true;\n t.Weiss = true;\n t[\"Wide Latin\"] = true;\n t.Windsor = true;\n t.XITS = true;\n});\n\nconst getSymbolsFonts = getLookupTableFactory(function (t) {\n t.Dingbats = true;\n t.Symbol = true;\n t.ZapfDingbats = true;\n});\n\n// Glyph map for well-known standard fonts. Sometimes Ghostscript uses CID\n// fonts, but does not embed the CID to GID mapping. The mapping is incomplete\n// for all glyphs, but common for some set of the standard fonts.\nconst getGlyphMapForStandardFonts = getLookupTableFactory(function (t) {\n t[2] = 10;\n t[3] = 32;\n t[4] = 33;\n t[5] = 34;\n t[6] = 35;\n t[7] = 36;\n t[8] = 37;\n t[9] = 38;\n t[10] = 39;\n t[11] = 40;\n t[12] = 41;\n t[13] = 42;\n t[14] = 43;\n t[15] = 44;\n t[16] = 45;\n t[17] = 46;\n t[18] = 47;\n t[19] = 48;\n t[20] = 49;\n t[21] = 50;\n t[22] = 51;\n t[23] = 52;\n t[24] = 53;\n t[25] = 54;\n t[26] = 55;\n t[27] = 56;\n t[28] = 57;\n t[29] = 58;\n t[30] = 894;\n t[31] = 60;\n t[32] = 61;\n t[33] = 62;\n t[34] = 63;\n t[35] = 64;\n t[36] = 65;\n t[37] = 66;\n t[38] = 67;\n t[39] = 68;\n t[40] = 69;\n t[41] = 70;\n t[42] = 71;\n t[43] = 72;\n t[44] = 73;\n t[45] = 74;\n t[46] = 75;\n t[47] = 76;\n t[48] = 77;\n t[49] = 78;\n t[50] = 79;\n t[51] = 80;\n t[52] = 81;\n t[53] = 82;\n t[54] = 83;\n t[55] = 84;\n t[56] = 85;\n t[57] = 86;\n t[58] = 87;\n t[59] = 88;\n t[60] = 89;\n t[61] = 90;\n t[62] = 91;\n t[63] = 92;\n t[64] = 93;\n t[65] = 94;\n t[66] = 95;\n t[67] = 96;\n t[68] = 97;\n t[69] = 98;\n t[70] = 99;\n t[71] = 100;\n t[72] = 101;\n t[73] = 102;\n t[74] = 103;\n t[75] = 104;\n t[76] = 105;\n t[77] = 106;\n t[78] = 107;\n t[79] = 108;\n t[80] = 109;\n t[81] = 110;\n t[82] = 111;\n t[83] = 112;\n t[84] = 113;\n t[85] = 114;\n t[86] = 115;\n t[87] = 116;\n t[88] = 117;\n t[89] = 118;\n t[90] = 119;\n t[91] = 120;\n t[92] = 121;\n t[93] = 122;\n t[94] = 123;\n t[95] = 124;\n t[96] = 125;\n t[97] = 126;\n t[98] = 196;\n t[99] = 197;\n t[100] = 199;\n t[101] = 201;\n t[102] = 209;\n t[103] = 214;\n t[104] = 220;\n t[105] = 225;\n t[106] = 224;\n t[107] = 226;\n t[108] = 228;\n t[109] = 227;\n t[110] = 229;\n t[111] = 231;\n t[112] = 233;\n t[113] = 232;\n t[114] = 234;\n t[115] = 235;\n t[116] = 237;\n t[117] = 236;\n t[118] = 238;\n t[119] = 239;\n t[120] = 241;\n t[121] = 243;\n t[122] = 242;\n t[123] = 244;\n t[124] = 246;\n t[125] = 245;\n t[126] = 250;\n t[127] = 249;\n t[128] = 251;\n t[129] = 252;\n t[130] = 8224;\n t[131] = 176;\n t[132] = 162;\n t[133] = 163;\n t[134] = 167;\n t[135] = 8226;\n t[136] = 182;\n t[137] = 223;\n t[138] = 174;\n t[139] = 169;\n t[140] = 8482;\n t[141] = 180;\n t[142] = 168;\n t[143] = 8800;\n t[144] = 198;\n t[145] = 216;\n t[146] = 8734;\n t[147] = 177;\n t[148] = 8804;\n t[149] = 8805;\n t[150] = 165;\n t[151] = 181;\n t[152] = 8706;\n t[153] = 8721;\n t[154] = 8719;\n t[156] = 8747;\n t[157] = 170;\n t[158] = 186;\n t[159] = 8486;\n t[160] = 230;\n t[161] = 248;\n t[162] = 191;\n t[163] = 161;\n t[164] = 172;\n t[165] = 8730;\n t[166] = 402;\n t[167] = 8776;\n t[168] = 8710;\n t[169] = 171;\n t[170] = 187;\n t[171] = 8230;\n t[200] = 193;\n t[203] = 205;\n t[210] = 218;\n t[223] = 711;\n t[224] = 321;\n t[225] = 322;\n t[226] = 352;\n t[227] = 353;\n t[228] = 381;\n t[229] = 382;\n t[233] = 221;\n t[234] = 253;\n t[252] = 263;\n t[253] = 268;\n t[254] = 269;\n t[258] = 258;\n t[260] = 260;\n t[261] = 261;\n t[265] = 280;\n t[266] = 281;\n t[267] = 282;\n t[268] = 283;\n t[269] = 313;\n t[275] = 323;\n t[276] = 324;\n t[278] = 328;\n t[283] = 344;\n t[284] = 345;\n t[285] = 346;\n t[286] = 347;\n t[292] = 367;\n t[295] = 377;\n t[296] = 378;\n t[298] = 380;\n t[305] = 963;\n t[306] = 964;\n t[307] = 966;\n t[308] = 8215;\n t[309] = 8252;\n t[310] = 8319;\n t[311] = 8359;\n t[312] = 8592;\n t[313] = 8593;\n t[337] = 9552;\n t[493] = 1039;\n t[494] = 1040;\n t[705] = 1524;\n t[706] = 8362;\n t[710] = 64288;\n t[711] = 64298;\n t[759] = 1617;\n t[761] = 1776;\n t[763] = 1778;\n t[775] = 1652;\n t[777] = 1764;\n t[778] = 1780;\n t[779] = 1781;\n t[780] = 1782;\n t[782] = 771;\n t[783] = 64726;\n t[786] = 8363;\n t[788] = 8532;\n t[790] = 768;\n t[791] = 769;\n t[792] = 768;\n t[795] = 803;\n t[797] = 64336;\n t[798] = 64337;\n t[799] = 64342;\n t[800] = 64343;\n t[801] = 64344;\n t[802] = 64345;\n t[803] = 64362;\n t[804] = 64363;\n t[805] = 64364;\n t[2424] = 7821;\n t[2425] = 7822;\n t[2426] = 7823;\n t[2427] = 7824;\n t[2428] = 7825;\n t[2429] = 7826;\n t[2430] = 7827;\n t[2433] = 7682;\n t[2678] = 8045;\n t[2679] = 8046;\n t[2830] = 1552;\n t[2838] = 686;\n t[2840] = 751;\n t[2842] = 753;\n t[2843] = 754;\n t[2844] = 755;\n t[2846] = 757;\n t[2856] = 767;\n t[2857] = 848;\n t[2858] = 849;\n t[2862] = 853;\n t[2863] = 854;\n t[2864] = 855;\n t[2865] = 861;\n t[2866] = 862;\n t[2906] = 7460;\n t[2908] = 7462;\n t[2909] = 7463;\n t[2910] = 7464;\n t[2912] = 7466;\n t[2913] = 7467;\n t[2914] = 7468;\n t[2916] = 7470;\n t[2917] = 7471;\n t[2918] = 7472;\n t[2920] = 7474;\n t[2921] = 7475;\n t[2922] = 7476;\n t[2924] = 7478;\n t[2925] = 7479;\n t[2926] = 7480;\n t[2928] = 7482;\n t[2929] = 7483;\n t[2930] = 7484;\n t[2932] = 7486;\n t[2933] = 7487;\n t[2934] = 7488;\n t[2936] = 7490;\n t[2937] = 7491;\n t[2938] = 7492;\n t[2940] = 7494;\n t[2941] = 7495;\n t[2942] = 7496;\n t[2944] = 7498;\n t[2946] = 7500;\n t[2948] = 7502;\n t[2950] = 7504;\n t[2951] = 7505;\n t[2952] = 7506;\n t[2954] = 7508;\n t[2955] = 7509;\n t[2956] = 7510;\n t[2958] = 7512;\n t[2959] = 7513;\n t[2960] = 7514;\n t[2962] = 7516;\n t[2963] = 7517;\n t[2964] = 7518;\n t[2966] = 7520;\n t[2967] = 7521;\n t[2968] = 7522;\n t[2970] = 7524;\n t[2971] = 7525;\n t[2972] = 7526;\n t[2974] = 7528;\n t[2975] = 7529;\n t[2976] = 7530;\n t[2978] = 1537;\n t[2979] = 1538;\n t[2980] = 1539;\n t[2982] = 1549;\n t[2983] = 1551;\n t[2984] = 1552;\n t[2986] = 1554;\n t[2987] = 1555;\n t[2988] = 1556;\n t[2990] = 1623;\n t[2991] = 1624;\n t[2995] = 1775;\n t[2999] = 1791;\n t[3002] = 64290;\n t[3003] = 64291;\n t[3004] = 64292;\n t[3006] = 64294;\n t[3007] = 64295;\n t[3008] = 64296;\n t[3011] = 1900;\n t[3014] = 8223;\n t[3015] = 8244;\n t[3017] = 7532;\n t[3018] = 7533;\n t[3019] = 7534;\n t[3075] = 7590;\n t[3076] = 7591;\n t[3079] = 7594;\n t[3080] = 7595;\n t[3083] = 7598;\n t[3084] = 7599;\n t[3087] = 7602;\n t[3088] = 7603;\n t[3091] = 7606;\n t[3092] = 7607;\n t[3095] = 7610;\n t[3096] = 7611;\n t[3099] = 7614;\n t[3100] = 7615;\n t[3103] = 7618;\n t[3104] = 7619;\n t[3107] = 8337;\n t[3108] = 8338;\n t[3116] = 1884;\n t[3119] = 1885;\n t[3120] = 1885;\n t[3123] = 1886;\n t[3124] = 1886;\n t[3127] = 1887;\n t[3128] = 1887;\n t[3131] = 1888;\n t[3132] = 1888;\n t[3135] = 1889;\n t[3136] = 1889;\n t[3139] = 1890;\n t[3140] = 1890;\n t[3143] = 1891;\n t[3144] = 1891;\n t[3147] = 1892;\n t[3148] = 1892;\n t[3153] = 580;\n t[3154] = 581;\n t[3157] = 584;\n t[3158] = 585;\n t[3161] = 588;\n t[3162] = 589;\n t[3165] = 891;\n t[3166] = 892;\n t[3169] = 1274;\n t[3170] = 1275;\n t[3173] = 1278;\n t[3174] = 1279;\n t[3181] = 7622;\n t[3182] = 7623;\n t[3282] = 11799;\n t[3316] = 578;\n t[3379] = 42785;\n t[3393] = 1159;\n t[3416] = 8377;\n});\n\n// The glyph map for ArialBlack differs slightly from the glyph map used for\n// other well-known standard fonts. Hence we use this (incomplete) CID to GID\n// mapping to adjust the glyph map for non-embedded ArialBlack fonts.\nconst getSupplementalGlyphMapForArialBlack = getLookupTableFactory(function (\n t\n) {\n t[227] = 322;\n t[264] = 261;\n t[291] = 346;\n});\n\n// The glyph map for Calibri (a Windows font) differs from the glyph map used\n// in the standard fonts. Hence we use this (incomplete) CID to GID mapping to\n// adjust the glyph map for non-embedded Calibri fonts.\nconst getSupplementalGlyphMapForCalibri = getLookupTableFactory(function (t) {\n t[1] = 32;\n t[4] = 65;\n t[6] = 193;\n t[17] = 66;\n t[18] = 67;\n t[21] = 268;\n t[24] = 68;\n t[28] = 69;\n t[30] = 201;\n t[32] = 282;\n t[38] = 70;\n t[39] = 71;\n t[44] = 72;\n t[47] = 73;\n t[49] = 205;\n t[58] = 74;\n t[60] = 75;\n t[62] = 76;\n t[68] = 77;\n t[69] = 78;\n t[75] = 79;\n t[87] = 80;\n t[89] = 81;\n t[90] = 82;\n t[92] = 344;\n t[94] = 83;\n t[97] = 352;\n t[100] = 84;\n t[104] = 85;\n t[115] = 86;\n t[116] = 87;\n t[121] = 88;\n t[122] = 89;\n t[124] = 221;\n t[127] = 90;\n t[129] = 381;\n t[258] = 97;\n t[260] = 225;\n t[268] = 261;\n t[271] = 98;\n t[272] = 99;\n t[273] = 263;\n t[275] = 269;\n t[282] = 100;\n t[286] = 101;\n t[288] = 233;\n t[290] = 283;\n t[295] = 281;\n t[296] = 102;\n t[336] = 103;\n t[346] = 104;\n t[349] = 105;\n t[351] = 237;\n t[361] = 106;\n t[364] = 107;\n t[367] = 108;\n t[371] = 322;\n t[373] = 109;\n t[374] = 110;\n t[381] = 111;\n t[383] = 243;\n t[393] = 112;\n t[395] = 113;\n t[396] = 114;\n t[398] = 345;\n t[400] = 115;\n t[401] = 347;\n t[403] = 353;\n t[410] = 116;\n t[437] = 117;\n t[448] = 118;\n t[449] = 119;\n t[454] = 120;\n t[455] = 121;\n t[457] = 253;\n t[460] = 122;\n t[462] = 382;\n t[463] = 380;\n t[853] = 44;\n t[855] = 58;\n t[856] = 46;\n t[876] = 47;\n t[878] = 45;\n t[882] = 45;\n t[894] = 40;\n t[895] = 41;\n t[896] = 91;\n t[897] = 93;\n t[923] = 64;\n t[1004] = 48;\n t[1005] = 49;\n t[1006] = 50;\n t[1007] = 51;\n t[1008] = 52;\n t[1009] = 53;\n t[1010] = 54;\n t[1011] = 55;\n t[1012] = 56;\n t[1013] = 57;\n t[1081] = 37;\n t[1085] = 43;\n t[1086] = 45;\n});\n\nfunction getStandardFontName(name) {\n const fontName = normalizeFontName(name);\n const stdFontMap = getStdFontMap();\n return stdFontMap[fontName];\n}\n\nexport {\n getFontNameToFileMap,\n getGlyphMapForStandardFonts,\n getNonStdFontMap,\n getSerifFonts,\n getStandardFontName,\n getStdFontMap,\n getSupplementalGlyphMapForArialBlack,\n getSupplementalGlyphMapForCalibri,\n getSymbolsFonts,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { unreachable } from \"../shared/util.js\";\n\nclass ToUnicodeMap {\n constructor(cmap = []) {\n // The elements of this._map can be integers or strings, depending on how\n // `cmap` was created.\n this._map = cmap;\n }\n\n get length() {\n return this._map.length;\n }\n\n forEach(callback) {\n for (const charCode in this._map) {\n callback(charCode, this._map[charCode].charCodeAt(0));\n }\n }\n\n has(i) {\n return this._map[i] !== undefined;\n }\n\n get(i) {\n return this._map[i];\n }\n\n charCodeOf(value) {\n // `Array.prototype.indexOf` is *extremely* inefficient for arrays which\n // are both very sparse and very large (see issue8372.pdf).\n const map = this._map;\n if (map.length <= 0x10000) {\n return map.indexOf(value);\n }\n for (const charCode in map) {\n if (map[charCode] === value) {\n return charCode | 0;\n }\n }\n return -1;\n }\n\n amend(map) {\n for (const charCode in map) {\n this._map[charCode] = map[charCode];\n }\n }\n}\n\nclass IdentityToUnicodeMap {\n constructor(firstChar, lastChar) {\n this.firstChar = firstChar;\n this.lastChar = lastChar;\n }\n\n get length() {\n return this.lastChar + 1 - this.firstChar;\n }\n\n forEach(callback) {\n for (let i = this.firstChar, ii = this.lastChar; i <= ii; i++) {\n callback(i, i);\n }\n }\n\n has(i) {\n return this.firstChar <= i && i <= this.lastChar;\n }\n\n get(i) {\n if (this.firstChar <= i && i <= this.lastChar) {\n return String.fromCharCode(i);\n }\n return undefined;\n }\n\n charCodeOf(v) {\n return Number.isInteger(v) && v >= this.firstChar && v <= this.lastChar\n ? v\n : -1;\n }\n\n amend(map) {\n unreachable(\"Should not call amend()\");\n }\n}\n\nexport { IdentityToUnicodeMap, ToUnicodeMap };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CFFCompiler, CFFParser } from \"./cff_parser.js\";\nimport { SEAC_ANALYSIS_ENABLED, type1FontGlyphMapping } from \"./fonts_utils.js\";\nimport { warn } from \"../shared/util.js\";\n\nclass CFFFont {\n constructor(file, properties) {\n this.properties = properties;\n\n const parser = new CFFParser(file, properties, SEAC_ANALYSIS_ENABLED);\n this.cff = parser.parse();\n this.cff.duplicateFirstGlyph();\n const compiler = new CFFCompiler(this.cff);\n this.seacs = this.cff.seacs;\n try {\n this.data = compiler.compile();\n } catch (e) {\n warn(\"Failed to compile font \" + properties.loadedName);\n // There may have just been an issue with the compiler, set the data\n // anyway and hope the font loaded.\n this.data = file;\n }\n this._createBuiltInEncoding();\n }\n\n get numGlyphs() {\n return this.cff.charStrings.count;\n }\n\n getCharset() {\n return this.cff.charset.charset;\n }\n\n getGlyphMapping() {\n const cff = this.cff;\n const properties = this.properties;\n const charsets = cff.charset.charset;\n let charCodeToGlyphId;\n let glyphId;\n\n if (properties.composite) {\n charCodeToGlyphId = Object.create(null);\n let charCode;\n if (cff.isCIDFont) {\n // If the font is actually a CID font then we should use the charset\n // to map CIDs to GIDs.\n for (glyphId = 0; glyphId < charsets.length; glyphId++) {\n const cid = charsets[glyphId];\n charCode = properties.cMap.charCodeOf(cid);\n charCodeToGlyphId[charCode] = glyphId;\n }\n } else {\n // If it is NOT actually a CID font then CIDs should be mapped\n // directly to GIDs.\n for (glyphId = 0; glyphId < cff.charStrings.count; glyphId++) {\n charCode = properties.cMap.charCodeOf(glyphId);\n charCodeToGlyphId[charCode] = glyphId;\n }\n }\n return charCodeToGlyphId;\n }\n\n let encoding = cff.encoding ? cff.encoding.encoding : null;\n if (properties.isInternalFont) {\n encoding = properties.defaultEncoding;\n }\n charCodeToGlyphId = type1FontGlyphMapping(properties, encoding, charsets);\n return charCodeToGlyphId;\n }\n\n hasGlyphId(id) {\n return this.cff.hasGlyphId(id);\n }\n\n /**\n * @private\n */\n _createBuiltInEncoding() {\n const { charset, encoding } = this.cff;\n if (!charset || !encoding) {\n return;\n }\n const charsets = charset.charset,\n encodings = encoding.encoding;\n const map = [];\n\n for (const charCode in encodings) {\n const glyphId = encodings[charCode];\n if (glyphId >= 0) {\n const glyphName = charsets[glyphId];\n if (glyphName) {\n map[charCode] = glyphName;\n }\n }\n }\n if (map.length > 0) {\n this.properties.builtInEncoding = map;\n }\n }\n}\n\nexport { CFFFont };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n bytesToString,\n FONT_IDENTITY_MATRIX,\n FormatError,\n unreachable,\n warn,\n} from \"../shared/util.js\";\nimport { CFFParser } from \"./cff_parser.js\";\nimport { getGlyphsUnicode } from \"./glyphlist.js\";\nimport { StandardEncoding } from \"./encodings.js\";\nimport { Stream } from \"./stream.js\";\n\n// TODO: use DataView and its methods.\n\nfunction getUint32(data, offset) {\n return (\n ((data[offset] << 24) |\n (data[offset + 1] << 16) |\n (data[offset + 2] << 8) |\n data[offset + 3]) >>>\n 0\n );\n}\n\nfunction getUint16(data, offset) {\n return (data[offset] << 8) | data[offset + 1];\n}\n\nfunction getInt16(data, offset) {\n return ((data[offset] << 24) | (data[offset + 1] << 16)) >> 16;\n}\n\nfunction getInt8(data, offset) {\n return (data[offset] << 24) >> 24;\n}\n\nfunction getFloat214(data, offset) {\n return getInt16(data, offset) / 16384;\n}\n\nfunction getSubroutineBias(subrs) {\n const numSubrs = subrs.length;\n let bias = 32768;\n if (numSubrs < 1240) {\n bias = 107;\n } else if (numSubrs < 33900) {\n bias = 1131;\n }\n return bias;\n}\n\nfunction parseCmap(data, start, end) {\n const offset =\n getUint16(data, start + 2) === 1\n ? getUint32(data, start + 8)\n : getUint32(data, start + 16);\n const format = getUint16(data, start + offset);\n let ranges, p, i;\n if (format === 4) {\n getUint16(data, start + offset + 2); // length\n const segCount = getUint16(data, start + offset + 6) >> 1;\n p = start + offset + 14;\n ranges = [];\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i] = { end: getUint16(data, p) };\n }\n p += 2;\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i].start = getUint16(data, p);\n }\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i].idDelta = getUint16(data, p);\n }\n for (i = 0; i < segCount; i++, p += 2) {\n let idOffset = getUint16(data, p);\n if (idOffset === 0) {\n continue;\n }\n ranges[i].ids = [];\n for (let j = 0, jj = ranges[i].end - ranges[i].start + 1; j < jj; j++) {\n ranges[i].ids[j] = getUint16(data, p + idOffset);\n idOffset += 2;\n }\n }\n return ranges;\n } else if (format === 12) {\n const groups = getUint32(data, start + offset + 12);\n p = start + offset + 16;\n ranges = [];\n for (i = 0; i < groups; i++) {\n start = getUint32(data, p);\n ranges.push({\n start,\n end: getUint32(data, p + 4),\n idDelta: getUint32(data, p + 8) - start,\n });\n p += 12;\n }\n return ranges;\n }\n throw new FormatError(`unsupported cmap: ${format}`);\n}\n\nfunction parseCff(data, start, end, seacAnalysisEnabled) {\n const properties = {};\n const parser = new CFFParser(\n new Stream(data, start, end - start),\n properties,\n seacAnalysisEnabled\n );\n const cff = parser.parse();\n return {\n glyphs: cff.charStrings.objects,\n subrs:\n cff.topDict.privateDict &&\n cff.topDict.privateDict.subrsIndex &&\n cff.topDict.privateDict.subrsIndex.objects,\n gsubrs: cff.globalSubrIndex && cff.globalSubrIndex.objects,\n isCFFCIDFont: cff.isCIDFont,\n fdSelect: cff.fdSelect,\n fdArray: cff.fdArray,\n };\n}\n\nfunction parseGlyfTable(glyf, loca, isGlyphLocationsLong) {\n let itemSize, itemDecode;\n if (isGlyphLocationsLong) {\n itemSize = 4;\n itemDecode = getUint32;\n } else {\n itemSize = 2;\n itemDecode = (data, offset) => 2 * getUint16(data, offset);\n }\n const glyphs = [];\n let startOffset = itemDecode(loca, 0);\n for (let j = itemSize; j < loca.length; j += itemSize) {\n const endOffset = itemDecode(loca, j);\n glyphs.push(glyf.subarray(startOffset, endOffset));\n startOffset = endOffset;\n }\n return glyphs;\n}\n\nfunction lookupCmap(ranges, unicode) {\n const code = unicode.codePointAt(0);\n let gid = 0,\n l = 0,\n r = ranges.length - 1;\n while (l < r) {\n const c = (l + r + 1) >> 1;\n if (code < ranges[c].start) {\n r = c - 1;\n } else {\n l = c;\n }\n }\n if (ranges[l].start <= code && code <= ranges[l].end) {\n gid =\n (ranges[l].idDelta +\n (ranges[l].ids ? ranges[l].ids[code - ranges[l].start] : code)) &\n 0xffff;\n }\n return {\n charCode: code,\n glyphId: gid,\n };\n}\n\nfunction compileGlyf(code, cmds, font) {\n function moveTo(x, y) {\n cmds.push({ cmd: \"moveTo\", args: [x, y] });\n }\n function lineTo(x, y) {\n cmds.push({ cmd: \"lineTo\", args: [x, y] });\n }\n function quadraticCurveTo(xa, ya, x, y) {\n cmds.push({ cmd: \"quadraticCurveTo\", args: [xa, ya, x, y] });\n }\n\n let i = 0;\n const numberOfContours = getInt16(code, i);\n let flags;\n let x = 0,\n y = 0;\n i += 10;\n if (numberOfContours < 0) {\n // composite glyph\n do {\n flags = getUint16(code, i);\n const glyphIndex = getUint16(code, i + 2);\n i += 4;\n let arg1, arg2;\n if (flags & 0x01) {\n if (flags & 0x02) {\n arg1 = getInt16(code, i);\n arg2 = getInt16(code, i + 2);\n } else {\n arg1 = getUint16(code, i);\n arg2 = getUint16(code, i + 2);\n }\n i += 4;\n } else {\n if (flags & 0x02) {\n arg1 = getInt8(code, i++);\n arg2 = getInt8(code, i++);\n } else {\n arg1 = code[i++];\n arg2 = code[i++];\n }\n }\n if (flags & 0x02) {\n x = arg1;\n y = arg2;\n } else {\n x = 0;\n y = 0;\n }\n let scaleX = 1,\n scaleY = 1,\n scale01 = 0,\n scale10 = 0;\n if (flags & 0x08) {\n scaleX = scaleY = getFloat214(code, i);\n i += 2;\n } else if (flags & 0x40) {\n scaleX = getFloat214(code, i);\n scaleY = getFloat214(code, i + 2);\n i += 4;\n } else if (flags & 0x80) {\n scaleX = getFloat214(code, i);\n scale01 = getFloat214(code, i + 2);\n scale10 = getFloat214(code, i + 4);\n scaleY = getFloat214(code, i + 6);\n i += 8;\n }\n const subglyph = font.glyphs[glyphIndex];\n if (subglyph) {\n // TODO: the transform should be applied only if there is a scale:\n // https://github.com/freetype/freetype/blob/edd4fedc5427cf1cf1f4b045e53ff91eb282e9d4/src/truetype/ttgload.c#L1205\n cmds.push(\n { cmd: \"save\" },\n {\n cmd: \"transform\",\n args: [scaleX, scale01, scale10, scaleY, x, y],\n }\n );\n\n if (!(flags & 0x02)) {\n // TODO: we must use arg1 and arg2 to make something similar to:\n // https://github.com/freetype/freetype/blob/edd4fedc5427cf1cf1f4b045e53ff91eb282e9d4/src/truetype/ttgload.c#L1209\n }\n compileGlyf(subglyph, cmds, font);\n cmds.push({ cmd: \"restore\" });\n }\n } while (flags & 0x20);\n } else {\n // simple glyph\n const endPtsOfContours = [];\n let j, jj;\n for (j = 0; j < numberOfContours; j++) {\n endPtsOfContours.push(getUint16(code, i));\n i += 2;\n }\n const instructionLength = getUint16(code, i);\n i += 2 + instructionLength; // skipping the instructions\n const numberOfPoints = endPtsOfContours[endPtsOfContours.length - 1] + 1;\n const points = [];\n while (points.length < numberOfPoints) {\n flags = code[i++];\n let repeat = 1;\n if (flags & 0x08) {\n repeat += code[i++];\n }\n while (repeat-- > 0) {\n points.push({ flags });\n }\n }\n for (j = 0; j < numberOfPoints; j++) {\n switch (points[j].flags & 0x12) {\n case 0x00:\n x += getInt16(code, i);\n i += 2;\n break;\n case 0x02:\n x -= code[i++];\n break;\n case 0x12:\n x += code[i++];\n break;\n }\n points[j].x = x;\n }\n for (j = 0; j < numberOfPoints; j++) {\n switch (points[j].flags & 0x24) {\n case 0x00:\n y += getInt16(code, i);\n i += 2;\n break;\n case 0x04:\n y -= code[i++];\n break;\n case 0x24:\n y += code[i++];\n break;\n }\n points[j].y = y;\n }\n\n let startPoint = 0;\n for (i = 0; i < numberOfContours; i++) {\n const endPoint = endPtsOfContours[i];\n // contours might have implicit points, which is located in the middle\n // between two neighboring off-curve points\n const contour = points.slice(startPoint, endPoint + 1);\n if (contour[0].flags & 1) {\n contour.push(contour[0]); // using start point at the contour end\n } else if (contour[contour.length - 1].flags & 1) {\n // first is off-curve point, trying to use one from the end\n contour.unshift(contour[contour.length - 1]);\n } else {\n // start and end are off-curve points, creating implicit one\n const p = {\n flags: 1,\n x: (contour[0].x + contour[contour.length - 1].x) / 2,\n y: (contour[0].y + contour[contour.length - 1].y) / 2,\n };\n contour.unshift(p);\n contour.push(p);\n }\n moveTo(contour[0].x, contour[0].y);\n for (j = 1, jj = contour.length; j < jj; j++) {\n if (contour[j].flags & 1) {\n lineTo(contour[j].x, contour[j].y);\n } else if (contour[j + 1].flags & 1) {\n quadraticCurveTo(\n contour[j].x,\n contour[j].y,\n contour[j + 1].x,\n contour[j + 1].y\n );\n j++;\n } else {\n quadraticCurveTo(\n contour[j].x,\n contour[j].y,\n (contour[j].x + contour[j + 1].x) / 2,\n (contour[j].y + contour[j + 1].y) / 2\n );\n }\n }\n startPoint = endPoint + 1;\n }\n }\n}\n\nfunction compileCharString(charStringCode, cmds, font, glyphId) {\n function moveTo(x, y) {\n cmds.push({ cmd: \"moveTo\", args: [x, y] });\n }\n function lineTo(x, y) {\n cmds.push({ cmd: \"lineTo\", args: [x, y] });\n }\n function bezierCurveTo(x1, y1, x2, y2, x, y) {\n cmds.push({ cmd: \"bezierCurveTo\", args: [x1, y1, x2, y2, x, y] });\n }\n\n const stack = [];\n let x = 0,\n y = 0;\n let stems = 0;\n\n function parse(code) {\n let i = 0;\n while (i < code.length) {\n let stackClean = false;\n let v = code[i++];\n let xa, xb, ya, yb, y1, y2, y3, n, subrCode;\n switch (v) {\n case 1: // hstem\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 3: // vstem\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 4: // vmoveto\n y += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n case 5: // rlineto\n while (stack.length > 0) {\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n }\n break;\n case 6: // hlineto\n while (stack.length > 0) {\n x += stack.shift();\n lineTo(x, y);\n if (stack.length === 0) {\n break;\n }\n y += stack.shift();\n lineTo(x, y);\n }\n break;\n case 7: // vlineto\n while (stack.length > 0) {\n y += stack.shift();\n lineTo(x, y);\n if (stack.length === 0) {\n break;\n }\n x += stack.shift();\n lineTo(x, y);\n }\n break;\n case 8: // rrcurveto\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 10: // callsubr\n n = stack.pop();\n subrCode = null;\n if (font.isCFFCIDFont) {\n const fdIndex = font.fdSelect.getFDIndex(glyphId);\n if (fdIndex >= 0 && fdIndex < font.fdArray.length) {\n const fontDict = font.fdArray[fdIndex];\n let subrs;\n if (fontDict.privateDict && fontDict.privateDict.subrsIndex) {\n subrs = fontDict.privateDict.subrsIndex.objects;\n }\n if (subrs) {\n // Add subroutine bias.\n n += getSubroutineBias(subrs);\n subrCode = subrs[n];\n }\n } else {\n warn(\"Invalid fd index for glyph index.\");\n }\n } else {\n subrCode = font.subrs[n + font.subrsBias];\n }\n if (subrCode) {\n parse(subrCode);\n }\n break;\n case 11: // return\n return;\n case 12:\n v = code[i++];\n switch (v) {\n case 34: // flex\n xa = x + stack.shift();\n xb = xa + stack.shift();\n y1 = y + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y, xb, y1, x, y1);\n xa = x + stack.shift();\n xb = xa + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y1, xb, y, x, y);\n break;\n case 35: // flex\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n stack.pop(); // fd\n break;\n case 36: // hflex1\n xa = x + stack.shift();\n y1 = y + stack.shift();\n xb = xa + stack.shift();\n y2 = y1 + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y1, xb, y2, x, y2);\n xa = x + stack.shift();\n xb = xa + stack.shift();\n y3 = y2 + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y2, xb, y3, x, y);\n break;\n case 37: // flex1\n const x0 = x,\n y0 = y;\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb;\n y = yb;\n if (Math.abs(x - x0) > Math.abs(y - y0)) {\n x += stack.shift();\n } else {\n y += stack.shift();\n }\n bezierCurveTo(xa, ya, xb, yb, x, y);\n break;\n default:\n throw new FormatError(`unknown operator: 12 ${v}`);\n }\n break;\n case 14: // endchar\n if (stack.length >= 4) {\n const achar = stack.pop();\n const bchar = stack.pop();\n y = stack.pop();\n x = stack.pop();\n cmds.push({ cmd: \"save\" }, { cmd: \"translate\", args: [x, y] });\n let cmap = lookupCmap(\n font.cmap,\n String.fromCharCode(font.glyphNameMap[StandardEncoding[achar]])\n );\n compileCharString(\n font.glyphs[cmap.glyphId],\n cmds,\n font,\n cmap.glyphId\n );\n cmds.push({ cmd: \"restore\" });\n\n cmap = lookupCmap(\n font.cmap,\n String.fromCharCode(font.glyphNameMap[StandardEncoding[bchar]])\n );\n compileCharString(\n font.glyphs[cmap.glyphId],\n cmds,\n font,\n cmap.glyphId\n );\n }\n return;\n case 18: // hstemhm\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 19: // hintmask\n stems += stack.length >> 1;\n i += (stems + 7) >> 3;\n stackClean = true;\n break;\n case 20: // cntrmask\n stems += stack.length >> 1;\n i += (stems + 7) >> 3;\n stackClean = true;\n break;\n case 21: // rmoveto\n y += stack.pop();\n x += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n case 22: // hmoveto\n x += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n case 23: // vstemhm\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 24: // rcurveline\n while (stack.length > 2) {\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n break;\n case 25: // rlinecurve\n while (stack.length > 6) {\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n }\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n break;\n case 26: // vvcurveto\n if (stack.length % 2) {\n x += stack.shift();\n }\n while (stack.length > 0) {\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb;\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 27: // hhcurveto\n if (stack.length % 2) {\n y += stack.shift();\n }\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb;\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 28:\n stack.push(((code[i] << 24) | (code[i + 1] << 16)) >> 16);\n i += 2;\n break;\n case 29: // callgsubr\n n = stack.pop() + font.gsubrsBias;\n subrCode = font.gsubrs[n];\n if (subrCode) {\n parse(subrCode);\n }\n break;\n case 30: // vhcurveto\n while (stack.length > 0) {\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n if (stack.length === 0) {\n break;\n }\n\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n y = yb + stack.shift();\n x = xb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 31: // hvcurveto\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n y = yb + stack.shift();\n x = xb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n if (stack.length === 0) {\n break;\n }\n\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n default:\n if (v < 32) {\n throw new FormatError(`unknown operator: ${v}`);\n }\n if (v < 247) {\n stack.push(v - 139);\n } else if (v < 251) {\n stack.push((v - 247) * 256 + code[i++] + 108);\n } else if (v < 255) {\n stack.push(-(v - 251) * 256 - code[i++] - 108);\n } else {\n stack.push(\n ((code[i] << 24) |\n (code[i + 1] << 16) |\n (code[i + 2] << 8) |\n code[i + 3]) /\n 65536\n );\n i += 4;\n }\n break;\n }\n if (stackClean) {\n stack.length = 0;\n }\n }\n }\n parse(charStringCode);\n}\n\nconst NOOP = [];\n\nclass CompiledFont {\n constructor(fontMatrix) {\n if (this.constructor === CompiledFont) {\n unreachable(\"Cannot initialize CompiledFont.\");\n }\n this.fontMatrix = fontMatrix;\n\n this.compiledGlyphs = Object.create(null);\n this.compiledCharCodeToGlyphId = Object.create(null);\n }\n\n getPathJs(unicode) {\n const { charCode, glyphId } = lookupCmap(this.cmap, unicode);\n let fn = this.compiledGlyphs[glyphId];\n if (!fn) {\n try {\n fn = this.compileGlyph(this.glyphs[glyphId], glyphId);\n this.compiledGlyphs[glyphId] = fn;\n } catch (ex) {\n // Avoid attempting to re-compile a corrupt glyph.\n this.compiledGlyphs[glyphId] = NOOP;\n\n if (this.compiledCharCodeToGlyphId[charCode] === undefined) {\n this.compiledCharCodeToGlyphId[charCode] = glyphId;\n }\n throw ex;\n }\n }\n if (this.compiledCharCodeToGlyphId[charCode] === undefined) {\n this.compiledCharCodeToGlyphId[charCode] = glyphId;\n }\n return fn;\n }\n\n compileGlyph(code, glyphId) {\n if (!code || code.length === 0 || code[0] === 14) {\n return NOOP;\n }\n\n let fontMatrix = this.fontMatrix;\n if (this.isCFFCIDFont) {\n // Top DICT's FontMatrix can be ignored because CFFCompiler always\n // removes it and copies to FDArray DICTs.\n const fdIndex = this.fdSelect.getFDIndex(glyphId);\n if (fdIndex >= 0 && fdIndex < this.fdArray.length) {\n const fontDict = this.fdArray[fdIndex];\n fontMatrix = fontDict.getByName(\"FontMatrix\") || FONT_IDENTITY_MATRIX;\n } else {\n warn(\"Invalid fd index for glyph index.\");\n }\n }\n\n const cmds = [\n { cmd: \"save\" },\n { cmd: \"transform\", args: fontMatrix.slice() },\n { cmd: \"scale\", args: [\"size\", \"-size\"] },\n ];\n this.compileGlyphImpl(code, cmds, glyphId);\n\n cmds.push({ cmd: \"restore\" });\n\n return cmds;\n }\n\n compileGlyphImpl() {\n unreachable(\"Children classes should implement this.\");\n }\n\n hasBuiltPath(unicode) {\n const { charCode, glyphId } = lookupCmap(this.cmap, unicode);\n return (\n this.compiledGlyphs[glyphId] !== undefined &&\n this.compiledCharCodeToGlyphId[charCode] !== undefined\n );\n }\n}\n\nclass TrueTypeCompiled extends CompiledFont {\n constructor(glyphs, cmap, fontMatrix) {\n super(fontMatrix || [0.000488, 0, 0, 0.000488, 0, 0]);\n\n this.glyphs = glyphs;\n this.cmap = cmap;\n }\n\n compileGlyphImpl(code, cmds) {\n compileGlyf(code, cmds, this);\n }\n}\n\nclass Type2Compiled extends CompiledFont {\n constructor(cffInfo, cmap, fontMatrix, glyphNameMap) {\n super(fontMatrix || [0.001, 0, 0, 0.001, 0, 0]);\n\n this.glyphs = cffInfo.glyphs;\n this.gsubrs = cffInfo.gsubrs || [];\n this.subrs = cffInfo.subrs || [];\n this.cmap = cmap;\n this.glyphNameMap = glyphNameMap || getGlyphsUnicode();\n\n this.gsubrsBias = getSubroutineBias(this.gsubrs);\n this.subrsBias = getSubroutineBias(this.subrs);\n\n this.isCFFCIDFont = cffInfo.isCFFCIDFont;\n this.fdSelect = cffInfo.fdSelect;\n this.fdArray = cffInfo.fdArray;\n }\n\n compileGlyphImpl(code, cmds, glyphId) {\n compileCharString(code, cmds, this, glyphId);\n }\n}\n\nclass FontRendererFactory {\n static create(font, seacAnalysisEnabled) {\n const data = new Uint8Array(font.data);\n let cmap, glyf, loca, cff, indexToLocFormat, unitsPerEm;\n const numTables = getUint16(data, 4);\n for (let i = 0, p = 12; i < numTables; i++, p += 16) {\n const tag = bytesToString(data.subarray(p, p + 4));\n const offset = getUint32(data, p + 8);\n const length = getUint32(data, p + 12);\n switch (tag) {\n case \"cmap\":\n cmap = parseCmap(data, offset, offset + length);\n break;\n case \"glyf\":\n glyf = data.subarray(offset, offset + length);\n break;\n case \"loca\":\n loca = data.subarray(offset, offset + length);\n break;\n case \"head\":\n unitsPerEm = getUint16(data, offset + 18);\n indexToLocFormat = getUint16(data, offset + 50);\n break;\n case \"CFF \":\n cff = parseCff(data, offset, offset + length, seacAnalysisEnabled);\n break;\n }\n }\n\n if (glyf) {\n const fontMatrix = !unitsPerEm\n ? font.fontMatrix\n : [1 / unitsPerEm, 0, 0, 1 / unitsPerEm, 0, 0];\n return new TrueTypeCompiled(\n parseGlyfTable(glyf, loca, indexToLocFormat),\n cmap,\n fontMatrix\n );\n }\n return new Type2Compiled(cff, cmap, font.fontMatrix, font.glyphNameMap);\n }\n}\n\nexport { FontRendererFactory };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getLookupTableFactory } from \"./core_utils.js\";\n\n// The Metrics object contains glyph widths (in glyph space units).\n// As per PDF spec, for most fonts (Type 3 being an exception) a glyph\n// space unit corresponds to 1/1000th of text space unit.\nconst getMetrics = getLookupTableFactory(function (t) {\n t.Courier = 600;\n t[\"Courier-Bold\"] = 600;\n t[\"Courier-BoldOblique\"] = 600;\n t[\"Courier-Oblique\"] = 600;\n // eslint-disable-next-line no-shadow\n t.Helvetica = getLookupTableFactory(function (t) {\n t.space = 278;\n t.exclam = 278;\n t.quotedbl = 355;\n t.numbersign = 556;\n t.dollar = 556;\n t.percent = 889;\n t.ampersand = 667;\n t.quoteright = 222;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 389;\n t.plus = 584;\n t.comma = 278;\n t.hyphen = 333;\n t.period = 278;\n t.slash = 278;\n t.zero = 556;\n t.one = 556;\n t.two = 556;\n t.three = 556;\n t.four = 556;\n t.five = 556;\n t.six = 556;\n t.seven = 556;\n t.eight = 556;\n t.nine = 556;\n t.colon = 278;\n t.semicolon = 278;\n t.less = 584;\n t.equal = 584;\n t.greater = 584;\n t.question = 556;\n t.at = 1015;\n t.A = 667;\n t.B = 667;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 722;\n t.I = 278;\n t.J = 500;\n t.K = 667;\n t.L = 556;\n t.M = 833;\n t.N = 722;\n t.O = 778;\n t.P = 667;\n t.Q = 778;\n t.R = 722;\n t.S = 667;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 944;\n t.X = 667;\n t.Y = 667;\n t.Z = 611;\n t.bracketleft = 278;\n t.backslash = 278;\n t.bracketright = 278;\n t.asciicircum = 469;\n t.underscore = 556;\n t.quoteleft = 222;\n t.a = 556;\n t.b = 556;\n t.c = 500;\n t.d = 556;\n t.e = 556;\n t.f = 278;\n t.g = 556;\n t.h = 556;\n t.i = 222;\n t.j = 222;\n t.k = 500;\n t.l = 222;\n t.m = 833;\n t.n = 556;\n t.o = 556;\n t.p = 556;\n t.q = 556;\n t.r = 333;\n t.s = 500;\n t.t = 278;\n t.u = 556;\n t.v = 500;\n t.w = 722;\n t.x = 500;\n t.y = 500;\n t.z = 500;\n t.braceleft = 334;\n t.bar = 260;\n t.braceright = 334;\n t.asciitilde = 584;\n t.exclamdown = 333;\n t.cent = 556;\n t.sterling = 556;\n t.fraction = 167;\n t.yen = 556;\n t.florin = 556;\n t.section = 556;\n t.currency = 556;\n t.quotesingle = 191;\n t.quotedblleft = 333;\n t.guillemotleft = 556;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 500;\n t.fl = 500;\n t.endash = 556;\n t.dagger = 556;\n t.daggerdbl = 556;\n t.periodcentered = 278;\n t.paragraph = 537;\n t.bullet = 350;\n t.quotesinglbase = 222;\n t.quotedblbase = 333;\n t.quotedblright = 333;\n t.guillemotright = 556;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 611;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 370;\n t.Lslash = 556;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 365;\n t.ae = 889;\n t.dotlessi = 278;\n t.lslash = 222;\n t.oslash = 611;\n t.oe = 944;\n t.germandbls = 611;\n t.Idieresis = 278;\n t.eacute = 556;\n t.abreve = 556;\n t.uhungarumlaut = 556;\n t.ecaron = 556;\n t.Ydieresis = 667;\n t.divide = 584;\n t.Yacute = 667;\n t.Acircumflex = 667;\n t.aacute = 556;\n t.Ucircumflex = 722;\n t.yacute = 500;\n t.scommaaccent = 500;\n t.ecircumflex = 556;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 556;\n t.Uacute = 722;\n t.uogonek = 556;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 737;\n t.Emacron = 667;\n t.ccaron = 500;\n t.aring = 556;\n t.Ncommaaccent = 722;\n t.lacute = 222;\n t.agrave = 556;\n t.Tcommaaccent = 611;\n t.Cacute = 722;\n t.atilde = 556;\n t.Edotaccent = 667;\n t.scaron = 500;\n t.scedilla = 500;\n t.iacute = 278;\n t.lozenge = 471;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 556;\n t.acircumflex = 556;\n t.Amacron = 667;\n t.rcaron = 333;\n t.ccedilla = 500;\n t.Zdotaccent = 611;\n t.Thorn = 667;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 667;\n t.dcaron = 643;\n t.Umacron = 722;\n t.uring = 556;\n t.threesuperior = 333;\n t.Ograve = 778;\n t.Agrave = 667;\n t.Abreve = 667;\n t.multiply = 584;\n t.uacute = 556;\n t.Tcaron = 611;\n t.partialdiff = 476;\n t.ydieresis = 500;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 556;\n t.edieresis = 556;\n t.cacute = 500;\n t.nacute = 556;\n t.umacron = 556;\n t.Ncaron = 722;\n t.Iacute = 278;\n t.plusminus = 584;\n t.brokenbar = 260;\n t.registered = 737;\n t.Gbreve = 778;\n t.Idotaccent = 278;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 333;\n t.omacron = 556;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 222;\n t.tcaron = 317;\n t.eogonek = 556;\n t.Uogonek = 722;\n t.Aacute = 667;\n t.Adieresis = 667;\n t.egrave = 556;\n t.zacute = 500;\n t.iogonek = 222;\n t.Oacute = 778;\n t.oacute = 556;\n t.amacron = 556;\n t.sacute = 500;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 556;\n t.twosuperior = 333;\n t.Odieresis = 778;\n t.mu = 556;\n t.igrave = 278;\n t.ohungarumlaut = 556;\n t.Eogonek = 667;\n t.dcroat = 556;\n t.threequarters = 834;\n t.Scedilla = 667;\n t.lcaron = 299;\n t.Kcommaaccent = 667;\n t.Lacute = 556;\n t.trademark = 1000;\n t.edotaccent = 556;\n t.Igrave = 278;\n t.Imacron = 278;\n t.Lcaron = 556;\n t.onehalf = 834;\n t.lessequal = 549;\n t.ocircumflex = 556;\n t.ntilde = 556;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 556;\n t.gbreve = 556;\n t.onequarter = 834;\n t.Scaron = 667;\n t.Scommaaccent = 667;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 556;\n t.Ccaron = 722;\n t.ugrave = 556;\n t.radical = 453;\n t.Dcaron = 722;\n t.rcommaaccent = 333;\n t.Ntilde = 722;\n t.otilde = 556;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 556;\n t.Atilde = 667;\n t.Aogonek = 667;\n t.Aring = 667;\n t.Otilde = 778;\n t.zdotaccent = 500;\n t.Ecaron = 667;\n t.Iogonek = 278;\n t.kcommaaccent = 500;\n t.minus = 584;\n t.Icircumflex = 278;\n t.ncaron = 556;\n t.tcommaaccent = 278;\n t.logicalnot = 584;\n t.odieresis = 556;\n t.udieresis = 556;\n t.notequal = 549;\n t.gcommaaccent = 556;\n t.eth = 556;\n t.zcaron = 500;\n t.ncommaaccent = 556;\n t.onesuperior = 333;\n t.imacron = 278;\n t.Euro = 556;\n });\n // eslint-disable-next-line no-shadow\n t[\"Helvetica-Bold\"] = getLookupTableFactory(function (t) {\n t.space = 278;\n t.exclam = 333;\n t.quotedbl = 474;\n t.numbersign = 556;\n t.dollar = 556;\n t.percent = 889;\n t.ampersand = 722;\n t.quoteright = 278;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 389;\n t.plus = 584;\n t.comma = 278;\n t.hyphen = 333;\n t.period = 278;\n t.slash = 278;\n t.zero = 556;\n t.one = 556;\n t.two = 556;\n t.three = 556;\n t.four = 556;\n t.five = 556;\n t.six = 556;\n t.seven = 556;\n t.eight = 556;\n t.nine = 556;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 584;\n t.equal = 584;\n t.greater = 584;\n t.question = 611;\n t.at = 975;\n t.A = 722;\n t.B = 722;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 722;\n t.I = 278;\n t.J = 556;\n t.K = 722;\n t.L = 611;\n t.M = 833;\n t.N = 722;\n t.O = 778;\n t.P = 667;\n t.Q = 778;\n t.R = 722;\n t.S = 667;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 944;\n t.X = 667;\n t.Y = 667;\n t.Z = 611;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 584;\n t.underscore = 556;\n t.quoteleft = 278;\n t.a = 556;\n t.b = 611;\n t.c = 556;\n t.d = 611;\n t.e = 556;\n t.f = 333;\n t.g = 611;\n t.h = 611;\n t.i = 278;\n t.j = 278;\n t.k = 556;\n t.l = 278;\n t.m = 889;\n t.n = 611;\n t.o = 611;\n t.p = 611;\n t.q = 611;\n t.r = 389;\n t.s = 556;\n t.t = 333;\n t.u = 611;\n t.v = 556;\n t.w = 778;\n t.x = 556;\n t.y = 556;\n t.z = 500;\n t.braceleft = 389;\n t.bar = 280;\n t.braceright = 389;\n t.asciitilde = 584;\n t.exclamdown = 333;\n t.cent = 556;\n t.sterling = 556;\n t.fraction = 167;\n t.yen = 556;\n t.florin = 556;\n t.section = 556;\n t.currency = 556;\n t.quotesingle = 238;\n t.quotedblleft = 500;\n t.guillemotleft = 556;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 611;\n t.fl = 611;\n t.endash = 556;\n t.dagger = 556;\n t.daggerdbl = 556;\n t.periodcentered = 278;\n t.paragraph = 556;\n t.bullet = 350;\n t.quotesinglbase = 278;\n t.quotedblbase = 500;\n t.quotedblright = 500;\n t.guillemotright = 556;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 611;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 370;\n t.Lslash = 611;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 365;\n t.ae = 889;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 611;\n t.oe = 944;\n t.germandbls = 611;\n t.Idieresis = 278;\n t.eacute = 556;\n t.abreve = 556;\n t.uhungarumlaut = 611;\n t.ecaron = 556;\n t.Ydieresis = 667;\n t.divide = 584;\n t.Yacute = 667;\n t.Acircumflex = 722;\n t.aacute = 556;\n t.Ucircumflex = 722;\n t.yacute = 556;\n t.scommaaccent = 556;\n t.ecircumflex = 556;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 556;\n t.Uacute = 722;\n t.uogonek = 611;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 737;\n t.Emacron = 667;\n t.ccaron = 556;\n t.aring = 556;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 556;\n t.Tcommaaccent = 611;\n t.Cacute = 722;\n t.atilde = 556;\n t.Edotaccent = 667;\n t.scaron = 556;\n t.scedilla = 556;\n t.iacute = 278;\n t.lozenge = 494;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 611;\n t.acircumflex = 556;\n t.Amacron = 722;\n t.rcaron = 389;\n t.ccedilla = 556;\n t.Zdotaccent = 611;\n t.Thorn = 667;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 667;\n t.dcaron = 743;\n t.Umacron = 722;\n t.uring = 611;\n t.threesuperior = 333;\n t.Ograve = 778;\n t.Agrave = 722;\n t.Abreve = 722;\n t.multiply = 584;\n t.uacute = 611;\n t.Tcaron = 611;\n t.partialdiff = 494;\n t.ydieresis = 556;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 556;\n t.edieresis = 556;\n t.cacute = 556;\n t.nacute = 611;\n t.umacron = 611;\n t.Ncaron = 722;\n t.Iacute = 278;\n t.plusminus = 584;\n t.brokenbar = 280;\n t.registered = 737;\n t.Gbreve = 778;\n t.Idotaccent = 278;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 389;\n t.omacron = 611;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 278;\n t.tcaron = 389;\n t.eogonek = 556;\n t.Uogonek = 722;\n t.Aacute = 722;\n t.Adieresis = 722;\n t.egrave = 556;\n t.zacute = 500;\n t.iogonek = 278;\n t.Oacute = 778;\n t.oacute = 611;\n t.amacron = 556;\n t.sacute = 556;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 611;\n t.twosuperior = 333;\n t.Odieresis = 778;\n t.mu = 611;\n t.igrave = 278;\n t.ohungarumlaut = 611;\n t.Eogonek = 667;\n t.dcroat = 611;\n t.threequarters = 834;\n t.Scedilla = 667;\n t.lcaron = 400;\n t.Kcommaaccent = 722;\n t.Lacute = 611;\n t.trademark = 1000;\n t.edotaccent = 556;\n t.Igrave = 278;\n t.Imacron = 278;\n t.Lcaron = 611;\n t.onehalf = 834;\n t.lessequal = 549;\n t.ocircumflex = 611;\n t.ntilde = 611;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 556;\n t.gbreve = 611;\n t.onequarter = 834;\n t.Scaron = 667;\n t.Scommaaccent = 667;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 611;\n t.Ccaron = 722;\n t.ugrave = 611;\n t.radical = 549;\n t.Dcaron = 722;\n t.rcommaaccent = 389;\n t.Ntilde = 722;\n t.otilde = 611;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 611;\n t.Atilde = 722;\n t.Aogonek = 722;\n t.Aring = 722;\n t.Otilde = 778;\n t.zdotaccent = 500;\n t.Ecaron = 667;\n t.Iogonek = 278;\n t.kcommaaccent = 556;\n t.minus = 584;\n t.Icircumflex = 278;\n t.ncaron = 611;\n t.tcommaaccent = 333;\n t.logicalnot = 584;\n t.odieresis = 611;\n t.udieresis = 611;\n t.notequal = 549;\n t.gcommaaccent = 611;\n t.eth = 611;\n t.zcaron = 500;\n t.ncommaaccent = 611;\n t.onesuperior = 333;\n t.imacron = 278;\n t.Euro = 556;\n });\n // eslint-disable-next-line no-shadow\n t[\"Helvetica-BoldOblique\"] = getLookupTableFactory(function (t) {\n t.space = 278;\n t.exclam = 333;\n t.quotedbl = 474;\n t.numbersign = 556;\n t.dollar = 556;\n t.percent = 889;\n t.ampersand = 722;\n t.quoteright = 278;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 389;\n t.plus = 584;\n t.comma = 278;\n t.hyphen = 333;\n t.period = 278;\n t.slash = 278;\n t.zero = 556;\n t.one = 556;\n t.two = 556;\n t.three = 556;\n t.four = 556;\n t.five = 556;\n t.six = 556;\n t.seven = 556;\n t.eight = 556;\n t.nine = 556;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 584;\n t.equal = 584;\n t.greater = 584;\n t.question = 611;\n t.at = 975;\n t.A = 722;\n t.B = 722;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 722;\n t.I = 278;\n t.J = 556;\n t.K = 722;\n t.L = 611;\n t.M = 833;\n t.N = 722;\n t.O = 778;\n t.P = 667;\n t.Q = 778;\n t.R = 722;\n t.S = 667;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 944;\n t.X = 667;\n t.Y = 667;\n t.Z = 611;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 584;\n t.underscore = 556;\n t.quoteleft = 278;\n t.a = 556;\n t.b = 611;\n t.c = 556;\n t.d = 611;\n t.e = 556;\n t.f = 333;\n t.g = 611;\n t.h = 611;\n t.i = 278;\n t.j = 278;\n t.k = 556;\n t.l = 278;\n t.m = 889;\n t.n = 611;\n t.o = 611;\n t.p = 611;\n t.q = 611;\n t.r = 389;\n t.s = 556;\n t.t = 333;\n t.u = 611;\n t.v = 556;\n t.w = 778;\n t.x = 556;\n t.y = 556;\n t.z = 500;\n t.braceleft = 389;\n t.bar = 280;\n t.braceright = 389;\n t.asciitilde = 584;\n t.exclamdown = 333;\n t.cent = 556;\n t.sterling = 556;\n t.fraction = 167;\n t.yen = 556;\n t.florin = 556;\n t.section = 556;\n t.currency = 556;\n t.quotesingle = 238;\n t.quotedblleft = 500;\n t.guillemotleft = 556;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 611;\n t.fl = 611;\n t.endash = 556;\n t.dagger = 556;\n t.daggerdbl = 556;\n t.periodcentered = 278;\n t.paragraph = 556;\n t.bullet = 350;\n t.quotesinglbase = 278;\n t.quotedblbase = 500;\n t.quotedblright = 500;\n t.guillemotright = 556;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 611;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 370;\n t.Lslash = 611;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 365;\n t.ae = 889;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 611;\n t.oe = 944;\n t.germandbls = 611;\n t.Idieresis = 278;\n t.eacute = 556;\n t.abreve = 556;\n t.uhungarumlaut = 611;\n t.ecaron = 556;\n t.Ydieresis = 667;\n t.divide = 584;\n t.Yacute = 667;\n t.Acircumflex = 722;\n t.aacute = 556;\n t.Ucircumflex = 722;\n t.yacute = 556;\n t.scommaaccent = 556;\n t.ecircumflex = 556;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 556;\n t.Uacute = 722;\n t.uogonek = 611;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 737;\n t.Emacron = 667;\n t.ccaron = 556;\n t.aring = 556;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 556;\n t.Tcommaaccent = 611;\n t.Cacute = 722;\n t.atilde = 556;\n t.Edotaccent = 667;\n t.scaron = 556;\n t.scedilla = 556;\n t.iacute = 278;\n t.lozenge = 494;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 611;\n t.acircumflex = 556;\n t.Amacron = 722;\n t.rcaron = 389;\n t.ccedilla = 556;\n t.Zdotaccent = 611;\n t.Thorn = 667;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 667;\n t.dcaron = 743;\n t.Umacron = 722;\n t.uring = 611;\n t.threesuperior = 333;\n t.Ograve = 778;\n t.Agrave = 722;\n t.Abreve = 722;\n t.multiply = 584;\n t.uacute = 611;\n t.Tcaron = 611;\n t.partialdiff = 494;\n t.ydieresis = 556;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 556;\n t.edieresis = 556;\n t.cacute = 556;\n t.nacute = 611;\n t.umacron = 611;\n t.Ncaron = 722;\n t.Iacute = 278;\n t.plusminus = 584;\n t.brokenbar = 280;\n t.registered = 737;\n t.Gbreve = 778;\n t.Idotaccent = 278;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 389;\n t.omacron = 611;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 278;\n t.tcaron = 389;\n t.eogonek = 556;\n t.Uogonek = 722;\n t.Aacute = 722;\n t.Adieresis = 722;\n t.egrave = 556;\n t.zacute = 500;\n t.iogonek = 278;\n t.Oacute = 778;\n t.oacute = 611;\n t.amacron = 556;\n t.sacute = 556;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 611;\n t.twosuperior = 333;\n t.Odieresis = 778;\n t.mu = 611;\n t.igrave = 278;\n t.ohungarumlaut = 611;\n t.Eogonek = 667;\n t.dcroat = 611;\n t.threequarters = 834;\n t.Scedilla = 667;\n t.lcaron = 400;\n t.Kcommaaccent = 722;\n t.Lacute = 611;\n t.trademark = 1000;\n t.edotaccent = 556;\n t.Igrave = 278;\n t.Imacron = 278;\n t.Lcaron = 611;\n t.onehalf = 834;\n t.lessequal = 549;\n t.ocircumflex = 611;\n t.ntilde = 611;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 556;\n t.gbreve = 611;\n t.onequarter = 834;\n t.Scaron = 667;\n t.Scommaaccent = 667;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 611;\n t.Ccaron = 722;\n t.ugrave = 611;\n t.radical = 549;\n t.Dcaron = 722;\n t.rcommaaccent = 389;\n t.Ntilde = 722;\n t.otilde = 611;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 611;\n t.Atilde = 722;\n t.Aogonek = 722;\n t.Aring = 722;\n t.Otilde = 778;\n t.zdotaccent = 500;\n t.Ecaron = 667;\n t.Iogonek = 278;\n t.kcommaaccent = 556;\n t.minus = 584;\n t.Icircumflex = 278;\n t.ncaron = 611;\n t.tcommaaccent = 333;\n t.logicalnot = 584;\n t.odieresis = 611;\n t.udieresis = 611;\n t.notequal = 549;\n t.gcommaaccent = 611;\n t.eth = 611;\n t.zcaron = 500;\n t.ncommaaccent = 611;\n t.onesuperior = 333;\n t.imacron = 278;\n t.Euro = 556;\n });\n // eslint-disable-next-line no-shadow\n t[\"Helvetica-Oblique\"] = getLookupTableFactory(function (t) {\n t.space = 278;\n t.exclam = 278;\n t.quotedbl = 355;\n t.numbersign = 556;\n t.dollar = 556;\n t.percent = 889;\n t.ampersand = 667;\n t.quoteright = 222;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 389;\n t.plus = 584;\n t.comma = 278;\n t.hyphen = 333;\n t.period = 278;\n t.slash = 278;\n t.zero = 556;\n t.one = 556;\n t.two = 556;\n t.three = 556;\n t.four = 556;\n t.five = 556;\n t.six = 556;\n t.seven = 556;\n t.eight = 556;\n t.nine = 556;\n t.colon = 278;\n t.semicolon = 278;\n t.less = 584;\n t.equal = 584;\n t.greater = 584;\n t.question = 556;\n t.at = 1015;\n t.A = 667;\n t.B = 667;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 722;\n t.I = 278;\n t.J = 500;\n t.K = 667;\n t.L = 556;\n t.M = 833;\n t.N = 722;\n t.O = 778;\n t.P = 667;\n t.Q = 778;\n t.R = 722;\n t.S = 667;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 944;\n t.X = 667;\n t.Y = 667;\n t.Z = 611;\n t.bracketleft = 278;\n t.backslash = 278;\n t.bracketright = 278;\n t.asciicircum = 469;\n t.underscore = 556;\n t.quoteleft = 222;\n t.a = 556;\n t.b = 556;\n t.c = 500;\n t.d = 556;\n t.e = 556;\n t.f = 278;\n t.g = 556;\n t.h = 556;\n t.i = 222;\n t.j = 222;\n t.k = 500;\n t.l = 222;\n t.m = 833;\n t.n = 556;\n t.o = 556;\n t.p = 556;\n t.q = 556;\n t.r = 333;\n t.s = 500;\n t.t = 278;\n t.u = 556;\n t.v = 500;\n t.w = 722;\n t.x = 500;\n t.y = 500;\n t.z = 500;\n t.braceleft = 334;\n t.bar = 260;\n t.braceright = 334;\n t.asciitilde = 584;\n t.exclamdown = 333;\n t.cent = 556;\n t.sterling = 556;\n t.fraction = 167;\n t.yen = 556;\n t.florin = 556;\n t.section = 556;\n t.currency = 556;\n t.quotesingle = 191;\n t.quotedblleft = 333;\n t.guillemotleft = 556;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 500;\n t.fl = 500;\n t.endash = 556;\n t.dagger = 556;\n t.daggerdbl = 556;\n t.periodcentered = 278;\n t.paragraph = 537;\n t.bullet = 350;\n t.quotesinglbase = 222;\n t.quotedblbase = 333;\n t.quotedblright = 333;\n t.guillemotright = 556;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 611;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 370;\n t.Lslash = 556;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 365;\n t.ae = 889;\n t.dotlessi = 278;\n t.lslash = 222;\n t.oslash = 611;\n t.oe = 944;\n t.germandbls = 611;\n t.Idieresis = 278;\n t.eacute = 556;\n t.abreve = 556;\n t.uhungarumlaut = 556;\n t.ecaron = 556;\n t.Ydieresis = 667;\n t.divide = 584;\n t.Yacute = 667;\n t.Acircumflex = 667;\n t.aacute = 556;\n t.Ucircumflex = 722;\n t.yacute = 500;\n t.scommaaccent = 500;\n t.ecircumflex = 556;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 556;\n t.Uacute = 722;\n t.uogonek = 556;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 737;\n t.Emacron = 667;\n t.ccaron = 500;\n t.aring = 556;\n t.Ncommaaccent = 722;\n t.lacute = 222;\n t.agrave = 556;\n t.Tcommaaccent = 611;\n t.Cacute = 722;\n t.atilde = 556;\n t.Edotaccent = 667;\n t.scaron = 500;\n t.scedilla = 500;\n t.iacute = 278;\n t.lozenge = 471;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 556;\n t.acircumflex = 556;\n t.Amacron = 667;\n t.rcaron = 333;\n t.ccedilla = 500;\n t.Zdotaccent = 611;\n t.Thorn = 667;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 667;\n t.dcaron = 643;\n t.Umacron = 722;\n t.uring = 556;\n t.threesuperior = 333;\n t.Ograve = 778;\n t.Agrave = 667;\n t.Abreve = 667;\n t.multiply = 584;\n t.uacute = 556;\n t.Tcaron = 611;\n t.partialdiff = 476;\n t.ydieresis = 500;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 556;\n t.edieresis = 556;\n t.cacute = 500;\n t.nacute = 556;\n t.umacron = 556;\n t.Ncaron = 722;\n t.Iacute = 278;\n t.plusminus = 584;\n t.brokenbar = 260;\n t.registered = 737;\n t.Gbreve = 778;\n t.Idotaccent = 278;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 333;\n t.omacron = 556;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 222;\n t.tcaron = 317;\n t.eogonek = 556;\n t.Uogonek = 722;\n t.Aacute = 667;\n t.Adieresis = 667;\n t.egrave = 556;\n t.zacute = 500;\n t.iogonek = 222;\n t.Oacute = 778;\n t.oacute = 556;\n t.amacron = 556;\n t.sacute = 500;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 556;\n t.twosuperior = 333;\n t.Odieresis = 778;\n t.mu = 556;\n t.igrave = 278;\n t.ohungarumlaut = 556;\n t.Eogonek = 667;\n t.dcroat = 556;\n t.threequarters = 834;\n t.Scedilla = 667;\n t.lcaron = 299;\n t.Kcommaaccent = 667;\n t.Lacute = 556;\n t.trademark = 1000;\n t.edotaccent = 556;\n t.Igrave = 278;\n t.Imacron = 278;\n t.Lcaron = 556;\n t.onehalf = 834;\n t.lessequal = 549;\n t.ocircumflex = 556;\n t.ntilde = 556;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 556;\n t.gbreve = 556;\n t.onequarter = 834;\n t.Scaron = 667;\n t.Scommaaccent = 667;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 556;\n t.Ccaron = 722;\n t.ugrave = 556;\n t.radical = 453;\n t.Dcaron = 722;\n t.rcommaaccent = 333;\n t.Ntilde = 722;\n t.otilde = 556;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 556;\n t.Atilde = 667;\n t.Aogonek = 667;\n t.Aring = 667;\n t.Otilde = 778;\n t.zdotaccent = 500;\n t.Ecaron = 667;\n t.Iogonek = 278;\n t.kcommaaccent = 500;\n t.minus = 584;\n t.Icircumflex = 278;\n t.ncaron = 556;\n t.tcommaaccent = 278;\n t.logicalnot = 584;\n t.odieresis = 556;\n t.udieresis = 556;\n t.notequal = 549;\n t.gcommaaccent = 556;\n t.eth = 556;\n t.zcaron = 500;\n t.ncommaaccent = 556;\n t.onesuperior = 333;\n t.imacron = 278;\n t.Euro = 556;\n });\n // eslint-disable-next-line no-shadow\n t.Symbol = getLookupTableFactory(function (t) {\n t.space = 250;\n t.exclam = 333;\n t.universal = 713;\n t.numbersign = 500;\n t.existential = 549;\n t.percent = 833;\n t.ampersand = 778;\n t.suchthat = 439;\n t.parenleft = 333;\n t.parenright = 333;\n t.asteriskmath = 500;\n t.plus = 549;\n t.comma = 250;\n t.minus = 549;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 278;\n t.semicolon = 278;\n t.less = 549;\n t.equal = 549;\n t.greater = 549;\n t.question = 444;\n t.congruent = 549;\n t.Alpha = 722;\n t.Beta = 667;\n t.Chi = 722;\n t.Delta = 612;\n t.Epsilon = 611;\n t.Phi = 763;\n t.Gamma = 603;\n t.Eta = 722;\n t.Iota = 333;\n t.theta1 = 631;\n t.Kappa = 722;\n t.Lambda = 686;\n t.Mu = 889;\n t.Nu = 722;\n t.Omicron = 722;\n t.Pi = 768;\n t.Theta = 741;\n t.Rho = 556;\n t.Sigma = 592;\n t.Tau = 611;\n t.Upsilon = 690;\n t.sigma1 = 439;\n t.Omega = 768;\n t.Xi = 645;\n t.Psi = 795;\n t.Zeta = 611;\n t.bracketleft = 333;\n t.therefore = 863;\n t.bracketright = 333;\n t.perpendicular = 658;\n t.underscore = 500;\n t.radicalex = 500;\n t.alpha = 631;\n t.beta = 549;\n t.chi = 549;\n t.delta = 494;\n t.epsilon = 439;\n t.phi = 521;\n t.gamma = 411;\n t.eta = 603;\n t.iota = 329;\n t.phi1 = 603;\n t.kappa = 549;\n t.lambda = 549;\n t.mu = 576;\n t.nu = 521;\n t.omicron = 549;\n t.pi = 549;\n t.theta = 521;\n t.rho = 549;\n t.sigma = 603;\n t.tau = 439;\n t.upsilon = 576;\n t.omega1 = 713;\n t.omega = 686;\n t.xi = 493;\n t.psi = 686;\n t.zeta = 494;\n t.braceleft = 480;\n t.bar = 200;\n t.braceright = 480;\n t.similar = 549;\n t.Euro = 750;\n t.Upsilon1 = 620;\n t.minute = 247;\n t.lessequal = 549;\n t.fraction = 167;\n t.infinity = 713;\n t.florin = 500;\n t.club = 753;\n t.diamond = 753;\n t.heart = 753;\n t.spade = 753;\n t.arrowboth = 1042;\n t.arrowleft = 987;\n t.arrowup = 603;\n t.arrowright = 987;\n t.arrowdown = 603;\n t.degree = 400;\n t.plusminus = 549;\n t.second = 411;\n t.greaterequal = 549;\n t.multiply = 549;\n t.proportional = 713;\n t.partialdiff = 494;\n t.bullet = 460;\n t.divide = 549;\n t.notequal = 549;\n t.equivalence = 549;\n t.approxequal = 549;\n t.ellipsis = 1000;\n t.arrowvertex = 603;\n t.arrowhorizex = 1000;\n t.carriagereturn = 658;\n t.aleph = 823;\n t.Ifraktur = 686;\n t.Rfraktur = 795;\n t.weierstrass = 987;\n t.circlemultiply = 768;\n t.circleplus = 768;\n t.emptyset = 823;\n t.intersection = 768;\n t.union = 768;\n t.propersuperset = 713;\n t.reflexsuperset = 713;\n t.notsubset = 713;\n t.propersubset = 713;\n t.reflexsubset = 713;\n t.element = 713;\n t.notelement = 713;\n t.angle = 768;\n t.gradient = 713;\n t.registerserif = 790;\n t.copyrightserif = 790;\n t.trademarkserif = 890;\n t.product = 823;\n t.radical = 549;\n t.dotmath = 250;\n t.logicalnot = 713;\n t.logicaland = 603;\n t.logicalor = 603;\n t.arrowdblboth = 1042;\n t.arrowdblleft = 987;\n t.arrowdblup = 603;\n t.arrowdblright = 987;\n t.arrowdbldown = 603;\n t.lozenge = 494;\n t.angleleft = 329;\n t.registersans = 790;\n t.copyrightsans = 790;\n t.trademarksans = 786;\n t.summation = 713;\n t.parenlefttp = 384;\n t.parenleftex = 384;\n t.parenleftbt = 384;\n t.bracketlefttp = 384;\n t.bracketleftex = 384;\n t.bracketleftbt = 384;\n t.bracelefttp = 494;\n t.braceleftmid = 494;\n t.braceleftbt = 494;\n t.braceex = 494;\n t.angleright = 329;\n t.integral = 274;\n t.integraltp = 686;\n t.integralex = 686;\n t.integralbt = 686;\n t.parenrighttp = 384;\n t.parenrightex = 384;\n t.parenrightbt = 384;\n t.bracketrighttp = 384;\n t.bracketrightex = 384;\n t.bracketrightbt = 384;\n t.bracerighttp = 494;\n t.bracerightmid = 494;\n t.bracerightbt = 494;\n t.apple = 790;\n });\n // eslint-disable-next-line no-shadow\n t[\"Times-Roman\"] = getLookupTableFactory(function (t) {\n t.space = 250;\n t.exclam = 333;\n t.quotedbl = 408;\n t.numbersign = 500;\n t.dollar = 500;\n t.percent = 833;\n t.ampersand = 778;\n t.quoteright = 333;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 500;\n t.plus = 564;\n t.comma = 250;\n t.hyphen = 333;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 278;\n t.semicolon = 278;\n t.less = 564;\n t.equal = 564;\n t.greater = 564;\n t.question = 444;\n t.at = 921;\n t.A = 722;\n t.B = 667;\n t.C = 667;\n t.D = 722;\n t.E = 611;\n t.F = 556;\n t.G = 722;\n t.H = 722;\n t.I = 333;\n t.J = 389;\n t.K = 722;\n t.L = 611;\n t.M = 889;\n t.N = 722;\n t.O = 722;\n t.P = 556;\n t.Q = 722;\n t.R = 667;\n t.S = 556;\n t.T = 611;\n t.U = 722;\n t.V = 722;\n t.W = 944;\n t.X = 722;\n t.Y = 722;\n t.Z = 611;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 469;\n t.underscore = 500;\n t.quoteleft = 333;\n t.a = 444;\n t.b = 500;\n t.c = 444;\n t.d = 500;\n t.e = 444;\n t.f = 333;\n t.g = 500;\n t.h = 500;\n t.i = 278;\n t.j = 278;\n t.k = 500;\n t.l = 278;\n t.m = 778;\n t.n = 500;\n t.o = 500;\n t.p = 500;\n t.q = 500;\n t.r = 333;\n t.s = 389;\n t.t = 278;\n t.u = 500;\n t.v = 500;\n t.w = 722;\n t.x = 500;\n t.y = 500;\n t.z = 444;\n t.braceleft = 480;\n t.bar = 200;\n t.braceright = 480;\n t.asciitilde = 541;\n t.exclamdown = 333;\n t.cent = 500;\n t.sterling = 500;\n t.fraction = 167;\n t.yen = 500;\n t.florin = 500;\n t.section = 500;\n t.currency = 500;\n t.quotesingle = 180;\n t.quotedblleft = 444;\n t.guillemotleft = 500;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 556;\n t.fl = 556;\n t.endash = 500;\n t.dagger = 500;\n t.daggerdbl = 500;\n t.periodcentered = 250;\n t.paragraph = 453;\n t.bullet = 350;\n t.quotesinglbase = 333;\n t.quotedblbase = 444;\n t.quotedblright = 444;\n t.guillemotright = 500;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 444;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 889;\n t.ordfeminine = 276;\n t.Lslash = 611;\n t.Oslash = 722;\n t.OE = 889;\n t.ordmasculine = 310;\n t.ae = 667;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 500;\n t.oe = 722;\n t.germandbls = 500;\n t.Idieresis = 333;\n t.eacute = 444;\n t.abreve = 444;\n t.uhungarumlaut = 500;\n t.ecaron = 444;\n t.Ydieresis = 722;\n t.divide = 564;\n t.Yacute = 722;\n t.Acircumflex = 722;\n t.aacute = 444;\n t.Ucircumflex = 722;\n t.yacute = 500;\n t.scommaaccent = 389;\n t.ecircumflex = 444;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 444;\n t.Uacute = 722;\n t.uogonek = 500;\n t.Edieresis = 611;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 760;\n t.Emacron = 611;\n t.ccaron = 444;\n t.aring = 444;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 444;\n t.Tcommaaccent = 611;\n t.Cacute = 667;\n t.atilde = 444;\n t.Edotaccent = 611;\n t.scaron = 389;\n t.scedilla = 389;\n t.iacute = 278;\n t.lozenge = 471;\n t.Rcaron = 667;\n t.Gcommaaccent = 722;\n t.ucircumflex = 500;\n t.acircumflex = 444;\n t.Amacron = 722;\n t.rcaron = 333;\n t.ccedilla = 444;\n t.Zdotaccent = 611;\n t.Thorn = 556;\n t.Omacron = 722;\n t.Racute = 667;\n t.Sacute = 556;\n t.dcaron = 588;\n t.Umacron = 722;\n t.uring = 500;\n t.threesuperior = 300;\n t.Ograve = 722;\n t.Agrave = 722;\n t.Abreve = 722;\n t.multiply = 564;\n t.uacute = 500;\n t.Tcaron = 611;\n t.partialdiff = 476;\n t.ydieresis = 500;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 611;\n t.adieresis = 444;\n t.edieresis = 444;\n t.cacute = 444;\n t.nacute = 500;\n t.umacron = 500;\n t.Ncaron = 722;\n t.Iacute = 333;\n t.plusminus = 564;\n t.brokenbar = 200;\n t.registered = 760;\n t.Gbreve = 722;\n t.Idotaccent = 333;\n t.summation = 600;\n t.Egrave = 611;\n t.racute = 333;\n t.omacron = 500;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 667;\n t.lcommaaccent = 278;\n t.tcaron = 326;\n t.eogonek = 444;\n t.Uogonek = 722;\n t.Aacute = 722;\n t.Adieresis = 722;\n t.egrave = 444;\n t.zacute = 444;\n t.iogonek = 278;\n t.Oacute = 722;\n t.oacute = 500;\n t.amacron = 444;\n t.sacute = 389;\n t.idieresis = 278;\n t.Ocircumflex = 722;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 500;\n t.twosuperior = 300;\n t.Odieresis = 722;\n t.mu = 500;\n t.igrave = 278;\n t.ohungarumlaut = 500;\n t.Eogonek = 611;\n t.dcroat = 500;\n t.threequarters = 750;\n t.Scedilla = 556;\n t.lcaron = 344;\n t.Kcommaaccent = 722;\n t.Lacute = 611;\n t.trademark = 980;\n t.edotaccent = 444;\n t.Igrave = 333;\n t.Imacron = 333;\n t.Lcaron = 611;\n t.onehalf = 750;\n t.lessequal = 549;\n t.ocircumflex = 500;\n t.ntilde = 500;\n t.Uhungarumlaut = 722;\n t.Eacute = 611;\n t.emacron = 444;\n t.gbreve = 500;\n t.onequarter = 750;\n t.Scaron = 556;\n t.Scommaaccent = 556;\n t.Ohungarumlaut = 722;\n t.degree = 400;\n t.ograve = 500;\n t.Ccaron = 667;\n t.ugrave = 500;\n t.radical = 453;\n t.Dcaron = 722;\n t.rcommaaccent = 333;\n t.Ntilde = 722;\n t.otilde = 500;\n t.Rcommaaccent = 667;\n t.Lcommaaccent = 611;\n t.Atilde = 722;\n t.Aogonek = 722;\n t.Aring = 722;\n t.Otilde = 722;\n t.zdotaccent = 444;\n t.Ecaron = 611;\n t.Iogonek = 333;\n t.kcommaaccent = 500;\n t.minus = 564;\n t.Icircumflex = 333;\n t.ncaron = 500;\n t.tcommaaccent = 278;\n t.logicalnot = 564;\n t.odieresis = 500;\n t.udieresis = 500;\n t.notequal = 549;\n t.gcommaaccent = 500;\n t.eth = 500;\n t.zcaron = 444;\n t.ncommaaccent = 500;\n t.onesuperior = 300;\n t.imacron = 278;\n t.Euro = 500;\n });\n // eslint-disable-next-line no-shadow\n t[\"Times-Bold\"] = getLookupTableFactory(function (t) {\n t.space = 250;\n t.exclam = 333;\n t.quotedbl = 555;\n t.numbersign = 500;\n t.dollar = 500;\n t.percent = 1000;\n t.ampersand = 833;\n t.quoteright = 333;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 500;\n t.plus = 570;\n t.comma = 250;\n t.hyphen = 333;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 570;\n t.equal = 570;\n t.greater = 570;\n t.question = 500;\n t.at = 930;\n t.A = 722;\n t.B = 667;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 778;\n t.I = 389;\n t.J = 500;\n t.K = 778;\n t.L = 667;\n t.M = 944;\n t.N = 722;\n t.O = 778;\n t.P = 611;\n t.Q = 778;\n t.R = 722;\n t.S = 556;\n t.T = 667;\n t.U = 722;\n t.V = 722;\n t.W = 1000;\n t.X = 722;\n t.Y = 722;\n t.Z = 667;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 581;\n t.underscore = 500;\n t.quoteleft = 333;\n t.a = 500;\n t.b = 556;\n t.c = 444;\n t.d = 556;\n t.e = 444;\n t.f = 333;\n t.g = 500;\n t.h = 556;\n t.i = 278;\n t.j = 333;\n t.k = 556;\n t.l = 278;\n t.m = 833;\n t.n = 556;\n t.o = 500;\n t.p = 556;\n t.q = 556;\n t.r = 444;\n t.s = 389;\n t.t = 333;\n t.u = 556;\n t.v = 500;\n t.w = 722;\n t.x = 500;\n t.y = 500;\n t.z = 444;\n t.braceleft = 394;\n t.bar = 220;\n t.braceright = 394;\n t.asciitilde = 520;\n t.exclamdown = 333;\n t.cent = 500;\n t.sterling = 500;\n t.fraction = 167;\n t.yen = 500;\n t.florin = 500;\n t.section = 500;\n t.currency = 500;\n t.quotesingle = 278;\n t.quotedblleft = 500;\n t.guillemotleft = 500;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 556;\n t.fl = 556;\n t.endash = 500;\n t.dagger = 500;\n t.daggerdbl = 500;\n t.periodcentered = 250;\n t.paragraph = 540;\n t.bullet = 350;\n t.quotesinglbase = 333;\n t.quotedblbase = 500;\n t.quotedblright = 500;\n t.guillemotright = 500;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 500;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 300;\n t.Lslash = 667;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 330;\n t.ae = 722;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 500;\n t.oe = 722;\n t.germandbls = 556;\n t.Idieresis = 389;\n t.eacute = 444;\n t.abreve = 500;\n t.uhungarumlaut = 556;\n t.ecaron = 444;\n t.Ydieresis = 722;\n t.divide = 570;\n t.Yacute = 722;\n t.Acircumflex = 722;\n t.aacute = 500;\n t.Ucircumflex = 722;\n t.yacute = 500;\n t.scommaaccent = 389;\n t.ecircumflex = 444;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 500;\n t.Uacute = 722;\n t.uogonek = 556;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 747;\n t.Emacron = 667;\n t.ccaron = 444;\n t.aring = 500;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 500;\n t.Tcommaaccent = 667;\n t.Cacute = 722;\n t.atilde = 500;\n t.Edotaccent = 667;\n t.scaron = 389;\n t.scedilla = 389;\n t.iacute = 278;\n t.lozenge = 494;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 556;\n t.acircumflex = 500;\n t.Amacron = 722;\n t.rcaron = 444;\n t.ccedilla = 444;\n t.Zdotaccent = 667;\n t.Thorn = 611;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 556;\n t.dcaron = 672;\n t.Umacron = 722;\n t.uring = 556;\n t.threesuperior = 300;\n t.Ograve = 778;\n t.Agrave = 722;\n t.Abreve = 722;\n t.multiply = 570;\n t.uacute = 556;\n t.Tcaron = 667;\n t.partialdiff = 494;\n t.ydieresis = 500;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 500;\n t.edieresis = 444;\n t.cacute = 444;\n t.nacute = 556;\n t.umacron = 556;\n t.Ncaron = 722;\n t.Iacute = 389;\n t.plusminus = 570;\n t.brokenbar = 220;\n t.registered = 747;\n t.Gbreve = 778;\n t.Idotaccent = 389;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 444;\n t.omacron = 500;\n t.Zacute = 667;\n t.Zcaron = 667;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 278;\n t.tcaron = 416;\n t.eogonek = 444;\n t.Uogonek = 722;\n t.Aacute = 722;\n t.Adieresis = 722;\n t.egrave = 444;\n t.zacute = 444;\n t.iogonek = 278;\n t.Oacute = 778;\n t.oacute = 500;\n t.amacron = 500;\n t.sacute = 389;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 556;\n t.twosuperior = 300;\n t.Odieresis = 778;\n t.mu = 556;\n t.igrave = 278;\n t.ohungarumlaut = 500;\n t.Eogonek = 667;\n t.dcroat = 556;\n t.threequarters = 750;\n t.Scedilla = 556;\n t.lcaron = 394;\n t.Kcommaaccent = 778;\n t.Lacute = 667;\n t.trademark = 1000;\n t.edotaccent = 444;\n t.Igrave = 389;\n t.Imacron = 389;\n t.Lcaron = 667;\n t.onehalf = 750;\n t.lessequal = 549;\n t.ocircumflex = 500;\n t.ntilde = 556;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 444;\n t.gbreve = 500;\n t.onequarter = 750;\n t.Scaron = 556;\n t.Scommaaccent = 556;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 500;\n t.Ccaron = 722;\n t.ugrave = 556;\n t.radical = 549;\n t.Dcaron = 722;\n t.rcommaaccent = 444;\n t.Ntilde = 722;\n t.otilde = 500;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 667;\n t.Atilde = 722;\n t.Aogonek = 722;\n t.Aring = 722;\n t.Otilde = 778;\n t.zdotaccent = 444;\n t.Ecaron = 667;\n t.Iogonek = 389;\n t.kcommaaccent = 556;\n t.minus = 570;\n t.Icircumflex = 389;\n t.ncaron = 556;\n t.tcommaaccent = 333;\n t.logicalnot = 570;\n t.odieresis = 500;\n t.udieresis = 556;\n t.notequal = 549;\n t.gcommaaccent = 500;\n t.eth = 500;\n t.zcaron = 444;\n t.ncommaaccent = 556;\n t.onesuperior = 300;\n t.imacron = 278;\n t.Euro = 500;\n });\n // eslint-disable-next-line no-shadow\n t[\"Times-BoldItalic\"] = getLookupTableFactory(function (t) {\n t.space = 250;\n t.exclam = 389;\n t.quotedbl = 555;\n t.numbersign = 500;\n t.dollar = 500;\n t.percent = 833;\n t.ampersand = 778;\n t.quoteright = 333;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 500;\n t.plus = 570;\n t.comma = 250;\n t.hyphen = 333;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 570;\n t.equal = 570;\n t.greater = 570;\n t.question = 500;\n t.at = 832;\n t.A = 667;\n t.B = 667;\n t.C = 667;\n t.D = 722;\n t.E = 667;\n t.F = 667;\n t.G = 722;\n t.H = 778;\n t.I = 389;\n t.J = 500;\n t.K = 667;\n t.L = 611;\n t.M = 889;\n t.N = 722;\n t.O = 722;\n t.P = 611;\n t.Q = 722;\n t.R = 667;\n t.S = 556;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 889;\n t.X = 667;\n t.Y = 611;\n t.Z = 611;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 570;\n t.underscore = 500;\n t.quoteleft = 333;\n t.a = 500;\n t.b = 500;\n t.c = 444;\n t.d = 500;\n t.e = 444;\n t.f = 333;\n t.g = 500;\n t.h = 556;\n t.i = 278;\n t.j = 278;\n t.k = 500;\n t.l = 278;\n t.m = 778;\n t.n = 556;\n t.o = 500;\n t.p = 500;\n t.q = 500;\n t.r = 389;\n t.s = 389;\n t.t = 278;\n t.u = 556;\n t.v = 444;\n t.w = 667;\n t.x = 500;\n t.y = 444;\n t.z = 389;\n t.braceleft = 348;\n t.bar = 220;\n t.braceright = 348;\n t.asciitilde = 570;\n t.exclamdown = 389;\n t.cent = 500;\n t.sterling = 500;\n t.fraction = 167;\n t.yen = 500;\n t.florin = 500;\n t.section = 500;\n t.currency = 500;\n t.quotesingle = 278;\n t.quotedblleft = 500;\n t.guillemotleft = 500;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 556;\n t.fl = 556;\n t.endash = 500;\n t.dagger = 500;\n t.daggerdbl = 500;\n t.periodcentered = 250;\n t.paragraph = 500;\n t.bullet = 350;\n t.quotesinglbase = 333;\n t.quotedblbase = 500;\n t.quotedblright = 500;\n t.guillemotright = 500;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 500;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 944;\n t.ordfeminine = 266;\n t.Lslash = 611;\n t.Oslash = 722;\n t.OE = 944;\n t.ordmasculine = 300;\n t.ae = 722;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 500;\n t.oe = 722;\n t.germandbls = 500;\n t.Idieresis = 389;\n t.eacute = 444;\n t.abreve = 500;\n t.uhungarumlaut = 556;\n t.ecaron = 444;\n t.Ydieresis = 611;\n t.divide = 570;\n t.Yacute = 611;\n t.Acircumflex = 667;\n t.aacute = 500;\n t.Ucircumflex = 722;\n t.yacute = 444;\n t.scommaaccent = 389;\n t.ecircumflex = 444;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 500;\n t.Uacute = 722;\n t.uogonek = 556;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 747;\n t.Emacron = 667;\n t.ccaron = 444;\n t.aring = 500;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 500;\n t.Tcommaaccent = 611;\n t.Cacute = 667;\n t.atilde = 500;\n t.Edotaccent = 667;\n t.scaron = 389;\n t.scedilla = 389;\n t.iacute = 278;\n t.lozenge = 494;\n t.Rcaron = 667;\n t.Gcommaaccent = 722;\n t.ucircumflex = 556;\n t.acircumflex = 500;\n t.Amacron = 667;\n t.rcaron = 389;\n t.ccedilla = 444;\n t.Zdotaccent = 611;\n t.Thorn = 611;\n t.Omacron = 722;\n t.Racute = 667;\n t.Sacute = 556;\n t.dcaron = 608;\n t.Umacron = 722;\n t.uring = 556;\n t.threesuperior = 300;\n t.Ograve = 722;\n t.Agrave = 667;\n t.Abreve = 667;\n t.multiply = 570;\n t.uacute = 556;\n t.Tcaron = 611;\n t.partialdiff = 494;\n t.ydieresis = 444;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 500;\n t.edieresis = 444;\n t.cacute = 444;\n t.nacute = 556;\n t.umacron = 556;\n t.Ncaron = 722;\n t.Iacute = 389;\n t.plusminus = 570;\n t.brokenbar = 220;\n t.registered = 747;\n t.Gbreve = 722;\n t.Idotaccent = 389;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 389;\n t.omacron = 500;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 667;\n t.lcommaaccent = 278;\n t.tcaron = 366;\n t.eogonek = 444;\n t.Uogonek = 722;\n t.Aacute = 667;\n t.Adieresis = 667;\n t.egrave = 444;\n t.zacute = 389;\n t.iogonek = 278;\n t.Oacute = 722;\n t.oacute = 500;\n t.amacron = 500;\n t.sacute = 389;\n t.idieresis = 278;\n t.Ocircumflex = 722;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 500;\n t.twosuperior = 300;\n t.Odieresis = 722;\n t.mu = 576;\n t.igrave = 278;\n t.ohungarumlaut = 500;\n t.Eogonek = 667;\n t.dcroat = 500;\n t.threequarters = 750;\n t.Scedilla = 556;\n t.lcaron = 382;\n t.Kcommaaccent = 667;\n t.Lacute = 611;\n t.trademark = 1000;\n t.edotaccent = 444;\n t.Igrave = 389;\n t.Imacron = 389;\n t.Lcaron = 611;\n t.onehalf = 750;\n t.lessequal = 549;\n t.ocircumflex = 500;\n t.ntilde = 556;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 444;\n t.gbreve = 500;\n t.onequarter = 750;\n t.Scaron = 556;\n t.Scommaaccent = 556;\n t.Ohungarumlaut = 722;\n t.degree = 400;\n t.ograve = 500;\n t.Ccaron = 667;\n t.ugrave = 556;\n t.radical = 549;\n t.Dcaron = 722;\n t.rcommaaccent = 389;\n t.Ntilde = 722;\n t.otilde = 500;\n t.Rcommaaccent = 667;\n t.Lcommaaccent = 611;\n t.Atilde = 667;\n t.Aogonek = 667;\n t.Aring = 667;\n t.Otilde = 722;\n t.zdotaccent = 389;\n t.Ecaron = 667;\n t.Iogonek = 389;\n t.kcommaaccent = 500;\n t.minus = 606;\n t.Icircumflex = 389;\n t.ncaron = 556;\n t.tcommaaccent = 278;\n t.logicalnot = 606;\n t.odieresis = 500;\n t.udieresis = 556;\n t.notequal = 549;\n t.gcommaaccent = 500;\n t.eth = 500;\n t.zcaron = 389;\n t.ncommaaccent = 556;\n t.onesuperior = 300;\n t.imacron = 278;\n t.Euro = 500;\n });\n // eslint-disable-next-line no-shadow\n t[\"Times-Italic\"] = getLookupTableFactory(function (t) {\n t.space = 250;\n t.exclam = 333;\n t.quotedbl = 420;\n t.numbersign = 500;\n t.dollar = 500;\n t.percent = 833;\n t.ampersand = 778;\n t.quoteright = 333;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 500;\n t.plus = 675;\n t.comma = 250;\n t.hyphen = 333;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 675;\n t.equal = 675;\n t.greater = 675;\n t.question = 500;\n t.at = 920;\n t.A = 611;\n t.B = 611;\n t.C = 667;\n t.D = 722;\n t.E = 611;\n t.F = 611;\n t.G = 722;\n t.H = 722;\n t.I = 333;\n t.J = 444;\n t.K = 667;\n t.L = 556;\n t.M = 833;\n t.N = 667;\n t.O = 722;\n t.P = 611;\n t.Q = 722;\n t.R = 611;\n t.S = 500;\n t.T = 556;\n t.U = 722;\n t.V = 611;\n t.W = 833;\n t.X = 611;\n t.Y = 556;\n t.Z = 556;\n t.bracketleft = 389;\n t.backslash = 278;\n t.bracketright = 389;\n t.asciicircum = 422;\n t.underscore = 500;\n t.quoteleft = 333;\n t.a = 500;\n t.b = 500;\n t.c = 444;\n t.d = 500;\n t.e = 444;\n t.f = 278;\n t.g = 500;\n t.h = 500;\n t.i = 278;\n t.j = 278;\n t.k = 444;\n t.l = 278;\n t.m = 722;\n t.n = 500;\n t.o = 500;\n t.p = 500;\n t.q = 500;\n t.r = 389;\n t.s = 389;\n t.t = 278;\n t.u = 500;\n t.v = 444;\n t.w = 667;\n t.x = 444;\n t.y = 444;\n t.z = 389;\n t.braceleft = 400;\n t.bar = 275;\n t.braceright = 400;\n t.asciitilde = 541;\n t.exclamdown = 389;\n t.cent = 500;\n t.sterling = 500;\n t.fraction = 167;\n t.yen = 500;\n t.florin = 500;\n t.section = 500;\n t.currency = 500;\n t.quotesingle = 214;\n t.quotedblleft = 556;\n t.guillemotleft = 500;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 500;\n t.fl = 500;\n t.endash = 500;\n t.dagger = 500;\n t.daggerdbl = 500;\n t.periodcentered = 250;\n t.paragraph = 523;\n t.bullet = 350;\n t.quotesinglbase = 333;\n t.quotedblbase = 556;\n t.quotedblright = 556;\n t.guillemotright = 500;\n t.ellipsis = 889;\n t.perthousand = 1000;\n t.questiondown = 500;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 889;\n t.AE = 889;\n t.ordfeminine = 276;\n t.Lslash = 556;\n t.Oslash = 722;\n t.OE = 944;\n t.ordmasculine = 310;\n t.ae = 667;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 500;\n t.oe = 667;\n t.germandbls = 500;\n t.Idieresis = 333;\n t.eacute = 444;\n t.abreve = 500;\n t.uhungarumlaut = 500;\n t.ecaron = 444;\n t.Ydieresis = 556;\n t.divide = 675;\n t.Yacute = 556;\n t.Acircumflex = 611;\n t.aacute = 500;\n t.Ucircumflex = 722;\n t.yacute = 444;\n t.scommaaccent = 389;\n t.ecircumflex = 444;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 500;\n t.Uacute = 722;\n t.uogonek = 500;\n t.Edieresis = 611;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 760;\n t.Emacron = 611;\n t.ccaron = 444;\n t.aring = 500;\n t.Ncommaaccent = 667;\n t.lacute = 278;\n t.agrave = 500;\n t.Tcommaaccent = 556;\n t.Cacute = 667;\n t.atilde = 500;\n t.Edotaccent = 611;\n t.scaron = 389;\n t.scedilla = 389;\n t.iacute = 278;\n t.lozenge = 471;\n t.Rcaron = 611;\n t.Gcommaaccent = 722;\n t.ucircumflex = 500;\n t.acircumflex = 500;\n t.Amacron = 611;\n t.rcaron = 389;\n t.ccedilla = 444;\n t.Zdotaccent = 556;\n t.Thorn = 611;\n t.Omacron = 722;\n t.Racute = 611;\n t.Sacute = 500;\n t.dcaron = 544;\n t.Umacron = 722;\n t.uring = 500;\n t.threesuperior = 300;\n t.Ograve = 722;\n t.Agrave = 611;\n t.Abreve = 611;\n t.multiply = 675;\n t.uacute = 500;\n t.Tcaron = 556;\n t.partialdiff = 476;\n t.ydieresis = 444;\n t.Nacute = 667;\n t.icircumflex = 278;\n t.Ecircumflex = 611;\n t.adieresis = 500;\n t.edieresis = 444;\n t.cacute = 444;\n t.nacute = 500;\n t.umacron = 500;\n t.Ncaron = 667;\n t.Iacute = 333;\n t.plusminus = 675;\n t.brokenbar = 275;\n t.registered = 760;\n t.Gbreve = 722;\n t.Idotaccent = 333;\n t.summation = 600;\n t.Egrave = 611;\n t.racute = 389;\n t.omacron = 500;\n t.Zacute = 556;\n t.Zcaron = 556;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 667;\n t.lcommaaccent = 278;\n t.tcaron = 300;\n t.eogonek = 444;\n t.Uogonek = 722;\n t.Aacute = 611;\n t.Adieresis = 611;\n t.egrave = 444;\n t.zacute = 389;\n t.iogonek = 278;\n t.Oacute = 722;\n t.oacute = 500;\n t.amacron = 500;\n t.sacute = 389;\n t.idieresis = 278;\n t.Ocircumflex = 722;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 500;\n t.twosuperior = 300;\n t.Odieresis = 722;\n t.mu = 500;\n t.igrave = 278;\n t.ohungarumlaut = 500;\n t.Eogonek = 611;\n t.dcroat = 500;\n t.threequarters = 750;\n t.Scedilla = 500;\n t.lcaron = 300;\n t.Kcommaaccent = 667;\n t.Lacute = 556;\n t.trademark = 980;\n t.edotaccent = 444;\n t.Igrave = 333;\n t.Imacron = 333;\n t.Lcaron = 611;\n t.onehalf = 750;\n t.lessequal = 549;\n t.ocircumflex = 500;\n t.ntilde = 500;\n t.Uhungarumlaut = 722;\n t.Eacute = 611;\n t.emacron = 444;\n t.gbreve = 500;\n t.onequarter = 750;\n t.Scaron = 500;\n t.Scommaaccent = 500;\n t.Ohungarumlaut = 722;\n t.degree = 400;\n t.ograve = 500;\n t.Ccaron = 667;\n t.ugrave = 500;\n t.radical = 453;\n t.Dcaron = 722;\n t.rcommaaccent = 389;\n t.Ntilde = 667;\n t.otilde = 500;\n t.Rcommaaccent = 611;\n t.Lcommaaccent = 556;\n t.Atilde = 611;\n t.Aogonek = 611;\n t.Aring = 611;\n t.Otilde = 722;\n t.zdotaccent = 389;\n t.Ecaron = 611;\n t.Iogonek = 333;\n t.kcommaaccent = 444;\n t.minus = 675;\n t.Icircumflex = 333;\n t.ncaron = 500;\n t.tcommaaccent = 278;\n t.logicalnot = 675;\n t.odieresis = 500;\n t.udieresis = 500;\n t.notequal = 549;\n t.gcommaaccent = 500;\n t.eth = 500;\n t.zcaron = 389;\n t.ncommaaccent = 500;\n t.onesuperior = 300;\n t.imacron = 278;\n t.Euro = 500;\n });\n // eslint-disable-next-line no-shadow\n t.ZapfDingbats = getLookupTableFactory(function (t) {\n t.space = 278;\n t.a1 = 974;\n t.a2 = 961;\n t.a202 = 974;\n t.a3 = 980;\n t.a4 = 719;\n t.a5 = 789;\n t.a119 = 790;\n t.a118 = 791;\n t.a117 = 690;\n t.a11 = 960;\n t.a12 = 939;\n t.a13 = 549;\n t.a14 = 855;\n t.a15 = 911;\n t.a16 = 933;\n t.a105 = 911;\n t.a17 = 945;\n t.a18 = 974;\n t.a19 = 755;\n t.a20 = 846;\n t.a21 = 762;\n t.a22 = 761;\n t.a23 = 571;\n t.a24 = 677;\n t.a25 = 763;\n t.a26 = 760;\n t.a27 = 759;\n t.a28 = 754;\n t.a6 = 494;\n t.a7 = 552;\n t.a8 = 537;\n t.a9 = 577;\n t.a10 = 692;\n t.a29 = 786;\n t.a30 = 788;\n t.a31 = 788;\n t.a32 = 790;\n t.a33 = 793;\n t.a34 = 794;\n t.a35 = 816;\n t.a36 = 823;\n t.a37 = 789;\n t.a38 = 841;\n t.a39 = 823;\n t.a40 = 833;\n t.a41 = 816;\n t.a42 = 831;\n t.a43 = 923;\n t.a44 = 744;\n t.a45 = 723;\n t.a46 = 749;\n t.a47 = 790;\n t.a48 = 792;\n t.a49 = 695;\n t.a50 = 776;\n t.a51 = 768;\n t.a52 = 792;\n t.a53 = 759;\n t.a54 = 707;\n t.a55 = 708;\n t.a56 = 682;\n t.a57 = 701;\n t.a58 = 826;\n t.a59 = 815;\n t.a60 = 789;\n t.a61 = 789;\n t.a62 = 707;\n t.a63 = 687;\n t.a64 = 696;\n t.a65 = 689;\n t.a66 = 786;\n t.a67 = 787;\n t.a68 = 713;\n t.a69 = 791;\n t.a70 = 785;\n t.a71 = 791;\n t.a72 = 873;\n t.a73 = 761;\n t.a74 = 762;\n t.a203 = 762;\n t.a75 = 759;\n t.a204 = 759;\n t.a76 = 892;\n t.a77 = 892;\n t.a78 = 788;\n t.a79 = 784;\n t.a81 = 438;\n t.a82 = 138;\n t.a83 = 277;\n t.a84 = 415;\n t.a97 = 392;\n t.a98 = 392;\n t.a99 = 668;\n t.a100 = 668;\n t.a89 = 390;\n t.a90 = 390;\n t.a93 = 317;\n t.a94 = 317;\n t.a91 = 276;\n t.a92 = 276;\n t.a205 = 509;\n t.a85 = 509;\n t.a206 = 410;\n t.a86 = 410;\n t.a87 = 234;\n t.a88 = 234;\n t.a95 = 334;\n t.a96 = 334;\n t.a101 = 732;\n t.a102 = 544;\n t.a103 = 544;\n t.a104 = 910;\n t.a106 = 667;\n t.a107 = 760;\n t.a108 = 760;\n t.a112 = 776;\n t.a111 = 595;\n t.a110 = 694;\n t.a109 = 626;\n t.a120 = 788;\n t.a121 = 788;\n t.a122 = 788;\n t.a123 = 788;\n t.a124 = 788;\n t.a125 = 788;\n t.a126 = 788;\n t.a127 = 788;\n t.a128 = 788;\n t.a129 = 788;\n t.a130 = 788;\n t.a131 = 788;\n t.a132 = 788;\n t.a133 = 788;\n t.a134 = 788;\n t.a135 = 788;\n t.a136 = 788;\n t.a137 = 788;\n t.a138 = 788;\n t.a139 = 788;\n t.a140 = 788;\n t.a141 = 788;\n t.a142 = 788;\n t.a143 = 788;\n t.a144 = 788;\n t.a145 = 788;\n t.a146 = 788;\n t.a147 = 788;\n t.a148 = 788;\n t.a149 = 788;\n t.a150 = 788;\n t.a151 = 788;\n t.a152 = 788;\n t.a153 = 788;\n t.a154 = 788;\n t.a155 = 788;\n t.a156 = 788;\n t.a157 = 788;\n t.a158 = 788;\n t.a159 = 788;\n t.a160 = 894;\n t.a161 = 838;\n t.a163 = 1016;\n t.a164 = 458;\n t.a196 = 748;\n t.a165 = 924;\n t.a192 = 748;\n t.a166 = 918;\n t.a167 = 927;\n t.a168 = 928;\n t.a169 = 928;\n t.a170 = 834;\n t.a171 = 873;\n t.a172 = 828;\n t.a173 = 924;\n t.a162 = 924;\n t.a174 = 917;\n t.a175 = 930;\n t.a176 = 931;\n t.a177 = 463;\n t.a178 = 883;\n t.a179 = 836;\n t.a193 = 836;\n t.a180 = 867;\n t.a199 = 867;\n t.a181 = 696;\n t.a200 = 696;\n t.a182 = 874;\n t.a201 = 874;\n t.a183 = 760;\n t.a184 = 946;\n t.a197 = 771;\n t.a185 = 865;\n t.a194 = 771;\n t.a198 = 888;\n t.a186 = 967;\n t.a195 = 888;\n t.a187 = 831;\n t.a188 = 873;\n t.a189 = 927;\n t.a190 = 970;\n t.a191 = 918;\n });\n});\n\nconst getFontBasicMetrics = getLookupTableFactory(function (t) {\n t.Courier = {\n ascent: 629,\n descent: -157,\n capHeight: 562,\n xHeight: -426,\n };\n t[\"Courier-Bold\"] = {\n ascent: 629,\n descent: -157,\n capHeight: 562,\n xHeight: 439,\n };\n t[\"Courier-Oblique\"] = {\n ascent: 629,\n descent: -157,\n capHeight: 562,\n xHeight: 426,\n };\n t[\"Courier-BoldOblique\"] = {\n ascent: 629,\n descent: -157,\n capHeight: 562,\n xHeight: 426,\n };\n t.Helvetica = {\n ascent: 718,\n descent: -207,\n capHeight: 718,\n xHeight: 523,\n };\n t[\"Helvetica-Bold\"] = {\n ascent: 718,\n descent: -207,\n capHeight: 718,\n xHeight: 532,\n };\n t[\"Helvetica-Oblique\"] = {\n ascent: 718,\n descent: -207,\n capHeight: 718,\n xHeight: 523,\n };\n t[\"Helvetica-BoldOblique\"] = {\n ascent: 718,\n descent: -207,\n capHeight: 718,\n xHeight: 532,\n };\n t[\"Times-Roman\"] = {\n ascent: 683,\n descent: -217,\n capHeight: 662,\n xHeight: 450,\n };\n t[\"Times-Bold\"] = {\n ascent: 683,\n descent: -217,\n capHeight: 676,\n xHeight: 461,\n };\n t[\"Times-Italic\"] = {\n ascent: 683,\n descent: -217,\n capHeight: 653,\n xHeight: 441,\n };\n t[\"Times-BoldItalic\"] = {\n ascent: 683,\n descent: -217,\n capHeight: 669,\n xHeight: 462,\n };\n t.Symbol = {\n ascent: Math.NaN,\n descent: Math.NaN,\n capHeight: Math.NaN,\n xHeight: Math.NaN,\n };\n t.ZapfDingbats = {\n ascent: Math.NaN,\n descent: Math.NaN,\n capHeight: Math.NaN,\n xHeight: Math.NaN,\n };\n});\n\nexport { getFontBasicMetrics, getMetrics };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst ON_CURVE_POINT = 1 << 0;\nconst X_SHORT_VECTOR = 1 << 1;\nconst Y_SHORT_VECTOR = 1 << 2;\nconst REPEAT_FLAG = 1 << 3;\nconst X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR = 1 << 4;\nconst Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR = 1 << 5;\nconst OVERLAP_SIMPLE = 1 << 6;\n\nconst ARG_1_AND_2_ARE_WORDS = 1 << 0;\nconst ARGS_ARE_XY_VALUES = 1 << 1;\n// const ROUND_XY_TO_GRID = 1 << 2;\nconst WE_HAVE_A_SCALE = 1 << 3;\nconst MORE_COMPONENTS = 1 << 5;\nconst WE_HAVE_AN_X_AND_Y_SCALE = 1 << 6;\nconst WE_HAVE_A_TWO_BY_TWO = 1 << 7;\nconst WE_HAVE_INSTRUCTIONS = 1 << 8;\n// const USE_MY_METRICS = 1 << 9;\n// const OVERLAP_COMPOUND = 1 << 10;\n// const SCALED_COMPONENT_OFFSET = 1 << 11;\n// const UNSCALED_COMPONENT_OFFSET = 1 << 12;\n\n/**\n * GlyfTable object represents a glyf table containing glyph information:\n * - glyph header (xMin, yMin, xMax, yMax);\n * - contours if any;\n * - components if the glyph is a composite.\n *\n * It's possible to re-scale each glyph in order to have a new font which\n * exactly fits an other one: the goal is to be able to build some substitution\n * font for well-known fonts (Myriad, Arial, ...).\n *\n * A full description of glyf table can be found here\n * https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6glyf.html\n */\nclass GlyfTable {\n constructor({ glyfTable, isGlyphLocationsLong, locaTable, numGlyphs }) {\n this.glyphs = [];\n const loca = new DataView(\n locaTable.buffer,\n locaTable.byteOffset,\n locaTable.byteLength\n );\n const glyf = new DataView(\n glyfTable.buffer,\n glyfTable.byteOffset,\n glyfTable.byteLength\n );\n const offsetSize = isGlyphLocationsLong ? 4 : 2;\n let prev = isGlyphLocationsLong ? loca.getUint32(0) : 2 * loca.getUint16(0);\n let pos = 0;\n for (let i = 0; i < numGlyphs; i++) {\n pos += offsetSize;\n const next = isGlyphLocationsLong\n ? loca.getUint32(pos)\n : 2 * loca.getUint16(pos);\n if (next === prev) {\n this.glyphs.push(new Glyph({}));\n continue;\n }\n\n const glyph = Glyph.parse(prev, glyf);\n this.glyphs.push(glyph);\n\n prev = next;\n }\n }\n\n getSize() {\n return this.glyphs.reduce((a, g) => {\n const size = g.getSize();\n // Round to next multiple of 4 if needed.\n return a + ((size + 3) & ~3);\n }, 0);\n }\n\n write() {\n const totalSize = this.getSize();\n const glyfTable = new DataView(new ArrayBuffer(totalSize));\n const isLocationLong = totalSize > /* 0xffff * 2 */ 0x1fffe;\n const offsetSize = isLocationLong ? 4 : 2;\n const locaTable = new DataView(\n new ArrayBuffer((this.glyphs.length + 1) * offsetSize)\n );\n\n if (isLocationLong) {\n locaTable.setUint32(0, 0);\n } else {\n locaTable.setUint16(0, 0);\n }\n\n let pos = 0;\n let locaIndex = 0;\n for (const glyph of this.glyphs) {\n pos += glyph.write(pos, glyfTable);\n // Round to next multiple of 4 if needed.\n pos = (pos + 3) & ~3;\n\n locaIndex += offsetSize;\n if (isLocationLong) {\n locaTable.setUint32(locaIndex, pos);\n } else {\n locaTable.setUint16(locaIndex, pos >> 1);\n }\n }\n\n return {\n isLocationLong,\n loca: new Uint8Array(locaTable.buffer),\n glyf: new Uint8Array(glyfTable.buffer),\n };\n }\n\n scale(factors) {\n for (let i = 0, ii = this.glyphs.length; i < ii; i++) {\n this.glyphs[i].scale(factors[i]);\n }\n }\n}\n\nclass Glyph {\n constructor({ header = null, simple = null, composites = null }) {\n this.header = header;\n this.simple = simple;\n this.composites = composites;\n }\n\n static parse(pos, glyf) {\n const [read, header] = GlyphHeader.parse(pos, glyf);\n pos += read;\n\n if (header.numberOfContours < 0) {\n // Composite glyph.\n const composites = [];\n while (true) {\n const [n, composite] = CompositeGlyph.parse(pos, glyf);\n pos += n;\n composites.push(composite);\n if (!(composite.flags & MORE_COMPONENTS)) {\n break;\n }\n }\n\n return new Glyph({ header, composites });\n }\n\n const simple = SimpleGlyph.parse(pos, glyf, header.numberOfContours);\n\n return new Glyph({ header, simple });\n }\n\n getSize() {\n if (!this.header) {\n return 0;\n }\n const size = this.simple\n ? this.simple.getSize()\n : this.composites.reduce((a, c) => a + c.getSize(), 0);\n return this.header.getSize() + size;\n }\n\n write(pos, buf) {\n if (!this.header) {\n return 0;\n }\n\n const spos = pos;\n pos += this.header.write(pos, buf);\n if (this.simple) {\n pos += this.simple.write(pos, buf);\n } else {\n for (const composite of this.composites) {\n pos += composite.write(pos, buf);\n }\n }\n\n return pos - spos;\n }\n\n scale(factor) {\n if (!this.header) {\n return;\n }\n\n const xMiddle = (this.header.xMin + this.header.xMax) / 2;\n this.header.scale(xMiddle, factor);\n if (this.simple) {\n this.simple.scale(xMiddle, factor);\n } else {\n for (const composite of this.composites) {\n composite.scale(xMiddle, factor);\n }\n }\n }\n}\n\nclass GlyphHeader {\n constructor({ numberOfContours, xMin, yMin, xMax, yMax }) {\n this.numberOfContours = numberOfContours;\n this.xMin = xMin;\n this.yMin = yMin;\n this.xMax = xMax;\n this.yMax = yMax;\n }\n\n static parse(pos, glyf) {\n return [\n 10,\n new GlyphHeader({\n numberOfContours: glyf.getInt16(pos),\n xMin: glyf.getInt16(pos + 2),\n yMin: glyf.getInt16(pos + 4),\n xMax: glyf.getInt16(pos + 6),\n yMax: glyf.getInt16(pos + 8),\n }),\n ];\n }\n\n getSize() {\n return 10;\n }\n\n write(pos, buf) {\n buf.setInt16(pos, this.numberOfContours);\n buf.setInt16(pos + 2, this.xMin);\n buf.setInt16(pos + 4, this.yMin);\n buf.setInt16(pos + 6, this.xMax);\n buf.setInt16(pos + 8, this.yMax);\n\n return 10;\n }\n\n scale(x, factor) {\n this.xMin = Math.round(x + (this.xMin - x) * factor);\n this.xMax = Math.round(x + (this.xMax - x) * factor);\n }\n}\n\nclass Contour {\n constructor({ flags, xCoordinates, yCoordinates }) {\n this.xCoordinates = xCoordinates;\n this.yCoordinates = yCoordinates;\n this.flags = flags;\n }\n}\n\nclass SimpleGlyph {\n constructor({ contours, instructions }) {\n this.contours = contours;\n this.instructions = instructions;\n }\n\n static parse(pos, glyf, numberOfContours) {\n const endPtsOfContours = [];\n for (let i = 0; i < numberOfContours; i++) {\n const endPt = glyf.getUint16(pos);\n pos += 2;\n endPtsOfContours.push(endPt);\n }\n const numberOfPt = endPtsOfContours[numberOfContours - 1] + 1;\n const instructionLength = glyf.getUint16(pos);\n pos += 2;\n const instructions = new Uint8Array(glyf).slice(\n pos,\n pos + instructionLength\n );\n pos += instructionLength;\n\n const flags = [];\n for (let i = 0; i < numberOfPt; pos++, i++) {\n let flag = glyf.getUint8(pos);\n flags.push(flag);\n if (flag & REPEAT_FLAG) {\n const count = glyf.getUint8(++pos);\n flag ^= REPEAT_FLAG;\n for (let m = 0; m < count; m++) {\n flags.push(flag);\n }\n i += count;\n }\n }\n\n const allXCoordinates = [];\n let xCoordinates = [];\n let yCoordinates = [];\n let pointFlags = [];\n const contours = [];\n let endPtsOfContoursIndex = 0;\n let lastCoordinate = 0;\n\n // Get x coordinates.\n for (let i = 0; i < numberOfPt; i++) {\n const flag = flags[i];\n if (flag & X_SHORT_VECTOR) {\n // 8-bits unsigned value.\n const x = glyf.getUint8(pos++);\n lastCoordinate += flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR ? x : -x;\n xCoordinates.push(lastCoordinate);\n } else if (flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR) {\n // IS_SAME.\n xCoordinates.push(lastCoordinate);\n } else {\n lastCoordinate += glyf.getInt16(pos);\n pos += 2;\n xCoordinates.push(lastCoordinate);\n }\n\n if (endPtsOfContours[endPtsOfContoursIndex] === i) {\n // Next entry is the first one of a new contour.\n endPtsOfContoursIndex++;\n allXCoordinates.push(xCoordinates);\n xCoordinates = [];\n }\n }\n\n lastCoordinate = 0;\n endPtsOfContoursIndex = 0;\n for (let i = 0; i < numberOfPt; i++) {\n const flag = flags[i];\n if (flag & Y_SHORT_VECTOR) {\n // 8-bits unsigned value.\n const y = glyf.getUint8(pos++);\n lastCoordinate += flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR ? y : -y;\n yCoordinates.push(lastCoordinate);\n } else if (flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR) {\n // IS_SAME.\n yCoordinates.push(lastCoordinate);\n } else {\n lastCoordinate += glyf.getInt16(pos);\n pos += 2;\n yCoordinates.push(lastCoordinate);\n }\n\n pointFlags.push((flag & ON_CURVE_POINT) | (flag & OVERLAP_SIMPLE));\n\n if (endPtsOfContours[endPtsOfContoursIndex] === i) {\n // Next entry is the first one of a new contour.\n xCoordinates = allXCoordinates[endPtsOfContoursIndex];\n endPtsOfContoursIndex++;\n contours.push(\n new Contour({\n flags: pointFlags,\n xCoordinates,\n yCoordinates,\n })\n );\n yCoordinates = [];\n pointFlags = [];\n }\n }\n\n return new SimpleGlyph({\n contours,\n instructions,\n });\n }\n\n getSize() {\n let size = this.contours.length * 2 + 2 + this.instructions.length;\n let lastX = 0;\n let lastY = 0;\n for (const contour of this.contours) {\n size += contour.flags.length;\n for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {\n const x = contour.xCoordinates[i];\n const y = contour.yCoordinates[i];\n let abs = Math.abs(x - lastX);\n if (abs > 255) {\n size += 2;\n } else if (abs > 0) {\n size += 1;\n }\n lastX = x;\n\n abs = Math.abs(y - lastY);\n if (abs > 255) {\n size += 2;\n } else if (abs > 0) {\n size += 1;\n }\n lastY = y;\n }\n }\n return size;\n }\n\n write(pos, buf) {\n const spos = pos;\n const xCoordinates = [];\n const yCoordinates = [];\n const flags = [];\n let lastX = 0;\n let lastY = 0;\n\n for (const contour of this.contours) {\n for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {\n let flag = contour.flags[i];\n const x = contour.xCoordinates[i];\n let delta = x - lastX;\n if (delta === 0) {\n flag |= X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR;\n xCoordinates.push(0);\n } else {\n const abs = Math.abs(delta);\n if (abs <= 255) {\n flag |=\n delta >= 0\n ? X_SHORT_VECTOR | X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR\n : X_SHORT_VECTOR;\n xCoordinates.push(abs);\n } else {\n xCoordinates.push(delta);\n }\n }\n lastX = x;\n\n const y = contour.yCoordinates[i];\n delta = y - lastY;\n if (delta === 0) {\n flag |= Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR;\n yCoordinates.push(0);\n } else {\n const abs = Math.abs(delta);\n if (abs <= 255) {\n flag |=\n delta >= 0\n ? Y_SHORT_VECTOR | Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR\n : Y_SHORT_VECTOR;\n yCoordinates.push(abs);\n } else {\n yCoordinates.push(delta);\n }\n }\n lastY = y;\n\n flags.push(flag);\n }\n\n // Write endPtsOfContours entry.\n buf.setUint16(pos, xCoordinates.length - 1);\n pos += 2;\n }\n\n // Write instructionLength.\n buf.setUint16(pos, this.instructions.length);\n pos += 2;\n if (this.instructions.length) {\n // Write instructions.\n new Uint8Array(buf.buffer, 0, buf.buffer.byteLength).set(\n this.instructions,\n pos\n );\n pos += this.instructions.length;\n }\n\n // Write flags.\n for (const flag of flags) {\n buf.setUint8(pos++, flag);\n }\n\n // Write xCoordinates.\n for (let i = 0, ii = xCoordinates.length; i < ii; i++) {\n const x = xCoordinates[i];\n const flag = flags[i];\n if (flag & X_SHORT_VECTOR) {\n buf.setUint8(pos++, x);\n } else if (!(flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR)) {\n buf.setInt16(pos, x);\n pos += 2;\n }\n }\n\n // Write yCoordinates.\n for (let i = 0, ii = yCoordinates.length; i < ii; i++) {\n const y = yCoordinates[i];\n const flag = flags[i];\n if (flag & Y_SHORT_VECTOR) {\n buf.setUint8(pos++, y);\n } else if (!(flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR)) {\n buf.setInt16(pos, y);\n pos += 2;\n }\n }\n\n return pos - spos;\n }\n\n scale(x, factor) {\n for (const contour of this.contours) {\n if (contour.xCoordinates.length === 0) {\n continue;\n }\n\n for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {\n contour.xCoordinates[i] = Math.round(\n x + (contour.xCoordinates[i] - x) * factor\n );\n }\n }\n }\n}\n\nclass CompositeGlyph {\n constructor({\n flags,\n glyphIndex,\n argument1,\n argument2,\n transf,\n instructions,\n }) {\n this.flags = flags;\n this.glyphIndex = glyphIndex;\n this.argument1 = argument1;\n this.argument2 = argument2;\n this.transf = transf;\n this.instructions = instructions;\n }\n\n static parse(pos, glyf) {\n const spos = pos;\n const transf = [];\n let flags = glyf.getUint16(pos);\n const glyphIndex = glyf.getUint16(pos + 2);\n pos += 4;\n\n let argument1, argument2;\n if (flags & ARG_1_AND_2_ARE_WORDS) {\n if (flags & ARGS_ARE_XY_VALUES) {\n argument1 = glyf.getInt16(pos);\n argument2 = glyf.getInt16(pos + 2);\n } else {\n argument1 = glyf.getUint16(pos);\n argument2 = glyf.getUint16(pos + 2);\n }\n pos += 4;\n flags ^= ARG_1_AND_2_ARE_WORDS;\n } else {\n if (flags & ARGS_ARE_XY_VALUES) {\n argument1 = glyf.getInt8(pos);\n argument2 = glyf.getInt8(pos + 1);\n } else {\n argument1 = glyf.getUint8(pos);\n argument2 = glyf.getUint8(pos + 1);\n }\n pos += 2;\n }\n\n if (flags & WE_HAVE_A_SCALE) {\n // Single F2.14.\n transf.push(glyf.getUint16(pos));\n pos += 2;\n } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) {\n // Two F2.14.\n transf.push(glyf.getUint16(pos), glyf.getUint16(pos + 2));\n pos += 4;\n } else if (flags & WE_HAVE_A_TWO_BY_TWO) {\n // Four F2.14.\n transf.push(\n glyf.getUint16(pos),\n glyf.getUint16(pos + 2),\n glyf.getUint16(pos + 4),\n glyf.getUint16(pos + 6)\n );\n pos += 8;\n }\n\n let instructions = null;\n if (flags & WE_HAVE_INSTRUCTIONS) {\n const instructionLength = glyf.getUint16(pos);\n pos += 2;\n instructions = new Uint8Array(glyf).slice(pos, pos + instructionLength);\n pos += instructionLength;\n }\n\n return [\n pos - spos,\n new CompositeGlyph({\n flags,\n glyphIndex,\n argument1,\n argument2,\n transf,\n instructions,\n }),\n ];\n }\n\n getSize() {\n let size = 2 + 2 + this.transf.length * 2;\n if (this.flags & WE_HAVE_INSTRUCTIONS) {\n size += 2 + this.instructions.length;\n }\n\n size += 2;\n if (this.flags & 2) {\n // Arguments are signed.\n if (\n !(\n this.argument1 >= -128 &&\n this.argument1 <= 127 &&\n this.argument2 >= -128 &&\n this.argument2 <= 127\n )\n ) {\n size += 2;\n }\n } else {\n if (\n !(\n this.argument1 >= 0 &&\n this.argument1 <= 255 &&\n this.argument2 >= 0 &&\n this.argument2 <= 255\n )\n ) {\n size += 2;\n }\n }\n\n return size;\n }\n\n write(pos, buf) {\n const spos = pos;\n\n if (this.flags & ARGS_ARE_XY_VALUES) {\n // Arguments are signed.\n if (\n !(\n this.argument1 >= -128 &&\n this.argument1 <= 127 &&\n this.argument2 >= -128 &&\n this.argument2 <= 127\n )\n ) {\n this.flags |= ARG_1_AND_2_ARE_WORDS;\n }\n } else {\n if (\n !(\n this.argument1 >= 0 &&\n this.argument1 <= 255 &&\n this.argument2 >= 0 &&\n this.argument2 <= 255\n )\n ) {\n this.flags |= ARG_1_AND_2_ARE_WORDS;\n }\n }\n\n buf.setUint16(pos, this.flags);\n buf.setUint16(pos + 2, this.glyphIndex);\n pos += 4;\n\n if (this.flags & ARG_1_AND_2_ARE_WORDS) {\n if (this.flags & ARGS_ARE_XY_VALUES) {\n buf.setInt16(pos, this.argument1);\n buf.setInt16(pos + 2, this.argument2);\n } else {\n buf.setUint16(pos, this.argument1);\n buf.setUint16(pos + 2, this.argument2);\n }\n pos += 4;\n } else {\n buf.setUint8(pos, this.argument1);\n buf.setUint8(pos + 1, this.argument2);\n pos += 2;\n }\n\n if (this.flags & WE_HAVE_INSTRUCTIONS) {\n buf.setUint16(pos, this.instructions.length);\n pos += 2;\n // Write instructions.\n if (this.instructions.length) {\n new Uint8Array(buf.buffer, 0, buf.buffer.byteLength).set(\n this.instructions,\n pos\n );\n pos += this.instructions.length;\n }\n }\n\n return pos - spos;\n }\n\n scale(x, factor) {}\n}\n\nexport { GlyfTable };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { readUint32 } from \"./core_utils.js\";\nimport { string32 } from \"../shared/util.js\";\n\nfunction writeInt16(dest, offset, num) {\n dest[offset] = (num >> 8) & 0xff;\n dest[offset + 1] = num & 0xff;\n}\n\nfunction writeInt32(dest, offset, num) {\n dest[offset] = (num >> 24) & 0xff;\n dest[offset + 1] = (num >> 16) & 0xff;\n dest[offset + 2] = (num >> 8) & 0xff;\n dest[offset + 3] = num & 0xff;\n}\n\nfunction writeData(dest, offset, data) {\n if (data instanceof Uint8Array) {\n dest.set(data, offset);\n } else if (typeof data === \"string\") {\n for (let i = 0, ii = data.length; i < ii; i++) {\n dest[offset++] = data.charCodeAt(i) & 0xff;\n }\n } else {\n // treating everything else as array\n for (let i = 0, ii = data.length; i < ii; i++) {\n dest[offset++] = data[i] & 0xff;\n }\n }\n}\n\nconst OTF_HEADER_SIZE = 12;\nconst OTF_TABLE_ENTRY_SIZE = 16;\n\nclass OpenTypeFileBuilder {\n constructor(sfnt) {\n this.sfnt = sfnt;\n this.tables = Object.create(null);\n }\n\n static getSearchParams(entriesCount, entrySize) {\n let maxPower2 = 1,\n log2 = 0;\n while ((maxPower2 ^ entriesCount) > maxPower2) {\n maxPower2 <<= 1;\n log2++;\n }\n const searchRange = maxPower2 * entrySize;\n return {\n range: searchRange,\n entry: log2,\n rangeShift: entrySize * entriesCount - searchRange,\n };\n }\n\n toArray() {\n let sfnt = this.sfnt;\n\n // Tables needs to be written by ascendant alphabetic order\n const tables = this.tables;\n const tablesNames = Object.keys(tables);\n tablesNames.sort();\n const numTables = tablesNames.length;\n\n let i, j, jj, table, tableName;\n // layout the tables data\n let offset = OTF_HEADER_SIZE + numTables * OTF_TABLE_ENTRY_SIZE;\n const tableOffsets = [offset];\n for (i = 0; i < numTables; i++) {\n table = tables[tablesNames[i]];\n const paddedLength = ((table.length + 3) & ~3) >>> 0;\n offset += paddedLength;\n tableOffsets.push(offset);\n }\n\n const file = new Uint8Array(offset);\n // write the table data first (mostly for checksum)\n for (i = 0; i < numTables; i++) {\n table = tables[tablesNames[i]];\n writeData(file, tableOffsets[i], table);\n }\n\n // sfnt version (4 bytes)\n if (sfnt === \"true\") {\n // Windows hates the Mac TrueType sfnt version number\n sfnt = string32(0x00010000);\n }\n file[0] = sfnt.charCodeAt(0) & 0xff;\n file[1] = sfnt.charCodeAt(1) & 0xff;\n file[2] = sfnt.charCodeAt(2) & 0xff;\n file[3] = sfnt.charCodeAt(3) & 0xff;\n\n // numTables (2 bytes)\n writeInt16(file, 4, numTables);\n\n const searchParams = OpenTypeFileBuilder.getSearchParams(numTables, 16);\n\n // searchRange (2 bytes)\n writeInt16(file, 6, searchParams.range);\n // entrySelector (2 bytes)\n writeInt16(file, 8, searchParams.entry);\n // rangeShift (2 bytes)\n writeInt16(file, 10, searchParams.rangeShift);\n\n offset = OTF_HEADER_SIZE;\n // writing table entries\n for (i = 0; i < numTables; i++) {\n tableName = tablesNames[i];\n file[offset] = tableName.charCodeAt(0) & 0xff;\n file[offset + 1] = tableName.charCodeAt(1) & 0xff;\n file[offset + 2] = tableName.charCodeAt(2) & 0xff;\n file[offset + 3] = tableName.charCodeAt(3) & 0xff;\n\n // checksum\n let checksum = 0;\n for (j = tableOffsets[i], jj = tableOffsets[i + 1]; j < jj; j += 4) {\n const quad = readUint32(file, j);\n checksum = (checksum + quad) >>> 0;\n }\n writeInt32(file, offset + 4, checksum);\n\n // offset\n writeInt32(file, offset + 8, tableOffsets[i]);\n // length\n writeInt32(file, offset + 12, tables[tableName].length);\n\n offset += OTF_TABLE_ENTRY_SIZE;\n }\n return file;\n }\n\n addTable(tag, data) {\n if (tag in this.tables) {\n throw new Error(\"Table \" + tag + \" already exists\");\n }\n this.tables[tag] = data;\n }\n}\n\nexport { OpenTypeFileBuilder };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n CFF,\n CFFCharset,\n CFFCompiler,\n CFFHeader,\n CFFIndex,\n CFFPrivateDict,\n CFFStandardStrings,\n CFFStrings,\n CFFTopDict,\n} from \"./cff_parser.js\";\nimport { SEAC_ANALYSIS_ENABLED, type1FontGlyphMapping } from \"./fonts_utils.js\";\nimport { isWhiteSpace } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\nimport { Type1Parser } from \"./type1_parser.js\";\nimport { warn } from \"../shared/util.js\";\n\nfunction findBlock(streamBytes, signature, startIndex) {\n const streamBytesLength = streamBytes.length;\n const signatureLength = signature.length;\n const scanLength = streamBytesLength - signatureLength;\n\n let i = startIndex,\n found = false;\n while (i < scanLength) {\n let j = 0;\n while (j < signatureLength && streamBytes[i + j] === signature[j]) {\n j++;\n }\n if (j >= signatureLength) {\n // `signature` found, skip over whitespace.\n i += j;\n while (i < streamBytesLength && isWhiteSpace(streamBytes[i])) {\n i++;\n }\n found = true;\n break;\n }\n i++;\n }\n return {\n found,\n length: i,\n };\n}\n\nfunction getHeaderBlock(stream, suggestedLength) {\n const EEXEC_SIGNATURE = [0x65, 0x65, 0x78, 0x65, 0x63];\n\n const streamStartPos = stream.pos; // Save the initial stream position.\n let headerBytes, headerBytesLength, block;\n try {\n headerBytes = stream.getBytes(suggestedLength);\n headerBytesLength = headerBytes.length;\n } catch (ex) {\n // Ignore errors if the `suggestedLength` is huge enough that a Uint8Array\n // cannot hold the result of `getBytes`, and fallback to simply checking\n // the entire stream (fixes issue3928.pdf).\n }\n\n if (headerBytesLength === suggestedLength) {\n // Most of the time `suggestedLength` is correct, so to speed things up we\n // initially only check the last few bytes to see if the header was found.\n // Otherwise we (potentially) check the entire stream to prevent errors in\n // `Type1Parser` (fixes issue5686.pdf).\n block = findBlock(\n headerBytes,\n EEXEC_SIGNATURE,\n suggestedLength - 2 * EEXEC_SIGNATURE.length\n );\n\n if (block.found && block.length === suggestedLength) {\n return {\n stream: new Stream(headerBytes),\n length: suggestedLength,\n };\n }\n }\n warn('Invalid \"Length1\" property in Type1 font -- trying to recover.');\n stream.pos = streamStartPos; // Reset the stream position.\n\n const SCAN_BLOCK_LENGTH = 2048;\n let actualLength;\n while (true) {\n const scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n block = findBlock(scanBytes, EEXEC_SIGNATURE, 0);\n\n if (block.length === 0) {\n break;\n }\n stream.pos += block.length; // Update the stream position.\n\n if (block.found) {\n actualLength = stream.pos - streamStartPos;\n break;\n }\n }\n stream.pos = streamStartPos; // Reset the stream position.\n\n if (actualLength) {\n return {\n stream: new Stream(stream.getBytes(actualLength)),\n length: actualLength,\n };\n }\n warn('Unable to recover \"Length1\" property in Type1 font -- using as is.');\n return {\n stream: new Stream(stream.getBytes(suggestedLength)),\n length: suggestedLength,\n };\n}\n\nfunction getEexecBlock(stream, suggestedLength) {\n // We should ideally parse the eexec block to ensure that `suggestedLength`\n // is correct, so we don't truncate the block data if it's too small.\n // However, this would also require checking if the fixed-content portion\n // exists (using the 'Length3' property), and ensuring that it's valid.\n //\n // Given that `suggestedLength` almost always is correct, all the validation\n // would require a great deal of unnecessary parsing for most fonts.\n // To save time, we always fetch the entire stream instead, which also avoid\n // issues if `suggestedLength` is huge (see comment in `getHeaderBlock`).\n //\n // NOTE: This means that the function can include the fixed-content portion\n // in the returned eexec block. In practice this does *not* seem to matter,\n // since `Type1Parser_extractFontProgram` will skip over any non-commands.\n const eexecBytes = stream.getBytes();\n return {\n stream: new Stream(eexecBytes),\n length: eexecBytes.length,\n };\n}\n\n/**\n * Type1Font is also a CIDFontType0.\n */\nclass Type1Font {\n constructor(name, file, properties) {\n // Some bad generators embed pfb file as is, we have to strip 6-byte header.\n // Also, length1 and length2 might be off by 6 bytes as well.\n // http://www.math.ubc.ca/~cass/piscript/type1.pdf\n const PFB_HEADER_SIZE = 6;\n let headerBlockLength = properties.length1;\n let eexecBlockLength = properties.length2;\n let pfbHeader = file.peekBytes(PFB_HEADER_SIZE);\n const pfbHeaderPresent = pfbHeader[0] === 0x80 && pfbHeader[1] === 0x01;\n if (pfbHeaderPresent) {\n file.skip(PFB_HEADER_SIZE);\n headerBlockLength =\n (pfbHeader[5] << 24) |\n (pfbHeader[4] << 16) |\n (pfbHeader[3] << 8) |\n pfbHeader[2];\n }\n\n // Get the data block containing glyphs and subrs information\n const headerBlock = getHeaderBlock(file, headerBlockLength);\n const headerBlockParser = new Type1Parser(\n headerBlock.stream,\n false,\n SEAC_ANALYSIS_ENABLED\n );\n headerBlockParser.extractFontHeader(properties);\n\n if (pfbHeaderPresent) {\n pfbHeader = file.getBytes(PFB_HEADER_SIZE);\n eexecBlockLength =\n (pfbHeader[5] << 24) |\n (pfbHeader[4] << 16) |\n (pfbHeader[3] << 8) |\n pfbHeader[2];\n }\n\n // Decrypt the data blocks and retrieve it's content\n const eexecBlock = getEexecBlock(file, eexecBlockLength);\n const eexecBlockParser = new Type1Parser(\n eexecBlock.stream,\n true,\n SEAC_ANALYSIS_ENABLED\n );\n const data = eexecBlockParser.extractFontProgram(properties);\n for (const key in data.properties) {\n properties[key] = data.properties[key];\n }\n\n const charstrings = data.charstrings;\n const type2Charstrings = this.getType2Charstrings(charstrings);\n const subrs = this.getType2Subrs(data.subrs);\n\n this.charstrings = charstrings;\n this.data = this.wrap(\n name,\n type2Charstrings,\n this.charstrings,\n subrs,\n properties\n );\n this.seacs = this.getSeacs(data.charstrings);\n }\n\n get numGlyphs() {\n return this.charstrings.length + 1;\n }\n\n getCharset() {\n const charset = [\".notdef\"];\n const charstrings = this.charstrings;\n for (let glyphId = 0; glyphId < charstrings.length; glyphId++) {\n charset.push(charstrings[glyphId].glyphName);\n }\n return charset;\n }\n\n getGlyphMapping(properties) {\n const charstrings = this.charstrings;\n\n if (properties.composite) {\n const charCodeToGlyphId = Object.create(null);\n // Map CIDs directly to GIDs.\n for (\n let glyphId = 0, charstringsLen = charstrings.length;\n glyphId < charstringsLen;\n glyphId++\n ) {\n const charCode = properties.cMap.charCodeOf(glyphId);\n // Add 1 because glyph 0 is duplicated.\n charCodeToGlyphId[charCode] = glyphId + 1;\n }\n return charCodeToGlyphId;\n }\n\n const glyphNames = [\".notdef\"];\n let builtInEncoding, glyphId;\n for (glyphId = 0; glyphId < charstrings.length; glyphId++) {\n glyphNames.push(charstrings[glyphId].glyphName);\n }\n const encoding = properties.builtInEncoding;\n if (encoding) {\n builtInEncoding = Object.create(null);\n for (const charCode in encoding) {\n glyphId = glyphNames.indexOf(encoding[charCode]);\n if (glyphId >= 0) {\n builtInEncoding[charCode] = glyphId;\n }\n }\n }\n\n return type1FontGlyphMapping(properties, builtInEncoding, glyphNames);\n }\n\n hasGlyphId(id) {\n if (id < 0 || id >= this.numGlyphs) {\n return false;\n }\n if (id === 0) {\n // notdef is always defined.\n return true;\n }\n const glyph = this.charstrings[id - 1];\n return glyph.charstring.length > 0;\n }\n\n getSeacs(charstrings) {\n const seacMap = [];\n for (let i = 0, ii = charstrings.length; i < ii; i++) {\n const charstring = charstrings[i];\n if (charstring.seac) {\n // Offset by 1 for .notdef\n seacMap[i + 1] = charstring.seac;\n }\n }\n return seacMap;\n }\n\n getType2Charstrings(type1Charstrings) {\n const type2Charstrings = [];\n for (let i = 0, ii = type1Charstrings.length; i < ii; i++) {\n type2Charstrings.push(type1Charstrings[i].charstring);\n }\n return type2Charstrings;\n }\n\n getType2Subrs(type1Subrs) {\n let bias = 0;\n const count = type1Subrs.length;\n if (count < 1133) {\n bias = 107;\n } else if (count < 33769) {\n bias = 1131;\n } else {\n bias = 32768;\n }\n\n // Add a bunch of empty subrs to deal with the Type2 bias\n const type2Subrs = [];\n let i;\n for (i = 0; i < bias; i++) {\n type2Subrs.push([0x0b]);\n }\n\n for (i = 0; i < count; i++) {\n type2Subrs.push(type1Subrs[i]);\n }\n\n return type2Subrs;\n }\n\n wrap(name, glyphs, charstrings, subrs, properties) {\n const cff = new CFF();\n cff.header = new CFFHeader(1, 0, 4, 4);\n\n cff.names = [name];\n\n const topDict = new CFFTopDict();\n // CFF strings IDs 0...390 are predefined names, so refering\n // to entries in our own String INDEX starts at SID 391.\n topDict.setByName(\"version\", 391);\n topDict.setByName(\"Notice\", 392);\n topDict.setByName(\"FullName\", 393);\n topDict.setByName(\"FamilyName\", 394);\n topDict.setByName(\"Weight\", 395);\n topDict.setByName(\"Encoding\", null); // placeholder\n topDict.setByName(\"FontMatrix\", properties.fontMatrix);\n topDict.setByName(\"FontBBox\", properties.bbox);\n topDict.setByName(\"charset\", null); // placeholder\n topDict.setByName(\"CharStrings\", null); // placeholder\n topDict.setByName(\"Private\", null); // placeholder\n cff.topDict = topDict;\n\n const strings = new CFFStrings();\n strings.add(\"Version 0.11\"); // Version\n strings.add(\"See original notice\"); // Notice\n strings.add(name); // FullName\n strings.add(name); // FamilyName\n strings.add(\"Medium\"); // Weight\n cff.strings = strings;\n\n cff.globalSubrIndex = new CFFIndex();\n\n const count = glyphs.length;\n const charsetArray = [\".notdef\"];\n let i, ii;\n for (i = 0; i < count; i++) {\n const glyphName = charstrings[i].glyphName;\n const index = CFFStandardStrings.indexOf(glyphName);\n if (index === -1) {\n strings.add(glyphName);\n }\n charsetArray.push(glyphName);\n }\n cff.charset = new CFFCharset(false, 0, charsetArray);\n\n const charStringsIndex = new CFFIndex();\n charStringsIndex.add([0x8b, 0x0e]); // .notdef\n for (i = 0; i < count; i++) {\n charStringsIndex.add(glyphs[i]);\n }\n cff.charStrings = charStringsIndex;\n\n const privateDict = new CFFPrivateDict();\n privateDict.setByName(\"Subrs\", null); // placeholder\n const fields = [\n \"BlueValues\",\n \"OtherBlues\",\n \"FamilyBlues\",\n \"FamilyOtherBlues\",\n \"StemSnapH\",\n \"StemSnapV\",\n \"BlueShift\",\n \"BlueFuzz\",\n \"BlueScale\",\n \"LanguageGroup\",\n \"ExpansionFactor\",\n \"ForceBold\",\n \"StdHW\",\n \"StdVW\",\n ];\n for (i = 0, ii = fields.length; i < ii; i++) {\n const field = fields[i];\n if (!(field in properties.privateData)) {\n continue;\n }\n const value = properties.privateData[field];\n if (Array.isArray(value)) {\n // All of the private dictionary array data in CFF must be stored as\n // \"delta-encoded\" numbers.\n for (let j = value.length - 1; j > 0; j--) {\n value[j] -= value[j - 1]; // ... difference from previous value\n }\n }\n privateDict.setByName(field, value);\n }\n cff.topDict.privateDict = privateDict;\n\n const subrIndex = new CFFIndex();\n for (i = 0, ii = subrs.length; i < ii; i++) {\n subrIndex.add(subrs[i]);\n }\n privateDict.subrsIndex = subrIndex;\n\n const compiler = new CFFCompiler(cff);\n return compiler.compile();\n }\n}\n\nexport { Type1Font };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getEncoding } from \"./encodings.js\";\nimport { isWhiteSpace } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\nimport { warn } from \"../shared/util.js\";\n\n// Hinting is currently disabled due to unknown problems on windows\n// in tracemonkey and various other pdfs with type1 fonts.\nconst HINTING_ENABLED = false;\n\n/*\n * CharStrings are encoded following the the CharString Encoding sequence\n * describe in Chapter 6 of the \"Adobe Type1 Font Format\" specification.\n * The value in a byte indicates a command, a number, or subsequent bytes\n * that are to be interpreted in a special way.\n *\n * CharString Number Encoding:\n * A CharString byte containing the values from 32 through 255 inclusive\n * indicate an integer. These values are decoded in four ranges.\n *\n * 1. A CharString byte containing a value, v, between 32 and 246 inclusive,\n * indicate the integer v - 139. Thus, the integer values from -107 through\n * 107 inclusive may be encoded in single byte.\n *\n * 2. A CharString byte containing a value, v, between 247 and 250 inclusive,\n * indicates an integer involving the next byte, w, according to the formula:\n * [(v - 247) x 256] + w + 108\n *\n * 3. A CharString byte containing a value, v, between 251 and 254 inclusive,\n * indicates an integer involving the next byte, w, according to the formula:\n * -[(v - 251) * 256] - w - 108\n *\n * 4. A CharString containing the value 255 indicates that the next 4 bytes\n * are a two complement signed integer. The first of these bytes contains the\n * highest order bits, the second byte contains the next higher order bits\n * and the fourth byte contain the lowest order bits.\n *\n *\n * CharString Command Encoding:\n * CharStrings commands are encoded in 1 or 2 bytes.\n *\n * Single byte commands are encoded in 1 byte that contains a value between\n * 0 and 31 inclusive.\n * If a command byte contains the value 12, then the value in the next byte\n * indicates a command. This \"escape\" mechanism allows many extra commands\n * to be encoded and this encoding technique helps to minimize the length of\n * the charStrings.\n */\nconst Type1CharString = (function Type1CharStringClosure() {\n const COMMAND_MAP = {\n hstem: [1],\n vstem: [3],\n vmoveto: [4],\n rlineto: [5],\n hlineto: [6],\n vlineto: [7],\n rrcurveto: [8],\n callsubr: [10],\n flex: [12, 35],\n drop: [12, 18],\n endchar: [14],\n rmoveto: [21],\n hmoveto: [22],\n vhcurveto: [30],\n hvcurveto: [31],\n };\n\n // eslint-disable-next-line no-shadow\n class Type1CharString {\n constructor() {\n this.width = 0;\n this.lsb = 0;\n this.flexing = false;\n this.output = [];\n this.stack = [];\n }\n\n convert(encoded, subrs, seacAnalysisEnabled) {\n const count = encoded.length;\n let error = false;\n let wx, sbx, subrNumber;\n for (let i = 0; i < count; i++) {\n let value = encoded[i];\n if (value < 32) {\n if (value === 12) {\n value = (value << 8) + encoded[++i];\n }\n switch (value) {\n case 1: // hstem\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.hstem);\n break;\n case 3: // vstem\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.vstem);\n break;\n case 4: // vmoveto\n if (this.flexing) {\n if (this.stack.length < 1) {\n error = true;\n break;\n }\n // Add the dx for flex and but also swap the values so they are\n // the right order.\n const dy = this.stack.pop();\n this.stack.push(0, dy);\n break;\n }\n error = this.executeCommand(1, COMMAND_MAP.vmoveto);\n break;\n case 5: // rlineto\n error = this.executeCommand(2, COMMAND_MAP.rlineto);\n break;\n case 6: // hlineto\n error = this.executeCommand(1, COMMAND_MAP.hlineto);\n break;\n case 7: // vlineto\n error = this.executeCommand(1, COMMAND_MAP.vlineto);\n break;\n case 8: // rrcurveto\n error = this.executeCommand(6, COMMAND_MAP.rrcurveto);\n break;\n case 9: // closepath\n // closepath is a Type1 command that does not take argument and is\n // useless in Type2 and it can simply be ignored.\n this.stack = [];\n break;\n case 10: // callsubr\n if (this.stack.length < 1) {\n error = true;\n break;\n }\n subrNumber = this.stack.pop();\n if (!subrs[subrNumber]) {\n error = true;\n break;\n }\n error = this.convert(\n subrs[subrNumber],\n subrs,\n seacAnalysisEnabled\n );\n break;\n case 11: // return\n return error;\n case 13: // hsbw\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n // To convert to type2 we have to move the width value to the\n // first part of the charstring and then use hmoveto with lsb.\n wx = this.stack.pop();\n sbx = this.stack.pop();\n this.lsb = sbx;\n this.width = wx;\n this.stack.push(wx, sbx);\n error = this.executeCommand(2, COMMAND_MAP.hmoveto);\n break;\n case 14: // endchar\n this.output.push(COMMAND_MAP.endchar[0]);\n break;\n case 21: // rmoveto\n if (this.flexing) {\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.rmoveto);\n break;\n case 22: // hmoveto\n if (this.flexing) {\n // Add the dy for flex.\n this.stack.push(0);\n break;\n }\n error = this.executeCommand(1, COMMAND_MAP.hmoveto);\n break;\n case 30: // vhcurveto\n error = this.executeCommand(4, COMMAND_MAP.vhcurveto);\n break;\n case 31: // hvcurveto\n error = this.executeCommand(4, COMMAND_MAP.hvcurveto);\n break;\n case (12 << 8) + 0: // dotsection\n // dotsection is a Type1 command to specify some hinting feature\n // for dots that do not take a parameter and it can safely be\n // ignored for Type2.\n this.stack = [];\n break;\n case (12 << 8) + 1: // vstem3\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n // [vh]stem3 are Type1 only and Type2 supports [vh]stem with\n // multiple parameters, so instead of returning [vh]stem3 take a\n // shortcut and return [vhstem] instead.\n error = this.executeCommand(2, COMMAND_MAP.vstem);\n break;\n case (12 << 8) + 2: // hstem3\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n // See vstem3.\n error = this.executeCommand(2, COMMAND_MAP.hstem);\n break;\n case (12 << 8) + 6: // seac\n // seac is like type 2's special endchar but it doesn't use the\n // first argument asb, so remove it.\n if (seacAnalysisEnabled) {\n const asb = this.stack[this.stack.length - 5];\n this.seac = this.stack.splice(-4, 4);\n this.seac[0] += this.lsb - asb;\n error = this.executeCommand(0, COMMAND_MAP.endchar);\n } else {\n error = this.executeCommand(4, COMMAND_MAP.endchar);\n }\n break;\n case (12 << 8) + 7: // sbw\n if (this.stack.length < 4) {\n error = true;\n break;\n }\n // To convert to type2 we have to move the width value to the\n // first part of the charstring and then use rmoveto with\n // (dx, dy). The height argument will not be used for vmtx and\n // vhea tables reconstruction -- ignoring it.\n this.stack.pop(); // wy\n wx = this.stack.pop();\n const sby = this.stack.pop();\n sbx = this.stack.pop();\n this.lsb = sbx;\n this.width = wx;\n this.stack.push(wx, sbx, sby);\n error = this.executeCommand(3, COMMAND_MAP.rmoveto);\n break;\n case (12 << 8) + 12: // div\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n const num2 = this.stack.pop();\n const num1 = this.stack.pop();\n this.stack.push(num1 / num2);\n break;\n case (12 << 8) + 16: // callothersubr\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n subrNumber = this.stack.pop();\n const numArgs = this.stack.pop();\n if (subrNumber === 0 && numArgs === 3) {\n const flexArgs = this.stack.splice(this.stack.length - 17, 17);\n this.stack.push(\n flexArgs[2] + flexArgs[0], // bcp1x + rpx\n flexArgs[3] + flexArgs[1], // bcp1y + rpy\n flexArgs[4], // bcp2x\n flexArgs[5], // bcp2y\n flexArgs[6], // p2x\n flexArgs[7], // p2y\n flexArgs[8], // bcp3x\n flexArgs[9], // bcp3y\n flexArgs[10], // bcp4x\n flexArgs[11], // bcp4y\n flexArgs[12], // p3x\n flexArgs[13], // p3y\n flexArgs[14] // flexDepth\n // 15 = finalx unused by flex\n // 16 = finaly unused by flex\n );\n error = this.executeCommand(13, COMMAND_MAP.flex, true);\n this.flexing = false;\n this.stack.push(flexArgs[15], flexArgs[16]);\n } else if (subrNumber === 1 && numArgs === 0) {\n this.flexing = true;\n }\n break;\n case (12 << 8) + 17: // pop\n // Ignore this since it is only used with othersubr.\n break;\n case (12 << 8) + 33: // setcurrentpoint\n // Ignore for now.\n this.stack = [];\n break;\n default:\n warn('Unknown type 1 charstring command of \"' + value + '\"');\n break;\n }\n if (error) {\n break;\n }\n continue;\n } else if (value <= 246) {\n value -= 139;\n } else if (value <= 250) {\n value = (value - 247) * 256 + encoded[++i] + 108;\n } else if (value <= 254) {\n value = -((value - 251) * 256) - encoded[++i] - 108;\n } else {\n value =\n ((encoded[++i] & 0xff) << 24) |\n ((encoded[++i] & 0xff) << 16) |\n ((encoded[++i] & 0xff) << 8) |\n ((encoded[++i] & 0xff) << 0);\n }\n this.stack.push(value);\n }\n return error;\n }\n\n executeCommand(howManyArgs, command, keepStack) {\n const stackLength = this.stack.length;\n if (howManyArgs > stackLength) {\n return true;\n }\n const start = stackLength - howManyArgs;\n for (let i = start; i < stackLength; i++) {\n let value = this.stack[i];\n if (Number.isInteger(value)) {\n this.output.push(28, (value >> 8) & 0xff, value & 0xff);\n } else {\n // fixed point\n value = (65536 * value) | 0;\n this.output.push(\n 255,\n (value >> 24) & 0xff,\n (value >> 16) & 0xff,\n (value >> 8) & 0xff,\n value & 0xff\n );\n }\n }\n this.output.push.apply(this.output, command);\n if (keepStack) {\n this.stack.splice(start, howManyArgs);\n } else {\n this.stack.length = 0;\n }\n return false;\n }\n }\n\n return Type1CharString;\n})();\n\n/*\n * Type1Parser encapsulate the needed code for parsing a Type1 font\n * program. Some of its logic depends on the Type2 charstrings\n * structure.\n * Note: this doesn't really parse the font since that would require evaluation\n * of PostScript, but it is possible in most cases to extract what we need\n * without a full parse.\n */\nconst Type1Parser = (function Type1ParserClosure() {\n /*\n * Decrypt a Sequence of Ciphertext Bytes to Produce the Original Sequence\n * of Plaintext Bytes. The function took a key as a parameter which can be\n * for decrypting the eexec block of for decoding charStrings.\n */\n const EEXEC_ENCRYPT_KEY = 55665;\n const CHAR_STRS_ENCRYPT_KEY = 4330;\n\n function isHexDigit(code) {\n return (\n (code >= 48 && code <= 57) || // '0'-'9'\n (code >= 65 && code <= 70) || // 'A'-'F'\n (code >= 97 && code <= 102) // 'a'-'f'\n );\n }\n\n function decrypt(data, key, discardNumber) {\n if (discardNumber >= data.length) {\n return new Uint8Array(0);\n }\n const c1 = 52845,\n c2 = 22719;\n let r = key | 0,\n i,\n j;\n for (i = 0; i < discardNumber; i++) {\n r = ((data[i] + r) * c1 + c2) & ((1 << 16) - 1);\n }\n const count = data.length - discardNumber;\n const decrypted = new Uint8Array(count);\n for (i = discardNumber, j = 0; j < count; i++, j++) {\n const value = data[i];\n decrypted[j] = value ^ (r >> 8);\n r = ((value + r) * c1 + c2) & ((1 << 16) - 1);\n }\n return decrypted;\n }\n\n function decryptAscii(data, key, discardNumber) {\n const c1 = 52845,\n c2 = 22719;\n let r = key | 0;\n const count = data.length,\n maybeLength = count >>> 1;\n const decrypted = new Uint8Array(maybeLength);\n let i, j;\n for (i = 0, j = 0; i < count; i++) {\n const digit1 = data[i];\n if (!isHexDigit(digit1)) {\n continue;\n }\n i++;\n let digit2;\n while (i < count && !isHexDigit((digit2 = data[i]))) {\n i++;\n }\n if (i < count) {\n const value = parseInt(String.fromCharCode(digit1, digit2), 16);\n decrypted[j++] = value ^ (r >> 8);\n r = ((value + r) * c1 + c2) & ((1 << 16) - 1);\n }\n }\n return decrypted.slice(discardNumber, j);\n }\n\n function isSpecial(c) {\n return (\n c === /* '/' = */ 0x2f ||\n c === /* '[' = */ 0x5b ||\n c === /* ']' = */ 0x5d ||\n c === /* '{' = */ 0x7b ||\n c === /* '}' = */ 0x7d ||\n c === /* '(' = */ 0x28 ||\n c === /* ')' = */ 0x29\n );\n }\n\n // eslint-disable-next-line no-shadow\n class Type1Parser {\n constructor(stream, encrypted, seacAnalysisEnabled) {\n if (encrypted) {\n const data = stream.getBytes();\n const isBinary = !(\n (isHexDigit(data[0]) || isWhiteSpace(data[0])) &&\n isHexDigit(data[1]) &&\n isHexDigit(data[2]) &&\n isHexDigit(data[3]) &&\n isHexDigit(data[4]) &&\n isHexDigit(data[5]) &&\n isHexDigit(data[6]) &&\n isHexDigit(data[7])\n );\n stream = new Stream(\n isBinary\n ? decrypt(data, EEXEC_ENCRYPT_KEY, 4)\n : decryptAscii(data, EEXEC_ENCRYPT_KEY, 4)\n );\n }\n this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n\n this.stream = stream;\n this.nextChar();\n }\n\n readNumberArray() {\n this.getToken(); // read '[' or '{' (arrays can start with either)\n const array = [];\n while (true) {\n const token = this.getToken();\n if (token === null || token === \"]\" || token === \"}\") {\n break;\n }\n array.push(parseFloat(token || 0));\n }\n return array;\n }\n\n readNumber() {\n const token = this.getToken();\n return parseFloat(token || 0);\n }\n\n readInt() {\n // Use '| 0' to prevent setting a double into length such as the double\n // does not flow into the loop variable.\n const token = this.getToken();\n return parseInt(token || 0, 10) | 0;\n }\n\n readBoolean() {\n const token = this.getToken();\n // Use 1 and 0 since that's what type2 charstrings use.\n return token === \"true\" ? 1 : 0;\n }\n\n nextChar() {\n return (this.currentChar = this.stream.getByte());\n }\n\n prevChar() {\n this.stream.skip(-2);\n return (this.currentChar = this.stream.getByte());\n }\n\n getToken() {\n // Eat whitespace and comments.\n let comment = false;\n let ch = this.currentChar;\n while (true) {\n if (ch === -1) {\n return null;\n }\n\n if (comment) {\n if (ch === 0x0a || ch === 0x0d) {\n comment = false;\n }\n } else if (ch === /* '%' = */ 0x25) {\n comment = true;\n } else if (!isWhiteSpace(ch)) {\n break;\n }\n ch = this.nextChar();\n }\n if (isSpecial(ch)) {\n this.nextChar();\n return String.fromCharCode(ch);\n }\n let token = \"\";\n do {\n token += String.fromCharCode(ch);\n ch = this.nextChar();\n } while (ch >= 0 && !isWhiteSpace(ch) && !isSpecial(ch));\n return token;\n }\n\n readCharStrings(bytes, lenIV) {\n if (lenIV === -1) {\n // This isn't in the spec, but Adobe's tx program handles -1\n // as plain text.\n return bytes;\n }\n return decrypt(bytes, CHAR_STRS_ENCRYPT_KEY, lenIV);\n }\n\n /*\n * Returns an object containing a Subrs array and a CharStrings\n * array extracted from and eexec encrypted block of data\n */\n extractFontProgram(properties) {\n const stream = this.stream;\n\n const subrs = [],\n charstrings = [];\n const privateData = Object.create(null);\n privateData.lenIV = 4;\n const program = {\n subrs: [],\n charstrings: [],\n properties: {\n privateData,\n },\n };\n let token, length, data, lenIV, encoded;\n while ((token = this.getToken()) !== null) {\n if (token !== \"/\") {\n continue;\n }\n token = this.getToken();\n switch (token) {\n case \"CharStrings\":\n // The number immediately following CharStrings must be greater or\n // equal to the number of CharStrings.\n this.getToken();\n this.getToken(); // read in 'dict'\n this.getToken(); // read in 'dup'\n this.getToken(); // read in 'begin'\n while (true) {\n token = this.getToken();\n if (token === null || token === \"end\") {\n break;\n }\n\n if (token !== \"/\") {\n continue;\n }\n const glyph = this.getToken();\n length = this.readInt();\n this.getToken(); // read in 'RD' or '-|'\n data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n lenIV = program.properties.privateData.lenIV;\n encoded = this.readCharStrings(data, lenIV);\n this.nextChar();\n token = this.getToken(); // read in 'ND' or '|-'\n if (token === \"noaccess\") {\n this.getToken(); // read in 'def'\n } else if (token === \"/\") {\n // The expected 'ND' or '|-' token is missing, avoid swallowing\n // the start of the next glyph (fixes issue14462_reduced.pdf).\n this.prevChar();\n }\n charstrings.push({\n glyph,\n encoded,\n });\n }\n break;\n case \"Subrs\":\n this.readInt(); // num\n this.getToken(); // read in 'array'\n while (this.getToken() === \"dup\") {\n const index = this.readInt();\n length = this.readInt();\n this.getToken(); // read in 'RD' or '-|'\n data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n lenIV = program.properties.privateData.lenIV;\n encoded = this.readCharStrings(data, lenIV);\n this.nextChar();\n token = this.getToken(); // read in 'NP' or '|'\n if (token === \"noaccess\") {\n this.getToken(); // read in 'put'\n }\n subrs[index] = encoded;\n }\n break;\n case \"BlueValues\":\n case \"OtherBlues\":\n case \"FamilyBlues\":\n case \"FamilyOtherBlues\":\n const blueArray = this.readNumberArray();\n // *Blue* values may contain invalid data: disables reading of\n // those values when hinting is disabled.\n if (\n blueArray.length > 0 &&\n blueArray.length % 2 === 0 &&\n HINTING_ENABLED\n ) {\n program.properties.privateData[token] = blueArray;\n }\n break;\n case \"StemSnapH\":\n case \"StemSnapV\":\n program.properties.privateData[token] = this.readNumberArray();\n break;\n case \"StdHW\":\n case \"StdVW\":\n program.properties.privateData[token] = this.readNumberArray()[0];\n break;\n case \"BlueShift\":\n case \"lenIV\":\n case \"BlueFuzz\":\n case \"BlueScale\":\n case \"LanguageGroup\":\n case \"ExpansionFactor\":\n program.properties.privateData[token] = this.readNumber();\n break;\n case \"ForceBold\":\n program.properties.privateData[token] = this.readBoolean();\n break;\n }\n }\n\n for (let i = 0; i < charstrings.length; i++) {\n const glyph = charstrings[i].glyph;\n encoded = charstrings[i].encoded;\n const charString = new Type1CharString();\n const error = charString.convert(\n encoded,\n subrs,\n this.seacAnalysisEnabled\n );\n let output = charString.output;\n if (error) {\n // It seems when FreeType encounters an error while evaluating a glyph\n // that it completely ignores the glyph so we'll mimic that behaviour\n // here and put an endchar to make the validator happy.\n output = [14];\n }\n const charStringObject = {\n glyphName: glyph,\n charstring: output,\n width: charString.width,\n lsb: charString.lsb,\n seac: charString.seac,\n };\n if (glyph === \".notdef\") {\n // Make sure .notdef is at index zero (issue #11477).\n program.charstrings.unshift(charStringObject);\n } else {\n program.charstrings.push(charStringObject);\n }\n\n // Attempt to replace missing widths, from the font dictionary /Widths\n // entry, with ones from the font data (fixes issue11150_reduced.pdf).\n if (properties.builtInEncoding) {\n const index = properties.builtInEncoding.indexOf(glyph);\n if (\n index > -1 &&\n properties.widths[index] === undefined &&\n index >= properties.firstChar &&\n index <= properties.lastChar\n ) {\n properties.widths[index] = charString.width;\n }\n }\n }\n\n return program;\n }\n\n extractFontHeader(properties) {\n let token;\n while ((token = this.getToken()) !== null) {\n if (token !== \"/\") {\n continue;\n }\n token = this.getToken();\n switch (token) {\n case \"FontMatrix\":\n const matrix = this.readNumberArray();\n properties.fontMatrix = matrix;\n break;\n case \"Encoding\":\n const encodingArg = this.getToken();\n let encoding;\n if (!/^\\d+$/.test(encodingArg)) {\n // encoding name is specified\n encoding = getEncoding(encodingArg);\n } else {\n encoding = [];\n const size = parseInt(encodingArg, 10) | 0;\n this.getToken(); // read in 'array'\n\n for (let j = 0; j < size; j++) {\n token = this.getToken();\n // skipping till first dup or def (e.g. ignoring for statement)\n while (token !== \"dup\" && token !== \"def\") {\n token = this.getToken();\n if (token === null) {\n return; // invalid header\n }\n }\n if (token === \"def\") {\n break; // read all array data\n }\n const index = this.readInt();\n this.getToken(); // read in '/'\n const glyph = this.getToken();\n encoding[index] = glyph;\n this.getToken(); // read the in 'put'\n }\n }\n properties.builtInEncoding = encoding;\n break;\n case \"FontBBox\":\n const fontBBox = this.readNumberArray();\n // adjusting ascent/descent\n properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n properties.ascentScaled = true;\n break;\n }\n }\n }\n }\n\n return Type1Parser;\n})();\n\nexport { Type1Parser };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n FormatError,\n info,\n shadow,\n unreachable,\n UNSUPPORTED_FEATURES,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { MissingDataException } from \"./core_utils.js\";\n\nconst ShadingType = {\n FUNCTION_BASED: 1,\n AXIAL: 2,\n RADIAL: 3,\n FREE_FORM_MESH: 4,\n LATTICE_FORM_MESH: 5,\n COONS_PATCH_MESH: 6,\n TENSOR_PATCH_MESH: 7,\n};\n\nclass Pattern {\n constructor() {\n unreachable(\"Cannot initialize Pattern.\");\n }\n\n static parseShading(\n shading,\n xref,\n res,\n handler,\n pdfFunctionFactory,\n localColorSpaceCache\n ) {\n const dict = shading instanceof BaseStream ? shading.dict : shading;\n const type = dict.get(\"ShadingType\");\n\n try {\n switch (type) {\n case ShadingType.AXIAL:\n case ShadingType.RADIAL:\n return new RadialAxialShading(\n dict,\n xref,\n res,\n pdfFunctionFactory,\n localColorSpaceCache\n );\n case ShadingType.FREE_FORM_MESH:\n case ShadingType.LATTICE_FORM_MESH:\n case ShadingType.COONS_PATCH_MESH:\n case ShadingType.TENSOR_PATCH_MESH:\n return new MeshShading(\n shading,\n xref,\n res,\n pdfFunctionFactory,\n localColorSpaceCache\n );\n default:\n throw new FormatError(\"Unsupported ShadingType: \" + type);\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.shadingPattern,\n });\n warn(ex);\n return new DummyShading();\n }\n }\n}\n\nclass BaseShading {\n // A small number to offset the first/last color stops so we can insert ones\n // to support extend. Number.MIN_VALUE is too small and breaks the extend.\n static get SMALL_NUMBER() {\n return shadow(this, \"SMALL_NUMBER\", 1e-6);\n }\n\n constructor() {\n if (this.constructor === BaseShading) {\n unreachable(\"Cannot initialize BaseShading.\");\n }\n }\n\n getIR() {\n unreachable(\"Abstract method `getIR` called.\");\n }\n}\n\n// Radial and axial shading have very similar implementations\n// If needed, the implementations can be broken into two classes.\nclass RadialAxialShading extends BaseShading {\n constructor(dict, xref, resources, pdfFunctionFactory, localColorSpaceCache) {\n super();\n this.coordsArr = dict.getArray(\"Coords\");\n this.shadingType = dict.get(\"ShadingType\");\n const cs = ColorSpace.parse({\n cs: dict.getRaw(\"CS\") || dict.getRaw(\"ColorSpace\"),\n xref,\n resources,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n const bbox = dict.getArray(\"BBox\");\n if (Array.isArray(bbox) && bbox.length === 4) {\n this.bbox = Util.normalizeRect(bbox);\n } else {\n this.bbox = null;\n }\n\n let t0 = 0.0,\n t1 = 1.0;\n if (dict.has(\"Domain\")) {\n const domainArr = dict.getArray(\"Domain\");\n t0 = domainArr[0];\n t1 = domainArr[1];\n }\n\n let extendStart = false,\n extendEnd = false;\n if (dict.has(\"Extend\")) {\n const extendArr = dict.getArray(\"Extend\");\n extendStart = extendArr[0];\n extendEnd = extendArr[1];\n }\n\n if (\n this.shadingType === ShadingType.RADIAL &&\n (!extendStart || !extendEnd)\n ) {\n // Radial gradient only currently works if either circle is fully within\n // the other circle.\n const [x1, y1, r1, x2, y2, r2] = this.coordsArr;\n const distance = Math.hypot(x1 - x2, y1 - y2);\n if (r1 <= r2 + distance && r2 <= r1 + distance) {\n warn(\"Unsupported radial gradient.\");\n }\n }\n\n this.extendStart = extendStart;\n this.extendEnd = extendEnd;\n\n const fnObj = dict.getRaw(\"Function\");\n const fn = pdfFunctionFactory.createFromArray(fnObj);\n\n // 10 samples seems good enough for now, but probably won't work\n // if there are sharp color changes. Ideally, we would implement\n // the spec faithfully and add lossless optimizations.\n const NUMBER_OF_SAMPLES = 10;\n const step = (t1 - t0) / NUMBER_OF_SAMPLES;\n\n const colorStops = (this.colorStops = []);\n\n // Protect against bad domains.\n if (t0 >= t1 || step <= 0) {\n // Acrobat doesn't seem to handle these cases so we'll ignore for\n // now.\n info(\"Bad shading domain.\");\n return;\n }\n\n const color = new Float32Array(cs.numComps),\n ratio = new Float32Array(1);\n let rgbColor;\n for (let i = 0; i <= NUMBER_OF_SAMPLES; i++) {\n ratio[0] = t0 + i * step;\n fn(ratio, 0, color, 0);\n rgbColor = cs.getRgb(color, 0);\n const cssColor = Util.makeHexColor(rgbColor[0], rgbColor[1], rgbColor[2]);\n colorStops.push([i / NUMBER_OF_SAMPLES, cssColor]);\n }\n\n let background = \"transparent\";\n if (dict.has(\"Background\")) {\n rgbColor = cs.getRgb(dict.get(\"Background\"), 0);\n background = Util.makeHexColor(rgbColor[0], rgbColor[1], rgbColor[2]);\n }\n\n if (!extendStart) {\n // Insert a color stop at the front and offset the first real color stop\n // so it doesn't conflict with the one we insert.\n colorStops.unshift([0, background]);\n colorStops[1][0] += BaseShading.SMALL_NUMBER;\n }\n if (!extendEnd) {\n // Same idea as above in extendStart but for the end.\n colorStops[colorStops.length - 1][0] -= BaseShading.SMALL_NUMBER;\n colorStops.push([1, background]);\n }\n\n this.colorStops = colorStops;\n }\n\n getIR() {\n const coordsArr = this.coordsArr;\n const shadingType = this.shadingType;\n let type, p0, p1, r0, r1;\n if (shadingType === ShadingType.AXIAL) {\n p0 = [coordsArr[0], coordsArr[1]];\n p1 = [coordsArr[2], coordsArr[3]];\n r0 = null;\n r1 = null;\n type = \"axial\";\n } else if (shadingType === ShadingType.RADIAL) {\n p0 = [coordsArr[0], coordsArr[1]];\n p1 = [coordsArr[3], coordsArr[4]];\n r0 = coordsArr[2];\n r1 = coordsArr[5];\n type = \"radial\";\n } else {\n unreachable(`getPattern type unknown: ${shadingType}`);\n }\n\n return [\"RadialAxial\", type, this.bbox, this.colorStops, p0, p1, r0, r1];\n }\n}\n\n// All mesh shadings. For now, they will be presented as set of the triangles\n// to be drawn on the canvas and rgb color for each vertex.\nclass MeshStreamReader {\n constructor(stream, context) {\n this.stream = stream;\n this.context = context;\n this.buffer = 0;\n this.bufferLength = 0;\n\n const numComps = context.numComps;\n this.tmpCompsBuf = new Float32Array(numComps);\n const csNumComps = context.colorSpace.numComps;\n this.tmpCsCompsBuf = context.colorFn\n ? new Float32Array(csNumComps)\n : this.tmpCompsBuf;\n }\n\n get hasData() {\n if (this.stream.end) {\n return this.stream.pos < this.stream.end;\n }\n if (this.bufferLength > 0) {\n return true;\n }\n const nextByte = this.stream.getByte();\n if (nextByte < 0) {\n return false;\n }\n this.buffer = nextByte;\n this.bufferLength = 8;\n return true;\n }\n\n readBits(n) {\n let buffer = this.buffer;\n let bufferLength = this.bufferLength;\n if (n === 32) {\n if (bufferLength === 0) {\n return (\n ((this.stream.getByte() << 24) |\n (this.stream.getByte() << 16) |\n (this.stream.getByte() << 8) |\n this.stream.getByte()) >>>\n 0\n );\n }\n buffer =\n (buffer << 24) |\n (this.stream.getByte() << 16) |\n (this.stream.getByte() << 8) |\n this.stream.getByte();\n const nextByte = this.stream.getByte();\n this.buffer = nextByte & ((1 << bufferLength) - 1);\n return (\n ((buffer << (8 - bufferLength)) |\n ((nextByte & 0xff) >> bufferLength)) >>>\n 0\n );\n }\n if (n === 8 && bufferLength === 0) {\n return this.stream.getByte();\n }\n while (bufferLength < n) {\n buffer = (buffer << 8) | this.stream.getByte();\n bufferLength += 8;\n }\n bufferLength -= n;\n this.bufferLength = bufferLength;\n this.buffer = buffer & ((1 << bufferLength) - 1);\n return buffer >> bufferLength;\n }\n\n align() {\n this.buffer = 0;\n this.bufferLength = 0;\n }\n\n readFlag() {\n return this.readBits(this.context.bitsPerFlag);\n }\n\n readCoordinate() {\n const bitsPerCoordinate = this.context.bitsPerCoordinate;\n const xi = this.readBits(bitsPerCoordinate);\n const yi = this.readBits(bitsPerCoordinate);\n const decode = this.context.decode;\n const scale =\n bitsPerCoordinate < 32\n ? 1 / ((1 << bitsPerCoordinate) - 1)\n : 2.3283064365386963e-10; // 2 ^ -32\n return [\n xi * scale * (decode[1] - decode[0]) + decode[0],\n yi * scale * (decode[3] - decode[2]) + decode[2],\n ];\n }\n\n readComponents() {\n const numComps = this.context.numComps;\n const bitsPerComponent = this.context.bitsPerComponent;\n const scale =\n bitsPerComponent < 32\n ? 1 / ((1 << bitsPerComponent) - 1)\n : 2.3283064365386963e-10; // 2 ^ -32\n const decode = this.context.decode;\n const components = this.tmpCompsBuf;\n for (let i = 0, j = 4; i < numComps; i++, j += 2) {\n const ci = this.readBits(bitsPerComponent);\n components[i] = ci * scale * (decode[j + 1] - decode[j]) + decode[j];\n }\n const color = this.tmpCsCompsBuf;\n if (this.context.colorFn) {\n this.context.colorFn(components, 0, color, 0);\n }\n return this.context.colorSpace.getRgb(color, 0);\n }\n}\n\nconst getB = (function getBClosure() {\n function buildB(count) {\n const lut = [];\n for (let i = 0; i <= count; i++) {\n const t = i / count,\n t_ = 1 - t;\n lut.push(\n new Float32Array([\n t_ * t_ * t_,\n 3 * t * t_ * t_,\n 3 * t * t * t_,\n t * t * t,\n ])\n );\n }\n return lut;\n }\n const cache = [];\n\n return function (count) {\n if (!cache[count]) {\n cache[count] = buildB(count);\n }\n return cache[count];\n };\n})();\n\nclass MeshShading extends BaseShading {\n static get MIN_SPLIT_PATCH_CHUNKS_AMOUNT() {\n return shadow(this, \"MIN_SPLIT_PATCH_CHUNKS_AMOUNT\", 3);\n }\n\n static get MAX_SPLIT_PATCH_CHUNKS_AMOUNT() {\n return shadow(this, \"MAX_SPLIT_PATCH_CHUNKS_AMOUNT\", 20);\n }\n\n // Count of triangles per entire mesh bounds.\n static get TRIANGLE_DENSITY() {\n return shadow(this, \"TRIANGLE_DENSITY\", 20);\n }\n\n constructor(\n stream,\n xref,\n resources,\n pdfFunctionFactory,\n localColorSpaceCache\n ) {\n super();\n if (!(stream instanceof BaseStream)) {\n throw new FormatError(\"Mesh data is not a stream\");\n }\n const dict = stream.dict;\n this.shadingType = dict.get(\"ShadingType\");\n const bbox = dict.getArray(\"BBox\");\n if (Array.isArray(bbox) && bbox.length === 4) {\n this.bbox = Util.normalizeRect(bbox);\n } else {\n this.bbox = null;\n }\n const cs = ColorSpace.parse({\n cs: dict.getRaw(\"CS\") || dict.getRaw(\"ColorSpace\"),\n xref,\n resources,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n this.background = dict.has(\"Background\")\n ? cs.getRgb(dict.get(\"Background\"), 0)\n : null;\n\n const fnObj = dict.getRaw(\"Function\");\n const fn = fnObj ? pdfFunctionFactory.createFromArray(fnObj) : null;\n\n this.coords = [];\n this.colors = [];\n this.figures = [];\n\n const decodeContext = {\n bitsPerCoordinate: dict.get(\"BitsPerCoordinate\"),\n bitsPerComponent: dict.get(\"BitsPerComponent\"),\n bitsPerFlag: dict.get(\"BitsPerFlag\"),\n decode: dict.getArray(\"Decode\"),\n colorFn: fn,\n colorSpace: cs,\n numComps: fn ? 1 : cs.numComps,\n };\n const reader = new MeshStreamReader(stream, decodeContext);\n\n let patchMesh = false;\n switch (this.shadingType) {\n case ShadingType.FREE_FORM_MESH:\n this._decodeType4Shading(reader);\n break;\n case ShadingType.LATTICE_FORM_MESH:\n const verticesPerRow = dict.get(\"VerticesPerRow\") | 0;\n if (verticesPerRow < 2) {\n throw new FormatError(\"Invalid VerticesPerRow\");\n }\n this._decodeType5Shading(reader, verticesPerRow);\n break;\n case ShadingType.COONS_PATCH_MESH:\n this._decodeType6Shading(reader);\n patchMesh = true;\n break;\n case ShadingType.TENSOR_PATCH_MESH:\n this._decodeType7Shading(reader);\n patchMesh = true;\n break;\n default:\n unreachable(\"Unsupported mesh type.\");\n break;\n }\n\n if (patchMesh) {\n // Dirty bounds calculation, to determine how dense the triangles will be.\n this._updateBounds();\n for (let i = 0, ii = this.figures.length; i < ii; i++) {\n this._buildFigureFromPatch(i);\n }\n }\n // Calculate bounds.\n this._updateBounds();\n\n this._packData();\n }\n\n _decodeType4Shading(reader) {\n const coords = this.coords;\n const colors = this.colors;\n const operators = [];\n const ps = []; // not maintaining cs since that will match ps\n let verticesLeft = 0; // assuming we have all data to start a new triangle\n while (reader.hasData) {\n const f = reader.readFlag();\n const coord = reader.readCoordinate();\n const color = reader.readComponents();\n if (verticesLeft === 0) {\n // ignoring flags if we started a triangle\n if (!(0 <= f && f <= 2)) {\n throw new FormatError(\"Unknown type4 flag\");\n }\n switch (f) {\n case 0:\n verticesLeft = 3;\n break;\n case 1:\n ps.push(ps[ps.length - 2], ps[ps.length - 1]);\n verticesLeft = 1;\n break;\n case 2:\n ps.push(ps[ps.length - 3], ps[ps.length - 1]);\n verticesLeft = 1;\n break;\n }\n operators.push(f);\n }\n ps.push(coords.length);\n coords.push(coord);\n colors.push(color);\n verticesLeft--;\n\n reader.align();\n }\n this.figures.push({\n type: \"triangles\",\n coords: new Int32Array(ps),\n colors: new Int32Array(ps),\n });\n }\n\n _decodeType5Shading(reader, verticesPerRow) {\n const coords = this.coords;\n const colors = this.colors;\n const ps = []; // not maintaining cs since that will match ps\n while (reader.hasData) {\n const coord = reader.readCoordinate();\n const color = reader.readComponents();\n ps.push(coords.length);\n coords.push(coord);\n colors.push(color);\n }\n this.figures.push({\n type: \"lattice\",\n coords: new Int32Array(ps),\n colors: new Int32Array(ps),\n verticesPerRow,\n });\n }\n\n _decodeType6Shading(reader) {\n // A special case of Type 7. The p11, p12, p21, p22 automatically filled\n const coords = this.coords;\n const colors = this.colors;\n const ps = new Int32Array(16); // p00, p10, ..., p30, p01, ..., p33\n const cs = new Int32Array(4); // c00, c30, c03, c33\n while (reader.hasData) {\n const f = reader.readFlag();\n if (!(0 <= f && f <= 3)) {\n throw new FormatError(\"Unknown type6 flag\");\n }\n const pi = coords.length;\n for (let i = 0, ii = f !== 0 ? 8 : 12; i < ii; i++) {\n coords.push(reader.readCoordinate());\n }\n const ci = colors.length;\n for (let i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n colors.push(reader.readComponents());\n }\n let tmp1, tmp2, tmp3, tmp4;\n switch (f) {\n // prettier-ignore\n case 0:\n ps[12] = pi + 3; ps[13] = pi + 4; ps[14] = pi + 5; ps[15] = pi + 6;\n ps[ 8] = pi + 2; /* values for 5, 6, 9, 10 are */ ps[11] = pi + 7;\n ps[ 4] = pi + 1; /* calculated below */ ps[ 7] = pi + 8;\n ps[ 0] = pi; ps[ 1] = pi + 11; ps[ 2] = pi + 10; ps[ 3] = pi + 9;\n cs[2] = ci + 1; cs[3] = ci + 2;\n cs[0] = ci; cs[1] = ci + 3;\n break;\n // prettier-ignore\n case 1:\n tmp1 = ps[12]; tmp2 = ps[13]; tmp3 = ps[14]; tmp4 = ps[15];\n ps[12] = tmp4; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = tmp3; /* values for 5, 6, 9, 10 are */ ps[11] = pi + 3;\n ps[ 4] = tmp2; /* calculated below */ ps[ 7] = pi + 4;\n ps[ 0] = tmp1; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n tmp1 = cs[2]; tmp2 = cs[3];\n cs[2] = tmp2; cs[3] = ci;\n cs[0] = tmp1; cs[1] = ci + 1;\n break;\n // prettier-ignore\n case 2:\n tmp1 = ps[15];\n tmp2 = ps[11];\n ps[12] = ps[3]; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = ps[7]; /* values for 5, 6, 9, 10 are */ ps[11] = pi + 3;\n ps[ 4] = tmp2; /* calculated below */ ps[ 7] = pi + 4;\n ps[ 0] = tmp1; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n tmp1 = cs[3];\n cs[2] = cs[1]; cs[3] = ci;\n cs[0] = tmp1; cs[1] = ci + 1;\n break;\n // prettier-ignore\n case 3:\n ps[12] = ps[0]; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = ps[1]; /* values for 5, 6, 9, 10 are */ ps[11] = pi + 3;\n ps[ 4] = ps[2]; /* calculated below */ ps[ 7] = pi + 4;\n ps[ 0] = ps[3]; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n cs[2] = cs[0]; cs[3] = ci;\n cs[0] = cs[1]; cs[1] = ci + 1;\n break;\n }\n // set p11, p12, p21, p22\n ps[5] = coords.length;\n coords.push([\n (-4 * coords[ps[0]][0] -\n coords[ps[15]][0] +\n 6 * (coords[ps[4]][0] + coords[ps[1]][0]) -\n 2 * (coords[ps[12]][0] + coords[ps[3]][0]) +\n 3 * (coords[ps[13]][0] + coords[ps[7]][0])) /\n 9,\n (-4 * coords[ps[0]][1] -\n coords[ps[15]][1] +\n 6 * (coords[ps[4]][1] + coords[ps[1]][1]) -\n 2 * (coords[ps[12]][1] + coords[ps[3]][1]) +\n 3 * (coords[ps[13]][1] + coords[ps[7]][1])) /\n 9,\n ]);\n ps[6] = coords.length;\n coords.push([\n (-4 * coords[ps[3]][0] -\n coords[ps[12]][0] +\n 6 * (coords[ps[2]][0] + coords[ps[7]][0]) -\n 2 * (coords[ps[0]][0] + coords[ps[15]][0]) +\n 3 * (coords[ps[4]][0] + coords[ps[14]][0])) /\n 9,\n (-4 * coords[ps[3]][1] -\n coords[ps[12]][1] +\n 6 * (coords[ps[2]][1] + coords[ps[7]][1]) -\n 2 * (coords[ps[0]][1] + coords[ps[15]][1]) +\n 3 * (coords[ps[4]][1] + coords[ps[14]][1])) /\n 9,\n ]);\n ps[9] = coords.length;\n coords.push([\n (-4 * coords[ps[12]][0] -\n coords[ps[3]][0] +\n 6 * (coords[ps[8]][0] + coords[ps[13]][0]) -\n 2 * (coords[ps[0]][0] + coords[ps[15]][0]) +\n 3 * (coords[ps[11]][0] + coords[ps[1]][0])) /\n 9,\n (-4 * coords[ps[12]][1] -\n coords[ps[3]][1] +\n 6 * (coords[ps[8]][1] + coords[ps[13]][1]) -\n 2 * (coords[ps[0]][1] + coords[ps[15]][1]) +\n 3 * (coords[ps[11]][1] + coords[ps[1]][1])) /\n 9,\n ]);\n ps[10] = coords.length;\n coords.push([\n (-4 * coords[ps[15]][0] -\n coords[ps[0]][0] +\n 6 * (coords[ps[11]][0] + coords[ps[14]][0]) -\n 2 * (coords[ps[12]][0] + coords[ps[3]][0]) +\n 3 * (coords[ps[2]][0] + coords[ps[8]][0])) /\n 9,\n (-4 * coords[ps[15]][1] -\n coords[ps[0]][1] +\n 6 * (coords[ps[11]][1] + coords[ps[14]][1]) -\n 2 * (coords[ps[12]][1] + coords[ps[3]][1]) +\n 3 * (coords[ps[2]][1] + coords[ps[8]][1])) /\n 9,\n ]);\n this.figures.push({\n type: \"patch\",\n coords: new Int32Array(ps), // making copies of ps and cs\n colors: new Int32Array(cs),\n });\n }\n }\n\n _decodeType7Shading(reader) {\n const coords = this.coords;\n const colors = this.colors;\n const ps = new Int32Array(16); // p00, p10, ..., p30, p01, ..., p33\n const cs = new Int32Array(4); // c00, c30, c03, c33\n while (reader.hasData) {\n const f = reader.readFlag();\n if (!(0 <= f && f <= 3)) {\n throw new FormatError(\"Unknown type7 flag\");\n }\n const pi = coords.length;\n for (let i = 0, ii = f !== 0 ? 12 : 16; i < ii; i++) {\n coords.push(reader.readCoordinate());\n }\n const ci = colors.length;\n for (let i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n colors.push(reader.readComponents());\n }\n let tmp1, tmp2, tmp3, tmp4;\n switch (f) {\n // prettier-ignore\n case 0:\n ps[12] = pi + 3; ps[13] = pi + 4; ps[14] = pi + 5; ps[15] = pi + 6;\n ps[ 8] = pi + 2; ps[ 9] = pi + 13; ps[10] = pi + 14; ps[11] = pi + 7;\n ps[ 4] = pi + 1; ps[ 5] = pi + 12; ps[ 6] = pi + 15; ps[ 7] = pi + 8;\n ps[ 0] = pi; ps[ 1] = pi + 11; ps[ 2] = pi + 10; ps[ 3] = pi + 9;\n cs[2] = ci + 1; cs[3] = ci + 2;\n cs[0] = ci; cs[1] = ci + 3;\n break;\n // prettier-ignore\n case 1:\n tmp1 = ps[12]; tmp2 = ps[13]; tmp3 = ps[14]; tmp4 = ps[15];\n ps[12] = tmp4; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = tmp3; ps[ 9] = pi + 9; ps[10] = pi + 10; ps[11] = pi + 3;\n ps[ 4] = tmp2; ps[ 5] = pi + 8; ps[ 6] = pi + 11; ps[ 7] = pi + 4;\n ps[ 0] = tmp1; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n tmp1 = cs[2]; tmp2 = cs[3];\n cs[2] = tmp2; cs[3] = ci;\n cs[0] = tmp1; cs[1] = ci + 1;\n break;\n // prettier-ignore\n case 2:\n tmp1 = ps[15];\n tmp2 = ps[11];\n ps[12] = ps[3]; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = ps[7]; ps[ 9] = pi + 9; ps[10] = pi + 10; ps[11] = pi + 3;\n ps[ 4] = tmp2; ps[ 5] = pi + 8; ps[ 6] = pi + 11; ps[ 7] = pi + 4;\n ps[ 0] = tmp1; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n tmp1 = cs[3];\n cs[2] = cs[1]; cs[3] = ci;\n cs[0] = tmp1; cs[1] = ci + 1;\n break;\n // prettier-ignore\n case 3:\n ps[12] = ps[0]; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = ps[1]; ps[ 9] = pi + 9; ps[10] = pi + 10; ps[11] = pi + 3;\n ps[ 4] = ps[2]; ps[ 5] = pi + 8; ps[ 6] = pi + 11; ps[ 7] = pi + 4;\n ps[ 0] = ps[3]; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n cs[2] = cs[0]; cs[3] = ci;\n cs[0] = cs[1]; cs[1] = ci + 1;\n break;\n }\n this.figures.push({\n type: \"patch\",\n coords: new Int32Array(ps), // making copies of ps and cs\n colors: new Int32Array(cs),\n });\n }\n }\n\n _buildFigureFromPatch(index) {\n const figure = this.figures[index];\n assert(figure.type === \"patch\", \"Unexpected patch mesh figure\");\n\n const coords = this.coords,\n colors = this.colors;\n const pi = figure.coords;\n const ci = figure.colors;\n\n const figureMinX = Math.min(\n coords[pi[0]][0],\n coords[pi[3]][0],\n coords[pi[12]][0],\n coords[pi[15]][0]\n );\n const figureMinY = Math.min(\n coords[pi[0]][1],\n coords[pi[3]][1],\n coords[pi[12]][1],\n coords[pi[15]][1]\n );\n const figureMaxX = Math.max(\n coords[pi[0]][0],\n coords[pi[3]][0],\n coords[pi[12]][0],\n coords[pi[15]][0]\n );\n const figureMaxY = Math.max(\n coords[pi[0]][1],\n coords[pi[3]][1],\n coords[pi[12]][1],\n coords[pi[15]][1]\n );\n let splitXBy = Math.ceil(\n ((figureMaxX - figureMinX) * MeshShading.TRIANGLE_DENSITY) /\n (this.bounds[2] - this.bounds[0])\n );\n splitXBy = Math.max(\n MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT,\n Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitXBy)\n );\n let splitYBy = Math.ceil(\n ((figureMaxY - figureMinY) * MeshShading.TRIANGLE_DENSITY) /\n (this.bounds[3] - this.bounds[1])\n );\n splitYBy = Math.max(\n MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT,\n Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitYBy)\n );\n\n const verticesPerRow = splitXBy + 1;\n const figureCoords = new Int32Array((splitYBy + 1) * verticesPerRow);\n const figureColors = new Int32Array((splitYBy + 1) * verticesPerRow);\n let k = 0;\n const cl = new Uint8Array(3),\n cr = new Uint8Array(3);\n const c0 = colors[ci[0]],\n c1 = colors[ci[1]],\n c2 = colors[ci[2]],\n c3 = colors[ci[3]];\n const bRow = getB(splitYBy),\n bCol = getB(splitXBy);\n for (let row = 0; row <= splitYBy; row++) {\n cl[0] = ((c0[0] * (splitYBy - row) + c2[0] * row) / splitYBy) | 0;\n cl[1] = ((c0[1] * (splitYBy - row) + c2[1] * row) / splitYBy) | 0;\n cl[2] = ((c0[2] * (splitYBy - row) + c2[2] * row) / splitYBy) | 0;\n\n cr[0] = ((c1[0] * (splitYBy - row) + c3[0] * row) / splitYBy) | 0;\n cr[1] = ((c1[1] * (splitYBy - row) + c3[1] * row) / splitYBy) | 0;\n cr[2] = ((c1[2] * (splitYBy - row) + c3[2] * row) / splitYBy) | 0;\n\n for (let col = 0; col <= splitXBy; col++, k++) {\n if (\n (row === 0 || row === splitYBy) &&\n (col === 0 || col === splitXBy)\n ) {\n continue;\n }\n let x = 0,\n y = 0;\n let q = 0;\n for (let i = 0; i <= 3; i++) {\n for (let j = 0; j <= 3; j++, q++) {\n const m = bRow[row][i] * bCol[col][j];\n x += coords[pi[q]][0] * m;\n y += coords[pi[q]][1] * m;\n }\n }\n figureCoords[k] = coords.length;\n coords.push([x, y]);\n figureColors[k] = colors.length;\n const newColor = new Uint8Array(3);\n newColor[0] = ((cl[0] * (splitXBy - col) + cr[0] * col) / splitXBy) | 0;\n newColor[1] = ((cl[1] * (splitXBy - col) + cr[1] * col) / splitXBy) | 0;\n newColor[2] = ((cl[2] * (splitXBy - col) + cr[2] * col) / splitXBy) | 0;\n colors.push(newColor);\n }\n }\n figureCoords[0] = pi[0];\n figureColors[0] = ci[0];\n figureCoords[splitXBy] = pi[3];\n figureColors[splitXBy] = ci[1];\n figureCoords[verticesPerRow * splitYBy] = pi[12];\n figureColors[verticesPerRow * splitYBy] = ci[2];\n figureCoords[verticesPerRow * splitYBy + splitXBy] = pi[15];\n figureColors[verticesPerRow * splitYBy + splitXBy] = ci[3];\n\n this.figures[index] = {\n type: \"lattice\",\n coords: figureCoords,\n colors: figureColors,\n verticesPerRow,\n };\n }\n\n _updateBounds() {\n let minX = this.coords[0][0],\n minY = this.coords[0][1],\n maxX = minX,\n maxY = minY;\n for (let i = 1, ii = this.coords.length; i < ii; i++) {\n const x = this.coords[i][0],\n y = this.coords[i][1];\n minX = minX > x ? x : minX;\n minY = minY > y ? y : minY;\n maxX = maxX < x ? x : maxX;\n maxY = maxY < y ? y : maxY;\n }\n this.bounds = [minX, minY, maxX, maxY];\n }\n\n _packData() {\n let i, ii, j, jj;\n\n const coords = this.coords;\n const coordsPacked = new Float32Array(coords.length * 2);\n for (i = 0, j = 0, ii = coords.length; i < ii; i++) {\n const xy = coords[i];\n coordsPacked[j++] = xy[0];\n coordsPacked[j++] = xy[1];\n }\n this.coords = coordsPacked;\n\n const colors = this.colors;\n const colorsPacked = new Uint8Array(colors.length * 3);\n for (i = 0, j = 0, ii = colors.length; i < ii; i++) {\n const c = colors[i];\n colorsPacked[j++] = c[0];\n colorsPacked[j++] = c[1];\n colorsPacked[j++] = c[2];\n }\n this.colors = colorsPacked;\n\n const figures = this.figures;\n for (i = 0, ii = figures.length; i < ii; i++) {\n const figure = figures[i],\n ps = figure.coords,\n cs = figure.colors;\n for (j = 0, jj = ps.length; j < jj; j++) {\n ps[j] *= 2;\n cs[j] *= 3;\n }\n }\n }\n\n getIR() {\n return [\n \"Mesh\",\n this.shadingType,\n this.coords,\n this.colors,\n this.figures,\n this.bounds,\n this.bbox,\n this.background,\n ];\n }\n}\n\nclass DummyShading extends BaseShading {\n getIR() {\n return [\"Dummy\"];\n }\n}\n\nfunction getTilingPatternIR(operatorList, dict, color) {\n const matrix = dict.getArray(\"Matrix\");\n const bbox = Util.normalizeRect(dict.getArray(\"BBox\"));\n const xstep = dict.get(\"XStep\");\n const ystep = dict.get(\"YStep\");\n const paintType = dict.get(\"PaintType\");\n const tilingType = dict.get(\"TilingType\");\n\n // Ensure that the pattern has a non-zero width and height, to prevent errors\n // in `pattern_helper.js` (fixes issue8330.pdf).\n if (bbox[2] - bbox[0] === 0 || bbox[3] - bbox[1] === 0) {\n throw new FormatError(`Invalid getTilingPatternIR /BBox array: [${bbox}].`);\n }\n\n return [\n \"TilingPattern\",\n color,\n operatorList,\n matrix,\n bbox,\n xstep,\n ystep,\n paintType,\n tilingType,\n ];\n}\n\nexport { getTilingPatternIR, Pattern };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Dict, Ref } from \"./primitives.js\";\nimport {\n FeatureTest,\n FormatError,\n info,\n shadow,\n unreachable,\n} from \"../shared/util.js\";\nimport { PostScriptLexer, PostScriptParser } from \"./ps_parser.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { LocalFunctionCache } from \"./image_utils.js\";\n\nclass PDFFunctionFactory {\n constructor({ xref, isEvalSupported = true }) {\n this.xref = xref;\n this.isEvalSupported = isEvalSupported !== false;\n }\n\n create(fn) {\n const cachedFunction = this.getCached(fn);\n if (cachedFunction) {\n return cachedFunction;\n }\n const parsedFunction = PDFFunction.parse({\n xref: this.xref,\n isEvalSupported: this.isEvalSupported,\n fn: fn instanceof Ref ? this.xref.fetch(fn) : fn,\n });\n\n // Attempt to cache the parsed Function, by reference.\n this._cache(fn, parsedFunction);\n\n return parsedFunction;\n }\n\n createFromArray(fnObj) {\n const cachedFunction = this.getCached(fnObj);\n if (cachedFunction) {\n return cachedFunction;\n }\n const parsedFunction = PDFFunction.parseArray({\n xref: this.xref,\n isEvalSupported: this.isEvalSupported,\n fnObj: fnObj instanceof Ref ? this.xref.fetch(fnObj) : fnObj,\n });\n\n // Attempt to cache the parsed Function, by reference.\n this._cache(fnObj, parsedFunction);\n\n return parsedFunction;\n }\n\n getCached(cacheKey) {\n let fnRef;\n if (cacheKey instanceof Ref) {\n fnRef = cacheKey;\n } else if (cacheKey instanceof Dict) {\n fnRef = cacheKey.objId;\n } else if (cacheKey instanceof BaseStream) {\n fnRef = cacheKey.dict && cacheKey.dict.objId;\n }\n if (fnRef) {\n const localFunction = this._localFunctionCache.getByRef(fnRef);\n if (localFunction) {\n return localFunction;\n }\n }\n return null;\n }\n\n /**\n * @private\n */\n _cache(cacheKey, parsedFunction) {\n if (!parsedFunction) {\n throw new Error(\n 'PDFFunctionFactory._cache - expected \"parsedFunction\" argument.'\n );\n }\n let fnRef;\n if (cacheKey instanceof Ref) {\n fnRef = cacheKey;\n } else if (cacheKey instanceof Dict) {\n fnRef = cacheKey.objId;\n } else if (cacheKey instanceof BaseStream) {\n fnRef = cacheKey.dict && cacheKey.dict.objId;\n }\n if (fnRef) {\n this._localFunctionCache.set(/* name = */ null, fnRef, parsedFunction);\n }\n }\n\n /**\n * @private\n */\n get _localFunctionCache() {\n return shadow(this, \"_localFunctionCache\", new LocalFunctionCache());\n }\n}\n\nfunction toNumberArray(arr) {\n if (!Array.isArray(arr)) {\n return null;\n }\n const length = arr.length;\n for (let i = 0; i < length; i++) {\n if (typeof arr[i] !== \"number\") {\n // Non-number is found -- convert all items to numbers.\n const result = new Array(length);\n for (let j = 0; j < length; j++) {\n result[j] = +arr[j];\n }\n return result;\n }\n }\n return arr;\n}\n\nclass PDFFunction {\n static getSampleArray(size, outputSize, bps, stream) {\n let i, ii;\n let length = 1;\n for (i = 0, ii = size.length; i < ii; i++) {\n length *= size[i];\n }\n length *= outputSize;\n\n const array = new Array(length);\n let codeSize = 0;\n let codeBuf = 0;\n // 32 is a valid bps so shifting won't work\n const sampleMul = 1.0 / (2.0 ** bps - 1);\n\n const strBytes = stream.getBytes((length * bps + 7) / 8);\n let strIdx = 0;\n for (i = 0; i < length; i++) {\n while (codeSize < bps) {\n codeBuf <<= 8;\n codeBuf |= strBytes[strIdx++];\n codeSize += 8;\n }\n codeSize -= bps;\n array[i] = (codeBuf >> codeSize) * sampleMul;\n codeBuf &= (1 << codeSize) - 1;\n }\n return array;\n }\n\n static parse({ xref, isEvalSupported, fn }) {\n const dict = fn.dict || fn;\n const typeNum = dict.get(\"FunctionType\");\n\n switch (typeNum) {\n case 0:\n return this.constructSampled({ xref, isEvalSupported, fn, dict });\n case 1:\n break;\n case 2:\n return this.constructInterpolated({ xref, isEvalSupported, dict });\n case 3:\n return this.constructStiched({ xref, isEvalSupported, dict });\n case 4:\n return this.constructPostScript({ xref, isEvalSupported, fn, dict });\n }\n throw new FormatError(\"Unknown type of function\");\n }\n\n static parseArray({ xref, isEvalSupported, fnObj }) {\n if (!Array.isArray(fnObj)) {\n // not an array -- parsing as regular function\n return this.parse({ xref, isEvalSupported, fn: fnObj });\n }\n\n const fnArray = [];\n for (let j = 0, jj = fnObj.length; j < jj; j++) {\n fnArray.push(\n this.parse({ xref, isEvalSupported, fn: xref.fetchIfRef(fnObj[j]) })\n );\n }\n return function (src, srcOffset, dest, destOffset) {\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n fnArray[i](src, srcOffset, dest, destOffset + i);\n }\n };\n }\n\n static constructSampled({ xref, isEvalSupported, fn, dict }) {\n function toMultiArray(arr) {\n const inputLength = arr.length;\n const out = [];\n let index = 0;\n for (let i = 0; i < inputLength; i += 2) {\n out[index++] = [arr[i], arr[i + 1]];\n }\n return out;\n }\n // See chapter 3, page 109 of the PDF reference\n function interpolate(x, xmin, xmax, ymin, ymax) {\n return ymin + (x - xmin) * ((ymax - ymin) / (xmax - xmin));\n }\n\n let domain = toNumberArray(dict.getArray(\"Domain\"));\n let range = toNumberArray(dict.getArray(\"Range\"));\n\n if (!domain || !range) {\n throw new FormatError(\"No domain or range\");\n }\n\n const inputSize = domain.length / 2;\n const outputSize = range.length / 2;\n\n domain = toMultiArray(domain);\n range = toMultiArray(range);\n\n const size = toNumberArray(dict.getArray(\"Size\"));\n const bps = dict.get(\"BitsPerSample\");\n const order = dict.get(\"Order\") || 1;\n if (order !== 1) {\n // No description how cubic spline interpolation works in PDF32000:2008\n // As in poppler, ignoring order, linear interpolation may work as good\n info(\"No support for cubic spline interpolation: \" + order);\n }\n\n let encode = toNumberArray(dict.getArray(\"Encode\"));\n if (!encode) {\n encode = [];\n for (let i = 0; i < inputSize; ++i) {\n encode.push([0, size[i] - 1]);\n }\n } else {\n encode = toMultiArray(encode);\n }\n\n let decode = toNumberArray(dict.getArray(\"Decode\"));\n if (!decode) {\n decode = range;\n } else {\n decode = toMultiArray(decode);\n }\n\n const samples = this.getSampleArray(size, outputSize, bps, fn);\n // const mask = 2 ** bps - 1;\n\n return function constructSampledFn(src, srcOffset, dest, destOffset) {\n // See chapter 3, page 110 of the PDF reference.\n\n // Building the cube vertices: its part and sample index\n // http://rjwagner49.com/Mathematics/Interpolation.pdf\n const cubeVertices = 1 << inputSize;\n const cubeN = new Float64Array(cubeVertices);\n const cubeVertex = new Uint32Array(cubeVertices);\n let i, j;\n for (j = 0; j < cubeVertices; j++) {\n cubeN[j] = 1;\n }\n\n let k = outputSize,\n pos = 1;\n // Map x_i to y_j for 0 <= i < m using the sampled function.\n for (i = 0; i < inputSize; ++i) {\n // x_i' = min(max(x_i, Domain_2i), Domain_2i+1)\n const domain_2i = domain[i][0];\n const domain_2i_1 = domain[i][1];\n const xi = Math.min(\n Math.max(src[srcOffset + i], domain_2i),\n domain_2i_1\n );\n\n // e_i = Interpolate(x_i', Domain_2i, Domain_2i+1,\n // Encode_2i, Encode_2i+1)\n let e = interpolate(\n xi,\n domain_2i,\n domain_2i_1,\n encode[i][0],\n encode[i][1]\n );\n\n // e_i' = min(max(e_i, 0), Size_i - 1)\n const size_i = size[i];\n e = Math.min(Math.max(e, 0), size_i - 1);\n\n // Adjusting the cube: N and vertex sample index\n const e0 = e < size_i - 1 ? Math.floor(e) : e - 1; // e1 = e0 + 1;\n const n0 = e0 + 1 - e; // (e1 - e) / (e1 - e0);\n const n1 = e - e0; // (e - e0) / (e1 - e0);\n const offset0 = e0 * k;\n const offset1 = offset0 + k; // e1 * k\n for (j = 0; j < cubeVertices; j++) {\n if (j & pos) {\n cubeN[j] *= n1;\n cubeVertex[j] += offset1;\n } else {\n cubeN[j] *= n0;\n cubeVertex[j] += offset0;\n }\n }\n\n k *= size_i;\n pos <<= 1;\n }\n\n for (j = 0; j < outputSize; ++j) {\n // Sum all cube vertices' samples portions\n let rj = 0;\n for (i = 0; i < cubeVertices; i++) {\n rj += samples[cubeVertex[i] + j] * cubeN[i];\n }\n\n // r_j' = Interpolate(r_j, 0, 2^BitsPerSample - 1,\n // Decode_2j, Decode_2j+1)\n rj = interpolate(rj, 0, 1, decode[j][0], decode[j][1]);\n\n // y_j = min(max(r_j, range_2j), range_2j+1)\n dest[destOffset + j] = Math.min(Math.max(rj, range[j][0]), range[j][1]);\n }\n };\n }\n\n static constructInterpolated({ xref, isEvalSupported, dict }) {\n const c0 = toNumberArray(dict.getArray(\"C0\")) || [0];\n const c1 = toNumberArray(dict.getArray(\"C1\")) || [1];\n const n = dict.get(\"N\");\n\n const diff = [];\n for (let i = 0, ii = c0.length; i < ii; ++i) {\n diff.push(c1[i] - c0[i]);\n }\n const length = diff.length;\n\n return function constructInterpolatedFn(src, srcOffset, dest, destOffset) {\n const x = n === 1 ? src[srcOffset] : src[srcOffset] ** n;\n\n for (let j = 0; j < length; ++j) {\n dest[destOffset + j] = c0[j] + x * diff[j];\n }\n };\n }\n\n static constructStiched({ xref, isEvalSupported, dict }) {\n const domain = toNumberArray(dict.getArray(\"Domain\"));\n\n if (!domain) {\n throw new FormatError(\"No domain\");\n }\n\n const inputSize = domain.length / 2;\n if (inputSize !== 1) {\n throw new FormatError(\"Bad domain for stiched function\");\n }\n\n const fnRefs = dict.get(\"Functions\");\n const fns = [];\n for (let i = 0, ii = fnRefs.length; i < ii; ++i) {\n fns.push(\n this.parse({ xref, isEvalSupported, fn: xref.fetchIfRef(fnRefs[i]) })\n );\n }\n\n const bounds = toNumberArray(dict.getArray(\"Bounds\"));\n const encode = toNumberArray(dict.getArray(\"Encode\"));\n const tmpBuf = new Float32Array(1);\n\n return function constructStichedFn(src, srcOffset, dest, destOffset) {\n const clip = function constructStichedFromIRClip(v, min, max) {\n if (v > max) {\n v = max;\n } else if (v < min) {\n v = min;\n }\n return v;\n };\n\n // clip to domain\n const v = clip(src[srcOffset], domain[0], domain[1]);\n // calculate which bound the value is in\n const length = bounds.length;\n let i;\n for (i = 0; i < length; ++i) {\n if (v < bounds[i]) {\n break;\n }\n }\n\n // encode value into domain of function\n let dmin = domain[0];\n if (i > 0) {\n dmin = bounds[i - 1];\n }\n let dmax = domain[1];\n if (i < bounds.length) {\n dmax = bounds[i];\n }\n\n const rmin = encode[2 * i];\n const rmax = encode[2 * i + 1];\n\n // Prevent the value from becoming NaN as a result\n // of division by zero (fixes issue6113.pdf).\n tmpBuf[0] =\n dmin === dmax\n ? rmin\n : rmin + ((v - dmin) * (rmax - rmin)) / (dmax - dmin);\n\n // call the appropriate function\n fns[i](tmpBuf, 0, dest, destOffset);\n };\n }\n\n static constructPostScript({ xref, isEvalSupported, fn, dict }) {\n const domain = toNumberArray(dict.getArray(\"Domain\"));\n const range = toNumberArray(dict.getArray(\"Range\"));\n\n if (!domain) {\n throw new FormatError(\"No domain.\");\n }\n\n if (!range) {\n throw new FormatError(\"No range.\");\n }\n\n const lexer = new PostScriptLexer(fn);\n const parser = new PostScriptParser(lexer);\n const code = parser.parse();\n\n if (isEvalSupported && FeatureTest.isEvalSupported) {\n const compiled = new PostScriptCompiler().compile(code, domain, range);\n if (compiled) {\n // Compiled function consists of simple expressions such as addition,\n // subtraction, Math.max, and also contains 'var' and 'return'\n // statements. See the generation in the PostScriptCompiler below.\n // eslint-disable-next-line no-new-func\n return new Function(\"src\", \"srcOffset\", \"dest\", \"destOffset\", compiled);\n }\n }\n info(\"Unable to compile PS function\");\n\n const numOutputs = range.length >> 1;\n const numInputs = domain.length >> 1;\n const evaluator = new PostScriptEvaluator(code);\n // Cache the values for a big speed up, the cache size is limited though\n // since the number of possible values can be huge from a PS function.\n const cache = Object.create(null);\n // The MAX_CACHE_SIZE is set to ~4x the maximum number of distinct values\n // seen in our tests.\n const MAX_CACHE_SIZE = 2048 * 4;\n let cache_available = MAX_CACHE_SIZE;\n const tmpBuf = new Float32Array(numInputs);\n\n return function constructPostScriptFn(src, srcOffset, dest, destOffset) {\n let i, value;\n let key = \"\";\n const input = tmpBuf;\n for (i = 0; i < numInputs; i++) {\n value = src[srcOffset + i];\n input[i] = value;\n key += value + \"_\";\n }\n\n const cachedValue = cache[key];\n if (cachedValue !== undefined) {\n dest.set(cachedValue, destOffset);\n return;\n }\n\n const output = new Float32Array(numOutputs);\n const stack = evaluator.execute(input);\n const stackIndex = stack.length - numOutputs;\n for (i = 0; i < numOutputs; i++) {\n value = stack[stackIndex + i];\n let bound = range[i * 2];\n if (value < bound) {\n value = bound;\n } else {\n bound = range[i * 2 + 1];\n if (value > bound) {\n value = bound;\n }\n }\n output[i] = value;\n }\n if (cache_available > 0) {\n cache_available--;\n cache[key] = output;\n }\n dest.set(output, destOffset);\n };\n }\n}\n\nfunction isPDFFunction(v) {\n let fnDict;\n if (typeof v !== \"object\") {\n return false;\n } else if (v instanceof Dict) {\n fnDict = v;\n } else if (v instanceof BaseStream) {\n fnDict = v.dict;\n } else {\n return false;\n }\n return fnDict.has(\"FunctionType\");\n}\n\nclass PostScriptStack {\n static get MAX_STACK_SIZE() {\n return shadow(this, \"MAX_STACK_SIZE\", 100);\n }\n\n constructor(initialStack) {\n this.stack = !initialStack\n ? []\n : Array.prototype.slice.call(initialStack, 0);\n }\n\n push(value) {\n if (this.stack.length >= PostScriptStack.MAX_STACK_SIZE) {\n throw new Error(\"PostScript function stack overflow.\");\n }\n this.stack.push(value);\n }\n\n pop() {\n if (this.stack.length <= 0) {\n throw new Error(\"PostScript function stack underflow.\");\n }\n return this.stack.pop();\n }\n\n copy(n) {\n if (this.stack.length + n >= PostScriptStack.MAX_STACK_SIZE) {\n throw new Error(\"PostScript function stack overflow.\");\n }\n const stack = this.stack;\n for (let i = stack.length - n, j = n - 1; j >= 0; j--, i++) {\n stack.push(stack[i]);\n }\n }\n\n index(n) {\n this.push(this.stack[this.stack.length - n - 1]);\n }\n\n // rotate the last n stack elements p times\n roll(n, p) {\n const stack = this.stack;\n const l = stack.length - n;\n const r = stack.length - 1;\n const c = l + (p - Math.floor(p / n) * n);\n\n for (let i = l, j = r; i < j; i++, j--) {\n const t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n for (let i = l, j = c - 1; i < j; i++, j--) {\n const t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n for (let i = c, j = r; i < j; i++, j--) {\n const t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n }\n}\n\nclass PostScriptEvaluator {\n constructor(operators) {\n this.operators = operators;\n }\n\n execute(initialStack) {\n const stack = new PostScriptStack(initialStack);\n let counter = 0;\n const operators = this.operators;\n const length = operators.length;\n let operator, a, b;\n while (counter < length) {\n operator = operators[counter++];\n if (typeof operator === \"number\") {\n // Operator is really an operand and should be pushed to the stack.\n stack.push(operator);\n continue;\n }\n switch (operator) {\n // non standard ps operators\n case \"jz\": // jump if false\n b = stack.pop();\n a = stack.pop();\n if (!a) {\n counter = b;\n }\n break;\n case \"j\": // jump\n a = stack.pop();\n counter = a;\n break;\n\n // all ps operators in alphabetical order (excluding if/ifelse)\n case \"abs\":\n a = stack.pop();\n stack.push(Math.abs(a));\n break;\n case \"add\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a + b);\n break;\n case \"and\":\n b = stack.pop();\n a = stack.pop();\n if (typeof a === \"boolean\" && typeof b === \"boolean\") {\n stack.push(a && b);\n } else {\n stack.push(a & b);\n }\n break;\n case \"atan\":\n a = stack.pop();\n stack.push(Math.atan(a));\n break;\n case \"bitshift\":\n b = stack.pop();\n a = stack.pop();\n if (a > 0) {\n stack.push(a << b);\n } else {\n stack.push(a >> b);\n }\n break;\n case \"ceiling\":\n a = stack.pop();\n stack.push(Math.ceil(a));\n break;\n case \"copy\":\n a = stack.pop();\n stack.copy(a);\n break;\n case \"cos\":\n a = stack.pop();\n stack.push(Math.cos(a));\n break;\n case \"cvi\":\n a = stack.pop() | 0;\n stack.push(a);\n break;\n case \"cvr\":\n // noop\n break;\n case \"div\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a / b);\n break;\n case \"dup\":\n stack.copy(1);\n break;\n case \"eq\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a === b);\n break;\n case \"exch\":\n stack.roll(2, 1);\n break;\n case \"exp\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a ** b);\n break;\n case \"false\":\n stack.push(false);\n break;\n case \"floor\":\n a = stack.pop();\n stack.push(Math.floor(a));\n break;\n case \"ge\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a >= b);\n break;\n case \"gt\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a > b);\n break;\n case \"idiv\":\n b = stack.pop();\n a = stack.pop();\n stack.push((a / b) | 0);\n break;\n case \"index\":\n a = stack.pop();\n stack.index(a);\n break;\n case \"le\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a <= b);\n break;\n case \"ln\":\n a = stack.pop();\n stack.push(Math.log(a));\n break;\n case \"log\":\n a = stack.pop();\n stack.push(Math.log(a) / Math.LN10);\n break;\n case \"lt\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a < b);\n break;\n case \"mod\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a % b);\n break;\n case \"mul\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a * b);\n break;\n case \"ne\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a !== b);\n break;\n case \"neg\":\n a = stack.pop();\n stack.push(-a);\n break;\n case \"not\":\n a = stack.pop();\n if (typeof a === \"boolean\") {\n stack.push(!a);\n } else {\n stack.push(~a);\n }\n break;\n case \"or\":\n b = stack.pop();\n a = stack.pop();\n if (typeof a === \"boolean\" && typeof b === \"boolean\") {\n stack.push(a || b);\n } else {\n stack.push(a | b);\n }\n break;\n case \"pop\":\n stack.pop();\n break;\n case \"roll\":\n b = stack.pop();\n a = stack.pop();\n stack.roll(a, b);\n break;\n case \"round\":\n a = stack.pop();\n stack.push(Math.round(a));\n break;\n case \"sin\":\n a = stack.pop();\n stack.push(Math.sin(a));\n break;\n case \"sqrt\":\n a = stack.pop();\n stack.push(Math.sqrt(a));\n break;\n case \"sub\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a - b);\n break;\n case \"true\":\n stack.push(true);\n break;\n case \"truncate\":\n a = stack.pop();\n a = a < 0 ? Math.ceil(a) : Math.floor(a);\n stack.push(a);\n break;\n case \"xor\":\n b = stack.pop();\n a = stack.pop();\n if (typeof a === \"boolean\" && typeof b === \"boolean\") {\n stack.push(a !== b);\n } else {\n stack.push(a ^ b);\n }\n break;\n default:\n throw new FormatError(`Unknown operator ${operator}`);\n }\n }\n return stack.stack;\n }\n}\n\n// Most of the PDFs functions consist of simple operations such as:\n// roll, exch, sub, cvr, pop, index, dup, mul, if, gt, add.\n//\n// We can compile most of such programs, and at the same moment, we can\n// optimize some expressions using basic math properties. Keeping track of\n// min/max values will allow us to avoid extra Math.min/Math.max calls.\nconst PostScriptCompiler = (function PostScriptCompilerClosure() {\n class AstNode {\n constructor(type) {\n this.type = type;\n }\n\n visit(visitor) {\n unreachable(\"abstract method\");\n }\n }\n\n class AstArgument extends AstNode {\n constructor(index, min, max) {\n super(\"args\");\n this.index = index;\n this.min = min;\n this.max = max;\n }\n\n visit(visitor) {\n visitor.visitArgument(this);\n }\n }\n\n class AstLiteral extends AstNode {\n constructor(number) {\n super(\"literal\");\n this.number = number;\n this.min = number;\n this.max = number;\n }\n\n visit(visitor) {\n visitor.visitLiteral(this);\n }\n }\n\n class AstBinaryOperation extends AstNode {\n constructor(op, arg1, arg2, min, max) {\n super(\"binary\");\n this.op = op;\n this.arg1 = arg1;\n this.arg2 = arg2;\n this.min = min;\n this.max = max;\n }\n\n visit(visitor) {\n visitor.visitBinaryOperation(this);\n }\n }\n\n class AstMin extends AstNode {\n constructor(arg, max) {\n super(\"max\");\n this.arg = arg;\n this.min = arg.min;\n this.max = max;\n }\n\n visit(visitor) {\n visitor.visitMin(this);\n }\n }\n\n class AstVariable extends AstNode {\n constructor(index, min, max) {\n super(\"var\");\n this.index = index;\n this.min = min;\n this.max = max;\n }\n\n visit(visitor) {\n visitor.visitVariable(this);\n }\n }\n\n class AstVariableDefinition extends AstNode {\n constructor(variable, arg) {\n super(\"definition\");\n this.variable = variable;\n this.arg = arg;\n }\n\n visit(visitor) {\n visitor.visitVariableDefinition(this);\n }\n }\n\n class ExpressionBuilderVisitor {\n constructor() {\n this.parts = [];\n }\n\n visitArgument(arg) {\n this.parts.push(\n \"Math.max(\",\n arg.min,\n \", Math.min(\",\n arg.max,\n \", src[srcOffset + \",\n arg.index,\n \"]))\"\n );\n }\n\n visitVariable(variable) {\n this.parts.push(\"v\", variable.index);\n }\n\n visitLiteral(literal) {\n this.parts.push(literal.number);\n }\n\n visitBinaryOperation(operation) {\n this.parts.push(\"(\");\n operation.arg1.visit(this);\n this.parts.push(\" \", operation.op, \" \");\n operation.arg2.visit(this);\n this.parts.push(\")\");\n }\n\n visitVariableDefinition(definition) {\n this.parts.push(\"var \");\n definition.variable.visit(this);\n this.parts.push(\" = \");\n definition.arg.visit(this);\n this.parts.push(\";\");\n }\n\n visitMin(max) {\n this.parts.push(\"Math.min(\");\n max.arg.visit(this);\n this.parts.push(\", \", max.max, \")\");\n }\n\n toString() {\n return this.parts.join(\"\");\n }\n }\n\n function buildAddOperation(num1, num2) {\n if (num2.type === \"literal\" && num2.number === 0) {\n // optimization: second operand is 0\n return num1;\n }\n if (num1.type === \"literal\" && num1.number === 0) {\n // optimization: first operand is 0\n return num2;\n }\n if (num2.type === \"literal\" && num1.type === \"literal\") {\n // optimization: operands operand are literals\n return new AstLiteral(num1.number + num2.number);\n }\n return new AstBinaryOperation(\n \"+\",\n num1,\n num2,\n num1.min + num2.min,\n num1.max + num2.max\n );\n }\n\n function buildMulOperation(num1, num2) {\n if (num2.type === \"literal\") {\n // optimization: second operands is a literal...\n if (num2.number === 0) {\n return new AstLiteral(0); // and it's 0\n } else if (num2.number === 1) {\n return num1; // and it's 1\n } else if (num1.type === \"literal\") {\n // ... and first operands is a literal too\n return new AstLiteral(num1.number * num2.number);\n }\n }\n if (num1.type === \"literal\") {\n // optimization: first operands is a literal...\n if (num1.number === 0) {\n return new AstLiteral(0); // and it's 0\n } else if (num1.number === 1) {\n return num2; // and it's 1\n }\n }\n const min = Math.min(\n num1.min * num2.min,\n num1.min * num2.max,\n num1.max * num2.min,\n num1.max * num2.max\n );\n const max = Math.max(\n num1.min * num2.min,\n num1.min * num2.max,\n num1.max * num2.min,\n num1.max * num2.max\n );\n return new AstBinaryOperation(\"*\", num1, num2, min, max);\n }\n\n function buildSubOperation(num1, num2) {\n if (num2.type === \"literal\") {\n // optimization: second operands is a literal...\n if (num2.number === 0) {\n return num1; // ... and it's 0\n } else if (num1.type === \"literal\") {\n // ... and first operands is a literal too\n return new AstLiteral(num1.number - num2.number);\n }\n }\n if (\n num2.type === \"binary\" &&\n num2.op === \"-\" &&\n num1.type === \"literal\" &&\n num1.number === 1 &&\n num2.arg1.type === \"literal\" &&\n num2.arg1.number === 1\n ) {\n // optimization for case: 1 - (1 - x)\n return num2.arg2;\n }\n return new AstBinaryOperation(\n \"-\",\n num1,\n num2,\n num1.min - num2.max,\n num1.max - num2.min\n );\n }\n\n function buildMinOperation(num1, max) {\n if (num1.min >= max) {\n // optimization: num1 min value is not less than required max\n return new AstLiteral(max); // just returning max\n } else if (num1.max <= max) {\n // optimization: num1 max value is not greater than required max\n return num1; // just returning an argument\n }\n return new AstMin(num1, max);\n }\n\n // eslint-disable-next-line no-shadow\n class PostScriptCompiler {\n compile(code, domain, range) {\n const stack = [];\n const instructions = [];\n const inputSize = domain.length >> 1,\n outputSize = range.length >> 1;\n let lastRegister = 0;\n let n, j;\n let num1, num2, ast1, ast2, tmpVar, item;\n for (let i = 0; i < inputSize; i++) {\n stack.push(new AstArgument(i, domain[i * 2], domain[i * 2 + 1]));\n }\n\n for (let i = 0, ii = code.length; i < ii; i++) {\n item = code[i];\n if (typeof item === \"number\") {\n stack.push(new AstLiteral(item));\n continue;\n }\n\n switch (item) {\n case \"add\":\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildAddOperation(num1, num2));\n break;\n case \"cvr\":\n if (stack.length < 1) {\n return null;\n }\n break;\n case \"mul\":\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildMulOperation(num1, num2));\n break;\n case \"sub\":\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildSubOperation(num1, num2));\n break;\n case \"exch\":\n if (stack.length < 2) {\n return null;\n }\n ast1 = stack.pop();\n ast2 = stack.pop();\n stack.push(ast1, ast2);\n break;\n case \"pop\":\n if (stack.length < 1) {\n return null;\n }\n stack.pop();\n break;\n case \"index\":\n if (stack.length < 1) {\n return null;\n }\n num1 = stack.pop();\n if (num1.type !== \"literal\") {\n return null;\n }\n n = num1.number;\n if (n < 0 || !Number.isInteger(n) || stack.length < n) {\n return null;\n }\n ast1 = stack[stack.length - n - 1];\n if (ast1.type === \"literal\" || ast1.type === \"var\") {\n stack.push(ast1);\n break;\n }\n tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n stack[stack.length - n - 1] = tmpVar;\n stack.push(tmpVar);\n instructions.push(new AstVariableDefinition(tmpVar, ast1));\n break;\n case \"dup\":\n if (stack.length < 1) {\n return null;\n }\n if (\n typeof code[i + 1] === \"number\" &&\n code[i + 2] === \"gt\" &&\n code[i + 3] === i + 7 &&\n code[i + 4] === \"jz\" &&\n code[i + 5] === \"pop\" &&\n code[i + 6] === code[i + 1]\n ) {\n // special case of the commands sequence for the min operation\n num1 = stack.pop();\n stack.push(buildMinOperation(num1, code[i + 1]));\n i += 6;\n break;\n }\n ast1 = stack[stack.length - 1];\n if (ast1.type === \"literal\" || ast1.type === \"var\") {\n // we don't have to save into intermediate variable a literal or\n // variable.\n stack.push(ast1);\n break;\n }\n tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n stack[stack.length - 1] = tmpVar;\n stack.push(tmpVar);\n instructions.push(new AstVariableDefinition(tmpVar, ast1));\n break;\n case \"roll\":\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n if (num2.type !== \"literal\" || num1.type !== \"literal\") {\n // both roll operands must be numbers\n return null;\n }\n j = num2.number;\n n = num1.number;\n if (\n n <= 0 ||\n !Number.isInteger(n) ||\n !Number.isInteger(j) ||\n stack.length < n\n ) {\n // ... and integers\n return null;\n }\n j = ((j % n) + n) % n;\n if (j === 0) {\n break; // just skipping -- there are nothing to rotate\n }\n Array.prototype.push.apply(\n stack,\n stack.splice(stack.length - n, n - j)\n );\n break;\n default:\n return null; // unsupported operator\n }\n }\n\n if (stack.length !== outputSize) {\n return null;\n }\n\n const result = [];\n for (const instruction of instructions) {\n const statementBuilder = new ExpressionBuilderVisitor();\n instruction.visit(statementBuilder);\n result.push(statementBuilder.toString());\n }\n for (let i = 0, ii = stack.length; i < ii; i++) {\n const expr = stack[i],\n statementBuilder = new ExpressionBuilderVisitor();\n expr.visit(statementBuilder);\n const min = range[i * 2],\n max = range[i * 2 + 1];\n const out = [statementBuilder.toString()];\n if (min > expr.min) {\n out.unshift(\"Math.max(\", min, \", \");\n out.push(\")\");\n }\n if (max < expr.max) {\n out.unshift(\"Math.min(\", max, \", \");\n out.push(\")\");\n }\n out.unshift(\"dest[destOffset + \", i, \"] = \");\n out.push(\";\");\n result.push(out.join(\"\"));\n }\n return result.join(\"\\n\");\n }\n }\n\n return PostScriptCompiler;\n})();\n\nexport {\n isPDFFunction,\n PDFFunctionFactory,\n PostScriptCompiler,\n PostScriptEvaluator,\n};\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FormatError, shadow } from \"../shared/util.js\";\nimport { EOF } from \"./primitives.js\";\nimport { isWhiteSpace } from \"./core_utils.js\";\n\nclass PostScriptParser {\n constructor(lexer) {\n this.lexer = lexer;\n this.operators = [];\n this.token = null;\n this.prev = null;\n }\n\n nextToken() {\n this.prev = this.token;\n this.token = this.lexer.getToken();\n }\n\n accept(type) {\n if (this.token.type === type) {\n this.nextToken();\n return true;\n }\n return false;\n }\n\n expect(type) {\n if (this.accept(type)) {\n return true;\n }\n throw new FormatError(\n `Unexpected symbol: found ${this.token.type} expected ${type}.`\n );\n }\n\n parse() {\n this.nextToken();\n this.expect(PostScriptTokenTypes.LBRACE);\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n return this.operators;\n }\n\n parseBlock() {\n while (true) {\n if (this.accept(PostScriptTokenTypes.NUMBER)) {\n this.operators.push(this.prev.value);\n } else if (this.accept(PostScriptTokenTypes.OPERATOR)) {\n this.operators.push(this.prev.value);\n } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n this.parseCondition();\n } else {\n return;\n }\n }\n }\n\n parseCondition() {\n // Add two place holders that will be updated later\n const conditionLocation = this.operators.length;\n this.operators.push(null, null);\n\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n if (this.accept(PostScriptTokenTypes.IF)) {\n // The true block is right after the 'if' so it just falls through on true\n // else it jumps and skips the true block.\n this.operators[conditionLocation] = this.operators.length;\n this.operators[conditionLocation + 1] = \"jz\";\n } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n const jumpLocation = this.operators.length;\n this.operators.push(null, null);\n const endOfTrue = this.operators.length;\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n this.expect(PostScriptTokenTypes.IFELSE);\n // The jump is added at the end of the true block to skip the false block.\n this.operators[jumpLocation] = this.operators.length;\n this.operators[jumpLocation + 1] = \"j\";\n\n this.operators[conditionLocation] = endOfTrue;\n this.operators[conditionLocation + 1] = \"jz\";\n } else {\n throw new FormatError(\"PS Function: error parsing conditional.\");\n }\n }\n}\n\nconst PostScriptTokenTypes = {\n LBRACE: 0,\n RBRACE: 1,\n NUMBER: 2,\n OPERATOR: 3,\n IF: 4,\n IFELSE: 5,\n};\n\nclass PostScriptToken {\n static get opCache() {\n return shadow(this, \"opCache\", Object.create(null));\n }\n\n constructor(type, value) {\n this.type = type;\n this.value = value;\n }\n\n static getOperator(op) {\n const opValue = PostScriptToken.opCache[op];\n if (opValue) {\n return opValue;\n }\n return (PostScriptToken.opCache[op] = new PostScriptToken(\n PostScriptTokenTypes.OPERATOR,\n op\n ));\n }\n\n static get LBRACE() {\n return shadow(\n this,\n \"LBRACE\",\n new PostScriptToken(PostScriptTokenTypes.LBRACE, \"{\")\n );\n }\n\n static get RBRACE() {\n return shadow(\n this,\n \"RBRACE\",\n new PostScriptToken(PostScriptTokenTypes.RBRACE, \"}\")\n );\n }\n\n static get IF() {\n return shadow(\n this,\n \"IF\",\n new PostScriptToken(PostScriptTokenTypes.IF, \"IF\")\n );\n }\n\n static get IFELSE() {\n return shadow(\n this,\n \"IFELSE\",\n new PostScriptToken(PostScriptTokenTypes.IFELSE, \"IFELSE\")\n );\n }\n}\n\nclass PostScriptLexer {\n constructor(stream) {\n this.stream = stream;\n this.nextChar();\n\n this.strBuf = [];\n }\n\n nextChar() {\n return (this.currentChar = this.stream.getByte());\n }\n\n getToken() {\n let comment = false;\n let ch = this.currentChar;\n\n // skip comments\n while (true) {\n if (ch < 0) {\n return EOF;\n }\n\n if (comment) {\n if (ch === 0x0a || ch === 0x0d) {\n comment = false;\n }\n } else if (ch === /* '%' = */ 0x25) {\n comment = true;\n } else if (!isWhiteSpace(ch)) {\n break;\n }\n ch = this.nextChar();\n }\n switch (ch | 0) {\n case 0x30: // '0'\n case 0x31: // '1'\n case 0x32: // '2'\n case 0x33: // '3'\n case 0x34: // '4'\n case 0x35: // '5'\n case 0x36: // '6'\n case 0x37: // '7'\n case 0x38: // '8'\n case 0x39: // '9'\n case 0x2b: // '+'\n case 0x2d: // '-'\n case 0x2e: // '.'\n return new PostScriptToken(\n PostScriptTokenTypes.NUMBER,\n this.getNumber()\n );\n case 0x7b: // '{'\n this.nextChar();\n return PostScriptToken.LBRACE;\n case 0x7d: // '}'\n this.nextChar();\n return PostScriptToken.RBRACE;\n }\n // operator\n const strBuf = this.strBuf;\n strBuf.length = 0;\n strBuf[0] = String.fromCharCode(ch);\n\n while (\n (ch = this.nextChar()) >= 0 &&\n ((ch >= /* 'A' = */ 0x41 && ch <= /* 'Z' = */ 0x5a) ||\n (ch >= /* 'a' = */ 0x61 && ch <= /* 'z' = */ 0x7a))\n ) {\n strBuf.push(String.fromCharCode(ch));\n }\n const str = strBuf.join(\"\");\n switch (str.toLowerCase()) {\n case \"if\":\n return PostScriptToken.IF;\n case \"ifelse\":\n return PostScriptToken.IFELSE;\n default:\n return PostScriptToken.getOperator(str);\n }\n }\n\n getNumber() {\n let ch = this.currentChar;\n const strBuf = this.strBuf;\n strBuf.length = 0;\n strBuf[0] = String.fromCharCode(ch);\n\n while ((ch = this.nextChar()) >= 0) {\n if (\n (ch >= /* '0' = */ 0x30 && ch <= /* '9' = */ 0x39) ||\n ch === /* '-' = */ 0x2d ||\n ch === /* '.' = */ 0x2e\n ) {\n strBuf.push(String.fromCharCode(ch));\n } else {\n break;\n }\n }\n const value = parseFloat(strBuf.join(\"\"));\n if (isNaN(value)) {\n throw new FormatError(`Invalid floating point number: ${value}`);\n }\n return value;\n }\n}\n\nexport { PostScriptLexer, PostScriptParser };\n","/* Copyright 2019 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, shadow, unreachable, warn } from \"../shared/util.js\";\nimport { RefSetCache } from \"./primitives.js\";\n\nclass BaseLocalCache {\n constructor(options) {\n if (this.constructor === BaseLocalCache) {\n unreachable(\"Cannot initialize BaseLocalCache.\");\n }\n this._onlyRefs = (options && options.onlyRefs) === true;\n\n if (!this._onlyRefs) {\n this._nameRefMap = new Map();\n this._imageMap = new Map();\n }\n this._imageCache = new RefSetCache();\n }\n\n getByName(name) {\n if (this._onlyRefs) {\n unreachable(\"Should not call `getByName` method.\");\n }\n const ref = this._nameRefMap.get(name);\n if (ref) {\n return this.getByRef(ref);\n }\n return this._imageMap.get(name) || null;\n }\n\n getByRef(ref) {\n return this._imageCache.get(ref) || null;\n }\n\n set(name, ref, data) {\n unreachable(\"Abstract method `set` called.\");\n }\n}\n\nclass LocalImageCache extends BaseLocalCache {\n set(name, ref = null, data) {\n if (typeof name !== \"string\") {\n throw new Error('LocalImageCache.set - expected \"name\" argument.');\n }\n if (ref) {\n if (this._imageCache.has(ref)) {\n return;\n }\n this._nameRefMap.set(name, ref);\n this._imageCache.put(ref, data);\n return;\n }\n // name\n if (this._imageMap.has(name)) {\n return;\n }\n this._imageMap.set(name, data);\n }\n}\n\nclass LocalColorSpaceCache extends BaseLocalCache {\n set(name = null, ref = null, data) {\n if (typeof name !== \"string\" && !ref) {\n throw new Error(\n 'LocalColorSpaceCache.set - expected \"name\" and/or \"ref\" argument.'\n );\n }\n if (ref) {\n if (this._imageCache.has(ref)) {\n return;\n }\n if (name !== null) {\n // Optional when `ref` is defined.\n this._nameRefMap.set(name, ref);\n }\n this._imageCache.put(ref, data);\n return;\n }\n // name\n if (this._imageMap.has(name)) {\n return;\n }\n this._imageMap.set(name, data);\n }\n}\n\nclass LocalFunctionCache extends BaseLocalCache {\n constructor(options) {\n super({ onlyRefs: true });\n }\n\n set(name = null, ref, data) {\n if (!ref) {\n throw new Error('LocalFunctionCache.set - expected \"ref\" argument.');\n }\n if (this._imageCache.has(ref)) {\n return;\n }\n this._imageCache.put(ref, data);\n }\n}\n\nclass LocalGStateCache extends BaseLocalCache {\n set(name, ref = null, data) {\n if (typeof name !== \"string\") {\n throw new Error('LocalGStateCache.set - expected \"name\" argument.');\n }\n if (ref) {\n if (this._imageCache.has(ref)) {\n return;\n }\n this._nameRefMap.set(name, ref);\n this._imageCache.put(ref, data);\n return;\n }\n // name\n if (this._imageMap.has(name)) {\n return;\n }\n this._imageMap.set(name, data);\n }\n}\n\nclass LocalTilingPatternCache extends BaseLocalCache {\n constructor(options) {\n super({ onlyRefs: true });\n }\n\n set(name = null, ref, data) {\n if (!ref) {\n throw new Error('LocalTilingPatternCache.set - expected \"ref\" argument.');\n }\n if (this._imageCache.has(ref)) {\n return;\n }\n this._imageCache.put(ref, data);\n }\n}\n\nclass GlobalImageCache {\n static get NUM_PAGES_THRESHOLD() {\n return shadow(this, \"NUM_PAGES_THRESHOLD\", 2);\n }\n\n static get MIN_IMAGES_TO_CACHE() {\n return shadow(this, \"MIN_IMAGES_TO_CACHE\", 10);\n }\n\n static get MAX_BYTE_SIZE() {\n return shadow(this, \"MAX_BYTE_SIZE\", /* Forty megabytes = */ 40e6);\n }\n\n constructor() {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n GlobalImageCache.NUM_PAGES_THRESHOLD > 1,\n \"GlobalImageCache - invalid NUM_PAGES_THRESHOLD constant.\"\n );\n }\n this._refCache = new RefSetCache();\n this._imageCache = new RefSetCache();\n }\n\n get _byteSize() {\n let byteSize = 0;\n for (const imageData of this._imageCache) {\n byteSize += imageData.byteSize;\n }\n return byteSize;\n }\n\n get _cacheLimitReached() {\n if (this._imageCache.size < GlobalImageCache.MIN_IMAGES_TO_CACHE) {\n return false;\n }\n if (this._byteSize < GlobalImageCache.MAX_BYTE_SIZE) {\n return false;\n }\n return true;\n }\n\n shouldCache(ref, pageIndex) {\n const pageIndexSet = this._refCache.get(ref);\n const numPages = pageIndexSet\n ? pageIndexSet.size + (pageIndexSet.has(pageIndex) ? 0 : 1)\n : 1;\n\n if (numPages < GlobalImageCache.NUM_PAGES_THRESHOLD) {\n return false;\n }\n if (!this._imageCache.has(ref) && this._cacheLimitReached) {\n return false;\n }\n return true;\n }\n\n addPageIndex(ref, pageIndex) {\n let pageIndexSet = this._refCache.get(ref);\n if (!pageIndexSet) {\n pageIndexSet = new Set();\n this._refCache.put(ref, pageIndexSet);\n }\n pageIndexSet.add(pageIndex);\n }\n\n /**\n * PLEASE NOTE: Must be called *after* the `setData` method.\n */\n addByteSize(ref, byteSize) {\n const imageData = this._imageCache.get(ref);\n if (!imageData) {\n return; // The image data isn't cached (the limit was reached).\n }\n if (imageData.byteSize) {\n return; // The byte-size has already been set.\n }\n imageData.byteSize = byteSize;\n }\n\n getData(ref, pageIndex) {\n const pageIndexSet = this._refCache.get(ref);\n if (!pageIndexSet) {\n return null;\n }\n if (pageIndexSet.size < GlobalImageCache.NUM_PAGES_THRESHOLD) {\n return null;\n }\n const imageData = this._imageCache.get(ref);\n if (!imageData) {\n return null;\n }\n // Ensure that we keep track of all pages containing the image reference.\n pageIndexSet.add(pageIndex);\n\n return imageData;\n }\n\n setData(ref, data) {\n if (!this._refCache.has(ref)) {\n throw new Error(\n 'GlobalImageCache.setData - expected \"addPageIndex\" to have been called.'\n );\n }\n if (this._imageCache.has(ref)) {\n return;\n }\n if (this._cacheLimitReached) {\n warn(\"GlobalImageCache.setData - cache limit reached.\");\n return;\n }\n this._imageCache.put(ref, data);\n }\n\n clear(onlyData = false) {\n if (!onlyData) {\n this._refCache.clear();\n }\n this._imageCache.clear();\n }\n}\n\nexport {\n GlobalImageCache,\n LocalColorSpaceCache,\n LocalFunctionCache,\n LocalGStateCache,\n LocalImageCache,\n LocalTilingPatternCache,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { warn } from \"../shared/util.js\";\n\n// Character types for symbols from 0000 to 00FF.\n// Source: ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData.txt\n// prettier-ignore\nconst baseTypes = [\n \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"S\", \"B\", \"S\",\n \"WS\", \"B\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\",\n \"BN\", \"BN\", \"BN\", \"BN\", \"B\", \"B\", \"B\", \"S\", \"WS\", \"ON\", \"ON\", \"ET\",\n \"ET\", \"ET\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ES\", \"CS\", \"ES\", \"CS\", \"CS\",\n \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"CS\", \"ON\",\n \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\",\n \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"B\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\",\n \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\",\n \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"CS\", \"ON\", \"ET\",\n \"ET\", \"ET\", \"ET\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"ON\", \"ON\", \"BN\", \"ON\",\n \"ON\", \"ET\", \"ET\", \"EN\", \"EN\", \"ON\", \"L\", \"ON\", \"ON\", \"ON\", \"EN\", \"L\",\n \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\"\n];\n\n// Character types for symbols from 0600 to 06FF.\n// Source: ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData.txt\n// Note that 061D does not exist in the Unicode standard (see\n// http://unicode.org/charts/PDF/U0600.pdf), so we replace it with an\n// empty string and issue a warning if we encounter this character. The\n// empty string is required to properly index the items after it.\n// prettier-ignore\nconst arabicTypes = [\n \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"ON\", \"ON\", \"AL\", \"ET\", \"ET\", \"AL\",\n \"CS\", \"AL\", \"ON\", \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\",\n \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\",\n \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\",\n \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\",\n \"AN\", \"AN\", \"AN\", \"ET\", \"AN\", \"AN\", \"AL\", \"AL\", \"AL\", \"NSM\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AN\",\n \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"NSM\", \"NSM\",\n \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"EN\", \"EN\", \"EN\", \"EN\",\n \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\"\n];\n\nfunction isOdd(i) {\n return (i & 1) !== 0;\n}\n\nfunction isEven(i) {\n return (i & 1) === 0;\n}\n\nfunction findUnequal(arr, start, value) {\n let j, jj;\n for (j = start, jj = arr.length; j < jj; ++j) {\n if (arr[j] !== value) {\n return j;\n }\n }\n return j;\n}\n\nfunction setValues(arr, start, end, value) {\n for (let j = start; j < end; ++j) {\n arr[j] = value;\n }\n}\n\nfunction reverseValues(arr, start, end) {\n for (let i = start, j = end - 1; i < j; ++i, --j) {\n const temp = arr[i];\n arr[i] = arr[j];\n arr[j] = temp;\n }\n}\n\nfunction createBidiText(str, isLTR, vertical = false) {\n let dir = \"ltr\";\n if (vertical) {\n dir = \"ttb\";\n } else if (!isLTR) {\n dir = \"rtl\";\n }\n return { str, dir };\n}\n\n// These are used in bidi(), which is called frequently. We re-use them on\n// each call to avoid unnecessary allocations.\nconst chars = [];\nconst types = [];\n\nfunction bidi(str, startLevel = -1, vertical = false) {\n let isLTR = true;\n const strLength = str.length;\n if (strLength === 0 || vertical) {\n return createBidiText(str, isLTR, vertical);\n }\n\n // Get types and fill arrays\n chars.length = strLength;\n types.length = strLength;\n let numBidi = 0;\n\n let i, ii;\n for (i = 0; i < strLength; ++i) {\n chars[i] = str.charAt(i);\n\n const charCode = str.charCodeAt(i);\n let charType = \"L\";\n if (charCode <= 0x00ff) {\n charType = baseTypes[charCode];\n } else if (0x0590 <= charCode && charCode <= 0x05f4) {\n charType = \"R\";\n } else if (0x0600 <= charCode && charCode <= 0x06ff) {\n charType = arabicTypes[charCode & 0xff];\n if (!charType) {\n warn(\"Bidi: invalid Unicode character \" + charCode.toString(16));\n }\n } else if (0x0700 <= charCode && charCode <= 0x08ac) {\n charType = \"AL\";\n }\n if (charType === \"R\" || charType === \"AL\" || charType === \"AN\") {\n numBidi++;\n }\n types[i] = charType;\n }\n\n // Detect the bidi method\n // - If there are no rtl characters then no bidi needed\n // - If less than 30% chars are rtl then string is primarily ltr,\n // unless the string is very short.\n // - If more than 30% chars are rtl then string is primarily rtl\n if (numBidi === 0) {\n isLTR = true;\n return createBidiText(str, isLTR);\n }\n\n if (startLevel === -1) {\n if (numBidi / strLength < 0.3 && strLength > 4) {\n isLTR = true;\n startLevel = 0;\n } else {\n isLTR = false;\n startLevel = 1;\n }\n }\n\n const levels = [];\n for (i = 0; i < strLength; ++i) {\n levels[i] = startLevel;\n }\n\n /*\n X1-X10: skip most of this, since we are NOT doing the embeddings.\n */\n const e = isOdd(startLevel) ? \"R\" : \"L\";\n const sor = e;\n const eor = sor;\n\n /*\n W1. Examine each non-spacing mark (NSM) in the level run, and change the\n type of the NSM to the type of the previous character. If the NSM is at the\n start of the level run, it will get the type of sor.\n */\n let lastType = sor;\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"NSM\") {\n types[i] = lastType;\n } else {\n lastType = types[i];\n }\n }\n\n /*\n W2. Search backwards from each instance of a European number until the\n first strong type (R, L, AL, or sor) is found. If an AL is found, change\n the type of the European number to Arabic number.\n */\n lastType = sor;\n let t;\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === \"EN\") {\n types[i] = lastType === \"AL\" ? \"AN\" : \"EN\";\n } else if (t === \"R\" || t === \"L\" || t === \"AL\") {\n lastType = t;\n }\n }\n\n /*\n W3. Change all ALs to R.\n */\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === \"AL\") {\n types[i] = \"R\";\n }\n }\n\n /*\n W4. A single European separator between two European numbers changes to a\n European number. A single common separator between two numbers of the same\n type changes to that type:\n */\n for (i = 1; i < strLength - 1; ++i) {\n if (types[i] === \"ES\" && types[i - 1] === \"EN\" && types[i + 1] === \"EN\") {\n types[i] = \"EN\";\n }\n if (\n types[i] === \"CS\" &&\n (types[i - 1] === \"EN\" || types[i - 1] === \"AN\") &&\n types[i + 1] === types[i - 1]\n ) {\n types[i] = types[i - 1];\n }\n }\n\n /*\n W5. A sequence of European terminators adjacent to European numbers changes\n to all European numbers:\n */\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"EN\") {\n // do before\n for (let j = i - 1; j >= 0; --j) {\n if (types[j] !== \"ET\") {\n break;\n }\n types[j] = \"EN\";\n }\n // do after\n for (let j = i + 1; j < strLength; ++j) {\n if (types[j] !== \"ET\") {\n break;\n }\n types[j] = \"EN\";\n }\n }\n }\n\n /*\n W6. Otherwise, separators and terminators change to Other Neutral:\n */\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === \"WS\" || t === \"ES\" || t === \"ET\" || t === \"CS\") {\n types[i] = \"ON\";\n }\n }\n\n /*\n W7. Search backwards from each instance of a European number until the\n first strong type (R, L, or sor) is found. If an L is found, then change\n the type of the European number to L.\n */\n lastType = sor;\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === \"EN\") {\n types[i] = lastType === \"L\" ? \"L\" : \"EN\";\n } else if (t === \"R\" || t === \"L\") {\n lastType = t;\n }\n }\n\n /*\n N1. A sequence of neutrals takes the direction of the surrounding strong\n text if the text on both sides has the same direction. European and Arabic\n numbers are treated as though they were R. Start-of-level-run (sor) and\n end-of-level-run (eor) are used at level run boundaries.\n */\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"ON\") {\n const end = findUnequal(types, i + 1, \"ON\");\n let before = sor;\n if (i > 0) {\n before = types[i - 1];\n }\n\n let after = eor;\n if (end + 1 < strLength) {\n after = types[end + 1];\n }\n if (before !== \"L\") {\n before = \"R\";\n }\n if (after !== \"L\") {\n after = \"R\";\n }\n if (before === after) {\n setValues(types, i, end, before);\n }\n i = end - 1; // reset to end (-1 so next iteration is ok)\n }\n }\n\n /*\n N2. Any remaining neutrals take the embedding direction.\n */\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"ON\") {\n types[i] = e;\n }\n }\n\n /*\n I1. For all characters with an even (left-to-right) embedding direction,\n those of type R go up one level and those of type AN or EN go up two\n levels.\n I2. For all characters with an odd (right-to-left) embedding direction,\n those of type L, EN or AN go up one level.\n */\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (isEven(levels[i])) {\n if (t === \"R\") {\n levels[i] += 1;\n } else if (t === \"AN\" || t === \"EN\") {\n levels[i] += 2;\n }\n } else {\n // isOdd\n if (t === \"L\" || t === \"AN\" || t === \"EN\") {\n levels[i] += 1;\n }\n }\n }\n\n /*\n L1. On each line, reset the embedding level of the following characters to\n the paragraph embedding level:\n\n segment separators,\n paragraph separators,\n any sequence of whitespace characters preceding a segment separator or\n paragraph separator, and any sequence of white space characters at the end\n of the line.\n */\n\n // don't bother as text is only single line\n\n /*\n L2. From the highest level found in the text to the lowest odd level on\n each line, reverse any contiguous sequence of characters that are at that\n level or higher.\n */\n\n // find highest level & lowest odd level\n let highestLevel = -1;\n let lowestOddLevel = 99;\n let level;\n for (i = 0, ii = levels.length; i < ii; ++i) {\n level = levels[i];\n if (highestLevel < level) {\n highestLevel = level;\n }\n if (lowestOddLevel > level && isOdd(level)) {\n lowestOddLevel = level;\n }\n }\n\n // now reverse between those limits\n for (level = highestLevel; level >= lowestOddLevel; --level) {\n // find segments to reverse\n let start = -1;\n for (i = 0, ii = levels.length; i < ii; ++i) {\n if (levels[i] < level) {\n if (start >= 0) {\n reverseValues(chars, start, i);\n start = -1;\n }\n } else if (start < 0) {\n start = i;\n }\n }\n if (start >= 0) {\n reverseValues(chars, start, levels.length);\n }\n }\n\n /*\n L3. Combining marks applied to a right-to-left base character will at this\n point precede their base character. If the rendering engine expects them to\n follow the base characters in the final display process, then the ordering\n of the marks and the base character must be reversed.\n */\n\n // don't bother for now\n\n /*\n L4. A character that possesses the mirrored property as specified by\n Section 4.7, Mirrored, must be depicted by a mirrored glyph if the resolved\n directionality of that character is R.\n */\n\n // don't mirror as characters are already mirrored in the pdf\n\n // Finally, return string\n for (i = 0, ii = chars.length; i < ii; ++i) {\n const ch = chars[i];\n if (ch === \"<\" || ch === \">\") {\n chars[i] = \"\";\n }\n }\n return createBidiText(chars.join(\"\"), isLTR);\n}\n\nexport { bidi };\n","/* Copyright 2014 Opera Software ASA\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n *\n * Based on https://code.google.com/p/smhasher/wiki/MurmurHash3.\n * Hashes roughly 100 KB per millisecond on i7 3.4 GHz.\n */\n\nimport { isArrayBuffer } from \"./util.js\";\n\nconst SEED = 0xc3d2e1f0;\n// Workaround for missing math precision in JS.\nconst MASK_HIGH = 0xffff0000;\nconst MASK_LOW = 0xffff;\n\nclass MurmurHash3_64 {\n constructor(seed) {\n this.h1 = seed ? seed & 0xffffffff : SEED;\n this.h2 = seed ? seed & 0xffffffff : SEED;\n }\n\n update(input) {\n let data, length;\n if (typeof input === \"string\") {\n data = new Uint8Array(input.length * 2);\n length = 0;\n for (let i = 0, ii = input.length; i < ii; i++) {\n const code = input.charCodeAt(i);\n if (code <= 0xff) {\n data[length++] = code;\n } else {\n data[length++] = code >>> 8;\n data[length++] = code & 0xff;\n }\n }\n } else if (isArrayBuffer(input)) {\n data = input.slice();\n length = data.byteLength;\n } else {\n throw new Error(\n \"Wrong data format in MurmurHash3_64_update. \" +\n \"Input must be a string or array.\"\n );\n }\n\n const blockCounts = length >> 2;\n const tailLength = length - blockCounts * 4;\n // We don't care about endianness here.\n const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n let k1 = 0,\n k2 = 0;\n let h1 = this.h1,\n h2 = this.h2;\n const C1 = 0xcc9e2d51,\n C2 = 0x1b873593;\n const C1_LOW = C1 & MASK_LOW,\n C2_LOW = C2 & MASK_LOW;\n\n for (let i = 0; i < blockCounts; i++) {\n if (i & 1) {\n k1 = dataUint32[i];\n k1 = ((k1 * C1) & MASK_HIGH) | ((k1 * C1_LOW) & MASK_LOW);\n k1 = (k1 << 15) | (k1 >>> 17);\n k1 = ((k1 * C2) & MASK_HIGH) | ((k1 * C2_LOW) & MASK_LOW);\n h1 ^= k1;\n h1 = (h1 << 13) | (h1 >>> 19);\n h1 = h1 * 5 + 0xe6546b64;\n } else {\n k2 = dataUint32[i];\n k2 = ((k2 * C1) & MASK_HIGH) | ((k2 * C1_LOW) & MASK_LOW);\n k2 = (k2 << 15) | (k2 >>> 17);\n k2 = ((k2 * C2) & MASK_HIGH) | ((k2 * C2_LOW) & MASK_LOW);\n h2 ^= k2;\n h2 = (h2 << 13) | (h2 >>> 19);\n h2 = h2 * 5 + 0xe6546b64;\n }\n }\n\n k1 = 0;\n\n switch (tailLength) {\n case 3:\n k1 ^= data[blockCounts * 4 + 2] << 16;\n /* falls through */\n case 2:\n k1 ^= data[blockCounts * 4 + 1] << 8;\n /* falls through */\n case 1:\n k1 ^= data[blockCounts * 4];\n /* falls through */\n\n k1 = ((k1 * C1) & MASK_HIGH) | ((k1 * C1_LOW) & MASK_LOW);\n k1 = (k1 << 15) | (k1 >>> 17);\n k1 = ((k1 * C2) & MASK_HIGH) | ((k1 * C2_LOW) & MASK_LOW);\n if (blockCounts & 1) {\n h1 ^= k1;\n } else {\n h2 ^= k1;\n }\n }\n\n this.h1 = h1;\n this.h2 = h2;\n }\n\n hexdigest() {\n let h1 = this.h1,\n h2 = this.h2;\n\n h1 ^= h2 >>> 1;\n h1 = ((h1 * 0xed558ccd) & MASK_HIGH) | ((h1 * 0x8ccd) & MASK_LOW);\n h2 =\n ((h2 * 0xff51afd7) & MASK_HIGH) |\n (((((h2 << 16) | (h1 >>> 16)) * 0xafd7ed55) & MASK_HIGH) >>> 16);\n h1 ^= h2 >>> 1;\n h1 = ((h1 * 0x1a85ec53) & MASK_HIGH) | ((h1 * 0xec53) & MASK_LOW);\n h2 =\n ((h2 * 0xc4ceb9fe) & MASK_HIGH) |\n (((((h2 << 16) | (h1 >>> 16)) * 0xb9fe1a85) & MASK_HIGH) >>> 16);\n h1 ^= h2 >>> 1;\n\n const hex1 = (h1 >>> 0).toString(16),\n hex2 = (h2 >>> 0).toString(16);\n return hex1.padStart(8, \"0\") + hex2.padStart(8, \"0\");\n }\n}\n\nexport { MurmurHash3_64 };\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ImageKind,\n OPS,\n RenderingIntentFlag,\n shadow,\n warn,\n} from \"../shared/util.js\";\n\nfunction addState(parentState, pattern, checkFn, iterateFn, processFn) {\n let state = parentState;\n for (let i = 0, ii = pattern.length - 1; i < ii; i++) {\n const item = pattern[i];\n state = state[item] || (state[item] = []);\n }\n state[pattern[pattern.length - 1]] = {\n checkFn,\n iterateFn,\n processFn,\n };\n}\n\nconst InitialState = [];\n\n// This replaces (save, transform, paintInlineImageXObject, restore)+\n// sequences with one |paintInlineImageXObjectGroup| operation.\naddState(\n InitialState,\n [OPS.save, OPS.transform, OPS.paintInlineImageXObject, OPS.restore],\n null,\n function iterateInlineImageGroup(context, i) {\n const fnArray = context.fnArray;\n const iFirstSave = context.iCurr - 3;\n const pos = (i - iFirstSave) % 4;\n switch (pos) {\n case 0:\n return fnArray[i] === OPS.save;\n case 1:\n return fnArray[i] === OPS.transform;\n case 2:\n return fnArray[i] === OPS.paintInlineImageXObject;\n case 3:\n return fnArray[i] === OPS.restore;\n }\n throw new Error(`iterateInlineImageGroup - invalid pos: ${pos}`);\n },\n function foundInlineImageGroup(context, i) {\n const MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10;\n const MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200;\n const MAX_WIDTH = 1000;\n const IMAGE_PADDING = 1;\n\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const curr = context.iCurr;\n const iFirstSave = curr - 3;\n const iFirstTransform = curr - 2;\n const iFirstPIIXO = curr - 1;\n\n const count = Math.min(\n Math.floor((i - iFirstSave) / 4),\n MAX_IMAGES_IN_INLINE_IMAGES_BLOCK\n );\n if (count < MIN_IMAGES_IN_INLINE_IMAGES_BLOCK) {\n return i - ((i - iFirstSave) % 4);\n }\n\n // assuming that heights of those image is too small (~1 pixel)\n // packing as much as possible by lines\n let maxX = 0;\n const map = [];\n let maxLineHeight = 0;\n let currentX = IMAGE_PADDING,\n currentY = IMAGE_PADDING;\n for (let q = 0; q < count; q++) {\n const transform = argsArray[iFirstTransform + (q << 2)];\n const img = argsArray[iFirstPIIXO + (q << 2)][0];\n if (currentX + img.width > MAX_WIDTH) {\n // starting new line\n maxX = Math.max(maxX, currentX);\n currentY += maxLineHeight + 2 * IMAGE_PADDING;\n currentX = 0;\n maxLineHeight = 0;\n }\n map.push({\n transform,\n x: currentX,\n y: currentY,\n w: img.width,\n h: img.height,\n });\n currentX += img.width + 2 * IMAGE_PADDING;\n maxLineHeight = Math.max(maxLineHeight, img.height);\n }\n const imgWidth = Math.max(maxX, currentX) + IMAGE_PADDING;\n const imgHeight = currentY + maxLineHeight + IMAGE_PADDING;\n const imgData = new Uint8Array(imgWidth * imgHeight * 4);\n const imgRowSize = imgWidth << 2;\n for (let q = 0; q < count; q++) {\n const data = argsArray[iFirstPIIXO + (q << 2)][0].data;\n // Copy image by lines and extends pixels into padding.\n const rowSize = map[q].w << 2;\n let dataOffset = 0;\n let offset = (map[q].x + map[q].y * imgWidth) << 2;\n imgData.set(data.subarray(0, rowSize), offset - imgRowSize);\n for (let k = 0, kk = map[q].h; k < kk; k++) {\n imgData.set(data.subarray(dataOffset, dataOffset + rowSize), offset);\n dataOffset += rowSize;\n offset += imgRowSize;\n }\n imgData.set(data.subarray(dataOffset - rowSize, dataOffset), offset);\n while (offset >= 0) {\n data[offset - 4] = data[offset];\n data[offset - 3] = data[offset + 1];\n data[offset - 2] = data[offset + 2];\n data[offset - 1] = data[offset + 3];\n data[offset + rowSize] = data[offset + rowSize - 4];\n data[offset + rowSize + 1] = data[offset + rowSize - 3];\n data[offset + rowSize + 2] = data[offset + rowSize - 2];\n data[offset + rowSize + 3] = data[offset + rowSize - 1];\n offset -= imgRowSize;\n }\n }\n\n // Replace queue items.\n fnArray.splice(iFirstSave, count * 4, OPS.paintInlineImageXObjectGroup);\n argsArray.splice(iFirstSave, count * 4, [\n {\n width: imgWidth,\n height: imgHeight,\n kind: ImageKind.RGBA_32BPP,\n data: imgData,\n },\n map,\n ]);\n\n return iFirstSave + 1;\n }\n);\n\n// This replaces (save, transform, paintImageMaskXObject, restore)+\n// sequences with one |paintImageMaskXObjectGroup| or one\n// |paintImageMaskXObjectRepeat| operation.\naddState(\n InitialState,\n [OPS.save, OPS.transform, OPS.paintImageMaskXObject, OPS.restore],\n null,\n function iterateImageMaskGroup(context, i) {\n const fnArray = context.fnArray;\n const iFirstSave = context.iCurr - 3;\n const pos = (i - iFirstSave) % 4;\n switch (pos) {\n case 0:\n return fnArray[i] === OPS.save;\n case 1:\n return fnArray[i] === OPS.transform;\n case 2:\n return fnArray[i] === OPS.paintImageMaskXObject;\n case 3:\n return fnArray[i] === OPS.restore;\n }\n throw new Error(`iterateImageMaskGroup - invalid pos: ${pos}`);\n },\n function foundImageMaskGroup(context, i) {\n const MIN_IMAGES_IN_MASKS_BLOCK = 10;\n const MAX_IMAGES_IN_MASKS_BLOCK = 100;\n const MAX_SAME_IMAGES_IN_MASKS_BLOCK = 1000;\n\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const curr = context.iCurr;\n const iFirstSave = curr - 3;\n const iFirstTransform = curr - 2;\n const iFirstPIMXO = curr - 1;\n\n // At this point, i is the index of the first op past the last valid\n // quartet.\n let count = Math.floor((i - iFirstSave) / 4);\n if (count < MIN_IMAGES_IN_MASKS_BLOCK) {\n return i - ((i - iFirstSave) % 4);\n }\n\n let isSameImage = false;\n let iTransform, transformArgs;\n const firstPIMXOArg0 = argsArray[iFirstPIMXO][0];\n const firstTransformArg0 = argsArray[iFirstTransform][0],\n firstTransformArg1 = argsArray[iFirstTransform][1],\n firstTransformArg2 = argsArray[iFirstTransform][2],\n firstTransformArg3 = argsArray[iFirstTransform][3];\n\n if (firstTransformArg1 === firstTransformArg2) {\n isSameImage = true;\n iTransform = iFirstTransform + 4;\n let iPIMXO = iFirstPIMXO + 4;\n for (let q = 1; q < count; q++, iTransform += 4, iPIMXO += 4) {\n transformArgs = argsArray[iTransform];\n if (\n argsArray[iPIMXO][0] !== firstPIMXOArg0 ||\n transformArgs[0] !== firstTransformArg0 ||\n transformArgs[1] !== firstTransformArg1 ||\n transformArgs[2] !== firstTransformArg2 ||\n transformArgs[3] !== firstTransformArg3\n ) {\n if (q < MIN_IMAGES_IN_MASKS_BLOCK) {\n isSameImage = false;\n } else {\n count = q;\n }\n break; // different image or transform\n }\n }\n }\n\n if (isSameImage) {\n count = Math.min(count, MAX_SAME_IMAGES_IN_MASKS_BLOCK);\n const positions = new Float32Array(count * 2);\n iTransform = iFirstTransform;\n for (let q = 0; q < count; q++, iTransform += 4) {\n transformArgs = argsArray[iTransform];\n positions[q << 1] = transformArgs[4];\n positions[(q << 1) + 1] = transformArgs[5];\n }\n\n // Replace queue items.\n fnArray.splice(iFirstSave, count * 4, OPS.paintImageMaskXObjectRepeat);\n argsArray.splice(iFirstSave, count * 4, [\n firstPIMXOArg0,\n firstTransformArg0,\n firstTransformArg1,\n firstTransformArg2,\n firstTransformArg3,\n positions,\n ]);\n } else {\n count = Math.min(count, MAX_IMAGES_IN_MASKS_BLOCK);\n const images = [];\n for (let q = 0; q < count; q++) {\n transformArgs = argsArray[iFirstTransform + (q << 2)];\n const maskParams = argsArray[iFirstPIMXO + (q << 2)][0];\n images.push({\n data: maskParams.data,\n width: maskParams.width,\n height: maskParams.height,\n interpolate: maskParams.interpolate,\n count: maskParams.count,\n transform: transformArgs,\n });\n }\n\n // Replace queue items.\n fnArray.splice(iFirstSave, count * 4, OPS.paintImageMaskXObjectGroup);\n argsArray.splice(iFirstSave, count * 4, [images]);\n }\n\n return iFirstSave + 1;\n }\n);\n\n// This replaces (save, transform, paintImageXObject, restore)+ sequences\n// with one paintImageXObjectRepeat operation, if the |transform| and\n// |paintImageXObjectRepeat| ops are appropriate.\naddState(\n InitialState,\n [OPS.save, OPS.transform, OPS.paintImageXObject, OPS.restore],\n function (context) {\n const argsArray = context.argsArray;\n const iFirstTransform = context.iCurr - 2;\n return (\n argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0\n );\n },\n function iterateImageGroup(context, i) {\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const iFirstSave = context.iCurr - 3;\n const pos = (i - iFirstSave) % 4;\n switch (pos) {\n case 0:\n return fnArray[i] === OPS.save;\n case 1:\n if (fnArray[i] !== OPS.transform) {\n return false;\n }\n const iFirstTransform = context.iCurr - 2;\n const firstTransformArg0 = argsArray[iFirstTransform][0];\n const firstTransformArg3 = argsArray[iFirstTransform][3];\n if (\n argsArray[i][0] !== firstTransformArg0 ||\n argsArray[i][1] !== 0 ||\n argsArray[i][2] !== 0 ||\n argsArray[i][3] !== firstTransformArg3\n ) {\n return false; // transforms don't match\n }\n return true;\n case 2:\n if (fnArray[i] !== OPS.paintImageXObject) {\n return false;\n }\n const iFirstPIXO = context.iCurr - 1;\n const firstPIXOArg0 = argsArray[iFirstPIXO][0];\n if (argsArray[i][0] !== firstPIXOArg0) {\n return false; // images don't match\n }\n return true;\n case 3:\n return fnArray[i] === OPS.restore;\n }\n throw new Error(`iterateImageGroup - invalid pos: ${pos}`);\n },\n function (context, i) {\n const MIN_IMAGES_IN_BLOCK = 3;\n const MAX_IMAGES_IN_BLOCK = 1000;\n\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const curr = context.iCurr;\n const iFirstSave = curr - 3;\n const iFirstTransform = curr - 2;\n const iFirstPIXO = curr - 1;\n const firstPIXOArg0 = argsArray[iFirstPIXO][0];\n const firstTransformArg0 = argsArray[iFirstTransform][0];\n const firstTransformArg3 = argsArray[iFirstTransform][3];\n\n // At this point, i is the index of the first op past the last valid\n // quartet.\n const count = Math.min(\n Math.floor((i - iFirstSave) / 4),\n MAX_IMAGES_IN_BLOCK\n );\n if (count < MIN_IMAGES_IN_BLOCK) {\n return i - ((i - iFirstSave) % 4);\n }\n\n // Extract the (x,y) positions from all of the matching transforms.\n const positions = new Float32Array(count * 2);\n let iTransform = iFirstTransform;\n for (let q = 0; q < count; q++, iTransform += 4) {\n const transformArgs = argsArray[iTransform];\n positions[q << 1] = transformArgs[4];\n positions[(q << 1) + 1] = transformArgs[5];\n }\n\n // Replace queue items.\n const args = [\n firstPIXOArg0,\n firstTransformArg0,\n firstTransformArg3,\n positions,\n ];\n fnArray.splice(iFirstSave, count * 4, OPS.paintImageXObjectRepeat);\n argsArray.splice(iFirstSave, count * 4, args);\n\n return iFirstSave + 1;\n }\n);\n\n// This replaces (beginText, setFont, setTextMatrix, showText, endText)+\n// sequences with (beginText, setFont, (setTextMatrix, showText)+, endText)+\n// sequences, if the font for each one is the same.\naddState(\n InitialState,\n [OPS.beginText, OPS.setFont, OPS.setTextMatrix, OPS.showText, OPS.endText],\n null,\n function iterateShowTextGroup(context, i) {\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const iFirstSave = context.iCurr - 4;\n const pos = (i - iFirstSave) % 5;\n switch (pos) {\n case 0:\n return fnArray[i] === OPS.beginText;\n case 1:\n return fnArray[i] === OPS.setFont;\n case 2:\n return fnArray[i] === OPS.setTextMatrix;\n case 3:\n if (fnArray[i] !== OPS.showText) {\n return false;\n }\n const iFirstSetFont = context.iCurr - 3;\n const firstSetFontArg0 = argsArray[iFirstSetFont][0];\n const firstSetFontArg1 = argsArray[iFirstSetFont][1];\n if (\n argsArray[i][0] !== firstSetFontArg0 ||\n argsArray[i][1] !== firstSetFontArg1\n ) {\n return false; // fonts don't match\n }\n return true;\n case 4:\n return fnArray[i] === OPS.endText;\n }\n throw new Error(`iterateShowTextGroup - invalid pos: ${pos}`);\n },\n function (context, i) {\n const MIN_CHARS_IN_BLOCK = 3;\n const MAX_CHARS_IN_BLOCK = 1000;\n\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const curr = context.iCurr;\n const iFirstBeginText = curr - 4;\n const iFirstSetFont = curr - 3;\n const iFirstSetTextMatrix = curr - 2;\n const iFirstShowText = curr - 1;\n const iFirstEndText = curr;\n const firstSetFontArg0 = argsArray[iFirstSetFont][0];\n const firstSetFontArg1 = argsArray[iFirstSetFont][1];\n\n // At this point, i is the index of the first op past the last valid\n // quintet.\n let count = Math.min(\n Math.floor((i - iFirstBeginText) / 5),\n MAX_CHARS_IN_BLOCK\n );\n if (count < MIN_CHARS_IN_BLOCK) {\n return i - ((i - iFirstBeginText) % 5);\n }\n\n // If the preceding quintet is (, setFont, setTextMatrix,\n // showText, endText), include that as well. (E.g. might be\n // |dependency|.)\n let iFirst = iFirstBeginText;\n if (\n iFirstBeginText >= 4 &&\n fnArray[iFirstBeginText - 4] === fnArray[iFirstSetFont] &&\n fnArray[iFirstBeginText - 3] === fnArray[iFirstSetTextMatrix] &&\n fnArray[iFirstBeginText - 2] === fnArray[iFirstShowText] &&\n fnArray[iFirstBeginText - 1] === fnArray[iFirstEndText] &&\n argsArray[iFirstBeginText - 4][0] === firstSetFontArg0 &&\n argsArray[iFirstBeginText - 4][1] === firstSetFontArg1\n ) {\n count++;\n iFirst -= 5;\n }\n\n // Remove (endText, beginText, setFont) trios.\n let iEndText = iFirst + 4;\n for (let q = 1; q < count; q++) {\n fnArray.splice(iEndText, 3);\n argsArray.splice(iEndText, 3);\n iEndText += 2;\n }\n\n return iEndText + 1;\n }\n);\n\nclass NullOptimizer {\n constructor(queue) {\n this.queue = queue;\n }\n\n _optimize() {}\n\n push(fn, args) {\n this.queue.fnArray.push(fn);\n this.queue.argsArray.push(args);\n this._optimize();\n }\n\n flush() {}\n\n reset() {}\n}\n\nclass QueueOptimizer extends NullOptimizer {\n constructor(queue) {\n super(queue);\n this.state = null;\n this.context = {\n iCurr: 0,\n fnArray: queue.fnArray,\n argsArray: queue.argsArray,\n };\n this.match = null;\n this.lastProcessed = 0;\n }\n\n _optimize() {\n // Process new fnArray item(s) chunk.\n const fnArray = this.queue.fnArray;\n let i = this.lastProcessed,\n ii = fnArray.length;\n let state = this.state;\n let match = this.match;\n if (!state && !match && i + 1 === ii && !InitialState[fnArray[i]]) {\n // Micro-optimization for the common case: last item is not\n // optimizable, just skipping it.\n this.lastProcessed = ii;\n return;\n }\n\n const context = this.context;\n while (i < ii) {\n if (match) {\n // Already find a block of potentially optimizable items, iterating...\n const iterate = (0, match.iterateFn)(context, i);\n if (iterate) {\n i++;\n continue;\n }\n // Found last items for the block, processing...\n i = (0, match.processFn)(context, i + 1);\n ii = fnArray.length;\n match = null;\n state = null;\n if (i >= ii) {\n break;\n }\n }\n // Find the potentially optimizable items.\n state = (state || InitialState)[fnArray[i]];\n if (!state || Array.isArray(state)) {\n i++;\n continue;\n }\n // Found a start of the block based on addState rules.\n context.iCurr = i;\n i++;\n if (state.checkFn && !(0, state.checkFn)(context)) {\n // Check failed, continue search...\n state = null;\n continue;\n }\n match = state;\n state = null;\n }\n this.state = state;\n this.match = match;\n this.lastProcessed = i;\n }\n\n flush() {\n while (this.match) {\n const length = this.queue.fnArray.length;\n this.lastProcessed = (0, this.match.processFn)(this.context, length);\n this.match = null;\n this.state = null;\n // Repeat optimization until all chunks are exhausted.\n this._optimize();\n }\n }\n\n reset() {\n this.state = null;\n this.match = null;\n this.lastProcessed = 0;\n }\n}\n\nclass OperatorList {\n static get CHUNK_SIZE() {\n return shadow(this, \"CHUNK_SIZE\", 1000);\n }\n\n // Close to chunk size.\n static get CHUNK_SIZE_ABOUT() {\n return shadow(this, \"CHUNK_SIZE_ABOUT\", this.CHUNK_SIZE - 5);\n }\n\n constructor(intent = 0, streamSink) {\n this._streamSink = streamSink;\n this.fnArray = [];\n this.argsArray = [];\n if (streamSink && !(intent & RenderingIntentFlag.OPLIST)) {\n this.optimizer = new QueueOptimizer(this);\n } else {\n this.optimizer = new NullOptimizer(this);\n }\n this.dependencies = new Set();\n this._totalLength = 0;\n this.weight = 0;\n this._resolved = streamSink ? null : Promise.resolve();\n }\n\n get length() {\n return this.argsArray.length;\n }\n\n get ready() {\n return this._resolved || this._streamSink.ready;\n }\n\n /**\n * @type {number} The total length of the entire operator list, since\n * `this.length === 0` after flushing.\n */\n get totalLength() {\n return this._totalLength + this.length;\n }\n\n addOp(fn, args) {\n this.optimizer.push(fn, args);\n this.weight++;\n if (this._streamSink) {\n if (this.weight >= OperatorList.CHUNK_SIZE) {\n this.flush();\n } else if (\n this.weight >= OperatorList.CHUNK_SIZE_ABOUT &&\n (fn === OPS.restore || fn === OPS.endText)\n ) {\n // Heuristic to flush on boundary of restore or endText.\n this.flush();\n }\n }\n }\n\n addImageOps(fn, args, optionalContent) {\n if (optionalContent !== undefined) {\n this.addOp(OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n }\n\n this.addOp(fn, args);\n\n if (optionalContent !== undefined) {\n this.addOp(OPS.endMarkedContent, []);\n }\n }\n\n addDependency(dependency) {\n if (this.dependencies.has(dependency)) {\n return;\n }\n this.dependencies.add(dependency);\n this.addOp(OPS.dependency, [dependency]);\n }\n\n addDependencies(dependencies) {\n for (const dependency of dependencies) {\n this.addDependency(dependency);\n }\n }\n\n addOpList(opList) {\n if (!(opList instanceof OperatorList)) {\n warn('addOpList - ignoring invalid \"opList\" parameter.');\n return;\n }\n for (const dependency of opList.dependencies) {\n this.dependencies.add(dependency);\n }\n for (let i = 0, ii = opList.length; i < ii; i++) {\n this.addOp(opList.fnArray[i], opList.argsArray[i]);\n }\n }\n\n getIR() {\n return {\n fnArray: this.fnArray,\n argsArray: this.argsArray,\n length: this.length,\n };\n }\n\n get _transfers() {\n const transfers = [];\n const { fnArray, argsArray, length } = this;\n for (let i = 0; i < length; i++) {\n switch (fnArray[i]) {\n case OPS.paintInlineImageXObject:\n case OPS.paintInlineImageXObjectGroup:\n case OPS.paintImageMaskXObject:\n const arg = argsArray[i][0]; // First parameter in imgData.\n if (\n !arg.cached &&\n arg.data &&\n arg.data.buffer instanceof ArrayBuffer\n ) {\n transfers.push(arg.data.buffer);\n }\n break;\n }\n }\n return transfers;\n }\n\n flush(lastChunk = false) {\n this.optimizer.flush();\n const length = this.length;\n this._totalLength += length;\n\n this._streamSink.enqueue(\n {\n fnArray: this.fnArray,\n argsArray: this.argsArray,\n lastChunk,\n length,\n },\n 1,\n this._transfers\n );\n\n this.dependencies.clear();\n this.fnArray.length = 0;\n this.argsArray.length = 0;\n this.weight = 0;\n this.optimizer.reset();\n }\n}\n\nexport { OperatorList };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n FeatureTest,\n FormatError,\n ImageKind,\n info,\n warn,\n} from \"../shared/util.js\";\nimport { applyMaskImageData } from \"../shared/image_utils.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { JpegStream } from \"./jpeg_stream.js\";\nimport { JpxImage } from \"./jpx.js\";\nimport { Name } from \"./primitives.js\";\n\n/**\n * Decode and clamp a value. The formula is different from the spec because we\n * don't decode to float range [0,1], we decode it in the [0,max] range.\n */\nfunction decodeAndClamp(value, addend, coefficient, max) {\n value = addend + value * coefficient;\n // Clamp the value to the range\n if (value < 0) {\n value = 0;\n } else if (value > max) {\n value = max;\n }\n return value;\n}\n\n/**\n * Resizes an image mask with 1 component.\n * @param {TypedArray} src - The source buffer.\n * @param {number} bpc - Number of bits per component.\n * @param {number} w1 - Original width.\n * @param {number} h1 - Original height.\n * @param {number} w2 - New width.\n * @param {number} h2 - New height.\n * @returns {TypedArray} The resized image mask buffer.\n */\nfunction resizeImageMask(src, bpc, w1, h1, w2, h2) {\n const length = w2 * h2;\n let dest;\n if (bpc <= 8) {\n dest = new Uint8Array(length);\n } else if (bpc <= 16) {\n dest = new Uint16Array(length);\n } else {\n dest = new Uint32Array(length);\n }\n const xRatio = w1 / w2;\n const yRatio = h1 / h2;\n let i,\n j,\n py,\n newIndex = 0,\n oldIndex;\n const xScaled = new Uint16Array(w2);\n const w1Scanline = w1;\n\n for (i = 0; i < w2; i++) {\n xScaled[i] = Math.floor(i * xRatio);\n }\n for (i = 0; i < h2; i++) {\n py = Math.floor(i * yRatio) * w1Scanline;\n for (j = 0; j < w2; j++) {\n oldIndex = py + xScaled[j];\n dest[newIndex++] = src[oldIndex];\n }\n }\n return dest;\n}\n\nclass PDFImage {\n constructor({\n xref,\n res,\n image,\n isInline = false,\n smask = null,\n mask = null,\n isMask = false,\n pdfFunctionFactory,\n localColorSpaceCache,\n }) {\n this.image = image;\n const dict = image.dict;\n\n const filter = dict.get(\"F\", \"Filter\");\n if (filter instanceof Name) {\n switch (filter.name) {\n case \"JPXDecode\":\n const jpxImage = new JpxImage();\n jpxImage.parseImageProperties(image.stream);\n image.stream.reset();\n\n image.width = jpxImage.width;\n image.height = jpxImage.height;\n image.bitsPerComponent = jpxImage.bitsPerComponent;\n image.numComps = jpxImage.componentsCount;\n break;\n case \"JBIG2Decode\":\n image.bitsPerComponent = 1;\n image.numComps = 1;\n break;\n }\n }\n // TODO cache rendered images?\n\n let width = dict.get(\"W\", \"Width\");\n let height = dict.get(\"H\", \"Height\");\n\n if (\n Number.isInteger(image.width) &&\n image.width > 0 &&\n Number.isInteger(image.height) &&\n image.height > 0 &&\n (image.width !== width || image.height !== height)\n ) {\n warn(\n \"PDFImage - using the Width/Height of the image data, \" +\n \"rather than the image dictionary.\"\n );\n width = image.width;\n height = image.height;\n }\n if (width < 1 || height < 1) {\n throw new FormatError(\n `Invalid image width: ${width} or height: ${height}`\n );\n }\n this.width = width;\n this.height = height;\n\n this.interpolate = dict.get(\"I\", \"Interpolate\");\n this.imageMask = dict.get(\"IM\", \"ImageMask\") || false;\n this.matte = dict.get(\"Matte\") || false;\n\n let bitsPerComponent = image.bitsPerComponent;\n if (!bitsPerComponent) {\n bitsPerComponent = dict.get(\"BPC\", \"BitsPerComponent\");\n if (!bitsPerComponent) {\n if (this.imageMask) {\n bitsPerComponent = 1;\n } else {\n throw new FormatError(\n `Bits per component missing in image: ${this.imageMask}`\n );\n }\n }\n }\n this.bpc = bitsPerComponent;\n\n if (!this.imageMask) {\n let colorSpace = dict.getRaw(\"CS\") || dict.getRaw(\"ColorSpace\");\n if (!colorSpace) {\n info(\"JPX images (which do not require color spaces)\");\n switch (image.numComps) {\n case 1:\n colorSpace = Name.get(\"DeviceGray\");\n break;\n case 3:\n colorSpace = Name.get(\"DeviceRGB\");\n break;\n case 4:\n colorSpace = Name.get(\"DeviceCMYK\");\n break;\n default:\n throw new Error(\n `JPX images with ${image.numComps} color components not supported.`\n );\n }\n }\n this.colorSpace = ColorSpace.parse({\n cs: colorSpace,\n xref,\n resources: isInline ? res : null,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n this.numComps = this.colorSpace.numComps;\n }\n\n this.decode = dict.getArray(\"D\", \"Decode\");\n this.needsDecode = false;\n if (\n this.decode &&\n ((this.colorSpace &&\n !this.colorSpace.isDefaultDecode(this.decode, bitsPerComponent)) ||\n (isMask &&\n !ColorSpace.isDefaultDecode(this.decode, /* numComps = */ 1)))\n ) {\n this.needsDecode = true;\n // Do some preprocessing to avoid more math.\n const max = (1 << bitsPerComponent) - 1;\n this.decodeCoefficients = [];\n this.decodeAddends = [];\n const isIndexed = this.colorSpace && this.colorSpace.name === \"Indexed\";\n for (let i = 0, j = 0; i < this.decode.length; i += 2, ++j) {\n const dmin = this.decode[i];\n const dmax = this.decode[i + 1];\n this.decodeCoefficients[j] = isIndexed\n ? (dmax - dmin) / max\n : dmax - dmin;\n this.decodeAddends[j] = isIndexed ? dmin : max * dmin;\n }\n }\n\n if (smask) {\n this.smask = new PDFImage({\n xref,\n res,\n image: smask,\n isInline,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n } else if (mask) {\n if (mask instanceof BaseStream) {\n const maskDict = mask.dict,\n imageMask = maskDict.get(\"IM\", \"ImageMask\");\n if (!imageMask) {\n warn(\"Ignoring /Mask in image without /ImageMask.\");\n } else {\n this.mask = new PDFImage({\n xref,\n res,\n image: mask,\n isInline,\n isMask: true,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n }\n } else {\n // Color key mask (just an array).\n this.mask = mask;\n }\n }\n }\n\n /**\n * Handles processing of image data and returns the Promise that is resolved\n * with a PDFImage when the image is ready to be used.\n */\n static async buildImage({\n xref,\n res,\n image,\n isInline = false,\n pdfFunctionFactory,\n localColorSpaceCache,\n }) {\n const imageData = image;\n let smaskData = null;\n let maskData = null;\n\n const smask = image.dict.get(\"SMask\");\n const mask = image.dict.get(\"Mask\");\n\n if (smask) {\n if (smask instanceof BaseStream) {\n smaskData = smask;\n } else {\n warn(\"Unsupported /SMask format.\");\n }\n } else if (mask) {\n if (mask instanceof BaseStream || Array.isArray(mask)) {\n maskData = mask;\n } else {\n warn(\"Unsupported /Mask format.\");\n }\n }\n\n return new PDFImage({\n xref,\n res,\n image: imageData,\n isInline,\n smask: smaskData,\n mask: maskData,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n }\n\n static createRawMask({\n imgArray,\n width,\n height,\n imageIsFromDecodeStream,\n inverseDecode,\n interpolate,\n }) {\n // |imgArray| might not contain full data for every pixel of the mask, so\n // we need to distinguish between |computedLength| and |actualLength|.\n // In particular, if inverseDecode is true, then the array we return must\n // have a length of |computedLength|.\n\n const computedLength = ((width + 7) >> 3) * height;\n const actualLength = imgArray.byteLength;\n const haveFullData = computedLength === actualLength;\n let data, i;\n\n if (imageIsFromDecodeStream && (!inverseDecode || haveFullData)) {\n // imgArray came from a DecodeStream and its data is in an appropriate\n // form, so we can just transfer it.\n data = imgArray;\n } else if (!inverseDecode) {\n data = new Uint8Array(imgArray);\n } else {\n data = new Uint8Array(computedLength);\n data.set(imgArray);\n data.fill(0xff, actualLength);\n }\n\n // If necessary, invert the original mask data (but not any extra we might\n // have added above). It's safe to modify the array -- whether it's the\n // original or a copy, we're about to transfer it anyway, so nothing else\n // in this thread can be relying on its contents.\n if (inverseDecode) {\n for (i = 0; i < actualLength; i++) {\n data[i] ^= 0xff;\n }\n }\n\n return { data, width, height, interpolate };\n }\n\n static createMask({\n imgArray,\n width,\n height,\n imageIsFromDecodeStream,\n inverseDecode,\n interpolate,\n }) {\n const isSingleOpaquePixel =\n width === 1 &&\n height === 1 &&\n inverseDecode === (imgArray.length === 0 || !!(imgArray[0] & 128));\n\n if (isSingleOpaquePixel) {\n return { isSingleOpaquePixel };\n }\n\n if (FeatureTest.isOffscreenCanvasSupported) {\n const canvas = new OffscreenCanvas(width, height);\n const ctx = canvas.getContext(\"2d\");\n const imgData = ctx.createImageData(width, height);\n applyMaskImageData({\n src: imgArray,\n dest: imgData.data,\n width,\n height,\n inverseDecode,\n });\n\n ctx.putImageData(imgData, 0, 0);\n const bitmap = canvas.transferToImageBitmap();\n\n return {\n data: null,\n width,\n height,\n interpolate,\n bitmap,\n };\n }\n\n // Get the data almost as they're and they'll be decoded\n // just before being drawn.\n return this.createRawMask({\n imgArray,\n width,\n height,\n inverseDecode,\n imageIsFromDecodeStream,\n interpolate,\n });\n }\n\n get drawWidth() {\n return Math.max(\n this.width,\n (this.smask && this.smask.width) || 0,\n (this.mask && this.mask.width) || 0\n );\n }\n\n get drawHeight() {\n return Math.max(\n this.height,\n (this.smask && this.smask.height) || 0,\n (this.mask && this.mask.height) || 0\n );\n }\n\n decodeBuffer(buffer) {\n const bpc = this.bpc;\n const numComps = this.numComps;\n\n const decodeAddends = this.decodeAddends;\n const decodeCoefficients = this.decodeCoefficients;\n const max = (1 << bpc) - 1;\n let i, ii;\n\n if (bpc === 1) {\n // If the buffer needed decode that means it just needs to be inverted.\n for (i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] = +!buffer[i];\n }\n return;\n }\n let index = 0;\n for (i = 0, ii = this.width * this.height; i < ii; i++) {\n for (let j = 0; j < numComps; j++) {\n buffer[index] = decodeAndClamp(\n buffer[index],\n decodeAddends[j],\n decodeCoefficients[j],\n max\n );\n index++;\n }\n }\n }\n\n getComponents(buffer) {\n const bpc = this.bpc;\n\n // This image doesn't require any extra work.\n if (bpc === 8) {\n return buffer;\n }\n\n const width = this.width;\n const height = this.height;\n const numComps = this.numComps;\n\n const length = width * height * numComps;\n let bufferPos = 0;\n let output;\n if (bpc <= 8) {\n output = new Uint8Array(length);\n } else if (bpc <= 16) {\n output = new Uint16Array(length);\n } else {\n output = new Uint32Array(length);\n }\n const rowComps = width * numComps;\n\n const max = (1 << bpc) - 1;\n let i = 0,\n ii,\n buf;\n\n if (bpc === 1) {\n // Optimization for reading 1 bpc images.\n let mask, loop1End, loop2End;\n for (let j = 0; j < height; j++) {\n loop1End = i + (rowComps & ~7);\n loop2End = i + rowComps;\n\n // unroll loop for all full bytes\n while (i < loop1End) {\n buf = buffer[bufferPos++];\n output[i] = (buf >> 7) & 1;\n output[i + 1] = (buf >> 6) & 1;\n output[i + 2] = (buf >> 5) & 1;\n output[i + 3] = (buf >> 4) & 1;\n output[i + 4] = (buf >> 3) & 1;\n output[i + 5] = (buf >> 2) & 1;\n output[i + 6] = (buf >> 1) & 1;\n output[i + 7] = buf & 1;\n i += 8;\n }\n\n // handle remaining bits\n if (i < loop2End) {\n buf = buffer[bufferPos++];\n mask = 128;\n while (i < loop2End) {\n output[i++] = +!!(buf & mask);\n mask >>= 1;\n }\n }\n }\n } else {\n // The general case that handles all other bpc values.\n let bits = 0;\n buf = 0;\n for (i = 0, ii = length; i < ii; ++i) {\n if (i % rowComps === 0) {\n buf = 0;\n bits = 0;\n }\n\n while (bits < bpc) {\n buf = (buf << 8) | buffer[bufferPos++];\n bits += 8;\n }\n\n const remainingBits = bits - bpc;\n let value = buf >> remainingBits;\n if (value < 0) {\n value = 0;\n } else if (value > max) {\n value = max;\n }\n output[i] = value;\n buf &= (1 << remainingBits) - 1;\n bits = remainingBits;\n }\n }\n return output;\n }\n\n fillOpacity(rgbaBuf, width, height, actualHeight, image) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n rgbaBuf instanceof Uint8ClampedArray,\n 'PDFImage.fillOpacity: Unsupported \"rgbaBuf\" type.'\n );\n }\n const smask = this.smask;\n const mask = this.mask;\n let alphaBuf, sw, sh, i, ii, j;\n\n if (smask) {\n sw = smask.width;\n sh = smask.height;\n alphaBuf = new Uint8ClampedArray(sw * sh);\n smask.fillGrayBuffer(alphaBuf);\n if (sw !== width || sh !== height) {\n alphaBuf = resizeImageMask(alphaBuf, smask.bpc, sw, sh, width, height);\n }\n } else if (mask) {\n if (mask instanceof PDFImage) {\n sw = mask.width;\n sh = mask.height;\n alphaBuf = new Uint8ClampedArray(sw * sh);\n mask.numComps = 1;\n mask.fillGrayBuffer(alphaBuf);\n\n // Need to invert values in rgbaBuf\n for (i = 0, ii = sw * sh; i < ii; ++i) {\n alphaBuf[i] = 255 - alphaBuf[i];\n }\n\n if (sw !== width || sh !== height) {\n alphaBuf = resizeImageMask(alphaBuf, mask.bpc, sw, sh, width, height);\n }\n } else if (Array.isArray(mask)) {\n // Color key mask: if any of the components are outside the range\n // then they should be painted.\n alphaBuf = new Uint8ClampedArray(width * height);\n const numComps = this.numComps;\n for (i = 0, ii = width * height; i < ii; ++i) {\n let opacity = 0;\n const imageOffset = i * numComps;\n for (j = 0; j < numComps; ++j) {\n const color = image[imageOffset + j];\n const maskOffset = j * 2;\n if (color < mask[maskOffset] || color > mask[maskOffset + 1]) {\n opacity = 255;\n break;\n }\n }\n alphaBuf[i] = opacity;\n }\n } else {\n throw new FormatError(\"Unknown mask format.\");\n }\n }\n\n if (alphaBuf) {\n for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n rgbaBuf[j] = alphaBuf[i];\n }\n } else {\n // No mask.\n for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n rgbaBuf[j] = 255;\n }\n }\n }\n\n undoPreblend(buffer, width, height) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n buffer instanceof Uint8ClampedArray,\n 'PDFImage.undoPreblend: Unsupported \"buffer\" type.'\n );\n }\n const matte = this.smask && this.smask.matte;\n if (!matte) {\n return;\n }\n const matteRgb = this.colorSpace.getRgb(matte, 0);\n const matteR = matteRgb[0];\n const matteG = matteRgb[1];\n const matteB = matteRgb[2];\n const length = width * height * 4;\n for (let i = 0; i < length; i += 4) {\n const alpha = buffer[i + 3];\n if (alpha === 0) {\n // according formula we have to get Infinity in all components\n // making it white (typical paper color) should be okay\n buffer[i] = 255;\n buffer[i + 1] = 255;\n buffer[i + 2] = 255;\n continue;\n }\n const k = 255 / alpha;\n buffer[i] = (buffer[i] - matteR) * k + matteR;\n buffer[i + 1] = (buffer[i + 1] - matteG) * k + matteG;\n buffer[i + 2] = (buffer[i + 2] - matteB) * k + matteB;\n }\n }\n\n createImageData(forceRGBA = false) {\n const drawWidth = this.drawWidth;\n const drawHeight = this.drawHeight;\n const imgData = {\n width: drawWidth,\n height: drawHeight,\n interpolate: this.interpolate,\n kind: 0,\n data: null,\n // Other fields are filled in below.\n };\n\n const numComps = this.numComps;\n const originalWidth = this.width;\n const originalHeight = this.height;\n const bpc = this.bpc;\n\n // Rows start at byte boundary.\n const rowBytes = (originalWidth * numComps * bpc + 7) >> 3;\n\n if (!forceRGBA) {\n // If it is a 1-bit-per-pixel grayscale (i.e. black-and-white) image\n // without any complications, we pass a same-sized copy to the main\n // thread rather than expanding by 32x to RGBA form. This saves *lots*\n // of memory for many scanned documents. It's also much faster.\n //\n // Similarly, if it is a 24-bit-per pixel RGB image without any\n // complications, we avoid expanding by 1.333x to RGBA form.\n let kind;\n if (this.colorSpace.name === \"DeviceGray\" && bpc === 1) {\n kind = ImageKind.GRAYSCALE_1BPP;\n } else if (\n this.colorSpace.name === \"DeviceRGB\" &&\n bpc === 8 &&\n !this.needsDecode\n ) {\n kind = ImageKind.RGB_24BPP;\n }\n if (\n kind &&\n !this.smask &&\n !this.mask &&\n drawWidth === originalWidth &&\n drawHeight === originalHeight\n ) {\n imgData.kind = kind;\n imgData.data = this.getImageBytes(originalHeight * rowBytes, {});\n\n if (this.needsDecode) {\n // Invert the buffer (which must be grayscale if we reached here).\n assert(\n kind === ImageKind.GRAYSCALE_1BPP,\n \"PDFImage.createImageData: The image must be grayscale.\"\n );\n const buffer = imgData.data;\n for (let i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] ^= 0xff;\n }\n }\n return imgData;\n }\n if (this.image instanceof JpegStream && !this.smask && !this.mask) {\n let imageLength = originalHeight * rowBytes;\n switch (this.colorSpace.name) {\n case \"DeviceGray\":\n // Avoid truncating the image, since `JpegImage.getData`\n // will expand the image data when `forceRGB === true`.\n imageLength *= 3;\n /* falls through */\n case \"DeviceRGB\":\n case \"DeviceCMYK\":\n imgData.kind = ImageKind.RGB_24BPP;\n imgData.data = this.getImageBytes(imageLength, {\n drawWidth,\n drawHeight,\n forceRGB: true,\n });\n return imgData;\n }\n }\n }\n\n const imgArray = this.getImageBytes(originalHeight * rowBytes, {\n internal: true,\n });\n // imgArray can be incomplete (e.g. after CCITT fax encoding).\n const actualHeight =\n 0 | (((imgArray.length / rowBytes) * drawHeight) / originalHeight);\n\n const comps = this.getComponents(imgArray);\n\n // If opacity data is present, use RGBA_32BPP form. Otherwise, use the\n // more compact RGB_24BPP form if allowable.\n let alpha01, maybeUndoPreblend;\n if (!forceRGBA && !this.smask && !this.mask) {\n imgData.kind = ImageKind.RGB_24BPP;\n imgData.data = new Uint8ClampedArray(drawWidth * drawHeight * 3);\n alpha01 = 0;\n maybeUndoPreblend = false;\n } else {\n imgData.kind = ImageKind.RGBA_32BPP;\n imgData.data = new Uint8ClampedArray(drawWidth * drawHeight * 4);\n alpha01 = 1;\n maybeUndoPreblend = true;\n\n // Color key masking (opacity) must be performed before decoding.\n this.fillOpacity(\n imgData.data,\n drawWidth,\n drawHeight,\n actualHeight,\n comps\n );\n }\n\n if (this.needsDecode) {\n this.decodeBuffer(comps);\n }\n this.colorSpace.fillRgb(\n imgData.data,\n originalWidth,\n originalHeight,\n drawWidth,\n drawHeight,\n actualHeight,\n bpc,\n comps,\n alpha01\n );\n if (maybeUndoPreblend) {\n this.undoPreblend(imgData.data, drawWidth, actualHeight);\n }\n\n return imgData;\n }\n\n fillGrayBuffer(buffer) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n buffer instanceof Uint8ClampedArray,\n 'PDFImage.fillGrayBuffer: Unsupported \"buffer\" type.'\n );\n }\n const numComps = this.numComps;\n if (numComps !== 1) {\n throw new FormatError(\n `Reading gray scale from a color image: ${numComps}`\n );\n }\n\n const width = this.width;\n const height = this.height;\n const bpc = this.bpc;\n\n // rows start at byte boundary\n const rowBytes = (width * numComps * bpc + 7) >> 3;\n const imgArray = this.getImageBytes(height * rowBytes, { internal: true });\n\n const comps = this.getComponents(imgArray);\n let i, length;\n\n if (bpc === 1) {\n // inline decoding (= inversion) for 1 bpc images\n length = width * height;\n if (this.needsDecode) {\n // invert and scale to {0, 255}\n for (i = 0; i < length; ++i) {\n buffer[i] = (comps[i] - 1) & 255;\n }\n } else {\n // scale to {0, 255}\n for (i = 0; i < length; ++i) {\n buffer[i] = -comps[i] & 255;\n }\n }\n return;\n }\n\n if (this.needsDecode) {\n this.decodeBuffer(comps);\n }\n length = width * height;\n // we aren't using a colorspace so we need to scale the value\n const scale = 255 / ((1 << bpc) - 1);\n for (i = 0; i < length; ++i) {\n buffer[i] = scale * comps[i];\n }\n }\n\n getImageBytes(\n length,\n { drawWidth, drawHeight, forceRGB = false, internal = false }\n ) {\n this.image.reset();\n this.image.drawWidth = drawWidth || this.width;\n this.image.drawHeight = drawHeight || this.height;\n this.image.forceRGB = !!forceRGB;\n const imageBytes = this.image.getBytes(length);\n\n // If imageBytes came from a DecodeStream, we're safe to transfer it\n // (and thus detach its underlying buffer) because it will constitute\n // the entire DecodeStream's data. But if it came from a Stream, we\n // need to copy it because it'll only be a portion of the Stream's\n // data, and the rest will be read later on.\n if (internal || this.image instanceof DecodeStream) {\n return imageBytes;\n }\n assert(\n imageBytes instanceof Uint8Array,\n 'PDFImage.getImageBytes: Unsupported \"imageBytes\" type.'\n );\n return new Uint8Array(imageBytes);\n }\n}\n\nexport { PDFImage };\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FeatureTest } from \"./util.js\";\n\nfunction applyMaskImageData({\n src,\n srcPos = 0,\n dest,\n destPos = 0,\n width,\n height,\n inverseDecode = false,\n}) {\n const opaque = FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n const [zeroMapping, oneMapping] = !inverseDecode ? [opaque, 0] : [0, opaque];\n const widthInSource = width >> 3;\n const widthRemainder = width & 7;\n const srcLength = src.length;\n dest = new Uint32Array(dest.buffer);\n\n for (let i = 0; i < height; i++) {\n for (const max = srcPos + widthInSource; srcPos < max; srcPos++) {\n const elem = srcPos < srcLength ? src[srcPos] : 255;\n dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping;\n }\n if (widthRemainder === 0) {\n continue;\n }\n const elem = srcPos < srcLength ? src[srcPos++] : 255;\n for (let j = 0; j < widthRemainder; j++) {\n dest[destPos++] = elem & (1 << (7 - j)) ? oneMapping : zeroMapping;\n }\n }\n\n return { srcPos, destPos };\n}\n\nexport { applyMaskImageData };\n","import {\n OPS, Util, IDENTITY_MATRIX\n} from '../shared/util';\nimport {\n StateManager,\n TextState\n} from \"./evaluator\";\nimport {isDict} from \"./primitives\";\n\nvar BoundingBoxesCalculator = (function PartialEvaluatorClosure() {\n function BoundingBoxesCalculator(ignoreCalculations) {\n this.textStateManager = new StateManager(new TextState());\n this.graphicsStateManager = new StateManager(new GraphicsState());\n this.clipping = false;\n this.boundingBoxesStack = new NoMCIDBoundingBoxStack();\n this.boundingBoxes = {};\n this.ignoreCalculations = ignoreCalculations;\n this.operationArray = [];\n this.operationIndex = -1;\n }\n\n BoundingBoxesCalculator.prototype = {\n // Get Top points of rectangle\n // rectangle corners ABCD (clockwise starting with left bottom corner)\n // rectangle base AB: A(x0, y0), B(x1, y1)\n // rectangle height h\n // return CD\n getTopPoints: function BoundingBoxesCalculator_getTopPoints(x0, y0, x1, y1, h) {\n let l = Math.sqrt(Math.pow(x1 - x0, 2) + Math.pow(y1 - y0, 2)); //base length\n if (l === 0) {\n return [x1 + h, y1 + h, x0 + h, y0 + h];\n }\n\n let e = [(x1 - x0) / l, (y1 - y0) / l]; //get unit vector for line connecting A and B\n\n let rotated_e = [-e[1], e[0]]; //rotate unit vector by 90 deg to the left\n let result_vector = [rotated_e[0] * h, rotated_e[1] * h]; //scale unit vactor\n\n return [x1 + result_vector[0], y1 + result_vector[1], x0 + result_vector[0], y0 + result_vector[1]];\n },\n\n getTextBoundingBox: function BoundingBoxesCalculator_getTextBoundingBox(glyphs) {\n let tx = 0;\n let ty = 0;\n //Save previous x value to take it into account while calculating width of marked content\n\n let ctm = this.graphicsStateManager.state.ctm;\n\n let descent = (this.textStateManager.state.font.descent || 0) * this.textStateManager.state.fontSize;\n let ascent = (this.textStateManager.state.font.ascent || 1) * this.textStateManager.state.fontSize;\n let rise = this.textStateManager.state.textRise * this.textStateManager.state.fontSize;\n\n let tx0, ty0, shift, height;\n if (!this.textStateManager.state.font.vertical) {\n //Left Bottom point of text bbox\n //Save before text matrix will be changed with going through glyphs\n [tx0, ty0] = Util.applyTransform([0, descent + rise], this.textStateManager.state.textMatrix);\n //Calculate transformed height and shift to place whole glyph inside of bbox\n shift = [tx0 - this.textStateManager.state.textMatrix[4], ty0 - this.textStateManager.state.textMatrix[5]];\n height = Util.applyTransform([0, ascent - descent], this.textStateManager.state.textMatrix); \n } else {\n [tx0, ty0] = Util.applyTransform([-this.textStateManager.state.fontSize / 2, rise], this.textStateManager.state.textMatrix);\n shift = [tx0 - this.textStateManager.state.textMatrix[4], ty0 - this.textStateManager.state.textMatrix[5]];\n height = Util.applyTransform([ascent - descent, 0], this.textStateManager.state.textMatrix); \n }\n height[0] -= this.textStateManager.state.textMatrix[4];\n height[1] -= this.textStateManager.state.textMatrix[5];\n height = Math.sqrt(height[0] * height[0] + height[1] * height[1]);\n height *= (this.textStateManager.state.textMatrix[0] * this.textStateManager.state.textMatrix[3] < 0) ? -1 : 1;\n\n let glyphsSize = [];\n for (let i = 0; i < glyphs.length; i++) {\n let glyph = glyphs[i];\n if (typeof glyph === \"number\") {\n if (this.textStateManager.state.font.vertical) {\n ty = -glyph / 1000 * this.textStateManager.state.fontSize * this.textStateManager.state.textHScale;\n } else {\n tx = -glyph / 1000 * this.textStateManager.state.fontSize * this.textStateManager.state.textHScale;\n }\n } else {\n let glyphWidth = null;\n if (this.textStateManager.state.font.vertical && glyph.vmetric) {\n glyphWidth = glyph.vmetric[0];\n } else {\n glyphWidth = glyph.width;\n }\n if (!this.textStateManager.state.font.vertical) {\n let w0 = glyphWidth * (this.textStateManager.state.fontMatrix ? this.textStateManager.state.fontMatrix[0] : 1 / 1000);\n tx = (w0 * this.textStateManager.state.fontSize + this.textStateManager.state.charSpacing + (glyph.isSpace ? this.textStateManager.state.wordSpacing : 0)) *\n this.textStateManager.state.textHScale;\n } else {\n let w1 = glyphWidth * (this.textStateManager.state.fontMatrix ? this.textStateManager.state.fontMatrix[0] : 1 / 1000);\n ty = w1 * this.textStateManager.state.fontSize - this.textStateManager.state.charSpacing - (glyph.isSpace ? this.textStateManager.state.wordSpacing : 0);\n }\n }\n let [x, y] = [this.textStateManager.state.textMatrix[4] + shift[0], this.textStateManager.state.textMatrix[5] + shift[1]];\n this.textStateManager.state.translateTextMatrix(tx, -ty);\n if (typeof glyph !== \"number\") {\n glyphsSize.push([x, y, this.textStateManager.state.textMatrix[4] + shift[0], this.textStateManager.state.textMatrix[5] + shift[1]]);\n }\n }\n\n //Right Bottom point is in text matrix after going through glyphs\n let [tx1, ty1] = [this.textStateManager.state.textMatrix[4] + shift[0], this.textStateManager.state.textMatrix[5] + shift[1]];\n //Top point can be calculated from base and height\n let [tx2, ty2, tx3, ty3] = this.getTopPoints(tx0, ty0, tx1, ty1, height);\n glyphsSize = glyphsSize.map(glyphSize => [...glyphSize, ...this.getTopPoints(...glyphSize, height)])\n\n //Apply transform matrix to bbox\n let [x0, y0] = Util.applyTransform([tx0, ty0], ctm);\n let [x1, y1] = Util.applyTransform([tx1, ty1], ctm);\n let [x2, y2] = Util.applyTransform([tx2, ty2], ctm);\n let [x3, y3] = Util.applyTransform([tx3, ty3], ctm);\n glyphsSize = glyphsSize.map(glyphSize => [\n ...Util.applyTransform([glyphSize[0], glyphSize[1]], ctm),\n ...Util.applyTransform([glyphSize[2], glyphSize[3]], ctm),\n ...Util.applyTransform([glyphSize[4], glyphSize[5]], ctm),\n ...Util.applyTransform([glyphSize[6], glyphSize[7]], ctm),\n ]);\n let minX, maxX, minY, maxY;\n let glyphsPos = [];\n glyphsSize.forEach(glyphSize => {\n let xPoints = [...glyphSize].filter((point, index) => index % 2 === 0);\n let yPoints = [...glyphSize].filter((point, index) => index % 2 !== 0);\n minX = Math.min(...xPoints);\n maxX = Math.max(...xPoints);\n\n minY = Math.min(...yPoints);\n maxY = Math.max(...yPoints);\n glyphsPos.push([minX, minY, maxX - minX, maxY - minY]);\n })\n this.operationArray[this.operationIndex] = glyphsPos;\n\n minX = Math.min(x0, x1, x2, x3);\n maxX = Math.max(x0, x1, x2, x3);\n\n minY = Math.min(y0, y1, y2, y3);\n maxY = Math.max(y0, y1, y2, y3);\n\n this.boundingBoxesStack.save(minX, minY, maxX - minX, maxY - minY);\n },\n\n getClippingGraphicsBoundingBox: function BoundingBoxesCalculator_getClippingGraphicsBoundingBox() {\n let state = this.graphicsStateManager.state;\n\n if (state.clip === null) {\n return {\n x: state.x,\n y: state.y,\n w: state.w,\n h: state.h\n };\n }\n\n\n if ((state.x < state.clip.x && state.x + state.w < state.clip.x) ||\n (state.x > state.clip.x + state.clip.w && state.x + state.w > state.clip.x + state.clip.w) ||\n (state.y < state.clip.y && state.y + state.h < state.clip.y) ||\n (state.y > state.clip.y + state.clip.h && state.y + state.h > state.clip.y + state.clip.h)) {\n return null;\n }\n\n return {\n x: Math.max(state.x, state.clip.x),\n y: Math.max(state.y, state.clip.y),\n w: Math.min(state.x + state.w, state.clip.x + state.clip.w) - Math.max(state.x, state.clip.x),\n h: Math.min(state.y + state.h, state.clip.y + state.clip.h) - Math.max(state.y, state.clip.y)\n };\n },\n\n saveGraphicsBoundingBox: function saveGraphicsBoundingBox() {\n let clippingBBox = this.getClippingGraphicsBoundingBox();\n if (clippingBBox === null) {\n return;\n }\n\n let x = clippingBBox.x;\n let y = clippingBBox.y;\n let w = clippingBBox.w;\n let h = clippingBBox.h;\n\n this.graphicsStateManager.state.x = null;\n this.graphicsStateManager.state.y = null;\n this.graphicsStateManager.state.w = null;\n this.graphicsStateManager.state.h = null;\n\n this.boundingBoxesStack.save(x, y, w, h);\n },\n\n getRectBoundingBox: function getRectBoundingBox(x, y, w, h) {\n let state = this.graphicsStateManager.state;\n\n let [x1, y1] = Util.applyTransform([x, y], state.ctm);\n let [x2, y2] = Util.applyTransform([x + w, y], state.ctm);\n let [x3, y3] = Util.applyTransform([x, y + h], state.ctm);\n let [x4, y4] = Util.applyTransform([x + w, y + h], state.ctm);\n\n x = Math.min(x1, x2, x3, x4);\n y = Math.min(y1, y2, y3, y4);\n w = Math.max(x1, x2, x3, x4) - x;\n h = Math.max(y1, y2, y3, y4) - y;\n\n if (state.w === null) {\n state.w = Math.abs(w);\n } else {\n state.w = Math.max(state.x + state.w, x, x + w) -\n Math.min(state.x, x, x + w);\n }\n\n if (state.h === null) {\n state.h = Math.abs(h);\n } else {\n state.h = Math.max(state.y + state.h, y, y + h) -\n Math.min(state.y, y, y + h);\n }\n\n if (state.x === null) {\n state.x = Math.min(x, x + w);\n } else {\n state.x = Math.min(state.x, x, x + w);\n }\n\n if (state.y === null) {\n state.y = Math.min(y, y + h);\n } else {\n state.y = Math.min(state.y, y, y + h);\n }\n },\n\n getLineBoundingBox: function getLineBoundingBox(x, y) {\n let state = this.graphicsStateManager.state;\n\n [x, y] = Util.applyTransform([x, y], state.ctm);\n\n if (state.w === null) {\n state.w = Math.abs(x - state.move_x);\n } else {\n state.w = Math.max(x, state.move_x, state.x + state.w) -\n Math.min(x, state.move_x, state.x);\n }\n\n if (state.h === null) {\n state.h = Math.abs(y - state.move_y);\n } else {\n state.h = Math.max(y, state.move_y, state.y + state.h) -\n Math.min(y, state.move_y, state.y);\n }\n\n if (state.x === null) {\n state.x = Math.min(x, state.move_x);\n } else {\n state.x = Math.min(x, state.move_x, state.x);\n }\n\n if (state.y === null) {\n state.y = Math.min(y, state.move_y);\n } else {\n state.y = Math.min(y, state.move_y, state.y);\n }\n\n //Next line will start from the end of current line\n state.move_x = x;\n state.move_y = y;\n },\n\n getCurve: function getCurve(a, b, c, d) {\n return function curve(t) {\n return Math.pow(1 - t, 3) * a + 3 * t * Math.pow(1 - t, 2) * b + 3 * t * t * (1 - t) * c + t * t * t * d;\n }\n },\n\n //Equate the derivative to zero in order to find local extremum and solve the equation\n getCurveRoots: function getCurveRoots(a, b, c, d) {\n let sqrt;\n let root_1;\n let root_2;\n\n sqrt = Math.pow(6 * a - 12 * b + 6 * c, 2)\n - 4 * (3 * b - 3 * a) * (-3 * a + 9 * b - 9 * c + 3 * d);\n root_1 = null;\n root_2 = null;\n\n //Calculate roots if equation has roots and they are real\n //Equation has infinite(too big) roots if denominator is too small\n if (Math.abs(a + 3 * c - 3 * b - d) > Math.pow(0.1, -10)) {\n if (sqrt >= 0) {\n root_1 = ((-6 * a + 12 * b - 6 * c) + Math.sqrt(sqrt)) / (2 * (-3 * a + 9 * b - 9 * c + 3 * d));\n root_2 = ((-6 * a + 12 * b - 6 * c) - Math.sqrt(sqrt)) / (2 * (-3 * a + 9 * b - 9 * c + 3 * d));\n }\n } else if (sqrt > Math.pow(0.1, -10)) {\n root_1 = (a - b) / (2 * a - 4 * b + 2 * c);\n }\n\n //We are only interested in roots that lay in range from 0 to 1\n //Ignore other ones\n if (root_1 !== null && (root_1 < 0 || root_1 > 1)) {\n root_1 = null;\n }\n if (root_2 !== null && (root_2 < 0 || root_2 > 1)) {\n root_2 = null;\n }\n\n return [root_1, root_2];\n },\n\n getCurveBoundingBox: function getCurveBoundingBox(op, x0, y0, x1, y1, x2, y2, x3, y3) {\n let state = this.graphicsStateManager.state;\n\n if (op !== OPS.curveTo2) {\n [x1, y1] = Util.applyTransform([x1, y1], state.ctm);\n }\n [x2, y2] = Util.applyTransform([x2, y2], state.ctm);\n [x3, y3] = Util.applyTransform([x3, y3], state.ctm);\n\n let curveX = this.getCurve(x0, x1, x2, x3);\n let curveY = this.getCurve(y0, y1, y2, y3);\n\n let [root_1, root_2] = this.getCurveRoots(x0, x1, x2, x3);\n\n let minX = Math.min(x0, x3, root_1 !== null ? curveX(root_1) : Number.MAX_VALUE, root_2 !== null ? curveX(root_2) : Number.MAX_VALUE);\n let maxX = Math.max(x0, x3, root_1 !== null ? curveX(root_1) : Number.MIN_VALUE, root_2 !== null ? curveX(root_2) : Number.MIN_VALUE);\n\n [root_1, root_2] = this.getCurveRoots(y0, y1, y2, y3);\n\n let minY = Math.min(y0, y3, root_1 !== null ? curveY(root_1) : Number.MAX_VALUE, root_2 !== null ? curveY(root_2) : Number.MAX_VALUE);\n let maxY = Math.max(y0, y3, root_1 !== null ? curveY(root_1) : Number.MIN_VALUE, root_2 !== null ? curveY(root_2) : Number.MIN_VALUE);\n\n let x = minX;\n let y = minY;\n let h = maxY - minY;\n let w = maxX - minX;\n\n if (state.w === null) {\n state.w = Math.abs(w);\n } else {\n state.w = Math.max(state.x + state.w, x, x + w) -\n Math.min(state.x, x, x + w);\n }\n\n if (state.h === null) {\n state.h = Math.abs(h);\n } else {\n state.h = Math.max(state.y + state.h, y, y + h) -\n Math.min(state.y, y, y + h);\n }\n\n if (state.x === null) {\n state.x = Math.min(x, x + w);\n } else {\n state.x = Math.min(state.x, x, x + w);\n }\n\n if (state.y === null) {\n state.y = Math.min(y, y + h);\n } else {\n state.y = Math.min(state.y, y, y + h);\n }\n\n state.move_x = x;\n state.move_y = y;\n },\n\n getClip: function getClip() {\n if (this.clipping) {\n let state = this.graphicsStateManager.state;\n if (state.clip === null) {\n state.clip = {\n x: state.x,\n y: state.y,\n w: state.w,\n h: state.h\n };\n } else {\n //Intersection with previous clip\n state.clip = {\n x: Math.max(state.x, state.clip.x),\n y: Math.max(state.y, state.clip.y),\n w: Math.min(state.x + state.w, state.clip.x + state.clip.w) - Math.max(state.x, state.clip.x),\n h: Math.min(state.y + state.h, state.clip.y + state.clip.h) - Math.max(state.y, state.clip.y),\n }\n }\n this.clipping = false;\n }\n },\n\n getNoMCIDBoundingBoxes: function getNoMCIDBoundingBoxes() {\n return this.boundingBoxesStack.get();\n },\n\n getImageBoundingBox: function getImageBoundingBox() {\n let state = this.graphicsStateManager.state;\n let [x0, y0] = Util.applyTransform([0, 0], state.ctm);\n let [x1, y1] = Util.applyTransform([0, 1], state.ctm);\n let [x2, y2] = Util.applyTransform([1, 1], state.ctm);\n let [x3, y3] = Util.applyTransform([1, 0], state.ctm);\n\n state.x = Math.min(x0, x1, x2, x3);\n state.y = Math.min(y0, y1, y2, y3);\n state.w = Math.max(x0, x1, x2, x3) - state.x;\n state.h = Math.max(y0, y1, y2, y3) - state.y;\n },\n\n parseOperator: function BoundingBoxesCalculator_parseOperator(fn, args) {\n if (this.ignoreCalculations) {\n return;\n }\n\n if (fn !== OPS.markPoint && fn !== OPS.markPointProps &&\n fn !== OPS.beginMarkedContent && fn !== OPS.beginMarkedContentProps) {\n this.boundingBoxesStack.inc();\n }\n\n switch (fn | 0) {\n case OPS.restore:\n this.graphicsStateManager.restore();\n this.textStateManager.restore();\n break;\n case OPS.save:\n this.graphicsStateManager.save();\n this.textStateManager.save();\n break;\n case OPS.fill:\n case OPS.eoFill:\n case OPS.eoFillStroke:\n case OPS.fillStroke:\n case OPS.stroke:\n case OPS.closeEOFillStroke:\n case OPS.closeFillStroke:\n case OPS.closeStroke:\n this.getClip();\n this.saveGraphicsBoundingBox();\n break;\n case OPS.endPath:\n this.getClip();\n this.graphicsStateManager.state.clean();\n break;\n case OPS.transform:\n this.graphicsStateManager.state.ctm = Util.transform(this.graphicsStateManager.state.ctm, args);\n break;\n case OPS.clip:\n case OPS.eoClip:\n this.clipping = true;\n break;\n case OPS.setFont:\n this.textStateManager.state.fontSize = args[0];\n this.textStateManager.state.fontMatrix = args[1].font.fontMatrix;\n this.textStateManager.state.font = args[1].font;\n break;\n case OPS.setTextMatrix:\n this.textStateManager.state.setTextMatrix(args[0], args[1], args[2], args[3],\n args[4], args[5]);\n this.textStateManager.state.setTextLineMatrix(args[0], args[1], args[2], args[3],\n args[4], args[5]);\n break;\n case OPS.nextLine:\n this.textStateManager.state.carriageReturn();\n break;\n case OPS.setCharSpacing:\n this.textStateManager.state.charSpacing = args[0];\n break;\n case OPS.setWordSpacing:\n this.textStateManager.state.wordSpacing = args[0];\n break;\n case OPS.setHScale:\n this.textStateManager.state.textHScale = args[0] / 100;\n break;\n case OPS.setLeading:\n this.textStateManager.state.leading = args[0];\n break;\n case OPS.setTextRise:\n this.textStateManager.state.textRise = args[0];\n break;\n case OPS.setLeadingMoveText:\n this.textStateManager.state.leading = -args[1];\n this.textStateManager.state.translateTextLineMatrix(...args);\n this.textStateManager.state.textMatrix = this.textStateManager.state.textLineMatrix.slice();\n break;\n case OPS.moveText:\n this.textStateManager.state.translateTextLineMatrix(args[0], args[1]);\n this.textStateManager.state.textMatrix = this.textStateManager.state.textLineMatrix.slice();\n break;\n case OPS.beginText:\n this.textStateManager.state.textMatrix = IDENTITY_MATRIX.slice();\n this.textStateManager.state.textLineMatrix = IDENTITY_MATRIX.slice();\n break;\n case OPS.moveTo:\n let ctm = this.graphicsStateManager.state.ctm.slice();\n [this.graphicsStateManager.state.move_x, this.graphicsStateManager.state.move_y] = Util.applyTransform(args, ctm);\n break;\n case OPS.lineTo:\n this.getLineBoundingBox(args[0], args[1]);\n break;\n case OPS.curveTo:\n this.getCurveBoundingBox(\n OPS.curveTo,\n this.graphicsStateManager.state.move_x,\n this.graphicsStateManager.state.move_y,\n args[0],\n args[1],\n args[2],\n args[3],\n args[4],\n args[5],\n );\n break;\n case OPS.curveTo2:\n this.getCurveBoundingBox(\n OPS.curveTo2,\n this.graphicsStateManager.state.move_x,\n this.graphicsStateManager.state.move_y,\n this.graphicsStateManager.state.move_x,\n this.graphicsStateManager.state.move_y,\n args[0],\n args[1],\n args[2],\n args[3]\n );\n break;\n case OPS.curveTo3:\n this.getCurveBoundingBox(\n OPS.curveTo3,\n this.graphicsStateManager.state.move_x,\n this.graphicsStateManager.state.move_y,\n args[0],\n args[1],\n args[2],\n args[3],\n args[2],\n args[3]\n );\n break;\n case OPS.rectangle:\n this.getRectBoundingBox(args[0], args[1], args[2], args[3]);\n break;\n case OPS.markPoint:\n case OPS.markPointProps:\n case OPS.beginMarkedContent:\n //Marked content forms the scope\n this.boundingBoxesStack.begin();\n break;\n case OPS.beginMarkedContentProps:\n if (isDict(args[1]) && args[1].has('MCID')) {\n this.boundingBoxesStack.begin(args[1].get('MCID'));\n\n //Clear graphics bounding box to split graphics in different marked content\n this.graphicsStateManager.state.x = null;\n this.graphicsStateManager.state.y = null;\n this.graphicsStateManager.state.w = null;\n this.graphicsStateManager.state.h = null;\n\n } else {\n //Marked content with no MCID still forms the scope\n this.boundingBoxesStack.begin();\n }\n break;\n case OPS.endMarkedContent:\n let boundingBox = this.boundingBoxesStack.end();\n if (boundingBox !== null) {\n this.boundingBoxes[boundingBox.mcid] = {\n x: boundingBox.x,\n y: boundingBox.y,\n width: boundingBox.w,\n height: boundingBox.h\n };\n }\n break;\n case OPS.paintXObject:\n if (args[0] === 'Image') {\n this.getImageBoundingBox();\n this.saveGraphicsBoundingBox();\n }\n break;\n case OPS.showText:\n this.getTextBoundingBox(args[0]);\n break;\n default:\n break;\n }\n },\n\n setFont: function BoundingBoxesCalculator_setFont(translated) {\n this.textStateManager.state.fontMatrix = translated.font.fontMatrix;\n this.textStateManager.state.font = translated.font;\n },\n\n incrementOperation: function BoundingBoxesCalculator_incrementOperation(fn) {\n if (this.ignoreCalculations) {\n return;\n }\n this.operationIndex++;\n }\n };\n\n return BoundingBoxesCalculator;\n})();\n\nvar GraphicsState = (function GraphicsState() {\n function GraphicsState() {\n this.x = null;\n this.y = null;\n this.w = null;\n this.h = null;\n this.move_x = null;\n this.move_y = null;\n this.ctm = IDENTITY_MATRIX.slice();\n this.clip = null;\n }\n\n GraphicsState.prototype = {\n clone: function GraphicsState_clone() {\n var clone = Object.create(this);\n clone.ctm = this.ctm.slice();\n return clone;\n },\n clean: function GraphicsState_clear() {\n this.x = null;\n this.y = null;\n this.w = null;\n this.h = null;\n this.move_x = 0;\n this.move_y = 0;\n //this.ctm = IDENTITY_MATRIX.slice();\n //clip state stays the same\n }\n };\n return GraphicsState;\n})();\n\nvar BoundingBoxStack = (function BoundingBoxStack() {\n function BoundingBoxStack() {\n this.stack = [];\n }\n\n BoundingBoxStack.prototype = {\n begin: function BoundingBoxStack_begin(mcid) {\n this.stack.push({\n x: null,\n y: null,\n w: null,\n h: null,\n mcid: Number.isInteger(mcid) ? mcid : null\n });\n },\n\n save: function BoundingBoxStack_save(x, y, w, h) {\n let current = this.stack[this.stack.length - 1];\n\n if (!current) {\n return;\n }\n\n if (current.w === null) {\n current.w = w;\n } else {\n current.w = Math.max(current.x + current.w, x + w) - Math.min(current.x, x);\n }\n\n if (current.x === null) {\n current.x = x;\n } else {\n current.x = Math.min(current.x, x);\n }\n\n if (current.h === null) {\n current.h = h;\n } else {\n current.h = Math.max(current.y + current.h, y + h) - Math.min(current.y, y);\n }\n\n if (current.y === null) {\n current.y = y;\n } else {\n current.y = Math.min(current.y, y);\n }\n },\n\n end: function BoundingBoxStack_end() {\n let last = this.stack.pop();\n\n if (!last) {\n return null;\n }\n\n if (last.mcid !== null) {\n return last;\n } else {\n this.save(last.x, last.y, last.w, last.h);\n return null;\n }\n },\n\n };\n\n return BoundingBoxStack;\n})();\n\nvar NoMCIDBoundingBoxStack = (function NoMCIDBoundingBoxStack() {\n function NoMCIDBoundingBoxStack() {\n this.boundingBoxesStack = new BoundingBoxStack();\n this.contentCounter = null; \n this.content = {};\n this.pointer = {};\n }\n\n NoMCIDBoundingBoxStack.prototype = {\n begin: function NoMCIDBoundingBoxStack_begin(mcid) {\n if (!this.contentCounter || this.contentCounter.inMarkedContent !== false) {\n this.inc(true);\n } else {\n const newContentItem = { parent: this.pointer, contentItems: [] };\n this.pointer.contentItems.push(newContentItem);\n this.pointer = newContentItem;\n }\n this.boundingBoxesStack.begin(mcid);\n },\n\n save: function NoMCIDBoundingBoxStack_save(x, y, w, h) {\n if (this.pointer.contentItems) {\n this.pointer.contentItems.push({ \n contentItem: { x, y, w, h }\n });\n this.pointer.final = true;\n } else {\n console.log('NoMCIDBoundingBoxStackError:', 'The pointer was in an invalid state, saved data will be lost');\n }\n this.boundingBoxesStack.save(x, y, w, h);\n },\n\n end: function NoMCIDBoundingBoxStack_end() {\n const tempPointer = this.pointer;\n this.pointer = tempPointer.parent || this.content;\n delete tempPointer.parent;\n\n if (this.pointer === this.content) {\n this.contentCounter.inMarkedContent = null;\n this.pointer = {};\n }\n\n return this.boundingBoxesStack.end();\n },\n\n inc: function NoMCIDBoundingBoxStack_inc(isMC = false) {\n if (!this.contentCounter) {\n this.contentCounter = { index: 0, inMarkedContent: !isMC }\n this.content[this.contentCounter.index] = { parent: this.content, contentItems: [] };\n this.pointer = this.content[this.contentCounter.index];\n } else if (\n this.contentCounter.inMarkedContent !== false && isMC || \n !!this.contentCounter.inMarkedContent === isMC && !Object.keys(this.pointer).length\n ) {\n delete this.content[this.contentCounter.index].parent;\n this.contentCounter = { index: this.contentCounter.index + 1, inMarkedContent: !isMC }\n this.content[this.contentCounter.index] = { parent: this.content, contentItems: [] };\n this.pointer = this.content[this.contentCounter.index];\n }\n },\n\n get: function NoMCIDBoundingBoxStack_get() {\n try {\n if (Object.keys(this.content).length && this.contentCounter) {\n this.content[this.contentCounter.index].parent && delete this.content[this.contentCounter.index].parent;\n const result = JSON.parse(JSON.stringify(this.content));\n this.content[this.contentCounter.index].parent = this.content;\n return result;\n }\n return {};\n } catch (err) {\n console.log('NoMCIDBoundingBoxStackError:', err.message || err);\n return {};\n }\n },\n };\n return NoMCIDBoundingBoxStack;\n})();\n\nexport {\n BoundingBoxesCalculator,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n collectActions,\n MissingDataException,\n recoverJsURL,\n toRomanNumerals,\n XRefEntryException,\n} from \"./core_utils.js\";\nimport {\n createValidAbsoluteUrl,\n DocumentActionEventType,\n FormatError,\n info,\n objectSize,\n PermissionFlag,\n shadow,\n stringToPDFString,\n stringToUTF8String,\n warn,\n} from \"../shared/util.js\";\nimport {\n Dict,\n isDict,\n isName,\n isRefsEqual,\n Name,\n Ref,\n RefSet,\n RefSetCache,\n} from \"./primitives.js\";\nimport { NameTree, NumberTree } from \"./name_number_tree.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { clearGlobalCaches } from \"./cleanup_helper.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { FileSpec } from \"./file_spec.js\";\nimport { GlobalImageCache } from \"./image_utils.js\";\nimport { MetadataParser } from \"./metadata_parser.js\";\nimport { StructTreeRoot } from \"./struct_tree.js\";\n\nfunction fetchDestination(dest) {\n if (dest instanceof Dict) {\n dest = dest.get(\"D\");\n }\n return Array.isArray(dest) ? dest : null;\n}\n\nclass Catalog {\n constructor(pdfManager, xref) {\n this.pdfManager = pdfManager;\n this.xref = xref;\n\n this._catDict = xref.getCatalogObj();\n if (!(this._catDict instanceof Dict)) {\n throw new FormatError(\"Catalog object is not a dictionary.\");\n }\n // Given that `XRef.parse` will both fetch *and* validate the /Pages-entry,\n // the following call must always succeed here:\n this.toplevelPagesDict; // eslint-disable-line no-unused-expressions\n\n this._actualNumPages = null;\n\n this.fontCache = new RefSetCache();\n this.builtInCMapCache = new Map();\n this.standardFontDataCache = new Map();\n this.globalImageCache = new GlobalImageCache();\n this.pageKidsCountCache = new RefSetCache();\n this.pageIndexCache = new RefSetCache();\n this.nonBlendModesSet = new RefSet();\n }\n\n get version() {\n const version = this._catDict.get(\"Version\");\n return shadow(\n this,\n \"version\",\n version instanceof Name ? version.name : null\n );\n }\n\n get lang() {\n const lang = this._catDict.get(\"Lang\");\n return shadow(\n this,\n \"lang\",\n typeof lang === \"string\" ? stringToPDFString(lang) : null\n );\n }\n\n /**\n * @type {boolean} `true` for pure XFA documents,\n * `false` for XFA Foreground documents.\n */\n get needsRendering() {\n const needsRendering = this._catDict.get(\"NeedsRendering\");\n return shadow(\n this,\n \"needsRendering\",\n typeof needsRendering === \"boolean\" ? needsRendering : false\n );\n }\n\n get collection() {\n let collection = null;\n try {\n const obj = this._catDict.get(\"Collection\");\n if (obj instanceof Dict && obj.size > 0) {\n collection = obj;\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n info(\"Cannot fetch Collection entry; assuming no collection is present.\");\n }\n return shadow(this, \"collection\", collection);\n }\n\n get acroForm() {\n let acroForm = null;\n try {\n const obj = this._catDict.get(\"AcroForm\");\n if (obj instanceof Dict && obj.size > 0) {\n acroForm = obj;\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n info(\"Cannot fetch AcroForm entry; assuming no forms are present.\");\n }\n return shadow(this, \"acroForm\", acroForm);\n }\n\n get acroFormRef() {\n const value = this._catDict.getRaw(\"AcroForm\");\n return shadow(this, \"acroFormRef\", value instanceof Ref ? value : null);\n }\n\n get metadata() {\n const streamRef = this._catDict.getRaw(\"Metadata\");\n if (!(streamRef instanceof Ref)) {\n return shadow(this, \"metadata\", null);\n }\n\n let metadata = null;\n try {\n const suppressEncryption = !(\n this.xref.encrypt && this.xref.encrypt.encryptMetadata\n );\n const stream = this.xref.fetch(streamRef, suppressEncryption);\n\n if (stream instanceof BaseStream && stream.dict instanceof Dict) {\n const type = stream.dict.get(\"Type\");\n const subtype = stream.dict.get(\"Subtype\");\n\n if (isName(type, \"Metadata\") && isName(subtype, \"XML\")) {\n // XXX: This should examine the charset the XML document defines,\n // however since there are currently no real means to decode arbitrary\n // charsets, let's just hope that the author of the PDF was reasonable\n // enough to stick with the XML default charset, which is UTF-8.\n const data = stringToUTF8String(stream.getString());\n if (data) {\n metadata = new MetadataParser(data).serializable;\n }\n }\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n info(`Skipping invalid Metadata: \"${ex}\".`);\n }\n return shadow(this, \"metadata\", metadata);\n }\n\n get markInfo() {\n let markInfo = null;\n try {\n markInfo = this._readMarkInfo();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Unable to read mark info.\");\n }\n return shadow(this, \"markInfo\", markInfo);\n }\n\n /**\n * @private\n */\n _readMarkInfo() {\n const obj = this._catDict.get(\"MarkInfo\");\n if (!(obj instanceof Dict)) {\n return null;\n }\n\n const markInfo = {\n Marked: false,\n UserProperties: false,\n Suspects: false,\n };\n for (const key in markInfo) {\n const value = obj.get(key);\n if (typeof value === \"boolean\") {\n markInfo[key] = value;\n }\n }\n\n return markInfo;\n }\n\n get structTreeRoot() {\n let structTree = null;\n try {\n structTree = this._readStructTreeRoot();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Unable read to structTreeRoot info.\");\n }\n return shadow(this, \"structTreeRoot\", structTree);\n }\n\n /**\n * @private\n */\n _readStructTreeRoot() {\n const obj = this._catDict.get(\"StructTreeRoot\");\n if (!(obj instanceof Dict)) {\n return null;\n }\n const root = new StructTreeRoot(obj);\n root.init();\n return root;\n }\n\n get toplevelPagesDict() {\n const pagesObj = this._catDict.get(\"Pages\");\n if (!(pagesObj instanceof Dict)) {\n throw new FormatError(\"Invalid top-level pages dictionary.\");\n }\n return shadow(this, \"toplevelPagesDict\", pagesObj);\n }\n\n get documentOutline() {\n let obj = null;\n try {\n obj = this._readDocumentOutline();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Unable to read document outline.\");\n }\n return shadow(this, \"documentOutline\", obj);\n }\n\n /**\n * @private\n */\n _readDocumentOutline() {\n let obj = this._catDict.get(\"Outlines\");\n if (!(obj instanceof Dict)) {\n return null;\n }\n obj = obj.getRaw(\"First\");\n if (!(obj instanceof Ref)) {\n return null;\n }\n\n const root = { items: [] };\n const queue = [{ obj, parent: root }];\n // To avoid recursion, keep track of the already processed items.\n const processed = new RefSet();\n processed.put(obj);\n const xref = this.xref,\n blackColor = new Uint8ClampedArray(3);\n\n while (queue.length > 0) {\n const i = queue.shift();\n const outlineDict = xref.fetchIfRef(i.obj);\n if (outlineDict === null) {\n continue;\n }\n if (!outlineDict.has(\"Title\")) {\n throw new FormatError(\"Invalid outline item encountered.\");\n }\n\n const data = { url: null, dest: null };\n Catalog.parseDestDictionary({\n destDict: outlineDict,\n resultObj: data,\n docBaseUrl: this.pdfManager.docBaseUrl,\n });\n const title = outlineDict.get(\"Title\");\n const flags = outlineDict.get(\"F\") || 0;\n const color = outlineDict.getArray(\"C\");\n const count = outlineDict.get(\"Count\");\n let rgbColor = blackColor;\n\n // We only need to parse the color when it's valid, and non-default.\n if (\n Array.isArray(color) &&\n color.length === 3 &&\n (color[0] !== 0 || color[1] !== 0 || color[2] !== 0)\n ) {\n rgbColor = ColorSpace.singletons.rgb.getRgb(color, 0);\n }\n\n const outlineItem = {\n dest: data.dest,\n url: data.url,\n unsafeUrl: data.unsafeUrl,\n newWindow: data.newWindow,\n title: stringToPDFString(title),\n color: rgbColor,\n count: Number.isInteger(count) ? count : undefined,\n bold: !!(flags & 2),\n italic: !!(flags & 1),\n items: [],\n };\n\n i.parent.items.push(outlineItem);\n obj = outlineDict.getRaw(\"First\");\n if (obj instanceof Ref && !processed.has(obj)) {\n queue.push({ obj, parent: outlineItem });\n processed.put(obj);\n }\n obj = outlineDict.getRaw(\"Next\");\n if (obj instanceof Ref && !processed.has(obj)) {\n queue.push({ obj, parent: i.parent });\n processed.put(obj);\n }\n }\n return root.items.length > 0 ? root.items : null;\n }\n\n get permissions() {\n let permissions = null;\n try {\n permissions = this._readPermissions();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Unable to read permissions.\");\n }\n return shadow(this, \"permissions\", permissions);\n }\n\n /**\n * @private\n */\n _readPermissions() {\n const encrypt = this.xref.trailer.get(\"Encrypt\");\n if (!(encrypt instanceof Dict)) {\n return null;\n }\n\n let flags = encrypt.get(\"P\");\n if (typeof flags !== \"number\") {\n return null;\n }\n\n // PDF integer objects are represented internally in signed 2's complement\n // form. Therefore, convert the signed decimal integer to a signed 2's\n // complement binary integer so we can use regular bitwise operations on it.\n flags += 2 ** 32;\n\n const permissions = [];\n for (const key in PermissionFlag) {\n const value = PermissionFlag[key];\n if (flags & value) {\n permissions.push(value);\n }\n }\n return permissions;\n }\n\n get optionalContentConfig() {\n let config = null;\n try {\n const properties = this._catDict.get(\"OCProperties\");\n if (!properties) {\n return shadow(this, \"optionalContentConfig\", null);\n }\n const defaultConfig = properties.get(\"D\");\n if (!defaultConfig) {\n return shadow(this, \"optionalContentConfig\", null);\n }\n const groupsData = properties.get(\"OCGs\");\n if (!Array.isArray(groupsData)) {\n return shadow(this, \"optionalContentConfig\", null);\n }\n const groups = [];\n const groupRefs = [];\n // Ensure all the optional content groups are valid.\n for (const groupRef of groupsData) {\n if (!(groupRef instanceof Ref)) {\n continue;\n }\n groupRefs.push(groupRef);\n const group = this.xref.fetchIfRef(groupRef);\n groups.push({\n id: groupRef.toString(),\n name:\n typeof group.get(\"Name\") === \"string\"\n ? stringToPDFString(group.get(\"Name\"))\n : null,\n intent:\n typeof group.get(\"Intent\") === \"string\"\n ? stringToPDFString(group.get(\"Intent\"))\n : null,\n });\n }\n config = this._readOptionalContentConfig(defaultConfig, groupRefs);\n config.groups = groups;\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`Unable to read optional content config: ${ex}`);\n }\n return shadow(this, \"optionalContentConfig\", config);\n }\n\n _readOptionalContentConfig(config, contentGroupRefs) {\n function parseOnOff(refs) {\n const onParsed = [];\n if (Array.isArray(refs)) {\n for (const value of refs) {\n if (!(value instanceof Ref)) {\n continue;\n }\n if (contentGroupRefs.includes(value)) {\n onParsed.push(value.toString());\n }\n }\n }\n return onParsed;\n }\n\n function parseOrder(refs, nestedLevels = 0) {\n if (!Array.isArray(refs)) {\n return null;\n }\n const order = [];\n\n for (const value of refs) {\n if (value instanceof Ref && contentGroupRefs.includes(value)) {\n parsedOrderRefs.put(value); // Handle \"hidden\" groups, see below.\n\n order.push(value.toString());\n continue;\n }\n // Handle nested /Order arrays (see e.g. issue 9462 and bug 1240641).\n const nestedOrder = parseNestedOrder(value, nestedLevels);\n if (nestedOrder) {\n order.push(nestedOrder);\n }\n }\n\n if (nestedLevels > 0) {\n return order;\n }\n const hiddenGroups = [];\n for (const groupRef of contentGroupRefs) {\n if (parsedOrderRefs.has(groupRef)) {\n continue;\n }\n hiddenGroups.push(groupRef.toString());\n }\n if (hiddenGroups.length) {\n order.push({ name: null, order: hiddenGroups });\n }\n\n return order;\n }\n\n function parseNestedOrder(ref, nestedLevels) {\n if (++nestedLevels > MAX_NESTED_LEVELS) {\n warn(\"parseNestedOrder - reached MAX_NESTED_LEVELS.\");\n return null;\n }\n const value = xref.fetchIfRef(ref);\n if (!Array.isArray(value)) {\n return null;\n }\n const nestedName = xref.fetchIfRef(value[0]);\n if (typeof nestedName !== \"string\") {\n return null;\n }\n const nestedOrder = parseOrder(value.slice(1), nestedLevels);\n if (!nestedOrder || !nestedOrder.length) {\n return null;\n }\n return { name: stringToPDFString(nestedName), order: nestedOrder };\n }\n\n const xref = this.xref,\n parsedOrderRefs = new RefSet(),\n MAX_NESTED_LEVELS = 10;\n\n return {\n name:\n typeof config.get(\"Name\") === \"string\"\n ? stringToPDFString(config.get(\"Name\"))\n : null,\n creator:\n typeof config.get(\"Creator\") === \"string\"\n ? stringToPDFString(config.get(\"Creator\"))\n : null,\n baseState:\n config.get(\"BaseState\") instanceof Name\n ? config.get(\"BaseState\").name\n : null,\n on: parseOnOff(config.get(\"ON\")),\n off: parseOnOff(config.get(\"OFF\")),\n order: parseOrder(config.get(\"Order\")),\n groups: null,\n };\n }\n\n setActualNumPages(num = null) {\n this._actualNumPages = num;\n }\n\n get hasActualNumPages() {\n return this._actualNumPages !== null;\n }\n\n get _pagesCount() {\n const obj = this.toplevelPagesDict.get(\"Count\");\n if (!Number.isInteger(obj)) {\n throw new FormatError(\n \"Page count in top-level pages dictionary is not an integer.\"\n );\n }\n return shadow(this, \"_pagesCount\", obj);\n }\n\n get numPages() {\n return this.hasActualNumPages ? this._actualNumPages : this._pagesCount;\n }\n\n get destinations() {\n const obj = this._readDests(),\n dests = Object.create(null);\n if (obj instanceof NameTree) {\n for (const [key, value] of obj.getAll()) {\n const dest = fetchDestination(value);\n if (dest) {\n dests[stringToPDFString(key)] = dest;\n }\n }\n } else if (obj instanceof Dict) {\n obj.forEach(function (key, value) {\n const dest = fetchDestination(value);\n if (dest) {\n dests[key] = dest;\n }\n });\n }\n return shadow(this, \"destinations\", dests);\n }\n\n getDestination(id) {\n const obj = this._readDests();\n if (obj instanceof NameTree) {\n const dest = fetchDestination(obj.get(id));\n if (dest) {\n return dest;\n }\n // Fallback to checking the *entire* NameTree, in an attempt to handle\n // corrupt PDF documents with out-of-order NameTrees (fixes issue 10272).\n const allDest = this.destinations[id];\n if (allDest) {\n warn(`Found \"${id}\" at an incorrect position in the NameTree.`);\n return allDest;\n }\n } else if (obj instanceof Dict) {\n const dest = fetchDestination(obj.get(id));\n if (dest) {\n return dest;\n }\n }\n return null;\n }\n\n /**\n * @private\n */\n _readDests() {\n const obj = this._catDict.get(\"Names\");\n if (obj && obj.has(\"Dests\")) {\n return new NameTree(obj.getRaw(\"Dests\"), this.xref);\n } else if (this._catDict.has(\"Dests\")) {\n // Simple destination dictionary.\n return this._catDict.get(\"Dests\");\n }\n return undefined;\n }\n\n get pageLabels() {\n let obj = null;\n try {\n obj = this._readPageLabels();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Unable to read page labels.\");\n }\n return shadow(this, \"pageLabels\", obj);\n }\n\n /**\n * @private\n */\n _readPageLabels() {\n const obj = this._catDict.getRaw(\"PageLabels\");\n if (!obj) {\n return null;\n }\n\n const pageLabels = new Array(this.numPages);\n let style = null,\n prefix = \"\";\n\n const numberTree = new NumberTree(obj, this.xref);\n const nums = numberTree.getAll();\n let currentLabel = \"\",\n currentIndex = 1;\n\n for (let i = 0, ii = this.numPages; i < ii; i++) {\n const labelDict = nums.get(i);\n\n if (labelDict !== undefined) {\n if (!(labelDict instanceof Dict)) {\n throw new FormatError(\"PageLabel is not a dictionary.\");\n }\n\n if (\n labelDict.has(\"Type\") &&\n !isName(labelDict.get(\"Type\"), \"PageLabel\")\n ) {\n throw new FormatError(\"Invalid type in PageLabel dictionary.\");\n }\n\n if (labelDict.has(\"S\")) {\n const s = labelDict.get(\"S\");\n if (!(s instanceof Name)) {\n throw new FormatError(\"Invalid style in PageLabel dictionary.\");\n }\n style = s.name;\n } else {\n style = null;\n }\n\n if (labelDict.has(\"P\")) {\n const p = labelDict.get(\"P\");\n if (typeof p !== \"string\") {\n throw new FormatError(\"Invalid prefix in PageLabel dictionary.\");\n }\n prefix = stringToPDFString(p);\n } else {\n prefix = \"\";\n }\n\n if (labelDict.has(\"St\")) {\n const st = labelDict.get(\"St\");\n if (!(Number.isInteger(st) && st >= 1)) {\n throw new FormatError(\"Invalid start in PageLabel dictionary.\");\n }\n currentIndex = st;\n } else {\n currentIndex = 1;\n }\n }\n\n switch (style) {\n case \"D\":\n currentLabel = currentIndex;\n break;\n case \"R\":\n case \"r\":\n currentLabel = toRomanNumerals(currentIndex, style === \"r\");\n break;\n case \"A\":\n case \"a\":\n const LIMIT = 26; // Use only the characters A-Z, or a-z.\n const A_UPPER_CASE = 0x41,\n A_LOWER_CASE = 0x61;\n\n const baseCharCode = style === \"a\" ? A_LOWER_CASE : A_UPPER_CASE;\n const letterIndex = currentIndex - 1;\n const character = String.fromCharCode(\n baseCharCode + (letterIndex % LIMIT)\n );\n currentLabel = character.repeat(Math.floor(letterIndex / LIMIT) + 1);\n break;\n default:\n if (style) {\n throw new FormatError(\n `Invalid style \"${style}\" in PageLabel dictionary.`\n );\n }\n currentLabel = \"\";\n }\n\n pageLabels[i] = prefix + currentLabel;\n currentIndex++;\n }\n return pageLabels;\n }\n\n get pageLayout() {\n const obj = this._catDict.get(\"PageLayout\");\n // Purposely use a non-standard default value, rather than 'SinglePage', to\n // allow differentiating between `undefined` and /SinglePage since that does\n // affect the Scroll mode (continuous/non-continuous) used in Adobe Reader.\n let pageLayout = \"\";\n\n if (obj instanceof Name) {\n switch (obj.name) {\n case \"SinglePage\":\n case \"OneColumn\":\n case \"TwoColumnLeft\":\n case \"TwoColumnRight\":\n case \"TwoPageLeft\":\n case \"TwoPageRight\":\n pageLayout = obj.name;\n }\n }\n return shadow(this, \"pageLayout\", pageLayout);\n }\n\n get pageMode() {\n const obj = this._catDict.get(\"PageMode\");\n let pageMode = \"UseNone\"; // Default value.\n\n if (obj instanceof Name) {\n switch (obj.name) {\n case \"UseNone\":\n case \"UseOutlines\":\n case \"UseThumbs\":\n case \"FullScreen\":\n case \"UseOC\":\n case \"UseAttachments\":\n pageMode = obj.name;\n }\n }\n return shadow(this, \"pageMode\", pageMode);\n }\n\n get viewerPreferences() {\n const obj = this._catDict.get(\"ViewerPreferences\");\n if (!(obj instanceof Dict)) {\n return shadow(this, \"viewerPreferences\", null);\n }\n let prefs = null;\n\n for (const key of obj.getKeys()) {\n const value = obj.get(key);\n let prefValue;\n\n switch (key) {\n case \"HideToolbar\":\n case \"HideMenubar\":\n case \"HideWindowUI\":\n case \"FitWindow\":\n case \"CenterWindow\":\n case \"DisplayDocTitle\":\n case \"PickTrayByPDFSize\":\n if (typeof value === \"boolean\") {\n prefValue = value;\n }\n break;\n case \"NonFullScreenPageMode\":\n if (value instanceof Name) {\n switch (value.name) {\n case \"UseNone\":\n case \"UseOutlines\":\n case \"UseThumbs\":\n case \"UseOC\":\n prefValue = value.name;\n break;\n default:\n prefValue = \"UseNone\";\n }\n }\n break;\n case \"Direction\":\n if (value instanceof Name) {\n switch (value.name) {\n case \"L2R\":\n case \"R2L\":\n prefValue = value.name;\n break;\n default:\n prefValue = \"L2R\";\n }\n }\n break;\n case \"ViewArea\":\n case \"ViewClip\":\n case \"PrintArea\":\n case \"PrintClip\":\n if (value instanceof Name) {\n switch (value.name) {\n case \"MediaBox\":\n case \"CropBox\":\n case \"BleedBox\":\n case \"TrimBox\":\n case \"ArtBox\":\n prefValue = value.name;\n break;\n default:\n prefValue = \"CropBox\";\n }\n }\n break;\n case \"PrintScaling\":\n if (value instanceof Name) {\n switch (value.name) {\n case \"None\":\n case \"AppDefault\":\n prefValue = value.name;\n break;\n default:\n prefValue = \"AppDefault\";\n }\n }\n break;\n case \"Duplex\":\n if (value instanceof Name) {\n switch (value.name) {\n case \"Simplex\":\n case \"DuplexFlipShortEdge\":\n case \"DuplexFlipLongEdge\":\n prefValue = value.name;\n break;\n default:\n prefValue = \"None\";\n }\n }\n break;\n case \"PrintPageRange\":\n // The number of elements must be even.\n if (Array.isArray(value) && value.length % 2 === 0) {\n const isValid = value.every((page, i, arr) => {\n return (\n Number.isInteger(page) &&\n page > 0 &&\n (i === 0 || page >= arr[i - 1]) &&\n page <= this.numPages\n );\n });\n if (isValid) {\n prefValue = value;\n }\n }\n break;\n case \"NumCopies\":\n if (Number.isInteger(value) && value > 0) {\n prefValue = value;\n }\n break;\n default:\n warn(`Ignoring non-standard key in ViewerPreferences: ${key}.`);\n continue;\n }\n\n if (prefValue === undefined) {\n warn(`Bad value, for key \"${key}\", in ViewerPreferences: ${value}.`);\n continue;\n }\n if (!prefs) {\n prefs = Object.create(null);\n }\n prefs[key] = prefValue;\n }\n return shadow(this, \"viewerPreferences\", prefs);\n }\n\n get openAction() {\n const obj = this._catDict.get(\"OpenAction\");\n const openAction = Object.create(null);\n\n if (obj instanceof Dict) {\n // Convert the OpenAction dictionary into a format that works with\n // `parseDestDictionary`, to avoid having to re-implement those checks.\n const destDict = new Dict(this.xref);\n destDict.set(\"A\", obj);\n\n const resultObj = { url: null, dest: null, action: null };\n Catalog.parseDestDictionary({ destDict, resultObj });\n\n if (Array.isArray(resultObj.dest)) {\n openAction.dest = resultObj.dest;\n } else if (resultObj.action) {\n openAction.action = resultObj.action;\n }\n } else if (Array.isArray(obj)) {\n openAction.dest = obj;\n }\n return shadow(\n this,\n \"openAction\",\n objectSize(openAction) > 0 ? openAction : null\n );\n }\n\n get attachments() {\n const obj = this._catDict.get(\"Names\");\n let attachments = null;\n\n if (obj instanceof Dict && obj.has(\"EmbeddedFiles\")) {\n const nameTree = new NameTree(obj.getRaw(\"EmbeddedFiles\"), this.xref);\n for (const [key, value] of nameTree.getAll()) {\n const fs = new FileSpec(value, this.xref);\n if (!attachments) {\n attachments = Object.create(null);\n }\n attachments[stringToPDFString(key)] = fs.serializable;\n }\n }\n return shadow(this, \"attachments\", attachments);\n }\n\n get xfaImages() {\n const obj = this._catDict.get(\"Names\");\n let xfaImages = null;\n\n if (obj instanceof Dict && obj.has(\"XFAImages\")) {\n const nameTree = new NameTree(obj.getRaw(\"XFAImages\"), this.xref);\n for (const [key, value] of nameTree.getAll()) {\n if (!xfaImages) {\n xfaImages = new Dict(this.xref);\n }\n xfaImages.set(stringToPDFString(key), value);\n }\n }\n return shadow(this, \"xfaImages\", xfaImages);\n }\n\n _collectJavaScript() {\n const obj = this._catDict.get(\"Names\");\n let javaScript = null;\n\n function appendIfJavaScriptDict(name, jsDict) {\n if (!(jsDict instanceof Dict)) {\n return;\n }\n if (!isName(jsDict.get(\"S\"), \"JavaScript\")) {\n return;\n }\n\n let js = jsDict.get(\"JS\");\n if (js instanceof BaseStream) {\n js = js.getString();\n } else if (typeof js !== \"string\") {\n return;\n }\n\n if (javaScript === null) {\n javaScript = new Map();\n }\n javaScript.set(name, stringToPDFString(js));\n }\n\n if (obj instanceof Dict && obj.has(\"JavaScript\")) {\n const nameTree = new NameTree(obj.getRaw(\"JavaScript\"), this.xref);\n for (const [key, value] of nameTree.getAll()) {\n appendIfJavaScriptDict(stringToPDFString(key), value);\n }\n }\n // Append OpenAction \"JavaScript\" actions, if any, to the JavaScript map.\n const openAction = this._catDict.get(\"OpenAction\");\n if (openAction) {\n appendIfJavaScriptDict(\"OpenAction\", openAction);\n }\n\n return javaScript;\n }\n\n get javaScript() {\n const javaScript = this._collectJavaScript();\n return shadow(\n this,\n \"javaScript\",\n javaScript ? [...javaScript.values()] : null\n );\n }\n\n get jsActions() {\n const javaScript = this._collectJavaScript();\n let actions = collectActions(\n this.xref,\n this._catDict,\n DocumentActionEventType\n );\n\n if (javaScript) {\n if (!actions) {\n actions = Object.create(null);\n }\n for (const [key, val] of javaScript) {\n if (key in actions) {\n actions[key].push(val);\n } else {\n actions[key] = [val];\n }\n }\n }\n return shadow(this, \"jsActions\", actions);\n }\n\n async fontFallback(id, handler) {\n const translatedFonts = await Promise.all(this.fontCache);\n\n for (const translatedFont of translatedFonts) {\n if (translatedFont.loadedName === id) {\n translatedFont.fallback(handler);\n return;\n }\n }\n }\n\n async cleanup(manuallyTriggered = false) {\n clearGlobalCaches();\n this.globalImageCache.clear(/* onlyData = */ manuallyTriggered);\n this.pageKidsCountCache.clear();\n this.pageIndexCache.clear();\n this.nonBlendModesSet.clear();\n\n const translatedFonts = await Promise.all(this.fontCache);\n\n for (const { dict } of translatedFonts) {\n delete dict.cacheKey;\n }\n this.fontCache.clear();\n this.builtInCMapCache.clear();\n this.standardFontDataCache.clear();\n }\n\n async getPageDict(pageIndex) {\n const nodesToVisit = [this.toplevelPagesDict];\n const visitedNodes = new RefSet();\n\n const pagesRef = this._catDict.getRaw(\"Pages\");\n if (pagesRef instanceof Ref) {\n visitedNodes.put(pagesRef);\n }\n const xref = this.xref,\n pageKidsCountCache = this.pageKidsCountCache,\n pageIndexCache = this.pageIndexCache;\n let currentPageIndex = 0;\n\n while (nodesToVisit.length) {\n const currentNode = nodesToVisit.pop();\n\n if (currentNode instanceof Ref) {\n const count = pageKidsCountCache.get(currentNode);\n // Skip nodes where the page can't be.\n if (count >= 0 && currentPageIndex + count <= pageIndex) {\n currentPageIndex += count;\n continue;\n }\n // Prevent circular references in the /Pages tree.\n if (visitedNodes.has(currentNode)) {\n throw new FormatError(\"Pages tree contains circular reference.\");\n }\n visitedNodes.put(currentNode);\n\n const obj = await xref.fetchAsync(currentNode);\n if (obj instanceof Dict) {\n let type = obj.getRaw(\"Type\");\n if (type instanceof Ref) {\n type = await xref.fetchAsync(type);\n }\n if (isName(type, \"Page\") || !obj.has(\"Kids\")) {\n // Cache the Page reference, since it can *greatly* improve\n // performance by reducing redundant lookups in long documents\n // where all nodes are found at *one* level of the tree.\n if (!pageKidsCountCache.has(currentNode)) {\n pageKidsCountCache.put(currentNode, 1);\n }\n // Help improve performance of the `getPageIndex` method.\n if (!pageIndexCache.has(currentNode)) {\n pageIndexCache.put(currentNode, currentPageIndex);\n }\n\n if (currentPageIndex === pageIndex) {\n return [obj, currentNode];\n }\n currentPageIndex++;\n continue;\n }\n }\n nodesToVisit.push(obj);\n continue;\n }\n\n // Must be a child page dictionary.\n if (!(currentNode instanceof Dict)) {\n throw new FormatError(\n \"Page dictionary kid reference points to wrong type of object.\"\n );\n }\n const { objId } = currentNode;\n\n let count = currentNode.getRaw(\"Count\");\n if (count instanceof Ref) {\n count = await xref.fetchAsync(count);\n }\n if (Number.isInteger(count) && count >= 0) {\n // Cache the Kids count, since it can reduce redundant lookups in\n // documents where all nodes are found at *one* level of the tree.\n if (objId && !pageKidsCountCache.has(objId)) {\n pageKidsCountCache.put(objId, count);\n }\n\n // Skip nodes where the page can't be.\n if (currentPageIndex + count <= pageIndex) {\n currentPageIndex += count;\n continue;\n }\n }\n\n let kids = currentNode.getRaw(\"Kids\");\n if (kids instanceof Ref) {\n kids = await xref.fetchAsync(kids);\n }\n if (!Array.isArray(kids)) {\n // Prevent errors in corrupt PDF documents that violate the\n // specification by *inlining* Page dicts directly in the Kids\n // array, rather than using indirect objects (fixes issue9540.pdf).\n let type = currentNode.getRaw(\"Type\");\n if (type instanceof Ref) {\n type = await xref.fetchAsync(type);\n }\n if (isName(type, \"Page\") || !currentNode.has(\"Kids\")) {\n if (currentPageIndex === pageIndex) {\n return [currentNode, null];\n }\n currentPageIndex++;\n continue;\n }\n\n throw new FormatError(\"Page dictionary kids object is not an array.\");\n }\n\n // Always check all `Kids` nodes, to avoid getting stuck in an empty\n // node further down in the tree (see issue5644.pdf, issue8088.pdf),\n // and to ensure that we actually find the correct `Page` dict.\n for (let last = kids.length - 1; last >= 0; last--) {\n nodesToVisit.push(kids[last]);\n }\n }\n\n throw new Error(`Page index ${pageIndex} not found.`);\n }\n\n /**\n * Eagerly fetches the entire /Pages-tree; should ONLY be used as a fallback.\n * @returns {Promise}\n */\n async getAllPageDicts(recoveryMode = false) {\n const queue = [{ currentNode: this.toplevelPagesDict, posInKids: 0 }];\n const visitedNodes = new RefSet();\n\n const pagesRef = this._catDict.getRaw(\"Pages\");\n if (pagesRef instanceof Ref) {\n visitedNodes.put(pagesRef);\n }\n const map = new Map(),\n xref = this.xref,\n pageIndexCache = this.pageIndexCache;\n let pageIndex = 0;\n\n function addPageDict(pageDict, pageRef) {\n // Help improve performance of the `getPageIndex` method.\n if (pageRef && !pageIndexCache.has(pageRef)) {\n pageIndexCache.put(pageRef, pageIndex);\n }\n\n map.set(pageIndex++, [pageDict, pageRef]);\n }\n function addPageError(error) {\n if (error instanceof XRefEntryException && !recoveryMode) {\n throw error;\n }\n\n map.set(pageIndex++, [error, null]);\n }\n\n while (queue.length > 0) {\n const queueItem = queue[queue.length - 1];\n const { currentNode, posInKids } = queueItem;\n\n let kids = currentNode.getRaw(\"Kids\");\n if (kids instanceof Ref) {\n try {\n kids = await xref.fetchAsync(kids);\n } catch (ex) {\n addPageError(ex);\n break;\n }\n }\n if (!Array.isArray(kids)) {\n addPageError(\n new FormatError(\"Page dictionary kids object is not an array.\")\n );\n break;\n }\n\n if (posInKids >= kids.length) {\n queue.pop();\n continue;\n }\n\n const kidObj = kids[posInKids];\n let obj;\n if (kidObj instanceof Ref) {\n // Prevent circular references in the /Pages tree.\n if (visitedNodes.has(kidObj)) {\n addPageError(\n new FormatError(\"Pages tree contains circular reference.\")\n );\n break;\n }\n visitedNodes.put(kidObj);\n\n try {\n obj = await xref.fetchAsync(kidObj);\n } catch (ex) {\n addPageError(ex);\n break;\n }\n } else {\n // Prevent errors in corrupt PDF documents that violate the\n // specification by *inlining* Page dicts directly in the Kids\n // array, rather than using indirect objects (see issue9540.pdf).\n obj = kidObj;\n }\n if (!(obj instanceof Dict)) {\n addPageError(\n new FormatError(\n \"Page dictionary kid reference points to wrong type of object.\"\n )\n );\n break;\n }\n\n let type = obj.getRaw(\"Type\");\n if (type instanceof Ref) {\n try {\n type = await xref.fetchAsync(type);\n } catch (ex) {\n addPageError(ex);\n break;\n }\n }\n if (isName(type, \"Page\") || !obj.has(\"Kids\")) {\n addPageDict(obj, kidObj instanceof Ref ? kidObj : null);\n } else {\n queue.push({ currentNode: obj, posInKids: 0 });\n }\n queueItem.posInKids++;\n }\n return map;\n }\n\n getPageIndex(pageRef) {\n const cachedPageIndex = this.pageIndexCache.get(pageRef);\n if (cachedPageIndex !== undefined) {\n return Promise.resolve(cachedPageIndex);\n }\n\n // The page tree nodes have the count of all the leaves below them. To get\n // how many pages are before we just have to walk up the tree and keep\n // adding the count of siblings to the left of the node.\n const xref = this.xref;\n\n function pagesBeforeRef(kidRef) {\n let total = 0,\n parentRef;\n\n return xref\n .fetchAsync(kidRef)\n .then(function (node) {\n if (\n isRefsEqual(kidRef, pageRef) &&\n !isDict(node, \"Page\") &&\n !(node instanceof Dict && !node.has(\"Type\") && node.has(\"Contents\"))\n ) {\n throw new FormatError(\n \"The reference does not point to a /Page dictionary.\"\n );\n }\n if (!node) {\n return null;\n }\n if (!(node instanceof Dict)) {\n throw new FormatError(\"Node must be a dictionary.\");\n }\n parentRef = node.getRaw(\"Parent\");\n return node.getAsync(\"Parent\");\n })\n .then(function (parent) {\n if (!parent) {\n return null;\n }\n if (!(parent instanceof Dict)) {\n throw new FormatError(\"Parent must be a dictionary.\");\n }\n return parent.getAsync(\"Kids\");\n })\n .then(function (kids) {\n if (!kids) {\n return null;\n }\n\n const kidPromises = [];\n let found = false;\n for (let i = 0, ii = kids.length; i < ii; i++) {\n const kid = kids[i];\n if (!(kid instanceof Ref)) {\n throw new FormatError(\"Kid must be a reference.\");\n }\n if (isRefsEqual(kid, kidRef)) {\n found = true;\n break;\n }\n kidPromises.push(\n xref.fetchAsync(kid).then(function (obj) {\n if (!(obj instanceof Dict)) {\n throw new FormatError(\"Kid node must be a dictionary.\");\n }\n if (obj.has(\"Count\")) {\n total += obj.get(\"Count\");\n } else {\n // Page leaf node.\n total++;\n }\n })\n );\n }\n if (!found) {\n throw new FormatError(\"Kid reference not found in parent's kids.\");\n }\n return Promise.all(kidPromises).then(function () {\n return [total, parentRef];\n });\n });\n }\n\n let total = 0;\n const next = ref =>\n pagesBeforeRef(ref).then(args => {\n if (!args) {\n this.pageIndexCache.put(pageRef, total);\n return total;\n }\n const [count, parentRef] = args;\n total += count;\n return next(parentRef);\n });\n\n return next(pageRef);\n }\n\n get baseUrl() {\n const uri = this._catDict.get(\"URI\");\n if (uri instanceof Dict) {\n const base = uri.get(\"Base\");\n if (typeof base === \"string\") {\n const absoluteUrl = createValidAbsoluteUrl(base, null, {\n tryConvertEncoding: true,\n });\n if (absoluteUrl) {\n return shadow(this, \"baseUrl\", absoluteUrl.href);\n }\n }\n }\n return shadow(this, \"baseUrl\", null);\n }\n\n /**\n * @typedef {Object} ParseDestDictionaryParameters\n * @property {Dict} destDict - The dictionary containing the destination.\n * @property {Object} resultObj - The object where the parsed destination\n * properties will be placed.\n * @property {string} [docBaseUrl] - The document base URL that is used when\n * attempting to recover valid absolute URLs from relative ones.\n */\n\n /**\n * Helper function used to parse the contents of destination dictionaries.\n * @param {ParseDestDictionaryParameters} params\n */\n static parseDestDictionary(params) {\n const destDict = params.destDict;\n if (!(destDict instanceof Dict)) {\n warn(\"parseDestDictionary: `destDict` must be a dictionary.\");\n return;\n }\n const resultObj = params.resultObj;\n if (typeof resultObj !== \"object\") {\n warn(\"parseDestDictionary: `resultObj` must be an object.\");\n return;\n }\n const docBaseUrl = params.docBaseUrl || null;\n\n let action = destDict.get(\"A\"),\n url,\n dest;\n if (!(action instanceof Dict)) {\n if (destDict.has(\"Dest\")) {\n // A /Dest entry should *only* contain a Name or an Array, but some bad\n // PDF generators ignore that and treat it as an /A entry.\n action = destDict.get(\"Dest\");\n } else {\n action = destDict.get(\"AA\");\n if (action instanceof Dict) {\n if (action.has(\"D\")) {\n // MouseDown\n action = action.get(\"D\");\n } else if (action.has(\"U\")) {\n // MouseUp\n action = action.get(\"U\");\n }\n }\n }\n }\n\n if (action instanceof Dict) {\n const actionType = action.get(\"S\");\n if (!(actionType instanceof Name)) {\n warn(\"parseDestDictionary: Invalid type in Action dictionary.\");\n return;\n }\n const actionName = actionType.name;\n\n switch (actionName) {\n case \"ResetForm\":\n const flags = action.get(\"Flags\");\n const include = ((typeof flags === \"number\" ? flags : 0) & 1) === 0;\n const fields = [];\n const refs = [];\n for (const obj of action.get(\"Fields\") || []) {\n if (obj instanceof Ref) {\n refs.push(obj.toString());\n } else if (typeof obj === \"string\") {\n fields.push(stringToPDFString(obj));\n }\n }\n resultObj.resetForm = { fields, refs, include };\n break;\n case \"URI\":\n url = action.get(\"URI\");\n if (url instanceof Name) {\n // Some bad PDFs do not put parentheses around relative URLs.\n url = \"/\" + url.name;\n }\n break;\n\n case \"GoTo\":\n dest = action.get(\"D\");\n break;\n\n case \"Launch\":\n // We neither want, nor can, support arbitrary 'Launch' actions.\n // However, in practice they are mostly used for linking to other PDF\n // files, which we thus attempt to support (utilizing `docBaseUrl`).\n /* falls through */\n\n case \"GoToR\":\n const urlDict = action.get(\"F\");\n if (urlDict instanceof Dict) {\n // We assume that we found a FileSpec dictionary\n // and fetch the URL without checking any further.\n url = urlDict.get(\"F\") || null;\n } else if (typeof urlDict === \"string\") {\n url = urlDict;\n }\n\n // NOTE: the destination is relative to the *remote* document.\n let remoteDest = action.get(\"D\");\n if (remoteDest) {\n if (remoteDest instanceof Name) {\n remoteDest = remoteDest.name;\n }\n if (typeof url === \"string\") {\n const baseUrl = url.split(\"#\")[0];\n if (typeof remoteDest === \"string\") {\n url = baseUrl + \"#\" + remoteDest;\n } else if (Array.isArray(remoteDest)) {\n url = baseUrl + \"#\" + JSON.stringify(remoteDest);\n }\n }\n }\n // The 'NewWindow' property, equal to `LinkTarget.BLANK`.\n const newWindow = action.get(\"NewWindow\");\n if (typeof newWindow === \"boolean\") {\n resultObj.newWindow = newWindow;\n }\n break;\n\n case \"Named\":\n const namedAction = action.get(\"N\");\n if (namedAction instanceof Name) {\n resultObj.action = namedAction.name;\n }\n break;\n\n case \"JavaScript\":\n const jsAction = action.get(\"JS\");\n let js;\n\n if (jsAction instanceof BaseStream) {\n js = jsAction.getString();\n } else if (typeof jsAction === \"string\") {\n js = jsAction;\n }\n\n const jsURL = js && recoverJsURL(stringToPDFString(js));\n if (jsURL) {\n url = jsURL.url;\n resultObj.newWindow = jsURL.newWindow;\n break;\n }\n /* falls through */\n default:\n if (actionName === \"JavaScript\" || actionName === \"SubmitForm\") {\n // Don't bother the user with a warning for actions that require\n // scripting support, since those will be handled separately.\n break;\n }\n warn(`parseDestDictionary - unsupported action: \"${actionName}\".`);\n break;\n }\n } else if (destDict.has(\"Dest\")) {\n // Simple destination.\n dest = destDict.get(\"Dest\");\n }\n\n if (typeof url === \"string\") {\n const absoluteUrl = createValidAbsoluteUrl(url, docBaseUrl, {\n addDefaultProtocol: true,\n tryConvertEncoding: true,\n });\n if (absoluteUrl) {\n resultObj.url = absoluteUrl.href;\n }\n resultObj.unsafeUrl = url;\n }\n if (dest) {\n if (dest instanceof Name) {\n dest = dest.name;\n }\n if (typeof dest === \"string\") {\n resultObj.dest = stringToPDFString(dest);\n } else if (Array.isArray(dest)) {\n resultObj.dest = dest;\n }\n }\n }\n}\n\nclass ExtendedCatalog extends Catalog {\n constructor(pdfManager, xref) {\n super(pdfManager, xref);\n\n this.pages = this.getPages(this.toplevelPagesDict.get('Kids'));\n }\n\n _convertStructToObject(struct) {\n if (Array.isArray(struct)) {\n return struct.map(el => this._convertStructToObject(el));\n } else if (isDict(struct)) {\n let result = {};\n struct.getKeys().forEach(key => {\n result[key] = this._convertStructToObject(struct.get(key));\n });\n return result;\n } else if (isName(struct)) {\n return struct.name;\n } else {\n return struct;\n }\n }\n\n get structTreeRoot() {\n const structTreeRoot = this._catDict.get('StructTreeRoot');\n if (!isDict(structTreeRoot)) {\n return null;\n }\n return shadow(this, 'structTreeRoot', structTreeRoot);\n }\n\n getTreeElement(el, page, ref) {\n //update page for current element\n if (isDict(el) && el.has('Pg')) {\n let pageRef = el.getRaw('Pg');\n let newPage = this.pages.findIndex(el => el.num === pageRef.num && el.gen === pageRef.gen);\n newPage = newPage !== -1 ? newPage : null;\n if (newPage !== page) {\n page = newPage;\n }\n }\n\n if (isDict(el) && el.has('K')) {\n return {\n name: el.has('S') ? stringToUTF8String(el.get('S').name) : null,\n children: this.getTreeElement(el.get('K'), page, el.getRaw('K')),\n ref: ref\n }\n }\n\n if (isDict(el) && el.has('Obj')) {\n let obj = el.get('Obj');\n let type = null;\n if (obj.has('Type')) {\n type = obj.get('Type').name;\n }\n if (obj.has('Subtype')) {\n type = obj.get('Subtype').name;\n }\n switch (type){\n case 'Link':\n case 'Annot':\n let rect = obj.get('Rect');\n return {\n rect: [rect[0], rect[1], rect[2], rect[3]],\n pageIndex: page\n };\n default:\n break;\n }\n }\n\n if (Array.isArray(el)) {\n return el.map(subel => {\n if (Number.isInteger(subel)) {\n return {mcid: subel, pageIndex: page};\n } else if (!(subel.hasOwnProperty('num') && subel.hasOwnProperty('gen')) && subel.get('Type') !== 'OBJR') {\n return this.getTreeElement(subel, page);\n } else if (subel.hasOwnProperty('num') && subel.hasOwnProperty('gen')){\n return this.getTreeElement(this.xref.fetch(subel), page, subel);\n }\n })\n }\n\n if (Number.isInteger(el)) {\n return {mcid: el, pageIndex: page};\n }\n\n if (isDict(el) && el.has('Type') && el.get('Type').name === 'MCR') {\n return {mcid: el.get('MCID'), pageIndex: page};\n }\n }\n\n getPages(pages) {\n let pagesArray = [];\n pages.map(kid => {\n if (kid instanceof Ref){\n let kidObj = this.xref.fetch(kid);\n let kidObjType = kidObj.get('Type').name;\n switch (kidObjType) {\n case 'Page':\n pagesArray.push(kid);\n break;\n case 'Pages':\n let array = this.getPages(kidObj.get('Kids'));\n pagesArray = pagesArray.concat(array);\n break;\n default:\n break;\n }\n }\n });\n return pagesArray;\n }\n\n get structureTree() {\n let structureTree = null;\n if (this.structTreeRoot && isDict(this.structTreeRoot) && this.structTreeRoot.has('K')) {\n structureTree = this.getTreeElement(this.structTreeRoot.get('K'), null, this.structTreeRoot.getRaw('K'));\n }\n return shadow(this, 'structureTree', structureTree);\n }\n}\n\nexport { ExtendedCatalog as Catalog };\n\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Dict, RefSet } from \"./primitives.js\";\nimport { FormatError, unreachable, warn } from \"../shared/util.js\";\n\n/**\n * A NameTree/NumberTree is like a Dict but has some advantageous properties,\n * see the specification (7.9.6 and 7.9.7) for additional details.\n * TODO: implement all the Dict functions and make this more efficient.\n */\nclass NameOrNumberTree {\n constructor(root, xref, type) {\n if (this.constructor === NameOrNumberTree) {\n unreachable(\"Cannot initialize NameOrNumberTree.\");\n }\n this.root = root;\n this.xref = xref;\n this._type = type;\n }\n\n getAll() {\n const map = new Map();\n if (!this.root) {\n return map;\n }\n const xref = this.xref;\n // Reading Name/Number tree.\n const processed = new RefSet();\n processed.put(this.root);\n const queue = [this.root];\n while (queue.length > 0) {\n const obj = xref.fetchIfRef(queue.shift());\n if (!(obj instanceof Dict)) {\n continue;\n }\n if (obj.has(\"Kids\")) {\n const kids = obj.get(\"Kids\");\n if (!Array.isArray(kids)) {\n continue;\n }\n for (const kid of kids) {\n if (processed.has(kid)) {\n throw new FormatError(`Duplicate entry in \"${this._type}\" tree.`);\n }\n queue.push(kid);\n processed.put(kid);\n }\n continue;\n }\n const entries = obj.get(this._type);\n if (!Array.isArray(entries)) {\n continue;\n }\n for (let i = 0, ii = entries.length; i < ii; i += 2) {\n map.set(xref.fetchIfRef(entries[i]), xref.fetchIfRef(entries[i + 1]));\n }\n }\n return map;\n }\n\n get(key) {\n if (!this.root) {\n return null;\n }\n const xref = this.xref;\n let kidsOrEntries = xref.fetchIfRef(this.root);\n let loopCount = 0;\n const MAX_LEVELS = 10;\n\n // Perform a binary search to quickly find the entry that\n // contains the key we are looking for.\n while (kidsOrEntries.has(\"Kids\")) {\n if (++loopCount > MAX_LEVELS) {\n warn(`Search depth limit reached for \"${this._type}\" tree.`);\n return null;\n }\n\n const kids = kidsOrEntries.get(\"Kids\");\n if (!Array.isArray(kids)) {\n return null;\n }\n\n let l = 0,\n r = kids.length - 1;\n while (l <= r) {\n const m = (l + r) >> 1;\n const kid = xref.fetchIfRef(kids[m]);\n const limits = kid.get(\"Limits\");\n\n if (key < xref.fetchIfRef(limits[0])) {\n r = m - 1;\n } else if (key > xref.fetchIfRef(limits[1])) {\n l = m + 1;\n } else {\n kidsOrEntries = kid;\n break;\n }\n }\n if (l > r) {\n return null;\n }\n }\n\n // If we get here, then we have found the right entry. Now go through the\n // entries in the dictionary until we find the key we're looking for.\n const entries = kidsOrEntries.get(this._type);\n if (Array.isArray(entries)) {\n // Perform a binary search to reduce the lookup time.\n let l = 0,\n r = entries.length - 2;\n while (l <= r) {\n // Check only even indices (0, 2, 4, ...) because the\n // odd indices contain the actual data.\n const tmp = (l + r) >> 1,\n m = tmp + (tmp & 1);\n const currentKey = xref.fetchIfRef(entries[m]);\n if (key < currentKey) {\n r = m - 2;\n } else if (key > currentKey) {\n l = m + 2;\n } else {\n return xref.fetchIfRef(entries[m + 1]);\n }\n }\n }\n return null;\n }\n}\n\nclass NameTree extends NameOrNumberTree {\n constructor(root, xref) {\n super(root, xref, \"Names\");\n }\n}\n\nclass NumberTree extends NameOrNumberTree {\n constructor(root, xref) {\n super(root, xref, \"Nums\");\n }\n}\n\nexport { NameTree, NumberTree };\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { clearPrimitiveCaches } from \"./primitives.js\";\nimport { clearUnicodeCaches } from \"./unicode.js\";\n\nfunction clearGlobalCaches() {\n clearPrimitiveCaches();\n clearUnicodeCaches();\n}\n\nexport { clearGlobalCaches };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { stringToPDFString, warn } from \"../shared/util.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { Dict } from \"./primitives.js\";\n\nfunction pickPlatformItem(dict) {\n // Look for the filename in this order:\n // UF, F, Unix, Mac, DOS\n if (dict.has(\"UF\")) {\n return dict.get(\"UF\");\n } else if (dict.has(\"F\")) {\n return dict.get(\"F\");\n } else if (dict.has(\"Unix\")) {\n return dict.get(\"Unix\");\n } else if (dict.has(\"Mac\")) {\n return dict.get(\"Mac\");\n } else if (dict.has(\"DOS\")) {\n return dict.get(\"DOS\");\n }\n return null;\n}\n\n/**\n * \"A PDF file can refer to the contents of another file by using a File\n * Specification (PDF 1.1)\", see the spec (7.11) for more details.\n * NOTE: Only embedded files are supported (as part of the attachments support)\n * TODO: support the 'URL' file system (with caching if !/V), portable\n * collections attributes and related files (/RF)\n */\nclass FileSpec {\n constructor(root, xref) {\n if (!(root instanceof Dict)) {\n return;\n }\n this.xref = xref;\n this.root = root;\n if (root.has(\"FS\")) {\n this.fs = root.get(\"FS\");\n }\n this.description = root.has(\"Desc\")\n ? stringToPDFString(root.get(\"Desc\"))\n : \"\";\n if (root.has(\"RF\")) {\n warn(\"Related file specifications are not supported\");\n }\n this.contentAvailable = true;\n if (!root.has(\"EF\")) {\n this.contentAvailable = false;\n warn(\"Non-embedded file specifications are not supported\");\n }\n }\n\n get filename() {\n if (!this._filename && this.root) {\n const filename = pickPlatformItem(this.root) || \"unnamed\";\n this._filename = stringToPDFString(filename)\n .replace(/\\\\\\\\/g, \"\\\\\")\n .replace(/\\\\\\//g, \"/\")\n .replace(/\\\\/g, \"/\");\n }\n return this._filename;\n }\n\n get content() {\n if (!this.contentAvailable) {\n return null;\n }\n if (!this.contentRef && this.root) {\n this.contentRef = pickPlatformItem(this.root.get(\"EF\"));\n }\n let content = null;\n if (this.contentRef) {\n const fileObj = this.xref.fetchIfRef(this.contentRef);\n if (fileObj instanceof BaseStream) {\n content = fileObj.getBytes();\n } else {\n warn(\n \"Embedded file specification points to non-existing/invalid content\"\n );\n }\n } else {\n warn(\"Embedded file specification does not have a content\");\n }\n return content;\n }\n\n get serializable() {\n return {\n filename: this.filename,\n content: this.content,\n };\n }\n}\n\nexport { FileSpec };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SimpleXMLParser } from \"./xml_parser.js\";\n\nclass MetadataParser {\n constructor(data) {\n // Ghostscript may produce invalid metadata, so try to repair that first.\n data = this._repair(data);\n\n // Convert the string to an XML document.\n const parser = new SimpleXMLParser({ lowerCaseName: true });\n const xmlDocument = parser.parseFromString(data);\n\n this._metadataMap = new Map();\n this._data = data;\n\n if (xmlDocument) {\n this._parse(xmlDocument);\n }\n }\n\n _repair(data) {\n // Start by removing any \"junk\" before the first tag (see issue 10395).\n return data\n .replace(/^[^<]+/, \"\")\n .replace(/>\\\\376\\\\377([^<]+)/g, function (all, codes) {\n const bytes = codes\n .replace(/\\\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) {\n return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1);\n })\n .replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) {\n switch (name) {\n case \"amp\":\n return \"&\";\n case \"apos\":\n return \"'\";\n case \"gt\":\n return \">\";\n case \"lt\":\n return \"<\";\n case \"quot\":\n return '\"';\n }\n throw new Error(`_repair: ${name} isn't defined.`);\n });\n\n const charBuf = [];\n for (let i = 0, ii = bytes.length; i < ii; i += 2) {\n const code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);\n if (\n code >= /* Space = */ 32 &&\n code < /* Delete = */ 127 &&\n code !== /* '<' = */ 60 &&\n code !== /* '>' = */ 62 &&\n code !== /* '&' = */ 38\n ) {\n charBuf.push(String.fromCharCode(code));\n } else {\n charBuf.push(\n \"&#x\" + (0x10000 + code).toString(16).substring(1) + \";\"\n );\n }\n }\n return \">\" + charBuf.join(\"\");\n });\n }\n\n _getSequence(entry) {\n const name = entry.nodeName;\n if (name !== \"rdf:bag\" && name !== \"rdf:seq\" && name !== \"rdf:alt\") {\n return null;\n }\n return entry.childNodes.filter(node => node.nodeName === \"rdf:li\");\n }\n\n _parseArray(entry) {\n if (!entry.hasChildNodes()) {\n return;\n }\n // Child must be a Bag (unordered array) or a Seq.\n const [seqNode] = entry.childNodes;\n const sequence = this._getSequence(seqNode) || [];\n\n this._metadataMap.set(\n entry.nodeName,\n sequence.map(node => node.textContent.trim())\n );\n }\n\n _parse(xmlDocument) {\n let rdf = xmlDocument.documentElement;\n\n if (rdf.nodeName !== \"rdf:rdf\") {\n // Wrapped in \n rdf = rdf.firstChild;\n while (rdf && rdf.nodeName !== \"rdf:rdf\") {\n rdf = rdf.nextSibling;\n }\n }\n\n if (!rdf || rdf.nodeName !== \"rdf:rdf\" || !rdf.hasChildNodes()) {\n return;\n }\n\n for (const desc of rdf.childNodes) {\n if (desc.nodeName !== \"rdf:description\") {\n continue;\n }\n\n for (const entry of desc.childNodes) {\n const name = entry.nodeName;\n switch (name) {\n case \"#text\":\n continue;\n case \"dc:creator\":\n case \"dc:subject\":\n this._parseArray(entry);\n continue;\n }\n this._metadataMap.set(name, entry.textContent.trim());\n }\n }\n }\n\n get serializable() {\n return {\n parsedData: this._metadataMap,\n rawData: this._data,\n };\n }\n}\n\nexport { MetadataParser };\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// The code for XMLParserBase copied from\n// https://github.com/mozilla/shumway/blob/16451d8836fa85f4b16eeda8b4bda2fa9e2b22b0/src/avm2/natives/xml.ts\n\nimport { encodeToXmlString } from \"./core_utils.js\";\n\nconst XMLParserErrorCode = {\n NoError: 0,\n EndOfDocument: -1,\n UnterminatedCdat: -2,\n UnterminatedXmlDeclaration: -3,\n UnterminatedDoctypeDeclaration: -4,\n UnterminatedComment: -5,\n MalformedElement: -6,\n OutOfMemory: -7,\n UnterminatedAttributeValue: -8,\n UnterminatedElement: -9,\n ElementNeverBegun: -10,\n};\n\nfunction isWhitespace(s, index) {\n const ch = s[index];\n return ch === \" \" || ch === \"\\n\" || ch === \"\\r\" || ch === \"\\t\";\n}\n\nfunction isWhitespaceString(s) {\n for (let i = 0, ii = s.length; i < ii; i++) {\n if (!isWhitespace(s, i)) {\n return false;\n }\n }\n return true;\n}\n\nclass XMLParserBase {\n _resolveEntities(s) {\n return s.replace(/&([^;]+);/g, (all, entity) => {\n if (entity.substring(0, 2) === \"#x\") {\n return String.fromCodePoint(parseInt(entity.substring(2), 16));\n } else if (entity.substring(0, 1) === \"#\") {\n return String.fromCodePoint(parseInt(entity.substring(1), 10));\n }\n switch (entity) {\n case \"lt\":\n return \"<\";\n case \"gt\":\n return \">\";\n case \"amp\":\n return \"&\";\n case \"quot\":\n return '\"';\n case \"apos\":\n return \"'\";\n }\n return this.onResolveEntity(entity);\n });\n }\n\n _parseContent(s, start) {\n const attributes = [];\n let pos = start;\n\n function skipWs() {\n while (pos < s.length && isWhitespace(s, pos)) {\n ++pos;\n }\n }\n\n while (\n pos < s.length &&\n !isWhitespace(s, pos) &&\n s[pos] !== \">\" &&\n s[pos] !== \"/\"\n ) {\n ++pos;\n }\n const name = s.substring(start, pos);\n skipWs();\n while (\n pos < s.length &&\n s[pos] !== \">\" &&\n s[pos] !== \"/\" &&\n s[pos] !== \"?\"\n ) {\n skipWs();\n let attrName = \"\",\n attrValue = \"\";\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \"=\") {\n attrName += s[pos];\n ++pos;\n }\n skipWs();\n if (s[pos] !== \"=\") {\n return null;\n }\n ++pos;\n skipWs();\n const attrEndChar = s[pos];\n if (attrEndChar !== '\"' && attrEndChar !== \"'\") {\n return null;\n }\n const attrEndIndex = s.indexOf(attrEndChar, ++pos);\n if (attrEndIndex < 0) {\n return null;\n }\n attrValue = s.substring(pos, attrEndIndex);\n attributes.push({\n name: attrName,\n value: this._resolveEntities(attrValue),\n });\n pos = attrEndIndex + 1;\n skipWs();\n }\n return {\n name,\n attributes,\n parsed: pos - start,\n };\n }\n\n _parseProcessingInstruction(s, start) {\n let pos = start;\n\n function skipWs() {\n while (pos < s.length && isWhitespace(s, pos)) {\n ++pos;\n }\n }\n\n while (\n pos < s.length &&\n !isWhitespace(s, pos) &&\n s[pos] !== \">\" &&\n s[pos] !== \"?\" &&\n s[pos] !== \"/\"\n ) {\n ++pos;\n }\n const name = s.substring(start, pos);\n skipWs();\n const attrStart = pos;\n while (pos < s.length && (s[pos] !== \"?\" || s[pos + 1] !== \">\")) {\n ++pos;\n }\n const value = s.substring(attrStart, pos);\n return {\n name,\n value,\n parsed: pos - start,\n };\n }\n\n parseXml(s) {\n let i = 0;\n while (i < s.length) {\n const ch = s[i];\n let j = i;\n if (ch === \"<\") {\n ++j;\n const ch2 = s[j];\n let q;\n switch (ch2) {\n case \"/\":\n ++j;\n q = s.indexOf(\">\", j);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n this.onEndElement(s.substring(j, q));\n j = q + 1;\n break;\n case \"?\":\n ++j;\n const pi = this._parseProcessingInstruction(s, j);\n if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== \"?>\") {\n this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);\n return;\n }\n this.onPi(pi.name, pi.value);\n j += pi.parsed + 2;\n break;\n case \"!\":\n if (s.substring(j + 1, j + 3) === \"--\") {\n q = s.indexOf(\"-->\", j + 3);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedComment);\n return;\n }\n this.onComment(s.substring(j + 3, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === \"[CDATA[\") {\n q = s.indexOf(\"]]>\", j + 8);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedCdat);\n return;\n }\n this.onCdata(s.substring(j + 8, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === \"DOCTYPE\") {\n const q2 = s.indexOf(\"[\", j + 8);\n let complexDoctype = false;\n q = s.indexOf(\">\", j + 8);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n return;\n }\n if (q2 > 0 && q > q2) {\n q = s.indexOf(\"]>\", j + 8);\n if (q < 0) {\n this.onError(\n XMLParserErrorCode.UnterminatedDoctypeDeclaration\n );\n return;\n }\n complexDoctype = true;\n }\n const doctypeContent = s.substring(\n j + 8,\n q + (complexDoctype ? 1 : 0)\n );\n this.onDoctype(doctypeContent);\n j = q + (complexDoctype ? 2 : 1);\n } else {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n break;\n default:\n const content = this._parseContent(s, j);\n if (content === null) {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n let isClosed = false;\n if (\n s.substring(j + content.parsed, j + content.parsed + 2) === \"/>\"\n ) {\n isClosed = true;\n } else if (\n s.substring(j + content.parsed, j + content.parsed + 1) !== \">\"\n ) {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n this.onBeginElement(content.name, content.attributes, isClosed);\n j += content.parsed + (isClosed ? 2 : 1);\n break;\n }\n } else {\n while (j < s.length && s[j] !== \"<\") {\n j++;\n }\n const text = s.substring(i, j);\n this.onText(this._resolveEntities(text));\n }\n i = j;\n }\n }\n\n onResolveEntity(name) {\n return `&${name};`;\n }\n\n onPi(name, value) {}\n\n onComment(text) {}\n\n onCdata(text) {}\n\n onDoctype(doctypeContent) {}\n\n onText(text) {}\n\n onBeginElement(name, attributes, isEmpty) {}\n\n onEndElement(name) {}\n\n onError(code) {}\n}\n\nclass SimpleDOMNode {\n constructor(nodeName, nodeValue) {\n this.nodeName = nodeName;\n this.nodeValue = nodeValue;\n\n Object.defineProperty(this, \"parentNode\", { value: null, writable: true });\n }\n\n get firstChild() {\n return this.childNodes && this.childNodes[0];\n }\n\n get nextSibling() {\n const childNodes = this.parentNode.childNodes;\n if (!childNodes) {\n return undefined;\n }\n const index = childNodes.indexOf(this);\n if (index === -1) {\n return undefined;\n }\n return childNodes[index + 1];\n }\n\n get textContent() {\n if (!this.childNodes) {\n return this.nodeValue || \"\";\n }\n return this.childNodes\n .map(function (child) {\n return child.textContent;\n })\n .join(\"\");\n }\n\n get children() {\n return this.childNodes || [];\n }\n\n hasChildNodes() {\n return this.childNodes && this.childNodes.length > 0;\n }\n\n /**\n * Search a node in the tree with the given path\n * foo.bar[nnn], i.e. find the nnn-th node named\n * bar under a node named foo.\n *\n * @param {Array} paths - an array of objects as\n * returned by {parseXFAPath}.\n * @param {number} pos - the current position in\n * the paths array.\n * @returns {SimpleDOMNode} The node corresponding\n * to the path or null if not found.\n */\n searchNode(paths, pos) {\n if (pos >= paths.length) {\n return this;\n }\n\n const component = paths[pos];\n const stack = [];\n let node = this;\n\n while (true) {\n if (component.name === node.nodeName) {\n if (component.pos === 0) {\n const res = node.searchNode(paths, pos + 1);\n if (res !== null) {\n return res;\n }\n } else if (stack.length === 0) {\n return null;\n } else {\n const [parent] = stack.pop();\n let siblingPos = 0;\n for (const child of parent.childNodes) {\n if (component.name === child.nodeName) {\n if (siblingPos === component.pos) {\n return child.searchNode(paths, pos + 1);\n }\n siblingPos++;\n }\n }\n // We didn't find the correct sibling\n // so just return the first found node\n return node.searchNode(paths, pos + 1);\n }\n }\n\n if (node.childNodes && node.childNodes.length !== 0) {\n stack.push([node, 0]);\n node = node.childNodes[0];\n } else if (stack.length === 0) {\n return null;\n } else {\n while (stack.length !== 0) {\n const [parent, currentPos] = stack.pop();\n const newPos = currentPos + 1;\n if (newPos < parent.childNodes.length) {\n stack.push([parent, newPos]);\n node = parent.childNodes[newPos];\n break;\n }\n }\n if (stack.length === 0) {\n return null;\n }\n }\n }\n }\n\n dump(buffer) {\n if (this.nodeName === \"#text\") {\n buffer.push(encodeToXmlString(this.nodeValue));\n return;\n }\n\n buffer.push(`<${this.nodeName}`);\n if (this.attributes) {\n for (const attribute of this.attributes) {\n buffer.push(\n ` ${attribute.name}=\"${encodeToXmlString(attribute.value)}\"`\n );\n }\n }\n if (this.hasChildNodes()) {\n buffer.push(\">\");\n for (const child of this.childNodes) {\n child.dump(buffer);\n }\n buffer.push(``);\n } else if (this.nodeValue) {\n buffer.push(`>${encodeToXmlString(this.nodeValue)}`);\n } else {\n buffer.push(\"/>\");\n }\n }\n}\n\nclass SimpleXMLParser extends XMLParserBase {\n constructor({ hasAttributes = false, lowerCaseName = false }) {\n super();\n this._currentFragment = null;\n this._stack = null;\n this._errorCode = XMLParserErrorCode.NoError;\n this._hasAttributes = hasAttributes;\n this._lowerCaseName = lowerCaseName;\n }\n\n parseFromString(data) {\n this._currentFragment = [];\n this._stack = [];\n this._errorCode = XMLParserErrorCode.NoError;\n\n this.parseXml(data);\n\n if (this._errorCode !== XMLParserErrorCode.NoError) {\n return undefined; // return undefined on error\n }\n\n // We should only have one root.\n const [documentElement] = this._currentFragment;\n if (!documentElement) {\n return undefined; // Return undefined if no root was found.\n }\n return { documentElement };\n }\n\n onText(text) {\n if (isWhitespaceString(text)) {\n return;\n }\n const node = new SimpleDOMNode(\"#text\", text);\n this._currentFragment.push(node);\n }\n\n onCdata(text) {\n const node = new SimpleDOMNode(\"#text\", text);\n this._currentFragment.push(node);\n }\n\n onBeginElement(name, attributes, isEmpty) {\n if (this._lowerCaseName) {\n name = name.toLowerCase();\n }\n const node = new SimpleDOMNode(name);\n node.childNodes = [];\n if (this._hasAttributes) {\n node.attributes = attributes;\n }\n this._currentFragment.push(node);\n if (isEmpty) {\n return;\n }\n this._stack.push(this._currentFragment);\n this._currentFragment = node.childNodes;\n }\n\n onEndElement(name) {\n this._currentFragment = this._stack.pop() || [];\n const lastElement = this._currentFragment[this._currentFragment.length - 1];\n if (!lastElement) {\n return null;\n }\n for (let i = 0, ii = lastElement.childNodes.length; i < ii; i++) {\n lastElement.childNodes[i].parentNode = lastElement;\n }\n return lastElement;\n }\n\n onError(code) {\n this._errorCode = code;\n }\n}\n\nexport { SimpleDOMNode, SimpleXMLParser, XMLParserBase, XMLParserErrorCode };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Dict, isName, Name, Ref } from \"./primitives.js\";\nimport { stringToPDFString, warn } from \"../shared/util.js\";\nimport { NumberTree } from \"./name_number_tree.js\";\n\nconst MAX_DEPTH = 40;\n\nconst StructElementType = {\n PAGE_CONTENT: \"PAGE_CONTENT\",\n STREAM_CONTENT: \"STREAM_CONTENT\",\n OBJECT: \"OBJECT\",\n ELEMENT: \"ELEMENT\",\n};\n\nclass StructTreeRoot {\n constructor(rootDict) {\n this.dict = rootDict;\n this.roleMap = new Map();\n }\n\n init() {\n this.readRoleMap();\n }\n\n readRoleMap() {\n const roleMapDict = this.dict.get(\"RoleMap\");\n if (!(roleMapDict instanceof Dict)) {\n return;\n }\n roleMapDict.forEach((key, value) => {\n if (!(value instanceof Name)) {\n return;\n }\n this.roleMap.set(key, value.name);\n });\n }\n}\n\n/**\n * Instead of loading the whole tree we load just the page's relevant structure\n * elements, which means we need a wrapper structure to represent the tree.\n */\nclass StructElementNode {\n constructor(tree, dict) {\n this.tree = tree;\n this.dict = dict;\n this.kids = [];\n this.parseKids();\n }\n\n get role() {\n const nameObj = this.dict.get(\"S\");\n const name = nameObj instanceof Name ? nameObj.name : \"\";\n const { root } = this.tree;\n if (root.roleMap.has(name)) {\n return root.roleMap.get(name);\n }\n return name;\n }\n\n parseKids() {\n let pageObjId = null;\n const objRef = this.dict.getRaw(\"Pg\");\n if (objRef instanceof Ref) {\n pageObjId = objRef.toString();\n }\n const kids = this.dict.get(\"K\");\n if (Array.isArray(kids)) {\n for (const kid of kids) {\n const element = this.parseKid(pageObjId, kid);\n if (element) {\n this.kids.push(element);\n }\n }\n } else {\n const element = this.parseKid(pageObjId, kids);\n if (element) {\n this.kids.push(element);\n }\n }\n }\n\n parseKid(pageObjId, kid) {\n // A direct link to content, the integer is an mcid.\n if (Number.isInteger(kid)) {\n if (this.tree.pageDict.objId !== pageObjId) {\n return null;\n }\n\n return new StructElement({\n type: StructElementType.PAGE_CONTENT,\n mcid: kid,\n pageObjId,\n });\n }\n\n // Find the dictionary for the kid.\n let kidDict = null;\n if (kid instanceof Ref) {\n kidDict = this.dict.xref.fetch(kid);\n } else if (kid instanceof Dict) {\n kidDict = kid;\n }\n if (!kidDict) {\n return null;\n }\n const pageRef = kidDict.getRaw(\"Pg\");\n if (pageRef instanceof Ref) {\n pageObjId = pageRef.toString();\n }\n\n const type =\n kidDict.get(\"Type\") instanceof Name ? kidDict.get(\"Type\").name : null;\n if (type === \"MCR\") {\n if (this.tree.pageDict.objId !== pageObjId) {\n return null;\n }\n return new StructElement({\n type: StructElementType.STREAM_CONTENT,\n refObjId:\n kidDict.getRaw(\"Stm\") instanceof Ref\n ? kidDict.getRaw(\"Stm\").toString()\n : null,\n pageObjId,\n mcid: kidDict.get(\"MCID\"),\n });\n }\n\n if (type === \"OBJR\") {\n if (this.tree.pageDict.objId !== pageObjId) {\n return null;\n }\n return new StructElement({\n type: StructElementType.OBJECT,\n refObjId:\n kidDict.getRaw(\"Obj\") instanceof Ref\n ? kidDict.getRaw(\"Obj\").toString()\n : null,\n pageObjId,\n });\n }\n\n return new StructElement({\n type: StructElementType.ELEMENT,\n dict: kidDict,\n });\n }\n}\n\nclass StructElement {\n constructor({\n type,\n dict = null,\n mcid = null,\n pageObjId = null,\n refObjId = null,\n }) {\n this.type = type;\n this.dict = dict;\n this.mcid = mcid;\n this.pageObjId = pageObjId;\n this.refObjId = refObjId;\n this.parentNode = null;\n }\n}\n\nclass StructTreePage {\n constructor(structTreeRoot, pageDict) {\n this.root = structTreeRoot;\n this.rootDict = structTreeRoot ? structTreeRoot.dict : null;\n this.pageDict = pageDict;\n this.nodes = [];\n }\n\n parse() {\n if (!this.root || !this.rootDict) {\n return;\n }\n\n const parentTree = this.rootDict.get(\"ParentTree\");\n if (!parentTree) {\n return;\n }\n const id = this.pageDict.get(\"StructParents\");\n if (!Number.isInteger(id)) {\n return;\n }\n const numberTree = new NumberTree(parentTree, this.rootDict.xref);\n const parentArray = numberTree.get(id);\n if (!Array.isArray(parentArray)) {\n return;\n }\n const map = new Map();\n for (const ref of parentArray) {\n if (ref instanceof Ref) {\n this.addNode(this.rootDict.xref.fetch(ref), map);\n }\n }\n }\n\n addNode(dict, map, level = 0) {\n if (level > MAX_DEPTH) {\n warn(\"StructTree MAX_DEPTH reached.\");\n return null;\n }\n\n if (map.has(dict)) {\n return map.get(dict);\n }\n\n const element = new StructElementNode(this, dict);\n map.set(dict, element);\n\n const parent = dict.get(\"P\");\n\n if (!parent || isName(parent.get(\"Type\"), \"StructTreeRoot\")) {\n if (!this.addTopLevelNode(dict, element)) {\n map.delete(dict);\n }\n return element;\n }\n\n const parentNode = this.addNode(parent, map, level + 1);\n if (!parentNode) {\n return element;\n }\n let save = false;\n for (const kid of parentNode.kids) {\n if (kid.type === StructElementType.ELEMENT && kid.dict === dict) {\n kid.parentNode = element;\n save = true;\n }\n }\n if (!save) {\n map.delete(dict);\n }\n return element;\n }\n\n addTopLevelNode(dict, element) {\n const obj = this.rootDict.get(\"K\");\n if (!obj) {\n return false;\n }\n\n if (obj instanceof Dict) {\n if (obj.objId !== dict.objId) {\n return false;\n }\n this.nodes[0] = element;\n return true;\n }\n\n if (!Array.isArray(obj)) {\n return true;\n }\n let save = false;\n for (let i = 0; i < obj.length; i++) {\n const kidRef = obj[i];\n if (kidRef && kidRef.toString() === dict.objId) {\n this.nodes[i] = element;\n save = true;\n }\n }\n return save;\n }\n\n /**\n * Convert the tree structure into a simplified object literal that can\n * be sent to the main thread.\n * @returns {Object}\n */\n get serializable() {\n function nodeToSerializable(node, parent, level = 0) {\n if (level > MAX_DEPTH) {\n warn(\"StructTree too deep to be fully serialized.\");\n return;\n }\n const obj = Object.create(null);\n obj.role = node.role;\n obj.children = [];\n parent.children.push(obj);\n const alt = node.dict.get(\"Alt\");\n if (typeof alt === \"string\") {\n obj.alt = stringToPDFString(alt);\n }\n const lang = node.dict.get(\"Lang\");\n if (typeof lang === \"string\") {\n obj.lang = stringToPDFString(lang);\n }\n\n for (const kid of node.kids) {\n const kidElement =\n kid.type === StructElementType.ELEMENT ? kid.parentNode : null;\n if (kidElement) {\n nodeToSerializable(kidElement, obj, level + 1);\n continue;\n } else if (\n kid.type === StructElementType.PAGE_CONTENT ||\n kid.type === StructElementType.STREAM_CONTENT\n ) {\n obj.children.push({\n type: \"content\",\n id: `page${kid.pageObjId}_mcid${kid.mcid}`,\n });\n } else if (kid.type === StructElementType.OBJECT) {\n obj.children.push({\n type: \"object\",\n id: kid.refObjId,\n });\n }\n }\n }\n\n const root = Object.create(null);\n root.children = [];\n root.role = \"Root\";\n for (const child of this.nodes) {\n if (!child) {\n continue;\n }\n nodeToSerializable(child, root);\n }\n return root;\n }\n}\n\nexport { StructTreePage, StructTreeRoot };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Dict, Ref, RefSet } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { MissingDataException } from \"./core_utils.js\";\nimport { warn } from \"../shared/util.js\";\n\nfunction mayHaveChildren(value) {\n return (\n value instanceof Ref ||\n value instanceof Dict ||\n value instanceof BaseStream ||\n Array.isArray(value)\n );\n}\n\nfunction addChildren(node, nodesToVisit) {\n if (node instanceof Dict) {\n node = node.getRawValues();\n } else if (node instanceof BaseStream) {\n node = node.dict.getRawValues();\n } else if (!Array.isArray(node)) {\n return;\n }\n for (const rawValue of node) {\n if (mayHaveChildren(rawValue)) {\n nodesToVisit.push(rawValue);\n }\n }\n}\n\n/**\n * A helper for loading missing data in `Dict` graphs. It traverses the graph\n * depth first and queues up any objects that have missing data. Once it has\n * has traversed as many objects that are available it attempts to bundle the\n * missing data requests and then resume from the nodes that weren't ready.\n *\n * NOTE: It provides protection from circular references by keeping track of\n * loaded references. However, you must be careful not to load any graphs\n * that have references to the catalog or other pages since that will cause the\n * entire PDF document object graph to be traversed.\n */\nclass ObjectLoader {\n constructor(dict, keys, xref) {\n this.dict = dict;\n this.keys = keys;\n this.xref = xref;\n this.refSet = null;\n }\n\n async load() {\n // Don't walk the graph if all the data is already loaded.\n if (this.xref.stream.isDataLoaded) {\n return undefined;\n }\n\n const { keys, dict } = this;\n this.refSet = new RefSet();\n // Setup the initial nodes to visit.\n const nodesToVisit = [];\n for (let i = 0, ii = keys.length; i < ii; i++) {\n const rawValue = dict.getRaw(keys[i]);\n // Skip nodes that are guaranteed to be empty.\n if (rawValue !== undefined) {\n nodesToVisit.push(rawValue);\n }\n }\n return this._walk(nodesToVisit);\n }\n\n async _walk(nodesToVisit) {\n const nodesToRevisit = [];\n const pendingRequests = [];\n // DFS walk of the object graph.\n while (nodesToVisit.length) {\n let currentNode = nodesToVisit.pop();\n\n // Only references or chunked streams can cause missing data exceptions.\n if (currentNode instanceof Ref) {\n // Skip nodes that have already been visited.\n if (this.refSet.has(currentNode)) {\n continue;\n }\n try {\n this.refSet.put(currentNode);\n currentNode = this.xref.fetch(currentNode);\n } catch (ex) {\n if (!(ex instanceof MissingDataException)) {\n warn(`ObjectLoader._walk - requesting all data: \"${ex}\".`);\n this.refSet = null;\n\n const { manager } = this.xref.stream;\n return manager.requestAllChunks();\n }\n nodesToRevisit.push(currentNode);\n pendingRequests.push({ begin: ex.begin, end: ex.end });\n }\n }\n if (currentNode instanceof BaseStream) {\n const baseStreams = currentNode.getBaseStreams();\n if (baseStreams) {\n let foundMissingData = false;\n for (const stream of baseStreams) {\n if (stream.isDataLoaded) {\n continue;\n }\n foundMissingData = true;\n pendingRequests.push({ begin: stream.start, end: stream.end });\n }\n if (foundMissingData) {\n nodesToRevisit.push(currentNode);\n }\n }\n }\n\n addChildren(currentNode, nodesToVisit);\n }\n\n if (pendingRequests.length) {\n await this.xref.stream.manager.requestRanges(pendingRequests);\n\n for (const node of nodesToRevisit) {\n // Remove any reference nodes from the current `RefSet` so they\n // aren't skipped when we revist them.\n if (node instanceof Ref) {\n this.refSet.remove(node);\n }\n }\n return this._walk(nodesToRevisit);\n }\n // Everything is loaded.\n this.refSet = null;\n return undefined;\n }\n}\n\nexport { ObjectLoader };\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bytesToString, escapeString, warn } from \"../shared/util.js\";\nimport { Dict, Name, Ref } from \"./primitives.js\";\nimport { escapePDFName, parseXFAPath } from \"./core_utils.js\";\nimport { SimpleDOMNode, SimpleXMLParser } from \"./xml_parser.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { calculateMD5 } from \"./crypto.js\";\n\nfunction writeDict(dict, buffer, transform) {\n buffer.push(\"<<\");\n for (const key of dict.getKeys()) {\n buffer.push(` /${escapePDFName(key)} `);\n writeValue(dict.getRaw(key), buffer, transform);\n }\n buffer.push(\">>\");\n}\n\nfunction writeStream(stream, buffer, transform) {\n writeDict(stream.dict, buffer, transform);\n buffer.push(\" stream\\n\");\n let string = stream.getString();\n if (transform !== null) {\n string = transform.encryptString(string);\n }\n buffer.push(string, \"\\nendstream\\n\");\n}\n\nfunction writeArray(array, buffer, transform) {\n buffer.push(\"[\");\n let first = true;\n for (const val of array) {\n if (!first) {\n buffer.push(\" \");\n } else {\n first = false;\n }\n writeValue(val, buffer, transform);\n }\n buffer.push(\"]\");\n}\n\nfunction numberToString(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n\n const roundedValue = Math.round(value * 100);\n if (roundedValue % 100 === 0) {\n return (roundedValue / 100).toString();\n }\n\n if (roundedValue % 10 === 0) {\n return value.toFixed(1);\n }\n\n return value.toFixed(2);\n}\n\nfunction writeValue(value, buffer, transform) {\n if (value instanceof Name) {\n buffer.push(`/${escapePDFName(value.name)}`);\n } else if (value instanceof Ref) {\n buffer.push(`${value.num} ${value.gen} R`);\n } else if (Array.isArray(value)) {\n writeArray(value, buffer, transform);\n } else if (typeof value === \"string\") {\n if (transform !== null) {\n value = transform.encryptString(value);\n }\n buffer.push(`(${escapeString(value)})`);\n } else if (typeof value === \"number\") {\n buffer.push(numberToString(value));\n } else if (typeof value === \"boolean\") {\n buffer.push(value.toString());\n } else if (value instanceof Dict) {\n writeDict(value, buffer, transform);\n } else if (value instanceof BaseStream) {\n writeStream(value, buffer, transform);\n } else if (value === null) {\n buffer.push(\"null\");\n } else {\n warn(`Unhandled value in writer: ${typeof value}, please file a bug.`);\n }\n}\n\nfunction writeInt(number, size, offset, buffer) {\n for (let i = size + offset - 1; i > offset - 1; i--) {\n buffer[i] = number & 0xff;\n number >>= 8;\n }\n return offset + size;\n}\n\nfunction writeString(string, offset, buffer) {\n for (let i = 0, len = string.length; i < len; i++) {\n buffer[offset + i] = string.charCodeAt(i) & 0xff;\n }\n}\n\nfunction computeMD5(filesize, xrefInfo) {\n const time = Math.floor(Date.now() / 1000);\n const filename = xrefInfo.filename || \"\";\n const md5Buffer = [time.toString(), filename, filesize.toString()];\n let md5BufferLen = md5Buffer.reduce((a, str) => a + str.length, 0);\n for (const value of Object.values(xrefInfo.info)) {\n md5Buffer.push(value);\n md5BufferLen += value.length;\n }\n\n const array = new Uint8Array(md5BufferLen);\n let offset = 0;\n for (const str of md5Buffer) {\n writeString(str, offset, array);\n offset += str.length;\n }\n return bytesToString(calculateMD5(array));\n}\n\nfunction writeXFADataForAcroform(str, newRefs) {\n const xml = new SimpleXMLParser({ hasAttributes: true }).parseFromString(str);\n\n for (const { xfa } of newRefs) {\n if (!xfa) {\n continue;\n }\n const { path, value } = xfa;\n if (!path) {\n continue;\n }\n const node = xml.documentElement.searchNode(parseXFAPath(path), 0);\n if (node) {\n if (Array.isArray(value)) {\n node.childNodes = value.map(val => new SimpleDOMNode(\"value\", val));\n } else {\n node.childNodes = [new SimpleDOMNode(\"#text\", value)];\n }\n } else {\n warn(`Node not found for path: ${path}`);\n }\n }\n const buffer = [];\n xml.documentElement.dump(buffer);\n return buffer.join(\"\");\n}\n\nfunction updateXFA({\n xfaData,\n xfaDatasetsRef,\n hasXfaDatasetsEntry,\n acroFormRef,\n acroForm,\n newRefs,\n xref,\n xrefInfo,\n}) {\n if (xref === null) {\n return;\n }\n\n if (!hasXfaDatasetsEntry) {\n if (!acroFormRef) {\n warn(\"XFA - Cannot save it\");\n return;\n }\n\n // We've a XFA array which doesn't contain a datasets entry.\n // So we'll update the AcroForm dictionary to have an XFA containing\n // the datasets.\n const oldXfa = acroForm.get(\"XFA\");\n const newXfa = oldXfa.slice();\n newXfa.splice(2, 0, \"datasets\");\n newXfa.splice(3, 0, xfaDatasetsRef);\n\n acroForm.set(\"XFA\", newXfa);\n\n const encrypt = xref.encrypt;\n let transform = null;\n if (encrypt) {\n transform = encrypt.createCipherTransform(\n acroFormRef.num,\n acroFormRef.gen\n );\n }\n\n const buffer = [`${acroFormRef.num} ${acroFormRef.gen} obj\\n`];\n writeDict(acroForm, buffer, transform);\n buffer.push(\"\\n\");\n\n acroForm.set(\"XFA\", oldXfa);\n\n newRefs.push({ ref: acroFormRef, data: buffer.join(\"\") });\n }\n\n if (xfaData === null) {\n const datasets = xref.fetchIfRef(xfaDatasetsRef);\n xfaData = writeXFADataForAcroform(datasets.getString(), newRefs);\n }\n\n const encrypt = xref.encrypt;\n if (encrypt) {\n const transform = encrypt.createCipherTransform(\n xfaDatasetsRef.num,\n xfaDatasetsRef.gen\n );\n xfaData = transform.encryptString(xfaData);\n }\n const data =\n `${xfaDatasetsRef.num} ${xfaDatasetsRef.gen} obj\\n` +\n `<< /Type /EmbeddedFile /Length ${xfaData.length}>>\\nstream\\n` +\n xfaData +\n \"\\nendstream\\nendobj\\n\";\n\n newRefs.push({ ref: xfaDatasetsRef, data });\n}\n\nfunction incrementalUpdate({\n originalData,\n xrefInfo,\n newRefs,\n xref = null,\n hasXfa = false,\n xfaDatasetsRef = null,\n hasXfaDatasetsEntry = false,\n acroFormRef = null,\n acroForm = null,\n xfaData = null,\n}) {\n if (hasXfa) {\n updateXFA({\n xfaData,\n xfaDatasetsRef,\n hasXfaDatasetsEntry,\n acroFormRef,\n acroForm,\n newRefs,\n xref,\n xrefInfo,\n });\n }\n\n const newXref = new Dict(null);\n const refForXrefTable = xrefInfo.newRef;\n\n let buffer, baseOffset;\n const lastByte = originalData[originalData.length - 1];\n if (lastByte === /* \\n */ 0x0a || lastByte === /* \\r */ 0x0d) {\n buffer = [];\n baseOffset = originalData.length;\n } else {\n // Avoid to concatenate %%EOF with an object definition\n buffer = [\"\\n\"];\n baseOffset = originalData.length + 1;\n }\n\n newXref.set(\"Size\", refForXrefTable.num + 1);\n newXref.set(\"Prev\", xrefInfo.startXRef);\n newXref.set(\"Type\", Name.get(\"XRef\"));\n\n if (xrefInfo.rootRef !== null) {\n newXref.set(\"Root\", xrefInfo.rootRef);\n }\n if (xrefInfo.infoRef !== null) {\n newXref.set(\"Info\", xrefInfo.infoRef);\n }\n if (xrefInfo.encryptRef !== null) {\n newXref.set(\"Encrypt\", xrefInfo.encryptRef);\n }\n\n // Add a ref for the new xref and sort them\n newRefs.push({ ref: refForXrefTable, data: \"\" });\n newRefs = newRefs.sort((a, b) => {\n // compare the refs\n return a.ref.num - b.ref.num;\n });\n\n const xrefTableData = [[0, 1, 0xffff]];\n const indexes = [0, 1];\n let maxOffset = 0;\n for (const { ref, data } of newRefs) {\n maxOffset = Math.max(maxOffset, baseOffset);\n xrefTableData.push([1, baseOffset, Math.min(ref.gen, 0xffff)]);\n baseOffset += data.length;\n indexes.push(ref.num, 1);\n buffer.push(data);\n }\n\n newXref.set(\"Index\", indexes);\n\n if (Array.isArray(xrefInfo.fileIds) && xrefInfo.fileIds.length > 0) {\n const md5 = computeMD5(baseOffset, xrefInfo);\n newXref.set(\"ID\", [xrefInfo.fileIds[0], md5]);\n }\n\n const offsetSize = Math.ceil(Math.log2(maxOffset) / 8);\n const sizes = [1, offsetSize, 2];\n const structSize = sizes[0] + sizes[1] + sizes[2];\n const tableLength = structSize * xrefTableData.length;\n newXref.set(\"W\", sizes);\n newXref.set(\"Length\", tableLength);\n\n buffer.push(`${refForXrefTable.num} ${refForXrefTable.gen} obj\\n`);\n writeDict(newXref, buffer, null);\n buffer.push(\" stream\\n\");\n\n const bufferLen = buffer.reduce((a, str) => a + str.length, 0);\n const footer = `\\nendstream\\nendobj\\nstartxref\\n${baseOffset}\\n%%EOF\\n`;\n const array = new Uint8Array(\n originalData.length + bufferLen + tableLength + footer.length\n );\n\n // Original data\n array.set(originalData);\n let offset = originalData.length;\n\n // New data\n for (const str of buffer) {\n writeString(str, offset, array);\n offset += str.length;\n }\n\n // New xref table\n for (const [type, objOffset, gen] of xrefTableData) {\n offset = writeInt(type, sizes[0], offset, array);\n offset = writeInt(objOffset, sizes[1], offset, array);\n offset = writeInt(gen, sizes[2], offset, array);\n }\n\n // Add the footer\n writeString(footer, offset, array);\n\n return array;\n}\n\nexport { incrementalUpdate, writeDict };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n bytesToString,\n FormatError,\n isArrayEqual,\n PasswordException,\n PasswordResponses,\n stringToBytes,\n unreachable,\n utf8StringToString,\n warn,\n} from \"../shared/util.js\";\nimport { Dict, isName, Name } from \"./primitives.js\";\nimport { DecryptStream } from \"./decrypt_stream.js\";\n\nclass ARCFourCipher {\n constructor(key) {\n this.a = 0;\n this.b = 0;\n const s = new Uint8Array(256);\n const keyLength = key.length;\n\n for (let i = 0; i < 256; ++i) {\n s[i] = i;\n }\n for (let i = 0, j = 0; i < 256; ++i) {\n const tmp = s[i];\n j = (j + tmp + key[i % keyLength]) & 0xff;\n s[i] = s[j];\n s[j] = tmp;\n }\n this.s = s;\n }\n\n encryptBlock(data) {\n let a = this.a,\n b = this.b;\n const s = this.s;\n const n = data.length;\n const output = new Uint8Array(n);\n for (let i = 0; i < n; ++i) {\n a = (a + 1) & 0xff;\n const tmp = s[a];\n b = (b + tmp) & 0xff;\n const tmp2 = s[b];\n s[a] = tmp2;\n s[b] = tmp;\n output[i] = data[i] ^ s[(tmp + tmp2) & 0xff];\n }\n this.a = a;\n this.b = b;\n return output;\n }\n\n decryptBlock(data) {\n return this.encryptBlock(data);\n }\n\n encrypt(data) {\n return this.encryptBlock(data);\n }\n}\n\nconst calculateMD5 = (function calculateMD5Closure() {\n const r = new Uint8Array([\n 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5,\n 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11,\n 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10,\n 15, 21,\n ]);\n\n const k = new Int32Array([\n -680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426,\n -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162,\n 1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632,\n 643717713, -373897302, -701558691, 38016083, -660478335, -405537848,\n 568446438, -1019803690, -187363961, 1163531501, -1444681467, -51403784,\n 1735328473, -1926607734, -378558, -2022574463, 1839030562, -35309556,\n -1530992060, 1272893353, -155497632, -1094730640, 681279174, -358537222,\n -722521979, 76029189, -640364487, -421815835, 530742520, -995338651,\n -198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606,\n -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649,\n -145523070, -1120210379, 718787259, -343485551,\n ]);\n\n function hash(data, offset, length) {\n let h0 = 1732584193,\n h1 = -271733879,\n h2 = -1732584194,\n h3 = 271733878;\n // pre-processing\n const paddedLength = (length + 72) & ~63; // data + 9 extra bytes\n const padded = new Uint8Array(paddedLength);\n let i, j;\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n padded[i++] = 0x80;\n const n = paddedLength - 8;\n while (i < n) {\n padded[i++] = 0;\n }\n padded[i++] = (length << 3) & 0xff;\n padded[i++] = (length >> 5) & 0xff;\n padded[i++] = (length >> 13) & 0xff;\n padded[i++] = (length >> 21) & 0xff;\n padded[i++] = (length >>> 29) & 0xff;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n const w = new Int32Array(16);\n for (i = 0; i < paddedLength; ) {\n for (j = 0; j < 16; ++j, i += 4) {\n w[j] =\n padded[i] |\n (padded[i + 1] << 8) |\n (padded[i + 2] << 16) |\n (padded[i + 3] << 24);\n }\n let a = h0,\n b = h1,\n c = h2,\n d = h3,\n f,\n g;\n for (j = 0; j < 64; ++j) {\n if (j < 16) {\n f = (b & c) | (~b & d);\n g = j;\n } else if (j < 32) {\n f = (d & b) | (~d & c);\n g = (5 * j + 1) & 15;\n } else if (j < 48) {\n f = b ^ c ^ d;\n g = (3 * j + 5) & 15;\n } else {\n f = c ^ (b | ~d);\n g = (7 * j) & 15;\n }\n const tmp = d,\n rotateArg = (a + f + k[j] + w[g]) | 0,\n rotate = r[j];\n d = c;\n c = b;\n b = (b + ((rotateArg << rotate) | (rotateArg >>> (32 - rotate)))) | 0;\n a = tmp;\n }\n h0 = (h0 + a) | 0;\n h1 = (h1 + b) | 0;\n h2 = (h2 + c) | 0;\n h3 = (h3 + d) | 0;\n }\n // prettier-ignore\n return new Uint8Array([\n h0 & 0xFF, (h0 >> 8) & 0xFF, (h0 >> 16) & 0xFF, (h0 >>> 24) & 0xFF,\n h1 & 0xFF, (h1 >> 8) & 0xFF, (h1 >> 16) & 0xFF, (h1 >>> 24) & 0xFF,\n h2 & 0xFF, (h2 >> 8) & 0xFF, (h2 >> 16) & 0xFF, (h2 >>> 24) & 0xFF,\n h3 & 0xFF, (h3 >> 8) & 0xFF, (h3 >> 16) & 0xFF, (h3 >>> 24) & 0xFF\n ]);\n }\n\n return hash;\n})();\n\nclass Word64 {\n constructor(highInteger, lowInteger) {\n this.high = highInteger | 0;\n this.low = lowInteger | 0;\n }\n\n and(word) {\n this.high &= word.high;\n this.low &= word.low;\n }\n\n xor(word) {\n this.high ^= word.high;\n this.low ^= word.low;\n }\n\n or(word) {\n this.high |= word.high;\n this.low |= word.low;\n }\n\n shiftRight(places) {\n if (places >= 32) {\n this.low = (this.high >>> (places - 32)) | 0;\n this.high = 0;\n } else {\n this.low = (this.low >>> places) | (this.high << (32 - places));\n this.high = (this.high >>> places) | 0;\n }\n }\n\n shiftLeft(places) {\n if (places >= 32) {\n this.high = this.low << (places - 32);\n this.low = 0;\n } else {\n this.high = (this.high << places) | (this.low >>> (32 - places));\n this.low <<= places;\n }\n }\n\n rotateRight(places) {\n let low, high;\n if (places & 32) {\n high = this.low;\n low = this.high;\n } else {\n low = this.low;\n high = this.high;\n }\n places &= 31;\n this.low = (low >>> places) | (high << (32 - places));\n this.high = (high >>> places) | (low << (32 - places));\n }\n\n not() {\n this.high = ~this.high;\n this.low = ~this.low;\n }\n\n add(word) {\n const lowAdd = (this.low >>> 0) + (word.low >>> 0);\n let highAdd = (this.high >>> 0) + (word.high >>> 0);\n if (lowAdd > 0xffffffff) {\n highAdd += 1;\n }\n this.low = lowAdd | 0;\n this.high = highAdd | 0;\n }\n\n copyTo(bytes, offset) {\n bytes[offset] = (this.high >>> 24) & 0xff;\n bytes[offset + 1] = (this.high >> 16) & 0xff;\n bytes[offset + 2] = (this.high >> 8) & 0xff;\n bytes[offset + 3] = this.high & 0xff;\n bytes[offset + 4] = (this.low >>> 24) & 0xff;\n bytes[offset + 5] = (this.low >> 16) & 0xff;\n bytes[offset + 6] = (this.low >> 8) & 0xff;\n bytes[offset + 7] = this.low & 0xff;\n }\n\n assign(word) {\n this.high = word.high;\n this.low = word.low;\n }\n}\n\nconst calculateSHA256 = (function calculateSHA256Closure() {\n function rotr(x, n) {\n return (x >>> n) | (x << (32 - n));\n }\n\n function ch(x, y, z) {\n return (x & y) ^ (~x & z);\n }\n\n function maj(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n }\n\n function sigma(x) {\n return rotr(x, 2) ^ rotr(x, 13) ^ rotr(x, 22);\n }\n\n function sigmaPrime(x) {\n return rotr(x, 6) ^ rotr(x, 11) ^ rotr(x, 25);\n }\n\n function littleSigma(x) {\n return rotr(x, 7) ^ rotr(x, 18) ^ (x >>> 3);\n }\n\n function littleSigmaPrime(x) {\n return rotr(x, 17) ^ rotr(x, 19) ^ (x >>> 10);\n }\n\n const k = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1,\n 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786,\n 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b,\n 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a,\n 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,\n ];\n\n function hash(data, offset, length) {\n // initial hash values\n let h0 = 0x6a09e667,\n h1 = 0xbb67ae85,\n h2 = 0x3c6ef372,\n h3 = 0xa54ff53a,\n h4 = 0x510e527f,\n h5 = 0x9b05688c,\n h6 = 0x1f83d9ab,\n h7 = 0x5be0cd19;\n // pre-processing\n const paddedLength = Math.ceil((length + 9) / 64) * 64;\n const padded = new Uint8Array(paddedLength);\n let i, j;\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n padded[i++] = 0x80;\n const n = paddedLength - 8;\n while (i < n) {\n padded[i++] = 0;\n }\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = (length >>> 29) & 0xff;\n padded[i++] = (length >> 21) & 0xff;\n padded[i++] = (length >> 13) & 0xff;\n padded[i++] = (length >> 5) & 0xff;\n padded[i++] = (length << 3) & 0xff;\n const w = new Uint32Array(64);\n // for each 512 bit block\n for (i = 0; i < paddedLength; ) {\n for (j = 0; j < 16; ++j) {\n w[j] =\n (padded[i] << 24) |\n (padded[i + 1] << 16) |\n (padded[i + 2] << 8) |\n padded[i + 3];\n i += 4;\n }\n\n for (j = 16; j < 64; ++j) {\n w[j] =\n (littleSigmaPrime(w[j - 2]) +\n w[j - 7] +\n littleSigma(w[j - 15]) +\n w[j - 16]) |\n 0;\n }\n let a = h0,\n b = h1,\n c = h2,\n d = h3,\n e = h4,\n f = h5,\n g = h6,\n h = h7,\n t1,\n t2;\n for (j = 0; j < 64; ++j) {\n t1 = h + sigmaPrime(e) + ch(e, f, g) + k[j] + w[j];\n t2 = sigma(a) + maj(a, b, c);\n h = g;\n g = f;\n f = e;\n e = (d + t1) | 0;\n d = c;\n c = b;\n b = a;\n a = (t1 + t2) | 0;\n }\n h0 = (h0 + a) | 0;\n h1 = (h1 + b) | 0;\n h2 = (h2 + c) | 0;\n h3 = (h3 + d) | 0;\n h4 = (h4 + e) | 0;\n h5 = (h5 + f) | 0;\n h6 = (h6 + g) | 0;\n h7 = (h7 + h) | 0;\n }\n // prettier-ignore\n return new Uint8Array([\n (h0 >> 24) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 8) & 0xFF, (h0) & 0xFF,\n (h1 >> 24) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 8) & 0xFF, (h1) & 0xFF,\n (h2 >> 24) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 8) & 0xFF, (h2) & 0xFF,\n (h3 >> 24) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 8) & 0xFF, (h3) & 0xFF,\n (h4 >> 24) & 0xFF, (h4 >> 16) & 0xFF, (h4 >> 8) & 0xFF, (h4) & 0xFF,\n (h5 >> 24) & 0xFF, (h5 >> 16) & 0xFF, (h5 >> 8) & 0xFF, (h5) & 0xFF,\n (h6 >> 24) & 0xFF, (h6 >> 16) & 0xFF, (h6 >> 8) & 0xFF, (h6) & 0xFF,\n (h7 >> 24) & 0xFF, (h7 >> 16) & 0xFF, (h7 >> 8) & 0xFF, (h7) & 0xFF\n ]);\n }\n\n return hash;\n})();\n\nconst calculateSHA512 = (function calculateSHA512Closure() {\n function ch(result, x, y, z, tmp) {\n result.assign(x);\n result.and(y);\n tmp.assign(x);\n tmp.not();\n tmp.and(z);\n result.xor(tmp);\n }\n\n function maj(result, x, y, z, tmp) {\n result.assign(x);\n result.and(y);\n tmp.assign(x);\n tmp.and(z);\n result.xor(tmp);\n tmp.assign(y);\n tmp.and(z);\n result.xor(tmp);\n }\n\n function sigma(result, x, tmp) {\n result.assign(x);\n result.rotateRight(28);\n tmp.assign(x);\n tmp.rotateRight(34);\n result.xor(tmp);\n tmp.assign(x);\n tmp.rotateRight(39);\n result.xor(tmp);\n }\n\n function sigmaPrime(result, x, tmp) {\n result.assign(x);\n result.rotateRight(14);\n tmp.assign(x);\n tmp.rotateRight(18);\n result.xor(tmp);\n tmp.assign(x);\n tmp.rotateRight(41);\n result.xor(tmp);\n }\n\n function littleSigma(result, x, tmp) {\n result.assign(x);\n result.rotateRight(1);\n tmp.assign(x);\n tmp.rotateRight(8);\n result.xor(tmp);\n tmp.assign(x);\n tmp.shiftRight(7);\n result.xor(tmp);\n }\n\n function littleSigmaPrime(result, x, tmp) {\n result.assign(x);\n result.rotateRight(19);\n tmp.assign(x);\n tmp.rotateRight(61);\n result.xor(tmp);\n tmp.assign(x);\n tmp.shiftRight(6);\n result.xor(tmp);\n }\n\n // prettier-ignore\n const k = [\n new Word64(0x428a2f98, 0xd728ae22), new Word64(0x71374491, 0x23ef65cd),\n new Word64(0xb5c0fbcf, 0xec4d3b2f), new Word64(0xe9b5dba5, 0x8189dbbc),\n new Word64(0x3956c25b, 0xf348b538), new Word64(0x59f111f1, 0xb605d019),\n new Word64(0x923f82a4, 0xaf194f9b), new Word64(0xab1c5ed5, 0xda6d8118),\n new Word64(0xd807aa98, 0xa3030242), new Word64(0x12835b01, 0x45706fbe),\n new Word64(0x243185be, 0x4ee4b28c), new Word64(0x550c7dc3, 0xd5ffb4e2),\n new Word64(0x72be5d74, 0xf27b896f), new Word64(0x80deb1fe, 0x3b1696b1),\n new Word64(0x9bdc06a7, 0x25c71235), new Word64(0xc19bf174, 0xcf692694),\n new Word64(0xe49b69c1, 0x9ef14ad2), new Word64(0xefbe4786, 0x384f25e3),\n new Word64(0x0fc19dc6, 0x8b8cd5b5), new Word64(0x240ca1cc, 0x77ac9c65),\n new Word64(0x2de92c6f, 0x592b0275), new Word64(0x4a7484aa, 0x6ea6e483),\n new Word64(0x5cb0a9dc, 0xbd41fbd4), new Word64(0x76f988da, 0x831153b5),\n new Word64(0x983e5152, 0xee66dfab), new Word64(0xa831c66d, 0x2db43210),\n new Word64(0xb00327c8, 0x98fb213f), new Word64(0xbf597fc7, 0xbeef0ee4),\n new Word64(0xc6e00bf3, 0x3da88fc2), new Word64(0xd5a79147, 0x930aa725),\n new Word64(0x06ca6351, 0xe003826f), new Word64(0x14292967, 0x0a0e6e70),\n new Word64(0x27b70a85, 0x46d22ffc), new Word64(0x2e1b2138, 0x5c26c926),\n new Word64(0x4d2c6dfc, 0x5ac42aed), new Word64(0x53380d13, 0x9d95b3df),\n new Word64(0x650a7354, 0x8baf63de), new Word64(0x766a0abb, 0x3c77b2a8),\n new Word64(0x81c2c92e, 0x47edaee6), new Word64(0x92722c85, 0x1482353b),\n new Word64(0xa2bfe8a1, 0x4cf10364), new Word64(0xa81a664b, 0xbc423001),\n new Word64(0xc24b8b70, 0xd0f89791), new Word64(0xc76c51a3, 0x0654be30),\n new Word64(0xd192e819, 0xd6ef5218), new Word64(0xd6990624, 0x5565a910),\n new Word64(0xf40e3585, 0x5771202a), new Word64(0x106aa070, 0x32bbd1b8),\n new Word64(0x19a4c116, 0xb8d2d0c8), new Word64(0x1e376c08, 0x5141ab53),\n new Word64(0x2748774c, 0xdf8eeb99), new Word64(0x34b0bcb5, 0xe19b48a8),\n new Word64(0x391c0cb3, 0xc5c95a63), new Word64(0x4ed8aa4a, 0xe3418acb),\n new Word64(0x5b9cca4f, 0x7763e373), new Word64(0x682e6ff3, 0xd6b2b8a3),\n new Word64(0x748f82ee, 0x5defb2fc), new Word64(0x78a5636f, 0x43172f60),\n new Word64(0x84c87814, 0xa1f0ab72), new Word64(0x8cc70208, 0x1a6439ec),\n new Word64(0x90befffa, 0x23631e28), new Word64(0xa4506ceb, 0xde82bde9),\n new Word64(0xbef9a3f7, 0xb2c67915), new Word64(0xc67178f2, 0xe372532b),\n new Word64(0xca273ece, 0xea26619c), new Word64(0xd186b8c7, 0x21c0c207),\n new Word64(0xeada7dd6, 0xcde0eb1e), new Word64(0xf57d4f7f, 0xee6ed178),\n new Word64(0x06f067aa, 0x72176fba), new Word64(0x0a637dc5, 0xa2c898a6),\n new Word64(0x113f9804, 0xbef90dae), new Word64(0x1b710b35, 0x131c471b),\n new Word64(0x28db77f5, 0x23047d84), new Word64(0x32caab7b, 0x40c72493),\n new Word64(0x3c9ebe0a, 0x15c9bebc), new Word64(0x431d67c4, 0x9c100d4c),\n new Word64(0x4cc5d4be, 0xcb3e42b6), new Word64(0x597f299c, 0xfc657e2a),\n new Word64(0x5fcb6fab, 0x3ad6faec), new Word64(0x6c44198c, 0x4a475817)];\n\n function hash(data, offset, length, mode384 = false) {\n // initial hash values\n let h0, h1, h2, h3, h4, h5, h6, h7;\n if (!mode384) {\n h0 = new Word64(0x6a09e667, 0xf3bcc908);\n h1 = new Word64(0xbb67ae85, 0x84caa73b);\n h2 = new Word64(0x3c6ef372, 0xfe94f82b);\n h3 = new Word64(0xa54ff53a, 0x5f1d36f1);\n h4 = new Word64(0x510e527f, 0xade682d1);\n h5 = new Word64(0x9b05688c, 0x2b3e6c1f);\n h6 = new Word64(0x1f83d9ab, 0xfb41bd6b);\n h7 = new Word64(0x5be0cd19, 0x137e2179);\n } else {\n // SHA384 is exactly the same\n // except with different starting values and a trimmed result\n h0 = new Word64(0xcbbb9d5d, 0xc1059ed8);\n h1 = new Word64(0x629a292a, 0x367cd507);\n h2 = new Word64(0x9159015a, 0x3070dd17);\n h3 = new Word64(0x152fecd8, 0xf70e5939);\n h4 = new Word64(0x67332667, 0xffc00b31);\n h5 = new Word64(0x8eb44a87, 0x68581511);\n h6 = new Word64(0xdb0c2e0d, 0x64f98fa7);\n h7 = new Word64(0x47b5481d, 0xbefa4fa4);\n }\n\n // pre-processing\n const paddedLength = Math.ceil((length + 17) / 128) * 128;\n const padded = new Uint8Array(paddedLength);\n let i, j;\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n padded[i++] = 0x80;\n const n = paddedLength - 16;\n while (i < n) {\n padded[i++] = 0;\n }\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = (length >>> 29) & 0xff;\n padded[i++] = (length >> 21) & 0xff;\n padded[i++] = (length >> 13) & 0xff;\n padded[i++] = (length >> 5) & 0xff;\n padded[i++] = (length << 3) & 0xff;\n\n const w = new Array(80);\n for (i = 0; i < 80; i++) {\n w[i] = new Word64(0, 0);\n }\n let a = new Word64(0, 0),\n b = new Word64(0, 0),\n c = new Word64(0, 0);\n let d = new Word64(0, 0),\n e = new Word64(0, 0),\n f = new Word64(0, 0);\n let g = new Word64(0, 0),\n h = new Word64(0, 0);\n const t1 = new Word64(0, 0),\n t2 = new Word64(0, 0);\n const tmp1 = new Word64(0, 0),\n tmp2 = new Word64(0, 0);\n let tmp3;\n\n // for each 1024 bit block\n for (i = 0; i < paddedLength; ) {\n for (j = 0; j < 16; ++j) {\n w[j].high =\n (padded[i] << 24) |\n (padded[i + 1] << 16) |\n (padded[i + 2] << 8) |\n padded[i + 3];\n w[j].low =\n (padded[i + 4] << 24) |\n (padded[i + 5] << 16) |\n (padded[i + 6] << 8) |\n padded[i + 7];\n i += 8;\n }\n for (j = 16; j < 80; ++j) {\n tmp3 = w[j];\n littleSigmaPrime(tmp3, w[j - 2], tmp2);\n tmp3.add(w[j - 7]);\n littleSigma(tmp1, w[j - 15], tmp2);\n tmp3.add(tmp1);\n tmp3.add(w[j - 16]);\n }\n\n a.assign(h0);\n b.assign(h1);\n c.assign(h2);\n d.assign(h3);\n e.assign(h4);\n f.assign(h5);\n g.assign(h6);\n h.assign(h7);\n for (j = 0; j < 80; ++j) {\n t1.assign(h);\n sigmaPrime(tmp1, e, tmp2);\n t1.add(tmp1);\n ch(tmp1, e, f, g, tmp2);\n t1.add(tmp1);\n t1.add(k[j]);\n t1.add(w[j]);\n\n sigma(t2, a, tmp2);\n maj(tmp1, a, b, c, tmp2);\n t2.add(tmp1);\n\n tmp3 = h;\n h = g;\n g = f;\n f = e;\n d.add(t1);\n e = d;\n d = c;\n c = b;\n b = a;\n tmp3.assign(t1);\n tmp3.add(t2);\n a = tmp3;\n }\n h0.add(a);\n h1.add(b);\n h2.add(c);\n h3.add(d);\n h4.add(e);\n h5.add(f);\n h6.add(g);\n h7.add(h);\n }\n\n let result;\n if (!mode384) {\n result = new Uint8Array(64);\n h0.copyTo(result, 0);\n h1.copyTo(result, 8);\n h2.copyTo(result, 16);\n h3.copyTo(result, 24);\n h4.copyTo(result, 32);\n h5.copyTo(result, 40);\n h6.copyTo(result, 48);\n h7.copyTo(result, 56);\n } else {\n result = new Uint8Array(48);\n h0.copyTo(result, 0);\n h1.copyTo(result, 8);\n h2.copyTo(result, 16);\n h3.copyTo(result, 24);\n h4.copyTo(result, 32);\n h5.copyTo(result, 40);\n }\n return result;\n }\n\n return hash;\n})();\n\nfunction calculateSHA384(data, offset, length) {\n return calculateSHA512(data, offset, length, /* mode384 = */ true);\n}\n\nclass NullCipher {\n decryptBlock(data) {\n return data;\n }\n\n encrypt(data) {\n return data;\n }\n}\n\nclass AESBaseCipher {\n constructor() {\n if (this.constructor === AESBaseCipher) {\n unreachable(\"Cannot initialize AESBaseCipher.\");\n }\n\n this._s = new Uint8Array([\n 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b,\n 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0,\n 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26,\n 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,\n 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2,\n 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0,\n 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed,\n 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf,\n 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f,\n 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5,\n 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec,\n 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,\n 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14,\n 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c,\n 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d,\n 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08,\n 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f,\n 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e,\n 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11,\n 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,\n 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f,\n 0xb0, 0x54, 0xbb, 0x16,\n ]);\n\n this._inv_s = new Uint8Array([\n 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e,\n 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87,\n 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32,\n 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e,\n 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49,\n 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16,\n 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50,\n 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84,\n 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05,\n 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02,\n 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41,\n 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73,\n 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8,\n 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89,\n 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b,\n 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4,\n 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59,\n 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d,\n 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d,\n 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61,\n 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63,\n 0x55, 0x21, 0x0c, 0x7d,\n ]);\n\n this._mix = new Uint32Array([\n 0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927,\n 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45,\n 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb,\n 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381,\n 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf,\n 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66,\n 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28,\n 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012,\n 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec,\n 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e,\n 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd,\n 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7,\n 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89,\n 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b,\n 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815,\n 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f,\n 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa,\n 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8,\n 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36,\n 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c,\n 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742,\n 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea,\n 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4,\n 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e,\n 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360,\n 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502,\n 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87,\n 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd,\n 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3,\n 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621,\n 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f,\n 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55,\n 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26,\n 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844,\n 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba,\n 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480,\n 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce,\n 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67,\n 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929,\n 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713,\n 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed,\n 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f,\n 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3,\n ]);\n\n this._mixCol = new Uint8Array(256);\n for (let i = 0; i < 256; i++) {\n if (i < 128) {\n this._mixCol[i] = i << 1;\n } else {\n this._mixCol[i] = (i << 1) ^ 0x1b;\n }\n }\n\n this.buffer = new Uint8Array(16);\n this.bufferPosition = 0;\n }\n\n _expandKey(cipherKey) {\n unreachable(\"Cannot call `_expandKey` on the base class\");\n }\n\n _decrypt(input, key) {\n let t, u, v;\n const state = new Uint8Array(16);\n state.set(input);\n\n // AddRoundKey\n for (let j = 0, k = this._keySize; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n for (let i = this._cyclesOfRepetition - 1; i >= 1; --i) {\n // InvShiftRows\n t = state[13];\n state[13] = state[9];\n state[9] = state[5];\n state[5] = state[1];\n state[1] = t;\n t = state[14];\n u = state[10];\n state[14] = state[6];\n state[10] = state[2];\n state[6] = t;\n state[2] = u;\n t = state[15];\n u = state[11];\n v = state[7];\n state[15] = state[3];\n state[11] = t;\n state[7] = u;\n state[3] = v;\n // InvSubBytes\n for (let j = 0; j < 16; ++j) {\n state[j] = this._inv_s[state[j]];\n }\n // AddRoundKey\n for (let j = 0, k = i * 16; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n // InvMixColumns\n for (let j = 0; j < 16; j += 4) {\n const s0 = this._mix[state[j]];\n const s1 = this._mix[state[j + 1]];\n const s2 = this._mix[state[j + 2]];\n const s3 = this._mix[state[j + 3]];\n t =\n s0 ^\n (s1 >>> 8) ^\n (s1 << 24) ^\n (s2 >>> 16) ^\n (s2 << 16) ^\n (s3 >>> 24) ^\n (s3 << 8);\n state[j] = (t >>> 24) & 0xff;\n state[j + 1] = (t >> 16) & 0xff;\n state[j + 2] = (t >> 8) & 0xff;\n state[j + 3] = t & 0xff;\n }\n }\n // InvShiftRows\n t = state[13];\n state[13] = state[9];\n state[9] = state[5];\n state[5] = state[1];\n state[1] = t;\n t = state[14];\n u = state[10];\n state[14] = state[6];\n state[10] = state[2];\n state[6] = t;\n state[2] = u;\n t = state[15];\n u = state[11];\n v = state[7];\n state[15] = state[3];\n state[11] = t;\n state[7] = u;\n state[3] = v;\n for (let j = 0; j < 16; ++j) {\n // InvSubBytes\n state[j] = this._inv_s[state[j]];\n // AddRoundKey\n state[j] ^= key[j];\n }\n return state;\n }\n\n _encrypt(input, key) {\n const s = this._s;\n\n let t, u, v;\n const state = new Uint8Array(16);\n state.set(input);\n\n for (let j = 0; j < 16; ++j) {\n // AddRoundKey\n state[j] ^= key[j];\n }\n\n for (let i = 1; i < this._cyclesOfRepetition; i++) {\n // SubBytes\n for (let j = 0; j < 16; ++j) {\n state[j] = s[state[j]];\n }\n // ShiftRows\n v = state[1];\n state[1] = state[5];\n state[5] = state[9];\n state[9] = state[13];\n state[13] = v;\n v = state[2];\n u = state[6];\n state[2] = state[10];\n state[6] = state[14];\n state[10] = v;\n state[14] = u;\n v = state[3];\n u = state[7];\n t = state[11];\n state[3] = state[15];\n state[7] = v;\n state[11] = u;\n state[15] = t;\n // MixColumns\n for (let j = 0; j < 16; j += 4) {\n const s0 = state[j + 0];\n const s1 = state[j + 1];\n const s2 = state[j + 2];\n const s3 = state[j + 3];\n t = s0 ^ s1 ^ s2 ^ s3;\n state[j + 0] ^= t ^ this._mixCol[s0 ^ s1];\n state[j + 1] ^= t ^ this._mixCol[s1 ^ s2];\n state[j + 2] ^= t ^ this._mixCol[s2 ^ s3];\n state[j + 3] ^= t ^ this._mixCol[s3 ^ s0];\n }\n // AddRoundKey\n for (let j = 0, k = i * 16; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n }\n\n // SubBytes\n for (let j = 0; j < 16; ++j) {\n state[j] = s[state[j]];\n }\n // ShiftRows\n v = state[1];\n state[1] = state[5];\n state[5] = state[9];\n state[9] = state[13];\n state[13] = v;\n v = state[2];\n u = state[6];\n state[2] = state[10];\n state[6] = state[14];\n state[10] = v;\n state[14] = u;\n v = state[3];\n u = state[7];\n t = state[11];\n state[3] = state[15];\n state[7] = v;\n state[11] = u;\n state[15] = t;\n // AddRoundKey\n for (let j = 0, k = this._keySize; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n return state;\n }\n\n _decryptBlock2(data, finalize) {\n const sourceLength = data.length;\n let buffer = this.buffer,\n bufferLength = this.bufferPosition;\n const result = [];\n let iv = this.iv;\n\n for (let i = 0; i < sourceLength; ++i) {\n buffer[bufferLength] = data[i];\n ++bufferLength;\n if (bufferLength < 16) {\n continue;\n }\n // buffer is full, decrypting\n const plain = this._decrypt(buffer, this._key);\n // xor-ing the IV vector to get plain text\n for (let j = 0; j < 16; ++j) {\n plain[j] ^= iv[j];\n }\n iv = buffer;\n result.push(plain);\n buffer = new Uint8Array(16);\n bufferLength = 0;\n }\n // saving incomplete buffer\n this.buffer = buffer;\n this.bufferLength = bufferLength;\n this.iv = iv;\n if (result.length === 0) {\n return new Uint8Array(0);\n }\n // combining plain text blocks into one\n let outputLength = 16 * result.length;\n if (finalize) {\n // undo a padding that is described in RFC 2898\n const lastBlock = result[result.length - 1];\n let psLen = lastBlock[15];\n if (psLen <= 16) {\n for (let i = 15, ii = 16 - psLen; i >= ii; --i) {\n if (lastBlock[i] !== psLen) {\n // Invalid padding, assume that the block has no padding.\n psLen = 0;\n break;\n }\n }\n outputLength -= psLen;\n result[result.length - 1] = lastBlock.subarray(0, 16 - psLen);\n }\n }\n const output = new Uint8Array(outputLength);\n for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n output.set(result[i], j);\n }\n return output;\n }\n\n decryptBlock(data, finalize, iv = null) {\n const sourceLength = data.length;\n const buffer = this.buffer;\n let bufferLength = this.bufferPosition;\n // If an IV is not supplied, wait for IV values. They are at the start\n // of the stream.\n if (iv) {\n this.iv = iv;\n } else {\n for (\n let i = 0;\n bufferLength < 16 && i < sourceLength;\n ++i, ++bufferLength\n ) {\n buffer[bufferLength] = data[i];\n }\n if (bufferLength < 16) {\n // Need more data.\n this.bufferLength = bufferLength;\n return new Uint8Array(0);\n }\n this.iv = buffer;\n data = data.subarray(16);\n }\n this.buffer = new Uint8Array(16);\n this.bufferLength = 0;\n // starting decryption\n this.decryptBlock = this._decryptBlock2;\n return this.decryptBlock(data, finalize);\n }\n\n encrypt(data, iv) {\n const sourceLength = data.length;\n let buffer = this.buffer,\n bufferLength = this.bufferPosition;\n const result = [];\n\n if (!iv) {\n iv = new Uint8Array(16);\n }\n for (let i = 0; i < sourceLength; ++i) {\n buffer[bufferLength] = data[i];\n ++bufferLength;\n if (bufferLength < 16) {\n continue;\n }\n\n for (let j = 0; j < 16; ++j) {\n buffer[j] ^= iv[j];\n }\n\n // buffer is full, encrypting\n const cipher = this._encrypt(buffer, this._key);\n iv = cipher;\n result.push(cipher);\n buffer = new Uint8Array(16);\n bufferLength = 0;\n }\n // saving incomplete buffer\n this.buffer = buffer;\n this.bufferLength = bufferLength;\n this.iv = iv;\n if (result.length === 0) {\n return new Uint8Array(0);\n }\n // combining plain text blocks into one\n const outputLength = 16 * result.length;\n const output = new Uint8Array(outputLength);\n for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n output.set(result[i], j);\n }\n return output;\n }\n}\n\nclass AES128Cipher extends AESBaseCipher {\n constructor(key) {\n super();\n\n this._cyclesOfRepetition = 10;\n this._keySize = 160; // bits\n\n this._rcon = new Uint8Array([\n 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c,\n 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a,\n 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd,\n 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a,\n 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,\n 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6,\n 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72,\n 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc,\n 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10,\n 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e,\n 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5,\n 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94,\n 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02,\n 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d,\n 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d,\n 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f,\n 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb,\n 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c,\n 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a,\n 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd,\n 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a,\n 0x74, 0xe8, 0xcb, 0x8d,\n ]);\n\n this._key = this._expandKey(key);\n }\n\n _expandKey(cipherKey) {\n const b = 176;\n const s = this._s;\n const rcon = this._rcon;\n\n const result = new Uint8Array(b);\n result.set(cipherKey);\n\n for (let j = 16, i = 1; j < b; ++i) {\n // RotWord\n let t1 = result[j - 3];\n let t2 = result[j - 2];\n let t3 = result[j - 1];\n let t4 = result[j - 4];\n // SubWord\n t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n // Rcon\n t1 ^= rcon[i];\n for (let n = 0; n < 4; ++n) {\n result[j] = t1 ^= result[j - 16];\n j++;\n result[j] = t2 ^= result[j - 16];\n j++;\n result[j] = t3 ^= result[j - 16];\n j++;\n result[j] = t4 ^= result[j - 16];\n j++;\n }\n }\n return result;\n }\n}\n\nclass AES256Cipher extends AESBaseCipher {\n constructor(key) {\n super();\n\n this._cyclesOfRepetition = 14;\n this._keySize = 224; // bits\n\n this._key = this._expandKey(key);\n }\n\n _expandKey(cipherKey) {\n const b = 240;\n const s = this._s;\n\n const result = new Uint8Array(b);\n result.set(cipherKey);\n\n let r = 1;\n let t1, t2, t3, t4;\n for (let j = 32, i = 1; j < b; ++i) {\n if (j % 32 === 16) {\n t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n } else if (j % 32 === 0) {\n // RotWord\n t1 = result[j - 3];\n t2 = result[j - 2];\n t3 = result[j - 1];\n t4 = result[j - 4];\n // SubWord\n t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n // Rcon\n t1 ^= r;\n if ((r <<= 1) >= 256) {\n r = (r ^ 0x1b) & 0xff;\n }\n }\n\n for (let n = 0; n < 4; ++n) {\n result[j] = t1 ^= result[j - 32];\n j++;\n result[j] = t2 ^= result[j - 32];\n j++;\n result[j] = t3 ^= result[j - 32];\n j++;\n result[j] = t4 ^= result[j - 32];\n j++;\n }\n }\n return result;\n }\n}\n\nclass PDF17 {\n checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) {\n const hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerValidationSalt, password.length);\n hashData.set(userBytes, password.length + ownerValidationSalt.length);\n const result = calculateSHA256(hashData, 0, hashData.length);\n return isArrayEqual(result, ownerPassword);\n }\n\n checkUserPassword(password, userValidationSalt, userPassword) {\n const hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userValidationSalt, password.length);\n const result = calculateSHA256(hashData, 0, hashData.length);\n return isArrayEqual(result, userPassword);\n }\n\n getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n const hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerKeySalt, password.length);\n hashData.set(userBytes, password.length + ownerKeySalt.length);\n const key = calculateSHA256(hashData, 0, hashData.length);\n const cipher = new AES256Cipher(key);\n return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n }\n\n getUserKey(password, userKeySalt, userEncryption) {\n const hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userKeySalt, password.length);\n // `key` is the decryption key for the UE string.\n const key = calculateSHA256(hashData, 0, hashData.length);\n const cipher = new AES256Cipher(key);\n return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n }\n}\n\nconst PDF20 = (function PDF20Closure() {\n function calculatePDF20Hash(password, input, userBytes) {\n // This refers to Algorithm 2.B as defined in ISO 32000-2.\n let k = calculateSHA256(input, 0, input.length).subarray(0, 32);\n let e = [0];\n let i = 0;\n while (i < 64 || e[e.length - 1] > i - 32) {\n const combinedLength = password.length + k.length + userBytes.length,\n combinedArray = new Uint8Array(combinedLength);\n let writeOffset = 0;\n combinedArray.set(password, writeOffset);\n writeOffset += password.length;\n combinedArray.set(k, writeOffset);\n writeOffset += k.length;\n combinedArray.set(userBytes, writeOffset);\n\n const k1 = new Uint8Array(combinedLength * 64);\n for (let j = 0, pos = 0; j < 64; j++, pos += combinedLength) {\n k1.set(combinedArray, pos);\n }\n // AES128 CBC NO PADDING with first 16 bytes of k as the key\n // and the second 16 as the iv.\n const cipher = new AES128Cipher(k.subarray(0, 16));\n e = cipher.encrypt(k1, k.subarray(16, 32));\n // Now we have to take the first 16 bytes of an unsigned big endian\n // integer and compute the remainder modulo 3. That is a fairly large\n // number and JavaScript isn't going to handle that well, so we're using\n // a trick that allows us to perform modulo math byte by byte.\n let remainder = 0;\n for (let z = 0; z < 16; z++) {\n remainder *= 256 % 3;\n remainder %= 3;\n remainder += (e[z] >>> 0) % 3;\n remainder %= 3;\n }\n if (remainder === 0) {\n k = calculateSHA256(e, 0, e.length);\n } else if (remainder === 1) {\n k = calculateSHA384(e, 0, e.length);\n } else if (remainder === 2) {\n k = calculateSHA512(e, 0, e.length);\n }\n i++;\n }\n return k.subarray(0, 32);\n }\n\n // eslint-disable-next-line no-shadow\n class PDF20 {\n hash(password, concatBytes, userBytes) {\n return calculatePDF20Hash(password, concatBytes, userBytes);\n }\n\n checkOwnerPassword(\n password,\n ownerValidationSalt,\n userBytes,\n ownerPassword\n ) {\n const hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerValidationSalt, password.length);\n hashData.set(userBytes, password.length + ownerValidationSalt.length);\n const result = calculatePDF20Hash(password, hashData, userBytes);\n return isArrayEqual(result, ownerPassword);\n }\n\n checkUserPassword(password, userValidationSalt, userPassword) {\n const hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userValidationSalt, password.length);\n const result = calculatePDF20Hash(password, hashData, []);\n return isArrayEqual(result, userPassword);\n }\n\n getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n const hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerKeySalt, password.length);\n hashData.set(userBytes, password.length + ownerKeySalt.length);\n const key = calculatePDF20Hash(password, hashData, userBytes);\n const cipher = new AES256Cipher(key);\n return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n }\n\n getUserKey(password, userKeySalt, userEncryption) {\n const hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userKeySalt, password.length);\n // `key` is the decryption key for the UE string.\n const key = calculatePDF20Hash(password, hashData, []);\n const cipher = new AES256Cipher(key);\n return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n }\n }\n\n return PDF20;\n})();\n\nclass CipherTransform {\n constructor(stringCipherConstructor, streamCipherConstructor) {\n this.StringCipherConstructor = stringCipherConstructor;\n this.StreamCipherConstructor = streamCipherConstructor;\n }\n\n createStream(stream, length) {\n const cipher = new this.StreamCipherConstructor();\n return new DecryptStream(\n stream,\n length,\n function cipherTransformDecryptStream(data, finalize) {\n return cipher.decryptBlock(data, finalize);\n }\n );\n }\n\n decryptString(s) {\n const cipher = new this.StringCipherConstructor();\n let data = stringToBytes(s);\n data = cipher.decryptBlock(data, true);\n return bytesToString(data);\n }\n\n encryptString(s) {\n const cipher = new this.StringCipherConstructor();\n if (cipher instanceof AESBaseCipher) {\n // Append some chars equal to \"16 - (M mod 16)\"\n // where M is the string length (see section 7.6.2 in PDF specification)\n // to have a final string where the length is a multiple of 16.\n // Special note:\n // \"Note that the pad is present when M is evenly divisible by 16;\n // it contains 16 bytes of 0x10.\"\n const strLen = s.length;\n const pad = 16 - (strLen % 16);\n s += String.fromCharCode(pad).repeat(pad);\n\n // Generate an initialization vector\n const iv = new Uint8Array(16);\n if (typeof crypto !== \"undefined\") {\n crypto.getRandomValues(iv);\n } else {\n for (let i = 0; i < 16; i++) {\n iv[i] = Math.floor(256 * Math.random());\n }\n }\n\n let data = stringToBytes(s);\n data = cipher.encrypt(data, iv);\n\n const buf = new Uint8Array(16 + data.length);\n buf.set(iv);\n buf.set(data, 16);\n\n return bytesToString(buf);\n }\n\n let data = stringToBytes(s);\n data = cipher.encrypt(data);\n return bytesToString(data);\n }\n}\n\nconst CipherTransformFactory = (function CipherTransformFactoryClosure() {\n const defaultPasswordBytes = new Uint8Array([\n 0x28, 0xbf, 0x4e, 0x5e, 0x4e, 0x75, 0x8a, 0x41, 0x64, 0x00, 0x4e, 0x56,\n 0xff, 0xfa, 0x01, 0x08, 0x2e, 0x2e, 0x00, 0xb6, 0xd0, 0x68, 0x3e, 0x80,\n 0x2f, 0x0c, 0xa9, 0xfe, 0x64, 0x53, 0x69, 0x7a,\n ]);\n\n function createEncryptionKey20(\n revision,\n password,\n ownerPassword,\n ownerValidationSalt,\n ownerKeySalt,\n uBytes,\n userPassword,\n userValidationSalt,\n userKeySalt,\n ownerEncryption,\n userEncryption,\n perms\n ) {\n if (password) {\n const passwordLength = Math.min(127, password.length);\n password = password.subarray(0, passwordLength);\n } else {\n password = [];\n }\n let pdfAlgorithm;\n if (revision === 6) {\n pdfAlgorithm = new PDF20();\n } else {\n pdfAlgorithm = new PDF17();\n }\n\n if (\n pdfAlgorithm.checkUserPassword(password, userValidationSalt, userPassword)\n ) {\n return pdfAlgorithm.getUserKey(password, userKeySalt, userEncryption);\n } else if (\n password.length &&\n pdfAlgorithm.checkOwnerPassword(\n password,\n ownerValidationSalt,\n uBytes,\n ownerPassword\n )\n ) {\n return pdfAlgorithm.getOwnerKey(\n password,\n ownerKeySalt,\n uBytes,\n ownerEncryption\n );\n }\n\n return null;\n }\n\n function prepareKeyData(\n fileId,\n password,\n ownerPassword,\n userPassword,\n flags,\n revision,\n keyLength,\n encryptMetadata\n ) {\n const hashDataSize = 40 + ownerPassword.length + fileId.length;\n const hashData = new Uint8Array(hashDataSize);\n let i = 0,\n j,\n n;\n if (password) {\n n = Math.min(32, password.length);\n for (; i < n; ++i) {\n hashData[i] = password[i];\n }\n }\n j = 0;\n while (i < 32) {\n hashData[i++] = defaultPasswordBytes[j++];\n }\n // as now the padded password in the hashData[0..i]\n for (j = 0, n = ownerPassword.length; j < n; ++j) {\n hashData[i++] = ownerPassword[j];\n }\n hashData[i++] = flags & 0xff;\n hashData[i++] = (flags >> 8) & 0xff;\n hashData[i++] = (flags >> 16) & 0xff;\n hashData[i++] = (flags >>> 24) & 0xff;\n for (j = 0, n = fileId.length; j < n; ++j) {\n hashData[i++] = fileId[j];\n }\n if (revision >= 4 && !encryptMetadata) {\n hashData[i++] = 0xff;\n hashData[i++] = 0xff;\n hashData[i++] = 0xff;\n hashData[i++] = 0xff;\n }\n let hash = calculateMD5(hashData, 0, i);\n const keyLengthInBytes = keyLength >> 3;\n if (revision >= 3) {\n for (j = 0; j < 50; ++j) {\n hash = calculateMD5(hash, 0, keyLengthInBytes);\n }\n }\n const encryptionKey = hash.subarray(0, keyLengthInBytes);\n let cipher, checkData;\n\n if (revision >= 3) {\n for (i = 0; i < 32; ++i) {\n hashData[i] = defaultPasswordBytes[i];\n }\n for (j = 0, n = fileId.length; j < n; ++j) {\n hashData[i++] = fileId[j];\n }\n cipher = new ARCFourCipher(encryptionKey);\n checkData = cipher.encryptBlock(calculateMD5(hashData, 0, i));\n n = encryptionKey.length;\n const derivedKey = new Uint8Array(n);\n for (j = 1; j <= 19; ++j) {\n for (let k = 0; k < n; ++k) {\n derivedKey[k] = encryptionKey[k] ^ j;\n }\n cipher = new ARCFourCipher(derivedKey);\n checkData = cipher.encryptBlock(checkData);\n }\n for (j = 0, n = checkData.length; j < n; ++j) {\n if (userPassword[j] !== checkData[j]) {\n return null;\n }\n }\n } else {\n cipher = new ARCFourCipher(encryptionKey);\n checkData = cipher.encryptBlock(defaultPasswordBytes);\n for (j = 0, n = checkData.length; j < n; ++j) {\n if (userPassword[j] !== checkData[j]) {\n return null;\n }\n }\n }\n return encryptionKey;\n }\n\n function decodeUserPassword(password, ownerPassword, revision, keyLength) {\n const hashData = new Uint8Array(32);\n let i = 0;\n const n = Math.min(32, password.length);\n for (; i < n; ++i) {\n hashData[i] = password[i];\n }\n let j = 0;\n while (i < 32) {\n hashData[i++] = defaultPasswordBytes[j++];\n }\n let hash = calculateMD5(hashData, 0, i);\n const keyLengthInBytes = keyLength >> 3;\n if (revision >= 3) {\n for (j = 0; j < 50; ++j) {\n hash = calculateMD5(hash, 0, hash.length);\n }\n }\n\n let cipher, userPassword;\n if (revision >= 3) {\n userPassword = ownerPassword;\n const derivedKey = new Uint8Array(keyLengthInBytes);\n for (j = 19; j >= 0; j--) {\n for (let k = 0; k < keyLengthInBytes; ++k) {\n derivedKey[k] = hash[k] ^ j;\n }\n cipher = new ARCFourCipher(derivedKey);\n userPassword = cipher.encryptBlock(userPassword);\n }\n } else {\n cipher = new ARCFourCipher(hash.subarray(0, keyLengthInBytes));\n userPassword = cipher.encryptBlock(ownerPassword);\n }\n return userPassword;\n }\n\n const identityName = Name.get(\"Identity\");\n\n function buildObjectKey(num, gen, encryptionKey, isAes = false) {\n const key = new Uint8Array(encryptionKey.length + 9);\n const n = encryptionKey.length;\n let i;\n for (i = 0; i < n; ++i) {\n key[i] = encryptionKey[i];\n }\n key[i++] = num & 0xff;\n key[i++] = (num >> 8) & 0xff;\n key[i++] = (num >> 16) & 0xff;\n key[i++] = gen & 0xff;\n key[i++] = (gen >> 8) & 0xff;\n if (isAes) {\n key[i++] = 0x73;\n key[i++] = 0x41;\n key[i++] = 0x6c;\n key[i++] = 0x54;\n }\n const hash = calculateMD5(key, 0, i);\n return hash.subarray(0, Math.min(encryptionKey.length + 5, 16));\n }\n\n function buildCipherConstructor(cf, name, num, gen, key) {\n if (!(name instanceof Name)) {\n throw new FormatError(\"Invalid crypt filter name.\");\n }\n const cryptFilter = cf.get(name.name);\n let cfm;\n if (cryptFilter !== null && cryptFilter !== undefined) {\n cfm = cryptFilter.get(\"CFM\");\n }\n if (!cfm || cfm.name === \"None\") {\n return function cipherTransformFactoryBuildCipherConstructorNone() {\n return new NullCipher();\n };\n }\n if (cfm.name === \"V2\") {\n return function cipherTransformFactoryBuildCipherConstructorV2() {\n return new ARCFourCipher(\n buildObjectKey(num, gen, key, /* isAes = */ false)\n );\n };\n }\n if (cfm.name === \"AESV2\") {\n return function cipherTransformFactoryBuildCipherConstructorAESV2() {\n return new AES128Cipher(\n buildObjectKey(num, gen, key, /* isAes = */ true)\n );\n };\n }\n if (cfm.name === \"AESV3\") {\n return function cipherTransformFactoryBuildCipherConstructorAESV3() {\n return new AES256Cipher(key);\n };\n }\n throw new FormatError(\"Unknown crypto method\");\n }\n\n // eslint-disable-next-line no-shadow\n class CipherTransformFactory {\n constructor(dict, fileId, password) {\n const filter = dict.get(\"Filter\");\n if (!isName(filter, \"Standard\")) {\n throw new FormatError(\"unknown encryption method\");\n }\n this.filterName = filter.name;\n this.dict = dict;\n const algorithm = dict.get(\"V\");\n if (\n !Number.isInteger(algorithm) ||\n (algorithm !== 1 &&\n algorithm !== 2 &&\n algorithm !== 4 &&\n algorithm !== 5)\n ) {\n throw new FormatError(\"unsupported encryption algorithm\");\n }\n this.algorithm = algorithm;\n let keyLength = dict.get(\"Length\");\n if (!keyLength) {\n // Spec asks to rely on encryption dictionary's Length entry, however\n // some PDFs don't have it. Trying to recover.\n if (algorithm <= 3) {\n // For 1 and 2 it's fixed to 40-bit, for 3 40-bit is a minimal value.\n keyLength = 40;\n } else {\n // Trying to find default handler -- it usually has Length.\n const cfDict = dict.get(\"CF\");\n const streamCryptoName = dict.get(\"StmF\");\n if (cfDict instanceof Dict && streamCryptoName instanceof Name) {\n cfDict.suppressEncryption = true; // See comment below.\n const handlerDict = cfDict.get(streamCryptoName.name);\n keyLength = (handlerDict && handlerDict.get(\"Length\")) || 128;\n if (keyLength < 40) {\n // Sometimes it's incorrect value of bits, generators specify\n // bytes.\n keyLength <<= 3;\n }\n }\n }\n }\n if (\n !Number.isInteger(keyLength) ||\n keyLength < 40 ||\n keyLength % 8 !== 0\n ) {\n throw new FormatError(\"invalid key length\");\n }\n\n // prepare keys\n const ownerPassword = stringToBytes(dict.get(\"O\")).subarray(0, 32);\n const userPassword = stringToBytes(dict.get(\"U\")).subarray(0, 32);\n const flags = dict.get(\"P\");\n const revision = dict.get(\"R\");\n // meaningful when V is 4 or 5\n const encryptMetadata =\n (algorithm === 4 || algorithm === 5) &&\n dict.get(\"EncryptMetadata\") !== false;\n this.encryptMetadata = encryptMetadata;\n\n const fileIdBytes = stringToBytes(fileId);\n let passwordBytes;\n if (password) {\n if (revision === 6) {\n try {\n password = utf8StringToString(password);\n } catch (ex) {\n warn(\n \"CipherTransformFactory: \" +\n \"Unable to convert UTF8 encoded password.\"\n );\n }\n }\n passwordBytes = stringToBytes(password);\n }\n\n let encryptionKey;\n if (algorithm !== 5) {\n encryptionKey = prepareKeyData(\n fileIdBytes,\n passwordBytes,\n ownerPassword,\n userPassword,\n flags,\n revision,\n keyLength,\n encryptMetadata\n );\n } else {\n const ownerValidationSalt = stringToBytes(dict.get(\"O\")).subarray(\n 32,\n 40\n );\n const ownerKeySalt = stringToBytes(dict.get(\"O\")).subarray(40, 48);\n const uBytes = stringToBytes(dict.get(\"U\")).subarray(0, 48);\n const userValidationSalt = stringToBytes(dict.get(\"U\")).subarray(\n 32,\n 40\n );\n const userKeySalt = stringToBytes(dict.get(\"U\")).subarray(40, 48);\n const ownerEncryption = stringToBytes(dict.get(\"OE\"));\n const userEncryption = stringToBytes(dict.get(\"UE\"));\n const perms = stringToBytes(dict.get(\"Perms\"));\n encryptionKey = createEncryptionKey20(\n revision,\n passwordBytes,\n ownerPassword,\n ownerValidationSalt,\n ownerKeySalt,\n uBytes,\n userPassword,\n userValidationSalt,\n userKeySalt,\n ownerEncryption,\n userEncryption,\n perms\n );\n }\n if (!encryptionKey && !password) {\n throw new PasswordException(\n \"No password given\",\n PasswordResponses.NEED_PASSWORD\n );\n } else if (!encryptionKey && password) {\n // Attempting use the password as an owner password\n const decodedPassword = decodeUserPassword(\n passwordBytes,\n ownerPassword,\n revision,\n keyLength\n );\n encryptionKey = prepareKeyData(\n fileIdBytes,\n decodedPassword,\n ownerPassword,\n userPassword,\n flags,\n revision,\n keyLength,\n encryptMetadata\n );\n }\n\n if (!encryptionKey) {\n throw new PasswordException(\n \"Incorrect Password\",\n PasswordResponses.INCORRECT_PASSWORD\n );\n }\n\n this.encryptionKey = encryptionKey;\n\n if (algorithm >= 4) {\n const cf = dict.get(\"CF\");\n if (cf instanceof Dict) {\n // The 'CF' dictionary itself should not be encrypted, and by setting\n // `suppressEncryption` we can prevent an infinite loop inside of\n // `XRef_fetchUncompressed` if the dictionary contains indirect\n // objects (fixes issue7665.pdf).\n cf.suppressEncryption = true;\n }\n this.cf = cf;\n this.stmf = dict.get(\"StmF\") || identityName;\n this.strf = dict.get(\"StrF\") || identityName;\n this.eff = dict.get(\"EFF\") || this.stmf;\n }\n }\n\n createCipherTransform(num, gen) {\n if (this.algorithm === 4 || this.algorithm === 5) {\n return new CipherTransform(\n buildCipherConstructor(\n this.cf,\n this.stmf,\n num,\n gen,\n this.encryptionKey\n ),\n buildCipherConstructor(\n this.cf,\n this.strf,\n num,\n gen,\n this.encryptionKey\n )\n );\n }\n // algorithms 1 and 2\n const key = buildObjectKey(\n num,\n gen,\n this.encryptionKey,\n /* isAes = */ false\n );\n const cipherConstructor = function buildCipherCipherConstructor() {\n return new ARCFourCipher(key);\n };\n return new CipherTransform(cipherConstructor, cipherConstructor);\n }\n }\n\n return CipherTransformFactory;\n})();\n\nexport {\n AES128Cipher,\n AES256Cipher,\n ARCFourCipher,\n calculateMD5,\n calculateSHA256,\n calculateSHA384,\n calculateSHA512,\n CipherTransformFactory,\n PDF17,\n PDF20,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\n\nconst chunkSize = 512;\n\nclass DecryptStream extends DecodeStream {\n constructor(str, maybeLength, decrypt) {\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n this.decrypt = decrypt;\n this.nextChunk = null;\n this.initialized = false;\n }\n\n readBlock() {\n let chunk;\n if (this.initialized) {\n chunk = this.nextChunk;\n } else {\n chunk = this.str.getBytes(chunkSize);\n this.initialized = true;\n }\n if (!chunk || chunk.length === 0) {\n this.eof = true;\n return;\n }\n this.nextChunk = this.str.getBytes(chunkSize);\n const hasMoreData = this.nextChunk && this.nextChunk.length > 0;\n\n const decrypt = this.decrypt;\n chunk = decrypt(chunk, !hasMoreData);\n\n let bufferLength = this.bufferLength;\n const n = chunk.length,\n buffer = this.ensureBuffer(bufferLength + n);\n for (let i = 0; i < n; i++) {\n buffer[bufferLength++] = chunk[i];\n }\n this.bufferLength = bufferLength;\n }\n}\n\nexport { DecryptStream };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $appendChild,\n $globalData,\n $nodeName,\n $text,\n $toHTML,\n $toPages,\n} from \"./xfa_object.js\";\nimport { Binder } from \"./bind.js\";\nimport { DataHandler } from \"./data.js\";\nimport { FontFinder } from \"./fonts.js\";\nimport { stripQuotes } from \"./utils.js\";\nimport { warn } from \"../../shared/util.js\";\nimport { XFAParser } from \"./parser.js\";\nimport { XhtmlNamespace } from \"./xhtml.js\";\n\nclass XFAFactory {\n constructor(data) {\n try {\n this.root = new XFAParser().parse(XFAFactory._createDocument(data));\n const binder = new Binder(this.root);\n this.form = binder.bind();\n this.dataHandler = new DataHandler(this.root, binder.getData());\n this.form[$globalData].template = this.form;\n } catch (e) {\n warn(`XFA - an error occurred during parsing and binding: ${e}`);\n }\n }\n\n isValid() {\n return this.root && this.form;\n }\n\n /**\n * In order to avoid to block the event loop, the conversion\n * into pages is made asynchronously.\n */\n _createPagesHelper() {\n const iterator = this.form[$toPages]();\n return new Promise((resolve, reject) => {\n const nextIteration = () => {\n try {\n const value = iterator.next();\n if (value.done) {\n resolve(value.value);\n } else {\n setTimeout(nextIteration, 0);\n }\n } catch (e) {\n reject(e);\n }\n };\n setTimeout(nextIteration, 0);\n });\n }\n\n async _createPages() {\n try {\n this.pages = await this._createPagesHelper();\n this.dims = this.pages.children.map(c => {\n const { width, height } = c.attributes.style;\n return [0, 0, parseInt(width), parseInt(height)];\n });\n } catch (e) {\n warn(`XFA - an error occurred during layout: ${e}`);\n }\n }\n\n getBoundingBox(pageIndex) {\n return this.dims[pageIndex];\n }\n\n async getNumPages() {\n if (!this.pages) {\n await this._createPages();\n }\n return this.dims.length;\n }\n\n setImages(images) {\n this.form[$globalData].images = images;\n }\n\n setFonts(fonts) {\n this.form[$globalData].fontFinder = new FontFinder(fonts);\n const missingFonts = [];\n for (let typeface of this.form[$globalData].usedTypefaces) {\n typeface = stripQuotes(typeface);\n const font = this.form[$globalData].fontFinder.find(typeface);\n if (!font) {\n missingFonts.push(typeface);\n }\n }\n\n if (missingFonts.length > 0) {\n return missingFonts;\n }\n\n return null;\n }\n\n appendFonts(fonts, reallyMissingFonts) {\n this.form[$globalData].fontFinder.add(fonts, reallyMissingFonts);\n }\n\n async getPages() {\n if (!this.pages) {\n await this._createPages();\n }\n const pages = this.pages;\n this.pages = null;\n return pages;\n }\n\n serializeData(storage) {\n return this.dataHandler.serialize(storage);\n }\n\n static _createDocument(data) {\n if (!data[\"/xdp:xdp\"]) {\n return data[\"xdp:xdp\"];\n }\n return Object.values(data).join(\"\");\n }\n\n static getRichTextAsHtml(rc) {\n if (!rc || typeof rc !== \"string\") {\n return null;\n }\n\n try {\n let root = new XFAParser(XhtmlNamespace, /* richText */ true).parse(rc);\n if (![\"body\", \"xhtml\"].includes(root[$nodeName])) {\n // No body, so create one.\n const newRoot = XhtmlNamespace.body({});\n newRoot[$appendChild](root);\n root = newRoot;\n }\n\n const result = root[$toHTML]();\n if (!result.success) {\n return null;\n }\n\n const { html } = result;\n const { attributes } = html;\n if (attributes) {\n if (attributes.class) {\n attributes.class = attributes.class.filter(\n attr => !attr.startsWith(\"xfa\")\n );\n }\n attributes.dir = \"auto\";\n }\n\n return { html, str: root[$text]() };\n } catch (e) {\n warn(`XFA - an error occurred during parsing of rich text: ${e}`);\n }\n return null;\n }\n}\n\nexport { XFAFactory };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getInteger, getKeyword, HTMLResult } from \"./utils.js\";\nimport { shadow, utf8StringToString, warn } from \"../../shared/util.js\";\nimport { encodeToXmlString } from \"../core_utils.js\";\nimport { NamespaceIds } from \"./namespaces.js\";\nimport { searchNode } from \"./som.js\";\n\n// We use these symbols to avoid name conflict between tags\n// and properties/methods names.\nconst $acceptWhitespace = Symbol();\nconst $addHTML = Symbol();\nconst $appendChild = Symbol();\nconst $childrenToHTML = Symbol();\nconst $clean = Symbol();\nconst $cleanPage = Symbol();\nconst $cleanup = Symbol();\nconst $clone = Symbol();\nconst $consumed = Symbol();\nconst $content = Symbol(\"content\");\nconst $data = Symbol(\"data\");\nconst $dump = Symbol();\nconst $extra = Symbol(\"extra\");\nconst $finalize = Symbol();\nconst $flushHTML = Symbol();\nconst $getAttributeIt = Symbol();\nconst $getAttributes = Symbol();\nconst $getAvailableSpace = Symbol();\nconst $getChildrenByClass = Symbol();\nconst $getChildrenByName = Symbol();\nconst $getChildrenByNameIt = Symbol();\nconst $getDataValue = Symbol();\nconst $getExtra = Symbol();\nconst $getRealChildrenByNameIt = Symbol();\nconst $getChildren = Symbol();\nconst $getContainedChildren = Symbol();\nconst $getNextPage = Symbol();\nconst $getSubformParent = Symbol();\nconst $getParent = Symbol();\nconst $getTemplateRoot = Symbol();\nconst $globalData = Symbol();\nconst $hasSettableValue = Symbol();\nconst $ids = Symbol();\nconst $indexOf = Symbol();\nconst $insertAt = Symbol();\nconst $isCDATAXml = Symbol();\nconst $isBindable = Symbol();\nconst $isDataValue = Symbol();\nconst $isDescendent = Symbol();\nconst $isNsAgnostic = Symbol();\nconst $isSplittable = Symbol();\nconst $isThereMoreWidth = Symbol();\nconst $isTransparent = Symbol();\nconst $isUsable = Symbol();\nconst $lastAttribute = Symbol();\nconst $namespaceId = Symbol(\"namespaceId\");\nconst $nodeName = Symbol(\"nodeName\");\nconst $nsAttributes = Symbol();\nconst $onChild = Symbol();\nconst $onChildCheck = Symbol();\nconst $onText = Symbol();\nconst $pushGlyphs = Symbol();\nconst $popPara = Symbol();\nconst $pushPara = Symbol();\nconst $removeChild = Symbol();\nconst $root = Symbol(\"root\");\nconst $resolvePrototypes = Symbol();\nconst $searchNode = Symbol();\nconst $setId = Symbol();\nconst $setSetAttributes = Symbol();\nconst $setValue = Symbol();\nconst $tabIndex = Symbol();\nconst $text = Symbol();\nconst $toPages = Symbol();\nconst $toHTML = Symbol();\nconst $toString = Symbol();\nconst $toStyle = Symbol();\nconst $uid = Symbol(\"uid\");\n\nconst _applyPrototype = Symbol();\nconst _attributes = Symbol();\nconst _attributeNames = Symbol();\nconst _children = Symbol(\"_children\");\nconst _cloneAttribute = Symbol();\nconst _dataValue = Symbol();\nconst _defaultValue = Symbol();\nconst _filteredChildrenGenerator = Symbol();\nconst _getPrototype = Symbol();\nconst _getUnsetAttributes = Symbol();\nconst _hasChildren = Symbol();\nconst _max = Symbol();\nconst _options = Symbol();\nconst _parent = Symbol(\"parent\");\nconst _resolvePrototypesHelper = Symbol();\nconst _setAttributes = Symbol();\nconst _validator = Symbol();\n\nlet uid = 0;\n\nconst NS_DATASETS = NamespaceIds.datasets.id;\n\nclass XFAObject {\n constructor(nsId, name, hasChildren = false) {\n this[$namespaceId] = nsId;\n this[$nodeName] = name;\n this[_hasChildren] = hasChildren;\n this[_parent] = null;\n this[_children] = [];\n this[$uid] = `${name}${uid++}`;\n this[$globalData] = null;\n }\n\n [$onChild](child) {\n if (!this[_hasChildren] || !this[$onChildCheck](child)) {\n return false;\n }\n\n const name = child[$nodeName];\n const node = this[name];\n\n if (node instanceof XFAObjectArray) {\n if (node.push(child)) {\n this[$appendChild](child);\n return true;\n }\n } else {\n // IRL it's possible to already have a node.\n // So just replace it with the last version.\n if (node !== null) {\n this[$removeChild](node);\n }\n this[name] = child;\n this[$appendChild](child);\n return true;\n }\n\n let id = \"\";\n if (this.id) {\n id = ` (id: ${this.id})`;\n } else if (this.name) {\n id = ` (name: ${this.name} ${this.h.value})`;\n }\n warn(`XFA - node \"${this[$nodeName]}\"${id} has already enough \"${name}\"!`);\n return false;\n }\n\n [$onChildCheck](child) {\n return (\n this.hasOwnProperty(child[$nodeName]) &&\n child[$namespaceId] === this[$namespaceId]\n );\n }\n\n [$isNsAgnostic]() {\n return false;\n }\n\n [$acceptWhitespace]() {\n return false;\n }\n\n [$isCDATAXml]() {\n return false;\n }\n\n [$isBindable]() {\n return false;\n }\n\n [$popPara]() {\n if (this.para) {\n this[$getTemplateRoot]()[$extra].paraStack.pop();\n }\n }\n\n [$pushPara]() {\n this[$getTemplateRoot]()[$extra].paraStack.push(this.para);\n }\n\n [$setId](ids) {\n if (this.id && this[$namespaceId] === NamespaceIds.template.id) {\n ids.set(this.id, this);\n }\n }\n\n [$getTemplateRoot]() {\n return this[$globalData].template;\n }\n\n [$isSplittable]() {\n return false;\n }\n\n /**\n Return true if this node (typically a container)\n can provide more width during layout.\n The goal is to help to know what a descendant must\n do in case of horizontal overflow.\n */\n [$isThereMoreWidth]() {\n return false;\n }\n\n [$appendChild](child) {\n child[_parent] = this;\n this[_children].push(child);\n if (!child[$globalData] && this[$globalData]) {\n child[$globalData] = this[$globalData];\n }\n }\n\n [$removeChild](child) {\n const i = this[_children].indexOf(child);\n this[_children].splice(i, 1);\n }\n\n [$hasSettableValue]() {\n return this.hasOwnProperty(\"value\");\n }\n\n [$setValue](_) {}\n\n [$onText](_) {}\n\n [$finalize]() {}\n\n [$clean](builder) {\n delete this[_hasChildren];\n if (this[$cleanup]) {\n builder.clean(this[$cleanup]);\n delete this[$cleanup];\n }\n }\n\n [$indexOf](child) {\n return this[_children].indexOf(child);\n }\n\n [$insertAt](i, child) {\n child[_parent] = this;\n this[_children].splice(i, 0, child);\n if (!child[$globalData] && this[$globalData]) {\n child[$globalData] = this[$globalData];\n }\n }\n\n /**\n * If true the element is transparent when searching a node using\n * a SOM expression which means that looking for \"foo.bar\" in\n * <... name=\"foo\"><... name=\"bar\">...\n * is fine because toto and titi are transparent.\n */\n [$isTransparent]() {\n return !this.name;\n }\n\n [$lastAttribute]() {\n return \"\";\n }\n\n [$text]() {\n if (this[_children].length === 0) {\n return this[$content];\n }\n return this[_children].map(c => c[$text]()).join(\"\");\n }\n\n get [_attributeNames]() {\n // Lazily get attributes names\n const proto = Object.getPrototypeOf(this);\n if (!proto._attributes) {\n const attributes = (proto._attributes = new Set());\n for (const name of Object.getOwnPropertyNames(this)) {\n if (\n this[name] === null ||\n this[name] instanceof XFAObject ||\n this[name] instanceof XFAObjectArray\n ) {\n break;\n }\n attributes.add(name);\n }\n }\n return shadow(this, _attributeNames, proto._attributes);\n }\n\n [$isDescendent](parent) {\n let node = this;\n while (node) {\n if (node === parent) {\n return true;\n }\n node = node[$getParent]();\n }\n return false;\n }\n\n [$getParent]() {\n return this[_parent];\n }\n\n [$getSubformParent]() {\n return this[$getParent]();\n }\n\n [$getChildren](name = null) {\n if (!name) {\n return this[_children];\n }\n\n return this[name];\n }\n\n [$dump]() {\n const dumped = Object.create(null);\n if (this[$content]) {\n dumped.$content = this[$content];\n }\n\n for (const name of Object.getOwnPropertyNames(this)) {\n const value = this[name];\n if (value === null) {\n continue;\n }\n if (value instanceof XFAObject) {\n dumped[name] = value[$dump]();\n } else if (value instanceof XFAObjectArray) {\n if (!value.isEmpty()) {\n dumped[name] = value.dump();\n }\n } else {\n dumped[name] = value;\n }\n }\n\n return dumped;\n }\n\n [$toStyle]() {\n return null;\n }\n\n [$toHTML]() {\n return HTMLResult.EMPTY;\n }\n\n *[$getContainedChildren]() {\n // This function is overriden in Subform and SubformSet.\n for (const node of this[$getChildren]()) {\n yield node;\n }\n }\n\n *[_filteredChildrenGenerator](filter, include) {\n for (const node of this[$getContainedChildren]()) {\n if (!filter || include === filter.has(node[$nodeName])) {\n const availableSpace = this[$getAvailableSpace]();\n const res = node[$toHTML](availableSpace);\n if (!res.success) {\n this[$extra].failingNode = node;\n }\n yield res;\n }\n }\n }\n\n [$flushHTML]() {\n return null;\n }\n\n [$addHTML](html, bbox) {\n this[$extra].children.push(html);\n }\n\n [$getAvailableSpace]() {}\n\n [$childrenToHTML]({ filter = null, include = true }) {\n if (!this[$extra].generator) {\n this[$extra].generator = this[_filteredChildrenGenerator](\n filter,\n include\n );\n } else {\n const availableSpace = this[$getAvailableSpace]();\n const res = this[$extra].failingNode[$toHTML](availableSpace);\n if (!res.success) {\n return res;\n }\n if (res.html) {\n this[$addHTML](res.html, res.bbox);\n }\n delete this[$extra].failingNode;\n }\n\n while (true) {\n const gen = this[$extra].generator.next();\n if (gen.done) {\n break;\n }\n const res = gen.value;\n if (!res.success) {\n return res;\n }\n if (res.html) {\n this[$addHTML](res.html, res.bbox);\n }\n }\n\n this[$extra].generator = null;\n\n return HTMLResult.EMPTY;\n }\n\n [$setSetAttributes](attributes) {\n // Just keep set attributes because it can be used in a proto.\n this[_setAttributes] = new Set(Object.keys(attributes));\n }\n\n /**\n * Get attribute names which have been set in the proto but not in this.\n */\n [_getUnsetAttributes](protoAttributes) {\n const allAttr = this[_attributeNames];\n const setAttr = this[_setAttributes];\n return [...protoAttributes].filter(x => allAttr.has(x) && !setAttr.has(x));\n }\n\n /**\n * Update the node with properties coming from a prototype and apply\n * this function recursively to all children.\n */\n [$resolvePrototypes](ids, ancestors = new Set()) {\n for (const child of this[_children]) {\n child[_resolvePrototypesHelper](ids, ancestors);\n }\n }\n\n [_resolvePrototypesHelper](ids, ancestors) {\n const proto = this[_getPrototype](ids, ancestors);\n if (proto) {\n // _applyPrototype will apply $resolvePrototypes with correct ancestors\n // to avoid infinite loop.\n this[_applyPrototype](proto, ids, ancestors);\n } else {\n this[$resolvePrototypes](ids, ancestors);\n }\n }\n\n [_getPrototype](ids, ancestors) {\n const { use, usehref } = this;\n if (!use && !usehref) {\n return null;\n }\n\n let proto = null;\n let somExpression = null;\n let id = null;\n let ref = use;\n\n // If usehref and use are non-empty then use usehref.\n if (usehref) {\n ref = usehref;\n // Href can be one of the following:\n // - #ID\n // - URI#ID\n // - #som(expression)\n // - URI#som(expression)\n // - URI\n // For now we don't handle URI other than \".\" (current document).\n if (usehref.startsWith(\"#som(\") && usehref.endsWith(\")\")) {\n somExpression = usehref.slice(\"#som(\".length, usehref.length - 1);\n } else if (usehref.startsWith(\".#som(\") && usehref.endsWith(\")\")) {\n somExpression = usehref.slice(\".#som(\".length, usehref.length - 1);\n } else if (usehref.startsWith(\"#\")) {\n id = usehref.slice(1);\n } else if (usehref.startsWith(\".#\")) {\n id = usehref.slice(2);\n }\n } else if (use.startsWith(\"#\")) {\n id = use.slice(1);\n } else {\n somExpression = use;\n }\n\n this.use = this.usehref = \"\";\n if (id) {\n proto = ids.get(id);\n } else {\n proto = searchNode(\n ids.get($root),\n this,\n somExpression,\n true /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (proto) {\n proto = proto[0];\n }\n }\n\n if (!proto) {\n warn(`XFA - Invalid prototype reference: ${ref}.`);\n return null;\n }\n\n if (proto[$nodeName] !== this[$nodeName]) {\n warn(\n `XFA - Incompatible prototype: ${proto[$nodeName]} !== ${this[$nodeName]}.`\n );\n return null;\n }\n\n if (ancestors.has(proto)) {\n // We've a cycle so break it.\n warn(`XFA - Cycle detected in prototypes use.`);\n return null;\n }\n\n ancestors.add(proto);\n\n // The prototype can have a \"use\" attribute itself.\n const protoProto = proto[_getPrototype](ids, ancestors);\n if (protoProto) {\n proto[_applyPrototype](protoProto, ids, ancestors);\n }\n\n // The prototype can have a child which itself has a \"use\" property.\n proto[$resolvePrototypes](ids, ancestors);\n\n ancestors.delete(proto);\n\n return proto;\n }\n\n [_applyPrototype](proto, ids, ancestors) {\n if (ancestors.has(proto)) {\n // We've a cycle so break it.\n warn(`XFA - Cycle detected in prototypes use.`);\n return;\n }\n\n if (!this[$content] && proto[$content]) {\n this[$content] = proto[$content];\n }\n\n const newAncestors = new Set(ancestors);\n newAncestors.add(proto);\n\n for (const unsetAttrName of this[_getUnsetAttributes](\n proto[_setAttributes]\n )) {\n this[unsetAttrName] = proto[unsetAttrName];\n if (this[_setAttributes]) {\n this[_setAttributes].add(unsetAttrName);\n }\n }\n\n for (const name of Object.getOwnPropertyNames(this)) {\n if (this[_attributeNames].has(name)) {\n continue;\n }\n const value = this[name];\n const protoValue = proto[name];\n\n if (value instanceof XFAObjectArray) {\n for (const child of value[_children]) {\n child[_resolvePrototypesHelper](ids, ancestors);\n }\n\n for (\n let i = value[_children].length, ii = protoValue[_children].length;\n i < ii;\n i++\n ) {\n const child = proto[_children][i][$clone]();\n if (value.push(child)) {\n child[_parent] = this;\n this[_children].push(child);\n child[_resolvePrototypesHelper](ids, ancestors);\n } else {\n // No need to continue: other nodes will be rejected.\n break;\n }\n }\n continue;\n }\n\n if (value !== null) {\n value[$resolvePrototypes](ids, ancestors);\n if (protoValue) {\n // protoValue must be treated as a prototype for value.\n value[_applyPrototype](protoValue, ids, ancestors);\n }\n continue;\n }\n\n if (protoValue !== null) {\n const child = protoValue[$clone]();\n child[_parent] = this;\n this[name] = child;\n this[_children].push(child);\n child[_resolvePrototypesHelper](ids, ancestors);\n }\n }\n }\n\n static [_cloneAttribute](obj) {\n if (Array.isArray(obj)) {\n return obj.map(x => XFAObject[_cloneAttribute](x));\n }\n if (typeof obj === \"object\" && obj !== null) {\n return Object.assign({}, obj);\n }\n return obj;\n }\n\n [$clone]() {\n const clone = Object.create(Object.getPrototypeOf(this));\n for (const $symbol of Object.getOwnPropertySymbols(this)) {\n try {\n clone[$symbol] = this[$symbol];\n } catch (_) {\n shadow(clone, $symbol, this[$symbol]);\n }\n }\n clone[$uid] = `${clone[$nodeName]}${uid++}`;\n clone[_children] = [];\n\n for (const name of Object.getOwnPropertyNames(this)) {\n if (this[_attributeNames].has(name)) {\n clone[name] = XFAObject[_cloneAttribute](this[name]);\n continue;\n }\n const value = this[name];\n if (value instanceof XFAObjectArray) {\n clone[name] = new XFAObjectArray(value[_max]);\n } else {\n clone[name] = null;\n }\n }\n\n for (const child of this[_children]) {\n const name = child[$nodeName];\n const clonedChild = child[$clone]();\n clone[_children].push(clonedChild);\n clonedChild[_parent] = clone;\n if (clone[name] === null) {\n clone[name] = clonedChild;\n } else {\n clone[name][_children].push(clonedChild);\n }\n }\n\n return clone;\n }\n\n [$getChildren](name = null) {\n if (!name) {\n return this[_children];\n }\n\n return this[_children].filter(c => c[$nodeName] === name);\n }\n\n [$getChildrenByClass](name) {\n return this[name];\n }\n\n [$getChildrenByName](name, allTransparent, first = true) {\n return Array.from(this[$getChildrenByNameIt](name, allTransparent, first));\n }\n\n *[$getChildrenByNameIt](name, allTransparent, first = true) {\n if (name === \"parent\") {\n yield this[_parent];\n return;\n }\n\n for (const child of this[_children]) {\n if (child[$nodeName] === name) {\n yield child;\n }\n\n if (child.name === name) {\n yield child;\n }\n\n if (allTransparent || child[$isTransparent]()) {\n yield* child[$getChildrenByNameIt](name, allTransparent, false);\n }\n }\n\n if (first && this[_attributeNames].has(name)) {\n yield new XFAAttribute(this, name, this[name]);\n }\n }\n}\n\nclass XFAObjectArray {\n constructor(max = Infinity) {\n this[_max] = max;\n this[_children] = [];\n }\n\n push(child) {\n const len = this[_children].length;\n if (len <= this[_max]) {\n this[_children].push(child);\n return true;\n }\n warn(\n `XFA - node \"${child[$nodeName]}\" accepts no more than ${this[_max]} children`\n );\n return false;\n }\n\n isEmpty() {\n return this[_children].length === 0;\n }\n\n dump() {\n return this[_children].length === 1\n ? this[_children][0][$dump]()\n : this[_children].map(x => x[$dump]());\n }\n\n [$clone]() {\n const clone = new XFAObjectArray(this[_max]);\n clone[_children] = this[_children].map(c => c[$clone]());\n return clone;\n }\n\n get children() {\n return this[_children];\n }\n\n clear() {\n this[_children].length = 0;\n }\n}\n\nclass XFAAttribute {\n constructor(node, name, value) {\n this[_parent] = node;\n this[$nodeName] = name;\n this[$content] = value;\n this[$consumed] = false;\n this[$uid] = `attribute${uid++}`;\n }\n\n [$getParent]() {\n return this[_parent];\n }\n\n [$isDataValue]() {\n return true;\n }\n\n [$getDataValue]() {\n return this[$content].trim();\n }\n\n [$setValue](value) {\n value = value.value || \"\";\n this[$content] = value.toString();\n }\n\n [$text]() {\n return this[$content];\n }\n\n [$isDescendent](parent) {\n return this[_parent] === parent || this[_parent][$isDescendent](parent);\n }\n}\n\nclass XmlObject extends XFAObject {\n constructor(nsId, name, attributes = {}) {\n super(nsId, name);\n this[$content] = \"\";\n this[_dataValue] = null;\n if (name !== \"#text\") {\n const map = new Map();\n this[_attributes] = map;\n for (const [attrName, value] of Object.entries(attributes)) {\n map.set(attrName, new XFAAttribute(this, attrName, value));\n }\n if (attributes.hasOwnProperty($nsAttributes)) {\n // XFA attributes.\n const dataNode = attributes[$nsAttributes].xfa.dataNode;\n if (dataNode !== undefined) {\n if (dataNode === \"dataGroup\") {\n this[_dataValue] = false;\n } else if (dataNode === \"dataValue\") {\n this[_dataValue] = true;\n }\n }\n }\n }\n this[$consumed] = false;\n }\n\n [$toString](buf) {\n const tagName = this[$nodeName];\n if (tagName === \"#text\") {\n buf.push(encodeToXmlString(this[$content]));\n return;\n }\n const utf8TagName = utf8StringToString(tagName);\n const prefix = this[$namespaceId] === NS_DATASETS ? \"xfa:\" : \"\";\n buf.push(`<${prefix}${utf8TagName}`);\n for (const [name, value] of this[_attributes].entries()) {\n const utf8Name = utf8StringToString(name);\n buf.push(` ${utf8Name}=\"${encodeToXmlString(value[$content])}\"`);\n }\n if (this[_dataValue] !== null) {\n if (this[_dataValue]) {\n buf.push(` xfa:dataNode=\"dataValue\"`);\n } else {\n buf.push(` xfa:dataNode=\"dataGroup\"`);\n }\n }\n if (!this[$content] && this[_children].length === 0) {\n buf.push(\"/>\");\n return;\n }\n\n buf.push(\">\");\n if (this[$content]) {\n if (typeof this[$content] === \"string\") {\n buf.push(encodeToXmlString(this[$content]));\n } else {\n this[$content][$toString](buf);\n }\n } else {\n for (const child of this[_children]) {\n child[$toString](buf);\n }\n }\n buf.push(``);\n }\n\n [$onChild](child) {\n if (this[$content]) {\n const node = new XmlObject(this[$namespaceId], \"#text\");\n this[$appendChild](node);\n node[$content] = this[$content];\n this[$content] = \"\";\n }\n this[$appendChild](child);\n return true;\n }\n\n [$onText](str) {\n this[$content] += str;\n }\n\n [$finalize]() {\n if (this[$content] && this[_children].length > 0) {\n const node = new XmlObject(this[$namespaceId], \"#text\");\n this[$appendChild](node);\n node[$content] = this[$content];\n delete this[$content];\n }\n }\n\n [$toHTML]() {\n if (this[$nodeName] === \"#text\") {\n return HTMLResult.success({\n name: \"#text\",\n value: this[$content],\n });\n }\n\n return HTMLResult.EMPTY;\n }\n\n [$getChildren](name = null) {\n if (!name) {\n return this[_children];\n }\n\n return this[_children].filter(c => c[$nodeName] === name);\n }\n\n [$getAttributes]() {\n return this[_attributes];\n }\n\n [$getChildrenByClass](name) {\n const value = this[_attributes].get(name);\n if (value !== undefined) {\n return value;\n }\n return this[$getChildren](name);\n }\n\n *[$getChildrenByNameIt](name, allTransparent) {\n const value = this[_attributes].get(name);\n if (value) {\n yield value;\n }\n\n for (const child of this[_children]) {\n if (child[$nodeName] === name) {\n yield child;\n }\n\n if (allTransparent) {\n yield* child[$getChildrenByNameIt](name, allTransparent);\n }\n }\n }\n\n *[$getAttributeIt](name, skipConsumed) {\n const value = this[_attributes].get(name);\n if (value && (!skipConsumed || !value[$consumed])) {\n yield value;\n }\n for (const child of this[_children]) {\n yield* child[$getAttributeIt](name, skipConsumed);\n }\n }\n\n *[$getRealChildrenByNameIt](name, allTransparent, skipConsumed) {\n for (const child of this[_children]) {\n if (child[$nodeName] === name && (!skipConsumed || !child[$consumed])) {\n yield child;\n }\n\n if (allTransparent) {\n yield* child[$getRealChildrenByNameIt](\n name,\n allTransparent,\n skipConsumed\n );\n }\n }\n }\n\n [$isDataValue]() {\n if (this[_dataValue] === null) {\n return (\n this[_children].length === 0 ||\n this[_children][0][$namespaceId] === NamespaceIds.xhtml.id\n );\n }\n return this[_dataValue];\n }\n\n [$getDataValue]() {\n if (this[_dataValue] === null) {\n if (this[_children].length === 0) {\n return this[$content].trim();\n }\n if (this[_children][0][$namespaceId] === NamespaceIds.xhtml.id) {\n return this[_children][0][$text]().trim();\n }\n return null;\n }\n return this[$content].trim();\n }\n\n [$setValue](value) {\n value = value.value || \"\";\n this[$content] = value.toString();\n }\n\n [$dump](hasNS = false) {\n const dumped = Object.create(null);\n if (hasNS) {\n dumped.$ns = this[$namespaceId];\n }\n if (this[$content]) {\n dumped.$content = this[$content];\n }\n dumped.$name = this[$nodeName];\n\n dumped.children = [];\n for (const child of this[_children]) {\n dumped.children.push(child[$dump](hasNS));\n }\n\n dumped.attributes = Object.create(null);\n for (const [name, value] of this[_attributes]) {\n dumped.attributes[name] = value[$content];\n }\n\n return dumped;\n }\n}\n\nclass ContentObject extends XFAObject {\n constructor(nsId, name) {\n super(nsId, name);\n this[$content] = \"\";\n }\n\n [$onText](text) {\n this[$content] += text;\n }\n\n [$finalize]() {}\n}\n\nclass OptionObject extends ContentObject {\n constructor(nsId, name, options) {\n super(nsId, name);\n this[_options] = options;\n }\n\n [$finalize]() {\n this[$content] = getKeyword({\n data: this[$content],\n defaultValue: this[_options][0],\n validate: k => this[_options].includes(k),\n });\n }\n\n [$clean](builder) {\n super[$clean](builder);\n delete this[_options];\n }\n}\n\nclass StringObject extends ContentObject {\n [$finalize]() {\n this[$content] = this[$content].trim();\n }\n}\n\nclass IntegerObject extends ContentObject {\n constructor(nsId, name, defaultValue, validator) {\n super(nsId, name);\n this[_defaultValue] = defaultValue;\n this[_validator] = validator;\n }\n\n [$finalize]() {\n this[$content] = getInteger({\n data: this[$content],\n defaultValue: this[_defaultValue],\n validate: this[_validator],\n });\n }\n\n [$clean](builder) {\n super[$clean](builder);\n delete this[_defaultValue];\n delete this[_validator];\n }\n}\n\nclass Option01 extends IntegerObject {\n constructor(nsId, name) {\n super(nsId, name, 0, n => n === 1);\n }\n}\n\nclass Option10 extends IntegerObject {\n constructor(nsId, name) {\n super(nsId, name, 1, n => n === 0);\n }\n}\n\nexport {\n $acceptWhitespace,\n $addHTML,\n $appendChild,\n $childrenToHTML,\n $clean,\n $cleanPage,\n $cleanup,\n $clone,\n $consumed,\n $content,\n $data,\n $dump,\n $extra,\n $finalize,\n $flushHTML,\n $getAttributeIt,\n $getAttributes,\n $getAvailableSpace,\n $getChildren,\n $getChildrenByClass,\n $getChildrenByName,\n $getChildrenByNameIt,\n $getContainedChildren,\n $getDataValue,\n $getExtra,\n $getNextPage,\n $getParent,\n $getRealChildrenByNameIt,\n $getSubformParent,\n $getTemplateRoot,\n $globalData,\n $hasSettableValue,\n $ids,\n $indexOf,\n $insertAt,\n $isBindable,\n $isCDATAXml,\n $isDataValue,\n $isDescendent,\n $isNsAgnostic,\n $isSplittable,\n $isThereMoreWidth,\n $isTransparent,\n $isUsable,\n $namespaceId,\n $nodeName,\n $nsAttributes,\n $onChild,\n $onChildCheck,\n $onText,\n $popPara,\n $pushGlyphs,\n $pushPara,\n $removeChild,\n $resolvePrototypes,\n $root,\n $searchNode,\n $setId,\n $setSetAttributes,\n $setValue,\n $tabIndex,\n $text,\n $toHTML,\n $toPages,\n $toString,\n $toStyle,\n $uid,\n ContentObject,\n IntegerObject,\n Option01,\n Option10,\n OptionObject,\n StringObject,\n XFAAttribute,\n XFAObject,\n XFAObjectArray,\n XmlObject,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { shadow } from \"../../shared/util.js\";\n\nconst dimConverters = {\n pt: x => x,\n cm: x => (x / 2.54) * 72,\n mm: x => (x / (10 * 2.54)) * 72,\n in: x => x * 72,\n px: x => x,\n};\nconst measurementPattern = /([+-]?\\d+\\.?\\d*)(.*)/;\n\nfunction stripQuotes(str) {\n if (str.startsWith(\"'\") || str.startsWith('\"')) {\n return str.slice(1, str.length - 1);\n }\n return str;\n}\n\nfunction getInteger({ data, defaultValue, validate }) {\n if (!data) {\n return defaultValue;\n }\n data = data.trim();\n const n = parseInt(data, 10);\n if (!isNaN(n) && validate(n)) {\n return n;\n }\n return defaultValue;\n}\n\nfunction getFloat({ data, defaultValue, validate }) {\n if (!data) {\n return defaultValue;\n }\n data = data.trim();\n const n = parseFloat(data);\n if (!isNaN(n) && validate(n)) {\n return n;\n }\n return defaultValue;\n}\n\nfunction getKeyword({ data, defaultValue, validate }) {\n if (!data) {\n return defaultValue;\n }\n data = data.trim();\n if (validate(data)) {\n return data;\n }\n return defaultValue;\n}\n\nfunction getStringOption(data, options) {\n return getKeyword({\n data,\n defaultValue: options[0],\n validate: k => options.includes(k),\n });\n}\n\nfunction getMeasurement(str, def = \"0\") {\n def = def || \"0\";\n if (!str) {\n return getMeasurement(def);\n }\n const match = str.trim().match(measurementPattern);\n if (!match) {\n return getMeasurement(def);\n }\n const [, valueStr, unit] = match;\n const value = parseFloat(valueStr);\n if (isNaN(value)) {\n return getMeasurement(def);\n }\n\n if (value === 0) {\n return 0;\n }\n\n const conv = dimConverters[unit];\n if (conv) {\n return conv(value);\n }\n\n return value;\n}\n\nfunction getRatio(data) {\n if (!data) {\n return { num: 1, den: 1 };\n }\n const ratio = data\n .trim()\n .split(/\\s*:\\s*/)\n .map(x => parseFloat(x))\n .filter(x => !isNaN(x));\n if (ratio.length === 1) {\n ratio.push(1);\n }\n\n if (ratio.length === 0) {\n return { num: 1, den: 1 };\n }\n\n const [num, den] = ratio;\n return { num, den };\n}\n\nfunction getRelevant(data) {\n if (!data) {\n return [];\n }\n return data\n .trim()\n .split(/\\s+/)\n .map(e => {\n return {\n excluded: e[0] === \"-\",\n viewname: e.substring(1),\n };\n });\n}\n\nfunction getColor(data, def = [0, 0, 0]) {\n let [r, g, b] = def;\n if (!data) {\n return { r, g, b };\n }\n const color = data\n .trim()\n .split(/\\s*,\\s*/)\n .map(c => Math.min(Math.max(0, parseInt(c.trim(), 10)), 255))\n .map(c => (isNaN(c) ? 0 : c));\n\n if (color.length < 3) {\n return { r, g, b };\n }\n\n [r, g, b] = color;\n return { r, g, b };\n}\n\nfunction getBBox(data) {\n const def = -1;\n if (!data) {\n return { x: def, y: def, width: def, height: def };\n }\n const bbox = data\n .trim()\n .split(/\\s*,\\s*/)\n .map(m => getMeasurement(m, \"-1\"));\n if (bbox.length < 4 || bbox[2] < 0 || bbox[3] < 0) {\n return { x: def, y: def, width: def, height: def };\n }\n\n const [x, y, width, height] = bbox;\n return { x, y, width, height };\n}\n\nclass HTMLResult {\n static get FAILURE() {\n return shadow(this, \"FAILURE\", new HTMLResult(false, null, null, null));\n }\n\n static get EMPTY() {\n return shadow(this, \"EMPTY\", new HTMLResult(true, null, null, null));\n }\n\n constructor(success, html, bbox, breakNode) {\n this.success = success;\n this.html = html;\n this.bbox = bbox;\n this.breakNode = breakNode;\n }\n\n isBreak() {\n return !!this.breakNode;\n }\n\n static breakNode(node) {\n return new HTMLResult(false, null, null, node);\n }\n\n static success(html, bbox = null) {\n return new HTMLResult(true, html, bbox, null);\n }\n}\n\nexport {\n getBBox,\n getColor,\n getFloat,\n getInteger,\n getKeyword,\n getMeasurement,\n getRatio,\n getRelevant,\n getStringOption,\n HTMLResult,\n stripQuotes,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst $buildXFAObject = Symbol();\n\nconst NamespaceIds = {\n config: {\n id: 0,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xci/\"),\n },\n connectionSet: {\n id: 1,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-connection-set/\"),\n },\n datasets: {\n id: 2,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-data/\"),\n },\n form: {\n id: 3,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-form/\"),\n },\n localeSet: {\n id: 4,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-locale-set/\"),\n },\n pdf: {\n id: 5,\n check: ns => ns === \"http://ns.adobe.com/xdp/pdf/\",\n },\n signature: {\n id: 6,\n check: ns => ns === \"http://www.w3.org/2000/09/xmldsig#\",\n },\n sourceSet: {\n id: 7,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-source-set/\"),\n },\n stylesheet: {\n id: 8,\n check: ns => ns === \"http://www.w3.org/1999/XSL/Transform\",\n },\n template: {\n id: 9,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-template/\"),\n },\n xdc: {\n id: 10,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xdc/\"),\n },\n xdp: {\n id: 11,\n check: ns => ns === \"http://ns.adobe.com/xdp/\",\n },\n xfdf: {\n id: 12,\n check: ns => ns === \"http://ns.adobe.com/xfdf/\",\n },\n xhtml: {\n id: 13,\n check: ns => ns === \"http://www.w3.org/1999/xhtml\",\n },\n xmpmeta: {\n id: 14,\n check: ns => ns === \"http://ns.adobe.com/xmpmeta/\",\n },\n};\n\nexport { $buildXFAObject, NamespaceIds };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $appendChild,\n $getChildren,\n $getChildrenByClass,\n $getChildrenByName,\n $getParent,\n $namespaceId,\n XFAObject,\n XFAObjectArray,\n XmlObject,\n} from \"./xfa_object.js\";\nimport { NamespaceIds } from \"./namespaces.js\";\nimport { warn } from \"../../shared/util.js\";\n\nconst namePattern = /^[^.[]+/;\nconst indexPattern = /^[^\\]]+/;\nconst operators = {\n dot: 0,\n dotDot: 1,\n dotHash: 2,\n dotBracket: 3,\n dotParen: 4,\n};\n\nconst shortcuts = new Map([\n [\"$data\", (root, current) => (root.datasets ? root.datasets.data : root)],\n [\n \"$record\",\n (root, current) =>\n (root.datasets ? root.datasets.data : root)[$getChildren]()[0],\n ],\n [\"$template\", (root, current) => root.template],\n [\"$connectionSet\", (root, current) => root.connectionSet],\n [\"$form\", (root, current) => root.form],\n [\"$layout\", (root, current) => root.layout],\n [\"$host\", (root, current) => root.host],\n [\"$dataWindow\", (root, current) => root.dataWindow],\n [\"$event\", (root, current) => root.event],\n [\"!\", (root, current) => root.datasets],\n [\"$xfa\", (root, current) => root],\n [\"xfa\", (root, current) => root],\n [\"$\", (root, current) => current],\n]);\n\nconst somCache = new WeakMap();\nconst NS_DATASETS = NamespaceIds.datasets.id;\n\nfunction parseIndex(index) {\n index = index.trim();\n if (index === \"*\") {\n return Infinity;\n }\n return parseInt(index, 10) || 0;\n}\n\n// For now expressions containing .[...] or .(...) are not\n// evaluated so don't parse them.\n// TODO: implement that stuff and the remove the noExpr param.\nfunction parseExpression(expr, dotDotAllowed, noExpr = true) {\n let match = expr.match(namePattern);\n if (!match) {\n return null;\n }\n\n let [name] = match;\n const parsed = [\n {\n name,\n cacheName: \".\" + name,\n index: 0,\n js: null,\n formCalc: null,\n operator: operators.dot,\n },\n ];\n\n let pos = name.length;\n\n while (pos < expr.length) {\n const spos = pos;\n const char = expr.charAt(pos++);\n if (char === \"[\") {\n match = expr.slice(pos).match(indexPattern);\n if (!match) {\n warn(\"XFA - Invalid index in SOM expression\");\n return null;\n }\n parsed[parsed.length - 1].index = parseIndex(match[0]);\n pos += match[0].length + 1;\n continue;\n }\n\n let operator;\n switch (expr.charAt(pos)) {\n case \".\":\n if (!dotDotAllowed) {\n return null;\n }\n pos++;\n operator = operators.dotDot;\n break;\n case \"#\":\n pos++;\n operator = operators.dotHash;\n break;\n case \"[\":\n if (noExpr) {\n warn(\n \"XFA - SOM expression contains a FormCalc subexpression which is not supported for now.\"\n );\n return null;\n }\n // TODO: FormCalc expression so need to use the parser\n operator = operators.dotBracket;\n break;\n case \"(\":\n if (noExpr) {\n warn(\n \"XFA - SOM expression contains a JavaScript subexpression which is not supported for now.\"\n );\n return null;\n }\n // TODO:\n // JavaScript expression: should be a boolean operation with a path\n // so maybe we can have our own parser for that stuff or\n // maybe use the formcalc one.\n operator = operators.dotParen;\n break;\n default:\n operator = operators.dot;\n break;\n }\n\n match = expr.slice(pos).match(namePattern);\n if (!match) {\n break;\n }\n\n [name] = match;\n pos += name.length;\n parsed.push({\n name,\n cacheName: expr.slice(spos, pos),\n operator,\n index: 0,\n js: null,\n formCalc: null,\n });\n }\n return parsed;\n}\n\nfunction searchNode(\n root,\n container,\n expr,\n dotDotAllowed = true,\n useCache = true\n) {\n const parsed = parseExpression(expr, dotDotAllowed);\n if (!parsed) {\n return null;\n }\n\n const fn = shortcuts.get(parsed[0].name);\n let i = 0;\n let isQualified;\n if (fn) {\n isQualified = true;\n root = [fn(root, container)];\n i = 1;\n } else {\n isQualified = container === null;\n root = [container || root];\n }\n\n for (let ii = parsed.length; i < ii; i++) {\n const { name, cacheName, operator, index } = parsed[i];\n const nodes = [];\n for (const node of root) {\n if (!(node instanceof XFAObject)) {\n continue;\n }\n\n let children, cached;\n\n if (useCache) {\n cached = somCache.get(node);\n if (!cached) {\n cached = new Map();\n somCache.set(node, cached);\n }\n children = cached.get(cacheName);\n }\n\n if (!children) {\n switch (operator) {\n case operators.dot:\n children = node[$getChildrenByName](name, false);\n break;\n case operators.dotDot:\n children = node[$getChildrenByName](name, true);\n break;\n case operators.dotHash:\n children = node[$getChildrenByClass](name);\n if (children instanceof XFAObjectArray) {\n children = children.children;\n } else {\n children = [children];\n }\n break;\n default:\n break;\n }\n if (useCache) {\n cached.set(cacheName, children);\n }\n }\n\n if (children.length > 0) {\n nodes.push(children);\n }\n }\n\n if (nodes.length === 0 && !isQualified && i === 0) {\n // We've an unqualified expression and we didn't find anything\n // so look at container and siblings of container and so on.\n // http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.364.2157&rep=rep1&type=pdf#page=114\n const parent = container[$getParent]();\n container = parent;\n if (!container) {\n return null;\n }\n i = -1;\n root = [container];\n continue;\n }\n\n if (isFinite(index)) {\n root = nodes.filter(node => index < node.length).map(node => node[index]);\n } else {\n root = nodes.reduce((acc, node) => acc.concat(node), []);\n }\n }\n\n if (root.length === 0) {\n return null;\n }\n\n return root;\n}\n\nfunction createNodes(root, path) {\n let node = null;\n for (const { name, index } of path) {\n for (let i = 0, ii = !isFinite(index) ? 0 : index; i <= ii; i++) {\n const nsId = root[$namespaceId] === NS_DATASETS ? -1 : root[$namespaceId];\n node = new XmlObject(nsId, name);\n root[$appendChild](node);\n }\n\n root = node;\n }\n return node;\n}\n\nfunction createDataNode(root, container, expr) {\n const parsed = parseExpression(expr);\n if (!parsed) {\n return null;\n }\n\n if (parsed.some(x => x.operator === operators.dotDot)) {\n return null;\n }\n\n const fn = shortcuts.get(parsed[0].name);\n let i = 0;\n if (fn) {\n root = fn(root, container);\n i = 1;\n } else {\n root = container || root;\n }\n\n for (let ii = parsed.length; i < ii; i++) {\n const { name, operator, index } = parsed[i];\n if (!isFinite(index)) {\n parsed[i].index = 0;\n return createNodes(root, parsed.slice(i));\n }\n\n let children;\n switch (operator) {\n case operators.dot:\n children = root[$getChildrenByName](name, false);\n break;\n case operators.dotDot:\n children = root[$getChildrenByName](name, true);\n break;\n case operators.dotHash:\n children = root[$getChildrenByClass](name);\n if (children instanceof XFAObjectArray) {\n children = children.children;\n } else {\n children = [children];\n }\n break;\n default:\n break;\n }\n\n if (children.length === 0) {\n return createNodes(root, parsed.slice(i));\n }\n\n if (index < children.length) {\n const child = children[index];\n if (!(child instanceof XFAObject)) {\n warn(`XFA - Cannot create a node.`);\n return null;\n }\n root = child;\n } else {\n parsed[i].index = index - children.length;\n return createNodes(root, parsed.slice(i));\n }\n }\n return null;\n}\n\nexport { createDataNode, searchNode };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $appendChild,\n $clone,\n $consumed,\n $content,\n $data,\n $finalize,\n $getAttributeIt,\n $getChildren,\n $getDataValue,\n $getParent,\n $getRealChildrenByNameIt,\n $hasSettableValue,\n $indexOf,\n $insertAt,\n $isBindable,\n $isDataValue,\n $isDescendent,\n $namespaceId,\n $nodeName,\n $removeChild,\n $setValue,\n $text,\n XFAAttribute,\n XFAObjectArray,\n XmlObject,\n} from \"./xfa_object.js\";\nimport { BindItems, Field, Items, SetProperty, Text } from \"./template.js\";\nimport { createDataNode, searchNode } from \"./som.js\";\nimport { NamespaceIds } from \"./namespaces.js\";\nimport { warn } from \"../../shared/util.js\";\n\nconst NS_DATASETS = NamespaceIds.datasets.id;\n\nfunction createText(content) {\n const node = new Text({});\n node[$content] = content;\n return node;\n}\n\nclass Binder {\n constructor(root) {\n this.root = root;\n this.datasets = root.datasets;\n if (root.datasets && root.datasets.data) {\n this.data = root.datasets.data;\n } else {\n this.data = new XmlObject(NamespaceIds.datasets.id, \"data\");\n }\n this.emptyMerge = this.data[$getChildren]().length === 0;\n\n this.root.form = this.form = root.template[$clone]();\n }\n\n _isConsumeData() {\n return !this.emptyMerge && this._mergeMode;\n }\n\n _isMatchTemplate() {\n return !this._isConsumeData();\n }\n\n bind() {\n this._bindElement(this.form, this.data);\n return this.form;\n }\n\n getData() {\n return this.data;\n }\n\n _bindValue(formNode, data, picture) {\n // Nodes must have the same \"type\": container or value.\n // Here we make the link between form node and\n // data node (through $data property): we'll use it\n // to save form data.\n\n formNode[$data] = data;\n if (formNode[$hasSettableValue]()) {\n if (data[$isDataValue]()) {\n const value = data[$getDataValue]();\n // TODO: use picture.\n formNode[$setValue](createText(value));\n } else if (\n formNode instanceof Field &&\n formNode.ui &&\n formNode.ui.choiceList &&\n formNode.ui.choiceList.open === \"multiSelect\"\n ) {\n const value = data[$getChildren]()\n .map(child => child[$content].trim())\n .join(\"\\n\");\n formNode[$setValue](createText(value));\n } else if (this._isConsumeData()) {\n warn(`XFA - Nodes haven't the same type.`);\n }\n } else if (!data[$isDataValue]() || this._isMatchTemplate()) {\n this._bindElement(formNode, data);\n } else {\n warn(`XFA - Nodes haven't the same type.`);\n }\n }\n\n _findDataByNameToConsume(name, isValue, dataNode, global) {\n if (!name) {\n return null;\n }\n\n // Firstly, we try to find a node with the given name:\n // - in dataNode;\n // - if not found, then in parent;\n // - and if not in found, then in grand-parent.\n let generator, match;\n for (let i = 0; i < 3; i++) {\n generator = dataNode[$getRealChildrenByNameIt](\n name,\n /* allTransparent = */ false,\n /* skipConsumed = */ true\n );\n // Try to find a match of the same kind.\n while (true) {\n match = generator.next().value;\n if (!match) {\n break;\n }\n\n if (isValue === match[$isDataValue]()) {\n return match;\n }\n }\n if (\n dataNode[$namespaceId] === NamespaceIds.datasets.id &&\n dataNode[$nodeName] === \"data\"\n ) {\n break;\n }\n dataNode = dataNode[$getParent]();\n }\n\n if (!global) {\n return null;\n }\n\n // Secondly, if global try to find it just under the root of datasets\n // (which is the location of global variables).\n generator = this.data[$getRealChildrenByNameIt](\n name,\n /* allTransparent = */ true,\n /* skipConsumed = */ false\n );\n\n match = generator.next().value;\n if (match) {\n return match;\n }\n\n // Thirdly, try to find it in attributes.\n generator = this.data[$getAttributeIt](name, /* skipConsumed = */ true);\n match = generator.next().value;\n if (match && match[$isDataValue]()) {\n return match;\n }\n\n return null;\n }\n\n _setProperties(formNode, dataNode) {\n // For example:\n // \n // \n // \n // \n // \n\n if (!formNode.hasOwnProperty(\"setProperty\")) {\n return;\n }\n\n for (const { ref, target, connection } of formNode.setProperty.children) {\n if (connection) {\n // TODO: evaluate if we should implement this feature.\n // Skip for security reasons.\n continue;\n }\n if (!ref) {\n continue;\n }\n\n const nodes = searchNode(\n this.root,\n dataNode,\n ref,\n false /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (!nodes) {\n warn(`XFA - Invalid reference: ${ref}.`);\n continue;\n }\n const [node] = nodes;\n\n if (!node[$isDescendent](this.data)) {\n warn(`XFA - Invalid node: must be a data node.`);\n continue;\n }\n\n const targetNodes = searchNode(\n this.root,\n formNode,\n target,\n false /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (!targetNodes) {\n warn(`XFA - Invalid target: ${target}.`);\n continue;\n }\n const [targetNode] = targetNodes;\n\n if (!targetNode[$isDescendent](formNode)) {\n warn(`XFA - Invalid target: must be a property or subproperty.`);\n continue;\n }\n\n const targetParent = targetNode[$getParent]();\n if (\n targetNode instanceof SetProperty ||\n targetParent instanceof SetProperty\n ) {\n warn(\n `XFA - Invalid target: cannot be a setProperty or one of its properties.`\n );\n continue;\n }\n\n if (\n targetNode instanceof BindItems ||\n targetParent instanceof BindItems\n ) {\n warn(\n `XFA - Invalid target: cannot be a bindItems or one of its properties.`\n );\n continue;\n }\n\n const content = node[$text]();\n const name = targetNode[$nodeName];\n\n if (targetNode instanceof XFAAttribute) {\n const attrs = Object.create(null);\n attrs[name] = content;\n const obj = Reflect.construct(\n Object.getPrototypeOf(targetParent).constructor,\n [attrs]\n );\n targetParent[name] = obj[name];\n continue;\n }\n\n if (!targetNode.hasOwnProperty($content)) {\n warn(`XFA - Invalid node to use in setProperty`);\n continue;\n }\n\n targetNode[$data] = node;\n targetNode[$content] = content;\n targetNode[$finalize]();\n }\n }\n\n _bindItems(formNode, dataNode) {\n // For example:\n // \n // \n // \n // \n\n if (\n !formNode.hasOwnProperty(\"items\") ||\n !formNode.hasOwnProperty(\"bindItems\") ||\n formNode.bindItems.isEmpty()\n ) {\n return;\n }\n\n for (const item of formNode.items.children) {\n formNode[$removeChild](item);\n }\n\n formNode.items.clear();\n\n const labels = new Items({});\n const values = new Items({});\n\n formNode[$appendChild](labels);\n formNode.items.push(labels);\n\n formNode[$appendChild](values);\n formNode.items.push(values);\n\n for (const { ref, labelRef, valueRef, connection } of formNode.bindItems\n .children) {\n if (connection) {\n // TODO: evaluate if we should implement this feature.\n // Skip for security reasons.\n continue;\n }\n if (!ref) {\n continue;\n }\n\n const nodes = searchNode(\n this.root,\n dataNode,\n ref,\n false /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (!nodes) {\n warn(`XFA - Invalid reference: ${ref}.`);\n continue;\n }\n for (const node of nodes) {\n if (!node[$isDescendent](this.datasets)) {\n warn(`XFA - Invalid ref (${ref}): must be a datasets child.`);\n continue;\n }\n\n const labelNodes = searchNode(\n this.root,\n node,\n labelRef,\n true /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (!labelNodes) {\n warn(`XFA - Invalid label: ${labelRef}.`);\n continue;\n }\n const [labelNode] = labelNodes;\n\n if (!labelNode[$isDescendent](this.datasets)) {\n warn(`XFA - Invalid label: must be a datasets child.`);\n continue;\n }\n\n const valueNodes = searchNode(\n this.root,\n node,\n valueRef,\n true /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (!valueNodes) {\n warn(`XFA - Invalid value: ${valueRef}.`);\n continue;\n }\n const [valueNode] = valueNodes;\n\n if (!valueNode[$isDescendent](this.datasets)) {\n warn(`XFA - Invalid value: must be a datasets child.`);\n continue;\n }\n\n const label = createText(labelNode[$text]());\n const value = createText(valueNode[$text]());\n\n labels[$appendChild](label);\n labels.text.push(label);\n\n values[$appendChild](value);\n values.text.push(value);\n }\n }\n }\n\n _bindOccurrences(formNode, matches, picture) {\n // Insert nodes which are not in the template but reflect\n // what we've in data tree.\n\n let baseClone;\n if (matches.length > 1) {\n // Clone before binding to avoid bad state.\n baseClone = formNode[$clone]();\n baseClone[$removeChild](baseClone.occur);\n baseClone.occur = null;\n }\n\n this._bindValue(formNode, matches[0], picture);\n this._setProperties(formNode, matches[0]);\n this._bindItems(formNode, matches[0]);\n\n if (matches.length === 1) {\n return;\n }\n\n const parent = formNode[$getParent]();\n const name = formNode[$nodeName];\n const pos = parent[$indexOf](formNode);\n\n for (let i = 1, ii = matches.length; i < ii; i++) {\n const match = matches[i];\n const clone = baseClone[$clone]();\n parent[name].push(clone);\n parent[$insertAt](pos + i, clone);\n\n this._bindValue(clone, match, picture);\n this._setProperties(clone, match);\n this._bindItems(clone, match);\n }\n }\n\n _createOccurrences(formNode) {\n if (!this.emptyMerge) {\n return;\n }\n\n const { occur } = formNode;\n if (!occur || occur.initial <= 1) {\n return;\n }\n\n const parent = formNode[$getParent]();\n const name = formNode[$nodeName];\n\n if (!(parent[name] instanceof XFAObjectArray)) {\n return;\n }\n\n let currentNumber;\n if (formNode.name) {\n currentNumber = parent[name].children.filter(\n e => e.name === formNode.name\n ).length;\n } else {\n currentNumber = parent[name].children.length;\n }\n\n const pos = parent[$indexOf](formNode) + 1;\n const ii = occur.initial - currentNumber;\n if (ii) {\n const nodeClone = formNode[$clone]();\n nodeClone[$removeChild](nodeClone.occur);\n nodeClone.occur = null;\n parent[name].push(nodeClone);\n parent[$insertAt](pos, nodeClone);\n\n for (let i = 1; i < ii; i++) {\n const clone = nodeClone[$clone]();\n parent[name].push(clone);\n parent[$insertAt](pos + i, clone);\n }\n }\n }\n\n _getOccurInfo(formNode) {\n const { name, occur } = formNode;\n if (!occur || !name) {\n return [1, 1];\n }\n const max = occur.max === -1 ? Infinity : occur.max;\n return [occur.min, max];\n }\n\n _setAndBind(formNode, dataNode) {\n this._setProperties(formNode, dataNode);\n this._bindItems(formNode, dataNode);\n this._bindElement(formNode, dataNode);\n }\n\n _bindElement(formNode, dataNode) {\n // Some nodes can be useless because min=0 so remove them\n // after the loop to avoid bad things.\n\n const uselessNodes = [];\n\n this._createOccurrences(formNode);\n\n for (const child of formNode[$getChildren]()) {\n if (child[$data]) {\n // Already bound.\n continue;\n }\n\n if (this._mergeMode === undefined && child[$nodeName] === \"subform\") {\n this._mergeMode = child.mergeMode === \"consumeData\";\n\n // XFA specs p. 182:\n // The highest-level subform and the data node representing\n // the current record are special; they are always\n // bound even if their names don't match.\n const dataChildren = dataNode[$getChildren]();\n if (dataChildren.length > 0) {\n this._bindOccurrences(child, [dataChildren[0]], null);\n } else if (this.emptyMerge) {\n const nsId =\n dataNode[$namespaceId] === NS_DATASETS\n ? -1\n : dataNode[$namespaceId];\n const dataChild = (child[$data] = new XmlObject(\n nsId,\n child.name || \"root\"\n ));\n dataNode[$appendChild](dataChild);\n this._bindElement(child, dataChild);\n }\n continue;\n }\n\n if (!child[$isBindable]()) {\n // The node cannot contain some new data so there is nothing\n // to create in the data node.\n continue;\n }\n\n let global = false;\n let picture = null;\n let ref = null;\n let match = null;\n if (child.bind) {\n switch (child.bind.match) {\n case \"none\":\n this._setAndBind(child, dataNode);\n continue;\n case \"global\":\n global = true;\n break;\n case \"dataRef\":\n if (!child.bind.ref) {\n warn(`XFA - ref is empty in node ${child[$nodeName]}.`);\n this._setAndBind(child, dataNode);\n continue;\n }\n ref = child.bind.ref;\n break;\n default:\n break;\n }\n if (child.bind.picture) {\n picture = child.bind.picture[$content];\n }\n }\n\n const [min, max] = this._getOccurInfo(child);\n\n if (ref) {\n // Don't use a cache for searching: nodes can change during binding.\n match = searchNode(\n this.root,\n dataNode,\n ref,\n true /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (match === null) {\n // Nothing found: we must create some nodes in data in order\n // to have something to match with the given expression.\n // See http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.364.2157&rep=rep1&type=pdf#page=199\n match = createDataNode(this.data, dataNode, ref);\n if (!match) {\n // For example if the node contains a .(...) then it isn't\n // findable.\n // TODO: remove this when .(...) is implemented.\n continue;\n }\n if (this._isConsumeData()) {\n match[$consumed] = true;\n }\n\n // Don't bind the value in newly created node because it's empty.\n this._setAndBind(child, match);\n continue;\n } else {\n if (this._isConsumeData()) {\n // Filter out consumed nodes.\n match = match.filter(node => !node[$consumed]);\n }\n if (match.length > max) {\n match = match.slice(0, max);\n } else if (match.length === 0) {\n match = null;\n }\n if (match && this._isConsumeData()) {\n match.forEach(node => {\n node[$consumed] = true;\n });\n }\n }\n } else {\n if (!child.name) {\n this._setAndBind(child, dataNode);\n continue;\n }\n if (this._isConsumeData()) {\n // In consumeData mode, search for the next node with the given name.\n // occurs.max gives us the max number of node to match.\n const matches = [];\n while (matches.length < max) {\n const found = this._findDataByNameToConsume(\n child.name,\n child[$hasSettableValue](),\n dataNode,\n global\n );\n\n if (!found) {\n break;\n }\n found[$consumed] = true;\n matches.push(found);\n }\n match = matches.length > 0 ? matches : null;\n } else {\n // If we've an empty merge, there are no reason\n // to make multiple bind so skip consumed nodes.\n match = dataNode[$getRealChildrenByNameIt](\n child.name,\n /* allTransparent = */ false,\n /* skipConsumed = */ this.emptyMerge\n ).next().value;\n if (!match) {\n // If there is no match (no data) and `min === 0` then\n // the container is entirely excluded.\n // https://www.pdfa.org/norm-refs/XFA-3_3.pdf#G12.1428332\n if (min === 0) {\n uselessNodes.push(child);\n continue;\n }\n // We're in matchTemplate mode so create a node in data to reflect\n // what we've in template.\n const nsId =\n dataNode[$namespaceId] === NS_DATASETS\n ? -1\n : dataNode[$namespaceId];\n match = child[$data] = new XmlObject(nsId, child.name);\n if (this.emptyMerge) {\n match[$consumed] = true;\n }\n dataNode[$appendChild](match);\n\n // Don't bind the value in newly created node because it's empty.\n this._setAndBind(child, match);\n continue;\n }\n if (this.emptyMerge) {\n match[$consumed] = true;\n }\n match = [match];\n }\n }\n\n if (match) {\n this._bindOccurrences(child, match, picture);\n } else if (min > 0) {\n this._setAndBind(child, dataNode);\n } else {\n uselessNodes.push(child);\n }\n }\n\n uselessNodes.forEach(node => node[$getParent]()[$removeChild](node));\n }\n}\n\nexport { Binder };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $acceptWhitespace,\n $addHTML,\n $appendChild,\n $childrenToHTML,\n $clean,\n $cleanPage,\n $content,\n $data,\n $extra,\n $finalize,\n $flushHTML,\n $getAvailableSpace,\n $getChildren,\n $getContainedChildren,\n $getExtra,\n $getNextPage,\n $getParent,\n $getSubformParent,\n $getTemplateRoot,\n $globalData,\n $hasSettableValue,\n $ids,\n $isBindable,\n $isCDATAXml,\n $isSplittable,\n $isThereMoreWidth,\n $isTransparent,\n $isUsable,\n $namespaceId,\n $nodeName,\n $onChild,\n $onText,\n $popPara,\n $pushPara,\n $removeChild,\n $searchNode,\n $setSetAttributes,\n $setValue,\n $tabIndex,\n $text,\n $toHTML,\n $toPages,\n $toStyle,\n $uid,\n ContentObject,\n Option01,\n OptionObject,\n StringObject,\n XFAObject,\n XFAObjectArray,\n} from \"./xfa_object.js\";\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n addHTML,\n checkDimensions,\n flushHTML,\n getAvailableSpace,\n} from \"./layout.js\";\nimport {\n computeBbox,\n createWrapper,\n fixDimensions,\n fixTextIndent,\n fixURL,\n isPrintOnly,\n layoutClass,\n layoutNode,\n measureToString,\n setAccess,\n setFontFamily,\n setMinMaxDimensions,\n setPara,\n toStyle,\n} from \"./html_utils.js\";\nimport {\n getBBox,\n getColor,\n getFloat,\n getInteger,\n getKeyword,\n getMeasurement,\n getRatio,\n getRelevant,\n getStringOption,\n HTMLResult,\n} from \"./utils.js\";\nimport { stringToBytes, Util, warn } from \"../../shared/util.js\";\nimport { getMetrics } from \"./fonts.js\";\nimport { recoverJsURL } from \"../core_utils.js\";\nimport { searchNode } from \"./som.js\";\n\nconst TEMPLATE_NS_ID = NamespaceIds.template.id;\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\n\n// In case of lr-tb (and rl-tb) layouts, we try:\n// - to put the container at the end of a line\n// - and if it fails we try on the next line.\n// If both tries failed then it's up to the parent\n// to handle the situation.\nconst MAX_ATTEMPTS_FOR_LRTB_LAYOUT = 2;\n\n// It's possible to have a bug in the layout and so as\n// a consequence we could loop for ever in Template::toHTML()\n// so in order to avoid that (and avoid a OOM crash) we break\n// the loop after having MAX_EMPTY_PAGES empty pages.\nconst MAX_EMPTY_PAGES = 3;\n\n// Default value to start with for the tabIndex property.\nconst DEFAULT_TAB_INDEX = 5000;\n\nconst HEADING_PATTERN = /^H(\\d+)$/;\n\n// Allowed mime types for images\nconst MIMES = new Set([\n \"image/gif\",\n \"image/jpeg\",\n \"image/jpg\",\n \"image/pjpeg\",\n \"image/png\",\n \"image/apng\",\n \"image/x-png\",\n \"image/bmp\",\n \"image/x-ms-bmp\",\n \"image/tiff\",\n \"image/tif\",\n \"application/octet-stream\",\n]);\n\nconst IMAGES_HEADERS = [\n [[0x42, 0x4d], \"image/bmp\"],\n [[0xff, 0xd8, 0xff], \"image/jpeg\"],\n [[0x49, 0x49, 0x2a, 0x00], \"image/tiff\"],\n [[0x4d, 0x4d, 0x00, 0x2a], \"image/tiff\"],\n [[0x47, 0x49, 0x46, 0x38, 0x39, 0x61], \"image/gif\"],\n [[0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a], \"image/png\"],\n];\n\nfunction getBorderDims(node) {\n if (!node || !node.border) {\n return { w: 0, h: 0 };\n }\n\n const borderExtra = node.border[$getExtra]();\n if (!borderExtra) {\n return { w: 0, h: 0 };\n }\n\n return {\n w:\n borderExtra.widths[0] +\n borderExtra.widths[2] +\n borderExtra.insets[0] +\n borderExtra.insets[2],\n h:\n borderExtra.widths[1] +\n borderExtra.widths[3] +\n borderExtra.insets[1] +\n borderExtra.insets[3],\n };\n}\n\nfunction hasMargin(node) {\n return (\n node.margin &&\n (node.margin.topInset ||\n node.margin.rightInset ||\n node.margin.bottomInset ||\n node.margin.leftInset)\n );\n}\n\nfunction _setValue(templateNode, value) {\n if (!templateNode.value) {\n const nodeValue = new Value({});\n templateNode[$appendChild](nodeValue);\n templateNode.value = nodeValue;\n }\n templateNode.value[$setValue](value);\n}\n\nfunction* getContainedChildren(node) {\n for (const child of node[$getChildren]()) {\n if (child instanceof SubformSet) {\n yield* child[$getContainedChildren]();\n continue;\n }\n yield child;\n }\n}\n\nfunction setTabIndex(node) {\n while (node) {\n if (!node.traversal) {\n node[$tabIndex] = node[$getParent]()[$tabIndex];\n return;\n }\n\n if (node[$tabIndex]) {\n return;\n }\n\n let next = null;\n for (const child of node.traversal[$getChildren]()) {\n if (child.operation === \"next\") {\n next = child;\n break;\n }\n }\n\n if (!next || !next.ref) {\n node[$tabIndex] = node[$getParent]()[$tabIndex];\n return;\n }\n\n const root = node[$getTemplateRoot]();\n node[$tabIndex] = ++root[$tabIndex];\n\n const ref = root[$searchNode](next.ref, node);\n if (!ref) {\n return;\n }\n\n node = ref[0];\n }\n}\n\nfunction applyAssist(obj, attributes) {\n const assist = obj.assist;\n if (assist) {\n const assistTitle = assist[$toHTML]();\n if (assistTitle) {\n attributes.title = assistTitle;\n }\n const role = assist.role;\n const match = role.match(HEADING_PATTERN);\n if (match) {\n const ariaRole = \"heading\";\n const ariaLevel = match[1];\n attributes.role = ariaRole;\n attributes[\"aria-level\"] = ariaLevel;\n }\n }\n // XXX: We could end up in a situation where the obj has a heading role and\n // is also a table. For now prioritize the table role.\n if (obj.layout === \"table\") {\n attributes.role = \"table\";\n } else if (obj.layout === \"row\") {\n attributes.role = \"row\";\n } else {\n const parent = obj[$getParent]();\n if (parent.layout === \"row\") {\n if (parent.assist && parent.assist.role === \"TH\") {\n attributes.role = \"columnheader\";\n } else {\n attributes.role = \"cell\";\n }\n }\n }\n}\n\nfunction ariaLabel(obj) {\n if (!obj.assist) {\n return null;\n }\n const assist = obj.assist;\n if (assist.speak && assist.speak[$content] !== \"\") {\n return assist.speak[$content];\n }\n if (assist.toolTip) {\n return assist.toolTip[$content];\n }\n // TODO: support finding the related caption element. See xfa_bug1718037.pdf\n // for an example.\n return null;\n}\n\nfunction valueToHtml(value) {\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n class: [\"xfaRich\"],\n style: Object.create(null),\n },\n children: [\n {\n name: \"span\",\n attributes: {\n style: Object.create(null),\n },\n value,\n },\n ],\n });\n}\n\nfunction setFirstUnsplittable(node) {\n const root = node[$getTemplateRoot]();\n if (root[$extra].firstUnsplittable === null) {\n root[$extra].firstUnsplittable = node;\n root[$extra].noLayoutFailure = true;\n }\n}\n\nfunction unsetFirstUnsplittable(node) {\n const root = node[$getTemplateRoot]();\n if (root[$extra].firstUnsplittable === node) {\n root[$extra].noLayoutFailure = false;\n }\n}\n\nfunction handleBreak(node) {\n if (node[$extra]) {\n return false;\n }\n\n node[$extra] = Object.create(null);\n\n if (node.targetType === \"auto\") {\n return false;\n }\n\n const root = node[$getTemplateRoot]();\n let target = null;\n if (node.target) {\n target = root[$searchNode](node.target, node[$getParent]());\n if (!target) {\n return false;\n }\n target = target[0];\n }\n\n const { currentPageArea, currentContentArea } = root[$extra];\n\n if (node.targetType === \"pageArea\") {\n if (!(target instanceof PageArea)) {\n target = null;\n }\n\n if (node.startNew) {\n node[$extra].target = target || currentPageArea;\n return true;\n } else if (target && target !== currentPageArea) {\n node[$extra].target = target;\n return true;\n }\n\n return false;\n }\n\n if (!(target instanceof ContentArea)) {\n target = null;\n }\n\n const pageArea = target && target[$getParent]();\n\n let index;\n let nextPageArea = pageArea;\n if (node.startNew) {\n // startNew === 1 so we must create a new container (pageArea or\n // contentArea).\n if (target) {\n const contentAreas = pageArea.contentArea.children;\n const indexForCurrent = contentAreas.indexOf(currentContentArea);\n const indexForTarget = contentAreas.indexOf(target);\n if (indexForCurrent !== -1 && indexForCurrent < indexForTarget) {\n // The next container is after the current container so\n // we can stay on the same page.\n nextPageArea = null;\n }\n index = indexForTarget - 1;\n } else {\n index = currentPageArea.contentArea.children.indexOf(currentContentArea);\n }\n } else if (target && target !== currentContentArea) {\n const contentAreas = pageArea.contentArea.children;\n index = contentAreas.indexOf(target) - 1;\n nextPageArea = pageArea === currentPageArea ? null : pageArea;\n } else {\n return false;\n }\n\n node[$extra].target = nextPageArea;\n node[$extra].index = index;\n return true;\n}\n\nfunction handleOverflow(node, extraNode, space) {\n const root = node[$getTemplateRoot]();\n const saved = root[$extra].noLayoutFailure;\n const savedMethod = extraNode[$getSubformParent];\n\n // Replace $getSubformParent to emulate that extraNode is just\n // under node.\n extraNode[$getSubformParent] = () => node;\n\n root[$extra].noLayoutFailure = true;\n const res = extraNode[$toHTML](space);\n node[$addHTML](res.html, res.bbox);\n root[$extra].noLayoutFailure = saved;\n extraNode[$getSubformParent] = savedMethod;\n}\n\nclass AppearanceFilter extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"appearanceFilter\");\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Arc extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"arc\", /* hasChildren = */ true);\n this.circular = getInteger({\n data: attributes.circular,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.hand = getStringOption(attributes.hand, [\"even\", \"left\", \"right\"]);\n this.id = attributes.id || \"\";\n this.startAngle = getFloat({\n data: attributes.startAngle,\n defaultValue: 0,\n validate: x => true,\n });\n this.sweepAngle = getFloat({\n data: attributes.sweepAngle,\n defaultValue: 360,\n validate: x => true,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.edge = null;\n this.fill = null;\n }\n\n [$toHTML]() {\n const edge = this.edge ? this.edge : new Edge({});\n const edgeStyle = edge[$toStyle]();\n const style = Object.create(null);\n if (this.fill && this.fill.presence === \"visible\") {\n Object.assign(style, this.fill[$toStyle]());\n } else {\n style.fill = \"transparent\";\n }\n style.strokeWidth = measureToString(\n edge.presence === \"visible\" ? edge.thickness : 0\n );\n style.stroke = edgeStyle.color;\n let arc;\n const attributes = {\n xmlns: SVG_NS,\n style: {\n width: \"100%\",\n height: \"100%\",\n overflow: \"visible\",\n },\n };\n\n if (this.sweepAngle === 360) {\n arc = {\n name: \"ellipse\",\n attributes: {\n xmlns: SVG_NS,\n cx: \"50%\",\n cy: \"50%\",\n rx: \"50%\",\n ry: \"50%\",\n style,\n },\n };\n } else {\n const startAngle = (this.startAngle * Math.PI) / 180;\n const sweepAngle = (this.sweepAngle * Math.PI) / 180;\n const largeArc = this.sweepAngle > 180 ? 1 : 0;\n const [x1, y1, x2, y2] = [\n 50 * (1 + Math.cos(startAngle)),\n 50 * (1 - Math.sin(startAngle)),\n 50 * (1 + Math.cos(startAngle + sweepAngle)),\n 50 * (1 - Math.sin(startAngle + sweepAngle)),\n ];\n\n arc = {\n name: \"path\",\n attributes: {\n xmlns: SVG_NS,\n d: `M ${x1} ${y1} A 50 50 0 ${largeArc} 0 ${x2} ${y2}`,\n vectorEffect: \"non-scaling-stroke\",\n style,\n },\n };\n\n Object.assign(attributes, {\n viewBox: \"0 0 100 100\",\n preserveAspectRatio: \"none\",\n });\n }\n\n const svg = {\n name: \"svg\",\n children: [arc],\n attributes,\n };\n\n const parent = this[$getParent]()[$getParent]();\n if (hasMargin(parent)) {\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n style: {\n display: \"inline\",\n width: \"100%\",\n height: \"100%\",\n },\n },\n children: [svg],\n });\n }\n\n svg.attributes.style.position = \"absolute\";\n return HTMLResult.success(svg);\n }\n}\n\nclass Area extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"area\", /* hasChildren = */ true);\n this.colSpan = getInteger({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: n => n >= 1 || n === -1,\n });\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.desc = null;\n this.extras = null;\n this.area = new XFAObjectArray();\n this.draw = new XFAObjectArray();\n this.exObject = new XFAObjectArray();\n this.exclGroup = new XFAObjectArray();\n this.field = new XFAObjectArray();\n this.subform = new XFAObjectArray();\n this.subformSet = new XFAObjectArray();\n }\n\n *[$getContainedChildren]() {\n // This function is overriden in order to fake that subforms under\n // this set are in fact under parent subform.\n yield* getContainedChildren(this);\n }\n\n [$isTransparent]() {\n return true;\n }\n\n [$isBindable]() {\n return true;\n }\n\n [$addHTML](html, bbox) {\n const [x, y, w, h] = bbox;\n this[$extra].width = Math.max(this[$extra].width, x + w);\n this[$extra].height = Math.max(this[$extra].height, y + h);\n\n this[$extra].children.push(html);\n }\n\n [$getAvailableSpace]() {\n return this[$extra].availableSpace;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n const style = toStyle(this, \"position\");\n const attributes = {\n style,\n id: this[$uid],\n class: [\"xfaArea\"],\n };\n\n if (isPrintOnly(this)) {\n attributes.class.push(\"xfaPrintOnly\");\n }\n\n if (this.name) {\n attributes.xfaName = this.name;\n }\n\n const children = [];\n this[$extra] = {\n children,\n width: 0,\n height: 0,\n availableSpace,\n };\n\n const result = this[$childrenToHTML]({\n filter: new Set([\n \"area\",\n \"draw\",\n \"field\",\n \"exclGroup\",\n \"subform\",\n \"subformSet\",\n ]),\n include: true,\n });\n\n if (!result.success) {\n if (result.isBreak()) {\n return result;\n }\n // Nothing to propose for the element which doesn't fit the\n // available space.\n delete this[$extra];\n return HTMLResult.FAILURE;\n }\n\n style.width = measureToString(this[$extra].width);\n style.height = measureToString(this[$extra].height);\n\n const html = {\n name: \"div\",\n attributes,\n children,\n };\n\n const bbox = [this.x, this.y, this[$extra].width, this[$extra].height];\n delete this[$extra];\n\n return HTMLResult.success(html, bbox);\n }\n}\n\nclass Assist extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"assist\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.role = attributes.role || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.speak = null;\n this.toolTip = null;\n }\n\n [$toHTML]() {\n return this.toolTip && this.toolTip[$content]\n ? this.toolTip[$content]\n : null;\n }\n}\n\nclass Barcode extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"barcode\", /* hasChildren = */ true);\n this.charEncoding = getKeyword({\n data: attributes.charEncoding\n ? attributes.charEncoding.toLowerCase()\n : \"\",\n defaultValue: \"\",\n validate: k =>\n [\n \"utf-8\",\n \"big-five\",\n \"fontspecific\",\n \"gbk\",\n \"gb-18030\",\n \"gb-2312\",\n \"ksc-5601\",\n \"none\",\n \"shift-jis\",\n \"ucs-2\",\n \"utf-16\",\n ].includes(k) || k.match(/iso-8859-\\d{2}/),\n });\n this.checksum = getStringOption(attributes.checksum, [\n \"none\",\n \"1mod10\",\n \"1mod10_1mod11\",\n \"2mod10\",\n \"auto\",\n ]);\n this.dataColumnCount = getInteger({\n data: attributes.dataColumnCount,\n defaultValue: -1,\n validate: x => x >= 0,\n });\n this.dataLength = getInteger({\n data: attributes.dataLength,\n defaultValue: -1,\n validate: x => x >= 0,\n });\n this.dataPrep = getStringOption(attributes.dataPrep, [\n \"none\",\n \"flateCompress\",\n ]);\n this.dataRowCount = getInteger({\n data: attributes.dataRowCount,\n defaultValue: -1,\n validate: x => x >= 0,\n });\n this.endChar = attributes.endChar || \"\";\n this.errorCorrectionLevel = getInteger({\n data: attributes.errorCorrectionLevel,\n defaultValue: -1,\n validate: x => x >= 0 && x <= 8,\n });\n this.id = attributes.id || \"\";\n this.moduleHeight = getMeasurement(attributes.moduleHeight, \"5mm\");\n this.moduleWidth = getMeasurement(attributes.moduleWidth, \"0.25mm\");\n this.printCheckDigit = getInteger({\n data: attributes.printCheckDigit,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.rowColumnRatio = getRatio(attributes.rowColumnRatio);\n this.startChar = attributes.startChar || \"\";\n this.textLocation = getStringOption(attributes.textLocation, [\n \"below\",\n \"above\",\n \"aboveEmbedded\",\n \"belowEmbedded\",\n \"none\",\n ]);\n this.truncate = getInteger({\n data: attributes.truncate,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.type = getStringOption(\n attributes.type ? attributes.type.toLowerCase() : \"\",\n [\n \"aztec\",\n \"codabar\",\n \"code2of5industrial\",\n \"code2of5interleaved\",\n \"code2of5matrix\",\n \"code2of5standard\",\n \"code3of9\",\n \"code3of9extended\",\n \"code11\",\n \"code49\",\n \"code93\",\n \"code128\",\n \"code128a\",\n \"code128b\",\n \"code128c\",\n \"code128sscc\",\n \"datamatrix\",\n \"ean8\",\n \"ean8add2\",\n \"ean8add5\",\n \"ean13\",\n \"ean13add2\",\n \"ean13add5\",\n \"ean13pwcd\",\n \"fim\",\n \"logmars\",\n \"maxicode\",\n \"msi\",\n \"pdf417\",\n \"pdf417macro\",\n \"plessey\",\n \"postauscust2\",\n \"postauscust3\",\n \"postausreplypaid\",\n \"postausstandard\",\n \"postukrm4scc\",\n \"postusdpbc\",\n \"postusimb\",\n \"postusstandard\",\n \"postus5zip\",\n \"qrcode\",\n \"rfid\",\n \"rss14\",\n \"rss14expanded\",\n \"rss14limited\",\n \"rss14stacked\",\n \"rss14stackedomni\",\n \"rss14truncated\",\n \"telepen\",\n \"ucc128\",\n \"ucc128random\",\n \"ucc128sscc\",\n \"upca\",\n \"upcaadd2\",\n \"upcaadd5\",\n \"upcapwcd\",\n \"upce\",\n \"upceadd2\",\n \"upceadd5\",\n \"upcean2\",\n \"upcean5\",\n \"upsmaxicode\",\n ]\n );\n this.upsMode = getStringOption(attributes.upsMode, [\n \"usCarrier\",\n \"internationalCarrier\",\n \"secureSymbol\",\n \"standardSymbol\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.wideNarrowRatio = getRatio(attributes.wideNarrowRatio);\n this.encrypt = null;\n this.extras = null;\n }\n}\n\nclass Bind extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"bind\", /* hasChildren = */ true);\n this.match = getStringOption(attributes.match, [\n \"once\",\n \"dataRef\",\n \"global\",\n \"none\",\n ]);\n this.ref = attributes.ref || \"\";\n this.picture = null;\n }\n}\n\nclass BindItems extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"bindItems\");\n this.connection = attributes.connection || \"\";\n this.labelRef = attributes.labelRef || \"\";\n this.ref = attributes.ref || \"\";\n this.valueRef = attributes.valueRef || \"\";\n }\n}\n\nclass Bookend extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"bookend\");\n this.id = attributes.id || \"\";\n this.leader = attributes.leader || \"\";\n this.trailer = attributes.trailer || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass BooleanElement extends Option01 {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"boolean\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(this[$content] === 1 ? \"1\" : \"0\");\n }\n}\n\nclass Border extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"border\", /* hasChildren = */ true);\n this.break = getStringOption(attributes.break, [\"close\", \"open\"]);\n this.hand = getStringOption(attributes.hand, [\"even\", \"left\", \"right\"]);\n this.id = attributes.id || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.corner = new XFAObjectArray(4);\n this.edge = new XFAObjectArray(4);\n this.extras = null;\n this.fill = null;\n this.margin = null;\n }\n\n [$getExtra]() {\n if (!this[$extra]) {\n const edges = this.edge.children.slice();\n if (edges.length < 4) {\n const defaultEdge = edges[edges.length - 1] || new Edge({});\n for (let i = edges.length; i < 4; i++) {\n edges.push(defaultEdge);\n }\n }\n\n const widths = edges.map(edge => edge.thickness);\n const insets = [0, 0, 0, 0];\n if (this.margin) {\n insets[0] = this.margin.topInset;\n insets[1] = this.margin.rightInset;\n insets[2] = this.margin.bottomInset;\n insets[3] = this.margin.leftInset;\n }\n this[$extra] = { widths, insets, edges };\n }\n return this[$extra];\n }\n\n [$toStyle]() {\n // TODO: incomplete (hand).\n const { edges } = this[$getExtra]();\n const edgeStyles = edges.map(node => {\n const style = node[$toStyle]();\n style.color = style.color || \"#000000\";\n return style;\n });\n\n const style = Object.create(null);\n if (this.margin) {\n Object.assign(style, this.margin[$toStyle]());\n }\n\n if (this.fill && this.fill.presence === \"visible\") {\n Object.assign(style, this.fill[$toStyle]());\n }\n\n if (this.corner.children.some(node => node.radius !== 0)) {\n const cornerStyles = this.corner.children.map(node => node[$toStyle]());\n if (cornerStyles.length === 2 || cornerStyles.length === 3) {\n const last = cornerStyles[cornerStyles.length - 1];\n for (let i = cornerStyles.length; i < 4; i++) {\n cornerStyles.push(last);\n }\n }\n\n style.borderRadius = cornerStyles.map(s => s.radius).join(\" \");\n }\n\n switch (this.presence) {\n case \"invisible\":\n case \"hidden\":\n style.borderStyle = \"\";\n break;\n case \"inactive\":\n style.borderStyle = \"none\";\n break;\n default:\n style.borderStyle = edgeStyles.map(s => s.style).join(\" \");\n break;\n }\n\n style.borderWidth = edgeStyles.map(s => s.width).join(\" \");\n style.borderColor = edgeStyles.map(s => s.color).join(\" \");\n\n return style;\n }\n}\n\nclass Break extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"break\", /* hasChildren = */ true);\n this.after = getStringOption(attributes.after, [\n \"auto\",\n \"contentArea\",\n \"pageArea\",\n \"pageEven\",\n \"pageOdd\",\n ]);\n this.afterTarget = attributes.afterTarget || \"\";\n this.before = getStringOption(attributes.before, [\n \"auto\",\n \"contentArea\",\n \"pageArea\",\n \"pageEven\",\n \"pageOdd\",\n ]);\n this.beforeTarget = attributes.beforeTarget || \"\";\n this.bookendLeader = attributes.bookendLeader || \"\";\n this.bookendTrailer = attributes.bookendTrailer || \"\";\n this.id = attributes.id || \"\";\n this.overflowLeader = attributes.overflowLeader || \"\";\n this.overflowTarget = attributes.overflowTarget || \"\";\n this.overflowTrailer = attributes.overflowTrailer || \"\";\n this.startNew = getInteger({\n data: attributes.startNew,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n}\n\nclass BreakAfter extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"breakAfter\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.leader = attributes.leader || \"\";\n this.startNew = getInteger({\n data: attributes.startNew,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.target = attributes.target || \"\";\n this.targetType = getStringOption(attributes.targetType, [\n \"auto\",\n \"contentArea\",\n \"pageArea\",\n ]);\n this.trailer = attributes.trailer || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.script = null;\n }\n}\n\nclass BreakBefore extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"breakBefore\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.leader = attributes.leader || \"\";\n this.startNew = getInteger({\n data: attributes.startNew,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.target = attributes.target || \"\";\n this.targetType = getStringOption(attributes.targetType, [\n \"auto\",\n \"contentArea\",\n \"pageArea\",\n ]);\n this.trailer = attributes.trailer || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.script = null;\n }\n\n [$toHTML](availableSpace) {\n this[$extra] = {};\n return HTMLResult.FAILURE;\n }\n}\n\nclass Button extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"button\", /* hasChildren = */ true);\n this.highlight = getStringOption(attributes.highlight, [\n \"inverted\",\n \"none\",\n \"outline\",\n \"push\",\n ]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: highlight.\n\n const parent = this[$getParent]();\n const grandpa = parent[$getParent]();\n const htmlButton = {\n name: \"button\",\n attributes: {\n id: this[$uid],\n class: [\"xfaButton\"],\n style: {},\n },\n children: [],\n };\n\n for (const event of grandpa.event.children) {\n // if (true) break;\n if (event.activity !== \"click\" || !event.script) {\n continue;\n }\n const jsURL = recoverJsURL(event.script[$content]);\n if (!jsURL) {\n continue;\n }\n const href = fixURL(jsURL.url);\n if (!href) {\n continue;\n }\n\n // we've an url so generate a
\n htmlButton.children.push({\n name: \"a\",\n attributes: {\n id: \"link\" + this[$uid],\n href,\n newWindow: jsURL.newWindow,\n class: [\"xfaLink\"],\n style: {},\n },\n children: [],\n });\n }\n\n return HTMLResult.success(htmlButton);\n }\n}\n\nclass Calculate extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"calculate\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.override = getStringOption(attributes.override, [\n \"disabled\",\n \"error\",\n \"ignore\",\n \"warning\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.message = null;\n this.script = null;\n }\n}\n\nclass Caption extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"caption\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.placement = getStringOption(attributes.placement, [\n \"left\",\n \"bottom\",\n \"inline\",\n \"right\",\n \"top\",\n ]);\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.reserve = Math.ceil(getMeasurement(attributes.reserve));\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.font = null;\n this.margin = null;\n this.para = null;\n this.value = null;\n }\n\n [$setValue](value) {\n _setValue(this, value);\n }\n\n [$getExtra](availableSpace) {\n if (!this[$extra]) {\n let { width, height } = availableSpace;\n switch (this.placement) {\n case \"left\":\n case \"right\":\n case \"inline\":\n width = this.reserve <= 0 ? width : this.reserve;\n break;\n case \"top\":\n case \"bottom\":\n height = this.reserve <= 0 ? height : this.reserve;\n break;\n }\n\n this[$extra] = layoutNode(this, { width, height });\n }\n return this[$extra];\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n if (!this.value) {\n return HTMLResult.EMPTY;\n }\n\n this[$pushPara]();\n const value = this.value[$toHTML](availableSpace).html;\n\n if (!value) {\n this[$popPara]();\n return HTMLResult.EMPTY;\n }\n\n const savedReserve = this.reserve;\n if (this.reserve <= 0) {\n const { w, h } = this[$getExtra](availableSpace);\n switch (this.placement) {\n case \"left\":\n case \"right\":\n case \"inline\":\n this.reserve = w;\n break;\n case \"top\":\n case \"bottom\":\n this.reserve = h;\n break;\n }\n }\n\n const children = [];\n if (typeof value === \"string\") {\n children.push({\n name: \"#text\",\n value,\n });\n } else {\n children.push(value);\n }\n\n const style = toStyle(this, \"font\", \"margin\", \"visibility\");\n switch (this.placement) {\n case \"left\":\n case \"right\":\n if (this.reserve > 0) {\n style.width = measureToString(this.reserve);\n }\n break;\n case \"top\":\n case \"bottom\":\n if (this.reserve > 0) {\n style.height = measureToString(this.reserve);\n }\n break;\n }\n\n setPara(this, null, value);\n this[$popPara]();\n\n this.reserve = savedReserve;\n\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n style,\n class: [\"xfaCaption\"],\n },\n children,\n });\n }\n}\n\nclass Certificate extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"certificate\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Certificates extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"certificates\", /* hasChildren = */ true);\n this.credentialServerPolicy = getStringOption(\n attributes.credentialServerPolicy,\n [\"optional\", \"required\"]\n );\n this.id = attributes.id || \"\";\n this.url = attributes.url || \"\";\n this.urlPolicy = attributes.urlPolicy || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.encryption = null;\n this.issuers = null;\n this.keyUsage = null;\n this.oids = null;\n this.signing = null;\n this.subjectDNs = null;\n }\n}\n\nclass CheckButton extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"checkButton\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.mark = getStringOption(attributes.mark, [\n \"default\",\n \"check\",\n \"circle\",\n \"cross\",\n \"diamond\",\n \"square\",\n \"star\",\n ]);\n this.shape = getStringOption(attributes.shape, [\"square\", \"round\"]);\n this.size = getMeasurement(attributes.size, \"10pt\");\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: border, shape and mark.\n\n const style = toStyle(\"margin\");\n const size = measureToString(this.size);\n\n style.width = style.height = size;\n\n let type;\n let className;\n let groupId;\n const field = this[$getParent]()[$getParent]();\n const items =\n (field.items.children.length &&\n field.items.children[0][$toHTML]().html) ||\n [];\n const exportedValue = {\n on: (items[0] !== undefined ? items[0] : \"on\").toString(),\n off: (items[1] !== undefined ? items[1] : \"off\").toString(),\n };\n\n const value = (field.value && field.value[$text]()) || \"off\";\n const checked = value === exportedValue.on || undefined;\n const container = field[$getSubformParent]();\n const fieldId = field[$uid];\n let dataId;\n\n if (container instanceof ExclGroup) {\n groupId = container[$uid];\n type = \"radio\";\n className = \"xfaRadio\";\n dataId = (container[$data] && container[$data][$uid]) || container[$uid];\n } else {\n type = \"checkbox\";\n className = \"xfaCheckbox\";\n dataId = (field[$data] && field[$data][$uid]) || field[$uid];\n }\n\n const input = {\n name: \"input\",\n attributes: {\n class: [className],\n style,\n fieldId,\n dataId,\n type,\n checked,\n xfaOn: exportedValue.on,\n xfaOff: exportedValue.off,\n \"aria-label\": ariaLabel(field),\n },\n };\n\n if (groupId) {\n input.attributes.name = groupId;\n }\n\n return HTMLResult.success({\n name: \"label\",\n attributes: {\n class: [\"xfaLabel\"],\n },\n children: [input],\n });\n }\n}\n\nclass ChoiceList extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"choiceList\", /* hasChildren = */ true);\n this.commitOn = getStringOption(attributes.commitOn, [\"select\", \"exit\"]);\n this.id = attributes.id || \"\";\n this.open = getStringOption(attributes.open, [\n \"userControl\",\n \"always\",\n \"multiSelect\",\n \"onEntry\",\n ]);\n this.textEntry = getInteger({\n data: attributes.textEntry,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n const style = toStyle(this, \"border\", \"margin\");\n const ui = this[$getParent]();\n const field = ui[$getParent]();\n const fontSize = (field.font && field.font.size) || 10;\n const optionStyle = {\n fontSize: `calc(${fontSize}px * var(--zoom-factor))`,\n };\n const children = [];\n\n if (field.items.children.length > 0) {\n const items = field.items;\n let displayedIndex = 0;\n let saveIndex = 0;\n if (items.children.length === 2) {\n displayedIndex = items.children[0].save;\n saveIndex = 1 - displayedIndex;\n }\n const displayed = items.children[displayedIndex][$toHTML]().html;\n const values = items.children[saveIndex][$toHTML]().html;\n\n let selected = false;\n const value = (field.value && field.value[$text]()) || \"\";\n for (let i = 0, ii = displayed.length; i < ii; i++) {\n const option = {\n name: \"option\",\n attributes: {\n value: values[i] || displayed[i],\n style: optionStyle,\n },\n value: displayed[i],\n };\n if (values[i] === value) {\n option.attributes.selected = selected = true;\n }\n children.push(option);\n }\n\n if (!selected) {\n children.splice(0, 0, {\n name: \"option\",\n attributes: {\n hidden: true,\n selected: true,\n },\n value: \" \",\n });\n }\n }\n\n const selectAttributes = {\n class: [\"xfaSelect\"],\n fieldId: field[$uid],\n dataId: (field[$data] && field[$data][$uid]) || field[$uid],\n style,\n \"aria-label\": ariaLabel(field),\n };\n\n if (this.open === \"multiSelect\") {\n selectAttributes.multiple = true;\n }\n\n return HTMLResult.success({\n name: \"label\",\n attributes: {\n class: [\"xfaLabel\"],\n },\n children: [\n {\n name: \"select\",\n children,\n attributes: selectAttributes,\n },\n ],\n });\n }\n}\n\nclass Color extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"color\", /* hasChildren = */ true);\n this.cSpace = getStringOption(attributes.cSpace, [\"SRGB\"]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.value = attributes.value ? getColor(attributes.value) : \"\";\n this.extras = null;\n }\n\n [$hasSettableValue]() {\n return false;\n }\n\n [$toStyle]() {\n return this.value\n ? Util.makeHexColor(this.value.r, this.value.g, this.value.b)\n : null;\n }\n}\n\nclass Comb extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"comb\");\n this.id = attributes.id || \"\";\n this.numberOfCells = getInteger({\n data: attributes.numberOfCells,\n defaultValue: 0,\n validate: x => x >= 0,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Connect extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"connect\", /* hasChildren = */ true);\n this.connection = attributes.connection || \"\";\n this.id = attributes.id || \"\";\n this.ref = attributes.ref || \"\";\n this.usage = getStringOption(attributes.usage, [\n \"exportAndImport\",\n \"exportOnly\",\n \"importOnly\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.picture = null;\n }\n}\n\nclass ContentArea extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"contentArea\", /* hasChildren = */ true);\n this.h = getMeasurement(attributes.h);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = getMeasurement(attributes.w);\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.desc = null;\n this.extras = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n const left = measureToString(this.x);\n const top = measureToString(this.y);\n\n const style = {\n left,\n top,\n width: measureToString(this.w),\n height: measureToString(this.h),\n };\n\n const classNames = [\"xfaContentarea\"];\n\n if (isPrintOnly(this)) {\n classNames.push(\"xfaPrintOnly\");\n }\n\n return HTMLResult.success({\n name: \"div\",\n children: [],\n attributes: {\n style,\n class: classNames,\n id: this[$uid],\n },\n });\n }\n}\n\nclass Corner extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"corner\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.inverted = getInteger({\n data: attributes.inverted,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.join = getStringOption(attributes.join, [\"square\", \"round\"]);\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.radius = getMeasurement(attributes.radius);\n this.stroke = getStringOption(attributes.stroke, [\n \"solid\",\n \"dashDot\",\n \"dashDotDot\",\n \"dashed\",\n \"dotted\",\n \"embossed\",\n \"etched\",\n \"lowered\",\n \"raised\",\n ]);\n this.thickness = getMeasurement(attributes.thickness, \"0.5pt\");\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle]() {\n // In using CSS it's only possible to handle radius\n // (at least with basic css).\n // Is there a real use (interest ?) of all these properties ?\n // Maybe it's possible to implement them using svg and border-image...\n // TODO: implement all the missing properties.\n const style = toStyle(this, \"visibility\");\n style.radius = measureToString(this.join === \"square\" ? 0 : this.radius);\n return style;\n }\n}\n\nclass DateElement extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"date\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n const date = this[$content].trim();\n this[$content] = date ? new Date(date) : null;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(this[$content] ? this[$content].toString() : \"\");\n }\n}\n\nclass DateTime extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"dateTime\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n const date = this[$content].trim();\n this[$content] = date ? new Date(date) : null;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(this[$content] ? this[$content].toString() : \"\");\n }\n}\n\nclass DateTimeEdit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"dateTimeEdit\", /* hasChildren = */ true);\n this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, [\n \"auto\",\n \"off\",\n \"on\",\n ]);\n this.id = attributes.id || \"\";\n this.picker = getStringOption(attributes.picker, [\"host\", \"none\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.comb = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n // When the picker is host we should use type=date for the input\n // but we need to put the buttons outside the text-field.\n const style = toStyle(this, \"border\", \"font\", \"margin\");\n const field = this[$getParent]()[$getParent]();\n const html = {\n name: \"input\",\n attributes: {\n type: \"text\",\n fieldId: field[$uid],\n dataId: (field[$data] && field[$data][$uid]) || field[$uid],\n class: [\"xfaTextfield\"],\n style,\n \"aria-label\": ariaLabel(field),\n },\n };\n\n return HTMLResult.success({\n name: \"label\",\n attributes: {\n class: [\"xfaLabel\"],\n },\n children: [html],\n });\n }\n}\n\nclass Decimal extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"decimal\");\n this.fracDigits = getInteger({\n data: attributes.fracDigits,\n defaultValue: 2,\n validate: x => true,\n });\n this.id = attributes.id || \"\";\n this.leadDigits = getInteger({\n data: attributes.leadDigits,\n defaultValue: -1,\n validate: x => true,\n });\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n const number = parseFloat(this[$content].trim());\n this[$content] = isNaN(number) ? null : number;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(\n this[$content] !== null ? this[$content].toString() : \"\"\n );\n }\n}\n\nclass DefaultUi extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"defaultUi\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n}\n\nclass Desc extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"desc\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.boolean = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.time = new XFAObjectArray();\n }\n}\n\nclass DigestMethod extends OptionObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"digestMethod\", [\n \"\",\n \"SHA1\",\n \"SHA256\",\n \"SHA512\",\n \"RIPEMD160\",\n ]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass DigestMethods extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"digestMethods\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.digestMethod = new XFAObjectArray();\n }\n}\n\nclass Draw extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"draw\", /* hasChildren = */ true);\n this.anchorType = getStringOption(attributes.anchorType, [\n \"topLeft\",\n \"bottomCenter\",\n \"bottomLeft\",\n \"bottomRight\",\n \"middleCenter\",\n \"middleLeft\",\n \"middleRight\",\n \"topCenter\",\n \"topRight\",\n ]);\n this.colSpan = getInteger({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: n => n >= 1 || n === -1,\n });\n this.h = attributes.h ? getMeasurement(attributes.h) : \"\";\n this.hAlign = getStringOption(attributes.hAlign, [\n \"left\",\n \"center\",\n \"justify\",\n \"justifyAll\",\n \"radix\",\n \"right\",\n ]);\n this.id = attributes.id || \"\";\n this.locale = attributes.locale || \"\";\n this.maxH = getMeasurement(attributes.maxH, \"0pt\");\n this.maxW = getMeasurement(attributes.maxW, \"0pt\");\n this.minH = getMeasurement(attributes.minH, \"0pt\");\n this.minW = getMeasurement(attributes.minW, \"0pt\");\n this.name = attributes.name || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.rotate = getInteger({\n data: attributes.rotate,\n defaultValue: 0,\n validate: x => x % 90 === 0,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = attributes.w ? getMeasurement(attributes.w) : \"\";\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.assist = null;\n this.border = null;\n this.caption = null;\n this.desc = null;\n this.extras = null;\n this.font = null;\n this.keep = null;\n this.margin = null;\n this.para = null;\n this.traversal = null;\n this.ui = null;\n this.value = null;\n this.setProperty = new XFAObjectArray();\n }\n\n [$setValue](value) {\n _setValue(this, value);\n }\n\n [$toHTML](availableSpace) {\n setTabIndex(this);\n\n if (this.presence === \"hidden\" || this.presence === \"inactive\") {\n return HTMLResult.EMPTY;\n }\n\n fixDimensions(this);\n this[$pushPara]();\n\n // If at least one dimension is missing and we've a text\n // then we can guess it in laying out the text.\n const savedW = this.w;\n const savedH = this.h;\n const { w, h, isBroken } = layoutNode(this, availableSpace);\n if (w && this.w === \"\") {\n // If the parent layout is lr-tb with a w=100 and we already have a child\n // which takes 90 on the current line.\n // If we have a text with a length (in px) equal to 100 then it'll be\n // splitted into almost 10 chunks: so it won't be nice.\n // So if we've potentially more width to provide in some parent containers\n // let's increase it to give a chance to have a better rendering.\n if (isBroken && this[$getSubformParent]()[$isThereMoreWidth]()) {\n this[$popPara]();\n return HTMLResult.FAILURE;\n }\n\n this.w = w;\n }\n if (h && this.h === \"\") {\n this.h = h;\n }\n\n setFirstUnsplittable(this);\n if (!checkDimensions(this, availableSpace)) {\n this.w = savedW;\n this.h = savedH;\n this[$popPara]();\n return HTMLResult.FAILURE;\n }\n unsetFirstUnsplittable(this);\n\n const style = toStyle(\n this,\n \"font\",\n \"hAlign\",\n \"dimensions\",\n \"position\",\n \"presence\",\n \"rotate\",\n \"anchorType\",\n \"border\",\n \"margin\"\n );\n\n setMinMaxDimensions(this, style);\n\n if (style.margin) {\n style.padding = style.margin;\n delete style.margin;\n }\n\n const classNames = [\"xfaDraw\"];\n if (this.font) {\n classNames.push(\"xfaFont\");\n }\n if (isPrintOnly(this)) {\n classNames.push(\"xfaPrintOnly\");\n }\n\n const attributes = {\n style,\n id: this[$uid],\n class: classNames,\n };\n\n if (this.name) {\n attributes.xfaName = this.name;\n }\n\n const html = {\n name: \"div\",\n attributes,\n children: [],\n };\n\n applyAssist(this, attributes);\n\n const bbox = computeBbox(this, html, availableSpace);\n\n const value = this.value ? this.value[$toHTML](availableSpace).html : null;\n if (value === null) {\n this.w = savedW;\n this.h = savedH;\n this[$popPara]();\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n\n html.children.push(value);\n setPara(this, style, value);\n\n this.w = savedW;\n this.h = savedH;\n\n this[$popPara]();\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n}\n\nclass Edge extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"edge\", /* hasChildren = */ true);\n this.cap = getStringOption(attributes.cap, [\"square\", \"butt\", \"round\"]);\n this.id = attributes.id || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.stroke = getStringOption(attributes.stroke, [\n \"solid\",\n \"dashDot\",\n \"dashDotDot\",\n \"dashed\",\n \"dotted\",\n \"embossed\",\n \"etched\",\n \"lowered\",\n \"raised\",\n ]);\n this.thickness = getMeasurement(attributes.thickness, \"0.5pt\");\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle]() {\n // TODO: dashDot & dashDotDot.\n const style = toStyle(this, \"visibility\");\n Object.assign(style, {\n linecap: this.cap,\n width: measureToString(this.thickness),\n color: this.color ? this.color[$toStyle]() : \"#000000\",\n style: \"\",\n });\n\n if (this.presence !== \"visible\") {\n style.style = \"none\";\n } else {\n switch (this.stroke) {\n case \"solid\":\n style.style = \"solid\";\n break;\n case \"dashDot\":\n style.style = \"dashed\";\n break;\n case \"dashDotDot\":\n style.style = \"dashed\";\n break;\n case \"dashed\":\n style.style = \"dashed\";\n break;\n case \"dotted\":\n style.style = \"dotted\";\n break;\n case \"embossed\":\n style.style = \"ridge\";\n break;\n case \"etched\":\n style.style = \"groove\";\n break;\n case \"lowered\":\n style.style = \"inset\";\n break;\n case \"raised\":\n style.style = \"outset\";\n break;\n }\n }\n return style;\n }\n}\n\nclass Encoding extends OptionObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encoding\", [\n \"adbe.x509.rsa_sha1\",\n \"adbe.pkcs7.detached\",\n \"adbe.pkcs7.sha1\",\n ]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Encodings extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encodings\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.encoding = new XFAObjectArray();\n }\n}\n\nclass Encrypt extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encrypt\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.certificate = null;\n }\n}\n\nclass EncryptData extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encryptData\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.operation = getStringOption(attributes.operation, [\n \"encrypt\",\n \"decrypt\",\n ]);\n this.target = attributes.target || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.filter = null;\n this.manifest = null;\n }\n}\n\nclass Encryption extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encryption\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.certificate = new XFAObjectArray();\n }\n}\n\nclass EncryptionMethod extends OptionObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encryptionMethod\", [\n \"\",\n \"AES256-CBC\",\n \"TRIPLEDES-CBC\",\n \"AES128-CBC\",\n \"AES192-CBC\",\n ]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass EncryptionMethods extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encryptionMethods\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.encryptionMethod = new XFAObjectArray();\n }\n}\n\nclass Event extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"event\", /* hasChildren = */ true);\n this.activity = getStringOption(attributes.activity, [\n \"click\",\n \"change\",\n \"docClose\",\n \"docReady\",\n \"enter\",\n \"exit\",\n \"full\",\n \"indexChange\",\n \"initialize\",\n \"mouseDown\",\n \"mouseEnter\",\n \"mouseExit\",\n \"mouseUp\",\n \"postExecute\",\n \"postOpen\",\n \"postPrint\",\n \"postSave\",\n \"postSign\",\n \"postSubmit\",\n \"preExecute\",\n \"preOpen\",\n \"prePrint\",\n \"preSave\",\n \"preSign\",\n \"preSubmit\",\n \"ready\",\n \"validationState\",\n ]);\n this.id = attributes.id || \"\";\n this.listen = getStringOption(attributes.listen, [\n \"refOnly\",\n \"refAndDescendents\",\n ]);\n this.name = attributes.name || \"\";\n this.ref = attributes.ref || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n\n // One-of properties\n this.encryptData = null;\n this.execute = null;\n this.script = null;\n this.signData = null;\n this.submit = null;\n }\n}\n\nclass ExData extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"exData\");\n this.contentType = attributes.contentType || \"\";\n this.href = attributes.href || \"\";\n this.id = attributes.id || \"\";\n this.maxLength = getInteger({\n data: attributes.maxLength,\n defaultValue: -1,\n validate: x => x >= -1,\n });\n this.name = attributes.name || \"\";\n this.rid = attributes.rid || \"\";\n this.transferEncoding = getStringOption(attributes.transferEncoding, [\n \"none\",\n \"base64\",\n \"package\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$isCDATAXml]() {\n return this.contentType === \"text/html\";\n }\n\n [$onChild](child) {\n if (\n this.contentType === \"text/html\" &&\n child[$namespaceId] === NamespaceIds.xhtml.id\n ) {\n this[$content] = child;\n return true;\n }\n\n if (this.contentType === \"text/xml\") {\n this[$content] = child;\n return true;\n }\n\n return false;\n }\n\n [$toHTML](availableSpace) {\n if (this.contentType !== \"text/html\" || !this[$content]) {\n // TODO: fix other cases.\n return HTMLResult.EMPTY;\n }\n\n return this[$content][$toHTML](availableSpace);\n }\n}\n\nclass ExObject extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"exObject\", /* hasChildren = */ true);\n this.archive = attributes.archive || \"\";\n this.classId = attributes.classId || \"\";\n this.codeBase = attributes.codeBase || \"\";\n this.codeType = attributes.codeType || \"\";\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.boolean = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.exObject = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.time = new XFAObjectArray();\n }\n}\n\nclass ExclGroup extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"exclGroup\", /* hasChildren = */ true);\n this.access = getStringOption(attributes.access, [\n \"open\",\n \"nonInteractive\",\n \"protected\",\n \"readOnly\",\n ]);\n this.accessKey = attributes.accessKey || \"\";\n this.anchorType = getStringOption(attributes.anchorType, [\n \"topLeft\",\n \"bottomCenter\",\n \"bottomLeft\",\n \"bottomRight\",\n \"middleCenter\",\n \"middleLeft\",\n \"middleRight\",\n \"topCenter\",\n \"topRight\",\n ]);\n this.colSpan = getInteger({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: n => n >= 1 || n === -1,\n });\n this.h = attributes.h ? getMeasurement(attributes.h) : \"\";\n this.hAlign = getStringOption(attributes.hAlign, [\n \"left\",\n \"center\",\n \"justify\",\n \"justifyAll\",\n \"radix\",\n \"right\",\n ]);\n this.id = attributes.id || \"\";\n this.layout = getStringOption(attributes.layout, [\n \"position\",\n \"lr-tb\",\n \"rl-row\",\n \"rl-tb\",\n \"row\",\n \"table\",\n \"tb\",\n ]);\n this.maxH = getMeasurement(attributes.maxH, \"0pt\");\n this.maxW = getMeasurement(attributes.maxW, \"0pt\");\n this.minH = getMeasurement(attributes.minH, \"0pt\");\n this.minW = getMeasurement(attributes.minW, \"0pt\");\n this.name = attributes.name || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = attributes.w ? getMeasurement(attributes.w) : \"\";\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.assist = null;\n this.bind = null;\n this.border = null;\n this.calculate = null;\n this.caption = null;\n this.desc = null;\n this.extras = null;\n this.margin = null;\n this.para = null;\n this.traversal = null;\n this.validate = null;\n this.connect = new XFAObjectArray();\n this.event = new XFAObjectArray();\n this.field = new XFAObjectArray();\n this.setProperty = new XFAObjectArray();\n }\n\n [$isBindable]() {\n return true;\n }\n\n [$hasSettableValue]() {\n return true;\n }\n\n [$setValue](value) {\n for (const field of this.field.children) {\n if (!field.value) {\n const nodeValue = new Value({});\n field[$appendChild](nodeValue);\n field.value = nodeValue;\n }\n\n field.value[$setValue](value);\n }\n }\n\n [$isThereMoreWidth]() {\n return (\n (this.layout.endsWith(\"-tb\") &&\n this[$extra].attempt === 0 &&\n this[$extra].numberInLine > 0) ||\n this[$getParent]()[$isThereMoreWidth]()\n );\n }\n\n [$isSplittable]() {\n // We cannot cache the result here because the contentArea\n // can change.\n const parent = this[$getSubformParent]();\n if (!parent[$isSplittable]()) {\n return false;\n }\n\n if (this[$extra]._isSplittable !== undefined) {\n return this[$extra]._isSplittable;\n }\n\n if (this.layout === \"position\" || this.layout.includes(\"row\")) {\n this[$extra]._isSplittable = false;\n return false;\n }\n\n if (\n parent.layout &&\n parent.layout.endsWith(\"-tb\") &&\n parent[$extra].numberInLine !== 0\n ) {\n // See comment in Subform::[$isSplittable] for an explanation.\n return false;\n }\n\n this[$extra]._isSplittable = true;\n return true;\n }\n\n [$flushHTML]() {\n return flushHTML(this);\n }\n\n [$addHTML](html, bbox) {\n addHTML(this, html, bbox);\n }\n\n [$getAvailableSpace]() {\n return getAvailableSpace(this);\n }\n\n [$toHTML](availableSpace) {\n setTabIndex(this);\n if (\n this.presence === \"hidden\" ||\n this.presence === \"inactive\" ||\n this.h === 0 ||\n this.w === 0\n ) {\n return HTMLResult.EMPTY;\n }\n\n fixDimensions(this);\n\n const children = [];\n const attributes = {\n id: this[$uid],\n class: [],\n };\n\n setAccess(this, attributes.class);\n\n if (!this[$extra]) {\n this[$extra] = Object.create(null);\n }\n\n Object.assign(this[$extra], {\n children,\n attributes,\n attempt: 0,\n line: null,\n numberInLine: 0,\n availableSpace: {\n width: Math.min(this.w || Infinity, availableSpace.width),\n height: Math.min(this.h || Infinity, availableSpace.height),\n },\n width: 0,\n height: 0,\n prevHeight: 0,\n currentWidth: 0,\n });\n\n const isSplittable = this[$isSplittable]();\n if (!isSplittable) {\n setFirstUnsplittable(this);\n }\n\n if (!checkDimensions(this, availableSpace)) {\n return HTMLResult.FAILURE;\n }\n const filter = new Set([\"field\"]);\n\n if (this.layout.includes(\"row\")) {\n const columnWidths = this[$getSubformParent]().columnWidths;\n if (Array.isArray(columnWidths) && columnWidths.length > 0) {\n this[$extra].columnWidths = columnWidths;\n this[$extra].currentColumn = 0;\n }\n }\n\n const style = toStyle(\n this,\n \"anchorType\",\n \"dimensions\",\n \"position\",\n \"presence\",\n \"border\",\n \"margin\",\n \"hAlign\"\n );\n const classNames = [\"xfaExclgroup\"];\n const cl = layoutClass(this);\n if (cl) {\n classNames.push(cl);\n }\n\n if (isPrintOnly(this)) {\n classNames.push(\"xfaPrintOnly\");\n }\n\n attributes.style = style;\n attributes.class = classNames;\n\n if (this.name) {\n attributes.xfaName = this.name;\n }\n\n this[$pushPara]();\n const isLrTb = this.layout === \"lr-tb\" || this.layout === \"rl-tb\";\n const maxRun = isLrTb ? MAX_ATTEMPTS_FOR_LRTB_LAYOUT : 1;\n for (; this[$extra].attempt < maxRun; this[$extra].attempt++) {\n if (isLrTb && this[$extra].attempt === MAX_ATTEMPTS_FOR_LRTB_LAYOUT - 1) {\n // If the layout is lr-tb then having attempt equals to\n // MAX_ATTEMPTS_FOR_LRTB_LAYOUT-1 means that we're trying to layout\n // on the next line so this on is empty.\n this[$extra].numberInLine = 0;\n }\n const result = this[$childrenToHTML]({\n filter,\n include: true,\n });\n if (result.success) {\n break;\n }\n if (result.isBreak()) {\n this[$popPara]();\n return result;\n }\n if (\n isLrTb &&\n this[$extra].attempt === 0 &&\n this[$extra].numberInLine === 0 &&\n !this[$getTemplateRoot]()[$extra].noLayoutFailure\n ) {\n // See comment in Subform::[$toHTML].\n this[$extra].attempt = maxRun;\n break;\n }\n }\n\n this[$popPara]();\n\n if (!isSplittable) {\n unsetFirstUnsplittable(this);\n }\n\n if (this[$extra].attempt === maxRun) {\n if (!isSplittable) {\n delete this[$extra];\n }\n return HTMLResult.FAILURE;\n }\n\n let marginH = 0;\n let marginV = 0;\n if (this.margin) {\n marginH = this.margin.leftInset + this.margin.rightInset;\n marginV = this.margin.topInset + this.margin.bottomInset;\n }\n\n const width = Math.max(this[$extra].width + marginH, this.w || 0);\n const height = Math.max(this[$extra].height + marginV, this.h || 0);\n const bbox = [this.x, this.y, width, height];\n\n if (this.w === \"\") {\n style.width = measureToString(width);\n }\n if (this.h === \"\") {\n style.height = measureToString(height);\n }\n\n const html = {\n name: \"div\",\n attributes,\n children,\n };\n\n applyAssist(this, attributes);\n\n delete this[$extra];\n\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n}\n\nclass Execute extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"execute\");\n this.connection = attributes.connection || \"\";\n this.executeType = getStringOption(attributes.executeType, [\n \"import\",\n \"remerge\",\n ]);\n this.id = attributes.id || \"\";\n this.runAt = getStringOption(attributes.runAt, [\n \"client\",\n \"both\",\n \"server\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Extras extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"extras\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.boolean = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.extras = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.time = new XFAObjectArray();\n }\n\n // (Spec) The XFA template grammar defines the extras and desc elements,\n // which can be used to add human-readable or machine-readable\n // data to a template.\n}\n\nclass Field extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"field\", /* hasChildren = */ true);\n this.access = getStringOption(attributes.access, [\n \"open\",\n \"nonInteractive\",\n \"protected\",\n \"readOnly\",\n ]);\n this.accessKey = attributes.accessKey || \"\";\n this.anchorType = getStringOption(attributes.anchorType, [\n \"topLeft\",\n \"bottomCenter\",\n \"bottomLeft\",\n \"bottomRight\",\n \"middleCenter\",\n \"middleLeft\",\n \"middleRight\",\n \"topCenter\",\n \"topRight\",\n ]);\n this.colSpan = getInteger({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: n => n >= 1 || n === -1,\n });\n this.h = attributes.h ? getMeasurement(attributes.h) : \"\";\n this.hAlign = getStringOption(attributes.hAlign, [\n \"left\",\n \"center\",\n \"justify\",\n \"justifyAll\",\n \"radix\",\n \"right\",\n ]);\n this.id = attributes.id || \"\";\n this.locale = attributes.locale || \"\";\n this.maxH = getMeasurement(attributes.maxH, \"0pt\");\n this.maxW = getMeasurement(attributes.maxW, \"0pt\");\n this.minH = getMeasurement(attributes.minH, \"0pt\");\n this.minW = getMeasurement(attributes.minW, \"0pt\");\n this.name = attributes.name || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.rotate = getInteger({\n data: attributes.rotate,\n defaultValue: 0,\n validate: x => x % 90 === 0,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = attributes.w ? getMeasurement(attributes.w) : \"\";\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.assist = null;\n this.bind = null;\n this.border = null;\n this.calculate = null;\n this.caption = null;\n this.desc = null;\n this.extras = null;\n this.font = null;\n this.format = null;\n // For a choice list, one list is used to have display entries\n // and the other for the exported values\n this.items = new XFAObjectArray(2);\n this.keep = null;\n this.margin = null;\n this.para = null;\n this.traversal = null;\n this.ui = null;\n this.validate = null;\n this.value = null;\n this.bindItems = new XFAObjectArray();\n this.connect = new XFAObjectArray();\n this.event = new XFAObjectArray();\n this.setProperty = new XFAObjectArray();\n }\n\n [$isBindable]() {\n return true;\n }\n\n [$setValue](value) {\n _setValue(this, value);\n }\n\n [$toHTML](availableSpace) {\n setTabIndex(this);\n\n if (!this.ui) {\n // It's allowed to not have an ui, specs say:\n // If the UI element contains no children or is not present,\n // the application chooses a default user interface for the\n // container, based on the type of the container's content.\n\n this.ui = new Ui({});\n this.ui[$globalData] = this[$globalData];\n this[$appendChild](this.ui);\n let node;\n\n // The items element can have 2 element max and\n // according to the items specs it's likely a good\n // way to guess the correct ui type.\n switch (this.items.children.length) {\n case 0:\n node = new TextEdit({});\n this.ui.textEdit = node;\n break;\n case 1:\n node = new CheckButton({});\n this.ui.checkButton = node;\n break;\n case 2:\n node = new ChoiceList({});\n this.ui.choiceList = node;\n break;\n }\n this.ui[$appendChild](node);\n }\n\n if (\n !this.ui ||\n this.presence === \"hidden\" ||\n this.presence === \"inactive\" ||\n this.h === 0 ||\n this.w === 0\n ) {\n return HTMLResult.EMPTY;\n }\n\n if (this.caption) {\n // Maybe we already tried to layout this field with\n // another availableSpace, so to avoid to use the cached\n // value just delete it.\n delete this.caption[$extra];\n }\n\n this[$pushPara]();\n\n const caption = this.caption\n ? this.caption[$toHTML](availableSpace).html\n : null;\n const savedW = this.w;\n const savedH = this.h;\n let marginH = 0;\n let marginV = 0;\n if (this.margin) {\n marginH = this.margin.leftInset + this.margin.rightInset;\n marginV = this.margin.topInset + this.margin.bottomInset;\n }\n\n let borderDims = null;\n if (this.w === \"\" || this.h === \"\") {\n let width = null;\n let height = null;\n\n let uiW = 0;\n let uiH = 0;\n if (this.ui.checkButton) {\n uiW = uiH = this.ui.checkButton.size;\n } else {\n const { w, h } = layoutNode(this, availableSpace);\n if (w !== null) {\n uiW = w;\n uiH = h;\n } else {\n uiH = getMetrics(this.font, /* real = */ true).lineNoGap;\n }\n }\n\n borderDims = getBorderDims(this.ui[$getExtra]());\n uiW += borderDims.w;\n uiH += borderDims.h;\n\n if (this.caption) {\n const { w, h, isBroken } = this.caption[$getExtra](availableSpace);\n // See comment in Draw::[$toHTML] to have an explanation\n // about this line.\n if (isBroken && this[$getSubformParent]()[$isThereMoreWidth]()) {\n this[$popPara]();\n return HTMLResult.FAILURE;\n }\n\n width = w;\n height = h;\n\n switch (this.caption.placement) {\n case \"left\":\n case \"right\":\n case \"inline\":\n width += uiW;\n break;\n case \"top\":\n case \"bottom\":\n height += uiH;\n break;\n }\n } else {\n width = uiW;\n height = uiH;\n }\n\n if (width && this.w === \"\") {\n width += marginH;\n this.w = Math.min(\n this.maxW <= 0 ? Infinity : this.maxW,\n this.minW + 1 < width ? width : this.minW\n );\n }\n\n if (height && this.h === \"\") {\n height += marginV;\n this.h = Math.min(\n this.maxH <= 0 ? Infinity : this.maxH,\n this.minH + 1 < height ? height : this.minH\n );\n }\n }\n\n this[$popPara]();\n\n fixDimensions(this);\n\n setFirstUnsplittable(this);\n if (!checkDimensions(this, availableSpace)) {\n this.w = savedW;\n this.h = savedH;\n this[$popPara]();\n return HTMLResult.FAILURE;\n }\n unsetFirstUnsplittable(this);\n\n const style = toStyle(\n this,\n \"font\",\n \"dimensions\",\n \"position\",\n \"rotate\",\n \"anchorType\",\n \"presence\",\n \"margin\",\n \"hAlign\"\n );\n\n setMinMaxDimensions(this, style);\n\n const classNames = [\"xfaField\"];\n // If no font, font properties are inherited.\n if (this.font) {\n classNames.push(\"xfaFont\");\n }\n\n if (isPrintOnly(this)) {\n classNames.push(\"xfaPrintOnly\");\n }\n\n const attributes = {\n style,\n id: this[$uid],\n class: classNames,\n };\n\n if (style.margin) {\n style.padding = style.margin;\n delete style.margin;\n }\n\n setAccess(this, classNames);\n\n if (this.name) {\n attributes.xfaName = this.name;\n }\n\n const children = [];\n const html = {\n name: \"div\",\n attributes,\n children,\n };\n\n applyAssist(this, attributes);\n\n const borderStyle = this.border ? this.border[$toStyle]() : null;\n const bbox = computeBbox(this, html, availableSpace);\n const ui = this.ui[$toHTML]().html;\n if (!ui) {\n Object.assign(style, borderStyle);\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n\n if (this[$tabIndex]) {\n if (ui.children && ui.children[0]) {\n ui.children[0].attributes.tabindex = this[$tabIndex];\n } else {\n ui.attributes.tabindex = this[$tabIndex];\n }\n }\n\n if (!ui.attributes.style) {\n ui.attributes.style = Object.create(null);\n }\n\n let aElement = null;\n\n if (this.ui.button) {\n if (ui.children.length === 1) {\n [aElement] = ui.children.splice(0, 1);\n }\n Object.assign(ui.attributes.style, borderStyle);\n } else {\n Object.assign(style, borderStyle);\n }\n\n children.push(ui);\n\n if (this.value) {\n if (this.ui.imageEdit) {\n ui.children.push(this.value[$toHTML]().html);\n } else if (!this.ui.button) {\n let value = \"\";\n if (this.value.exData) {\n value = this.value.exData[$text]();\n } else if (this.value.text) {\n value = this.value.text[$getExtra]();\n } else {\n const htmlValue = this.value[$toHTML]().html;\n if (htmlValue !== null) {\n value = htmlValue.children[0].value;\n }\n }\n if (this.ui.textEdit && this.value.text && this.value.text.maxChars) {\n ui.children[0].attributes.maxLength = this.value.text.maxChars;\n }\n\n if (value) {\n if (this.ui.numericEdit) {\n value = parseFloat(value);\n value = isNaN(value) ? \"\" : value.toString();\n }\n\n if (ui.children[0].name === \"textarea\") {\n ui.children[0].attributes.textContent = value;\n } else {\n ui.children[0].attributes.value = value;\n }\n }\n }\n }\n\n if (!this.ui.imageEdit && ui.children && ui.children[0] && this.h) {\n borderDims = borderDims || getBorderDims(this.ui[$getExtra]());\n\n let captionHeight = 0;\n if (this.caption && [\"top\", \"bottom\"].includes(this.caption.placement)) {\n captionHeight = this.caption.reserve;\n if (captionHeight <= 0) {\n captionHeight = this.caption[$getExtra](availableSpace).h;\n }\n const inputHeight = this.h - captionHeight - marginV - borderDims.h;\n ui.children[0].attributes.style.height = measureToString(inputHeight);\n } else {\n ui.children[0].attributes.style.height = \"100%\";\n }\n }\n\n if (aElement) {\n ui.children.push(aElement);\n }\n\n if (!caption) {\n if (ui.attributes.class) {\n // Even if no caption this class will help to center the ui.\n ui.attributes.class.push(\"xfaLeft\");\n }\n this.w = savedW;\n this.h = savedH;\n\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n\n if (this.ui.button) {\n if (style.padding) {\n delete style.padding;\n }\n if (caption.name === \"div\") {\n caption.name = \"span\";\n }\n ui.children.push(caption);\n return HTMLResult.success(html, bbox);\n } else if (this.ui.checkButton) {\n caption.attributes.class[0] = \"xfaCaptionForCheckButton\";\n }\n\n if (!ui.attributes.class) {\n ui.attributes.class = [];\n }\n\n ui.children.splice(0, 0, caption);\n\n switch (this.caption.placement) {\n case \"left\":\n ui.attributes.class.push(\"xfaLeft\");\n break;\n case \"right\":\n ui.attributes.class.push(\"xfaRight\");\n break;\n case \"top\":\n ui.attributes.class.push(\"xfaTop\");\n break;\n case \"bottom\":\n ui.attributes.class.push(\"xfaBottom\");\n break;\n case \"inline\":\n // TODO;\n ui.attributes.class.push(\"xfaLeft\");\n break;\n }\n\n this.w = savedW;\n this.h = savedH;\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n}\n\nclass Fill extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"fill\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n\n // One-of properties or none\n this.linear = null;\n this.pattern = null;\n this.radial = null;\n this.solid = null;\n this.stipple = null;\n }\n\n [$toStyle]() {\n const parent = this[$getParent]();\n const grandpa = parent[$getParent]();\n const ggrandpa = grandpa[$getParent]();\n const style = Object.create(null);\n\n // Use for color, i.e. #...\n let propName = \"color\";\n\n // Use for non-color, i.e. gradient, radial-gradient...\n let altPropName = propName;\n\n if (parent instanceof Border) {\n propName = \"background-color\";\n altPropName = \"background\";\n if (ggrandpa instanceof Ui) {\n // The default fill color is white.\n style.backgroundColor = \"white\";\n }\n }\n if (parent instanceof Rectangle || parent instanceof Arc) {\n propName = altPropName = \"fill\";\n style.fill = \"white\";\n }\n\n for (const name of Object.getOwnPropertyNames(this)) {\n if (name === \"extras\" || name === \"color\") {\n continue;\n }\n const obj = this[name];\n if (!(obj instanceof XFAObject)) {\n continue;\n }\n\n const color = obj[$toStyle](this.color);\n if (color) {\n style[color.startsWith(\"#\") ? propName : altPropName] = color;\n }\n return style;\n }\n\n if (this.color && this.color.value) {\n const color = this.color[$toStyle]();\n style[color.startsWith(\"#\") ? propName : altPropName] = color;\n }\n\n return style;\n }\n}\n\nclass Filter extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"filter\", /* hasChildren = */ true);\n this.addRevocationInfo = getStringOption(attributes.addRevocationInfo, [\n \"\",\n \"required\",\n \"optional\",\n \"none\",\n ]);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.version = getInteger({\n data: this.version,\n defaultValue: 5,\n validate: x => x >= 1 && x <= 5,\n });\n this.appearanceFilter = null;\n this.certificates = null;\n this.digestMethods = null;\n this.encodings = null;\n this.encryptionMethods = null;\n this.handler = null;\n this.lockDocument = null;\n this.mdp = null;\n this.reasons = null;\n this.timeStamp = null;\n }\n}\n\nclass Float extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"float\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n const number = parseFloat(this[$content].trim());\n this[$content] = isNaN(number) ? null : number;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(\n this[$content] !== null ? this[$content].toString() : \"\"\n );\n }\n}\n\nclass Font extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"font\", /* hasChildren = */ true);\n this.baselineShift = getMeasurement(attributes.baselineShift);\n this.fontHorizontalScale = getFloat({\n data: attributes.fontHorizontalScale,\n defaultValue: 100,\n validate: x => x >= 0,\n });\n this.fontVerticalScale = getFloat({\n data: attributes.fontVerticalScale,\n defaultValue: 100,\n validate: x => x >= 0,\n });\n this.id = attributes.id || \"\";\n this.kerningMode = getStringOption(attributes.kerningMode, [\n \"none\",\n \"pair\",\n ]);\n this.letterSpacing = getMeasurement(attributes.letterSpacing, \"0\");\n this.lineThrough = getInteger({\n data: attributes.lineThrough,\n defaultValue: 0,\n validate: x => x === 1 || x === 2,\n });\n this.lineThroughPeriod = getStringOption(attributes.lineThroughPeriod, [\n \"all\",\n \"word\",\n ]);\n this.overline = getInteger({\n data: attributes.overline,\n defaultValue: 0,\n validate: x => x === 1 || x === 2,\n });\n this.overlinePeriod = getStringOption(attributes.overlinePeriod, [\n \"all\",\n \"word\",\n ]);\n this.posture = getStringOption(attributes.posture, [\"normal\", \"italic\"]);\n this.size = getMeasurement(attributes.size, \"10pt\");\n this.typeface = attributes.typeface || \"Courier\";\n this.underline = getInteger({\n data: attributes.underline,\n defaultValue: 0,\n validate: x => x === 1 || x === 2,\n });\n this.underlinePeriod = getStringOption(attributes.underlinePeriod, [\n \"all\",\n \"word\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.weight = getStringOption(attributes.weight, [\"normal\", \"bold\"]);\n this.extras = null;\n this.fill = null;\n }\n\n [$clean](builder) {\n super[$clean](builder);\n this[$globalData].usedTypefaces.add(this.typeface);\n }\n\n [$toStyle]() {\n const style = toStyle(this, \"fill\");\n const color = style.color;\n if (color) {\n if (color === \"#000000\") {\n // Default font color.\n delete style.color;\n } else if (!color.startsWith(\"#\")) {\n // We've a gradient which is not possible for a font color\n // so use a workaround.\n style.background = color;\n style.backgroundClip = \"text\";\n style.color = \"transparent\";\n }\n }\n\n if (this.baselineShift) {\n style.verticalAlign = measureToString(this.baselineShift);\n }\n\n // TODO: fontHorizontalScale\n // TODO: fontVerticalScale\n\n style.fontKerning = this.kerningMode === \"none\" ? \"none\" : \"normal\";\n style.letterSpacing = measureToString(this.letterSpacing);\n\n if (this.lineThrough !== 0) {\n style.textDecoration = \"line-through\";\n if (this.lineThrough === 2) {\n style.textDecorationStyle = \"double\";\n }\n }\n\n // TODO: lineThroughPeriod\n\n if (this.overline !== 0) {\n style.textDecoration = \"overline\";\n if (this.overline === 2) {\n style.textDecorationStyle = \"double\";\n }\n }\n\n // TODO: overlinePeriod\n\n style.fontStyle = this.posture;\n style.fontSize = measureToString(0.99 * this.size);\n\n setFontFamily(this, this, this[$globalData].fontFinder, style);\n\n if (this.underline !== 0) {\n style.textDecoration = \"underline\";\n if (this.underline === 2) {\n style.textDecorationStyle = \"double\";\n }\n }\n\n // TODO: underlinePeriod\n\n style.fontWeight = this.weight;\n\n return style;\n }\n}\n\nclass Format extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"format\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.picture = null;\n }\n}\n\nclass Handler extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"handler\");\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Hyphenation extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"hyphenation\");\n this.excludeAllCaps = getInteger({\n data: attributes.excludeAllCaps,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.excludeInitialCap = getInteger({\n data: attributes.excludeInitialCap,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.hyphenate = getInteger({\n data: attributes.hyphenate,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.id = attributes.id || \"\";\n this.pushCharacterCount = getInteger({\n data: attributes.pushCharacterCount,\n defaultValue: 3,\n validate: x => x >= 0,\n });\n this.remainCharacterCount = getInteger({\n data: attributes.remainCharacterCount,\n defaultValue: 3,\n validate: x => x >= 0,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.wordCharacterCount = getInteger({\n data: attributes.wordCharacterCount,\n defaultValue: 7,\n validate: x => x >= 0,\n });\n }\n}\n\nclass Image extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"image\");\n this.aspect = getStringOption(attributes.aspect, [\n \"fit\",\n \"actual\",\n \"height\",\n \"none\",\n \"width\",\n ]);\n this.contentType = attributes.contentType || \"\";\n this.href = attributes.href || \"\";\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.transferEncoding = getStringOption(attributes.transferEncoding, [\n \"base64\",\n \"none\",\n \"package\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$toHTML]() {\n if (this.contentType && !MIMES.has(this.contentType.toLowerCase())) {\n return HTMLResult.EMPTY;\n }\n\n let buffer =\n this[$globalData].images && this[$globalData].images.get(this.href);\n if (!buffer && (this.href || !this[$content])) {\n // In general, we don't get remote data and use what we have\n // in the pdf itself, so no picture for non null href.\n return HTMLResult.EMPTY;\n }\n\n if (!buffer && this.transferEncoding === \"base64\") {\n buffer = stringToBytes(atob(this[$content]));\n }\n\n if (!buffer) {\n return HTMLResult.EMPTY;\n }\n\n if (!this.contentType) {\n for (const [header, type] of IMAGES_HEADERS) {\n if (\n buffer.length > header.length &&\n header.every((x, i) => x === buffer[i])\n ) {\n this.contentType = type;\n break;\n }\n }\n if (!this.contentType) {\n return HTMLResult.EMPTY;\n }\n }\n\n // TODO: Firefox doesn't support natively tiff (and tif) format.\n const blob = new Blob([buffer], { type: this.contentType });\n let style;\n switch (this.aspect) {\n case \"fit\":\n case \"actual\":\n // TODO: check what to do with actual.\n // Normally we should return {auto, auto} for it but\n // it implies some wrong rendering (see xfa_bug1716816.pdf).\n break;\n case \"height\":\n style = {\n height: \"100%\",\n objectFit: \"fill\",\n };\n break;\n case \"none\":\n style = {\n width: \"100%\",\n height: \"100%\",\n objectFit: \"fill\",\n };\n break;\n case \"width\":\n style = {\n width: \"100%\",\n objectFit: \"fill\",\n };\n break;\n }\n const parent = this[$getParent]();\n return HTMLResult.success({\n name: \"img\",\n attributes: {\n class: [\"xfaImage\"],\n style,\n src: URL.createObjectURL(blob),\n alt: parent ? ariaLabel(parent[$getParent]()) : null,\n },\n });\n }\n}\n\nclass ImageEdit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"imageEdit\", /* hasChildren = */ true);\n this.data = getStringOption(attributes.data, [\"link\", \"embed\"]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n if (this.data === \"embed\") {\n return HTMLResult.success({\n name: \"div\",\n children: [],\n attributes: {},\n });\n }\n\n return HTMLResult.EMPTY;\n }\n}\n\nclass Integer extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"integer\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n const number = parseInt(this[$content].trim(), 10);\n this[$content] = isNaN(number) ? null : number;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(\n this[$content] !== null ? this[$content].toString() : \"\"\n );\n }\n}\n\nclass Issuers extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"issuers\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.certificate = new XFAObjectArray();\n }\n}\n\nclass Items extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"items\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.ref = attributes.ref || \"\";\n this.save = getInteger({\n data: attributes.save,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.boolean = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.time = new XFAObjectArray();\n }\n\n [$toHTML]() {\n const output = [];\n for (const child of this[$getChildren]()) {\n output.push(child[$text]());\n }\n return HTMLResult.success(output);\n }\n}\n\nclass Keep extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"keep\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n const options = [\"none\", \"contentArea\", \"pageArea\"];\n this.intact = getStringOption(attributes.intact, options);\n this.next = getStringOption(attributes.next, options);\n this.previous = getStringOption(attributes.previous, options);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n}\n\nclass KeyUsage extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"keyUsage\");\n const options = [\"\", \"yes\", \"no\"];\n this.crlSign = getStringOption(attributes.crlSign, options);\n this.dataEncipherment = getStringOption(\n attributes.dataEncipherment,\n options\n );\n this.decipherOnly = getStringOption(attributes.decipherOnly, options);\n this.digitalSignature = getStringOption(\n attributes.digitalSignature,\n options\n );\n this.encipherOnly = getStringOption(attributes.encipherOnly, options);\n this.id = attributes.id || \"\";\n this.keyAgreement = getStringOption(attributes.keyAgreement, options);\n this.keyCertSign = getStringOption(attributes.keyCertSign, options);\n this.keyEncipherment = getStringOption(attributes.keyEncipherment, options);\n this.nonRepudiation = getStringOption(attributes.nonRepudiation, options);\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Line extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"line\", /* hasChildren = */ true);\n this.hand = getStringOption(attributes.hand, [\"even\", \"left\", \"right\"]);\n this.id = attributes.id || \"\";\n this.slope = getStringOption(attributes.slope, [\"\\\\\", \"/\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.edge = null;\n }\n\n [$toHTML]() {\n const parent = this[$getParent]()[$getParent]();\n const edge = this.edge ? this.edge : new Edge({});\n const edgeStyle = edge[$toStyle]();\n const style = Object.create(null);\n const thickness = edge.presence === \"visible\" ? edge.thickness : 0;\n style.strokeWidth = measureToString(thickness);\n style.stroke = edgeStyle.color;\n let x1, y1, x2, y2;\n let width = \"100%\";\n let height = \"100%\";\n\n if (parent.w <= thickness) {\n [x1, y1, x2, y2] = [\"50%\", 0, \"50%\", \"100%\"];\n width = style.strokeWidth;\n } else if (parent.h <= thickness) {\n [x1, y1, x2, y2] = [0, \"50%\", \"100%\", \"50%\"];\n height = style.strokeWidth;\n } else {\n if (this.slope === \"\\\\\") {\n [x1, y1, x2, y2] = [0, 0, \"100%\", \"100%\"];\n } else {\n [x1, y1, x2, y2] = [0, \"100%\", \"100%\", 0];\n }\n }\n\n const line = {\n name: \"line\",\n attributes: {\n xmlns: SVG_NS,\n x1,\n y1,\n x2,\n y2,\n style,\n },\n };\n\n const svg = {\n name: \"svg\",\n children: [line],\n attributes: {\n xmlns: SVG_NS,\n width,\n height,\n style: {\n overflow: \"visible\",\n },\n },\n };\n\n if (hasMargin(parent)) {\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n style: {\n display: \"inline\",\n width: \"100%\",\n height: \"100%\",\n },\n },\n children: [svg],\n });\n }\n\n svg.attributes.style.position = \"absolute\";\n return HTMLResult.success(svg);\n }\n}\n\nclass Linear extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"linear\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\n \"toRight\",\n \"toBottom\",\n \"toLeft\",\n \"toTop\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle](startColor) {\n startColor = startColor ? startColor[$toStyle]() : \"#FFFFFF\";\n const transf = this.type.replace(/([RBLT])/, \" $1\").toLowerCase();\n const endColor = this.color ? this.color[$toStyle]() : \"#000000\";\n return `linear-gradient(${transf}, ${startColor}, ${endColor})`;\n }\n}\n\nclass LockDocument extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"lockDocument\");\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n this[$content] = getStringOption(this[$content], [\"auto\", \"0\", \"1\"]);\n }\n}\n\nclass Manifest extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"manifest\", /* hasChildren = */ true);\n this.action = getStringOption(attributes.action, [\n \"include\",\n \"all\",\n \"exclude\",\n ]);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.ref = new XFAObjectArray();\n }\n}\n\nclass Margin extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"margin\", /* hasChildren = */ true);\n this.bottomInset = getMeasurement(attributes.bottomInset, \"0\");\n this.id = attributes.id || \"\";\n this.leftInset = getMeasurement(attributes.leftInset, \"0\");\n this.rightInset = getMeasurement(attributes.rightInset, \"0\");\n this.topInset = getMeasurement(attributes.topInset, \"0\");\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n\n [$toStyle]() {\n return {\n margin:\n measureToString(this.topInset) +\n \" \" +\n measureToString(this.rightInset) +\n \" \" +\n measureToString(this.bottomInset) +\n \" \" +\n measureToString(this.leftInset),\n };\n }\n}\n\nclass Mdp extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"mdp\");\n this.id = attributes.id || \"\";\n this.permissions = getInteger({\n data: attributes.permissions,\n defaultValue: 2,\n validate: x => x === 1 || x === 3,\n });\n this.signatureType = getStringOption(attributes.signatureType, [\n \"filler\",\n \"author\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Medium extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"medium\");\n this.id = attributes.id || \"\";\n this.imagingBBox = getBBox(attributes.imagingBBox);\n this.long = getMeasurement(attributes.long);\n this.orientation = getStringOption(attributes.orientation, [\n \"portrait\",\n \"landscape\",\n ]);\n this.short = getMeasurement(attributes.short);\n this.stock = attributes.stock || \"\";\n this.trayIn = getStringOption(attributes.trayIn, [\n \"auto\",\n \"delegate\",\n \"pageFront\",\n ]);\n this.trayOut = getStringOption(attributes.trayOut, [\"auto\", \"delegate\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Message extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"message\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.text = new XFAObjectArray();\n }\n}\n\nclass NumericEdit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"numericEdit\", /* hasChildren = */ true);\n this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, [\n \"auto\",\n \"off\",\n \"on\",\n ]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.comb = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n const style = toStyle(this, \"border\", \"font\", \"margin\");\n const field = this[$getParent]()[$getParent]();\n const html = {\n name: \"input\",\n attributes: {\n type: \"text\",\n fieldId: field[$uid],\n dataId: (field[$data] && field[$data][$uid]) || field[$uid],\n class: [\"xfaTextfield\"],\n style,\n \"aria-label\": ariaLabel(field),\n },\n };\n\n return HTMLResult.success({\n name: \"label\",\n attributes: {\n class: [\"xfaLabel\"],\n },\n children: [html],\n });\n }\n}\n\nclass Occur extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"occur\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.initial =\n attributes.initial !== \"\"\n ? getInteger({\n data: attributes.initial,\n defaultValue: \"\",\n validate: x => true,\n })\n : \"\";\n this.max =\n attributes.max !== \"\"\n ? getInteger({\n data: attributes.max,\n defaultValue: 1,\n validate: x => true,\n })\n : \"\";\n this.min =\n attributes.min !== \"\"\n ? getInteger({\n data: attributes.min,\n defaultValue: 1,\n validate: x => true,\n })\n : \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n\n [$clean]() {\n const parent = this[$getParent]();\n const originalMin = this.min;\n\n if (this.min === \"\") {\n this.min =\n parent instanceof PageArea || parent instanceof PageSet ? 0 : 1;\n }\n if (this.max === \"\") {\n if (originalMin === \"\") {\n this.max =\n parent instanceof PageArea || parent instanceof PageSet ? -1 : 1;\n } else {\n this.max = this.min;\n }\n }\n\n if (this.max !== -1 && this.max < this.min) {\n this.max = this.min;\n }\n\n if (this.initial === \"\") {\n this.initial = parent instanceof Template ? 1 : this.min;\n }\n }\n}\n\nclass Oid extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"oid\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Oids extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"oids\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.oid = new XFAObjectArray();\n }\n}\n\nclass Overflow extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"overflow\");\n this.id = attributes.id || \"\";\n this.leader = attributes.leader || \"\";\n this.target = attributes.target || \"\";\n this.trailer = attributes.trailer || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$getExtra]() {\n if (!this[$extra]) {\n const parent = this[$getParent]();\n const root = this[$getTemplateRoot]();\n const target = root[$searchNode](this.target, parent);\n const leader = root[$searchNode](this.leader, parent);\n const trailer = root[$searchNode](this.trailer, parent);\n this[$extra] = {\n target: (target && target[0]) || null,\n leader: (leader && leader[0]) || null,\n trailer: (trailer && trailer[0]) || null,\n addLeader: false,\n addTrailer: false,\n };\n }\n return this[$extra];\n }\n}\n\nclass PageArea extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"pageArea\", /* hasChildren = */ true);\n this.blankOrNotBlank = getStringOption(attributes.blankOrNotBlank, [\n \"any\",\n \"blank\",\n \"notBlank\",\n ]);\n this.id = attributes.id || \"\";\n this.initialNumber = getInteger({\n data: attributes.initialNumber,\n defaultValue: 1,\n validate: x => true,\n });\n this.name = attributes.name || \"\";\n this.numbered = getInteger({\n data: attributes.numbered,\n defaultValue: 1,\n validate: x => true,\n });\n this.oddOrEven = getStringOption(attributes.oddOrEven, [\n \"any\",\n \"even\",\n \"odd\",\n ]);\n this.pagePosition = getStringOption(attributes.pagePosition, [\n \"any\",\n \"first\",\n \"last\",\n \"only\",\n \"rest\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.desc = null;\n this.extras = null;\n this.medium = null;\n this.occur = null;\n this.area = new XFAObjectArray();\n this.contentArea = new XFAObjectArray();\n this.draw = new XFAObjectArray();\n this.exclGroup = new XFAObjectArray();\n this.field = new XFAObjectArray();\n this.subform = new XFAObjectArray();\n }\n\n [$isUsable]() {\n if (!this[$extra]) {\n this[$extra] = {\n numberOfUse: 0,\n };\n return true;\n }\n return (\n !this.occur ||\n this.occur.max === -1 ||\n this[$extra].numberOfUse < this.occur.max\n );\n }\n\n [$cleanPage]() {\n delete this[$extra];\n }\n\n [$getNextPage]() {\n if (!this[$extra]) {\n this[$extra] = {\n numberOfUse: 0,\n };\n }\n\n const parent = this[$getParent]();\n if (parent.relation === \"orderedOccurrence\") {\n if (this[$isUsable]()) {\n this[$extra].numberOfUse += 1;\n return this;\n }\n }\n\n return parent[$getNextPage]();\n }\n\n [$getAvailableSpace]() {\n return this[$extra].space || { width: 0, height: 0 };\n }\n\n [$toHTML]() {\n // TODO: incomplete.\n if (!this[$extra]) {\n this[$extra] = {\n numberOfUse: 1,\n };\n }\n\n const children = [];\n this[$extra].children = children;\n\n const style = Object.create(null);\n if (this.medium && this.medium.short && this.medium.long) {\n style.width = measureToString(this.medium.short);\n style.height = measureToString(this.medium.long);\n this[$extra].space = {\n width: this.medium.short,\n height: this.medium.long,\n };\n if (this.medium.orientation === \"landscape\") {\n const x = style.width;\n style.width = style.height;\n style.height = x;\n this[$extra].space = {\n width: this.medium.long,\n height: this.medium.short,\n };\n }\n } else {\n warn(\"XFA - No medium specified in pageArea: please file a bug.\");\n }\n\n this[$childrenToHTML]({\n filter: new Set([\"area\", \"draw\", \"field\", \"subform\"]),\n include: true,\n });\n\n // contentarea must be the last container to be sure it is\n // on top of the others.\n this[$childrenToHTML]({\n filter: new Set([\"contentArea\"]),\n include: true,\n });\n\n return HTMLResult.success({\n name: \"div\",\n children,\n attributes: {\n class: [\"xfaPage\"],\n id: this[$uid],\n style,\n xfaName: this.name,\n },\n });\n }\n}\n\nclass PageSet extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"pageSet\", /* hasChildren = */ true);\n this.duplexImposition = getStringOption(attributes.duplexImposition, [\n \"longEdge\",\n \"shortEdge\",\n ]);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.relation = getStringOption(attributes.relation, [\n \"orderedOccurrence\",\n \"duplexPaginated\",\n \"simplexPaginated\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.occur = null;\n this.pageArea = new XFAObjectArray();\n this.pageSet = new XFAObjectArray();\n }\n\n [$cleanPage]() {\n for (const page of this.pageArea.children) {\n page[$cleanPage]();\n }\n for (const page of this.pageSet.children) {\n page[$cleanPage]();\n }\n }\n\n [$isUsable]() {\n return (\n !this.occur ||\n this.occur.max === -1 ||\n this[$extra].numberOfUse < this.occur.max\n );\n }\n\n [$getNextPage]() {\n if (!this[$extra]) {\n this[$extra] = {\n numberOfUse: 1,\n pageIndex: -1,\n pageSetIndex: -1,\n };\n }\n\n if (this.relation === \"orderedOccurrence\") {\n if (this[$extra].pageIndex + 1 < this.pageArea.children.length) {\n this[$extra].pageIndex += 1;\n const pageArea = this.pageArea.children[this[$extra].pageIndex];\n return pageArea[$getNextPage]();\n }\n\n if (this[$extra].pageSetIndex + 1 < this.pageSet.children.length) {\n this[$extra].pageSetIndex += 1;\n return this.pageSet.children[this[$extra].pageSetIndex][$getNextPage]();\n }\n\n if (this[$isUsable]()) {\n this[$extra].numberOfUse += 1;\n this[$extra].pageIndex = -1;\n this[$extra].pageSetIndex = -1;\n return this[$getNextPage]();\n }\n\n const parent = this[$getParent]();\n if (parent instanceof PageSet) {\n return parent[$getNextPage]();\n }\n\n this[$cleanPage]();\n return this[$getNextPage]();\n }\n const pageNumber = this[$getTemplateRoot]()[$extra].pageNumber;\n const parity = pageNumber % 2 === 0 ? \"even\" : \"odd\";\n const position = pageNumber === 0 ? \"first\" : \"rest\";\n\n let page = this.pageArea.children.find(\n p => p.oddOrEven === parity && p.pagePosition === position\n );\n if (page) {\n return page;\n }\n\n page = this.pageArea.children.find(\n p => p.oddOrEven === \"any\" && p.pagePosition === position\n );\n if (page) {\n return page;\n }\n\n page = this.pageArea.children.find(\n p => p.oddOrEven === \"any\" && p.pagePosition === \"any\"\n );\n if (page) {\n return page;\n }\n\n return this.pageArea.children[0];\n }\n}\n\nclass Para extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"para\", /* hasChildren = */ true);\n this.hAlign = getStringOption(attributes.hAlign, [\n \"left\",\n \"center\",\n \"justify\",\n \"justifyAll\",\n \"radix\",\n \"right\",\n ]);\n this.id = attributes.id || \"\";\n this.lineHeight = attributes.lineHeight\n ? getMeasurement(attributes.lineHeight, \"0pt\")\n : \"\";\n this.marginLeft = attributes.marginLeft\n ? getMeasurement(attributes.marginLeft, \"0pt\")\n : \"\";\n this.marginRight = attributes.marginRight\n ? getMeasurement(attributes.marginRight, \"0pt\")\n : \"\";\n this.orphans = getInteger({\n data: attributes.orphans,\n defaultValue: 0,\n validate: x => x >= 0,\n });\n this.preserve = attributes.preserve || \"\";\n this.radixOffset = attributes.radixOffset\n ? getMeasurement(attributes.radixOffset, \"0pt\")\n : \"\";\n this.spaceAbove = attributes.spaceAbove\n ? getMeasurement(attributes.spaceAbove, \"0pt\")\n : \"\";\n this.spaceBelow = attributes.spaceBelow\n ? getMeasurement(attributes.spaceBelow, \"0pt\")\n : \"\";\n this.tabDefault = attributes.tabDefault\n ? getMeasurement(this.tabDefault)\n : \"\";\n this.tabStops = (attributes.tabStops || \"\")\n .trim()\n .split(/\\s+/)\n .map((x, i) => (i % 2 === 1 ? getMeasurement(x) : x));\n this.textIndent = attributes.textIndent\n ? getMeasurement(attributes.textIndent, \"0pt\")\n : \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.vAlign = getStringOption(attributes.vAlign, [\n \"top\",\n \"bottom\",\n \"middle\",\n ]);\n this.widows = getInteger({\n data: attributes.widows,\n defaultValue: 0,\n validate: x => x >= 0,\n });\n this.hyphenation = null;\n }\n\n [$toStyle]() {\n const style = toStyle(this, \"hAlign\");\n if (this.marginLeft !== \"\") {\n style.paddingLeft = measureToString(this.marginLeft);\n }\n if (this.marginRight !== \"\") {\n style.paddingight = measureToString(this.marginRight);\n }\n if (this.spaceAbove !== \"\") {\n style.paddingTop = measureToString(this.spaceAbove);\n }\n if (this.spaceBelow !== \"\") {\n style.paddingBottom = measureToString(this.spaceBelow);\n }\n if (this.textIndent !== \"\") {\n style.textIndent = measureToString(this.textIndent);\n fixTextIndent(style);\n }\n\n if (this.lineHeight > 0) {\n style.lineHeight = measureToString(this.lineHeight);\n }\n\n if (this.tabDefault !== \"\") {\n style.tabSize = measureToString(this.tabDefault);\n }\n\n if (this.tabStops.length > 0) {\n // TODO\n }\n\n if (this.hyphenatation) {\n Object.assign(style, this.hyphenatation[$toStyle]());\n }\n\n return style;\n }\n}\n\nclass PasswordEdit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"passwordEdit\", /* hasChildren = */ true);\n this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, [\n \"auto\",\n \"off\",\n \"on\",\n ]);\n this.id = attributes.id || \"\";\n this.passwordChar = attributes.passwordChar || \"*\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.margin = null;\n }\n}\n\nclass Pattern extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"pattern\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\n \"crossHatch\",\n \"crossDiagonal\",\n \"diagonalLeft\",\n \"diagonalRight\",\n \"horizontal\",\n \"vertical\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle](startColor) {\n startColor = startColor ? startColor[$toStyle]() : \"#FFFFFF\";\n const endColor = this.color ? this.color[$toStyle]() : \"#000000\";\n const width = 5;\n const cmd = \"repeating-linear-gradient\";\n const colors = `${startColor},${startColor} ${width}px,${endColor} ${width}px,${endColor} ${\n 2 * width\n }px`;\n switch (this.type) {\n case \"crossHatch\":\n return `${cmd}(to top,${colors}) ${cmd}(to right,${colors})`;\n case \"crossDiagonal\":\n return `${cmd}(45deg,${colors}) ${cmd}(-45deg,${colors})`;\n case \"diagonalLeft\":\n return `${cmd}(45deg,${colors})`;\n case \"diagonalRight\":\n return `${cmd}(-45deg,${colors})`;\n case \"horizontal\":\n return `${cmd}(to top,${colors})`;\n case \"vertical\":\n return `${cmd}(to right,${colors})`;\n }\n\n return \"\";\n }\n}\n\nclass Picture extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"picture\");\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Proto extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"proto\", /* hasChildren = */ true);\n this.appearanceFilter = new XFAObjectArray();\n this.arc = new XFAObjectArray();\n this.area = new XFAObjectArray();\n this.assist = new XFAObjectArray();\n this.barcode = new XFAObjectArray();\n this.bindItems = new XFAObjectArray();\n this.bookend = new XFAObjectArray();\n this.boolean = new XFAObjectArray();\n this.border = new XFAObjectArray();\n this.break = new XFAObjectArray();\n this.breakAfter = new XFAObjectArray();\n this.breakBefore = new XFAObjectArray();\n this.button = new XFAObjectArray();\n this.calculate = new XFAObjectArray();\n this.caption = new XFAObjectArray();\n this.certificate = new XFAObjectArray();\n this.certificates = new XFAObjectArray();\n this.checkButton = new XFAObjectArray();\n this.choiceList = new XFAObjectArray();\n this.color = new XFAObjectArray();\n this.comb = new XFAObjectArray();\n this.connect = new XFAObjectArray();\n this.contentArea = new XFAObjectArray();\n this.corner = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.dateTimeEdit = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.defaultUi = new XFAObjectArray();\n this.desc = new XFAObjectArray();\n this.digestMethod = new XFAObjectArray();\n this.digestMethods = new XFAObjectArray();\n this.draw = new XFAObjectArray();\n this.edge = new XFAObjectArray();\n this.encoding = new XFAObjectArray();\n this.encodings = new XFAObjectArray();\n this.encrypt = new XFAObjectArray();\n this.encryptData = new XFAObjectArray();\n this.encryption = new XFAObjectArray();\n this.encryptionMethod = new XFAObjectArray();\n this.encryptionMethods = new XFAObjectArray();\n this.event = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.exObject = new XFAObjectArray();\n this.exclGroup = new XFAObjectArray();\n this.execute = new XFAObjectArray();\n this.extras = new XFAObjectArray();\n this.field = new XFAObjectArray();\n this.fill = new XFAObjectArray();\n this.filter = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.font = new XFAObjectArray();\n this.format = new XFAObjectArray();\n this.handler = new XFAObjectArray();\n this.hyphenation = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.imageEdit = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.issuers = new XFAObjectArray();\n this.items = new XFAObjectArray();\n this.keep = new XFAObjectArray();\n this.keyUsage = new XFAObjectArray();\n this.line = new XFAObjectArray();\n this.linear = new XFAObjectArray();\n this.lockDocument = new XFAObjectArray();\n this.manifest = new XFAObjectArray();\n this.margin = new XFAObjectArray();\n this.mdp = new XFAObjectArray();\n this.medium = new XFAObjectArray();\n this.message = new XFAObjectArray();\n this.numericEdit = new XFAObjectArray();\n this.occur = new XFAObjectArray();\n this.oid = new XFAObjectArray();\n this.oids = new XFAObjectArray();\n this.overflow = new XFAObjectArray();\n this.pageArea = new XFAObjectArray();\n this.pageSet = new XFAObjectArray();\n this.para = new XFAObjectArray();\n this.passwordEdit = new XFAObjectArray();\n this.pattern = new XFAObjectArray();\n this.picture = new XFAObjectArray();\n this.radial = new XFAObjectArray();\n this.reason = new XFAObjectArray();\n this.reasons = new XFAObjectArray();\n this.rectangle = new XFAObjectArray();\n this.ref = new XFAObjectArray();\n this.script = new XFAObjectArray();\n this.setProperty = new XFAObjectArray();\n this.signData = new XFAObjectArray();\n this.signature = new XFAObjectArray();\n this.signing = new XFAObjectArray();\n this.solid = new XFAObjectArray();\n this.speak = new XFAObjectArray();\n this.stipple = new XFAObjectArray();\n this.subform = new XFAObjectArray();\n this.subformSet = new XFAObjectArray();\n this.subjectDN = new XFAObjectArray();\n this.subjectDNs = new XFAObjectArray();\n this.submit = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.textEdit = new XFAObjectArray();\n this.time = new XFAObjectArray();\n this.timeStamp = new XFAObjectArray();\n this.toolTip = new XFAObjectArray();\n this.traversal = new XFAObjectArray();\n this.traverse = new XFAObjectArray();\n this.ui = new XFAObjectArray();\n this.validate = new XFAObjectArray();\n this.value = new XFAObjectArray();\n this.variables = new XFAObjectArray();\n }\n}\n\nclass Radial extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"radial\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"toEdge\", \"toCenter\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle](startColor) {\n startColor = startColor ? startColor[$toStyle]() : \"#FFFFFF\";\n const endColor = this.color ? this.color[$toStyle]() : \"#000000\";\n const colors =\n this.type === \"toEdge\"\n ? `${startColor},${endColor}`\n : `${endColor},${startColor}`;\n return `radial-gradient(circle at center, ${colors})`;\n }\n}\n\nclass Reason extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"reason\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Reasons extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"reasons\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.reason = new XFAObjectArray();\n }\n}\n\nclass Rectangle extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"rectangle\", /* hasChildren = */ true);\n this.hand = getStringOption(attributes.hand, [\"even\", \"left\", \"right\"]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.corner = new XFAObjectArray(4);\n this.edge = new XFAObjectArray(4);\n this.fill = null;\n }\n\n [$toHTML]() {\n const edge = this.edge.children.length\n ? this.edge.children[0]\n : new Edge({});\n const edgeStyle = edge[$toStyle]();\n const style = Object.create(null);\n if (this.fill && this.fill.presence === \"visible\") {\n Object.assign(style, this.fill[$toStyle]());\n } else {\n style.fill = \"transparent\";\n }\n style.strokeWidth = measureToString(\n edge.presence === \"visible\" ? edge.thickness : 0\n );\n style.stroke = edgeStyle.color;\n\n const corner = this.corner.children.length\n ? this.corner.children[0]\n : new Corner({});\n const cornerStyle = corner[$toStyle]();\n\n const rect = {\n name: \"rect\",\n attributes: {\n xmlns: SVG_NS,\n width: \"100%\",\n height: \"100%\",\n x: 0,\n y: 0,\n rx: cornerStyle.radius,\n ry: cornerStyle.radius,\n style,\n },\n };\n\n const svg = {\n name: \"svg\",\n children: [rect],\n attributes: {\n xmlns: SVG_NS,\n style: {\n overflow: \"visible\",\n },\n width: \"100%\",\n height: \"100%\",\n },\n };\n\n const parent = this[$getParent]()[$getParent]();\n if (hasMargin(parent)) {\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n style: {\n display: \"inline\",\n width: \"100%\",\n height: \"100%\",\n },\n },\n children: [svg],\n });\n }\n\n svg.attributes.style.position = \"absolute\";\n return HTMLResult.success(svg);\n }\n}\n\nclass RefElement extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"ref\");\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Script extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"script\");\n this.binding = attributes.binding || \"\";\n this.contentType = attributes.contentType || \"\";\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.runAt = getStringOption(attributes.runAt, [\n \"client\",\n \"both\",\n \"server\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass SetProperty extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"setProperty\");\n this.connection = attributes.connection || \"\";\n this.ref = attributes.ref || \"\";\n this.target = attributes.target || \"\";\n }\n}\n\nclass SignData extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"signData\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.operation = getStringOption(attributes.operation, [\n \"sign\",\n \"clear\",\n \"verify\",\n ]);\n this.ref = attributes.ref || \"\";\n this.target = attributes.target || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.filter = null;\n this.manifest = null;\n }\n}\n\nclass Signature extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"signature\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"PDF1.3\", \"PDF1.6\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.filter = null;\n this.manifest = null;\n this.margin = null;\n }\n}\n\nclass Signing extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"signing\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.certificate = new XFAObjectArray();\n }\n}\n\nclass Solid extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"solid\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n\n [$toStyle](startColor) {\n return startColor ? startColor[$toStyle]() : \"#FFFFFF\";\n }\n}\n\nclass Speak extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"speak\");\n this.disable = getInteger({\n data: attributes.disable,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.id = attributes.id || \"\";\n this.priority = getStringOption(attributes.priority, [\n \"custom\",\n \"caption\",\n \"name\",\n \"toolTip\",\n ]);\n this.rid = attributes.rid || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Stipple extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"stipple\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.rate = getInteger({\n data: attributes.rate,\n defaultValue: 50,\n validate: x => x >= 0 && x <= 100,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle](bgColor) {\n const alpha = this.rate / 100;\n return Util.makeHexColor(\n Math.round(bgColor.value.r * (1 - alpha) + this.value.r * alpha),\n Math.round(bgColor.value.g * (1 - alpha) + this.value.g * alpha),\n Math.round(bgColor.value.b * (1 - alpha) + this.value.b * alpha)\n );\n }\n}\n\nclass Subform extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"subform\", /* hasChildren = */ true);\n this.access = getStringOption(attributes.access, [\n \"open\",\n \"nonInteractive\",\n \"protected\",\n \"readOnly\",\n ]);\n this.allowMacro = getInteger({\n data: attributes.allowMacro,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.anchorType = getStringOption(attributes.anchorType, [\n \"topLeft\",\n \"bottomCenter\",\n \"bottomLeft\",\n \"bottomRight\",\n \"middleCenter\",\n \"middleLeft\",\n \"middleRight\",\n \"topCenter\",\n \"topRight\",\n ]);\n this.colSpan = getInteger({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: n => n >= 1 || n === -1,\n });\n this.columnWidths = (attributes.columnWidths || \"\")\n .trim()\n .split(/\\s+/)\n .map(x => (x === \"-1\" ? -1 : getMeasurement(x)));\n this.h = attributes.h ? getMeasurement(attributes.h) : \"\";\n this.hAlign = getStringOption(attributes.hAlign, [\n \"left\",\n \"center\",\n \"justify\",\n \"justifyAll\",\n \"radix\",\n \"right\",\n ]);\n this.id = attributes.id || \"\";\n this.layout = getStringOption(attributes.layout, [\n \"position\",\n \"lr-tb\",\n \"rl-row\",\n \"rl-tb\",\n \"row\",\n \"table\",\n \"tb\",\n ]);\n this.locale = attributes.locale || \"\";\n this.maxH = getMeasurement(attributes.maxH, \"0pt\");\n this.maxW = getMeasurement(attributes.maxW, \"0pt\");\n this.mergeMode = getStringOption(attributes.mergeMode, [\n \"consumeData\",\n \"matchTemplate\",\n ]);\n this.minH = getMeasurement(attributes.minH, \"0pt\");\n this.minW = getMeasurement(attributes.minW, \"0pt\");\n this.name = attributes.name || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.restoreState = getStringOption(attributes.restoreState, [\n \"manual\",\n \"auto\",\n ]);\n this.scope = getStringOption(attributes.scope, [\"name\", \"none\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = attributes.w ? getMeasurement(attributes.w) : \"\";\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.assist = null;\n this.bind = null;\n this.bookend = null;\n this.border = null;\n this.break = null;\n this.calculate = null;\n this.desc = null;\n this.extras = null;\n this.keep = null;\n this.margin = null;\n this.occur = null;\n this.overflow = null;\n this.pageSet = null;\n this.para = null;\n this.traversal = null;\n this.validate = null;\n this.variables = null;\n this.area = new XFAObjectArray();\n this.breakAfter = new XFAObjectArray();\n this.breakBefore = new XFAObjectArray();\n this.connect = new XFAObjectArray();\n this.draw = new XFAObjectArray();\n this.event = new XFAObjectArray();\n this.exObject = new XFAObjectArray();\n this.exclGroup = new XFAObjectArray();\n this.field = new XFAObjectArray();\n this.proto = new XFAObjectArray();\n this.setProperty = new XFAObjectArray();\n this.subform = new XFAObjectArray();\n this.subformSet = new XFAObjectArray();\n }\n\n [$getSubformParent]() {\n const parent = this[$getParent]();\n if (parent instanceof SubformSet) {\n return parent[$getSubformParent]();\n }\n return parent;\n }\n\n [$isBindable]() {\n return true;\n }\n\n [$isThereMoreWidth]() {\n return (\n (this.layout.endsWith(\"-tb\") &&\n this[$extra].attempt === 0 &&\n this[$extra].numberInLine > 0) ||\n this[$getParent]()[$isThereMoreWidth]()\n );\n }\n\n *[$getContainedChildren]() {\n // This function is overriden in order to fake that subforms under\n // this set are in fact under parent subform.\n yield* getContainedChildren(this);\n }\n\n [$flushHTML]() {\n return flushHTML(this);\n }\n\n [$addHTML](html, bbox) {\n addHTML(this, html, bbox);\n }\n\n [$getAvailableSpace]() {\n return getAvailableSpace(this);\n }\n\n [$isSplittable]() {\n // We cannot cache the result here because the contentArea\n // can change.\n const parent = this[$getSubformParent]();\n if (!parent[$isSplittable]()) {\n return false;\n }\n\n if (this[$extra]._isSplittable !== undefined) {\n return this[$extra]._isSplittable;\n }\n\n if (this.layout === \"position\" || this.layout.includes(\"row\")) {\n this[$extra]._isSplittable = false;\n return false;\n }\n\n if (this.keep && this.keep.intact !== \"none\") {\n this[$extra]._isSplittable = false;\n return false;\n }\n\n if (\n parent.layout &&\n parent.layout.endsWith(\"-tb\") &&\n parent[$extra].numberInLine !== 0\n ) {\n // If parent can fit in w=100 and there's already an element which takes\n // 90 then we've 10 for this element. Suppose this element has a tb layout\n // and 5 elements have a width of 7 and the 6th has a width of 20:\n // then this element (and all its content) must move on the next line.\n // If this element is splittable then the first 5 children will stay\n // at the end of the line: we don't want that.\n return false;\n }\n\n this[$extra]._isSplittable = true;\n\n return true;\n }\n\n [$toHTML](availableSpace) {\n setTabIndex(this);\n\n if (this.break) {\n // break element is deprecated so plug it on one of its replacement\n // breakBefore or breakAfter.\n if (this.break.after !== \"auto\" || this.break.afterTarget !== \"\") {\n const node = new BreakAfter({\n targetType: this.break.after,\n target: this.break.afterTarget,\n startNew: this.break.startNew.toString(),\n });\n node[$globalData] = this[$globalData];\n this[$appendChild](node);\n this.breakAfter.push(node);\n }\n\n if (this.break.before !== \"auto\" || this.break.beforeTarget !== \"\") {\n const node = new BreakBefore({\n targetType: this.break.before,\n target: this.break.beforeTarget,\n startNew: this.break.startNew.toString(),\n });\n node[$globalData] = this[$globalData];\n this[$appendChild](node);\n this.breakBefore.push(node);\n }\n\n if (this.break.overflowTarget !== \"\") {\n const node = new Overflow({\n target: this.break.overflowTarget,\n leader: this.break.overflowLeader,\n trailer: this.break.overflowTrailer,\n });\n node[$globalData] = this[$globalData];\n this[$appendChild](node);\n this.overflow.push(node);\n }\n\n this[$removeChild](this.break);\n this.break = null;\n }\n\n if (this.presence === \"hidden\" || this.presence === \"inactive\") {\n return HTMLResult.EMPTY;\n }\n\n if (\n this.breakBefore.children.length > 1 ||\n this.breakAfter.children.length > 1\n ) {\n // Specs are always talking about the breakBefore element\n // and it doesn't really make sense to have several ones.\n warn(\n \"XFA - Several breakBefore or breakAfter in subforms: please file a bug.\"\n );\n }\n\n if (this.breakBefore.children.length >= 1) {\n const breakBefore = this.breakBefore.children[0];\n if (handleBreak(breakBefore)) {\n return HTMLResult.breakNode(breakBefore);\n }\n }\n\n if (this[$extra] && this[$extra].afterBreakAfter) {\n return HTMLResult.EMPTY;\n }\n\n // TODO: incomplete.\n fixDimensions(this);\n const children = [];\n const attributes = {\n id: this[$uid],\n class: [],\n };\n\n setAccess(this, attributes.class);\n\n if (!this[$extra]) {\n this[$extra] = Object.create(null);\n }\n\n Object.assign(this[$extra], {\n children,\n line: null,\n attributes,\n attempt: 0,\n numberInLine: 0,\n availableSpace: {\n width: Math.min(this.w || Infinity, availableSpace.width),\n height: Math.min(this.h || Infinity, availableSpace.height),\n },\n width: 0,\n height: 0,\n prevHeight: 0,\n currentWidth: 0,\n });\n\n const root = this[$getTemplateRoot]();\n const savedNoLayoutFailure = root[$extra].noLayoutFailure;\n\n const isSplittable = this[$isSplittable]();\n if (!isSplittable) {\n setFirstUnsplittable(this);\n }\n\n if (!checkDimensions(this, availableSpace)) {\n return HTMLResult.FAILURE;\n }\n\n const filter = new Set([\n \"area\",\n \"draw\",\n \"exclGroup\",\n \"field\",\n \"subform\",\n \"subformSet\",\n ]);\n\n if (this.layout.includes(\"row\")) {\n const columnWidths = this[$getSubformParent]().columnWidths;\n if (Array.isArray(columnWidths) && columnWidths.length > 0) {\n this[$extra].columnWidths = columnWidths;\n this[$extra].currentColumn = 0;\n }\n }\n\n const style = toStyle(\n this,\n \"anchorType\",\n \"dimensions\",\n \"position\",\n \"presence\",\n \"border\",\n \"margin\",\n \"hAlign\"\n );\n const classNames = [\"xfaSubform\"];\n const cl = layoutClass(this);\n if (cl) {\n classNames.push(cl);\n }\n\n attributes.style = style;\n attributes.class = classNames;\n\n if (this.name) {\n attributes.xfaName = this.name;\n }\n\n if (this.overflow) {\n const overflowExtra = this.overflow[$getExtra]();\n if (overflowExtra.addLeader) {\n overflowExtra.addLeader = false;\n handleOverflow(this, overflowExtra.leader, availableSpace);\n }\n }\n\n this[$pushPara]();\n const isLrTb = this.layout === \"lr-tb\" || this.layout === \"rl-tb\";\n const maxRun = isLrTb ? MAX_ATTEMPTS_FOR_LRTB_LAYOUT : 1;\n for (; this[$extra].attempt < maxRun; this[$extra].attempt++) {\n if (isLrTb && this[$extra].attempt === MAX_ATTEMPTS_FOR_LRTB_LAYOUT - 1) {\n // If the layout is lr-tb then having attempt equals to\n // MAX_ATTEMPTS_FOR_LRTB_LAYOUT-1 means that we're trying to layout\n // on the next line so this on is empty.\n this[$extra].numberInLine = 0;\n }\n const result = this[$childrenToHTML]({\n filter,\n include: true,\n });\n if (result.success) {\n break;\n }\n if (result.isBreak()) {\n this[$popPara]();\n return result;\n }\n if (\n isLrTb &&\n this[$extra].attempt === 0 &&\n this[$extra].numberInLine === 0 &&\n !root[$extra].noLayoutFailure\n ) {\n // We're failing to put the first element on the line so no\n // need to test on the next line.\n // The goal is not only to avoid some useless checks but to avoid\n // bugs too: if a descendant managed to put a node and failed\n // on the next one, going to the next step here will imply to\n // visit the descendant again, clear [$extra].children and restart\n // on the failing node, consequently the first node just disappears\n // because it has never been flushed.\n this[$extra].attempt = maxRun;\n break;\n }\n }\n\n this[$popPara]();\n if (!isSplittable) {\n unsetFirstUnsplittable(this);\n }\n root[$extra].noLayoutFailure = savedNoLayoutFailure;\n\n if (this[$extra].attempt === maxRun) {\n if (this.overflow) {\n this[$getTemplateRoot]()[$extra].overflowNode = this.overflow;\n }\n\n if (!isSplittable) {\n // Since a new try will happen in a new container with maybe\n // new dimensions, we invalidate already layed out components.\n delete this[$extra];\n }\n return HTMLResult.FAILURE;\n }\n\n if (this.overflow) {\n const overflowExtra = this.overflow[$getExtra]();\n if (overflowExtra.addTrailer) {\n overflowExtra.addTrailer = false;\n handleOverflow(this, overflowExtra.trailer, availableSpace);\n }\n }\n\n let marginH = 0;\n let marginV = 0;\n if (this.margin) {\n marginH = this.margin.leftInset + this.margin.rightInset;\n marginV = this.margin.topInset + this.margin.bottomInset;\n }\n\n const width = Math.max(this[$extra].width + marginH, this.w || 0);\n const height = Math.max(this[$extra].height + marginV, this.h || 0);\n const bbox = [this.x, this.y, width, height];\n\n if (this.w === \"\") {\n style.width = measureToString(width);\n }\n if (this.h === \"\") {\n style.height = measureToString(height);\n }\n\n if (\n (style.width === \"0px\" || style.height === \"0px\") &&\n children.length === 0\n ) {\n return HTMLResult.EMPTY;\n }\n\n const html = {\n name: \"div\",\n attributes,\n children,\n };\n\n applyAssist(this, attributes);\n\n const result = HTMLResult.success(createWrapper(this, html), bbox);\n\n if (this.breakAfter.children.length >= 1) {\n const breakAfter = this.breakAfter.children[0];\n if (handleBreak(breakAfter)) {\n this[$extra].afterBreakAfter = result;\n return HTMLResult.breakNode(breakAfter);\n }\n }\n\n delete this[$extra];\n\n return result;\n }\n}\n\nclass SubformSet extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"subformSet\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.relation = getStringOption(attributes.relation, [\n \"ordered\",\n \"choice\",\n \"unordered\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.bookend = null;\n this.break = null;\n this.desc = null;\n this.extras = null;\n this.occur = null;\n this.overflow = null;\n this.breakAfter = new XFAObjectArray();\n this.breakBefore = new XFAObjectArray();\n this.subform = new XFAObjectArray();\n this.subformSet = new XFAObjectArray();\n\n // TODO: need to handle break stuff and relation.\n }\n\n *[$getContainedChildren]() {\n // This function is overriden in order to fake that subforms under\n // this set are in fact under parent subform.\n yield* getContainedChildren(this);\n }\n\n [$getSubformParent]() {\n let parent = this[$getParent]();\n while (!(parent instanceof Subform)) {\n parent = parent[$getParent]();\n }\n return parent;\n }\n\n [$isBindable]() {\n return true;\n }\n}\n\nclass SubjectDN extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"subjectDN\");\n this.delimiter = attributes.delimiter || \",\";\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n this[$content] = new Map(\n this[$content].split(this.delimiter).map(kv => {\n kv = kv.split(\"=\", 2);\n kv[0] = kv[0].trim();\n return kv;\n })\n );\n }\n}\n\nclass SubjectDNs extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"subjectDNs\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.subjectDN = new XFAObjectArray();\n }\n}\n\nclass Submit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"submit\", /* hasChildren = */ true);\n this.embedPDF = getInteger({\n data: attributes.embedPDF,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.format = getStringOption(attributes.format, [\n \"xdp\",\n \"formdata\",\n \"pdf\",\n \"urlencoded\",\n \"xfd\",\n \"xml\",\n ]);\n this.id = attributes.id || \"\";\n this.target = attributes.target || \"\";\n this.textEncoding = getKeyword({\n data: attributes.textEncoding\n ? attributes.textEncoding.toLowerCase()\n : \"\",\n defaultValue: \"\",\n validate: k =>\n [\n \"utf-8\",\n \"big-five\",\n \"fontspecific\",\n \"gbk\",\n \"gb-18030\",\n \"gb-2312\",\n \"ksc-5601\",\n \"none\",\n \"shift-jis\",\n \"ucs-2\",\n \"utf-16\",\n ].includes(k) || k.match(/iso-8859-\\d{2}/),\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.xdpContent = attributes.xdpContent || \"\";\n this.encrypt = null;\n this.encryptData = new XFAObjectArray();\n this.signData = new XFAObjectArray();\n }\n}\n\nclass Template extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"template\", /* hasChildren = */ true);\n this.baseProfile = getStringOption(attributes.baseProfile, [\n \"full\",\n \"interactiveForms\",\n ]);\n this.extras = null;\n\n // Spec is unclear:\n // A container element that describes a single subform capable of\n // enclosing other containers.\n // Can we have more than one subform ?\n this.subform = new XFAObjectArray();\n }\n\n [$finalize]() {\n if (this.subform.children.length === 0) {\n warn(\"XFA - No subforms in template node.\");\n }\n if (this.subform.children.length >= 2) {\n warn(\"XFA - Several subforms in template node: please file a bug.\");\n }\n this[$tabIndex] = DEFAULT_TAB_INDEX;\n }\n\n [$isSplittable]() {\n return true;\n }\n\n [$searchNode](expr, container) {\n if (expr.startsWith(\"#\")) {\n // This is an id.\n return [this[$ids].get(expr.slice(1))];\n }\n return searchNode(this, container, expr, true, true);\n }\n\n /**\n * This function is a generator because the conversion into\n * pages is done asynchronously and we want to save the state\n * of the function where we were in the previous iteration.\n */\n *[$toPages]() {\n if (!this.subform.children.length) {\n return HTMLResult.success({\n name: \"div\",\n children: [],\n });\n }\n this[$extra] = {\n overflowNode: null,\n firstUnsplittable: null,\n currentContentArea: null,\n currentPageArea: null,\n noLayoutFailure: false,\n pageNumber: 1,\n pagePosition: \"first\",\n oddOrEven: \"odd\",\n blankOrNotBlank: \"nonBlank\",\n paraStack: [],\n };\n\n const root = this.subform.children[0];\n root.pageSet[$cleanPage]();\n\n const pageAreas = root.pageSet.pageArea.children;\n const mainHtml = {\n name: \"div\",\n children: [],\n };\n\n let pageArea = null;\n let breakBefore = null;\n let breakBeforeTarget = null;\n if (root.breakBefore.children.length >= 1) {\n breakBefore = root.breakBefore.children[0];\n breakBeforeTarget = breakBefore.target;\n } else if (\n root.subform.children.length >= 1 &&\n root.subform.children[0].breakBefore.children.length >= 1\n ) {\n breakBefore = root.subform.children[0].breakBefore.children[0];\n breakBeforeTarget = breakBefore.target;\n } else if (root.break && root.break.beforeTarget) {\n breakBefore = root.break;\n breakBeforeTarget = breakBefore.beforeTarget;\n } else if (\n root.subform.children.length >= 1 &&\n root.subform.children[0].break &&\n root.subform.children[0].break.beforeTarget\n ) {\n breakBefore = root.subform.children[0].break;\n breakBeforeTarget = breakBefore.beforeTarget;\n }\n\n if (breakBefore) {\n const target = this[$searchNode](\n breakBeforeTarget,\n breakBefore[$getParent]()\n );\n if (target instanceof PageArea) {\n pageArea = target;\n // Consume breakBefore.\n breakBefore[$extra] = {};\n }\n }\n\n if (!pageArea) {\n pageArea = pageAreas[0];\n }\n\n pageArea[$extra] = {\n numberOfUse: 1,\n };\n\n const pageAreaParent = pageArea[$getParent]();\n pageAreaParent[$extra] = {\n numberOfUse: 1,\n pageIndex: pageAreaParent.pageArea.children.indexOf(pageArea),\n pageSetIndex: 0,\n };\n\n let targetPageArea;\n let leader = null;\n let trailer = null;\n let hasSomething = true;\n let hasSomethingCounter = 0;\n let startIndex = 0;\n\n while (true) {\n if (!hasSomething) {\n mainHtml.children.pop();\n // Nothing has been added in the previous page\n if (++hasSomethingCounter === MAX_EMPTY_PAGES) {\n warn(\"XFA - Something goes wrong: please file a bug.\");\n return mainHtml;\n }\n } else {\n hasSomethingCounter = 0;\n }\n\n targetPageArea = null;\n this[$extra].currentPageArea = pageArea;\n const page = pageArea[$toHTML]().html;\n mainHtml.children.push(page);\n\n if (leader) {\n this[$extra].noLayoutFailure = true;\n page.children.push(leader[$toHTML](pageArea[$extra].space).html);\n leader = null;\n }\n\n if (trailer) {\n this[$extra].noLayoutFailure = true;\n page.children.push(trailer[$toHTML](pageArea[$extra].space).html);\n trailer = null;\n }\n\n const contentAreas = pageArea.contentArea.children;\n const htmlContentAreas = page.children.filter(node =>\n node.attributes.class.includes(\"xfaContentarea\")\n );\n\n hasSomething = false;\n this[$extra].firstUnsplittable = null;\n this[$extra].noLayoutFailure = false;\n\n const flush = index => {\n const html = root[$flushHTML]();\n if (html) {\n hasSomething =\n hasSomething || (html.children && html.children.length !== 0);\n htmlContentAreas[index].children.push(html);\n }\n };\n\n for (let i = startIndex, ii = contentAreas.length; i < ii; i++) {\n const contentArea = (this[$extra].currentContentArea = contentAreas[i]);\n const space = { width: contentArea.w, height: contentArea.h };\n startIndex = 0;\n\n if (leader) {\n htmlContentAreas[i].children.push(leader[$toHTML](space).html);\n leader = null;\n }\n\n if (trailer) {\n htmlContentAreas[i].children.push(trailer[$toHTML](space).html);\n trailer = null;\n }\n\n const html = root[$toHTML](space);\n if (html.success) {\n if (html.html) {\n hasSomething =\n hasSomething ||\n (html.html.children && html.html.children.length !== 0);\n htmlContentAreas[i].children.push(html.html);\n } else if (!hasSomething && mainHtml.children.length > 1) {\n mainHtml.children.pop();\n }\n return mainHtml;\n }\n\n if (html.isBreak()) {\n const node = html.breakNode;\n flush(i);\n\n if (node.targetType === \"auto\") {\n continue;\n }\n\n if (node.leader) {\n leader = this[$searchNode](node.leader, node[$getParent]());\n leader = leader ? leader[0] : null;\n }\n\n if (node.trailer) {\n trailer = this[$searchNode](node.trailer, node[$getParent]());\n trailer = trailer ? trailer[0] : null;\n }\n\n if (node.targetType === \"pageArea\") {\n targetPageArea = node[$extra].target;\n i = Infinity;\n } else if (!node[$extra].target) {\n // We stay on the same page.\n i = node[$extra].index;\n } else {\n targetPageArea = node[$extra].target;\n startIndex = node[$extra].index + 1;\n i = Infinity;\n }\n\n continue;\n }\n\n if (this[$extra].overflowNode) {\n const node = this[$extra].overflowNode;\n this[$extra].overflowNode = null;\n\n const overflowExtra = node[$getExtra]();\n const target = overflowExtra.target;\n overflowExtra.addLeader = overflowExtra.leader !== null;\n overflowExtra.addTrailer = overflowExtra.trailer !== null;\n\n flush(i);\n\n const currentIndex = i;\n\n i = Infinity;\n if (target instanceof PageArea) {\n // We must stop the contentAreas filling and go to the next page.\n targetPageArea = target;\n } else if (target instanceof ContentArea) {\n const index = contentAreas.findIndex(e => e === target);\n if (index !== -1) {\n if (index > currentIndex) {\n // In the next loop iteration `i` will be incremented, note the\n // `continue` just below, hence we need to subtract one here.\n i = index - 1;\n } else {\n // The targetted contentArea has already been filled\n // so create a new page.\n startIndex = index;\n }\n } else {\n targetPageArea = target[$getParent]();\n startIndex = targetPageArea.contentArea.children.findIndex(\n e => e === target\n );\n }\n }\n continue;\n }\n\n flush(i);\n }\n\n this[$extra].pageNumber += 1;\n if (targetPageArea) {\n if (targetPageArea[$isUsable]()) {\n targetPageArea[$extra].numberOfUse += 1;\n } else {\n targetPageArea = null;\n }\n }\n pageArea = targetPageArea || pageArea[$getNextPage]();\n yield null;\n }\n }\n}\n\nclass Text extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"text\");\n this.id = attributes.id || \"\";\n this.maxChars = getInteger({\n data: attributes.maxChars,\n defaultValue: 0,\n validate: x => x >= 0,\n });\n this.name = attributes.name || \"\";\n this.rid = attributes.rid || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$acceptWhitespace]() {\n return true;\n }\n\n [$onChild](child) {\n if (child[$namespaceId] === NamespaceIds.xhtml.id) {\n this[$content] = child;\n return true;\n }\n warn(`XFA - Invalid content in Text: ${child[$nodeName]}.`);\n return false;\n }\n\n [$onText](str) {\n if (this[$content] instanceof XFAObject) {\n return;\n }\n super[$onText](str);\n }\n\n [$finalize]() {\n if (typeof this[$content] === \"string\") {\n this[$content] = this[$content].replace(/\\r\\n/g, \"\\n\");\n }\n }\n\n [$getExtra]() {\n if (typeof this[$content] === \"string\") {\n return this[$content]\n .split(/[\\u2029\\u2028\\n]/)\n .reduce((acc, line) => {\n if (line) {\n acc.push(line);\n }\n return acc;\n }, [])\n .join(\"\\n\");\n }\n return this[$content][$text]();\n }\n\n [$toHTML](availableSpace) {\n if (typeof this[$content] === \"string\") {\n // \\u2028 is a line separator.\n // \\u2029 is a paragraph separator.\n const html = valueToHtml(this[$content]).html;\n\n if (this[$content].includes(\"\\u2029\")) {\n // We've plain text containing a paragraph separator\n // so convert it into a set of

.\n html.name = \"div\";\n html.children = [];\n this[$content]\n .split(\"\\u2029\")\n .map(para =>\n // Convert a paragraph into a set of (for lines)\n // separated by
.\n para.split(/[\\u2028\\n]/).reduce((acc, line) => {\n acc.push(\n {\n name: \"span\",\n value: line,\n },\n {\n name: \"br\",\n }\n );\n return acc;\n }, [])\n )\n .forEach(lines => {\n html.children.push({\n name: \"p\",\n children: lines,\n });\n });\n } else if (/[\\u2028\\n]/.test(this[$content])) {\n html.name = \"div\";\n html.children = [];\n // Convert plain text into a set of (for lines)\n // separated by
.\n this[$content].split(/[\\u2028\\n]/).forEach(line => {\n html.children.push(\n {\n name: \"span\",\n value: line,\n },\n {\n name: \"br\",\n }\n );\n });\n }\n\n return HTMLResult.success(html);\n }\n\n return this[$content][$toHTML](availableSpace);\n }\n}\n\nclass TextEdit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"textEdit\", /* hasChildren = */ true);\n this.allowRichText = getInteger({\n data: attributes.allowRichText,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, [\n \"auto\",\n \"off\",\n \"on\",\n ]);\n this.id = attributes.id || \"\";\n this.multiLine = getInteger({\n data: attributes.multiLine,\n defaultValue: \"\",\n validate: x => x === 0 || x === 1,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.vScrollPolicy = getStringOption(attributes.vScrollPolicy, [\n \"auto\",\n \"off\",\n \"on\",\n ]);\n this.border = null;\n this.comb = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n const style = toStyle(this, \"border\", \"font\", \"margin\");\n let html;\n const field = this[$getParent]()[$getParent]();\n if (this.multiLine === \"\") {\n this.multiLine = field instanceof Draw ? 1 : 0;\n }\n if (this.multiLine === 1) {\n html = {\n name: \"textarea\",\n attributes: {\n dataId: (field[$data] && field[$data][$uid]) || field[$uid],\n fieldId: field[$uid],\n class: [\"xfaTextfield\"],\n style,\n \"aria-label\": ariaLabel(field),\n },\n };\n } else {\n html = {\n name: \"input\",\n attributes: {\n type: \"text\",\n dataId: (field[$data] && field[$data][$uid]) || field[$uid],\n fieldId: field[$uid],\n class: [\"xfaTextfield\"],\n style,\n \"aria-label\": ariaLabel(field),\n },\n };\n }\n\n return HTMLResult.success({\n name: \"label\",\n attributes: {\n class: [\"xfaLabel\"],\n },\n children: [html],\n });\n }\n}\n\nclass Time extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"time\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n // TODO: need to handle the string as a time and not as a date.\n const date = this[$content].trim();\n this[$content] = date ? new Date(date) : null;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(this[$content] ? this[$content].toString() : \"\");\n }\n}\n\nclass TimeStamp extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"timeStamp\");\n this.id = attributes.id || \"\";\n this.server = attributes.server || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass ToolTip extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"toolTip\");\n this.id = attributes.id || \"\";\n this.rid = attributes.rid || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Traversal extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"traversal\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.traverse = new XFAObjectArray();\n }\n}\n\nclass Traverse extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"traverse\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.operation = getStringOption(attributes.operation, [\n \"next\",\n \"back\",\n \"down\",\n \"first\",\n \"left\",\n \"right\",\n \"up\",\n ]);\n this.ref = attributes.ref || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.script = null;\n }\n\n get name() {\n // SOM expression: see page 94\n return this.operation;\n }\n\n [$isTransparent]() {\n return false;\n }\n}\n\nclass Ui extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"ui\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.picture = null;\n\n // One-of properties\n this.barcode = null;\n this.button = null;\n this.checkButton = null;\n this.choiceList = null;\n this.dateTimeEdit = null;\n this.defaultUi = null;\n this.imageEdit = null;\n this.numericEdit = null;\n this.passwordEdit = null;\n this.signature = null;\n this.textEdit = null;\n }\n\n [$getExtra]() {\n if (this[$extra] === undefined) {\n for (const name of Object.getOwnPropertyNames(this)) {\n if (name === \"extras\" || name === \"picture\") {\n continue;\n }\n const obj = this[name];\n if (!(obj instanceof XFAObject)) {\n continue;\n }\n\n this[$extra] = obj;\n return obj;\n }\n this[$extra] = null;\n }\n return this[$extra];\n }\n\n [$toHTML](availableSpace) {\n // TODO: picture.\n const obj = this[$getExtra]();\n if (obj) {\n return obj[$toHTML](availableSpace);\n }\n return HTMLResult.EMPTY;\n }\n}\n\nclass Validate extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"validate\", /* hasChildren = */ true);\n this.formatTest = getStringOption(attributes.formatTest, [\n \"warning\",\n \"disabled\",\n \"error\",\n ]);\n this.id = attributes.id || \"\";\n this.nullTest = getStringOption(attributes.nullTest, [\n \"disabled\",\n \"error\",\n \"warning\",\n ]);\n this.scriptTest = getStringOption(attributes.scriptTest, [\n \"error\",\n \"disabled\",\n \"warning\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.message = null;\n this.picture = null;\n this.script = null;\n }\n}\n\nclass Value extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"value\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.override = getInteger({\n data: attributes.override,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n\n // One-of properties\n this.arc = null;\n this.boolean = null;\n this.date = null;\n this.dateTime = null;\n this.decimal = null;\n this.exData = null;\n this.float = null;\n this.image = null;\n this.integer = null;\n this.line = null;\n this.rectangle = null;\n this.text = null;\n this.time = null;\n }\n\n [$setValue](value) {\n const parent = this[$getParent]();\n if (parent instanceof Field) {\n if (parent.ui && parent.ui.imageEdit) {\n if (!this.image) {\n this.image = new Image({});\n this[$appendChild](this.image);\n }\n this.image[$content] = value[$content];\n return;\n }\n }\n\n const valueName = value[$nodeName];\n if (this[valueName] !== null) {\n this[valueName][$content] = value[$content];\n return;\n }\n\n // Reset all the properties.\n for (const name of Object.getOwnPropertyNames(this)) {\n const obj = this[name];\n if (obj instanceof XFAObject) {\n this[name] = null;\n this[$removeChild](obj);\n }\n }\n\n this[value[$nodeName]] = value;\n this[$appendChild](value);\n }\n\n [$text]() {\n if (this.exData) {\n if (typeof this.exData[$content] === \"string\") {\n return this.exData[$content].trim();\n }\n return this.exData[$content][$text]().trim();\n }\n for (const name of Object.getOwnPropertyNames(this)) {\n if (name === \"image\") {\n continue;\n }\n const obj = this[name];\n if (obj instanceof XFAObject) {\n return (obj[$content] || \"\").toString().trim();\n }\n }\n return null;\n }\n\n [$toHTML](availableSpace) {\n for (const name of Object.getOwnPropertyNames(this)) {\n const obj = this[name];\n if (!(obj instanceof XFAObject)) {\n continue;\n }\n\n return obj[$toHTML](availableSpace);\n }\n\n return HTMLResult.EMPTY;\n }\n}\n\nclass Variables extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"variables\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.boolean = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.manifest = new XFAObjectArray();\n this.script = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.time = new XFAObjectArray();\n }\n\n [$isTransparent]() {\n return true;\n }\n}\n\nclass TemplateNamespace {\n static [$buildXFAObject](name, attributes) {\n if (TemplateNamespace.hasOwnProperty(name)) {\n const node = TemplateNamespace[name](attributes);\n node[$setSetAttributes](attributes);\n return node;\n }\n return undefined;\n }\n\n static appearanceFilter(attrs) {\n return new AppearanceFilter(attrs);\n }\n\n static arc(attrs) {\n return new Arc(attrs);\n }\n\n static area(attrs) {\n return new Area(attrs);\n }\n\n static assist(attrs) {\n return new Assist(attrs);\n }\n\n static barcode(attrs) {\n return new Barcode(attrs);\n }\n\n static bind(attrs) {\n return new Bind(attrs);\n }\n\n static bindItems(attrs) {\n return new BindItems(attrs);\n }\n\n static bookend(attrs) {\n return new Bookend(attrs);\n }\n\n static boolean(attrs) {\n return new BooleanElement(attrs);\n }\n\n static border(attrs) {\n return new Border(attrs);\n }\n\n static break(attrs) {\n return new Break(attrs);\n }\n\n static breakAfter(attrs) {\n return new BreakAfter(attrs);\n }\n\n static breakBefore(attrs) {\n return new BreakBefore(attrs);\n }\n\n static button(attrs) {\n return new Button(attrs);\n }\n\n static calculate(attrs) {\n return new Calculate(attrs);\n }\n\n static caption(attrs) {\n return new Caption(attrs);\n }\n\n static certificate(attrs) {\n return new Certificate(attrs);\n }\n\n static certificates(attrs) {\n return new Certificates(attrs);\n }\n\n static checkButton(attrs) {\n return new CheckButton(attrs);\n }\n\n static choiceList(attrs) {\n return new ChoiceList(attrs);\n }\n\n static color(attrs) {\n return new Color(attrs);\n }\n\n static comb(attrs) {\n return new Comb(attrs);\n }\n\n static connect(attrs) {\n return new Connect(attrs);\n }\n\n static contentArea(attrs) {\n return new ContentArea(attrs);\n }\n\n static corner(attrs) {\n return new Corner(attrs);\n }\n\n static date(attrs) {\n return new DateElement(attrs);\n }\n\n static dateTime(attrs) {\n return new DateTime(attrs);\n }\n\n static dateTimeEdit(attrs) {\n return new DateTimeEdit(attrs);\n }\n\n static decimal(attrs) {\n return new Decimal(attrs);\n }\n\n static defaultUi(attrs) {\n return new DefaultUi(attrs);\n }\n\n static desc(attrs) {\n return new Desc(attrs);\n }\n\n static digestMethod(attrs) {\n return new DigestMethod(attrs);\n }\n\n static digestMethods(attrs) {\n return new DigestMethods(attrs);\n }\n\n static draw(attrs) {\n return new Draw(attrs);\n }\n\n static edge(attrs) {\n return new Edge(attrs);\n }\n\n static encoding(attrs) {\n return new Encoding(attrs);\n }\n\n static encodings(attrs) {\n return new Encodings(attrs);\n }\n\n static encrypt(attrs) {\n return new Encrypt(attrs);\n }\n\n static encryptData(attrs) {\n return new EncryptData(attrs);\n }\n\n static encryption(attrs) {\n return new Encryption(attrs);\n }\n\n static encryptionMethod(attrs) {\n return new EncryptionMethod(attrs);\n }\n\n static encryptionMethods(attrs) {\n return new EncryptionMethods(attrs);\n }\n\n static event(attrs) {\n return new Event(attrs);\n }\n\n static exData(attrs) {\n return new ExData(attrs);\n }\n\n static exObject(attrs) {\n return new ExObject(attrs);\n }\n\n static exclGroup(attrs) {\n return new ExclGroup(attrs);\n }\n\n static execute(attrs) {\n return new Execute(attrs);\n }\n\n static extras(attrs) {\n return new Extras(attrs);\n }\n\n static field(attrs) {\n return new Field(attrs);\n }\n\n static fill(attrs) {\n return new Fill(attrs);\n }\n\n static filter(attrs) {\n return new Filter(attrs);\n }\n\n static float(attrs) {\n return new Float(attrs);\n }\n\n static font(attrs) {\n return new Font(attrs);\n }\n\n static format(attrs) {\n return new Format(attrs);\n }\n\n static handler(attrs) {\n return new Handler(attrs);\n }\n\n static hyphenation(attrs) {\n return new Hyphenation(attrs);\n }\n\n static image(attrs) {\n return new Image(attrs);\n }\n\n static imageEdit(attrs) {\n return new ImageEdit(attrs);\n }\n\n static integer(attrs) {\n return new Integer(attrs);\n }\n\n static issuers(attrs) {\n return new Issuers(attrs);\n }\n\n static items(attrs) {\n return new Items(attrs);\n }\n\n static keep(attrs) {\n return new Keep(attrs);\n }\n\n static keyUsage(attrs) {\n return new KeyUsage(attrs);\n }\n\n static line(attrs) {\n return new Line(attrs);\n }\n\n static linear(attrs) {\n return new Linear(attrs);\n }\n\n static lockDocument(attrs) {\n return new LockDocument(attrs);\n }\n\n static manifest(attrs) {\n return new Manifest(attrs);\n }\n\n static margin(attrs) {\n return new Margin(attrs);\n }\n\n static mdp(attrs) {\n return new Mdp(attrs);\n }\n\n static medium(attrs) {\n return new Medium(attrs);\n }\n\n static message(attrs) {\n return new Message(attrs);\n }\n\n static numericEdit(attrs) {\n return new NumericEdit(attrs);\n }\n\n static occur(attrs) {\n return new Occur(attrs);\n }\n\n static oid(attrs) {\n return new Oid(attrs);\n }\n\n static oids(attrs) {\n return new Oids(attrs);\n }\n\n static overflow(attrs) {\n return new Overflow(attrs);\n }\n\n static pageArea(attrs) {\n return new PageArea(attrs);\n }\n\n static pageSet(attrs) {\n return new PageSet(attrs);\n }\n\n static para(attrs) {\n return new Para(attrs);\n }\n\n static passwordEdit(attrs) {\n return new PasswordEdit(attrs);\n }\n\n static pattern(attrs) {\n return new Pattern(attrs);\n }\n\n static picture(attrs) {\n return new Picture(attrs);\n }\n\n static proto(attrs) {\n return new Proto(attrs);\n }\n\n static radial(attrs) {\n return new Radial(attrs);\n }\n\n static reason(attrs) {\n return new Reason(attrs);\n }\n\n static reasons(attrs) {\n return new Reasons(attrs);\n }\n\n static rectangle(attrs) {\n return new Rectangle(attrs);\n }\n\n static ref(attrs) {\n return new RefElement(attrs);\n }\n\n static script(attrs) {\n return new Script(attrs);\n }\n\n static setProperty(attrs) {\n return new SetProperty(attrs);\n }\n\n static signData(attrs) {\n return new SignData(attrs);\n }\n\n static signature(attrs) {\n return new Signature(attrs);\n }\n\n static signing(attrs) {\n return new Signing(attrs);\n }\n\n static solid(attrs) {\n return new Solid(attrs);\n }\n\n static speak(attrs) {\n return new Speak(attrs);\n }\n\n static stipple(attrs) {\n return new Stipple(attrs);\n }\n\n static subform(attrs) {\n return new Subform(attrs);\n }\n\n static subformSet(attrs) {\n return new SubformSet(attrs);\n }\n\n static subjectDN(attrs) {\n return new SubjectDN(attrs);\n }\n\n static subjectDNs(attrs) {\n return new SubjectDNs(attrs);\n }\n\n static submit(attrs) {\n return new Submit(attrs);\n }\n\n static template(attrs) {\n return new Template(attrs);\n }\n\n static text(attrs) {\n return new Text(attrs);\n }\n\n static textEdit(attrs) {\n return new TextEdit(attrs);\n }\n\n static time(attrs) {\n return new Time(attrs);\n }\n\n static timeStamp(attrs) {\n return new TimeStamp(attrs);\n }\n\n static toolTip(attrs) {\n return new ToolTip(attrs);\n }\n\n static traversal(attrs) {\n return new Traversal(attrs);\n }\n\n static traverse(attrs) {\n return new Traverse(attrs);\n }\n\n static ui(attrs) {\n return new Ui(attrs);\n }\n\n static validate(attrs) {\n return new Validate(attrs);\n }\n\n static value(attrs) {\n return new Value(attrs);\n }\n\n static variables(attrs) {\n return new Variables(attrs);\n }\n}\n\nexport {\n BindItems,\n Field,\n Items,\n SetProperty,\n Template,\n TemplateNamespace,\n Text,\n Value,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $extra,\n $flushHTML,\n $getSubformParent,\n $getTemplateRoot,\n $isSplittable,\n $isThereMoreWidth,\n} from \"./xfa_object.js\";\nimport { measureToString } from \"./html_utils.js\";\n\n// Subform and ExclGroup have a layout so they share these functions.\n\n/**\n * How layout works ?\n *\n * A container has an initial space (with a width and a height) to fit in,\n * which means that once all the children have been added then\n * the total width/height must be lower than the given ones in\n * the initial space.\n * So if the container has known dimensions and these ones are ok with the\n * space then continue else we return HTMLResult.FAILURE: it's up to the\n * parent to deal with this failure (e.g. if parent layout is lr-tb and\n * we fail to add a child at end of line (lr) then we try to add it on the\n * next line).\n * And then we run through the children, each child gets its initial space\n * in calling its parent $getAvailableSpace method\n * (see _filteredChildrenGenerator and $childrenToHTML in xfa_object.js)\n * then we try to layout child in its space. If everything is ok then we add\n * the result to its parent through $addHTML which will recompute the available\n * space in parent according to its layout property else we return\n * HTMLResult.Failure.\n * Before a failure some children may have been layed out: they've been saved in\n * [$extra].children and [$extra] has properties generator and failingNode\n * in order to save the state where we were before a failure.\n * This [$extra].children property is useful when a container has to be splited.\n * So if a container is unbreakable, we must delete its [$extra] property before\n * returning.\n */\n\nfunction createLine(node, children) {\n return {\n name: \"div\",\n attributes: {\n class: [node.layout === \"lr-tb\" ? \"xfaLr\" : \"xfaRl\"],\n },\n children,\n };\n}\n\nfunction flushHTML(node) {\n if (!node[$extra]) {\n return null;\n }\n\n const attributes = node[$extra].attributes;\n const html = {\n name: \"div\",\n attributes,\n children: node[$extra].children,\n };\n\n if (node[$extra].failingNode) {\n const htmlFromFailing = node[$extra].failingNode[$flushHTML]();\n if (htmlFromFailing) {\n if (node.layout.endsWith(\"-tb\")) {\n html.children.push(createLine(node, [htmlFromFailing]));\n } else {\n html.children.push(htmlFromFailing);\n }\n }\n }\n\n if (html.children.length === 0) {\n return null;\n }\n\n return html;\n}\n\nfunction addHTML(node, html, bbox) {\n const extra = node[$extra];\n const availableSpace = extra.availableSpace;\n\n const [x, y, w, h] = bbox;\n switch (node.layout) {\n case \"position\": {\n extra.width = Math.max(extra.width, x + w);\n extra.height = Math.max(extra.height, y + h);\n extra.children.push(html);\n break;\n }\n case \"lr-tb\":\n case \"rl-tb\":\n if (!extra.line || extra.attempt === 1) {\n extra.line = createLine(node, []);\n extra.children.push(extra.line);\n extra.numberInLine = 0;\n }\n\n extra.numberInLine += 1;\n extra.line.children.push(html);\n\n if (extra.attempt === 0) {\n // Add the element on the line\n extra.currentWidth += w;\n extra.height = Math.max(extra.height, extra.prevHeight + h);\n } else {\n extra.currentWidth = w;\n extra.prevHeight = extra.height;\n extra.height += h;\n\n // The element has been added on a new line so switch to line mode now.\n extra.attempt = 0;\n }\n extra.width = Math.max(extra.width, extra.currentWidth);\n break;\n case \"rl-row\":\n case \"row\": {\n extra.children.push(html);\n extra.width += w;\n extra.height = Math.max(extra.height, h);\n const height = measureToString(extra.height);\n for (const child of extra.children) {\n child.attributes.style.height = height;\n }\n break;\n }\n case \"table\": {\n extra.width = Math.min(availableSpace.width, Math.max(extra.width, w));\n extra.height += h;\n extra.children.push(html);\n break;\n }\n case \"tb\": {\n // Even if the subform can possibly take all the available width,\n // we must compute the final width as it is in order to be able\n // for example to center the subform within its parent.\n extra.width = Math.min(availableSpace.width, Math.max(extra.width, w));\n extra.height += h;\n extra.children.push(html);\n break;\n }\n }\n}\n\nfunction getAvailableSpace(node) {\n const availableSpace = node[$extra].availableSpace;\n const marginV = node.margin\n ? node.margin.topInset + node.margin.bottomInset\n : 0;\n const marginH = node.margin\n ? node.margin.leftInset + node.margin.rightInset\n : 0;\n\n switch (node.layout) {\n case \"lr-tb\":\n case \"rl-tb\":\n if (node[$extra].attempt === 0) {\n return {\n width: availableSpace.width - marginH - node[$extra].currentWidth,\n height: availableSpace.height - marginV - node[$extra].prevHeight,\n };\n }\n return {\n width: availableSpace.width - marginH,\n height: availableSpace.height - marginV - node[$extra].height,\n };\n case \"rl-row\":\n case \"row\":\n const width = node[$extra].columnWidths\n .slice(node[$extra].currentColumn)\n .reduce((a, x) => a + x);\n return { width, height: availableSpace.height - marginH };\n case \"table\":\n case \"tb\":\n return {\n width: availableSpace.width - marginH,\n height: availableSpace.height - marginV - node[$extra].height,\n };\n case \"position\":\n default:\n return availableSpace;\n }\n}\n\nfunction getTransformedBBox(node) {\n // Take into account rotation and anchor to get the real bounding box.\n let w = node.w === \"\" ? NaN : node.w;\n let h = node.h === \"\" ? NaN : node.h;\n let [centerX, centerY] = [0, 0];\n switch (node.anchorType || \"\") {\n case \"bottomCenter\":\n [centerX, centerY] = [w / 2, h];\n break;\n case \"bottomLeft\":\n [centerX, centerY] = [0, h];\n break;\n case \"bottomRight\":\n [centerX, centerY] = [w, h];\n break;\n case \"middleCenter\":\n [centerX, centerY] = [w / 2, h / 2];\n break;\n case \"middleLeft\":\n [centerX, centerY] = [0, h / 2];\n break;\n case \"middleRight\":\n [centerX, centerY] = [w, h / 2];\n break;\n case \"topCenter\":\n [centerX, centerY] = [w / 2, 0];\n break;\n case \"topRight\":\n [centerX, centerY] = [w, 0];\n break;\n }\n\n let x, y;\n switch (node.rotate || 0) {\n case 0:\n [x, y] = [-centerX, -centerY];\n break;\n case 90:\n [x, y] = [-centerY, centerX];\n [w, h] = [h, -w];\n break;\n case 180:\n [x, y] = [centerX, centerY];\n [w, h] = [-w, -h];\n break;\n case 270:\n [x, y] = [centerY, -centerX];\n [w, h] = [-h, w];\n break;\n }\n\n return [\n node.x + x + Math.min(0, w),\n node.y + y + Math.min(0, h),\n Math.abs(w),\n Math.abs(h),\n ];\n}\n\n/**\n * Returning true means that the node will be layed out\n * else the layout will go to its next step (changing of line\n * in case of lr-tb or changing content area...).\n */\nfunction checkDimensions(node, space) {\n if (node[$getTemplateRoot]()[$extra].firstUnsplittable === null) {\n return true;\n }\n\n if (node.w === 0 || node.h === 0) {\n return true;\n }\n\n const ERROR = 2;\n const parent = node[$getSubformParent]();\n const attempt = (parent[$extra] && parent[$extra].attempt) || 0;\n\n const [, y, w, h] = getTransformedBBox(node);\n switch (parent.layout) {\n case \"lr-tb\":\n case \"rl-tb\":\n if (attempt === 0) {\n // Try to put an element in the line.\n\n if (!node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n if (node.h !== \"\" && Math.round(h - space.height) > ERROR) {\n // Not enough height.\n return false;\n }\n\n if (node.w !== \"\") {\n if (Math.round(w - space.width) <= ERROR) {\n return true;\n }\n if (parent[$extra].numberInLine === 0) {\n return space.height > ERROR;\n }\n\n return false;\n }\n\n return space.width > ERROR;\n }\n\n // No layout failure.\n\n // Put the element on the line but we can fail\n // and then in the second step (next line) we'll accept.\n if (node.w !== \"\") {\n return Math.round(w - space.width) <= ERROR;\n }\n\n return space.width > ERROR;\n }\n\n // Second attempt: try to put the element on the next line.\n\n if (node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n // We cannot fail.\n return true;\n }\n\n if (node.h !== \"\" && Math.round(h - space.height) > ERROR) {\n return false;\n }\n\n if (node.w === \"\" || Math.round(w - space.width) <= ERROR) {\n return space.height > ERROR;\n }\n\n if (parent[$isThereMoreWidth]()) {\n return false;\n }\n\n return space.height > ERROR;\n case \"table\":\n case \"tb\":\n if (node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n return true;\n }\n\n // If the node has a height then check if it's fine with available height.\n // If the node is breakable then we can return true.\n if (node.h !== \"\" && !node[$isSplittable]()) {\n return Math.round(h - space.height) <= ERROR;\n }\n // Else wait and see: this node will be layed out itself\n // in the provided space and maybe a children won't fit.\n\n if (node.w === \"\" || Math.round(w - space.width) <= ERROR) {\n return space.height > ERROR;\n }\n\n if (parent[$isThereMoreWidth]()) {\n return false;\n }\n\n return space.height > ERROR;\n case \"position\":\n if (node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n return true;\n }\n\n if (node.h === \"\" || Math.round(h + y - space.height) <= ERROR) {\n return true;\n }\n\n const area = node[$getTemplateRoot]()[$extra].currentContentArea;\n return h + y > area.h;\n case \"rl-row\":\n case \"row\":\n if (node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n return true;\n }\n\n if (node.h !== \"\") {\n return Math.round(h - space.height) <= ERROR;\n }\n return true;\n default:\n // No layout, so accept everything.\n return true;\n }\n}\n\nexport { addHTML, checkDimensions, flushHTML, getAvailableSpace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $content,\n $extra,\n $getParent,\n $getSubformParent,\n $getTemplateRoot,\n $globalData,\n $nodeName,\n $pushGlyphs,\n $text,\n $toStyle,\n XFAObject,\n} from \"./xfa_object.js\";\nimport { createValidAbsoluteUrl, warn } from \"../../shared/util.js\";\nimport { getMeasurement, stripQuotes } from \"./utils.js\";\nimport { selectFont } from \"./fonts.js\";\nimport { TextMeasure } from \"./text.js\";\n\nfunction measureToString(m) {\n if (typeof m === \"string\") {\n return \"0px\";\n }\n\n return Number.isInteger(m) ? `${m}px` : `${m.toFixed(2)}px`;\n}\n\nconst converters = {\n anchorType(node, style) {\n const parent = node[$getSubformParent]();\n if (!parent || (parent.layout && parent.layout !== \"position\")) {\n // anchorType is only used in a positioned layout.\n return;\n }\n\n if (!(\"transform\" in style)) {\n style.transform = \"\";\n }\n switch (node.anchorType) {\n case \"bottomCenter\":\n style.transform += \"translate(-50%, -100%)\";\n break;\n case \"bottomLeft\":\n style.transform += \"translate(0,-100%)\";\n break;\n case \"bottomRight\":\n style.transform += \"translate(-100%,-100%)\";\n break;\n case \"middleCenter\":\n style.transform += \"translate(-50%,-50%)\";\n break;\n case \"middleLeft\":\n style.transform += \"translate(0,-50%)\";\n break;\n case \"middleRight\":\n style.transform += \"translate(-100%,-50%)\";\n break;\n case \"topCenter\":\n style.transform += \"translate(-50%,0)\";\n break;\n case \"topRight\":\n style.transform += \"translate(-100%,0)\";\n break;\n }\n },\n dimensions(node, style) {\n const parent = node[$getSubformParent]();\n let width = node.w;\n const height = node.h;\n if (parent.layout && parent.layout.includes(\"row\")) {\n const extra = parent[$extra];\n const colSpan = node.colSpan;\n let w;\n if (colSpan === -1) {\n w = extra.columnWidths\n .slice(extra.currentColumn)\n .reduce((a, x) => a + x, 0);\n extra.currentColumn = 0;\n } else {\n w = extra.columnWidths\n .slice(extra.currentColumn, extra.currentColumn + colSpan)\n .reduce((a, x) => a + x, 0);\n extra.currentColumn =\n (extra.currentColumn + node.colSpan) % extra.columnWidths.length;\n }\n\n if (!isNaN(w)) {\n width = node.w = w;\n }\n }\n\n if (width !== \"\") {\n style.width = measureToString(width);\n } else {\n style.width = \"auto\";\n }\n\n if (height !== \"\") {\n style.height = measureToString(height);\n } else {\n style.height = \"auto\";\n }\n },\n position(node, style) {\n const parent = node[$getSubformParent]();\n if (parent && parent.layout && parent.layout !== \"position\") {\n // IRL, we've some x/y in tb layout.\n // Specs say x/y is only used in positioned layout.\n return;\n }\n\n style.position = \"absolute\";\n style.left = measureToString(node.x);\n style.top = measureToString(node.y);\n },\n rotate(node, style) {\n if (node.rotate) {\n if (!(\"transform\" in style)) {\n style.transform = \"\";\n }\n style.transform += `rotate(-${node.rotate}deg)`;\n style.transformOrigin = \"top left\";\n }\n },\n presence(node, style) {\n switch (node.presence) {\n case \"invisible\":\n style.visibility = \"hidden\";\n break;\n case \"hidden\":\n case \"inactive\":\n style.display = \"none\";\n break;\n }\n },\n hAlign(node, style) {\n if (node[$nodeName] === \"para\") {\n switch (node.hAlign) {\n case \"justifyAll\":\n style.textAlign = \"justify-all\";\n break;\n case \"radix\":\n // TODO: implement this correctly !\n style.textAlign = \"left\";\n break;\n default:\n style.textAlign = node.hAlign;\n }\n } else {\n switch (node.hAlign) {\n case \"left\":\n style.alignSelf = \"start\";\n break;\n case \"center\":\n style.alignSelf = \"center\";\n break;\n case \"right\":\n style.alignSelf = \"end\";\n break;\n }\n }\n },\n margin(node, style) {\n if (node.margin) {\n style.margin = node.margin[$toStyle]().margin;\n }\n },\n};\n\nfunction setMinMaxDimensions(node, style) {\n const parent = node[$getSubformParent]();\n if (parent.layout === \"position\") {\n if (node.minW > 0) {\n style.minWidth = measureToString(node.minW);\n }\n if (node.maxW > 0) {\n style.maxWidth = measureToString(node.maxW);\n }\n if (node.minH > 0) {\n style.minHeight = measureToString(node.minH);\n }\n if (node.maxH > 0) {\n style.maxHeight = measureToString(node.maxH);\n }\n }\n}\n\nfunction layoutText(text, xfaFont, margin, lineHeight, fontFinder, width) {\n const measure = new TextMeasure(xfaFont, margin, lineHeight, fontFinder);\n if (typeof text === \"string\") {\n measure.addString(text);\n } else {\n text[$pushGlyphs](measure);\n }\n\n return measure.compute(width);\n}\n\nfunction layoutNode(node, availableSpace) {\n let height = null;\n let width = null;\n let isBroken = false;\n\n if ((!node.w || !node.h) && node.value) {\n let marginH = 0;\n let marginV = 0;\n if (node.margin) {\n marginH = node.margin.leftInset + node.margin.rightInset;\n marginV = node.margin.topInset + node.margin.bottomInset;\n }\n\n let lineHeight = null;\n let margin = null;\n if (node.para) {\n margin = Object.create(null);\n lineHeight = node.para.lineHeight === \"\" ? null : node.para.lineHeight;\n margin.top = node.para.spaceAbove === \"\" ? 0 : node.para.spaceAbove;\n margin.bottom = node.para.spaceBelow === \"\" ? 0 : node.para.spaceBelow;\n margin.left = node.para.marginLeft === \"\" ? 0 : node.para.marginLeft;\n margin.right = node.para.marginRight === \"\" ? 0 : node.para.marginRight;\n }\n\n let font = node.font;\n if (!font) {\n const root = node[$getTemplateRoot]();\n let parent = node[$getParent]();\n while (parent && parent !== root) {\n if (parent.font) {\n font = parent.font;\n break;\n }\n parent = parent[$getParent]();\n }\n }\n\n const maxWidth = (!node.w ? availableSpace.width : node.w) - marginH;\n const fontFinder = node[$globalData].fontFinder;\n if (\n node.value.exData &&\n node.value.exData[$content] &&\n node.value.exData.contentType === \"text/html\"\n ) {\n const res = layoutText(\n node.value.exData[$content],\n font,\n margin,\n lineHeight,\n fontFinder,\n maxWidth\n );\n width = res.width;\n height = res.height;\n isBroken = res.isBroken;\n } else {\n const text = node.value[$text]();\n if (text) {\n const res = layoutText(\n text,\n font,\n margin,\n lineHeight,\n fontFinder,\n maxWidth\n );\n width = res.width;\n height = res.height;\n isBroken = res.isBroken;\n }\n }\n\n if (width !== null && !node.w) {\n width += marginH;\n }\n\n if (height !== null && !node.h) {\n height += marginV;\n }\n }\n return { w: width, h: height, isBroken };\n}\n\nfunction computeBbox(node, html, availableSpace) {\n let bbox;\n if (node.w !== \"\" && node.h !== \"\") {\n bbox = [node.x, node.y, node.w, node.h];\n } else {\n if (!availableSpace) {\n return null;\n }\n let width = node.w;\n if (width === \"\") {\n if (node.maxW === 0) {\n const parent = node[$getSubformParent]();\n if (parent.layout === \"position\" && parent.w !== \"\") {\n width = 0;\n } else {\n width = node.minW;\n }\n } else {\n width = Math.min(node.maxW, availableSpace.width);\n }\n html.attributes.style.width = measureToString(width);\n }\n\n let height = node.h;\n if (height === \"\") {\n if (node.maxH === 0) {\n const parent = node[$getSubformParent]();\n if (parent.layout === \"position\" && parent.h !== \"\") {\n height = 0;\n } else {\n height = node.minH;\n }\n } else {\n height = Math.min(node.maxH, availableSpace.height);\n }\n html.attributes.style.height = measureToString(height);\n }\n\n bbox = [node.x, node.y, width, height];\n }\n return bbox;\n}\n\nfunction fixDimensions(node) {\n const parent = node[$getSubformParent]();\n if (parent.layout && parent.layout.includes(\"row\")) {\n const extra = parent[$extra];\n const colSpan = node.colSpan;\n let width;\n if (colSpan === -1) {\n width = extra.columnWidths\n .slice(extra.currentColumn)\n .reduce((a, w) => a + w, 0);\n } else {\n width = extra.columnWidths\n .slice(extra.currentColumn, extra.currentColumn + colSpan)\n .reduce((a, w) => a + w, 0);\n }\n if (!isNaN(width)) {\n node.w = width;\n }\n }\n\n if (parent.layout && parent.layout !== \"position\") {\n // Useless in this context.\n node.x = node.y = 0;\n }\n\n if (node.layout === \"table\") {\n if (node.w === \"\" && Array.isArray(node.columnWidths)) {\n node.w = node.columnWidths.reduce((a, x) => a + x, 0);\n }\n }\n}\n\nfunction layoutClass(node) {\n switch (node.layout) {\n case \"position\":\n return \"xfaPosition\";\n case \"lr-tb\":\n return \"xfaLrTb\";\n case \"rl-row\":\n return \"xfaRlRow\";\n case \"rl-tb\":\n return \"xfaRlTb\";\n case \"row\":\n return \"xfaRow\";\n case \"table\":\n return \"xfaTable\";\n case \"tb\":\n return \"xfaTb\";\n default:\n return \"xfaPosition\";\n }\n}\n\nfunction toStyle(node, ...names) {\n const style = Object.create(null);\n for (const name of names) {\n const value = node[name];\n if (value === null) {\n continue;\n }\n if (converters.hasOwnProperty(name)) {\n converters[name](node, style);\n continue;\n }\n\n if (value instanceof XFAObject) {\n const newStyle = value[$toStyle]();\n if (newStyle) {\n Object.assign(style, newStyle);\n } else {\n warn(`(DEBUG) - XFA - style for ${name} not implemented yet`);\n }\n }\n }\n return style;\n}\n\nfunction createWrapper(node, html) {\n const { attributes } = html;\n const { style } = attributes;\n\n const wrapper = {\n name: \"div\",\n attributes: {\n class: [\"xfaWrapper\"],\n style: Object.create(null),\n },\n children: [],\n };\n\n attributes.class.push(\"xfaWrapped\");\n\n if (node.border) {\n const { widths, insets } = node.border[$extra];\n let width, height;\n let top = insets[0];\n let left = insets[3];\n const insetsH = insets[0] + insets[2];\n const insetsW = insets[1] + insets[3];\n switch (node.border.hand) {\n case \"even\":\n top -= widths[0] / 2;\n left -= widths[3] / 2;\n width = `calc(100% + ${(widths[1] + widths[3]) / 2 - insetsW}px)`;\n height = `calc(100% + ${(widths[0] + widths[2]) / 2 - insetsH}px)`;\n break;\n case \"left\":\n top -= widths[0];\n left -= widths[3];\n width = `calc(100% + ${widths[1] + widths[3] - insetsW}px)`;\n height = `calc(100% + ${widths[0] + widths[2] - insetsH}px)`;\n break;\n case \"right\":\n width = insetsW ? `calc(100% - ${insetsW}px)` : \"100%\";\n height = insetsH ? `calc(100% - ${insetsH}px)` : \"100%\";\n break;\n }\n const classNames = [\"xfaBorder\"];\n if (isPrintOnly(node.border)) {\n classNames.push(\"xfaPrintOnly\");\n }\n\n const border = {\n name: \"div\",\n attributes: {\n class: classNames,\n style: {\n top: `${top}px`,\n left: `${left}px`,\n width,\n height,\n },\n },\n children: [],\n };\n\n for (const key of [\n \"border\",\n \"borderWidth\",\n \"borderColor\",\n \"borderRadius\",\n \"borderStyle\",\n ]) {\n if (style[key] !== undefined) {\n border.attributes.style[key] = style[key];\n delete style[key];\n }\n }\n wrapper.children.push(border, html);\n } else {\n wrapper.children.push(html);\n }\n\n for (const key of [\n \"background\",\n \"backgroundClip\",\n \"top\",\n \"left\",\n \"width\",\n \"height\",\n \"minWidth\",\n \"minHeight\",\n \"maxWidth\",\n \"maxHeight\",\n \"transform\",\n \"transformOrigin\",\n \"visibility\",\n ]) {\n if (style[key] !== undefined) {\n wrapper.attributes.style[key] = style[key];\n delete style[key];\n }\n }\n\n if (style.position === \"absolute\") {\n wrapper.attributes.style.position = \"absolute\";\n } else {\n wrapper.attributes.style.position = \"relative\";\n }\n delete style.position;\n\n if (style.alignSelf) {\n wrapper.attributes.style.alignSelf = style.alignSelf;\n delete style.alignSelf;\n }\n\n return wrapper;\n}\n\nfunction fixTextIndent(styles) {\n const indent = getMeasurement(styles.textIndent, \"0px\");\n if (indent >= 0) {\n return;\n }\n\n // If indent is negative then it's a hanging indent.\n const align = styles.textAlign === \"right\" ? \"right\" : \"left\";\n const name = \"padding\" + (align === \"left\" ? \"Left\" : \"Right\");\n const padding = getMeasurement(styles[name], \"0px\");\n styles[name] = `${padding - indent}px`;\n}\n\nfunction setAccess(node, classNames) {\n switch (node.access) {\n case \"nonInteractive\":\n classNames.push(\"xfaNonInteractive\");\n break;\n case \"readOnly\":\n classNames.push(\"xfaReadOnly\");\n break;\n case \"protected\":\n classNames.push(\"xfaDisabled\");\n break;\n }\n}\n\nfunction isPrintOnly(node) {\n return (\n node.relevant.length > 0 &&\n !node.relevant[0].excluded &&\n node.relevant[0].viewname === \"print\"\n );\n}\n\nfunction getCurrentPara(node) {\n const stack = node[$getTemplateRoot]()[$extra].paraStack;\n return stack.length ? stack[stack.length - 1] : null;\n}\n\nfunction setPara(node, nodeStyle, value) {\n if (value.attributes.class && value.attributes.class.includes(\"xfaRich\")) {\n if (nodeStyle) {\n if (node.h === \"\") {\n nodeStyle.height = \"auto\";\n }\n if (node.w === \"\") {\n nodeStyle.width = \"auto\";\n }\n }\n\n const para = getCurrentPara(node);\n if (para) {\n // By definition exData are external data so para\n // has no effect on it.\n const valueStyle = value.attributes.style;\n valueStyle.display = \"flex\";\n valueStyle.flexDirection = \"column\";\n switch (para.vAlign) {\n case \"top\":\n valueStyle.justifyContent = \"start\";\n break;\n case \"bottom\":\n valueStyle.justifyContent = \"end\";\n break;\n case \"middle\":\n valueStyle.justifyContent = \"center\";\n break;\n }\n\n const paraStyle = para[$toStyle]();\n for (const [key, val] of Object.entries(paraStyle)) {\n if (!(key in valueStyle)) {\n valueStyle[key] = val;\n }\n }\n }\n }\n}\n\nfunction setFontFamily(xfaFont, node, fontFinder, style) {\n if (!fontFinder) {\n // The font cannot be found in the pdf so use the default one.\n delete style.fontFamily;\n return;\n }\n\n const name = stripQuotes(xfaFont.typeface);\n style.fontFamily = `\"${name}\"`;\n\n const typeface = fontFinder.find(name);\n if (typeface) {\n const { fontFamily } = typeface.regular.cssFontInfo;\n if (fontFamily !== name) {\n style.fontFamily = `\"${fontFamily}\"`;\n }\n\n const para = getCurrentPara(node);\n if (para && para.lineHeight !== \"\") {\n return;\n }\n\n if (style.lineHeight) {\n // Already something so don't overwrite.\n return;\n }\n\n const pdfFont = selectFont(xfaFont, typeface);\n if (pdfFont) {\n style.lineHeight = Math.max(1.2, pdfFont.lineHeight);\n }\n }\n}\n\nfunction fixURL(str) {\n const absoluteUrl = createValidAbsoluteUrl(str, /* baseUrl = */ null, {\n addDefaultProtocol: true,\n tryConvertEncoding: true,\n });\n return absoluteUrl ? absoluteUrl.href : null;\n}\n\nexport {\n computeBbox,\n createWrapper,\n fixDimensions,\n fixTextIndent,\n fixURL,\n isPrintOnly,\n layoutClass,\n layoutNode,\n measureToString,\n setAccess,\n setFontFamily,\n setMinMaxDimensions,\n setPara,\n toStyle,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $globalData } from \"./xfa_object.js\";\nimport { stripQuotes } from \"./utils.js\";\nimport { warn } from \"../../shared/util.js\";\n\nclass FontFinder {\n constructor(pdfFonts) {\n this.fonts = new Map();\n this.cache = new Map();\n this.warned = new Set();\n this.defaultFont = null;\n this.add(pdfFonts);\n }\n\n add(pdfFonts, reallyMissingFonts = null) {\n for (const pdfFont of pdfFonts) {\n this.addPdfFont(pdfFont);\n }\n for (const pdfFont of this.fonts.values()) {\n if (!pdfFont.regular) {\n pdfFont.regular = pdfFont.italic || pdfFont.bold || pdfFont.bolditalic;\n }\n }\n\n if (!reallyMissingFonts || reallyMissingFonts.size === 0) {\n return;\n }\n const myriad = this.fonts.get(\"PdfJS-Fallback-PdfJS-XFA\");\n for (const missing of reallyMissingFonts) {\n this.fonts.set(missing, myriad);\n }\n }\n\n addPdfFont(pdfFont) {\n const cssFontInfo = pdfFont.cssFontInfo;\n const name = cssFontInfo.fontFamily;\n let font = this.fonts.get(name);\n if (!font) {\n font = Object.create(null);\n this.fonts.set(name, font);\n if (!this.defaultFont) {\n this.defaultFont = font;\n }\n }\n let property = \"\";\n const fontWeight = parseFloat(cssFontInfo.fontWeight);\n if (parseFloat(cssFontInfo.italicAngle) !== 0) {\n property = fontWeight >= 700 ? \"bolditalic\" : \"italic\";\n } else if (fontWeight >= 700) {\n property = \"bold\";\n }\n\n if (!property) {\n if (\n pdfFont.name.includes(\"Bold\") ||\n (pdfFont.psName && pdfFont.psName.includes(\"Bold\"))\n ) {\n property = \"bold\";\n }\n if (\n pdfFont.name.includes(\"Italic\") ||\n pdfFont.name.endsWith(\"It\") ||\n (pdfFont.psName &&\n (pdfFont.psName.includes(\"Italic\") || pdfFont.psName.endsWith(\"It\")))\n ) {\n property += \"italic\";\n }\n }\n\n if (!property) {\n property = \"regular\";\n }\n\n font[property] = pdfFont;\n }\n\n getDefault() {\n return this.defaultFont;\n }\n\n find(fontName, mustWarn = true) {\n let font = this.fonts.get(fontName) || this.cache.get(fontName);\n if (font) {\n return font;\n }\n\n const pattern = /,|-|_| |bolditalic|bold|italic|regular|it/gi;\n let name = fontName.replace(pattern, \"\");\n font = this.fonts.get(name);\n if (font) {\n this.cache.set(fontName, font);\n return font;\n }\n name = name.toLowerCase();\n\n const maybe = [];\n for (const [family, pdfFont] of this.fonts.entries()) {\n if (family.replace(pattern, \"\").toLowerCase().startsWith(name)) {\n maybe.push(pdfFont);\n }\n }\n\n if (maybe.length === 0) {\n for (const [, pdfFont] of this.fonts.entries()) {\n if (\n pdfFont.regular.name &&\n pdfFont.regular.name\n .replace(pattern, \"\")\n .toLowerCase()\n .startsWith(name)\n ) {\n maybe.push(pdfFont);\n }\n }\n }\n\n if (maybe.length === 0) {\n name = name.replace(/psmt|mt/gi, \"\");\n for (const [family, pdfFont] of this.fonts.entries()) {\n if (family.replace(pattern, \"\").toLowerCase().startsWith(name)) {\n maybe.push(pdfFont);\n }\n }\n }\n\n if (maybe.length === 0) {\n for (const pdfFont of this.fonts.values()) {\n if (\n pdfFont.regular.name &&\n pdfFont.regular.name\n .replace(pattern, \"\")\n .toLowerCase()\n .startsWith(name)\n ) {\n maybe.push(pdfFont);\n }\n }\n }\n\n if (maybe.length >= 1) {\n if (maybe.length !== 1 && mustWarn) {\n warn(`XFA - Too many choices to guess the correct font: ${fontName}`);\n }\n this.cache.set(fontName, maybe[0]);\n return maybe[0];\n }\n\n if (mustWarn && !this.warned.has(fontName)) {\n this.warned.add(fontName);\n warn(`XFA - Cannot find the font: ${fontName}`);\n }\n return null;\n }\n}\n\nfunction selectFont(xfaFont, typeface) {\n if (xfaFont.posture === \"italic\") {\n if (xfaFont.weight === \"bold\") {\n return typeface.bolditalic;\n }\n return typeface.italic;\n } else if (xfaFont.weight === \"bold\") {\n return typeface.bold;\n }\n\n return typeface.regular;\n}\n\nfunction getMetrics(xfaFont, real = false) {\n let pdfFont = null;\n if (xfaFont) {\n const name = stripQuotes(xfaFont.typeface);\n const typeface = xfaFont[$globalData].fontFinder.find(name);\n pdfFont = selectFont(xfaFont, typeface);\n }\n\n if (!pdfFont) {\n return {\n lineHeight: 12,\n lineGap: 2,\n lineNoGap: 10,\n };\n }\n\n const size = xfaFont.size || 10;\n const lineHeight = pdfFont.lineHeight\n ? Math.max(real ? 0 : 1.2, pdfFont.lineHeight)\n : 1.2;\n const lineGap = pdfFont.lineGap === undefined ? 0.2 : pdfFont.lineGap;\n return {\n lineHeight: lineHeight * size,\n lineGap: lineGap * size,\n lineNoGap: Math.max(1, lineHeight - lineGap) * size,\n };\n}\n\nexport { FontFinder, getMetrics, selectFont };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { selectFont } from \"./fonts.js\";\n\nconst WIDTH_FACTOR = 1.02;\n\nclass FontInfo {\n constructor(xfaFont, margin, lineHeight, fontFinder) {\n this.lineHeight = lineHeight;\n this.paraMargin = margin || {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n };\n\n if (!xfaFont) {\n [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder);\n return;\n }\n\n this.xfaFont = {\n typeface: xfaFont.typeface,\n posture: xfaFont.posture,\n weight: xfaFont.weight,\n size: xfaFont.size,\n letterSpacing: xfaFont.letterSpacing,\n };\n const typeface = fontFinder.find(xfaFont.typeface);\n if (!typeface) {\n [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder);\n return;\n }\n\n this.pdfFont = selectFont(xfaFont, typeface);\n\n if (!this.pdfFont) {\n [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder);\n }\n }\n\n defaultFont(fontFinder) {\n // TODO: Add a default font based on Liberation.\n const font =\n fontFinder.find(\"Helvetica\", false) ||\n fontFinder.find(\"Myriad Pro\", false) ||\n fontFinder.find(\"Arial\", false) ||\n fontFinder.getDefault();\n if (font && font.regular) {\n const pdfFont = font.regular;\n const info = pdfFont.cssFontInfo;\n const xfaFont = {\n typeface: info.fontFamily,\n posture: \"normal\",\n weight: \"normal\",\n size: 10,\n letterSpacing: 0,\n };\n return [pdfFont, xfaFont];\n }\n\n const xfaFont = {\n typeface: \"Courier\",\n posture: \"normal\",\n weight: \"normal\",\n size: 10,\n letterSpacing: 0,\n };\n return [null, xfaFont];\n }\n}\n\nclass FontSelector {\n constructor(\n defaultXfaFont,\n defaultParaMargin,\n defaultLineHeight,\n fontFinder\n ) {\n this.fontFinder = fontFinder;\n this.stack = [\n new FontInfo(\n defaultXfaFont,\n defaultParaMargin,\n defaultLineHeight,\n fontFinder\n ),\n ];\n }\n\n pushData(xfaFont, margin, lineHeight) {\n const lastFont = this.stack[this.stack.length - 1];\n for (const name of [\n \"typeface\",\n \"posture\",\n \"weight\",\n \"size\",\n \"letterSpacing\",\n ]) {\n if (!xfaFont[name]) {\n xfaFont[name] = lastFont.xfaFont[name];\n }\n }\n\n for (const name of [\"top\", \"bottom\", \"left\", \"right\"]) {\n if (isNaN(margin[name])) {\n margin[name] = lastFont.paraMargin[name];\n }\n }\n\n const fontInfo = new FontInfo(\n xfaFont,\n margin,\n lineHeight || lastFont.lineHeight,\n this.fontFinder\n );\n if (!fontInfo.pdfFont) {\n fontInfo.pdfFont = lastFont.pdfFont;\n }\n\n this.stack.push(fontInfo);\n }\n\n popFont() {\n this.stack.pop();\n }\n\n topFont() {\n return this.stack[this.stack.length - 1];\n }\n}\n\n/**\n * Compute a text area dimensions based on font metrics.\n */\nclass TextMeasure {\n constructor(defaultXfaFont, defaultParaMargin, defaultLineHeight, fonts) {\n this.glyphs = [];\n this.fontSelector = new FontSelector(\n defaultXfaFont,\n defaultParaMargin,\n defaultLineHeight,\n fonts\n );\n this.extraHeight = 0;\n }\n\n pushData(xfaFont, margin, lineHeight) {\n this.fontSelector.pushData(xfaFont, margin, lineHeight);\n }\n\n popFont(xfaFont) {\n return this.fontSelector.popFont();\n }\n\n addPara() {\n const lastFont = this.fontSelector.topFont();\n this.extraHeight += lastFont.paraMargin.top + lastFont.paraMargin.bottom;\n }\n\n addString(str) {\n if (!str) {\n return;\n }\n\n const lastFont = this.fontSelector.topFont();\n const fontSize = lastFont.xfaFont.size;\n if (lastFont.pdfFont) {\n const letterSpacing = lastFont.xfaFont.letterSpacing;\n const pdfFont = lastFont.pdfFont;\n const fontLineHeight = pdfFont.lineHeight || 1.2;\n const lineHeight =\n lastFont.lineHeight || Math.max(1.2, fontLineHeight) * fontSize;\n const lineGap = pdfFont.lineGap === undefined ? 0.2 : pdfFont.lineGap;\n const noGap = fontLineHeight - lineGap;\n const firstLineHeight = Math.max(1, noGap) * fontSize;\n const scale = fontSize / 1000;\n const fallbackWidth =\n pdfFont.defaultWidth || pdfFont.charsToGlyphs(\" \")[0].width;\n\n for (const line of str.split(/[\\u2029\\n]/)) {\n const encodedLine = pdfFont.encodeString(line).join(\"\");\n const glyphs = pdfFont.charsToGlyphs(encodedLine);\n\n for (const glyph of glyphs) {\n const width = glyph.width || fallbackWidth;\n this.glyphs.push([\n width * scale + letterSpacing,\n lineHeight,\n firstLineHeight,\n glyph.unicode,\n false,\n ]);\n }\n\n this.glyphs.push([0, 0, 0, \"\\n\", true]);\n }\n this.glyphs.pop();\n return;\n }\n\n // When we have no font in the pdf, just use the font size as default width.\n for (const line of str.split(/[\\u2029\\n]/)) {\n for (const char of line.split(\"\")) {\n this.glyphs.push([fontSize, 1.2 * fontSize, fontSize, char, false]);\n }\n\n this.glyphs.push([0, 0, 0, \"\\n\", true]);\n }\n this.glyphs.pop();\n }\n\n compute(maxWidth) {\n let lastSpacePos = -1,\n lastSpaceWidth = 0,\n width = 0,\n height = 0,\n currentLineWidth = 0,\n currentLineHeight = 0;\n let isBroken = false;\n let isFirstLine = true;\n\n for (let i = 0, ii = this.glyphs.length; i < ii; i++) {\n const [glyphWidth, lineHeight, firstLineHeight, char, isEOL] =\n this.glyphs[i];\n const isSpace = char === \" \";\n const glyphHeight = isFirstLine ? firstLineHeight : lineHeight;\n if (isEOL) {\n width = Math.max(width, currentLineWidth);\n currentLineWidth = 0;\n height += currentLineHeight;\n currentLineHeight = glyphHeight;\n lastSpacePos = -1;\n lastSpaceWidth = 0;\n isFirstLine = false;\n continue;\n }\n\n if (isSpace) {\n if (currentLineWidth + glyphWidth > maxWidth) {\n // We can break here but the space is not taken into account.\n width = Math.max(width, currentLineWidth);\n currentLineWidth = 0;\n height += currentLineHeight;\n currentLineHeight = glyphHeight;\n lastSpacePos = -1;\n lastSpaceWidth = 0;\n isBroken = true;\n isFirstLine = false;\n } else {\n currentLineHeight = Math.max(glyphHeight, currentLineHeight);\n lastSpaceWidth = currentLineWidth;\n currentLineWidth += glyphWidth;\n lastSpacePos = i;\n }\n continue;\n }\n\n if (currentLineWidth + glyphWidth > maxWidth) {\n // We must break to the last white position (if available)\n height += currentLineHeight;\n currentLineHeight = glyphHeight;\n if (lastSpacePos !== -1) {\n i = lastSpacePos;\n width = Math.max(width, lastSpaceWidth);\n currentLineWidth = 0;\n lastSpacePos = -1;\n lastSpaceWidth = 0;\n } else {\n // Just break in the middle of the word\n width = Math.max(width, currentLineWidth);\n currentLineWidth = glyphWidth;\n }\n isBroken = true;\n isFirstLine = false;\n\n continue;\n }\n\n currentLineWidth += glyphWidth;\n currentLineHeight = Math.max(glyphHeight, currentLineHeight);\n }\n\n width = Math.max(width, currentLineWidth);\n height += currentLineHeight + this.extraHeight;\n\n return { width: WIDTH_FACTOR * width, height, isBroken };\n }\n}\n\nexport { TextMeasure };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $getAttributes,\n $getChildren,\n $nodeName,\n $setValue,\n $toString,\n $uid,\n} from \"./xfa_object.js\";\n\nclass DataHandler {\n constructor(root, data) {\n this.data = data;\n this.dataset = root.datasets || null;\n }\n\n serialize(storage) {\n const stack = [[-1, this.data[$getChildren]()]];\n\n while (stack.length > 0) {\n const last = stack[stack.length - 1];\n const [i, children] = last;\n if (i + 1 === children.length) {\n stack.pop();\n continue;\n }\n\n const child = children[++last[0]];\n const storageEntry = storage.get(child[$uid]);\n if (storageEntry) {\n child[$setValue](storageEntry);\n } else {\n const attributes = child[$getAttributes]();\n for (const value of attributes.values()) {\n const entry = storage.get(value[$uid]);\n if (entry) {\n value[$setValue](entry);\n break;\n }\n }\n }\n\n const nodes = child[$getChildren]();\n if (nodes.length > 0) {\n stack.push([-1, nodes]);\n }\n }\n\n const buf = [\n ``,\n ];\n if (this.dataset) {\n // Dump nodes other than data: they can contains for example\n // some data for choice lists.\n for (const child of this.dataset[$getChildren]()) {\n if (child[$nodeName] !== \"data\") {\n child[$toString](buf);\n }\n }\n }\n this.data[$toString](buf);\n buf.push(\"\");\n\n return buf.join(\"\");\n }\n}\n\nexport { DataHandler };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $acceptWhitespace,\n $clean,\n $content,\n $finalize,\n $globalData,\n $isCDATAXml,\n $nsAttributes,\n $onChild,\n $onText,\n $setId,\n} from \"./xfa_object.js\";\nimport { XMLParserBase, XMLParserErrorCode } from \"../xml_parser.js\";\nimport { Builder } from \"./builder.js\";\nimport { warn } from \"../../shared/util.js\";\n\nclass XFAParser extends XMLParserBase {\n constructor(rootNameSpace = null, richText = false) {\n super();\n this._builder = new Builder(rootNameSpace);\n this._stack = [];\n this._globalData = {\n usedTypefaces: new Set(),\n };\n this._ids = new Map();\n this._current = this._builder.buildRoot(this._ids);\n this._errorCode = XMLParserErrorCode.NoError;\n this._whiteRegex = /^\\s+$/;\n this._nbsps = /\\xa0+/g;\n this._richText = richText;\n }\n\n parse(data) {\n this.parseXml(data);\n\n if (this._errorCode !== XMLParserErrorCode.NoError) {\n return undefined;\n }\n\n this._current[$finalize]();\n\n return this._current.element;\n }\n\n onText(text) {\n // Normally by definition a   is unbreakable\n // but in real life Acrobat can break strings on  .\n text = text.replace(this._nbsps, match => match.slice(1) + \" \");\n if (this._richText || this._current[$acceptWhitespace]()) {\n this._current[$onText](text, this._richText);\n return;\n }\n\n if (this._whiteRegex.test(text)) {\n return;\n }\n this._current[$onText](text.trim());\n }\n\n onCdata(text) {\n this._current[$onText](text);\n }\n\n _mkAttributes(attributes, tagName) {\n // Transform attributes into an object and get out\n // namespaces information.\n let namespace = null;\n let prefixes = null;\n const attributeObj = Object.create({});\n for (const { name, value } of attributes) {\n if (name === \"xmlns\") {\n if (!namespace) {\n namespace = value;\n } else {\n warn(`XFA - multiple namespace definition in <${tagName}>`);\n }\n } else if (name.startsWith(\"xmlns:\")) {\n const prefix = name.substring(\"xmlns:\".length);\n if (!prefixes) {\n prefixes = [];\n }\n prefixes.push({ prefix, value });\n } else {\n const i = name.indexOf(\":\");\n if (i === -1) {\n attributeObj[name] = value;\n } else {\n // Attributes can have their own namespace.\n // For example in data, we can have \n let nsAttrs = attributeObj[$nsAttributes];\n if (!nsAttrs) {\n nsAttrs = attributeObj[$nsAttributes] = Object.create(null);\n }\n const [ns, attrName] = [name.slice(0, i), name.slice(i + 1)];\n let attrs = nsAttrs[ns];\n if (!attrs) {\n attrs = nsAttrs[ns] = Object.create(null);\n }\n attrs[attrName] = value;\n }\n }\n }\n\n return [namespace, prefixes, attributeObj];\n }\n\n _getNameAndPrefix(name, nsAgnostic) {\n const i = name.indexOf(\":\");\n if (i === -1) {\n return [name, null];\n }\n return [name.substring(i + 1), nsAgnostic ? \"\" : name.substring(0, i)];\n }\n\n onBeginElement(tagName, attributes, isEmpty) {\n const [namespace, prefixes, attributesObj] = this._mkAttributes(\n attributes,\n tagName\n );\n const [name, nsPrefix] = this._getNameAndPrefix(\n tagName,\n this._builder.isNsAgnostic()\n );\n const node = this._builder.build({\n nsPrefix,\n name,\n attributes: attributesObj,\n namespace,\n prefixes,\n });\n node[$globalData] = this._globalData;\n\n if (isEmpty) {\n // No children: just push the node into its parent.\n node[$finalize]();\n if (this._current[$onChild](node)) {\n node[$setId](this._ids);\n }\n node[$clean](this._builder);\n return;\n }\n\n this._stack.push(this._current);\n this._current = node;\n }\n\n onEndElement(name) {\n const node = this._current;\n if (node[$isCDATAXml]() && typeof node[$content] === \"string\") {\n const parser = new XFAParser();\n parser._globalData = this._globalData;\n const root = parser.parse(node[$content]);\n node[$content] = null;\n node[$onChild](root);\n }\n\n node[$finalize]();\n this._current = this._stack.pop();\n if (this._current[$onChild](node)) {\n node[$setId](this._ids);\n }\n node[$clean](this._builder);\n }\n\n onError(code) {\n this._errorCode = code;\n }\n}\n\nexport { XFAParser };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n $cleanup,\n $finalize,\n $ids,\n $isNsAgnostic,\n $nsAttributes,\n $onChild,\n $resolvePrototypes,\n $root,\n XFAObject,\n} from \"./xfa_object.js\";\nimport { NamespaceSetUp } from \"./setup.js\";\nimport { Template } from \"./template.js\";\nimport { UnknownNamespace } from \"./unknown.js\";\nimport { warn } from \"../../shared/util.js\";\n\nclass Root extends XFAObject {\n constructor(ids) {\n super(-1, \"root\", Object.create(null));\n this.element = null;\n this[$ids] = ids;\n }\n\n [$onChild](child) {\n this.element = child;\n return true;\n }\n\n [$finalize]() {\n super[$finalize]();\n if (this.element.template instanceof Template) {\n // Set the root element in $ids using a symbol in order\n // to avoid conflict with real IDs.\n this[$ids].set($root, this.element);\n\n this.element.template[$resolvePrototypes](this[$ids]);\n this.element.template[$ids] = this[$ids];\n }\n }\n}\n\nclass Empty extends XFAObject {\n constructor() {\n super(-1, \"\", Object.create(null));\n }\n\n [$onChild](_) {\n return false;\n }\n}\n\nclass Builder {\n constructor(rootNameSpace = null) {\n this._namespaceStack = [];\n this._nsAgnosticLevel = 0;\n\n // Each prefix has its own stack\n this._namespacePrefixes = new Map();\n this._namespaces = new Map();\n this._nextNsId = Math.max(\n ...Object.values(NamespaceIds).map(({ id }) => id)\n );\n this._currentNamespace =\n rootNameSpace || new UnknownNamespace(++this._nextNsId);\n }\n\n buildRoot(ids) {\n return new Root(ids);\n }\n\n build({ nsPrefix, name, attributes, namespace, prefixes }) {\n const hasNamespaceDef = namespace !== null;\n if (hasNamespaceDef) {\n // Define the current namespace to use.\n this._namespaceStack.push(this._currentNamespace);\n this._currentNamespace = this._searchNamespace(namespace);\n }\n\n if (prefixes) {\n // The xml node may have namespace prefix definitions\n this._addNamespacePrefix(prefixes);\n }\n\n if (attributes.hasOwnProperty($nsAttributes)) {\n // Only support xfa-data namespace.\n const dataTemplate = NamespaceSetUp.datasets;\n const nsAttrs = attributes[$nsAttributes];\n let xfaAttrs = null;\n for (const [ns, attrs] of Object.entries(nsAttrs)) {\n const nsToUse = this._getNamespaceToUse(ns);\n if (nsToUse === dataTemplate) {\n xfaAttrs = { xfa: attrs };\n break;\n }\n }\n if (xfaAttrs) {\n attributes[$nsAttributes] = xfaAttrs;\n } else {\n delete attributes[$nsAttributes];\n }\n }\n\n const namespaceToUse = this._getNamespaceToUse(nsPrefix);\n const node =\n (namespaceToUse && namespaceToUse[$buildXFAObject](name, attributes)) ||\n new Empty();\n\n if (node[$isNsAgnostic]()) {\n this._nsAgnosticLevel++;\n }\n\n // In case the node has some namespace things,\n // we must pop the different stacks.\n if (hasNamespaceDef || prefixes || node[$isNsAgnostic]()) {\n node[$cleanup] = {\n hasNamespace: hasNamespaceDef,\n prefixes,\n nsAgnostic: node[$isNsAgnostic](),\n };\n }\n\n return node;\n }\n\n isNsAgnostic() {\n return this._nsAgnosticLevel > 0;\n }\n\n _searchNamespace(nsName) {\n let ns = this._namespaces.get(nsName);\n if (ns) {\n return ns;\n }\n for (const [name, { check }] of Object.entries(NamespaceIds)) {\n if (check(nsName)) {\n ns = NamespaceSetUp[name];\n if (ns) {\n this._namespaces.set(nsName, ns);\n return ns;\n }\n // The namespace is known but not handled.\n break;\n }\n }\n\n ns = new UnknownNamespace(++this._nextNsId);\n this._namespaces.set(nsName, ns);\n return ns;\n }\n\n _addNamespacePrefix(prefixes) {\n for (const { prefix, value } of prefixes) {\n const namespace = this._searchNamespace(value);\n let prefixStack = this._namespacePrefixes.get(prefix);\n if (!prefixStack) {\n prefixStack = [];\n this._namespacePrefixes.set(prefix, prefixStack);\n }\n prefixStack.push(namespace);\n }\n }\n\n _getNamespaceToUse(prefix) {\n if (!prefix) {\n return this._currentNamespace;\n }\n const prefixStack = this._namespacePrefixes.get(prefix);\n if (prefixStack && prefixStack.length > 0) {\n return prefixStack[prefixStack.length - 1];\n }\n\n warn(`Unknown namespace prefix: ${prefix}.`);\n return null;\n }\n\n clean(data) {\n const { hasNamespace, prefixes, nsAgnostic } = data;\n if (hasNamespace) {\n this._currentNamespace = this._namespaceStack.pop();\n }\n if (prefixes) {\n prefixes.forEach(({ prefix }) => {\n this._namespacePrefixes.get(prefix).pop();\n });\n }\n if (nsAgnostic) {\n this._nsAgnosticLevel--;\n }\n }\n}\n\nexport { Builder };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ConfigNamespace } from \"./config.js\";\nimport { ConnectionSetNamespace } from \"./connection_set.js\";\nimport { DatasetsNamespace } from \"./datasets.js\";\nimport { LocaleSetNamespace } from \"./locale_set.js\";\nimport { SignatureNamespace } from \"./signature.js\";\nimport { StylesheetNamespace } from \"./stylesheet.js\";\nimport { TemplateNamespace } from \"./template.js\";\nimport { XdpNamespace } from \"./xdp.js\";\nimport { XhtmlNamespace } from \"./xhtml.js\";\n\nconst NamespaceSetUp = {\n config: ConfigNamespace,\n connection: ConnectionSetNamespace,\n datasets: DatasetsNamespace,\n localeSet: LocaleSetNamespace,\n signature: SignatureNamespace,\n stylesheet: StylesheetNamespace,\n template: TemplateNamespace,\n xdp: XdpNamespace,\n xhtml: XhtmlNamespace,\n};\n\nexport { NamespaceSetUp };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n $content,\n $finalize,\n ContentObject,\n IntegerObject,\n Option01,\n Option10,\n OptionObject,\n StringObject,\n XFAObject,\n XFAObjectArray,\n} from \"./xfa_object.js\";\nimport { getInteger, getStringOption } from \"./utils.js\";\nimport { shadow, warn } from \"../../shared/util.js\";\n\nconst CONFIG_NS_ID = NamespaceIds.config.id;\n\nclass Acrobat extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"acrobat\", /* hasChildren = */ true);\n this.acrobat7 = null;\n this.autoSave = null;\n this.common = null;\n this.validate = null;\n this.validateApprovalSignatures = null;\n this.submitUrl = new XFAObjectArray();\n }\n}\n\nclass Acrobat7 extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"acrobat7\", /* hasChildren = */ true);\n this.dynamicRender = null;\n }\n}\n\nclass ADBE_JSConsole extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"ADBE_JSConsole\", [\"delegate\", \"Enable\", \"Disable\"]);\n }\n}\n\nclass ADBE_JSDebugger extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"ADBE_JSDebugger\", [\"delegate\", \"Enable\", \"Disable\"]);\n }\n}\n\nclass AddSilentPrint extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"addSilentPrint\");\n }\n}\n\nclass AddViewerPreferences extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"addViewerPreferences\");\n }\n}\n\nclass AdjustData extends Option10 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"adjustData\");\n }\n}\n\nclass AdobeExtensionLevel extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"adobeExtensionLevel\", 0, n => n >= 1 && n <= 8);\n }\n}\n\nclass Agent extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"agent\", /* hasChildren = */ true);\n this.name = attributes.name ? attributes.name.trim() : \"\";\n this.common = new XFAObjectArray();\n }\n}\n\nclass AlwaysEmbed extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"alwaysEmbed\");\n }\n}\n\nclass Amd extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"amd\");\n }\n}\n\nclass Area extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"area\");\n this.level = getInteger({\n data: attributes.level,\n defaultValue: 0,\n validate: n => n >= 1 && n <= 3,\n });\n this.name = getStringOption(attributes.name, [\n \"\",\n \"barcode\",\n \"coreinit\",\n \"deviceDriver\",\n \"font\",\n \"general\",\n \"layout\",\n \"merge\",\n \"script\",\n \"signature\",\n \"sourceSet\",\n \"templateCache\",\n ]);\n }\n}\n\nclass Attributes extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"attributes\", [\"preserve\", \"delegate\", \"ignore\"]);\n }\n}\n\nclass AutoSave extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"autoSave\", [\"disabled\", \"enabled\"]);\n }\n}\n\nclass Base extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"base\");\n }\n}\n\nclass BatchOutput extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"batchOutput\");\n this.format = getStringOption(attributes.format, [\n \"none\",\n \"concat\",\n \"zip\",\n \"zipCompress\",\n ]);\n }\n}\n\nclass BehaviorOverride extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"behaviorOverride\");\n }\n\n [$finalize]() {\n this[$content] = new Map(\n this[$content]\n .trim()\n .split(/\\s+/)\n .filter(x => x.includes(\":\"))\n .map(x => x.split(\":\", 2))\n );\n }\n}\n\nclass Cache extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"cache\", /* hasChildren = */ true);\n this.templateCache = null;\n }\n}\n\nclass Change extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"change\");\n }\n}\n\nclass Common extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"common\", /* hasChildren = */ true);\n this.data = null;\n this.locale = null;\n this.localeSet = null;\n this.messaging = null;\n this.suppressBanner = null;\n this.template = null;\n this.validationMessaging = null;\n this.versionControl = null;\n this.log = new XFAObjectArray();\n }\n}\n\nclass Compress extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"compress\");\n this.scope = getStringOption(attributes.scope, [\"imageOnly\", \"document\"]);\n }\n}\n\nclass CompressLogicalStructure extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"compressLogicalStructure\");\n }\n}\n\nclass CompressObjectStream extends Option10 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"compressObjectStream\");\n }\n}\n\nclass Compression extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"compression\", /* hasChildren = */ true);\n this.compressLogicalStructure = null;\n this.compressObjectStream = null;\n this.level = null;\n this.type = null;\n }\n}\n\nclass Config extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"config\", /* hasChildren = */ true);\n this.acrobat = null;\n this.present = null;\n this.trace = null;\n this.agent = new XFAObjectArray();\n }\n}\n\nclass Conformance extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"conformance\", [\"A\", \"B\"]);\n }\n}\n\nclass ContentCopy extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"contentCopy\");\n }\n}\n\nclass Copies extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"copies\", 1, n => n >= 1);\n }\n}\n\nclass Creator extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"creator\");\n }\n}\n\nclass CurrentPage extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"currentPage\", 0, n => n >= 0);\n }\n}\n\nclass Data extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"data\", /* hasChildren = */ true);\n this.adjustData = null;\n this.attributes = null;\n this.incrementalLoad = null;\n this.outputXSL = null;\n this.range = null;\n this.record = null;\n this.startNode = null;\n this.uri = null;\n this.window = null;\n this.xsl = null;\n this.excludeNS = new XFAObjectArray();\n this.transform = new XFAObjectArray();\n }\n}\n\nclass Debug extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"debug\", /* hasChildren = */ true);\n this.uri = null;\n }\n}\n\nclass DefaultTypeface extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"defaultTypeface\");\n this.writingScript = getStringOption(attributes.writingScript, [\n \"*\",\n \"Arabic\",\n \"Cyrillic\",\n \"EastEuropeanRoman\",\n \"Greek\",\n \"Hebrew\",\n \"Japanese\",\n \"Korean\",\n \"Roman\",\n \"SimplifiedChinese\",\n \"Thai\",\n \"TraditionalChinese\",\n \"Vietnamese\",\n ]);\n }\n}\n\nclass Destination extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"destination\", [\n \"pdf\",\n \"pcl\",\n \"ps\",\n \"webClient\",\n \"zpl\",\n ]);\n }\n}\n\nclass DocumentAssembly extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"documentAssembly\");\n }\n}\n\nclass Driver extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"driver\", /* hasChildren = */ true);\n this.name = attributes.name ? attributes.name.trim() : \"\";\n this.fontInfo = null;\n this.xdc = null;\n }\n}\n\nclass DuplexOption extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"duplexOption\", [\n \"simplex\",\n \"duplexFlipLongEdge\",\n \"duplexFlipShortEdge\",\n ]);\n }\n}\n\nclass DynamicRender extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"dynamicRender\", [\"forbidden\", \"required\"]);\n }\n}\n\nclass Embed extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"embed\");\n }\n}\n\nclass Encrypt extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"encrypt\");\n }\n}\n\nclass Encryption extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"encryption\", /* hasChildren = */ true);\n this.encrypt = null;\n this.encryptionLevel = null;\n this.permissions = null;\n }\n}\n\nclass EncryptionLevel extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"encryptionLevel\", [\"40bit\", \"128bit\"]);\n }\n}\n\nclass Enforce extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"enforce\");\n }\n}\n\nclass Equate extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"equate\");\n\n this.force = getInteger({\n data: attributes.force,\n defaultValue: 1,\n validate: n => n === 0,\n });\n\n this.from = attributes.from || \"\";\n this.to = attributes.to || \"\";\n }\n}\n\nclass EquateRange extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"equateRange\");\n\n this.from = attributes.from || \"\";\n this.to = attributes.to || \"\";\n this._unicodeRange = attributes.unicodeRange || \"\";\n }\n\n get unicodeRange() {\n const ranges = [];\n const unicodeRegex = /U\\+([0-9a-fA-F]+)/;\n const unicodeRange = this._unicodeRange;\n for (let range of unicodeRange\n .split(\",\")\n .map(x => x.trim())\n .filter(x => !!x)) {\n range = range.split(\"-\", 2).map(x => {\n const found = x.match(unicodeRegex);\n if (!found) {\n return 0;\n }\n return parseInt(found[1], 16);\n });\n if (range.length === 1) {\n range.push(range[0]);\n }\n ranges.push(range);\n }\n return shadow(this, \"unicodeRange\", ranges);\n }\n}\n\nclass Exclude extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"exclude\");\n }\n\n [$finalize]() {\n this[$content] = this[$content]\n .trim()\n .split(/\\s+/)\n .filter(\n x =>\n x &&\n [\n \"calculate\",\n \"close\",\n \"enter\",\n \"exit\",\n \"initialize\",\n \"ready\",\n \"validate\",\n ].includes(x)\n );\n }\n}\n\nclass ExcludeNS extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"excludeNS\");\n }\n}\n\nclass FlipLabel extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"flipLabel\", [\"usePrinterSetting\", \"on\", \"off\"]);\n }\n}\n\nclass FontInfo extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"fontInfo\", /* hasChildren = */ true);\n this.embed = null;\n this.map = null;\n this.subsetBelow = null;\n this.alwaysEmbed = new XFAObjectArray();\n this.defaultTypeface = new XFAObjectArray();\n this.neverEmbed = new XFAObjectArray();\n }\n}\n\nclass FormFieldFilling extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"formFieldFilling\");\n }\n}\n\nclass GroupParent extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"groupParent\");\n }\n}\n\nclass IfEmpty extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"ifEmpty\", [\n \"dataValue\",\n \"dataGroup\",\n \"ignore\",\n \"remove\",\n ]);\n }\n}\n\nclass IncludeXDPContent extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"includeXDPContent\");\n }\n}\n\nclass IncrementalLoad extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"incrementalLoad\", [\"none\", \"forwardOnly\"]);\n }\n}\n\nclass IncrementalMerge extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"incrementalMerge\");\n }\n}\n\nclass Interactive extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"interactive\");\n }\n}\n\nclass Jog extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"jog\", [\"usePrinterSetting\", \"none\", \"pageSet\"]);\n }\n}\n\nclass LabelPrinter extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"labelPrinter\", /* hasChildren = */ true);\n this.name = getStringOption(attributes.name, [\"zpl\", \"dpl\", \"ipl\", \"tcpl\"]);\n this.batchOutput = null;\n this.flipLabel = null;\n this.fontInfo = null;\n this.xdc = null;\n }\n}\n\nclass Layout extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"layout\", [\"paginate\", \"panel\"]);\n }\n}\n\nclass Level extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"level\", 0, n => n > 0);\n }\n}\n\nclass Linearized extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"linearized\");\n }\n}\n\nclass Locale extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"locale\");\n }\n}\n\nclass LocaleSet extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"localeSet\");\n }\n}\n\nclass Log extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"log\", /* hasChildren = */ true);\n this.mode = null;\n this.threshold = null;\n this.to = null;\n this.uri = null;\n }\n}\n\n// Renamed in MapElement to avoid confusion with usual js Map.\nclass MapElement extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"map\", /* hasChildren = */ true);\n this.equate = new XFAObjectArray();\n this.equateRange = new XFAObjectArray();\n }\n}\n\nclass MediumInfo extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"mediumInfo\", /* hasChildren = */ true);\n this.map = null;\n }\n}\n\nclass Message extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"message\", /* hasChildren = */ true);\n this.msgId = null;\n this.severity = null;\n }\n}\n\nclass Messaging extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"messaging\", /* hasChildren = */ true);\n this.message = new XFAObjectArray();\n }\n}\n\nclass Mode extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"mode\", [\"append\", \"overwrite\"]);\n }\n}\n\nclass ModifyAnnots extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"modifyAnnots\");\n }\n}\n\nclass MsgId extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"msgId\", 1, n => n >= 1);\n }\n}\n\nclass NameAttr extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"nameAttr\");\n }\n}\n\nclass NeverEmbed extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"neverEmbed\");\n }\n}\n\nclass NumberOfCopies extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"numberOfCopies\", null, n => n >= 2 && n <= 5);\n }\n}\n\nclass OpenAction extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"openAction\", /* hasChildren = */ true);\n this.destination = null;\n }\n}\n\nclass Output extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"output\", /* hasChildren = */ true);\n this.to = null;\n this.type = null;\n this.uri = null;\n }\n}\n\nclass OutputBin extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"outputBin\");\n }\n}\n\nclass OutputXSL extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"outputXSL\", /* hasChildren = */ true);\n this.uri = null;\n }\n}\n\nclass Overprint extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"overprint\", [\"none\", \"both\", \"draw\", \"field\"]);\n }\n}\n\nclass Packets extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"packets\");\n }\n\n [$finalize]() {\n if (this[$content] === \"*\") {\n return;\n }\n this[$content] = this[$content]\n .trim()\n .split(/\\s+/)\n .filter(x =>\n [\"config\", \"datasets\", \"template\", \"xfdf\", \"xslt\"].includes(x)\n );\n }\n}\n\nclass PageOffset extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pageOffset\");\n this.x = getInteger({\n data: attributes.x,\n defaultValue: \"useXDCSetting\",\n validate: n => true,\n });\n this.y = getInteger({\n data: attributes.y,\n defaultValue: \"useXDCSetting\",\n validate: n => true,\n });\n }\n}\n\nclass PageRange extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pageRange\");\n }\n\n [$finalize]() {\n const numbers = this[$content]\n .trim()\n .split(/\\s+/)\n .map(x => parseInt(x, 10));\n const ranges = [];\n for (let i = 0, ii = numbers.length; i < ii; i += 2) {\n ranges.push(numbers.slice(i, i + 2));\n }\n this[$content] = ranges;\n }\n}\n\nclass Pagination extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pagination\", [\n \"simplex\",\n \"duplexShortEdge\",\n \"duplexLongEdge\",\n ]);\n }\n}\n\nclass PaginationOverride extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"paginationOverride\", [\n \"none\",\n \"forceDuplex\",\n \"forceDuplexLongEdge\",\n \"forceDuplexShortEdge\",\n \"forceSimplex\",\n ]);\n }\n}\n\nclass Part extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"part\", 1, n => false);\n }\n}\n\nclass Pcl extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pcl\", /* hasChildren = */ true);\n this.name = attributes.name || \"\";\n this.batchOutput = null;\n this.fontInfo = null;\n this.jog = null;\n this.mediumInfo = null;\n this.outputBin = null;\n this.pageOffset = null;\n this.staple = null;\n this.xdc = null;\n }\n}\n\nclass Pdf extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pdf\", /* hasChildren = */ true);\n this.name = attributes.name || \"\";\n this.adobeExtensionLevel = null;\n this.batchOutput = null;\n this.compression = null;\n this.creator = null;\n this.encryption = null;\n this.fontInfo = null;\n this.interactive = null;\n this.linearized = null;\n this.openAction = null;\n this.pdfa = null;\n this.producer = null;\n this.renderPolicy = null;\n this.scriptModel = null;\n this.silentPrint = null;\n this.submitFormat = null;\n this.tagged = null;\n this.version = null;\n this.viewerPreferences = null;\n this.xdc = null;\n }\n}\n\nclass Pdfa extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pdfa\", /* hasChildren = */ true);\n this.amd = null;\n this.conformance = null;\n this.includeXDPContent = null;\n this.part = null;\n }\n}\n\nclass Permissions extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"permissions\", /* hasChildren = */ true);\n this.accessibleContent = null;\n this.change = null;\n this.contentCopy = null;\n this.documentAssembly = null;\n this.formFieldFilling = null;\n this.modifyAnnots = null;\n this.plaintextMetadata = null;\n this.print = null;\n this.printHighQuality = null;\n }\n}\n\nclass PickTrayByPDFSize extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pickTrayByPDFSize\");\n }\n}\n\nclass Picture extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"picture\");\n }\n\n // TODO: check the validity of the picture clause.\n // See page 1150 in the spec.\n}\n\nclass PlaintextMetadata extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"plaintextMetadata\");\n }\n}\n\nclass Presence extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"presence\", [\n \"preserve\",\n \"dissolve\",\n \"dissolveStructure\",\n \"ignore\",\n \"remove\",\n ]);\n }\n}\n\nclass Present extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"present\", /* hasChildren = */ true);\n this.behaviorOverride = null;\n this.cache = null;\n this.common = null;\n this.copies = null;\n this.destination = null;\n this.incrementalMerge = null;\n this.layout = null;\n this.output = null;\n this.overprint = null;\n this.pagination = null;\n this.paginationOverride = null;\n this.script = null;\n this.validate = null;\n this.xdp = null;\n this.driver = new XFAObjectArray();\n this.labelPrinter = new XFAObjectArray();\n this.pcl = new XFAObjectArray();\n this.pdf = new XFAObjectArray();\n this.ps = new XFAObjectArray();\n this.submitUrl = new XFAObjectArray();\n this.webClient = new XFAObjectArray();\n this.zpl = new XFAObjectArray();\n }\n}\n\nclass Print extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"print\");\n }\n}\n\nclass PrintHighQuality extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"printHighQuality\");\n }\n}\n\nclass PrintScaling extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"printScaling\", [\"appdefault\", \"noScaling\"]);\n }\n}\n\nclass PrinterName extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"printerName\");\n }\n}\n\nclass Producer extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"producer\");\n }\n}\n\nclass Ps extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"ps\", /* hasChildren = */ true);\n this.name = attributes.name || \"\";\n this.batchOutput = null;\n this.fontInfo = null;\n this.jog = null;\n this.mediumInfo = null;\n this.outputBin = null;\n this.staple = null;\n this.xdc = null;\n }\n}\n\nclass Range extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"range\");\n }\n\n [$finalize]() {\n this[$content] = this[$content]\n .trim()\n .split(/\\s*,\\s*/, 2)\n .map(range => range.split(\"-\").map(x => parseInt(x.trim(), 10)))\n .filter(range => range.every(x => !isNaN(x)))\n .map(range => {\n if (range.length === 1) {\n range.push(range[0]);\n }\n return range;\n });\n }\n}\n\nclass Record extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"record\");\n }\n\n [$finalize]() {\n this[$content] = this[$content].trim();\n const n = parseInt(this[$content], 10);\n if (!isNaN(n) && n >= 0) {\n this[$content] = n;\n }\n }\n}\n\nclass Relevant extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"relevant\");\n }\n\n [$finalize]() {\n this[$content] = this[$content].trim().split(/\\s+/);\n }\n}\n\nclass Rename extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"rename\");\n }\n\n [$finalize]() {\n this[$content] = this[$content].trim();\n // String must be a XFA name: same as XML one except that there\n // is no colon.\n if (\n this[$content].toLowerCase().startsWith(\"xml\") ||\n this[$content].match(new RegExp(\"[\\\\p{L}_][\\\\p{L}\\\\d._\\\\p{M}-]*\", \"u\"))\n ) {\n warn(\"XFA - Rename: invalid XFA name\");\n }\n }\n}\n\nclass RenderPolicy extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"renderPolicy\", [\"server\", \"client\"]);\n }\n}\n\nclass RunScripts extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"runScripts\", [\"both\", \"client\", \"none\", \"server\"]);\n }\n}\n\nclass Script extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"script\", /* hasChildren = */ true);\n this.currentPage = null;\n this.exclude = null;\n this.runScripts = null;\n }\n}\n\nclass ScriptModel extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"scriptModel\", [\"XFA\", \"none\"]);\n }\n}\n\nclass Severity extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"severity\", [\n \"ignore\",\n \"error\",\n \"information\",\n \"trace\",\n \"warning\",\n ]);\n }\n}\n\nclass SilentPrint extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"silentPrint\", /* hasChildren = */ true);\n this.addSilentPrint = null;\n this.printerName = null;\n }\n}\n\nclass Staple extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"staple\");\n this.mode = getStringOption(attributes.mode, [\n \"usePrinterSetting\",\n \"on\",\n \"off\",\n ]);\n }\n}\n\nclass StartNode extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"startNode\");\n }\n}\n\nclass StartPage extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"startPage\", 0, n => true);\n }\n}\n\nclass SubmitFormat extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"submitFormat\", [\n \"html\",\n \"delegate\",\n \"fdf\",\n \"xml\",\n \"pdf\",\n ]);\n }\n}\n\nclass SubmitUrl extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"submitUrl\");\n }\n}\n\nclass SubsetBelow extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"subsetBelow\", 100, n => n >= 0 && n <= 100);\n }\n}\n\nclass SuppressBanner extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"suppressBanner\");\n }\n}\n\nclass Tagged extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"tagged\");\n }\n}\n\nclass Template extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"template\", /* hasChildren = */ true);\n this.base = null;\n this.relevant = null;\n this.startPage = null;\n this.uri = null;\n this.xsl = null;\n }\n}\n\nclass Threshold extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"threshold\", [\n \"trace\",\n \"error\",\n \"information\",\n \"warning\",\n ]);\n }\n}\n\nclass To extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"to\", [\n \"null\",\n \"memory\",\n \"stderr\",\n \"stdout\",\n \"system\",\n \"uri\",\n ]);\n }\n}\n\nclass TemplateCache extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"templateCache\");\n this.maxEntries = getInteger({\n data: attributes.maxEntries,\n defaultValue: 5,\n validate: n => n >= 0,\n });\n }\n}\n\nclass Trace extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"trace\", /* hasChildren = */ true);\n this.area = new XFAObjectArray();\n }\n}\n\nclass Transform extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"transform\", /* hasChildren = */ true);\n this.groupParent = null;\n this.ifEmpty = null;\n this.nameAttr = null;\n this.picture = null;\n this.presence = null;\n this.rename = null;\n this.whitespace = null;\n }\n}\n\nclass Type extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"type\", [\n \"none\",\n \"ascii85\",\n \"asciiHex\",\n \"ccittfax\",\n \"flate\",\n \"lzw\",\n \"runLength\",\n \"native\",\n \"xdp\",\n \"mergedXDP\",\n ]);\n }\n}\n\nclass Uri extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"uri\");\n }\n}\n\nclass Validate extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"validate\", [\n \"preSubmit\",\n \"prePrint\",\n \"preExecute\",\n \"preSave\",\n ]);\n }\n}\n\nclass ValidateApprovalSignatures extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"validateApprovalSignatures\");\n }\n\n [$finalize]() {\n this[$content] = this[$content]\n .trim()\n .split(/\\s+/)\n .filter(x => [\"docReady\", \"postSign\"].includes(x));\n }\n}\n\nclass ValidationMessaging extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"validationMessaging\", [\n \"allMessagesIndividually\",\n \"allMessagesTogether\",\n \"firstMessageOnly\",\n \"noMessages\",\n ]);\n }\n}\n\nclass Version extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"version\", [\"1.7\", \"1.6\", \"1.5\", \"1.4\", \"1.3\", \"1.2\"]);\n }\n}\n\nclass VersionControl extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"VersionControl\");\n this.outputBelow = getStringOption(attributes.outputBelow, [\n \"warn\",\n \"error\",\n \"update\",\n ]);\n this.sourceAbove = getStringOption(attributes.sourceAbove, [\n \"warn\",\n \"error\",\n ]);\n this.sourceBelow = getStringOption(attributes.sourceBelow, [\n \"update\",\n \"maintain\",\n ]);\n }\n}\n\nclass ViewerPreferences extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"viewerPreferences\", /* hasChildren = */ true);\n this.ADBE_JSConsole = null;\n this.ADBE_JSDebugger = null;\n this.addViewerPreferences = null;\n this.duplexOption = null;\n this.enforce = null;\n this.numberOfCopies = null;\n this.pageRange = null;\n this.pickTrayByPDFSize = null;\n this.printScaling = null;\n }\n}\n\nclass WebClient extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"webClient\", /* hasChildren = */ true);\n this.name = attributes.name ? attributes.name.trim() : \"\";\n this.fontInfo = null;\n this.xdc = null;\n }\n}\n\nclass Whitespace extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"whitespace\", [\n \"preserve\",\n \"ltrim\",\n \"normalize\",\n \"rtrim\",\n \"trim\",\n ]);\n }\n}\n\nclass Window extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"window\");\n }\n\n [$finalize]() {\n const pair = this[$content]\n .trim()\n .split(/\\s*,\\s*/, 2)\n .map(x => parseInt(x, 10));\n if (pair.some(x => isNaN(x))) {\n this[$content] = [0, 0];\n return;\n }\n if (pair.length === 1) {\n pair.push(pair[0]);\n }\n this[$content] = pair;\n }\n}\n\nclass Xdc extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"xdc\", /* hasChildren = */ true);\n this.uri = new XFAObjectArray();\n this.xsl = new XFAObjectArray();\n }\n}\n\nclass Xdp extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"xdp\", /* hasChildren = */ true);\n this.packets = null;\n }\n}\n\nclass Xsl extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"xsl\", /* hasChildren = */ true);\n this.debug = null;\n this.uri = null;\n }\n}\n\nclass Zpl extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"zpl\", /* hasChildren = */ true);\n this.name = attributes.name ? attributes.name.trim() : \"\";\n this.batchOutput = null;\n this.flipLabel = null;\n this.fontInfo = null;\n this.xdc = null;\n }\n}\n\nclass ConfigNamespace {\n static [$buildXFAObject](name, attributes) {\n if (ConfigNamespace.hasOwnProperty(name)) {\n return ConfigNamespace[name](attributes);\n }\n return undefined;\n }\n\n static acrobat(attrs) {\n return new Acrobat(attrs);\n }\n\n static acrobat7(attrs) {\n return new Acrobat7(attrs);\n }\n\n static ADBE_JSConsole(attrs) {\n return new ADBE_JSConsole(attrs);\n }\n\n static ADBE_JSDebugger(attrs) {\n return new ADBE_JSDebugger(attrs);\n }\n\n static addSilentPrint(attrs) {\n return new AddSilentPrint(attrs);\n }\n\n static addViewerPreferences(attrs) {\n return new AddViewerPreferences(attrs);\n }\n\n static adjustData(attrs) {\n return new AdjustData(attrs);\n }\n\n static adobeExtensionLevel(attrs) {\n return new AdobeExtensionLevel(attrs);\n }\n\n static agent(attrs) {\n return new Agent(attrs);\n }\n\n static alwaysEmbed(attrs) {\n return new AlwaysEmbed(attrs);\n }\n\n static amd(attrs) {\n return new Amd(attrs);\n }\n\n static area(attrs) {\n return new Area(attrs);\n }\n\n static attributes(attrs) {\n return new Attributes(attrs);\n }\n\n static autoSave(attrs) {\n return new AutoSave(attrs);\n }\n\n static base(attrs) {\n return new Base(attrs);\n }\n\n static batchOutput(attrs) {\n return new BatchOutput(attrs);\n }\n\n static behaviorOverride(attrs) {\n return new BehaviorOverride(attrs);\n }\n\n static cache(attrs) {\n return new Cache(attrs);\n }\n\n static change(attrs) {\n return new Change(attrs);\n }\n\n static common(attrs) {\n return new Common(attrs);\n }\n\n static compress(attrs) {\n return new Compress(attrs);\n }\n\n static compressLogicalStructure(attrs) {\n return new CompressLogicalStructure(attrs);\n }\n\n static compressObjectStream(attrs) {\n return new CompressObjectStream(attrs);\n }\n\n static compression(attrs) {\n return new Compression(attrs);\n }\n\n static config(attrs) {\n return new Config(attrs);\n }\n\n static conformance(attrs) {\n return new Conformance(attrs);\n }\n\n static contentCopy(attrs) {\n return new ContentCopy(attrs);\n }\n\n static copies(attrs) {\n return new Copies(attrs);\n }\n\n static creator(attrs) {\n return new Creator(attrs);\n }\n\n static currentPage(attrs) {\n return new CurrentPage(attrs);\n }\n\n static data(attrs) {\n return new Data(attrs);\n }\n\n static debug(attrs) {\n return new Debug(attrs);\n }\n\n static defaultTypeface(attrs) {\n return new DefaultTypeface(attrs);\n }\n\n static destination(attrs) {\n return new Destination(attrs);\n }\n\n static documentAssembly(attrs) {\n return new DocumentAssembly(attrs);\n }\n\n static driver(attrs) {\n return new Driver(attrs);\n }\n\n static duplexOption(attrs) {\n return new DuplexOption(attrs);\n }\n\n static dynamicRender(attrs) {\n return new DynamicRender(attrs);\n }\n\n static embed(attrs) {\n return new Embed(attrs);\n }\n\n static encrypt(attrs) {\n return new Encrypt(attrs);\n }\n\n static encryption(attrs) {\n return new Encryption(attrs);\n }\n\n static encryptionLevel(attrs) {\n return new EncryptionLevel(attrs);\n }\n\n static enforce(attrs) {\n return new Enforce(attrs);\n }\n\n static equate(attrs) {\n return new Equate(attrs);\n }\n\n static equateRange(attrs) {\n return new EquateRange(attrs);\n }\n\n static exclude(attrs) {\n return new Exclude(attrs);\n }\n\n static excludeNS(attrs) {\n return new ExcludeNS(attrs);\n }\n\n static flipLabel(attrs) {\n return new FlipLabel(attrs);\n }\n\n static fontInfo(attrs) {\n return new FontInfo(attrs);\n }\n\n static formFieldFilling(attrs) {\n return new FormFieldFilling(attrs);\n }\n\n static groupParent(attrs) {\n return new GroupParent(attrs);\n }\n\n static ifEmpty(attrs) {\n return new IfEmpty(attrs);\n }\n\n static includeXDPContent(attrs) {\n return new IncludeXDPContent(attrs);\n }\n\n static incrementalLoad(attrs) {\n return new IncrementalLoad(attrs);\n }\n\n static incrementalMerge(attrs) {\n return new IncrementalMerge(attrs);\n }\n\n static interactive(attrs) {\n return new Interactive(attrs);\n }\n\n static jog(attrs) {\n return new Jog(attrs);\n }\n\n static labelPrinter(attrs) {\n return new LabelPrinter(attrs);\n }\n\n static layout(attrs) {\n return new Layout(attrs);\n }\n\n static level(attrs) {\n return new Level(attrs);\n }\n\n static linearized(attrs) {\n return new Linearized(attrs);\n }\n\n static locale(attrs) {\n return new Locale(attrs);\n }\n\n static localeSet(attrs) {\n return new LocaleSet(attrs);\n }\n\n static log(attrs) {\n return new Log(attrs);\n }\n\n static map(attrs) {\n return new MapElement(attrs);\n }\n\n static mediumInfo(attrs) {\n return new MediumInfo(attrs);\n }\n\n static message(attrs) {\n return new Message(attrs);\n }\n\n static messaging(attrs) {\n return new Messaging(attrs);\n }\n\n static mode(attrs) {\n return new Mode(attrs);\n }\n\n static modifyAnnots(attrs) {\n return new ModifyAnnots(attrs);\n }\n\n static msgId(attrs) {\n return new MsgId(attrs);\n }\n\n static nameAttr(attrs) {\n return new NameAttr(attrs);\n }\n\n static neverEmbed(attrs) {\n return new NeverEmbed(attrs);\n }\n\n static numberOfCopies(attrs) {\n return new NumberOfCopies(attrs);\n }\n\n static openAction(attrs) {\n return new OpenAction(attrs);\n }\n\n static output(attrs) {\n return new Output(attrs);\n }\n\n static outputBin(attrs) {\n return new OutputBin(attrs);\n }\n\n static outputXSL(attrs) {\n return new OutputXSL(attrs);\n }\n\n static overprint(attrs) {\n return new Overprint(attrs);\n }\n\n static packets(attrs) {\n return new Packets(attrs);\n }\n\n static pageOffset(attrs) {\n return new PageOffset(attrs);\n }\n\n static pageRange(attrs) {\n return new PageRange(attrs);\n }\n\n static pagination(attrs) {\n return new Pagination(attrs);\n }\n\n static paginationOverride(attrs) {\n return new PaginationOverride(attrs);\n }\n\n static part(attrs) {\n return new Part(attrs);\n }\n\n static pcl(attrs) {\n return new Pcl(attrs);\n }\n\n static pdf(attrs) {\n return new Pdf(attrs);\n }\n\n static pdfa(attrs) {\n return new Pdfa(attrs);\n }\n\n static permissions(attrs) {\n return new Permissions(attrs);\n }\n\n static pickTrayByPDFSize(attrs) {\n return new PickTrayByPDFSize(attrs);\n }\n\n static picture(attrs) {\n return new Picture(attrs);\n }\n\n static plaintextMetadata(attrs) {\n return new PlaintextMetadata(attrs);\n }\n\n static presence(attrs) {\n return new Presence(attrs);\n }\n\n static present(attrs) {\n return new Present(attrs);\n }\n\n static print(attrs) {\n return new Print(attrs);\n }\n\n static printHighQuality(attrs) {\n return new PrintHighQuality(attrs);\n }\n\n static printScaling(attrs) {\n return new PrintScaling(attrs);\n }\n\n static printerName(attrs) {\n return new PrinterName(attrs);\n }\n\n static producer(attrs) {\n return new Producer(attrs);\n }\n\n static ps(attrs) {\n return new Ps(attrs);\n }\n\n static range(attrs) {\n return new Range(attrs);\n }\n\n static record(attrs) {\n return new Record(attrs);\n }\n\n static relevant(attrs) {\n return new Relevant(attrs);\n }\n\n static rename(attrs) {\n return new Rename(attrs);\n }\n\n static renderPolicy(attrs) {\n return new RenderPolicy(attrs);\n }\n\n static runScripts(attrs) {\n return new RunScripts(attrs);\n }\n\n static script(attrs) {\n return new Script(attrs);\n }\n\n static scriptModel(attrs) {\n return new ScriptModel(attrs);\n }\n\n static severity(attrs) {\n return new Severity(attrs);\n }\n\n static silentPrint(attrs) {\n return new SilentPrint(attrs);\n }\n\n static staple(attrs) {\n return new Staple(attrs);\n }\n\n static startNode(attrs) {\n return new StartNode(attrs);\n }\n\n static startPage(attrs) {\n return new StartPage(attrs);\n }\n\n static submitFormat(attrs) {\n return new SubmitFormat(attrs);\n }\n\n static submitUrl(attrs) {\n return new SubmitUrl(attrs);\n }\n\n static subsetBelow(attrs) {\n return new SubsetBelow(attrs);\n }\n\n static suppressBanner(attrs) {\n return new SuppressBanner(attrs);\n }\n\n static tagged(attrs) {\n return new Tagged(attrs);\n }\n\n static template(attrs) {\n return new Template(attrs);\n }\n\n static templateCache(attrs) {\n return new TemplateCache(attrs);\n }\n\n static threshold(attrs) {\n return new Threshold(attrs);\n }\n\n static to(attrs) {\n return new To(attrs);\n }\n\n static trace(attrs) {\n return new Trace(attrs);\n }\n\n static transform(attrs) {\n return new Transform(attrs);\n }\n\n static type(attrs) {\n return new Type(attrs);\n }\n\n static uri(attrs) {\n return new Uri(attrs);\n }\n\n static validate(attrs) {\n return new Validate(attrs);\n }\n\n static validateApprovalSignatures(attrs) {\n return new ValidateApprovalSignatures(attrs);\n }\n\n static validationMessaging(attrs) {\n return new ValidationMessaging(attrs);\n }\n\n static version(attrs) {\n return new Version(attrs);\n }\n\n static versionControl(attrs) {\n return new VersionControl(attrs);\n }\n\n static viewerPreferences(attrs) {\n return new ViewerPreferences(attrs);\n }\n\n static webClient(attrs) {\n return new WebClient(attrs);\n }\n\n static whitespace(attrs) {\n return new Whitespace(attrs);\n }\n\n static window(attrs) {\n return new Window(attrs);\n }\n\n static xdc(attrs) {\n return new Xdc(attrs);\n }\n\n static xdp(attrs) {\n return new Xdp(attrs);\n }\n\n static xsl(attrs) {\n return new Xsl(attrs);\n }\n\n static zpl(attrs) {\n return new Zpl(attrs);\n }\n}\n\nexport { ConfigNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport { StringObject, XFAObject, XFAObjectArray } from \"./xfa_object.js\";\n\nconst CONNECTION_SET_NS_ID = NamespaceIds.connectionSet.id;\n\nclass ConnectionSet extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"connectionSet\", /* hasChildren = */ true);\n this.wsdlConnection = new XFAObjectArray();\n this.xmlConnection = new XFAObjectArray();\n this.xsdConnection = new XFAObjectArray();\n }\n}\n\nclass EffectiveInputPolicy extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"effectiveInputPolicy\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass EffectiveOutputPolicy extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"effectiveOutputPolicy\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Operation extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"operation\");\n this.id = attributes.id || \"\";\n this.input = attributes.input || \"\";\n this.name = attributes.name || \"\";\n this.output = attributes.output || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass RootElement extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"rootElement\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass SoapAction extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"soapAction\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass SoapAddress extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"soapAddress\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Uri extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"uri\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass WsdlAddress extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"wsdlAddress\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass WsdlConnection extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"wsdlConnection\", /* hasChildren = */ true);\n this.dataDescription = attributes.dataDescription || \"\";\n this.name = attributes.name || \"\";\n this.effectiveInputPolicy = null;\n this.effectiveOutputPolicy = null;\n this.operation = null;\n this.soapAction = null;\n this.soapAddress = null;\n this.wsdlAddress = null;\n }\n}\n\nclass XmlConnection extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"xmlConnection\", /* hasChildren = */ true);\n this.dataDescription = attributes.dataDescription || \"\";\n this.name = attributes.name || \"\";\n this.uri = null;\n }\n}\n\nclass XsdConnection extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"xsdConnection\", /* hasChildren = */ true);\n this.dataDescription = attributes.dataDescription || \"\";\n this.name = attributes.name || \"\";\n this.rootElement = null;\n this.uri = null;\n }\n}\n\nclass ConnectionSetNamespace {\n static [$buildXFAObject](name, attributes) {\n if (ConnectionSetNamespace.hasOwnProperty(name)) {\n return ConnectionSetNamespace[name](attributes);\n }\n return undefined;\n }\n\n static connectionSet(attrs) {\n return new ConnectionSet(attrs);\n }\n\n static effectiveInputPolicy(attrs) {\n return new EffectiveInputPolicy(attrs);\n }\n\n static effectiveOutputPolicy(attrs) {\n return new EffectiveOutputPolicy(attrs);\n }\n\n static operation(attrs) {\n return new Operation(attrs);\n }\n\n static rootElement(attrs) {\n return new RootElement(attrs);\n }\n\n static soapAction(attrs) {\n return new SoapAction(attrs);\n }\n\n static soapAddress(attrs) {\n return new SoapAddress(attrs);\n }\n\n static uri(attrs) {\n return new Uri(attrs);\n }\n\n static wsdlAddress(attrs) {\n return new WsdlAddress(attrs);\n }\n\n static wsdlConnection(attrs) {\n return new WsdlConnection(attrs);\n }\n\n static xmlConnection(attrs) {\n return new XmlConnection(attrs);\n }\n\n static xsdConnection(attrs) {\n return new XsdConnection(attrs);\n }\n}\n\nexport { ConnectionSetNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $appendChild,\n $isNsAgnostic,\n $namespaceId,\n $nodeName,\n $onChild,\n XFAObject,\n XmlObject,\n} from \"./xfa_object.js\";\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\n\nconst DATASETS_NS_ID = NamespaceIds.datasets.id;\n\nclass Data extends XmlObject {\n constructor(attributes) {\n super(DATASETS_NS_ID, \"data\", attributes);\n }\n\n [$isNsAgnostic]() {\n return true;\n }\n}\n\nclass Datasets extends XFAObject {\n constructor(attributes) {\n super(DATASETS_NS_ID, \"datasets\", /* hasChildren = */ true);\n this.data = null;\n this.Signature = null;\n }\n\n [$onChild](child) {\n const name = child[$nodeName];\n if (\n (name === \"data\" && child[$namespaceId] === DATASETS_NS_ID) ||\n (name === \"Signature\" &&\n child[$namespaceId] === NamespaceIds.signature.id)\n ) {\n this[name] = child;\n }\n this[$appendChild](child);\n }\n}\n\nclass DatasetsNamespace {\n static [$buildXFAObject](name, attributes) {\n if (DatasetsNamespace.hasOwnProperty(name)) {\n return DatasetsNamespace[name](attributes);\n }\n return undefined;\n }\n\n static datasets(attributes) {\n return new Datasets(attributes);\n }\n\n static data(attributes) {\n return new Data(attributes);\n }\n}\n\nexport { DatasetsNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n ContentObject,\n StringObject,\n XFAObject,\n XFAObjectArray,\n} from \"./xfa_object.js\";\nimport { getInteger, getStringOption } from \"./utils.js\";\n\nconst LOCALE_SET_NS_ID = NamespaceIds.localeSet.id;\n\nclass CalendarSymbols extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"calendarSymbols\", /* hasChildren = */ true);\n this.name = \"gregorian\";\n this.dayNames = new XFAObjectArray(2);\n this.eraNames = null;\n this.meridiemNames = null;\n this.monthNames = new XFAObjectArray(2);\n }\n}\n\nclass CurrencySymbol extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"currencySymbol\");\n this.name = getStringOption(attributes.name, [\n \"symbol\",\n \"isoname\",\n \"decimal\",\n ]);\n }\n}\n\nclass CurrencySymbols extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"currencySymbols\", /* hasChildren = */ true);\n this.currencySymbol = new XFAObjectArray(3);\n }\n}\n\nclass DatePattern extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"datePattern\");\n this.name = getStringOption(attributes.name, [\n \"full\",\n \"long\",\n \"med\",\n \"short\",\n ]);\n }\n}\n\nclass DatePatterns extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"datePatterns\", /* hasChildren = */ true);\n this.datePattern = new XFAObjectArray(4);\n }\n}\n\nclass DateTimeSymbols extends ContentObject {\n // TODO: spec unclear about the format of the array.\n\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"dateTimeSymbols\");\n }\n}\n\nclass Day extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"day\");\n }\n}\n\nclass DayNames extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"dayNames\", /* hasChildren = */ true);\n this.abbr = getInteger({\n data: attributes.abbr,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.day = new XFAObjectArray(7);\n }\n}\n\nclass Era extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"era\");\n }\n}\n\nclass EraNames extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"eraNames\", /* hasChildren = */ true);\n this.era = new XFAObjectArray(2);\n }\n}\n\nclass Locale extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"locale\", /* hasChildren = */ true);\n this.desc = attributes.desc || \"\";\n this.name = \"isoname\";\n this.calendarSymbols = null;\n this.currencySymbols = null;\n this.datePatterns = null;\n this.dateTimeSymbols = null;\n this.numberPatterns = null;\n this.numberSymbols = null;\n this.timePatterns = null;\n this.typeFaces = null;\n }\n}\n\nclass LocaleSet extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"localeSet\", /* hasChildren = */ true);\n this.locale = new XFAObjectArray();\n }\n}\n\nclass Meridiem extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"meridiem\");\n }\n}\n\nclass MeridiemNames extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"meridiemNames\", /* hasChildren = */ true);\n this.meridiem = new XFAObjectArray(2);\n }\n}\n\nclass Month extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"month\");\n }\n}\n\nclass MonthNames extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"monthNames\", /* hasChildren = */ true);\n this.abbr = getInteger({\n data: attributes.abbr,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.month = new XFAObjectArray(12);\n }\n}\n\nclass NumberPattern extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"numberPattern\");\n this.name = getStringOption(attributes.name, [\n \"full\",\n \"long\",\n \"med\",\n \"short\",\n ]);\n }\n}\n\nclass NumberPatterns extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"numberPatterns\", /* hasChildren = */ true);\n this.numberPattern = new XFAObjectArray(4);\n }\n}\n\nclass NumberSymbol extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"numberSymbol\");\n this.name = getStringOption(attributes.name, [\n \"decimal\",\n \"grouping\",\n \"percent\",\n \"minus\",\n \"zero\",\n ]);\n }\n}\n\nclass NumberSymbols extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"numberSymbols\", /* hasChildren = */ true);\n this.numberSymbol = new XFAObjectArray(5);\n }\n}\n\nclass TimePattern extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"timePattern\");\n this.name = getStringOption(attributes.name, [\n \"full\",\n \"long\",\n \"med\",\n \"short\",\n ]);\n }\n}\n\nclass TimePatterns extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"timePatterns\", /* hasChildren = */ true);\n this.timePattern = new XFAObjectArray(4);\n }\n}\n\nclass TypeFace extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"typeFace\", /* hasChildren = */ true);\n this.name = attributes.name | \"\";\n }\n}\n\nclass TypeFaces extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"typeFaces\", /* hasChildren = */ true);\n this.typeFace = new XFAObjectArray();\n }\n}\n\nclass LocaleSetNamespace {\n static [$buildXFAObject](name, attributes) {\n if (LocaleSetNamespace.hasOwnProperty(name)) {\n return LocaleSetNamespace[name](attributes);\n }\n return undefined;\n }\n\n static calendarSymbols(attrs) {\n return new CalendarSymbols(attrs);\n }\n\n static currencySymbol(attrs) {\n return new CurrencySymbol(attrs);\n }\n\n static currencySymbols(attrs) {\n return new CurrencySymbols(attrs);\n }\n\n static datePattern(attrs) {\n return new DatePattern(attrs);\n }\n\n static datePatterns(attrs) {\n return new DatePatterns(attrs);\n }\n\n static dateTimeSymbols(attrs) {\n return new DateTimeSymbols(attrs);\n }\n\n static day(attrs) {\n return new Day(attrs);\n }\n\n static dayNames(attrs) {\n return new DayNames(attrs);\n }\n\n static era(attrs) {\n return new Era(attrs);\n }\n\n static eraNames(attrs) {\n return new EraNames(attrs);\n }\n\n static locale(attrs) {\n return new Locale(attrs);\n }\n\n static localeSet(attrs) {\n return new LocaleSet(attrs);\n }\n\n static meridiem(attrs) {\n return new Meridiem(attrs);\n }\n\n static meridiemNames(attrs) {\n return new MeridiemNames(attrs);\n }\n\n static month(attrs) {\n return new Month(attrs);\n }\n\n static monthNames(attrs) {\n return new MonthNames(attrs);\n }\n\n static numberPattern(attrs) {\n return new NumberPattern(attrs);\n }\n\n static numberPatterns(attrs) {\n return new NumberPatterns(attrs);\n }\n\n static numberSymbol(attrs) {\n return new NumberSymbol(attrs);\n }\n\n static numberSymbols(attrs) {\n return new NumberSymbols(attrs);\n }\n\n static timePattern(attrs) {\n return new TimePattern(attrs);\n }\n\n static timePatterns(attrs) {\n return new TimePatterns(attrs);\n }\n\n static typeFace(attrs) {\n return new TypeFace(attrs);\n }\n\n static typeFaces(attrs) {\n return new TypeFaces(attrs);\n }\n}\n\nexport { LocaleSetNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport { XFAObject } from \"./xfa_object.js\";\n\nconst SIGNATURE_NS_ID = NamespaceIds.signature.id;\n\nclass Signature extends XFAObject {\n constructor(attributes) {\n super(SIGNATURE_NS_ID, \"signature\", /* hasChildren = */ true);\n }\n}\n\nclass SignatureNamespace {\n static [$buildXFAObject](name, attributes) {\n if (SignatureNamespace.hasOwnProperty(name)) {\n return SignatureNamespace[name](attributes);\n }\n return undefined;\n }\n\n static signature(attributes) {\n return new Signature(attributes);\n }\n}\n\nexport { SignatureNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport { XFAObject } from \"./xfa_object.js\";\n\nconst STYLESHEET_NS_ID = NamespaceIds.stylesheet.id;\n\nclass Stylesheet extends XFAObject {\n constructor(attributes) {\n super(STYLESHEET_NS_ID, \"stylesheet\", /* hasChildren = */ true);\n }\n}\n\nclass StylesheetNamespace {\n static [$buildXFAObject](name, attributes) {\n if (StylesheetNamespace.hasOwnProperty(name)) {\n return StylesheetNamespace[name](attributes);\n }\n return undefined;\n }\n\n static stylesheet(attributes) {\n return new Stylesheet(attributes);\n }\n}\n\nexport { StylesheetNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n $namespaceId,\n $nodeName,\n $onChildCheck,\n XFAObject,\n XFAObjectArray,\n} from \"./xfa_object.js\";\n\nconst XDP_NS_ID = NamespaceIds.xdp.id;\n\nclass Xdp extends XFAObject {\n constructor(attributes) {\n super(XDP_NS_ID, \"xdp\", /* hasChildren = */ true);\n this.uuid = attributes.uuid || \"\";\n this.timeStamp = attributes.timeStamp || \"\";\n this.config = null;\n this.connectionSet = null;\n this.datasets = null;\n this.localeSet = null;\n this.stylesheet = new XFAObjectArray();\n this.template = null;\n }\n\n [$onChildCheck](child) {\n const ns = NamespaceIds[child[$nodeName]];\n return ns && child[$namespaceId] === ns.id;\n }\n}\n\nclass XdpNamespace {\n static [$buildXFAObject](name, attributes) {\n if (XdpNamespace.hasOwnProperty(name)) {\n return XdpNamespace[name](attributes);\n }\n return undefined;\n }\n\n static xdp(attributes) {\n return new Xdp(attributes);\n }\n}\n\nexport { XdpNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $acceptWhitespace,\n $childrenToHTML,\n $clean,\n $content,\n $extra,\n $getChildren,\n $getParent,\n $globalData,\n $nodeName,\n $onText,\n $pushGlyphs,\n $text,\n $toHTML,\n XmlObject,\n} from \"./xfa_object.js\";\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n fixTextIndent,\n fixURL,\n measureToString,\n setFontFamily,\n} from \"./html_utils.js\";\nimport { getMeasurement, HTMLResult, stripQuotes } from \"./utils.js\";\n\nconst XHTML_NS_ID = NamespaceIds.xhtml.id;\nconst $richText = Symbol();\n\nconst VALID_STYLES = new Set([\n \"color\",\n \"font\",\n \"font-family\",\n \"font-size\",\n \"font-stretch\",\n \"font-style\",\n \"font-weight\",\n \"margin\",\n \"margin-bottom\",\n \"margin-left\",\n \"margin-right\",\n \"margin-top\",\n \"letter-spacing\",\n \"line-height\",\n \"orphans\",\n \"page-break-after\",\n \"page-break-before\",\n \"page-break-inside\",\n \"tab-interval\",\n \"tab-stop\",\n \"text-align\",\n \"text-decoration\",\n \"text-indent\",\n \"vertical-align\",\n \"widows\",\n \"kerning-mode\",\n \"xfa-font-horizontal-scale\",\n \"xfa-font-vertical-scale\",\n \"xfa-spacerun\",\n \"xfa-tab-stops\",\n]);\n\nconst StyleMapping = new Map([\n [\"page-break-after\", \"breakAfter\"],\n [\"page-break-before\", \"breakBefore\"],\n [\"page-break-inside\", \"breakInside\"],\n [\"kerning-mode\", value => (value === \"none\" ? \"none\" : \"normal\")],\n [\n \"xfa-font-horizontal-scale\",\n value =>\n `scaleX(${Math.max(0, Math.min(parseInt(value) / 100)).toFixed(2)})`,\n ],\n [\n \"xfa-font-vertical-scale\",\n value =>\n `scaleY(${Math.max(0, Math.min(parseInt(value) / 100)).toFixed(2)})`,\n ],\n [\"xfa-spacerun\", \"\"],\n [\"xfa-tab-stops\", \"\"],\n [\n \"font-size\",\n (value, original) => {\n value = original.fontSize = getMeasurement(value);\n return measureToString(0.99 * value);\n },\n ],\n [\"letter-spacing\", value => measureToString(getMeasurement(value))],\n [\"line-height\", value => measureToString(getMeasurement(value))],\n [\"margin\", value => measureToString(getMeasurement(value))],\n [\"margin-bottom\", value => measureToString(getMeasurement(value))],\n [\"margin-left\", value => measureToString(getMeasurement(value))],\n [\"margin-right\", value => measureToString(getMeasurement(value))],\n [\"margin-top\", value => measureToString(getMeasurement(value))],\n [\"text-indent\", value => measureToString(getMeasurement(value))],\n [\"font-family\", value => value],\n [\"vertical-align\", value => measureToString(getMeasurement(value))],\n]);\n\nconst spacesRegExp = /\\s+/g;\nconst crlfRegExp = /[\\r\\n]+/g;\nconst crlfForRichTextRegExp = /\\r\\n?/g;\n\nfunction mapStyle(styleStr, node, richText) {\n const style = Object.create(null);\n if (!styleStr) {\n return style;\n }\n const original = Object.create(null);\n for (const [key, value] of styleStr.split(\";\").map(s => s.split(\":\", 2))) {\n const mapping = StyleMapping.get(key);\n if (mapping === \"\") {\n continue;\n }\n let newValue = value;\n if (mapping) {\n if (typeof mapping === \"string\") {\n newValue = mapping;\n } else {\n newValue = mapping(value, original);\n }\n }\n if (key.endsWith(\"scale\")) {\n if (style.transform) {\n style.transform = `${style[key]} ${newValue}`;\n } else {\n style.transform = newValue;\n }\n } else {\n style[key.replaceAll(/-([a-zA-Z])/g, (_, x) => x.toUpperCase())] =\n newValue;\n }\n }\n\n if (style.fontFamily) {\n setFontFamily(\n {\n typeface: style.fontFamily,\n weight: style.fontWeight || \"normal\",\n posture: style.fontStyle || \"normal\",\n size: original.fontSize || 0,\n },\n node,\n node[$globalData].fontFinder,\n style\n );\n }\n\n if (\n richText &&\n style.verticalAlign &&\n style.verticalAlign !== \"0px\" &&\n style.fontSize\n ) {\n // A non-zero verticalAlign means that we've a sub/super-script and\n // consequently the font size must be decreased.\n // https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf#G11.2097514\n // And the two following factors to position the scripts have been\n // found here:\n // https://en.wikipedia.org/wiki/Subscript_and_superscript#Desktop_publishing\n const SUB_SUPER_SCRIPT_FACTOR = 0.583;\n const VERTICAL_FACTOR = 0.333;\n const fontSize = getMeasurement(style.fontSize);\n style.fontSize = measureToString(fontSize * SUB_SUPER_SCRIPT_FACTOR);\n style.verticalAlign = measureToString(\n Math.sign(getMeasurement(style.verticalAlign)) *\n fontSize *\n VERTICAL_FACTOR\n );\n }\n\n fixTextIndent(style);\n return style;\n}\n\nfunction checkStyle(node) {\n if (!node.style) {\n return \"\";\n }\n\n // Remove any non-allowed keys.\n return node.style\n .trim()\n .split(/\\s*;\\s*/)\n .filter(s => !!s)\n .map(s => s.split(/\\s*:\\s*/, 2))\n .filter(([key, value]) => {\n if (key === \"font-family\") {\n node[$globalData].usedTypefaces.add(value);\n }\n return VALID_STYLES.has(key);\n })\n .map(kv => kv.join(\":\"))\n .join(\";\");\n}\n\nconst NoWhites = new Set([\"body\", \"html\"]);\n\nclass XhtmlObject extends XmlObject {\n constructor(attributes, name) {\n super(XHTML_NS_ID, name);\n this[$richText] = false;\n this.style = attributes.style || \"\";\n }\n\n [$clean](builder) {\n super[$clean](builder);\n this.style = checkStyle(this);\n }\n\n [$acceptWhitespace]() {\n return !NoWhites.has(this[$nodeName]);\n }\n\n [$onText](str, richText = false) {\n if (!richText) {\n str = str.replace(crlfRegExp, \"\");\n if (!this.style.includes(\"xfa-spacerun:yes\")) {\n str = str.replace(spacesRegExp, \" \");\n }\n } else {\n this[$richText] = true;\n }\n\n if (str) {\n this[$content] += str;\n }\n }\n\n [$pushGlyphs](measure, mustPop = true) {\n const xfaFont = Object.create(null);\n const margin = {\n top: NaN,\n bottom: NaN,\n left: NaN,\n right: NaN,\n };\n let lineHeight = null;\n for (const [key, value] of this.style\n .split(\";\")\n .map(s => s.split(\":\", 2))) {\n switch (key) {\n case \"font-family\":\n xfaFont.typeface = stripQuotes(value);\n break;\n case \"font-size\":\n xfaFont.size = getMeasurement(value);\n break;\n case \"font-weight\":\n xfaFont.weight = value;\n break;\n case \"font-style\":\n xfaFont.posture = value;\n break;\n case \"letter-spacing\":\n xfaFont.letterSpacing = getMeasurement(value);\n break;\n case \"margin\":\n const values = value.split(/ \\t/).map(x => getMeasurement(x));\n switch (values.length) {\n case 1:\n margin.top =\n margin.bottom =\n margin.left =\n margin.right =\n values[0];\n break;\n case 2:\n margin.top = margin.bottom = values[0];\n margin.left = margin.right = values[1];\n break;\n case 3:\n margin.top = values[0];\n margin.bottom = values[2];\n margin.left = margin.right = values[1];\n break;\n case 4:\n margin.top = values[0];\n margin.left = values[1];\n margin.bottom = values[2];\n margin.right = values[3];\n break;\n }\n break;\n case \"margin-top\":\n margin.top = getMeasurement(value);\n break;\n case \"margin-bottom\":\n margin.bottom = getMeasurement(value);\n break;\n case \"margin-left\":\n margin.left = getMeasurement(value);\n break;\n case \"margin-right\":\n margin.right = getMeasurement(value);\n break;\n case \"line-height\":\n lineHeight = getMeasurement(value);\n break;\n }\n }\n\n measure.pushData(xfaFont, margin, lineHeight);\n\n if (this[$content]) {\n measure.addString(this[$content]);\n } else {\n for (const child of this[$getChildren]()) {\n if (child[$nodeName] === \"#text\") {\n measure.addString(child[$content]);\n continue;\n }\n child[$pushGlyphs](measure);\n }\n }\n\n if (mustPop) {\n measure.popFont();\n }\n }\n\n [$toHTML](availableSpace) {\n const children = [];\n this[$extra] = {\n children,\n };\n\n this[$childrenToHTML]({});\n\n if (children.length === 0 && !this[$content]) {\n return HTMLResult.EMPTY;\n }\n\n let value;\n if (this[$richText]) {\n value = this[$content]\n ? this[$content].replace(crlfForRichTextRegExp, \"\\n\")\n : undefined;\n } else {\n value = this[$content] || undefined;\n }\n\n return HTMLResult.success({\n name: this[$nodeName],\n attributes: {\n href: this.href,\n style: mapStyle(this.style, this, this[$richText]),\n },\n children,\n value,\n });\n }\n}\n\nclass A extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"a\");\n this.href = fixURL(attributes.href) || \"\";\n }\n}\n\nclass B extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"b\");\n }\n\n [$pushGlyphs](measure) {\n measure.pushFont({ weight: \"bold\" });\n super[$pushGlyphs](measure);\n measure.popFont();\n }\n}\n\nclass Body extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"body\");\n }\n\n [$toHTML](availableSpace) {\n const res = super[$toHTML](availableSpace);\n const { html } = res;\n if (!html) {\n return HTMLResult.EMPTY;\n }\n html.name = \"div\";\n html.attributes.class = [\"xfaRich\"];\n return res;\n }\n}\n\nclass Br extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"br\");\n }\n\n [$text]() {\n return \"\\n\";\n }\n\n [$pushGlyphs](measure) {\n measure.addString(\"\\n\");\n }\n\n [$toHTML](availableSpace) {\n return HTMLResult.success({\n name: \"br\",\n });\n }\n}\n\nclass Html extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"html\");\n }\n\n [$toHTML](availableSpace) {\n const children = [];\n this[$extra] = {\n children,\n };\n\n this[$childrenToHTML]({});\n if (children.length === 0) {\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n class: [\"xfaRich\"],\n style: {},\n },\n value: this[$content] || \"\",\n });\n }\n\n if (children.length === 1) {\n const child = children[0];\n if (child.attributes && child.attributes.class.includes(\"xfaRich\")) {\n return HTMLResult.success(child);\n }\n }\n\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n class: [\"xfaRich\"],\n style: {},\n },\n children,\n });\n }\n}\n\nclass I extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"i\");\n }\n\n [$pushGlyphs](measure) {\n measure.pushFont({ posture: \"italic\" });\n super[$pushGlyphs](measure);\n measure.popFont();\n }\n}\n\nclass Li extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"li\");\n }\n}\n\nclass Ol extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"ol\");\n }\n}\n\nclass P extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"p\");\n }\n\n [$pushGlyphs](measure) {\n super[$pushGlyphs](measure, /* mustPop = */ false);\n measure.addString(\"\\n\");\n measure.addPara();\n measure.popFont();\n }\n\n [$text]() {\n const siblings = this[$getParent]()[$getChildren]();\n if (siblings[siblings.length - 1] === this) {\n return super[$text]();\n }\n return super[$text]() + \"\\n\";\n }\n}\n\nclass Span extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"span\");\n }\n}\n\nclass Sub extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"sub\");\n }\n}\n\nclass Sup extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"sup\");\n }\n}\n\nclass Ul extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"ul\");\n }\n}\n\nclass XhtmlNamespace {\n static [$buildXFAObject](name, attributes) {\n if (XhtmlNamespace.hasOwnProperty(name)) {\n return XhtmlNamespace[name](attributes);\n }\n return undefined;\n }\n\n static a(attributes) {\n return new A(attributes);\n }\n\n static b(attributes) {\n return new B(attributes);\n }\n\n static body(attributes) {\n return new Body(attributes);\n }\n\n static br(attributes) {\n return new Br(attributes);\n }\n\n static html(attributes) {\n return new Html(attributes);\n }\n\n static i(attributes) {\n return new I(attributes);\n }\n\n static li(attributes) {\n return new Li(attributes);\n }\n\n static ol(attributes) {\n return new Ol(attributes);\n }\n\n static p(attributes) {\n return new P(attributes);\n }\n\n static span(attributes) {\n return new Span(attributes);\n }\n\n static sub(attributes) {\n return new Sub(attributes);\n }\n\n static sup(attributes) {\n return new Sup(attributes);\n }\n\n static ul(attributes) {\n return new Ul(attributes);\n }\n}\n\nexport { XhtmlNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject } from \"./namespaces.js\";\nimport { XmlObject } from \"./xfa_object.js\";\n\nclass UnknownNamespace {\n constructor(nsId) {\n this.namespaceId = nsId;\n }\n\n [$buildXFAObject](name, attributes) {\n return new XmlObject(this.namespaceId, name, attributes);\n }\n}\n\nexport { UnknownNamespace };\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { stringToUTF8String, warn } from \"../shared/util.js\";\nimport { parseXFAPath } from \"./core_utils.js\";\nimport { SimpleXMLParser } from \"./xml_parser.js\";\n\nfunction decodeString(str) {\n try {\n return stringToUTF8String(str);\n } catch (ex) {\n warn(`UTF-8 decoding failed: \"${ex}\".`);\n return str;\n }\n}\n\nclass DatasetXMLParser extends SimpleXMLParser {\n constructor(options) {\n super(options);\n this.node = null;\n }\n\n onEndElement(name) {\n const node = super.onEndElement(name);\n if (node && name === \"xfa:datasets\") {\n this.node = node;\n\n // We don't need anything else, so just kill the parser.\n throw new Error(\"Aborting DatasetXMLParser.\");\n }\n }\n}\n\nclass DatasetReader {\n constructor(data) {\n if (data.datasets) {\n this.node = new SimpleXMLParser({ hasAttributes: true }).parseFromString(\n data.datasets\n ).documentElement;\n } else {\n const parser = new DatasetXMLParser({ hasAttributes: true });\n try {\n parser.parseFromString(data[\"xdp:xdp\"]);\n } catch (_) {}\n this.node = parser.node;\n }\n }\n\n getValue(path) {\n if (!this.node || !path) {\n return \"\";\n }\n const node = this.node.searchNode(parseXFAPath(path), 0);\n\n if (!node) {\n return \"\";\n }\n\n const first = node.firstChild;\n if (first && first.nodeName === \"value\") {\n return node.children.map(child => decodeString(child.textContent));\n }\n\n return decodeString(node.textContent);\n }\n}\n\nexport { DatasetReader };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n bytesToString,\n FormatError,\n info,\n InvalidPDFException,\n warn,\n} from \"../shared/util.js\";\nimport { CIRCULAR_REF, Cmd, Dict, isCmd, Ref, RefSet } from \"./primitives.js\";\nimport {\n DocStats,\n MissingDataException,\n ParserEOFException,\n XRefEntryException,\n XRefParseException,\n} from \"./core_utils.js\";\nimport { Lexer, Parser } from \"./parser.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { CipherTransformFactory } from \"./crypto.js\";\n\nclass XRef {\n constructor(stream, pdfManager) {\n this.stream = stream;\n this.pdfManager = pdfManager;\n this.entries = [];\n this.xrefstms = Object.create(null);\n this._cacheMap = new Map(); // Prepare the XRef cache.\n this._pendingRefs = new RefSet();\n this.stats = new DocStats(pdfManager.msgHandler);\n this._newRefNum = null;\n }\n\n getNewRef() {\n if (this._newRefNum === null) {\n this._newRefNum = this.entries.length;\n }\n return Ref.get(this._newRefNum++, 0);\n }\n\n resetNewRef() {\n this._newRefNum = null;\n }\n\n setStartXRef(startXRef) {\n // Store the starting positions of xref tables as we process them\n // so we can recover from missing data errors\n this.startXRefQueue = [startXRef];\n }\n\n parse(recoveryMode = false) {\n let trailerDict;\n if (!recoveryMode) {\n trailerDict = this.readXRef();\n } else {\n warn(\"Indexing all PDF objects\");\n trailerDict = this.indexObjects();\n }\n trailerDict.assignXref(this);\n this.trailer = trailerDict;\n\n let encrypt;\n try {\n encrypt = trailerDict.get(\"Encrypt\");\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`XRef.parse - Invalid \"Encrypt\" reference: \"${ex}\".`);\n }\n if (encrypt instanceof Dict) {\n const ids = trailerDict.get(\"ID\");\n const fileId = ids && ids.length ? ids[0] : \"\";\n // The 'Encrypt' dictionary itself should not be encrypted, and by\n // setting `suppressEncryption` we can prevent an infinite loop inside\n // of `XRef_fetchUncompressed` if the dictionary contains indirect\n // objects (fixes issue7665.pdf).\n encrypt.suppressEncryption = true;\n this.encrypt = new CipherTransformFactory(\n encrypt,\n fileId,\n this.pdfManager.password\n );\n }\n\n // Get the root dictionary (catalog) object, and do some basic validation.\n let root;\n try {\n root = trailerDict.get(\"Root\");\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`XRef.parse - Invalid \"Root\" reference: \"${ex}\".`);\n }\n if (root instanceof Dict) {\n try {\n const pages = root.get(\"Pages\");\n if (pages instanceof Dict) {\n this.root = root;\n return;\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`XRef.parse - Invalid \"Pages\" reference: \"${ex}\".`);\n }\n }\n\n if (!recoveryMode) {\n throw new XRefParseException();\n }\n // Even recovery failed, there's nothing more we can do here.\n throw new InvalidPDFException(\"Invalid Root reference.\");\n }\n\n processXRefTable(parser) {\n if (!(\"tableState\" in this)) {\n // Stores state of the table as we process it so we can resume\n // from middle of table in case of missing data error\n this.tableState = {\n entryNum: 0,\n streamPos: parser.lexer.stream.pos,\n parserBuf1: parser.buf1,\n parserBuf2: parser.buf2,\n };\n }\n\n const obj = this.readXRefTable(parser);\n\n // Sanity check\n if (!isCmd(obj, \"trailer\")) {\n throw new FormatError(\n \"Invalid XRef table: could not find trailer dictionary\"\n );\n }\n // Read trailer dictionary, e.g.\n // trailer\n // << /Size 22\n // /Root 20R\n // /Info 10R\n // /ID [ <81b14aafa313db63dbd6f981e49f94f4> ]\n // >>\n // The parser goes through the entire stream << ... >> and provides\n // a getter interface for the key-value table\n let dict = parser.getObj();\n\n // The pdflib PDF generator can generate a nested trailer dictionary\n if (!(dict instanceof Dict) && dict.dict) {\n dict = dict.dict;\n }\n if (!(dict instanceof Dict)) {\n throw new FormatError(\n \"Invalid XRef table: could not parse trailer dictionary\"\n );\n }\n delete this.tableState;\n\n return dict;\n }\n\n readXRefTable(parser) {\n // Example of cross-reference table:\n // xref\n // 0 1 <-- subsection header (first obj #, obj count)\n // 0000000000 65535 f <-- actual object (offset, generation #, f/n)\n // 23 2 <-- subsection header ... and so on ...\n // 0000025518 00002 n\n // 0000025635 00000 n\n // trailer\n // ...\n\n const stream = parser.lexer.stream;\n const tableState = this.tableState;\n stream.pos = tableState.streamPos;\n parser.buf1 = tableState.parserBuf1;\n parser.buf2 = tableState.parserBuf2;\n\n // Outer loop is over subsection headers\n let obj;\n\n while (true) {\n if (!(\"firstEntryNum\" in tableState) || !(\"entryCount\" in tableState)) {\n if (isCmd((obj = parser.getObj()), \"trailer\")) {\n break;\n }\n tableState.firstEntryNum = obj;\n tableState.entryCount = parser.getObj();\n }\n\n let first = tableState.firstEntryNum;\n const count = tableState.entryCount;\n if (!Number.isInteger(first) || !Number.isInteger(count)) {\n throw new FormatError(\n \"Invalid XRef table: wrong types in subsection header\"\n );\n }\n // Inner loop is over objects themselves\n for (let i = tableState.entryNum; i < count; i++) {\n tableState.streamPos = stream.pos;\n tableState.entryNum = i;\n tableState.parserBuf1 = parser.buf1;\n tableState.parserBuf2 = parser.buf2;\n\n const entry = {};\n entry.offset = parser.getObj();\n entry.gen = parser.getObj();\n const type = parser.getObj();\n\n if (type instanceof Cmd) {\n switch (type.cmd) {\n case \"f\":\n entry.free = true;\n break;\n case \"n\":\n entry.uncompressed = true;\n break;\n }\n }\n\n // Validate entry obj\n if (\n !Number.isInteger(entry.offset) ||\n !Number.isInteger(entry.gen) ||\n !(entry.free || entry.uncompressed)\n ) {\n throw new FormatError(\n `Invalid entry in XRef subsection: ${first}, ${count}`\n );\n }\n\n // The first xref table entry, i.e. obj 0, should be free. Attempting\n // to adjust an incorrect first obj # (fixes issue 3248 and 7229).\n if (i === 0 && entry.free && first === 1) {\n first = 0;\n }\n\n if (!this.entries[i + first]) {\n this.entries[i + first] = entry;\n }\n }\n\n tableState.entryNum = 0;\n tableState.streamPos = stream.pos;\n tableState.parserBuf1 = parser.buf1;\n tableState.parserBuf2 = parser.buf2;\n delete tableState.firstEntryNum;\n delete tableState.entryCount;\n }\n\n // Sanity check: as per spec, first object must be free\n if (this.entries[0] && !this.entries[0].free) {\n throw new FormatError(\"Invalid XRef table: unexpected first object\");\n }\n return obj;\n }\n\n processXRefStream(stream) {\n if (!(\"streamState\" in this)) {\n // Stores state of the stream as we process it so we can resume\n // from middle of stream in case of missing data error\n const streamParameters = stream.dict;\n const byteWidths = streamParameters.get(\"W\");\n let range = streamParameters.get(\"Index\");\n if (!range) {\n range = [0, streamParameters.get(\"Size\")];\n }\n\n this.streamState = {\n entryRanges: range,\n byteWidths,\n entryNum: 0,\n streamPos: stream.pos,\n };\n }\n this.readXRefStream(stream);\n delete this.streamState;\n\n return stream.dict;\n }\n\n readXRefStream(stream) {\n const streamState = this.streamState;\n stream.pos = streamState.streamPos;\n\n const [typeFieldWidth, offsetFieldWidth, generationFieldWidth] =\n streamState.byteWidths;\n\n const entryRanges = streamState.entryRanges;\n while (entryRanges.length > 0) {\n const [first, n] = entryRanges;\n\n if (!Number.isInteger(first) || !Number.isInteger(n)) {\n throw new FormatError(`Invalid XRef range fields: ${first}, ${n}`);\n }\n if (\n !Number.isInteger(typeFieldWidth) ||\n !Number.isInteger(offsetFieldWidth) ||\n !Number.isInteger(generationFieldWidth)\n ) {\n throw new FormatError(\n `Invalid XRef entry fields length: ${first}, ${n}`\n );\n }\n for (let i = streamState.entryNum; i < n; ++i) {\n streamState.entryNum = i;\n streamState.streamPos = stream.pos;\n\n let type = 0,\n offset = 0,\n generation = 0;\n for (let j = 0; j < typeFieldWidth; ++j) {\n const typeByte = stream.getByte();\n if (typeByte === -1) {\n throw new FormatError(\"Invalid XRef byteWidths 'type'.\");\n }\n type = (type << 8) | typeByte;\n }\n // if type field is absent, its default value is 1\n if (typeFieldWidth === 0) {\n type = 1;\n }\n for (let j = 0; j < offsetFieldWidth; ++j) {\n const offsetByte = stream.getByte();\n if (offsetByte === -1) {\n throw new FormatError(\"Invalid XRef byteWidths 'offset'.\");\n }\n offset = (offset << 8) | offsetByte;\n }\n for (let j = 0; j < generationFieldWidth; ++j) {\n const generationByte = stream.getByte();\n if (generationByte === -1) {\n throw new FormatError(\"Invalid XRef byteWidths 'generation'.\");\n }\n generation = (generation << 8) | generationByte;\n }\n const entry = {};\n entry.offset = offset;\n entry.gen = generation;\n switch (type) {\n case 0:\n entry.free = true;\n break;\n case 1:\n entry.uncompressed = true;\n break;\n case 2:\n break;\n default:\n throw new FormatError(`Invalid XRef entry type: ${type}`);\n }\n if (!this.entries[first + i]) {\n this.entries[first + i] = entry;\n }\n }\n\n streamState.entryNum = 0;\n streamState.streamPos = stream.pos;\n entryRanges.splice(0, 2);\n }\n }\n\n indexObjects() {\n // Simple scan through the PDF content to find objects,\n // trailers and XRef streams.\n const TAB = 0x9,\n LF = 0xa,\n CR = 0xd,\n SPACE = 0x20;\n const PERCENT = 0x25,\n LT = 0x3c;\n\n function readToken(data, offset) {\n let token = \"\",\n ch = data[offset];\n while (ch !== LF && ch !== CR && ch !== LT) {\n if (++offset >= data.length) {\n break;\n }\n token += String.fromCharCode(ch);\n ch = data[offset];\n }\n return token;\n }\n function skipUntil(data, offset, what) {\n const length = what.length,\n dataLength = data.length;\n let skipped = 0;\n // finding byte sequence\n while (offset < dataLength) {\n let i = 0;\n while (i < length && data[offset + i] === what[i]) {\n ++i;\n }\n if (i >= length) {\n break; // sequence found\n }\n offset++;\n skipped++;\n }\n return skipped;\n }\n const objRegExp = /^(\\d+)\\s+(\\d+)\\s+obj\\b/;\n const endobjRegExp = /\\bendobj[\\b\\s]$/;\n const nestedObjRegExp = /\\s+(\\d+\\s+\\d+\\s+obj[\\b\\s<])$/;\n const CHECK_CONTENT_LENGTH = 25;\n\n const trailerBytes = new Uint8Array([116, 114, 97, 105, 108, 101, 114]);\n const startxrefBytes = new Uint8Array([\n 115, 116, 97, 114, 116, 120, 114, 101, 102,\n ]);\n const objBytes = new Uint8Array([111, 98, 106]);\n const xrefBytes = new Uint8Array([47, 88, 82, 101, 102]);\n\n // Clear out any existing entries, since they may be bogus.\n this.entries.length = 0;\n this._cacheMap.clear();\n\n const stream = this.stream;\n stream.pos = 0;\n const buffer = stream.getBytes(),\n length = buffer.length;\n let position = stream.start;\n const trailers = [],\n xrefStms = [];\n while (position < length) {\n let ch = buffer[position];\n if (ch === TAB || ch === LF || ch === CR || ch === SPACE) {\n ++position;\n continue;\n }\n if (ch === PERCENT) {\n // %-comment\n do {\n ++position;\n if (position >= length) {\n break;\n }\n ch = buffer[position];\n } while (ch !== LF && ch !== CR);\n continue;\n }\n const token = readToken(buffer, position);\n let m;\n if (\n token.startsWith(\"xref\") &&\n (token.length === 4 || /\\s/.test(token[4]))\n ) {\n position += skipUntil(buffer, position, trailerBytes);\n trailers.push(position);\n position += skipUntil(buffer, position, startxrefBytes);\n } else if ((m = objRegExp.exec(token))) {\n const num = m[1] | 0,\n gen = m[2] | 0;\n\n let contentLength,\n startPos = position + token.length,\n updateEntries = false;\n if (!this.entries[num]) {\n updateEntries = true;\n } else if (this.entries[num].gen === gen) {\n // Before overwriting an existing entry, ensure that the new one won't\n // cause *immediate* errors when it's accessed (fixes issue13783.pdf).\n try {\n const parser = new Parser({\n lexer: new Lexer(stream.makeSubStream(startPos)),\n });\n parser.getObj();\n updateEntries = true;\n } catch (ex) {\n if (ex instanceof ParserEOFException) {\n warn(`indexObjects -- checking object (${token}): \"${ex}\".`);\n } else {\n // The error may come from the `Parser`-instance being initialized\n // without an `XRef`-instance (we don't have a usable one yet).\n updateEntries = true;\n }\n }\n }\n if (updateEntries) {\n this.entries[num] = {\n offset: position - stream.start,\n gen,\n uncompressed: true,\n };\n }\n\n // Find the next \"obj\" string, rather than \"endobj\", to ensure that\n // we won't skip over a new 'obj' operator in corrupt files where\n // 'endobj' operators are missing (fixes issue9105_reduced.pdf).\n while (startPos < buffer.length) {\n const endPos = startPos + skipUntil(buffer, startPos, objBytes) + 4;\n contentLength = endPos - position;\n\n const checkPos = Math.max(endPos - CHECK_CONTENT_LENGTH, startPos);\n const tokenStr = bytesToString(buffer.subarray(checkPos, endPos));\n\n // Check if the current object ends with an 'endobj' operator.\n if (endobjRegExp.test(tokenStr)) {\n break;\n } else {\n // Check if an \"obj\" occurrence is actually a new object,\n // i.e. the current object is missing the 'endobj' operator.\n const objToken = nestedObjRegExp.exec(tokenStr);\n\n if (objToken && objToken[1]) {\n warn(\n 'indexObjects: Found new \"obj\" inside of another \"obj\", ' +\n 'caused by missing \"endobj\" -- trying to recover.'\n );\n contentLength -= objToken[1].length;\n break;\n }\n }\n startPos = endPos;\n }\n const content = buffer.subarray(position, position + contentLength);\n\n // checking XRef stream suspect\n // (it shall have '/XRef' and next char is not a letter)\n const xrefTagOffset = skipUntil(content, 0, xrefBytes);\n if (xrefTagOffset < contentLength && content[xrefTagOffset + 5] < 64) {\n xrefStms.push(position - stream.start);\n this.xrefstms[position - stream.start] = 1; // Avoid recursion\n }\n\n position += contentLength;\n } else if (\n token.startsWith(\"trailer\") &&\n (token.length === 7 || /\\s/.test(token[7]))\n ) {\n trailers.push(position);\n position += skipUntil(buffer, position, startxrefBytes);\n } else {\n position += token.length + 1;\n }\n }\n // reading XRef streams\n for (let i = 0, ii = xrefStms.length; i < ii; ++i) {\n this.startXRefQueue.push(xrefStms[i]);\n this.readXRef(/* recoveryMode */ true);\n }\n // finding main trailer\n let trailerDict;\n for (let i = 0, ii = trailers.length; i < ii; ++i) {\n stream.pos = trailers[i];\n const parser = new Parser({\n lexer: new Lexer(stream),\n xref: this,\n allowStreams: true,\n recoveryMode: true,\n });\n const obj = parser.getObj();\n if (!isCmd(obj, \"trailer\")) {\n continue;\n }\n // read the trailer dictionary\n const dict = parser.getObj();\n if (!(dict instanceof Dict)) {\n continue;\n }\n // Do some basic validation of the trailer/root dictionary candidate.\n try {\n const rootDict = dict.get(\"Root\");\n if (!(rootDict instanceof Dict)) {\n continue;\n }\n const pagesDict = rootDict.get(\"Pages\");\n if (!(pagesDict instanceof Dict)) {\n continue;\n }\n const pagesCount = pagesDict.get(\"Count\");\n if (!Number.isInteger(pagesCount)) {\n continue;\n }\n // The top-level /Pages dictionary isn't obviously corrupt.\n } catch (ex) {\n continue;\n }\n // taking the first one with 'ID'\n if (dict.has(\"ID\")) {\n return dict;\n }\n // The current dictionary is a candidate, but continue searching.\n trailerDict = dict;\n }\n // No trailer with 'ID', taking last one (if exists).\n if (trailerDict) {\n return trailerDict;\n }\n // No trailer dictionary found, taking the \"top\"-dictionary (if exists).\n if (this.topDict) {\n return this.topDict;\n }\n // nothing helps\n throw new InvalidPDFException(\"Invalid PDF structure.\");\n }\n\n readXRef(recoveryMode = false) {\n const stream = this.stream;\n // Keep track of already parsed XRef tables, to prevent an infinite loop\n // when parsing corrupt PDF files where e.g. the /Prev entries create a\n // circular dependency between tables (fixes bug1393476.pdf).\n const startXRefParsedCache = new Set();\n\n try {\n while (this.startXRefQueue.length) {\n const startXRef = this.startXRefQueue[0];\n\n if (startXRefParsedCache.has(startXRef)) {\n warn(\"readXRef - skipping XRef table since it was already parsed.\");\n this.startXRefQueue.shift();\n continue;\n }\n startXRefParsedCache.add(startXRef);\n\n stream.pos = startXRef + stream.start;\n\n const parser = new Parser({\n lexer: new Lexer(stream),\n xref: this,\n allowStreams: true,\n });\n let obj = parser.getObj();\n let dict;\n\n // Get dictionary\n if (isCmd(obj, \"xref\")) {\n // Parse end-of-file XRef\n dict = this.processXRefTable(parser);\n if (!this.topDict) {\n this.topDict = dict;\n }\n\n // Recursively get other XRefs 'XRefStm', if any\n obj = dict.get(\"XRefStm\");\n if (Number.isInteger(obj)) {\n const pos = obj;\n // ignore previously loaded xref streams\n // (possible infinite recursion)\n if (!(pos in this.xrefstms)) {\n this.xrefstms[pos] = 1;\n this.startXRefQueue.push(pos);\n }\n }\n } else if (Number.isInteger(obj)) {\n // Parse in-stream XRef\n if (\n !Number.isInteger(parser.getObj()) ||\n !isCmd(parser.getObj(), \"obj\") ||\n !((obj = parser.getObj()) instanceof BaseStream)\n ) {\n throw new FormatError(\"Invalid XRef stream\");\n }\n dict = this.processXRefStream(obj);\n if (!this.topDict) {\n this.topDict = dict;\n }\n if (!dict) {\n throw new FormatError(\"Failed to read XRef stream\");\n }\n } else {\n throw new FormatError(\"Invalid XRef stream header\");\n }\n\n // Recursively get previous dictionary, if any\n obj = dict.get(\"Prev\");\n if (Number.isInteger(obj)) {\n this.startXRefQueue.push(obj);\n } else if (obj instanceof Ref) {\n // The spec says Prev must not be a reference, i.e. \"/Prev NNN\"\n // This is a fallback for non-compliant PDFs, i.e. \"/Prev NNN 0 R\"\n this.startXRefQueue.push(obj.num);\n }\n\n this.startXRefQueue.shift();\n }\n\n return this.topDict;\n } catch (e) {\n if (e instanceof MissingDataException) {\n throw e;\n }\n info(\"(while reading XRef): \" + e);\n\n this.startXRefQueue.shift();\n }\n\n if (recoveryMode) {\n return undefined;\n }\n throw new XRefParseException();\n }\n\n getEntry(i) {\n const xrefEntry = this.entries[i];\n if (xrefEntry && !xrefEntry.free && xrefEntry.offset) {\n return xrefEntry;\n }\n return null;\n }\n\n fetchIfRef(obj, suppressEncryption = false) {\n if (obj instanceof Ref) {\n return this.fetch(obj, suppressEncryption);\n }\n return obj;\n }\n\n fetch(ref, suppressEncryption = false) {\n if (!(ref instanceof Ref)) {\n throw new Error(\"ref object is not a reference\");\n }\n const num = ref.num;\n\n // The XRef cache is populated with objects which are obtained through\n // `Parser.getObj`, and indirectly via `Lexer.getObj`. Neither of these\n // methods should ever return `undefined` (note the `assert` calls below).\n const cacheEntry = this._cacheMap.get(num);\n if (cacheEntry !== undefined) {\n // In documents with Object Streams, it's possible that cached `Dict`s\n // have not been assigned an `objId` yet (see e.g. issue3115r.pdf).\n if (cacheEntry instanceof Dict && !cacheEntry.objId) {\n cacheEntry.objId = ref.toString();\n }\n return cacheEntry;\n }\n let xrefEntry = this.getEntry(num);\n\n if (xrefEntry === null) {\n // The referenced entry can be free.\n this._cacheMap.set(num, xrefEntry);\n return xrefEntry;\n }\n // Prevent circular references, in corrupt PDF documents, from hanging the\n // worker-thread. This relies, implicitly, on the parsing being synchronous.\n if (this._pendingRefs.has(ref)) {\n this._pendingRefs.remove(ref);\n\n warn(`Ignoring circular reference: ${ref}.`);\n return CIRCULAR_REF;\n }\n this._pendingRefs.put(ref);\n\n try {\n if (xrefEntry.uncompressed) {\n xrefEntry = this.fetchUncompressed(ref, xrefEntry, suppressEncryption);\n } else {\n xrefEntry = this.fetchCompressed(ref, xrefEntry, suppressEncryption);\n }\n this._pendingRefs.remove(ref);\n } catch (ex) {\n this._pendingRefs.remove(ref);\n throw ex;\n }\n if (xrefEntry instanceof Dict) {\n xrefEntry.objId = ref.toString();\n } else if (xrefEntry instanceof BaseStream) {\n xrefEntry.dict.objId = ref.toString();\n }\n return xrefEntry;\n }\n\n fetchUncompressed(ref, xrefEntry, suppressEncryption = false) {\n const gen = ref.gen;\n let num = ref.num;\n if (xrefEntry.gen !== gen) {\n throw new XRefEntryException(`Inconsistent generation in XRef: ${ref}`);\n }\n const stream = this.stream.makeSubStream(\n xrefEntry.offset + this.stream.start\n );\n const parser = new Parser({\n lexer: new Lexer(stream),\n xref: this,\n allowStreams: true,\n });\n const obj1 = parser.getObj();\n const obj2 = parser.getObj();\n const obj3 = parser.getObj();\n\n if (obj1 !== num || obj2 !== gen || !(obj3 instanceof Cmd)) {\n throw new XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`);\n }\n if (obj3.cmd !== \"obj\") {\n // some bad PDFs use \"obj1234\" and really mean 1234\n if (obj3.cmd.startsWith(\"obj\")) {\n num = parseInt(obj3.cmd.substring(3), 10);\n if (!Number.isNaN(num)) {\n return num;\n }\n }\n throw new XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`);\n }\n if (this.encrypt && !suppressEncryption) {\n xrefEntry = parser.getObj(this.encrypt.createCipherTransform(num, gen));\n } else {\n xrefEntry = parser.getObj();\n }\n if (!(xrefEntry instanceof BaseStream)) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n xrefEntry !== undefined,\n 'fetchUncompressed: The \"xrefEntry\" cannot be undefined.'\n );\n }\n this._cacheMap.set(num, xrefEntry);\n }\n return xrefEntry;\n }\n\n fetchCompressed(ref, xrefEntry, suppressEncryption = false) {\n const tableOffset = xrefEntry.offset;\n const stream = this.fetch(Ref.get(tableOffset, 0));\n if (!(stream instanceof BaseStream)) {\n throw new FormatError(\"bad ObjStm stream\");\n }\n const first = stream.dict.get(\"First\");\n const n = stream.dict.get(\"N\");\n if (!Number.isInteger(first) || !Number.isInteger(n)) {\n throw new FormatError(\"invalid first and n parameters for ObjStm stream\");\n }\n let parser = new Parser({\n lexer: new Lexer(stream),\n xref: this,\n allowStreams: true,\n });\n const nums = new Array(n);\n const offsets = new Array(n);\n // read the object numbers to populate cache\n for (let i = 0; i < n; ++i) {\n const num = parser.getObj();\n if (!Number.isInteger(num)) {\n throw new FormatError(\n `invalid object number in the ObjStm stream: ${num}`\n );\n }\n const offset = parser.getObj();\n if (!Number.isInteger(offset)) {\n throw new FormatError(\n `invalid object offset in the ObjStm stream: ${offset}`\n );\n }\n nums[i] = num;\n offsets[i] = offset;\n }\n\n const start = (stream.start || 0) + first;\n const entries = new Array(n);\n // read stream objects for cache\n for (let i = 0; i < n; ++i) {\n const length = i < n - 1 ? offsets[i + 1] - offsets[i] : undefined;\n if (length < 0) {\n throw new FormatError(\"Invalid offset in the ObjStm stream.\");\n }\n parser = new Parser({\n lexer: new Lexer(\n stream.makeSubStream(start + offsets[i], length, stream.dict)\n ),\n xref: this,\n allowStreams: true,\n });\n\n const obj = parser.getObj();\n entries[i] = obj;\n if (obj instanceof BaseStream) {\n continue;\n }\n const num = nums[i],\n entry = this.entries[num];\n if (entry && entry.offset === tableOffset && entry.gen === i) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n obj !== undefined,\n 'fetchCompressed: The \"obj\" cannot be undefined.'\n );\n }\n this._cacheMap.set(num, obj);\n }\n }\n xrefEntry = entries[xrefEntry.gen];\n if (xrefEntry === undefined) {\n throw new XRefEntryException(`Bad (compressed) XRef entry: ${ref}`);\n }\n return xrefEntry;\n }\n\n async fetchIfRefAsync(obj, suppressEncryption) {\n if (obj instanceof Ref) {\n return this.fetchAsync(obj, suppressEncryption);\n }\n return obj;\n }\n\n async fetchAsync(ref, suppressEncryption) {\n try {\n return this.fetch(ref, suppressEncryption);\n } catch (ex) {\n if (!(ex instanceof MissingDataException)) {\n throw ex;\n }\n await this.pdfManager.requestRange(ex.begin, ex.end);\n return this.fetchAsync(ref, suppressEncryption);\n }\n }\n\n getCatalogObj() {\n return this.root;\n }\n}\n\nexport { XRef };\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AbortException,\n assert,\n createPromiseCapability,\n MissingPDFException,\n PasswordException,\n UnexpectedResponseException,\n UnknownErrorException,\n unreachable,\n} from \"./util.js\";\n\nconst CallbackKind = {\n UNKNOWN: 0,\n DATA: 1,\n ERROR: 2,\n};\n\nconst StreamKind = {\n UNKNOWN: 0,\n CANCEL: 1,\n CANCEL_COMPLETE: 2,\n CLOSE: 3,\n ENQUEUE: 4,\n ERROR: 5,\n PULL: 6,\n PULL_COMPLETE: 7,\n START_COMPLETE: 8,\n};\n\nfunction wrapReason(reason) {\n if (\n !(\n reason instanceof Error ||\n (typeof reason === \"object\" && reason !== null)\n )\n ) {\n unreachable(\n 'wrapReason: Expected \"reason\" to be a (possibly cloned) Error.'\n );\n }\n switch (reason.name) {\n case \"AbortException\":\n return new AbortException(reason.message);\n case \"MissingPDFException\":\n return new MissingPDFException(reason.message);\n case \"PasswordException\":\n return new PasswordException(reason.message, reason.code);\n case \"UnexpectedResponseException\":\n return new UnexpectedResponseException(reason.message, reason.status);\n case \"UnknownErrorException\":\n return new UnknownErrorException(reason.message, reason.details);\n default:\n return new UnknownErrorException(reason.message, reason.toString());\n }\n}\n\nclass MessageHandler {\n constructor(sourceName, targetName, comObj) {\n this.sourceName = sourceName;\n this.targetName = targetName;\n this.comObj = comObj;\n this.callbackId = 1;\n this.streamId = 1;\n this.streamSinks = Object.create(null);\n this.streamControllers = Object.create(null);\n this.callbackCapabilities = Object.create(null);\n this.actionHandler = Object.create(null);\n\n this._onComObjOnMessage = event => {\n const data = event.data;\n if (data.targetName !== this.sourceName) {\n return;\n }\n if (data.stream) {\n this._processStreamMessage(data);\n return;\n }\n if (data.callback) {\n const callbackId = data.callbackId;\n const capability = this.callbackCapabilities[callbackId];\n if (!capability) {\n throw new Error(`Cannot resolve callback ${callbackId}`);\n }\n delete this.callbackCapabilities[callbackId];\n\n if (data.callback === CallbackKind.DATA) {\n capability.resolve(data.data);\n } else if (data.callback === CallbackKind.ERROR) {\n capability.reject(wrapReason(data.reason));\n } else {\n throw new Error(\"Unexpected callback case\");\n }\n return;\n }\n const action = this.actionHandler[data.action];\n if (!action) {\n throw new Error(`Unknown action from worker: ${data.action}`);\n }\n if (data.callbackId) {\n const cbSourceName = this.sourceName;\n const cbTargetName = data.sourceName;\n\n new Promise(function (resolve) {\n resolve(action(data.data));\n }).then(\n function (result) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.DATA,\n callbackId: data.callbackId,\n data: result,\n });\n },\n function (reason) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.ERROR,\n callbackId: data.callbackId,\n reason: wrapReason(reason),\n });\n }\n );\n return;\n }\n if (data.streamId) {\n this._createStreamSink(data);\n return;\n }\n action(data.data);\n };\n comObj.addEventListener(\"message\", this._onComObjOnMessage);\n }\n\n on(actionName, handler) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n typeof handler === \"function\",\n 'MessageHandler.on: Expected \"handler\" to be a function.'\n );\n }\n const ah = this.actionHandler;\n if (ah[actionName]) {\n throw new Error(`There is already an actionName called \"${actionName}\"`);\n }\n ah[actionName] = handler;\n }\n\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * @param {string} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n */\n send(actionName, data, transfers) {\n this.comObj.postMessage(\n {\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data,\n },\n transfers\n );\n }\n\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * Expects that the other side will callback with the response.\n * @param {string} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n * @returns {Promise} Promise to be resolved with response data.\n */\n sendWithPromise(actionName, data, transfers) {\n const callbackId = this.callbackId++;\n const capability = createPromiseCapability();\n this.callbackCapabilities[callbackId] = capability;\n try {\n this.comObj.postMessage(\n {\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n callbackId,\n data,\n },\n transfers\n );\n } catch (ex) {\n capability.reject(ex);\n }\n return capability.promise;\n }\n\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * Expect that the other side will callback to signal 'start_complete'.\n * @param {string} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Object} queueingStrategy - Strategy to signal backpressure based on\n * internal queue.\n * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n * @returns {ReadableStream} ReadableStream to read data in chunks.\n */\n sendWithStream(actionName, data, queueingStrategy, transfers) {\n const streamId = this.streamId++,\n sourceName = this.sourceName,\n targetName = this.targetName,\n comObj = this.comObj;\n\n return new ReadableStream(\n {\n start: controller => {\n const startCapability = createPromiseCapability();\n this.streamControllers[streamId] = {\n controller,\n startCall: startCapability,\n pullCall: null,\n cancelCall: null,\n isClosed: false,\n };\n comObj.postMessage(\n {\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize,\n },\n transfers\n );\n // Return Promise for Async process, to signal success/failure.\n return startCapability.promise;\n },\n\n pull: controller => {\n const pullCapability = createPromiseCapability();\n this.streamControllers[streamId].pullCall = pullCapability;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL,\n streamId,\n desiredSize: controller.desiredSize,\n });\n // Returning Promise will not call \"pull\"\n // again until current pull is resolved.\n return pullCapability.promise;\n },\n\n cancel: reason => {\n assert(reason instanceof Error, \"cancel must have a valid reason\");\n const cancelCapability = createPromiseCapability();\n this.streamControllers[streamId].cancelCall = cancelCapability;\n this.streamControllers[streamId].isClosed = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL,\n streamId,\n reason: wrapReason(reason),\n });\n // Return Promise to signal success or failure.\n return cancelCapability.promise;\n },\n },\n queueingStrategy\n );\n }\n\n /**\n * @private\n */\n _createStreamSink(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const self = this,\n action = this.actionHandler[data.action];\n\n const streamSink = {\n enqueue(chunk, size = 1, transfers) {\n if (this.isCancelled) {\n return;\n }\n const lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n // Enqueue decreases the desiredSize property of sink,\n // so when it changes from positive to negative,\n // set ready as unresolved promise.\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = createPromiseCapability();\n this.ready = this.sinkCapability.promise;\n }\n comObj.postMessage(\n {\n sourceName,\n targetName,\n stream: StreamKind.ENQUEUE,\n streamId,\n chunk,\n },\n transfers\n );\n },\n\n close() {\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CLOSE,\n streamId,\n });\n delete self.streamSinks[streamId];\n },\n\n error(reason) {\n assert(reason instanceof Error, \"error must have a valid reason\");\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ERROR,\n streamId,\n reason: wrapReason(reason),\n });\n },\n\n sinkCapability: createPromiseCapability(),\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: data.desiredSize,\n ready: null,\n };\n\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n\n new Promise(function (resolve) {\n resolve(action(data.data, streamSink));\n }).then(\n function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n success: true,\n });\n },\n function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n reason: wrapReason(reason),\n });\n }\n );\n }\n\n /**\n * @private\n */\n _processStreamMessage(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const streamController = this.streamControllers[streamId],\n streamSink = this.streamSinks[streamId];\n\n switch (data.stream) {\n case StreamKind.START_COMPLETE:\n if (data.success) {\n streamController.startCall.resolve();\n } else {\n streamController.startCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n streamController.pullCall.resolve();\n } else {\n streamController.pullCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL:\n // Ignore any pull after close is called.\n if (!streamSink) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true,\n });\n break;\n }\n // Pull increases the desiredSize property of sink, so when it changes\n // from negative to positive, set ready property as resolved promise.\n if (streamSink.desiredSize <= 0 && data.desiredSize > 0) {\n streamSink.sinkCapability.resolve();\n }\n // Reset desiredSize property of sink on every pull.\n streamSink.desiredSize = data.desiredSize;\n\n new Promise(function (resolve) {\n resolve(streamSink.onPull && streamSink.onPull());\n }).then(\n function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true,\n });\n },\n function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n reason: wrapReason(reason),\n });\n }\n );\n break;\n case StreamKind.ENQUEUE:\n assert(streamController, \"enqueue should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.controller.enqueue(data.chunk);\n break;\n case StreamKind.CLOSE:\n assert(streamController, \"close should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.isClosed = true;\n streamController.controller.close();\n this._deleteStreamController(streamController, streamId);\n break;\n case StreamKind.ERROR:\n assert(streamController, \"error should have stream controller\");\n streamController.controller.error(wrapReason(data.reason));\n this._deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n streamController.cancelCall.resolve();\n } else {\n streamController.cancelCall.reject(wrapReason(data.reason));\n }\n this._deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL:\n if (!streamSink) {\n break;\n }\n\n new Promise(function (resolve) {\n resolve(\n streamSink.onCancel && streamSink.onCancel(wrapReason(data.reason))\n );\n }).then(\n function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n success: true,\n });\n },\n function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n reason: wrapReason(reason),\n });\n }\n );\n streamSink.sinkCapability.reject(wrapReason(data.reason));\n streamSink.isCancelled = true;\n delete this.streamSinks[streamId];\n break;\n default:\n throw new Error(\"Unexpected stream case\");\n }\n }\n\n /**\n * @private\n */\n async _deleteStreamController(streamController, streamId) {\n // Delete the `streamController` only when the start, pull, and cancel\n // capabilities have settled, to prevent `TypeError`s.\n await Promise.allSettled([\n streamController.startCall && streamController.startCall.promise,\n streamController.pullCall && streamController.pullCall.promise,\n streamController.cancelCall && streamController.cancelCall.promise,\n ]);\n delete this.streamControllers[streamId];\n }\n\n destroy() {\n this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n }\n}\n\nexport { MessageHandler };\n","/* Copyright 2019 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert } from \"../shared/util.js\";\n\n/** @implements {IPDFStream} */\nclass PDFWorkerStream {\n constructor(msgHandler) {\n this._msgHandler = msgHandler;\n this._contentLength = null;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n getFullReader() {\n assert(\n !this._fullRequestReader,\n \"PDFWorkerStream.getFullReader can only be called once.\"\n );\n this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler);\n return this._fullRequestReader;\n }\n\n getRangeReader(begin, end) {\n const reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\n\n/** @implements {IPDFStreamReader} */\nclass PDFWorkerStreamReader {\n constructor(msgHandler) {\n this._msgHandler = msgHandler;\n this.onProgress = null;\n\n this._contentLength = null;\n this._isRangeSupported = false;\n this._isStreamingSupported = false;\n\n const readableStream = this._msgHandler.sendWithStream(\"GetReader\");\n this._reader = readableStream.getReader();\n\n this._headersReady = this._msgHandler\n .sendWithPromise(\"ReaderHeadersReady\")\n .then(data => {\n this._isStreamingSupported = data.isStreamingSupported;\n this._isRangeSupported = data.isRangeSupported;\n this._contentLength = data.contentLength;\n });\n }\n\n get headersReady() {\n return this._headersReady;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n async read() {\n const { value, done } = await this._reader.read();\n if (done) {\n return { value: undefined, done: true };\n }\n // `value` is wrapped into Uint8Array, we need to\n // unwrap it to ArrayBuffer for further processing.\n return { value: value.buffer, done: false };\n }\n\n cancel(reason) {\n this._reader.cancel(reason);\n }\n}\n\n/** @implements {IPDFStreamRangeReader} */\nclass PDFWorkerStreamRangeReader {\n constructor(begin, end, msgHandler) {\n this._msgHandler = msgHandler;\n this.onProgress = null;\n\n const readableStream = this._msgHandler.sendWithStream(\"GetRangeReader\", {\n begin,\n end,\n });\n this._reader = readableStream.getReader();\n }\n\n get isStreamingSupported() {\n return false;\n }\n\n async read() {\n const { value, done } = await this._reader.read();\n if (done) {\n return { value: undefined, done: true };\n }\n return { value: value.buffer, done: false };\n }\n\n cancel(reason) {\n this._reader.cancel(reason);\n }\n}\n\nexport { PDFWorkerStream };\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __w_pdfjs_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__w_pdfjs_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__w_pdfjs_require__.o(definition, key) && !__w_pdfjs_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__w_pdfjs_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__w_pdfjs_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WorkerMessageHandler } from \"./core/worker.js\";\n\n/* eslint-disable-next-line no-unused-vars */\nconst pdfjsVersion = PDFJSDev.eval(\"BUNDLE_VERSION\");\n/* eslint-disable-next-line no-unused-vars */\nconst pdfjsBuild = PDFJSDev.eval(\"BUNDLE_BUILD\");\n\nexport { WorkerMessageHandler };\n"],"names":["WorkerTask","constructor","name","terminated","_capability","createPromiseCapability","finished","promise","finish","resolve","terminate","ensureNotTerminated","Error","WorkerMessageHandler","setup","handler","port","testMessageProcessed","on","wphSetupTest","data","send","Uint8Array","wphConfigure","setVerbosityLevel","verbosity","wphSetupDoc","createDocumentHandler","docParams","pdfManager","cancelXHRs","WorkerTasks","getVerbosityLevel","apiVersion","workerVersion","enumerableProperties","property","push","length","join","ReadableStream","partialMsg","isNodeJS","docId","docBaseUrl","workerHandlerName","MessageHandler","startWorkerTask","task","finishWorkerTask","i","indexOf","splice","loadDocument","recoveryMode","ensureDoc","isPureXfa","Promise","all","loadXfaFonts","catch","reason","then","loadXfaImages","numPages","fingerprints","structureTree","htmlForXfa","getPdfManager","evaluatorOptions","enableXfa","pdfManagerCapability","newPdfManager","source","LocalPdfManager","password","ex","reject","pdfStream","cachedChunks","PDFWorkerStream","fullRequest","getFullReader","headersReady","isRangeSupported","disableAutoFetch","isStreamingSupported","NetworkPdfManager","msgHandler","contentLength","rangeChunkSize","sendProgressiveData","loaded","flushChunks","pdfFile","arraysToBytes","warn","readPromise","readChunk","value","done","arrayByteLength","total","Math","max","read","e","cancelAllRequests","setupDoc","onSuccess","doc","pdfInfo","onFailure","PasswordException","code","sendWithPromise","updatePassword","pdfManagerReady","InvalidPDFException","MissingPDFException","UnexpectedResponseException","UnknownErrorException","message","toString","XRefParseException","requestLoadedStream","onLoadedStream","maxImageSize","disableFontFace","ignoreErrors","isEvalSupported","fontExtraProperties","useSystemFonts","cMapUrl","standardFontDataUrl","AbortException","stream","bytes","byteLength","wphSetupGetPage","getPage","pageIndex","page","ensure","rotate","ref","userUnit","view","wphSetupGetPageIndex","pageRef","Ref","get","num","gen","ensureCatalog","wphSetupGetDestinations","wphSetupGetDestination","id","wphSetupGetPageLabels","wphSetupGetPageLayout","wphSetupGetPageMode","wphSetupGetAttachments","wphSetupGetJavaScript","wphSetupGetDocJSActions","wphSetupGetOutline","wphSetupGetMetadata","wphSetupGetMarkInfo","wphSetupGetData","intent","getAnnotationsData","annotationStorage","filename","promises","serializeXfaData","save","finally","acroForm","acroFormRef","xref","startXRef","newRefs","xfaData","refs","filter","x","reduce","a","b","concat","xfa","Dict","xfaDatasetsRef","hasXfaDatasetsEntry","Array","isArray","ii","getNewRef","newXrefInfo","Object","create","trailer","infoObj","xrefInfo","forEach","key","stringToPDFString","rootRef","getRaw","encryptRef","newRef","infoRef","info","fileIds","resetNewRef","incrementalUpdate","originalData","hasXfa","wphSetupRenderPage","sink","start","VerbosityLevel","INFOS","Date","now","getOperatorList","cacheKey","operatorListInfo","close","featureId","UNSUPPORTED_FEATURES","errorOperatorList","error","wphExtractText","extractTextContent","includeMarkedContent","combineTextItems","wphGetStructTree","fontFallback","wphCleanup","cleanup","wphTerminate","waitOn","cleanupPromise","clearGlobalCaches","destroy","wphReady","initializeFromPort","isMessagePort","maybePort","postMessage","window","self","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","RenderingIntentFlag","ANY","DISPLAY","PRINT","ANNOTATIONS_FORMS","ANNOTATIONS_STORAGE","ANNOTATIONS_DISABLE","OPLIST","AnnotationMode","DISABLE","ENABLE","ENABLE_FORMS","ENABLE_STORAGE","PermissionFlag","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","TextRenderingMode","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","ImageKind","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","AnnotationType","TEXT","LINK","FREETEXT","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","STAMP","CARET","INK","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","AnnotationStateModelType","MARKED","REVIEW","AnnotationMarkedState","UNMARKED","AnnotationReviewState","ACCEPTED","REJECTED","CANCELLED","COMPLETED","NONE","AnnotationReplyType","GROUP","REPLY","AnnotationFlag","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","AnnotationFieldFlag","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","AnnotationBorderStyleType","SOLID","DASHED","BEVELED","INSET","AnnotationActionEventType","E","X","D","U","Fo","Bl","PO","PC","PV","PI","K","F","V","C","DocumentActionEventType","WC","WS","DS","WP","DP","PageActionEventType","O","StreamType","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RLX","FontType","TYPE1","TYPE1STANDARD","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","ERRORS","WARNINGS","CMapCompressionType","BINARY","STREAM","OPS","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","boundingBoxes","operationPosition","unknown","forms","javaScript","signatures","smask","shadingPattern","font","errorTilingPattern","errorExtGState","errorXObject","errorFontLoadType3","errorFontState","errorFontMissing","errorFontTranslate","errorColorSpace","errorFontToUnicode","errorFontLoadNative","errorFontBuildPath","errorFontGetPath","errorMarkedContent","errorContentSubStream","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","level","Number","isInteger","msg","console","log","unreachable","assert","cond","_isValidProtocol","url","protocol","createValidAbsoluteUrl","baseUrl","options","addDefaultProtocol","startsWith","dots","match","tryConvertEncoding","stringToUTF8String","absoluteUrl","URL","shadow","obj","prop","defineProperty","enumerable","configurable","writable","BaseException","BaseExceptionClosure","prototype","details","status","FormatError","bytesToString","undefined","MAX_ARGUMENT_COUNT","String","fromCharCode","apply","strBuf","chunkEnd","min","chunk","subarray","stringToBytes","str","charCodeAt","arr","resultLength","pos","item","itemLength","set","string32","objectSize","keys","objectFromMap","map","isLittleEndian","buffer8","view32","Uint32Array","buffer","Function","FeatureTest","isOffscreenCanvasSupported","OffscreenCanvas","hexNumbers","n","padStart","Util","makeHexColor","r","g","scaleMinMax","minMax","temp","m1","m2","applyTransform","p","m","xt","yt","applyInverseTransform","d","getAxialAlignedBoundingBox","p1","p2","slice","p3","p4","inverseTransform","apply3dTransform","v","singularValueDecompose2dScale","transpose","c","first","second","sqrt","sx","sy","normalizeRect","rect","intersect","rect1","rect2","xLow","xHigh","yLow","yHigh","bezierBoundingBox","x0","y0","x1","y1","x2","y2","x3","y3","tvalues","bounds","t","t1","t2","b2ac","sqrtb2ac","abs","j","mt","jlen","PDFStringTranslateTable","encoding","decoder","TextDecoder","fatal","decode","charAt","escapeString","replace","isAscii","test","stringToUTF16BEString","buf","char","decodeURIComponent","escape","utf8StringToString","unescape","encodeURIComponent","isArrayBuffer","isArrayEqual","arr1","arr2","getModificationDate","date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","capability","isSettled","process","versions","nw","electron","type","CIRCULAR_REF","Symbol","EOF","Name","NameClosure","nameCache","nameValue","_clearCache","Cmd","CmdClosure","cmdCache","cmd","cmdValue","nonSerializable","nonSerializableClosure","_map","objId","suppressEncryption","__nonSerializable__","assignXref","newXref","size","key1","key2","key3","fetch","getAsync","fetchAsync","getArray","getKeys","getRawValues","values","has","callback","empty","emptyDict","merge","dictArray","mergeSubDicts","mergedDict","properties","Map","dict","entries","subDict","clear","RefClosure","refCache","refValue","RefSet","parent","_set","Set","put","add","remove","delete","iterator","RefSetCache","putAlias","aliasRef","isName","isCmd","isDict","isRefsEqual","v1","v2","clearPrimitiveCaches","parseDocBaseUrl","href","BasePdfManager","_docId","_password","catalog","pdfDocument","_docBaseUrl","args","ensureXRef","manuallyTriggered","requestRange","begin","end","Stream","PDFDocument","_loadedStreamPromise","pdfNetworkStream","streamManager","ChunkedStreamManager","getStream","MissingDataException","requestAllChunks","onReceiveData","abort","ChunkedStream","chunkSize","manager","_loadedChunks","numChunks","ceil","progressiveDataLength","lastSuccessfulEnsureByteChunk","getMissingChunks","chunks","numChunksLoaded","isDataLoaded","beginChunk","floor","endChunk","curChunk","onReceiveProgressiveData","position","ensureByte","ensureRange","nextEmptyChunk","hasChunk","getByte","getBytes","strEnd","getByteRange","makeSubStream","ChunkedStreamSubstream","missingChunks","subStream","getBaseStreams","currRequestId","_chunksNeededByRequest","_requestsByChunk","_promisesByRequest","aborted","_loadedStreamCapability","sendRequest","rangeReader","getRangeReader","onProgress","bind","chunkData","_requestChunks","requestId","chunksNeeded","chunksToRequest","requestIds","groupedChunksToRequest","groupChunks","groupedChunk","getBeginChunk","getEndChunk","requestRanges","ranges","range","includes","sort","groupedChunks","prevChunk","isProgressive","loadedRequests","lastChunk","onError","err","getLookupTableFactory","initializer","lookup","getArrayLookupTableFactory","ParserEOFException","XRefEntryException","DocStats","_handler","_streamTypes","_fontTypes","_send","streamTypes","fontTypes","addStreamType","addFontType","getInheritableProperty","stopWhenFound","visited","ROMAN_NUMBER_MAP","toRomanNumerals","number","lowerCase","romanBuf","romanStr","toLowerCase","log2","readInt8","offset","readUint16","readUint32","isWhiteSpace","ch","parseXFAPath","path","positionPattern","split","component","parseInt","escapePDFName","substring","_collectJS","entry","list","parents","element","js","BaseStream","getString","collectActions","eventType","actions","additionalActionsDicts","additionalActions","action","actionDict","Action","XMLEntities","encodeToXmlString","codePointAt","entity","toUpperCase","validateCSSFont","cssFontInfo","DEFAULT_CSS_FONT_OBLIQUE","DEFAULT_CSS_FONT_WEIGHT","CSS_FONT_WEIGHT_VALUES","fontFamily","fontWeight","italicAngle","ident","weight","angle","parseFloat","isNaN","recoverJsURL","URL_OPEN_METHODS","regex","RegExp","jsUrl","exec","newWindow","isEmpty","peekByte","peekedByte","peekBytes","getUint16","b0","b1","getInt32","b2","b3","skip","reset","moveStart","arrayBuffer","StringStream","NullStream","DEFAULT_USER_UNIT","LETTER_SIZE_MEDIABOX","Page","pageDict","globalIdFactory","fontCache","builtInCMapCache","standardFontDataCache","globalImageCache","nonBlendModesSet","xfaFactory","resourcesPromise","idCounters","_localIdFactory","createObjId","getPageObjId","_getInheritableProperty","content","resources","_getBoundingBox","bbox","box","mediaBox","cropBox","_onSubStreamError","getContentStream","StreamsSequenceStream","getBoundingBox","partialEvaluator","PartialEvaluator","idFactory","_parsedAnnotations","annotations","newRefsPromises","annotation","mustBePrinted","loadResources","objectLoader","ObjectLoader","load","contentStreamPromise","dataPromises","MCIDBoundingBoxes","positionByOperationIndex","noMCIDBoundingBoxes","pageListPromise","contentStream","opList","OperatorList","transparency","hasBlendModes","operatorList","boundingBoxesByMCID","operationArray","boundingBoxesWithoutMCID","pageOpList","addOp","flush","totalLength","renderForms","intentAny","intentDisplay","intentPrint","opListPromises","mustBeViewed","opLists","addOpList","getTextContent","viewBox","getStructTree","structTreeRoot","structTree","serializable","_parseStructTree","tree","StructTreePage","parse","annotationsData","viewable","printable","annots","parsedAnnotations","annotationPromises","annotationRef","AnnotationFactory","jsActions","PDF_HEADER_SIGNATURE","STARTXREF_SIGNATURE","ENDOBJ_SIGNATURE","FINGERPRINT_FIRST_BYTES","EMPTY_FINGERPRINT","PDF_HEADER_VERSION_REGEXP","find","signature","limit","backwards","signatureLength","scanBytes","scanLength","signatureEnd","XRef","_pagePromises","_version","_globalIdFactory","getDocId","createFontId","Catalog","version","linearization","Linearization","step","startXRefLength","found","checkHeader","MAX_PDF_VERSION_LENGTH","parseStartXRef","setStartXRef","hasActualNumPages","getNumPages","_hasOnlyDocumentSignatures","fields","recursionDepth","RECURSION_LIMIT","every","field","fetchIfRef","isSignature","isInvisible","_xfaStreams","template","datasets","config","connectionSet","localeSet","stylesheet","hasOwnProperty","xfaDatasets","streams","DatasetReader","_","needsRendering","formInfo","hasAcroForm","XFAFactory","isValid","getPages","xfaImagesDict","xfaImages","setImages","fontRes","assign","pdfFonts","initialState","clone","fonts","fontName","descriptor","handleSetFont","missingFonts","setFonts","reallyMissingFonts","missing","getXfaFontName","fontInfo","getXfaFontDict","appendFonts","serializeData","hasFields","hasSignatures","sigFlags","hasOnlyDocumentSignatures","documentInfo","docInfo","PDFFormatVersion","Language","lang","EncryptFilterName","encrypt","filterName","IsLinearized","IsAcroFormPresent","IsXFAPresent","IsCollectionPresent","collection","IsSignaturesPresent","infoDict","customValue","Custom","validate","hexString","hash","hex","idArray","hashOriginal","hashModified","calculateMD5","_getLinearizationPage","objectNumberFirst","pageKidsCountCache","pageIndexCache","getPageDict","cachedPromise","pageFirst","checkFirstPage","checkLastPage","setActualNumPages","pagesTree","getAllPageDicts","reasonAll","_collectFieldObjects","fieldRef","partName","getFieldObject","kids","kid","fieldObjects","allFields","fieldPromises","allPromises","hasJSActions","_parseHasJSActions","catalogJsActions","some","fieldObject","object","calculationOrderIds","calculationOrder","ids","ExtendedPDFDocument","arg","getXFAFontMap","factors","MyriadProRegularFactors","baseWidths","LiberationSansRegularWidths","baseMapping","LiberationSansRegularMapping","metrics","MyriadProRegularMetrics","MyriadProBoldFactors","LiberationSansBoldWidths","LiberationSansBoldMapping","MyriadProBoldMetrics","MyriadProItalicFactors","LiberationSansItalicWidths","LiberationSansItalicMapping","MyriadProItalicMetrics","MyriadProBoldItalicFactors","LiberationSansBoldItalicWidths","LiberationSansBoldItalicMapping","MyriadProBoldItalicMetrics","ArialMT","Arial","CalibriRegularFactors","CalibriRegularMetrics","CalibriBoldFactors","CalibriBoldMetrics","CalibriItalicFactors","CalibriItalicMetrics","CalibriBoldItalicFactors","CalibriBoldItalicMetrics","SegoeuiRegularFactors","SegoeuiRegularMetrics","SegoeuiBoldFactors","SegoeuiBoldMetrics","SegoeuiItalicFactors","SegoeuiItalicMetrics","SegoeuiBoldItalicFactors","SegoeuiBoldItalicMetrics","Helvetica","HelveticaRegularFactors","HelveticaRegularMetrics","HelveticaBoldFactors","HelveticaBoldMetrics","HelveticaItalicFactors","HelveticaItalicMetrics","HelveticaBoldItalicFactors","HelveticaBoldItalicMetrics","normalizeFontName","fontMap","getXfaFontWidths","rescaledBaseWidths","w","currentCode","currentArray","newWidths","unicode","glyphIndex","charUnicode","index","unicode1","unicode2","widths","systemInfo","lineHeight","lineGap","SEAC_ANALYSIS_ENABLED","FontFlags","FixedPitch","Serif","Symbolic","Script","Nonsymbolic","Italic","AllCap","SmallCap","ForceBold","MacStandardGlyphOrdering","getFontType","subtype","isStandardFont","recoverGlyphName","glyphsUnicodeMap","getUnicodeForGlyph","type1FontGlyphMapping","builtInEncoding","glyphNames","charCodeToGlyphId","glyphId","charCode","baseEncoding","isSymbolicFont","flags","isInternalFont","baseEncodingName","getEncoding","StandardEncoding","differences","glyphName","getGlyphsUnicode","standardGlyphName","ExpertEncoding","MacExpertEncoding","MacRomanEncoding","WinAnsiEncoding","SymbolSetEncoding","ZapfDingbatsEncoding","encodingName","getDingbatsGlyphsUnicode","getSpecialPUASymbols","mapSpecialUnicodeValues","nameLen","hexStr","UnicodeRanges","getUnicodeRangeFor","isRTLRangeFor","getNormalizedUnicodes","reverseIfRtl","chars","charsLength","SpecialCharRegExp","CategoryCache","getCharUnicodeCategory","cachedCategory","groups","category","isWhitespace","isZeroWidthDiacritic","isInvisibleFormatMark","clearUnicodeCaches","LINE_FACTOR","collectFields","_getPageIndex","_create","parameters","LinkAnnotation","TextAnnotation","fieldType","TextWidgetAnnotation","ButtonWidgetAnnotation","ChoiceWidgetAnnotation","SignatureWidgetAnnotation","WidgetAnnotation","PopupAnnotation","FreeTextAnnotation","LineAnnotation","SquareAnnotation","CircleAnnotation","PolylineAnnotation","PolygonAnnotation","CaretAnnotation","InkAnnotation","HighlightAnnotation","UnderlineAnnotation","SquigglyAnnotation","StrikeOutAnnotation","StampAnnotation","FileAttachmentAnnotation","Annotation","annotDict","fetchIfRefAsync","getRgbColor","color","defaultColor","Uint8ClampedArray","rgbColor","ColorSpace","singletons","gray","getRgbItem","rgb","cmyk","getQuadPoints","quadPoints","quadPointsLists","jj","y","quadPointsList","minX","maxX","minY","maxY","mX","MX","mY","MY","quadPoint","MAX_VALUE","MIN_VALUE","getTransformMatrix","matrix","xRatio","yRatio","params","setTitle","setContents","setModificationDate","setFlags","setRectangle","setColor","setBorderStyle","setAppearance","setBorderAndBackgroundColors","_streams","appearance","annotationFlags","borderStyle","backgroundColor","borderColor","contentsObj","_contents","hasAppearance","modificationDate","hasOwnCanvas","kidIds","fieldName","_constructFieldName","_fallbackFontDict","_hasFlag","flag","_isViewable","_isPrintable","storageEntry","hidden","print","_parseStringHelper","dir","bidi","title","_title","contents","hasFlag","setLineEndings","lineEndings","mk","AnnotationBorderStyle","dictType","setWidth","setStyle","setDashArray","array","setHorizontalCornerRadius","setVerticalCornerRadius","appearanceStates","normalAppearanceState","as","evaluator","isUsingOwnCanvas","appearanceDict","fallbackFontDict","strokeColor","fillColor","unshift","loopDict","width","style","dashArray","horizontalCornerRadius","verticalCornerRadius","maxWidth","maxHeight","forceStyle","allZeros","validNumber","radius","MarkupAnnotation","rawIRT","inReplyTo","rt","replyType","titleObj","creationDate","setCreationDate","hasPopup","richText","getRichTextAsHtml","_setDefaultAppearance","extra","blendMode","strokeAlpha","fillAlpha","pointsCallback","pointsArray","points","formDict","appearanceStreamDict","appearanceStream","gsDict","stateDict","annotationType","fieldValue","_decodeFormValue","defaultFieldValue","_hasValueFromXFA","getValue","alternativeText","defaultAppearance","_defaultAppearance","defaultAppearanceData","parseDefaultAppearance","localResources","acroFormResources","appearanceResources","_fieldResources","mergedResources","fieldFlags","readOnly","hasFieldFlag","formValue","_hasText","_getAppearance","AP","originalTransform","newTransform","createCipherTransform","encryptString","encoder","val","_getSaveFieldResources","bufferOriginal","writeDict","bufferNew","isPassword","formattedValue","trim","lineCount","multiLine","defaultPadding","hPadding","totalHeight","totalWidth","_getFontData","fontSize","_computeFontSize","descent","vPadding","alignment","textAlignment","_getMultilineAppearance","encodedString","encodeString","comb","_getCombAppearance","renderedText","_renderText","_getTextWidth","text","charsToGlyphs","glyph","height","roundWithTwoDigits","textWidth","lines","cachedLines","line","encoded","glyphs","positions","getCharPositions","isTooBig","fsize","cache","_splitLine","numberOfLines","round","fontColor","createDefaultAppearance","shift","toFixed","localFont","acroFormFont","subFontDict","subResourcesDict","maximumLength","maxLen","combWidth","renderedComb","padding","scale","lastSpacePosInStringStart","lastSpacePosInStringEnd","lastSpacePos","startChunk","currentWidth","glyphWidth","defaultValue","multiline","charLimit","editable","checkedAppearance","uncheckedAppearance","checkBox","radioButton","pushButton","isTooltipOnly","_processCheckBox","_processRadioButton","_processPushButton","exportValue","buttonValue","savedAppearance","_saveCheckbox","_saveRadioButton","parentBuffer","parentTransform","_getDefaultCheckedAppearance","FONT_RATIO","xShift","yShift","customAppearance","normalAppearance","asValue","yes","exportValues","otherYes","fieldParent","fieldParentValue","parseDestDictionary","destDict","resultObj","option","isOptionArray","displayValue","combo","multiSelect","numItems","multipleSelection","items","exportedValue","valueIndices","lineWidth","numberOfVisibleLines","firstIndex","valuePosition","indexInPage","hpadding","vpadding","DEFAULT_ICON_SIZE","state","stateModel","parentItem","parentSubtype","parentType","rawParent","parentId","parentRect","parentFlags","lineCoordinates","from","interiorColor","borderWidth","borderAdjust","controlPointsDistance","tan","xMid","yMid","xOffset","yOffset","vertices","rawVertices","Infinity","vertex","inkLists","rawInkLists","inkList","dy","xEnd","file","FileSpec","DefaultAppearanceEvaluator","EvaluatorPreprocessor","operation","fn","result","savedStatesDepth","colorCmd","resizeRgbImage","src","dest","w1","h1","w2","h2","alpha01","COMPONENTS","newIndex","oldIndex","xScaled","Uint16Array","w1Scanline","py","numComps","getRgb","srcOffset","destOffset","getRgbBuffer","count","bits","getOutputLength","inputLength","isPassthrough","isDefaultDecode","decodeMap","bpc","fillRgb","originalWidth","originalHeight","actualHeight","comps","rgbBuf","numComponentColors","needsResizing","allColors","colorMap","destPos","rgbPos","usesZeroToOneRange","_cache","localColorSpaceCache","parsedColorSpace","csName","csRef","getCached","localColorSpace","getByRef","getByName","parseAsync","cs","pdfFunctionFactory","_parse","cachedColorSpace","PatternCS","colorSpaces","resourcesCS","mode","baseCS","whitePoint","blackPoint","gamma","CalGrayCS","CalRGBCS","alt","altCS","hiVal","IndexedCS","tintFn","AlternateCS","LabCS","DeviceGrayCS","DeviceRgbCS","DeviceCmykCS","base","tmpBuf","Float32Array","baseNumComps","baseBuf","scaled","tinted","highVal","outputDelta","lookupPos","q","DeviceCmykCSClosure","convertToRgb","srcScale","k","CalGrayCSClosure","A","AG","G","L","YW","XW","ZW","XB","YB","ZB","CalRGBCSClosure","BRADFORD_SCALE_MATRIX","BRADFORD_SCALE_INVERSE_MATRIX","SRGB_D65_XYZ_TO_RGB_MATRIX","FLAT_WHITEPOINT_MATRIX","tempNormalizeMatrix","tempConvertMatrix1","tempConvertMatrix2","DECODE_L_CONSTANT","matrixProduct","convertToFlat","sourceWhitePoint","LMS","convertToD65","D65X","D65Y","D65Z","sRGBTransferFunction","adjustToRange","decodeL","compensateBlackPoint","sourceBlackPoint","XYZ_Flat","zeroDecodeL","X_DST","X_SRC","Y_DST","Y_SRC","Z_DST","Z_SRC","X_Scale","X_Offset","Y_Scale","Y_Offset","Z_Scale","Z_Offset","normalizeWhitePointToFlat","XYZ_In","LMS_Flat","normalizeWhitePointToD65","LMS_D65","B","AGR","GR","BGG","GG","CGB","GB","MXA","MXB","MXC","Y","MYA","MYB","MYC","Z","MZA","MZB","MZC","XYZ","XYZ_Black","XYZ_D65","SRGB","LabCSClosure","fn_g","high1","low2","high2","maxVal","Ls","bs","amin","amax","bmin","bmax","M","N","DefaultPartialEvaluatorOptions","freeze","PatternType","TILING","SHADING","TEXT_CHUNK_BATCH_SIZE","deferred","normalizeBlendMode","parsingArray","maybeBM","incrementCachedImageMaskCount","TimeSlotManager","TIME_SLOT_DURATION_MS","CHECK_TIME_EVERY","check","checked","endTime","parsingType3Font","_fetchBuiltInCMapBound","fetchBuiltInCMap","_pdfFunctionFactory","PDFFunctionFactory","newOptions","newEvaluator","processed","nodes","node","graphicStates","graphicState","bm","xObjects","xObject","xResources","cachedData","response","ok","statusText","cMapData","compressionType","fetchStandardFontData","standardFontNameToFileName","getFontNameToFileMap","buildFormXObject","xobj","optionalContent","groupOptions","parseMarkedContentProps","group","isolated","knockout","groupSubtype","colorSpace","parseColorSpace","backdrop","_sendImgData","imgData","cacheGlobally","transfers","bitmap","buildPaintImageXObject","image","isInline","localImageCache","imageRef","h","imageMask","interpolate","bitStrideLength","imgArray","PDFImage","createRawMask","imageIsFromDecodeStream","DecodeStream","inverseDecode","cached","addImageOps","createMask","isSingleOpaquePixel","addDependency","softMask","mask","SMALL_IMAGE_DIMENSIONS","imageObj","res","createImageData","shouldCache","buildImage","addByteSize","addPageIndex","setData","byteSize","handleSMask","stateManager","smaskContent","smaskOptions","transferObj","isPDFFunction","transferFn","transferMap","tmp","handleTransferFunction","tr","transferArray","transferMaps","numFns","numEffectfulFns","handleTilingType","pattern","patternDict","localTilingPatternCache","tilingOpList","patternResources","operatorListIR","getIR","tilingPatternIR","getTilingPatternIR","addDependencies","dependencies","fontArgs","fontRef","loadFont","translated","isType3Font","loadType3Data","type3Dependencies","TranslatedFont","loadedName","ErrorFont","handleText","isAddToPathSet","textRenderingMode","fillColorSpace","buildFontPaths","ensureStateFont","gState","localGStateCache","gStateRef","isSimpleGState","gStateObj","gStateKeys","errorFont","type3FontRefs","fontCapability","preEvaluatedFont","preEvaluateFont","fontRefIsRef","fontID","fontAliases","aliasFontRef","translateFont","translatedFont","fontType","stats","fontFile3","buildPath","parsingText","lastIndex","fnArray","opArgs","argsArray","parseShading","shading","localShadingPatternCache","Pattern","patternIR","handleColorN","patterns","patternName","pop","rawPattern","localTilingPattern","typeNum","_parseVisibilityExpression","nestingCounter","currentResult","MAX_NESTING","operator","raw","nestedResult","contentProperties","optionalContentType","expression","optionalContentGroups","groupIds","ocg","policy","EvalState","boundingBoxCalculator","BoundingBoxesCalculator","LocalImageCache","LocalColorSpaceCache","LocalGStateCache","LocalTilingPatternCache","xobjs","StateManager","preprocessor","timeSlotManager","closePendingRestoreOPS","argument","promiseBody","next","ready","stop","isValidName","incrementOperation","localImage","parseOperator","resolveXObject","rejectXObject","globalImage","getData","combinedGlyphs","arrLength","arrItem","strokeColorSpace","shadingRes","patternId","localGStateObj","resolveGState","rejectGState","extGState","getNoMCIDBoundingBoxes","seenStyles","TextState","NormalizedUnicodes","textContent","styles","textContentItem","initialized","vertical","prevTransform","textAdvanceScale","spaceInFlowMin","spaceInFlowMax","trackingSpaceMin","negativeSpaceMax","notASpace","hasEOL","twoLastChars","twoLastCharsPos","saveLastChar","nextPos","ret","resetLastChars","TRACKING_SPACE_FACTOR","NOT_A_SPACE_FACTOR","NEGATIVE_SPACE_FACTOR","SPACE_IN_FLOW_MIN_FACTOR","SPACE_IN_FLOW_MAX_FACTOR","showSpacedTextBuffer","emptyXObjectCache","emptyGStateCache","textState","getCurrentTextTransform","tsm","textHScale","textRise","isCharBBox","fontMatrix","glyphHeight","ctm","textMatrix","ensureTextContentItem","fallbackName","ascent","trm","hypot","scaleLineX","textLineMatrix","scaleCtmX","updateAdvanceScale","scaleFactor","runBidiTransform","textChunk","bidiResult","applyInverseRotation","compareWithLastPosition","currentTransform","posX","posY","shiftedX","shiftedY","lastPosX","lastPosY","advanceY","advanceX","textOrientation","sign","appendEOL","flushTextContentItem","addFakeSpaces","buildTextContentItem","extraSpacing","charSpacing","translateTextMatrix","vmetric","scaledDim","wordSpacing","glyphUnicode","transf","enqueueChunk","batch","enqueue","fontNameArg","fontSizeArg","leading","translateTextLineMatrix","carriageReturn","setTextLineMatrix","spaceFactor","elements","currentState","xObjStateManager","sinkWrapper","enqueueInvoked","desiredSize","gStateFont","tag","mcid","extractDataStructures","baseDict","cidToGidBytes","toUnicodePromise","readToUnicode","toUnicode","composite","cidSystemInfo","registry","ordering","supplement","cidToGidMap","diffEncoding","defaultEncoding","isNonsymbolicFont","hasEncoding","buildToUnicode","builtToUnicode","readCidToGidMap","_simpleFontToUnicode","forceGlyphs","charcode","codeStr","fromCodePoint","hasIncludedToUnicodeMap","fallbackToUnicode","ToUnicodeMap","cMap","builtInCMap","IdentityCMap","ucs2CMapName","ucs2CMap","CMapFactory","useCMap","cid","ucs2","IdentityToUnicodeMap","firstChar","lastChar","cmapObj","cmap","getMap","token","glyphsData","glyphID","extractWidths","glyphsWidths","defaultWidth","glyphsVMetrics","defaultVMetrics","vmetrics","baseFontName","getBaseFontMetrics","buildCharCodeToWidth","isMonospace","firstWidth","isSerifFont","fontNameWoStyle","getSerifFonts","search","monospace","stdFontMap","getStdFontMap","lookupName","Metrics","getMetrics","glyphWidths","widthsByGlyphName","df","MurmurHash3_64","update","diffLength","diffBuf","diffEntry","uint8array","bufferLength","widthsBuf","compositeWidths","subWidthsBuf","hexdigest","getSymbolsFonts","isSimulatedFlags","xHeight","capHeight","standardFontName","getStandardFontName","newProperties","Font","baseFont","fontNameStr","baseFontStr","fontFile","length1","length2","length3","glyphScaleFactors","subtypeEntry","fixedPitch","scaleFactors","cidEncoding","fontChar","renderer","hasBuiltPath","getPathJs","accent","_evaluatorOptions","type3Loaded","sent","exportData","fallback","glyphCacheValues","type3Evaluator","loadCharProcsPromise","charProcs","fontResources","charProcOperatorList","isEmptyBBox","glyphStream","_removeType3ColorOperators","dummyOperatorList","_bbox","charBBox","gStateKey","stateStack","old","prev","f","opMap","getOPMap","numArgs","variableArgs","J","ri","gs","Q","cm","l","re","S","s","W","BT","ET","Tc","Tw","Tz","TL","Tf","Tr","Ts","Td","TD","Tm","Tj","TJ","d0","d1","CS","SC","SCN","sc","scn","RG","rg","sh","BI","ID","EI","Do","MP","BMC","BDC","EMC","BX","EX","BM","BD","true","fa","fal","fals","false","nu","nul","null","MAX_INVALID_PATH_OPS","parser","Parser","lexer","Lexer","nonProcessedArgs","_numInvalidPathOPS","getObj","opSpec","argsLength","preprocessCommand","BUILT_IN_CMAPS","MAX_MAP_RANGE","CMap","codespaceRanges","numCodespaceRanges","addCodespaceRange","low","high","mapCidRange","dstLow","mapBfRange","lastByte","nextCharCode","mapBfRangeToArray","mapOne","dst","contains","charCodeOf","readCharCode","out","nn","codespaceRange","kk","getCharCodeLength","isIdentityCMap","BinaryCMapReader","BinaryCMapReaderClosure","hexToInt","hexToStr","addHex","incHex","MAX_NUM_SIZE","MAX_ENCODED_NUM_SIZE","BinaryCMapStream","readByte","readNumber","last","readSigned","readHex","readHexNumber","stack","sp","bufferSize","readHexSigned","readString","len","extend","header","sequence","dataSize","ucs2DataSize","subitemsCount","CMapFactoryClosure","strToInt","expectString","expectInt","parseBfChar","parseBfRange","parseCidChar","parseCidRange","parseCodespaceRange","parseWMode","parseCMapName","parseCMap","previous","embeddedUseCMap","objLoop","extendCMap","createBuiltInCMap","useCodespaceRanges","parsedCMap","MAX_LENGTH_TO_CACHE","MAX_ADLER32_LENGTH","computeAdler32","bytesLength","allowStreams","imageCache","refill","buf1","buf2","tryShift","cipherTransform","makeInlineImage","makeStream","decryptString","findDefaultInlineStreamEnd","I","SPACE","LF","CR","NUL","startPos","maybeEIPos","followingBytes","knownCommands","nextObj","peekObj","endOffset","findDCTDecodeInlineStreamEnd","foundEOI","markerLength","inlineStreamSkipEI","findASCII85DecodeInlineStreamEnd","TILDE","GT","tildePos","maybeEI","findASCIIHexDecodeInlineStreamEnd","dictLength","beginInlineImagePos","filterZero","imageStream","imageBytes","initialStreamPos","dictBytes","cacheEntry","createStream","_findStreamLength","SCAN_BLOCK_LENGTH","skipToNextLine","nextChar","ENDSTREAM_SIGNATURE","actualLength","MAX_TRUNCATION","TRUNCATED_SIGNATURE","maybeLength","makeFilter","filterArray","paramsArray","xrefStats","PredictorStream","FlateStream","earlyChange","LZWStream","JpegStream","JpxStream","Ascii85Stream","AsciiHexStream","CCITTFaxStream","RunLengthStream","Jbig2Stream","specialChars","toHexDigit","_hexStringNumWarn","currentChar","peekChar","getNumber","eNotation","divideBy","baseValue","powerValue","powerValueSign","currentDigit","numParen","charBuffered","getName","previousCh","_hexStringWarn","MAX_HEX_STRING_NUM_WARN","getHexString","isFirstHex","firstDigit","secondDigit","comment","nextCh","knownCommandFound","possibleCommand","streamPos","getInt","linDict","allowZeroValue","getHints","hints","hintsLength","hint","obj1","obj2","obj3","endFirst","mainXRefEntriesOffset","input","readBlock","TILDA_CHAR","Z_LOWER_CHAR","eof","ensureBuffer","emptyBuffer","maybeMinBufferLength","_rawMinBufferLength","minBufferLength","requested","buffer2","bufEnd","_onError","newLength","baseStreamsBuf","baseStreams","UPSTREAM_BLOCK_SIZE","maxDecodeLength","digit","ccittFaxDecoder","CCITTFaxDecoder","EndOfLine","EncodedByteAlign","Columns","Rows","EndOfBlock","BlackIs1","readNextChar","ccittEOL","ccittEOF","twoDimPass","twoDimHoriz","twoDimVert0","twoDimVertR1","twoDimVertL1","twoDimVertR2","twoDimVertL2","twoDimVertR3","twoDimVertL3","twoDimTable","whiteTable1","whiteTable2","blackTable1","blackTable2","blackTable3","eoline","byteAlign","columns","rows","eoblock","black","codingLine","refLine","codingPos","row","nextLine2D","inputBits","inputBuf","outputBits","rowsDone","code1","_lookBits","_eatBits","refPos","blackPixels","code2","code3","_getTwoDimCode","_addPixels","_getBlackCode","_getWhiteCode","_addPixelsNeg","gotEOL","a1","_findTableCode","table","limitValue","codeLenCodeMap","Int32Array","lengthDecode","distDecode","fixedLitCodeTab","fixedDistCodeTab","cmf","flg","codeSize","codeBuf","getBits","getCode","codes","codeLen","codeVal","generateHuffmanTable","lengths","hdr","blockLen","block","litCodeTable","distCodeTable","numLitCodes","numDistCodes","numCodeLenCodes","codeLenCodeLengths","codeLenCodeTab","codeLengths","bitsLength","bitsOffset","what","repeatLength","dist","jbig2Image","Jbig2Image","globalsStream","globals","parseChunks","dataLength","Jbig2Error","ContextCache","getContexts","Int8Array","DecodingContext","ArithmeticDecoder","contextCache","decodeInteger","procedure","contexts","readBits","bit","readBit","decodeIAID","codeLength","SegmentTypes","CodingTemplates","RefinementTemplates","coding","reference","ReusedContexts","RefinementReusedContexts","decodeBitmapTemplate0","decodingContext","contextLabel","pixel","row1","row2","OLD_PIXEL_MASK","decodeBitmap","mmr","templateIndex","prediction","at","Reader","decodeMMRBitmap","useskip","templateLength","templateX","templateY","changingTemplateEntries","reuseMask","changingEntriesLength","changingTemplateX","changingTemplateY","changingTemplateBit","sbb_left","sbb_top","sbb_right","pseudoPixelContext","ltp","i0","j0","sltp","decodeRefinement","referenceBitmap","offsetX","offsetY","codingTemplate","codingTemplateLength","codingTemplateX","codingTemplateY","referenceTemplate","referenceTemplateLength","referenceTemplateX","referenceTemplateY","referenceWidth","referenceHeight","decodeSymbolDictionary","huffman","refinement","symbols","numberOfNewSymbols","numberOfExportedSymbols","huffmanTables","refinementTemplateIndex","refinementAt","huffmanInput","newSymbols","currentHeight","symbolCodeLength","tableB1","symbolWidths","getStandardTable","deltaHeight","tableDeltaHeight","firstSymbol","deltaWidth","tableDeltaWidth","numberOfInstances","decodeTextRegion","symbolId","rdx","rdy","symbol","bitmapSize","tableBitmapSize","collectiveBitmap","readUncompressedBitmap","originalEnd","bitmapEnd","numberOfSymbolsDecoded","xMin","xMax","bitmapWidth","symbolBitmap","exportedSymbols","currentFlag","totalSymbolsLength","runLength","defaultPixelValue","numberOfSymbolInstances","stripSize","inputSymbols","transposed","dsOffset","referenceCorner","combinationOperator","logStripSize","stripT","tableDeltaT","firstS","deltaT","deltaFirstS","tableFirstS","currentS","currentT","symbolIDTable","applyRefinement","symbolWidth","symbolHeight","rdw","rdh","offsetT","offsetS","s2","symbolRow","deltaS","tableDeltaS","decodePatternDictionary","patternWidth","patternHeight","maxPatternIndex","collectiveWidth","patternBitmap","decodeHalftoneRegion","regionWidth","regionHeight","enableSkip","gridWidth","gridHeight","gridOffsetX","gridOffsetY","gridVectorX","gridVectorY","regionBitmap","numberOfPatterns","pattern0","bitsPerValue","grayScaleBitPlanes","mmrInput","mg","ng","patternIndex","patternRow","regionRow","regionX","regionY","readSegmentHeader","segmentHeader","segmentType","typeName","deferredNonRetain","pageAssociationFieldSize","referredFlags","referredToCount","retainBits","referredToSegmentNumberSize","referredTo","pageAssociation","genericRegionInfo","readRegionSegmentInformation","genericRegionSegmentFlags","RegionSegmentInformationFieldLength","genericRegionMmr","searchPatternLength","searchPattern","headerEnd","readSegments","segments","segment","randomAccess","processSegment","visitor","atLength","dictionary","dictionaryFlags","huffmanDHSelector","huffmanDWSelector","bitmapSizeSelector","aggregationInstancesSelector","bitmapCodingContextUsed","bitmapCodingContextRetained","refinementTemplate","textRegion","textRegionSegmentFlags","textRegionHuffmanFlags","huffmanFS","huffmanDS","huffmanDT","huffmanRefinementDW","huffmanRefinementDH","huffmanRefinementDX","huffmanRefinementDY","huffmanRefinementSizeSelector","patternDictionary","patternDictionaryFlags","halftoneRegion","halftoneRegionFlags","genericRegion","pageInfo","resolutionX","resolutionY","pageSegmentFlags","lossless","requiresBuffer","combinationOperatorOverride","callbackName","processSegments","parseJbig2Chunks","SimpleSegmentVisitor","parseJbig2","numberOfPages","currentPageInfo","bitPacked","onPageInformation","rowSize","drawBitmap","regionInfo","mask0","offset0","onImmediateGenericRegion","region","onImmediateLosslessGenericRegion","arguments","onSymbolDictionary","currentSegment","referredSegments","getSymbolDictionaryHuffmanTables","customTables","referredSymbols","onImmediateTextRegion","getTextRegionHuffmanTables","onImmediateLosslessTextRegion","onPatternDictionary","onImmediateHalftoneRegion","onImmediateLosslessHalftoneRegion","onTables","decodeTablesSegment","HuffmanLine","lineData","isOOB","rangeLow","prefixLength","rangeLength","prefixCode","isLowerRange","HuffmanTreeNode","children","isLeaf","buildTree","decodeNode","reader","htOffset","HuffmanTable","prefixCodesDone","assignPrefixCodes","rootNode","linesLength","prefixLengthMax","histogram","currentLength","firstCode","currentTemp","lowestValue","highestValue","prefixSizeBits","rangeSizeBits","currentRangeLow","standardTablesCache","currentByte","numBits","getCustomHuffmanTable","currentIndex","numberOfSymbols","runCodesTable","repeatedLength","numberOfRepeats","customIndex","tableAggregateInstances","endOfBlock","lookForEOFLimit","QeTable","qe","nmps","nlps","switchFlag","bp","dataEnd","chigh","clow","byteIn","ct","cx_index","cx_mps","qeTableIcx","qeIcx","jpegOptions","decodeTransform","colorTransform","decodeArr","forceRGB","bitsPerComponent","decodeArrLength","transformNeeded","maxValue","jpegImage","JpegImage","drawWidth","drawHeight","isSourcePDF","JpegError","DNLMarkerError","scanLines","EOIMarkerError","dctZigZag","dctCos1","dctSin1","dctCos3","dctSin3","dctCos6","dctSin6","dctSqrt2","dctSqrt1d2","buildHuffmanTable","getBlockBufferOffset","col","blocksPerLine","decodeScan","frame","components","resetInterval","spectralStart","spectralEnd","successivePrev","successive","parseDNLMarker","mcusPerLine","progressive","startOffset","bitsData","bitsCount","nextByte","maybeScanLines","blockRow","precision","decodeHuffman","receive","receiveAndExtend","decodeBaseline","blockOffset","huffmanTableDC","diff","blockData","pred","rs","huffmanTableAC","z","decodeDCFirst","decodeDCSuccessive","eobrun","decodeACFirst","successiveACState","successiveACNextValue","decodeACSuccessive","offsetZ","decodeMcu","mcu","mcuRow","mcuCol","blockCol","decodeBlock","componentsLength","decodeFn","fileMarker","mcuExpected","blocksPerColumn","mcusPerColumn","mcuToRead","findNextFileMarker","invalid","marker","quantizeAndInverse","blockBufferOffset","qt","quantizationTable","v0","v3","v4","v5","v6","v7","p0","p5","p6","p7","buildComponentData","computationBuffer","Int16Array","currentPos","maxPos","newPos","currentMarker","newMarker","_decodeTransform","_colorTransform","dnlScanLines","readDataBlock","prepareComponents","samplesPerLine","maxH","maxV","blocksPerLineForMcu","blocksPerColumnForMcu","blocksBufferSize","jfif","adobe","numSOSMarkers","quantizationTables","huffmanTablesAC","huffmanTablesDC","markerLoop","appData","major","minor","densityUnits","xDensity","yDensity","thumbWidth","thumbHeight","thumbData","flags0","flags1","transformCode","quantizationTablesLength","quantizationTablesEnd","quantizationTableSpec","tableData","extended","sofScanLines","componentIds","componentsCount","componentId","qId","quantizationId","huffmanLength","huffmanTableSpec","codeLengthSum","huffmanValues","selectorsCount","componentIndex","tableSpec","successiveApproximation","nextFileMarker","output","scaleX","scaleY","numComponents","_getLinearizedBlockData","componentScaleX","componentScaleY","blocksPerScanline","xScaleBlockOffset","mask3LSB","lastComponentScaleX","_isColorConversionNeeded","_convertYccToRgb","Cb","Cr","_convertYcckToRgb","_convertYcckToCmyk","_convertCmykToRgb","rgbData","grayColor","jpxImage","JpxImage","tileCount","tiles","tileComponents","tileWidth","tileHeight","tileLeft","left","tileTop","top","srcPosition","dataPosition","imgRowSize","tileRowSize","rowBytes","JpxError","SubbandsGainLog2","LL","LH","HL","HH","failOnCorruptedImage","head","parseCodestream","headerSize","lbox","tbox","jumpDataLength","method","colorspace","headerType","parseImageProperties","newByte","oldByte","Xsiz","Ysiz","XOsiz","YOsiz","Csiz","context","doNotRecover","sqcd","spqcds","spqcdSize","scalarExpounded","tile","mainHeader","siz","XTsiz","YTsiz","XTOsiz","YTOsiz","isSigned","XRsiz","YRsiz","calculateComponentDimensions","SIZ","calculateTileGrids","QCC","COC","qcd","noQuantization","guardBits","spqcd","epsilon","mu","SPqcds","QCD","currentTile","qcc","cqcc","cod","scod","entropyCoderWithCustomPrecincts","sopMarkerUsed","ephMarkerUsed","progressionOrder","layersCount","multipleComponentTransform","decompositionLevelsCount","xcb","ycb","blockStyle","selectiveArithmeticCodingBypass","resetContextProbabilities","terminationOnEachCodingPass","verticallyStripe","predictableTermination","segmentationSymbolUsed","reversibleTransformation","precinctsSizes","precinctsSize","PPx","PPy","unsupported","COD","partIndex","partsCount","initializeTile","buildPackets","parseTilePackets","transformComponents","numXtiles","numYtiles","tx0","ty0","tx1","ty1","tileComponent","tcx0","tcy0","tcx1","tcy1","getBlocksDimensions","codOrCoc","codingStyleParameters","xcb_","ycb_","buildPrecincts","resolution","dimensions","precinctWidth","precinctHeight","isZeroRes","resLevel","precinctWidthInSubband","precinctHeightInSubband","numprecinctswide","trx1","trx0","numprecinctshigh","try1","try0","numprecincts","precinctParameters","buildCodeblocks","subband","codeblockWidth","codeblockHeight","cbx0","tbx0","cby0","tby0","cbx1","tbx1","cby1","tby1","codeblocks","precincts","codeblock","precinctNumber","cbx","cby","tbx0_","tby0_","tbx1_","tby1_","pi","pj","subbandType","Lblock","precinct","cbxMin","cbxMax","cbyMin","cbyMax","codeblockParameters","numcodeblockwide","numcodeblockhigh","createPacket","layerNumber","precinctCodeblocks","subbands","LayerResolutionComponentPositionIterator","tileIndex","codingStyleDefaultParameters","maxDecompositionLevelsCount","nextPacket","JpxImage_nextPacket","resolutions","packet","ResolutionLayerComponentPositionIterator","ResolutionPositionComponentLayerIterator","maxNumPrecinctsInLevel","maxNumPrecincts","PositionComponentResolutionLayerIterator","getPrecinctSizesInImageScale","precinctsIterationSizes","px","maxNumHigh","maxNumWide","sizeInImageScale","getPrecinctIndexIfExist","ComponentPositionResolutionLayerIterator","pxIndex","pyIndex","precinctIterationSizes","minWidth","minHeight","startPrecinctRowIndex","sizePerComponent","sizePerResolution","minWidthCurrentComponent","minHeightCurrentComponent","maxNumWideCurrentComponent","maxNumHighCurrentComponent","widthCurrentResolution","heightCurrentResolution","blocksDimensions","bscale","resolutionSubbands","packetsIterator","skipNextBit","skipMarkerIfEqual","skipBytes","alignToByte","readCodingpasses","queue","codeblockColumn","codeblockRow","codeblockIncluded","firstTimeInclusion","valueReady","zeroBitPlanesTree","included","inclusionTree","InclusionTree","TagTree","nextLevel","incrementValue","zeroBitPlanes","codingpasses","codingpassesLog2","codedDataLength","packetItem","copyCoefficients","coefficients","levelWidth","levelHeight","delta","mb","reversible","right","bottom","blockWidth","blockHeight","bitModel","BitModel","currentCodingpassType","dataItem","encodedData","setDecoder","runSignificancePropagationPass","runMagnitudeRefinementPass","runCleanupPass","checkSegmentationSymbol","coefficentsSign","magnitude","coefficentsMagnitude","bitsDecoded","magnitudeCorrection","nb","interleave","levelOffset","transformTile","quantizationParameters","ReversibleTransform","IrreversibleTransform","subbandCoefficients","gainLog2","calculate","resultImages","transformedTiles","tile0","fourComponents","y0items","y1items","y2items","y3items","component0","qcdOrQcc","levelsLength","levels","currentLevel","stopValue","propagateValues","levelIndex","currentValue","BitModelClosure","UNIFORM_CONTEXT","RUNLENGTH_CONTEXT","LLAndLHContextsLabel","HLContextLabel","HHContextLabel","contextLabelTable","coefficientCount","neighborsSignificance","processingFlags","setNeighborsSignificance","column","labels","processedInverseMask","processedMask","firstMagnitudeBitMask","i1","decision","decodeSignBit","contribution","sign0","sign1","significance1","decoded","horizontalContribution","width4","index0","indexNext","significance","oneRowDown","twoRowsDown","threeRowsDown","iNext","indexBase","checkAllEmpty","allEmpty","hasSignificantCoefficent","i2","Transform","u0","ll","iterate","j1","j2","hl_lh_hh","llWidth","llHeight","llItems","u","bufferPadding","rowBuffer","numBuffers","colBuffers","currentBuffer","current","alpha","beta","K_","bitsCached","maxLzwDictionarySize","lzwState","nextCode","dictionaryValues","dictionaryLengths","dictionaryPrevCodes","currentSequence","currentSequenceLength","lastCode","blockSize","decodedSizeDelta","estimatedDecodedSize","prevCode","decodedLength","currentBufferLength","hasPrev","predictor","readBlockTiff","readBlockPng","colors","pixBytes","rawBytes","inbuf","outbuf","inbits","outbits","bytesPerPixel","sum","compArray","bitMask","prevRow","up","upLeft","pa","pb","pc","repeatHeader","PRIVATE_USE_AREAS","PDF_GLYPH_SPACE_UNITS","EXPORT_DATA_PROPERTIES","EXPORT_DATA_EXTRA_PROPERTIES","adjustWidths","adjustToUnicode","amend","amendFallbackToUnicode","Glyph","originalCharCode","operatorListId","isSpace","isInFont","matchesForCache","int16","writeSignedInt16","signedInt16","int32","string16","safeString16","isTrueTypeFile","isTrueTypeCollectionFile","isOpenTypeFile","isType1File","isCFFFile","getFontFileType","fileType","fileSubtype","applyStandardFontGlyphMap","glyphMap","buildToFontChar","toFontChar","convertCidString","shouldThrow","adjustMapping","hasGlyph","newGlyphZeroId","newMap","privateUseAreaIndex","nextAvailableFontCharCode","privateUseOffetEnd","fontCharCode","getRanges","numGlyphs","fontGetRangesSort","codeIndices","createCmapTable","numTables","bmpLength","trailingRangesCount","segCount","searchParams","OpenTypeFileBuilder","getSearchParams","startCount","endCount","idDeltas","idRangeOffsets","glyphsIds","bias","contiguous","startCode","format314","rangeShift","format31012","header31012","validateOS2Table","os2","selection","usWinAscent","createOS2Table","charstrings","override","unitsPerEm","yMax","yMin","ulUnicodeRange1","ulUnicodeRange2","ulUnicodeRange3","ulUnicodeRange4","firstCharIndex","lastCharIndex","ascentScaled","typoAscent","typoDescent","winAscent","winDescent","createPostTable","createPostscriptName","createNameTable","proto","strings","stringsUnicode","strBufUnicode","names","platforms","encodings","languages","namesRecordCount","nameTable","strOffset","strs","nameRecord","psName","mimetype","missingFile","_charsCache","_glyphCache","baseName","serifFonts","namePart","fallbackToSystemFont","cff","CFFFont","Type1Font","convert","checkAndRepair","isOpenType","seacMap","FontRendererFactory","extraProperties","exportDataProperties","nonStdFontMap","getNonStdFontMap","isMappedToStandardFont","fontBasicMetricsMap","getFontBasicMetrics","bold","italic","isNarrow","remeasure","getGlyphMapForStandardFonts","getSupplementalGlyphMapForArialBlack","getSupplementalGlyphMapForCalibri","unicodeCharCode","VALID_TABLES","readTables","tables","hhea","hmtx","maxp","post","readTableEntry","checksum","previousPosition","readOpenTypeHeader","ttf","searchRange","entrySelector","readTrueTypeCollectionHeader","ttc","ttcTag","majorVersion","minorVersion","numFonts","offsetTable","dsigTag","dsigLength","dsigOffset","readTrueTypeCollectionData","fontNameParts","fallbackData","potentialHeader","potentialTables","readNameTable","nameEntry","part","readCmapTable","platformId","encodingId","mappings","hasShortCmap","potentialTable","canBreak","useTable","correctlySorted","nextBytes","nextPlatformId","format","subHeaderKeys","maxSubHeaderKey","subHeaderKey","subHeaders","entryCount","idDelta","idRangePos","segIndex","offsetsCount","offsetIndex","rangeOffset","offsets","nGroups","startCharCode","endCharCode","glyphCode","sanitizeMetrics","headTable","dupFirstEntry","caretOffset","numOfMetrics","macStyle","numOfSidebearings","numMissing","sanitizeGlyph","sourceStart","sourceEnd","destStart","hintsValid","glyphProfile","sizeOfInstructions","glyf","contoursCount","flagsCount","endPoint","instructionsStart","instructionsLength","instructionsEnd","coordinatesLength","xLength","yLength","xyLength","repeat","glyphDataLength","sanitizeHead","locaLength","indexToLocFormat","numGlyphsPlusOne","sanitizeGlyphLocations","loca","isGlyphLocationsLong","maxSizeOfInstructions","itemSize","itemDecode","itemEncode","fontItemDecodeLong","fontItemEncodeLong","fontItemDecode","fontItemEncode","numGlyphsOut","locaDataSize","locaData","oldGlyfData","oldGlyfDataLength","newGlyfData","locaEntries","nextOffset","missingGlyphs","writeOffset","simpleGlyph","firstEntryLength","readPostScriptTable","propertiesObj","maxpNumGlyphs","valid","glyphNameIndexes","customNames","stringLength","FORMAT_0_HEADER_LENGTH","numRecords","stringsStart","records","NAME_RECORD_LENGTH","platform","language","record","nameIndex","TTOpsStackDeltas","sanitizeTTProgram","ttContext","funcId","lastEndf","lastDeff","callstack","functionsCalled","tooComplexToFollowFunctions","inFDEF","ifLevel","inELSE","op","functionsUsed","functionsStackDeltas","newStackLength","functionsDefined","stackTop","stackDelta","NaN","foldTTTable","checkInvalidFunctions","maxFunctionDefs","sanitizeTTPrograms","fpgm","prep","cvt","cvtData","ttcData","cffFile","isTrueType","isComposite","GlyfTable","glyfTable","locaTable","isLocationLong","write","advanceWidth","lsb","maxZones","glyphsInfo","metricsOverride","isCidToGidMapEmpty","cmapTable","cmapPlatformId","cmapEncodingId","cmapMappings","cmapMappingsLength","forcePostTable","unicodeOrCharCode","glyphZeroId","newMapping","CFFParser","duplicateFirstGlyph","compiler","CFFCompiler","compile","namePrototype","builder","tableTag","addTable","toArray","mapping","getGlyphMapping","newCharCodeToGlyphId","hasGlyphId","getCharCodes","charCodes","createCharCode","seacs","charset","getCharset","seac","baseGlyphName","accentGlyphName","baseGlyphId","accentGlyphId","accentOffset","baseFontCharCode","accentFontCharCode","fontFieldsHmtx","cffWidths","charstring","spaceWidth","possibleSpaceReplacements","_charToGlyph","widthCode","buffers","currentBuf","hasCurrentBufErrors","getCharCode","charCodeLength","MAX_SUBR_NESTING","CFFStandardStrings","NUM_STANDARD_CFF_STRINGS","CFFParserClosure","CharstringValidationData","stackClearing","stem","resetStack","undefStack","CharstringValidationData12","stackFn","stack_div","seacAnalysisEnabled","CFF","parseHeader","parseIndex","endPos","topDictIndex","stringIndex","globalSubrIndex","topDictParsed","parseDict","topDict","createDict","CFFTopDict","parseNameIndex","parseStringIndex","parsePrivateDict","isCIDFont","hasName","charStringOffset","charStringIndex","fontBBox","fdArrayIndex","dictRaw","fontDict","fdArray","parseCharsets","fdSelect","parseFDSelect","parseEncoding","charStringsAndSeacs","parseCharStrings","charStrings","localSubrIndex","privateDict","subrsIndex","hdrSize","offSize","CFFHeader","parseOperand","parseFloatOperand","operands","cffIndex","CFFIndex","offsetSize","offsetStart","offsetEnd","CFFStrings","Type","cffDict","pair","setByKey","parseCharString","callDepth","stackSize","validationCommand","subrNumber","hasVStems","firstStackClearing","localSubrToUse","privateDictToUse","fdIndex","getFDIndex","nominalWidth","emptyPrivateDictionary","parentDict","CFFPrivateDict","privateOffset","removeByName","privateDictEnd","dictData","subrsOffset","relativeOffset","CFFCharset","CFFCharsetPredefinedTypes","ISO_ADOBE","ISOAdobeCharset","EXPERT","ExpertCharset","EXPERT_SUBSET","ExpertSubsetCharset","predefined","readSupplement","supplementsCount","sid","dataStart","glyphsCount","rangesCount","gid","CFFEncoding","CFFFDSelect","glyphZero","getSID","objects","CFFDict","keyToNameMap","nameToKeyMap","defaults","types","opcodes","order","valueLength","setByName","createTables","layout","CFFTopDictClosure","CFFPrivateDictClosure","CFFOffsetTracker","isTracking","track","location","setEntryLocation","dataOffset","offset1","offset2","offset3","offset4","CFFCompiler_add","compileHeader","compileNameIndex","xuid","compiled","compileTopDicts","topDictTracker","trackers","compileStringIndex","compileIndex","compileEncoding","compileCharset","compileCharStrings","compileFDSelect","fontDictTrackers","compilePrivateDicts","encodeNumber","encodeInteger","encodeFloat","EncodeFloatRegExp","nibbles","sanitizedName","dicts","removeCidKeys","fontDictTracker","fontDictData","compileDict","privateDictTracker","privateDictData","outputLength","subrs","offsetTracker","compileGlobalSubrIndex","writeByteArray","charStringsIndex","numGlyphsLessNotDef","charsetIndex","numCharsets","warned","compileTypedArray","lastFD","currentFD","numRanges","lastOffset","Courier","ZapfDingbats","ArialNarrow","ArialBlack","CourierNew","CourierNewPSMT","TimesNewRoman","TimesNewRomanPS","TimesNewRomanPSMT","Calibri","CenturyGothic","ComicSansMS","LucidaConsole","NuptialScript","SegoeUISymbol","Wingdings","Albertus","Aldus","Alexandria","Algerian","Antiqua","Apex","Arno","Aster","Aurora","Baskerville","Bell","Bembo","Benguiat","Bodoni","Bookman","Calisto","Calvert","Capitals","Cambria","Cartier","Caslon","Catull","Centaur","Chaparral","Cheltenham","Clarendon","Clearface","Cochin","Colonna","Constantia","Corona","Ecotype","Egyptienne","Elephant","Excelsior","Fairfield","Folkard","Footlight","FreeSerif","Garamond","Gentium","Georgia","Gloucester","Granjon","Heather","Hercules","Hiroshige","Imprint","Janson","Joanna","Korinna","Lexicon","LiberationSerif","Literaturnaya","Lucida","Melior","Memphis","Miller","Minion","Modern","Palatino","Perpetua","Plantin","Playbill","Renault","Requiem","Rockwell","Roman","Sabon","Scala","Seagull","Sistina","Souvenir","STIX","Sylfaen","Times","Trajan","Utopia","Versailles","Wanted","Weiss","Windsor","XITS","Dingbats","_createBuiltInEncoding","charsets","getUint32","getInt16","getInt8","getFloat214","getSubroutineBias","numSubrs","parseCmap","idOffset","parseCff","gsubrs","isCFFCIDFont","parseGlyfTable","lookupCmap","compileGlyf","cmds","quadraticCurveTo","xa","ya","numberOfContours","arg1","arg2","scale01","scale10","subglyph","endPtsOfContours","instructionLength","numberOfPoints","startPoint","contour","compileCharString","charStringCode","bezierCurveTo","stems","stackClean","xb","yb","subrCode","subrsBias","achar","bchar","glyphNameMap","gsubrsBias","NOOP","CompiledFont","compiledGlyphs","compiledCharCodeToGlyphId","compileGlyph","compileGlyphImpl","TrueTypeCompiled","Type2Compiled","cffInfo","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","H","P","R","T","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","o","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","Idieresis","eacute","abreve","uhungarumlaut","ecaron","Ydieresis","divide","Yacute","Acircumflex","aacute","Ucircumflex","yacute","scommaaccent","ecircumflex","Uring","Udieresis","aogonek","Uacute","uogonek","Edieresis","Dcroat","commaaccent","copyright","Emacron","ccaron","aring","Ncommaaccent","lacute","agrave","Tcommaaccent","Cacute","atilde","Edotaccent","scaron","scedilla","iacute","lozenge","Rcaron","Gcommaaccent","ucircumflex","acircumflex","Amacron","rcaron","ccedilla","Zdotaccent","Thorn","Omacron","Racute","Sacute","dcaron","Umacron","uring","threesuperior","Ograve","Agrave","Abreve","multiply","uacute","Tcaron","partialdiff","ydieresis","Nacute","icircumflex","Ecircumflex","adieresis","edieresis","cacute","nacute","umacron","Ncaron","Iacute","plusminus","brokenbar","registered","Gbreve","Idotaccent","summation","Egrave","racute","omacron","Zacute","Zcaron","greaterequal","Eth","Ccedilla","lcommaaccent","tcaron","eogonek","Uogonek","Aacute","Adieresis","egrave","zacute","iogonek","Oacute","oacute","amacron","sacute","idieresis","Ocircumflex","Ugrave","Delta","thorn","twosuperior","Odieresis","igrave","ohungarumlaut","Eogonek","dcroat","threequarters","Scedilla","lcaron","Kcommaaccent","Lacute","trademark","edotaccent","Igrave","Imacron","Lcaron","onehalf","lessequal","ocircumflex","ntilde","Uhungarumlaut","Eacute","emacron","gbreve","onequarter","Scaron","Scommaaccent","Ohungarumlaut","degree","ograve","Ccaron","ugrave","radical","Dcaron","rcommaaccent","Ntilde","otilde","Rcommaaccent","Lcommaaccent","Atilde","Aogonek","Aring","Otilde","zdotaccent","Ecaron","Iogonek","kcommaaccent","minus","Icircumflex","ncaron","tcommaaccent","logicalnot","odieresis","udieresis","notequal","gcommaaccent","eth","zcaron","ncommaaccent","onesuperior","imacron","Euro","universal","existential","suchthat","asteriskmath","congruent","Alpha","Beta","Chi","Epsilon","Phi","Gamma","Eta","Iota","theta1","Kappa","Lambda","Mu","Nu","Omicron","Pi","Theta","Rho","Sigma","Tau","Upsilon","sigma1","Omega","Xi","Psi","Zeta","therefore","perpendicular","radicalex","chi","phi","eta","iota","phi1","kappa","lambda","omicron","theta","rho","sigma","tau","upsilon","omega1","omega","xi","psi","zeta","similar","Upsilon1","minute","infinity","club","diamond","heart","spade","arrowboth","arrowleft","arrowup","arrowright","arrowdown","proportional","equivalence","approxequal","arrowvertex","arrowhorizex","carriagereturn","aleph","Ifraktur","Rfraktur","weierstrass","circlemultiply","circleplus","emptyset","intersection","union","propersuperset","reflexsuperset","notsubset","propersubset","reflexsubset","notelement","gradient","registerserif","copyrightserif","trademarkserif","product","dotmath","logicaland","logicalor","arrowdblboth","arrowdblleft","arrowdblup","arrowdblright","arrowdbldown","angleleft","registersans","copyrightsans","trademarksans","parenlefttp","parenleftex","parenleftbt","bracketlefttp","bracketleftex","bracketleftbt","bracelefttp","braceleftmid","braceleftbt","braceex","angleright","integral","integraltp","integralex","integralbt","parenrighttp","parenrightex","parenrightbt","bracketrighttp","bracketrightex","bracketrightbt","bracerighttp","bracerightmid","bracerightbt","apple","a2","a202","a3","a4","a5","a119","a118","a117","a11","a12","a13","a14","a15","a16","a105","a17","a18","a19","a20","a21","a22","a23","a24","a25","a26","a27","a28","a6","a7","a8","a9","a10","a29","a30","a31","a32","a33","a34","a35","a36","a37","a38","a39","a40","a41","a42","a43","a44","a45","a46","a47","a48","a49","a50","a51","a52","a53","a54","a55","a56","a57","a58","a59","a60","a61","a62","a63","a64","a65","a66","a67","a68","a69","a70","a71","a72","a73","a74","a203","a75","a204","a76","a77","a78","a79","a81","a82","a83","a84","a97","a98","a99","a100","a89","a90","a93","a94","a91","a92","a205","a85","a206","a86","a87","a88","a95","a96","a101","a102","a103","a104","a106","a107","a108","a112","a111","a110","a109","a120","a121","a122","a123","a124","a125","a126","a127","a128","a129","a130","a131","a132","a133","a134","a135","a136","a137","a138","a139","a140","a141","a142","a143","a144","a145","a146","a147","a148","a149","a150","a151","a152","a153","a154","a155","a156","a157","a158","a159","a160","a161","a163","a164","a196","a165","a192","a166","a167","a168","a169","a170","a171","a172","a173","a162","a174","a175","a176","a177","a178","a179","a193","a180","a199","a181","a200","a182","a201","a183","a184","a197","a185","a194","a198","a186","a195","a187","a188","a189","a190","a191","ON_CURVE_POINT","X_SHORT_VECTOR","Y_SHORT_VECTOR","REPEAT_FLAG","X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR","Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR","OVERLAP_SIMPLE","ARG_1_AND_2_ARE_WORDS","ARGS_ARE_XY_VALUES","WE_HAVE_A_SCALE","MORE_COMPONENTS","WE_HAVE_AN_X_AND_Y_SCALE","WE_HAVE_A_TWO_BY_TWO","WE_HAVE_INSTRUCTIONS","DataView","byteOffset","getSize","totalSize","ArrayBuffer","setUint32","setUint16","locaIndex","simple","composites","GlyphHeader","CompositeGlyph","SimpleGlyph","spos","factor","xMiddle","setInt16","Contour","xCoordinates","yCoordinates","contours","instructions","endPt","numberOfPt","getUint8","allXCoordinates","pointFlags","endPtsOfContoursIndex","lastCoordinate","lastX","lastY","setUint8","argument1","argument2","writeInt16","writeInt32","writeData","OTF_HEADER_SIZE","OTF_TABLE_ENTRY_SIZE","sfnt","entriesCount","entrySize","maxPower2","tablesNames","tableName","tableOffsets","paddedLength","quad","findBlock","streamBytes","startIndex","streamBytesLength","getHeaderBlock","suggestedLength","EEXEC_SIGNATURE","streamStartPos","headerBytes","headerBytesLength","getEexecBlock","eexecBytes","PFB_HEADER_SIZE","headerBlockLength","eexecBlockLength","pfbHeader","pfbHeaderPresent","headerBlock","headerBlockParser","Type1Parser","extractFontHeader","eexecBlock","eexecBlockParser","extractFontProgram","type2Charstrings","getType2Charstrings","getType2Subrs","wrap","getSeacs","charstringsLen","type1Charstrings","type1Subrs","type2Subrs","charsetArray","privateData","subrIndex","HINTING_ENABLED","Type1CharString","Type1CharStringClosure","COMMAND_MAP","hstem","vstem","vmoveto","rlineto","hlineto","vlineto","rrcurveto","callsubr","flex","drop","endchar","rmoveto","hmoveto","vhcurveto","hvcurveto","flexing","wx","sbx","executeCommand","asb","sby","num2","num1","flexArgs","howManyArgs","command","keepStack","stackLength","Type1ParserClosure","EEXEC_ENCRYPT_KEY","CHAR_STRS_ENCRYPT_KEY","isHexDigit","decrypt","discardNumber","c1","c2","decrypted","decryptAscii","digit1","digit2","isSpecial","encrypted","isBinary","readNumberArray","getToken","readInt","readBoolean","prevChar","readCharStrings","lenIV","program","blueArray","charString","charStringObject","encodingArg","ShadingType","FUNCTION_BASED","AXIAL","RADIAL","FREE_FORM_MESH","LATTICE_FORM_MESH","COONS_PATCH_MESH","TENSOR_PATCH_MESH","RadialAxialShading","MeshShading","DummyShading","BaseShading","SMALL_NUMBER","coordsArr","shadingType","t0","domainArr","extendStart","extendEnd","extendArr","r1","r2","distance","fnObj","createFromArray","NUMBER_OF_SAMPLES","colorStops","ratio","cssColor","background","r0","MeshStreamReader","tmpCompsBuf","csNumComps","tmpCsCompsBuf","colorFn","hasData","align","readFlag","bitsPerFlag","readCoordinate","bitsPerCoordinate","yi","readComponents","ci","getB","getBClosure","buildB","lut","t_","MIN_SPLIT_PATCH_CHUNKS_AMOUNT","MAX_SPLIT_PATCH_CHUNKS_AMOUNT","TRIANGLE_DENSITY","coords","figures","decodeContext","patchMesh","_decodeType4Shading","verticesPerRow","_decodeType5Shading","_decodeType6Shading","_decodeType7Shading","_updateBounds","_buildFigureFromPatch","_packData","operators","ps","verticesLeft","coord","tmp1","tmp2","tmp3","tmp4","figure","figureMinX","figureMinY","figureMaxX","figureMaxY","splitXBy","splitYBy","figureCoords","figureColors","cl","cr","c0","c3","bRow","bCol","newColor","coordsPacked","xy","colorsPacked","xstep","ystep","paintType","tilingType","cachedFunction","parsedFunction","PDFFunction","parseArray","fnRef","localFunction","_localFunctionCache","LocalFunctionCache","toNumberArray","getSampleArray","outputSize","bps","sampleMul","strBytes","strIdx","constructSampled","constructInterpolated","constructStiched","constructPostScript","toMultiArray","xmin","xmax","ymin","ymax","domain","inputSize","encode","samples","constructSampledFn","cubeVertices","cubeN","Float64Array","cubeVertex","domain_2i","domain_2i_1","size_i","e0","n0","n1","rj","constructInterpolatedFn","fnRefs","fns","constructStichedFn","constructStichedFromIRClip","dmin","dmax","rmin","rmax","PostScriptLexer","PostScriptParser","PostScriptCompiler","numOutputs","numInputs","PostScriptEvaluator","MAX_CACHE_SIZE","cache_available","constructPostScriptFn","cachedValue","execute","stackIndex","bound","fnDict","PostScriptStack","MAX_STACK_SIZE","initialStack","call","copy","roll","counter","atan","cos","LN10","sin","PostScriptCompilerClosure","AstNode","visit","AstArgument","visitArgument","AstLiteral","visitLiteral","AstBinaryOperation","visitBinaryOperation","AstMin","visitMin","AstVariable","visitVariable","AstVariableDefinition","variable","visitVariableDefinition","ExpressionBuilderVisitor","parts","literal","definition","buildAddOperation","buildMulOperation","buildSubOperation","buildMinOperation","lastRegister","ast1","ast2","tmpVar","instruction","statementBuilder","expr","nextToken","accept","expect","PostScriptTokenTypes","LBRACE","parseBlock","RBRACE","NUMBER","OPERATOR","parseCondition","conditionLocation","IF","jumpLocation","endOfTrue","IFELSE","PostScriptToken","opCache","getOperator","opValue","BaseLocalCache","_onlyRefs","onlyRefs","_nameRefMap","_imageMap","_imageCache","GlobalImageCache","NUM_PAGES_THRESHOLD","MIN_IMAGES_TO_CACHE","MAX_BYTE_SIZE","_refCache","_byteSize","imageData","_cacheLimitReached","pageIndexSet","onlyData","baseTypes","arabicTypes","isOdd","isEven","findUnequal","setValues","reverseValues","createBidiText","isLTR","startLevel","strLength","numBidi","charType","sor","eor","lastType","before","after","highestLevel","lowestOddLevel","SEED","MASK_HIGH","MASK_LOW","seed","blockCounts","tailLength","dataUint32","k1","k2","C1","C2","C1_LOW","C2_LOW","hex1","hex2","addState","parentState","checkFn","iterateFn","processFn","InitialState","iterateInlineImageGroup","iFirstSave","iCurr","foundInlineImageGroup","MIN_IMAGES_IN_INLINE_IMAGES_BLOCK","MAX_IMAGES_IN_INLINE_IMAGES_BLOCK","MAX_WIDTH","IMAGE_PADDING","curr","iFirstTransform","iFirstPIIXO","maxLineHeight","currentX","currentY","img","imgWidth","imgHeight","kind","iterateImageMaskGroup","foundImageMaskGroup","MIN_IMAGES_IN_MASKS_BLOCK","MAX_IMAGES_IN_MASKS_BLOCK","MAX_SAME_IMAGES_IN_MASKS_BLOCK","iFirstPIMXO","isSameImage","iTransform","transformArgs","firstPIMXOArg0","firstTransformArg0","firstTransformArg1","firstTransformArg2","firstTransformArg3","iPIMXO","images","maskParams","iterateImageGroup","iFirstPIXO","firstPIXOArg0","MIN_IMAGES_IN_BLOCK","MAX_IMAGES_IN_BLOCK","iterateShowTextGroup","iFirstSetFont","firstSetFontArg0","firstSetFontArg1","MIN_CHARS_IN_BLOCK","MAX_CHARS_IN_BLOCK","iFirstBeginText","iFirstSetTextMatrix","iFirstShowText","iFirstEndText","iFirst","iEndText","NullOptimizer","_optimize","QueueOptimizer","lastProcessed","CHUNK_SIZE","CHUNK_SIZE_ABOUT","streamSink","_streamSink","optimizer","_totalLength","_resolved","_transfers","decodeAndClamp","addend","coefficient","resizeImageMask","isMask","matte","needsDecode","decodeCoefficients","decodeAddends","isIndexed","maskDict","smaskData","maskData","computedLength","haveFullData","canvas","ctx","getContext","applyMaskImageData","putImageData","transferToImageBitmap","decodeBuffer","getComponents","bufferPos","rowComps","loop1End","loop2End","remainingBits","fillOpacity","rgbaBuf","alphaBuf","sw","fillGrayBuffer","opacity","imageOffset","maskOffset","undoPreblend","matteRgb","matteR","matteG","matteB","forceRGBA","getImageBytes","imageLength","internal","maybeUndoPreblend","srcPos","opaque","zeroMapping","oneMapping","widthInSource","widthRemainder","srcLength","elem","PartialEvaluatorClosure","ignoreCalculations","textStateManager","graphicsStateManager","GraphicsState","clipping","boundingBoxesStack","NoMCIDBoundingBoxStack","operationIndex","getTopPoints","BoundingBoxesCalculator_getTopPoints","pow","rotated_e","result_vector","getTextBoundingBox","BoundingBoxesCalculator_getTextBoundingBox","tx","ty","rise","glyphsSize","w0","tx2","ty2","tx3","ty3","glyphSize","glyphsPos","xPoints","point","yPoints","getClippingGraphicsBoundingBox","BoundingBoxesCalculator_getClippingGraphicsBoundingBox","saveGraphicsBoundingBox","clippingBBox","getRectBoundingBox","x4","y4","getLineBoundingBox","move_x","move_y","getCurve","curve","getCurveRoots","root_1","root_2","getCurveBoundingBox","curveX","curveY","getClip","getImageBoundingBox","BoundingBoxesCalculator_parseOperator","inc","clean","boundingBox","BoundingBoxesCalculator_setFont","BoundingBoxesCalculator_incrementOperation","GraphicsState_clone","GraphicsState_clear","BoundingBoxStack","BoundingBoxStack_begin","BoundingBoxStack_save","BoundingBoxStack_end","contentCounter","pointer","NoMCIDBoundingBoxStack_begin","inMarkedContent","newContentItem","contentItems","NoMCIDBoundingBoxStack_save","contentItem","final","NoMCIDBoundingBoxStack_end","tempPointer","NoMCIDBoundingBoxStack_inc","isMC","NoMCIDBoundingBoxStack_get","JSON","stringify","fetchDestination","_catDict","getCatalogObj","toplevelPagesDict","_actualNumPages","metadata","streamRef","encryptMetadata","MetadataParser","markInfo","_readMarkInfo","Marked","UserProperties","Suspects","_readStructTreeRoot","root","StructTreeRoot","init","pagesObj","documentOutline","_readDocumentOutline","blackColor","outlineDict","outlineItem","unsafeUrl","permissions","_readPermissions","optionalContentConfig","defaultConfig","groupsData","groupRefs","groupRef","_readOptionalContentConfig","contentGroupRefs","parseOnOff","onParsed","parseOrder","nestedLevels","parsedOrderRefs","nestedOrder","parseNestedOrder","hiddenGroups","MAX_NESTED_LEVELS","nestedName","creator","baseState","off","_pagesCount","destinations","_readDests","dests","NameTree","getAll","getDestination","allDest","pageLabels","_readPageLabels","prefix","numberTree","NumberTree","nums","currentLabel","labelDict","st","LIMIT","A_UPPER_CASE","A_LOWER_CASE","baseCharCode","letterIndex","character","pageLayout","pageMode","viewerPreferences","prefs","prefValue","openAction","attachments","nameTree","fs","_collectJavaScript","appendIfJavaScriptDict","jsDict","translatedFonts","nodesToVisit","visitedNodes","pagesRef","currentPageIndex","currentNode","posInKids","addPageDict","addPageError","queueItem","kidObj","getPageIndex","cachedPageIndex","pagesBeforeRef","kidRef","parentRef","kidPromises","uri","actionType","actionName","include","resetForm","urlDict","remoteDest","namedAction","jsAction","jsURL","ExtendedCatalog","pages","_convertStructToObject","struct","el","getTreeElement","newPage","findIndex","subel","pagesArray","kidObjType","NameOrNumberTree","_type","kidsOrEntries","loopCount","MAX_LEVELS","limits","currentKey","pickPlatformItem","description","contentAvailable","_filename","contentRef","fileObj","_repair","SimpleXMLParser","lowerCaseName","xmlDocument","parseFromString","_metadataMap","_data","d2","d3","charBuf","_getSequence","nodeName","childNodes","_parseArray","hasChildNodes","seqNode","rdf","documentElement","firstChild","nextSibling","desc","parsedData","rawData","XMLParserErrorCode","NoError","EndOfDocument","UnterminatedCdat","UnterminatedXmlDeclaration","UnterminatedDoctypeDeclaration","UnterminatedComment","MalformedElement","OutOfMemory","UnterminatedAttributeValue","UnterminatedElement","ElementNeverBegun","isWhitespaceString","XMLParserBase","_resolveEntities","onResolveEntity","_parseContent","attributes","skipWs","attrName","attrValue","attrEndChar","attrEndIndex","parsed","_parseProcessingInstruction","attrStart","parseXml","ch2","onEndElement","onPi","onComment","onCdata","q2","complexDoctype","doctypeContent","onDoctype","isClosed","onBeginElement","onText","SimpleDOMNode","nodeValue","parentNode","child","searchNode","paths","siblingPos","dump","attribute","hasAttributes","_currentFragment","_stack","_errorCode","_hasAttributes","_lowerCaseName","lastElement","MAX_DEPTH","StructElementType","PAGE_CONTENT","STREAM_CONTENT","OBJECT","ELEMENT","rootDict","roleMap","readRoleMap","roleMapDict","StructElementNode","parseKids","role","nameObj","pageObjId","objRef","parseKid","StructElement","kidDict","refObjId","parentTree","parentArray","addNode","addTopLevelNode","nodeToSerializable","kidElement","mayHaveChildren","addChildren","rawValue","refSet","_walk","nodesToRevisit","pendingRequests","foundMissingData","writeValue","writeStream","string","writeArray","numberToString","roundedValue","writeInt","writeString","computeMD5","filesize","time","md5Buffer","md5BufferLen","writeXFADataForAcroform","xml","updateXFA","oldXfa","newXfa","refForXrefTable","baseOffset","xrefTableData","indexes","maxOffset","md5","sizes","structSize","tableLength","bufferLen","footer","objOffset","ARCFourCipher","keyLength","encryptBlock","decryptBlock","calculateMD5Closure","h0","h3","padded","rotateArg","Word64","highInteger","lowInteger","and","word","xor","or","shiftRight","places","shiftLeft","rotateRight","not","lowAdd","highAdd","copyTo","calculateSHA256","calculateSHA256Closure","rotr","maj","sigmaPrime","littleSigma","littleSigmaPrime","h4","h5","h6","h7","calculateSHA512","calculateSHA512Closure","mode384","calculateSHA384","NullCipher","AESBaseCipher","_s","_inv_s","_mix","_mixCol","bufferPosition","_expandKey","cipherKey","_decrypt","_keySize","_cyclesOfRepetition","s0","s1","s3","_encrypt","_decryptBlock2","finalize","sourceLength","iv","plain","_key","lastBlock","psLen","cipher","AES128Cipher","_rcon","rcon","t3","t4","AES256Cipher","PDF17","checkOwnerPassword","ownerValidationSalt","userBytes","ownerPassword","hashData","checkUserPassword","userValidationSalt","userPassword","getOwnerKey","ownerKeySalt","ownerEncryption","getUserKey","userKeySalt","userEncryption","PDF20","PDF20Closure","calculatePDF20Hash","combinedLength","combinedArray","remainder","concatBytes","CipherTransform","stringCipherConstructor","streamCipherConstructor","StringCipherConstructor","StreamCipherConstructor","DecryptStream","cipherTransformDecryptStream","strLen","pad","crypto","getRandomValues","random","CipherTransformFactory","CipherTransformFactoryClosure","defaultPasswordBytes","createEncryptionKey20","revision","uBytes","perms","passwordLength","pdfAlgorithm","prepareKeyData","fileId","hashDataSize","keyLengthInBytes","encryptionKey","checkData","derivedKey","decodeUserPassword","identityName","buildObjectKey","isAes","buildCipherConstructor","cf","cryptFilter","cfm","cipherTransformFactoryBuildCipherConstructorNone","cipherTransformFactoryBuildCipherConstructorV2","cipherTransformFactoryBuildCipherConstructorAESV2","cipherTransformFactoryBuildCipherConstructorAESV3","algorithm","cfDict","streamCryptoName","handlerDict","fileIdBytes","passwordBytes","decodedPassword","stmf","strf","eff","cipherConstructor","buildCipherCipherConstructor","nextChunk","hasMoreData","XFAParser","_createDocument","binder","Binder","form","dataHandler","DataHandler","$globalData","_createPagesHelper","$toPages","nextIteration","setTimeout","_createPages","dims","fontFinder","FontFinder","typeface","usedTypefaces","stripQuotes","storage","serialize","rc","XhtmlNamespace","$nodeName","newRoot","body","$appendChild","$toHTML","success","html","class","attr","$text","$acceptWhitespace","$addHTML","$childrenToHTML","$clean","$cleanPage","$cleanup","$clone","$consumed","$content","$data","$dump","$extra","$finalize","$flushHTML","$getAttributeIt","$getAttributes","$getAvailableSpace","$getChildrenByClass","$getChildrenByName","$getChildrenByNameIt","$getDataValue","$getExtra","$getRealChildrenByNameIt","$getChildren","$getContainedChildren","$getNextPage","$getSubformParent","$getParent","$getTemplateRoot","$hasSettableValue","$ids","$indexOf","$insertAt","$isCDATAXml","$isBindable","$isDataValue","$isDescendent","$isNsAgnostic","$isSplittable","$isThereMoreWidth","$isTransparent","$isUsable","$lastAttribute","$namespaceId","$nsAttributes","$onChild","$onChildCheck","$onText","$pushGlyphs","$popPara","$pushPara","$removeChild","$root","$resolvePrototypes","$searchNode","$setId","$setSetAttributes","$setValue","$tabIndex","$toString","$toStyle","$uid","_applyPrototype","_attributes","_attributeNames","_children","_cloneAttribute","_dataValue","_defaultValue","_filteredChildrenGenerator","_getPrototype","_getUnsetAttributes","_hasChildren","_max","_options","_parent","_resolvePrototypesHelper","_setAttributes","_validator","uid","NS_DATASETS","NamespaceIds","XFAObject","nsId","hasChildren","XFAObjectArray","para","paraStack","getPrototypeOf","getOwnPropertyNames","dumped","HTMLResult","EMPTY","availableSpace","failingNode","generator","protoAttributes","allAttr","setAttr","ancestors","use","usehref","somExpression","endsWith","protoProto","newAncestors","unsetAttrName","protoValue","$symbol","getOwnPropertySymbols","clonedChild","allTransparent","XFAAttribute","XmlObject","dataNode","tagName","utf8TagName","utf8Name","skipConsumed","xhtml","hasNS","$ns","$name","ContentObject","OptionObject","getKeyword","StringObject","IntegerObject","validator","getInteger","Option01","Option10","dimConverters","pt","mm","in","measurementPattern","getFloat","getStringOption","getMeasurement","def","valueStr","unit","conv","getRatio","den","getRelevant","excluded","viewname","getColor","getBBox","FAILURE","breakNode","isBreak","$buildXFAObject","ns","pdf","sourceSet","xdc","xdp","xfdf","xmpmeta","namePattern","indexPattern","dot","dotDot","dotHash","dotBracket","dotParen","shortcuts","host","dataWindow","event","somCache","WeakMap","parseExpression","dotDotAllowed","noExpr","cacheName","formCalc","container","useCache","isQualified","isFinite","acc","createNodes","createDataNode","createText","Text","emptyMerge","_isConsumeData","_mergeMode","_isMatchTemplate","_bindElement","_bindValue","formNode","picture","Field","ui","choiceList","open","_findDataByNameToConsume","isValue","global","_setProperties","target","connection","setProperty","targetNodes","targetNode","targetParent","SetProperty","BindItems","attrs","Reflect","construct","_bindItems","bindItems","Items","labelRef","valueRef","labelNodes","labelNode","valueNodes","valueNode","label","_bindOccurrences","matches","baseClone","occur","_createOccurrences","initial","currentNumber","nodeClone","_getOccurInfo","_setAndBind","uselessNodes","mergeMode","dataChildren","dataChild","TEMPLATE_NS_ID","SVG_NS","MAX_ATTEMPTS_FOR_LRTB_LAYOUT","MAX_EMPTY_PAGES","DEFAULT_TAB_INDEX","HEADING_PATTERN","MIMES","IMAGES_HEADERS","getBorderDims","border","borderExtra","insets","hasMargin","margin","topInset","rightInset","bottomInset","leftInset","_setValue","templateNode","Value","getContainedChildren","SubformSet","setTabIndex","traversal","applyAssist","assist","assistTitle","ariaRole","ariaLevel","ariaLabel","speak","toolTip","valueToHtml","setFirstUnsplittable","firstUnsplittable","noLayoutFailure","unsetFirstUnsplittable","handleBreak","targetType","currentPageArea","currentContentArea","PageArea","startNew","ContentArea","pageArea","nextPageArea","contentAreas","contentArea","indexForCurrent","indexForTarget","handleOverflow","extraNode","saved","savedMethod","AppearanceFilter","Arc","circular","hand","startAngle","sweepAngle","edge","Edge","edgeStyle","presence","strokeWidth","measureToString","thickness","arc","xmlns","overflow","cx","cy","rx","ry","largeArc","vectorEffect","preserveAspectRatio","svg","display","Area","colSpan","relevant","extras","area","draw","exObject","exclGroup","subform","subformSet","toStyle","isPrintOnly","xfaName","Assist","Barcode","charEncoding","dataColumnCount","dataPrep","dataRowCount","endChar","errorCorrectionLevel","moduleHeight","moduleWidth","printCheckDigit","rowColumnRatio","startChar","textLocation","truncate","upsMode","wideNarrowRatio","Bind","Bookend","leader","BooleanElement","Border","break","corner","edges","defaultEdge","edgeStyles","cornerStyles","borderRadius","Break","afterTarget","beforeTarget","bookendLeader","bookendTrailer","overflowLeader","overflowTarget","overflowTrailer","BreakAfter","script","BreakBefore","Button","highlight","grandpa","htmlButton","activity","fixURL","Calculate","Caption","placement","reserve","layoutNode","savedReserve","setPara","Certificate","Certificates","credentialServerPolicy","urlPolicy","encryption","issuers","keyUsage","oids","signing","subjectDNs","CheckButton","mark","shape","className","groupId","fieldId","dataId","ExclGroup","xfaOn","xfaOff","ChoiceList","commitOn","textEntry","optionStyle","displayedIndex","saveIndex","displayed","selected","selectAttributes","multiple","Color","cSpace","Comb","numberOfCells","Connect","usage","classNames","Corner","inverted","DateElement","DateTime","DateTimeEdit","hScrollPolicy","picker","Decimal","fracDigits","leadDigits","DefaultUi","Desc","boolean","dateTime","decimal","exData","float","integer","DigestMethod","DigestMethods","digestMethod","Draw","anchorType","hAlign","locale","maxW","minH","minW","caption","keep","fixDimensions","savedW","savedH","isBroken","checkDimensions","setMinMaxDimensions","computeBbox","createWrapper","cap","linecap","Encoding","Encodings","Encrypt","certificate","EncryptData","manifest","Encryption","EncryptionMethod","EncryptionMethods","encryptionMethod","Event","listen","encryptData","signData","submit","ExData","contentType","maxLength","rid","transferEncoding","ExObject","archive","classId","codeBase","codeType","access","accessKey","connect","attempt","numberInLine","_isSplittable","flushHTML","addHTML","getAvailableSpace","setAccess","prevHeight","isSplittable","columnWidths","currentColumn","layoutClass","isLrTb","maxRun","marginH","marginV","Execute","executeType","runAt","Extras","Ui","TextEdit","textEdit","checkButton","borderDims","uiW","uiH","lineNoGap","tabindex","aElement","button","imageEdit","htmlValue","maxChars","numericEdit","captionHeight","inputHeight","Fill","linear","radial","solid","stipple","ggrandpa","propName","altPropName","Rectangle","Filter","addRevocationInfo","appearanceFilter","certificates","digestMethods","encryptionMethods","lockDocument","mdp","reasons","timeStamp","Float","baselineShift","fontHorizontalScale","fontVerticalScale","kerningMode","letterSpacing","lineThrough","lineThroughPeriod","overline","overlinePeriod","posture","underline","underlinePeriod","backgroundClip","verticalAlign","fontKerning","textDecoration","textDecorationStyle","fontStyle","setFontFamily","Format","Handler","Hyphenation","excludeAllCaps","excludeInitialCap","hyphenate","pushCharacterCount","remainCharacterCount","wordCharacterCount","Image","aspect","atob","blob","Blob","objectFit","createObjectURL","ImageEdit","Integer","Issuers","Keep","intact","KeyUsage","crlSign","dataEncipherment","decipherOnly","digitalSignature","encipherOnly","keyAgreement","keyCertSign","keyEncipherment","nonRepudiation","Line","slope","Linear","startColor","endColor","LockDocument","Manifest","Margin","Mdp","signatureType","Medium","imagingBBox","long","orientation","short","stock","trayIn","trayOut","Message","NumericEdit","Occur","originalMin","PageSet","Template","Oid","Oids","oid","Overflow","addLeader","addTrailer","blankOrNotBlank","initialNumber","numbered","oddOrEven","pagePosition","medium","numberOfUse","relation","duplexImposition","pageSet","pageSetIndex","pageNumber","parity","Para","marginLeft","marginRight","orphans","preserve","radixOffset","spaceAbove","spaceBelow","tabDefault","tabStops","textIndent","vAlign","widows","hyphenation","paddingLeft","paddingight","paddingTop","paddingBottom","fixTextIndent","tabSize","hyphenatation","PasswordEdit","passwordChar","Picture","Proto","barcode","bookend","breakAfter","breakBefore","dateTimeEdit","defaultUi","passwordEdit","subjectDN","traverse","variables","Radial","Reason","Reasons","cornerStyle","RefElement","binding","SignData","Signature","Signing","Solid","Speak","disable","priority","Stipple","rate","bgColor","Subform","allowMacro","restoreState","scope","afterBreakAfter","savedNoLayoutFailure","overflowExtra","overflowNode","SubjectDN","delimiter","kv","SubjectDNs","Submit","embedPDF","textEncoding","xdpContent","baseProfile","pageAreas","mainHtml","breakBeforeTarget","pageAreaParent","targetPageArea","hasSomething","hasSomethingCounter","htmlContentAreas","allowRichText","vScrollPolicy","Time","TimeStamp","server","ToolTip","Traversal","Traverse","Validate","formatTest","nullTest","scriptTest","valueName","Variables","TemplateNamespace","createLine","htmlFromFailing","getTransformedBBox","centerX","centerY","ERROR","converters","transformOrigin","visibility","textAlign","alignSelf","layoutText","xfaFont","measure","TextMeasure","addString","compute","newStyle","wrapper","insetsH","insetsW","indent","getCurrentPara","nodeStyle","valueStyle","flexDirection","justifyContent","paraStyle","regular","pdfFont","selectFont","defaultFont","addPdfFont","bolditalic","myriad","getDefault","mustWarn","maybe","family","real","WIDTH_FACTOR","FontInfo","paraMargin","FontSelector","defaultXfaFont","defaultParaMargin","defaultLineHeight","pushData","lastFont","popFont","topFont","fontSelector","extraHeight","addPara","fontLineHeight","noGap","firstLineHeight","fallbackWidth","encodedLine","lastSpaceWidth","currentLineWidth","currentLineHeight","isFirstLine","isEOL","dataset","rootNameSpace","_builder","Builder","_globalData","_ids","_current","buildRoot","_whiteRegex","_nbsps","_richText","_mkAttributes","namespace","prefixes","attributeObj","nsAttrs","_getNameAndPrefix","nsAgnostic","attributesObj","nsPrefix","isNsAgnostic","build","Root","Empty","_namespaceStack","_nsAgnosticLevel","_namespacePrefixes","_namespaces","_nextNsId","_currentNamespace","UnknownNamespace","hasNamespaceDef","_searchNamespace","_addNamespacePrefix","dataTemplate","NamespaceSetUp","xfaAttrs","nsToUse","_getNamespaceToUse","namespaceToUse","hasNamespace","nsName","prefixStack","ConfigNamespace","ConnectionSetNamespace","DatasetsNamespace","LocaleSetNamespace","SignatureNamespace","StylesheetNamespace","XdpNamespace","CONFIG_NS_ID","Acrobat","acrobat7","autoSave","common","validateApprovalSignatures","submitUrl","Acrobat7","dynamicRender","ADBE_JSConsole","ADBE_JSDebugger","AddSilentPrint","AddViewerPreferences","AdjustData","AdobeExtensionLevel","Agent","AlwaysEmbed","Amd","Attributes","AutoSave","Base","BatchOutput","BehaviorOverride","Cache","templateCache","Change","Common","messaging","suppressBanner","validationMessaging","versionControl","Compress","CompressLogicalStructure","CompressObjectStream","Compression","compressLogicalStructure","compressObjectStream","Config","acrobat","present","trace","agent","Conformance","ContentCopy","Copies","Creator","CurrentPage","Data","adjustData","incrementalLoad","outputXSL","startNode","xsl","excludeNS","Debug","DefaultTypeface","writingScript","Destination","DocumentAssembly","Driver","DuplexOption","DynamicRender","Embed","encryptionLevel","EncryptionLevel","Enforce","Equate","force","to","EquateRange","_unicodeRange","unicodeRange","unicodeRegex","Exclude","ExcludeNS","FlipLabel","embed","subsetBelow","alwaysEmbed","defaultTypeface","neverEmbed","FormFieldFilling","GroupParent","IfEmpty","IncludeXDPContent","IncrementalLoad","IncrementalMerge","Interactive","Jog","LabelPrinter","batchOutput","flipLabel","Layout","Level","Linearized","Locale","LocaleSet","Log","threshold","MapElement","equate","equateRange","MediumInfo","msgId","severity","Messaging","Mode","ModifyAnnots","MsgId","NameAttr","NeverEmbed","NumberOfCopies","OpenAction","destination","Output","OutputBin","OutputXSL","Overprint","Packets","PageOffset","PageRange","numbers","Pagination","PaginationOverride","Part","Pcl","jog","mediumInfo","outputBin","pageOffset","staple","Pdf","adobeExtensionLevel","compression","interactive","linearized","pdfa","producer","renderPolicy","scriptModel","silentPrint","submitFormat","tagged","Pdfa","amd","conformance","includeXDPContent","Permissions","accessibleContent","change","contentCopy","documentAssembly","formFieldFilling","modifyAnnots","plaintextMetadata","printHighQuality","PickTrayByPDFSize","PlaintextMetadata","Presence","Present","behaviorOverride","copies","incrementalMerge","overprint","pagination","paginationOverride","driver","labelPrinter","pcl","webClient","zpl","Print","PrintHighQuality","PrintScaling","PrinterName","Producer","Ps","Range","Record","Relevant","Rename","RenderPolicy","RunScripts","currentPage","exclude","runScripts","ScriptModel","Severity","SilentPrint","addSilentPrint","printerName","Staple","StartNode","StartPage","SubmitFormat","SubmitUrl","SubsetBelow","SuppressBanner","Tagged","startPage","Threshold","To","TemplateCache","maxEntries","Trace","groupParent","ifEmpty","nameAttr","rename","whitespace","Uri","ValidateApprovalSignatures","ValidationMessaging","Version","VersionControl","outputBelow","sourceAbove","sourceBelow","ViewerPreferences","addViewerPreferences","duplexOption","enforce","numberOfCopies","pageRange","pickTrayByPDFSize","printScaling","WebClient","Whitespace","Window","Xdc","Xdp","packets","Xsl","debug","Zpl","compress","CONNECTION_SET_NS_ID","ConnectionSet","wsdlConnection","xmlConnection","xsdConnection","EffectiveInputPolicy","EffectiveOutputPolicy","Operation","RootElement","SoapAction","SoapAddress","WsdlAddress","WsdlConnection","dataDescription","effectiveInputPolicy","effectiveOutputPolicy","soapAction","soapAddress","wsdlAddress","XmlConnection","XsdConnection","rootElement","DATASETS_NS_ID","Datasets","LOCALE_SET_NS_ID","CalendarSymbols","dayNames","eraNames","meridiemNames","monthNames","CurrencySymbol","CurrencySymbols","currencySymbol","DatePattern","DatePatterns","datePattern","DateTimeSymbols","Day","DayNames","abbr","day","Era","EraNames","era","calendarSymbols","currencySymbols","datePatterns","dateTimeSymbols","numberPatterns","numberSymbols","timePatterns","typeFaces","Meridiem","MeridiemNames","meridiem","Month","MonthNames","month","NumberPattern","NumberPatterns","numberPattern","NumberSymbol","NumberSymbols","numberSymbol","TimePattern","TimePatterns","timePattern","TypeFace","TypeFaces","typeFace","SIGNATURE_NS_ID","STYLESHEET_NS_ID","Stylesheet","XDP_NS_ID","uuid","XHTML_NS_ID","$richText","VALID_STYLES","StyleMapping","original","spacesRegExp","crlfRegExp","crlfForRichTextRegExp","mapStyle","styleStr","newValue","replaceAll","SUB_SUPER_SCRIPT_FACTOR","VERTICAL_FACTOR","checkStyle","NoWhites","XhtmlObject","mustPop","pushFont","Body","Br","Html","Li","Ol","siblings","Span","Sub","Sup","Ul","br","li","ol","span","sub","sup","ul","namespaceId","decodeString","DatasetXMLParser","xrefstms","_cacheMap","_pendingRefs","_newRefNum","startXRefQueue","trailerDict","readXRef","indexObjects","processXRefTable","tableState","entryNum","parserBuf1","parserBuf2","readXRefTable","firstEntryNum","free","uncompressed","processXRefStream","streamParameters","byteWidths","streamState","entryRanges","readXRefStream","typeFieldWidth","offsetFieldWidth","generationFieldWidth","generation","typeByte","offsetByte","generationByte","TAB","PERCENT","LT","readToken","skipUntil","skipped","objRegExp","endobjRegExp","nestedObjRegExp","CHECK_CONTENT_LENGTH","trailerBytes","startxrefBytes","objBytes","xrefBytes","trailers","xrefStms","updateEntries","checkPos","tokenStr","objToken","xrefTagOffset","pagesDict","pagesCount","startXRefParsedCache","getEntry","xrefEntry","fetchUncompressed","fetchCompressed","tableOffset","CallbackKind","DATA","StreamKind","CANCEL","CANCEL_COMPLETE","CLOSE","ENQUEUE","PULL","PULL_COMPLETE","START_COMPLETE","wrapReason","sourceName","targetName","comObj","callbackId","streamId","streamSinks","streamControllers","callbackCapabilities","actionHandler","_onComObjOnMessage","_processStreamMessage","cbSourceName","cbTargetName","_createStreamSink","addEventListener","ah","sendWithStream","queueingStrategy","controller","startCapability","startCall","pullCall","cancelCall","pull","pullCapability","cancel","cancelCapability","isCancelled","lastDesiredSize","sinkCapability","onPull","onCancel","streamController","_deleteStreamController","allSettled","removeEventListener","_msgHandler","_contentLength","_fullRequestReader","_rangeRequestReaders","PDFWorkerStreamReader","PDFWorkerStreamRangeReader","_isRangeSupported","_isStreamingSupported","readableStream","_reader","getReader","_headersReady","pdfjsVersion","pdfjsBuild"],"sourceRoot":""} \ No newline at end of file diff --git a/build/pdf.worker.min.js b/build/pdf.worker.min.js index 197faa75a9..60f631a21b 100644 --- a/build/pdf.worker.min.js +++ b/build/pdf.worker.min.js @@ -19,4 +19,4 @@ * @licend The above is the entire license notice for the * JavaScript code in this page */ -!function webpackUniversalModuleDefinition(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("pdfjs-dist/build/pdf.worker",[],t):"object"==typeof exports?exports["pdfjs-dist/build/pdf.worker"]=t():e["pdfjs-dist/build/pdf.worker"]=e.pdfjsWorker=t()}(this,(()=>(()=>{"use strict";var e=[,(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.WorkerTask=t.WorkerMessageHandler=void 0;var r=a(2),n=a(5),i=a(6),s=a(68),o=a(74),c=a(4),l=a(103),h=a(104),u=a(8);class WorkerTask{constructor(e){this.name=e;this.terminated=!1;this._capability=(0,r.createPromiseCapability)()}get finished(){return this._capability.promise}finish(){this._capability.resolve()}terminate(){this.terminated=!0}ensureNotTerminated(){if(this.terminated)throw new Error("Worker task was terminated")}}t.WorkerTask=WorkerTask;class WorkerMessageHandler{static setup(e,t){let a=!1;e.on("test",(function wphSetupTest(t){if(!a){a=!0;e.send("test",t instanceof Uint8Array)}}));e.on("configure",(function wphConfigure(e){(0,r.setVerbosityLevel)(e.verbosity)}));e.on("GetDocRequest",(function wphSetupDoc(e){return WorkerMessageHandler.createDocumentHandler(e,t)}))}static createDocumentHandler(e,t){let a,d=!1,f=null;const g=[],p=(0,r.getVerbosityLevel)(),m=e.apiVersion,b="2.14.305";if(m!==b)throw new Error(`The API version "${m}" does not match the Worker version "2.14.305".`);const y=[];for(const e in[])y.push(e);if(y.length)throw new Error("The `Array.prototype` contains unexpected enumerable properties: "+y.join(", ")+"; thus breaking e.g. `for...in` iteration of `Array`s.");if("undefined"==typeof ReadableStream){const e="The browser/environment lacks native support for critical functionality used by the PDF.js library (e.g. `ReadableStream`); ";if(c.isNodeJS)throw new Error(e+"please use a `legacy`-build instead.");throw new Error(e+"please update to a supported browser.")}const w=e.docId,S=e.docBaseUrl,x=e.docId+"_worker";let k=new l.MessageHandler(x,w,t);function ensureNotTerminated(){if(d)throw new Error("Worker was terminated")}function startWorkerTask(e){g.push(e)}function finishWorkerTask(e){e.finish();const t=g.indexOf(e);g.splice(t,1)}async function loadDocument(e){await a.ensureDoc("checkHeader");await a.ensureDoc("parseStartXRef");await a.ensureDoc("parse",[e]);await a.ensureDoc("checkFirstPage",[e]);await a.ensureDoc("checkLastPage",[e]);const t=await a.ensureDoc("isPureXfa");if(t){const e=new WorkerTask("loadXfaFonts");startWorkerTask(e);await Promise.all([a.loadXfaFonts(k,e).catch((e=>{})).then((()=>finishWorkerTask(e))),a.loadXfaImages()])}const[r,n,i]=await Promise.all([a.ensureDoc("numPages"),a.ensureDoc("fingerprints"),a.ensureDoc("structureTree")]);return{numPages:r,fingerprints:n,htmlForXfa:t?await a.ensureDoc("htmlForXfa"):null,structureTree:i}}function getPdfManager(e,t,a){const n=(0,r.createPromiseCapability)();let s;const o=e.source;if(o.data){try{s=new i.LocalPdfManager(w,o.data,o.password,k,t,a,S);n.resolve(s)}catch(e){n.reject(e)}return n.promise}let c,l=[];try{c=new h.PDFWorkerStream(k)}catch(e){n.reject(e);return n.promise}const u=c.getFullReader();u.headersReady.then((function(){if(!u.isRangeSupported)return;const e=o.disableAutoFetch||u.isStreamingSupported;s=new i.NetworkPdfManager(w,c,{msgHandler:k,password:o.password,length:u.contentLength,disableAutoFetch:e,rangeChunkSize:o.rangeChunkSize},t,a,S);for(let e=0;enull!==e)).reduce(((e,t)=>e.concat(t)),u);if(0===u.length)return t.bytes}const f=a instanceof n.Dict&&a.get("XFA")||null;let g=null,p=!1;if(Array.isArray(f)){for(let e=0,t=f.length;e{"string"==typeof a&&(e[t]=(0,r.stringToPDFString)(a))}));m={rootRef:c.trailer.getRaw("Root")||null,encryptRef:c.trailer.getRaw("Encrypt")||null,newRef:c.getNewRef(),infoRef:c.trailer.getRaw("Info")||null,info:e,fileIds:c.trailer.get("ID")||null,startXRef:l,filename:s}}c.resetNewRef();return(0,o.incrementalUpdate)({originalData:t.bytes,xrefInfo:m,newRefs:u,xref:c,hasXfa:!!f,xfaDatasetsRef:g,hasXfaDatasetsEntry:p,acroFormRef:i,acroForm:a,xfaData:d})}))}));k.on("GetOperatorList",(function wphSetupRenderPage(e,t){const n=e.pageIndex;a.getPage(n).then((function(a){const i=new WorkerTask(`GetOperatorList: page ${n}`);startWorkerTask(i);const s=p>=r.VerbosityLevel.INFOS?Date.now():0;a.getOperatorList({handler:k,sink:t,task:i,intent:e.intent,cacheKey:e.cacheKey,annotationStorage:e.annotationStorage}).then((function(e){finishWorkerTask(i);s&&(0,r.info)(`page=${n+1} - getOperatorList: time=${Date.now()-s}ms, len=${e.length}`);t.close()}),(function(e){finishWorkerTask(i);if(!i.terminated){k.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorOperatorList});t.error(e)}}))}))}));k.on("GetTextContent",(function wphExtractText(e,t){const n=e.pageIndex;a.getPage(n).then((function(a){const i=new WorkerTask("GetTextContent: page "+n);startWorkerTask(i);const s=p>=r.VerbosityLevel.INFOS?Date.now():0;a.extractTextContent({handler:k,task:i,sink:t,includeMarkedContent:e.includeMarkedContent,combineTextItems:e.combineTextItems}).then((function(){finishWorkerTask(i);s&&(0,r.info)(`page=${n+1} - getTextContent: time=`+(Date.now()-s)+"ms");t.close()}),(function(e){finishWorkerTask(i);i.terminated||t.error(e)}))}))}));k.on("GetStructTree",(function wphGetStructTree(e){return a.getPage(e.pageIndex).then((function(e){return a.ensure(e,"getStructTree")}))}));k.on("FontFallback",(function(e){return a.fontFallback(e.id,k)}));k.on("Cleanup",(function wphCleanup(e){return a.cleanup(!0)}));k.on("Terminate",(function wphTerminate(e){d=!0;const t=[];if(a){a.terminate(new r.AbortException("Worker was terminated."));const e=a.cleanup();t.push(e);a=null}else(0,s.clearGlobalCaches)();f&&f(new r.AbortException("Worker was terminated."));for(const e of g){t.push(e.finished);e.terminate()}return Promise.all(t).then((function(){k.destroy();k=null}))}));k.on("Ready",(function wphReady(t){!function setupDoc(e){function onSuccess(e){ensureNotTerminated();k.send("GetDoc",{pdfInfo:e})}function onFailure(e){ensureNotTerminated();if(e instanceof r.PasswordException){const t=new WorkerTask(`PasswordException: response ${e.code}`);startWorkerTask(t);k.sendWithPromise("PasswordRequest",e).then((function({password:e}){finishWorkerTask(t);a.updatePassword(e);pdfManagerReady()})).catch((function(){finishWorkerTask(t);k.send("DocException",e)}))}else e instanceof r.InvalidPDFException||e instanceof r.MissingPDFException||e instanceof r.UnexpectedResponseException||e instanceof r.UnknownErrorException?k.send("DocException",e):k.send("DocException",new r.UnknownErrorException(e.message,e.toString()))}function pdfManagerReady(){ensureNotTerminated();loadDocument(!1).then(onSuccess,(function(e){ensureNotTerminated();if(e instanceof u.XRefParseException){a.requestLoadedStream();a.onLoadedStream().then((function(){ensureNotTerminated();loadDocument(!0).then(onSuccess,onFailure)}))}else onFailure(e)}))}ensureNotTerminated();getPdfManager(e,{maxImageSize:e.maxImageSize,disableFontFace:e.disableFontFace,ignoreErrors:e.ignoreErrors,isEvalSupported:e.isEvalSupported,fontExtraProperties:e.fontExtraProperties,useSystemFonts:e.useSystemFonts,cMapUrl:e.cMapUrl,standardFontDataUrl:e.standardFontDataUrl},e.enableXfa).then((function(e){if(d){e.terminate(new r.AbortException("Worker was terminated."));throw new Error("Worker was terminated")}a=e;a.onLoadedStream().then((function(e){k.send("DataLoaded",{length:e.bytes.byteLength})}))})).then(pdfManagerReady,onFailure)}(e);e=null}));return x}static initializeFromPort(e){const t=new l.MessageHandler("worker","main",e);WorkerMessageHandler.setup(t,e);t.send("ready",null)}}t.WorkerMessageHandler=WorkerMessageHandler;"undefined"==typeof window&&!c.isNodeJS&&"undefined"!=typeof self&&function isMessagePort(e){return"function"==typeof e.postMessage&&"onmessage"in e}(self)&&WorkerMessageHandler.initializeFromPort(self)},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.VerbosityLevel=t.Util=t.UnknownErrorException=t.UnexpectedResponseException=t.UNSUPPORTED_FEATURES=t.TextRenderingMode=t.StreamType=t.RenderingIntentFlag=t.PermissionFlag=t.PasswordResponses=t.PasswordException=t.PageActionEventType=t.OPS=t.MissingPDFException=t.InvalidPDFException=t.ImageKind=t.IDENTITY_MATRIX=t.FormatError=t.FontType=t.FeatureTest=t.FONT_IDENTITY_MATRIX=t.DocumentActionEventType=t.CMapCompressionType=t.BaseException=t.AnnotationType=t.AnnotationStateModelType=t.AnnotationReviewState=t.AnnotationReplyType=t.AnnotationMode=t.AnnotationMarkedState=t.AnnotationFlag=t.AnnotationFieldFlag=t.AnnotationBorderStyleType=t.AnnotationActionEventType=t.AbortException=void 0;t.arrayByteLength=arrayByteLength;t.arraysToBytes=function arraysToBytes(e){const t=e.length;if(1===t&&e[0]instanceof Uint8Array)return e[0];let a=0;for(let r=0;rt});e.promise=new Promise((function(a,r){e.resolve=function(e){t=!0;a(e)};e.reject=function(e){t=!0;r(e)}}));return e};t.createValidAbsoluteUrl=function createValidAbsoluteUrl(e,t=null,a=null){if(!e)return null;try{if(a&&"string"==typeof e){if(a.addDefaultProtocol&&e.startsWith("www.")){const t=e.match(/\./g);t&&t.length>=2&&(e=`http://${e}`)}if(a.tryConvertEncoding)try{e=stringToUTF8String(e)}catch(e){}}const r=t?new URL(e,t):new URL(e);if(function _isValidProtocol(e){if(!e)return!1;switch(e.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}(r))return r}catch(e){}return null};t.escapeString=function escapeString(e){return e.replace(/([()\\\n\r])/g,(e=>"\n"===e?"\\n":"\r"===e?"\\r":`\\${e}`))};t.getModificationDate=function getModificationDate(e=new Date){return[e.getUTCFullYear().toString(),(e.getUTCMonth()+1).toString().padStart(2,"0"),e.getUTCDate().toString().padStart(2,"0"),e.getUTCHours().toString().padStart(2,"0"),e.getUTCMinutes().toString().padStart(2,"0"),e.getUTCSeconds().toString().padStart(2,"0")].join("")};t.getVerbosityLevel=function getVerbosityLevel(){return n};t.info=function info(e){n>=r.INFOS&&console.log(`Info: ${e}`)};t.isArrayBuffer=function isArrayBuffer(e){return"object"==typeof e&&null!==e&&void 0!==e.byteLength};t.isArrayEqual=function isArrayEqual(e,t){if(e.length!==t.length)return!1;for(let a=0,r=e.length;a>24&255,e>>16&255,e>>8&255,255&e)};t.stringToBytes=stringToBytes;t.stringToPDFString=function stringToPDFString(e){if(e[0]>="ï"){let t;"þ"===e[0]&&"ÿ"===e[1]?t="utf-16be":"ÿ"===e[0]&&"þ"===e[1]?t="utf-16le":"ï"===e[0]&&"»"===e[1]&&"¿"===e[2]&&(t="utf-8");if(t)try{const a=new TextDecoder(t,{fatal:!0}),r=stringToBytes(e);return a.decode(r)}catch(e){warn(`stringToPDFString: "${e}".`)}}const t=[];for(let a=0,r=e.length;a>8&255),String.fromCharCode(255&r))}return t.join("")};t.stringToUTF8String=stringToUTF8String;t.unreachable=unreachable;t.utf8StringToString=function utf8StringToString(e){return unescape(encodeURIComponent(e))};t.warn=warn;a(3);t.IDENTITY_MATRIX=[1,0,0,1,0,0];t.FONT_IDENTITY_MATRIX=[.001,0,0,.001,0,0];t.RenderingIntentFlag={ANY:1,DISPLAY:2,PRINT:4,ANNOTATIONS_FORMS:16,ANNOTATIONS_STORAGE:32,ANNOTATIONS_DISABLE:64,OPLIST:256};t.AnnotationMode={DISABLE:0,ENABLE:1,ENABLE_FORMS:2,ENABLE_STORAGE:3};t.PermissionFlag={PRINT:4,MODIFY_CONTENTS:8,COPY:16,MODIFY_ANNOTATIONS:32,FILL_INTERACTIVE_FORMS:256,COPY_FOR_ACCESSIBILITY:512,ASSEMBLE:1024,PRINT_HIGH_QUALITY:2048};t.TextRenderingMode={FILL:0,STROKE:1,FILL_STROKE:2,INVISIBLE:3,FILL_ADD_TO_PATH:4,STROKE_ADD_TO_PATH:5,FILL_STROKE_ADD_TO_PATH:6,ADD_TO_PATH:7,FILL_STROKE_MASK:3,ADD_TO_PATH_FLAG:4};t.ImageKind={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3};t.AnnotationType={TEXT:1,LINK:2,FREETEXT:3,LINE:4,SQUARE:5,CIRCLE:6,POLYGON:7,POLYLINE:8,HIGHLIGHT:9,UNDERLINE:10,SQUIGGLY:11,STRIKEOUT:12,STAMP:13,CARET:14,INK:15,POPUP:16,FILEATTACHMENT:17,SOUND:18,MOVIE:19,WIDGET:20,SCREEN:21,PRINTERMARK:22,TRAPNET:23,WATERMARK:24,THREED:25,REDACT:26};t.AnnotationStateModelType={MARKED:"Marked",REVIEW:"Review"};t.AnnotationMarkedState={MARKED:"Marked",UNMARKED:"Unmarked"};t.AnnotationReviewState={ACCEPTED:"Accepted",REJECTED:"Rejected",CANCELLED:"Cancelled",COMPLETED:"Completed",NONE:"None"};t.AnnotationReplyType={GROUP:"Group",REPLY:"R"};t.AnnotationFlag={INVISIBLE:1,HIDDEN:2,PRINT:4,NOZOOM:8,NOROTATE:16,NOVIEW:32,READONLY:64,LOCKED:128,TOGGLENOVIEW:256,LOCKEDCONTENTS:512};t.AnnotationFieldFlag={READONLY:1,REQUIRED:2,NOEXPORT:4,MULTILINE:4096,PASSWORD:8192,NOTOGGLETOOFF:16384,RADIO:32768,PUSHBUTTON:65536,COMBO:131072,EDIT:262144,SORT:524288,FILESELECT:1048576,MULTISELECT:2097152,DONOTSPELLCHECK:4194304,DONOTSCROLL:8388608,COMB:16777216,RICHTEXT:33554432,RADIOSINUNISON:33554432,COMMITONSELCHANGE:67108864};t.AnnotationBorderStyleType={SOLID:1,DASHED:2,BEVELED:3,INSET:4,UNDERLINE:5};t.AnnotationActionEventType={E:"Mouse Enter",X:"Mouse Exit",D:"Mouse Down",U:"Mouse Up",Fo:"Focus",Bl:"Blur",PO:"PageOpen",PC:"PageClose",PV:"PageVisible",PI:"PageInvisible",K:"Keystroke",F:"Format",V:"Validate",C:"Calculate"};t.DocumentActionEventType={WC:"WillClose",WS:"WillSave",DS:"DidSave",WP:"WillPrint",DP:"DidPrint"};t.PageActionEventType={O:"PageOpen",C:"PageClose"};t.StreamType={UNKNOWN:"UNKNOWN",FLATE:"FLATE",LZW:"LZW",DCT:"DCT",JPX:"JPX",JBIG:"JBIG",A85:"A85",AHX:"AHX",CCF:"CCF",RLX:"RLX"};t.FontType={UNKNOWN:"UNKNOWN",TYPE1:"TYPE1",TYPE1STANDARD:"TYPE1STANDARD",TYPE1C:"TYPE1C",CIDFONTTYPE0:"CIDFONTTYPE0",CIDFONTTYPE0C:"CIDFONTTYPE0C",TRUETYPE:"TRUETYPE",CIDFONTTYPE2:"CIDFONTTYPE2",TYPE3:"TYPE3",OPENTYPE:"OPENTYPE",TYPE0:"TYPE0",MMTYPE1:"MMTYPE1"};const r={ERRORS:0,WARNINGS:1,INFOS:5};t.VerbosityLevel=r;t.CMapCompressionType={NONE:0,BINARY:1,STREAM:2};t.OPS={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotations:78,endAnnotations:79,beginAnnotation:80,endAnnotation:81,paintJpegXObject:82,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91,boundingBoxes:100,operationPosition:101};t.UNSUPPORTED_FEATURES={unknown:"unknown",forms:"forms",javaScript:"javaScript",signatures:"signatures",smask:"smask",shadingPattern:"shadingPattern",font:"font",errorTilingPattern:"errorTilingPattern",errorExtGState:"errorExtGState",errorXObject:"errorXObject",errorFontLoadType3:"errorFontLoadType3",errorFontState:"errorFontState",errorFontMissing:"errorFontMissing",errorFontTranslate:"errorFontTranslate",errorColorSpace:"errorColorSpace",errorOperatorList:"errorOperatorList",errorFontToUnicode:"errorFontToUnicode",errorFontLoadNative:"errorFontLoadNative",errorFontBuildPath:"errorFontBuildPath",errorFontGetPath:"errorFontGetPath",errorMarkedContent:"errorMarkedContent",errorContentSubStream:"errorContentSubStream"};t.PasswordResponses={NEED_PASSWORD:1,INCORRECT_PASSWORD:2};let n=r.WARNINGS;function warn(e){n>=r.WARNINGS&&console.log(`Warning: ${e}`)}function unreachable(e){throw new Error(e)}function shadow(e,t,a){Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!1});return a}const i=function BaseExceptionClosure(){function BaseException(e,t){this.constructor===BaseException&&unreachable("Cannot initialize BaseException.");this.message=e;this.name=t}BaseException.prototype=new Error;BaseException.constructor=BaseException;return BaseException}();t.BaseException=i;t.PasswordException=class PasswordException extends i{constructor(e,t){super(e,"PasswordException");this.code=t}};t.UnknownErrorException=class UnknownErrorException extends i{constructor(e,t){super(e,"UnknownErrorException");this.details=t}};t.InvalidPDFException=class InvalidPDFException extends i{constructor(e){super(e,"InvalidPDFException")}};t.MissingPDFException=class MissingPDFException extends i{constructor(e){super(e,"MissingPDFException")}};t.UnexpectedResponseException=class UnexpectedResponseException extends i{constructor(e,t){super(e,"UnexpectedResponseException");this.status=t}};t.FormatError=class FormatError extends i{constructor(e){super(e,"FormatError")}};t.AbortException=class AbortException extends i{constructor(e){super(e,"AbortException")}};function stringToBytes(e){"string"!=typeof e&&unreachable("Invalid argument for stringToBytes");const t=e.length,a=new Uint8Array(t);for(let r=0;re.toString(16).padStart(2,"0")));class Util{static makeHexColor(e,t,a){return`#${s[e]}${s[t]}${s[a]}`}static scaleMinMax(e,t){let a;if(e[0]){if(e[0]<0){a=t[0];t[0]=t[1];t[1]=a}t[0]*=e[0];t[1]*=e[0];if(e[3]<0){a=t[2];t[2]=t[3];t[3]=a}t[2]*=e[3];t[3]*=e[3]}else{a=t[0];t[0]=t[2];t[2]=a;a=t[1];t[1]=t[3];t[3]=a;if(e[1]<0){a=t[2];t[2]=t[3];t[3]=a}t[2]*=e[1];t[3]*=e[1];if(e[2]<0){a=t[0];t[0]=t[1];t[1]=a}t[0]*=e[2];t[1]*=e[2]}t[0]+=e[4];t[1]+=e[4];t[2]+=e[5];t[3]+=e[5]}static transform(e,t){return[e[0]*t[0]+e[2]*t[1],e[1]*t[0]+e[3]*t[1],e[0]*t[2]+e[2]*t[3],e[1]*t[2]+e[3]*t[3],e[0]*t[4]+e[2]*t[5]+e[4],e[1]*t[4]+e[3]*t[5]+e[5]]}static applyTransform(e,t){return[e[0]*t[0]+e[1]*t[2]+t[4],e[0]*t[1]+e[1]*t[3]+t[5]]}static applyInverseTransform(e,t){const a=t[0]*t[3]-t[1]*t[2];return[(e[0]*t[3]-e[1]*t[2]+t[2]*t[5]-t[4]*t[3])/a,(-e[0]*t[1]+e[1]*t[0]+t[4]*t[1]-t[5]*t[0])/a]}static getAxialAlignedBoundingBox(e,t){const a=Util.applyTransform(e,t),r=Util.applyTransform(e.slice(2,4),t),n=Util.applyTransform([e[0],e[3]],t),i=Util.applyTransform([e[2],e[1]],t);return[Math.min(a[0],r[0],n[0],i[0]),Math.min(a[1],r[1],n[1],i[1]),Math.max(a[0],r[0],n[0],i[0]),Math.max(a[1],r[1],n[1],i[1])]}static inverseTransform(e){const t=e[0]*e[3]-e[1]*e[2];return[e[3]/t,-e[1]/t,-e[2]/t,e[0]/t,(e[2]*e[5]-e[4]*e[3])/t,(e[4]*e[1]-e[5]*e[0])/t]}static apply3dTransform(e,t){return[e[0]*t[0]+e[1]*t[1]+e[2]*t[2],e[3]*t[0]+e[4]*t[1]+e[5]*t[2],e[6]*t[0]+e[7]*t[1]+e[8]*t[2]]}static singularValueDecompose2dScale(e){const t=[e[0],e[2],e[1],e[3]],a=e[0]*t[0]+e[1]*t[2],r=e[0]*t[1]+e[1]*t[3],n=e[2]*t[0]+e[3]*t[2],i=e[2]*t[1]+e[3]*t[3],s=(a+i)/2,o=Math.sqrt((a+i)**2-4*(a*i-n*r))/2,c=s+o||1,l=s-o||1;return[Math.sqrt(c),Math.sqrt(l)]}static normalizeRect(e){const t=e.slice(0);if(e[0]>e[2]){t[0]=e[2];t[2]=e[0]}if(e[1]>e[3]){t[1]=e[3];t[3]=e[1]}return t}static intersect(e,t){const a=Math.max(Math.min(e[0],e[2]),Math.min(t[0],t[2])),r=Math.min(Math.max(e[0],e[2]),Math.max(t[0],t[2]));if(a>r)return null;const n=Math.max(Math.min(e[1],e[3]),Math.min(t[1],t[3])),i=Math.min(Math.max(e[1],e[3]),Math.max(t[1],t[3]));return n>i?null:[a,n,r,i]}static bezierBoundingBox(e,t,a,r,n,i,s,o){const c=[],l=[[],[]];let h,u,d,f,g,p,m,b;for(let l=0;l<2;++l){if(0===l){u=6*e-12*a+6*n;h=-3*e+9*a-9*n+3*s;d=3*a-3*e}else{u=6*t-12*r+6*i;h=-3*t+9*r-9*i+3*o;d=3*r-3*t}if(Math.abs(h)<1e-12){if(Math.abs(u)<1e-12)continue;f=-d/u;0{a(4)},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.isNodeJS=void 0;const a=!("object"!=typeof process||process+""!="[object process]"||process.versions.nw||process.versions.electron&&process.type&&"browser"!==process.type);t.isNodeJS=a},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.RefSetCache=t.RefSet=t.Ref=t.Name=t.EOF=t.Dict=t.Cmd=t.CIRCULAR_REF=void 0;t.clearPrimitiveCaches=function clearPrimitiveCaches(){o._clearCache();s._clearCache();l._clearCache()};t.isCmd=function isCmd(e,t){return e instanceof o&&(void 0===t||e.cmd===t)};t.isDict=function isDict(e,t){return e instanceof Dict&&(void 0===t||isName(e.get("Type"),t))};t.isName=isName;t.isRefsEqual=function isRefsEqual(e,t){return e.num===t.num&&e.gen===t.gen};var r=a(2);const n=Symbol("CIRCULAR_REF");t.CIRCULAR_REF=n;const i=Symbol("EOF");t.EOF=i;const s=function NameClosure(){let e=Object.create(null);class Name{constructor(e){this.name=e}static get(t){const a=e[t];return a||(e[t]=new Name(t))}static _clearCache(){e=Object.create(null)}}return Name}();t.Name=s;const o=function CmdClosure(){let e=Object.create(null);class Cmd{constructor(e){this.cmd=e}static get(t){const a=e[t];return a||(e[t]=new Cmd(t))}static _clearCache(){e=Object.create(null)}}return Cmd}();t.Cmd=o;const c=function nonSerializableClosure(){return c};class Dict{constructor(e=null){this._map=Object.create(null);this.xref=e;this.objId=null;this.suppressEncryption=!1;this.__nonSerializable__=c}assignXref(e){this.xref=e}get size(){return Object.keys(this._map).length}get(e,t,a){let r=this._map[e];if(void 0===r&&void 0!==t){r=this._map[t];void 0===r&&void 0!==a&&(r=this._map[a])}return r instanceof l&&this.xref?this.xref.fetch(r,this.suppressEncryption):r}async getAsync(e,t,a){let r=this._map[e];if(void 0===r&&void 0!==t){r=this._map[t];void 0===r&&void 0!==a&&(r=this._map[a])}return r instanceof l&&this.xref?this.xref.fetchAsync(r,this.suppressEncryption):r}getArray(e,t,a){let r=this._map[e];if(void 0===r&&void 0!==t){r=this._map[t];void 0===r&&void 0!==a&&(r=this._map[a])}r instanceof l&&this.xref&&(r=this.xref.fetch(r,this.suppressEncryption));if(Array.isArray(r)){r=r.slice();for(let e=0,t=r.length;e{(0,r.unreachable)("Should not call `set` on the empty dictionary.")};return(0,r.shadow)(this,"empty",e)}static merge({xref:e,dictArray:t,mergeSubDicts:a=!1}){const r=new Dict(e),n=new Map;for(const e of t)if(e instanceof Dict)for(const[t,r]of Object.entries(e._map)){let e=n.get(t);if(void 0===e){e=[];n.set(t,e)}else if(!(a&&r instanceof Dict))continue;e.push(r)}for(const[t,a]of n){if(1===a.length||!(a[0]instanceof Dict)){r._map[t]=a[0];continue}const n=new Dict(e);for(const e of a)for(const[t,a]of Object.entries(e._map))void 0===n._map[t]&&(n._map[t]=a);n.size>0&&(r._map[t]=n)}n.clear();return r.size>0?r:Dict.empty}}t.Dict=Dict;const l=function RefClosure(){let e=Object.create(null);class Ref{constructor(e,t){this.num=e;this.gen=t}toString(){return 0===this.gen?`${this.num}R`:`${this.num}R${this.gen}`}static get(t,a){const r=0===a?`${t}R`:`${t}R${a}`,n=e[r];return n||(e[r]=new Ref(t,a))}static _clearCache(){e=Object.create(null)}}return Ref}();t.Ref=l;class RefSet{constructor(e=null){this._set=new Set(e&&e._set)}has(e){return this._set.has(e.toString())}put(e){this._set.add(e.toString())}remove(e){this._set.delete(e.toString())}[Symbol.iterator](){return this._set.values()}clear(){this._set.clear()}}t.RefSet=RefSet;class RefSetCache{constructor(){this._map=new Map}get size(){return this._map.size}get(e){return this._map.get(e.toString())}has(e){return this._map.has(e.toString())}put(e,t){this._map.set(e.toString(),t)}putAlias(e,t){this._map.set(e.toString(),this.get(t))}[Symbol.iterator](){return this._map.values()}clear(){this._map.clear()}}t.RefSetCache=RefSetCache;function isName(e,t){return e instanceof s&&(void 0===t||e.name===t)}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.NetworkPdfManager=t.LocalPdfManager=void 0;var r=a(2),n=a(7),i=a(8),s=a(11),o=a(10);function parseDocBaseUrl(e){if(e){const t=(0,r.createValidAbsoluteUrl)(e);if(t)return t.href;(0,r.warn)(`Invalid absolute docBaseUrl: "${e}".`)}return null}class BasePdfManager{constructor(){this.constructor===BasePdfManager&&(0,r.unreachable)("Cannot initialize BasePdfManager.")}get docId(){return this._docId}get password(){return this._password}get docBaseUrl(){const e=this.pdfDocument.catalog;return(0,r.shadow)(this,"docBaseUrl",e.baseUrl||this._docBaseUrl)}onLoadedStream(){(0,r.unreachable)("Abstract method `onLoadedStream` called")}ensureDoc(e,t){return this.ensure(this.pdfDocument,e,t)}ensureXRef(e,t){return this.ensure(this.pdfDocument.xref,e,t)}ensureCatalog(e,t){return this.ensure(this.pdfDocument.catalog,e,t)}getPage(e){return this.pdfDocument.getPage(e)}fontFallback(e,t){return this.pdfDocument.fontFallback(e,t)}loadXfaFonts(e,t){return this.pdfDocument.loadXfaFonts(e,t)}loadXfaImages(){return this.pdfDocument.loadXfaImages()}serializeXfaData(e){return this.pdfDocument.serializeXfaData(e)}cleanup(e=!1){return this.pdfDocument.cleanup(e)}async ensure(e,t,a){(0,r.unreachable)("Abstract method `ensure` called")}requestRange(e,t){(0,r.unreachable)("Abstract method `requestRange` called")}requestLoadedStream(){(0,r.unreachable)("Abstract method `requestLoadedStream` called")}sendProgressiveData(e){(0,r.unreachable)("Abstract method `sendProgressiveData` called")}updatePassword(e){this._password=e}terminate(e){(0,r.unreachable)("Abstract method `terminate` called")}}t.LocalPdfManager=class LocalPdfManager extends BasePdfManager{constructor(e,t,a,r,n,i,c){super();this._docId=e;this._password=a;this._docBaseUrl=parseDocBaseUrl(c);this.msgHandler=r;this.evaluatorOptions=n;this.enableXfa=i;const l=new o.Stream(t);this.pdfDocument=new s.PDFDocument(this,l);this._loadedStreamPromise=Promise.resolve(l)}async ensure(e,t,a){const r=e[t];return"function"==typeof r?r.apply(e,a):r}requestRange(e,t){return Promise.resolve()}requestLoadedStream(){}onLoadedStream(){return this._loadedStreamPromise}terminate(e){}};t.NetworkPdfManager=class NetworkPdfManager extends BasePdfManager{constructor(e,t,a,r,i,o){super();this._docId=e;this._password=a.password;this._docBaseUrl=parseDocBaseUrl(o);this.msgHandler=a.msgHandler;this.evaluatorOptions=r;this.enableXfa=i;this.streamManager=new n.ChunkedStreamManager(t,{msgHandler:a.msgHandler,length:a.length,disableAutoFetch:a.disableAutoFetch,rangeChunkSize:a.rangeChunkSize});this.pdfDocument=new s.PDFDocument(this,this.streamManager.getStream())}async ensure(e,t,a){try{const r=e[t];return"function"==typeof r?r.apply(e,a):r}catch(r){if(!(r instanceof i.MissingDataException))throw r;await this.requestRange(r.begin,r.end);return this.ensure(e,t,a)}}requestRange(e,t){return this.streamManager.requestRange(e,t)}requestLoadedStream(){this.streamManager.requestAllChunks()}sendProgressiveData(e){this.streamManager.onReceiveData({chunk:e})}onLoadedStream(){return this.streamManager.onLoadedStream()}terminate(e){this.streamManager.abort(e)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ChunkedStreamManager=t.ChunkedStream=void 0;var r=a(2),n=a(8),i=a(10);class ChunkedStream extends i.Stream{constructor(e,t,a){super(new Uint8Array(e),0,e,null);this.chunkSize=t;this._loadedChunks=new Set;this.numChunks=Math.ceil(e/t);this.manager=a;this.progressiveDataLength=0;this.lastSuccessfulEnsureByteChunk=-1}getMissingChunks(){const e=[];for(let t=0,a=this.numChunks;t=this.end?this.numChunks:Math.floor(t/this.chunkSize);for(let e=a;ethis.numChunks)&&t!==this.lastSuccessfulEnsureByteChunk){if(!this._loadedChunks.has(t))throw new n.MissingDataException(e,e+1);this.lastSuccessfulEnsureByteChunk=t}}ensureRange(e,t){if(e>=t)return;if(t<=this.progressiveDataLength)return;const a=Math.floor(e/this.chunkSize);if(a>this.numChunks)return;const r=Math.min(Math.floor((t-1)/this.chunkSize)+1,this.numChunks);for(let i=a;i=this.end)return-1;e>=this.progressiveDataLength&&this.ensureByte(e);return this.bytes[this.pos++]}getBytes(e){const t=this.bytes,a=this.pos,r=this.end;if(!e){r>this.progressiveDataLength&&this.ensureRange(a,r);return t.subarray(a,r)}let n=a+e;n>r&&(n=r);n>this.progressiveDataLength&&this.ensureRange(a,n);this.pos=n;return t.subarray(a,n)}getByteRange(e,t){e<0&&(e=0);t>this.end&&(t=this.end);t>this.progressiveDataLength&&this.ensureRange(e,t);return this.bytes.subarray(e,t)}makeSubStream(e,t,a=null){t?e+t>this.progressiveDataLength&&this.ensureRange(e,e+t):e>=this.progressiveDataLength&&this.ensureByte(e);function ChunkedStreamSubstream(){}ChunkedStreamSubstream.prototype=Object.create(this);ChunkedStreamSubstream.prototype.getMissingChunks=function(){const e=this.chunkSize,t=Math.floor(this.start/e),a=Math.floor((this.end-1)/e)+1,r=[];for(let e=t;e{const readChunk=s=>{try{if(!s.done){const e=s.value;n.push(e);i+=(0,r.arrayByteLength)(e);a.isStreamingSupported&&this.onProgress({loaded:i});a.read().then(readChunk,t);return}const o=(0,r.arraysToBytes)(n);n=null;e(o)}catch(e){t(e)}};a.read().then(readChunk,t)})).then((t=>{this.aborted||this.onReceiveData({chunk:t,begin:e})}))}requestAllChunks(){const e=this.stream.getMissingChunks();this._requestChunks(e);return this._loadedStreamCapability.promise}_requestChunks(e){const t=this.currRequestId++,a=new Set;this._chunksNeededByRequest.set(t,a);for(const t of e)this.stream.hasChunk(t)||a.add(t);if(0===a.size)return Promise.resolve();const n=(0,r.createPromiseCapability)();this._promisesByRequest.set(t,n);const i=[];for(const e of a){let a=this._requestsByChunk.get(e);if(!a){a=[];this._requestsByChunk.set(e,a);i.push(e)}a.push(t)}if(i.length>0){const e=this.groupChunks(i);for(const t of e){const e=t.beginChunk*this.chunkSize,a=Math.min(t.endChunk*this.chunkSize,this.length);this.sendRequest(e,a).catch(n.reject)}}return n.promise.catch((e=>{if(!this.aborted)throw e}))}getStream(){return this.stream}requestRange(e,t){t=Math.min(t,this.length);const a=this.getBeginChunk(e),r=this.getEndChunk(t),n=[];for(let e=a;e=0&&r+1!==i){t.push({beginChunk:a,endChunk:r+1});a=i}n+1===e.length&&t.push({beginChunk:a,endChunk:i+1});r=i}return t}onProgress(e){this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize+e.loaded,total:this.length})}onReceiveData(e){const t=e.chunk,a=void 0===e.begin,r=a?this.progressiveDataLength:e.begin,n=r+t.byteLength,i=Math.floor(r/this.chunkSize),s=n0||o.push(a)}}}if(!this.disableAutoFetch&&0===this._requestsByChunk.size){let e;if(1===this.stream.numChunksLoaded){const t=this.stream.numChunks-1;this.stream.hasChunk(t)||(e=t)}else e=this.stream.nextEmptyChunk(s);Number.isInteger(e)&&this._requestChunks([e])}for(const e of o){const t=this._promisesByRequest.get(e);this._promisesByRequest.delete(e);t.resolve()}this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize,total:this.length})}onError(e){this._loadedStreamCapability.reject(e)}getBeginChunk(e){return Math.floor(e/this.chunkSize)}getEndChunk(e){return Math.floor((e-1)/this.chunkSize)+1}abort(e){this.aborted=!0;this.pdfNetworkStream&&this.pdfNetworkStream.cancelAllRequests(e);for(const t of this._promisesByRequest.values())t.reject(e)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XRefParseException=t.XRefEntryException=t.ParserEOFException=t.MissingDataException=t.DocStats=void 0;t.collectActions=function collectActions(e,t,a){const i=Object.create(null),s=getInheritableProperty({dict:t,key:"AA",stopWhenFound:!1});if(s)for(let t=s.length-1;t>=0;t--){const r=s[t];if(r instanceof n.Dict)for(const t of r.getKeys()){const s=a[t];if(!s)continue;const o=r.getRaw(t),c=new n.RefSet,l=[];_collectJS(o,e,l,c);l.length>0&&(i[s]=l)}}if(t.has("A")){const a=t.get("A"),r=new n.RefSet,s=[];_collectJS(a,e,s,r);s.length>0&&(i.Action=s)}return(0,r.objectSize)(i)>0?i:null};t.encodeToXmlString=function encodeToXmlString(e){const t=[];let a=0;for(let r=0,n=e.length;r55295&&(n<57344||n>65533)&&r++;a=r+1}}if(0===t.length)return e;a126||35===n||40===n||41===n||60===n||62===n||91===n||93===n||123===n||125===n||47===n||37===n){a{const a=e.match(t);return a?{name:a[1],pos:parseInt(a[2],10)}:{name:e,pos:0}}))};t.readInt8=function readInt8(e,t){return e[t]<<24>>24};t.readUint16=function readUint16(e,t){return e[t]<<8|e[t+1]};t.readUint32=function readUint32(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0};t.recoverJsURL=function recoverJsURL(e){const t=new RegExp("^\\s*("+["app.launchURL","window.open","xfa.host.gotoURL"].join("|").split(".").join("\\.")+")\\((?:'|\")([^'\"]*)(?:'|\")(?:,\\s*(\\w+)\\)|\\))","i").exec(e);if(t&&t[2]){const e=t[2];let a=!1;"true"===t[3]&&"app.launchURL"===t[1]&&(a=!0);return{url:e,newWindow:a}}return null};t.toRomanNumerals=function toRomanNumerals(e,t=!1){(0,r.assert)(Number.isInteger(e)&&e>0,"The number should be a positive integer.");const a=[];let n;for(;e>=1e3;){e-=1e3;a.push("M")}n=e/100|0;e%=100;a.push(s[n]);n=e/10|0;e%=10;a.push(s[10+n]);a.push(s[20+e]);const i=a.join("");return t?i.toLowerCase():i};t.validateCSSFont=function validateCSSFont(e){const t=new Set(["100","200","300","400","500","600","700","800","900","1000","normal","bold","bolder","lighter"]),{fontFamily:a,fontWeight:n,italicAngle:i}=e;if(/^".*"$/.test(a)){if(/[^\\]"/.test(a.slice(1,a.length-1))){(0,r.warn)(`XFA - FontFamily contains some unescaped ": ${a}.`);return!1}}else if(/^'.*'$/.test(a)){if(/[^\\]'/.test(a.slice(1,a.length-1))){(0,r.warn)(`XFA - FontFamily contains some unescaped ': ${a}.`);return!1}}else for(const e of a.split(/[ \t]+/))if(/^(\d|(-(\d|-)))/.test(e)||!/^[\w-\\]+$/.test(e)){(0,r.warn)(`XFA - FontFamily contains some invalid : ${a}.`);return!1}const s=n?n.toString():"";e.fontWeight=t.has(s)?s:"400";const o=parseFloat(i);e.italicAngle=isNaN(o)||o<-90||o>90?"14":i.toString();return!0};var r=a(2),n=a(5),i=a(9);class MissingDataException extends r.BaseException{constructor(e,t){super(`Missing data [${e}, ${t})`,"MissingDataException");this.begin=e;this.end=t}}t.MissingDataException=MissingDataException;class ParserEOFException extends r.BaseException{constructor(e){super(e,"ParserEOFException")}}t.ParserEOFException=ParserEOFException;class XRefEntryException extends r.BaseException{constructor(e){super(e,"XRefEntryException")}}t.XRefEntryException=XRefEntryException;class XRefParseException extends r.BaseException{constructor(e){super(e,"XRefParseException")}}t.XRefParseException=XRefParseException;t.DocStats=class DocStats{constructor(e){this._handler=e;this._streamTypes=new Set;this._fontTypes=new Set}_send(){const e=Object.create(null),t=Object.create(null);for(const t of this._streamTypes)e[t]=!0;for(const e of this._fontTypes)t[e]=!0;this._handler.send("DocStats",{streamTypes:e,fontTypes:t})}addStreamType(e){if(!this._streamTypes.has(e)){this._streamTypes.add(e);this._send()}}addFontType(e){if(!this._fontTypes.has(e)){this._fontTypes.add(e);this._send()}}};function getInheritableProperty({dict:e,key:t,getArray:a=!1,stopWhenFound:r=!0}){let i;const s=new n.RefSet;for(;e instanceof n.Dict&&(!e.objId||!s.has(e.objId));){e.objId&&s.put(e.objId);const n=a?e.getArray(t):e.get(t);if(void 0!==n){if(r)return n;i||(i=[]);i.push(n)}e=e.get("Parent")}return i}const s=["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM","","X","XX","XXX","XL","L","LX","LXX","LXXX","XC","","I","II","III","IV","V","VI","VII","VIII","IX"];function _collectJS(e,t,a,s){if(!e)return;let o=null;if(e instanceof n.Ref){if(s.has(e))return;o=e;s.put(o);e=t.fetch(e)}if(Array.isArray(e))for(const r of e)_collectJS(r,t,a,s);else if(e instanceof n.Dict){if((0,n.isName)(e.get("S"),"JavaScript")){const t=e.get("JS");let n;t instanceof i.BaseStream?n=t.getString():"string"==typeof t&&(n=t);n=n&&(0,r.stringToPDFString)(n);n&&a.push(n)}_collectJS(e.getRaw("Next"),t,a,s)}o&&s.remove(o)}const o={60:"<",62:">",38:"&",34:""",39:"'"}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.BaseStream=void 0;var r=a(2);class BaseStream{constructor(){this.constructor===BaseStream&&(0,r.unreachable)("Cannot initialize BaseStream.")}get length(){(0,r.unreachable)("Abstract getter `length` accessed")}get isEmpty(){(0,r.unreachable)("Abstract getter `isEmpty` accessed")}get isDataLoaded(){return(0,r.shadow)(this,"isDataLoaded",!0)}getByte(){(0,r.unreachable)("Abstract method `getByte` called")}getBytes(e){(0,r.unreachable)("Abstract method `getBytes` called")}peekByte(){const e=this.getByte();-1!==e&&this.pos--;return e}peekBytes(e){const t=this.getBytes(e);this.pos-=t.length;return t}getUint16(){const e=this.getByte(),t=this.getByte();return-1===e||-1===t?-1:(e<<8)+t}getInt32(){return(this.getByte()<<24)+(this.getByte()<<16)+(this.getByte()<<8)+this.getByte()}getByteRange(e,t){(0,r.unreachable)("Abstract method `getByteRange` called")}getString(e){return(0,r.bytesToString)(this.getBytes(e))}skip(e){this.pos+=e||1}reset(){(0,r.unreachable)("Abstract method `reset` called")}moveStart(){(0,r.unreachable)("Abstract method `moveStart` called")}makeSubStream(e,t,a=null){(0,r.unreachable)("Abstract method `makeSubStream` called")}getBaseStreams(){return null}}t.BaseStream=BaseStream},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.StringStream=t.Stream=t.NullStream=void 0;var r=a(9),n=a(2);class Stream extends r.BaseStream{constructor(e,t,a,r){super();this.bytes=e instanceof Uint8Array?e:new Uint8Array(e);this.start=t||0;this.pos=this.start;this.end=t+a||this.bytes.length;this.dict=r}get length(){return this.end-this.start}get isEmpty(){return 0===this.length}getByte(){return this.pos>=this.end?-1:this.bytes[this.pos++]}getBytes(e){const t=this.bytes,a=this.pos,r=this.end;if(!e)return t.subarray(a,r);let n=a+e;n>r&&(n=r);this.pos=n;return t.subarray(a,n)}getByteRange(e,t){e<0&&(e=0);t>this.end&&(t=this.end);return this.bytes.subarray(e,t)}reset(){this.pos=this.start}moveStart(){this.start=this.pos}makeSubStream(e,t,a=null){return new Stream(this.bytes.buffer,e,t,a)}}t.Stream=Stream;t.StringStream=class StringStream extends Stream{constructor(e){super((0,n.stringToBytes)(e))}};t.NullStream=class NullStream extends Stream{constructor(){super(new Uint8Array(0))}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Page=t.PDFDocument=void 0;var r=a(2),n=a(8),i=a(5),s=a(12),o=a(22),c=a(9),l=a(75),h=a(66),u=a(68),d=a(101),f=a(27),g=a(10),p=a(73),m=a(62),b=a(25),y=a(29),w=a(72),S=a(77),x=a(102);const k=[0,0,612,792];class Page{constructor({pdfManager:e,xref:t,pageIndex:a,pageDict:r,ref:n,globalIdFactory:i,fontCache:s,builtInCMapCache:o,standardFontDataCache:c,globalImageCache:l,nonBlendModesSet:h,xfaFactory:u}){this.pdfManager=e;this.pageIndex=a;this.pageDict=r;this.xref=t;this.ref=n;this.fontCache=s;this.builtInCMapCache=o;this.standardFontDataCache=c;this.globalImageCache=l;this.nonBlendModesSet=h;this.evaluatorOptions=e.evaluatorOptions;this.resourcesPromise=null;this.xfaFactory=u;const d={obj:0};this._localIdFactory=class extends i{static createObjId(){return`p${a}_${++d.obj}`}static getPageObjId(){return`page${n.toString()}`}}}_getInheritableProperty(e,t=!1){const a=(0,n.getInheritableProperty)({dict:this.pageDict,key:e,getArray:t,stopWhenFound:!1});return Array.isArray(a)?1!==a.length&&a[0]instanceof i.Dict?i.Dict.merge({xref:this.xref,dictArray:a}):a[0]:a}get content(){return this.pageDict.getArray("Contents")}get resources(){return(0,r.shadow)(this,"resources",this._getInheritableProperty("Resources")||i.Dict.empty)}_getBoundingBox(e){if(this.xfaData)return this.xfaData.bbox;const t=this._getInheritableProperty(e,!0);if(Array.isArray(t)&&4===t.length){if(t[2]-t[0]!=0&&t[3]-t[1]!=0)return t;(0,r.warn)(`Empty /${e} entry.`)}return null}get mediaBox(){return(0,r.shadow)(this,"mediaBox",this._getBoundingBox("MediaBox")||k)}get cropBox(){return(0,r.shadow)(this,"cropBox",this._getBoundingBox("CropBox")||this.mediaBox)}get userUnit(){let e=this.pageDict.get("UserUnit");("number"!=typeof e||e<=0)&&(e=1);return(0,r.shadow)(this,"userUnit",e)}get view(){const{cropBox:e,mediaBox:t}=this;let a;if(e===t||(0,r.isArrayEqual)(e,t))a=t;else{const n=r.Util.intersect(e,t);n&&n[2]-n[0]!=0&&n[3]-n[1]!=0?a=n:(0,r.warn)("Empty /CropBox and /MediaBox intersection.")}return(0,r.shadow)(this,"view",a||t)}get rotate(){let e=this._getInheritableProperty("Rotate")||0;e%90!=0?e=0:e>=360?e%=360:e<0&&(e=(e%360+360)%360);return(0,r.shadow)(this,"rotate",e)}_onSubStreamError(e,t,a){if(!this.evaluatorOptions.ignoreErrors)throw t;e.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorContentSubStream});(0,r.warn)(`getContentStream - ignoring sub-stream (${a}): "${t}".`)}getContentStream(e){return this.pdfManager.ensure(this,"content").then((t=>t instanceof c.BaseStream?t:Array.isArray(t)?new y.StreamsSequenceStream(t,this._onSubStreamError.bind(this,e)):new g.NullStream))}get xfaData(){return(0,r.shadow)(this,"xfaData",this.xfaFactory?{bbox:this.xfaFactory.getBoundingBox(this.pageIndex)}:null)}save(e,t,a){const n=new b.PartialEvaluator({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions});return this._parsedAnnotations.then((function(e){const i=[];for(const s of e)s.mustBePrinted(a)&&i.push(s.save(n,t,a).catch((function(e){(0,r.warn)(`save - ignoring annotation data during "${t.name}" task: "${e}".`);return null})));return Promise.all(i)}))}loadResources(e){this.resourcesPromise||(this.resourcesPromise=this.pdfManager.ensure(this,"resources"));return this.resourcesPromise.then((()=>new p.ObjectLoader(this.resources,e,this.xref).load()))}getOperatorList({handler:e,sink:t,task:a,intent:n,cacheKey:i,annotationStorage:s=null}){const o=this.getContentStream(e),c=this.loadResources(["ColorSpace","ExtGState","Font","Pattern","Properties","Shading","XObject"]),l=new b.PartialEvaluator({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions});let h,u,d;const f=Promise.all([o,c]).then((([r])=>{const s=new m.OperatorList(n,t);e.send("StartRenderPage",{transparency:l.hasBlendModes(this.resources,this.nonBlendModesSet),pageIndex:this.pageIndex,cacheKey:i});return l.getOperatorList({stream:r,task:a,resources:this.resources,operatorList:s,intent:n}).then((function([e,t,a]){h=e;u=t;d=a;return s}))}));return Promise.all([f,this._parsedAnnotations]).then((function([e,t]){if(0===t.length||n&r.RenderingIntentFlag.ANNOTATIONS_DISABLE){if(n&r.RenderingIntentFlag.OPLIST){e.addOp(r.OPS.operationPosition,u);e.addOp(r.OPS.boundingBoxes,[h,d])}e.flush(!0);return{length:e.totalLength}}const i=!!(n&r.RenderingIntentFlag.ANNOTATIONS_FORMS),o=!!(n&r.RenderingIntentFlag.ANY),c=!!(n&r.RenderingIntentFlag.DISPLAY),f=!!(n&r.RenderingIntentFlag.PRINT),g=[];for(const e of t)(o||c&&e.mustBeViewed(s)||f&&e.mustBePrinted(s)||n&r.RenderingIntentFlag.OPLIST)&&g.push(e.getOperatorList(l,a,n,i,s).catch((function(e){(0,r.warn)(`getOperatorList - ignoring annotation data during "${a.name}" task: "${e}".`);return null})));return Promise.all(g).then((function(t){e.addOp(r.OPS.beginAnnotations,[]);for(const a of t)e.addOpList(a);e.addOp(r.OPS.endAnnotations,[]);n&r.RenderingIntentFlag.OPLIST&&e.addOp(r.OPS.save,[h,d]);e.flush(!0);return{length:e.totalLength}}))}))}extractTextContent({handler:e,task:t,includeMarkedContent:a,sink:r,combineTextItems:n}){const i=this.getContentStream(e),s=this.loadResources(["ExtGState","Font","Properties","XObject"]);return Promise.all([i,s]).then((([i])=>new b.PartialEvaluator({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions}).getTextContent({stream:i,task:t,resources:this.resources,includeMarkedContent:a,combineTextItems:n,sink:r,viewBox:this.view})))}async getStructTree(){const e=await this.pdfManager.ensureCatalog("structTreeRoot");if(!e)return null;return(await this.pdfManager.ensure(this,"_parseStructTree",[e])).serializable}_parseStructTree(e){const t=new w.StructTreePage(e,this.pageDict);t.parse();return t}getAnnotationsData(e){return this._parsedAnnotations.then((function(t){const a=[];if(0===t.length)return a;const n=!!(e&r.RenderingIntentFlag.ANY),i=!!(e&r.RenderingIntentFlag.DISPLAY),s=!!(e&r.RenderingIntentFlag.PRINT);for(const o of t)(n||i&&o.viewable||s&&o.printable||e&r.RenderingIntentFlag.OPLIST)&&a.push(o.data);return a}))}get annotations(){const e=this._getInheritableProperty("Annots");return(0,r.shadow)(this,"annotations",Array.isArray(e)?e:[])}get _parsedAnnotations(){const e=this.pdfManager.ensure(this,"annotations").then((()=>{const e=[];for(const t of this.annotations)e.push(o.AnnotationFactory.create(this.xref,t,this.pdfManager,this._localIdFactory,!1).catch((function(e){(0,r.warn)(`_parsedAnnotations: "${e}".`);return null})));return Promise.all(e).then((function(e){return e.filter((e=>!!e))}))}));return(0,r.shadow)(this,"_parsedAnnotations",e)}get jsActions(){const e=(0,n.collectActions)(this.xref,this.pageDict,r.PageActionEventType);return(0,r.shadow)(this,"jsActions",e)}}t.Page=Page;const C=new Uint8Array([37,80,68,70,45]),v=new Uint8Array([115,116,97,114,116,120,114,101,102]),F=new Uint8Array([101,110,100,111,98,106]),O=/^[1-9]\.\d$/;function find(e,t,a=1024,r=!1){const n=t.length,i=e.peekBytes(a),s=i.length-n;if(s<=0)return!1;if(r){const a=n-1;let r=i.length-1;for(;r>=a;){let s=0;for(;s=n){e.pos+=r-a;return!0}r--}}else{let a=0;for(;a<=s;){let r=0;for(;r=n){e.pos+=a;return!0}a++}}return!1}t.PDFDocument=class ExtendedPDFDocument extends class PDFDocument{constructor(e,t){if(t.length<=0)throw new r.InvalidPDFException("The PDF file is empty, i.e. its size is zero bytes.");this.pdfManager=e;this.stream=t;this.xref=new x.XRef(t,e);this._pagePromises=new Map;this._version=null;const a={font:0};this._globalIdFactory=class{static getDocId(){return`g_${e.docId}`}static createFontId(){return"f"+ ++a.font}static createObjId(){(0,r.unreachable)("Abstract method `createObjId` called.")}static getPageObjId(){(0,r.unreachable)("Abstract method `getPageObjId` called.")}}}parse(e){this.xref.parse(e);this.catalog=new h.Catalog(this.pdfManager,this.xref);this.catalog.version&&(this._version=this.catalog.version)}get linearization(){let e=null;try{e=f.Linearization.create(this.stream)}catch(e){if(e instanceof n.MissingDataException)throw e;(0,r.info)(e)}return(0,r.shadow)(this,"linearization",e)}get startXRef(){const e=this.stream;let t=0;if(this.linearization){e.reset();find(e,F)&&(t=e.pos+6-e.start)}else{const a=1024,r=v.length;let i=!1,s=e.end;for(;!i&&s>0;){s-=a-r;s<0&&(s=0);e.pos=s;i=find(e,v,a,!0)}if(i){e.skip(9);let a;do{a=e.getByte()}while((0,n.isWhiteSpace)(a));let r="";for(;a>=32&&a<=57;){r+=String.fromCharCode(a);a=e.getByte()}t=parseInt(r,10);isNaN(t)&&(t=0)}}return(0,r.shadow)(this,"startXRef",t)}checkHeader(){const e=this.stream;e.reset();if(!find(e,C))return;e.moveStart();let t,a="";for(;(t=e.getByte())>32&&!(a.length>=12);)a+=String.fromCharCode(t);this._version||(this._version=a.substring(5))}parseStartXRef(){this.xref.setStartXRef(this.startXRef)}get numPages(){let e=0;e=this.catalog.hasActualNumPages?this.catalog.numPages:this.xfaFactory?this.xfaFactory.getNumPages():this.linearization?this.linearization.numPages:this.catalog.numPages;return(0,r.shadow)(this,"numPages",e)}_hasOnlyDocumentSignatures(e,t=0){return!!Array.isArray(e)&&e.every((e=>{if(!((e=this.xref.fetchIfRef(e))instanceof i.Dict))return!1;if(e.has("Kids")){if(++t>10){(0,r.warn)("_hasOnlyDocumentSignatures: maximum recursion depth reached");return!1}return this._hasOnlyDocumentSignatures(e.get("Kids"),t)}const a=(0,i.isName)(e.get("FT"),"Sig"),n=e.get("Rect"),s=Array.isArray(n)&&n.every((e=>0===e));return a&&s}))}get _xfaStreams(){const e=this.catalog.acroForm;if(!e)return null;const t=e.get("XFA"),a={"xdp:xdp":"",template:"",datasets:"",config:"",connectionSet:"",localeSet:"",stylesheet:"","/xdp:xdp":""};if(t instanceof c.BaseStream&&!t.isEmpty){a["xdp:xdp"]=t;return a}if(!Array.isArray(t)||0===t.length)return null;for(let e=0,r=t.length;e{y.set(e,t)}));const w=[];for(const[e,a]of y){const s=a.get("FontDescriptor");if(!(s instanceof i.Dict))continue;let c=s.get("FontFamily");c=c.replace(/[ ]+(\d)/g,"$1");const l={fontFamily:c,fontWeight:s.get("FontWeight"),italicAngle:-s.get("ItalicAngle")};(0,n.validateCSSFont)(l)&&w.push(u.handleSetFont(o,[i.Name.get(e),1],null,d,t,g,null,l).catch((function(e){(0,r.warn)(`loadXfaFonts: "${e}".`);return null})))}await Promise.all(w);const S=this.xfaFactory.setFonts(f);if(!S)return;h.ignoreErrors=!0;w.length=0;f.length=0;const x=new Set;for(const e of S)(0,s.getXfaFontName)(`${e}-Regular`)||x.add(e);x.size&&S.push("PdfJS-Fallback");for(const e of S)if(!x.has(e))for(const a of[{name:"Regular",fontWeight:400,italicAngle:0},{name:"Bold",fontWeight:700,italicAngle:0},{name:"Italic",fontWeight:400,italicAngle:12},{name:"BoldItalic",fontWeight:700,italicAngle:12}]){const n=`${e}-${a.name}`,c=(0,s.getXfaFontDict)(n);w.push(u.handleSetFont(o,[i.Name.get(n),1],null,d,t,g,c,{fontFamily:e,fontWeight:a.fontWeight,italicAngle:a.italicAngle}).catch((function(e){(0,r.warn)(`loadXfaFonts: "${e}".`);return null})))}await Promise.all(w);this.xfaFactory.appendFonts(f,x)}async serializeXfaData(e){return this.xfaFactory?this.xfaFactory.serializeData(e):null}get formInfo(){const e={hasFields:!1,hasAcroForm:!1,hasXfa:!1,hasSignatures:!1},t=this.catalog.acroForm;if(!t)return(0,r.shadow)(this,"formInfo",e);try{const a=t.get("Fields"),r=Array.isArray(a)&&a.length>0;e.hasFields=r;const n=t.get("XFA");e.hasXfa=Array.isArray(n)&&n.length>0||n instanceof c.BaseStream&&!n.isEmpty;const i=!!(1&t.get("SigFlags")),s=i&&this._hasOnlyDocumentSignatures(a);e.hasAcroForm=r&&!s;e.hasSignatures=i}catch(e){if(e instanceof n.MissingDataException)throw e;(0,r.warn)(`Cannot fetch form information: "${e}".`)}return(0,r.shadow)(this,"formInfo",e)}get documentInfo(){let e=this._version;if("string"!=typeof e||!O.test(e)){(0,r.warn)(`Invalid PDF header version number: ${e}`);e=null}const t={PDFFormatVersion:e,Language:this.catalog.lang,EncryptFilterName:this.xref.encrypt?this.xref.encrypt.filterName:null,IsLinearized:!!this.linearization,IsAcroFormPresent:this.formInfo.hasAcroForm,IsXFAPresent:this.formInfo.hasXfa,IsCollectionPresent:!!this.catalog.collection,IsSignaturesPresent:this.formInfo.hasSignatures};let a;try{a=this.xref.trailer.get("Info")}catch(e){if(e instanceof n.MissingDataException)throw e;(0,r.info)("The document information dictionary is invalid.")}if(!(a instanceof i.Dict))return(0,r.shadow)(this,"documentInfo",t);for(const e of a.getKeys()){const n=a.get(e);switch(e){case"Title":case"Author":case"Subject":case"Keywords":case"Creator":case"Producer":case"CreationDate":case"ModDate":if("string"==typeof n){t[e]=(0,r.stringToPDFString)(n);continue}break;case"Trapped":if(n instanceof i.Name){t[e]=n;continue}break;default:let a;switch(typeof n){case"string":a=(0,r.stringToPDFString)(n);break;case"number":case"boolean":a=n;break;default:n instanceof i.Name&&(a=n)}if(void 0===a){(0,r.warn)(`Bad value, for custom key "${e}", in Info: ${n}.`);continue}t.Custom||(t.Custom=Object.create(null));t.Custom[e]=a;continue}(0,r.warn)(`Bad value, for key "${e}", in Info: ${n}.`)}return(0,r.shadow)(this,"documentInfo",t)}get fingerprints(){function validate(e){return"string"==typeof e&&e.length>0&&"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"!==e}function hexString(e){const t=[];for(let a=0,r=e.length;anew Page({pdfManager:this.pdfManager,xref:this.xref,pageIndex:e,pageDict:t,ref:r,globalIdFactory:this._globalIdFactory,fontCache:a.fontCache,builtInCMapCache:a.builtInCMapCache,standardFontDataCache:a.standardFontDataCache,globalImageCache:a.globalImageCache,nonBlendModesSet:a.nonBlendModesSet,xfaFactory:n})));this._pagePromises.set(e,s);return s}async checkFirstPage(e=!1){if(!e)try{await this.getPage(0)}catch(e){if(e instanceof n.XRefEntryException){this._pagePromises.delete(0);await this.cleanup();throw new n.XRefParseException}}}async checkLastPage(e=!1){const{catalog:t,pdfManager:a}=this;t.setActualNumPages();let i;try{await Promise.all([a.ensureDoc("xfaFactory"),a.ensureDoc("linearization"),a.ensureCatalog("numPages")]);if(this.xfaFactory)return;i=this.linearization?this.linearization.numPages:t.numPages;if(!Number.isInteger(i))throw new r.FormatError("Page count is not an integer.");if(i<=1)return;await this.getPage(i-1)}catch(s){this._pagePromises.delete(i-1);await this.cleanup();if(s instanceof n.XRefEntryException&&!e)throw new n.XRefParseException;(0,r.warn)(`checkLastPage - invalid /Pages tree /Count: ${i}.`);let o;try{o=await t.getAllPageDicts(e)}catch(a){if(a instanceof n.XRefEntryException&&!e)throw new n.XRefParseException;t.setActualNumPages(1);return}for(const[e,[r,n]]of o){let i;if(r instanceof Error){i=Promise.reject(r);i.catch((()=>{}))}else i=Promise.resolve(new Page({pdfManager:a,xref:this.xref,pageIndex:e,pageDict:r,ref:n,globalIdFactory:this._globalIdFactory,fontCache:t.fontCache,builtInCMapCache:t.builtInCMapCache,standardFontDataCache:t.standardFontDataCache,globalImageCache:t.globalImageCache,nonBlendModesSet:t.nonBlendModesSet,xfaFactory:null}));this._pagePromises.set(e,i)}t.setActualNumPages(o.size)}}fontFallback(e,t){return this.catalog.fontFallback(e,t)}async cleanup(e=!1){return this.catalog?this.catalog.cleanup(e):(0,u.clearGlobalCaches)()}_collectFieldObjects(e,t,a){const n=this.xref.fetchIfRef(t);if(n.has("T")){const t=(0,r.stringToPDFString)(n.get("T"));e=""===e?t:`${e}.${t}`}a.has(e)||a.set(e,[]);a.get(e).push(o.AnnotationFactory.create(this.xref,t,this.pdfManager,this._localIdFactory,!0).then((e=>e&&e.getFieldObject())).catch((function(e){(0,r.warn)(`_collectFieldObjects: "${e}".`);return null})));if(n.has("Kids")){const t=n.get("Kids");for(const r of t)this._collectFieldObjects(e,r,a)}}get fieldObjects(){if(!this.formInfo.hasFields)return(0,r.shadow)(this,"fieldObjects",Promise.resolve(null));const e=Object.create(null),t=new Map;for(const e of this.catalog.acroForm.get("Fields"))this._collectFieldObjects("",e,t);const a=[];for(const[r,n]of t)a.push(Promise.all(n).then((t=>{(t=t.filter((e=>!!e))).length>0&&(e[r]=t)})));return(0,r.shadow)(this,"fieldObjects",Promise.all(a).then((()=>e)))}get hasJSActions(){const e=this.pdfManager.ensureDoc("_parseHasJSActions");return(0,r.shadow)(this,"hasJSActions",e)}async _parseHasJSActions(){const[e,t]=await Promise.all([this.pdfManager.ensureCatalog("jsActions"),this.pdfManager.ensureDoc("fieldObjects")]);return!!e||!!t&&Object.values(t).some((e=>e.some((e=>null!==e.actions))))}get calculationOrderIds(){const e=this.catalog.acroForm;if(!e||!e.has("CO"))return(0,r.shadow)(this,"calculationOrderIds",null);const t=e.get("CO");if(!Array.isArray(t)||0===t.length)return(0,r.shadow)(this,"calculationOrderIds",null);const a=[];for(const e of t)e instanceof i.Ref&&a.push(e.toString());return 0===a.length?(0,r.shadow)(this,"calculationOrderIds",null):(0,r.shadow)(this,"calculationOrderIds",a)}}{constructor(e,t){super(e,t)}get structureTree(){return(0,r.shadow)(this,"structureTree",this.catalog.structureTree)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.getXfaFontDict=function getXfaFontDict(e){const t=function getXfaFontWidths(e){const t=getXfaFontName(e);if(!t)return null;const{baseWidths:a,baseMapping:r,factors:n}=t;let i;i=n?a.map(((e,t)=>e*n[t])):a;let s,o=-2;const c=[];for(const[e,t]of r.map(((e,t)=>[e,t])).sort((([e],[t])=>e-t)))if(-1!==e)if(e===o+1){s.push(i[t]);o+=1}else{o=e;s=[i[t]];c.push(e,s)}return c}(e),a=new n.Dict(null);a.set("BaseFont",n.Name.get(e));a.set("Type",n.Name.get("Font"));a.set("Subtype",n.Name.get("CIDFontType2"));a.set("Encoding",n.Name.get("Identity-H"));a.set("CIDToGIDMap",n.Name.get("Identity"));a.set("W",t);a.set("FirstChar",t[0]);a.set("LastChar",t[t.length-2]+t[t.length-1].length-1);const r=new n.Dict(null);a.set("FontDescriptor",r);const i=new n.Dict(null);i.set("Ordering","Identity");i.set("Registry","Adobe");i.set("Supplement",0);a.set("CIDSystemInfo",i);return a};t.getXfaFontName=getXfaFontName;var r=a(13),n=a(5),i=a(14),s=a(15),o=a(16),c=a(17),l=a(8),h=a(18);const u=(0,l.getLookupTableFactory)((function(e){e["MyriadPro-Regular"]=e["PdfJS-Fallback-Regular"]={name:"LiberationSans-Regular",factors:o.MyriadProRegularFactors,baseWidths:s.LiberationSansRegularWidths,baseMapping:s.LiberationSansRegularMapping,metrics:o.MyriadProRegularMetrics};e["MyriadPro-Bold"]=e["PdfJS-Fallback-Bold"]={name:"LiberationSans-Bold",factors:o.MyriadProBoldFactors,baseWidths:s.LiberationSansBoldWidths,baseMapping:s.LiberationSansBoldMapping,metrics:o.MyriadProBoldMetrics};e["MyriadPro-It"]=e["MyriadPro-Italic"]=e["PdfJS-Fallback-Italic"]={name:"LiberationSans-Italic",factors:o.MyriadProItalicFactors,baseWidths:s.LiberationSansItalicWidths,baseMapping:s.LiberationSansItalicMapping,metrics:o.MyriadProItalicMetrics};e["MyriadPro-BoldIt"]=e["MyriadPro-BoldItalic"]=e["PdfJS-Fallback-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:o.MyriadProBoldItalicFactors,baseWidths:s.LiberationSansBoldItalicWidths,baseMapping:s.LiberationSansBoldItalicMapping,metrics:o.MyriadProBoldItalicMetrics};e.ArialMT=e.Arial=e["Arial-Regular"]={name:"LiberationSans-Regular",baseWidths:s.LiberationSansRegularWidths,baseMapping:s.LiberationSansRegularMapping};e["Arial-BoldMT"]=e["Arial-Bold"]={name:"LiberationSans-Bold",baseWidths:s.LiberationSansBoldWidths,baseMapping:s.LiberationSansBoldMapping};e["Arial-ItalicMT"]=e["Arial-Italic"]={name:"LiberationSans-Italic",baseWidths:s.LiberationSansItalicWidths,baseMapping:s.LiberationSansItalicMapping};e["Arial-BoldItalicMT"]=e["Arial-BoldItalic"]={name:"LiberationSans-BoldItalic",baseWidths:s.LiberationSansBoldItalicWidths,baseMapping:s.LiberationSansBoldItalicMapping};e["Calibri-Regular"]={name:"LiberationSans-Regular",factors:r.CalibriRegularFactors,baseWidths:s.LiberationSansRegularWidths,baseMapping:s.LiberationSansRegularMapping,metrics:r.CalibriRegularMetrics};e["Calibri-Bold"]={name:"LiberationSans-Bold",factors:r.CalibriBoldFactors,baseWidths:s.LiberationSansBoldWidths,baseMapping:s.LiberationSansBoldMapping,metrics:r.CalibriBoldMetrics};e["Calibri-Italic"]={name:"LiberationSans-Italic",factors:r.CalibriItalicFactors,baseWidths:s.LiberationSansItalicWidths,baseMapping:s.LiberationSansItalicMapping,metrics:r.CalibriItalicMetrics};e["Calibri-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:r.CalibriBoldItalicFactors,baseWidths:s.LiberationSansBoldItalicWidths,baseMapping:s.LiberationSansBoldItalicMapping,metrics:r.CalibriBoldItalicMetrics};e["Segoeui-Regular"]={name:"LiberationSans-Regular",factors:c.SegoeuiRegularFactors,baseWidths:s.LiberationSansRegularWidths,baseMapping:s.LiberationSansRegularMapping,metrics:c.SegoeuiRegularMetrics};e["Segoeui-Bold"]={name:"LiberationSans-Bold",factors:c.SegoeuiBoldFactors,baseWidths:s.LiberationSansBoldWidths,baseMapping:s.LiberationSansBoldMapping,metrics:c.SegoeuiBoldMetrics};e["Segoeui-Italic"]={name:"LiberationSans-Italic",factors:c.SegoeuiItalicFactors,baseWidths:s.LiberationSansItalicWidths,baseMapping:s.LiberationSansItalicMapping,metrics:c.SegoeuiItalicMetrics};e["Segoeui-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:c.SegoeuiBoldItalicFactors,baseWidths:s.LiberationSansBoldItalicWidths,baseMapping:s.LiberationSansBoldItalicMapping,metrics:c.SegoeuiBoldItalicMetrics};e["Helvetica-Regular"]=e.Helvetica={name:"LiberationSans-Regular",factors:i.HelveticaRegularFactors,baseWidths:s.LiberationSansRegularWidths,baseMapping:s.LiberationSansRegularMapping,metrics:i.HelveticaRegularMetrics};e["Helvetica-Bold"]={name:"LiberationSans-Bold",factors:i.HelveticaBoldFactors,baseWidths:s.LiberationSansBoldWidths,baseMapping:s.LiberationSansBoldMapping,metrics:i.HelveticaBoldMetrics};e["Helvetica-Italic"]={name:"LiberationSans-Italic",factors:i.HelveticaItalicFactors,baseWidths:s.LiberationSansItalicWidths,baseMapping:s.LiberationSansItalicMapping,metrics:i.HelveticaItalicMetrics};e["Helvetica-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:i.HelveticaBoldItalicFactors,baseWidths:s.LiberationSansBoldItalicWidths,baseMapping:s.LiberationSansBoldItalicMapping,metrics:i.HelveticaBoldItalicMetrics}}));function getXfaFontName(e){const t=(0,h.normalizeFontName)(e);return u()[t]}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.CalibriRegularMetrics=t.CalibriRegularFactors=t.CalibriItalicMetrics=t.CalibriItalicFactors=t.CalibriBoldMetrics=t.CalibriBoldItalicMetrics=t.CalibriBoldItalicFactors=t.CalibriBoldFactors=void 0;t.CalibriBoldFactors=[1.3877,1,1,1,.97801,.92482,.89552,.91133,.81988,.97566,.98152,.93548,.93548,1.2798,.85284,.92794,1,.96134,1.54657,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.82845,.82845,.85284,.85284,.85284,.75859,.92138,.83908,.7762,.73293,.87289,.73133,.7514,.81921,.87356,.95958,.59526,.75727,.69225,1.04924,.9121,.86943,.79795,.88198,.77958,.70864,.81055,.90399,.88653,.96017,.82577,.77892,.78257,.97507,1.54657,.97507,.85284,.89552,.90176,.88762,.8785,.75241,.8785,.90518,.95015,.77618,.8785,.88401,.91916,.86304,.88401,.91488,.8785,.8801,.8785,.8785,.91343,.7173,1.04106,.8785,.85075,.95794,.82616,.85162,.79492,.88331,1.69808,.88331,.85284,.97801,.89552,.91133,.89552,.91133,1.7801,.89552,1.24487,1.13254,1.12401,.96839,.85284,.68787,.70645,.85592,.90747,1.01466,1.0088,.90323,1,1.07463,1,.91056,.75806,1.19118,.96839,.78864,.82845,.84133,.75859,.83908,.83908,.83908,.83908,.83908,.83908,.77539,.73293,.73133,.73133,.73133,.73133,.95958,.95958,.95958,.95958,.88506,.9121,.86943,.86943,.86943,.86943,.86943,.85284,.87508,.90399,.90399,.90399,.90399,.77892,.79795,.90807,.88762,.88762,.88762,.88762,.88762,.88762,.8715,.75241,.90518,.90518,.90518,.90518,.88401,.88401,.88401,.88401,.8785,.8785,.8801,.8801,.8801,.8801,.8801,.90747,.89049,.8785,.8785,.8785,.8785,.85162,.8785,.85162,.83908,.88762,.83908,.88762,.83908,.88762,.73293,.75241,.73293,.75241,.73293,.75241,.73293,.75241,.87289,.83016,.88506,.93125,.73133,.90518,.73133,.90518,.73133,.90518,.73133,.90518,.73133,.90518,.81921,.77618,.81921,.77618,.81921,.77618,1,1,.87356,.8785,.91075,.89608,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.76229,.90167,.59526,.91916,1,1,.86304,.69225,.88401,1,1,.70424,.79468,.91926,.88175,.70823,.94903,.9121,.8785,1,1,.9121,.8785,.87802,.88656,.8785,.86943,.8801,.86943,.8801,.86943,.8801,.87402,.89291,.77958,.91343,1,1,.77958,.91343,.70864,.7173,.70864,.7173,.70864,.7173,.70864,.7173,1,1,.81055,.75841,.81055,1.06452,.90399,.8785,.90399,.8785,.90399,.8785,.90399,.8785,.90399,.8785,.90399,.8785,.96017,.95794,.77892,.85162,.77892,.78257,.79492,.78257,.79492,.78257,.79492,.9297,.56892,.83908,.88762,.77539,.8715,.87508,.89049,1,1,.81055,1.04106,1.20528,1.20528,1,1.15543,.70674,.98387,.94721,1.33431,1.45894,.95161,1.06303,.83908,.80352,.57184,.6965,.56289,.82001,.56029,.81235,1.02988,.83908,.7762,.68156,.80367,.73133,.78257,.87356,.86943,.95958,.75727,.89019,1.04924,.9121,.7648,.86943,.87356,.79795,.78275,.81055,.77892,.9762,.82577,.99819,.84896,.95958,.77892,.96108,1.01407,.89049,1.02988,.94211,.96108,.8936,.84021,.87842,.96399,.79109,.89049,1.00813,1.02988,.86077,.87445,.92099,.84723,.86513,.8801,.75638,.85714,.78216,.79586,.87965,.94211,.97747,.78287,.97926,.84971,1.02988,.94211,.8801,.94211,.84971,.73133,1,1,1,1,1,1,1,1,1,1,1,1,.90264,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.90518,1,1,1,1,1,1,1,1,1,1,1,1,.90548,1,1,1,1,1,1,.96017,.95794,.96017,.95794,.96017,.95794,.77892,.85162,1,1,.89552,.90527,1,.90363,.92794,.92794,.92794,.92794,.87012,.87012,.87012,.89552,.89552,1.42259,.71143,1.06152,1,1,1.03372,1.03372,.97171,1.4956,2.2807,.93835,.83406,.91133,.84107,.91133,1,1,1,.72021,1,1.23108,.83489,.88525,.88525,.81499,.90527,1.81055,.90527,1.81055,1.31006,1.53711,.94434,1.08696,1,.95018,.77192,.85284,.90747,1.17534,.69825,.9716,1.37077,.90747,.90747,.85356,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.99862,.99862,1,1,1,1,1,1.08004,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,.90727,.90727,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.CalibriBoldMetrics={lineHeight:1.2207,lineGap:.2207};t.CalibriBoldItalicFactors=[1.3877,1,1,1,.97801,.92482,.89552,.91133,.81988,.97566,.98152,.93548,.93548,1.2798,.85284,.92794,1,.96134,1.56239,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.82845,.82845,.85284,.85284,.85284,.75859,.92138,.83908,.7762,.71805,.87289,.73133,.7514,.81921,.87356,.95958,.59526,.75727,.69225,1.04924,.90872,.85938,.79795,.87068,.77958,.69766,.81055,.90399,.88653,.96068,.82577,.77892,.78257,.97507,1.529,.97507,.85284,.89552,.90176,.94908,.86411,.74012,.86411,.88323,.95015,.86411,.86331,.88401,.91916,.86304,.88401,.9039,.86331,.86331,.86411,.86411,.90464,.70852,1.04106,.86331,.84372,.95794,.82616,.84548,.79492,.88331,1.69808,.88331,.85284,.97801,.89552,.91133,.89552,.91133,1.7801,.89552,1.24487,1.13254,1.19129,.96839,.85284,.68787,.70645,.85592,.90747,1.01466,1.0088,.90323,1,1.07463,1,.91056,.75806,1.19118,.96839,.78864,.82845,.84133,.75859,.83908,.83908,.83908,.83908,.83908,.83908,.77539,.71805,.73133,.73133,.73133,.73133,.95958,.95958,.95958,.95958,.88506,.90872,.85938,.85938,.85938,.85938,.85938,.85284,.87068,.90399,.90399,.90399,.90399,.77892,.79795,.90807,.94908,.94908,.94908,.94908,.94908,.94908,.85887,.74012,.88323,.88323,.88323,.88323,.88401,.88401,.88401,.88401,.8785,.86331,.86331,.86331,.86331,.86331,.86331,.90747,.89049,.86331,.86331,.86331,.86331,.84548,.86411,.84548,.83908,.94908,.83908,.94908,.83908,.94908,.71805,.74012,.71805,.74012,.71805,.74012,.71805,.74012,.87289,.79538,.88506,.92726,.73133,.88323,.73133,.88323,.73133,.88323,.73133,.88323,.73133,.88323,.81921,.86411,.81921,.86411,.81921,.86411,1,1,.87356,.86331,.91075,.8777,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.76467,.90167,.59526,.91916,1,1,.86304,.69225,.88401,1,1,.70424,.77312,.91926,.88175,.70823,.94903,.90872,.86331,1,1,.90872,.86331,.86906,.88116,.86331,.85938,.86331,.85938,.86331,.85938,.86331,.87402,.86549,.77958,.90464,1,1,.77958,.90464,.69766,.70852,.69766,.70852,.69766,.70852,.69766,.70852,1,1,.81055,.75841,.81055,1.06452,.90399,.86331,.90399,.86331,.90399,.86331,.90399,.86331,.90399,.86331,.90399,.86331,.96068,.95794,.77892,.84548,.77892,.78257,.79492,.78257,.79492,.78257,.79492,.9297,.56892,.83908,.94908,.77539,.85887,.87068,.89049,1,1,.81055,1.04106,1.20528,1.20528,1,1.15543,.70088,.98387,.94721,1.33431,1.45894,.95161,1.48387,.83908,.80352,.57118,.6965,.56347,.79179,.55853,.80346,1.02988,.83908,.7762,.67174,.86036,.73133,.78257,.87356,.86441,.95958,.75727,.89019,1.04924,.90872,.74889,.85938,.87891,.79795,.7957,.81055,.77892,.97447,.82577,.97466,.87179,.95958,.77892,.94252,.95612,.8753,1.02988,.92733,.94252,.87411,.84021,.8728,.95612,.74081,.8753,1.02189,1.02988,.84814,.87445,.91822,.84723,.85668,.86331,.81344,.87581,.76422,.82046,.96057,.92733,.99375,.78022,.95452,.86015,1.02988,.92733,.86331,.92733,.86015,.73133,1,1,1,1,1,1,1,1,1,1,1,1,.90631,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.88323,1,1,1,1,1,1,1,1,1,1,1,1,.85174,1,1,1,1,1,1,.96068,.95794,.96068,.95794,.96068,.95794,.77892,.84548,1,1,.89552,.90527,1,.90363,.92794,.92794,.92794,.89807,.87012,.87012,.87012,.89552,.89552,1.42259,.71094,1.06152,1,1,1.03372,1.03372,.97171,1.4956,2.2807,.92972,.83406,.91133,.83326,.91133,1,1,1,.72021,1,1.23108,.83489,.88525,.88525,.81499,.90616,1.81055,.90527,1.81055,1.3107,1.53711,.94434,1.08696,1,.95018,.77192,.85284,.90747,1.17534,.69825,.9716,1.37077,.90747,.90747,.85356,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.99862,.99862,1,1,1,1,1,1.08004,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,.90727,.90727,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.CalibriBoldItalicMetrics={lineHeight:1.2207,lineGap:.2207};t.CalibriItalicFactors=[1.3877,1,1,1,1.17223,1.1293,.89552,.91133,.80395,1.02269,1.15601,.91056,.91056,1.2798,.85284,.89807,1,.90861,1.39543,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.96309,.96309,.85284,.85284,.85284,.83319,.88071,.8675,.81552,.72346,.85193,.73206,.7522,.81105,.86275,.90685,.6377,.77892,.75593,1.02638,.89249,.84118,.77452,.85374,.75186,.67789,.79776,.88844,.85066,.94309,.77818,.7306,.76659,1.10369,1.38313,1.10369,1.06139,.89552,.8739,.9245,.9245,.83203,.9245,.85865,1.09842,.9245,.9245,1.03297,1.07692,.90918,1.03297,.94959,.9245,.92274,.9245,.9245,1.02933,.77832,1.20562,.9245,.8916,.98986,.86621,.89453,.79004,.94152,1.77256,.94152,.85284,.97801,.89552,.91133,.89552,.91133,1.91729,.89552,1.17889,1.13254,1.16359,.92098,.85284,.68787,.71353,.84737,.90747,1.0088,1.0044,.87683,1,1.09091,1,.92229,.739,1.15642,.92098,.76288,.80504,.80972,.75859,.8675,.8675,.8675,.8675,.8675,.8675,.76318,.72346,.73206,.73206,.73206,.73206,.90685,.90685,.90685,.90685,.86477,.89249,.84118,.84118,.84118,.84118,.84118,.85284,.84557,.88844,.88844,.88844,.88844,.7306,.77452,.86331,.9245,.9245,.9245,.9245,.9245,.9245,.84843,.83203,.85865,.85865,.85865,.85865,.82601,.82601,.82601,.82601,.94469,.9245,.92274,.92274,.92274,.92274,.92274,.90747,.86651,.9245,.9245,.9245,.9245,.89453,.9245,.89453,.8675,.9245,.8675,.9245,.8675,.9245,.72346,.83203,.72346,.83203,.72346,.83203,.72346,.83203,.85193,.8875,.86477,.99034,.73206,.85865,.73206,.85865,.73206,.85865,.73206,.85865,.73206,.85865,.81105,.9245,.81105,.9245,.81105,.9245,1,1,.86275,.9245,.90872,.93591,.90685,.82601,.90685,.82601,.90685,.82601,.90685,1.03297,.90685,.82601,.77896,1.05611,.6377,1.07692,1,1,.90918,.75593,1.03297,1,1,.76032,.9375,.98156,.93407,.77261,1.11429,.89249,.9245,1,1,.89249,.9245,.92534,.86698,.9245,.84118,.92274,.84118,.92274,.84118,.92274,.8667,.86291,.75186,1.02933,1,1,.75186,1.02933,.67789,.77832,.67789,.77832,.67789,.77832,.67789,.77832,1,1,.79776,.97655,.79776,1.23023,.88844,.9245,.88844,.9245,.88844,.9245,.88844,.9245,.88844,.9245,.88844,.9245,.94309,.98986,.7306,.89453,.7306,.76659,.79004,.76659,.79004,.76659,.79004,1.09231,.54873,.8675,.9245,.76318,.84843,.84557,.86651,1,1,.79776,1.20562,1.18622,1.18622,1,1.1437,.67009,.96334,.93695,1.35191,1.40909,.95161,1.48387,.8675,.90861,.6192,.7363,.64824,.82411,.56321,.85696,1.23516,.8675,.81552,.7286,.84134,.73206,.76659,.86275,.84369,.90685,.77892,.85871,1.02638,.89249,.75828,.84118,.85984,.77452,.76466,.79776,.7306,.90782,.77818,.903,.87291,.90685,.7306,.99058,1.03667,.94635,1.23516,.9849,.99058,.92393,.8916,.942,1.03667,.75026,.94635,1.0297,1.23516,.90918,.94048,.98217,.89746,.84153,.92274,.82507,.88832,.84438,.88178,1.03525,.9849,1.00225,.78086,.97248,.89404,1.23516,.9849,.92274,.9849,.89404,.73206,1,1,1,1,1,1,1,1,1,1,1,1,.89693,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.85865,1,1,1,1,1,1,1,1,1,1,1,1,.90933,1,1,1,1,1,1,.94309,.98986,.94309,.98986,.94309,.98986,.7306,.89453,1,1,.89552,.90527,1,.90186,1.12308,1.12308,1.12308,1.12308,1.2566,1.2566,1.2566,.89552,.89552,1.42259,.68994,1.03809,1,1,1.0176,1.0176,1.11523,1.4956,2.01462,.97858,.82616,.91133,.83437,.91133,1,1,1,.70508,1,1.23108,.79801,.84426,.84426,.774,.90572,1.81055,.90749,1.81055,1.28809,1.55469,.94434,1.07806,1,.97094,.7589,.85284,.90747,1.19658,.69825,.97622,1.33512,.90747,.90747,.85284,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.99862,.99862,1,1,1,1,1,1.0336,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,1.05859,1.05859,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.CalibriItalicMetrics={lineHeight:1.2207,lineGap:.2207};t.CalibriRegularFactors=[1.3877,1,1,1,1.17223,1.1293,.89552,.91133,.80395,1.02269,1.15601,.91056,.91056,1.2798,.85284,.89807,1,.90861,1.39016,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.96309,.96309,.85284,.85284,.85284,.83319,.88071,.8675,.81552,.73834,.85193,.73206,.7522,.81105,.86275,.90685,.6377,.77892,.75593,1.02638,.89385,.85122,.77452,.86503,.75186,.68887,.79776,.88844,.85066,.94258,.77818,.7306,.76659,1.10369,1.39016,1.10369,1.06139,.89552,.8739,.86128,.94469,.8457,.94469,.89464,1.09842,.84636,.94469,1.03297,1.07692,.90918,1.03297,.95897,.94469,.9482,.94469,.94469,1.04692,.78223,1.20562,.94469,.90332,.98986,.86621,.90527,.79004,.94152,1.77256,.94152,.85284,.97801,.89552,.91133,.89552,.91133,1.91729,.89552,1.17889,1.13254,1.08707,.92098,.85284,.68787,.71353,.84737,.90747,1.0088,1.0044,.87683,1,1.09091,1,.92229,.739,1.15642,.92098,.76288,.80504,.80972,.75859,.8675,.8675,.8675,.8675,.8675,.8675,.76318,.73834,.73206,.73206,.73206,.73206,.90685,.90685,.90685,.90685,.86477,.89385,.85122,.85122,.85122,.85122,.85122,.85284,.85311,.88844,.88844,.88844,.88844,.7306,.77452,.86331,.86128,.86128,.86128,.86128,.86128,.86128,.8693,.8457,.89464,.89464,.89464,.89464,.82601,.82601,.82601,.82601,.94469,.94469,.9482,.9482,.9482,.9482,.9482,.90747,.86651,.94469,.94469,.94469,.94469,.90527,.94469,.90527,.8675,.86128,.8675,.86128,.8675,.86128,.73834,.8457,.73834,.8457,.73834,.8457,.73834,.8457,.85193,.92454,.86477,.9921,.73206,.89464,.73206,.89464,.73206,.89464,.73206,.89464,.73206,.89464,.81105,.84636,.81105,.84636,.81105,.84636,1,1,.86275,.94469,.90872,.95786,.90685,.82601,.90685,.82601,.90685,.82601,.90685,1.03297,.90685,.82601,.77741,1.05611,.6377,1.07692,1,1,.90918,.75593,1.03297,1,1,.76032,.90452,.98156,1.11842,.77261,1.11429,.89385,.94469,1,1,.89385,.94469,.95877,.86901,.94469,.85122,.9482,.85122,.9482,.85122,.9482,.8667,.90016,.75186,1.04692,1,1,.75186,1.04692,.68887,.78223,.68887,.78223,.68887,.78223,.68887,.78223,1,1,.79776,.92188,.79776,1.23023,.88844,.94469,.88844,.94469,.88844,.94469,.88844,.94469,.88844,.94469,.88844,.94469,.94258,.98986,.7306,.90527,.7306,.76659,.79004,.76659,.79004,.76659,.79004,1.09231,.54873,.8675,.86128,.76318,.8693,.85311,.86651,1,1,.79776,1.20562,1.18622,1.18622,1,1.1437,.67742,.96334,.93695,1.35191,1.40909,.95161,1.48387,.86686,.90861,.62267,.74359,.65649,.85498,.56963,.88254,1.23516,.8675,.81552,.75443,.84503,.73206,.76659,.86275,.85122,.90685,.77892,.85746,1.02638,.89385,.75657,.85122,.86275,.77452,.74171,.79776,.7306,.95165,.77818,.89772,.88831,.90685,.7306,.98142,1.02191,.96576,1.23516,.99018,.98142,.9236,.89258,.94035,1.02191,.78848,.96576,.9561,1.23516,.90918,.92578,.95424,.89746,.83969,.9482,.80113,.89442,.85208,.86155,.98022,.99018,1.00452,.81209,.99247,.89181,1.23516,.99018,.9482,.99018,.89181,.73206,1,1,1,1,1,1,1,1,1,1,1,1,.88844,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.89464,1,1,1,1,1,1,1,1,1,1,1,1,.96766,1,1,1,1,1,1,.94258,.98986,.94258,.98986,.94258,.98986,.7306,.90527,1,1,.89552,.90527,1,.90186,1.12308,1.12308,1.12308,1.12308,1.2566,1.2566,1.2566,.89552,.89552,1.42259,.69043,1.03809,1,1,1.0176,1.0176,1.11523,1.4956,2.01462,.99331,.82616,.91133,.84286,.91133,1,1,1,.70508,1,1.23108,.79801,.84426,.84426,.774,.90527,1.81055,.90527,1.81055,1.28809,1.55469,.94434,1.07806,1,.97094,.7589,.85284,.90747,1.19658,.69825,.97622,1.33512,.90747,.90747,.85356,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.99862,.99862,1,1,1,1,1,1.0336,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,1.05859,1.05859,1,1,1,1.07185,.99413,.96334,1.08065,1,1,1,1,1,1,1,1,1,1,1];t.CalibriRegularMetrics={lineHeight:1.2207,lineGap:.2207}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.HelveticaRegularMetrics=t.HelveticaRegularFactors=t.HelveticaItalicMetrics=t.HelveticaItalicFactors=t.HelveticaBoldMetrics=t.HelveticaBoldItalicMetrics=t.HelveticaBoldItalicFactors=t.HelveticaBoldFactors=void 0;t.HelveticaBoldFactors=[.76116,1,1,1.0006,.99998,.99974,.99973,.99973,.99982,.99977,1.00087,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99998,1,1.00003,1.00003,1.00003,1.00026,.9999,.99977,.99977,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,.99973,.99977,1.00026,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,.99998,1.0006,.99998,1.00003,.99973,.99998,.99973,1.00026,.99973,1.00026,.99973,.99998,1.00026,1.00026,1.0006,1.0006,.99973,1.0006,.99982,1.00026,1.00026,1.00026,1.00026,.99959,.99973,.99998,1.00026,.99973,1.00022,.99973,.99973,1,.99959,1.00077,.99959,1.00003,.99998,.99973,.99973,.99973,.99973,1.00077,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.99973,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,.99977,.99977,.99977,.99977,.99977,.99977,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,.99973,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.06409,1.00026,1.00026,1.00026,1.00026,1.00026,.99973,1.00026,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,1.03374,.99977,1.00026,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,.99977,1.00026,.99977,1.00026,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.00042,.99973,.99973,1.0006,.99977,.99973,.99973,1.00026,1.0006,1.00026,1.0006,1.00026,1.03828,1.00026,.99999,1.00026,1.0006,.99977,1.00026,.99977,1.00026,.99977,1.00026,.9993,.9998,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1,1.00016,.99977,.99959,.99977,.99959,.99977,.99959,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00026,.99998,1.00026,.8121,1.00026,.99998,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,1.00016,1.00022,1.00001,.99973,1.00001,1.00026,1,1.00026,1,1.00026,1,1.0006,.99973,.99977,.99973,1,.99982,1.00022,1.00026,1.00001,.99973,1.00026,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,1.00034,.99977,1,.99997,1.00026,1.00078,1.00036,.99973,1.00013,1.0006,.99977,.99977,.99988,.85148,1.00001,1.00026,.99977,1.00022,1.0006,.99977,1.00001,.99999,.99977,1.00069,1.00022,.99977,1.00001,.99984,1.00026,1.00001,1.00024,1.00001,.9999,1,1.0006,1.00001,1.00041,.99962,1.00026,1.0006,.99995,1.00041,.99942,.99973,.99927,1.00082,.99902,1.00026,1.00087,1.0006,1.00069,.99973,.99867,.99973,.9993,1.00026,1.00049,1.00056,1,.99988,.99935,.99995,.99954,1.00055,.99945,1.00032,1.0006,.99995,1.00026,.99995,1.00032,1.00001,1.00008,.99971,1.00019,.9994,1.00001,1.0006,1.00044,.99973,1.00023,1.00047,1,.99942,.99561,.99989,1.00035,.99977,1.00035,.99977,1.00019,.99944,1.00001,1.00021,.99926,1.00035,1.00035,.99942,1.00048,.99999,.99977,1.00022,1.00035,1.00001,.99977,1.00026,.99989,1.00057,1.00001,.99936,1.00052,1.00012,.99996,1.00043,1,1.00035,.9994,.99976,1.00035,.99973,1.00052,1.00041,1.00119,1.00037,.99973,1.00002,.99986,1.00041,1.00041,.99902,.9996,1.00034,.99999,1.00026,.99999,1.00026,.99973,1.00052,.99973,1,.99973,1.00041,1.00075,.9994,1.0003,.99999,1,1.00041,.99955,1,.99915,.99973,.99973,1.00026,1.00119,.99955,.99973,1.0006,.99911,1.0006,1.00026,.99972,1.00026,.99902,1.00041,.99973,.99999,1,1,1.00038,1.0005,1.00016,1.00022,1.00016,1.00022,1.00016,1.00022,1.00001,.99973,1,1,.99973,1,1,.99955,1.0006,1.0006,1.0006,1.0006,1,1,1,.99973,.99973,.99972,1,1,1.00106,.99999,.99998,.99998,.99999,.99998,1.66475,1,.99973,.99973,1.00023,.99973,.99971,1.00047,1.00023,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1,1,1,1,1,1,1,.99972,1,1.20985,1.39713,1.00003,1.00031,1.00015,1,.99561,1.00027,1.00031,1.00031,.99915,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.99972,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,.99998,.99998,.99998,.99998,1,1,1,1,1,1,1,1,1,1,1];t.HelveticaBoldMetrics={lineHeight:1.2,lineGap:.2};t.HelveticaBoldItalicFactors=[.76116,1,1,1.0006,.99998,.99974,.99973,.99973,.99982,.99977,1.00087,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99998,1,1.00003,1.00003,1.00003,1.00026,.9999,.99977,.99977,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,.99973,.99977,1.00026,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,.99998,1.0006,.99998,1.00003,.99973,.99998,.99973,1.00026,.99973,1.00026,.99973,.99998,1.00026,1.00026,1.0006,1.0006,.99973,1.0006,.99982,1.00026,1.00026,1.00026,1.00026,.99959,.99973,.99998,1.00026,.99973,1.00022,.99973,.99973,1,.99959,1.00077,.99959,1.00003,.99998,.99973,.99973,.99973,.99973,1.00077,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.99973,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,.99977,.99977,.99977,.99977,.99977,.99977,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,.99973,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.06409,1.00026,1.00026,1.00026,1.00026,1.00026,.99973,1.00026,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,1.0044,.99977,1.00026,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,.99977,1.00026,.99977,1.00026,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,.99971,.99973,.99973,1.0006,.99977,.99973,.99973,1.00026,1.0006,1.00026,1.0006,1.00026,1.01011,1.00026,.99999,1.00026,1.0006,.99977,1.00026,.99977,1.00026,.99977,1.00026,.9993,.9998,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1,1.00016,.99977,.99959,.99977,.99959,.99977,.99959,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00026,.99998,1.00026,.8121,1.00026,.99998,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,1.00016,1.00022,1.00001,.99973,1.00001,1.00026,1,1.00026,1,1.00026,1,1.0006,.99973,.99977,.99973,1,.99982,1.00022,1.00026,1.00001,.99973,1.00026,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99977,1,1,1.00026,.99969,.99972,.99981,.9998,1.0006,.99977,.99977,1.00022,.91155,1.00001,1.00026,.99977,1.00022,1.0006,.99977,1.00001,.99999,.99977,.99966,1.00022,1.00032,1.00001,.99944,1.00026,1.00001,.99968,1.00001,1.00047,1,1.0006,1.00001,.99981,1.00101,1.00026,1.0006,.99948,.99981,1.00064,.99973,.99942,1.00101,1.00061,1.00026,1.00069,1.0006,1.00014,.99973,1.01322,.99973,1.00065,1.00026,1.00012,.99923,1,1.00064,1.00076,.99948,1.00055,1.00063,1.00007,.99943,1.0006,.99948,1.00026,.99948,.99943,1.00001,1.00001,1.00029,1.00038,1.00035,1.00001,1.0006,1.0006,.99973,.99978,1.00001,1.00057,.99989,.99967,.99964,.99967,.99977,.99999,.99977,1.00038,.99977,1.00001,.99973,1.00066,.99967,.99967,1.00041,.99998,.99999,.99977,1.00022,.99967,1.00001,.99977,1.00026,.99964,1.00031,1.00001,.99999,.99999,1,1.00023,1,1,.99999,1.00035,1.00001,.99999,.99973,.99977,.99999,1.00058,.99973,.99973,.99955,.9995,1.00026,1.00026,1.00032,.99989,1.00034,.99999,1.00026,1.00026,1.00026,.99973,.45998,.99973,1.00026,.99973,1.00001,.99999,.99982,.99994,.99996,1,1.00042,1.00044,1.00029,1.00023,.99973,.99973,1.00026,.99949,1.00002,.99973,1.0006,1.0006,1.0006,.99975,1.00026,1.00026,1.00032,.98685,.99973,1.00026,1,1,.99966,1.00044,1.00016,1.00022,1.00016,1.00022,1.00016,1.00022,1.00001,.99973,1,1,.99973,1,1,.99955,1.0006,1.0006,1.0006,1.0006,1,1,1,.99973,.99973,.99972,1,1,1.00106,.99999,.99998,.99998,.99999,.99998,1.66475,1,.99973,.99973,1,.99973,.99971,.99978,1,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1.00098,1,1,1,1.00049,1,1,.99972,1,1.20985,1.39713,1.00003,1.00031,1.00015,1,.99561,1.00027,1.00031,1.00031,.99915,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.99972,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,.99998,.99998,.99998,.99998,1,1,1,1,1,1,1,1,1,1,1];t.HelveticaBoldItalicMetrics={lineHeight:1.35,lineGap:.2};t.HelveticaItalicFactors=[.76116,1,1,1.0006,1.0006,1.00006,.99973,.99973,.99982,1.00001,1.00043,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.0006,1,1.00003,1.00003,1.00003,.99973,.99987,1.00001,1.00001,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,1,1.00001,.99973,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,1.0006,1.0006,1.0006,.99949,.99973,.99998,.99973,.99973,1,.99973,.99973,1.0006,.99973,.99973,.99924,.99924,1,.99924,.99999,.99973,.99973,.99973,.99973,.99998,1,1.0006,.99973,1,.99977,1,1,1,1.00005,1.0009,1.00005,1.00003,.99998,.99973,.99973,.99973,.99973,1.0009,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.9998,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,1.00001,1.00001,1.00001,1.00001,1.00001,1.00001,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,1,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.06409,1.00026,.99973,.99973,.99973,.99973,1,.99973,1,1.00001,.99973,1.00001,.99973,1.00001,.99973,.99977,1,.99977,1,.99977,1,.99977,1,.99977,1.0288,.99977,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,.99977,.99973,.99977,.99973,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,.99924,1.0006,1.0006,.99946,1.00034,1,.99924,1.00001,1,1,.99973,.99924,.99973,.99924,.99973,1.06311,.99973,1.00024,.99973,.99924,.99977,.99973,.99977,.99973,.99977,.99973,1.00041,.9998,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1,1.00016,.99977,.99998,.99977,.99998,.99977,.99998,1.00001,1,1.00001,1,1.00001,1,1.00001,1,1.00026,1.0006,1.00026,.89547,1.00026,1.0006,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,1.00016,.99977,1.00001,1,1.00001,1.00026,1,1.00026,1,1.00026,1,.99924,.99973,1.00001,.99973,1,.99982,1.00022,1.00026,1.00001,1,1.00026,1.0006,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,1.00001,1,1.00054,.99977,1.00084,1.00007,.99973,1.00013,.99924,1.00001,1.00001,.99945,.91221,1.00001,1.00026,.99977,1.00022,1.0006,1.00001,1.00001,.99999,.99977,.99933,1.00022,1.00054,1.00001,1.00065,1.00026,1.00001,1.0001,1.00001,1.00052,1,1.0006,1.00001,.99945,.99897,.99968,.99924,1.00036,.99945,.99949,1,1.0006,.99897,.99918,.99968,.99911,.99924,1,.99962,1.01487,1,1.0005,.99973,1.00012,1.00043,1,.99995,.99994,1.00036,.99947,1.00019,1.00063,1.00025,.99924,1.00036,.99973,1.00036,1.00025,1.00001,1.00001,1.00027,1.0001,1.00068,1.00001,1.0006,1.0006,1,1.00008,.99957,.99972,.9994,.99954,.99975,1.00051,1.00001,1.00019,1.00001,1.0001,.99986,1.00001,1.00001,1.00038,.99954,.99954,.9994,1.00066,.99999,.99977,1.00022,1.00054,1.00001,.99977,1.00026,.99975,1.0001,1.00001,.99993,.9995,.99955,1.00016,.99978,.99974,1.00019,1.00022,.99955,1.00053,.99973,1.00089,1.00005,.99967,1.00048,.99973,1.00002,1.00034,.99973,.99973,.99964,1.00006,1.00066,.99947,.99973,.98894,.99973,1,.44898,1,.99946,1,1.00039,1.00082,.99991,.99991,.99985,1.00022,1.00023,1.00061,1.00006,.99966,.99973,.99973,.99973,1.00019,1.0008,1,.99924,.99924,.99924,.99983,1.00044,.99973,.99964,.98332,1,.99973,1,1,.99962,.99895,1.00016,.99977,1.00016,.99977,1.00016,.99977,1.00001,1,1,1,.99973,1,1,.99955,.99924,.99924,.99924,.99924,.99998,.99998,.99998,.99973,.99973,.99972,1,1,1.00267,.99999,.99998,.99998,1,.99998,1.66475,1,.99973,.99973,1.00023,.99973,1.00423,.99925,.99999,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1.00049,1,1.00245,1,1,1,1,.96329,1,1.20985,1.39713,1.00003,.8254,1.00015,1,1.00035,1.00027,1.00031,1.00031,1.00003,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.95317,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,.99998,.99998,.99998,.99998,1,1,1,1,1,1,1,1,1,1,1];t.HelveticaItalicMetrics={lineHeight:1.35,lineGap:.2};t.HelveticaRegularFactors=[.76116,1,1,1.0006,1.0006,1.00006,.99973,.99973,.99982,1.00001,1.00043,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.0006,1,1.00003,1.00003,1.00003,.99973,.99987,1.00001,1.00001,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,1,1.00001,.99973,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,1.0006,1.0006,1.0006,.99949,.99973,.99998,.99973,.99973,1,.99973,.99973,1.0006,.99973,.99973,.99924,.99924,1,.99924,.99999,.99973,.99973,.99973,.99973,.99998,1,1.0006,.99973,1,.99977,1,1,1,1.00005,1.0009,1.00005,1.00003,.99998,.99973,.99973,.99973,.99973,1.0009,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.9998,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,1.00001,1.00001,1.00001,1.00001,1.00001,1.00001,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,1,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.06409,1.00026,.99973,.99973,.99973,.99973,1,.99973,1,1.00001,.99973,1.00001,.99973,1.00001,.99973,.99977,1,.99977,1,.99977,1,.99977,1,.99977,1.04596,.99977,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,.99977,.99973,.99977,.99973,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,.99924,1.0006,1.0006,1.00019,1.00034,1,.99924,1.00001,1,1,.99973,.99924,.99973,.99924,.99973,1.02572,.99973,1.00005,.99973,.99924,.99977,.99973,.99977,.99973,.99977,.99973,.99999,.9998,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1,1.00016,.99977,.99998,.99977,.99998,.99977,.99998,1.00001,1,1.00001,1,1.00001,1,1.00001,1,1.00026,1.0006,1.00026,.84533,1.00026,1.0006,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,1.00016,.99977,1.00001,1,1.00001,1.00026,1,1.00026,1,1.00026,1,.99924,.99973,1.00001,.99973,1,.99982,1.00022,1.00026,1.00001,1,1.00026,1.0006,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99928,1,.99977,1.00013,1.00055,.99947,.99945,.99941,.99924,1.00001,1.00001,1.0004,.91621,1.00001,1.00026,.99977,1.00022,1.0006,1.00001,1.00005,.99999,.99977,1.00015,1.00022,.99977,1.00001,.99973,1.00026,1.00001,1.00019,1.00001,.99946,1,1.0006,1.00001,.99978,1.00045,.99973,.99924,1.00023,.99978,.99966,1,1.00065,1.00045,1.00019,.99973,.99973,.99924,1,1,.96499,1,1.00055,.99973,1.00008,1.00027,1,.9997,.99995,1.00023,.99933,1.00019,1.00015,1.00031,.99924,1.00023,.99973,1.00023,1.00031,1.00001,.99928,1.00029,1.00092,1.00035,1.00001,1.0006,1.0006,1,.99988,.99975,1,1.00082,.99561,.9996,1.00035,1.00001,.99962,1.00001,1.00092,.99964,1.00001,.99963,.99999,1.00035,1.00035,1.00082,.99962,.99999,.99977,1.00022,1.00035,1.00001,.99977,1.00026,.9996,.99967,1.00001,1.00034,1.00074,1.00054,1.00053,1.00063,.99971,.99962,1.00035,.99975,.99977,.99973,1.00043,.99953,1.0007,.99915,.99973,1.00008,.99892,1.00073,1.00073,1.00114,.99915,1.00073,.99955,.99973,1.00092,.99973,1,.99998,1,1.0003,1,1.00043,1.00001,.99969,1.0003,1,1.00035,1.00001,.9995,1,1.00092,.99973,.99973,.99973,1.0007,.9995,1,.99924,1.0006,.99924,.99972,1.00062,.99973,1.00114,1.00073,1,.99955,1,1,1.00047,.99968,1.00016,.99977,1.00016,.99977,1.00016,.99977,1.00001,1,1,1,.99973,1,1,.99955,.99924,.99924,.99924,.99924,.99998,.99998,.99998,.99973,.99973,.99972,1,1,1.00267,.99999,.99998,.99998,1,.99998,1.66475,1,.99973,.99973,1.00023,.99973,.99971,.99925,1.00023,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1,1,1,1,1,1,1,.96329,1,1.20985,1.39713,1.00003,.8254,1.00015,1,1.00035,1.00027,1.00031,1.00031,.99915,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.95317,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.HelveticaRegularMetrics={lineHeight:1.2,lineGap:.2}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.LiberationSansRegularWidths=t.LiberationSansRegularMapping=t.LiberationSansItalicWidths=t.LiberationSansItalicMapping=t.LiberationSansBoldWidths=t.LiberationSansBoldMapping=t.LiberationSansBoldItalicWidths=t.LiberationSansBoldItalicMapping=void 0;t.LiberationSansBoldWidths=[365,0,333,278,333,474,556,556,889,722,238,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,333,333,584,584,584,611,975,722,722,722,722,667,611,778,722,278,556,722,611,833,722,778,667,778,722,667,611,722,667,944,667,667,611,333,278,333,584,556,333,556,611,556,611,556,333,611,611,278,278,556,278,889,611,611,611,611,389,556,333,611,556,778,556,556,500,389,280,389,584,333,556,556,556,556,280,556,333,737,370,556,584,737,552,400,549,333,333,333,576,556,278,333,333,365,556,834,834,834,611,722,722,722,722,722,722,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,556,556,556,556,556,278,278,278,278,611,611,611,611,611,611,611,549,611,611,611,611,611,556,611,556,722,556,722,556,722,556,722,556,722,556,722,556,722,556,722,719,722,611,667,556,667,556,667,556,667,556,667,556,778,611,778,611,778,611,778,611,722,611,722,611,278,278,278,278,278,278,278,278,278,278,785,556,556,278,722,556,556,611,278,611,278,611,385,611,479,611,278,722,611,722,611,722,611,708,723,611,778,611,778,611,778,611,1e3,944,722,389,722,389,722,389,667,556,667,556,667,556,667,556,611,333,611,479,611,333,722,611,722,611,722,611,722,611,722,611,722,611,944,778,667,556,667,611,500,611,500,611,500,278,556,722,556,1e3,889,778,611,667,556,611,333,333,333,333,333,333,333,333,333,333,333,465,722,333,853,906,474,825,927,838,278,722,722,601,719,667,611,722,778,278,722,667,833,722,644,778,722,667,600,611,667,821,667,809,802,278,667,615,451,611,278,582,615,610,556,606,475,460,611,541,278,558,556,612,556,445,611,766,619,520,684,446,582,715,576,753,845,278,582,611,582,845,667,669,885,567,711,667,278,276,556,1094,1062,875,610,722,622,719,722,719,722,567,712,667,904,626,719,719,610,702,833,722,778,719,667,722,611,622,854,667,730,703,1005,1019,870,979,719,711,1031,719,556,618,615,417,635,556,709,497,615,615,500,635,740,604,611,604,611,556,490,556,875,556,615,581,833,844,729,854,615,552,854,583,556,556,611,417,552,556,278,281,278,969,906,611,500,615,556,604,778,611,487,447,944,778,944,778,944,778,667,556,333,333,556,1e3,1e3,552,278,278,278,278,500,500,500,556,556,350,1e3,1e3,240,479,333,333,604,333,167,396,556,556,1094,556,885,489,1115,1e3,768,600,834,834,834,834,1e3,500,1e3,500,1e3,500,500,494,612,823,713,584,549,713,979,722,274,549,549,583,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,611,611,333,333,333,333,333,333,333,333,222,222,333,333,333,333,333,333,333,333];t.LiberationSansBoldMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];t.LiberationSansBoldItalicWidths=[365,0,333,278,333,474,556,556,889,722,238,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,333,333,584,584,584,611,975,722,722,722,722,667,611,778,722,278,556,722,611,833,722,778,667,778,722,667,611,722,667,944,667,667,611,333,278,333,584,556,333,556,611,556,611,556,333,611,611,278,278,556,278,889,611,611,611,611,389,556,333,611,556,778,556,556,500,389,280,389,584,333,556,556,556,556,280,556,333,737,370,556,584,737,552,400,549,333,333,333,576,556,278,333,333,365,556,834,834,834,611,722,722,722,722,722,722,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,556,556,556,556,556,278,278,278,278,611,611,611,611,611,611,611,549,611,611,611,611,611,556,611,556,722,556,722,556,722,556,722,556,722,556,722,556,722,556,722,740,722,611,667,556,667,556,667,556,667,556,667,556,778,611,778,611,778,611,778,611,722,611,722,611,278,278,278,278,278,278,278,278,278,278,782,556,556,278,722,556,556,611,278,611,278,611,396,611,479,611,278,722,611,722,611,722,611,708,723,611,778,611,778,611,778,611,1e3,944,722,389,722,389,722,389,667,556,667,556,667,556,667,556,611,333,611,479,611,333,722,611,722,611,722,611,722,611,722,611,722,611,944,778,667,556,667,611,500,611,500,611,500,278,556,722,556,1e3,889,778,611,667,556,611,333,333,333,333,333,333,333,333,333,333,333,333,722,333,854,906,473,844,930,847,278,722,722,610,671,667,611,722,778,278,722,667,833,722,657,778,718,667,590,611,667,822,667,829,781,278,667,620,479,611,278,591,620,621,556,610,479,492,611,558,278,566,556,603,556,450,611,712,605,532,664,409,591,704,578,773,834,278,591,611,591,834,667,667,886,614,719,667,278,278,556,1094,1042,854,622,719,677,719,722,708,722,614,722,667,927,643,719,719,615,687,833,722,778,719,667,722,611,677,781,667,729,708,979,989,854,1e3,708,719,1042,729,556,619,604,534,618,556,736,510,611,611,507,622,740,604,611,611,611,556,889,556,885,556,646,583,889,935,707,854,594,552,865,589,556,556,611,469,563,556,278,278,278,969,906,611,507,619,556,611,778,611,575,467,944,778,944,778,944,778,667,556,333,333,556,1e3,1e3,552,278,278,278,278,500,500,500,556,556,350,1e3,1e3,240,479,333,333,604,333,167,396,556,556,1104,556,885,516,1146,1e3,768,600,834,834,834,834,999,500,1e3,500,1e3,500,500,494,612,823,713,584,549,713,979,722,274,549,549,583,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,611,611,333,333,333,333,333,333,333,333,222,222,333,333,333,333,333,333,333,333];t.LiberationSansBoldItalicMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];t.LiberationSansItalicWidths=[365,0,333,278,278,355,556,556,889,667,191,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,584,333,556,556,556,556,260,556,333,737,370,556,584,737,552,400,549,333,333,333,576,537,278,333,333,365,556,834,834,834,611,667,667,667,667,667,667,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,500,556,556,556,556,278,278,278,278,556,556,556,556,556,556,556,549,611,556,556,556,556,500,556,500,667,556,667,556,667,556,722,500,722,500,722,500,722,500,722,625,722,556,667,556,667,556,667,556,667,556,667,556,778,556,778,556,778,556,778,556,722,556,722,556,278,278,278,278,278,278,278,222,278,278,733,444,500,222,667,500,500,556,222,556,222,556,281,556,400,556,222,722,556,722,556,722,556,615,723,556,778,556,778,556,778,556,1e3,944,722,333,722,333,722,333,667,500,667,500,667,500,667,500,611,278,611,354,611,278,722,556,722,556,722,556,722,556,722,556,722,556,944,722,667,500,667,611,500,611,500,611,500,222,556,667,556,1e3,889,778,611,667,500,611,278,333,333,333,333,333,333,333,333,333,333,333,667,278,789,846,389,794,865,775,222,667,667,570,671,667,611,722,778,278,667,667,833,722,648,778,725,667,600,611,667,837,667,831,761,278,667,570,439,555,222,550,570,571,500,556,439,463,555,542,222,500,492,548,500,447,556,670,573,486,603,374,550,652,546,728,779,222,550,556,550,779,667,667,843,544,708,667,278,278,500,1066,982,844,589,715,639,724,667,651,667,544,704,667,917,614,715,715,589,686,833,722,778,725,667,722,611,639,795,667,727,673,920,923,805,886,651,694,1022,682,556,562,522,493,553,556,688,465,556,556,472,564,686,550,556,556,556,500,833,500,835,500,572,518,830,851,621,736,526,492,752,534,556,556,556,378,496,500,222,222,222,910,828,556,472,565,500,556,778,556,492,339,944,722,944,722,944,722,667,500,333,333,556,1e3,1e3,552,222,222,222,222,333,333,333,556,556,350,1e3,1e3,188,354,333,333,500,333,167,365,556,556,1094,556,885,323,1083,1e3,768,600,834,834,834,834,1e3,500,998,500,1e3,500,500,494,612,823,713,584,549,713,979,719,274,549,549,584,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,500,500,333,333,333,333,333,333,333,333,222,222,294,294,324,324,316,328,398,285];t.LiberationSansItalicMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];t.LiberationSansRegularWidths=[365,0,333,278,278,355,556,556,889,667,191,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,584,333,556,556,556,556,260,556,333,737,370,556,584,737,552,400,549,333,333,333,576,537,278,333,333,365,556,834,834,834,611,667,667,667,667,667,667,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,500,556,556,556,556,278,278,278,278,556,556,556,556,556,556,556,549,611,556,556,556,556,500,556,500,667,556,667,556,667,556,722,500,722,500,722,500,722,500,722,615,722,556,667,556,667,556,667,556,667,556,667,556,778,556,778,556,778,556,778,556,722,556,722,556,278,278,278,278,278,278,278,222,278,278,735,444,500,222,667,500,500,556,222,556,222,556,292,556,334,556,222,722,556,722,556,722,556,604,723,556,778,556,778,556,778,556,1e3,944,722,333,722,333,722,333,667,500,667,500,667,500,667,500,611,278,611,375,611,278,722,556,722,556,722,556,722,556,722,556,722,556,944,722,667,500,667,611,500,611,500,611,500,222,556,667,556,1e3,889,778,611,667,500,611,278,333,333,333,333,333,333,333,333,333,333,333,667,278,784,838,384,774,855,752,222,667,667,551,668,667,611,722,778,278,667,668,833,722,650,778,722,667,618,611,667,798,667,835,748,278,667,578,446,556,222,547,578,575,500,557,446,441,556,556,222,500,500,576,500,448,556,690,569,482,617,395,547,648,525,713,781,222,547,556,547,781,667,667,865,542,719,667,278,278,500,1057,1010,854,583,722,635,719,667,656,667,542,677,667,923,604,719,719,583,656,833,722,778,719,667,722,611,635,760,667,740,667,917,938,792,885,656,719,1010,722,556,573,531,365,583,556,669,458,559,559,438,583,688,552,556,542,556,500,458,500,823,500,573,521,802,823,625,719,521,510,750,542,556,556,556,365,510,500,222,278,222,906,812,556,438,559,500,552,778,556,489,411,944,722,944,722,944,722,667,500,333,333,556,1e3,1e3,552,222,222,222,222,333,333,333,556,556,350,1e3,1e3,188,354,333,333,500,333,167,365,556,556,1094,556,885,323,1073,1e3,768,600,834,834,834,834,1e3,500,1e3,500,1e3,500,500,494,612,823,713,584,549,713,979,719,274,549,549,583,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,500,500,333,333,333,333,333,333,333,333,222,222,294,294,324,324,316,328,398,285];t.LiberationSansRegularMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.MyriadProRegularMetrics=t.MyriadProRegularFactors=t.MyriadProItalicMetrics=t.MyriadProItalicFactors=t.MyriadProBoldMetrics=t.MyriadProBoldItalicMetrics=t.MyriadProBoldItalicFactors=t.MyriadProBoldFactors=void 0;t.MyriadProBoldFactors=[1.36898,1,1,.72706,.80479,.83734,.98894,.99793,.9897,.93884,.86209,.94292,.94292,1.16661,1.02058,.93582,.96694,.93582,1.19137,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.78076,.78076,1.02058,1.02058,1.02058,.72851,.78966,.90838,.83637,.82391,.96376,.80061,.86275,.8768,.95407,1.0258,.73901,.85022,.83655,1.0156,.95546,.92179,.87107,.92179,.82114,.8096,.89713,.94438,.95353,.94083,.91905,.90406,.9446,.94292,1.18777,.94292,1.02058,.89903,.90088,.94938,.97898,.81093,.97571,.94938,1.024,.9577,.95933,.98621,1.0474,.97455,.98981,.9672,.95933,.9446,.97898,.97407,.97646,.78036,1.10208,.95442,.95298,.97579,.9332,.94039,.938,.80687,1.01149,.80687,1.02058,.80479,.99793,.99793,.99793,.99793,1.01149,1.00872,.90088,.91882,1.0213,.8361,1.02058,.62295,.54324,.89022,1.08595,1,1,.90088,1,.97455,.93582,.90088,1,1.05686,.8361,.99642,.99642,.99642,.72851,.90838,.90838,.90838,.90838,.90838,.90838,.868,.82391,.80061,.80061,.80061,.80061,1.0258,1.0258,1.0258,1.0258,.97484,.95546,.92179,.92179,.92179,.92179,.92179,1.02058,.92179,.94438,.94438,.94438,.94438,.90406,.86958,.98225,.94938,.94938,.94938,.94938,.94938,.94938,.9031,.81093,.94938,.94938,.94938,.94938,.98621,.98621,.98621,.98621,.93969,.95933,.9446,.9446,.9446,.9446,.9446,1.08595,.9446,.95442,.95442,.95442,.95442,.94039,.97898,.94039,.90838,.94938,.90838,.94938,.90838,.94938,.82391,.81093,.82391,.81093,.82391,.81093,.82391,.81093,.96376,.84313,.97484,.97571,.80061,.94938,.80061,.94938,.80061,.94938,.80061,.94938,.80061,.94938,.8768,.9577,.8768,.9577,.8768,.9577,1,1,.95407,.95933,.97069,.95933,1.0258,.98621,1.0258,.98621,1.0258,.98621,1.0258,.98621,1.0258,.98621,.887,1.01591,.73901,1.0474,1,1,.97455,.83655,.98981,1,1,.83655,.73977,.83655,.73903,.84638,1.033,.95546,.95933,1,1,.95546,.95933,.8271,.95417,.95933,.92179,.9446,.92179,.9446,.92179,.9446,.936,.91964,.82114,.97646,1,1,.82114,.97646,.8096,.78036,.8096,.78036,1,1,.8096,.78036,1,1,.89713,.77452,.89713,1.10208,.94438,.95442,.94438,.95442,.94438,.95442,.94438,.95442,.94438,.95442,.94438,.95442,.94083,.97579,.90406,.94039,.90406,.9446,.938,.9446,.938,.9446,.938,1,.99793,.90838,.94938,.868,.9031,.92179,.9446,1,1,.89713,1.10208,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90989,.9358,.91945,.83181,.75261,.87992,.82976,.96034,.83689,.97268,1.0078,.90838,.83637,.8019,.90157,.80061,.9446,.95407,.92436,1.0258,.85022,.97153,1.0156,.95546,.89192,.92179,.92361,.87107,.96318,.89713,.93704,.95638,.91905,.91709,.92796,1.0258,.93704,.94836,1.0373,.95933,1.0078,.95871,.94836,.96174,.92601,.9498,.98607,.95776,.95933,1.05453,1.0078,.98275,.9314,.95617,.91701,1.05993,.9446,.78367,.9553,1,.86832,1.0128,.95871,.99394,.87548,.96361,.86774,1.0078,.95871,.9446,.95871,.86774,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.94083,.97579,.94083,.97579,.94083,.97579,.90406,.94039,.96694,1,.89903,1,1,1,.93582,.93582,.93582,1,.908,.908,.918,.94219,.94219,.96544,1,1.285,1,1,.81079,.81079,1,1,.74854,1,1,1,1,.99793,1,1,1,.65,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.17173,1,.80535,.76169,1.02058,1.0732,1.05486,1,1,1.30692,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.16161,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.MyriadProBoldMetrics={lineHeight:1.2,lineGap:.2};t.MyriadProBoldItalicFactors=[1.36898,1,1,.66227,.80779,.81625,.97276,.97276,.97733,.92222,.83266,.94292,.94292,1.16148,1.02058,.93582,.96694,.93582,1.17337,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.78076,.78076,1.02058,1.02058,1.02058,.71541,.76813,.85576,.80591,.80729,.94299,.77512,.83655,.86523,.92222,.98621,.71743,.81698,.79726,.98558,.92222,.90637,.83809,.90637,.80729,.76463,.86275,.90699,.91605,.9154,.85308,.85458,.90531,.94292,1.21296,.94292,1.02058,.89903,1.18616,.99613,.91677,.78216,.91677,.90083,.98796,.9135,.92168,.95381,.98981,.95298,.95381,.93459,.92168,.91513,.92004,.91677,.95077,.748,1.04502,.91677,.92061,.94236,.89544,.89364,.9,.80687,.8578,.80687,1.02058,.80779,.97276,.97276,.97276,.97276,.8578,.99973,1.18616,.91339,1.08074,.82891,1.02058,.55509,.71526,.89022,1.08595,1,1,1.18616,1,.96736,.93582,1.18616,1,1.04864,.82711,.99043,.99043,.99043,.71541,.85576,.85576,.85576,.85576,.85576,.85576,.845,.80729,.77512,.77512,.77512,.77512,.98621,.98621,.98621,.98621,.95961,.92222,.90637,.90637,.90637,.90637,.90637,1.02058,.90251,.90699,.90699,.90699,.90699,.85458,.83659,.94951,.99613,.99613,.99613,.99613,.99613,.99613,.85811,.78216,.90083,.90083,.90083,.90083,.95381,.95381,.95381,.95381,.9135,.92168,.91513,.91513,.91513,.91513,.91513,1.08595,.91677,.91677,.91677,.91677,.91677,.89364,.92332,.89364,.85576,.99613,.85576,.99613,.85576,.99613,.80729,.78216,.80729,.78216,.80729,.78216,.80729,.78216,.94299,.76783,.95961,.91677,.77512,.90083,.77512,.90083,.77512,.90083,.77512,.90083,.77512,.90083,.86523,.9135,.86523,.9135,.86523,.9135,1,1,.92222,.92168,.92222,.92168,.98621,.95381,.98621,.95381,.98621,.95381,.98621,.95381,.98621,.95381,.86036,.97096,.71743,.98981,1,1,.95298,.79726,.95381,1,1,.79726,.6894,.79726,.74321,.81691,1.0006,.92222,.92168,1,1,.92222,.92168,.79464,.92098,.92168,.90637,.91513,.90637,.91513,.90637,.91513,.909,.87514,.80729,.95077,1,1,.80729,.95077,.76463,.748,.76463,.748,1,1,.76463,.748,1,1,.86275,.72651,.86275,1.04502,.90699,.91677,.90699,.91677,.90699,.91677,.90699,.91677,.90699,.91677,.90699,.91677,.9154,.94236,.85458,.89364,.85458,.90531,.9,.90531,.9,.90531,.9,1,.97276,.85576,.99613,.845,.85811,.90251,.91677,1,1,.86275,1.04502,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.00899,1.30628,.85576,.80178,.66862,.7927,.69323,.88127,.72459,.89711,.95381,.85576,.80591,.7805,.94729,.77512,.90531,.92222,.90637,.98621,.81698,.92655,.98558,.92222,.85359,.90637,.90976,.83809,.94523,.86275,.83509,.93157,.85308,.83392,.92346,.98621,.83509,.92886,.91324,.92168,.95381,.90646,.92886,.90557,.86847,.90276,.91324,.86842,.92168,.99531,.95381,.9224,.85408,.92699,.86847,1.0051,.91513,.80487,.93481,1,.88159,1.05214,.90646,.97355,.81539,.89398,.85923,.95381,.90646,.91513,.90646,.85923,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.9154,.94236,.9154,.94236,.9154,.94236,.85458,.89364,.96694,1,.89903,1,1,1,.91782,.91782,.91782,1,.896,.896,.896,.9332,.9332,.95973,1,1.26,1,1,.80479,.80178,1,1,.85633,1,1,1,1,.97276,1,1,1,.698,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.14542,1,.79199,.78694,1.02058,1.03493,1.05486,1,1,1.23026,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.20006,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.MyriadProBoldItalicMetrics={lineHeight:1.2,lineGap:.2};t.MyriadProItalicFactors=[1.36898,1,1,.65507,.84943,.85639,.88465,.88465,.86936,.88307,.86948,.85283,.85283,1.06383,1.02058,.75945,.9219,.75945,1.17337,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.75945,.75945,1.02058,1.02058,1.02058,.69046,.70926,.85158,.77812,.76852,.89591,.70466,.76125,.80094,.86822,.83864,.728,.77212,.79475,.93637,.87514,.8588,.76013,.8588,.72421,.69866,.77598,.85991,.80811,.87832,.78112,.77512,.8562,1.0222,1.18417,1.0222,1.27014,.89903,1.15012,.93859,.94399,.846,.94399,.81453,1.0186,.94219,.96017,1.03075,1.02175,.912,1.03075,.96998,.96017,.93859,.94399,.94399,.95493,.746,1.12658,.94578,.91,.979,.882,.882,.83,.85034,.83537,.85034,1.02058,.70869,.88465,.88465,.88465,.88465,.83537,.90083,1.15012,.9161,.94565,.73541,1.02058,.53609,.69353,.79519,1.08595,1,1,1.15012,1,.91974,.75945,1.15012,1,.9446,.73361,.9005,.9005,.9005,.62864,.85158,.85158,.85158,.85158,.85158,.85158,.773,.76852,.70466,.70466,.70466,.70466,.83864,.83864,.83864,.83864,.90561,.87514,.8588,.8588,.8588,.8588,.8588,1.02058,.85751,.85991,.85991,.85991,.85991,.77512,.76013,.88075,.93859,.93859,.93859,.93859,.93859,.93859,.8075,.846,.81453,.81453,.81453,.81453,.82424,.82424,.82424,.82424,.9278,.96017,.93859,.93859,.93859,.93859,.93859,1.08595,.8562,.94578,.94578,.94578,.94578,.882,.94578,.882,.85158,.93859,.85158,.93859,.85158,.93859,.76852,.846,.76852,.846,.76852,.846,.76852,.846,.89591,.8544,.90561,.94399,.70466,.81453,.70466,.81453,.70466,.81453,.70466,.81453,.70466,.81453,.80094,.94219,.80094,.94219,.80094,.94219,1,1,.86822,.96017,.86822,.96017,.83864,.82424,.83864,.82424,.83864,.82424,.83864,1.03075,.83864,.82424,.81402,1.02738,.728,1.02175,1,1,.912,.79475,1.03075,1,1,.79475,.83911,.79475,.66266,.80553,1.06676,.87514,.96017,1,1,.87514,.96017,.86865,.87396,.96017,.8588,.93859,.8588,.93859,.8588,.93859,.867,.84759,.72421,.95493,1,1,.72421,.95493,.69866,.746,.69866,.746,1,1,.69866,.746,1,1,.77598,.88417,.77598,1.12658,.85991,.94578,.85991,.94578,.85991,.94578,.85991,.94578,.85991,.94578,.85991,.94578,.87832,.979,.77512,.882,.77512,.8562,.83,.8562,.83,.8562,.83,1,.88465,.85158,.93859,.773,.8075,.85751,.8562,1,1,.77598,1.12658,1.15012,1.15012,1.15012,1.15012,1.15012,1.15313,1.15012,1.15012,1.15012,1.08106,1.03901,.85158,.77025,.62264,.7646,.65351,.86026,.69461,.89947,1.03075,.85158,.77812,.76449,.88836,.70466,.8562,.86822,.8588,.83864,.77212,.85308,.93637,.87514,.82352,.8588,.85701,.76013,.89058,.77598,.8156,.82565,.78112,.77899,.89386,.83864,.8156,.9486,.92388,.96186,1.03075,.91123,.9486,.93298,.878,.93942,.92388,.84596,.96186,.95119,1.03075,.922,.88787,.95829,.88,.93559,.93859,.78815,.93758,1,.89217,1.03737,.91123,.93969,.77487,.85769,.86799,1.03075,.91123,.93859,.91123,.86799,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.87832,.979,.87832,.979,.87832,.979,.77512,.882,.9219,1,.89903,1,1,1,.87321,.87321,.87321,1,1.027,1.027,1.027,.86847,.86847,.79121,1,1.124,1,1,.73572,.73572,1,1,.85034,1,1,1,1,.88465,1,1,1,.669,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.04828,1,.74948,.75187,1.02058,.98391,1.02119,1,1,1.06233,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.05233,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.MyriadProItalicMetrics={lineHeight:1.2,lineGap:.2};t.MyriadProRegularFactors=[1.36898,1,1,.76305,.82784,.94935,.89364,.92241,.89073,.90706,.98472,.85283,.85283,1.0664,1.02058,.74505,.9219,.74505,1.23456,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.74505,.74505,1.02058,1.02058,1.02058,.73002,.72601,.91755,.8126,.80314,.92222,.73764,.79726,.83051,.90284,.86023,.74,.8126,.84869,.96518,.91115,.8858,.79761,.8858,.74498,.73914,.81363,.89591,.83659,.89633,.85608,.8111,.90531,1.0222,1.22736,1.0222,1.27014,.89903,.90088,.86667,1.0231,.896,1.01411,.90083,1.05099,1.00512,.99793,1.05326,1.09377,.938,1.06226,1.00119,.99793,.98714,1.0231,1.01231,.98196,.792,1.19137,.99074,.962,1.01915,.926,.942,.856,.85034,.92006,.85034,1.02058,.69067,.92241,.92241,.92241,.92241,.92006,.9332,.90088,.91882,.93484,.75339,1.02058,.56866,.54324,.79519,1.08595,1,1,.90088,1,.95325,.74505,.90088,1,.97198,.75339,.91009,.91009,.91009,.66466,.91755,.91755,.91755,.91755,.91755,.91755,.788,.80314,.73764,.73764,.73764,.73764,.86023,.86023,.86023,.86023,.92915,.91115,.8858,.8858,.8858,.8858,.8858,1.02058,.8858,.89591,.89591,.89591,.89591,.8111,.79611,.89713,.86667,.86667,.86667,.86667,.86667,.86667,.86936,.896,.90083,.90083,.90083,.90083,.84224,.84224,.84224,.84224,.97276,.99793,.98714,.98714,.98714,.98714,.98714,1.08595,.89876,.99074,.99074,.99074,.99074,.942,1.0231,.942,.91755,.86667,.91755,.86667,.91755,.86667,.80314,.896,.80314,.896,.80314,.896,.80314,.896,.92222,.93372,.92915,1.01411,.73764,.90083,.73764,.90083,.73764,.90083,.73764,.90083,.73764,.90083,.83051,1.00512,.83051,1.00512,.83051,1.00512,1,1,.90284,.99793,.90976,.99793,.86023,.84224,.86023,.84224,.86023,.84224,.86023,1.05326,.86023,.84224,.82873,1.07469,.74,1.09377,1,1,.938,.84869,1.06226,1,1,.84869,.83704,.84869,.81441,.85588,1.08927,.91115,.99793,1,1,.91115,.99793,.91887,.90991,.99793,.8858,.98714,.8858,.98714,.8858,.98714,.894,.91434,.74498,.98196,1,1,.74498,.98196,.73914,.792,.73914,.792,1,1,.73914,.792,1,1,.81363,.904,.81363,1.19137,.89591,.99074,.89591,.99074,.89591,.99074,.89591,.99074,.89591,.99074,.89591,.99074,.89633,1.01915,.8111,.942,.8111,.90531,.856,.90531,.856,.90531,.856,1,.92241,.91755,.86667,.788,.86936,.8858,.89876,1,1,.81363,1.19137,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90388,1.03901,.92138,.78105,.7154,.86169,.80513,.94007,.82528,.98612,1.06226,.91755,.8126,.81884,.92819,.73764,.90531,.90284,.8858,.86023,.8126,.91172,.96518,.91115,.83089,.8858,.87791,.79761,.89297,.81363,.88157,.89992,.85608,.81992,.94307,.86023,.88157,.95308,.98699,.99793,1.06226,.95817,.95308,.97358,.928,.98088,.98699,.92761,.99793,.96017,1.06226,.986,.944,.95978,.938,.96705,.98714,.80442,.98972,1,.89762,1.04552,.95817,.99007,.87064,.91879,.88888,1.06226,.95817,.98714,.95817,.88888,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.89633,1.01915,.89633,1.01915,.89633,1.01915,.8111,.942,.9219,1,.89903,1,1,1,.93173,.93173,.93173,1,1.06304,1.06304,1.06904,.89903,.89903,.80549,1,1.156,1,1,.76575,.76575,1,1,.72458,1,1,1,1,.92241,1,1,1,.619,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.07257,1,.74705,.71119,1.02058,1.024,1.02119,1,1,1.1536,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.05638,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.MyriadProRegularMetrics={lineHeight:1.2,lineGap:.2}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.SegoeuiRegularMetrics=t.SegoeuiRegularFactors=t.SegoeuiItalicMetrics=t.SegoeuiItalicFactors=t.SegoeuiBoldMetrics=t.SegoeuiBoldItalicMetrics=t.SegoeuiBoldItalicFactors=t.SegoeuiBoldFactors=void 0;t.SegoeuiBoldFactors=[1.76738,1,1,.99297,.9824,1.04016,1.06497,1.03424,.97529,1.17647,1.23203,1.1085,1.1085,1.16939,1.2107,.9754,1.21408,.9754,1.59578,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,.81378,.81378,1.2107,1.2107,1.2107,.71703,.97847,.97363,.88776,.8641,1.02096,.79795,.85132,.914,1.06085,1.1406,.8007,.89858,.83693,1.14889,1.09398,.97489,.92094,.97489,.90399,.84041,.95923,1.00135,1,1.06467,.98243,.90996,.99361,1.1085,1.56942,1.1085,1.2107,.74627,.94282,.96752,1.01519,.86304,1.01359,.97278,1.15103,1.01359,.98561,1.02285,1.02285,1.00527,1.02285,1.0302,.99041,1.0008,1.01519,1.01359,1.02258,.79104,1.16862,.99041,.97454,1.02511,.99298,.96752,.95801,.94856,1.16579,.94856,1.2107,.9824,1.03424,1.03424,1,1.03424,1.16579,.8727,1.3871,1.18622,1.10818,1.04478,1.2107,1.18622,.75155,.94994,1.28826,1.21408,1.21408,.91056,1,.91572,.9754,.64663,1.18328,1.24866,1.04478,1.14169,1.15749,1.17389,.71703,.97363,.97363,.97363,.97363,.97363,.97363,.93506,.8641,.79795,.79795,.79795,.79795,1.1406,1.1406,1.1406,1.1406,1.02096,1.09398,.97426,.97426,.97426,.97426,.97426,1.2107,.97489,1.00135,1.00135,1.00135,1.00135,.90996,.92094,1.02798,.96752,.96752,.96752,.96752,.96752,.96752,.93136,.86304,.97278,.97278,.97278,.97278,1.02285,1.02285,1.02285,1.02285,.97122,.99041,1,1,1,1,1,1.28826,1.0008,.99041,.99041,.99041,.99041,.96752,1.01519,.96752,.97363,.96752,.97363,.96752,.97363,.96752,.8641,.86304,.8641,.86304,.8641,.86304,.8641,.86304,1.02096,1.03057,1.02096,1.03517,.79795,.97278,.79795,.97278,.79795,.97278,.79795,.97278,.79795,.97278,.914,1.01359,.914,1.01359,.914,1.01359,1,1,1.06085,.98561,1.06085,1.00879,1.1406,1.02285,1.1406,1.02285,1.1406,1.02285,1.1406,1.02285,1.1406,1.02285,.97138,1.08692,.8007,1.02285,1,1,1.00527,.83693,1.02285,1,1,.83693,.9455,.83693,.90418,.83693,1.13005,1.09398,.99041,1,1,1.09398,.99041,.96692,1.09251,.99041,.97489,1.0008,.97489,1.0008,.97489,1.0008,.93994,.97931,.90399,1.02258,1,1,.90399,1.02258,.84041,.79104,.84041,.79104,.84041,.79104,.84041,.79104,1,1,.95923,1.07034,.95923,1.16862,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.06467,1.02511,.90996,.96752,.90996,.99361,.95801,.99361,.95801,.99361,.95801,1.07733,1.03424,.97363,.96752,.93506,.93136,.97489,1.0008,1,1,.95923,1.16862,1.15103,1.15103,1.01173,1.03959,.75953,.81378,.79912,1.15103,1.21994,.95161,.87815,1.01149,.81525,.7676,.98167,1.01134,1.02546,.84097,1.03089,1.18102,.97363,.88776,.85134,.97826,.79795,.99361,1.06085,.97489,1.1406,.89858,1.0388,1.14889,1.09398,.86039,.97489,1.0595,.92094,.94793,.95923,.90996,.99346,.98243,1.02112,.95493,1.1406,.90996,1.03574,1.02597,1.0008,1.18102,1.06628,1.03574,1.0192,1.01932,1.00886,.97531,1.0106,1.0008,1.13189,1.18102,1.02277,.98683,1.0016,.99561,1.07237,1.0008,.90434,.99921,.93803,.8965,1.23085,1.06628,1.04983,.96268,1.0499,.98439,1.18102,1.06628,1.0008,1.06628,.98439,.79795,1,1,1,1,1,1,1,1,1,1,1,1,1.09466,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.97278,1,1,1,1,1,1,1,1,1,1,1,1,1.02065,1,1,1,1,1,1,1.06467,1.02511,1.06467,1.02511,1.06467,1.02511,.90996,.96752,1,1.21408,.89903,1,1,.75155,1.04394,1.04394,1.04394,1.04394,.98633,.98633,.98633,.73047,.73047,1.20642,.91211,1.25635,1.222,1.02956,1.03372,1.03372,.96039,1.24633,1,1.12454,.93503,1.03424,1.19687,1.03424,1,1,1,.771,1,1,1.15749,1.15749,1.15749,1.10948,.86279,.94434,.86279,.94434,.86182,1,1,1.16897,1,.96085,.90137,1.2107,1.18416,1.13973,.69825,.9716,2.10339,1.29004,1.29004,1.21172,1.29004,1.29004,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.18874,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.09193,1.09193,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.SegoeuiBoldMetrics={lineHeight:1.33008,lineGap:0};t.SegoeuiBoldItalicFactors=[1.76738,1,1,.98946,1.03959,1.04016,1.02809,1.036,.97639,1.10953,1.23203,1.11144,1.11144,1.16939,1.21237,.9754,1.21261,.9754,1.59754,1.036,1.036,1.036,1.036,1.036,1.036,1.036,1.036,1.036,1.036,.81378,.81378,1.21237,1.21237,1.21237,.73541,.97847,.97363,.89723,.87897,1.0426,.79429,.85292,.91149,1.05815,1.1406,.79631,.90128,.83853,1.04396,1.10615,.97552,.94436,.97552,.88641,.80527,.96083,1.00135,1,1.06777,.9817,.91142,.99361,1.11144,1.57293,1.11144,1.21237,.74627,1.31818,1.06585,.97042,.83055,.97042,.93503,1.1261,.97042,.97922,1.14236,.94552,1.01054,1.14236,1.02471,.97922,.94165,.97042,.97042,1.0276,.78929,1.1261,.97922,.95874,1.02197,.98507,.96752,.97168,.95107,1.16579,.95107,1.21237,1.03959,1.036,1.036,1,1.036,1.16579,.87357,1.31818,1.18754,1.26781,1.05356,1.21237,1.18622,.79487,.94994,1.29004,1.24047,1.24047,1.31818,1,.91484,.9754,1.31818,1.1349,1.24866,1.05356,1.13934,1.15574,1.17389,.73541,.97363,.97363,.97363,.97363,.97363,.97363,.94385,.87897,.79429,.79429,.79429,.79429,1.1406,1.1406,1.1406,1.1406,1.0426,1.10615,.97552,.97552,.97552,.97552,.97552,1.21237,.97552,1.00135,1.00135,1.00135,1.00135,.91142,.94436,.98721,1.06585,1.06585,1.06585,1.06585,1.06585,1.06585,.96705,.83055,.93503,.93503,.93503,.93503,1.14236,1.14236,1.14236,1.14236,.93125,.97922,.94165,.94165,.94165,.94165,.94165,1.29004,.94165,.97922,.97922,.97922,.97922,.96752,.97042,.96752,.97363,1.06585,.97363,1.06585,.97363,1.06585,.87897,.83055,.87897,.83055,.87897,.83055,.87897,.83055,1.0426,1.0033,1.0426,.97042,.79429,.93503,.79429,.93503,.79429,.93503,.79429,.93503,.79429,.93503,.91149,.97042,.91149,.97042,.91149,.97042,1,1,1.05815,.97922,1.05815,.97922,1.1406,1.14236,1.1406,1.14236,1.1406,1.14236,1.1406,1.14236,1.1406,1.14236,.97441,1.04302,.79631,1.01582,1,1,1.01054,.83853,1.14236,1,1,.83853,1.09125,.83853,.90418,.83853,1.19508,1.10615,.97922,1,1,1.10615,.97922,1.01034,1.10466,.97922,.97552,.94165,.97552,.94165,.97552,.94165,.91602,.91981,.88641,1.0276,1,1,.88641,1.0276,.80527,.78929,.80527,.78929,.80527,.78929,.80527,.78929,1,1,.96083,1.05403,.95923,1.16862,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.06777,1.02197,.91142,.96752,.91142,.99361,.97168,.99361,.97168,.99361,.97168,1.23199,1.036,.97363,1.06585,.94385,.96705,.97552,.94165,1,1,.96083,1.1261,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,.95161,1.27126,1.00811,.83284,.77702,.99137,.95253,1.0347,.86142,1.07205,1.14236,.97363,.89723,.86869,1.09818,.79429,.99361,1.05815,.97552,1.1406,.90128,1.06662,1.04396,1.10615,.84918,.97552,1.04694,.94436,.98015,.96083,.91142,1.00356,.9817,1.01945,.98999,1.1406,.91142,1.04961,.9898,1.00639,1.14236,1.07514,1.04961,.99607,1.02897,1.008,.9898,.95134,1.00639,1.11121,1.14236,1.00518,.97981,1.02186,1,1.08578,.94165,.99314,.98387,.93028,.93377,1.35125,1.07514,1.10687,.93491,1.04232,1.00351,1.14236,1.07514,.94165,1.07514,1.00351,.79429,1,1,1,1,1,1,1,1,1,1,1,1,1.09097,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.93503,1,1,1,1,1,1,1,1,1,1,1,1,.96609,1,1,1,1,1,1,1.06777,1.02197,1.06777,1.02197,1.06777,1.02197,.91142,.96752,1,1.21261,.89903,1,1,.75155,1.04745,1.04745,1.04745,1.04394,.98633,.98633,.98633,.72959,.72959,1.20502,.91406,1.26514,1.222,1.02956,1.03372,1.03372,.96039,1.24633,1,1.09125,.93327,1.03336,1.16541,1.036,1,1,1,.771,1,1,1.15574,1.15574,1.15574,1.15574,.86364,.94434,.86279,.94434,.86224,1,1,1.16798,1,.96085,.90068,1.21237,1.18416,1.13904,.69825,.9716,2.10339,1.29004,1.29004,1.21339,1.29004,1.29004,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.18775,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.13269,1.13269,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.SegoeuiBoldItalicMetrics={lineHeight:1.33008,lineGap:0};t.SegoeuiItalicFactors=[1.76738,1,1,.98946,1.14763,1.05365,1.06234,.96927,.92586,1.15373,1.18414,.91349,.91349,1.07403,1.17308,.78383,1.20088,.78383,1.42531,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.78383,.78383,1.17308,1.17308,1.17308,.77349,.94565,.94729,.85944,.88506,.9858,.74817,.80016,.88449,.98039,.95782,.69238,.89898,.83231,.98183,1.03989,.96924,.86237,.96924,.80595,.74524,.86091,.95402,.94143,.98448,.8858,.83089,.93285,1.0949,1.39016,1.0949,1.45994,.74627,1.04839,.97454,.97454,.87207,.97454,.87533,1.06151,.97454,1.00176,1.16484,1.08132,.98047,1.16484,1.02989,1.01054,.96225,.97454,.97454,1.06598,.79004,1.16344,1.00351,.94629,.9973,.91016,.96777,.9043,.91082,.92481,.91082,1.17308,.95748,.96927,.96927,1,.96927,.92481,.80597,1.04839,1.23393,1.1781,.9245,1.17308,1.20808,.63218,.94261,1.24822,1.09971,1.09971,1.04839,1,.85273,.78032,1.04839,1.09971,1.22326,.9245,1.09836,1.13525,1.15222,.70424,.94729,.94729,.94729,.94729,.94729,.94729,.85498,.88506,.74817,.74817,.74817,.74817,.95782,.95782,.95782,.95782,.9858,1.03989,.96924,.96924,.96924,.96924,.96924,1.17308,.96924,.95402,.95402,.95402,.95402,.83089,.86237,.88409,.97454,.97454,.97454,.97454,.97454,.97454,.92916,.87207,.87533,.87533,.87533,.87533,.93146,.93146,.93146,.93146,.93854,1.01054,.96225,.96225,.96225,.96225,.96225,1.24822,.8761,1.00351,1.00351,1.00351,1.00351,.96777,.97454,.96777,.94729,.97454,.94729,.97454,.94729,.97454,.88506,.87207,.88506,.87207,.88506,.87207,.88506,.87207,.9858,.95391,.9858,.97454,.74817,.87533,.74817,.87533,.74817,.87533,.74817,.87533,.74817,.87533,.88449,.97454,.88449,.97454,.88449,.97454,1,1,.98039,1.00176,.98039,1.00176,.95782,.93146,.95782,.93146,.95782,.93146,.95782,1.16484,.95782,.93146,.84421,1.12761,.69238,1.08132,1,1,.98047,.83231,1.16484,1,1,.84723,1.04861,.84723,.78755,.83231,1.23736,1.03989,1.01054,1,1,1.03989,1.01054,.9857,1.03849,1.01054,.96924,.96225,.96924,.96225,.96924,.96225,.92383,.90171,.80595,1.06598,1,1,.80595,1.06598,.74524,.79004,.74524,.79004,.74524,.79004,.74524,.79004,1,1,.86091,1.02759,.85771,1.16344,.95402,1.00351,.95402,1.00351,.95402,1.00351,.95402,1.00351,.95402,1.00351,.95402,1.00351,.98448,.9973,.83089,.96777,.83089,.93285,.9043,.93285,.9043,.93285,.9043,1.31868,.96927,.94729,.97454,.85498,.92916,.96924,.8761,1,1,.86091,1.16344,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,.81965,.81965,.94729,.78032,.71022,.90883,.84171,.99877,.77596,1.05734,1.2,.94729,.85944,.82791,.9607,.74817,.93285,.98039,.96924,.95782,.89898,.98316,.98183,1.03989,.78614,.96924,.97642,.86237,.86075,.86091,.83089,.90082,.8858,.97296,1.01284,.95782,.83089,1.0976,1.04,1.03342,1.2,1.0675,1.0976,.98205,1.03809,1.05097,1.04,.95364,1.03342,1.05401,1.2,1.02148,1.0119,1.04724,1.0127,1.02732,.96225,.8965,.97783,.93574,.94818,1.30679,1.0675,1.11826,.99821,1.0557,1.0326,1.2,1.0675,.96225,1.0675,1.0326,.74817,1,1,1,1,1,1,1,1,1,1,1,1,1.03754,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.87533,1,1,1,1,1,1,1,1,1,1,1,1,.98705,1,1,1,1,1,1,.98448,.9973,.98448,.9973,.98448,.9973,.83089,.96777,1,1.20088,.89903,1,1,.75155,.94945,.94945,.94945,.94945,1.12317,1.12317,1.12317,.67603,.67603,1.15621,.73584,1.21191,1.22135,1.06483,.94868,.94868,.95996,1.24633,1,1.07497,.87709,.96927,1.01473,.96927,1,1,1,.77295,1,1,1.09836,1.09836,1.09836,1.01522,.86321,.94434,.8649,.94434,.86182,1,1,1.083,1,.91578,.86438,1.17308,1.18416,1.14589,.69825,.97622,1.96791,1.24822,1.24822,1.17308,1.24822,1.24822,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.17984,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.10742,1.10742,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.SegoeuiItalicMetrics={lineHeight:1.33008,lineGap:0};t.SegoeuiRegularFactors=[1.76738,1,1,.98594,1.02285,1.10454,1.06234,.96927,.92037,1.19985,1.2046,.90616,.90616,1.07152,1.1714,.78032,1.20088,.78032,1.40246,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.78032,.78032,1.1714,1.1714,1.1714,.80597,.94084,.96706,.85944,.85734,.97093,.75842,.79936,.88198,.9831,.95782,.71387,.86969,.84636,1.07796,1.03584,.96924,.83968,.96924,.82826,.79649,.85771,.95132,.93119,.98965,.88433,.8287,.93365,1.08612,1.3638,1.08612,1.45786,.74627,.80499,.91484,1.05707,.92383,1.05882,.9403,1.12654,1.05882,1.01756,1.09011,1.09011,.99414,1.09011,1.034,1.01756,1.05356,1.05707,1.05882,1.04399,.84863,1.21968,1.01756,.95801,1.00068,.91797,.96777,.9043,.90351,.92105,.90351,1.1714,.85337,.96927,.96927,.99912,.96927,.92105,.80597,1.2434,1.20808,1.05937,.90957,1.1714,1.20808,.75155,.94261,1.24644,1.09971,1.09971,.84751,1,.85273,.78032,.61584,1.05425,1.17914,.90957,1.08665,1.11593,1.14169,.73381,.96706,.96706,.96706,.96706,.96706,.96706,.86035,.85734,.75842,.75842,.75842,.75842,.95782,.95782,.95782,.95782,.97093,1.03584,.96924,.96924,.96924,.96924,.96924,1.1714,.96924,.95132,.95132,.95132,.95132,.8287,.83968,.89049,.91484,.91484,.91484,.91484,.91484,.91484,.93575,.92383,.9403,.9403,.9403,.9403,.8717,.8717,.8717,.8717,1.00527,1.01756,1.05356,1.05356,1.05356,1.05356,1.05356,1.24644,.95923,1.01756,1.01756,1.01756,1.01756,.96777,1.05707,.96777,.96706,.91484,.96706,.91484,.96706,.91484,.85734,.92383,.85734,.92383,.85734,.92383,.85734,.92383,.97093,1.0969,.97093,1.05882,.75842,.9403,.75842,.9403,.75842,.9403,.75842,.9403,.75842,.9403,.88198,1.05882,.88198,1.05882,.88198,1.05882,1,1,.9831,1.01756,.9831,1.01756,.95782,.8717,.95782,.8717,.95782,.8717,.95782,1.09011,.95782,.8717,.84784,1.11551,.71387,1.09011,1,1,.99414,.84636,1.09011,1,1,.84636,1.0536,.84636,.94298,.84636,1.23297,1.03584,1.01756,1,1,1.03584,1.01756,1.00323,1.03444,1.01756,.96924,1.05356,.96924,1.05356,.96924,1.05356,.93066,.98293,.82826,1.04399,1,1,.82826,1.04399,.79649,.84863,.79649,.84863,.79649,.84863,.79649,.84863,1,1,.85771,1.17318,.85771,1.21968,.95132,1.01756,.95132,1.01756,.95132,1.01756,.95132,1.01756,.95132,1.01756,.95132,1.01756,.98965,1.00068,.8287,.96777,.8287,.93365,.9043,.93365,.9043,.93365,.9043,1.08571,.96927,.96706,.91484,.86035,.93575,.96924,.95923,1,1,.85771,1.21968,1.11437,1.11437,.93109,.91202,.60411,.84164,.55572,1.01173,.97361,.81818,.81818,.96635,.78032,.72727,.92366,.98601,1.03405,.77968,1.09799,1.2,.96706,.85944,.85638,.96491,.75842,.93365,.9831,.96924,.95782,.86969,.94152,1.07796,1.03584,.78437,.96924,.98715,.83968,.83491,.85771,.8287,.94492,.88433,.9287,1.0098,.95782,.8287,1.0625,.98248,1.03424,1.2,1.01071,1.0625,.95246,1.03809,1.04912,.98248,1.00221,1.03424,1.05443,1.2,1.04785,.99609,1.00169,1.05176,.99346,1.05356,.9087,1.03004,.95542,.93117,1.23362,1.01071,1.07831,1.02512,1.05205,1.03502,1.2,1.01071,1.05356,1.01071,1.03502,.75842,1,1,1,1,1,1,1,1,1,1,1,1,1.03719,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.9403,1,1,1,1,1,1,1,1,1,1,1,1,1.04021,1,1,1,1,1,1,.98965,1.00068,.98965,1.00068,.98965,1.00068,.8287,.96777,1,1.20088,.89903,1,1,.75155,1.03077,1.03077,1.03077,1.03077,1.13196,1.13196,1.13196,.67428,.67428,1.16039,.73291,1.20996,1.22135,1.06483,.94868,.94868,.95996,1.24633,1,1.07497,.87796,.96927,1.01518,.96927,1,1,1,.77295,1,1,1.10539,1.10539,1.11358,1.06967,.86279,.94434,.86279,.94434,.86182,1,1,1.083,1,.91578,.86507,1.1714,1.18416,1.14589,.69825,.97622,1.9697,1.24822,1.24822,1.17238,1.24822,1.24822,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.18083,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.10938,1.10938,1,1,1,1.05425,1.09971,1.09971,1.09971,1,1,1,1,1,1,1,1,1,1,1];t.SegoeuiRegularMetrics={lineHeight:1.33008,lineGap:0}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.SEAC_ANALYSIS_ENABLED=t.MacStandardGlyphOrdering=t.FontFlags=void 0;t.getFontType=function getFontType(e,t,a=!1){switch(e){case"Type1":return a?r.FontType.TYPE1STANDARD:"Type1C"===t?r.FontType.TYPE1C:r.FontType.TYPE1;case"CIDFontType0":return"CIDFontType0C"===t?r.FontType.CIDFONTTYPE0C:r.FontType.CIDFONTTYPE0;case"OpenType":return r.FontType.OPENTYPE;case"TrueType":return r.FontType.TRUETYPE;case"CIDFontType2":return r.FontType.CIDFONTTYPE2;case"MMType1":return r.FontType.MMTYPE1;case"Type0":return r.FontType.TYPE0;default:return r.FontType.UNKNOWN}};t.normalizeFontName=function normalizeFontName(e){return e.replace(/[,_]/g,"-").replace(/\s/g,"")};t.recoverGlyphName=recoverGlyphName;t.type1FontGlyphMapping=function type1FontGlyphMapping(e,t,a){const r=Object.create(null);let s,c,l;const h=!!(e.flags&o.Symbolic);if(e.isInternalFont){l=t;for(c=0;c=0?s:0}}else if(e.baseEncodingName){l=(0,n.getEncoding)(e.baseEncodingName);for(c=0;c=0?s:0}}else if(h)for(c in t)r[c]=t[c];else{l=n.StandardEncoding;for(c=0;c=0?s:0}}const u=e.differences;let d;if(u)for(c in u){const e=u[c];s=a.indexOf(e);if(-1===s){d||(d=(0,i.getGlyphsUnicode)());const t=recoverGlyphName(e,d);t!==e&&(s=a.indexOf(t))}r[c]=s>=0?s:0}return r};var r=a(2),n=a(19),i=a(20),s=a(21);t.SEAC_ANALYSIS_ENABLED=!0;const o={FixedPitch:1,Serif:2,Symbolic:4,Script:8,Nonsymbolic:32,Italic:64,AllCap:65536,SmallCap:131072,ForceBold:262144};t.FontFlags=o;t.MacStandardGlyphOrdering=[".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","nonbreakingspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron","Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth","Yacute","yacute","Thorn","thorn","minus","multiply","onesuperior","twosuperior","threesuperior","onehalf","onequarter","threequarters","franc","Gbreve","gbreve","Idotaccent","Scedilla","scedilla","Cacute","cacute","Ccaron","ccaron","dcroat"];function recoverGlyphName(e,t){if(void 0!==t[e])return e;const a=(0,s.getUnicodeForGlyph)(e,t);if(-1!==a)for(const e in t)if(t[e]===a)return e;(0,r.info)("Unable to recover a standard glyph name for: "+e);return e}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ZapfDingbatsEncoding=t.WinAnsiEncoding=t.SymbolSetEncoding=t.StandardEncoding=t.MacRomanEncoding=t.ExpertEncoding=void 0;t.getEncoding=function getEncoding(e){switch(e){case"WinAnsiEncoding":return s;case"StandardEncoding":return i;case"MacRomanEncoding":return n;case"SymbolSetEncoding":return o;case"ZapfDingbatsEncoding":return c;case"ExpertEncoding":return a;case"MacExpertEncoding":return r;default:return null}};const a=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"];t.ExpertEncoding=a;const r=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","centoldstyle","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","","threequartersemdash","","questionsmall","","","","","Ethsmall","","","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","","","","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hypheninferior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","asuperior","centsuperior","","","","","Aacutesmall","Agravesmall","Acircumflexsmall","Adieresissmall","Atildesmall","Aringsmall","Ccedillasmall","Eacutesmall","Egravesmall","Ecircumflexsmall","Edieresissmall","Iacutesmall","Igravesmall","Icircumflexsmall","Idieresissmall","Ntildesmall","Oacutesmall","Ogravesmall","Ocircumflexsmall","Odieresissmall","Otildesmall","Uacutesmall","Ugravesmall","Ucircumflexsmall","Udieresissmall","","eightsuperior","fourinferior","threeinferior","sixinferior","eightinferior","seveninferior","Scaronsmall","","centinferior","twoinferior","","Dieresissmall","","Caronsmall","osuperior","fiveinferior","","commainferior","periodinferior","Yacutesmall","","dollarinferior","","","Thornsmall","","nineinferior","zeroinferior","Zcaronsmall","AEsmall","Oslashsmall","questiondownsmall","oneinferior","Lslashsmall","","","","","","","Cedillasmall","","","","","","OEsmall","figuredash","hyphensuperior","","","","","exclamdownsmall","","Ydieresissmall","","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","ninesuperior","zerosuperior","","esuperior","rsuperior","tsuperior","","","isuperior","ssuperior","dsuperior","","","","","","lsuperior","Ogoneksmall","Brevesmall","Macronsmall","bsuperior","nsuperior","msuperior","commasuperior","periodsuperior","Dotaccentsmall","Ringsmall","","","",""],n=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","space","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron"];t.MacRomanEncoding=n;const i=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls","","","",""];t.StandardEncoding=i;const s=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","bullet","Euro","bullet","quotesinglbase","florin","quotedblbase","ellipsis","dagger","daggerdbl","circumflex","perthousand","Scaron","guilsinglleft","OE","bullet","Zcaron","bullet","bullet","quoteleft","quoteright","quotedblleft","quotedblright","bullet","endash","emdash","tilde","trademark","scaron","guilsinglright","oe","bullet","zcaron","Ydieresis","space","exclamdown","cent","sterling","currency","yen","brokenbar","section","dieresis","copyright","ordfeminine","guillemotleft","logicalnot","hyphen","registered","macron","degree","plusminus","twosuperior","threesuperior","acute","mu","paragraph","periodcentered","cedilla","onesuperior","ordmasculine","guillemotright","onequarter","onehalf","threequarters","questiondown","Agrave","Aacute","Acircumflex","Atilde","Adieresis","Aring","AE","Ccedilla","Egrave","Eacute","Ecircumflex","Edieresis","Igrave","Iacute","Icircumflex","Idieresis","Eth","Ntilde","Ograve","Oacute","Ocircumflex","Otilde","Odieresis","multiply","Oslash","Ugrave","Uacute","Ucircumflex","Udieresis","Yacute","Thorn","germandbls","agrave","aacute","acircumflex","atilde","adieresis","aring","ae","ccedilla","egrave","eacute","ecircumflex","edieresis","igrave","iacute","icircumflex","idieresis","eth","ntilde","ograve","oacute","ocircumflex","otilde","odieresis","divide","oslash","ugrave","uacute","ucircumflex","udieresis","yacute","thorn","ydieresis"];t.WinAnsiEncoding=s;const o=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","universal","numbersign","existential","percent","ampersand","suchthat","parenleft","parenright","asteriskmath","plus","comma","minus","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","congruent","Alpha","Beta","Chi","Delta","Epsilon","Phi","Gamma","Eta","Iota","theta1","Kappa","Lambda","Mu","Nu","Omicron","Pi","Theta","Rho","Sigma","Tau","Upsilon","sigma1","Omega","Xi","Psi","Zeta","bracketleft","therefore","bracketright","perpendicular","underscore","radicalex","alpha","beta","chi","delta","epsilon","phi","gamma","eta","iota","phi1","kappa","lambda","mu","nu","omicron","pi","theta","rho","sigma","tau","upsilon","omega1","omega","xi","psi","zeta","braceleft","bar","braceright","similar","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Euro","Upsilon1","minute","lessequal","fraction","infinity","florin","club","diamond","heart","spade","arrowboth","arrowleft","arrowup","arrowright","arrowdown","degree","plusminus","second","greaterequal","multiply","proportional","partialdiff","bullet","divide","notequal","equivalence","approxequal","ellipsis","arrowvertex","arrowhorizex","carriagereturn","aleph","Ifraktur","Rfraktur","weierstrass","circlemultiply","circleplus","emptyset","intersection","union","propersuperset","reflexsuperset","notsubset","propersubset","reflexsubset","element","notelement","angle","gradient","registerserif","copyrightserif","trademarkserif","product","radical","dotmath","logicalnot","logicaland","logicalor","arrowdblboth","arrowdblleft","arrowdblup","arrowdblright","arrowdbldown","lozenge","angleleft","registersans","copyrightsans","trademarksans","summation","parenlefttp","parenleftex","parenleftbt","bracketlefttp","bracketleftex","bracketleftbt","bracelefttp","braceleftmid","braceleftbt","braceex","","angleright","integral","integraltp","integralex","integralbt","parenrighttp","parenrightex","parenrightbt","bracketrighttp","bracketrightex","bracketrightbt","bracerighttp","bracerightmid","bracerightbt",""];t.SymbolSetEncoding=o;const c=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","a1","a2","a202","a3","a4","a5","a119","a118","a117","a11","a12","a13","a14","a15","a16","a105","a17","a18","a19","a20","a21","a22","a23","a24","a25","a26","a27","a28","a6","a7","a8","a9","a10","a29","a30","a31","a32","a33","a34","a35","a36","a37","a38","a39","a40","a41","a42","a43","a44","a45","a46","a47","a48","a49","a50","a51","a52","a53","a54","a55","a56","a57","a58","a59","a60","a61","a62","a63","a64","a65","a66","a67","a68","a69","a70","a71","a72","a73","a74","a203","a75","a204","a76","a77","a78","a79","a81","a82","a83","a84","a97","a98","a99","a100","","a89","a90","a93","a94","a91","a92","a205","a85","a206","a86","a87","a88","a95","a96","","","","","","","","","","","","","","","","","","","","a101","a102","a103","a104","a106","a107","a108","a112","a111","a110","a109","a120","a121","a122","a123","a124","a125","a126","a127","a128","a129","a130","a131","a132","a133","a134","a135","a136","a137","a138","a139","a140","a141","a142","a143","a144","a145","a146","a147","a148","a149","a150","a151","a152","a153","a154","a155","a156","a157","a158","a159","a160","a161","a163","a164","a196","a165","a192","a166","a167","a168","a169","a170","a171","a172","a173","a162","a174","a175","a176","a177","a178","a179","a193","a180","a199","a181","a200","a182","","a201","a183","a184","a197","a185","a194","a198","a186","a195","a187","a188","a189","a190","a191",""];t.ZapfDingbatsEncoding=c},(e,t,a)=>{a.r(t);a.d(t,{getDingbatsGlyphsUnicode:()=>i,getGlyphsUnicode:()=>n});var r=a(8);const n=(0,r.getArrayLookupTableFactory)((function(){return["A",65,"AE",198,"AEacute",508,"AEmacron",482,"AEsmall",63462,"Aacute",193,"Aacutesmall",63457,"Abreve",258,"Abreveacute",7854,"Abrevecyrillic",1232,"Abrevedotbelow",7862,"Abrevegrave",7856,"Abrevehookabove",7858,"Abrevetilde",7860,"Acaron",461,"Acircle",9398,"Acircumflex",194,"Acircumflexacute",7844,"Acircumflexdotbelow",7852,"Acircumflexgrave",7846,"Acircumflexhookabove",7848,"Acircumflexsmall",63458,"Acircumflextilde",7850,"Acute",63177,"Acutesmall",63412,"Acyrillic",1040,"Adblgrave",512,"Adieresis",196,"Adieresiscyrillic",1234,"Adieresismacron",478,"Adieresissmall",63460,"Adotbelow",7840,"Adotmacron",480,"Agrave",192,"Agravesmall",63456,"Ahookabove",7842,"Aiecyrillic",1236,"Ainvertedbreve",514,"Alpha",913,"Alphatonos",902,"Amacron",256,"Amonospace",65313,"Aogonek",260,"Aring",197,"Aringacute",506,"Aringbelow",7680,"Aringsmall",63461,"Asmall",63329,"Atilde",195,"Atildesmall",63459,"Aybarmenian",1329,"B",66,"Bcircle",9399,"Bdotaccent",7682,"Bdotbelow",7684,"Becyrillic",1041,"Benarmenian",1330,"Beta",914,"Bhook",385,"Blinebelow",7686,"Bmonospace",65314,"Brevesmall",63220,"Bsmall",63330,"Btopbar",386,"C",67,"Caarmenian",1342,"Cacute",262,"Caron",63178,"Caronsmall",63221,"Ccaron",268,"Ccedilla",199,"Ccedillaacute",7688,"Ccedillasmall",63463,"Ccircle",9400,"Ccircumflex",264,"Cdot",266,"Cdotaccent",266,"Cedillasmall",63416,"Chaarmenian",1353,"Cheabkhasiancyrillic",1212,"Checyrillic",1063,"Chedescenderabkhasiancyrillic",1214,"Chedescendercyrillic",1206,"Chedieresiscyrillic",1268,"Cheharmenian",1347,"Chekhakassiancyrillic",1227,"Cheverticalstrokecyrillic",1208,"Chi",935,"Chook",391,"Circumflexsmall",63222,"Cmonospace",65315,"Coarmenian",1361,"Csmall",63331,"D",68,"DZ",497,"DZcaron",452,"Daarmenian",1332,"Dafrican",393,"Dcaron",270,"Dcedilla",7696,"Dcircle",9401,"Dcircumflexbelow",7698,"Dcroat",272,"Ddotaccent",7690,"Ddotbelow",7692,"Decyrillic",1044,"Deicoptic",1006,"Delta",8710,"Deltagreek",916,"Dhook",394,"Dieresis",63179,"DieresisAcute",63180,"DieresisGrave",63181,"Dieresissmall",63400,"Digammagreek",988,"Djecyrillic",1026,"Dlinebelow",7694,"Dmonospace",65316,"Dotaccentsmall",63223,"Dslash",272,"Dsmall",63332,"Dtopbar",395,"Dz",498,"Dzcaron",453,"Dzeabkhasiancyrillic",1248,"Dzecyrillic",1029,"Dzhecyrillic",1039,"E",69,"Eacute",201,"Eacutesmall",63465,"Ebreve",276,"Ecaron",282,"Ecedillabreve",7708,"Echarmenian",1333,"Ecircle",9402,"Ecircumflex",202,"Ecircumflexacute",7870,"Ecircumflexbelow",7704,"Ecircumflexdotbelow",7878,"Ecircumflexgrave",7872,"Ecircumflexhookabove",7874,"Ecircumflexsmall",63466,"Ecircumflextilde",7876,"Ecyrillic",1028,"Edblgrave",516,"Edieresis",203,"Edieresissmall",63467,"Edot",278,"Edotaccent",278,"Edotbelow",7864,"Efcyrillic",1060,"Egrave",200,"Egravesmall",63464,"Eharmenian",1335,"Ehookabove",7866,"Eightroman",8551,"Einvertedbreve",518,"Eiotifiedcyrillic",1124,"Elcyrillic",1051,"Elevenroman",8554,"Emacron",274,"Emacronacute",7702,"Emacrongrave",7700,"Emcyrillic",1052,"Emonospace",65317,"Encyrillic",1053,"Endescendercyrillic",1186,"Eng",330,"Enghecyrillic",1188,"Enhookcyrillic",1223,"Eogonek",280,"Eopen",400,"Epsilon",917,"Epsilontonos",904,"Ercyrillic",1056,"Ereversed",398,"Ereversedcyrillic",1069,"Escyrillic",1057,"Esdescendercyrillic",1194,"Esh",425,"Esmall",63333,"Eta",919,"Etarmenian",1336,"Etatonos",905,"Eth",208,"Ethsmall",63472,"Etilde",7868,"Etildebelow",7706,"Euro",8364,"Ezh",439,"Ezhcaron",494,"Ezhreversed",440,"F",70,"Fcircle",9403,"Fdotaccent",7710,"Feharmenian",1366,"Feicoptic",996,"Fhook",401,"Fitacyrillic",1138,"Fiveroman",8548,"Fmonospace",65318,"Fourroman",8547,"Fsmall",63334,"G",71,"GBsquare",13191,"Gacute",500,"Gamma",915,"Gammaafrican",404,"Gangiacoptic",1002,"Gbreve",286,"Gcaron",486,"Gcedilla",290,"Gcircle",9404,"Gcircumflex",284,"Gcommaaccent",290,"Gdot",288,"Gdotaccent",288,"Gecyrillic",1043,"Ghadarmenian",1346,"Ghemiddlehookcyrillic",1172,"Ghestrokecyrillic",1170,"Gheupturncyrillic",1168,"Ghook",403,"Gimarmenian",1331,"Gjecyrillic",1027,"Gmacron",7712,"Gmonospace",65319,"Grave",63182,"Gravesmall",63328,"Gsmall",63335,"Gsmallhook",667,"Gstroke",484,"H",72,"H18533",9679,"H18543",9642,"H18551",9643,"H22073",9633,"HPsquare",13259,"Haabkhasiancyrillic",1192,"Hadescendercyrillic",1202,"Hardsigncyrillic",1066,"Hbar",294,"Hbrevebelow",7722,"Hcedilla",7720,"Hcircle",9405,"Hcircumflex",292,"Hdieresis",7718,"Hdotaccent",7714,"Hdotbelow",7716,"Hmonospace",65320,"Hoarmenian",1344,"Horicoptic",1e3,"Hsmall",63336,"Hungarumlaut",63183,"Hungarumlautsmall",63224,"Hzsquare",13200,"I",73,"IAcyrillic",1071,"IJ",306,"IUcyrillic",1070,"Iacute",205,"Iacutesmall",63469,"Ibreve",300,"Icaron",463,"Icircle",9406,"Icircumflex",206,"Icircumflexsmall",63470,"Icyrillic",1030,"Idblgrave",520,"Idieresis",207,"Idieresisacute",7726,"Idieresiscyrillic",1252,"Idieresissmall",63471,"Idot",304,"Idotaccent",304,"Idotbelow",7882,"Iebrevecyrillic",1238,"Iecyrillic",1045,"Ifraktur",8465,"Igrave",204,"Igravesmall",63468,"Ihookabove",7880,"Iicyrillic",1048,"Iinvertedbreve",522,"Iishortcyrillic",1049,"Imacron",298,"Imacroncyrillic",1250,"Imonospace",65321,"Iniarmenian",1339,"Iocyrillic",1025,"Iogonek",302,"Iota",921,"Iotaafrican",406,"Iotadieresis",938,"Iotatonos",906,"Ismall",63337,"Istroke",407,"Itilde",296,"Itildebelow",7724,"Izhitsacyrillic",1140,"Izhitsadblgravecyrillic",1142,"J",74,"Jaarmenian",1345,"Jcircle",9407,"Jcircumflex",308,"Jecyrillic",1032,"Jheharmenian",1355,"Jmonospace",65322,"Jsmall",63338,"K",75,"KBsquare",13189,"KKsquare",13261,"Kabashkircyrillic",1184,"Kacute",7728,"Kacyrillic",1050,"Kadescendercyrillic",1178,"Kahookcyrillic",1219,"Kappa",922,"Kastrokecyrillic",1182,"Kaverticalstrokecyrillic",1180,"Kcaron",488,"Kcedilla",310,"Kcircle",9408,"Kcommaaccent",310,"Kdotbelow",7730,"Keharmenian",1364,"Kenarmenian",1343,"Khacyrillic",1061,"Kheicoptic",998,"Khook",408,"Kjecyrillic",1036,"Klinebelow",7732,"Kmonospace",65323,"Koppacyrillic",1152,"Koppagreek",990,"Ksicyrillic",1134,"Ksmall",63339,"L",76,"LJ",455,"LL",63167,"Lacute",313,"Lambda",923,"Lcaron",317,"Lcedilla",315,"Lcircle",9409,"Lcircumflexbelow",7740,"Lcommaaccent",315,"Ldot",319,"Ldotaccent",319,"Ldotbelow",7734,"Ldotbelowmacron",7736,"Liwnarmenian",1340,"Lj",456,"Ljecyrillic",1033,"Llinebelow",7738,"Lmonospace",65324,"Lslash",321,"Lslashsmall",63225,"Lsmall",63340,"M",77,"MBsquare",13190,"Macron",63184,"Macronsmall",63407,"Macute",7742,"Mcircle",9410,"Mdotaccent",7744,"Mdotbelow",7746,"Menarmenian",1348,"Mmonospace",65325,"Msmall",63341,"Mturned",412,"Mu",924,"N",78,"NJ",458,"Nacute",323,"Ncaron",327,"Ncedilla",325,"Ncircle",9411,"Ncircumflexbelow",7754,"Ncommaaccent",325,"Ndotaccent",7748,"Ndotbelow",7750,"Nhookleft",413,"Nineroman",8552,"Nj",459,"Njecyrillic",1034,"Nlinebelow",7752,"Nmonospace",65326,"Nowarmenian",1350,"Nsmall",63342,"Ntilde",209,"Ntildesmall",63473,"Nu",925,"O",79,"OE",338,"OEsmall",63226,"Oacute",211,"Oacutesmall",63475,"Obarredcyrillic",1256,"Obarreddieresiscyrillic",1258,"Obreve",334,"Ocaron",465,"Ocenteredtilde",415,"Ocircle",9412,"Ocircumflex",212,"Ocircumflexacute",7888,"Ocircumflexdotbelow",7896,"Ocircumflexgrave",7890,"Ocircumflexhookabove",7892,"Ocircumflexsmall",63476,"Ocircumflextilde",7894,"Ocyrillic",1054,"Odblacute",336,"Odblgrave",524,"Odieresis",214,"Odieresiscyrillic",1254,"Odieresissmall",63478,"Odotbelow",7884,"Ogoneksmall",63227,"Ograve",210,"Ogravesmall",63474,"Oharmenian",1365,"Ohm",8486,"Ohookabove",7886,"Ohorn",416,"Ohornacute",7898,"Ohorndotbelow",7906,"Ohorngrave",7900,"Ohornhookabove",7902,"Ohorntilde",7904,"Ohungarumlaut",336,"Oi",418,"Oinvertedbreve",526,"Omacron",332,"Omacronacute",7762,"Omacrongrave",7760,"Omega",8486,"Omegacyrillic",1120,"Omegagreek",937,"Omegaroundcyrillic",1146,"Omegatitlocyrillic",1148,"Omegatonos",911,"Omicron",927,"Omicrontonos",908,"Omonospace",65327,"Oneroman",8544,"Oogonek",490,"Oogonekmacron",492,"Oopen",390,"Oslash",216,"Oslashacute",510,"Oslashsmall",63480,"Osmall",63343,"Ostrokeacute",510,"Otcyrillic",1150,"Otilde",213,"Otildeacute",7756,"Otildedieresis",7758,"Otildesmall",63477,"P",80,"Pacute",7764,"Pcircle",9413,"Pdotaccent",7766,"Pecyrillic",1055,"Peharmenian",1354,"Pemiddlehookcyrillic",1190,"Phi",934,"Phook",420,"Pi",928,"Piwrarmenian",1363,"Pmonospace",65328,"Psi",936,"Psicyrillic",1136,"Psmall",63344,"Q",81,"Qcircle",9414,"Qmonospace",65329,"Qsmall",63345,"R",82,"Raarmenian",1356,"Racute",340,"Rcaron",344,"Rcedilla",342,"Rcircle",9415,"Rcommaaccent",342,"Rdblgrave",528,"Rdotaccent",7768,"Rdotbelow",7770,"Rdotbelowmacron",7772,"Reharmenian",1360,"Rfraktur",8476,"Rho",929,"Ringsmall",63228,"Rinvertedbreve",530,"Rlinebelow",7774,"Rmonospace",65330,"Rsmall",63346,"Rsmallinverted",641,"Rsmallinvertedsuperior",694,"S",83,"SF010000",9484,"SF020000",9492,"SF030000",9488,"SF040000",9496,"SF050000",9532,"SF060000",9516,"SF070000",9524,"SF080000",9500,"SF090000",9508,"SF100000",9472,"SF110000",9474,"SF190000",9569,"SF200000",9570,"SF210000",9558,"SF220000",9557,"SF230000",9571,"SF240000",9553,"SF250000",9559,"SF260000",9565,"SF270000",9564,"SF280000",9563,"SF360000",9566,"SF370000",9567,"SF380000",9562,"SF390000",9556,"SF400000",9577,"SF410000",9574,"SF420000",9568,"SF430000",9552,"SF440000",9580,"SF450000",9575,"SF460000",9576,"SF470000",9572,"SF480000",9573,"SF490000",9561,"SF500000",9560,"SF510000",9554,"SF520000",9555,"SF530000",9579,"SF540000",9578,"Sacute",346,"Sacutedotaccent",7780,"Sampigreek",992,"Scaron",352,"Scarondotaccent",7782,"Scaronsmall",63229,"Scedilla",350,"Schwa",399,"Schwacyrillic",1240,"Schwadieresiscyrillic",1242,"Scircle",9416,"Scircumflex",348,"Scommaaccent",536,"Sdotaccent",7776,"Sdotbelow",7778,"Sdotbelowdotaccent",7784,"Seharmenian",1357,"Sevenroman",8550,"Shaarmenian",1351,"Shacyrillic",1064,"Shchacyrillic",1065,"Sheicoptic",994,"Shhacyrillic",1210,"Shimacoptic",1004,"Sigma",931,"Sixroman",8549,"Smonospace",65331,"Softsigncyrillic",1068,"Ssmall",63347,"Stigmagreek",986,"T",84,"Tau",932,"Tbar",358,"Tcaron",356,"Tcedilla",354,"Tcircle",9417,"Tcircumflexbelow",7792,"Tcommaaccent",354,"Tdotaccent",7786,"Tdotbelow",7788,"Tecyrillic",1058,"Tedescendercyrillic",1196,"Tenroman",8553,"Tetsecyrillic",1204,"Theta",920,"Thook",428,"Thorn",222,"Thornsmall",63486,"Threeroman",8546,"Tildesmall",63230,"Tiwnarmenian",1359,"Tlinebelow",7790,"Tmonospace",65332,"Toarmenian",1337,"Tonefive",444,"Tonesix",388,"Tonetwo",423,"Tretroflexhook",430,"Tsecyrillic",1062,"Tshecyrillic",1035,"Tsmall",63348,"Twelveroman",8555,"Tworoman",8545,"U",85,"Uacute",218,"Uacutesmall",63482,"Ubreve",364,"Ucaron",467,"Ucircle",9418,"Ucircumflex",219,"Ucircumflexbelow",7798,"Ucircumflexsmall",63483,"Ucyrillic",1059,"Udblacute",368,"Udblgrave",532,"Udieresis",220,"Udieresisacute",471,"Udieresisbelow",7794,"Udieresiscaron",473,"Udieresiscyrillic",1264,"Udieresisgrave",475,"Udieresismacron",469,"Udieresissmall",63484,"Udotbelow",7908,"Ugrave",217,"Ugravesmall",63481,"Uhookabove",7910,"Uhorn",431,"Uhornacute",7912,"Uhorndotbelow",7920,"Uhorngrave",7914,"Uhornhookabove",7916,"Uhorntilde",7918,"Uhungarumlaut",368,"Uhungarumlautcyrillic",1266,"Uinvertedbreve",534,"Ukcyrillic",1144,"Umacron",362,"Umacroncyrillic",1262,"Umacrondieresis",7802,"Umonospace",65333,"Uogonek",370,"Upsilon",933,"Upsilon1",978,"Upsilonacutehooksymbolgreek",979,"Upsilonafrican",433,"Upsilondieresis",939,"Upsilondieresishooksymbolgreek",980,"Upsilonhooksymbol",978,"Upsilontonos",910,"Uring",366,"Ushortcyrillic",1038,"Usmall",63349,"Ustraightcyrillic",1198,"Ustraightstrokecyrillic",1200,"Utilde",360,"Utildeacute",7800,"Utildebelow",7796,"V",86,"Vcircle",9419,"Vdotbelow",7806,"Vecyrillic",1042,"Vewarmenian",1358,"Vhook",434,"Vmonospace",65334,"Voarmenian",1352,"Vsmall",63350,"Vtilde",7804,"W",87,"Wacute",7810,"Wcircle",9420,"Wcircumflex",372,"Wdieresis",7812,"Wdotaccent",7814,"Wdotbelow",7816,"Wgrave",7808,"Wmonospace",65335,"Wsmall",63351,"X",88,"Xcircle",9421,"Xdieresis",7820,"Xdotaccent",7818,"Xeharmenian",1341,"Xi",926,"Xmonospace",65336,"Xsmall",63352,"Y",89,"Yacute",221,"Yacutesmall",63485,"Yatcyrillic",1122,"Ycircle",9422,"Ycircumflex",374,"Ydieresis",376,"Ydieresissmall",63487,"Ydotaccent",7822,"Ydotbelow",7924,"Yericyrillic",1067,"Yerudieresiscyrillic",1272,"Ygrave",7922,"Yhook",435,"Yhookabove",7926,"Yiarmenian",1349,"Yicyrillic",1031,"Yiwnarmenian",1362,"Ymonospace",65337,"Ysmall",63353,"Ytilde",7928,"Yusbigcyrillic",1130,"Yusbigiotifiedcyrillic",1132,"Yuslittlecyrillic",1126,"Yuslittleiotifiedcyrillic",1128,"Z",90,"Zaarmenian",1334,"Zacute",377,"Zcaron",381,"Zcaronsmall",63231,"Zcircle",9423,"Zcircumflex",7824,"Zdot",379,"Zdotaccent",379,"Zdotbelow",7826,"Zecyrillic",1047,"Zedescendercyrillic",1176,"Zedieresiscyrillic",1246,"Zeta",918,"Zhearmenian",1338,"Zhebrevecyrillic",1217,"Zhecyrillic",1046,"Zhedescendercyrillic",1174,"Zhedieresiscyrillic",1244,"Zlinebelow",7828,"Zmonospace",65338,"Zsmall",63354,"Zstroke",437,"a",97,"aabengali",2438,"aacute",225,"aadeva",2310,"aagujarati",2694,"aagurmukhi",2566,"aamatragurmukhi",2622,"aarusquare",13059,"aavowelsignbengali",2494,"aavowelsigndeva",2366,"aavowelsigngujarati",2750,"abbreviationmarkarmenian",1375,"abbreviationsigndeva",2416,"abengali",2437,"abopomofo",12570,"abreve",259,"abreveacute",7855,"abrevecyrillic",1233,"abrevedotbelow",7863,"abrevegrave",7857,"abrevehookabove",7859,"abrevetilde",7861,"acaron",462,"acircle",9424,"acircumflex",226,"acircumflexacute",7845,"acircumflexdotbelow",7853,"acircumflexgrave",7847,"acircumflexhookabove",7849,"acircumflextilde",7851,"acute",180,"acutebelowcmb",791,"acutecmb",769,"acutecomb",769,"acutedeva",2388,"acutelowmod",719,"acutetonecmb",833,"acyrillic",1072,"adblgrave",513,"addakgurmukhi",2673,"adeva",2309,"adieresis",228,"adieresiscyrillic",1235,"adieresismacron",479,"adotbelow",7841,"adotmacron",481,"ae",230,"aeacute",509,"aekorean",12624,"aemacron",483,"afii00208",8213,"afii08941",8356,"afii10017",1040,"afii10018",1041,"afii10019",1042,"afii10020",1043,"afii10021",1044,"afii10022",1045,"afii10023",1025,"afii10024",1046,"afii10025",1047,"afii10026",1048,"afii10027",1049,"afii10028",1050,"afii10029",1051,"afii10030",1052,"afii10031",1053,"afii10032",1054,"afii10033",1055,"afii10034",1056,"afii10035",1057,"afii10036",1058,"afii10037",1059,"afii10038",1060,"afii10039",1061,"afii10040",1062,"afii10041",1063,"afii10042",1064,"afii10043",1065,"afii10044",1066,"afii10045",1067,"afii10046",1068,"afii10047",1069,"afii10048",1070,"afii10049",1071,"afii10050",1168,"afii10051",1026,"afii10052",1027,"afii10053",1028,"afii10054",1029,"afii10055",1030,"afii10056",1031,"afii10057",1032,"afii10058",1033,"afii10059",1034,"afii10060",1035,"afii10061",1036,"afii10062",1038,"afii10063",63172,"afii10064",63173,"afii10065",1072,"afii10066",1073,"afii10067",1074,"afii10068",1075,"afii10069",1076,"afii10070",1077,"afii10071",1105,"afii10072",1078,"afii10073",1079,"afii10074",1080,"afii10075",1081,"afii10076",1082,"afii10077",1083,"afii10078",1084,"afii10079",1085,"afii10080",1086,"afii10081",1087,"afii10082",1088,"afii10083",1089,"afii10084",1090,"afii10085",1091,"afii10086",1092,"afii10087",1093,"afii10088",1094,"afii10089",1095,"afii10090",1096,"afii10091",1097,"afii10092",1098,"afii10093",1099,"afii10094",1100,"afii10095",1101,"afii10096",1102,"afii10097",1103,"afii10098",1169,"afii10099",1106,"afii10100",1107,"afii10101",1108,"afii10102",1109,"afii10103",1110,"afii10104",1111,"afii10105",1112,"afii10106",1113,"afii10107",1114,"afii10108",1115,"afii10109",1116,"afii10110",1118,"afii10145",1039,"afii10146",1122,"afii10147",1138,"afii10148",1140,"afii10192",63174,"afii10193",1119,"afii10194",1123,"afii10195",1139,"afii10196",1141,"afii10831",63175,"afii10832",63176,"afii10846",1241,"afii299",8206,"afii300",8207,"afii301",8205,"afii57381",1642,"afii57388",1548,"afii57392",1632,"afii57393",1633,"afii57394",1634,"afii57395",1635,"afii57396",1636,"afii57397",1637,"afii57398",1638,"afii57399",1639,"afii57400",1640,"afii57401",1641,"afii57403",1563,"afii57407",1567,"afii57409",1569,"afii57410",1570,"afii57411",1571,"afii57412",1572,"afii57413",1573,"afii57414",1574,"afii57415",1575,"afii57416",1576,"afii57417",1577,"afii57418",1578,"afii57419",1579,"afii57420",1580,"afii57421",1581,"afii57422",1582,"afii57423",1583,"afii57424",1584,"afii57425",1585,"afii57426",1586,"afii57427",1587,"afii57428",1588,"afii57429",1589,"afii57430",1590,"afii57431",1591,"afii57432",1592,"afii57433",1593,"afii57434",1594,"afii57440",1600,"afii57441",1601,"afii57442",1602,"afii57443",1603,"afii57444",1604,"afii57445",1605,"afii57446",1606,"afii57448",1608,"afii57449",1609,"afii57450",1610,"afii57451",1611,"afii57452",1612,"afii57453",1613,"afii57454",1614,"afii57455",1615,"afii57456",1616,"afii57457",1617,"afii57458",1618,"afii57470",1607,"afii57505",1700,"afii57506",1662,"afii57507",1670,"afii57508",1688,"afii57509",1711,"afii57511",1657,"afii57512",1672,"afii57513",1681,"afii57514",1722,"afii57519",1746,"afii57534",1749,"afii57636",8362,"afii57645",1470,"afii57658",1475,"afii57664",1488,"afii57665",1489,"afii57666",1490,"afii57667",1491,"afii57668",1492,"afii57669",1493,"afii57670",1494,"afii57671",1495,"afii57672",1496,"afii57673",1497,"afii57674",1498,"afii57675",1499,"afii57676",1500,"afii57677",1501,"afii57678",1502,"afii57679",1503,"afii57680",1504,"afii57681",1505,"afii57682",1506,"afii57683",1507,"afii57684",1508,"afii57685",1509,"afii57686",1510,"afii57687",1511,"afii57688",1512,"afii57689",1513,"afii57690",1514,"afii57694",64298,"afii57695",64299,"afii57700",64331,"afii57705",64287,"afii57716",1520,"afii57717",1521,"afii57718",1522,"afii57723",64309,"afii57793",1460,"afii57794",1461,"afii57795",1462,"afii57796",1467,"afii57797",1464,"afii57798",1463,"afii57799",1456,"afii57800",1458,"afii57801",1457,"afii57802",1459,"afii57803",1474,"afii57804",1473,"afii57806",1465,"afii57807",1468,"afii57839",1469,"afii57841",1471,"afii57842",1472,"afii57929",700,"afii61248",8453,"afii61289",8467,"afii61352",8470,"afii61573",8236,"afii61574",8237,"afii61575",8238,"afii61664",8204,"afii63167",1645,"afii64937",701,"agrave",224,"agujarati",2693,"agurmukhi",2565,"ahiragana",12354,"ahookabove",7843,"aibengali",2448,"aibopomofo",12574,"aideva",2320,"aiecyrillic",1237,"aigujarati",2704,"aigurmukhi",2576,"aimatragurmukhi",2632,"ainarabic",1593,"ainfinalarabic",65226,"aininitialarabic",65227,"ainmedialarabic",65228,"ainvertedbreve",515,"aivowelsignbengali",2504,"aivowelsigndeva",2376,"aivowelsigngujarati",2760,"akatakana",12450,"akatakanahalfwidth",65393,"akorean",12623,"alef",1488,"alefarabic",1575,"alefdageshhebrew",64304,"aleffinalarabic",65166,"alefhamzaabovearabic",1571,"alefhamzaabovefinalarabic",65156,"alefhamzabelowarabic",1573,"alefhamzabelowfinalarabic",65160,"alefhebrew",1488,"aleflamedhebrew",64335,"alefmaddaabovearabic",1570,"alefmaddaabovefinalarabic",65154,"alefmaksuraarabic",1609,"alefmaksurafinalarabic",65264,"alefmaksurainitialarabic",65267,"alefmaksuramedialarabic",65268,"alefpatahhebrew",64302,"alefqamatshebrew",64303,"aleph",8501,"allequal",8780,"alpha",945,"alphatonos",940,"amacron",257,"amonospace",65345,"ampersand",38,"ampersandmonospace",65286,"ampersandsmall",63270,"amsquare",13250,"anbopomofo",12578,"angbopomofo",12580,"angbracketleft",12296,"angbracketright",12297,"angkhankhuthai",3674,"angle",8736,"anglebracketleft",12296,"anglebracketleftvertical",65087,"anglebracketright",12297,"anglebracketrightvertical",65088,"angleleft",9001,"angleright",9002,"angstrom",8491,"anoteleia",903,"anudattadeva",2386,"anusvarabengali",2434,"anusvaradeva",2306,"anusvaragujarati",2690,"aogonek",261,"apaatosquare",13056,"aparen",9372,"apostrophearmenian",1370,"apostrophemod",700,"apple",63743,"approaches",8784,"approxequal",8776,"approxequalorimage",8786,"approximatelyequal",8773,"araeaekorean",12686,"araeakorean",12685,"arc",8978,"arighthalfring",7834,"aring",229,"aringacute",507,"aringbelow",7681,"arrowboth",8596,"arrowdashdown",8675,"arrowdashleft",8672,"arrowdashright",8674,"arrowdashup",8673,"arrowdblboth",8660,"arrowdbldown",8659,"arrowdblleft",8656,"arrowdblright",8658,"arrowdblup",8657,"arrowdown",8595,"arrowdownleft",8601,"arrowdownright",8600,"arrowdownwhite",8681,"arrowheaddownmod",709,"arrowheadleftmod",706,"arrowheadrightmod",707,"arrowheadupmod",708,"arrowhorizex",63719,"arrowleft",8592,"arrowleftdbl",8656,"arrowleftdblstroke",8653,"arrowleftoverright",8646,"arrowleftwhite",8678,"arrowright",8594,"arrowrightdblstroke",8655,"arrowrightheavy",10142,"arrowrightoverleft",8644,"arrowrightwhite",8680,"arrowtableft",8676,"arrowtabright",8677,"arrowup",8593,"arrowupdn",8597,"arrowupdnbse",8616,"arrowupdownbase",8616,"arrowupleft",8598,"arrowupleftofdown",8645,"arrowupright",8599,"arrowupwhite",8679,"arrowvertex",63718,"asciicircum",94,"asciicircummonospace",65342,"asciitilde",126,"asciitildemonospace",65374,"ascript",593,"ascriptturned",594,"asmallhiragana",12353,"asmallkatakana",12449,"asmallkatakanahalfwidth",65383,"asterisk",42,"asteriskaltonearabic",1645,"asteriskarabic",1645,"asteriskmath",8727,"asteriskmonospace",65290,"asterisksmall",65121,"asterism",8258,"asuperior",63209,"asymptoticallyequal",8771,"at",64,"atilde",227,"atmonospace",65312,"atsmall",65131,"aturned",592,"aubengali",2452,"aubopomofo",12576,"audeva",2324,"augujarati",2708,"augurmukhi",2580,"aulengthmarkbengali",2519,"aumatragurmukhi",2636,"auvowelsignbengali",2508,"auvowelsigndeva",2380,"auvowelsigngujarati",2764,"avagrahadeva",2365,"aybarmenian",1377,"ayin",1506,"ayinaltonehebrew",64288,"ayinhebrew",1506,"b",98,"babengali",2476,"backslash",92,"backslashmonospace",65340,"badeva",2348,"bagujarati",2732,"bagurmukhi",2604,"bahiragana",12400,"bahtthai",3647,"bakatakana",12496,"bar",124,"barmonospace",65372,"bbopomofo",12549,"bcircle",9425,"bdotaccent",7683,"bdotbelow",7685,"beamedsixteenthnotes",9836,"because",8757,"becyrillic",1073,"beharabic",1576,"behfinalarabic",65168,"behinitialarabic",65169,"behiragana",12409,"behmedialarabic",65170,"behmeeminitialarabic",64671,"behmeemisolatedarabic",64520,"behnoonfinalarabic",64621,"bekatakana",12505,"benarmenian",1378,"bet",1489,"beta",946,"betasymbolgreek",976,"betdagesh",64305,"betdageshhebrew",64305,"bethebrew",1489,"betrafehebrew",64332,"bhabengali",2477,"bhadeva",2349,"bhagujarati",2733,"bhagurmukhi",2605,"bhook",595,"bihiragana",12403,"bikatakana",12499,"bilabialclick",664,"bindigurmukhi",2562,"birusquare",13105,"blackcircle",9679,"blackdiamond",9670,"blackdownpointingtriangle",9660,"blackleftpointingpointer",9668,"blackleftpointingtriangle",9664,"blacklenticularbracketleft",12304,"blacklenticularbracketleftvertical",65083,"blacklenticularbracketright",12305,"blacklenticularbracketrightvertical",65084,"blacklowerlefttriangle",9699,"blacklowerrighttriangle",9698,"blackrectangle",9644,"blackrightpointingpointer",9658,"blackrightpointingtriangle",9654,"blacksmallsquare",9642,"blacksmilingface",9787,"blacksquare",9632,"blackstar",9733,"blackupperlefttriangle",9700,"blackupperrighttriangle",9701,"blackuppointingsmalltriangle",9652,"blackuppointingtriangle",9650,"blank",9251,"blinebelow",7687,"block",9608,"bmonospace",65346,"bobaimaithai",3610,"bohiragana",12412,"bokatakana",12508,"bparen",9373,"bqsquare",13251,"braceex",63732,"braceleft",123,"braceleftbt",63731,"braceleftmid",63730,"braceleftmonospace",65371,"braceleftsmall",65115,"bracelefttp",63729,"braceleftvertical",65079,"braceright",125,"bracerightbt",63742,"bracerightmid",63741,"bracerightmonospace",65373,"bracerightsmall",65116,"bracerighttp",63740,"bracerightvertical",65080,"bracketleft",91,"bracketleftbt",63728,"bracketleftex",63727,"bracketleftmonospace",65339,"bracketlefttp",63726,"bracketright",93,"bracketrightbt",63739,"bracketrightex",63738,"bracketrightmonospace",65341,"bracketrighttp",63737,"breve",728,"brevebelowcmb",814,"brevecmb",774,"breveinvertedbelowcmb",815,"breveinvertedcmb",785,"breveinverteddoublecmb",865,"bridgebelowcmb",810,"bridgeinvertedbelowcmb",826,"brokenbar",166,"bstroke",384,"bsuperior",63210,"btopbar",387,"buhiragana",12406,"bukatakana",12502,"bullet",8226,"bulletinverse",9688,"bulletoperator",8729,"bullseye",9678,"c",99,"caarmenian",1390,"cabengali",2458,"cacute",263,"cadeva",2330,"cagujarati",2714,"cagurmukhi",2586,"calsquare",13192,"candrabindubengali",2433,"candrabinducmb",784,"candrabindudeva",2305,"candrabindugujarati",2689,"capslock",8682,"careof",8453,"caron",711,"caronbelowcmb",812,"caroncmb",780,"carriagereturn",8629,"cbopomofo",12568,"ccaron",269,"ccedilla",231,"ccedillaacute",7689,"ccircle",9426,"ccircumflex",265,"ccurl",597,"cdot",267,"cdotaccent",267,"cdsquare",13253,"cedilla",184,"cedillacmb",807,"cent",162,"centigrade",8451,"centinferior",63199,"centmonospace",65504,"centoldstyle",63394,"centsuperior",63200,"chaarmenian",1401,"chabengali",2459,"chadeva",2331,"chagujarati",2715,"chagurmukhi",2587,"chbopomofo",12564,"cheabkhasiancyrillic",1213,"checkmark",10003,"checyrillic",1095,"chedescenderabkhasiancyrillic",1215,"chedescendercyrillic",1207,"chedieresiscyrillic",1269,"cheharmenian",1395,"chekhakassiancyrillic",1228,"cheverticalstrokecyrillic",1209,"chi",967,"chieuchacirclekorean",12919,"chieuchaparenkorean",12823,"chieuchcirclekorean",12905,"chieuchkorean",12618,"chieuchparenkorean",12809,"chochangthai",3594,"chochanthai",3592,"chochingthai",3593,"chochoethai",3596,"chook",392,"cieucacirclekorean",12918,"cieucaparenkorean",12822,"cieuccirclekorean",12904,"cieuckorean",12616,"cieucparenkorean",12808,"cieucuparenkorean",12828,"circle",9675,"circlecopyrt",169,"circlemultiply",8855,"circleot",8857,"circleplus",8853,"circlepostalmark",12342,"circlewithlefthalfblack",9680,"circlewithrighthalfblack",9681,"circumflex",710,"circumflexbelowcmb",813,"circumflexcmb",770,"clear",8999,"clickalveolar",450,"clickdental",448,"clicklateral",449,"clickretroflex",451,"club",9827,"clubsuitblack",9827,"clubsuitwhite",9831,"cmcubedsquare",13220,"cmonospace",65347,"cmsquaredsquare",13216,"coarmenian",1409,"colon",58,"colonmonetary",8353,"colonmonospace",65306,"colonsign",8353,"colonsmall",65109,"colontriangularhalfmod",721,"colontriangularmod",720,"comma",44,"commaabovecmb",787,"commaaboverightcmb",789,"commaaccent",63171,"commaarabic",1548,"commaarmenian",1373,"commainferior",63201,"commamonospace",65292,"commareversedabovecmb",788,"commareversedmod",701,"commasmall",65104,"commasuperior",63202,"commaturnedabovecmb",786,"commaturnedmod",699,"compass",9788,"congruent",8773,"contourintegral",8750,"control",8963,"controlACK",6,"controlBEL",7,"controlBS",8,"controlCAN",24,"controlCR",13,"controlDC1",17,"controlDC2",18,"controlDC3",19,"controlDC4",20,"controlDEL",127,"controlDLE",16,"controlEM",25,"controlENQ",5,"controlEOT",4,"controlESC",27,"controlETB",23,"controlETX",3,"controlFF",12,"controlFS",28,"controlGS",29,"controlHT",9,"controlLF",10,"controlNAK",21,"controlNULL",0,"controlRS",30,"controlSI",15,"controlSO",14,"controlSOT",2,"controlSTX",1,"controlSUB",26,"controlSYN",22,"controlUS",31,"controlVT",11,"copyright",169,"copyrightsans",63721,"copyrightserif",63193,"cornerbracketleft",12300,"cornerbracketlefthalfwidth",65378,"cornerbracketleftvertical",65089,"cornerbracketright",12301,"cornerbracketrighthalfwidth",65379,"cornerbracketrightvertical",65090,"corporationsquare",13183,"cosquare",13255,"coverkgsquare",13254,"cparen",9374,"cruzeiro",8354,"cstretched",663,"curlyand",8911,"curlyor",8910,"currency",164,"cyrBreve",63185,"cyrFlex",63186,"cyrbreve",63188,"cyrflex",63189,"d",100,"daarmenian",1380,"dabengali",2470,"dadarabic",1590,"dadeva",2342,"dadfinalarabic",65214,"dadinitialarabic",65215,"dadmedialarabic",65216,"dagesh",1468,"dageshhebrew",1468,"dagger",8224,"daggerdbl",8225,"dagujarati",2726,"dagurmukhi",2598,"dahiragana",12384,"dakatakana",12480,"dalarabic",1583,"dalet",1491,"daletdagesh",64307,"daletdageshhebrew",64307,"dalethebrew",1491,"dalfinalarabic",65194,"dammaarabic",1615,"dammalowarabic",1615,"dammatanaltonearabic",1612,"dammatanarabic",1612,"danda",2404,"dargahebrew",1447,"dargalefthebrew",1447,"dasiapneumatacyrilliccmb",1157,"dblGrave",63187,"dblanglebracketleft",12298,"dblanglebracketleftvertical",65085,"dblanglebracketright",12299,"dblanglebracketrightvertical",65086,"dblarchinvertedbelowcmb",811,"dblarrowleft",8660,"dblarrowright",8658,"dbldanda",2405,"dblgrave",63190,"dblgravecmb",783,"dblintegral",8748,"dbllowline",8215,"dbllowlinecmb",819,"dbloverlinecmb",831,"dblprimemod",698,"dblverticalbar",8214,"dblverticallineabovecmb",782,"dbopomofo",12553,"dbsquare",13256,"dcaron",271,"dcedilla",7697,"dcircle",9427,"dcircumflexbelow",7699,"dcroat",273,"ddabengali",2465,"ddadeva",2337,"ddagujarati",2721,"ddagurmukhi",2593,"ddalarabic",1672,"ddalfinalarabic",64393,"dddhadeva",2396,"ddhabengali",2466,"ddhadeva",2338,"ddhagujarati",2722,"ddhagurmukhi",2594,"ddotaccent",7691,"ddotbelow",7693,"decimalseparatorarabic",1643,"decimalseparatorpersian",1643,"decyrillic",1076,"degree",176,"dehihebrew",1453,"dehiragana",12391,"deicoptic",1007,"dekatakana",12487,"deleteleft",9003,"deleteright",8998,"delta",948,"deltaturned",397,"denominatorminusonenumeratorbengali",2552,"dezh",676,"dhabengali",2471,"dhadeva",2343,"dhagujarati",2727,"dhagurmukhi",2599,"dhook",599,"dialytikatonos",901,"dialytikatonoscmb",836,"diamond",9830,"diamondsuitwhite",9826,"dieresis",168,"dieresisacute",63191,"dieresisbelowcmb",804,"dieresiscmb",776,"dieresisgrave",63192,"dieresistonos",901,"dihiragana",12386,"dikatakana",12482,"dittomark",12291,"divide",247,"divides",8739,"divisionslash",8725,"djecyrillic",1106,"dkshade",9619,"dlinebelow",7695,"dlsquare",13207,"dmacron",273,"dmonospace",65348,"dnblock",9604,"dochadathai",3598,"dodekthai",3604,"dohiragana",12393,"dokatakana",12489,"dollar",36,"dollarinferior",63203,"dollarmonospace",65284,"dollaroldstyle",63268,"dollarsmall",65129,"dollarsuperior",63204,"dong",8363,"dorusquare",13094,"dotaccent",729,"dotaccentcmb",775,"dotbelowcmb",803,"dotbelowcomb",803,"dotkatakana",12539,"dotlessi",305,"dotlessj",63166,"dotlessjstrokehook",644,"dotmath",8901,"dottedcircle",9676,"doubleyodpatah",64287,"doubleyodpatahhebrew",64287,"downtackbelowcmb",798,"downtackmod",725,"dparen",9375,"dsuperior",63211,"dtail",598,"dtopbar",396,"duhiragana",12389,"dukatakana",12485,"dz",499,"dzaltone",675,"dzcaron",454,"dzcurl",677,"dzeabkhasiancyrillic",1249,"dzecyrillic",1109,"dzhecyrillic",1119,"e",101,"eacute",233,"earth",9793,"ebengali",2447,"ebopomofo",12572,"ebreve",277,"ecandradeva",2317,"ecandragujarati",2701,"ecandravowelsigndeva",2373,"ecandravowelsigngujarati",2757,"ecaron",283,"ecedillabreve",7709,"echarmenian",1381,"echyiwnarmenian",1415,"ecircle",9428,"ecircumflex",234,"ecircumflexacute",7871,"ecircumflexbelow",7705,"ecircumflexdotbelow",7879,"ecircumflexgrave",7873,"ecircumflexhookabove",7875,"ecircumflextilde",7877,"ecyrillic",1108,"edblgrave",517,"edeva",2319,"edieresis",235,"edot",279,"edotaccent",279,"edotbelow",7865,"eegurmukhi",2575,"eematragurmukhi",2631,"efcyrillic",1092,"egrave",232,"egujarati",2703,"eharmenian",1383,"ehbopomofo",12573,"ehiragana",12360,"ehookabove",7867,"eibopomofo",12575,"eight",56,"eightarabic",1640,"eightbengali",2542,"eightcircle",9319,"eightcircleinversesansserif",10129,"eightdeva",2414,"eighteencircle",9329,"eighteenparen",9349,"eighteenperiod",9369,"eightgujarati",2798,"eightgurmukhi",2670,"eighthackarabic",1640,"eighthangzhou",12328,"eighthnotebeamed",9835,"eightideographicparen",12839,"eightinferior",8328,"eightmonospace",65304,"eightoldstyle",63288,"eightparen",9339,"eightperiod",9359,"eightpersian",1784,"eightroman",8567,"eightsuperior",8312,"eightthai",3672,"einvertedbreve",519,"eiotifiedcyrillic",1125,"ekatakana",12456,"ekatakanahalfwidth",65396,"ekonkargurmukhi",2676,"ekorean",12628,"elcyrillic",1083,"element",8712,"elevencircle",9322,"elevenparen",9342,"elevenperiod",9362,"elevenroman",8570,"ellipsis",8230,"ellipsisvertical",8942,"emacron",275,"emacronacute",7703,"emacrongrave",7701,"emcyrillic",1084,"emdash",8212,"emdashvertical",65073,"emonospace",65349,"emphasismarkarmenian",1371,"emptyset",8709,"enbopomofo",12579,"encyrillic",1085,"endash",8211,"endashvertical",65074,"endescendercyrillic",1187,"eng",331,"engbopomofo",12581,"enghecyrillic",1189,"enhookcyrillic",1224,"enspace",8194,"eogonek",281,"eokorean",12627,"eopen",603,"eopenclosed",666,"eopenreversed",604,"eopenreversedclosed",606,"eopenreversedhook",605,"eparen",9376,"epsilon",949,"epsilontonos",941,"equal",61,"equalmonospace",65309,"equalsmall",65126,"equalsuperior",8316,"equivalence",8801,"erbopomofo",12582,"ercyrillic",1088,"ereversed",600,"ereversedcyrillic",1101,"escyrillic",1089,"esdescendercyrillic",1195,"esh",643,"eshcurl",646,"eshortdeva",2318,"eshortvowelsigndeva",2374,"eshreversedloop",426,"eshsquatreversed",645,"esmallhiragana",12359,"esmallkatakana",12455,"esmallkatakanahalfwidth",65386,"estimated",8494,"esuperior",63212,"eta",951,"etarmenian",1384,"etatonos",942,"eth",240,"etilde",7869,"etildebelow",7707,"etnahtafoukhhebrew",1425,"etnahtafoukhlefthebrew",1425,"etnahtahebrew",1425,"etnahtalefthebrew",1425,"eturned",477,"eukorean",12641,"euro",8364,"evowelsignbengali",2503,"evowelsigndeva",2375,"evowelsigngujarati",2759,"exclam",33,"exclamarmenian",1372,"exclamdbl",8252,"exclamdown",161,"exclamdownsmall",63393,"exclammonospace",65281,"exclamsmall",63265,"existential",8707,"ezh",658,"ezhcaron",495,"ezhcurl",659,"ezhreversed",441,"ezhtail",442,"f",102,"fadeva",2398,"fagurmukhi",2654,"fahrenheit",8457,"fathaarabic",1614,"fathalowarabic",1614,"fathatanarabic",1611,"fbopomofo",12552,"fcircle",9429,"fdotaccent",7711,"feharabic",1601,"feharmenian",1414,"fehfinalarabic",65234,"fehinitialarabic",65235,"fehmedialarabic",65236,"feicoptic",997,"female",9792,"ff",64256,"f_f",64256,"ffi",64259,"ffl",64260,"fi",64257,"fifteencircle",9326,"fifteenparen",9346,"fifteenperiod",9366,"figuredash",8210,"filledbox",9632,"filledrect",9644,"finalkaf",1498,"finalkafdagesh",64314,"finalkafdageshhebrew",64314,"finalkafhebrew",1498,"finalmem",1501,"finalmemhebrew",1501,"finalnun",1503,"finalnunhebrew",1503,"finalpe",1507,"finalpehebrew",1507,"finaltsadi",1509,"finaltsadihebrew",1509,"firsttonechinese",713,"fisheye",9673,"fitacyrillic",1139,"five",53,"fivearabic",1637,"fivebengali",2539,"fivecircle",9316,"fivecircleinversesansserif",10126,"fivedeva",2411,"fiveeighths",8541,"fivegujarati",2795,"fivegurmukhi",2667,"fivehackarabic",1637,"fivehangzhou",12325,"fiveideographicparen",12836,"fiveinferior",8325,"fivemonospace",65301,"fiveoldstyle",63285,"fiveparen",9336,"fiveperiod",9356,"fivepersian",1781,"fiveroman",8564,"fivesuperior",8309,"fivethai",3669,"fl",64258,"florin",402,"fmonospace",65350,"fmsquare",13209,"fofanthai",3615,"fofathai",3613,"fongmanthai",3663,"forall",8704,"four",52,"fourarabic",1636,"fourbengali",2538,"fourcircle",9315,"fourcircleinversesansserif",10125,"fourdeva",2410,"fourgujarati",2794,"fourgurmukhi",2666,"fourhackarabic",1636,"fourhangzhou",12324,"fourideographicparen",12835,"fourinferior",8324,"fourmonospace",65300,"fournumeratorbengali",2551,"fouroldstyle",63284,"fourparen",9335,"fourperiod",9355,"fourpersian",1780,"fourroman",8563,"foursuperior",8308,"fourteencircle",9325,"fourteenparen",9345,"fourteenperiod",9365,"fourthai",3668,"fourthtonechinese",715,"fparen",9377,"fraction",8260,"franc",8355,"g",103,"gabengali",2455,"gacute",501,"gadeva",2327,"gafarabic",1711,"gaffinalarabic",64403,"gafinitialarabic",64404,"gafmedialarabic",64405,"gagujarati",2711,"gagurmukhi",2583,"gahiragana",12364,"gakatakana",12460,"gamma",947,"gammalatinsmall",611,"gammasuperior",736,"gangiacoptic",1003,"gbopomofo",12557,"gbreve",287,"gcaron",487,"gcedilla",291,"gcircle",9430,"gcircumflex",285,"gcommaaccent",291,"gdot",289,"gdotaccent",289,"gecyrillic",1075,"gehiragana",12370,"gekatakana",12466,"geometricallyequal",8785,"gereshaccenthebrew",1436,"gereshhebrew",1523,"gereshmuqdamhebrew",1437,"germandbls",223,"gershayimaccenthebrew",1438,"gershayimhebrew",1524,"getamark",12307,"ghabengali",2456,"ghadarmenian",1394,"ghadeva",2328,"ghagujarati",2712,"ghagurmukhi",2584,"ghainarabic",1594,"ghainfinalarabic",65230,"ghaininitialarabic",65231,"ghainmedialarabic",65232,"ghemiddlehookcyrillic",1173,"ghestrokecyrillic",1171,"gheupturncyrillic",1169,"ghhadeva",2394,"ghhagurmukhi",2650,"ghook",608,"ghzsquare",13203,"gihiragana",12366,"gikatakana",12462,"gimarmenian",1379,"gimel",1490,"gimeldagesh",64306,"gimeldageshhebrew",64306,"gimelhebrew",1490,"gjecyrillic",1107,"glottalinvertedstroke",446,"glottalstop",660,"glottalstopinverted",662,"glottalstopmod",704,"glottalstopreversed",661,"glottalstopreversedmod",705,"glottalstopreversedsuperior",740,"glottalstopstroke",673,"glottalstopstrokereversed",674,"gmacron",7713,"gmonospace",65351,"gohiragana",12372,"gokatakana",12468,"gparen",9378,"gpasquare",13228,"gradient",8711,"grave",96,"gravebelowcmb",790,"gravecmb",768,"gravecomb",768,"gravedeva",2387,"gravelowmod",718,"gravemonospace",65344,"gravetonecmb",832,"greater",62,"greaterequal",8805,"greaterequalorless",8923,"greatermonospace",65310,"greaterorequivalent",8819,"greaterorless",8823,"greateroverequal",8807,"greatersmall",65125,"gscript",609,"gstroke",485,"guhiragana",12368,"guillemotleft",171,"guillemotright",187,"guilsinglleft",8249,"guilsinglright",8250,"gukatakana",12464,"guramusquare",13080,"gysquare",13257,"h",104,"haabkhasiancyrillic",1193,"haaltonearabic",1729,"habengali",2489,"hadescendercyrillic",1203,"hadeva",2361,"hagujarati",2745,"hagurmukhi",2617,"haharabic",1581,"hahfinalarabic",65186,"hahinitialarabic",65187,"hahiragana",12399,"hahmedialarabic",65188,"haitusquare",13098,"hakatakana",12495,"hakatakanahalfwidth",65418,"halantgurmukhi",2637,"hamzaarabic",1569,"hamzalowarabic",1569,"hangulfiller",12644,"hardsigncyrillic",1098,"harpoonleftbarbup",8636,"harpoonrightbarbup",8640,"hasquare",13258,"hatafpatah",1458,"hatafpatah16",1458,"hatafpatah23",1458,"hatafpatah2f",1458,"hatafpatahhebrew",1458,"hatafpatahnarrowhebrew",1458,"hatafpatahquarterhebrew",1458,"hatafpatahwidehebrew",1458,"hatafqamats",1459,"hatafqamats1b",1459,"hatafqamats28",1459,"hatafqamats34",1459,"hatafqamatshebrew",1459,"hatafqamatsnarrowhebrew",1459,"hatafqamatsquarterhebrew",1459,"hatafqamatswidehebrew",1459,"hatafsegol",1457,"hatafsegol17",1457,"hatafsegol24",1457,"hatafsegol30",1457,"hatafsegolhebrew",1457,"hatafsegolnarrowhebrew",1457,"hatafsegolquarterhebrew",1457,"hatafsegolwidehebrew",1457,"hbar",295,"hbopomofo",12559,"hbrevebelow",7723,"hcedilla",7721,"hcircle",9431,"hcircumflex",293,"hdieresis",7719,"hdotaccent",7715,"hdotbelow",7717,"he",1492,"heart",9829,"heartsuitblack",9829,"heartsuitwhite",9825,"hedagesh",64308,"hedageshhebrew",64308,"hehaltonearabic",1729,"heharabic",1607,"hehebrew",1492,"hehfinalaltonearabic",64423,"hehfinalalttwoarabic",65258,"hehfinalarabic",65258,"hehhamzaabovefinalarabic",64421,"hehhamzaaboveisolatedarabic",64420,"hehinitialaltonearabic",64424,"hehinitialarabic",65259,"hehiragana",12408,"hehmedialaltonearabic",64425,"hehmedialarabic",65260,"heiseierasquare",13179,"hekatakana",12504,"hekatakanahalfwidth",65421,"hekutaarusquare",13110,"henghook",615,"herutusquare",13113,"het",1495,"hethebrew",1495,"hhook",614,"hhooksuperior",689,"hieuhacirclekorean",12923,"hieuhaparenkorean",12827,"hieuhcirclekorean",12909,"hieuhkorean",12622,"hieuhparenkorean",12813,"hihiragana",12402,"hikatakana",12498,"hikatakanahalfwidth",65419,"hiriq",1460,"hiriq14",1460,"hiriq21",1460,"hiriq2d",1460,"hiriqhebrew",1460,"hiriqnarrowhebrew",1460,"hiriqquarterhebrew",1460,"hiriqwidehebrew",1460,"hlinebelow",7830,"hmonospace",65352,"hoarmenian",1392,"hohipthai",3627,"hohiragana",12411,"hokatakana",12507,"hokatakanahalfwidth",65422,"holam",1465,"holam19",1465,"holam26",1465,"holam32",1465,"holamhebrew",1465,"holamnarrowhebrew",1465,"holamquarterhebrew",1465,"holamwidehebrew",1465,"honokhukthai",3630,"hookabovecomb",777,"hookcmb",777,"hookpalatalizedbelowcmb",801,"hookretroflexbelowcmb",802,"hoonsquare",13122,"horicoptic",1001,"horizontalbar",8213,"horncmb",795,"hotsprings",9832,"house",8962,"hparen",9379,"hsuperior",688,"hturned",613,"huhiragana",12405,"huiitosquare",13107,"hukatakana",12501,"hukatakanahalfwidth",65420,"hungarumlaut",733,"hungarumlautcmb",779,"hv",405,"hyphen",45,"hypheninferior",63205,"hyphenmonospace",65293,"hyphensmall",65123,"hyphensuperior",63206,"hyphentwo",8208,"i",105,"iacute",237,"iacyrillic",1103,"ibengali",2439,"ibopomofo",12583,"ibreve",301,"icaron",464,"icircle",9432,"icircumflex",238,"icyrillic",1110,"idblgrave",521,"ideographearthcircle",12943,"ideographfirecircle",12939,"ideographicallianceparen",12863,"ideographiccallparen",12858,"ideographiccentrecircle",12965,"ideographicclose",12294,"ideographiccomma",12289,"ideographiccommaleft",65380,"ideographiccongratulationparen",12855,"ideographiccorrectcircle",12963,"ideographicearthparen",12847,"ideographicenterpriseparen",12861,"ideographicexcellentcircle",12957,"ideographicfestivalparen",12864,"ideographicfinancialcircle",12950,"ideographicfinancialparen",12854,"ideographicfireparen",12843,"ideographichaveparen",12850,"ideographichighcircle",12964,"ideographiciterationmark",12293,"ideographiclaborcircle",12952,"ideographiclaborparen",12856,"ideographicleftcircle",12967,"ideographiclowcircle",12966,"ideographicmedicinecircle",12969,"ideographicmetalparen",12846,"ideographicmoonparen",12842,"ideographicnameparen",12852,"ideographicperiod",12290,"ideographicprintcircle",12958,"ideographicreachparen",12867,"ideographicrepresentparen",12857,"ideographicresourceparen",12862,"ideographicrightcircle",12968,"ideographicsecretcircle",12953,"ideographicselfparen",12866,"ideographicsocietyparen",12851,"ideographicspace",12288,"ideographicspecialparen",12853,"ideographicstockparen",12849,"ideographicstudyparen",12859,"ideographicsunparen",12848,"ideographicsuperviseparen",12860,"ideographicwaterparen",12844,"ideographicwoodparen",12845,"ideographiczero",12295,"ideographmetalcircle",12942,"ideographmooncircle",12938,"ideographnamecircle",12948,"ideographsuncircle",12944,"ideographwatercircle",12940,"ideographwoodcircle",12941,"ideva",2311,"idieresis",239,"idieresisacute",7727,"idieresiscyrillic",1253,"idotbelow",7883,"iebrevecyrillic",1239,"iecyrillic",1077,"ieungacirclekorean",12917,"ieungaparenkorean",12821,"ieungcirclekorean",12903,"ieungkorean",12615,"ieungparenkorean",12807,"igrave",236,"igujarati",2695,"igurmukhi",2567,"ihiragana",12356,"ihookabove",7881,"iibengali",2440,"iicyrillic",1080,"iideva",2312,"iigujarati",2696,"iigurmukhi",2568,"iimatragurmukhi",2624,"iinvertedbreve",523,"iishortcyrillic",1081,"iivowelsignbengali",2496,"iivowelsigndeva",2368,"iivowelsigngujarati",2752,"ij",307,"ikatakana",12452,"ikatakanahalfwidth",65394,"ikorean",12643,"ilde",732,"iluyhebrew",1452,"imacron",299,"imacroncyrillic",1251,"imageorapproximatelyequal",8787,"imatragurmukhi",2623,"imonospace",65353,"increment",8710,"infinity",8734,"iniarmenian",1387,"integral",8747,"integralbottom",8993,"integralbt",8993,"integralex",63733,"integraltop",8992,"integraltp",8992,"intersection",8745,"intisquare",13061,"invbullet",9688,"invcircle",9689,"invsmileface",9787,"iocyrillic",1105,"iogonek",303,"iota",953,"iotadieresis",970,"iotadieresistonos",912,"iotalatin",617,"iotatonos",943,"iparen",9380,"irigurmukhi",2674,"ismallhiragana",12355,"ismallkatakana",12451,"ismallkatakanahalfwidth",65384,"issharbengali",2554,"istroke",616,"isuperior",63213,"iterationhiragana",12445,"iterationkatakana",12541,"itilde",297,"itildebelow",7725,"iubopomofo",12585,"iucyrillic",1102,"ivowelsignbengali",2495,"ivowelsigndeva",2367,"ivowelsigngujarati",2751,"izhitsacyrillic",1141,"izhitsadblgravecyrillic",1143,"j",106,"jaarmenian",1393,"jabengali",2460,"jadeva",2332,"jagujarati",2716,"jagurmukhi",2588,"jbopomofo",12560,"jcaron",496,"jcircle",9433,"jcircumflex",309,"jcrossedtail",669,"jdotlessstroke",607,"jecyrillic",1112,"jeemarabic",1580,"jeemfinalarabic",65182,"jeeminitialarabic",65183,"jeemmedialarabic",65184,"jeharabic",1688,"jehfinalarabic",64395,"jhabengali",2461,"jhadeva",2333,"jhagujarati",2717,"jhagurmukhi",2589,"jheharmenian",1403,"jis",12292,"jmonospace",65354,"jparen",9381,"jsuperior",690,"k",107,"kabashkircyrillic",1185,"kabengali",2453,"kacute",7729,"kacyrillic",1082,"kadescendercyrillic",1179,"kadeva",2325,"kaf",1499,"kafarabic",1603,"kafdagesh",64315,"kafdageshhebrew",64315,"kaffinalarabic",65242,"kafhebrew",1499,"kafinitialarabic",65243,"kafmedialarabic",65244,"kafrafehebrew",64333,"kagujarati",2709,"kagurmukhi",2581,"kahiragana",12363,"kahookcyrillic",1220,"kakatakana",12459,"kakatakanahalfwidth",65398,"kappa",954,"kappasymbolgreek",1008,"kapyeounmieumkorean",12657,"kapyeounphieuphkorean",12676,"kapyeounpieupkorean",12664,"kapyeounssangpieupkorean",12665,"karoriisquare",13069,"kashidaautoarabic",1600,"kashidaautonosidebearingarabic",1600,"kasmallkatakana",12533,"kasquare",13188,"kasraarabic",1616,"kasratanarabic",1613,"kastrokecyrillic",1183,"katahiraprolongmarkhalfwidth",65392,"kaverticalstrokecyrillic",1181,"kbopomofo",12558,"kcalsquare",13193,"kcaron",489,"kcedilla",311,"kcircle",9434,"kcommaaccent",311,"kdotbelow",7731,"keharmenian",1412,"kehiragana",12369,"kekatakana",12465,"kekatakanahalfwidth",65401,"kenarmenian",1391,"kesmallkatakana",12534,"kgreenlandic",312,"khabengali",2454,"khacyrillic",1093,"khadeva",2326,"khagujarati",2710,"khagurmukhi",2582,"khaharabic",1582,"khahfinalarabic",65190,"khahinitialarabic",65191,"khahmedialarabic",65192,"kheicoptic",999,"khhadeva",2393,"khhagurmukhi",2649,"khieukhacirclekorean",12920,"khieukhaparenkorean",12824,"khieukhcirclekorean",12906,"khieukhkorean",12619,"khieukhparenkorean",12810,"khokhaithai",3586,"khokhonthai",3589,"khokhuatthai",3587,"khokhwaithai",3588,"khomutthai",3675,"khook",409,"khorakhangthai",3590,"khzsquare",13201,"kihiragana",12365,"kikatakana",12461,"kikatakanahalfwidth",65399,"kiroguramusquare",13077,"kiromeetorusquare",13078,"kirosquare",13076,"kiyeokacirclekorean",12910,"kiyeokaparenkorean",12814,"kiyeokcirclekorean",12896,"kiyeokkorean",12593,"kiyeokparenkorean",12800,"kiyeoksioskorean",12595,"kjecyrillic",1116,"klinebelow",7733,"klsquare",13208,"kmcubedsquare",13222,"kmonospace",65355,"kmsquaredsquare",13218,"kohiragana",12371,"kohmsquare",13248,"kokaithai",3585,"kokatakana",12467,"kokatakanahalfwidth",65402,"kooposquare",13086,"koppacyrillic",1153,"koreanstandardsymbol",12927,"koroniscmb",835,"kparen",9382,"kpasquare",13226,"ksicyrillic",1135,"ktsquare",13263,"kturned",670,"kuhiragana",12367,"kukatakana",12463,"kukatakanahalfwidth",65400,"kvsquare",13240,"kwsquare",13246,"l",108,"labengali",2482,"lacute",314,"ladeva",2354,"lagujarati",2738,"lagurmukhi",2610,"lakkhangyaothai",3653,"lamaleffinalarabic",65276,"lamalefhamzaabovefinalarabic",65272,"lamalefhamzaaboveisolatedarabic",65271,"lamalefhamzabelowfinalarabic",65274,"lamalefhamzabelowisolatedarabic",65273,"lamalefisolatedarabic",65275,"lamalefmaddaabovefinalarabic",65270,"lamalefmaddaaboveisolatedarabic",65269,"lamarabic",1604,"lambda",955,"lambdastroke",411,"lamed",1500,"lameddagesh",64316,"lameddageshhebrew",64316,"lamedhebrew",1500,"lamfinalarabic",65246,"lamhahinitialarabic",64714,"laminitialarabic",65247,"lamjeeminitialarabic",64713,"lamkhahinitialarabic",64715,"lamlamhehisolatedarabic",65010,"lammedialarabic",65248,"lammeemhahinitialarabic",64904,"lammeeminitialarabic",64716,"largecircle",9711,"lbar",410,"lbelt",620,"lbopomofo",12556,"lcaron",318,"lcedilla",316,"lcircle",9435,"lcircumflexbelow",7741,"lcommaaccent",316,"ldot",320,"ldotaccent",320,"ldotbelow",7735,"ldotbelowmacron",7737,"leftangleabovecmb",794,"lefttackbelowcmb",792,"less",60,"lessequal",8804,"lessequalorgreater",8922,"lessmonospace",65308,"lessorequivalent",8818,"lessorgreater",8822,"lessoverequal",8806,"lesssmall",65124,"lezh",622,"lfblock",9612,"lhookretroflex",621,"lira",8356,"liwnarmenian",1388,"lj",457,"ljecyrillic",1113,"ll",63168,"lladeva",2355,"llagujarati",2739,"llinebelow",7739,"llladeva",2356,"llvocalicbengali",2529,"llvocalicdeva",2401,"llvocalicvowelsignbengali",2531,"llvocalicvowelsigndeva",2403,"lmiddletilde",619,"lmonospace",65356,"lmsquare",13264,"lochulathai",3628,"logicaland",8743,"logicalnot",172,"logicalnotreversed",8976,"logicalor",8744,"lolingthai",3621,"longs",383,"lowlinecenterline",65102,"lowlinecmb",818,"lowlinedashed",65101,"lozenge",9674,"lparen",9383,"lslash",322,"lsquare",8467,"lsuperior",63214,"ltshade",9617,"luthai",3622,"lvocalicbengali",2444,"lvocalicdeva",2316,"lvocalicvowelsignbengali",2530,"lvocalicvowelsigndeva",2402,"lxsquare",13267,"m",109,"mabengali",2478,"macron",175,"macronbelowcmb",817,"macroncmb",772,"macronlowmod",717,"macronmonospace",65507,"macute",7743,"madeva",2350,"magujarati",2734,"magurmukhi",2606,"mahapakhhebrew",1444,"mahapakhlefthebrew",1444,"mahiragana",12414,"maichattawalowleftthai",63637,"maichattawalowrightthai",63636,"maichattawathai",3659,"maichattawaupperleftthai",63635,"maieklowleftthai",63628,"maieklowrightthai",63627,"maiekthai",3656,"maiekupperleftthai",63626,"maihanakatleftthai",63620,"maihanakatthai",3633,"maitaikhuleftthai",63625,"maitaikhuthai",3655,"maitholowleftthai",63631,"maitholowrightthai",63630,"maithothai",3657,"maithoupperleftthai",63629,"maitrilowleftthai",63634,"maitrilowrightthai",63633,"maitrithai",3658,"maitriupperleftthai",63632,"maiyamokthai",3654,"makatakana",12510,"makatakanahalfwidth",65423,"male",9794,"mansyonsquare",13127,"maqafhebrew",1470,"mars",9794,"masoracirclehebrew",1455,"masquare",13187,"mbopomofo",12551,"mbsquare",13268,"mcircle",9436,"mcubedsquare",13221,"mdotaccent",7745,"mdotbelow",7747,"meemarabic",1605,"meemfinalarabic",65250,"meeminitialarabic",65251,"meemmedialarabic",65252,"meemmeeminitialarabic",64721,"meemmeemisolatedarabic",64584,"meetorusquare",13133,"mehiragana",12417,"meizierasquare",13182,"mekatakana",12513,"mekatakanahalfwidth",65426,"mem",1502,"memdagesh",64318,"memdageshhebrew",64318,"memhebrew",1502,"menarmenian",1396,"merkhahebrew",1445,"merkhakefulahebrew",1446,"merkhakefulalefthebrew",1446,"merkhalefthebrew",1445,"mhook",625,"mhzsquare",13202,"middledotkatakanahalfwidth",65381,"middot",183,"mieumacirclekorean",12914,"mieumaparenkorean",12818,"mieumcirclekorean",12900,"mieumkorean",12609,"mieumpansioskorean",12656,"mieumparenkorean",12804,"mieumpieupkorean",12654,"mieumsioskorean",12655,"mihiragana",12415,"mikatakana",12511,"mikatakanahalfwidth",65424,"minus",8722,"minusbelowcmb",800,"minuscircle",8854,"minusmod",727,"minusplus",8723,"minute",8242,"miribaarusquare",13130,"mirisquare",13129,"mlonglegturned",624,"mlsquare",13206,"mmcubedsquare",13219,"mmonospace",65357,"mmsquaredsquare",13215,"mohiragana",12418,"mohmsquare",13249,"mokatakana",12514,"mokatakanahalfwidth",65427,"molsquare",13270,"momathai",3617,"moverssquare",13223,"moverssquaredsquare",13224,"mparen",9384,"mpasquare",13227,"mssquare",13235,"msuperior",63215,"mturned",623,"mu",181,"mu1",181,"muasquare",13186,"muchgreater",8811,"muchless",8810,"mufsquare",13196,"mugreek",956,"mugsquare",13197,"muhiragana",12416,"mukatakana",12512,"mukatakanahalfwidth",65425,"mulsquare",13205,"multiply",215,"mumsquare",13211,"munahhebrew",1443,"munahlefthebrew",1443,"musicalnote",9834,"musicalnotedbl",9835,"musicflatsign",9837,"musicsharpsign",9839,"mussquare",13234,"muvsquare",13238,"muwsquare",13244,"mvmegasquare",13241,"mvsquare",13239,"mwmegasquare",13247,"mwsquare",13245,"n",110,"nabengali",2472,"nabla",8711,"nacute",324,"nadeva",2344,"nagujarati",2728,"nagurmukhi",2600,"nahiragana",12394,"nakatakana",12490,"nakatakanahalfwidth",65413,"napostrophe",329,"nasquare",13185,"nbopomofo",12555,"nbspace",160,"ncaron",328,"ncedilla",326,"ncircle",9437,"ncircumflexbelow",7755,"ncommaaccent",326,"ndotaccent",7749,"ndotbelow",7751,"nehiragana",12397,"nekatakana",12493,"nekatakanahalfwidth",65416,"newsheqelsign",8362,"nfsquare",13195,"ngabengali",2457,"ngadeva",2329,"ngagujarati",2713,"ngagurmukhi",2585,"ngonguthai",3591,"nhiragana",12435,"nhookleft",626,"nhookretroflex",627,"nieunacirclekorean",12911,"nieunaparenkorean",12815,"nieuncieuckorean",12597,"nieuncirclekorean",12897,"nieunhieuhkorean",12598,"nieunkorean",12596,"nieunpansioskorean",12648,"nieunparenkorean",12801,"nieunsioskorean",12647,"nieuntikeutkorean",12646,"nihiragana",12395,"nikatakana",12491,"nikatakanahalfwidth",65414,"nikhahitleftthai",63641,"nikhahitthai",3661,"nine",57,"ninearabic",1641,"ninebengali",2543,"ninecircle",9320,"ninecircleinversesansserif",10130,"ninedeva",2415,"ninegujarati",2799,"ninegurmukhi",2671,"ninehackarabic",1641,"ninehangzhou",12329,"nineideographicparen",12840,"nineinferior",8329,"ninemonospace",65305,"nineoldstyle",63289,"nineparen",9340,"nineperiod",9360,"ninepersian",1785,"nineroman",8568,"ninesuperior",8313,"nineteencircle",9330,"nineteenparen",9350,"nineteenperiod",9370,"ninethai",3673,"nj",460,"njecyrillic",1114,"nkatakana",12531,"nkatakanahalfwidth",65437,"nlegrightlong",414,"nlinebelow",7753,"nmonospace",65358,"nmsquare",13210,"nnabengali",2467,"nnadeva",2339,"nnagujarati",2723,"nnagurmukhi",2595,"nnnadeva",2345,"nohiragana",12398,"nokatakana",12494,"nokatakanahalfwidth",65417,"nonbreakingspace",160,"nonenthai",3603,"nonuthai",3609,"noonarabic",1606,"noonfinalarabic",65254,"noonghunnaarabic",1722,"noonghunnafinalarabic",64415,"nooninitialarabic",65255,"noonjeeminitialarabic",64722,"noonjeemisolatedarabic",64587,"noonmedialarabic",65256,"noonmeeminitialarabic",64725,"noonmeemisolatedarabic",64590,"noonnoonfinalarabic",64653,"notcontains",8716,"notelement",8713,"notelementof",8713,"notequal",8800,"notgreater",8815,"notgreaternorequal",8817,"notgreaternorless",8825,"notidentical",8802,"notless",8814,"notlessnorequal",8816,"notparallel",8742,"notprecedes",8832,"notsubset",8836,"notsucceeds",8833,"notsuperset",8837,"nowarmenian",1398,"nparen",9385,"nssquare",13233,"nsuperior",8319,"ntilde",241,"nu",957,"nuhiragana",12396,"nukatakana",12492,"nukatakanahalfwidth",65415,"nuktabengali",2492,"nuktadeva",2364,"nuktagujarati",2748,"nuktagurmukhi",2620,"numbersign",35,"numbersignmonospace",65283,"numbersignsmall",65119,"numeralsigngreek",884,"numeralsignlowergreek",885,"numero",8470,"nun",1504,"nundagesh",64320,"nundageshhebrew",64320,"nunhebrew",1504,"nvsquare",13237,"nwsquare",13243,"nyabengali",2462,"nyadeva",2334,"nyagujarati",2718,"nyagurmukhi",2590,"o",111,"oacute",243,"oangthai",3629,"obarred",629,"obarredcyrillic",1257,"obarreddieresiscyrillic",1259,"obengali",2451,"obopomofo",12571,"obreve",335,"ocandradeva",2321,"ocandragujarati",2705,"ocandravowelsigndeva",2377,"ocandravowelsigngujarati",2761,"ocaron",466,"ocircle",9438,"ocircumflex",244,"ocircumflexacute",7889,"ocircumflexdotbelow",7897,"ocircumflexgrave",7891,"ocircumflexhookabove",7893,"ocircumflextilde",7895,"ocyrillic",1086,"odblacute",337,"odblgrave",525,"odeva",2323,"odieresis",246,"odieresiscyrillic",1255,"odotbelow",7885,"oe",339,"oekorean",12634,"ogonek",731,"ogonekcmb",808,"ograve",242,"ogujarati",2707,"oharmenian",1413,"ohiragana",12362,"ohookabove",7887,"ohorn",417,"ohornacute",7899,"ohorndotbelow",7907,"ohorngrave",7901,"ohornhookabove",7903,"ohorntilde",7905,"ohungarumlaut",337,"oi",419,"oinvertedbreve",527,"okatakana",12458,"okatakanahalfwidth",65397,"okorean",12631,"olehebrew",1451,"omacron",333,"omacronacute",7763,"omacrongrave",7761,"omdeva",2384,"omega",969,"omega1",982,"omegacyrillic",1121,"omegalatinclosed",631,"omegaroundcyrillic",1147,"omegatitlocyrillic",1149,"omegatonos",974,"omgujarati",2768,"omicron",959,"omicrontonos",972,"omonospace",65359,"one",49,"onearabic",1633,"onebengali",2535,"onecircle",9312,"onecircleinversesansserif",10122,"onedeva",2407,"onedotenleader",8228,"oneeighth",8539,"onefitted",63196,"onegujarati",2791,"onegurmukhi",2663,"onehackarabic",1633,"onehalf",189,"onehangzhou",12321,"oneideographicparen",12832,"oneinferior",8321,"onemonospace",65297,"onenumeratorbengali",2548,"oneoldstyle",63281,"oneparen",9332,"oneperiod",9352,"onepersian",1777,"onequarter",188,"oneroman",8560,"onesuperior",185,"onethai",3665,"onethird",8531,"oogonek",491,"oogonekmacron",493,"oogurmukhi",2579,"oomatragurmukhi",2635,"oopen",596,"oparen",9386,"openbullet",9702,"option",8997,"ordfeminine",170,"ordmasculine",186,"orthogonal",8735,"oshortdeva",2322,"oshortvowelsigndeva",2378,"oslash",248,"oslashacute",511,"osmallhiragana",12361,"osmallkatakana",12457,"osmallkatakanahalfwidth",65387,"ostrokeacute",511,"osuperior",63216,"otcyrillic",1151,"otilde",245,"otildeacute",7757,"otildedieresis",7759,"oubopomofo",12577,"overline",8254,"overlinecenterline",65098,"overlinecmb",773,"overlinedashed",65097,"overlinedblwavy",65100,"overlinewavy",65099,"overscore",175,"ovowelsignbengali",2507,"ovowelsigndeva",2379,"ovowelsigngujarati",2763,"p",112,"paampssquare",13184,"paasentosquare",13099,"pabengali",2474,"pacute",7765,"padeva",2346,"pagedown",8671,"pageup",8670,"pagujarati",2730,"pagurmukhi",2602,"pahiragana",12401,"paiyannoithai",3631,"pakatakana",12497,"palatalizationcyrilliccmb",1156,"palochkacyrillic",1216,"pansioskorean",12671,"paragraph",182,"parallel",8741,"parenleft",40,"parenleftaltonearabic",64830,"parenleftbt",63725,"parenleftex",63724,"parenleftinferior",8333,"parenleftmonospace",65288,"parenleftsmall",65113,"parenleftsuperior",8317,"parenlefttp",63723,"parenleftvertical",65077,"parenright",41,"parenrightaltonearabic",64831,"parenrightbt",63736,"parenrightex",63735,"parenrightinferior",8334,"parenrightmonospace",65289,"parenrightsmall",65114,"parenrightsuperior",8318,"parenrighttp",63734,"parenrightvertical",65078,"partialdiff",8706,"paseqhebrew",1472,"pashtahebrew",1433,"pasquare",13225,"patah",1463,"patah11",1463,"patah1d",1463,"patah2a",1463,"patahhebrew",1463,"patahnarrowhebrew",1463,"patahquarterhebrew",1463,"patahwidehebrew",1463,"pazerhebrew",1441,"pbopomofo",12550,"pcircle",9439,"pdotaccent",7767,"pe",1508,"pecyrillic",1087,"pedagesh",64324,"pedageshhebrew",64324,"peezisquare",13115,"pefinaldageshhebrew",64323,"peharabic",1662,"peharmenian",1402,"pehebrew",1508,"pehfinalarabic",64343,"pehinitialarabic",64344,"pehiragana",12410,"pehmedialarabic",64345,"pekatakana",12506,"pemiddlehookcyrillic",1191,"perafehebrew",64334,"percent",37,"percentarabic",1642,"percentmonospace",65285,"percentsmall",65130,"period",46,"periodarmenian",1417,"periodcentered",183,"periodhalfwidth",65377,"periodinferior",63207,"periodmonospace",65294,"periodsmall",65106,"periodsuperior",63208,"perispomenigreekcmb",834,"perpendicular",8869,"perthousand",8240,"peseta",8359,"pfsquare",13194,"phabengali",2475,"phadeva",2347,"phagujarati",2731,"phagurmukhi",2603,"phi",966,"phi1",981,"phieuphacirclekorean",12922,"phieuphaparenkorean",12826,"phieuphcirclekorean",12908,"phieuphkorean",12621,"phieuphparenkorean",12812,"philatin",632,"phinthuthai",3642,"phisymbolgreek",981,"phook",421,"phophanthai",3614,"phophungthai",3612,"phosamphaothai",3616,"pi",960,"pieupacirclekorean",12915,"pieupaparenkorean",12819,"pieupcieuckorean",12662,"pieupcirclekorean",12901,"pieupkiyeokkorean",12658,"pieupkorean",12610,"pieupparenkorean",12805,"pieupsioskiyeokkorean",12660,"pieupsioskorean",12612,"pieupsiostikeutkorean",12661,"pieupthieuthkorean",12663,"pieuptikeutkorean",12659,"pihiragana",12404,"pikatakana",12500,"pisymbolgreek",982,"piwrarmenian",1411,"plus",43,"plusbelowcmb",799,"pluscircle",8853,"plusminus",177,"plusmod",726,"plusmonospace",65291,"plussmall",65122,"plussuperior",8314,"pmonospace",65360,"pmsquare",13272,"pohiragana",12413,"pointingindexdownwhite",9759,"pointingindexleftwhite",9756,"pointingindexrightwhite",9758,"pointingindexupwhite",9757,"pokatakana",12509,"poplathai",3611,"postalmark",12306,"postalmarkface",12320,"pparen",9387,"precedes",8826,"prescription",8478,"primemod",697,"primereversed",8245,"product",8719,"projective",8965,"prolongedkana",12540,"propellor",8984,"propersubset",8834,"propersuperset",8835,"proportion",8759,"proportional",8733,"psi",968,"psicyrillic",1137,"psilipneumatacyrilliccmb",1158,"pssquare",13232,"puhiragana",12407,"pukatakana",12503,"pvsquare",13236,"pwsquare",13242,"q",113,"qadeva",2392,"qadmahebrew",1448,"qafarabic",1602,"qaffinalarabic",65238,"qafinitialarabic",65239,"qafmedialarabic",65240,"qamats",1464,"qamats10",1464,"qamats1a",1464,"qamats1c",1464,"qamats27",1464,"qamats29",1464,"qamats33",1464,"qamatsde",1464,"qamatshebrew",1464,"qamatsnarrowhebrew",1464,"qamatsqatanhebrew",1464,"qamatsqatannarrowhebrew",1464,"qamatsqatanquarterhebrew",1464,"qamatsqatanwidehebrew",1464,"qamatsquarterhebrew",1464,"qamatswidehebrew",1464,"qarneyparahebrew",1439,"qbopomofo",12561,"qcircle",9440,"qhook",672,"qmonospace",65361,"qof",1511,"qofdagesh",64327,"qofdageshhebrew",64327,"qofhebrew",1511,"qparen",9388,"quarternote",9833,"qubuts",1467,"qubuts18",1467,"qubuts25",1467,"qubuts31",1467,"qubutshebrew",1467,"qubutsnarrowhebrew",1467,"qubutsquarterhebrew",1467,"qubutswidehebrew",1467,"question",63,"questionarabic",1567,"questionarmenian",1374,"questiondown",191,"questiondownsmall",63423,"questiongreek",894,"questionmonospace",65311,"questionsmall",63295,"quotedbl",34,"quotedblbase",8222,"quotedblleft",8220,"quotedblmonospace",65282,"quotedblprime",12318,"quotedblprimereversed",12317,"quotedblright",8221,"quoteleft",8216,"quoteleftreversed",8219,"quotereversed",8219,"quoteright",8217,"quoterightn",329,"quotesinglbase",8218,"quotesingle",39,"quotesinglemonospace",65287,"r",114,"raarmenian",1404,"rabengali",2480,"racute",341,"radeva",2352,"radical",8730,"radicalex",63717,"radoverssquare",13230,"radoverssquaredsquare",13231,"radsquare",13229,"rafe",1471,"rafehebrew",1471,"ragujarati",2736,"ragurmukhi",2608,"rahiragana",12425,"rakatakana",12521,"rakatakanahalfwidth",65431,"ralowerdiagonalbengali",2545,"ramiddlediagonalbengali",2544,"ramshorn",612,"ratio",8758,"rbopomofo",12566,"rcaron",345,"rcedilla",343,"rcircle",9441,"rcommaaccent",343,"rdblgrave",529,"rdotaccent",7769,"rdotbelow",7771,"rdotbelowmacron",7773,"referencemark",8251,"reflexsubset",8838,"reflexsuperset",8839,"registered",174,"registersans",63720,"registerserif",63194,"reharabic",1585,"reharmenian",1408,"rehfinalarabic",65198,"rehiragana",12428,"rekatakana",12524,"rekatakanahalfwidth",65434,"resh",1512,"reshdageshhebrew",64328,"reshhebrew",1512,"reversedtilde",8765,"reviahebrew",1431,"reviamugrashhebrew",1431,"revlogicalnot",8976,"rfishhook",638,"rfishhookreversed",639,"rhabengali",2525,"rhadeva",2397,"rho",961,"rhook",637,"rhookturned",635,"rhookturnedsuperior",693,"rhosymbolgreek",1009,"rhotichookmod",734,"rieulacirclekorean",12913,"rieulaparenkorean",12817,"rieulcirclekorean",12899,"rieulhieuhkorean",12608,"rieulkiyeokkorean",12602,"rieulkiyeoksioskorean",12649,"rieulkorean",12601,"rieulmieumkorean",12603,"rieulpansioskorean",12652,"rieulparenkorean",12803,"rieulphieuphkorean",12607,"rieulpieupkorean",12604,"rieulpieupsioskorean",12651,"rieulsioskorean",12605,"rieulthieuthkorean",12606,"rieultikeutkorean",12650,"rieulyeorinhieuhkorean",12653,"rightangle",8735,"righttackbelowcmb",793,"righttriangle",8895,"rihiragana",12426,"rikatakana",12522,"rikatakanahalfwidth",65432,"ring",730,"ringbelowcmb",805,"ringcmb",778,"ringhalfleft",703,"ringhalfleftarmenian",1369,"ringhalfleftbelowcmb",796,"ringhalfleftcentered",723,"ringhalfright",702,"ringhalfrightbelowcmb",825,"ringhalfrightcentered",722,"rinvertedbreve",531,"rittorusquare",13137,"rlinebelow",7775,"rlongleg",636,"rlonglegturned",634,"rmonospace",65362,"rohiragana",12429,"rokatakana",12525,"rokatakanahalfwidth",65435,"roruathai",3619,"rparen",9389,"rrabengali",2524,"rradeva",2353,"rragurmukhi",2652,"rreharabic",1681,"rrehfinalarabic",64397,"rrvocalicbengali",2528,"rrvocalicdeva",2400,"rrvocalicgujarati",2784,"rrvocalicvowelsignbengali",2500,"rrvocalicvowelsigndeva",2372,"rrvocalicvowelsigngujarati",2756,"rsuperior",63217,"rtblock",9616,"rturned",633,"rturnedsuperior",692,"ruhiragana",12427,"rukatakana",12523,"rukatakanahalfwidth",65433,"rupeemarkbengali",2546,"rupeesignbengali",2547,"rupiah",63197,"ruthai",3620,"rvocalicbengali",2443,"rvocalicdeva",2315,"rvocalicgujarati",2699,"rvocalicvowelsignbengali",2499,"rvocalicvowelsigndeva",2371,"rvocalicvowelsigngujarati",2755,"s",115,"sabengali",2488,"sacute",347,"sacutedotaccent",7781,"sadarabic",1589,"sadeva",2360,"sadfinalarabic",65210,"sadinitialarabic",65211,"sadmedialarabic",65212,"sagujarati",2744,"sagurmukhi",2616,"sahiragana",12373,"sakatakana",12469,"sakatakanahalfwidth",65403,"sallallahoualayhewasallamarabic",65018,"samekh",1505,"samekhdagesh",64321,"samekhdageshhebrew",64321,"samekhhebrew",1505,"saraaathai",3634,"saraaethai",3649,"saraaimaimalaithai",3652,"saraaimaimuanthai",3651,"saraamthai",3635,"saraathai",3632,"saraethai",3648,"saraiileftthai",63622,"saraiithai",3637,"saraileftthai",63621,"saraithai",3636,"saraothai",3650,"saraueeleftthai",63624,"saraueethai",3639,"saraueleftthai",63623,"sarauethai",3638,"sarauthai",3640,"sarauuthai",3641,"sbopomofo",12569,"scaron",353,"scarondotaccent",7783,"scedilla",351,"schwa",601,"schwacyrillic",1241,"schwadieresiscyrillic",1243,"schwahook",602,"scircle",9442,"scircumflex",349,"scommaaccent",537,"sdotaccent",7777,"sdotbelow",7779,"sdotbelowdotaccent",7785,"seagullbelowcmb",828,"second",8243,"secondtonechinese",714,"section",167,"seenarabic",1587,"seenfinalarabic",65202,"seeninitialarabic",65203,"seenmedialarabic",65204,"segol",1462,"segol13",1462,"segol1f",1462,"segol2c",1462,"segolhebrew",1462,"segolnarrowhebrew",1462,"segolquarterhebrew",1462,"segoltahebrew",1426,"segolwidehebrew",1462,"seharmenian",1405,"sehiragana",12379,"sekatakana",12475,"sekatakanahalfwidth",65406,"semicolon",59,"semicolonarabic",1563,"semicolonmonospace",65307,"semicolonsmall",65108,"semivoicedmarkkana",12444,"semivoicedmarkkanahalfwidth",65439,"sentisquare",13090,"sentosquare",13091,"seven",55,"sevenarabic",1639,"sevenbengali",2541,"sevencircle",9318,"sevencircleinversesansserif",10128,"sevendeva",2413,"seveneighths",8542,"sevengujarati",2797,"sevengurmukhi",2669,"sevenhackarabic",1639,"sevenhangzhou",12327,"sevenideographicparen",12838,"seveninferior",8327,"sevenmonospace",65303,"sevenoldstyle",63287,"sevenparen",9338,"sevenperiod",9358,"sevenpersian",1783,"sevenroman",8566,"sevensuperior",8311,"seventeencircle",9328,"seventeenparen",9348,"seventeenperiod",9368,"seventhai",3671,"sfthyphen",173,"shaarmenian",1399,"shabengali",2486,"shacyrillic",1096,"shaddaarabic",1617,"shaddadammaarabic",64609,"shaddadammatanarabic",64606,"shaddafathaarabic",64608,"shaddakasraarabic",64610,"shaddakasratanarabic",64607,"shade",9618,"shadedark",9619,"shadelight",9617,"shademedium",9618,"shadeva",2358,"shagujarati",2742,"shagurmukhi",2614,"shalshelethebrew",1427,"shbopomofo",12565,"shchacyrillic",1097,"sheenarabic",1588,"sheenfinalarabic",65206,"sheeninitialarabic",65207,"sheenmedialarabic",65208,"sheicoptic",995,"sheqel",8362,"sheqelhebrew",8362,"sheva",1456,"sheva115",1456,"sheva15",1456,"sheva22",1456,"sheva2e",1456,"shevahebrew",1456,"shevanarrowhebrew",1456,"shevaquarterhebrew",1456,"shevawidehebrew",1456,"shhacyrillic",1211,"shimacoptic",1005,"shin",1513,"shindagesh",64329,"shindageshhebrew",64329,"shindageshshindot",64300,"shindageshshindothebrew",64300,"shindageshsindot",64301,"shindageshsindothebrew",64301,"shindothebrew",1473,"shinhebrew",1513,"shinshindot",64298,"shinshindothebrew",64298,"shinsindot",64299,"shinsindothebrew",64299,"shook",642,"sigma",963,"sigma1",962,"sigmafinal",962,"sigmalunatesymbolgreek",1010,"sihiragana",12375,"sikatakana",12471,"sikatakanahalfwidth",65404,"siluqhebrew",1469,"siluqlefthebrew",1469,"similar",8764,"sindothebrew",1474,"siosacirclekorean",12916,"siosaparenkorean",12820,"sioscieuckorean",12670,"sioscirclekorean",12902,"sioskiyeokkorean",12666,"sioskorean",12613,"siosnieunkorean",12667,"siosparenkorean",12806,"siospieupkorean",12669,"siostikeutkorean",12668,"six",54,"sixarabic",1638,"sixbengali",2540,"sixcircle",9317,"sixcircleinversesansserif",10127,"sixdeva",2412,"sixgujarati",2796,"sixgurmukhi",2668,"sixhackarabic",1638,"sixhangzhou",12326,"sixideographicparen",12837,"sixinferior",8326,"sixmonospace",65302,"sixoldstyle",63286,"sixparen",9337,"sixperiod",9357,"sixpersian",1782,"sixroman",8565,"sixsuperior",8310,"sixteencircle",9327,"sixteencurrencydenominatorbengali",2553,"sixteenparen",9347,"sixteenperiod",9367,"sixthai",3670,"slash",47,"slashmonospace",65295,"slong",383,"slongdotaccent",7835,"smileface",9786,"smonospace",65363,"sofpasuqhebrew",1475,"softhyphen",173,"softsigncyrillic",1100,"sohiragana",12381,"sokatakana",12477,"sokatakanahalfwidth",65407,"soliduslongoverlaycmb",824,"solidusshortoverlaycmb",823,"sorusithai",3625,"sosalathai",3624,"sosothai",3595,"sosuathai",3626,"space",32,"spacehackarabic",32,"spade",9824,"spadesuitblack",9824,"spadesuitwhite",9828,"sparen",9390,"squarebelowcmb",827,"squarecc",13252,"squarecm",13213,"squarediagonalcrosshatchfill",9641,"squarehorizontalfill",9636,"squarekg",13199,"squarekm",13214,"squarekmcapital",13262,"squareln",13265,"squarelog",13266,"squaremg",13198,"squaremil",13269,"squaremm",13212,"squaremsquared",13217,"squareorthogonalcrosshatchfill",9638,"squareupperlefttolowerrightfill",9639,"squareupperrighttolowerleftfill",9640,"squareverticalfill",9637,"squarewhitewithsmallblack",9635,"srsquare",13275,"ssabengali",2487,"ssadeva",2359,"ssagujarati",2743,"ssangcieuckorean",12617,"ssanghieuhkorean",12677,"ssangieungkorean",12672,"ssangkiyeokkorean",12594,"ssangnieunkorean",12645,"ssangpieupkorean",12611,"ssangsioskorean",12614,"ssangtikeutkorean",12600,"ssuperior",63218,"sterling",163,"sterlingmonospace",65505,"strokelongoverlaycmb",822,"strokeshortoverlaycmb",821,"subset",8834,"subsetnotequal",8842,"subsetorequal",8838,"succeeds",8827,"suchthat",8715,"suhiragana",12377,"sukatakana",12473,"sukatakanahalfwidth",65405,"sukunarabic",1618,"summation",8721,"sun",9788,"superset",8835,"supersetnotequal",8843,"supersetorequal",8839,"svsquare",13276,"syouwaerasquare",13180,"t",116,"tabengali",2468,"tackdown",8868,"tackleft",8867,"tadeva",2340,"tagujarati",2724,"tagurmukhi",2596,"taharabic",1591,"tahfinalarabic",65218,"tahinitialarabic",65219,"tahiragana",12383,"tahmedialarabic",65220,"taisyouerasquare",13181,"takatakana",12479,"takatakanahalfwidth",65408,"tatweelarabic",1600,"tau",964,"tav",1514,"tavdages",64330,"tavdagesh",64330,"tavdageshhebrew",64330,"tavhebrew",1514,"tbar",359,"tbopomofo",12554,"tcaron",357,"tccurl",680,"tcedilla",355,"tcheharabic",1670,"tchehfinalarabic",64379,"tchehinitialarabic",64380,"tchehmedialarabic",64381,"tcircle",9443,"tcircumflexbelow",7793,"tcommaaccent",355,"tdieresis",7831,"tdotaccent",7787,"tdotbelow",7789,"tecyrillic",1090,"tedescendercyrillic",1197,"teharabic",1578,"tehfinalarabic",65174,"tehhahinitialarabic",64674,"tehhahisolatedarabic",64524,"tehinitialarabic",65175,"tehiragana",12390,"tehjeeminitialarabic",64673,"tehjeemisolatedarabic",64523,"tehmarbutaarabic",1577,"tehmarbutafinalarabic",65172,"tehmedialarabic",65176,"tehmeeminitialarabic",64676,"tehmeemisolatedarabic",64526,"tehnoonfinalarabic",64627,"tekatakana",12486,"tekatakanahalfwidth",65411,"telephone",8481,"telephoneblack",9742,"telishagedolahebrew",1440,"telishaqetanahebrew",1449,"tencircle",9321,"tenideographicparen",12841,"tenparen",9341,"tenperiod",9361,"tenroman",8569,"tesh",679,"tet",1496,"tetdagesh",64312,"tetdageshhebrew",64312,"tethebrew",1496,"tetsecyrillic",1205,"tevirhebrew",1435,"tevirlefthebrew",1435,"thabengali",2469,"thadeva",2341,"thagujarati",2725,"thagurmukhi",2597,"thalarabic",1584,"thalfinalarabic",65196,"thanthakhatlowleftthai",63640,"thanthakhatlowrightthai",63639,"thanthakhatthai",3660,"thanthakhatupperleftthai",63638,"theharabic",1579,"thehfinalarabic",65178,"thehinitialarabic",65179,"thehmedialarabic",65180,"thereexists",8707,"therefore",8756,"theta",952,"theta1",977,"thetasymbolgreek",977,"thieuthacirclekorean",12921,"thieuthaparenkorean",12825,"thieuthcirclekorean",12907,"thieuthkorean",12620,"thieuthparenkorean",12811,"thirteencircle",9324,"thirteenparen",9344,"thirteenperiod",9364,"thonangmonthothai",3601,"thook",429,"thophuthaothai",3602,"thorn",254,"thothahanthai",3607,"thothanthai",3600,"thothongthai",3608,"thothungthai",3606,"thousandcyrillic",1154,"thousandsseparatorarabic",1644,"thousandsseparatorpersian",1644,"three",51,"threearabic",1635,"threebengali",2537,"threecircle",9314,"threecircleinversesansserif",10124,"threedeva",2409,"threeeighths",8540,"threegujarati",2793,"threegurmukhi",2665,"threehackarabic",1635,"threehangzhou",12323,"threeideographicparen",12834,"threeinferior",8323,"threemonospace",65299,"threenumeratorbengali",2550,"threeoldstyle",63283,"threeparen",9334,"threeperiod",9354,"threepersian",1779,"threequarters",190,"threequartersemdash",63198,"threeroman",8562,"threesuperior",179,"threethai",3667,"thzsquare",13204,"tihiragana",12385,"tikatakana",12481,"tikatakanahalfwidth",65409,"tikeutacirclekorean",12912,"tikeutaparenkorean",12816,"tikeutcirclekorean",12898,"tikeutkorean",12599,"tikeutparenkorean",12802,"tilde",732,"tildebelowcmb",816,"tildecmb",771,"tildecomb",771,"tildedoublecmb",864,"tildeoperator",8764,"tildeoverlaycmb",820,"tildeverticalcmb",830,"timescircle",8855,"tipehahebrew",1430,"tipehalefthebrew",1430,"tippigurmukhi",2672,"titlocyrilliccmb",1155,"tiwnarmenian",1407,"tlinebelow",7791,"tmonospace",65364,"toarmenian",1385,"tohiragana",12392,"tokatakana",12488,"tokatakanahalfwidth",65412,"tonebarextrahighmod",741,"tonebarextralowmod",745,"tonebarhighmod",742,"tonebarlowmod",744,"tonebarmidmod",743,"tonefive",445,"tonesix",389,"tonetwo",424,"tonos",900,"tonsquare",13095,"topatakthai",3599,"tortoiseshellbracketleft",12308,"tortoiseshellbracketleftsmall",65117,"tortoiseshellbracketleftvertical",65081,"tortoiseshellbracketright",12309,"tortoiseshellbracketrightsmall",65118,"tortoiseshellbracketrightvertical",65082,"totaothai",3605,"tpalatalhook",427,"tparen",9391,"trademark",8482,"trademarksans",63722,"trademarkserif",63195,"tretroflexhook",648,"triagdn",9660,"triaglf",9668,"triagrt",9658,"triagup",9650,"ts",678,"tsadi",1510,"tsadidagesh",64326,"tsadidageshhebrew",64326,"tsadihebrew",1510,"tsecyrillic",1094,"tsere",1461,"tsere12",1461,"tsere1e",1461,"tsere2b",1461,"tserehebrew",1461,"tserenarrowhebrew",1461,"tserequarterhebrew",1461,"tserewidehebrew",1461,"tshecyrillic",1115,"tsuperior",63219,"ttabengali",2463,"ttadeva",2335,"ttagujarati",2719,"ttagurmukhi",2591,"tteharabic",1657,"ttehfinalarabic",64359,"ttehinitialarabic",64360,"ttehmedialarabic",64361,"tthabengali",2464,"tthadeva",2336,"tthagujarati",2720,"tthagurmukhi",2592,"tturned",647,"tuhiragana",12388,"tukatakana",12484,"tukatakanahalfwidth",65410,"tusmallhiragana",12387,"tusmallkatakana",12483,"tusmallkatakanahalfwidth",65391,"twelvecircle",9323,"twelveparen",9343,"twelveperiod",9363,"twelveroman",8571,"twentycircle",9331,"twentyhangzhou",21316,"twentyparen",9351,"twentyperiod",9371,"two",50,"twoarabic",1634,"twobengali",2536,"twocircle",9313,"twocircleinversesansserif",10123,"twodeva",2408,"twodotenleader",8229,"twodotleader",8229,"twodotleadervertical",65072,"twogujarati",2792,"twogurmukhi",2664,"twohackarabic",1634,"twohangzhou",12322,"twoideographicparen",12833,"twoinferior",8322,"twomonospace",65298,"twonumeratorbengali",2549,"twooldstyle",63282,"twoparen",9333,"twoperiod",9353,"twopersian",1778,"tworoman",8561,"twostroke",443,"twosuperior",178,"twothai",3666,"twothirds",8532,"u",117,"uacute",250,"ubar",649,"ubengali",2441,"ubopomofo",12584,"ubreve",365,"ucaron",468,"ucircle",9444,"ucircumflex",251,"ucircumflexbelow",7799,"ucyrillic",1091,"udattadeva",2385,"udblacute",369,"udblgrave",533,"udeva",2313,"udieresis",252,"udieresisacute",472,"udieresisbelow",7795,"udieresiscaron",474,"udieresiscyrillic",1265,"udieresisgrave",476,"udieresismacron",470,"udotbelow",7909,"ugrave",249,"ugujarati",2697,"ugurmukhi",2569,"uhiragana",12358,"uhookabove",7911,"uhorn",432,"uhornacute",7913,"uhorndotbelow",7921,"uhorngrave",7915,"uhornhookabove",7917,"uhorntilde",7919,"uhungarumlaut",369,"uhungarumlautcyrillic",1267,"uinvertedbreve",535,"ukatakana",12454,"ukatakanahalfwidth",65395,"ukcyrillic",1145,"ukorean",12636,"umacron",363,"umacroncyrillic",1263,"umacrondieresis",7803,"umatragurmukhi",2625,"umonospace",65365,"underscore",95,"underscoredbl",8215,"underscoremonospace",65343,"underscorevertical",65075,"underscorewavy",65103,"union",8746,"universal",8704,"uogonek",371,"uparen",9392,"upblock",9600,"upperdothebrew",1476,"upsilon",965,"upsilondieresis",971,"upsilondieresistonos",944,"upsilonlatin",650,"upsilontonos",973,"uptackbelowcmb",797,"uptackmod",724,"uragurmukhi",2675,"uring",367,"ushortcyrillic",1118,"usmallhiragana",12357,"usmallkatakana",12453,"usmallkatakanahalfwidth",65385,"ustraightcyrillic",1199,"ustraightstrokecyrillic",1201,"utilde",361,"utildeacute",7801,"utildebelow",7797,"uubengali",2442,"uudeva",2314,"uugujarati",2698,"uugurmukhi",2570,"uumatragurmukhi",2626,"uuvowelsignbengali",2498,"uuvowelsigndeva",2370,"uuvowelsigngujarati",2754,"uvowelsignbengali",2497,"uvowelsigndeva",2369,"uvowelsigngujarati",2753,"v",118,"vadeva",2357,"vagujarati",2741,"vagurmukhi",2613,"vakatakana",12535,"vav",1493,"vavdagesh",64309,"vavdagesh65",64309,"vavdageshhebrew",64309,"vavhebrew",1493,"vavholam",64331,"vavholamhebrew",64331,"vavvavhebrew",1520,"vavyodhebrew",1521,"vcircle",9445,"vdotbelow",7807,"vecyrillic",1074,"veharabic",1700,"vehfinalarabic",64363,"vehinitialarabic",64364,"vehmedialarabic",64365,"vekatakana",12537,"venus",9792,"verticalbar",124,"verticallineabovecmb",781,"verticallinebelowcmb",809,"verticallinelowmod",716,"verticallinemod",712,"vewarmenian",1406,"vhook",651,"vikatakana",12536,"viramabengali",2509,"viramadeva",2381,"viramagujarati",2765,"visargabengali",2435,"visargadeva",2307,"visargagujarati",2691,"vmonospace",65366,"voarmenian",1400,"voicediterationhiragana",12446,"voicediterationkatakana",12542,"voicedmarkkana",12443,"voicedmarkkanahalfwidth",65438,"vokatakana",12538,"vparen",9393,"vtilde",7805,"vturned",652,"vuhiragana",12436,"vukatakana",12532,"w",119,"wacute",7811,"waekorean",12633,"wahiragana",12431,"wakatakana",12527,"wakatakanahalfwidth",65436,"wakorean",12632,"wasmallhiragana",12430,"wasmallkatakana",12526,"wattosquare",13143,"wavedash",12316,"wavyunderscorevertical",65076,"wawarabic",1608,"wawfinalarabic",65262,"wawhamzaabovearabic",1572,"wawhamzaabovefinalarabic",65158,"wbsquare",13277,"wcircle",9446,"wcircumflex",373,"wdieresis",7813,"wdotaccent",7815,"wdotbelow",7817,"wehiragana",12433,"weierstrass",8472,"wekatakana",12529,"wekorean",12638,"weokorean",12637,"wgrave",7809,"whitebullet",9702,"whitecircle",9675,"whitecircleinverse",9689,"whitecornerbracketleft",12302,"whitecornerbracketleftvertical",65091,"whitecornerbracketright",12303,"whitecornerbracketrightvertical",65092,"whitediamond",9671,"whitediamondcontainingblacksmalldiamond",9672,"whitedownpointingsmalltriangle",9663,"whitedownpointingtriangle",9661,"whiteleftpointingsmalltriangle",9667,"whiteleftpointingtriangle",9665,"whitelenticularbracketleft",12310,"whitelenticularbracketright",12311,"whiterightpointingsmalltriangle",9657,"whiterightpointingtriangle",9655,"whitesmallsquare",9643,"whitesmilingface",9786,"whitesquare",9633,"whitestar",9734,"whitetelephone",9743,"whitetortoiseshellbracketleft",12312,"whitetortoiseshellbracketright",12313,"whiteuppointingsmalltriangle",9653,"whiteuppointingtriangle",9651,"wihiragana",12432,"wikatakana",12528,"wikorean",12639,"wmonospace",65367,"wohiragana",12434,"wokatakana",12530,"wokatakanahalfwidth",65382,"won",8361,"wonmonospace",65510,"wowaenthai",3623,"wparen",9394,"wring",7832,"wsuperior",695,"wturned",653,"wynn",447,"x",120,"xabovecmb",829,"xbopomofo",12562,"xcircle",9447,"xdieresis",7821,"xdotaccent",7819,"xeharmenian",1389,"xi",958,"xmonospace",65368,"xparen",9395,"xsuperior",739,"y",121,"yaadosquare",13134,"yabengali",2479,"yacute",253,"yadeva",2351,"yaekorean",12626,"yagujarati",2735,"yagurmukhi",2607,"yahiragana",12420,"yakatakana",12516,"yakatakanahalfwidth",65428,"yakorean",12625,"yamakkanthai",3662,"yasmallhiragana",12419,"yasmallkatakana",12515,"yasmallkatakanahalfwidth",65388,"yatcyrillic",1123,"ycircle",9448,"ycircumflex",375,"ydieresis",255,"ydotaccent",7823,"ydotbelow",7925,"yeharabic",1610,"yehbarreearabic",1746,"yehbarreefinalarabic",64431,"yehfinalarabic",65266,"yehhamzaabovearabic",1574,"yehhamzaabovefinalarabic",65162,"yehhamzaaboveinitialarabic",65163,"yehhamzaabovemedialarabic",65164,"yehinitialarabic",65267,"yehmedialarabic",65268,"yehmeeminitialarabic",64733,"yehmeemisolatedarabic",64600,"yehnoonfinalarabic",64660,"yehthreedotsbelowarabic",1745,"yekorean",12630,"yen",165,"yenmonospace",65509,"yeokorean",12629,"yeorinhieuhkorean",12678,"yerahbenyomohebrew",1450,"yerahbenyomolefthebrew",1450,"yericyrillic",1099,"yerudieresiscyrillic",1273,"yesieungkorean",12673,"yesieungpansioskorean",12675,"yesieungsioskorean",12674,"yetivhebrew",1434,"ygrave",7923,"yhook",436,"yhookabove",7927,"yiarmenian",1397,"yicyrillic",1111,"yikorean",12642,"yinyang",9775,"yiwnarmenian",1410,"ymonospace",65369,"yod",1497,"yoddagesh",64313,"yoddageshhebrew",64313,"yodhebrew",1497,"yodyodhebrew",1522,"yodyodpatahhebrew",64287,"yohiragana",12424,"yoikorean",12681,"yokatakana",12520,"yokatakanahalfwidth",65430,"yokorean",12635,"yosmallhiragana",12423,"yosmallkatakana",12519,"yosmallkatakanahalfwidth",65390,"yotgreek",1011,"yoyaekorean",12680,"yoyakorean",12679,"yoyakthai",3618,"yoyingthai",3597,"yparen",9396,"ypogegrammeni",890,"ypogegrammenigreekcmb",837,"yr",422,"yring",7833,"ysuperior",696,"ytilde",7929,"yturned",654,"yuhiragana",12422,"yuikorean",12684,"yukatakana",12518,"yukatakanahalfwidth",65429,"yukorean",12640,"yusbigcyrillic",1131,"yusbigiotifiedcyrillic",1133,"yuslittlecyrillic",1127,"yuslittleiotifiedcyrillic",1129,"yusmallhiragana",12421,"yusmallkatakana",12517,"yusmallkatakanahalfwidth",65389,"yuyekorean",12683,"yuyeokorean",12682,"yyabengali",2527,"yyadeva",2399,"z",122,"zaarmenian",1382,"zacute",378,"zadeva",2395,"zagurmukhi",2651,"zaharabic",1592,"zahfinalarabic",65222,"zahinitialarabic",65223,"zahiragana",12374,"zahmedialarabic",65224,"zainarabic",1586,"zainfinalarabic",65200,"zakatakana",12470,"zaqefgadolhebrew",1429,"zaqefqatanhebrew",1428,"zarqahebrew",1432,"zayin",1494,"zayindagesh",64310,"zayindageshhebrew",64310,"zayinhebrew",1494,"zbopomofo",12567,"zcaron",382,"zcircle",9449,"zcircumflex",7825,"zcurl",657,"zdot",380,"zdotaccent",380,"zdotbelow",7827,"zecyrillic",1079,"zedescendercyrillic",1177,"zedieresiscyrillic",1247,"zehiragana",12380,"zekatakana",12476,"zero",48,"zeroarabic",1632,"zerobengali",2534,"zerodeva",2406,"zerogujarati",2790,"zerogurmukhi",2662,"zerohackarabic",1632,"zeroinferior",8320,"zeromonospace",65296,"zerooldstyle",63280,"zeropersian",1776,"zerosuperior",8304,"zerothai",3664,"zerowidthjoiner",65279,"zerowidthnonjoiner",8204,"zerowidthspace",8203,"zeta",950,"zhbopomofo",12563,"zhearmenian",1386,"zhebrevecyrillic",1218,"zhecyrillic",1078,"zhedescendercyrillic",1175,"zhedieresiscyrillic",1245,"zihiragana",12376,"zikatakana",12472,"zinorhebrew",1454,"zlinebelow",7829,"zmonospace",65370,"zohiragana",12382,"zokatakana",12478,"zparen",9397,"zretroflexhook",656,"zstroke",438,"zuhiragana",12378,"zukatakana",12474,".notdef",0,"angbracketleftbig",9001,"angbracketleftBig",9001,"angbracketleftbigg",9001,"angbracketleftBigg",9001,"angbracketrightBig",9002,"angbracketrightbig",9002,"angbracketrightBigg",9002,"angbracketrightbigg",9002,"arrowhookleft",8618,"arrowhookright",8617,"arrowlefttophalf",8636,"arrowleftbothalf",8637,"arrownortheast",8599,"arrownorthwest",8598,"arrowrighttophalf",8640,"arrowrightbothalf",8641,"arrowsoutheast",8600,"arrowsouthwest",8601,"backslashbig",8726,"backslashBig",8726,"backslashBigg",8726,"backslashbigg",8726,"bardbl",8214,"bracehtipdownleft",65079,"bracehtipdownright",65079,"bracehtipupleft",65080,"bracehtipupright",65080,"braceleftBig",123,"braceleftbig",123,"braceleftbigg",123,"braceleftBigg",123,"bracerightBig",125,"bracerightbig",125,"bracerightbigg",125,"bracerightBigg",125,"bracketleftbig",91,"bracketleftBig",91,"bracketleftbigg",91,"bracketleftBigg",91,"bracketrightBig",93,"bracketrightbig",93,"bracketrightbigg",93,"bracketrightBigg",93,"ceilingleftbig",8968,"ceilingleftBig",8968,"ceilingleftBigg",8968,"ceilingleftbigg",8968,"ceilingrightbig",8969,"ceilingrightBig",8969,"ceilingrightbigg",8969,"ceilingrightBigg",8969,"circledotdisplay",8857,"circledottext",8857,"circlemultiplydisplay",8855,"circlemultiplytext",8855,"circleplusdisplay",8853,"circleplustext",8853,"contintegraldisplay",8750,"contintegraltext",8750,"coproductdisplay",8720,"coproducttext",8720,"floorleftBig",8970,"floorleftbig",8970,"floorleftbigg",8970,"floorleftBigg",8970,"floorrightbig",8971,"floorrightBig",8971,"floorrightBigg",8971,"floorrightbigg",8971,"hatwide",770,"hatwider",770,"hatwidest",770,"intercal",7488,"integraldisplay",8747,"integraltext",8747,"intersectiondisplay",8898,"intersectiontext",8898,"logicalanddisplay",8743,"logicalandtext",8743,"logicalordisplay",8744,"logicalortext",8744,"parenleftBig",40,"parenleftbig",40,"parenleftBigg",40,"parenleftbigg",40,"parenrightBig",41,"parenrightbig",41,"parenrightBigg",41,"parenrightbigg",41,"prime",8242,"productdisplay",8719,"producttext",8719,"radicalbig",8730,"radicalBig",8730,"radicalBigg",8730,"radicalbigg",8730,"radicalbt",8730,"radicaltp",8730,"radicalvertex",8730,"slashbig",47,"slashBig",47,"slashBigg",47,"slashbigg",47,"summationdisplay",8721,"summationtext",8721,"tildewide",732,"tildewider",732,"tildewidest",732,"uniondisplay",8899,"unionmultidisplay",8846,"unionmultitext",8846,"unionsqdisplay",8852,"unionsqtext",8852,"uniontext",8899,"vextenddouble",8741,"vextendsingle",8739]})),i=(0,r.getArrayLookupTableFactory)((function(){return["space",32,"a1",9985,"a2",9986,"a202",9987,"a3",9988,"a4",9742,"a5",9990,"a119",9991,"a118",9992,"a117",9993,"a11",9755,"a12",9758,"a13",9996,"a14",9997,"a15",9998,"a16",9999,"a105",1e4,"a17",10001,"a18",10002,"a19",10003,"a20",10004,"a21",10005,"a22",10006,"a23",10007,"a24",10008,"a25",10009,"a26",10010,"a27",10011,"a28",10012,"a6",10013,"a7",10014,"a8",10015,"a9",10016,"a10",10017,"a29",10018,"a30",10019,"a31",10020,"a32",10021,"a33",10022,"a34",10023,"a35",9733,"a36",10025,"a37",10026,"a38",10027,"a39",10028,"a40",10029,"a41",10030,"a42",10031,"a43",10032,"a44",10033,"a45",10034,"a46",10035,"a47",10036,"a48",10037,"a49",10038,"a50",10039,"a51",10040,"a52",10041,"a53",10042,"a54",10043,"a55",10044,"a56",10045,"a57",10046,"a58",10047,"a59",10048,"a60",10049,"a61",10050,"a62",10051,"a63",10052,"a64",10053,"a65",10054,"a66",10055,"a67",10056,"a68",10057,"a69",10058,"a70",10059,"a71",9679,"a72",10061,"a73",9632,"a74",10063,"a203",10064,"a75",10065,"a204",10066,"a76",9650,"a77",9660,"a78",9670,"a79",10070,"a81",9687,"a82",10072,"a83",10073,"a84",10074,"a97",10075,"a98",10076,"a99",10077,"a100",10078,"a101",10081,"a102",10082,"a103",10083,"a104",10084,"a106",10085,"a107",10086,"a108",10087,"a112",9827,"a111",9830,"a110",9829,"a109",9824,"a120",9312,"a121",9313,"a122",9314,"a123",9315,"a124",9316,"a125",9317,"a126",9318,"a127",9319,"a128",9320,"a129",9321,"a130",10102,"a131",10103,"a132",10104,"a133",10105,"a134",10106,"a135",10107,"a136",10108,"a137",10109,"a138",10110,"a139",10111,"a140",10112,"a141",10113,"a142",10114,"a143",10115,"a144",10116,"a145",10117,"a146",10118,"a147",10119,"a148",10120,"a149",10121,"a150",10122,"a151",10123,"a152",10124,"a153",10125,"a154",10126,"a155",10127,"a156",10128,"a157",10129,"a158",10130,"a159",10131,"a160",10132,"a161",8594,"a163",8596,"a164",8597,"a196",10136,"a165",10137,"a192",10138,"a166",10139,"a167",10140,"a168",10141,"a169",10142,"a170",10143,"a171",10144,"a172",10145,"a173",10146,"a162",10147,"a174",10148,"a175",10149,"a176",10150,"a177",10151,"a178",10152,"a179",10153,"a193",10154,"a180",10155,"a199",10156,"a181",10157,"a200",10158,"a182",10159,"a201",10161,"a183",10162,"a184",10163,"a197",10164,"a185",10165,"a194",10166,"a198",10167,"a186",10168,"a195",10169,"a187",10170,"a188",10171,"a189",10172,"a190",10173,"a191",10174,"a89",10088,"a90",10089,"a93",10090,"a94",10091,"a91",10092,"a92",10093,"a205",10094,"a85",10095,"a206",10096,"a86",10097,"a87",10098,"a88",10099,"a95",10100,"a96",10101,".notdef",0]}))},(e,t,a)=>{a.r(t);a.d(t,{clearUnicodeCaches:()=>clearUnicodeCaches,getCharUnicodeCategory:()=>getCharUnicodeCategory,getNormalizedUnicodes:()=>s,getUnicodeForGlyph:()=>getUnicodeForGlyph,getUnicodeRangeFor:()=>getUnicodeRangeFor,mapSpecialUnicodeValues:()=>mapSpecialUnicodeValues,reverseIfRtl:()=>reverseIfRtl});var r=a(8);const n=(0,r.getLookupTableFactory)((function(e){e[63721]=169;e[63193]=169;e[63720]=174;e[63194]=174;e[63722]=8482;e[63195]=8482;e[63729]=9127;e[63730]=9128;e[63731]=9129;e[63740]=9131;e[63741]=9132;e[63742]=9133;e[63726]=9121;e[63727]=9122;e[63728]=9123;e[63737]=9124;e[63738]=9125;e[63739]=9126;e[63723]=9115;e[63724]=9116;e[63725]=9117;e[63734]=9118;e[63735]=9119;e[63736]=9120}));function mapSpecialUnicodeValues(e){return e>=65520&&e<=65535?0:e>=62976&&e<=63743?n()[e]||e:173===e?45:e}function getUnicodeForGlyph(e,t){let a=t[e];if(void 0!==a)return a;if(!e)return-1;if("u"===e[0]){const t=e.length;let r;if(7===t&&"n"===e[1]&&"i"===e[2])r=e.substring(3);else{if(!(t>=5&&t<=7))return-1;r=e.substring(1)}if(r===r.toUpperCase()){a=parseInt(r,16);if(a>=0)return a}}return-1}const i=[{begin:0,end:127},{begin:128,end:255},{begin:256,end:383},{begin:384,end:591},{begin:592,end:687},{begin:688,end:767},{begin:768,end:879},{begin:880,end:1023},{begin:11392,end:11519},{begin:1024,end:1279},{begin:1328,end:1423},{begin:1424,end:1535},{begin:42240,end:42559},{begin:1536,end:1791},{begin:1984,end:2047},{begin:2304,end:2431},{begin:2432,end:2559},{begin:2560,end:2687},{begin:2688,end:2815},{begin:2816,end:2943},{begin:2944,end:3071},{begin:3072,end:3199},{begin:3200,end:3327},{begin:3328,end:3455},{begin:3584,end:3711},{begin:3712,end:3839},{begin:4256,end:4351},{begin:6912,end:7039},{begin:4352,end:4607},{begin:7680,end:7935},{begin:7936,end:8191},{begin:8192,end:8303},{begin:8304,end:8351},{begin:8352,end:8399},{begin:8400,end:8447},{begin:8448,end:8527},{begin:8528,end:8591},{begin:8592,end:8703},{begin:8704,end:8959},{begin:8960,end:9215},{begin:9216,end:9279},{begin:9280,end:9311},{begin:9312,end:9471},{begin:9472,end:9599},{begin:9600,end:9631},{begin:9632,end:9727},{begin:9728,end:9983},{begin:9984,end:10175},{begin:12288,end:12351},{begin:12352,end:12447},{begin:12448,end:12543},{begin:12544,end:12591},{begin:12592,end:12687},{begin:43072,end:43135},{begin:12800,end:13055},{begin:13056,end:13311},{begin:44032,end:55215},{begin:55296,end:57343},{begin:67840,end:67871},{begin:19968,end:40959},{begin:57344,end:63743},{begin:12736,end:12783},{begin:64256,end:64335},{begin:64336,end:65023},{begin:65056,end:65071},{begin:65040,end:65055},{begin:65104,end:65135},{begin:65136,end:65279},{begin:65280,end:65519},{begin:65520,end:65535},{begin:3840,end:4095},{begin:1792,end:1871},{begin:1920,end:1983},{begin:3456,end:3583},{begin:4096,end:4255},{begin:4608,end:4991},{begin:5024,end:5119},{begin:5120,end:5759},{begin:5760,end:5791},{begin:5792,end:5887},{begin:6016,end:6143},{begin:6144,end:6319},{begin:10240,end:10495},{begin:40960,end:42127},{begin:5888,end:5919},{begin:66304,end:66351},{begin:66352,end:66383},{begin:66560,end:66639},{begin:118784,end:119039},{begin:119808,end:120831},{begin:1044480,end:1048573},{begin:65024,end:65039},{begin:917504,end:917631},{begin:6400,end:6479},{begin:6480,end:6527},{begin:6528,end:6623},{begin:6656,end:6687},{begin:11264,end:11359},{begin:11568,end:11647},{begin:19904,end:19967},{begin:43008,end:43055},{begin:65536,end:65663},{begin:65856,end:65935},{begin:66432,end:66463},{begin:66464,end:66527},{begin:66640,end:66687},{begin:66688,end:66735},{begin:67584,end:67647},{begin:68096,end:68191},{begin:119552,end:119647},{begin:73728,end:74751},{begin:119648,end:119679},{begin:7040,end:7103},{begin:7168,end:7247},{begin:7248,end:7295},{begin:43136,end:43231},{begin:43264,end:43311},{begin:43312,end:43359},{begin:43520,end:43615},{begin:65936,end:65999},{begin:66e3,end:66047},{begin:66208,end:66271},{begin:127024,end:127135}];function getUnicodeRangeFor(e){for(let t=0,a=i.length;t=a.begin&&e=t.begin&&e=t.begin&&e=0;r--)a.push(e[r]);return a.join("")}const o=new RegExp("^(\\s)|(\\p{Mn})|(\\p{Cf})$","u"),c=new Map;function getCharUnicodeCategory(e){const t=c.get(e);if(t)return t;const a=e.match(o),r={isWhitespace:!(!a||!a[1]),isZeroWidthDiacritic:!(!a||!a[2]),isInvisibleFormatMark:!(!a||!a[3])};c.set(e,r);return r}function clearUnicodeCaches(){c.clear()}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.MarkupAnnotation=t.AnnotationFactory=t.AnnotationBorderStyle=t.Annotation=void 0;t.getQuadPoints=getQuadPoints;var r=a(2),n=a(8),i=a(23),s=a(5),o=a(9),c=a(60),l=a(66),h=a(24),u=a(69),d=a(73),f=a(62),g=a(10),p=a(74),m=a(77);const b=1.35;t.AnnotationFactory=class AnnotationFactory{static create(e,t,a,r,n){return Promise.all([a.ensureCatalog("acroForm"),a.ensureCatalog("baseUrl"),a.ensureDoc("xfaDatasets"),n?this._getPageIndex(e,t,a):-1]).then((([i,s,o,c])=>a.ensure(this,"_create",[e,t,a,r,i,o,n,c])))}static _create(e,t,a,i,o,c,l,h=-1){const u=e.fetchIfRef(t);if(!(u instanceof s.Dict))return;const d=t instanceof s.Ref?t.toString():`annot_${i.createObjId()}`;let f=u.get("Subtype");f=f instanceof s.Name?f.name:null;const g={xref:e,ref:t,dict:u,subtype:f,id:d,pdfManager:a,acroForm:o instanceof s.Dict?o:s.Dict.empty,xfaDatasets:c,collectFields:l,pageIndex:h};switch(f){case"Link":return new LinkAnnotation(g);case"Text":return new TextAnnotation(g);case"Widget":let e=(0,n.getInheritableProperty)({dict:u,key:"FT"});e=e instanceof s.Name?e.name:null;switch(e){case"Tx":return new TextWidgetAnnotation(g);case"Btn":return new ButtonWidgetAnnotation(g);case"Ch":return new ChoiceWidgetAnnotation(g);case"Sig":return new SignatureWidgetAnnotation(g)}(0,r.warn)(`Unimplemented widget field type "${e}", falling back to base field type.`);return new WidgetAnnotation(g);case"Popup":return new PopupAnnotation(g);case"FreeText":return new FreeTextAnnotation(g);case"Line":return new LineAnnotation(g);case"Square":return new SquareAnnotation(g);case"Circle":return new CircleAnnotation(g);case"PolyLine":return new PolylineAnnotation(g);case"Polygon":return new PolygonAnnotation(g);case"Caret":return new CaretAnnotation(g);case"Ink":return new InkAnnotation(g);case"Highlight":return new HighlightAnnotation(g);case"Underline":return new UnderlineAnnotation(g);case"Squiggly":return new SquigglyAnnotation(g);case"StrikeOut":return new StrikeOutAnnotation(g);case"Stamp":return new StampAnnotation(g);case"FileAttachment":return new FileAttachmentAnnotation(g);default:l||(f?(0,r.warn)(`Unimplemented annotation type "${f}", falling back to base annotation.`):(0,r.warn)("Annotation is missing the required /Subtype."));return new Annotation(g)}}static async _getPageIndex(e,t,a){try{const r=await e.fetchIfRefAsync(t);if(!(r instanceof s.Dict))return-1;const n=r.getRaw("P");if(!(n instanceof s.Ref))return-1;return await a.ensureCatalog("getPageIndex",[n])}catch(e){(0,r.warn)(`_getPageIndex: "${e}".`);return-1}}};function getRgbColor(e,t=new Uint8ClampedArray(3)){if(!Array.isArray(e))return t;const a=t||new Uint8ClampedArray(3);switch(e.length){case 0:return null;case 1:h.ColorSpace.singletons.gray.getRgbItem(e,0,a,0);return a;case 3:h.ColorSpace.singletons.rgb.getRgbItem(e,0,a,0);return a;case 4:h.ColorSpace.singletons.cmyk.getRgbItem(e,0,a,0);return a;default:return t}}function getQuadPoints(e,t){if(!e.has("QuadPoints"))return null;const a=e.getArray("QuadPoints");if(!Array.isArray(a)||0===a.length||a.length%8>0)return null;const r=[];for(let e=0,n=a.length/8;et[2]||st[3]))return null;r[e].push({x:i,y:s})}}return r.map((e=>{const[t,a,r,n]=e.reduce((([e,t,a,r],n)=>[Math.min(e,n.x),Math.max(t,n.x),Math.min(a,n.y),Math.max(r,n.y)]),[Number.MAX_VALUE,Number.MIN_VALUE,Number.MAX_VALUE,Number.MIN_VALUE]);return[{x:t,y:n},{x:a,y:n},{x:t,y:r},{x:a,y:r}]}))}function getTransformMatrix(e,t,a){const[n,i,s,o]=r.Util.getAxialAlignedBoundingBox(t,a);if(n===s||i===o)return[1,0,0,1,e[0],e[1]];const c=(e[2]-e[0])/(s-n),l=(e[3]-e[1])/(o-i);return[c,0,0,l,e[0]-n*c,e[1]-i*l]}class Annotation{constructor(e){const t=e.dict;this.setTitle(t.get("T"));this.setContents(t.get("Contents"));this.setModificationDate(t.get("M"));this.setFlags(t.get("F"));this.setRectangle(t.getArray("Rect"));this.setColor(t.getArray("C"));this.setBorderStyle(t);this.setAppearance(t);this.setBorderAndBackgroundColors(t.get("MK"));this._streams=[];this.appearance&&this._streams.push(this.appearance);this.data={annotationFlags:this.flags,borderStyle:this.borderStyle,color:this.color,backgroundColor:this.backgroundColor,borderColor:this.borderColor,contentsObj:this._contents,hasAppearance:!!this.appearance,id:e.id,modificationDate:this.modificationDate,rect:this.rectangle,subtype:e.subtype,hasOwnCanvas:!1};if(e.collectFields){const a=t.get("Kids");if(Array.isArray(a)){const e=[];for(const t of a)t instanceof s.Ref&&e.push(t.toString());0!==e.length&&(this.data.kidIds=e)}this.data.actions=(0,n.collectActions)(e.xref,t,r.AnnotationActionEventType);this.data.fieldName=this._constructFieldName(t);this.data.pageIndex=e.pageIndex}this._fallbackFontDict=null}_hasFlag(e,t){return!!(e&t)}_isViewable(e){return!this._hasFlag(e,r.AnnotationFlag.INVISIBLE)&&!this._hasFlag(e,r.AnnotationFlag.NOVIEW)}_isPrintable(e){return this._hasFlag(e,r.AnnotationFlag.PRINT)&&!this._hasFlag(e,r.AnnotationFlag.INVISIBLE)}mustBeViewed(e){const t=e&&e.get(this.data.id);return t&&void 0!==t.hidden?!t.hidden:this.viewable&&!this._hasFlag(this.flags,r.AnnotationFlag.HIDDEN)}mustBePrinted(e){const t=e&&e.get(this.data.id);return t&&void 0!==t.print?t.print:this.printable}get viewable(){return null!==this.data.quadPoints&&(0===this.flags||this._isViewable(this.flags))}get printable(){return null!==this.data.quadPoints&&(0!==this.flags&&this._isPrintable(this.flags))}_parseStringHelper(e){const t="string"==typeof e?(0,r.stringToPDFString)(e):"";return{str:t,dir:t&&"rtl"===(0,c.bidi)(t).dir?"rtl":"ltr"}}setTitle(e){this._title=this._parseStringHelper(e)}setContents(e){this._contents=this._parseStringHelper(e)}setModificationDate(e){this.modificationDate="string"==typeof e?e:null}setFlags(e){this.flags=Number.isInteger(e)&&e>0?e:0}hasFlag(e){return this._hasFlag(this.flags,e)}setRectangle(e){Array.isArray(e)&&4===e.length?this.rectangle=r.Util.normalizeRect(e):this.rectangle=[0,0,0,0]}setColor(e){this.color=getRgbColor(e)}setLineEndings(e){this.lineEndings=["None","None"];if(Array.isArray(e)&&2===e.length)for(let t=0;t<2;t++){const a=e[t];if(a instanceof s.Name)switch(a.name){case"None":continue;case"Square":case"Circle":case"Diamond":case"OpenArrow":case"ClosedArrow":case"Butt":case"ROpenArrow":case"RClosedArrow":case"Slash":this.lineEndings[t]=a.name;continue}(0,r.warn)(`Ignoring invalid lineEnding: ${a}`)}}setBorderAndBackgroundColors(e){if(e instanceof s.Dict){this.borderColor=getRgbColor(e.getArray("BC"),null);this.backgroundColor=getRgbColor(e.getArray("BG"),null)}else this.borderColor=this.backgroundColor=null}setBorderStyle(e){this.borderStyle=new AnnotationBorderStyle;if(e instanceof s.Dict)if(e.has("BS")){const t=e.get("BS"),a=t.get("Type");if(!a||(0,s.isName)(a,"Border")){this.borderStyle.setWidth(t.get("W"),this.rectangle);this.borderStyle.setStyle(t.get("S"));this.borderStyle.setDashArray(t.getArray("D"))}}else if(e.has("Border")){const t=e.getArray("Border");if(Array.isArray(t)&&t.length>=3){this.borderStyle.setHorizontalCornerRadius(t[0]);this.borderStyle.setVerticalCornerRadius(t[1]);this.borderStyle.setWidth(t[2],this.rectangle);4===t.length&&this.borderStyle.setDashArray(t[3],!0)}}else this.borderStyle.setWidth(0)}setAppearance(e){this.appearance=null;const t=e.get("AP");if(!(t instanceof s.Dict))return;const a=t.get("N");if(a instanceof o.BaseStream){this.appearance=a;return}if(!(a instanceof s.Dict))return;const r=e.get("AS");r instanceof s.Name&&a.has(r.name)&&(this.appearance=a.get(r.name))}loadResources(e,t){return t.dict.getAsync("Resources").then((t=>{if(!t)return;return new d.ObjectLoader(t,e,t.xref).load().then((function(){return t}))}))}getOperatorList(e,t,a,n,i){const o=this.data;let c=this.appearance;const l=o.hasOwnCanvas&&a&r.RenderingIntentFlag.DISPLAY;if(!c){if(!l)return Promise.resolve(new f.OperatorList);c=new g.StringStream("");c.dict=new s.Dict}const h=c.dict,u=this.loadResources(["ExtGState","ColorSpace","Pattern","Shading","XObject","Font"],c),d=h.getArray("BBox")||[0,0,1,1],p=h.getArray("Matrix")||[1,0,0,1,0,0],m=getTransformMatrix(o.rect,d,p);return u.then((a=>{const n=new f.OperatorList;n.addOp(r.OPS.beginAnnotation,[o.id,o.rect,m,p,l]);return e.getOperatorList({stream:c,task:t,resources:a,operatorList:n,fallbackFontDict:this._fallbackFontDict}).then((()=>{n.addOp(r.OPS.endAnnotation,[]);this.reset();return n}))}))}async save(e,t,a){return null}getFieldObject(){return this.data.kidIds?{id:this.data.id,actions:this.data.actions,name:this.data.fieldName,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,type:"",kidIds:this.data.kidIds,page:this.data.pageIndex}:null}reset(){for(const e of this._streams)e.reset()}_constructFieldName(e){if(!e.has("T")&&!e.has("Parent")){(0,r.warn)("Unknown field name, falling back to empty field name.");return""}if(!e.has("Parent"))return(0,r.stringToPDFString)(e.get("T"));const t=[];e.has("T")&&t.unshift((0,r.stringToPDFString)(e.get("T")));let a=e;const n=new s.RefSet;e.objId&&n.put(e.objId);for(;a.has("Parent");){a=a.get("Parent");if(!(a instanceof s.Dict)||a.objId&&n.has(a.objId))break;a.objId&&n.put(a.objId);a.has("T")&&t.unshift((0,r.stringToPDFString)(a.get("T")))}return t.join(".")}}t.Annotation=Annotation;class AnnotationBorderStyle{constructor(){this.width=1;this.style=r.AnnotationBorderStyleType.SOLID;this.dashArray=[3];this.horizontalCornerRadius=0;this.verticalCornerRadius=0}setWidth(e,t=[0,0,0,0]){if(e instanceof s.Name)this.width=0;else if("number"==typeof e){if(e>0){const a=(t[2]-t[0])/2,n=(t[3]-t[1])/2;if(a>0&&n>0&&(e>a||e>n)){(0,r.warn)(`AnnotationBorderStyle.setWidth - ignoring width: ${e}`);e=1}}this.width=e}}setStyle(e){if(e instanceof s.Name)switch(e.name){case"S":this.style=r.AnnotationBorderStyleType.SOLID;break;case"D":this.style=r.AnnotationBorderStyleType.DASHED;break;case"B":this.style=r.AnnotationBorderStyleType.BEVELED;break;case"I":this.style=r.AnnotationBorderStyleType.INSET;break;case"U":this.style=r.AnnotationBorderStyleType.UNDERLINE}}setDashArray(e,t=!1){if(Array.isArray(e)&&e.length>0){let a=!0,r=!0;for(const t of e){if(!(+t>=0)){a=!1;break}t>0&&(r=!1)}if(a&&!r){this.dashArray=e;t&&this.setStyle(s.Name.get("D"))}else this.width=0}else e&&(this.width=0)}setHorizontalCornerRadius(e){Number.isInteger(e)&&(this.horizontalCornerRadius=e)}setVerticalCornerRadius(e){Number.isInteger(e)&&(this.verticalCornerRadius=e)}}t.AnnotationBorderStyle=AnnotationBorderStyle;class MarkupAnnotation extends Annotation{constructor(e){super(e);const t=e.dict;if(t.has("IRT")){const e=t.getRaw("IRT");this.data.inReplyTo=e instanceof s.Ref?e.toString():null;const a=t.get("RT");this.data.replyType=a instanceof s.Name?a.name:r.AnnotationReplyType.REPLY}if(this.data.replyType===r.AnnotationReplyType.GROUP){const e=t.get("IRT");this.setTitle(e.get("T"));this.data.titleObj=this._title;this.setContents(e.get("Contents"));this.data.contentsObj=this._contents;if(e.has("CreationDate")){this.setCreationDate(e.get("CreationDate"));this.data.creationDate=this.creationDate}else this.data.creationDate=null;if(e.has("M")){this.setModificationDate(e.get("M"));this.data.modificationDate=this.modificationDate}else this.data.modificationDate=null;this.data.hasPopup=e.has("Popup");if(e.has("C")){this.setColor(e.getArray("C"));this.data.color=this.color}else this.data.color=null}else{this.data.titleObj=this._title;this.setCreationDate(t.get("CreationDate"));this.data.creationDate=this.creationDate;this.data.hasPopup=t.has("Popup");t.has("C")||(this.data.color=null)}t.has("RC")&&(this.data.richText=m.XFAFactory.getRichTextAsHtml(t.get("RC")))}setCreationDate(e){this.creationDate="string"==typeof e?e:null}_setDefaultAppearance({xref:e,extra:t,strokeColor:a,fillColor:r,blendMode:n,strokeAlpha:i,fillAlpha:o,pointsCallback:c}){let l=Number.MAX_VALUE,h=Number.MAX_VALUE,u=Number.MIN_VALUE,d=Number.MIN_VALUE;const f=["q"];t&&f.push(t);a&&f.push(`${a[0]} ${a[1]} ${a[2]} RG`);r&&f.push(`${r[0]} ${r[1]} ${r[2]} rg`);let p=this.data.quadPoints;p||(p=[[{x:this.rectangle[0],y:this.rectangle[3]},{x:this.rectangle[2],y:this.rectangle[3]},{x:this.rectangle[0],y:this.rectangle[1]},{x:this.rectangle[2],y:this.rectangle[1]}]]);for(const e of p){const[t,a,r,n]=c(f,e);l=Math.min(l,t);u=Math.max(u,a);h=Math.min(h,r);d=Math.max(d,n)}f.push("Q");const m=new s.Dict(e),b=new s.Dict(e);b.set("Subtype",s.Name.get("Form"));const y=new g.StringStream(f.join(" "));y.dict=b;m.set("Fm0",y);const w=new s.Dict(e);n&&w.set("BM",s.Name.get(n));"number"==typeof i&&w.set("CA",i);"number"==typeof o&&w.set("ca",o);const S=new s.Dict(e);S.set("GS0",w);const x=new s.Dict(e);x.set("ExtGState",S);x.set("XObject",m);const k=new s.Dict(e);k.set("Resources",x);const C=this.data.rect=[l,h,u,d];k.set("BBox",C);this.appearance=new g.StringStream("/GS0 gs /Fm0 Do");this.appearance.dict=k;this._streams.push(this.appearance,y)}}t.MarkupAnnotation=MarkupAnnotation;class WidgetAnnotation extends Annotation{constructor(e){super(e);const t=e.dict,a=this.data;this.ref=e.ref;a.annotationType=r.AnnotationType.WIDGET;void 0===a.fieldName&&(a.fieldName=this._constructFieldName(t));void 0===a.actions&&(a.actions=(0,n.collectActions)(e.xref,t,r.AnnotationActionEventType));let o=(0,n.getInheritableProperty)({dict:t,key:"V",getArray:!0});a.fieldValue=this._decodeFormValue(o);const c=(0,n.getInheritableProperty)({dict:t,key:"DV",getArray:!0});a.defaultFieldValue=this._decodeFormValue(c);if(void 0===o&&e.xfaDatasets){const t=this._title.str;if(t){this._hasValueFromXFA=!0;a.fieldValue=o=e.xfaDatasets.getValue(t)}}void 0===o&&null!==a.defaultFieldValue&&(a.fieldValue=a.defaultFieldValue);a.alternativeText=(0,r.stringToPDFString)(t.get("TU")||"");const l=(0,n.getInheritableProperty)({dict:t,key:"DA"})||e.acroForm.get("DA");this._defaultAppearance="string"==typeof l?l:"";a.defaultAppearanceData=(0,i.parseDefaultAppearance)(this._defaultAppearance);const h=(0,n.getInheritableProperty)({dict:t,key:"FT"});a.fieldType=h instanceof s.Name?h.name:null;const u=(0,n.getInheritableProperty)({dict:t,key:"DR"}),d=e.acroForm.get("DR"),f=this.appearance&&this.appearance.dict.get("Resources");this._fieldResources={localResources:u,acroFormResources:d,appearanceResources:f,mergedResources:s.Dict.merge({xref:e.xref,dictArray:[u,f,d],mergeSubDicts:!0})};a.fieldFlags=(0,n.getInheritableProperty)({dict:t,key:"Ff"});(!Number.isInteger(a.fieldFlags)||a.fieldFlags<0)&&(a.fieldFlags=0);a.readOnly=this.hasFieldFlag(r.AnnotationFieldFlag.READONLY);a.hidden=this._hasFlag(a.annotationFlags,r.AnnotationFlag.HIDDEN)}_decodeFormValue(e){return Array.isArray(e)?e.filter((e=>"string"==typeof e)).map((e=>(0,r.stringToPDFString)(e))):e instanceof s.Name?(0,r.stringToPDFString)(e.name):"string"==typeof e?(0,r.stringToPDFString)(e):null}hasFieldFlag(e){return!!(this.data.fieldFlags&e)}getOperatorList(e,t,a,n,i){return!n||this instanceof SignatureWidgetAnnotation?this._hasText?this._getAppearance(e,t,i).then((s=>{if(this.appearance&&null===s)return super.getOperatorList(e,t,a,n,i);const o=new f.OperatorList;if(!this._defaultAppearance||null===s)return o;const c=[1,0,0,1,0,0],l=[0,0,this.data.rect[2]-this.data.rect[0],this.data.rect[3]-this.data.rect[1]],h=getTransformMatrix(this.data.rect,l,c);o.addOp(r.OPS.beginAnnotation,[this.data.id,this.data.rect,h,c]);const u=new g.StringStream(s);return e.getOperatorList({stream:u,task:t,resources:this._fieldResources.mergedResources,operatorList:o}).then((function(){o.addOp(r.OPS.endAnnotation,[]);return o}))})):super.getOperatorList(e,t,a,n,i):Promise.resolve(new f.OperatorList)}async save(e,t,a){const n=a?a.get(this.data.id):void 0;let i=n&&n.value;if(i===this.data.fieldValue||void 0===i){if(!this._hasValueFromXFA)return null;i=i||this.data.fieldValue}if(!this._hasValueFromXFA&&Array.isArray(i)&&Array.isArray(this.data.fieldValue)&&i.length===this.data.fieldValue.length&&i.every(((e,t)=>e===this.data.fieldValue[t])))return null;let o=await this._getAppearance(e,t,a);if(null===o)return null;const{xref:c}=e,l=c.fetchIfRef(this.ref);if(!(l instanceof s.Dict))return null;const h=[0,0,this.data.rect[2]-this.data.rect[0],this.data.rect[3]-this.data.rect[1]],u={path:(0,r.stringToPDFString)(l.get("T")||""),value:i},d=c.getNewRef(),f=new s.Dict(c);f.set("N",d);const g=c.encrypt;let m=null,b=null;if(g){m=g.createCipherTransform(this.ref.num,this.ref.gen);b=g.createCipherTransform(d.num,d.gen);o=b.encryptString(o)}const encoder=e=>(0,r.isAscii)(e)?e:(0,r.stringToUTF16BEString)(e);l.set("V",Array.isArray(i)?i.map(encoder):encoder(i));l.set("AP",f);l.set("M",`D:${(0,r.getModificationDate)()}`);const y=new s.Dict(c);y.set("Length",o.length);y.set("Subtype",s.Name.get("Form"));y.set("Resources",this._getSaveFieldResources(c));y.set("BBox",h);const w=[`${this.ref.num} ${this.ref.gen} obj\n`];(0,p.writeDict)(l,w,m);w.push("\nendobj\n");const S=[`${d.num} ${d.gen} obj\n`];(0,p.writeDict)(y,S,b);S.push(" stream\n",o,"\nendstream\nendobj\n");return[{ref:this.ref,data:w.join(""),xfa:u},{ref:d,data:S.join(""),xfa:null}]}async _getAppearance(e,t,a){if(this.hasFieldFlag(r.AnnotationFieldFlag.PASSWORD))return null;const n=a?a.get(this.data.id):void 0;let s=n&&(n.formattedValue||n.value);if(void 0===s){if(!this._hasValueFromXFA||this.appearance)return null;s=this.data.fieldValue;if(!s)return""}(0,r.assert)("string"==typeof s,"Expected `value` to be a string.");s=s.trim();if(""===s)return"";let o=-1;this.data.multiLine&&(o=s.split(/\r\n|\r|\n/).length);const c=this.data.rect[3]-this.data.rect[1],l=this.data.rect[2]-this.data.rect[0];this._defaultAppearance||(this.data.defaultAppearanceData=(0,i.parseDefaultAppearance)(this._defaultAppearance="/Helvetica 0 Tf 0 g"));const h=await this._getFontData(e,t),[u,d]=this._computeFontSize(c-2,l-4,s,h,o);let f=h.descent;isNaN(f)&&(f=0);const g=2+Math.abs(f)*d,p=this.data.textAlignment;if(this.data.multiLine)return this._getMultilineAppearance(u,s,h,d,l,c,p,2,g);const m=h.encodeString(s).join("");if(this.data.comb)return this._getCombAppearance(u,h,m,l,2,g);if(0===p||p>2)return"/Tx BMC q BT "+u+` 1 0 0 1 2 ${g} Tm (${(0,r.escapeString)(m)}) Tj ET Q EMC`;return"/Tx BMC q BT "+u+` 1 0 0 1 0 0 Tm ${this._renderText(m,h,d,l,p,2,g)} ET Q EMC`}async _getFontData(e,t){const a=new f.OperatorList,r={font:null,clone(){return this}},{fontName:n,fontSize:i}=this.data.defaultAppearanceData;await e.handleSetFont(this._fieldResources.mergedResources,[n&&s.Name.get(n),i],null,a,t,r,null);return r.font}_getTextWidth(e,t){return t.charsToGlyphs(e).reduce(((e,t)=>e+t.width),0)/1e3}_computeFontSize(e,t,a,r,n){let{fontSize:s}=this.data.defaultAppearanceData;if(!s){const roundWithTwoDigits=e=>Math.floor(100*e)/100;if(-1===n){const n=this._getTextWidth(a,r);s=roundWithTwoDigits(Math.min(e/b,t/n))}else{const i=a.split(/\r\n?|\n/),o=[];for(const e of i){const t=r.encodeString(e).join(""),a=r.charsToGlyphs(t),n=r.getCharPositions(t);o.push({line:t,glyphs:a,positions:n})}const isTooBig=a=>{let n=0;for(const i of o){n+=this._splitLine(null,r,a,t,i).length*a;if(n>e)return!0}return!1};s=12;let c=s*b,l=Math.round(e/c);l=Math.max(l,n);for(;;){c=e/l;s=roundWithTwoDigits(c/b);if(!isTooBig(s))break;l++}}const{fontName:o,fontColor:c}=this.data.defaultAppearanceData;this._defaultAppearance=(0,i.createDefaultAppearance)({fontSize:s,fontName:o,fontColor:c})}return[this._defaultAppearance,s]}_renderText(e,t,a,n,i,s,o){let c;if(1===i){c=(n-this._getTextWidth(e,t)*a)/2}else if(2===i){c=n-this._getTextWidth(e,t)*a-s}else c=s;c=c.toFixed(2);return`${c} ${o=o.toFixed(2)} Td (${(0,r.escapeString)(e)}) Tj`}_getSaveFieldResources(e){const{localResources:t,appearanceResources:a,acroFormResources:r}=this._fieldResources,n=this.data.defaultAppearanceData&&this.data.defaultAppearanceData.fontName;if(!n)return t||s.Dict.empty;for(const e of[t,a])if(e instanceof s.Dict){const t=e.get("Font");if(t instanceof s.Dict&&t.has(n))return e}if(r instanceof s.Dict){const a=r.get("Font");if(a instanceof s.Dict&&a.has(n)){const r=new s.Dict(e);r.set(n,a.getRaw(n));const i=new s.Dict(e);i.set("Font",r);return s.Dict.merge({xref:e,dictArray:[i,t],mergeSubDicts:!0})}}return t||s.Dict.empty}getFieldObject(){return null}}class TextWidgetAnnotation extends WidgetAnnotation{constructor(e){super(e);this._hasText=!0;const t=e.dict;"string"!=typeof this.data.fieldValue&&(this.data.fieldValue="");let a=(0,n.getInheritableProperty)({dict:t,key:"Q"});(!Number.isInteger(a)||a<0||a>2)&&(a=null);this.data.textAlignment=a;let i=(0,n.getInheritableProperty)({dict:t,key:"MaxLen"});(!Number.isInteger(i)||i<0)&&(i=null);this.data.maxLen=i;this.data.multiLine=this.hasFieldFlag(r.AnnotationFieldFlag.MULTILINE);this.data.comb=this.hasFieldFlag(r.AnnotationFieldFlag.COMB)&&!this.hasFieldFlag(r.AnnotationFieldFlag.MULTILINE)&&!this.hasFieldFlag(r.AnnotationFieldFlag.PASSWORD)&&!this.hasFieldFlag(r.AnnotationFieldFlag.FILESELECT)&&null!==this.data.maxLen}_getCombAppearance(e,t,a,n,i,s){const o=(n/this.data.maxLen).toFixed(2),c=[],l=t.getCharPositions(a);for(const[e,t]of l)c.push(`(${(0,r.escapeString)(a.substring(e,t))}) Tj`);return"/Tx BMC q BT "+e+` 1 0 0 1 ${i} ${s} Tm ${c.join(` ${o} 0 Td `)} ET Q EMC`}_getMultilineAppearance(e,t,a,r,n,i,s,o,c){const l=t.split(/\r\n?|\n/),h=[],u=n-2*o;for(const e of l){const t=this._splitLine(e,a,r,u);for(const e of t){const t=0===h.length?o:0;h.push(this._renderText(e,a,r,n,s,t,-r))}}return"/Tx BMC q BT "+e+` 1 0 0 1 0 ${i} Tm ${h.join("\n")} ET Q EMC`}_splitLine(e,t,a,r,n={}){e=n.line||t.encodeString(e).join("");const i=n.glyphs||t.charsToGlyphs(e);if(i.length<=1)return[e];const s=n.positions||t.getCharPositions(e),o=a/1e3,c=[];let l=-1,h=-1,u=-1,d=0,f=0;for(let t=0,a=i.length;tr){c.push(e.substring(d,a));d=a;f=p;l=-1;u=-1}else{f+=p;l=a;h=n;u=t}else if(f+p>r)if(-1!==l){c.push(e.substring(d,h));d=h;t=u+1;l=-1;f=0}else{c.push(e.substring(d,a));d=a;f=p}else f+=p}d"Off"!==e));i.length=0;i.push("Off",e)}i.includes(this.data.fieldValue)||(this.data.fieldValue="Off");this.data.exportValue=i[1];this.checkedAppearance=a.get(this.data.exportValue)||null;this.uncheckedAppearance=a.get("Off")||null;this.checkedAppearance?this._streams.push(this.checkedAppearance):this._getDefaultCheckedAppearance(e,"check");this.uncheckedAppearance&&this._streams.push(this.uncheckedAppearance);this._fallbackFontDict=this.fallbackFontDict}_processRadioButton(e){this.data.fieldValue=this.data.buttonValue=null;const t=e.dict.get("Parent");if(t instanceof s.Dict){this.parent=e.dict.getRaw("Parent");const a=t.get("V");a instanceof s.Name&&(this.data.fieldValue=this._decodeFormValue(a))}const a=e.dict.get("AP");if(!(a instanceof s.Dict))return;const r=a.get("N");if(r instanceof s.Dict){for(const e of r.getKeys())if("Off"!==e){this.data.buttonValue=this._decodeFormValue(e);break}this.checkedAppearance=r.get(this.data.buttonValue)||null;this.uncheckedAppearance=r.get("Off")||null;this.checkedAppearance?this._streams.push(this.checkedAppearance):this._getDefaultCheckedAppearance(e,"disc");this.uncheckedAppearance&&this._streams.push(this.uncheckedAppearance);this._fallbackFontDict=this.fallbackFontDict}}_processPushButton(e){if(e.dict.has("A")||e.dict.has("AA")||this.data.alternativeText){this.data.isTooltipOnly=!e.dict.has("A")&&!e.dict.has("AA");l.Catalog.parseDestDictionary({destDict:e.dict,resultObj:this.data,docBaseUrl:e.pdfManager.docBaseUrl})}else(0,r.warn)("Push buttons without action dictionaries are not supported")}getFieldObject(){let e,t="button";if(this.data.checkBox){t="checkbox";e=this.data.exportValue}else if(this.data.radioButton){t="radiobutton";e=this.data.buttonValue}return{id:this.data.id,value:this.data.fieldValue||"Off",defaultValue:this.data.defaultFieldValue,exportValues:e,editable:!this.data.readOnly,name:this.data.fieldName,rect:this.data.rect,hidden:this.data.hidden,actions:this.data.actions,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,type:t}}get fallbackFontDict(){const e=new s.Dict;e.set("BaseFont",s.Name.get("ZapfDingbats"));e.set("Type",s.Name.get("FallbackType"));e.set("Subtype",s.Name.get("FallbackType"));e.set("Encoding",s.Name.get("ZapfDingbatsEncoding"));return(0,r.shadow)(this,"fallbackFontDict",e)}}class ChoiceWidgetAnnotation extends WidgetAnnotation{constructor(e){super(e);this.data.options=[];const t=(0,n.getInheritableProperty)({dict:e.dict,key:"Opt"});if(Array.isArray(t)){const a=e.xref;for(let e=0,r=t.length;e0?this.data.fieldValue[0]:null;return{id:this.data.id,value:t,defaultValue:this.data.defaultFieldValue,editable:!this.data.readOnly,name:this.data.fieldName,rect:this.data.rect,numItems:this.data.fieldValue.length,multipleSelection:this.data.multiSelect,hidden:this.data.hidden,actions:this.data.actions,items:this.data.options,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,type:e}}async _getAppearance(e,t,a){if(this.data.combo)return super._getAppearance(e,t,a);if(!a)return null;const r=a.get(this.data.id);let n=r&&r.value;if(void 0===n)return null;Array.isArray(n)||(n=[n]);const s=this.data.rect[3]-this.data.rect[1],o=this.data.rect[2]-this.data.rect[0],c=this.data.options.length,l=[];for(let e=0;ea){a=r;t=e}}[u,d]=this._computeFontSize(e,o-4,t,h,-1)}const f=d*b,g=(f-d)/2,p=Math.floor(s/f);let m;if(1===l.length){const e=l[0];m=e-e%p}else m=l.length?l[0]:0;const y=Math.min(m+p+1,c),w=["/Tx BMC q",`1 1 ${o} ${s} re W n`];if(l.length){w.push("0.600006 0.756866 0.854904 rg");for(const e of l)m<=e&&ee/255)):[0,0,0],i=t.get("CA");let s=null,o=t.getArray("IC");if(o){o=getRgbColor(o,null);s=o?Array.from(o).map((e=>e/255)):null}const c=s?i:null,l=this.borderStyle.width||1,h=2*l,u=[this.data.lineCoordinates[0]-h,this.data.lineCoordinates[1]-h,this.data.lineCoordinates[2]+h,this.data.lineCoordinates[3]+h];r.Util.intersect(this.rectangle,u)||(this.rectangle=u);this._setDefaultAppearance({xref:e.xref,extra:`${l} w`,strokeColor:n,fillColor:s,strokeAlpha:i,fillAlpha:c,pointsCallback:(e,t)=>{e.push(`${a[0]} ${a[1]} m`,`${a[2]} ${a[3]} l`,"S");return[t[0].x-l,t[1].x+l,t[3].y-l,t[1].y+l]}})}}}class SquareAnnotation extends MarkupAnnotation{constructor(e){super(e);this.data.annotationType=r.AnnotationType.SQUARE;if(!this.appearance){const t=this.color?Array.from(this.color).map((e=>e/255)):[0,0,0],a=e.dict.get("CA");let r=null,n=e.dict.getArray("IC");if(n){n=getRgbColor(n,null);r=n?Array.from(n).map((e=>e/255)):null}const i=r?a:null;if(0===this.borderStyle.width&&!r)return;this._setDefaultAppearance({xref:e.xref,extra:`${this.borderStyle.width} w`,strokeColor:t,fillColor:r,strokeAlpha:a,fillAlpha:i,pointsCallback:(e,t)=>{const a=t[2].x+this.borderStyle.width/2,n=t[2].y+this.borderStyle.width/2,i=t[3].x-t[2].x-this.borderStyle.width,s=t[1].y-t[3].y-this.borderStyle.width;e.push(`${a} ${n} ${i} ${s} re`);r?e.push("B"):e.push("S");return[t[0].x,t[1].x,t[3].y,t[1].y]}})}}}class CircleAnnotation extends MarkupAnnotation{constructor(e){super(e);this.data.annotationType=r.AnnotationType.CIRCLE;if(!this.appearance){const t=this.color?Array.from(this.color).map((e=>e/255)):[0,0,0],a=e.dict.get("CA");let r=null,n=e.dict.getArray("IC");if(n){n=getRgbColor(n,null);r=n?Array.from(n).map((e=>e/255)):null}const i=r?a:null;if(0===this.borderStyle.width&&!r)return;const s=4/3*Math.tan(Math.PI/8);this._setDefaultAppearance({xref:e.xref,extra:`${this.borderStyle.width} w`,strokeColor:t,fillColor:r,strokeAlpha:a,fillAlpha:i,pointsCallback:(e,t)=>{const a=t[0].x+this.borderStyle.width/2,n=t[0].y-this.borderStyle.width/2,i=t[3].x-this.borderStyle.width/2,o=t[3].y+this.borderStyle.width/2,c=a+(i-a)/2,l=n+(o-n)/2,h=(i-a)/2*s,u=(o-n)/2*s;e.push(`${c} ${o} m`,`${c+h} ${o} ${i} ${l+u} ${i} ${l} c`,`${i} ${l-u} ${c+h} ${n} ${c} ${n} c`,`${c-h} ${n} ${a} ${l-u} ${a} ${l} c`,`${a} ${l+u} ${c-h} ${o} ${c} ${o} c`,"h");r?e.push("B"):e.push("S");return[t[0].x,t[1].x,t[3].y,t[1].y]}})}}}class PolylineAnnotation extends MarkupAnnotation{constructor(e){super(e);const{dict:t}=e;this.data.annotationType=r.AnnotationType.POLYLINE;this.data.vertices=[];if(!(this instanceof PolygonAnnotation)){this.setLineEndings(t.getArray("LE"));this.data.lineEndings=this.lineEndings}const a=t.getArray("Vertices");if(Array.isArray(a)){for(let e=0,t=a.length;ee/255)):[0,0,0],n=t.get("CA"),i=this.borderStyle.width||1,s=2*i,o=[1/0,1/0,-1/0,-1/0];for(const e of this.data.vertices){o[0]=Math.min(o[0],e.x-s);o[1]=Math.min(o[1],e.y-s);o[2]=Math.max(o[2],e.x+s);o[3]=Math.max(o[3],e.y+s)}r.Util.intersect(this.rectangle,o)||(this.rectangle=o);this._setDefaultAppearance({xref:e.xref,extra:`${i} w`,strokeColor:a,strokeAlpha:n,pointsCallback:(e,t)=>{const a=this.data.vertices;for(let t=0,r=a.length;te/255)):[0,0,0],a=e.dict.get("CA"),n=this.borderStyle.width||1,i=2*n,s=[1/0,1/0,-1/0,-1/0];for(const e of this.data.inkLists)for(const t of e){s[0]=Math.min(s[0],t.x-i);s[1]=Math.min(s[1],t.y-i);s[2]=Math.max(s[2],t.x+i);s[3]=Math.max(s[3],t.y+i)}r.Util.intersect(this.rectangle,s)||(this.rectangle=s);this._setDefaultAppearance({xref:e.xref,extra:`${n} w`,strokeColor:t,strokeAlpha:a,pointsCallback:(e,t)=>{for(const t of this.data.inkLists){for(let a=0,r=t.length;ae/255)):[1,1,0],a=e.dict.get("CA");this._setDefaultAppearance({xref:e.xref,fillColor:t,blendMode:"Multiply",fillAlpha:a,pointsCallback:(e,t)=>{e.push(`${t[0].x} ${t[0].y} m`,`${t[1].x} ${t[1].y} l`,`${t[3].x} ${t[3].y} l`,`${t[2].x} ${t[2].y} l`,"f");return[t[0].x,t[1].x,t[3].y,t[1].y]}})}}else this.data.hasPopup=!1}}class UnderlineAnnotation extends MarkupAnnotation{constructor(e){super(e);this.data.annotationType=r.AnnotationType.UNDERLINE;if(this.data.quadPoints=getQuadPoints(e.dict,null)){if(!this.appearance){const t=this.color?Array.from(this.color).map((e=>e/255)):[0,0,0],a=e.dict.get("CA");this._setDefaultAppearance({xref:e.xref,extra:"[] 0 d 1 w",strokeColor:t,strokeAlpha:a,pointsCallback:(e,t)=>{e.push(`${t[2].x} ${t[2].y} m`,`${t[3].x} ${t[3].y} l`,"S");return[t[0].x,t[1].x,t[3].y,t[1].y]}})}}else this.data.hasPopup=!1}}class SquigglyAnnotation extends MarkupAnnotation{constructor(e){super(e);this.data.annotationType=r.AnnotationType.SQUIGGLY;if(this.data.quadPoints=getQuadPoints(e.dict,null)){if(!this.appearance){const t=this.color?Array.from(this.color).map((e=>e/255)):[0,0,0],a=e.dict.get("CA");this._setDefaultAppearance({xref:e.xref,extra:"[] 0 d 1 w",strokeColor:t,strokeAlpha:a,pointsCallback:(e,t)=>{const a=(t[0].y-t[2].y)/6;let r=a,n=t[2].x;const i=t[2].y,s=t[3].x;e.push(`${n} ${i+r} m`);do{n+=2;r=0===r?a:0;e.push(`${n} ${i+r} l`)}while(ne/255)):[0,0,0],a=e.dict.get("CA");this._setDefaultAppearance({xref:e.xref,extra:"[] 0 d 1 w",strokeColor:t,strokeAlpha:a,pointsCallback:(e,t)=>{e.push((t[0].x+t[2].x)/2+" "+(t[0].y+t[2].y)/2+" m",(t[1].x+t[3].x)/2+" "+(t[1].y+t[3].y)/2+" l","S");return[t[0].x,t[1].x,t[3].y,t[1].y]}})}}else this.data.hasPopup=!1}}class StampAnnotation extends MarkupAnnotation{constructor(e){super(e);this.data.annotationType=r.AnnotationType.STAMP}}class FileAttachmentAnnotation extends MarkupAnnotation{constructor(e){super(e);const t=new u.FileSpec(e.dict.get("FS"),e.xref);this.data.annotationType=r.AnnotationType.FILEATTACHMENT;this.data.file=t.serializable}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.createDefaultAppearance=function createDefaultAppearance({fontSize:e,fontName:t,fontColor:a}){let r;r=a.every((e=>0===e))?"0 g":Array.from(a).map((e=>(e/255).toFixed(2))).join(" ")+" rg";return`/${(0,i.escapePDFName)(t)} ${e} Tf ${r}`};t.parseDefaultAppearance=function parseDefaultAppearance(e){return new DefaultAppearanceEvaluator(e).parse()};var r=a(2),n=a(24),i=a(8),s=a(25),o=a(5),c=a(10);class DefaultAppearanceEvaluator extends s.EvaluatorPreprocessor{constructor(e){super(new c.StringStream(e))}parse(){const e={fn:0,args:[]},t={fontSize:0,fontName:"",fontColor:new Uint8ClampedArray(3)};try{for(;;){e.args.length=0;if(!this.read(e))break;if(0!==this.savedStatesDepth)continue;const{fn:a,args:i}=e;switch(0|a){case r.OPS.setFont:const[e,a]=i;e instanceof o.Name&&(t.fontName=e.name);"number"==typeof a&&a>0&&(t.fontSize=a);break;case r.OPS.setFillRGBColor:n.ColorSpace.singletons.rgb.getRgbItem(i,0,t.fontColor,0);break;case r.OPS.setFillGray:n.ColorSpace.singletons.gray.getRgbItem(i,0,t.fontColor,0);break;case r.OPS.setFillColorSpace:n.ColorSpace.singletons.cmyk.getRgbItem(i,0,t.fontColor,0)}}}catch(e){(0,r.warn)(`parseDefaultAppearance - ignoring errors: "${e}".`)}return t}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ColorSpace=void 0;var r=a(2),n=a(5),i=a(9),s=a(8);class ColorSpace{constructor(e,t){this.constructor===ColorSpace&&(0,r.unreachable)("Cannot initialize ColorSpace.");this.name=e;this.numComps=t}getRgb(e,t){const a=new Uint8ClampedArray(3);this.getRgbItem(e,t,a,0);return a}getRgbItem(e,t,a,n){(0,r.unreachable)("Should not call ColorSpace.getRgbItem")}getRgbBuffer(e,t,a,n,i,s,o){(0,r.unreachable)("Should not call ColorSpace.getRgbBuffer")}getOutputLength(e,t){(0,r.unreachable)("Should not call ColorSpace.getOutputLength")}isPassthrough(e){return!1}isDefaultDecode(e,t){return ColorSpace.isDefaultDecode(e,this.numComps)}fillRgb(e,t,a,r,n,i,s,o,c){const l=t*a;let h=null;const u=1<u&&"DeviceGray"!==this.name&&"DeviceRGB"!==this.name){const t=s<=8?new Uint8Array(u):new Uint16Array(u);for(let e=0;e=.99554525?1:adjustToRange(0,1,1.055*e**(1/2.4)-.055)}function adjustToRange(e,t,a){return Math.max(e,Math.min(t,a))}function decodeL(e){return e<0?-decodeL(-e):e>8?((e+16)/116)**3:.0011070564598794539*e}function convertToRgb(r,c,l,h,u,d){const f=adjustToRange(0,1,c[l]*d),g=adjustToRange(0,1,c[l+1]*d),p=adjustToRange(0,1,c[l+2]*d),m=1===f?1:f**r.GR,b=1===g?1:g**r.GG,y=1===p?1:p**r.GB,w=r.MXA*m+r.MXB*b+r.MXC*y,S=r.MYA*m+r.MYB*b+r.MYC*y,x=r.MZA*m+r.MZB*b+r.MZC*y,k=s;k[0]=w;k[1]=S;k[2]=x;const C=o;!function normalizeWhitePointToFlat(a,r,n){if(1===a[0]&&1===a[2]){n[0]=r[0];n[1]=r[1];n[2]=r[2];return}const s=n;matrixProduct(e,r,s);const o=i;!function convertToFlat(e,t,a){a[0]=1*t[0]/e[0];a[1]=1*t[1]/e[1];a[2]=1*t[2]/e[2]}(a,s,o);matrixProduct(t,o,n)}(r.whitePoint,k,C);const v=s;!function compensateBlackPoint(e,t,a){if(0===e[0]&&0===e[1]&&0===e[2]){a[0]=t[0];a[1]=t[1];a[2]=t[2];return}const r=decodeL(0),n=(1-r)/(1-decodeL(e[0])),i=1-n,s=(1-r)/(1-decodeL(e[1])),o=1-s,c=(1-r)/(1-decodeL(e[2])),l=1-c;a[0]=t[0]*n+i;a[1]=t[1]*s+o;a[2]=t[2]*c+l}(r.blackPoint,C,v);const F=o;!function normalizeWhitePointToD65(a,r,n){const s=n;matrixProduct(e,r,s);const o=i;!function convertToD65(e,t,a){a[0]=.95047*t[0]/e[0];a[1]=1*t[1]/e[1];a[2]=1.08883*t[2]/e[2]}(a,s,o);matrixProduct(t,o,n)}(n,v,F);const O=s;matrixProduct(a,F,O);h[u]=255*sRGBTransferFunction(O[0]);h[u+1]=255*sRGBTransferFunction(O[1]);h[u+2]=255*sRGBTransferFunction(O[2])}return class CalRGBCS extends ColorSpace{constructor(e,t,a,n){super("CalRGB",3);if(!e)throw new r.FormatError("WhitePoint missing - required for color space CalRGB");t=t||new Float32Array(3);a=a||new Float32Array([1,1,1]);n=n||new Float32Array([1,0,0,0,1,0,0,0,1]);const i=e[0],s=e[1],o=e[2];this.whitePoint=e;const c=t[0],l=t[1],h=t[2];this.blackPoint=t;this.GR=a[0];this.GG=a[1];this.GB=a[2];this.MXA=n[0];this.MYA=n[1];this.MZA=n[2];this.MXB=n[3];this.MYB=n[4];this.MZB=n[5];this.MXC=n[6];this.MYC=n[7];this.MZC=n[8];if(i<0||o<0||1!==s)throw new r.FormatError(`Invalid WhitePoint components for ${this.name}, no fallback available`);if(c<0||l<0||h<0){(0,r.info)(`Invalid BlackPoint for ${this.name} [${c}, ${l}, ${h}], falling back to default.`);this.blackPoint=new Float32Array(3)}if(this.GR<0||this.GG<0||this.GB<0){(0,r.info)(`Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ${this.name}, falling back to default.`);this.GR=this.GG=this.GB=1}}getRgbItem(e,t,a,r){convertToRgb(this,e,t,a,r,1)}getRgbBuffer(e,t,a,r,n,i,s){const o=1/((1<=6/29?e**3:108/841*(e-4/29);return t}function decode(e,t,a,r){return a+e*(r-a)/t}function convertToRgb(e,t,a,r,n,i){let s=t[a],o=t[a+1],c=t[a+2];if(!1!==r){s=decode(s,r,0,100);o=decode(o,r,e.amin,e.amax);c=decode(c,r,e.bmin,e.bmax)}o>e.amax?o=e.amax:oe.bmax?c=e.bmax:cthis.amax||this.bmin>this.bmax){(0,r.info)("Invalid Range, falling back to defaults");this.amin=-100;this.amax=100;this.bmin=-100;this.bmax=100}}getRgbItem(e,t,a,r){convertToRgb(this,e,t,!1,a,r)}getRgbBuffer(e,t,a,r,n,i,s){const o=(1<{Object.defineProperty(t,"__esModule",{value:!0});t.TextState=t.StateManager=t.PartialEvaluator=t.EvaluatorPreprocessor=void 0;var r=a(2),n=a(26),i=a(5),s=a(44),o=a(18),c=a(19),l=a(47),h=a(21),u=a(56),d=a(12),f=a(48),g=a(57),p=a(27),m=a(59),b=a(10),y=a(9),w=a(60),S=a(24),x=a(29),k=a(20),C=a(8),v=a(51),F=a(61),O=a(62),T=a(63),M=a(65);const E=Object.freeze({maxImageSize:-1,disableFontFace:!1,ignoreErrors:!1,isEvalSupported:!0,fontExtraProperties:!1,useSystemFonts:!0,cMapUrl:null,standardFontDataUrl:null}),D=1,N=2,L=Promise.resolve();function normalizeBlendMode(e,t=!1){if(Array.isArray(e)){for(let t=0,a=e.length;t0&&e.args[0].count++}class TimeSlotManager{static get TIME_SLOT_DURATION_MS(){return(0,r.shadow)(this,"TIME_SLOT_DURATION_MS",20)}static get CHECK_TIME_EVERY(){return(0,r.shadow)(this,"CHECK_TIME_EVERY",100)}constructor(){this.reset()}check(){if(++this.checkedd){const e="Image exceeded maximum allowed size and was removed.";if(this.options.ignoreErrors){(0,r.warn)(e);return}throw new Error(e)}let f;c.has("OC")&&(f=await this.parseMarkedContentProps(c.get("OC"),e));let g,p;if(c.get("IM","ImageMask")||!1){const e=c.get("I","Interpolate"),a=h+7>>3,o=t.getBytes(a*u),d=c.getArray("D","Decode");if(this.parsingType3Font){g=T.PDFImage.createRawMask({imgArray:o,width:h,height:u,imageIsFromDecodeStream:t instanceof x.DecodeStream,inverseDecode:!!d&&d[0]>0,interpolate:e});g.cached=!!i;p=[g];n.addImageOps(r.OPS.paintImageMaskXObject,p,f);i&&s.set(i,l,{fn:r.OPS.paintImageMaskXObject,args:p,optionalContent:f});return}g=T.PDFImage.createMask({imgArray:o,width:h,height:u,imageIsFromDecodeStream:t instanceof x.DecodeStream,inverseDecode:!!d&&d[0]>0,interpolate:e});if(g.isSingleOpaquePixel){n.addImageOps(r.OPS.paintSolidColorImageMask,[],f);i&&s.set(i,l,{fn:r.OPS.paintSolidColorImageMask,args:[],optionalContent:f});return}const m=`mask_${this.idFactory.createObjId()}`;n.addDependency(m);this._sendImgData(m,g);p=[{data:m,width:g.width,height:g.height,interpolate:g.interpolate,count:1}];n.addImageOps(r.OPS.paintImageMaskXObject,p,f);i&&s.set(i,l,{fn:r.OPS.paintImageMaskXObject,args:p,optionalContent:f});return}const m=c.get("SM","SMask")||!1,b=c.get("Mask")||!1;if(a&&!m&&!b&&h+u<200){const i=new T.PDFImage({xref:this.xref,res:e,image:t,isInline:a,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:o});g=i.createImageData(!0);n.addImageOps(r.OPS.paintInlineImageXObject,[g],f);return}let y=`img_${this.idFactory.createObjId()}`,w=!1;if(this.parsingType3Font)y=`${this.idFactory.getDocId()}_type3_${y}`;else if(l){w=this.globalImageCache.shouldCache(l,this.pageIndex);w&&(y=`${this.idFactory.getDocId()}_${y}`)}n.addDependency(y);p=[y,h,u];T.PDFImage.buildImage({xref:this.xref,res:e,image:t,isInline:a,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:o}).then((e=>{g=e.createImageData(!1);i&&l&&w&&this.globalImageCache.addByteSize(l,g.data.length);return this._sendImgData(y,g,w)})).catch((e=>{(0,r.warn)(`Unable to decode image "${y}": "${e}".`);return this._sendImgData(y,null,w)}));n.addImageOps(r.OPS.paintImageXObject,p,f);if(i){s.set(i,l,{fn:r.OPS.paintImageXObject,args:p,optionalContent:f});if(l){(0,r.assert)(!a,"Cannot cache an inline image globally.");this.globalImageCache.addPageIndex(l,this.pageIndex);w&&this.globalImageCache.setData(l,{objId:y,fn:r.OPS.paintImageXObject,args:p,optionalContent:f,byteSize:0})}}}handleSMask(e,t,a,r,n,i){const s=e.get("G"),o={subtype:e.get("S").name,backdrop:e.get("BC")},c=e.get("TR");if((0,g.isPDFFunction)(c)){const e=this._pdfFunctionFactory.create(c),t=new Uint8Array(256),a=new Float32Array(1);for(let r=0;r<256;r++){a[0]=r/255;e(a,0,a,0);t[r]=255*a[0]|0}o.transferMap=t}return this.buildFormXObject(t,s,o,a,r,n.state.clone(),i)}handleTransferFunction(e){let t;if(Array.isArray(e))t=e;else{if(!(0,g.isPDFFunction)(e))return null;t=[e]}const a=[];let r=0,n=0;for(const e of t){const t=this.xref.fetchIfRef(e);r++;if((0,i.isName)(t,"Identity")){a.push(null);continue}if(!(0,g.isPDFFunction)(t))return null;const s=this._pdfFunctionFactory.create(t),o=new Uint8Array(256),c=new Float32Array(1);for(let e=0;e<256;e++){c[0]=e/255;s(c,0,c,0);o[e]=255*c[0]|0}a.push(o);n++}return 1!==r&&4!==r||0===n?null:a}handleTilingType(e,t,a,n,s,o,c,l){const h=new O.OperatorList,d=i.Dict.merge({xref:this.xref,dictArray:[s.get("Resources"),a]});return this.getOperatorList({stream:n,task:c,resources:d,operatorList:h}).then((function(){const a=h.getIR(),r=(0,u.getTilingPatternIR)(a,s,t);o.addDependencies(h.dependencies);o.addOp(e,r);s.objId&&l.set(null,s.objId,{operatorListIR:a,dict:s})})).catch((e=>{if(!(e instanceof r.AbortException)){if(!this.options.ignoreErrors)throw e;this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorTilingPattern});(0,r.warn)(`handleTilingType - ignoring pattern: "${e}".`)}}))}handleSetFont(e,t,a,n,o,c,l=null,h=null){const u=t&&t[0]instanceof i.Name?t[0].name:null;return this.loadFont(u,a,e,l,h).then((t=>t.font.isType3Font?t.loadType3Data(this,e,o).then((function(){n.addDependencies(t.type3Dependencies);return t})).catch((e=>{this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorFontLoadType3});return new TranslatedFont({loadedName:"g_font_error",font:new s.ErrorFont(`Type3 font load error: ${e}`),dict:t.font,evaluatorOptions:this.options})})):t)).then((e=>{c.font=e.font;e.send(this.handler);return e}))}handleText(e,t){const a=t.font,n=a.charsToGlyphs(e);if(a.data){(!!(t.textRenderingMode&r.TextRenderingMode.ADD_TO_PATH_FLAG)||"Pattern"===t.fillColorSpace.name||a.disableFontFace||this.options.disableFontFace)&&PartialEvaluator.buildFontPaths(a,n,this.handler,this.options)}return n}ensureStateFont(e){if(e.font)return;const t=new r.FormatError("Missing setFont (Tf) operator before text rendering operator.");if(!this.options.ignoreErrors)throw t;this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorFontState});(0,r.warn)(`ensureStateFont: "${t}".`)}async setGState({resources:e,gState:t,operatorList:a,cacheKey:n,task:s,stateManager:o,localGStateCache:c,localColorSpaceCache:l}){const h=t.objId;let u=!0;const d=[],f=t.getKeys();let g=Promise.resolve();for(let n=0,c=f.length;nthis.handleSetFont(e,null,h[0],a,s,o.state).then((function(e){a.addDependency(e.loadedName);d.push([c,[e.loadedName,h[1]]])}))));break;case"BM":d.push([c,normalizeBlendMode(h)]);break;case"SMask":if((0,i.isName)(h,"None")){d.push([c,!1]);break}if(h instanceof i.Dict){u=!1;g=g.then((()=>this.handleSMask(h,e,a,s,o,l)));d.push([c,!0])}else(0,r.warn)("Unsupported SMask type");break;case"TR":const t=this.handleTransferFunction(h);d.push([c,t]);break;case"OP":case"op":case"OPM":case"BG":case"BG2":case"UCR":case"UCR2":case"TR2":case"HT":case"SM":case"SA":case"AIS":case"TK":(0,r.info)("graphic state operator "+c);break;default:(0,r.info)("Unknown graphic state operator "+c)}}return g.then((function(){d.length>0&&a.addOp(r.OPS.setGState,[d]);u&&c.set(n,h,d)}))}loadFont(e,t,a,n=null,c=null){const errorFont=async()=>new TranslatedFont({loadedName:"g_font_error",font:new s.ErrorFont(`Font "${e}" is not available.`),dict:t,evaluatorOptions:this.options}),l=this.xref;let h;if(t){if(!(t instanceof i.Ref))throw new r.FormatError('The "font" object should be a reference.');h=t}else{const t=a.get("Font");t&&(h=t.getRaw(e))}if(!h){const a=`Font "${e||t&&t.toString()}" is not available`;if(!this.options.ignoreErrors&&!this.parsingType3Font){(0,r.warn)(`${a}.`);return errorFont()}this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorFontMissing});(0,r.warn)(`${a} -- attempting to fallback to a default font.`);h=n||PartialEvaluator.fallbackFontDict}if(this.parsingType3Font&&this.type3FontRefs.has(h))return errorFont();if(this.fontCache.has(h))return this.fontCache.get(h);if(!((t=l.fetchIfRef(h))instanceof i.Dict))return errorFont();if(t.cacheKey&&this.fontCache.has(t.cacheKey))return this.fontCache.get(t.cacheKey);const u=(0,r.createPromiseCapability)();let d;try{d=this.preEvaluateFont(t);d.cssFontInfo=c}catch(e){(0,r.warn)(`loadFont - preEvaluateFont failed: "${e}".`);return errorFont()}const{descriptor:f,hash:g}=d,p=h instanceof i.Ref;let m;p&&(m=`f${h.toString()}`);if(g&&f instanceof i.Dict){f.fontAliases||(f.fontAliases=Object.create(null));const e=f.fontAliases;if(e[g]){const t=e[g].aliasRef;if(p&&t&&this.fontCache.has(t)){this.fontCache.putAlias(h,t);return this.fontCache.get(h)}}else e[g]={fontID:this.idFactory.createFontId()};p&&(e[g].aliasRef=h);m=e[g].fontID}if(p)this.fontCache.put(h,u.promise);else{m||(m=this.idFactory.createFontId());t.cacheKey=`cacheKey_${m}`;this.fontCache.put(t.cacheKey,u.promise)}(0,r.assert)(m&&m.startsWith("f"),'The "fontID" must be (correctly) defined.');t.loadedName=`${this.idFactory.getDocId()}_${m}`;this.translateFont(d).then((e=>{void 0!==e.fontType&&l.stats.addFontType(e.fontType);u.resolve(new TranslatedFont({loadedName:t.loadedName,font:e,dict:t,evaluatorOptions:this.options}))})).catch((e=>{this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorFontTranslate});(0,r.warn)(`loadFont - translateFont failed: "${e}".`);try{const e=f&&f.get("FontFile3"),t=e&&e.get("Subtype"),a=(0,o.getFontType)(d.type,t&&t.name);void 0!==a&&l.stats.addFontType(a)}catch(e){}u.resolve(new TranslatedFont({loadedName:t.loadedName,font:new s.ErrorFont(e instanceof Error?e.message:e),dict:t,evaluatorOptions:this.options}))}));return u.promise}buildPath(e,t,a,n=!1){const i=e.length-1;a||(a=[]);let s;if(i<0||e.fnArray[i]!==r.OPS.constructPath){if(n){(0,r.warn)(`Encountered path operator "${t}" inside of a text object.`);e.addOp(r.OPS.save,null)}s=[1/0,-1/0,1/0,-1/0];e.addOp(r.OPS.constructPath,[[t],a,s]);n&&e.addOp(r.OPS.restore,null)}else{const r=e.argsArray[i];r[0].push(t);Array.prototype.push.apply(r[1],a);s=r[2]}switch(t){case r.OPS.rectangle:s[0]=Math.min(s[0],a[0],a[0]+a[2]);s[1]=Math.max(s[1],a[0],a[0]+a[2]);s[2]=Math.min(s[2],a[1],a[1]+a[3]);s[3]=Math.max(s[3],a[1],a[1]+a[3]);break;case r.OPS.moveTo:case r.OPS.lineTo:s[0]=Math.min(s[0],a[0]);s[1]=Math.max(s[1],a[0]);s[2]=Math.min(s[2],a[1]);s[3]=Math.max(s[3],a[1])}}parseColorSpace({cs:e,resources:t,localColorSpaceCache:a}){return S.ColorSpace.parseAsync({cs:e,xref:this.xref,resources:t,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:a}).catch((e=>{if(e instanceof r.AbortException)return null;if(this.options.ignoreErrors){this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorColorSpace});(0,r.warn)(`parseColorSpace - ignoring ColorSpace: "${e}".`);return null}throw e}))}parseShading({shading:e,resources:t,localColorSpaceCache:a,localShadingPatternCache:r}){let n=r.get(e);if(!n){const i=u.Pattern.parseShading(e,this.xref,t,this.handler,this._pdfFunctionFactory,a).getIR();n=`pattern_${this.idFactory.createObjId()}`;r.set(e,n);this.handler.send("obj",[n,this.pageIndex,"Pattern",i])}return n}handleColorN(e,t,a,n,s,o,c,l,h,d){const f=a.pop();if(f instanceof i.Name){const g=s.getRaw(f.name),p=g instanceof i.Ref&&h.getByRef(g);if(p)try{const r=n.base?n.base.getRgb(a,0):null,i=(0,u.getTilingPatternIR)(p.operatorListIR,p.dict,r);e.addOp(t,i);return}catch(e){}const m=this.xref.fetchIfRef(g);if(m){const i=m instanceof y.BaseStream?m.dict:m,s=i.get("PatternType");if(s===D){const r=n.base?n.base.getRgb(a,0):null;return this.handleTilingType(t,r,o,m,i,e,c,h)}if(s===N){const a=i.get("Shading"),r=i.getArray("Matrix"),n=this.parseShading({shading:a,resources:o,localColorSpaceCache:l,localShadingPatternCache:d});e.addOp(t,["Shading",n,r]);return}throw new r.FormatError(`Unknown PatternType: ${s}`)}}throw new r.FormatError(`Unknown PatternName: ${f}`)}_parseVisibilityExpression(e,t,a){if(++t>10){(0,r.warn)("Visibility expression is too deeply nested");return}const n=e.length,s=this.xref.fetchIfRef(e[0]);if(!(n<2)&&s instanceof i.Name){switch(s.name){case"And":case"Or":case"Not":a.push(s.name);break;default:(0,r.warn)(`Invalid operator ${s.name} in visibility expression`);return}for(let r=1;r0)return{type:"OCMD",expression:t}}const t=a.get("OCGs");if(Array.isArray(t)||t instanceof i.Dict){const e=[];if(Array.isArray(t))for(const a of t)e.push(a.toString());else e.push(t.objId);return{type:n,ids:e,policy:a.get("P")instanceof i.Name?a.get("P").name:null,expression:null}}if(t instanceof i.Ref)return{type:n,id:t.toString()}}return null}getOperatorList({stream:e,task:t,resources:a,operatorList:n,initialState:s=null,fallbackFontDict:o=null,intent:c}){a=a||i.Dict.empty;s=s||new EvalState;if(!n)throw new Error('getOperatorList: missing "operatorList" parameter');var l=new M.BoundingBoxesCalculator(!(c&r.RenderingIntentFlag.OPLIST)),h=this,u=this.xref;let d=!1;const f=new m.LocalImageCache,g=new m.LocalColorSpaceCache,p=new m.LocalGStateCache,b=new m.LocalTilingPatternCache,w=new Map,x=a.get("XObject")||i.Dict.empty,k=a.get("Pattern")||i.Dict.empty,C=new StateManager(s),v=new EvaluatorPreprocessor(e,u,C),F=new TimeSlotManager;function closePendingRestoreOPS(e){for(let e=0,t=v.savedStatesDepth;e0&&n.addOp(r.OPS.setGState,[t]);e=null;continue}}next(new Promise((function(e,s){if(!D)throw new r.FormatError("GState must be referred to by name.");const o=a.get("ExtGState");if(!(o instanceof i.Dict))throw new r.FormatError("ExtGState should be a dictionary.");const c=o.get(E);if(!(c instanceof i.Dict))throw new r.FormatError("GState should be a dictionary.");h.setGState({resources:a,gState:c,operatorList:n,cacheKey:E,task:t,stateManager:C,localGStateCache:p,localColorSpaceCache:g}).then(e,s)})).catch((function(e){if(!(e instanceof r.AbortException)){if(!h.options.ignoreErrors)throw e;h.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorExtGState});(0,r.warn)(`getOperatorList - ignoring ExtGState: "${e}".`)}})));l.parseOperator(s,e);return;case r.OPS.moveTo:case r.OPS.lineTo:case r.OPS.curveTo:case r.OPS.curveTo2:case r.OPS.curveTo3:case r.OPS.closePath:case r.OPS.rectangle:h.buildPath(n,s,e,d);l.parseOperator(s,e);continue;case r.OPS.markPoint:case r.OPS.markPointProps:case r.OPS.beginCompat:case r.OPS.endCompat:continue;case r.OPS.beginMarkedContentProps:l.parseOperator(s,e);if(!(e[0]instanceof i.Name)){(0,r.warn)(`Expected name for beginMarkedContentProps arg0=${e[0]}`);continue}if("OC"===e[0].name){next(h.parseMarkedContentProps(e[1],a).then((e=>{n.addOp(r.OPS.beginMarkedContentProps,["OC",e])})).catch((e=>{if(!(e instanceof r.AbortException)){if(!h.options.ignoreErrors)throw e;h.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorMarkedContent});(0,r.warn)(`getOperatorList - ignoring beginMarkedContentProps: "${e}".`)}})));return}e=[e[0].name,e[1]instanceof i.Dict?e[1].get("MCID"):null];break;case r.OPS.beginMarkedContent:case r.OPS.endMarkedContent:l.parseOperator(s,e);default:if(null!==e){for(O=0,T=e.length;O{if(!(e instanceof r.AbortException)){if(!this.options.ignoreErrors)throw e;this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorOperatorList});(0,r.warn)(`getOperatorList - ignoring errors during "${t.name}" task: "${e}".`);closePendingRestoreOPS()}}))}getTextContent({stream:e,task:t,resources:a,stateManager:n=null,combineTextItems:s=!1,includeMarkedContent:o=!1,sink:c,seenStyles:l=new Set,viewBox:u}){a=a||i.Dict.empty;n=n||new StateManager(new TextState);const d=(0,h.getNormalizedUnicodes)(),f={items:[],styles:Object.create(null)},g={initialized:!1,str:[],totalWidth:0,totalHeight:0,width:0,height:0,vertical:!1,prevTransform:null,textAdvanceScale:0,spaceInFlowMin:0,spaceInFlowMax:0,trackingSpaceMin:1/0,negativeSpaceMax:-1/0,notASpace:-1/0,transform:null,fontName:null,hasEOL:!1},p=[" "," "];let b=0;function saveLastChar(e){const t=(b+1)%2,a=" "!==p[b]&&" "===p[t];p[b]=e;b=t;return a}function resetLastChars(){p[0]=p[1]=" ";b=0}const S=this,x=this.xref,k=[];let C=null;const v=new m.LocalImageCache,F=new m.LocalGStateCache,O=new EvaluatorPreprocessor(e,x,n);let T;function getCurrentTextTransform(){const e=T.font,t=[T.fontSize*T.textHScale,0,0,T.fontSize,0,T.textRise];if(e.isType3Font&&(T.fontSize<=1||e.isCharBBox)&&!(0,r.isArrayEqual)(T.fontMatrix,r.FONT_IDENTITY_MATRIX)){const a=e.bbox[3]-e.bbox[1];a>0&&(t[3]*=a*T.fontMatrix[3])}return r.Util.transform(T.ctm,r.Util.transform(T.textMatrix,t))}function ensureTextContentItem(){if(g.initialized)return g;const e=T.font,t=e.loadedName;if(!l.has(t)){l.add(t);f.styles[t]={fontFamily:e.fallbackName,ascent:e.ascent,descent:e.descent,vertical:e.vertical}}g.fontName=t;const a=g.transform=getCurrentTextTransform();if(e.vertical){g.width=g.totalWidth=Math.hypot(a[0],a[1]);g.height=g.totalHeight=0;g.vertical=!0}else{g.width=g.totalWidth=0;g.height=g.totalHeight=Math.hypot(a[2],a[3]);g.vertical=!1}const r=Math.hypot(T.textLineMatrix[0],T.textLineMatrix[1]),n=Math.hypot(T.ctm[0],T.ctm[1]);g.textAdvanceScale=n*r;g.trackingSpaceMin=.1*T.fontSize;g.notASpace=.03*T.fontSize;g.negativeSpaceMax=-.2*T.fontSize;g.spaceInFlowMin=.1*T.fontSize;g.spaceInFlowMax=.6*T.fontSize;g.hasEOL=!1;g.initialized=!0;return g}function updateAdvanceScale(){if(!g.initialized)return;const e=Math.hypot(T.textLineMatrix[0],T.textLineMatrix[1]),t=Math.hypot(T.ctm[0],T.ctm[1])*e;if(t!==g.textAdvanceScale){if(g.vertical){g.totalHeight+=g.height*g.textAdvanceScale;g.height=0}else{g.totalWidth+=g.width*g.textAdvanceScale;g.width=0}g.textAdvanceScale=t}}function handleSetFont(e,n){return S.loadFont(e,n,a).then((function(e){return e.font.isType3Font?e.loadType3Data(S,a,t).catch((function(){})).then((function(){return e})):e})).then((function(e){T.font=e.font;T.fontMatrix=e.font.fontMatrix||r.FONT_IDENTITY_MATRIX}))}function applyInverseRotation(e,t,a){const r=Math.hypot(a[0],a[1]);return[(a[0]*e+a[1]*t)/r,(a[2]*e+a[3]*t)/r]}function compareWithLastPosition(){const e=getCurrentTextTransform();let t=e[4],a=e[5];const r=t-u[0],n=a-u[1];if(r<0||r>u[2]||n<0||n>u[3])return!1;if(!s||!T.font||!g.prevTransform)return!0;let i=g.prevTransform[4],o=g.prevTransform[5];if(i===t&&o===a)return!0;let c=-1;e[0]&&0===e[1]&&0===e[2]?c=e[0]>0?0:180:e[1]&&0===e[0]&&0===e[3]&&(c=e[1]>0?90:270);switch(c){case 0:break;case 90:[t,a]=[a,t];[i,o]=[o,i];break;case 180:[t,a,i,o]=[-t,-a,-i,-o];break;case 270:[t,a]=[-a,-t];[i,o]=[-o,-i];break;default:[t,a]=applyInverseRotation(t,a,e);[i,o]=applyInverseRotation(i,o,g.prevTransform)}if(T.font.vertical){const e=(o-a)/g.textAdvanceScale,r=t-i,n=Math.sign(g.height);if(e.5*g.width){appendEOL();return!0}resetLastChars();flushTextContentItem();return!0}if(Math.abs(r)>g.width){appendEOL();return!0}e<=n*g.notASpace&&resetLastChars();if(e<=n*g.trackingSpaceMin)g.height+=e;else if(!addFakeSpaces(e,g.prevTransform,n))if(0===g.str.length){resetLastChars();f.items.push({str:" ",dir:"ltr",width:0,height:Math.abs(e),transform:g.prevTransform,fontName:g.fontName,hasEOL:!1})}else g.height+=e;return!0}const l=(t-i)/g.textAdvanceScale,h=a-o,d=Math.sign(g.width);if(l.5*g.height){appendEOL();return!0}resetLastChars();flushTextContentItem();return!0}if(Math.abs(h)>g.height){appendEOL();return!0}l<=d*g.notASpace&&resetLastChars();if(l<=d*g.trackingSpaceMin)g.width+=l;else if(!addFakeSpaces(l,g.prevTransform,d))if(0===g.str.length){resetLastChars();f.items.push({str:" ",dir:"ltr",width:Math.abs(l),height:0,transform:g.prevTransform,fontName:g.fontName,hasEOL:!1})}else g.width+=l;return!0}function buildTextContentItem({chars:e,extraSpacing:t}){const a=T.font;if(!e){const e=T.charSpacing+t;e&&(a.vertical?T.translateTextMatrix(0,-e):T.translateTextMatrix(e*T.textHScale,0));return}const r=a.charsToGlyphs(e),n=T.fontMatrix[0]*T.fontSize;for(let e=0,i=r.length;e0){const e=k.join("");k.length=0;buildTextContentItem({chars:e,extraSpacing:0})}break;case r.OPS.showText:if(!n.state.font){S.ensureStateFont(n.state);continue}buildTextContentItem({chars:p[0],extraSpacing:0});break;case r.OPS.nextLineShowText:if(!n.state.font){S.ensureStateFont(n.state);continue}T.carriageReturn();buildTextContentItem({chars:p[0],extraSpacing:0});break;case r.OPS.nextLineSetSpacingShowText:if(!n.state.font){S.ensureStateFont(n.state);continue}T.wordSpacing=p[0];T.charSpacing=p[1];T.carriageReturn();buildTextContentItem({chars:p[2],extraSpacing:0});break;case r.OPS.paintXObject:flushTextContentItem();C||(C=a.get("XObject")||i.Dict.empty);var w=p[0]instanceof i.Name,E=p[0].name;if(w&&v.getByName(E))break;next(new Promise((function(e,h){if(!w)throw new r.FormatError("XObject must be referred to by name.");let d=C.getRaw(E);if(d instanceof i.Ref){if(v.getByRef(d)){e();return}if(S.globalImageCache.getData(d,S.pageIndex)){e();return}d=x.fetch(d)}if(!(d instanceof y.BaseStream))throw new r.FormatError("XObject should be a stream");const f=d.dict.get("Subtype");if(!(f instanceof i.Name))throw new r.FormatError("XObject should have a Name subtype");if("Form"!==f.name){v.set(E,d.dict.objId,!0);e();return}const g=n.state.clone(),p=new StateManager(g),m=d.dict.getArray("Matrix");Array.isArray(m)&&6===m.length&&p.transform(m);enqueueChunk();const b={enqueueInvoked:!1,enqueue(e,t){this.enqueueInvoked=!0;c.enqueue(e,t)},get desiredSize(){return c.desiredSize},get ready(){return c.ready}};S.getTextContent({stream:d,task:t,resources:d.dict.get("Resources")||a,stateManager:p,combineTextItems:s,includeMarkedContent:o,sink:b,seenStyles:l,viewBox:u}).then((function(){b.enqueueInvoked||v.set(E,d.dict.objId,!0);e()}),h)})).catch((function(e){if(!(e instanceof r.AbortException)){if(!S.options.ignoreErrors)throw e;(0,r.warn)(`getTextContent - ignoring XObject: "${e}".`)}})));return;case r.OPS.setGState:w=p[0]instanceof i.Name;E=p[0].name;if(w&&F.getByName(E))break;next(new Promise((function(e,t){if(!w)throw new r.FormatError("GState must be referred to by name.");const n=a.get("ExtGState");if(!(n instanceof i.Dict))throw new r.FormatError("ExtGState should be a dictionary.");const s=n.get(E);if(!(s instanceof i.Dict))throw new r.FormatError("GState should be a dictionary.");const o=s.get("Font");if(o){flushTextContentItem();T.fontName=null;T.fontSize=o[1];handleSetFont(null,o[0]).then(e,t)}else{F.set(E,s.objId,!0);e()}})).catch((function(e){if(!(e instanceof r.AbortException)){if(!S.options.ignoreErrors)throw e;(0,r.warn)(`getTextContent - ignoring ExtGState: "${e}".`)}})));return;case r.OPS.beginMarkedContent:o&&f.items.push({type:"beginMarkedContent",tag:p[0]instanceof i.Name?p[0].name:null});break;case r.OPS.beginMarkedContentProps:if(o){flushTextContentItem();let e=null;p[1]instanceof i.Dict&&(e=p[1].get("MCID"));f.items.push({type:"beginMarkedContentProps",id:Number.isInteger(e)?`${S.idFactory.getPageObjId()}_mcid${e}`:null,tag:p[0]instanceof i.Name?p[0].name:null})}break;case r.OPS.endMarkedContent:if(o){flushTextContentItem();f.items.push({type:"endMarkedContent"})}}if(f.items.length>=c.desiredSize){g=!0;break}}if(g)next(L);else{flushTextContentItem();enqueueChunk();e()}})).catch((e=>{if(!(e instanceof r.AbortException)){if(!this.options.ignoreErrors)throw e;(0,r.warn)(`getTextContent - ignoring errors during "${t.name}" task: "${e}".`);flushTextContentItem();enqueueChunk()}}))}extractDataStructures(e,t,a){const n=this.xref;let s;const l=this.readToUnicode(a.toUnicode||e.get("ToUnicode")||t.get("ToUnicode"));if(a.composite){const t=e.get("CIDSystemInfo");t instanceof i.Dict&&(a.cidSystemInfo={registry:(0,r.stringToPDFString)(t.get("Registry")),ordering:(0,r.stringToPDFString)(t.get("Ordering")),supplement:t.get("Supplement")});const n=e.get("CIDToGIDMap");n instanceof y.BaseStream&&(s=n.getBytes())}const h=[];let u,d=null;if(e.has("Encoding")){u=e.get("Encoding");if(u instanceof i.Dict){d=u.get("BaseEncoding");d=d instanceof i.Name?d.name:null;if(u.has("Differences")){const e=u.get("Differences");let t=0;for(let a=0,s=e.length;a0;a.dict=e;return l.then((e=>{a.toUnicode=e;return this.buildToUnicode(a)})).then((e=>{a.toUnicode=e;s&&(a.cidToGidMap=this.readCidToGidMap(s,e));return a}))}_simpleFontToUnicode(e,t=!1){(0,r.assert)(!e.composite,"Must be a simple font.");const a=[],n=e.defaultEncoding.slice(),i=e.baseEncodingName,s=e.differences;for(const e in s){const t=s[e];".notdef"!==t&&(n[e]=t)}const o=(0,k.getGlyphsUnicode)();for(const r in n){let s=n[r];if(""!==s)if(void 0!==o[s])a[r]=String.fromCharCode(o[s]);else{let n=0;switch(s[0]){case"G":3===s.length&&(n=parseInt(s.substring(1),16));break;case"g":5===s.length&&(n=parseInt(s.substring(1),16));break;case"C":case"c":if(s.length>=3&&s.length<=4){const a=s.substring(1);if(t){n=parseInt(a,16);break}n=+a;if(Number.isNaN(n)&&Number.isInteger(parseInt(a,16)))return this._simpleFontToUnicode(e,!0)}break;default:const a=(0,h.getUnicodeForGlyph)(s,o);-1!==a&&(n=a)}if(n>0&&n<=1114111&&Number.isInteger(n)){if(i&&n===+r){const e=(0,c.getEncoding)(i);if(e&&(s=e[r])){a[r]=String.fromCharCode(o[s]);continue}}a[r]=String.fromCodePoint(n)}}}return a}async buildToUnicode(e){e.hasIncludedToUnicodeMap=!!e.toUnicode&&e.toUnicode.length>0;if(e.hasIncludedToUnicodeMap){!e.composite&&e.hasEncoding&&(e.fallbackToUnicode=this._simpleFontToUnicode(e));return e.toUnicode}if(!e.composite)return new f.ToUnicodeMap(this._simpleFontToUnicode(e));if(e.composite&&(e.cMap.builtInCMap&&!(e.cMap instanceof n.IdentityCMap)||"Adobe"===e.cidSystemInfo.registry&&("GB1"===e.cidSystemInfo.ordering||"CNS1"===e.cidSystemInfo.ordering||"Japan1"===e.cidSystemInfo.ordering||"Korea1"===e.cidSystemInfo.ordering))){const{registry:t,ordering:a}=e.cidSystemInfo,s=i.Name.get(`${t}-${a}-UCS2`),o=await n.CMapFactory.create({encoding:s,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}),c=[];e.cMap.forEach((function(e,t){if(t>65535)throw new r.FormatError("Max size of CID is 65,535");const a=o.lookup(t);a&&(c[e]=String.fromCharCode((a.charCodeAt(0)<<8)+a.charCodeAt(1)))}));return new f.ToUnicodeMap(c)}return new f.IdentityToUnicodeMap(e.firstChar,e.lastChar)}readToUnicode(e){return e?e instanceof i.Name?n.CMapFactory.create({encoding:e,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}).then((function(e){return e instanceof n.IdentityCMap?new f.IdentityToUnicodeMap(0,65535):new f.ToUnicodeMap(e.getMap())})):e instanceof y.BaseStream?n.CMapFactory.create({encoding:e,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}).then((function(e){if(e instanceof n.IdentityCMap)return new f.IdentityToUnicodeMap(0,65535);const t=new Array(e.length);e.forEach((function(e,a){if("number"==typeof a){t[e]=String.fromCodePoint(a);return}const r=[];for(let e=0;e{if(e instanceof r.AbortException)return null;if(this.options.ignoreErrors){this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorFontToUnicode});(0,r.warn)(`readToUnicode - ignoring ToUnicode data: "${e}".`);return null}throw e})):Promise.resolve(null):Promise.resolve(null)}readCidToGidMap(e,t){const a=[];for(let r=0,n=e.length;r>1;(0!==n||t.has(i))&&(a[i]=n)}return a}extractWidths(e,t,a){const r=this.xref;let n=[],s=0;const c=[];let l,h,u,d,f,g,p,m;if(a.composite){s=e.has("DW")?e.get("DW"):1e3;m=e.get("W");if(m)for(h=0,u=m.length;h{if(p){const e=[];let a=u;for(let t=0,r=p.length;t{this.extractWidths(t,e,a);return new s.Font(v.name,w,a)}))}static buildFontPaths(e,t,a,n){function buildPath(t){const i=`${e.loadedName}_path_${t}`;try{if(e.renderer.hasBuiltPath(t))return;a.send("commonobj",[i,"FontPath",e.renderer.getPathJs(t)])}catch(e){if(n.ignoreErrors){a.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorFontBuildPath});(0,r.warn)(`buildFontPaths - ignoring ${i} glyph: "${e}".`);return}throw e}}for(const e of t){buildPath(e.fontChar);const t=e.accent;t&&t.fontChar&&buildPath(t.fontChar)}}static get fallbackFontDict(){const e=new i.Dict;e.set("BaseFont",i.Name.get("PDFJS-FallbackFont"));e.set("Type",i.Name.get("FallbackType"));e.set("Subtype",i.Name.get("FallbackType"));e.set("Encoding",i.Name.get("WinAnsiEncoding"));return(0,r.shadow)(this,"fallbackFontDict",e)}}t.PartialEvaluator=PartialEvaluator;class TranslatedFont{constructor({loadedName:e,font:t,dict:a,evaluatorOptions:r}){this.loadedName=e;this.font=t;this.dict=a;this._evaluatorOptions=r||E;this.type3Loaded=null;this.type3Dependencies=t.isType3Font?new Set:null;this.sent=!1}send(e){if(!this.sent){this.sent=!0;e.send("commonobj",[this.loadedName,"Font",this.font.exportData(this._evaluatorOptions.fontExtraProperties)])}}fallback(e){if(this.font.data){this.font.disableFontFace=!0;PartialEvaluator.buildFontPaths(this.font,this.font.glyphCacheValues,e,this._evaluatorOptions)}}loadType3Data(e,t,a){if(this.type3Loaded)return this.type3Loaded;if(!this.font.isType3Font)throw new Error("Must be a Type3 font.");const n=e.clone({ignoreErrors:!1});n.parsingType3Font=!0;const s=new i.RefSet(e.type3FontRefs);this.dict.objId&&!s.has(this.dict.objId)&&s.put(this.dict.objId);n.type3FontRefs=s;const o=this.font,c=this.type3Dependencies;let l=Promise.resolve();const h=this.dict.get("CharProcs"),u=this.dict.get("Resources")||t,d=Object.create(null),f=!o.bbox||(0,r.isArrayEqual)(o.bbox,[0,0,0,0]);for(const e of h.getKeys())l=l.then((()=>{const t=h.get(e),i=new O.OperatorList;return n.getOperatorList({stream:t,task:a,resources:u,operatorList:i}).then((()=>{i.fnArray[0]===r.OPS.setCharWidthAndBounds&&this._removeType3ColorOperators(i,f);d[e]=i.getIR();for(const e of i.dependencies)c.add(e)})).catch((function(t){(0,r.warn)(`Type3 font resource "${e}" is not available.`);const a=new O.OperatorList;d[e]=a.getIR()}))}));this.type3Loaded=l.then((()=>{o.charProcOperatorList=d;if(this._bbox){o.isCharBBox=!0;o.bbox=this._bbox}}));return this.type3Loaded}_removeType3ColorOperators(e,t=!1){if(t){this._bbox||(this._bbox=[1/0,1/0,-1/0,-1/0]);const t=r.Util.normalizeRect(e.argsArray[0].slice(2));this._bbox[0]=Math.min(this._bbox[0],t[0]);this._bbox[1]=Math.min(this._bbox[1],t[1]);this._bbox[2]=Math.max(this._bbox[2],t[2]);this._bbox[3]=Math.max(this._bbox[3],t[3])}let a=1,n=e.length;for(;ao&&(0,r.info)(`Command ${n}: expected [0, ${o}] args, but received ${c} args.`);else{if(c!==o){const e=this.nonProcessedArgs;for(;c>o;){e.push(t.shift());c--}for(;c=r.OPS.moveTo&&s<=r.OPS.endPath&&++this._numInvalidPathOPS>EvaluatorPreprocessor.MAX_INVALID_PATH_OPS)throw new r.FormatError(`Invalid ${e}`);(0,r.warn)(`Skipping ${e}`);null!==t&&(t.length=0);continue}}this.preprocessCommand(s,t);e.fn=s;e.args=t;return!0}if(a===i.EOF)return!1;if(null!==a){null===t&&(t=[]);t.push(a);if(t.length>33)throw new r.FormatError("Too many arguments")}}}preprocessCommand(e,t){switch(0|e){case r.OPS.save:this.stateManager.save();break;case r.OPS.restore:this.stateManager.restore();break;case r.OPS.transform:this.stateManager.transform(t)}}}t.EvaluatorPreprocessor=EvaluatorPreprocessor},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.IdentityCMap=t.CMapFactory=t.CMap=void 0;var r=a(2),n=a(5),i=a(9),s=a(27),o=a(8),c=a(10);const l=["Adobe-GB1-UCS2","Adobe-CNS1-UCS2","Adobe-Japan1-UCS2","Adobe-Korea1-UCS2","78-EUC-H","78-EUC-V","78-H","78-RKSJ-H","78-RKSJ-V","78-V","78ms-RKSJ-H","78ms-RKSJ-V","83pv-RKSJ-H","90ms-RKSJ-H","90ms-RKSJ-V","90msp-RKSJ-H","90msp-RKSJ-V","90pv-RKSJ-H","90pv-RKSJ-V","Add-H","Add-RKSJ-H","Add-RKSJ-V","Add-V","Adobe-CNS1-0","Adobe-CNS1-1","Adobe-CNS1-2","Adobe-CNS1-3","Adobe-CNS1-4","Adobe-CNS1-5","Adobe-CNS1-6","Adobe-GB1-0","Adobe-GB1-1","Adobe-GB1-2","Adobe-GB1-3","Adobe-GB1-4","Adobe-GB1-5","Adobe-Japan1-0","Adobe-Japan1-1","Adobe-Japan1-2","Adobe-Japan1-3","Adobe-Japan1-4","Adobe-Japan1-5","Adobe-Japan1-6","Adobe-Korea1-0","Adobe-Korea1-1","Adobe-Korea1-2","B5-H","B5-V","B5pc-H","B5pc-V","CNS-EUC-H","CNS-EUC-V","CNS1-H","CNS1-V","CNS2-H","CNS2-V","ETHK-B5-H","ETHK-B5-V","ETen-B5-H","ETen-B5-V","ETenms-B5-H","ETenms-B5-V","EUC-H","EUC-V","Ext-H","Ext-RKSJ-H","Ext-RKSJ-V","Ext-V","GB-EUC-H","GB-EUC-V","GB-H","GB-V","GBK-EUC-H","GBK-EUC-V","GBK2K-H","GBK2K-V","GBKp-EUC-H","GBKp-EUC-V","GBT-EUC-H","GBT-EUC-V","GBT-H","GBT-V","GBTpc-EUC-H","GBTpc-EUC-V","GBpc-EUC-H","GBpc-EUC-V","H","HKdla-B5-H","HKdla-B5-V","HKdlb-B5-H","HKdlb-B5-V","HKgccs-B5-H","HKgccs-B5-V","HKm314-B5-H","HKm314-B5-V","HKm471-B5-H","HKm471-B5-V","HKscs-B5-H","HKscs-B5-V","Hankaku","Hiragana","KSC-EUC-H","KSC-EUC-V","KSC-H","KSC-Johab-H","KSC-Johab-V","KSC-V","KSCms-UHC-H","KSCms-UHC-HW-H","KSCms-UHC-HW-V","KSCms-UHC-V","KSCpc-EUC-H","KSCpc-EUC-V","Katakana","NWP-H","NWP-V","RKSJ-H","RKSJ-V","Roman","UniCNS-UCS2-H","UniCNS-UCS2-V","UniCNS-UTF16-H","UniCNS-UTF16-V","UniCNS-UTF32-H","UniCNS-UTF32-V","UniCNS-UTF8-H","UniCNS-UTF8-V","UniGB-UCS2-H","UniGB-UCS2-V","UniGB-UTF16-H","UniGB-UTF16-V","UniGB-UTF32-H","UniGB-UTF32-V","UniGB-UTF8-H","UniGB-UTF8-V","UniJIS-UCS2-H","UniJIS-UCS2-HW-H","UniJIS-UCS2-HW-V","UniJIS-UCS2-V","UniJIS-UTF16-H","UniJIS-UTF16-V","UniJIS-UTF32-H","UniJIS-UTF32-V","UniJIS-UTF8-H","UniJIS-UTF8-V","UniJIS2004-UTF16-H","UniJIS2004-UTF16-V","UniJIS2004-UTF32-H","UniJIS2004-UTF32-V","UniJIS2004-UTF8-H","UniJIS2004-UTF8-V","UniJISPro-UCS2-HW-V","UniJISPro-UCS2-V","UniJISPro-UTF8-V","UniJISX0213-UTF32-H","UniJISX0213-UTF32-V","UniJISX02132004-UTF32-H","UniJISX02132004-UTF32-V","UniKS-UCS2-H","UniKS-UCS2-V","UniKS-UTF16-H","UniKS-UTF16-V","UniKS-UTF32-H","UniKS-UTF32-V","UniKS-UTF8-H","UniKS-UTF8-V","V","WP-Symbol"],h=2**24-1;class CMap{constructor(e=!1){this.codespaceRanges=[[],[],[],[]];this.numCodespaceRanges=0;this._map=[];this.name="";this.vertical=!1;this.useCMap=null;this.builtInCMap=e}addCodespaceRange(e,t,a){this.codespaceRanges[e-1].push(t,a);this.numCodespaceRanges++}mapCidRange(e,t,a){if(t-e>h)throw new Error("mapCidRange - ignoring data above MAX_MAP_RANGE.");for(;e<=t;)this._map[e++]=a++}mapBfRange(e,t,a){if(t-e>h)throw new Error("mapBfRange - ignoring data above MAX_MAP_RANGE.");const r=a.length-1;for(;e<=t;){this._map[e++]=a;const t=a.charCodeAt(r)+1;t>255?a=a.substring(0,r-1)+String.fromCharCode(a.charCodeAt(r-1)+1)+"\0":a=a.substring(0,r)+String.fromCharCode(t)}}mapBfRangeToArray(e,t,a){if(t-e>h)throw new Error("mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.");const r=a.length;let n=0;for(;e<=t&&n>>0;const s=n[i];for(let e=0,t=s.length;e=t&&r<=n){a.charcode=r;a.length=i+1;return}}}a.charcode=0;a.length=1}getCharCodeLength(e){const t=this.codespaceRanges;for(let a=0,r=t.length;a=n&&e<=i)return a+1}}return 1}get length(){return this._map.length}get isIdentityCMap(){if("Identity-H"!==this.name&&"Identity-V"!==this.name)return!1;if(65536!==this._map.length)return!1;for(let e=0;e<65536;e++)if(this._map[e]!==e)return!1;return!0}}t.CMap=CMap;class IdentityCMap extends CMap{constructor(e,t){super();this.vertical=e;this.addCodespaceRange(t,0,65535)}mapCidRange(e,t,a){(0,r.unreachable)("should not call mapCidRange")}mapBfRange(e,t,a){(0,r.unreachable)("should not call mapBfRange")}mapBfRangeToArray(e,t,a){(0,r.unreachable)("should not call mapBfRangeToArray")}mapOne(e,t){(0,r.unreachable)("should not call mapCidOne")}lookup(e){return Number.isInteger(e)&&e<=65535?e:void 0}contains(e){return Number.isInteger(e)&&e<=65535}forEach(e){for(let t=0;t<=65535;t++)e(t,t)}charCodeOf(e){return Number.isInteger(e)&&e<=65535?e:-1}getMap(){const e=new Array(65536);for(let t=0;t<=65535;t++)e[t]=t;return e}get length(){return 65536}get isIdentityCMap(){(0,r.unreachable)("should not access .isIdentityCMap")}}t.IdentityCMap=IdentityCMap;const u=function BinaryCMapReaderClosure(){function hexToInt(e,t){let a=0;for(let r=0;r<=t;r++)a=a<<8|e[r];return a>>>0}function hexToStr(e,t){return 1===t?String.fromCharCode(e[0],e[1]):3===t?String.fromCharCode(e[0],e[1],e[2],e[3]):String.fromCharCode.apply(null,e.subarray(0,t+1))}function addHex(e,t,a){let r=0;for(let n=a;n>=0;n--){r+=e[n]+t[n];e[n]=255&r;r>>=8}}function incHex(e,t){let a=1;for(let r=t;r>=0&&a>0;r--){a+=e[r];e[r]=255&a;a>>=8}}const e=16;class BinaryCMapStream{constructor(e){this.buffer=e;this.pos=0;this.end=e.length;this.tmpBuf=new Uint8Array(19)}readByte(){return this.pos>=this.end?-1:this.buffer[this.pos++]}readNumber(){let e,t=0;do{const a=this.readByte();if(a<0)throw new r.FormatError("unexpected EOF in bcmap");e=!(128&a);t=t<<7|127&a}while(!e);return t}readSigned(){const e=this.readNumber();return 1&e?~(e>>>1):e>>>1}readHex(e,t){e.set(this.buffer.subarray(this.pos,this.pos+t+1));this.pos+=t+1}readHexNumber(e,t){let a;const n=this.tmpBuf;let i=0;do{const e=this.readByte();if(e<0)throw new r.FormatError("unexpected EOF in bcmap");a=!(128&e);n[i++]=127&e}while(!a);let s=t,o=0,c=0;for(;s>=0;){for(;c<8&&n.length>0;){o|=n[--i]<>=8;c-=8}}readHexSigned(e,t){this.readHexNumber(e,t);const a=1&e[t]?255:0;let r=0;for(let n=0;n<=t;n++){r=(1&r)<<8|e[n];e[n]=r>>1^a}}readString(){const e=this.readNumber();let t="";for(let a=0;a=0;){const t=f>>5;if(7===t){switch(31&f){case 0:n.readString();break;case 1:s=n.readString()}continue}const r=!!(16&f),i=15&f;if(i+1>e)throw new Error("BinaryCMapReader.process: Invalid dataSize.");const g=1,p=n.readNumber();switch(t){case 0:n.readHex(o,i);n.readHexNumber(c,i);addHex(c,o,i);a.addCodespaceRange(i+1,hexToInt(o,i),hexToInt(c,i));for(let e=1;e>>0}function expectString(e){if("string"!=typeof e)throw new r.FormatError("Malformed CMap: expected string.")}function expectInt(e){if(!Number.isInteger(e))throw new r.FormatError("Malformed CMap: expected int.")}function parseBfChar(e,t){for(;;){let a=t.getObj();if(a===n.EOF)break;if((0,n.isCmd)(a,"endbfchar"))return;expectString(a);const r=strToInt(a);a=t.getObj();expectString(a);const i=a;e.mapOne(r,i)}}function parseBfRange(e,t){for(;;){let a=t.getObj();if(a===n.EOF)break;if((0,n.isCmd)(a,"endbfrange"))return;expectString(a);const r=strToInt(a);a=t.getObj();expectString(a);const i=strToInt(a);a=t.getObj();if(Number.isInteger(a)||"string"==typeof a){const t=Number.isInteger(a)?String.fromCharCode(a):a;e.mapBfRange(r,i,t)}else{if(!(0,n.isCmd)(a,"["))break;{a=t.getObj();const s=[];for(;!(0,n.isCmd)(a,"]")&&a!==n.EOF;){s.push(a);a=t.getObj()}e.mapBfRangeToArray(r,i,s)}}}throw new r.FormatError("Invalid bf range.")}function parseCidChar(e,t){for(;;){let a=t.getObj();if(a===n.EOF)break;if((0,n.isCmd)(a,"endcidchar"))return;expectString(a);const r=strToInt(a);a=t.getObj();expectInt(a);const i=a;e.mapOne(r,i)}}function parseCidRange(e,t){for(;;){let a=t.getObj();if(a===n.EOF)break;if((0,n.isCmd)(a,"endcidrange"))return;expectString(a);const r=strToInt(a);a=t.getObj();expectString(a);const i=strToInt(a);a=t.getObj();expectInt(a);const s=a;e.mapCidRange(r,i,s)}}function parseCodespaceRange(e,t){for(;;){let a=t.getObj();if(a===n.EOF)break;if((0,n.isCmd)(a,"endcodespacerange"))return;if("string"!=typeof a)break;const r=strToInt(a);a=t.getObj();if("string"!=typeof a)break;const i=strToInt(a);e.addCodespaceRange(a.length,r,i)}throw new r.FormatError("Invalid codespace range.")}function parseWMode(e,t){const a=t.getObj();Number.isInteger(a)&&(e.vertical=!!a)}function parseCMapName(e,t){const a=t.getObj();a instanceof n.Name&&(e.name=a.name)}async function parseCMap(e,t,a,i){let s,c;e:for(;;)try{const a=t.getObj();if(a===n.EOF)break;if(a instanceof n.Name){"WMode"===a.name?parseWMode(e,t):"CMapName"===a.name&&parseCMapName(e,t);s=a}else if(a instanceof n.Cmd)switch(a.cmd){case"endcmap":break e;case"usecmap":s instanceof n.Name&&(c=s.name);break;case"begincodespacerange":parseCodespaceRange(e,t);break;case"beginbfchar":parseBfChar(e,t);break;case"begincidchar":parseCidChar(e,t);break;case"beginbfrange":parseBfRange(e,t);break;case"begincidrange":parseCidRange(e,t)}}catch(e){if(e instanceof o.MissingDataException)throw e;(0,r.warn)("Invalid cMap data: "+e);continue}!i&&c&&(i=c);return i?extendCMap(e,a,i):e}async function extendCMap(e,t,a){e.useCMap=await createBuiltInCMap(a,t);if(0===e.numCodespaceRanges){const t=e.useCMap.codespaceRanges;for(let a=0;aextendCMap(i,t,e)));if(n===r.CMapCompressionType.NONE){const e=new s.Lexer(new c.Stream(a));return parseCMap(i,e,t,null)}throw new Error("TODO: Only BINARY/NONE CMap compression is currently supported.")}return{async create(e){const t=e.encoding,a=e.fetchBuiltInCMap,r=e.useCMap;if(t instanceof n.Name)return createBuiltInCMap(t.name,a);if(t instanceof i.BaseStream){const e=await parseCMap(new CMap,new s.Lexer(t),a,r);return e.isIdentityCMap?createBuiltInCMap(e.name,a):e}throw new Error("Encoding required.")}}}();t.CMapFactory=d},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Parser=t.Linearization=t.Lexer=void 0;var r=a(2),n=a(5),i=a(8),s=a(28),o=a(30),c=a(31),l=a(33),h=a(34),u=a(37),d=a(39),f=a(41),g=a(10),p=a(42),m=a(43);function computeAdler32(e){const t=e.length;let a=1,r=0;for(let n=0;n>")&&this.buf1!==n.EOF;){if(!(this.buf1 instanceof n.Name)){(0,r.info)("Malformed dictionary: key must be a name object");this.shift();continue}const t=this.buf1.name;this.shift();if(this.buf1===n.EOF)break;s.set(t,this.getObj(e))}if(this.buf1===n.EOF){if(this.recoveryMode)return s;throw new i.ParserEOFException("End of file inside dictionary.")}if((0,n.isCmd)(this.buf2,"stream"))return this.allowStreams?this.makeStream(s,e):s;this.shift();return s;default:return t}if(Number.isInteger(t)){if(Number.isInteger(this.buf1)&&(0,n.isCmd)(this.buf2,"R")){const e=n.Ref.get(t,this.buf1);this.shift();this.shift();return e}return t}return"string"==typeof t&&e?e.decryptString(t):t}findDefaultInlineStreamEnd(e){const t=this.lexer,a=e.pos;let s,o,c=0;for(;-1!==(s=e.getByte());)if(0===c)c=69===s?1:0;else if(1===c)c=73===s?2:0;else{(0,r.assert)(2===c,"findDefaultInlineStreamEnd - invalid state.");if(32===s||10===s||13===s){o=e.pos;const a=e.peekBytes(10);for(let e=0,t=a.length;e127))){c=0;break}}if(2!==c)continue;if(t.knownCommands){const e=t.peekObj();e instanceof n.Cmd&&!t.knownCommands[e.cmd]&&(c=0)}else(0,r.warn)("findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.");if(2===c)break}else c=0}if(-1===s){(0,r.warn)("findDefaultInlineStreamEnd: Reached the end of the stream without finding a valid EI marker");if(o){(0,r.warn)('... trying to recover by using the last "EI" occurrence.');e.skip(-(e.pos-o))}}let l=4;e.skip(-l);s=e.peekByte();e.skip(l);(0,i.isWhiteSpace)(s)||l--;return e.pos-l-a}findDCTDecodeInlineStreamEnd(e){const t=e.pos;let a,n,i=!1;for(;-1!==(a=e.getByte());)if(255===a){switch(e.getByte()){case 0:break;case 255:e.skip(-1);break;case 217:i=!0;break;case 192:case 193:case 194:case 195:case 197:case 198:case 199:case 201:case 202:case 203:case 205:case 206:case 207:case 196:case 204:case 218:case 219:case 220:case 221:case 222:case 223:case 224:case 225:case 226:case 227:case 228:case 229:case 230:case 231:case 232:case 233:case 234:case 235:case 236:case 237:case 238:case 239:case 254:n=e.getUint16();n>2?e.skip(n-2):e.skip(-2)}if(i)break}const s=e.pos-t;if(-1===a){(0,r.warn)("Inline DCTDecode image stream: EOI marker not found, searching for /EI/ instead.");e.skip(-s);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return s}findASCII85DecodeInlineStreamEnd(e){const t=e.pos;let a;for(;-1!==(a=e.getByte());)if(126===a){const t=e.pos;a=e.peekByte();for(;(0,i.isWhiteSpace)(a);){e.skip();a=e.peekByte()}if(62===a){e.skip();break}if(e.pos>t){const t=e.peekBytes(2);if(69===t[0]&&73===t[1])break}}const n=e.pos-t;if(-1===a){(0,r.warn)("Inline ASCII85Decode image stream: EOD marker not found, searching for /EI/ instead.");e.skip(-n);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return n}findASCIIHexDecodeInlineStreamEnd(e){const t=e.pos;let a;for(;-1!==(a=e.getByte())&&62!==a;);const n=e.pos-t;if(-1===a){(0,r.warn)("Inline ASCIIHexDecode image stream: EOD marker not found, searching for /EI/ instead.");e.skip(-n);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return n}inlineStreamSkipEI(e){let t,a=0;for(;-1!==(t=e.getByte());)if(0===a)a=69===t?1:0;else if(1===a)a=73===t?2:0;else if(2===a)break}makeInlineImage(e){const t=this.lexer,a=t.stream,i=new n.Dict(this.xref);let s;for(;!(0,n.isCmd)(this.buf1,"ID")&&this.buf1!==n.EOF;){if(!(this.buf1 instanceof n.Name))throw new r.FormatError("Dictionary key must be a name object");const t=this.buf1.name;this.shift();if(this.buf1===n.EOF)break;i.set(t,this.getObj(e))}-1!==t.beginInlineImagePos&&(s=a.pos-t.beginInlineImagePos);const o=i.get("F","Filter");let c;if(o instanceof n.Name)c=o.name;else if(Array.isArray(o)){const e=this.xref.fetchIfRef(o[0]);e instanceof n.Name&&(c=e.name)}const l=a.pos;let h;switch(c){case"DCT":case"DCTDecode":h=this.findDCTDecodeInlineStreamEnd(a);break;case"A85":case"ASCII85Decode":h=this.findASCII85DecodeInlineStreamEnd(a);break;case"AHx":case"ASCIIHexDecode":h=this.findASCIIHexDecodeInlineStreamEnd(a);break;default:h=this.findDefaultInlineStreamEnd(a)}let u,d=a.makeSubStream(l,h,i);if(h<1e3&&s<5552){const e=d.getBytes();d.reset();const r=a.pos;a.pos=t.beginInlineImagePos;const i=a.getBytes(s);a.pos=r;u=computeAdler32(e)+"_"+computeAdler32(i);const o=this.imageCache[u];if(void 0!==o){this.buf2=n.Cmd.get("EI");this.shift();o.reset();return o}}e&&(d=e.createStream(d,h));d=this.filter(d,i,h);d.dict=i;if(void 0!==u){d.cacheKey=`inline_${h}_${u}`;this.imageCache[u]=d}this.buf2=n.Cmd.get("EI");this.shift();return d}_findStreamLength(e,t){const{stream:a}=this.lexer;a.pos=e;const r=t.length;for(;a.pos=r){a.pos+=s;return a.pos-e}s++}a.pos+=i}return-1}makeStream(e,t){const a=this.lexer;let s=a.stream;a.skipToNextLine();const o=s.pos-1;let c=e.get("Length");if(!Number.isInteger(c)){(0,r.info)(`Bad length "${c&&c.toString()}" in stream.`);c=0}s.pos=o+c;a.nextChar();if(this.tryShift()&&(0,n.isCmd)(this.buf2,"endstream"))this.shift();else{const e=new Uint8Array([101,110,100,115,116,114,101,97,109]);let t=this._findStreamLength(o,e);if(t<0){const a=1;for(let n=1;n<=a;n++){const a=e.length-n,c=e.slice(0,a),l=this._findStreamLength(o,c);if(l>=0){const e=s.peekBytes(a+1)[a];if(!(0,i.isWhiteSpace)(e))break;(0,r.info)(`Found "${(0,r.bytesToString)(c)}" when searching for endstream command.`);t=l;break}}if(t<0)throw new r.FormatError("Missing endstream command.")}c=t;a.nextChar();this.shift();this.shift()}this.shift();s=s.makeSubStream(o,c,e);t&&(s=t.createStream(s,c));s=this.filter(s,e,c);s.dict=e;return s}filter(e,t,a){let i=t.get("F","Filter"),s=t.get("DP","DecodeParms");if(i instanceof n.Name){Array.isArray(s)&&(0,r.warn)("/DecodeParms should not be an Array, when /Filter is a Name.");return this.makeFilter(e,i.name,a,s)}let o=a;if(Array.isArray(i)){const t=i,a=s;for(let c=0,l=t.length;c=48&&e<=57?15&e:e>=65&&e<=70||e>=97&&e<=102?9+(15&e):-1}class Lexer{constructor(e,t=null){this.stream=e;this.nextChar();this.strBuf=[];this.knownCommands=t;this._hexStringNumWarn=0;this.beginInlineImagePos=-1}nextChar(){return this.currentChar=this.stream.getByte()}peekChar(){return this.stream.peekByte()}getNumber(){let e=this.currentChar,t=!1,a=0,n=0;if(45===e){n=-1;e=this.nextChar();45===e&&(e=this.nextChar())}else if(43===e){n=1;e=this.nextChar()}if(10===e||13===e)do{e=this.nextChar()}while(10===e||13===e);if(46===e){a=10;e=this.nextChar()}if(e<48||e>57){if((0,i.isWhiteSpace)(e)||-1===e){if(10===a&&0===n){(0,r.warn)("Lexer.getNumber - treating a single decimal point as zero.");return 0}if(0===a&&-1===n){(0,r.warn)("Lexer.getNumber - treating a single minus sign as zero.");return 0}}throw new r.FormatError(`Invalid number: ${String.fromCharCode(e)} (charCode ${e})`)}n=n||1;let s=e-48,o=0,c=1;for(;(e=this.nextChar())>=0;)if(e>=48&&e<=57){const r=e-48;if(t)o=10*o+r;else{0!==a&&(a*=10);s=10*s+r}}else if(46===e){if(0!==a)break;a=1}else if(45===e)(0,r.warn)("Badly formatted number: minus sign in the middle");else{if(69!==e&&101!==e)break;e=this.peekChar();if(43===e||45===e){c=45===e?-1:1;this.nextChar()}else if(e<48||e>57)break;t=!0}0!==a&&(s/=a);t&&(s*=10**(c*o));return n*s}getString(){let e=1,t=!1;const a=this.strBuf;a.length=0;let n=this.nextChar();for(;;){let i=!1;switch(0|n){case-1:(0,r.warn)("Unterminated string");t=!0;break;case 40:++e;a.push("(");break;case 41:if(0==--e){this.nextChar();t=!0}else a.push(")");break;case 92:n=this.nextChar();switch(n){case-1:(0,r.warn)("Unterminated string");t=!0;break;case 110:a.push("\n");break;case 114:a.push("\r");break;case 116:a.push("\t");break;case 98:a.push("\b");break;case 102:a.push("\f");break;case 92:case 40:case 41:a.push(String.fromCharCode(n));break;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:let e=15&n;n=this.nextChar();i=!0;if(n>=48&&n<=55){e=(e<<3)+(15&n);n=this.nextChar();if(n>=48&&n<=55){i=!1;e=(e<<3)+(15&n)}}a.push(String.fromCharCode(e));break;case 13:10===this.peekChar()&&this.nextChar();break;case 10:break;default:a.push(String.fromCharCode(n))}break;default:a.push(String.fromCharCode(n))}if(t)break;i||(n=this.nextChar())}return a.join("")}getName(){let e,t;const a=this.strBuf;a.length=0;for(;(e=this.nextChar())>=0&&!b[e];)if(35===e){e=this.nextChar();if(b[e]){(0,r.warn)("Lexer_getName: NUMBER SIGN (#) should be followed by a hexadecimal number.");a.push("#");break}const n=toHexDigit(e);if(-1!==n){t=e;e=this.nextChar();const i=toHexDigit(e);if(-1===i){(0,r.warn)(`Lexer_getName: Illegal digit (${String.fromCharCode(e)}) in hexadecimal number.`);a.push("#",String.fromCharCode(t));if(b[e])break;a.push(String.fromCharCode(e));continue}a.push(String.fromCharCode(n<<4|i))}else a.push("#",String.fromCharCode(e))}else a.push(String.fromCharCode(e));a.length>127&&(0,r.warn)(`Name token is longer than allowed by the spec: ${a.length}`);return n.Name.get(a.join(""))}_hexStringWarn(e){5!=this._hexStringNumWarn++?this._hexStringNumWarn>5||(0,r.warn)(`getHexString - ignoring invalid character: ${e}`):(0,r.warn)("getHexString - ignoring additional invalid characters.")}getHexString(){const e=this.strBuf;e.length=0;let t,a,n=this.currentChar,i=!0;this._hexStringNumWarn=0;for(;;){if(n<0){(0,r.warn)("Unterminated hex string");break}if(62===n){this.nextChar();break}if(1!==b[n]){if(i){t=toHexDigit(n);if(-1===t){this._hexStringWarn(n);n=this.nextChar();continue}}else{a=toHexDigit(n);if(-1===a){this._hexStringWarn(n);n=this.nextChar();continue}e.push(String.fromCharCode(t<<4|a))}i=!i;n=this.nextChar()}else n=this.nextChar()}return e.join("")}getObj(){let e=!1,t=this.currentChar;for(;;){if(t<0)return n.EOF;if(e)10!==t&&13!==t||(e=!1);else if(37===t)e=!0;else if(1!==b[t])break;t=this.nextChar()}switch(0|t){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return this.getNumber();case 40:return this.getString();case 47:return this.getName();case 91:this.nextChar();return n.Cmd.get("[");case 93:this.nextChar();return n.Cmd.get("]");case 60:t=this.nextChar();if(60===t){this.nextChar();return n.Cmd.get("<<")}return this.getHexString();case 62:t=this.nextChar();if(62===t){this.nextChar();return n.Cmd.get(">>")}return n.Cmd.get(">");case 123:this.nextChar();return n.Cmd.get("{");case 125:this.nextChar();return n.Cmd.get("}");case 41:this.nextChar();throw new r.FormatError(`Illegal character: ${t}`)}let a=String.fromCharCode(t);if(t<32||t>127){const e=this.peekChar();if(e>=32&&e<=127){this.nextChar();return n.Cmd.get(a)}}const i=this.knownCommands;let s=i&&void 0!==i[a];for(;(t=this.nextChar())>=0&&!b[t];){const e=a+String.fromCharCode(t);if(s&&void 0===i[e])break;if(128===a.length)throw new r.FormatError(`Command token too long: ${a.length}`);a=e;s=i&&void 0!==i[a]}if("true"===a)return!0;if("false"===a)return!1;if("null"===a)return null;"BI"===a&&(this.beginInlineImagePos=this.stream.pos);return n.Cmd.get(a)}peekObj(){const e=this.stream.pos,t=this.currentChar,a=this.beginInlineImagePos;let n;try{n=this.getObj()}catch(e){if(e instanceof i.MissingDataException)throw e;(0,r.warn)(`peekObj: ${e}`)}this.stream.pos=e;this.currentChar=t;this.beginInlineImagePos=a;return n}skipToNextLine(){let e=this.currentChar;for(;e>=0;){if(13===e){e=this.nextChar();10===e&&this.nextChar();break}if(10===e){this.nextChar();break}e=this.nextChar()}}}t.Lexer=Lexer;t.Linearization=class Linearization{static create(e){function getInt(e,t,a=!1){const r=e.get(t);if(Number.isInteger(r)&&(a?r>=0:r>0))return r;throw new Error(`The "${t}" parameter in the linearization dictionary is invalid.`)}const t=new Parser({lexer:new Lexer(e),xref:null}),a=t.getObj(),r=t.getObj(),i=t.getObj(),s=t.getObj();let o,c;if(!(Number.isInteger(a)&&Number.isInteger(r)&&(0,n.isCmd)(i,"obj")&&s instanceof n.Dict&&"number"==typeof(o=s.get("Linearized"))&&o>0))return null;if((c=getInt(s,"L"))!==e.length)throw new Error('The "L" parameter in the linearization dictionary does not equal the stream length.');return{length:c,hints:function getHints(e){const t=e.get("H");let a;if(Array.isArray(t)&&(2===(a=t.length)||4===a)){for(let e=0;e0))throw new Error(`Hint (${e}) in the linearization dictionary is invalid.`)}return t}throw new Error("Hint array in the linearization dictionary is invalid.")}(s),objectNumberFirst:getInt(s,"O"),endFirst:getInt(s,"E"),numPages:getInt(s,"N"),mainXRefEntriesOffset:getInt(s,"T"),pageFirst:s.has("P")?getInt(s,"P",!0):0}}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Ascii85Stream=void 0;var r=a(29),n=a(8);class Ascii85Stream extends r.DecodeStream{constructor(e,t){t&&(t*=.8);super(t);this.str=e;this.dict=e.dict;this.input=new Uint8Array(5)}readBlock(){const e=this.str;let t=e.getByte();for(;(0,n.isWhiteSpace)(t);)t=e.getByte();if(-1===t||126===t){this.eof=!0;return}const a=this.bufferLength;let r,i;if(122===t){r=this.ensureBuffer(a+4);for(i=0;i<4;++i)r[a+i]=0;this.bufferLength+=4}else{const s=this.input;s[0]=t;for(i=1;i<5;++i){t=e.getByte();for(;(0,n.isWhiteSpace)(t);)t=e.getByte();s[i]=t;if(-1===t||126===t)break}r=this.ensureBuffer(a+i-1);this.bufferLength+=i-1;if(i<5){for(;i<5;++i)s[i]=117;this.eof=!0}let o=0;for(i=0;i<5;++i)o=85*o+(s[i]-33);for(i=3;i>=0;--i){r[a+i]=255&o;o>>=8}}}}t.Ascii85Stream=Ascii85Stream},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.StreamsSequenceStream=t.DecodeStream=void 0;var r=a(9),n=a(10);const i=new Uint8Array(0);class DecodeStream extends r.BaseStream{constructor(e){super();this._rawMinBufferLength=e||0;this.pos=0;this.bufferLength=0;this.eof=!1;this.buffer=i;this.minBufferLength=512;if(e)for(;this.minBufferLengthr&&(a=r)}else{for(;!this.eof;)this.readBlock();a=this.bufferLength}this.pos=a;return this.buffer.subarray(t,a)}reset(){this.pos=0}makeSubStream(e,t,a=null){if(void 0===t)for(;!this.eof;)this.readBlock();else{const a=e+t;for(;this.bufferLength<=a&&!this.eof;)this.readBlock()}return new n.Stream(this.buffer,e,t,a)}getBaseStreams(){return this.str?this.str.getBaseStreams():null}}t.DecodeStream=DecodeStream;t.StreamsSequenceStream=class StreamsSequenceStream extends DecodeStream{constructor(e,t=null){let a=0;for(const t of e)a+=t instanceof DecodeStream?t._rawMinBufferLength:t.length;super(a);this.streams=e;this._onError=t}readBlock(){const e=this.streams;if(0===e.length){this.eof=!0;return}const t=e.shift();let a;try{a=t.getBytes()}catch(e){if(this._onError){this._onError(e,t.dict&&t.dict.objId);return}throw e}const r=this.bufferLength,n=r+a.length;this.ensureBuffer(n).set(a,r);this.bufferLength=n}getBaseStreams(){const e=[];for(const t of this.streams){const a=t.getBaseStreams();a&&e.push(...a)}return e.length>0?e:null}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.AsciiHexStream=void 0;var r=a(29);class AsciiHexStream extends r.DecodeStream{constructor(e,t){t&&(t*=.5);super(t);this.str=e;this.dict=e.dict;this.firstDigit=-1}readBlock(){const e=this.str.getBytes(8e3);if(!e.length){this.eof=!0;return}const t=e.length+1>>1,a=this.ensureBuffer(this.bufferLength+t);let r=this.bufferLength,n=this.firstDigit;for(const t of e){let e;if(t>=48&&t<=57)e=15&t;else{if(!(t>=65&&t<=70||t>=97&&t<=102)){if(62===t){this.eof=!0;break}continue}e=9+(15&t)}if(n<0)n=e;else{a[r++]=n<<4|e;n=-1}}if(n>=0&&this.eof){a[r++]=n<<4;n=-1}this.firstDigit=n;this.bufferLength=r}}t.AsciiHexStream=AsciiHexStream},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.CCITTFaxStream=void 0;var r=a(32),n=a(29),i=a(5);class CCITTFaxStream extends n.DecodeStream{constructor(e,t,a){super(t);this.str=e;this.dict=e.dict;a instanceof i.Dict||(a=i.Dict.empty);const n={next:()=>e.getByte()};this.ccittFaxDecoder=new r.CCITTFaxDecoder(n,{K:a.get("K"),EndOfLine:a.get("EndOfLine"),EncodedByteAlign:a.get("EncodedByteAlign"),Columns:a.get("Columns"),Rows:a.get("Rows"),EndOfBlock:a.get("EndOfBlock"),BlackIs1:a.get("BlackIs1")})}readBlock(){for(;!this.eof;){const e=this.ccittFaxDecoder.readNextChar();if(-1===e){this.eof=!0;return}this.ensureBuffer(this.bufferLength+1);this.buffer[this.bufferLength++]=e}}}t.CCITTFaxStream=CCITTFaxStream},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.CCITTFaxDecoder=void 0;var r=a(2);const n=-1,i=[[-1,-1],[-1,-1],[7,8],[7,7],[6,6],[6,6],[6,5],[6,5],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2]],s=[[-1,-1],[12,-2],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[12,1984],[12,2048],[12,2112],[12,2176],[12,2240],[12,2304],[11,1856],[11,1856],[11,1920],[11,1920],[12,2368],[12,2432],[12,2496],[12,2560]],o=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[8,29],[8,29],[8,30],[8,30],[8,45],[8,45],[8,46],[8,46],[7,22],[7,22],[7,22],[7,22],[7,23],[7,23],[7,23],[7,23],[8,47],[8,47],[8,48],[8,48],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[7,20],[7,20],[7,20],[7,20],[8,33],[8,33],[8,34],[8,34],[8,35],[8,35],[8,36],[8,36],[8,37],[8,37],[8,38],[8,38],[7,19],[7,19],[7,19],[7,19],[8,31],[8,31],[8,32],[8,32],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[8,53],[8,53],[8,54],[8,54],[7,26],[7,26],[7,26],[7,26],[8,39],[8,39],[8,40],[8,40],[8,41],[8,41],[8,42],[8,42],[8,43],[8,43],[8,44],[8,44],[7,21],[7,21],[7,21],[7,21],[7,28],[7,28],[7,28],[7,28],[8,61],[8,61],[8,62],[8,62],[8,63],[8,63],[8,0],[8,0],[8,320],[8,320],[8,384],[8,384],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[7,27],[7,27],[7,27],[7,27],[8,59],[8,59],[8,60],[8,60],[9,1472],[9,1536],[9,1600],[9,1728],[7,18],[7,18],[7,18],[7,18],[7,24],[7,24],[7,24],[7,24],[8,49],[8,49],[8,50],[8,50],[8,51],[8,51],[8,52],[8,52],[7,25],[7,25],[7,25],[7,25],[8,55],[8,55],[8,56],[8,56],[8,57],[8,57],[8,58],[8,58],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[8,448],[8,448],[8,512],[8,512],[9,704],[9,768],[8,640],[8,640],[8,576],[8,576],[9,832],[9,896],[9,960],[9,1024],[9,1088],[9,1152],[9,1216],[9,1280],[9,1344],[9,1408],[7,256],[7,256],[7,256],[7,256],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7]],c=[[-1,-1],[-1,-1],[12,-2],[12,-2],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[11,1792],[11,1792],[12,1984],[12,1984],[12,2048],[12,2048],[12,2112],[12,2112],[12,2176],[12,2176],[12,2240],[12,2240],[12,2304],[12,2304],[11,1856],[11,1856],[11,1856],[11,1856],[11,1920],[11,1920],[11,1920],[11,1920],[12,2368],[12,2368],[12,2432],[12,2432],[12,2496],[12,2496],[12,2560],[12,2560],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[12,52],[12,52],[13,640],[13,704],[13,768],[13,832],[12,55],[12,55],[12,56],[12,56],[13,1280],[13,1344],[13,1408],[13,1472],[12,59],[12,59],[12,60],[12,60],[13,1536],[13,1600],[11,24],[11,24],[11,24],[11,24],[11,25],[11,25],[11,25],[11,25],[13,1664],[13,1728],[12,320],[12,320],[12,384],[12,384],[12,448],[12,448],[13,512],[13,576],[12,53],[12,53],[12,54],[12,54],[13,896],[13,960],[13,1024],[13,1088],[13,1152],[13,1216],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64]],l=[[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[11,23],[11,23],[12,50],[12,51],[12,44],[12,45],[12,46],[12,47],[12,57],[12,58],[12,61],[12,256],[10,16],[10,16],[10,16],[10,16],[10,17],[10,17],[10,17],[10,17],[12,48],[12,49],[12,62],[12,63],[12,30],[12,31],[12,32],[12,33],[12,40],[12,41],[11,22],[11,22],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[12,128],[12,192],[12,26],[12,27],[12,28],[12,29],[11,19],[11,19],[11,20],[11,20],[12,34],[12,35],[12,36],[12,37],[12,38],[12,39],[11,21],[11,21],[12,42],[12,43],[10,0],[10,0],[10,0],[10,0],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12]],h=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[6,9],[6,8],[5,7],[5,7],[4,6],[4,6],[4,6],[4,6],[4,5],[4,5],[4,5],[4,5],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2]];t.CCITTFaxDecoder=class CCITTFaxDecoder{constructor(e,t={}){if(!e||"function"!=typeof e.next)throw new Error('CCITTFaxDecoder - invalid "source" parameter.');this.source=e;this.eof=!1;this.encoding=t.K||0;this.eoline=t.EndOfLine||!1;this.byteAlign=t.EncodedByteAlign||!1;this.columns=t.Columns||1728;this.rows=t.Rows||0;let a,r=t.EndOfBlock;null==r&&(r=!0);this.eoblock=r;this.black=t.BlackIs1||!1;this.codingLine=new Uint32Array(this.columns+1);this.refLine=new Uint32Array(this.columns+2);this.codingLine[0]=this.columns;this.codingPos=0;this.row=0;this.nextLine2D=this.encoding<0;this.inputBits=0;this.inputBuf=0;this.outputBits=0;this.rowsDone=!1;for(;0===(a=this._lookBits(12));)this._eatBits(1);1===a&&this._eatBits(12);if(this.encoding>0){this.nextLine2D=!this._lookBits(1);this._eatBits(1)}}readNextChar(){if(this.eof)return-1;const e=this.refLine,t=this.codingLine,a=this.columns;let i,s,o,c,l;if(0===this.outputBits){this.rowsDone&&(this.eof=!0);if(this.eof)return-1;this.err=!1;let o,l,h;if(this.nextLine2D){for(c=0;t[c]=64);do{l+=h=this._getWhiteCode()}while(h>=64)}else{do{o+=h=this._getWhiteCode()}while(h>=64);do{l+=h=this._getBlackCode()}while(h>=64)}this._addPixels(t[this.codingPos]+o,s);t[this.codingPos]0?--i:++i;for(;e[i]<=t[this.codingPos]&&e[i]0?--i:++i;for(;e[i]<=t[this.codingPos]&&e[i]0?--i:++i;for(;e[i]<=t[this.codingPos]&&e[i]=64);else do{o+=h=this._getWhiteCode()}while(h>=64);this._addPixels(t[this.codingPos]+o,s);s^=1}}let u=!1;this.byteAlign&&(this.inputBits&=-8);if(this.eoblock||this.row!==this.rows-1){o=this._lookBits(12);if(this.eoline)for(;o!==n&&1!==o;){this._eatBits(1);o=this._lookBits(12)}else for(;0===o;){this._eatBits(1);o=this._lookBits(12)}if(1===o){this._eatBits(12);u=!0}else o===n&&(this.eof=!0)}else this.rowsDone=!0;if(!this.eof&&this.encoding>0&&!this.rowsDone){this.nextLine2D=!this._lookBits(1);this._eatBits(1)}if(this.eoblock&&u&&this.byteAlign){o=this._lookBits(12);if(1===o){this._eatBits(12);if(this.encoding>0){this._lookBits(1);this._eatBits(1)}if(this.encoding>=0)for(c=0;c<4;++c){o=this._lookBits(12);1!==o&&(0,r.info)("bad rtc code: "+o);this._eatBits(12);if(this.encoding>0){this._lookBits(1);this._eatBits(1)}}this.eof=!0}}else if(this.err&&this.eoline){for(;;){o=this._lookBits(13);if(o===n){this.eof=!0;return-1}if(o>>1==1)break;this._eatBits(1)}this._eatBits(12);if(this.encoding>0){this._eatBits(1);this.nextLine2D=!(1&o)}}t[0]>0?this.outputBits=t[this.codingPos=0]:this.outputBits=t[this.codingPos=1];this.row++}if(this.outputBits>=8){l=1&this.codingPos?0:255;this.outputBits-=8;if(0===this.outputBits&&t[this.codingPos]o){l<<=o;1&this.codingPos||(l|=255>>8-o);this.outputBits-=o;o=0}else{l<<=this.outputBits;1&this.codingPos||(l|=255>>8-this.outputBits);o-=this.outputBits;this.outputBits=0;if(t[this.codingPos]0){l<<=o;o=0}}}while(o)}this.black&&(l^=255);return l}_addPixels(e,t){const a=this.codingLine;let n=this.codingPos;if(e>a[n]){if(e>this.columns){(0,r.info)("row is wrong length");this.err=!0;e=this.columns}1&n^t&&++n;a[n]=e}this.codingPos=n}_addPixelsNeg(e,t){const a=this.codingLine;let n=this.codingPos;if(e>a[n]){if(e>this.columns){(0,r.info)("row is wrong length");this.err=!0;e=this.columns}1&n^t&&++n;a[n]=e}else if(e0&&e=i){const t=a[e-i];if(t[0]===r){this._eatBits(r);return[!0,t[1],!0]}}}return[!1,0,!1]}_getTwoDimCode(){let e,t=0;if(this.eoblock){t=this._lookBits(7);e=i[t];if(e&&e[0]>0){this._eatBits(e[0]);return e[1]}}else{const e=this._findTableCode(1,7,i);if(e[0]&&e[2])return e[1]}(0,r.info)("Bad two dim code");return n}_getWhiteCode(){let e,t=0;if(this.eoblock){t=this._lookBits(12);if(t===n)return 1;e=t>>5==0?s[t]:o[t>>3];if(e[0]>0){this._eatBits(e[0]);return e[1]}}else{let e=this._findTableCode(1,9,o);if(e[0])return e[1];e=this._findTableCode(11,12,s);if(e[0])return e[1]}(0,r.info)("bad white code");this._eatBits(1);return 1}_getBlackCode(){let e,t;if(this.eoblock){e=this._lookBits(13);if(e===n)return 1;t=e>>7==0?c[e]:e>>9==0&&e>>7!=0?l[(e>>1)-64]:h[e>>7];if(t[0]>0){this._eatBits(t[0]);return t[1]}}else{let e=this._findTableCode(2,6,h);if(e[0])return e[1];e=this._findTableCode(7,12,l,64);if(e[0])return e[1];e=this._findTableCode(10,13,c);if(e[0])return e[1]}(0,r.info)("bad black code");this._eatBits(1);return 1}_lookBits(e){let t;for(;this.inputBits>16-e;this.inputBuf=this.inputBuf<<8|t;this.inputBits+=8}return this.inputBuf>>this.inputBits-e&65535>>16-e}_eatBits(e){(this.inputBits-=e)<0&&(this.inputBits=0)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.FlateStream=void 0;var r=a(29),n=a(2);const i=new Int32Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),s=new Int32Array([3,4,5,6,7,8,9,10,65547,65549,65551,65553,131091,131095,131099,131103,196643,196651,196659,196667,262211,262227,262243,262259,327811,327843,327875,327907,258,258,258]),o=new Int32Array([1,2,3,4,65541,65543,131081,131085,196625,196633,262177,262193,327745,327777,393345,393409,459009,459137,524801,525057,590849,591361,657409,658433,724993,727041,794625,798721,868353,876545]),c=[new Int32Array([459008,524368,524304,524568,459024,524400,524336,590016,459016,524384,524320,589984,524288,524416,524352,590048,459012,524376,524312,589968,459028,524408,524344,590032,459020,524392,524328,59e4,524296,524424,524360,590064,459010,524372,524308,524572,459026,524404,524340,590024,459018,524388,524324,589992,524292,524420,524356,590056,459014,524380,524316,589976,459030,524412,524348,590040,459022,524396,524332,590008,524300,524428,524364,590072,459009,524370,524306,524570,459025,524402,524338,590020,459017,524386,524322,589988,524290,524418,524354,590052,459013,524378,524314,589972,459029,524410,524346,590036,459021,524394,524330,590004,524298,524426,524362,590068,459011,524374,524310,524574,459027,524406,524342,590028,459019,524390,524326,589996,524294,524422,524358,590060,459015,524382,524318,589980,459031,524414,524350,590044,459023,524398,524334,590012,524302,524430,524366,590076,459008,524369,524305,524569,459024,524401,524337,590018,459016,524385,524321,589986,524289,524417,524353,590050,459012,524377,524313,589970,459028,524409,524345,590034,459020,524393,524329,590002,524297,524425,524361,590066,459010,524373,524309,524573,459026,524405,524341,590026,459018,524389,524325,589994,524293,524421,524357,590058,459014,524381,524317,589978,459030,524413,524349,590042,459022,524397,524333,590010,524301,524429,524365,590074,459009,524371,524307,524571,459025,524403,524339,590022,459017,524387,524323,589990,524291,524419,524355,590054,459013,524379,524315,589974,459029,524411,524347,590038,459021,524395,524331,590006,524299,524427,524363,590070,459011,524375,524311,524575,459027,524407,524343,590030,459019,524391,524327,589998,524295,524423,524359,590062,459015,524383,524319,589982,459031,524415,524351,590046,459023,524399,524335,590014,524303,524431,524367,590078,459008,524368,524304,524568,459024,524400,524336,590017,459016,524384,524320,589985,524288,524416,524352,590049,459012,524376,524312,589969,459028,524408,524344,590033,459020,524392,524328,590001,524296,524424,524360,590065,459010,524372,524308,524572,459026,524404,524340,590025,459018,524388,524324,589993,524292,524420,524356,590057,459014,524380,524316,589977,459030,524412,524348,590041,459022,524396,524332,590009,524300,524428,524364,590073,459009,524370,524306,524570,459025,524402,524338,590021,459017,524386,524322,589989,524290,524418,524354,590053,459013,524378,524314,589973,459029,524410,524346,590037,459021,524394,524330,590005,524298,524426,524362,590069,459011,524374,524310,524574,459027,524406,524342,590029,459019,524390,524326,589997,524294,524422,524358,590061,459015,524382,524318,589981,459031,524414,524350,590045,459023,524398,524334,590013,524302,524430,524366,590077,459008,524369,524305,524569,459024,524401,524337,590019,459016,524385,524321,589987,524289,524417,524353,590051,459012,524377,524313,589971,459028,524409,524345,590035,459020,524393,524329,590003,524297,524425,524361,590067,459010,524373,524309,524573,459026,524405,524341,590027,459018,524389,524325,589995,524293,524421,524357,590059,459014,524381,524317,589979,459030,524413,524349,590043,459022,524397,524333,590011,524301,524429,524365,590075,459009,524371,524307,524571,459025,524403,524339,590023,459017,524387,524323,589991,524291,524419,524355,590055,459013,524379,524315,589975,459029,524411,524347,590039,459021,524395,524331,590007,524299,524427,524363,590071,459011,524375,524311,524575,459027,524407,524343,590031,459019,524391,524327,589999,524295,524423,524359,590063,459015,524383,524319,589983,459031,524415,524351,590047,459023,524399,524335,590015,524303,524431,524367,590079]),9],l=[new Int32Array([327680,327696,327688,327704,327684,327700,327692,327708,327682,327698,327690,327706,327686,327702,327694,0,327681,327697,327689,327705,327685,327701,327693,327709,327683,327699,327691,327707,327687,327703,327695,0]),5];class FlateStream extends r.DecodeStream{constructor(e,t){super(t);this.str=e;this.dict=e.dict;const a=e.getByte(),r=e.getByte();if(-1===a||-1===r)throw new n.FormatError(`Invalid header in flate stream: ${a}, ${r}`);if(8!=(15&a))throw new n.FormatError(`Unknown compression method in flate stream: ${a}, ${r}`);if(((a<<8)+r)%31!=0)throw new n.FormatError(`Bad FCHECK in flate stream: ${a}, ${r}`);if(32&r)throw new n.FormatError(`FDICT bit set in flate stream: ${a}, ${r}`);this.codeSize=0;this.codeBuf=0}getBits(e){const t=this.str;let a,r=this.codeSize,i=this.codeBuf;for(;r>e;this.codeSize=r-=e;return a}getCode(e){const t=this.str,a=e[0],r=e[1];let i,s=this.codeSize,o=this.codeBuf;for(;s>16,h=65535&c;if(l<1||s>l;this.codeSize=s-l;return h}generateHuffmanTable(e){const t=e.length;let a,r=0;for(a=0;ar&&(r=e[a]);const n=1<>=1}for(a=e;a>=1;if(0===u){let t;if(-1===(t=a.getByte()))throw new n.FormatError("Bad block header in flate stream");let r=t;if(-1===(t=a.getByte()))throw new n.FormatError("Bad block header in flate stream");r|=t<<8;if(-1===(t=a.getByte()))throw new n.FormatError("Bad block header in flate stream");let i=t;if(-1===(t=a.getByte()))throw new n.FormatError("Bad block header in flate stream");i|=t<<8;if(i!==(65535&~r)&&(0!==r||0!==i))throw new n.FormatError("Bad uncompressed block length in flate stream");this.codeBuf=0;this.codeSize=0;const s=this.bufferLength,o=s+r;e=this.ensureBuffer(o);this.bufferLength=o;if(0===r)-1===a.peekByte()&&(this.eof=!0);else{const t=a.getBytes(r);e.set(t,s);t.length0;)u[o++]=g}r=this.generateHuffmanTable(u.subarray(0,e));h=this.generateHuffmanTable(u.subarray(e,l))}}e=this.buffer;let d=e?e.length:0,f=this.bufferLength;for(;;){let a=this.getCode(r);if(a<256){if(f+1>=d){e=this.ensureBuffer(f+1);d=e.length}e[f++]=a;continue}if(256===a){this.bufferLength=f;return}a-=257;a=s[a];let n=a>>16;n>0&&(n=this.getBits(n));t=(65535&a)+n;a=this.getCode(h);a=o[a];n=a>>16;n>0&&(n=this.getBits(n));const i=(65535&a)+n;if(f+t>=d){e=this.ensureBuffer(f+t);d=e.length}for(let a=0;a{Object.defineProperty(t,"__esModule",{value:!0});t.Jbig2Stream=void 0;var r=a(9),n=a(29),i=a(5),s=a(35),o=a(2);class Jbig2Stream extends n.DecodeStream{constructor(e,t,a){super(t);this.stream=e;this.dict=e.dict;this.maybeLength=t;this.params=a}get bytes(){return(0,o.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength))}ensureBuffer(e){}readBlock(){if(this.eof)return;const e=new s.Jbig2Image,t=[];if(this.params instanceof i.Dict){const e=this.params.get("JBIG2Globals");if(e instanceof r.BaseStream){const a=e.getBytes();t.push({data:a,start:0,end:a.length})}}t.push({data:this.bytes,start:0,end:this.bytes.length});const a=e.parseChunks(t),n=a.length;for(let e=0;e{Object.defineProperty(t,"__esModule",{value:!0});t.Jbig2Image=void 0;var r=a(2),n=a(8),i=a(36),s=a(32);class Jbig2Error extends r.BaseException{constructor(e){super(`JBIG2 error: ${e}`,"Jbig2Error")}}class ContextCache{getContexts(e){return e in this?this[e]:this[e]=new Int8Array(65536)}}class DecodingContext{constructor(e,t,a){this.data=e;this.start=t;this.end=a}get decoder(){const e=new i.ArithmeticDecoder(this.data,this.start,this.end);return(0,r.shadow)(this,"decoder",e)}get contextCache(){const e=new ContextCache;return(0,r.shadow)(this,"contextCache",e)}}function decodeInteger(e,t,a){const r=e.getContexts(t);let n=1;function readBits(e){let t=0;for(let i=0;i>>0}const i=readBits(1),s=readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(32)+4436:readBits(12)+340:readBits(8)+84:readBits(6)+20:readBits(4)+4:readBits(2);return 0===i?s:s>0?-s:null}function decodeIAID(e,t,a){const r=e.getContexts("IAID");let n=1;for(let e=0;e=O&&j=T){q=q<<1&y;for(b=0;b=0&&$=0){U=N[_][$];U&&(q|=U<=e?l<<=1:l=l<<1|C[o][c]}for(p=0;p=x||c<0||c>=S?l<<=1:l=l<<1|r[o][c]}const h=v.readBit(F,l);t[s]=h}}return C}function decodeTextRegion(e,t,a,r,n,i,s,o,c,l,h,u,d,f,g,p,m,b,y){if(e&&t)throw new Jbig2Error("refinement with Huffman is not supported");const w=[];let S,x;for(S=0;S1&&(n=e?y.readBits(b):decodeInteger(C,"IAIT",k));const i=s*v+n,F=e?f.symbolIDTable.decode(y):decodeIAID(C,k,c),O=t&&(e?y.readBit():decodeInteger(C,"IARI",k));let T=o[F],M=T[0].length,E=T.length;if(O){const e=decodeInteger(C,"IARDW",k),t=decodeInteger(C,"IARDH",k),a=decodeInteger(C,"IARDX",k),r=decodeInteger(C,"IARDY",k);M+=e;E+=t;T=decodeRefinement(M,E,g,T,(e>>1)+a,(t>>1)+r,!1,p,m)}const D=i-(1&u?0:E-1),N=r-(2&u?M-1:0);let L,R,j;if(l){for(L=0;L>5&7;const h=[31&c];let u=t+6;if(7===c){l=536870911&(0,n.readUint32)(e,u-1);u+=3;let t=l+7>>3;h[0]=e[u++];for(;--t>0;)h.push(e[u++])}else if(5===c||6===c)throw new Jbig2Error("invalid referred-to flags");a.retainBits=h;let f=4;a.number<=256?f=1:a.number<=65536&&(f=2);const g=[];let p,m;for(p=0;p>>24&255;i[3]=t.height>>16&255;i[4]=t.height>>8&255;i[5]=255&t.height;for(p=u,m=e.length;p>2&3;e.huffmanDWSelector=t>>4&3;e.bitmapSizeSelector=t>>6&1;e.aggregationInstancesSelector=t>>7&1;e.bitmapCodingContextUsed=!!(256&t);e.bitmapCodingContextRetained=!!(512&t);e.template=t>>10&3;e.refinementTemplate=t>>12&1;h+=2;if(!e.huffman){l=0===e.template?4:1;o=[];for(c=0;c>2&3;u.stripSize=1<>4&3;u.transposed=!!(64&f);u.combinationOperator=f>>7&3;u.defaultPixelValue=f>>9&1;u.dsOffset=f<<17>>27;u.refinementTemplate=f>>15&1;if(u.huffman){const e=(0,n.readUint16)(r,h);h+=2;u.huffmanFS=3&e;u.huffmanDS=e>>2&3;u.huffmanDT=e>>4&3;u.huffmanRefinementDW=e>>6&3;u.huffmanRefinementDH=e>>8&3;u.huffmanRefinementDX=e>>10&3;u.huffmanRefinementDY=e>>12&3;u.huffmanRefinementSizeSelector=!!(16384&e)}if(u.refinement&&!u.refinementTemplate){o=[];for(c=0;c<2;c++){o.push({x:(0,n.readInt8)(r,h),y:(0,n.readInt8)(r,h+1)});h+=2}u.refinementAt=o}u.numberOfSymbolInstances=(0,n.readUint32)(r,h);h+=4;s=[u,a.referredTo,r,h,i];break;case 16:const g={},p=r[h++];g.mmr=!!(1&p);g.template=p>>1&3;g.patternWidth=r[h++];g.patternHeight=r[h++];g.maxPatternIndex=(0,n.readUint32)(r,h);h+=4;s=[g,a.number,r,h,i];break;case 22:case 23:const m={};m.info=readRegionSegmentInformation(r,h);h+=d;const b=r[h++];m.mmr=!!(1&b);m.template=b>>1&3;m.enableSkip=!!(8&b);m.combinationOperator=b>>4&7;m.defaultPixelValue=b>>7&1;m.gridWidth=(0,n.readUint32)(r,h);h+=4;m.gridHeight=(0,n.readUint32)(r,h);h+=4;m.gridOffsetX=4294967295&(0,n.readUint32)(r,h);h+=4;m.gridOffsetY=4294967295&(0,n.readUint32)(r,h);h+=4;m.gridVectorX=(0,n.readUint16)(r,h);h+=2;m.gridVectorY=(0,n.readUint16)(r,h);h+=2;s=[m,a.referredTo,r,h,i];break;case 38:case 39:const y={};y.info=readRegionSegmentInformation(r,h);h+=d;const w=r[h++];y.mmr=!!(1&w);y.template=w>>1&3;y.prediction=!!(8&w);if(!y.mmr){l=0===y.template?4:1;o=[];for(c=0;c>2&1;S.combinationOperator=x>>3&3;S.requiresBuffer=!!(32&x);S.combinationOperatorOverride=!!(64&x);s=[S];break;case 49:case 50:case 51:case 62:break;case 53:s=[a.number,r,h,i];break;default:throw new Jbig2Error(`segment type ${a.typeName}(${a.type}) is not implemented`)}const u="on"+a.typeName;u in t&&t[u].apply(t,s)}function processSegments(e,t){for(let a=0,r=e.length;a>3,a=new Uint8ClampedArray(t*e.height);e.defaultPixelValue&&a.fill(255);this.buffer=a}drawBitmap(e,t){const a=this.currentPageInfo,r=e.width,n=e.height,i=a.width+7>>3,s=a.combinationOperatorOverride?e.combinationOperator:a.combinationOperator,o=this.buffer,c=128>>(7&e.x);let l,h,u,d,f=e.y*i+(e.x>>3);switch(s){case 0:for(l=0;l>=1;if(!u){u=128;d++}}f+=i}break;case 2:for(l=0;l>=1;if(!u){u=128;d++}}f+=i}break;default:throw new Jbig2Error(`operator ${s} is not supported`)}}onImmediateGenericRegion(e,t,a,r){const n=e.info,i=new DecodingContext(t,a,r),s=decodeBitmap(e.mmr,n.width,n.height,e.template,e.prediction,null,e.at,i);this.drawBitmap(n,s)}onImmediateLosslessGenericRegion(){this.onImmediateGenericRegion.apply(this,arguments)}onSymbolDictionary(e,t,a,r,i,s){let o,c;if(e.huffman){o=function getSymbolDictionaryHuffmanTables(e,t,a){let r,n,i,s,o=0;switch(e.huffmanDHSelector){case 0:case 1:r=getStandardTable(e.huffmanDHSelector+4);break;case 3:r=getCustomHuffmanTable(o,t,a);o++;break;default:throw new Jbig2Error("invalid Huffman DH selector")}switch(e.huffmanDWSelector){case 0:case 1:n=getStandardTable(e.huffmanDWSelector+2);break;case 3:n=getCustomHuffmanTable(o,t,a);o++;break;default:throw new Jbig2Error("invalid Huffman DW selector")}if(e.bitmapSizeSelector){i=getCustomHuffmanTable(o,t,a);o++}else i=getStandardTable(1);s=e.aggregationInstancesSelector?getCustomHuffmanTable(o,t,a):getStandardTable(1);return{tableDeltaHeight:r,tableDeltaWidth:n,tableBitmapSize:i,tableAggregateInstances:s}}(e,a,this.customTables);c=new Reader(r,i,s)}let l=this.symbols;l||(this.symbols=l={});let h=[];for(let e=0,t=a.length;e1)y=decodeTextRegion(e,t,r,g,0,n,1,a.concat(f),p,0,0,1,0,s,l,h,u,0,d);else{const e=decodeIAID(b,m,p),t=decodeInteger(b,"IARDX",m),n=decodeInteger(b,"IARDY",m);y=decodeRefinement(r,g,l,e=32){let a,r,s;switch(t){case 32:if(0===e)throw new Jbig2Error("no previous value in symbol ID table");r=n.readBits(2)+3;a=i[e-1].prefixLength;break;case 33:r=n.readBits(3)+3;a=0;break;case 34:r=n.readBits(7)+11;a=0;break;default:throw new Jbig2Error("invalid code length in symbol ID table")}for(s=0;s=0;b--){M=e?decodeMMRBitmap(T,l,h,!0):decodeBitmap(!1,l,h,a,!1,null,F,p);O[b]=M}for(E=0;E=0;y--){N^=O[y][E][D];L|=N<>8;_=d+E*f-D*g>>8;if(j>=0&&j+k<=r&&_>=0&&_+C<=i)for(b=0;b=i)){U=m[t];$=R[b];for(y=0;y=0&&e>1&7),l=1+(r>>4&7),h=[];let u,d,f=i;do{u=o.readBits(c);d=o.readBits(l);h.push(new HuffmanLine([f,u,d,0]));f+=1<>t&1;if(t<=0)this.children[a]=new HuffmanTreeNode(e);else{let r=this.children[a];r||(this.children[a]=r=new HuffmanTreeNode(null));r.buildTree(e,t-1)}}decodeNode(e){if(this.isLeaf){if(this.isOOB)return null;const t=e.readBits(this.rangeLength);return this.rangeLow+(this.isLowerRange?-t:t)}const t=this.children[e.readBit()];if(!t)throw new Jbig2Error("invalid Huffman data");return t.decodeNode(e)}}class HuffmanTable{constructor(e,t){t||this.assignPrefixCodes(e);this.rootNode=new HuffmanTreeNode(null);for(let t=0,a=e.length;t0&&this.rootNode.buildTree(a,a.prefixLength-1)}}decode(e){return this.rootNode.decodeNode(e)}assignPrefixCodes(e){const t=e.length;let a=0;for(let r=0;r=this.end)throw new Jbig2Error("end of data while reading bit");this.currentByte=this.data[this.position++];this.shift=7}const e=this.currentByte>>this.shift&1;this.shift--;return e}readBits(e){let t,a=0;for(t=e-1;t>=0;t--)a|=this.readBit()<=this.end?-1:this.data[this.position++]}}function getCustomHuffmanTable(e,t,a){let r=0;for(let n=0,i=t.length;n>a&1;a--}}if(r&&!l){const e=5;for(let t=0;t>=1}}return{imgData:u,width:c,height:l}}(e);this.width=a;this.height=r;return t}}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ArithmeticDecoder=void 0;const a=[{qe:22017,nmps:1,nlps:1,switchFlag:1},{qe:13313,nmps:2,nlps:6,switchFlag:0},{qe:6145,nmps:3,nlps:9,switchFlag:0},{qe:2753,nmps:4,nlps:12,switchFlag:0},{qe:1313,nmps:5,nlps:29,switchFlag:0},{qe:545,nmps:38,nlps:33,switchFlag:0},{qe:22017,nmps:7,nlps:6,switchFlag:1},{qe:21505,nmps:8,nlps:14,switchFlag:0},{qe:18433,nmps:9,nlps:14,switchFlag:0},{qe:14337,nmps:10,nlps:14,switchFlag:0},{qe:12289,nmps:11,nlps:17,switchFlag:0},{qe:9217,nmps:12,nlps:18,switchFlag:0},{qe:7169,nmps:13,nlps:20,switchFlag:0},{qe:5633,nmps:29,nlps:21,switchFlag:0},{qe:22017,nmps:15,nlps:14,switchFlag:1},{qe:21505,nmps:16,nlps:14,switchFlag:0},{qe:20737,nmps:17,nlps:15,switchFlag:0},{qe:18433,nmps:18,nlps:16,switchFlag:0},{qe:14337,nmps:19,nlps:17,switchFlag:0},{qe:13313,nmps:20,nlps:18,switchFlag:0},{qe:12289,nmps:21,nlps:19,switchFlag:0},{qe:10241,nmps:22,nlps:19,switchFlag:0},{qe:9217,nmps:23,nlps:20,switchFlag:0},{qe:8705,nmps:24,nlps:21,switchFlag:0},{qe:7169,nmps:25,nlps:22,switchFlag:0},{qe:6145,nmps:26,nlps:23,switchFlag:0},{qe:5633,nmps:27,nlps:24,switchFlag:0},{qe:5121,nmps:28,nlps:25,switchFlag:0},{qe:4609,nmps:29,nlps:26,switchFlag:0},{qe:4353,nmps:30,nlps:27,switchFlag:0},{qe:2753,nmps:31,nlps:28,switchFlag:0},{qe:2497,nmps:32,nlps:29,switchFlag:0},{qe:2209,nmps:33,nlps:30,switchFlag:0},{qe:1313,nmps:34,nlps:31,switchFlag:0},{qe:1089,nmps:35,nlps:32,switchFlag:0},{qe:673,nmps:36,nlps:33,switchFlag:0},{qe:545,nmps:37,nlps:34,switchFlag:0},{qe:321,nmps:38,nlps:35,switchFlag:0},{qe:273,nmps:39,nlps:36,switchFlag:0},{qe:133,nmps:40,nlps:37,switchFlag:0},{qe:73,nmps:41,nlps:38,switchFlag:0},{qe:37,nmps:42,nlps:39,switchFlag:0},{qe:21,nmps:43,nlps:40,switchFlag:0},{qe:9,nmps:44,nlps:41,switchFlag:0},{qe:5,nmps:45,nlps:42,switchFlag:0},{qe:1,nmps:45,nlps:43,switchFlag:0},{qe:22017,nmps:46,nlps:46,switchFlag:0}];t.ArithmeticDecoder=class ArithmeticDecoder{constructor(e,t,a){this.data=e;this.bp=t;this.dataEnd=a;this.chigh=e[t];this.clow=0;this.byteIn();this.chigh=this.chigh<<7&65535|this.clow>>9&127;this.clow=this.clow<<7&65535;this.ct-=7;this.a=32768}byteIn(){const e=this.data;let t=this.bp;if(255===e[t])if(e[t+1]>143){this.clow+=65280;this.ct=8}else{t++;this.clow+=e[t]<<9;this.ct=7;this.bp=t}else{t++;this.clow+=t65535){this.chigh+=this.clow>>16;this.clow&=65535}}readBit(e,t){let r=e[t]>>1,n=1&e[t];const i=a[r],s=i.qe;let o,c=this.a-s;if(this.chigh>15&1;this.clow=this.clow<<1&65535;this.ct--}while(0==(32768&c));this.a=c;e[t]=r<<1|n;return o}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.JpegStream=void 0;var r=a(29),n=a(5),i=a(38),s=a(2);class JpegStream extends r.DecodeStream{constructor(e,t,a){let r;for(;-1!==(r=e.getByte());)if(255===r){e.skip(-1);break}super(t);this.stream=e;this.dict=e.dict;this.maybeLength=t;this.params=a}get bytes(){return(0,s.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength))}ensureBuffer(e){}readBlock(){if(this.eof)return;const e={decodeTransform:void 0,colorTransform:void 0},t=this.dict.getArray("D","Decode");if(this.forceRGB&&Array.isArray(t)){const a=this.dict.get("BPC","BitsPerComponent")||8,r=t.length,n=new Int32Array(r);let i=!1;const s=(1<{Object.defineProperty(t,"__esModule",{value:!0});t.JpegImage=void 0;var r=a(2),n=a(8);class JpegError extends r.BaseException{constructor(e){super(`JPEG error: ${e}`,"JpegError")}}class DNLMarkerError extends r.BaseException{constructor(e,t){super(e,"DNLMarkerError");this.scanLines=t}}class EOIMarkerError extends r.BaseException{constructor(e){super(e,"EOIMarkerError")}}const i=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),s=4017,o=799,c=3406,l=2276,h=1567,u=3784,d=5793,f=2896;function buildHuffmanTable(e,t){let a,r,n=0,i=16;for(;i>0&&!e[i-1];)i--;const s=[{children:[],index:0}];let o,c=s[0];for(a=0;a0;)c=s.pop();c.index++;s.push(c);for(;s.length<=a;){s.push(o={children:[],index:0});c.children[c.index]=o.children;c=o}n++}if(a+10){b--;return m>>b&1}m=e[t++];if(255===m){const r=e[t++];if(r){if(220===r&&d){t+=2;const r=(0,n.readUint16)(e,t);t+=2;if(r>0&&r!==a.scanLines)throw new DNLMarkerError("Found DNL marker (0xFFDC) while parsing scan data",r)}else if(217===r){if(d){const e=x*(8===a.precision?8:0);if(e>0&&Math.round(a.scanLines/e)>=10)throw new DNLMarkerError("Found EOI marker (0xFFD9) while parsing scan data, possibly caused by incorrect `scanLines` parameter",e)}throw new EOIMarkerError("Found EOI marker (0xFFD9) while parsing scan data")}throw new JpegError(`unexpected marker ${(m<<8|r).toString(16)}`)}}b=7;return m>>>7}function decodeHuffman(e){let t=e;for(;;){t=t[readBit()];switch(typeof t){case"number":return t;case"object":continue}throw new JpegError("invalid huffman sequence")}}function receive(e){let t=0;for(;e>0;){t=t<<1|readBit();e--}return t}function receiveAndExtend(e){if(1===e)return 1===readBit()?1:-1;const t=receive(e);return t>=1<0){y--;return}let a=c;const r=l;for(;a<=r;){const r=decodeHuffman(e.huffmanTableAC),n=15&r,s=r>>4;if(0===n){if(s<15){y=receive(s)+(1<>4;if(0===n)if(o<15){y=receive(o)+(1<>4;if(0===r){if(s<15)break;n+=16;continue}n+=s;const o=i[n];e.blockData[t+o]=receiveAndExtend(r);n++}};let E,D,N,L,R=0;D=1===k?s[0].blocksPerLine*s[0].blocksPerColumn:f*a.mcusPerColumn;for(;R<=D;){const a=o?Math.min(D-R,o):D;if(a>0){for(v=0;v0?"unexpected":"excessive";(0,r.warn)(`decodeScan - ${e} MCU data, current marker is: ${E.invalid}`);t=E.offset}if(!(E.marker>=65488&&E.marker<=65495))break;t+=2}return t-p}function quantizeAndInverse(e,t,a){const r=e.quantizationTable,n=e.blockData;let i,g,p,m,b,y,w,S,x,k,C,v,F,O,T,M,E;if(!r)throw new JpegError("missing required Quantization Table.");for(let e=0;e<64;e+=8){x=n[t+e];k=n[t+e+1];C=n[t+e+2];v=n[t+e+3];F=n[t+e+4];O=n[t+e+5];T=n[t+e+6];M=n[t+e+7];x*=r[e];if(0!=(k|C|v|F|O|T|M)){k*=r[e+1];C*=r[e+2];v*=r[e+3];F*=r[e+4];O*=r[e+5];T*=r[e+6];M*=r[e+7];i=d*x+128>>8;g=d*F+128>>8;p=C;m=T;b=f*(k-M)+128>>8;S=f*(k+M)+128>>8;y=v<<4;w=O<<4;i=i+g+1>>1;g=i-g;E=p*u+m*h+128>>8;p=p*h-m*u+128>>8;m=E;b=b+w+1>>1;w=b-w;S=S+y+1>>1;y=S-y;i=i+m+1>>1;m=i-m;g=g+p+1>>1;p=g-p;E=b*l+S*c+2048>>12;b=b*c-S*l+2048>>12;S=E;E=y*o+w*s+2048>>12;y=y*s-w*o+2048>>12;w=E;a[e]=i+S;a[e+7]=i-S;a[e+1]=g+w;a[e+6]=g-w;a[e+2]=p+y;a[e+5]=p-y;a[e+3]=m+b;a[e+4]=m-b}else{E=d*x+512>>10;a[e]=E;a[e+1]=E;a[e+2]=E;a[e+3]=E;a[e+4]=E;a[e+5]=E;a[e+6]=E;a[e+7]=E}}for(let e=0;e<8;++e){x=a[e];k=a[e+8];C=a[e+16];v=a[e+24];F=a[e+32];O=a[e+40];T=a[e+48];M=a[e+56];if(0!=(k|C|v|F|O|T|M)){i=d*x+2048>>12;g=d*F+2048>>12;p=C;m=T;b=f*(k-M)+2048>>12;S=f*(k+M)+2048>>12;y=v;w=O;i=4112+(i+g+1>>1);g=i-g;E=p*u+m*h+2048>>12;p=p*h-m*u+2048>>12;m=E;b=b+w+1>>1;w=b-w;S=S+y+1>>1;y=S-y;i=i+m+1>>1;m=i-m;g=g+p+1>>1;p=g-p;E=b*l+S*c+2048>>12;b=b*c-S*l+2048>>12;S=E;E=y*o+w*s+2048>>12;y=y*s-w*o+2048>>12;w=E;x=i+S;M=i-S;k=g+w;T=g-w;C=p+y;O=p-y;v=m+b;F=m-b;x<16?x=0:x>=4080?x=255:x>>=4;k<16?k=0:k>=4080?k=255:k>>=4;C<16?C=0:C>=4080?C=255:C>>=4;v<16?v=0:v>=4080?v=255:v>>=4;F<16?F=0:F>=4080?F=255:F>>=4;O<16?O=0:O>=4080?O=255:O>>=4;T<16?T=0:T>=4080?T=255:T>>=4;M<16?M=0:M>=4080?M=255:M>>=4;n[t+e]=x;n[t+e+8]=k;n[t+e+16]=C;n[t+e+24]=v;n[t+e+32]=F;n[t+e+40]=O;n[t+e+48]=T;n[t+e+56]=M}else{E=d*x+8192>>14;E=E<-2040?0:E>=2024?255:E+2056>>4;n[t+e]=E;n[t+e+8]=E;n[t+e+16]=E;n[t+e+24]=E;n[t+e+32]=E;n[t+e+40]=E;n[t+e+48]=E;n[t+e+56]=E}}}function buildComponentData(e,t){const a=t.blocksPerLine,r=t.blocksPerColumn,n=new Int16Array(64);for(let e=0;e=r)return null;const s=(0,n.readUint16)(e,t);if(s>=65472&&s<=65534)return{invalid:null,marker:s,offset:t};let o=(0,n.readUint16)(e,i);for(;!(o>=65472&&o<=65534);){if(++i>=r)return null;o=(0,n.readUint16)(e,i)}return{invalid:s.toString(16),marker:o,offset:i}}t.JpegImage=class JpegImage{constructor({decodeTransform:e=null,colorTransform:t=-1}={}){this._decodeTransform=e;this._colorTransform=t}parse(e,{dnlScanLines:t=null}={}){function readDataBlock(){const t=(0,n.readUint16)(e,o);o+=2;let a=o+t-2;const i=findNextFileMarker(e,a,o);if(i&&i.invalid){(0,r.warn)("readDataBlock - incorrect length, current marker is: "+i.invalid);a=i.offset}const s=e.subarray(o,a);o+=s.length;return s}function prepareComponents(e){const t=Math.ceil(e.samplesPerLine/8/e.maxH),a=Math.ceil(e.scanLines/8/e.maxV);for(let r=0,n=e.components.length;r>4==0)for(m=0;m<64;m++){x=i[m];a[x]=e[o++]}else{if(t>>4!=1)throw new JpegError("DQT - invalid table spec");for(m=0;m<64;m++){x=i[m];a[x]=(0,n.readUint16)(e,o);o+=2}}u[15&t]=a}break;case 65472:case 65473:case 65474:if(a)throw new JpegError("Only single frame JPEGs supported");o+=2;a={};a.extended=65473===g;a.progressive=65474===g;a.precision=e[o++];const k=(0,n.readUint16)(e,o);o+=2;a.scanLines=t||k;a.samplesPerLine=(0,n.readUint16)(e,o);o+=2;a.components=[];a.componentIds={};const C=e[o++];let v=0,F=0;for(p=0;p>4,n=15&e[o+1];v>4==0?f:d)[15&t]=buildHuffmanTable(a,n)}break;case 65501:o+=2;s=(0,n.readUint16)(e,o);o+=2;break;case 65498:const T=1==++h&&!t;o+=2;const M=e[o++],E=[];for(p=0;p>4];n.huffmanTableAC=d[15&i];E.push(n)}const D=e[o++],N=e[o++],L=e[o++];try{const t=decodeScan(e,o,a,E,s,D,N,L>>4,15&L,T);o+=t}catch(t){if(t instanceof DNLMarkerError){(0,r.warn)(`${t.message} -- attempting to re-parse the JPEG image.`);return this.parse(e,{dnlScanLines:t.scanLines})}if(t instanceof EOIMarkerError){(0,r.warn)(`${t.message} -- ignoring the rest of the image data.`);break e}throw t}break;case 65500:o+=4;break;case 65535:255!==e[o]&&o--;break;default:const R=findNextFileMarker(e,o-2,o-3);if(R&&R.invalid){(0,r.warn)("JpegImage.parse - unexpected data, current marker is: "+R.invalid);o=R.offset;break}if(!R||o>=e.length-1){(0,r.warn)("JpegImage.parse - reached the end of the image data without finding an EOI marker (0xFFD9).");break e}throw new JpegError("JpegImage.parse - unknown marker: "+g.toString(16))}g=(0,n.readUint16)(e,o);o+=2}this.width=a.samplesPerLine;this.height=a.scanLines;this.jfif=c;this.adobe=l;this.components=[];for(let e=0,t=a.components.length;e>8)+C[f+1];return w}get _isColorConversionNeeded(){return this.adobe?!!this.adobe.transformCode:3===this.numComponents?0!==this._colorTransform&&(82!==this.components[0].index||71!==this.components[1].index||66!==this.components[2].index):1===this._colorTransform}_convertYccToRgb(e){let t,a,r;for(let n=0,i=e.length;n4)throw new JpegError("Unsupported color mode");const n=this._getLinearizedBlockData(e,t,r);if(1===this.numComponents&&a){const e=n.length,t=new Uint8ClampedArray(3*e);let a=0;for(let r=0;r{Object.defineProperty(t,"__esModule",{value:!0});t.JpxStream=void 0;var r=a(29),n=a(40),i=a(2);class JpxStream extends r.DecodeStream{constructor(e,t,a){super(t);this.stream=e;this.dict=e.dict;this.maybeLength=t;this.params=a}get bytes(){return(0,i.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength))}ensureBuffer(e){}readBlock(){if(this.eof)return;const e=new n.JpxImage;e.parse(this.bytes);const t=e.width,a=e.height,r=e.componentsCount,i=e.tiles.length;if(1===i)this.buffer=e.tiles[0].items;else{const n=new Uint8ClampedArray(t*a*r);for(let a=0;a{Object.defineProperty(t,"__esModule",{value:!0});t.JpxImage=void 0;var r=a(2),n=a(8),i=a(36);class JpxError extends r.BaseException{constructor(e){super(`JPX error: ${e}`,"JpxError")}}const s={LL:0,LH:1,HL:1,HH:2};t.JpxImage=class JpxImage{constructor(){this.failOnCorruptedImage=!1}parse(e){if(65359===(0,n.readUint16)(e,0)){this.parseCodestream(e,0,e.length);return}const t=e.length;let a=0;for(;a>24&255,o>>16&255,o>>8&255,255&o);(0,r.warn)(`Unsupported header type ${o} (${i}).`)}l&&(a+=c)}}parseImageProperties(e){let t=e.getByte();for(;t>=0;){const a=t;t=e.getByte();if(65361===(a<<8|t)){e.skip(4);const t=e.getInt32()>>>0,a=e.getInt32()>>>0,r=e.getInt32()>>>0,n=e.getInt32()>>>0;e.skip(16);const i=e.getUint16();this.width=t-r;this.height=a-n;this.componentsCount=i;this.bitsPerComponent=8;return}}throw new JpxError("No size marker found in JPX stream")}parseCodestream(e,t,a){const i={};let s=!1;try{let o=t;for(;o+1>5;l=[];for(;a>3;t.mu=0}else{t.epsilon=e[a]>>3;t.mu=(7&e[a])<<8|e[a+1];a+=2}l.push(t)}b.SPqcds=l;if(i.mainHeader)i.QCD=b;else{i.currentTile.QCD=b;i.currentTile.QCC=[]}break;case 65373:f=(0,n.readUint16)(e,o);const y={};a=o+2;let w;if(i.SIZ.Csiz<257)w=e[a++];else{w=(0,n.readUint16)(e,a);a+=2}c=e[a++];switch(31&c){case 0:h=8;u=!0;break;case 1:h=16;u=!1;break;case 2:h=16;u=!0;break;default:throw new Error("Invalid SQcd value "+c)}y.noQuantization=8===h;y.scalarExpounded=u;y.guardBits=c>>5;l=[];for(;a>3;t.mu=0}else{t.epsilon=e[a]>>3;t.mu=(7&e[a])<<8|e[a+1];a+=2}l.push(t)}y.SPqcds=l;i.mainHeader?i.QCC[w]=y:i.currentTile.QCC[w]=y;break;case 65362:f=(0,n.readUint16)(e,o);const S={};a=o+2;const x=e[a++];S.entropyCoderWithCustomPrecincts=!!(1&x);S.sopMarkerUsed=!!(2&x);S.ephMarkerUsed=!!(4&x);S.progressionOrder=e[a++];S.layersCount=(0,n.readUint16)(e,a);a+=2;S.multipleComponentTransform=e[a++];S.decompositionLevelsCount=e[a++];S.xcb=2+(15&e[a++]);S.ycb=2+(15&e[a++]);const k=e[a++];S.selectiveArithmeticCodingBypass=!!(1&k);S.resetContextProbabilities=!!(2&k);S.terminationOnEachCodingPass=!!(4&k);S.verticallyStripe=!!(8&k);S.predictableTermination=!!(16&k);S.segmentationSymbolUsed=!!(32&k);S.reversibleTransformation=e[a++];if(S.entropyCoderWithCustomPrecincts){const t=[];for(;a>4})}S.precinctsSizes=t}const C=[];S.selectiveArithmeticCodingBypass&&C.push("selectiveArithmeticCodingBypass");S.terminationOnEachCodingPass&&C.push("terminationOnEachCodingPass");S.verticallyStripe&&C.push("verticallyStripe");S.predictableTermination&&C.push("predictableTermination");if(C.length>0){s=!0;(0,r.warn)(`JPX: Unsupported COD options (${C.join(", ")}).`)}if(i.mainHeader)i.COD=S;else{i.currentTile.COD=S;i.currentTile.COC=[]}break;case 65424:f=(0,n.readUint16)(e,o);d={};d.index=(0,n.readUint16)(e,o+2);d.length=(0,n.readUint32)(e,o+4);d.dataEnd=d.length+o-2;d.partIndex=e[o+8];d.partsCount=e[o+9];i.mainHeader=!1;if(0===d.partIndex){d.COD=i.COD;d.COC=i.COC.slice(0);d.QCD=i.QCD;d.QCC=i.QCC.slice(0)}i.currentTile=d;break;case 65427:d=i.currentTile;if(0===d.partIndex){initializeTile(i,d.index);buildPackets(i)}f=d.dataEnd-o;parseTilePackets(i,e,o,f);break;case 65363:(0,r.warn)("JPX: Codestream code 0xFF53 (COC) is not implemented.");case 65365:case 65367:case 65368:case 65380:f=(0,n.readUint16)(e,o);break;default:throw new Error("Unknown codestream code: "+t.toString(16))}o+=f}}catch(e){if(s||this.failOnCorruptedImage)throw new JpxError(e.message);(0,r.warn)(`JPX: Trying to recover from: "${e.message}".`)}this.tiles=function transformComponents(e){const t=e.SIZ,a=e.components,r=t.Csiz,n=[];for(let t=0,i=e.tiles.length;t>2);c[b++]=e+m>>h;c[b++]=e>>h;c[b++]=e+p>>h}else for(d=0;d>h;c[b++]=g-.34413*p-.71414*m>>h;c[b++]=g+1.772*p>>h}if(e)for(d=0,b=3;d>h}else for(let e=0;e>h;b+=r}}n.push(l)}return n}(i);this.width=i.SIZ.Xsiz-i.SIZ.XOsiz;this.height=i.SIZ.Ysiz-i.SIZ.YOsiz;this.componentsCount=i.SIZ.Csiz}};function calculateComponentDimensions(e,t){e.x0=Math.ceil(t.XOsiz/e.XRsiz);e.x1=Math.ceil(t.Xsiz/e.XRsiz);e.y0=Math.ceil(t.YOsiz/e.YRsiz);e.y1=Math.ceil(t.Ysiz/e.YRsiz);e.width=e.x1-e.x0;e.height=e.y1-e.y0}function calculateTileGrids(e,t){const a=e.SIZ,r=[];let n;const i=Math.ceil((a.Xsiz-a.XTOsiz)/a.XTsiz),s=Math.ceil((a.Ysiz-a.YTOsiz)/a.YTsiz);for(let e=0;e0?Math.min(r.xcb,n.PPx-1):Math.min(r.xcb,n.PPx);n.ycb_=a>0?Math.min(r.ycb,n.PPy-1):Math.min(r.ycb,n.PPy);return n}function buildPrecincts(e,t,a){const r=1<t.trx0?Math.ceil(t.trx1/r)-Math.floor(t.trx0/r):0,l=t.try1>t.try0?Math.ceil(t.try1/n)-Math.floor(t.try0/n):0,h=c*l;t.precinctParameters={precinctWidth:r,precinctHeight:n,numprecinctswide:c,numprecinctshigh:l,numprecincts:h,precinctWidthInSubband:s,precinctHeightInSubband:o}}function buildCodeblocks(e,t,a){const r=a.xcb_,n=a.ycb_,i=1<>r,c=t.tby0>>n,l=t.tbx1+i-1>>r,h=t.tby1+s-1>>n,u=t.resolution.precinctParameters,d=[],f=[];let g,p,m,b;for(p=c;pe.cbxMax&&(e.cbxMax=g);pe.cbyMax&&(e.cbyMax=p)}else f[b]=e={cbxMin:g,cbyMin:p,cbxMax:g,cbyMax:p};m.precinct=e}t.codeblockParameters={codeblockWidth:r,codeblockHeight:n,numcodeblockwide:l-o+1,numcodeblockhigh:h-c+1};t.codeblocks=d;t.precincts=f}function createPacket(e,t,a){const r=[],n=e.subbands;for(let e=0,a=n.length;ee.codingStyleParameters.decompositionLevelsCount)continue;const t=e.resolutions[c],a=t.precinctParameters.numprecincts;for(;he.codingStyleParameters.decompositionLevelsCount)continue;const t=e.resolutions[o],a=t.precinctParameters.numprecincts;for(;he.codingStyleParameters.decompositionLevelsCount)continue;const t=e.resolutions[o],a=t.precinctParameters.numprecincts;if(!(l>=a)){for(;s=0;--e){const a=t.resolutions[e],r=g*a.precinctParameters.precinctWidth,n=g*a.precinctParameters.precinctHeight;h=Math.min(h,r);u=Math.min(u,n);d=Math.max(d,a.precinctParameters.numprecinctswide);f=Math.max(f,a.precinctParameters.numprecinctshigh);l[e]={width:r,height:n};g<<=1}a=Math.min(a,h);r=Math.min(r,u);n=Math.max(n,d);i=Math.max(i,f);s[o]={resolutions:l,minWidth:h,minHeight:u,maxNumWide:d,maxNumHigh:f}}return{components:s,minWidth:a,minHeight:r,maxNumWide:n,maxNumHigh:i}}function buildPackets(e){const t=e.SIZ,a=e.currentTile.index,r=e.tiles[a],n=t.Csiz;for(let e=0;e>>o&(1<0;){const e=i.shift();o=e.codeblock;void 0===o.data&&(o.data=[]);o.data.push({data:t,start:a+s,end:a+s+e.dataLength,codingpasses:e.codingpasses});s+=e.dataLength}}return s}function copyCoefficients(e,t,a,r,n,s,c,l,h){const u=r.tbx0,d=r.tby0,f=r.tbx1-r.tbx0,g=r.codeblocks,p="H"===r.type.charAt(0)?1:0,m="H"===r.type.charAt(1)?t:0;for(let a=0,b=g.length;a=s?U:U*(1<0?1-e:0)}const p=t.subbands[r],m=s[p.type];copyCoefficients(i,a,0,p,g?1:2**(f+m-o)*(1+n/2048),h+o-1,g,u,d)}m.push({width:a,height:n,items:i})}const y=p.calculate(m,r.tcx0,r.tcy0);return{left:r.tcx0,top:r.tcy0,width:y.width,height:y.height,items:y.items}}function initializeTile(e,t){const a=e.SIZ.Csiz,r=e.tiles[t];for(let t=0;t>=1;t>>=1;r++}r--;a=this.levels[r];a.items[a.index]=n;this.currentLevel=r;delete this.value}incrementValue(){const e=this.levels[this.currentLevel];e.items[e.index]++}nextLevel(){let e=this.currentLevel,t=this.levels[e];const a=t.items[t.index];e--;if(e<0){this.value=a;return!1}this.currentLevel=e;t=this.levels[e];t.items[t.index]=a;return!0}}class InclusionTree{constructor(e,t,a){const r=(0,n.log2)(Math.max(e,t))+1;this.levels=[];for(let n=0;na){this.currentLevel=r;this.propagateValues();return!1}e>>=1;t>>=1;r++}this.currentLevel=r-1;return!0}incrementValue(e){const t=this.levels[this.currentLevel];t.items[t.index]=e+1;this.propagateValues()}propagateValues(){let e=this.currentLevel,t=this.levels[e];const a=t.items[t.index];for(;--e>=0;){t=this.levels[e];t.items[t.index]=a}}nextLevel(){let e=this.currentLevel,t=this.levels[e];const a=t.items[t.index];t.items[t.index]=255;e--;if(e<0)return!1;this.currentLevel=e;t=this.levels[e];t.items[t.index]=a;return!0}}const o=function BitModelClosure(){const e=17,t=new Uint8Array([0,5,8,0,3,7,8,0,4,7,8,0,0,0,0,0,1,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8]),a=new Uint8Array([0,3,4,0,5,7,7,0,8,8,8,0,0,0,0,0,1,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8]),r=new Uint8Array([0,1,2,0,1,2,2,0,2,2,2,0,0,0,0,0,3,4,5,0,4,5,5,0,5,5,5,0,0,0,0,0,6,7,7,0,7,7,7,0,7,7,7,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8]);return class BitModel{constructor(e,n,i,s,o){this.width=e;this.height=n;let c;c="HH"===i?r:"HL"===i?a:t;this.contextLabelTable=c;const l=e*n;this.neighborsSignificance=new Uint8Array(l);this.coefficentsSign=new Uint8Array(l);let h;h=o>14?new Uint32Array(l):o>6?new Uint16Array(l):new Uint8Array(l);this.coefficentsMagnitude=h;this.processingFlags=new Uint8Array(l);const u=new Uint8Array(l);if(0!==s)for(let e=0;e0,o=t+10){c=a-n;s&&(r[c-1]+=16);o&&(r[c+1]+=16);r[c]+=4}if(e+1=a)break;s[d]&=-2;if(r[d]||!i[d])continue;const g=c[i[d]];if(e.readBit(o,g)){const e=this.decodeSignBit(t,u,d);n[d]=e;r[d]=1;this.setNeighborsSignificance(t,u,d);s[d]|=2}l[d]++;s[d]|=1}}}decodeSignBit(e,t,a){const r=this.width,n=this.height,i=this.coefficentsMagnitude,s=this.coefficentsSign;let o,c,l,h,u,d;h=t>0&&0!==i[a-1];if(t+10&&0!==i[a-r];if(e+1=0){u=9+o;d=this.decoder.readBit(this.contexts,u)}else{u=9-o;d=1^this.decoder.readBit(this.contexts,u)}return d}runMagnitudeRefinementPass(){const e=this.decoder,t=this.width,a=this.height,r=this.coefficentsMagnitude,n=this.neighborsSignificance,i=this.contexts,s=this.bitsDecoded,o=this.processingFlags,c=t*a,l=4*t;for(let a,h=0;h>1;let n,i,s,o;const c=-1.586134342059924,l=-.052980118572961,h=.882911075530934,u=.443506852043971,d=1.230174104914001;n=(t|=0)-3;for(i=r+4;i--;n+=2)e[n]*=.8128930661159609;n=t-2;s=u*e[n-1];for(i=r+3;i--;n+=2){o=u*e[n+1];e[n]=d*e[n]-s-o;if(!i--)break;n+=2;s=u*e[n+1];e[n]=d*e[n]-s-o}n=t-1;s=h*e[n-1];for(i=r+2;i--;n+=2){o=h*e[n+1];e[n]-=s+o;if(!i--)break;n+=2;s=h*e[n+1];e[n]-=s+o}n=t;s=l*e[n-1];for(i=r+1;i--;n+=2){o=l*e[n+1];e[n]-=s+o;if(!i--)break;n+=2;s=l*e[n+1];e[n]-=s+o}if(0!==r){n=t+1;s=c*e[n-1];for(i=r;i--;n+=2){o=c*e[n+1];e[n]-=s+o;if(!i--)break;n+=2;s=c*e[n+1];e[n]-=s+o}}}}class ReversibleTransform extends Transform{filter(e,t,a){const r=a>>1;let n,i;for(n=t|=0,i=r+1;i--;n+=2)e[n]-=e[n-1]+e[n+1]+2>>2;for(n=t+1,i=r;i--;n+=2)e[n]+=e[n-1]+e[n+1]>>1}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.LZWStream=void 0;var r=a(29);class LZWStream extends r.DecodeStream{constructor(e,t,a){super(t);this.str=e;this.dict=e.dict;this.cachedData=0;this.bitsCached=0;const r=4096,n={earlyChange:a,codeLength:9,nextCode:258,dictionaryValues:new Uint8Array(r),dictionaryLengths:new Uint16Array(r),dictionaryPrevCodes:new Uint16Array(r),currentSequence:new Uint8Array(r),currentSequenceLength:0};for(let e=0;e<256;++e){n.dictionaryValues[e]=e;n.dictionaryLengths[e]=1}this.lzwState=n}readBits(e){let t=this.bitsCached,a=this.cachedData;for(;t>>t&(1<0;if(e<256){d[0]=e;f=1}else{if(!(e>=258)){if(256===e){h=9;s=258;f=0;continue}this.eof=!0;delete this.lzwState;break}if(e=0;t--){d[t]=o[a];a=l[a]}}else d[f++]=d[0]}if(n){l[s]=u;c[s]=c[u]+1;o[s]=d[0];s++;h=s+i&s+i-1?h:0|Math.min(Math.log(s+i)/.6931471805599453+1,12)}u=e;g+=f;if(r{Object.defineProperty(t,"__esModule",{value:!0});t.PredictorStream=void 0;var r=a(29),n=a(5),i=a(2);class PredictorStream extends r.DecodeStream{constructor(e,t,a){super(t);if(!(a instanceof n.Dict))return e;const r=this.predictor=a.get("Predictor")||1;if(r<=1)return e;if(2!==r&&(r<10||r>15))throw new i.FormatError(`Unsupported predictor: ${r}`);this.readBlock=2===r?this.readBlockTiff:this.readBlockPng;this.str=e;this.dict=e.dict;const s=this.colors=a.get("Colors")||1,o=this.bits=a.get("BPC","BitsPerComponent")||8,c=this.columns=a.get("Columns")||1;this.pixBytes=s*o+7>>3;this.rowBytes=c*s*o+7>>3;return this}readBlockTiff(){const e=this.rowBytes,t=this.bufferLength,a=this.ensureBuffer(t+e),r=this.bits,n=this.colors,i=this.str.getBytes(e);this.eof=!i.length;if(this.eof)return;let s,o=0,c=0,l=0,h=0,u=t;if(1===r&&1===n)for(s=0;s>1;e^=e>>2;e^=e>>4;o=(1&e)<<7;a[u++]=e}else if(8===r){for(s=0;s>8&255;a[u++]=255&e}}else{const e=new Uint8Array(n+1),u=(1<>l-r)&u;l-=r;c=c<=8){a[f++]=c>>h-8&255;h-=8}}h>0&&(a[f++]=(c<<8-h)+(o&(1<<8-h)-1))}this.bufferLength+=e}readBlockPng(){const e=this.rowBytes,t=this.pixBytes,a=this.str.getByte(),r=this.str.getBytes(e);this.eof=!r.length;if(this.eof)return;const n=this.bufferLength,s=this.ensureBuffer(n+e);let o=s.subarray(n-e,n);0===o.length&&(o=new Uint8Array(e));let c,l,h,u=n;switch(a){case 0:for(c=0;c>1)+r[c];for(;c>1)+r[c]&255;u++}break;case 4:for(c=0;c{Object.defineProperty(t,"__esModule",{value:!0});t.RunLengthStream=void 0;var r=a(29);class RunLengthStream extends r.DecodeStream{constructor(e,t){super(t);this.str=e;this.dict=e.dict}readBlock(){const e=this.str.getBytes(2);if(!e||e.length<2||128===e[0]){this.eof=!0;return}let t,a=this.bufferLength,r=e[0];if(r<128){t=this.ensureBuffer(a+r+1);t[a++]=e[1];if(r>0){const e=this.str.getBytes(r);t.set(e,a);a+=r}}else{r=257-r;const n=e[1];t=this.ensureBuffer(a+r+1);for(let e=0;e{Object.defineProperty(t,"__esModule",{value:!0});t.Font=t.ErrorFont=void 0;var r=a(2),n=a(45),i=a(18),s=a(21),o=a(20),c=a(19),l=a(47),h=a(48),u=a(49),d=a(50),f=a(51),g=a(52),p=a(26),m=a(53),b=a(8),y=a(10),w=a(54);const S=[[57344,63743],[1048576,1114109]],x=1e3,k=["ascent","bbox","black","bold","charProcOperatorList","composite","cssFontInfo","data","defaultVMetrics","defaultWidth","descent","fallbackName","fontMatrix","fontType","isType3Font","italic","loadedName","mimetype","missingFile","name","remeasure","subtype","type","vertical"],C=["cMap","defaultEncoding","differences","isMonospace","isSerifFont","isSymbolicFont","seacMap","toFontChar","toUnicode","vmetrics","widths"];function adjustWidths(e){if(!e.fontMatrix)return;if(e.fontMatrix[0]===r.FONT_IDENTITY_MATRIX[0])return;const t=.001/e.fontMatrix[0],a=e.widths;for(const e in a)a[e]*=t;e.defaultWidth*=t}function amendFallbackToUnicode(e){if(!e.fallbackToUnicode)return;if(e.toUnicode instanceof h.IdentityToUnicodeMap)return;const t=[];for(const a in e.fallbackToUnicode)e.toUnicode.has(a)||(t[a]=e.fallbackToUnicode[a]);t.length>0&&e.toUnicode.amend(t)}class Glyph{constructor(e,t,a,r,n,i,o,c,l){this.originalCharCode=e;this.fontChar=t;this.unicode=a;this.accent=r;this.width=n;this.vmetric=i;this.operatorListId=o;this.isSpace=c;this.isInFont=l;const h=(0,s.getCharUnicodeCategory)(a);this.isWhitespace=h.isWhitespace;this.isZeroWidthDiacritic=h.isZeroWidthDiacritic;this.isInvisibleFormatMark=h.isInvisibleFormatMark}matchesForCache(e,t,a,r,n,i,s,o,c){return this.originalCharCode===e&&this.fontChar===t&&this.unicode===a&&this.accent===r&&this.width===n&&this.vmetric===i&&this.operatorListId===s&&this.isSpace===o&&this.isInFont===c}}function int16(e,t){return(e<<8)+t}function writeSignedInt16(e,t,a){e[t+1]=a;e[t]=a>>>8}function signedInt16(e,t){const a=(e<<8)+t;return 32768&a?a-65536:a}function string16(e){return String.fromCharCode(e>>8&255,255&e)}function safeString16(e){e>32767?e=32767:e<-32768&&(e=-32768);return String.fromCharCode(e>>8&255,255&e)}function isTrueTypeCollectionFile(e){const t=e.peekBytes(4);return"ttcf"===(0,r.bytesToString)(t)}function getFontFileType(e,{type:t,subtype:a,composite:n}){let i,s;if(function isTrueTypeFile(e){const t=e.peekBytes(4);return 65536===(0,b.readUint32)(t,0)||"true"===(0,r.bytesToString)(t)}(e)||isTrueTypeCollectionFile(e))i=n?"CIDFontType2":"TrueType";else if(function isOpenTypeFile(e){const t=e.peekBytes(4);return"OTTO"===(0,r.bytesToString)(t)}(e))i=n?"CIDFontType2":"OpenType";else if(function isType1File(e){const t=e.peekBytes(2);return 37===t[0]&&33===t[1]||128===t[0]&&1===t[1]}(e))i=n?"CIDFontType0":"MMType1"===t?"MMType1":"Type1";else if(function isCFFFile(e){const t=e.peekBytes(4);return t[0]>=1&&t[3]>=1&&t[3]<=4}(e))if(n){i="CIDFontType0";s="CIDFontType0C"}else{i="MMType1"===t?"MMType1":"Type1";s="Type1C"}else{(0,r.warn)("getFontFileType: Unable to detect correct font file Type/Subtype.");i=t;s=a}return[i,s]}function applyStandardFontGlyphMap(e,t){for(const a in t)e[+a]=t[a]}function buildToFontChar(e,t,a){const r=[];let n;for(let a=0,i=e.length;ac){s++;if(s>=S.length){(0,r.warn)("Ran out of space in font private use area.");break}o=S[s][0];c=S[s][1]}const u=o++;0===h&&(h=a);n[u]=h;i[l]=u}return{toFontChar:i,charCodeToGlyphId:n,nextAvailableFontCharCode:o}}function createCmapTable(e,t){const a=function getRanges(e,t){const a=[];for(const r in e)e[r]>=t||a.push({fontCharCode:0|r,glyphId:e[r]});0===a.length&&a.push({fontCharCode:0,glyphId:0});a.sort((function fontGetRangesSort(e,t){return e.fontCharCode-t.fontCharCode}));const r=[],n=a.length;for(let e=0;e65535?2:1;let i,s,o,c,l="\0\0"+string16(n)+"\0\0"+(0,r.string32)(4+8*n);for(i=a.length-1;i>=0&&!(a[i][0]<=65535);--i);const h=i+1;a[i][0]<65535&&65535===a[i][1]&&(a[i][1]=65534);const u=a[i][1]<65535?1:0,d=h+u,f=m.OpenTypeFileBuilder.getSearchParams(d,2);let g,p,b,y,w="",S="",x="",k="",C="",v=0;for(i=0,s=h;i0){S+="ÿÿ";w+="ÿÿ";x+="\0";k+="\0\0"}const F="\0\0"+string16(2*d)+string16(f.range)+string16(f.entry)+string16(f.rangeShift)+S+"\0\0"+w+x+k+C;let O="",T="";if(n>1){l+="\0\0\n"+(0,r.string32)(4+8*n+4+F.length);O="";for(i=0,s=a.length;ie||!l)&&(l=e);h 123 are reserved for internal usage");c|=1<65535&&(h=65535)}else{l=0;h=255}const u=e.bbox||[0,0,0,0],d=a.unitsPerEm||1/(e.fontMatrix||r.FONT_IDENTITY_MATRIX)[0],f=e.ascentScaled?1:d/x,g=a.ascent||Math.round(f*(e.ascent||u[3]));let p=a.descent||Math.round(f*(e.descent||u[1]));p>0&&e.descent>0&&u[1]<0&&(p=-p);const m=a.yMax||g,b=-a.yMin||-p;return"\0$ô\0\0\0Š»\0\0\0ŒŠ»\0\0ß\x001\0\0\0\0"+String.fromCharCode(e.fixedPitch?9:0)+"\0\0\0\0\0\0"+(0,r.string32)(n)+(0,r.string32)(i)+(0,r.string32)(o)+(0,r.string32)(c)+"*21*"+string16(e.italicAngle?1:0)+string16(l||e.firstChar)+string16(h||e.lastChar)+string16(g)+string16(p)+"\0d"+string16(m)+string16(b)+"\0\0\0\0\0\0\0\0"+string16(e.xHeight)+string16(e.capHeight)+string16(0)+string16(l||e.firstChar)+"\0"}function createPostTable(e){const t=Math.floor(65536*e.italicAngle);return"\0\0\0"+(0,r.string32)(t)+"\0\0\0\0"+(0,r.string32)(e.fixedPitch?1:0)+"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}function createPostscriptName(e){return e.replace(/[^\x21-\x7E]|[[\](){}<>/%]/g,"").slice(0,63)}function createNameTable(e,t){t||(t=[[],[]]);const a=[t[0][0]||"Original licence",t[0][1]||e,t[0][2]||"Unknown",t[0][3]||"uniqueID",t[0][4]||e,t[0][5]||"Version 0.11",t[0][6]||createPostscriptName(e),t[0][7]||"Unknown",t[0][8]||"Unknown",t[0][9]||"Unknown"],r=[];let n,i,s,o,c;for(n=0,i=a.length;n0;if((p||m)&&"CIDFontType2"===a&&this.cidEncoding.startsWith("Identity-")){const a=e.cidToGidMap,r=[];applyStandardFontGlyphMap(r,(0,l.getGlyphMapForStandardFonts)());/Arial-?Black/i.test(t)?applyStandardFontGlyphMap(r,(0,l.getSupplementalGlyphMapForArialBlack)()):/Calibri/i.test(t)&&applyStandardFontGlyphMap(r,(0,l.getSupplementalGlyphMapForCalibri)());if(a){for(const e in r){const t=r[e];void 0!==a[t]&&(r[+e]=a[t])}a.length!==this.toUnicode.length&&e.hasIncludedToUnicodeMap&&this.toUnicode instanceof h.IdentityToUnicodeMap&&this.toUnicode.forEach((function(e,t){const n=r[e];void 0===a[n]&&(r[+e]=t)}))}this.toUnicode instanceof h.IdentityToUnicodeMap||this.toUnicode.forEach((function(e,t){r[+e]=t}));this.toFontChar=r;this.toUnicode=new h.ToUnicodeMap(r)}else if(/Symbol/i.test(u))this.toFontChar=buildToFontChar(c.SymbolSetEncoding,(0,o.getGlyphsUnicode)(),this.differences);else if(/Dingbats/i.test(u)){/Wingdings/i.test(t)&&(0,r.warn)("Non-embedded Wingdings font, falling back to ZapfDingbats.");this.toFontChar=buildToFontChar(c.ZapfDingbatsEncoding,(0,o.getDingbatsGlyphsUnicode)(),this.differences)}else if(p){const e=buildToFontChar(this.defaultEncoding,(0,o.getGlyphsUnicode)(),this.differences);"CIDFontType2"!==a||this.cidEncoding.startsWith("Identity-")||this.toUnicode instanceof h.IdentityToUnicodeMap||this.toUnicode.forEach((function(t,a){e[+t]=a}));this.toFontChar=e}else{const e=(0,o.getGlyphsUnicode)(),a=[];this.toUnicode.forEach(((t,r)=>{if(!this.composite){const a=this.differences[t]||this.defaultEncoding[t],n=(0,s.getUnicodeForGlyph)(a,e);-1!==n&&(r=n)}a[+t]=r}));this.composite&&this.toUnicode instanceof h.IdentityToUnicodeMap&&/Verdana/i.test(t)&&applyStandardFontGlyphMap(a,(0,l.getGlyphMapForStandardFonts)());this.toFontChar=a}amendFallbackToUnicode(e);this.loadedName=u.split("-")[0];this.fontType=(0,i.getFontType)(a,n,e.isStandardFont)}checkAndRepair(e,t,a){const s=["OS/2","cmap","head","hhea","hmtx","maxp","name","post","loca","glyf","fpgm","prep","cvt ","CFF "];function readTables(e,t){const a=Object.create(null);a["OS/2"]=null;a.cmap=null;a.head=null;a.hhea=null;a.hmtx=null;a.maxp=null;a.name=null;a.post=null;for(let r=0;r>>0,r=e.getInt32()>>>0,n=e.getInt32()>>>0,i=e.pos;e.pos=e.start?e.start:0;e.skip(r);const s=e.getBytes(n);e.pos=i;if("head"===t){s[8]=s[9]=s[10]=s[11]=0;s[17]|=32}return{tag:t,checksum:a,length:n,offset:r,data:s}}function readOpenTypeHeader(e){return{version:e.getString(4),numTables:e.getUint16(),searchRange:e.getUint16(),entrySelector:e.getUint16(),rangeShift:e.getUint16()}}function sanitizeGlyph(e,t,a,r,n,i){const s={length:0,sizeOfInstructions:0};if(a-t<=12)return s;const o=e.subarray(t,a);let c=signedInt16(o[0],o[1]);if(c<0){c=-1;writeSignedInt16(o,0,c);r.set(o,n);s.length=o.length;return s}let l,h=10,u=0;for(l=0;lo.length)return s;if(!i&&f>0){r.set(o.subarray(0,d),n);r.set([0,0],n+d);r.set(o.subarray(g,m),n+d+2);m-=f;o.length-m>3&&(m=m+3&-4);s.length=m;return s}if(o.length-m>3){m=m+3&-4;r.set(o.subarray(0,m),n);s.length=m;return s}r.set(o,n);s.length=o.length;return s}function readNameTable(e){const a=(t.start?t.start:0)+e.offset;t.pos=a;const r=[[],[]],n=e.length,i=a+n;if(0!==t.getUint16()||n<6)return r;const s=t.getUint16(),o=t.getUint16(),c=[];let l,h;for(l=0;li)continue;t.pos=n;const s=e.name;if(e.encoding){let a="";for(let r=0,n=e.length;r0&&(h+=e-1)}}else{if(b||w){(0,r.warn)("TT: nested FDEFs not allowed");m=!0}b=!0;d=h;s=f.pop();t.functionsDefined[s]={data:c,i:h}}else if(!b&&!w){s=f[f.length-1];if(isNaN(s))(0,r.info)("TT: CALL empty stack (or invalid entry).");else{t.functionsUsed[s]=!0;if(s in t.functionsStackDeltas){const e=f.length+t.functionsStackDeltas[s];if(e<0){(0,r.warn)("TT: CALL invalid functions stack delta.");t.hintsValid=!1;return}f.length=e}else if(s in t.functionsDefined&&!p.includes(s)){g.push({data:c,i:h,stackTop:f.length-1});p.push(s);o=t.functionsDefined[s];if(!o){(0,r.warn)("TT: CALL non-existent function");t.hintsValid=!1;return}c=o.data;h=o.i}}}if(!b&&!w){let t=0;e<=142?t=l[e]:e>=192&&e<=223?t=-1:e>=224&&(t=-2);if(e>=113&&e<=117){n=f.pop();isNaN(n)||(t=2*-n)}for(;t<0&&f.length>0;){f.pop();t++}for(;t>0;){f.push(NaN);t--}}}t.tooComplexToFollowFunctions=m;const S=[c];h>c.length&&S.push(new Uint8Array(h-c.length));if(d>u){(0,r.warn)("TT: complementing a missing function tail");S.push(new Uint8Array([34,45]))}!function foldTTTable(e,t){if(t.length>1){let a,r,n=0;for(a=0,r=t.length;a>>0,s=[];for(let t=0;t>>0);const o={ttcTag:t,majorVersion:a,minorVersion:n,numFonts:i,offsetTable:s};switch(a){case 1:return o;case 2:o.dsigTag=e.getInt32()>>>0;o.dsigLength=e.getInt32()>>>0;o.dsigOffset=e.getInt32()>>>0;return o}throw new r.FormatError(`Invalid TrueType Collection majorVersion: ${a}.`)}(e),i=t.split("+");let s;for(let o=0;o0||!(a.cMap instanceof p.IdentityCMap));if("OTTO"===d.version&&!t||!f.head||!f.hhea||!f.maxp||!f.post){w=new y.Stream(f["CFF "].data);b=new u.CFFFont(w,a);adjustWidths(a);return this.convert(e,b,a)}delete f.glyf;delete f.loca;delete f.fpgm;delete f.prep;delete f["cvt "];this.isOpenType=!0}if(!f.maxp)throw new r.FormatError('Required "maxp" table is not found');t.pos=(t.start||0)+f.maxp.offset;const x=t.getInt32(),k=t.getUint16();if(a.scaleFactors&&a.scaleFactors.length===k&&S){const{scaleFactors:e}=a,t=int16(f.head.data[50],f.head.data[51]),r=new g.GlyfTable({glyfTable:f.glyf.data,isGlyphLocationsLong:t,locaTable:f.loca.data,numGlyphs:k});r.scale(e);const{glyf:n,loca:i,isLocationLong:s}=r.write();f.glyf.data=n;f.loca.data=i;if(s!==!!t){f.head.data[50]=0;f.head.data[51]=s?1:0}const o=f.hmtx.data;for(let t=0;t>8&255;o[a+1]=255&r;writeSignedInt16(o,a+2,Math.round(e[t]*signedInt16(o[a+2],o[a+3])))}}let C=k+1,v=!0;if(C>65535){v=!1;C=k;(0,r.warn)("Not enough space in glyfs to duplicate first glyph.")}let F=0,O=0;if(x>=65536&&f.maxp.length>=22){t.pos+=8;if(t.getUint16()>2){f.maxp.data[14]=0;f.maxp.data[15]=2}t.pos+=4;F=t.getUint16();t.pos+=4;O=t.getUint16()}f.maxp.data[4]=C>>8;f.maxp.data[5]=255&C;const T=function sanitizeTTPrograms(e,t,a,n){const i={functionsDefined:[],functionsUsed:[],functionsStackDeltas:[],tooComplexToFollowFunctions:!1,hintsValid:!0};e&&sanitizeTTProgram(e,i);t&&sanitizeTTProgram(t,i);e&&function checkInvalidFunctions(e,t){if(!e.tooComplexToFollowFunctions)if(e.functionsDefined.length>t){(0,r.warn)("TT: more functions defined than expected");e.hintsValid=!1}else for(let a=0,n=e.functionsUsed.length;at){(0,r.warn)("TT: invalid function id: "+a);e.hintsValid=!1;return}if(e.functionsUsed[a]&&!e.functionsDefined[a]){(0,r.warn)("TT: undefined function: "+a);e.hintsValid=!1;return}}}(i,n);if(a&&1&a.length){const e=new Uint8Array(a.length+1);e.set(a.data);a.data=e}return i.hintsValid}(f.fpgm,f.prep,f["cvt "],F);if(!T){delete f.fpgm;delete f.prep;delete f["cvt "]}!function sanitizeMetrics(e,t,a,n,i,s){if(!t){a&&(a.data=null);return}e.pos=(e.start?e.start:0)+t.offset;e.pos+=4;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;const o=e.getUint16();e.pos+=8;e.pos+=2;let c=e.getUint16();if(0!==o){if(!(2&int16(n.data[44],n.data[45]))){t.data[22]=0;t.data[23]=0}}if(c>i){(0,r.info)(`The numOfMetrics (${c}) should not be greater than the numGlyphs (${i}).`);c=i;t.data[34]=(65280&c)>>8;t.data[35]=255&c}const l=i-c-(a.length-4*c>>1);if(l>0){const e=new Uint8Array(a.length+2*l);e.set(a.data);if(s){e[a.length]=a.data[2];e[a.length+1]=a.data[3]}a.data=e}}(t,f.hhea,f.hmtx,f.head,C,v);if(!f.head)throw new r.FormatError('Required "head" table is not found');!function sanitizeHead(e,t,a){const n=e.data,i=function int32(e,t,a,r){return(e<<24)+(t<<16)+(a<<8)+r}(n[0],n[1],n[2],n[3]);if(i>>16!=1){(0,r.info)("Attempting to fix invalid version in head table: "+i);n[0]=0;n[1]=1;n[2]=0;n[3]=0}const s=int16(n[50],n[51]);if(s<0||s>1){(0,r.info)("Attempting to fix invalid indexToLocFormat in head table: "+s);const e=t+1;if(a===e<<1){n[50]=0;n[51]=0}else{if(a!==e<<2)throw new r.FormatError("Could not fix indexToLocFormat: "+s);n[50]=0;n[51]=1}}}(f.head,k,S?f.loca.length:0);let M=Object.create(null);if(S){const e=int16(f.head.data[50],f.head.data[51]),t=function sanitizeGlyphLocations(e,t,a,r,n,i,s){let o,c,l;if(r){o=4;c=function fontItemDecodeLong(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]};l=function fontItemEncodeLong(e,t,a){e[t]=a>>>24&255;e[t+1]=a>>16&255;e[t+2]=a>>8&255;e[t+3]=255&a}}else{o=2;c=function fontItemDecode(e,t){return e[t]<<9|e[t+1]<<1};l=function fontItemEncode(e,t,a){e[t]=a>>9&255;e[t+1]=a>>1&255}}const h=i?a+1:a,u=o*(1+h),d=new Uint8Array(u);d.set(e.data.subarray(0,u));e.data=d;const f=t.data,g=f.length,p=new Uint8Array(g);let m,b;const y=[];for(m=0,b=0;mg&&(e=g);y.push({index:m,offset:e,endOffset:0})}y.sort(((e,t)=>e.offset-t.offset));for(m=0;me.index-t.index));for(m=0;ms&&(s=e.sizeOfInstructions);S+=t;l(d,b,S)}if(0===S){const e=new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,49,0]);for(m=0,b=o;ma+S)t.data=p.subarray(0,a+S);else{t.data=new Uint8Array(a+S);t.data.set(p.subarray(0,S))}t.data.set(p.subarray(0,a),S);l(e.data,d.length-o,S+a)}else t.data=p.subarray(0,S);return{missingGlyphs:w,maxSizeOfInstructions:s}}(f.loca,f.glyf,k,e,T,v,O);M=t.missingGlyphs;if(x>=65536&&f.maxp.length>=22){f.maxp.data[26]=t.maxSizeOfInstructions>>8;f.maxp.data[27]=255&t.maxSizeOfInstructions}}if(!f.hhea)throw new r.FormatError('Required "hhea" table is not found');if(0===f.hhea.data[10]&&0===f.hhea.data[11]){f.hhea.data[10]=255;f.hhea.data[11]=255}const E={unitsPerEm:int16(f.head.data[18],f.head.data[19]),yMax:int16(f.head.data[42],f.head.data[43]),yMin:signedInt16(f.head.data[38],f.head.data[39]),ascent:signedInt16(f.hhea.data[4],f.hhea.data[5]),descent:signedInt16(f.hhea.data[6],f.hhea.data[7]),lineGap:signedInt16(f.hhea.data[8],f.hhea.data[9])};this.ascent=E.ascent/E.unitsPerEm;this.descent=E.descent/E.unitsPerEm;this.lineGap=E.lineGap/E.unitsPerEm;if(this.cssFontInfo&&this.cssFontInfo.lineHeight){this.lineHeight=this.cssFontInfo.metrics.lineHeight;this.lineGap=this.cssFontInfo.metrics.lineGap}else this.lineHeight=this.ascent-this.descent+this.lineGap;f.post&&function readPostScriptTable(e,a,n){const s=(t.start?t.start:0)+e.offset;t.pos=s;const o=s+e.length,c=t.getInt32();t.skip(28);let l,h,u=!0;switch(c){case 65536:l=i.MacStandardGlyphOrdering;break;case 131072:const e=t.getUint16();if(e!==n){u=!1;break}const s=[];for(h=0;h=32768){u=!1;break}s.push(e)}if(!u)break;const d=[],f=[];for(;t.pos65535)throw new r.FormatError("Max size of CID is 65,535");let i=-1;t?i=n:void 0!==e[n]&&(i=e[n]);i>=0&&i>>0;let h=!1;if(!c||c.platformId!==r||c.encodingId!==i){if(0!==r||0!==i&&1!==i&&3!==i)if(1===r&&0===i)h=!0;else if(3!==r||1!==i||!n&&c){if(a&&3===r&&0===i){h=!0;let a=!0;if(e>3;e.push(r);a=Math.max(r,a)}const r=[];for(let e=0;e<=a;e++)r.push({firstCode:t.getUint16(),entryCount:t.getUint16(),idDelta:signedInt16(t.getByte(),t.getByte()),idRangePos:t.pos+t.getUint16()});for(let a=0;a<256;a++)if(0===e[a]){t.pos=r[0].idRangePos+2*a;g=t.getUint16();d.push({charCode:a,glyphId:g})}else{const n=r[e[a]];for(f=0;f>1;t.skip(6);const a=[];let r;for(r=0;r>1)-(e-r);i.offsetIndex=n;o=Math.max(o,n+i.end-i.start+1)}else i.offsetIndex=-1}const c=[];for(f=0;f>>0;for(f=0;f>>0,a=t.getInt32()>>>0;let r=t.getInt32()>>>0;for(let t=e;t<=a;t++)d.push({charCode:t,glyphId:r++})}}}d.sort((function(e,t){return e.charCode-t.charCode}));for(let e=1;e=61440&&t<=61695&&(t&=255);D[t]=l[e].glyphId}if(a.glyphNames&&(d.length||this.differences.length))for(let e=0;e<256;++e){if(!g&&void 0!==D[e])continue;const t=this.differences[e]||d[e];if(!t)continue;const r=a.glyphNames.indexOf(t);r>0&&hasGlyph(r)&&(D[e]=r)}}0===D.length&&(D[0]=0);let N=C-1;v||(N=0);if(!a.cssFontInfo){const e=adjustMapping(D,hasGlyph,N);this.toFontChar=e.toFontChar;f.cmap={tag:"cmap",data:createCmapTable(e.charCodeToGlyphId,C)};f["OS/2"]&&function validateOS2Table(e,t){t.pos=(t.start||0)+e.offset;const a=t.getUint16();t.skip(60);const r=t.getUint16();if(a<4&&768&r)return!1;if(t.getUint16()>t.getUint16())return!1;t.skip(6);if(0===t.getUint16())return!1;e.data[8]=e.data[9]=0;return!0}(f["OS/2"],t)||(f["OS/2"]={tag:"OS/2",data:createOS2Table(a,e.charCodeToGlyphId,E)})}if(!S)try{w=new y.Stream(f["CFF "].data);b=new n.CFFParser(w,a,i.SEAC_ANALYSIS_ENABLED).parse();b.duplicateFirstGlyph();const e=new n.CFFCompiler(b);f["CFF "].data=e.compile()}catch(e){(0,r.warn)("Failed to compile font "+a.loadedName)}if(f.name){const t=readNameTable(f.name);f.name.data=createNameTable(e,t);this.psName=t[0][6]||null}else f.name={tag:"name",data:createNameTable(this.name)};const L=new m.OpenTypeFileBuilder(d.version);for(const e in f)L.addTable(e,f[e].data);return L.toArray()}convert(e,t,a){a.fixedPitch=!1;a.builtInEncoding&&function adjustToUnicode(e,t){if(e.isInternalFont)return;if(t===e.defaultEncoding)return;if(e.toUnicode instanceof h.IdentityToUnicodeMap)return;const a=[],r=(0,o.getGlyphsUnicode)();for(const n in t){if(e.hasIncludedToUnicodeMap){if(e.toUnicode.has(n))continue}else if(e.hasEncoding&&(0===e.differences.length||void 0!==e.differences[n]))continue;const i=t[n],o=(0,s.getUnicodeForGlyph)(i,r);-1!==o&&(a[n]=String.fromCharCode(o))}a.length>0&&e.toUnicode.amend(a)}(a,a.builtInEncoding);let n=1;t instanceof u.CFFFont&&(n=t.numGlyphs-1);const l=t.getGlyphMapping(a);let d=null,f=l;if(!a.cssFontInfo){d=adjustMapping(l,t.hasGlyphId.bind(t),n);this.toFontChar=d.toFontChar;f=d.charCodeToGlyphId}const g=t.numGlyphs;function getCharCodes(e,t){let a=null;for(const r in e)if(t===e[r]){a||(a=[]);a.push(0|r)}return a}function createCharCode(e,t){for(const a in e)if(t===e[a])return 0|a;d.charCodeToGlyphId[d.nextAvailableFontCharCode]=t;return d.nextAvailableFontCharCode++}const p=t.seacs;if(d&&i.SEAC_ANALYSIS_ENABLED&&p&&p.length){const e=a.fontMatrix||r.FONT_IDENTITY_MATRIX,n=t.getCharset(),i=Object.create(null);for(let t in p){t|=0;const a=p[t],r=c.StandardEncoding[a[2]],s=c.StandardEncoding[a[3]],o=n.indexOf(r),h=n.indexOf(s);if(o<0||h<0)continue;const u={x:a[0]*e[0]+a[1]*e[2]+e[4],y:a[0]*e[1]+a[1]*e[3]+e[5]},f=getCharCodes(l,t);if(f)for(let e=0,t=f.length;et.length%2==1,r=this.toUnicode instanceof h.IdentityToUnicodeMap?e=>this.toUnicode.charCodeOf(e):e=>this.toUnicode.charCodeOf(String.fromCodePoint(e));for(let n=0,i=e.length;n55295&&(i<57344||i>65533)&&n++;if(this.toUnicode){const e=r(i);if(-1!==e){if(hasCurrentBufErrors()){t.push(a.join(""));a.length=0}for(let t=(this.cMap?this.cMap.getCharCodeLength(e):1)-1;t>=0;t--)a.push(String.fromCharCode(e>>8*t&255));continue}}if(!hasCurrentBufErrors()){t.push(a.join(""));a.length=0}a.push(String.fromCodePoint(i))}t.push(a.join(""));return t}};t.ErrorFont=class ErrorFont{constructor(e){this.error=e;this.loadedName="g_font_error";this.missingFile=!0}charsToGlyphs(){return[]}encodeString(e){return[e]}exportData(e=!1){return{error:this.error}}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.CFFTopDict=t.CFFStrings=t.CFFStandardStrings=t.CFFPrivateDict=t.CFFParser=t.CFFIndex=t.CFFHeader=t.CFFFDSelect=t.CFFCompiler=t.CFFCharset=t.CFF=void 0;var r=a(2),n=a(46),i=a(19);const s=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"];t.CFFStandardStrings=s;const o=391,c=function CFFParserClosure(){const e=[null,{id:"hstem",min:2,stackClearing:!0,stem:!0},null,{id:"vstem",min:2,stackClearing:!0,stem:!0},{id:"vmoveto",min:1,stackClearing:!0},{id:"rlineto",min:2,resetStack:!0},{id:"hlineto",min:1,resetStack:!0},{id:"vlineto",min:1,resetStack:!0},{id:"rrcurveto",min:6,resetStack:!0},null,{id:"callsubr",min:1,undefStack:!0},{id:"return",min:0,undefStack:!0},null,null,{id:"endchar",min:0,stackClearing:!0},null,null,null,{id:"hstemhm",min:2,stackClearing:!0,stem:!0},{id:"hintmask",min:0,stackClearing:!0},{id:"cntrmask",min:0,stackClearing:!0},{id:"rmoveto",min:2,stackClearing:!0},{id:"hmoveto",min:1,stackClearing:!0},{id:"vstemhm",min:2,stackClearing:!0,stem:!0},{id:"rcurveline",min:8,resetStack:!0},{id:"rlinecurve",min:8,resetStack:!0},{id:"vvcurveto",min:4,resetStack:!0},{id:"hhcurveto",min:4,resetStack:!0},null,{id:"callgsubr",min:1,undefStack:!0},{id:"vhcurveto",min:4,resetStack:!0},{id:"hvcurveto",min:4,resetStack:!0}],t=[null,null,null,{id:"and",min:2,stackDelta:-1},{id:"or",min:2,stackDelta:-1},{id:"not",min:1,stackDelta:0},null,null,null,{id:"abs",min:1,stackDelta:0},{id:"add",min:2,stackDelta:-1,stackFn:function stack_div(e,t){e[t-2]=e[t-2]+e[t-1]}},{id:"sub",min:2,stackDelta:-1,stackFn:function stack_div(e,t){e[t-2]=e[t-2]-e[t-1]}},{id:"div",min:2,stackDelta:-1,stackFn:function stack_div(e,t){e[t-2]=e[t-2]/e[t-1]}},null,{id:"neg",min:1,stackDelta:0,stackFn:function stack_div(e,t){e[t-1]=-e[t-1]}},{id:"eq",min:2,stackDelta:-1},null,null,{id:"drop",min:1,stackDelta:-1},null,{id:"put",min:2,stackDelta:-2},{id:"get",min:1,stackDelta:0},{id:"ifelse",min:4,stackDelta:-3},{id:"random",min:0,stackDelta:1},{id:"mul",min:2,stackDelta:-1,stackFn:function stack_div(e,t){e[t-2]=e[t-2]*e[t-1]}},null,{id:"sqrt",min:1,stackDelta:0},{id:"dup",min:1,stackDelta:1},{id:"exch",min:2,stackDelta:0},{id:"index",min:2,stackDelta:0},{id:"roll",min:3,stackDelta:-2},null,null,null,{id:"hflex",min:7,resetStack:!0},{id:"flex",min:13,resetStack:!0},{id:"hflex1",min:9,resetStack:!0},{id:"flex1",min:11,resetStack:!0}];return class CFFParser{constructor(e,t,a){this.bytes=e.getBytes();this.properties=t;this.seacAnalysisEnabled=!!a}parse(){const e=this.properties,t=new CFF;this.cff=t;const a=this.parseHeader(),r=this.parseIndex(a.endPos),n=this.parseIndex(r.endPos),i=this.parseIndex(n.endPos),s=this.parseIndex(i.endPos),o=this.parseDict(n.obj.get(0)),c=this.createDict(l,o,t.strings);t.header=a.obj;t.names=this.parseNameIndex(r.obj);t.strings=this.parseStringIndex(i.obj);t.topDict=c;t.globalSubrIndex=s.obj;this.parsePrivateDict(t.topDict);t.isCIDFont=c.hasName("ROS");const h=c.getByName("CharStrings"),u=this.parseIndex(h).obj,d=c.getByName("FontMatrix");d&&(e.fontMatrix=d);const f=c.getByName("FontBBox");if(f){e.ascent=Math.max(f[3],f[1]);e.descent=Math.min(f[1],f[3]);e.ascentScaled=!0}let g,p;if(t.isCIDFont){const e=this.parseIndex(c.getByName("FDArray")).obj;for(let a=0,r=e.count;a=t)throw new r.FormatError("Invalid CFF header");if(0!==a){(0,r.info)("cff data is shifted");e=e.subarray(a);this.bytes=e}const n=e[0],i=e[1],s=e[2],o=e[3];return{obj:new CFFHeader(n,i,s,o),endPos:s}}parseDict(e){let t=0;function parseOperand(){let a=e[t++];if(30===a)return function parseFloatOperand(){let a="";const r=15,n=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"],i=e.length;for(;t>4,o=15&i;if(s===r)break;a+=n[s];if(o===r)break;a+=n[o]}return parseFloat(a)}();if(28===a){a=e[t++];a=(a<<24|e[t++]<<16)>>16;return a}if(29===a){a=e[t++];a=a<<8|e[t++];a=a<<8|e[t++];a=a<<8|e[t++];return a}if(a>=32&&a<=246)return a-139;if(a>=247&&a<=250)return 256*(a-247)+e[t++]+108;if(a>=251&&a<=254)return-256*(a-251)-e[t++]-108;(0,r.warn)('CFFParser_parseDict: "'+a+'" is a reserved command.');return NaN}let a=[];const n=[];t=0;const i=e.length;for(;t10)return!1;let o=a.stackSize;const c=a.stack,l=n.length;for(let h=0;h>16;h+=2;o++}else if(14===l){if(o>=4){o-=4;if(this.seacAnalysisEnabled){a.seac=c.slice(o,o+4);return!1}}u=e[l]}else if(l>=32&&l<=246){c[o]=l-139;o++}else if(l>=247&&l<=254){c[o]=l<251?(l-247<<8)+n[h]+108:-(l-251<<8)-n[h]-108;h++;o++}else if(255===l){c[o]=(n[h]<<24|n[h+1]<<16|n[h+2]<<8|n[h+3])/65536;h+=4;o++}else if(19===l||20===l){a.hints+=o>>1;h+=a.hints+7>>3;o%=2;u=e[l]}else{if(10===l||29===l){let t;t=10===l?i:s;if(!t){u=e[l];(0,r.warn)("Missing subrsIndex for "+u.id);return!1}let n=32768;t.count<1240?n=107:t.count<33900&&(n=1131);const h=c[--o]+n;if(h<0||h>=t.count||isNaN(h)){u=e[l];(0,r.warn)("Out of bounds subrIndex for "+u.id);return!1}a.stackSize=o;a.callDepth++;if(!this.parseCharString(a,t.get(h),i,s))return!1;a.callDepth--;o=a.stackSize;continue}if(11===l){a.stackSize=o;return!0}if(0===l&&h===n.length){n[h-1]=14;u=e[14]}else u=e[l]}if(u){if(u.stem){a.hints+=o>>1;if(3===l||23===l)a.hasVStems=!0;else if(a.hasVStems&&(1===l||18===l)){(0,r.warn)("CFF stem hints are in wrong order");n[h-1]=1===l?3:23}}if("min"in u&&!a.undefStack&&o=2&&u.stem?o%=2:o>1&&(0,r.warn)("Found too many parameters for stack-clearing command");o>0&&(a.width=c[o-1])}if("stackDelta"in u){"stackFn"in u&&u.stackFn(c,o);o+=u.stackDelta}else if(u.stackClearing)o=0;else if(u.resetStack){o=0;a.undefStack=!1}else if(u.undefStack){o=0;a.undefStack=!0;a.firstStackClearing=!1}}}a.stackSize=o;return!0}parseCharStrings({charStrings:e,localSubrIndex:t,globalSubrIndex:a,fdSelect:n,fdArray:i,privateDict:s}){const o=[],c=[],l=e.count;for(let h=0;h=i.length){(0,r.warn)("Invalid fd index for glyph index.");d=!1}if(d){g=i[e].privateDict;f=g.subrsIndex}}else t&&(f=t);d&&(d=this.parseCharString(u,l,f,a));if(null!==u.width){const e=g.getByName("nominalWidthX");c[h]=e+u.width}else{const e=g.getByName("defaultWidthX");c[h]=e}null!==u.seac&&(o[h]=u.seac);d||e.set(h,new Uint8Array([14]))}return{charStrings:e,seacs:o,widths:c}}emptyPrivateDictionary(e){const t=this.createDict(h,[],e.strings);e.setByKey(18,[0,0]);e.privateDict=t}parsePrivateDict(e){if(!e.hasName("Private")){this.emptyPrivateDictionary(e);return}const t=e.getByName("Private");if(!Array.isArray(t)||2!==t.length){e.removeByName("Private");return}const a=t[0],r=t[1];if(0===a||r>=this.bytes.length){this.emptyPrivateDictionary(e);return}const n=r+a,i=this.bytes.subarray(r,n),s=this.parseDict(i),o=this.createDict(h,s,e.strings);e.privateDict=o;if(!o.getByName("Subrs"))return;const c=o.getByName("Subrs"),l=r+c;if(0===c||l>=this.bytes.length){this.emptyPrivateDictionary(e);return}const u=this.parseIndex(l);o.subrsIndex=u.obj}parseCharsets(e,t,a,i){if(0===e)return new CFFCharset(!0,u.ISO_ADOBE,n.ISOAdobeCharset);if(1===e)return new CFFCharset(!0,u.EXPERT,n.ExpertCharset);if(2===e)return new CFFCharset(!0,u.EXPERT_SUBSET,n.ExpertSubsetCharset);const s=this.bytes,o=e,c=s[e++],l=[i?0:".notdef"];let h,d,f;t-=1;switch(c){case 0:for(f=0;f=65535){(0,r.warn)("Not enough space in charstrings to duplicate first glyph.");return}const e=this.charStrings.get(0);this.charStrings.add(e);this.isCIDFont&&this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0])}hasGlyphId(e){if(e<0||e>=this.charStrings.count)return!1;return this.charStrings.get(e).length>0}}t.CFF=CFF;class CFFHeader{constructor(e,t,a,r){this.major=e;this.minor=t;this.hdrSize=a;this.offSize=r}}t.CFFHeader=CFFHeader;class CFFStrings{constructor(){this.strings=[]}get(e){return e>=0&&e<=390?s[e]:e-o<=this.strings.length?this.strings[e-o]:s[0]}getSID(e){let t=s.indexOf(e);if(-1!==t)return t;t=this.strings.indexOf(e);return-1!==t?t+o:-1}add(e){this.strings.push(e)}get count(){return this.strings.length}}t.CFFStrings=CFFStrings;class CFFIndex{constructor(){this.objects=[];this.length=0}add(e){this.length+=e.length;this.objects.push(e)}set(e,t){this.length+=t.length-this.objects[e].length;this.objects[e]=t}get(e){return this.objects[e]}get count(){return this.objects.length}}t.CFFIndex=CFFIndex;class CFFDict{constructor(e,t){this.keyToNameMap=e.keyToNameMap;this.nameToKeyMap=e.nameToKeyMap;this.defaults=e.defaults;this.types=e.types;this.opcodes=e.opcodes;this.order=e.order;this.strings=t;this.values=Object.create(null)}setByKey(e,t){if(!(e in this.keyToNameMap))return!1;const a=t.length;if(0===a)return!0;for(let n=0;n=this.fdSelect.length?-1:this.fdSelect[e]}}t.CFFFDSelect=CFFFDSelect;class CFFOffsetTracker{constructor(){this.offsets=Object.create(null)}isTracking(e){return e in this.offsets}track(e,t){if(e in this.offsets)throw new r.FormatError(`Already tracking location of ${e}`);this.offsets[e]=t}offset(e){for(const t in this.offsets)this.offsets[t]+=e}setEntryLocation(e,t,a){if(!(e in this.offsets))throw new r.FormatError(`Not tracking location of ${e}`);const n=a.data,i=this.offsets[e];for(let e=0,a=t.length;e>24&255;n[o]=h>>16&255;n[c]=h>>8&255;n[l]=255&h}}}class CFFCompiler{constructor(e){this.cff=e}compile(){const e=this.cff,t={data:[],length:0,add:function CFFCompiler_add(e){this.data=this.data.concat(e);this.length=this.data.length}},a=this.compileHeader(e.header);t.add(a);const n=this.compileNameIndex(e.names);t.add(n);if(e.isCIDFont&&e.topDict.hasName("FontMatrix")){const t=e.topDict.getByName("FontMatrix");e.topDict.removeByName("FontMatrix");for(let a=0,n=e.fdArray.length;a16&&e.topDict.removeByName("XUID");e.topDict.setByName("charset",0);let s=this.compileTopDicts([e.topDict],t.length,e.isCIDFont);t.add(s.output);const o=s.trackers[0],c=this.compileStringIndex(e.strings.strings);t.add(c);const l=this.compileIndex(e.globalSubrIndex);t.add(l);if(e.encoding&&e.topDict.hasName("Encoding"))if(e.encoding.predefined)o.setEntryLocation("Encoding",[e.encoding.format],t);else{const a=this.compileEncoding(e.encoding);o.setEntryLocation("Encoding",[t.length],t);t.add(a)}const h=this.compileCharset(e.charset,e.charStrings.count,e.strings,e.isCIDFont);o.setEntryLocation("charset",[t.length],t);t.add(h);const u=this.compileCharStrings(e.charStrings);o.setEntryLocation("CharStrings",[t.length],t);t.add(u);if(e.isCIDFont){o.setEntryLocation("FDSelect",[t.length],t);const a=this.compileFDSelect(e.fdSelect);t.add(a);s=this.compileTopDicts(e.fdArray,t.length,!0);o.setEntryLocation("FDArray",[t.length],t);t.add(s.output);const r=s.trackers;this.compilePrivateDicts(e.fdArray,r,t)}this.compilePrivateDicts([e.topDict],[o],t);t.add([0]);return t.data}encodeNumber(e){return Number.isInteger(e)?this.encodeInteger(e):this.encodeFloat(e)}static get EncodeFloatRegExp(){return(0,r.shadow)(this,"EncodeFloatRegExp",/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/)}encodeFloat(e){let t=e.toString();const a=CFFCompiler.EncodeFloatRegExp.exec(t);if(a){const r=parseFloat("1e"+((a[2]?+a[2]:0)+a[1].length));t=(Math.round(e*r)/r).toString()}let r,n,i="";for(r=0,n=t.length;r=-107&&e<=107?[e+139]:e>=108&&e<=1131?[247+((e-=108)>>8),255&e]:e>=-1131&&e<=-108?[251+((e=-e-108)>>8),255&e]:e>=-32768&&e<=32767?[28,e>>8&255,255&e]:[29,e>>24&255,e>>16&255,e>>8&255,255&e];return t}compileHeader(e){return[e.major,e.minor,4,e.offSize]}compileNameIndex(e){const t=new CFFIndex;for(let a=0,n=e.length;a"~"||"["===t||"]"===t||"("===t||")"===t||"{"===t||"}"===t||"<"===t||">"===t||"/"===t||"%"===t)&&(t="_");s[e]=t}s=s.join("");""===s&&(s="Bad_Font_Name");t.add((0,r.stringToBytes)(s))}return this.compileIndex(t)}compileTopDicts(e,t,a){const r=[];let n=new CFFIndex;for(let i=0,s=e.length;i>8&255,255&s]);else{i=new Uint8Array(1+2*s);i[0]=0;let t=0;const n=e.charset.length;let o=!1;for(let s=1;s>8&255;i[s+1]=255&c}}return this.compileTypedArray(i)}compileEncoding(e){return this.compileTypedArray(e.raw)}compileFDSelect(e){const t=e.format;let a,r;switch(t){case 0:a=new Uint8Array(1+e.fdSelect.length);a[0]=t;for(r=0;r>8&255,255&n,i];for(r=1;r>8&255,255&r,t);i=t}}const o=(s.length-3)/3;s[1]=o>>8&255;s[2]=255&o;s.push(r>>8&255,255&r);a=new Uint8Array(s)}return this.compileTypedArray(a)}compileTypedArray(e){const t=[];for(let a=0,r=e.length;a>8&255,255&r];let i,s,o=1;for(i=0;i>8&255,255&c):3===s?n.push(c>>16&255,c>>8&255,255&c):n.push(c>>>24&255,c>>16&255,c>>8&255,255&c);a[i]&&(c+=a[i].length)}for(i=0;i{Object.defineProperty(t,"__esModule",{value:!0});t.ISOAdobeCharset=t.ExpertSubsetCharset=t.ExpertCharset=void 0;t.ISOAdobeCharset=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron"];t.ExpertCharset=[".notdef","space","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"];t.ExpertSubsetCharset=[".notdef","space","dollaroldstyle","dollarsuperior","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","hyphensuperior","colonmonetary","onefitted","rupiah","centoldstyle","figuredash","hypheninferior","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior"]},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.getSerifFonts=t.getNonStdFontMap=t.getGlyphMapForStandardFonts=t.getFontNameToFileMap=void 0;t.getStandardFontName=function getStandardFontName(e){const t=(0,n.normalizeFontName)(e);return i()[t]};t.getSymbolsFonts=t.getSupplementalGlyphMapForCalibri=t.getSupplementalGlyphMapForArialBlack=t.getStdFontMap=void 0;var r=a(8),n=a(18);const i=(0,r.getLookupTableFactory)((function(e){e["Times-Roman"]="Times-Roman";e.Helvetica="Helvetica";e.Courier="Courier";e.Symbol="Symbol";e["Times-Bold"]="Times-Bold";e["Helvetica-Bold"]="Helvetica-Bold";e["Courier-Bold"]="Courier-Bold";e.ZapfDingbats="ZapfDingbats";e["Times-Italic"]="Times-Italic";e["Helvetica-Oblique"]="Helvetica-Oblique";e["Courier-Oblique"]="Courier-Oblique";e["Times-BoldItalic"]="Times-BoldItalic";e["Helvetica-BoldOblique"]="Helvetica-BoldOblique";e["Courier-BoldOblique"]="Courier-BoldOblique";e.ArialNarrow="Helvetica";e["ArialNarrow-Bold"]="Helvetica-Bold";e["ArialNarrow-BoldItalic"]="Helvetica-BoldOblique";e["ArialNarrow-Italic"]="Helvetica-Oblique";e.ArialBlack="Helvetica";e["ArialBlack-Bold"]="Helvetica-Bold";e["ArialBlack-BoldItalic"]="Helvetica-BoldOblique";e["ArialBlack-Italic"]="Helvetica-Oblique";e["Arial-Black"]="Helvetica";e["Arial-Black-Bold"]="Helvetica-Bold";e["Arial-Black-BoldItalic"]="Helvetica-BoldOblique";e["Arial-Black-Italic"]="Helvetica-Oblique";e.Arial="Helvetica";e["Arial-Bold"]="Helvetica-Bold";e["Arial-BoldItalic"]="Helvetica-BoldOblique";e["Arial-Italic"]="Helvetica-Oblique";e["Arial-BoldItalicMT"]="Helvetica-BoldOblique";e["Arial-BoldMT"]="Helvetica-Bold";e["Arial-ItalicMT"]="Helvetica-Oblique";e.ArialMT="Helvetica";e["Courier-BoldItalic"]="Courier-BoldOblique";e["Courier-Italic"]="Courier-Oblique";e.CourierNew="Courier";e["CourierNew-Bold"]="Courier-Bold";e["CourierNew-BoldItalic"]="Courier-BoldOblique";e["CourierNew-Italic"]="Courier-Oblique";e["CourierNewPS-BoldItalicMT"]="Courier-BoldOblique";e["CourierNewPS-BoldMT"]="Courier-Bold";e["CourierNewPS-ItalicMT"]="Courier-Oblique";e.CourierNewPSMT="Courier";e["Helvetica-BoldItalic"]="Helvetica-BoldOblique";e["Helvetica-Italic"]="Helvetica-Oblique";e["Symbol-Bold"]="Symbol";e["Symbol-BoldItalic"]="Symbol";e["Symbol-Italic"]="Symbol";e.TimesNewRoman="Times-Roman";e["TimesNewRoman-Bold"]="Times-Bold";e["TimesNewRoman-BoldItalic"]="Times-BoldItalic";e["TimesNewRoman-Italic"]="Times-Italic";e.TimesNewRomanPS="Times-Roman";e["TimesNewRomanPS-Bold"]="Times-Bold";e["TimesNewRomanPS-BoldItalic"]="Times-BoldItalic";e["TimesNewRomanPS-BoldItalicMT"]="Times-BoldItalic";e["TimesNewRomanPS-BoldMT"]="Times-Bold";e["TimesNewRomanPS-Italic"]="Times-Italic";e["TimesNewRomanPS-ItalicMT"]="Times-Italic";e.TimesNewRomanPSMT="Times-Roman";e["TimesNewRomanPSMT-Bold"]="Times-Bold";e["TimesNewRomanPSMT-BoldItalic"]="Times-BoldItalic";e["TimesNewRomanPSMT-Italic"]="Times-Italic"}));t.getStdFontMap=i;const s=(0,r.getLookupTableFactory)((function(e){e.Courier="FoxitFixed.pfb";e["Courier-Bold"]="FoxitFixedBold.pfb";e["Courier-BoldOblique"]="FoxitFixedBoldItalic.pfb";e["Courier-Oblique"]="FoxitFixedItalic.pfb";e.Helvetica="FoxitSans.pfb";e["Helvetica-Bold"]="FoxitSansBold.pfb";e["Helvetica-BoldOblique"]="FoxitSansBoldItalic.pfb";e["Helvetica-Oblique"]="FoxitSansItalic.pfb";e["Times-Roman"]="FoxitSerif.pfb";e["Times-Bold"]="FoxitSerifBold.pfb";e["Times-BoldItalic"]="FoxitSerifBoldItalic.pfb";e["Times-Italic"]="FoxitSerifItalic.pfb";e.Symbol="FoxitSymbol.pfb";e.ZapfDingbats="FoxitDingbats.pfb";e["LiberationSans-Regular"]="LiberationSans-Regular.ttf";e["LiberationSans-Bold"]="LiberationSans-Bold.ttf";e["LiberationSans-Italic"]="LiberationSans-Italic.ttf";e["LiberationSans-BoldItalic"]="LiberationSans-BoldItalic.ttf"}));t.getFontNameToFileMap=s;const o=(0,r.getLookupTableFactory)((function(e){e.Calibri="Helvetica";e["Calibri-Bold"]="Helvetica-Bold";e["Calibri-BoldItalic"]="Helvetica-BoldOblique";e["Calibri-Italic"]="Helvetica-Oblique";e.CenturyGothic="Helvetica";e["CenturyGothic-Bold"]="Helvetica-Bold";e["CenturyGothic-BoldItalic"]="Helvetica-BoldOblique";e["CenturyGothic-Italic"]="Helvetica-Oblique";e.ComicSansMS="Comic Sans MS";e["ComicSansMS-Bold"]="Comic Sans MS-Bold";e["ComicSansMS-BoldItalic"]="Comic Sans MS-BoldItalic";e["ComicSansMS-Italic"]="Comic Sans MS-Italic";e["ItcSymbol-Bold"]="Helvetica-Bold";e["ItcSymbol-BoldItalic"]="Helvetica-BoldOblique";e["ItcSymbol-Book"]="Helvetica";e["ItcSymbol-BookItalic"]="Helvetica-Oblique";e["ItcSymbol-Medium"]="Helvetica";e["ItcSymbol-MediumItalic"]="Helvetica-Oblique";e.LucidaConsole="Courier";e["LucidaConsole-Bold"]="Courier-Bold";e["LucidaConsole-BoldItalic"]="Courier-BoldOblique";e["LucidaConsole-Italic"]="Courier-Oblique";e["LucidaSans-Demi"]="Helvetica-Bold";e["MS-Gothic"]="MS Gothic";e["MS-Gothic-Bold"]="MS Gothic-Bold";e["MS-Gothic-BoldItalic"]="MS Gothic-BoldItalic";e["MS-Gothic-Italic"]="MS Gothic-Italic";e["MS-Mincho"]="MS Mincho";e["MS-Mincho-Bold"]="MS Mincho-Bold";e["MS-Mincho-BoldItalic"]="MS Mincho-BoldItalic";e["MS-Mincho-Italic"]="MS Mincho-Italic";e["MS-PGothic"]="MS PGothic";e["MS-PGothic-Bold"]="MS PGothic-Bold";e["MS-PGothic-BoldItalic"]="MS PGothic-BoldItalic";e["MS-PGothic-Italic"]="MS PGothic-Italic";e["MS-PMincho"]="MS PMincho";e["MS-PMincho-Bold"]="MS PMincho-Bold";e["MS-PMincho-BoldItalic"]="MS PMincho-BoldItalic";e["MS-PMincho-Italic"]="MS PMincho-Italic";e.NuptialScript="Times-Italic";e.SegoeUISymbol="Helvetica";e.Wingdings="ZapfDingbats";e["Wingdings-Regular"]="ZapfDingbats"}));t.getNonStdFontMap=o;const c=(0,r.getLookupTableFactory)((function(e){e["Adobe Jenson"]=!0;e["Adobe Text"]=!0;e.Albertus=!0;e.Aldus=!0;e.Alexandria=!0;e.Algerian=!0;e["American Typewriter"]=!0;e.Antiqua=!0;e.Apex=!0;e.Arno=!0;e.Aster=!0;e.Aurora=!0;e.Baskerville=!0;e.Bell=!0;e.Bembo=!0;e["Bembo Schoolbook"]=!0;e.Benguiat=!0;e["Berkeley Old Style"]=!0;e["Bernhard Modern"]=!0;e["Berthold City"]=!0;e.Bodoni=!0;e["Bauer Bodoni"]=!0;e["Book Antiqua"]=!0;e.Bookman=!0;e["Bordeaux Roman"]=!0;e["Californian FB"]=!0;e.Calisto=!0;e.Calvert=!0;e.Capitals=!0;e.Cambria=!0;e.Cartier=!0;e.Caslon=!0;e.Catull=!0;e.Centaur=!0;e["Century Old Style"]=!0;e["Century Schoolbook"]=!0;e.Chaparral=!0;e["Charis SIL"]=!0;e.Cheltenham=!0;e["Cholla Slab"]=!0;e.Clarendon=!0;e.Clearface=!0;e.Cochin=!0;e.Colonna=!0;e["Computer Modern"]=!0;e["Concrete Roman"]=!0;e.Constantia=!0;e["Cooper Black"]=!0;e.Corona=!0;e.Ecotype=!0;e.Egyptienne=!0;e.Elephant=!0;e.Excelsior=!0;e.Fairfield=!0;e["FF Scala"]=!0;e.Folkard=!0;e.Footlight=!0;e.FreeSerif=!0;e["Friz Quadrata"]=!0;e.Garamond=!0;e.Gentium=!0;e.Georgia=!0;e.Gloucester=!0;e["Goudy Old Style"]=!0;e["Goudy Schoolbook"]=!0;e["Goudy Pro Font"]=!0;e.Granjon=!0;e["Guardian Egyptian"]=!0;e.Heather=!0;e.Hercules=!0;e["High Tower Text"]=!0;e.Hiroshige=!0;e["Hoefler Text"]=!0;e["Humana Serif"]=!0;e.Imprint=!0;e["Ionic No. 5"]=!0;e.Janson=!0;e.Joanna=!0;e.Korinna=!0;e.Lexicon=!0;e.LiberationSerif=!0;e["Liberation Serif"]=!0;e["Linux Libertine"]=!0;e.Literaturnaya=!0;e.Lucida=!0;e["Lucida Bright"]=!0;e.Melior=!0;e.Memphis=!0;e.Miller=!0;e.Minion=!0;e.Modern=!0;e["Mona Lisa"]=!0;e["Mrs Eaves"]=!0;e["MS Serif"]=!0;e["Museo Slab"]=!0;e["New York"]=!0;e["Nimbus Roman"]=!0;e["NPS Rawlinson Roadway"]=!0;e.NuptialScript=!0;e.Palatino=!0;e.Perpetua=!0;e.Plantin=!0;e["Plantin Schoolbook"]=!0;e.Playbill=!0;e["Poor Richard"]=!0;e["Rawlinson Roadway"]=!0;e.Renault=!0;e.Requiem=!0;e.Rockwell=!0;e.Roman=!0;e["Rotis Serif"]=!0;e.Sabon=!0;e.Scala=!0;e.Seagull=!0;e.Sistina=!0;e.Souvenir=!0;e.STIX=!0;e["Stone Informal"]=!0;e["Stone Serif"]=!0;e.Sylfaen=!0;e.Times=!0;e.Trajan=!0;e["Trinité"]=!0;e["Trump Mediaeval"]=!0;e.Utopia=!0;e["Vale Type"]=!0;e["Bitstream Vera"]=!0;e["Vera Serif"]=!0;e.Versailles=!0;e.Wanted=!0;e.Weiss=!0;e["Wide Latin"]=!0;e.Windsor=!0;e.XITS=!0}));t.getSerifFonts=c;const l=(0,r.getLookupTableFactory)((function(e){e.Dingbats=!0;e.Symbol=!0;e.ZapfDingbats=!0}));t.getSymbolsFonts=l;const h=(0,r.getLookupTableFactory)((function(e){e[2]=10;e[3]=32;e[4]=33;e[5]=34;e[6]=35;e[7]=36;e[8]=37;e[9]=38;e[10]=39;e[11]=40;e[12]=41;e[13]=42;e[14]=43;e[15]=44;e[16]=45;e[17]=46;e[18]=47;e[19]=48;e[20]=49;e[21]=50;e[22]=51;e[23]=52;e[24]=53;e[25]=54;e[26]=55;e[27]=56;e[28]=57;e[29]=58;e[30]=894;e[31]=60;e[32]=61;e[33]=62;e[34]=63;e[35]=64;e[36]=65;e[37]=66;e[38]=67;e[39]=68;e[40]=69;e[41]=70;e[42]=71;e[43]=72;e[44]=73;e[45]=74;e[46]=75;e[47]=76;e[48]=77;e[49]=78;e[50]=79;e[51]=80;e[52]=81;e[53]=82;e[54]=83;e[55]=84;e[56]=85;e[57]=86;e[58]=87;e[59]=88;e[60]=89;e[61]=90;e[62]=91;e[63]=92;e[64]=93;e[65]=94;e[66]=95;e[67]=96;e[68]=97;e[69]=98;e[70]=99;e[71]=100;e[72]=101;e[73]=102;e[74]=103;e[75]=104;e[76]=105;e[77]=106;e[78]=107;e[79]=108;e[80]=109;e[81]=110;e[82]=111;e[83]=112;e[84]=113;e[85]=114;e[86]=115;e[87]=116;e[88]=117;e[89]=118;e[90]=119;e[91]=120;e[92]=121;e[93]=122;e[94]=123;e[95]=124;e[96]=125;e[97]=126;e[98]=196;e[99]=197;e[100]=199;e[101]=201;e[102]=209;e[103]=214;e[104]=220;e[105]=225;e[106]=224;e[107]=226;e[108]=228;e[109]=227;e[110]=229;e[111]=231;e[112]=233;e[113]=232;e[114]=234;e[115]=235;e[116]=237;e[117]=236;e[118]=238;e[119]=239;e[120]=241;e[121]=243;e[122]=242;e[123]=244;e[124]=246;e[125]=245;e[126]=250;e[127]=249;e[128]=251;e[129]=252;e[130]=8224;e[131]=176;e[132]=162;e[133]=163;e[134]=167;e[135]=8226;e[136]=182;e[137]=223;e[138]=174;e[139]=169;e[140]=8482;e[141]=180;e[142]=168;e[143]=8800;e[144]=198;e[145]=216;e[146]=8734;e[147]=177;e[148]=8804;e[149]=8805;e[150]=165;e[151]=181;e[152]=8706;e[153]=8721;e[154]=8719;e[156]=8747;e[157]=170;e[158]=186;e[159]=8486;e[160]=230;e[161]=248;e[162]=191;e[163]=161;e[164]=172;e[165]=8730;e[166]=402;e[167]=8776;e[168]=8710;e[169]=171;e[170]=187;e[171]=8230;e[200]=193;e[203]=205;e[210]=218;e[223]=711;e[224]=321;e[225]=322;e[226]=352;e[227]=353;e[228]=381;e[229]=382;e[233]=221;e[234]=253;e[252]=263;e[253]=268;e[254]=269;e[258]=258;e[260]=260;e[261]=261;e[265]=280;e[266]=281;e[267]=282;e[268]=283;e[269]=313;e[275]=323;e[276]=324;e[278]=328;e[283]=344;e[284]=345;e[285]=346;e[286]=347;e[292]=367;e[295]=377;e[296]=378;e[298]=380;e[305]=963;e[306]=964;e[307]=966;e[308]=8215;e[309]=8252;e[310]=8319;e[311]=8359;e[312]=8592;e[313]=8593;e[337]=9552;e[493]=1039;e[494]=1040;e[705]=1524;e[706]=8362;e[710]=64288;e[711]=64298;e[759]=1617;e[761]=1776;e[763]=1778;e[775]=1652;e[777]=1764;e[778]=1780;e[779]=1781;e[780]=1782;e[782]=771;e[783]=64726;e[786]=8363;e[788]=8532;e[790]=768;e[791]=769;e[792]=768;e[795]=803;e[797]=64336;e[798]=64337;e[799]=64342;e[800]=64343;e[801]=64344;e[802]=64345;e[803]=64362;e[804]=64363;e[805]=64364;e[2424]=7821;e[2425]=7822;e[2426]=7823;e[2427]=7824;e[2428]=7825;e[2429]=7826;e[2430]=7827;e[2433]=7682;e[2678]=8045;e[2679]=8046;e[2830]=1552;e[2838]=686;e[2840]=751;e[2842]=753;e[2843]=754;e[2844]=755;e[2846]=757;e[2856]=767;e[2857]=848;e[2858]=849;e[2862]=853;e[2863]=854;e[2864]=855;e[2865]=861;e[2866]=862;e[2906]=7460;e[2908]=7462;e[2909]=7463;e[2910]=7464;e[2912]=7466;e[2913]=7467;e[2914]=7468;e[2916]=7470;e[2917]=7471;e[2918]=7472;e[2920]=7474;e[2921]=7475;e[2922]=7476;e[2924]=7478;e[2925]=7479;e[2926]=7480;e[2928]=7482;e[2929]=7483;e[2930]=7484;e[2932]=7486;e[2933]=7487;e[2934]=7488;e[2936]=7490;e[2937]=7491;e[2938]=7492;e[2940]=7494;e[2941]=7495;e[2942]=7496;e[2944]=7498;e[2946]=7500;e[2948]=7502;e[2950]=7504;e[2951]=7505;e[2952]=7506;e[2954]=7508;e[2955]=7509;e[2956]=7510;e[2958]=7512;e[2959]=7513;e[2960]=7514;e[2962]=7516;e[2963]=7517;e[2964]=7518;e[2966]=7520;e[2967]=7521;e[2968]=7522;e[2970]=7524;e[2971]=7525;e[2972]=7526;e[2974]=7528;e[2975]=7529;e[2976]=7530;e[2978]=1537;e[2979]=1538;e[2980]=1539;e[2982]=1549;e[2983]=1551;e[2984]=1552;e[2986]=1554;e[2987]=1555;e[2988]=1556;e[2990]=1623;e[2991]=1624;e[2995]=1775;e[2999]=1791;e[3002]=64290;e[3003]=64291;e[3004]=64292;e[3006]=64294;e[3007]=64295;e[3008]=64296;e[3011]=1900;e[3014]=8223;e[3015]=8244;e[3017]=7532;e[3018]=7533;e[3019]=7534;e[3075]=7590;e[3076]=7591;e[3079]=7594;e[3080]=7595;e[3083]=7598;e[3084]=7599;e[3087]=7602;e[3088]=7603;e[3091]=7606;e[3092]=7607;e[3095]=7610;e[3096]=7611;e[3099]=7614;e[3100]=7615;e[3103]=7618;e[3104]=7619;e[3107]=8337;e[3108]=8338;e[3116]=1884;e[3119]=1885;e[3120]=1885;e[3123]=1886;e[3124]=1886;e[3127]=1887;e[3128]=1887;e[3131]=1888;e[3132]=1888;e[3135]=1889;e[3136]=1889;e[3139]=1890;e[3140]=1890;e[3143]=1891;e[3144]=1891;e[3147]=1892;e[3148]=1892;e[3153]=580;e[3154]=581;e[3157]=584;e[3158]=585;e[3161]=588;e[3162]=589;e[3165]=891;e[3166]=892;e[3169]=1274;e[3170]=1275;e[3173]=1278;e[3174]=1279;e[3181]=7622;e[3182]=7623;e[3282]=11799;e[3316]=578;e[3379]=42785;e[3393]=1159;e[3416]=8377}));t.getGlyphMapForStandardFonts=h;const u=(0,r.getLookupTableFactory)((function(e){e[227]=322;e[264]=261;e[291]=346}));t.getSupplementalGlyphMapForArialBlack=u;const d=(0,r.getLookupTableFactory)((function(e){e[1]=32;e[4]=65;e[6]=193;e[17]=66;e[18]=67;e[21]=268;e[24]=68;e[28]=69;e[30]=201;e[32]=282;e[38]=70;e[39]=71;e[44]=72;e[47]=73;e[49]=205;e[58]=74;e[60]=75;e[62]=76;e[68]=77;e[69]=78;e[75]=79;e[87]=80;e[89]=81;e[90]=82;e[92]=344;e[94]=83;e[97]=352;e[100]=84;e[104]=85;e[115]=86;e[116]=87;e[121]=88;e[122]=89;e[124]=221;e[127]=90;e[129]=381;e[258]=97;e[260]=225;e[268]=261;e[271]=98;e[272]=99;e[273]=263;e[275]=269;e[282]=100;e[286]=101;e[288]=233;e[290]=283;e[295]=281;e[296]=102;e[336]=103;e[346]=104;e[349]=105;e[351]=237;e[361]=106;e[364]=107;e[367]=108;e[371]=322;e[373]=109;e[374]=110;e[381]=111;e[383]=243;e[393]=112;e[395]=113;e[396]=114;e[398]=345;e[400]=115;e[401]=347;e[403]=353;e[410]=116;e[437]=117;e[448]=118;e[449]=119;e[454]=120;e[455]=121;e[457]=253;e[460]=122;e[462]=382;e[463]=380;e[853]=44;e[855]=58;e[856]=46;e[876]=47;e[878]=45;e[882]=45;e[894]=40;e[895]=41;e[896]=91;e[897]=93;e[923]=64;e[1004]=48;e[1005]=49;e[1006]=50;e[1007]=51;e[1008]=52;e[1009]=53;e[1010]=54;e[1011]=55;e[1012]=56;e[1013]=57;e[1081]=37;e[1085]=43;e[1086]=45}));t.getSupplementalGlyphMapForCalibri=d},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ToUnicodeMap=t.IdentityToUnicodeMap=void 0;var r=a(2);t.ToUnicodeMap=class ToUnicodeMap{constructor(e=[]){this._map=e}get length(){return this._map.length}forEach(e){for(const t in this._map)e(t,this._map[t].charCodeAt(0))}has(e){return void 0!==this._map[e]}get(e){return this._map[e]}charCodeOf(e){const t=this._map;if(t.length<=65536)return t.indexOf(e);for(const a in t)if(t[a]===e)return 0|a;return-1}amend(e){for(const t in e)this._map[t]=e[t]}};t.IdentityToUnicodeMap=class IdentityToUnicodeMap{constructor(e,t){this.firstChar=e;this.lastChar=t}get length(){return this.lastChar+1-this.firstChar}forEach(e){for(let t=this.firstChar,a=this.lastChar;t<=a;t++)e(t,t)}has(e){return this.firstChar<=e&&e<=this.lastChar}get(e){if(this.firstChar<=e&&e<=this.lastChar)return String.fromCharCode(e)}charCodeOf(e){return Number.isInteger(e)&&e>=this.firstChar&&e<=this.lastChar?e:-1}amend(e){(0,r.unreachable)("Should not call amend()")}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.CFFFont=void 0;var r=a(45),n=a(18),i=a(2);t.CFFFont=class CFFFont{constructor(e,t){this.properties=t;const a=new r.CFFParser(e,t,n.SEAC_ANALYSIS_ENABLED);this.cff=a.parse();this.cff.duplicateFirstGlyph();const s=new r.CFFCompiler(this.cff);this.seacs=this.cff.seacs;try{this.data=s.compile()}catch(a){(0,i.warn)("Failed to compile font "+t.loadedName);this.data=e}this._createBuiltInEncoding()}get numGlyphs(){return this.cff.charStrings.count}getCharset(){return this.cff.charset.charset}getGlyphMapping(){const e=this.cff,t=this.properties,a=e.charset.charset;let r,i;if(t.composite){r=Object.create(null);let n;if(e.isCIDFont)for(i=0;i=0){const r=a[t];r&&(n[e]=r)}}n.length>0&&(this.properties.builtInEncoding=n)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.FontRendererFactory=void 0;var r=a(2),n=a(45),i=a(20),s=a(19),o=a(10);function getUint32(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}function getUint16(e,t){return e[t]<<8|e[t+1]}function getInt16(e,t){return(e[t]<<24|e[t+1]<<16)>>16}function getInt8(e,t){return e[t]<<24>>24}function getFloat214(e,t){return getInt16(e,t)/16384}function getSubroutineBias(e){const t=e.length;let a=32768;t<1240?a=107:t<33900&&(a=1131);return a}function parseCmap(e,t,a){const n=1===getUint16(e,t+2)?getUint32(e,t+8):getUint32(e,t+16),i=getUint16(e,t+n);let s,o,c;if(4===i){getUint16(e,t+n+2);const a=getUint16(e,t+n+6)>>1;o=t+n+14;s=[];for(c=0;c>1;a0;)h.push({flags:i})}for(a=0;a>1;S=!0;break;case 4:c+=i.pop();moveTo(o,c);S=!0;break;case 5:for(;i.length>0;){o+=i.shift();c+=i.shift();lineTo(o,c)}break;case 6:for(;i.length>0;){o+=i.shift();lineTo(o,c);if(0===i.length)break;c+=i.shift();lineTo(o,c)}break;case 7:for(;i.length>0;){c+=i.shift();lineTo(o,c);if(0===i.length)break;o+=i.shift();lineTo(o,c)}break;case 8:for(;i.length>0;){u=o+i.shift();f=c+i.shift();d=u+i.shift();g=f+i.shift();o=d+i.shift();c=g+i.shift();bezierCurveTo(u,f,d,g,o,c)}break;case 10:y=i.pop();w=null;if(a.isCFFCIDFont){const e=a.fdSelect.getFDIndex(n);if(e>=0&&eMath.abs(c-t)?o+=i.shift():c+=i.shift();bezierCurveTo(u,f,d,g,o,c);break;default:throw new r.FormatError(`unknown operator: 12 ${x}`)}break;case 14:if(i.length>=4){const e=i.pop(),r=i.pop();c=i.pop();o=i.pop();t.push({cmd:"save"},{cmd:"translate",args:[o,c]});let n=lookupCmap(a.cmap,String.fromCharCode(a.glyphNameMap[s.StandardEncoding[e]]));compileCharString(a.glyphs[n.glyphId],t,a,n.glyphId);t.push({cmd:"restore"});n=lookupCmap(a.cmap,String.fromCharCode(a.glyphNameMap[s.StandardEncoding[r]]));compileCharString(a.glyphs[n.glyphId],t,a,n.glyphId)}return;case 19:case 20:l+=i.length>>1;h+=l+7>>3;S=!0;break;case 21:c+=i.pop();o+=i.pop();moveTo(o,c);S=!0;break;case 22:o+=i.pop();moveTo(o,c);S=!0;break;case 24:for(;i.length>2;){u=o+i.shift();f=c+i.shift();d=u+i.shift();g=f+i.shift();o=d+i.shift();c=g+i.shift();bezierCurveTo(u,f,d,g,o,c)}o+=i.shift();c+=i.shift();lineTo(o,c);break;case 25:for(;i.length>6;){o+=i.shift();c+=i.shift();lineTo(o,c)}u=o+i.shift();f=c+i.shift();d=u+i.shift();g=f+i.shift();o=d+i.shift();c=g+i.shift();bezierCurveTo(u,f,d,g,o,c);break;case 26:i.length%2&&(o+=i.shift());for(;i.length>0;){u=o;f=c+i.shift();d=u+i.shift();g=f+i.shift();o=d;c=g+i.shift();bezierCurveTo(u,f,d,g,o,c)}break;case 27:i.length%2&&(c+=i.shift());for(;i.length>0;){u=o+i.shift();f=c;d=u+i.shift();g=f+i.shift();o=d+i.shift();c=g;bezierCurveTo(u,f,d,g,o,c)}break;case 28:i.push((e[h]<<24|e[h+1]<<16)>>16);h+=2;break;case 29:y=i.pop()+a.gsubrsBias;w=a.gsubrs[y];w&&parse(w);break;case 30:for(;i.length>0;){u=o;f=c+i.shift();d=u+i.shift();g=f+i.shift();o=d+i.shift();c=g+(1===i.length?i.shift():0);bezierCurveTo(u,f,d,g,o,c);if(0===i.length)break;u=o+i.shift();f=c;d=u+i.shift();g=f+i.shift();c=g+i.shift();o=d+(1===i.length?i.shift():0);bezierCurveTo(u,f,d,g,o,c)}break;case 31:for(;i.length>0;){u=o+i.shift();f=c;d=u+i.shift();g=f+i.shift();c=g+i.shift();o=d+(1===i.length?i.shift():0);bezierCurveTo(u,f,d,g,o,c);if(0===i.length)break;u=o;f=c+i.shift();d=u+i.shift();g=f+i.shift();o=d+i.shift();c=g+(1===i.length?i.shift():0);bezierCurveTo(u,f,d,g,o,c)}break;default:if(x<32)throw new r.FormatError(`unknown operator: ${x}`);if(x<247)i.push(x-139);else if(x<251)i.push(256*(x-247)+e[h++]+108);else if(x<255)i.push(256*-(x-251)-e[h++]-108);else{i.push((e[h]<<24|e[h+1]<<16|e[h+2]<<8|e[h+3])/65536);h+=4}}S&&(i.length=0)}}(e)}const c=[];class CompiledFont{constructor(e){this.constructor===CompiledFont&&(0,r.unreachable)("Cannot initialize CompiledFont.");this.fontMatrix=e;this.compiledGlyphs=Object.create(null);this.compiledCharCodeToGlyphId=Object.create(null)}getPathJs(e){const{charCode:t,glyphId:a}=lookupCmap(this.cmap,e);let r=this.compiledGlyphs[a];if(!r)try{r=this.compileGlyph(this.glyphs[a],a);this.compiledGlyphs[a]=r}catch(e){this.compiledGlyphs[a]=c;void 0===this.compiledCharCodeToGlyphId[t]&&(this.compiledCharCodeToGlyphId[t]=a);throw e}void 0===this.compiledCharCodeToGlyphId[t]&&(this.compiledCharCodeToGlyphId[t]=a);return r}compileGlyph(e,t){if(!e||0===e.length||14===e[0])return c;let a=this.fontMatrix;if(this.isCFFCIDFont){const e=this.fdSelect.getFDIndex(t);if(e>=0&&e2*getUint16(e,t)}const i=[];let s=n(t,0);for(let a=r;a{Object.defineProperty(t,"__esModule",{value:!0});t.getMetrics=t.getFontBasicMetrics=void 0;var r=a(8);const n=(0,r.getLookupTableFactory)((function(e){e.Courier=600;e["Courier-Bold"]=600;e["Courier-BoldOblique"]=600;e["Courier-Oblique"]=600;e.Helvetica=(0,r.getLookupTableFactory)((function(e){e.space=278;e.exclam=278;e.quotedbl=355;e.numbersign=556;e.dollar=556;e.percent=889;e.ampersand=667;e.quoteright=222;e.parenleft=333;e.parenright=333;e.asterisk=389;e.plus=584;e.comma=278;e.hyphen=333;e.period=278;e.slash=278;e.zero=556;e.one=556;e.two=556;e.three=556;e.four=556;e.five=556;e.six=556;e.seven=556;e.eight=556;e.nine=556;e.colon=278;e.semicolon=278;e.less=584;e.equal=584;e.greater=584;e.question=556;e.at=1015;e.A=667;e.B=667;e.C=722;e.D=722;e.E=667;e.F=611;e.G=778;e.H=722;e.I=278;e.J=500;e.K=667;e.L=556;e.M=833;e.N=722;e.O=778;e.P=667;e.Q=778;e.R=722;e.S=667;e.T=611;e.U=722;e.V=667;e.W=944;e.X=667;e.Y=667;e.Z=611;e.bracketleft=278;e.backslash=278;e.bracketright=278;e.asciicircum=469;e.underscore=556;e.quoteleft=222;e.a=556;e.b=556;e.c=500;e.d=556;e.e=556;e.f=278;e.g=556;e.h=556;e.i=222;e.j=222;e.k=500;e.l=222;e.m=833;e.n=556;e.o=556;e.p=556;e.q=556;e.r=333;e.s=500;e.t=278;e.u=556;e.v=500;e.w=722;e.x=500;e.y=500;e.z=500;e.braceleft=334;e.bar=260;e.braceright=334;e.asciitilde=584;e.exclamdown=333;e.cent=556;e.sterling=556;e.fraction=167;e.yen=556;e.florin=556;e.section=556;e.currency=556;e.quotesingle=191;e.quotedblleft=333;e.guillemotleft=556;e.guilsinglleft=333;e.guilsinglright=333;e.fi=500;e.fl=500;e.endash=556;e.dagger=556;e.daggerdbl=556;e.periodcentered=278;e.paragraph=537;e.bullet=350;e.quotesinglbase=222;e.quotedblbase=333;e.quotedblright=333;e.guillemotright=556;e.ellipsis=1e3;e.perthousand=1e3;e.questiondown=611;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=1e3;e.AE=1e3;e.ordfeminine=370;e.Lslash=556;e.Oslash=778;e.OE=1e3;e.ordmasculine=365;e.ae=889;e.dotlessi=278;e.lslash=222;e.oslash=611;e.oe=944;e.germandbls=611;e.Idieresis=278;e.eacute=556;e.abreve=556;e.uhungarumlaut=556;e.ecaron=556;e.Ydieresis=667;e.divide=584;e.Yacute=667;e.Acircumflex=667;e.aacute=556;e.Ucircumflex=722;e.yacute=500;e.scommaaccent=500;e.ecircumflex=556;e.Uring=722;e.Udieresis=722;e.aogonek=556;e.Uacute=722;e.uogonek=556;e.Edieresis=667;e.Dcroat=722;e.commaaccent=250;e.copyright=737;e.Emacron=667;e.ccaron=500;e.aring=556;e.Ncommaaccent=722;e.lacute=222;e.agrave=556;e.Tcommaaccent=611;e.Cacute=722;e.atilde=556;e.Edotaccent=667;e.scaron=500;e.scedilla=500;e.iacute=278;e.lozenge=471;e.Rcaron=722;e.Gcommaaccent=778;e.ucircumflex=556;e.acircumflex=556;e.Amacron=667;e.rcaron=333;e.ccedilla=500;e.Zdotaccent=611;e.Thorn=667;e.Omacron=778;e.Racute=722;e.Sacute=667;e.dcaron=643;e.Umacron=722;e.uring=556;e.threesuperior=333;e.Ograve=778;e.Agrave=667;e.Abreve=667;e.multiply=584;e.uacute=556;e.Tcaron=611;e.partialdiff=476;e.ydieresis=500;e.Nacute=722;e.icircumflex=278;e.Ecircumflex=667;e.adieresis=556;e.edieresis=556;e.cacute=500;e.nacute=556;e.umacron=556;e.Ncaron=722;e.Iacute=278;e.plusminus=584;e.brokenbar=260;e.registered=737;e.Gbreve=778;e.Idotaccent=278;e.summation=600;e.Egrave=667;e.racute=333;e.omacron=556;e.Zacute=611;e.Zcaron=611;e.greaterequal=549;e.Eth=722;e.Ccedilla=722;e.lcommaaccent=222;e.tcaron=317;e.eogonek=556;e.Uogonek=722;e.Aacute=667;e.Adieresis=667;e.egrave=556;e.zacute=500;e.iogonek=222;e.Oacute=778;e.oacute=556;e.amacron=556;e.sacute=500;e.idieresis=278;e.Ocircumflex=778;e.Ugrave=722;e.Delta=612;e.thorn=556;e.twosuperior=333;e.Odieresis=778;e.mu=556;e.igrave=278;e.ohungarumlaut=556;e.Eogonek=667;e.dcroat=556;e.threequarters=834;e.Scedilla=667;e.lcaron=299;e.Kcommaaccent=667;e.Lacute=556;e.trademark=1e3;e.edotaccent=556;e.Igrave=278;e.Imacron=278;e.Lcaron=556;e.onehalf=834;e.lessequal=549;e.ocircumflex=556;e.ntilde=556;e.Uhungarumlaut=722;e.Eacute=667;e.emacron=556;e.gbreve=556;e.onequarter=834;e.Scaron=667;e.Scommaaccent=667;e.Ohungarumlaut=778;e.degree=400;e.ograve=556;e.Ccaron=722;e.ugrave=556;e.radical=453;e.Dcaron=722;e.rcommaaccent=333;e.Ntilde=722;e.otilde=556;e.Rcommaaccent=722;e.Lcommaaccent=556;e.Atilde=667;e.Aogonek=667;e.Aring=667;e.Otilde=778;e.zdotaccent=500;e.Ecaron=667;e.Iogonek=278;e.kcommaaccent=500;e.minus=584;e.Icircumflex=278;e.ncaron=556;e.tcommaaccent=278;e.logicalnot=584;e.odieresis=556;e.udieresis=556;e.notequal=549;e.gcommaaccent=556;e.eth=556;e.zcaron=500;e.ncommaaccent=556;e.onesuperior=333;e.imacron=278;e.Euro=556}));e["Helvetica-Bold"]=(0,r.getLookupTableFactory)((function(e){e.space=278;e.exclam=333;e.quotedbl=474;e.numbersign=556;e.dollar=556;e.percent=889;e.ampersand=722;e.quoteright=278;e.parenleft=333;e.parenright=333;e.asterisk=389;e.plus=584;e.comma=278;e.hyphen=333;e.period=278;e.slash=278;e.zero=556;e.one=556;e.two=556;e.three=556;e.four=556;e.five=556;e.six=556;e.seven=556;e.eight=556;e.nine=556;e.colon=333;e.semicolon=333;e.less=584;e.equal=584;e.greater=584;e.question=611;e.at=975;e.A=722;e.B=722;e.C=722;e.D=722;e.E=667;e.F=611;e.G=778;e.H=722;e.I=278;e.J=556;e.K=722;e.L=611;e.M=833;e.N=722;e.O=778;e.P=667;e.Q=778;e.R=722;e.S=667;e.T=611;e.U=722;e.V=667;e.W=944;e.X=667;e.Y=667;e.Z=611;e.bracketleft=333;e.backslash=278;e.bracketright=333;e.asciicircum=584;e.underscore=556;e.quoteleft=278;e.a=556;e.b=611;e.c=556;e.d=611;e.e=556;e.f=333;e.g=611;e.h=611;e.i=278;e.j=278;e.k=556;e.l=278;e.m=889;e.n=611;e.o=611;e.p=611;e.q=611;e.r=389;e.s=556;e.t=333;e.u=611;e.v=556;e.w=778;e.x=556;e.y=556;e.z=500;e.braceleft=389;e.bar=280;e.braceright=389;e.asciitilde=584;e.exclamdown=333;e.cent=556;e.sterling=556;e.fraction=167;e.yen=556;e.florin=556;e.section=556;e.currency=556;e.quotesingle=238;e.quotedblleft=500;e.guillemotleft=556;e.guilsinglleft=333;e.guilsinglright=333;e.fi=611;e.fl=611;e.endash=556;e.dagger=556;e.daggerdbl=556;e.periodcentered=278;e.paragraph=556;e.bullet=350;e.quotesinglbase=278;e.quotedblbase=500;e.quotedblright=500;e.guillemotright=556;e.ellipsis=1e3;e.perthousand=1e3;e.questiondown=611;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=1e3;e.AE=1e3;e.ordfeminine=370;e.Lslash=611;e.Oslash=778;e.OE=1e3;e.ordmasculine=365;e.ae=889;e.dotlessi=278;e.lslash=278;e.oslash=611;e.oe=944;e.germandbls=611;e.Idieresis=278;e.eacute=556;e.abreve=556;e.uhungarumlaut=611;e.ecaron=556;e.Ydieresis=667;e.divide=584;e.Yacute=667;e.Acircumflex=722;e.aacute=556;e.Ucircumflex=722;e.yacute=556;e.scommaaccent=556;e.ecircumflex=556;e.Uring=722;e.Udieresis=722;e.aogonek=556;e.Uacute=722;e.uogonek=611;e.Edieresis=667;e.Dcroat=722;e.commaaccent=250;e.copyright=737;e.Emacron=667;e.ccaron=556;e.aring=556;e.Ncommaaccent=722;e.lacute=278;e.agrave=556;e.Tcommaaccent=611;e.Cacute=722;e.atilde=556;e.Edotaccent=667;e.scaron=556;e.scedilla=556;e.iacute=278;e.lozenge=494;e.Rcaron=722;e.Gcommaaccent=778;e.ucircumflex=611;e.acircumflex=556;e.Amacron=722;e.rcaron=389;e.ccedilla=556;e.Zdotaccent=611;e.Thorn=667;e.Omacron=778;e.Racute=722;e.Sacute=667;e.dcaron=743;e.Umacron=722;e.uring=611;e.threesuperior=333;e.Ograve=778;e.Agrave=722;e.Abreve=722;e.multiply=584;e.uacute=611;e.Tcaron=611;e.partialdiff=494;e.ydieresis=556;e.Nacute=722;e.icircumflex=278;e.Ecircumflex=667;e.adieresis=556;e.edieresis=556;e.cacute=556;e.nacute=611;e.umacron=611;e.Ncaron=722;e.Iacute=278;e.plusminus=584;e.brokenbar=280;e.registered=737;e.Gbreve=778;e.Idotaccent=278;e.summation=600;e.Egrave=667;e.racute=389;e.omacron=611;e.Zacute=611;e.Zcaron=611;e.greaterequal=549;e.Eth=722;e.Ccedilla=722;e.lcommaaccent=278;e.tcaron=389;e.eogonek=556;e.Uogonek=722;e.Aacute=722;e.Adieresis=722;e.egrave=556;e.zacute=500;e.iogonek=278;e.Oacute=778;e.oacute=611;e.amacron=556;e.sacute=556;e.idieresis=278;e.Ocircumflex=778;e.Ugrave=722;e.Delta=612;e.thorn=611;e.twosuperior=333;e.Odieresis=778;e.mu=611;e.igrave=278;e.ohungarumlaut=611;e.Eogonek=667;e.dcroat=611;e.threequarters=834;e.Scedilla=667;e.lcaron=400;e.Kcommaaccent=722;e.Lacute=611;e.trademark=1e3;e.edotaccent=556;e.Igrave=278;e.Imacron=278;e.Lcaron=611;e.onehalf=834;e.lessequal=549;e.ocircumflex=611;e.ntilde=611;e.Uhungarumlaut=722;e.Eacute=667;e.emacron=556;e.gbreve=611;e.onequarter=834;e.Scaron=667;e.Scommaaccent=667;e.Ohungarumlaut=778;e.degree=400;e.ograve=611;e.Ccaron=722;e.ugrave=611;e.radical=549;e.Dcaron=722;e.rcommaaccent=389;e.Ntilde=722;e.otilde=611;e.Rcommaaccent=722;e.Lcommaaccent=611;e.Atilde=722;e.Aogonek=722;e.Aring=722;e.Otilde=778;e.zdotaccent=500;e.Ecaron=667;e.Iogonek=278;e.kcommaaccent=556;e.minus=584;e.Icircumflex=278;e.ncaron=611;e.tcommaaccent=333;e.logicalnot=584;e.odieresis=611;e.udieresis=611;e.notequal=549;e.gcommaaccent=611;e.eth=611;e.zcaron=500;e.ncommaaccent=611;e.onesuperior=333;e.imacron=278;e.Euro=556}));e["Helvetica-BoldOblique"]=(0,r.getLookupTableFactory)((function(e){e.space=278;e.exclam=333;e.quotedbl=474;e.numbersign=556;e.dollar=556;e.percent=889;e.ampersand=722;e.quoteright=278;e.parenleft=333;e.parenright=333;e.asterisk=389;e.plus=584;e.comma=278;e.hyphen=333;e.period=278;e.slash=278;e.zero=556;e.one=556;e.two=556;e.three=556;e.four=556;e.five=556;e.six=556;e.seven=556;e.eight=556;e.nine=556;e.colon=333;e.semicolon=333;e.less=584;e.equal=584;e.greater=584;e.question=611;e.at=975;e.A=722;e.B=722;e.C=722;e.D=722;e.E=667;e.F=611;e.G=778;e.H=722;e.I=278;e.J=556;e.K=722;e.L=611;e.M=833;e.N=722;e.O=778;e.P=667;e.Q=778;e.R=722;e.S=667;e.T=611;e.U=722;e.V=667;e.W=944;e.X=667;e.Y=667;e.Z=611;e.bracketleft=333;e.backslash=278;e.bracketright=333;e.asciicircum=584;e.underscore=556;e.quoteleft=278;e.a=556;e.b=611;e.c=556;e.d=611;e.e=556;e.f=333;e.g=611;e.h=611;e.i=278;e.j=278;e.k=556;e.l=278;e.m=889;e.n=611;e.o=611;e.p=611;e.q=611;e.r=389;e.s=556;e.t=333;e.u=611;e.v=556;e.w=778;e.x=556;e.y=556;e.z=500;e.braceleft=389;e.bar=280;e.braceright=389;e.asciitilde=584;e.exclamdown=333;e.cent=556;e.sterling=556;e.fraction=167;e.yen=556;e.florin=556;e.section=556;e.currency=556;e.quotesingle=238;e.quotedblleft=500;e.guillemotleft=556;e.guilsinglleft=333;e.guilsinglright=333;e.fi=611;e.fl=611;e.endash=556;e.dagger=556;e.daggerdbl=556;e.periodcentered=278;e.paragraph=556;e.bullet=350;e.quotesinglbase=278;e.quotedblbase=500;e.quotedblright=500;e.guillemotright=556;e.ellipsis=1e3;e.perthousand=1e3;e.questiondown=611;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=1e3;e.AE=1e3;e.ordfeminine=370;e.Lslash=611;e.Oslash=778;e.OE=1e3;e.ordmasculine=365;e.ae=889;e.dotlessi=278;e.lslash=278;e.oslash=611;e.oe=944;e.germandbls=611;e.Idieresis=278;e.eacute=556;e.abreve=556;e.uhungarumlaut=611;e.ecaron=556;e.Ydieresis=667;e.divide=584;e.Yacute=667;e.Acircumflex=722;e.aacute=556;e.Ucircumflex=722;e.yacute=556;e.scommaaccent=556;e.ecircumflex=556;e.Uring=722;e.Udieresis=722;e.aogonek=556;e.Uacute=722;e.uogonek=611;e.Edieresis=667;e.Dcroat=722;e.commaaccent=250;e.copyright=737;e.Emacron=667;e.ccaron=556;e.aring=556;e.Ncommaaccent=722;e.lacute=278;e.agrave=556;e.Tcommaaccent=611;e.Cacute=722;e.atilde=556;e.Edotaccent=667;e.scaron=556;e.scedilla=556;e.iacute=278;e.lozenge=494;e.Rcaron=722;e.Gcommaaccent=778;e.ucircumflex=611;e.acircumflex=556;e.Amacron=722;e.rcaron=389;e.ccedilla=556;e.Zdotaccent=611;e.Thorn=667;e.Omacron=778;e.Racute=722;e.Sacute=667;e.dcaron=743;e.Umacron=722;e.uring=611;e.threesuperior=333;e.Ograve=778;e.Agrave=722;e.Abreve=722;e.multiply=584;e.uacute=611;e.Tcaron=611;e.partialdiff=494;e.ydieresis=556;e.Nacute=722;e.icircumflex=278;e.Ecircumflex=667;e.adieresis=556;e.edieresis=556;e.cacute=556;e.nacute=611;e.umacron=611;e.Ncaron=722;e.Iacute=278;e.plusminus=584;e.brokenbar=280;e.registered=737;e.Gbreve=778;e.Idotaccent=278;e.summation=600;e.Egrave=667;e.racute=389;e.omacron=611;e.Zacute=611;e.Zcaron=611;e.greaterequal=549;e.Eth=722;e.Ccedilla=722;e.lcommaaccent=278;e.tcaron=389;e.eogonek=556;e.Uogonek=722;e.Aacute=722;e.Adieresis=722;e.egrave=556;e.zacute=500;e.iogonek=278;e.Oacute=778;e.oacute=611;e.amacron=556;e.sacute=556;e.idieresis=278;e.Ocircumflex=778;e.Ugrave=722;e.Delta=612;e.thorn=611;e.twosuperior=333;e.Odieresis=778;e.mu=611;e.igrave=278;e.ohungarumlaut=611;e.Eogonek=667;e.dcroat=611;e.threequarters=834;e.Scedilla=667;e.lcaron=400;e.Kcommaaccent=722;e.Lacute=611;e.trademark=1e3;e.edotaccent=556;e.Igrave=278;e.Imacron=278;e.Lcaron=611;e.onehalf=834;e.lessequal=549;e.ocircumflex=611;e.ntilde=611;e.Uhungarumlaut=722;e.Eacute=667;e.emacron=556;e.gbreve=611;e.onequarter=834;e.Scaron=667;e.Scommaaccent=667;e.Ohungarumlaut=778;e.degree=400;e.ograve=611;e.Ccaron=722;e.ugrave=611;e.radical=549;e.Dcaron=722;e.rcommaaccent=389;e.Ntilde=722;e.otilde=611;e.Rcommaaccent=722;e.Lcommaaccent=611;e.Atilde=722;e.Aogonek=722;e.Aring=722;e.Otilde=778;e.zdotaccent=500;e.Ecaron=667;e.Iogonek=278;e.kcommaaccent=556;e.minus=584;e.Icircumflex=278;e.ncaron=611;e.tcommaaccent=333;e.logicalnot=584;e.odieresis=611;e.udieresis=611;e.notequal=549;e.gcommaaccent=611;e.eth=611;e.zcaron=500;e.ncommaaccent=611;e.onesuperior=333;e.imacron=278;e.Euro=556}));e["Helvetica-Oblique"]=(0,r.getLookupTableFactory)((function(e){e.space=278;e.exclam=278;e.quotedbl=355;e.numbersign=556;e.dollar=556;e.percent=889;e.ampersand=667;e.quoteright=222;e.parenleft=333;e.parenright=333;e.asterisk=389;e.plus=584;e.comma=278;e.hyphen=333;e.period=278;e.slash=278;e.zero=556;e.one=556;e.two=556;e.three=556;e.four=556;e.five=556;e.six=556;e.seven=556;e.eight=556;e.nine=556;e.colon=278;e.semicolon=278;e.less=584;e.equal=584;e.greater=584;e.question=556;e.at=1015;e.A=667;e.B=667;e.C=722;e.D=722;e.E=667;e.F=611;e.G=778;e.H=722;e.I=278;e.J=500;e.K=667;e.L=556;e.M=833;e.N=722;e.O=778;e.P=667;e.Q=778;e.R=722;e.S=667;e.T=611;e.U=722;e.V=667;e.W=944;e.X=667;e.Y=667;e.Z=611;e.bracketleft=278;e.backslash=278;e.bracketright=278;e.asciicircum=469;e.underscore=556;e.quoteleft=222;e.a=556;e.b=556;e.c=500;e.d=556;e.e=556;e.f=278;e.g=556;e.h=556;e.i=222;e.j=222;e.k=500;e.l=222;e.m=833;e.n=556;e.o=556;e.p=556;e.q=556;e.r=333;e.s=500;e.t=278;e.u=556;e.v=500;e.w=722;e.x=500;e.y=500;e.z=500;e.braceleft=334;e.bar=260;e.braceright=334;e.asciitilde=584;e.exclamdown=333;e.cent=556;e.sterling=556;e.fraction=167;e.yen=556;e.florin=556;e.section=556;e.currency=556;e.quotesingle=191;e.quotedblleft=333;e.guillemotleft=556;e.guilsinglleft=333;e.guilsinglright=333;e.fi=500;e.fl=500;e.endash=556;e.dagger=556;e.daggerdbl=556;e.periodcentered=278;e.paragraph=537;e.bullet=350;e.quotesinglbase=222;e.quotedblbase=333;e.quotedblright=333;e.guillemotright=556;e.ellipsis=1e3;e.perthousand=1e3;e.questiondown=611;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=1e3;e.AE=1e3;e.ordfeminine=370;e.Lslash=556;e.Oslash=778;e.OE=1e3;e.ordmasculine=365;e.ae=889;e.dotlessi=278;e.lslash=222;e.oslash=611;e.oe=944;e.germandbls=611;e.Idieresis=278;e.eacute=556;e.abreve=556;e.uhungarumlaut=556;e.ecaron=556;e.Ydieresis=667;e.divide=584;e.Yacute=667;e.Acircumflex=667;e.aacute=556;e.Ucircumflex=722;e.yacute=500;e.scommaaccent=500;e.ecircumflex=556;e.Uring=722;e.Udieresis=722;e.aogonek=556;e.Uacute=722;e.uogonek=556;e.Edieresis=667;e.Dcroat=722;e.commaaccent=250;e.copyright=737;e.Emacron=667;e.ccaron=500;e.aring=556;e.Ncommaaccent=722;e.lacute=222;e.agrave=556;e.Tcommaaccent=611;e.Cacute=722;e.atilde=556;e.Edotaccent=667;e.scaron=500;e.scedilla=500;e.iacute=278;e.lozenge=471;e.Rcaron=722;e.Gcommaaccent=778;e.ucircumflex=556;e.acircumflex=556;e.Amacron=667;e.rcaron=333;e.ccedilla=500;e.Zdotaccent=611;e.Thorn=667;e.Omacron=778;e.Racute=722;e.Sacute=667;e.dcaron=643;e.Umacron=722;e.uring=556;e.threesuperior=333;e.Ograve=778;e.Agrave=667;e.Abreve=667;e.multiply=584;e.uacute=556;e.Tcaron=611;e.partialdiff=476;e.ydieresis=500;e.Nacute=722;e.icircumflex=278;e.Ecircumflex=667;e.adieresis=556;e.edieresis=556;e.cacute=500;e.nacute=556;e.umacron=556;e.Ncaron=722;e.Iacute=278;e.plusminus=584;e.brokenbar=260;e.registered=737;e.Gbreve=778;e.Idotaccent=278;e.summation=600;e.Egrave=667;e.racute=333;e.omacron=556;e.Zacute=611;e.Zcaron=611;e.greaterequal=549;e.Eth=722;e.Ccedilla=722;e.lcommaaccent=222;e.tcaron=317;e.eogonek=556;e.Uogonek=722;e.Aacute=667;e.Adieresis=667;e.egrave=556;e.zacute=500;e.iogonek=222;e.Oacute=778;e.oacute=556;e.amacron=556;e.sacute=500;e.idieresis=278;e.Ocircumflex=778;e.Ugrave=722;e.Delta=612;e.thorn=556;e.twosuperior=333;e.Odieresis=778;e.mu=556;e.igrave=278;e.ohungarumlaut=556;e.Eogonek=667;e.dcroat=556;e.threequarters=834;e.Scedilla=667;e.lcaron=299;e.Kcommaaccent=667;e.Lacute=556;e.trademark=1e3;e.edotaccent=556;e.Igrave=278;e.Imacron=278;e.Lcaron=556;e.onehalf=834;e.lessequal=549;e.ocircumflex=556;e.ntilde=556;e.Uhungarumlaut=722;e.Eacute=667;e.emacron=556;e.gbreve=556;e.onequarter=834;e.Scaron=667;e.Scommaaccent=667;e.Ohungarumlaut=778;e.degree=400;e.ograve=556;e.Ccaron=722;e.ugrave=556;e.radical=453;e.Dcaron=722;e.rcommaaccent=333;e.Ntilde=722;e.otilde=556;e.Rcommaaccent=722;e.Lcommaaccent=556;e.Atilde=667;e.Aogonek=667;e.Aring=667;e.Otilde=778;e.zdotaccent=500;e.Ecaron=667;e.Iogonek=278;e.kcommaaccent=500;e.minus=584;e.Icircumflex=278;e.ncaron=556;e.tcommaaccent=278;e.logicalnot=584;e.odieresis=556;e.udieresis=556;e.notequal=549;e.gcommaaccent=556;e.eth=556;e.zcaron=500;e.ncommaaccent=556;e.onesuperior=333;e.imacron=278;e.Euro=556}));e.Symbol=(0,r.getLookupTableFactory)((function(e){e.space=250;e.exclam=333;e.universal=713;e.numbersign=500;e.existential=549;e.percent=833;e.ampersand=778;e.suchthat=439;e.parenleft=333;e.parenright=333;e.asteriskmath=500;e.plus=549;e.comma=250;e.minus=549;e.period=250;e.slash=278;e.zero=500;e.one=500;e.two=500;e.three=500;e.four=500;e.five=500;e.six=500;e.seven=500;e.eight=500;e.nine=500;e.colon=278;e.semicolon=278;e.less=549;e.equal=549;e.greater=549;e.question=444;e.congruent=549;e.Alpha=722;e.Beta=667;e.Chi=722;e.Delta=612;e.Epsilon=611;e.Phi=763;e.Gamma=603;e.Eta=722;e.Iota=333;e.theta1=631;e.Kappa=722;e.Lambda=686;e.Mu=889;e.Nu=722;e.Omicron=722;e.Pi=768;e.Theta=741;e.Rho=556;e.Sigma=592;e.Tau=611;e.Upsilon=690;e.sigma1=439;e.Omega=768;e.Xi=645;e.Psi=795;e.Zeta=611;e.bracketleft=333;e.therefore=863;e.bracketright=333;e.perpendicular=658;e.underscore=500;e.radicalex=500;e.alpha=631;e.beta=549;e.chi=549;e.delta=494;e.epsilon=439;e.phi=521;e.gamma=411;e.eta=603;e.iota=329;e.phi1=603;e.kappa=549;e.lambda=549;e.mu=576;e.nu=521;e.omicron=549;e.pi=549;e.theta=521;e.rho=549;e.sigma=603;e.tau=439;e.upsilon=576;e.omega1=713;e.omega=686;e.xi=493;e.psi=686;e.zeta=494;e.braceleft=480;e.bar=200;e.braceright=480;e.similar=549;e.Euro=750;e.Upsilon1=620;e.minute=247;e.lessequal=549;e.fraction=167;e.infinity=713;e.florin=500;e.club=753;e.diamond=753;e.heart=753;e.spade=753;e.arrowboth=1042;e.arrowleft=987;e.arrowup=603;e.arrowright=987;e.arrowdown=603;e.degree=400;e.plusminus=549;e.second=411;e.greaterequal=549;e.multiply=549;e.proportional=713;e.partialdiff=494;e.bullet=460;e.divide=549;e.notequal=549;e.equivalence=549;e.approxequal=549;e.ellipsis=1e3;e.arrowvertex=603;e.arrowhorizex=1e3;e.carriagereturn=658;e.aleph=823;e.Ifraktur=686;e.Rfraktur=795;e.weierstrass=987;e.circlemultiply=768;e.circleplus=768;e.emptyset=823;e.intersection=768;e.union=768;e.propersuperset=713;e.reflexsuperset=713;e.notsubset=713;e.propersubset=713;e.reflexsubset=713;e.element=713;e.notelement=713;e.angle=768;e.gradient=713;e.registerserif=790;e.copyrightserif=790;e.trademarkserif=890;e.product=823;e.radical=549;e.dotmath=250;e.logicalnot=713;e.logicaland=603;e.logicalor=603;e.arrowdblboth=1042;e.arrowdblleft=987;e.arrowdblup=603;e.arrowdblright=987;e.arrowdbldown=603;e.lozenge=494;e.angleleft=329;e.registersans=790;e.copyrightsans=790;e.trademarksans=786;e.summation=713;e.parenlefttp=384;e.parenleftex=384;e.parenleftbt=384;e.bracketlefttp=384;e.bracketleftex=384;e.bracketleftbt=384;e.bracelefttp=494;e.braceleftmid=494;e.braceleftbt=494;e.braceex=494;e.angleright=329;e.integral=274;e.integraltp=686;e.integralex=686;e.integralbt=686;e.parenrighttp=384;e.parenrightex=384;e.parenrightbt=384;e.bracketrighttp=384;e.bracketrightex=384;e.bracketrightbt=384;e.bracerighttp=494;e.bracerightmid=494;e.bracerightbt=494;e.apple=790}));e["Times-Roman"]=(0,r.getLookupTableFactory)((function(e){e.space=250;e.exclam=333;e.quotedbl=408;e.numbersign=500;e.dollar=500;e.percent=833;e.ampersand=778;e.quoteright=333;e.parenleft=333;e.parenright=333;e.asterisk=500;e.plus=564;e.comma=250;e.hyphen=333;e.period=250;e.slash=278;e.zero=500;e.one=500;e.two=500;e.three=500;e.four=500;e.five=500;e.six=500;e.seven=500;e.eight=500;e.nine=500;e.colon=278;e.semicolon=278;e.less=564;e.equal=564;e.greater=564;e.question=444;e.at=921;e.A=722;e.B=667;e.C=667;e.D=722;e.E=611;e.F=556;e.G=722;e.H=722;e.I=333;e.J=389;e.K=722;e.L=611;e.M=889;e.N=722;e.O=722;e.P=556;e.Q=722;e.R=667;e.S=556;e.T=611;e.U=722;e.V=722;e.W=944;e.X=722;e.Y=722;e.Z=611;e.bracketleft=333;e.backslash=278;e.bracketright=333;e.asciicircum=469;e.underscore=500;e.quoteleft=333;e.a=444;e.b=500;e.c=444;e.d=500;e.e=444;e.f=333;e.g=500;e.h=500;e.i=278;e.j=278;e.k=500;e.l=278;e.m=778;e.n=500;e.o=500;e.p=500;e.q=500;e.r=333;e.s=389;e.t=278;e.u=500;e.v=500;e.w=722;e.x=500;e.y=500;e.z=444;e.braceleft=480;e.bar=200;e.braceright=480;e.asciitilde=541;e.exclamdown=333;e.cent=500;e.sterling=500;e.fraction=167;e.yen=500;e.florin=500;e.section=500;e.currency=500;e.quotesingle=180;e.quotedblleft=444;e.guillemotleft=500;e.guilsinglleft=333;e.guilsinglright=333;e.fi=556;e.fl=556;e.endash=500;e.dagger=500;e.daggerdbl=500;e.periodcentered=250;e.paragraph=453;e.bullet=350;e.quotesinglbase=333;e.quotedblbase=444;e.quotedblright=444;e.guillemotright=500;e.ellipsis=1e3;e.perthousand=1e3;e.questiondown=444;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=1e3;e.AE=889;e.ordfeminine=276;e.Lslash=611;e.Oslash=722;e.OE=889;e.ordmasculine=310;e.ae=667;e.dotlessi=278;e.lslash=278;e.oslash=500;e.oe=722;e.germandbls=500;e.Idieresis=333;e.eacute=444;e.abreve=444;e.uhungarumlaut=500;e.ecaron=444;e.Ydieresis=722;e.divide=564;e.Yacute=722;e.Acircumflex=722;e.aacute=444;e.Ucircumflex=722;e.yacute=500;e.scommaaccent=389;e.ecircumflex=444;e.Uring=722;e.Udieresis=722;e.aogonek=444;e.Uacute=722;e.uogonek=500;e.Edieresis=611;e.Dcroat=722;e.commaaccent=250;e.copyright=760;e.Emacron=611;e.ccaron=444;e.aring=444;e.Ncommaaccent=722;e.lacute=278;e.agrave=444;e.Tcommaaccent=611;e.Cacute=667;e.atilde=444;e.Edotaccent=611;e.scaron=389;e.scedilla=389;e.iacute=278;e.lozenge=471;e.Rcaron=667;e.Gcommaaccent=722;e.ucircumflex=500;e.acircumflex=444;e.Amacron=722;e.rcaron=333;e.ccedilla=444;e.Zdotaccent=611;e.Thorn=556;e.Omacron=722;e.Racute=667;e.Sacute=556;e.dcaron=588;e.Umacron=722;e.uring=500;e.threesuperior=300;e.Ograve=722;e.Agrave=722;e.Abreve=722;e.multiply=564;e.uacute=500;e.Tcaron=611;e.partialdiff=476;e.ydieresis=500;e.Nacute=722;e.icircumflex=278;e.Ecircumflex=611;e.adieresis=444;e.edieresis=444;e.cacute=444;e.nacute=500;e.umacron=500;e.Ncaron=722;e.Iacute=333;e.plusminus=564;e.brokenbar=200;e.registered=760;e.Gbreve=722;e.Idotaccent=333;e.summation=600;e.Egrave=611;e.racute=333;e.omacron=500;e.Zacute=611;e.Zcaron=611;e.greaterequal=549;e.Eth=722;e.Ccedilla=667;e.lcommaaccent=278;e.tcaron=326;e.eogonek=444;e.Uogonek=722;e.Aacute=722;e.Adieresis=722;e.egrave=444;e.zacute=444;e.iogonek=278;e.Oacute=722;e.oacute=500;e.amacron=444;e.sacute=389;e.idieresis=278;e.Ocircumflex=722;e.Ugrave=722;e.Delta=612;e.thorn=500;e.twosuperior=300;e.Odieresis=722;e.mu=500;e.igrave=278;e.ohungarumlaut=500;e.Eogonek=611;e.dcroat=500;e.threequarters=750;e.Scedilla=556;e.lcaron=344;e.Kcommaaccent=722;e.Lacute=611;e.trademark=980;e.edotaccent=444;e.Igrave=333;e.Imacron=333;e.Lcaron=611;e.onehalf=750;e.lessequal=549;e.ocircumflex=500;e.ntilde=500;e.Uhungarumlaut=722;e.Eacute=611;e.emacron=444;e.gbreve=500;e.onequarter=750;e.Scaron=556;e.Scommaaccent=556;e.Ohungarumlaut=722;e.degree=400;e.ograve=500;e.Ccaron=667;e.ugrave=500;e.radical=453;e.Dcaron=722;e.rcommaaccent=333;e.Ntilde=722;e.otilde=500;e.Rcommaaccent=667;e.Lcommaaccent=611;e.Atilde=722;e.Aogonek=722;e.Aring=722;e.Otilde=722;e.zdotaccent=444;e.Ecaron=611;e.Iogonek=333;e.kcommaaccent=500;e.minus=564;e.Icircumflex=333;e.ncaron=500;e.tcommaaccent=278;e.logicalnot=564;e.odieresis=500;e.udieresis=500;e.notequal=549;e.gcommaaccent=500;e.eth=500;e.zcaron=444;e.ncommaaccent=500;e.onesuperior=300;e.imacron=278;e.Euro=500}));e["Times-Bold"]=(0,r.getLookupTableFactory)((function(e){e.space=250;e.exclam=333;e.quotedbl=555;e.numbersign=500;e.dollar=500;e.percent=1e3;e.ampersand=833;e.quoteright=333;e.parenleft=333;e.parenright=333;e.asterisk=500;e.plus=570;e.comma=250;e.hyphen=333;e.period=250;e.slash=278;e.zero=500;e.one=500;e.two=500;e.three=500;e.four=500;e.five=500;e.six=500;e.seven=500;e.eight=500;e.nine=500;e.colon=333;e.semicolon=333;e.less=570;e.equal=570;e.greater=570;e.question=500;e.at=930;e.A=722;e.B=667;e.C=722;e.D=722;e.E=667;e.F=611;e.G=778;e.H=778;e.I=389;e.J=500;e.K=778;e.L=667;e.M=944;e.N=722;e.O=778;e.P=611;e.Q=778;e.R=722;e.S=556;e.T=667;e.U=722;e.V=722;e.W=1e3;e.X=722;e.Y=722;e.Z=667;e.bracketleft=333;e.backslash=278;e.bracketright=333;e.asciicircum=581;e.underscore=500;e.quoteleft=333;e.a=500;e.b=556;e.c=444;e.d=556;e.e=444;e.f=333;e.g=500;e.h=556;e.i=278;e.j=333;e.k=556;e.l=278;e.m=833;e.n=556;e.o=500;e.p=556;e.q=556;e.r=444;e.s=389;e.t=333;e.u=556;e.v=500;e.w=722;e.x=500;e.y=500;e.z=444;e.braceleft=394;e.bar=220;e.braceright=394;e.asciitilde=520;e.exclamdown=333;e.cent=500;e.sterling=500;e.fraction=167;e.yen=500;e.florin=500;e.section=500;e.currency=500;e.quotesingle=278;e.quotedblleft=500;e.guillemotleft=500;e.guilsinglleft=333;e.guilsinglright=333;e.fi=556;e.fl=556;e.endash=500;e.dagger=500;e.daggerdbl=500;e.periodcentered=250;e.paragraph=540;e.bullet=350;e.quotesinglbase=333;e.quotedblbase=500;e.quotedblright=500;e.guillemotright=500;e.ellipsis=1e3;e.perthousand=1e3;e.questiondown=500;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=1e3;e.AE=1e3;e.ordfeminine=300;e.Lslash=667;e.Oslash=778;e.OE=1e3;e.ordmasculine=330;e.ae=722;e.dotlessi=278;e.lslash=278;e.oslash=500;e.oe=722;e.germandbls=556;e.Idieresis=389;e.eacute=444;e.abreve=500;e.uhungarumlaut=556;e.ecaron=444;e.Ydieresis=722;e.divide=570;e.Yacute=722;e.Acircumflex=722;e.aacute=500;e.Ucircumflex=722;e.yacute=500;e.scommaaccent=389;e.ecircumflex=444;e.Uring=722;e.Udieresis=722;e.aogonek=500;e.Uacute=722;e.uogonek=556;e.Edieresis=667;e.Dcroat=722;e.commaaccent=250;e.copyright=747;e.Emacron=667;e.ccaron=444;e.aring=500;e.Ncommaaccent=722;e.lacute=278;e.agrave=500;e.Tcommaaccent=667;e.Cacute=722;e.atilde=500;e.Edotaccent=667;e.scaron=389;e.scedilla=389;e.iacute=278;e.lozenge=494;e.Rcaron=722;e.Gcommaaccent=778;e.ucircumflex=556;e.acircumflex=500;e.Amacron=722;e.rcaron=444;e.ccedilla=444;e.Zdotaccent=667;e.Thorn=611;e.Omacron=778;e.Racute=722;e.Sacute=556;e.dcaron=672;e.Umacron=722;e.uring=556;e.threesuperior=300;e.Ograve=778;e.Agrave=722;e.Abreve=722;e.multiply=570;e.uacute=556;e.Tcaron=667;e.partialdiff=494;e.ydieresis=500;e.Nacute=722;e.icircumflex=278;e.Ecircumflex=667;e.adieresis=500;e.edieresis=444;e.cacute=444;e.nacute=556;e.umacron=556;e.Ncaron=722;e.Iacute=389;e.plusminus=570;e.brokenbar=220;e.registered=747;e.Gbreve=778;e.Idotaccent=389;e.summation=600;e.Egrave=667;e.racute=444;e.omacron=500;e.Zacute=667;e.Zcaron=667;e.greaterequal=549;e.Eth=722;e.Ccedilla=722;e.lcommaaccent=278;e.tcaron=416;e.eogonek=444;e.Uogonek=722;e.Aacute=722;e.Adieresis=722;e.egrave=444;e.zacute=444;e.iogonek=278;e.Oacute=778;e.oacute=500;e.amacron=500;e.sacute=389;e.idieresis=278;e.Ocircumflex=778;e.Ugrave=722;e.Delta=612;e.thorn=556;e.twosuperior=300;e.Odieresis=778;e.mu=556;e.igrave=278;e.ohungarumlaut=500;e.Eogonek=667;e.dcroat=556;e.threequarters=750;e.Scedilla=556;e.lcaron=394;e.Kcommaaccent=778;e.Lacute=667;e.trademark=1e3;e.edotaccent=444;e.Igrave=389;e.Imacron=389;e.Lcaron=667;e.onehalf=750;e.lessequal=549;e.ocircumflex=500;e.ntilde=556;e.Uhungarumlaut=722;e.Eacute=667;e.emacron=444;e.gbreve=500;e.onequarter=750;e.Scaron=556;e.Scommaaccent=556;e.Ohungarumlaut=778;e.degree=400;e.ograve=500;e.Ccaron=722;e.ugrave=556;e.radical=549;e.Dcaron=722;e.rcommaaccent=444;e.Ntilde=722;e.otilde=500;e.Rcommaaccent=722;e.Lcommaaccent=667;e.Atilde=722;e.Aogonek=722;e.Aring=722;e.Otilde=778;e.zdotaccent=444;e.Ecaron=667;e.Iogonek=389;e.kcommaaccent=556;e.minus=570;e.Icircumflex=389;e.ncaron=556;e.tcommaaccent=333;e.logicalnot=570;e.odieresis=500;e.udieresis=556;e.notequal=549;e.gcommaaccent=500;e.eth=500;e.zcaron=444;e.ncommaaccent=556;e.onesuperior=300;e.imacron=278;e.Euro=500}));e["Times-BoldItalic"]=(0,r.getLookupTableFactory)((function(e){e.space=250;e.exclam=389;e.quotedbl=555;e.numbersign=500;e.dollar=500;e.percent=833;e.ampersand=778;e.quoteright=333;e.parenleft=333;e.parenright=333;e.asterisk=500;e.plus=570;e.comma=250;e.hyphen=333;e.period=250;e.slash=278;e.zero=500;e.one=500;e.two=500;e.three=500;e.four=500;e.five=500;e.six=500;e.seven=500;e.eight=500;e.nine=500;e.colon=333;e.semicolon=333;e.less=570;e.equal=570;e.greater=570;e.question=500;e.at=832;e.A=667;e.B=667;e.C=667;e.D=722;e.E=667;e.F=667;e.G=722;e.H=778;e.I=389;e.J=500;e.K=667;e.L=611;e.M=889;e.N=722;e.O=722;e.P=611;e.Q=722;e.R=667;e.S=556;e.T=611;e.U=722;e.V=667;e.W=889;e.X=667;e.Y=611;e.Z=611;e.bracketleft=333;e.backslash=278;e.bracketright=333;e.asciicircum=570;e.underscore=500;e.quoteleft=333;e.a=500;e.b=500;e.c=444;e.d=500;e.e=444;e.f=333;e.g=500;e.h=556;e.i=278;e.j=278;e.k=500;e.l=278;e.m=778;e.n=556;e.o=500;e.p=500;e.q=500;e.r=389;e.s=389;e.t=278;e.u=556;e.v=444;e.w=667;e.x=500;e.y=444;e.z=389;e.braceleft=348;e.bar=220;e.braceright=348;e.asciitilde=570;e.exclamdown=389;e.cent=500;e.sterling=500;e.fraction=167;e.yen=500;e.florin=500;e.section=500;e.currency=500;e.quotesingle=278;e.quotedblleft=500;e.guillemotleft=500;e.guilsinglleft=333;e.guilsinglright=333;e.fi=556;e.fl=556;e.endash=500;e.dagger=500;e.daggerdbl=500;e.periodcentered=250;e.paragraph=500;e.bullet=350;e.quotesinglbase=333;e.quotedblbase=500;e.quotedblright=500;e.guillemotright=500;e.ellipsis=1e3;e.perthousand=1e3;e.questiondown=500;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=1e3;e.AE=944;e.ordfeminine=266;e.Lslash=611;e.Oslash=722;e.OE=944;e.ordmasculine=300;e.ae=722;e.dotlessi=278;e.lslash=278;e.oslash=500;e.oe=722;e.germandbls=500;e.Idieresis=389;e.eacute=444;e.abreve=500;e.uhungarumlaut=556;e.ecaron=444;e.Ydieresis=611;e.divide=570;e.Yacute=611;e.Acircumflex=667;e.aacute=500;e.Ucircumflex=722;e.yacute=444;e.scommaaccent=389;e.ecircumflex=444;e.Uring=722;e.Udieresis=722;e.aogonek=500;e.Uacute=722;e.uogonek=556;e.Edieresis=667;e.Dcroat=722;e.commaaccent=250;e.copyright=747;e.Emacron=667;e.ccaron=444;e.aring=500;e.Ncommaaccent=722;e.lacute=278;e.agrave=500;e.Tcommaaccent=611;e.Cacute=667;e.atilde=500;e.Edotaccent=667;e.scaron=389;e.scedilla=389;e.iacute=278;e.lozenge=494;e.Rcaron=667;e.Gcommaaccent=722;e.ucircumflex=556;e.acircumflex=500;e.Amacron=667;e.rcaron=389;e.ccedilla=444;e.Zdotaccent=611;e.Thorn=611;e.Omacron=722;e.Racute=667;e.Sacute=556;e.dcaron=608;e.Umacron=722;e.uring=556;e.threesuperior=300;e.Ograve=722;e.Agrave=667;e.Abreve=667;e.multiply=570;e.uacute=556;e.Tcaron=611;e.partialdiff=494;e.ydieresis=444;e.Nacute=722;e.icircumflex=278;e.Ecircumflex=667;e.adieresis=500;e.edieresis=444;e.cacute=444;e.nacute=556;e.umacron=556;e.Ncaron=722;e.Iacute=389;e.plusminus=570;e.brokenbar=220;e.registered=747;e.Gbreve=722;e.Idotaccent=389;e.summation=600;e.Egrave=667;e.racute=389;e.omacron=500;e.Zacute=611;e.Zcaron=611;e.greaterequal=549;e.Eth=722;e.Ccedilla=667;e.lcommaaccent=278;e.tcaron=366;e.eogonek=444;e.Uogonek=722;e.Aacute=667;e.Adieresis=667;e.egrave=444;e.zacute=389;e.iogonek=278;e.Oacute=722;e.oacute=500;e.amacron=500;e.sacute=389;e.idieresis=278;e.Ocircumflex=722;e.Ugrave=722;e.Delta=612;e.thorn=500;e.twosuperior=300;e.Odieresis=722;e.mu=576;e.igrave=278;e.ohungarumlaut=500;e.Eogonek=667;e.dcroat=500;e.threequarters=750;e.Scedilla=556;e.lcaron=382;e.Kcommaaccent=667;e.Lacute=611;e.trademark=1e3;e.edotaccent=444;e.Igrave=389;e.Imacron=389;e.Lcaron=611;e.onehalf=750;e.lessequal=549;e.ocircumflex=500;e.ntilde=556;e.Uhungarumlaut=722;e.Eacute=667;e.emacron=444;e.gbreve=500;e.onequarter=750;e.Scaron=556;e.Scommaaccent=556;e.Ohungarumlaut=722;e.degree=400;e.ograve=500;e.Ccaron=667;e.ugrave=556;e.radical=549;e.Dcaron=722;e.rcommaaccent=389;e.Ntilde=722;e.otilde=500;e.Rcommaaccent=667;e.Lcommaaccent=611;e.Atilde=667;e.Aogonek=667;e.Aring=667;e.Otilde=722;e.zdotaccent=389;e.Ecaron=667;e.Iogonek=389;e.kcommaaccent=500;e.minus=606;e.Icircumflex=389;e.ncaron=556;e.tcommaaccent=278;e.logicalnot=606;e.odieresis=500;e.udieresis=556;e.notequal=549;e.gcommaaccent=500;e.eth=500;e.zcaron=389;e.ncommaaccent=556;e.onesuperior=300;e.imacron=278;e.Euro=500}));e["Times-Italic"]=(0,r.getLookupTableFactory)((function(e){e.space=250;e.exclam=333;e.quotedbl=420;e.numbersign=500;e.dollar=500;e.percent=833;e.ampersand=778;e.quoteright=333;e.parenleft=333;e.parenright=333;e.asterisk=500;e.plus=675;e.comma=250;e.hyphen=333;e.period=250;e.slash=278;e.zero=500;e.one=500;e.two=500;e.three=500;e.four=500;e.five=500;e.six=500;e.seven=500;e.eight=500;e.nine=500;e.colon=333;e.semicolon=333;e.less=675;e.equal=675;e.greater=675;e.question=500;e.at=920;e.A=611;e.B=611;e.C=667;e.D=722;e.E=611;e.F=611;e.G=722;e.H=722;e.I=333;e.J=444;e.K=667;e.L=556;e.M=833;e.N=667;e.O=722;e.P=611;e.Q=722;e.R=611;e.S=500;e.T=556;e.U=722;e.V=611;e.W=833;e.X=611;e.Y=556;e.Z=556;e.bracketleft=389;e.backslash=278;e.bracketright=389;e.asciicircum=422;e.underscore=500;e.quoteleft=333;e.a=500;e.b=500;e.c=444;e.d=500;e.e=444;e.f=278;e.g=500;e.h=500;e.i=278;e.j=278;e.k=444;e.l=278;e.m=722;e.n=500;e.o=500;e.p=500;e.q=500;e.r=389;e.s=389;e.t=278;e.u=500;e.v=444;e.w=667;e.x=444;e.y=444;e.z=389;e.braceleft=400;e.bar=275;e.braceright=400;e.asciitilde=541;e.exclamdown=389;e.cent=500;e.sterling=500;e.fraction=167;e.yen=500;e.florin=500;e.section=500;e.currency=500;e.quotesingle=214;e.quotedblleft=556;e.guillemotleft=500;e.guilsinglleft=333;e.guilsinglright=333;e.fi=500;e.fl=500;e.endash=500;e.dagger=500;e.daggerdbl=500;e.periodcentered=250;e.paragraph=523;e.bullet=350;e.quotesinglbase=333;e.quotedblbase=556;e.quotedblright=556;e.guillemotright=500;e.ellipsis=889;e.perthousand=1e3;e.questiondown=500;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=889;e.AE=889;e.ordfeminine=276;e.Lslash=556;e.Oslash=722;e.OE=944;e.ordmasculine=310;e.ae=667;e.dotlessi=278;e.lslash=278;e.oslash=500;e.oe=667;e.germandbls=500;e.Idieresis=333;e.eacute=444;e.abreve=500;e.uhungarumlaut=500;e.ecaron=444;e.Ydieresis=556;e.divide=675;e.Yacute=556;e.Acircumflex=611;e.aacute=500;e.Ucircumflex=722;e.yacute=444;e.scommaaccent=389;e.ecircumflex=444;e.Uring=722;e.Udieresis=722;e.aogonek=500;e.Uacute=722;e.uogonek=500;e.Edieresis=611;e.Dcroat=722;e.commaaccent=250;e.copyright=760;e.Emacron=611;e.ccaron=444;e.aring=500;e.Ncommaaccent=667;e.lacute=278;e.agrave=500;e.Tcommaaccent=556;e.Cacute=667;e.atilde=500;e.Edotaccent=611;e.scaron=389;e.scedilla=389;e.iacute=278;e.lozenge=471;e.Rcaron=611;e.Gcommaaccent=722;e.ucircumflex=500;e.acircumflex=500;e.Amacron=611;e.rcaron=389;e.ccedilla=444;e.Zdotaccent=556;e.Thorn=611;e.Omacron=722;e.Racute=611;e.Sacute=500;e.dcaron=544;e.Umacron=722;e.uring=500;e.threesuperior=300;e.Ograve=722;e.Agrave=611;e.Abreve=611;e.multiply=675;e.uacute=500;e.Tcaron=556;e.partialdiff=476;e.ydieresis=444;e.Nacute=667;e.icircumflex=278;e.Ecircumflex=611;e.adieresis=500;e.edieresis=444;e.cacute=444;e.nacute=500;e.umacron=500;e.Ncaron=667;e.Iacute=333;e.plusminus=675;e.brokenbar=275;e.registered=760;e.Gbreve=722;e.Idotaccent=333;e.summation=600;e.Egrave=611;e.racute=389;e.omacron=500;e.Zacute=556;e.Zcaron=556;e.greaterequal=549;e.Eth=722;e.Ccedilla=667;e.lcommaaccent=278;e.tcaron=300;e.eogonek=444;e.Uogonek=722;e.Aacute=611;e.Adieresis=611;e.egrave=444;e.zacute=389;e.iogonek=278;e.Oacute=722;e.oacute=500;e.amacron=500;e.sacute=389;e.idieresis=278;e.Ocircumflex=722;e.Ugrave=722;e.Delta=612;e.thorn=500;e.twosuperior=300;e.Odieresis=722;e.mu=500;e.igrave=278;e.ohungarumlaut=500;e.Eogonek=611;e.dcroat=500;e.threequarters=750;e.Scedilla=500;e.lcaron=300;e.Kcommaaccent=667;e.Lacute=556;e.trademark=980;e.edotaccent=444;e.Igrave=333;e.Imacron=333;e.Lcaron=611;e.onehalf=750;e.lessequal=549;e.ocircumflex=500;e.ntilde=500;e.Uhungarumlaut=722;e.Eacute=611;e.emacron=444;e.gbreve=500;e.onequarter=750;e.Scaron=500;e.Scommaaccent=500;e.Ohungarumlaut=722;e.degree=400;e.ograve=500;e.Ccaron=667;e.ugrave=500;e.radical=453;e.Dcaron=722;e.rcommaaccent=389;e.Ntilde=667;e.otilde=500;e.Rcommaaccent=611;e.Lcommaaccent=556;e.Atilde=611;e.Aogonek=611;e.Aring=611;e.Otilde=722;e.zdotaccent=389;e.Ecaron=611;e.Iogonek=333;e.kcommaaccent=444;e.minus=675;e.Icircumflex=333;e.ncaron=500;e.tcommaaccent=278;e.logicalnot=675;e.odieresis=500;e.udieresis=500;e.notequal=549;e.gcommaaccent=500;e.eth=500;e.zcaron=389;e.ncommaaccent=500;e.onesuperior=300;e.imacron=278;e.Euro=500}));e.ZapfDingbats=(0,r.getLookupTableFactory)((function(e){e.space=278;e.a1=974;e.a2=961;e.a202=974;e.a3=980;e.a4=719;e.a5=789;e.a119=790;e.a118=791;e.a117=690;e.a11=960;e.a12=939;e.a13=549;e.a14=855;e.a15=911;e.a16=933;e.a105=911;e.a17=945;e.a18=974;e.a19=755;e.a20=846;e.a21=762;e.a22=761;e.a23=571;e.a24=677;e.a25=763;e.a26=760;e.a27=759;e.a28=754;e.a6=494;e.a7=552;e.a8=537;e.a9=577;e.a10=692;e.a29=786;e.a30=788;e.a31=788;e.a32=790;e.a33=793;e.a34=794;e.a35=816;e.a36=823;e.a37=789;e.a38=841;e.a39=823;e.a40=833;e.a41=816;e.a42=831;e.a43=923;e.a44=744;e.a45=723;e.a46=749;e.a47=790;e.a48=792;e.a49=695;e.a50=776;e.a51=768;e.a52=792;e.a53=759;e.a54=707;e.a55=708;e.a56=682;e.a57=701;e.a58=826;e.a59=815;e.a60=789;e.a61=789;e.a62=707;e.a63=687;e.a64=696;e.a65=689;e.a66=786;e.a67=787;e.a68=713;e.a69=791;e.a70=785;e.a71=791;e.a72=873;e.a73=761;e.a74=762;e.a203=762;e.a75=759;e.a204=759;e.a76=892;e.a77=892;e.a78=788;e.a79=784;e.a81=438;e.a82=138;e.a83=277;e.a84=415;e.a97=392;e.a98=392;e.a99=668;e.a100=668;e.a89=390;e.a90=390;e.a93=317;e.a94=317;e.a91=276;e.a92=276;e.a205=509;e.a85=509;e.a206=410;e.a86=410;e.a87=234;e.a88=234;e.a95=334;e.a96=334;e.a101=732;e.a102=544;e.a103=544;e.a104=910;e.a106=667;e.a107=760;e.a108=760;e.a112=776;e.a111=595;e.a110=694;e.a109=626;e.a120=788;e.a121=788;e.a122=788;e.a123=788;e.a124=788;e.a125=788;e.a126=788;e.a127=788;e.a128=788;e.a129=788;e.a130=788;e.a131=788;e.a132=788;e.a133=788;e.a134=788;e.a135=788;e.a136=788;e.a137=788;e.a138=788;e.a139=788;e.a140=788;e.a141=788;e.a142=788;e.a143=788;e.a144=788;e.a145=788;e.a146=788;e.a147=788;e.a148=788;e.a149=788;e.a150=788;e.a151=788;e.a152=788;e.a153=788;e.a154=788;e.a155=788;e.a156=788;e.a157=788;e.a158=788;e.a159=788;e.a160=894;e.a161=838;e.a163=1016;e.a164=458;e.a196=748;e.a165=924;e.a192=748;e.a166=918;e.a167=927;e.a168=928;e.a169=928;e.a170=834;e.a171=873;e.a172=828;e.a173=924;e.a162=924;e.a174=917;e.a175=930;e.a176=931;e.a177=463;e.a178=883;e.a179=836;e.a193=836;e.a180=867;e.a199=867;e.a181=696;e.a200=696;e.a182=874;e.a201=874;e.a183=760;e.a184=946;e.a197=771;e.a185=865;e.a194=771;e.a198=888;e.a186=967;e.a195=888;e.a187=831;e.a188=873;e.a189=927;e.a190=970;e.a191=918}))}));t.getMetrics=n;const i=(0,r.getLookupTableFactory)((function(e){e.Courier={ascent:629,descent:-157,capHeight:562,xHeight:-426};e["Courier-Bold"]={ascent:629,descent:-157,capHeight:562,xHeight:439};e["Courier-Oblique"]={ascent:629,descent:-157,capHeight:562,xHeight:426};e["Courier-BoldOblique"]={ascent:629,descent:-157,capHeight:562,xHeight:426};e.Helvetica={ascent:718,descent:-207,capHeight:718,xHeight:523};e["Helvetica-Bold"]={ascent:718,descent:-207,capHeight:718,xHeight:532};e["Helvetica-Oblique"]={ascent:718,descent:-207,capHeight:718,xHeight:523};e["Helvetica-BoldOblique"]={ascent:718,descent:-207,capHeight:718,xHeight:532};e["Times-Roman"]={ascent:683,descent:-217,capHeight:662,xHeight:450};e["Times-Bold"]={ascent:683,descent:-217,capHeight:676,xHeight:461};e["Times-Italic"]={ascent:683,descent:-217,capHeight:653,xHeight:441};e["Times-BoldItalic"]={ascent:683,descent:-217,capHeight:669,xHeight:462};e.Symbol={ascent:Math.NaN,descent:Math.NaN,capHeight:Math.NaN,xHeight:Math.NaN};e.ZapfDingbats={ascent:Math.NaN,descent:Math.NaN,capHeight:Math.NaN,xHeight:Math.NaN}}));t.getFontBasicMetrics=i},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.GlyfTable=void 0;t.GlyfTable=class GlyfTable{constructor({glyfTable:e,isGlyphLocationsLong:t,locaTable:a,numGlyphs:r}){this.glyphs=[];const n=new DataView(a.buffer,a.byteOffset,a.byteLength),i=new DataView(e.buffer,e.byteOffset,e.byteLength),s=t?4:2;let o=t?n.getUint32(0):2*n.getUint16(0),c=0;for(let e=0;ee+(t.getSize()+3&-4)),0)}write(){const e=this.getSize(),t=new DataView(new ArrayBuffer(e)),a=e>131070,r=a?4:2,n=new DataView(new ArrayBuffer((this.glyphs.length+1)*r));a?n.setUint32(0,0):n.setUint16(0,0);let i=0,s=0;for(const e of this.glyphs){i+=e.write(i,t);i=i+3&-4;s+=r;a?n.setUint32(s,i):n.setUint16(s,i>>1)}return{isLocationLong:a,loca:new Uint8Array(n.buffer),glyf:new Uint8Array(t.buffer)}}scale(e){for(let t=0,a=this.glyphs.length;te+t.getSize()),0);return this.header.getSize()+e}write(e,t){if(!this.header)return 0;const a=e;e+=this.header.write(e,t);if(this.simple)e+=this.simple.write(e,t);else for(const a of this.composites)e+=a.write(e,t);return e-a}scale(e){if(!this.header)return;const t=(this.header.xMin+this.header.xMax)/2;this.header.scale(t,e);if(this.simple)this.simple.scale(t,e);else for(const a of this.composites)a.scale(t,e)}}class GlyphHeader{constructor({numberOfContours:e,xMin:t,yMin:a,xMax:r,yMax:n}){this.numberOfContours=e;this.xMin=t;this.yMin=a;this.xMax=r;this.yMax=n}static parse(e,t){return[10,new GlyphHeader({numberOfContours:t.getInt16(e),xMin:t.getInt16(e+2),yMin:t.getInt16(e+4),xMax:t.getInt16(e+6),yMax:t.getInt16(e+8)})]}getSize(){return 10}write(e,t){t.setInt16(e,this.numberOfContours);t.setInt16(e+2,this.xMin);t.setInt16(e+4,this.yMin);t.setInt16(e+6,this.xMax);t.setInt16(e+8,this.yMax);return 10}scale(e,t){this.xMin=Math.round(e+(this.xMin-e)*t);this.xMax=Math.round(e+(this.xMax-e)*t)}}class Contour{constructor({flags:e,xCoordinates:t,yCoordinates:a}){this.xCoordinates=t;this.yCoordinates=a;this.flags=e}}class SimpleGlyph{constructor({contours:e,instructions:t}){this.contours=e;this.instructions=t}static parse(e,t,a){const r=[];for(let n=0;n255?e+=2:o>0&&(e+=1);t=i;o=Math.abs(s-a);o>255?e+=2:o>0&&(e+=1);a=s}}return e}write(e,t){const a=e,r=[],n=[],i=[];let s=0,o=0;for(const a of this.contours){for(let e=0,t=a.xCoordinates.length;e=0?18:2;r.push(e)}else r.push(l)}s=c;const h=a.yCoordinates[e];l=h-o;if(0===l){t|=32;n.push(0)}else{const e=Math.abs(l);if(e<=255){t|=l>=0?36:4;n.push(e)}else n.push(l)}o=h;i.push(t)}t.setUint16(e,r.length-1);e+=2}t.setUint16(e,this.instructions.length);e+=2;if(this.instructions.length){new Uint8Array(t.buffer,0,t.buffer.byteLength).set(this.instructions,e);e+=this.instructions.length}for(const a of i)t.setUint8(e++,a);for(let a=0,n=r.length;a=-128&&this.argument1<=127&&this.argument2>=-128&&this.argument2<=127||(e+=2):this.argument1>=0&&this.argument1<=255&&this.argument2>=0&&this.argument2<=255||(e+=2);return e}write(e,t){const a=e;2&this.flags?this.argument1>=-128&&this.argument1<=127&&this.argument2>=-128&&this.argument2<=127||(this.flags|=1):this.argument1>=0&&this.argument1<=255&&this.argument2>=0&&this.argument2<=255||(this.flags|=1);t.setUint16(e,this.flags);t.setUint16(e+2,this.glyphIndex);e+=4;if(1&this.flags){if(2&this.flags){t.setInt16(e,this.argument1);t.setInt16(e+2,this.argument2)}else{t.setUint16(e,this.argument1);t.setUint16(e+2,this.argument2)}e+=4}else{t.setUint8(e,this.argument1);t.setUint8(e+1,this.argument2);e+=2}if(256&this.flags){t.setUint16(e,this.instructions.length);e+=2;if(this.instructions.length){new Uint8Array(t.buffer,0,t.buffer.byteLength).set(this.instructions,e);e+=this.instructions.length}}return e-a}scale(e,t){}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.OpenTypeFileBuilder=void 0;var r=a(8),n=a(2);function writeInt16(e,t,a){e[t]=a>>8&255;e[t+1]=255&a}function writeInt32(e,t,a){e[t]=a>>24&255;e[t+1]=a>>16&255;e[t+2]=a>>8&255;e[t+3]=255&a}function writeData(e,t,a){if(a instanceof Uint8Array)e.set(a,t);else if("string"==typeof a)for(let r=0,n=a.length;ra;){a<<=1;r++}const n=a*t;return{range:n,entry:r,rangeShift:t*e-n}}toArray(){let e=this.sfnt;const t=this.tables,a=Object.keys(t);a.sort();const i=a.length;let s,o,c,l,h,u=12+16*i;const d=[u];for(s=0;s>>0;d.push(u)}const f=new Uint8Array(u);for(s=0;s>>0}writeInt32(f,u+4,e);writeInt32(f,u+8,d[s]);writeInt32(f,u+12,t[h].length);u+=16}return f}addTable(e,t){if(e in this.tables)throw new Error("Table "+e+" already exists");this.tables[e]=t}}t.OpenTypeFileBuilder=OpenTypeFileBuilder},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Type1Font=void 0;var r=a(45),n=a(18),i=a(8),s=a(10),o=a(55),c=a(2);function findBlock(e,t,a){const r=e.length,n=t.length,s=r-n;let o=a,c=!1;for(;o=n){o+=a;for(;o=0&&(r[e]=i)}}return(0,n.type1FontGlyphMapping)(e,r,a)}hasGlyphId(e){if(e<0||e>=this.numGlyphs)return!1;if(0===e)return!0;return this.charstrings[e-1].charstring.length>0}getSeacs(e){const t=[];for(let a=0,r=e.length;a0;e--)t[e]-=t[e-1];g.setByName(e,t)}s.topDict.privateDict=g;const m=new r.CFFIndex;for(u=0,d=n.length;u{Object.defineProperty(t,"__esModule",{value:!0});t.Type1Parser=void 0;var r=a(19),n=a(8),i=a(10),s=a(2);const o=function Type1CharStringClosure(){const e=[4],t=[5],a=[6],r=[7],n=[8],i=[12,35],o=[14],c=[21],l=[22],h=[30],u=[31];return class Type1CharString{constructor(){this.width=0;this.lsb=0;this.flexing=!1;this.output=[];this.stack=[]}convert(d,f,g){const p=d.length;let m,b,y,w=!1;for(let S=0;Sr)return!0;const n=r-e;for(let e=n;e>8&255,255&t);else{t=65536*t|0;this.output.push(255,t>>24&255,t>>16&255,t>>8&255,255&t)}}this.output.push.apply(this.output,t);a?this.stack.splice(n,e):this.stack.length=0;return!1}}}(),c=function Type1ParserClosure(){function isHexDigit(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function decrypt(e,t,a){if(a>=e.length)return new Uint8Array(0);let r,n,i=0|t;for(r=0;r>8;i=52845*(t+i)+22719&65535}return o}function isSpecial(e){return 47===e||91===e||93===e||123===e||125===e||40===e||41===e}return class Type1Parser{constructor(e,t,a){if(t){const t=e.getBytes(),a=!((isHexDigit(t[0])||(0,n.isWhiteSpace)(t[0]))&&isHexDigit(t[1])&&isHexDigit(t[2])&&isHexDigit(t[3])&&isHexDigit(t[4])&&isHexDigit(t[5])&&isHexDigit(t[6])&&isHexDigit(t[7]));e=new i.Stream(a?decrypt(t,55665,4):function decryptAscii(e,t,a){let r=0|t;const n=e.length,i=new Uint8Array(n>>>1);let s,o;for(s=0,o=0;s>8;r=52845*(e+r)+22719&65535}}return i.slice(a,o)}(t,55665,4))}this.seacAnalysisEnabled=!!a;this.stream=e;this.nextChar()}readNumberArray(){this.getToken();const e=[];for(;;){const t=this.getToken();if(null===t||"]"===t||"}"===t)break;e.push(parseFloat(t||0))}return e}readNumber(){const e=this.getToken();return parseFloat(e||0)}readInt(){const e=this.getToken();return 0|parseInt(e||0,10)}readBoolean(){return"true"===this.getToken()?1:0}nextChar(){return this.currentChar=this.stream.getByte()}prevChar(){this.stream.skip(-2);return this.currentChar=this.stream.getByte()}getToken(){let e=!1,t=this.currentChar;for(;;){if(-1===t)return null;if(e)10!==t&&13!==t||(e=!1);else if(37===t)e=!0;else if(!(0,n.isWhiteSpace)(t))break;t=this.nextChar()}if(isSpecial(t)){this.nextChar();return String.fromCharCode(t)}let a="";do{a+=String.fromCharCode(t);t=this.nextChar()}while(t>=0&&!(0,n.isWhiteSpace)(t)&&!isSpecial(t));return a}readCharStrings(e,t){return-1===t?e:decrypt(e,4330,t)}extractFontProgram(e){const t=this.stream,a=[],r=[],n=Object.create(null);n.lenIV=4;const i={subrs:[],charstrings:[],properties:{privateData:n}};let s,c,l,h,u;for(;null!==(s=this.getToken());)if("/"===s){s=this.getToken();switch(s){case"CharStrings":this.getToken();this.getToken();this.getToken();this.getToken();for(;;){s=this.getToken();if(null===s||"end"===s)break;if("/"!==s)continue;const e=this.getToken();c=this.readInt();this.getToken();l=c>0?t.getBytes(c):new Uint8Array(0);h=i.properties.privateData.lenIV;u=this.readCharStrings(l,h);this.nextChar();s=this.getToken();"noaccess"===s?this.getToken():"/"===s&&this.prevChar();r.push({glyph:e,encoded:u})}break;case"Subrs":this.readInt();this.getToken();for(;"dup"===this.getToken();){const e=this.readInt();c=this.readInt();this.getToken();l=c>0?t.getBytes(c):new Uint8Array(0);h=i.properties.privateData.lenIV;u=this.readCharStrings(l,h);this.nextChar();s=this.getToken();"noaccess"===s&&this.getToken();a[e]=u}break;case"BlueValues":case"OtherBlues":case"FamilyBlues":case"FamilyOtherBlues":const e=this.readNumberArray();e.length>0&&e.length,0;break;case"StemSnapH":case"StemSnapV":i.properties.privateData[s]=this.readNumberArray();break;case"StdHW":case"StdVW":i.properties.privateData[s]=this.readNumberArray()[0];break;case"BlueShift":case"lenIV":case"BlueFuzz":case"BlueScale":case"LanguageGroup":case"ExpansionFactor":i.properties.privateData[s]=this.readNumber();break;case"ForceBold":i.properties.privateData[s]=this.readBoolean()}}for(let t=0;t-1&&void 0===e.widths[t]&&t>=e.firstChar&&t<=e.lastChar&&(e.widths[t]=s.width)}}return i}extractFontHeader(e){let t;for(;null!==(t=this.getToken());)if("/"===t){t=this.getToken();switch(t){case"FontMatrix":const a=this.readNumberArray();e.fontMatrix=a;break;case"Encoding":const n=this.getToken();let i;if(/^\d+$/.test(n)){i=[];const e=0|parseInt(n,10);this.getToken();for(let a=0;a{Object.defineProperty(t,"__esModule",{value:!0});t.Pattern=void 0;t.getTilingPatternIR=function getTilingPatternIR(e,t,a){const n=t.getArray("Matrix"),i=r.Util.normalizeRect(t.getArray("BBox")),s=t.get("XStep"),o=t.get("YStep"),c=t.get("PaintType"),l=t.get("TilingType");if(i[2]-i[0]==0||i[3]-i[1]==0)throw new r.FormatError(`Invalid getTilingPatternIR /BBox array: [${i}].`);return["TilingPattern",a,e,n,i,s,o,c,l]};var r=a(2),n=a(9),i=a(24),s=a(8);const o=2,c=3,l=4,h=5,u=6,d=7;t.Pattern=class Pattern{constructor(){(0,r.unreachable)("Cannot initialize Pattern.")}static parseShading(e,t,a,i,f,g){const p=e instanceof n.BaseStream?e.dict:e,m=p.get("ShadingType");try{switch(m){case o:case c:return new RadialAxialShading(p,t,a,f,g);case l:case h:case u:case d:return new MeshShading(e,t,a,f,g);default:throw new r.FormatError("Unsupported ShadingType: "+m)}}catch(e){if(e instanceof s.MissingDataException)throw e;i.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.shadingPattern});(0,r.warn)(e);return new DummyShading}}};class BaseShading{static get SMALL_NUMBER(){return(0,r.shadow)(this,"SMALL_NUMBER",1e-6)}constructor(){this.constructor===BaseShading&&(0,r.unreachable)("Cannot initialize BaseShading.")}getIR(){(0,r.unreachable)("Abstract method `getIR` called.")}}class RadialAxialShading extends BaseShading{constructor(e,t,a,n,s){super();this.coordsArr=e.getArray("Coords");this.shadingType=e.get("ShadingType");const o=i.ColorSpace.parse({cs:e.getRaw("CS")||e.getRaw("ColorSpace"),xref:t,resources:a,pdfFunctionFactory:n,localColorSpaceCache:s}),l=e.getArray("BBox");Array.isArray(l)&&4===l.length?this.bbox=r.Util.normalizeRect(l):this.bbox=null;let h=0,u=1;if(e.has("Domain")){const t=e.getArray("Domain");h=t[0];u=t[1]}let d=!1,f=!1;if(e.has("Extend")){const t=e.getArray("Extend");d=t[0];f=t[1]}if(!(this.shadingType!==c||d&&f)){const[e,t,a,n,i,s]=this.coordsArr,o=Math.hypot(e-n,t-i);a<=s+o&&s<=a+o&&(0,r.warn)("Unsupported radial gradient.")}this.extendStart=d;this.extendEnd=f;const g=e.getRaw("Function"),p=n.createFromArray(g),m=(u-h)/10,b=this.colorStops=[];if(h>=u||m<=0){(0,r.info)("Bad shading domain.");return}const y=new Float32Array(o.numComps),w=new Float32Array(1);let S;for(let e=0;e<=10;e++){w[0]=h+e*m;p(w,0,y,0);S=o.getRgb(y,0);const t=r.Util.makeHexColor(S[0],S[1],S[2]);b.push([e/10,t])}let x="transparent";if(e.has("Background")){S=o.getRgb(e.get("Background"),0);x=r.Util.makeHexColor(S[0],S[1],S[2])}if(!d){b.unshift([0,x]);b[1][0]+=BaseShading.SMALL_NUMBER}if(!f){b[b.length-1][0]-=BaseShading.SMALL_NUMBER;b.push([1,x])}this.colorStops=b}getIR(){const e=this.coordsArr,t=this.shadingType;let a,n,i,s,l;if(t===o){n=[e[0],e[1]];i=[e[2],e[3]];s=null;l=null;a="axial"}else if(t===c){n=[e[0],e[1]];i=[e[3],e[4]];s=e[2];l=e[5];a="radial"}else(0,r.unreachable)(`getPattern type unknown: ${t}`);return["RadialAxial",a,this.bbox,this.colorStops,n,i,s,l]}}class MeshStreamReader{constructor(e,t){this.stream=e;this.context=t;this.buffer=0;this.bufferLength=0;const a=t.numComps;this.tmpCompsBuf=new Float32Array(a);const r=t.colorSpace.numComps;this.tmpCsCompsBuf=t.colorFn?new Float32Array(r):this.tmpCompsBuf}get hasData(){if(this.stream.end)return this.stream.pos0)return!0;const e=this.stream.getByte();if(e<0)return!1;this.buffer=e;this.bufferLength=8;return!0}readBits(e){let t=this.buffer,a=this.bufferLength;if(32===e){if(0===a)return(this.stream.getByte()<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte())>>>0;t=t<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte();const e=this.stream.getByte();this.buffer=e&(1<>a)>>>0}if(8===e&&0===a)return this.stream.getByte();for(;a>a}align(){this.buffer=0;this.bufferLength=0}readFlag(){return this.readBits(this.context.bitsPerFlag)}readCoordinate(){const e=this.context.bitsPerCoordinate,t=this.readBits(e),a=this.readBits(e),r=this.context.decode,n=e<32?1/((1<i?i:e;t=t>s?s:t;a=a{Object.defineProperty(t,"__esModule",{value:!0});t.PostScriptEvaluator=t.PostScriptCompiler=t.PDFFunctionFactory=void 0;t.isPDFFunction=function isPDFFunction(e){let t;if("object"!=typeof e)return!1;if(e instanceof r.Dict)t=e;else{if(!(e instanceof s.BaseStream))return!1;t=e.dict}return t.has("FunctionType")};var r=a(5),n=a(2),i=a(58),s=a(9),o=a(59);t.PDFFunctionFactory=class PDFFunctionFactory{constructor({xref:e,isEvalSupported:t=!0}){this.xref=e;this.isEvalSupported=!1!==t}create(e){const t=this.getCached(e);if(t)return t;const a=PDFFunction.parse({xref:this.xref,isEvalSupported:this.isEvalSupported,fn:e instanceof r.Ref?this.xref.fetch(e):e});this._cache(e,a);return a}createFromArray(e){const t=this.getCached(e);if(t)return t;const a=PDFFunction.parseArray({xref:this.xref,isEvalSupported:this.isEvalSupported,fnObj:e instanceof r.Ref?this.xref.fetch(e):e});this._cache(e,a);return a}getCached(e){let t;e instanceof r.Ref?t=e:e instanceof r.Dict?t=e.objId:e instanceof s.BaseStream&&(t=e.dict&&e.dict.objId);if(t){const e=this._localFunctionCache.getByRef(t);if(e)return e}return null}_cache(e,t){if(!t)throw new Error('PDFFunctionFactory._cache - expected "parsedFunction" argument.');let a;e instanceof r.Ref?a=e:e instanceof r.Dict?a=e.objId:e instanceof s.BaseStream&&(a=e.dict&&e.dict.objId);a&&this._localFunctionCache.set(null,a,t)}get _localFunctionCache(){return(0,n.shadow)(this,"_localFunctionCache",new o.LocalFunctionCache)}};function toNumberArray(e){if(!Array.isArray(e))return null;const t=e.length;for(let a=0;a>c)*h;l&=(1<a?e=a:e0&&(d=o[u-1]);let f=r[1];u>1,d=s.length>>1,f=new PostScriptEvaluator(h),g=Object.create(null);let p=8192;const m=new Float32Array(d);return function constructPostScriptFn(e,t,a,r){let n,i,s="";const c=m;for(n=0;ne&&(i=e)}h[n]=i}if(p>0){p--;g[s]=h}a.set(h,r)}}}class PostScriptStack{static get MAX_STACK_SIZE(){return(0,n.shadow)(this,"MAX_STACK_SIZE",100)}constructor(e){this.stack=e?Array.prototype.slice.call(e,0):[]}push(e){if(this.stack.length>=PostScriptStack.MAX_STACK_SIZE)throw new Error("PostScript function stack overflow.");this.stack.push(e)}pop(){if(this.stack.length<=0)throw new Error("PostScript function stack underflow.");return this.stack.pop()}copy(e){if(this.stack.length+e>=PostScriptStack.MAX_STACK_SIZE)throw new Error("PostScript function stack overflow.");const t=this.stack;for(let a=t.length-e,r=e-1;r>=0;r--,a++)t.push(t[a])}index(e){this.push(this.stack[this.stack.length-e-1])}roll(e,t){const a=this.stack,r=a.length-e,n=a.length-1,i=r+(t-Math.floor(t/e)*e);for(let e=r,t=n;e0?t.push(o<>c);break;case"ceiling":o=t.pop();t.push(Math.ceil(o));break;case"copy":o=t.pop();t.copy(o);break;case"cos":o=t.pop();t.push(Math.cos(o));break;case"cvi":o=0|t.pop();t.push(o);break;case"cvr":break;case"div":c=t.pop();o=t.pop();t.push(o/c);break;case"dup":t.copy(1);break;case"eq":c=t.pop();o=t.pop();t.push(o===c);break;case"exch":t.roll(2,1);break;case"exp":c=t.pop();o=t.pop();t.push(o**c);break;case"false":t.push(!1);break;case"floor":o=t.pop();t.push(Math.floor(o));break;case"ge":c=t.pop();o=t.pop();t.push(o>=c);break;case"gt":c=t.pop();o=t.pop();t.push(o>c);break;case"idiv":c=t.pop();o=t.pop();t.push(o/c|0);break;case"index":o=t.pop();t.index(o);break;case"le":c=t.pop();o=t.pop();t.push(o<=c);break;case"ln":o=t.pop();t.push(Math.log(o));break;case"log":o=t.pop();t.push(Math.log(o)/Math.LN10);break;case"lt":c=t.pop();o=t.pop();t.push(o=t?new AstLiteral(t):e.max<=t?e:new AstMin(e,t)}return class PostScriptCompiler{compile(e,t,a){const r=[],n=[],i=t.length>>1,s=a.length>>1;let o,c,l,h,u,d,f,g,p=0;for(let e=0;et.min){o.unshift("Math.max(",i,", ");o.push(")")}if(s{Object.defineProperty(t,"__esModule",{value:!0});t.PostScriptParser=t.PostScriptLexer=void 0;var r=a(2),n=a(5),i=a(8);t.PostScriptParser=class PostScriptParser{constructor(e){this.lexer=e;this.operators=[];this.token=null;this.prev=null}nextToken(){this.prev=this.token;this.token=this.lexer.getToken()}accept(e){if(this.token.type===e){this.nextToken();return!0}return!1}expect(e){if(this.accept(e))return!0;throw new r.FormatError(`Unexpected symbol: found ${this.token.type} expected ${e}.`)}parse(){this.nextToken();this.expect(s.LBRACE);this.parseBlock();this.expect(s.RBRACE);return this.operators}parseBlock(){for(;;)if(this.accept(s.NUMBER))this.operators.push(this.prev.value);else if(this.accept(s.OPERATOR))this.operators.push(this.prev.value);else{if(!this.accept(s.LBRACE))return;this.parseCondition()}}parseCondition(){const e=this.operators.length;this.operators.push(null,null);this.parseBlock();this.expect(s.RBRACE);if(this.accept(s.IF)){this.operators[e]=this.operators.length;this.operators[e+1]="jz"}else{if(!this.accept(s.LBRACE))throw new r.FormatError("PS Function: error parsing conditional.");{const t=this.operators.length;this.operators.push(null,null);const a=this.operators.length;this.parseBlock();this.expect(s.RBRACE);this.expect(s.IFELSE);this.operators[t]=this.operators.length;this.operators[t+1]="j";this.operators[e]=a;this.operators[e+1]="jz"}}}};const s={LBRACE:0,RBRACE:1,NUMBER:2,OPERATOR:3,IF:4,IFELSE:5};class PostScriptToken{static get opCache(){return(0,r.shadow)(this,"opCache",Object.create(null))}constructor(e,t){this.type=e;this.value=t}static getOperator(e){const t=PostScriptToken.opCache[e];return t||(PostScriptToken.opCache[e]=new PostScriptToken(s.OPERATOR,e))}static get LBRACE(){return(0,r.shadow)(this,"LBRACE",new PostScriptToken(s.LBRACE,"{"))}static get RBRACE(){return(0,r.shadow)(this,"RBRACE",new PostScriptToken(s.RBRACE,"}"))}static get IF(){return(0,r.shadow)(this,"IF",new PostScriptToken(s.IF,"IF"))}static get IFELSE(){return(0,r.shadow)(this,"IFELSE",new PostScriptToken(s.IFELSE,"IFELSE"))}}t.PostScriptLexer=class PostScriptLexer{constructor(e){this.stream=e;this.nextChar();this.strBuf=[]}nextChar(){return this.currentChar=this.stream.getByte()}getToken(){let e=!1,t=this.currentChar;for(;;){if(t<0)return n.EOF;if(e)10!==t&&13!==t||(e=!1);else if(37===t)e=!0;else if(!(0,i.isWhiteSpace)(t))break;t=this.nextChar()}switch(0|t){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return new PostScriptToken(s.NUMBER,this.getNumber());case 123:this.nextChar();return PostScriptToken.LBRACE;case 125:this.nextChar();return PostScriptToken.RBRACE}const a=this.strBuf;a.length=0;a[0]=String.fromCharCode(t);for(;(t=this.nextChar())>=0&&(t>=65&&t<=90||t>=97&&t<=122);)a.push(String.fromCharCode(t));const r=a.join("");switch(r.toLowerCase()){case"if":return PostScriptToken.IF;case"ifelse":return PostScriptToken.IFELSE;default:return PostScriptToken.getOperator(r)}}getNumber(){let e=this.currentChar;const t=this.strBuf;t.length=0;t[0]=String.fromCharCode(e);for(;(e=this.nextChar())>=0&&(e>=48&&e<=57||45===e||46===e);)t.push(String.fromCharCode(e));const a=parseFloat(t.join(""));if(isNaN(a))throw new r.FormatError(`Invalid floating point number: ${a}`);return a}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.LocalTilingPatternCache=t.LocalImageCache=t.LocalGStateCache=t.LocalFunctionCache=t.LocalColorSpaceCache=t.GlobalImageCache=void 0;var r=a(2),n=a(5);class BaseLocalCache{constructor(e){this.constructor===BaseLocalCache&&(0,r.unreachable)("Cannot initialize BaseLocalCache.");this._onlyRefs=!0===(e&&e.onlyRefs);if(!this._onlyRefs){this._nameRefMap=new Map;this._imageMap=new Map}this._imageCache=new n.RefSetCache}getByName(e){this._onlyRefs&&(0,r.unreachable)("Should not call `getByName` method.");const t=this._nameRefMap.get(e);return t?this.getByRef(t):this._imageMap.get(e)||null}getByRef(e){return this._imageCache.get(e)||null}set(e,t,a){(0,r.unreachable)("Abstract method `set` called.")}}t.LocalImageCache=class LocalImageCache extends BaseLocalCache{set(e,t=null,a){if("string"!=typeof e)throw new Error('LocalImageCache.set - expected "name" argument.');if(t){if(this._imageCache.has(t))return;this._nameRefMap.set(e,t);this._imageCache.put(t,a)}else this._imageMap.has(e)||this._imageMap.set(e,a)}};t.LocalColorSpaceCache=class LocalColorSpaceCache extends BaseLocalCache{set(e=null,t=null,a){if("string"!=typeof e&&!t)throw new Error('LocalColorSpaceCache.set - expected "name" and/or "ref" argument.');if(t){if(this._imageCache.has(t))return;null!==e&&this._nameRefMap.set(e,t);this._imageCache.put(t,a)}else this._imageMap.has(e)||this._imageMap.set(e,a)}};t.LocalFunctionCache=class LocalFunctionCache extends BaseLocalCache{constructor(e){super({onlyRefs:!0})}set(e=null,t,a){if(!t)throw new Error('LocalFunctionCache.set - expected "ref" argument.');this._imageCache.has(t)||this._imageCache.put(t,a)}};t.LocalGStateCache=class LocalGStateCache extends BaseLocalCache{set(e,t=null,a){if("string"!=typeof e)throw new Error('LocalGStateCache.set - expected "name" argument.');if(t){if(this._imageCache.has(t))return;this._nameRefMap.set(e,t);this._imageCache.put(t,a)}else this._imageMap.has(e)||this._imageMap.set(e,a)}};t.LocalTilingPatternCache=class LocalTilingPatternCache extends BaseLocalCache{constructor(e){super({onlyRefs:!0})}set(e=null,t,a){if(!t)throw new Error('LocalTilingPatternCache.set - expected "ref" argument.');this._imageCache.has(t)||this._imageCache.put(t,a)}};class GlobalImageCache{static get NUM_PAGES_THRESHOLD(){return(0,r.shadow)(this,"NUM_PAGES_THRESHOLD",2)}static get MIN_IMAGES_TO_CACHE(){return(0,r.shadow)(this,"MIN_IMAGES_TO_CACHE",10)}static get MAX_BYTE_SIZE(){return(0,r.shadow)(this,"MAX_BYTE_SIZE",4e7)}constructor(){this._refCache=new n.RefSetCache;this._imageCache=new n.RefSetCache}get _byteSize(){let e=0;for(const t of this._imageCache)e+=t.byteSize;return e}get _cacheLimitReached(){return!(this._imageCache.size{Object.defineProperty(t,"__esModule",{value:!0});t.bidi=function bidi(e,t=-1,a=!1){let c=!0;const l=e.length;if(0===l||a)return createBidiText(e,c,a);s.length=l;o.length=l;let h,u,d=0;for(h=0;h4){c=!0;t=0}else{c=!1;t=1}const f=[];for(h=0;h=0&&"ET"===o[e];--e)o[e]="EN";for(let e=h+1;e0&&(t=o[h-1]);let a=m;e+1w&&isOdd(w)&&(x=w)}for(w=S;w>=x;--w){let e=-1;for(h=0,u=f.length;h=0){reverseValues(s,e,h);e=-1}}else e<0&&(e=h);e>=0&&reverseValues(s,e,f.length)}for(h=0,u=s.length;h"!==e||(s[h]="")}return createBidiText(s.join(""),c)};var r=a(2);const n=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","BN","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],i=["AN","AN","AN","AN","AN","AN","ON","ON","AL","ET","ET","AL","CS","AL","ON","ON","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AN","AN","AN","AN","AN","AN","AN","AN","AN","AN","ET","AN","AN","AL","AL","AL","NSM","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AN","ON","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","NSM","NSM","ON","NSM","NSM","NSM","NSM","AL","AL","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","AL","AL","AL","AL","AL","AL"];function isOdd(e){return 0!=(1&e)}function isEven(e){return 0==(1&e)}function findUnequal(e,t,a){let r,n;for(r=t,n=e.length;r{Object.defineProperty(t,"__esModule",{value:!0});t.MurmurHash3_64=void 0;var r=a(2);const n=3285377520,i=4294901760,s=65535;t.MurmurHash3_64=class MurmurHash3_64{constructor(e){this.h1=e?4294967295&e:n;this.h2=e?4294967295&e:n}update(e){let t,a;if("string"==typeof e){t=new Uint8Array(2*e.length);a=0;for(let r=0,n=e.length;r>>8;t[a++]=255&n}}}else{if(!(0,r.isArrayBuffer)(e))throw new Error("Wrong data format in MurmurHash3_64_update. Input must be a string or array.");t=e.slice();a=t.byteLength}const n=a>>2,o=a-4*n,c=new Uint32Array(t.buffer,0,n);let l=0,h=0,u=this.h1,d=this.h2;const f=3432918353,g=461845907,p=11601,m=13715;for(let e=0;e>>17;l=l*g&i|l*m&s;u^=l;u=u<<13|u>>>19;u=5*u+3864292196}else{h=c[e];h=h*f&i|h*p&s;h=h<<15|h>>>17;h=h*g&i|h*m&s;d^=h;d=d<<13|d>>>19;d=5*d+3864292196}l=0;switch(o){case 3:l^=t[4*n+2]<<16;case 2:l^=t[4*n+1]<<8;case 1:l^=t[4*n];l=l*f&i|l*p&s;l=l<<15|l>>>17;l=l*g&i|l*m&s;1&n?u^=l:d^=l}this.h1=u;this.h2=d}hexdigest(){let e=this.h1,t=this.h2;e^=t>>>1;e=3981806797*e&i|36045*e&s;t=4283543511*t&i|(2950163797*(t<<16|e>>>16)&i)>>>16;e^=t>>>1;e=444984403*e&i|60499*e&s;t=3301882366*t&i|(3120437893*(t<<16|e>>>16)&i)>>>16;e^=t>>>1;const a=(e>>>0).toString(16),r=(t>>>0).toString(16);return a.padStart(8,"0")+r.padStart(8,"0")}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.OperatorList=void 0;var r=a(2);function addState(e,t,a,r,n){let i=e;for(let e=0,a=t.length-1;e1e3){h=Math.max(h,f);g+=d+2;f=0;d=0}u.push({transform:t,x:f,y:g,w:a.width,h:a.height});f+=a.width+2;d=Math.max(d,a.height)}const p=Math.max(h,f)+1,m=g+d+1,b=new Uint8Array(p*m*4),y=p<<2;for(let e=0;e=0;){t[i-4]=t[i];t[i-3]=t[i+1];t[i-2]=t[i+2];t[i-1]=t[i+3];t[i+a]=t[i+a-4];t[i+a+1]=t[i+a-3];t[i+a+2]=t[i+a-2];t[i+a+3]=t[i+a-1];i-=y}}a.splice(s,4*l,r.OPS.paintInlineImageXObjectGroup);n.splice(s,4*l,[{width:p,height:m,kind:r.ImageKind.RGBA_32BPP,data:b},u]);return s+1}));addState(n,[r.OPS.save,r.OPS.transform,r.OPS.paintImageMaskXObject,r.OPS.restore],null,(function iterateImageMaskGroup(e,t){const a=e.fnArray,n=(t-(e.iCurr-3))%4;switch(n){case 0:return a[t]===r.OPS.save;case 1:return a[t]===r.OPS.transform;case 2:return a[t]===r.OPS.paintImageMaskXObject;case 3:return a[t]===r.OPS.restore}throw new Error(`iterateImageMaskGroup - invalid pos: ${n}`)}),(function foundImageMaskGroup(e,t){const a=e.fnArray,n=e.argsArray,i=e.iCurr,s=i-3,o=i-2,c=i-1;let l=Math.floor((t-s)/4);if(l<10)return t-(t-s)%4;let h,u,d=!1;const f=n[c][0],g=n[o][0],p=n[o][1],m=n[o][2],b=n[o][3];if(p===m){d=!0;h=o+4;let e=c+4;for(let t=1;t=4&&a[i-4]===a[s]&&a[i-3]===a[o]&&a[i-2]===a[c]&&a[i-1]===a[l]&&r[i-4][0]===h&&r[i-4][1]===u){d++;f-=5}let g=f+4;for(let e=1;e=a)break}r=(r||n)[e[t]];if(r&&!Array.isArray(r)){s.iCurr=t;t++;if(!r.checkFn||(0,r.checkFn)(s)){i=r;r=null}else r=null}else t++}this.state=r;this.match=i;this.lastProcessed=t}flush(){for(;this.match;){const e=this.queue.fnArray.length;this.lastProcessed=(0,this.match.processFn)(this.context,e);this.match=null;this.state=null;this._optimize()}}reset(){this.state=null;this.match=null;this.lastProcessed=0}}class OperatorList{static get CHUNK_SIZE(){return(0,r.shadow)(this,"CHUNK_SIZE",1e3)}static get CHUNK_SIZE_ABOUT(){return(0,r.shadow)(this,"CHUNK_SIZE_ABOUT",this.CHUNK_SIZE-5)}constructor(e=0,t){this._streamSink=t;this.fnArray=[];this.argsArray=[];!t||e&r.RenderingIntentFlag.OPLIST?this.optimizer=new NullOptimizer(this):this.optimizer=new QueueOptimizer(this);this.dependencies=new Set;this._totalLength=0;this.weight=0;this._resolved=t?null:Promise.resolve()}get length(){return this.argsArray.length}get ready(){return this._resolved||this._streamSink.ready}get totalLength(){return this._totalLength+this.length}addOp(e,t){this.optimizer.push(e,t);this.weight++;this._streamSink&&(this.weight>=OperatorList.CHUNK_SIZE||this.weight>=OperatorList.CHUNK_SIZE_ABOUT&&(e===r.OPS.restore||e===r.OPS.endText))&&this.flush()}addImageOps(e,t,a){void 0!==a&&this.addOp(r.OPS.beginMarkedContentProps,["OC",a]);this.addOp(e,t);void 0!==a&&this.addOp(r.OPS.endMarkedContent,[])}addDependency(e){if(!this.dependencies.has(e)){this.dependencies.add(e);this.addOp(r.OPS.dependency,[e])}}addDependencies(e){for(const t of e)this.addDependency(t)}addOpList(e){if(e instanceof OperatorList){for(const t of e.dependencies)this.dependencies.add(t);for(let t=0,a=e.length;t{Object.defineProperty(t,"__esModule",{value:!0});t.PDFImage=void 0;var r=a(2),n=a(64),i=a(9),s=a(24),o=a(29),c=a(37),l=a(40),h=a(5);function decodeAndClamp(e,t,a,r){(e=t+e*a)<0?e=0:e>r&&(e=r);return e}function resizeImageMask(e,t,a,r,n,i){const s=n*i;let o;o=t<=8?new Uint8Array(s):t<=16?new Uint16Array(s):new Uint32Array(s);const c=a/n,l=r/i;let h,u,d,f,g=0;const p=new Uint16Array(n),m=a;for(h=0;h0&&Number.isInteger(a.height)&&a.height>0&&(a.width!==m||a.height!==b)){(0,r.warn)("PDFImage - using the Width/Height of the image data, rather than the image dictionary.");m=a.width;b=a.height}if(m<1||b<1)throw new r.FormatError(`Invalid image width: ${m} or height: ${b}`);this.width=m;this.height=b;this.interpolate=g.get("I","Interpolate");this.imageMask=g.get("IM","ImageMask")||!1;this.matte=g.get("Matte")||!1;let y=a.bitsPerComponent;if(!y){y=g.get("BPC","BitsPerComponent");if(!y){if(!this.imageMask)throw new r.FormatError(`Bits per component missing in image: ${this.imageMask}`);y=1}}this.bpc=y;if(!this.imageMask){let i=g.getRaw("CS")||g.getRaw("ColorSpace");if(!i){(0,r.info)("JPX images (which do not require color spaces)");switch(a.numComps){case 1:i=h.Name.get("DeviceGray");break;case 3:i=h.Name.get("DeviceRGB");break;case 4:i=h.Name.get("DeviceCMYK");break;default:throw new Error(`JPX images with ${a.numComps} color components not supported.`)}}this.colorSpace=s.ColorSpace.parse({cs:i,xref:e,resources:n?t:null,pdfFunctionFactory:d,localColorSpaceCache:f});this.numComps=this.colorSpace.numComps}this.decode=g.getArray("D","Decode");this.needsDecode=!1;if(this.decode&&(this.colorSpace&&!this.colorSpace.isDefaultDecode(this.decode,y)||u&&!s.ColorSpace.isDefaultDecode(this.decode,1))){this.needsDecode=!0;const e=(1<>3)*a,o=e.byteLength;let c,l;if(!r||n&&!(s===o))if(n){c=new Uint8Array(s);c.set(e);c.fill(255,o)}else c=new Uint8Array(e);else c=e;if(n)for(l=0;l>7&1;s[d+1]=u>>6&1;s[d+2]=u>>5&1;s[d+3]=u>>4&1;s[d+4]=u>>3&1;s[d+5]=u>>2&1;s[d+6]=u>>1&1;s[d+7]=1&u;d+=8}if(d>=1}}}}else{let a=0;u=0;for(d=0,h=i;d>r;n<0?n=0:n>l&&(n=l);s[d]=n;u&=(1<o[r+1]){t=255;break}}c[u]=t}}}if(c)for(u=0,f=3,d=t*n;u>3;if(!e){let e;"DeviceGray"===this.colorSpace.name&&1===l?e=r.ImageKind.GRAYSCALE_1BPP:"DeviceRGB"!==this.colorSpace.name||8!==l||this.needsDecode||(e=r.ImageKind.RGB_24BPP);if(e&&!this.smask&&!this.mask&&t===s&&a===o){n.kind=e;n.data=this.getImageBytes(o*h,{});if(this.needsDecode){(0,r.assert)(e===r.ImageKind.GRAYSCALE_1BPP,"PDFImage.createImageData: The image must be grayscale.");const t=n.data;for(let e=0,a=t.length;e>3,o=this.getImageBytes(n*s,{internal:!0}),c=this.getComponents(o);let l,h;if(1===i){h=a*n;if(this.needsDecode)for(l=0;l{Object.defineProperty(t,"__esModule",{value:!0});t.applyMaskImageData=function applyMaskImageData({src:e,srcPos:t=0,dest:a,destPos:n=0,width:i,height:s,inverseDecode:o=!1}){const c=r.FeatureTest.isLittleEndian?4278190080:255,[l,h]=o?[0,c]:[c,0],u=i>>3,d=7&i,f=e.length;a=new Uint32Array(a.buffer);for(let r=0;r{Object.defineProperty(t,"__esModule",{value:!0});t.BoundingBoxesCalculator=void 0;var r=a(2),n=a(25),i=a(5),s=function PartialEvaluatorClosure(){function BoundingBoxesCalculator(e){this.textStateManager=new n.StateManager(new n.TextState);this.graphicsStateManager=new n.StateManager(new o);this.clipping=!1;this.boundingBoxesStack=new l;this.boundingBoxes={};this.ignoreCalculations=e;this.operationArray=[];this.operationIndex=-1}BoundingBoxesCalculator.prototype={getTopPoints:function BoundingBoxesCalculator_getTopPoints(e,t,a,r,n){let i=Math.sqrt(Math.pow(a-e,2)+Math.pow(r-t,2));if(0===i)return[a+n,r+n,e+n,t+n];let s=[(a-e)/i,(r-t)/i],o=[-s[1],s[0]],c=[o[0]*n,o[1]*n];return[a+c[0],r+c[1],e+c[0],t+c[1]]},getTextBoundingBox:function BoundingBoxesCalculator_getTextBoundingBox(e){let t,a,n,i,s=0,o=0,c=this.graphicsStateManager.state.ctm,l=(this.textStateManager.state.font.descent||0)*this.textStateManager.state.fontSize,h=(this.textStateManager.state.font.ascent||1)*this.textStateManager.state.fontSize,u=this.textStateManager.state.textRise*this.textStateManager.state.fontSize;if(this.textStateManager.state.font.vertical){[t,a]=r.Util.applyTransform([-this.textStateManager.state.fontSize/2,u],this.textStateManager.state.textMatrix);n=[t-this.textStateManager.state.textMatrix[4],a-this.textStateManager.state.textMatrix[5]];i=r.Util.applyTransform([h-l,0],this.textStateManager.state.textMatrix)}else{[t,a]=r.Util.applyTransform([0,l+u],this.textStateManager.state.textMatrix);n=[t-this.textStateManager.state.textMatrix[4],a-this.textStateManager.state.textMatrix[5]];i=r.Util.applyTransform([0,h-l],this.textStateManager.state.textMatrix)}i[0]-=this.textStateManager.state.textMatrix[4];i[1]-=this.textStateManager.state.textMatrix[5];i=Math.sqrt(i[0]*i[0]+i[1]*i[1]);i*=this.textStateManager.state.textMatrix[0]*this.textStateManager.state.textMatrix[3]<0?-1:1;let d=[];for(let t=0;t[...e,...this.getTopPoints(...e,i)]));let w,S,x,k,[C,v]=r.Util.applyTransform([t,a],c),[F,O]=r.Util.applyTransform([f,g],c),[T,M]=r.Util.applyTransform([p,m],c),[E,D]=r.Util.applyTransform([b,y],c);d=d.map((e=>[...r.Util.applyTransform([e[0],e[1]],c),...r.Util.applyTransform([e[2],e[3]],c),...r.Util.applyTransform([e[4],e[5]],c),...r.Util.applyTransform([e[6],e[7]],c)]));let N=[];d.forEach((e=>{let t=[...e].filter(((e,t)=>t%2==0)),a=[...e].filter(((e,t)=>t%2!=0));w=Math.min(...t);S=Math.max(...t);x=Math.min(...a);k=Math.max(...a);N.push([w,x,S-w,k-x])}));this.operationArray[this.operationIndex]=N;w=Math.min(C,F,T,E);S=Math.max(C,F,T,E);x=Math.min(v,O,M,D);k=Math.max(v,O,M,D);this.boundingBoxesStack.save(w,x,S-w,k-x)},getClippingGraphicsBoundingBox:function BoundingBoxesCalculator_getClippingGraphicsBoundingBox(){let e=this.graphicsStateManager.state;return null===e.clip?{x:e.x,y:e.y,w:e.w,h:e.h}:e.xe.clip.x+e.clip.w&&e.x+e.w>e.clip.x+e.clip.w||e.ye.clip.y+e.clip.h&&e.y+e.h>e.clip.y+e.clip.h?null:{x:Math.max(e.x,e.clip.x),y:Math.max(e.y,e.clip.y),w:Math.min(e.x+e.w,e.clip.x+e.clip.w)-Math.max(e.x,e.clip.x),h:Math.min(e.y+e.h,e.clip.y+e.clip.h)-Math.max(e.y,e.clip.y)}},saveGraphicsBoundingBox:function saveGraphicsBoundingBox(){let e=this.getClippingGraphicsBoundingBox();if(null===e)return;let t=e.x,a=e.y,r=e.w,n=e.h;this.graphicsStateManager.state.x=null;this.graphicsStateManager.state.y=null;this.graphicsStateManager.state.w=null;this.graphicsStateManager.state.h=null;this.boundingBoxesStack.save(t,a,r,n)},getRectBoundingBox:function getRectBoundingBox(e,t,a,n){let i=this.graphicsStateManager.state,[s,o]=r.Util.applyTransform([e,t],i.ctm),[c,l]=r.Util.applyTransform([e+a,t],i.ctm),[h,u]=r.Util.applyTransform([e,t+n],i.ctm),[d,f]=r.Util.applyTransform([e+a,t+n],i.ctm);e=Math.min(s,c,h,d);t=Math.min(o,l,u,f);a=Math.max(s,c,h,d)-e;n=Math.max(o,l,u,f)-t;null===i.w?i.w=Math.abs(a):i.w=Math.max(i.x+i.w,e,e+a)-Math.min(i.x,e,e+a);null===i.h?i.h=Math.abs(n):i.h=Math.max(i.y+i.h,t,t+n)-Math.min(i.y,t,t+n);null===i.x?i.x=Math.min(e,e+a):i.x=Math.min(i.x,e,e+a);null===i.y?i.y=Math.min(t,t+n):i.y=Math.min(i.y,t,t+n)},getLineBoundingBox:function getLineBoundingBox(e,t){let a=this.graphicsStateManager.state;[e,t]=r.Util.applyTransform([e,t],a.ctm);null===a.w?a.w=Math.abs(e-a.move_x):a.w=Math.max(e,a.move_x,a.x+a.w)-Math.min(e,a.move_x,a.x);null===a.h?a.h=Math.abs(t-a.move_y):a.h=Math.max(t,a.move_y,a.y+a.h)-Math.min(t,a.move_y,a.y);null===a.x?a.x=Math.min(e,a.move_x):a.x=Math.min(e,a.move_x,a.x);null===a.y?a.y=Math.min(t,a.move_y):a.y=Math.min(t,a.move_y,a.y);a.move_x=e;a.move_y=t},getCurve:function getCurve(e,t,a,r){return function curve(n){return Math.pow(1-n,3)*e+3*n*Math.pow(1-n,2)*t+3*n*n*(1-n)*a+n*n*n*r}},getCurveRoots:function getCurveRoots(e,t,a,r){let n,i,s;n=Math.pow(6*e-12*t+6*a,2)-4*(3*t-3*e)*(-3*e+9*t-9*a+3*r);i=null;s=null;if(Math.abs(e+3*a-3*t-r)>Math.pow(.1,-10)){if(n>=0){i=(-6*e+12*t-6*a+Math.sqrt(n))/(2*(-3*e+9*t-9*a+3*r));s=(-6*e+12*t-6*a-Math.sqrt(n))/(2*(-3*e+9*t-9*a+3*r))}}else n>Math.pow(.1,-10)&&(i=(e-t)/(2*e-4*t+2*a));null!==i&&(i<0||i>1)&&(i=null);null!==s&&(s<0||s>1)&&(s=null);return[i,s]},getCurveBoundingBox:function getCurveBoundingBox(e,t,a,n,i,s,o,c,l){let h=this.graphicsStateManager.state;e!==r.OPS.curveTo2&&([n,i]=r.Util.applyTransform([n,i],h.ctm));[s,o]=r.Util.applyTransform([s,o],h.ctm);[c,l]=r.Util.applyTransform([c,l],h.ctm);let u=this.getCurve(t,n,s,c),d=this.getCurve(a,i,o,l),[f,g]=this.getCurveRoots(t,n,s,c),p=Math.min(t,c,null!==f?u(f):Number.MAX_VALUE,null!==g?u(g):Number.MAX_VALUE),m=Math.max(t,c,null!==f?u(f):Number.MIN_VALUE,null!==g?u(g):Number.MIN_VALUE);[f,g]=this.getCurveRoots(a,i,o,l);let b=Math.min(a,l,null!==f?d(f):Number.MAX_VALUE,null!==g?d(g):Number.MAX_VALUE),y=p,w=b,S=Math.max(a,l,null!==f?d(f):Number.MIN_VALUE,null!==g?d(g):Number.MIN_VALUE)-b,x=m-p;null===h.w?h.w=Math.abs(x):h.w=Math.max(h.x+h.w,y,y+x)-Math.min(h.x,y,y+x);null===h.h?h.h=Math.abs(S):h.h=Math.max(h.y+h.h,w,w+S)-Math.min(h.y,w,w+S);null===h.x?h.x=Math.min(y,y+x):h.x=Math.min(h.x,y,y+x);null===h.y?h.y=Math.min(w,w+S):h.y=Math.min(h.y,w,w+S);h.move_x=y;h.move_y=w},getClip:function getClip(){if(this.clipping){let e=this.graphicsStateManager.state;null===e.clip?e.clip={x:e.x,y:e.y,w:e.w,h:e.h}:e.clip={x:Math.max(e.x,e.clip.x),y:Math.max(e.y,e.clip.y),w:Math.min(e.x+e.w,e.clip.x+e.clip.w)-Math.max(e.x,e.clip.x),h:Math.min(e.y+e.h,e.clip.y+e.clip.h)-Math.max(e.y,e.clip.y)};this.clipping=!1}},getNoMCIDBoundingBoxes:function getNoMCIDBoundingBoxes(){return this.boundingBoxesStack.get()},getImageBoundingBox:function getImageBoundingBox(){let e=this.graphicsStateManager.state,[t,a]=r.Util.applyTransform([0,0],e.ctm),[n,i]=r.Util.applyTransform([0,1],e.ctm),[s,o]=r.Util.applyTransform([1,1],e.ctm),[c,l]=r.Util.applyTransform([1,0],e.ctm);e.x=Math.min(t,n,s,c);e.y=Math.min(a,i,o,l);e.w=Math.max(t,n,s,c)-e.x;e.h=Math.max(a,i,o,l)-e.y},parseOperator:function BoundingBoxesCalculator_parseOperator(e,t){if(!this.ignoreCalculations){e!==r.OPS.markPoint&&e!==r.OPS.markPointProps&&e!==r.OPS.beginMarkedContent&&e!==r.OPS.beginMarkedContentProps&&this.boundingBoxesStack.inc();switch(0|e){case r.OPS.restore:this.graphicsStateManager.restore();this.textStateManager.restore();break;case r.OPS.save:this.graphicsStateManager.save();this.textStateManager.save();break;case r.OPS.fill:case r.OPS.eoFill:case r.OPS.eoFillStroke:case r.OPS.fillStroke:case r.OPS.stroke:case r.OPS.closeEOFillStroke:case r.OPS.closeFillStroke:case r.OPS.closeStroke:this.getClip();this.saveGraphicsBoundingBox();break;case r.OPS.endPath:this.getClip();this.graphicsStateManager.state.clean();break;case r.OPS.transform:this.graphicsStateManager.state.ctm=r.Util.transform(this.graphicsStateManager.state.ctm,t);break;case r.OPS.clip:case r.OPS.eoClip:this.clipping=!0;break;case r.OPS.setFont:this.textStateManager.state.fontSize=t[0];this.textStateManager.state.fontMatrix=t[1].font.fontMatrix;this.textStateManager.state.font=t[1].font;break;case r.OPS.setTextMatrix:this.textStateManager.state.setTextMatrix(t[0],t[1],t[2],t[3],t[4],t[5]);this.textStateManager.state.setTextLineMatrix(t[0],t[1],t[2],t[3],t[4],t[5]);break;case r.OPS.nextLine:this.textStateManager.state.carriageReturn();break;case r.OPS.setCharSpacing:this.textStateManager.state.charSpacing=t[0];break;case r.OPS.setWordSpacing:this.textStateManager.state.wordSpacing=t[0];break;case r.OPS.setHScale:this.textStateManager.state.textHScale=t[0]/100;break;case r.OPS.setLeading:this.textStateManager.state.leading=t[0];break;case r.OPS.setTextRise:this.textStateManager.state.textRise=t[0];break;case r.OPS.setLeadingMoveText:this.textStateManager.state.leading=-t[1];this.textStateManager.state.translateTextLineMatrix(...t);this.textStateManager.state.textMatrix=this.textStateManager.state.textLineMatrix.slice();break;case r.OPS.moveText:this.textStateManager.state.translateTextLineMatrix(t[0],t[1]);this.textStateManager.state.textMatrix=this.textStateManager.state.textLineMatrix.slice();break;case r.OPS.beginText:this.textStateManager.state.textMatrix=r.IDENTITY_MATRIX.slice();this.textStateManager.state.textLineMatrix=r.IDENTITY_MATRIX.slice();break;case r.OPS.moveTo:let e=this.graphicsStateManager.state.ctm.slice();[this.graphicsStateManager.state.move_x,this.graphicsStateManager.state.move_y]=r.Util.applyTransform(t,e);break;case r.OPS.lineTo:this.getLineBoundingBox(t[0],t[1]);break;case r.OPS.curveTo:this.getCurveBoundingBox(r.OPS.curveTo,this.graphicsStateManager.state.move_x,this.graphicsStateManager.state.move_y,t[0],t[1],t[2],t[3],t[4],t[5]);break;case r.OPS.curveTo2:this.getCurveBoundingBox(r.OPS.curveTo2,this.graphicsStateManager.state.move_x,this.graphicsStateManager.state.move_y,this.graphicsStateManager.state.move_x,this.graphicsStateManager.state.move_y,t[0],t[1],t[2],t[3]);break;case r.OPS.curveTo3:this.getCurveBoundingBox(r.OPS.curveTo3,this.graphicsStateManager.state.move_x,this.graphicsStateManager.state.move_y,t[0],t[1],t[2],t[3],t[2],t[3]);break;case r.OPS.rectangle:this.getRectBoundingBox(t[0],t[1],t[2],t[3]);break;case r.OPS.markPoint:case r.OPS.markPointProps:case r.OPS.beginMarkedContent:this.boundingBoxesStack.begin();break;case r.OPS.beginMarkedContentProps:if((0,i.isDict)(t[1])&&t[1].has("MCID")){this.boundingBoxesStack.begin(t[1].get("MCID"));this.graphicsStateManager.state.x=null;this.graphicsStateManager.state.y=null;this.graphicsStateManager.state.w=null;this.graphicsStateManager.state.h=null}else this.boundingBoxesStack.begin();break;case r.OPS.endMarkedContent:let a=this.boundingBoxesStack.end();null!==a&&(this.boundingBoxes[a.mcid]={x:a.x,y:a.y,width:a.w,height:a.h});break;case r.OPS.paintXObject:if("Image"===t[0]){this.getImageBoundingBox();this.saveGraphicsBoundingBox()}break;case r.OPS.showText:this.getTextBoundingBox(t[0])}}},setFont:function BoundingBoxesCalculator_setFont(e){this.textStateManager.state.fontMatrix=e.font.fontMatrix;this.textStateManager.state.font=e.font},incrementOperation:function BoundingBoxesCalculator_incrementOperation(e){this.ignoreCalculations||this.operationIndex++}};return BoundingBoxesCalculator}();t.BoundingBoxesCalculator=s;var o=function GraphicsState(){function GraphicsState(){this.x=null;this.y=null;this.w=null;this.h=null;this.move_x=null;this.move_y=null;this.ctm=r.IDENTITY_MATRIX.slice();this.clip=null}GraphicsState.prototype={clone:function GraphicsState_clone(){var e=Object.create(this);e.ctm=this.ctm.slice();return e},clean:function GraphicsState_clear(){this.x=null;this.y=null;this.w=null;this.h=null;this.move_x=0;this.move_y=0}};return GraphicsState}(),c=function BoundingBoxStack(){function BoundingBoxStack(){this.stack=[]}BoundingBoxStack.prototype={begin:function BoundingBoxStack_begin(e){this.stack.push({x:null,y:null,w:null,h:null,mcid:Number.isInteger(e)?e:null})},save:function BoundingBoxStack_save(e,t,a,r){let n=this.stack[this.stack.length-1];if(n){null===n.w?n.w=a:n.w=Math.max(n.x+n.w,e+a)-Math.min(n.x,e);null===n.x?n.x=e:n.x=Math.min(n.x,e);null===n.h?n.h=r:n.h=Math.max(n.y+n.h,t+r)-Math.min(n.y,t);null===n.y?n.y=t:n.y=Math.min(n.y,t)}},end:function BoundingBoxStack_end(){let e=this.stack.pop();if(null!==e.mcid)return e;this.save(e.x,e.y,e.w,e.h);return null}};return BoundingBoxStack}(),l=function NoMCIDBoundingBoxStack(){function NoMCIDBoundingBoxStack(){this.boundingBoxesStack=new c;this.contentCounter=null;this.content={};this.pointer={}}NoMCIDBoundingBoxStack.prototype={begin:function NoMCIDBoundingBoxStack_begin(e){if(this.contentCounter&&!1===this.contentCounter.inMarkedContent){const e={parent:this.pointer,contentItems:[]};this.pointer.contentItems.push(e);this.pointer=e}else this.inc(!0);this.boundingBoxesStack.begin(e)},save:function NoMCIDBoundingBoxStack_save(e,t,a,r){if(this.pointer.contentItems){this.pointer.contentItems.push({contentItem:{x:e,y:t,w:a,h:r}});this.pointer.final=!0}else console.log("NoMCIDBoundingBoxStackError:","The pointer was in an invalid state, saved data will be lost");this.boundingBoxesStack.save(e,t,a,r)},end:function NoMCIDBoundingBoxStack_end(){const e=this.pointer;this.pointer=e.parent||this.content;delete e.parent;if(this.pointer===this.content){this.contentCounter.inMarkedContent=null;this.pointer={}}return this.boundingBoxesStack.end()},inc:function NoMCIDBoundingBoxStack_inc(e=!1){if(this.contentCounter){if(!1!==this.contentCounter.inMarkedContent&&e||!!this.contentCounter.inMarkedContent===e&&!Object.keys(this.pointer).length){delete this.content[this.contentCounter.index].parent;this.contentCounter={index:this.contentCounter.index+1,inMarkedContent:!e};this.content[this.contentCounter.index]={parent:this.content,contentItems:[]};this.pointer=this.content[this.contentCounter.index]}}else{this.contentCounter={index:0,inMarkedContent:!e};this.content[this.contentCounter.index]={parent:this.content,contentItems:[]};this.pointer=this.content[this.contentCounter.index]}},get:function NoMCIDBoundingBoxStack_get(){try{if(Object.keys(this.content).length&&this.contentCounter){this.content[this.contentCounter.index].parent&&delete this.content[this.contentCounter.index].parent;const e=JSON.parse(JSON.stringify(this.content));this.content[this.contentCounter.index].parent=this.content;return e}return{}}catch(e){console.log("NoMCIDBoundingBoxStackError:",e.message||e);return{}}}};return NoMCIDBoundingBoxStack}()},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Catalog=void 0;var r=a(8),n=a(2),i=a(5),s=a(67),o=a(9),c=a(68),l=a(24),h=a(69),u=a(59),d=a(70),f=a(72);function fetchDestination(e){e instanceof i.Dict&&(e=e.get("D"));return Array.isArray(e)?e:null}class Catalog{constructor(e,t){this.pdfManager=e;this.xref=t;this._catDict=t.getCatalogObj();if(!(this._catDict instanceof i.Dict))throw new n.FormatError("Catalog object is not a dictionary.");this.toplevelPagesDict;this._actualNumPages=null;this.fontCache=new i.RefSetCache;this.builtInCMapCache=new Map;this.standardFontDataCache=new Map;this.globalImageCache=new u.GlobalImageCache;this.pageKidsCountCache=new i.RefSetCache;this.pageIndexCache=new i.RefSetCache;this.nonBlendModesSet=new i.RefSet}get version(){const e=this._catDict.get("Version");return(0,n.shadow)(this,"version",e instanceof i.Name?e.name:null)}get lang(){const e=this._catDict.get("Lang");return(0,n.shadow)(this,"lang","string"==typeof e?(0,n.stringToPDFString)(e):null)}get needsRendering(){const e=this._catDict.get("NeedsRendering");return(0,n.shadow)(this,"needsRendering","boolean"==typeof e&&e)}get collection(){let e=null;try{const t=this._catDict.get("Collection");t instanceof i.Dict&&t.size>0&&(e=t)}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.info)("Cannot fetch Collection entry; assuming no collection is present.")}return(0,n.shadow)(this,"collection",e)}get acroForm(){let e=null;try{const t=this._catDict.get("AcroForm");t instanceof i.Dict&&t.size>0&&(e=t)}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.info)("Cannot fetch AcroForm entry; assuming no forms are present.")}return(0,n.shadow)(this,"acroForm",e)}get acroFormRef(){const e=this._catDict.getRaw("AcroForm");return(0,n.shadow)(this,"acroFormRef",e instanceof i.Ref?e:null)}get metadata(){const e=this._catDict.getRaw("Metadata");if(!(e instanceof i.Ref))return(0,n.shadow)(this,"metadata",null);let t=null;try{const a=!(this.xref.encrypt&&this.xref.encrypt.encryptMetadata),r=this.xref.fetch(e,a);if(r instanceof o.BaseStream&&r.dict instanceof i.Dict){const e=r.dict.get("Type"),a=r.dict.get("Subtype");if((0,i.isName)(e,"Metadata")&&(0,i.isName)(a,"XML")){const e=(0,n.stringToUTF8String)(r.getString());e&&(t=new d.MetadataParser(e).serializable)}}}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.info)(`Skipping invalid Metadata: "${e}".`)}return(0,n.shadow)(this,"metadata",t)}get markInfo(){let e=null;try{e=this._readMarkInfo()}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.warn)("Unable to read mark info.")}return(0,n.shadow)(this,"markInfo",e)}_readMarkInfo(){const e=this._catDict.get("MarkInfo");if(!(e instanceof i.Dict))return null;const t={Marked:!1,UserProperties:!1,Suspects:!1};for(const a in t){const r=e.get(a);"boolean"==typeof r&&(t[a]=r)}return t}get structTreeRoot(){let e=null;try{e=this._readStructTreeRoot()}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.warn)("Unable read to structTreeRoot info.")}return(0,n.shadow)(this,"structTreeRoot",e)}_readStructTreeRoot(){const e=this._catDict.get("StructTreeRoot");if(!(e instanceof i.Dict))return null;const t=new f.StructTreeRoot(e);t.init();return t}get toplevelPagesDict(){const e=this._catDict.get("Pages");if(!(e instanceof i.Dict))throw new n.FormatError("Invalid top-level pages dictionary.");return(0,n.shadow)(this,"toplevelPagesDict",e)}get documentOutline(){let e=null;try{e=this._readDocumentOutline()}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.warn)("Unable to read document outline.")}return(0,n.shadow)(this,"documentOutline",e)}_readDocumentOutline(){let e=this._catDict.get("Outlines");if(!(e instanceof i.Dict))return null;e=e.getRaw("First");if(!(e instanceof i.Ref))return null;const t={items:[]},a=[{obj:e,parent:t}],r=new i.RefSet;r.put(e);const s=this.xref,o=new Uint8ClampedArray(3);for(;a.length>0;){const t=a.shift(),c=s.fetchIfRef(t.obj);if(null===c)continue;if(!c.has("Title"))throw new n.FormatError("Invalid outline item encountered.");const h={url:null,dest:null};Catalog.parseDestDictionary({destDict:c,resultObj:h,docBaseUrl:this.pdfManager.docBaseUrl});const u=c.get("Title"),d=c.get("F")||0,f=c.getArray("C"),g=c.get("Count");let p=o;!Array.isArray(f)||3!==f.length||0===f[0]&&0===f[1]&&0===f[2]||(p=l.ColorSpace.singletons.rgb.getRgb(f,0));const m={dest:h.dest,url:h.url,unsafeUrl:h.unsafeUrl,newWindow:h.newWindow,title:(0,n.stringToPDFString)(u),color:p,count:Number.isInteger(g)?g:void 0,bold:!!(2&d),italic:!!(1&d),items:[]};t.parent.items.push(m);e=c.getRaw("First");if(e instanceof i.Ref&&!r.has(e)){a.push({obj:e,parent:m});r.put(e)}e=c.getRaw("Next");if(e instanceof i.Ref&&!r.has(e)){a.push({obj:e,parent:t.parent});r.put(e)}}return t.items.length>0?t.items:null}get permissions(){let e=null;try{e=this._readPermissions()}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.warn)("Unable to read permissions.")}return(0,n.shadow)(this,"permissions",e)}_readPermissions(){const e=this.xref.trailer.get("Encrypt");if(!(e instanceof i.Dict))return null;let t=e.get("P");if("number"!=typeof t)return null;t+=2**32;const a=[];for(const e in n.PermissionFlag){const r=n.PermissionFlag[e];t&r&&a.push(r)}return a}get optionalContentConfig(){let e=null;try{const t=this._catDict.get("OCProperties");if(!t)return(0,n.shadow)(this,"optionalContentConfig",null);const a=t.get("D");if(!a)return(0,n.shadow)(this,"optionalContentConfig",null);const r=t.get("OCGs");if(!Array.isArray(r))return(0,n.shadow)(this,"optionalContentConfig",null);const s=[],o=[];for(const e of r){if(!(e instanceof i.Ref))continue;o.push(e);const t=this.xref.fetchIfRef(e);s.push({id:e.toString(),name:"string"==typeof t.get("Name")?(0,n.stringToPDFString)(t.get("Name")):null,intent:"string"==typeof t.get("Intent")?(0,n.stringToPDFString)(t.get("Intent")):null})}e=this._readOptionalContentConfig(a,o);e.groups=s}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.warn)(`Unable to read optional content config: ${e}`)}return(0,n.shadow)(this,"optionalContentConfig",e)}_readOptionalContentConfig(e,t){function parseOnOff(e){const a=[];if(Array.isArray(e))for(const r of e)r instanceof i.Ref&&t.includes(r)&&a.push(r.toString());return a}function parseOrder(e,a=0){if(!Array.isArray(e))return null;const n=[];for(const s of e){if(s instanceof i.Ref&&t.includes(s)){r.put(s);n.push(s.toString());continue}const e=parseNestedOrder(s,a);e&&n.push(e)}if(a>0)return n;const s=[];for(const e of t)r.has(e)||s.push(e.toString());s.length&&n.push({name:null,order:s});return n}function parseNestedOrder(e,t){if(++t>s){(0,n.warn)("parseNestedOrder - reached MAX_NESTED_LEVELS.");return null}const r=a.fetchIfRef(e);if(!Array.isArray(r))return null;const i=a.fetchIfRef(r[0]);if("string"!=typeof i)return null;const o=parseOrder(r.slice(1),t);return o&&o.length?{name:(0,n.stringToPDFString)(i),order:o}:null}const a=this.xref,r=new i.RefSet,s=10;return{name:"string"==typeof e.get("Name")?(0,n.stringToPDFString)(e.get("Name")):null,creator:"string"==typeof e.get("Creator")?(0,n.stringToPDFString)(e.get("Creator")):null,baseState:e.get("BaseState")instanceof i.Name?e.get("BaseState").name:null,on:parseOnOff(e.get("ON")),off:parseOnOff(e.get("OFF")),order:parseOrder(e.get("Order")),groups:null}}setActualNumPages(e=null){this._actualNumPages=e}get hasActualNumPages(){return null!==this._actualNumPages}get _pagesCount(){const e=this.toplevelPagesDict.get("Count");if(!Number.isInteger(e))throw new n.FormatError("Page count in top-level pages dictionary is not an integer.");return(0,n.shadow)(this,"_pagesCount",e)}get numPages(){return this.hasActualNumPages?this._actualNumPages:this._pagesCount}get destinations(){const e=this._readDests(),t=Object.create(null);if(e instanceof s.NameTree)for(const[a,r]of e.getAll()){const e=fetchDestination(r);e&&(t[(0,n.stringToPDFString)(a)]=e)}else e instanceof i.Dict&&e.forEach((function(e,a){const r=fetchDestination(a);r&&(t[e]=r)}));return(0,n.shadow)(this,"destinations",t)}getDestination(e){const t=this._readDests();if(t instanceof s.NameTree){const a=fetchDestination(t.get(e));if(a)return a;const r=this.destinations[e];if(r){(0,n.warn)(`Found "${e}" at an incorrect position in the NameTree.`);return r}}else if(t instanceof i.Dict){const a=fetchDestination(t.get(e));if(a)return a}return null}_readDests(){const e=this._catDict.get("Names");return e&&e.has("Dests")?new s.NameTree(e.getRaw("Dests"),this.xref):this._catDict.has("Dests")?this._catDict.get("Dests"):void 0}get pageLabels(){let e=null;try{e=this._readPageLabels()}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.warn)("Unable to read page labels.")}return(0,n.shadow)(this,"pageLabels",e)}_readPageLabels(){const e=this._catDict.getRaw("PageLabels");if(!e)return null;const t=new Array(this.numPages);let a=null,o="";const c=new s.NumberTree(e,this.xref).getAll();let l="",h=1;for(let e=0,s=this.numPages;e=1))throw new n.FormatError("Invalid start in PageLabel dictionary.");h=e}else h=1}switch(a){case"D":l=h;break;case"R":case"r":l=(0,r.toRomanNumerals)(h,"r"===a);break;case"A":case"a":const e=26,t=65,i=97,s="a"===a?i:t,o=h-1;l=String.fromCharCode(s+o%e).repeat(Math.floor(o/e)+1);break;default:if(a)throw new n.FormatError(`Invalid style "${a}" in PageLabel dictionary.`);l=""}t[e]=o+l;h++}return t}get pageLayout(){const e=this._catDict.get("PageLayout");let t="";if(e instanceof i.Name)switch(e.name){case"SinglePage":case"OneColumn":case"TwoColumnLeft":case"TwoColumnRight":case"TwoPageLeft":case"TwoPageRight":t=e.name}return(0,n.shadow)(this,"pageLayout",t)}get pageMode(){const e=this._catDict.get("PageMode");let t="UseNone";if(e instanceof i.Name)switch(e.name){case"UseNone":case"UseOutlines":case"UseThumbs":case"FullScreen":case"UseOC":case"UseAttachments":t=e.name}return(0,n.shadow)(this,"pageMode",t)}get viewerPreferences(){const e=this._catDict.get("ViewerPreferences");if(!(e instanceof i.Dict))return(0,n.shadow)(this,"viewerPreferences",null);let t=null;for(const a of e.getKeys()){const r=e.get(a);let s;switch(a){case"HideToolbar":case"HideMenubar":case"HideWindowUI":case"FitWindow":case"CenterWindow":case"DisplayDocTitle":case"PickTrayByPDFSize":"boolean"==typeof r&&(s=r);break;case"NonFullScreenPageMode":if(r instanceof i.Name)switch(r.name){case"UseNone":case"UseOutlines":case"UseThumbs":case"UseOC":s=r.name;break;default:s="UseNone"}break;case"Direction":if(r instanceof i.Name)switch(r.name){case"L2R":case"R2L":s=r.name;break;default:s="L2R"}break;case"ViewArea":case"ViewClip":case"PrintArea":case"PrintClip":if(r instanceof i.Name)switch(r.name){case"MediaBox":case"CropBox":case"BleedBox":case"TrimBox":case"ArtBox":s=r.name;break;default:s="CropBox"}break;case"PrintScaling":if(r instanceof i.Name)switch(r.name){case"None":case"AppDefault":s=r.name;break;default:s="AppDefault"}break;case"Duplex":if(r instanceof i.Name)switch(r.name){case"Simplex":case"DuplexFlipShortEdge":case"DuplexFlipLongEdge":s=r.name;break;default:s="None"}break;case"PrintPageRange":if(Array.isArray(r)&&r.length%2==0){r.every(((e,t,a)=>Number.isInteger(e)&&e>0&&(0===t||e>=a[t-1])&&e<=this.numPages))&&(s=r)}break;case"NumCopies":Number.isInteger(r)&&r>0&&(s=r);break;default:(0,n.warn)(`Ignoring non-standard key in ViewerPreferences: ${a}.`);continue}if(void 0!==s){t||(t=Object.create(null));t[a]=s}else(0,n.warn)(`Bad value, for key "${a}", in ViewerPreferences: ${r}.`)}return(0,n.shadow)(this,"viewerPreferences",t)}get openAction(){const e=this._catDict.get("OpenAction"),t=Object.create(null);if(e instanceof i.Dict){const a=new i.Dict(this.xref);a.set("A",e);const r={url:null,dest:null,action:null};Catalog.parseDestDictionary({destDict:a,resultObj:r});Array.isArray(r.dest)?t.dest=r.dest:r.action&&(t.action=r.action)}else Array.isArray(e)&&(t.dest=e);return(0,n.shadow)(this,"openAction",(0,n.objectSize)(t)>0?t:null)}get attachments(){const e=this._catDict.get("Names");let t=null;if(e instanceof i.Dict&&e.has("EmbeddedFiles")){const a=new s.NameTree(e.getRaw("EmbeddedFiles"),this.xref);for(const[e,r]of a.getAll()){const a=new h.FileSpec(r,this.xref);t||(t=Object.create(null));t[(0,n.stringToPDFString)(e)]=a.serializable}}return(0,n.shadow)(this,"attachments",t)}get xfaImages(){const e=this._catDict.get("Names");let t=null;if(e instanceof i.Dict&&e.has("XFAImages")){const a=new s.NameTree(e.getRaw("XFAImages"),this.xref);for(const[e,r]of a.getAll()){t||(t=new i.Dict(this.xref));t.set((0,n.stringToPDFString)(e),r)}}return(0,n.shadow)(this,"xfaImages",t)}_collectJavaScript(){const e=this._catDict.get("Names");let t=null;function appendIfJavaScriptDict(e,a){if(!(a instanceof i.Dict))return;if(!(0,i.isName)(a.get("S"),"JavaScript"))return;let r=a.get("JS");if(r instanceof o.BaseStream)r=r.getString();else if("string"!=typeof r)return;null===t&&(t=new Map);t.set(e,(0,n.stringToPDFString)(r))}if(e instanceof i.Dict&&e.has("JavaScript")){const t=new s.NameTree(e.getRaw("JavaScript"),this.xref);for(const[e,a]of t.getAll())appendIfJavaScriptDict((0,n.stringToPDFString)(e),a)}const a=this._catDict.get("OpenAction");a&&appendIfJavaScriptDict("OpenAction",a);return t}get javaScript(){const e=this._collectJavaScript();return(0,n.shadow)(this,"javaScript",e?[...e.values()]:null)}get jsActions(){const e=this._collectJavaScript();let t=(0,r.collectActions)(this.xref,this._catDict,n.DocumentActionEventType);if(e){t||(t=Object.create(null));for(const[a,r]of e)a in t?t[a].push(r):t[a]=[r]}return(0,n.shadow)(this,"jsActions",t)}async fontFallback(e,t){const a=await Promise.all(this.fontCache);for(const r of a)if(r.loadedName===e){r.fallback(t);return}}async cleanup(e=!1){(0,c.clearGlobalCaches)();this.globalImageCache.clear(e);this.pageKidsCountCache.clear();this.pageIndexCache.clear();this.nonBlendModesSet.clear();const t=await Promise.all(this.fontCache);for(const{dict:e}of t)delete e.cacheKey;this.fontCache.clear();this.builtInCMapCache.clear();this.standardFontDataCache.clear()}async getPageDict(e){const t=[this.toplevelPagesDict],a=new i.RefSet,r=this._catDict.getRaw("Pages");r instanceof i.Ref&&a.put(r);const s=this.xref,o=this.pageKidsCountCache,c=this.pageIndexCache;let l=0;for(;t.length;){const r=t.pop();if(r instanceof i.Ref){const h=o.get(r);if(h>=0&&l+h<=e){l+=h;continue}if(a.has(r))throw new n.FormatError("Pages tree contains circular reference.");a.put(r);const u=await s.fetchAsync(r);if(u instanceof i.Dict){let t=u.getRaw("Type");t instanceof i.Ref&&(t=await s.fetchAsync(t));if((0,i.isName)(t,"Page")||!u.has("Kids")){o.has(r)||o.put(r,1);c.has(r)||c.put(r,l);if(l===e)return[u,r];l++;continue}}t.push(u);continue}if(!(r instanceof i.Dict))throw new n.FormatError("Page dictionary kid reference points to wrong type of object.");const{objId:h}=r;let u=r.getRaw("Count");u instanceof i.Ref&&(u=await s.fetchAsync(u));if(Number.isInteger(u)&&u>=0){h&&!o.has(h)&&o.put(h,u);if(l+u<=e){l+=u;continue}}let d=r.getRaw("Kids");d instanceof i.Ref&&(d=await s.fetchAsync(d));if(!Array.isArray(d)){let t=r.getRaw("Type");t instanceof i.Ref&&(t=await s.fetchAsync(t));if((0,i.isName)(t,"Page")||!r.has("Kids")){if(l===e)return[r,null];l++;continue}throw new n.FormatError("Page dictionary kids object is not an array.")}for(let e=d.length-1;e>=0;e--)t.push(d[e])}throw new Error(`Page index ${e} not found.`)}async getAllPageDicts(e=!1){const t=[{currentNode:this.toplevelPagesDict,posInKids:0}],a=new i.RefSet,s=this._catDict.getRaw("Pages");s instanceof i.Ref&&a.put(s);const o=new Map,c=this.xref,l=this.pageIndexCache;let h=0;function addPageDict(e,t){t&&!l.has(t)&&l.put(t,h);o.set(h++,[e,t])}function addPageError(t){if(t instanceof r.XRefEntryException&&!e)throw t;o.set(h++,[t,null])}for(;t.length>0;){const e=t[t.length-1],{currentNode:r,posInKids:s}=e;let o=r.getRaw("Kids");if(o instanceof i.Ref)try{o=await c.fetchAsync(o)}catch(e){addPageError(e);break}if(!Array.isArray(o)){addPageError(new n.FormatError("Page dictionary kids object is not an array."));break}if(s>=o.length){t.pop();continue}const l=o[s];let h;if(l instanceof i.Ref){if(a.has(l)){addPageError(new n.FormatError("Pages tree contains circular reference."));break}a.put(l);try{h=await c.fetchAsync(l)}catch(e){addPageError(e);break}}else h=l;if(!(h instanceof i.Dict)){addPageError(new n.FormatError("Page dictionary kid reference points to wrong type of object."));break}let u=h.getRaw("Type");if(u instanceof i.Ref)try{u=await c.fetchAsync(u)}catch(e){addPageError(e);break}(0,i.isName)(u,"Page")||!h.has("Kids")?addPageDict(h,l instanceof i.Ref?l:null):t.push({currentNode:h,posInKids:0});e.posInKids++}return o}getPageIndex(e){const t=this.pageIndexCache.get(e);if(void 0!==t)return Promise.resolve(t);const a=this.xref;let r=0;const next=t=>function pagesBeforeRef(t){let r,s=0;return a.fetchAsync(t).then((function(a){if((0,i.isRefsEqual)(t,e)&&!(0,i.isDict)(a,"Page")&&!(a instanceof i.Dict&&!a.has("Type")&&a.has("Contents")))throw new n.FormatError("The reference does not point to a /Page dictionary.");if(!a)return null;if(!(a instanceof i.Dict))throw new n.FormatError("Node must be a dictionary.");r=a.getRaw("Parent");return a.getAsync("Parent")})).then((function(e){if(!e)return null;if(!(e instanceof i.Dict))throw new n.FormatError("Parent must be a dictionary.");return e.getAsync("Kids")})).then((function(e){if(!e)return null;const o=[];let c=!1;for(let r=0,l=e.length;r{if(!t){this.pageIndexCache.put(e,r);return r}const[a,n]=t;r+=a;return next(n)}));return next(e)}get baseUrl(){const e=this._catDict.get("URI");if(e instanceof i.Dict){const t=e.get("Base");if("string"==typeof t){const e=(0,n.createValidAbsoluteUrl)(t,null,{tryConvertEncoding:!0});if(e)return(0,n.shadow)(this,"baseUrl",e.href)}}return(0,n.shadow)(this,"baseUrl",null)}static parseDestDictionary(e){const t=e.destDict;if(!(t instanceof i.Dict)){(0,n.warn)("parseDestDictionary: `destDict` must be a dictionary.");return}const a=e.resultObj;if("object"!=typeof a){(0,n.warn)("parseDestDictionary: `resultObj` must be an object.");return}const s=e.docBaseUrl||null;let c,l,h=t.get("A");if(!(h instanceof i.Dict))if(t.has("Dest"))h=t.get("Dest");else{h=t.get("AA");h instanceof i.Dict&&(h.has("D")?h=h.get("D"):h.has("U")&&(h=h.get("U")))}if(h instanceof i.Dict){const e=h.get("S");if(!(e instanceof i.Name)){(0,n.warn)("parseDestDictionary: Invalid type in Action dictionary.");return}const t=e.name;switch(t){case"ResetForm":const e=h.get("Flags"),s=0==(1&("number"==typeof e?e:0)),u=[],d=[];for(const e of h.get("Fields")||[])e instanceof i.Ref?d.push(e.toString()):"string"==typeof e&&u.push((0,n.stringToPDFString)(e));a.resetForm={fields:u,refs:d,include:s};break;case"URI":c=h.get("URI");c instanceof i.Name&&(c="/"+c.name);break;case"GoTo":l=h.get("D");break;case"Launch":case"GoToR":const f=h.get("F");f instanceof i.Dict?c=f.get("F")||null:"string"==typeof f&&(c=f);let g=h.get("D");if(g){g instanceof i.Name&&(g=g.name);if("string"==typeof c){const e=c.split("#")[0];"string"==typeof g?c=e+"#"+g:Array.isArray(g)&&(c=e+"#"+JSON.stringify(g))}}const p=h.get("NewWindow");"boolean"==typeof p&&(a.newWindow=p);break;case"Named":const m=h.get("N");m instanceof i.Name&&(a.action=m.name);break;case"JavaScript":const b=h.get("JS");let y;b instanceof o.BaseStream?y=b.getString():"string"==typeof b&&(y=b);const w=y&&(0,r.recoverJsURL)((0,n.stringToPDFString)(y));if(w){c=w.url;a.newWindow=w.newWindow;break}default:if("JavaScript"===t||"SubmitForm"===t)break;(0,n.warn)(`parseDestDictionary - unsupported action: "${t}".`)}}else t.has("Dest")&&(l=t.get("Dest"));if("string"==typeof c){const e=(0,n.createValidAbsoluteUrl)(c,s,{addDefaultProtocol:!0,tryConvertEncoding:!0});e&&(a.url=e.href);a.unsafeUrl=c}if(l){l instanceof i.Name&&(l=l.name);"string"==typeof l?a.dest=(0,n.stringToPDFString)(l):Array.isArray(l)&&(a.dest=l)}}}t.Catalog=class ExtendedCatalog extends Catalog{constructor(e,t){super(e,t);this.pages=this.getPages(this.toplevelPagesDict.get("Kids"))}_convertStructToObject(e){if(Array.isArray(e))return e.map((e=>this._convertStructToObject(e)));if((0,i.isDict)(e)){let t={};e.getKeys().forEach((a=>{t[a]=this._convertStructToObject(e.get(a))}));return t}return(0,i.isName)(e)?e.name:e}get structTreeRoot(){const e=this._catDict.get("StructTreeRoot");return(0,i.isDict)(e)?(0,n.shadow)(this,"structTreeRoot",e):null}getTreeElement(e,t,a){if((0,i.isDict)(e)&&e.has("Pg")){let a=e.getRaw("Pg"),r=this.pages.findIndex((e=>e.num===a.num&&e.gen===a.gen));r=-1!==r?r:null;r!==t&&(t=r)}if((0,i.isDict)(e)&&e.has("K"))return{name:e.has("S")?(0,n.stringToUTF8String)(e.get("S").name):null,children:this.getTreeElement(e.get("K"),t,e.getRaw("K")),ref:a};if((0,i.isDict)(e)&&e.has("Obj")){let a=e.get("Obj"),r=null;a.has("Type")&&(r=a.get("Type").name);a.has("Subtype")&&(r=a.get("Subtype").name);switch(r){case"Link":case"Annot":let e=a.get("Rect");return{rect:[e[0],e[1],e[2],e[3]],pageIndex:t}}}return Array.isArray(e)?e.map((e=>Number.isInteger(e)?{mcid:e,pageIndex:t}:e.hasOwnProperty("num")&&e.hasOwnProperty("gen")||"OBJR"===e.get("Type")?e.hasOwnProperty("num")&&e.hasOwnProperty("gen")?this.getTreeElement(this.xref.fetch(e),t,e):void 0:this.getTreeElement(e,t))):Number.isInteger(e)?{mcid:e,pageIndex:t}:(0,i.isDict)(e)&&e.has("Type")&&"MCR"===e.get("Type").name?{mcid:e.get("MCID"),pageIndex:t}:void 0}getPages(e){let t=[];e.map((e=>{if(e instanceof i.Ref){let a=this.xref.fetch(e);switch(a.get("Type").name){case"Page":t.push(e);break;case"Pages":let r=this.getPages(a.get("Kids"));t=t.concat(r)}}}));return t}get structureTree(){let e=null;this.structTreeRoot&&(0,i.isDict)(this.structTreeRoot)&&this.structTreeRoot.has("K")&&(e=this.getTreeElement(this.structTreeRoot.get("K"),null,this.structTreeRoot.getRaw("K")));return(0,n.shadow)(this,"structureTree",e)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.NumberTree=t.NameTree=void 0;var r=a(5),n=a(2);class NameOrNumberTree{constructor(e,t,a){this.constructor===NameOrNumberTree&&(0,n.unreachable)("Cannot initialize NameOrNumberTree.");this.root=e;this.xref=t;this._type=a}getAll(){const e=new Map;if(!this.root)return e;const t=this.xref,a=new r.RefSet;a.put(this.root);const i=[this.root];for(;i.length>0;){const s=t.fetchIfRef(i.shift());if(!(s instanceof r.Dict))continue;if(s.has("Kids")){const e=s.get("Kids");if(!Array.isArray(e))continue;for(const t of e){if(a.has(t))throw new n.FormatError(`Duplicate entry in "${this._type}" tree.`);i.push(t);a.put(t)}continue}const o=s.get(this._type);if(Array.isArray(o))for(let a=0,r=o.length;a10){(0,n.warn)(`Search depth limit reached for "${this._type}" tree.`);return null}const i=a.get("Kids");if(!Array.isArray(i))return null;let s=0,o=i.length-1;for(;s<=o;){const r=s+o>>1,n=t.fetchIfRef(i[r]),c=n.get("Limits");if(et.fetchIfRef(c[1]))){a=n;break}s=r+1}}if(s>o)return null}const i=a.get(this._type);if(Array.isArray(i)){let a=0,r=i.length-2;for(;a<=r;){const n=a+r>>1,s=n+(1&n),o=t.fetchIfRef(i[s]);if(eo))return t.fetchIfRef(i[s+1]);a=s+2}}}return null}}t.NameTree=class NameTree extends NameOrNumberTree{constructor(e,t){super(e,t,"Names")}};t.NumberTree=class NumberTree extends NameOrNumberTree{constructor(e,t){super(e,t,"Nums")}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.clearGlobalCaches=function clearGlobalCaches(){(0,r.clearPrimitiveCaches)();(0,n.clearUnicodeCaches)()};var r=a(5),n=a(21)},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.FileSpec=void 0;var r=a(2),n=a(9),i=a(5);function pickPlatformItem(e){return e.has("UF")?e.get("UF"):e.has("F")?e.get("F"):e.has("Unix")?e.get("Unix"):e.has("Mac")?e.get("Mac"):e.has("DOS")?e.get("DOS"):null}t.FileSpec=class FileSpec{constructor(e,t){if(e instanceof i.Dict){this.xref=t;this.root=e;e.has("FS")&&(this.fs=e.get("FS"));this.description=e.has("Desc")?(0,r.stringToPDFString)(e.get("Desc")):"";e.has("RF")&&(0,r.warn)("Related file specifications are not supported");this.contentAvailable=!0;if(!e.has("EF")){this.contentAvailable=!1;(0,r.warn)("Non-embedded file specifications are not supported")}}}get filename(){if(!this._filename&&this.root){const e=pickPlatformItem(this.root)||"unnamed";this._filename=(0,r.stringToPDFString)(e).replace(/\\\\/g,"\\").replace(/\\\//g,"/").replace(/\\/g,"/")}return this._filename}get content(){if(!this.contentAvailable)return null;!this.contentRef&&this.root&&(this.contentRef=pickPlatformItem(this.root.get("EF")));let e=null;if(this.contentRef){const t=this.xref.fetchIfRef(this.contentRef);t instanceof n.BaseStream?e=t.getBytes():(0,r.warn)("Embedded file specification points to non-existing/invalid content")}else(0,r.warn)("Embedded file specification does not have a content");return e}get serializable(){return{filename:this.filename,content:this.content}}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.MetadataParser=void 0;var r=a(71);t.MetadataParser=class MetadataParser{constructor(e){e=this._repair(e);const t=new r.SimpleXMLParser({lowerCaseName:!0}).parseFromString(e);this._metadataMap=new Map;this._data=e;t&&this._parse(t)}_repair(e){return e.replace(/^[^<]+/,"").replace(/>\\376\\377([^<]+)/g,(function(e,t){const a=t.replace(/\\([0-3])([0-7])([0-7])/g,(function(e,t,a,r){return String.fromCharCode(64*t+8*a+1*r)})).replace(/&(amp|apos|gt|lt|quot);/g,(function(e,t){switch(t){case"amp":return"&";case"apos":return"'";case"gt":return">";case"lt":return"<";case"quot":return'"'}throw new Error(`_repair: ${t} isn't defined.`)})),r=[];for(let e=0,t=a.length;e=32&&t<127&&60!==t&&62!==t&&38!==t?r.push(String.fromCharCode(t)):r.push("&#x"+(65536+t).toString(16).substring(1)+";")}return">"+r.join("")}))}_getSequence(e){const t=e.nodeName;return"rdf:bag"!==t&&"rdf:seq"!==t&&"rdf:alt"!==t?null:e.childNodes.filter((e=>"rdf:li"===e.nodeName))}_parseArray(e){if(!e.hasChildNodes())return;const[t]=e.childNodes,a=this._getSequence(t)||[];this._metadataMap.set(e.nodeName,a.map((e=>e.textContent.trim())))}_parse(e){let t=e.documentElement;if("rdf:rdf"!==t.nodeName){t=t.firstChild;for(;t&&"rdf:rdf"!==t.nodeName;)t=t.nextSibling}if(t&&"rdf:rdf"===t.nodeName&&t.hasChildNodes())for(const e of t.childNodes)if("rdf:description"===e.nodeName)for(const t of e.childNodes){const e=t.nodeName;switch(e){case"#text":continue;case"dc:creator":case"dc:subject":this._parseArray(t);continue}this._metadataMap.set(e,t.textContent.trim())}}get serializable(){return{parsedData:this._metadataMap,rawData:this._data}}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XMLParserErrorCode=t.XMLParserBase=t.SimpleXMLParser=t.SimpleDOMNode=void 0;var r=a(8);const n={NoError:0,EndOfDocument:-1,UnterminatedCdat:-2,UnterminatedXmlDeclaration:-3,UnterminatedDoctypeDeclaration:-4,UnterminatedComment:-5,MalformedElement:-6,OutOfMemory:-7,UnterminatedAttributeValue:-8,UnterminatedElement:-9,ElementNeverBegun:-10};t.XMLParserErrorCode=n;function isWhitespace(e,t){const a=e[t];return" "===a||"\n"===a||"\r"===a||"\t"===a}class XMLParserBase{_resolveEntities(e){return e.replace(/&([^;]+);/g,((e,t)=>{if("#x"===t.substring(0,2))return String.fromCodePoint(parseInt(t.substring(2),16));if("#"===t.substring(0,1))return String.fromCodePoint(parseInt(t.substring(1),10));switch(t){case"lt":return"<";case"gt":return">";case"amp":return"&";case"quot":return'"';case"apos":return"'"}return this.onResolveEntity(t)}))}_parseContent(e,t){const a=[];let r=t;function skipWs(){for(;r"!==e[r]&&"/"!==e[r];)++r;const n=e.substring(t,r);skipWs();for(;r"!==e[r]&&"/"!==e[r]&&"?"!==e[r];){skipWs();let t="",n="";for(;r"!==e[a]&&"?"!==e[a]&&"/"!==e[a];)++a;const r=e.substring(t,a);!function skipWs(){for(;a"!==e[a+1]);)++a;return{name:r,value:e.substring(n,a),parsed:a-t}}parseXml(e){let t=0;for(;t",a);if(t<0){this.onError(n.UnterminatedElement);return}this.onEndElement(e.substring(a,t));a=t+1;break;case"?":++a;const r=this._parseProcessingInstruction(e,a);if("?>"!==e.substring(a+r.parsed,a+r.parsed+2)){this.onError(n.UnterminatedXmlDeclaration);return}this.onPi(r.name,r.value);a+=r.parsed+2;break;case"!":if("--"===e.substring(a+1,a+3)){t=e.indexOf("--\x3e",a+3);if(t<0){this.onError(n.UnterminatedComment);return}this.onComment(e.substring(a+3,t));a=t+3}else if("[CDATA["===e.substring(a+1,a+8)){t=e.indexOf("]]>",a+8);if(t<0){this.onError(n.UnterminatedCdat);return}this.onCdata(e.substring(a+8,t));a=t+3}else{if("DOCTYPE"!==e.substring(a+1,a+8)){this.onError(n.MalformedElement);return}{const r=e.indexOf("[",a+8);let i=!1;t=e.indexOf(">",a+8);if(t<0){this.onError(n.UnterminatedDoctypeDeclaration);return}if(r>0&&t>r){t=e.indexOf("]>",a+8);if(t<0){this.onError(n.UnterminatedDoctypeDeclaration);return}i=!0}const s=e.substring(a+8,t+(i?1:0));this.onDoctype(s);a=t+(i?2:1)}}break;default:const i=this._parseContent(e,a);if(null===i){this.onError(n.MalformedElement);return}let s=!1;if("/>"===e.substring(a+i.parsed,a+i.parsed+2))s=!0;else if(">"!==e.substring(a+i.parsed,a+i.parsed+1)){this.onError(n.UnterminatedElement);return}this.onBeginElement(i.name,i.attributes,s);a+=i.parsed+(s?2:1)}}else{for(;a0}searchNode(e,t){if(t>=e.length)return this;const a=e[t],r=[];let n=this;for(;;){if(a.name===n.nodeName){if(0!==a.pos){if(0===r.length)return null;{const[i]=r.pop();let s=0;for(const r of i.childNodes)if(a.name===r.nodeName){if(s===a.pos)return r.searchNode(e,t+1);s++}return n.searchNode(e,t+1)}}{const a=n.searchNode(e,t+1);if(null!==a)return a}}if(n.childNodes&&0!==n.childNodes.length){r.push([n,0]);n=n.childNodes[0]}else{if(0===r.length)return null;for(;0!==r.length;){const[e,t]=r.pop(),a=t+1;if(a");for(const t of this.childNodes)t.dump(e);e.push(``)}else this.nodeValue?e.push(`>${(0,r.encodeToXmlString)(this.nodeValue)}`):e.push("/>")}else e.push((0,r.encodeToXmlString)(this.nodeValue))}}t.SimpleDOMNode=SimpleDOMNode;t.SimpleXMLParser=class SimpleXMLParser extends XMLParserBase{constructor({hasAttributes:e=!1,lowerCaseName:t=!1}){super();this._currentFragment=null;this._stack=null;this._errorCode=n.NoError;this._hasAttributes=e;this._lowerCaseName=t}parseFromString(e){this._currentFragment=[];this._stack=[];this._errorCode=n.NoError;this.parseXml(e);if(this._errorCode!==n.NoError)return;const[t]=this._currentFragment;return t?{documentElement:t}:void 0}onText(e){if(function isWhitespaceString(e){for(let t=0,a=e.length;t{Object.defineProperty(t,"__esModule",{value:!0});t.StructTreeRoot=t.StructTreePage=void 0;var r=a(5),n=a(2),i=a(67);const s="PAGE_CONTENT",o="STREAM_CONTENT",c="OBJECT",l="ELEMENT";t.StructTreeRoot=class StructTreeRoot{constructor(e){this.dict=e;this.roleMap=new Map}init(){this.readRoleMap()}readRoleMap(){const e=this.dict.get("RoleMap");e instanceof r.Dict&&e.forEach(((e,t)=>{t instanceof r.Name&&this.roleMap.set(e,t.name)}))}};class StructElementNode{constructor(e,t){this.tree=e;this.dict=t;this.kids=[];this.parseKids()}get role(){const e=this.dict.get("S"),t=e instanceof r.Name?e.name:"",{root:a}=this.tree;return a.roleMap.has(t)?a.roleMap.get(t):t}parseKids(){let e=null;const t=this.dict.getRaw("Pg");t instanceof r.Ref&&(e=t.toString());const a=this.dict.get("K");if(Array.isArray(a))for(const t of a){const a=this.parseKid(e,t);a&&this.kids.push(a)}else{const t=this.parseKid(e,a);t&&this.kids.push(t)}}parseKid(e,t){if(Number.isInteger(t))return this.tree.pageDict.objId!==e?null:new StructElement({type:s,mcid:t,pageObjId:e});let a=null;t instanceof r.Ref?a=this.dict.xref.fetch(t):t instanceof r.Dict&&(a=t);if(!a)return null;const n=a.getRaw("Pg");n instanceof r.Ref&&(e=n.toString());const i=a.get("Type")instanceof r.Name?a.get("Type").name:null;return"MCR"===i?this.tree.pageDict.objId!==e?null:new StructElement({type:o,refObjId:a.getRaw("Stm")instanceof r.Ref?a.getRaw("Stm").toString():null,pageObjId:e,mcid:a.get("MCID")}):"OBJR"===i?this.tree.pageDict.objId!==e?null:new StructElement({type:c,refObjId:a.getRaw("Obj")instanceof r.Ref?a.getRaw("Obj").toString():null,pageObjId:e}):new StructElement({type:l,dict:a})}}class StructElement{constructor({type:e,dict:t=null,mcid:a=null,pageObjId:r=null,refObjId:n=null}){this.type=e;this.dict=t;this.mcid=a;this.pageObjId=r;this.refObjId=n;this.parentNode=null}}t.StructTreePage=class StructTreePage{constructor(e,t){this.root=e;this.rootDict=e?e.dict:null;this.pageDict=t;this.nodes=[]}parse(){if(!this.root||!this.rootDict)return;const e=this.rootDict.get("ParentTree");if(!e)return;const t=this.pageDict.get("StructParents");if(!Number.isInteger(t))return;const a=new i.NumberTree(e,this.rootDict.xref).get(t);if(!Array.isArray(a))return;const n=new Map;for(const e of a)e instanceof r.Ref&&this.addNode(this.rootDict.xref.fetch(e),n)}addNode(e,t,a=0){if(a>40){(0,n.warn)("StructTree MAX_DEPTH reached.");return null}if(t.has(e))return t.get(e);const i=new StructElementNode(this,e);t.set(e,i);const s=e.get("P");if(!s||(0,r.isName)(s.get("Type"),"StructTreeRoot")){this.addTopLevelNode(e,i)||t.delete(e);return i}const o=this.addNode(s,t,a+1);if(!o)return i;let c=!1;for(const t of o.kids)if(t.type===l&&t.dict===e){t.parentNode=i;c=!0}c||t.delete(e);return i}addTopLevelNode(e,t){const a=this.rootDict.get("K");if(!a)return!1;if(a instanceof r.Dict){if(a.objId!==e.objId)return!1;this.nodes[0]=t;return!0}if(!Array.isArray(a))return!0;let n=!1;for(let r=0;r40){(0,n.warn)("StructTree too deep to be fully serialized.");return}const r=Object.create(null);r.role=e.role;r.children=[];t.children.push(r);const i=e.dict.get("Alt");"string"==typeof i&&(r.alt=(0,n.stringToPDFString)(i));const h=e.dict.get("Lang");"string"==typeof h&&(r.lang=(0,n.stringToPDFString)(h));for(const t of e.kids){const e=t.type===l?t.parentNode:null;e?nodeToSerializable(e,r,a+1):t.type===s||t.type===o?r.children.push({type:"content",id:`page${t.pageObjId}_mcid${t.mcid}`}):t.type===c&&r.children.push({type:"object",id:t.refObjId})}}const e=Object.create(null);e.children=[];e.role="Root";for(const t of this.nodes)t&&nodeToSerializable(t,e);return e}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ObjectLoader=void 0;var r=a(5),n=a(9),i=a(8),s=a(2);function addChildren(e,t){if(e instanceof r.Dict)e=e.getRawValues();else if(e instanceof n.BaseStream)e=e.dict.getRawValues();else if(!Array.isArray(e))return;for(const i of e)((a=i)instanceof r.Ref||a instanceof r.Dict||a instanceof n.BaseStream||Array.isArray(a))&&t.push(i);var a}t.ObjectLoader=class ObjectLoader{constructor(e,t,a){this.dict=e;this.keys=t;this.xref=a;this.refSet=null}async load(){if(this.xref.stream.isDataLoaded)return;const{keys:e,dict:t}=this;this.refSet=new r.RefSet;const a=[];for(let r=0,n=e.length;r{Object.defineProperty(t,"__esModule",{value:!0});t.incrementalUpdate=function incrementalUpdate({originalData:e,xrefInfo:t,newRefs:a,xref:o=null,hasXfa:l=!1,xfaDatasetsRef:h=null,hasXfaDatasetsEntry:u=!1,acroFormRef:d=null,acroForm:f=null,xfaData:g=null}){l&&function updateXFA({xfaData:e,xfaDatasetsRef:t,hasXfaDatasetsEntry:a,acroFormRef:n,acroForm:o,newRefs:c,xref:l,xrefInfo:h}){if(null===l)return;if(!a){if(!n){(0,r.warn)("XFA - Cannot save it");return}const e=o.get("XFA"),a=e.slice();a.splice(2,0,"datasets");a.splice(3,0,t);o.set("XFA",a);const i=l.encrypt;let s=null;i&&(s=i.createCipherTransform(n.num,n.gen));const h=[`${n.num} ${n.gen} obj\n`];writeDict(o,h,s);h.push("\n");o.set("XFA",e);c.push({ref:n,data:h.join("")})}if(null===e){e=function writeXFADataForAcroform(e,t){const a=new s.SimpleXMLParser({hasAttributes:!0}).parseFromString(e);for(const{xfa:e}of t){if(!e)continue;const{path:t,value:n}=e;if(!t)continue;const o=a.documentElement.searchNode((0,i.parseXFAPath)(t),0);o?Array.isArray(n)?o.childNodes=n.map((e=>new s.SimpleDOMNode("value",e))):o.childNodes=[new s.SimpleDOMNode("#text",n)]:(0,r.warn)(`Node not found for path: ${t}`)}const n=[];a.documentElement.dump(n);return n.join("")}(l.fetchIfRef(t).getString(),c)}const u=l.encrypt;if(u){e=u.createCipherTransform(t.num,t.gen).encryptString(e)}const d=`${t.num} ${t.gen} obj\n<< /Type /EmbeddedFile /Length ${e.length}>>\nstream\n`+e+"\nendstream\nendobj\n";c.push({ref:t,data:d})}({xfaData:g,xfaDatasetsRef:h,hasXfaDatasetsEntry:u,acroFormRef:d,acroForm:f,newRefs:a,xref:o,xrefInfo:t});const p=new n.Dict(null),m=t.newRef;let b,y;const w=e[e.length-1];if(10===w||13===w){b=[];y=e.length}else{b=["\n"];y=e.length+1}p.set("Size",m.num+1);p.set("Prev",t.startXRef);p.set("Type",n.Name.get("XRef"));null!==t.rootRef&&p.set("Root",t.rootRef);null!==t.infoRef&&p.set("Info",t.infoRef);null!==t.encryptRef&&p.set("Encrypt",t.encryptRef);a.push({ref:m,data:""});a=a.sort(((e,t)=>e.ref.num-t.ref.num));const S=[[0,1,65535]],x=[0,1];let k=0;for(const{ref:e,data:t}of a){k=Math.max(k,y);S.push([1,y,Math.min(e.gen,65535)]);y+=t.length;x.push(e.num,1);b.push(t)}p.set("Index",x);if(Array.isArray(t.fileIds)&&t.fileIds.length>0){const e=function computeMD5(e,t){const a=Math.floor(Date.now()/1e3),n=t.filename||"",i=[a.toString(),n,e.toString()];let s=i.reduce(((e,t)=>e+t.length),0);for(const e of Object.values(t.info)){i.push(e);s+=e.length}const o=new Uint8Array(s);let l=0;for(const e of i){writeString(e,l,o);l+=e.length}return(0,r.bytesToString)((0,c.calculateMD5)(o))}(y,t);p.set("ID",[t.fileIds[0],e])}const C=[1,Math.ceil(Math.log2(k)/8),2],v=(C[0]+C[1]+C[2])*S.length;p.set("W",C);p.set("Length",v);b.push(`${m.num} ${m.gen} obj\n`);writeDict(p,b,null);b.push(" stream\n");const F=b.reduce(((e,t)=>e+t.length),0),O=`\nendstream\nendobj\nstartxref\n${y}\n%%EOF\n`,T=new Uint8Array(e.length+F+v+O.length);T.set(e);let M=e.length;for(const e of b){writeString(e,M,T);M+=e.length}for(const[e,t,a]of S){M=writeInt(e,C[0],M,T);M=writeInt(t,C[1],M,T);M=writeInt(a,C[2],M,T)}writeString(O,M,T);return T};t.writeDict=writeDict;var r=a(2),n=a(5),i=a(8),s=a(71),o=a(9),c=a(75);function writeDict(e,t,a){t.push("<<");for(const r of e.getKeys()){t.push(` /${(0,i.escapePDFName)(r)} `);writeValue(e.getRaw(r),t,a)}t.push(">>")}function writeValue(e,t,a){if(e instanceof n.Name)t.push(`/${(0,i.escapePDFName)(e.name)}`);else if(e instanceof n.Ref)t.push(`${e.num} ${e.gen} R`);else if(Array.isArray(e))!function writeArray(e,t,a){t.push("[");let r=!0;for(const n of e){r?r=!1:t.push(" ");writeValue(n,t,a)}t.push("]")}(e,t,a);else if("string"==typeof e){null!==a&&(e=a.encryptString(e));t.push(`(${(0,r.escapeString)(e)})`)}else"number"==typeof e?t.push(function numberToString(e){if(Number.isInteger(e))return e.toString();const t=Math.round(100*e);return t%100==0?(t/100).toString():t%10==0?e.toFixed(1):e.toFixed(2)}(e)):"boolean"==typeof e?t.push(e.toString()):e instanceof n.Dict?writeDict(e,t,a):e instanceof o.BaseStream?function writeStream(e,t,a){writeDict(e.dict,t,a);t.push(" stream\n");let r=e.getString();null!==a&&(r=a.encryptString(r));t.push(r,"\nendstream\n")}(e,t,a):null===e?t.push("null"):(0,r.warn)(`Unhandled value in writer: ${typeof e}, please file a bug.`)}function writeInt(e,t,a,r){for(let n=t+a-1;n>a-1;n--){r[n]=255&e;e>>=8}return a+t}function writeString(e,t,a){for(let r=0,n=e.length;r{Object.defineProperty(t,"__esModule",{value:!0});t.calculateSHA256=t.calculateMD5=t.PDF20=t.PDF17=t.CipherTransformFactory=t.ARCFourCipher=t.AES256Cipher=t.AES128Cipher=void 0;t.calculateSHA384=calculateSHA384;t.calculateSHA512=void 0;var r=a(2),n=a(5),i=a(76);class ARCFourCipher{constructor(e){this.a=0;this.b=0;const t=new Uint8Array(256),a=e.length;for(let e=0;e<256;++e)t[e]=e;for(let r=0,n=0;r<256;++r){const i=t[r];n=n+i+e[r%a]&255;t[r]=t[n];t[n]=i}this.s=t}encryptBlock(e){let t=this.a,a=this.b;const r=this.s,n=e.length,i=new Uint8Array(n);for(let s=0;s>5&255;h[u++]=n>>13&255;h[u++]=n>>21&255;h[u++]=n>>>29&255;h[u++]=0;h[u++]=0;h[u++]=0;const g=new Int32Array(16);for(u=0;u>>32-o)|0;n=i}i=i+n|0;s=s+l|0;o=o+f|0;c=c+p|0}return new Uint8Array([255&i,i>>8&255,i>>16&255,i>>>24&255,255&s,s>>8&255,s>>16&255,s>>>24&255,255&o,o>>8&255,o>>16&255,o>>>24&255,255&c,c>>8&255,c>>16&255,c>>>24&255])}}();t.calculateMD5=s;class Word64{constructor(e,t){this.high=0|e;this.low=0|t}and(e){this.high&=e.high;this.low&=e.low}xor(e){this.high^=e.high;this.low^=e.low}or(e){this.high|=e.high;this.low|=e.low}shiftRight(e){if(e>=32){this.low=this.high>>>e-32|0;this.high=0}else{this.low=this.low>>>e|this.high<<32-e;this.high=this.high>>>e|0}}shiftLeft(e){if(e>=32){this.high=this.low<>>32-e;this.low<<=e}}rotateRight(e){let t,a;if(32&e){a=this.low;t=this.high}else{t=this.low;a=this.high}e&=31;this.low=t>>>e|a<<32-e;this.high=a>>>e|t<<32-e}not(){this.high=~this.high;this.low=~this.low}add(e){const t=(this.low>>>0)+(e.low>>>0);let a=(this.high>>>0)+(e.high>>>0);t>4294967295&&(a+=1);this.low=0|t;this.high=0|a}copyTo(e,t){e[t]=this.high>>>24&255;e[t+1]=this.high>>16&255;e[t+2]=this.high>>8&255;e[t+3]=255&this.high;e[t+4]=this.low>>>24&255;e[t+5]=this.low>>16&255;e[t+6]=this.low>>8&255;e[t+7]=255&this.low}assign(e){this.high=e.high;this.low=e.low}}const o=function calculateSHA256Closure(){function rotr(e,t){return e>>>t|e<<32-t}function ch(e,t,a){return e&t^~e&a}function maj(e,t,a){return e&t^e&a^t&a}function sigma(e){return rotr(e,2)^rotr(e,13)^rotr(e,22)}function sigmaPrime(e){return rotr(e,6)^rotr(e,11)^rotr(e,25)}function littleSigma(e){return rotr(e,7)^rotr(e,18)^e>>>3}const e=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];return function hash(t,a,r){let n=1779033703,i=3144134277,s=1013904242,o=2773480762,c=1359893119,l=2600822924,h=528734635,u=1541459225;const d=64*Math.ceil((r+9)/64),f=new Uint8Array(d);let g,p;for(g=0;g>>29&255;f[g++]=r>>21&255;f[g++]=r>>13&255;f[g++]=r>>5&255;f[g++]=r<<3&255;const b=new Uint32Array(64);for(g=0;g>>10)+b[p-7]+littleSigma(b[p-15])+b[p-16]|0;let t,a,r=n,d=i,m=s,w=o,S=c,x=l,k=h,C=u;for(p=0;p<64;++p){t=C+sigmaPrime(S)+ch(S,x,k)+e[p]+b[p];a=sigma(r)+maj(r,d,m);C=k;k=x;x=S;S=w+t|0;w=m;m=d;d=r;r=t+a|0}n=n+r|0;i=i+d|0;s=s+m|0;o=o+w|0;c=c+S|0;l=l+x|0;h=h+k|0;u=u+C|0}var y;return new Uint8Array([n>>24&255,n>>16&255,n>>8&255,255&n,i>>24&255,i>>16&255,i>>8&255,255&i,s>>24&255,s>>16&255,s>>8&255,255&s,o>>24&255,o>>16&255,o>>8&255,255&o,c>>24&255,c>>16&255,c>>8&255,255&c,l>>24&255,l>>16&255,l>>8&255,255&l,h>>24&255,h>>16&255,h>>8&255,255&h,u>>24&255,u>>16&255,u>>8&255,255&u])}}();t.calculateSHA256=o;const c=function calculateSHA512Closure(){function ch(e,t,a,r,n){e.assign(t);e.and(a);n.assign(t);n.not();n.and(r);e.xor(n)}function maj(e,t,a,r,n){e.assign(t);e.and(a);n.assign(t);n.and(r);e.xor(n);n.assign(a);n.and(r);e.xor(n)}function sigma(e,t,a){e.assign(t);e.rotateRight(28);a.assign(t);a.rotateRight(34);e.xor(a);a.assign(t);a.rotateRight(39);e.xor(a)}function sigmaPrime(e,t,a){e.assign(t);e.rotateRight(14);a.assign(t);a.rotateRight(18);e.xor(a);a.assign(t);a.rotateRight(41);e.xor(a)}function littleSigma(e,t,a){e.assign(t);e.rotateRight(1);a.assign(t);a.rotateRight(8);e.xor(a);a.assign(t);a.shiftRight(7);e.xor(a)}function littleSigmaPrime(e,t,a){e.assign(t);e.rotateRight(19);a.assign(t);a.rotateRight(61);e.xor(a);a.assign(t);a.shiftRight(6);e.xor(a)}const e=[new Word64(1116352408,3609767458),new Word64(1899447441,602891725),new Word64(3049323471,3964484399),new Word64(3921009573,2173295548),new Word64(961987163,4081628472),new Word64(1508970993,3053834265),new Word64(2453635748,2937671579),new Word64(2870763221,3664609560),new Word64(3624381080,2734883394),new Word64(310598401,1164996542),new Word64(607225278,1323610764),new Word64(1426881987,3590304994),new Word64(1925078388,4068182383),new Word64(2162078206,991336113),new Word64(2614888103,633803317),new Word64(3248222580,3479774868),new Word64(3835390401,2666613458),new Word64(4022224774,944711139),new Word64(264347078,2341262773),new Word64(604807628,2007800933),new Word64(770255983,1495990901),new Word64(1249150122,1856431235),new Word64(1555081692,3175218132),new Word64(1996064986,2198950837),new Word64(2554220882,3999719339),new Word64(2821834349,766784016),new Word64(2952996808,2566594879),new Word64(3210313671,3203337956),new Word64(3336571891,1034457026),new Word64(3584528711,2466948901),new Word64(113926993,3758326383),new Word64(338241895,168717936),new Word64(666307205,1188179964),new Word64(773529912,1546045734),new Word64(1294757372,1522805485),new Word64(1396182291,2643833823),new Word64(1695183700,2343527390),new Word64(1986661051,1014477480),new Word64(2177026350,1206759142),new Word64(2456956037,344077627),new Word64(2730485921,1290863460),new Word64(2820302411,3158454273),new Word64(3259730800,3505952657),new Word64(3345764771,106217008),new Word64(3516065817,3606008344),new Word64(3600352804,1432725776),new Word64(4094571909,1467031594),new Word64(275423344,851169720),new Word64(430227734,3100823752),new Word64(506948616,1363258195),new Word64(659060556,3750685593),new Word64(883997877,3785050280),new Word64(958139571,3318307427),new Word64(1322822218,3812723403),new Word64(1537002063,2003034995),new Word64(1747873779,3602036899),new Word64(1955562222,1575990012),new Word64(2024104815,1125592928),new Word64(2227730452,2716904306),new Word64(2361852424,442776044),new Word64(2428436474,593698344),new Word64(2756734187,3733110249),new Word64(3204031479,2999351573),new Word64(3329325298,3815920427),new Word64(3391569614,3928383900),new Word64(3515267271,566280711),new Word64(3940187606,3454069534),new Word64(4118630271,4000239992),new Word64(116418474,1914138554),new Word64(174292421,2731055270),new Word64(289380356,3203993006),new Word64(460393269,320620315),new Word64(685471733,587496836),new Word64(852142971,1086792851),new Word64(1017036298,365543100),new Word64(1126000580,2618297676),new Word64(1288033470,3409855158),new Word64(1501505948,4234509866),new Word64(1607167915,987167468),new Word64(1816402316,1246189591)];return function hash(t,a,r,n=!1){let i,s,o,c,l,h,u,d;if(n){i=new Word64(3418070365,3238371032);s=new Word64(1654270250,914150663);o=new Word64(2438529370,812702999);c=new Word64(355462360,4144912697);l=new Word64(1731405415,4290775857);h=new Word64(2394180231,1750603025);u=new Word64(3675008525,1694076839);d=new Word64(1203062813,3204075428)}else{i=new Word64(1779033703,4089235720);s=new Word64(3144134277,2227873595);o=new Word64(1013904242,4271175723);c=new Word64(2773480762,1595750129);l=new Word64(1359893119,2917565137);h=new Word64(2600822924,725511199);u=new Word64(528734635,4215389547);d=new Word64(1541459225,327033209)}const f=128*Math.ceil((r+17)/128),g=new Uint8Array(f);let p,m;for(p=0;p>>29&255;g[p++]=r>>21&255;g[p++]=r>>13&255;g[p++]=r>>5&255;g[p++]=r<<3&255;const y=new Array(80);for(p=0;p<80;p++)y[p]=new Word64(0,0);let w=new Word64(0,0),S=new Word64(0,0),x=new Word64(0,0),k=new Word64(0,0),C=new Word64(0,0),v=new Word64(0,0),F=new Word64(0,0),O=new Word64(0,0);const T=new Word64(0,0),M=new Word64(0,0),E=new Word64(0,0),D=new Word64(0,0);let N,L;for(p=0;p=1;--e){a=i[13];i[13]=i[9];i[9]=i[5];i[5]=i[1];i[1]=a;a=i[14];r=i[10];i[14]=i[6];i[10]=i[2];i[6]=a;i[2]=r;a=i[15];r=i[11];n=i[7];i[15]=i[3];i[11]=a;i[7]=r;i[3]=n;for(let e=0;e<16;++e)i[e]=this._inv_s[i[e]];for(let a=0,r=16*e;a<16;++a,++r)i[a]^=t[r];for(let e=0;e<16;e+=4){const t=this._mix[i[e]],r=this._mix[i[e+1]],n=this._mix[i[e+2]],s=this._mix[i[e+3]];a=t^r>>>8^r<<24^n>>>16^n<<16^s>>>24^s<<8;i[e]=a>>>24&255;i[e+1]=a>>16&255;i[e+2]=a>>8&255;i[e+3]=255&a}}a=i[13];i[13]=i[9];i[9]=i[5];i[5]=i[1];i[1]=a;a=i[14];r=i[10];i[14]=i[6];i[10]=i[2];i[6]=a;i[2]=r;a=i[15];r=i[11];n=i[7];i[15]=i[3];i[11]=a;i[7]=r;i[3]=n;for(let e=0;e<16;++e){i[e]=this._inv_s[i[e]];i[e]^=t[e]}return i}_encrypt(e,t){const a=this._s;let r,n,i;const s=new Uint8Array(16);s.set(e);for(let e=0;e<16;++e)s[e]^=t[e];for(let e=1;e=r;--a)if(e[a]!==t){t=0;break}o-=t;i[i.length-1]=e.subarray(0,16-t)}}const c=new Uint8Array(o);for(let e=0,t=0,a=i.length;e=256&&(o=255&(27^o))}for(let t=0;t<4;++t){a[e]=r^=a[e-32];e++;a[e]=n^=a[e-32];e++;a[e]=i^=a[e-32];e++;a[e]=s^=a[e-32];e++}}return a}}t.AES256Cipher=AES256Cipher;class PDF17{checkOwnerPassword(e,t,a,n){const i=new Uint8Array(e.length+56);i.set(e,0);i.set(t,e.length);i.set(a,e.length+t.length);const s=o(i,0,i.length);return(0,r.isArrayEqual)(s,n)}checkUserPassword(e,t,a){const n=new Uint8Array(e.length+8);n.set(e,0);n.set(t,e.length);const i=o(n,0,n.length);return(0,r.isArrayEqual)(i,a)}getOwnerKey(e,t,a,r){const n=new Uint8Array(e.length+56);n.set(e,0);n.set(t,e.length);n.set(a,e.length+t.length);const i=o(n,0,n.length);return new AES256Cipher(i).decryptBlock(r,!1,new Uint8Array(16))}getUserKey(e,t,a){const r=new Uint8Array(e.length+8);r.set(e,0);r.set(t,e.length);const n=o(r,0,r.length);return new AES256Cipher(n).decryptBlock(a,!1,new Uint8Array(16))}}t.PDF17=PDF17;const l=function PDF20Closure(){function calculatePDF20Hash(e,t,a){let r=o(t,0,t.length).subarray(0,32),n=[0],i=0;for(;i<64||n[n.length-1]>i-32;){const t=e.length+r.length+a.length,s=new Uint8Array(t);let l=0;s.set(e,l);l+=e.length;s.set(r,l);l+=r.length;s.set(a,l);const h=new Uint8Array(64*t);for(let e=0,a=0;e<64;e++,a+=t)h.set(s,a);n=new AES128Cipher(r.subarray(0,16)).encrypt(h,r.subarray(16,32));let u=0;for(let e=0;e<16;e++){u*=1;u%=3;u+=(n[e]>>>0)%3;u%=3}0===u?r=o(n,0,n.length):1===u?r=calculateSHA384(n,0,n.length):2===u&&(r=c(n,0,n.length));i++}return r.subarray(0,32)}return class PDF20{hash(e,t,a){return calculatePDF20Hash(e,t,a)}checkOwnerPassword(e,t,a,n){const i=new Uint8Array(e.length+56);i.set(e,0);i.set(t,e.length);i.set(a,e.length+t.length);const s=calculatePDF20Hash(e,i,a);return(0,r.isArrayEqual)(s,n)}checkUserPassword(e,t,a){const n=new Uint8Array(e.length+8);n.set(e,0);n.set(t,e.length);const i=calculatePDF20Hash(e,n,[]);return(0,r.isArrayEqual)(i,a)}getOwnerKey(e,t,a,r){const n=new Uint8Array(e.length+56);n.set(e,0);n.set(t,e.length);n.set(a,e.length+t.length);const i=calculatePDF20Hash(e,n,a);return new AES256Cipher(i).decryptBlock(r,!1,new Uint8Array(16))}getUserKey(e,t,a){const r=new Uint8Array(e.length+8);r.set(e,0);r.set(t,e.length);const n=calculatePDF20Hash(e,r,[]);return new AES256Cipher(n).decryptBlock(a,!1,new Uint8Array(16))}}}();t.PDF20=l;class CipherTransform{constructor(e,t){this.StringCipherConstructor=e;this.StreamCipherConstructor=t}createStream(e,t){const a=new this.StreamCipherConstructor;return new i.DecryptStream(e,t,(function cipherTransformDecryptStream(e,t){return a.decryptBlock(e,t)}))}decryptString(e){const t=new this.StringCipherConstructor;let a=(0,r.stringToBytes)(e);a=t.decryptBlock(a,!0);return(0,r.bytesToString)(a)}encryptString(e){const t=new this.StringCipherConstructor;if(t instanceof AESBaseCipher){const a=16-e.length%16;e+=String.fromCharCode(a).repeat(a);const n=new Uint8Array(16);if("undefined"!=typeof crypto)crypto.getRandomValues(n);else for(let e=0;e<16;e++)n[e]=Math.floor(256*Math.random());let i=(0,r.stringToBytes)(e);i=t.encrypt(i,n);const s=new Uint8Array(16+i.length);s.set(n);s.set(i,16);return(0,r.bytesToString)(s)}let a=(0,r.stringToBytes)(e);a=t.encrypt(a);return(0,r.bytesToString)(a)}}const h=function CipherTransformFactoryClosure(){const e=new Uint8Array([40,191,78,94,78,117,138,65,100,0,78,86,255,250,1,8,46,46,0,182,208,104,62,128,47,12,169,254,100,83,105,122]);function prepareKeyData(t,a,r,n,i,o,c,l){const h=40+r.length+t.length,u=new Uint8Array(h);let d,f,g=0;if(a){f=Math.min(32,a.length);for(;g>8&255;u[g++]=i>>16&255;u[g++]=i>>>24&255;for(d=0,f=t.length;d=4&&!l){u[g++]=255;u[g++]=255;u[g++]=255;u[g++]=255}let p=s(u,0,g);const m=c>>3;if(o>=3)for(d=0;d<50;++d)p=s(p,0,m);const b=p.subarray(0,m);let y,w;if(o>=3){for(g=0;g<32;++g)u[g]=e[g];for(d=0,f=t.length;d>8&255;n[o++]=e>>16&255;n[o++]=255&t;n[o++]=t>>8&255;if(r){n[o++]=115;n[o++]=65;n[o++]=108;n[o++]=84}return s(n,0,o).subarray(0,Math.min(a.length+5,16))}function buildCipherConstructor(e,t,a,i,s){if(!(t instanceof n.Name))throw new r.FormatError("Invalid crypt filter name.");const o=e.get(t.name);let c;null!=o&&(c=o.get("CFM"));if(!c||"None"===c.name)return function cipherTransformFactoryBuildCipherConstructorNone(){return new NullCipher};if("V2"===c.name)return function cipherTransformFactoryBuildCipherConstructorV2(){return new ARCFourCipher(buildObjectKey(a,i,s,!1))};if("AESV2"===c.name)return function cipherTransformFactoryBuildCipherConstructorAESV2(){return new AES128Cipher(buildObjectKey(a,i,s,!0))};if("AESV3"===c.name)return function cipherTransformFactoryBuildCipherConstructorAESV3(){return new AES256Cipher(s)};throw new r.FormatError("Unknown crypto method")}return class CipherTransformFactory{constructor(a,i,o){const c=a.get("Filter");if(!(0,n.isName)(c,"Standard"))throw new r.FormatError("unknown encryption method");this.filterName=c.name;this.dict=a;const h=a.get("V");if(!Number.isInteger(h)||1!==h&&2!==h&&4!==h&&5!==h)throw new r.FormatError("unsupported encryption algorithm");this.algorithm=h;let u=a.get("Length");if(!u)if(h<=3)u=40;else{const e=a.get("CF"),t=a.get("StmF");if(e instanceof n.Dict&&t instanceof n.Name){e.suppressEncryption=!0;const a=e.get(t.name);u=a&&a.get("Length")||128;u<40&&(u<<=3)}}if(!Number.isInteger(u)||u<40||u%8!=0)throw new r.FormatError("invalid key length");const d=(0,r.stringToBytes)(a.get("O")).subarray(0,32),f=(0,r.stringToBytes)(a.get("U")).subarray(0,32),g=a.get("P"),p=a.get("R"),m=(4===h||5===h)&&!1!==a.get("EncryptMetadata");this.encryptMetadata=m;const b=(0,r.stringToBytes)(i);let y,w;if(o){if(6===p)try{o=(0,r.utf8StringToString)(o)}catch(e){(0,r.warn)("CipherTransformFactory: Unable to convert UTF8 encoded password.")}y=(0,r.stringToBytes)(o)}if(5!==h)w=prepareKeyData(b,y,d,f,g,p,u,m);else{const e=(0,r.stringToBytes)(a.get("O")).subarray(32,40),t=(0,r.stringToBytes)(a.get("O")).subarray(40,48),n=(0,r.stringToBytes)(a.get("U")).subarray(0,48),i=(0,r.stringToBytes)(a.get("U")).subarray(32,40),s=(0,r.stringToBytes)(a.get("U")).subarray(40,48),o=(0,r.stringToBytes)(a.get("OE")),c=(0,r.stringToBytes)(a.get("UE"));(0,r.stringToBytes)(a.get("Perms"));w=function createEncryptionKey20(e,t,a,r,n,i,s,o,c,h,u,d){if(t){const e=Math.min(127,t.length);t=t.subarray(0,e)}else t=[];let f;f=6===e?new l:new PDF17;return f.checkUserPassword(t,o,s)?f.getUserKey(t,c,u):t.length&&f.checkOwnerPassword(t,r,i,a)?f.getOwnerKey(t,n,i,h):null}(p,y,d,e,t,n,f,i,s,o,c)}if(!w&&!o)throw new r.PasswordException("No password given",r.PasswordResponses.NEED_PASSWORD);if(!w&&o){const t=function decodeUserPassword(t,a,r,n){const i=new Uint8Array(32);let o=0;const c=Math.min(32,t.length);for(;o>3;if(r>=3)for(l=0;l<50;++l)h=s(h,0,h.length);let d,f;if(r>=3){f=a;const e=new Uint8Array(u);for(l=19;l>=0;l--){for(let t=0;t=4){const e=a.get("CF");e instanceof n.Dict&&(e.suppressEncryption=!0);this.cf=e;this.stmf=a.get("StmF")||t;this.strf=a.get("StrF")||t;this.eff=a.get("EFF")||this.stmf}}createCipherTransform(e,t){if(4===this.algorithm||5===this.algorithm)return new CipherTransform(buildCipherConstructor(this.cf,this.stmf,e,t,this.encryptionKey),buildCipherConstructor(this.cf,this.strf,e,t,this.encryptionKey));const a=buildObjectKey(e,t,this.encryptionKey,!1),r=function buildCipherCipherConstructor(){return new ARCFourCipher(a)};return new CipherTransform(r,r)}}}();t.CipherTransformFactory=h},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.DecryptStream=void 0;var r=a(29);class DecryptStream extends r.DecodeStream{constructor(e,t,a){super(t);this.str=e;this.dict=e.dict;this.decrypt=a;this.nextChunk=null;this.initialized=!1}readBlock(){let e;if(this.initialized)e=this.nextChunk;else{e=this.str.getBytes(512);this.initialized=!0}if(!e||0===e.length){this.eof=!0;return}this.nextChunk=this.str.getBytes(512);const t=this.nextChunk&&this.nextChunk.length>0;e=(0,this.decrypt)(e,!t);let a=this.bufferLength;const r=e.length,n=this.ensureBuffer(a+r);for(let t=0;t{Object.defineProperty(t,"__esModule",{value:!0});t.XFAFactory=void 0;var r=a(78),n=a(82),i=a(88),s=a(86),o=a(79),c=a(2),l=a(89),h=a(99);class XFAFactory{constructor(e){try{this.root=(new l.XFAParser).parse(XFAFactory._createDocument(e));const t=new n.Binder(this.root);this.form=t.bind();this.dataHandler=new i.DataHandler(this.root,t.getData());this.form[r.$globalData].template=this.form}catch(e){(0,c.warn)(`XFA - an error occurred during parsing and binding: ${e}`)}}isValid(){return this.root&&this.form}_createPagesHelper(){const e=this.form[r.$toPages]();return new Promise(((t,a)=>{const nextIteration=()=>{try{const a=e.next();a.done?t(a.value):setTimeout(nextIteration,0)}catch(e){a(e)}};setTimeout(nextIteration,0)}))}async _createPages(){try{this.pages=await this._createPagesHelper();this.dims=this.pages.children.map((e=>{const{width:t,height:a}=e.attributes.style;return[0,0,parseInt(t),parseInt(a)]}))}catch(e){(0,c.warn)(`XFA - an error occurred during layout: ${e}`)}}getBoundingBox(e){return this.dims[e]}async getNumPages(){this.pages||await this._createPages();return this.dims.length}setImages(e){this.form[r.$globalData].images=e}setFonts(e){this.form[r.$globalData].fontFinder=new s.FontFinder(e);const t=[];for(let e of this.form[r.$globalData].usedTypefaces){e=(0,o.stripQuotes)(e);this.form[r.$globalData].fontFinder.find(e)||t.push(e)}return t.length>0?t:null}appendFonts(e,t){this.form[r.$globalData].fontFinder.add(e,t)}async getPages(){this.pages||await this._createPages();const e=this.pages;this.pages=null;return e}serializeData(e){return this.dataHandler.serialize(e)}static _createDocument(e){return e["/xdp:xdp"]?Object.values(e).join(""):e["xdp:xdp"]}static getRichTextAsHtml(e){if(!e||"string"!=typeof e)return null;try{let t=new l.XFAParser(h.XhtmlNamespace,!0).parse(e);if(!["body","xhtml"].includes(t[r.$nodeName])){const e=h.XhtmlNamespace.body({});e[r.$appendChild](t);t=e}const a=t[r.$toHTML]();if(!a.success)return null;const{html:n}=a,{attributes:i}=n;if(i){i.class&&(i.class=i.class.filter((e=>!e.startsWith("xfa"))));i.dir="auto"}return{html:n,str:t[r.$text]()}}catch(e){(0,c.warn)(`XFA - an error occurred during parsing of rich text: ${e}`)}return null}}t.XFAFactory=XFAFactory},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XmlObject=t.XFAObjectArray=t.XFAObject=t.XFAAttribute=t.StringObject=t.OptionObject=t.Option10=t.Option01=t.IntegerObject=t.ContentObject=t.$uid=t.$toStyle=t.$toString=t.$toPages=t.$toHTML=t.$text=t.$tabIndex=t.$setValue=t.$setSetAttributes=t.$setId=t.$searchNode=t.$root=t.$resolvePrototypes=t.$removeChild=t.$pushPara=t.$pushGlyphs=t.$popPara=t.$onText=t.$onChildCheck=t.$onChild=t.$nsAttributes=t.$nodeName=t.$namespaceId=t.$isUsable=t.$isTransparent=t.$isThereMoreWidth=t.$isSplittable=t.$isNsAgnostic=t.$isDescendent=t.$isDataValue=t.$isCDATAXml=t.$isBindable=t.$insertAt=t.$indexOf=t.$ids=t.$hasSettableValue=t.$globalData=t.$getTemplateRoot=t.$getSubformParent=t.$getRealChildrenByNameIt=t.$getParent=t.$getNextPage=t.$getExtra=t.$getDataValue=t.$getContainedChildren=t.$getChildrenByNameIt=t.$getChildrenByName=t.$getChildrenByClass=t.$getChildren=t.$getAvailableSpace=t.$getAttributes=t.$getAttributeIt=t.$flushHTML=t.$finalize=t.$extra=t.$dump=t.$data=t.$content=t.$consumed=t.$clone=t.$cleanup=t.$cleanPage=t.$clean=t.$childrenToHTML=t.$appendChild=t.$addHTML=t.$acceptWhitespace=void 0;var r=a(79),n=a(2),i=a(8),s=a(80),o=a(81);const c=Symbol();t.$acceptWhitespace=c;const l=Symbol();t.$addHTML=l;const h=Symbol();t.$appendChild=h;const u=Symbol();t.$childrenToHTML=u;const d=Symbol();t.$clean=d;const f=Symbol();t.$cleanPage=f;const g=Symbol();t.$cleanup=g;const p=Symbol();t.$clone=p;const m=Symbol();t.$consumed=m;const b=Symbol("content");t.$content=b;const y=Symbol("data");t.$data=y;const w=Symbol();t.$dump=w;const S=Symbol("extra");t.$extra=S;const x=Symbol();t.$finalize=x;const k=Symbol();t.$flushHTML=k;const C=Symbol();t.$getAttributeIt=C;const v=Symbol();t.$getAttributes=v;const F=Symbol();t.$getAvailableSpace=F;const O=Symbol();t.$getChildrenByClass=O;const T=Symbol();t.$getChildrenByName=T;const M=Symbol();t.$getChildrenByNameIt=M;const E=Symbol();t.$getDataValue=E;const D=Symbol();t.$getExtra=D;const N=Symbol();t.$getRealChildrenByNameIt=N;const L=Symbol();t.$getChildren=L;const R=Symbol();t.$getContainedChildren=R;const j=Symbol();t.$getNextPage=j;const _=Symbol();t.$getSubformParent=_;const $=Symbol();t.$getParent=$;const U=Symbol();t.$getTemplateRoot=U;const X=Symbol();t.$globalData=X;const H=Symbol();t.$hasSettableValue=H;const q=Symbol();t.$ids=q;const z=Symbol();t.$indexOf=z;const W=Symbol();t.$insertAt=W;const G=Symbol();t.$isCDATAXml=G;const V=Symbol();t.$isBindable=V;const K=Symbol();t.$isDataValue=K;const Y=Symbol();t.$isDescendent=Y;const J=Symbol();t.$isNsAgnostic=J;const Z=Symbol();t.$isSplittable=Z;const Q=Symbol();t.$isThereMoreWidth=Q;const ee=Symbol();t.$isTransparent=ee;const te=Symbol();t.$isUsable=te;const ae=Symbol(),re=Symbol("namespaceId");t.$namespaceId=re;const ne=Symbol("nodeName");t.$nodeName=ne;const ie=Symbol();t.$nsAttributes=ie;const se=Symbol();t.$onChild=se;const oe=Symbol();t.$onChildCheck=oe;const ce=Symbol();t.$onText=ce;const le=Symbol();t.$pushGlyphs=le;const he=Symbol();t.$popPara=he;const ue=Symbol();t.$pushPara=ue;const de=Symbol();t.$removeChild=de;const fe=Symbol("root");t.$root=fe;const ge=Symbol();t.$resolvePrototypes=ge;const pe=Symbol();t.$searchNode=pe;const me=Symbol();t.$setId=me;const be=Symbol();t.$setSetAttributes=be;const ye=Symbol();t.$setValue=ye;const we=Symbol();t.$tabIndex=we;const Se=Symbol();t.$text=Se;const xe=Symbol();t.$toPages=xe;const ke=Symbol();t.$toHTML=ke;const Ce=Symbol();t.$toString=Ce;const Ae=Symbol();t.$toStyle=Ae;const ve=Symbol("uid");t.$uid=ve;const Fe=Symbol(),Oe=Symbol(),Te=Symbol(),Ie=Symbol("_children"),Me=Symbol(),Pe=Symbol(),Ee=Symbol(),Be=Symbol(),De=Symbol(),Ne=Symbol(),Le=Symbol(),Re=Symbol(),je=Symbol(),_e=Symbol("parent"),$e=Symbol(),Ue=Symbol(),Xe=Symbol();let He=0;const qe=s.NamespaceIds.datasets.id;class XFAObject{constructor(e,t,a=!1){this[re]=e;this[ne]=t;this[Le]=a;this[_e]=null;this[Ie]=[];this[ve]=`${t}${He++}`;this[X]=null}[se](e){if(!this[Le]||!this[oe](e))return!1;const t=e[ne],a=this[t];if(!(a instanceof XFAObjectArray)){null!==a&&this[de](a);this[t]=e;this[h](e);return!0}if(a.push(e)){this[h](e);return!0}let r="";this.id?r=` (id: ${this.id})`:this.name&&(r=` (name: ${this.name} ${this.h.value})`);(0,n.warn)(`XFA - node "${this[ne]}"${r} has already enough "${t}"!`);return!1}[oe](e){return this.hasOwnProperty(e[ne])&&e[re]===this[re]}[J](){return!1}[c](){return!1}[G](){return!1}[V](){return!1}[he](){this.para&&this[U]()[S].paraStack.pop()}[ue](){this[U]()[S].paraStack.push(this.para)}[me](e){this.id&&this[re]===s.NamespaceIds.template.id&&e.set(this.id,this)}[U](){return this[X].template}[Z](){return!1}[Q](){return!1}[h](e){e[_e]=this;this[Ie].push(e);!e[X]&&this[X]&&(e[X]=this[X])}[de](e){const t=this[Ie].indexOf(e);this[Ie].splice(t,1)}[H](){return this.hasOwnProperty("value")}[ye](e){}[ce](e){}[x](){}[d](e){delete this[Le];if(this[g]){e.clean(this[g]);delete this[g]}}[z](e){return this[Ie].indexOf(e)}[W](e,t){t[_e]=this;this[Ie].splice(e,0,t);!t[X]&&this[X]&&(t[X]=this[X])}[ee](){return!this.name}[ae](){return""}[Se](){return 0===this[Ie].length?this[b]:this[Ie].map((e=>e[Se]())).join("")}get[Te](){const e=Object.getPrototypeOf(this);if(!e._attributes){const t=e._attributes=new Set;for(const e of Object.getOwnPropertyNames(this)){if(null===this[e]||this[e]instanceof XFAObject||this[e]instanceof XFAObjectArray)break;t.add(e)}}return(0,n.shadow)(this,Te,e._attributes)}[Y](e){let t=this;for(;t;){if(t===e)return!0;t=t[$]()}return!1}[$](){return this[_e]}[_](){return this[$]()}[L](e=null){return e?this[e]:this[Ie]}[w](){const e=Object.create(null);this[b]&&(e.$content=this[b]);for(const t of Object.getOwnPropertyNames(this)){const a=this[t];null!==a&&(a instanceof XFAObject?e[t]=a[w]():a instanceof XFAObjectArray?a.isEmpty()||(e[t]=a.dump()):e[t]=a)}return e}[Ae](){return null}[ke](){return r.HTMLResult.EMPTY}*[R](){for(const e of this[L]())yield e}*[Be](e,t){for(const a of this[R]())if(!e||t===e.has(a[ne])){const e=this[F](),t=a[ke](e);t.success||(this[S].failingNode=a);yield t}}[k](){return null}[l](e,t){this[S].children.push(e)}[F](){}[u]({filter:e=null,include:t=!0}){if(this[S].generator){const e=this[F](),t=this[S].failingNode[ke](e);if(!t.success)return t;t.html&&this[l](t.html,t.bbox);delete this[S].failingNode}else this[S].generator=this[Be](e,t);for(;;){const e=this[S].generator.next();if(e.done)break;const t=e.value;if(!t.success)return t;t.html&&this[l](t.html,t.bbox)}this[S].generator=null;return r.HTMLResult.EMPTY}[be](e){this[Ue]=new Set(Object.keys(e))}[Ne](e){const t=this[Te],a=this[Ue];return[...e].filter((e=>t.has(e)&&!a.has(e)))}[ge](e,t=new Set){for(const a of this[Ie])a[$e](e,t)}[$e](e,t){const a=this[De](e,t);a?this[Fe](a,e,t):this[ge](e,t)}[De](e,t){const{use:a,usehref:r}=this;if(!a&&!r)return null;let i=null,s=null,c=null,l=a;if(r){l=r;r.startsWith("#som(")&&r.endsWith(")")?s=r.slice("#som(".length,r.length-1):r.startsWith(".#som(")&&r.endsWith(")")?s=r.slice(".#som(".length,r.length-1):r.startsWith("#")?c=r.slice(1):r.startsWith(".#")&&(c=r.slice(2))}else a.startsWith("#")?c=a.slice(1):s=a;this.use=this.usehref="";if(c)i=e.get(c);else{i=(0,o.searchNode)(e.get(fe),this,s,!0,!1);i&&(i=i[0])}if(!i){(0,n.warn)(`XFA - Invalid prototype reference: ${l}.`);return null}if(i[ne]!==this[ne]){(0,n.warn)(`XFA - Incompatible prototype: ${i[ne]} !== ${this[ne]}.`);return null}if(t.has(i)){(0,n.warn)("XFA - Cycle detected in prototypes use.");return null}t.add(i);const h=i[De](e,t);h&&i[Fe](h,e,t);i[ge](e,t);t.delete(i);return i}[Fe](e,t,a){if(a.has(e)){(0,n.warn)("XFA - Cycle detected in prototypes use.");return}!this[b]&&e[b]&&(this[b]=e[b]);new Set(a).add(e);for(const t of this[Ne](e[Ue])){this[t]=e[t];this[Ue]&&this[Ue].add(t)}for(const r of Object.getOwnPropertyNames(this)){if(this[Te].has(r))continue;const n=this[r],i=e[r];if(n instanceof XFAObjectArray){for(const e of n[Ie])e[$e](t,a);for(let r=n[Ie].length,s=i[Ie].length;rXFAObject[Me](e))):"object"==typeof e&&null!==e?Object.assign({},e):e}[p](){const e=Object.create(Object.getPrototypeOf(this));for(const t of Object.getOwnPropertySymbols(this))try{e[t]=this[t]}catch(a){(0,n.shadow)(e,t,this[t])}e[ve]=`${e[ne]}${He++}`;e[Ie]=[];for(const t of Object.getOwnPropertyNames(this)){if(this[Te].has(t)){e[t]=XFAObject[Me](this[t]);continue}const a=this[t];e[t]=a instanceof XFAObjectArray?new XFAObjectArray(a[Re]):null}for(const t of this[Ie]){const a=t[ne],r=t[p]();e[Ie].push(r);r[_e]=e;null===e[a]?e[a]=r:e[a][Ie].push(r)}return e}[L](e=null){return e?this[Ie].filter((t=>t[ne]===e)):this[Ie]}[O](e){return this[e]}[T](e,t,a=!0){return Array.from(this[M](e,t,a))}*[M](e,t,a=!0){if("parent"!==e){for(const a of this[Ie]){a[ne]===e&&(yield a);a.name===e&&(yield a);(t||a[ee]())&&(yield*a[M](e,t,!1))}a&&this[Te].has(e)&&(yield new XFAAttribute(this,e,this[e]))}else yield this[_e]}}t.XFAObject=XFAObject;class XFAObjectArray{constructor(e=1/0){this[Re]=e;this[Ie]=[]}push(e){if(this[Ie].length<=this[Re]){this[Ie].push(e);return!0}(0,n.warn)(`XFA - node "${e[ne]}" accepts no more than ${this[Re]} children`);return!1}isEmpty(){return 0===this[Ie].length}dump(){return 1===this[Ie].length?this[Ie][0][w]():this[Ie].map((e=>e[w]()))}[p](){const e=new XFAObjectArray(this[Re]);e[Ie]=this[Ie].map((e=>e[p]()));return e}get children(){return this[Ie]}clear(){this[Ie].length=0}}t.XFAObjectArray=XFAObjectArray;class XFAAttribute{constructor(e,t,a){this[_e]=e;this[ne]=t;this[b]=a;this[m]=!1;this[ve]="attribute"+He++}[$](){return this[_e]}[K](){return!0}[E](){return this[b].trim()}[ye](e){e=e.value||"";this[b]=e.toString()}[Se](){return this[b]}[Y](e){return this[_e]===e||this[_e][Y](e)}}t.XFAAttribute=XFAAttribute;class XmlObject extends XFAObject{constructor(e,t,a={}){super(e,t);this[b]="";this[Pe]=null;if("#text"!==t){const e=new Map;this[Oe]=e;for(const[t,r]of Object.entries(a))e.set(t,new XFAAttribute(this,t,r));if(a.hasOwnProperty(ie)){const e=a[ie].xfa.dataNode;void 0!==e&&("dataGroup"===e?this[Pe]=!1:"dataValue"===e&&(this[Pe]=!0))}}this[m]=!1}[Ce](e){const t=this[ne];if("#text"===t){e.push((0,i.encodeToXmlString)(this[b]));return}const a=(0,n.utf8StringToString)(t),r=this[re]===qe?"xfa:":"";e.push(`<${r}${a}`);for(const[t,a]of this[Oe].entries()){const r=(0,n.utf8StringToString)(t);e.push(` ${r}="${(0,i.encodeToXmlString)(a[b])}"`)}null!==this[Pe]&&(this[Pe]?e.push(' xfa:dataNode="dataValue"'):e.push(' xfa:dataNode="dataGroup"'));if(this[b]||0!==this[Ie].length){e.push(">");if(this[b])"string"==typeof this[b]?e.push((0,i.encodeToXmlString)(this[b])):this[b][Ce](e);else for(const t of this[Ie])t[Ce](e);e.push(``)}else e.push("/>")}[se](e){if(this[b]){const e=new XmlObject(this[re],"#text");this[h](e);e[b]=this[b];this[b]=""}this[h](e);return!0}[ce](e){this[b]+=e}[x](){if(this[b]&&this[Ie].length>0){const e=new XmlObject(this[re],"#text");this[h](e);e[b]=this[b];delete this[b]}}[ke](){return"#text"===this[ne]?r.HTMLResult.success({name:"#text",value:this[b]}):r.HTMLResult.EMPTY}[L](e=null){return e?this[Ie].filter((t=>t[ne]===e)):this[Ie]}[v](){return this[Oe]}[O](e){const t=this[Oe].get(e);return void 0!==t?t:this[L](e)}*[M](e,t){const a=this[Oe].get(e);a&&(yield a);for(const a of this[Ie]){a[ne]===e&&(yield a);t&&(yield*a[M](e,t))}}*[C](e,t){const a=this[Oe].get(e);!a||t&&a[m]||(yield a);for(const a of this[Ie])yield*a[C](e,t)}*[N](e,t,a){for(const r of this[Ie]){r[ne]!==e||a&&r[m]||(yield r);t&&(yield*r[N](e,t,a))}}[K](){return null===this[Pe]?0===this[Ie].length||this[Ie][0][re]===s.NamespaceIds.xhtml.id:this[Pe]}[E](){return null===this[Pe]?0===this[Ie].length?this[b].trim():this[Ie][0][re]===s.NamespaceIds.xhtml.id?this[Ie][0][Se]().trim():null:this[b].trim()}[ye](e){e=e.value||"";this[b]=e.toString()}[w](e=!1){const t=Object.create(null);e&&(t.$ns=this[re]);this[b]&&(t.$content=this[b]);t.$name=this[ne];t.children=[];for(const a of this[Ie])t.children.push(a[w](e));t.attributes=Object.create(null);for(const[e,a]of this[Oe])t.attributes[e]=a[b];return t}}t.XmlObject=XmlObject;class ContentObject extends XFAObject{constructor(e,t){super(e,t);this[b]=""}[ce](e){this[b]+=e}[x](){}}t.ContentObject=ContentObject;t.OptionObject=class OptionObject extends ContentObject{constructor(e,t,a){super(e,t);this[je]=a}[x](){this[b]=(0,r.getKeyword)({data:this[b],defaultValue:this[je][0],validate:e=>this[je].includes(e)})}[d](e){super[d](e);delete this[je]}};t.StringObject=class StringObject extends ContentObject{[x](){this[b]=this[b].trim()}};class IntegerObject extends ContentObject{constructor(e,t,a,r){super(e,t);this[Ee]=a;this[Xe]=r}[x](){this[b]=(0,r.getInteger)({data:this[b],defaultValue:this[Ee],validate:this[Xe]})}[d](e){super[d](e);delete this[Ee];delete this[Xe]}}t.IntegerObject=IntegerObject;t.Option01=class Option01 extends IntegerObject{constructor(e,t){super(e,t,0,(e=>1===e))}};t.Option10=class Option10 extends IntegerObject{constructor(e,t){super(e,t,1,(e=>0===e))}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.HTMLResult=void 0;t.getBBox=function getBBox(e){const t=-1;if(!e)return{x:t,y:t,width:t,height:t};const a=e.trim().split(/\s*,\s*/).map((e=>getMeasurement(e,"-1")));if(a.length<4||a[2]<0||a[3]<0)return{x:t,y:t,width:t,height:t};const[r,n,i,s]=a;return{x:r,y:n,width:i,height:s}};t.getColor=function getColor(e,t=[0,0,0]){let[a,r,n]=t;if(!e)return{r:a,g:r,b:n};const i=e.trim().split(/\s*,\s*/).map((e=>Math.min(Math.max(0,parseInt(e.trim(),10)),255))).map((e=>isNaN(e)?0:e));if(i.length<3)return{r:a,g:r,b:n};[a,r,n]=i;return{r:a,g:r,b:n}};t.getFloat=function getFloat({data:e,defaultValue:t,validate:a}){if(!e)return t;e=e.trim();const r=parseFloat(e);if(!isNaN(r)&&a(r))return r;return t};t.getInteger=function getInteger({data:e,defaultValue:t,validate:a}){if(!e)return t;e=e.trim();const r=parseInt(e,10);if(!isNaN(r)&&a(r))return r;return t};t.getKeyword=getKeyword;t.getMeasurement=getMeasurement;t.getRatio=function getRatio(e){if(!e)return{num:1,den:1};const t=e.trim().split(/\s*:\s*/).map((e=>parseFloat(e))).filter((e=>!isNaN(e)));1===t.length&&t.push(1);if(0===t.length)return{num:1,den:1};const[a,r]=t;return{num:a,den:r}};t.getRelevant=function getRelevant(e){if(!e)return[];return e.trim().split(/\s+/).map((e=>({excluded:"-"===e[0],viewname:e.substring(1)})))};t.getStringOption=function getStringOption(e,t){return getKeyword({data:e,defaultValue:t[0],validate:e=>t.includes(e)})};t.stripQuotes=function stripQuotes(e){if(e.startsWith("'")||e.startsWith('"'))return e.slice(1,e.length-1);return e};var r=a(2);const n={pt:e=>e,cm:e=>e/2.54*72,mm:e=>e/25.4*72,in:e=>72*e,px:e=>e},i=/([+-]?\d+\.?\d*)(.*)/;function getKeyword({data:e,defaultValue:t,validate:a}){return e&&a(e=e.trim())?e:t}function getMeasurement(e,t="0"){t=t||"0";if(!e)return getMeasurement(t);const a=e.trim().match(i);if(!a)return getMeasurement(t);const[,r,s]=a,o=parseFloat(r);if(isNaN(o))return getMeasurement(t);if(0===o)return 0;const c=n[s];return c?c(o):o}class HTMLResult{static get FAILURE(){return(0,r.shadow)(this,"FAILURE",new HTMLResult(!1,null,null,null))}static get EMPTY(){return(0,r.shadow)(this,"EMPTY",new HTMLResult(!0,null,null,null))}constructor(e,t,a,r){this.success=e;this.html=t;this.bbox=a;this.breakNode=r}isBreak(){return!!this.breakNode}static breakNode(e){return new HTMLResult(!1,null,null,e)}static success(e,t=null){return new HTMLResult(!0,e,t,null)}}t.HTMLResult=HTMLResult},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.NamespaceIds=t.$buildXFAObject=void 0;const a=Symbol();t.$buildXFAObject=a;t.NamespaceIds={config:{id:0,check:e=>e.startsWith("http://www.xfa.org/schema/xci/")},connectionSet:{id:1,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-connection-set/")},datasets:{id:2,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-data/")},form:{id:3,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-form/")},localeSet:{id:4,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-locale-set/")},pdf:{id:5,check:e=>"http://ns.adobe.com/xdp/pdf/"===e},signature:{id:6,check:e=>"http://www.w3.org/2000/09/xmldsig#"===e},sourceSet:{id:7,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-source-set/")},stylesheet:{id:8,check:e=>"http://www.w3.org/1999/XSL/Transform"===e},template:{id:9,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-template/")},xdc:{id:10,check:e=>e.startsWith("http://www.xfa.org/schema/xdc/")},xdp:{id:11,check:e=>"http://ns.adobe.com/xdp/"===e},xfdf:{id:12,check:e=>"http://ns.adobe.com/xfdf/"===e},xhtml:{id:13,check:e=>"http://www.w3.org/1999/xhtml"===e},xmpmeta:{id:14,check:e=>"http://ns.adobe.com/xmpmeta/"===e}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.createDataNode=function createDataNode(e,t,a){const n=parseExpression(a);if(!n)return null;if(n.some((e=>e.operator===l)))return null;const s=f.get(n[0].name);let o=0;if(s){e=s(e,t);o=1}else e=t||e;for(let t=n.length;o0&&p.push(e)}if(0!==p.length||u||0!==d)e=isFinite(f)?p.filter((e=>fe[f])):p.reduce(((e,t)=>e.concat(t)),[]);else{const a=t[r.$getParent]();if(!(t=a))return null;d=-1;e=[t]}}if(0===e.length)return null;return e};var r=a(78),n=a(80),i=a(2);const s=/^[^.[]+/,o=/^[^\]]+/,c=0,l=1,h=2,u=3,d=4,f=new Map([["$data",(e,t)=>e.datasets?e.datasets.data:e],["$record",(e,t)=>(e.datasets?e.datasets.data:e)[r.$getChildren]()[0]],["$template",(e,t)=>e.template],["$connectionSet",(e,t)=>e.connectionSet],["$form",(e,t)=>e.form],["$layout",(e,t)=>e.layout],["$host",(e,t)=>e.host],["$dataWindow",(e,t)=>e.dataWindow],["$event",(e,t)=>e.event],["!",(e,t)=>e.datasets],["$xfa",(e,t)=>e],["xfa",(e,t)=>e],["$",(e,t)=>t]]),g=new WeakMap,p=n.NamespaceIds.datasets.id;function parseExpression(e,t,a=!0){let r=e.match(s);if(!r)return null;let[n]=r;const f=[{name:n,cacheName:"."+n,index:0,js:null,formCalc:null,operator:c}];let g=n.length;for(;g{Object.defineProperty(t,"__esModule",{value:!0});t.Binder=void 0;var r=a(78),n=a(83),i=a(81),s=a(80),o=a(2);const c=s.NamespaceIds.datasets.id;function createText(e){const t=new n.Text({});t[r.$content]=e;return t}t.Binder=class Binder{constructor(e){this.root=e;this.datasets=e.datasets;e.datasets&&e.datasets.data?this.data=e.datasets.data:this.data=new r.XmlObject(s.NamespaceIds.datasets.id,"data");this.emptyMerge=0===this.data[r.$getChildren]().length;this.root.form=this.form=e.template[r.$clone]()}_isConsumeData(){return!this.emptyMerge&&this._mergeMode}_isMatchTemplate(){return!this._isConsumeData()}bind(){this._bindElement(this.form,this.data);return this.form}getData(){return this.data}_bindValue(e,t,a){e[r.$data]=t;if(e[r.$hasSettableValue]())if(t[r.$isDataValue]()){const a=t[r.$getDataValue]();e[r.$setValue](createText(a))}else if(e instanceof n.Field&&e.ui&&e.ui.choiceList&&"multiSelect"===e.ui.choiceList.open){const a=t[r.$getChildren]().map((e=>e[r.$content].trim())).join("\n");e[r.$setValue](createText(a))}else this._isConsumeData()&&(0,o.warn)("XFA - Nodes haven't the same type.");else!t[r.$isDataValue]()||this._isMatchTemplate()?this._bindElement(e,t):(0,o.warn)("XFA - Nodes haven't the same type.")}_findDataByNameToConsume(e,t,a,n){if(!e)return null;let i,o;for(let n=0;n<3;n++){i=a[r.$getRealChildrenByNameIt](e,!1,!0);for(;;){o=i.next().value;if(!o)break;if(t===o[r.$isDataValue]())return o}if(a[r.$namespaceId]===s.NamespaceIds.datasets.id&&"data"===a[r.$nodeName])break;a=a[r.$getParent]()}if(!n)return null;i=this.data[r.$getRealChildrenByNameIt](e,!0,!1);o=i.next().value;if(o)return o;i=this.data[r.$getAttributeIt](e,!0);o=i.next().value;return o&&o[r.$isDataValue]()?o:null}_setProperties(e,t){if(e.hasOwnProperty("setProperty"))for(const{ref:a,target:s,connection:c}of e.setProperty.children){if(c)continue;if(!a)continue;const l=(0,i.searchNode)(this.root,t,a,!1,!1);if(!l){(0,o.warn)(`XFA - Invalid reference: ${a}.`);continue}const[h]=l;if(!h[r.$isDescendent](this.data)){(0,o.warn)("XFA - Invalid node: must be a data node.");continue}const u=(0,i.searchNode)(this.root,e,s,!1,!1);if(!u){(0,o.warn)(`XFA - Invalid target: ${s}.`);continue}const[d]=u;if(!d[r.$isDescendent](e)){(0,o.warn)("XFA - Invalid target: must be a property or subproperty.");continue}const f=d[r.$getParent]();if(d instanceof n.SetProperty||f instanceof n.SetProperty){(0,o.warn)("XFA - Invalid target: cannot be a setProperty or one of its properties.");continue}if(d instanceof n.BindItems||f instanceof n.BindItems){(0,o.warn)("XFA - Invalid target: cannot be a bindItems or one of its properties.");continue}const g=h[r.$text](),p=d[r.$nodeName];if(d instanceof r.XFAAttribute){const e=Object.create(null);e[p]=g;const t=Reflect.construct(Object.getPrototypeOf(f).constructor,[e]);f[p]=t[p]}else if(d.hasOwnProperty(r.$content)){d[r.$data]=h;d[r.$content]=g;d[r.$finalize]()}else(0,o.warn)("XFA - Invalid node to use in setProperty")}}_bindItems(e,t){if(!e.hasOwnProperty("items")||!e.hasOwnProperty("bindItems")||e.bindItems.isEmpty())return;for(const t of e.items.children)e[r.$removeChild](t);e.items.clear();const a=new n.Items({}),s=new n.Items({});e[r.$appendChild](a);e.items.push(a);e[r.$appendChild](s);e.items.push(s);for(const{ref:n,labelRef:c,valueRef:l,connection:h}of e.bindItems.children){if(h)continue;if(!n)continue;const e=(0,i.searchNode)(this.root,t,n,!1,!1);if(e)for(const t of e){if(!t[r.$isDescendent](this.datasets)){(0,o.warn)(`XFA - Invalid ref (${n}): must be a datasets child.`);continue}const e=(0,i.searchNode)(this.root,t,c,!0,!1);if(!e){(0,o.warn)(`XFA - Invalid label: ${c}.`);continue}const[h]=e;if(!h[r.$isDescendent](this.datasets)){(0,o.warn)("XFA - Invalid label: must be a datasets child.");continue}const u=(0,i.searchNode)(this.root,t,l,!0,!1);if(!u){(0,o.warn)(`XFA - Invalid value: ${l}.`);continue}const[d]=u;if(!d[r.$isDescendent](this.datasets)){(0,o.warn)("XFA - Invalid value: must be a datasets child.");continue}const f=createText(h[r.$text]()),g=createText(d[r.$text]());a[r.$appendChild](f);a.text.push(f);s[r.$appendChild](g);s.text.push(g)}else(0,o.warn)(`XFA - Invalid reference: ${n}.`)}}_bindOccurrences(e,t,a){let n;if(t.length>1){n=e[r.$clone]();n[r.$removeChild](n.occur);n.occur=null}this._bindValue(e,t[0],a);this._setProperties(e,t[0]);this._bindItems(e,t[0]);if(1===t.length)return;const i=e[r.$getParent](),s=e[r.$nodeName],o=i[r.$indexOf](e);for(let e=1,c=t.length;et.name===e.name)).length:a[n].children.length;const s=a[r.$indexOf](e)+1,o=t.initial-i;if(o){const t=e[r.$clone]();t[r.$removeChild](t.occur);t.occur=null;a[n].push(t);a[r.$insertAt](s,t);for(let e=1;e0)this._bindOccurrences(n,[e[0]],null);else if(this.emptyMerge){const e=t[r.$namespaceId]===c?-1:t[r.$namespaceId],a=n[r.$data]=new r.XmlObject(e,n.name||"root");t[r.$appendChild](a);this._bindElement(n,a)}continue}if(!n[r.$isBindable]())continue;let e=!1,s=null,l=null,h=null;if(n.bind){switch(n.bind.match){case"none":this._setAndBind(n,t);continue;case"global":e=!0;break;case"dataRef":if(!n.bind.ref){(0,o.warn)(`XFA - ref is empty in node ${n[r.$nodeName]}.`);this._setAndBind(n,t);continue}l=n.bind.ref}n.bind.picture&&(s=n.bind.picture[r.$content])}const[u,d]=this._getOccurInfo(n);if(l){h=(0,i.searchNode)(this.root,t,l,!0,!1);if(null===h){h=(0,i.createDataNode)(this.data,t,l);if(!h)continue;this._isConsumeData()&&(h[r.$consumed]=!0);this._setAndBind(n,h);continue}this._isConsumeData()&&(h=h.filter((e=>!e[r.$consumed])));h.length>d?h=h.slice(0,d):0===h.length&&(h=null);h&&this._isConsumeData()&&h.forEach((e=>{e[r.$consumed]=!0}))}else{if(!n.name){this._setAndBind(n,t);continue}if(this._isConsumeData()){const a=[];for(;a.length0?a:null}else{h=t[r.$getRealChildrenByNameIt](n.name,!1,this.emptyMerge).next().value;if(!h){if(0===u){a.push(n);continue}const e=t[r.$namespaceId]===c?-1:t[r.$namespaceId];h=n[r.$data]=new r.XmlObject(e,n.name);this.emptyMerge&&(h[r.$consumed]=!0);t[r.$appendChild](h);this._setAndBind(n,h);continue}this.emptyMerge&&(h[r.$consumed]=!0);h=[h]}}h?this._bindOccurrences(n,h,s):u>0?this._setAndBind(n,t):a.push(n)}a.forEach((e=>e[r.$getParent]()[r.$removeChild](e)))}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Value=t.Text=t.TemplateNamespace=t.Template=t.SetProperty=t.Items=t.Field=t.BindItems=void 0;var r=a(78),n=a(80),i=a(84),s=a(85),o=a(79),c=a(2),l=a(86),h=a(8),u=a(81);const d=n.NamespaceIds.template.id,f="http://www.w3.org/2000/svg",g=/^H(\d+)$/,p=new Set(["image/gif","image/jpeg","image/jpg","image/pjpeg","image/png","image/apng","image/x-png","image/bmp","image/x-ms-bmp","image/tiff","image/tif","application/octet-stream"]),m=[[[66,77],"image/bmp"],[[255,216,255],"image/jpeg"],[[73,73,42,0],"image/tiff"],[[77,77,0,42],"image/tiff"],[[71,73,70,56,57,97],"image/gif"],[[137,80,78,71,13,10,26,10],"image/png"]];function getBorderDims(e){if(!e||!e.border)return{w:0,h:0};const t=e.border[r.$getExtra]();return t?{w:t.widths[0]+t.widths[2]+t.insets[0]+t.insets[2],h:t.widths[1]+t.widths[3]+t.insets[1]+t.insets[3]}:{w:0,h:0}}function hasMargin(e){return e.margin&&(e.margin.topInset||e.margin.rightInset||e.margin.bottomInset||e.margin.leftInset)}function _setValue(e,t){if(!e.value){const t=new Value({});e[r.$appendChild](t);e.value=t}e.value[r.$setValue](t)}function*getContainedChildren(e){for(const t of e[r.$getChildren]())t instanceof SubformSet?yield*t[r.$getContainedChildren]():yield t}function setTabIndex(e){for(;e;){if(!e.traversal){e[r.$tabIndex]=e[r.$getParent]()[r.$tabIndex];return}if(e[r.$tabIndex])return;let t=null;for(const a of e.traversal[r.$getChildren]())if("next"===a.operation){t=a;break}if(!t||!t.ref){e[r.$tabIndex]=e[r.$getParent]()[r.$tabIndex];return}const a=e[r.$getTemplateRoot]();e[r.$tabIndex]=++a[r.$tabIndex];const n=a[r.$searchNode](t.ref,e);if(!n)return;e=n[0]}}function applyAssist(e,t){const a=e.assist;if(a){const e=a[r.$toHTML]();e&&(t.title=e);const n=a.role.match(g);if(n){const e="heading",a=n[1];t.role=e;t["aria-level"]=a}}if("table"===e.layout)t.role="table";else if("row"===e.layout)t.role="row";else{const a=e[r.$getParent]();"row"===a.layout&&(a.assist&&"TH"===a.assist.role?t.role="columnheader":t.role="cell")}}function ariaLabel(e){if(!e.assist)return null;const t=e.assist;return t.speak&&""!==t.speak[r.$content]?t.speak[r.$content]:t.toolTip?t.toolTip[r.$content]:null}function valueToHtml(e){return o.HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:Object.create(null)},children:[{name:"span",attributes:{style:Object.create(null)},value:e}]})}function setFirstUnsplittable(e){const t=e[r.$getTemplateRoot]();if(null===t[r.$extra].firstUnsplittable){t[r.$extra].firstUnsplittable=e;t[r.$extra].noLayoutFailure=!0}}function unsetFirstUnsplittable(e){const t=e[r.$getTemplateRoot]();t[r.$extra].firstUnsplittable===e&&(t[r.$extra].noLayoutFailure=!1)}function handleBreak(e){if(e[r.$extra])return!1;e[r.$extra]=Object.create(null);if("auto"===e.targetType)return!1;const t=e[r.$getTemplateRoot]();let a=null;if(e.target){a=t[r.$searchNode](e.target,e[r.$getParent]());if(!a)return!1;a=a[0]}const{currentPageArea:n,currentContentArea:i}=t[r.$extra];if("pageArea"===e.targetType){a instanceof PageArea||(a=null);if(e.startNew){e[r.$extra].target=a||n;return!0}if(a&&a!==n){e[r.$extra].target=a;return!0}return!1}a instanceof ContentArea||(a=null);const s=a&&a[r.$getParent]();let o,c=s;if(e.startNew)if(a){const e=s.contentArea.children,t=e.indexOf(i),r=e.indexOf(a);-1!==t&&te;n[r.$extra].noLayoutFailure=!0;const o=t[r.$toHTML](a);e[r.$addHTML](o.html,o.bbox);n[r.$extra].noLayoutFailure=i;t[r.$getSubformParent]=s}class AppearanceFilter extends r.StringObject{constructor(e){super(d,"appearanceFilter");this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||""}}class Arc extends r.XFAObject{constructor(e){super(d,"arc",!0);this.circular=(0,o.getInteger)({data:e.circular,defaultValue:0,validate:e=>1===e});this.hand=(0,o.getStringOption)(e.hand,["even","left","right"]);this.id=e.id||"";this.startAngle=(0,o.getFloat)({data:e.startAngle,defaultValue:0,validate:e=>!0});this.sweepAngle=(0,o.getFloat)({data:e.sweepAngle,defaultValue:360,validate:e=>!0});this.use=e.use||"";this.usehref=e.usehref||"";this.edge=null;this.fill=null}[r.$toHTML](){const e=this.edge?this.edge:new Edge({}),t=e[r.$toStyle](),a=Object.create(null);this.fill&&"visible"===this.fill.presence?Object.assign(a,this.fill[r.$toStyle]()):a.fill="transparent";a.strokeWidth=(0,s.measureToString)("visible"===e.presence?e.thickness:0);a.stroke=t.color;let n;const i={xmlns:f,style:{width:"100%",height:"100%",overflow:"visible"}};if(360===this.sweepAngle)n={name:"ellipse",attributes:{xmlns:f,cx:"50%",cy:"50%",rx:"50%",ry:"50%",style:a}};else{const e=this.startAngle*Math.PI/180,t=this.sweepAngle*Math.PI/180,r=this.sweepAngle>180?1:0,[s,o,c,l]=[50*(1+Math.cos(e)),50*(1-Math.sin(e)),50*(1+Math.cos(e+t)),50*(1-Math.sin(e+t))];n={name:"path",attributes:{xmlns:f,d:`M ${s} ${o} A 50 50 0 ${r} 0 ${c} ${l}`,vectorEffect:"non-scaling-stroke",style:a}};Object.assign(i,{viewBox:"0 0 100 100",preserveAspectRatio:"none"})}const c={name:"svg",children:[n],attributes:i};if(hasMargin(this[r.$getParent]()[r.$getParent]()))return o.HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[c]});c.attributes.style.position="absolute";return o.HTMLResult.success(c)}}class Area extends r.XFAObject{constructor(e){super(d,"area",!0);this.colSpan=(0,o.getInteger)({data:e.colSpan,defaultValue:1,validate:e=>e>=1||-1===e});this.id=e.id||"";this.name=e.name||"";this.relevant=(0,o.getRelevant)(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.x=(0,o.getMeasurement)(e.x,"0pt");this.y=(0,o.getMeasurement)(e.y,"0pt");this.desc=null;this.extras=null;this.area=new r.XFAObjectArray;this.draw=new r.XFAObjectArray;this.exObject=new r.XFAObjectArray;this.exclGroup=new r.XFAObjectArray;this.field=new r.XFAObjectArray;this.subform=new r.XFAObjectArray;this.subformSet=new r.XFAObjectArray}*[r.$getContainedChildren](){yield*getContainedChildren(this)}[r.$isTransparent](){return!0}[r.$isBindable](){return!0}[r.$addHTML](e,t){const[a,n,i,s]=t;this[r.$extra].width=Math.max(this[r.$extra].width,a+i);this[r.$extra].height=Math.max(this[r.$extra].height,n+s);this[r.$extra].children.push(e)}[r.$getAvailableSpace](){return this[r.$extra].availableSpace}[r.$toHTML](e){const t=(0,s.toStyle)(this,"position"),a={style:t,id:this[r.$uid],class:["xfaArea"]};(0,s.isPrintOnly)(this)&&a.class.push("xfaPrintOnly");this.name&&(a.xfaName=this.name);const n=[];this[r.$extra]={children:n,width:0,height:0,availableSpace:e};const i=this[r.$childrenToHTML]({filter:new Set(["area","draw","field","exclGroup","subform","subformSet"]),include:!0});if(!i.success){if(i.isBreak())return i;delete this[r.$extra];return o.HTMLResult.FAILURE}t.width=(0,s.measureToString)(this[r.$extra].width);t.height=(0,s.measureToString)(this[r.$extra].height);const c={name:"div",attributes:a,children:n},l=[this.x,this.y,this[r.$extra].width,this[r.$extra].height];delete this[r.$extra];return o.HTMLResult.success(c,l)}}class Assist extends r.XFAObject{constructor(e){super(d,"assist",!0);this.id=e.id||"";this.role=e.role||"";this.use=e.use||"";this.usehref=e.usehref||"";this.speak=null;this.toolTip=null}[r.$toHTML](){return this.toolTip&&this.toolTip[r.$content]?this.toolTip[r.$content]:null}}class Barcode extends r.XFAObject{constructor(e){super(d,"barcode",!0);this.charEncoding=(0,o.getKeyword)({data:e.charEncoding?e.charEncoding.toLowerCase():"",defaultValue:"",validate:e=>["utf-8","big-five","fontspecific","gbk","gb-18030","gb-2312","ksc-5601","none","shift-jis","ucs-2","utf-16"].includes(e)||e.match(/iso-8859-\d{2}/)});this.checksum=(0,o.getStringOption)(e.checksum,["none","1mod10","1mod10_1mod11","2mod10","auto"]);this.dataColumnCount=(0,o.getInteger)({data:e.dataColumnCount,defaultValue:-1,validate:e=>e>=0});this.dataLength=(0,o.getInteger)({data:e.dataLength,defaultValue:-1,validate:e=>e>=0});this.dataPrep=(0,o.getStringOption)(e.dataPrep,["none","flateCompress"]);this.dataRowCount=(0,o.getInteger)({data:e.dataRowCount,defaultValue:-1,validate:e=>e>=0});this.endChar=e.endChar||"";this.errorCorrectionLevel=(0,o.getInteger)({data:e.errorCorrectionLevel,defaultValue:-1,validate:e=>e>=0&&e<=8});this.id=e.id||"";this.moduleHeight=(0,o.getMeasurement)(e.moduleHeight,"5mm");this.moduleWidth=(0,o.getMeasurement)(e.moduleWidth,"0.25mm");this.printCheckDigit=(0,o.getInteger)({data:e.printCheckDigit,defaultValue:0,validate:e=>1===e});this.rowColumnRatio=(0,o.getRatio)(e.rowColumnRatio);this.startChar=e.startChar||"";this.textLocation=(0,o.getStringOption)(e.textLocation,["below","above","aboveEmbedded","belowEmbedded","none"]);this.truncate=(0,o.getInteger)({data:e.truncate,defaultValue:0,validate:e=>1===e});this.type=(0,o.getStringOption)(e.type?e.type.toLowerCase():"",["aztec","codabar","code2of5industrial","code2of5interleaved","code2of5matrix","code2of5standard","code3of9","code3of9extended","code11","code49","code93","code128","code128a","code128b","code128c","code128sscc","datamatrix","ean8","ean8add2","ean8add5","ean13","ean13add2","ean13add5","ean13pwcd","fim","logmars","maxicode","msi","pdf417","pdf417macro","plessey","postauscust2","postauscust3","postausreplypaid","postausstandard","postukrm4scc","postusdpbc","postusimb","postusstandard","postus5zip","qrcode","rfid","rss14","rss14expanded","rss14limited","rss14stacked","rss14stackedomni","rss14truncated","telepen","ucc128","ucc128random","ucc128sscc","upca","upcaadd2","upcaadd5","upcapwcd","upce","upceadd2","upceadd5","upcean2","upcean5","upsmaxicode"]);this.upsMode=(0,o.getStringOption)(e.upsMode,["usCarrier","internationalCarrier","secureSymbol","standardSymbol"]);this.use=e.use||"";this.usehref=e.usehref||"";this.wideNarrowRatio=(0,o.getRatio)(e.wideNarrowRatio);this.encrypt=null;this.extras=null}}class Bind extends r.XFAObject{constructor(e){super(d,"bind",!0);this.match=(0,o.getStringOption)(e.match,["once","dataRef","global","none"]);this.ref=e.ref||"";this.picture=null}}class BindItems extends r.XFAObject{constructor(e){super(d,"bindItems");this.connection=e.connection||"";this.labelRef=e.labelRef||"";this.ref=e.ref||"";this.valueRef=e.valueRef||""}}t.BindItems=BindItems;class Bookend extends r.XFAObject{constructor(e){super(d,"bookend");this.id=e.id||"";this.leader=e.leader||"";this.trailer=e.trailer||"";this.use=e.use||"";this.usehref=e.usehref||""}}class BooleanElement extends r.Option01{constructor(e){super(d,"boolean");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$toHTML](e){return valueToHtml(1===this[r.$content]?"1":"0")}}class Border extends r.XFAObject{constructor(e){super(d,"border",!0);this.break=(0,o.getStringOption)(e.break,["close","open"]);this.hand=(0,o.getStringOption)(e.hand,["even","left","right"]);this.id=e.id||"";this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.relevant=(0,o.getRelevant)(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.corner=new r.XFAObjectArray(4);this.edge=new r.XFAObjectArray(4);this.extras=null;this.fill=null;this.margin=null}[r.$getExtra](){if(!this[r.$extra]){const e=this.edge.children.slice();if(e.length<4){const t=e[e.length-1]||new Edge({});for(let a=e.length;a<4;a++)e.push(t)}const t=e.map((e=>e.thickness)),a=[0,0,0,0];if(this.margin){a[0]=this.margin.topInset;a[1]=this.margin.rightInset;a[2]=this.margin.bottomInset;a[3]=this.margin.leftInset}this[r.$extra]={widths:t,insets:a,edges:e}}return this[r.$extra]}[r.$toStyle](){const{edges:e}=this[r.$getExtra](),t=e.map((e=>{const t=e[r.$toStyle]();t.color=t.color||"#000000";return t})),a=Object.create(null);this.margin&&Object.assign(a,this.margin[r.$toStyle]());this.fill&&"visible"===this.fill.presence&&Object.assign(a,this.fill[r.$toStyle]());if(this.corner.children.some((e=>0!==e.radius))){const e=this.corner.children.map((e=>e[r.$toStyle]()));if(2===e.length||3===e.length){const t=e[e.length-1];for(let a=e.length;a<4;a++)e.push(t)}a.borderRadius=e.map((e=>e.radius)).join(" ")}switch(this.presence){case"invisible":case"hidden":a.borderStyle="";break;case"inactive":a.borderStyle="none";break;default:a.borderStyle=t.map((e=>e.style)).join(" ")}a.borderWidth=t.map((e=>e.width)).join(" ");a.borderColor=t.map((e=>e.color)).join(" ");return a}}class Break extends r.XFAObject{constructor(e){super(d,"break",!0);this.after=(0,o.getStringOption)(e.after,["auto","contentArea","pageArea","pageEven","pageOdd"]);this.afterTarget=e.afterTarget||"";this.before=(0,o.getStringOption)(e.before,["auto","contentArea","pageArea","pageEven","pageOdd"]);this.beforeTarget=e.beforeTarget||"";this.bookendLeader=e.bookendLeader||"";this.bookendTrailer=e.bookendTrailer||"";this.id=e.id||"";this.overflowLeader=e.overflowLeader||"";this.overflowTarget=e.overflowTarget||"";this.overflowTrailer=e.overflowTrailer||"";this.startNew=(0,o.getInteger)({data:e.startNew,defaultValue:0,validate:e=>1===e});this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}}class BreakAfter extends r.XFAObject{constructor(e){super(d,"breakAfter",!0);this.id=e.id||"";this.leader=e.leader||"";this.startNew=(0,o.getInteger)({data:e.startNew,defaultValue:0,validate:e=>1===e});this.target=e.target||"";this.targetType=(0,o.getStringOption)(e.targetType,["auto","contentArea","pageArea"]);this.trailer=e.trailer||"";this.use=e.use||"";this.usehref=e.usehref||"";this.script=null}}class BreakBefore extends r.XFAObject{constructor(e){super(d,"breakBefore",!0);this.id=e.id||"";this.leader=e.leader||"";this.startNew=(0,o.getInteger)({data:e.startNew,defaultValue:0,validate:e=>1===e});this.target=e.target||"";this.targetType=(0,o.getStringOption)(e.targetType,["auto","contentArea","pageArea"]);this.trailer=e.trailer||"";this.use=e.use||"";this.usehref=e.usehref||"";this.script=null}[r.$toHTML](e){this[r.$extra]={};return o.HTMLResult.FAILURE}}class Button extends r.XFAObject{constructor(e){super(d,"button",!0);this.highlight=(0,o.getStringOption)(e.highlight,["inverted","none","outline","push"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}[r.$toHTML](e){const t=this[r.$getParent]()[r.$getParent](),a={name:"button",attributes:{id:this[r.$uid],class:["xfaButton"],style:{}},children:[]};for(const e of t.event.children){if("click"!==e.activity||!e.script)continue;const t=(0,h.recoverJsURL)(e.script[r.$content]);if(!t)continue;const n=(0,s.fixURL)(t.url);n&&a.children.push({name:"a",attributes:{id:"link"+this[r.$uid],href:n,newWindow:t.newWindow,class:["xfaLink"],style:{}},children:[]})}return o.HTMLResult.success(a)}}class Calculate extends r.XFAObject{constructor(e){super(d,"calculate",!0);this.id=e.id||"";this.override=(0,o.getStringOption)(e.override,["disabled","error","ignore","warning"]);this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.message=null;this.script=null}}class Caption extends r.XFAObject{constructor(e){super(d,"caption",!0);this.id=e.id||"";this.placement=(0,o.getStringOption)(e.placement,["left","bottom","inline","right","top"]);this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.reserve=Math.ceil((0,o.getMeasurement)(e.reserve));this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.font=null;this.margin=null;this.para=null;this.value=null}[r.$setValue](e){_setValue(this,e)}[r.$getExtra](e){if(!this[r.$extra]){let{width:t,height:a}=e;switch(this.placement){case"left":case"right":case"inline":t=this.reserve<=0?t:this.reserve;break;case"top":case"bottom":a=this.reserve<=0?a:this.reserve}this[r.$extra]=(0,s.layoutNode)(this,{width:t,height:a})}return this[r.$extra]}[r.$toHTML](e){if(!this.value)return o.HTMLResult.EMPTY;this[r.$pushPara]();const t=this.value[r.$toHTML](e).html;if(!t){this[r.$popPara]();return o.HTMLResult.EMPTY}const a=this.reserve;if(this.reserve<=0){const{w:t,h:a}=this[r.$getExtra](e);switch(this.placement){case"left":case"right":case"inline":this.reserve=t;break;case"top":case"bottom":this.reserve=a}}const n=[];"string"==typeof t?n.push({name:"#text",value:t}):n.push(t);const i=(0,s.toStyle)(this,"font","margin","visibility");switch(this.placement){case"left":case"right":this.reserve>0&&(i.width=(0,s.measureToString)(this.reserve));break;case"top":case"bottom":this.reserve>0&&(i.height=(0,s.measureToString)(this.reserve))}(0,s.setPara)(this,null,t);this[r.$popPara]();this.reserve=a;return o.HTMLResult.success({name:"div",attributes:{style:i,class:["xfaCaption"]},children:n})}}class Certificate extends r.StringObject{constructor(e){super(d,"certificate");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Certificates extends r.XFAObject{constructor(e){super(d,"certificates",!0);this.credentialServerPolicy=(0,o.getStringOption)(e.credentialServerPolicy,["optional","required"]);this.id=e.id||"";this.url=e.url||"";this.urlPolicy=e.urlPolicy||"";this.use=e.use||"";this.usehref=e.usehref||"";this.encryption=null;this.issuers=null;this.keyUsage=null;this.oids=null;this.signing=null;this.subjectDNs=null}}class CheckButton extends r.XFAObject{constructor(e){super(d,"checkButton",!0);this.id=e.id||"";this.mark=(0,o.getStringOption)(e.mark,["default","check","circle","cross","diamond","square","star"]);this.shape=(0,o.getStringOption)(e.shape,["square","round"]);this.size=(0,o.getMeasurement)(e.size,"10pt");this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.extras=null;this.margin=null}[r.$toHTML](e){const t=(0,s.toStyle)("margin"),a=(0,s.measureToString)(this.size);t.width=t.height=a;let n,i,c;const l=this[r.$getParent]()[r.$getParent](),h=l.items.children.length&&l.items.children[0][r.$toHTML]().html||[],u={on:(void 0!==h[0]?h[0]:"on").toString(),off:(void 0!==h[1]?h[1]:"off").toString()},d=(l.value&&l.value[r.$text]()||"off")===u.on||void 0,f=l[r.$getSubformParent](),g=l[r.$uid];let p;if(f instanceof ExclGroup){c=f[r.$uid];n="radio";i="xfaRadio";p=f[r.$data]&&f[r.$data][r.$uid]||f[r.$uid]}else{n="checkbox";i="xfaCheckbox";p=l[r.$data]&&l[r.$data][r.$uid]||l[r.$uid]}const m={name:"input",attributes:{class:[i],style:t,fieldId:g,dataId:p,type:n,checked:d,xfaOn:u.on,xfaOff:u.off,"aria-label":ariaLabel(l)}};c&&(m.attributes.name=c);return o.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[m]})}}class ChoiceList extends r.XFAObject{constructor(e){super(d,"choiceList",!0);this.commitOn=(0,o.getStringOption)(e.commitOn,["select","exit"]);this.id=e.id||"";this.open=(0,o.getStringOption)(e.open,["userControl","always","multiSelect","onEntry"]);this.textEntry=(0,o.getInteger)({data:e.textEntry,defaultValue:0,validate:e=>1===e});this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.extras=null;this.margin=null}[r.$toHTML](e){const t=(0,s.toStyle)(this,"border","margin"),a=this[r.$getParent]()[r.$getParent](),n={fontSize:`calc(${a.font&&a.font.size||10}px * var(--zoom-factor))`},i=[];if(a.items.children.length>0){const e=a.items;let t=0,s=0;if(2===e.children.length){t=e.children[0].save;s=1-t}const o=e.children[t][r.$toHTML]().html,c=e.children[s][r.$toHTML]().html;let l=!1;const h=a.value&&a.value[r.$text]()||"";for(let e=0,t=o.length;ee>=0});this.use=e.use||"";this.usehref=e.usehref||""}}class Connect extends r.XFAObject{constructor(e){super(d,"connect",!0);this.connection=e.connection||"";this.id=e.id||"";this.ref=e.ref||"";this.usage=(0,o.getStringOption)(e.usage,["exportAndImport","exportOnly","importOnly"]);this.use=e.use||"";this.usehref=e.usehref||"";this.picture=null}}class ContentArea extends r.XFAObject{constructor(e){super(d,"contentArea",!0);this.h=(0,o.getMeasurement)(e.h);this.id=e.id||"";this.name=e.name||"";this.relevant=(0,o.getRelevant)(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.w=(0,o.getMeasurement)(e.w);this.x=(0,o.getMeasurement)(e.x,"0pt");this.y=(0,o.getMeasurement)(e.y,"0pt");this.desc=null;this.extras=null}[r.$toHTML](e){const t={left:(0,s.measureToString)(this.x),top:(0,s.measureToString)(this.y),width:(0,s.measureToString)(this.w),height:(0,s.measureToString)(this.h)},a=["xfaContentarea"];(0,s.isPrintOnly)(this)&&a.push("xfaPrintOnly");return o.HTMLResult.success({name:"div",children:[],attributes:{style:t,class:a,id:this[r.$uid]}})}}class Corner extends r.XFAObject{constructor(e){super(d,"corner",!0);this.id=e.id||"";this.inverted=(0,o.getInteger)({data:e.inverted,defaultValue:0,validate:e=>1===e});this.join=(0,o.getStringOption)(e.join,["square","round"]);this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.radius=(0,o.getMeasurement)(e.radius);this.stroke=(0,o.getStringOption)(e.stroke,["solid","dashDot","dashDotDot","dashed","dotted","embossed","etched","lowered","raised"]);this.thickness=(0,o.getMeasurement)(e.thickness,"0.5pt");this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[r.$toStyle](){const e=(0,s.toStyle)(this,"visibility");e.radius=(0,s.measureToString)("square"===this.join?0:this.radius);return e}}class DateElement extends r.ContentObject{constructor(e){super(d,"date");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){const e=this[r.$content].trim();this[r.$content]=e?new Date(e):null}[r.$toHTML](e){return valueToHtml(this[r.$content]?this[r.$content].toString():"")}}class DateTime extends r.ContentObject{constructor(e){super(d,"dateTime");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){const e=this[r.$content].trim();this[r.$content]=e?new Date(e):null}[r.$toHTML](e){return valueToHtml(this[r.$content]?this[r.$content].toString():"")}}class DateTimeEdit extends r.XFAObject{constructor(e){super(d,"dateTimeEdit",!0);this.hScrollPolicy=(0,o.getStringOption)(e.hScrollPolicy,["auto","off","on"]);this.id=e.id||"";this.picker=(0,o.getStringOption)(e.picker,["host","none"]);this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.comb=null;this.extras=null;this.margin=null}[r.$toHTML](e){const t=(0,s.toStyle)(this,"border","font","margin"),a=this[r.$getParent]()[r.$getParent](),n={name:"input",attributes:{type:"text",fieldId:a[r.$uid],dataId:a[r.$data]&&a[r.$data][r.$uid]||a[r.$uid],class:["xfaTextfield"],style:t,"aria-label":ariaLabel(a)}};return o.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[n]})}}class Decimal extends r.ContentObject{constructor(e){super(d,"decimal");this.fracDigits=(0,o.getInteger)({data:e.fracDigits,defaultValue:2,validate:e=>!0});this.id=e.id||"";this.leadDigits=(0,o.getInteger)({data:e.leadDigits,defaultValue:-1,validate:e=>!0});this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){const e=parseFloat(this[r.$content].trim());this[r.$content]=isNaN(e)?null:e}[r.$toHTML](e){return valueToHtml(null!==this[r.$content]?this[r.$content].toString():"")}}class DefaultUi extends r.XFAObject{constructor(e){super(d,"defaultUi",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}}class Desc extends r.XFAObject{constructor(e){super(d,"desc",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.boolean=new r.XFAObjectArray;this.date=new r.XFAObjectArray;this.dateTime=new r.XFAObjectArray;this.decimal=new r.XFAObjectArray;this.exData=new r.XFAObjectArray;this.float=new r.XFAObjectArray;this.image=new r.XFAObjectArray;this.integer=new r.XFAObjectArray;this.text=new r.XFAObjectArray;this.time=new r.XFAObjectArray}}class DigestMethod extends r.OptionObject{constructor(e){super(d,"digestMethod",["","SHA1","SHA256","SHA512","RIPEMD160"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||""}}class DigestMethods extends r.XFAObject{constructor(e){super(d,"digestMethods",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.digestMethod=new r.XFAObjectArray}}class Draw extends r.XFAObject{constructor(e){super(d,"draw",!0);this.anchorType=(0,o.getStringOption)(e.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]);this.colSpan=(0,o.getInteger)({data:e.colSpan,defaultValue:1,validate:e=>e>=1||-1===e});this.h=e.h?(0,o.getMeasurement)(e.h):"";this.hAlign=(0,o.getStringOption)(e.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=e.id||"";this.locale=e.locale||"";this.maxH=(0,o.getMeasurement)(e.maxH,"0pt");this.maxW=(0,o.getMeasurement)(e.maxW,"0pt");this.minH=(0,o.getMeasurement)(e.minH,"0pt");this.minW=(0,o.getMeasurement)(e.minW,"0pt");this.name=e.name||"";this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.relevant=(0,o.getRelevant)(e.relevant);this.rotate=(0,o.getInteger)({data:e.rotate,defaultValue:0,validate:e=>e%90==0});this.use=e.use||"";this.usehref=e.usehref||"";this.w=e.w?(0,o.getMeasurement)(e.w):"";this.x=(0,o.getMeasurement)(e.x,"0pt");this.y=(0,o.getMeasurement)(e.y,"0pt");this.assist=null;this.border=null;this.caption=null;this.desc=null;this.extras=null;this.font=null;this.keep=null;this.margin=null;this.para=null;this.traversal=null;this.ui=null;this.value=null;this.setProperty=new r.XFAObjectArray}[r.$setValue](e){_setValue(this,e)}[r.$toHTML](e){setTabIndex(this);if("hidden"===this.presence||"inactive"===this.presence)return o.HTMLResult.EMPTY;(0,s.fixDimensions)(this);this[r.$pushPara]();const t=this.w,a=this.h,{w:n,h:c,isBroken:l}=(0,s.layoutNode)(this,e);if(n&&""===this.w){if(l&&this[r.$getSubformParent]()[r.$isThereMoreWidth]()){this[r.$popPara]();return o.HTMLResult.FAILURE}this.w=n}c&&""===this.h&&(this.h=c);setFirstUnsplittable(this);if(!(0,i.checkDimensions)(this,e)){this.w=t;this.h=a;this[r.$popPara]();return o.HTMLResult.FAILURE}unsetFirstUnsplittable(this);const h=(0,s.toStyle)(this,"font","hAlign","dimensions","position","presence","rotate","anchorType","border","margin");(0,s.setMinMaxDimensions)(this,h);if(h.margin){h.padding=h.margin;delete h.margin}const u=["xfaDraw"];this.font&&u.push("xfaFont");(0,s.isPrintOnly)(this)&&u.push("xfaPrintOnly");const d={style:h,id:this[r.$uid],class:u};this.name&&(d.xfaName=this.name);const f={name:"div",attributes:d,children:[]};applyAssist(this,d);const g=(0,s.computeBbox)(this,f,e),p=this.value?this.value[r.$toHTML](e).html:null;if(null===p){this.w=t;this.h=a;this[r.$popPara]();return o.HTMLResult.success((0,s.createWrapper)(this,f),g)}f.children.push(p);(0,s.setPara)(this,h,p);this.w=t;this.h=a;this[r.$popPara]();return o.HTMLResult.success((0,s.createWrapper)(this,f),g)}}class Edge extends r.XFAObject{constructor(e){super(d,"edge",!0);this.cap=(0,o.getStringOption)(e.cap,["square","butt","round"]);this.id=e.id||"";this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.stroke=(0,o.getStringOption)(e.stroke,["solid","dashDot","dashDotDot","dashed","dotted","embossed","etched","lowered","raised"]);this.thickness=(0,o.getMeasurement)(e.thickness,"0.5pt");this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[r.$toStyle](){const e=(0,s.toStyle)(this,"visibility");Object.assign(e,{linecap:this.cap,width:(0,s.measureToString)(this.thickness),color:this.color?this.color[r.$toStyle]():"#000000",style:""});if("visible"!==this.presence)e.style="none";else switch(this.stroke){case"solid":e.style="solid";break;case"dashDot":case"dashDotDot":case"dashed":e.style="dashed";break;case"dotted":e.style="dotted";break;case"embossed":e.style="ridge";break;case"etched":e.style="groove";break;case"lowered":e.style="inset";break;case"raised":e.style="outset"}return e}}class Encoding extends r.OptionObject{constructor(e){super(d,"encoding",["adbe.x509.rsa_sha1","adbe.pkcs7.detached","adbe.pkcs7.sha1"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Encodings extends r.XFAObject{constructor(e){super(d,"encodings",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.encoding=new r.XFAObjectArray}}class Encrypt extends r.XFAObject{constructor(e){super(d,"encrypt",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.certificate=null}}class EncryptData extends r.XFAObject{constructor(e){super(d,"encryptData",!0);this.id=e.id||"";this.operation=(0,o.getStringOption)(e.operation,["encrypt","decrypt"]);this.target=e.target||"";this.use=e.use||"";this.usehref=e.usehref||"";this.filter=null;this.manifest=null}}class Encryption extends r.XFAObject{constructor(e){super(d,"encryption",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.certificate=new r.XFAObjectArray}}class EncryptionMethod extends r.OptionObject{constructor(e){super(d,"encryptionMethod",["","AES256-CBC","TRIPLEDES-CBC","AES128-CBC","AES192-CBC"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||""}}class EncryptionMethods extends r.XFAObject{constructor(e){super(d,"encryptionMethods",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.encryptionMethod=new r.XFAObjectArray}}class Event extends r.XFAObject{constructor(e){super(d,"event",!0);this.activity=(0,o.getStringOption)(e.activity,["click","change","docClose","docReady","enter","exit","full","indexChange","initialize","mouseDown","mouseEnter","mouseExit","mouseUp","postExecute","postOpen","postPrint","postSave","postSign","postSubmit","preExecute","preOpen","prePrint","preSave","preSign","preSubmit","ready","validationState"]);this.id=e.id||"";this.listen=(0,o.getStringOption)(e.listen,["refOnly","refAndDescendents"]);this.name=e.name||"";this.ref=e.ref||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.encryptData=null;this.execute=null;this.script=null;this.signData=null;this.submit=null}}class ExData extends r.ContentObject{constructor(e){super(d,"exData");this.contentType=e.contentType||"";this.href=e.href||"";this.id=e.id||"";this.maxLength=(0,o.getInteger)({data:e.maxLength,defaultValue:-1,validate:e=>e>=-1});this.name=e.name||"";this.rid=e.rid||"";this.transferEncoding=(0,o.getStringOption)(e.transferEncoding,["none","base64","package"]);this.use=e.use||"";this.usehref=e.usehref||""}[r.$isCDATAXml](){return"text/html"===this.contentType}[r.$onChild](e){if("text/html"===this.contentType&&e[r.$namespaceId]===n.NamespaceIds.xhtml.id){this[r.$content]=e;return!0}if("text/xml"===this.contentType){this[r.$content]=e;return!0}return!1}[r.$toHTML](e){return"text/html"===this.contentType&&this[r.$content]?this[r.$content][r.$toHTML](e):o.HTMLResult.EMPTY}}class ExObject extends r.XFAObject{constructor(e){super(d,"exObject",!0);this.archive=e.archive||"";this.classId=e.classId||"";this.codeBase=e.codeBase||"";this.codeType=e.codeType||"";this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.boolean=new r.XFAObjectArray;this.date=new r.XFAObjectArray;this.dateTime=new r.XFAObjectArray;this.decimal=new r.XFAObjectArray;this.exData=new r.XFAObjectArray;this.exObject=new r.XFAObjectArray;this.float=new r.XFAObjectArray;this.image=new r.XFAObjectArray;this.integer=new r.XFAObjectArray;this.text=new r.XFAObjectArray;this.time=new r.XFAObjectArray}}class ExclGroup extends r.XFAObject{constructor(e){super(d,"exclGroup",!0);this.access=(0,o.getStringOption)(e.access,["open","nonInteractive","protected","readOnly"]);this.accessKey=e.accessKey||"";this.anchorType=(0,o.getStringOption)(e.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]);this.colSpan=(0,o.getInteger)({data:e.colSpan,defaultValue:1,validate:e=>e>=1||-1===e});this.h=e.h?(0,o.getMeasurement)(e.h):"";this.hAlign=(0,o.getStringOption)(e.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=e.id||"";this.layout=(0,o.getStringOption)(e.layout,["position","lr-tb","rl-row","rl-tb","row","table","tb"]);this.maxH=(0,o.getMeasurement)(e.maxH,"0pt");this.maxW=(0,o.getMeasurement)(e.maxW,"0pt");this.minH=(0,o.getMeasurement)(e.minH,"0pt");this.minW=(0,o.getMeasurement)(e.minW,"0pt");this.name=e.name||"";this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.relevant=(0,o.getRelevant)(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.w=e.w?(0,o.getMeasurement)(e.w):"";this.x=(0,o.getMeasurement)(e.x,"0pt");this.y=(0,o.getMeasurement)(e.y,"0pt");this.assist=null;this.bind=null;this.border=null;this.calculate=null;this.caption=null;this.desc=null;this.extras=null;this.margin=null;this.para=null;this.traversal=null;this.validate=null;this.connect=new r.XFAObjectArray;this.event=new r.XFAObjectArray;this.field=new r.XFAObjectArray;this.setProperty=new r.XFAObjectArray}[r.$isBindable](){return!0}[r.$hasSettableValue](){return!0}[r.$setValue](e){for(const t of this.field.children){if(!t.value){const e=new Value({});t[r.$appendChild](e);t.value=e}t.value[r.$setValue](e)}}[r.$isThereMoreWidth](){return this.layout.endsWith("-tb")&&0===this[r.$extra].attempt&&this[r.$extra].numberInLine>0||this[r.$getParent]()[r.$isThereMoreWidth]()}[r.$isSplittable](){const e=this[r.$getSubformParent]();if(!e[r.$isSplittable]())return!1;if(void 0!==this[r.$extra]._isSplittable)return this[r.$extra]._isSplittable;if("position"===this.layout||this.layout.includes("row")){this[r.$extra]._isSplittable=!1;return!1}if(e.layout&&e.layout.endsWith("-tb")&&0!==e[r.$extra].numberInLine)return!1;this[r.$extra]._isSplittable=!0;return!0}[r.$flushHTML](){return(0,i.flushHTML)(this)}[r.$addHTML](e,t){(0,i.addHTML)(this,e,t)}[r.$getAvailableSpace](){return(0,i.getAvailableSpace)(this)}[r.$toHTML](e){setTabIndex(this);if("hidden"===this.presence||"inactive"===this.presence||0===this.h||0===this.w)return o.HTMLResult.EMPTY;(0,s.fixDimensions)(this);const t=[],a={id:this[r.$uid],class:[]};(0,s.setAccess)(this,a.class);this[r.$extra]||(this[r.$extra]=Object.create(null));Object.assign(this[r.$extra],{children:t,attributes:a,attempt:0,line:null,numberInLine:0,availableSpace:{width:Math.min(this.w||1/0,e.width),height:Math.min(this.h||1/0,e.height)},width:0,height:0,prevHeight:0,currentWidth:0});const n=this[r.$isSplittable]();n||setFirstUnsplittable(this);if(!(0,i.checkDimensions)(this,e))return o.HTMLResult.FAILURE;const c=new Set(["field"]);if(this.layout.includes("row")){const e=this[r.$getSubformParent]().columnWidths;if(Array.isArray(e)&&e.length>0){this[r.$extra].columnWidths=e;this[r.$extra].currentColumn=0}}const l=(0,s.toStyle)(this,"anchorType","dimensions","position","presence","border","margin","hAlign"),h=["xfaExclgroup"],u=(0,s.layoutClass)(this);u&&h.push(u);(0,s.isPrintOnly)(this)&&h.push("xfaPrintOnly");a.style=l;a.class=h;this.name&&(a.xfaName=this.name);this[r.$pushPara]();const d="lr-tb"===this.layout||"rl-tb"===this.layout,f=d?2:1;for(;this[r.$extra].attempte>=1||-1===e});this.h=e.h?(0,o.getMeasurement)(e.h):"";this.hAlign=(0,o.getStringOption)(e.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=e.id||"";this.locale=e.locale||"";this.maxH=(0,o.getMeasurement)(e.maxH,"0pt");this.maxW=(0,o.getMeasurement)(e.maxW,"0pt");this.minH=(0,o.getMeasurement)(e.minH,"0pt");this.minW=(0,o.getMeasurement)(e.minW,"0pt");this.name=e.name||"";this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.relevant=(0,o.getRelevant)(e.relevant);this.rotate=(0,o.getInteger)({data:e.rotate,defaultValue:0,validate:e=>e%90==0});this.use=e.use||"";this.usehref=e.usehref||"";this.w=e.w?(0,o.getMeasurement)(e.w):"";this.x=(0,o.getMeasurement)(e.x,"0pt");this.y=(0,o.getMeasurement)(e.y,"0pt");this.assist=null;this.bind=null;this.border=null;this.calculate=null;this.caption=null;this.desc=null;this.extras=null;this.font=null;this.format=null;this.items=new r.XFAObjectArray(2);this.keep=null;this.margin=null;this.para=null;this.traversal=null;this.ui=null;this.validate=null;this.value=null;this.bindItems=new r.XFAObjectArray;this.connect=new r.XFAObjectArray;this.event=new r.XFAObjectArray;this.setProperty=new r.XFAObjectArray}[r.$isBindable](){return!0}[r.$setValue](e){_setValue(this,e)}[r.$toHTML](e){setTabIndex(this);if(!this.ui){this.ui=new Ui({});this.ui[r.$globalData]=this[r.$globalData];this[r.$appendChild](this.ui);let e;switch(this.items.children.length){case 0:e=new TextEdit({});this.ui.textEdit=e;break;case 1:e=new CheckButton({});this.ui.checkButton=e;break;case 2:e=new ChoiceList({});this.ui.choiceList=e}this.ui[r.$appendChild](e)}if(!this.ui||"hidden"===this.presence||"inactive"===this.presence||0===this.h||0===this.w)return o.HTMLResult.EMPTY;this.caption&&delete this.caption[r.$extra];this[r.$pushPara]();const t=this.caption?this.caption[r.$toHTML](e).html:null,a=this.w,n=this.h;let c=0,h=0;if(this.margin){c=this.margin.leftInset+this.margin.rightInset;h=this.margin.topInset+this.margin.bottomInset}let u=null;if(""===this.w||""===this.h){let t=null,a=null,n=0,i=0;if(this.ui.checkButton)n=i=this.ui.checkButton.size;else{const{w:t,h:a}=(0,s.layoutNode)(this,e);if(null!==t){n=t;i=a}else i=(0,l.getMetrics)(this.font,!0).lineNoGap}u=getBorderDims(this.ui[r.$getExtra]());n+=u.w;i+=u.h;if(this.caption){const{w:s,h:c,isBroken:l}=this.caption[r.$getExtra](e);if(l&&this[r.$getSubformParent]()[r.$isThereMoreWidth]()){this[r.$popPara]();return o.HTMLResult.FAILURE}t=s;a=c;switch(this.caption.placement){case"left":case"right":case"inline":t+=n;break;case"top":case"bottom":a+=i}}else{t=n;a=i}if(t&&""===this.w){t+=c;this.w=Math.min(this.maxW<=0?1/0:this.maxW,this.minW+1e>=1&&e<=5});this.appearanceFilter=null;this.certificates=null;this.digestMethods=null;this.encodings=null;this.encryptionMethods=null;this.handler=null;this.lockDocument=null;this.mdp=null;this.reasons=null;this.timeStamp=null}}class Float extends r.ContentObject{constructor(e){super(d,"float");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){const e=parseFloat(this[r.$content].trim());this[r.$content]=isNaN(e)?null:e}[r.$toHTML](e){return valueToHtml(null!==this[r.$content]?this[r.$content].toString():"")}}class Font extends r.XFAObject{constructor(e){super(d,"font",!0);this.baselineShift=(0,o.getMeasurement)(e.baselineShift);this.fontHorizontalScale=(0,o.getFloat)({data:e.fontHorizontalScale,defaultValue:100,validate:e=>e>=0});this.fontVerticalScale=(0,o.getFloat)({data:e.fontVerticalScale,defaultValue:100,validate:e=>e>=0});this.id=e.id||"";this.kerningMode=(0,o.getStringOption)(e.kerningMode,["none","pair"]);this.letterSpacing=(0,o.getMeasurement)(e.letterSpacing,"0");this.lineThrough=(0,o.getInteger)({data:e.lineThrough,defaultValue:0,validate:e=>1===e||2===e});this.lineThroughPeriod=(0,o.getStringOption)(e.lineThroughPeriod,["all","word"]);this.overline=(0,o.getInteger)({data:e.overline,defaultValue:0,validate:e=>1===e||2===e});this.overlinePeriod=(0,o.getStringOption)(e.overlinePeriod,["all","word"]);this.posture=(0,o.getStringOption)(e.posture,["normal","italic"]);this.size=(0,o.getMeasurement)(e.size,"10pt");this.typeface=e.typeface||"Courier";this.underline=(0,o.getInteger)({data:e.underline,defaultValue:0,validate:e=>1===e||2===e});this.underlinePeriod=(0,o.getStringOption)(e.underlinePeriod,["all","word"]);this.use=e.use||"";this.usehref=e.usehref||"";this.weight=(0,o.getStringOption)(e.weight,["normal","bold"]);this.extras=null;this.fill=null}[r.$clean](e){super[r.$clean](e);this[r.$globalData].usedTypefaces.add(this.typeface)}[r.$toStyle](){const e=(0,s.toStyle)(this,"fill"),t=e.color;if(t)if("#000000"===t)delete e.color;else if(!t.startsWith("#")){e.background=t;e.backgroundClip="text";e.color="transparent"}this.baselineShift&&(e.verticalAlign=(0,s.measureToString)(this.baselineShift));e.fontKerning="none"===this.kerningMode?"none":"normal";e.letterSpacing=(0,s.measureToString)(this.letterSpacing);if(0!==this.lineThrough){e.textDecoration="line-through";2===this.lineThrough&&(e.textDecorationStyle="double")}if(0!==this.overline){e.textDecoration="overline";2===this.overline&&(e.textDecorationStyle="double")}e.fontStyle=this.posture;e.fontSize=(0,s.measureToString)(.99*this.size);(0,s.setFontFamily)(this,this,this[r.$globalData].fontFinder,e);if(0!==this.underline){e.textDecoration="underline";2===this.underline&&(e.textDecorationStyle="double")}e.fontWeight=this.weight;return e}}class Format extends r.XFAObject{constructor(e){super(d,"format",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.picture=null}}class Handler extends r.StringObject{constructor(e){super(d,"handler");this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||""}}class Hyphenation extends r.XFAObject{constructor(e){super(d,"hyphenation");this.excludeAllCaps=(0,o.getInteger)({data:e.excludeAllCaps,defaultValue:0,validate:e=>1===e});this.excludeInitialCap=(0,o.getInteger)({data:e.excludeInitialCap,defaultValue:0,validate:e=>1===e});this.hyphenate=(0,o.getInteger)({data:e.hyphenate,defaultValue:0,validate:e=>1===e});this.id=e.id||"";this.pushCharacterCount=(0,o.getInteger)({data:e.pushCharacterCount,defaultValue:3,validate:e=>e>=0});this.remainCharacterCount=(0,o.getInteger)({data:e.remainCharacterCount,defaultValue:3,validate:e=>e>=0});this.use=e.use||"";this.usehref=e.usehref||"";this.wordCharacterCount=(0,o.getInteger)({data:e.wordCharacterCount,defaultValue:7,validate:e=>e>=0})}}class Image extends r.StringObject{constructor(e){super(d,"image");this.aspect=(0,o.getStringOption)(e.aspect,["fit","actual","height","none","width"]);this.contentType=e.contentType||"";this.href=e.href||"";this.id=e.id||"";this.name=e.name||"";this.transferEncoding=(0,o.getStringOption)(e.transferEncoding,["base64","none","package"]);this.use=e.use||"";this.usehref=e.usehref||""}[r.$toHTML](){if(this.contentType&&!p.has(this.contentType.toLowerCase()))return o.HTMLResult.EMPTY;let e=this[r.$globalData].images&&this[r.$globalData].images.get(this.href);if(!e&&(this.href||!this[r.$content]))return o.HTMLResult.EMPTY;e||"base64"!==this.transferEncoding||(e=(0,c.stringToBytes)(atob(this[r.$content])));if(!e)return o.HTMLResult.EMPTY;if(!this.contentType){for(const[t,a]of m)if(e.length>t.length&&t.every(((t,a)=>t===e[a]))){this.contentType=a;break}if(!this.contentType)return o.HTMLResult.EMPTY}const t=new Blob([e],{type:this.contentType});let a;switch(this.aspect){case"fit":case"actual":break;case"height":a={height:"100%",objectFit:"fill"};break;case"none":a={width:"100%",height:"100%",objectFit:"fill"};break;case"width":a={width:"100%",objectFit:"fill"}}const n=this[r.$getParent]();return o.HTMLResult.success({name:"img",attributes:{class:["xfaImage"],style:a,src:URL.createObjectURL(t),alt:n?ariaLabel(n[r.$getParent]()):null}})}}class ImageEdit extends r.XFAObject{constructor(e){super(d,"imageEdit",!0);this.data=(0,o.getStringOption)(e.data,["link","embed"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.extras=null;this.margin=null}[r.$toHTML](e){return"embed"===this.data?o.HTMLResult.success({name:"div",children:[],attributes:{}}):o.HTMLResult.EMPTY}}class Integer extends r.ContentObject{constructor(e){super(d,"integer");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){const e=parseInt(this[r.$content].trim(),10);this[r.$content]=isNaN(e)?null:e}[r.$toHTML](e){return valueToHtml(null!==this[r.$content]?this[r.$content].toString():"")}}class Issuers extends r.XFAObject{constructor(e){super(d,"issuers",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.certificate=new r.XFAObjectArray}}class Items extends r.XFAObject{constructor(e){super(d,"items",!0);this.id=e.id||"";this.name=e.name||"";this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.ref=e.ref||"";this.save=(0,o.getInteger)({data:e.save,defaultValue:0,validate:e=>1===e});this.use=e.use||"";this.usehref=e.usehref||"";this.boolean=new r.XFAObjectArray;this.date=new r.XFAObjectArray;this.dateTime=new r.XFAObjectArray;this.decimal=new r.XFAObjectArray;this.exData=new r.XFAObjectArray;this.float=new r.XFAObjectArray;this.image=new r.XFAObjectArray;this.integer=new r.XFAObjectArray;this.text=new r.XFAObjectArray;this.time=new r.XFAObjectArray}[r.$toHTML](){const e=[];for(const t of this[r.$getChildren]())e.push(t[r.$text]());return o.HTMLResult.success(e)}}t.Items=Items;class Keep extends r.XFAObject{constructor(e){super(d,"keep",!0);this.id=e.id||"";const t=["none","contentArea","pageArea"];this.intact=(0,o.getStringOption)(e.intact,t);this.next=(0,o.getStringOption)(e.next,t);this.previous=(0,o.getStringOption)(e.previous,t);this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}}class KeyUsage extends r.XFAObject{constructor(e){super(d,"keyUsage");const t=["","yes","no"];this.crlSign=(0,o.getStringOption)(e.crlSign,t);this.dataEncipherment=(0,o.getStringOption)(e.dataEncipherment,t);this.decipherOnly=(0,o.getStringOption)(e.decipherOnly,t);this.digitalSignature=(0,o.getStringOption)(e.digitalSignature,t);this.encipherOnly=(0,o.getStringOption)(e.encipherOnly,t);this.id=e.id||"";this.keyAgreement=(0,o.getStringOption)(e.keyAgreement,t);this.keyCertSign=(0,o.getStringOption)(e.keyCertSign,t);this.keyEncipherment=(0,o.getStringOption)(e.keyEncipherment,t);this.nonRepudiation=(0,o.getStringOption)(e.nonRepudiation,t);this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||""}}class Line extends r.XFAObject{constructor(e){super(d,"line",!0);this.hand=(0,o.getStringOption)(e.hand,["even","left","right"]);this.id=e.id||"";this.slope=(0,o.getStringOption)(e.slope,["\\","/"]);this.use=e.use||"";this.usehref=e.usehref||"";this.edge=null}[r.$toHTML](){const e=this[r.$getParent]()[r.$getParent](),t=this.edge?this.edge:new Edge({}),a=t[r.$toStyle](),n=Object.create(null),i="visible"===t.presence?t.thickness:0;n.strokeWidth=(0,s.measureToString)(i);n.stroke=a.color;let c,l,h,u,d="100%",g="100%";if(e.w<=i){[c,l,h,u]=["50%",0,"50%","100%"];d=n.strokeWidth}else if(e.h<=i){[c,l,h,u]=[0,"50%","100%","50%"];g=n.strokeWidth}else"\\"===this.slope?[c,l,h,u]=[0,0,"100%","100%"]:[c,l,h,u]=[0,"100%","100%",0];const p={name:"svg",children:[{name:"line",attributes:{xmlns:f,x1:c,y1:l,x2:h,y2:u,style:n}}],attributes:{xmlns:f,width:d,height:g,style:{overflow:"visible"}}};if(hasMargin(e))return o.HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[p]});p.attributes.style.position="absolute";return o.HTMLResult.success(p)}}class Linear extends r.XFAObject{constructor(e){super(d,"linear",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["toRight","toBottom","toLeft","toTop"]);this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[r.$toStyle](e){e=e?e[r.$toStyle]():"#FFFFFF";return`linear-gradient(${this.type.replace(/([RBLT])/," $1").toLowerCase()}, ${e}, ${this.color?this.color[r.$toStyle]():"#000000"})`}}class LockDocument extends r.ContentObject{constructor(e){super(d,"lockDocument");this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){this[r.$content]=(0,o.getStringOption)(this[r.$content],["auto","0","1"])}}class Manifest extends r.XFAObject{constructor(e){super(d,"manifest",!0);this.action=(0,o.getStringOption)(e.action,["include","all","exclude"]);this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.ref=new r.XFAObjectArray}}class Margin extends r.XFAObject{constructor(e){super(d,"margin",!0);this.bottomInset=(0,o.getMeasurement)(e.bottomInset,"0");this.id=e.id||"";this.leftInset=(0,o.getMeasurement)(e.leftInset,"0");this.rightInset=(0,o.getMeasurement)(e.rightInset,"0");this.topInset=(0,o.getMeasurement)(e.topInset,"0");this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}[r.$toStyle](){return{margin:(0,s.measureToString)(this.topInset)+" "+(0,s.measureToString)(this.rightInset)+" "+(0,s.measureToString)(this.bottomInset)+" "+(0,s.measureToString)(this.leftInset)}}}class Mdp extends r.XFAObject{constructor(e){super(d,"mdp");this.id=e.id||"";this.permissions=(0,o.getInteger)({data:e.permissions,defaultValue:2,validate:e=>1===e||3===e});this.signatureType=(0,o.getStringOption)(e.signatureType,["filler","author"]);this.use=e.use||"";this.usehref=e.usehref||""}}class Medium extends r.XFAObject{constructor(e){super(d,"medium");this.id=e.id||"";this.imagingBBox=(0,o.getBBox)(e.imagingBBox);this.long=(0,o.getMeasurement)(e.long);this.orientation=(0,o.getStringOption)(e.orientation,["portrait","landscape"]);this.short=(0,o.getMeasurement)(e.short);this.stock=e.stock||"";this.trayIn=(0,o.getStringOption)(e.trayIn,["auto","delegate","pageFront"]);this.trayOut=(0,o.getStringOption)(e.trayOut,["auto","delegate"]);this.use=e.use||"";this.usehref=e.usehref||""}}class Message extends r.XFAObject{constructor(e){super(d,"message",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.text=new r.XFAObjectArray}}class NumericEdit extends r.XFAObject{constructor(e){super(d,"numericEdit",!0);this.hScrollPolicy=(0,o.getStringOption)(e.hScrollPolicy,["auto","off","on"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.comb=null;this.extras=null;this.margin=null}[r.$toHTML](e){const t=(0,s.toStyle)(this,"border","font","margin"),a=this[r.$getParent]()[r.$getParent](),n={name:"input",attributes:{type:"text",fieldId:a[r.$uid],dataId:a[r.$data]&&a[r.$data][r.$uid]||a[r.$uid],class:["xfaTextfield"],style:t,"aria-label":ariaLabel(a)}};return o.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[n]})}}class Occur extends r.XFAObject{constructor(e){super(d,"occur",!0);this.id=e.id||"";this.initial=""!==e.initial?(0,o.getInteger)({data:e.initial,defaultValue:"",validate:e=>!0}):"";this.max=""!==e.max?(0,o.getInteger)({data:e.max,defaultValue:1,validate:e=>!0}):"";this.min=""!==e.min?(0,o.getInteger)({data:e.min,defaultValue:1,validate:e=>!0}):"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}[r.$clean](){const e=this[r.$getParent](),t=this.min;""===this.min&&(this.min=e instanceof PageArea||e instanceof PageSet?0:1);""===this.max&&(this.max=""===t?e instanceof PageArea||e instanceof PageSet?-1:1:this.min);-1!==this.max&&this.max!0});this.name=e.name||"";this.numbered=(0,o.getInteger)({data:e.numbered,defaultValue:1,validate:e=>!0});this.oddOrEven=(0,o.getStringOption)(e.oddOrEven,["any","even","odd"]);this.pagePosition=(0,o.getStringOption)(e.pagePosition,["any","first","last","only","rest"]);this.relevant=(0,o.getRelevant)(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.desc=null;this.extras=null;this.medium=null;this.occur=null;this.area=new r.XFAObjectArray;this.contentArea=new r.XFAObjectArray;this.draw=new r.XFAObjectArray;this.exclGroup=new r.XFAObjectArray;this.field=new r.XFAObjectArray;this.subform=new r.XFAObjectArray}[r.$isUsable](){if(!this[r.$extra]){this[r.$extra]={numberOfUse:0};return!0}return!this.occur||-1===this.occur.max||this[r.$extra].numberOfUsee.oddOrEven===t&&e.pagePosition===a));if(n)return n;n=this.pageArea.children.find((e=>"any"===e.oddOrEven&&e.pagePosition===a));if(n)return n;n=this.pageArea.children.find((e=>"any"===e.oddOrEven&&"any"===e.pagePosition));return n||this.pageArea.children[0]}}class Para extends r.XFAObject{constructor(e){super(d,"para",!0);this.hAlign=(0,o.getStringOption)(e.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=e.id||"";this.lineHeight=e.lineHeight?(0,o.getMeasurement)(e.lineHeight,"0pt"):"";this.marginLeft=e.marginLeft?(0,o.getMeasurement)(e.marginLeft,"0pt"):"";this.marginRight=e.marginRight?(0,o.getMeasurement)(e.marginRight,"0pt"):"";this.orphans=(0,o.getInteger)({data:e.orphans,defaultValue:0,validate:e=>e>=0});this.preserve=e.preserve||"";this.radixOffset=e.radixOffset?(0,o.getMeasurement)(e.radixOffset,"0pt"):"";this.spaceAbove=e.spaceAbove?(0,o.getMeasurement)(e.spaceAbove,"0pt"):"";this.spaceBelow=e.spaceBelow?(0,o.getMeasurement)(e.spaceBelow,"0pt"):"";this.tabDefault=e.tabDefault?(0,o.getMeasurement)(this.tabDefault):"";this.tabStops=(e.tabStops||"").trim().split(/\s+/).map(((e,t)=>t%2==1?(0,o.getMeasurement)(e):e));this.textIndent=e.textIndent?(0,o.getMeasurement)(e.textIndent,"0pt"):"";this.use=e.use||"";this.usehref=e.usehref||"";this.vAlign=(0,o.getStringOption)(e.vAlign,["top","bottom","middle"]);this.widows=(0,o.getInteger)({data:e.widows,defaultValue:0,validate:e=>e>=0});this.hyphenation=null}[r.$toStyle](){const e=(0,s.toStyle)(this,"hAlign");""!==this.marginLeft&&(e.paddingLeft=(0,s.measureToString)(this.marginLeft));""!==this.marginRight&&(e.paddingight=(0,s.measureToString)(this.marginRight));""!==this.spaceAbove&&(e.paddingTop=(0,s.measureToString)(this.spaceAbove));""!==this.spaceBelow&&(e.paddingBottom=(0,s.measureToString)(this.spaceBelow));if(""!==this.textIndent){e.textIndent=(0,s.measureToString)(this.textIndent);(0,s.fixTextIndent)(e)}this.lineHeight>0&&(e.lineHeight=(0,s.measureToString)(this.lineHeight));""!==this.tabDefault&&(e.tabSize=(0,s.measureToString)(this.tabDefault));this.tabStops.length;this.hyphenatation&&Object.assign(e,this.hyphenatation[r.$toStyle]());return e}}class PasswordEdit extends r.XFAObject{constructor(e){super(d,"passwordEdit",!0);this.hScrollPolicy=(0,o.getStringOption)(e.hScrollPolicy,["auto","off","on"]);this.id=e.id||"";this.passwordChar=e.passwordChar||"*";this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.extras=null;this.margin=null}}class Pattern extends r.XFAObject{constructor(e){super(d,"pattern",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["crossHatch","crossDiagonal","diagonalLeft","diagonalRight","horizontal","vertical"]);this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[r.$toStyle](e){e=e?e[r.$toStyle]():"#FFFFFF";const t=this.color?this.color[r.$toStyle]():"#000000",a="repeating-linear-gradient",n=`${e},${e} 5px,${t} 5px,${t} 10px`;switch(this.type){case"crossHatch":return`${a}(to top,${n}) ${a}(to right,${n})`;case"crossDiagonal":return`${a}(45deg,${n}) ${a}(-45deg,${n})`;case"diagonalLeft":return`${a}(45deg,${n})`;case"diagonalRight":return`${a}(-45deg,${n})`;case"horizontal":return`${a}(to top,${n})`;case"vertical":return`${a}(to right,${n})`}return""}}class Picture extends r.StringObject{constructor(e){super(d,"picture");this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Proto extends r.XFAObject{constructor(e){super(d,"proto",!0);this.appearanceFilter=new r.XFAObjectArray;this.arc=new r.XFAObjectArray;this.area=new r.XFAObjectArray;this.assist=new r.XFAObjectArray;this.barcode=new r.XFAObjectArray;this.bindItems=new r.XFAObjectArray;this.bookend=new r.XFAObjectArray;this.boolean=new r.XFAObjectArray;this.border=new r.XFAObjectArray;this.break=new r.XFAObjectArray;this.breakAfter=new r.XFAObjectArray;this.breakBefore=new r.XFAObjectArray;this.button=new r.XFAObjectArray;this.calculate=new r.XFAObjectArray;this.caption=new r.XFAObjectArray;this.certificate=new r.XFAObjectArray;this.certificates=new r.XFAObjectArray;this.checkButton=new r.XFAObjectArray;this.choiceList=new r.XFAObjectArray;this.color=new r.XFAObjectArray;this.comb=new r.XFAObjectArray;this.connect=new r.XFAObjectArray;this.contentArea=new r.XFAObjectArray;this.corner=new r.XFAObjectArray;this.date=new r.XFAObjectArray;this.dateTime=new r.XFAObjectArray;this.dateTimeEdit=new r.XFAObjectArray;this.decimal=new r.XFAObjectArray;this.defaultUi=new r.XFAObjectArray;this.desc=new r.XFAObjectArray;this.digestMethod=new r.XFAObjectArray;this.digestMethods=new r.XFAObjectArray;this.draw=new r.XFAObjectArray;this.edge=new r.XFAObjectArray;this.encoding=new r.XFAObjectArray;this.encodings=new r.XFAObjectArray;this.encrypt=new r.XFAObjectArray;this.encryptData=new r.XFAObjectArray;this.encryption=new r.XFAObjectArray;this.encryptionMethod=new r.XFAObjectArray;this.encryptionMethods=new r.XFAObjectArray;this.event=new r.XFAObjectArray;this.exData=new r.XFAObjectArray;this.exObject=new r.XFAObjectArray;this.exclGroup=new r.XFAObjectArray;this.execute=new r.XFAObjectArray;this.extras=new r.XFAObjectArray;this.field=new r.XFAObjectArray;this.fill=new r.XFAObjectArray;this.filter=new r.XFAObjectArray;this.float=new r.XFAObjectArray;this.font=new r.XFAObjectArray;this.format=new r.XFAObjectArray;this.handler=new r.XFAObjectArray;this.hyphenation=new r.XFAObjectArray;this.image=new r.XFAObjectArray;this.imageEdit=new r.XFAObjectArray;this.integer=new r.XFAObjectArray;this.issuers=new r.XFAObjectArray;this.items=new r.XFAObjectArray;this.keep=new r.XFAObjectArray;this.keyUsage=new r.XFAObjectArray;this.line=new r.XFAObjectArray;this.linear=new r.XFAObjectArray;this.lockDocument=new r.XFAObjectArray;this.manifest=new r.XFAObjectArray;this.margin=new r.XFAObjectArray;this.mdp=new r.XFAObjectArray;this.medium=new r.XFAObjectArray;this.message=new r.XFAObjectArray;this.numericEdit=new r.XFAObjectArray;this.occur=new r.XFAObjectArray;this.oid=new r.XFAObjectArray;this.oids=new r.XFAObjectArray;this.overflow=new r.XFAObjectArray;this.pageArea=new r.XFAObjectArray;this.pageSet=new r.XFAObjectArray;this.para=new r.XFAObjectArray;this.passwordEdit=new r.XFAObjectArray;this.pattern=new r.XFAObjectArray;this.picture=new r.XFAObjectArray;this.radial=new r.XFAObjectArray;this.reason=new r.XFAObjectArray;this.reasons=new r.XFAObjectArray;this.rectangle=new r.XFAObjectArray;this.ref=new r.XFAObjectArray;this.script=new r.XFAObjectArray;this.setProperty=new r.XFAObjectArray;this.signData=new r.XFAObjectArray;this.signature=new r.XFAObjectArray;this.signing=new r.XFAObjectArray;this.solid=new r.XFAObjectArray;this.speak=new r.XFAObjectArray;this.stipple=new r.XFAObjectArray;this.subform=new r.XFAObjectArray;this.subformSet=new r.XFAObjectArray;this.subjectDN=new r.XFAObjectArray;this.subjectDNs=new r.XFAObjectArray;this.submit=new r.XFAObjectArray;this.text=new r.XFAObjectArray;this.textEdit=new r.XFAObjectArray;this.time=new r.XFAObjectArray;this.timeStamp=new r.XFAObjectArray;this.toolTip=new r.XFAObjectArray;this.traversal=new r.XFAObjectArray;this.traverse=new r.XFAObjectArray;this.ui=new r.XFAObjectArray;this.validate=new r.XFAObjectArray;this.value=new r.XFAObjectArray;this.variables=new r.XFAObjectArray}}class Radial extends r.XFAObject{constructor(e){super(d,"radial",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["toEdge","toCenter"]);this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[r.$toStyle](e){e=e?e[r.$toStyle]():"#FFFFFF";const t=this.color?this.color[r.$toStyle]():"#000000";return`radial-gradient(circle at center, ${"toEdge"===this.type?`${e},${t}`:`${t},${e}`})`}}class Reason extends r.StringObject{constructor(e){super(d,"reason");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Reasons extends r.XFAObject{constructor(e){super(d,"reasons",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.reason=new r.XFAObjectArray}}class Rectangle extends r.XFAObject{constructor(e){super(d,"rectangle",!0);this.hand=(0,o.getStringOption)(e.hand,["even","left","right"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.corner=new r.XFAObjectArray(4);this.edge=new r.XFAObjectArray(4);this.fill=null}[r.$toHTML](){const e=this.edge.children.length?this.edge.children[0]:new Edge({}),t=e[r.$toStyle](),a=Object.create(null);this.fill&&"visible"===this.fill.presence?Object.assign(a,this.fill[r.$toStyle]()):a.fill="transparent";a.strokeWidth=(0,s.measureToString)("visible"===e.presence?e.thickness:0);a.stroke=t.color;const n=(this.corner.children.length?this.corner.children[0]:new Corner({}))[r.$toStyle](),i={name:"svg",children:[{name:"rect",attributes:{xmlns:f,width:"100%",height:"100%",x:0,y:0,rx:n.radius,ry:n.radius,style:a}}],attributes:{xmlns:f,style:{overflow:"visible"},width:"100%",height:"100%"}};if(hasMargin(this[r.$getParent]()[r.$getParent]()))return o.HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[i]});i.attributes.style.position="absolute";return o.HTMLResult.success(i)}}class RefElement extends r.StringObject{constructor(e){super(d,"ref");this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Script extends r.StringObject{constructor(e){super(d,"script");this.binding=e.binding||"";this.contentType=e.contentType||"";this.id=e.id||"";this.name=e.name||"";this.runAt=(0,o.getStringOption)(e.runAt,["client","both","server"]);this.use=e.use||"";this.usehref=e.usehref||""}}class SetProperty extends r.XFAObject{constructor(e){super(d,"setProperty");this.connection=e.connection||"";this.ref=e.ref||"";this.target=e.target||""}}t.SetProperty=SetProperty;class SignData extends r.XFAObject{constructor(e){super(d,"signData",!0);this.id=e.id||"";this.operation=(0,o.getStringOption)(e.operation,["sign","clear","verify"]);this.ref=e.ref||"";this.target=e.target||"";this.use=e.use||"";this.usehref=e.usehref||"";this.filter=null;this.manifest=null}}class Signature extends r.XFAObject{constructor(e){super(d,"signature",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["PDF1.3","PDF1.6"]);this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.extras=null;this.filter=null;this.manifest=null;this.margin=null}}class Signing extends r.XFAObject{constructor(e){super(d,"signing",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.certificate=new r.XFAObjectArray}}class Solid extends r.XFAObject{constructor(e){super(d,"solid",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}[r.$toStyle](e){return e?e[r.$toStyle]():"#FFFFFF"}}class Speak extends r.StringObject{constructor(e){super(d,"speak");this.disable=(0,o.getInteger)({data:e.disable,defaultValue:0,validate:e=>1===e});this.id=e.id||"";this.priority=(0,o.getStringOption)(e.priority,["custom","caption","name","toolTip"]);this.rid=e.rid||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Stipple extends r.XFAObject{constructor(e){super(d,"stipple",!0);this.id=e.id||"";this.rate=(0,o.getInteger)({data:e.rate,defaultValue:50,validate:e=>e>=0&&e<=100});this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[r.$toStyle](e){const t=this.rate/100;return c.Util.makeHexColor(Math.round(e.value.r*(1-t)+this.value.r*t),Math.round(e.value.g*(1-t)+this.value.g*t),Math.round(e.value.b*(1-t)+this.value.b*t))}}class Subform extends r.XFAObject{constructor(e){super(d,"subform",!0);this.access=(0,o.getStringOption)(e.access,["open","nonInteractive","protected","readOnly"]);this.allowMacro=(0,o.getInteger)({data:e.allowMacro,defaultValue:0,validate:e=>1===e});this.anchorType=(0,o.getStringOption)(e.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]);this.colSpan=(0,o.getInteger)({data:e.colSpan,defaultValue:1,validate:e=>e>=1||-1===e});this.columnWidths=(e.columnWidths||"").trim().split(/\s+/).map((e=>"-1"===e?-1:(0,o.getMeasurement)(e)));this.h=e.h?(0,o.getMeasurement)(e.h):"";this.hAlign=(0,o.getStringOption)(e.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=e.id||"";this.layout=(0,o.getStringOption)(e.layout,["position","lr-tb","rl-row","rl-tb","row","table","tb"]);this.locale=e.locale||"";this.maxH=(0,o.getMeasurement)(e.maxH,"0pt");this.maxW=(0,o.getMeasurement)(e.maxW,"0pt");this.mergeMode=(0,o.getStringOption)(e.mergeMode,["consumeData","matchTemplate"]);this.minH=(0,o.getMeasurement)(e.minH,"0pt");this.minW=(0,o.getMeasurement)(e.minW,"0pt");this.name=e.name||"";this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.relevant=(0,o.getRelevant)(e.relevant);this.restoreState=(0,o.getStringOption)(e.restoreState,["manual","auto"]);this.scope=(0,o.getStringOption)(e.scope,["name","none"]);this.use=e.use||"";this.usehref=e.usehref||"";this.w=e.w?(0,o.getMeasurement)(e.w):"";this.x=(0,o.getMeasurement)(e.x,"0pt");this.y=(0,o.getMeasurement)(e.y,"0pt");this.assist=null;this.bind=null;this.bookend=null;this.border=null;this.break=null;this.calculate=null;this.desc=null;this.extras=null;this.keep=null;this.margin=null;this.occur=null;this.overflow=null;this.pageSet=null;this.para=null;this.traversal=null;this.validate=null;this.variables=null;this.area=new r.XFAObjectArray;this.breakAfter=new r.XFAObjectArray;this.breakBefore=new r.XFAObjectArray;this.connect=new r.XFAObjectArray;this.draw=new r.XFAObjectArray;this.event=new r.XFAObjectArray;this.exObject=new r.XFAObjectArray;this.exclGroup=new r.XFAObjectArray;this.field=new r.XFAObjectArray;this.proto=new r.XFAObjectArray;this.setProperty=new r.XFAObjectArray;this.subform=new r.XFAObjectArray;this.subformSet=new r.XFAObjectArray}[r.$getSubformParent](){const e=this[r.$getParent]();return e instanceof SubformSet?e[r.$getSubformParent]():e}[r.$isBindable](){return!0}[r.$isThereMoreWidth](){return this.layout.endsWith("-tb")&&0===this[r.$extra].attempt&&this[r.$extra].numberInLine>0||this[r.$getParent]()[r.$isThereMoreWidth]()}*[r.$getContainedChildren](){yield*getContainedChildren(this)}[r.$flushHTML](){return(0,i.flushHTML)(this)}[r.$addHTML](e,t){(0,i.addHTML)(this,e,t)}[r.$getAvailableSpace](){return(0,i.getAvailableSpace)(this)}[r.$isSplittable](){const e=this[r.$getSubformParent]();if(!e[r.$isSplittable]())return!1;if(void 0!==this[r.$extra]._isSplittable)return this[r.$extra]._isSplittable;if("position"===this.layout||this.layout.includes("row")){this[r.$extra]._isSplittable=!1;return!1}if(this.keep&&"none"!==this.keep.intact){this[r.$extra]._isSplittable=!1;return!1}if(e.layout&&e.layout.endsWith("-tb")&&0!==e[r.$extra].numberInLine)return!1;this[r.$extra]._isSplittable=!0;return!0}[r.$toHTML](e){setTabIndex(this);if(this.break){if("auto"!==this.break.after||""!==this.break.afterTarget){const e=new BreakAfter({targetType:this.break.after,target:this.break.afterTarget,startNew:this.break.startNew.toString()});e[r.$globalData]=this[r.$globalData];this[r.$appendChild](e);this.breakAfter.push(e)}if("auto"!==this.break.before||""!==this.break.beforeTarget){const e=new BreakBefore({targetType:this.break.before,target:this.break.beforeTarget,startNew:this.break.startNew.toString()});e[r.$globalData]=this[r.$globalData];this[r.$appendChild](e);this.breakBefore.push(e)}if(""!==this.break.overflowTarget){const e=new Overflow({target:this.break.overflowTarget,leader:this.break.overflowLeader,trailer:this.break.overflowTrailer});e[r.$globalData]=this[r.$globalData];this[r.$appendChild](e);this.overflow.push(e)}this[r.$removeChild](this.break);this.break=null}if("hidden"===this.presence||"inactive"===this.presence)return o.HTMLResult.EMPTY;(this.breakBefore.children.length>1||this.breakAfter.children.length>1)&&(0,c.warn)("XFA - Several breakBefore or breakAfter in subforms: please file a bug.");if(this.breakBefore.children.length>=1){const e=this.breakBefore.children[0];if(handleBreak(e))return o.HTMLResult.breakNode(e)}if(this[r.$extra]&&this[r.$extra].afterBreakAfter)return o.HTMLResult.EMPTY;(0,s.fixDimensions)(this);const t=[],a={id:this[r.$uid],class:[]};(0,s.setAccess)(this,a.class);this[r.$extra]||(this[r.$extra]=Object.create(null));Object.assign(this[r.$extra],{children:t,line:null,attributes:a,attempt:0,numberInLine:0,availableSpace:{width:Math.min(this.w||1/0,e.width),height:Math.min(this.h||1/0,e.height)},width:0,height:0,prevHeight:0,currentWidth:0});const n=this[r.$getTemplateRoot](),l=n[r.$extra].noLayoutFailure,h=this[r.$isSplittable]();h||setFirstUnsplittable(this);if(!(0,i.checkDimensions)(this,e))return o.HTMLResult.FAILURE;const u=new Set(["area","draw","exclGroup","field","subform","subformSet"]);if(this.layout.includes("row")){const e=this[r.$getSubformParent]().columnWidths;if(Array.isArray(e)&&e.length>0){this[r.$extra].columnWidths=e;this[r.$extra].currentColumn=0}}const d=(0,s.toStyle)(this,"anchorType","dimensions","position","presence","border","margin","hAlign"),f=["xfaSubform"],g=(0,s.layoutClass)(this);g&&f.push(g);a.style=d;a.class=f;this.name&&(a.xfaName=this.name);if(this.overflow){const t=this.overflow[r.$getExtra]();if(t.addLeader){t.addLeader=!1;handleOverflow(this,t.leader,e)}}this[r.$pushPara]();const p="lr-tb"===this.layout||"rl-tb"===this.layout,m=p?2:1;for(;this[r.$extra].attempt=1){const e=this.breakAfter.children[0];if(handleBreak(e)){this[r.$extra].afterBreakAfter=C;return o.HTMLResult.breakNode(e)}}delete this[r.$extra];return C}}class SubformSet extends r.XFAObject{constructor(e){super(d,"subformSet",!0);this.id=e.id||"";this.name=e.name||"";this.relation=(0,o.getStringOption)(e.relation,["ordered","choice","unordered"]);this.relevant=(0,o.getRelevant)(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.bookend=null;this.break=null;this.desc=null;this.extras=null;this.occur=null;this.overflow=null;this.breakAfter=new r.XFAObjectArray;this.breakBefore=new r.XFAObjectArray;this.subform=new r.XFAObjectArray;this.subformSet=new r.XFAObjectArray}*[r.$getContainedChildren](){yield*getContainedChildren(this)}[r.$getSubformParent](){let e=this[r.$getParent]();for(;!(e instanceof Subform);)e=e[r.$getParent]();return e}[r.$isBindable](){return!0}}class SubjectDN extends r.ContentObject{constructor(e){super(d,"subjectDN");this.delimiter=e.delimiter||",";this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){this[r.$content]=new Map(this[r.$content].split(this.delimiter).map((e=>{(e=e.split("=",2))[0]=e[0].trim();return e})))}}class SubjectDNs extends r.XFAObject{constructor(e){super(d,"subjectDNs",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.subjectDN=new r.XFAObjectArray}}class Submit extends r.XFAObject{constructor(e){super(d,"submit",!0);this.embedPDF=(0,o.getInteger)({data:e.embedPDF,defaultValue:0,validate:e=>1===e});this.format=(0,o.getStringOption)(e.format,["xdp","formdata","pdf","urlencoded","xfd","xml"]);this.id=e.id||"";this.target=e.target||"";this.textEncoding=(0,o.getKeyword)({data:e.textEncoding?e.textEncoding.toLowerCase():"",defaultValue:"",validate:e=>["utf-8","big-five","fontspecific","gbk","gb-18030","gb-2312","ksc-5601","none","shift-jis","ucs-2","utf-16"].includes(e)||e.match(/iso-8859-\d{2}/)});this.use=e.use||"";this.usehref=e.usehref||"";this.xdpContent=e.xdpContent||"";this.encrypt=null;this.encryptData=new r.XFAObjectArray;this.signData=new r.XFAObjectArray}}class Template extends r.XFAObject{constructor(e){super(d,"template",!0);this.baseProfile=(0,o.getStringOption)(e.baseProfile,["full","interactiveForms"]);this.extras=null;this.subform=new r.XFAObjectArray}[r.$finalize](){0===this.subform.children.length&&(0,c.warn)("XFA - No subforms in template node.");this.subform.children.length>=2&&(0,c.warn)("XFA - Several subforms in template node: please file a bug.");this[r.$tabIndex]=5e3}[r.$isSplittable](){return!0}[r.$searchNode](e,t){return e.startsWith("#")?[this[r.$ids].get(e.slice(1))]:(0,u.searchNode)(this,t,e,!0,!0)}*[r.$toPages](){if(!this.subform.children.length)return o.HTMLResult.success({name:"div",children:[]});this[r.$extra]={overflowNode:null,firstUnsplittable:null,currentContentArea:null,currentPageArea:null,noLayoutFailure:!1,pageNumber:1,pagePosition:"first",oddOrEven:"odd",blankOrNotBlank:"nonBlank",paraStack:[]};const e=this.subform.children[0];e.pageSet[r.$cleanPage]();const t=e.pageSet.pageArea.children,a={name:"div",children:[]};let n=null,i=null,s=null;if(e.breakBefore.children.length>=1){i=e.breakBefore.children[0];s=i.target}else if(e.subform.children.length>=1&&e.subform.children[0].breakBefore.children.length>=1){i=e.subform.children[0].breakBefore.children[0];s=i.target}else if(e.break&&e.break.beforeTarget){i=e.break;s=i.beforeTarget}else if(e.subform.children.length>=1&&e.subform.children[0].break&&e.subform.children[0].break.beforeTarget){i=e.subform.children[0].break;s=i.beforeTarget}if(i){const e=this[r.$searchNode](s,i[r.$getParent]());if(e instanceof PageArea){n=e;i[r.$extra]={}}}n||(n=t[0]);n[r.$extra]={numberOfUse:1};const l=n[r.$getParent]();l[r.$extra]={numberOfUse:1,pageIndex:l.pageArea.children.indexOf(n),pageSetIndex:0};let h,u=null,d=null,f=!0,g=0,p=0;for(;;){if(f)g=0;else{a.children.pop();if(3==++g){(0,c.warn)("XFA - Something goes wrong: please file a bug.");return a}}h=null;this[r.$extra].currentPageArea=n;const t=n[r.$toHTML]().html;a.children.push(t);if(u){this[r.$extra].noLayoutFailure=!0;t.children.push(u[r.$toHTML](n[r.$extra].space).html);u=null}if(d){this[r.$extra].noLayoutFailure=!0;t.children.push(d[r.$toHTML](n[r.$extra].space).html);d=null}const i=n.contentArea.children,s=t.children.filter((e=>e.attributes.class.includes("xfaContentarea")));f=!1;this[r.$extra].firstUnsplittable=null;this[r.$extra].noLayoutFailure=!1;const flush=t=>{const a=e[r.$flushHTML]();if(a){f=f||a.children&&0!==a.children.length;s[t].children.push(a)}};for(let t=p,n=i.length;t1&&a.children.pop();return a}if(c.isBreak()){const e=c.breakNode;flush(t);if("auto"===e.targetType)continue;if(e.leader){u=this[r.$searchNode](e.leader,e[r.$getParent]());u=u?u[0]:null}if(e.trailer){d=this[r.$searchNode](e.trailer,e[r.$getParent]());d=d?d[0]:null}if("pageArea"===e.targetType){h=e[r.$extra].target;t=1/0}else if(e[r.$extra].target){h=e[r.$extra].target;p=e[r.$extra].index+1;t=1/0}else t=e[r.$extra].index}else if(this[r.$extra].overflowNode){const e=this[r.$extra].overflowNode;this[r.$extra].overflowNode=null;const a=e[r.$getExtra](),n=a.target;a.addLeader=null!==a.leader;a.addTrailer=null!==a.trailer;flush(t);const s=t;t=1/0;if(n instanceof PageArea)h=n;else if(n instanceof ContentArea){const e=i.findIndex((e=>e===n));if(-1!==e)e>s?t=e-1:p=e;else{h=n[r.$getParent]();p=h.contentArea.children.findIndex((e=>e===n))}}}else flush(t)}this[r.$extra].pageNumber+=1;h&&(h[r.$isUsable]()?h[r.$extra].numberOfUse+=1:h=null);n=h||n[r.$getNextPage]();yield null}}}t.Template=Template;class Text extends r.ContentObject{constructor(e){super(d,"text");this.id=e.id||"";this.maxChars=(0,o.getInteger)({data:e.maxChars,defaultValue:0,validate:e=>e>=0});this.name=e.name||"";this.rid=e.rid||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$acceptWhitespace](){return!0}[r.$onChild](e){if(e[r.$namespaceId]===n.NamespaceIds.xhtml.id){this[r.$content]=e;return!0}(0,c.warn)(`XFA - Invalid content in Text: ${e[r.$nodeName]}.`);return!1}[r.$onText](e){this[r.$content]instanceof r.XFAObject||super[r.$onText](e)}[r.$finalize](){"string"==typeof this[r.$content]&&(this[r.$content]=this[r.$content].replace(/\r\n/g,"\n"))}[r.$getExtra](){return"string"==typeof this[r.$content]?this[r.$content].split(/[\u2029\u2028\n]/).reduce(((e,t)=>{t&&e.push(t);return e}),[]).join("\n"):this[r.$content][r.$text]()}[r.$toHTML](e){if("string"==typeof this[r.$content]){const e=valueToHtml(this[r.$content]).html;if(this[r.$content].includes("\u2029")){e.name="div";e.children=[];this[r.$content].split("\u2029").map((e=>e.split(/[\u2028\n]/).reduce(((e,t)=>{e.push({name:"span",value:t},{name:"br"});return e}),[]))).forEach((t=>{e.children.push({name:"p",children:t})}))}else if(/[\u2028\n]/.test(this[r.$content])){e.name="div";e.children=[];this[r.$content].split(/[\u2028\n]/).forEach((t=>{e.children.push({name:"span",value:t},{name:"br"})}))}return o.HTMLResult.success(e)}return this[r.$content][r.$toHTML](e)}}t.Text=Text;class TextEdit extends r.XFAObject{constructor(e){super(d,"textEdit",!0);this.allowRichText=(0,o.getInteger)({data:e.allowRichText,defaultValue:0,validate:e=>1===e});this.hScrollPolicy=(0,o.getStringOption)(e.hScrollPolicy,["auto","off","on"]);this.id=e.id||"";this.multiLine=(0,o.getInteger)({data:e.multiLine,defaultValue:"",validate:e=>0===e||1===e});this.use=e.use||"";this.usehref=e.usehref||"";this.vScrollPolicy=(0,o.getStringOption)(e.vScrollPolicy,["auto","off","on"]);this.border=null;this.comb=null;this.extras=null;this.margin=null}[r.$toHTML](e){const t=(0,s.toStyle)(this,"border","font","margin");let a;const n=this[r.$getParent]()[r.$getParent]();""===this.multiLine&&(this.multiLine=n instanceof Draw?1:0);a=1===this.multiLine?{name:"textarea",attributes:{dataId:n[r.$data]&&n[r.$data][r.$uid]||n[r.$uid],fieldId:n[r.$uid],class:["xfaTextfield"],style:t,"aria-label":ariaLabel(n)}}:{name:"input",attributes:{type:"text",dataId:n[r.$data]&&n[r.$data][r.$uid]||n[r.$uid],fieldId:n[r.$uid],class:["xfaTextfield"],style:t,"aria-label":ariaLabel(n)}};return o.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[a]})}}class Time extends r.StringObject{constructor(e){super(d,"time");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){const e=this[r.$content].trim();this[r.$content]=e?new Date(e):null}[r.$toHTML](e){return valueToHtml(this[r.$content]?this[r.$content].toString():"")}}class TimeStamp extends r.XFAObject{constructor(e){super(d,"timeStamp");this.id=e.id||"";this.server=e.server||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||""}}class ToolTip extends r.StringObject{constructor(e){super(d,"toolTip");this.id=e.id||"";this.rid=e.rid||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Traversal extends r.XFAObject{constructor(e){super(d,"traversal",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.traverse=new r.XFAObjectArray}}class Traverse extends r.XFAObject{constructor(e){super(d,"traverse",!0);this.id=e.id||"";this.operation=(0,o.getStringOption)(e.operation,["next","back","down","first","left","right","up"]);this.ref=e.ref||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.script=null}get name(){return this.operation}[r.$isTransparent](){return!1}}class Ui extends r.XFAObject{constructor(e){super(d,"ui",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.picture=null;this.barcode=null;this.button=null;this.checkButton=null;this.choiceList=null;this.dateTimeEdit=null;this.defaultUi=null;this.imageEdit=null;this.numericEdit=null;this.passwordEdit=null;this.signature=null;this.textEdit=null}[r.$getExtra](){if(void 0===this[r.$extra]){for(const e of Object.getOwnPropertyNames(this)){if("extras"===e||"picture"===e)continue;const t=this[e];if(t instanceof r.XFAObject){this[r.$extra]=t;return t}}this[r.$extra]=null}return this[r.$extra]}[r.$toHTML](e){const t=this[r.$getExtra]();return t?t[r.$toHTML](e):o.HTMLResult.EMPTY}}class Validate extends r.XFAObject{constructor(e){super(d,"validate",!0);this.formatTest=(0,o.getStringOption)(e.formatTest,["warning","disabled","error"]);this.id=e.id||"";this.nullTest=(0,o.getStringOption)(e.nullTest,["disabled","error","warning"]);this.scriptTest=(0,o.getStringOption)(e.scriptTest,["error","disabled","warning"]);this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.message=null;this.picture=null;this.script=null}}class Value extends r.XFAObject{constructor(e){super(d,"value",!0);this.id=e.id||"";this.override=(0,o.getInteger)({data:e.override,defaultValue:0,validate:e=>1===e});this.relevant=(0,o.getRelevant)(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.arc=null;this.boolean=null;this.date=null;this.dateTime=null;this.decimal=null;this.exData=null;this.float=null;this.image=null;this.integer=null;this.line=null;this.rectangle=null;this.text=null;this.time=null}[r.$setValue](e){const t=this[r.$getParent]();if(t instanceof Field&&t.ui&&t.ui.imageEdit){if(!this.image){this.image=new Image({});this[r.$appendChild](this.image)}this.image[r.$content]=e[r.$content];return}const a=e[r.$nodeName];if(null===this[a]){for(const e of Object.getOwnPropertyNames(this)){const t=this[e];if(t instanceof r.XFAObject){this[e]=null;this[r.$removeChild](t)}}this[e[r.$nodeName]]=e;this[r.$appendChild](e)}else this[a][r.$content]=e[r.$content]}[r.$text](){if(this.exData)return"string"==typeof this.exData[r.$content]?this.exData[r.$content].trim():this.exData[r.$content][r.$text]().trim();for(const e of Object.getOwnPropertyNames(this)){if("image"===e)continue;const t=this[e];if(t instanceof r.XFAObject)return(t[r.$content]||"").toString().trim()}return null}[r.$toHTML](e){for(const t of Object.getOwnPropertyNames(this)){const a=this[t];if(a instanceof r.XFAObject)return a[r.$toHTML](e)}return o.HTMLResult.EMPTY}}t.Value=Value;class Variables extends r.XFAObject{constructor(e){super(d,"variables",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.boolean=new r.XFAObjectArray;this.date=new r.XFAObjectArray;this.dateTime=new r.XFAObjectArray;this.decimal=new r.XFAObjectArray;this.exData=new r.XFAObjectArray;this.float=new r.XFAObjectArray;this.image=new r.XFAObjectArray;this.integer=new r.XFAObjectArray;this.manifest=new r.XFAObjectArray;this.script=new r.XFAObjectArray;this.text=new r.XFAObjectArray;this.time=new r.XFAObjectArray}[r.$isTransparent](){return!0}}class TemplateNamespace{static[n.$buildXFAObject](e,t){if(TemplateNamespace.hasOwnProperty(e)){const a=TemplateNamespace[e](t);a[r.$setSetAttributes](t);return a}}static appearanceFilter(e){return new AppearanceFilter(e)}static arc(e){return new Arc(e)}static area(e){return new Area(e)}static assist(e){return new Assist(e)}static barcode(e){return new Barcode(e)}static bind(e){return new Bind(e)}static bindItems(e){return new BindItems(e)}static bookend(e){return new Bookend(e)}static boolean(e){return new BooleanElement(e)}static border(e){return new Border(e)}static break(e){return new Break(e)}static breakAfter(e){return new BreakAfter(e)}static breakBefore(e){return new BreakBefore(e)}static button(e){return new Button(e)}static calculate(e){return new Calculate(e)}static caption(e){return new Caption(e)}static certificate(e){return new Certificate(e)}static certificates(e){return new Certificates(e)}static checkButton(e){return new CheckButton(e)}static choiceList(e){return new ChoiceList(e)}static color(e){return new Color(e)}static comb(e){return new Comb(e)}static connect(e){return new Connect(e)}static contentArea(e){return new ContentArea(e)}static corner(e){return new Corner(e)}static date(e){return new DateElement(e)}static dateTime(e){return new DateTime(e)}static dateTimeEdit(e){return new DateTimeEdit(e)}static decimal(e){return new Decimal(e)}static defaultUi(e){return new DefaultUi(e)}static desc(e){return new Desc(e)}static digestMethod(e){return new DigestMethod(e)}static digestMethods(e){return new DigestMethods(e)}static draw(e){return new Draw(e)}static edge(e){return new Edge(e)}static encoding(e){return new Encoding(e)}static encodings(e){return new Encodings(e)}static encrypt(e){return new Encrypt(e)}static encryptData(e){return new EncryptData(e)}static encryption(e){return new Encryption(e)}static encryptionMethod(e){return new EncryptionMethod(e)}static encryptionMethods(e){return new EncryptionMethods(e)}static event(e){return new Event(e)}static exData(e){return new ExData(e)}static exObject(e){return new ExObject(e)}static exclGroup(e){return new ExclGroup(e)}static execute(e){return new Execute(e)}static extras(e){return new Extras(e)}static field(e){return new Field(e)}static fill(e){return new Fill(e)}static filter(e){return new Filter(e)}static float(e){return new Float(e)}static font(e){return new Font(e)}static format(e){return new Format(e)}static handler(e){return new Handler(e)}static hyphenation(e){return new Hyphenation(e)}static image(e){return new Image(e)}static imageEdit(e){return new ImageEdit(e)}static integer(e){return new Integer(e)}static issuers(e){return new Issuers(e)}static items(e){return new Items(e)}static keep(e){return new Keep(e)}static keyUsage(e){return new KeyUsage(e)}static line(e){return new Line(e)}static linear(e){return new Linear(e)}static lockDocument(e){return new LockDocument(e)}static manifest(e){return new Manifest(e)}static margin(e){return new Margin(e)}static mdp(e){return new Mdp(e)}static medium(e){return new Medium(e)}static message(e){return new Message(e)}static numericEdit(e){return new NumericEdit(e)}static occur(e){return new Occur(e)}static oid(e){return new Oid(e)}static oids(e){return new Oids(e)}static overflow(e){return new Overflow(e)}static pageArea(e){return new PageArea(e)}static pageSet(e){return new PageSet(e)}static para(e){return new Para(e)}static passwordEdit(e){return new PasswordEdit(e)}static pattern(e){return new Pattern(e)}static picture(e){return new Picture(e)}static proto(e){return new Proto(e)}static radial(e){return new Radial(e)}static reason(e){return new Reason(e)}static reasons(e){return new Reasons(e)}static rectangle(e){return new Rectangle(e)}static ref(e){return new RefElement(e)}static script(e){return new Script(e)}static setProperty(e){return new SetProperty(e)}static signData(e){return new SignData(e)}static signature(e){return new Signature(e)}static signing(e){return new Signing(e)}static solid(e){return new Solid(e)}static speak(e){return new Speak(e)}static stipple(e){return new Stipple(e)}static subform(e){return new Subform(e)}static subformSet(e){return new SubformSet(e)}static subjectDN(e){return new SubjectDN(e)}static subjectDNs(e){return new SubjectDNs(e)}static submit(e){return new Submit(e)}static template(e){return new Template(e)}static text(e){return new Text(e)}static textEdit(e){return new TextEdit(e)}static time(e){return new Time(e)}static timeStamp(e){return new TimeStamp(e)}static toolTip(e){return new ToolTip(e)}static traversal(e){return new Traversal(e)}static traverse(e){return new Traverse(e)}static ui(e){return new Ui(e)}static validate(e){return new Validate(e)}static value(e){return new Value(e)}static variables(e){return new Variables(e)}}t.TemplateNamespace=TemplateNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.addHTML=function addHTML(e,t,a){const i=e[r.$extra],s=i.availableSpace,[o,c,l,h]=a;switch(e.layout){case"position":i.width=Math.max(i.width,o+l);i.height=Math.max(i.height,c+h);i.children.push(t);break;case"lr-tb":case"rl-tb":if(!i.line||1===i.attempt){i.line=createLine(e,[]);i.children.push(i.line);i.numberInLine=0}i.numberInLine+=1;i.line.children.push(t);if(0===i.attempt){i.currentWidth+=l;i.height=Math.max(i.height,i.prevHeight+h)}else{i.currentWidth=l;i.prevHeight=i.height;i.height+=h;i.attempt=0}i.width=Math.max(i.width,i.currentWidth);break;case"rl-row":case"row":{i.children.push(t);i.width+=l;i.height=Math.max(i.height,h);const e=(0,n.measureToString)(i.height);for(const t of i.children)t.attributes.style.height=e;break}case"table":case"tb":i.width=Math.min(s.width,Math.max(i.width,l));i.height+=h;i.children.push(t)}};t.checkDimensions=function checkDimensions(e,t){if(null===e[r.$getTemplateRoot]()[r.$extra].firstUnsplittable)return!0;if(0===e.w||0===e.h)return!0;const a=e[r.$getSubformParent](),n=a[r.$extra]&&a[r.$extra].attempt||0,[,i,s,o]=function getTransformedBBox(e){let t,a,r=""===e.w?NaN:e.w,n=""===e.h?NaN:e.h,[i,s]=[0,0];switch(e.anchorType||""){case"bottomCenter":[i,s]=[r/2,n];break;case"bottomLeft":[i,s]=[0,n];break;case"bottomRight":[i,s]=[r,n];break;case"middleCenter":[i,s]=[r/2,n/2];break;case"middleLeft":[i,s]=[0,n/2];break;case"middleRight":[i,s]=[r,n/2];break;case"topCenter":[i,s]=[r/2,0];break;case"topRight":[i,s]=[r,0]}switch(e.rotate||0){case 0:[t,a]=[-i,-s];break;case 90:[t,a]=[-s,i];[r,n]=[n,-r];break;case 180:[t,a]=[i,s];[r,n]=[-r,-n];break;case 270:[t,a]=[s,-i];[r,n]=[-n,r]}return[e.x+t+Math.min(0,r),e.y+a+Math.min(0,n),Math.abs(r),Math.abs(n)]}(e);switch(a.layout){case"lr-tb":case"rl-tb":return 0===n?e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure?""!==e.w?Math.round(s-t.width)<=2:t.width>2:!(""!==e.h&&Math.round(o-t.height)>2)&&(""!==e.w?Math.round(s-t.width)<=2||0===a[r.$extra].numberInLine&&t.height>2:t.width>2):!!e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure||!(""!==e.h&&Math.round(o-t.height)>2)&&((""===e.w||Math.round(s-t.width)<=2||!a[r.$isThereMoreWidth]())&&t.height>2);case"table":case"tb":return!!e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure||(""===e.h||e[r.$isSplittable]()?(""===e.w||Math.round(s-t.width)<=2||!a[r.$isThereMoreWidth]())&&t.height>2:Math.round(o-t.height)<=2);case"position":if(e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure)return!0;if(""===e.h||Math.round(o+i-t.height)<=2)return!0;const c=e[r.$getTemplateRoot]()[r.$extra].currentContentArea;return o+i>c.h;case"rl-row":case"row":return!!e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure||(""===e.h||Math.round(o-t.height)<=2);default:return!0}};t.flushHTML=function flushHTML(e){if(!e[r.$extra])return null;const t={name:"div",attributes:e[r.$extra].attributes,children:e[r.$extra].children};if(e[r.$extra].failingNode){const a=e[r.$extra].failingNode[r.$flushHTML]();a&&(e.layout.endsWith("-tb")?t.children.push(createLine(e,[a])):t.children.push(a))}if(0===t.children.length)return null;return t};t.getAvailableSpace=function getAvailableSpace(e){const t=e[r.$extra].availableSpace,a=e.margin?e.margin.topInset+e.margin.bottomInset:0,n=e.margin?e.margin.leftInset+e.margin.rightInset:0;switch(e.layout){case"lr-tb":case"rl-tb":return 0===e[r.$extra].attempt?{width:t.width-n-e[r.$extra].currentWidth,height:t.height-a-e[r.$extra].prevHeight}:{width:t.width-n,height:t.height-a-e[r.$extra].height};case"rl-row":case"row":return{width:e[r.$extra].columnWidths.slice(e[r.$extra].currentColumn).reduce(((e,t)=>e+t)),height:t.height-n};case"table":case"tb":return{width:t.width-n,height:t.height-a-e[r.$extra].height};default:return t}};var r=a(78),n=a(85);function createLine(e,t){return{name:"div",attributes:{class:["lr-tb"===e.layout?"xfaLr":"xfaRl"]},children:t}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.computeBbox=function computeBbox(e,t,a){let n;if(""!==e.w&&""!==e.h)n=[e.x,e.y,e.w,e.h];else{if(!a)return null;let i=e.w;if(""===i){if(0===e.maxW){const t=e[r.$getSubformParent]();i="position"===t.layout&&""!==t.w?0:e.minW}else i=Math.min(e.maxW,a.width);t.attributes.style.width=measureToString(i)}let s=e.h;if(""===s){if(0===e.maxH){const t=e[r.$getSubformParent]();s="position"===t.layout&&""!==t.h?0:e.minH}else s=Math.min(e.maxH,a.height);t.attributes.style.height=measureToString(s)}n=[e.x,e.y,i,s]}return n};t.createWrapper=function createWrapper(e,t){const{attributes:a}=t,{style:n}=a,i={name:"div",attributes:{class:["xfaWrapper"],style:Object.create(null)},children:[]};a.class.push("xfaWrapped");if(e.border){const{widths:a,insets:s}=e.border[r.$extra];let o,c,l=s[0],h=s[3];const u=s[0]+s[2],d=s[1]+s[3];switch(e.border.hand){case"even":l-=a[0]/2;h-=a[3]/2;o=`calc(100% + ${(a[1]+a[3])/2-d}px)`;c=`calc(100% + ${(a[0]+a[2])/2-u}px)`;break;case"left":l-=a[0];h-=a[3];o=`calc(100% + ${a[1]+a[3]-d}px)`;c=`calc(100% + ${a[0]+a[2]-u}px)`;break;case"right":o=d?`calc(100% - ${d}px)`:"100%";c=u?`calc(100% - ${u}px)`:"100%"}const f=["xfaBorder"];isPrintOnly(e.border)&&f.push("xfaPrintOnly");const g={name:"div",attributes:{class:f,style:{top:`${l}px`,left:`${h}px`,width:o,height:c}},children:[]};for(const e of["border","borderWidth","borderColor","borderRadius","borderStyle"])if(void 0!==n[e]){g.attributes.style[e]=n[e];delete n[e]}i.children.push(g,t)}else i.children.push(t);for(const e of["background","backgroundClip","top","left","width","height","minWidth","minHeight","maxWidth","maxHeight","transform","transformOrigin","visibility"])if(void 0!==n[e]){i.attributes.style[e]=n[e];delete n[e]}"absolute"===n.position?i.attributes.style.position="absolute":i.attributes.style.position="relative";delete n.position;if(n.alignSelf){i.attributes.style.alignSelf=n.alignSelf;delete n.alignSelf}return i};t.fixDimensions=function fixDimensions(e){const t=e[r.$getSubformParent]();if(t.layout&&t.layout.includes("row")){const a=t[r.$extra],n=e.colSpan;let i;i=-1===n?a.columnWidths.slice(a.currentColumn).reduce(((e,t)=>e+t),0):a.columnWidths.slice(a.currentColumn,a.currentColumn+n).reduce(((e,t)=>e+t),0);isNaN(i)||(e.w=i)}t.layout&&"position"!==t.layout&&(e.x=e.y=0);"table"===e.layout&&""===e.w&&Array.isArray(e.columnWidths)&&(e.w=e.columnWidths.reduce(((e,t)=>e+t),0))};t.fixTextIndent=function fixTextIndent(e){const t=(0,i.getMeasurement)(e.textIndent,"0px");if(t>=0)return;const a="padding"+("left"==("right"===e.textAlign?"right":"left")?"Left":"Right"),r=(0,i.getMeasurement)(e[a],"0px");e[a]=r-t+"px"};t.fixURL=function fixURL(e){const t=(0,n.createValidAbsoluteUrl)(e,null,{addDefaultProtocol:!0,tryConvertEncoding:!0});return t?t.href:null};t.isPrintOnly=isPrintOnly;t.layoutClass=function layoutClass(e){switch(e.layout){case"position":default:return"xfaPosition";case"lr-tb":return"xfaLrTb";case"rl-row":return"xfaRlRow";case"rl-tb":return"xfaRlTb";case"row":return"xfaRow";case"table":return"xfaTable";case"tb":return"xfaTb"}};t.layoutNode=function layoutNode(e,t){let a=null,n=null,i=!1;if((!e.w||!e.h)&&e.value){let s=0,o=0;if(e.margin){s=e.margin.leftInset+e.margin.rightInset;o=e.margin.topInset+e.margin.bottomInset}let c=null,l=null;if(e.para){l=Object.create(null);c=""===e.para.lineHeight?null:e.para.lineHeight;l.top=""===e.para.spaceAbove?0:e.para.spaceAbove;l.bottom=""===e.para.spaceBelow?0:e.para.spaceBelow;l.left=""===e.para.marginLeft?0:e.para.marginLeft;l.right=""===e.para.marginRight?0:e.para.marginRight}let h=e.font;if(!h){const t=e[r.$getTemplateRoot]();let a=e[r.$getParent]();for(;a&&a!==t;){if(a.font){h=a.font;break}a=a[r.$getParent]()}}const u=(e.w?e.w:t.width)-s,d=e[r.$globalData].fontFinder;if(e.value.exData&&e.value.exData[r.$content]&&"text/html"===e.value.exData.contentType){const t=layoutText(e.value.exData[r.$content],h,l,c,d,u);n=t.width;a=t.height;i=t.isBroken}else{const t=e.value[r.$text]();if(t){const e=layoutText(t,h,l,c,d,u);n=e.width;a=e.height;i=e.isBroken}}null===n||e.w||(n+=s);null===a||e.h||(a+=o)}return{w:n,h:a,isBroken:i}};t.measureToString=measureToString;t.setAccess=function setAccess(e,t){switch(e.access){case"nonInteractive":t.push("xfaNonInteractive");break;case"readOnly":t.push("xfaReadOnly");break;case"protected":t.push("xfaDisabled")}};t.setFontFamily=function setFontFamily(e,t,a,r){if(!a){delete r.fontFamily;return}const n=(0,i.stripQuotes)(e.typeface);r.fontFamily=`"${n}"`;const o=a.find(n);if(o){const{fontFamily:a}=o.regular.cssFontInfo;a!==n&&(r.fontFamily=`"${a}"`);const i=getCurrentPara(t);if(i&&""!==i.lineHeight)return;if(r.lineHeight)return;const c=(0,s.selectFont)(e,o);c&&(r.lineHeight=Math.max(1.2,c.lineHeight))}};t.setMinMaxDimensions=function setMinMaxDimensions(e,t){if("position"===e[r.$getSubformParent]().layout){e.minW>0&&(t.minWidth=measureToString(e.minW));e.maxW>0&&(t.maxWidth=measureToString(e.maxW));e.minH>0&&(t.minHeight=measureToString(e.minH));e.maxH>0&&(t.maxHeight=measureToString(e.maxH))}};t.setPara=function setPara(e,t,a){if(a.attributes.class&&a.attributes.class.includes("xfaRich")){if(t){""===e.h&&(t.height="auto");""===e.w&&(t.width="auto")}const n=getCurrentPara(e);if(n){const e=a.attributes.style;e.display="flex";e.flexDirection="column";switch(n.vAlign){case"top":e.justifyContent="start";break;case"bottom":e.justifyContent="end";break;case"middle":e.justifyContent="center"}const t=n[r.$toStyle]();for(const[a,r]of Object.entries(t))a in e||(e[a]=r)}}};t.toStyle=function toStyle(e,...t){const a=Object.create(null);for(const i of t){const t=e[i];if(null!==t)if(c.hasOwnProperty(i))c[i](e,a);else if(t instanceof r.XFAObject){const e=t[r.$toStyle]();e?Object.assign(a,e):(0,n.warn)(`(DEBUG) - XFA - style for ${i} not implemented yet`)}}return a};var r=a(78),n=a(2),i=a(79),s=a(86),o=a(87);function measureToString(e){return"string"==typeof e?"0px":Number.isInteger(e)?`${e}px`:`${e.toFixed(2)}px`}const c={anchorType(e,t){const a=e[r.$getSubformParent]();if(a&&(!a.layout||"position"===a.layout)){"transform"in t||(t.transform="");switch(e.anchorType){case"bottomCenter":t.transform+="translate(-50%, -100%)";break;case"bottomLeft":t.transform+="translate(0,-100%)";break;case"bottomRight":t.transform+="translate(-100%,-100%)";break;case"middleCenter":t.transform+="translate(-50%,-50%)";break;case"middleLeft":t.transform+="translate(0,-50%)";break;case"middleRight":t.transform+="translate(-100%,-50%)";break;case"topCenter":t.transform+="translate(-50%,0)";break;case"topRight":t.transform+="translate(-100%,0)"}}},dimensions(e,t){const a=e[r.$getSubformParent]();let n=e.w;const i=e.h;if(a.layout&&a.layout.includes("row")){const t=a[r.$extra],i=e.colSpan;let s;if(-1===i){s=t.columnWidths.slice(t.currentColumn).reduce(((e,t)=>e+t),0);t.currentColumn=0}else{s=t.columnWidths.slice(t.currentColumn,t.currentColumn+i).reduce(((e,t)=>e+t),0);t.currentColumn=(t.currentColumn+e.colSpan)%t.columnWidths.length}isNaN(s)||(n=e.w=s)}t.width=""!==n?measureToString(n):"auto";t.height=""!==i?measureToString(i):"auto"},position(e,t){const a=e[r.$getSubformParent]();if(!a||!a.layout||"position"===a.layout){t.position="absolute";t.left=measureToString(e.x);t.top=measureToString(e.y)}},rotate(e,t){if(e.rotate){"transform"in t||(t.transform="");t.transform+=`rotate(-${e.rotate}deg)`;t.transformOrigin="top left"}},presence(e,t){switch(e.presence){case"invisible":t.visibility="hidden";break;case"hidden":case"inactive":t.display="none"}},hAlign(e,t){if("para"===e[r.$nodeName])switch(e.hAlign){case"justifyAll":t.textAlign="justify-all";break;case"radix":t.textAlign="left";break;default:t.textAlign=e.hAlign}else switch(e.hAlign){case"left":t.alignSelf="start";break;case"center":t.alignSelf="center";break;case"right":t.alignSelf="end"}},margin(e,t){e.margin&&(t.margin=e.margin[r.$toStyle]().margin)}};function layoutText(e,t,a,n,i,s){const c=new o.TextMeasure(t,a,n,i);"string"==typeof e?c.addString(e):e[r.$pushGlyphs](c);return c.compute(s)}function isPrintOnly(e){return e.relevant.length>0&&!e.relevant[0].excluded&&"print"===e.relevant[0].viewname}function getCurrentPara(e){const t=e[r.$getTemplateRoot]()[r.$extra].paraStack;return t.length?t[t.length-1]:null}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.FontFinder=void 0;t.getMetrics=function getMetrics(e,t=!1){let a=null;if(e){const t=(0,n.stripQuotes)(e.typeface),i=e[r.$globalData].fontFinder.find(t);a=selectFont(e,i)}if(!a)return{lineHeight:12,lineGap:2,lineNoGap:10};const i=e.size||10,s=a.lineHeight?Math.max(t?0:1.2,a.lineHeight):1.2,o=void 0===a.lineGap?.2:a.lineGap;return{lineHeight:s*i,lineGap:o*i,lineNoGap:Math.max(1,s-o)*i}};t.selectFont=selectFont;var r=a(78),n=a(79),i=a(2);t.FontFinder=class FontFinder{constructor(e){this.fonts=new Map;this.cache=new Map;this.warned=new Set;this.defaultFont=null;this.add(e)}add(e,t=null){for(const t of e)this.addPdfFont(t);for(const e of this.fonts.values())e.regular||(e.regular=e.italic||e.bold||e.bolditalic);if(!t||0===t.size)return;const a=this.fonts.get("PdfJS-Fallback-PdfJS-XFA");for(const e of t)this.fonts.set(e,a)}addPdfFont(e){const t=e.cssFontInfo,a=t.fontFamily;let r=this.fonts.get(a);if(!r){r=Object.create(null);this.fonts.set(a,r);this.defaultFont||(this.defaultFont=r)}let n="";const i=parseFloat(t.fontWeight);0!==parseFloat(t.italicAngle)?n=i>=700?"bolditalic":"italic":i>=700&&(n="bold");if(!n){(e.name.includes("Bold")||e.psName&&e.psName.includes("Bold"))&&(n="bold");(e.name.includes("Italic")||e.name.endsWith("It")||e.psName&&(e.psName.includes("Italic")||e.psName.endsWith("It")))&&(n+="italic")}n||(n="regular");r[n]=e}getDefault(){return this.defaultFont}find(e,t=!0){let a=this.fonts.get(e)||this.cache.get(e);if(a)return a;const r=/,|-|_| |bolditalic|bold|italic|regular|it/gi;let n=e.replace(r,"");a=this.fonts.get(n);if(a){this.cache.set(e,a);return a}n=n.toLowerCase();const s=[];for(const[e,t]of this.fonts.entries())e.replace(r,"").toLowerCase().startsWith(n)&&s.push(t);if(0===s.length)for(const[,e]of this.fonts.entries())e.regular.name&&e.regular.name.replace(r,"").toLowerCase().startsWith(n)&&s.push(e);if(0===s.length){n=n.replace(/psmt|mt/gi,"");for(const[e,t]of this.fonts.entries())e.replace(r,"").toLowerCase().startsWith(n)&&s.push(t)}if(0===s.length)for(const e of this.fonts.values())e.regular.name&&e.regular.name.replace(r,"").toLowerCase().startsWith(n)&&s.push(e);if(s.length>=1){1!==s.length&&t&&(0,i.warn)(`XFA - Too many choices to guess the correct font: ${e}`);this.cache.set(e,s[0]);return s[0]}if(t&&!this.warned.has(e)){this.warned.add(e);(0,i.warn)(`XFA - Cannot find the font: ${e}`)}return null}};function selectFont(e,t){return"italic"===e.posture?"bold"===e.weight?t.bolditalic:t.italic:"bold"===e.weight?t.bold:t.regular}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.TextMeasure=void 0;var r=a(86);class FontInfo{constructor(e,t,a,n){this.lineHeight=a;this.paraMargin=t||{top:0,bottom:0,left:0,right:0};if(!e){[this.pdfFont,this.xfaFont]=this.defaultFont(n);return}this.xfaFont={typeface:e.typeface,posture:e.posture,weight:e.weight,size:e.size,letterSpacing:e.letterSpacing};const i=n.find(e.typeface);if(i){this.pdfFont=(0,r.selectFont)(e,i);this.pdfFont||([this.pdfFont,this.xfaFont]=this.defaultFont(n))}else[this.pdfFont,this.xfaFont]=this.defaultFont(n)}defaultFont(e){const t=e.find("Helvetica",!1)||e.find("Myriad Pro",!1)||e.find("Arial",!1)||e.getDefault();if(t&&t.regular){const e=t.regular;return[e,{typeface:e.cssFontInfo.fontFamily,posture:"normal",weight:"normal",size:10,letterSpacing:0}]}return[null,{typeface:"Courier",posture:"normal",weight:"normal",size:10,letterSpacing:0}]}}class FontSelector{constructor(e,t,a,r){this.fontFinder=r;this.stack=[new FontInfo(e,t,a,r)]}pushData(e,t,a){const r=this.stack[this.stack.length-1];for(const t of["typeface","posture","weight","size","letterSpacing"])e[t]||(e[t]=r.xfaFont[t]);for(const e of["top","bottom","left","right"])isNaN(t[e])&&(t[e]=r.paraMargin[e]);const n=new FontInfo(e,t,a||r.lineHeight,this.fontFinder);n.pdfFont||(n.pdfFont=r.pdfFont);this.stack.push(n)}popFont(){this.stack.pop()}topFont(){return this.stack[this.stack.length-1]}}t.TextMeasure=class TextMeasure{constructor(e,t,a,r){this.glyphs=[];this.fontSelector=new FontSelector(e,t,a,r);this.extraHeight=0}pushData(e,t,a){this.fontSelector.pushData(e,t,a)}popFont(e){return this.fontSelector.popFont()}addPara(){const e=this.fontSelector.topFont();this.extraHeight+=e.paraMargin.top+e.paraMargin.bottom}addString(e){if(!e)return;const t=this.fontSelector.topFont(),a=t.xfaFont.size;if(t.pdfFont){const r=t.xfaFont.letterSpacing,n=t.pdfFont,i=n.lineHeight||1.2,s=t.lineHeight||Math.max(1.2,i)*a,o=i-(void 0===n.lineGap?.2:n.lineGap),c=Math.max(1,o)*a,l=a/1e3,h=n.defaultWidth||n.charsToGlyphs(" ")[0].width;for(const t of e.split(/[\u2029\n]/)){const e=n.encodeString(t).join(""),a=n.charsToGlyphs(e);for(const e of a){const t=e.width||h;this.glyphs.push([t*l+r,s,c,e.unicode,!1])}this.glyphs.push([0,0,0,"\n",!0])}this.glyphs.pop()}else{for(const t of e.split(/[\u2029\n]/)){for(const e of t.split(""))this.glyphs.push([a,1.2*a,a,e,!1]);this.glyphs.push([0,0,0,"\n",!0])}this.glyphs.pop()}}compute(e){let t=-1,a=0,r=0,n=0,i=0,s=0,o=!1,c=!0;for(let l=0,h=this.glyphs.length;le){r=Math.max(r,i);i=0;n+=s;s=m;t=-1;a=0;o=!0;c=!1}else{s=Math.max(m,s);a=i;i+=h;t=l}else if(i+h>e){n+=s;s=m;if(-1!==t){l=t;r=Math.max(r,a);i=0;t=-1;a=0}else{r=Math.max(r,i);i=h}o=!0;c=!1}else{i+=h;s=Math.max(m,s)}}r=Math.max(r,i);n+=s+this.extraHeight;return{width:1.02*r,height:n,isBroken:o}}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.DataHandler=void 0;var r=a(78);t.DataHandler=class DataHandler{constructor(e,t){this.data=t;this.dataset=e.datasets||null}serialize(e){const t=[[-1,this.data[r.$getChildren]()]];for(;t.length>0;){const a=t[t.length-1],[n,i]=a;if(n+1===i.length){t.pop();continue}const s=i[++a[0]],o=e.get(s[r.$uid]);if(o)s[r.$setValue](o);else{const t=s[r.$getAttributes]();for(const a of t.values()){const t=e.get(a[r.$uid]);if(t){a[r.$setValue](t);break}}}const c=s[r.$getChildren]();c.length>0&&t.push([-1,c])}const a=[''];if(this.dataset)for(const e of this.dataset[r.$getChildren]())"data"!==e[r.$nodeName]&&e[r.$toString](a);this.data[r.$toString](a);a.push("");return a.join("")}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XFAParser=void 0;var r=a(78),n=a(71),i=a(90),s=a(2);class XFAParser extends n.XMLParserBase{constructor(e=null,t=!1){super();this._builder=new i.Builder(e);this._stack=[];this._globalData={usedTypefaces:new Set};this._ids=new Map;this._current=this._builder.buildRoot(this._ids);this._errorCode=n.XMLParserErrorCode.NoError;this._whiteRegex=/^\s+$/;this._nbsps=/\xa0+/g;this._richText=t}parse(e){this.parseXml(e);if(this._errorCode===n.XMLParserErrorCode.NoError){this._current[r.$finalize]();return this._current.element}}onText(e){e=e.replace(this._nbsps,(e=>e.slice(1)+" "));this._richText||this._current[r.$acceptWhitespace]()?this._current[r.$onText](e,this._richText):this._whiteRegex.test(e)||this._current[r.$onText](e.trim())}onCdata(e){this._current[r.$onText](e)}_mkAttributes(e,t){let a=null,n=null;const i=Object.create({});for(const{name:o,value:c}of e)if("xmlns"===o)a?(0,s.warn)(`XFA - multiple namespace definition in <${t}>`):a=c;else if(o.startsWith("xmlns:")){const e=o.substring("xmlns:".length);n||(n=[]);n.push({prefix:e,value:c})}else{const e=o.indexOf(":");if(-1===e)i[o]=c;else{let t=i[r.$nsAttributes];t||(t=i[r.$nsAttributes]=Object.create(null));const[a,n]=[o.slice(0,e),o.slice(e+1)];let s=t[a];s||(s=t[a]=Object.create(null));s[n]=c}}return[a,n,i]}_getNameAndPrefix(e,t){const a=e.indexOf(":");return-1===a?[e,null]:[e.substring(a+1),t?"":e.substring(0,a)]}onBeginElement(e,t,a){const[n,i,s]=this._mkAttributes(t,e),[o,c]=this._getNameAndPrefix(e,this._builder.isNsAgnostic()),l=this._builder.build({nsPrefix:c,name:o,attributes:s,namespace:n,prefixes:i});l[r.$globalData]=this._globalData;if(a){l[r.$finalize]();this._current[r.$onChild](l)&&l[r.$setId](this._ids);l[r.$clean](this._builder)}else{this._stack.push(this._current);this._current=l}}onEndElement(e){const t=this._current;if(t[r.$isCDATAXml]()&&"string"==typeof t[r.$content]){const e=new XFAParser;e._globalData=this._globalData;const a=e.parse(t[r.$content]);t[r.$content]=null;t[r.$onChild](a)}t[r.$finalize]();this._current=this._stack.pop();this._current[r.$onChild](t)&&t[r.$setId](this._ids);t[r.$clean](this._builder)}onError(e){this._errorCode=e}}t.XFAParser=XFAParser},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Builder=void 0;var r=a(80),n=a(78),i=a(91),s=a(83),o=a(100),c=a(2);class Root extends n.XFAObject{constructor(e){super(-1,"root",Object.create(null));this.element=null;this[n.$ids]=e}[n.$onChild](e){this.element=e;return!0}[n.$finalize](){super[n.$finalize]();if(this.element.template instanceof s.Template){this[n.$ids].set(n.$root,this.element);this.element.template[n.$resolvePrototypes](this[n.$ids]);this.element.template[n.$ids]=this[n.$ids]}}}class Empty extends n.XFAObject{constructor(){super(-1,"",Object.create(null))}[n.$onChild](e){return!1}}t.Builder=class Builder{constructor(e=null){this._namespaceStack=[];this._nsAgnosticLevel=0;this._namespacePrefixes=new Map;this._namespaces=new Map;this._nextNsId=Math.max(...Object.values(r.NamespaceIds).map((({id:e})=>e)));this._currentNamespace=e||new o.UnknownNamespace(++this._nextNsId)}buildRoot(e){return new Root(e)}build({nsPrefix:e,name:t,attributes:a,namespace:s,prefixes:o}){const c=null!==s;if(c){this._namespaceStack.push(this._currentNamespace);this._currentNamespace=this._searchNamespace(s)}o&&this._addNamespacePrefix(o);if(a.hasOwnProperty(n.$nsAttributes)){const e=i.NamespaceSetUp.datasets,t=a[n.$nsAttributes];let r=null;for(const[a,n]of Object.entries(t)){if(this._getNamespaceToUse(a)===e){r={xfa:n};break}}r?a[n.$nsAttributes]=r:delete a[n.$nsAttributes]}const l=this._getNamespaceToUse(e),h=l&&l[r.$buildXFAObject](t,a)||new Empty;h[n.$isNsAgnostic]()&&this._nsAgnosticLevel++;(c||o||h[n.$isNsAgnostic]())&&(h[n.$cleanup]={hasNamespace:c,prefixes:o,nsAgnostic:h[n.$isNsAgnostic]()});return h}isNsAgnostic(){return this._nsAgnosticLevel>0}_searchNamespace(e){let t=this._namespaces.get(e);if(t)return t;for(const[a,{check:n}]of Object.entries(r.NamespaceIds))if(n(e)){t=i.NamespaceSetUp[a];if(t){this._namespaces.set(e,t);return t}break}t=new o.UnknownNamespace(++this._nextNsId);this._namespaces.set(e,t);return t}_addNamespacePrefix(e){for(const{prefix:t,value:a}of e){const e=this._searchNamespace(a);let r=this._namespacePrefixes.get(t);if(!r){r=[];this._namespacePrefixes.set(t,r)}r.push(e)}}_getNamespaceToUse(e){if(!e)return this._currentNamespace;const t=this._namespacePrefixes.get(e);if(t&&t.length>0)return t[t.length-1];(0,c.warn)(`Unknown namespace prefix: ${e}.`);return null}clean(e){const{hasNamespace:t,prefixes:a,nsAgnostic:r}=e;t&&(this._currentNamespace=this._namespaceStack.pop());a&&a.forEach((({prefix:e})=>{this._namespacePrefixes.get(e).pop()}));r&&this._nsAgnosticLevel--}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.NamespaceSetUp=void 0;var r=a(92),n=a(93),i=a(94),s=a(95),o=a(96),c=a(97),l=a(83),h=a(98),u=a(99);const d={config:r.ConfigNamespace,connection:n.ConnectionSetNamespace,datasets:i.DatasetsNamespace,localeSet:s.LocaleSetNamespace,signature:o.SignatureNamespace,stylesheet:c.StylesheetNamespace,template:l.TemplateNamespace,xdp:h.XdpNamespace,xhtml:u.XhtmlNamespace};t.NamespaceSetUp=d},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ConfigNamespace=void 0;var r=a(80),n=a(78),i=a(79),s=a(2);const o=r.NamespaceIds.config.id;class Acrobat extends n.XFAObject{constructor(e){super(o,"acrobat",!0);this.acrobat7=null;this.autoSave=null;this.common=null;this.validate=null;this.validateApprovalSignatures=null;this.submitUrl=new n.XFAObjectArray}}class Acrobat7 extends n.XFAObject{constructor(e){super(o,"acrobat7",!0);this.dynamicRender=null}}class ADBE_JSConsole extends n.OptionObject{constructor(e){super(o,"ADBE_JSConsole",["delegate","Enable","Disable"])}}class ADBE_JSDebugger extends n.OptionObject{constructor(e){super(o,"ADBE_JSDebugger",["delegate","Enable","Disable"])}}class AddSilentPrint extends n.Option01{constructor(e){super(o,"addSilentPrint")}}class AddViewerPreferences extends n.Option01{constructor(e){super(o,"addViewerPreferences")}}class AdjustData extends n.Option10{constructor(e){super(o,"adjustData")}}class AdobeExtensionLevel extends n.IntegerObject{constructor(e){super(o,"adobeExtensionLevel",0,(e=>e>=1&&e<=8))}}class Agent extends n.XFAObject{constructor(e){super(o,"agent",!0);this.name=e.name?e.name.trim():"";this.common=new n.XFAObjectArray}}class AlwaysEmbed extends n.ContentObject{constructor(e){super(o,"alwaysEmbed")}}class Amd extends n.StringObject{constructor(e){super(o,"amd")}}class Area extends n.XFAObject{constructor(e){super(o,"area");this.level=(0,i.getInteger)({data:e.level,defaultValue:0,validate:e=>e>=1&&e<=3});this.name=(0,i.getStringOption)(e.name,["","barcode","coreinit","deviceDriver","font","general","layout","merge","script","signature","sourceSet","templateCache"])}}class Attributes extends n.OptionObject{constructor(e){super(o,"attributes",["preserve","delegate","ignore"])}}class AutoSave extends n.OptionObject{constructor(e){super(o,"autoSave",["disabled","enabled"])}}class Base extends n.StringObject{constructor(e){super(o,"base")}}class BatchOutput extends n.XFAObject{constructor(e){super(o,"batchOutput");this.format=(0,i.getStringOption)(e.format,["none","concat","zip","zipCompress"])}}class BehaviorOverride extends n.ContentObject{constructor(e){super(o,"behaviorOverride")}[n.$finalize](){this[n.$content]=new Map(this[n.$content].trim().split(/\s+/).filter((e=>e.includes(":"))).map((e=>e.split(":",2))))}}class Cache extends n.XFAObject{constructor(e){super(o,"cache",!0);this.templateCache=null}}class Change extends n.Option01{constructor(e){super(o,"change")}}class Common extends n.XFAObject{constructor(e){super(o,"common",!0);this.data=null;this.locale=null;this.localeSet=null;this.messaging=null;this.suppressBanner=null;this.template=null;this.validationMessaging=null;this.versionControl=null;this.log=new n.XFAObjectArray}}class Compress extends n.XFAObject{constructor(e){super(o,"compress");this.scope=(0,i.getStringOption)(e.scope,["imageOnly","document"])}}class CompressLogicalStructure extends n.Option01{constructor(e){super(o,"compressLogicalStructure")}}class CompressObjectStream extends n.Option10{constructor(e){super(o,"compressObjectStream")}}class Compression extends n.XFAObject{constructor(e){super(o,"compression",!0);this.compressLogicalStructure=null;this.compressObjectStream=null;this.level=null;this.type=null}}class Config extends n.XFAObject{constructor(e){super(o,"config",!0);this.acrobat=null;this.present=null;this.trace=null;this.agent=new n.XFAObjectArray}}class Conformance extends n.OptionObject{constructor(e){super(o,"conformance",["A","B"])}}class ContentCopy extends n.Option01{constructor(e){super(o,"contentCopy")}}class Copies extends n.IntegerObject{constructor(e){super(o,"copies",1,(e=>e>=1))}}class Creator extends n.StringObject{constructor(e){super(o,"creator")}}class CurrentPage extends n.IntegerObject{constructor(e){super(o,"currentPage",0,(e=>e>=0))}}class Data extends n.XFAObject{constructor(e){super(o,"data",!0);this.adjustData=null;this.attributes=null;this.incrementalLoad=null;this.outputXSL=null;this.range=null;this.record=null;this.startNode=null;this.uri=null;this.window=null;this.xsl=null;this.excludeNS=new n.XFAObjectArray;this.transform=new n.XFAObjectArray}}class Debug extends n.XFAObject{constructor(e){super(o,"debug",!0);this.uri=null}}class DefaultTypeface extends n.ContentObject{constructor(e){super(o,"defaultTypeface");this.writingScript=(0,i.getStringOption)(e.writingScript,["*","Arabic","Cyrillic","EastEuropeanRoman","Greek","Hebrew","Japanese","Korean","Roman","SimplifiedChinese","Thai","TraditionalChinese","Vietnamese"])}}class Destination extends n.OptionObject{constructor(e){super(o,"destination",["pdf","pcl","ps","webClient","zpl"])}}class DocumentAssembly extends n.Option01{constructor(e){super(o,"documentAssembly")}}class Driver extends n.XFAObject{constructor(e){super(o,"driver",!0);this.name=e.name?e.name.trim():"";this.fontInfo=null;this.xdc=null}}class DuplexOption extends n.OptionObject{constructor(e){super(o,"duplexOption",["simplex","duplexFlipLongEdge","duplexFlipShortEdge"])}}class DynamicRender extends n.OptionObject{constructor(e){super(o,"dynamicRender",["forbidden","required"])}}class Embed extends n.Option01{constructor(e){super(o,"embed")}}class Encrypt extends n.Option01{constructor(e){super(o,"encrypt")}}class Encryption extends n.XFAObject{constructor(e){super(o,"encryption",!0);this.encrypt=null;this.encryptionLevel=null;this.permissions=null}}class EncryptionLevel extends n.OptionObject{constructor(e){super(o,"encryptionLevel",["40bit","128bit"])}}class Enforce extends n.StringObject{constructor(e){super(o,"enforce")}}class Equate extends n.XFAObject{constructor(e){super(o,"equate");this.force=(0,i.getInteger)({data:e.force,defaultValue:1,validate:e=>0===e});this.from=e.from||"";this.to=e.to||""}}class EquateRange extends n.XFAObject{constructor(e){super(o,"equateRange");this.from=e.from||"";this.to=e.to||"";this._unicodeRange=e.unicodeRange||""}get unicodeRange(){const e=[],t=/U\+([0-9a-fA-F]+)/,a=this._unicodeRange;for(let r of a.split(",").map((e=>e.trim())).filter((e=>!!e))){r=r.split("-",2).map((e=>{const a=e.match(t);return a?parseInt(a[1],16):0}));1===r.length&&r.push(r[0]);e.push(r)}return(0,s.shadow)(this,"unicodeRange",e)}}class Exclude extends n.ContentObject{constructor(e){super(o,"exclude")}[n.$finalize](){this[n.$content]=this[n.$content].trim().split(/\s+/).filter((e=>e&&["calculate","close","enter","exit","initialize","ready","validate"].includes(e)))}}class ExcludeNS extends n.StringObject{constructor(e){super(o,"excludeNS")}}class FlipLabel extends n.OptionObject{constructor(e){super(o,"flipLabel",["usePrinterSetting","on","off"])}}class FontInfo extends n.XFAObject{constructor(e){super(o,"fontInfo",!0);this.embed=null;this.map=null;this.subsetBelow=null;this.alwaysEmbed=new n.XFAObjectArray;this.defaultTypeface=new n.XFAObjectArray;this.neverEmbed=new n.XFAObjectArray}}class FormFieldFilling extends n.Option01{constructor(e){super(o,"formFieldFilling")}}class GroupParent extends n.StringObject{constructor(e){super(o,"groupParent")}}class IfEmpty extends n.OptionObject{constructor(e){super(o,"ifEmpty",["dataValue","dataGroup","ignore","remove"])}}class IncludeXDPContent extends n.StringObject{constructor(e){super(o,"includeXDPContent")}}class IncrementalLoad extends n.OptionObject{constructor(e){super(o,"incrementalLoad",["none","forwardOnly"])}}class IncrementalMerge extends n.Option01{constructor(e){super(o,"incrementalMerge")}}class Interactive extends n.Option01{constructor(e){super(o,"interactive")}}class Jog extends n.OptionObject{constructor(e){super(o,"jog",["usePrinterSetting","none","pageSet"])}}class LabelPrinter extends n.XFAObject{constructor(e){super(o,"labelPrinter",!0);this.name=(0,i.getStringOption)(e.name,["zpl","dpl","ipl","tcpl"]);this.batchOutput=null;this.flipLabel=null;this.fontInfo=null;this.xdc=null}}class Layout extends n.OptionObject{constructor(e){super(o,"layout",["paginate","panel"])}}class Level extends n.IntegerObject{constructor(e){super(o,"level",0,(e=>e>0))}}class Linearized extends n.Option01{constructor(e){super(o,"linearized")}}class Locale extends n.StringObject{constructor(e){super(o,"locale")}}class LocaleSet extends n.StringObject{constructor(e){super(o,"localeSet")}}class Log extends n.XFAObject{constructor(e){super(o,"log",!0);this.mode=null;this.threshold=null;this.to=null;this.uri=null}}class MapElement extends n.XFAObject{constructor(e){super(o,"map",!0);this.equate=new n.XFAObjectArray;this.equateRange=new n.XFAObjectArray}}class MediumInfo extends n.XFAObject{constructor(e){super(o,"mediumInfo",!0);this.map=null}}class Message extends n.XFAObject{constructor(e){super(o,"message",!0);this.msgId=null;this.severity=null}}class Messaging extends n.XFAObject{constructor(e){super(o,"messaging",!0);this.message=new n.XFAObjectArray}}class Mode extends n.OptionObject{constructor(e){super(o,"mode",["append","overwrite"])}}class ModifyAnnots extends n.Option01{constructor(e){super(o,"modifyAnnots")}}class MsgId extends n.IntegerObject{constructor(e){super(o,"msgId",1,(e=>e>=1))}}class NameAttr extends n.StringObject{constructor(e){super(o,"nameAttr")}}class NeverEmbed extends n.ContentObject{constructor(e){super(o,"neverEmbed")}}class NumberOfCopies extends n.IntegerObject{constructor(e){super(o,"numberOfCopies",null,(e=>e>=2&&e<=5))}}class OpenAction extends n.XFAObject{constructor(e){super(o,"openAction",!0);this.destination=null}}class Output extends n.XFAObject{constructor(e){super(o,"output",!0);this.to=null;this.type=null;this.uri=null}}class OutputBin extends n.StringObject{constructor(e){super(o,"outputBin")}}class OutputXSL extends n.XFAObject{constructor(e){super(o,"outputXSL",!0);this.uri=null}}class Overprint extends n.OptionObject{constructor(e){super(o,"overprint",["none","both","draw","field"])}}class Packets extends n.StringObject{constructor(e){super(o,"packets")}[n.$finalize](){"*"!==this[n.$content]&&(this[n.$content]=this[n.$content].trim().split(/\s+/).filter((e=>["config","datasets","template","xfdf","xslt"].includes(e))))}}class PageOffset extends n.XFAObject{constructor(e){super(o,"pageOffset");this.x=(0,i.getInteger)({data:e.x,defaultValue:"useXDCSetting",validate:e=>!0});this.y=(0,i.getInteger)({data:e.y,defaultValue:"useXDCSetting",validate:e=>!0})}}class PageRange extends n.StringObject{constructor(e){super(o,"pageRange")}[n.$finalize](){const e=this[n.$content].trim().split(/\s+/).map((e=>parseInt(e,10))),t=[];for(let a=0,r=e.length;a!1))}}class Pcl extends n.XFAObject{constructor(e){super(o,"pcl",!0);this.name=e.name||"";this.batchOutput=null;this.fontInfo=null;this.jog=null;this.mediumInfo=null;this.outputBin=null;this.pageOffset=null;this.staple=null;this.xdc=null}}class Pdf extends n.XFAObject{constructor(e){super(o,"pdf",!0);this.name=e.name||"";this.adobeExtensionLevel=null;this.batchOutput=null;this.compression=null;this.creator=null;this.encryption=null;this.fontInfo=null;this.interactive=null;this.linearized=null;this.openAction=null;this.pdfa=null;this.producer=null;this.renderPolicy=null;this.scriptModel=null;this.silentPrint=null;this.submitFormat=null;this.tagged=null;this.version=null;this.viewerPreferences=null;this.xdc=null}}class Pdfa extends n.XFAObject{constructor(e){super(o,"pdfa",!0);this.amd=null;this.conformance=null;this.includeXDPContent=null;this.part=null}}class Permissions extends n.XFAObject{constructor(e){super(o,"permissions",!0);this.accessibleContent=null;this.change=null;this.contentCopy=null;this.documentAssembly=null;this.formFieldFilling=null;this.modifyAnnots=null;this.plaintextMetadata=null;this.print=null;this.printHighQuality=null}}class PickTrayByPDFSize extends n.Option01{constructor(e){super(o,"pickTrayByPDFSize")}}class Picture extends n.StringObject{constructor(e){super(o,"picture")}}class PlaintextMetadata extends n.Option01{constructor(e){super(o,"plaintextMetadata")}}class Presence extends n.OptionObject{constructor(e){super(o,"presence",["preserve","dissolve","dissolveStructure","ignore","remove"])}}class Present extends n.XFAObject{constructor(e){super(o,"present",!0);this.behaviorOverride=null;this.cache=null;this.common=null;this.copies=null;this.destination=null;this.incrementalMerge=null;this.layout=null;this.output=null;this.overprint=null;this.pagination=null;this.paginationOverride=null;this.script=null;this.validate=null;this.xdp=null;this.driver=new n.XFAObjectArray;this.labelPrinter=new n.XFAObjectArray;this.pcl=new n.XFAObjectArray;this.pdf=new n.XFAObjectArray;this.ps=new n.XFAObjectArray;this.submitUrl=new n.XFAObjectArray;this.webClient=new n.XFAObjectArray;this.zpl=new n.XFAObjectArray}}class Print extends n.Option01{constructor(e){super(o,"print")}}class PrintHighQuality extends n.Option01{constructor(e){super(o,"printHighQuality")}}class PrintScaling extends n.OptionObject{constructor(e){super(o,"printScaling",["appdefault","noScaling"])}}class PrinterName extends n.StringObject{constructor(e){super(o,"printerName")}}class Producer extends n.StringObject{constructor(e){super(o,"producer")}}class Ps extends n.XFAObject{constructor(e){super(o,"ps",!0);this.name=e.name||"";this.batchOutput=null;this.fontInfo=null;this.jog=null;this.mediumInfo=null;this.outputBin=null;this.staple=null;this.xdc=null}}class Range extends n.ContentObject{constructor(e){super(o,"range")}[n.$finalize](){this[n.$content]=this[n.$content].trim().split(/\s*,\s*/,2).map((e=>e.split("-").map((e=>parseInt(e.trim(),10))))).filter((e=>e.every((e=>!isNaN(e))))).map((e=>{1===e.length&&e.push(e[0]);return e}))}}class Record extends n.ContentObject{constructor(e){super(o,"record")}[n.$finalize](){this[n.$content]=this[n.$content].trim();const e=parseInt(this[n.$content],10);!isNaN(e)&&e>=0&&(this[n.$content]=e)}}class Relevant extends n.ContentObject{constructor(e){super(o,"relevant")}[n.$finalize](){this[n.$content]=this[n.$content].trim().split(/\s+/)}}class Rename extends n.ContentObject{constructor(e){super(o,"rename")}[n.$finalize](){this[n.$content]=this[n.$content].trim();(this[n.$content].toLowerCase().startsWith("xml")||this[n.$content].match(new RegExp("[\\p{L}_][\\p{L}\\d._\\p{M}-]*","u")))&&(0,s.warn)("XFA - Rename: invalid XFA name")}}class RenderPolicy extends n.OptionObject{constructor(e){super(o,"renderPolicy",["server","client"])}}class RunScripts extends n.OptionObject{constructor(e){super(o,"runScripts",["both","client","none","server"])}}class Script extends n.XFAObject{constructor(e){super(o,"script",!0);this.currentPage=null;this.exclude=null;this.runScripts=null}}class ScriptModel extends n.OptionObject{constructor(e){super(o,"scriptModel",["XFA","none"])}}class Severity extends n.OptionObject{constructor(e){super(o,"severity",["ignore","error","information","trace","warning"])}}class SilentPrint extends n.XFAObject{constructor(e){super(o,"silentPrint",!0);this.addSilentPrint=null;this.printerName=null}}class Staple extends n.XFAObject{constructor(e){super(o,"staple");this.mode=(0,i.getStringOption)(e.mode,["usePrinterSetting","on","off"])}}class StartNode extends n.StringObject{constructor(e){super(o,"startNode")}}class StartPage extends n.IntegerObject{constructor(e){super(o,"startPage",0,(e=>!0))}}class SubmitFormat extends n.OptionObject{constructor(e){super(o,"submitFormat",["html","delegate","fdf","xml","pdf"])}}class SubmitUrl extends n.StringObject{constructor(e){super(o,"submitUrl")}}class SubsetBelow extends n.IntegerObject{constructor(e){super(o,"subsetBelow",100,(e=>e>=0&&e<=100))}}class SuppressBanner extends n.Option01{constructor(e){super(o,"suppressBanner")}}class Tagged extends n.Option01{constructor(e){super(o,"tagged")}}class Template extends n.XFAObject{constructor(e){super(o,"template",!0);this.base=null;this.relevant=null;this.startPage=null;this.uri=null;this.xsl=null}}class Threshold extends n.OptionObject{constructor(e){super(o,"threshold",["trace","error","information","warning"])}}class To extends n.OptionObject{constructor(e){super(o,"to",["null","memory","stderr","stdout","system","uri"])}}class TemplateCache extends n.XFAObject{constructor(e){super(o,"templateCache");this.maxEntries=(0,i.getInteger)({data:e.maxEntries,defaultValue:5,validate:e=>e>=0})}}class Trace extends n.XFAObject{constructor(e){super(o,"trace",!0);this.area=new n.XFAObjectArray}}class Transform extends n.XFAObject{constructor(e){super(o,"transform",!0);this.groupParent=null;this.ifEmpty=null;this.nameAttr=null;this.picture=null;this.presence=null;this.rename=null;this.whitespace=null}}class Type extends n.OptionObject{constructor(e){super(o,"type",["none","ascii85","asciiHex","ccittfax","flate","lzw","runLength","native","xdp","mergedXDP"])}}class Uri extends n.StringObject{constructor(e){super(o,"uri")}}class Validate extends n.OptionObject{constructor(e){super(o,"validate",["preSubmit","prePrint","preExecute","preSave"])}}class ValidateApprovalSignatures extends n.ContentObject{constructor(e){super(o,"validateApprovalSignatures")}[n.$finalize](){this[n.$content]=this[n.$content].trim().split(/\s+/).filter((e=>["docReady","postSign"].includes(e)))}}class ValidationMessaging extends n.OptionObject{constructor(e){super(o,"validationMessaging",["allMessagesIndividually","allMessagesTogether","firstMessageOnly","noMessages"])}}class Version extends n.OptionObject{constructor(e){super(o,"version",["1.7","1.6","1.5","1.4","1.3","1.2"])}}class VersionControl extends n.XFAObject{constructor(e){super(o,"VersionControl");this.outputBelow=(0,i.getStringOption)(e.outputBelow,["warn","error","update"]);this.sourceAbove=(0,i.getStringOption)(e.sourceAbove,["warn","error"]);this.sourceBelow=(0,i.getStringOption)(e.sourceBelow,["update","maintain"])}}class ViewerPreferences extends n.XFAObject{constructor(e){super(o,"viewerPreferences",!0);this.ADBE_JSConsole=null;this.ADBE_JSDebugger=null;this.addViewerPreferences=null;this.duplexOption=null;this.enforce=null;this.numberOfCopies=null;this.pageRange=null;this.pickTrayByPDFSize=null;this.printScaling=null}}class WebClient extends n.XFAObject{constructor(e){super(o,"webClient",!0);this.name=e.name?e.name.trim():"";this.fontInfo=null;this.xdc=null}}class Whitespace extends n.OptionObject{constructor(e){super(o,"whitespace",["preserve","ltrim","normalize","rtrim","trim"])}}class Window extends n.ContentObject{constructor(e){super(o,"window")}[n.$finalize](){const e=this[n.$content].trim().split(/\s*,\s*/,2).map((e=>parseInt(e,10)));if(e.some((e=>isNaN(e))))this[n.$content]=[0,0];else{1===e.length&&e.push(e[0]);this[n.$content]=e}}}class Xdc extends n.XFAObject{constructor(e){super(o,"xdc",!0);this.uri=new n.XFAObjectArray;this.xsl=new n.XFAObjectArray}}class Xdp extends n.XFAObject{constructor(e){super(o,"xdp",!0);this.packets=null}}class Xsl extends n.XFAObject{constructor(e){super(o,"xsl",!0);this.debug=null;this.uri=null}}class Zpl extends n.XFAObject{constructor(e){super(o,"zpl",!0);this.name=e.name?e.name.trim():"";this.batchOutput=null;this.flipLabel=null;this.fontInfo=null;this.xdc=null}}class ConfigNamespace{static[r.$buildXFAObject](e,t){if(ConfigNamespace.hasOwnProperty(e))return ConfigNamespace[e](t)}static acrobat(e){return new Acrobat(e)}static acrobat7(e){return new Acrobat7(e)}static ADBE_JSConsole(e){return new ADBE_JSConsole(e)}static ADBE_JSDebugger(e){return new ADBE_JSDebugger(e)}static addSilentPrint(e){return new AddSilentPrint(e)}static addViewerPreferences(e){return new AddViewerPreferences(e)}static adjustData(e){return new AdjustData(e)}static adobeExtensionLevel(e){return new AdobeExtensionLevel(e)}static agent(e){return new Agent(e)}static alwaysEmbed(e){return new AlwaysEmbed(e)}static amd(e){return new Amd(e)}static area(e){return new Area(e)}static attributes(e){return new Attributes(e)}static autoSave(e){return new AutoSave(e)}static base(e){return new Base(e)}static batchOutput(e){return new BatchOutput(e)}static behaviorOverride(e){return new BehaviorOverride(e)}static cache(e){return new Cache(e)}static change(e){return new Change(e)}static common(e){return new Common(e)}static compress(e){return new Compress(e)}static compressLogicalStructure(e){return new CompressLogicalStructure(e)}static compressObjectStream(e){return new CompressObjectStream(e)}static compression(e){return new Compression(e)}static config(e){return new Config(e)}static conformance(e){return new Conformance(e)}static contentCopy(e){return new ContentCopy(e)}static copies(e){return new Copies(e)}static creator(e){return new Creator(e)}static currentPage(e){return new CurrentPage(e)}static data(e){return new Data(e)}static debug(e){return new Debug(e)}static defaultTypeface(e){return new DefaultTypeface(e)}static destination(e){return new Destination(e)}static documentAssembly(e){return new DocumentAssembly(e)}static driver(e){return new Driver(e)}static duplexOption(e){return new DuplexOption(e)}static dynamicRender(e){return new DynamicRender(e)}static embed(e){return new Embed(e)}static encrypt(e){return new Encrypt(e)}static encryption(e){return new Encryption(e)}static encryptionLevel(e){return new EncryptionLevel(e)}static enforce(e){return new Enforce(e)}static equate(e){return new Equate(e)}static equateRange(e){return new EquateRange(e)}static exclude(e){return new Exclude(e)}static excludeNS(e){return new ExcludeNS(e)}static flipLabel(e){return new FlipLabel(e)}static fontInfo(e){return new FontInfo(e)}static formFieldFilling(e){return new FormFieldFilling(e)}static groupParent(e){return new GroupParent(e)}static ifEmpty(e){return new IfEmpty(e)}static includeXDPContent(e){return new IncludeXDPContent(e)}static incrementalLoad(e){return new IncrementalLoad(e)}static incrementalMerge(e){return new IncrementalMerge(e)}static interactive(e){return new Interactive(e)}static jog(e){return new Jog(e)}static labelPrinter(e){return new LabelPrinter(e)}static layout(e){return new Layout(e)}static level(e){return new Level(e)}static linearized(e){return new Linearized(e)}static locale(e){return new Locale(e)}static localeSet(e){return new LocaleSet(e)}static log(e){return new Log(e)}static map(e){return new MapElement(e)}static mediumInfo(e){return new MediumInfo(e)}static message(e){return new Message(e)}static messaging(e){return new Messaging(e)}static mode(e){return new Mode(e)}static modifyAnnots(e){return new ModifyAnnots(e)}static msgId(e){return new MsgId(e)}static nameAttr(e){return new NameAttr(e)}static neverEmbed(e){return new NeverEmbed(e)}static numberOfCopies(e){return new NumberOfCopies(e)}static openAction(e){return new OpenAction(e)}static output(e){return new Output(e)}static outputBin(e){return new OutputBin(e)}static outputXSL(e){return new OutputXSL(e)}static overprint(e){return new Overprint(e)}static packets(e){return new Packets(e)}static pageOffset(e){return new PageOffset(e)}static pageRange(e){return new PageRange(e)}static pagination(e){return new Pagination(e)}static paginationOverride(e){return new PaginationOverride(e)}static part(e){return new Part(e)}static pcl(e){return new Pcl(e)}static pdf(e){return new Pdf(e)}static pdfa(e){return new Pdfa(e)}static permissions(e){return new Permissions(e)}static pickTrayByPDFSize(e){return new PickTrayByPDFSize(e)}static picture(e){return new Picture(e)}static plaintextMetadata(e){return new PlaintextMetadata(e)}static presence(e){return new Presence(e)}static present(e){return new Present(e)}static print(e){return new Print(e)}static printHighQuality(e){return new PrintHighQuality(e)}static printScaling(e){return new PrintScaling(e)}static printerName(e){return new PrinterName(e)}static producer(e){return new Producer(e)}static ps(e){return new Ps(e)}static range(e){return new Range(e)}static record(e){return new Record(e)}static relevant(e){return new Relevant(e)}static rename(e){return new Rename(e)}static renderPolicy(e){return new RenderPolicy(e)}static runScripts(e){return new RunScripts(e)}static script(e){return new Script(e)}static scriptModel(e){return new ScriptModel(e)}static severity(e){return new Severity(e)}static silentPrint(e){return new SilentPrint(e)}static staple(e){return new Staple(e)}static startNode(e){return new StartNode(e)}static startPage(e){return new StartPage(e)}static submitFormat(e){return new SubmitFormat(e)}static submitUrl(e){return new SubmitUrl(e)}static subsetBelow(e){return new SubsetBelow(e)}static suppressBanner(e){return new SuppressBanner(e)}static tagged(e){return new Tagged(e)}static template(e){return new Template(e)}static templateCache(e){return new TemplateCache(e)}static threshold(e){return new Threshold(e)}static to(e){return new To(e)}static trace(e){return new Trace(e)}static transform(e){return new Transform(e)}static type(e){return new Type(e)}static uri(e){return new Uri(e)}static validate(e){return new Validate(e)}static validateApprovalSignatures(e){return new ValidateApprovalSignatures(e)}static validationMessaging(e){return new ValidationMessaging(e)}static version(e){return new Version(e)}static versionControl(e){return new VersionControl(e)}static viewerPreferences(e){return new ViewerPreferences(e)}static webClient(e){return new WebClient(e)}static whitespace(e){return new Whitespace(e)}static window(e){return new Window(e)}static xdc(e){return new Xdc(e)}static xdp(e){return new Xdp(e)}static xsl(e){return new Xsl(e)}static zpl(e){return new Zpl(e)}}t.ConfigNamespace=ConfigNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ConnectionSetNamespace=void 0;var r=a(80),n=a(78);const i=r.NamespaceIds.connectionSet.id;class ConnectionSet extends n.XFAObject{constructor(e){super(i,"connectionSet",!0);this.wsdlConnection=new n.XFAObjectArray;this.xmlConnection=new n.XFAObjectArray;this.xsdConnection=new n.XFAObjectArray}}class EffectiveInputPolicy extends n.XFAObject{constructor(e){super(i,"effectiveInputPolicy");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class EffectiveOutputPolicy extends n.XFAObject{constructor(e){super(i,"effectiveOutputPolicy");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Operation extends n.StringObject{constructor(e){super(i,"operation");this.id=e.id||"";this.input=e.input||"";this.name=e.name||"";this.output=e.output||"";this.use=e.use||"";this.usehref=e.usehref||""}}class RootElement extends n.StringObject{constructor(e){super(i,"rootElement");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class SoapAction extends n.StringObject{constructor(e){super(i,"soapAction");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class SoapAddress extends n.StringObject{constructor(e){super(i,"soapAddress");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Uri extends n.StringObject{constructor(e){super(i,"uri");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class WsdlAddress extends n.StringObject{constructor(e){super(i,"wsdlAddress");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class WsdlConnection extends n.XFAObject{constructor(e){super(i,"wsdlConnection",!0);this.dataDescription=e.dataDescription||"";this.name=e.name||"";this.effectiveInputPolicy=null;this.effectiveOutputPolicy=null;this.operation=null;this.soapAction=null;this.soapAddress=null;this.wsdlAddress=null}}class XmlConnection extends n.XFAObject{constructor(e){super(i,"xmlConnection",!0);this.dataDescription=e.dataDescription||"";this.name=e.name||"";this.uri=null}}class XsdConnection extends n.XFAObject{constructor(e){super(i,"xsdConnection",!0);this.dataDescription=e.dataDescription||"";this.name=e.name||"";this.rootElement=null;this.uri=null}}class ConnectionSetNamespace{static[r.$buildXFAObject](e,t){if(ConnectionSetNamespace.hasOwnProperty(e))return ConnectionSetNamespace[e](t)}static connectionSet(e){return new ConnectionSet(e)}static effectiveInputPolicy(e){return new EffectiveInputPolicy(e)}static effectiveOutputPolicy(e){return new EffectiveOutputPolicy(e)}static operation(e){return new Operation(e)}static rootElement(e){return new RootElement(e)}static soapAction(e){return new SoapAction(e)}static soapAddress(e){return new SoapAddress(e)}static uri(e){return new Uri(e)}static wsdlAddress(e){return new WsdlAddress(e)}static wsdlConnection(e){return new WsdlConnection(e)}static xmlConnection(e){return new XmlConnection(e)}static xsdConnection(e){return new XsdConnection(e)}}t.ConnectionSetNamespace=ConnectionSetNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.DatasetsNamespace=void 0;var r=a(78),n=a(80);const i=n.NamespaceIds.datasets.id;class Data extends r.XmlObject{constructor(e){super(i,"data",e)}[r.$isNsAgnostic](){return!0}}class Datasets extends r.XFAObject{constructor(e){super(i,"datasets",!0);this.data=null;this.Signature=null}[r.$onChild](e){const t=e[r.$nodeName];("data"===t&&e[r.$namespaceId]===i||"Signature"===t&&e[r.$namespaceId]===n.NamespaceIds.signature.id)&&(this[t]=e);this[r.$appendChild](e)}}class DatasetsNamespace{static[n.$buildXFAObject](e,t){if(DatasetsNamespace.hasOwnProperty(e))return DatasetsNamespace[e](t)}static datasets(e){return new Datasets(e)}static data(e){return new Data(e)}}t.DatasetsNamespace=DatasetsNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.LocaleSetNamespace=void 0;var r=a(80),n=a(78),i=a(79);const s=r.NamespaceIds.localeSet.id;class CalendarSymbols extends n.XFAObject{constructor(e){super(s,"calendarSymbols",!0);this.name="gregorian";this.dayNames=new n.XFAObjectArray(2);this.eraNames=null;this.meridiemNames=null;this.monthNames=new n.XFAObjectArray(2)}}class CurrencySymbol extends n.StringObject{constructor(e){super(s,"currencySymbol");this.name=(0,i.getStringOption)(e.name,["symbol","isoname","decimal"])}}class CurrencySymbols extends n.XFAObject{constructor(e){super(s,"currencySymbols",!0);this.currencySymbol=new n.XFAObjectArray(3)}}class DatePattern extends n.StringObject{constructor(e){super(s,"datePattern");this.name=(0,i.getStringOption)(e.name,["full","long","med","short"])}}class DatePatterns extends n.XFAObject{constructor(e){super(s,"datePatterns",!0);this.datePattern=new n.XFAObjectArray(4)}}class DateTimeSymbols extends n.ContentObject{constructor(e){super(s,"dateTimeSymbols")}}class Day extends n.StringObject{constructor(e){super(s,"day")}}class DayNames extends n.XFAObject{constructor(e){super(s,"dayNames",!0);this.abbr=(0,i.getInteger)({data:e.abbr,defaultValue:0,validate:e=>1===e});this.day=new n.XFAObjectArray(7)}}class Era extends n.StringObject{constructor(e){super(s,"era")}}class EraNames extends n.XFAObject{constructor(e){super(s,"eraNames",!0);this.era=new n.XFAObjectArray(2)}}class Locale extends n.XFAObject{constructor(e){super(s,"locale",!0);this.desc=e.desc||"";this.name="isoname";this.calendarSymbols=null;this.currencySymbols=null;this.datePatterns=null;this.dateTimeSymbols=null;this.numberPatterns=null;this.numberSymbols=null;this.timePatterns=null;this.typeFaces=null}}class LocaleSet extends n.XFAObject{constructor(e){super(s,"localeSet",!0);this.locale=new n.XFAObjectArray}}class Meridiem extends n.StringObject{constructor(e){super(s,"meridiem")}}class MeridiemNames extends n.XFAObject{constructor(e){super(s,"meridiemNames",!0);this.meridiem=new n.XFAObjectArray(2)}}class Month extends n.StringObject{constructor(e){super(s,"month")}}class MonthNames extends n.XFAObject{constructor(e){super(s,"monthNames",!0);this.abbr=(0,i.getInteger)({data:e.abbr,defaultValue:0,validate:e=>1===e});this.month=new n.XFAObjectArray(12)}}class NumberPattern extends n.StringObject{constructor(e){super(s,"numberPattern");this.name=(0,i.getStringOption)(e.name,["full","long","med","short"])}}class NumberPatterns extends n.XFAObject{constructor(e){super(s,"numberPatterns",!0);this.numberPattern=new n.XFAObjectArray(4)}}class NumberSymbol extends n.StringObject{constructor(e){super(s,"numberSymbol");this.name=(0,i.getStringOption)(e.name,["decimal","grouping","percent","minus","zero"])}}class NumberSymbols extends n.XFAObject{constructor(e){super(s,"numberSymbols",!0);this.numberSymbol=new n.XFAObjectArray(5)}}class TimePattern extends n.StringObject{constructor(e){super(s,"timePattern");this.name=(0,i.getStringOption)(e.name,["full","long","med","short"])}}class TimePatterns extends n.XFAObject{constructor(e){super(s,"timePatterns",!0);this.timePattern=new n.XFAObjectArray(4)}}class TypeFace extends n.XFAObject{constructor(e){super(s,"typeFace",!0);this.name=""|e.name}}class TypeFaces extends n.XFAObject{constructor(e){super(s,"typeFaces",!0);this.typeFace=new n.XFAObjectArray}}class LocaleSetNamespace{static[r.$buildXFAObject](e,t){if(LocaleSetNamespace.hasOwnProperty(e))return LocaleSetNamespace[e](t)}static calendarSymbols(e){return new CalendarSymbols(e)}static currencySymbol(e){return new CurrencySymbol(e)}static currencySymbols(e){return new CurrencySymbols(e)}static datePattern(e){return new DatePattern(e)}static datePatterns(e){return new DatePatterns(e)}static dateTimeSymbols(e){return new DateTimeSymbols(e)}static day(e){return new Day(e)}static dayNames(e){return new DayNames(e)}static era(e){return new Era(e)}static eraNames(e){return new EraNames(e)}static locale(e){return new Locale(e)}static localeSet(e){return new LocaleSet(e)}static meridiem(e){return new Meridiem(e)}static meridiemNames(e){return new MeridiemNames(e)}static month(e){return new Month(e)}static monthNames(e){return new MonthNames(e)}static numberPattern(e){return new NumberPattern(e)}static numberPatterns(e){return new NumberPatterns(e)}static numberSymbol(e){return new NumberSymbol(e)}static numberSymbols(e){return new NumberSymbols(e)}static timePattern(e){return new TimePattern(e)}static timePatterns(e){return new TimePatterns(e)}static typeFace(e){return new TypeFace(e)}static typeFaces(e){return new TypeFaces(e)}}t.LocaleSetNamespace=LocaleSetNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.SignatureNamespace=void 0;var r=a(80),n=a(78);const i=r.NamespaceIds.signature.id;class Signature extends n.XFAObject{constructor(e){super(i,"signature",!0)}}class SignatureNamespace{static[r.$buildXFAObject](e,t){if(SignatureNamespace.hasOwnProperty(e))return SignatureNamespace[e](t)}static signature(e){return new Signature(e)}}t.SignatureNamespace=SignatureNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.StylesheetNamespace=void 0;var r=a(80),n=a(78);const i=r.NamespaceIds.stylesheet.id;class Stylesheet extends n.XFAObject{constructor(e){super(i,"stylesheet",!0)}}class StylesheetNamespace{static[r.$buildXFAObject](e,t){if(StylesheetNamespace.hasOwnProperty(e))return StylesheetNamespace[e](t)}static stylesheet(e){return new Stylesheet(e)}}t.StylesheetNamespace=StylesheetNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XdpNamespace=void 0;var r=a(80),n=a(78);const i=r.NamespaceIds.xdp.id;class Xdp extends n.XFAObject{constructor(e){super(i,"xdp",!0);this.uuid=e.uuid||"";this.timeStamp=e.timeStamp||"";this.config=null;this.connectionSet=null;this.datasets=null;this.localeSet=null;this.stylesheet=new n.XFAObjectArray;this.template=null}[n.$onChildCheck](e){const t=r.NamespaceIds[e[n.$nodeName]];return t&&e[n.$namespaceId]===t.id}}class XdpNamespace{static[r.$buildXFAObject](e,t){if(XdpNamespace.hasOwnProperty(e))return XdpNamespace[e](t)}static xdp(e){return new Xdp(e)}}t.XdpNamespace=XdpNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XhtmlNamespace=void 0;var r=a(78),n=a(80),i=a(85),s=a(79);const o=n.NamespaceIds.xhtml.id,c=Symbol(),l=new Set(["color","font","font-family","font-size","font-stretch","font-style","font-weight","margin","margin-bottom","margin-left","margin-right","margin-top","letter-spacing","line-height","orphans","page-break-after","page-break-before","page-break-inside","tab-interval","tab-stop","text-align","text-decoration","text-indent","vertical-align","widows","kerning-mode","xfa-font-horizontal-scale","xfa-font-vertical-scale","xfa-spacerun","xfa-tab-stops"]),h=new Map([["page-break-after","breakAfter"],["page-break-before","breakBefore"],["page-break-inside","breakInside"],["kerning-mode",e=>"none"===e?"none":"normal"],["xfa-font-horizontal-scale",e=>`scaleX(${Math.max(0,Math.min(parseInt(e)/100)).toFixed(2)})`],["xfa-font-vertical-scale",e=>`scaleY(${Math.max(0,Math.min(parseInt(e)/100)).toFixed(2)})`],["xfa-spacerun",""],["xfa-tab-stops",""],["font-size",(e,t)=>{e=t.fontSize=(0,s.getMeasurement)(e);return(0,i.measureToString)(.99*e)}],["letter-spacing",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["line-height",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["margin",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["margin-bottom",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["margin-left",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["margin-right",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["margin-top",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["text-indent",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["font-family",e=>e],["vertical-align",e=>(0,i.measureToString)((0,s.getMeasurement)(e))]]),u=/\s+/g,d=/[\r\n]+/g,f=/\r\n?/g;function mapStyle(e,t,a){const n=Object.create(null);if(!e)return n;const o=Object.create(null);for(const[t,a]of e.split(";").map((e=>e.split(":",2)))){const e=h.get(t);if(""===e)continue;let r=a;e&&(r="string"==typeof e?e:e(a,o));t.endsWith("scale")?n.transform?n.transform=`${n[t]} ${r}`:n.transform=r:n[t.replaceAll(/-([a-zA-Z])/g,((e,t)=>t.toUpperCase()))]=r}n.fontFamily&&(0,i.setFontFamily)({typeface:n.fontFamily,weight:n.fontWeight||"normal",posture:n.fontStyle||"normal",size:o.fontSize||0},t,t[r.$globalData].fontFinder,n);if(a&&n.verticalAlign&&"0px"!==n.verticalAlign&&n.fontSize){const e=.583,t=.333,a=(0,s.getMeasurement)(n.fontSize);n.fontSize=(0,i.measureToString)(a*e);n.verticalAlign=(0,i.measureToString)(Math.sign((0,s.getMeasurement)(n.verticalAlign))*a*t)}(0,i.fixTextIndent)(n);return n}const g=new Set(["body","html"]);class XhtmlObject extends r.XmlObject{constructor(e,t){super(o,t);this[c]=!1;this.style=e.style||""}[r.$clean](e){super[r.$clean](e);this.style=function checkStyle(e){return e.style?e.style.trim().split(/\s*;\s*/).filter((e=>!!e)).map((e=>e.split(/\s*:\s*/,2))).filter((([t,a])=>{"font-family"===t&&e[r.$globalData].usedTypefaces.add(a);return l.has(t)})).map((e=>e.join(":"))).join(";"):""}(this)}[r.$acceptWhitespace](){return!g.has(this[r.$nodeName])}[r.$onText](e,t=!1){if(t)this[c]=!0;else{e=e.replace(d,"");this.style.includes("xfa-spacerun:yes")||(e=e.replace(u," "))}e&&(this[r.$content]+=e)}[r.$pushGlyphs](e,t=!0){const a=Object.create(null),n={top:NaN,bottom:NaN,left:NaN,right:NaN};let i=null;for(const[e,t]of this.style.split(";").map((e=>e.split(":",2))))switch(e){case"font-family":a.typeface=(0,s.stripQuotes)(t);break;case"font-size":a.size=(0,s.getMeasurement)(t);break;case"font-weight":a.weight=t;break;case"font-style":a.posture=t;break;case"letter-spacing":a.letterSpacing=(0,s.getMeasurement)(t);break;case"margin":const e=t.split(/ \t/).map((e=>(0,s.getMeasurement)(e)));switch(e.length){case 1:n.top=n.bottom=n.left=n.right=e[0];break;case 2:n.top=n.bottom=e[0];n.left=n.right=e[1];break;case 3:n.top=e[0];n.bottom=e[2];n.left=n.right=e[1];break;case 4:n.top=e[0];n.left=e[1];n.bottom=e[2];n.right=e[3]}break;case"margin-top":n.top=(0,s.getMeasurement)(t);break;case"margin-bottom":n.bottom=(0,s.getMeasurement)(t);break;case"margin-left":n.left=(0,s.getMeasurement)(t);break;case"margin-right":n.right=(0,s.getMeasurement)(t);break;case"line-height":i=(0,s.getMeasurement)(t)}e.pushData(a,n,i);if(this[r.$content])e.addString(this[r.$content]);else for(const t of this[r.$getChildren]())"#text"!==t[r.$nodeName]?t[r.$pushGlyphs](e):e.addString(t[r.$content]);t&&e.popFont()}[r.$toHTML](e){const t=[];this[r.$extra]={children:t};this[r.$childrenToHTML]({});if(0===t.length&&!this[r.$content])return s.HTMLResult.EMPTY;let a;a=this[c]?this[r.$content]?this[r.$content].replace(f,"\n"):void 0:this[r.$content]||void 0;return s.HTMLResult.success({name:this[r.$nodeName],attributes:{href:this.href,style:mapStyle(this.style,this,this[c])},children:t,value:a})}}class A extends XhtmlObject{constructor(e){super(e,"a");this.href=(0,i.fixURL)(e.href)||""}}class B extends XhtmlObject{constructor(e){super(e,"b")}[r.$pushGlyphs](e){e.pushFont({weight:"bold"});super[r.$pushGlyphs](e);e.popFont()}}class Body extends XhtmlObject{constructor(e){super(e,"body")}[r.$toHTML](e){const t=super[r.$toHTML](e),{html:a}=t;if(!a)return s.HTMLResult.EMPTY;a.name="div";a.attributes.class=["xfaRich"];return t}}class Br extends XhtmlObject{constructor(e){super(e,"br")}[r.$text](){return"\n"}[r.$pushGlyphs](e){e.addString("\n")}[r.$toHTML](e){return s.HTMLResult.success({name:"br"})}}class Html extends XhtmlObject{constructor(e){super(e,"html")}[r.$toHTML](e){const t=[];this[r.$extra]={children:t};this[r.$childrenToHTML]({});if(0===t.length)return s.HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:{}},value:this[r.$content]||""});if(1===t.length){const e=t[0];if(e.attributes&&e.attributes.class.includes("xfaRich"))return s.HTMLResult.success(e)}return s.HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:{}},children:t})}}class I extends XhtmlObject{constructor(e){super(e,"i")}[r.$pushGlyphs](e){e.pushFont({posture:"italic"});super[r.$pushGlyphs](e);e.popFont()}}class Li extends XhtmlObject{constructor(e){super(e,"li")}}class Ol extends XhtmlObject{constructor(e){super(e,"ol")}}class P extends XhtmlObject{constructor(e){super(e,"p")}[r.$pushGlyphs](e){super[r.$pushGlyphs](e,!1);e.addString("\n");e.addPara();e.popFont()}[r.$text](){const e=this[r.$getParent]()[r.$getChildren]();return e[e.length-1]===this?super[r.$text]():super[r.$text]()+"\n"}}class Span extends XhtmlObject{constructor(e){super(e,"span")}}class Sub extends XhtmlObject{constructor(e){super(e,"sub")}}class Sup extends XhtmlObject{constructor(e){super(e,"sup")}}class Ul extends XhtmlObject{constructor(e){super(e,"ul")}}class XhtmlNamespace{static[n.$buildXFAObject](e,t){if(XhtmlNamespace.hasOwnProperty(e))return XhtmlNamespace[e](t)}static a(e){return new A(e)}static b(e){return new B(e)}static body(e){return new Body(e)}static br(e){return new Br(e)}static html(e){return new Html(e)}static i(e){return new I(e)}static li(e){return new Li(e)}static ol(e){return new Ol(e)}static p(e){return new P(e)}static span(e){return new Span(e)}static sub(e){return new Sub(e)}static sup(e){return new Sup(e)}static ul(e){return new Ul(e)}}t.XhtmlNamespace=XhtmlNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.UnknownNamespace=void 0;var r=a(80),n=a(78);class UnknownNamespace{constructor(e){this.namespaceId=e}[r.$buildXFAObject](e,t){return new n.XmlObject(this.namespaceId,e,t)}}t.UnknownNamespace=UnknownNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.DatasetReader=void 0;var r=a(2),n=a(8),i=a(71);function decodeString(e){try{return(0,r.stringToUTF8String)(e)}catch(t){(0,r.warn)(`UTF-8 decoding failed: "${t}".`);return e}}class DatasetXMLParser extends i.SimpleXMLParser{constructor(e){super(e);this.node=null}onEndElement(e){const t=super.onEndElement(e);if(t&&"xfa:datasets"===e){this.node=t;throw new Error("Aborting DatasetXMLParser.")}}}t.DatasetReader=class DatasetReader{constructor(e){if(e.datasets)this.node=new i.SimpleXMLParser({hasAttributes:!0}).parseFromString(e.datasets).documentElement;else{const t=new DatasetXMLParser({hasAttributes:!0});try{t.parseFromString(e["xdp:xdp"])}catch(e){}this.node=t.node}}getValue(e){if(!this.node||!e)return"";const t=this.node.searchNode((0,n.parseXFAPath)(e),0);if(!t)return"";const a=t.firstChild;return a&&"value"===a.nodeName?t.children.map((e=>decodeString(e.textContent))):decodeString(t.textContent)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XRef=void 0;var r=a(2),n=a(5),i=a(8),s=a(27),o=a(9),c=a(75);t.XRef=class XRef{constructor(e,t){this.stream=e;this.pdfManager=t;this.entries=[];this.xrefstms=Object.create(null);this._cacheMap=new Map;this._pendingRefs=new n.RefSet;this.stats=new i.DocStats(t.msgHandler);this._newRefNum=null}getNewRef(){null===this._newRefNum&&(this._newRefNum=this.entries.length);return n.Ref.get(this._newRefNum++,0)}resetNewRef(){this._newRefNum=null}setStartXRef(e){this.startXRefQueue=[e]}parse(e=!1){let t,a,s;if(e){(0,r.warn)("Indexing all PDF objects");t=this.indexObjects()}else t=this.readXRef();t.assignXref(this);this.trailer=t;try{a=t.get("Encrypt")}catch(e){if(e instanceof i.MissingDataException)throw e;(0,r.warn)(`XRef.parse - Invalid "Encrypt" reference: "${e}".`)}if(a instanceof n.Dict){const e=t.get("ID"),r=e&&e.length?e[0]:"";a.suppressEncryption=!0;this.encrypt=new c.CipherTransformFactory(a,r,this.pdfManager.password)}try{s=t.get("Root")}catch(e){if(e instanceof i.MissingDataException)throw e;(0,r.warn)(`XRef.parse - Invalid "Root" reference: "${e}".`)}if(s instanceof n.Dict)try{if(s.get("Pages")instanceof n.Dict){this.root=s;return}}catch(e){if(e instanceof i.MissingDataException)throw e;(0,r.warn)(`XRef.parse - Invalid "Pages" reference: "${e}".`)}if(!e)throw new i.XRefParseException;throw new r.InvalidPDFException("Invalid Root reference.")}processXRefTable(e){"tableState"in this||(this.tableState={entryNum:0,streamPos:e.lexer.stream.pos,parserBuf1:e.buf1,parserBuf2:e.buf2});const t=this.readXRefTable(e);if(!(0,n.isCmd)(t,"trailer"))throw new r.FormatError("Invalid XRef table: could not find trailer dictionary");let a=e.getObj();a instanceof n.Dict||!a.dict||(a=a.dict);if(!(a instanceof n.Dict))throw new r.FormatError("Invalid XRef table: could not parse trailer dictionary");delete this.tableState;return a}readXRefTable(e){const t=e.lexer.stream,a=this.tableState;t.pos=a.streamPos;e.buf1=a.parserBuf1;e.buf2=a.parserBuf2;let i;for(;;){if(!("firstEntryNum"in a)||!("entryCount"in a)){if((0,n.isCmd)(i=e.getObj(),"trailer"))break;a.firstEntryNum=i;a.entryCount=e.getObj()}let s=a.firstEntryNum;const o=a.entryCount;if(!Number.isInteger(s)||!Number.isInteger(o))throw new r.FormatError("Invalid XRef table: wrong types in subsection header");for(let i=a.entryNum;i0;){const[o,c]=s;if(!Number.isInteger(o)||!Number.isInteger(c))throw new r.FormatError(`Invalid XRef range fields: ${o}, ${c}`);if(!Number.isInteger(a)||!Number.isInteger(n)||!Number.isInteger(i))throw new r.FormatError(`Invalid XRef entry fields length: ${o}, ${c}`);for(let s=t.entryNum;s=e.length);){a+=String.fromCharCode(r);r=e[t]}return a}function skipUntil(e,t,a){const r=a.length,n=e.length;let i=0;for(;t=r)break;t++;i++}return i}const e=/^(\d+)\s+(\d+)\s+obj\b/,t=/\bendobj[\b\s]$/,a=/\s+(\d+\s+\d+\s+obj[\b\s<])$/,o=new Uint8Array([116,114,97,105,108,101,114]),c=new Uint8Array([115,116,97,114,116,120,114,101,102]),l=new Uint8Array([111,98,106]),h=new Uint8Array([47,88,82,101,102]);this.entries.length=0;this._cacheMap.clear();const u=this.stream;u.pos=0;const d=u.getBytes(),f=d.length;let g=u.start;const p=[],m=[];for(;g=f)break;n=d[g]}while(10!==n&&13!==n);continue}const b=readToken(d,g);let y;if(b.startsWith("xref")&&(4===b.length||/\s/.test(b[4]))){g+=skipUntil(d,g,o);p.push(g);g+=skipUntil(d,g,c)}else if(y=e.exec(b)){const e=0|y[1],n=0|y[2];let o,c=g+b.length,f=!1;if(this.entries[e]){if(this.entries[e].gen===n)try{new s.Parser({lexer:new s.Lexer(u.makeSubStream(c))}).getObj();f=!0}catch(e){e instanceof i.ParserEOFException?(0,r.warn)(`indexObjects -- checking object (${b}): "${e}".`):f=!0}}else f=!0;f&&(this.entries[e]={offset:g-u.start,gen:n,uncompressed:!0});for(;c{Object.defineProperty(t,"__esModule",{value:!0});t.MessageHandler=void 0;var r=a(2);const n=1,i=2,s=1,o=2,c=3,l=4,h=5,u=6,d=7,f=8;function wrapReason(e){e instanceof Error||"object"==typeof e&&null!==e||(0,r.unreachable)('wrapReason: Expected "reason" to be a (possibly cloned) Error.');switch(e.name){case"AbortException":return new r.AbortException(e.message);case"MissingPDFException":return new r.MissingPDFException(e.message);case"PasswordException":return new r.PasswordException(e.message,e.code);case"UnexpectedResponseException":return new r.UnexpectedResponseException(e.message,e.status);case"UnknownErrorException":return new r.UnknownErrorException(e.message,e.details);default:return new r.UnknownErrorException(e.message,e.toString())}}t.MessageHandler=class MessageHandler{constructor(e,t,a){this.sourceName=e;this.targetName=t;this.comObj=a;this.callbackId=1;this.streamId=1;this.streamSinks=Object.create(null);this.streamControllers=Object.create(null);this.callbackCapabilities=Object.create(null);this.actionHandler=Object.create(null);this._onComObjOnMessage=e=>{const t=e.data;if(t.targetName!==this.sourceName)return;if(t.stream){this._processStreamMessage(t);return}if(t.callback){const e=t.callbackId,a=this.callbackCapabilities[e];if(!a)throw new Error(`Cannot resolve callback ${e}`);delete this.callbackCapabilities[e];if(t.callback===n)a.resolve(t.data);else{if(t.callback!==i)throw new Error("Unexpected callback case");a.reject(wrapReason(t.reason))}return}const r=this.actionHandler[t.action];if(!r)throw new Error(`Unknown action from worker: ${t.action}`);if(t.callbackId){const e=this.sourceName,s=t.sourceName;new Promise((function(e){e(r(t.data))})).then((function(r){a.postMessage({sourceName:e,targetName:s,callback:n,callbackId:t.callbackId,data:r})}),(function(r){a.postMessage({sourceName:e,targetName:s,callback:i,callbackId:t.callbackId,reason:wrapReason(r)})}))}else t.streamId?this._createStreamSink(t):r(t.data)};a.addEventListener("message",this._onComObjOnMessage)}on(e,t){const a=this.actionHandler;if(a[e])throw new Error(`There is already an actionName called "${e}"`);a[e]=t}send(e,t,a){this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:e,data:t},a)}sendWithPromise(e,t,a){const n=this.callbackId++,i=(0,r.createPromiseCapability)();this.callbackCapabilities[n]=i;try{this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:e,callbackId:n,data:t},a)}catch(e){i.reject(e)}return i.promise}sendWithStream(e,t,a,n){const i=this.streamId++,o=this.sourceName,c=this.targetName,l=this.comObj;return new ReadableStream({start:a=>{const s=(0,r.createPromiseCapability)();this.streamControllers[i]={controller:a,startCall:s,pullCall:null,cancelCall:null,isClosed:!1};l.postMessage({sourceName:o,targetName:c,action:e,streamId:i,data:t,desiredSize:a.desiredSize},n);return s.promise},pull:e=>{const t=(0,r.createPromiseCapability)();this.streamControllers[i].pullCall=t;l.postMessage({sourceName:o,targetName:c,stream:u,streamId:i,desiredSize:e.desiredSize});return t.promise},cancel:e=>{(0,r.assert)(e instanceof Error,"cancel must have a valid reason");const t=(0,r.createPromiseCapability)();this.streamControllers[i].cancelCall=t;this.streamControllers[i].isClosed=!0;l.postMessage({sourceName:o,targetName:c,stream:s,streamId:i,reason:wrapReason(e)});return t.promise}},a)}_createStreamSink(e){const t=e.streamId,a=this.sourceName,n=e.sourceName,i=this.comObj,s=this,o=this.actionHandler[e.action],u={enqueue(e,s=1,o){if(this.isCancelled)return;const c=this.desiredSize;this.desiredSize-=s;if(c>0&&this.desiredSize<=0){this.sinkCapability=(0,r.createPromiseCapability)();this.ready=this.sinkCapability.promise}i.postMessage({sourceName:a,targetName:n,stream:l,streamId:t,chunk:e},o)},close(){if(!this.isCancelled){this.isCancelled=!0;i.postMessage({sourceName:a,targetName:n,stream:c,streamId:t});delete s.streamSinks[t]}},error(e){(0,r.assert)(e instanceof Error,"error must have a valid reason");if(!this.isCancelled){this.isCancelled=!0;i.postMessage({sourceName:a,targetName:n,stream:h,streamId:t,reason:wrapReason(e)})}},sinkCapability:(0,r.createPromiseCapability)(),onPull:null,onCancel:null,isCancelled:!1,desiredSize:e.desiredSize,ready:null};u.sinkCapability.resolve();u.ready=u.sinkCapability.promise;this.streamSinks[t]=u;new Promise((function(t){t(o(e.data,u))})).then((function(){i.postMessage({sourceName:a,targetName:n,stream:f,streamId:t,success:!0})}),(function(e){i.postMessage({sourceName:a,targetName:n,stream:f,streamId:t,reason:wrapReason(e)})}))}_processStreamMessage(e){const t=e.streamId,a=this.sourceName,n=e.sourceName,i=this.comObj,g=this.streamControllers[t],p=this.streamSinks[t];switch(e.stream){case f:e.success?g.startCall.resolve():g.startCall.reject(wrapReason(e.reason));break;case d:e.success?g.pullCall.resolve():g.pullCall.reject(wrapReason(e.reason));break;case u:if(!p){i.postMessage({sourceName:a,targetName:n,stream:d,streamId:t,success:!0});break}p.desiredSize<=0&&e.desiredSize>0&&p.sinkCapability.resolve();p.desiredSize=e.desiredSize;new Promise((function(e){e(p.onPull&&p.onPull())})).then((function(){i.postMessage({sourceName:a,targetName:n,stream:d,streamId:t,success:!0})}),(function(e){i.postMessage({sourceName:a,targetName:n,stream:d,streamId:t,reason:wrapReason(e)})}));break;case l:(0,r.assert)(g,"enqueue should have stream controller");if(g.isClosed)break;g.controller.enqueue(e.chunk);break;case c:(0,r.assert)(g,"close should have stream controller");if(g.isClosed)break;g.isClosed=!0;g.controller.close();this._deleteStreamController(g,t);break;case h:(0,r.assert)(g,"error should have stream controller");g.controller.error(wrapReason(e.reason));this._deleteStreamController(g,t);break;case o:e.success?g.cancelCall.resolve():g.cancelCall.reject(wrapReason(e.reason));this._deleteStreamController(g,t);break;case s:if(!p)break;new Promise((function(t){t(p.onCancel&&p.onCancel(wrapReason(e.reason)))})).then((function(){i.postMessage({sourceName:a,targetName:n,stream:o,streamId:t,success:!0})}),(function(e){i.postMessage({sourceName:a,targetName:n,stream:o,streamId:t,reason:wrapReason(e)})}));p.sinkCapability.reject(wrapReason(e.reason));p.isCancelled=!0;delete this.streamSinks[t];break;default:throw new Error("Unexpected stream case")}}async _deleteStreamController(e,t){await Promise.allSettled([e.startCall&&e.startCall.promise,e.pullCall&&e.pullCall.promise,e.cancelCall&&e.cancelCall.promise]);delete this.streamControllers[t]}destroy(){this.comObj.removeEventListener("message",this._onComObjOnMessage)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.PDFWorkerStream=void 0;var r=a(2);t.PDFWorkerStream=class PDFWorkerStream{constructor(e){this._msgHandler=e;this._contentLength=null;this._fullRequestReader=null;this._rangeRequestReaders=[]}getFullReader(){(0,r.assert)(!this._fullRequestReader,"PDFWorkerStream.getFullReader can only be called once.");this._fullRequestReader=new PDFWorkerStreamReader(this._msgHandler);return this._fullRequestReader}getRangeReader(e,t){const a=new PDFWorkerStreamRangeReader(e,t,this._msgHandler);this._rangeRequestReaders.push(a);return a}cancelAllRequests(e){this._fullRequestReader&&this._fullRequestReader.cancel(e);for(const t of this._rangeRequestReaders.slice(0))t.cancel(e)}};class PDFWorkerStreamReader{constructor(e){this._msgHandler=e;this.onProgress=null;this._contentLength=null;this._isRangeSupported=!1;this._isStreamingSupported=!1;const t=this._msgHandler.sendWithStream("GetReader");this._reader=t.getReader();this._headersReady=this._msgHandler.sendWithPromise("ReaderHeadersReady").then((e=>{this._isStreamingSupported=e.isStreamingSupported;this._isRangeSupported=e.isRangeSupported;this._contentLength=e.contentLength}))}get headersReady(){return this._headersReady}get contentLength(){return this._contentLength}get isStreamingSupported(){return this._isStreamingSupported}get isRangeSupported(){return this._isRangeSupported}async read(){const{value:e,done:t}=await this._reader.read();return t?{value:void 0,done:!0}:{value:e.buffer,done:!1}}cancel(e){this._reader.cancel(e)}}class PDFWorkerStreamRangeReader{constructor(e,t,a){this._msgHandler=a;this.onProgress=null;const r=this._msgHandler.sendWithStream("GetRangeReader",{begin:e,end:t});this._reader=r.getReader()}get isStreamingSupported(){return!1}async read(){const{value:e,done:t}=await this._reader.read();return t?{value:void 0,done:!0}:{value:e.buffer,done:!1}}cancel(e){this._reader.cancel(e)}}}],t={};function __w_pdfjs_require__(a){var r=t[a];if(void 0!==r)return r.exports;var n=t[a]={exports:{}};e[a](n,n.exports,__w_pdfjs_require__);return n.exports}__w_pdfjs_require__.d=(e,t)=>{for(var a in t)__w_pdfjs_require__.o(t,a)&&!__w_pdfjs_require__.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})};__w_pdfjs_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);__w_pdfjs_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});Object.defineProperty(e,"__esModule",{value:!0})};var a={};(()=>{var e=a;Object.defineProperty(e,"__esModule",{value:!0});Object.defineProperty(e,"WorkerMessageHandler",{enumerable:!0,get:function(){return t.WorkerMessageHandler}});var t=__w_pdfjs_require__(1)})();return a})())); \ No newline at end of file +!function webpackUniversalModuleDefinition(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("pdfjs-dist/build/pdf.worker",[],t):"object"==typeof exports?exports["pdfjs-dist/build/pdf.worker"]=t():e["pdfjs-dist/build/pdf.worker"]=e.pdfjsWorker=t()}(this,(()=>(()=>{"use strict";var e=[,(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.WorkerTask=t.WorkerMessageHandler=void 0;var r=a(2),n=a(5),i=a(6),s=a(68),o=a(74),c=a(4),l=a(103),h=a(104),u=a(8);class WorkerTask{constructor(e){this.name=e;this.terminated=!1;this._capability=(0,r.createPromiseCapability)()}get finished(){return this._capability.promise}finish(){this._capability.resolve()}terminate(){this.terminated=!0}ensureNotTerminated(){if(this.terminated)throw new Error("Worker task was terminated")}}t.WorkerTask=WorkerTask;class WorkerMessageHandler{static setup(e,t){let a=!1;e.on("test",(function wphSetupTest(t){if(!a){a=!0;e.send("test",t instanceof Uint8Array)}}));e.on("configure",(function wphConfigure(e){(0,r.setVerbosityLevel)(e.verbosity)}));e.on("GetDocRequest",(function wphSetupDoc(e){return WorkerMessageHandler.createDocumentHandler(e,t)}))}static createDocumentHandler(e,t){let a,d=!1,f=null;const g=[],p=(0,r.getVerbosityLevel)(),m=e.apiVersion,b="2.14.305";if(m!==b)throw new Error(`The API version "${m}" does not match the Worker version "2.14.305".`);const y=[];for(const e in[])y.push(e);if(y.length)throw new Error("The `Array.prototype` contains unexpected enumerable properties: "+y.join(", ")+"; thus breaking e.g. `for...in` iteration of `Array`s.");if("undefined"==typeof ReadableStream){const e="The browser/environment lacks native support for critical functionality used by the PDF.js library (e.g. `ReadableStream`); ";if(c.isNodeJS)throw new Error(e+"please use a `legacy`-build instead.");throw new Error(e+"please update to a supported browser.")}const w=e.docId,S=e.docBaseUrl,x=e.docId+"_worker";let k=new l.MessageHandler(x,w,t);function ensureNotTerminated(){if(d)throw new Error("Worker was terminated")}function startWorkerTask(e){g.push(e)}function finishWorkerTask(e){e.finish();const t=g.indexOf(e);g.splice(t,1)}async function loadDocument(e){await a.ensureDoc("checkHeader");await a.ensureDoc("parseStartXRef");await a.ensureDoc("parse",[e]);await a.ensureDoc("checkFirstPage",[e]);await a.ensureDoc("checkLastPage",[e]);const t=await a.ensureDoc("isPureXfa");if(t){const e=new WorkerTask("loadXfaFonts");startWorkerTask(e);await Promise.all([a.loadXfaFonts(k,e).catch((e=>{})).then((()=>finishWorkerTask(e))),a.loadXfaImages()])}const[r,n,i]=await Promise.all([a.ensureDoc("numPages"),a.ensureDoc("fingerprints"),a.ensureDoc("structureTree")]);return{numPages:r,fingerprints:n,htmlForXfa:t?await a.ensureDoc("htmlForXfa"):null,structureTree:i}}function getPdfManager(e,t,a){const n=(0,r.createPromiseCapability)();let s;const o=e.source;if(o.data){try{s=new i.LocalPdfManager(w,o.data,o.password,k,t,a,S);n.resolve(s)}catch(e){n.reject(e)}return n.promise}let c,l=[];try{c=new h.PDFWorkerStream(k)}catch(e){n.reject(e);return n.promise}const u=c.getFullReader();u.headersReady.then((function(){if(!u.isRangeSupported)return;const e=o.disableAutoFetch||u.isStreamingSupported;s=new i.NetworkPdfManager(w,c,{msgHandler:k,password:o.password,length:u.contentLength,disableAutoFetch:e,rangeChunkSize:o.rangeChunkSize},t,a,S);for(let e=0;enull!==e)).reduce(((e,t)=>e.concat(t)),u);if(0===u.length)return t.bytes}const f=a instanceof n.Dict&&a.get("XFA")||null;let g=null,p=!1;if(Array.isArray(f)){for(let e=0,t=f.length;e{"string"==typeof a&&(e[t]=(0,r.stringToPDFString)(a))}));m={rootRef:c.trailer.getRaw("Root")||null,encryptRef:c.trailer.getRaw("Encrypt")||null,newRef:c.getNewRef(),infoRef:c.trailer.getRaw("Info")||null,info:e,fileIds:c.trailer.get("ID")||null,startXRef:l,filename:s}}c.resetNewRef();return(0,o.incrementalUpdate)({originalData:t.bytes,xrefInfo:m,newRefs:u,xref:c,hasXfa:!!f,xfaDatasetsRef:g,hasXfaDatasetsEntry:p,acroFormRef:i,acroForm:a,xfaData:d})}))}));k.on("GetOperatorList",(function wphSetupRenderPage(e,t){const n=e.pageIndex;a.getPage(n).then((function(a){const i=new WorkerTask(`GetOperatorList: page ${n}`);startWorkerTask(i);const s=p>=r.VerbosityLevel.INFOS?Date.now():0;a.getOperatorList({handler:k,sink:t,task:i,intent:e.intent,cacheKey:e.cacheKey,annotationStorage:e.annotationStorage}).then((function(e){finishWorkerTask(i);s&&(0,r.info)(`page=${n+1} - getOperatorList: time=${Date.now()-s}ms, len=${e.length}`);t.close()}),(function(e){finishWorkerTask(i);if(!i.terminated){k.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorOperatorList});t.error(e)}}))}))}));k.on("GetTextContent",(function wphExtractText(e,t){const n=e.pageIndex;a.getPage(n).then((function(a){const i=new WorkerTask("GetTextContent: page "+n);startWorkerTask(i);const s=p>=r.VerbosityLevel.INFOS?Date.now():0;a.extractTextContent({handler:k,task:i,sink:t,includeMarkedContent:e.includeMarkedContent,combineTextItems:e.combineTextItems}).then((function(){finishWorkerTask(i);s&&(0,r.info)(`page=${n+1} - getTextContent: time=`+(Date.now()-s)+"ms");t.close()}),(function(e){finishWorkerTask(i);i.terminated||t.error(e)}))}))}));k.on("GetStructTree",(function wphGetStructTree(e){return a.getPage(e.pageIndex).then((function(e){return a.ensure(e,"getStructTree")}))}));k.on("FontFallback",(function(e){return a.fontFallback(e.id,k)}));k.on("Cleanup",(function wphCleanup(e){return a.cleanup(!0)}));k.on("Terminate",(function wphTerminate(e){d=!0;const t=[];if(a){a.terminate(new r.AbortException("Worker was terminated."));const e=a.cleanup();t.push(e);a=null}else(0,s.clearGlobalCaches)();f&&f(new r.AbortException("Worker was terminated."));for(const e of g){t.push(e.finished);e.terminate()}return Promise.all(t).then((function(){k.destroy();k=null}))}));k.on("Ready",(function wphReady(t){!function setupDoc(e){function onSuccess(e){ensureNotTerminated();k.send("GetDoc",{pdfInfo:e})}function onFailure(e){ensureNotTerminated();if(e instanceof r.PasswordException){const t=new WorkerTask(`PasswordException: response ${e.code}`);startWorkerTask(t);k.sendWithPromise("PasswordRequest",e).then((function({password:e}){finishWorkerTask(t);a.updatePassword(e);pdfManagerReady()})).catch((function(){finishWorkerTask(t);k.send("DocException",e)}))}else e instanceof r.InvalidPDFException||e instanceof r.MissingPDFException||e instanceof r.UnexpectedResponseException||e instanceof r.UnknownErrorException?k.send("DocException",e):k.send("DocException",new r.UnknownErrorException(e.message,e.toString()))}function pdfManagerReady(){ensureNotTerminated();loadDocument(!1).then(onSuccess,(function(e){ensureNotTerminated();if(e instanceof u.XRefParseException){a.requestLoadedStream();a.onLoadedStream().then((function(){ensureNotTerminated();loadDocument(!0).then(onSuccess,onFailure)}))}else onFailure(e)}))}ensureNotTerminated();getPdfManager(e,{maxImageSize:e.maxImageSize,disableFontFace:e.disableFontFace,ignoreErrors:e.ignoreErrors,isEvalSupported:e.isEvalSupported,fontExtraProperties:e.fontExtraProperties,useSystemFonts:e.useSystemFonts,cMapUrl:e.cMapUrl,standardFontDataUrl:e.standardFontDataUrl},e.enableXfa).then((function(e){if(d){e.terminate(new r.AbortException("Worker was terminated."));throw new Error("Worker was terminated")}a=e;a.onLoadedStream().then((function(e){k.send("DataLoaded",{length:e.bytes.byteLength})}))})).then(pdfManagerReady,onFailure)}(e);e=null}));return x}static initializeFromPort(e){const t=new l.MessageHandler("worker","main",e);WorkerMessageHandler.setup(t,e);t.send("ready",null)}}t.WorkerMessageHandler=WorkerMessageHandler;"undefined"==typeof window&&!c.isNodeJS&&"undefined"!=typeof self&&function isMessagePort(e){return"function"==typeof e.postMessage&&"onmessage"in e}(self)&&WorkerMessageHandler.initializeFromPort(self)},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.VerbosityLevel=t.Util=t.UnknownErrorException=t.UnexpectedResponseException=t.UNSUPPORTED_FEATURES=t.TextRenderingMode=t.StreamType=t.RenderingIntentFlag=t.PermissionFlag=t.PasswordResponses=t.PasswordException=t.PageActionEventType=t.OPS=t.MissingPDFException=t.InvalidPDFException=t.ImageKind=t.IDENTITY_MATRIX=t.FormatError=t.FontType=t.FeatureTest=t.FONT_IDENTITY_MATRIX=t.DocumentActionEventType=t.CMapCompressionType=t.BaseException=t.AnnotationType=t.AnnotationStateModelType=t.AnnotationReviewState=t.AnnotationReplyType=t.AnnotationMode=t.AnnotationMarkedState=t.AnnotationFlag=t.AnnotationFieldFlag=t.AnnotationBorderStyleType=t.AnnotationActionEventType=t.AbortException=void 0;t.arrayByteLength=arrayByteLength;t.arraysToBytes=function arraysToBytes(e){const t=e.length;if(1===t&&e[0]instanceof Uint8Array)return e[0];let a=0;for(let r=0;rt});e.promise=new Promise((function(a,r){e.resolve=function(e){t=!0;a(e)};e.reject=function(e){t=!0;r(e)}}));return e};t.createValidAbsoluteUrl=function createValidAbsoluteUrl(e,t=null,a=null){if(!e)return null;try{if(a&&"string"==typeof e){if(a.addDefaultProtocol&&e.startsWith("www.")){const t=e.match(/\./g);t&&t.length>=2&&(e=`http://${e}`)}if(a.tryConvertEncoding)try{e=stringToUTF8String(e)}catch(e){}}const r=t?new URL(e,t):new URL(e);if(function _isValidProtocol(e){if(!e)return!1;switch(e.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}(r))return r}catch(e){}return null};t.escapeString=function escapeString(e){return e.replace(/([()\\\n\r])/g,(e=>"\n"===e?"\\n":"\r"===e?"\\r":`\\${e}`))};t.getModificationDate=function getModificationDate(e=new Date){return[e.getUTCFullYear().toString(),(e.getUTCMonth()+1).toString().padStart(2,"0"),e.getUTCDate().toString().padStart(2,"0"),e.getUTCHours().toString().padStart(2,"0"),e.getUTCMinutes().toString().padStart(2,"0"),e.getUTCSeconds().toString().padStart(2,"0")].join("")};t.getVerbosityLevel=function getVerbosityLevel(){return n};t.info=function info(e){n>=r.INFOS&&console.log(`Info: ${e}`)};t.isArrayBuffer=function isArrayBuffer(e){return"object"==typeof e&&null!==e&&void 0!==e.byteLength};t.isArrayEqual=function isArrayEqual(e,t){if(e.length!==t.length)return!1;for(let a=0,r=e.length;a>24&255,e>>16&255,e>>8&255,255&e)};t.stringToBytes=stringToBytes;t.stringToPDFString=function stringToPDFString(e){if(e[0]>="ï"){let t;"þ"===e[0]&&"ÿ"===e[1]?t="utf-16be":"ÿ"===e[0]&&"þ"===e[1]?t="utf-16le":"ï"===e[0]&&"»"===e[1]&&"¿"===e[2]&&(t="utf-8");if(t)try{const a=new TextDecoder(t,{fatal:!0}),r=stringToBytes(e);return a.decode(r)}catch(e){warn(`stringToPDFString: "${e}".`)}}const t=[];for(let a=0,r=e.length;a>8&255),String.fromCharCode(255&r))}return t.join("")};t.stringToUTF8String=stringToUTF8String;t.unreachable=unreachable;t.utf8StringToString=function utf8StringToString(e){return unescape(encodeURIComponent(e))};t.warn=warn;a(3);t.IDENTITY_MATRIX=[1,0,0,1,0,0];t.FONT_IDENTITY_MATRIX=[.001,0,0,.001,0,0];t.RenderingIntentFlag={ANY:1,DISPLAY:2,PRINT:4,ANNOTATIONS_FORMS:16,ANNOTATIONS_STORAGE:32,ANNOTATIONS_DISABLE:64,OPLIST:256};t.AnnotationMode={DISABLE:0,ENABLE:1,ENABLE_FORMS:2,ENABLE_STORAGE:3};t.PermissionFlag={PRINT:4,MODIFY_CONTENTS:8,COPY:16,MODIFY_ANNOTATIONS:32,FILL_INTERACTIVE_FORMS:256,COPY_FOR_ACCESSIBILITY:512,ASSEMBLE:1024,PRINT_HIGH_QUALITY:2048};t.TextRenderingMode={FILL:0,STROKE:1,FILL_STROKE:2,INVISIBLE:3,FILL_ADD_TO_PATH:4,STROKE_ADD_TO_PATH:5,FILL_STROKE_ADD_TO_PATH:6,ADD_TO_PATH:7,FILL_STROKE_MASK:3,ADD_TO_PATH_FLAG:4};t.ImageKind={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3};t.AnnotationType={TEXT:1,LINK:2,FREETEXT:3,LINE:4,SQUARE:5,CIRCLE:6,POLYGON:7,POLYLINE:8,HIGHLIGHT:9,UNDERLINE:10,SQUIGGLY:11,STRIKEOUT:12,STAMP:13,CARET:14,INK:15,POPUP:16,FILEATTACHMENT:17,SOUND:18,MOVIE:19,WIDGET:20,SCREEN:21,PRINTERMARK:22,TRAPNET:23,WATERMARK:24,THREED:25,REDACT:26};t.AnnotationStateModelType={MARKED:"Marked",REVIEW:"Review"};t.AnnotationMarkedState={MARKED:"Marked",UNMARKED:"Unmarked"};t.AnnotationReviewState={ACCEPTED:"Accepted",REJECTED:"Rejected",CANCELLED:"Cancelled",COMPLETED:"Completed",NONE:"None"};t.AnnotationReplyType={GROUP:"Group",REPLY:"R"};t.AnnotationFlag={INVISIBLE:1,HIDDEN:2,PRINT:4,NOZOOM:8,NOROTATE:16,NOVIEW:32,READONLY:64,LOCKED:128,TOGGLENOVIEW:256,LOCKEDCONTENTS:512};t.AnnotationFieldFlag={READONLY:1,REQUIRED:2,NOEXPORT:4,MULTILINE:4096,PASSWORD:8192,NOTOGGLETOOFF:16384,RADIO:32768,PUSHBUTTON:65536,COMBO:131072,EDIT:262144,SORT:524288,FILESELECT:1048576,MULTISELECT:2097152,DONOTSPELLCHECK:4194304,DONOTSCROLL:8388608,COMB:16777216,RICHTEXT:33554432,RADIOSINUNISON:33554432,COMMITONSELCHANGE:67108864};t.AnnotationBorderStyleType={SOLID:1,DASHED:2,BEVELED:3,INSET:4,UNDERLINE:5};t.AnnotationActionEventType={E:"Mouse Enter",X:"Mouse Exit",D:"Mouse Down",U:"Mouse Up",Fo:"Focus",Bl:"Blur",PO:"PageOpen",PC:"PageClose",PV:"PageVisible",PI:"PageInvisible",K:"Keystroke",F:"Format",V:"Validate",C:"Calculate"};t.DocumentActionEventType={WC:"WillClose",WS:"WillSave",DS:"DidSave",WP:"WillPrint",DP:"DidPrint"};t.PageActionEventType={O:"PageOpen",C:"PageClose"};t.StreamType={UNKNOWN:"UNKNOWN",FLATE:"FLATE",LZW:"LZW",DCT:"DCT",JPX:"JPX",JBIG:"JBIG",A85:"A85",AHX:"AHX",CCF:"CCF",RLX:"RLX"};t.FontType={UNKNOWN:"UNKNOWN",TYPE1:"TYPE1",TYPE1STANDARD:"TYPE1STANDARD",TYPE1C:"TYPE1C",CIDFONTTYPE0:"CIDFONTTYPE0",CIDFONTTYPE0C:"CIDFONTTYPE0C",TRUETYPE:"TRUETYPE",CIDFONTTYPE2:"CIDFONTTYPE2",TYPE3:"TYPE3",OPENTYPE:"OPENTYPE",TYPE0:"TYPE0",MMTYPE1:"MMTYPE1"};const r={ERRORS:0,WARNINGS:1,INFOS:5};t.VerbosityLevel=r;t.CMapCompressionType={NONE:0,BINARY:1,STREAM:2};t.OPS={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotations:78,endAnnotations:79,beginAnnotation:80,endAnnotation:81,paintJpegXObject:82,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91,boundingBoxes:100,operationPosition:101};t.UNSUPPORTED_FEATURES={unknown:"unknown",forms:"forms",javaScript:"javaScript",signatures:"signatures",smask:"smask",shadingPattern:"shadingPattern",font:"font",errorTilingPattern:"errorTilingPattern",errorExtGState:"errorExtGState",errorXObject:"errorXObject",errorFontLoadType3:"errorFontLoadType3",errorFontState:"errorFontState",errorFontMissing:"errorFontMissing",errorFontTranslate:"errorFontTranslate",errorColorSpace:"errorColorSpace",errorOperatorList:"errorOperatorList",errorFontToUnicode:"errorFontToUnicode",errorFontLoadNative:"errorFontLoadNative",errorFontBuildPath:"errorFontBuildPath",errorFontGetPath:"errorFontGetPath",errorMarkedContent:"errorMarkedContent",errorContentSubStream:"errorContentSubStream"};t.PasswordResponses={NEED_PASSWORD:1,INCORRECT_PASSWORD:2};let n=r.WARNINGS;function warn(e){n>=r.WARNINGS&&console.log(`Warning: ${e}`)}function unreachable(e){throw new Error(e)}function shadow(e,t,a){Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!1});return a}const i=function BaseExceptionClosure(){function BaseException(e,t){this.constructor===BaseException&&unreachable("Cannot initialize BaseException.");this.message=e;this.name=t}BaseException.prototype=new Error;BaseException.constructor=BaseException;return BaseException}();t.BaseException=i;t.PasswordException=class PasswordException extends i{constructor(e,t){super(e,"PasswordException");this.code=t}};t.UnknownErrorException=class UnknownErrorException extends i{constructor(e,t){super(e,"UnknownErrorException");this.details=t}};t.InvalidPDFException=class InvalidPDFException extends i{constructor(e){super(e,"InvalidPDFException")}};t.MissingPDFException=class MissingPDFException extends i{constructor(e){super(e,"MissingPDFException")}};t.UnexpectedResponseException=class UnexpectedResponseException extends i{constructor(e,t){super(e,"UnexpectedResponseException");this.status=t}};t.FormatError=class FormatError extends i{constructor(e){super(e,"FormatError")}};t.AbortException=class AbortException extends i{constructor(e){super(e,"AbortException")}};function stringToBytes(e){"string"!=typeof e&&unreachable("Invalid argument for stringToBytes");const t=e.length,a=new Uint8Array(t);for(let r=0;re.toString(16).padStart(2,"0")));class Util{static makeHexColor(e,t,a){return`#${s[e]}${s[t]}${s[a]}`}static scaleMinMax(e,t){let a;if(e[0]){if(e[0]<0){a=t[0];t[0]=t[1];t[1]=a}t[0]*=e[0];t[1]*=e[0];if(e[3]<0){a=t[2];t[2]=t[3];t[3]=a}t[2]*=e[3];t[3]*=e[3]}else{a=t[0];t[0]=t[2];t[2]=a;a=t[1];t[1]=t[3];t[3]=a;if(e[1]<0){a=t[2];t[2]=t[3];t[3]=a}t[2]*=e[1];t[3]*=e[1];if(e[2]<0){a=t[0];t[0]=t[1];t[1]=a}t[0]*=e[2];t[1]*=e[2]}t[0]+=e[4];t[1]+=e[4];t[2]+=e[5];t[3]+=e[5]}static transform(e,t){return[e[0]*t[0]+e[2]*t[1],e[1]*t[0]+e[3]*t[1],e[0]*t[2]+e[2]*t[3],e[1]*t[2]+e[3]*t[3],e[0]*t[4]+e[2]*t[5]+e[4],e[1]*t[4]+e[3]*t[5]+e[5]]}static applyTransform(e,t){return[e[0]*t[0]+e[1]*t[2]+t[4],e[0]*t[1]+e[1]*t[3]+t[5]]}static applyInverseTransform(e,t){const a=t[0]*t[3]-t[1]*t[2];return[(e[0]*t[3]-e[1]*t[2]+t[2]*t[5]-t[4]*t[3])/a,(-e[0]*t[1]+e[1]*t[0]+t[4]*t[1]-t[5]*t[0])/a]}static getAxialAlignedBoundingBox(e,t){const a=Util.applyTransform(e,t),r=Util.applyTransform(e.slice(2,4),t),n=Util.applyTransform([e[0],e[3]],t),i=Util.applyTransform([e[2],e[1]],t);return[Math.min(a[0],r[0],n[0],i[0]),Math.min(a[1],r[1],n[1],i[1]),Math.max(a[0],r[0],n[0],i[0]),Math.max(a[1],r[1],n[1],i[1])]}static inverseTransform(e){const t=e[0]*e[3]-e[1]*e[2];return[e[3]/t,-e[1]/t,-e[2]/t,e[0]/t,(e[2]*e[5]-e[4]*e[3])/t,(e[4]*e[1]-e[5]*e[0])/t]}static apply3dTransform(e,t){return[e[0]*t[0]+e[1]*t[1]+e[2]*t[2],e[3]*t[0]+e[4]*t[1]+e[5]*t[2],e[6]*t[0]+e[7]*t[1]+e[8]*t[2]]}static singularValueDecompose2dScale(e){const t=[e[0],e[2],e[1],e[3]],a=e[0]*t[0]+e[1]*t[2],r=e[0]*t[1]+e[1]*t[3],n=e[2]*t[0]+e[3]*t[2],i=e[2]*t[1]+e[3]*t[3],s=(a+i)/2,o=Math.sqrt((a+i)**2-4*(a*i-n*r))/2,c=s+o||1,l=s-o||1;return[Math.sqrt(c),Math.sqrt(l)]}static normalizeRect(e){const t=e.slice(0);if(e[0]>e[2]){t[0]=e[2];t[2]=e[0]}if(e[1]>e[3]){t[1]=e[3];t[3]=e[1]}return t}static intersect(e,t){const a=Math.max(Math.min(e[0],e[2]),Math.min(t[0],t[2])),r=Math.min(Math.max(e[0],e[2]),Math.max(t[0],t[2]));if(a>r)return null;const n=Math.max(Math.min(e[1],e[3]),Math.min(t[1],t[3])),i=Math.min(Math.max(e[1],e[3]),Math.max(t[1],t[3]));return n>i?null:[a,n,r,i]}static bezierBoundingBox(e,t,a,r,n,i,s,o){const c=[],l=[[],[]];let h,u,d,f,g,p,m,b;for(let l=0;l<2;++l){if(0===l){u=6*e-12*a+6*n;h=-3*e+9*a-9*n+3*s;d=3*a-3*e}else{u=6*t-12*r+6*i;h=-3*t+9*r-9*i+3*o;d=3*r-3*t}if(Math.abs(h)<1e-12){if(Math.abs(u)<1e-12)continue;f=-d/u;0{a(4)},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.isNodeJS=void 0;const a=!("object"!=typeof process||process+""!="[object process]"||process.versions.nw||process.versions.electron&&process.type&&"browser"!==process.type);t.isNodeJS=a},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.RefSetCache=t.RefSet=t.Ref=t.Name=t.EOF=t.Dict=t.Cmd=t.CIRCULAR_REF=void 0;t.clearPrimitiveCaches=function clearPrimitiveCaches(){o._clearCache();s._clearCache();l._clearCache()};t.isCmd=function isCmd(e,t){return e instanceof o&&(void 0===t||e.cmd===t)};t.isDict=function isDict(e,t){return e instanceof Dict&&(void 0===t||isName(e.get("Type"),t))};t.isName=isName;t.isRefsEqual=function isRefsEqual(e,t){return e.num===t.num&&e.gen===t.gen};var r=a(2);const n=Symbol("CIRCULAR_REF");t.CIRCULAR_REF=n;const i=Symbol("EOF");t.EOF=i;const s=function NameClosure(){let e=Object.create(null);class Name{constructor(e){this.name=e}static get(t){const a=e[t];return a||(e[t]=new Name(t))}static _clearCache(){e=Object.create(null)}}return Name}();t.Name=s;const o=function CmdClosure(){let e=Object.create(null);class Cmd{constructor(e){this.cmd=e}static get(t){const a=e[t];return a||(e[t]=new Cmd(t))}static _clearCache(){e=Object.create(null)}}return Cmd}();t.Cmd=o;const c=function nonSerializableClosure(){return c};class Dict{constructor(e=null){this._map=Object.create(null);this.xref=e;this.objId=null;this.suppressEncryption=!1;this.__nonSerializable__=c}assignXref(e){this.xref=e}get size(){return Object.keys(this._map).length}get(e,t,a){let r=this._map[e];if(void 0===r&&void 0!==t){r=this._map[t];void 0===r&&void 0!==a&&(r=this._map[a])}return r instanceof l&&this.xref?this.xref.fetch(r,this.suppressEncryption):r}async getAsync(e,t,a){let r=this._map[e];if(void 0===r&&void 0!==t){r=this._map[t];void 0===r&&void 0!==a&&(r=this._map[a])}return r instanceof l&&this.xref?this.xref.fetchAsync(r,this.suppressEncryption):r}getArray(e,t,a){let r=this._map[e];if(void 0===r&&void 0!==t){r=this._map[t];void 0===r&&void 0!==a&&(r=this._map[a])}r instanceof l&&this.xref&&(r=this.xref.fetch(r,this.suppressEncryption));if(Array.isArray(r)){r=r.slice();for(let e=0,t=r.length;e{(0,r.unreachable)("Should not call `set` on the empty dictionary.")};return(0,r.shadow)(this,"empty",e)}static merge({xref:e,dictArray:t,mergeSubDicts:a=!1}){const r=new Dict(e),n=new Map;for(const e of t)if(e instanceof Dict)for(const[t,r]of Object.entries(e._map)){let e=n.get(t);if(void 0===e){e=[];n.set(t,e)}else if(!(a&&r instanceof Dict))continue;e.push(r)}for(const[t,a]of n){if(1===a.length||!(a[0]instanceof Dict)){r._map[t]=a[0];continue}const n=new Dict(e);for(const e of a)for(const[t,a]of Object.entries(e._map))void 0===n._map[t]&&(n._map[t]=a);n.size>0&&(r._map[t]=n)}n.clear();return r.size>0?r:Dict.empty}}t.Dict=Dict;const l=function RefClosure(){let e=Object.create(null);class Ref{constructor(e,t){this.num=e;this.gen=t}toString(){return 0===this.gen?`${this.num}R`:`${this.num}R${this.gen}`}static get(t,a){const r=0===a?`${t}R`:`${t}R${a}`,n=e[r];return n||(e[r]=new Ref(t,a))}static _clearCache(){e=Object.create(null)}}return Ref}();t.Ref=l;class RefSet{constructor(e=null){this._set=new Set(e&&e._set)}has(e){return this._set.has(e.toString())}put(e){this._set.add(e.toString())}remove(e){this._set.delete(e.toString())}[Symbol.iterator](){return this._set.values()}clear(){this._set.clear()}}t.RefSet=RefSet;class RefSetCache{constructor(){this._map=new Map}get size(){return this._map.size}get(e){return this._map.get(e.toString())}has(e){return this._map.has(e.toString())}put(e,t){this._map.set(e.toString(),t)}putAlias(e,t){this._map.set(e.toString(),this.get(t))}[Symbol.iterator](){return this._map.values()}clear(){this._map.clear()}}t.RefSetCache=RefSetCache;function isName(e,t){return e instanceof s&&(void 0===t||e.name===t)}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.NetworkPdfManager=t.LocalPdfManager=void 0;var r=a(2),n=a(7),i=a(8),s=a(11),o=a(10);function parseDocBaseUrl(e){if(e){const t=(0,r.createValidAbsoluteUrl)(e);if(t)return t.href;(0,r.warn)(`Invalid absolute docBaseUrl: "${e}".`)}return null}class BasePdfManager{constructor(){this.constructor===BasePdfManager&&(0,r.unreachable)("Cannot initialize BasePdfManager.")}get docId(){return this._docId}get password(){return this._password}get docBaseUrl(){const e=this.pdfDocument.catalog;return(0,r.shadow)(this,"docBaseUrl",e.baseUrl||this._docBaseUrl)}onLoadedStream(){(0,r.unreachable)("Abstract method `onLoadedStream` called")}ensureDoc(e,t){return this.ensure(this.pdfDocument,e,t)}ensureXRef(e,t){return this.ensure(this.pdfDocument.xref,e,t)}ensureCatalog(e,t){return this.ensure(this.pdfDocument.catalog,e,t)}getPage(e){return this.pdfDocument.getPage(e)}fontFallback(e,t){return this.pdfDocument.fontFallback(e,t)}loadXfaFonts(e,t){return this.pdfDocument.loadXfaFonts(e,t)}loadXfaImages(){return this.pdfDocument.loadXfaImages()}serializeXfaData(e){return this.pdfDocument.serializeXfaData(e)}cleanup(e=!1){return this.pdfDocument.cleanup(e)}async ensure(e,t,a){(0,r.unreachable)("Abstract method `ensure` called")}requestRange(e,t){(0,r.unreachable)("Abstract method `requestRange` called")}requestLoadedStream(){(0,r.unreachable)("Abstract method `requestLoadedStream` called")}sendProgressiveData(e){(0,r.unreachable)("Abstract method `sendProgressiveData` called")}updatePassword(e){this._password=e}terminate(e){(0,r.unreachable)("Abstract method `terminate` called")}}t.LocalPdfManager=class LocalPdfManager extends BasePdfManager{constructor(e,t,a,r,n,i,c){super();this._docId=e;this._password=a;this._docBaseUrl=parseDocBaseUrl(c);this.msgHandler=r;this.evaluatorOptions=n;this.enableXfa=i;const l=new o.Stream(t);this.pdfDocument=new s.PDFDocument(this,l);this._loadedStreamPromise=Promise.resolve(l)}async ensure(e,t,a){const r=e[t];return"function"==typeof r?r.apply(e,a):r}requestRange(e,t){return Promise.resolve()}requestLoadedStream(){}onLoadedStream(){return this._loadedStreamPromise}terminate(e){}};t.NetworkPdfManager=class NetworkPdfManager extends BasePdfManager{constructor(e,t,a,r,i,o){super();this._docId=e;this._password=a.password;this._docBaseUrl=parseDocBaseUrl(o);this.msgHandler=a.msgHandler;this.evaluatorOptions=r;this.enableXfa=i;this.streamManager=new n.ChunkedStreamManager(t,{msgHandler:a.msgHandler,length:a.length,disableAutoFetch:a.disableAutoFetch,rangeChunkSize:a.rangeChunkSize});this.pdfDocument=new s.PDFDocument(this,this.streamManager.getStream())}async ensure(e,t,a){try{const r=e[t];return"function"==typeof r?r.apply(e,a):r}catch(r){if(!(r instanceof i.MissingDataException))throw r;await this.requestRange(r.begin,r.end);return this.ensure(e,t,a)}}requestRange(e,t){return this.streamManager.requestRange(e,t)}requestLoadedStream(){this.streamManager.requestAllChunks()}sendProgressiveData(e){this.streamManager.onReceiveData({chunk:e})}onLoadedStream(){return this.streamManager.onLoadedStream()}terminate(e){this.streamManager.abort(e)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ChunkedStreamManager=t.ChunkedStream=void 0;var r=a(2),n=a(8),i=a(10);class ChunkedStream extends i.Stream{constructor(e,t,a){super(new Uint8Array(e),0,e,null);this.chunkSize=t;this._loadedChunks=new Set;this.numChunks=Math.ceil(e/t);this.manager=a;this.progressiveDataLength=0;this.lastSuccessfulEnsureByteChunk=-1}getMissingChunks(){const e=[];for(let t=0,a=this.numChunks;t=this.end?this.numChunks:Math.floor(t/this.chunkSize);for(let e=a;ethis.numChunks)&&t!==this.lastSuccessfulEnsureByteChunk){if(!this._loadedChunks.has(t))throw new n.MissingDataException(e,e+1);this.lastSuccessfulEnsureByteChunk=t}}ensureRange(e,t){if(e>=t)return;if(t<=this.progressiveDataLength)return;const a=Math.floor(e/this.chunkSize);if(a>this.numChunks)return;const r=Math.min(Math.floor((t-1)/this.chunkSize)+1,this.numChunks);for(let i=a;i=this.end)return-1;e>=this.progressiveDataLength&&this.ensureByte(e);return this.bytes[this.pos++]}getBytes(e){const t=this.bytes,a=this.pos,r=this.end;if(!e){r>this.progressiveDataLength&&this.ensureRange(a,r);return t.subarray(a,r)}let n=a+e;n>r&&(n=r);n>this.progressiveDataLength&&this.ensureRange(a,n);this.pos=n;return t.subarray(a,n)}getByteRange(e,t){e<0&&(e=0);t>this.end&&(t=this.end);t>this.progressiveDataLength&&this.ensureRange(e,t);return this.bytes.subarray(e,t)}makeSubStream(e,t,a=null){t?e+t>this.progressiveDataLength&&this.ensureRange(e,e+t):e>=this.progressiveDataLength&&this.ensureByte(e);function ChunkedStreamSubstream(){}ChunkedStreamSubstream.prototype=Object.create(this);ChunkedStreamSubstream.prototype.getMissingChunks=function(){const e=this.chunkSize,t=Math.floor(this.start/e),a=Math.floor((this.end-1)/e)+1,r=[];for(let e=t;e{const readChunk=s=>{try{if(!s.done){const e=s.value;n.push(e);i+=(0,r.arrayByteLength)(e);a.isStreamingSupported&&this.onProgress({loaded:i});a.read().then(readChunk,t);return}const o=(0,r.arraysToBytes)(n);n=null;e(o)}catch(e){t(e)}};a.read().then(readChunk,t)})).then((t=>{this.aborted||this.onReceiveData({chunk:t,begin:e})}))}requestAllChunks(){const e=this.stream.getMissingChunks();this._requestChunks(e);return this._loadedStreamCapability.promise}_requestChunks(e){const t=this.currRequestId++,a=new Set;this._chunksNeededByRequest.set(t,a);for(const t of e)this.stream.hasChunk(t)||a.add(t);if(0===a.size)return Promise.resolve();const n=(0,r.createPromiseCapability)();this._promisesByRequest.set(t,n);const i=[];for(const e of a){let a=this._requestsByChunk.get(e);if(!a){a=[];this._requestsByChunk.set(e,a);i.push(e)}a.push(t)}if(i.length>0){const e=this.groupChunks(i);for(const t of e){const e=t.beginChunk*this.chunkSize,a=Math.min(t.endChunk*this.chunkSize,this.length);this.sendRequest(e,a).catch(n.reject)}}return n.promise.catch((e=>{if(!this.aborted)throw e}))}getStream(){return this.stream}requestRange(e,t){t=Math.min(t,this.length);const a=this.getBeginChunk(e),r=this.getEndChunk(t),n=[];for(let e=a;e=0&&r+1!==i){t.push({beginChunk:a,endChunk:r+1});a=i}n+1===e.length&&t.push({beginChunk:a,endChunk:i+1});r=i}return t}onProgress(e){this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize+e.loaded,total:this.length})}onReceiveData(e){const t=e.chunk,a=void 0===e.begin,r=a?this.progressiveDataLength:e.begin,n=r+t.byteLength,i=Math.floor(r/this.chunkSize),s=n0||o.push(a)}}}if(!this.disableAutoFetch&&0===this._requestsByChunk.size){let e;if(1===this.stream.numChunksLoaded){const t=this.stream.numChunks-1;this.stream.hasChunk(t)||(e=t)}else e=this.stream.nextEmptyChunk(s);Number.isInteger(e)&&this._requestChunks([e])}for(const e of o){const t=this._promisesByRequest.get(e);this._promisesByRequest.delete(e);t.resolve()}this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize,total:this.length})}onError(e){this._loadedStreamCapability.reject(e)}getBeginChunk(e){return Math.floor(e/this.chunkSize)}getEndChunk(e){return Math.floor((e-1)/this.chunkSize)+1}abort(e){this.aborted=!0;this.pdfNetworkStream&&this.pdfNetworkStream.cancelAllRequests(e);for(const t of this._promisesByRequest.values())t.reject(e)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XRefParseException=t.XRefEntryException=t.ParserEOFException=t.MissingDataException=t.DocStats=void 0;t.collectActions=function collectActions(e,t,a){const i=Object.create(null),s=getInheritableProperty({dict:t,key:"AA",stopWhenFound:!1});if(s)for(let t=s.length-1;t>=0;t--){const r=s[t];if(r instanceof n.Dict)for(const t of r.getKeys()){const s=a[t];if(!s)continue;const o=r.getRaw(t),c=new n.RefSet,l=[];_collectJS(o,e,l,c);l.length>0&&(i[s]=l)}}if(t.has("A")){const a=t.get("A"),r=new n.RefSet,s=[];_collectJS(a,e,s,r);s.length>0&&(i.Action=s)}return(0,r.objectSize)(i)>0?i:null};t.encodeToXmlString=function encodeToXmlString(e){const t=[];let a=0;for(let r=0,n=e.length;r55295&&(n<57344||n>65533)&&r++;a=r+1}}if(0===t.length)return e;a126||35===n||40===n||41===n||60===n||62===n||91===n||93===n||123===n||125===n||47===n||37===n){a{const a=e.match(t);return a?{name:a[1],pos:parseInt(a[2],10)}:{name:e,pos:0}}))};t.readInt8=function readInt8(e,t){return e[t]<<24>>24};t.readUint16=function readUint16(e,t){return e[t]<<8|e[t+1]};t.readUint32=function readUint32(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0};t.recoverJsURL=function recoverJsURL(e){const t=new RegExp("^\\s*("+["app.launchURL","window.open","xfa.host.gotoURL"].join("|").split(".").join("\\.")+")\\((?:'|\")([^'\"]*)(?:'|\")(?:,\\s*(\\w+)\\)|\\))","i").exec(e);if(t&&t[2]){const e=t[2];let a=!1;"true"===t[3]&&"app.launchURL"===t[1]&&(a=!0);return{url:e,newWindow:a}}return null};t.toRomanNumerals=function toRomanNumerals(e,t=!1){(0,r.assert)(Number.isInteger(e)&&e>0,"The number should be a positive integer.");const a=[];let n;for(;e>=1e3;){e-=1e3;a.push("M")}n=e/100|0;e%=100;a.push(s[n]);n=e/10|0;e%=10;a.push(s[10+n]);a.push(s[20+e]);const i=a.join("");return t?i.toLowerCase():i};t.validateCSSFont=function validateCSSFont(e){const t=new Set(["100","200","300","400","500","600","700","800","900","1000","normal","bold","bolder","lighter"]),{fontFamily:a,fontWeight:n,italicAngle:i}=e;if(/^".*"$/.test(a)){if(/[^\\]"/.test(a.slice(1,a.length-1))){(0,r.warn)(`XFA - FontFamily contains some unescaped ": ${a}.`);return!1}}else if(/^'.*'$/.test(a)){if(/[^\\]'/.test(a.slice(1,a.length-1))){(0,r.warn)(`XFA - FontFamily contains some unescaped ': ${a}.`);return!1}}else for(const e of a.split(/[ \t]+/))if(/^(\d|(-(\d|-)))/.test(e)||!/^[\w-\\]+$/.test(e)){(0,r.warn)(`XFA - FontFamily contains some invalid : ${a}.`);return!1}const s=n?n.toString():"";e.fontWeight=t.has(s)?s:"400";const o=parseFloat(i);e.italicAngle=isNaN(o)||o<-90||o>90?"14":i.toString();return!0};var r=a(2),n=a(5),i=a(9);class MissingDataException extends r.BaseException{constructor(e,t){super(`Missing data [${e}, ${t})`,"MissingDataException");this.begin=e;this.end=t}}t.MissingDataException=MissingDataException;class ParserEOFException extends r.BaseException{constructor(e){super(e,"ParserEOFException")}}t.ParserEOFException=ParserEOFException;class XRefEntryException extends r.BaseException{constructor(e){super(e,"XRefEntryException")}}t.XRefEntryException=XRefEntryException;class XRefParseException extends r.BaseException{constructor(e){super(e,"XRefParseException")}}t.XRefParseException=XRefParseException;t.DocStats=class DocStats{constructor(e){this._handler=e;this._streamTypes=new Set;this._fontTypes=new Set}_send(){const e=Object.create(null),t=Object.create(null);for(const t of this._streamTypes)e[t]=!0;for(const e of this._fontTypes)t[e]=!0;this._handler.send("DocStats",{streamTypes:e,fontTypes:t})}addStreamType(e){if(!this._streamTypes.has(e)){this._streamTypes.add(e);this._send()}}addFontType(e){if(!this._fontTypes.has(e)){this._fontTypes.add(e);this._send()}}};function getInheritableProperty({dict:e,key:t,getArray:a=!1,stopWhenFound:r=!0}){let i;const s=new n.RefSet;for(;e instanceof n.Dict&&(!e.objId||!s.has(e.objId));){e.objId&&s.put(e.objId);const n=a?e.getArray(t):e.get(t);if(void 0!==n){if(r)return n;i||(i=[]);i.push(n)}e=e.get("Parent")}return i}const s=["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM","","X","XX","XXX","XL","L","LX","LXX","LXXX","XC","","I","II","III","IV","V","VI","VII","VIII","IX"];function _collectJS(e,t,a,s){if(!e)return;let o=null;if(e instanceof n.Ref){if(s.has(e))return;o=e;s.put(o);e=t.fetch(e)}if(Array.isArray(e))for(const r of e)_collectJS(r,t,a,s);else if(e instanceof n.Dict){if((0,n.isName)(e.get("S"),"JavaScript")){const t=e.get("JS");let n;t instanceof i.BaseStream?n=t.getString():"string"==typeof t&&(n=t);n=n&&(0,r.stringToPDFString)(n);n&&a.push(n)}_collectJS(e.getRaw("Next"),t,a,s)}o&&s.remove(o)}const o={60:"<",62:">",38:"&",34:""",39:"'"}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.BaseStream=void 0;var r=a(2);class BaseStream{constructor(){this.constructor===BaseStream&&(0,r.unreachable)("Cannot initialize BaseStream.")}get length(){(0,r.unreachable)("Abstract getter `length` accessed")}get isEmpty(){(0,r.unreachable)("Abstract getter `isEmpty` accessed")}get isDataLoaded(){return(0,r.shadow)(this,"isDataLoaded",!0)}getByte(){(0,r.unreachable)("Abstract method `getByte` called")}getBytes(e){(0,r.unreachable)("Abstract method `getBytes` called")}peekByte(){const e=this.getByte();-1!==e&&this.pos--;return e}peekBytes(e){const t=this.getBytes(e);this.pos-=t.length;return t}getUint16(){const e=this.getByte(),t=this.getByte();return-1===e||-1===t?-1:(e<<8)+t}getInt32(){return(this.getByte()<<24)+(this.getByte()<<16)+(this.getByte()<<8)+this.getByte()}getByteRange(e,t){(0,r.unreachable)("Abstract method `getByteRange` called")}getString(e){return(0,r.bytesToString)(this.getBytes(e))}skip(e){this.pos+=e||1}reset(){(0,r.unreachable)("Abstract method `reset` called")}moveStart(){(0,r.unreachable)("Abstract method `moveStart` called")}makeSubStream(e,t,a=null){(0,r.unreachable)("Abstract method `makeSubStream` called")}getBaseStreams(){return null}}t.BaseStream=BaseStream},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.StringStream=t.Stream=t.NullStream=void 0;var r=a(9),n=a(2);class Stream extends r.BaseStream{constructor(e,t,a,r){super();this.bytes=e instanceof Uint8Array?e:new Uint8Array(e);this.start=t||0;this.pos=this.start;this.end=t+a||this.bytes.length;this.dict=r}get length(){return this.end-this.start}get isEmpty(){return 0===this.length}getByte(){return this.pos>=this.end?-1:this.bytes[this.pos++]}getBytes(e){const t=this.bytes,a=this.pos,r=this.end;if(!e)return t.subarray(a,r);let n=a+e;n>r&&(n=r);this.pos=n;return t.subarray(a,n)}getByteRange(e,t){e<0&&(e=0);t>this.end&&(t=this.end);return this.bytes.subarray(e,t)}reset(){this.pos=this.start}moveStart(){this.start=this.pos}makeSubStream(e,t,a=null){return new Stream(this.bytes.buffer,e,t,a)}}t.Stream=Stream;t.StringStream=class StringStream extends Stream{constructor(e){super((0,n.stringToBytes)(e))}};t.NullStream=class NullStream extends Stream{constructor(){super(new Uint8Array(0))}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Page=t.PDFDocument=void 0;var r=a(2),n=a(8),i=a(5),s=a(12),o=a(22),c=a(9),l=a(75),h=a(66),u=a(68),d=a(101),f=a(27),g=a(10),p=a(73),m=a(62),b=a(25),y=a(29),w=a(72),S=a(77),x=a(102);const k=[0,0,612,792];class Page{constructor({pdfManager:e,xref:t,pageIndex:a,pageDict:r,ref:n,globalIdFactory:i,fontCache:s,builtInCMapCache:o,standardFontDataCache:c,globalImageCache:l,nonBlendModesSet:h,xfaFactory:u}){this.pdfManager=e;this.pageIndex=a;this.pageDict=r;this.xref=t;this.ref=n;this.fontCache=s;this.builtInCMapCache=o;this.standardFontDataCache=c;this.globalImageCache=l;this.nonBlendModesSet=h;this.evaluatorOptions=e.evaluatorOptions;this.resourcesPromise=null;this.xfaFactory=u;const d={obj:0};this._localIdFactory=class extends i{static createObjId(){return`p${a}_${++d.obj}`}static getPageObjId(){return`page${n.toString()}`}}}_getInheritableProperty(e,t=!1){const a=(0,n.getInheritableProperty)({dict:this.pageDict,key:e,getArray:t,stopWhenFound:!1});return Array.isArray(a)?1!==a.length&&a[0]instanceof i.Dict?i.Dict.merge({xref:this.xref,dictArray:a}):a[0]:a}get content(){return this.pageDict.getArray("Contents")}get resources(){return(0,r.shadow)(this,"resources",this._getInheritableProperty("Resources")||i.Dict.empty)}_getBoundingBox(e){if(this.xfaData)return this.xfaData.bbox;const t=this._getInheritableProperty(e,!0);if(Array.isArray(t)&&4===t.length){if(t[2]-t[0]!=0&&t[3]-t[1]!=0)return t;(0,r.warn)(`Empty /${e} entry.`)}return null}get mediaBox(){return(0,r.shadow)(this,"mediaBox",this._getBoundingBox("MediaBox")||k)}get cropBox(){return(0,r.shadow)(this,"cropBox",this._getBoundingBox("CropBox")||this.mediaBox)}get userUnit(){let e=this.pageDict.get("UserUnit");("number"!=typeof e||e<=0)&&(e=1);return(0,r.shadow)(this,"userUnit",e)}get view(){const{cropBox:e,mediaBox:t}=this;let a;if(e===t||(0,r.isArrayEqual)(e,t))a=t;else{const n=r.Util.intersect(e,t);n&&n[2]-n[0]!=0&&n[3]-n[1]!=0?a=n:(0,r.warn)("Empty /CropBox and /MediaBox intersection.")}return(0,r.shadow)(this,"view",a||t)}get rotate(){let e=this._getInheritableProperty("Rotate")||0;e%90!=0?e=0:e>=360?e%=360:e<0&&(e=(e%360+360)%360);return(0,r.shadow)(this,"rotate",e)}_onSubStreamError(e,t,a){if(!this.evaluatorOptions.ignoreErrors)throw t;e.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorContentSubStream});(0,r.warn)(`getContentStream - ignoring sub-stream (${a}): "${t}".`)}getContentStream(e){return this.pdfManager.ensure(this,"content").then((t=>t instanceof c.BaseStream?t:Array.isArray(t)?new y.StreamsSequenceStream(t,this._onSubStreamError.bind(this,e)):new g.NullStream))}get xfaData(){return(0,r.shadow)(this,"xfaData",this.xfaFactory?{bbox:this.xfaFactory.getBoundingBox(this.pageIndex)}:null)}save(e,t,a){const n=new b.PartialEvaluator({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions});return this._parsedAnnotations.then((function(e){const i=[];for(const s of e)s.mustBePrinted(a)&&i.push(s.save(n,t,a).catch((function(e){(0,r.warn)(`save - ignoring annotation data during "${t.name}" task: "${e}".`);return null})));return Promise.all(i)}))}loadResources(e){this.resourcesPromise||(this.resourcesPromise=this.pdfManager.ensure(this,"resources"));return this.resourcesPromise.then((()=>new p.ObjectLoader(this.resources,e,this.xref).load()))}getOperatorList({handler:e,sink:t,task:a,intent:n,cacheKey:i,annotationStorage:s=null}){const o=this.getContentStream(e),c=this.loadResources(["ColorSpace","ExtGState","Font","Pattern","Properties","Shading","XObject"]),l=new b.PartialEvaluator({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions});let h,u,d;const f=Promise.all([o,c]).then((([r])=>{const s=new m.OperatorList(n,t);e.send("StartRenderPage",{transparency:l.hasBlendModes(this.resources,this.nonBlendModesSet),pageIndex:this.pageIndex,cacheKey:i});return l.getOperatorList({stream:r,task:a,resources:this.resources,operatorList:s,intent:n}).then((function([e,t,a]){h=e;u=t;d=a;return s}))}));return Promise.all([f,this._parsedAnnotations]).then((function([e,t]){if(0===t.length||n&r.RenderingIntentFlag.ANNOTATIONS_DISABLE){if(n&r.RenderingIntentFlag.OPLIST){e.addOp(r.OPS.operationPosition,u);e.addOp(r.OPS.boundingBoxes,[h,d])}e.flush(!0);return{length:e.totalLength}}const i=!!(n&r.RenderingIntentFlag.ANNOTATIONS_FORMS),o=!!(n&r.RenderingIntentFlag.ANY),c=!!(n&r.RenderingIntentFlag.DISPLAY),f=!!(n&r.RenderingIntentFlag.PRINT),g=[];for(const e of t)(o||c&&e.mustBeViewed(s)||f&&e.mustBePrinted(s)||n&r.RenderingIntentFlag.OPLIST)&&g.push(e.getOperatorList(l,a,n,i,s).catch((function(e){(0,r.warn)(`getOperatorList - ignoring annotation data during "${a.name}" task: "${e}".`);return null})));return Promise.all(g).then((function(t){e.addOp(r.OPS.beginAnnotations,[]);for(const a of t)e.addOpList(a);e.addOp(r.OPS.endAnnotations,[]);n&r.RenderingIntentFlag.OPLIST&&e.addOp(r.OPS.save,[h,d]);e.flush(!0);return{length:e.totalLength}}))}))}extractTextContent({handler:e,task:t,includeMarkedContent:a,sink:r,combineTextItems:n}){const i=this.getContentStream(e),s=this.loadResources(["ExtGState","Font","Properties","XObject"]);return Promise.all([i,s]).then((([i])=>new b.PartialEvaluator({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions}).getTextContent({stream:i,task:t,resources:this.resources,includeMarkedContent:a,combineTextItems:n,sink:r,viewBox:this.view})))}async getStructTree(){const e=await this.pdfManager.ensureCatalog("structTreeRoot");if(!e)return null;return(await this.pdfManager.ensure(this,"_parseStructTree",[e])).serializable}_parseStructTree(e){const t=new w.StructTreePage(e,this.pageDict);t.parse();return t}getAnnotationsData(e){return this._parsedAnnotations.then((function(t){const a=[];if(0===t.length)return a;const n=!!(e&r.RenderingIntentFlag.ANY),i=!!(e&r.RenderingIntentFlag.DISPLAY),s=!!(e&r.RenderingIntentFlag.PRINT);for(const o of t)(n||i&&o.viewable||s&&o.printable||e&r.RenderingIntentFlag.OPLIST)&&a.push(o.data);return a}))}get annotations(){const e=this._getInheritableProperty("Annots");return(0,r.shadow)(this,"annotations",Array.isArray(e)?e:[])}get _parsedAnnotations(){const e=this.pdfManager.ensure(this,"annotations").then((()=>{const e=[];for(const t of this.annotations)e.push(o.AnnotationFactory.create(this.xref,t,this.pdfManager,this._localIdFactory,!1).catch((function(e){(0,r.warn)(`_parsedAnnotations: "${e}".`);return null})));return Promise.all(e).then((function(e){return e.filter((e=>!!e))}))}));return(0,r.shadow)(this,"_parsedAnnotations",e)}get jsActions(){const e=(0,n.collectActions)(this.xref,this.pageDict,r.PageActionEventType);return(0,r.shadow)(this,"jsActions",e)}}t.Page=Page;const C=new Uint8Array([37,80,68,70,45]),v=new Uint8Array([115,116,97,114,116,120,114,101,102]),F=new Uint8Array([101,110,100,111,98,106]),O=/^[1-9]\.\d$/;function find(e,t,a=1024,r=!1){const n=t.length,i=e.peekBytes(a),s=i.length-n;if(s<=0)return!1;if(r){const a=n-1;let r=i.length-1;for(;r>=a;){let s=0;for(;s=n){e.pos+=r-a;return!0}r--}}else{let a=0;for(;a<=s;){let r=0;for(;r=n){e.pos+=a;return!0}a++}}return!1}t.PDFDocument=class ExtendedPDFDocument extends class PDFDocument{constructor(e,t){if(t.length<=0)throw new r.InvalidPDFException("The PDF file is empty, i.e. its size is zero bytes.");this.pdfManager=e;this.stream=t;this.xref=new x.XRef(t,e);this._pagePromises=new Map;this._version=null;const a={font:0};this._globalIdFactory=class{static getDocId(){return`g_${e.docId}`}static createFontId(){return"f"+ ++a.font}static createObjId(){(0,r.unreachable)("Abstract method `createObjId` called.")}static getPageObjId(){(0,r.unreachable)("Abstract method `getPageObjId` called.")}}}parse(e){this.xref.parse(e);this.catalog=new h.Catalog(this.pdfManager,this.xref);this.catalog.version&&(this._version=this.catalog.version)}get linearization(){let e=null;try{e=f.Linearization.create(this.stream)}catch(e){if(e instanceof n.MissingDataException)throw e;(0,r.info)(e)}return(0,r.shadow)(this,"linearization",e)}get startXRef(){const e=this.stream;let t=0;if(this.linearization){e.reset();find(e,F)&&(t=e.pos+6-e.start)}else{const a=1024,r=v.length;let i=!1,s=e.end;for(;!i&&s>0;){s-=a-r;s<0&&(s=0);e.pos=s;i=find(e,v,a,!0)}if(i){e.skip(9);let a;do{a=e.getByte()}while((0,n.isWhiteSpace)(a));let r="";for(;a>=32&&a<=57;){r+=String.fromCharCode(a);a=e.getByte()}t=parseInt(r,10);isNaN(t)&&(t=0)}}return(0,r.shadow)(this,"startXRef",t)}checkHeader(){const e=this.stream;e.reset();if(!find(e,C))return;e.moveStart();let t,a="";for(;(t=e.getByte())>32&&!(a.length>=12);)a+=String.fromCharCode(t);this._version||(this._version=a.substring(5))}parseStartXRef(){this.xref.setStartXRef(this.startXRef)}get numPages(){let e=0;e=this.catalog.hasActualNumPages?this.catalog.numPages:this.xfaFactory?this.xfaFactory.getNumPages():this.linearization?this.linearization.numPages:this.catalog.numPages;return(0,r.shadow)(this,"numPages",e)}_hasOnlyDocumentSignatures(e,t=0){return!!Array.isArray(e)&&e.every((e=>{if(!((e=this.xref.fetchIfRef(e))instanceof i.Dict))return!1;if(e.has("Kids")){if(++t>10){(0,r.warn)("_hasOnlyDocumentSignatures: maximum recursion depth reached");return!1}return this._hasOnlyDocumentSignatures(e.get("Kids"),t)}const a=(0,i.isName)(e.get("FT"),"Sig"),n=e.get("Rect"),s=Array.isArray(n)&&n.every((e=>0===e));return a&&s}))}get _xfaStreams(){const e=this.catalog.acroForm;if(!e)return null;const t=e.get("XFA"),a={"xdp:xdp":"",template:"",datasets:"",config:"",connectionSet:"",localeSet:"",stylesheet:"","/xdp:xdp":""};if(t instanceof c.BaseStream&&!t.isEmpty){a["xdp:xdp"]=t;return a}if(!Array.isArray(t)||0===t.length)return null;for(let e=0,r=t.length;e{y.set(e,t)}));const w=[];for(const[e,a]of y){const s=a.get("FontDescriptor");if(!(s instanceof i.Dict))continue;let c=s.get("FontFamily");c=c.replace(/[ ]+(\d)/g,"$1");const l={fontFamily:c,fontWeight:s.get("FontWeight"),italicAngle:-s.get("ItalicAngle")};(0,n.validateCSSFont)(l)&&w.push(u.handleSetFont(o,[i.Name.get(e),1],null,d,t,g,null,l).catch((function(e){(0,r.warn)(`loadXfaFonts: "${e}".`);return null})))}await Promise.all(w);const S=this.xfaFactory.setFonts(f);if(!S)return;h.ignoreErrors=!0;w.length=0;f.length=0;const x=new Set;for(const e of S)(0,s.getXfaFontName)(`${e}-Regular`)||x.add(e);x.size&&S.push("PdfJS-Fallback");for(const e of S)if(!x.has(e))for(const a of[{name:"Regular",fontWeight:400,italicAngle:0},{name:"Bold",fontWeight:700,italicAngle:0},{name:"Italic",fontWeight:400,italicAngle:12},{name:"BoldItalic",fontWeight:700,italicAngle:12}]){const n=`${e}-${a.name}`,c=(0,s.getXfaFontDict)(n);w.push(u.handleSetFont(o,[i.Name.get(n),1],null,d,t,g,c,{fontFamily:e,fontWeight:a.fontWeight,italicAngle:a.italicAngle}).catch((function(e){(0,r.warn)(`loadXfaFonts: "${e}".`);return null})))}await Promise.all(w);this.xfaFactory.appendFonts(f,x)}async serializeXfaData(e){return this.xfaFactory?this.xfaFactory.serializeData(e):null}get formInfo(){const e={hasFields:!1,hasAcroForm:!1,hasXfa:!1,hasSignatures:!1},t=this.catalog.acroForm;if(!t)return(0,r.shadow)(this,"formInfo",e);try{const a=t.get("Fields"),r=Array.isArray(a)&&a.length>0;e.hasFields=r;const n=t.get("XFA");e.hasXfa=Array.isArray(n)&&n.length>0||n instanceof c.BaseStream&&!n.isEmpty;const i=!!(1&t.get("SigFlags")),s=i&&this._hasOnlyDocumentSignatures(a);e.hasAcroForm=r&&!s;e.hasSignatures=i}catch(e){if(e instanceof n.MissingDataException)throw e;(0,r.warn)(`Cannot fetch form information: "${e}".`)}return(0,r.shadow)(this,"formInfo",e)}get documentInfo(){let e=this._version;if("string"!=typeof e||!O.test(e)){(0,r.warn)(`Invalid PDF header version number: ${e}`);e=null}const t={PDFFormatVersion:e,Language:this.catalog.lang,EncryptFilterName:this.xref.encrypt?this.xref.encrypt.filterName:null,IsLinearized:!!this.linearization,IsAcroFormPresent:this.formInfo.hasAcroForm,IsXFAPresent:this.formInfo.hasXfa,IsCollectionPresent:!!this.catalog.collection,IsSignaturesPresent:this.formInfo.hasSignatures};let a;try{a=this.xref.trailer.get("Info")}catch(e){if(e instanceof n.MissingDataException)throw e;(0,r.info)("The document information dictionary is invalid.")}if(!(a instanceof i.Dict))return(0,r.shadow)(this,"documentInfo",t);for(const e of a.getKeys()){const n=a.get(e);switch(e){case"Title":case"Author":case"Subject":case"Keywords":case"Creator":case"Producer":case"CreationDate":case"ModDate":if("string"==typeof n){t[e]=(0,r.stringToPDFString)(n);continue}break;case"Trapped":if(n instanceof i.Name){t[e]=n;continue}break;default:let a;switch(typeof n){case"string":a=(0,r.stringToPDFString)(n);break;case"number":case"boolean":a=n;break;default:n instanceof i.Name&&(a=n)}if(void 0===a){(0,r.warn)(`Bad value, for custom key "${e}", in Info: ${n}.`);continue}t.Custom||(t.Custom=Object.create(null));t.Custom[e]=a;continue}(0,r.warn)(`Bad value, for key "${e}", in Info: ${n}.`)}return(0,r.shadow)(this,"documentInfo",t)}get fingerprints(){function validate(e){return"string"==typeof e&&e.length>0&&"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"!==e}function hexString(e){const t=[];for(let a=0,r=e.length;anew Page({pdfManager:this.pdfManager,xref:this.xref,pageIndex:e,pageDict:t,ref:r,globalIdFactory:this._globalIdFactory,fontCache:a.fontCache,builtInCMapCache:a.builtInCMapCache,standardFontDataCache:a.standardFontDataCache,globalImageCache:a.globalImageCache,nonBlendModesSet:a.nonBlendModesSet,xfaFactory:n})));this._pagePromises.set(e,s);return s}async checkFirstPage(e=!1){if(!e)try{await this.getPage(0)}catch(e){if(e instanceof n.XRefEntryException){this._pagePromises.delete(0);await this.cleanup();throw new n.XRefParseException}}}async checkLastPage(e=!1){const{catalog:t,pdfManager:a}=this;t.setActualNumPages();let i;try{await Promise.all([a.ensureDoc("xfaFactory"),a.ensureDoc("linearization"),a.ensureCatalog("numPages")]);if(this.xfaFactory)return;i=this.linearization?this.linearization.numPages:t.numPages;if(!Number.isInteger(i))throw new r.FormatError("Page count is not an integer.");if(i<=1)return;await this.getPage(i-1)}catch(s){this._pagePromises.delete(i-1);await this.cleanup();if(s instanceof n.XRefEntryException&&!e)throw new n.XRefParseException;(0,r.warn)(`checkLastPage - invalid /Pages tree /Count: ${i}.`);let o;try{o=await t.getAllPageDicts(e)}catch(a){if(a instanceof n.XRefEntryException&&!e)throw new n.XRefParseException;t.setActualNumPages(1);return}for(const[e,[r,n]]of o){let i;if(r instanceof Error){i=Promise.reject(r);i.catch((()=>{}))}else i=Promise.resolve(new Page({pdfManager:a,xref:this.xref,pageIndex:e,pageDict:r,ref:n,globalIdFactory:this._globalIdFactory,fontCache:t.fontCache,builtInCMapCache:t.builtInCMapCache,standardFontDataCache:t.standardFontDataCache,globalImageCache:t.globalImageCache,nonBlendModesSet:t.nonBlendModesSet,xfaFactory:null}));this._pagePromises.set(e,i)}t.setActualNumPages(o.size)}}fontFallback(e,t){return this.catalog.fontFallback(e,t)}async cleanup(e=!1){return this.catalog?this.catalog.cleanup(e):(0,u.clearGlobalCaches)()}_collectFieldObjects(e,t,a){const n=this.xref.fetchIfRef(t);if(n.has("T")){const t=(0,r.stringToPDFString)(n.get("T"));e=""===e?t:`${e}.${t}`}a.has(e)||a.set(e,[]);a.get(e).push(o.AnnotationFactory.create(this.xref,t,this.pdfManager,this._localIdFactory,!0).then((e=>e&&e.getFieldObject())).catch((function(e){(0,r.warn)(`_collectFieldObjects: "${e}".`);return null})));if(n.has("Kids")){const t=n.get("Kids");for(const r of t)this._collectFieldObjects(e,r,a)}}get fieldObjects(){if(!this.formInfo.hasFields)return(0,r.shadow)(this,"fieldObjects",Promise.resolve(null));const e=Object.create(null),t=new Map;for(const e of this.catalog.acroForm.get("Fields"))this._collectFieldObjects("",e,t);const a=[];for(const[r,n]of t)a.push(Promise.all(n).then((t=>{(t=t.filter((e=>!!e))).length>0&&(e[r]=t)})));return(0,r.shadow)(this,"fieldObjects",Promise.all(a).then((()=>e)))}get hasJSActions(){const e=this.pdfManager.ensureDoc("_parseHasJSActions");return(0,r.shadow)(this,"hasJSActions",e)}async _parseHasJSActions(){const[e,t]=await Promise.all([this.pdfManager.ensureCatalog("jsActions"),this.pdfManager.ensureDoc("fieldObjects")]);return!!e||!!t&&Object.values(t).some((e=>e.some((e=>null!==e.actions))))}get calculationOrderIds(){const e=this.catalog.acroForm;if(!e||!e.has("CO"))return(0,r.shadow)(this,"calculationOrderIds",null);const t=e.get("CO");if(!Array.isArray(t)||0===t.length)return(0,r.shadow)(this,"calculationOrderIds",null);const a=[];for(const e of t)e instanceof i.Ref&&a.push(e.toString());return 0===a.length?(0,r.shadow)(this,"calculationOrderIds",null):(0,r.shadow)(this,"calculationOrderIds",a)}}{constructor(e,t){super(e,t)}get structureTree(){return(0,r.shadow)(this,"structureTree",this.catalog.structureTree)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.getXfaFontDict=function getXfaFontDict(e){const t=function getXfaFontWidths(e){const t=getXfaFontName(e);if(!t)return null;const{baseWidths:a,baseMapping:r,factors:n}=t;let i;i=n?a.map(((e,t)=>e*n[t])):a;let s,o=-2;const c=[];for(const[e,t]of r.map(((e,t)=>[e,t])).sort((([e],[t])=>e-t)))if(-1!==e)if(e===o+1){s.push(i[t]);o+=1}else{o=e;s=[i[t]];c.push(e,s)}return c}(e),a=new n.Dict(null);a.set("BaseFont",n.Name.get(e));a.set("Type",n.Name.get("Font"));a.set("Subtype",n.Name.get("CIDFontType2"));a.set("Encoding",n.Name.get("Identity-H"));a.set("CIDToGIDMap",n.Name.get("Identity"));a.set("W",t);a.set("FirstChar",t[0]);a.set("LastChar",t[t.length-2]+t[t.length-1].length-1);const r=new n.Dict(null);a.set("FontDescriptor",r);const i=new n.Dict(null);i.set("Ordering","Identity");i.set("Registry","Adobe");i.set("Supplement",0);a.set("CIDSystemInfo",i);return a};t.getXfaFontName=getXfaFontName;var r=a(13),n=a(5),i=a(14),s=a(15),o=a(16),c=a(17),l=a(8),h=a(18);const u=(0,l.getLookupTableFactory)((function(e){e["MyriadPro-Regular"]=e["PdfJS-Fallback-Regular"]={name:"LiberationSans-Regular",factors:o.MyriadProRegularFactors,baseWidths:s.LiberationSansRegularWidths,baseMapping:s.LiberationSansRegularMapping,metrics:o.MyriadProRegularMetrics};e["MyriadPro-Bold"]=e["PdfJS-Fallback-Bold"]={name:"LiberationSans-Bold",factors:o.MyriadProBoldFactors,baseWidths:s.LiberationSansBoldWidths,baseMapping:s.LiberationSansBoldMapping,metrics:o.MyriadProBoldMetrics};e["MyriadPro-It"]=e["MyriadPro-Italic"]=e["PdfJS-Fallback-Italic"]={name:"LiberationSans-Italic",factors:o.MyriadProItalicFactors,baseWidths:s.LiberationSansItalicWidths,baseMapping:s.LiberationSansItalicMapping,metrics:o.MyriadProItalicMetrics};e["MyriadPro-BoldIt"]=e["MyriadPro-BoldItalic"]=e["PdfJS-Fallback-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:o.MyriadProBoldItalicFactors,baseWidths:s.LiberationSansBoldItalicWidths,baseMapping:s.LiberationSansBoldItalicMapping,metrics:o.MyriadProBoldItalicMetrics};e.ArialMT=e.Arial=e["Arial-Regular"]={name:"LiberationSans-Regular",baseWidths:s.LiberationSansRegularWidths,baseMapping:s.LiberationSansRegularMapping};e["Arial-BoldMT"]=e["Arial-Bold"]={name:"LiberationSans-Bold",baseWidths:s.LiberationSansBoldWidths,baseMapping:s.LiberationSansBoldMapping};e["Arial-ItalicMT"]=e["Arial-Italic"]={name:"LiberationSans-Italic",baseWidths:s.LiberationSansItalicWidths,baseMapping:s.LiberationSansItalicMapping};e["Arial-BoldItalicMT"]=e["Arial-BoldItalic"]={name:"LiberationSans-BoldItalic",baseWidths:s.LiberationSansBoldItalicWidths,baseMapping:s.LiberationSansBoldItalicMapping};e["Calibri-Regular"]={name:"LiberationSans-Regular",factors:r.CalibriRegularFactors,baseWidths:s.LiberationSansRegularWidths,baseMapping:s.LiberationSansRegularMapping,metrics:r.CalibriRegularMetrics};e["Calibri-Bold"]={name:"LiberationSans-Bold",factors:r.CalibriBoldFactors,baseWidths:s.LiberationSansBoldWidths,baseMapping:s.LiberationSansBoldMapping,metrics:r.CalibriBoldMetrics};e["Calibri-Italic"]={name:"LiberationSans-Italic",factors:r.CalibriItalicFactors,baseWidths:s.LiberationSansItalicWidths,baseMapping:s.LiberationSansItalicMapping,metrics:r.CalibriItalicMetrics};e["Calibri-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:r.CalibriBoldItalicFactors,baseWidths:s.LiberationSansBoldItalicWidths,baseMapping:s.LiberationSansBoldItalicMapping,metrics:r.CalibriBoldItalicMetrics};e["Segoeui-Regular"]={name:"LiberationSans-Regular",factors:c.SegoeuiRegularFactors,baseWidths:s.LiberationSansRegularWidths,baseMapping:s.LiberationSansRegularMapping,metrics:c.SegoeuiRegularMetrics};e["Segoeui-Bold"]={name:"LiberationSans-Bold",factors:c.SegoeuiBoldFactors,baseWidths:s.LiberationSansBoldWidths,baseMapping:s.LiberationSansBoldMapping,metrics:c.SegoeuiBoldMetrics};e["Segoeui-Italic"]={name:"LiberationSans-Italic",factors:c.SegoeuiItalicFactors,baseWidths:s.LiberationSansItalicWidths,baseMapping:s.LiberationSansItalicMapping,metrics:c.SegoeuiItalicMetrics};e["Segoeui-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:c.SegoeuiBoldItalicFactors,baseWidths:s.LiberationSansBoldItalicWidths,baseMapping:s.LiberationSansBoldItalicMapping,metrics:c.SegoeuiBoldItalicMetrics};e["Helvetica-Regular"]=e.Helvetica={name:"LiberationSans-Regular",factors:i.HelveticaRegularFactors,baseWidths:s.LiberationSansRegularWidths,baseMapping:s.LiberationSansRegularMapping,metrics:i.HelveticaRegularMetrics};e["Helvetica-Bold"]={name:"LiberationSans-Bold",factors:i.HelveticaBoldFactors,baseWidths:s.LiberationSansBoldWidths,baseMapping:s.LiberationSansBoldMapping,metrics:i.HelveticaBoldMetrics};e["Helvetica-Italic"]={name:"LiberationSans-Italic",factors:i.HelveticaItalicFactors,baseWidths:s.LiberationSansItalicWidths,baseMapping:s.LiberationSansItalicMapping,metrics:i.HelveticaItalicMetrics};e["Helvetica-BoldItalic"]={name:"LiberationSans-BoldItalic",factors:i.HelveticaBoldItalicFactors,baseWidths:s.LiberationSansBoldItalicWidths,baseMapping:s.LiberationSansBoldItalicMapping,metrics:i.HelveticaBoldItalicMetrics}}));function getXfaFontName(e){const t=(0,h.normalizeFontName)(e);return u()[t]}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.CalibriRegularMetrics=t.CalibriRegularFactors=t.CalibriItalicMetrics=t.CalibriItalicFactors=t.CalibriBoldMetrics=t.CalibriBoldItalicMetrics=t.CalibriBoldItalicFactors=t.CalibriBoldFactors=void 0;t.CalibriBoldFactors=[1.3877,1,1,1,.97801,.92482,.89552,.91133,.81988,.97566,.98152,.93548,.93548,1.2798,.85284,.92794,1,.96134,1.54657,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.82845,.82845,.85284,.85284,.85284,.75859,.92138,.83908,.7762,.73293,.87289,.73133,.7514,.81921,.87356,.95958,.59526,.75727,.69225,1.04924,.9121,.86943,.79795,.88198,.77958,.70864,.81055,.90399,.88653,.96017,.82577,.77892,.78257,.97507,1.54657,.97507,.85284,.89552,.90176,.88762,.8785,.75241,.8785,.90518,.95015,.77618,.8785,.88401,.91916,.86304,.88401,.91488,.8785,.8801,.8785,.8785,.91343,.7173,1.04106,.8785,.85075,.95794,.82616,.85162,.79492,.88331,1.69808,.88331,.85284,.97801,.89552,.91133,.89552,.91133,1.7801,.89552,1.24487,1.13254,1.12401,.96839,.85284,.68787,.70645,.85592,.90747,1.01466,1.0088,.90323,1,1.07463,1,.91056,.75806,1.19118,.96839,.78864,.82845,.84133,.75859,.83908,.83908,.83908,.83908,.83908,.83908,.77539,.73293,.73133,.73133,.73133,.73133,.95958,.95958,.95958,.95958,.88506,.9121,.86943,.86943,.86943,.86943,.86943,.85284,.87508,.90399,.90399,.90399,.90399,.77892,.79795,.90807,.88762,.88762,.88762,.88762,.88762,.88762,.8715,.75241,.90518,.90518,.90518,.90518,.88401,.88401,.88401,.88401,.8785,.8785,.8801,.8801,.8801,.8801,.8801,.90747,.89049,.8785,.8785,.8785,.8785,.85162,.8785,.85162,.83908,.88762,.83908,.88762,.83908,.88762,.73293,.75241,.73293,.75241,.73293,.75241,.73293,.75241,.87289,.83016,.88506,.93125,.73133,.90518,.73133,.90518,.73133,.90518,.73133,.90518,.73133,.90518,.81921,.77618,.81921,.77618,.81921,.77618,1,1,.87356,.8785,.91075,.89608,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.76229,.90167,.59526,.91916,1,1,.86304,.69225,.88401,1,1,.70424,.79468,.91926,.88175,.70823,.94903,.9121,.8785,1,1,.9121,.8785,.87802,.88656,.8785,.86943,.8801,.86943,.8801,.86943,.8801,.87402,.89291,.77958,.91343,1,1,.77958,.91343,.70864,.7173,.70864,.7173,.70864,.7173,.70864,.7173,1,1,.81055,.75841,.81055,1.06452,.90399,.8785,.90399,.8785,.90399,.8785,.90399,.8785,.90399,.8785,.90399,.8785,.96017,.95794,.77892,.85162,.77892,.78257,.79492,.78257,.79492,.78257,.79492,.9297,.56892,.83908,.88762,.77539,.8715,.87508,.89049,1,1,.81055,1.04106,1.20528,1.20528,1,1.15543,.70674,.98387,.94721,1.33431,1.45894,.95161,1.06303,.83908,.80352,.57184,.6965,.56289,.82001,.56029,.81235,1.02988,.83908,.7762,.68156,.80367,.73133,.78257,.87356,.86943,.95958,.75727,.89019,1.04924,.9121,.7648,.86943,.87356,.79795,.78275,.81055,.77892,.9762,.82577,.99819,.84896,.95958,.77892,.96108,1.01407,.89049,1.02988,.94211,.96108,.8936,.84021,.87842,.96399,.79109,.89049,1.00813,1.02988,.86077,.87445,.92099,.84723,.86513,.8801,.75638,.85714,.78216,.79586,.87965,.94211,.97747,.78287,.97926,.84971,1.02988,.94211,.8801,.94211,.84971,.73133,1,1,1,1,1,1,1,1,1,1,1,1,.90264,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.90518,1,1,1,1,1,1,1,1,1,1,1,1,.90548,1,1,1,1,1,1,.96017,.95794,.96017,.95794,.96017,.95794,.77892,.85162,1,1,.89552,.90527,1,.90363,.92794,.92794,.92794,.92794,.87012,.87012,.87012,.89552,.89552,1.42259,.71143,1.06152,1,1,1.03372,1.03372,.97171,1.4956,2.2807,.93835,.83406,.91133,.84107,.91133,1,1,1,.72021,1,1.23108,.83489,.88525,.88525,.81499,.90527,1.81055,.90527,1.81055,1.31006,1.53711,.94434,1.08696,1,.95018,.77192,.85284,.90747,1.17534,.69825,.9716,1.37077,.90747,.90747,.85356,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.99862,.99862,1,1,1,1,1,1.08004,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,.90727,.90727,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.CalibriBoldMetrics={lineHeight:1.2207,lineGap:.2207};t.CalibriBoldItalicFactors=[1.3877,1,1,1,.97801,.92482,.89552,.91133,.81988,.97566,.98152,.93548,.93548,1.2798,.85284,.92794,1,.96134,1.56239,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.82845,.82845,.85284,.85284,.85284,.75859,.92138,.83908,.7762,.71805,.87289,.73133,.7514,.81921,.87356,.95958,.59526,.75727,.69225,1.04924,.90872,.85938,.79795,.87068,.77958,.69766,.81055,.90399,.88653,.96068,.82577,.77892,.78257,.97507,1.529,.97507,.85284,.89552,.90176,.94908,.86411,.74012,.86411,.88323,.95015,.86411,.86331,.88401,.91916,.86304,.88401,.9039,.86331,.86331,.86411,.86411,.90464,.70852,1.04106,.86331,.84372,.95794,.82616,.84548,.79492,.88331,1.69808,.88331,.85284,.97801,.89552,.91133,.89552,.91133,1.7801,.89552,1.24487,1.13254,1.19129,.96839,.85284,.68787,.70645,.85592,.90747,1.01466,1.0088,.90323,1,1.07463,1,.91056,.75806,1.19118,.96839,.78864,.82845,.84133,.75859,.83908,.83908,.83908,.83908,.83908,.83908,.77539,.71805,.73133,.73133,.73133,.73133,.95958,.95958,.95958,.95958,.88506,.90872,.85938,.85938,.85938,.85938,.85938,.85284,.87068,.90399,.90399,.90399,.90399,.77892,.79795,.90807,.94908,.94908,.94908,.94908,.94908,.94908,.85887,.74012,.88323,.88323,.88323,.88323,.88401,.88401,.88401,.88401,.8785,.86331,.86331,.86331,.86331,.86331,.86331,.90747,.89049,.86331,.86331,.86331,.86331,.84548,.86411,.84548,.83908,.94908,.83908,.94908,.83908,.94908,.71805,.74012,.71805,.74012,.71805,.74012,.71805,.74012,.87289,.79538,.88506,.92726,.73133,.88323,.73133,.88323,.73133,.88323,.73133,.88323,.73133,.88323,.81921,.86411,.81921,.86411,.81921,.86411,1,1,.87356,.86331,.91075,.8777,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.95958,.88401,.76467,.90167,.59526,.91916,1,1,.86304,.69225,.88401,1,1,.70424,.77312,.91926,.88175,.70823,.94903,.90872,.86331,1,1,.90872,.86331,.86906,.88116,.86331,.85938,.86331,.85938,.86331,.85938,.86331,.87402,.86549,.77958,.90464,1,1,.77958,.90464,.69766,.70852,.69766,.70852,.69766,.70852,.69766,.70852,1,1,.81055,.75841,.81055,1.06452,.90399,.86331,.90399,.86331,.90399,.86331,.90399,.86331,.90399,.86331,.90399,.86331,.96068,.95794,.77892,.84548,.77892,.78257,.79492,.78257,.79492,.78257,.79492,.9297,.56892,.83908,.94908,.77539,.85887,.87068,.89049,1,1,.81055,1.04106,1.20528,1.20528,1,1.15543,.70088,.98387,.94721,1.33431,1.45894,.95161,1.48387,.83908,.80352,.57118,.6965,.56347,.79179,.55853,.80346,1.02988,.83908,.7762,.67174,.86036,.73133,.78257,.87356,.86441,.95958,.75727,.89019,1.04924,.90872,.74889,.85938,.87891,.79795,.7957,.81055,.77892,.97447,.82577,.97466,.87179,.95958,.77892,.94252,.95612,.8753,1.02988,.92733,.94252,.87411,.84021,.8728,.95612,.74081,.8753,1.02189,1.02988,.84814,.87445,.91822,.84723,.85668,.86331,.81344,.87581,.76422,.82046,.96057,.92733,.99375,.78022,.95452,.86015,1.02988,.92733,.86331,.92733,.86015,.73133,1,1,1,1,1,1,1,1,1,1,1,1,.90631,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.88323,1,1,1,1,1,1,1,1,1,1,1,1,.85174,1,1,1,1,1,1,.96068,.95794,.96068,.95794,.96068,.95794,.77892,.84548,1,1,.89552,.90527,1,.90363,.92794,.92794,.92794,.89807,.87012,.87012,.87012,.89552,.89552,1.42259,.71094,1.06152,1,1,1.03372,1.03372,.97171,1.4956,2.2807,.92972,.83406,.91133,.83326,.91133,1,1,1,.72021,1,1.23108,.83489,.88525,.88525,.81499,.90616,1.81055,.90527,1.81055,1.3107,1.53711,.94434,1.08696,1,.95018,.77192,.85284,.90747,1.17534,.69825,.9716,1.37077,.90747,.90747,.85356,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.99862,.99862,1,1,1,1,1,1.08004,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,.90727,.90727,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.CalibriBoldItalicMetrics={lineHeight:1.2207,lineGap:.2207};t.CalibriItalicFactors=[1.3877,1,1,1,1.17223,1.1293,.89552,.91133,.80395,1.02269,1.15601,.91056,.91056,1.2798,.85284,.89807,1,.90861,1.39543,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.96309,.96309,.85284,.85284,.85284,.83319,.88071,.8675,.81552,.72346,.85193,.73206,.7522,.81105,.86275,.90685,.6377,.77892,.75593,1.02638,.89249,.84118,.77452,.85374,.75186,.67789,.79776,.88844,.85066,.94309,.77818,.7306,.76659,1.10369,1.38313,1.10369,1.06139,.89552,.8739,.9245,.9245,.83203,.9245,.85865,1.09842,.9245,.9245,1.03297,1.07692,.90918,1.03297,.94959,.9245,.92274,.9245,.9245,1.02933,.77832,1.20562,.9245,.8916,.98986,.86621,.89453,.79004,.94152,1.77256,.94152,.85284,.97801,.89552,.91133,.89552,.91133,1.91729,.89552,1.17889,1.13254,1.16359,.92098,.85284,.68787,.71353,.84737,.90747,1.0088,1.0044,.87683,1,1.09091,1,.92229,.739,1.15642,.92098,.76288,.80504,.80972,.75859,.8675,.8675,.8675,.8675,.8675,.8675,.76318,.72346,.73206,.73206,.73206,.73206,.90685,.90685,.90685,.90685,.86477,.89249,.84118,.84118,.84118,.84118,.84118,.85284,.84557,.88844,.88844,.88844,.88844,.7306,.77452,.86331,.9245,.9245,.9245,.9245,.9245,.9245,.84843,.83203,.85865,.85865,.85865,.85865,.82601,.82601,.82601,.82601,.94469,.9245,.92274,.92274,.92274,.92274,.92274,.90747,.86651,.9245,.9245,.9245,.9245,.89453,.9245,.89453,.8675,.9245,.8675,.9245,.8675,.9245,.72346,.83203,.72346,.83203,.72346,.83203,.72346,.83203,.85193,.8875,.86477,.99034,.73206,.85865,.73206,.85865,.73206,.85865,.73206,.85865,.73206,.85865,.81105,.9245,.81105,.9245,.81105,.9245,1,1,.86275,.9245,.90872,.93591,.90685,.82601,.90685,.82601,.90685,.82601,.90685,1.03297,.90685,.82601,.77896,1.05611,.6377,1.07692,1,1,.90918,.75593,1.03297,1,1,.76032,.9375,.98156,.93407,.77261,1.11429,.89249,.9245,1,1,.89249,.9245,.92534,.86698,.9245,.84118,.92274,.84118,.92274,.84118,.92274,.8667,.86291,.75186,1.02933,1,1,.75186,1.02933,.67789,.77832,.67789,.77832,.67789,.77832,.67789,.77832,1,1,.79776,.97655,.79776,1.23023,.88844,.9245,.88844,.9245,.88844,.9245,.88844,.9245,.88844,.9245,.88844,.9245,.94309,.98986,.7306,.89453,.7306,.76659,.79004,.76659,.79004,.76659,.79004,1.09231,.54873,.8675,.9245,.76318,.84843,.84557,.86651,1,1,.79776,1.20562,1.18622,1.18622,1,1.1437,.67009,.96334,.93695,1.35191,1.40909,.95161,1.48387,.8675,.90861,.6192,.7363,.64824,.82411,.56321,.85696,1.23516,.8675,.81552,.7286,.84134,.73206,.76659,.86275,.84369,.90685,.77892,.85871,1.02638,.89249,.75828,.84118,.85984,.77452,.76466,.79776,.7306,.90782,.77818,.903,.87291,.90685,.7306,.99058,1.03667,.94635,1.23516,.9849,.99058,.92393,.8916,.942,1.03667,.75026,.94635,1.0297,1.23516,.90918,.94048,.98217,.89746,.84153,.92274,.82507,.88832,.84438,.88178,1.03525,.9849,1.00225,.78086,.97248,.89404,1.23516,.9849,.92274,.9849,.89404,.73206,1,1,1,1,1,1,1,1,1,1,1,1,.89693,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.85865,1,1,1,1,1,1,1,1,1,1,1,1,.90933,1,1,1,1,1,1,.94309,.98986,.94309,.98986,.94309,.98986,.7306,.89453,1,1,.89552,.90527,1,.90186,1.12308,1.12308,1.12308,1.12308,1.2566,1.2566,1.2566,.89552,.89552,1.42259,.68994,1.03809,1,1,1.0176,1.0176,1.11523,1.4956,2.01462,.97858,.82616,.91133,.83437,.91133,1,1,1,.70508,1,1.23108,.79801,.84426,.84426,.774,.90572,1.81055,.90749,1.81055,1.28809,1.55469,.94434,1.07806,1,.97094,.7589,.85284,.90747,1.19658,.69825,.97622,1.33512,.90747,.90747,.85284,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.99862,.99862,1,1,1,1,1,1.0336,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,1.05859,1.05859,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.CalibriItalicMetrics={lineHeight:1.2207,lineGap:.2207};t.CalibriRegularFactors=[1.3877,1,1,1,1.17223,1.1293,.89552,.91133,.80395,1.02269,1.15601,.91056,.91056,1.2798,.85284,.89807,1,.90861,1.39016,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.91133,.96309,.96309,.85284,.85284,.85284,.83319,.88071,.8675,.81552,.73834,.85193,.73206,.7522,.81105,.86275,.90685,.6377,.77892,.75593,1.02638,.89385,.85122,.77452,.86503,.75186,.68887,.79776,.88844,.85066,.94258,.77818,.7306,.76659,1.10369,1.39016,1.10369,1.06139,.89552,.8739,.86128,.94469,.8457,.94469,.89464,1.09842,.84636,.94469,1.03297,1.07692,.90918,1.03297,.95897,.94469,.9482,.94469,.94469,1.04692,.78223,1.20562,.94469,.90332,.98986,.86621,.90527,.79004,.94152,1.77256,.94152,.85284,.97801,.89552,.91133,.89552,.91133,1.91729,.89552,1.17889,1.13254,1.08707,.92098,.85284,.68787,.71353,.84737,.90747,1.0088,1.0044,.87683,1,1.09091,1,.92229,.739,1.15642,.92098,.76288,.80504,.80972,.75859,.8675,.8675,.8675,.8675,.8675,.8675,.76318,.73834,.73206,.73206,.73206,.73206,.90685,.90685,.90685,.90685,.86477,.89385,.85122,.85122,.85122,.85122,.85122,.85284,.85311,.88844,.88844,.88844,.88844,.7306,.77452,.86331,.86128,.86128,.86128,.86128,.86128,.86128,.8693,.8457,.89464,.89464,.89464,.89464,.82601,.82601,.82601,.82601,.94469,.94469,.9482,.9482,.9482,.9482,.9482,.90747,.86651,.94469,.94469,.94469,.94469,.90527,.94469,.90527,.8675,.86128,.8675,.86128,.8675,.86128,.73834,.8457,.73834,.8457,.73834,.8457,.73834,.8457,.85193,.92454,.86477,.9921,.73206,.89464,.73206,.89464,.73206,.89464,.73206,.89464,.73206,.89464,.81105,.84636,.81105,.84636,.81105,.84636,1,1,.86275,.94469,.90872,.95786,.90685,.82601,.90685,.82601,.90685,.82601,.90685,1.03297,.90685,.82601,.77741,1.05611,.6377,1.07692,1,1,.90918,.75593,1.03297,1,1,.76032,.90452,.98156,1.11842,.77261,1.11429,.89385,.94469,1,1,.89385,.94469,.95877,.86901,.94469,.85122,.9482,.85122,.9482,.85122,.9482,.8667,.90016,.75186,1.04692,1,1,.75186,1.04692,.68887,.78223,.68887,.78223,.68887,.78223,.68887,.78223,1,1,.79776,.92188,.79776,1.23023,.88844,.94469,.88844,.94469,.88844,.94469,.88844,.94469,.88844,.94469,.88844,.94469,.94258,.98986,.7306,.90527,.7306,.76659,.79004,.76659,.79004,.76659,.79004,1.09231,.54873,.8675,.86128,.76318,.8693,.85311,.86651,1,1,.79776,1.20562,1.18622,1.18622,1,1.1437,.67742,.96334,.93695,1.35191,1.40909,.95161,1.48387,.86686,.90861,.62267,.74359,.65649,.85498,.56963,.88254,1.23516,.8675,.81552,.75443,.84503,.73206,.76659,.86275,.85122,.90685,.77892,.85746,1.02638,.89385,.75657,.85122,.86275,.77452,.74171,.79776,.7306,.95165,.77818,.89772,.88831,.90685,.7306,.98142,1.02191,.96576,1.23516,.99018,.98142,.9236,.89258,.94035,1.02191,.78848,.96576,.9561,1.23516,.90918,.92578,.95424,.89746,.83969,.9482,.80113,.89442,.85208,.86155,.98022,.99018,1.00452,.81209,.99247,.89181,1.23516,.99018,.9482,.99018,.89181,.73206,1,1,1,1,1,1,1,1,1,1,1,1,.88844,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.89464,1,1,1,1,1,1,1,1,1,1,1,1,.96766,1,1,1,1,1,1,.94258,.98986,.94258,.98986,.94258,.98986,.7306,.90527,1,1,.89552,.90527,1,.90186,1.12308,1.12308,1.12308,1.12308,1.2566,1.2566,1.2566,.89552,.89552,1.42259,.69043,1.03809,1,1,1.0176,1.0176,1.11523,1.4956,2.01462,.99331,.82616,.91133,.84286,.91133,1,1,1,.70508,1,1.23108,.79801,.84426,.84426,.774,.90527,1.81055,.90527,1.81055,1.28809,1.55469,.94434,1.07806,1,.97094,.7589,.85284,.90747,1.19658,.69825,.97622,1.33512,.90747,.90747,.85356,.90747,.90747,1.44947,.85284,.8941,.8941,.70572,.8,.70572,.70572,.70572,.70572,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.99862,.99862,1,1,1,1,1,1.0336,.91027,1,1,1,.99862,1,1,1,1,1,1,1,1,1,1,1,1,1.05859,1.05859,1,1,1,1.07185,.99413,.96334,1.08065,1,1,1,1,1,1,1,1,1,1,1];t.CalibriRegularMetrics={lineHeight:1.2207,lineGap:.2207}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.HelveticaRegularMetrics=t.HelveticaRegularFactors=t.HelveticaItalicMetrics=t.HelveticaItalicFactors=t.HelveticaBoldMetrics=t.HelveticaBoldItalicMetrics=t.HelveticaBoldItalicFactors=t.HelveticaBoldFactors=void 0;t.HelveticaBoldFactors=[.76116,1,1,1.0006,.99998,.99974,.99973,.99973,.99982,.99977,1.00087,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99998,1,1.00003,1.00003,1.00003,1.00026,.9999,.99977,.99977,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,.99973,.99977,1.00026,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,.99998,1.0006,.99998,1.00003,.99973,.99998,.99973,1.00026,.99973,1.00026,.99973,.99998,1.00026,1.00026,1.0006,1.0006,.99973,1.0006,.99982,1.00026,1.00026,1.00026,1.00026,.99959,.99973,.99998,1.00026,.99973,1.00022,.99973,.99973,1,.99959,1.00077,.99959,1.00003,.99998,.99973,.99973,.99973,.99973,1.00077,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.99973,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,.99977,.99977,.99977,.99977,.99977,.99977,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,.99973,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.06409,1.00026,1.00026,1.00026,1.00026,1.00026,.99973,1.00026,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,1.03374,.99977,1.00026,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,.99977,1.00026,.99977,1.00026,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.00042,.99973,.99973,1.0006,.99977,.99973,.99973,1.00026,1.0006,1.00026,1.0006,1.00026,1.03828,1.00026,.99999,1.00026,1.0006,.99977,1.00026,.99977,1.00026,.99977,1.00026,.9993,.9998,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1,1.00016,.99977,.99959,.99977,.99959,.99977,.99959,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00026,.99998,1.00026,.8121,1.00026,.99998,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,1.00016,1.00022,1.00001,.99973,1.00001,1.00026,1,1.00026,1,1.00026,1,1.0006,.99973,.99977,.99973,1,.99982,1.00022,1.00026,1.00001,.99973,1.00026,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,1.00034,.99977,1,.99997,1.00026,1.00078,1.00036,.99973,1.00013,1.0006,.99977,.99977,.99988,.85148,1.00001,1.00026,.99977,1.00022,1.0006,.99977,1.00001,.99999,.99977,1.00069,1.00022,.99977,1.00001,.99984,1.00026,1.00001,1.00024,1.00001,.9999,1,1.0006,1.00001,1.00041,.99962,1.00026,1.0006,.99995,1.00041,.99942,.99973,.99927,1.00082,.99902,1.00026,1.00087,1.0006,1.00069,.99973,.99867,.99973,.9993,1.00026,1.00049,1.00056,1,.99988,.99935,.99995,.99954,1.00055,.99945,1.00032,1.0006,.99995,1.00026,.99995,1.00032,1.00001,1.00008,.99971,1.00019,.9994,1.00001,1.0006,1.00044,.99973,1.00023,1.00047,1,.99942,.99561,.99989,1.00035,.99977,1.00035,.99977,1.00019,.99944,1.00001,1.00021,.99926,1.00035,1.00035,.99942,1.00048,.99999,.99977,1.00022,1.00035,1.00001,.99977,1.00026,.99989,1.00057,1.00001,.99936,1.00052,1.00012,.99996,1.00043,1,1.00035,.9994,.99976,1.00035,.99973,1.00052,1.00041,1.00119,1.00037,.99973,1.00002,.99986,1.00041,1.00041,.99902,.9996,1.00034,.99999,1.00026,.99999,1.00026,.99973,1.00052,.99973,1,.99973,1.00041,1.00075,.9994,1.0003,.99999,1,1.00041,.99955,1,.99915,.99973,.99973,1.00026,1.00119,.99955,.99973,1.0006,.99911,1.0006,1.00026,.99972,1.00026,.99902,1.00041,.99973,.99999,1,1,1.00038,1.0005,1.00016,1.00022,1.00016,1.00022,1.00016,1.00022,1.00001,.99973,1,1,.99973,1,1,.99955,1.0006,1.0006,1.0006,1.0006,1,1,1,.99973,.99973,.99972,1,1,1.00106,.99999,.99998,.99998,.99999,.99998,1.66475,1,.99973,.99973,1.00023,.99973,.99971,1.00047,1.00023,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1,1,1,1,1,1,1,.99972,1,1.20985,1.39713,1.00003,1.00031,1.00015,1,.99561,1.00027,1.00031,1.00031,.99915,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.99972,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,.99998,.99998,.99998,.99998,1,1,1,1,1,1,1,1,1,1,1];t.HelveticaBoldMetrics={lineHeight:1.2,lineGap:.2};t.HelveticaBoldItalicFactors=[.76116,1,1,1.0006,.99998,.99974,.99973,.99973,.99982,.99977,1.00087,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99998,1,1.00003,1.00003,1.00003,1.00026,.9999,.99977,.99977,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,.99973,.99977,1.00026,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,.99998,1.0006,.99998,1.00003,.99973,.99998,.99973,1.00026,.99973,1.00026,.99973,.99998,1.00026,1.00026,1.0006,1.0006,.99973,1.0006,.99982,1.00026,1.00026,1.00026,1.00026,.99959,.99973,.99998,1.00026,.99973,1.00022,.99973,.99973,1,.99959,1.00077,.99959,1.00003,.99998,.99973,.99973,.99973,.99973,1.00077,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.99973,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,.99977,.99977,.99977,.99977,.99977,.99977,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,.99973,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.00026,1.06409,1.00026,1.00026,1.00026,1.00026,1.00026,.99973,1.00026,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,1.0044,.99977,1.00026,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,.99977,1.00026,.99977,1.00026,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,.99971,.99973,.99973,1.0006,.99977,.99973,.99973,1.00026,1.0006,1.00026,1.0006,1.00026,1.01011,1.00026,.99999,1.00026,1.0006,.99977,1.00026,.99977,1.00026,.99977,1.00026,.9993,.9998,1.00026,1.00022,1.00026,1.00022,1.00026,1.00022,1.00026,1,1.00016,.99977,.99959,.99977,.99959,.99977,.99959,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00026,.99998,1.00026,.8121,1.00026,.99998,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,.99977,1.00026,1.00016,1.00022,1.00001,.99973,1.00001,1.00026,1,1.00026,1,1.00026,1,1.0006,.99973,.99977,.99973,1,.99982,1.00022,1.00026,1.00001,.99973,1.00026,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99977,1,1,1.00026,.99969,.99972,.99981,.9998,1.0006,.99977,.99977,1.00022,.91155,1.00001,1.00026,.99977,1.00022,1.0006,.99977,1.00001,.99999,.99977,.99966,1.00022,1.00032,1.00001,.99944,1.00026,1.00001,.99968,1.00001,1.00047,1,1.0006,1.00001,.99981,1.00101,1.00026,1.0006,.99948,.99981,1.00064,.99973,.99942,1.00101,1.00061,1.00026,1.00069,1.0006,1.00014,.99973,1.01322,.99973,1.00065,1.00026,1.00012,.99923,1,1.00064,1.00076,.99948,1.00055,1.00063,1.00007,.99943,1.0006,.99948,1.00026,.99948,.99943,1.00001,1.00001,1.00029,1.00038,1.00035,1.00001,1.0006,1.0006,.99973,.99978,1.00001,1.00057,.99989,.99967,.99964,.99967,.99977,.99999,.99977,1.00038,.99977,1.00001,.99973,1.00066,.99967,.99967,1.00041,.99998,.99999,.99977,1.00022,.99967,1.00001,.99977,1.00026,.99964,1.00031,1.00001,.99999,.99999,1,1.00023,1,1,.99999,1.00035,1.00001,.99999,.99973,.99977,.99999,1.00058,.99973,.99973,.99955,.9995,1.00026,1.00026,1.00032,.99989,1.00034,.99999,1.00026,1.00026,1.00026,.99973,.45998,.99973,1.00026,.99973,1.00001,.99999,.99982,.99994,.99996,1,1.00042,1.00044,1.00029,1.00023,.99973,.99973,1.00026,.99949,1.00002,.99973,1.0006,1.0006,1.0006,.99975,1.00026,1.00026,1.00032,.98685,.99973,1.00026,1,1,.99966,1.00044,1.00016,1.00022,1.00016,1.00022,1.00016,1.00022,1.00001,.99973,1,1,.99973,1,1,.99955,1.0006,1.0006,1.0006,1.0006,1,1,1,.99973,.99973,.99972,1,1,1.00106,.99999,.99998,.99998,.99999,.99998,1.66475,1,.99973,.99973,1,.99973,.99971,.99978,1,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1.00098,1,1,1,1.00049,1,1,.99972,1,1.20985,1.39713,1.00003,1.00031,1.00015,1,.99561,1.00027,1.00031,1.00031,.99915,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.99972,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,.99998,.99998,.99998,.99998,1,1,1,1,1,1,1,1,1,1,1];t.HelveticaBoldItalicMetrics={lineHeight:1.35,lineGap:.2};t.HelveticaItalicFactors=[.76116,1,1,1.0006,1.0006,1.00006,.99973,.99973,.99982,1.00001,1.00043,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.0006,1,1.00003,1.00003,1.00003,.99973,.99987,1.00001,1.00001,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,1,1.00001,.99973,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,1.0006,1.0006,1.0006,.99949,.99973,.99998,.99973,.99973,1,.99973,.99973,1.0006,.99973,.99973,.99924,.99924,1,.99924,.99999,.99973,.99973,.99973,.99973,.99998,1,1.0006,.99973,1,.99977,1,1,1,1.00005,1.0009,1.00005,1.00003,.99998,.99973,.99973,.99973,.99973,1.0009,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.9998,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,1.00001,1.00001,1.00001,1.00001,1.00001,1.00001,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,1,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.06409,1.00026,.99973,.99973,.99973,.99973,1,.99973,1,1.00001,.99973,1.00001,.99973,1.00001,.99973,.99977,1,.99977,1,.99977,1,.99977,1,.99977,1.0288,.99977,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,.99977,.99973,.99977,.99973,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,.99924,1.0006,1.0006,.99946,1.00034,1,.99924,1.00001,1,1,.99973,.99924,.99973,.99924,.99973,1.06311,.99973,1.00024,.99973,.99924,.99977,.99973,.99977,.99973,.99977,.99973,1.00041,.9998,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1,1.00016,.99977,.99998,.99977,.99998,.99977,.99998,1.00001,1,1.00001,1,1.00001,1,1.00001,1,1.00026,1.0006,1.00026,.89547,1.00026,1.0006,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,1.00016,.99977,1.00001,1,1.00001,1.00026,1,1.00026,1,1.00026,1,.99924,.99973,1.00001,.99973,1,.99982,1.00022,1.00026,1.00001,1,1.00026,1.0006,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,1.00001,1,1.00054,.99977,1.00084,1.00007,.99973,1.00013,.99924,1.00001,1.00001,.99945,.91221,1.00001,1.00026,.99977,1.00022,1.0006,1.00001,1.00001,.99999,.99977,.99933,1.00022,1.00054,1.00001,1.00065,1.00026,1.00001,1.0001,1.00001,1.00052,1,1.0006,1.00001,.99945,.99897,.99968,.99924,1.00036,.99945,.99949,1,1.0006,.99897,.99918,.99968,.99911,.99924,1,.99962,1.01487,1,1.0005,.99973,1.00012,1.00043,1,.99995,.99994,1.00036,.99947,1.00019,1.00063,1.00025,.99924,1.00036,.99973,1.00036,1.00025,1.00001,1.00001,1.00027,1.0001,1.00068,1.00001,1.0006,1.0006,1,1.00008,.99957,.99972,.9994,.99954,.99975,1.00051,1.00001,1.00019,1.00001,1.0001,.99986,1.00001,1.00001,1.00038,.99954,.99954,.9994,1.00066,.99999,.99977,1.00022,1.00054,1.00001,.99977,1.00026,.99975,1.0001,1.00001,.99993,.9995,.99955,1.00016,.99978,.99974,1.00019,1.00022,.99955,1.00053,.99973,1.00089,1.00005,.99967,1.00048,.99973,1.00002,1.00034,.99973,.99973,.99964,1.00006,1.00066,.99947,.99973,.98894,.99973,1,.44898,1,.99946,1,1.00039,1.00082,.99991,.99991,.99985,1.00022,1.00023,1.00061,1.00006,.99966,.99973,.99973,.99973,1.00019,1.0008,1,.99924,.99924,.99924,.99983,1.00044,.99973,.99964,.98332,1,.99973,1,1,.99962,.99895,1.00016,.99977,1.00016,.99977,1.00016,.99977,1.00001,1,1,1,.99973,1,1,.99955,.99924,.99924,.99924,.99924,.99998,.99998,.99998,.99973,.99973,.99972,1,1,1.00267,.99999,.99998,.99998,1,.99998,1.66475,1,.99973,.99973,1.00023,.99973,1.00423,.99925,.99999,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1.00049,1,1.00245,1,1,1,1,.96329,1,1.20985,1.39713,1.00003,.8254,1.00015,1,1.00035,1.00027,1.00031,1.00031,1.00003,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.95317,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,.99998,.99998,.99998,.99998,1,1,1,1,1,1,1,1,1,1,1];t.HelveticaItalicMetrics={lineHeight:1.35,lineGap:.2};t.HelveticaRegularFactors=[.76116,1,1,1.0006,1.0006,1.00006,.99973,.99973,.99982,1.00001,1.00043,.99998,.99998,.99959,1.00003,1.0006,.99998,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.0006,1,1.00003,1.00003,1.00003,.99973,.99987,1.00001,1.00001,.99977,.99977,1.00001,1.00026,1.00022,.99977,1.0006,1,1.00001,.99973,.99999,.99977,1.00022,1.00001,1.00022,.99977,1.00001,1.00026,.99977,1.00001,1.00016,1.00001,1.00001,1.00026,1.0006,1.0006,1.0006,.99949,.99973,.99998,.99973,.99973,1,.99973,.99973,1.0006,.99973,.99973,.99924,.99924,1,.99924,.99999,.99973,.99973,.99973,.99973,.99998,1,1.0006,.99973,1,.99977,1,1,1,1.00005,1.0009,1.00005,1.00003,.99998,.99973,.99973,.99973,.99973,1.0009,.99973,.99998,1.00025,.99968,.99973,1.00003,1.00025,.60299,1.00024,1.06409,1,1,.99998,1,.9998,1.0006,.99998,1,.99936,.99973,1.00002,1.00002,1.00002,1.00026,1.00001,1.00001,1.00001,1.00001,1.00001,1.00001,1,.99977,1.00001,1.00001,1.00001,1.00001,1.0006,1.0006,1.0006,1.0006,.99977,.99977,1.00022,1.00022,1.00022,1.00022,1.00022,1.00003,1.00022,.99977,.99977,.99977,.99977,1.00001,1.00001,1.00026,.99973,.99973,.99973,.99973,.99973,.99973,.99982,1,.99973,.99973,.99973,.99973,1.0006,1.0006,1.0006,1.0006,.99973,.99973,.99973,.99973,.99973,.99973,.99973,1.06409,1.00026,.99973,.99973,.99973,.99973,1,.99973,1,1.00001,.99973,1.00001,.99973,1.00001,.99973,.99977,1,.99977,1,.99977,1,.99977,1,.99977,1.04596,.99977,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00001,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,.99977,.99973,.99977,.99973,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,1.0006,.99924,1.0006,1.0006,1.00019,1.00034,1,.99924,1.00001,1,1,.99973,.99924,.99973,.99924,.99973,1.02572,.99973,1.00005,.99973,.99924,.99977,.99973,.99977,.99973,.99977,.99973,.99999,.9998,.99973,1.00022,.99973,1.00022,.99973,1.00022,.99973,1,1.00016,.99977,.99998,.99977,.99998,.99977,.99998,1.00001,1,1.00001,1,1.00001,1,1.00001,1,1.00026,1.0006,1.00026,.84533,1.00026,1.0006,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,.99977,.99973,1.00016,.99977,1.00001,1,1.00001,1.00026,1,1.00026,1,1.00026,1,.99924,.99973,1.00001,.99973,1,.99982,1.00022,1.00026,1.00001,1,1.00026,1.0006,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99998,.99928,1,.99977,1.00013,1.00055,.99947,.99945,.99941,.99924,1.00001,1.00001,1.0004,.91621,1.00001,1.00026,.99977,1.00022,1.0006,1.00001,1.00005,.99999,.99977,1.00015,1.00022,.99977,1.00001,.99973,1.00026,1.00001,1.00019,1.00001,.99946,1,1.0006,1.00001,.99978,1.00045,.99973,.99924,1.00023,.99978,.99966,1,1.00065,1.00045,1.00019,.99973,.99973,.99924,1,1,.96499,1,1.00055,.99973,1.00008,1.00027,1,.9997,.99995,1.00023,.99933,1.00019,1.00015,1.00031,.99924,1.00023,.99973,1.00023,1.00031,1.00001,.99928,1.00029,1.00092,1.00035,1.00001,1.0006,1.0006,1,.99988,.99975,1,1.00082,.99561,.9996,1.00035,1.00001,.99962,1.00001,1.00092,.99964,1.00001,.99963,.99999,1.00035,1.00035,1.00082,.99962,.99999,.99977,1.00022,1.00035,1.00001,.99977,1.00026,.9996,.99967,1.00001,1.00034,1.00074,1.00054,1.00053,1.00063,.99971,.99962,1.00035,.99975,.99977,.99973,1.00043,.99953,1.0007,.99915,.99973,1.00008,.99892,1.00073,1.00073,1.00114,.99915,1.00073,.99955,.99973,1.00092,.99973,1,.99998,1,1.0003,1,1.00043,1.00001,.99969,1.0003,1,1.00035,1.00001,.9995,1,1.00092,.99973,.99973,.99973,1.0007,.9995,1,.99924,1.0006,.99924,.99972,1.00062,.99973,1.00114,1.00073,1,.99955,1,1,1.00047,.99968,1.00016,.99977,1.00016,.99977,1.00016,.99977,1.00001,1,1,1,.99973,1,1,.99955,.99924,.99924,.99924,.99924,.99998,.99998,.99998,.99973,.99973,.99972,1,1,1.00267,.99999,.99998,.99998,1,.99998,1.66475,1,.99973,.99973,1.00023,.99973,.99971,.99925,1.00023,1,.99991,.99984,1.00002,1.00002,1.00002,1.00002,1,1,1,1,1,1,1,.96329,1,1.20985,1.39713,1.00003,.8254,1.00015,1,1.00035,1.00027,1.00031,1.00031,.99915,1.00031,1.00031,.99999,1.00003,.99999,.99999,1.41144,1.6,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.41144,1.40579,1.40579,1.36625,.99999,1,.99861,.99861,1,1.00026,1.00026,1.00026,1.00026,.95317,.99999,.99999,.99999,.99999,1.40483,1,.99977,1.00054,1,1,.99953,.99962,1.00042,.9995,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.HelveticaRegularMetrics={lineHeight:1.2,lineGap:.2}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.LiberationSansRegularWidths=t.LiberationSansRegularMapping=t.LiberationSansItalicWidths=t.LiberationSansItalicMapping=t.LiberationSansBoldWidths=t.LiberationSansBoldMapping=t.LiberationSansBoldItalicWidths=t.LiberationSansBoldItalicMapping=void 0;t.LiberationSansBoldWidths=[365,0,333,278,333,474,556,556,889,722,238,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,333,333,584,584,584,611,975,722,722,722,722,667,611,778,722,278,556,722,611,833,722,778,667,778,722,667,611,722,667,944,667,667,611,333,278,333,584,556,333,556,611,556,611,556,333,611,611,278,278,556,278,889,611,611,611,611,389,556,333,611,556,778,556,556,500,389,280,389,584,333,556,556,556,556,280,556,333,737,370,556,584,737,552,400,549,333,333,333,576,556,278,333,333,365,556,834,834,834,611,722,722,722,722,722,722,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,556,556,556,556,556,278,278,278,278,611,611,611,611,611,611,611,549,611,611,611,611,611,556,611,556,722,556,722,556,722,556,722,556,722,556,722,556,722,556,722,719,722,611,667,556,667,556,667,556,667,556,667,556,778,611,778,611,778,611,778,611,722,611,722,611,278,278,278,278,278,278,278,278,278,278,785,556,556,278,722,556,556,611,278,611,278,611,385,611,479,611,278,722,611,722,611,722,611,708,723,611,778,611,778,611,778,611,1e3,944,722,389,722,389,722,389,667,556,667,556,667,556,667,556,611,333,611,479,611,333,722,611,722,611,722,611,722,611,722,611,722,611,944,778,667,556,667,611,500,611,500,611,500,278,556,722,556,1e3,889,778,611,667,556,611,333,333,333,333,333,333,333,333,333,333,333,465,722,333,853,906,474,825,927,838,278,722,722,601,719,667,611,722,778,278,722,667,833,722,644,778,722,667,600,611,667,821,667,809,802,278,667,615,451,611,278,582,615,610,556,606,475,460,611,541,278,558,556,612,556,445,611,766,619,520,684,446,582,715,576,753,845,278,582,611,582,845,667,669,885,567,711,667,278,276,556,1094,1062,875,610,722,622,719,722,719,722,567,712,667,904,626,719,719,610,702,833,722,778,719,667,722,611,622,854,667,730,703,1005,1019,870,979,719,711,1031,719,556,618,615,417,635,556,709,497,615,615,500,635,740,604,611,604,611,556,490,556,875,556,615,581,833,844,729,854,615,552,854,583,556,556,611,417,552,556,278,281,278,969,906,611,500,615,556,604,778,611,487,447,944,778,944,778,944,778,667,556,333,333,556,1e3,1e3,552,278,278,278,278,500,500,500,556,556,350,1e3,1e3,240,479,333,333,604,333,167,396,556,556,1094,556,885,489,1115,1e3,768,600,834,834,834,834,1e3,500,1e3,500,1e3,500,500,494,612,823,713,584,549,713,979,722,274,549,549,583,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,611,611,333,333,333,333,333,333,333,333,222,222,333,333,333,333,333,333,333,333];t.LiberationSansBoldMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];t.LiberationSansBoldItalicWidths=[365,0,333,278,333,474,556,556,889,722,238,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,333,333,584,584,584,611,975,722,722,722,722,667,611,778,722,278,556,722,611,833,722,778,667,778,722,667,611,722,667,944,667,667,611,333,278,333,584,556,333,556,611,556,611,556,333,611,611,278,278,556,278,889,611,611,611,611,389,556,333,611,556,778,556,556,500,389,280,389,584,333,556,556,556,556,280,556,333,737,370,556,584,737,552,400,549,333,333,333,576,556,278,333,333,365,556,834,834,834,611,722,722,722,722,722,722,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,556,556,556,556,556,278,278,278,278,611,611,611,611,611,611,611,549,611,611,611,611,611,556,611,556,722,556,722,556,722,556,722,556,722,556,722,556,722,556,722,740,722,611,667,556,667,556,667,556,667,556,667,556,778,611,778,611,778,611,778,611,722,611,722,611,278,278,278,278,278,278,278,278,278,278,782,556,556,278,722,556,556,611,278,611,278,611,396,611,479,611,278,722,611,722,611,722,611,708,723,611,778,611,778,611,778,611,1e3,944,722,389,722,389,722,389,667,556,667,556,667,556,667,556,611,333,611,479,611,333,722,611,722,611,722,611,722,611,722,611,722,611,944,778,667,556,667,611,500,611,500,611,500,278,556,722,556,1e3,889,778,611,667,556,611,333,333,333,333,333,333,333,333,333,333,333,333,722,333,854,906,473,844,930,847,278,722,722,610,671,667,611,722,778,278,722,667,833,722,657,778,718,667,590,611,667,822,667,829,781,278,667,620,479,611,278,591,620,621,556,610,479,492,611,558,278,566,556,603,556,450,611,712,605,532,664,409,591,704,578,773,834,278,591,611,591,834,667,667,886,614,719,667,278,278,556,1094,1042,854,622,719,677,719,722,708,722,614,722,667,927,643,719,719,615,687,833,722,778,719,667,722,611,677,781,667,729,708,979,989,854,1e3,708,719,1042,729,556,619,604,534,618,556,736,510,611,611,507,622,740,604,611,611,611,556,889,556,885,556,646,583,889,935,707,854,594,552,865,589,556,556,611,469,563,556,278,278,278,969,906,611,507,619,556,611,778,611,575,467,944,778,944,778,944,778,667,556,333,333,556,1e3,1e3,552,278,278,278,278,500,500,500,556,556,350,1e3,1e3,240,479,333,333,604,333,167,396,556,556,1104,556,885,516,1146,1e3,768,600,834,834,834,834,999,500,1e3,500,1e3,500,500,494,612,823,713,584,549,713,979,722,274,549,549,583,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,611,611,333,333,333,333,333,333,333,333,222,222,333,333,333,333,333,333,333,333];t.LiberationSansBoldItalicMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];t.LiberationSansItalicWidths=[365,0,333,278,278,355,556,556,889,667,191,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,584,333,556,556,556,556,260,556,333,737,370,556,584,737,552,400,549,333,333,333,576,537,278,333,333,365,556,834,834,834,611,667,667,667,667,667,667,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,500,556,556,556,556,278,278,278,278,556,556,556,556,556,556,556,549,611,556,556,556,556,500,556,500,667,556,667,556,667,556,722,500,722,500,722,500,722,500,722,625,722,556,667,556,667,556,667,556,667,556,667,556,778,556,778,556,778,556,778,556,722,556,722,556,278,278,278,278,278,278,278,222,278,278,733,444,500,222,667,500,500,556,222,556,222,556,281,556,400,556,222,722,556,722,556,722,556,615,723,556,778,556,778,556,778,556,1e3,944,722,333,722,333,722,333,667,500,667,500,667,500,667,500,611,278,611,354,611,278,722,556,722,556,722,556,722,556,722,556,722,556,944,722,667,500,667,611,500,611,500,611,500,222,556,667,556,1e3,889,778,611,667,500,611,278,333,333,333,333,333,333,333,333,333,333,333,667,278,789,846,389,794,865,775,222,667,667,570,671,667,611,722,778,278,667,667,833,722,648,778,725,667,600,611,667,837,667,831,761,278,667,570,439,555,222,550,570,571,500,556,439,463,555,542,222,500,492,548,500,447,556,670,573,486,603,374,550,652,546,728,779,222,550,556,550,779,667,667,843,544,708,667,278,278,500,1066,982,844,589,715,639,724,667,651,667,544,704,667,917,614,715,715,589,686,833,722,778,725,667,722,611,639,795,667,727,673,920,923,805,886,651,694,1022,682,556,562,522,493,553,556,688,465,556,556,472,564,686,550,556,556,556,500,833,500,835,500,572,518,830,851,621,736,526,492,752,534,556,556,556,378,496,500,222,222,222,910,828,556,472,565,500,556,778,556,492,339,944,722,944,722,944,722,667,500,333,333,556,1e3,1e3,552,222,222,222,222,333,333,333,556,556,350,1e3,1e3,188,354,333,333,500,333,167,365,556,556,1094,556,885,323,1083,1e3,768,600,834,834,834,834,1e3,500,998,500,1e3,500,500,494,612,823,713,584,549,713,979,719,274,549,549,584,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,500,500,333,333,333,333,333,333,333,333,222,222,294,294,324,324,316,328,398,285];t.LiberationSansItalicMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];t.LiberationSansRegularWidths=[365,0,333,278,278,355,556,556,889,667,191,333,333,389,584,278,333,278,278,556,556,556,556,556,556,556,556,556,556,278,278,584,584,584,556,1015,667,667,722,722,667,611,778,722,278,500,667,556,833,722,778,667,778,722,667,611,722,667,944,667,667,611,278,278,278,469,556,333,556,556,500,556,556,278,556,556,222,222,500,222,833,556,556,556,556,333,500,278,556,500,722,500,500,500,334,260,334,584,333,556,556,556,556,260,556,333,737,370,556,584,737,552,400,549,333,333,333,576,537,278,333,333,365,556,834,834,834,611,667,667,667,667,667,667,1e3,722,667,667,667,667,278,278,278,278,722,722,778,778,778,778,778,584,778,722,722,722,722,667,667,611,556,556,556,556,556,556,889,500,556,556,556,556,278,278,278,278,556,556,556,556,556,556,556,549,611,556,556,556,556,500,556,500,667,556,667,556,667,556,722,500,722,500,722,500,722,500,722,615,722,556,667,556,667,556,667,556,667,556,667,556,778,556,778,556,778,556,778,556,722,556,722,556,278,278,278,278,278,278,278,222,278,278,735,444,500,222,667,500,500,556,222,556,222,556,292,556,334,556,222,722,556,722,556,722,556,604,723,556,778,556,778,556,778,556,1e3,944,722,333,722,333,722,333,667,500,667,500,667,500,667,500,611,278,611,375,611,278,722,556,722,556,722,556,722,556,722,556,722,556,944,722,667,500,667,611,500,611,500,611,500,222,556,667,556,1e3,889,778,611,667,500,611,278,333,333,333,333,333,333,333,333,333,333,333,667,278,784,838,384,774,855,752,222,667,667,551,668,667,611,722,778,278,667,668,833,722,650,778,722,667,618,611,667,798,667,835,748,278,667,578,446,556,222,547,578,575,500,557,446,441,556,556,222,500,500,576,500,448,556,690,569,482,617,395,547,648,525,713,781,222,547,556,547,781,667,667,865,542,719,667,278,278,500,1057,1010,854,583,722,635,719,667,656,667,542,677,667,923,604,719,719,583,656,833,722,778,719,667,722,611,635,760,667,740,667,917,938,792,885,656,719,1010,722,556,573,531,365,583,556,669,458,559,559,438,583,688,552,556,542,556,500,458,500,823,500,573,521,802,823,625,719,521,510,750,542,556,556,556,365,510,500,222,278,222,906,812,556,438,559,500,552,778,556,489,411,944,722,944,722,944,722,667,500,333,333,556,1e3,1e3,552,222,222,222,222,333,333,333,556,556,350,1e3,1e3,188,354,333,333,500,333,167,365,556,556,1094,556,885,323,1073,1e3,768,600,834,834,834,834,1e3,500,1e3,500,1e3,500,500,494,612,823,713,584,549,713,979,719,274,549,549,583,549,549,604,584,604,604,708,625,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,708,729,604,604,354,354,1e3,990,990,990,990,494,604,604,604,604,354,1021,1052,917,750,750,531,656,594,510,500,750,750,500,500,333,333,333,333,333,333,333,333,222,222,294,294,324,324,316,328,398,285];t.LiberationSansRegularMapping=[-1,-1,-1,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,161,162,163,164,165,166,167,168,169,170,171,172,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,402,506,507,508,509,510,511,536,537,538,539,710,711,713,728,729,730,731,732,733,900,901,902,903,904,905,906,908,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1138,1139,1168,1169,7808,7809,7810,7811,7812,7813,7922,7923,8208,8209,8211,8212,8213,8215,8216,8217,8218,8219,8220,8221,8222,8224,8225,8226,8230,8240,8242,8243,8249,8250,8252,8254,8260,8319,8355,8356,8359,8364,8453,8467,8470,8482,8486,8494,8539,8540,8541,8542,8592,8593,8594,8595,8596,8597,8616,8706,8710,8719,8721,8722,8730,8734,8735,8745,8747,8776,8800,8801,8804,8805,8962,8976,8992,8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,9616,9617,9618,9619,9632,9633,9642,9643,9644,9650,9658,9660,9668,9674,9675,9679,9688,9689,9702,9786,9787,9788,9792,9794,9824,9827,9829,9830,9834,9835,9836,61441,61442,61445,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.MyriadProRegularMetrics=t.MyriadProRegularFactors=t.MyriadProItalicMetrics=t.MyriadProItalicFactors=t.MyriadProBoldMetrics=t.MyriadProBoldItalicMetrics=t.MyriadProBoldItalicFactors=t.MyriadProBoldFactors=void 0;t.MyriadProBoldFactors=[1.36898,1,1,.72706,.80479,.83734,.98894,.99793,.9897,.93884,.86209,.94292,.94292,1.16661,1.02058,.93582,.96694,.93582,1.19137,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.99793,.78076,.78076,1.02058,1.02058,1.02058,.72851,.78966,.90838,.83637,.82391,.96376,.80061,.86275,.8768,.95407,1.0258,.73901,.85022,.83655,1.0156,.95546,.92179,.87107,.92179,.82114,.8096,.89713,.94438,.95353,.94083,.91905,.90406,.9446,.94292,1.18777,.94292,1.02058,.89903,.90088,.94938,.97898,.81093,.97571,.94938,1.024,.9577,.95933,.98621,1.0474,.97455,.98981,.9672,.95933,.9446,.97898,.97407,.97646,.78036,1.10208,.95442,.95298,.97579,.9332,.94039,.938,.80687,1.01149,.80687,1.02058,.80479,.99793,.99793,.99793,.99793,1.01149,1.00872,.90088,.91882,1.0213,.8361,1.02058,.62295,.54324,.89022,1.08595,1,1,.90088,1,.97455,.93582,.90088,1,1.05686,.8361,.99642,.99642,.99642,.72851,.90838,.90838,.90838,.90838,.90838,.90838,.868,.82391,.80061,.80061,.80061,.80061,1.0258,1.0258,1.0258,1.0258,.97484,.95546,.92179,.92179,.92179,.92179,.92179,1.02058,.92179,.94438,.94438,.94438,.94438,.90406,.86958,.98225,.94938,.94938,.94938,.94938,.94938,.94938,.9031,.81093,.94938,.94938,.94938,.94938,.98621,.98621,.98621,.98621,.93969,.95933,.9446,.9446,.9446,.9446,.9446,1.08595,.9446,.95442,.95442,.95442,.95442,.94039,.97898,.94039,.90838,.94938,.90838,.94938,.90838,.94938,.82391,.81093,.82391,.81093,.82391,.81093,.82391,.81093,.96376,.84313,.97484,.97571,.80061,.94938,.80061,.94938,.80061,.94938,.80061,.94938,.80061,.94938,.8768,.9577,.8768,.9577,.8768,.9577,1,1,.95407,.95933,.97069,.95933,1.0258,.98621,1.0258,.98621,1.0258,.98621,1.0258,.98621,1.0258,.98621,.887,1.01591,.73901,1.0474,1,1,.97455,.83655,.98981,1,1,.83655,.73977,.83655,.73903,.84638,1.033,.95546,.95933,1,1,.95546,.95933,.8271,.95417,.95933,.92179,.9446,.92179,.9446,.92179,.9446,.936,.91964,.82114,.97646,1,1,.82114,.97646,.8096,.78036,.8096,.78036,1,1,.8096,.78036,1,1,.89713,.77452,.89713,1.10208,.94438,.95442,.94438,.95442,.94438,.95442,.94438,.95442,.94438,.95442,.94438,.95442,.94083,.97579,.90406,.94039,.90406,.9446,.938,.9446,.938,.9446,.938,1,.99793,.90838,.94938,.868,.9031,.92179,.9446,1,1,.89713,1.10208,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90989,.9358,.91945,.83181,.75261,.87992,.82976,.96034,.83689,.97268,1.0078,.90838,.83637,.8019,.90157,.80061,.9446,.95407,.92436,1.0258,.85022,.97153,1.0156,.95546,.89192,.92179,.92361,.87107,.96318,.89713,.93704,.95638,.91905,.91709,.92796,1.0258,.93704,.94836,1.0373,.95933,1.0078,.95871,.94836,.96174,.92601,.9498,.98607,.95776,.95933,1.05453,1.0078,.98275,.9314,.95617,.91701,1.05993,.9446,.78367,.9553,1,.86832,1.0128,.95871,.99394,.87548,.96361,.86774,1.0078,.95871,.9446,.95871,.86774,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.94083,.97579,.94083,.97579,.94083,.97579,.90406,.94039,.96694,1,.89903,1,1,1,.93582,.93582,.93582,1,.908,.908,.918,.94219,.94219,.96544,1,1.285,1,1,.81079,.81079,1,1,.74854,1,1,1,1,.99793,1,1,1,.65,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.17173,1,.80535,.76169,1.02058,1.0732,1.05486,1,1,1.30692,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.16161,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.MyriadProBoldMetrics={lineHeight:1.2,lineGap:.2};t.MyriadProBoldItalicFactors=[1.36898,1,1,.66227,.80779,.81625,.97276,.97276,.97733,.92222,.83266,.94292,.94292,1.16148,1.02058,.93582,.96694,.93582,1.17337,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.97276,.78076,.78076,1.02058,1.02058,1.02058,.71541,.76813,.85576,.80591,.80729,.94299,.77512,.83655,.86523,.92222,.98621,.71743,.81698,.79726,.98558,.92222,.90637,.83809,.90637,.80729,.76463,.86275,.90699,.91605,.9154,.85308,.85458,.90531,.94292,1.21296,.94292,1.02058,.89903,1.18616,.99613,.91677,.78216,.91677,.90083,.98796,.9135,.92168,.95381,.98981,.95298,.95381,.93459,.92168,.91513,.92004,.91677,.95077,.748,1.04502,.91677,.92061,.94236,.89544,.89364,.9,.80687,.8578,.80687,1.02058,.80779,.97276,.97276,.97276,.97276,.8578,.99973,1.18616,.91339,1.08074,.82891,1.02058,.55509,.71526,.89022,1.08595,1,1,1.18616,1,.96736,.93582,1.18616,1,1.04864,.82711,.99043,.99043,.99043,.71541,.85576,.85576,.85576,.85576,.85576,.85576,.845,.80729,.77512,.77512,.77512,.77512,.98621,.98621,.98621,.98621,.95961,.92222,.90637,.90637,.90637,.90637,.90637,1.02058,.90251,.90699,.90699,.90699,.90699,.85458,.83659,.94951,.99613,.99613,.99613,.99613,.99613,.99613,.85811,.78216,.90083,.90083,.90083,.90083,.95381,.95381,.95381,.95381,.9135,.92168,.91513,.91513,.91513,.91513,.91513,1.08595,.91677,.91677,.91677,.91677,.91677,.89364,.92332,.89364,.85576,.99613,.85576,.99613,.85576,.99613,.80729,.78216,.80729,.78216,.80729,.78216,.80729,.78216,.94299,.76783,.95961,.91677,.77512,.90083,.77512,.90083,.77512,.90083,.77512,.90083,.77512,.90083,.86523,.9135,.86523,.9135,.86523,.9135,1,1,.92222,.92168,.92222,.92168,.98621,.95381,.98621,.95381,.98621,.95381,.98621,.95381,.98621,.95381,.86036,.97096,.71743,.98981,1,1,.95298,.79726,.95381,1,1,.79726,.6894,.79726,.74321,.81691,1.0006,.92222,.92168,1,1,.92222,.92168,.79464,.92098,.92168,.90637,.91513,.90637,.91513,.90637,.91513,.909,.87514,.80729,.95077,1,1,.80729,.95077,.76463,.748,.76463,.748,1,1,.76463,.748,1,1,.86275,.72651,.86275,1.04502,.90699,.91677,.90699,.91677,.90699,.91677,.90699,.91677,.90699,.91677,.90699,.91677,.9154,.94236,.85458,.89364,.85458,.90531,.9,.90531,.9,.90531,.9,1,.97276,.85576,.99613,.845,.85811,.90251,.91677,1,1,.86275,1.04502,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.18616,1.00899,1.30628,.85576,.80178,.66862,.7927,.69323,.88127,.72459,.89711,.95381,.85576,.80591,.7805,.94729,.77512,.90531,.92222,.90637,.98621,.81698,.92655,.98558,.92222,.85359,.90637,.90976,.83809,.94523,.86275,.83509,.93157,.85308,.83392,.92346,.98621,.83509,.92886,.91324,.92168,.95381,.90646,.92886,.90557,.86847,.90276,.91324,.86842,.92168,.99531,.95381,.9224,.85408,.92699,.86847,1.0051,.91513,.80487,.93481,1,.88159,1.05214,.90646,.97355,.81539,.89398,.85923,.95381,.90646,.91513,.90646,.85923,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.9154,.94236,.9154,.94236,.9154,.94236,.85458,.89364,.96694,1,.89903,1,1,1,.91782,.91782,.91782,1,.896,.896,.896,.9332,.9332,.95973,1,1.26,1,1,.80479,.80178,1,1,.85633,1,1,1,1,.97276,1,1,1,.698,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.14542,1,.79199,.78694,1.02058,1.03493,1.05486,1,1,1.23026,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.20006,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.MyriadProBoldItalicMetrics={lineHeight:1.2,lineGap:.2};t.MyriadProItalicFactors=[1.36898,1,1,.65507,.84943,.85639,.88465,.88465,.86936,.88307,.86948,.85283,.85283,1.06383,1.02058,.75945,.9219,.75945,1.17337,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.88465,.75945,.75945,1.02058,1.02058,1.02058,.69046,.70926,.85158,.77812,.76852,.89591,.70466,.76125,.80094,.86822,.83864,.728,.77212,.79475,.93637,.87514,.8588,.76013,.8588,.72421,.69866,.77598,.85991,.80811,.87832,.78112,.77512,.8562,1.0222,1.18417,1.0222,1.27014,.89903,1.15012,.93859,.94399,.846,.94399,.81453,1.0186,.94219,.96017,1.03075,1.02175,.912,1.03075,.96998,.96017,.93859,.94399,.94399,.95493,.746,1.12658,.94578,.91,.979,.882,.882,.83,.85034,.83537,.85034,1.02058,.70869,.88465,.88465,.88465,.88465,.83537,.90083,1.15012,.9161,.94565,.73541,1.02058,.53609,.69353,.79519,1.08595,1,1,1.15012,1,.91974,.75945,1.15012,1,.9446,.73361,.9005,.9005,.9005,.62864,.85158,.85158,.85158,.85158,.85158,.85158,.773,.76852,.70466,.70466,.70466,.70466,.83864,.83864,.83864,.83864,.90561,.87514,.8588,.8588,.8588,.8588,.8588,1.02058,.85751,.85991,.85991,.85991,.85991,.77512,.76013,.88075,.93859,.93859,.93859,.93859,.93859,.93859,.8075,.846,.81453,.81453,.81453,.81453,.82424,.82424,.82424,.82424,.9278,.96017,.93859,.93859,.93859,.93859,.93859,1.08595,.8562,.94578,.94578,.94578,.94578,.882,.94578,.882,.85158,.93859,.85158,.93859,.85158,.93859,.76852,.846,.76852,.846,.76852,.846,.76852,.846,.89591,.8544,.90561,.94399,.70466,.81453,.70466,.81453,.70466,.81453,.70466,.81453,.70466,.81453,.80094,.94219,.80094,.94219,.80094,.94219,1,1,.86822,.96017,.86822,.96017,.83864,.82424,.83864,.82424,.83864,.82424,.83864,1.03075,.83864,.82424,.81402,1.02738,.728,1.02175,1,1,.912,.79475,1.03075,1,1,.79475,.83911,.79475,.66266,.80553,1.06676,.87514,.96017,1,1,.87514,.96017,.86865,.87396,.96017,.8588,.93859,.8588,.93859,.8588,.93859,.867,.84759,.72421,.95493,1,1,.72421,.95493,.69866,.746,.69866,.746,1,1,.69866,.746,1,1,.77598,.88417,.77598,1.12658,.85991,.94578,.85991,.94578,.85991,.94578,.85991,.94578,.85991,.94578,.85991,.94578,.87832,.979,.77512,.882,.77512,.8562,.83,.8562,.83,.8562,.83,1,.88465,.85158,.93859,.773,.8075,.85751,.8562,1,1,.77598,1.12658,1.15012,1.15012,1.15012,1.15012,1.15012,1.15313,1.15012,1.15012,1.15012,1.08106,1.03901,.85158,.77025,.62264,.7646,.65351,.86026,.69461,.89947,1.03075,.85158,.77812,.76449,.88836,.70466,.8562,.86822,.8588,.83864,.77212,.85308,.93637,.87514,.82352,.8588,.85701,.76013,.89058,.77598,.8156,.82565,.78112,.77899,.89386,.83864,.8156,.9486,.92388,.96186,1.03075,.91123,.9486,.93298,.878,.93942,.92388,.84596,.96186,.95119,1.03075,.922,.88787,.95829,.88,.93559,.93859,.78815,.93758,1,.89217,1.03737,.91123,.93969,.77487,.85769,.86799,1.03075,.91123,.93859,.91123,.86799,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.87832,.979,.87832,.979,.87832,.979,.77512,.882,.9219,1,.89903,1,1,1,.87321,.87321,.87321,1,1.027,1.027,1.027,.86847,.86847,.79121,1,1.124,1,1,.73572,.73572,1,1,.85034,1,1,1,1,.88465,1,1,1,.669,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.04828,1,.74948,.75187,1.02058,.98391,1.02119,1,1,1.06233,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.05233,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.MyriadProItalicMetrics={lineHeight:1.2,lineGap:.2};t.MyriadProRegularFactors=[1.36898,1,1,.76305,.82784,.94935,.89364,.92241,.89073,.90706,.98472,.85283,.85283,1.0664,1.02058,.74505,.9219,.74505,1.23456,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.92241,.74505,.74505,1.02058,1.02058,1.02058,.73002,.72601,.91755,.8126,.80314,.92222,.73764,.79726,.83051,.90284,.86023,.74,.8126,.84869,.96518,.91115,.8858,.79761,.8858,.74498,.73914,.81363,.89591,.83659,.89633,.85608,.8111,.90531,1.0222,1.22736,1.0222,1.27014,.89903,.90088,.86667,1.0231,.896,1.01411,.90083,1.05099,1.00512,.99793,1.05326,1.09377,.938,1.06226,1.00119,.99793,.98714,1.0231,1.01231,.98196,.792,1.19137,.99074,.962,1.01915,.926,.942,.856,.85034,.92006,.85034,1.02058,.69067,.92241,.92241,.92241,.92241,.92006,.9332,.90088,.91882,.93484,.75339,1.02058,.56866,.54324,.79519,1.08595,1,1,.90088,1,.95325,.74505,.90088,1,.97198,.75339,.91009,.91009,.91009,.66466,.91755,.91755,.91755,.91755,.91755,.91755,.788,.80314,.73764,.73764,.73764,.73764,.86023,.86023,.86023,.86023,.92915,.91115,.8858,.8858,.8858,.8858,.8858,1.02058,.8858,.89591,.89591,.89591,.89591,.8111,.79611,.89713,.86667,.86667,.86667,.86667,.86667,.86667,.86936,.896,.90083,.90083,.90083,.90083,.84224,.84224,.84224,.84224,.97276,.99793,.98714,.98714,.98714,.98714,.98714,1.08595,.89876,.99074,.99074,.99074,.99074,.942,1.0231,.942,.91755,.86667,.91755,.86667,.91755,.86667,.80314,.896,.80314,.896,.80314,.896,.80314,.896,.92222,.93372,.92915,1.01411,.73764,.90083,.73764,.90083,.73764,.90083,.73764,.90083,.73764,.90083,.83051,1.00512,.83051,1.00512,.83051,1.00512,1,1,.90284,.99793,.90976,.99793,.86023,.84224,.86023,.84224,.86023,.84224,.86023,1.05326,.86023,.84224,.82873,1.07469,.74,1.09377,1,1,.938,.84869,1.06226,1,1,.84869,.83704,.84869,.81441,.85588,1.08927,.91115,.99793,1,1,.91115,.99793,.91887,.90991,.99793,.8858,.98714,.8858,.98714,.8858,.98714,.894,.91434,.74498,.98196,1,1,.74498,.98196,.73914,.792,.73914,.792,1,1,.73914,.792,1,1,.81363,.904,.81363,1.19137,.89591,.99074,.89591,.99074,.89591,.99074,.89591,.99074,.89591,.99074,.89591,.99074,.89633,1.01915,.8111,.942,.8111,.90531,.856,.90531,.856,.90531,.856,1,.92241,.91755,.86667,.788,.86936,.8858,.89876,1,1,.81363,1.19137,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90088,.90388,1.03901,.92138,.78105,.7154,.86169,.80513,.94007,.82528,.98612,1.06226,.91755,.8126,.81884,.92819,.73764,.90531,.90284,.8858,.86023,.8126,.91172,.96518,.91115,.83089,.8858,.87791,.79761,.89297,.81363,.88157,.89992,.85608,.81992,.94307,.86023,.88157,.95308,.98699,.99793,1.06226,.95817,.95308,.97358,.928,.98088,.98699,.92761,.99793,.96017,1.06226,.986,.944,.95978,.938,.96705,.98714,.80442,.98972,1,.89762,1.04552,.95817,.99007,.87064,.91879,.88888,1.06226,.95817,.98714,.95817,.88888,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.89633,1.01915,.89633,1.01915,.89633,1.01915,.8111,.942,.9219,1,.89903,1,1,1,.93173,.93173,.93173,1,1.06304,1.06304,1.06904,.89903,.89903,.80549,1,1.156,1,1,.76575,.76575,1,1,.72458,1,1,1,1,.92241,1,1,1,.619,1,1.36145,1,1,1,1,1,1,1,1,1,1,1,1.07257,1,.74705,.71119,1.02058,1.024,1.02119,1,1,1.1536,1.08595,1.08595,1,1.08595,1.08595,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.05638,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.MyriadProRegularMetrics={lineHeight:1.2,lineGap:.2}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.SegoeuiRegularMetrics=t.SegoeuiRegularFactors=t.SegoeuiItalicMetrics=t.SegoeuiItalicFactors=t.SegoeuiBoldMetrics=t.SegoeuiBoldItalicMetrics=t.SegoeuiBoldItalicFactors=t.SegoeuiBoldFactors=void 0;t.SegoeuiBoldFactors=[1.76738,1,1,.99297,.9824,1.04016,1.06497,1.03424,.97529,1.17647,1.23203,1.1085,1.1085,1.16939,1.2107,.9754,1.21408,.9754,1.59578,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,1.03424,.81378,.81378,1.2107,1.2107,1.2107,.71703,.97847,.97363,.88776,.8641,1.02096,.79795,.85132,.914,1.06085,1.1406,.8007,.89858,.83693,1.14889,1.09398,.97489,.92094,.97489,.90399,.84041,.95923,1.00135,1,1.06467,.98243,.90996,.99361,1.1085,1.56942,1.1085,1.2107,.74627,.94282,.96752,1.01519,.86304,1.01359,.97278,1.15103,1.01359,.98561,1.02285,1.02285,1.00527,1.02285,1.0302,.99041,1.0008,1.01519,1.01359,1.02258,.79104,1.16862,.99041,.97454,1.02511,.99298,.96752,.95801,.94856,1.16579,.94856,1.2107,.9824,1.03424,1.03424,1,1.03424,1.16579,.8727,1.3871,1.18622,1.10818,1.04478,1.2107,1.18622,.75155,.94994,1.28826,1.21408,1.21408,.91056,1,.91572,.9754,.64663,1.18328,1.24866,1.04478,1.14169,1.15749,1.17389,.71703,.97363,.97363,.97363,.97363,.97363,.97363,.93506,.8641,.79795,.79795,.79795,.79795,1.1406,1.1406,1.1406,1.1406,1.02096,1.09398,.97426,.97426,.97426,.97426,.97426,1.2107,.97489,1.00135,1.00135,1.00135,1.00135,.90996,.92094,1.02798,.96752,.96752,.96752,.96752,.96752,.96752,.93136,.86304,.97278,.97278,.97278,.97278,1.02285,1.02285,1.02285,1.02285,.97122,.99041,1,1,1,1,1,1.28826,1.0008,.99041,.99041,.99041,.99041,.96752,1.01519,.96752,.97363,.96752,.97363,.96752,.97363,.96752,.8641,.86304,.8641,.86304,.8641,.86304,.8641,.86304,1.02096,1.03057,1.02096,1.03517,.79795,.97278,.79795,.97278,.79795,.97278,.79795,.97278,.79795,.97278,.914,1.01359,.914,1.01359,.914,1.01359,1,1,1.06085,.98561,1.06085,1.00879,1.1406,1.02285,1.1406,1.02285,1.1406,1.02285,1.1406,1.02285,1.1406,1.02285,.97138,1.08692,.8007,1.02285,1,1,1.00527,.83693,1.02285,1,1,.83693,.9455,.83693,.90418,.83693,1.13005,1.09398,.99041,1,1,1.09398,.99041,.96692,1.09251,.99041,.97489,1.0008,.97489,1.0008,.97489,1.0008,.93994,.97931,.90399,1.02258,1,1,.90399,1.02258,.84041,.79104,.84041,.79104,.84041,.79104,.84041,.79104,1,1,.95923,1.07034,.95923,1.16862,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.00135,.99041,1.06467,1.02511,.90996,.96752,.90996,.99361,.95801,.99361,.95801,.99361,.95801,1.07733,1.03424,.97363,.96752,.93506,.93136,.97489,1.0008,1,1,.95923,1.16862,1.15103,1.15103,1.01173,1.03959,.75953,.81378,.79912,1.15103,1.21994,.95161,.87815,1.01149,.81525,.7676,.98167,1.01134,1.02546,.84097,1.03089,1.18102,.97363,.88776,.85134,.97826,.79795,.99361,1.06085,.97489,1.1406,.89858,1.0388,1.14889,1.09398,.86039,.97489,1.0595,.92094,.94793,.95923,.90996,.99346,.98243,1.02112,.95493,1.1406,.90996,1.03574,1.02597,1.0008,1.18102,1.06628,1.03574,1.0192,1.01932,1.00886,.97531,1.0106,1.0008,1.13189,1.18102,1.02277,.98683,1.0016,.99561,1.07237,1.0008,.90434,.99921,.93803,.8965,1.23085,1.06628,1.04983,.96268,1.0499,.98439,1.18102,1.06628,1.0008,1.06628,.98439,.79795,1,1,1,1,1,1,1,1,1,1,1,1,1.09466,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.97278,1,1,1,1,1,1,1,1,1,1,1,1,1.02065,1,1,1,1,1,1,1.06467,1.02511,1.06467,1.02511,1.06467,1.02511,.90996,.96752,1,1.21408,.89903,1,1,.75155,1.04394,1.04394,1.04394,1.04394,.98633,.98633,.98633,.73047,.73047,1.20642,.91211,1.25635,1.222,1.02956,1.03372,1.03372,.96039,1.24633,1,1.12454,.93503,1.03424,1.19687,1.03424,1,1,1,.771,1,1,1.15749,1.15749,1.15749,1.10948,.86279,.94434,.86279,.94434,.86182,1,1,1.16897,1,.96085,.90137,1.2107,1.18416,1.13973,.69825,.9716,2.10339,1.29004,1.29004,1.21172,1.29004,1.29004,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.18874,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.09193,1.09193,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.SegoeuiBoldMetrics={lineHeight:1.33008,lineGap:0};t.SegoeuiBoldItalicFactors=[1.76738,1,1,.98946,1.03959,1.04016,1.02809,1.036,.97639,1.10953,1.23203,1.11144,1.11144,1.16939,1.21237,.9754,1.21261,.9754,1.59754,1.036,1.036,1.036,1.036,1.036,1.036,1.036,1.036,1.036,1.036,.81378,.81378,1.21237,1.21237,1.21237,.73541,.97847,.97363,.89723,.87897,1.0426,.79429,.85292,.91149,1.05815,1.1406,.79631,.90128,.83853,1.04396,1.10615,.97552,.94436,.97552,.88641,.80527,.96083,1.00135,1,1.06777,.9817,.91142,.99361,1.11144,1.57293,1.11144,1.21237,.74627,1.31818,1.06585,.97042,.83055,.97042,.93503,1.1261,.97042,.97922,1.14236,.94552,1.01054,1.14236,1.02471,.97922,.94165,.97042,.97042,1.0276,.78929,1.1261,.97922,.95874,1.02197,.98507,.96752,.97168,.95107,1.16579,.95107,1.21237,1.03959,1.036,1.036,1,1.036,1.16579,.87357,1.31818,1.18754,1.26781,1.05356,1.21237,1.18622,.79487,.94994,1.29004,1.24047,1.24047,1.31818,1,.91484,.9754,1.31818,1.1349,1.24866,1.05356,1.13934,1.15574,1.17389,.73541,.97363,.97363,.97363,.97363,.97363,.97363,.94385,.87897,.79429,.79429,.79429,.79429,1.1406,1.1406,1.1406,1.1406,1.0426,1.10615,.97552,.97552,.97552,.97552,.97552,1.21237,.97552,1.00135,1.00135,1.00135,1.00135,.91142,.94436,.98721,1.06585,1.06585,1.06585,1.06585,1.06585,1.06585,.96705,.83055,.93503,.93503,.93503,.93503,1.14236,1.14236,1.14236,1.14236,.93125,.97922,.94165,.94165,.94165,.94165,.94165,1.29004,.94165,.97922,.97922,.97922,.97922,.96752,.97042,.96752,.97363,1.06585,.97363,1.06585,.97363,1.06585,.87897,.83055,.87897,.83055,.87897,.83055,.87897,.83055,1.0426,1.0033,1.0426,.97042,.79429,.93503,.79429,.93503,.79429,.93503,.79429,.93503,.79429,.93503,.91149,.97042,.91149,.97042,.91149,.97042,1,1,1.05815,.97922,1.05815,.97922,1.1406,1.14236,1.1406,1.14236,1.1406,1.14236,1.1406,1.14236,1.1406,1.14236,.97441,1.04302,.79631,1.01582,1,1,1.01054,.83853,1.14236,1,1,.83853,1.09125,.83853,.90418,.83853,1.19508,1.10615,.97922,1,1,1.10615,.97922,1.01034,1.10466,.97922,.97552,.94165,.97552,.94165,.97552,.94165,.91602,.91981,.88641,1.0276,1,1,.88641,1.0276,.80527,.78929,.80527,.78929,.80527,.78929,.80527,.78929,1,1,.96083,1.05403,.95923,1.16862,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.00135,.97922,1.06777,1.02197,.91142,.96752,.91142,.99361,.97168,.99361,.97168,.99361,.97168,1.23199,1.036,.97363,1.06585,.94385,.96705,.97552,.94165,1,1,.96083,1.1261,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,1.31818,.95161,1.27126,1.00811,.83284,.77702,.99137,.95253,1.0347,.86142,1.07205,1.14236,.97363,.89723,.86869,1.09818,.79429,.99361,1.05815,.97552,1.1406,.90128,1.06662,1.04396,1.10615,.84918,.97552,1.04694,.94436,.98015,.96083,.91142,1.00356,.9817,1.01945,.98999,1.1406,.91142,1.04961,.9898,1.00639,1.14236,1.07514,1.04961,.99607,1.02897,1.008,.9898,.95134,1.00639,1.11121,1.14236,1.00518,.97981,1.02186,1,1.08578,.94165,.99314,.98387,.93028,.93377,1.35125,1.07514,1.10687,.93491,1.04232,1.00351,1.14236,1.07514,.94165,1.07514,1.00351,.79429,1,1,1,1,1,1,1,1,1,1,1,1,1.09097,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.93503,1,1,1,1,1,1,1,1,1,1,1,1,.96609,1,1,1,1,1,1,1.06777,1.02197,1.06777,1.02197,1.06777,1.02197,.91142,.96752,1,1.21261,.89903,1,1,.75155,1.04745,1.04745,1.04745,1.04394,.98633,.98633,.98633,.72959,.72959,1.20502,.91406,1.26514,1.222,1.02956,1.03372,1.03372,.96039,1.24633,1,1.09125,.93327,1.03336,1.16541,1.036,1,1,1,.771,1,1,1.15574,1.15574,1.15574,1.15574,.86364,.94434,.86279,.94434,.86224,1,1,1.16798,1,.96085,.90068,1.21237,1.18416,1.13904,.69825,.9716,2.10339,1.29004,1.29004,1.21339,1.29004,1.29004,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.18775,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.13269,1.13269,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.SegoeuiBoldItalicMetrics={lineHeight:1.33008,lineGap:0};t.SegoeuiItalicFactors=[1.76738,1,1,.98946,1.14763,1.05365,1.06234,.96927,.92586,1.15373,1.18414,.91349,.91349,1.07403,1.17308,.78383,1.20088,.78383,1.42531,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.78383,.78383,1.17308,1.17308,1.17308,.77349,.94565,.94729,.85944,.88506,.9858,.74817,.80016,.88449,.98039,.95782,.69238,.89898,.83231,.98183,1.03989,.96924,.86237,.96924,.80595,.74524,.86091,.95402,.94143,.98448,.8858,.83089,.93285,1.0949,1.39016,1.0949,1.45994,.74627,1.04839,.97454,.97454,.87207,.97454,.87533,1.06151,.97454,1.00176,1.16484,1.08132,.98047,1.16484,1.02989,1.01054,.96225,.97454,.97454,1.06598,.79004,1.16344,1.00351,.94629,.9973,.91016,.96777,.9043,.91082,.92481,.91082,1.17308,.95748,.96927,.96927,1,.96927,.92481,.80597,1.04839,1.23393,1.1781,.9245,1.17308,1.20808,.63218,.94261,1.24822,1.09971,1.09971,1.04839,1,.85273,.78032,1.04839,1.09971,1.22326,.9245,1.09836,1.13525,1.15222,.70424,.94729,.94729,.94729,.94729,.94729,.94729,.85498,.88506,.74817,.74817,.74817,.74817,.95782,.95782,.95782,.95782,.9858,1.03989,.96924,.96924,.96924,.96924,.96924,1.17308,.96924,.95402,.95402,.95402,.95402,.83089,.86237,.88409,.97454,.97454,.97454,.97454,.97454,.97454,.92916,.87207,.87533,.87533,.87533,.87533,.93146,.93146,.93146,.93146,.93854,1.01054,.96225,.96225,.96225,.96225,.96225,1.24822,.8761,1.00351,1.00351,1.00351,1.00351,.96777,.97454,.96777,.94729,.97454,.94729,.97454,.94729,.97454,.88506,.87207,.88506,.87207,.88506,.87207,.88506,.87207,.9858,.95391,.9858,.97454,.74817,.87533,.74817,.87533,.74817,.87533,.74817,.87533,.74817,.87533,.88449,.97454,.88449,.97454,.88449,.97454,1,1,.98039,1.00176,.98039,1.00176,.95782,.93146,.95782,.93146,.95782,.93146,.95782,1.16484,.95782,.93146,.84421,1.12761,.69238,1.08132,1,1,.98047,.83231,1.16484,1,1,.84723,1.04861,.84723,.78755,.83231,1.23736,1.03989,1.01054,1,1,1.03989,1.01054,.9857,1.03849,1.01054,.96924,.96225,.96924,.96225,.96924,.96225,.92383,.90171,.80595,1.06598,1,1,.80595,1.06598,.74524,.79004,.74524,.79004,.74524,.79004,.74524,.79004,1,1,.86091,1.02759,.85771,1.16344,.95402,1.00351,.95402,1.00351,.95402,1.00351,.95402,1.00351,.95402,1.00351,.95402,1.00351,.98448,.9973,.83089,.96777,.83089,.93285,.9043,.93285,.9043,.93285,.9043,1.31868,.96927,.94729,.97454,.85498,.92916,.96924,.8761,1,1,.86091,1.16344,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,1.04839,.81965,.81965,.94729,.78032,.71022,.90883,.84171,.99877,.77596,1.05734,1.2,.94729,.85944,.82791,.9607,.74817,.93285,.98039,.96924,.95782,.89898,.98316,.98183,1.03989,.78614,.96924,.97642,.86237,.86075,.86091,.83089,.90082,.8858,.97296,1.01284,.95782,.83089,1.0976,1.04,1.03342,1.2,1.0675,1.0976,.98205,1.03809,1.05097,1.04,.95364,1.03342,1.05401,1.2,1.02148,1.0119,1.04724,1.0127,1.02732,.96225,.8965,.97783,.93574,.94818,1.30679,1.0675,1.11826,.99821,1.0557,1.0326,1.2,1.0675,.96225,1.0675,1.0326,.74817,1,1,1,1,1,1,1,1,1,1,1,1,1.03754,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.87533,1,1,1,1,1,1,1,1,1,1,1,1,.98705,1,1,1,1,1,1,.98448,.9973,.98448,.9973,.98448,.9973,.83089,.96777,1,1.20088,.89903,1,1,.75155,.94945,.94945,.94945,.94945,1.12317,1.12317,1.12317,.67603,.67603,1.15621,.73584,1.21191,1.22135,1.06483,.94868,.94868,.95996,1.24633,1,1.07497,.87709,.96927,1.01473,.96927,1,1,1,.77295,1,1,1.09836,1.09836,1.09836,1.01522,.86321,.94434,.8649,.94434,.86182,1,1,1.083,1,.91578,.86438,1.17308,1.18416,1.14589,.69825,.97622,1.96791,1.24822,1.24822,1.17308,1.24822,1.24822,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.17984,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.10742,1.10742,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];t.SegoeuiItalicMetrics={lineHeight:1.33008,lineGap:0};t.SegoeuiRegularFactors=[1.76738,1,1,.98594,1.02285,1.10454,1.06234,.96927,.92037,1.19985,1.2046,.90616,.90616,1.07152,1.1714,.78032,1.20088,.78032,1.40246,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.96927,.78032,.78032,1.1714,1.1714,1.1714,.80597,.94084,.96706,.85944,.85734,.97093,.75842,.79936,.88198,.9831,.95782,.71387,.86969,.84636,1.07796,1.03584,.96924,.83968,.96924,.82826,.79649,.85771,.95132,.93119,.98965,.88433,.8287,.93365,1.08612,1.3638,1.08612,1.45786,.74627,.80499,.91484,1.05707,.92383,1.05882,.9403,1.12654,1.05882,1.01756,1.09011,1.09011,.99414,1.09011,1.034,1.01756,1.05356,1.05707,1.05882,1.04399,.84863,1.21968,1.01756,.95801,1.00068,.91797,.96777,.9043,.90351,.92105,.90351,1.1714,.85337,.96927,.96927,.99912,.96927,.92105,.80597,1.2434,1.20808,1.05937,.90957,1.1714,1.20808,.75155,.94261,1.24644,1.09971,1.09971,.84751,1,.85273,.78032,.61584,1.05425,1.17914,.90957,1.08665,1.11593,1.14169,.73381,.96706,.96706,.96706,.96706,.96706,.96706,.86035,.85734,.75842,.75842,.75842,.75842,.95782,.95782,.95782,.95782,.97093,1.03584,.96924,.96924,.96924,.96924,.96924,1.1714,.96924,.95132,.95132,.95132,.95132,.8287,.83968,.89049,.91484,.91484,.91484,.91484,.91484,.91484,.93575,.92383,.9403,.9403,.9403,.9403,.8717,.8717,.8717,.8717,1.00527,1.01756,1.05356,1.05356,1.05356,1.05356,1.05356,1.24644,.95923,1.01756,1.01756,1.01756,1.01756,.96777,1.05707,.96777,.96706,.91484,.96706,.91484,.96706,.91484,.85734,.92383,.85734,.92383,.85734,.92383,.85734,.92383,.97093,1.0969,.97093,1.05882,.75842,.9403,.75842,.9403,.75842,.9403,.75842,.9403,.75842,.9403,.88198,1.05882,.88198,1.05882,.88198,1.05882,1,1,.9831,1.01756,.9831,1.01756,.95782,.8717,.95782,.8717,.95782,.8717,.95782,1.09011,.95782,.8717,.84784,1.11551,.71387,1.09011,1,1,.99414,.84636,1.09011,1,1,.84636,1.0536,.84636,.94298,.84636,1.23297,1.03584,1.01756,1,1,1.03584,1.01756,1.00323,1.03444,1.01756,.96924,1.05356,.96924,1.05356,.96924,1.05356,.93066,.98293,.82826,1.04399,1,1,.82826,1.04399,.79649,.84863,.79649,.84863,.79649,.84863,.79649,.84863,1,1,.85771,1.17318,.85771,1.21968,.95132,1.01756,.95132,1.01756,.95132,1.01756,.95132,1.01756,.95132,1.01756,.95132,1.01756,.98965,1.00068,.8287,.96777,.8287,.93365,.9043,.93365,.9043,.93365,.9043,1.08571,.96927,.96706,.91484,.86035,.93575,.96924,.95923,1,1,.85771,1.21968,1.11437,1.11437,.93109,.91202,.60411,.84164,.55572,1.01173,.97361,.81818,.81818,.96635,.78032,.72727,.92366,.98601,1.03405,.77968,1.09799,1.2,.96706,.85944,.85638,.96491,.75842,.93365,.9831,.96924,.95782,.86969,.94152,1.07796,1.03584,.78437,.96924,.98715,.83968,.83491,.85771,.8287,.94492,.88433,.9287,1.0098,.95782,.8287,1.0625,.98248,1.03424,1.2,1.01071,1.0625,.95246,1.03809,1.04912,.98248,1.00221,1.03424,1.05443,1.2,1.04785,.99609,1.00169,1.05176,.99346,1.05356,.9087,1.03004,.95542,.93117,1.23362,1.01071,1.07831,1.02512,1.05205,1.03502,1.2,1.01071,1.05356,1.01071,1.03502,.75842,1,1,1,1,1,1,1,1,1,1,1,1,1.03719,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,.9403,1,1,1,1,1,1,1,1,1,1,1,1,1.04021,1,1,1,1,1,1,.98965,1.00068,.98965,1.00068,.98965,1.00068,.8287,.96777,1,1.20088,.89903,1,1,.75155,1.03077,1.03077,1.03077,1.03077,1.13196,1.13196,1.13196,.67428,.67428,1.16039,.73291,1.20996,1.22135,1.06483,.94868,.94868,.95996,1.24633,1,1.07497,.87796,.96927,1.01518,.96927,1,1,1,.77295,1,1,1.10539,1.10539,1.11358,1.06967,.86279,.94434,.86279,.94434,.86182,1,1,1.083,1,.91578,.86507,1.1714,1.18416,1.14589,.69825,.97622,1.9697,1.24822,1.24822,1.17238,1.24822,1.24822,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.42603,1,.99862,.99862,1,.87025,.87025,.87025,.87025,1.18083,1.42603,1,1.42603,1.42603,.99862,1,1,1,1,1,1.2886,1.04315,1.15296,1.34163,1,1,1,1.10938,1.10938,1,1,1,1.05425,1.09971,1.09971,1.09971,1,1,1,1,1,1,1,1,1,1,1];t.SegoeuiRegularMetrics={lineHeight:1.33008,lineGap:0}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.SEAC_ANALYSIS_ENABLED=t.MacStandardGlyphOrdering=t.FontFlags=void 0;t.getFontType=function getFontType(e,t,a=!1){switch(e){case"Type1":return a?r.FontType.TYPE1STANDARD:"Type1C"===t?r.FontType.TYPE1C:r.FontType.TYPE1;case"CIDFontType0":return"CIDFontType0C"===t?r.FontType.CIDFONTTYPE0C:r.FontType.CIDFONTTYPE0;case"OpenType":return r.FontType.OPENTYPE;case"TrueType":return r.FontType.TRUETYPE;case"CIDFontType2":return r.FontType.CIDFONTTYPE2;case"MMType1":return r.FontType.MMTYPE1;case"Type0":return r.FontType.TYPE0;default:return r.FontType.UNKNOWN}};t.normalizeFontName=function normalizeFontName(e){return e.replace(/[,_]/g,"-").replace(/\s/g,"")};t.recoverGlyphName=recoverGlyphName;t.type1FontGlyphMapping=function type1FontGlyphMapping(e,t,a){const r=Object.create(null);let s,c,l;const h=!!(e.flags&o.Symbolic);if(e.isInternalFont){l=t;for(c=0;c=0?s:0}}else if(e.baseEncodingName){l=(0,n.getEncoding)(e.baseEncodingName);for(c=0;c=0?s:0}}else if(h)for(c in t)r[c]=t[c];else{l=n.StandardEncoding;for(c=0;c=0?s:0}}const u=e.differences;let d;if(u)for(c in u){const e=u[c];s=a.indexOf(e);if(-1===s){d||(d=(0,i.getGlyphsUnicode)());const t=recoverGlyphName(e,d);t!==e&&(s=a.indexOf(t))}r[c]=s>=0?s:0}return r};var r=a(2),n=a(19),i=a(20),s=a(21);t.SEAC_ANALYSIS_ENABLED=!0;const o={FixedPitch:1,Serif:2,Symbolic:4,Script:8,Nonsymbolic:32,Italic:64,AllCap:65536,SmallCap:131072,ForceBold:262144};t.FontFlags=o;t.MacStandardGlyphOrdering=[".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","nonbreakingspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron","Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth","Yacute","yacute","Thorn","thorn","minus","multiply","onesuperior","twosuperior","threesuperior","onehalf","onequarter","threequarters","franc","Gbreve","gbreve","Idotaccent","Scedilla","scedilla","Cacute","cacute","Ccaron","ccaron","dcroat"];function recoverGlyphName(e,t){if(void 0!==t[e])return e;const a=(0,s.getUnicodeForGlyph)(e,t);if(-1!==a)for(const e in t)if(t[e]===a)return e;(0,r.info)("Unable to recover a standard glyph name for: "+e);return e}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ZapfDingbatsEncoding=t.WinAnsiEncoding=t.SymbolSetEncoding=t.StandardEncoding=t.MacRomanEncoding=t.ExpertEncoding=void 0;t.getEncoding=function getEncoding(e){switch(e){case"WinAnsiEncoding":return s;case"StandardEncoding":return i;case"MacRomanEncoding":return n;case"SymbolSetEncoding":return o;case"ZapfDingbatsEncoding":return c;case"ExpertEncoding":return a;case"MacExpertEncoding":return r;default:return null}};const a=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"];t.ExpertEncoding=a;const r=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","centoldstyle","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","","threequartersemdash","","questionsmall","","","","","Ethsmall","","","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","","","","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hypheninferior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","asuperior","centsuperior","","","","","Aacutesmall","Agravesmall","Acircumflexsmall","Adieresissmall","Atildesmall","Aringsmall","Ccedillasmall","Eacutesmall","Egravesmall","Ecircumflexsmall","Edieresissmall","Iacutesmall","Igravesmall","Icircumflexsmall","Idieresissmall","Ntildesmall","Oacutesmall","Ogravesmall","Ocircumflexsmall","Odieresissmall","Otildesmall","Uacutesmall","Ugravesmall","Ucircumflexsmall","Udieresissmall","","eightsuperior","fourinferior","threeinferior","sixinferior","eightinferior","seveninferior","Scaronsmall","","centinferior","twoinferior","","Dieresissmall","","Caronsmall","osuperior","fiveinferior","","commainferior","periodinferior","Yacutesmall","","dollarinferior","","","Thornsmall","","nineinferior","zeroinferior","Zcaronsmall","AEsmall","Oslashsmall","questiondownsmall","oneinferior","Lslashsmall","","","","","","","Cedillasmall","","","","","","OEsmall","figuredash","hyphensuperior","","","","","exclamdownsmall","","Ydieresissmall","","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","ninesuperior","zerosuperior","","esuperior","rsuperior","tsuperior","","","isuperior","ssuperior","dsuperior","","","","","","lsuperior","Ogoneksmall","Brevesmall","Macronsmall","bsuperior","nsuperior","msuperior","commasuperior","periodsuperior","Dotaccentsmall","Ringsmall","","","",""],n=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","space","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron"];t.MacRomanEncoding=n;const i=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls","","","",""];t.StandardEncoding=i;const s=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","bullet","Euro","bullet","quotesinglbase","florin","quotedblbase","ellipsis","dagger","daggerdbl","circumflex","perthousand","Scaron","guilsinglleft","OE","bullet","Zcaron","bullet","bullet","quoteleft","quoteright","quotedblleft","quotedblright","bullet","endash","emdash","tilde","trademark","scaron","guilsinglright","oe","bullet","zcaron","Ydieresis","space","exclamdown","cent","sterling","currency","yen","brokenbar","section","dieresis","copyright","ordfeminine","guillemotleft","logicalnot","hyphen","registered","macron","degree","plusminus","twosuperior","threesuperior","acute","mu","paragraph","periodcentered","cedilla","onesuperior","ordmasculine","guillemotright","onequarter","onehalf","threequarters","questiondown","Agrave","Aacute","Acircumflex","Atilde","Adieresis","Aring","AE","Ccedilla","Egrave","Eacute","Ecircumflex","Edieresis","Igrave","Iacute","Icircumflex","Idieresis","Eth","Ntilde","Ograve","Oacute","Ocircumflex","Otilde","Odieresis","multiply","Oslash","Ugrave","Uacute","Ucircumflex","Udieresis","Yacute","Thorn","germandbls","agrave","aacute","acircumflex","atilde","adieresis","aring","ae","ccedilla","egrave","eacute","ecircumflex","edieresis","igrave","iacute","icircumflex","idieresis","eth","ntilde","ograve","oacute","ocircumflex","otilde","odieresis","divide","oslash","ugrave","uacute","ucircumflex","udieresis","yacute","thorn","ydieresis"];t.WinAnsiEncoding=s;const o=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","universal","numbersign","existential","percent","ampersand","suchthat","parenleft","parenright","asteriskmath","plus","comma","minus","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","congruent","Alpha","Beta","Chi","Delta","Epsilon","Phi","Gamma","Eta","Iota","theta1","Kappa","Lambda","Mu","Nu","Omicron","Pi","Theta","Rho","Sigma","Tau","Upsilon","sigma1","Omega","Xi","Psi","Zeta","bracketleft","therefore","bracketright","perpendicular","underscore","radicalex","alpha","beta","chi","delta","epsilon","phi","gamma","eta","iota","phi1","kappa","lambda","mu","nu","omicron","pi","theta","rho","sigma","tau","upsilon","omega1","omega","xi","psi","zeta","braceleft","bar","braceright","similar","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Euro","Upsilon1","minute","lessequal","fraction","infinity","florin","club","diamond","heart","spade","arrowboth","arrowleft","arrowup","arrowright","arrowdown","degree","plusminus","second","greaterequal","multiply","proportional","partialdiff","bullet","divide","notequal","equivalence","approxequal","ellipsis","arrowvertex","arrowhorizex","carriagereturn","aleph","Ifraktur","Rfraktur","weierstrass","circlemultiply","circleplus","emptyset","intersection","union","propersuperset","reflexsuperset","notsubset","propersubset","reflexsubset","element","notelement","angle","gradient","registerserif","copyrightserif","trademarkserif","product","radical","dotmath","logicalnot","logicaland","logicalor","arrowdblboth","arrowdblleft","arrowdblup","arrowdblright","arrowdbldown","lozenge","angleleft","registersans","copyrightsans","trademarksans","summation","parenlefttp","parenleftex","parenleftbt","bracketlefttp","bracketleftex","bracketleftbt","bracelefttp","braceleftmid","braceleftbt","braceex","","angleright","integral","integraltp","integralex","integralbt","parenrighttp","parenrightex","parenrightbt","bracketrighttp","bracketrightex","bracketrightbt","bracerighttp","bracerightmid","bracerightbt",""];t.SymbolSetEncoding=o;const c=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","a1","a2","a202","a3","a4","a5","a119","a118","a117","a11","a12","a13","a14","a15","a16","a105","a17","a18","a19","a20","a21","a22","a23","a24","a25","a26","a27","a28","a6","a7","a8","a9","a10","a29","a30","a31","a32","a33","a34","a35","a36","a37","a38","a39","a40","a41","a42","a43","a44","a45","a46","a47","a48","a49","a50","a51","a52","a53","a54","a55","a56","a57","a58","a59","a60","a61","a62","a63","a64","a65","a66","a67","a68","a69","a70","a71","a72","a73","a74","a203","a75","a204","a76","a77","a78","a79","a81","a82","a83","a84","a97","a98","a99","a100","","a89","a90","a93","a94","a91","a92","a205","a85","a206","a86","a87","a88","a95","a96","","","","","","","","","","","","","","","","","","","","a101","a102","a103","a104","a106","a107","a108","a112","a111","a110","a109","a120","a121","a122","a123","a124","a125","a126","a127","a128","a129","a130","a131","a132","a133","a134","a135","a136","a137","a138","a139","a140","a141","a142","a143","a144","a145","a146","a147","a148","a149","a150","a151","a152","a153","a154","a155","a156","a157","a158","a159","a160","a161","a163","a164","a196","a165","a192","a166","a167","a168","a169","a170","a171","a172","a173","a162","a174","a175","a176","a177","a178","a179","a193","a180","a199","a181","a200","a182","","a201","a183","a184","a197","a185","a194","a198","a186","a195","a187","a188","a189","a190","a191",""];t.ZapfDingbatsEncoding=c},(e,t,a)=>{a.r(t);a.d(t,{getDingbatsGlyphsUnicode:()=>i,getGlyphsUnicode:()=>n});var r=a(8);const n=(0,r.getArrayLookupTableFactory)((function(){return["A",65,"AE",198,"AEacute",508,"AEmacron",482,"AEsmall",63462,"Aacute",193,"Aacutesmall",63457,"Abreve",258,"Abreveacute",7854,"Abrevecyrillic",1232,"Abrevedotbelow",7862,"Abrevegrave",7856,"Abrevehookabove",7858,"Abrevetilde",7860,"Acaron",461,"Acircle",9398,"Acircumflex",194,"Acircumflexacute",7844,"Acircumflexdotbelow",7852,"Acircumflexgrave",7846,"Acircumflexhookabove",7848,"Acircumflexsmall",63458,"Acircumflextilde",7850,"Acute",63177,"Acutesmall",63412,"Acyrillic",1040,"Adblgrave",512,"Adieresis",196,"Adieresiscyrillic",1234,"Adieresismacron",478,"Adieresissmall",63460,"Adotbelow",7840,"Adotmacron",480,"Agrave",192,"Agravesmall",63456,"Ahookabove",7842,"Aiecyrillic",1236,"Ainvertedbreve",514,"Alpha",913,"Alphatonos",902,"Amacron",256,"Amonospace",65313,"Aogonek",260,"Aring",197,"Aringacute",506,"Aringbelow",7680,"Aringsmall",63461,"Asmall",63329,"Atilde",195,"Atildesmall",63459,"Aybarmenian",1329,"B",66,"Bcircle",9399,"Bdotaccent",7682,"Bdotbelow",7684,"Becyrillic",1041,"Benarmenian",1330,"Beta",914,"Bhook",385,"Blinebelow",7686,"Bmonospace",65314,"Brevesmall",63220,"Bsmall",63330,"Btopbar",386,"C",67,"Caarmenian",1342,"Cacute",262,"Caron",63178,"Caronsmall",63221,"Ccaron",268,"Ccedilla",199,"Ccedillaacute",7688,"Ccedillasmall",63463,"Ccircle",9400,"Ccircumflex",264,"Cdot",266,"Cdotaccent",266,"Cedillasmall",63416,"Chaarmenian",1353,"Cheabkhasiancyrillic",1212,"Checyrillic",1063,"Chedescenderabkhasiancyrillic",1214,"Chedescendercyrillic",1206,"Chedieresiscyrillic",1268,"Cheharmenian",1347,"Chekhakassiancyrillic",1227,"Cheverticalstrokecyrillic",1208,"Chi",935,"Chook",391,"Circumflexsmall",63222,"Cmonospace",65315,"Coarmenian",1361,"Csmall",63331,"D",68,"DZ",497,"DZcaron",452,"Daarmenian",1332,"Dafrican",393,"Dcaron",270,"Dcedilla",7696,"Dcircle",9401,"Dcircumflexbelow",7698,"Dcroat",272,"Ddotaccent",7690,"Ddotbelow",7692,"Decyrillic",1044,"Deicoptic",1006,"Delta",8710,"Deltagreek",916,"Dhook",394,"Dieresis",63179,"DieresisAcute",63180,"DieresisGrave",63181,"Dieresissmall",63400,"Digammagreek",988,"Djecyrillic",1026,"Dlinebelow",7694,"Dmonospace",65316,"Dotaccentsmall",63223,"Dslash",272,"Dsmall",63332,"Dtopbar",395,"Dz",498,"Dzcaron",453,"Dzeabkhasiancyrillic",1248,"Dzecyrillic",1029,"Dzhecyrillic",1039,"E",69,"Eacute",201,"Eacutesmall",63465,"Ebreve",276,"Ecaron",282,"Ecedillabreve",7708,"Echarmenian",1333,"Ecircle",9402,"Ecircumflex",202,"Ecircumflexacute",7870,"Ecircumflexbelow",7704,"Ecircumflexdotbelow",7878,"Ecircumflexgrave",7872,"Ecircumflexhookabove",7874,"Ecircumflexsmall",63466,"Ecircumflextilde",7876,"Ecyrillic",1028,"Edblgrave",516,"Edieresis",203,"Edieresissmall",63467,"Edot",278,"Edotaccent",278,"Edotbelow",7864,"Efcyrillic",1060,"Egrave",200,"Egravesmall",63464,"Eharmenian",1335,"Ehookabove",7866,"Eightroman",8551,"Einvertedbreve",518,"Eiotifiedcyrillic",1124,"Elcyrillic",1051,"Elevenroman",8554,"Emacron",274,"Emacronacute",7702,"Emacrongrave",7700,"Emcyrillic",1052,"Emonospace",65317,"Encyrillic",1053,"Endescendercyrillic",1186,"Eng",330,"Enghecyrillic",1188,"Enhookcyrillic",1223,"Eogonek",280,"Eopen",400,"Epsilon",917,"Epsilontonos",904,"Ercyrillic",1056,"Ereversed",398,"Ereversedcyrillic",1069,"Escyrillic",1057,"Esdescendercyrillic",1194,"Esh",425,"Esmall",63333,"Eta",919,"Etarmenian",1336,"Etatonos",905,"Eth",208,"Ethsmall",63472,"Etilde",7868,"Etildebelow",7706,"Euro",8364,"Ezh",439,"Ezhcaron",494,"Ezhreversed",440,"F",70,"Fcircle",9403,"Fdotaccent",7710,"Feharmenian",1366,"Feicoptic",996,"Fhook",401,"Fitacyrillic",1138,"Fiveroman",8548,"Fmonospace",65318,"Fourroman",8547,"Fsmall",63334,"G",71,"GBsquare",13191,"Gacute",500,"Gamma",915,"Gammaafrican",404,"Gangiacoptic",1002,"Gbreve",286,"Gcaron",486,"Gcedilla",290,"Gcircle",9404,"Gcircumflex",284,"Gcommaaccent",290,"Gdot",288,"Gdotaccent",288,"Gecyrillic",1043,"Ghadarmenian",1346,"Ghemiddlehookcyrillic",1172,"Ghestrokecyrillic",1170,"Gheupturncyrillic",1168,"Ghook",403,"Gimarmenian",1331,"Gjecyrillic",1027,"Gmacron",7712,"Gmonospace",65319,"Grave",63182,"Gravesmall",63328,"Gsmall",63335,"Gsmallhook",667,"Gstroke",484,"H",72,"H18533",9679,"H18543",9642,"H18551",9643,"H22073",9633,"HPsquare",13259,"Haabkhasiancyrillic",1192,"Hadescendercyrillic",1202,"Hardsigncyrillic",1066,"Hbar",294,"Hbrevebelow",7722,"Hcedilla",7720,"Hcircle",9405,"Hcircumflex",292,"Hdieresis",7718,"Hdotaccent",7714,"Hdotbelow",7716,"Hmonospace",65320,"Hoarmenian",1344,"Horicoptic",1e3,"Hsmall",63336,"Hungarumlaut",63183,"Hungarumlautsmall",63224,"Hzsquare",13200,"I",73,"IAcyrillic",1071,"IJ",306,"IUcyrillic",1070,"Iacute",205,"Iacutesmall",63469,"Ibreve",300,"Icaron",463,"Icircle",9406,"Icircumflex",206,"Icircumflexsmall",63470,"Icyrillic",1030,"Idblgrave",520,"Idieresis",207,"Idieresisacute",7726,"Idieresiscyrillic",1252,"Idieresissmall",63471,"Idot",304,"Idotaccent",304,"Idotbelow",7882,"Iebrevecyrillic",1238,"Iecyrillic",1045,"Ifraktur",8465,"Igrave",204,"Igravesmall",63468,"Ihookabove",7880,"Iicyrillic",1048,"Iinvertedbreve",522,"Iishortcyrillic",1049,"Imacron",298,"Imacroncyrillic",1250,"Imonospace",65321,"Iniarmenian",1339,"Iocyrillic",1025,"Iogonek",302,"Iota",921,"Iotaafrican",406,"Iotadieresis",938,"Iotatonos",906,"Ismall",63337,"Istroke",407,"Itilde",296,"Itildebelow",7724,"Izhitsacyrillic",1140,"Izhitsadblgravecyrillic",1142,"J",74,"Jaarmenian",1345,"Jcircle",9407,"Jcircumflex",308,"Jecyrillic",1032,"Jheharmenian",1355,"Jmonospace",65322,"Jsmall",63338,"K",75,"KBsquare",13189,"KKsquare",13261,"Kabashkircyrillic",1184,"Kacute",7728,"Kacyrillic",1050,"Kadescendercyrillic",1178,"Kahookcyrillic",1219,"Kappa",922,"Kastrokecyrillic",1182,"Kaverticalstrokecyrillic",1180,"Kcaron",488,"Kcedilla",310,"Kcircle",9408,"Kcommaaccent",310,"Kdotbelow",7730,"Keharmenian",1364,"Kenarmenian",1343,"Khacyrillic",1061,"Kheicoptic",998,"Khook",408,"Kjecyrillic",1036,"Klinebelow",7732,"Kmonospace",65323,"Koppacyrillic",1152,"Koppagreek",990,"Ksicyrillic",1134,"Ksmall",63339,"L",76,"LJ",455,"LL",63167,"Lacute",313,"Lambda",923,"Lcaron",317,"Lcedilla",315,"Lcircle",9409,"Lcircumflexbelow",7740,"Lcommaaccent",315,"Ldot",319,"Ldotaccent",319,"Ldotbelow",7734,"Ldotbelowmacron",7736,"Liwnarmenian",1340,"Lj",456,"Ljecyrillic",1033,"Llinebelow",7738,"Lmonospace",65324,"Lslash",321,"Lslashsmall",63225,"Lsmall",63340,"M",77,"MBsquare",13190,"Macron",63184,"Macronsmall",63407,"Macute",7742,"Mcircle",9410,"Mdotaccent",7744,"Mdotbelow",7746,"Menarmenian",1348,"Mmonospace",65325,"Msmall",63341,"Mturned",412,"Mu",924,"N",78,"NJ",458,"Nacute",323,"Ncaron",327,"Ncedilla",325,"Ncircle",9411,"Ncircumflexbelow",7754,"Ncommaaccent",325,"Ndotaccent",7748,"Ndotbelow",7750,"Nhookleft",413,"Nineroman",8552,"Nj",459,"Njecyrillic",1034,"Nlinebelow",7752,"Nmonospace",65326,"Nowarmenian",1350,"Nsmall",63342,"Ntilde",209,"Ntildesmall",63473,"Nu",925,"O",79,"OE",338,"OEsmall",63226,"Oacute",211,"Oacutesmall",63475,"Obarredcyrillic",1256,"Obarreddieresiscyrillic",1258,"Obreve",334,"Ocaron",465,"Ocenteredtilde",415,"Ocircle",9412,"Ocircumflex",212,"Ocircumflexacute",7888,"Ocircumflexdotbelow",7896,"Ocircumflexgrave",7890,"Ocircumflexhookabove",7892,"Ocircumflexsmall",63476,"Ocircumflextilde",7894,"Ocyrillic",1054,"Odblacute",336,"Odblgrave",524,"Odieresis",214,"Odieresiscyrillic",1254,"Odieresissmall",63478,"Odotbelow",7884,"Ogoneksmall",63227,"Ograve",210,"Ogravesmall",63474,"Oharmenian",1365,"Ohm",8486,"Ohookabove",7886,"Ohorn",416,"Ohornacute",7898,"Ohorndotbelow",7906,"Ohorngrave",7900,"Ohornhookabove",7902,"Ohorntilde",7904,"Ohungarumlaut",336,"Oi",418,"Oinvertedbreve",526,"Omacron",332,"Omacronacute",7762,"Omacrongrave",7760,"Omega",8486,"Omegacyrillic",1120,"Omegagreek",937,"Omegaroundcyrillic",1146,"Omegatitlocyrillic",1148,"Omegatonos",911,"Omicron",927,"Omicrontonos",908,"Omonospace",65327,"Oneroman",8544,"Oogonek",490,"Oogonekmacron",492,"Oopen",390,"Oslash",216,"Oslashacute",510,"Oslashsmall",63480,"Osmall",63343,"Ostrokeacute",510,"Otcyrillic",1150,"Otilde",213,"Otildeacute",7756,"Otildedieresis",7758,"Otildesmall",63477,"P",80,"Pacute",7764,"Pcircle",9413,"Pdotaccent",7766,"Pecyrillic",1055,"Peharmenian",1354,"Pemiddlehookcyrillic",1190,"Phi",934,"Phook",420,"Pi",928,"Piwrarmenian",1363,"Pmonospace",65328,"Psi",936,"Psicyrillic",1136,"Psmall",63344,"Q",81,"Qcircle",9414,"Qmonospace",65329,"Qsmall",63345,"R",82,"Raarmenian",1356,"Racute",340,"Rcaron",344,"Rcedilla",342,"Rcircle",9415,"Rcommaaccent",342,"Rdblgrave",528,"Rdotaccent",7768,"Rdotbelow",7770,"Rdotbelowmacron",7772,"Reharmenian",1360,"Rfraktur",8476,"Rho",929,"Ringsmall",63228,"Rinvertedbreve",530,"Rlinebelow",7774,"Rmonospace",65330,"Rsmall",63346,"Rsmallinverted",641,"Rsmallinvertedsuperior",694,"S",83,"SF010000",9484,"SF020000",9492,"SF030000",9488,"SF040000",9496,"SF050000",9532,"SF060000",9516,"SF070000",9524,"SF080000",9500,"SF090000",9508,"SF100000",9472,"SF110000",9474,"SF190000",9569,"SF200000",9570,"SF210000",9558,"SF220000",9557,"SF230000",9571,"SF240000",9553,"SF250000",9559,"SF260000",9565,"SF270000",9564,"SF280000",9563,"SF360000",9566,"SF370000",9567,"SF380000",9562,"SF390000",9556,"SF400000",9577,"SF410000",9574,"SF420000",9568,"SF430000",9552,"SF440000",9580,"SF450000",9575,"SF460000",9576,"SF470000",9572,"SF480000",9573,"SF490000",9561,"SF500000",9560,"SF510000",9554,"SF520000",9555,"SF530000",9579,"SF540000",9578,"Sacute",346,"Sacutedotaccent",7780,"Sampigreek",992,"Scaron",352,"Scarondotaccent",7782,"Scaronsmall",63229,"Scedilla",350,"Schwa",399,"Schwacyrillic",1240,"Schwadieresiscyrillic",1242,"Scircle",9416,"Scircumflex",348,"Scommaaccent",536,"Sdotaccent",7776,"Sdotbelow",7778,"Sdotbelowdotaccent",7784,"Seharmenian",1357,"Sevenroman",8550,"Shaarmenian",1351,"Shacyrillic",1064,"Shchacyrillic",1065,"Sheicoptic",994,"Shhacyrillic",1210,"Shimacoptic",1004,"Sigma",931,"Sixroman",8549,"Smonospace",65331,"Softsigncyrillic",1068,"Ssmall",63347,"Stigmagreek",986,"T",84,"Tau",932,"Tbar",358,"Tcaron",356,"Tcedilla",354,"Tcircle",9417,"Tcircumflexbelow",7792,"Tcommaaccent",354,"Tdotaccent",7786,"Tdotbelow",7788,"Tecyrillic",1058,"Tedescendercyrillic",1196,"Tenroman",8553,"Tetsecyrillic",1204,"Theta",920,"Thook",428,"Thorn",222,"Thornsmall",63486,"Threeroman",8546,"Tildesmall",63230,"Tiwnarmenian",1359,"Tlinebelow",7790,"Tmonospace",65332,"Toarmenian",1337,"Tonefive",444,"Tonesix",388,"Tonetwo",423,"Tretroflexhook",430,"Tsecyrillic",1062,"Tshecyrillic",1035,"Tsmall",63348,"Twelveroman",8555,"Tworoman",8545,"U",85,"Uacute",218,"Uacutesmall",63482,"Ubreve",364,"Ucaron",467,"Ucircle",9418,"Ucircumflex",219,"Ucircumflexbelow",7798,"Ucircumflexsmall",63483,"Ucyrillic",1059,"Udblacute",368,"Udblgrave",532,"Udieresis",220,"Udieresisacute",471,"Udieresisbelow",7794,"Udieresiscaron",473,"Udieresiscyrillic",1264,"Udieresisgrave",475,"Udieresismacron",469,"Udieresissmall",63484,"Udotbelow",7908,"Ugrave",217,"Ugravesmall",63481,"Uhookabove",7910,"Uhorn",431,"Uhornacute",7912,"Uhorndotbelow",7920,"Uhorngrave",7914,"Uhornhookabove",7916,"Uhorntilde",7918,"Uhungarumlaut",368,"Uhungarumlautcyrillic",1266,"Uinvertedbreve",534,"Ukcyrillic",1144,"Umacron",362,"Umacroncyrillic",1262,"Umacrondieresis",7802,"Umonospace",65333,"Uogonek",370,"Upsilon",933,"Upsilon1",978,"Upsilonacutehooksymbolgreek",979,"Upsilonafrican",433,"Upsilondieresis",939,"Upsilondieresishooksymbolgreek",980,"Upsilonhooksymbol",978,"Upsilontonos",910,"Uring",366,"Ushortcyrillic",1038,"Usmall",63349,"Ustraightcyrillic",1198,"Ustraightstrokecyrillic",1200,"Utilde",360,"Utildeacute",7800,"Utildebelow",7796,"V",86,"Vcircle",9419,"Vdotbelow",7806,"Vecyrillic",1042,"Vewarmenian",1358,"Vhook",434,"Vmonospace",65334,"Voarmenian",1352,"Vsmall",63350,"Vtilde",7804,"W",87,"Wacute",7810,"Wcircle",9420,"Wcircumflex",372,"Wdieresis",7812,"Wdotaccent",7814,"Wdotbelow",7816,"Wgrave",7808,"Wmonospace",65335,"Wsmall",63351,"X",88,"Xcircle",9421,"Xdieresis",7820,"Xdotaccent",7818,"Xeharmenian",1341,"Xi",926,"Xmonospace",65336,"Xsmall",63352,"Y",89,"Yacute",221,"Yacutesmall",63485,"Yatcyrillic",1122,"Ycircle",9422,"Ycircumflex",374,"Ydieresis",376,"Ydieresissmall",63487,"Ydotaccent",7822,"Ydotbelow",7924,"Yericyrillic",1067,"Yerudieresiscyrillic",1272,"Ygrave",7922,"Yhook",435,"Yhookabove",7926,"Yiarmenian",1349,"Yicyrillic",1031,"Yiwnarmenian",1362,"Ymonospace",65337,"Ysmall",63353,"Ytilde",7928,"Yusbigcyrillic",1130,"Yusbigiotifiedcyrillic",1132,"Yuslittlecyrillic",1126,"Yuslittleiotifiedcyrillic",1128,"Z",90,"Zaarmenian",1334,"Zacute",377,"Zcaron",381,"Zcaronsmall",63231,"Zcircle",9423,"Zcircumflex",7824,"Zdot",379,"Zdotaccent",379,"Zdotbelow",7826,"Zecyrillic",1047,"Zedescendercyrillic",1176,"Zedieresiscyrillic",1246,"Zeta",918,"Zhearmenian",1338,"Zhebrevecyrillic",1217,"Zhecyrillic",1046,"Zhedescendercyrillic",1174,"Zhedieresiscyrillic",1244,"Zlinebelow",7828,"Zmonospace",65338,"Zsmall",63354,"Zstroke",437,"a",97,"aabengali",2438,"aacute",225,"aadeva",2310,"aagujarati",2694,"aagurmukhi",2566,"aamatragurmukhi",2622,"aarusquare",13059,"aavowelsignbengali",2494,"aavowelsigndeva",2366,"aavowelsigngujarati",2750,"abbreviationmarkarmenian",1375,"abbreviationsigndeva",2416,"abengali",2437,"abopomofo",12570,"abreve",259,"abreveacute",7855,"abrevecyrillic",1233,"abrevedotbelow",7863,"abrevegrave",7857,"abrevehookabove",7859,"abrevetilde",7861,"acaron",462,"acircle",9424,"acircumflex",226,"acircumflexacute",7845,"acircumflexdotbelow",7853,"acircumflexgrave",7847,"acircumflexhookabove",7849,"acircumflextilde",7851,"acute",180,"acutebelowcmb",791,"acutecmb",769,"acutecomb",769,"acutedeva",2388,"acutelowmod",719,"acutetonecmb",833,"acyrillic",1072,"adblgrave",513,"addakgurmukhi",2673,"adeva",2309,"adieresis",228,"adieresiscyrillic",1235,"adieresismacron",479,"adotbelow",7841,"adotmacron",481,"ae",230,"aeacute",509,"aekorean",12624,"aemacron",483,"afii00208",8213,"afii08941",8356,"afii10017",1040,"afii10018",1041,"afii10019",1042,"afii10020",1043,"afii10021",1044,"afii10022",1045,"afii10023",1025,"afii10024",1046,"afii10025",1047,"afii10026",1048,"afii10027",1049,"afii10028",1050,"afii10029",1051,"afii10030",1052,"afii10031",1053,"afii10032",1054,"afii10033",1055,"afii10034",1056,"afii10035",1057,"afii10036",1058,"afii10037",1059,"afii10038",1060,"afii10039",1061,"afii10040",1062,"afii10041",1063,"afii10042",1064,"afii10043",1065,"afii10044",1066,"afii10045",1067,"afii10046",1068,"afii10047",1069,"afii10048",1070,"afii10049",1071,"afii10050",1168,"afii10051",1026,"afii10052",1027,"afii10053",1028,"afii10054",1029,"afii10055",1030,"afii10056",1031,"afii10057",1032,"afii10058",1033,"afii10059",1034,"afii10060",1035,"afii10061",1036,"afii10062",1038,"afii10063",63172,"afii10064",63173,"afii10065",1072,"afii10066",1073,"afii10067",1074,"afii10068",1075,"afii10069",1076,"afii10070",1077,"afii10071",1105,"afii10072",1078,"afii10073",1079,"afii10074",1080,"afii10075",1081,"afii10076",1082,"afii10077",1083,"afii10078",1084,"afii10079",1085,"afii10080",1086,"afii10081",1087,"afii10082",1088,"afii10083",1089,"afii10084",1090,"afii10085",1091,"afii10086",1092,"afii10087",1093,"afii10088",1094,"afii10089",1095,"afii10090",1096,"afii10091",1097,"afii10092",1098,"afii10093",1099,"afii10094",1100,"afii10095",1101,"afii10096",1102,"afii10097",1103,"afii10098",1169,"afii10099",1106,"afii10100",1107,"afii10101",1108,"afii10102",1109,"afii10103",1110,"afii10104",1111,"afii10105",1112,"afii10106",1113,"afii10107",1114,"afii10108",1115,"afii10109",1116,"afii10110",1118,"afii10145",1039,"afii10146",1122,"afii10147",1138,"afii10148",1140,"afii10192",63174,"afii10193",1119,"afii10194",1123,"afii10195",1139,"afii10196",1141,"afii10831",63175,"afii10832",63176,"afii10846",1241,"afii299",8206,"afii300",8207,"afii301",8205,"afii57381",1642,"afii57388",1548,"afii57392",1632,"afii57393",1633,"afii57394",1634,"afii57395",1635,"afii57396",1636,"afii57397",1637,"afii57398",1638,"afii57399",1639,"afii57400",1640,"afii57401",1641,"afii57403",1563,"afii57407",1567,"afii57409",1569,"afii57410",1570,"afii57411",1571,"afii57412",1572,"afii57413",1573,"afii57414",1574,"afii57415",1575,"afii57416",1576,"afii57417",1577,"afii57418",1578,"afii57419",1579,"afii57420",1580,"afii57421",1581,"afii57422",1582,"afii57423",1583,"afii57424",1584,"afii57425",1585,"afii57426",1586,"afii57427",1587,"afii57428",1588,"afii57429",1589,"afii57430",1590,"afii57431",1591,"afii57432",1592,"afii57433",1593,"afii57434",1594,"afii57440",1600,"afii57441",1601,"afii57442",1602,"afii57443",1603,"afii57444",1604,"afii57445",1605,"afii57446",1606,"afii57448",1608,"afii57449",1609,"afii57450",1610,"afii57451",1611,"afii57452",1612,"afii57453",1613,"afii57454",1614,"afii57455",1615,"afii57456",1616,"afii57457",1617,"afii57458",1618,"afii57470",1607,"afii57505",1700,"afii57506",1662,"afii57507",1670,"afii57508",1688,"afii57509",1711,"afii57511",1657,"afii57512",1672,"afii57513",1681,"afii57514",1722,"afii57519",1746,"afii57534",1749,"afii57636",8362,"afii57645",1470,"afii57658",1475,"afii57664",1488,"afii57665",1489,"afii57666",1490,"afii57667",1491,"afii57668",1492,"afii57669",1493,"afii57670",1494,"afii57671",1495,"afii57672",1496,"afii57673",1497,"afii57674",1498,"afii57675",1499,"afii57676",1500,"afii57677",1501,"afii57678",1502,"afii57679",1503,"afii57680",1504,"afii57681",1505,"afii57682",1506,"afii57683",1507,"afii57684",1508,"afii57685",1509,"afii57686",1510,"afii57687",1511,"afii57688",1512,"afii57689",1513,"afii57690",1514,"afii57694",64298,"afii57695",64299,"afii57700",64331,"afii57705",64287,"afii57716",1520,"afii57717",1521,"afii57718",1522,"afii57723",64309,"afii57793",1460,"afii57794",1461,"afii57795",1462,"afii57796",1467,"afii57797",1464,"afii57798",1463,"afii57799",1456,"afii57800",1458,"afii57801",1457,"afii57802",1459,"afii57803",1474,"afii57804",1473,"afii57806",1465,"afii57807",1468,"afii57839",1469,"afii57841",1471,"afii57842",1472,"afii57929",700,"afii61248",8453,"afii61289",8467,"afii61352",8470,"afii61573",8236,"afii61574",8237,"afii61575",8238,"afii61664",8204,"afii63167",1645,"afii64937",701,"agrave",224,"agujarati",2693,"agurmukhi",2565,"ahiragana",12354,"ahookabove",7843,"aibengali",2448,"aibopomofo",12574,"aideva",2320,"aiecyrillic",1237,"aigujarati",2704,"aigurmukhi",2576,"aimatragurmukhi",2632,"ainarabic",1593,"ainfinalarabic",65226,"aininitialarabic",65227,"ainmedialarabic",65228,"ainvertedbreve",515,"aivowelsignbengali",2504,"aivowelsigndeva",2376,"aivowelsigngujarati",2760,"akatakana",12450,"akatakanahalfwidth",65393,"akorean",12623,"alef",1488,"alefarabic",1575,"alefdageshhebrew",64304,"aleffinalarabic",65166,"alefhamzaabovearabic",1571,"alefhamzaabovefinalarabic",65156,"alefhamzabelowarabic",1573,"alefhamzabelowfinalarabic",65160,"alefhebrew",1488,"aleflamedhebrew",64335,"alefmaddaabovearabic",1570,"alefmaddaabovefinalarabic",65154,"alefmaksuraarabic",1609,"alefmaksurafinalarabic",65264,"alefmaksurainitialarabic",65267,"alefmaksuramedialarabic",65268,"alefpatahhebrew",64302,"alefqamatshebrew",64303,"aleph",8501,"allequal",8780,"alpha",945,"alphatonos",940,"amacron",257,"amonospace",65345,"ampersand",38,"ampersandmonospace",65286,"ampersandsmall",63270,"amsquare",13250,"anbopomofo",12578,"angbopomofo",12580,"angbracketleft",12296,"angbracketright",12297,"angkhankhuthai",3674,"angle",8736,"anglebracketleft",12296,"anglebracketleftvertical",65087,"anglebracketright",12297,"anglebracketrightvertical",65088,"angleleft",9001,"angleright",9002,"angstrom",8491,"anoteleia",903,"anudattadeva",2386,"anusvarabengali",2434,"anusvaradeva",2306,"anusvaragujarati",2690,"aogonek",261,"apaatosquare",13056,"aparen",9372,"apostrophearmenian",1370,"apostrophemod",700,"apple",63743,"approaches",8784,"approxequal",8776,"approxequalorimage",8786,"approximatelyequal",8773,"araeaekorean",12686,"araeakorean",12685,"arc",8978,"arighthalfring",7834,"aring",229,"aringacute",507,"aringbelow",7681,"arrowboth",8596,"arrowdashdown",8675,"arrowdashleft",8672,"arrowdashright",8674,"arrowdashup",8673,"arrowdblboth",8660,"arrowdbldown",8659,"arrowdblleft",8656,"arrowdblright",8658,"arrowdblup",8657,"arrowdown",8595,"arrowdownleft",8601,"arrowdownright",8600,"arrowdownwhite",8681,"arrowheaddownmod",709,"arrowheadleftmod",706,"arrowheadrightmod",707,"arrowheadupmod",708,"arrowhorizex",63719,"arrowleft",8592,"arrowleftdbl",8656,"arrowleftdblstroke",8653,"arrowleftoverright",8646,"arrowleftwhite",8678,"arrowright",8594,"arrowrightdblstroke",8655,"arrowrightheavy",10142,"arrowrightoverleft",8644,"arrowrightwhite",8680,"arrowtableft",8676,"arrowtabright",8677,"arrowup",8593,"arrowupdn",8597,"arrowupdnbse",8616,"arrowupdownbase",8616,"arrowupleft",8598,"arrowupleftofdown",8645,"arrowupright",8599,"arrowupwhite",8679,"arrowvertex",63718,"asciicircum",94,"asciicircummonospace",65342,"asciitilde",126,"asciitildemonospace",65374,"ascript",593,"ascriptturned",594,"asmallhiragana",12353,"asmallkatakana",12449,"asmallkatakanahalfwidth",65383,"asterisk",42,"asteriskaltonearabic",1645,"asteriskarabic",1645,"asteriskmath",8727,"asteriskmonospace",65290,"asterisksmall",65121,"asterism",8258,"asuperior",63209,"asymptoticallyequal",8771,"at",64,"atilde",227,"atmonospace",65312,"atsmall",65131,"aturned",592,"aubengali",2452,"aubopomofo",12576,"audeva",2324,"augujarati",2708,"augurmukhi",2580,"aulengthmarkbengali",2519,"aumatragurmukhi",2636,"auvowelsignbengali",2508,"auvowelsigndeva",2380,"auvowelsigngujarati",2764,"avagrahadeva",2365,"aybarmenian",1377,"ayin",1506,"ayinaltonehebrew",64288,"ayinhebrew",1506,"b",98,"babengali",2476,"backslash",92,"backslashmonospace",65340,"badeva",2348,"bagujarati",2732,"bagurmukhi",2604,"bahiragana",12400,"bahtthai",3647,"bakatakana",12496,"bar",124,"barmonospace",65372,"bbopomofo",12549,"bcircle",9425,"bdotaccent",7683,"bdotbelow",7685,"beamedsixteenthnotes",9836,"because",8757,"becyrillic",1073,"beharabic",1576,"behfinalarabic",65168,"behinitialarabic",65169,"behiragana",12409,"behmedialarabic",65170,"behmeeminitialarabic",64671,"behmeemisolatedarabic",64520,"behnoonfinalarabic",64621,"bekatakana",12505,"benarmenian",1378,"bet",1489,"beta",946,"betasymbolgreek",976,"betdagesh",64305,"betdageshhebrew",64305,"bethebrew",1489,"betrafehebrew",64332,"bhabengali",2477,"bhadeva",2349,"bhagujarati",2733,"bhagurmukhi",2605,"bhook",595,"bihiragana",12403,"bikatakana",12499,"bilabialclick",664,"bindigurmukhi",2562,"birusquare",13105,"blackcircle",9679,"blackdiamond",9670,"blackdownpointingtriangle",9660,"blackleftpointingpointer",9668,"blackleftpointingtriangle",9664,"blacklenticularbracketleft",12304,"blacklenticularbracketleftvertical",65083,"blacklenticularbracketright",12305,"blacklenticularbracketrightvertical",65084,"blacklowerlefttriangle",9699,"blacklowerrighttriangle",9698,"blackrectangle",9644,"blackrightpointingpointer",9658,"blackrightpointingtriangle",9654,"blacksmallsquare",9642,"blacksmilingface",9787,"blacksquare",9632,"blackstar",9733,"blackupperlefttriangle",9700,"blackupperrighttriangle",9701,"blackuppointingsmalltriangle",9652,"blackuppointingtriangle",9650,"blank",9251,"blinebelow",7687,"block",9608,"bmonospace",65346,"bobaimaithai",3610,"bohiragana",12412,"bokatakana",12508,"bparen",9373,"bqsquare",13251,"braceex",63732,"braceleft",123,"braceleftbt",63731,"braceleftmid",63730,"braceleftmonospace",65371,"braceleftsmall",65115,"bracelefttp",63729,"braceleftvertical",65079,"braceright",125,"bracerightbt",63742,"bracerightmid",63741,"bracerightmonospace",65373,"bracerightsmall",65116,"bracerighttp",63740,"bracerightvertical",65080,"bracketleft",91,"bracketleftbt",63728,"bracketleftex",63727,"bracketleftmonospace",65339,"bracketlefttp",63726,"bracketright",93,"bracketrightbt",63739,"bracketrightex",63738,"bracketrightmonospace",65341,"bracketrighttp",63737,"breve",728,"brevebelowcmb",814,"brevecmb",774,"breveinvertedbelowcmb",815,"breveinvertedcmb",785,"breveinverteddoublecmb",865,"bridgebelowcmb",810,"bridgeinvertedbelowcmb",826,"brokenbar",166,"bstroke",384,"bsuperior",63210,"btopbar",387,"buhiragana",12406,"bukatakana",12502,"bullet",8226,"bulletinverse",9688,"bulletoperator",8729,"bullseye",9678,"c",99,"caarmenian",1390,"cabengali",2458,"cacute",263,"cadeva",2330,"cagujarati",2714,"cagurmukhi",2586,"calsquare",13192,"candrabindubengali",2433,"candrabinducmb",784,"candrabindudeva",2305,"candrabindugujarati",2689,"capslock",8682,"careof",8453,"caron",711,"caronbelowcmb",812,"caroncmb",780,"carriagereturn",8629,"cbopomofo",12568,"ccaron",269,"ccedilla",231,"ccedillaacute",7689,"ccircle",9426,"ccircumflex",265,"ccurl",597,"cdot",267,"cdotaccent",267,"cdsquare",13253,"cedilla",184,"cedillacmb",807,"cent",162,"centigrade",8451,"centinferior",63199,"centmonospace",65504,"centoldstyle",63394,"centsuperior",63200,"chaarmenian",1401,"chabengali",2459,"chadeva",2331,"chagujarati",2715,"chagurmukhi",2587,"chbopomofo",12564,"cheabkhasiancyrillic",1213,"checkmark",10003,"checyrillic",1095,"chedescenderabkhasiancyrillic",1215,"chedescendercyrillic",1207,"chedieresiscyrillic",1269,"cheharmenian",1395,"chekhakassiancyrillic",1228,"cheverticalstrokecyrillic",1209,"chi",967,"chieuchacirclekorean",12919,"chieuchaparenkorean",12823,"chieuchcirclekorean",12905,"chieuchkorean",12618,"chieuchparenkorean",12809,"chochangthai",3594,"chochanthai",3592,"chochingthai",3593,"chochoethai",3596,"chook",392,"cieucacirclekorean",12918,"cieucaparenkorean",12822,"cieuccirclekorean",12904,"cieuckorean",12616,"cieucparenkorean",12808,"cieucuparenkorean",12828,"circle",9675,"circlecopyrt",169,"circlemultiply",8855,"circleot",8857,"circleplus",8853,"circlepostalmark",12342,"circlewithlefthalfblack",9680,"circlewithrighthalfblack",9681,"circumflex",710,"circumflexbelowcmb",813,"circumflexcmb",770,"clear",8999,"clickalveolar",450,"clickdental",448,"clicklateral",449,"clickretroflex",451,"club",9827,"clubsuitblack",9827,"clubsuitwhite",9831,"cmcubedsquare",13220,"cmonospace",65347,"cmsquaredsquare",13216,"coarmenian",1409,"colon",58,"colonmonetary",8353,"colonmonospace",65306,"colonsign",8353,"colonsmall",65109,"colontriangularhalfmod",721,"colontriangularmod",720,"comma",44,"commaabovecmb",787,"commaaboverightcmb",789,"commaaccent",63171,"commaarabic",1548,"commaarmenian",1373,"commainferior",63201,"commamonospace",65292,"commareversedabovecmb",788,"commareversedmod",701,"commasmall",65104,"commasuperior",63202,"commaturnedabovecmb",786,"commaturnedmod",699,"compass",9788,"congruent",8773,"contourintegral",8750,"control",8963,"controlACK",6,"controlBEL",7,"controlBS",8,"controlCAN",24,"controlCR",13,"controlDC1",17,"controlDC2",18,"controlDC3",19,"controlDC4",20,"controlDEL",127,"controlDLE",16,"controlEM",25,"controlENQ",5,"controlEOT",4,"controlESC",27,"controlETB",23,"controlETX",3,"controlFF",12,"controlFS",28,"controlGS",29,"controlHT",9,"controlLF",10,"controlNAK",21,"controlNULL",0,"controlRS",30,"controlSI",15,"controlSO",14,"controlSOT",2,"controlSTX",1,"controlSUB",26,"controlSYN",22,"controlUS",31,"controlVT",11,"copyright",169,"copyrightsans",63721,"copyrightserif",63193,"cornerbracketleft",12300,"cornerbracketlefthalfwidth",65378,"cornerbracketleftvertical",65089,"cornerbracketright",12301,"cornerbracketrighthalfwidth",65379,"cornerbracketrightvertical",65090,"corporationsquare",13183,"cosquare",13255,"coverkgsquare",13254,"cparen",9374,"cruzeiro",8354,"cstretched",663,"curlyand",8911,"curlyor",8910,"currency",164,"cyrBreve",63185,"cyrFlex",63186,"cyrbreve",63188,"cyrflex",63189,"d",100,"daarmenian",1380,"dabengali",2470,"dadarabic",1590,"dadeva",2342,"dadfinalarabic",65214,"dadinitialarabic",65215,"dadmedialarabic",65216,"dagesh",1468,"dageshhebrew",1468,"dagger",8224,"daggerdbl",8225,"dagujarati",2726,"dagurmukhi",2598,"dahiragana",12384,"dakatakana",12480,"dalarabic",1583,"dalet",1491,"daletdagesh",64307,"daletdageshhebrew",64307,"dalethebrew",1491,"dalfinalarabic",65194,"dammaarabic",1615,"dammalowarabic",1615,"dammatanaltonearabic",1612,"dammatanarabic",1612,"danda",2404,"dargahebrew",1447,"dargalefthebrew",1447,"dasiapneumatacyrilliccmb",1157,"dblGrave",63187,"dblanglebracketleft",12298,"dblanglebracketleftvertical",65085,"dblanglebracketright",12299,"dblanglebracketrightvertical",65086,"dblarchinvertedbelowcmb",811,"dblarrowleft",8660,"dblarrowright",8658,"dbldanda",2405,"dblgrave",63190,"dblgravecmb",783,"dblintegral",8748,"dbllowline",8215,"dbllowlinecmb",819,"dbloverlinecmb",831,"dblprimemod",698,"dblverticalbar",8214,"dblverticallineabovecmb",782,"dbopomofo",12553,"dbsquare",13256,"dcaron",271,"dcedilla",7697,"dcircle",9427,"dcircumflexbelow",7699,"dcroat",273,"ddabengali",2465,"ddadeva",2337,"ddagujarati",2721,"ddagurmukhi",2593,"ddalarabic",1672,"ddalfinalarabic",64393,"dddhadeva",2396,"ddhabengali",2466,"ddhadeva",2338,"ddhagujarati",2722,"ddhagurmukhi",2594,"ddotaccent",7691,"ddotbelow",7693,"decimalseparatorarabic",1643,"decimalseparatorpersian",1643,"decyrillic",1076,"degree",176,"dehihebrew",1453,"dehiragana",12391,"deicoptic",1007,"dekatakana",12487,"deleteleft",9003,"deleteright",8998,"delta",948,"deltaturned",397,"denominatorminusonenumeratorbengali",2552,"dezh",676,"dhabengali",2471,"dhadeva",2343,"dhagujarati",2727,"dhagurmukhi",2599,"dhook",599,"dialytikatonos",901,"dialytikatonoscmb",836,"diamond",9830,"diamondsuitwhite",9826,"dieresis",168,"dieresisacute",63191,"dieresisbelowcmb",804,"dieresiscmb",776,"dieresisgrave",63192,"dieresistonos",901,"dihiragana",12386,"dikatakana",12482,"dittomark",12291,"divide",247,"divides",8739,"divisionslash",8725,"djecyrillic",1106,"dkshade",9619,"dlinebelow",7695,"dlsquare",13207,"dmacron",273,"dmonospace",65348,"dnblock",9604,"dochadathai",3598,"dodekthai",3604,"dohiragana",12393,"dokatakana",12489,"dollar",36,"dollarinferior",63203,"dollarmonospace",65284,"dollaroldstyle",63268,"dollarsmall",65129,"dollarsuperior",63204,"dong",8363,"dorusquare",13094,"dotaccent",729,"dotaccentcmb",775,"dotbelowcmb",803,"dotbelowcomb",803,"dotkatakana",12539,"dotlessi",305,"dotlessj",63166,"dotlessjstrokehook",644,"dotmath",8901,"dottedcircle",9676,"doubleyodpatah",64287,"doubleyodpatahhebrew",64287,"downtackbelowcmb",798,"downtackmod",725,"dparen",9375,"dsuperior",63211,"dtail",598,"dtopbar",396,"duhiragana",12389,"dukatakana",12485,"dz",499,"dzaltone",675,"dzcaron",454,"dzcurl",677,"dzeabkhasiancyrillic",1249,"dzecyrillic",1109,"dzhecyrillic",1119,"e",101,"eacute",233,"earth",9793,"ebengali",2447,"ebopomofo",12572,"ebreve",277,"ecandradeva",2317,"ecandragujarati",2701,"ecandravowelsigndeva",2373,"ecandravowelsigngujarati",2757,"ecaron",283,"ecedillabreve",7709,"echarmenian",1381,"echyiwnarmenian",1415,"ecircle",9428,"ecircumflex",234,"ecircumflexacute",7871,"ecircumflexbelow",7705,"ecircumflexdotbelow",7879,"ecircumflexgrave",7873,"ecircumflexhookabove",7875,"ecircumflextilde",7877,"ecyrillic",1108,"edblgrave",517,"edeva",2319,"edieresis",235,"edot",279,"edotaccent",279,"edotbelow",7865,"eegurmukhi",2575,"eematragurmukhi",2631,"efcyrillic",1092,"egrave",232,"egujarati",2703,"eharmenian",1383,"ehbopomofo",12573,"ehiragana",12360,"ehookabove",7867,"eibopomofo",12575,"eight",56,"eightarabic",1640,"eightbengali",2542,"eightcircle",9319,"eightcircleinversesansserif",10129,"eightdeva",2414,"eighteencircle",9329,"eighteenparen",9349,"eighteenperiod",9369,"eightgujarati",2798,"eightgurmukhi",2670,"eighthackarabic",1640,"eighthangzhou",12328,"eighthnotebeamed",9835,"eightideographicparen",12839,"eightinferior",8328,"eightmonospace",65304,"eightoldstyle",63288,"eightparen",9339,"eightperiod",9359,"eightpersian",1784,"eightroman",8567,"eightsuperior",8312,"eightthai",3672,"einvertedbreve",519,"eiotifiedcyrillic",1125,"ekatakana",12456,"ekatakanahalfwidth",65396,"ekonkargurmukhi",2676,"ekorean",12628,"elcyrillic",1083,"element",8712,"elevencircle",9322,"elevenparen",9342,"elevenperiod",9362,"elevenroman",8570,"ellipsis",8230,"ellipsisvertical",8942,"emacron",275,"emacronacute",7703,"emacrongrave",7701,"emcyrillic",1084,"emdash",8212,"emdashvertical",65073,"emonospace",65349,"emphasismarkarmenian",1371,"emptyset",8709,"enbopomofo",12579,"encyrillic",1085,"endash",8211,"endashvertical",65074,"endescendercyrillic",1187,"eng",331,"engbopomofo",12581,"enghecyrillic",1189,"enhookcyrillic",1224,"enspace",8194,"eogonek",281,"eokorean",12627,"eopen",603,"eopenclosed",666,"eopenreversed",604,"eopenreversedclosed",606,"eopenreversedhook",605,"eparen",9376,"epsilon",949,"epsilontonos",941,"equal",61,"equalmonospace",65309,"equalsmall",65126,"equalsuperior",8316,"equivalence",8801,"erbopomofo",12582,"ercyrillic",1088,"ereversed",600,"ereversedcyrillic",1101,"escyrillic",1089,"esdescendercyrillic",1195,"esh",643,"eshcurl",646,"eshortdeva",2318,"eshortvowelsigndeva",2374,"eshreversedloop",426,"eshsquatreversed",645,"esmallhiragana",12359,"esmallkatakana",12455,"esmallkatakanahalfwidth",65386,"estimated",8494,"esuperior",63212,"eta",951,"etarmenian",1384,"etatonos",942,"eth",240,"etilde",7869,"etildebelow",7707,"etnahtafoukhhebrew",1425,"etnahtafoukhlefthebrew",1425,"etnahtahebrew",1425,"etnahtalefthebrew",1425,"eturned",477,"eukorean",12641,"euro",8364,"evowelsignbengali",2503,"evowelsigndeva",2375,"evowelsigngujarati",2759,"exclam",33,"exclamarmenian",1372,"exclamdbl",8252,"exclamdown",161,"exclamdownsmall",63393,"exclammonospace",65281,"exclamsmall",63265,"existential",8707,"ezh",658,"ezhcaron",495,"ezhcurl",659,"ezhreversed",441,"ezhtail",442,"f",102,"fadeva",2398,"fagurmukhi",2654,"fahrenheit",8457,"fathaarabic",1614,"fathalowarabic",1614,"fathatanarabic",1611,"fbopomofo",12552,"fcircle",9429,"fdotaccent",7711,"feharabic",1601,"feharmenian",1414,"fehfinalarabic",65234,"fehinitialarabic",65235,"fehmedialarabic",65236,"feicoptic",997,"female",9792,"ff",64256,"f_f",64256,"ffi",64259,"ffl",64260,"fi",64257,"fifteencircle",9326,"fifteenparen",9346,"fifteenperiod",9366,"figuredash",8210,"filledbox",9632,"filledrect",9644,"finalkaf",1498,"finalkafdagesh",64314,"finalkafdageshhebrew",64314,"finalkafhebrew",1498,"finalmem",1501,"finalmemhebrew",1501,"finalnun",1503,"finalnunhebrew",1503,"finalpe",1507,"finalpehebrew",1507,"finaltsadi",1509,"finaltsadihebrew",1509,"firsttonechinese",713,"fisheye",9673,"fitacyrillic",1139,"five",53,"fivearabic",1637,"fivebengali",2539,"fivecircle",9316,"fivecircleinversesansserif",10126,"fivedeva",2411,"fiveeighths",8541,"fivegujarati",2795,"fivegurmukhi",2667,"fivehackarabic",1637,"fivehangzhou",12325,"fiveideographicparen",12836,"fiveinferior",8325,"fivemonospace",65301,"fiveoldstyle",63285,"fiveparen",9336,"fiveperiod",9356,"fivepersian",1781,"fiveroman",8564,"fivesuperior",8309,"fivethai",3669,"fl",64258,"florin",402,"fmonospace",65350,"fmsquare",13209,"fofanthai",3615,"fofathai",3613,"fongmanthai",3663,"forall",8704,"four",52,"fourarabic",1636,"fourbengali",2538,"fourcircle",9315,"fourcircleinversesansserif",10125,"fourdeva",2410,"fourgujarati",2794,"fourgurmukhi",2666,"fourhackarabic",1636,"fourhangzhou",12324,"fourideographicparen",12835,"fourinferior",8324,"fourmonospace",65300,"fournumeratorbengali",2551,"fouroldstyle",63284,"fourparen",9335,"fourperiod",9355,"fourpersian",1780,"fourroman",8563,"foursuperior",8308,"fourteencircle",9325,"fourteenparen",9345,"fourteenperiod",9365,"fourthai",3668,"fourthtonechinese",715,"fparen",9377,"fraction",8260,"franc",8355,"g",103,"gabengali",2455,"gacute",501,"gadeva",2327,"gafarabic",1711,"gaffinalarabic",64403,"gafinitialarabic",64404,"gafmedialarabic",64405,"gagujarati",2711,"gagurmukhi",2583,"gahiragana",12364,"gakatakana",12460,"gamma",947,"gammalatinsmall",611,"gammasuperior",736,"gangiacoptic",1003,"gbopomofo",12557,"gbreve",287,"gcaron",487,"gcedilla",291,"gcircle",9430,"gcircumflex",285,"gcommaaccent",291,"gdot",289,"gdotaccent",289,"gecyrillic",1075,"gehiragana",12370,"gekatakana",12466,"geometricallyequal",8785,"gereshaccenthebrew",1436,"gereshhebrew",1523,"gereshmuqdamhebrew",1437,"germandbls",223,"gershayimaccenthebrew",1438,"gershayimhebrew",1524,"getamark",12307,"ghabengali",2456,"ghadarmenian",1394,"ghadeva",2328,"ghagujarati",2712,"ghagurmukhi",2584,"ghainarabic",1594,"ghainfinalarabic",65230,"ghaininitialarabic",65231,"ghainmedialarabic",65232,"ghemiddlehookcyrillic",1173,"ghestrokecyrillic",1171,"gheupturncyrillic",1169,"ghhadeva",2394,"ghhagurmukhi",2650,"ghook",608,"ghzsquare",13203,"gihiragana",12366,"gikatakana",12462,"gimarmenian",1379,"gimel",1490,"gimeldagesh",64306,"gimeldageshhebrew",64306,"gimelhebrew",1490,"gjecyrillic",1107,"glottalinvertedstroke",446,"glottalstop",660,"glottalstopinverted",662,"glottalstopmod",704,"glottalstopreversed",661,"glottalstopreversedmod",705,"glottalstopreversedsuperior",740,"glottalstopstroke",673,"glottalstopstrokereversed",674,"gmacron",7713,"gmonospace",65351,"gohiragana",12372,"gokatakana",12468,"gparen",9378,"gpasquare",13228,"gradient",8711,"grave",96,"gravebelowcmb",790,"gravecmb",768,"gravecomb",768,"gravedeva",2387,"gravelowmod",718,"gravemonospace",65344,"gravetonecmb",832,"greater",62,"greaterequal",8805,"greaterequalorless",8923,"greatermonospace",65310,"greaterorequivalent",8819,"greaterorless",8823,"greateroverequal",8807,"greatersmall",65125,"gscript",609,"gstroke",485,"guhiragana",12368,"guillemotleft",171,"guillemotright",187,"guilsinglleft",8249,"guilsinglright",8250,"gukatakana",12464,"guramusquare",13080,"gysquare",13257,"h",104,"haabkhasiancyrillic",1193,"haaltonearabic",1729,"habengali",2489,"hadescendercyrillic",1203,"hadeva",2361,"hagujarati",2745,"hagurmukhi",2617,"haharabic",1581,"hahfinalarabic",65186,"hahinitialarabic",65187,"hahiragana",12399,"hahmedialarabic",65188,"haitusquare",13098,"hakatakana",12495,"hakatakanahalfwidth",65418,"halantgurmukhi",2637,"hamzaarabic",1569,"hamzalowarabic",1569,"hangulfiller",12644,"hardsigncyrillic",1098,"harpoonleftbarbup",8636,"harpoonrightbarbup",8640,"hasquare",13258,"hatafpatah",1458,"hatafpatah16",1458,"hatafpatah23",1458,"hatafpatah2f",1458,"hatafpatahhebrew",1458,"hatafpatahnarrowhebrew",1458,"hatafpatahquarterhebrew",1458,"hatafpatahwidehebrew",1458,"hatafqamats",1459,"hatafqamats1b",1459,"hatafqamats28",1459,"hatafqamats34",1459,"hatafqamatshebrew",1459,"hatafqamatsnarrowhebrew",1459,"hatafqamatsquarterhebrew",1459,"hatafqamatswidehebrew",1459,"hatafsegol",1457,"hatafsegol17",1457,"hatafsegol24",1457,"hatafsegol30",1457,"hatafsegolhebrew",1457,"hatafsegolnarrowhebrew",1457,"hatafsegolquarterhebrew",1457,"hatafsegolwidehebrew",1457,"hbar",295,"hbopomofo",12559,"hbrevebelow",7723,"hcedilla",7721,"hcircle",9431,"hcircumflex",293,"hdieresis",7719,"hdotaccent",7715,"hdotbelow",7717,"he",1492,"heart",9829,"heartsuitblack",9829,"heartsuitwhite",9825,"hedagesh",64308,"hedageshhebrew",64308,"hehaltonearabic",1729,"heharabic",1607,"hehebrew",1492,"hehfinalaltonearabic",64423,"hehfinalalttwoarabic",65258,"hehfinalarabic",65258,"hehhamzaabovefinalarabic",64421,"hehhamzaaboveisolatedarabic",64420,"hehinitialaltonearabic",64424,"hehinitialarabic",65259,"hehiragana",12408,"hehmedialaltonearabic",64425,"hehmedialarabic",65260,"heiseierasquare",13179,"hekatakana",12504,"hekatakanahalfwidth",65421,"hekutaarusquare",13110,"henghook",615,"herutusquare",13113,"het",1495,"hethebrew",1495,"hhook",614,"hhooksuperior",689,"hieuhacirclekorean",12923,"hieuhaparenkorean",12827,"hieuhcirclekorean",12909,"hieuhkorean",12622,"hieuhparenkorean",12813,"hihiragana",12402,"hikatakana",12498,"hikatakanahalfwidth",65419,"hiriq",1460,"hiriq14",1460,"hiriq21",1460,"hiriq2d",1460,"hiriqhebrew",1460,"hiriqnarrowhebrew",1460,"hiriqquarterhebrew",1460,"hiriqwidehebrew",1460,"hlinebelow",7830,"hmonospace",65352,"hoarmenian",1392,"hohipthai",3627,"hohiragana",12411,"hokatakana",12507,"hokatakanahalfwidth",65422,"holam",1465,"holam19",1465,"holam26",1465,"holam32",1465,"holamhebrew",1465,"holamnarrowhebrew",1465,"holamquarterhebrew",1465,"holamwidehebrew",1465,"honokhukthai",3630,"hookabovecomb",777,"hookcmb",777,"hookpalatalizedbelowcmb",801,"hookretroflexbelowcmb",802,"hoonsquare",13122,"horicoptic",1001,"horizontalbar",8213,"horncmb",795,"hotsprings",9832,"house",8962,"hparen",9379,"hsuperior",688,"hturned",613,"huhiragana",12405,"huiitosquare",13107,"hukatakana",12501,"hukatakanahalfwidth",65420,"hungarumlaut",733,"hungarumlautcmb",779,"hv",405,"hyphen",45,"hypheninferior",63205,"hyphenmonospace",65293,"hyphensmall",65123,"hyphensuperior",63206,"hyphentwo",8208,"i",105,"iacute",237,"iacyrillic",1103,"ibengali",2439,"ibopomofo",12583,"ibreve",301,"icaron",464,"icircle",9432,"icircumflex",238,"icyrillic",1110,"idblgrave",521,"ideographearthcircle",12943,"ideographfirecircle",12939,"ideographicallianceparen",12863,"ideographiccallparen",12858,"ideographiccentrecircle",12965,"ideographicclose",12294,"ideographiccomma",12289,"ideographiccommaleft",65380,"ideographiccongratulationparen",12855,"ideographiccorrectcircle",12963,"ideographicearthparen",12847,"ideographicenterpriseparen",12861,"ideographicexcellentcircle",12957,"ideographicfestivalparen",12864,"ideographicfinancialcircle",12950,"ideographicfinancialparen",12854,"ideographicfireparen",12843,"ideographichaveparen",12850,"ideographichighcircle",12964,"ideographiciterationmark",12293,"ideographiclaborcircle",12952,"ideographiclaborparen",12856,"ideographicleftcircle",12967,"ideographiclowcircle",12966,"ideographicmedicinecircle",12969,"ideographicmetalparen",12846,"ideographicmoonparen",12842,"ideographicnameparen",12852,"ideographicperiod",12290,"ideographicprintcircle",12958,"ideographicreachparen",12867,"ideographicrepresentparen",12857,"ideographicresourceparen",12862,"ideographicrightcircle",12968,"ideographicsecretcircle",12953,"ideographicselfparen",12866,"ideographicsocietyparen",12851,"ideographicspace",12288,"ideographicspecialparen",12853,"ideographicstockparen",12849,"ideographicstudyparen",12859,"ideographicsunparen",12848,"ideographicsuperviseparen",12860,"ideographicwaterparen",12844,"ideographicwoodparen",12845,"ideographiczero",12295,"ideographmetalcircle",12942,"ideographmooncircle",12938,"ideographnamecircle",12948,"ideographsuncircle",12944,"ideographwatercircle",12940,"ideographwoodcircle",12941,"ideva",2311,"idieresis",239,"idieresisacute",7727,"idieresiscyrillic",1253,"idotbelow",7883,"iebrevecyrillic",1239,"iecyrillic",1077,"ieungacirclekorean",12917,"ieungaparenkorean",12821,"ieungcirclekorean",12903,"ieungkorean",12615,"ieungparenkorean",12807,"igrave",236,"igujarati",2695,"igurmukhi",2567,"ihiragana",12356,"ihookabove",7881,"iibengali",2440,"iicyrillic",1080,"iideva",2312,"iigujarati",2696,"iigurmukhi",2568,"iimatragurmukhi",2624,"iinvertedbreve",523,"iishortcyrillic",1081,"iivowelsignbengali",2496,"iivowelsigndeva",2368,"iivowelsigngujarati",2752,"ij",307,"ikatakana",12452,"ikatakanahalfwidth",65394,"ikorean",12643,"ilde",732,"iluyhebrew",1452,"imacron",299,"imacroncyrillic",1251,"imageorapproximatelyequal",8787,"imatragurmukhi",2623,"imonospace",65353,"increment",8710,"infinity",8734,"iniarmenian",1387,"integral",8747,"integralbottom",8993,"integralbt",8993,"integralex",63733,"integraltop",8992,"integraltp",8992,"intersection",8745,"intisquare",13061,"invbullet",9688,"invcircle",9689,"invsmileface",9787,"iocyrillic",1105,"iogonek",303,"iota",953,"iotadieresis",970,"iotadieresistonos",912,"iotalatin",617,"iotatonos",943,"iparen",9380,"irigurmukhi",2674,"ismallhiragana",12355,"ismallkatakana",12451,"ismallkatakanahalfwidth",65384,"issharbengali",2554,"istroke",616,"isuperior",63213,"iterationhiragana",12445,"iterationkatakana",12541,"itilde",297,"itildebelow",7725,"iubopomofo",12585,"iucyrillic",1102,"ivowelsignbengali",2495,"ivowelsigndeva",2367,"ivowelsigngujarati",2751,"izhitsacyrillic",1141,"izhitsadblgravecyrillic",1143,"j",106,"jaarmenian",1393,"jabengali",2460,"jadeva",2332,"jagujarati",2716,"jagurmukhi",2588,"jbopomofo",12560,"jcaron",496,"jcircle",9433,"jcircumflex",309,"jcrossedtail",669,"jdotlessstroke",607,"jecyrillic",1112,"jeemarabic",1580,"jeemfinalarabic",65182,"jeeminitialarabic",65183,"jeemmedialarabic",65184,"jeharabic",1688,"jehfinalarabic",64395,"jhabengali",2461,"jhadeva",2333,"jhagujarati",2717,"jhagurmukhi",2589,"jheharmenian",1403,"jis",12292,"jmonospace",65354,"jparen",9381,"jsuperior",690,"k",107,"kabashkircyrillic",1185,"kabengali",2453,"kacute",7729,"kacyrillic",1082,"kadescendercyrillic",1179,"kadeva",2325,"kaf",1499,"kafarabic",1603,"kafdagesh",64315,"kafdageshhebrew",64315,"kaffinalarabic",65242,"kafhebrew",1499,"kafinitialarabic",65243,"kafmedialarabic",65244,"kafrafehebrew",64333,"kagujarati",2709,"kagurmukhi",2581,"kahiragana",12363,"kahookcyrillic",1220,"kakatakana",12459,"kakatakanahalfwidth",65398,"kappa",954,"kappasymbolgreek",1008,"kapyeounmieumkorean",12657,"kapyeounphieuphkorean",12676,"kapyeounpieupkorean",12664,"kapyeounssangpieupkorean",12665,"karoriisquare",13069,"kashidaautoarabic",1600,"kashidaautonosidebearingarabic",1600,"kasmallkatakana",12533,"kasquare",13188,"kasraarabic",1616,"kasratanarabic",1613,"kastrokecyrillic",1183,"katahiraprolongmarkhalfwidth",65392,"kaverticalstrokecyrillic",1181,"kbopomofo",12558,"kcalsquare",13193,"kcaron",489,"kcedilla",311,"kcircle",9434,"kcommaaccent",311,"kdotbelow",7731,"keharmenian",1412,"kehiragana",12369,"kekatakana",12465,"kekatakanahalfwidth",65401,"kenarmenian",1391,"kesmallkatakana",12534,"kgreenlandic",312,"khabengali",2454,"khacyrillic",1093,"khadeva",2326,"khagujarati",2710,"khagurmukhi",2582,"khaharabic",1582,"khahfinalarabic",65190,"khahinitialarabic",65191,"khahmedialarabic",65192,"kheicoptic",999,"khhadeva",2393,"khhagurmukhi",2649,"khieukhacirclekorean",12920,"khieukhaparenkorean",12824,"khieukhcirclekorean",12906,"khieukhkorean",12619,"khieukhparenkorean",12810,"khokhaithai",3586,"khokhonthai",3589,"khokhuatthai",3587,"khokhwaithai",3588,"khomutthai",3675,"khook",409,"khorakhangthai",3590,"khzsquare",13201,"kihiragana",12365,"kikatakana",12461,"kikatakanahalfwidth",65399,"kiroguramusquare",13077,"kiromeetorusquare",13078,"kirosquare",13076,"kiyeokacirclekorean",12910,"kiyeokaparenkorean",12814,"kiyeokcirclekorean",12896,"kiyeokkorean",12593,"kiyeokparenkorean",12800,"kiyeoksioskorean",12595,"kjecyrillic",1116,"klinebelow",7733,"klsquare",13208,"kmcubedsquare",13222,"kmonospace",65355,"kmsquaredsquare",13218,"kohiragana",12371,"kohmsquare",13248,"kokaithai",3585,"kokatakana",12467,"kokatakanahalfwidth",65402,"kooposquare",13086,"koppacyrillic",1153,"koreanstandardsymbol",12927,"koroniscmb",835,"kparen",9382,"kpasquare",13226,"ksicyrillic",1135,"ktsquare",13263,"kturned",670,"kuhiragana",12367,"kukatakana",12463,"kukatakanahalfwidth",65400,"kvsquare",13240,"kwsquare",13246,"l",108,"labengali",2482,"lacute",314,"ladeva",2354,"lagujarati",2738,"lagurmukhi",2610,"lakkhangyaothai",3653,"lamaleffinalarabic",65276,"lamalefhamzaabovefinalarabic",65272,"lamalefhamzaaboveisolatedarabic",65271,"lamalefhamzabelowfinalarabic",65274,"lamalefhamzabelowisolatedarabic",65273,"lamalefisolatedarabic",65275,"lamalefmaddaabovefinalarabic",65270,"lamalefmaddaaboveisolatedarabic",65269,"lamarabic",1604,"lambda",955,"lambdastroke",411,"lamed",1500,"lameddagesh",64316,"lameddageshhebrew",64316,"lamedhebrew",1500,"lamfinalarabic",65246,"lamhahinitialarabic",64714,"laminitialarabic",65247,"lamjeeminitialarabic",64713,"lamkhahinitialarabic",64715,"lamlamhehisolatedarabic",65010,"lammedialarabic",65248,"lammeemhahinitialarabic",64904,"lammeeminitialarabic",64716,"largecircle",9711,"lbar",410,"lbelt",620,"lbopomofo",12556,"lcaron",318,"lcedilla",316,"lcircle",9435,"lcircumflexbelow",7741,"lcommaaccent",316,"ldot",320,"ldotaccent",320,"ldotbelow",7735,"ldotbelowmacron",7737,"leftangleabovecmb",794,"lefttackbelowcmb",792,"less",60,"lessequal",8804,"lessequalorgreater",8922,"lessmonospace",65308,"lessorequivalent",8818,"lessorgreater",8822,"lessoverequal",8806,"lesssmall",65124,"lezh",622,"lfblock",9612,"lhookretroflex",621,"lira",8356,"liwnarmenian",1388,"lj",457,"ljecyrillic",1113,"ll",63168,"lladeva",2355,"llagujarati",2739,"llinebelow",7739,"llladeva",2356,"llvocalicbengali",2529,"llvocalicdeva",2401,"llvocalicvowelsignbengali",2531,"llvocalicvowelsigndeva",2403,"lmiddletilde",619,"lmonospace",65356,"lmsquare",13264,"lochulathai",3628,"logicaland",8743,"logicalnot",172,"logicalnotreversed",8976,"logicalor",8744,"lolingthai",3621,"longs",383,"lowlinecenterline",65102,"lowlinecmb",818,"lowlinedashed",65101,"lozenge",9674,"lparen",9383,"lslash",322,"lsquare",8467,"lsuperior",63214,"ltshade",9617,"luthai",3622,"lvocalicbengali",2444,"lvocalicdeva",2316,"lvocalicvowelsignbengali",2530,"lvocalicvowelsigndeva",2402,"lxsquare",13267,"m",109,"mabengali",2478,"macron",175,"macronbelowcmb",817,"macroncmb",772,"macronlowmod",717,"macronmonospace",65507,"macute",7743,"madeva",2350,"magujarati",2734,"magurmukhi",2606,"mahapakhhebrew",1444,"mahapakhlefthebrew",1444,"mahiragana",12414,"maichattawalowleftthai",63637,"maichattawalowrightthai",63636,"maichattawathai",3659,"maichattawaupperleftthai",63635,"maieklowleftthai",63628,"maieklowrightthai",63627,"maiekthai",3656,"maiekupperleftthai",63626,"maihanakatleftthai",63620,"maihanakatthai",3633,"maitaikhuleftthai",63625,"maitaikhuthai",3655,"maitholowleftthai",63631,"maitholowrightthai",63630,"maithothai",3657,"maithoupperleftthai",63629,"maitrilowleftthai",63634,"maitrilowrightthai",63633,"maitrithai",3658,"maitriupperleftthai",63632,"maiyamokthai",3654,"makatakana",12510,"makatakanahalfwidth",65423,"male",9794,"mansyonsquare",13127,"maqafhebrew",1470,"mars",9794,"masoracirclehebrew",1455,"masquare",13187,"mbopomofo",12551,"mbsquare",13268,"mcircle",9436,"mcubedsquare",13221,"mdotaccent",7745,"mdotbelow",7747,"meemarabic",1605,"meemfinalarabic",65250,"meeminitialarabic",65251,"meemmedialarabic",65252,"meemmeeminitialarabic",64721,"meemmeemisolatedarabic",64584,"meetorusquare",13133,"mehiragana",12417,"meizierasquare",13182,"mekatakana",12513,"mekatakanahalfwidth",65426,"mem",1502,"memdagesh",64318,"memdageshhebrew",64318,"memhebrew",1502,"menarmenian",1396,"merkhahebrew",1445,"merkhakefulahebrew",1446,"merkhakefulalefthebrew",1446,"merkhalefthebrew",1445,"mhook",625,"mhzsquare",13202,"middledotkatakanahalfwidth",65381,"middot",183,"mieumacirclekorean",12914,"mieumaparenkorean",12818,"mieumcirclekorean",12900,"mieumkorean",12609,"mieumpansioskorean",12656,"mieumparenkorean",12804,"mieumpieupkorean",12654,"mieumsioskorean",12655,"mihiragana",12415,"mikatakana",12511,"mikatakanahalfwidth",65424,"minus",8722,"minusbelowcmb",800,"minuscircle",8854,"minusmod",727,"minusplus",8723,"minute",8242,"miribaarusquare",13130,"mirisquare",13129,"mlonglegturned",624,"mlsquare",13206,"mmcubedsquare",13219,"mmonospace",65357,"mmsquaredsquare",13215,"mohiragana",12418,"mohmsquare",13249,"mokatakana",12514,"mokatakanahalfwidth",65427,"molsquare",13270,"momathai",3617,"moverssquare",13223,"moverssquaredsquare",13224,"mparen",9384,"mpasquare",13227,"mssquare",13235,"msuperior",63215,"mturned",623,"mu",181,"mu1",181,"muasquare",13186,"muchgreater",8811,"muchless",8810,"mufsquare",13196,"mugreek",956,"mugsquare",13197,"muhiragana",12416,"mukatakana",12512,"mukatakanahalfwidth",65425,"mulsquare",13205,"multiply",215,"mumsquare",13211,"munahhebrew",1443,"munahlefthebrew",1443,"musicalnote",9834,"musicalnotedbl",9835,"musicflatsign",9837,"musicsharpsign",9839,"mussquare",13234,"muvsquare",13238,"muwsquare",13244,"mvmegasquare",13241,"mvsquare",13239,"mwmegasquare",13247,"mwsquare",13245,"n",110,"nabengali",2472,"nabla",8711,"nacute",324,"nadeva",2344,"nagujarati",2728,"nagurmukhi",2600,"nahiragana",12394,"nakatakana",12490,"nakatakanahalfwidth",65413,"napostrophe",329,"nasquare",13185,"nbopomofo",12555,"nbspace",160,"ncaron",328,"ncedilla",326,"ncircle",9437,"ncircumflexbelow",7755,"ncommaaccent",326,"ndotaccent",7749,"ndotbelow",7751,"nehiragana",12397,"nekatakana",12493,"nekatakanahalfwidth",65416,"newsheqelsign",8362,"nfsquare",13195,"ngabengali",2457,"ngadeva",2329,"ngagujarati",2713,"ngagurmukhi",2585,"ngonguthai",3591,"nhiragana",12435,"nhookleft",626,"nhookretroflex",627,"nieunacirclekorean",12911,"nieunaparenkorean",12815,"nieuncieuckorean",12597,"nieuncirclekorean",12897,"nieunhieuhkorean",12598,"nieunkorean",12596,"nieunpansioskorean",12648,"nieunparenkorean",12801,"nieunsioskorean",12647,"nieuntikeutkorean",12646,"nihiragana",12395,"nikatakana",12491,"nikatakanahalfwidth",65414,"nikhahitleftthai",63641,"nikhahitthai",3661,"nine",57,"ninearabic",1641,"ninebengali",2543,"ninecircle",9320,"ninecircleinversesansserif",10130,"ninedeva",2415,"ninegujarati",2799,"ninegurmukhi",2671,"ninehackarabic",1641,"ninehangzhou",12329,"nineideographicparen",12840,"nineinferior",8329,"ninemonospace",65305,"nineoldstyle",63289,"nineparen",9340,"nineperiod",9360,"ninepersian",1785,"nineroman",8568,"ninesuperior",8313,"nineteencircle",9330,"nineteenparen",9350,"nineteenperiod",9370,"ninethai",3673,"nj",460,"njecyrillic",1114,"nkatakana",12531,"nkatakanahalfwidth",65437,"nlegrightlong",414,"nlinebelow",7753,"nmonospace",65358,"nmsquare",13210,"nnabengali",2467,"nnadeva",2339,"nnagujarati",2723,"nnagurmukhi",2595,"nnnadeva",2345,"nohiragana",12398,"nokatakana",12494,"nokatakanahalfwidth",65417,"nonbreakingspace",160,"nonenthai",3603,"nonuthai",3609,"noonarabic",1606,"noonfinalarabic",65254,"noonghunnaarabic",1722,"noonghunnafinalarabic",64415,"nooninitialarabic",65255,"noonjeeminitialarabic",64722,"noonjeemisolatedarabic",64587,"noonmedialarabic",65256,"noonmeeminitialarabic",64725,"noonmeemisolatedarabic",64590,"noonnoonfinalarabic",64653,"notcontains",8716,"notelement",8713,"notelementof",8713,"notequal",8800,"notgreater",8815,"notgreaternorequal",8817,"notgreaternorless",8825,"notidentical",8802,"notless",8814,"notlessnorequal",8816,"notparallel",8742,"notprecedes",8832,"notsubset",8836,"notsucceeds",8833,"notsuperset",8837,"nowarmenian",1398,"nparen",9385,"nssquare",13233,"nsuperior",8319,"ntilde",241,"nu",957,"nuhiragana",12396,"nukatakana",12492,"nukatakanahalfwidth",65415,"nuktabengali",2492,"nuktadeva",2364,"nuktagujarati",2748,"nuktagurmukhi",2620,"numbersign",35,"numbersignmonospace",65283,"numbersignsmall",65119,"numeralsigngreek",884,"numeralsignlowergreek",885,"numero",8470,"nun",1504,"nundagesh",64320,"nundageshhebrew",64320,"nunhebrew",1504,"nvsquare",13237,"nwsquare",13243,"nyabengali",2462,"nyadeva",2334,"nyagujarati",2718,"nyagurmukhi",2590,"o",111,"oacute",243,"oangthai",3629,"obarred",629,"obarredcyrillic",1257,"obarreddieresiscyrillic",1259,"obengali",2451,"obopomofo",12571,"obreve",335,"ocandradeva",2321,"ocandragujarati",2705,"ocandravowelsigndeva",2377,"ocandravowelsigngujarati",2761,"ocaron",466,"ocircle",9438,"ocircumflex",244,"ocircumflexacute",7889,"ocircumflexdotbelow",7897,"ocircumflexgrave",7891,"ocircumflexhookabove",7893,"ocircumflextilde",7895,"ocyrillic",1086,"odblacute",337,"odblgrave",525,"odeva",2323,"odieresis",246,"odieresiscyrillic",1255,"odotbelow",7885,"oe",339,"oekorean",12634,"ogonek",731,"ogonekcmb",808,"ograve",242,"ogujarati",2707,"oharmenian",1413,"ohiragana",12362,"ohookabove",7887,"ohorn",417,"ohornacute",7899,"ohorndotbelow",7907,"ohorngrave",7901,"ohornhookabove",7903,"ohorntilde",7905,"ohungarumlaut",337,"oi",419,"oinvertedbreve",527,"okatakana",12458,"okatakanahalfwidth",65397,"okorean",12631,"olehebrew",1451,"omacron",333,"omacronacute",7763,"omacrongrave",7761,"omdeva",2384,"omega",969,"omega1",982,"omegacyrillic",1121,"omegalatinclosed",631,"omegaroundcyrillic",1147,"omegatitlocyrillic",1149,"omegatonos",974,"omgujarati",2768,"omicron",959,"omicrontonos",972,"omonospace",65359,"one",49,"onearabic",1633,"onebengali",2535,"onecircle",9312,"onecircleinversesansserif",10122,"onedeva",2407,"onedotenleader",8228,"oneeighth",8539,"onefitted",63196,"onegujarati",2791,"onegurmukhi",2663,"onehackarabic",1633,"onehalf",189,"onehangzhou",12321,"oneideographicparen",12832,"oneinferior",8321,"onemonospace",65297,"onenumeratorbengali",2548,"oneoldstyle",63281,"oneparen",9332,"oneperiod",9352,"onepersian",1777,"onequarter",188,"oneroman",8560,"onesuperior",185,"onethai",3665,"onethird",8531,"oogonek",491,"oogonekmacron",493,"oogurmukhi",2579,"oomatragurmukhi",2635,"oopen",596,"oparen",9386,"openbullet",9702,"option",8997,"ordfeminine",170,"ordmasculine",186,"orthogonal",8735,"oshortdeva",2322,"oshortvowelsigndeva",2378,"oslash",248,"oslashacute",511,"osmallhiragana",12361,"osmallkatakana",12457,"osmallkatakanahalfwidth",65387,"ostrokeacute",511,"osuperior",63216,"otcyrillic",1151,"otilde",245,"otildeacute",7757,"otildedieresis",7759,"oubopomofo",12577,"overline",8254,"overlinecenterline",65098,"overlinecmb",773,"overlinedashed",65097,"overlinedblwavy",65100,"overlinewavy",65099,"overscore",175,"ovowelsignbengali",2507,"ovowelsigndeva",2379,"ovowelsigngujarati",2763,"p",112,"paampssquare",13184,"paasentosquare",13099,"pabengali",2474,"pacute",7765,"padeva",2346,"pagedown",8671,"pageup",8670,"pagujarati",2730,"pagurmukhi",2602,"pahiragana",12401,"paiyannoithai",3631,"pakatakana",12497,"palatalizationcyrilliccmb",1156,"palochkacyrillic",1216,"pansioskorean",12671,"paragraph",182,"parallel",8741,"parenleft",40,"parenleftaltonearabic",64830,"parenleftbt",63725,"parenleftex",63724,"parenleftinferior",8333,"parenleftmonospace",65288,"parenleftsmall",65113,"parenleftsuperior",8317,"parenlefttp",63723,"parenleftvertical",65077,"parenright",41,"parenrightaltonearabic",64831,"parenrightbt",63736,"parenrightex",63735,"parenrightinferior",8334,"parenrightmonospace",65289,"parenrightsmall",65114,"parenrightsuperior",8318,"parenrighttp",63734,"parenrightvertical",65078,"partialdiff",8706,"paseqhebrew",1472,"pashtahebrew",1433,"pasquare",13225,"patah",1463,"patah11",1463,"patah1d",1463,"patah2a",1463,"patahhebrew",1463,"patahnarrowhebrew",1463,"patahquarterhebrew",1463,"patahwidehebrew",1463,"pazerhebrew",1441,"pbopomofo",12550,"pcircle",9439,"pdotaccent",7767,"pe",1508,"pecyrillic",1087,"pedagesh",64324,"pedageshhebrew",64324,"peezisquare",13115,"pefinaldageshhebrew",64323,"peharabic",1662,"peharmenian",1402,"pehebrew",1508,"pehfinalarabic",64343,"pehinitialarabic",64344,"pehiragana",12410,"pehmedialarabic",64345,"pekatakana",12506,"pemiddlehookcyrillic",1191,"perafehebrew",64334,"percent",37,"percentarabic",1642,"percentmonospace",65285,"percentsmall",65130,"period",46,"periodarmenian",1417,"periodcentered",183,"periodhalfwidth",65377,"periodinferior",63207,"periodmonospace",65294,"periodsmall",65106,"periodsuperior",63208,"perispomenigreekcmb",834,"perpendicular",8869,"perthousand",8240,"peseta",8359,"pfsquare",13194,"phabengali",2475,"phadeva",2347,"phagujarati",2731,"phagurmukhi",2603,"phi",966,"phi1",981,"phieuphacirclekorean",12922,"phieuphaparenkorean",12826,"phieuphcirclekorean",12908,"phieuphkorean",12621,"phieuphparenkorean",12812,"philatin",632,"phinthuthai",3642,"phisymbolgreek",981,"phook",421,"phophanthai",3614,"phophungthai",3612,"phosamphaothai",3616,"pi",960,"pieupacirclekorean",12915,"pieupaparenkorean",12819,"pieupcieuckorean",12662,"pieupcirclekorean",12901,"pieupkiyeokkorean",12658,"pieupkorean",12610,"pieupparenkorean",12805,"pieupsioskiyeokkorean",12660,"pieupsioskorean",12612,"pieupsiostikeutkorean",12661,"pieupthieuthkorean",12663,"pieuptikeutkorean",12659,"pihiragana",12404,"pikatakana",12500,"pisymbolgreek",982,"piwrarmenian",1411,"plus",43,"plusbelowcmb",799,"pluscircle",8853,"plusminus",177,"plusmod",726,"plusmonospace",65291,"plussmall",65122,"plussuperior",8314,"pmonospace",65360,"pmsquare",13272,"pohiragana",12413,"pointingindexdownwhite",9759,"pointingindexleftwhite",9756,"pointingindexrightwhite",9758,"pointingindexupwhite",9757,"pokatakana",12509,"poplathai",3611,"postalmark",12306,"postalmarkface",12320,"pparen",9387,"precedes",8826,"prescription",8478,"primemod",697,"primereversed",8245,"product",8719,"projective",8965,"prolongedkana",12540,"propellor",8984,"propersubset",8834,"propersuperset",8835,"proportion",8759,"proportional",8733,"psi",968,"psicyrillic",1137,"psilipneumatacyrilliccmb",1158,"pssquare",13232,"puhiragana",12407,"pukatakana",12503,"pvsquare",13236,"pwsquare",13242,"q",113,"qadeva",2392,"qadmahebrew",1448,"qafarabic",1602,"qaffinalarabic",65238,"qafinitialarabic",65239,"qafmedialarabic",65240,"qamats",1464,"qamats10",1464,"qamats1a",1464,"qamats1c",1464,"qamats27",1464,"qamats29",1464,"qamats33",1464,"qamatsde",1464,"qamatshebrew",1464,"qamatsnarrowhebrew",1464,"qamatsqatanhebrew",1464,"qamatsqatannarrowhebrew",1464,"qamatsqatanquarterhebrew",1464,"qamatsqatanwidehebrew",1464,"qamatsquarterhebrew",1464,"qamatswidehebrew",1464,"qarneyparahebrew",1439,"qbopomofo",12561,"qcircle",9440,"qhook",672,"qmonospace",65361,"qof",1511,"qofdagesh",64327,"qofdageshhebrew",64327,"qofhebrew",1511,"qparen",9388,"quarternote",9833,"qubuts",1467,"qubuts18",1467,"qubuts25",1467,"qubuts31",1467,"qubutshebrew",1467,"qubutsnarrowhebrew",1467,"qubutsquarterhebrew",1467,"qubutswidehebrew",1467,"question",63,"questionarabic",1567,"questionarmenian",1374,"questiondown",191,"questiondownsmall",63423,"questiongreek",894,"questionmonospace",65311,"questionsmall",63295,"quotedbl",34,"quotedblbase",8222,"quotedblleft",8220,"quotedblmonospace",65282,"quotedblprime",12318,"quotedblprimereversed",12317,"quotedblright",8221,"quoteleft",8216,"quoteleftreversed",8219,"quotereversed",8219,"quoteright",8217,"quoterightn",329,"quotesinglbase",8218,"quotesingle",39,"quotesinglemonospace",65287,"r",114,"raarmenian",1404,"rabengali",2480,"racute",341,"radeva",2352,"radical",8730,"radicalex",63717,"radoverssquare",13230,"radoverssquaredsquare",13231,"radsquare",13229,"rafe",1471,"rafehebrew",1471,"ragujarati",2736,"ragurmukhi",2608,"rahiragana",12425,"rakatakana",12521,"rakatakanahalfwidth",65431,"ralowerdiagonalbengali",2545,"ramiddlediagonalbengali",2544,"ramshorn",612,"ratio",8758,"rbopomofo",12566,"rcaron",345,"rcedilla",343,"rcircle",9441,"rcommaaccent",343,"rdblgrave",529,"rdotaccent",7769,"rdotbelow",7771,"rdotbelowmacron",7773,"referencemark",8251,"reflexsubset",8838,"reflexsuperset",8839,"registered",174,"registersans",63720,"registerserif",63194,"reharabic",1585,"reharmenian",1408,"rehfinalarabic",65198,"rehiragana",12428,"rekatakana",12524,"rekatakanahalfwidth",65434,"resh",1512,"reshdageshhebrew",64328,"reshhebrew",1512,"reversedtilde",8765,"reviahebrew",1431,"reviamugrashhebrew",1431,"revlogicalnot",8976,"rfishhook",638,"rfishhookreversed",639,"rhabengali",2525,"rhadeva",2397,"rho",961,"rhook",637,"rhookturned",635,"rhookturnedsuperior",693,"rhosymbolgreek",1009,"rhotichookmod",734,"rieulacirclekorean",12913,"rieulaparenkorean",12817,"rieulcirclekorean",12899,"rieulhieuhkorean",12608,"rieulkiyeokkorean",12602,"rieulkiyeoksioskorean",12649,"rieulkorean",12601,"rieulmieumkorean",12603,"rieulpansioskorean",12652,"rieulparenkorean",12803,"rieulphieuphkorean",12607,"rieulpieupkorean",12604,"rieulpieupsioskorean",12651,"rieulsioskorean",12605,"rieulthieuthkorean",12606,"rieultikeutkorean",12650,"rieulyeorinhieuhkorean",12653,"rightangle",8735,"righttackbelowcmb",793,"righttriangle",8895,"rihiragana",12426,"rikatakana",12522,"rikatakanahalfwidth",65432,"ring",730,"ringbelowcmb",805,"ringcmb",778,"ringhalfleft",703,"ringhalfleftarmenian",1369,"ringhalfleftbelowcmb",796,"ringhalfleftcentered",723,"ringhalfright",702,"ringhalfrightbelowcmb",825,"ringhalfrightcentered",722,"rinvertedbreve",531,"rittorusquare",13137,"rlinebelow",7775,"rlongleg",636,"rlonglegturned",634,"rmonospace",65362,"rohiragana",12429,"rokatakana",12525,"rokatakanahalfwidth",65435,"roruathai",3619,"rparen",9389,"rrabengali",2524,"rradeva",2353,"rragurmukhi",2652,"rreharabic",1681,"rrehfinalarabic",64397,"rrvocalicbengali",2528,"rrvocalicdeva",2400,"rrvocalicgujarati",2784,"rrvocalicvowelsignbengali",2500,"rrvocalicvowelsigndeva",2372,"rrvocalicvowelsigngujarati",2756,"rsuperior",63217,"rtblock",9616,"rturned",633,"rturnedsuperior",692,"ruhiragana",12427,"rukatakana",12523,"rukatakanahalfwidth",65433,"rupeemarkbengali",2546,"rupeesignbengali",2547,"rupiah",63197,"ruthai",3620,"rvocalicbengali",2443,"rvocalicdeva",2315,"rvocalicgujarati",2699,"rvocalicvowelsignbengali",2499,"rvocalicvowelsigndeva",2371,"rvocalicvowelsigngujarati",2755,"s",115,"sabengali",2488,"sacute",347,"sacutedotaccent",7781,"sadarabic",1589,"sadeva",2360,"sadfinalarabic",65210,"sadinitialarabic",65211,"sadmedialarabic",65212,"sagujarati",2744,"sagurmukhi",2616,"sahiragana",12373,"sakatakana",12469,"sakatakanahalfwidth",65403,"sallallahoualayhewasallamarabic",65018,"samekh",1505,"samekhdagesh",64321,"samekhdageshhebrew",64321,"samekhhebrew",1505,"saraaathai",3634,"saraaethai",3649,"saraaimaimalaithai",3652,"saraaimaimuanthai",3651,"saraamthai",3635,"saraathai",3632,"saraethai",3648,"saraiileftthai",63622,"saraiithai",3637,"saraileftthai",63621,"saraithai",3636,"saraothai",3650,"saraueeleftthai",63624,"saraueethai",3639,"saraueleftthai",63623,"sarauethai",3638,"sarauthai",3640,"sarauuthai",3641,"sbopomofo",12569,"scaron",353,"scarondotaccent",7783,"scedilla",351,"schwa",601,"schwacyrillic",1241,"schwadieresiscyrillic",1243,"schwahook",602,"scircle",9442,"scircumflex",349,"scommaaccent",537,"sdotaccent",7777,"sdotbelow",7779,"sdotbelowdotaccent",7785,"seagullbelowcmb",828,"second",8243,"secondtonechinese",714,"section",167,"seenarabic",1587,"seenfinalarabic",65202,"seeninitialarabic",65203,"seenmedialarabic",65204,"segol",1462,"segol13",1462,"segol1f",1462,"segol2c",1462,"segolhebrew",1462,"segolnarrowhebrew",1462,"segolquarterhebrew",1462,"segoltahebrew",1426,"segolwidehebrew",1462,"seharmenian",1405,"sehiragana",12379,"sekatakana",12475,"sekatakanahalfwidth",65406,"semicolon",59,"semicolonarabic",1563,"semicolonmonospace",65307,"semicolonsmall",65108,"semivoicedmarkkana",12444,"semivoicedmarkkanahalfwidth",65439,"sentisquare",13090,"sentosquare",13091,"seven",55,"sevenarabic",1639,"sevenbengali",2541,"sevencircle",9318,"sevencircleinversesansserif",10128,"sevendeva",2413,"seveneighths",8542,"sevengujarati",2797,"sevengurmukhi",2669,"sevenhackarabic",1639,"sevenhangzhou",12327,"sevenideographicparen",12838,"seveninferior",8327,"sevenmonospace",65303,"sevenoldstyle",63287,"sevenparen",9338,"sevenperiod",9358,"sevenpersian",1783,"sevenroman",8566,"sevensuperior",8311,"seventeencircle",9328,"seventeenparen",9348,"seventeenperiod",9368,"seventhai",3671,"sfthyphen",173,"shaarmenian",1399,"shabengali",2486,"shacyrillic",1096,"shaddaarabic",1617,"shaddadammaarabic",64609,"shaddadammatanarabic",64606,"shaddafathaarabic",64608,"shaddakasraarabic",64610,"shaddakasratanarabic",64607,"shade",9618,"shadedark",9619,"shadelight",9617,"shademedium",9618,"shadeva",2358,"shagujarati",2742,"shagurmukhi",2614,"shalshelethebrew",1427,"shbopomofo",12565,"shchacyrillic",1097,"sheenarabic",1588,"sheenfinalarabic",65206,"sheeninitialarabic",65207,"sheenmedialarabic",65208,"sheicoptic",995,"sheqel",8362,"sheqelhebrew",8362,"sheva",1456,"sheva115",1456,"sheva15",1456,"sheva22",1456,"sheva2e",1456,"shevahebrew",1456,"shevanarrowhebrew",1456,"shevaquarterhebrew",1456,"shevawidehebrew",1456,"shhacyrillic",1211,"shimacoptic",1005,"shin",1513,"shindagesh",64329,"shindageshhebrew",64329,"shindageshshindot",64300,"shindageshshindothebrew",64300,"shindageshsindot",64301,"shindageshsindothebrew",64301,"shindothebrew",1473,"shinhebrew",1513,"shinshindot",64298,"shinshindothebrew",64298,"shinsindot",64299,"shinsindothebrew",64299,"shook",642,"sigma",963,"sigma1",962,"sigmafinal",962,"sigmalunatesymbolgreek",1010,"sihiragana",12375,"sikatakana",12471,"sikatakanahalfwidth",65404,"siluqhebrew",1469,"siluqlefthebrew",1469,"similar",8764,"sindothebrew",1474,"siosacirclekorean",12916,"siosaparenkorean",12820,"sioscieuckorean",12670,"sioscirclekorean",12902,"sioskiyeokkorean",12666,"sioskorean",12613,"siosnieunkorean",12667,"siosparenkorean",12806,"siospieupkorean",12669,"siostikeutkorean",12668,"six",54,"sixarabic",1638,"sixbengali",2540,"sixcircle",9317,"sixcircleinversesansserif",10127,"sixdeva",2412,"sixgujarati",2796,"sixgurmukhi",2668,"sixhackarabic",1638,"sixhangzhou",12326,"sixideographicparen",12837,"sixinferior",8326,"sixmonospace",65302,"sixoldstyle",63286,"sixparen",9337,"sixperiod",9357,"sixpersian",1782,"sixroman",8565,"sixsuperior",8310,"sixteencircle",9327,"sixteencurrencydenominatorbengali",2553,"sixteenparen",9347,"sixteenperiod",9367,"sixthai",3670,"slash",47,"slashmonospace",65295,"slong",383,"slongdotaccent",7835,"smileface",9786,"smonospace",65363,"sofpasuqhebrew",1475,"softhyphen",173,"softsigncyrillic",1100,"sohiragana",12381,"sokatakana",12477,"sokatakanahalfwidth",65407,"soliduslongoverlaycmb",824,"solidusshortoverlaycmb",823,"sorusithai",3625,"sosalathai",3624,"sosothai",3595,"sosuathai",3626,"space",32,"spacehackarabic",32,"spade",9824,"spadesuitblack",9824,"spadesuitwhite",9828,"sparen",9390,"squarebelowcmb",827,"squarecc",13252,"squarecm",13213,"squarediagonalcrosshatchfill",9641,"squarehorizontalfill",9636,"squarekg",13199,"squarekm",13214,"squarekmcapital",13262,"squareln",13265,"squarelog",13266,"squaremg",13198,"squaremil",13269,"squaremm",13212,"squaremsquared",13217,"squareorthogonalcrosshatchfill",9638,"squareupperlefttolowerrightfill",9639,"squareupperrighttolowerleftfill",9640,"squareverticalfill",9637,"squarewhitewithsmallblack",9635,"srsquare",13275,"ssabengali",2487,"ssadeva",2359,"ssagujarati",2743,"ssangcieuckorean",12617,"ssanghieuhkorean",12677,"ssangieungkorean",12672,"ssangkiyeokkorean",12594,"ssangnieunkorean",12645,"ssangpieupkorean",12611,"ssangsioskorean",12614,"ssangtikeutkorean",12600,"ssuperior",63218,"sterling",163,"sterlingmonospace",65505,"strokelongoverlaycmb",822,"strokeshortoverlaycmb",821,"subset",8834,"subsetnotequal",8842,"subsetorequal",8838,"succeeds",8827,"suchthat",8715,"suhiragana",12377,"sukatakana",12473,"sukatakanahalfwidth",65405,"sukunarabic",1618,"summation",8721,"sun",9788,"superset",8835,"supersetnotequal",8843,"supersetorequal",8839,"svsquare",13276,"syouwaerasquare",13180,"t",116,"tabengali",2468,"tackdown",8868,"tackleft",8867,"tadeva",2340,"tagujarati",2724,"tagurmukhi",2596,"taharabic",1591,"tahfinalarabic",65218,"tahinitialarabic",65219,"tahiragana",12383,"tahmedialarabic",65220,"taisyouerasquare",13181,"takatakana",12479,"takatakanahalfwidth",65408,"tatweelarabic",1600,"tau",964,"tav",1514,"tavdages",64330,"tavdagesh",64330,"tavdageshhebrew",64330,"tavhebrew",1514,"tbar",359,"tbopomofo",12554,"tcaron",357,"tccurl",680,"tcedilla",355,"tcheharabic",1670,"tchehfinalarabic",64379,"tchehinitialarabic",64380,"tchehmedialarabic",64381,"tcircle",9443,"tcircumflexbelow",7793,"tcommaaccent",355,"tdieresis",7831,"tdotaccent",7787,"tdotbelow",7789,"tecyrillic",1090,"tedescendercyrillic",1197,"teharabic",1578,"tehfinalarabic",65174,"tehhahinitialarabic",64674,"tehhahisolatedarabic",64524,"tehinitialarabic",65175,"tehiragana",12390,"tehjeeminitialarabic",64673,"tehjeemisolatedarabic",64523,"tehmarbutaarabic",1577,"tehmarbutafinalarabic",65172,"tehmedialarabic",65176,"tehmeeminitialarabic",64676,"tehmeemisolatedarabic",64526,"tehnoonfinalarabic",64627,"tekatakana",12486,"tekatakanahalfwidth",65411,"telephone",8481,"telephoneblack",9742,"telishagedolahebrew",1440,"telishaqetanahebrew",1449,"tencircle",9321,"tenideographicparen",12841,"tenparen",9341,"tenperiod",9361,"tenroman",8569,"tesh",679,"tet",1496,"tetdagesh",64312,"tetdageshhebrew",64312,"tethebrew",1496,"tetsecyrillic",1205,"tevirhebrew",1435,"tevirlefthebrew",1435,"thabengali",2469,"thadeva",2341,"thagujarati",2725,"thagurmukhi",2597,"thalarabic",1584,"thalfinalarabic",65196,"thanthakhatlowleftthai",63640,"thanthakhatlowrightthai",63639,"thanthakhatthai",3660,"thanthakhatupperleftthai",63638,"theharabic",1579,"thehfinalarabic",65178,"thehinitialarabic",65179,"thehmedialarabic",65180,"thereexists",8707,"therefore",8756,"theta",952,"theta1",977,"thetasymbolgreek",977,"thieuthacirclekorean",12921,"thieuthaparenkorean",12825,"thieuthcirclekorean",12907,"thieuthkorean",12620,"thieuthparenkorean",12811,"thirteencircle",9324,"thirteenparen",9344,"thirteenperiod",9364,"thonangmonthothai",3601,"thook",429,"thophuthaothai",3602,"thorn",254,"thothahanthai",3607,"thothanthai",3600,"thothongthai",3608,"thothungthai",3606,"thousandcyrillic",1154,"thousandsseparatorarabic",1644,"thousandsseparatorpersian",1644,"three",51,"threearabic",1635,"threebengali",2537,"threecircle",9314,"threecircleinversesansserif",10124,"threedeva",2409,"threeeighths",8540,"threegujarati",2793,"threegurmukhi",2665,"threehackarabic",1635,"threehangzhou",12323,"threeideographicparen",12834,"threeinferior",8323,"threemonospace",65299,"threenumeratorbengali",2550,"threeoldstyle",63283,"threeparen",9334,"threeperiod",9354,"threepersian",1779,"threequarters",190,"threequartersemdash",63198,"threeroman",8562,"threesuperior",179,"threethai",3667,"thzsquare",13204,"tihiragana",12385,"tikatakana",12481,"tikatakanahalfwidth",65409,"tikeutacirclekorean",12912,"tikeutaparenkorean",12816,"tikeutcirclekorean",12898,"tikeutkorean",12599,"tikeutparenkorean",12802,"tilde",732,"tildebelowcmb",816,"tildecmb",771,"tildecomb",771,"tildedoublecmb",864,"tildeoperator",8764,"tildeoverlaycmb",820,"tildeverticalcmb",830,"timescircle",8855,"tipehahebrew",1430,"tipehalefthebrew",1430,"tippigurmukhi",2672,"titlocyrilliccmb",1155,"tiwnarmenian",1407,"tlinebelow",7791,"tmonospace",65364,"toarmenian",1385,"tohiragana",12392,"tokatakana",12488,"tokatakanahalfwidth",65412,"tonebarextrahighmod",741,"tonebarextralowmod",745,"tonebarhighmod",742,"tonebarlowmod",744,"tonebarmidmod",743,"tonefive",445,"tonesix",389,"tonetwo",424,"tonos",900,"tonsquare",13095,"topatakthai",3599,"tortoiseshellbracketleft",12308,"tortoiseshellbracketleftsmall",65117,"tortoiseshellbracketleftvertical",65081,"tortoiseshellbracketright",12309,"tortoiseshellbracketrightsmall",65118,"tortoiseshellbracketrightvertical",65082,"totaothai",3605,"tpalatalhook",427,"tparen",9391,"trademark",8482,"trademarksans",63722,"trademarkserif",63195,"tretroflexhook",648,"triagdn",9660,"triaglf",9668,"triagrt",9658,"triagup",9650,"ts",678,"tsadi",1510,"tsadidagesh",64326,"tsadidageshhebrew",64326,"tsadihebrew",1510,"tsecyrillic",1094,"tsere",1461,"tsere12",1461,"tsere1e",1461,"tsere2b",1461,"tserehebrew",1461,"tserenarrowhebrew",1461,"tserequarterhebrew",1461,"tserewidehebrew",1461,"tshecyrillic",1115,"tsuperior",63219,"ttabengali",2463,"ttadeva",2335,"ttagujarati",2719,"ttagurmukhi",2591,"tteharabic",1657,"ttehfinalarabic",64359,"ttehinitialarabic",64360,"ttehmedialarabic",64361,"tthabengali",2464,"tthadeva",2336,"tthagujarati",2720,"tthagurmukhi",2592,"tturned",647,"tuhiragana",12388,"tukatakana",12484,"tukatakanahalfwidth",65410,"tusmallhiragana",12387,"tusmallkatakana",12483,"tusmallkatakanahalfwidth",65391,"twelvecircle",9323,"twelveparen",9343,"twelveperiod",9363,"twelveroman",8571,"twentycircle",9331,"twentyhangzhou",21316,"twentyparen",9351,"twentyperiod",9371,"two",50,"twoarabic",1634,"twobengali",2536,"twocircle",9313,"twocircleinversesansserif",10123,"twodeva",2408,"twodotenleader",8229,"twodotleader",8229,"twodotleadervertical",65072,"twogujarati",2792,"twogurmukhi",2664,"twohackarabic",1634,"twohangzhou",12322,"twoideographicparen",12833,"twoinferior",8322,"twomonospace",65298,"twonumeratorbengali",2549,"twooldstyle",63282,"twoparen",9333,"twoperiod",9353,"twopersian",1778,"tworoman",8561,"twostroke",443,"twosuperior",178,"twothai",3666,"twothirds",8532,"u",117,"uacute",250,"ubar",649,"ubengali",2441,"ubopomofo",12584,"ubreve",365,"ucaron",468,"ucircle",9444,"ucircumflex",251,"ucircumflexbelow",7799,"ucyrillic",1091,"udattadeva",2385,"udblacute",369,"udblgrave",533,"udeva",2313,"udieresis",252,"udieresisacute",472,"udieresisbelow",7795,"udieresiscaron",474,"udieresiscyrillic",1265,"udieresisgrave",476,"udieresismacron",470,"udotbelow",7909,"ugrave",249,"ugujarati",2697,"ugurmukhi",2569,"uhiragana",12358,"uhookabove",7911,"uhorn",432,"uhornacute",7913,"uhorndotbelow",7921,"uhorngrave",7915,"uhornhookabove",7917,"uhorntilde",7919,"uhungarumlaut",369,"uhungarumlautcyrillic",1267,"uinvertedbreve",535,"ukatakana",12454,"ukatakanahalfwidth",65395,"ukcyrillic",1145,"ukorean",12636,"umacron",363,"umacroncyrillic",1263,"umacrondieresis",7803,"umatragurmukhi",2625,"umonospace",65365,"underscore",95,"underscoredbl",8215,"underscoremonospace",65343,"underscorevertical",65075,"underscorewavy",65103,"union",8746,"universal",8704,"uogonek",371,"uparen",9392,"upblock",9600,"upperdothebrew",1476,"upsilon",965,"upsilondieresis",971,"upsilondieresistonos",944,"upsilonlatin",650,"upsilontonos",973,"uptackbelowcmb",797,"uptackmod",724,"uragurmukhi",2675,"uring",367,"ushortcyrillic",1118,"usmallhiragana",12357,"usmallkatakana",12453,"usmallkatakanahalfwidth",65385,"ustraightcyrillic",1199,"ustraightstrokecyrillic",1201,"utilde",361,"utildeacute",7801,"utildebelow",7797,"uubengali",2442,"uudeva",2314,"uugujarati",2698,"uugurmukhi",2570,"uumatragurmukhi",2626,"uuvowelsignbengali",2498,"uuvowelsigndeva",2370,"uuvowelsigngujarati",2754,"uvowelsignbengali",2497,"uvowelsigndeva",2369,"uvowelsigngujarati",2753,"v",118,"vadeva",2357,"vagujarati",2741,"vagurmukhi",2613,"vakatakana",12535,"vav",1493,"vavdagesh",64309,"vavdagesh65",64309,"vavdageshhebrew",64309,"vavhebrew",1493,"vavholam",64331,"vavholamhebrew",64331,"vavvavhebrew",1520,"vavyodhebrew",1521,"vcircle",9445,"vdotbelow",7807,"vecyrillic",1074,"veharabic",1700,"vehfinalarabic",64363,"vehinitialarabic",64364,"vehmedialarabic",64365,"vekatakana",12537,"venus",9792,"verticalbar",124,"verticallineabovecmb",781,"verticallinebelowcmb",809,"verticallinelowmod",716,"verticallinemod",712,"vewarmenian",1406,"vhook",651,"vikatakana",12536,"viramabengali",2509,"viramadeva",2381,"viramagujarati",2765,"visargabengali",2435,"visargadeva",2307,"visargagujarati",2691,"vmonospace",65366,"voarmenian",1400,"voicediterationhiragana",12446,"voicediterationkatakana",12542,"voicedmarkkana",12443,"voicedmarkkanahalfwidth",65438,"vokatakana",12538,"vparen",9393,"vtilde",7805,"vturned",652,"vuhiragana",12436,"vukatakana",12532,"w",119,"wacute",7811,"waekorean",12633,"wahiragana",12431,"wakatakana",12527,"wakatakanahalfwidth",65436,"wakorean",12632,"wasmallhiragana",12430,"wasmallkatakana",12526,"wattosquare",13143,"wavedash",12316,"wavyunderscorevertical",65076,"wawarabic",1608,"wawfinalarabic",65262,"wawhamzaabovearabic",1572,"wawhamzaabovefinalarabic",65158,"wbsquare",13277,"wcircle",9446,"wcircumflex",373,"wdieresis",7813,"wdotaccent",7815,"wdotbelow",7817,"wehiragana",12433,"weierstrass",8472,"wekatakana",12529,"wekorean",12638,"weokorean",12637,"wgrave",7809,"whitebullet",9702,"whitecircle",9675,"whitecircleinverse",9689,"whitecornerbracketleft",12302,"whitecornerbracketleftvertical",65091,"whitecornerbracketright",12303,"whitecornerbracketrightvertical",65092,"whitediamond",9671,"whitediamondcontainingblacksmalldiamond",9672,"whitedownpointingsmalltriangle",9663,"whitedownpointingtriangle",9661,"whiteleftpointingsmalltriangle",9667,"whiteleftpointingtriangle",9665,"whitelenticularbracketleft",12310,"whitelenticularbracketright",12311,"whiterightpointingsmalltriangle",9657,"whiterightpointingtriangle",9655,"whitesmallsquare",9643,"whitesmilingface",9786,"whitesquare",9633,"whitestar",9734,"whitetelephone",9743,"whitetortoiseshellbracketleft",12312,"whitetortoiseshellbracketright",12313,"whiteuppointingsmalltriangle",9653,"whiteuppointingtriangle",9651,"wihiragana",12432,"wikatakana",12528,"wikorean",12639,"wmonospace",65367,"wohiragana",12434,"wokatakana",12530,"wokatakanahalfwidth",65382,"won",8361,"wonmonospace",65510,"wowaenthai",3623,"wparen",9394,"wring",7832,"wsuperior",695,"wturned",653,"wynn",447,"x",120,"xabovecmb",829,"xbopomofo",12562,"xcircle",9447,"xdieresis",7821,"xdotaccent",7819,"xeharmenian",1389,"xi",958,"xmonospace",65368,"xparen",9395,"xsuperior",739,"y",121,"yaadosquare",13134,"yabengali",2479,"yacute",253,"yadeva",2351,"yaekorean",12626,"yagujarati",2735,"yagurmukhi",2607,"yahiragana",12420,"yakatakana",12516,"yakatakanahalfwidth",65428,"yakorean",12625,"yamakkanthai",3662,"yasmallhiragana",12419,"yasmallkatakana",12515,"yasmallkatakanahalfwidth",65388,"yatcyrillic",1123,"ycircle",9448,"ycircumflex",375,"ydieresis",255,"ydotaccent",7823,"ydotbelow",7925,"yeharabic",1610,"yehbarreearabic",1746,"yehbarreefinalarabic",64431,"yehfinalarabic",65266,"yehhamzaabovearabic",1574,"yehhamzaabovefinalarabic",65162,"yehhamzaaboveinitialarabic",65163,"yehhamzaabovemedialarabic",65164,"yehinitialarabic",65267,"yehmedialarabic",65268,"yehmeeminitialarabic",64733,"yehmeemisolatedarabic",64600,"yehnoonfinalarabic",64660,"yehthreedotsbelowarabic",1745,"yekorean",12630,"yen",165,"yenmonospace",65509,"yeokorean",12629,"yeorinhieuhkorean",12678,"yerahbenyomohebrew",1450,"yerahbenyomolefthebrew",1450,"yericyrillic",1099,"yerudieresiscyrillic",1273,"yesieungkorean",12673,"yesieungpansioskorean",12675,"yesieungsioskorean",12674,"yetivhebrew",1434,"ygrave",7923,"yhook",436,"yhookabove",7927,"yiarmenian",1397,"yicyrillic",1111,"yikorean",12642,"yinyang",9775,"yiwnarmenian",1410,"ymonospace",65369,"yod",1497,"yoddagesh",64313,"yoddageshhebrew",64313,"yodhebrew",1497,"yodyodhebrew",1522,"yodyodpatahhebrew",64287,"yohiragana",12424,"yoikorean",12681,"yokatakana",12520,"yokatakanahalfwidth",65430,"yokorean",12635,"yosmallhiragana",12423,"yosmallkatakana",12519,"yosmallkatakanahalfwidth",65390,"yotgreek",1011,"yoyaekorean",12680,"yoyakorean",12679,"yoyakthai",3618,"yoyingthai",3597,"yparen",9396,"ypogegrammeni",890,"ypogegrammenigreekcmb",837,"yr",422,"yring",7833,"ysuperior",696,"ytilde",7929,"yturned",654,"yuhiragana",12422,"yuikorean",12684,"yukatakana",12518,"yukatakanahalfwidth",65429,"yukorean",12640,"yusbigcyrillic",1131,"yusbigiotifiedcyrillic",1133,"yuslittlecyrillic",1127,"yuslittleiotifiedcyrillic",1129,"yusmallhiragana",12421,"yusmallkatakana",12517,"yusmallkatakanahalfwidth",65389,"yuyekorean",12683,"yuyeokorean",12682,"yyabengali",2527,"yyadeva",2399,"z",122,"zaarmenian",1382,"zacute",378,"zadeva",2395,"zagurmukhi",2651,"zaharabic",1592,"zahfinalarabic",65222,"zahinitialarabic",65223,"zahiragana",12374,"zahmedialarabic",65224,"zainarabic",1586,"zainfinalarabic",65200,"zakatakana",12470,"zaqefgadolhebrew",1429,"zaqefqatanhebrew",1428,"zarqahebrew",1432,"zayin",1494,"zayindagesh",64310,"zayindageshhebrew",64310,"zayinhebrew",1494,"zbopomofo",12567,"zcaron",382,"zcircle",9449,"zcircumflex",7825,"zcurl",657,"zdot",380,"zdotaccent",380,"zdotbelow",7827,"zecyrillic",1079,"zedescendercyrillic",1177,"zedieresiscyrillic",1247,"zehiragana",12380,"zekatakana",12476,"zero",48,"zeroarabic",1632,"zerobengali",2534,"zerodeva",2406,"zerogujarati",2790,"zerogurmukhi",2662,"zerohackarabic",1632,"zeroinferior",8320,"zeromonospace",65296,"zerooldstyle",63280,"zeropersian",1776,"zerosuperior",8304,"zerothai",3664,"zerowidthjoiner",65279,"zerowidthnonjoiner",8204,"zerowidthspace",8203,"zeta",950,"zhbopomofo",12563,"zhearmenian",1386,"zhebrevecyrillic",1218,"zhecyrillic",1078,"zhedescendercyrillic",1175,"zhedieresiscyrillic",1245,"zihiragana",12376,"zikatakana",12472,"zinorhebrew",1454,"zlinebelow",7829,"zmonospace",65370,"zohiragana",12382,"zokatakana",12478,"zparen",9397,"zretroflexhook",656,"zstroke",438,"zuhiragana",12378,"zukatakana",12474,".notdef",0,"angbracketleftbig",9001,"angbracketleftBig",9001,"angbracketleftbigg",9001,"angbracketleftBigg",9001,"angbracketrightBig",9002,"angbracketrightbig",9002,"angbracketrightBigg",9002,"angbracketrightbigg",9002,"arrowhookleft",8618,"arrowhookright",8617,"arrowlefttophalf",8636,"arrowleftbothalf",8637,"arrownortheast",8599,"arrownorthwest",8598,"arrowrighttophalf",8640,"arrowrightbothalf",8641,"arrowsoutheast",8600,"arrowsouthwest",8601,"backslashbig",8726,"backslashBig",8726,"backslashBigg",8726,"backslashbigg",8726,"bardbl",8214,"bracehtipdownleft",65079,"bracehtipdownright",65079,"bracehtipupleft",65080,"bracehtipupright",65080,"braceleftBig",123,"braceleftbig",123,"braceleftbigg",123,"braceleftBigg",123,"bracerightBig",125,"bracerightbig",125,"bracerightbigg",125,"bracerightBigg",125,"bracketleftbig",91,"bracketleftBig",91,"bracketleftbigg",91,"bracketleftBigg",91,"bracketrightBig",93,"bracketrightbig",93,"bracketrightbigg",93,"bracketrightBigg",93,"ceilingleftbig",8968,"ceilingleftBig",8968,"ceilingleftBigg",8968,"ceilingleftbigg",8968,"ceilingrightbig",8969,"ceilingrightBig",8969,"ceilingrightbigg",8969,"ceilingrightBigg",8969,"circledotdisplay",8857,"circledottext",8857,"circlemultiplydisplay",8855,"circlemultiplytext",8855,"circleplusdisplay",8853,"circleplustext",8853,"contintegraldisplay",8750,"contintegraltext",8750,"coproductdisplay",8720,"coproducttext",8720,"floorleftBig",8970,"floorleftbig",8970,"floorleftbigg",8970,"floorleftBigg",8970,"floorrightbig",8971,"floorrightBig",8971,"floorrightBigg",8971,"floorrightbigg",8971,"hatwide",770,"hatwider",770,"hatwidest",770,"intercal",7488,"integraldisplay",8747,"integraltext",8747,"intersectiondisplay",8898,"intersectiontext",8898,"logicalanddisplay",8743,"logicalandtext",8743,"logicalordisplay",8744,"logicalortext",8744,"parenleftBig",40,"parenleftbig",40,"parenleftBigg",40,"parenleftbigg",40,"parenrightBig",41,"parenrightbig",41,"parenrightBigg",41,"parenrightbigg",41,"prime",8242,"productdisplay",8719,"producttext",8719,"radicalbig",8730,"radicalBig",8730,"radicalBigg",8730,"radicalbigg",8730,"radicalbt",8730,"radicaltp",8730,"radicalvertex",8730,"slashbig",47,"slashBig",47,"slashBigg",47,"slashbigg",47,"summationdisplay",8721,"summationtext",8721,"tildewide",732,"tildewider",732,"tildewidest",732,"uniondisplay",8899,"unionmultidisplay",8846,"unionmultitext",8846,"unionsqdisplay",8852,"unionsqtext",8852,"uniontext",8899,"vextenddouble",8741,"vextendsingle",8739]})),i=(0,r.getArrayLookupTableFactory)((function(){return["space",32,"a1",9985,"a2",9986,"a202",9987,"a3",9988,"a4",9742,"a5",9990,"a119",9991,"a118",9992,"a117",9993,"a11",9755,"a12",9758,"a13",9996,"a14",9997,"a15",9998,"a16",9999,"a105",1e4,"a17",10001,"a18",10002,"a19",10003,"a20",10004,"a21",10005,"a22",10006,"a23",10007,"a24",10008,"a25",10009,"a26",10010,"a27",10011,"a28",10012,"a6",10013,"a7",10014,"a8",10015,"a9",10016,"a10",10017,"a29",10018,"a30",10019,"a31",10020,"a32",10021,"a33",10022,"a34",10023,"a35",9733,"a36",10025,"a37",10026,"a38",10027,"a39",10028,"a40",10029,"a41",10030,"a42",10031,"a43",10032,"a44",10033,"a45",10034,"a46",10035,"a47",10036,"a48",10037,"a49",10038,"a50",10039,"a51",10040,"a52",10041,"a53",10042,"a54",10043,"a55",10044,"a56",10045,"a57",10046,"a58",10047,"a59",10048,"a60",10049,"a61",10050,"a62",10051,"a63",10052,"a64",10053,"a65",10054,"a66",10055,"a67",10056,"a68",10057,"a69",10058,"a70",10059,"a71",9679,"a72",10061,"a73",9632,"a74",10063,"a203",10064,"a75",10065,"a204",10066,"a76",9650,"a77",9660,"a78",9670,"a79",10070,"a81",9687,"a82",10072,"a83",10073,"a84",10074,"a97",10075,"a98",10076,"a99",10077,"a100",10078,"a101",10081,"a102",10082,"a103",10083,"a104",10084,"a106",10085,"a107",10086,"a108",10087,"a112",9827,"a111",9830,"a110",9829,"a109",9824,"a120",9312,"a121",9313,"a122",9314,"a123",9315,"a124",9316,"a125",9317,"a126",9318,"a127",9319,"a128",9320,"a129",9321,"a130",10102,"a131",10103,"a132",10104,"a133",10105,"a134",10106,"a135",10107,"a136",10108,"a137",10109,"a138",10110,"a139",10111,"a140",10112,"a141",10113,"a142",10114,"a143",10115,"a144",10116,"a145",10117,"a146",10118,"a147",10119,"a148",10120,"a149",10121,"a150",10122,"a151",10123,"a152",10124,"a153",10125,"a154",10126,"a155",10127,"a156",10128,"a157",10129,"a158",10130,"a159",10131,"a160",10132,"a161",8594,"a163",8596,"a164",8597,"a196",10136,"a165",10137,"a192",10138,"a166",10139,"a167",10140,"a168",10141,"a169",10142,"a170",10143,"a171",10144,"a172",10145,"a173",10146,"a162",10147,"a174",10148,"a175",10149,"a176",10150,"a177",10151,"a178",10152,"a179",10153,"a193",10154,"a180",10155,"a199",10156,"a181",10157,"a200",10158,"a182",10159,"a201",10161,"a183",10162,"a184",10163,"a197",10164,"a185",10165,"a194",10166,"a198",10167,"a186",10168,"a195",10169,"a187",10170,"a188",10171,"a189",10172,"a190",10173,"a191",10174,"a89",10088,"a90",10089,"a93",10090,"a94",10091,"a91",10092,"a92",10093,"a205",10094,"a85",10095,"a206",10096,"a86",10097,"a87",10098,"a88",10099,"a95",10100,"a96",10101,".notdef",0]}))},(e,t,a)=>{a.r(t);a.d(t,{clearUnicodeCaches:()=>clearUnicodeCaches,getCharUnicodeCategory:()=>getCharUnicodeCategory,getNormalizedUnicodes:()=>s,getUnicodeForGlyph:()=>getUnicodeForGlyph,getUnicodeRangeFor:()=>getUnicodeRangeFor,mapSpecialUnicodeValues:()=>mapSpecialUnicodeValues,reverseIfRtl:()=>reverseIfRtl});var r=a(8);const n=(0,r.getLookupTableFactory)((function(e){e[63721]=169;e[63193]=169;e[63720]=174;e[63194]=174;e[63722]=8482;e[63195]=8482;e[63729]=9127;e[63730]=9128;e[63731]=9129;e[63740]=9131;e[63741]=9132;e[63742]=9133;e[63726]=9121;e[63727]=9122;e[63728]=9123;e[63737]=9124;e[63738]=9125;e[63739]=9126;e[63723]=9115;e[63724]=9116;e[63725]=9117;e[63734]=9118;e[63735]=9119;e[63736]=9120}));function mapSpecialUnicodeValues(e){return e>=65520&&e<=65535?0:e>=62976&&e<=63743?n()[e]||e:173===e?45:e}function getUnicodeForGlyph(e,t){let a=t[e];if(void 0!==a)return a;if(!e)return-1;if("u"===e[0]){const t=e.length;let r;if(7===t&&"n"===e[1]&&"i"===e[2])r=e.substring(3);else{if(!(t>=5&&t<=7))return-1;r=e.substring(1)}if(r===r.toUpperCase()){a=parseInt(r,16);if(a>=0)return a}}return-1}const i=[{begin:0,end:127},{begin:128,end:255},{begin:256,end:383},{begin:384,end:591},{begin:592,end:687},{begin:688,end:767},{begin:768,end:879},{begin:880,end:1023},{begin:11392,end:11519},{begin:1024,end:1279},{begin:1328,end:1423},{begin:1424,end:1535},{begin:42240,end:42559},{begin:1536,end:1791},{begin:1984,end:2047},{begin:2304,end:2431},{begin:2432,end:2559},{begin:2560,end:2687},{begin:2688,end:2815},{begin:2816,end:2943},{begin:2944,end:3071},{begin:3072,end:3199},{begin:3200,end:3327},{begin:3328,end:3455},{begin:3584,end:3711},{begin:3712,end:3839},{begin:4256,end:4351},{begin:6912,end:7039},{begin:4352,end:4607},{begin:7680,end:7935},{begin:7936,end:8191},{begin:8192,end:8303},{begin:8304,end:8351},{begin:8352,end:8399},{begin:8400,end:8447},{begin:8448,end:8527},{begin:8528,end:8591},{begin:8592,end:8703},{begin:8704,end:8959},{begin:8960,end:9215},{begin:9216,end:9279},{begin:9280,end:9311},{begin:9312,end:9471},{begin:9472,end:9599},{begin:9600,end:9631},{begin:9632,end:9727},{begin:9728,end:9983},{begin:9984,end:10175},{begin:12288,end:12351},{begin:12352,end:12447},{begin:12448,end:12543},{begin:12544,end:12591},{begin:12592,end:12687},{begin:43072,end:43135},{begin:12800,end:13055},{begin:13056,end:13311},{begin:44032,end:55215},{begin:55296,end:57343},{begin:67840,end:67871},{begin:19968,end:40959},{begin:57344,end:63743},{begin:12736,end:12783},{begin:64256,end:64335},{begin:64336,end:65023},{begin:65056,end:65071},{begin:65040,end:65055},{begin:65104,end:65135},{begin:65136,end:65279},{begin:65280,end:65519},{begin:65520,end:65535},{begin:3840,end:4095},{begin:1792,end:1871},{begin:1920,end:1983},{begin:3456,end:3583},{begin:4096,end:4255},{begin:4608,end:4991},{begin:5024,end:5119},{begin:5120,end:5759},{begin:5760,end:5791},{begin:5792,end:5887},{begin:6016,end:6143},{begin:6144,end:6319},{begin:10240,end:10495},{begin:40960,end:42127},{begin:5888,end:5919},{begin:66304,end:66351},{begin:66352,end:66383},{begin:66560,end:66639},{begin:118784,end:119039},{begin:119808,end:120831},{begin:1044480,end:1048573},{begin:65024,end:65039},{begin:917504,end:917631},{begin:6400,end:6479},{begin:6480,end:6527},{begin:6528,end:6623},{begin:6656,end:6687},{begin:11264,end:11359},{begin:11568,end:11647},{begin:19904,end:19967},{begin:43008,end:43055},{begin:65536,end:65663},{begin:65856,end:65935},{begin:66432,end:66463},{begin:66464,end:66527},{begin:66640,end:66687},{begin:66688,end:66735},{begin:67584,end:67647},{begin:68096,end:68191},{begin:119552,end:119647},{begin:73728,end:74751},{begin:119648,end:119679},{begin:7040,end:7103},{begin:7168,end:7247},{begin:7248,end:7295},{begin:43136,end:43231},{begin:43264,end:43311},{begin:43312,end:43359},{begin:43520,end:43615},{begin:65936,end:65999},{begin:66e3,end:66047},{begin:66208,end:66271},{begin:127024,end:127135}];function getUnicodeRangeFor(e){for(let t=0,a=i.length;t=a.begin&&e=t.begin&&e=t.begin&&e=0;r--)a.push(e[r]);return a.join("")}const o=new RegExp("^(\\s)|(\\p{Mn})|(\\p{Cf})$","u"),c=new Map;function getCharUnicodeCategory(e){const t=c.get(e);if(t)return t;const a=e.match(o),r={isWhitespace:!(!a||!a[1]),isZeroWidthDiacritic:!(!a||!a[2]),isInvisibleFormatMark:!(!a||!a[3])};c.set(e,r);return r}function clearUnicodeCaches(){c.clear()}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.MarkupAnnotation=t.AnnotationFactory=t.AnnotationBorderStyle=t.Annotation=void 0;t.getQuadPoints=getQuadPoints;var r=a(2),n=a(8),i=a(23),s=a(5),o=a(9),c=a(60),l=a(66),h=a(24),u=a(69),d=a(73),f=a(62),g=a(10),p=a(74),m=a(77);const b=1.35;t.AnnotationFactory=class AnnotationFactory{static create(e,t,a,r,n){return Promise.all([a.ensureCatalog("acroForm"),a.ensureCatalog("baseUrl"),a.ensureDoc("xfaDatasets"),n?this._getPageIndex(e,t,a):-1]).then((([i,s,o,c])=>a.ensure(this,"_create",[e,t,a,r,i,o,n,c])))}static _create(e,t,a,i,o,c,l,h=-1){const u=e.fetchIfRef(t);if(!(u instanceof s.Dict))return;const d=t instanceof s.Ref?t.toString():`annot_${i.createObjId()}`;let f=u.get("Subtype");f=f instanceof s.Name?f.name:null;const g={xref:e,ref:t,dict:u,subtype:f,id:d,pdfManager:a,acroForm:o instanceof s.Dict?o:s.Dict.empty,xfaDatasets:c,collectFields:l,pageIndex:h};switch(f){case"Link":return new LinkAnnotation(g);case"Text":return new TextAnnotation(g);case"Widget":let e=(0,n.getInheritableProperty)({dict:u,key:"FT"});e=e instanceof s.Name?e.name:null;switch(e){case"Tx":return new TextWidgetAnnotation(g);case"Btn":return new ButtonWidgetAnnotation(g);case"Ch":return new ChoiceWidgetAnnotation(g);case"Sig":return new SignatureWidgetAnnotation(g)}(0,r.warn)(`Unimplemented widget field type "${e}", falling back to base field type.`);return new WidgetAnnotation(g);case"Popup":return new PopupAnnotation(g);case"FreeText":return new FreeTextAnnotation(g);case"Line":return new LineAnnotation(g);case"Square":return new SquareAnnotation(g);case"Circle":return new CircleAnnotation(g);case"PolyLine":return new PolylineAnnotation(g);case"Polygon":return new PolygonAnnotation(g);case"Caret":return new CaretAnnotation(g);case"Ink":return new InkAnnotation(g);case"Highlight":return new HighlightAnnotation(g);case"Underline":return new UnderlineAnnotation(g);case"Squiggly":return new SquigglyAnnotation(g);case"StrikeOut":return new StrikeOutAnnotation(g);case"Stamp":return new StampAnnotation(g);case"FileAttachment":return new FileAttachmentAnnotation(g);default:l||(f?(0,r.warn)(`Unimplemented annotation type "${f}", falling back to base annotation.`):(0,r.warn)("Annotation is missing the required /Subtype."));return new Annotation(g)}}static async _getPageIndex(e,t,a){try{const r=await e.fetchIfRefAsync(t);if(!(r instanceof s.Dict))return-1;const n=r.getRaw("P");if(!(n instanceof s.Ref))return-1;return await a.ensureCatalog("getPageIndex",[n])}catch(e){(0,r.warn)(`_getPageIndex: "${e}".`);return-1}}};function getRgbColor(e,t=new Uint8ClampedArray(3)){if(!Array.isArray(e))return t;const a=t||new Uint8ClampedArray(3);switch(e.length){case 0:return null;case 1:h.ColorSpace.singletons.gray.getRgbItem(e,0,a,0);return a;case 3:h.ColorSpace.singletons.rgb.getRgbItem(e,0,a,0);return a;case 4:h.ColorSpace.singletons.cmyk.getRgbItem(e,0,a,0);return a;default:return t}}function getQuadPoints(e,t){if(!e.has("QuadPoints"))return null;const a=e.getArray("QuadPoints");if(!Array.isArray(a)||0===a.length||a.length%8>0)return null;const r=[];for(let e=0,n=a.length/8;et[2]||st[3]))return null;r[e].push({x:i,y:s})}}return r.map((e=>{const[t,a,r,n]=e.reduce((([e,t,a,r],n)=>[Math.min(e,n.x),Math.max(t,n.x),Math.min(a,n.y),Math.max(r,n.y)]),[Number.MAX_VALUE,Number.MIN_VALUE,Number.MAX_VALUE,Number.MIN_VALUE]);return[{x:t,y:n},{x:a,y:n},{x:t,y:r},{x:a,y:r}]}))}function getTransformMatrix(e,t,a){const[n,i,s,o]=r.Util.getAxialAlignedBoundingBox(t,a);if(n===s||i===o)return[1,0,0,1,e[0],e[1]];const c=(e[2]-e[0])/(s-n),l=(e[3]-e[1])/(o-i);return[c,0,0,l,e[0]-n*c,e[1]-i*l]}class Annotation{constructor(e){const t=e.dict;this.setTitle(t.get("T"));this.setContents(t.get("Contents"));this.setModificationDate(t.get("M"));this.setFlags(t.get("F"));this.setRectangle(t.getArray("Rect"));this.setColor(t.getArray("C"));this.setBorderStyle(t);this.setAppearance(t);this.setBorderAndBackgroundColors(t.get("MK"));this._streams=[];this.appearance&&this._streams.push(this.appearance);this.data={annotationFlags:this.flags,borderStyle:this.borderStyle,color:this.color,backgroundColor:this.backgroundColor,borderColor:this.borderColor,contentsObj:this._contents,hasAppearance:!!this.appearance,id:e.id,modificationDate:this.modificationDate,rect:this.rectangle,subtype:e.subtype,hasOwnCanvas:!1};if(e.collectFields){const a=t.get("Kids");if(Array.isArray(a)){const e=[];for(const t of a)t instanceof s.Ref&&e.push(t.toString());0!==e.length&&(this.data.kidIds=e)}this.data.actions=(0,n.collectActions)(e.xref,t,r.AnnotationActionEventType);this.data.fieldName=this._constructFieldName(t);this.data.pageIndex=e.pageIndex}this._fallbackFontDict=null}_hasFlag(e,t){return!!(e&t)}_isViewable(e){return!this._hasFlag(e,r.AnnotationFlag.INVISIBLE)&&!this._hasFlag(e,r.AnnotationFlag.NOVIEW)}_isPrintable(e){return this._hasFlag(e,r.AnnotationFlag.PRINT)&&!this._hasFlag(e,r.AnnotationFlag.INVISIBLE)}mustBeViewed(e){const t=e&&e.get(this.data.id);return t&&void 0!==t.hidden?!t.hidden:this.viewable&&!this._hasFlag(this.flags,r.AnnotationFlag.HIDDEN)}mustBePrinted(e){const t=e&&e.get(this.data.id);return t&&void 0!==t.print?t.print:this.printable}get viewable(){return null!==this.data.quadPoints&&(0===this.flags||this._isViewable(this.flags))}get printable(){return null!==this.data.quadPoints&&(0!==this.flags&&this._isPrintable(this.flags))}_parseStringHelper(e){const t="string"==typeof e?(0,r.stringToPDFString)(e):"";return{str:t,dir:t&&"rtl"===(0,c.bidi)(t).dir?"rtl":"ltr"}}setTitle(e){this._title=this._parseStringHelper(e)}setContents(e){this._contents=this._parseStringHelper(e)}setModificationDate(e){this.modificationDate="string"==typeof e?e:null}setFlags(e){this.flags=Number.isInteger(e)&&e>0?e:0}hasFlag(e){return this._hasFlag(this.flags,e)}setRectangle(e){Array.isArray(e)&&4===e.length?this.rectangle=r.Util.normalizeRect(e):this.rectangle=[0,0,0,0]}setColor(e){this.color=getRgbColor(e)}setLineEndings(e){this.lineEndings=["None","None"];if(Array.isArray(e)&&2===e.length)for(let t=0;t<2;t++){const a=e[t];if(a instanceof s.Name)switch(a.name){case"None":continue;case"Square":case"Circle":case"Diamond":case"OpenArrow":case"ClosedArrow":case"Butt":case"ROpenArrow":case"RClosedArrow":case"Slash":this.lineEndings[t]=a.name;continue}(0,r.warn)(`Ignoring invalid lineEnding: ${a}`)}}setBorderAndBackgroundColors(e){if(e instanceof s.Dict){this.borderColor=getRgbColor(e.getArray("BC"),null);this.backgroundColor=getRgbColor(e.getArray("BG"),null)}else this.borderColor=this.backgroundColor=null}setBorderStyle(e){this.borderStyle=new AnnotationBorderStyle;if(e instanceof s.Dict)if(e.has("BS")){const t=e.get("BS"),a=t.get("Type");if(!a||(0,s.isName)(a,"Border")){this.borderStyle.setWidth(t.get("W"),this.rectangle);this.borderStyle.setStyle(t.get("S"));this.borderStyle.setDashArray(t.getArray("D"))}}else if(e.has("Border")){const t=e.getArray("Border");if(Array.isArray(t)&&t.length>=3){this.borderStyle.setHorizontalCornerRadius(t[0]);this.borderStyle.setVerticalCornerRadius(t[1]);this.borderStyle.setWidth(t[2],this.rectangle);4===t.length&&this.borderStyle.setDashArray(t[3],!0)}}else this.borderStyle.setWidth(0)}setAppearance(e){this.appearance=null;const t=e.get("AP");if(!(t instanceof s.Dict))return;const a=t.get("N");if(a instanceof o.BaseStream){this.appearance=a;return}if(!(a instanceof s.Dict))return;const r=e.get("AS");r instanceof s.Name&&a.has(r.name)&&(this.appearance=a.get(r.name))}loadResources(e,t){return t.dict.getAsync("Resources").then((t=>{if(!t)return;return new d.ObjectLoader(t,e,t.xref).load().then((function(){return t}))}))}getOperatorList(e,t,a,n,i){const o=this.data;let c=this.appearance;const l=o.hasOwnCanvas&&a&r.RenderingIntentFlag.DISPLAY;if(!c){if(!l)return Promise.resolve(new f.OperatorList);c=new g.StringStream("");c.dict=new s.Dict}const h=c.dict,u=this.loadResources(["ExtGState","ColorSpace","Pattern","Shading","XObject","Font"],c),d=h.getArray("BBox")||[0,0,1,1],p=h.getArray("Matrix")||[1,0,0,1,0,0],m=getTransformMatrix(o.rect,d,p);return u.then((a=>{const n=new f.OperatorList;n.addOp(r.OPS.beginAnnotation,[o.id,o.rect,m,p,l]);return e.getOperatorList({stream:c,task:t,resources:a,operatorList:n,fallbackFontDict:this._fallbackFontDict}).then((()=>{n.addOp(r.OPS.endAnnotation,[]);this.reset();return n}))}))}async save(e,t,a){return null}getFieldObject(){return this.data.kidIds?{id:this.data.id,actions:this.data.actions,name:this.data.fieldName,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,type:"",kidIds:this.data.kidIds,page:this.data.pageIndex}:null}reset(){for(const e of this._streams)e.reset()}_constructFieldName(e){if(!e.has("T")&&!e.has("Parent")){(0,r.warn)("Unknown field name, falling back to empty field name.");return""}if(!e.has("Parent"))return(0,r.stringToPDFString)(e.get("T"));const t=[];e.has("T")&&t.unshift((0,r.stringToPDFString)(e.get("T")));let a=e;const n=new s.RefSet;e.objId&&n.put(e.objId);for(;a.has("Parent");){a=a.get("Parent");if(!(a instanceof s.Dict)||a.objId&&n.has(a.objId))break;a.objId&&n.put(a.objId);a.has("T")&&t.unshift((0,r.stringToPDFString)(a.get("T")))}return t.join(".")}}t.Annotation=Annotation;class AnnotationBorderStyle{constructor(){this.width=1;this.style=r.AnnotationBorderStyleType.SOLID;this.dashArray=[3];this.horizontalCornerRadius=0;this.verticalCornerRadius=0}setWidth(e,t=[0,0,0,0]){if(e instanceof s.Name)this.width=0;else if("number"==typeof e){if(e>0){const a=(t[2]-t[0])/2,n=(t[3]-t[1])/2;if(a>0&&n>0&&(e>a||e>n)){(0,r.warn)(`AnnotationBorderStyle.setWidth - ignoring width: ${e}`);e=1}}this.width=e}}setStyle(e){if(e instanceof s.Name)switch(e.name){case"S":this.style=r.AnnotationBorderStyleType.SOLID;break;case"D":this.style=r.AnnotationBorderStyleType.DASHED;break;case"B":this.style=r.AnnotationBorderStyleType.BEVELED;break;case"I":this.style=r.AnnotationBorderStyleType.INSET;break;case"U":this.style=r.AnnotationBorderStyleType.UNDERLINE}}setDashArray(e,t=!1){if(Array.isArray(e)&&e.length>0){let a=!0,r=!0;for(const t of e){if(!(+t>=0)){a=!1;break}t>0&&(r=!1)}if(a&&!r){this.dashArray=e;t&&this.setStyle(s.Name.get("D"))}else this.width=0}else e&&(this.width=0)}setHorizontalCornerRadius(e){Number.isInteger(e)&&(this.horizontalCornerRadius=e)}setVerticalCornerRadius(e){Number.isInteger(e)&&(this.verticalCornerRadius=e)}}t.AnnotationBorderStyle=AnnotationBorderStyle;class MarkupAnnotation extends Annotation{constructor(e){super(e);const t=e.dict;if(t.has("IRT")){const e=t.getRaw("IRT");this.data.inReplyTo=e instanceof s.Ref?e.toString():null;const a=t.get("RT");this.data.replyType=a instanceof s.Name?a.name:r.AnnotationReplyType.REPLY}if(this.data.replyType===r.AnnotationReplyType.GROUP){const e=t.get("IRT");this.setTitle(e.get("T"));this.data.titleObj=this._title;this.setContents(e.get("Contents"));this.data.contentsObj=this._contents;if(e.has("CreationDate")){this.setCreationDate(e.get("CreationDate"));this.data.creationDate=this.creationDate}else this.data.creationDate=null;if(e.has("M")){this.setModificationDate(e.get("M"));this.data.modificationDate=this.modificationDate}else this.data.modificationDate=null;this.data.hasPopup=e.has("Popup");if(e.has("C")){this.setColor(e.getArray("C"));this.data.color=this.color}else this.data.color=null}else{this.data.titleObj=this._title;this.setCreationDate(t.get("CreationDate"));this.data.creationDate=this.creationDate;this.data.hasPopup=t.has("Popup");t.has("C")||(this.data.color=null)}t.has("RC")&&(this.data.richText=m.XFAFactory.getRichTextAsHtml(t.get("RC")))}setCreationDate(e){this.creationDate="string"==typeof e?e:null}_setDefaultAppearance({xref:e,extra:t,strokeColor:a,fillColor:r,blendMode:n,strokeAlpha:i,fillAlpha:o,pointsCallback:c}){let l=Number.MAX_VALUE,h=Number.MAX_VALUE,u=Number.MIN_VALUE,d=Number.MIN_VALUE;const f=["q"];t&&f.push(t);a&&f.push(`${a[0]} ${a[1]} ${a[2]} RG`);r&&f.push(`${r[0]} ${r[1]} ${r[2]} rg`);let p=this.data.quadPoints;p||(p=[[{x:this.rectangle[0],y:this.rectangle[3]},{x:this.rectangle[2],y:this.rectangle[3]},{x:this.rectangle[0],y:this.rectangle[1]},{x:this.rectangle[2],y:this.rectangle[1]}]]);for(const e of p){const[t,a,r,n]=c(f,e);l=Math.min(l,t);u=Math.max(u,a);h=Math.min(h,r);d=Math.max(d,n)}f.push("Q");const m=new s.Dict(e),b=new s.Dict(e);b.set("Subtype",s.Name.get("Form"));const y=new g.StringStream(f.join(" "));y.dict=b;m.set("Fm0",y);const w=new s.Dict(e);n&&w.set("BM",s.Name.get(n));"number"==typeof i&&w.set("CA",i);"number"==typeof o&&w.set("ca",o);const S=new s.Dict(e);S.set("GS0",w);const x=new s.Dict(e);x.set("ExtGState",S);x.set("XObject",m);const k=new s.Dict(e);k.set("Resources",x);const C=this.data.rect=[l,h,u,d];k.set("BBox",C);this.appearance=new g.StringStream("/GS0 gs /Fm0 Do");this.appearance.dict=k;this._streams.push(this.appearance,y)}}t.MarkupAnnotation=MarkupAnnotation;class WidgetAnnotation extends Annotation{constructor(e){super(e);const t=e.dict,a=this.data;this.ref=e.ref;a.annotationType=r.AnnotationType.WIDGET;void 0===a.fieldName&&(a.fieldName=this._constructFieldName(t));void 0===a.actions&&(a.actions=(0,n.collectActions)(e.xref,t,r.AnnotationActionEventType));let o=(0,n.getInheritableProperty)({dict:t,key:"V",getArray:!0});a.fieldValue=this._decodeFormValue(o);const c=(0,n.getInheritableProperty)({dict:t,key:"DV",getArray:!0});a.defaultFieldValue=this._decodeFormValue(c);if(void 0===o&&e.xfaDatasets){const t=this._title.str;if(t){this._hasValueFromXFA=!0;a.fieldValue=o=e.xfaDatasets.getValue(t)}}void 0===o&&null!==a.defaultFieldValue&&(a.fieldValue=a.defaultFieldValue);a.alternativeText=(0,r.stringToPDFString)(t.get("TU")||"");const l=(0,n.getInheritableProperty)({dict:t,key:"DA"})||e.acroForm.get("DA");this._defaultAppearance="string"==typeof l?l:"";a.defaultAppearanceData=(0,i.parseDefaultAppearance)(this._defaultAppearance);const h=(0,n.getInheritableProperty)({dict:t,key:"FT"});a.fieldType=h instanceof s.Name?h.name:null;const u=(0,n.getInheritableProperty)({dict:t,key:"DR"}),d=e.acroForm.get("DR"),f=this.appearance&&this.appearance.dict.get("Resources");this._fieldResources={localResources:u,acroFormResources:d,appearanceResources:f,mergedResources:s.Dict.merge({xref:e.xref,dictArray:[u,f,d],mergeSubDicts:!0})};a.fieldFlags=(0,n.getInheritableProperty)({dict:t,key:"Ff"});(!Number.isInteger(a.fieldFlags)||a.fieldFlags<0)&&(a.fieldFlags=0);a.readOnly=this.hasFieldFlag(r.AnnotationFieldFlag.READONLY);a.hidden=this._hasFlag(a.annotationFlags,r.AnnotationFlag.HIDDEN)}_decodeFormValue(e){return Array.isArray(e)?e.filter((e=>"string"==typeof e)).map((e=>(0,r.stringToPDFString)(e))):e instanceof s.Name?(0,r.stringToPDFString)(e.name):"string"==typeof e?(0,r.stringToPDFString)(e):null}hasFieldFlag(e){return!!(this.data.fieldFlags&e)}getOperatorList(e,t,a,n,i){return!n||this instanceof SignatureWidgetAnnotation?this._hasText?this._getAppearance(e,t,i).then((s=>{if(this.appearance&&null===s)return super.getOperatorList(e,t,a,n,i);const o=new f.OperatorList;if(!this._defaultAppearance||null===s)return o;const c=[1,0,0,1,0,0],l=[0,0,this.data.rect[2]-this.data.rect[0],this.data.rect[3]-this.data.rect[1]],h=getTransformMatrix(this.data.rect,l,c);o.addOp(r.OPS.beginAnnotation,[this.data.id,this.data.rect,h,c]);const u=new g.StringStream(s);return e.getOperatorList({stream:u,task:t,resources:this._fieldResources.mergedResources,operatorList:o}).then((function(){o.addOp(r.OPS.endAnnotation,[]);return o}))})):super.getOperatorList(e,t,a,n,i):Promise.resolve(new f.OperatorList)}async save(e,t,a){const n=a?a.get(this.data.id):void 0;let i=n&&n.value;if(i===this.data.fieldValue||void 0===i){if(!this._hasValueFromXFA)return null;i=i||this.data.fieldValue}if(!this._hasValueFromXFA&&Array.isArray(i)&&Array.isArray(this.data.fieldValue)&&i.length===this.data.fieldValue.length&&i.every(((e,t)=>e===this.data.fieldValue[t])))return null;let o=await this._getAppearance(e,t,a);if(null===o)return null;const{xref:c}=e,l=c.fetchIfRef(this.ref);if(!(l instanceof s.Dict))return null;const h=[0,0,this.data.rect[2]-this.data.rect[0],this.data.rect[3]-this.data.rect[1]],u={path:(0,r.stringToPDFString)(l.get("T")||""),value:i},d=c.getNewRef(),f=new s.Dict(c);f.set("N",d);const g=c.encrypt;let m=null,b=null;if(g){m=g.createCipherTransform(this.ref.num,this.ref.gen);b=g.createCipherTransform(d.num,d.gen);o=b.encryptString(o)}const encoder=e=>(0,r.isAscii)(e)?e:(0,r.stringToUTF16BEString)(e);l.set("V",Array.isArray(i)?i.map(encoder):encoder(i));l.set("AP",f);l.set("M",`D:${(0,r.getModificationDate)()}`);const y=new s.Dict(c);y.set("Length",o.length);y.set("Subtype",s.Name.get("Form"));y.set("Resources",this._getSaveFieldResources(c));y.set("BBox",h);const w=[`${this.ref.num} ${this.ref.gen} obj\n`];(0,p.writeDict)(l,w,m);w.push("\nendobj\n");const S=[`${d.num} ${d.gen} obj\n`];(0,p.writeDict)(y,S,b);S.push(" stream\n",o,"\nendstream\nendobj\n");return[{ref:this.ref,data:w.join(""),xfa:u},{ref:d,data:S.join(""),xfa:null}]}async _getAppearance(e,t,a){if(this.hasFieldFlag(r.AnnotationFieldFlag.PASSWORD))return null;const n=a?a.get(this.data.id):void 0;let s=n&&(n.formattedValue||n.value);if(void 0===s){if(!this._hasValueFromXFA||this.appearance)return null;s=this.data.fieldValue;if(!s)return""}(0,r.assert)("string"==typeof s,"Expected `value` to be a string.");s=s.trim();if(""===s)return"";let o=-1;this.data.multiLine&&(o=s.split(/\r\n|\r|\n/).length);const c=this.data.rect[3]-this.data.rect[1],l=this.data.rect[2]-this.data.rect[0];this._defaultAppearance||(this.data.defaultAppearanceData=(0,i.parseDefaultAppearance)(this._defaultAppearance="/Helvetica 0 Tf 0 g"));const h=await this._getFontData(e,t),[u,d]=this._computeFontSize(c-2,l-4,s,h,o);let f=h.descent;isNaN(f)&&(f=0);const g=2+Math.abs(f)*d,p=this.data.textAlignment;if(this.data.multiLine)return this._getMultilineAppearance(u,s,h,d,l,c,p,2,g);const m=h.encodeString(s).join("");if(this.data.comb)return this._getCombAppearance(u,h,m,l,2,g);if(0===p||p>2)return"/Tx BMC q BT "+u+` 1 0 0 1 2 ${g} Tm (${(0,r.escapeString)(m)}) Tj ET Q EMC`;return"/Tx BMC q BT "+u+` 1 0 0 1 0 0 Tm ${this._renderText(m,h,d,l,p,2,g)} ET Q EMC`}async _getFontData(e,t){const a=new f.OperatorList,r={font:null,clone(){return this}},{fontName:n,fontSize:i}=this.data.defaultAppearanceData;await e.handleSetFont(this._fieldResources.mergedResources,[n&&s.Name.get(n),i],null,a,t,r,null);return r.font}_getTextWidth(e,t){return t.charsToGlyphs(e).reduce(((e,t)=>e+t.width),0)/1e3}_computeFontSize(e,t,a,r,n){let{fontSize:s}=this.data.defaultAppearanceData;if(!s){const roundWithTwoDigits=e=>Math.floor(100*e)/100;if(-1===n){const n=this._getTextWidth(a,r);s=roundWithTwoDigits(Math.min(e/b,t/n))}else{const i=a.split(/\r\n?|\n/),o=[];for(const e of i){const t=r.encodeString(e).join(""),a=r.charsToGlyphs(t),n=r.getCharPositions(t);o.push({line:t,glyphs:a,positions:n})}const isTooBig=a=>{let n=0;for(const i of o){n+=this._splitLine(null,r,a,t,i).length*a;if(n>e)return!0}return!1};s=12;let c=s*b,l=Math.round(e/c);l=Math.max(l,n);for(;;){c=e/l;s=roundWithTwoDigits(c/b);if(!isTooBig(s))break;l++}}const{fontName:o,fontColor:c}=this.data.defaultAppearanceData;this._defaultAppearance=(0,i.createDefaultAppearance)({fontSize:s,fontName:o,fontColor:c})}return[this._defaultAppearance,s]}_renderText(e,t,a,n,i,s,o){let c;if(1===i){c=(n-this._getTextWidth(e,t)*a)/2}else if(2===i){c=n-this._getTextWidth(e,t)*a-s}else c=s;c=c.toFixed(2);return`${c} ${o=o.toFixed(2)} Td (${(0,r.escapeString)(e)}) Tj`}_getSaveFieldResources(e){const{localResources:t,appearanceResources:a,acroFormResources:r}=this._fieldResources,n=this.data.defaultAppearanceData&&this.data.defaultAppearanceData.fontName;if(!n)return t||s.Dict.empty;for(const e of[t,a])if(e instanceof s.Dict){const t=e.get("Font");if(t instanceof s.Dict&&t.has(n))return e}if(r instanceof s.Dict){const a=r.get("Font");if(a instanceof s.Dict&&a.has(n)){const r=new s.Dict(e);r.set(n,a.getRaw(n));const i=new s.Dict(e);i.set("Font",r);return s.Dict.merge({xref:e,dictArray:[i,t],mergeSubDicts:!0})}}return t||s.Dict.empty}getFieldObject(){return null}}class TextWidgetAnnotation extends WidgetAnnotation{constructor(e){super(e);this._hasText=!0;const t=e.dict;"string"!=typeof this.data.fieldValue&&(this.data.fieldValue="");let a=(0,n.getInheritableProperty)({dict:t,key:"Q"});(!Number.isInteger(a)||a<0||a>2)&&(a=null);this.data.textAlignment=a;let i=(0,n.getInheritableProperty)({dict:t,key:"MaxLen"});(!Number.isInteger(i)||i<0)&&(i=null);this.data.maxLen=i;this.data.multiLine=this.hasFieldFlag(r.AnnotationFieldFlag.MULTILINE);this.data.comb=this.hasFieldFlag(r.AnnotationFieldFlag.COMB)&&!this.hasFieldFlag(r.AnnotationFieldFlag.MULTILINE)&&!this.hasFieldFlag(r.AnnotationFieldFlag.PASSWORD)&&!this.hasFieldFlag(r.AnnotationFieldFlag.FILESELECT)&&null!==this.data.maxLen}_getCombAppearance(e,t,a,n,i,s){const o=(n/this.data.maxLen).toFixed(2),c=[],l=t.getCharPositions(a);for(const[e,t]of l)c.push(`(${(0,r.escapeString)(a.substring(e,t))}) Tj`);return"/Tx BMC q BT "+e+` 1 0 0 1 ${i} ${s} Tm ${c.join(` ${o} 0 Td `)} ET Q EMC`}_getMultilineAppearance(e,t,a,r,n,i,s,o,c){const l=t.split(/\r\n?|\n/),h=[],u=n-2*o;for(const e of l){const t=this._splitLine(e,a,r,u);for(const e of t){const t=0===h.length?o:0;h.push(this._renderText(e,a,r,n,s,t,-r))}}return"/Tx BMC q BT "+e+` 1 0 0 1 0 ${i} Tm ${h.join("\n")} ET Q EMC`}_splitLine(e,t,a,r,n={}){e=n.line||t.encodeString(e).join("");const i=n.glyphs||t.charsToGlyphs(e);if(i.length<=1)return[e];const s=n.positions||t.getCharPositions(e),o=a/1e3,c=[];let l=-1,h=-1,u=-1,d=0,f=0;for(let t=0,a=i.length;tr){c.push(e.substring(d,a));d=a;f=p;l=-1;u=-1}else{f+=p;l=a;h=n;u=t}else if(f+p>r)if(-1!==l){c.push(e.substring(d,h));d=h;t=u+1;l=-1;f=0}else{c.push(e.substring(d,a));d=a;f=p}else f+=p}d"Off"!==e));i.length=0;i.push("Off",e)}i.includes(this.data.fieldValue)||(this.data.fieldValue="Off");this.data.exportValue=i[1];this.checkedAppearance=a.get(this.data.exportValue)||null;this.uncheckedAppearance=a.get("Off")||null;this.checkedAppearance?this._streams.push(this.checkedAppearance):this._getDefaultCheckedAppearance(e,"check");this.uncheckedAppearance&&this._streams.push(this.uncheckedAppearance);this._fallbackFontDict=this.fallbackFontDict}_processRadioButton(e){this.data.fieldValue=this.data.buttonValue=null;const t=e.dict.get("Parent");if(t instanceof s.Dict){this.parent=e.dict.getRaw("Parent");const a=t.get("V");a instanceof s.Name&&(this.data.fieldValue=this._decodeFormValue(a))}const a=e.dict.get("AP");if(!(a instanceof s.Dict))return;const r=a.get("N");if(r instanceof s.Dict){for(const e of r.getKeys())if("Off"!==e){this.data.buttonValue=this._decodeFormValue(e);break}this.checkedAppearance=r.get(this.data.buttonValue)||null;this.uncheckedAppearance=r.get("Off")||null;this.checkedAppearance?this._streams.push(this.checkedAppearance):this._getDefaultCheckedAppearance(e,"disc");this.uncheckedAppearance&&this._streams.push(this.uncheckedAppearance);this._fallbackFontDict=this.fallbackFontDict}}_processPushButton(e){if(e.dict.has("A")||e.dict.has("AA")||this.data.alternativeText){this.data.isTooltipOnly=!e.dict.has("A")&&!e.dict.has("AA");l.Catalog.parseDestDictionary({destDict:e.dict,resultObj:this.data,docBaseUrl:e.pdfManager.docBaseUrl})}else(0,r.warn)("Push buttons without action dictionaries are not supported")}getFieldObject(){let e,t="button";if(this.data.checkBox){t="checkbox";e=this.data.exportValue}else if(this.data.radioButton){t="radiobutton";e=this.data.buttonValue}return{id:this.data.id,value:this.data.fieldValue||"Off",defaultValue:this.data.defaultFieldValue,exportValues:e,editable:!this.data.readOnly,name:this.data.fieldName,rect:this.data.rect,hidden:this.data.hidden,actions:this.data.actions,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,type:t}}get fallbackFontDict(){const e=new s.Dict;e.set("BaseFont",s.Name.get("ZapfDingbats"));e.set("Type",s.Name.get("FallbackType"));e.set("Subtype",s.Name.get("FallbackType"));e.set("Encoding",s.Name.get("ZapfDingbatsEncoding"));return(0,r.shadow)(this,"fallbackFontDict",e)}}class ChoiceWidgetAnnotation extends WidgetAnnotation{constructor(e){super(e);this.data.options=[];const t=(0,n.getInheritableProperty)({dict:e.dict,key:"Opt"});if(Array.isArray(t)){const a=e.xref;for(let e=0,r=t.length;e0?this.data.fieldValue[0]:null;return{id:this.data.id,value:t,defaultValue:this.data.defaultFieldValue,editable:!this.data.readOnly,name:this.data.fieldName,rect:this.data.rect,numItems:this.data.fieldValue.length,multipleSelection:this.data.multiSelect,hidden:this.data.hidden,actions:this.data.actions,items:this.data.options,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,type:e}}async _getAppearance(e,t,a){if(this.data.combo)return super._getAppearance(e,t,a);if(!a)return null;const r=a.get(this.data.id);let n=r&&r.value;if(void 0===n)return null;Array.isArray(n)||(n=[n]);const s=this.data.rect[3]-this.data.rect[1],o=this.data.rect[2]-this.data.rect[0],c=this.data.options.length,l=[];for(let e=0;ea){a=r;t=e}}[u,d]=this._computeFontSize(e,o-4,t,h,-1)}const f=d*b,g=(f-d)/2,p=Math.floor(s/f);let m;if(1===l.length){const e=l[0];m=e-e%p}else m=l.length?l[0]:0;const y=Math.min(m+p+1,c),w=["/Tx BMC q",`1 1 ${o} ${s} re W n`];if(l.length){w.push("0.600006 0.756866 0.854904 rg");for(const e of l)m<=e&&ee/255)):[0,0,0],i=t.get("CA");let s=null,o=t.getArray("IC");if(o){o=getRgbColor(o,null);s=o?Array.from(o).map((e=>e/255)):null}const c=s?i:null,l=this.borderStyle.width||1,h=2*l,u=[this.data.lineCoordinates[0]-h,this.data.lineCoordinates[1]-h,this.data.lineCoordinates[2]+h,this.data.lineCoordinates[3]+h];r.Util.intersect(this.rectangle,u)||(this.rectangle=u);this._setDefaultAppearance({xref:e.xref,extra:`${l} w`,strokeColor:n,fillColor:s,strokeAlpha:i,fillAlpha:c,pointsCallback:(e,t)=>{e.push(`${a[0]} ${a[1]} m`,`${a[2]} ${a[3]} l`,"S");return[t[0].x-l,t[1].x+l,t[3].y-l,t[1].y+l]}})}}}class SquareAnnotation extends MarkupAnnotation{constructor(e){super(e);this.data.annotationType=r.AnnotationType.SQUARE;if(!this.appearance){const t=this.color?Array.from(this.color).map((e=>e/255)):[0,0,0],a=e.dict.get("CA");let r=null,n=e.dict.getArray("IC");if(n){n=getRgbColor(n,null);r=n?Array.from(n).map((e=>e/255)):null}const i=r?a:null;if(0===this.borderStyle.width&&!r)return;this._setDefaultAppearance({xref:e.xref,extra:`${this.borderStyle.width} w`,strokeColor:t,fillColor:r,strokeAlpha:a,fillAlpha:i,pointsCallback:(e,t)=>{const a=t[2].x+this.borderStyle.width/2,n=t[2].y+this.borderStyle.width/2,i=t[3].x-t[2].x-this.borderStyle.width,s=t[1].y-t[3].y-this.borderStyle.width;e.push(`${a} ${n} ${i} ${s} re`);r?e.push("B"):e.push("S");return[t[0].x,t[1].x,t[3].y,t[1].y]}})}}}class CircleAnnotation extends MarkupAnnotation{constructor(e){super(e);this.data.annotationType=r.AnnotationType.CIRCLE;if(!this.appearance){const t=this.color?Array.from(this.color).map((e=>e/255)):[0,0,0],a=e.dict.get("CA");let r=null,n=e.dict.getArray("IC");if(n){n=getRgbColor(n,null);r=n?Array.from(n).map((e=>e/255)):null}const i=r?a:null;if(0===this.borderStyle.width&&!r)return;const s=4/3*Math.tan(Math.PI/8);this._setDefaultAppearance({xref:e.xref,extra:`${this.borderStyle.width} w`,strokeColor:t,fillColor:r,strokeAlpha:a,fillAlpha:i,pointsCallback:(e,t)=>{const a=t[0].x+this.borderStyle.width/2,n=t[0].y-this.borderStyle.width/2,i=t[3].x-this.borderStyle.width/2,o=t[3].y+this.borderStyle.width/2,c=a+(i-a)/2,l=n+(o-n)/2,h=(i-a)/2*s,u=(o-n)/2*s;e.push(`${c} ${o} m`,`${c+h} ${o} ${i} ${l+u} ${i} ${l} c`,`${i} ${l-u} ${c+h} ${n} ${c} ${n} c`,`${c-h} ${n} ${a} ${l-u} ${a} ${l} c`,`${a} ${l+u} ${c-h} ${o} ${c} ${o} c`,"h");r?e.push("B"):e.push("S");return[t[0].x,t[1].x,t[3].y,t[1].y]}})}}}class PolylineAnnotation extends MarkupAnnotation{constructor(e){super(e);const{dict:t}=e;this.data.annotationType=r.AnnotationType.POLYLINE;this.data.vertices=[];if(!(this instanceof PolygonAnnotation)){this.setLineEndings(t.getArray("LE"));this.data.lineEndings=this.lineEndings}const a=t.getArray("Vertices");if(Array.isArray(a)){for(let e=0,t=a.length;ee/255)):[0,0,0],n=t.get("CA"),i=this.borderStyle.width||1,s=2*i,o=[1/0,1/0,-1/0,-1/0];for(const e of this.data.vertices){o[0]=Math.min(o[0],e.x-s);o[1]=Math.min(o[1],e.y-s);o[2]=Math.max(o[2],e.x+s);o[3]=Math.max(o[3],e.y+s)}r.Util.intersect(this.rectangle,o)||(this.rectangle=o);this._setDefaultAppearance({xref:e.xref,extra:`${i} w`,strokeColor:a,strokeAlpha:n,pointsCallback:(e,t)=>{const a=this.data.vertices;for(let t=0,r=a.length;te/255)):[0,0,0],a=e.dict.get("CA"),n=this.borderStyle.width||1,i=2*n,s=[1/0,1/0,-1/0,-1/0];for(const e of this.data.inkLists)for(const t of e){s[0]=Math.min(s[0],t.x-i);s[1]=Math.min(s[1],t.y-i);s[2]=Math.max(s[2],t.x+i);s[3]=Math.max(s[3],t.y+i)}r.Util.intersect(this.rectangle,s)||(this.rectangle=s);this._setDefaultAppearance({xref:e.xref,extra:`${n} w`,strokeColor:t,strokeAlpha:a,pointsCallback:(e,t)=>{for(const t of this.data.inkLists){for(let a=0,r=t.length;ae/255)):[1,1,0],a=e.dict.get("CA");this._setDefaultAppearance({xref:e.xref,fillColor:t,blendMode:"Multiply",fillAlpha:a,pointsCallback:(e,t)=>{e.push(`${t[0].x} ${t[0].y} m`,`${t[1].x} ${t[1].y} l`,`${t[3].x} ${t[3].y} l`,`${t[2].x} ${t[2].y} l`,"f");return[t[0].x,t[1].x,t[3].y,t[1].y]}})}}else this.data.hasPopup=!1}}class UnderlineAnnotation extends MarkupAnnotation{constructor(e){super(e);this.data.annotationType=r.AnnotationType.UNDERLINE;if(this.data.quadPoints=getQuadPoints(e.dict,null)){if(!this.appearance){const t=this.color?Array.from(this.color).map((e=>e/255)):[0,0,0],a=e.dict.get("CA");this._setDefaultAppearance({xref:e.xref,extra:"[] 0 d 1 w",strokeColor:t,strokeAlpha:a,pointsCallback:(e,t)=>{e.push(`${t[2].x} ${t[2].y} m`,`${t[3].x} ${t[3].y} l`,"S");return[t[0].x,t[1].x,t[3].y,t[1].y]}})}}else this.data.hasPopup=!1}}class SquigglyAnnotation extends MarkupAnnotation{constructor(e){super(e);this.data.annotationType=r.AnnotationType.SQUIGGLY;if(this.data.quadPoints=getQuadPoints(e.dict,null)){if(!this.appearance){const t=this.color?Array.from(this.color).map((e=>e/255)):[0,0,0],a=e.dict.get("CA");this._setDefaultAppearance({xref:e.xref,extra:"[] 0 d 1 w",strokeColor:t,strokeAlpha:a,pointsCallback:(e,t)=>{const a=(t[0].y-t[2].y)/6;let r=a,n=t[2].x;const i=t[2].y,s=t[3].x;e.push(`${n} ${i+r} m`);do{n+=2;r=0===r?a:0;e.push(`${n} ${i+r} l`)}while(ne/255)):[0,0,0],a=e.dict.get("CA");this._setDefaultAppearance({xref:e.xref,extra:"[] 0 d 1 w",strokeColor:t,strokeAlpha:a,pointsCallback:(e,t)=>{e.push((t[0].x+t[2].x)/2+" "+(t[0].y+t[2].y)/2+" m",(t[1].x+t[3].x)/2+" "+(t[1].y+t[3].y)/2+" l","S");return[t[0].x,t[1].x,t[3].y,t[1].y]}})}}else this.data.hasPopup=!1}}class StampAnnotation extends MarkupAnnotation{constructor(e){super(e);this.data.annotationType=r.AnnotationType.STAMP}}class FileAttachmentAnnotation extends MarkupAnnotation{constructor(e){super(e);const t=new u.FileSpec(e.dict.get("FS"),e.xref);this.data.annotationType=r.AnnotationType.FILEATTACHMENT;this.data.file=t.serializable}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.createDefaultAppearance=function createDefaultAppearance({fontSize:e,fontName:t,fontColor:a}){let r;r=a.every((e=>0===e))?"0 g":Array.from(a).map((e=>(e/255).toFixed(2))).join(" ")+" rg";return`/${(0,i.escapePDFName)(t)} ${e} Tf ${r}`};t.parseDefaultAppearance=function parseDefaultAppearance(e){return new DefaultAppearanceEvaluator(e).parse()};var r=a(2),n=a(24),i=a(8),s=a(25),o=a(5),c=a(10);class DefaultAppearanceEvaluator extends s.EvaluatorPreprocessor{constructor(e){super(new c.StringStream(e))}parse(){const e={fn:0,args:[]},t={fontSize:0,fontName:"",fontColor:new Uint8ClampedArray(3)};try{for(;;){e.args.length=0;if(!this.read(e))break;if(0!==this.savedStatesDepth)continue;const{fn:a,args:i}=e;switch(0|a){case r.OPS.setFont:const[e,a]=i;e instanceof o.Name&&(t.fontName=e.name);"number"==typeof a&&a>0&&(t.fontSize=a);break;case r.OPS.setFillRGBColor:n.ColorSpace.singletons.rgb.getRgbItem(i,0,t.fontColor,0);break;case r.OPS.setFillGray:n.ColorSpace.singletons.gray.getRgbItem(i,0,t.fontColor,0);break;case r.OPS.setFillColorSpace:n.ColorSpace.singletons.cmyk.getRgbItem(i,0,t.fontColor,0)}}}catch(e){(0,r.warn)(`parseDefaultAppearance - ignoring errors: "${e}".`)}return t}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ColorSpace=void 0;var r=a(2),n=a(5),i=a(9),s=a(8);class ColorSpace{constructor(e,t){this.constructor===ColorSpace&&(0,r.unreachable)("Cannot initialize ColorSpace.");this.name=e;this.numComps=t}getRgb(e,t){const a=new Uint8ClampedArray(3);this.getRgbItem(e,t,a,0);return a}getRgbItem(e,t,a,n){(0,r.unreachable)("Should not call ColorSpace.getRgbItem")}getRgbBuffer(e,t,a,n,i,s,o){(0,r.unreachable)("Should not call ColorSpace.getRgbBuffer")}getOutputLength(e,t){(0,r.unreachable)("Should not call ColorSpace.getOutputLength")}isPassthrough(e){return!1}isDefaultDecode(e,t){return ColorSpace.isDefaultDecode(e,this.numComps)}fillRgb(e,t,a,r,n,i,s,o,c){const l=t*a;let h=null;const u=1<u&&"DeviceGray"!==this.name&&"DeviceRGB"!==this.name){const t=s<=8?new Uint8Array(u):new Uint16Array(u);for(let e=0;e=.99554525?1:adjustToRange(0,1,1.055*e**(1/2.4)-.055)}function adjustToRange(e,t,a){return Math.max(e,Math.min(t,a))}function decodeL(e){return e<0?-decodeL(-e):e>8?((e+16)/116)**3:.0011070564598794539*e}function convertToRgb(r,c,l,h,u,d){const f=adjustToRange(0,1,c[l]*d),g=adjustToRange(0,1,c[l+1]*d),p=adjustToRange(0,1,c[l+2]*d),m=1===f?1:f**r.GR,b=1===g?1:g**r.GG,y=1===p?1:p**r.GB,w=r.MXA*m+r.MXB*b+r.MXC*y,S=r.MYA*m+r.MYB*b+r.MYC*y,x=r.MZA*m+r.MZB*b+r.MZC*y,k=s;k[0]=w;k[1]=S;k[2]=x;const C=o;!function normalizeWhitePointToFlat(a,r,n){if(1===a[0]&&1===a[2]){n[0]=r[0];n[1]=r[1];n[2]=r[2];return}const s=n;matrixProduct(e,r,s);const o=i;!function convertToFlat(e,t,a){a[0]=1*t[0]/e[0];a[1]=1*t[1]/e[1];a[2]=1*t[2]/e[2]}(a,s,o);matrixProduct(t,o,n)}(r.whitePoint,k,C);const v=s;!function compensateBlackPoint(e,t,a){if(0===e[0]&&0===e[1]&&0===e[2]){a[0]=t[0];a[1]=t[1];a[2]=t[2];return}const r=decodeL(0),n=(1-r)/(1-decodeL(e[0])),i=1-n,s=(1-r)/(1-decodeL(e[1])),o=1-s,c=(1-r)/(1-decodeL(e[2])),l=1-c;a[0]=t[0]*n+i;a[1]=t[1]*s+o;a[2]=t[2]*c+l}(r.blackPoint,C,v);const F=o;!function normalizeWhitePointToD65(a,r,n){const s=n;matrixProduct(e,r,s);const o=i;!function convertToD65(e,t,a){a[0]=.95047*t[0]/e[0];a[1]=1*t[1]/e[1];a[2]=1.08883*t[2]/e[2]}(a,s,o);matrixProduct(t,o,n)}(n,v,F);const O=s;matrixProduct(a,F,O);h[u]=255*sRGBTransferFunction(O[0]);h[u+1]=255*sRGBTransferFunction(O[1]);h[u+2]=255*sRGBTransferFunction(O[2])}return class CalRGBCS extends ColorSpace{constructor(e,t,a,n){super("CalRGB",3);if(!e)throw new r.FormatError("WhitePoint missing - required for color space CalRGB");t=t||new Float32Array(3);a=a||new Float32Array([1,1,1]);n=n||new Float32Array([1,0,0,0,1,0,0,0,1]);const i=e[0],s=e[1],o=e[2];this.whitePoint=e;const c=t[0],l=t[1],h=t[2];this.blackPoint=t;this.GR=a[0];this.GG=a[1];this.GB=a[2];this.MXA=n[0];this.MYA=n[1];this.MZA=n[2];this.MXB=n[3];this.MYB=n[4];this.MZB=n[5];this.MXC=n[6];this.MYC=n[7];this.MZC=n[8];if(i<0||o<0||1!==s)throw new r.FormatError(`Invalid WhitePoint components for ${this.name}, no fallback available`);if(c<0||l<0||h<0){(0,r.info)(`Invalid BlackPoint for ${this.name} [${c}, ${l}, ${h}], falling back to default.`);this.blackPoint=new Float32Array(3)}if(this.GR<0||this.GG<0||this.GB<0){(0,r.info)(`Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ${this.name}, falling back to default.`);this.GR=this.GG=this.GB=1}}getRgbItem(e,t,a,r){convertToRgb(this,e,t,a,r,1)}getRgbBuffer(e,t,a,r,n,i,s){const o=1/((1<=6/29?e**3:108/841*(e-4/29);return t}function decode(e,t,a,r){return a+e*(r-a)/t}function convertToRgb(e,t,a,r,n,i){let s=t[a],o=t[a+1],c=t[a+2];if(!1!==r){s=decode(s,r,0,100);o=decode(o,r,e.amin,e.amax);c=decode(c,r,e.bmin,e.bmax)}o>e.amax?o=e.amax:oe.bmax?c=e.bmax:cthis.amax||this.bmin>this.bmax){(0,r.info)("Invalid Range, falling back to defaults");this.amin=-100;this.amax=100;this.bmin=-100;this.bmax=100}}getRgbItem(e,t,a,r){convertToRgb(this,e,t,!1,a,r)}getRgbBuffer(e,t,a,r,n,i,s){const o=(1<{Object.defineProperty(t,"__esModule",{value:!0});t.TextState=t.StateManager=t.PartialEvaluator=t.EvaluatorPreprocessor=void 0;var r=a(2),n=a(26),i=a(5),s=a(44),o=a(18),c=a(19),l=a(47),h=a(21),u=a(56),d=a(12),f=a(48),g=a(57),p=a(27),m=a(59),b=a(10),y=a(9),w=a(60),S=a(24),x=a(29),k=a(20),C=a(8),v=a(51),F=a(61),O=a(62),T=a(63),M=a(65);const E=Object.freeze({maxImageSize:-1,disableFontFace:!1,ignoreErrors:!1,isEvalSupported:!0,fontExtraProperties:!1,useSystemFonts:!0,cMapUrl:null,standardFontDataUrl:null}),D=1,N=2,L=Promise.resolve();function normalizeBlendMode(e,t=!1){if(Array.isArray(e)){for(let t=0,a=e.length;t0&&e.args[0].count++}class TimeSlotManager{static get TIME_SLOT_DURATION_MS(){return(0,r.shadow)(this,"TIME_SLOT_DURATION_MS",20)}static get CHECK_TIME_EVERY(){return(0,r.shadow)(this,"CHECK_TIME_EVERY",100)}constructor(){this.reset()}check(){if(++this.checkedd){const e="Image exceeded maximum allowed size and was removed.";if(this.options.ignoreErrors){(0,r.warn)(e);return}throw new Error(e)}let f;c.has("OC")&&(f=await this.parseMarkedContentProps(c.get("OC"),e));let g,p;if(c.get("IM","ImageMask")||!1){const e=c.get("I","Interpolate"),a=h+7>>3,o=t.getBytes(a*u),d=c.getArray("D","Decode");if(this.parsingType3Font){g=T.PDFImage.createRawMask({imgArray:o,width:h,height:u,imageIsFromDecodeStream:t instanceof x.DecodeStream,inverseDecode:!!d&&d[0]>0,interpolate:e});g.cached=!!i;p=[g];n.addImageOps(r.OPS.paintImageMaskXObject,p,f);i&&s.set(i,l,{fn:r.OPS.paintImageMaskXObject,args:p,optionalContent:f});return}g=T.PDFImage.createMask({imgArray:o,width:h,height:u,imageIsFromDecodeStream:t instanceof x.DecodeStream,inverseDecode:!!d&&d[0]>0,interpolate:e});if(g.isSingleOpaquePixel){n.addImageOps(r.OPS.paintSolidColorImageMask,[],f);i&&s.set(i,l,{fn:r.OPS.paintSolidColorImageMask,args:[],optionalContent:f});return}const m=`mask_${this.idFactory.createObjId()}`;n.addDependency(m);this._sendImgData(m,g);p=[{data:m,width:g.width,height:g.height,interpolate:g.interpolate,count:1}];n.addImageOps(r.OPS.paintImageMaskXObject,p,f);i&&s.set(i,l,{fn:r.OPS.paintImageMaskXObject,args:p,optionalContent:f});return}const m=c.get("SM","SMask")||!1,b=c.get("Mask")||!1;if(a&&!m&&!b&&h+u<200){const i=new T.PDFImage({xref:this.xref,res:e,image:t,isInline:a,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:o});g=i.createImageData(!0);n.addImageOps(r.OPS.paintInlineImageXObject,[g],f);return}let y=`img_${this.idFactory.createObjId()}`,w=!1;if(this.parsingType3Font)y=`${this.idFactory.getDocId()}_type3_${y}`;else if(l){w=this.globalImageCache.shouldCache(l,this.pageIndex);w&&(y=`${this.idFactory.getDocId()}_${y}`)}n.addDependency(y);p=[y,h,u];T.PDFImage.buildImage({xref:this.xref,res:e,image:t,isInline:a,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:o}).then((e=>{g=e.createImageData(!1);i&&l&&w&&this.globalImageCache.addByteSize(l,g.data.length);return this._sendImgData(y,g,w)})).catch((e=>{(0,r.warn)(`Unable to decode image "${y}": "${e}".`);return this._sendImgData(y,null,w)}));n.addImageOps(r.OPS.paintImageXObject,p,f);if(i){s.set(i,l,{fn:r.OPS.paintImageXObject,args:p,optionalContent:f});if(l){(0,r.assert)(!a,"Cannot cache an inline image globally.");this.globalImageCache.addPageIndex(l,this.pageIndex);w&&this.globalImageCache.setData(l,{objId:y,fn:r.OPS.paintImageXObject,args:p,optionalContent:f,byteSize:0})}}}handleSMask(e,t,a,r,n,i){const s=e.get("G"),o={subtype:e.get("S").name,backdrop:e.get("BC")},c=e.get("TR");if((0,g.isPDFFunction)(c)){const e=this._pdfFunctionFactory.create(c),t=new Uint8Array(256),a=new Float32Array(1);for(let r=0;r<256;r++){a[0]=r/255;e(a,0,a,0);t[r]=255*a[0]|0}o.transferMap=t}return this.buildFormXObject(t,s,o,a,r,n.state.clone(),i)}handleTransferFunction(e){let t;if(Array.isArray(e))t=e;else{if(!(0,g.isPDFFunction)(e))return null;t=[e]}const a=[];let r=0,n=0;for(const e of t){const t=this.xref.fetchIfRef(e);r++;if((0,i.isName)(t,"Identity")){a.push(null);continue}if(!(0,g.isPDFFunction)(t))return null;const s=this._pdfFunctionFactory.create(t),o=new Uint8Array(256),c=new Float32Array(1);for(let e=0;e<256;e++){c[0]=e/255;s(c,0,c,0);o[e]=255*c[0]|0}a.push(o);n++}return 1!==r&&4!==r||0===n?null:a}handleTilingType(e,t,a,n,s,o,c,l){const h=new O.OperatorList,d=i.Dict.merge({xref:this.xref,dictArray:[s.get("Resources"),a]});return this.getOperatorList({stream:n,task:c,resources:d,operatorList:h}).then((function(){const a=h.getIR(),r=(0,u.getTilingPatternIR)(a,s,t);o.addDependencies(h.dependencies);o.addOp(e,r);s.objId&&l.set(null,s.objId,{operatorListIR:a,dict:s})})).catch((e=>{if(!(e instanceof r.AbortException)){if(!this.options.ignoreErrors)throw e;this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorTilingPattern});(0,r.warn)(`handleTilingType - ignoring pattern: "${e}".`)}}))}handleSetFont(e,t,a,n,o,c,l=null,h=null){const u=t&&t[0]instanceof i.Name?t[0].name:null;return this.loadFont(u,a,e,l,h).then((t=>t.font.isType3Font?t.loadType3Data(this,e,o).then((function(){n.addDependencies(t.type3Dependencies);return t})).catch((e=>{this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorFontLoadType3});return new TranslatedFont({loadedName:"g_font_error",font:new s.ErrorFont(`Type3 font load error: ${e}`),dict:t.font,evaluatorOptions:this.options})})):t)).then((e=>{c.font=e.font;e.send(this.handler);return e}))}handleText(e,t){const a=t.font,n=a.charsToGlyphs(e);if(a.data){(!!(t.textRenderingMode&r.TextRenderingMode.ADD_TO_PATH_FLAG)||"Pattern"===t.fillColorSpace.name||a.disableFontFace||this.options.disableFontFace)&&PartialEvaluator.buildFontPaths(a,n,this.handler,this.options)}return n}ensureStateFont(e){if(e.font)return;const t=new r.FormatError("Missing setFont (Tf) operator before text rendering operator.");if(!this.options.ignoreErrors)throw t;this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorFontState});(0,r.warn)(`ensureStateFont: "${t}".`)}async setGState({resources:e,gState:t,operatorList:a,cacheKey:n,task:s,stateManager:o,localGStateCache:c,localColorSpaceCache:l}){const h=t.objId;let u=!0;const d=[],f=t.getKeys();let g=Promise.resolve();for(let n=0,c=f.length;nthis.handleSetFont(e,null,h[0],a,s,o.state).then((function(e){a.addDependency(e.loadedName);d.push([c,[e.loadedName,h[1]]])}))));break;case"BM":d.push([c,normalizeBlendMode(h)]);break;case"SMask":if((0,i.isName)(h,"None")){d.push([c,!1]);break}if(h instanceof i.Dict){u=!1;g=g.then((()=>this.handleSMask(h,e,a,s,o,l)));d.push([c,!0])}else(0,r.warn)("Unsupported SMask type");break;case"TR":const t=this.handleTransferFunction(h);d.push([c,t]);break;case"OP":case"op":case"OPM":case"BG":case"BG2":case"UCR":case"UCR2":case"TR2":case"HT":case"SM":case"SA":case"AIS":case"TK":(0,r.info)("graphic state operator "+c);break;default:(0,r.info)("Unknown graphic state operator "+c)}}return g.then((function(){d.length>0&&a.addOp(r.OPS.setGState,[d]);u&&c.set(n,h,d)}))}loadFont(e,t,a,n=null,c=null){const errorFont=async()=>new TranslatedFont({loadedName:"g_font_error",font:new s.ErrorFont(`Font "${e}" is not available.`),dict:t,evaluatorOptions:this.options}),l=this.xref;let h;if(t){if(!(t instanceof i.Ref))throw new r.FormatError('The "font" object should be a reference.');h=t}else{const t=a.get("Font");t&&(h=t.getRaw(e))}if(!h){const a=`Font "${e||t&&t.toString()}" is not available`;if(!this.options.ignoreErrors&&!this.parsingType3Font){(0,r.warn)(`${a}.`);return errorFont()}this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorFontMissing});(0,r.warn)(`${a} -- attempting to fallback to a default font.`);h=n||PartialEvaluator.fallbackFontDict}if(this.parsingType3Font&&this.type3FontRefs.has(h))return errorFont();if(this.fontCache.has(h))return this.fontCache.get(h);if(!((t=l.fetchIfRef(h))instanceof i.Dict))return errorFont();if(t.cacheKey&&this.fontCache.has(t.cacheKey))return this.fontCache.get(t.cacheKey);const u=(0,r.createPromiseCapability)();let d;try{d=this.preEvaluateFont(t);d.cssFontInfo=c}catch(e){(0,r.warn)(`loadFont - preEvaluateFont failed: "${e}".`);return errorFont()}const{descriptor:f,hash:g}=d,p=h instanceof i.Ref;let m;p&&(m=`f${h.toString()}`);if(g&&f instanceof i.Dict){f.fontAliases||(f.fontAliases=Object.create(null));const e=f.fontAliases;if(e[g]){const t=e[g].aliasRef;if(p&&t&&this.fontCache.has(t)){this.fontCache.putAlias(h,t);return this.fontCache.get(h)}}else e[g]={fontID:this.idFactory.createFontId()};p&&(e[g].aliasRef=h);m=e[g].fontID}if(p)this.fontCache.put(h,u.promise);else{m||(m=this.idFactory.createFontId());t.cacheKey=`cacheKey_${m}`;this.fontCache.put(t.cacheKey,u.promise)}(0,r.assert)(m&&m.startsWith("f"),'The "fontID" must be (correctly) defined.');t.loadedName=`${this.idFactory.getDocId()}_${m}`;this.translateFont(d).then((e=>{void 0!==e.fontType&&l.stats.addFontType(e.fontType);u.resolve(new TranslatedFont({loadedName:t.loadedName,font:e,dict:t,evaluatorOptions:this.options}))})).catch((e=>{this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorFontTranslate});(0,r.warn)(`loadFont - translateFont failed: "${e}".`);try{const e=f&&f.get("FontFile3"),t=e&&e.get("Subtype"),a=(0,o.getFontType)(d.type,t&&t.name);void 0!==a&&l.stats.addFontType(a)}catch(e){}u.resolve(new TranslatedFont({loadedName:t.loadedName,font:new s.ErrorFont(e instanceof Error?e.message:e),dict:t,evaluatorOptions:this.options}))}));return u.promise}buildPath(e,t,a,n=!1){const i=e.length-1;a||(a=[]);let s;if(i<0||e.fnArray[i]!==r.OPS.constructPath){if(n){(0,r.warn)(`Encountered path operator "${t}" inside of a text object.`);e.addOp(r.OPS.save,null)}s=[1/0,-1/0,1/0,-1/0];e.addOp(r.OPS.constructPath,[[t],a,s]);n&&e.addOp(r.OPS.restore,null)}else{const r=e.argsArray[i];r[0].push(t);Array.prototype.push.apply(r[1],a);s=r[2]}switch(t){case r.OPS.rectangle:s[0]=Math.min(s[0],a[0],a[0]+a[2]);s[1]=Math.max(s[1],a[0],a[0]+a[2]);s[2]=Math.min(s[2],a[1],a[1]+a[3]);s[3]=Math.max(s[3],a[1],a[1]+a[3]);break;case r.OPS.moveTo:case r.OPS.lineTo:s[0]=Math.min(s[0],a[0]);s[1]=Math.max(s[1],a[0]);s[2]=Math.min(s[2],a[1]);s[3]=Math.max(s[3],a[1])}}parseColorSpace({cs:e,resources:t,localColorSpaceCache:a}){return S.ColorSpace.parseAsync({cs:e,xref:this.xref,resources:t,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:a}).catch((e=>{if(e instanceof r.AbortException)return null;if(this.options.ignoreErrors){this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorColorSpace});(0,r.warn)(`parseColorSpace - ignoring ColorSpace: "${e}".`);return null}throw e}))}parseShading({shading:e,resources:t,localColorSpaceCache:a,localShadingPatternCache:r}){let n=r.get(e);if(!n){const i=u.Pattern.parseShading(e,this.xref,t,this.handler,this._pdfFunctionFactory,a).getIR();n=`pattern_${this.idFactory.createObjId()}`;r.set(e,n);this.handler.send("obj",[n,this.pageIndex,"Pattern",i])}return n}handleColorN(e,t,a,n,s,o,c,l,h,d){const f=a.pop();if(f instanceof i.Name){const g=s.getRaw(f.name),p=g instanceof i.Ref&&h.getByRef(g);if(p)try{const r=n.base?n.base.getRgb(a,0):null,i=(0,u.getTilingPatternIR)(p.operatorListIR,p.dict,r);e.addOp(t,i);return}catch(e){}const m=this.xref.fetchIfRef(g);if(m){const i=m instanceof y.BaseStream?m.dict:m,s=i.get("PatternType");if(s===D){const r=n.base?n.base.getRgb(a,0):null;return this.handleTilingType(t,r,o,m,i,e,c,h)}if(s===N){const a=i.get("Shading"),r=i.getArray("Matrix"),n=this.parseShading({shading:a,resources:o,localColorSpaceCache:l,localShadingPatternCache:d});e.addOp(t,["Shading",n,r]);return}throw new r.FormatError(`Unknown PatternType: ${s}`)}}throw new r.FormatError(`Unknown PatternName: ${f}`)}_parseVisibilityExpression(e,t,a){if(++t>10){(0,r.warn)("Visibility expression is too deeply nested");return}const n=e.length,s=this.xref.fetchIfRef(e[0]);if(!(n<2)&&s instanceof i.Name){switch(s.name){case"And":case"Or":case"Not":a.push(s.name);break;default:(0,r.warn)(`Invalid operator ${s.name} in visibility expression`);return}for(let r=1;r0)return{type:"OCMD",expression:t}}const t=a.get("OCGs");if(Array.isArray(t)||t instanceof i.Dict){const e=[];if(Array.isArray(t))for(const a of t)e.push(a.toString());else e.push(t.objId);return{type:n,ids:e,policy:a.get("P")instanceof i.Name?a.get("P").name:null,expression:null}}if(t instanceof i.Ref)return{type:n,id:t.toString()}}return null}getOperatorList({stream:e,task:t,resources:a,operatorList:n,initialState:s=null,fallbackFontDict:o=null,intent:c}){a=a||i.Dict.empty;s=s||new EvalState;if(!n)throw new Error('getOperatorList: missing "operatorList" parameter');var l=new M.BoundingBoxesCalculator(!(c&r.RenderingIntentFlag.OPLIST)),h=this,u=this.xref;let d=!1;const f=new m.LocalImageCache,g=new m.LocalColorSpaceCache,p=new m.LocalGStateCache,b=new m.LocalTilingPatternCache,w=new Map,x=a.get("XObject")||i.Dict.empty,k=a.get("Pattern")||i.Dict.empty,C=new StateManager(s),v=new EvaluatorPreprocessor(e,u,C),F=new TimeSlotManager;function closePendingRestoreOPS(e){for(let e=0,t=v.savedStatesDepth;e0&&n.addOp(r.OPS.setGState,[t]);e=null;continue}}next(new Promise((function(e,s){if(!D)throw new r.FormatError("GState must be referred to by name.");const o=a.get("ExtGState");if(!(o instanceof i.Dict))throw new r.FormatError("ExtGState should be a dictionary.");const c=o.get(E);if(!(c instanceof i.Dict))throw new r.FormatError("GState should be a dictionary.");h.setGState({resources:a,gState:c,operatorList:n,cacheKey:E,task:t,stateManager:C,localGStateCache:p,localColorSpaceCache:g}).then(e,s)})).catch((function(e){if(!(e instanceof r.AbortException)){if(!h.options.ignoreErrors)throw e;h.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorExtGState});(0,r.warn)(`getOperatorList - ignoring ExtGState: "${e}".`)}})));l.parseOperator(s,e);return;case r.OPS.moveTo:case r.OPS.lineTo:case r.OPS.curveTo:case r.OPS.curveTo2:case r.OPS.curveTo3:case r.OPS.closePath:case r.OPS.rectangle:h.buildPath(n,s,e,d);l.parseOperator(s,e);continue;case r.OPS.markPoint:case r.OPS.markPointProps:case r.OPS.beginCompat:case r.OPS.endCompat:continue;case r.OPS.beginMarkedContentProps:l.parseOperator(s,e);if(!(e[0]instanceof i.Name)){(0,r.warn)(`Expected name for beginMarkedContentProps arg0=${e[0]}`);continue}if("OC"===e[0].name){next(h.parseMarkedContentProps(e[1],a).then((e=>{n.addOp(r.OPS.beginMarkedContentProps,["OC",e])})).catch((e=>{if(!(e instanceof r.AbortException)){if(!h.options.ignoreErrors)throw e;h.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorMarkedContent});(0,r.warn)(`getOperatorList - ignoring beginMarkedContentProps: "${e}".`)}})));return}e=[e[0].name,e[1]instanceof i.Dict?e[1].get("MCID"):null];break;case r.OPS.beginMarkedContent:case r.OPS.endMarkedContent:l.parseOperator(s,e);default:if(null!==e){for(O=0,T=e.length;O{if(!(e instanceof r.AbortException)){if(!this.options.ignoreErrors)throw e;this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorOperatorList});(0,r.warn)(`getOperatorList - ignoring errors during "${t.name}" task: "${e}".`);closePendingRestoreOPS()}}))}getTextContent({stream:e,task:t,resources:a,stateManager:n=null,combineTextItems:s=!1,includeMarkedContent:o=!1,sink:c,seenStyles:l=new Set,viewBox:u}){a=a||i.Dict.empty;n=n||new StateManager(new TextState);const d=(0,h.getNormalizedUnicodes)(),f={items:[],styles:Object.create(null)},g={initialized:!1,str:[],totalWidth:0,totalHeight:0,width:0,height:0,vertical:!1,prevTransform:null,textAdvanceScale:0,spaceInFlowMin:0,spaceInFlowMax:0,trackingSpaceMin:1/0,negativeSpaceMax:-1/0,notASpace:-1/0,transform:null,fontName:null,hasEOL:!1},p=[" "," "];let b=0;function saveLastChar(e){const t=(b+1)%2,a=" "!==p[b]&&" "===p[t];p[b]=e;b=t;return a}function resetLastChars(){p[0]=p[1]=" ";b=0}const S=this,x=this.xref,k=[];let C=null;const v=new m.LocalImageCache,F=new m.LocalGStateCache,O=new EvaluatorPreprocessor(e,x,n);let T;function getCurrentTextTransform(){const e=T.font,t=[T.fontSize*T.textHScale,0,0,T.fontSize,0,T.textRise];if(e.isType3Font&&(T.fontSize<=1||e.isCharBBox)&&!(0,r.isArrayEqual)(T.fontMatrix,r.FONT_IDENTITY_MATRIX)){const a=e.bbox[3]-e.bbox[1];a>0&&(t[3]*=a*T.fontMatrix[3])}return r.Util.transform(T.ctm,r.Util.transform(T.textMatrix,t))}function ensureTextContentItem(){if(g.initialized)return g;const e=T.font,t=e.loadedName;if(!l.has(t)){l.add(t);f.styles[t]={fontFamily:e.fallbackName,ascent:e.ascent,descent:e.descent,vertical:e.vertical}}g.fontName=t;const a=g.transform=getCurrentTextTransform();if(e.vertical){g.width=g.totalWidth=Math.hypot(a[0],a[1]);g.height=g.totalHeight=0;g.vertical=!0}else{g.width=g.totalWidth=0;g.height=g.totalHeight=Math.hypot(a[2],a[3]);g.vertical=!1}const r=Math.hypot(T.textLineMatrix[0],T.textLineMatrix[1]),n=Math.hypot(T.ctm[0],T.ctm[1]);g.textAdvanceScale=n*r;g.trackingSpaceMin=.1*T.fontSize;g.notASpace=.03*T.fontSize;g.negativeSpaceMax=-.2*T.fontSize;g.spaceInFlowMin=.1*T.fontSize;g.spaceInFlowMax=.6*T.fontSize;g.hasEOL=!1;g.initialized=!0;return g}function updateAdvanceScale(){if(!g.initialized)return;const e=Math.hypot(T.textLineMatrix[0],T.textLineMatrix[1]),t=Math.hypot(T.ctm[0],T.ctm[1])*e;if(t!==g.textAdvanceScale){if(g.vertical){g.totalHeight+=g.height*g.textAdvanceScale;g.height=0}else{g.totalWidth+=g.width*g.textAdvanceScale;g.width=0}g.textAdvanceScale=t}}function handleSetFont(e,n){return S.loadFont(e,n,a).then((function(e){return e.font.isType3Font?e.loadType3Data(S,a,t).catch((function(){})).then((function(){return e})):e})).then((function(e){T.font=e.font;T.fontMatrix=e.font.fontMatrix||r.FONT_IDENTITY_MATRIX}))}function applyInverseRotation(e,t,a){const r=Math.hypot(a[0],a[1]);return[(a[0]*e+a[1]*t)/r,(a[2]*e+a[3]*t)/r]}function compareWithLastPosition(){const e=getCurrentTextTransform();let t=e[4],a=e[5];const r=t-u[0],n=a-u[1];if(r<0||r>u[2]||n<0||n>u[3])return!1;if(!s||!T.font||!g.prevTransform)return!0;let i=g.prevTransform[4],o=g.prevTransform[5];if(i===t&&o===a)return!0;let c=-1;e[0]&&0===e[1]&&0===e[2]?c=e[0]>0?0:180:e[1]&&0===e[0]&&0===e[3]&&(c=e[1]>0?90:270);switch(c){case 0:break;case 90:[t,a]=[a,t];[i,o]=[o,i];break;case 180:[t,a,i,o]=[-t,-a,-i,-o];break;case 270:[t,a]=[-a,-t];[i,o]=[-o,-i];break;default:[t,a]=applyInverseRotation(t,a,e);[i,o]=applyInverseRotation(i,o,g.prevTransform)}if(T.font.vertical){const e=(o-a)/g.textAdvanceScale,r=t-i,n=Math.sign(g.height);if(e.5*g.width){appendEOL();return!0}resetLastChars();flushTextContentItem();return!0}if(Math.abs(r)>g.width){appendEOL();return!0}e<=n*g.notASpace&&resetLastChars();if(e<=n*g.trackingSpaceMin)g.height+=e;else if(!addFakeSpaces(e,g.prevTransform,n))if(0===g.str.length){resetLastChars();f.items.push({str:" ",dir:"ltr",width:0,height:Math.abs(e),transform:g.prevTransform,fontName:g.fontName,hasEOL:!1})}else g.height+=e;return!0}const l=(t-i)/g.textAdvanceScale,h=a-o,d=Math.sign(g.width);if(l.5*g.height){appendEOL();return!0}resetLastChars();flushTextContentItem();return!0}if(Math.abs(h)>g.height){appendEOL();return!0}l<=d*g.notASpace&&resetLastChars();if(l<=d*g.trackingSpaceMin)g.width+=l;else if(!addFakeSpaces(l,g.prevTransform,d))if(0===g.str.length){resetLastChars();f.items.push({str:" ",dir:"ltr",width:Math.abs(l),height:0,transform:g.prevTransform,fontName:g.fontName,hasEOL:!1})}else g.width+=l;return!0}function buildTextContentItem({chars:e,extraSpacing:t}){const a=T.font;if(!e){const e=T.charSpacing+t;e&&(a.vertical?T.translateTextMatrix(0,-e):T.translateTextMatrix(e*T.textHScale,0));return}const r=a.charsToGlyphs(e),n=T.fontMatrix[0]*T.fontSize;for(let e=0,i=r.length;e0){const e=k.join("");k.length=0;buildTextContentItem({chars:e,extraSpacing:0})}break;case r.OPS.showText:if(!n.state.font){S.ensureStateFont(n.state);continue}buildTextContentItem({chars:p[0],extraSpacing:0});break;case r.OPS.nextLineShowText:if(!n.state.font){S.ensureStateFont(n.state);continue}T.carriageReturn();buildTextContentItem({chars:p[0],extraSpacing:0});break;case r.OPS.nextLineSetSpacingShowText:if(!n.state.font){S.ensureStateFont(n.state);continue}T.wordSpacing=p[0];T.charSpacing=p[1];T.carriageReturn();buildTextContentItem({chars:p[2],extraSpacing:0});break;case r.OPS.paintXObject:flushTextContentItem();C||(C=a.get("XObject")||i.Dict.empty);var w=p[0]instanceof i.Name,E=p[0].name;if(w&&v.getByName(E))break;next(new Promise((function(e,h){if(!w)throw new r.FormatError("XObject must be referred to by name.");let d=C.getRaw(E);if(d instanceof i.Ref){if(v.getByRef(d)){e();return}if(S.globalImageCache.getData(d,S.pageIndex)){e();return}d=x.fetch(d)}if(!(d instanceof y.BaseStream))throw new r.FormatError("XObject should be a stream");const f=d.dict.get("Subtype");if(!(f instanceof i.Name))throw new r.FormatError("XObject should have a Name subtype");if("Form"!==f.name){v.set(E,d.dict.objId,!0);e();return}const g=n.state.clone(),p=new StateManager(g),m=d.dict.getArray("Matrix");Array.isArray(m)&&6===m.length&&p.transform(m);enqueueChunk();const b={enqueueInvoked:!1,enqueue(e,t){this.enqueueInvoked=!0;c.enqueue(e,t)},get desiredSize(){return c.desiredSize},get ready(){return c.ready}};S.getTextContent({stream:d,task:t,resources:d.dict.get("Resources")||a,stateManager:p,combineTextItems:s,includeMarkedContent:o,sink:b,seenStyles:l,viewBox:u}).then((function(){b.enqueueInvoked||v.set(E,d.dict.objId,!0);e()}),h)})).catch((function(e){if(!(e instanceof r.AbortException)){if(!S.options.ignoreErrors)throw e;(0,r.warn)(`getTextContent - ignoring XObject: "${e}".`)}})));return;case r.OPS.setGState:w=p[0]instanceof i.Name;E=p[0].name;if(w&&F.getByName(E))break;next(new Promise((function(e,t){if(!w)throw new r.FormatError("GState must be referred to by name.");const n=a.get("ExtGState");if(!(n instanceof i.Dict))throw new r.FormatError("ExtGState should be a dictionary.");const s=n.get(E);if(!(s instanceof i.Dict))throw new r.FormatError("GState should be a dictionary.");const o=s.get("Font");if(o){flushTextContentItem();T.fontName=null;T.fontSize=o[1];handleSetFont(null,o[0]).then(e,t)}else{F.set(E,s.objId,!0);e()}})).catch((function(e){if(!(e instanceof r.AbortException)){if(!S.options.ignoreErrors)throw e;(0,r.warn)(`getTextContent - ignoring ExtGState: "${e}".`)}})));return;case r.OPS.beginMarkedContent:o&&f.items.push({type:"beginMarkedContent",tag:p[0]instanceof i.Name?p[0].name:null});break;case r.OPS.beginMarkedContentProps:if(o){flushTextContentItem();let e=null;p[1]instanceof i.Dict&&(e=p[1].get("MCID"));f.items.push({type:"beginMarkedContentProps",id:Number.isInteger(e)?`${S.idFactory.getPageObjId()}_mcid${e}`:null,tag:p[0]instanceof i.Name?p[0].name:null})}break;case r.OPS.endMarkedContent:if(o){flushTextContentItem();f.items.push({type:"endMarkedContent"})}}if(f.items.length>=c.desiredSize){g=!0;break}}if(g)next(L);else{flushTextContentItem();enqueueChunk();e()}})).catch((e=>{if(!(e instanceof r.AbortException)){if(!this.options.ignoreErrors)throw e;(0,r.warn)(`getTextContent - ignoring errors during "${t.name}" task: "${e}".`);flushTextContentItem();enqueueChunk()}}))}extractDataStructures(e,t,a){const n=this.xref;let s;const l=this.readToUnicode(a.toUnicode||e.get("ToUnicode")||t.get("ToUnicode"));if(a.composite){const t=e.get("CIDSystemInfo");t instanceof i.Dict&&(a.cidSystemInfo={registry:(0,r.stringToPDFString)(t.get("Registry")),ordering:(0,r.stringToPDFString)(t.get("Ordering")),supplement:t.get("Supplement")});const n=e.get("CIDToGIDMap");n instanceof y.BaseStream&&(s=n.getBytes())}const h=[];let u,d=null;if(e.has("Encoding")){u=e.get("Encoding");if(u instanceof i.Dict){d=u.get("BaseEncoding");d=d instanceof i.Name?d.name:null;if(u.has("Differences")){const e=u.get("Differences");let t=0;for(let a=0,s=e.length;a0;a.dict=e;return l.then((e=>{a.toUnicode=e;return this.buildToUnicode(a)})).then((e=>{a.toUnicode=e;s&&(a.cidToGidMap=this.readCidToGidMap(s,e));return a}))}_simpleFontToUnicode(e,t=!1){(0,r.assert)(!e.composite,"Must be a simple font.");const a=[],n=e.defaultEncoding.slice(),i=e.baseEncodingName,s=e.differences;for(const e in s){const t=s[e];".notdef"!==t&&(n[e]=t)}const o=(0,k.getGlyphsUnicode)();for(const r in n){let s=n[r];if(""!==s)if(void 0!==o[s])a[r]=String.fromCharCode(o[s]);else{let n=0;switch(s[0]){case"G":3===s.length&&(n=parseInt(s.substring(1),16));break;case"g":5===s.length&&(n=parseInt(s.substring(1),16));break;case"C":case"c":if(s.length>=3&&s.length<=4){const a=s.substring(1);if(t){n=parseInt(a,16);break}n=+a;if(Number.isNaN(n)&&Number.isInteger(parseInt(a,16)))return this._simpleFontToUnicode(e,!0)}break;default:const a=(0,h.getUnicodeForGlyph)(s,o);-1!==a&&(n=a)}if(n>0&&n<=1114111&&Number.isInteger(n)){if(i&&n===+r){const e=(0,c.getEncoding)(i);if(e&&(s=e[r])){a[r]=String.fromCharCode(o[s]);continue}}a[r]=String.fromCodePoint(n)}}}return a}async buildToUnicode(e){e.hasIncludedToUnicodeMap=!!e.toUnicode&&e.toUnicode.length>0;if(e.hasIncludedToUnicodeMap){!e.composite&&e.hasEncoding&&(e.fallbackToUnicode=this._simpleFontToUnicode(e));return e.toUnicode}if(!e.composite)return new f.ToUnicodeMap(this._simpleFontToUnicode(e));if(e.composite&&(e.cMap.builtInCMap&&!(e.cMap instanceof n.IdentityCMap)||"Adobe"===e.cidSystemInfo.registry&&("GB1"===e.cidSystemInfo.ordering||"CNS1"===e.cidSystemInfo.ordering||"Japan1"===e.cidSystemInfo.ordering||"Korea1"===e.cidSystemInfo.ordering))){const{registry:t,ordering:a}=e.cidSystemInfo,s=i.Name.get(`${t}-${a}-UCS2`),o=await n.CMapFactory.create({encoding:s,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}),c=[];e.cMap.forEach((function(e,t){if(t>65535)throw new r.FormatError("Max size of CID is 65,535");const a=o.lookup(t);a&&(c[e]=String.fromCharCode((a.charCodeAt(0)<<8)+a.charCodeAt(1)))}));return new f.ToUnicodeMap(c)}return new f.IdentityToUnicodeMap(e.firstChar,e.lastChar)}readToUnicode(e){return e?e instanceof i.Name?n.CMapFactory.create({encoding:e,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}).then((function(e){return e instanceof n.IdentityCMap?new f.IdentityToUnicodeMap(0,65535):new f.ToUnicodeMap(e.getMap())})):e instanceof y.BaseStream?n.CMapFactory.create({encoding:e,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}).then((function(e){if(e instanceof n.IdentityCMap)return new f.IdentityToUnicodeMap(0,65535);const t=new Array(e.length);e.forEach((function(e,a){if("number"==typeof a){t[e]=String.fromCodePoint(a);return}const r=[];for(let e=0;e{if(e instanceof r.AbortException)return null;if(this.options.ignoreErrors){this.handler.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorFontToUnicode});(0,r.warn)(`readToUnicode - ignoring ToUnicode data: "${e}".`);return null}throw e})):Promise.resolve(null):Promise.resolve(null)}readCidToGidMap(e,t){const a=[];for(let r=0,n=e.length;r>1;(0!==n||t.has(i))&&(a[i]=n)}return a}extractWidths(e,t,a){const r=this.xref;let n=[],s=0;const c=[];let l,h,u,d,f,g,p,m;if(a.composite){s=e.has("DW")?e.get("DW"):1e3;m=e.get("W");if(m)for(h=0,u=m.length;h{if(p){const e=[];let a=u;for(let t=0,r=p.length;t{this.extractWidths(t,e,a);return new s.Font(v.name,w,a)}))}static buildFontPaths(e,t,a,n){function buildPath(t){const i=`${e.loadedName}_path_${t}`;try{if(e.renderer.hasBuiltPath(t))return;a.send("commonobj",[i,"FontPath",e.renderer.getPathJs(t)])}catch(e){if(n.ignoreErrors){a.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.errorFontBuildPath});(0,r.warn)(`buildFontPaths - ignoring ${i} glyph: "${e}".`);return}throw e}}for(const e of t){buildPath(e.fontChar);const t=e.accent;t&&t.fontChar&&buildPath(t.fontChar)}}static get fallbackFontDict(){const e=new i.Dict;e.set("BaseFont",i.Name.get("PDFJS-FallbackFont"));e.set("Type",i.Name.get("FallbackType"));e.set("Subtype",i.Name.get("FallbackType"));e.set("Encoding",i.Name.get("WinAnsiEncoding"));return(0,r.shadow)(this,"fallbackFontDict",e)}}t.PartialEvaluator=PartialEvaluator;class TranslatedFont{constructor({loadedName:e,font:t,dict:a,evaluatorOptions:r}){this.loadedName=e;this.font=t;this.dict=a;this._evaluatorOptions=r||E;this.type3Loaded=null;this.type3Dependencies=t.isType3Font?new Set:null;this.sent=!1}send(e){if(!this.sent){this.sent=!0;e.send("commonobj",[this.loadedName,"Font",this.font.exportData(this._evaluatorOptions.fontExtraProperties)])}}fallback(e){if(this.font.data){this.font.disableFontFace=!0;PartialEvaluator.buildFontPaths(this.font,this.font.glyphCacheValues,e,this._evaluatorOptions)}}loadType3Data(e,t,a){if(this.type3Loaded)return this.type3Loaded;if(!this.font.isType3Font)throw new Error("Must be a Type3 font.");const n=e.clone({ignoreErrors:!1});n.parsingType3Font=!0;const s=new i.RefSet(e.type3FontRefs);this.dict.objId&&!s.has(this.dict.objId)&&s.put(this.dict.objId);n.type3FontRefs=s;const o=this.font,c=this.type3Dependencies;let l=Promise.resolve();const h=this.dict.get("CharProcs"),u=this.dict.get("Resources")||t,d=Object.create(null),f=!o.bbox||(0,r.isArrayEqual)(o.bbox,[0,0,0,0]);for(const e of h.getKeys())l=l.then((()=>{const t=h.get(e),i=new O.OperatorList;return n.getOperatorList({stream:t,task:a,resources:u,operatorList:i}).then((()=>{i.fnArray[0]===r.OPS.setCharWidthAndBounds&&this._removeType3ColorOperators(i,f);d[e]=i.getIR();for(const e of i.dependencies)c.add(e)})).catch((function(t){(0,r.warn)(`Type3 font resource "${e}" is not available.`);const a=new O.OperatorList;d[e]=a.getIR()}))}));this.type3Loaded=l.then((()=>{o.charProcOperatorList=d;if(this._bbox){o.isCharBBox=!0;o.bbox=this._bbox}}));return this.type3Loaded}_removeType3ColorOperators(e,t=!1){if(t){this._bbox||(this._bbox=[1/0,1/0,-1/0,-1/0]);const t=r.Util.normalizeRect(e.argsArray[0].slice(2));this._bbox[0]=Math.min(this._bbox[0],t[0]);this._bbox[1]=Math.min(this._bbox[1],t[1]);this._bbox[2]=Math.max(this._bbox[2],t[2]);this._bbox[3]=Math.max(this._bbox[3],t[3])}let a=1,n=e.length;for(;ao&&(0,r.info)(`Command ${n}: expected [0, ${o}] args, but received ${c} args.`);else{if(c!==o){const e=this.nonProcessedArgs;for(;c>o;){e.push(t.shift());c--}for(;c=r.OPS.moveTo&&s<=r.OPS.endPath&&++this._numInvalidPathOPS>EvaluatorPreprocessor.MAX_INVALID_PATH_OPS)throw new r.FormatError(`Invalid ${e}`);(0,r.warn)(`Skipping ${e}`);null!==t&&(t.length=0);continue}}this.preprocessCommand(s,t);e.fn=s;e.args=t;return!0}if(a===i.EOF)return!1;if(null!==a){null===t&&(t=[]);t.push(a);if(t.length>33)throw new r.FormatError("Too many arguments")}}}preprocessCommand(e,t){switch(0|e){case r.OPS.save:this.stateManager.save();break;case r.OPS.restore:this.stateManager.restore();break;case r.OPS.transform:this.stateManager.transform(t)}}}t.EvaluatorPreprocessor=EvaluatorPreprocessor},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.IdentityCMap=t.CMapFactory=t.CMap=void 0;var r=a(2),n=a(5),i=a(9),s=a(27),o=a(8),c=a(10);const l=["Adobe-GB1-UCS2","Adobe-CNS1-UCS2","Adobe-Japan1-UCS2","Adobe-Korea1-UCS2","78-EUC-H","78-EUC-V","78-H","78-RKSJ-H","78-RKSJ-V","78-V","78ms-RKSJ-H","78ms-RKSJ-V","83pv-RKSJ-H","90ms-RKSJ-H","90ms-RKSJ-V","90msp-RKSJ-H","90msp-RKSJ-V","90pv-RKSJ-H","90pv-RKSJ-V","Add-H","Add-RKSJ-H","Add-RKSJ-V","Add-V","Adobe-CNS1-0","Adobe-CNS1-1","Adobe-CNS1-2","Adobe-CNS1-3","Adobe-CNS1-4","Adobe-CNS1-5","Adobe-CNS1-6","Adobe-GB1-0","Adobe-GB1-1","Adobe-GB1-2","Adobe-GB1-3","Adobe-GB1-4","Adobe-GB1-5","Adobe-Japan1-0","Adobe-Japan1-1","Adobe-Japan1-2","Adobe-Japan1-3","Adobe-Japan1-4","Adobe-Japan1-5","Adobe-Japan1-6","Adobe-Korea1-0","Adobe-Korea1-1","Adobe-Korea1-2","B5-H","B5-V","B5pc-H","B5pc-V","CNS-EUC-H","CNS-EUC-V","CNS1-H","CNS1-V","CNS2-H","CNS2-V","ETHK-B5-H","ETHK-B5-V","ETen-B5-H","ETen-B5-V","ETenms-B5-H","ETenms-B5-V","EUC-H","EUC-V","Ext-H","Ext-RKSJ-H","Ext-RKSJ-V","Ext-V","GB-EUC-H","GB-EUC-V","GB-H","GB-V","GBK-EUC-H","GBK-EUC-V","GBK2K-H","GBK2K-V","GBKp-EUC-H","GBKp-EUC-V","GBT-EUC-H","GBT-EUC-V","GBT-H","GBT-V","GBTpc-EUC-H","GBTpc-EUC-V","GBpc-EUC-H","GBpc-EUC-V","H","HKdla-B5-H","HKdla-B5-V","HKdlb-B5-H","HKdlb-B5-V","HKgccs-B5-H","HKgccs-B5-V","HKm314-B5-H","HKm314-B5-V","HKm471-B5-H","HKm471-B5-V","HKscs-B5-H","HKscs-B5-V","Hankaku","Hiragana","KSC-EUC-H","KSC-EUC-V","KSC-H","KSC-Johab-H","KSC-Johab-V","KSC-V","KSCms-UHC-H","KSCms-UHC-HW-H","KSCms-UHC-HW-V","KSCms-UHC-V","KSCpc-EUC-H","KSCpc-EUC-V","Katakana","NWP-H","NWP-V","RKSJ-H","RKSJ-V","Roman","UniCNS-UCS2-H","UniCNS-UCS2-V","UniCNS-UTF16-H","UniCNS-UTF16-V","UniCNS-UTF32-H","UniCNS-UTF32-V","UniCNS-UTF8-H","UniCNS-UTF8-V","UniGB-UCS2-H","UniGB-UCS2-V","UniGB-UTF16-H","UniGB-UTF16-V","UniGB-UTF32-H","UniGB-UTF32-V","UniGB-UTF8-H","UniGB-UTF8-V","UniJIS-UCS2-H","UniJIS-UCS2-HW-H","UniJIS-UCS2-HW-V","UniJIS-UCS2-V","UniJIS-UTF16-H","UniJIS-UTF16-V","UniJIS-UTF32-H","UniJIS-UTF32-V","UniJIS-UTF8-H","UniJIS-UTF8-V","UniJIS2004-UTF16-H","UniJIS2004-UTF16-V","UniJIS2004-UTF32-H","UniJIS2004-UTF32-V","UniJIS2004-UTF8-H","UniJIS2004-UTF8-V","UniJISPro-UCS2-HW-V","UniJISPro-UCS2-V","UniJISPro-UTF8-V","UniJISX0213-UTF32-H","UniJISX0213-UTF32-V","UniJISX02132004-UTF32-H","UniJISX02132004-UTF32-V","UniKS-UCS2-H","UniKS-UCS2-V","UniKS-UTF16-H","UniKS-UTF16-V","UniKS-UTF32-H","UniKS-UTF32-V","UniKS-UTF8-H","UniKS-UTF8-V","V","WP-Symbol"],h=2**24-1;class CMap{constructor(e=!1){this.codespaceRanges=[[],[],[],[]];this.numCodespaceRanges=0;this._map=[];this.name="";this.vertical=!1;this.useCMap=null;this.builtInCMap=e}addCodespaceRange(e,t,a){this.codespaceRanges[e-1].push(t,a);this.numCodespaceRanges++}mapCidRange(e,t,a){if(t-e>h)throw new Error("mapCidRange - ignoring data above MAX_MAP_RANGE.");for(;e<=t;)this._map[e++]=a++}mapBfRange(e,t,a){if(t-e>h)throw new Error("mapBfRange - ignoring data above MAX_MAP_RANGE.");const r=a.length-1;for(;e<=t;){this._map[e++]=a;const t=a.charCodeAt(r)+1;t>255?a=a.substring(0,r-1)+String.fromCharCode(a.charCodeAt(r-1)+1)+"\0":a=a.substring(0,r)+String.fromCharCode(t)}}mapBfRangeToArray(e,t,a){if(t-e>h)throw new Error("mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.");const r=a.length;let n=0;for(;e<=t&&n>>0;const s=n[i];for(let e=0,t=s.length;e=t&&r<=n){a.charcode=r;a.length=i+1;return}}}a.charcode=0;a.length=1}getCharCodeLength(e){const t=this.codespaceRanges;for(let a=0,r=t.length;a=n&&e<=i)return a+1}}return 1}get length(){return this._map.length}get isIdentityCMap(){if("Identity-H"!==this.name&&"Identity-V"!==this.name)return!1;if(65536!==this._map.length)return!1;for(let e=0;e<65536;e++)if(this._map[e]!==e)return!1;return!0}}t.CMap=CMap;class IdentityCMap extends CMap{constructor(e,t){super();this.vertical=e;this.addCodespaceRange(t,0,65535)}mapCidRange(e,t,a){(0,r.unreachable)("should not call mapCidRange")}mapBfRange(e,t,a){(0,r.unreachable)("should not call mapBfRange")}mapBfRangeToArray(e,t,a){(0,r.unreachable)("should not call mapBfRangeToArray")}mapOne(e,t){(0,r.unreachable)("should not call mapCidOne")}lookup(e){return Number.isInteger(e)&&e<=65535?e:void 0}contains(e){return Number.isInteger(e)&&e<=65535}forEach(e){for(let t=0;t<=65535;t++)e(t,t)}charCodeOf(e){return Number.isInteger(e)&&e<=65535?e:-1}getMap(){const e=new Array(65536);for(let t=0;t<=65535;t++)e[t]=t;return e}get length(){return 65536}get isIdentityCMap(){(0,r.unreachable)("should not access .isIdentityCMap")}}t.IdentityCMap=IdentityCMap;const u=function BinaryCMapReaderClosure(){function hexToInt(e,t){let a=0;for(let r=0;r<=t;r++)a=a<<8|e[r];return a>>>0}function hexToStr(e,t){return 1===t?String.fromCharCode(e[0],e[1]):3===t?String.fromCharCode(e[0],e[1],e[2],e[3]):String.fromCharCode.apply(null,e.subarray(0,t+1))}function addHex(e,t,a){let r=0;for(let n=a;n>=0;n--){r+=e[n]+t[n];e[n]=255&r;r>>=8}}function incHex(e,t){let a=1;for(let r=t;r>=0&&a>0;r--){a+=e[r];e[r]=255&a;a>>=8}}const e=16;class BinaryCMapStream{constructor(e){this.buffer=e;this.pos=0;this.end=e.length;this.tmpBuf=new Uint8Array(19)}readByte(){return this.pos>=this.end?-1:this.buffer[this.pos++]}readNumber(){let e,t=0;do{const a=this.readByte();if(a<0)throw new r.FormatError("unexpected EOF in bcmap");e=!(128&a);t=t<<7|127&a}while(!e);return t}readSigned(){const e=this.readNumber();return 1&e?~(e>>>1):e>>>1}readHex(e,t){e.set(this.buffer.subarray(this.pos,this.pos+t+1));this.pos+=t+1}readHexNumber(e,t){let a;const n=this.tmpBuf;let i=0;do{const e=this.readByte();if(e<0)throw new r.FormatError("unexpected EOF in bcmap");a=!(128&e);n[i++]=127&e}while(!a);let s=t,o=0,c=0;for(;s>=0;){for(;c<8&&n.length>0;){o|=n[--i]<>=8;c-=8}}readHexSigned(e,t){this.readHexNumber(e,t);const a=1&e[t]?255:0;let r=0;for(let n=0;n<=t;n++){r=(1&r)<<8|e[n];e[n]=r>>1^a}}readString(){const e=this.readNumber();let t="";for(let a=0;a=0;){const t=f>>5;if(7===t){switch(31&f){case 0:n.readString();break;case 1:s=n.readString()}continue}const r=!!(16&f),i=15&f;if(i+1>e)throw new Error("BinaryCMapReader.process: Invalid dataSize.");const g=1,p=n.readNumber();switch(t){case 0:n.readHex(o,i);n.readHexNumber(c,i);addHex(c,o,i);a.addCodespaceRange(i+1,hexToInt(o,i),hexToInt(c,i));for(let e=1;e>>0}function expectString(e){if("string"!=typeof e)throw new r.FormatError("Malformed CMap: expected string.")}function expectInt(e){if(!Number.isInteger(e))throw new r.FormatError("Malformed CMap: expected int.")}function parseBfChar(e,t){for(;;){let a=t.getObj();if(a===n.EOF)break;if((0,n.isCmd)(a,"endbfchar"))return;expectString(a);const r=strToInt(a);a=t.getObj();expectString(a);const i=a;e.mapOne(r,i)}}function parseBfRange(e,t){for(;;){let a=t.getObj();if(a===n.EOF)break;if((0,n.isCmd)(a,"endbfrange"))return;expectString(a);const r=strToInt(a);a=t.getObj();expectString(a);const i=strToInt(a);a=t.getObj();if(Number.isInteger(a)||"string"==typeof a){const t=Number.isInteger(a)?String.fromCharCode(a):a;e.mapBfRange(r,i,t)}else{if(!(0,n.isCmd)(a,"["))break;{a=t.getObj();const s=[];for(;!(0,n.isCmd)(a,"]")&&a!==n.EOF;){s.push(a);a=t.getObj()}e.mapBfRangeToArray(r,i,s)}}}throw new r.FormatError("Invalid bf range.")}function parseCidChar(e,t){for(;;){let a=t.getObj();if(a===n.EOF)break;if((0,n.isCmd)(a,"endcidchar"))return;expectString(a);const r=strToInt(a);a=t.getObj();expectInt(a);const i=a;e.mapOne(r,i)}}function parseCidRange(e,t){for(;;){let a=t.getObj();if(a===n.EOF)break;if((0,n.isCmd)(a,"endcidrange"))return;expectString(a);const r=strToInt(a);a=t.getObj();expectString(a);const i=strToInt(a);a=t.getObj();expectInt(a);const s=a;e.mapCidRange(r,i,s)}}function parseCodespaceRange(e,t){for(;;){let a=t.getObj();if(a===n.EOF)break;if((0,n.isCmd)(a,"endcodespacerange"))return;if("string"!=typeof a)break;const r=strToInt(a);a=t.getObj();if("string"!=typeof a)break;const i=strToInt(a);e.addCodespaceRange(a.length,r,i)}throw new r.FormatError("Invalid codespace range.")}function parseWMode(e,t){const a=t.getObj();Number.isInteger(a)&&(e.vertical=!!a)}function parseCMapName(e,t){const a=t.getObj();a instanceof n.Name&&(e.name=a.name)}async function parseCMap(e,t,a,i){let s,c;e:for(;;)try{const a=t.getObj();if(a===n.EOF)break;if(a instanceof n.Name){"WMode"===a.name?parseWMode(e,t):"CMapName"===a.name&&parseCMapName(e,t);s=a}else if(a instanceof n.Cmd)switch(a.cmd){case"endcmap":break e;case"usecmap":s instanceof n.Name&&(c=s.name);break;case"begincodespacerange":parseCodespaceRange(e,t);break;case"beginbfchar":parseBfChar(e,t);break;case"begincidchar":parseCidChar(e,t);break;case"beginbfrange":parseBfRange(e,t);break;case"begincidrange":parseCidRange(e,t)}}catch(e){if(e instanceof o.MissingDataException)throw e;(0,r.warn)("Invalid cMap data: "+e);continue}!i&&c&&(i=c);return i?extendCMap(e,a,i):e}async function extendCMap(e,t,a){e.useCMap=await createBuiltInCMap(a,t);if(0===e.numCodespaceRanges){const t=e.useCMap.codespaceRanges;for(let a=0;aextendCMap(i,t,e)));if(n===r.CMapCompressionType.NONE){const e=new s.Lexer(new c.Stream(a));return parseCMap(i,e,t,null)}throw new Error("TODO: Only BINARY/NONE CMap compression is currently supported.")}return{async create(e){const t=e.encoding,a=e.fetchBuiltInCMap,r=e.useCMap;if(t instanceof n.Name)return createBuiltInCMap(t.name,a);if(t instanceof i.BaseStream){const e=await parseCMap(new CMap,new s.Lexer(t),a,r);return e.isIdentityCMap?createBuiltInCMap(e.name,a):e}throw new Error("Encoding required.")}}}();t.CMapFactory=d},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Parser=t.Linearization=t.Lexer=void 0;var r=a(2),n=a(5),i=a(8),s=a(28),o=a(30),c=a(31),l=a(33),h=a(34),u=a(37),d=a(39),f=a(41),g=a(10),p=a(42),m=a(43);function computeAdler32(e){const t=e.length;let a=1,r=0;for(let n=0;n>")&&this.buf1!==n.EOF;){if(!(this.buf1 instanceof n.Name)){(0,r.info)("Malformed dictionary: key must be a name object");this.shift();continue}const t=this.buf1.name;this.shift();if(this.buf1===n.EOF)break;s.set(t,this.getObj(e))}if(this.buf1===n.EOF){if(this.recoveryMode)return s;throw new i.ParserEOFException("End of file inside dictionary.")}if((0,n.isCmd)(this.buf2,"stream"))return this.allowStreams?this.makeStream(s,e):s;this.shift();return s;default:return t}if(Number.isInteger(t)){if(Number.isInteger(this.buf1)&&(0,n.isCmd)(this.buf2,"R")){const e=n.Ref.get(t,this.buf1);this.shift();this.shift();return e}return t}return"string"==typeof t&&e?e.decryptString(t):t}findDefaultInlineStreamEnd(e){const t=this.lexer,a=e.pos;let s,o,c=0;for(;-1!==(s=e.getByte());)if(0===c)c=69===s?1:0;else if(1===c)c=73===s?2:0;else{(0,r.assert)(2===c,"findDefaultInlineStreamEnd - invalid state.");if(32===s||10===s||13===s){o=e.pos;const a=e.peekBytes(10);for(let e=0,t=a.length;e127))){c=0;break}}if(2!==c)continue;if(t.knownCommands){const e=t.peekObj();e instanceof n.Cmd&&!t.knownCommands[e.cmd]&&(c=0)}else(0,r.warn)("findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.");if(2===c)break}else c=0}if(-1===s){(0,r.warn)("findDefaultInlineStreamEnd: Reached the end of the stream without finding a valid EI marker");if(o){(0,r.warn)('... trying to recover by using the last "EI" occurrence.');e.skip(-(e.pos-o))}}let l=4;e.skip(-l);s=e.peekByte();e.skip(l);(0,i.isWhiteSpace)(s)||l--;return e.pos-l-a}findDCTDecodeInlineStreamEnd(e){const t=e.pos;let a,n,i=!1;for(;-1!==(a=e.getByte());)if(255===a){switch(e.getByte()){case 0:break;case 255:e.skip(-1);break;case 217:i=!0;break;case 192:case 193:case 194:case 195:case 197:case 198:case 199:case 201:case 202:case 203:case 205:case 206:case 207:case 196:case 204:case 218:case 219:case 220:case 221:case 222:case 223:case 224:case 225:case 226:case 227:case 228:case 229:case 230:case 231:case 232:case 233:case 234:case 235:case 236:case 237:case 238:case 239:case 254:n=e.getUint16();n>2?e.skip(n-2):e.skip(-2)}if(i)break}const s=e.pos-t;if(-1===a){(0,r.warn)("Inline DCTDecode image stream: EOI marker not found, searching for /EI/ instead.");e.skip(-s);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return s}findASCII85DecodeInlineStreamEnd(e){const t=e.pos;let a;for(;-1!==(a=e.getByte());)if(126===a){const t=e.pos;a=e.peekByte();for(;(0,i.isWhiteSpace)(a);){e.skip();a=e.peekByte()}if(62===a){e.skip();break}if(e.pos>t){const t=e.peekBytes(2);if(69===t[0]&&73===t[1])break}}const n=e.pos-t;if(-1===a){(0,r.warn)("Inline ASCII85Decode image stream: EOD marker not found, searching for /EI/ instead.");e.skip(-n);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return n}findASCIIHexDecodeInlineStreamEnd(e){const t=e.pos;let a;for(;-1!==(a=e.getByte())&&62!==a;);const n=e.pos-t;if(-1===a){(0,r.warn)("Inline ASCIIHexDecode image stream: EOD marker not found, searching for /EI/ instead.");e.skip(-n);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return n}inlineStreamSkipEI(e){let t,a=0;for(;-1!==(t=e.getByte());)if(0===a)a=69===t?1:0;else if(1===a)a=73===t?2:0;else if(2===a)break}makeInlineImage(e){const t=this.lexer,a=t.stream,i=new n.Dict(this.xref);let s;for(;!(0,n.isCmd)(this.buf1,"ID")&&this.buf1!==n.EOF;){if(!(this.buf1 instanceof n.Name))throw new r.FormatError("Dictionary key must be a name object");const t=this.buf1.name;this.shift();if(this.buf1===n.EOF)break;i.set(t,this.getObj(e))}-1!==t.beginInlineImagePos&&(s=a.pos-t.beginInlineImagePos);const o=i.get("F","Filter");let c;if(o instanceof n.Name)c=o.name;else if(Array.isArray(o)){const e=this.xref.fetchIfRef(o[0]);e instanceof n.Name&&(c=e.name)}const l=a.pos;let h;switch(c){case"DCT":case"DCTDecode":h=this.findDCTDecodeInlineStreamEnd(a);break;case"A85":case"ASCII85Decode":h=this.findASCII85DecodeInlineStreamEnd(a);break;case"AHx":case"ASCIIHexDecode":h=this.findASCIIHexDecodeInlineStreamEnd(a);break;default:h=this.findDefaultInlineStreamEnd(a)}let u,d=a.makeSubStream(l,h,i);if(h<1e3&&s<5552){const e=d.getBytes();d.reset();const r=a.pos;a.pos=t.beginInlineImagePos;const i=a.getBytes(s);a.pos=r;u=computeAdler32(e)+"_"+computeAdler32(i);const o=this.imageCache[u];if(void 0!==o){this.buf2=n.Cmd.get("EI");this.shift();o.reset();return o}}e&&(d=e.createStream(d,h));d=this.filter(d,i,h);d.dict=i;if(void 0!==u){d.cacheKey=`inline_${h}_${u}`;this.imageCache[u]=d}this.buf2=n.Cmd.get("EI");this.shift();return d}_findStreamLength(e,t){const{stream:a}=this.lexer;a.pos=e;const r=t.length;for(;a.pos=r){a.pos+=s;return a.pos-e}s++}a.pos+=i}return-1}makeStream(e,t){const a=this.lexer;let s=a.stream;a.skipToNextLine();const o=s.pos-1;let c=e.get("Length");if(!Number.isInteger(c)){(0,r.info)(`Bad length "${c&&c.toString()}" in stream.`);c=0}s.pos=o+c;a.nextChar();if(this.tryShift()&&(0,n.isCmd)(this.buf2,"endstream"))this.shift();else{const e=new Uint8Array([101,110,100,115,116,114,101,97,109]);let t=this._findStreamLength(o,e);if(t<0){const a=1;for(let n=1;n<=a;n++){const a=e.length-n,c=e.slice(0,a),l=this._findStreamLength(o,c);if(l>=0){const e=s.peekBytes(a+1)[a];if(!(0,i.isWhiteSpace)(e))break;(0,r.info)(`Found "${(0,r.bytesToString)(c)}" when searching for endstream command.`);t=l;break}}if(t<0)throw new r.FormatError("Missing endstream command.")}c=t;a.nextChar();this.shift();this.shift()}this.shift();s=s.makeSubStream(o,c,e);t&&(s=t.createStream(s,c));s=this.filter(s,e,c);s.dict=e;return s}filter(e,t,a){let i=t.get("F","Filter"),s=t.get("DP","DecodeParms");if(i instanceof n.Name){Array.isArray(s)&&(0,r.warn)("/DecodeParms should not be an Array, when /Filter is a Name.");return this.makeFilter(e,i.name,a,s)}let o=a;if(Array.isArray(i)){const t=i,a=s;for(let c=0,l=t.length;c=48&&e<=57?15&e:e>=65&&e<=70||e>=97&&e<=102?9+(15&e):-1}class Lexer{constructor(e,t=null){this.stream=e;this.nextChar();this.strBuf=[];this.knownCommands=t;this._hexStringNumWarn=0;this.beginInlineImagePos=-1}nextChar(){return this.currentChar=this.stream.getByte()}peekChar(){return this.stream.peekByte()}getNumber(){let e=this.currentChar,t=!1,a=0,n=0;if(45===e){n=-1;e=this.nextChar();45===e&&(e=this.nextChar())}else if(43===e){n=1;e=this.nextChar()}if(10===e||13===e)do{e=this.nextChar()}while(10===e||13===e);if(46===e){a=10;e=this.nextChar()}if(e<48||e>57){if((0,i.isWhiteSpace)(e)||-1===e){if(10===a&&0===n){(0,r.warn)("Lexer.getNumber - treating a single decimal point as zero.");return 0}if(0===a&&-1===n){(0,r.warn)("Lexer.getNumber - treating a single minus sign as zero.");return 0}}throw new r.FormatError(`Invalid number: ${String.fromCharCode(e)} (charCode ${e})`)}n=n||1;let s=e-48,o=0,c=1;for(;(e=this.nextChar())>=0;)if(e>=48&&e<=57){const r=e-48;if(t)o=10*o+r;else{0!==a&&(a*=10);s=10*s+r}}else if(46===e){if(0!==a)break;a=1}else if(45===e)(0,r.warn)("Badly formatted number: minus sign in the middle");else{if(69!==e&&101!==e)break;e=this.peekChar();if(43===e||45===e){c=45===e?-1:1;this.nextChar()}else if(e<48||e>57)break;t=!0}0!==a&&(s/=a);t&&(s*=10**(c*o));return n*s}getString(){let e=1,t=!1;const a=this.strBuf;a.length=0;let n=this.nextChar();for(;;){let i=!1;switch(0|n){case-1:(0,r.warn)("Unterminated string");t=!0;break;case 40:++e;a.push("(");break;case 41:if(0==--e){this.nextChar();t=!0}else a.push(")");break;case 92:n=this.nextChar();switch(n){case-1:(0,r.warn)("Unterminated string");t=!0;break;case 110:a.push("\n");break;case 114:a.push("\r");break;case 116:a.push("\t");break;case 98:a.push("\b");break;case 102:a.push("\f");break;case 92:case 40:case 41:a.push(String.fromCharCode(n));break;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:let e=15&n;n=this.nextChar();i=!0;if(n>=48&&n<=55){e=(e<<3)+(15&n);n=this.nextChar();if(n>=48&&n<=55){i=!1;e=(e<<3)+(15&n)}}a.push(String.fromCharCode(e));break;case 13:10===this.peekChar()&&this.nextChar();break;case 10:break;default:a.push(String.fromCharCode(n))}break;default:a.push(String.fromCharCode(n))}if(t)break;i||(n=this.nextChar())}return a.join("")}getName(){let e,t;const a=this.strBuf;a.length=0;for(;(e=this.nextChar())>=0&&!b[e];)if(35===e){e=this.nextChar();if(b[e]){(0,r.warn)("Lexer_getName: NUMBER SIGN (#) should be followed by a hexadecimal number.");a.push("#");break}const n=toHexDigit(e);if(-1!==n){t=e;e=this.nextChar();const i=toHexDigit(e);if(-1===i){(0,r.warn)(`Lexer_getName: Illegal digit (${String.fromCharCode(e)}) in hexadecimal number.`);a.push("#",String.fromCharCode(t));if(b[e])break;a.push(String.fromCharCode(e));continue}a.push(String.fromCharCode(n<<4|i))}else a.push("#",String.fromCharCode(e))}else a.push(String.fromCharCode(e));a.length>127&&(0,r.warn)(`Name token is longer than allowed by the spec: ${a.length}`);return n.Name.get(a.join(""))}_hexStringWarn(e){5!=this._hexStringNumWarn++?this._hexStringNumWarn>5||(0,r.warn)(`getHexString - ignoring invalid character: ${e}`):(0,r.warn)("getHexString - ignoring additional invalid characters.")}getHexString(){const e=this.strBuf;e.length=0;let t,a,n=this.currentChar,i=!0;this._hexStringNumWarn=0;for(;;){if(n<0){(0,r.warn)("Unterminated hex string");break}if(62===n){this.nextChar();break}if(1!==b[n]){if(i){t=toHexDigit(n);if(-1===t){this._hexStringWarn(n);n=this.nextChar();continue}}else{a=toHexDigit(n);if(-1===a){this._hexStringWarn(n);n=this.nextChar();continue}e.push(String.fromCharCode(t<<4|a))}i=!i;n=this.nextChar()}else n=this.nextChar()}return e.join("")}getObj(){let e=!1,t=this.currentChar;for(;;){if(t<0)return n.EOF;if(e)10!==t&&13!==t||(e=!1);else if(37===t)e=!0;else if(1!==b[t])break;t=this.nextChar()}switch(0|t){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return this.getNumber();case 40:return this.getString();case 47:return this.getName();case 91:this.nextChar();return n.Cmd.get("[");case 93:this.nextChar();return n.Cmd.get("]");case 60:t=this.nextChar();if(60===t){this.nextChar();return n.Cmd.get("<<")}return this.getHexString();case 62:t=this.nextChar();if(62===t){this.nextChar();return n.Cmd.get(">>")}return n.Cmd.get(">");case 123:this.nextChar();return n.Cmd.get("{");case 125:this.nextChar();return n.Cmd.get("}");case 41:this.nextChar();throw new r.FormatError(`Illegal character: ${t}`)}let a=String.fromCharCode(t);if(t<32||t>127){const e=this.peekChar();if(e>=32&&e<=127){this.nextChar();return n.Cmd.get(a)}}const i=this.knownCommands;let s=i&&void 0!==i[a];for(;(t=this.nextChar())>=0&&!b[t];){const e=a+String.fromCharCode(t);if(s&&void 0===i[e])break;if(128===a.length)throw new r.FormatError(`Command token too long: ${a.length}`);a=e;s=i&&void 0!==i[a]}if("true"===a)return!0;if("false"===a)return!1;if("null"===a)return null;"BI"===a&&(this.beginInlineImagePos=this.stream.pos);return n.Cmd.get(a)}peekObj(){const e=this.stream.pos,t=this.currentChar,a=this.beginInlineImagePos;let n;try{n=this.getObj()}catch(e){if(e instanceof i.MissingDataException)throw e;(0,r.warn)(`peekObj: ${e}`)}this.stream.pos=e;this.currentChar=t;this.beginInlineImagePos=a;return n}skipToNextLine(){let e=this.currentChar;for(;e>=0;){if(13===e){e=this.nextChar();10===e&&this.nextChar();break}if(10===e){this.nextChar();break}e=this.nextChar()}}}t.Lexer=Lexer;t.Linearization=class Linearization{static create(e){function getInt(e,t,a=!1){const r=e.get(t);if(Number.isInteger(r)&&(a?r>=0:r>0))return r;throw new Error(`The "${t}" parameter in the linearization dictionary is invalid.`)}const t=new Parser({lexer:new Lexer(e),xref:null}),a=t.getObj(),r=t.getObj(),i=t.getObj(),s=t.getObj();let o,c;if(!(Number.isInteger(a)&&Number.isInteger(r)&&(0,n.isCmd)(i,"obj")&&s instanceof n.Dict&&"number"==typeof(o=s.get("Linearized"))&&o>0))return null;if((c=getInt(s,"L"))!==e.length)throw new Error('The "L" parameter in the linearization dictionary does not equal the stream length.');return{length:c,hints:function getHints(e){const t=e.get("H");let a;if(Array.isArray(t)&&(2===(a=t.length)||4===a)){for(let e=0;e0))throw new Error(`Hint (${e}) in the linearization dictionary is invalid.`)}return t}throw new Error("Hint array in the linearization dictionary is invalid.")}(s),objectNumberFirst:getInt(s,"O"),endFirst:getInt(s,"E"),numPages:getInt(s,"N"),mainXRefEntriesOffset:getInt(s,"T"),pageFirst:s.has("P")?getInt(s,"P",!0):0}}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Ascii85Stream=void 0;var r=a(29),n=a(8);class Ascii85Stream extends r.DecodeStream{constructor(e,t){t&&(t*=.8);super(t);this.str=e;this.dict=e.dict;this.input=new Uint8Array(5)}readBlock(){const e=this.str;let t=e.getByte();for(;(0,n.isWhiteSpace)(t);)t=e.getByte();if(-1===t||126===t){this.eof=!0;return}const a=this.bufferLength;let r,i;if(122===t){r=this.ensureBuffer(a+4);for(i=0;i<4;++i)r[a+i]=0;this.bufferLength+=4}else{const s=this.input;s[0]=t;for(i=1;i<5;++i){t=e.getByte();for(;(0,n.isWhiteSpace)(t);)t=e.getByte();s[i]=t;if(-1===t||126===t)break}r=this.ensureBuffer(a+i-1);this.bufferLength+=i-1;if(i<5){for(;i<5;++i)s[i]=117;this.eof=!0}let o=0;for(i=0;i<5;++i)o=85*o+(s[i]-33);for(i=3;i>=0;--i){r[a+i]=255&o;o>>=8}}}}t.Ascii85Stream=Ascii85Stream},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.StreamsSequenceStream=t.DecodeStream=void 0;var r=a(9),n=a(10);const i=new Uint8Array(0);class DecodeStream extends r.BaseStream{constructor(e){super();this._rawMinBufferLength=e||0;this.pos=0;this.bufferLength=0;this.eof=!1;this.buffer=i;this.minBufferLength=512;if(e)for(;this.minBufferLengthr&&(a=r)}else{for(;!this.eof;)this.readBlock();a=this.bufferLength}this.pos=a;return this.buffer.subarray(t,a)}reset(){this.pos=0}makeSubStream(e,t,a=null){if(void 0===t)for(;!this.eof;)this.readBlock();else{const a=e+t;for(;this.bufferLength<=a&&!this.eof;)this.readBlock()}return new n.Stream(this.buffer,e,t,a)}getBaseStreams(){return this.str?this.str.getBaseStreams():null}}t.DecodeStream=DecodeStream;t.StreamsSequenceStream=class StreamsSequenceStream extends DecodeStream{constructor(e,t=null){let a=0;for(const t of e)a+=t instanceof DecodeStream?t._rawMinBufferLength:t.length;super(a);this.streams=e;this._onError=t}readBlock(){const e=this.streams;if(0===e.length){this.eof=!0;return}const t=e.shift();let a;try{a=t.getBytes()}catch(e){if(this._onError){this._onError(e,t.dict&&t.dict.objId);return}throw e}const r=this.bufferLength,n=r+a.length;this.ensureBuffer(n).set(a,r);this.bufferLength=n}getBaseStreams(){const e=[];for(const t of this.streams){const a=t.getBaseStreams();a&&e.push(...a)}return e.length>0?e:null}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.AsciiHexStream=void 0;var r=a(29);class AsciiHexStream extends r.DecodeStream{constructor(e,t){t&&(t*=.5);super(t);this.str=e;this.dict=e.dict;this.firstDigit=-1}readBlock(){const e=this.str.getBytes(8e3);if(!e.length){this.eof=!0;return}const t=e.length+1>>1,a=this.ensureBuffer(this.bufferLength+t);let r=this.bufferLength,n=this.firstDigit;for(const t of e){let e;if(t>=48&&t<=57)e=15&t;else{if(!(t>=65&&t<=70||t>=97&&t<=102)){if(62===t){this.eof=!0;break}continue}e=9+(15&t)}if(n<0)n=e;else{a[r++]=n<<4|e;n=-1}}if(n>=0&&this.eof){a[r++]=n<<4;n=-1}this.firstDigit=n;this.bufferLength=r}}t.AsciiHexStream=AsciiHexStream},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.CCITTFaxStream=void 0;var r=a(32),n=a(29),i=a(5);class CCITTFaxStream extends n.DecodeStream{constructor(e,t,a){super(t);this.str=e;this.dict=e.dict;a instanceof i.Dict||(a=i.Dict.empty);const n={next:()=>e.getByte()};this.ccittFaxDecoder=new r.CCITTFaxDecoder(n,{K:a.get("K"),EndOfLine:a.get("EndOfLine"),EncodedByteAlign:a.get("EncodedByteAlign"),Columns:a.get("Columns"),Rows:a.get("Rows"),EndOfBlock:a.get("EndOfBlock"),BlackIs1:a.get("BlackIs1")})}readBlock(){for(;!this.eof;){const e=this.ccittFaxDecoder.readNextChar();if(-1===e){this.eof=!0;return}this.ensureBuffer(this.bufferLength+1);this.buffer[this.bufferLength++]=e}}}t.CCITTFaxStream=CCITTFaxStream},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.CCITTFaxDecoder=void 0;var r=a(2);const n=-1,i=[[-1,-1],[-1,-1],[7,8],[7,7],[6,6],[6,6],[6,5],[6,5],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2]],s=[[-1,-1],[12,-2],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[12,1984],[12,2048],[12,2112],[12,2176],[12,2240],[12,2304],[11,1856],[11,1856],[11,1920],[11,1920],[12,2368],[12,2432],[12,2496],[12,2560]],o=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[8,29],[8,29],[8,30],[8,30],[8,45],[8,45],[8,46],[8,46],[7,22],[7,22],[7,22],[7,22],[7,23],[7,23],[7,23],[7,23],[8,47],[8,47],[8,48],[8,48],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[7,20],[7,20],[7,20],[7,20],[8,33],[8,33],[8,34],[8,34],[8,35],[8,35],[8,36],[8,36],[8,37],[8,37],[8,38],[8,38],[7,19],[7,19],[7,19],[7,19],[8,31],[8,31],[8,32],[8,32],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[8,53],[8,53],[8,54],[8,54],[7,26],[7,26],[7,26],[7,26],[8,39],[8,39],[8,40],[8,40],[8,41],[8,41],[8,42],[8,42],[8,43],[8,43],[8,44],[8,44],[7,21],[7,21],[7,21],[7,21],[7,28],[7,28],[7,28],[7,28],[8,61],[8,61],[8,62],[8,62],[8,63],[8,63],[8,0],[8,0],[8,320],[8,320],[8,384],[8,384],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[7,27],[7,27],[7,27],[7,27],[8,59],[8,59],[8,60],[8,60],[9,1472],[9,1536],[9,1600],[9,1728],[7,18],[7,18],[7,18],[7,18],[7,24],[7,24],[7,24],[7,24],[8,49],[8,49],[8,50],[8,50],[8,51],[8,51],[8,52],[8,52],[7,25],[7,25],[7,25],[7,25],[8,55],[8,55],[8,56],[8,56],[8,57],[8,57],[8,58],[8,58],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[8,448],[8,448],[8,512],[8,512],[9,704],[9,768],[8,640],[8,640],[8,576],[8,576],[9,832],[9,896],[9,960],[9,1024],[9,1088],[9,1152],[9,1216],[9,1280],[9,1344],[9,1408],[7,256],[7,256],[7,256],[7,256],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7]],c=[[-1,-1],[-1,-1],[12,-2],[12,-2],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[11,1792],[11,1792],[12,1984],[12,1984],[12,2048],[12,2048],[12,2112],[12,2112],[12,2176],[12,2176],[12,2240],[12,2240],[12,2304],[12,2304],[11,1856],[11,1856],[11,1856],[11,1856],[11,1920],[11,1920],[11,1920],[11,1920],[12,2368],[12,2368],[12,2432],[12,2432],[12,2496],[12,2496],[12,2560],[12,2560],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[12,52],[12,52],[13,640],[13,704],[13,768],[13,832],[12,55],[12,55],[12,56],[12,56],[13,1280],[13,1344],[13,1408],[13,1472],[12,59],[12,59],[12,60],[12,60],[13,1536],[13,1600],[11,24],[11,24],[11,24],[11,24],[11,25],[11,25],[11,25],[11,25],[13,1664],[13,1728],[12,320],[12,320],[12,384],[12,384],[12,448],[12,448],[13,512],[13,576],[12,53],[12,53],[12,54],[12,54],[13,896],[13,960],[13,1024],[13,1088],[13,1152],[13,1216],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64]],l=[[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[11,23],[11,23],[12,50],[12,51],[12,44],[12,45],[12,46],[12,47],[12,57],[12,58],[12,61],[12,256],[10,16],[10,16],[10,16],[10,16],[10,17],[10,17],[10,17],[10,17],[12,48],[12,49],[12,62],[12,63],[12,30],[12,31],[12,32],[12,33],[12,40],[12,41],[11,22],[11,22],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[12,128],[12,192],[12,26],[12,27],[12,28],[12,29],[11,19],[11,19],[11,20],[11,20],[12,34],[12,35],[12,36],[12,37],[12,38],[12,39],[11,21],[11,21],[12,42],[12,43],[10,0],[10,0],[10,0],[10,0],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12]],h=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[6,9],[6,8],[5,7],[5,7],[4,6],[4,6],[4,6],[4,6],[4,5],[4,5],[4,5],[4,5],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2]];t.CCITTFaxDecoder=class CCITTFaxDecoder{constructor(e,t={}){if(!e||"function"!=typeof e.next)throw new Error('CCITTFaxDecoder - invalid "source" parameter.');this.source=e;this.eof=!1;this.encoding=t.K||0;this.eoline=t.EndOfLine||!1;this.byteAlign=t.EncodedByteAlign||!1;this.columns=t.Columns||1728;this.rows=t.Rows||0;let a,r=t.EndOfBlock;null==r&&(r=!0);this.eoblock=r;this.black=t.BlackIs1||!1;this.codingLine=new Uint32Array(this.columns+1);this.refLine=new Uint32Array(this.columns+2);this.codingLine[0]=this.columns;this.codingPos=0;this.row=0;this.nextLine2D=this.encoding<0;this.inputBits=0;this.inputBuf=0;this.outputBits=0;this.rowsDone=!1;for(;0===(a=this._lookBits(12));)this._eatBits(1);1===a&&this._eatBits(12);if(this.encoding>0){this.nextLine2D=!this._lookBits(1);this._eatBits(1)}}readNextChar(){if(this.eof)return-1;const e=this.refLine,t=this.codingLine,a=this.columns;let i,s,o,c,l;if(0===this.outputBits){this.rowsDone&&(this.eof=!0);if(this.eof)return-1;this.err=!1;let o,l,h;if(this.nextLine2D){for(c=0;t[c]=64);do{l+=h=this._getWhiteCode()}while(h>=64)}else{do{o+=h=this._getWhiteCode()}while(h>=64);do{l+=h=this._getBlackCode()}while(h>=64)}this._addPixels(t[this.codingPos]+o,s);t[this.codingPos]0?--i:++i;for(;e[i]<=t[this.codingPos]&&e[i]0?--i:++i;for(;e[i]<=t[this.codingPos]&&e[i]0?--i:++i;for(;e[i]<=t[this.codingPos]&&e[i]=64);else do{o+=h=this._getWhiteCode()}while(h>=64);this._addPixels(t[this.codingPos]+o,s);s^=1}}let u=!1;this.byteAlign&&(this.inputBits&=-8);if(this.eoblock||this.row!==this.rows-1){o=this._lookBits(12);if(this.eoline)for(;o!==n&&1!==o;){this._eatBits(1);o=this._lookBits(12)}else for(;0===o;){this._eatBits(1);o=this._lookBits(12)}if(1===o){this._eatBits(12);u=!0}else o===n&&(this.eof=!0)}else this.rowsDone=!0;if(!this.eof&&this.encoding>0&&!this.rowsDone){this.nextLine2D=!this._lookBits(1);this._eatBits(1)}if(this.eoblock&&u&&this.byteAlign){o=this._lookBits(12);if(1===o){this._eatBits(12);if(this.encoding>0){this._lookBits(1);this._eatBits(1)}if(this.encoding>=0)for(c=0;c<4;++c){o=this._lookBits(12);1!==o&&(0,r.info)("bad rtc code: "+o);this._eatBits(12);if(this.encoding>0){this._lookBits(1);this._eatBits(1)}}this.eof=!0}}else if(this.err&&this.eoline){for(;;){o=this._lookBits(13);if(o===n){this.eof=!0;return-1}if(o>>1==1)break;this._eatBits(1)}this._eatBits(12);if(this.encoding>0){this._eatBits(1);this.nextLine2D=!(1&o)}}t[0]>0?this.outputBits=t[this.codingPos=0]:this.outputBits=t[this.codingPos=1];this.row++}if(this.outputBits>=8){l=1&this.codingPos?0:255;this.outputBits-=8;if(0===this.outputBits&&t[this.codingPos]o){l<<=o;1&this.codingPos||(l|=255>>8-o);this.outputBits-=o;o=0}else{l<<=this.outputBits;1&this.codingPos||(l|=255>>8-this.outputBits);o-=this.outputBits;this.outputBits=0;if(t[this.codingPos]0){l<<=o;o=0}}}while(o)}this.black&&(l^=255);return l}_addPixels(e,t){const a=this.codingLine;let n=this.codingPos;if(e>a[n]){if(e>this.columns){(0,r.info)("row is wrong length");this.err=!0;e=this.columns}1&n^t&&++n;a[n]=e}this.codingPos=n}_addPixelsNeg(e,t){const a=this.codingLine;let n=this.codingPos;if(e>a[n]){if(e>this.columns){(0,r.info)("row is wrong length");this.err=!0;e=this.columns}1&n^t&&++n;a[n]=e}else if(e0&&e=i){const t=a[e-i];if(t[0]===r){this._eatBits(r);return[!0,t[1],!0]}}}return[!1,0,!1]}_getTwoDimCode(){let e,t=0;if(this.eoblock){t=this._lookBits(7);e=i[t];if(e&&e[0]>0){this._eatBits(e[0]);return e[1]}}else{const e=this._findTableCode(1,7,i);if(e[0]&&e[2])return e[1]}(0,r.info)("Bad two dim code");return n}_getWhiteCode(){let e,t=0;if(this.eoblock){t=this._lookBits(12);if(t===n)return 1;e=t>>5==0?s[t]:o[t>>3];if(e[0]>0){this._eatBits(e[0]);return e[1]}}else{let e=this._findTableCode(1,9,o);if(e[0])return e[1];e=this._findTableCode(11,12,s);if(e[0])return e[1]}(0,r.info)("bad white code");this._eatBits(1);return 1}_getBlackCode(){let e,t;if(this.eoblock){e=this._lookBits(13);if(e===n)return 1;t=e>>7==0?c[e]:e>>9==0&&e>>7!=0?l[(e>>1)-64]:h[e>>7];if(t[0]>0){this._eatBits(t[0]);return t[1]}}else{let e=this._findTableCode(2,6,h);if(e[0])return e[1];e=this._findTableCode(7,12,l,64);if(e[0])return e[1];e=this._findTableCode(10,13,c);if(e[0])return e[1]}(0,r.info)("bad black code");this._eatBits(1);return 1}_lookBits(e){let t;for(;this.inputBits>16-e;this.inputBuf=this.inputBuf<<8|t;this.inputBits+=8}return this.inputBuf>>this.inputBits-e&65535>>16-e}_eatBits(e){(this.inputBits-=e)<0&&(this.inputBits=0)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.FlateStream=void 0;var r=a(29),n=a(2);const i=new Int32Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),s=new Int32Array([3,4,5,6,7,8,9,10,65547,65549,65551,65553,131091,131095,131099,131103,196643,196651,196659,196667,262211,262227,262243,262259,327811,327843,327875,327907,258,258,258]),o=new Int32Array([1,2,3,4,65541,65543,131081,131085,196625,196633,262177,262193,327745,327777,393345,393409,459009,459137,524801,525057,590849,591361,657409,658433,724993,727041,794625,798721,868353,876545]),c=[new Int32Array([459008,524368,524304,524568,459024,524400,524336,590016,459016,524384,524320,589984,524288,524416,524352,590048,459012,524376,524312,589968,459028,524408,524344,590032,459020,524392,524328,59e4,524296,524424,524360,590064,459010,524372,524308,524572,459026,524404,524340,590024,459018,524388,524324,589992,524292,524420,524356,590056,459014,524380,524316,589976,459030,524412,524348,590040,459022,524396,524332,590008,524300,524428,524364,590072,459009,524370,524306,524570,459025,524402,524338,590020,459017,524386,524322,589988,524290,524418,524354,590052,459013,524378,524314,589972,459029,524410,524346,590036,459021,524394,524330,590004,524298,524426,524362,590068,459011,524374,524310,524574,459027,524406,524342,590028,459019,524390,524326,589996,524294,524422,524358,590060,459015,524382,524318,589980,459031,524414,524350,590044,459023,524398,524334,590012,524302,524430,524366,590076,459008,524369,524305,524569,459024,524401,524337,590018,459016,524385,524321,589986,524289,524417,524353,590050,459012,524377,524313,589970,459028,524409,524345,590034,459020,524393,524329,590002,524297,524425,524361,590066,459010,524373,524309,524573,459026,524405,524341,590026,459018,524389,524325,589994,524293,524421,524357,590058,459014,524381,524317,589978,459030,524413,524349,590042,459022,524397,524333,590010,524301,524429,524365,590074,459009,524371,524307,524571,459025,524403,524339,590022,459017,524387,524323,589990,524291,524419,524355,590054,459013,524379,524315,589974,459029,524411,524347,590038,459021,524395,524331,590006,524299,524427,524363,590070,459011,524375,524311,524575,459027,524407,524343,590030,459019,524391,524327,589998,524295,524423,524359,590062,459015,524383,524319,589982,459031,524415,524351,590046,459023,524399,524335,590014,524303,524431,524367,590078,459008,524368,524304,524568,459024,524400,524336,590017,459016,524384,524320,589985,524288,524416,524352,590049,459012,524376,524312,589969,459028,524408,524344,590033,459020,524392,524328,590001,524296,524424,524360,590065,459010,524372,524308,524572,459026,524404,524340,590025,459018,524388,524324,589993,524292,524420,524356,590057,459014,524380,524316,589977,459030,524412,524348,590041,459022,524396,524332,590009,524300,524428,524364,590073,459009,524370,524306,524570,459025,524402,524338,590021,459017,524386,524322,589989,524290,524418,524354,590053,459013,524378,524314,589973,459029,524410,524346,590037,459021,524394,524330,590005,524298,524426,524362,590069,459011,524374,524310,524574,459027,524406,524342,590029,459019,524390,524326,589997,524294,524422,524358,590061,459015,524382,524318,589981,459031,524414,524350,590045,459023,524398,524334,590013,524302,524430,524366,590077,459008,524369,524305,524569,459024,524401,524337,590019,459016,524385,524321,589987,524289,524417,524353,590051,459012,524377,524313,589971,459028,524409,524345,590035,459020,524393,524329,590003,524297,524425,524361,590067,459010,524373,524309,524573,459026,524405,524341,590027,459018,524389,524325,589995,524293,524421,524357,590059,459014,524381,524317,589979,459030,524413,524349,590043,459022,524397,524333,590011,524301,524429,524365,590075,459009,524371,524307,524571,459025,524403,524339,590023,459017,524387,524323,589991,524291,524419,524355,590055,459013,524379,524315,589975,459029,524411,524347,590039,459021,524395,524331,590007,524299,524427,524363,590071,459011,524375,524311,524575,459027,524407,524343,590031,459019,524391,524327,589999,524295,524423,524359,590063,459015,524383,524319,589983,459031,524415,524351,590047,459023,524399,524335,590015,524303,524431,524367,590079]),9],l=[new Int32Array([327680,327696,327688,327704,327684,327700,327692,327708,327682,327698,327690,327706,327686,327702,327694,0,327681,327697,327689,327705,327685,327701,327693,327709,327683,327699,327691,327707,327687,327703,327695,0]),5];class FlateStream extends r.DecodeStream{constructor(e,t){super(t);this.str=e;this.dict=e.dict;const a=e.getByte(),r=e.getByte();if(-1===a||-1===r)throw new n.FormatError(`Invalid header in flate stream: ${a}, ${r}`);if(8!=(15&a))throw new n.FormatError(`Unknown compression method in flate stream: ${a}, ${r}`);if(((a<<8)+r)%31!=0)throw new n.FormatError(`Bad FCHECK in flate stream: ${a}, ${r}`);if(32&r)throw new n.FormatError(`FDICT bit set in flate stream: ${a}, ${r}`);this.codeSize=0;this.codeBuf=0}getBits(e){const t=this.str;let a,r=this.codeSize,i=this.codeBuf;for(;r>e;this.codeSize=r-=e;return a}getCode(e){const t=this.str,a=e[0],r=e[1];let i,s=this.codeSize,o=this.codeBuf;for(;s>16,h=65535&c;if(l<1||s>l;this.codeSize=s-l;return h}generateHuffmanTable(e){const t=e.length;let a,r=0;for(a=0;ar&&(r=e[a]);const n=1<>=1}for(a=e;a>=1;if(0===u){let t;if(-1===(t=a.getByte()))throw new n.FormatError("Bad block header in flate stream");let r=t;if(-1===(t=a.getByte()))throw new n.FormatError("Bad block header in flate stream");r|=t<<8;if(-1===(t=a.getByte()))throw new n.FormatError("Bad block header in flate stream");let i=t;if(-1===(t=a.getByte()))throw new n.FormatError("Bad block header in flate stream");i|=t<<8;if(i!==(65535&~r)&&(0!==r||0!==i))throw new n.FormatError("Bad uncompressed block length in flate stream");this.codeBuf=0;this.codeSize=0;const s=this.bufferLength,o=s+r;e=this.ensureBuffer(o);this.bufferLength=o;if(0===r)-1===a.peekByte()&&(this.eof=!0);else{const t=a.getBytes(r);e.set(t,s);t.length0;)u[o++]=g}r=this.generateHuffmanTable(u.subarray(0,e));h=this.generateHuffmanTable(u.subarray(e,l))}}e=this.buffer;let d=e?e.length:0,f=this.bufferLength;for(;;){let a=this.getCode(r);if(a<256){if(f+1>=d){e=this.ensureBuffer(f+1);d=e.length}e[f++]=a;continue}if(256===a){this.bufferLength=f;return}a-=257;a=s[a];let n=a>>16;n>0&&(n=this.getBits(n));t=(65535&a)+n;a=this.getCode(h);a=o[a];n=a>>16;n>0&&(n=this.getBits(n));const i=(65535&a)+n;if(f+t>=d){e=this.ensureBuffer(f+t);d=e.length}for(let a=0;a{Object.defineProperty(t,"__esModule",{value:!0});t.Jbig2Stream=void 0;var r=a(9),n=a(29),i=a(5),s=a(35),o=a(2);class Jbig2Stream extends n.DecodeStream{constructor(e,t,a){super(t);this.stream=e;this.dict=e.dict;this.maybeLength=t;this.params=a}get bytes(){return(0,o.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength))}ensureBuffer(e){}readBlock(){if(this.eof)return;const e=new s.Jbig2Image,t=[];if(this.params instanceof i.Dict){const e=this.params.get("JBIG2Globals");if(e instanceof r.BaseStream){const a=e.getBytes();t.push({data:a,start:0,end:a.length})}}t.push({data:this.bytes,start:0,end:this.bytes.length});const a=e.parseChunks(t),n=a.length;for(let e=0;e{Object.defineProperty(t,"__esModule",{value:!0});t.Jbig2Image=void 0;var r=a(2),n=a(8),i=a(36),s=a(32);class Jbig2Error extends r.BaseException{constructor(e){super(`JBIG2 error: ${e}`,"Jbig2Error")}}class ContextCache{getContexts(e){return e in this?this[e]:this[e]=new Int8Array(65536)}}class DecodingContext{constructor(e,t,a){this.data=e;this.start=t;this.end=a}get decoder(){const e=new i.ArithmeticDecoder(this.data,this.start,this.end);return(0,r.shadow)(this,"decoder",e)}get contextCache(){const e=new ContextCache;return(0,r.shadow)(this,"contextCache",e)}}function decodeInteger(e,t,a){const r=e.getContexts(t);let n=1;function readBits(e){let t=0;for(let i=0;i>>0}const i=readBits(1),s=readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(32)+4436:readBits(12)+340:readBits(8)+84:readBits(6)+20:readBits(4)+4:readBits(2);return 0===i?s:s>0?-s:null}function decodeIAID(e,t,a){const r=e.getContexts("IAID");let n=1;for(let e=0;e=O&&j=T){q=q<<1&y;for(b=0;b=0&&$=0){U=N[_][$];U&&(q|=U<=e?l<<=1:l=l<<1|C[o][c]}for(p=0;p=x||c<0||c>=S?l<<=1:l=l<<1|r[o][c]}const h=v.readBit(F,l);t[s]=h}}return C}function decodeTextRegion(e,t,a,r,n,i,s,o,c,l,h,u,d,f,g,p,m,b,y){if(e&&t)throw new Jbig2Error("refinement with Huffman is not supported");const w=[];let S,x;for(S=0;S1&&(n=e?y.readBits(b):decodeInteger(C,"IAIT",k));const i=s*v+n,F=e?f.symbolIDTable.decode(y):decodeIAID(C,k,c),O=t&&(e?y.readBit():decodeInteger(C,"IARI",k));let T=o[F],M=T[0].length,E=T.length;if(O){const e=decodeInteger(C,"IARDW",k),t=decodeInteger(C,"IARDH",k),a=decodeInteger(C,"IARDX",k),r=decodeInteger(C,"IARDY",k);M+=e;E+=t;T=decodeRefinement(M,E,g,T,(e>>1)+a,(t>>1)+r,!1,p,m)}const D=i-(1&u?0:E-1),N=r-(2&u?M-1:0);let L,R,j;if(l){for(L=0;L>5&7;const h=[31&c];let u=t+6;if(7===c){l=536870911&(0,n.readUint32)(e,u-1);u+=3;let t=l+7>>3;h[0]=e[u++];for(;--t>0;)h.push(e[u++])}else if(5===c||6===c)throw new Jbig2Error("invalid referred-to flags");a.retainBits=h;let f=4;a.number<=256?f=1:a.number<=65536&&(f=2);const g=[];let p,m;for(p=0;p>>24&255;i[3]=t.height>>16&255;i[4]=t.height>>8&255;i[5]=255&t.height;for(p=u,m=e.length;p>2&3;e.huffmanDWSelector=t>>4&3;e.bitmapSizeSelector=t>>6&1;e.aggregationInstancesSelector=t>>7&1;e.bitmapCodingContextUsed=!!(256&t);e.bitmapCodingContextRetained=!!(512&t);e.template=t>>10&3;e.refinementTemplate=t>>12&1;h+=2;if(!e.huffman){l=0===e.template?4:1;o=[];for(c=0;c>2&3;u.stripSize=1<>4&3;u.transposed=!!(64&f);u.combinationOperator=f>>7&3;u.defaultPixelValue=f>>9&1;u.dsOffset=f<<17>>27;u.refinementTemplate=f>>15&1;if(u.huffman){const e=(0,n.readUint16)(r,h);h+=2;u.huffmanFS=3&e;u.huffmanDS=e>>2&3;u.huffmanDT=e>>4&3;u.huffmanRefinementDW=e>>6&3;u.huffmanRefinementDH=e>>8&3;u.huffmanRefinementDX=e>>10&3;u.huffmanRefinementDY=e>>12&3;u.huffmanRefinementSizeSelector=!!(16384&e)}if(u.refinement&&!u.refinementTemplate){o=[];for(c=0;c<2;c++){o.push({x:(0,n.readInt8)(r,h),y:(0,n.readInt8)(r,h+1)});h+=2}u.refinementAt=o}u.numberOfSymbolInstances=(0,n.readUint32)(r,h);h+=4;s=[u,a.referredTo,r,h,i];break;case 16:const g={},p=r[h++];g.mmr=!!(1&p);g.template=p>>1&3;g.patternWidth=r[h++];g.patternHeight=r[h++];g.maxPatternIndex=(0,n.readUint32)(r,h);h+=4;s=[g,a.number,r,h,i];break;case 22:case 23:const m={};m.info=readRegionSegmentInformation(r,h);h+=d;const b=r[h++];m.mmr=!!(1&b);m.template=b>>1&3;m.enableSkip=!!(8&b);m.combinationOperator=b>>4&7;m.defaultPixelValue=b>>7&1;m.gridWidth=(0,n.readUint32)(r,h);h+=4;m.gridHeight=(0,n.readUint32)(r,h);h+=4;m.gridOffsetX=4294967295&(0,n.readUint32)(r,h);h+=4;m.gridOffsetY=4294967295&(0,n.readUint32)(r,h);h+=4;m.gridVectorX=(0,n.readUint16)(r,h);h+=2;m.gridVectorY=(0,n.readUint16)(r,h);h+=2;s=[m,a.referredTo,r,h,i];break;case 38:case 39:const y={};y.info=readRegionSegmentInformation(r,h);h+=d;const w=r[h++];y.mmr=!!(1&w);y.template=w>>1&3;y.prediction=!!(8&w);if(!y.mmr){l=0===y.template?4:1;o=[];for(c=0;c>2&1;S.combinationOperator=x>>3&3;S.requiresBuffer=!!(32&x);S.combinationOperatorOverride=!!(64&x);s=[S];break;case 49:case 50:case 51:case 62:break;case 53:s=[a.number,r,h,i];break;default:throw new Jbig2Error(`segment type ${a.typeName}(${a.type}) is not implemented`)}const u="on"+a.typeName;u in t&&t[u].apply(t,s)}function processSegments(e,t){for(let a=0,r=e.length;a>3,a=new Uint8ClampedArray(t*e.height);e.defaultPixelValue&&a.fill(255);this.buffer=a}drawBitmap(e,t){const a=this.currentPageInfo,r=e.width,n=e.height,i=a.width+7>>3,s=a.combinationOperatorOverride?e.combinationOperator:a.combinationOperator,o=this.buffer,c=128>>(7&e.x);let l,h,u,d,f=e.y*i+(e.x>>3);switch(s){case 0:for(l=0;l>=1;if(!u){u=128;d++}}f+=i}break;case 2:for(l=0;l>=1;if(!u){u=128;d++}}f+=i}break;default:throw new Jbig2Error(`operator ${s} is not supported`)}}onImmediateGenericRegion(e,t,a,r){const n=e.info,i=new DecodingContext(t,a,r),s=decodeBitmap(e.mmr,n.width,n.height,e.template,e.prediction,null,e.at,i);this.drawBitmap(n,s)}onImmediateLosslessGenericRegion(){this.onImmediateGenericRegion.apply(this,arguments)}onSymbolDictionary(e,t,a,r,i,s){let o,c;if(e.huffman){o=function getSymbolDictionaryHuffmanTables(e,t,a){let r,n,i,s,o=0;switch(e.huffmanDHSelector){case 0:case 1:r=getStandardTable(e.huffmanDHSelector+4);break;case 3:r=getCustomHuffmanTable(o,t,a);o++;break;default:throw new Jbig2Error("invalid Huffman DH selector")}switch(e.huffmanDWSelector){case 0:case 1:n=getStandardTable(e.huffmanDWSelector+2);break;case 3:n=getCustomHuffmanTable(o,t,a);o++;break;default:throw new Jbig2Error("invalid Huffman DW selector")}if(e.bitmapSizeSelector){i=getCustomHuffmanTable(o,t,a);o++}else i=getStandardTable(1);s=e.aggregationInstancesSelector?getCustomHuffmanTable(o,t,a):getStandardTable(1);return{tableDeltaHeight:r,tableDeltaWidth:n,tableBitmapSize:i,tableAggregateInstances:s}}(e,a,this.customTables);c=new Reader(r,i,s)}let l=this.symbols;l||(this.symbols=l={});let h=[];for(let e=0,t=a.length;e1)y=decodeTextRegion(e,t,r,g,0,n,1,a.concat(f),p,0,0,1,0,s,l,h,u,0,d);else{const e=decodeIAID(b,m,p),t=decodeInteger(b,"IARDX",m),n=decodeInteger(b,"IARDY",m);y=decodeRefinement(r,g,l,e=32){let a,r,s;switch(t){case 32:if(0===e)throw new Jbig2Error("no previous value in symbol ID table");r=n.readBits(2)+3;a=i[e-1].prefixLength;break;case 33:r=n.readBits(3)+3;a=0;break;case 34:r=n.readBits(7)+11;a=0;break;default:throw new Jbig2Error("invalid code length in symbol ID table")}for(s=0;s=0;b--){M=e?decodeMMRBitmap(T,l,h,!0):decodeBitmap(!1,l,h,a,!1,null,F,p);O[b]=M}for(E=0;E=0;y--){N^=O[y][E][D];L|=N<>8;_=d+E*f-D*g>>8;if(j>=0&&j+k<=r&&_>=0&&_+C<=i)for(b=0;b=i)){U=m[t];$=R[b];for(y=0;y=0&&e>1&7),l=1+(r>>4&7),h=[];let u,d,f=i;do{u=o.readBits(c);d=o.readBits(l);h.push(new HuffmanLine([f,u,d,0]));f+=1<>t&1;if(t<=0)this.children[a]=new HuffmanTreeNode(e);else{let r=this.children[a];r||(this.children[a]=r=new HuffmanTreeNode(null));r.buildTree(e,t-1)}}decodeNode(e){if(this.isLeaf){if(this.isOOB)return null;const t=e.readBits(this.rangeLength);return this.rangeLow+(this.isLowerRange?-t:t)}const t=this.children[e.readBit()];if(!t)throw new Jbig2Error("invalid Huffman data");return t.decodeNode(e)}}class HuffmanTable{constructor(e,t){t||this.assignPrefixCodes(e);this.rootNode=new HuffmanTreeNode(null);for(let t=0,a=e.length;t0&&this.rootNode.buildTree(a,a.prefixLength-1)}}decode(e){return this.rootNode.decodeNode(e)}assignPrefixCodes(e){const t=e.length;let a=0;for(let r=0;r=this.end)throw new Jbig2Error("end of data while reading bit");this.currentByte=this.data[this.position++];this.shift=7}const e=this.currentByte>>this.shift&1;this.shift--;return e}readBits(e){let t,a=0;for(t=e-1;t>=0;t--)a|=this.readBit()<=this.end?-1:this.data[this.position++]}}function getCustomHuffmanTable(e,t,a){let r=0;for(let n=0,i=t.length;n>a&1;a--}}if(r&&!l){const e=5;for(let t=0;t>=1}}return{imgData:u,width:c,height:l}}(e);this.width=a;this.height=r;return t}}},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ArithmeticDecoder=void 0;const a=[{qe:22017,nmps:1,nlps:1,switchFlag:1},{qe:13313,nmps:2,nlps:6,switchFlag:0},{qe:6145,nmps:3,nlps:9,switchFlag:0},{qe:2753,nmps:4,nlps:12,switchFlag:0},{qe:1313,nmps:5,nlps:29,switchFlag:0},{qe:545,nmps:38,nlps:33,switchFlag:0},{qe:22017,nmps:7,nlps:6,switchFlag:1},{qe:21505,nmps:8,nlps:14,switchFlag:0},{qe:18433,nmps:9,nlps:14,switchFlag:0},{qe:14337,nmps:10,nlps:14,switchFlag:0},{qe:12289,nmps:11,nlps:17,switchFlag:0},{qe:9217,nmps:12,nlps:18,switchFlag:0},{qe:7169,nmps:13,nlps:20,switchFlag:0},{qe:5633,nmps:29,nlps:21,switchFlag:0},{qe:22017,nmps:15,nlps:14,switchFlag:1},{qe:21505,nmps:16,nlps:14,switchFlag:0},{qe:20737,nmps:17,nlps:15,switchFlag:0},{qe:18433,nmps:18,nlps:16,switchFlag:0},{qe:14337,nmps:19,nlps:17,switchFlag:0},{qe:13313,nmps:20,nlps:18,switchFlag:0},{qe:12289,nmps:21,nlps:19,switchFlag:0},{qe:10241,nmps:22,nlps:19,switchFlag:0},{qe:9217,nmps:23,nlps:20,switchFlag:0},{qe:8705,nmps:24,nlps:21,switchFlag:0},{qe:7169,nmps:25,nlps:22,switchFlag:0},{qe:6145,nmps:26,nlps:23,switchFlag:0},{qe:5633,nmps:27,nlps:24,switchFlag:0},{qe:5121,nmps:28,nlps:25,switchFlag:0},{qe:4609,nmps:29,nlps:26,switchFlag:0},{qe:4353,nmps:30,nlps:27,switchFlag:0},{qe:2753,nmps:31,nlps:28,switchFlag:0},{qe:2497,nmps:32,nlps:29,switchFlag:0},{qe:2209,nmps:33,nlps:30,switchFlag:0},{qe:1313,nmps:34,nlps:31,switchFlag:0},{qe:1089,nmps:35,nlps:32,switchFlag:0},{qe:673,nmps:36,nlps:33,switchFlag:0},{qe:545,nmps:37,nlps:34,switchFlag:0},{qe:321,nmps:38,nlps:35,switchFlag:0},{qe:273,nmps:39,nlps:36,switchFlag:0},{qe:133,nmps:40,nlps:37,switchFlag:0},{qe:73,nmps:41,nlps:38,switchFlag:0},{qe:37,nmps:42,nlps:39,switchFlag:0},{qe:21,nmps:43,nlps:40,switchFlag:0},{qe:9,nmps:44,nlps:41,switchFlag:0},{qe:5,nmps:45,nlps:42,switchFlag:0},{qe:1,nmps:45,nlps:43,switchFlag:0},{qe:22017,nmps:46,nlps:46,switchFlag:0}];t.ArithmeticDecoder=class ArithmeticDecoder{constructor(e,t,a){this.data=e;this.bp=t;this.dataEnd=a;this.chigh=e[t];this.clow=0;this.byteIn();this.chigh=this.chigh<<7&65535|this.clow>>9&127;this.clow=this.clow<<7&65535;this.ct-=7;this.a=32768}byteIn(){const e=this.data;let t=this.bp;if(255===e[t])if(e[t+1]>143){this.clow+=65280;this.ct=8}else{t++;this.clow+=e[t]<<9;this.ct=7;this.bp=t}else{t++;this.clow+=t65535){this.chigh+=this.clow>>16;this.clow&=65535}}readBit(e,t){let r=e[t]>>1,n=1&e[t];const i=a[r],s=i.qe;let o,c=this.a-s;if(this.chigh>15&1;this.clow=this.clow<<1&65535;this.ct--}while(0==(32768&c));this.a=c;e[t]=r<<1|n;return o}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.JpegStream=void 0;var r=a(29),n=a(5),i=a(38),s=a(2);class JpegStream extends r.DecodeStream{constructor(e,t,a){let r;for(;-1!==(r=e.getByte());)if(255===r){e.skip(-1);break}super(t);this.stream=e;this.dict=e.dict;this.maybeLength=t;this.params=a}get bytes(){return(0,s.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength))}ensureBuffer(e){}readBlock(){if(this.eof)return;const e={decodeTransform:void 0,colorTransform:void 0},t=this.dict.getArray("D","Decode");if(this.forceRGB&&Array.isArray(t)){const a=this.dict.get("BPC","BitsPerComponent")||8,r=t.length,n=new Int32Array(r);let i=!1;const s=(1<{Object.defineProperty(t,"__esModule",{value:!0});t.JpegImage=void 0;var r=a(2),n=a(8);class JpegError extends r.BaseException{constructor(e){super(`JPEG error: ${e}`,"JpegError")}}class DNLMarkerError extends r.BaseException{constructor(e,t){super(e,"DNLMarkerError");this.scanLines=t}}class EOIMarkerError extends r.BaseException{constructor(e){super(e,"EOIMarkerError")}}const i=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),s=4017,o=799,c=3406,l=2276,h=1567,u=3784,d=5793,f=2896;function buildHuffmanTable(e,t){let a,r,n=0,i=16;for(;i>0&&!e[i-1];)i--;const s=[{children:[],index:0}];let o,c=s[0];for(a=0;a0;)c=s.pop();c.index++;s.push(c);for(;s.length<=a;){s.push(o={children:[],index:0});c.children[c.index]=o.children;c=o}n++}if(a+10){b--;return m>>b&1}m=e[t++];if(255===m){const r=e[t++];if(r){if(220===r&&d){t+=2;const r=(0,n.readUint16)(e,t);t+=2;if(r>0&&r!==a.scanLines)throw new DNLMarkerError("Found DNL marker (0xFFDC) while parsing scan data",r)}else if(217===r){if(d){const e=x*(8===a.precision?8:0);if(e>0&&Math.round(a.scanLines/e)>=10)throw new DNLMarkerError("Found EOI marker (0xFFD9) while parsing scan data, possibly caused by incorrect `scanLines` parameter",e)}throw new EOIMarkerError("Found EOI marker (0xFFD9) while parsing scan data")}throw new JpegError(`unexpected marker ${(m<<8|r).toString(16)}`)}}b=7;return m>>>7}function decodeHuffman(e){let t=e;for(;;){t=t[readBit()];switch(typeof t){case"number":return t;case"object":continue}throw new JpegError("invalid huffman sequence")}}function receive(e){let t=0;for(;e>0;){t=t<<1|readBit();e--}return t}function receiveAndExtend(e){if(1===e)return 1===readBit()?1:-1;const t=receive(e);return t>=1<0){y--;return}let a=c;const r=l;for(;a<=r;){const r=decodeHuffman(e.huffmanTableAC),n=15&r,s=r>>4;if(0===n){if(s<15){y=receive(s)+(1<>4;if(0===n)if(o<15){y=receive(o)+(1<>4;if(0===r){if(s<15)break;n+=16;continue}n+=s;const o=i[n];e.blockData[t+o]=receiveAndExtend(r);n++}};let E,D,N,L,R=0;D=1===k?s[0].blocksPerLine*s[0].blocksPerColumn:f*a.mcusPerColumn;for(;R<=D;){const a=o?Math.min(D-R,o):D;if(a>0){for(v=0;v0?"unexpected":"excessive";(0,r.warn)(`decodeScan - ${e} MCU data, current marker is: ${E.invalid}`);t=E.offset}if(!(E.marker>=65488&&E.marker<=65495))break;t+=2}return t-p}function quantizeAndInverse(e,t,a){const r=e.quantizationTable,n=e.blockData;let i,g,p,m,b,y,w,S,x,k,C,v,F,O,T,M,E;if(!r)throw new JpegError("missing required Quantization Table.");for(let e=0;e<64;e+=8){x=n[t+e];k=n[t+e+1];C=n[t+e+2];v=n[t+e+3];F=n[t+e+4];O=n[t+e+5];T=n[t+e+6];M=n[t+e+7];x*=r[e];if(0!=(k|C|v|F|O|T|M)){k*=r[e+1];C*=r[e+2];v*=r[e+3];F*=r[e+4];O*=r[e+5];T*=r[e+6];M*=r[e+7];i=d*x+128>>8;g=d*F+128>>8;p=C;m=T;b=f*(k-M)+128>>8;S=f*(k+M)+128>>8;y=v<<4;w=O<<4;i=i+g+1>>1;g=i-g;E=p*u+m*h+128>>8;p=p*h-m*u+128>>8;m=E;b=b+w+1>>1;w=b-w;S=S+y+1>>1;y=S-y;i=i+m+1>>1;m=i-m;g=g+p+1>>1;p=g-p;E=b*l+S*c+2048>>12;b=b*c-S*l+2048>>12;S=E;E=y*o+w*s+2048>>12;y=y*s-w*o+2048>>12;w=E;a[e]=i+S;a[e+7]=i-S;a[e+1]=g+w;a[e+6]=g-w;a[e+2]=p+y;a[e+5]=p-y;a[e+3]=m+b;a[e+4]=m-b}else{E=d*x+512>>10;a[e]=E;a[e+1]=E;a[e+2]=E;a[e+3]=E;a[e+4]=E;a[e+5]=E;a[e+6]=E;a[e+7]=E}}for(let e=0;e<8;++e){x=a[e];k=a[e+8];C=a[e+16];v=a[e+24];F=a[e+32];O=a[e+40];T=a[e+48];M=a[e+56];if(0!=(k|C|v|F|O|T|M)){i=d*x+2048>>12;g=d*F+2048>>12;p=C;m=T;b=f*(k-M)+2048>>12;S=f*(k+M)+2048>>12;y=v;w=O;i=4112+(i+g+1>>1);g=i-g;E=p*u+m*h+2048>>12;p=p*h-m*u+2048>>12;m=E;b=b+w+1>>1;w=b-w;S=S+y+1>>1;y=S-y;i=i+m+1>>1;m=i-m;g=g+p+1>>1;p=g-p;E=b*l+S*c+2048>>12;b=b*c-S*l+2048>>12;S=E;E=y*o+w*s+2048>>12;y=y*s-w*o+2048>>12;w=E;x=i+S;M=i-S;k=g+w;T=g-w;C=p+y;O=p-y;v=m+b;F=m-b;x<16?x=0:x>=4080?x=255:x>>=4;k<16?k=0:k>=4080?k=255:k>>=4;C<16?C=0:C>=4080?C=255:C>>=4;v<16?v=0:v>=4080?v=255:v>>=4;F<16?F=0:F>=4080?F=255:F>>=4;O<16?O=0:O>=4080?O=255:O>>=4;T<16?T=0:T>=4080?T=255:T>>=4;M<16?M=0:M>=4080?M=255:M>>=4;n[t+e]=x;n[t+e+8]=k;n[t+e+16]=C;n[t+e+24]=v;n[t+e+32]=F;n[t+e+40]=O;n[t+e+48]=T;n[t+e+56]=M}else{E=d*x+8192>>14;E=E<-2040?0:E>=2024?255:E+2056>>4;n[t+e]=E;n[t+e+8]=E;n[t+e+16]=E;n[t+e+24]=E;n[t+e+32]=E;n[t+e+40]=E;n[t+e+48]=E;n[t+e+56]=E}}}function buildComponentData(e,t){const a=t.blocksPerLine,r=t.blocksPerColumn,n=new Int16Array(64);for(let e=0;e=r)return null;const s=(0,n.readUint16)(e,t);if(s>=65472&&s<=65534)return{invalid:null,marker:s,offset:t};let o=(0,n.readUint16)(e,i);for(;!(o>=65472&&o<=65534);){if(++i>=r)return null;o=(0,n.readUint16)(e,i)}return{invalid:s.toString(16),marker:o,offset:i}}t.JpegImage=class JpegImage{constructor({decodeTransform:e=null,colorTransform:t=-1}={}){this._decodeTransform=e;this._colorTransform=t}parse(e,{dnlScanLines:t=null}={}){function readDataBlock(){const t=(0,n.readUint16)(e,o);o+=2;let a=o+t-2;const i=findNextFileMarker(e,a,o);if(i&&i.invalid){(0,r.warn)("readDataBlock - incorrect length, current marker is: "+i.invalid);a=i.offset}const s=e.subarray(o,a);o+=s.length;return s}function prepareComponents(e){const t=Math.ceil(e.samplesPerLine/8/e.maxH),a=Math.ceil(e.scanLines/8/e.maxV);for(let r=0,n=e.components.length;r>4==0)for(m=0;m<64;m++){x=i[m];a[x]=e[o++]}else{if(t>>4!=1)throw new JpegError("DQT - invalid table spec");for(m=0;m<64;m++){x=i[m];a[x]=(0,n.readUint16)(e,o);o+=2}}u[15&t]=a}break;case 65472:case 65473:case 65474:if(a)throw new JpegError("Only single frame JPEGs supported");o+=2;a={};a.extended=65473===g;a.progressive=65474===g;a.precision=e[o++];const k=(0,n.readUint16)(e,o);o+=2;a.scanLines=t||k;a.samplesPerLine=(0,n.readUint16)(e,o);o+=2;a.components=[];a.componentIds={};const C=e[o++];let v=0,F=0;for(p=0;p>4,n=15&e[o+1];v>4==0?f:d)[15&t]=buildHuffmanTable(a,n)}break;case 65501:o+=2;s=(0,n.readUint16)(e,o);o+=2;break;case 65498:const T=1==++h&&!t;o+=2;const M=e[o++],E=[];for(p=0;p>4];n.huffmanTableAC=d[15&i];E.push(n)}const D=e[o++],N=e[o++],L=e[o++];try{const t=decodeScan(e,o,a,E,s,D,N,L>>4,15&L,T);o+=t}catch(t){if(t instanceof DNLMarkerError){(0,r.warn)(`${t.message} -- attempting to re-parse the JPEG image.`);return this.parse(e,{dnlScanLines:t.scanLines})}if(t instanceof EOIMarkerError){(0,r.warn)(`${t.message} -- ignoring the rest of the image data.`);break e}throw t}break;case 65500:o+=4;break;case 65535:255!==e[o]&&o--;break;default:const R=findNextFileMarker(e,o-2,o-3);if(R&&R.invalid){(0,r.warn)("JpegImage.parse - unexpected data, current marker is: "+R.invalid);o=R.offset;break}if(!R||o>=e.length-1){(0,r.warn)("JpegImage.parse - reached the end of the image data without finding an EOI marker (0xFFD9).");break e}throw new JpegError("JpegImage.parse - unknown marker: "+g.toString(16))}g=(0,n.readUint16)(e,o);o+=2}this.width=a.samplesPerLine;this.height=a.scanLines;this.jfif=c;this.adobe=l;this.components=[];for(let e=0,t=a.components.length;e>8)+C[f+1];return w}get _isColorConversionNeeded(){return this.adobe?!!this.adobe.transformCode:3===this.numComponents?0!==this._colorTransform&&(82!==this.components[0].index||71!==this.components[1].index||66!==this.components[2].index):1===this._colorTransform}_convertYccToRgb(e){let t,a,r;for(let n=0,i=e.length;n4)throw new JpegError("Unsupported color mode");const n=this._getLinearizedBlockData(e,t,r);if(1===this.numComponents&&a){const e=n.length,t=new Uint8ClampedArray(3*e);let a=0;for(let r=0;r{Object.defineProperty(t,"__esModule",{value:!0});t.JpxStream=void 0;var r=a(29),n=a(40),i=a(2);class JpxStream extends r.DecodeStream{constructor(e,t,a){super(t);this.stream=e;this.dict=e.dict;this.maybeLength=t;this.params=a}get bytes(){return(0,i.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength))}ensureBuffer(e){}readBlock(){if(this.eof)return;const e=new n.JpxImage;e.parse(this.bytes);const t=e.width,a=e.height,r=e.componentsCount,i=e.tiles.length;if(1===i)this.buffer=e.tiles[0].items;else{const n=new Uint8ClampedArray(t*a*r);for(let a=0;a{Object.defineProperty(t,"__esModule",{value:!0});t.JpxImage=void 0;var r=a(2),n=a(8),i=a(36);class JpxError extends r.BaseException{constructor(e){super(`JPX error: ${e}`,"JpxError")}}const s={LL:0,LH:1,HL:1,HH:2};t.JpxImage=class JpxImage{constructor(){this.failOnCorruptedImage=!1}parse(e){if(65359===(0,n.readUint16)(e,0)){this.parseCodestream(e,0,e.length);return}const t=e.length;let a=0;for(;a>24&255,o>>16&255,o>>8&255,255&o);(0,r.warn)(`Unsupported header type ${o} (${i}).`)}l&&(a+=c)}}parseImageProperties(e){let t=e.getByte();for(;t>=0;){const a=t;t=e.getByte();if(65361===(a<<8|t)){e.skip(4);const t=e.getInt32()>>>0,a=e.getInt32()>>>0,r=e.getInt32()>>>0,n=e.getInt32()>>>0;e.skip(16);const i=e.getUint16();this.width=t-r;this.height=a-n;this.componentsCount=i;this.bitsPerComponent=8;return}}throw new JpxError("No size marker found in JPX stream")}parseCodestream(e,t,a){const i={};let s=!1;try{let o=t;for(;o+1>5;l=[];for(;a>3;t.mu=0}else{t.epsilon=e[a]>>3;t.mu=(7&e[a])<<8|e[a+1];a+=2}l.push(t)}b.SPqcds=l;if(i.mainHeader)i.QCD=b;else{i.currentTile.QCD=b;i.currentTile.QCC=[]}break;case 65373:f=(0,n.readUint16)(e,o);const y={};a=o+2;let w;if(i.SIZ.Csiz<257)w=e[a++];else{w=(0,n.readUint16)(e,a);a+=2}c=e[a++];switch(31&c){case 0:h=8;u=!0;break;case 1:h=16;u=!1;break;case 2:h=16;u=!0;break;default:throw new Error("Invalid SQcd value "+c)}y.noQuantization=8===h;y.scalarExpounded=u;y.guardBits=c>>5;l=[];for(;a>3;t.mu=0}else{t.epsilon=e[a]>>3;t.mu=(7&e[a])<<8|e[a+1];a+=2}l.push(t)}y.SPqcds=l;i.mainHeader?i.QCC[w]=y:i.currentTile.QCC[w]=y;break;case 65362:f=(0,n.readUint16)(e,o);const S={};a=o+2;const x=e[a++];S.entropyCoderWithCustomPrecincts=!!(1&x);S.sopMarkerUsed=!!(2&x);S.ephMarkerUsed=!!(4&x);S.progressionOrder=e[a++];S.layersCount=(0,n.readUint16)(e,a);a+=2;S.multipleComponentTransform=e[a++];S.decompositionLevelsCount=e[a++];S.xcb=2+(15&e[a++]);S.ycb=2+(15&e[a++]);const k=e[a++];S.selectiveArithmeticCodingBypass=!!(1&k);S.resetContextProbabilities=!!(2&k);S.terminationOnEachCodingPass=!!(4&k);S.verticallyStripe=!!(8&k);S.predictableTermination=!!(16&k);S.segmentationSymbolUsed=!!(32&k);S.reversibleTransformation=e[a++];if(S.entropyCoderWithCustomPrecincts){const t=[];for(;a>4})}S.precinctsSizes=t}const C=[];S.selectiveArithmeticCodingBypass&&C.push("selectiveArithmeticCodingBypass");S.terminationOnEachCodingPass&&C.push("terminationOnEachCodingPass");S.verticallyStripe&&C.push("verticallyStripe");S.predictableTermination&&C.push("predictableTermination");if(C.length>0){s=!0;(0,r.warn)(`JPX: Unsupported COD options (${C.join(", ")}).`)}if(i.mainHeader)i.COD=S;else{i.currentTile.COD=S;i.currentTile.COC=[]}break;case 65424:f=(0,n.readUint16)(e,o);d={};d.index=(0,n.readUint16)(e,o+2);d.length=(0,n.readUint32)(e,o+4);d.dataEnd=d.length+o-2;d.partIndex=e[o+8];d.partsCount=e[o+9];i.mainHeader=!1;if(0===d.partIndex){d.COD=i.COD;d.COC=i.COC.slice(0);d.QCD=i.QCD;d.QCC=i.QCC.slice(0)}i.currentTile=d;break;case 65427:d=i.currentTile;if(0===d.partIndex){initializeTile(i,d.index);buildPackets(i)}f=d.dataEnd-o;parseTilePackets(i,e,o,f);break;case 65363:(0,r.warn)("JPX: Codestream code 0xFF53 (COC) is not implemented.");case 65365:case 65367:case 65368:case 65380:f=(0,n.readUint16)(e,o);break;default:throw new Error("Unknown codestream code: "+t.toString(16))}o+=f}}catch(e){if(s||this.failOnCorruptedImage)throw new JpxError(e.message);(0,r.warn)(`JPX: Trying to recover from: "${e.message}".`)}this.tiles=function transformComponents(e){const t=e.SIZ,a=e.components,r=t.Csiz,n=[];for(let t=0,i=e.tiles.length;t>2);c[b++]=e+m>>h;c[b++]=e>>h;c[b++]=e+p>>h}else for(d=0;d>h;c[b++]=g-.34413*p-.71414*m>>h;c[b++]=g+1.772*p>>h}if(e)for(d=0,b=3;d>h}else for(let e=0;e>h;b+=r}}n.push(l)}return n}(i);this.width=i.SIZ.Xsiz-i.SIZ.XOsiz;this.height=i.SIZ.Ysiz-i.SIZ.YOsiz;this.componentsCount=i.SIZ.Csiz}};function calculateComponentDimensions(e,t){e.x0=Math.ceil(t.XOsiz/e.XRsiz);e.x1=Math.ceil(t.Xsiz/e.XRsiz);e.y0=Math.ceil(t.YOsiz/e.YRsiz);e.y1=Math.ceil(t.Ysiz/e.YRsiz);e.width=e.x1-e.x0;e.height=e.y1-e.y0}function calculateTileGrids(e,t){const a=e.SIZ,r=[];let n;const i=Math.ceil((a.Xsiz-a.XTOsiz)/a.XTsiz),s=Math.ceil((a.Ysiz-a.YTOsiz)/a.YTsiz);for(let e=0;e0?Math.min(r.xcb,n.PPx-1):Math.min(r.xcb,n.PPx);n.ycb_=a>0?Math.min(r.ycb,n.PPy-1):Math.min(r.ycb,n.PPy);return n}function buildPrecincts(e,t,a){const r=1<t.trx0?Math.ceil(t.trx1/r)-Math.floor(t.trx0/r):0,l=t.try1>t.try0?Math.ceil(t.try1/n)-Math.floor(t.try0/n):0,h=c*l;t.precinctParameters={precinctWidth:r,precinctHeight:n,numprecinctswide:c,numprecinctshigh:l,numprecincts:h,precinctWidthInSubband:s,precinctHeightInSubband:o}}function buildCodeblocks(e,t,a){const r=a.xcb_,n=a.ycb_,i=1<>r,c=t.tby0>>n,l=t.tbx1+i-1>>r,h=t.tby1+s-1>>n,u=t.resolution.precinctParameters,d=[],f=[];let g,p,m,b;for(p=c;pe.cbxMax&&(e.cbxMax=g);pe.cbyMax&&(e.cbyMax=p)}else f[b]=e={cbxMin:g,cbyMin:p,cbxMax:g,cbyMax:p};m.precinct=e}t.codeblockParameters={codeblockWidth:r,codeblockHeight:n,numcodeblockwide:l-o+1,numcodeblockhigh:h-c+1};t.codeblocks=d;t.precincts=f}function createPacket(e,t,a){const r=[],n=e.subbands;for(let e=0,a=n.length;ee.codingStyleParameters.decompositionLevelsCount)continue;const t=e.resolutions[c],a=t.precinctParameters.numprecincts;for(;he.codingStyleParameters.decompositionLevelsCount)continue;const t=e.resolutions[o],a=t.precinctParameters.numprecincts;for(;he.codingStyleParameters.decompositionLevelsCount)continue;const t=e.resolutions[o],a=t.precinctParameters.numprecincts;if(!(l>=a)){for(;s=0;--e){const a=t.resolutions[e],r=g*a.precinctParameters.precinctWidth,n=g*a.precinctParameters.precinctHeight;h=Math.min(h,r);u=Math.min(u,n);d=Math.max(d,a.precinctParameters.numprecinctswide);f=Math.max(f,a.precinctParameters.numprecinctshigh);l[e]={width:r,height:n};g<<=1}a=Math.min(a,h);r=Math.min(r,u);n=Math.max(n,d);i=Math.max(i,f);s[o]={resolutions:l,minWidth:h,minHeight:u,maxNumWide:d,maxNumHigh:f}}return{components:s,minWidth:a,minHeight:r,maxNumWide:n,maxNumHigh:i}}function buildPackets(e){const t=e.SIZ,a=e.currentTile.index,r=e.tiles[a],n=t.Csiz;for(let e=0;e>>o&(1<0;){const e=i.shift();o=e.codeblock;void 0===o.data&&(o.data=[]);o.data.push({data:t,start:a+s,end:a+s+e.dataLength,codingpasses:e.codingpasses});s+=e.dataLength}}return s}function copyCoefficients(e,t,a,r,n,s,c,l,h){const u=r.tbx0,d=r.tby0,f=r.tbx1-r.tbx0,g=r.codeblocks,p="H"===r.type.charAt(0)?1:0,m="H"===r.type.charAt(1)?t:0;for(let a=0,b=g.length;a=s?U:U*(1<0?1-e:0)}const p=t.subbands[r],m=s[p.type];copyCoefficients(i,a,0,p,g?1:2**(f+m-o)*(1+n/2048),h+o-1,g,u,d)}m.push({width:a,height:n,items:i})}const y=p.calculate(m,r.tcx0,r.tcy0);return{left:r.tcx0,top:r.tcy0,width:y.width,height:y.height,items:y.items}}function initializeTile(e,t){const a=e.SIZ.Csiz,r=e.tiles[t];for(let t=0;t>=1;t>>=1;r++}r--;a=this.levels[r];a.items[a.index]=n;this.currentLevel=r;delete this.value}incrementValue(){const e=this.levels[this.currentLevel];e.items[e.index]++}nextLevel(){let e=this.currentLevel,t=this.levels[e];const a=t.items[t.index];e--;if(e<0){this.value=a;return!1}this.currentLevel=e;t=this.levels[e];t.items[t.index]=a;return!0}}class InclusionTree{constructor(e,t,a){const r=(0,n.log2)(Math.max(e,t))+1;this.levels=[];for(let n=0;na){this.currentLevel=r;this.propagateValues();return!1}e>>=1;t>>=1;r++}this.currentLevel=r-1;return!0}incrementValue(e){const t=this.levels[this.currentLevel];t.items[t.index]=e+1;this.propagateValues()}propagateValues(){let e=this.currentLevel,t=this.levels[e];const a=t.items[t.index];for(;--e>=0;){t=this.levels[e];t.items[t.index]=a}}nextLevel(){let e=this.currentLevel,t=this.levels[e];const a=t.items[t.index];t.items[t.index]=255;e--;if(e<0)return!1;this.currentLevel=e;t=this.levels[e];t.items[t.index]=a;return!0}}const o=function BitModelClosure(){const e=17,t=new Uint8Array([0,5,8,0,3,7,8,0,4,7,8,0,0,0,0,0,1,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8]),a=new Uint8Array([0,3,4,0,5,7,7,0,8,8,8,0,0,0,0,0,1,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8]),r=new Uint8Array([0,1,2,0,1,2,2,0,2,2,2,0,0,0,0,0,3,4,5,0,4,5,5,0,5,5,5,0,0,0,0,0,6,7,7,0,7,7,7,0,7,7,7,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8]);return class BitModel{constructor(e,n,i,s,o){this.width=e;this.height=n;let c;c="HH"===i?r:"HL"===i?a:t;this.contextLabelTable=c;const l=e*n;this.neighborsSignificance=new Uint8Array(l);this.coefficentsSign=new Uint8Array(l);let h;h=o>14?new Uint32Array(l):o>6?new Uint16Array(l):new Uint8Array(l);this.coefficentsMagnitude=h;this.processingFlags=new Uint8Array(l);const u=new Uint8Array(l);if(0!==s)for(let e=0;e0,o=t+10){c=a-n;s&&(r[c-1]+=16);o&&(r[c+1]+=16);r[c]+=4}if(e+1=a)break;s[d]&=-2;if(r[d]||!i[d])continue;const g=c[i[d]];if(e.readBit(o,g)){const e=this.decodeSignBit(t,u,d);n[d]=e;r[d]=1;this.setNeighborsSignificance(t,u,d);s[d]|=2}l[d]++;s[d]|=1}}}decodeSignBit(e,t,a){const r=this.width,n=this.height,i=this.coefficentsMagnitude,s=this.coefficentsSign;let o,c,l,h,u,d;h=t>0&&0!==i[a-1];if(t+10&&0!==i[a-r];if(e+1=0){u=9+o;d=this.decoder.readBit(this.contexts,u)}else{u=9-o;d=1^this.decoder.readBit(this.contexts,u)}return d}runMagnitudeRefinementPass(){const e=this.decoder,t=this.width,a=this.height,r=this.coefficentsMagnitude,n=this.neighborsSignificance,i=this.contexts,s=this.bitsDecoded,o=this.processingFlags,c=t*a,l=4*t;for(let a,h=0;h>1;let n,i,s,o;const c=-1.586134342059924,l=-.052980118572961,h=.882911075530934,u=.443506852043971,d=1.230174104914001;n=(t|=0)-3;for(i=r+4;i--;n+=2)e[n]*=.8128930661159609;n=t-2;s=u*e[n-1];for(i=r+3;i--;n+=2){o=u*e[n+1];e[n]=d*e[n]-s-o;if(!i--)break;n+=2;s=u*e[n+1];e[n]=d*e[n]-s-o}n=t-1;s=h*e[n-1];for(i=r+2;i--;n+=2){o=h*e[n+1];e[n]-=s+o;if(!i--)break;n+=2;s=h*e[n+1];e[n]-=s+o}n=t;s=l*e[n-1];for(i=r+1;i--;n+=2){o=l*e[n+1];e[n]-=s+o;if(!i--)break;n+=2;s=l*e[n+1];e[n]-=s+o}if(0!==r){n=t+1;s=c*e[n-1];for(i=r;i--;n+=2){o=c*e[n+1];e[n]-=s+o;if(!i--)break;n+=2;s=c*e[n+1];e[n]-=s+o}}}}class ReversibleTransform extends Transform{filter(e,t,a){const r=a>>1;let n,i;for(n=t|=0,i=r+1;i--;n+=2)e[n]-=e[n-1]+e[n+1]+2>>2;for(n=t+1,i=r;i--;n+=2)e[n]+=e[n-1]+e[n+1]>>1}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.LZWStream=void 0;var r=a(29);class LZWStream extends r.DecodeStream{constructor(e,t,a){super(t);this.str=e;this.dict=e.dict;this.cachedData=0;this.bitsCached=0;const r=4096,n={earlyChange:a,codeLength:9,nextCode:258,dictionaryValues:new Uint8Array(r),dictionaryLengths:new Uint16Array(r),dictionaryPrevCodes:new Uint16Array(r),currentSequence:new Uint8Array(r),currentSequenceLength:0};for(let e=0;e<256;++e){n.dictionaryValues[e]=e;n.dictionaryLengths[e]=1}this.lzwState=n}readBits(e){let t=this.bitsCached,a=this.cachedData;for(;t>>t&(1<0;if(e<256){d[0]=e;f=1}else{if(!(e>=258)){if(256===e){h=9;s=258;f=0;continue}this.eof=!0;delete this.lzwState;break}if(e=0;t--){d[t]=o[a];a=l[a]}}else d[f++]=d[0]}if(n){l[s]=u;c[s]=c[u]+1;o[s]=d[0];s++;h=s+i&s+i-1?h:0|Math.min(Math.log(s+i)/.6931471805599453+1,12)}u=e;g+=f;if(r{Object.defineProperty(t,"__esModule",{value:!0});t.PredictorStream=void 0;var r=a(29),n=a(5),i=a(2);class PredictorStream extends r.DecodeStream{constructor(e,t,a){super(t);if(!(a instanceof n.Dict))return e;const r=this.predictor=a.get("Predictor")||1;if(r<=1)return e;if(2!==r&&(r<10||r>15))throw new i.FormatError(`Unsupported predictor: ${r}`);this.readBlock=2===r?this.readBlockTiff:this.readBlockPng;this.str=e;this.dict=e.dict;const s=this.colors=a.get("Colors")||1,o=this.bits=a.get("BPC","BitsPerComponent")||8,c=this.columns=a.get("Columns")||1;this.pixBytes=s*o+7>>3;this.rowBytes=c*s*o+7>>3;return this}readBlockTiff(){const e=this.rowBytes,t=this.bufferLength,a=this.ensureBuffer(t+e),r=this.bits,n=this.colors,i=this.str.getBytes(e);this.eof=!i.length;if(this.eof)return;let s,o=0,c=0,l=0,h=0,u=t;if(1===r&&1===n)for(s=0;s>1;e^=e>>2;e^=e>>4;o=(1&e)<<7;a[u++]=e}else if(8===r){for(s=0;s>8&255;a[u++]=255&e}}else{const e=new Uint8Array(n+1),u=(1<>l-r)&u;l-=r;c=c<=8){a[f++]=c>>h-8&255;h-=8}}h>0&&(a[f++]=(c<<8-h)+(o&(1<<8-h)-1))}this.bufferLength+=e}readBlockPng(){const e=this.rowBytes,t=this.pixBytes,a=this.str.getByte(),r=this.str.getBytes(e);this.eof=!r.length;if(this.eof)return;const n=this.bufferLength,s=this.ensureBuffer(n+e);let o=s.subarray(n-e,n);0===o.length&&(o=new Uint8Array(e));let c,l,h,u=n;switch(a){case 0:for(c=0;c>1)+r[c];for(;c>1)+r[c]&255;u++}break;case 4:for(c=0;c{Object.defineProperty(t,"__esModule",{value:!0});t.RunLengthStream=void 0;var r=a(29);class RunLengthStream extends r.DecodeStream{constructor(e,t){super(t);this.str=e;this.dict=e.dict}readBlock(){const e=this.str.getBytes(2);if(!e||e.length<2||128===e[0]){this.eof=!0;return}let t,a=this.bufferLength,r=e[0];if(r<128){t=this.ensureBuffer(a+r+1);t[a++]=e[1];if(r>0){const e=this.str.getBytes(r);t.set(e,a);a+=r}}else{r=257-r;const n=e[1];t=this.ensureBuffer(a+r+1);for(let e=0;e{Object.defineProperty(t,"__esModule",{value:!0});t.Font=t.ErrorFont=void 0;var r=a(2),n=a(45),i=a(18),s=a(21),o=a(20),c=a(19),l=a(47),h=a(48),u=a(49),d=a(50),f=a(51),g=a(52),p=a(26),m=a(53),b=a(8),y=a(10),w=a(54);const S=[[57344,63743],[1048576,1114109]],x=1e3,k=["ascent","bbox","black","bold","charProcOperatorList","composite","cssFontInfo","data","defaultVMetrics","defaultWidth","descent","fallbackName","fontMatrix","fontType","isType3Font","italic","loadedName","mimetype","missingFile","name","remeasure","subtype","type","vertical"],C=["cMap","defaultEncoding","differences","isMonospace","isSerifFont","isSymbolicFont","seacMap","toFontChar","toUnicode","vmetrics","widths"];function adjustWidths(e){if(!e.fontMatrix)return;if(e.fontMatrix[0]===r.FONT_IDENTITY_MATRIX[0])return;const t=.001/e.fontMatrix[0],a=e.widths;for(const e in a)a[e]*=t;e.defaultWidth*=t}function amendFallbackToUnicode(e){if(!e.fallbackToUnicode)return;if(e.toUnicode instanceof h.IdentityToUnicodeMap)return;const t=[];for(const a in e.fallbackToUnicode)e.toUnicode.has(a)||(t[a]=e.fallbackToUnicode[a]);t.length>0&&e.toUnicode.amend(t)}class Glyph{constructor(e,t,a,r,n,i,o,c,l){this.originalCharCode=e;this.fontChar=t;this.unicode=a;this.accent=r;this.width=n;this.vmetric=i;this.operatorListId=o;this.isSpace=c;this.isInFont=l;const h=(0,s.getCharUnicodeCategory)(a);this.isWhitespace=h.isWhitespace;this.isZeroWidthDiacritic=h.isZeroWidthDiacritic;this.isInvisibleFormatMark=h.isInvisibleFormatMark}matchesForCache(e,t,a,r,n,i,s,o,c){return this.originalCharCode===e&&this.fontChar===t&&this.unicode===a&&this.accent===r&&this.width===n&&this.vmetric===i&&this.operatorListId===s&&this.isSpace===o&&this.isInFont===c}}function int16(e,t){return(e<<8)+t}function writeSignedInt16(e,t,a){e[t+1]=a;e[t]=a>>>8}function signedInt16(e,t){const a=(e<<8)+t;return 32768&a?a-65536:a}function string16(e){return String.fromCharCode(e>>8&255,255&e)}function safeString16(e){e>32767?e=32767:e<-32768&&(e=-32768);return String.fromCharCode(e>>8&255,255&e)}function isTrueTypeCollectionFile(e){const t=e.peekBytes(4);return"ttcf"===(0,r.bytesToString)(t)}function getFontFileType(e,{type:t,subtype:a,composite:n}){let i,s;if(function isTrueTypeFile(e){const t=e.peekBytes(4);return 65536===(0,b.readUint32)(t,0)||"true"===(0,r.bytesToString)(t)}(e)||isTrueTypeCollectionFile(e))i=n?"CIDFontType2":"TrueType";else if(function isOpenTypeFile(e){const t=e.peekBytes(4);return"OTTO"===(0,r.bytesToString)(t)}(e))i=n?"CIDFontType2":"OpenType";else if(function isType1File(e){const t=e.peekBytes(2);return 37===t[0]&&33===t[1]||128===t[0]&&1===t[1]}(e))i=n?"CIDFontType0":"MMType1"===t?"MMType1":"Type1";else if(function isCFFFile(e){const t=e.peekBytes(4);return t[0]>=1&&t[3]>=1&&t[3]<=4}(e))if(n){i="CIDFontType0";s="CIDFontType0C"}else{i="MMType1"===t?"MMType1":"Type1";s="Type1C"}else{(0,r.warn)("getFontFileType: Unable to detect correct font file Type/Subtype.");i=t;s=a}return[i,s]}function applyStandardFontGlyphMap(e,t){for(const a in t)e[+a]=t[a]}function buildToFontChar(e,t,a){const r=[];let n;for(let a=0,i=e.length;ac){s++;if(s>=S.length){(0,r.warn)("Ran out of space in font private use area.");break}o=S[s][0];c=S[s][1]}const u=o++;0===h&&(h=a);n[u]=h;i[l]=u}return{toFontChar:i,charCodeToGlyphId:n,nextAvailableFontCharCode:o}}function createCmapTable(e,t){const a=function getRanges(e,t){const a=[];for(const r in e)e[r]>=t||a.push({fontCharCode:0|r,glyphId:e[r]});0===a.length&&a.push({fontCharCode:0,glyphId:0});a.sort((function fontGetRangesSort(e,t){return e.fontCharCode-t.fontCharCode}));const r=[],n=a.length;for(let e=0;e65535?2:1;let i,s,o,c,l="\0\0"+string16(n)+"\0\0"+(0,r.string32)(4+8*n);for(i=a.length-1;i>=0&&!(a[i][0]<=65535);--i);const h=i+1;a[i][0]<65535&&65535===a[i][1]&&(a[i][1]=65534);const u=a[i][1]<65535?1:0,d=h+u,f=m.OpenTypeFileBuilder.getSearchParams(d,2);let g,p,b,y,w="",S="",x="",k="",C="",v=0;for(i=0,s=h;i0){S+="ÿÿ";w+="ÿÿ";x+="\0";k+="\0\0"}const F="\0\0"+string16(2*d)+string16(f.range)+string16(f.entry)+string16(f.rangeShift)+S+"\0\0"+w+x+k+C;let O="",T="";if(n>1){l+="\0\0\n"+(0,r.string32)(4+8*n+4+F.length);O="";for(i=0,s=a.length;ie||!l)&&(l=e);h 123 are reserved for internal usage");c|=1<65535&&(h=65535)}else{l=0;h=255}const u=e.bbox||[0,0,0,0],d=a.unitsPerEm||1/(e.fontMatrix||r.FONT_IDENTITY_MATRIX)[0],f=e.ascentScaled?1:d/x,g=a.ascent||Math.round(f*(e.ascent||u[3]));let p=a.descent||Math.round(f*(e.descent||u[1]));p>0&&e.descent>0&&u[1]<0&&(p=-p);const m=a.yMax||g,b=-a.yMin||-p;return"\0$ô\0\0\0Š»\0\0\0ŒŠ»\0\0ß\x001\0\0\0\0"+String.fromCharCode(e.fixedPitch?9:0)+"\0\0\0\0\0\0"+(0,r.string32)(n)+(0,r.string32)(i)+(0,r.string32)(o)+(0,r.string32)(c)+"*21*"+string16(e.italicAngle?1:0)+string16(l||e.firstChar)+string16(h||e.lastChar)+string16(g)+string16(p)+"\0d"+string16(m)+string16(b)+"\0\0\0\0\0\0\0\0"+string16(e.xHeight)+string16(e.capHeight)+string16(0)+string16(l||e.firstChar)+"\0"}function createPostTable(e){const t=Math.floor(65536*e.italicAngle);return"\0\0\0"+(0,r.string32)(t)+"\0\0\0\0"+(0,r.string32)(e.fixedPitch?1:0)+"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}function createPostscriptName(e){return e.replace(/[^\x21-\x7E]|[[\](){}<>/%]/g,"").slice(0,63)}function createNameTable(e,t){t||(t=[[],[]]);const a=[t[0][0]||"Original licence",t[0][1]||e,t[0][2]||"Unknown",t[0][3]||"uniqueID",t[0][4]||e,t[0][5]||"Version 0.11",t[0][6]||createPostscriptName(e),t[0][7]||"Unknown",t[0][8]||"Unknown",t[0][9]||"Unknown"],r=[];let n,i,s,o,c;for(n=0,i=a.length;n0;if((p||m)&&"CIDFontType2"===a&&this.cidEncoding.startsWith("Identity-")){const a=e.cidToGidMap,r=[];applyStandardFontGlyphMap(r,(0,l.getGlyphMapForStandardFonts)());/Arial-?Black/i.test(t)?applyStandardFontGlyphMap(r,(0,l.getSupplementalGlyphMapForArialBlack)()):/Calibri/i.test(t)&&applyStandardFontGlyphMap(r,(0,l.getSupplementalGlyphMapForCalibri)());if(a){for(const e in r){const t=r[e];void 0!==a[t]&&(r[+e]=a[t])}a.length!==this.toUnicode.length&&e.hasIncludedToUnicodeMap&&this.toUnicode instanceof h.IdentityToUnicodeMap&&this.toUnicode.forEach((function(e,t){const n=r[e];void 0===a[n]&&(r[+e]=t)}))}this.toUnicode instanceof h.IdentityToUnicodeMap||this.toUnicode.forEach((function(e,t){r[+e]=t}));this.toFontChar=r;this.toUnicode=new h.ToUnicodeMap(r)}else if(/Symbol/i.test(u))this.toFontChar=buildToFontChar(c.SymbolSetEncoding,(0,o.getGlyphsUnicode)(),this.differences);else if(/Dingbats/i.test(u)){/Wingdings/i.test(t)&&(0,r.warn)("Non-embedded Wingdings font, falling back to ZapfDingbats.");this.toFontChar=buildToFontChar(c.ZapfDingbatsEncoding,(0,o.getDingbatsGlyphsUnicode)(),this.differences)}else if(p){const e=buildToFontChar(this.defaultEncoding,(0,o.getGlyphsUnicode)(),this.differences);"CIDFontType2"!==a||this.cidEncoding.startsWith("Identity-")||this.toUnicode instanceof h.IdentityToUnicodeMap||this.toUnicode.forEach((function(t,a){e[+t]=a}));this.toFontChar=e}else{const e=(0,o.getGlyphsUnicode)(),a=[];this.toUnicode.forEach(((t,r)=>{if(!this.composite){const a=this.differences[t]||this.defaultEncoding[t],n=(0,s.getUnicodeForGlyph)(a,e);-1!==n&&(r=n)}a[+t]=r}));this.composite&&this.toUnicode instanceof h.IdentityToUnicodeMap&&/Verdana/i.test(t)&&applyStandardFontGlyphMap(a,(0,l.getGlyphMapForStandardFonts)());this.toFontChar=a}amendFallbackToUnicode(e);this.loadedName=u.split("-")[0];this.fontType=(0,i.getFontType)(a,n,e.isStandardFont)}checkAndRepair(e,t,a){const s=["OS/2","cmap","head","hhea","hmtx","maxp","name","post","loca","glyf","fpgm","prep","cvt ","CFF "];function readTables(e,t){const a=Object.create(null);a["OS/2"]=null;a.cmap=null;a.head=null;a.hhea=null;a.hmtx=null;a.maxp=null;a.name=null;a.post=null;for(let r=0;r>>0,r=e.getInt32()>>>0,n=e.getInt32()>>>0,i=e.pos;e.pos=e.start?e.start:0;e.skip(r);const s=e.getBytes(n);e.pos=i;if("head"===t){s[8]=s[9]=s[10]=s[11]=0;s[17]|=32}return{tag:t,checksum:a,length:n,offset:r,data:s}}function readOpenTypeHeader(e){return{version:e.getString(4),numTables:e.getUint16(),searchRange:e.getUint16(),entrySelector:e.getUint16(),rangeShift:e.getUint16()}}function sanitizeGlyph(e,t,a,r,n,i){const s={length:0,sizeOfInstructions:0};if(a-t<=12)return s;const o=e.subarray(t,a);let c=signedInt16(o[0],o[1]);if(c<0){c=-1;writeSignedInt16(o,0,c);r.set(o,n);s.length=o.length;return s}let l,h=10,u=0;for(l=0;lo.length)return s;if(!i&&f>0){r.set(o.subarray(0,d),n);r.set([0,0],n+d);r.set(o.subarray(g,m),n+d+2);m-=f;o.length-m>3&&(m=m+3&-4);s.length=m;return s}if(o.length-m>3){m=m+3&-4;r.set(o.subarray(0,m),n);s.length=m;return s}r.set(o,n);s.length=o.length;return s}function readNameTable(e){const a=(t.start?t.start:0)+e.offset;t.pos=a;const r=[[],[]],n=e.length,i=a+n;if(0!==t.getUint16()||n<6)return r;const s=t.getUint16(),o=t.getUint16(),c=[];let l,h;for(l=0;li)continue;t.pos=n;const s=e.name;if(e.encoding){let a="";for(let r=0,n=e.length;r0&&(h+=e-1)}}else{if(b||w){(0,r.warn)("TT: nested FDEFs not allowed");m=!0}b=!0;d=h;s=f.pop();t.functionsDefined[s]={data:c,i:h}}else if(!b&&!w){s=f[f.length-1];if(isNaN(s))(0,r.info)("TT: CALL empty stack (or invalid entry).");else{t.functionsUsed[s]=!0;if(s in t.functionsStackDeltas){const e=f.length+t.functionsStackDeltas[s];if(e<0){(0,r.warn)("TT: CALL invalid functions stack delta.");t.hintsValid=!1;return}f.length=e}else if(s in t.functionsDefined&&!p.includes(s)){g.push({data:c,i:h,stackTop:f.length-1});p.push(s);o=t.functionsDefined[s];if(!o){(0,r.warn)("TT: CALL non-existent function");t.hintsValid=!1;return}c=o.data;h=o.i}}}if(!b&&!w){let t=0;e<=142?t=l[e]:e>=192&&e<=223?t=-1:e>=224&&(t=-2);if(e>=113&&e<=117){n=f.pop();isNaN(n)||(t=2*-n)}for(;t<0&&f.length>0;){f.pop();t++}for(;t>0;){f.push(NaN);t--}}}t.tooComplexToFollowFunctions=m;const S=[c];h>c.length&&S.push(new Uint8Array(h-c.length));if(d>u){(0,r.warn)("TT: complementing a missing function tail");S.push(new Uint8Array([34,45]))}!function foldTTTable(e,t){if(t.length>1){let a,r,n=0;for(a=0,r=t.length;a>>0,s=[];for(let t=0;t>>0);const o={ttcTag:t,majorVersion:a,minorVersion:n,numFonts:i,offsetTable:s};switch(a){case 1:return o;case 2:o.dsigTag=e.getInt32()>>>0;o.dsigLength=e.getInt32()>>>0;o.dsigOffset=e.getInt32()>>>0;return o}throw new r.FormatError(`Invalid TrueType Collection majorVersion: ${a}.`)}(e),i=t.split("+");let s;for(let o=0;o0||!(a.cMap instanceof p.IdentityCMap));if("OTTO"===d.version&&!t||!f.head||!f.hhea||!f.maxp||!f.post){w=new y.Stream(f["CFF "].data);b=new u.CFFFont(w,a);adjustWidths(a);return this.convert(e,b,a)}delete f.glyf;delete f.loca;delete f.fpgm;delete f.prep;delete f["cvt "];this.isOpenType=!0}if(!f.maxp)throw new r.FormatError('Required "maxp" table is not found');t.pos=(t.start||0)+f.maxp.offset;const x=t.getInt32(),k=t.getUint16();if(a.scaleFactors&&a.scaleFactors.length===k&&S){const{scaleFactors:e}=a,t=int16(f.head.data[50],f.head.data[51]),r=new g.GlyfTable({glyfTable:f.glyf.data,isGlyphLocationsLong:t,locaTable:f.loca.data,numGlyphs:k});r.scale(e);const{glyf:n,loca:i,isLocationLong:s}=r.write();f.glyf.data=n;f.loca.data=i;if(s!==!!t){f.head.data[50]=0;f.head.data[51]=s?1:0}const o=f.hmtx.data;for(let t=0;t>8&255;o[a+1]=255&r;writeSignedInt16(o,a+2,Math.round(e[t]*signedInt16(o[a+2],o[a+3])))}}let C=k+1,v=!0;if(C>65535){v=!1;C=k;(0,r.warn)("Not enough space in glyfs to duplicate first glyph.")}let F=0,O=0;if(x>=65536&&f.maxp.length>=22){t.pos+=8;if(t.getUint16()>2){f.maxp.data[14]=0;f.maxp.data[15]=2}t.pos+=4;F=t.getUint16();t.pos+=4;O=t.getUint16()}f.maxp.data[4]=C>>8;f.maxp.data[5]=255&C;const T=function sanitizeTTPrograms(e,t,a,n){const i={functionsDefined:[],functionsUsed:[],functionsStackDeltas:[],tooComplexToFollowFunctions:!1,hintsValid:!0};e&&sanitizeTTProgram(e,i);t&&sanitizeTTProgram(t,i);e&&function checkInvalidFunctions(e,t){if(!e.tooComplexToFollowFunctions)if(e.functionsDefined.length>t){(0,r.warn)("TT: more functions defined than expected");e.hintsValid=!1}else for(let a=0,n=e.functionsUsed.length;at){(0,r.warn)("TT: invalid function id: "+a);e.hintsValid=!1;return}if(e.functionsUsed[a]&&!e.functionsDefined[a]){(0,r.warn)("TT: undefined function: "+a);e.hintsValid=!1;return}}}(i,n);if(a&&1&a.length){const e=new Uint8Array(a.length+1);e.set(a.data);a.data=e}return i.hintsValid}(f.fpgm,f.prep,f["cvt "],F);if(!T){delete f.fpgm;delete f.prep;delete f["cvt "]}!function sanitizeMetrics(e,t,a,n,i,s){if(!t){a&&(a.data=null);return}e.pos=(e.start?e.start:0)+t.offset;e.pos+=4;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;const o=e.getUint16();e.pos+=8;e.pos+=2;let c=e.getUint16();if(0!==o){if(!(2&int16(n.data[44],n.data[45]))){t.data[22]=0;t.data[23]=0}}if(c>i){(0,r.info)(`The numOfMetrics (${c}) should not be greater than the numGlyphs (${i}).`);c=i;t.data[34]=(65280&c)>>8;t.data[35]=255&c}const l=i-c-(a.length-4*c>>1);if(l>0){const e=new Uint8Array(a.length+2*l);e.set(a.data);if(s){e[a.length]=a.data[2];e[a.length+1]=a.data[3]}a.data=e}}(t,f.hhea,f.hmtx,f.head,C,v);if(!f.head)throw new r.FormatError('Required "head" table is not found');!function sanitizeHead(e,t,a){const n=e.data,i=function int32(e,t,a,r){return(e<<24)+(t<<16)+(a<<8)+r}(n[0],n[1],n[2],n[3]);if(i>>16!=1){(0,r.info)("Attempting to fix invalid version in head table: "+i);n[0]=0;n[1]=1;n[2]=0;n[3]=0}const s=int16(n[50],n[51]);if(s<0||s>1){(0,r.info)("Attempting to fix invalid indexToLocFormat in head table: "+s);const e=t+1;if(a===e<<1){n[50]=0;n[51]=0}else{if(a!==e<<2)throw new r.FormatError("Could not fix indexToLocFormat: "+s);n[50]=0;n[51]=1}}}(f.head,k,S?f.loca.length:0);let M=Object.create(null);if(S){const e=int16(f.head.data[50],f.head.data[51]),t=function sanitizeGlyphLocations(e,t,a,r,n,i,s){let o,c,l;if(r){o=4;c=function fontItemDecodeLong(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]};l=function fontItemEncodeLong(e,t,a){e[t]=a>>>24&255;e[t+1]=a>>16&255;e[t+2]=a>>8&255;e[t+3]=255&a}}else{o=2;c=function fontItemDecode(e,t){return e[t]<<9|e[t+1]<<1};l=function fontItemEncode(e,t,a){e[t]=a>>9&255;e[t+1]=a>>1&255}}const h=i?a+1:a,u=o*(1+h),d=new Uint8Array(u);d.set(e.data.subarray(0,u));e.data=d;const f=t.data,g=f.length,p=new Uint8Array(g);let m,b;const y=[];for(m=0,b=0;mg&&(e=g);y.push({index:m,offset:e,endOffset:0})}y.sort(((e,t)=>e.offset-t.offset));for(m=0;me.index-t.index));for(m=0;ms&&(s=e.sizeOfInstructions);S+=t;l(d,b,S)}if(0===S){const e=new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,49,0]);for(m=0,b=o;ma+S)t.data=p.subarray(0,a+S);else{t.data=new Uint8Array(a+S);t.data.set(p.subarray(0,S))}t.data.set(p.subarray(0,a),S);l(e.data,d.length-o,S+a)}else t.data=p.subarray(0,S);return{missingGlyphs:w,maxSizeOfInstructions:s}}(f.loca,f.glyf,k,e,T,v,O);M=t.missingGlyphs;if(x>=65536&&f.maxp.length>=22){f.maxp.data[26]=t.maxSizeOfInstructions>>8;f.maxp.data[27]=255&t.maxSizeOfInstructions}}if(!f.hhea)throw new r.FormatError('Required "hhea" table is not found');if(0===f.hhea.data[10]&&0===f.hhea.data[11]){f.hhea.data[10]=255;f.hhea.data[11]=255}const E={unitsPerEm:int16(f.head.data[18],f.head.data[19]),yMax:int16(f.head.data[42],f.head.data[43]),yMin:signedInt16(f.head.data[38],f.head.data[39]),ascent:signedInt16(f.hhea.data[4],f.hhea.data[5]),descent:signedInt16(f.hhea.data[6],f.hhea.data[7]),lineGap:signedInt16(f.hhea.data[8],f.hhea.data[9])};this.ascent=E.ascent/E.unitsPerEm;this.descent=E.descent/E.unitsPerEm;this.lineGap=E.lineGap/E.unitsPerEm;if(this.cssFontInfo&&this.cssFontInfo.lineHeight){this.lineHeight=this.cssFontInfo.metrics.lineHeight;this.lineGap=this.cssFontInfo.metrics.lineGap}else this.lineHeight=this.ascent-this.descent+this.lineGap;f.post&&function readPostScriptTable(e,a,n){const s=(t.start?t.start:0)+e.offset;t.pos=s;const o=s+e.length,c=t.getInt32();t.skip(28);let l,h,u=!0;switch(c){case 65536:l=i.MacStandardGlyphOrdering;break;case 131072:const e=t.getUint16();if(e!==n){u=!1;break}const s=[];for(h=0;h=32768){u=!1;break}s.push(e)}if(!u)break;const d=[],f=[];for(;t.pos65535)throw new r.FormatError("Max size of CID is 65,535");let i=-1;t?i=n:void 0!==e[n]&&(i=e[n]);i>=0&&i>>0;let h=!1;if(!c||c.platformId!==r||c.encodingId!==i){if(0!==r||0!==i&&1!==i&&3!==i)if(1===r&&0===i)h=!0;else if(3!==r||1!==i||!n&&c){if(a&&3===r&&0===i){h=!0;let a=!0;if(e>3;e.push(r);a=Math.max(r,a)}const r=[];for(let e=0;e<=a;e++)r.push({firstCode:t.getUint16(),entryCount:t.getUint16(),idDelta:signedInt16(t.getByte(),t.getByte()),idRangePos:t.pos+t.getUint16()});for(let a=0;a<256;a++)if(0===e[a]){t.pos=r[0].idRangePos+2*a;g=t.getUint16();d.push({charCode:a,glyphId:g})}else{const n=r[e[a]];for(f=0;f>1;t.skip(6);const a=[];let r;for(r=0;r>1)-(e-r);i.offsetIndex=n;o=Math.max(o,n+i.end-i.start+1)}else i.offsetIndex=-1}const c=[];for(f=0;f>>0;for(f=0;f>>0,a=t.getInt32()>>>0;let r=t.getInt32()>>>0;for(let t=e;t<=a;t++)d.push({charCode:t,glyphId:r++})}}}d.sort((function(e,t){return e.charCode-t.charCode}));for(let e=1;e=61440&&t<=61695&&(t&=255);D[t]=l[e].glyphId}if(a.glyphNames&&(d.length||this.differences.length))for(let e=0;e<256;++e){if(!g&&void 0!==D[e])continue;const t=this.differences[e]||d[e];if(!t)continue;const r=a.glyphNames.indexOf(t);r>0&&hasGlyph(r)&&(D[e]=r)}}0===D.length&&(D[0]=0);let N=C-1;v||(N=0);if(!a.cssFontInfo){const e=adjustMapping(D,hasGlyph,N);this.toFontChar=e.toFontChar;f.cmap={tag:"cmap",data:createCmapTable(e.charCodeToGlyphId,C)};f["OS/2"]&&function validateOS2Table(e,t){t.pos=(t.start||0)+e.offset;const a=t.getUint16();t.skip(60);const r=t.getUint16();if(a<4&&768&r)return!1;if(t.getUint16()>t.getUint16())return!1;t.skip(6);if(0===t.getUint16())return!1;e.data[8]=e.data[9]=0;return!0}(f["OS/2"],t)||(f["OS/2"]={tag:"OS/2",data:createOS2Table(a,e.charCodeToGlyphId,E)})}if(!S)try{w=new y.Stream(f["CFF "].data);b=new n.CFFParser(w,a,i.SEAC_ANALYSIS_ENABLED).parse();b.duplicateFirstGlyph();const e=new n.CFFCompiler(b);f["CFF "].data=e.compile()}catch(e){(0,r.warn)("Failed to compile font "+a.loadedName)}if(f.name){const t=readNameTable(f.name);f.name.data=createNameTable(e,t);this.psName=t[0][6]||null}else f.name={tag:"name",data:createNameTable(this.name)};const L=new m.OpenTypeFileBuilder(d.version);for(const e in f)L.addTable(e,f[e].data);return L.toArray()}convert(e,t,a){a.fixedPitch=!1;a.builtInEncoding&&function adjustToUnicode(e,t){if(e.isInternalFont)return;if(t===e.defaultEncoding)return;if(e.toUnicode instanceof h.IdentityToUnicodeMap)return;const a=[],r=(0,o.getGlyphsUnicode)();for(const n in t){if(e.hasIncludedToUnicodeMap){if(e.toUnicode.has(n))continue}else if(e.hasEncoding&&(0===e.differences.length||void 0!==e.differences[n]))continue;const i=t[n],o=(0,s.getUnicodeForGlyph)(i,r);-1!==o&&(a[n]=String.fromCharCode(o))}a.length>0&&e.toUnicode.amend(a)}(a,a.builtInEncoding);let n=1;t instanceof u.CFFFont&&(n=t.numGlyphs-1);const l=t.getGlyphMapping(a);let d=null,f=l;if(!a.cssFontInfo){d=adjustMapping(l,t.hasGlyphId.bind(t),n);this.toFontChar=d.toFontChar;f=d.charCodeToGlyphId}const g=t.numGlyphs;function getCharCodes(e,t){let a=null;for(const r in e)if(t===e[r]){a||(a=[]);a.push(0|r)}return a}function createCharCode(e,t){for(const a in e)if(t===e[a])return 0|a;d.charCodeToGlyphId[d.nextAvailableFontCharCode]=t;return d.nextAvailableFontCharCode++}const p=t.seacs;if(d&&i.SEAC_ANALYSIS_ENABLED&&p&&p.length){const e=a.fontMatrix||r.FONT_IDENTITY_MATRIX,n=t.getCharset(),i=Object.create(null);for(let t in p){t|=0;const a=p[t],r=c.StandardEncoding[a[2]],s=c.StandardEncoding[a[3]],o=n.indexOf(r),h=n.indexOf(s);if(o<0||h<0)continue;const u={x:a[0]*e[0]+a[1]*e[2]+e[4],y:a[0]*e[1]+a[1]*e[3]+e[5]},f=getCharCodes(l,t);if(f)for(let e=0,t=f.length;et.length%2==1,r=this.toUnicode instanceof h.IdentityToUnicodeMap?e=>this.toUnicode.charCodeOf(e):e=>this.toUnicode.charCodeOf(String.fromCodePoint(e));for(let n=0,i=e.length;n55295&&(i<57344||i>65533)&&n++;if(this.toUnicode){const e=r(i);if(-1!==e){if(hasCurrentBufErrors()){t.push(a.join(""));a.length=0}for(let t=(this.cMap?this.cMap.getCharCodeLength(e):1)-1;t>=0;t--)a.push(String.fromCharCode(e>>8*t&255));continue}}if(!hasCurrentBufErrors()){t.push(a.join(""));a.length=0}a.push(String.fromCodePoint(i))}t.push(a.join(""));return t}};t.ErrorFont=class ErrorFont{constructor(e){this.error=e;this.loadedName="g_font_error";this.missingFile=!0}charsToGlyphs(){return[]}encodeString(e){return[e]}exportData(e=!1){return{error:this.error}}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.CFFTopDict=t.CFFStrings=t.CFFStandardStrings=t.CFFPrivateDict=t.CFFParser=t.CFFIndex=t.CFFHeader=t.CFFFDSelect=t.CFFCompiler=t.CFFCharset=t.CFF=void 0;var r=a(2),n=a(46),i=a(19);const s=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"];t.CFFStandardStrings=s;const o=391,c=function CFFParserClosure(){const e=[null,{id:"hstem",min:2,stackClearing:!0,stem:!0},null,{id:"vstem",min:2,stackClearing:!0,stem:!0},{id:"vmoveto",min:1,stackClearing:!0},{id:"rlineto",min:2,resetStack:!0},{id:"hlineto",min:1,resetStack:!0},{id:"vlineto",min:1,resetStack:!0},{id:"rrcurveto",min:6,resetStack:!0},null,{id:"callsubr",min:1,undefStack:!0},{id:"return",min:0,undefStack:!0},null,null,{id:"endchar",min:0,stackClearing:!0},null,null,null,{id:"hstemhm",min:2,stackClearing:!0,stem:!0},{id:"hintmask",min:0,stackClearing:!0},{id:"cntrmask",min:0,stackClearing:!0},{id:"rmoveto",min:2,stackClearing:!0},{id:"hmoveto",min:1,stackClearing:!0},{id:"vstemhm",min:2,stackClearing:!0,stem:!0},{id:"rcurveline",min:8,resetStack:!0},{id:"rlinecurve",min:8,resetStack:!0},{id:"vvcurveto",min:4,resetStack:!0},{id:"hhcurveto",min:4,resetStack:!0},null,{id:"callgsubr",min:1,undefStack:!0},{id:"vhcurveto",min:4,resetStack:!0},{id:"hvcurveto",min:4,resetStack:!0}],t=[null,null,null,{id:"and",min:2,stackDelta:-1},{id:"or",min:2,stackDelta:-1},{id:"not",min:1,stackDelta:0},null,null,null,{id:"abs",min:1,stackDelta:0},{id:"add",min:2,stackDelta:-1,stackFn:function stack_div(e,t){e[t-2]=e[t-2]+e[t-1]}},{id:"sub",min:2,stackDelta:-1,stackFn:function stack_div(e,t){e[t-2]=e[t-2]-e[t-1]}},{id:"div",min:2,stackDelta:-1,stackFn:function stack_div(e,t){e[t-2]=e[t-2]/e[t-1]}},null,{id:"neg",min:1,stackDelta:0,stackFn:function stack_div(e,t){e[t-1]=-e[t-1]}},{id:"eq",min:2,stackDelta:-1},null,null,{id:"drop",min:1,stackDelta:-1},null,{id:"put",min:2,stackDelta:-2},{id:"get",min:1,stackDelta:0},{id:"ifelse",min:4,stackDelta:-3},{id:"random",min:0,stackDelta:1},{id:"mul",min:2,stackDelta:-1,stackFn:function stack_div(e,t){e[t-2]=e[t-2]*e[t-1]}},null,{id:"sqrt",min:1,stackDelta:0},{id:"dup",min:1,stackDelta:1},{id:"exch",min:2,stackDelta:0},{id:"index",min:2,stackDelta:0},{id:"roll",min:3,stackDelta:-2},null,null,null,{id:"hflex",min:7,resetStack:!0},{id:"flex",min:13,resetStack:!0},{id:"hflex1",min:9,resetStack:!0},{id:"flex1",min:11,resetStack:!0}];return class CFFParser{constructor(e,t,a){this.bytes=e.getBytes();this.properties=t;this.seacAnalysisEnabled=!!a}parse(){const e=this.properties,t=new CFF;this.cff=t;const a=this.parseHeader(),r=this.parseIndex(a.endPos),n=this.parseIndex(r.endPos),i=this.parseIndex(n.endPos),s=this.parseIndex(i.endPos),o=this.parseDict(n.obj.get(0)),c=this.createDict(l,o,t.strings);t.header=a.obj;t.names=this.parseNameIndex(r.obj);t.strings=this.parseStringIndex(i.obj);t.topDict=c;t.globalSubrIndex=s.obj;this.parsePrivateDict(t.topDict);t.isCIDFont=c.hasName("ROS");const h=c.getByName("CharStrings"),u=this.parseIndex(h).obj,d=c.getByName("FontMatrix");d&&(e.fontMatrix=d);const f=c.getByName("FontBBox");if(f){e.ascent=Math.max(f[3],f[1]);e.descent=Math.min(f[1],f[3]);e.ascentScaled=!0}let g,p;if(t.isCIDFont){const e=this.parseIndex(c.getByName("FDArray")).obj;for(let a=0,r=e.count;a=t)throw new r.FormatError("Invalid CFF header");if(0!==a){(0,r.info)("cff data is shifted");e=e.subarray(a);this.bytes=e}const n=e[0],i=e[1],s=e[2],o=e[3];return{obj:new CFFHeader(n,i,s,o),endPos:s}}parseDict(e){let t=0;function parseOperand(){let a=e[t++];if(30===a)return function parseFloatOperand(){let a="";const r=15,n=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"],i=e.length;for(;t>4,o=15&i;if(s===r)break;a+=n[s];if(o===r)break;a+=n[o]}return parseFloat(a)}();if(28===a){a=e[t++];a=(a<<24|e[t++]<<16)>>16;return a}if(29===a){a=e[t++];a=a<<8|e[t++];a=a<<8|e[t++];a=a<<8|e[t++];return a}if(a>=32&&a<=246)return a-139;if(a>=247&&a<=250)return 256*(a-247)+e[t++]+108;if(a>=251&&a<=254)return-256*(a-251)-e[t++]-108;(0,r.warn)('CFFParser_parseDict: "'+a+'" is a reserved command.');return NaN}let a=[];const n=[];t=0;const i=e.length;for(;t10)return!1;let o=a.stackSize;const c=a.stack,l=n.length;for(let h=0;h>16;h+=2;o++}else if(14===l){if(o>=4){o-=4;if(this.seacAnalysisEnabled){a.seac=c.slice(o,o+4);return!1}}u=e[l]}else if(l>=32&&l<=246){c[o]=l-139;o++}else if(l>=247&&l<=254){c[o]=l<251?(l-247<<8)+n[h]+108:-(l-251<<8)-n[h]-108;h++;o++}else if(255===l){c[o]=(n[h]<<24|n[h+1]<<16|n[h+2]<<8|n[h+3])/65536;h+=4;o++}else if(19===l||20===l){a.hints+=o>>1;h+=a.hints+7>>3;o%=2;u=e[l]}else{if(10===l||29===l){let t;t=10===l?i:s;if(!t){u=e[l];(0,r.warn)("Missing subrsIndex for "+u.id);return!1}let n=32768;t.count<1240?n=107:t.count<33900&&(n=1131);const h=c[--o]+n;if(h<0||h>=t.count||isNaN(h)){u=e[l];(0,r.warn)("Out of bounds subrIndex for "+u.id);return!1}a.stackSize=o;a.callDepth++;if(!this.parseCharString(a,t.get(h),i,s))return!1;a.callDepth--;o=a.stackSize;continue}if(11===l){a.stackSize=o;return!0}if(0===l&&h===n.length){n[h-1]=14;u=e[14]}else u=e[l]}if(u){if(u.stem){a.hints+=o>>1;if(3===l||23===l)a.hasVStems=!0;else if(a.hasVStems&&(1===l||18===l)){(0,r.warn)("CFF stem hints are in wrong order");n[h-1]=1===l?3:23}}if("min"in u&&!a.undefStack&&o=2&&u.stem?o%=2:o>1&&(0,r.warn)("Found too many parameters for stack-clearing command");o>0&&(a.width=c[o-1])}if("stackDelta"in u){"stackFn"in u&&u.stackFn(c,o);o+=u.stackDelta}else if(u.stackClearing)o=0;else if(u.resetStack){o=0;a.undefStack=!1}else if(u.undefStack){o=0;a.undefStack=!0;a.firstStackClearing=!1}}}a.stackSize=o;return!0}parseCharStrings({charStrings:e,localSubrIndex:t,globalSubrIndex:a,fdSelect:n,fdArray:i,privateDict:s}){const o=[],c=[],l=e.count;for(let h=0;h=i.length){(0,r.warn)("Invalid fd index for glyph index.");d=!1}if(d){g=i[e].privateDict;f=g.subrsIndex}}else t&&(f=t);d&&(d=this.parseCharString(u,l,f,a));if(null!==u.width){const e=g.getByName("nominalWidthX");c[h]=e+u.width}else{const e=g.getByName("defaultWidthX");c[h]=e}null!==u.seac&&(o[h]=u.seac);d||e.set(h,new Uint8Array([14]))}return{charStrings:e,seacs:o,widths:c}}emptyPrivateDictionary(e){const t=this.createDict(h,[],e.strings);e.setByKey(18,[0,0]);e.privateDict=t}parsePrivateDict(e){if(!e.hasName("Private")){this.emptyPrivateDictionary(e);return}const t=e.getByName("Private");if(!Array.isArray(t)||2!==t.length){e.removeByName("Private");return}const a=t[0],r=t[1];if(0===a||r>=this.bytes.length){this.emptyPrivateDictionary(e);return}const n=r+a,i=this.bytes.subarray(r,n),s=this.parseDict(i),o=this.createDict(h,s,e.strings);e.privateDict=o;if(!o.getByName("Subrs"))return;const c=o.getByName("Subrs"),l=r+c;if(0===c||l>=this.bytes.length){this.emptyPrivateDictionary(e);return}const u=this.parseIndex(l);o.subrsIndex=u.obj}parseCharsets(e,t,a,i){if(0===e)return new CFFCharset(!0,u.ISO_ADOBE,n.ISOAdobeCharset);if(1===e)return new CFFCharset(!0,u.EXPERT,n.ExpertCharset);if(2===e)return new CFFCharset(!0,u.EXPERT_SUBSET,n.ExpertSubsetCharset);const s=this.bytes,o=e,c=s[e++],l=[i?0:".notdef"];let h,d,f;t-=1;switch(c){case 0:for(f=0;f=65535){(0,r.warn)("Not enough space in charstrings to duplicate first glyph.");return}const e=this.charStrings.get(0);this.charStrings.add(e);this.isCIDFont&&this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0])}hasGlyphId(e){if(e<0||e>=this.charStrings.count)return!1;return this.charStrings.get(e).length>0}}t.CFF=CFF;class CFFHeader{constructor(e,t,a,r){this.major=e;this.minor=t;this.hdrSize=a;this.offSize=r}}t.CFFHeader=CFFHeader;class CFFStrings{constructor(){this.strings=[]}get(e){return e>=0&&e<=390?s[e]:e-o<=this.strings.length?this.strings[e-o]:s[0]}getSID(e){let t=s.indexOf(e);if(-1!==t)return t;t=this.strings.indexOf(e);return-1!==t?t+o:-1}add(e){this.strings.push(e)}get count(){return this.strings.length}}t.CFFStrings=CFFStrings;class CFFIndex{constructor(){this.objects=[];this.length=0}add(e){this.length+=e.length;this.objects.push(e)}set(e,t){this.length+=t.length-this.objects[e].length;this.objects[e]=t}get(e){return this.objects[e]}get count(){return this.objects.length}}t.CFFIndex=CFFIndex;class CFFDict{constructor(e,t){this.keyToNameMap=e.keyToNameMap;this.nameToKeyMap=e.nameToKeyMap;this.defaults=e.defaults;this.types=e.types;this.opcodes=e.opcodes;this.order=e.order;this.strings=t;this.values=Object.create(null)}setByKey(e,t){if(!(e in this.keyToNameMap))return!1;const a=t.length;if(0===a)return!0;for(let n=0;n=this.fdSelect.length?-1:this.fdSelect[e]}}t.CFFFDSelect=CFFFDSelect;class CFFOffsetTracker{constructor(){this.offsets=Object.create(null)}isTracking(e){return e in this.offsets}track(e,t){if(e in this.offsets)throw new r.FormatError(`Already tracking location of ${e}`);this.offsets[e]=t}offset(e){for(const t in this.offsets)this.offsets[t]+=e}setEntryLocation(e,t,a){if(!(e in this.offsets))throw new r.FormatError(`Not tracking location of ${e}`);const n=a.data,i=this.offsets[e];for(let e=0,a=t.length;e>24&255;n[o]=h>>16&255;n[c]=h>>8&255;n[l]=255&h}}}class CFFCompiler{constructor(e){this.cff=e}compile(){const e=this.cff,t={data:[],length:0,add:function CFFCompiler_add(e){this.data=this.data.concat(e);this.length=this.data.length}},a=this.compileHeader(e.header);t.add(a);const n=this.compileNameIndex(e.names);t.add(n);if(e.isCIDFont&&e.topDict.hasName("FontMatrix")){const t=e.topDict.getByName("FontMatrix");e.topDict.removeByName("FontMatrix");for(let a=0,n=e.fdArray.length;a16&&e.topDict.removeByName("XUID");e.topDict.setByName("charset",0);let s=this.compileTopDicts([e.topDict],t.length,e.isCIDFont);t.add(s.output);const o=s.trackers[0],c=this.compileStringIndex(e.strings.strings);t.add(c);const l=this.compileIndex(e.globalSubrIndex);t.add(l);if(e.encoding&&e.topDict.hasName("Encoding"))if(e.encoding.predefined)o.setEntryLocation("Encoding",[e.encoding.format],t);else{const a=this.compileEncoding(e.encoding);o.setEntryLocation("Encoding",[t.length],t);t.add(a)}const h=this.compileCharset(e.charset,e.charStrings.count,e.strings,e.isCIDFont);o.setEntryLocation("charset",[t.length],t);t.add(h);const u=this.compileCharStrings(e.charStrings);o.setEntryLocation("CharStrings",[t.length],t);t.add(u);if(e.isCIDFont){o.setEntryLocation("FDSelect",[t.length],t);const a=this.compileFDSelect(e.fdSelect);t.add(a);s=this.compileTopDicts(e.fdArray,t.length,!0);o.setEntryLocation("FDArray",[t.length],t);t.add(s.output);const r=s.trackers;this.compilePrivateDicts(e.fdArray,r,t)}this.compilePrivateDicts([e.topDict],[o],t);t.add([0]);return t.data}encodeNumber(e){return Number.isInteger(e)?this.encodeInteger(e):this.encodeFloat(e)}static get EncodeFloatRegExp(){return(0,r.shadow)(this,"EncodeFloatRegExp",/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/)}encodeFloat(e){let t=e.toString();const a=CFFCompiler.EncodeFloatRegExp.exec(t);if(a){const r=parseFloat("1e"+((a[2]?+a[2]:0)+a[1].length));t=(Math.round(e*r)/r).toString()}let r,n,i="";for(r=0,n=t.length;r=-107&&e<=107?[e+139]:e>=108&&e<=1131?[247+((e-=108)>>8),255&e]:e>=-1131&&e<=-108?[251+((e=-e-108)>>8),255&e]:e>=-32768&&e<=32767?[28,e>>8&255,255&e]:[29,e>>24&255,e>>16&255,e>>8&255,255&e];return t}compileHeader(e){return[e.major,e.minor,4,e.offSize]}compileNameIndex(e){const t=new CFFIndex;for(let a=0,n=e.length;a"~"||"["===t||"]"===t||"("===t||")"===t||"{"===t||"}"===t||"<"===t||">"===t||"/"===t||"%"===t)&&(t="_");s[e]=t}s=s.join("");""===s&&(s="Bad_Font_Name");t.add((0,r.stringToBytes)(s))}return this.compileIndex(t)}compileTopDicts(e,t,a){const r=[];let n=new CFFIndex;for(let i=0,s=e.length;i>8&255,255&s]);else{i=new Uint8Array(1+2*s);i[0]=0;let t=0;const n=e.charset.length;let o=!1;for(let s=1;s>8&255;i[s+1]=255&c}}return this.compileTypedArray(i)}compileEncoding(e){return this.compileTypedArray(e.raw)}compileFDSelect(e){const t=e.format;let a,r;switch(t){case 0:a=new Uint8Array(1+e.fdSelect.length);a[0]=t;for(r=0;r>8&255,255&n,i];for(r=1;r>8&255,255&r,t);i=t}}const o=(s.length-3)/3;s[1]=o>>8&255;s[2]=255&o;s.push(r>>8&255,255&r);a=new Uint8Array(s)}return this.compileTypedArray(a)}compileTypedArray(e){const t=[];for(let a=0,r=e.length;a>8&255,255&r];let i,s,o=1;for(i=0;i>8&255,255&c):3===s?n.push(c>>16&255,c>>8&255,255&c):n.push(c>>>24&255,c>>16&255,c>>8&255,255&c);a[i]&&(c+=a[i].length)}for(i=0;i{Object.defineProperty(t,"__esModule",{value:!0});t.ISOAdobeCharset=t.ExpertSubsetCharset=t.ExpertCharset=void 0;t.ISOAdobeCharset=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron"];t.ExpertCharset=[".notdef","space","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"];t.ExpertSubsetCharset=[".notdef","space","dollaroldstyle","dollarsuperior","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","hyphensuperior","colonmonetary","onefitted","rupiah","centoldstyle","figuredash","hypheninferior","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior"]},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.getSerifFonts=t.getNonStdFontMap=t.getGlyphMapForStandardFonts=t.getFontNameToFileMap=void 0;t.getStandardFontName=function getStandardFontName(e){const t=(0,n.normalizeFontName)(e);return i()[t]};t.getSymbolsFonts=t.getSupplementalGlyphMapForCalibri=t.getSupplementalGlyphMapForArialBlack=t.getStdFontMap=void 0;var r=a(8),n=a(18);const i=(0,r.getLookupTableFactory)((function(e){e["Times-Roman"]="Times-Roman";e.Helvetica="Helvetica";e.Courier="Courier";e.Symbol="Symbol";e["Times-Bold"]="Times-Bold";e["Helvetica-Bold"]="Helvetica-Bold";e["Courier-Bold"]="Courier-Bold";e.ZapfDingbats="ZapfDingbats";e["Times-Italic"]="Times-Italic";e["Helvetica-Oblique"]="Helvetica-Oblique";e["Courier-Oblique"]="Courier-Oblique";e["Times-BoldItalic"]="Times-BoldItalic";e["Helvetica-BoldOblique"]="Helvetica-BoldOblique";e["Courier-BoldOblique"]="Courier-BoldOblique";e.ArialNarrow="Helvetica";e["ArialNarrow-Bold"]="Helvetica-Bold";e["ArialNarrow-BoldItalic"]="Helvetica-BoldOblique";e["ArialNarrow-Italic"]="Helvetica-Oblique";e.ArialBlack="Helvetica";e["ArialBlack-Bold"]="Helvetica-Bold";e["ArialBlack-BoldItalic"]="Helvetica-BoldOblique";e["ArialBlack-Italic"]="Helvetica-Oblique";e["Arial-Black"]="Helvetica";e["Arial-Black-Bold"]="Helvetica-Bold";e["Arial-Black-BoldItalic"]="Helvetica-BoldOblique";e["Arial-Black-Italic"]="Helvetica-Oblique";e.Arial="Helvetica";e["Arial-Bold"]="Helvetica-Bold";e["Arial-BoldItalic"]="Helvetica-BoldOblique";e["Arial-Italic"]="Helvetica-Oblique";e["Arial-BoldItalicMT"]="Helvetica-BoldOblique";e["Arial-BoldMT"]="Helvetica-Bold";e["Arial-ItalicMT"]="Helvetica-Oblique";e.ArialMT="Helvetica";e["Courier-BoldItalic"]="Courier-BoldOblique";e["Courier-Italic"]="Courier-Oblique";e.CourierNew="Courier";e["CourierNew-Bold"]="Courier-Bold";e["CourierNew-BoldItalic"]="Courier-BoldOblique";e["CourierNew-Italic"]="Courier-Oblique";e["CourierNewPS-BoldItalicMT"]="Courier-BoldOblique";e["CourierNewPS-BoldMT"]="Courier-Bold";e["CourierNewPS-ItalicMT"]="Courier-Oblique";e.CourierNewPSMT="Courier";e["Helvetica-BoldItalic"]="Helvetica-BoldOblique";e["Helvetica-Italic"]="Helvetica-Oblique";e["Symbol-Bold"]="Symbol";e["Symbol-BoldItalic"]="Symbol";e["Symbol-Italic"]="Symbol";e.TimesNewRoman="Times-Roman";e["TimesNewRoman-Bold"]="Times-Bold";e["TimesNewRoman-BoldItalic"]="Times-BoldItalic";e["TimesNewRoman-Italic"]="Times-Italic";e.TimesNewRomanPS="Times-Roman";e["TimesNewRomanPS-Bold"]="Times-Bold";e["TimesNewRomanPS-BoldItalic"]="Times-BoldItalic";e["TimesNewRomanPS-BoldItalicMT"]="Times-BoldItalic";e["TimesNewRomanPS-BoldMT"]="Times-Bold";e["TimesNewRomanPS-Italic"]="Times-Italic";e["TimesNewRomanPS-ItalicMT"]="Times-Italic";e.TimesNewRomanPSMT="Times-Roman";e["TimesNewRomanPSMT-Bold"]="Times-Bold";e["TimesNewRomanPSMT-BoldItalic"]="Times-BoldItalic";e["TimesNewRomanPSMT-Italic"]="Times-Italic"}));t.getStdFontMap=i;const s=(0,r.getLookupTableFactory)((function(e){e.Courier="FoxitFixed.pfb";e["Courier-Bold"]="FoxitFixedBold.pfb";e["Courier-BoldOblique"]="FoxitFixedBoldItalic.pfb";e["Courier-Oblique"]="FoxitFixedItalic.pfb";e.Helvetica="FoxitSans.pfb";e["Helvetica-Bold"]="FoxitSansBold.pfb";e["Helvetica-BoldOblique"]="FoxitSansBoldItalic.pfb";e["Helvetica-Oblique"]="FoxitSansItalic.pfb";e["Times-Roman"]="FoxitSerif.pfb";e["Times-Bold"]="FoxitSerifBold.pfb";e["Times-BoldItalic"]="FoxitSerifBoldItalic.pfb";e["Times-Italic"]="FoxitSerifItalic.pfb";e.Symbol="FoxitSymbol.pfb";e.ZapfDingbats="FoxitDingbats.pfb";e["LiberationSans-Regular"]="LiberationSans-Regular.ttf";e["LiberationSans-Bold"]="LiberationSans-Bold.ttf";e["LiberationSans-Italic"]="LiberationSans-Italic.ttf";e["LiberationSans-BoldItalic"]="LiberationSans-BoldItalic.ttf"}));t.getFontNameToFileMap=s;const o=(0,r.getLookupTableFactory)((function(e){e.Calibri="Helvetica";e["Calibri-Bold"]="Helvetica-Bold";e["Calibri-BoldItalic"]="Helvetica-BoldOblique";e["Calibri-Italic"]="Helvetica-Oblique";e.CenturyGothic="Helvetica";e["CenturyGothic-Bold"]="Helvetica-Bold";e["CenturyGothic-BoldItalic"]="Helvetica-BoldOblique";e["CenturyGothic-Italic"]="Helvetica-Oblique";e.ComicSansMS="Comic Sans MS";e["ComicSansMS-Bold"]="Comic Sans MS-Bold";e["ComicSansMS-BoldItalic"]="Comic Sans MS-BoldItalic";e["ComicSansMS-Italic"]="Comic Sans MS-Italic";e["ItcSymbol-Bold"]="Helvetica-Bold";e["ItcSymbol-BoldItalic"]="Helvetica-BoldOblique";e["ItcSymbol-Book"]="Helvetica";e["ItcSymbol-BookItalic"]="Helvetica-Oblique";e["ItcSymbol-Medium"]="Helvetica";e["ItcSymbol-MediumItalic"]="Helvetica-Oblique";e.LucidaConsole="Courier";e["LucidaConsole-Bold"]="Courier-Bold";e["LucidaConsole-BoldItalic"]="Courier-BoldOblique";e["LucidaConsole-Italic"]="Courier-Oblique";e["LucidaSans-Demi"]="Helvetica-Bold";e["MS-Gothic"]="MS Gothic";e["MS-Gothic-Bold"]="MS Gothic-Bold";e["MS-Gothic-BoldItalic"]="MS Gothic-BoldItalic";e["MS-Gothic-Italic"]="MS Gothic-Italic";e["MS-Mincho"]="MS Mincho";e["MS-Mincho-Bold"]="MS Mincho-Bold";e["MS-Mincho-BoldItalic"]="MS Mincho-BoldItalic";e["MS-Mincho-Italic"]="MS Mincho-Italic";e["MS-PGothic"]="MS PGothic";e["MS-PGothic-Bold"]="MS PGothic-Bold";e["MS-PGothic-BoldItalic"]="MS PGothic-BoldItalic";e["MS-PGothic-Italic"]="MS PGothic-Italic";e["MS-PMincho"]="MS PMincho";e["MS-PMincho-Bold"]="MS PMincho-Bold";e["MS-PMincho-BoldItalic"]="MS PMincho-BoldItalic";e["MS-PMincho-Italic"]="MS PMincho-Italic";e.NuptialScript="Times-Italic";e.SegoeUISymbol="Helvetica";e.Wingdings="ZapfDingbats";e["Wingdings-Regular"]="ZapfDingbats"}));t.getNonStdFontMap=o;const c=(0,r.getLookupTableFactory)((function(e){e["Adobe Jenson"]=!0;e["Adobe Text"]=!0;e.Albertus=!0;e.Aldus=!0;e.Alexandria=!0;e.Algerian=!0;e["American Typewriter"]=!0;e.Antiqua=!0;e.Apex=!0;e.Arno=!0;e.Aster=!0;e.Aurora=!0;e.Baskerville=!0;e.Bell=!0;e.Bembo=!0;e["Bembo Schoolbook"]=!0;e.Benguiat=!0;e["Berkeley Old Style"]=!0;e["Bernhard Modern"]=!0;e["Berthold City"]=!0;e.Bodoni=!0;e["Bauer Bodoni"]=!0;e["Book Antiqua"]=!0;e.Bookman=!0;e["Bordeaux Roman"]=!0;e["Californian FB"]=!0;e.Calisto=!0;e.Calvert=!0;e.Capitals=!0;e.Cambria=!0;e.Cartier=!0;e.Caslon=!0;e.Catull=!0;e.Centaur=!0;e["Century Old Style"]=!0;e["Century Schoolbook"]=!0;e.Chaparral=!0;e["Charis SIL"]=!0;e.Cheltenham=!0;e["Cholla Slab"]=!0;e.Clarendon=!0;e.Clearface=!0;e.Cochin=!0;e.Colonna=!0;e["Computer Modern"]=!0;e["Concrete Roman"]=!0;e.Constantia=!0;e["Cooper Black"]=!0;e.Corona=!0;e.Ecotype=!0;e.Egyptienne=!0;e.Elephant=!0;e.Excelsior=!0;e.Fairfield=!0;e["FF Scala"]=!0;e.Folkard=!0;e.Footlight=!0;e.FreeSerif=!0;e["Friz Quadrata"]=!0;e.Garamond=!0;e.Gentium=!0;e.Georgia=!0;e.Gloucester=!0;e["Goudy Old Style"]=!0;e["Goudy Schoolbook"]=!0;e["Goudy Pro Font"]=!0;e.Granjon=!0;e["Guardian Egyptian"]=!0;e.Heather=!0;e.Hercules=!0;e["High Tower Text"]=!0;e.Hiroshige=!0;e["Hoefler Text"]=!0;e["Humana Serif"]=!0;e.Imprint=!0;e["Ionic No. 5"]=!0;e.Janson=!0;e.Joanna=!0;e.Korinna=!0;e.Lexicon=!0;e.LiberationSerif=!0;e["Liberation Serif"]=!0;e["Linux Libertine"]=!0;e.Literaturnaya=!0;e.Lucida=!0;e["Lucida Bright"]=!0;e.Melior=!0;e.Memphis=!0;e.Miller=!0;e.Minion=!0;e.Modern=!0;e["Mona Lisa"]=!0;e["Mrs Eaves"]=!0;e["MS Serif"]=!0;e["Museo Slab"]=!0;e["New York"]=!0;e["Nimbus Roman"]=!0;e["NPS Rawlinson Roadway"]=!0;e.NuptialScript=!0;e.Palatino=!0;e.Perpetua=!0;e.Plantin=!0;e["Plantin Schoolbook"]=!0;e.Playbill=!0;e["Poor Richard"]=!0;e["Rawlinson Roadway"]=!0;e.Renault=!0;e.Requiem=!0;e.Rockwell=!0;e.Roman=!0;e["Rotis Serif"]=!0;e.Sabon=!0;e.Scala=!0;e.Seagull=!0;e.Sistina=!0;e.Souvenir=!0;e.STIX=!0;e["Stone Informal"]=!0;e["Stone Serif"]=!0;e.Sylfaen=!0;e.Times=!0;e.Trajan=!0;e["Trinité"]=!0;e["Trump Mediaeval"]=!0;e.Utopia=!0;e["Vale Type"]=!0;e["Bitstream Vera"]=!0;e["Vera Serif"]=!0;e.Versailles=!0;e.Wanted=!0;e.Weiss=!0;e["Wide Latin"]=!0;e.Windsor=!0;e.XITS=!0}));t.getSerifFonts=c;const l=(0,r.getLookupTableFactory)((function(e){e.Dingbats=!0;e.Symbol=!0;e.ZapfDingbats=!0}));t.getSymbolsFonts=l;const h=(0,r.getLookupTableFactory)((function(e){e[2]=10;e[3]=32;e[4]=33;e[5]=34;e[6]=35;e[7]=36;e[8]=37;e[9]=38;e[10]=39;e[11]=40;e[12]=41;e[13]=42;e[14]=43;e[15]=44;e[16]=45;e[17]=46;e[18]=47;e[19]=48;e[20]=49;e[21]=50;e[22]=51;e[23]=52;e[24]=53;e[25]=54;e[26]=55;e[27]=56;e[28]=57;e[29]=58;e[30]=894;e[31]=60;e[32]=61;e[33]=62;e[34]=63;e[35]=64;e[36]=65;e[37]=66;e[38]=67;e[39]=68;e[40]=69;e[41]=70;e[42]=71;e[43]=72;e[44]=73;e[45]=74;e[46]=75;e[47]=76;e[48]=77;e[49]=78;e[50]=79;e[51]=80;e[52]=81;e[53]=82;e[54]=83;e[55]=84;e[56]=85;e[57]=86;e[58]=87;e[59]=88;e[60]=89;e[61]=90;e[62]=91;e[63]=92;e[64]=93;e[65]=94;e[66]=95;e[67]=96;e[68]=97;e[69]=98;e[70]=99;e[71]=100;e[72]=101;e[73]=102;e[74]=103;e[75]=104;e[76]=105;e[77]=106;e[78]=107;e[79]=108;e[80]=109;e[81]=110;e[82]=111;e[83]=112;e[84]=113;e[85]=114;e[86]=115;e[87]=116;e[88]=117;e[89]=118;e[90]=119;e[91]=120;e[92]=121;e[93]=122;e[94]=123;e[95]=124;e[96]=125;e[97]=126;e[98]=196;e[99]=197;e[100]=199;e[101]=201;e[102]=209;e[103]=214;e[104]=220;e[105]=225;e[106]=224;e[107]=226;e[108]=228;e[109]=227;e[110]=229;e[111]=231;e[112]=233;e[113]=232;e[114]=234;e[115]=235;e[116]=237;e[117]=236;e[118]=238;e[119]=239;e[120]=241;e[121]=243;e[122]=242;e[123]=244;e[124]=246;e[125]=245;e[126]=250;e[127]=249;e[128]=251;e[129]=252;e[130]=8224;e[131]=176;e[132]=162;e[133]=163;e[134]=167;e[135]=8226;e[136]=182;e[137]=223;e[138]=174;e[139]=169;e[140]=8482;e[141]=180;e[142]=168;e[143]=8800;e[144]=198;e[145]=216;e[146]=8734;e[147]=177;e[148]=8804;e[149]=8805;e[150]=165;e[151]=181;e[152]=8706;e[153]=8721;e[154]=8719;e[156]=8747;e[157]=170;e[158]=186;e[159]=8486;e[160]=230;e[161]=248;e[162]=191;e[163]=161;e[164]=172;e[165]=8730;e[166]=402;e[167]=8776;e[168]=8710;e[169]=171;e[170]=187;e[171]=8230;e[200]=193;e[203]=205;e[210]=218;e[223]=711;e[224]=321;e[225]=322;e[226]=352;e[227]=353;e[228]=381;e[229]=382;e[233]=221;e[234]=253;e[252]=263;e[253]=268;e[254]=269;e[258]=258;e[260]=260;e[261]=261;e[265]=280;e[266]=281;e[267]=282;e[268]=283;e[269]=313;e[275]=323;e[276]=324;e[278]=328;e[283]=344;e[284]=345;e[285]=346;e[286]=347;e[292]=367;e[295]=377;e[296]=378;e[298]=380;e[305]=963;e[306]=964;e[307]=966;e[308]=8215;e[309]=8252;e[310]=8319;e[311]=8359;e[312]=8592;e[313]=8593;e[337]=9552;e[493]=1039;e[494]=1040;e[705]=1524;e[706]=8362;e[710]=64288;e[711]=64298;e[759]=1617;e[761]=1776;e[763]=1778;e[775]=1652;e[777]=1764;e[778]=1780;e[779]=1781;e[780]=1782;e[782]=771;e[783]=64726;e[786]=8363;e[788]=8532;e[790]=768;e[791]=769;e[792]=768;e[795]=803;e[797]=64336;e[798]=64337;e[799]=64342;e[800]=64343;e[801]=64344;e[802]=64345;e[803]=64362;e[804]=64363;e[805]=64364;e[2424]=7821;e[2425]=7822;e[2426]=7823;e[2427]=7824;e[2428]=7825;e[2429]=7826;e[2430]=7827;e[2433]=7682;e[2678]=8045;e[2679]=8046;e[2830]=1552;e[2838]=686;e[2840]=751;e[2842]=753;e[2843]=754;e[2844]=755;e[2846]=757;e[2856]=767;e[2857]=848;e[2858]=849;e[2862]=853;e[2863]=854;e[2864]=855;e[2865]=861;e[2866]=862;e[2906]=7460;e[2908]=7462;e[2909]=7463;e[2910]=7464;e[2912]=7466;e[2913]=7467;e[2914]=7468;e[2916]=7470;e[2917]=7471;e[2918]=7472;e[2920]=7474;e[2921]=7475;e[2922]=7476;e[2924]=7478;e[2925]=7479;e[2926]=7480;e[2928]=7482;e[2929]=7483;e[2930]=7484;e[2932]=7486;e[2933]=7487;e[2934]=7488;e[2936]=7490;e[2937]=7491;e[2938]=7492;e[2940]=7494;e[2941]=7495;e[2942]=7496;e[2944]=7498;e[2946]=7500;e[2948]=7502;e[2950]=7504;e[2951]=7505;e[2952]=7506;e[2954]=7508;e[2955]=7509;e[2956]=7510;e[2958]=7512;e[2959]=7513;e[2960]=7514;e[2962]=7516;e[2963]=7517;e[2964]=7518;e[2966]=7520;e[2967]=7521;e[2968]=7522;e[2970]=7524;e[2971]=7525;e[2972]=7526;e[2974]=7528;e[2975]=7529;e[2976]=7530;e[2978]=1537;e[2979]=1538;e[2980]=1539;e[2982]=1549;e[2983]=1551;e[2984]=1552;e[2986]=1554;e[2987]=1555;e[2988]=1556;e[2990]=1623;e[2991]=1624;e[2995]=1775;e[2999]=1791;e[3002]=64290;e[3003]=64291;e[3004]=64292;e[3006]=64294;e[3007]=64295;e[3008]=64296;e[3011]=1900;e[3014]=8223;e[3015]=8244;e[3017]=7532;e[3018]=7533;e[3019]=7534;e[3075]=7590;e[3076]=7591;e[3079]=7594;e[3080]=7595;e[3083]=7598;e[3084]=7599;e[3087]=7602;e[3088]=7603;e[3091]=7606;e[3092]=7607;e[3095]=7610;e[3096]=7611;e[3099]=7614;e[3100]=7615;e[3103]=7618;e[3104]=7619;e[3107]=8337;e[3108]=8338;e[3116]=1884;e[3119]=1885;e[3120]=1885;e[3123]=1886;e[3124]=1886;e[3127]=1887;e[3128]=1887;e[3131]=1888;e[3132]=1888;e[3135]=1889;e[3136]=1889;e[3139]=1890;e[3140]=1890;e[3143]=1891;e[3144]=1891;e[3147]=1892;e[3148]=1892;e[3153]=580;e[3154]=581;e[3157]=584;e[3158]=585;e[3161]=588;e[3162]=589;e[3165]=891;e[3166]=892;e[3169]=1274;e[3170]=1275;e[3173]=1278;e[3174]=1279;e[3181]=7622;e[3182]=7623;e[3282]=11799;e[3316]=578;e[3379]=42785;e[3393]=1159;e[3416]=8377}));t.getGlyphMapForStandardFonts=h;const u=(0,r.getLookupTableFactory)((function(e){e[227]=322;e[264]=261;e[291]=346}));t.getSupplementalGlyphMapForArialBlack=u;const d=(0,r.getLookupTableFactory)((function(e){e[1]=32;e[4]=65;e[6]=193;e[17]=66;e[18]=67;e[21]=268;e[24]=68;e[28]=69;e[30]=201;e[32]=282;e[38]=70;e[39]=71;e[44]=72;e[47]=73;e[49]=205;e[58]=74;e[60]=75;e[62]=76;e[68]=77;e[69]=78;e[75]=79;e[87]=80;e[89]=81;e[90]=82;e[92]=344;e[94]=83;e[97]=352;e[100]=84;e[104]=85;e[115]=86;e[116]=87;e[121]=88;e[122]=89;e[124]=221;e[127]=90;e[129]=381;e[258]=97;e[260]=225;e[268]=261;e[271]=98;e[272]=99;e[273]=263;e[275]=269;e[282]=100;e[286]=101;e[288]=233;e[290]=283;e[295]=281;e[296]=102;e[336]=103;e[346]=104;e[349]=105;e[351]=237;e[361]=106;e[364]=107;e[367]=108;e[371]=322;e[373]=109;e[374]=110;e[381]=111;e[383]=243;e[393]=112;e[395]=113;e[396]=114;e[398]=345;e[400]=115;e[401]=347;e[403]=353;e[410]=116;e[437]=117;e[448]=118;e[449]=119;e[454]=120;e[455]=121;e[457]=253;e[460]=122;e[462]=382;e[463]=380;e[853]=44;e[855]=58;e[856]=46;e[876]=47;e[878]=45;e[882]=45;e[894]=40;e[895]=41;e[896]=91;e[897]=93;e[923]=64;e[1004]=48;e[1005]=49;e[1006]=50;e[1007]=51;e[1008]=52;e[1009]=53;e[1010]=54;e[1011]=55;e[1012]=56;e[1013]=57;e[1081]=37;e[1085]=43;e[1086]=45}));t.getSupplementalGlyphMapForCalibri=d},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ToUnicodeMap=t.IdentityToUnicodeMap=void 0;var r=a(2);t.ToUnicodeMap=class ToUnicodeMap{constructor(e=[]){this._map=e}get length(){return this._map.length}forEach(e){for(const t in this._map)e(t,this._map[t].charCodeAt(0))}has(e){return void 0!==this._map[e]}get(e){return this._map[e]}charCodeOf(e){const t=this._map;if(t.length<=65536)return t.indexOf(e);for(const a in t)if(t[a]===e)return 0|a;return-1}amend(e){for(const t in e)this._map[t]=e[t]}};t.IdentityToUnicodeMap=class IdentityToUnicodeMap{constructor(e,t){this.firstChar=e;this.lastChar=t}get length(){return this.lastChar+1-this.firstChar}forEach(e){for(let t=this.firstChar,a=this.lastChar;t<=a;t++)e(t,t)}has(e){return this.firstChar<=e&&e<=this.lastChar}get(e){if(this.firstChar<=e&&e<=this.lastChar)return String.fromCharCode(e)}charCodeOf(e){return Number.isInteger(e)&&e>=this.firstChar&&e<=this.lastChar?e:-1}amend(e){(0,r.unreachable)("Should not call amend()")}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.CFFFont=void 0;var r=a(45),n=a(18),i=a(2);t.CFFFont=class CFFFont{constructor(e,t){this.properties=t;const a=new r.CFFParser(e,t,n.SEAC_ANALYSIS_ENABLED);this.cff=a.parse();this.cff.duplicateFirstGlyph();const s=new r.CFFCompiler(this.cff);this.seacs=this.cff.seacs;try{this.data=s.compile()}catch(a){(0,i.warn)("Failed to compile font "+t.loadedName);this.data=e}this._createBuiltInEncoding()}get numGlyphs(){return this.cff.charStrings.count}getCharset(){return this.cff.charset.charset}getGlyphMapping(){const e=this.cff,t=this.properties,a=e.charset.charset;let r,i;if(t.composite){r=Object.create(null);let n;if(e.isCIDFont)for(i=0;i=0){const r=a[t];r&&(n[e]=r)}}n.length>0&&(this.properties.builtInEncoding=n)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.FontRendererFactory=void 0;var r=a(2),n=a(45),i=a(20),s=a(19),o=a(10);function getUint32(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}function getUint16(e,t){return e[t]<<8|e[t+1]}function getInt16(e,t){return(e[t]<<24|e[t+1]<<16)>>16}function getInt8(e,t){return e[t]<<24>>24}function getFloat214(e,t){return getInt16(e,t)/16384}function getSubroutineBias(e){const t=e.length;let a=32768;t<1240?a=107:t<33900&&(a=1131);return a}function parseCmap(e,t,a){const n=1===getUint16(e,t+2)?getUint32(e,t+8):getUint32(e,t+16),i=getUint16(e,t+n);let s,o,c;if(4===i){getUint16(e,t+n+2);const a=getUint16(e,t+n+6)>>1;o=t+n+14;s=[];for(c=0;c>1;a0;)h.push({flags:i})}for(a=0;a>1;S=!0;break;case 4:c+=i.pop();moveTo(o,c);S=!0;break;case 5:for(;i.length>0;){o+=i.shift();c+=i.shift();lineTo(o,c)}break;case 6:for(;i.length>0;){o+=i.shift();lineTo(o,c);if(0===i.length)break;c+=i.shift();lineTo(o,c)}break;case 7:for(;i.length>0;){c+=i.shift();lineTo(o,c);if(0===i.length)break;o+=i.shift();lineTo(o,c)}break;case 8:for(;i.length>0;){u=o+i.shift();f=c+i.shift();d=u+i.shift();g=f+i.shift();o=d+i.shift();c=g+i.shift();bezierCurveTo(u,f,d,g,o,c)}break;case 10:y=i.pop();w=null;if(a.isCFFCIDFont){const e=a.fdSelect.getFDIndex(n);if(e>=0&&eMath.abs(c-t)?o+=i.shift():c+=i.shift();bezierCurveTo(u,f,d,g,o,c);break;default:throw new r.FormatError(`unknown operator: 12 ${x}`)}break;case 14:if(i.length>=4){const e=i.pop(),r=i.pop();c=i.pop();o=i.pop();t.push({cmd:"save"},{cmd:"translate",args:[o,c]});let n=lookupCmap(a.cmap,String.fromCharCode(a.glyphNameMap[s.StandardEncoding[e]]));compileCharString(a.glyphs[n.glyphId],t,a,n.glyphId);t.push({cmd:"restore"});n=lookupCmap(a.cmap,String.fromCharCode(a.glyphNameMap[s.StandardEncoding[r]]));compileCharString(a.glyphs[n.glyphId],t,a,n.glyphId)}return;case 19:case 20:l+=i.length>>1;h+=l+7>>3;S=!0;break;case 21:c+=i.pop();o+=i.pop();moveTo(o,c);S=!0;break;case 22:o+=i.pop();moveTo(o,c);S=!0;break;case 24:for(;i.length>2;){u=o+i.shift();f=c+i.shift();d=u+i.shift();g=f+i.shift();o=d+i.shift();c=g+i.shift();bezierCurveTo(u,f,d,g,o,c)}o+=i.shift();c+=i.shift();lineTo(o,c);break;case 25:for(;i.length>6;){o+=i.shift();c+=i.shift();lineTo(o,c)}u=o+i.shift();f=c+i.shift();d=u+i.shift();g=f+i.shift();o=d+i.shift();c=g+i.shift();bezierCurveTo(u,f,d,g,o,c);break;case 26:i.length%2&&(o+=i.shift());for(;i.length>0;){u=o;f=c+i.shift();d=u+i.shift();g=f+i.shift();o=d;c=g+i.shift();bezierCurveTo(u,f,d,g,o,c)}break;case 27:i.length%2&&(c+=i.shift());for(;i.length>0;){u=o+i.shift();f=c;d=u+i.shift();g=f+i.shift();o=d+i.shift();c=g;bezierCurveTo(u,f,d,g,o,c)}break;case 28:i.push((e[h]<<24|e[h+1]<<16)>>16);h+=2;break;case 29:y=i.pop()+a.gsubrsBias;w=a.gsubrs[y];w&&parse(w);break;case 30:for(;i.length>0;){u=o;f=c+i.shift();d=u+i.shift();g=f+i.shift();o=d+i.shift();c=g+(1===i.length?i.shift():0);bezierCurveTo(u,f,d,g,o,c);if(0===i.length)break;u=o+i.shift();f=c;d=u+i.shift();g=f+i.shift();c=g+i.shift();o=d+(1===i.length?i.shift():0);bezierCurveTo(u,f,d,g,o,c)}break;case 31:for(;i.length>0;){u=o+i.shift();f=c;d=u+i.shift();g=f+i.shift();c=g+i.shift();o=d+(1===i.length?i.shift():0);bezierCurveTo(u,f,d,g,o,c);if(0===i.length)break;u=o;f=c+i.shift();d=u+i.shift();g=f+i.shift();o=d+i.shift();c=g+(1===i.length?i.shift():0);bezierCurveTo(u,f,d,g,o,c)}break;default:if(x<32)throw new r.FormatError(`unknown operator: ${x}`);if(x<247)i.push(x-139);else if(x<251)i.push(256*(x-247)+e[h++]+108);else if(x<255)i.push(256*-(x-251)-e[h++]-108);else{i.push((e[h]<<24|e[h+1]<<16|e[h+2]<<8|e[h+3])/65536);h+=4}}S&&(i.length=0)}}(e)}const c=[];class CompiledFont{constructor(e){this.constructor===CompiledFont&&(0,r.unreachable)("Cannot initialize CompiledFont.");this.fontMatrix=e;this.compiledGlyphs=Object.create(null);this.compiledCharCodeToGlyphId=Object.create(null)}getPathJs(e){const{charCode:t,glyphId:a}=lookupCmap(this.cmap,e);let r=this.compiledGlyphs[a];if(!r)try{r=this.compileGlyph(this.glyphs[a],a);this.compiledGlyphs[a]=r}catch(e){this.compiledGlyphs[a]=c;void 0===this.compiledCharCodeToGlyphId[t]&&(this.compiledCharCodeToGlyphId[t]=a);throw e}void 0===this.compiledCharCodeToGlyphId[t]&&(this.compiledCharCodeToGlyphId[t]=a);return r}compileGlyph(e,t){if(!e||0===e.length||14===e[0])return c;let a=this.fontMatrix;if(this.isCFFCIDFont){const e=this.fdSelect.getFDIndex(t);if(e>=0&&e2*getUint16(e,t)}const i=[];let s=n(t,0);for(let a=r;a{Object.defineProperty(t,"__esModule",{value:!0});t.getMetrics=t.getFontBasicMetrics=void 0;var r=a(8);const n=(0,r.getLookupTableFactory)((function(e){e.Courier=600;e["Courier-Bold"]=600;e["Courier-BoldOblique"]=600;e["Courier-Oblique"]=600;e.Helvetica=(0,r.getLookupTableFactory)((function(e){e.space=278;e.exclam=278;e.quotedbl=355;e.numbersign=556;e.dollar=556;e.percent=889;e.ampersand=667;e.quoteright=222;e.parenleft=333;e.parenright=333;e.asterisk=389;e.plus=584;e.comma=278;e.hyphen=333;e.period=278;e.slash=278;e.zero=556;e.one=556;e.two=556;e.three=556;e.four=556;e.five=556;e.six=556;e.seven=556;e.eight=556;e.nine=556;e.colon=278;e.semicolon=278;e.less=584;e.equal=584;e.greater=584;e.question=556;e.at=1015;e.A=667;e.B=667;e.C=722;e.D=722;e.E=667;e.F=611;e.G=778;e.H=722;e.I=278;e.J=500;e.K=667;e.L=556;e.M=833;e.N=722;e.O=778;e.P=667;e.Q=778;e.R=722;e.S=667;e.T=611;e.U=722;e.V=667;e.W=944;e.X=667;e.Y=667;e.Z=611;e.bracketleft=278;e.backslash=278;e.bracketright=278;e.asciicircum=469;e.underscore=556;e.quoteleft=222;e.a=556;e.b=556;e.c=500;e.d=556;e.e=556;e.f=278;e.g=556;e.h=556;e.i=222;e.j=222;e.k=500;e.l=222;e.m=833;e.n=556;e.o=556;e.p=556;e.q=556;e.r=333;e.s=500;e.t=278;e.u=556;e.v=500;e.w=722;e.x=500;e.y=500;e.z=500;e.braceleft=334;e.bar=260;e.braceright=334;e.asciitilde=584;e.exclamdown=333;e.cent=556;e.sterling=556;e.fraction=167;e.yen=556;e.florin=556;e.section=556;e.currency=556;e.quotesingle=191;e.quotedblleft=333;e.guillemotleft=556;e.guilsinglleft=333;e.guilsinglright=333;e.fi=500;e.fl=500;e.endash=556;e.dagger=556;e.daggerdbl=556;e.periodcentered=278;e.paragraph=537;e.bullet=350;e.quotesinglbase=222;e.quotedblbase=333;e.quotedblright=333;e.guillemotright=556;e.ellipsis=1e3;e.perthousand=1e3;e.questiondown=611;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=1e3;e.AE=1e3;e.ordfeminine=370;e.Lslash=556;e.Oslash=778;e.OE=1e3;e.ordmasculine=365;e.ae=889;e.dotlessi=278;e.lslash=222;e.oslash=611;e.oe=944;e.germandbls=611;e.Idieresis=278;e.eacute=556;e.abreve=556;e.uhungarumlaut=556;e.ecaron=556;e.Ydieresis=667;e.divide=584;e.Yacute=667;e.Acircumflex=667;e.aacute=556;e.Ucircumflex=722;e.yacute=500;e.scommaaccent=500;e.ecircumflex=556;e.Uring=722;e.Udieresis=722;e.aogonek=556;e.Uacute=722;e.uogonek=556;e.Edieresis=667;e.Dcroat=722;e.commaaccent=250;e.copyright=737;e.Emacron=667;e.ccaron=500;e.aring=556;e.Ncommaaccent=722;e.lacute=222;e.agrave=556;e.Tcommaaccent=611;e.Cacute=722;e.atilde=556;e.Edotaccent=667;e.scaron=500;e.scedilla=500;e.iacute=278;e.lozenge=471;e.Rcaron=722;e.Gcommaaccent=778;e.ucircumflex=556;e.acircumflex=556;e.Amacron=667;e.rcaron=333;e.ccedilla=500;e.Zdotaccent=611;e.Thorn=667;e.Omacron=778;e.Racute=722;e.Sacute=667;e.dcaron=643;e.Umacron=722;e.uring=556;e.threesuperior=333;e.Ograve=778;e.Agrave=667;e.Abreve=667;e.multiply=584;e.uacute=556;e.Tcaron=611;e.partialdiff=476;e.ydieresis=500;e.Nacute=722;e.icircumflex=278;e.Ecircumflex=667;e.adieresis=556;e.edieresis=556;e.cacute=500;e.nacute=556;e.umacron=556;e.Ncaron=722;e.Iacute=278;e.plusminus=584;e.brokenbar=260;e.registered=737;e.Gbreve=778;e.Idotaccent=278;e.summation=600;e.Egrave=667;e.racute=333;e.omacron=556;e.Zacute=611;e.Zcaron=611;e.greaterequal=549;e.Eth=722;e.Ccedilla=722;e.lcommaaccent=222;e.tcaron=317;e.eogonek=556;e.Uogonek=722;e.Aacute=667;e.Adieresis=667;e.egrave=556;e.zacute=500;e.iogonek=222;e.Oacute=778;e.oacute=556;e.amacron=556;e.sacute=500;e.idieresis=278;e.Ocircumflex=778;e.Ugrave=722;e.Delta=612;e.thorn=556;e.twosuperior=333;e.Odieresis=778;e.mu=556;e.igrave=278;e.ohungarumlaut=556;e.Eogonek=667;e.dcroat=556;e.threequarters=834;e.Scedilla=667;e.lcaron=299;e.Kcommaaccent=667;e.Lacute=556;e.trademark=1e3;e.edotaccent=556;e.Igrave=278;e.Imacron=278;e.Lcaron=556;e.onehalf=834;e.lessequal=549;e.ocircumflex=556;e.ntilde=556;e.Uhungarumlaut=722;e.Eacute=667;e.emacron=556;e.gbreve=556;e.onequarter=834;e.Scaron=667;e.Scommaaccent=667;e.Ohungarumlaut=778;e.degree=400;e.ograve=556;e.Ccaron=722;e.ugrave=556;e.radical=453;e.Dcaron=722;e.rcommaaccent=333;e.Ntilde=722;e.otilde=556;e.Rcommaaccent=722;e.Lcommaaccent=556;e.Atilde=667;e.Aogonek=667;e.Aring=667;e.Otilde=778;e.zdotaccent=500;e.Ecaron=667;e.Iogonek=278;e.kcommaaccent=500;e.minus=584;e.Icircumflex=278;e.ncaron=556;e.tcommaaccent=278;e.logicalnot=584;e.odieresis=556;e.udieresis=556;e.notequal=549;e.gcommaaccent=556;e.eth=556;e.zcaron=500;e.ncommaaccent=556;e.onesuperior=333;e.imacron=278;e.Euro=556}));e["Helvetica-Bold"]=(0,r.getLookupTableFactory)((function(e){e.space=278;e.exclam=333;e.quotedbl=474;e.numbersign=556;e.dollar=556;e.percent=889;e.ampersand=722;e.quoteright=278;e.parenleft=333;e.parenright=333;e.asterisk=389;e.plus=584;e.comma=278;e.hyphen=333;e.period=278;e.slash=278;e.zero=556;e.one=556;e.two=556;e.three=556;e.four=556;e.five=556;e.six=556;e.seven=556;e.eight=556;e.nine=556;e.colon=333;e.semicolon=333;e.less=584;e.equal=584;e.greater=584;e.question=611;e.at=975;e.A=722;e.B=722;e.C=722;e.D=722;e.E=667;e.F=611;e.G=778;e.H=722;e.I=278;e.J=556;e.K=722;e.L=611;e.M=833;e.N=722;e.O=778;e.P=667;e.Q=778;e.R=722;e.S=667;e.T=611;e.U=722;e.V=667;e.W=944;e.X=667;e.Y=667;e.Z=611;e.bracketleft=333;e.backslash=278;e.bracketright=333;e.asciicircum=584;e.underscore=556;e.quoteleft=278;e.a=556;e.b=611;e.c=556;e.d=611;e.e=556;e.f=333;e.g=611;e.h=611;e.i=278;e.j=278;e.k=556;e.l=278;e.m=889;e.n=611;e.o=611;e.p=611;e.q=611;e.r=389;e.s=556;e.t=333;e.u=611;e.v=556;e.w=778;e.x=556;e.y=556;e.z=500;e.braceleft=389;e.bar=280;e.braceright=389;e.asciitilde=584;e.exclamdown=333;e.cent=556;e.sterling=556;e.fraction=167;e.yen=556;e.florin=556;e.section=556;e.currency=556;e.quotesingle=238;e.quotedblleft=500;e.guillemotleft=556;e.guilsinglleft=333;e.guilsinglright=333;e.fi=611;e.fl=611;e.endash=556;e.dagger=556;e.daggerdbl=556;e.periodcentered=278;e.paragraph=556;e.bullet=350;e.quotesinglbase=278;e.quotedblbase=500;e.quotedblright=500;e.guillemotright=556;e.ellipsis=1e3;e.perthousand=1e3;e.questiondown=611;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=1e3;e.AE=1e3;e.ordfeminine=370;e.Lslash=611;e.Oslash=778;e.OE=1e3;e.ordmasculine=365;e.ae=889;e.dotlessi=278;e.lslash=278;e.oslash=611;e.oe=944;e.germandbls=611;e.Idieresis=278;e.eacute=556;e.abreve=556;e.uhungarumlaut=611;e.ecaron=556;e.Ydieresis=667;e.divide=584;e.Yacute=667;e.Acircumflex=722;e.aacute=556;e.Ucircumflex=722;e.yacute=556;e.scommaaccent=556;e.ecircumflex=556;e.Uring=722;e.Udieresis=722;e.aogonek=556;e.Uacute=722;e.uogonek=611;e.Edieresis=667;e.Dcroat=722;e.commaaccent=250;e.copyright=737;e.Emacron=667;e.ccaron=556;e.aring=556;e.Ncommaaccent=722;e.lacute=278;e.agrave=556;e.Tcommaaccent=611;e.Cacute=722;e.atilde=556;e.Edotaccent=667;e.scaron=556;e.scedilla=556;e.iacute=278;e.lozenge=494;e.Rcaron=722;e.Gcommaaccent=778;e.ucircumflex=611;e.acircumflex=556;e.Amacron=722;e.rcaron=389;e.ccedilla=556;e.Zdotaccent=611;e.Thorn=667;e.Omacron=778;e.Racute=722;e.Sacute=667;e.dcaron=743;e.Umacron=722;e.uring=611;e.threesuperior=333;e.Ograve=778;e.Agrave=722;e.Abreve=722;e.multiply=584;e.uacute=611;e.Tcaron=611;e.partialdiff=494;e.ydieresis=556;e.Nacute=722;e.icircumflex=278;e.Ecircumflex=667;e.adieresis=556;e.edieresis=556;e.cacute=556;e.nacute=611;e.umacron=611;e.Ncaron=722;e.Iacute=278;e.plusminus=584;e.brokenbar=280;e.registered=737;e.Gbreve=778;e.Idotaccent=278;e.summation=600;e.Egrave=667;e.racute=389;e.omacron=611;e.Zacute=611;e.Zcaron=611;e.greaterequal=549;e.Eth=722;e.Ccedilla=722;e.lcommaaccent=278;e.tcaron=389;e.eogonek=556;e.Uogonek=722;e.Aacute=722;e.Adieresis=722;e.egrave=556;e.zacute=500;e.iogonek=278;e.Oacute=778;e.oacute=611;e.amacron=556;e.sacute=556;e.idieresis=278;e.Ocircumflex=778;e.Ugrave=722;e.Delta=612;e.thorn=611;e.twosuperior=333;e.Odieresis=778;e.mu=611;e.igrave=278;e.ohungarumlaut=611;e.Eogonek=667;e.dcroat=611;e.threequarters=834;e.Scedilla=667;e.lcaron=400;e.Kcommaaccent=722;e.Lacute=611;e.trademark=1e3;e.edotaccent=556;e.Igrave=278;e.Imacron=278;e.Lcaron=611;e.onehalf=834;e.lessequal=549;e.ocircumflex=611;e.ntilde=611;e.Uhungarumlaut=722;e.Eacute=667;e.emacron=556;e.gbreve=611;e.onequarter=834;e.Scaron=667;e.Scommaaccent=667;e.Ohungarumlaut=778;e.degree=400;e.ograve=611;e.Ccaron=722;e.ugrave=611;e.radical=549;e.Dcaron=722;e.rcommaaccent=389;e.Ntilde=722;e.otilde=611;e.Rcommaaccent=722;e.Lcommaaccent=611;e.Atilde=722;e.Aogonek=722;e.Aring=722;e.Otilde=778;e.zdotaccent=500;e.Ecaron=667;e.Iogonek=278;e.kcommaaccent=556;e.minus=584;e.Icircumflex=278;e.ncaron=611;e.tcommaaccent=333;e.logicalnot=584;e.odieresis=611;e.udieresis=611;e.notequal=549;e.gcommaaccent=611;e.eth=611;e.zcaron=500;e.ncommaaccent=611;e.onesuperior=333;e.imacron=278;e.Euro=556}));e["Helvetica-BoldOblique"]=(0,r.getLookupTableFactory)((function(e){e.space=278;e.exclam=333;e.quotedbl=474;e.numbersign=556;e.dollar=556;e.percent=889;e.ampersand=722;e.quoteright=278;e.parenleft=333;e.parenright=333;e.asterisk=389;e.plus=584;e.comma=278;e.hyphen=333;e.period=278;e.slash=278;e.zero=556;e.one=556;e.two=556;e.three=556;e.four=556;e.five=556;e.six=556;e.seven=556;e.eight=556;e.nine=556;e.colon=333;e.semicolon=333;e.less=584;e.equal=584;e.greater=584;e.question=611;e.at=975;e.A=722;e.B=722;e.C=722;e.D=722;e.E=667;e.F=611;e.G=778;e.H=722;e.I=278;e.J=556;e.K=722;e.L=611;e.M=833;e.N=722;e.O=778;e.P=667;e.Q=778;e.R=722;e.S=667;e.T=611;e.U=722;e.V=667;e.W=944;e.X=667;e.Y=667;e.Z=611;e.bracketleft=333;e.backslash=278;e.bracketright=333;e.asciicircum=584;e.underscore=556;e.quoteleft=278;e.a=556;e.b=611;e.c=556;e.d=611;e.e=556;e.f=333;e.g=611;e.h=611;e.i=278;e.j=278;e.k=556;e.l=278;e.m=889;e.n=611;e.o=611;e.p=611;e.q=611;e.r=389;e.s=556;e.t=333;e.u=611;e.v=556;e.w=778;e.x=556;e.y=556;e.z=500;e.braceleft=389;e.bar=280;e.braceright=389;e.asciitilde=584;e.exclamdown=333;e.cent=556;e.sterling=556;e.fraction=167;e.yen=556;e.florin=556;e.section=556;e.currency=556;e.quotesingle=238;e.quotedblleft=500;e.guillemotleft=556;e.guilsinglleft=333;e.guilsinglright=333;e.fi=611;e.fl=611;e.endash=556;e.dagger=556;e.daggerdbl=556;e.periodcentered=278;e.paragraph=556;e.bullet=350;e.quotesinglbase=278;e.quotedblbase=500;e.quotedblright=500;e.guillemotright=556;e.ellipsis=1e3;e.perthousand=1e3;e.questiondown=611;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=1e3;e.AE=1e3;e.ordfeminine=370;e.Lslash=611;e.Oslash=778;e.OE=1e3;e.ordmasculine=365;e.ae=889;e.dotlessi=278;e.lslash=278;e.oslash=611;e.oe=944;e.germandbls=611;e.Idieresis=278;e.eacute=556;e.abreve=556;e.uhungarumlaut=611;e.ecaron=556;e.Ydieresis=667;e.divide=584;e.Yacute=667;e.Acircumflex=722;e.aacute=556;e.Ucircumflex=722;e.yacute=556;e.scommaaccent=556;e.ecircumflex=556;e.Uring=722;e.Udieresis=722;e.aogonek=556;e.Uacute=722;e.uogonek=611;e.Edieresis=667;e.Dcroat=722;e.commaaccent=250;e.copyright=737;e.Emacron=667;e.ccaron=556;e.aring=556;e.Ncommaaccent=722;e.lacute=278;e.agrave=556;e.Tcommaaccent=611;e.Cacute=722;e.atilde=556;e.Edotaccent=667;e.scaron=556;e.scedilla=556;e.iacute=278;e.lozenge=494;e.Rcaron=722;e.Gcommaaccent=778;e.ucircumflex=611;e.acircumflex=556;e.Amacron=722;e.rcaron=389;e.ccedilla=556;e.Zdotaccent=611;e.Thorn=667;e.Omacron=778;e.Racute=722;e.Sacute=667;e.dcaron=743;e.Umacron=722;e.uring=611;e.threesuperior=333;e.Ograve=778;e.Agrave=722;e.Abreve=722;e.multiply=584;e.uacute=611;e.Tcaron=611;e.partialdiff=494;e.ydieresis=556;e.Nacute=722;e.icircumflex=278;e.Ecircumflex=667;e.adieresis=556;e.edieresis=556;e.cacute=556;e.nacute=611;e.umacron=611;e.Ncaron=722;e.Iacute=278;e.plusminus=584;e.brokenbar=280;e.registered=737;e.Gbreve=778;e.Idotaccent=278;e.summation=600;e.Egrave=667;e.racute=389;e.omacron=611;e.Zacute=611;e.Zcaron=611;e.greaterequal=549;e.Eth=722;e.Ccedilla=722;e.lcommaaccent=278;e.tcaron=389;e.eogonek=556;e.Uogonek=722;e.Aacute=722;e.Adieresis=722;e.egrave=556;e.zacute=500;e.iogonek=278;e.Oacute=778;e.oacute=611;e.amacron=556;e.sacute=556;e.idieresis=278;e.Ocircumflex=778;e.Ugrave=722;e.Delta=612;e.thorn=611;e.twosuperior=333;e.Odieresis=778;e.mu=611;e.igrave=278;e.ohungarumlaut=611;e.Eogonek=667;e.dcroat=611;e.threequarters=834;e.Scedilla=667;e.lcaron=400;e.Kcommaaccent=722;e.Lacute=611;e.trademark=1e3;e.edotaccent=556;e.Igrave=278;e.Imacron=278;e.Lcaron=611;e.onehalf=834;e.lessequal=549;e.ocircumflex=611;e.ntilde=611;e.Uhungarumlaut=722;e.Eacute=667;e.emacron=556;e.gbreve=611;e.onequarter=834;e.Scaron=667;e.Scommaaccent=667;e.Ohungarumlaut=778;e.degree=400;e.ograve=611;e.Ccaron=722;e.ugrave=611;e.radical=549;e.Dcaron=722;e.rcommaaccent=389;e.Ntilde=722;e.otilde=611;e.Rcommaaccent=722;e.Lcommaaccent=611;e.Atilde=722;e.Aogonek=722;e.Aring=722;e.Otilde=778;e.zdotaccent=500;e.Ecaron=667;e.Iogonek=278;e.kcommaaccent=556;e.minus=584;e.Icircumflex=278;e.ncaron=611;e.tcommaaccent=333;e.logicalnot=584;e.odieresis=611;e.udieresis=611;e.notequal=549;e.gcommaaccent=611;e.eth=611;e.zcaron=500;e.ncommaaccent=611;e.onesuperior=333;e.imacron=278;e.Euro=556}));e["Helvetica-Oblique"]=(0,r.getLookupTableFactory)((function(e){e.space=278;e.exclam=278;e.quotedbl=355;e.numbersign=556;e.dollar=556;e.percent=889;e.ampersand=667;e.quoteright=222;e.parenleft=333;e.parenright=333;e.asterisk=389;e.plus=584;e.comma=278;e.hyphen=333;e.period=278;e.slash=278;e.zero=556;e.one=556;e.two=556;e.three=556;e.four=556;e.five=556;e.six=556;e.seven=556;e.eight=556;e.nine=556;e.colon=278;e.semicolon=278;e.less=584;e.equal=584;e.greater=584;e.question=556;e.at=1015;e.A=667;e.B=667;e.C=722;e.D=722;e.E=667;e.F=611;e.G=778;e.H=722;e.I=278;e.J=500;e.K=667;e.L=556;e.M=833;e.N=722;e.O=778;e.P=667;e.Q=778;e.R=722;e.S=667;e.T=611;e.U=722;e.V=667;e.W=944;e.X=667;e.Y=667;e.Z=611;e.bracketleft=278;e.backslash=278;e.bracketright=278;e.asciicircum=469;e.underscore=556;e.quoteleft=222;e.a=556;e.b=556;e.c=500;e.d=556;e.e=556;e.f=278;e.g=556;e.h=556;e.i=222;e.j=222;e.k=500;e.l=222;e.m=833;e.n=556;e.o=556;e.p=556;e.q=556;e.r=333;e.s=500;e.t=278;e.u=556;e.v=500;e.w=722;e.x=500;e.y=500;e.z=500;e.braceleft=334;e.bar=260;e.braceright=334;e.asciitilde=584;e.exclamdown=333;e.cent=556;e.sterling=556;e.fraction=167;e.yen=556;e.florin=556;e.section=556;e.currency=556;e.quotesingle=191;e.quotedblleft=333;e.guillemotleft=556;e.guilsinglleft=333;e.guilsinglright=333;e.fi=500;e.fl=500;e.endash=556;e.dagger=556;e.daggerdbl=556;e.periodcentered=278;e.paragraph=537;e.bullet=350;e.quotesinglbase=222;e.quotedblbase=333;e.quotedblright=333;e.guillemotright=556;e.ellipsis=1e3;e.perthousand=1e3;e.questiondown=611;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=1e3;e.AE=1e3;e.ordfeminine=370;e.Lslash=556;e.Oslash=778;e.OE=1e3;e.ordmasculine=365;e.ae=889;e.dotlessi=278;e.lslash=222;e.oslash=611;e.oe=944;e.germandbls=611;e.Idieresis=278;e.eacute=556;e.abreve=556;e.uhungarumlaut=556;e.ecaron=556;e.Ydieresis=667;e.divide=584;e.Yacute=667;e.Acircumflex=667;e.aacute=556;e.Ucircumflex=722;e.yacute=500;e.scommaaccent=500;e.ecircumflex=556;e.Uring=722;e.Udieresis=722;e.aogonek=556;e.Uacute=722;e.uogonek=556;e.Edieresis=667;e.Dcroat=722;e.commaaccent=250;e.copyright=737;e.Emacron=667;e.ccaron=500;e.aring=556;e.Ncommaaccent=722;e.lacute=222;e.agrave=556;e.Tcommaaccent=611;e.Cacute=722;e.atilde=556;e.Edotaccent=667;e.scaron=500;e.scedilla=500;e.iacute=278;e.lozenge=471;e.Rcaron=722;e.Gcommaaccent=778;e.ucircumflex=556;e.acircumflex=556;e.Amacron=667;e.rcaron=333;e.ccedilla=500;e.Zdotaccent=611;e.Thorn=667;e.Omacron=778;e.Racute=722;e.Sacute=667;e.dcaron=643;e.Umacron=722;e.uring=556;e.threesuperior=333;e.Ograve=778;e.Agrave=667;e.Abreve=667;e.multiply=584;e.uacute=556;e.Tcaron=611;e.partialdiff=476;e.ydieresis=500;e.Nacute=722;e.icircumflex=278;e.Ecircumflex=667;e.adieresis=556;e.edieresis=556;e.cacute=500;e.nacute=556;e.umacron=556;e.Ncaron=722;e.Iacute=278;e.plusminus=584;e.brokenbar=260;e.registered=737;e.Gbreve=778;e.Idotaccent=278;e.summation=600;e.Egrave=667;e.racute=333;e.omacron=556;e.Zacute=611;e.Zcaron=611;e.greaterequal=549;e.Eth=722;e.Ccedilla=722;e.lcommaaccent=222;e.tcaron=317;e.eogonek=556;e.Uogonek=722;e.Aacute=667;e.Adieresis=667;e.egrave=556;e.zacute=500;e.iogonek=222;e.Oacute=778;e.oacute=556;e.amacron=556;e.sacute=500;e.idieresis=278;e.Ocircumflex=778;e.Ugrave=722;e.Delta=612;e.thorn=556;e.twosuperior=333;e.Odieresis=778;e.mu=556;e.igrave=278;e.ohungarumlaut=556;e.Eogonek=667;e.dcroat=556;e.threequarters=834;e.Scedilla=667;e.lcaron=299;e.Kcommaaccent=667;e.Lacute=556;e.trademark=1e3;e.edotaccent=556;e.Igrave=278;e.Imacron=278;e.Lcaron=556;e.onehalf=834;e.lessequal=549;e.ocircumflex=556;e.ntilde=556;e.Uhungarumlaut=722;e.Eacute=667;e.emacron=556;e.gbreve=556;e.onequarter=834;e.Scaron=667;e.Scommaaccent=667;e.Ohungarumlaut=778;e.degree=400;e.ograve=556;e.Ccaron=722;e.ugrave=556;e.radical=453;e.Dcaron=722;e.rcommaaccent=333;e.Ntilde=722;e.otilde=556;e.Rcommaaccent=722;e.Lcommaaccent=556;e.Atilde=667;e.Aogonek=667;e.Aring=667;e.Otilde=778;e.zdotaccent=500;e.Ecaron=667;e.Iogonek=278;e.kcommaaccent=500;e.minus=584;e.Icircumflex=278;e.ncaron=556;e.tcommaaccent=278;e.logicalnot=584;e.odieresis=556;e.udieresis=556;e.notequal=549;e.gcommaaccent=556;e.eth=556;e.zcaron=500;e.ncommaaccent=556;e.onesuperior=333;e.imacron=278;e.Euro=556}));e.Symbol=(0,r.getLookupTableFactory)((function(e){e.space=250;e.exclam=333;e.universal=713;e.numbersign=500;e.existential=549;e.percent=833;e.ampersand=778;e.suchthat=439;e.parenleft=333;e.parenright=333;e.asteriskmath=500;e.plus=549;e.comma=250;e.minus=549;e.period=250;e.slash=278;e.zero=500;e.one=500;e.two=500;e.three=500;e.four=500;e.five=500;e.six=500;e.seven=500;e.eight=500;e.nine=500;e.colon=278;e.semicolon=278;e.less=549;e.equal=549;e.greater=549;e.question=444;e.congruent=549;e.Alpha=722;e.Beta=667;e.Chi=722;e.Delta=612;e.Epsilon=611;e.Phi=763;e.Gamma=603;e.Eta=722;e.Iota=333;e.theta1=631;e.Kappa=722;e.Lambda=686;e.Mu=889;e.Nu=722;e.Omicron=722;e.Pi=768;e.Theta=741;e.Rho=556;e.Sigma=592;e.Tau=611;e.Upsilon=690;e.sigma1=439;e.Omega=768;e.Xi=645;e.Psi=795;e.Zeta=611;e.bracketleft=333;e.therefore=863;e.bracketright=333;e.perpendicular=658;e.underscore=500;e.radicalex=500;e.alpha=631;e.beta=549;e.chi=549;e.delta=494;e.epsilon=439;e.phi=521;e.gamma=411;e.eta=603;e.iota=329;e.phi1=603;e.kappa=549;e.lambda=549;e.mu=576;e.nu=521;e.omicron=549;e.pi=549;e.theta=521;e.rho=549;e.sigma=603;e.tau=439;e.upsilon=576;e.omega1=713;e.omega=686;e.xi=493;e.psi=686;e.zeta=494;e.braceleft=480;e.bar=200;e.braceright=480;e.similar=549;e.Euro=750;e.Upsilon1=620;e.minute=247;e.lessequal=549;e.fraction=167;e.infinity=713;e.florin=500;e.club=753;e.diamond=753;e.heart=753;e.spade=753;e.arrowboth=1042;e.arrowleft=987;e.arrowup=603;e.arrowright=987;e.arrowdown=603;e.degree=400;e.plusminus=549;e.second=411;e.greaterequal=549;e.multiply=549;e.proportional=713;e.partialdiff=494;e.bullet=460;e.divide=549;e.notequal=549;e.equivalence=549;e.approxequal=549;e.ellipsis=1e3;e.arrowvertex=603;e.arrowhorizex=1e3;e.carriagereturn=658;e.aleph=823;e.Ifraktur=686;e.Rfraktur=795;e.weierstrass=987;e.circlemultiply=768;e.circleplus=768;e.emptyset=823;e.intersection=768;e.union=768;e.propersuperset=713;e.reflexsuperset=713;e.notsubset=713;e.propersubset=713;e.reflexsubset=713;e.element=713;e.notelement=713;e.angle=768;e.gradient=713;e.registerserif=790;e.copyrightserif=790;e.trademarkserif=890;e.product=823;e.radical=549;e.dotmath=250;e.logicalnot=713;e.logicaland=603;e.logicalor=603;e.arrowdblboth=1042;e.arrowdblleft=987;e.arrowdblup=603;e.arrowdblright=987;e.arrowdbldown=603;e.lozenge=494;e.angleleft=329;e.registersans=790;e.copyrightsans=790;e.trademarksans=786;e.summation=713;e.parenlefttp=384;e.parenleftex=384;e.parenleftbt=384;e.bracketlefttp=384;e.bracketleftex=384;e.bracketleftbt=384;e.bracelefttp=494;e.braceleftmid=494;e.braceleftbt=494;e.braceex=494;e.angleright=329;e.integral=274;e.integraltp=686;e.integralex=686;e.integralbt=686;e.parenrighttp=384;e.parenrightex=384;e.parenrightbt=384;e.bracketrighttp=384;e.bracketrightex=384;e.bracketrightbt=384;e.bracerighttp=494;e.bracerightmid=494;e.bracerightbt=494;e.apple=790}));e["Times-Roman"]=(0,r.getLookupTableFactory)((function(e){e.space=250;e.exclam=333;e.quotedbl=408;e.numbersign=500;e.dollar=500;e.percent=833;e.ampersand=778;e.quoteright=333;e.parenleft=333;e.parenright=333;e.asterisk=500;e.plus=564;e.comma=250;e.hyphen=333;e.period=250;e.slash=278;e.zero=500;e.one=500;e.two=500;e.three=500;e.four=500;e.five=500;e.six=500;e.seven=500;e.eight=500;e.nine=500;e.colon=278;e.semicolon=278;e.less=564;e.equal=564;e.greater=564;e.question=444;e.at=921;e.A=722;e.B=667;e.C=667;e.D=722;e.E=611;e.F=556;e.G=722;e.H=722;e.I=333;e.J=389;e.K=722;e.L=611;e.M=889;e.N=722;e.O=722;e.P=556;e.Q=722;e.R=667;e.S=556;e.T=611;e.U=722;e.V=722;e.W=944;e.X=722;e.Y=722;e.Z=611;e.bracketleft=333;e.backslash=278;e.bracketright=333;e.asciicircum=469;e.underscore=500;e.quoteleft=333;e.a=444;e.b=500;e.c=444;e.d=500;e.e=444;e.f=333;e.g=500;e.h=500;e.i=278;e.j=278;e.k=500;e.l=278;e.m=778;e.n=500;e.o=500;e.p=500;e.q=500;e.r=333;e.s=389;e.t=278;e.u=500;e.v=500;e.w=722;e.x=500;e.y=500;e.z=444;e.braceleft=480;e.bar=200;e.braceright=480;e.asciitilde=541;e.exclamdown=333;e.cent=500;e.sterling=500;e.fraction=167;e.yen=500;e.florin=500;e.section=500;e.currency=500;e.quotesingle=180;e.quotedblleft=444;e.guillemotleft=500;e.guilsinglleft=333;e.guilsinglright=333;e.fi=556;e.fl=556;e.endash=500;e.dagger=500;e.daggerdbl=500;e.periodcentered=250;e.paragraph=453;e.bullet=350;e.quotesinglbase=333;e.quotedblbase=444;e.quotedblright=444;e.guillemotright=500;e.ellipsis=1e3;e.perthousand=1e3;e.questiondown=444;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=1e3;e.AE=889;e.ordfeminine=276;e.Lslash=611;e.Oslash=722;e.OE=889;e.ordmasculine=310;e.ae=667;e.dotlessi=278;e.lslash=278;e.oslash=500;e.oe=722;e.germandbls=500;e.Idieresis=333;e.eacute=444;e.abreve=444;e.uhungarumlaut=500;e.ecaron=444;e.Ydieresis=722;e.divide=564;e.Yacute=722;e.Acircumflex=722;e.aacute=444;e.Ucircumflex=722;e.yacute=500;e.scommaaccent=389;e.ecircumflex=444;e.Uring=722;e.Udieresis=722;e.aogonek=444;e.Uacute=722;e.uogonek=500;e.Edieresis=611;e.Dcroat=722;e.commaaccent=250;e.copyright=760;e.Emacron=611;e.ccaron=444;e.aring=444;e.Ncommaaccent=722;e.lacute=278;e.agrave=444;e.Tcommaaccent=611;e.Cacute=667;e.atilde=444;e.Edotaccent=611;e.scaron=389;e.scedilla=389;e.iacute=278;e.lozenge=471;e.Rcaron=667;e.Gcommaaccent=722;e.ucircumflex=500;e.acircumflex=444;e.Amacron=722;e.rcaron=333;e.ccedilla=444;e.Zdotaccent=611;e.Thorn=556;e.Omacron=722;e.Racute=667;e.Sacute=556;e.dcaron=588;e.Umacron=722;e.uring=500;e.threesuperior=300;e.Ograve=722;e.Agrave=722;e.Abreve=722;e.multiply=564;e.uacute=500;e.Tcaron=611;e.partialdiff=476;e.ydieresis=500;e.Nacute=722;e.icircumflex=278;e.Ecircumflex=611;e.adieresis=444;e.edieresis=444;e.cacute=444;e.nacute=500;e.umacron=500;e.Ncaron=722;e.Iacute=333;e.plusminus=564;e.brokenbar=200;e.registered=760;e.Gbreve=722;e.Idotaccent=333;e.summation=600;e.Egrave=611;e.racute=333;e.omacron=500;e.Zacute=611;e.Zcaron=611;e.greaterequal=549;e.Eth=722;e.Ccedilla=667;e.lcommaaccent=278;e.tcaron=326;e.eogonek=444;e.Uogonek=722;e.Aacute=722;e.Adieresis=722;e.egrave=444;e.zacute=444;e.iogonek=278;e.Oacute=722;e.oacute=500;e.amacron=444;e.sacute=389;e.idieresis=278;e.Ocircumflex=722;e.Ugrave=722;e.Delta=612;e.thorn=500;e.twosuperior=300;e.Odieresis=722;e.mu=500;e.igrave=278;e.ohungarumlaut=500;e.Eogonek=611;e.dcroat=500;e.threequarters=750;e.Scedilla=556;e.lcaron=344;e.Kcommaaccent=722;e.Lacute=611;e.trademark=980;e.edotaccent=444;e.Igrave=333;e.Imacron=333;e.Lcaron=611;e.onehalf=750;e.lessequal=549;e.ocircumflex=500;e.ntilde=500;e.Uhungarumlaut=722;e.Eacute=611;e.emacron=444;e.gbreve=500;e.onequarter=750;e.Scaron=556;e.Scommaaccent=556;e.Ohungarumlaut=722;e.degree=400;e.ograve=500;e.Ccaron=667;e.ugrave=500;e.radical=453;e.Dcaron=722;e.rcommaaccent=333;e.Ntilde=722;e.otilde=500;e.Rcommaaccent=667;e.Lcommaaccent=611;e.Atilde=722;e.Aogonek=722;e.Aring=722;e.Otilde=722;e.zdotaccent=444;e.Ecaron=611;e.Iogonek=333;e.kcommaaccent=500;e.minus=564;e.Icircumflex=333;e.ncaron=500;e.tcommaaccent=278;e.logicalnot=564;e.odieresis=500;e.udieresis=500;e.notequal=549;e.gcommaaccent=500;e.eth=500;e.zcaron=444;e.ncommaaccent=500;e.onesuperior=300;e.imacron=278;e.Euro=500}));e["Times-Bold"]=(0,r.getLookupTableFactory)((function(e){e.space=250;e.exclam=333;e.quotedbl=555;e.numbersign=500;e.dollar=500;e.percent=1e3;e.ampersand=833;e.quoteright=333;e.parenleft=333;e.parenright=333;e.asterisk=500;e.plus=570;e.comma=250;e.hyphen=333;e.period=250;e.slash=278;e.zero=500;e.one=500;e.two=500;e.three=500;e.four=500;e.five=500;e.six=500;e.seven=500;e.eight=500;e.nine=500;e.colon=333;e.semicolon=333;e.less=570;e.equal=570;e.greater=570;e.question=500;e.at=930;e.A=722;e.B=667;e.C=722;e.D=722;e.E=667;e.F=611;e.G=778;e.H=778;e.I=389;e.J=500;e.K=778;e.L=667;e.M=944;e.N=722;e.O=778;e.P=611;e.Q=778;e.R=722;e.S=556;e.T=667;e.U=722;e.V=722;e.W=1e3;e.X=722;e.Y=722;e.Z=667;e.bracketleft=333;e.backslash=278;e.bracketright=333;e.asciicircum=581;e.underscore=500;e.quoteleft=333;e.a=500;e.b=556;e.c=444;e.d=556;e.e=444;e.f=333;e.g=500;e.h=556;e.i=278;e.j=333;e.k=556;e.l=278;e.m=833;e.n=556;e.o=500;e.p=556;e.q=556;e.r=444;e.s=389;e.t=333;e.u=556;e.v=500;e.w=722;e.x=500;e.y=500;e.z=444;e.braceleft=394;e.bar=220;e.braceright=394;e.asciitilde=520;e.exclamdown=333;e.cent=500;e.sterling=500;e.fraction=167;e.yen=500;e.florin=500;e.section=500;e.currency=500;e.quotesingle=278;e.quotedblleft=500;e.guillemotleft=500;e.guilsinglleft=333;e.guilsinglright=333;e.fi=556;e.fl=556;e.endash=500;e.dagger=500;e.daggerdbl=500;e.periodcentered=250;e.paragraph=540;e.bullet=350;e.quotesinglbase=333;e.quotedblbase=500;e.quotedblright=500;e.guillemotright=500;e.ellipsis=1e3;e.perthousand=1e3;e.questiondown=500;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=1e3;e.AE=1e3;e.ordfeminine=300;e.Lslash=667;e.Oslash=778;e.OE=1e3;e.ordmasculine=330;e.ae=722;e.dotlessi=278;e.lslash=278;e.oslash=500;e.oe=722;e.germandbls=556;e.Idieresis=389;e.eacute=444;e.abreve=500;e.uhungarumlaut=556;e.ecaron=444;e.Ydieresis=722;e.divide=570;e.Yacute=722;e.Acircumflex=722;e.aacute=500;e.Ucircumflex=722;e.yacute=500;e.scommaaccent=389;e.ecircumflex=444;e.Uring=722;e.Udieresis=722;e.aogonek=500;e.Uacute=722;e.uogonek=556;e.Edieresis=667;e.Dcroat=722;e.commaaccent=250;e.copyright=747;e.Emacron=667;e.ccaron=444;e.aring=500;e.Ncommaaccent=722;e.lacute=278;e.agrave=500;e.Tcommaaccent=667;e.Cacute=722;e.atilde=500;e.Edotaccent=667;e.scaron=389;e.scedilla=389;e.iacute=278;e.lozenge=494;e.Rcaron=722;e.Gcommaaccent=778;e.ucircumflex=556;e.acircumflex=500;e.Amacron=722;e.rcaron=444;e.ccedilla=444;e.Zdotaccent=667;e.Thorn=611;e.Omacron=778;e.Racute=722;e.Sacute=556;e.dcaron=672;e.Umacron=722;e.uring=556;e.threesuperior=300;e.Ograve=778;e.Agrave=722;e.Abreve=722;e.multiply=570;e.uacute=556;e.Tcaron=667;e.partialdiff=494;e.ydieresis=500;e.Nacute=722;e.icircumflex=278;e.Ecircumflex=667;e.adieresis=500;e.edieresis=444;e.cacute=444;e.nacute=556;e.umacron=556;e.Ncaron=722;e.Iacute=389;e.plusminus=570;e.brokenbar=220;e.registered=747;e.Gbreve=778;e.Idotaccent=389;e.summation=600;e.Egrave=667;e.racute=444;e.omacron=500;e.Zacute=667;e.Zcaron=667;e.greaterequal=549;e.Eth=722;e.Ccedilla=722;e.lcommaaccent=278;e.tcaron=416;e.eogonek=444;e.Uogonek=722;e.Aacute=722;e.Adieresis=722;e.egrave=444;e.zacute=444;e.iogonek=278;e.Oacute=778;e.oacute=500;e.amacron=500;e.sacute=389;e.idieresis=278;e.Ocircumflex=778;e.Ugrave=722;e.Delta=612;e.thorn=556;e.twosuperior=300;e.Odieresis=778;e.mu=556;e.igrave=278;e.ohungarumlaut=500;e.Eogonek=667;e.dcroat=556;e.threequarters=750;e.Scedilla=556;e.lcaron=394;e.Kcommaaccent=778;e.Lacute=667;e.trademark=1e3;e.edotaccent=444;e.Igrave=389;e.Imacron=389;e.Lcaron=667;e.onehalf=750;e.lessequal=549;e.ocircumflex=500;e.ntilde=556;e.Uhungarumlaut=722;e.Eacute=667;e.emacron=444;e.gbreve=500;e.onequarter=750;e.Scaron=556;e.Scommaaccent=556;e.Ohungarumlaut=778;e.degree=400;e.ograve=500;e.Ccaron=722;e.ugrave=556;e.radical=549;e.Dcaron=722;e.rcommaaccent=444;e.Ntilde=722;e.otilde=500;e.Rcommaaccent=722;e.Lcommaaccent=667;e.Atilde=722;e.Aogonek=722;e.Aring=722;e.Otilde=778;e.zdotaccent=444;e.Ecaron=667;e.Iogonek=389;e.kcommaaccent=556;e.minus=570;e.Icircumflex=389;e.ncaron=556;e.tcommaaccent=333;e.logicalnot=570;e.odieresis=500;e.udieresis=556;e.notequal=549;e.gcommaaccent=500;e.eth=500;e.zcaron=444;e.ncommaaccent=556;e.onesuperior=300;e.imacron=278;e.Euro=500}));e["Times-BoldItalic"]=(0,r.getLookupTableFactory)((function(e){e.space=250;e.exclam=389;e.quotedbl=555;e.numbersign=500;e.dollar=500;e.percent=833;e.ampersand=778;e.quoteright=333;e.parenleft=333;e.parenright=333;e.asterisk=500;e.plus=570;e.comma=250;e.hyphen=333;e.period=250;e.slash=278;e.zero=500;e.one=500;e.two=500;e.three=500;e.four=500;e.five=500;e.six=500;e.seven=500;e.eight=500;e.nine=500;e.colon=333;e.semicolon=333;e.less=570;e.equal=570;e.greater=570;e.question=500;e.at=832;e.A=667;e.B=667;e.C=667;e.D=722;e.E=667;e.F=667;e.G=722;e.H=778;e.I=389;e.J=500;e.K=667;e.L=611;e.M=889;e.N=722;e.O=722;e.P=611;e.Q=722;e.R=667;e.S=556;e.T=611;e.U=722;e.V=667;e.W=889;e.X=667;e.Y=611;e.Z=611;e.bracketleft=333;e.backslash=278;e.bracketright=333;e.asciicircum=570;e.underscore=500;e.quoteleft=333;e.a=500;e.b=500;e.c=444;e.d=500;e.e=444;e.f=333;e.g=500;e.h=556;e.i=278;e.j=278;e.k=500;e.l=278;e.m=778;e.n=556;e.o=500;e.p=500;e.q=500;e.r=389;e.s=389;e.t=278;e.u=556;e.v=444;e.w=667;e.x=500;e.y=444;e.z=389;e.braceleft=348;e.bar=220;e.braceright=348;e.asciitilde=570;e.exclamdown=389;e.cent=500;e.sterling=500;e.fraction=167;e.yen=500;e.florin=500;e.section=500;e.currency=500;e.quotesingle=278;e.quotedblleft=500;e.guillemotleft=500;e.guilsinglleft=333;e.guilsinglright=333;e.fi=556;e.fl=556;e.endash=500;e.dagger=500;e.daggerdbl=500;e.periodcentered=250;e.paragraph=500;e.bullet=350;e.quotesinglbase=333;e.quotedblbase=500;e.quotedblright=500;e.guillemotright=500;e.ellipsis=1e3;e.perthousand=1e3;e.questiondown=500;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=1e3;e.AE=944;e.ordfeminine=266;e.Lslash=611;e.Oslash=722;e.OE=944;e.ordmasculine=300;e.ae=722;e.dotlessi=278;e.lslash=278;e.oslash=500;e.oe=722;e.germandbls=500;e.Idieresis=389;e.eacute=444;e.abreve=500;e.uhungarumlaut=556;e.ecaron=444;e.Ydieresis=611;e.divide=570;e.Yacute=611;e.Acircumflex=667;e.aacute=500;e.Ucircumflex=722;e.yacute=444;e.scommaaccent=389;e.ecircumflex=444;e.Uring=722;e.Udieresis=722;e.aogonek=500;e.Uacute=722;e.uogonek=556;e.Edieresis=667;e.Dcroat=722;e.commaaccent=250;e.copyright=747;e.Emacron=667;e.ccaron=444;e.aring=500;e.Ncommaaccent=722;e.lacute=278;e.agrave=500;e.Tcommaaccent=611;e.Cacute=667;e.atilde=500;e.Edotaccent=667;e.scaron=389;e.scedilla=389;e.iacute=278;e.lozenge=494;e.Rcaron=667;e.Gcommaaccent=722;e.ucircumflex=556;e.acircumflex=500;e.Amacron=667;e.rcaron=389;e.ccedilla=444;e.Zdotaccent=611;e.Thorn=611;e.Omacron=722;e.Racute=667;e.Sacute=556;e.dcaron=608;e.Umacron=722;e.uring=556;e.threesuperior=300;e.Ograve=722;e.Agrave=667;e.Abreve=667;e.multiply=570;e.uacute=556;e.Tcaron=611;e.partialdiff=494;e.ydieresis=444;e.Nacute=722;e.icircumflex=278;e.Ecircumflex=667;e.adieresis=500;e.edieresis=444;e.cacute=444;e.nacute=556;e.umacron=556;e.Ncaron=722;e.Iacute=389;e.plusminus=570;e.brokenbar=220;e.registered=747;e.Gbreve=722;e.Idotaccent=389;e.summation=600;e.Egrave=667;e.racute=389;e.omacron=500;e.Zacute=611;e.Zcaron=611;e.greaterequal=549;e.Eth=722;e.Ccedilla=667;e.lcommaaccent=278;e.tcaron=366;e.eogonek=444;e.Uogonek=722;e.Aacute=667;e.Adieresis=667;e.egrave=444;e.zacute=389;e.iogonek=278;e.Oacute=722;e.oacute=500;e.amacron=500;e.sacute=389;e.idieresis=278;e.Ocircumflex=722;e.Ugrave=722;e.Delta=612;e.thorn=500;e.twosuperior=300;e.Odieresis=722;e.mu=576;e.igrave=278;e.ohungarumlaut=500;e.Eogonek=667;e.dcroat=500;e.threequarters=750;e.Scedilla=556;e.lcaron=382;e.Kcommaaccent=667;e.Lacute=611;e.trademark=1e3;e.edotaccent=444;e.Igrave=389;e.Imacron=389;e.Lcaron=611;e.onehalf=750;e.lessequal=549;e.ocircumflex=500;e.ntilde=556;e.Uhungarumlaut=722;e.Eacute=667;e.emacron=444;e.gbreve=500;e.onequarter=750;e.Scaron=556;e.Scommaaccent=556;e.Ohungarumlaut=722;e.degree=400;e.ograve=500;e.Ccaron=667;e.ugrave=556;e.radical=549;e.Dcaron=722;e.rcommaaccent=389;e.Ntilde=722;e.otilde=500;e.Rcommaaccent=667;e.Lcommaaccent=611;e.Atilde=667;e.Aogonek=667;e.Aring=667;e.Otilde=722;e.zdotaccent=389;e.Ecaron=667;e.Iogonek=389;e.kcommaaccent=500;e.minus=606;e.Icircumflex=389;e.ncaron=556;e.tcommaaccent=278;e.logicalnot=606;e.odieresis=500;e.udieresis=556;e.notequal=549;e.gcommaaccent=500;e.eth=500;e.zcaron=389;e.ncommaaccent=556;e.onesuperior=300;e.imacron=278;e.Euro=500}));e["Times-Italic"]=(0,r.getLookupTableFactory)((function(e){e.space=250;e.exclam=333;e.quotedbl=420;e.numbersign=500;e.dollar=500;e.percent=833;e.ampersand=778;e.quoteright=333;e.parenleft=333;e.parenright=333;e.asterisk=500;e.plus=675;e.comma=250;e.hyphen=333;e.period=250;e.slash=278;e.zero=500;e.one=500;e.two=500;e.three=500;e.four=500;e.five=500;e.six=500;e.seven=500;e.eight=500;e.nine=500;e.colon=333;e.semicolon=333;e.less=675;e.equal=675;e.greater=675;e.question=500;e.at=920;e.A=611;e.B=611;e.C=667;e.D=722;e.E=611;e.F=611;e.G=722;e.H=722;e.I=333;e.J=444;e.K=667;e.L=556;e.M=833;e.N=667;e.O=722;e.P=611;e.Q=722;e.R=611;e.S=500;e.T=556;e.U=722;e.V=611;e.W=833;e.X=611;e.Y=556;e.Z=556;e.bracketleft=389;e.backslash=278;e.bracketright=389;e.asciicircum=422;e.underscore=500;e.quoteleft=333;e.a=500;e.b=500;e.c=444;e.d=500;e.e=444;e.f=278;e.g=500;e.h=500;e.i=278;e.j=278;e.k=444;e.l=278;e.m=722;e.n=500;e.o=500;e.p=500;e.q=500;e.r=389;e.s=389;e.t=278;e.u=500;e.v=444;e.w=667;e.x=444;e.y=444;e.z=389;e.braceleft=400;e.bar=275;e.braceright=400;e.asciitilde=541;e.exclamdown=389;e.cent=500;e.sterling=500;e.fraction=167;e.yen=500;e.florin=500;e.section=500;e.currency=500;e.quotesingle=214;e.quotedblleft=556;e.guillemotleft=500;e.guilsinglleft=333;e.guilsinglright=333;e.fi=500;e.fl=500;e.endash=500;e.dagger=500;e.daggerdbl=500;e.periodcentered=250;e.paragraph=523;e.bullet=350;e.quotesinglbase=333;e.quotedblbase=556;e.quotedblright=556;e.guillemotright=500;e.ellipsis=889;e.perthousand=1e3;e.questiondown=500;e.grave=333;e.acute=333;e.circumflex=333;e.tilde=333;e.macron=333;e.breve=333;e.dotaccent=333;e.dieresis=333;e.ring=333;e.cedilla=333;e.hungarumlaut=333;e.ogonek=333;e.caron=333;e.emdash=889;e.AE=889;e.ordfeminine=276;e.Lslash=556;e.Oslash=722;e.OE=944;e.ordmasculine=310;e.ae=667;e.dotlessi=278;e.lslash=278;e.oslash=500;e.oe=667;e.germandbls=500;e.Idieresis=333;e.eacute=444;e.abreve=500;e.uhungarumlaut=500;e.ecaron=444;e.Ydieresis=556;e.divide=675;e.Yacute=556;e.Acircumflex=611;e.aacute=500;e.Ucircumflex=722;e.yacute=444;e.scommaaccent=389;e.ecircumflex=444;e.Uring=722;e.Udieresis=722;e.aogonek=500;e.Uacute=722;e.uogonek=500;e.Edieresis=611;e.Dcroat=722;e.commaaccent=250;e.copyright=760;e.Emacron=611;e.ccaron=444;e.aring=500;e.Ncommaaccent=667;e.lacute=278;e.agrave=500;e.Tcommaaccent=556;e.Cacute=667;e.atilde=500;e.Edotaccent=611;e.scaron=389;e.scedilla=389;e.iacute=278;e.lozenge=471;e.Rcaron=611;e.Gcommaaccent=722;e.ucircumflex=500;e.acircumflex=500;e.Amacron=611;e.rcaron=389;e.ccedilla=444;e.Zdotaccent=556;e.Thorn=611;e.Omacron=722;e.Racute=611;e.Sacute=500;e.dcaron=544;e.Umacron=722;e.uring=500;e.threesuperior=300;e.Ograve=722;e.Agrave=611;e.Abreve=611;e.multiply=675;e.uacute=500;e.Tcaron=556;e.partialdiff=476;e.ydieresis=444;e.Nacute=667;e.icircumflex=278;e.Ecircumflex=611;e.adieresis=500;e.edieresis=444;e.cacute=444;e.nacute=500;e.umacron=500;e.Ncaron=667;e.Iacute=333;e.plusminus=675;e.brokenbar=275;e.registered=760;e.Gbreve=722;e.Idotaccent=333;e.summation=600;e.Egrave=611;e.racute=389;e.omacron=500;e.Zacute=556;e.Zcaron=556;e.greaterequal=549;e.Eth=722;e.Ccedilla=667;e.lcommaaccent=278;e.tcaron=300;e.eogonek=444;e.Uogonek=722;e.Aacute=611;e.Adieresis=611;e.egrave=444;e.zacute=389;e.iogonek=278;e.Oacute=722;e.oacute=500;e.amacron=500;e.sacute=389;e.idieresis=278;e.Ocircumflex=722;e.Ugrave=722;e.Delta=612;e.thorn=500;e.twosuperior=300;e.Odieresis=722;e.mu=500;e.igrave=278;e.ohungarumlaut=500;e.Eogonek=611;e.dcroat=500;e.threequarters=750;e.Scedilla=500;e.lcaron=300;e.Kcommaaccent=667;e.Lacute=556;e.trademark=980;e.edotaccent=444;e.Igrave=333;e.Imacron=333;e.Lcaron=611;e.onehalf=750;e.lessequal=549;e.ocircumflex=500;e.ntilde=500;e.Uhungarumlaut=722;e.Eacute=611;e.emacron=444;e.gbreve=500;e.onequarter=750;e.Scaron=500;e.Scommaaccent=500;e.Ohungarumlaut=722;e.degree=400;e.ograve=500;e.Ccaron=667;e.ugrave=500;e.radical=453;e.Dcaron=722;e.rcommaaccent=389;e.Ntilde=667;e.otilde=500;e.Rcommaaccent=611;e.Lcommaaccent=556;e.Atilde=611;e.Aogonek=611;e.Aring=611;e.Otilde=722;e.zdotaccent=389;e.Ecaron=611;e.Iogonek=333;e.kcommaaccent=444;e.minus=675;e.Icircumflex=333;e.ncaron=500;e.tcommaaccent=278;e.logicalnot=675;e.odieresis=500;e.udieresis=500;e.notequal=549;e.gcommaaccent=500;e.eth=500;e.zcaron=389;e.ncommaaccent=500;e.onesuperior=300;e.imacron=278;e.Euro=500}));e.ZapfDingbats=(0,r.getLookupTableFactory)((function(e){e.space=278;e.a1=974;e.a2=961;e.a202=974;e.a3=980;e.a4=719;e.a5=789;e.a119=790;e.a118=791;e.a117=690;e.a11=960;e.a12=939;e.a13=549;e.a14=855;e.a15=911;e.a16=933;e.a105=911;e.a17=945;e.a18=974;e.a19=755;e.a20=846;e.a21=762;e.a22=761;e.a23=571;e.a24=677;e.a25=763;e.a26=760;e.a27=759;e.a28=754;e.a6=494;e.a7=552;e.a8=537;e.a9=577;e.a10=692;e.a29=786;e.a30=788;e.a31=788;e.a32=790;e.a33=793;e.a34=794;e.a35=816;e.a36=823;e.a37=789;e.a38=841;e.a39=823;e.a40=833;e.a41=816;e.a42=831;e.a43=923;e.a44=744;e.a45=723;e.a46=749;e.a47=790;e.a48=792;e.a49=695;e.a50=776;e.a51=768;e.a52=792;e.a53=759;e.a54=707;e.a55=708;e.a56=682;e.a57=701;e.a58=826;e.a59=815;e.a60=789;e.a61=789;e.a62=707;e.a63=687;e.a64=696;e.a65=689;e.a66=786;e.a67=787;e.a68=713;e.a69=791;e.a70=785;e.a71=791;e.a72=873;e.a73=761;e.a74=762;e.a203=762;e.a75=759;e.a204=759;e.a76=892;e.a77=892;e.a78=788;e.a79=784;e.a81=438;e.a82=138;e.a83=277;e.a84=415;e.a97=392;e.a98=392;e.a99=668;e.a100=668;e.a89=390;e.a90=390;e.a93=317;e.a94=317;e.a91=276;e.a92=276;e.a205=509;e.a85=509;e.a206=410;e.a86=410;e.a87=234;e.a88=234;e.a95=334;e.a96=334;e.a101=732;e.a102=544;e.a103=544;e.a104=910;e.a106=667;e.a107=760;e.a108=760;e.a112=776;e.a111=595;e.a110=694;e.a109=626;e.a120=788;e.a121=788;e.a122=788;e.a123=788;e.a124=788;e.a125=788;e.a126=788;e.a127=788;e.a128=788;e.a129=788;e.a130=788;e.a131=788;e.a132=788;e.a133=788;e.a134=788;e.a135=788;e.a136=788;e.a137=788;e.a138=788;e.a139=788;e.a140=788;e.a141=788;e.a142=788;e.a143=788;e.a144=788;e.a145=788;e.a146=788;e.a147=788;e.a148=788;e.a149=788;e.a150=788;e.a151=788;e.a152=788;e.a153=788;e.a154=788;e.a155=788;e.a156=788;e.a157=788;e.a158=788;e.a159=788;e.a160=894;e.a161=838;e.a163=1016;e.a164=458;e.a196=748;e.a165=924;e.a192=748;e.a166=918;e.a167=927;e.a168=928;e.a169=928;e.a170=834;e.a171=873;e.a172=828;e.a173=924;e.a162=924;e.a174=917;e.a175=930;e.a176=931;e.a177=463;e.a178=883;e.a179=836;e.a193=836;e.a180=867;e.a199=867;e.a181=696;e.a200=696;e.a182=874;e.a201=874;e.a183=760;e.a184=946;e.a197=771;e.a185=865;e.a194=771;e.a198=888;e.a186=967;e.a195=888;e.a187=831;e.a188=873;e.a189=927;e.a190=970;e.a191=918}))}));t.getMetrics=n;const i=(0,r.getLookupTableFactory)((function(e){e.Courier={ascent:629,descent:-157,capHeight:562,xHeight:-426};e["Courier-Bold"]={ascent:629,descent:-157,capHeight:562,xHeight:439};e["Courier-Oblique"]={ascent:629,descent:-157,capHeight:562,xHeight:426};e["Courier-BoldOblique"]={ascent:629,descent:-157,capHeight:562,xHeight:426};e.Helvetica={ascent:718,descent:-207,capHeight:718,xHeight:523};e["Helvetica-Bold"]={ascent:718,descent:-207,capHeight:718,xHeight:532};e["Helvetica-Oblique"]={ascent:718,descent:-207,capHeight:718,xHeight:523};e["Helvetica-BoldOblique"]={ascent:718,descent:-207,capHeight:718,xHeight:532};e["Times-Roman"]={ascent:683,descent:-217,capHeight:662,xHeight:450};e["Times-Bold"]={ascent:683,descent:-217,capHeight:676,xHeight:461};e["Times-Italic"]={ascent:683,descent:-217,capHeight:653,xHeight:441};e["Times-BoldItalic"]={ascent:683,descent:-217,capHeight:669,xHeight:462};e.Symbol={ascent:Math.NaN,descent:Math.NaN,capHeight:Math.NaN,xHeight:Math.NaN};e.ZapfDingbats={ascent:Math.NaN,descent:Math.NaN,capHeight:Math.NaN,xHeight:Math.NaN}}));t.getFontBasicMetrics=i},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.GlyfTable=void 0;t.GlyfTable=class GlyfTable{constructor({glyfTable:e,isGlyphLocationsLong:t,locaTable:a,numGlyphs:r}){this.glyphs=[];const n=new DataView(a.buffer,a.byteOffset,a.byteLength),i=new DataView(e.buffer,e.byteOffset,e.byteLength),s=t?4:2;let o=t?n.getUint32(0):2*n.getUint16(0),c=0;for(let e=0;ee+(t.getSize()+3&-4)),0)}write(){const e=this.getSize(),t=new DataView(new ArrayBuffer(e)),a=e>131070,r=a?4:2,n=new DataView(new ArrayBuffer((this.glyphs.length+1)*r));a?n.setUint32(0,0):n.setUint16(0,0);let i=0,s=0;for(const e of this.glyphs){i+=e.write(i,t);i=i+3&-4;s+=r;a?n.setUint32(s,i):n.setUint16(s,i>>1)}return{isLocationLong:a,loca:new Uint8Array(n.buffer),glyf:new Uint8Array(t.buffer)}}scale(e){for(let t=0,a=this.glyphs.length;te+t.getSize()),0);return this.header.getSize()+e}write(e,t){if(!this.header)return 0;const a=e;e+=this.header.write(e,t);if(this.simple)e+=this.simple.write(e,t);else for(const a of this.composites)e+=a.write(e,t);return e-a}scale(e){if(!this.header)return;const t=(this.header.xMin+this.header.xMax)/2;this.header.scale(t,e);if(this.simple)this.simple.scale(t,e);else for(const a of this.composites)a.scale(t,e)}}class GlyphHeader{constructor({numberOfContours:e,xMin:t,yMin:a,xMax:r,yMax:n}){this.numberOfContours=e;this.xMin=t;this.yMin=a;this.xMax=r;this.yMax=n}static parse(e,t){return[10,new GlyphHeader({numberOfContours:t.getInt16(e),xMin:t.getInt16(e+2),yMin:t.getInt16(e+4),xMax:t.getInt16(e+6),yMax:t.getInt16(e+8)})]}getSize(){return 10}write(e,t){t.setInt16(e,this.numberOfContours);t.setInt16(e+2,this.xMin);t.setInt16(e+4,this.yMin);t.setInt16(e+6,this.xMax);t.setInt16(e+8,this.yMax);return 10}scale(e,t){this.xMin=Math.round(e+(this.xMin-e)*t);this.xMax=Math.round(e+(this.xMax-e)*t)}}class Contour{constructor({flags:e,xCoordinates:t,yCoordinates:a}){this.xCoordinates=t;this.yCoordinates=a;this.flags=e}}class SimpleGlyph{constructor({contours:e,instructions:t}){this.contours=e;this.instructions=t}static parse(e,t,a){const r=[];for(let n=0;n255?e+=2:o>0&&(e+=1);t=i;o=Math.abs(s-a);o>255?e+=2:o>0&&(e+=1);a=s}}return e}write(e,t){const a=e,r=[],n=[],i=[];let s=0,o=0;for(const a of this.contours){for(let e=0,t=a.xCoordinates.length;e=0?18:2;r.push(e)}else r.push(l)}s=c;const h=a.yCoordinates[e];l=h-o;if(0===l){t|=32;n.push(0)}else{const e=Math.abs(l);if(e<=255){t|=l>=0?36:4;n.push(e)}else n.push(l)}o=h;i.push(t)}t.setUint16(e,r.length-1);e+=2}t.setUint16(e,this.instructions.length);e+=2;if(this.instructions.length){new Uint8Array(t.buffer,0,t.buffer.byteLength).set(this.instructions,e);e+=this.instructions.length}for(const a of i)t.setUint8(e++,a);for(let a=0,n=r.length;a=-128&&this.argument1<=127&&this.argument2>=-128&&this.argument2<=127||(e+=2):this.argument1>=0&&this.argument1<=255&&this.argument2>=0&&this.argument2<=255||(e+=2);return e}write(e,t){const a=e;2&this.flags?this.argument1>=-128&&this.argument1<=127&&this.argument2>=-128&&this.argument2<=127||(this.flags|=1):this.argument1>=0&&this.argument1<=255&&this.argument2>=0&&this.argument2<=255||(this.flags|=1);t.setUint16(e,this.flags);t.setUint16(e+2,this.glyphIndex);e+=4;if(1&this.flags){if(2&this.flags){t.setInt16(e,this.argument1);t.setInt16(e+2,this.argument2)}else{t.setUint16(e,this.argument1);t.setUint16(e+2,this.argument2)}e+=4}else{t.setUint8(e,this.argument1);t.setUint8(e+1,this.argument2);e+=2}if(256&this.flags){t.setUint16(e,this.instructions.length);e+=2;if(this.instructions.length){new Uint8Array(t.buffer,0,t.buffer.byteLength).set(this.instructions,e);e+=this.instructions.length}}return e-a}scale(e,t){}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.OpenTypeFileBuilder=void 0;var r=a(8),n=a(2);function writeInt16(e,t,a){e[t]=a>>8&255;e[t+1]=255&a}function writeInt32(e,t,a){e[t]=a>>24&255;e[t+1]=a>>16&255;e[t+2]=a>>8&255;e[t+3]=255&a}function writeData(e,t,a){if(a instanceof Uint8Array)e.set(a,t);else if("string"==typeof a)for(let r=0,n=a.length;ra;){a<<=1;r++}const n=a*t;return{range:n,entry:r,rangeShift:t*e-n}}toArray(){let e=this.sfnt;const t=this.tables,a=Object.keys(t);a.sort();const i=a.length;let s,o,c,l,h,u=12+16*i;const d=[u];for(s=0;s>>0;d.push(u)}const f=new Uint8Array(u);for(s=0;s>>0}writeInt32(f,u+4,e);writeInt32(f,u+8,d[s]);writeInt32(f,u+12,t[h].length);u+=16}return f}addTable(e,t){if(e in this.tables)throw new Error("Table "+e+" already exists");this.tables[e]=t}}t.OpenTypeFileBuilder=OpenTypeFileBuilder},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Type1Font=void 0;var r=a(45),n=a(18),i=a(8),s=a(10),o=a(55),c=a(2);function findBlock(e,t,a){const r=e.length,n=t.length,s=r-n;let o=a,c=!1;for(;o=n){o+=a;for(;o=0&&(r[e]=i)}}return(0,n.type1FontGlyphMapping)(e,r,a)}hasGlyphId(e){if(e<0||e>=this.numGlyphs)return!1;if(0===e)return!0;return this.charstrings[e-1].charstring.length>0}getSeacs(e){const t=[];for(let a=0,r=e.length;a0;e--)t[e]-=t[e-1];g.setByName(e,t)}s.topDict.privateDict=g;const m=new r.CFFIndex;for(u=0,d=n.length;u{Object.defineProperty(t,"__esModule",{value:!0});t.Type1Parser=void 0;var r=a(19),n=a(8),i=a(10),s=a(2);const o=function Type1CharStringClosure(){const e=[4],t=[5],a=[6],r=[7],n=[8],i=[12,35],o=[14],c=[21],l=[22],h=[30],u=[31];return class Type1CharString{constructor(){this.width=0;this.lsb=0;this.flexing=!1;this.output=[];this.stack=[]}convert(d,f,g){const p=d.length;let m,b,y,w=!1;for(let S=0;Sr)return!0;const n=r-e;for(let e=n;e>8&255,255&t);else{t=65536*t|0;this.output.push(255,t>>24&255,t>>16&255,t>>8&255,255&t)}}this.output.push.apply(this.output,t);a?this.stack.splice(n,e):this.stack.length=0;return!1}}}(),c=function Type1ParserClosure(){function isHexDigit(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function decrypt(e,t,a){if(a>=e.length)return new Uint8Array(0);let r,n,i=0|t;for(r=0;r>8;i=52845*(t+i)+22719&65535}return o}function isSpecial(e){return 47===e||91===e||93===e||123===e||125===e||40===e||41===e}return class Type1Parser{constructor(e,t,a){if(t){const t=e.getBytes(),a=!((isHexDigit(t[0])||(0,n.isWhiteSpace)(t[0]))&&isHexDigit(t[1])&&isHexDigit(t[2])&&isHexDigit(t[3])&&isHexDigit(t[4])&&isHexDigit(t[5])&&isHexDigit(t[6])&&isHexDigit(t[7]));e=new i.Stream(a?decrypt(t,55665,4):function decryptAscii(e,t,a){let r=0|t;const n=e.length,i=new Uint8Array(n>>>1);let s,o;for(s=0,o=0;s>8;r=52845*(e+r)+22719&65535}}return i.slice(a,o)}(t,55665,4))}this.seacAnalysisEnabled=!!a;this.stream=e;this.nextChar()}readNumberArray(){this.getToken();const e=[];for(;;){const t=this.getToken();if(null===t||"]"===t||"}"===t)break;e.push(parseFloat(t||0))}return e}readNumber(){const e=this.getToken();return parseFloat(e||0)}readInt(){const e=this.getToken();return 0|parseInt(e||0,10)}readBoolean(){return"true"===this.getToken()?1:0}nextChar(){return this.currentChar=this.stream.getByte()}prevChar(){this.stream.skip(-2);return this.currentChar=this.stream.getByte()}getToken(){let e=!1,t=this.currentChar;for(;;){if(-1===t)return null;if(e)10!==t&&13!==t||(e=!1);else if(37===t)e=!0;else if(!(0,n.isWhiteSpace)(t))break;t=this.nextChar()}if(isSpecial(t)){this.nextChar();return String.fromCharCode(t)}let a="";do{a+=String.fromCharCode(t);t=this.nextChar()}while(t>=0&&!(0,n.isWhiteSpace)(t)&&!isSpecial(t));return a}readCharStrings(e,t){return-1===t?e:decrypt(e,4330,t)}extractFontProgram(e){const t=this.stream,a=[],r=[],n=Object.create(null);n.lenIV=4;const i={subrs:[],charstrings:[],properties:{privateData:n}};let s,c,l,h,u;for(;null!==(s=this.getToken());)if("/"===s){s=this.getToken();switch(s){case"CharStrings":this.getToken();this.getToken();this.getToken();this.getToken();for(;;){s=this.getToken();if(null===s||"end"===s)break;if("/"!==s)continue;const e=this.getToken();c=this.readInt();this.getToken();l=c>0?t.getBytes(c):new Uint8Array(0);h=i.properties.privateData.lenIV;u=this.readCharStrings(l,h);this.nextChar();s=this.getToken();"noaccess"===s?this.getToken():"/"===s&&this.prevChar();r.push({glyph:e,encoded:u})}break;case"Subrs":this.readInt();this.getToken();for(;"dup"===this.getToken();){const e=this.readInt();c=this.readInt();this.getToken();l=c>0?t.getBytes(c):new Uint8Array(0);h=i.properties.privateData.lenIV;u=this.readCharStrings(l,h);this.nextChar();s=this.getToken();"noaccess"===s&&this.getToken();a[e]=u}break;case"BlueValues":case"OtherBlues":case"FamilyBlues":case"FamilyOtherBlues":const e=this.readNumberArray();e.length>0&&e.length,0;break;case"StemSnapH":case"StemSnapV":i.properties.privateData[s]=this.readNumberArray();break;case"StdHW":case"StdVW":i.properties.privateData[s]=this.readNumberArray()[0];break;case"BlueShift":case"lenIV":case"BlueFuzz":case"BlueScale":case"LanguageGroup":case"ExpansionFactor":i.properties.privateData[s]=this.readNumber();break;case"ForceBold":i.properties.privateData[s]=this.readBoolean()}}for(let t=0;t-1&&void 0===e.widths[t]&&t>=e.firstChar&&t<=e.lastChar&&(e.widths[t]=s.width)}}return i}extractFontHeader(e){let t;for(;null!==(t=this.getToken());)if("/"===t){t=this.getToken();switch(t){case"FontMatrix":const a=this.readNumberArray();e.fontMatrix=a;break;case"Encoding":const n=this.getToken();let i;if(/^\d+$/.test(n)){i=[];const e=0|parseInt(n,10);this.getToken();for(let a=0;a{Object.defineProperty(t,"__esModule",{value:!0});t.Pattern=void 0;t.getTilingPatternIR=function getTilingPatternIR(e,t,a){const n=t.getArray("Matrix"),i=r.Util.normalizeRect(t.getArray("BBox")),s=t.get("XStep"),o=t.get("YStep"),c=t.get("PaintType"),l=t.get("TilingType");if(i[2]-i[0]==0||i[3]-i[1]==0)throw new r.FormatError(`Invalid getTilingPatternIR /BBox array: [${i}].`);return["TilingPattern",a,e,n,i,s,o,c,l]};var r=a(2),n=a(9),i=a(24),s=a(8);const o=2,c=3,l=4,h=5,u=6,d=7;t.Pattern=class Pattern{constructor(){(0,r.unreachable)("Cannot initialize Pattern.")}static parseShading(e,t,a,i,f,g){const p=e instanceof n.BaseStream?e.dict:e,m=p.get("ShadingType");try{switch(m){case o:case c:return new RadialAxialShading(p,t,a,f,g);case l:case h:case u:case d:return new MeshShading(e,t,a,f,g);default:throw new r.FormatError("Unsupported ShadingType: "+m)}}catch(e){if(e instanceof s.MissingDataException)throw e;i.send("UnsupportedFeature",{featureId:r.UNSUPPORTED_FEATURES.shadingPattern});(0,r.warn)(e);return new DummyShading}}};class BaseShading{static get SMALL_NUMBER(){return(0,r.shadow)(this,"SMALL_NUMBER",1e-6)}constructor(){this.constructor===BaseShading&&(0,r.unreachable)("Cannot initialize BaseShading.")}getIR(){(0,r.unreachable)("Abstract method `getIR` called.")}}class RadialAxialShading extends BaseShading{constructor(e,t,a,n,s){super();this.coordsArr=e.getArray("Coords");this.shadingType=e.get("ShadingType");const o=i.ColorSpace.parse({cs:e.getRaw("CS")||e.getRaw("ColorSpace"),xref:t,resources:a,pdfFunctionFactory:n,localColorSpaceCache:s}),l=e.getArray("BBox");Array.isArray(l)&&4===l.length?this.bbox=r.Util.normalizeRect(l):this.bbox=null;let h=0,u=1;if(e.has("Domain")){const t=e.getArray("Domain");h=t[0];u=t[1]}let d=!1,f=!1;if(e.has("Extend")){const t=e.getArray("Extend");d=t[0];f=t[1]}if(!(this.shadingType!==c||d&&f)){const[e,t,a,n,i,s]=this.coordsArr,o=Math.hypot(e-n,t-i);a<=s+o&&s<=a+o&&(0,r.warn)("Unsupported radial gradient.")}this.extendStart=d;this.extendEnd=f;const g=e.getRaw("Function"),p=n.createFromArray(g),m=(u-h)/10,b=this.colorStops=[];if(h>=u||m<=0){(0,r.info)("Bad shading domain.");return}const y=new Float32Array(o.numComps),w=new Float32Array(1);let S;for(let e=0;e<=10;e++){w[0]=h+e*m;p(w,0,y,0);S=o.getRgb(y,0);const t=r.Util.makeHexColor(S[0],S[1],S[2]);b.push([e/10,t])}let x="transparent";if(e.has("Background")){S=o.getRgb(e.get("Background"),0);x=r.Util.makeHexColor(S[0],S[1],S[2])}if(!d){b.unshift([0,x]);b[1][0]+=BaseShading.SMALL_NUMBER}if(!f){b[b.length-1][0]-=BaseShading.SMALL_NUMBER;b.push([1,x])}this.colorStops=b}getIR(){const e=this.coordsArr,t=this.shadingType;let a,n,i,s,l;if(t===o){n=[e[0],e[1]];i=[e[2],e[3]];s=null;l=null;a="axial"}else if(t===c){n=[e[0],e[1]];i=[e[3],e[4]];s=e[2];l=e[5];a="radial"}else(0,r.unreachable)(`getPattern type unknown: ${t}`);return["RadialAxial",a,this.bbox,this.colorStops,n,i,s,l]}}class MeshStreamReader{constructor(e,t){this.stream=e;this.context=t;this.buffer=0;this.bufferLength=0;const a=t.numComps;this.tmpCompsBuf=new Float32Array(a);const r=t.colorSpace.numComps;this.tmpCsCompsBuf=t.colorFn?new Float32Array(r):this.tmpCompsBuf}get hasData(){if(this.stream.end)return this.stream.pos0)return!0;const e=this.stream.getByte();if(e<0)return!1;this.buffer=e;this.bufferLength=8;return!0}readBits(e){let t=this.buffer,a=this.bufferLength;if(32===e){if(0===a)return(this.stream.getByte()<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte())>>>0;t=t<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte();const e=this.stream.getByte();this.buffer=e&(1<>a)>>>0}if(8===e&&0===a)return this.stream.getByte();for(;a>a}align(){this.buffer=0;this.bufferLength=0}readFlag(){return this.readBits(this.context.bitsPerFlag)}readCoordinate(){const e=this.context.bitsPerCoordinate,t=this.readBits(e),a=this.readBits(e),r=this.context.decode,n=e<32?1/((1<i?i:e;t=t>s?s:t;a=a{Object.defineProperty(t,"__esModule",{value:!0});t.PostScriptEvaluator=t.PostScriptCompiler=t.PDFFunctionFactory=void 0;t.isPDFFunction=function isPDFFunction(e){let t;if("object"!=typeof e)return!1;if(e instanceof r.Dict)t=e;else{if(!(e instanceof s.BaseStream))return!1;t=e.dict}return t.has("FunctionType")};var r=a(5),n=a(2),i=a(58),s=a(9),o=a(59);t.PDFFunctionFactory=class PDFFunctionFactory{constructor({xref:e,isEvalSupported:t=!0}){this.xref=e;this.isEvalSupported=!1!==t}create(e){const t=this.getCached(e);if(t)return t;const a=PDFFunction.parse({xref:this.xref,isEvalSupported:this.isEvalSupported,fn:e instanceof r.Ref?this.xref.fetch(e):e});this._cache(e,a);return a}createFromArray(e){const t=this.getCached(e);if(t)return t;const a=PDFFunction.parseArray({xref:this.xref,isEvalSupported:this.isEvalSupported,fnObj:e instanceof r.Ref?this.xref.fetch(e):e});this._cache(e,a);return a}getCached(e){let t;e instanceof r.Ref?t=e:e instanceof r.Dict?t=e.objId:e instanceof s.BaseStream&&(t=e.dict&&e.dict.objId);if(t){const e=this._localFunctionCache.getByRef(t);if(e)return e}return null}_cache(e,t){if(!t)throw new Error('PDFFunctionFactory._cache - expected "parsedFunction" argument.');let a;e instanceof r.Ref?a=e:e instanceof r.Dict?a=e.objId:e instanceof s.BaseStream&&(a=e.dict&&e.dict.objId);a&&this._localFunctionCache.set(null,a,t)}get _localFunctionCache(){return(0,n.shadow)(this,"_localFunctionCache",new o.LocalFunctionCache)}};function toNumberArray(e){if(!Array.isArray(e))return null;const t=e.length;for(let a=0;a>c)*h;l&=(1<a?e=a:e0&&(d=o[u-1]);let f=r[1];u>1,d=s.length>>1,f=new PostScriptEvaluator(h),g=Object.create(null);let p=8192;const m=new Float32Array(d);return function constructPostScriptFn(e,t,a,r){let n,i,s="";const c=m;for(n=0;ne&&(i=e)}h[n]=i}if(p>0){p--;g[s]=h}a.set(h,r)}}}class PostScriptStack{static get MAX_STACK_SIZE(){return(0,n.shadow)(this,"MAX_STACK_SIZE",100)}constructor(e){this.stack=e?Array.prototype.slice.call(e,0):[]}push(e){if(this.stack.length>=PostScriptStack.MAX_STACK_SIZE)throw new Error("PostScript function stack overflow.");this.stack.push(e)}pop(){if(this.stack.length<=0)throw new Error("PostScript function stack underflow.");return this.stack.pop()}copy(e){if(this.stack.length+e>=PostScriptStack.MAX_STACK_SIZE)throw new Error("PostScript function stack overflow.");const t=this.stack;for(let a=t.length-e,r=e-1;r>=0;r--,a++)t.push(t[a])}index(e){this.push(this.stack[this.stack.length-e-1])}roll(e,t){const a=this.stack,r=a.length-e,n=a.length-1,i=r+(t-Math.floor(t/e)*e);for(let e=r,t=n;e0?t.push(o<>c);break;case"ceiling":o=t.pop();t.push(Math.ceil(o));break;case"copy":o=t.pop();t.copy(o);break;case"cos":o=t.pop();t.push(Math.cos(o));break;case"cvi":o=0|t.pop();t.push(o);break;case"cvr":break;case"div":c=t.pop();o=t.pop();t.push(o/c);break;case"dup":t.copy(1);break;case"eq":c=t.pop();o=t.pop();t.push(o===c);break;case"exch":t.roll(2,1);break;case"exp":c=t.pop();o=t.pop();t.push(o**c);break;case"false":t.push(!1);break;case"floor":o=t.pop();t.push(Math.floor(o));break;case"ge":c=t.pop();o=t.pop();t.push(o>=c);break;case"gt":c=t.pop();o=t.pop();t.push(o>c);break;case"idiv":c=t.pop();o=t.pop();t.push(o/c|0);break;case"index":o=t.pop();t.index(o);break;case"le":c=t.pop();o=t.pop();t.push(o<=c);break;case"ln":o=t.pop();t.push(Math.log(o));break;case"log":o=t.pop();t.push(Math.log(o)/Math.LN10);break;case"lt":c=t.pop();o=t.pop();t.push(o=t?new AstLiteral(t):e.max<=t?e:new AstMin(e,t)}return class PostScriptCompiler{compile(e,t,a){const r=[],n=[],i=t.length>>1,s=a.length>>1;let o,c,l,h,u,d,f,g,p=0;for(let e=0;et.min){o.unshift("Math.max(",i,", ");o.push(")")}if(s{Object.defineProperty(t,"__esModule",{value:!0});t.PostScriptParser=t.PostScriptLexer=void 0;var r=a(2),n=a(5),i=a(8);t.PostScriptParser=class PostScriptParser{constructor(e){this.lexer=e;this.operators=[];this.token=null;this.prev=null}nextToken(){this.prev=this.token;this.token=this.lexer.getToken()}accept(e){if(this.token.type===e){this.nextToken();return!0}return!1}expect(e){if(this.accept(e))return!0;throw new r.FormatError(`Unexpected symbol: found ${this.token.type} expected ${e}.`)}parse(){this.nextToken();this.expect(s.LBRACE);this.parseBlock();this.expect(s.RBRACE);return this.operators}parseBlock(){for(;;)if(this.accept(s.NUMBER))this.operators.push(this.prev.value);else if(this.accept(s.OPERATOR))this.operators.push(this.prev.value);else{if(!this.accept(s.LBRACE))return;this.parseCondition()}}parseCondition(){const e=this.operators.length;this.operators.push(null,null);this.parseBlock();this.expect(s.RBRACE);if(this.accept(s.IF)){this.operators[e]=this.operators.length;this.operators[e+1]="jz"}else{if(!this.accept(s.LBRACE))throw new r.FormatError("PS Function: error parsing conditional.");{const t=this.operators.length;this.operators.push(null,null);const a=this.operators.length;this.parseBlock();this.expect(s.RBRACE);this.expect(s.IFELSE);this.operators[t]=this.operators.length;this.operators[t+1]="j";this.operators[e]=a;this.operators[e+1]="jz"}}}};const s={LBRACE:0,RBRACE:1,NUMBER:2,OPERATOR:3,IF:4,IFELSE:5};class PostScriptToken{static get opCache(){return(0,r.shadow)(this,"opCache",Object.create(null))}constructor(e,t){this.type=e;this.value=t}static getOperator(e){const t=PostScriptToken.opCache[e];return t||(PostScriptToken.opCache[e]=new PostScriptToken(s.OPERATOR,e))}static get LBRACE(){return(0,r.shadow)(this,"LBRACE",new PostScriptToken(s.LBRACE,"{"))}static get RBRACE(){return(0,r.shadow)(this,"RBRACE",new PostScriptToken(s.RBRACE,"}"))}static get IF(){return(0,r.shadow)(this,"IF",new PostScriptToken(s.IF,"IF"))}static get IFELSE(){return(0,r.shadow)(this,"IFELSE",new PostScriptToken(s.IFELSE,"IFELSE"))}}t.PostScriptLexer=class PostScriptLexer{constructor(e){this.stream=e;this.nextChar();this.strBuf=[]}nextChar(){return this.currentChar=this.stream.getByte()}getToken(){let e=!1,t=this.currentChar;for(;;){if(t<0)return n.EOF;if(e)10!==t&&13!==t||(e=!1);else if(37===t)e=!0;else if(!(0,i.isWhiteSpace)(t))break;t=this.nextChar()}switch(0|t){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return new PostScriptToken(s.NUMBER,this.getNumber());case 123:this.nextChar();return PostScriptToken.LBRACE;case 125:this.nextChar();return PostScriptToken.RBRACE}const a=this.strBuf;a.length=0;a[0]=String.fromCharCode(t);for(;(t=this.nextChar())>=0&&(t>=65&&t<=90||t>=97&&t<=122);)a.push(String.fromCharCode(t));const r=a.join("");switch(r.toLowerCase()){case"if":return PostScriptToken.IF;case"ifelse":return PostScriptToken.IFELSE;default:return PostScriptToken.getOperator(r)}}getNumber(){let e=this.currentChar;const t=this.strBuf;t.length=0;t[0]=String.fromCharCode(e);for(;(e=this.nextChar())>=0&&(e>=48&&e<=57||45===e||46===e);)t.push(String.fromCharCode(e));const a=parseFloat(t.join(""));if(isNaN(a))throw new r.FormatError(`Invalid floating point number: ${a}`);return a}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.LocalTilingPatternCache=t.LocalImageCache=t.LocalGStateCache=t.LocalFunctionCache=t.LocalColorSpaceCache=t.GlobalImageCache=void 0;var r=a(2),n=a(5);class BaseLocalCache{constructor(e){this.constructor===BaseLocalCache&&(0,r.unreachable)("Cannot initialize BaseLocalCache.");this._onlyRefs=!0===(e&&e.onlyRefs);if(!this._onlyRefs){this._nameRefMap=new Map;this._imageMap=new Map}this._imageCache=new n.RefSetCache}getByName(e){this._onlyRefs&&(0,r.unreachable)("Should not call `getByName` method.");const t=this._nameRefMap.get(e);return t?this.getByRef(t):this._imageMap.get(e)||null}getByRef(e){return this._imageCache.get(e)||null}set(e,t,a){(0,r.unreachable)("Abstract method `set` called.")}}t.LocalImageCache=class LocalImageCache extends BaseLocalCache{set(e,t=null,a){if("string"!=typeof e)throw new Error('LocalImageCache.set - expected "name" argument.');if(t){if(this._imageCache.has(t))return;this._nameRefMap.set(e,t);this._imageCache.put(t,a)}else this._imageMap.has(e)||this._imageMap.set(e,a)}};t.LocalColorSpaceCache=class LocalColorSpaceCache extends BaseLocalCache{set(e=null,t=null,a){if("string"!=typeof e&&!t)throw new Error('LocalColorSpaceCache.set - expected "name" and/or "ref" argument.');if(t){if(this._imageCache.has(t))return;null!==e&&this._nameRefMap.set(e,t);this._imageCache.put(t,a)}else this._imageMap.has(e)||this._imageMap.set(e,a)}};t.LocalFunctionCache=class LocalFunctionCache extends BaseLocalCache{constructor(e){super({onlyRefs:!0})}set(e=null,t,a){if(!t)throw new Error('LocalFunctionCache.set - expected "ref" argument.');this._imageCache.has(t)||this._imageCache.put(t,a)}};t.LocalGStateCache=class LocalGStateCache extends BaseLocalCache{set(e,t=null,a){if("string"!=typeof e)throw new Error('LocalGStateCache.set - expected "name" argument.');if(t){if(this._imageCache.has(t))return;this._nameRefMap.set(e,t);this._imageCache.put(t,a)}else this._imageMap.has(e)||this._imageMap.set(e,a)}};t.LocalTilingPatternCache=class LocalTilingPatternCache extends BaseLocalCache{constructor(e){super({onlyRefs:!0})}set(e=null,t,a){if(!t)throw new Error('LocalTilingPatternCache.set - expected "ref" argument.');this._imageCache.has(t)||this._imageCache.put(t,a)}};class GlobalImageCache{static get NUM_PAGES_THRESHOLD(){return(0,r.shadow)(this,"NUM_PAGES_THRESHOLD",2)}static get MIN_IMAGES_TO_CACHE(){return(0,r.shadow)(this,"MIN_IMAGES_TO_CACHE",10)}static get MAX_BYTE_SIZE(){return(0,r.shadow)(this,"MAX_BYTE_SIZE",4e7)}constructor(){this._refCache=new n.RefSetCache;this._imageCache=new n.RefSetCache}get _byteSize(){let e=0;for(const t of this._imageCache)e+=t.byteSize;return e}get _cacheLimitReached(){return!(this._imageCache.size{Object.defineProperty(t,"__esModule",{value:!0});t.bidi=function bidi(e,t=-1,a=!1){let c=!0;const l=e.length;if(0===l||a)return createBidiText(e,c,a);s.length=l;o.length=l;let h,u,d=0;for(h=0;h4){c=!0;t=0}else{c=!1;t=1}const f=[];for(h=0;h=0&&"ET"===o[e];--e)o[e]="EN";for(let e=h+1;e0&&(t=o[h-1]);let a=m;e+1w&&isOdd(w)&&(x=w)}for(w=S;w>=x;--w){let e=-1;for(h=0,u=f.length;h=0){reverseValues(s,e,h);e=-1}}else e<0&&(e=h);e>=0&&reverseValues(s,e,f.length)}for(h=0,u=s.length;h"!==e||(s[h]="")}return createBidiText(s.join(""),c)};var r=a(2);const n=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","BN","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],i=["AN","AN","AN","AN","AN","AN","ON","ON","AL","ET","ET","AL","CS","AL","ON","ON","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AN","AN","AN","AN","AN","AN","AN","AN","AN","AN","ET","AN","AN","AL","AL","AL","NSM","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AN","ON","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","NSM","NSM","ON","NSM","NSM","NSM","NSM","AL","AL","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","AL","AL","AL","AL","AL","AL"];function isOdd(e){return 0!=(1&e)}function isEven(e){return 0==(1&e)}function findUnequal(e,t,a){let r,n;for(r=t,n=e.length;r{Object.defineProperty(t,"__esModule",{value:!0});t.MurmurHash3_64=void 0;var r=a(2);const n=3285377520,i=4294901760,s=65535;t.MurmurHash3_64=class MurmurHash3_64{constructor(e){this.h1=e?4294967295&e:n;this.h2=e?4294967295&e:n}update(e){let t,a;if("string"==typeof e){t=new Uint8Array(2*e.length);a=0;for(let r=0,n=e.length;r>>8;t[a++]=255&n}}}else{if(!(0,r.isArrayBuffer)(e))throw new Error("Wrong data format in MurmurHash3_64_update. Input must be a string or array.");t=e.slice();a=t.byteLength}const n=a>>2,o=a-4*n,c=new Uint32Array(t.buffer,0,n);let l=0,h=0,u=this.h1,d=this.h2;const f=3432918353,g=461845907,p=11601,m=13715;for(let e=0;e>>17;l=l*g&i|l*m&s;u^=l;u=u<<13|u>>>19;u=5*u+3864292196}else{h=c[e];h=h*f&i|h*p&s;h=h<<15|h>>>17;h=h*g&i|h*m&s;d^=h;d=d<<13|d>>>19;d=5*d+3864292196}l=0;switch(o){case 3:l^=t[4*n+2]<<16;case 2:l^=t[4*n+1]<<8;case 1:l^=t[4*n];l=l*f&i|l*p&s;l=l<<15|l>>>17;l=l*g&i|l*m&s;1&n?u^=l:d^=l}this.h1=u;this.h2=d}hexdigest(){let e=this.h1,t=this.h2;e^=t>>>1;e=3981806797*e&i|36045*e&s;t=4283543511*t&i|(2950163797*(t<<16|e>>>16)&i)>>>16;e^=t>>>1;e=444984403*e&i|60499*e&s;t=3301882366*t&i|(3120437893*(t<<16|e>>>16)&i)>>>16;e^=t>>>1;const a=(e>>>0).toString(16),r=(t>>>0).toString(16);return a.padStart(8,"0")+r.padStart(8,"0")}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.OperatorList=void 0;var r=a(2);function addState(e,t,a,r,n){let i=e;for(let e=0,a=t.length-1;e1e3){h=Math.max(h,f);g+=d+2;f=0;d=0}u.push({transform:t,x:f,y:g,w:a.width,h:a.height});f+=a.width+2;d=Math.max(d,a.height)}const p=Math.max(h,f)+1,m=g+d+1,b=new Uint8Array(p*m*4),y=p<<2;for(let e=0;e=0;){t[i-4]=t[i];t[i-3]=t[i+1];t[i-2]=t[i+2];t[i-1]=t[i+3];t[i+a]=t[i+a-4];t[i+a+1]=t[i+a-3];t[i+a+2]=t[i+a-2];t[i+a+3]=t[i+a-1];i-=y}}a.splice(s,4*l,r.OPS.paintInlineImageXObjectGroup);n.splice(s,4*l,[{width:p,height:m,kind:r.ImageKind.RGBA_32BPP,data:b},u]);return s+1}));addState(n,[r.OPS.save,r.OPS.transform,r.OPS.paintImageMaskXObject,r.OPS.restore],null,(function iterateImageMaskGroup(e,t){const a=e.fnArray,n=(t-(e.iCurr-3))%4;switch(n){case 0:return a[t]===r.OPS.save;case 1:return a[t]===r.OPS.transform;case 2:return a[t]===r.OPS.paintImageMaskXObject;case 3:return a[t]===r.OPS.restore}throw new Error(`iterateImageMaskGroup - invalid pos: ${n}`)}),(function foundImageMaskGroup(e,t){const a=e.fnArray,n=e.argsArray,i=e.iCurr,s=i-3,o=i-2,c=i-1;let l=Math.floor((t-s)/4);if(l<10)return t-(t-s)%4;let h,u,d=!1;const f=n[c][0],g=n[o][0],p=n[o][1],m=n[o][2],b=n[o][3];if(p===m){d=!0;h=o+4;let e=c+4;for(let t=1;t=4&&a[i-4]===a[s]&&a[i-3]===a[o]&&a[i-2]===a[c]&&a[i-1]===a[l]&&r[i-4][0]===h&&r[i-4][1]===u){d++;f-=5}let g=f+4;for(let e=1;e=a)break}r=(r||n)[e[t]];if(r&&!Array.isArray(r)){s.iCurr=t;t++;if(!r.checkFn||(0,r.checkFn)(s)){i=r;r=null}else r=null}else t++}this.state=r;this.match=i;this.lastProcessed=t}flush(){for(;this.match;){const e=this.queue.fnArray.length;this.lastProcessed=(0,this.match.processFn)(this.context,e);this.match=null;this.state=null;this._optimize()}}reset(){this.state=null;this.match=null;this.lastProcessed=0}}class OperatorList{static get CHUNK_SIZE(){return(0,r.shadow)(this,"CHUNK_SIZE",1e3)}static get CHUNK_SIZE_ABOUT(){return(0,r.shadow)(this,"CHUNK_SIZE_ABOUT",this.CHUNK_SIZE-5)}constructor(e=0,t){this._streamSink=t;this.fnArray=[];this.argsArray=[];!t||e&r.RenderingIntentFlag.OPLIST?this.optimizer=new NullOptimizer(this):this.optimizer=new QueueOptimizer(this);this.dependencies=new Set;this._totalLength=0;this.weight=0;this._resolved=t?null:Promise.resolve()}get length(){return this.argsArray.length}get ready(){return this._resolved||this._streamSink.ready}get totalLength(){return this._totalLength+this.length}addOp(e,t){this.optimizer.push(e,t);this.weight++;this._streamSink&&(this.weight>=OperatorList.CHUNK_SIZE||this.weight>=OperatorList.CHUNK_SIZE_ABOUT&&(e===r.OPS.restore||e===r.OPS.endText))&&this.flush()}addImageOps(e,t,a){void 0!==a&&this.addOp(r.OPS.beginMarkedContentProps,["OC",a]);this.addOp(e,t);void 0!==a&&this.addOp(r.OPS.endMarkedContent,[])}addDependency(e){if(!this.dependencies.has(e)){this.dependencies.add(e);this.addOp(r.OPS.dependency,[e])}}addDependencies(e){for(const t of e)this.addDependency(t)}addOpList(e){if(e instanceof OperatorList){for(const t of e.dependencies)this.dependencies.add(t);for(let t=0,a=e.length;t{Object.defineProperty(t,"__esModule",{value:!0});t.PDFImage=void 0;var r=a(2),n=a(64),i=a(9),s=a(24),o=a(29),c=a(37),l=a(40),h=a(5);function decodeAndClamp(e,t,a,r){(e=t+e*a)<0?e=0:e>r&&(e=r);return e}function resizeImageMask(e,t,a,r,n,i){const s=n*i;let o;o=t<=8?new Uint8Array(s):t<=16?new Uint16Array(s):new Uint32Array(s);const c=a/n,l=r/i;let h,u,d,f,g=0;const p=new Uint16Array(n),m=a;for(h=0;h0&&Number.isInteger(a.height)&&a.height>0&&(a.width!==m||a.height!==b)){(0,r.warn)("PDFImage - using the Width/Height of the image data, rather than the image dictionary.");m=a.width;b=a.height}if(m<1||b<1)throw new r.FormatError(`Invalid image width: ${m} or height: ${b}`);this.width=m;this.height=b;this.interpolate=g.get("I","Interpolate");this.imageMask=g.get("IM","ImageMask")||!1;this.matte=g.get("Matte")||!1;let y=a.bitsPerComponent;if(!y){y=g.get("BPC","BitsPerComponent");if(!y){if(!this.imageMask)throw new r.FormatError(`Bits per component missing in image: ${this.imageMask}`);y=1}}this.bpc=y;if(!this.imageMask){let i=g.getRaw("CS")||g.getRaw("ColorSpace");if(!i){(0,r.info)("JPX images (which do not require color spaces)");switch(a.numComps){case 1:i=h.Name.get("DeviceGray");break;case 3:i=h.Name.get("DeviceRGB");break;case 4:i=h.Name.get("DeviceCMYK");break;default:throw new Error(`JPX images with ${a.numComps} color components not supported.`)}}this.colorSpace=s.ColorSpace.parse({cs:i,xref:e,resources:n?t:null,pdfFunctionFactory:d,localColorSpaceCache:f});this.numComps=this.colorSpace.numComps}this.decode=g.getArray("D","Decode");this.needsDecode=!1;if(this.decode&&(this.colorSpace&&!this.colorSpace.isDefaultDecode(this.decode,y)||u&&!s.ColorSpace.isDefaultDecode(this.decode,1))){this.needsDecode=!0;const e=(1<>3)*a,o=e.byteLength;let c,l;if(!r||n&&!(s===o))if(n){c=new Uint8Array(s);c.set(e);c.fill(255,o)}else c=new Uint8Array(e);else c=e;if(n)for(l=0;l>7&1;s[d+1]=u>>6&1;s[d+2]=u>>5&1;s[d+3]=u>>4&1;s[d+4]=u>>3&1;s[d+5]=u>>2&1;s[d+6]=u>>1&1;s[d+7]=1&u;d+=8}if(d>=1}}}}else{let a=0;u=0;for(d=0,h=i;d>r;n<0?n=0:n>l&&(n=l);s[d]=n;u&=(1<o[r+1]){t=255;break}}c[u]=t}}}if(c)for(u=0,f=3,d=t*n;u>3;if(!e){let e;"DeviceGray"===this.colorSpace.name&&1===l?e=r.ImageKind.GRAYSCALE_1BPP:"DeviceRGB"!==this.colorSpace.name||8!==l||this.needsDecode||(e=r.ImageKind.RGB_24BPP);if(e&&!this.smask&&!this.mask&&t===s&&a===o){n.kind=e;n.data=this.getImageBytes(o*h,{});if(this.needsDecode){(0,r.assert)(e===r.ImageKind.GRAYSCALE_1BPP,"PDFImage.createImageData: The image must be grayscale.");const t=n.data;for(let e=0,a=t.length;e>3,o=this.getImageBytes(n*s,{internal:!0}),c=this.getComponents(o);let l,h;if(1===i){h=a*n;if(this.needsDecode)for(l=0;l{Object.defineProperty(t,"__esModule",{value:!0});t.applyMaskImageData=function applyMaskImageData({src:e,srcPos:t=0,dest:a,destPos:n=0,width:i,height:s,inverseDecode:o=!1}){const c=r.FeatureTest.isLittleEndian?4278190080:255,[l,h]=o?[0,c]:[c,0],u=i>>3,d=7&i,f=e.length;a=new Uint32Array(a.buffer);for(let r=0;r{Object.defineProperty(t,"__esModule",{value:!0});t.BoundingBoxesCalculator=void 0;var r=a(2),n=a(25),i=a(5),s=function PartialEvaluatorClosure(){function BoundingBoxesCalculator(e){this.textStateManager=new n.StateManager(new n.TextState);this.graphicsStateManager=new n.StateManager(new o);this.clipping=!1;this.boundingBoxesStack=new l;this.boundingBoxes={};this.ignoreCalculations=e;this.operationArray=[];this.operationIndex=-1}BoundingBoxesCalculator.prototype={getTopPoints:function BoundingBoxesCalculator_getTopPoints(e,t,a,r,n){let i=Math.sqrt(Math.pow(a-e,2)+Math.pow(r-t,2));if(0===i)return[a+n,r+n,e+n,t+n];let s=[(a-e)/i,(r-t)/i],o=[-s[1],s[0]],c=[o[0]*n,o[1]*n];return[a+c[0],r+c[1],e+c[0],t+c[1]]},getTextBoundingBox:function BoundingBoxesCalculator_getTextBoundingBox(e){let t,a,n,i,s=0,o=0,c=this.graphicsStateManager.state.ctm,l=(this.textStateManager.state.font.descent||0)*this.textStateManager.state.fontSize,h=(this.textStateManager.state.font.ascent||1)*this.textStateManager.state.fontSize,u=this.textStateManager.state.textRise*this.textStateManager.state.fontSize;if(this.textStateManager.state.font.vertical){[t,a]=r.Util.applyTransform([-this.textStateManager.state.fontSize/2,u],this.textStateManager.state.textMatrix);n=[t-this.textStateManager.state.textMatrix[4],a-this.textStateManager.state.textMatrix[5]];i=r.Util.applyTransform([h-l,0],this.textStateManager.state.textMatrix)}else{[t,a]=r.Util.applyTransform([0,l+u],this.textStateManager.state.textMatrix);n=[t-this.textStateManager.state.textMatrix[4],a-this.textStateManager.state.textMatrix[5]];i=r.Util.applyTransform([0,h-l],this.textStateManager.state.textMatrix)}i[0]-=this.textStateManager.state.textMatrix[4];i[1]-=this.textStateManager.state.textMatrix[5];i=Math.sqrt(i[0]*i[0]+i[1]*i[1]);i*=this.textStateManager.state.textMatrix[0]*this.textStateManager.state.textMatrix[3]<0?-1:1;let d=[];for(let t=0;t[...e,...this.getTopPoints(...e,i)]));let w,S,x,k,[C,v]=r.Util.applyTransform([t,a],c),[F,O]=r.Util.applyTransform([f,g],c),[T,M]=r.Util.applyTransform([p,m],c),[E,D]=r.Util.applyTransform([b,y],c);d=d.map((e=>[...r.Util.applyTransform([e[0],e[1]],c),...r.Util.applyTransform([e[2],e[3]],c),...r.Util.applyTransform([e[4],e[5]],c),...r.Util.applyTransform([e[6],e[7]],c)]));let N=[];d.forEach((e=>{let t=[...e].filter(((e,t)=>t%2==0)),a=[...e].filter(((e,t)=>t%2!=0));w=Math.min(...t);S=Math.max(...t);x=Math.min(...a);k=Math.max(...a);N.push([w,x,S-w,k-x])}));this.operationArray[this.operationIndex]=N;w=Math.min(C,F,T,E);S=Math.max(C,F,T,E);x=Math.min(v,O,M,D);k=Math.max(v,O,M,D);this.boundingBoxesStack.save(w,x,S-w,k-x)},getClippingGraphicsBoundingBox:function BoundingBoxesCalculator_getClippingGraphicsBoundingBox(){let e=this.graphicsStateManager.state;return null===e.clip?{x:e.x,y:e.y,w:e.w,h:e.h}:e.xe.clip.x+e.clip.w&&e.x+e.w>e.clip.x+e.clip.w||e.ye.clip.y+e.clip.h&&e.y+e.h>e.clip.y+e.clip.h?null:{x:Math.max(e.x,e.clip.x),y:Math.max(e.y,e.clip.y),w:Math.min(e.x+e.w,e.clip.x+e.clip.w)-Math.max(e.x,e.clip.x),h:Math.min(e.y+e.h,e.clip.y+e.clip.h)-Math.max(e.y,e.clip.y)}},saveGraphicsBoundingBox:function saveGraphicsBoundingBox(){let e=this.getClippingGraphicsBoundingBox();if(null===e)return;let t=e.x,a=e.y,r=e.w,n=e.h;this.graphicsStateManager.state.x=null;this.graphicsStateManager.state.y=null;this.graphicsStateManager.state.w=null;this.graphicsStateManager.state.h=null;this.boundingBoxesStack.save(t,a,r,n)},getRectBoundingBox:function getRectBoundingBox(e,t,a,n){let i=this.graphicsStateManager.state,[s,o]=r.Util.applyTransform([e,t],i.ctm),[c,l]=r.Util.applyTransform([e+a,t],i.ctm),[h,u]=r.Util.applyTransform([e,t+n],i.ctm),[d,f]=r.Util.applyTransform([e+a,t+n],i.ctm);e=Math.min(s,c,h,d);t=Math.min(o,l,u,f);a=Math.max(s,c,h,d)-e;n=Math.max(o,l,u,f)-t;null===i.w?i.w=Math.abs(a):i.w=Math.max(i.x+i.w,e,e+a)-Math.min(i.x,e,e+a);null===i.h?i.h=Math.abs(n):i.h=Math.max(i.y+i.h,t,t+n)-Math.min(i.y,t,t+n);null===i.x?i.x=Math.min(e,e+a):i.x=Math.min(i.x,e,e+a);null===i.y?i.y=Math.min(t,t+n):i.y=Math.min(i.y,t,t+n)},getLineBoundingBox:function getLineBoundingBox(e,t){let a=this.graphicsStateManager.state;[e,t]=r.Util.applyTransform([e,t],a.ctm);null===a.w?a.w=Math.abs(e-a.move_x):a.w=Math.max(e,a.move_x,a.x+a.w)-Math.min(e,a.move_x,a.x);null===a.h?a.h=Math.abs(t-a.move_y):a.h=Math.max(t,a.move_y,a.y+a.h)-Math.min(t,a.move_y,a.y);null===a.x?a.x=Math.min(e,a.move_x):a.x=Math.min(e,a.move_x,a.x);null===a.y?a.y=Math.min(t,a.move_y):a.y=Math.min(t,a.move_y,a.y);a.move_x=e;a.move_y=t},getCurve:function getCurve(e,t,a,r){return function curve(n){return Math.pow(1-n,3)*e+3*n*Math.pow(1-n,2)*t+3*n*n*(1-n)*a+n*n*n*r}},getCurveRoots:function getCurveRoots(e,t,a,r){let n,i,s;n=Math.pow(6*e-12*t+6*a,2)-4*(3*t-3*e)*(-3*e+9*t-9*a+3*r);i=null;s=null;if(Math.abs(e+3*a-3*t-r)>Math.pow(.1,-10)){if(n>=0){i=(-6*e+12*t-6*a+Math.sqrt(n))/(2*(-3*e+9*t-9*a+3*r));s=(-6*e+12*t-6*a-Math.sqrt(n))/(2*(-3*e+9*t-9*a+3*r))}}else n>Math.pow(.1,-10)&&(i=(e-t)/(2*e-4*t+2*a));null!==i&&(i<0||i>1)&&(i=null);null!==s&&(s<0||s>1)&&(s=null);return[i,s]},getCurveBoundingBox:function getCurveBoundingBox(e,t,a,n,i,s,o,c,l){let h=this.graphicsStateManager.state;e!==r.OPS.curveTo2&&([n,i]=r.Util.applyTransform([n,i],h.ctm));[s,o]=r.Util.applyTransform([s,o],h.ctm);[c,l]=r.Util.applyTransform([c,l],h.ctm);let u=this.getCurve(t,n,s,c),d=this.getCurve(a,i,o,l),[f,g]=this.getCurveRoots(t,n,s,c),p=Math.min(t,c,null!==f?u(f):Number.MAX_VALUE,null!==g?u(g):Number.MAX_VALUE),m=Math.max(t,c,null!==f?u(f):Number.MIN_VALUE,null!==g?u(g):Number.MIN_VALUE);[f,g]=this.getCurveRoots(a,i,o,l);let b=Math.min(a,l,null!==f?d(f):Number.MAX_VALUE,null!==g?d(g):Number.MAX_VALUE),y=p,w=b,S=Math.max(a,l,null!==f?d(f):Number.MIN_VALUE,null!==g?d(g):Number.MIN_VALUE)-b,x=m-p;null===h.w?h.w=Math.abs(x):h.w=Math.max(h.x+h.w,y,y+x)-Math.min(h.x,y,y+x);null===h.h?h.h=Math.abs(S):h.h=Math.max(h.y+h.h,w,w+S)-Math.min(h.y,w,w+S);null===h.x?h.x=Math.min(y,y+x):h.x=Math.min(h.x,y,y+x);null===h.y?h.y=Math.min(w,w+S):h.y=Math.min(h.y,w,w+S);h.move_x=y;h.move_y=w},getClip:function getClip(){if(this.clipping){let e=this.graphicsStateManager.state;null===e.clip?e.clip={x:e.x,y:e.y,w:e.w,h:e.h}:e.clip={x:Math.max(e.x,e.clip.x),y:Math.max(e.y,e.clip.y),w:Math.min(e.x+e.w,e.clip.x+e.clip.w)-Math.max(e.x,e.clip.x),h:Math.min(e.y+e.h,e.clip.y+e.clip.h)-Math.max(e.y,e.clip.y)};this.clipping=!1}},getNoMCIDBoundingBoxes:function getNoMCIDBoundingBoxes(){return this.boundingBoxesStack.get()},getImageBoundingBox:function getImageBoundingBox(){let e=this.graphicsStateManager.state,[t,a]=r.Util.applyTransform([0,0],e.ctm),[n,i]=r.Util.applyTransform([0,1],e.ctm),[s,o]=r.Util.applyTransform([1,1],e.ctm),[c,l]=r.Util.applyTransform([1,0],e.ctm);e.x=Math.min(t,n,s,c);e.y=Math.min(a,i,o,l);e.w=Math.max(t,n,s,c)-e.x;e.h=Math.max(a,i,o,l)-e.y},parseOperator:function BoundingBoxesCalculator_parseOperator(e,t){if(!this.ignoreCalculations){e!==r.OPS.markPoint&&e!==r.OPS.markPointProps&&e!==r.OPS.beginMarkedContent&&e!==r.OPS.beginMarkedContentProps&&this.boundingBoxesStack.inc();switch(0|e){case r.OPS.restore:this.graphicsStateManager.restore();this.textStateManager.restore();break;case r.OPS.save:this.graphicsStateManager.save();this.textStateManager.save();break;case r.OPS.fill:case r.OPS.eoFill:case r.OPS.eoFillStroke:case r.OPS.fillStroke:case r.OPS.stroke:case r.OPS.closeEOFillStroke:case r.OPS.closeFillStroke:case r.OPS.closeStroke:this.getClip();this.saveGraphicsBoundingBox();break;case r.OPS.endPath:this.getClip();this.graphicsStateManager.state.clean();break;case r.OPS.transform:this.graphicsStateManager.state.ctm=r.Util.transform(this.graphicsStateManager.state.ctm,t);break;case r.OPS.clip:case r.OPS.eoClip:this.clipping=!0;break;case r.OPS.setFont:this.textStateManager.state.fontSize=t[0];this.textStateManager.state.fontMatrix=t[1].font.fontMatrix;this.textStateManager.state.font=t[1].font;break;case r.OPS.setTextMatrix:this.textStateManager.state.setTextMatrix(t[0],t[1],t[2],t[3],t[4],t[5]);this.textStateManager.state.setTextLineMatrix(t[0],t[1],t[2],t[3],t[4],t[5]);break;case r.OPS.nextLine:this.textStateManager.state.carriageReturn();break;case r.OPS.setCharSpacing:this.textStateManager.state.charSpacing=t[0];break;case r.OPS.setWordSpacing:this.textStateManager.state.wordSpacing=t[0];break;case r.OPS.setHScale:this.textStateManager.state.textHScale=t[0]/100;break;case r.OPS.setLeading:this.textStateManager.state.leading=t[0];break;case r.OPS.setTextRise:this.textStateManager.state.textRise=t[0];break;case r.OPS.setLeadingMoveText:this.textStateManager.state.leading=-t[1];this.textStateManager.state.translateTextLineMatrix(...t);this.textStateManager.state.textMatrix=this.textStateManager.state.textLineMatrix.slice();break;case r.OPS.moveText:this.textStateManager.state.translateTextLineMatrix(t[0],t[1]);this.textStateManager.state.textMatrix=this.textStateManager.state.textLineMatrix.slice();break;case r.OPS.beginText:this.textStateManager.state.textMatrix=r.IDENTITY_MATRIX.slice();this.textStateManager.state.textLineMatrix=r.IDENTITY_MATRIX.slice();break;case r.OPS.moveTo:let e=this.graphicsStateManager.state.ctm.slice();[this.graphicsStateManager.state.move_x,this.graphicsStateManager.state.move_y]=r.Util.applyTransform(t,e);break;case r.OPS.lineTo:this.getLineBoundingBox(t[0],t[1]);break;case r.OPS.curveTo:this.getCurveBoundingBox(r.OPS.curveTo,this.graphicsStateManager.state.move_x,this.graphicsStateManager.state.move_y,t[0],t[1],t[2],t[3],t[4],t[5]);break;case r.OPS.curveTo2:this.getCurveBoundingBox(r.OPS.curveTo2,this.graphicsStateManager.state.move_x,this.graphicsStateManager.state.move_y,this.graphicsStateManager.state.move_x,this.graphicsStateManager.state.move_y,t[0],t[1],t[2],t[3]);break;case r.OPS.curveTo3:this.getCurveBoundingBox(r.OPS.curveTo3,this.graphicsStateManager.state.move_x,this.graphicsStateManager.state.move_y,t[0],t[1],t[2],t[3],t[2],t[3]);break;case r.OPS.rectangle:this.getRectBoundingBox(t[0],t[1],t[2],t[3]);break;case r.OPS.markPoint:case r.OPS.markPointProps:case r.OPS.beginMarkedContent:this.boundingBoxesStack.begin();break;case r.OPS.beginMarkedContentProps:if((0,i.isDict)(t[1])&&t[1].has("MCID")){this.boundingBoxesStack.begin(t[1].get("MCID"));this.graphicsStateManager.state.x=null;this.graphicsStateManager.state.y=null;this.graphicsStateManager.state.w=null;this.graphicsStateManager.state.h=null}else this.boundingBoxesStack.begin();break;case r.OPS.endMarkedContent:let a=this.boundingBoxesStack.end();null!==a&&(this.boundingBoxes[a.mcid]={x:a.x,y:a.y,width:a.w,height:a.h});break;case r.OPS.paintXObject:if("Image"===t[0]){this.getImageBoundingBox();this.saveGraphicsBoundingBox()}break;case r.OPS.showText:this.getTextBoundingBox(t[0])}}},setFont:function BoundingBoxesCalculator_setFont(e){this.textStateManager.state.fontMatrix=e.font.fontMatrix;this.textStateManager.state.font=e.font},incrementOperation:function BoundingBoxesCalculator_incrementOperation(e){this.ignoreCalculations||this.operationIndex++}};return BoundingBoxesCalculator}();t.BoundingBoxesCalculator=s;var o=function GraphicsState(){function GraphicsState(){this.x=null;this.y=null;this.w=null;this.h=null;this.move_x=null;this.move_y=null;this.ctm=r.IDENTITY_MATRIX.slice();this.clip=null}GraphicsState.prototype={clone:function GraphicsState_clone(){var e=Object.create(this);e.ctm=this.ctm.slice();return e},clean:function GraphicsState_clear(){this.x=null;this.y=null;this.w=null;this.h=null;this.move_x=0;this.move_y=0}};return GraphicsState}(),c=function BoundingBoxStack(){function BoundingBoxStack(){this.stack=[]}BoundingBoxStack.prototype={begin:function BoundingBoxStack_begin(e){this.stack.push({x:null,y:null,w:null,h:null,mcid:Number.isInteger(e)?e:null})},save:function BoundingBoxStack_save(e,t,a,r){let n=this.stack[this.stack.length-1];if(n){null===n.w?n.w=a:n.w=Math.max(n.x+n.w,e+a)-Math.min(n.x,e);null===n.x?n.x=e:n.x=Math.min(n.x,e);null===n.h?n.h=r:n.h=Math.max(n.y+n.h,t+r)-Math.min(n.y,t);null===n.y?n.y=t:n.y=Math.min(n.y,t)}},end:function BoundingBoxStack_end(){let e=this.stack.pop();if(!e)return null;if(null!==e.mcid)return e;this.save(e.x,e.y,e.w,e.h);return null}};return BoundingBoxStack}(),l=function NoMCIDBoundingBoxStack(){function NoMCIDBoundingBoxStack(){this.boundingBoxesStack=new c;this.contentCounter=null;this.content={};this.pointer={}}NoMCIDBoundingBoxStack.prototype={begin:function NoMCIDBoundingBoxStack_begin(e){if(this.contentCounter&&!1===this.contentCounter.inMarkedContent){const e={parent:this.pointer,contentItems:[]};this.pointer.contentItems.push(e);this.pointer=e}else this.inc(!0);this.boundingBoxesStack.begin(e)},save:function NoMCIDBoundingBoxStack_save(e,t,a,r){if(this.pointer.contentItems){this.pointer.contentItems.push({contentItem:{x:e,y:t,w:a,h:r}});this.pointer.final=!0}else console.log("NoMCIDBoundingBoxStackError:","The pointer was in an invalid state, saved data will be lost");this.boundingBoxesStack.save(e,t,a,r)},end:function NoMCIDBoundingBoxStack_end(){const e=this.pointer;this.pointer=e.parent||this.content;delete e.parent;if(this.pointer===this.content){this.contentCounter.inMarkedContent=null;this.pointer={}}return this.boundingBoxesStack.end()},inc:function NoMCIDBoundingBoxStack_inc(e=!1){if(this.contentCounter){if(!1!==this.contentCounter.inMarkedContent&&e||!!this.contentCounter.inMarkedContent===e&&!Object.keys(this.pointer).length){delete this.content[this.contentCounter.index].parent;this.contentCounter={index:this.contentCounter.index+1,inMarkedContent:!e};this.content[this.contentCounter.index]={parent:this.content,contentItems:[]};this.pointer=this.content[this.contentCounter.index]}}else{this.contentCounter={index:0,inMarkedContent:!e};this.content[this.contentCounter.index]={parent:this.content,contentItems:[]};this.pointer=this.content[this.contentCounter.index]}},get:function NoMCIDBoundingBoxStack_get(){try{if(Object.keys(this.content).length&&this.contentCounter){this.content[this.contentCounter.index].parent&&delete this.content[this.contentCounter.index].parent;const e=JSON.parse(JSON.stringify(this.content));this.content[this.contentCounter.index].parent=this.content;return e}return{}}catch(e){console.log("NoMCIDBoundingBoxStackError:",e.message||e);return{}}}};return NoMCIDBoundingBoxStack}()},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Catalog=void 0;var r=a(8),n=a(2),i=a(5),s=a(67),o=a(9),c=a(68),l=a(24),h=a(69),u=a(59),d=a(70),f=a(72);function fetchDestination(e){e instanceof i.Dict&&(e=e.get("D"));return Array.isArray(e)?e:null}class Catalog{constructor(e,t){this.pdfManager=e;this.xref=t;this._catDict=t.getCatalogObj();if(!(this._catDict instanceof i.Dict))throw new n.FormatError("Catalog object is not a dictionary.");this.toplevelPagesDict;this._actualNumPages=null;this.fontCache=new i.RefSetCache;this.builtInCMapCache=new Map;this.standardFontDataCache=new Map;this.globalImageCache=new u.GlobalImageCache;this.pageKidsCountCache=new i.RefSetCache;this.pageIndexCache=new i.RefSetCache;this.nonBlendModesSet=new i.RefSet}get version(){const e=this._catDict.get("Version");return(0,n.shadow)(this,"version",e instanceof i.Name?e.name:null)}get lang(){const e=this._catDict.get("Lang");return(0,n.shadow)(this,"lang","string"==typeof e?(0,n.stringToPDFString)(e):null)}get needsRendering(){const e=this._catDict.get("NeedsRendering");return(0,n.shadow)(this,"needsRendering","boolean"==typeof e&&e)}get collection(){let e=null;try{const t=this._catDict.get("Collection");t instanceof i.Dict&&t.size>0&&(e=t)}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.info)("Cannot fetch Collection entry; assuming no collection is present.")}return(0,n.shadow)(this,"collection",e)}get acroForm(){let e=null;try{const t=this._catDict.get("AcroForm");t instanceof i.Dict&&t.size>0&&(e=t)}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.info)("Cannot fetch AcroForm entry; assuming no forms are present.")}return(0,n.shadow)(this,"acroForm",e)}get acroFormRef(){const e=this._catDict.getRaw("AcroForm");return(0,n.shadow)(this,"acroFormRef",e instanceof i.Ref?e:null)}get metadata(){const e=this._catDict.getRaw("Metadata");if(!(e instanceof i.Ref))return(0,n.shadow)(this,"metadata",null);let t=null;try{const a=!(this.xref.encrypt&&this.xref.encrypt.encryptMetadata),r=this.xref.fetch(e,a);if(r instanceof o.BaseStream&&r.dict instanceof i.Dict){const e=r.dict.get("Type"),a=r.dict.get("Subtype");if((0,i.isName)(e,"Metadata")&&(0,i.isName)(a,"XML")){const e=(0,n.stringToUTF8String)(r.getString());e&&(t=new d.MetadataParser(e).serializable)}}}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.info)(`Skipping invalid Metadata: "${e}".`)}return(0,n.shadow)(this,"metadata",t)}get markInfo(){let e=null;try{e=this._readMarkInfo()}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.warn)("Unable to read mark info.")}return(0,n.shadow)(this,"markInfo",e)}_readMarkInfo(){const e=this._catDict.get("MarkInfo");if(!(e instanceof i.Dict))return null;const t={Marked:!1,UserProperties:!1,Suspects:!1};for(const a in t){const r=e.get(a);"boolean"==typeof r&&(t[a]=r)}return t}get structTreeRoot(){let e=null;try{e=this._readStructTreeRoot()}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.warn)("Unable read to structTreeRoot info.")}return(0,n.shadow)(this,"structTreeRoot",e)}_readStructTreeRoot(){const e=this._catDict.get("StructTreeRoot");if(!(e instanceof i.Dict))return null;const t=new f.StructTreeRoot(e);t.init();return t}get toplevelPagesDict(){const e=this._catDict.get("Pages");if(!(e instanceof i.Dict))throw new n.FormatError("Invalid top-level pages dictionary.");return(0,n.shadow)(this,"toplevelPagesDict",e)}get documentOutline(){let e=null;try{e=this._readDocumentOutline()}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.warn)("Unable to read document outline.")}return(0,n.shadow)(this,"documentOutline",e)}_readDocumentOutline(){let e=this._catDict.get("Outlines");if(!(e instanceof i.Dict))return null;e=e.getRaw("First");if(!(e instanceof i.Ref))return null;const t={items:[]},a=[{obj:e,parent:t}],r=new i.RefSet;r.put(e);const s=this.xref,o=new Uint8ClampedArray(3);for(;a.length>0;){const t=a.shift(),c=s.fetchIfRef(t.obj);if(null===c)continue;if(!c.has("Title"))throw new n.FormatError("Invalid outline item encountered.");const h={url:null,dest:null};Catalog.parseDestDictionary({destDict:c,resultObj:h,docBaseUrl:this.pdfManager.docBaseUrl});const u=c.get("Title"),d=c.get("F")||0,f=c.getArray("C"),g=c.get("Count");let p=o;!Array.isArray(f)||3!==f.length||0===f[0]&&0===f[1]&&0===f[2]||(p=l.ColorSpace.singletons.rgb.getRgb(f,0));const m={dest:h.dest,url:h.url,unsafeUrl:h.unsafeUrl,newWindow:h.newWindow,title:(0,n.stringToPDFString)(u),color:p,count:Number.isInteger(g)?g:void 0,bold:!!(2&d),italic:!!(1&d),items:[]};t.parent.items.push(m);e=c.getRaw("First");if(e instanceof i.Ref&&!r.has(e)){a.push({obj:e,parent:m});r.put(e)}e=c.getRaw("Next");if(e instanceof i.Ref&&!r.has(e)){a.push({obj:e,parent:t.parent});r.put(e)}}return t.items.length>0?t.items:null}get permissions(){let e=null;try{e=this._readPermissions()}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.warn)("Unable to read permissions.")}return(0,n.shadow)(this,"permissions",e)}_readPermissions(){const e=this.xref.trailer.get("Encrypt");if(!(e instanceof i.Dict))return null;let t=e.get("P");if("number"!=typeof t)return null;t+=2**32;const a=[];for(const e in n.PermissionFlag){const r=n.PermissionFlag[e];t&r&&a.push(r)}return a}get optionalContentConfig(){let e=null;try{const t=this._catDict.get("OCProperties");if(!t)return(0,n.shadow)(this,"optionalContentConfig",null);const a=t.get("D");if(!a)return(0,n.shadow)(this,"optionalContentConfig",null);const r=t.get("OCGs");if(!Array.isArray(r))return(0,n.shadow)(this,"optionalContentConfig",null);const s=[],o=[];for(const e of r){if(!(e instanceof i.Ref))continue;o.push(e);const t=this.xref.fetchIfRef(e);s.push({id:e.toString(),name:"string"==typeof t.get("Name")?(0,n.stringToPDFString)(t.get("Name")):null,intent:"string"==typeof t.get("Intent")?(0,n.stringToPDFString)(t.get("Intent")):null})}e=this._readOptionalContentConfig(a,o);e.groups=s}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.warn)(`Unable to read optional content config: ${e}`)}return(0,n.shadow)(this,"optionalContentConfig",e)}_readOptionalContentConfig(e,t){function parseOnOff(e){const a=[];if(Array.isArray(e))for(const r of e)r instanceof i.Ref&&t.includes(r)&&a.push(r.toString());return a}function parseOrder(e,a=0){if(!Array.isArray(e))return null;const n=[];for(const s of e){if(s instanceof i.Ref&&t.includes(s)){r.put(s);n.push(s.toString());continue}const e=parseNestedOrder(s,a);e&&n.push(e)}if(a>0)return n;const s=[];for(const e of t)r.has(e)||s.push(e.toString());s.length&&n.push({name:null,order:s});return n}function parseNestedOrder(e,t){if(++t>s){(0,n.warn)("parseNestedOrder - reached MAX_NESTED_LEVELS.");return null}const r=a.fetchIfRef(e);if(!Array.isArray(r))return null;const i=a.fetchIfRef(r[0]);if("string"!=typeof i)return null;const o=parseOrder(r.slice(1),t);return o&&o.length?{name:(0,n.stringToPDFString)(i),order:o}:null}const a=this.xref,r=new i.RefSet,s=10;return{name:"string"==typeof e.get("Name")?(0,n.stringToPDFString)(e.get("Name")):null,creator:"string"==typeof e.get("Creator")?(0,n.stringToPDFString)(e.get("Creator")):null,baseState:e.get("BaseState")instanceof i.Name?e.get("BaseState").name:null,on:parseOnOff(e.get("ON")),off:parseOnOff(e.get("OFF")),order:parseOrder(e.get("Order")),groups:null}}setActualNumPages(e=null){this._actualNumPages=e}get hasActualNumPages(){return null!==this._actualNumPages}get _pagesCount(){const e=this.toplevelPagesDict.get("Count");if(!Number.isInteger(e))throw new n.FormatError("Page count in top-level pages dictionary is not an integer.");return(0,n.shadow)(this,"_pagesCount",e)}get numPages(){return this.hasActualNumPages?this._actualNumPages:this._pagesCount}get destinations(){const e=this._readDests(),t=Object.create(null);if(e instanceof s.NameTree)for(const[a,r]of e.getAll()){const e=fetchDestination(r);e&&(t[(0,n.stringToPDFString)(a)]=e)}else e instanceof i.Dict&&e.forEach((function(e,a){const r=fetchDestination(a);r&&(t[e]=r)}));return(0,n.shadow)(this,"destinations",t)}getDestination(e){const t=this._readDests();if(t instanceof s.NameTree){const a=fetchDestination(t.get(e));if(a)return a;const r=this.destinations[e];if(r){(0,n.warn)(`Found "${e}" at an incorrect position in the NameTree.`);return r}}else if(t instanceof i.Dict){const a=fetchDestination(t.get(e));if(a)return a}return null}_readDests(){const e=this._catDict.get("Names");return e&&e.has("Dests")?new s.NameTree(e.getRaw("Dests"),this.xref):this._catDict.has("Dests")?this._catDict.get("Dests"):void 0}get pageLabels(){let e=null;try{e=this._readPageLabels()}catch(e){if(e instanceof r.MissingDataException)throw e;(0,n.warn)("Unable to read page labels.")}return(0,n.shadow)(this,"pageLabels",e)}_readPageLabels(){const e=this._catDict.getRaw("PageLabels");if(!e)return null;const t=new Array(this.numPages);let a=null,o="";const c=new s.NumberTree(e,this.xref).getAll();let l="",h=1;for(let e=0,s=this.numPages;e=1))throw new n.FormatError("Invalid start in PageLabel dictionary.");h=e}else h=1}switch(a){case"D":l=h;break;case"R":case"r":l=(0,r.toRomanNumerals)(h,"r"===a);break;case"A":case"a":const e=26,t=65,i=97,s="a"===a?i:t,o=h-1;l=String.fromCharCode(s+o%e).repeat(Math.floor(o/e)+1);break;default:if(a)throw new n.FormatError(`Invalid style "${a}" in PageLabel dictionary.`);l=""}t[e]=o+l;h++}return t}get pageLayout(){const e=this._catDict.get("PageLayout");let t="";if(e instanceof i.Name)switch(e.name){case"SinglePage":case"OneColumn":case"TwoColumnLeft":case"TwoColumnRight":case"TwoPageLeft":case"TwoPageRight":t=e.name}return(0,n.shadow)(this,"pageLayout",t)}get pageMode(){const e=this._catDict.get("PageMode");let t="UseNone";if(e instanceof i.Name)switch(e.name){case"UseNone":case"UseOutlines":case"UseThumbs":case"FullScreen":case"UseOC":case"UseAttachments":t=e.name}return(0,n.shadow)(this,"pageMode",t)}get viewerPreferences(){const e=this._catDict.get("ViewerPreferences");if(!(e instanceof i.Dict))return(0,n.shadow)(this,"viewerPreferences",null);let t=null;for(const a of e.getKeys()){const r=e.get(a);let s;switch(a){case"HideToolbar":case"HideMenubar":case"HideWindowUI":case"FitWindow":case"CenterWindow":case"DisplayDocTitle":case"PickTrayByPDFSize":"boolean"==typeof r&&(s=r);break;case"NonFullScreenPageMode":if(r instanceof i.Name)switch(r.name){case"UseNone":case"UseOutlines":case"UseThumbs":case"UseOC":s=r.name;break;default:s="UseNone"}break;case"Direction":if(r instanceof i.Name)switch(r.name){case"L2R":case"R2L":s=r.name;break;default:s="L2R"}break;case"ViewArea":case"ViewClip":case"PrintArea":case"PrintClip":if(r instanceof i.Name)switch(r.name){case"MediaBox":case"CropBox":case"BleedBox":case"TrimBox":case"ArtBox":s=r.name;break;default:s="CropBox"}break;case"PrintScaling":if(r instanceof i.Name)switch(r.name){case"None":case"AppDefault":s=r.name;break;default:s="AppDefault"}break;case"Duplex":if(r instanceof i.Name)switch(r.name){case"Simplex":case"DuplexFlipShortEdge":case"DuplexFlipLongEdge":s=r.name;break;default:s="None"}break;case"PrintPageRange":if(Array.isArray(r)&&r.length%2==0){r.every(((e,t,a)=>Number.isInteger(e)&&e>0&&(0===t||e>=a[t-1])&&e<=this.numPages))&&(s=r)}break;case"NumCopies":Number.isInteger(r)&&r>0&&(s=r);break;default:(0,n.warn)(`Ignoring non-standard key in ViewerPreferences: ${a}.`);continue}if(void 0!==s){t||(t=Object.create(null));t[a]=s}else(0,n.warn)(`Bad value, for key "${a}", in ViewerPreferences: ${r}.`)}return(0,n.shadow)(this,"viewerPreferences",t)}get openAction(){const e=this._catDict.get("OpenAction"),t=Object.create(null);if(e instanceof i.Dict){const a=new i.Dict(this.xref);a.set("A",e);const r={url:null,dest:null,action:null};Catalog.parseDestDictionary({destDict:a,resultObj:r});Array.isArray(r.dest)?t.dest=r.dest:r.action&&(t.action=r.action)}else Array.isArray(e)&&(t.dest=e);return(0,n.shadow)(this,"openAction",(0,n.objectSize)(t)>0?t:null)}get attachments(){const e=this._catDict.get("Names");let t=null;if(e instanceof i.Dict&&e.has("EmbeddedFiles")){const a=new s.NameTree(e.getRaw("EmbeddedFiles"),this.xref);for(const[e,r]of a.getAll()){const a=new h.FileSpec(r,this.xref);t||(t=Object.create(null));t[(0,n.stringToPDFString)(e)]=a.serializable}}return(0,n.shadow)(this,"attachments",t)}get xfaImages(){const e=this._catDict.get("Names");let t=null;if(e instanceof i.Dict&&e.has("XFAImages")){const a=new s.NameTree(e.getRaw("XFAImages"),this.xref);for(const[e,r]of a.getAll()){t||(t=new i.Dict(this.xref));t.set((0,n.stringToPDFString)(e),r)}}return(0,n.shadow)(this,"xfaImages",t)}_collectJavaScript(){const e=this._catDict.get("Names");let t=null;function appendIfJavaScriptDict(e,a){if(!(a instanceof i.Dict))return;if(!(0,i.isName)(a.get("S"),"JavaScript"))return;let r=a.get("JS");if(r instanceof o.BaseStream)r=r.getString();else if("string"!=typeof r)return;null===t&&(t=new Map);t.set(e,(0,n.stringToPDFString)(r))}if(e instanceof i.Dict&&e.has("JavaScript")){const t=new s.NameTree(e.getRaw("JavaScript"),this.xref);for(const[e,a]of t.getAll())appendIfJavaScriptDict((0,n.stringToPDFString)(e),a)}const a=this._catDict.get("OpenAction");a&&appendIfJavaScriptDict("OpenAction",a);return t}get javaScript(){const e=this._collectJavaScript();return(0,n.shadow)(this,"javaScript",e?[...e.values()]:null)}get jsActions(){const e=this._collectJavaScript();let t=(0,r.collectActions)(this.xref,this._catDict,n.DocumentActionEventType);if(e){t||(t=Object.create(null));for(const[a,r]of e)a in t?t[a].push(r):t[a]=[r]}return(0,n.shadow)(this,"jsActions",t)}async fontFallback(e,t){const a=await Promise.all(this.fontCache);for(const r of a)if(r.loadedName===e){r.fallback(t);return}}async cleanup(e=!1){(0,c.clearGlobalCaches)();this.globalImageCache.clear(e);this.pageKidsCountCache.clear();this.pageIndexCache.clear();this.nonBlendModesSet.clear();const t=await Promise.all(this.fontCache);for(const{dict:e}of t)delete e.cacheKey;this.fontCache.clear();this.builtInCMapCache.clear();this.standardFontDataCache.clear()}async getPageDict(e){const t=[this.toplevelPagesDict],a=new i.RefSet,r=this._catDict.getRaw("Pages");r instanceof i.Ref&&a.put(r);const s=this.xref,o=this.pageKidsCountCache,c=this.pageIndexCache;let l=0;for(;t.length;){const r=t.pop();if(r instanceof i.Ref){const h=o.get(r);if(h>=0&&l+h<=e){l+=h;continue}if(a.has(r))throw new n.FormatError("Pages tree contains circular reference.");a.put(r);const u=await s.fetchAsync(r);if(u instanceof i.Dict){let t=u.getRaw("Type");t instanceof i.Ref&&(t=await s.fetchAsync(t));if((0,i.isName)(t,"Page")||!u.has("Kids")){o.has(r)||o.put(r,1);c.has(r)||c.put(r,l);if(l===e)return[u,r];l++;continue}}t.push(u);continue}if(!(r instanceof i.Dict))throw new n.FormatError("Page dictionary kid reference points to wrong type of object.");const{objId:h}=r;let u=r.getRaw("Count");u instanceof i.Ref&&(u=await s.fetchAsync(u));if(Number.isInteger(u)&&u>=0){h&&!o.has(h)&&o.put(h,u);if(l+u<=e){l+=u;continue}}let d=r.getRaw("Kids");d instanceof i.Ref&&(d=await s.fetchAsync(d));if(!Array.isArray(d)){let t=r.getRaw("Type");t instanceof i.Ref&&(t=await s.fetchAsync(t));if((0,i.isName)(t,"Page")||!r.has("Kids")){if(l===e)return[r,null];l++;continue}throw new n.FormatError("Page dictionary kids object is not an array.")}for(let e=d.length-1;e>=0;e--)t.push(d[e])}throw new Error(`Page index ${e} not found.`)}async getAllPageDicts(e=!1){const t=[{currentNode:this.toplevelPagesDict,posInKids:0}],a=new i.RefSet,s=this._catDict.getRaw("Pages");s instanceof i.Ref&&a.put(s);const o=new Map,c=this.xref,l=this.pageIndexCache;let h=0;function addPageDict(e,t){t&&!l.has(t)&&l.put(t,h);o.set(h++,[e,t])}function addPageError(t){if(t instanceof r.XRefEntryException&&!e)throw t;o.set(h++,[t,null])}for(;t.length>0;){const e=t[t.length-1],{currentNode:r,posInKids:s}=e;let o=r.getRaw("Kids");if(o instanceof i.Ref)try{o=await c.fetchAsync(o)}catch(e){addPageError(e);break}if(!Array.isArray(o)){addPageError(new n.FormatError("Page dictionary kids object is not an array."));break}if(s>=o.length){t.pop();continue}const l=o[s];let h;if(l instanceof i.Ref){if(a.has(l)){addPageError(new n.FormatError("Pages tree contains circular reference."));break}a.put(l);try{h=await c.fetchAsync(l)}catch(e){addPageError(e);break}}else h=l;if(!(h instanceof i.Dict)){addPageError(new n.FormatError("Page dictionary kid reference points to wrong type of object."));break}let u=h.getRaw("Type");if(u instanceof i.Ref)try{u=await c.fetchAsync(u)}catch(e){addPageError(e);break}(0,i.isName)(u,"Page")||!h.has("Kids")?addPageDict(h,l instanceof i.Ref?l:null):t.push({currentNode:h,posInKids:0});e.posInKids++}return o}getPageIndex(e){const t=this.pageIndexCache.get(e);if(void 0!==t)return Promise.resolve(t);const a=this.xref;let r=0;const next=t=>function pagesBeforeRef(t){let r,s=0;return a.fetchAsync(t).then((function(a){if((0,i.isRefsEqual)(t,e)&&!(0,i.isDict)(a,"Page")&&!(a instanceof i.Dict&&!a.has("Type")&&a.has("Contents")))throw new n.FormatError("The reference does not point to a /Page dictionary.");if(!a)return null;if(!(a instanceof i.Dict))throw new n.FormatError("Node must be a dictionary.");r=a.getRaw("Parent");return a.getAsync("Parent")})).then((function(e){if(!e)return null;if(!(e instanceof i.Dict))throw new n.FormatError("Parent must be a dictionary.");return e.getAsync("Kids")})).then((function(e){if(!e)return null;const o=[];let c=!1;for(let r=0,l=e.length;r{if(!t){this.pageIndexCache.put(e,r);return r}const[a,n]=t;r+=a;return next(n)}));return next(e)}get baseUrl(){const e=this._catDict.get("URI");if(e instanceof i.Dict){const t=e.get("Base");if("string"==typeof t){const e=(0,n.createValidAbsoluteUrl)(t,null,{tryConvertEncoding:!0});if(e)return(0,n.shadow)(this,"baseUrl",e.href)}}return(0,n.shadow)(this,"baseUrl",null)}static parseDestDictionary(e){const t=e.destDict;if(!(t instanceof i.Dict)){(0,n.warn)("parseDestDictionary: `destDict` must be a dictionary.");return}const a=e.resultObj;if("object"!=typeof a){(0,n.warn)("parseDestDictionary: `resultObj` must be an object.");return}const s=e.docBaseUrl||null;let c,l,h=t.get("A");if(!(h instanceof i.Dict))if(t.has("Dest"))h=t.get("Dest");else{h=t.get("AA");h instanceof i.Dict&&(h.has("D")?h=h.get("D"):h.has("U")&&(h=h.get("U")))}if(h instanceof i.Dict){const e=h.get("S");if(!(e instanceof i.Name)){(0,n.warn)("parseDestDictionary: Invalid type in Action dictionary.");return}const t=e.name;switch(t){case"ResetForm":const e=h.get("Flags"),s=0==(1&("number"==typeof e?e:0)),u=[],d=[];for(const e of h.get("Fields")||[])e instanceof i.Ref?d.push(e.toString()):"string"==typeof e&&u.push((0,n.stringToPDFString)(e));a.resetForm={fields:u,refs:d,include:s};break;case"URI":c=h.get("URI");c instanceof i.Name&&(c="/"+c.name);break;case"GoTo":l=h.get("D");break;case"Launch":case"GoToR":const f=h.get("F");f instanceof i.Dict?c=f.get("F")||null:"string"==typeof f&&(c=f);let g=h.get("D");if(g){g instanceof i.Name&&(g=g.name);if("string"==typeof c){const e=c.split("#")[0];"string"==typeof g?c=e+"#"+g:Array.isArray(g)&&(c=e+"#"+JSON.stringify(g))}}const p=h.get("NewWindow");"boolean"==typeof p&&(a.newWindow=p);break;case"Named":const m=h.get("N");m instanceof i.Name&&(a.action=m.name);break;case"JavaScript":const b=h.get("JS");let y;b instanceof o.BaseStream?y=b.getString():"string"==typeof b&&(y=b);const w=y&&(0,r.recoverJsURL)((0,n.stringToPDFString)(y));if(w){c=w.url;a.newWindow=w.newWindow;break}default:if("JavaScript"===t||"SubmitForm"===t)break;(0,n.warn)(`parseDestDictionary - unsupported action: "${t}".`)}}else t.has("Dest")&&(l=t.get("Dest"));if("string"==typeof c){const e=(0,n.createValidAbsoluteUrl)(c,s,{addDefaultProtocol:!0,tryConvertEncoding:!0});e&&(a.url=e.href);a.unsafeUrl=c}if(l){l instanceof i.Name&&(l=l.name);"string"==typeof l?a.dest=(0,n.stringToPDFString)(l):Array.isArray(l)&&(a.dest=l)}}}t.Catalog=class ExtendedCatalog extends Catalog{constructor(e,t){super(e,t);this.pages=this.getPages(this.toplevelPagesDict.get("Kids"))}_convertStructToObject(e){if(Array.isArray(e))return e.map((e=>this._convertStructToObject(e)));if((0,i.isDict)(e)){let t={};e.getKeys().forEach((a=>{t[a]=this._convertStructToObject(e.get(a))}));return t}return(0,i.isName)(e)?e.name:e}get structTreeRoot(){const e=this._catDict.get("StructTreeRoot");return(0,i.isDict)(e)?(0,n.shadow)(this,"structTreeRoot",e):null}getTreeElement(e,t,a){if((0,i.isDict)(e)&&e.has("Pg")){let a=e.getRaw("Pg"),r=this.pages.findIndex((e=>e.num===a.num&&e.gen===a.gen));r=-1!==r?r:null;r!==t&&(t=r)}if((0,i.isDict)(e)&&e.has("K"))return{name:e.has("S")?(0,n.stringToUTF8String)(e.get("S").name):null,children:this.getTreeElement(e.get("K"),t,e.getRaw("K")),ref:a};if((0,i.isDict)(e)&&e.has("Obj")){let a=e.get("Obj"),r=null;a.has("Type")&&(r=a.get("Type").name);a.has("Subtype")&&(r=a.get("Subtype").name);switch(r){case"Link":case"Annot":let e=a.get("Rect");return{rect:[e[0],e[1],e[2],e[3]],pageIndex:t}}}return Array.isArray(e)?e.map((e=>Number.isInteger(e)?{mcid:e,pageIndex:t}:e.hasOwnProperty("num")&&e.hasOwnProperty("gen")||"OBJR"===e.get("Type")?e.hasOwnProperty("num")&&e.hasOwnProperty("gen")?this.getTreeElement(this.xref.fetch(e),t,e):void 0:this.getTreeElement(e,t))):Number.isInteger(e)?{mcid:e,pageIndex:t}:(0,i.isDict)(e)&&e.has("Type")&&"MCR"===e.get("Type").name?{mcid:e.get("MCID"),pageIndex:t}:void 0}getPages(e){let t=[];e.map((e=>{if(e instanceof i.Ref){let a=this.xref.fetch(e);switch(a.get("Type").name){case"Page":t.push(e);break;case"Pages":let r=this.getPages(a.get("Kids"));t=t.concat(r)}}}));return t}get structureTree(){let e=null;this.structTreeRoot&&(0,i.isDict)(this.structTreeRoot)&&this.structTreeRoot.has("K")&&(e=this.getTreeElement(this.structTreeRoot.get("K"),null,this.structTreeRoot.getRaw("K")));return(0,n.shadow)(this,"structureTree",e)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.NumberTree=t.NameTree=void 0;var r=a(5),n=a(2);class NameOrNumberTree{constructor(e,t,a){this.constructor===NameOrNumberTree&&(0,n.unreachable)("Cannot initialize NameOrNumberTree.");this.root=e;this.xref=t;this._type=a}getAll(){const e=new Map;if(!this.root)return e;const t=this.xref,a=new r.RefSet;a.put(this.root);const i=[this.root];for(;i.length>0;){const s=t.fetchIfRef(i.shift());if(!(s instanceof r.Dict))continue;if(s.has("Kids")){const e=s.get("Kids");if(!Array.isArray(e))continue;for(const t of e){if(a.has(t))throw new n.FormatError(`Duplicate entry in "${this._type}" tree.`);i.push(t);a.put(t)}continue}const o=s.get(this._type);if(Array.isArray(o))for(let a=0,r=o.length;a10){(0,n.warn)(`Search depth limit reached for "${this._type}" tree.`);return null}const i=a.get("Kids");if(!Array.isArray(i))return null;let s=0,o=i.length-1;for(;s<=o;){const r=s+o>>1,n=t.fetchIfRef(i[r]),c=n.get("Limits");if(et.fetchIfRef(c[1]))){a=n;break}s=r+1}}if(s>o)return null}const i=a.get(this._type);if(Array.isArray(i)){let a=0,r=i.length-2;for(;a<=r;){const n=a+r>>1,s=n+(1&n),o=t.fetchIfRef(i[s]);if(eo))return t.fetchIfRef(i[s+1]);a=s+2}}}return null}}t.NameTree=class NameTree extends NameOrNumberTree{constructor(e,t){super(e,t,"Names")}};t.NumberTree=class NumberTree extends NameOrNumberTree{constructor(e,t){super(e,t,"Nums")}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.clearGlobalCaches=function clearGlobalCaches(){(0,r.clearPrimitiveCaches)();(0,n.clearUnicodeCaches)()};var r=a(5),n=a(21)},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.FileSpec=void 0;var r=a(2),n=a(9),i=a(5);function pickPlatformItem(e){return e.has("UF")?e.get("UF"):e.has("F")?e.get("F"):e.has("Unix")?e.get("Unix"):e.has("Mac")?e.get("Mac"):e.has("DOS")?e.get("DOS"):null}t.FileSpec=class FileSpec{constructor(e,t){if(e instanceof i.Dict){this.xref=t;this.root=e;e.has("FS")&&(this.fs=e.get("FS"));this.description=e.has("Desc")?(0,r.stringToPDFString)(e.get("Desc")):"";e.has("RF")&&(0,r.warn)("Related file specifications are not supported");this.contentAvailable=!0;if(!e.has("EF")){this.contentAvailable=!1;(0,r.warn)("Non-embedded file specifications are not supported")}}}get filename(){if(!this._filename&&this.root){const e=pickPlatformItem(this.root)||"unnamed";this._filename=(0,r.stringToPDFString)(e).replace(/\\\\/g,"\\").replace(/\\\//g,"/").replace(/\\/g,"/")}return this._filename}get content(){if(!this.contentAvailable)return null;!this.contentRef&&this.root&&(this.contentRef=pickPlatformItem(this.root.get("EF")));let e=null;if(this.contentRef){const t=this.xref.fetchIfRef(this.contentRef);t instanceof n.BaseStream?e=t.getBytes():(0,r.warn)("Embedded file specification points to non-existing/invalid content")}else(0,r.warn)("Embedded file specification does not have a content");return e}get serializable(){return{filename:this.filename,content:this.content}}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.MetadataParser=void 0;var r=a(71);t.MetadataParser=class MetadataParser{constructor(e){e=this._repair(e);const t=new r.SimpleXMLParser({lowerCaseName:!0}).parseFromString(e);this._metadataMap=new Map;this._data=e;t&&this._parse(t)}_repair(e){return e.replace(/^[^<]+/,"").replace(/>\\376\\377([^<]+)/g,(function(e,t){const a=t.replace(/\\([0-3])([0-7])([0-7])/g,(function(e,t,a,r){return String.fromCharCode(64*t+8*a+1*r)})).replace(/&(amp|apos|gt|lt|quot);/g,(function(e,t){switch(t){case"amp":return"&";case"apos":return"'";case"gt":return">";case"lt":return"<";case"quot":return'"'}throw new Error(`_repair: ${t} isn't defined.`)})),r=[];for(let e=0,t=a.length;e=32&&t<127&&60!==t&&62!==t&&38!==t?r.push(String.fromCharCode(t)):r.push("&#x"+(65536+t).toString(16).substring(1)+";")}return">"+r.join("")}))}_getSequence(e){const t=e.nodeName;return"rdf:bag"!==t&&"rdf:seq"!==t&&"rdf:alt"!==t?null:e.childNodes.filter((e=>"rdf:li"===e.nodeName))}_parseArray(e){if(!e.hasChildNodes())return;const[t]=e.childNodes,a=this._getSequence(t)||[];this._metadataMap.set(e.nodeName,a.map((e=>e.textContent.trim())))}_parse(e){let t=e.documentElement;if("rdf:rdf"!==t.nodeName){t=t.firstChild;for(;t&&"rdf:rdf"!==t.nodeName;)t=t.nextSibling}if(t&&"rdf:rdf"===t.nodeName&&t.hasChildNodes())for(const e of t.childNodes)if("rdf:description"===e.nodeName)for(const t of e.childNodes){const e=t.nodeName;switch(e){case"#text":continue;case"dc:creator":case"dc:subject":this._parseArray(t);continue}this._metadataMap.set(e,t.textContent.trim())}}get serializable(){return{parsedData:this._metadataMap,rawData:this._data}}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XMLParserErrorCode=t.XMLParserBase=t.SimpleXMLParser=t.SimpleDOMNode=void 0;var r=a(8);const n={NoError:0,EndOfDocument:-1,UnterminatedCdat:-2,UnterminatedXmlDeclaration:-3,UnterminatedDoctypeDeclaration:-4,UnterminatedComment:-5,MalformedElement:-6,OutOfMemory:-7,UnterminatedAttributeValue:-8,UnterminatedElement:-9,ElementNeverBegun:-10};t.XMLParserErrorCode=n;function isWhitespace(e,t){const a=e[t];return" "===a||"\n"===a||"\r"===a||"\t"===a}class XMLParserBase{_resolveEntities(e){return e.replace(/&([^;]+);/g,((e,t)=>{if("#x"===t.substring(0,2))return String.fromCodePoint(parseInt(t.substring(2),16));if("#"===t.substring(0,1))return String.fromCodePoint(parseInt(t.substring(1),10));switch(t){case"lt":return"<";case"gt":return">";case"amp":return"&";case"quot":return'"';case"apos":return"'"}return this.onResolveEntity(t)}))}_parseContent(e,t){const a=[];let r=t;function skipWs(){for(;r"!==e[r]&&"/"!==e[r];)++r;const n=e.substring(t,r);skipWs();for(;r"!==e[r]&&"/"!==e[r]&&"?"!==e[r];){skipWs();let t="",n="";for(;r"!==e[a]&&"?"!==e[a]&&"/"!==e[a];)++a;const r=e.substring(t,a);!function skipWs(){for(;a"!==e[a+1]);)++a;return{name:r,value:e.substring(n,a),parsed:a-t}}parseXml(e){let t=0;for(;t",a);if(t<0){this.onError(n.UnterminatedElement);return}this.onEndElement(e.substring(a,t));a=t+1;break;case"?":++a;const r=this._parseProcessingInstruction(e,a);if("?>"!==e.substring(a+r.parsed,a+r.parsed+2)){this.onError(n.UnterminatedXmlDeclaration);return}this.onPi(r.name,r.value);a+=r.parsed+2;break;case"!":if("--"===e.substring(a+1,a+3)){t=e.indexOf("--\x3e",a+3);if(t<0){this.onError(n.UnterminatedComment);return}this.onComment(e.substring(a+3,t));a=t+3}else if("[CDATA["===e.substring(a+1,a+8)){t=e.indexOf("]]>",a+8);if(t<0){this.onError(n.UnterminatedCdat);return}this.onCdata(e.substring(a+8,t));a=t+3}else{if("DOCTYPE"!==e.substring(a+1,a+8)){this.onError(n.MalformedElement);return}{const r=e.indexOf("[",a+8);let i=!1;t=e.indexOf(">",a+8);if(t<0){this.onError(n.UnterminatedDoctypeDeclaration);return}if(r>0&&t>r){t=e.indexOf("]>",a+8);if(t<0){this.onError(n.UnterminatedDoctypeDeclaration);return}i=!0}const s=e.substring(a+8,t+(i?1:0));this.onDoctype(s);a=t+(i?2:1)}}break;default:const i=this._parseContent(e,a);if(null===i){this.onError(n.MalformedElement);return}let s=!1;if("/>"===e.substring(a+i.parsed,a+i.parsed+2))s=!0;else if(">"!==e.substring(a+i.parsed,a+i.parsed+1)){this.onError(n.UnterminatedElement);return}this.onBeginElement(i.name,i.attributes,s);a+=i.parsed+(s?2:1)}}else{for(;a0}searchNode(e,t){if(t>=e.length)return this;const a=e[t],r=[];let n=this;for(;;){if(a.name===n.nodeName){if(0!==a.pos){if(0===r.length)return null;{const[i]=r.pop();let s=0;for(const r of i.childNodes)if(a.name===r.nodeName){if(s===a.pos)return r.searchNode(e,t+1);s++}return n.searchNode(e,t+1)}}{const a=n.searchNode(e,t+1);if(null!==a)return a}}if(n.childNodes&&0!==n.childNodes.length){r.push([n,0]);n=n.childNodes[0]}else{if(0===r.length)return null;for(;0!==r.length;){const[e,t]=r.pop(),a=t+1;if(a");for(const t of this.childNodes)t.dump(e);e.push(``)}else this.nodeValue?e.push(`>${(0,r.encodeToXmlString)(this.nodeValue)}`):e.push("/>")}else e.push((0,r.encodeToXmlString)(this.nodeValue))}}t.SimpleDOMNode=SimpleDOMNode;t.SimpleXMLParser=class SimpleXMLParser extends XMLParserBase{constructor({hasAttributes:e=!1,lowerCaseName:t=!1}){super();this._currentFragment=null;this._stack=null;this._errorCode=n.NoError;this._hasAttributes=e;this._lowerCaseName=t}parseFromString(e){this._currentFragment=[];this._stack=[];this._errorCode=n.NoError;this.parseXml(e);if(this._errorCode!==n.NoError)return;const[t]=this._currentFragment;return t?{documentElement:t}:void 0}onText(e){if(function isWhitespaceString(e){for(let t=0,a=e.length;t{Object.defineProperty(t,"__esModule",{value:!0});t.StructTreeRoot=t.StructTreePage=void 0;var r=a(5),n=a(2),i=a(67);const s="PAGE_CONTENT",o="STREAM_CONTENT",c="OBJECT",l="ELEMENT";t.StructTreeRoot=class StructTreeRoot{constructor(e){this.dict=e;this.roleMap=new Map}init(){this.readRoleMap()}readRoleMap(){const e=this.dict.get("RoleMap");e instanceof r.Dict&&e.forEach(((e,t)=>{t instanceof r.Name&&this.roleMap.set(e,t.name)}))}};class StructElementNode{constructor(e,t){this.tree=e;this.dict=t;this.kids=[];this.parseKids()}get role(){const e=this.dict.get("S"),t=e instanceof r.Name?e.name:"",{root:a}=this.tree;return a.roleMap.has(t)?a.roleMap.get(t):t}parseKids(){let e=null;const t=this.dict.getRaw("Pg");t instanceof r.Ref&&(e=t.toString());const a=this.dict.get("K");if(Array.isArray(a))for(const t of a){const a=this.parseKid(e,t);a&&this.kids.push(a)}else{const t=this.parseKid(e,a);t&&this.kids.push(t)}}parseKid(e,t){if(Number.isInteger(t))return this.tree.pageDict.objId!==e?null:new StructElement({type:s,mcid:t,pageObjId:e});let a=null;t instanceof r.Ref?a=this.dict.xref.fetch(t):t instanceof r.Dict&&(a=t);if(!a)return null;const n=a.getRaw("Pg");n instanceof r.Ref&&(e=n.toString());const i=a.get("Type")instanceof r.Name?a.get("Type").name:null;return"MCR"===i?this.tree.pageDict.objId!==e?null:new StructElement({type:o,refObjId:a.getRaw("Stm")instanceof r.Ref?a.getRaw("Stm").toString():null,pageObjId:e,mcid:a.get("MCID")}):"OBJR"===i?this.tree.pageDict.objId!==e?null:new StructElement({type:c,refObjId:a.getRaw("Obj")instanceof r.Ref?a.getRaw("Obj").toString():null,pageObjId:e}):new StructElement({type:l,dict:a})}}class StructElement{constructor({type:e,dict:t=null,mcid:a=null,pageObjId:r=null,refObjId:n=null}){this.type=e;this.dict=t;this.mcid=a;this.pageObjId=r;this.refObjId=n;this.parentNode=null}}t.StructTreePage=class StructTreePage{constructor(e,t){this.root=e;this.rootDict=e?e.dict:null;this.pageDict=t;this.nodes=[]}parse(){if(!this.root||!this.rootDict)return;const e=this.rootDict.get("ParentTree");if(!e)return;const t=this.pageDict.get("StructParents");if(!Number.isInteger(t))return;const a=new i.NumberTree(e,this.rootDict.xref).get(t);if(!Array.isArray(a))return;const n=new Map;for(const e of a)e instanceof r.Ref&&this.addNode(this.rootDict.xref.fetch(e),n)}addNode(e,t,a=0){if(a>40){(0,n.warn)("StructTree MAX_DEPTH reached.");return null}if(t.has(e))return t.get(e);const i=new StructElementNode(this,e);t.set(e,i);const s=e.get("P");if(!s||(0,r.isName)(s.get("Type"),"StructTreeRoot")){this.addTopLevelNode(e,i)||t.delete(e);return i}const o=this.addNode(s,t,a+1);if(!o)return i;let c=!1;for(const t of o.kids)if(t.type===l&&t.dict===e){t.parentNode=i;c=!0}c||t.delete(e);return i}addTopLevelNode(e,t){const a=this.rootDict.get("K");if(!a)return!1;if(a instanceof r.Dict){if(a.objId!==e.objId)return!1;this.nodes[0]=t;return!0}if(!Array.isArray(a))return!0;let n=!1;for(let r=0;r40){(0,n.warn)("StructTree too deep to be fully serialized.");return}const r=Object.create(null);r.role=e.role;r.children=[];t.children.push(r);const i=e.dict.get("Alt");"string"==typeof i&&(r.alt=(0,n.stringToPDFString)(i));const h=e.dict.get("Lang");"string"==typeof h&&(r.lang=(0,n.stringToPDFString)(h));for(const t of e.kids){const e=t.type===l?t.parentNode:null;e?nodeToSerializable(e,r,a+1):t.type===s||t.type===o?r.children.push({type:"content",id:`page${t.pageObjId}_mcid${t.mcid}`}):t.type===c&&r.children.push({type:"object",id:t.refObjId})}}const e=Object.create(null);e.children=[];e.role="Root";for(const t of this.nodes)t&&nodeToSerializable(t,e);return e}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ObjectLoader=void 0;var r=a(5),n=a(9),i=a(8),s=a(2);function addChildren(e,t){if(e instanceof r.Dict)e=e.getRawValues();else if(e instanceof n.BaseStream)e=e.dict.getRawValues();else if(!Array.isArray(e))return;for(const i of e)((a=i)instanceof r.Ref||a instanceof r.Dict||a instanceof n.BaseStream||Array.isArray(a))&&t.push(i);var a}t.ObjectLoader=class ObjectLoader{constructor(e,t,a){this.dict=e;this.keys=t;this.xref=a;this.refSet=null}async load(){if(this.xref.stream.isDataLoaded)return;const{keys:e,dict:t}=this;this.refSet=new r.RefSet;const a=[];for(let r=0,n=e.length;r{Object.defineProperty(t,"__esModule",{value:!0});t.incrementalUpdate=function incrementalUpdate({originalData:e,xrefInfo:t,newRefs:a,xref:o=null,hasXfa:l=!1,xfaDatasetsRef:h=null,hasXfaDatasetsEntry:u=!1,acroFormRef:d=null,acroForm:f=null,xfaData:g=null}){l&&function updateXFA({xfaData:e,xfaDatasetsRef:t,hasXfaDatasetsEntry:a,acroFormRef:n,acroForm:o,newRefs:c,xref:l,xrefInfo:h}){if(null===l)return;if(!a){if(!n){(0,r.warn)("XFA - Cannot save it");return}const e=o.get("XFA"),a=e.slice();a.splice(2,0,"datasets");a.splice(3,0,t);o.set("XFA",a);const i=l.encrypt;let s=null;i&&(s=i.createCipherTransform(n.num,n.gen));const h=[`${n.num} ${n.gen} obj\n`];writeDict(o,h,s);h.push("\n");o.set("XFA",e);c.push({ref:n,data:h.join("")})}if(null===e){e=function writeXFADataForAcroform(e,t){const a=new s.SimpleXMLParser({hasAttributes:!0}).parseFromString(e);for(const{xfa:e}of t){if(!e)continue;const{path:t,value:n}=e;if(!t)continue;const o=a.documentElement.searchNode((0,i.parseXFAPath)(t),0);o?Array.isArray(n)?o.childNodes=n.map((e=>new s.SimpleDOMNode("value",e))):o.childNodes=[new s.SimpleDOMNode("#text",n)]:(0,r.warn)(`Node not found for path: ${t}`)}const n=[];a.documentElement.dump(n);return n.join("")}(l.fetchIfRef(t).getString(),c)}const u=l.encrypt;if(u){e=u.createCipherTransform(t.num,t.gen).encryptString(e)}const d=`${t.num} ${t.gen} obj\n<< /Type /EmbeddedFile /Length ${e.length}>>\nstream\n`+e+"\nendstream\nendobj\n";c.push({ref:t,data:d})}({xfaData:g,xfaDatasetsRef:h,hasXfaDatasetsEntry:u,acroFormRef:d,acroForm:f,newRefs:a,xref:o,xrefInfo:t});const p=new n.Dict(null),m=t.newRef;let b,y;const w=e[e.length-1];if(10===w||13===w){b=[];y=e.length}else{b=["\n"];y=e.length+1}p.set("Size",m.num+1);p.set("Prev",t.startXRef);p.set("Type",n.Name.get("XRef"));null!==t.rootRef&&p.set("Root",t.rootRef);null!==t.infoRef&&p.set("Info",t.infoRef);null!==t.encryptRef&&p.set("Encrypt",t.encryptRef);a.push({ref:m,data:""});a=a.sort(((e,t)=>e.ref.num-t.ref.num));const S=[[0,1,65535]],x=[0,1];let k=0;for(const{ref:e,data:t}of a){k=Math.max(k,y);S.push([1,y,Math.min(e.gen,65535)]);y+=t.length;x.push(e.num,1);b.push(t)}p.set("Index",x);if(Array.isArray(t.fileIds)&&t.fileIds.length>0){const e=function computeMD5(e,t){const a=Math.floor(Date.now()/1e3),n=t.filename||"",i=[a.toString(),n,e.toString()];let s=i.reduce(((e,t)=>e+t.length),0);for(const e of Object.values(t.info)){i.push(e);s+=e.length}const o=new Uint8Array(s);let l=0;for(const e of i){writeString(e,l,o);l+=e.length}return(0,r.bytesToString)((0,c.calculateMD5)(o))}(y,t);p.set("ID",[t.fileIds[0],e])}const C=[1,Math.ceil(Math.log2(k)/8),2],v=(C[0]+C[1]+C[2])*S.length;p.set("W",C);p.set("Length",v);b.push(`${m.num} ${m.gen} obj\n`);writeDict(p,b,null);b.push(" stream\n");const F=b.reduce(((e,t)=>e+t.length),0),O=`\nendstream\nendobj\nstartxref\n${y}\n%%EOF\n`,T=new Uint8Array(e.length+F+v+O.length);T.set(e);let M=e.length;for(const e of b){writeString(e,M,T);M+=e.length}for(const[e,t,a]of S){M=writeInt(e,C[0],M,T);M=writeInt(t,C[1],M,T);M=writeInt(a,C[2],M,T)}writeString(O,M,T);return T};t.writeDict=writeDict;var r=a(2),n=a(5),i=a(8),s=a(71),o=a(9),c=a(75);function writeDict(e,t,a){t.push("<<");for(const r of e.getKeys()){t.push(` /${(0,i.escapePDFName)(r)} `);writeValue(e.getRaw(r),t,a)}t.push(">>")}function writeValue(e,t,a){if(e instanceof n.Name)t.push(`/${(0,i.escapePDFName)(e.name)}`);else if(e instanceof n.Ref)t.push(`${e.num} ${e.gen} R`);else if(Array.isArray(e))!function writeArray(e,t,a){t.push("[");let r=!0;for(const n of e){r?r=!1:t.push(" ");writeValue(n,t,a)}t.push("]")}(e,t,a);else if("string"==typeof e){null!==a&&(e=a.encryptString(e));t.push(`(${(0,r.escapeString)(e)})`)}else"number"==typeof e?t.push(function numberToString(e){if(Number.isInteger(e))return e.toString();const t=Math.round(100*e);return t%100==0?(t/100).toString():t%10==0?e.toFixed(1):e.toFixed(2)}(e)):"boolean"==typeof e?t.push(e.toString()):e instanceof n.Dict?writeDict(e,t,a):e instanceof o.BaseStream?function writeStream(e,t,a){writeDict(e.dict,t,a);t.push(" stream\n");let r=e.getString();null!==a&&(r=a.encryptString(r));t.push(r,"\nendstream\n")}(e,t,a):null===e?t.push("null"):(0,r.warn)(`Unhandled value in writer: ${typeof e}, please file a bug.`)}function writeInt(e,t,a,r){for(let n=t+a-1;n>a-1;n--){r[n]=255&e;e>>=8}return a+t}function writeString(e,t,a){for(let r=0,n=e.length;r{Object.defineProperty(t,"__esModule",{value:!0});t.calculateSHA256=t.calculateMD5=t.PDF20=t.PDF17=t.CipherTransformFactory=t.ARCFourCipher=t.AES256Cipher=t.AES128Cipher=void 0;t.calculateSHA384=calculateSHA384;t.calculateSHA512=void 0;var r=a(2),n=a(5),i=a(76);class ARCFourCipher{constructor(e){this.a=0;this.b=0;const t=new Uint8Array(256),a=e.length;for(let e=0;e<256;++e)t[e]=e;for(let r=0,n=0;r<256;++r){const i=t[r];n=n+i+e[r%a]&255;t[r]=t[n];t[n]=i}this.s=t}encryptBlock(e){let t=this.a,a=this.b;const r=this.s,n=e.length,i=new Uint8Array(n);for(let s=0;s>5&255;h[u++]=n>>13&255;h[u++]=n>>21&255;h[u++]=n>>>29&255;h[u++]=0;h[u++]=0;h[u++]=0;const g=new Int32Array(16);for(u=0;u>>32-o)|0;n=i}i=i+n|0;s=s+l|0;o=o+f|0;c=c+p|0}return new Uint8Array([255&i,i>>8&255,i>>16&255,i>>>24&255,255&s,s>>8&255,s>>16&255,s>>>24&255,255&o,o>>8&255,o>>16&255,o>>>24&255,255&c,c>>8&255,c>>16&255,c>>>24&255])}}();t.calculateMD5=s;class Word64{constructor(e,t){this.high=0|e;this.low=0|t}and(e){this.high&=e.high;this.low&=e.low}xor(e){this.high^=e.high;this.low^=e.low}or(e){this.high|=e.high;this.low|=e.low}shiftRight(e){if(e>=32){this.low=this.high>>>e-32|0;this.high=0}else{this.low=this.low>>>e|this.high<<32-e;this.high=this.high>>>e|0}}shiftLeft(e){if(e>=32){this.high=this.low<>>32-e;this.low<<=e}}rotateRight(e){let t,a;if(32&e){a=this.low;t=this.high}else{t=this.low;a=this.high}e&=31;this.low=t>>>e|a<<32-e;this.high=a>>>e|t<<32-e}not(){this.high=~this.high;this.low=~this.low}add(e){const t=(this.low>>>0)+(e.low>>>0);let a=(this.high>>>0)+(e.high>>>0);t>4294967295&&(a+=1);this.low=0|t;this.high=0|a}copyTo(e,t){e[t]=this.high>>>24&255;e[t+1]=this.high>>16&255;e[t+2]=this.high>>8&255;e[t+3]=255&this.high;e[t+4]=this.low>>>24&255;e[t+5]=this.low>>16&255;e[t+6]=this.low>>8&255;e[t+7]=255&this.low}assign(e){this.high=e.high;this.low=e.low}}const o=function calculateSHA256Closure(){function rotr(e,t){return e>>>t|e<<32-t}function ch(e,t,a){return e&t^~e&a}function maj(e,t,a){return e&t^e&a^t&a}function sigma(e){return rotr(e,2)^rotr(e,13)^rotr(e,22)}function sigmaPrime(e){return rotr(e,6)^rotr(e,11)^rotr(e,25)}function littleSigma(e){return rotr(e,7)^rotr(e,18)^e>>>3}const e=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];return function hash(t,a,r){let n=1779033703,i=3144134277,s=1013904242,o=2773480762,c=1359893119,l=2600822924,h=528734635,u=1541459225;const d=64*Math.ceil((r+9)/64),f=new Uint8Array(d);let g,p;for(g=0;g>>29&255;f[g++]=r>>21&255;f[g++]=r>>13&255;f[g++]=r>>5&255;f[g++]=r<<3&255;const b=new Uint32Array(64);for(g=0;g>>10)+b[p-7]+littleSigma(b[p-15])+b[p-16]|0;let t,a,r=n,d=i,m=s,w=o,S=c,x=l,k=h,C=u;for(p=0;p<64;++p){t=C+sigmaPrime(S)+ch(S,x,k)+e[p]+b[p];a=sigma(r)+maj(r,d,m);C=k;k=x;x=S;S=w+t|0;w=m;m=d;d=r;r=t+a|0}n=n+r|0;i=i+d|0;s=s+m|0;o=o+w|0;c=c+S|0;l=l+x|0;h=h+k|0;u=u+C|0}var y;return new Uint8Array([n>>24&255,n>>16&255,n>>8&255,255&n,i>>24&255,i>>16&255,i>>8&255,255&i,s>>24&255,s>>16&255,s>>8&255,255&s,o>>24&255,o>>16&255,o>>8&255,255&o,c>>24&255,c>>16&255,c>>8&255,255&c,l>>24&255,l>>16&255,l>>8&255,255&l,h>>24&255,h>>16&255,h>>8&255,255&h,u>>24&255,u>>16&255,u>>8&255,255&u])}}();t.calculateSHA256=o;const c=function calculateSHA512Closure(){function ch(e,t,a,r,n){e.assign(t);e.and(a);n.assign(t);n.not();n.and(r);e.xor(n)}function maj(e,t,a,r,n){e.assign(t);e.and(a);n.assign(t);n.and(r);e.xor(n);n.assign(a);n.and(r);e.xor(n)}function sigma(e,t,a){e.assign(t);e.rotateRight(28);a.assign(t);a.rotateRight(34);e.xor(a);a.assign(t);a.rotateRight(39);e.xor(a)}function sigmaPrime(e,t,a){e.assign(t);e.rotateRight(14);a.assign(t);a.rotateRight(18);e.xor(a);a.assign(t);a.rotateRight(41);e.xor(a)}function littleSigma(e,t,a){e.assign(t);e.rotateRight(1);a.assign(t);a.rotateRight(8);e.xor(a);a.assign(t);a.shiftRight(7);e.xor(a)}function littleSigmaPrime(e,t,a){e.assign(t);e.rotateRight(19);a.assign(t);a.rotateRight(61);e.xor(a);a.assign(t);a.shiftRight(6);e.xor(a)}const e=[new Word64(1116352408,3609767458),new Word64(1899447441,602891725),new Word64(3049323471,3964484399),new Word64(3921009573,2173295548),new Word64(961987163,4081628472),new Word64(1508970993,3053834265),new Word64(2453635748,2937671579),new Word64(2870763221,3664609560),new Word64(3624381080,2734883394),new Word64(310598401,1164996542),new Word64(607225278,1323610764),new Word64(1426881987,3590304994),new Word64(1925078388,4068182383),new Word64(2162078206,991336113),new Word64(2614888103,633803317),new Word64(3248222580,3479774868),new Word64(3835390401,2666613458),new Word64(4022224774,944711139),new Word64(264347078,2341262773),new Word64(604807628,2007800933),new Word64(770255983,1495990901),new Word64(1249150122,1856431235),new Word64(1555081692,3175218132),new Word64(1996064986,2198950837),new Word64(2554220882,3999719339),new Word64(2821834349,766784016),new Word64(2952996808,2566594879),new Word64(3210313671,3203337956),new Word64(3336571891,1034457026),new Word64(3584528711,2466948901),new Word64(113926993,3758326383),new Word64(338241895,168717936),new Word64(666307205,1188179964),new Word64(773529912,1546045734),new Word64(1294757372,1522805485),new Word64(1396182291,2643833823),new Word64(1695183700,2343527390),new Word64(1986661051,1014477480),new Word64(2177026350,1206759142),new Word64(2456956037,344077627),new Word64(2730485921,1290863460),new Word64(2820302411,3158454273),new Word64(3259730800,3505952657),new Word64(3345764771,106217008),new Word64(3516065817,3606008344),new Word64(3600352804,1432725776),new Word64(4094571909,1467031594),new Word64(275423344,851169720),new Word64(430227734,3100823752),new Word64(506948616,1363258195),new Word64(659060556,3750685593),new Word64(883997877,3785050280),new Word64(958139571,3318307427),new Word64(1322822218,3812723403),new Word64(1537002063,2003034995),new Word64(1747873779,3602036899),new Word64(1955562222,1575990012),new Word64(2024104815,1125592928),new Word64(2227730452,2716904306),new Word64(2361852424,442776044),new Word64(2428436474,593698344),new Word64(2756734187,3733110249),new Word64(3204031479,2999351573),new Word64(3329325298,3815920427),new Word64(3391569614,3928383900),new Word64(3515267271,566280711),new Word64(3940187606,3454069534),new Word64(4118630271,4000239992),new Word64(116418474,1914138554),new Word64(174292421,2731055270),new Word64(289380356,3203993006),new Word64(460393269,320620315),new Word64(685471733,587496836),new Word64(852142971,1086792851),new Word64(1017036298,365543100),new Word64(1126000580,2618297676),new Word64(1288033470,3409855158),new Word64(1501505948,4234509866),new Word64(1607167915,987167468),new Word64(1816402316,1246189591)];return function hash(t,a,r,n=!1){let i,s,o,c,l,h,u,d;if(n){i=new Word64(3418070365,3238371032);s=new Word64(1654270250,914150663);o=new Word64(2438529370,812702999);c=new Word64(355462360,4144912697);l=new Word64(1731405415,4290775857);h=new Word64(2394180231,1750603025);u=new Word64(3675008525,1694076839);d=new Word64(1203062813,3204075428)}else{i=new Word64(1779033703,4089235720);s=new Word64(3144134277,2227873595);o=new Word64(1013904242,4271175723);c=new Word64(2773480762,1595750129);l=new Word64(1359893119,2917565137);h=new Word64(2600822924,725511199);u=new Word64(528734635,4215389547);d=new Word64(1541459225,327033209)}const f=128*Math.ceil((r+17)/128),g=new Uint8Array(f);let p,m;for(p=0;p>>29&255;g[p++]=r>>21&255;g[p++]=r>>13&255;g[p++]=r>>5&255;g[p++]=r<<3&255;const y=new Array(80);for(p=0;p<80;p++)y[p]=new Word64(0,0);let w=new Word64(0,0),S=new Word64(0,0),x=new Word64(0,0),k=new Word64(0,0),C=new Word64(0,0),v=new Word64(0,0),F=new Word64(0,0),O=new Word64(0,0);const T=new Word64(0,0),M=new Word64(0,0),E=new Word64(0,0),D=new Word64(0,0);let N,L;for(p=0;p=1;--e){a=i[13];i[13]=i[9];i[9]=i[5];i[5]=i[1];i[1]=a;a=i[14];r=i[10];i[14]=i[6];i[10]=i[2];i[6]=a;i[2]=r;a=i[15];r=i[11];n=i[7];i[15]=i[3];i[11]=a;i[7]=r;i[3]=n;for(let e=0;e<16;++e)i[e]=this._inv_s[i[e]];for(let a=0,r=16*e;a<16;++a,++r)i[a]^=t[r];for(let e=0;e<16;e+=4){const t=this._mix[i[e]],r=this._mix[i[e+1]],n=this._mix[i[e+2]],s=this._mix[i[e+3]];a=t^r>>>8^r<<24^n>>>16^n<<16^s>>>24^s<<8;i[e]=a>>>24&255;i[e+1]=a>>16&255;i[e+2]=a>>8&255;i[e+3]=255&a}}a=i[13];i[13]=i[9];i[9]=i[5];i[5]=i[1];i[1]=a;a=i[14];r=i[10];i[14]=i[6];i[10]=i[2];i[6]=a;i[2]=r;a=i[15];r=i[11];n=i[7];i[15]=i[3];i[11]=a;i[7]=r;i[3]=n;for(let e=0;e<16;++e){i[e]=this._inv_s[i[e]];i[e]^=t[e]}return i}_encrypt(e,t){const a=this._s;let r,n,i;const s=new Uint8Array(16);s.set(e);for(let e=0;e<16;++e)s[e]^=t[e];for(let e=1;e=r;--a)if(e[a]!==t){t=0;break}o-=t;i[i.length-1]=e.subarray(0,16-t)}}const c=new Uint8Array(o);for(let e=0,t=0,a=i.length;e=256&&(o=255&(27^o))}for(let t=0;t<4;++t){a[e]=r^=a[e-32];e++;a[e]=n^=a[e-32];e++;a[e]=i^=a[e-32];e++;a[e]=s^=a[e-32];e++}}return a}}t.AES256Cipher=AES256Cipher;class PDF17{checkOwnerPassword(e,t,a,n){const i=new Uint8Array(e.length+56);i.set(e,0);i.set(t,e.length);i.set(a,e.length+t.length);const s=o(i,0,i.length);return(0,r.isArrayEqual)(s,n)}checkUserPassword(e,t,a){const n=new Uint8Array(e.length+8);n.set(e,0);n.set(t,e.length);const i=o(n,0,n.length);return(0,r.isArrayEqual)(i,a)}getOwnerKey(e,t,a,r){const n=new Uint8Array(e.length+56);n.set(e,0);n.set(t,e.length);n.set(a,e.length+t.length);const i=o(n,0,n.length);return new AES256Cipher(i).decryptBlock(r,!1,new Uint8Array(16))}getUserKey(e,t,a){const r=new Uint8Array(e.length+8);r.set(e,0);r.set(t,e.length);const n=o(r,0,r.length);return new AES256Cipher(n).decryptBlock(a,!1,new Uint8Array(16))}}t.PDF17=PDF17;const l=function PDF20Closure(){function calculatePDF20Hash(e,t,a){let r=o(t,0,t.length).subarray(0,32),n=[0],i=0;for(;i<64||n[n.length-1]>i-32;){const t=e.length+r.length+a.length,s=new Uint8Array(t);let l=0;s.set(e,l);l+=e.length;s.set(r,l);l+=r.length;s.set(a,l);const h=new Uint8Array(64*t);for(let e=0,a=0;e<64;e++,a+=t)h.set(s,a);n=new AES128Cipher(r.subarray(0,16)).encrypt(h,r.subarray(16,32));let u=0;for(let e=0;e<16;e++){u*=1;u%=3;u+=(n[e]>>>0)%3;u%=3}0===u?r=o(n,0,n.length):1===u?r=calculateSHA384(n,0,n.length):2===u&&(r=c(n,0,n.length));i++}return r.subarray(0,32)}return class PDF20{hash(e,t,a){return calculatePDF20Hash(e,t,a)}checkOwnerPassword(e,t,a,n){const i=new Uint8Array(e.length+56);i.set(e,0);i.set(t,e.length);i.set(a,e.length+t.length);const s=calculatePDF20Hash(e,i,a);return(0,r.isArrayEqual)(s,n)}checkUserPassword(e,t,a){const n=new Uint8Array(e.length+8);n.set(e,0);n.set(t,e.length);const i=calculatePDF20Hash(e,n,[]);return(0,r.isArrayEqual)(i,a)}getOwnerKey(e,t,a,r){const n=new Uint8Array(e.length+56);n.set(e,0);n.set(t,e.length);n.set(a,e.length+t.length);const i=calculatePDF20Hash(e,n,a);return new AES256Cipher(i).decryptBlock(r,!1,new Uint8Array(16))}getUserKey(e,t,a){const r=new Uint8Array(e.length+8);r.set(e,0);r.set(t,e.length);const n=calculatePDF20Hash(e,r,[]);return new AES256Cipher(n).decryptBlock(a,!1,new Uint8Array(16))}}}();t.PDF20=l;class CipherTransform{constructor(e,t){this.StringCipherConstructor=e;this.StreamCipherConstructor=t}createStream(e,t){const a=new this.StreamCipherConstructor;return new i.DecryptStream(e,t,(function cipherTransformDecryptStream(e,t){return a.decryptBlock(e,t)}))}decryptString(e){const t=new this.StringCipherConstructor;let a=(0,r.stringToBytes)(e);a=t.decryptBlock(a,!0);return(0,r.bytesToString)(a)}encryptString(e){const t=new this.StringCipherConstructor;if(t instanceof AESBaseCipher){const a=16-e.length%16;e+=String.fromCharCode(a).repeat(a);const n=new Uint8Array(16);if("undefined"!=typeof crypto)crypto.getRandomValues(n);else for(let e=0;e<16;e++)n[e]=Math.floor(256*Math.random());let i=(0,r.stringToBytes)(e);i=t.encrypt(i,n);const s=new Uint8Array(16+i.length);s.set(n);s.set(i,16);return(0,r.bytesToString)(s)}let a=(0,r.stringToBytes)(e);a=t.encrypt(a);return(0,r.bytesToString)(a)}}const h=function CipherTransformFactoryClosure(){const e=new Uint8Array([40,191,78,94,78,117,138,65,100,0,78,86,255,250,1,8,46,46,0,182,208,104,62,128,47,12,169,254,100,83,105,122]);function prepareKeyData(t,a,r,n,i,o,c,l){const h=40+r.length+t.length,u=new Uint8Array(h);let d,f,g=0;if(a){f=Math.min(32,a.length);for(;g>8&255;u[g++]=i>>16&255;u[g++]=i>>>24&255;for(d=0,f=t.length;d=4&&!l){u[g++]=255;u[g++]=255;u[g++]=255;u[g++]=255}let p=s(u,0,g);const m=c>>3;if(o>=3)for(d=0;d<50;++d)p=s(p,0,m);const b=p.subarray(0,m);let y,w;if(o>=3){for(g=0;g<32;++g)u[g]=e[g];for(d=0,f=t.length;d>8&255;n[o++]=e>>16&255;n[o++]=255&t;n[o++]=t>>8&255;if(r){n[o++]=115;n[o++]=65;n[o++]=108;n[o++]=84}return s(n,0,o).subarray(0,Math.min(a.length+5,16))}function buildCipherConstructor(e,t,a,i,s){if(!(t instanceof n.Name))throw new r.FormatError("Invalid crypt filter name.");const o=e.get(t.name);let c;null!=o&&(c=o.get("CFM"));if(!c||"None"===c.name)return function cipherTransformFactoryBuildCipherConstructorNone(){return new NullCipher};if("V2"===c.name)return function cipherTransformFactoryBuildCipherConstructorV2(){return new ARCFourCipher(buildObjectKey(a,i,s,!1))};if("AESV2"===c.name)return function cipherTransformFactoryBuildCipherConstructorAESV2(){return new AES128Cipher(buildObjectKey(a,i,s,!0))};if("AESV3"===c.name)return function cipherTransformFactoryBuildCipherConstructorAESV3(){return new AES256Cipher(s)};throw new r.FormatError("Unknown crypto method")}return class CipherTransformFactory{constructor(a,i,o){const c=a.get("Filter");if(!(0,n.isName)(c,"Standard"))throw new r.FormatError("unknown encryption method");this.filterName=c.name;this.dict=a;const h=a.get("V");if(!Number.isInteger(h)||1!==h&&2!==h&&4!==h&&5!==h)throw new r.FormatError("unsupported encryption algorithm");this.algorithm=h;let u=a.get("Length");if(!u)if(h<=3)u=40;else{const e=a.get("CF"),t=a.get("StmF");if(e instanceof n.Dict&&t instanceof n.Name){e.suppressEncryption=!0;const a=e.get(t.name);u=a&&a.get("Length")||128;u<40&&(u<<=3)}}if(!Number.isInteger(u)||u<40||u%8!=0)throw new r.FormatError("invalid key length");const d=(0,r.stringToBytes)(a.get("O")).subarray(0,32),f=(0,r.stringToBytes)(a.get("U")).subarray(0,32),g=a.get("P"),p=a.get("R"),m=(4===h||5===h)&&!1!==a.get("EncryptMetadata");this.encryptMetadata=m;const b=(0,r.stringToBytes)(i);let y,w;if(o){if(6===p)try{o=(0,r.utf8StringToString)(o)}catch(e){(0,r.warn)("CipherTransformFactory: Unable to convert UTF8 encoded password.")}y=(0,r.stringToBytes)(o)}if(5!==h)w=prepareKeyData(b,y,d,f,g,p,u,m);else{const e=(0,r.stringToBytes)(a.get("O")).subarray(32,40),t=(0,r.stringToBytes)(a.get("O")).subarray(40,48),n=(0,r.stringToBytes)(a.get("U")).subarray(0,48),i=(0,r.stringToBytes)(a.get("U")).subarray(32,40),s=(0,r.stringToBytes)(a.get("U")).subarray(40,48),o=(0,r.stringToBytes)(a.get("OE")),c=(0,r.stringToBytes)(a.get("UE"));(0,r.stringToBytes)(a.get("Perms"));w=function createEncryptionKey20(e,t,a,r,n,i,s,o,c,h,u,d){if(t){const e=Math.min(127,t.length);t=t.subarray(0,e)}else t=[];let f;f=6===e?new l:new PDF17;return f.checkUserPassword(t,o,s)?f.getUserKey(t,c,u):t.length&&f.checkOwnerPassword(t,r,i,a)?f.getOwnerKey(t,n,i,h):null}(p,y,d,e,t,n,f,i,s,o,c)}if(!w&&!o)throw new r.PasswordException("No password given",r.PasswordResponses.NEED_PASSWORD);if(!w&&o){const t=function decodeUserPassword(t,a,r,n){const i=new Uint8Array(32);let o=0;const c=Math.min(32,t.length);for(;o>3;if(r>=3)for(l=0;l<50;++l)h=s(h,0,h.length);let d,f;if(r>=3){f=a;const e=new Uint8Array(u);for(l=19;l>=0;l--){for(let t=0;t=4){const e=a.get("CF");e instanceof n.Dict&&(e.suppressEncryption=!0);this.cf=e;this.stmf=a.get("StmF")||t;this.strf=a.get("StrF")||t;this.eff=a.get("EFF")||this.stmf}}createCipherTransform(e,t){if(4===this.algorithm||5===this.algorithm)return new CipherTransform(buildCipherConstructor(this.cf,this.stmf,e,t,this.encryptionKey),buildCipherConstructor(this.cf,this.strf,e,t,this.encryptionKey));const a=buildObjectKey(e,t,this.encryptionKey,!1),r=function buildCipherCipherConstructor(){return new ARCFourCipher(a)};return new CipherTransform(r,r)}}}();t.CipherTransformFactory=h},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.DecryptStream=void 0;var r=a(29);class DecryptStream extends r.DecodeStream{constructor(e,t,a){super(t);this.str=e;this.dict=e.dict;this.decrypt=a;this.nextChunk=null;this.initialized=!1}readBlock(){let e;if(this.initialized)e=this.nextChunk;else{e=this.str.getBytes(512);this.initialized=!0}if(!e||0===e.length){this.eof=!0;return}this.nextChunk=this.str.getBytes(512);const t=this.nextChunk&&this.nextChunk.length>0;e=(0,this.decrypt)(e,!t);let a=this.bufferLength;const r=e.length,n=this.ensureBuffer(a+r);for(let t=0;t{Object.defineProperty(t,"__esModule",{value:!0});t.XFAFactory=void 0;var r=a(78),n=a(82),i=a(88),s=a(86),o=a(79),c=a(2),l=a(89),h=a(99);class XFAFactory{constructor(e){try{this.root=(new l.XFAParser).parse(XFAFactory._createDocument(e));const t=new n.Binder(this.root);this.form=t.bind();this.dataHandler=new i.DataHandler(this.root,t.getData());this.form[r.$globalData].template=this.form}catch(e){(0,c.warn)(`XFA - an error occurred during parsing and binding: ${e}`)}}isValid(){return this.root&&this.form}_createPagesHelper(){const e=this.form[r.$toPages]();return new Promise(((t,a)=>{const nextIteration=()=>{try{const a=e.next();a.done?t(a.value):setTimeout(nextIteration,0)}catch(e){a(e)}};setTimeout(nextIteration,0)}))}async _createPages(){try{this.pages=await this._createPagesHelper();this.dims=this.pages.children.map((e=>{const{width:t,height:a}=e.attributes.style;return[0,0,parseInt(t),parseInt(a)]}))}catch(e){(0,c.warn)(`XFA - an error occurred during layout: ${e}`)}}getBoundingBox(e){return this.dims[e]}async getNumPages(){this.pages||await this._createPages();return this.dims.length}setImages(e){this.form[r.$globalData].images=e}setFonts(e){this.form[r.$globalData].fontFinder=new s.FontFinder(e);const t=[];for(let e of this.form[r.$globalData].usedTypefaces){e=(0,o.stripQuotes)(e);this.form[r.$globalData].fontFinder.find(e)||t.push(e)}return t.length>0?t:null}appendFonts(e,t){this.form[r.$globalData].fontFinder.add(e,t)}async getPages(){this.pages||await this._createPages();const e=this.pages;this.pages=null;return e}serializeData(e){return this.dataHandler.serialize(e)}static _createDocument(e){return e["/xdp:xdp"]?Object.values(e).join(""):e["xdp:xdp"]}static getRichTextAsHtml(e){if(!e||"string"!=typeof e)return null;try{let t=new l.XFAParser(h.XhtmlNamespace,!0).parse(e);if(!["body","xhtml"].includes(t[r.$nodeName])){const e=h.XhtmlNamespace.body({});e[r.$appendChild](t);t=e}const a=t[r.$toHTML]();if(!a.success)return null;const{html:n}=a,{attributes:i}=n;if(i){i.class&&(i.class=i.class.filter((e=>!e.startsWith("xfa"))));i.dir="auto"}return{html:n,str:t[r.$text]()}}catch(e){(0,c.warn)(`XFA - an error occurred during parsing of rich text: ${e}`)}return null}}t.XFAFactory=XFAFactory},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XmlObject=t.XFAObjectArray=t.XFAObject=t.XFAAttribute=t.StringObject=t.OptionObject=t.Option10=t.Option01=t.IntegerObject=t.ContentObject=t.$uid=t.$toStyle=t.$toString=t.$toPages=t.$toHTML=t.$text=t.$tabIndex=t.$setValue=t.$setSetAttributes=t.$setId=t.$searchNode=t.$root=t.$resolvePrototypes=t.$removeChild=t.$pushPara=t.$pushGlyphs=t.$popPara=t.$onText=t.$onChildCheck=t.$onChild=t.$nsAttributes=t.$nodeName=t.$namespaceId=t.$isUsable=t.$isTransparent=t.$isThereMoreWidth=t.$isSplittable=t.$isNsAgnostic=t.$isDescendent=t.$isDataValue=t.$isCDATAXml=t.$isBindable=t.$insertAt=t.$indexOf=t.$ids=t.$hasSettableValue=t.$globalData=t.$getTemplateRoot=t.$getSubformParent=t.$getRealChildrenByNameIt=t.$getParent=t.$getNextPage=t.$getExtra=t.$getDataValue=t.$getContainedChildren=t.$getChildrenByNameIt=t.$getChildrenByName=t.$getChildrenByClass=t.$getChildren=t.$getAvailableSpace=t.$getAttributes=t.$getAttributeIt=t.$flushHTML=t.$finalize=t.$extra=t.$dump=t.$data=t.$content=t.$consumed=t.$clone=t.$cleanup=t.$cleanPage=t.$clean=t.$childrenToHTML=t.$appendChild=t.$addHTML=t.$acceptWhitespace=void 0;var r=a(79),n=a(2),i=a(8),s=a(80),o=a(81);const c=Symbol();t.$acceptWhitespace=c;const l=Symbol();t.$addHTML=l;const h=Symbol();t.$appendChild=h;const u=Symbol();t.$childrenToHTML=u;const d=Symbol();t.$clean=d;const f=Symbol();t.$cleanPage=f;const g=Symbol();t.$cleanup=g;const p=Symbol();t.$clone=p;const m=Symbol();t.$consumed=m;const b=Symbol("content");t.$content=b;const y=Symbol("data");t.$data=y;const w=Symbol();t.$dump=w;const S=Symbol("extra");t.$extra=S;const x=Symbol();t.$finalize=x;const k=Symbol();t.$flushHTML=k;const C=Symbol();t.$getAttributeIt=C;const v=Symbol();t.$getAttributes=v;const F=Symbol();t.$getAvailableSpace=F;const O=Symbol();t.$getChildrenByClass=O;const T=Symbol();t.$getChildrenByName=T;const M=Symbol();t.$getChildrenByNameIt=M;const E=Symbol();t.$getDataValue=E;const D=Symbol();t.$getExtra=D;const N=Symbol();t.$getRealChildrenByNameIt=N;const L=Symbol();t.$getChildren=L;const R=Symbol();t.$getContainedChildren=R;const j=Symbol();t.$getNextPage=j;const _=Symbol();t.$getSubformParent=_;const $=Symbol();t.$getParent=$;const U=Symbol();t.$getTemplateRoot=U;const X=Symbol();t.$globalData=X;const H=Symbol();t.$hasSettableValue=H;const q=Symbol();t.$ids=q;const z=Symbol();t.$indexOf=z;const W=Symbol();t.$insertAt=W;const G=Symbol();t.$isCDATAXml=G;const V=Symbol();t.$isBindable=V;const K=Symbol();t.$isDataValue=K;const Y=Symbol();t.$isDescendent=Y;const J=Symbol();t.$isNsAgnostic=J;const Z=Symbol();t.$isSplittable=Z;const Q=Symbol();t.$isThereMoreWidth=Q;const ee=Symbol();t.$isTransparent=ee;const te=Symbol();t.$isUsable=te;const ae=Symbol(),re=Symbol("namespaceId");t.$namespaceId=re;const ne=Symbol("nodeName");t.$nodeName=ne;const ie=Symbol();t.$nsAttributes=ie;const se=Symbol();t.$onChild=se;const oe=Symbol();t.$onChildCheck=oe;const ce=Symbol();t.$onText=ce;const le=Symbol();t.$pushGlyphs=le;const he=Symbol();t.$popPara=he;const ue=Symbol();t.$pushPara=ue;const de=Symbol();t.$removeChild=de;const fe=Symbol("root");t.$root=fe;const ge=Symbol();t.$resolvePrototypes=ge;const pe=Symbol();t.$searchNode=pe;const me=Symbol();t.$setId=me;const be=Symbol();t.$setSetAttributes=be;const ye=Symbol();t.$setValue=ye;const we=Symbol();t.$tabIndex=we;const Se=Symbol();t.$text=Se;const xe=Symbol();t.$toPages=xe;const ke=Symbol();t.$toHTML=ke;const Ce=Symbol();t.$toString=Ce;const Ae=Symbol();t.$toStyle=Ae;const ve=Symbol("uid");t.$uid=ve;const Fe=Symbol(),Oe=Symbol(),Te=Symbol(),Ie=Symbol("_children"),Me=Symbol(),Pe=Symbol(),Ee=Symbol(),Be=Symbol(),De=Symbol(),Ne=Symbol(),Le=Symbol(),Re=Symbol(),je=Symbol(),_e=Symbol("parent"),$e=Symbol(),Ue=Symbol(),Xe=Symbol();let He=0;const qe=s.NamespaceIds.datasets.id;class XFAObject{constructor(e,t,a=!1){this[re]=e;this[ne]=t;this[Le]=a;this[_e]=null;this[Ie]=[];this[ve]=`${t}${He++}`;this[X]=null}[se](e){if(!this[Le]||!this[oe](e))return!1;const t=e[ne],a=this[t];if(!(a instanceof XFAObjectArray)){null!==a&&this[de](a);this[t]=e;this[h](e);return!0}if(a.push(e)){this[h](e);return!0}let r="";this.id?r=` (id: ${this.id})`:this.name&&(r=` (name: ${this.name} ${this.h.value})`);(0,n.warn)(`XFA - node "${this[ne]}"${r} has already enough "${t}"!`);return!1}[oe](e){return this.hasOwnProperty(e[ne])&&e[re]===this[re]}[J](){return!1}[c](){return!1}[G](){return!1}[V](){return!1}[he](){this.para&&this[U]()[S].paraStack.pop()}[ue](){this[U]()[S].paraStack.push(this.para)}[me](e){this.id&&this[re]===s.NamespaceIds.template.id&&e.set(this.id,this)}[U](){return this[X].template}[Z](){return!1}[Q](){return!1}[h](e){e[_e]=this;this[Ie].push(e);!e[X]&&this[X]&&(e[X]=this[X])}[de](e){const t=this[Ie].indexOf(e);this[Ie].splice(t,1)}[H](){return this.hasOwnProperty("value")}[ye](e){}[ce](e){}[x](){}[d](e){delete this[Le];if(this[g]){e.clean(this[g]);delete this[g]}}[z](e){return this[Ie].indexOf(e)}[W](e,t){t[_e]=this;this[Ie].splice(e,0,t);!t[X]&&this[X]&&(t[X]=this[X])}[ee](){return!this.name}[ae](){return""}[Se](){return 0===this[Ie].length?this[b]:this[Ie].map((e=>e[Se]())).join("")}get[Te](){const e=Object.getPrototypeOf(this);if(!e._attributes){const t=e._attributes=new Set;for(const e of Object.getOwnPropertyNames(this)){if(null===this[e]||this[e]instanceof XFAObject||this[e]instanceof XFAObjectArray)break;t.add(e)}}return(0,n.shadow)(this,Te,e._attributes)}[Y](e){let t=this;for(;t;){if(t===e)return!0;t=t[$]()}return!1}[$](){return this[_e]}[_](){return this[$]()}[L](e=null){return e?this[e]:this[Ie]}[w](){const e=Object.create(null);this[b]&&(e.$content=this[b]);for(const t of Object.getOwnPropertyNames(this)){const a=this[t];null!==a&&(a instanceof XFAObject?e[t]=a[w]():a instanceof XFAObjectArray?a.isEmpty()||(e[t]=a.dump()):e[t]=a)}return e}[Ae](){return null}[ke](){return r.HTMLResult.EMPTY}*[R](){for(const e of this[L]())yield e}*[Be](e,t){for(const a of this[R]())if(!e||t===e.has(a[ne])){const e=this[F](),t=a[ke](e);t.success||(this[S].failingNode=a);yield t}}[k](){return null}[l](e,t){this[S].children.push(e)}[F](){}[u]({filter:e=null,include:t=!0}){if(this[S].generator){const e=this[F](),t=this[S].failingNode[ke](e);if(!t.success)return t;t.html&&this[l](t.html,t.bbox);delete this[S].failingNode}else this[S].generator=this[Be](e,t);for(;;){const e=this[S].generator.next();if(e.done)break;const t=e.value;if(!t.success)return t;t.html&&this[l](t.html,t.bbox)}this[S].generator=null;return r.HTMLResult.EMPTY}[be](e){this[Ue]=new Set(Object.keys(e))}[Ne](e){const t=this[Te],a=this[Ue];return[...e].filter((e=>t.has(e)&&!a.has(e)))}[ge](e,t=new Set){for(const a of this[Ie])a[$e](e,t)}[$e](e,t){const a=this[De](e,t);a?this[Fe](a,e,t):this[ge](e,t)}[De](e,t){const{use:a,usehref:r}=this;if(!a&&!r)return null;let i=null,s=null,c=null,l=a;if(r){l=r;r.startsWith("#som(")&&r.endsWith(")")?s=r.slice("#som(".length,r.length-1):r.startsWith(".#som(")&&r.endsWith(")")?s=r.slice(".#som(".length,r.length-1):r.startsWith("#")?c=r.slice(1):r.startsWith(".#")&&(c=r.slice(2))}else a.startsWith("#")?c=a.slice(1):s=a;this.use=this.usehref="";if(c)i=e.get(c);else{i=(0,o.searchNode)(e.get(fe),this,s,!0,!1);i&&(i=i[0])}if(!i){(0,n.warn)(`XFA - Invalid prototype reference: ${l}.`);return null}if(i[ne]!==this[ne]){(0,n.warn)(`XFA - Incompatible prototype: ${i[ne]} !== ${this[ne]}.`);return null}if(t.has(i)){(0,n.warn)("XFA - Cycle detected in prototypes use.");return null}t.add(i);const h=i[De](e,t);h&&i[Fe](h,e,t);i[ge](e,t);t.delete(i);return i}[Fe](e,t,a){if(a.has(e)){(0,n.warn)("XFA - Cycle detected in prototypes use.");return}!this[b]&&e[b]&&(this[b]=e[b]);new Set(a).add(e);for(const t of this[Ne](e[Ue])){this[t]=e[t];this[Ue]&&this[Ue].add(t)}for(const r of Object.getOwnPropertyNames(this)){if(this[Te].has(r))continue;const n=this[r],i=e[r];if(n instanceof XFAObjectArray){for(const e of n[Ie])e[$e](t,a);for(let r=n[Ie].length,s=i[Ie].length;rXFAObject[Me](e))):"object"==typeof e&&null!==e?Object.assign({},e):e}[p](){const e=Object.create(Object.getPrototypeOf(this));for(const t of Object.getOwnPropertySymbols(this))try{e[t]=this[t]}catch(a){(0,n.shadow)(e,t,this[t])}e[ve]=`${e[ne]}${He++}`;e[Ie]=[];for(const t of Object.getOwnPropertyNames(this)){if(this[Te].has(t)){e[t]=XFAObject[Me](this[t]);continue}const a=this[t];e[t]=a instanceof XFAObjectArray?new XFAObjectArray(a[Re]):null}for(const t of this[Ie]){const a=t[ne],r=t[p]();e[Ie].push(r);r[_e]=e;null===e[a]?e[a]=r:e[a][Ie].push(r)}return e}[L](e=null){return e?this[Ie].filter((t=>t[ne]===e)):this[Ie]}[O](e){return this[e]}[T](e,t,a=!0){return Array.from(this[M](e,t,a))}*[M](e,t,a=!0){if("parent"!==e){for(const a of this[Ie]){a[ne]===e&&(yield a);a.name===e&&(yield a);(t||a[ee]())&&(yield*a[M](e,t,!1))}a&&this[Te].has(e)&&(yield new XFAAttribute(this,e,this[e]))}else yield this[_e]}}t.XFAObject=XFAObject;class XFAObjectArray{constructor(e=1/0){this[Re]=e;this[Ie]=[]}push(e){if(this[Ie].length<=this[Re]){this[Ie].push(e);return!0}(0,n.warn)(`XFA - node "${e[ne]}" accepts no more than ${this[Re]} children`);return!1}isEmpty(){return 0===this[Ie].length}dump(){return 1===this[Ie].length?this[Ie][0][w]():this[Ie].map((e=>e[w]()))}[p](){const e=new XFAObjectArray(this[Re]);e[Ie]=this[Ie].map((e=>e[p]()));return e}get children(){return this[Ie]}clear(){this[Ie].length=0}}t.XFAObjectArray=XFAObjectArray;class XFAAttribute{constructor(e,t,a){this[_e]=e;this[ne]=t;this[b]=a;this[m]=!1;this[ve]="attribute"+He++}[$](){return this[_e]}[K](){return!0}[E](){return this[b].trim()}[ye](e){e=e.value||"";this[b]=e.toString()}[Se](){return this[b]}[Y](e){return this[_e]===e||this[_e][Y](e)}}t.XFAAttribute=XFAAttribute;class XmlObject extends XFAObject{constructor(e,t,a={}){super(e,t);this[b]="";this[Pe]=null;if("#text"!==t){const e=new Map;this[Oe]=e;for(const[t,r]of Object.entries(a))e.set(t,new XFAAttribute(this,t,r));if(a.hasOwnProperty(ie)){const e=a[ie].xfa.dataNode;void 0!==e&&("dataGroup"===e?this[Pe]=!1:"dataValue"===e&&(this[Pe]=!0))}}this[m]=!1}[Ce](e){const t=this[ne];if("#text"===t){e.push((0,i.encodeToXmlString)(this[b]));return}const a=(0,n.utf8StringToString)(t),r=this[re]===qe?"xfa:":"";e.push(`<${r}${a}`);for(const[t,a]of this[Oe].entries()){const r=(0,n.utf8StringToString)(t);e.push(` ${r}="${(0,i.encodeToXmlString)(a[b])}"`)}null!==this[Pe]&&(this[Pe]?e.push(' xfa:dataNode="dataValue"'):e.push(' xfa:dataNode="dataGroup"'));if(this[b]||0!==this[Ie].length){e.push(">");if(this[b])"string"==typeof this[b]?e.push((0,i.encodeToXmlString)(this[b])):this[b][Ce](e);else for(const t of this[Ie])t[Ce](e);e.push(``)}else e.push("/>")}[se](e){if(this[b]){const e=new XmlObject(this[re],"#text");this[h](e);e[b]=this[b];this[b]=""}this[h](e);return!0}[ce](e){this[b]+=e}[x](){if(this[b]&&this[Ie].length>0){const e=new XmlObject(this[re],"#text");this[h](e);e[b]=this[b];delete this[b]}}[ke](){return"#text"===this[ne]?r.HTMLResult.success({name:"#text",value:this[b]}):r.HTMLResult.EMPTY}[L](e=null){return e?this[Ie].filter((t=>t[ne]===e)):this[Ie]}[v](){return this[Oe]}[O](e){const t=this[Oe].get(e);return void 0!==t?t:this[L](e)}*[M](e,t){const a=this[Oe].get(e);a&&(yield a);for(const a of this[Ie]){a[ne]===e&&(yield a);t&&(yield*a[M](e,t))}}*[C](e,t){const a=this[Oe].get(e);!a||t&&a[m]||(yield a);for(const a of this[Ie])yield*a[C](e,t)}*[N](e,t,a){for(const r of this[Ie]){r[ne]!==e||a&&r[m]||(yield r);t&&(yield*r[N](e,t,a))}}[K](){return null===this[Pe]?0===this[Ie].length||this[Ie][0][re]===s.NamespaceIds.xhtml.id:this[Pe]}[E](){return null===this[Pe]?0===this[Ie].length?this[b].trim():this[Ie][0][re]===s.NamespaceIds.xhtml.id?this[Ie][0][Se]().trim():null:this[b].trim()}[ye](e){e=e.value||"";this[b]=e.toString()}[w](e=!1){const t=Object.create(null);e&&(t.$ns=this[re]);this[b]&&(t.$content=this[b]);t.$name=this[ne];t.children=[];for(const a of this[Ie])t.children.push(a[w](e));t.attributes=Object.create(null);for(const[e,a]of this[Oe])t.attributes[e]=a[b];return t}}t.XmlObject=XmlObject;class ContentObject extends XFAObject{constructor(e,t){super(e,t);this[b]=""}[ce](e){this[b]+=e}[x](){}}t.ContentObject=ContentObject;t.OptionObject=class OptionObject extends ContentObject{constructor(e,t,a){super(e,t);this[je]=a}[x](){this[b]=(0,r.getKeyword)({data:this[b],defaultValue:this[je][0],validate:e=>this[je].includes(e)})}[d](e){super[d](e);delete this[je]}};t.StringObject=class StringObject extends ContentObject{[x](){this[b]=this[b].trim()}};class IntegerObject extends ContentObject{constructor(e,t,a,r){super(e,t);this[Ee]=a;this[Xe]=r}[x](){this[b]=(0,r.getInteger)({data:this[b],defaultValue:this[Ee],validate:this[Xe]})}[d](e){super[d](e);delete this[Ee];delete this[Xe]}}t.IntegerObject=IntegerObject;t.Option01=class Option01 extends IntegerObject{constructor(e,t){super(e,t,0,(e=>1===e))}};t.Option10=class Option10 extends IntegerObject{constructor(e,t){super(e,t,1,(e=>0===e))}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.HTMLResult=void 0;t.getBBox=function getBBox(e){const t=-1;if(!e)return{x:t,y:t,width:t,height:t};const a=e.trim().split(/\s*,\s*/).map((e=>getMeasurement(e,"-1")));if(a.length<4||a[2]<0||a[3]<0)return{x:t,y:t,width:t,height:t};const[r,n,i,s]=a;return{x:r,y:n,width:i,height:s}};t.getColor=function getColor(e,t=[0,0,0]){let[a,r,n]=t;if(!e)return{r:a,g:r,b:n};const i=e.trim().split(/\s*,\s*/).map((e=>Math.min(Math.max(0,parseInt(e.trim(),10)),255))).map((e=>isNaN(e)?0:e));if(i.length<3)return{r:a,g:r,b:n};[a,r,n]=i;return{r:a,g:r,b:n}};t.getFloat=function getFloat({data:e,defaultValue:t,validate:a}){if(!e)return t;e=e.trim();const r=parseFloat(e);if(!isNaN(r)&&a(r))return r;return t};t.getInteger=function getInteger({data:e,defaultValue:t,validate:a}){if(!e)return t;e=e.trim();const r=parseInt(e,10);if(!isNaN(r)&&a(r))return r;return t};t.getKeyword=getKeyword;t.getMeasurement=getMeasurement;t.getRatio=function getRatio(e){if(!e)return{num:1,den:1};const t=e.trim().split(/\s*:\s*/).map((e=>parseFloat(e))).filter((e=>!isNaN(e)));1===t.length&&t.push(1);if(0===t.length)return{num:1,den:1};const[a,r]=t;return{num:a,den:r}};t.getRelevant=function getRelevant(e){if(!e)return[];return e.trim().split(/\s+/).map((e=>({excluded:"-"===e[0],viewname:e.substring(1)})))};t.getStringOption=function getStringOption(e,t){return getKeyword({data:e,defaultValue:t[0],validate:e=>t.includes(e)})};t.stripQuotes=function stripQuotes(e){if(e.startsWith("'")||e.startsWith('"'))return e.slice(1,e.length-1);return e};var r=a(2);const n={pt:e=>e,cm:e=>e/2.54*72,mm:e=>e/25.4*72,in:e=>72*e,px:e=>e},i=/([+-]?\d+\.?\d*)(.*)/;function getKeyword({data:e,defaultValue:t,validate:a}){return e&&a(e=e.trim())?e:t}function getMeasurement(e,t="0"){t=t||"0";if(!e)return getMeasurement(t);const a=e.trim().match(i);if(!a)return getMeasurement(t);const[,r,s]=a,o=parseFloat(r);if(isNaN(o))return getMeasurement(t);if(0===o)return 0;const c=n[s];return c?c(o):o}class HTMLResult{static get FAILURE(){return(0,r.shadow)(this,"FAILURE",new HTMLResult(!1,null,null,null))}static get EMPTY(){return(0,r.shadow)(this,"EMPTY",new HTMLResult(!0,null,null,null))}constructor(e,t,a,r){this.success=e;this.html=t;this.bbox=a;this.breakNode=r}isBreak(){return!!this.breakNode}static breakNode(e){return new HTMLResult(!1,null,null,e)}static success(e,t=null){return new HTMLResult(!0,e,t,null)}}t.HTMLResult=HTMLResult},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.NamespaceIds=t.$buildXFAObject=void 0;const a=Symbol();t.$buildXFAObject=a;t.NamespaceIds={config:{id:0,check:e=>e.startsWith("http://www.xfa.org/schema/xci/")},connectionSet:{id:1,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-connection-set/")},datasets:{id:2,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-data/")},form:{id:3,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-form/")},localeSet:{id:4,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-locale-set/")},pdf:{id:5,check:e=>"http://ns.adobe.com/xdp/pdf/"===e},signature:{id:6,check:e=>"http://www.w3.org/2000/09/xmldsig#"===e},sourceSet:{id:7,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-source-set/")},stylesheet:{id:8,check:e=>"http://www.w3.org/1999/XSL/Transform"===e},template:{id:9,check:e=>e.startsWith("http://www.xfa.org/schema/xfa-template/")},xdc:{id:10,check:e=>e.startsWith("http://www.xfa.org/schema/xdc/")},xdp:{id:11,check:e=>"http://ns.adobe.com/xdp/"===e},xfdf:{id:12,check:e=>"http://ns.adobe.com/xfdf/"===e},xhtml:{id:13,check:e=>"http://www.w3.org/1999/xhtml"===e},xmpmeta:{id:14,check:e=>"http://ns.adobe.com/xmpmeta/"===e}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.createDataNode=function createDataNode(e,t,a){const n=parseExpression(a);if(!n)return null;if(n.some((e=>e.operator===l)))return null;const s=f.get(n[0].name);let o=0;if(s){e=s(e,t);o=1}else e=t||e;for(let t=n.length;o0&&p.push(e)}if(0!==p.length||u||0!==d)e=isFinite(f)?p.filter((e=>fe[f])):p.reduce(((e,t)=>e.concat(t)),[]);else{const a=t[r.$getParent]();if(!(t=a))return null;d=-1;e=[t]}}if(0===e.length)return null;return e};var r=a(78),n=a(80),i=a(2);const s=/^[^.[]+/,o=/^[^\]]+/,c=0,l=1,h=2,u=3,d=4,f=new Map([["$data",(e,t)=>e.datasets?e.datasets.data:e],["$record",(e,t)=>(e.datasets?e.datasets.data:e)[r.$getChildren]()[0]],["$template",(e,t)=>e.template],["$connectionSet",(e,t)=>e.connectionSet],["$form",(e,t)=>e.form],["$layout",(e,t)=>e.layout],["$host",(e,t)=>e.host],["$dataWindow",(e,t)=>e.dataWindow],["$event",(e,t)=>e.event],["!",(e,t)=>e.datasets],["$xfa",(e,t)=>e],["xfa",(e,t)=>e],["$",(e,t)=>t]]),g=new WeakMap,p=n.NamespaceIds.datasets.id;function parseExpression(e,t,a=!0){let r=e.match(s);if(!r)return null;let[n]=r;const f=[{name:n,cacheName:"."+n,index:0,js:null,formCalc:null,operator:c}];let g=n.length;for(;g{Object.defineProperty(t,"__esModule",{value:!0});t.Binder=void 0;var r=a(78),n=a(83),i=a(81),s=a(80),o=a(2);const c=s.NamespaceIds.datasets.id;function createText(e){const t=new n.Text({});t[r.$content]=e;return t}t.Binder=class Binder{constructor(e){this.root=e;this.datasets=e.datasets;e.datasets&&e.datasets.data?this.data=e.datasets.data:this.data=new r.XmlObject(s.NamespaceIds.datasets.id,"data");this.emptyMerge=0===this.data[r.$getChildren]().length;this.root.form=this.form=e.template[r.$clone]()}_isConsumeData(){return!this.emptyMerge&&this._mergeMode}_isMatchTemplate(){return!this._isConsumeData()}bind(){this._bindElement(this.form,this.data);return this.form}getData(){return this.data}_bindValue(e,t,a){e[r.$data]=t;if(e[r.$hasSettableValue]())if(t[r.$isDataValue]()){const a=t[r.$getDataValue]();e[r.$setValue](createText(a))}else if(e instanceof n.Field&&e.ui&&e.ui.choiceList&&"multiSelect"===e.ui.choiceList.open){const a=t[r.$getChildren]().map((e=>e[r.$content].trim())).join("\n");e[r.$setValue](createText(a))}else this._isConsumeData()&&(0,o.warn)("XFA - Nodes haven't the same type.");else!t[r.$isDataValue]()||this._isMatchTemplate()?this._bindElement(e,t):(0,o.warn)("XFA - Nodes haven't the same type.")}_findDataByNameToConsume(e,t,a,n){if(!e)return null;let i,o;for(let n=0;n<3;n++){i=a[r.$getRealChildrenByNameIt](e,!1,!0);for(;;){o=i.next().value;if(!o)break;if(t===o[r.$isDataValue]())return o}if(a[r.$namespaceId]===s.NamespaceIds.datasets.id&&"data"===a[r.$nodeName])break;a=a[r.$getParent]()}if(!n)return null;i=this.data[r.$getRealChildrenByNameIt](e,!0,!1);o=i.next().value;if(o)return o;i=this.data[r.$getAttributeIt](e,!0);o=i.next().value;return o&&o[r.$isDataValue]()?o:null}_setProperties(e,t){if(e.hasOwnProperty("setProperty"))for(const{ref:a,target:s,connection:c}of e.setProperty.children){if(c)continue;if(!a)continue;const l=(0,i.searchNode)(this.root,t,a,!1,!1);if(!l){(0,o.warn)(`XFA - Invalid reference: ${a}.`);continue}const[h]=l;if(!h[r.$isDescendent](this.data)){(0,o.warn)("XFA - Invalid node: must be a data node.");continue}const u=(0,i.searchNode)(this.root,e,s,!1,!1);if(!u){(0,o.warn)(`XFA - Invalid target: ${s}.`);continue}const[d]=u;if(!d[r.$isDescendent](e)){(0,o.warn)("XFA - Invalid target: must be a property or subproperty.");continue}const f=d[r.$getParent]();if(d instanceof n.SetProperty||f instanceof n.SetProperty){(0,o.warn)("XFA - Invalid target: cannot be a setProperty or one of its properties.");continue}if(d instanceof n.BindItems||f instanceof n.BindItems){(0,o.warn)("XFA - Invalid target: cannot be a bindItems or one of its properties.");continue}const g=h[r.$text](),p=d[r.$nodeName];if(d instanceof r.XFAAttribute){const e=Object.create(null);e[p]=g;const t=Reflect.construct(Object.getPrototypeOf(f).constructor,[e]);f[p]=t[p]}else if(d.hasOwnProperty(r.$content)){d[r.$data]=h;d[r.$content]=g;d[r.$finalize]()}else(0,o.warn)("XFA - Invalid node to use in setProperty")}}_bindItems(e,t){if(!e.hasOwnProperty("items")||!e.hasOwnProperty("bindItems")||e.bindItems.isEmpty())return;for(const t of e.items.children)e[r.$removeChild](t);e.items.clear();const a=new n.Items({}),s=new n.Items({});e[r.$appendChild](a);e.items.push(a);e[r.$appendChild](s);e.items.push(s);for(const{ref:n,labelRef:c,valueRef:l,connection:h}of e.bindItems.children){if(h)continue;if(!n)continue;const e=(0,i.searchNode)(this.root,t,n,!1,!1);if(e)for(const t of e){if(!t[r.$isDescendent](this.datasets)){(0,o.warn)(`XFA - Invalid ref (${n}): must be a datasets child.`);continue}const e=(0,i.searchNode)(this.root,t,c,!0,!1);if(!e){(0,o.warn)(`XFA - Invalid label: ${c}.`);continue}const[h]=e;if(!h[r.$isDescendent](this.datasets)){(0,o.warn)("XFA - Invalid label: must be a datasets child.");continue}const u=(0,i.searchNode)(this.root,t,l,!0,!1);if(!u){(0,o.warn)(`XFA - Invalid value: ${l}.`);continue}const[d]=u;if(!d[r.$isDescendent](this.datasets)){(0,o.warn)("XFA - Invalid value: must be a datasets child.");continue}const f=createText(h[r.$text]()),g=createText(d[r.$text]());a[r.$appendChild](f);a.text.push(f);s[r.$appendChild](g);s.text.push(g)}else(0,o.warn)(`XFA - Invalid reference: ${n}.`)}}_bindOccurrences(e,t,a){let n;if(t.length>1){n=e[r.$clone]();n[r.$removeChild](n.occur);n.occur=null}this._bindValue(e,t[0],a);this._setProperties(e,t[0]);this._bindItems(e,t[0]);if(1===t.length)return;const i=e[r.$getParent](),s=e[r.$nodeName],o=i[r.$indexOf](e);for(let e=1,c=t.length;et.name===e.name)).length:a[n].children.length;const s=a[r.$indexOf](e)+1,o=t.initial-i;if(o){const t=e[r.$clone]();t[r.$removeChild](t.occur);t.occur=null;a[n].push(t);a[r.$insertAt](s,t);for(let e=1;e0)this._bindOccurrences(n,[e[0]],null);else if(this.emptyMerge){const e=t[r.$namespaceId]===c?-1:t[r.$namespaceId],a=n[r.$data]=new r.XmlObject(e,n.name||"root");t[r.$appendChild](a);this._bindElement(n,a)}continue}if(!n[r.$isBindable]())continue;let e=!1,s=null,l=null,h=null;if(n.bind){switch(n.bind.match){case"none":this._setAndBind(n,t);continue;case"global":e=!0;break;case"dataRef":if(!n.bind.ref){(0,o.warn)(`XFA - ref is empty in node ${n[r.$nodeName]}.`);this._setAndBind(n,t);continue}l=n.bind.ref}n.bind.picture&&(s=n.bind.picture[r.$content])}const[u,d]=this._getOccurInfo(n);if(l){h=(0,i.searchNode)(this.root,t,l,!0,!1);if(null===h){h=(0,i.createDataNode)(this.data,t,l);if(!h)continue;this._isConsumeData()&&(h[r.$consumed]=!0);this._setAndBind(n,h);continue}this._isConsumeData()&&(h=h.filter((e=>!e[r.$consumed])));h.length>d?h=h.slice(0,d):0===h.length&&(h=null);h&&this._isConsumeData()&&h.forEach((e=>{e[r.$consumed]=!0}))}else{if(!n.name){this._setAndBind(n,t);continue}if(this._isConsumeData()){const a=[];for(;a.length0?a:null}else{h=t[r.$getRealChildrenByNameIt](n.name,!1,this.emptyMerge).next().value;if(!h){if(0===u){a.push(n);continue}const e=t[r.$namespaceId]===c?-1:t[r.$namespaceId];h=n[r.$data]=new r.XmlObject(e,n.name);this.emptyMerge&&(h[r.$consumed]=!0);t[r.$appendChild](h);this._setAndBind(n,h);continue}this.emptyMerge&&(h[r.$consumed]=!0);h=[h]}}h?this._bindOccurrences(n,h,s):u>0?this._setAndBind(n,t):a.push(n)}a.forEach((e=>e[r.$getParent]()[r.$removeChild](e)))}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Value=t.Text=t.TemplateNamespace=t.Template=t.SetProperty=t.Items=t.Field=t.BindItems=void 0;var r=a(78),n=a(80),i=a(84),s=a(85),o=a(79),c=a(2),l=a(86),h=a(8),u=a(81);const d=n.NamespaceIds.template.id,f="http://www.w3.org/2000/svg",g=/^H(\d+)$/,p=new Set(["image/gif","image/jpeg","image/jpg","image/pjpeg","image/png","image/apng","image/x-png","image/bmp","image/x-ms-bmp","image/tiff","image/tif","application/octet-stream"]),m=[[[66,77],"image/bmp"],[[255,216,255],"image/jpeg"],[[73,73,42,0],"image/tiff"],[[77,77,0,42],"image/tiff"],[[71,73,70,56,57,97],"image/gif"],[[137,80,78,71,13,10,26,10],"image/png"]];function getBorderDims(e){if(!e||!e.border)return{w:0,h:0};const t=e.border[r.$getExtra]();return t?{w:t.widths[0]+t.widths[2]+t.insets[0]+t.insets[2],h:t.widths[1]+t.widths[3]+t.insets[1]+t.insets[3]}:{w:0,h:0}}function hasMargin(e){return e.margin&&(e.margin.topInset||e.margin.rightInset||e.margin.bottomInset||e.margin.leftInset)}function _setValue(e,t){if(!e.value){const t=new Value({});e[r.$appendChild](t);e.value=t}e.value[r.$setValue](t)}function*getContainedChildren(e){for(const t of e[r.$getChildren]())t instanceof SubformSet?yield*t[r.$getContainedChildren]():yield t}function setTabIndex(e){for(;e;){if(!e.traversal){e[r.$tabIndex]=e[r.$getParent]()[r.$tabIndex];return}if(e[r.$tabIndex])return;let t=null;for(const a of e.traversal[r.$getChildren]())if("next"===a.operation){t=a;break}if(!t||!t.ref){e[r.$tabIndex]=e[r.$getParent]()[r.$tabIndex];return}const a=e[r.$getTemplateRoot]();e[r.$tabIndex]=++a[r.$tabIndex];const n=a[r.$searchNode](t.ref,e);if(!n)return;e=n[0]}}function applyAssist(e,t){const a=e.assist;if(a){const e=a[r.$toHTML]();e&&(t.title=e);const n=a.role.match(g);if(n){const e="heading",a=n[1];t.role=e;t["aria-level"]=a}}if("table"===e.layout)t.role="table";else if("row"===e.layout)t.role="row";else{const a=e[r.$getParent]();"row"===a.layout&&(a.assist&&"TH"===a.assist.role?t.role="columnheader":t.role="cell")}}function ariaLabel(e){if(!e.assist)return null;const t=e.assist;return t.speak&&""!==t.speak[r.$content]?t.speak[r.$content]:t.toolTip?t.toolTip[r.$content]:null}function valueToHtml(e){return o.HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:Object.create(null)},children:[{name:"span",attributes:{style:Object.create(null)},value:e}]})}function setFirstUnsplittable(e){const t=e[r.$getTemplateRoot]();if(null===t[r.$extra].firstUnsplittable){t[r.$extra].firstUnsplittable=e;t[r.$extra].noLayoutFailure=!0}}function unsetFirstUnsplittable(e){const t=e[r.$getTemplateRoot]();t[r.$extra].firstUnsplittable===e&&(t[r.$extra].noLayoutFailure=!1)}function handleBreak(e){if(e[r.$extra])return!1;e[r.$extra]=Object.create(null);if("auto"===e.targetType)return!1;const t=e[r.$getTemplateRoot]();let a=null;if(e.target){a=t[r.$searchNode](e.target,e[r.$getParent]());if(!a)return!1;a=a[0]}const{currentPageArea:n,currentContentArea:i}=t[r.$extra];if("pageArea"===e.targetType){a instanceof PageArea||(a=null);if(e.startNew){e[r.$extra].target=a||n;return!0}if(a&&a!==n){e[r.$extra].target=a;return!0}return!1}a instanceof ContentArea||(a=null);const s=a&&a[r.$getParent]();let o,c=s;if(e.startNew)if(a){const e=s.contentArea.children,t=e.indexOf(i),r=e.indexOf(a);-1!==t&&te;n[r.$extra].noLayoutFailure=!0;const o=t[r.$toHTML](a);e[r.$addHTML](o.html,o.bbox);n[r.$extra].noLayoutFailure=i;t[r.$getSubformParent]=s}class AppearanceFilter extends r.StringObject{constructor(e){super(d,"appearanceFilter");this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||""}}class Arc extends r.XFAObject{constructor(e){super(d,"arc",!0);this.circular=(0,o.getInteger)({data:e.circular,defaultValue:0,validate:e=>1===e});this.hand=(0,o.getStringOption)(e.hand,["even","left","right"]);this.id=e.id||"";this.startAngle=(0,o.getFloat)({data:e.startAngle,defaultValue:0,validate:e=>!0});this.sweepAngle=(0,o.getFloat)({data:e.sweepAngle,defaultValue:360,validate:e=>!0});this.use=e.use||"";this.usehref=e.usehref||"";this.edge=null;this.fill=null}[r.$toHTML](){const e=this.edge?this.edge:new Edge({}),t=e[r.$toStyle](),a=Object.create(null);this.fill&&"visible"===this.fill.presence?Object.assign(a,this.fill[r.$toStyle]()):a.fill="transparent";a.strokeWidth=(0,s.measureToString)("visible"===e.presence?e.thickness:0);a.stroke=t.color;let n;const i={xmlns:f,style:{width:"100%",height:"100%",overflow:"visible"}};if(360===this.sweepAngle)n={name:"ellipse",attributes:{xmlns:f,cx:"50%",cy:"50%",rx:"50%",ry:"50%",style:a}};else{const e=this.startAngle*Math.PI/180,t=this.sweepAngle*Math.PI/180,r=this.sweepAngle>180?1:0,[s,o,c,l]=[50*(1+Math.cos(e)),50*(1-Math.sin(e)),50*(1+Math.cos(e+t)),50*(1-Math.sin(e+t))];n={name:"path",attributes:{xmlns:f,d:`M ${s} ${o} A 50 50 0 ${r} 0 ${c} ${l}`,vectorEffect:"non-scaling-stroke",style:a}};Object.assign(i,{viewBox:"0 0 100 100",preserveAspectRatio:"none"})}const c={name:"svg",children:[n],attributes:i};if(hasMargin(this[r.$getParent]()[r.$getParent]()))return o.HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[c]});c.attributes.style.position="absolute";return o.HTMLResult.success(c)}}class Area extends r.XFAObject{constructor(e){super(d,"area",!0);this.colSpan=(0,o.getInteger)({data:e.colSpan,defaultValue:1,validate:e=>e>=1||-1===e});this.id=e.id||"";this.name=e.name||"";this.relevant=(0,o.getRelevant)(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.x=(0,o.getMeasurement)(e.x,"0pt");this.y=(0,o.getMeasurement)(e.y,"0pt");this.desc=null;this.extras=null;this.area=new r.XFAObjectArray;this.draw=new r.XFAObjectArray;this.exObject=new r.XFAObjectArray;this.exclGroup=new r.XFAObjectArray;this.field=new r.XFAObjectArray;this.subform=new r.XFAObjectArray;this.subformSet=new r.XFAObjectArray}*[r.$getContainedChildren](){yield*getContainedChildren(this)}[r.$isTransparent](){return!0}[r.$isBindable](){return!0}[r.$addHTML](e,t){const[a,n,i,s]=t;this[r.$extra].width=Math.max(this[r.$extra].width,a+i);this[r.$extra].height=Math.max(this[r.$extra].height,n+s);this[r.$extra].children.push(e)}[r.$getAvailableSpace](){return this[r.$extra].availableSpace}[r.$toHTML](e){const t=(0,s.toStyle)(this,"position"),a={style:t,id:this[r.$uid],class:["xfaArea"]};(0,s.isPrintOnly)(this)&&a.class.push("xfaPrintOnly");this.name&&(a.xfaName=this.name);const n=[];this[r.$extra]={children:n,width:0,height:0,availableSpace:e};const i=this[r.$childrenToHTML]({filter:new Set(["area","draw","field","exclGroup","subform","subformSet"]),include:!0});if(!i.success){if(i.isBreak())return i;delete this[r.$extra];return o.HTMLResult.FAILURE}t.width=(0,s.measureToString)(this[r.$extra].width);t.height=(0,s.measureToString)(this[r.$extra].height);const c={name:"div",attributes:a,children:n},l=[this.x,this.y,this[r.$extra].width,this[r.$extra].height];delete this[r.$extra];return o.HTMLResult.success(c,l)}}class Assist extends r.XFAObject{constructor(e){super(d,"assist",!0);this.id=e.id||"";this.role=e.role||"";this.use=e.use||"";this.usehref=e.usehref||"";this.speak=null;this.toolTip=null}[r.$toHTML](){return this.toolTip&&this.toolTip[r.$content]?this.toolTip[r.$content]:null}}class Barcode extends r.XFAObject{constructor(e){super(d,"barcode",!0);this.charEncoding=(0,o.getKeyword)({data:e.charEncoding?e.charEncoding.toLowerCase():"",defaultValue:"",validate:e=>["utf-8","big-five","fontspecific","gbk","gb-18030","gb-2312","ksc-5601","none","shift-jis","ucs-2","utf-16"].includes(e)||e.match(/iso-8859-\d{2}/)});this.checksum=(0,o.getStringOption)(e.checksum,["none","1mod10","1mod10_1mod11","2mod10","auto"]);this.dataColumnCount=(0,o.getInteger)({data:e.dataColumnCount,defaultValue:-1,validate:e=>e>=0});this.dataLength=(0,o.getInteger)({data:e.dataLength,defaultValue:-1,validate:e=>e>=0});this.dataPrep=(0,o.getStringOption)(e.dataPrep,["none","flateCompress"]);this.dataRowCount=(0,o.getInteger)({data:e.dataRowCount,defaultValue:-1,validate:e=>e>=0});this.endChar=e.endChar||"";this.errorCorrectionLevel=(0,o.getInteger)({data:e.errorCorrectionLevel,defaultValue:-1,validate:e=>e>=0&&e<=8});this.id=e.id||"";this.moduleHeight=(0,o.getMeasurement)(e.moduleHeight,"5mm");this.moduleWidth=(0,o.getMeasurement)(e.moduleWidth,"0.25mm");this.printCheckDigit=(0,o.getInteger)({data:e.printCheckDigit,defaultValue:0,validate:e=>1===e});this.rowColumnRatio=(0,o.getRatio)(e.rowColumnRatio);this.startChar=e.startChar||"";this.textLocation=(0,o.getStringOption)(e.textLocation,["below","above","aboveEmbedded","belowEmbedded","none"]);this.truncate=(0,o.getInteger)({data:e.truncate,defaultValue:0,validate:e=>1===e});this.type=(0,o.getStringOption)(e.type?e.type.toLowerCase():"",["aztec","codabar","code2of5industrial","code2of5interleaved","code2of5matrix","code2of5standard","code3of9","code3of9extended","code11","code49","code93","code128","code128a","code128b","code128c","code128sscc","datamatrix","ean8","ean8add2","ean8add5","ean13","ean13add2","ean13add5","ean13pwcd","fim","logmars","maxicode","msi","pdf417","pdf417macro","plessey","postauscust2","postauscust3","postausreplypaid","postausstandard","postukrm4scc","postusdpbc","postusimb","postusstandard","postus5zip","qrcode","rfid","rss14","rss14expanded","rss14limited","rss14stacked","rss14stackedomni","rss14truncated","telepen","ucc128","ucc128random","ucc128sscc","upca","upcaadd2","upcaadd5","upcapwcd","upce","upceadd2","upceadd5","upcean2","upcean5","upsmaxicode"]);this.upsMode=(0,o.getStringOption)(e.upsMode,["usCarrier","internationalCarrier","secureSymbol","standardSymbol"]);this.use=e.use||"";this.usehref=e.usehref||"";this.wideNarrowRatio=(0,o.getRatio)(e.wideNarrowRatio);this.encrypt=null;this.extras=null}}class Bind extends r.XFAObject{constructor(e){super(d,"bind",!0);this.match=(0,o.getStringOption)(e.match,["once","dataRef","global","none"]);this.ref=e.ref||"";this.picture=null}}class BindItems extends r.XFAObject{constructor(e){super(d,"bindItems");this.connection=e.connection||"";this.labelRef=e.labelRef||"";this.ref=e.ref||"";this.valueRef=e.valueRef||""}}t.BindItems=BindItems;class Bookend extends r.XFAObject{constructor(e){super(d,"bookend");this.id=e.id||"";this.leader=e.leader||"";this.trailer=e.trailer||"";this.use=e.use||"";this.usehref=e.usehref||""}}class BooleanElement extends r.Option01{constructor(e){super(d,"boolean");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$toHTML](e){return valueToHtml(1===this[r.$content]?"1":"0")}}class Border extends r.XFAObject{constructor(e){super(d,"border",!0);this.break=(0,o.getStringOption)(e.break,["close","open"]);this.hand=(0,o.getStringOption)(e.hand,["even","left","right"]);this.id=e.id||"";this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.relevant=(0,o.getRelevant)(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.corner=new r.XFAObjectArray(4);this.edge=new r.XFAObjectArray(4);this.extras=null;this.fill=null;this.margin=null}[r.$getExtra](){if(!this[r.$extra]){const e=this.edge.children.slice();if(e.length<4){const t=e[e.length-1]||new Edge({});for(let a=e.length;a<4;a++)e.push(t)}const t=e.map((e=>e.thickness)),a=[0,0,0,0];if(this.margin){a[0]=this.margin.topInset;a[1]=this.margin.rightInset;a[2]=this.margin.bottomInset;a[3]=this.margin.leftInset}this[r.$extra]={widths:t,insets:a,edges:e}}return this[r.$extra]}[r.$toStyle](){const{edges:e}=this[r.$getExtra](),t=e.map((e=>{const t=e[r.$toStyle]();t.color=t.color||"#000000";return t})),a=Object.create(null);this.margin&&Object.assign(a,this.margin[r.$toStyle]());this.fill&&"visible"===this.fill.presence&&Object.assign(a,this.fill[r.$toStyle]());if(this.corner.children.some((e=>0!==e.radius))){const e=this.corner.children.map((e=>e[r.$toStyle]()));if(2===e.length||3===e.length){const t=e[e.length-1];for(let a=e.length;a<4;a++)e.push(t)}a.borderRadius=e.map((e=>e.radius)).join(" ")}switch(this.presence){case"invisible":case"hidden":a.borderStyle="";break;case"inactive":a.borderStyle="none";break;default:a.borderStyle=t.map((e=>e.style)).join(" ")}a.borderWidth=t.map((e=>e.width)).join(" ");a.borderColor=t.map((e=>e.color)).join(" ");return a}}class Break extends r.XFAObject{constructor(e){super(d,"break",!0);this.after=(0,o.getStringOption)(e.after,["auto","contentArea","pageArea","pageEven","pageOdd"]);this.afterTarget=e.afterTarget||"";this.before=(0,o.getStringOption)(e.before,["auto","contentArea","pageArea","pageEven","pageOdd"]);this.beforeTarget=e.beforeTarget||"";this.bookendLeader=e.bookendLeader||"";this.bookendTrailer=e.bookendTrailer||"";this.id=e.id||"";this.overflowLeader=e.overflowLeader||"";this.overflowTarget=e.overflowTarget||"";this.overflowTrailer=e.overflowTrailer||"";this.startNew=(0,o.getInteger)({data:e.startNew,defaultValue:0,validate:e=>1===e});this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}}class BreakAfter extends r.XFAObject{constructor(e){super(d,"breakAfter",!0);this.id=e.id||"";this.leader=e.leader||"";this.startNew=(0,o.getInteger)({data:e.startNew,defaultValue:0,validate:e=>1===e});this.target=e.target||"";this.targetType=(0,o.getStringOption)(e.targetType,["auto","contentArea","pageArea"]);this.trailer=e.trailer||"";this.use=e.use||"";this.usehref=e.usehref||"";this.script=null}}class BreakBefore extends r.XFAObject{constructor(e){super(d,"breakBefore",!0);this.id=e.id||"";this.leader=e.leader||"";this.startNew=(0,o.getInteger)({data:e.startNew,defaultValue:0,validate:e=>1===e});this.target=e.target||"";this.targetType=(0,o.getStringOption)(e.targetType,["auto","contentArea","pageArea"]);this.trailer=e.trailer||"";this.use=e.use||"";this.usehref=e.usehref||"";this.script=null}[r.$toHTML](e){this[r.$extra]={};return o.HTMLResult.FAILURE}}class Button extends r.XFAObject{constructor(e){super(d,"button",!0);this.highlight=(0,o.getStringOption)(e.highlight,["inverted","none","outline","push"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}[r.$toHTML](e){const t=this[r.$getParent]()[r.$getParent](),a={name:"button",attributes:{id:this[r.$uid],class:["xfaButton"],style:{}},children:[]};for(const e of t.event.children){if("click"!==e.activity||!e.script)continue;const t=(0,h.recoverJsURL)(e.script[r.$content]);if(!t)continue;const n=(0,s.fixURL)(t.url);n&&a.children.push({name:"a",attributes:{id:"link"+this[r.$uid],href:n,newWindow:t.newWindow,class:["xfaLink"],style:{}},children:[]})}return o.HTMLResult.success(a)}}class Calculate extends r.XFAObject{constructor(e){super(d,"calculate",!0);this.id=e.id||"";this.override=(0,o.getStringOption)(e.override,["disabled","error","ignore","warning"]);this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.message=null;this.script=null}}class Caption extends r.XFAObject{constructor(e){super(d,"caption",!0);this.id=e.id||"";this.placement=(0,o.getStringOption)(e.placement,["left","bottom","inline","right","top"]);this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.reserve=Math.ceil((0,o.getMeasurement)(e.reserve));this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.font=null;this.margin=null;this.para=null;this.value=null}[r.$setValue](e){_setValue(this,e)}[r.$getExtra](e){if(!this[r.$extra]){let{width:t,height:a}=e;switch(this.placement){case"left":case"right":case"inline":t=this.reserve<=0?t:this.reserve;break;case"top":case"bottom":a=this.reserve<=0?a:this.reserve}this[r.$extra]=(0,s.layoutNode)(this,{width:t,height:a})}return this[r.$extra]}[r.$toHTML](e){if(!this.value)return o.HTMLResult.EMPTY;this[r.$pushPara]();const t=this.value[r.$toHTML](e).html;if(!t){this[r.$popPara]();return o.HTMLResult.EMPTY}const a=this.reserve;if(this.reserve<=0){const{w:t,h:a}=this[r.$getExtra](e);switch(this.placement){case"left":case"right":case"inline":this.reserve=t;break;case"top":case"bottom":this.reserve=a}}const n=[];"string"==typeof t?n.push({name:"#text",value:t}):n.push(t);const i=(0,s.toStyle)(this,"font","margin","visibility");switch(this.placement){case"left":case"right":this.reserve>0&&(i.width=(0,s.measureToString)(this.reserve));break;case"top":case"bottom":this.reserve>0&&(i.height=(0,s.measureToString)(this.reserve))}(0,s.setPara)(this,null,t);this[r.$popPara]();this.reserve=a;return o.HTMLResult.success({name:"div",attributes:{style:i,class:["xfaCaption"]},children:n})}}class Certificate extends r.StringObject{constructor(e){super(d,"certificate");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Certificates extends r.XFAObject{constructor(e){super(d,"certificates",!0);this.credentialServerPolicy=(0,o.getStringOption)(e.credentialServerPolicy,["optional","required"]);this.id=e.id||"";this.url=e.url||"";this.urlPolicy=e.urlPolicy||"";this.use=e.use||"";this.usehref=e.usehref||"";this.encryption=null;this.issuers=null;this.keyUsage=null;this.oids=null;this.signing=null;this.subjectDNs=null}}class CheckButton extends r.XFAObject{constructor(e){super(d,"checkButton",!0);this.id=e.id||"";this.mark=(0,o.getStringOption)(e.mark,["default","check","circle","cross","diamond","square","star"]);this.shape=(0,o.getStringOption)(e.shape,["square","round"]);this.size=(0,o.getMeasurement)(e.size,"10pt");this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.extras=null;this.margin=null}[r.$toHTML](e){const t=(0,s.toStyle)("margin"),a=(0,s.measureToString)(this.size);t.width=t.height=a;let n,i,c;const l=this[r.$getParent]()[r.$getParent](),h=l.items.children.length&&l.items.children[0][r.$toHTML]().html||[],u={on:(void 0!==h[0]?h[0]:"on").toString(),off:(void 0!==h[1]?h[1]:"off").toString()},d=(l.value&&l.value[r.$text]()||"off")===u.on||void 0,f=l[r.$getSubformParent](),g=l[r.$uid];let p;if(f instanceof ExclGroup){c=f[r.$uid];n="radio";i="xfaRadio";p=f[r.$data]&&f[r.$data][r.$uid]||f[r.$uid]}else{n="checkbox";i="xfaCheckbox";p=l[r.$data]&&l[r.$data][r.$uid]||l[r.$uid]}const m={name:"input",attributes:{class:[i],style:t,fieldId:g,dataId:p,type:n,checked:d,xfaOn:u.on,xfaOff:u.off,"aria-label":ariaLabel(l)}};c&&(m.attributes.name=c);return o.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[m]})}}class ChoiceList extends r.XFAObject{constructor(e){super(d,"choiceList",!0);this.commitOn=(0,o.getStringOption)(e.commitOn,["select","exit"]);this.id=e.id||"";this.open=(0,o.getStringOption)(e.open,["userControl","always","multiSelect","onEntry"]);this.textEntry=(0,o.getInteger)({data:e.textEntry,defaultValue:0,validate:e=>1===e});this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.extras=null;this.margin=null}[r.$toHTML](e){const t=(0,s.toStyle)(this,"border","margin"),a=this[r.$getParent]()[r.$getParent](),n={fontSize:`calc(${a.font&&a.font.size||10}px * var(--zoom-factor))`},i=[];if(a.items.children.length>0){const e=a.items;let t=0,s=0;if(2===e.children.length){t=e.children[0].save;s=1-t}const o=e.children[t][r.$toHTML]().html,c=e.children[s][r.$toHTML]().html;let l=!1;const h=a.value&&a.value[r.$text]()||"";for(let e=0,t=o.length;ee>=0});this.use=e.use||"";this.usehref=e.usehref||""}}class Connect extends r.XFAObject{constructor(e){super(d,"connect",!0);this.connection=e.connection||"";this.id=e.id||"";this.ref=e.ref||"";this.usage=(0,o.getStringOption)(e.usage,["exportAndImport","exportOnly","importOnly"]);this.use=e.use||"";this.usehref=e.usehref||"";this.picture=null}}class ContentArea extends r.XFAObject{constructor(e){super(d,"contentArea",!0);this.h=(0,o.getMeasurement)(e.h);this.id=e.id||"";this.name=e.name||"";this.relevant=(0,o.getRelevant)(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.w=(0,o.getMeasurement)(e.w);this.x=(0,o.getMeasurement)(e.x,"0pt");this.y=(0,o.getMeasurement)(e.y,"0pt");this.desc=null;this.extras=null}[r.$toHTML](e){const t={left:(0,s.measureToString)(this.x),top:(0,s.measureToString)(this.y),width:(0,s.measureToString)(this.w),height:(0,s.measureToString)(this.h)},a=["xfaContentarea"];(0,s.isPrintOnly)(this)&&a.push("xfaPrintOnly");return o.HTMLResult.success({name:"div",children:[],attributes:{style:t,class:a,id:this[r.$uid]}})}}class Corner extends r.XFAObject{constructor(e){super(d,"corner",!0);this.id=e.id||"";this.inverted=(0,o.getInteger)({data:e.inverted,defaultValue:0,validate:e=>1===e});this.join=(0,o.getStringOption)(e.join,["square","round"]);this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.radius=(0,o.getMeasurement)(e.radius);this.stroke=(0,o.getStringOption)(e.stroke,["solid","dashDot","dashDotDot","dashed","dotted","embossed","etched","lowered","raised"]);this.thickness=(0,o.getMeasurement)(e.thickness,"0.5pt");this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[r.$toStyle](){const e=(0,s.toStyle)(this,"visibility");e.radius=(0,s.measureToString)("square"===this.join?0:this.radius);return e}}class DateElement extends r.ContentObject{constructor(e){super(d,"date");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){const e=this[r.$content].trim();this[r.$content]=e?new Date(e):null}[r.$toHTML](e){return valueToHtml(this[r.$content]?this[r.$content].toString():"")}}class DateTime extends r.ContentObject{constructor(e){super(d,"dateTime");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){const e=this[r.$content].trim();this[r.$content]=e?new Date(e):null}[r.$toHTML](e){return valueToHtml(this[r.$content]?this[r.$content].toString():"")}}class DateTimeEdit extends r.XFAObject{constructor(e){super(d,"dateTimeEdit",!0);this.hScrollPolicy=(0,o.getStringOption)(e.hScrollPolicy,["auto","off","on"]);this.id=e.id||"";this.picker=(0,o.getStringOption)(e.picker,["host","none"]);this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.comb=null;this.extras=null;this.margin=null}[r.$toHTML](e){const t=(0,s.toStyle)(this,"border","font","margin"),a=this[r.$getParent]()[r.$getParent](),n={name:"input",attributes:{type:"text",fieldId:a[r.$uid],dataId:a[r.$data]&&a[r.$data][r.$uid]||a[r.$uid],class:["xfaTextfield"],style:t,"aria-label":ariaLabel(a)}};return o.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[n]})}}class Decimal extends r.ContentObject{constructor(e){super(d,"decimal");this.fracDigits=(0,o.getInteger)({data:e.fracDigits,defaultValue:2,validate:e=>!0});this.id=e.id||"";this.leadDigits=(0,o.getInteger)({data:e.leadDigits,defaultValue:-1,validate:e=>!0});this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){const e=parseFloat(this[r.$content].trim());this[r.$content]=isNaN(e)?null:e}[r.$toHTML](e){return valueToHtml(null!==this[r.$content]?this[r.$content].toString():"")}}class DefaultUi extends r.XFAObject{constructor(e){super(d,"defaultUi",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}}class Desc extends r.XFAObject{constructor(e){super(d,"desc",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.boolean=new r.XFAObjectArray;this.date=new r.XFAObjectArray;this.dateTime=new r.XFAObjectArray;this.decimal=new r.XFAObjectArray;this.exData=new r.XFAObjectArray;this.float=new r.XFAObjectArray;this.image=new r.XFAObjectArray;this.integer=new r.XFAObjectArray;this.text=new r.XFAObjectArray;this.time=new r.XFAObjectArray}}class DigestMethod extends r.OptionObject{constructor(e){super(d,"digestMethod",["","SHA1","SHA256","SHA512","RIPEMD160"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||""}}class DigestMethods extends r.XFAObject{constructor(e){super(d,"digestMethods",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.digestMethod=new r.XFAObjectArray}}class Draw extends r.XFAObject{constructor(e){super(d,"draw",!0);this.anchorType=(0,o.getStringOption)(e.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]);this.colSpan=(0,o.getInteger)({data:e.colSpan,defaultValue:1,validate:e=>e>=1||-1===e});this.h=e.h?(0,o.getMeasurement)(e.h):"";this.hAlign=(0,o.getStringOption)(e.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=e.id||"";this.locale=e.locale||"";this.maxH=(0,o.getMeasurement)(e.maxH,"0pt");this.maxW=(0,o.getMeasurement)(e.maxW,"0pt");this.minH=(0,o.getMeasurement)(e.minH,"0pt");this.minW=(0,o.getMeasurement)(e.minW,"0pt");this.name=e.name||"";this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.relevant=(0,o.getRelevant)(e.relevant);this.rotate=(0,o.getInteger)({data:e.rotate,defaultValue:0,validate:e=>e%90==0});this.use=e.use||"";this.usehref=e.usehref||"";this.w=e.w?(0,o.getMeasurement)(e.w):"";this.x=(0,o.getMeasurement)(e.x,"0pt");this.y=(0,o.getMeasurement)(e.y,"0pt");this.assist=null;this.border=null;this.caption=null;this.desc=null;this.extras=null;this.font=null;this.keep=null;this.margin=null;this.para=null;this.traversal=null;this.ui=null;this.value=null;this.setProperty=new r.XFAObjectArray}[r.$setValue](e){_setValue(this,e)}[r.$toHTML](e){setTabIndex(this);if("hidden"===this.presence||"inactive"===this.presence)return o.HTMLResult.EMPTY;(0,s.fixDimensions)(this);this[r.$pushPara]();const t=this.w,a=this.h,{w:n,h:c,isBroken:l}=(0,s.layoutNode)(this,e);if(n&&""===this.w){if(l&&this[r.$getSubformParent]()[r.$isThereMoreWidth]()){this[r.$popPara]();return o.HTMLResult.FAILURE}this.w=n}c&&""===this.h&&(this.h=c);setFirstUnsplittable(this);if(!(0,i.checkDimensions)(this,e)){this.w=t;this.h=a;this[r.$popPara]();return o.HTMLResult.FAILURE}unsetFirstUnsplittable(this);const h=(0,s.toStyle)(this,"font","hAlign","dimensions","position","presence","rotate","anchorType","border","margin");(0,s.setMinMaxDimensions)(this,h);if(h.margin){h.padding=h.margin;delete h.margin}const u=["xfaDraw"];this.font&&u.push("xfaFont");(0,s.isPrintOnly)(this)&&u.push("xfaPrintOnly");const d={style:h,id:this[r.$uid],class:u};this.name&&(d.xfaName=this.name);const f={name:"div",attributes:d,children:[]};applyAssist(this,d);const g=(0,s.computeBbox)(this,f,e),p=this.value?this.value[r.$toHTML](e).html:null;if(null===p){this.w=t;this.h=a;this[r.$popPara]();return o.HTMLResult.success((0,s.createWrapper)(this,f),g)}f.children.push(p);(0,s.setPara)(this,h,p);this.w=t;this.h=a;this[r.$popPara]();return o.HTMLResult.success((0,s.createWrapper)(this,f),g)}}class Edge extends r.XFAObject{constructor(e){super(d,"edge",!0);this.cap=(0,o.getStringOption)(e.cap,["square","butt","round"]);this.id=e.id||"";this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.stroke=(0,o.getStringOption)(e.stroke,["solid","dashDot","dashDotDot","dashed","dotted","embossed","etched","lowered","raised"]);this.thickness=(0,o.getMeasurement)(e.thickness,"0.5pt");this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[r.$toStyle](){const e=(0,s.toStyle)(this,"visibility");Object.assign(e,{linecap:this.cap,width:(0,s.measureToString)(this.thickness),color:this.color?this.color[r.$toStyle]():"#000000",style:""});if("visible"!==this.presence)e.style="none";else switch(this.stroke){case"solid":e.style="solid";break;case"dashDot":case"dashDotDot":case"dashed":e.style="dashed";break;case"dotted":e.style="dotted";break;case"embossed":e.style="ridge";break;case"etched":e.style="groove";break;case"lowered":e.style="inset";break;case"raised":e.style="outset"}return e}}class Encoding extends r.OptionObject{constructor(e){super(d,"encoding",["adbe.x509.rsa_sha1","adbe.pkcs7.detached","adbe.pkcs7.sha1"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Encodings extends r.XFAObject{constructor(e){super(d,"encodings",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.encoding=new r.XFAObjectArray}}class Encrypt extends r.XFAObject{constructor(e){super(d,"encrypt",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.certificate=null}}class EncryptData extends r.XFAObject{constructor(e){super(d,"encryptData",!0);this.id=e.id||"";this.operation=(0,o.getStringOption)(e.operation,["encrypt","decrypt"]);this.target=e.target||"";this.use=e.use||"";this.usehref=e.usehref||"";this.filter=null;this.manifest=null}}class Encryption extends r.XFAObject{constructor(e){super(d,"encryption",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.certificate=new r.XFAObjectArray}}class EncryptionMethod extends r.OptionObject{constructor(e){super(d,"encryptionMethod",["","AES256-CBC","TRIPLEDES-CBC","AES128-CBC","AES192-CBC"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||""}}class EncryptionMethods extends r.XFAObject{constructor(e){super(d,"encryptionMethods",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.encryptionMethod=new r.XFAObjectArray}}class Event extends r.XFAObject{constructor(e){super(d,"event",!0);this.activity=(0,o.getStringOption)(e.activity,["click","change","docClose","docReady","enter","exit","full","indexChange","initialize","mouseDown","mouseEnter","mouseExit","mouseUp","postExecute","postOpen","postPrint","postSave","postSign","postSubmit","preExecute","preOpen","prePrint","preSave","preSign","preSubmit","ready","validationState"]);this.id=e.id||"";this.listen=(0,o.getStringOption)(e.listen,["refOnly","refAndDescendents"]);this.name=e.name||"";this.ref=e.ref||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.encryptData=null;this.execute=null;this.script=null;this.signData=null;this.submit=null}}class ExData extends r.ContentObject{constructor(e){super(d,"exData");this.contentType=e.contentType||"";this.href=e.href||"";this.id=e.id||"";this.maxLength=(0,o.getInteger)({data:e.maxLength,defaultValue:-1,validate:e=>e>=-1});this.name=e.name||"";this.rid=e.rid||"";this.transferEncoding=(0,o.getStringOption)(e.transferEncoding,["none","base64","package"]);this.use=e.use||"";this.usehref=e.usehref||""}[r.$isCDATAXml](){return"text/html"===this.contentType}[r.$onChild](e){if("text/html"===this.contentType&&e[r.$namespaceId]===n.NamespaceIds.xhtml.id){this[r.$content]=e;return!0}if("text/xml"===this.contentType){this[r.$content]=e;return!0}return!1}[r.$toHTML](e){return"text/html"===this.contentType&&this[r.$content]?this[r.$content][r.$toHTML](e):o.HTMLResult.EMPTY}}class ExObject extends r.XFAObject{constructor(e){super(d,"exObject",!0);this.archive=e.archive||"";this.classId=e.classId||"";this.codeBase=e.codeBase||"";this.codeType=e.codeType||"";this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.boolean=new r.XFAObjectArray;this.date=new r.XFAObjectArray;this.dateTime=new r.XFAObjectArray;this.decimal=new r.XFAObjectArray;this.exData=new r.XFAObjectArray;this.exObject=new r.XFAObjectArray;this.float=new r.XFAObjectArray;this.image=new r.XFAObjectArray;this.integer=new r.XFAObjectArray;this.text=new r.XFAObjectArray;this.time=new r.XFAObjectArray}}class ExclGroup extends r.XFAObject{constructor(e){super(d,"exclGroup",!0);this.access=(0,o.getStringOption)(e.access,["open","nonInteractive","protected","readOnly"]);this.accessKey=e.accessKey||"";this.anchorType=(0,o.getStringOption)(e.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]);this.colSpan=(0,o.getInteger)({data:e.colSpan,defaultValue:1,validate:e=>e>=1||-1===e});this.h=e.h?(0,o.getMeasurement)(e.h):"";this.hAlign=(0,o.getStringOption)(e.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=e.id||"";this.layout=(0,o.getStringOption)(e.layout,["position","lr-tb","rl-row","rl-tb","row","table","tb"]);this.maxH=(0,o.getMeasurement)(e.maxH,"0pt");this.maxW=(0,o.getMeasurement)(e.maxW,"0pt");this.minH=(0,o.getMeasurement)(e.minH,"0pt");this.minW=(0,o.getMeasurement)(e.minW,"0pt");this.name=e.name||"";this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.relevant=(0,o.getRelevant)(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.w=e.w?(0,o.getMeasurement)(e.w):"";this.x=(0,o.getMeasurement)(e.x,"0pt");this.y=(0,o.getMeasurement)(e.y,"0pt");this.assist=null;this.bind=null;this.border=null;this.calculate=null;this.caption=null;this.desc=null;this.extras=null;this.margin=null;this.para=null;this.traversal=null;this.validate=null;this.connect=new r.XFAObjectArray;this.event=new r.XFAObjectArray;this.field=new r.XFAObjectArray;this.setProperty=new r.XFAObjectArray}[r.$isBindable](){return!0}[r.$hasSettableValue](){return!0}[r.$setValue](e){for(const t of this.field.children){if(!t.value){const e=new Value({});t[r.$appendChild](e);t.value=e}t.value[r.$setValue](e)}}[r.$isThereMoreWidth](){return this.layout.endsWith("-tb")&&0===this[r.$extra].attempt&&this[r.$extra].numberInLine>0||this[r.$getParent]()[r.$isThereMoreWidth]()}[r.$isSplittable](){const e=this[r.$getSubformParent]();if(!e[r.$isSplittable]())return!1;if(void 0!==this[r.$extra]._isSplittable)return this[r.$extra]._isSplittable;if("position"===this.layout||this.layout.includes("row")){this[r.$extra]._isSplittable=!1;return!1}if(e.layout&&e.layout.endsWith("-tb")&&0!==e[r.$extra].numberInLine)return!1;this[r.$extra]._isSplittable=!0;return!0}[r.$flushHTML](){return(0,i.flushHTML)(this)}[r.$addHTML](e,t){(0,i.addHTML)(this,e,t)}[r.$getAvailableSpace](){return(0,i.getAvailableSpace)(this)}[r.$toHTML](e){setTabIndex(this);if("hidden"===this.presence||"inactive"===this.presence||0===this.h||0===this.w)return o.HTMLResult.EMPTY;(0,s.fixDimensions)(this);const t=[],a={id:this[r.$uid],class:[]};(0,s.setAccess)(this,a.class);this[r.$extra]||(this[r.$extra]=Object.create(null));Object.assign(this[r.$extra],{children:t,attributes:a,attempt:0,line:null,numberInLine:0,availableSpace:{width:Math.min(this.w||1/0,e.width),height:Math.min(this.h||1/0,e.height)},width:0,height:0,prevHeight:0,currentWidth:0});const n=this[r.$isSplittable]();n||setFirstUnsplittable(this);if(!(0,i.checkDimensions)(this,e))return o.HTMLResult.FAILURE;const c=new Set(["field"]);if(this.layout.includes("row")){const e=this[r.$getSubformParent]().columnWidths;if(Array.isArray(e)&&e.length>0){this[r.$extra].columnWidths=e;this[r.$extra].currentColumn=0}}const l=(0,s.toStyle)(this,"anchorType","dimensions","position","presence","border","margin","hAlign"),h=["xfaExclgroup"],u=(0,s.layoutClass)(this);u&&h.push(u);(0,s.isPrintOnly)(this)&&h.push("xfaPrintOnly");a.style=l;a.class=h;this.name&&(a.xfaName=this.name);this[r.$pushPara]();const d="lr-tb"===this.layout||"rl-tb"===this.layout,f=d?2:1;for(;this[r.$extra].attempte>=1||-1===e});this.h=e.h?(0,o.getMeasurement)(e.h):"";this.hAlign=(0,o.getStringOption)(e.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=e.id||"";this.locale=e.locale||"";this.maxH=(0,o.getMeasurement)(e.maxH,"0pt");this.maxW=(0,o.getMeasurement)(e.maxW,"0pt");this.minH=(0,o.getMeasurement)(e.minH,"0pt");this.minW=(0,o.getMeasurement)(e.minW,"0pt");this.name=e.name||"";this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.relevant=(0,o.getRelevant)(e.relevant);this.rotate=(0,o.getInteger)({data:e.rotate,defaultValue:0,validate:e=>e%90==0});this.use=e.use||"";this.usehref=e.usehref||"";this.w=e.w?(0,o.getMeasurement)(e.w):"";this.x=(0,o.getMeasurement)(e.x,"0pt");this.y=(0,o.getMeasurement)(e.y,"0pt");this.assist=null;this.bind=null;this.border=null;this.calculate=null;this.caption=null;this.desc=null;this.extras=null;this.font=null;this.format=null;this.items=new r.XFAObjectArray(2);this.keep=null;this.margin=null;this.para=null;this.traversal=null;this.ui=null;this.validate=null;this.value=null;this.bindItems=new r.XFAObjectArray;this.connect=new r.XFAObjectArray;this.event=new r.XFAObjectArray;this.setProperty=new r.XFAObjectArray}[r.$isBindable](){return!0}[r.$setValue](e){_setValue(this,e)}[r.$toHTML](e){setTabIndex(this);if(!this.ui){this.ui=new Ui({});this.ui[r.$globalData]=this[r.$globalData];this[r.$appendChild](this.ui);let e;switch(this.items.children.length){case 0:e=new TextEdit({});this.ui.textEdit=e;break;case 1:e=new CheckButton({});this.ui.checkButton=e;break;case 2:e=new ChoiceList({});this.ui.choiceList=e}this.ui[r.$appendChild](e)}if(!this.ui||"hidden"===this.presence||"inactive"===this.presence||0===this.h||0===this.w)return o.HTMLResult.EMPTY;this.caption&&delete this.caption[r.$extra];this[r.$pushPara]();const t=this.caption?this.caption[r.$toHTML](e).html:null,a=this.w,n=this.h;let c=0,h=0;if(this.margin){c=this.margin.leftInset+this.margin.rightInset;h=this.margin.topInset+this.margin.bottomInset}let u=null;if(""===this.w||""===this.h){let t=null,a=null,n=0,i=0;if(this.ui.checkButton)n=i=this.ui.checkButton.size;else{const{w:t,h:a}=(0,s.layoutNode)(this,e);if(null!==t){n=t;i=a}else i=(0,l.getMetrics)(this.font,!0).lineNoGap}u=getBorderDims(this.ui[r.$getExtra]());n+=u.w;i+=u.h;if(this.caption){const{w:s,h:c,isBroken:l}=this.caption[r.$getExtra](e);if(l&&this[r.$getSubformParent]()[r.$isThereMoreWidth]()){this[r.$popPara]();return o.HTMLResult.FAILURE}t=s;a=c;switch(this.caption.placement){case"left":case"right":case"inline":t+=n;break;case"top":case"bottom":a+=i}}else{t=n;a=i}if(t&&""===this.w){t+=c;this.w=Math.min(this.maxW<=0?1/0:this.maxW,this.minW+1e>=1&&e<=5});this.appearanceFilter=null;this.certificates=null;this.digestMethods=null;this.encodings=null;this.encryptionMethods=null;this.handler=null;this.lockDocument=null;this.mdp=null;this.reasons=null;this.timeStamp=null}}class Float extends r.ContentObject{constructor(e){super(d,"float");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){const e=parseFloat(this[r.$content].trim());this[r.$content]=isNaN(e)?null:e}[r.$toHTML](e){return valueToHtml(null!==this[r.$content]?this[r.$content].toString():"")}}class Font extends r.XFAObject{constructor(e){super(d,"font",!0);this.baselineShift=(0,o.getMeasurement)(e.baselineShift);this.fontHorizontalScale=(0,o.getFloat)({data:e.fontHorizontalScale,defaultValue:100,validate:e=>e>=0});this.fontVerticalScale=(0,o.getFloat)({data:e.fontVerticalScale,defaultValue:100,validate:e=>e>=0});this.id=e.id||"";this.kerningMode=(0,o.getStringOption)(e.kerningMode,["none","pair"]);this.letterSpacing=(0,o.getMeasurement)(e.letterSpacing,"0");this.lineThrough=(0,o.getInteger)({data:e.lineThrough,defaultValue:0,validate:e=>1===e||2===e});this.lineThroughPeriod=(0,o.getStringOption)(e.lineThroughPeriod,["all","word"]);this.overline=(0,o.getInteger)({data:e.overline,defaultValue:0,validate:e=>1===e||2===e});this.overlinePeriod=(0,o.getStringOption)(e.overlinePeriod,["all","word"]);this.posture=(0,o.getStringOption)(e.posture,["normal","italic"]);this.size=(0,o.getMeasurement)(e.size,"10pt");this.typeface=e.typeface||"Courier";this.underline=(0,o.getInteger)({data:e.underline,defaultValue:0,validate:e=>1===e||2===e});this.underlinePeriod=(0,o.getStringOption)(e.underlinePeriod,["all","word"]);this.use=e.use||"";this.usehref=e.usehref||"";this.weight=(0,o.getStringOption)(e.weight,["normal","bold"]);this.extras=null;this.fill=null}[r.$clean](e){super[r.$clean](e);this[r.$globalData].usedTypefaces.add(this.typeface)}[r.$toStyle](){const e=(0,s.toStyle)(this,"fill"),t=e.color;if(t)if("#000000"===t)delete e.color;else if(!t.startsWith("#")){e.background=t;e.backgroundClip="text";e.color="transparent"}this.baselineShift&&(e.verticalAlign=(0,s.measureToString)(this.baselineShift));e.fontKerning="none"===this.kerningMode?"none":"normal";e.letterSpacing=(0,s.measureToString)(this.letterSpacing);if(0!==this.lineThrough){e.textDecoration="line-through";2===this.lineThrough&&(e.textDecorationStyle="double")}if(0!==this.overline){e.textDecoration="overline";2===this.overline&&(e.textDecorationStyle="double")}e.fontStyle=this.posture;e.fontSize=(0,s.measureToString)(.99*this.size);(0,s.setFontFamily)(this,this,this[r.$globalData].fontFinder,e);if(0!==this.underline){e.textDecoration="underline";2===this.underline&&(e.textDecorationStyle="double")}e.fontWeight=this.weight;return e}}class Format extends r.XFAObject{constructor(e){super(d,"format",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.picture=null}}class Handler extends r.StringObject{constructor(e){super(d,"handler");this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||""}}class Hyphenation extends r.XFAObject{constructor(e){super(d,"hyphenation");this.excludeAllCaps=(0,o.getInteger)({data:e.excludeAllCaps,defaultValue:0,validate:e=>1===e});this.excludeInitialCap=(0,o.getInteger)({data:e.excludeInitialCap,defaultValue:0,validate:e=>1===e});this.hyphenate=(0,o.getInteger)({data:e.hyphenate,defaultValue:0,validate:e=>1===e});this.id=e.id||"";this.pushCharacterCount=(0,o.getInteger)({data:e.pushCharacterCount,defaultValue:3,validate:e=>e>=0});this.remainCharacterCount=(0,o.getInteger)({data:e.remainCharacterCount,defaultValue:3,validate:e=>e>=0});this.use=e.use||"";this.usehref=e.usehref||"";this.wordCharacterCount=(0,o.getInteger)({data:e.wordCharacterCount,defaultValue:7,validate:e=>e>=0})}}class Image extends r.StringObject{constructor(e){super(d,"image");this.aspect=(0,o.getStringOption)(e.aspect,["fit","actual","height","none","width"]);this.contentType=e.contentType||"";this.href=e.href||"";this.id=e.id||"";this.name=e.name||"";this.transferEncoding=(0,o.getStringOption)(e.transferEncoding,["base64","none","package"]);this.use=e.use||"";this.usehref=e.usehref||""}[r.$toHTML](){if(this.contentType&&!p.has(this.contentType.toLowerCase()))return o.HTMLResult.EMPTY;let e=this[r.$globalData].images&&this[r.$globalData].images.get(this.href);if(!e&&(this.href||!this[r.$content]))return o.HTMLResult.EMPTY;e||"base64"!==this.transferEncoding||(e=(0,c.stringToBytes)(atob(this[r.$content])));if(!e)return o.HTMLResult.EMPTY;if(!this.contentType){for(const[t,a]of m)if(e.length>t.length&&t.every(((t,a)=>t===e[a]))){this.contentType=a;break}if(!this.contentType)return o.HTMLResult.EMPTY}const t=new Blob([e],{type:this.contentType});let a;switch(this.aspect){case"fit":case"actual":break;case"height":a={height:"100%",objectFit:"fill"};break;case"none":a={width:"100%",height:"100%",objectFit:"fill"};break;case"width":a={width:"100%",objectFit:"fill"}}const n=this[r.$getParent]();return o.HTMLResult.success({name:"img",attributes:{class:["xfaImage"],style:a,src:URL.createObjectURL(t),alt:n?ariaLabel(n[r.$getParent]()):null}})}}class ImageEdit extends r.XFAObject{constructor(e){super(d,"imageEdit",!0);this.data=(0,o.getStringOption)(e.data,["link","embed"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.extras=null;this.margin=null}[r.$toHTML](e){return"embed"===this.data?o.HTMLResult.success({name:"div",children:[],attributes:{}}):o.HTMLResult.EMPTY}}class Integer extends r.ContentObject{constructor(e){super(d,"integer");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){const e=parseInt(this[r.$content].trim(),10);this[r.$content]=isNaN(e)?null:e}[r.$toHTML](e){return valueToHtml(null!==this[r.$content]?this[r.$content].toString():"")}}class Issuers extends r.XFAObject{constructor(e){super(d,"issuers",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.certificate=new r.XFAObjectArray}}class Items extends r.XFAObject{constructor(e){super(d,"items",!0);this.id=e.id||"";this.name=e.name||"";this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.ref=e.ref||"";this.save=(0,o.getInteger)({data:e.save,defaultValue:0,validate:e=>1===e});this.use=e.use||"";this.usehref=e.usehref||"";this.boolean=new r.XFAObjectArray;this.date=new r.XFAObjectArray;this.dateTime=new r.XFAObjectArray;this.decimal=new r.XFAObjectArray;this.exData=new r.XFAObjectArray;this.float=new r.XFAObjectArray;this.image=new r.XFAObjectArray;this.integer=new r.XFAObjectArray;this.text=new r.XFAObjectArray;this.time=new r.XFAObjectArray}[r.$toHTML](){const e=[];for(const t of this[r.$getChildren]())e.push(t[r.$text]());return o.HTMLResult.success(e)}}t.Items=Items;class Keep extends r.XFAObject{constructor(e){super(d,"keep",!0);this.id=e.id||"";const t=["none","contentArea","pageArea"];this.intact=(0,o.getStringOption)(e.intact,t);this.next=(0,o.getStringOption)(e.next,t);this.previous=(0,o.getStringOption)(e.previous,t);this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}}class KeyUsage extends r.XFAObject{constructor(e){super(d,"keyUsage");const t=["","yes","no"];this.crlSign=(0,o.getStringOption)(e.crlSign,t);this.dataEncipherment=(0,o.getStringOption)(e.dataEncipherment,t);this.decipherOnly=(0,o.getStringOption)(e.decipherOnly,t);this.digitalSignature=(0,o.getStringOption)(e.digitalSignature,t);this.encipherOnly=(0,o.getStringOption)(e.encipherOnly,t);this.id=e.id||"";this.keyAgreement=(0,o.getStringOption)(e.keyAgreement,t);this.keyCertSign=(0,o.getStringOption)(e.keyCertSign,t);this.keyEncipherment=(0,o.getStringOption)(e.keyEncipherment,t);this.nonRepudiation=(0,o.getStringOption)(e.nonRepudiation,t);this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||""}}class Line extends r.XFAObject{constructor(e){super(d,"line",!0);this.hand=(0,o.getStringOption)(e.hand,["even","left","right"]);this.id=e.id||"";this.slope=(0,o.getStringOption)(e.slope,["\\","/"]);this.use=e.use||"";this.usehref=e.usehref||"";this.edge=null}[r.$toHTML](){const e=this[r.$getParent]()[r.$getParent](),t=this.edge?this.edge:new Edge({}),a=t[r.$toStyle](),n=Object.create(null),i="visible"===t.presence?t.thickness:0;n.strokeWidth=(0,s.measureToString)(i);n.stroke=a.color;let c,l,h,u,d="100%",g="100%";if(e.w<=i){[c,l,h,u]=["50%",0,"50%","100%"];d=n.strokeWidth}else if(e.h<=i){[c,l,h,u]=[0,"50%","100%","50%"];g=n.strokeWidth}else"\\"===this.slope?[c,l,h,u]=[0,0,"100%","100%"]:[c,l,h,u]=[0,"100%","100%",0];const p={name:"svg",children:[{name:"line",attributes:{xmlns:f,x1:c,y1:l,x2:h,y2:u,style:n}}],attributes:{xmlns:f,width:d,height:g,style:{overflow:"visible"}}};if(hasMargin(e))return o.HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[p]});p.attributes.style.position="absolute";return o.HTMLResult.success(p)}}class Linear extends r.XFAObject{constructor(e){super(d,"linear",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["toRight","toBottom","toLeft","toTop"]);this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[r.$toStyle](e){e=e?e[r.$toStyle]():"#FFFFFF";return`linear-gradient(${this.type.replace(/([RBLT])/," $1").toLowerCase()}, ${e}, ${this.color?this.color[r.$toStyle]():"#000000"})`}}class LockDocument extends r.ContentObject{constructor(e){super(d,"lockDocument");this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){this[r.$content]=(0,o.getStringOption)(this[r.$content],["auto","0","1"])}}class Manifest extends r.XFAObject{constructor(e){super(d,"manifest",!0);this.action=(0,o.getStringOption)(e.action,["include","all","exclude"]);this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.ref=new r.XFAObjectArray}}class Margin extends r.XFAObject{constructor(e){super(d,"margin",!0);this.bottomInset=(0,o.getMeasurement)(e.bottomInset,"0");this.id=e.id||"";this.leftInset=(0,o.getMeasurement)(e.leftInset,"0");this.rightInset=(0,o.getMeasurement)(e.rightInset,"0");this.topInset=(0,o.getMeasurement)(e.topInset,"0");this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}[r.$toStyle](){return{margin:(0,s.measureToString)(this.topInset)+" "+(0,s.measureToString)(this.rightInset)+" "+(0,s.measureToString)(this.bottomInset)+" "+(0,s.measureToString)(this.leftInset)}}}class Mdp extends r.XFAObject{constructor(e){super(d,"mdp");this.id=e.id||"";this.permissions=(0,o.getInteger)({data:e.permissions,defaultValue:2,validate:e=>1===e||3===e});this.signatureType=(0,o.getStringOption)(e.signatureType,["filler","author"]);this.use=e.use||"";this.usehref=e.usehref||""}}class Medium extends r.XFAObject{constructor(e){super(d,"medium");this.id=e.id||"";this.imagingBBox=(0,o.getBBox)(e.imagingBBox);this.long=(0,o.getMeasurement)(e.long);this.orientation=(0,o.getStringOption)(e.orientation,["portrait","landscape"]);this.short=(0,o.getMeasurement)(e.short);this.stock=e.stock||"";this.trayIn=(0,o.getStringOption)(e.trayIn,["auto","delegate","pageFront"]);this.trayOut=(0,o.getStringOption)(e.trayOut,["auto","delegate"]);this.use=e.use||"";this.usehref=e.usehref||""}}class Message extends r.XFAObject{constructor(e){super(d,"message",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.text=new r.XFAObjectArray}}class NumericEdit extends r.XFAObject{constructor(e){super(d,"numericEdit",!0);this.hScrollPolicy=(0,o.getStringOption)(e.hScrollPolicy,["auto","off","on"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.comb=null;this.extras=null;this.margin=null}[r.$toHTML](e){const t=(0,s.toStyle)(this,"border","font","margin"),a=this[r.$getParent]()[r.$getParent](),n={name:"input",attributes:{type:"text",fieldId:a[r.$uid],dataId:a[r.$data]&&a[r.$data][r.$uid]||a[r.$uid],class:["xfaTextfield"],style:t,"aria-label":ariaLabel(a)}};return o.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[n]})}}class Occur extends r.XFAObject{constructor(e){super(d,"occur",!0);this.id=e.id||"";this.initial=""!==e.initial?(0,o.getInteger)({data:e.initial,defaultValue:"",validate:e=>!0}):"";this.max=""!==e.max?(0,o.getInteger)({data:e.max,defaultValue:1,validate:e=>!0}):"";this.min=""!==e.min?(0,o.getInteger)({data:e.min,defaultValue:1,validate:e=>!0}):"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}[r.$clean](){const e=this[r.$getParent](),t=this.min;""===this.min&&(this.min=e instanceof PageArea||e instanceof PageSet?0:1);""===this.max&&(this.max=""===t?e instanceof PageArea||e instanceof PageSet?-1:1:this.min);-1!==this.max&&this.max!0});this.name=e.name||"";this.numbered=(0,o.getInteger)({data:e.numbered,defaultValue:1,validate:e=>!0});this.oddOrEven=(0,o.getStringOption)(e.oddOrEven,["any","even","odd"]);this.pagePosition=(0,o.getStringOption)(e.pagePosition,["any","first","last","only","rest"]);this.relevant=(0,o.getRelevant)(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.desc=null;this.extras=null;this.medium=null;this.occur=null;this.area=new r.XFAObjectArray;this.contentArea=new r.XFAObjectArray;this.draw=new r.XFAObjectArray;this.exclGroup=new r.XFAObjectArray;this.field=new r.XFAObjectArray;this.subform=new r.XFAObjectArray}[r.$isUsable](){if(!this[r.$extra]){this[r.$extra]={numberOfUse:0};return!0}return!this.occur||-1===this.occur.max||this[r.$extra].numberOfUsee.oddOrEven===t&&e.pagePosition===a));if(n)return n;n=this.pageArea.children.find((e=>"any"===e.oddOrEven&&e.pagePosition===a));if(n)return n;n=this.pageArea.children.find((e=>"any"===e.oddOrEven&&"any"===e.pagePosition));return n||this.pageArea.children[0]}}class Para extends r.XFAObject{constructor(e){super(d,"para",!0);this.hAlign=(0,o.getStringOption)(e.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=e.id||"";this.lineHeight=e.lineHeight?(0,o.getMeasurement)(e.lineHeight,"0pt"):"";this.marginLeft=e.marginLeft?(0,o.getMeasurement)(e.marginLeft,"0pt"):"";this.marginRight=e.marginRight?(0,o.getMeasurement)(e.marginRight,"0pt"):"";this.orphans=(0,o.getInteger)({data:e.orphans,defaultValue:0,validate:e=>e>=0});this.preserve=e.preserve||"";this.radixOffset=e.radixOffset?(0,o.getMeasurement)(e.radixOffset,"0pt"):"";this.spaceAbove=e.spaceAbove?(0,o.getMeasurement)(e.spaceAbove,"0pt"):"";this.spaceBelow=e.spaceBelow?(0,o.getMeasurement)(e.spaceBelow,"0pt"):"";this.tabDefault=e.tabDefault?(0,o.getMeasurement)(this.tabDefault):"";this.tabStops=(e.tabStops||"").trim().split(/\s+/).map(((e,t)=>t%2==1?(0,o.getMeasurement)(e):e));this.textIndent=e.textIndent?(0,o.getMeasurement)(e.textIndent,"0pt"):"";this.use=e.use||"";this.usehref=e.usehref||"";this.vAlign=(0,o.getStringOption)(e.vAlign,["top","bottom","middle"]);this.widows=(0,o.getInteger)({data:e.widows,defaultValue:0,validate:e=>e>=0});this.hyphenation=null}[r.$toStyle](){const e=(0,s.toStyle)(this,"hAlign");""!==this.marginLeft&&(e.paddingLeft=(0,s.measureToString)(this.marginLeft));""!==this.marginRight&&(e.paddingight=(0,s.measureToString)(this.marginRight));""!==this.spaceAbove&&(e.paddingTop=(0,s.measureToString)(this.spaceAbove));""!==this.spaceBelow&&(e.paddingBottom=(0,s.measureToString)(this.spaceBelow));if(""!==this.textIndent){e.textIndent=(0,s.measureToString)(this.textIndent);(0,s.fixTextIndent)(e)}this.lineHeight>0&&(e.lineHeight=(0,s.measureToString)(this.lineHeight));""!==this.tabDefault&&(e.tabSize=(0,s.measureToString)(this.tabDefault));this.tabStops.length;this.hyphenatation&&Object.assign(e,this.hyphenatation[r.$toStyle]());return e}}class PasswordEdit extends r.XFAObject{constructor(e){super(d,"passwordEdit",!0);this.hScrollPolicy=(0,o.getStringOption)(e.hScrollPolicy,["auto","off","on"]);this.id=e.id||"";this.passwordChar=e.passwordChar||"*";this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.extras=null;this.margin=null}}class Pattern extends r.XFAObject{constructor(e){super(d,"pattern",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["crossHatch","crossDiagonal","diagonalLeft","diagonalRight","horizontal","vertical"]);this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[r.$toStyle](e){e=e?e[r.$toStyle]():"#FFFFFF";const t=this.color?this.color[r.$toStyle]():"#000000",a="repeating-linear-gradient",n=`${e},${e} 5px,${t} 5px,${t} 10px`;switch(this.type){case"crossHatch":return`${a}(to top,${n}) ${a}(to right,${n})`;case"crossDiagonal":return`${a}(45deg,${n}) ${a}(-45deg,${n})`;case"diagonalLeft":return`${a}(45deg,${n})`;case"diagonalRight":return`${a}(-45deg,${n})`;case"horizontal":return`${a}(to top,${n})`;case"vertical":return`${a}(to right,${n})`}return""}}class Picture extends r.StringObject{constructor(e){super(d,"picture");this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Proto extends r.XFAObject{constructor(e){super(d,"proto",!0);this.appearanceFilter=new r.XFAObjectArray;this.arc=new r.XFAObjectArray;this.area=new r.XFAObjectArray;this.assist=new r.XFAObjectArray;this.barcode=new r.XFAObjectArray;this.bindItems=new r.XFAObjectArray;this.bookend=new r.XFAObjectArray;this.boolean=new r.XFAObjectArray;this.border=new r.XFAObjectArray;this.break=new r.XFAObjectArray;this.breakAfter=new r.XFAObjectArray;this.breakBefore=new r.XFAObjectArray;this.button=new r.XFAObjectArray;this.calculate=new r.XFAObjectArray;this.caption=new r.XFAObjectArray;this.certificate=new r.XFAObjectArray;this.certificates=new r.XFAObjectArray;this.checkButton=new r.XFAObjectArray;this.choiceList=new r.XFAObjectArray;this.color=new r.XFAObjectArray;this.comb=new r.XFAObjectArray;this.connect=new r.XFAObjectArray;this.contentArea=new r.XFAObjectArray;this.corner=new r.XFAObjectArray;this.date=new r.XFAObjectArray;this.dateTime=new r.XFAObjectArray;this.dateTimeEdit=new r.XFAObjectArray;this.decimal=new r.XFAObjectArray;this.defaultUi=new r.XFAObjectArray;this.desc=new r.XFAObjectArray;this.digestMethod=new r.XFAObjectArray;this.digestMethods=new r.XFAObjectArray;this.draw=new r.XFAObjectArray;this.edge=new r.XFAObjectArray;this.encoding=new r.XFAObjectArray;this.encodings=new r.XFAObjectArray;this.encrypt=new r.XFAObjectArray;this.encryptData=new r.XFAObjectArray;this.encryption=new r.XFAObjectArray;this.encryptionMethod=new r.XFAObjectArray;this.encryptionMethods=new r.XFAObjectArray;this.event=new r.XFAObjectArray;this.exData=new r.XFAObjectArray;this.exObject=new r.XFAObjectArray;this.exclGroup=new r.XFAObjectArray;this.execute=new r.XFAObjectArray;this.extras=new r.XFAObjectArray;this.field=new r.XFAObjectArray;this.fill=new r.XFAObjectArray;this.filter=new r.XFAObjectArray;this.float=new r.XFAObjectArray;this.font=new r.XFAObjectArray;this.format=new r.XFAObjectArray;this.handler=new r.XFAObjectArray;this.hyphenation=new r.XFAObjectArray;this.image=new r.XFAObjectArray;this.imageEdit=new r.XFAObjectArray;this.integer=new r.XFAObjectArray;this.issuers=new r.XFAObjectArray;this.items=new r.XFAObjectArray;this.keep=new r.XFAObjectArray;this.keyUsage=new r.XFAObjectArray;this.line=new r.XFAObjectArray;this.linear=new r.XFAObjectArray;this.lockDocument=new r.XFAObjectArray;this.manifest=new r.XFAObjectArray;this.margin=new r.XFAObjectArray;this.mdp=new r.XFAObjectArray;this.medium=new r.XFAObjectArray;this.message=new r.XFAObjectArray;this.numericEdit=new r.XFAObjectArray;this.occur=new r.XFAObjectArray;this.oid=new r.XFAObjectArray;this.oids=new r.XFAObjectArray;this.overflow=new r.XFAObjectArray;this.pageArea=new r.XFAObjectArray;this.pageSet=new r.XFAObjectArray;this.para=new r.XFAObjectArray;this.passwordEdit=new r.XFAObjectArray;this.pattern=new r.XFAObjectArray;this.picture=new r.XFAObjectArray;this.radial=new r.XFAObjectArray;this.reason=new r.XFAObjectArray;this.reasons=new r.XFAObjectArray;this.rectangle=new r.XFAObjectArray;this.ref=new r.XFAObjectArray;this.script=new r.XFAObjectArray;this.setProperty=new r.XFAObjectArray;this.signData=new r.XFAObjectArray;this.signature=new r.XFAObjectArray;this.signing=new r.XFAObjectArray;this.solid=new r.XFAObjectArray;this.speak=new r.XFAObjectArray;this.stipple=new r.XFAObjectArray;this.subform=new r.XFAObjectArray;this.subformSet=new r.XFAObjectArray;this.subjectDN=new r.XFAObjectArray;this.subjectDNs=new r.XFAObjectArray;this.submit=new r.XFAObjectArray;this.text=new r.XFAObjectArray;this.textEdit=new r.XFAObjectArray;this.time=new r.XFAObjectArray;this.timeStamp=new r.XFAObjectArray;this.toolTip=new r.XFAObjectArray;this.traversal=new r.XFAObjectArray;this.traverse=new r.XFAObjectArray;this.ui=new r.XFAObjectArray;this.validate=new r.XFAObjectArray;this.value=new r.XFAObjectArray;this.variables=new r.XFAObjectArray}}class Radial extends r.XFAObject{constructor(e){super(d,"radial",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["toEdge","toCenter"]);this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[r.$toStyle](e){e=e?e[r.$toStyle]():"#FFFFFF";const t=this.color?this.color[r.$toStyle]():"#000000";return`radial-gradient(circle at center, ${"toEdge"===this.type?`${e},${t}`:`${t},${e}`})`}}class Reason extends r.StringObject{constructor(e){super(d,"reason");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Reasons extends r.XFAObject{constructor(e){super(d,"reasons",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.reason=new r.XFAObjectArray}}class Rectangle extends r.XFAObject{constructor(e){super(d,"rectangle",!0);this.hand=(0,o.getStringOption)(e.hand,["even","left","right"]);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.corner=new r.XFAObjectArray(4);this.edge=new r.XFAObjectArray(4);this.fill=null}[r.$toHTML](){const e=this.edge.children.length?this.edge.children[0]:new Edge({}),t=e[r.$toStyle](),a=Object.create(null);this.fill&&"visible"===this.fill.presence?Object.assign(a,this.fill[r.$toStyle]()):a.fill="transparent";a.strokeWidth=(0,s.measureToString)("visible"===e.presence?e.thickness:0);a.stroke=t.color;const n=(this.corner.children.length?this.corner.children[0]:new Corner({}))[r.$toStyle](),i={name:"svg",children:[{name:"rect",attributes:{xmlns:f,width:"100%",height:"100%",x:0,y:0,rx:n.radius,ry:n.radius,style:a}}],attributes:{xmlns:f,style:{overflow:"visible"},width:"100%",height:"100%"}};if(hasMargin(this[r.$getParent]()[r.$getParent]()))return o.HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[i]});i.attributes.style.position="absolute";return o.HTMLResult.success(i)}}class RefElement extends r.StringObject{constructor(e){super(d,"ref");this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Script extends r.StringObject{constructor(e){super(d,"script");this.binding=e.binding||"";this.contentType=e.contentType||"";this.id=e.id||"";this.name=e.name||"";this.runAt=(0,o.getStringOption)(e.runAt,["client","both","server"]);this.use=e.use||"";this.usehref=e.usehref||""}}class SetProperty extends r.XFAObject{constructor(e){super(d,"setProperty");this.connection=e.connection||"";this.ref=e.ref||"";this.target=e.target||""}}t.SetProperty=SetProperty;class SignData extends r.XFAObject{constructor(e){super(d,"signData",!0);this.id=e.id||"";this.operation=(0,o.getStringOption)(e.operation,["sign","clear","verify"]);this.ref=e.ref||"";this.target=e.target||"";this.use=e.use||"";this.usehref=e.usehref||"";this.filter=null;this.manifest=null}}class Signature extends r.XFAObject{constructor(e){super(d,"signature",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["PDF1.3","PDF1.6"]);this.use=e.use||"";this.usehref=e.usehref||"";this.border=null;this.extras=null;this.filter=null;this.manifest=null;this.margin=null}}class Signing extends r.XFAObject{constructor(e){super(d,"signing",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.certificate=new r.XFAObjectArray}}class Solid extends r.XFAObject{constructor(e){super(d,"solid",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null}[r.$toStyle](e){return e?e[r.$toStyle]():"#FFFFFF"}}class Speak extends r.StringObject{constructor(e){super(d,"speak");this.disable=(0,o.getInteger)({data:e.disable,defaultValue:0,validate:e=>1===e});this.id=e.id||"";this.priority=(0,o.getStringOption)(e.priority,["custom","caption","name","toolTip"]);this.rid=e.rid||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Stipple extends r.XFAObject{constructor(e){super(d,"stipple",!0);this.id=e.id||"";this.rate=(0,o.getInteger)({data:e.rate,defaultValue:50,validate:e=>e>=0&&e<=100});this.use=e.use||"";this.usehref=e.usehref||"";this.color=null;this.extras=null}[r.$toStyle](e){const t=this.rate/100;return c.Util.makeHexColor(Math.round(e.value.r*(1-t)+this.value.r*t),Math.round(e.value.g*(1-t)+this.value.g*t),Math.round(e.value.b*(1-t)+this.value.b*t))}}class Subform extends r.XFAObject{constructor(e){super(d,"subform",!0);this.access=(0,o.getStringOption)(e.access,["open","nonInteractive","protected","readOnly"]);this.allowMacro=(0,o.getInteger)({data:e.allowMacro,defaultValue:0,validate:e=>1===e});this.anchorType=(0,o.getStringOption)(e.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]);this.colSpan=(0,o.getInteger)({data:e.colSpan,defaultValue:1,validate:e=>e>=1||-1===e});this.columnWidths=(e.columnWidths||"").trim().split(/\s+/).map((e=>"-1"===e?-1:(0,o.getMeasurement)(e)));this.h=e.h?(0,o.getMeasurement)(e.h):"";this.hAlign=(0,o.getStringOption)(e.hAlign,["left","center","justify","justifyAll","radix","right"]);this.id=e.id||"";this.layout=(0,o.getStringOption)(e.layout,["position","lr-tb","rl-row","rl-tb","row","table","tb"]);this.locale=e.locale||"";this.maxH=(0,o.getMeasurement)(e.maxH,"0pt");this.maxW=(0,o.getMeasurement)(e.maxW,"0pt");this.mergeMode=(0,o.getStringOption)(e.mergeMode,["consumeData","matchTemplate"]);this.minH=(0,o.getMeasurement)(e.minH,"0pt");this.minW=(0,o.getMeasurement)(e.minW,"0pt");this.name=e.name||"";this.presence=(0,o.getStringOption)(e.presence,["visible","hidden","inactive","invisible"]);this.relevant=(0,o.getRelevant)(e.relevant);this.restoreState=(0,o.getStringOption)(e.restoreState,["manual","auto"]);this.scope=(0,o.getStringOption)(e.scope,["name","none"]);this.use=e.use||"";this.usehref=e.usehref||"";this.w=e.w?(0,o.getMeasurement)(e.w):"";this.x=(0,o.getMeasurement)(e.x,"0pt");this.y=(0,o.getMeasurement)(e.y,"0pt");this.assist=null;this.bind=null;this.bookend=null;this.border=null;this.break=null;this.calculate=null;this.desc=null;this.extras=null;this.keep=null;this.margin=null;this.occur=null;this.overflow=null;this.pageSet=null;this.para=null;this.traversal=null;this.validate=null;this.variables=null;this.area=new r.XFAObjectArray;this.breakAfter=new r.XFAObjectArray;this.breakBefore=new r.XFAObjectArray;this.connect=new r.XFAObjectArray;this.draw=new r.XFAObjectArray;this.event=new r.XFAObjectArray;this.exObject=new r.XFAObjectArray;this.exclGroup=new r.XFAObjectArray;this.field=new r.XFAObjectArray;this.proto=new r.XFAObjectArray;this.setProperty=new r.XFAObjectArray;this.subform=new r.XFAObjectArray;this.subformSet=new r.XFAObjectArray}[r.$getSubformParent](){const e=this[r.$getParent]();return e instanceof SubformSet?e[r.$getSubformParent]():e}[r.$isBindable](){return!0}[r.$isThereMoreWidth](){return this.layout.endsWith("-tb")&&0===this[r.$extra].attempt&&this[r.$extra].numberInLine>0||this[r.$getParent]()[r.$isThereMoreWidth]()}*[r.$getContainedChildren](){yield*getContainedChildren(this)}[r.$flushHTML](){return(0,i.flushHTML)(this)}[r.$addHTML](e,t){(0,i.addHTML)(this,e,t)}[r.$getAvailableSpace](){return(0,i.getAvailableSpace)(this)}[r.$isSplittable](){const e=this[r.$getSubformParent]();if(!e[r.$isSplittable]())return!1;if(void 0!==this[r.$extra]._isSplittable)return this[r.$extra]._isSplittable;if("position"===this.layout||this.layout.includes("row")){this[r.$extra]._isSplittable=!1;return!1}if(this.keep&&"none"!==this.keep.intact){this[r.$extra]._isSplittable=!1;return!1}if(e.layout&&e.layout.endsWith("-tb")&&0!==e[r.$extra].numberInLine)return!1;this[r.$extra]._isSplittable=!0;return!0}[r.$toHTML](e){setTabIndex(this);if(this.break){if("auto"!==this.break.after||""!==this.break.afterTarget){const e=new BreakAfter({targetType:this.break.after,target:this.break.afterTarget,startNew:this.break.startNew.toString()});e[r.$globalData]=this[r.$globalData];this[r.$appendChild](e);this.breakAfter.push(e)}if("auto"!==this.break.before||""!==this.break.beforeTarget){const e=new BreakBefore({targetType:this.break.before,target:this.break.beforeTarget,startNew:this.break.startNew.toString()});e[r.$globalData]=this[r.$globalData];this[r.$appendChild](e);this.breakBefore.push(e)}if(""!==this.break.overflowTarget){const e=new Overflow({target:this.break.overflowTarget,leader:this.break.overflowLeader,trailer:this.break.overflowTrailer});e[r.$globalData]=this[r.$globalData];this[r.$appendChild](e);this.overflow.push(e)}this[r.$removeChild](this.break);this.break=null}if("hidden"===this.presence||"inactive"===this.presence)return o.HTMLResult.EMPTY;(this.breakBefore.children.length>1||this.breakAfter.children.length>1)&&(0,c.warn)("XFA - Several breakBefore or breakAfter in subforms: please file a bug.");if(this.breakBefore.children.length>=1){const e=this.breakBefore.children[0];if(handleBreak(e))return o.HTMLResult.breakNode(e)}if(this[r.$extra]&&this[r.$extra].afterBreakAfter)return o.HTMLResult.EMPTY;(0,s.fixDimensions)(this);const t=[],a={id:this[r.$uid],class:[]};(0,s.setAccess)(this,a.class);this[r.$extra]||(this[r.$extra]=Object.create(null));Object.assign(this[r.$extra],{children:t,line:null,attributes:a,attempt:0,numberInLine:0,availableSpace:{width:Math.min(this.w||1/0,e.width),height:Math.min(this.h||1/0,e.height)},width:0,height:0,prevHeight:0,currentWidth:0});const n=this[r.$getTemplateRoot](),l=n[r.$extra].noLayoutFailure,h=this[r.$isSplittable]();h||setFirstUnsplittable(this);if(!(0,i.checkDimensions)(this,e))return o.HTMLResult.FAILURE;const u=new Set(["area","draw","exclGroup","field","subform","subformSet"]);if(this.layout.includes("row")){const e=this[r.$getSubformParent]().columnWidths;if(Array.isArray(e)&&e.length>0){this[r.$extra].columnWidths=e;this[r.$extra].currentColumn=0}}const d=(0,s.toStyle)(this,"anchorType","dimensions","position","presence","border","margin","hAlign"),f=["xfaSubform"],g=(0,s.layoutClass)(this);g&&f.push(g);a.style=d;a.class=f;this.name&&(a.xfaName=this.name);if(this.overflow){const t=this.overflow[r.$getExtra]();if(t.addLeader){t.addLeader=!1;handleOverflow(this,t.leader,e)}}this[r.$pushPara]();const p="lr-tb"===this.layout||"rl-tb"===this.layout,m=p?2:1;for(;this[r.$extra].attempt=1){const e=this.breakAfter.children[0];if(handleBreak(e)){this[r.$extra].afterBreakAfter=C;return o.HTMLResult.breakNode(e)}}delete this[r.$extra];return C}}class SubformSet extends r.XFAObject{constructor(e){super(d,"subformSet",!0);this.id=e.id||"";this.name=e.name||"";this.relation=(0,o.getStringOption)(e.relation,["ordered","choice","unordered"]);this.relevant=(0,o.getRelevant)(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.bookend=null;this.break=null;this.desc=null;this.extras=null;this.occur=null;this.overflow=null;this.breakAfter=new r.XFAObjectArray;this.breakBefore=new r.XFAObjectArray;this.subform=new r.XFAObjectArray;this.subformSet=new r.XFAObjectArray}*[r.$getContainedChildren](){yield*getContainedChildren(this)}[r.$getSubformParent](){let e=this[r.$getParent]();for(;!(e instanceof Subform);)e=e[r.$getParent]();return e}[r.$isBindable](){return!0}}class SubjectDN extends r.ContentObject{constructor(e){super(d,"subjectDN");this.delimiter=e.delimiter||",";this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){this[r.$content]=new Map(this[r.$content].split(this.delimiter).map((e=>{(e=e.split("=",2))[0]=e[0].trim();return e})))}}class SubjectDNs extends r.XFAObject{constructor(e){super(d,"subjectDNs",!0);this.id=e.id||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||"";this.subjectDN=new r.XFAObjectArray}}class Submit extends r.XFAObject{constructor(e){super(d,"submit",!0);this.embedPDF=(0,o.getInteger)({data:e.embedPDF,defaultValue:0,validate:e=>1===e});this.format=(0,o.getStringOption)(e.format,["xdp","formdata","pdf","urlencoded","xfd","xml"]);this.id=e.id||"";this.target=e.target||"";this.textEncoding=(0,o.getKeyword)({data:e.textEncoding?e.textEncoding.toLowerCase():"",defaultValue:"",validate:e=>["utf-8","big-five","fontspecific","gbk","gb-18030","gb-2312","ksc-5601","none","shift-jis","ucs-2","utf-16"].includes(e)||e.match(/iso-8859-\d{2}/)});this.use=e.use||"";this.usehref=e.usehref||"";this.xdpContent=e.xdpContent||"";this.encrypt=null;this.encryptData=new r.XFAObjectArray;this.signData=new r.XFAObjectArray}}class Template extends r.XFAObject{constructor(e){super(d,"template",!0);this.baseProfile=(0,o.getStringOption)(e.baseProfile,["full","interactiveForms"]);this.extras=null;this.subform=new r.XFAObjectArray}[r.$finalize](){0===this.subform.children.length&&(0,c.warn)("XFA - No subforms in template node.");this.subform.children.length>=2&&(0,c.warn)("XFA - Several subforms in template node: please file a bug.");this[r.$tabIndex]=5e3}[r.$isSplittable](){return!0}[r.$searchNode](e,t){return e.startsWith("#")?[this[r.$ids].get(e.slice(1))]:(0,u.searchNode)(this,t,e,!0,!0)}*[r.$toPages](){if(!this.subform.children.length)return o.HTMLResult.success({name:"div",children:[]});this[r.$extra]={overflowNode:null,firstUnsplittable:null,currentContentArea:null,currentPageArea:null,noLayoutFailure:!1,pageNumber:1,pagePosition:"first",oddOrEven:"odd",blankOrNotBlank:"nonBlank",paraStack:[]};const e=this.subform.children[0];e.pageSet[r.$cleanPage]();const t=e.pageSet.pageArea.children,a={name:"div",children:[]};let n=null,i=null,s=null;if(e.breakBefore.children.length>=1){i=e.breakBefore.children[0];s=i.target}else if(e.subform.children.length>=1&&e.subform.children[0].breakBefore.children.length>=1){i=e.subform.children[0].breakBefore.children[0];s=i.target}else if(e.break&&e.break.beforeTarget){i=e.break;s=i.beforeTarget}else if(e.subform.children.length>=1&&e.subform.children[0].break&&e.subform.children[0].break.beforeTarget){i=e.subform.children[0].break;s=i.beforeTarget}if(i){const e=this[r.$searchNode](s,i[r.$getParent]());if(e instanceof PageArea){n=e;i[r.$extra]={}}}n||(n=t[0]);n[r.$extra]={numberOfUse:1};const l=n[r.$getParent]();l[r.$extra]={numberOfUse:1,pageIndex:l.pageArea.children.indexOf(n),pageSetIndex:0};let h,u=null,d=null,f=!0,g=0,p=0;for(;;){if(f)g=0;else{a.children.pop();if(3==++g){(0,c.warn)("XFA - Something goes wrong: please file a bug.");return a}}h=null;this[r.$extra].currentPageArea=n;const t=n[r.$toHTML]().html;a.children.push(t);if(u){this[r.$extra].noLayoutFailure=!0;t.children.push(u[r.$toHTML](n[r.$extra].space).html);u=null}if(d){this[r.$extra].noLayoutFailure=!0;t.children.push(d[r.$toHTML](n[r.$extra].space).html);d=null}const i=n.contentArea.children,s=t.children.filter((e=>e.attributes.class.includes("xfaContentarea")));f=!1;this[r.$extra].firstUnsplittable=null;this[r.$extra].noLayoutFailure=!1;const flush=t=>{const a=e[r.$flushHTML]();if(a){f=f||a.children&&0!==a.children.length;s[t].children.push(a)}};for(let t=p,n=i.length;t1&&a.children.pop();return a}if(c.isBreak()){const e=c.breakNode;flush(t);if("auto"===e.targetType)continue;if(e.leader){u=this[r.$searchNode](e.leader,e[r.$getParent]());u=u?u[0]:null}if(e.trailer){d=this[r.$searchNode](e.trailer,e[r.$getParent]());d=d?d[0]:null}if("pageArea"===e.targetType){h=e[r.$extra].target;t=1/0}else if(e[r.$extra].target){h=e[r.$extra].target;p=e[r.$extra].index+1;t=1/0}else t=e[r.$extra].index}else if(this[r.$extra].overflowNode){const e=this[r.$extra].overflowNode;this[r.$extra].overflowNode=null;const a=e[r.$getExtra](),n=a.target;a.addLeader=null!==a.leader;a.addTrailer=null!==a.trailer;flush(t);const s=t;t=1/0;if(n instanceof PageArea)h=n;else if(n instanceof ContentArea){const e=i.findIndex((e=>e===n));if(-1!==e)e>s?t=e-1:p=e;else{h=n[r.$getParent]();p=h.contentArea.children.findIndex((e=>e===n))}}}else flush(t)}this[r.$extra].pageNumber+=1;h&&(h[r.$isUsable]()?h[r.$extra].numberOfUse+=1:h=null);n=h||n[r.$getNextPage]();yield null}}}t.Template=Template;class Text extends r.ContentObject{constructor(e){super(d,"text");this.id=e.id||"";this.maxChars=(0,o.getInteger)({data:e.maxChars,defaultValue:0,validate:e=>e>=0});this.name=e.name||"";this.rid=e.rid||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$acceptWhitespace](){return!0}[r.$onChild](e){if(e[r.$namespaceId]===n.NamespaceIds.xhtml.id){this[r.$content]=e;return!0}(0,c.warn)(`XFA - Invalid content in Text: ${e[r.$nodeName]}.`);return!1}[r.$onText](e){this[r.$content]instanceof r.XFAObject||super[r.$onText](e)}[r.$finalize](){"string"==typeof this[r.$content]&&(this[r.$content]=this[r.$content].replace(/\r\n/g,"\n"))}[r.$getExtra](){return"string"==typeof this[r.$content]?this[r.$content].split(/[\u2029\u2028\n]/).reduce(((e,t)=>{t&&e.push(t);return e}),[]).join("\n"):this[r.$content][r.$text]()}[r.$toHTML](e){if("string"==typeof this[r.$content]){const e=valueToHtml(this[r.$content]).html;if(this[r.$content].includes("\u2029")){e.name="div";e.children=[];this[r.$content].split("\u2029").map((e=>e.split(/[\u2028\n]/).reduce(((e,t)=>{e.push({name:"span",value:t},{name:"br"});return e}),[]))).forEach((t=>{e.children.push({name:"p",children:t})}))}else if(/[\u2028\n]/.test(this[r.$content])){e.name="div";e.children=[];this[r.$content].split(/[\u2028\n]/).forEach((t=>{e.children.push({name:"span",value:t},{name:"br"})}))}return o.HTMLResult.success(e)}return this[r.$content][r.$toHTML](e)}}t.Text=Text;class TextEdit extends r.XFAObject{constructor(e){super(d,"textEdit",!0);this.allowRichText=(0,o.getInteger)({data:e.allowRichText,defaultValue:0,validate:e=>1===e});this.hScrollPolicy=(0,o.getStringOption)(e.hScrollPolicy,["auto","off","on"]);this.id=e.id||"";this.multiLine=(0,o.getInteger)({data:e.multiLine,defaultValue:"",validate:e=>0===e||1===e});this.use=e.use||"";this.usehref=e.usehref||"";this.vScrollPolicy=(0,o.getStringOption)(e.vScrollPolicy,["auto","off","on"]);this.border=null;this.comb=null;this.extras=null;this.margin=null}[r.$toHTML](e){const t=(0,s.toStyle)(this,"border","font","margin");let a;const n=this[r.$getParent]()[r.$getParent]();""===this.multiLine&&(this.multiLine=n instanceof Draw?1:0);a=1===this.multiLine?{name:"textarea",attributes:{dataId:n[r.$data]&&n[r.$data][r.$uid]||n[r.$uid],fieldId:n[r.$uid],class:["xfaTextfield"],style:t,"aria-label":ariaLabel(n)}}:{name:"input",attributes:{type:"text",dataId:n[r.$data]&&n[r.$data][r.$uid]||n[r.$uid],fieldId:n[r.$uid],class:["xfaTextfield"],style:t,"aria-label":ariaLabel(n)}};return o.HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[a]})}}class Time extends r.StringObject{constructor(e){super(d,"time");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}[r.$finalize](){const e=this[r.$content].trim();this[r.$content]=e?new Date(e):null}[r.$toHTML](e){return valueToHtml(this[r.$content]?this[r.$content].toString():"")}}class TimeStamp extends r.XFAObject{constructor(e){super(d,"timeStamp");this.id=e.id||"";this.server=e.server||"";this.type=(0,o.getStringOption)(e.type,["optional","required"]);this.use=e.use||"";this.usehref=e.usehref||""}}class ToolTip extends r.StringObject{constructor(e){super(d,"toolTip");this.id=e.id||"";this.rid=e.rid||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Traversal extends r.XFAObject{constructor(e){super(d,"traversal",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.traverse=new r.XFAObjectArray}}class Traverse extends r.XFAObject{constructor(e){super(d,"traverse",!0);this.id=e.id||"";this.operation=(0,o.getStringOption)(e.operation,["next","back","down","first","left","right","up"]);this.ref=e.ref||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.script=null}get name(){return this.operation}[r.$isTransparent](){return!1}}class Ui extends r.XFAObject{constructor(e){super(d,"ui",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.picture=null;this.barcode=null;this.button=null;this.checkButton=null;this.choiceList=null;this.dateTimeEdit=null;this.defaultUi=null;this.imageEdit=null;this.numericEdit=null;this.passwordEdit=null;this.signature=null;this.textEdit=null}[r.$getExtra](){if(void 0===this[r.$extra]){for(const e of Object.getOwnPropertyNames(this)){if("extras"===e||"picture"===e)continue;const t=this[e];if(t instanceof r.XFAObject){this[r.$extra]=t;return t}}this[r.$extra]=null}return this[r.$extra]}[r.$toHTML](e){const t=this[r.$getExtra]();return t?t[r.$toHTML](e):o.HTMLResult.EMPTY}}class Validate extends r.XFAObject{constructor(e){super(d,"validate",!0);this.formatTest=(0,o.getStringOption)(e.formatTest,["warning","disabled","error"]);this.id=e.id||"";this.nullTest=(0,o.getStringOption)(e.nullTest,["disabled","error","warning"]);this.scriptTest=(0,o.getStringOption)(e.scriptTest,["error","disabled","warning"]);this.use=e.use||"";this.usehref=e.usehref||"";this.extras=null;this.message=null;this.picture=null;this.script=null}}class Value extends r.XFAObject{constructor(e){super(d,"value",!0);this.id=e.id||"";this.override=(0,o.getInteger)({data:e.override,defaultValue:0,validate:e=>1===e});this.relevant=(0,o.getRelevant)(e.relevant);this.use=e.use||"";this.usehref=e.usehref||"";this.arc=null;this.boolean=null;this.date=null;this.dateTime=null;this.decimal=null;this.exData=null;this.float=null;this.image=null;this.integer=null;this.line=null;this.rectangle=null;this.text=null;this.time=null}[r.$setValue](e){const t=this[r.$getParent]();if(t instanceof Field&&t.ui&&t.ui.imageEdit){if(!this.image){this.image=new Image({});this[r.$appendChild](this.image)}this.image[r.$content]=e[r.$content];return}const a=e[r.$nodeName];if(null===this[a]){for(const e of Object.getOwnPropertyNames(this)){const t=this[e];if(t instanceof r.XFAObject){this[e]=null;this[r.$removeChild](t)}}this[e[r.$nodeName]]=e;this[r.$appendChild](e)}else this[a][r.$content]=e[r.$content]}[r.$text](){if(this.exData)return"string"==typeof this.exData[r.$content]?this.exData[r.$content].trim():this.exData[r.$content][r.$text]().trim();for(const e of Object.getOwnPropertyNames(this)){if("image"===e)continue;const t=this[e];if(t instanceof r.XFAObject)return(t[r.$content]||"").toString().trim()}return null}[r.$toHTML](e){for(const t of Object.getOwnPropertyNames(this)){const a=this[t];if(a instanceof r.XFAObject)return a[r.$toHTML](e)}return o.HTMLResult.EMPTY}}t.Value=Value;class Variables extends r.XFAObject{constructor(e){super(d,"variables",!0);this.id=e.id||"";this.use=e.use||"";this.usehref=e.usehref||"";this.boolean=new r.XFAObjectArray;this.date=new r.XFAObjectArray;this.dateTime=new r.XFAObjectArray;this.decimal=new r.XFAObjectArray;this.exData=new r.XFAObjectArray;this.float=new r.XFAObjectArray;this.image=new r.XFAObjectArray;this.integer=new r.XFAObjectArray;this.manifest=new r.XFAObjectArray;this.script=new r.XFAObjectArray;this.text=new r.XFAObjectArray;this.time=new r.XFAObjectArray}[r.$isTransparent](){return!0}}class TemplateNamespace{static[n.$buildXFAObject](e,t){if(TemplateNamespace.hasOwnProperty(e)){const a=TemplateNamespace[e](t);a[r.$setSetAttributes](t);return a}}static appearanceFilter(e){return new AppearanceFilter(e)}static arc(e){return new Arc(e)}static area(e){return new Area(e)}static assist(e){return new Assist(e)}static barcode(e){return new Barcode(e)}static bind(e){return new Bind(e)}static bindItems(e){return new BindItems(e)}static bookend(e){return new Bookend(e)}static boolean(e){return new BooleanElement(e)}static border(e){return new Border(e)}static break(e){return new Break(e)}static breakAfter(e){return new BreakAfter(e)}static breakBefore(e){return new BreakBefore(e)}static button(e){return new Button(e)}static calculate(e){return new Calculate(e)}static caption(e){return new Caption(e)}static certificate(e){return new Certificate(e)}static certificates(e){return new Certificates(e)}static checkButton(e){return new CheckButton(e)}static choiceList(e){return new ChoiceList(e)}static color(e){return new Color(e)}static comb(e){return new Comb(e)}static connect(e){return new Connect(e)}static contentArea(e){return new ContentArea(e)}static corner(e){return new Corner(e)}static date(e){return new DateElement(e)}static dateTime(e){return new DateTime(e)}static dateTimeEdit(e){return new DateTimeEdit(e)}static decimal(e){return new Decimal(e)}static defaultUi(e){return new DefaultUi(e)}static desc(e){return new Desc(e)}static digestMethod(e){return new DigestMethod(e)}static digestMethods(e){return new DigestMethods(e)}static draw(e){return new Draw(e)}static edge(e){return new Edge(e)}static encoding(e){return new Encoding(e)}static encodings(e){return new Encodings(e)}static encrypt(e){return new Encrypt(e)}static encryptData(e){return new EncryptData(e)}static encryption(e){return new Encryption(e)}static encryptionMethod(e){return new EncryptionMethod(e)}static encryptionMethods(e){return new EncryptionMethods(e)}static event(e){return new Event(e)}static exData(e){return new ExData(e)}static exObject(e){return new ExObject(e)}static exclGroup(e){return new ExclGroup(e)}static execute(e){return new Execute(e)}static extras(e){return new Extras(e)}static field(e){return new Field(e)}static fill(e){return new Fill(e)}static filter(e){return new Filter(e)}static float(e){return new Float(e)}static font(e){return new Font(e)}static format(e){return new Format(e)}static handler(e){return new Handler(e)}static hyphenation(e){return new Hyphenation(e)}static image(e){return new Image(e)}static imageEdit(e){return new ImageEdit(e)}static integer(e){return new Integer(e)}static issuers(e){return new Issuers(e)}static items(e){return new Items(e)}static keep(e){return new Keep(e)}static keyUsage(e){return new KeyUsage(e)}static line(e){return new Line(e)}static linear(e){return new Linear(e)}static lockDocument(e){return new LockDocument(e)}static manifest(e){return new Manifest(e)}static margin(e){return new Margin(e)}static mdp(e){return new Mdp(e)}static medium(e){return new Medium(e)}static message(e){return new Message(e)}static numericEdit(e){return new NumericEdit(e)}static occur(e){return new Occur(e)}static oid(e){return new Oid(e)}static oids(e){return new Oids(e)}static overflow(e){return new Overflow(e)}static pageArea(e){return new PageArea(e)}static pageSet(e){return new PageSet(e)}static para(e){return new Para(e)}static passwordEdit(e){return new PasswordEdit(e)}static pattern(e){return new Pattern(e)}static picture(e){return new Picture(e)}static proto(e){return new Proto(e)}static radial(e){return new Radial(e)}static reason(e){return new Reason(e)}static reasons(e){return new Reasons(e)}static rectangle(e){return new Rectangle(e)}static ref(e){return new RefElement(e)}static script(e){return new Script(e)}static setProperty(e){return new SetProperty(e)}static signData(e){return new SignData(e)}static signature(e){return new Signature(e)}static signing(e){return new Signing(e)}static solid(e){return new Solid(e)}static speak(e){return new Speak(e)}static stipple(e){return new Stipple(e)}static subform(e){return new Subform(e)}static subformSet(e){return new SubformSet(e)}static subjectDN(e){return new SubjectDN(e)}static subjectDNs(e){return new SubjectDNs(e)}static submit(e){return new Submit(e)}static template(e){return new Template(e)}static text(e){return new Text(e)}static textEdit(e){return new TextEdit(e)}static time(e){return new Time(e)}static timeStamp(e){return new TimeStamp(e)}static toolTip(e){return new ToolTip(e)}static traversal(e){return new Traversal(e)}static traverse(e){return new Traverse(e)}static ui(e){return new Ui(e)}static validate(e){return new Validate(e)}static value(e){return new Value(e)}static variables(e){return new Variables(e)}}t.TemplateNamespace=TemplateNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.addHTML=function addHTML(e,t,a){const i=e[r.$extra],s=i.availableSpace,[o,c,l,h]=a;switch(e.layout){case"position":i.width=Math.max(i.width,o+l);i.height=Math.max(i.height,c+h);i.children.push(t);break;case"lr-tb":case"rl-tb":if(!i.line||1===i.attempt){i.line=createLine(e,[]);i.children.push(i.line);i.numberInLine=0}i.numberInLine+=1;i.line.children.push(t);if(0===i.attempt){i.currentWidth+=l;i.height=Math.max(i.height,i.prevHeight+h)}else{i.currentWidth=l;i.prevHeight=i.height;i.height+=h;i.attempt=0}i.width=Math.max(i.width,i.currentWidth);break;case"rl-row":case"row":{i.children.push(t);i.width+=l;i.height=Math.max(i.height,h);const e=(0,n.measureToString)(i.height);for(const t of i.children)t.attributes.style.height=e;break}case"table":case"tb":i.width=Math.min(s.width,Math.max(i.width,l));i.height+=h;i.children.push(t)}};t.checkDimensions=function checkDimensions(e,t){if(null===e[r.$getTemplateRoot]()[r.$extra].firstUnsplittable)return!0;if(0===e.w||0===e.h)return!0;const a=e[r.$getSubformParent](),n=a[r.$extra]&&a[r.$extra].attempt||0,[,i,s,o]=function getTransformedBBox(e){let t,a,r=""===e.w?NaN:e.w,n=""===e.h?NaN:e.h,[i,s]=[0,0];switch(e.anchorType||""){case"bottomCenter":[i,s]=[r/2,n];break;case"bottomLeft":[i,s]=[0,n];break;case"bottomRight":[i,s]=[r,n];break;case"middleCenter":[i,s]=[r/2,n/2];break;case"middleLeft":[i,s]=[0,n/2];break;case"middleRight":[i,s]=[r,n/2];break;case"topCenter":[i,s]=[r/2,0];break;case"topRight":[i,s]=[r,0]}switch(e.rotate||0){case 0:[t,a]=[-i,-s];break;case 90:[t,a]=[-s,i];[r,n]=[n,-r];break;case 180:[t,a]=[i,s];[r,n]=[-r,-n];break;case 270:[t,a]=[s,-i];[r,n]=[-n,r]}return[e.x+t+Math.min(0,r),e.y+a+Math.min(0,n),Math.abs(r),Math.abs(n)]}(e);switch(a.layout){case"lr-tb":case"rl-tb":return 0===n?e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure?""!==e.w?Math.round(s-t.width)<=2:t.width>2:!(""!==e.h&&Math.round(o-t.height)>2)&&(""!==e.w?Math.round(s-t.width)<=2||0===a[r.$extra].numberInLine&&t.height>2:t.width>2):!!e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure||!(""!==e.h&&Math.round(o-t.height)>2)&&((""===e.w||Math.round(s-t.width)<=2||!a[r.$isThereMoreWidth]())&&t.height>2);case"table":case"tb":return!!e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure||(""===e.h||e[r.$isSplittable]()?(""===e.w||Math.round(s-t.width)<=2||!a[r.$isThereMoreWidth]())&&t.height>2:Math.round(o-t.height)<=2);case"position":if(e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure)return!0;if(""===e.h||Math.round(o+i-t.height)<=2)return!0;const c=e[r.$getTemplateRoot]()[r.$extra].currentContentArea;return o+i>c.h;case"rl-row":case"row":return!!e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure||(""===e.h||Math.round(o-t.height)<=2);default:return!0}};t.flushHTML=function flushHTML(e){if(!e[r.$extra])return null;const t={name:"div",attributes:e[r.$extra].attributes,children:e[r.$extra].children};if(e[r.$extra].failingNode){const a=e[r.$extra].failingNode[r.$flushHTML]();a&&(e.layout.endsWith("-tb")?t.children.push(createLine(e,[a])):t.children.push(a))}if(0===t.children.length)return null;return t};t.getAvailableSpace=function getAvailableSpace(e){const t=e[r.$extra].availableSpace,a=e.margin?e.margin.topInset+e.margin.bottomInset:0,n=e.margin?e.margin.leftInset+e.margin.rightInset:0;switch(e.layout){case"lr-tb":case"rl-tb":return 0===e[r.$extra].attempt?{width:t.width-n-e[r.$extra].currentWidth,height:t.height-a-e[r.$extra].prevHeight}:{width:t.width-n,height:t.height-a-e[r.$extra].height};case"rl-row":case"row":return{width:e[r.$extra].columnWidths.slice(e[r.$extra].currentColumn).reduce(((e,t)=>e+t)),height:t.height-n};case"table":case"tb":return{width:t.width-n,height:t.height-a-e[r.$extra].height};default:return t}};var r=a(78),n=a(85);function createLine(e,t){return{name:"div",attributes:{class:["lr-tb"===e.layout?"xfaLr":"xfaRl"]},children:t}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.computeBbox=function computeBbox(e,t,a){let n;if(""!==e.w&&""!==e.h)n=[e.x,e.y,e.w,e.h];else{if(!a)return null;let i=e.w;if(""===i){if(0===e.maxW){const t=e[r.$getSubformParent]();i="position"===t.layout&&""!==t.w?0:e.minW}else i=Math.min(e.maxW,a.width);t.attributes.style.width=measureToString(i)}let s=e.h;if(""===s){if(0===e.maxH){const t=e[r.$getSubformParent]();s="position"===t.layout&&""!==t.h?0:e.minH}else s=Math.min(e.maxH,a.height);t.attributes.style.height=measureToString(s)}n=[e.x,e.y,i,s]}return n};t.createWrapper=function createWrapper(e,t){const{attributes:a}=t,{style:n}=a,i={name:"div",attributes:{class:["xfaWrapper"],style:Object.create(null)},children:[]};a.class.push("xfaWrapped");if(e.border){const{widths:a,insets:s}=e.border[r.$extra];let o,c,l=s[0],h=s[3];const u=s[0]+s[2],d=s[1]+s[3];switch(e.border.hand){case"even":l-=a[0]/2;h-=a[3]/2;o=`calc(100% + ${(a[1]+a[3])/2-d}px)`;c=`calc(100% + ${(a[0]+a[2])/2-u}px)`;break;case"left":l-=a[0];h-=a[3];o=`calc(100% + ${a[1]+a[3]-d}px)`;c=`calc(100% + ${a[0]+a[2]-u}px)`;break;case"right":o=d?`calc(100% - ${d}px)`:"100%";c=u?`calc(100% - ${u}px)`:"100%"}const f=["xfaBorder"];isPrintOnly(e.border)&&f.push("xfaPrintOnly");const g={name:"div",attributes:{class:f,style:{top:`${l}px`,left:`${h}px`,width:o,height:c}},children:[]};for(const e of["border","borderWidth","borderColor","borderRadius","borderStyle"])if(void 0!==n[e]){g.attributes.style[e]=n[e];delete n[e]}i.children.push(g,t)}else i.children.push(t);for(const e of["background","backgroundClip","top","left","width","height","minWidth","minHeight","maxWidth","maxHeight","transform","transformOrigin","visibility"])if(void 0!==n[e]){i.attributes.style[e]=n[e];delete n[e]}"absolute"===n.position?i.attributes.style.position="absolute":i.attributes.style.position="relative";delete n.position;if(n.alignSelf){i.attributes.style.alignSelf=n.alignSelf;delete n.alignSelf}return i};t.fixDimensions=function fixDimensions(e){const t=e[r.$getSubformParent]();if(t.layout&&t.layout.includes("row")){const a=t[r.$extra],n=e.colSpan;let i;i=-1===n?a.columnWidths.slice(a.currentColumn).reduce(((e,t)=>e+t),0):a.columnWidths.slice(a.currentColumn,a.currentColumn+n).reduce(((e,t)=>e+t),0);isNaN(i)||(e.w=i)}t.layout&&"position"!==t.layout&&(e.x=e.y=0);"table"===e.layout&&""===e.w&&Array.isArray(e.columnWidths)&&(e.w=e.columnWidths.reduce(((e,t)=>e+t),0))};t.fixTextIndent=function fixTextIndent(e){const t=(0,i.getMeasurement)(e.textIndent,"0px");if(t>=0)return;const a="padding"+("left"==("right"===e.textAlign?"right":"left")?"Left":"Right"),r=(0,i.getMeasurement)(e[a],"0px");e[a]=r-t+"px"};t.fixURL=function fixURL(e){const t=(0,n.createValidAbsoluteUrl)(e,null,{addDefaultProtocol:!0,tryConvertEncoding:!0});return t?t.href:null};t.isPrintOnly=isPrintOnly;t.layoutClass=function layoutClass(e){switch(e.layout){case"position":default:return"xfaPosition";case"lr-tb":return"xfaLrTb";case"rl-row":return"xfaRlRow";case"rl-tb":return"xfaRlTb";case"row":return"xfaRow";case"table":return"xfaTable";case"tb":return"xfaTb"}};t.layoutNode=function layoutNode(e,t){let a=null,n=null,i=!1;if((!e.w||!e.h)&&e.value){let s=0,o=0;if(e.margin){s=e.margin.leftInset+e.margin.rightInset;o=e.margin.topInset+e.margin.bottomInset}let c=null,l=null;if(e.para){l=Object.create(null);c=""===e.para.lineHeight?null:e.para.lineHeight;l.top=""===e.para.spaceAbove?0:e.para.spaceAbove;l.bottom=""===e.para.spaceBelow?0:e.para.spaceBelow;l.left=""===e.para.marginLeft?0:e.para.marginLeft;l.right=""===e.para.marginRight?0:e.para.marginRight}let h=e.font;if(!h){const t=e[r.$getTemplateRoot]();let a=e[r.$getParent]();for(;a&&a!==t;){if(a.font){h=a.font;break}a=a[r.$getParent]()}}const u=(e.w?e.w:t.width)-s,d=e[r.$globalData].fontFinder;if(e.value.exData&&e.value.exData[r.$content]&&"text/html"===e.value.exData.contentType){const t=layoutText(e.value.exData[r.$content],h,l,c,d,u);n=t.width;a=t.height;i=t.isBroken}else{const t=e.value[r.$text]();if(t){const e=layoutText(t,h,l,c,d,u);n=e.width;a=e.height;i=e.isBroken}}null===n||e.w||(n+=s);null===a||e.h||(a+=o)}return{w:n,h:a,isBroken:i}};t.measureToString=measureToString;t.setAccess=function setAccess(e,t){switch(e.access){case"nonInteractive":t.push("xfaNonInteractive");break;case"readOnly":t.push("xfaReadOnly");break;case"protected":t.push("xfaDisabled")}};t.setFontFamily=function setFontFamily(e,t,a,r){if(!a){delete r.fontFamily;return}const n=(0,i.stripQuotes)(e.typeface);r.fontFamily=`"${n}"`;const o=a.find(n);if(o){const{fontFamily:a}=o.regular.cssFontInfo;a!==n&&(r.fontFamily=`"${a}"`);const i=getCurrentPara(t);if(i&&""!==i.lineHeight)return;if(r.lineHeight)return;const c=(0,s.selectFont)(e,o);c&&(r.lineHeight=Math.max(1.2,c.lineHeight))}};t.setMinMaxDimensions=function setMinMaxDimensions(e,t){if("position"===e[r.$getSubformParent]().layout){e.minW>0&&(t.minWidth=measureToString(e.minW));e.maxW>0&&(t.maxWidth=measureToString(e.maxW));e.minH>0&&(t.minHeight=measureToString(e.minH));e.maxH>0&&(t.maxHeight=measureToString(e.maxH))}};t.setPara=function setPara(e,t,a){if(a.attributes.class&&a.attributes.class.includes("xfaRich")){if(t){""===e.h&&(t.height="auto");""===e.w&&(t.width="auto")}const n=getCurrentPara(e);if(n){const e=a.attributes.style;e.display="flex";e.flexDirection="column";switch(n.vAlign){case"top":e.justifyContent="start";break;case"bottom":e.justifyContent="end";break;case"middle":e.justifyContent="center"}const t=n[r.$toStyle]();for(const[a,r]of Object.entries(t))a in e||(e[a]=r)}}};t.toStyle=function toStyle(e,...t){const a=Object.create(null);for(const i of t){const t=e[i];if(null!==t)if(c.hasOwnProperty(i))c[i](e,a);else if(t instanceof r.XFAObject){const e=t[r.$toStyle]();e?Object.assign(a,e):(0,n.warn)(`(DEBUG) - XFA - style for ${i} not implemented yet`)}}return a};var r=a(78),n=a(2),i=a(79),s=a(86),o=a(87);function measureToString(e){return"string"==typeof e?"0px":Number.isInteger(e)?`${e}px`:`${e.toFixed(2)}px`}const c={anchorType(e,t){const a=e[r.$getSubformParent]();if(a&&(!a.layout||"position"===a.layout)){"transform"in t||(t.transform="");switch(e.anchorType){case"bottomCenter":t.transform+="translate(-50%, -100%)";break;case"bottomLeft":t.transform+="translate(0,-100%)";break;case"bottomRight":t.transform+="translate(-100%,-100%)";break;case"middleCenter":t.transform+="translate(-50%,-50%)";break;case"middleLeft":t.transform+="translate(0,-50%)";break;case"middleRight":t.transform+="translate(-100%,-50%)";break;case"topCenter":t.transform+="translate(-50%,0)";break;case"topRight":t.transform+="translate(-100%,0)"}}},dimensions(e,t){const a=e[r.$getSubformParent]();let n=e.w;const i=e.h;if(a.layout&&a.layout.includes("row")){const t=a[r.$extra],i=e.colSpan;let s;if(-1===i){s=t.columnWidths.slice(t.currentColumn).reduce(((e,t)=>e+t),0);t.currentColumn=0}else{s=t.columnWidths.slice(t.currentColumn,t.currentColumn+i).reduce(((e,t)=>e+t),0);t.currentColumn=(t.currentColumn+e.colSpan)%t.columnWidths.length}isNaN(s)||(n=e.w=s)}t.width=""!==n?measureToString(n):"auto";t.height=""!==i?measureToString(i):"auto"},position(e,t){const a=e[r.$getSubformParent]();if(!a||!a.layout||"position"===a.layout){t.position="absolute";t.left=measureToString(e.x);t.top=measureToString(e.y)}},rotate(e,t){if(e.rotate){"transform"in t||(t.transform="");t.transform+=`rotate(-${e.rotate}deg)`;t.transformOrigin="top left"}},presence(e,t){switch(e.presence){case"invisible":t.visibility="hidden";break;case"hidden":case"inactive":t.display="none"}},hAlign(e,t){if("para"===e[r.$nodeName])switch(e.hAlign){case"justifyAll":t.textAlign="justify-all";break;case"radix":t.textAlign="left";break;default:t.textAlign=e.hAlign}else switch(e.hAlign){case"left":t.alignSelf="start";break;case"center":t.alignSelf="center";break;case"right":t.alignSelf="end"}},margin(e,t){e.margin&&(t.margin=e.margin[r.$toStyle]().margin)}};function layoutText(e,t,a,n,i,s){const c=new o.TextMeasure(t,a,n,i);"string"==typeof e?c.addString(e):e[r.$pushGlyphs](c);return c.compute(s)}function isPrintOnly(e){return e.relevant.length>0&&!e.relevant[0].excluded&&"print"===e.relevant[0].viewname}function getCurrentPara(e){const t=e[r.$getTemplateRoot]()[r.$extra].paraStack;return t.length?t[t.length-1]:null}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.FontFinder=void 0;t.getMetrics=function getMetrics(e,t=!1){let a=null;if(e){const t=(0,n.stripQuotes)(e.typeface),i=e[r.$globalData].fontFinder.find(t);a=selectFont(e,i)}if(!a)return{lineHeight:12,lineGap:2,lineNoGap:10};const i=e.size||10,s=a.lineHeight?Math.max(t?0:1.2,a.lineHeight):1.2,o=void 0===a.lineGap?.2:a.lineGap;return{lineHeight:s*i,lineGap:o*i,lineNoGap:Math.max(1,s-o)*i}};t.selectFont=selectFont;var r=a(78),n=a(79),i=a(2);t.FontFinder=class FontFinder{constructor(e){this.fonts=new Map;this.cache=new Map;this.warned=new Set;this.defaultFont=null;this.add(e)}add(e,t=null){for(const t of e)this.addPdfFont(t);for(const e of this.fonts.values())e.regular||(e.regular=e.italic||e.bold||e.bolditalic);if(!t||0===t.size)return;const a=this.fonts.get("PdfJS-Fallback-PdfJS-XFA");for(const e of t)this.fonts.set(e,a)}addPdfFont(e){const t=e.cssFontInfo,a=t.fontFamily;let r=this.fonts.get(a);if(!r){r=Object.create(null);this.fonts.set(a,r);this.defaultFont||(this.defaultFont=r)}let n="";const i=parseFloat(t.fontWeight);0!==parseFloat(t.italicAngle)?n=i>=700?"bolditalic":"italic":i>=700&&(n="bold");if(!n){(e.name.includes("Bold")||e.psName&&e.psName.includes("Bold"))&&(n="bold");(e.name.includes("Italic")||e.name.endsWith("It")||e.psName&&(e.psName.includes("Italic")||e.psName.endsWith("It")))&&(n+="italic")}n||(n="regular");r[n]=e}getDefault(){return this.defaultFont}find(e,t=!0){let a=this.fonts.get(e)||this.cache.get(e);if(a)return a;const r=/,|-|_| |bolditalic|bold|italic|regular|it/gi;let n=e.replace(r,"");a=this.fonts.get(n);if(a){this.cache.set(e,a);return a}n=n.toLowerCase();const s=[];for(const[e,t]of this.fonts.entries())e.replace(r,"").toLowerCase().startsWith(n)&&s.push(t);if(0===s.length)for(const[,e]of this.fonts.entries())e.regular.name&&e.regular.name.replace(r,"").toLowerCase().startsWith(n)&&s.push(e);if(0===s.length){n=n.replace(/psmt|mt/gi,"");for(const[e,t]of this.fonts.entries())e.replace(r,"").toLowerCase().startsWith(n)&&s.push(t)}if(0===s.length)for(const e of this.fonts.values())e.regular.name&&e.regular.name.replace(r,"").toLowerCase().startsWith(n)&&s.push(e);if(s.length>=1){1!==s.length&&t&&(0,i.warn)(`XFA - Too many choices to guess the correct font: ${e}`);this.cache.set(e,s[0]);return s[0]}if(t&&!this.warned.has(e)){this.warned.add(e);(0,i.warn)(`XFA - Cannot find the font: ${e}`)}return null}};function selectFont(e,t){return"italic"===e.posture?"bold"===e.weight?t.bolditalic:t.italic:"bold"===e.weight?t.bold:t.regular}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.TextMeasure=void 0;var r=a(86);class FontInfo{constructor(e,t,a,n){this.lineHeight=a;this.paraMargin=t||{top:0,bottom:0,left:0,right:0};if(!e){[this.pdfFont,this.xfaFont]=this.defaultFont(n);return}this.xfaFont={typeface:e.typeface,posture:e.posture,weight:e.weight,size:e.size,letterSpacing:e.letterSpacing};const i=n.find(e.typeface);if(i){this.pdfFont=(0,r.selectFont)(e,i);this.pdfFont||([this.pdfFont,this.xfaFont]=this.defaultFont(n))}else[this.pdfFont,this.xfaFont]=this.defaultFont(n)}defaultFont(e){const t=e.find("Helvetica",!1)||e.find("Myriad Pro",!1)||e.find("Arial",!1)||e.getDefault();if(t&&t.regular){const e=t.regular;return[e,{typeface:e.cssFontInfo.fontFamily,posture:"normal",weight:"normal",size:10,letterSpacing:0}]}return[null,{typeface:"Courier",posture:"normal",weight:"normal",size:10,letterSpacing:0}]}}class FontSelector{constructor(e,t,a,r){this.fontFinder=r;this.stack=[new FontInfo(e,t,a,r)]}pushData(e,t,a){const r=this.stack[this.stack.length-1];for(const t of["typeface","posture","weight","size","letterSpacing"])e[t]||(e[t]=r.xfaFont[t]);for(const e of["top","bottom","left","right"])isNaN(t[e])&&(t[e]=r.paraMargin[e]);const n=new FontInfo(e,t,a||r.lineHeight,this.fontFinder);n.pdfFont||(n.pdfFont=r.pdfFont);this.stack.push(n)}popFont(){this.stack.pop()}topFont(){return this.stack[this.stack.length-1]}}t.TextMeasure=class TextMeasure{constructor(e,t,a,r){this.glyphs=[];this.fontSelector=new FontSelector(e,t,a,r);this.extraHeight=0}pushData(e,t,a){this.fontSelector.pushData(e,t,a)}popFont(e){return this.fontSelector.popFont()}addPara(){const e=this.fontSelector.topFont();this.extraHeight+=e.paraMargin.top+e.paraMargin.bottom}addString(e){if(!e)return;const t=this.fontSelector.topFont(),a=t.xfaFont.size;if(t.pdfFont){const r=t.xfaFont.letterSpacing,n=t.pdfFont,i=n.lineHeight||1.2,s=t.lineHeight||Math.max(1.2,i)*a,o=i-(void 0===n.lineGap?.2:n.lineGap),c=Math.max(1,o)*a,l=a/1e3,h=n.defaultWidth||n.charsToGlyphs(" ")[0].width;for(const t of e.split(/[\u2029\n]/)){const e=n.encodeString(t).join(""),a=n.charsToGlyphs(e);for(const e of a){const t=e.width||h;this.glyphs.push([t*l+r,s,c,e.unicode,!1])}this.glyphs.push([0,0,0,"\n",!0])}this.glyphs.pop()}else{for(const t of e.split(/[\u2029\n]/)){for(const e of t.split(""))this.glyphs.push([a,1.2*a,a,e,!1]);this.glyphs.push([0,0,0,"\n",!0])}this.glyphs.pop()}}compute(e){let t=-1,a=0,r=0,n=0,i=0,s=0,o=!1,c=!0;for(let l=0,h=this.glyphs.length;le){r=Math.max(r,i);i=0;n+=s;s=m;t=-1;a=0;o=!0;c=!1}else{s=Math.max(m,s);a=i;i+=h;t=l}else if(i+h>e){n+=s;s=m;if(-1!==t){l=t;r=Math.max(r,a);i=0;t=-1;a=0}else{r=Math.max(r,i);i=h}o=!0;c=!1}else{i+=h;s=Math.max(m,s)}}r=Math.max(r,i);n+=s+this.extraHeight;return{width:1.02*r,height:n,isBroken:o}}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.DataHandler=void 0;var r=a(78);t.DataHandler=class DataHandler{constructor(e,t){this.data=t;this.dataset=e.datasets||null}serialize(e){const t=[[-1,this.data[r.$getChildren]()]];for(;t.length>0;){const a=t[t.length-1],[n,i]=a;if(n+1===i.length){t.pop();continue}const s=i[++a[0]],o=e.get(s[r.$uid]);if(o)s[r.$setValue](o);else{const t=s[r.$getAttributes]();for(const a of t.values()){const t=e.get(a[r.$uid]);if(t){a[r.$setValue](t);break}}}const c=s[r.$getChildren]();c.length>0&&t.push([-1,c])}const a=[''];if(this.dataset)for(const e of this.dataset[r.$getChildren]())"data"!==e[r.$nodeName]&&e[r.$toString](a);this.data[r.$toString](a);a.push("");return a.join("")}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XFAParser=void 0;var r=a(78),n=a(71),i=a(90),s=a(2);class XFAParser extends n.XMLParserBase{constructor(e=null,t=!1){super();this._builder=new i.Builder(e);this._stack=[];this._globalData={usedTypefaces:new Set};this._ids=new Map;this._current=this._builder.buildRoot(this._ids);this._errorCode=n.XMLParserErrorCode.NoError;this._whiteRegex=/^\s+$/;this._nbsps=/\xa0+/g;this._richText=t}parse(e){this.parseXml(e);if(this._errorCode===n.XMLParserErrorCode.NoError){this._current[r.$finalize]();return this._current.element}}onText(e){e=e.replace(this._nbsps,(e=>e.slice(1)+" "));this._richText||this._current[r.$acceptWhitespace]()?this._current[r.$onText](e,this._richText):this._whiteRegex.test(e)||this._current[r.$onText](e.trim())}onCdata(e){this._current[r.$onText](e)}_mkAttributes(e,t){let a=null,n=null;const i=Object.create({});for(const{name:o,value:c}of e)if("xmlns"===o)a?(0,s.warn)(`XFA - multiple namespace definition in <${t}>`):a=c;else if(o.startsWith("xmlns:")){const e=o.substring("xmlns:".length);n||(n=[]);n.push({prefix:e,value:c})}else{const e=o.indexOf(":");if(-1===e)i[o]=c;else{let t=i[r.$nsAttributes];t||(t=i[r.$nsAttributes]=Object.create(null));const[a,n]=[o.slice(0,e),o.slice(e+1)];let s=t[a];s||(s=t[a]=Object.create(null));s[n]=c}}return[a,n,i]}_getNameAndPrefix(e,t){const a=e.indexOf(":");return-1===a?[e,null]:[e.substring(a+1),t?"":e.substring(0,a)]}onBeginElement(e,t,a){const[n,i,s]=this._mkAttributes(t,e),[o,c]=this._getNameAndPrefix(e,this._builder.isNsAgnostic()),l=this._builder.build({nsPrefix:c,name:o,attributes:s,namespace:n,prefixes:i});l[r.$globalData]=this._globalData;if(a){l[r.$finalize]();this._current[r.$onChild](l)&&l[r.$setId](this._ids);l[r.$clean](this._builder)}else{this._stack.push(this._current);this._current=l}}onEndElement(e){const t=this._current;if(t[r.$isCDATAXml]()&&"string"==typeof t[r.$content]){const e=new XFAParser;e._globalData=this._globalData;const a=e.parse(t[r.$content]);t[r.$content]=null;t[r.$onChild](a)}t[r.$finalize]();this._current=this._stack.pop();this._current[r.$onChild](t)&&t[r.$setId](this._ids);t[r.$clean](this._builder)}onError(e){this._errorCode=e}}t.XFAParser=XFAParser},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Builder=void 0;var r=a(80),n=a(78),i=a(91),s=a(83),o=a(100),c=a(2);class Root extends n.XFAObject{constructor(e){super(-1,"root",Object.create(null));this.element=null;this[n.$ids]=e}[n.$onChild](e){this.element=e;return!0}[n.$finalize](){super[n.$finalize]();if(this.element.template instanceof s.Template){this[n.$ids].set(n.$root,this.element);this.element.template[n.$resolvePrototypes](this[n.$ids]);this.element.template[n.$ids]=this[n.$ids]}}}class Empty extends n.XFAObject{constructor(){super(-1,"",Object.create(null))}[n.$onChild](e){return!1}}t.Builder=class Builder{constructor(e=null){this._namespaceStack=[];this._nsAgnosticLevel=0;this._namespacePrefixes=new Map;this._namespaces=new Map;this._nextNsId=Math.max(...Object.values(r.NamespaceIds).map((({id:e})=>e)));this._currentNamespace=e||new o.UnknownNamespace(++this._nextNsId)}buildRoot(e){return new Root(e)}build({nsPrefix:e,name:t,attributes:a,namespace:s,prefixes:o}){const c=null!==s;if(c){this._namespaceStack.push(this._currentNamespace);this._currentNamespace=this._searchNamespace(s)}o&&this._addNamespacePrefix(o);if(a.hasOwnProperty(n.$nsAttributes)){const e=i.NamespaceSetUp.datasets,t=a[n.$nsAttributes];let r=null;for(const[a,n]of Object.entries(t)){if(this._getNamespaceToUse(a)===e){r={xfa:n};break}}r?a[n.$nsAttributes]=r:delete a[n.$nsAttributes]}const l=this._getNamespaceToUse(e),h=l&&l[r.$buildXFAObject](t,a)||new Empty;h[n.$isNsAgnostic]()&&this._nsAgnosticLevel++;(c||o||h[n.$isNsAgnostic]())&&(h[n.$cleanup]={hasNamespace:c,prefixes:o,nsAgnostic:h[n.$isNsAgnostic]()});return h}isNsAgnostic(){return this._nsAgnosticLevel>0}_searchNamespace(e){let t=this._namespaces.get(e);if(t)return t;for(const[a,{check:n}]of Object.entries(r.NamespaceIds))if(n(e)){t=i.NamespaceSetUp[a];if(t){this._namespaces.set(e,t);return t}break}t=new o.UnknownNamespace(++this._nextNsId);this._namespaces.set(e,t);return t}_addNamespacePrefix(e){for(const{prefix:t,value:a}of e){const e=this._searchNamespace(a);let r=this._namespacePrefixes.get(t);if(!r){r=[];this._namespacePrefixes.set(t,r)}r.push(e)}}_getNamespaceToUse(e){if(!e)return this._currentNamespace;const t=this._namespacePrefixes.get(e);if(t&&t.length>0)return t[t.length-1];(0,c.warn)(`Unknown namespace prefix: ${e}.`);return null}clean(e){const{hasNamespace:t,prefixes:a,nsAgnostic:r}=e;t&&(this._currentNamespace=this._namespaceStack.pop());a&&a.forEach((({prefix:e})=>{this._namespacePrefixes.get(e).pop()}));r&&this._nsAgnosticLevel--}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.NamespaceSetUp=void 0;var r=a(92),n=a(93),i=a(94),s=a(95),o=a(96),c=a(97),l=a(83),h=a(98),u=a(99);const d={config:r.ConfigNamespace,connection:n.ConnectionSetNamespace,datasets:i.DatasetsNamespace,localeSet:s.LocaleSetNamespace,signature:o.SignatureNamespace,stylesheet:c.StylesheetNamespace,template:l.TemplateNamespace,xdp:h.XdpNamespace,xhtml:u.XhtmlNamespace};t.NamespaceSetUp=d},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ConfigNamespace=void 0;var r=a(80),n=a(78),i=a(79),s=a(2);const o=r.NamespaceIds.config.id;class Acrobat extends n.XFAObject{constructor(e){super(o,"acrobat",!0);this.acrobat7=null;this.autoSave=null;this.common=null;this.validate=null;this.validateApprovalSignatures=null;this.submitUrl=new n.XFAObjectArray}}class Acrobat7 extends n.XFAObject{constructor(e){super(o,"acrobat7",!0);this.dynamicRender=null}}class ADBE_JSConsole extends n.OptionObject{constructor(e){super(o,"ADBE_JSConsole",["delegate","Enable","Disable"])}}class ADBE_JSDebugger extends n.OptionObject{constructor(e){super(o,"ADBE_JSDebugger",["delegate","Enable","Disable"])}}class AddSilentPrint extends n.Option01{constructor(e){super(o,"addSilentPrint")}}class AddViewerPreferences extends n.Option01{constructor(e){super(o,"addViewerPreferences")}}class AdjustData extends n.Option10{constructor(e){super(o,"adjustData")}}class AdobeExtensionLevel extends n.IntegerObject{constructor(e){super(o,"adobeExtensionLevel",0,(e=>e>=1&&e<=8))}}class Agent extends n.XFAObject{constructor(e){super(o,"agent",!0);this.name=e.name?e.name.trim():"";this.common=new n.XFAObjectArray}}class AlwaysEmbed extends n.ContentObject{constructor(e){super(o,"alwaysEmbed")}}class Amd extends n.StringObject{constructor(e){super(o,"amd")}}class Area extends n.XFAObject{constructor(e){super(o,"area");this.level=(0,i.getInteger)({data:e.level,defaultValue:0,validate:e=>e>=1&&e<=3});this.name=(0,i.getStringOption)(e.name,["","barcode","coreinit","deviceDriver","font","general","layout","merge","script","signature","sourceSet","templateCache"])}}class Attributes extends n.OptionObject{constructor(e){super(o,"attributes",["preserve","delegate","ignore"])}}class AutoSave extends n.OptionObject{constructor(e){super(o,"autoSave",["disabled","enabled"])}}class Base extends n.StringObject{constructor(e){super(o,"base")}}class BatchOutput extends n.XFAObject{constructor(e){super(o,"batchOutput");this.format=(0,i.getStringOption)(e.format,["none","concat","zip","zipCompress"])}}class BehaviorOverride extends n.ContentObject{constructor(e){super(o,"behaviorOverride")}[n.$finalize](){this[n.$content]=new Map(this[n.$content].trim().split(/\s+/).filter((e=>e.includes(":"))).map((e=>e.split(":",2))))}}class Cache extends n.XFAObject{constructor(e){super(o,"cache",!0);this.templateCache=null}}class Change extends n.Option01{constructor(e){super(o,"change")}}class Common extends n.XFAObject{constructor(e){super(o,"common",!0);this.data=null;this.locale=null;this.localeSet=null;this.messaging=null;this.suppressBanner=null;this.template=null;this.validationMessaging=null;this.versionControl=null;this.log=new n.XFAObjectArray}}class Compress extends n.XFAObject{constructor(e){super(o,"compress");this.scope=(0,i.getStringOption)(e.scope,["imageOnly","document"])}}class CompressLogicalStructure extends n.Option01{constructor(e){super(o,"compressLogicalStructure")}}class CompressObjectStream extends n.Option10{constructor(e){super(o,"compressObjectStream")}}class Compression extends n.XFAObject{constructor(e){super(o,"compression",!0);this.compressLogicalStructure=null;this.compressObjectStream=null;this.level=null;this.type=null}}class Config extends n.XFAObject{constructor(e){super(o,"config",!0);this.acrobat=null;this.present=null;this.trace=null;this.agent=new n.XFAObjectArray}}class Conformance extends n.OptionObject{constructor(e){super(o,"conformance",["A","B"])}}class ContentCopy extends n.Option01{constructor(e){super(o,"contentCopy")}}class Copies extends n.IntegerObject{constructor(e){super(o,"copies",1,(e=>e>=1))}}class Creator extends n.StringObject{constructor(e){super(o,"creator")}}class CurrentPage extends n.IntegerObject{constructor(e){super(o,"currentPage",0,(e=>e>=0))}}class Data extends n.XFAObject{constructor(e){super(o,"data",!0);this.adjustData=null;this.attributes=null;this.incrementalLoad=null;this.outputXSL=null;this.range=null;this.record=null;this.startNode=null;this.uri=null;this.window=null;this.xsl=null;this.excludeNS=new n.XFAObjectArray;this.transform=new n.XFAObjectArray}}class Debug extends n.XFAObject{constructor(e){super(o,"debug",!0);this.uri=null}}class DefaultTypeface extends n.ContentObject{constructor(e){super(o,"defaultTypeface");this.writingScript=(0,i.getStringOption)(e.writingScript,["*","Arabic","Cyrillic","EastEuropeanRoman","Greek","Hebrew","Japanese","Korean","Roman","SimplifiedChinese","Thai","TraditionalChinese","Vietnamese"])}}class Destination extends n.OptionObject{constructor(e){super(o,"destination",["pdf","pcl","ps","webClient","zpl"])}}class DocumentAssembly extends n.Option01{constructor(e){super(o,"documentAssembly")}}class Driver extends n.XFAObject{constructor(e){super(o,"driver",!0);this.name=e.name?e.name.trim():"";this.fontInfo=null;this.xdc=null}}class DuplexOption extends n.OptionObject{constructor(e){super(o,"duplexOption",["simplex","duplexFlipLongEdge","duplexFlipShortEdge"])}}class DynamicRender extends n.OptionObject{constructor(e){super(o,"dynamicRender",["forbidden","required"])}}class Embed extends n.Option01{constructor(e){super(o,"embed")}}class Encrypt extends n.Option01{constructor(e){super(o,"encrypt")}}class Encryption extends n.XFAObject{constructor(e){super(o,"encryption",!0);this.encrypt=null;this.encryptionLevel=null;this.permissions=null}}class EncryptionLevel extends n.OptionObject{constructor(e){super(o,"encryptionLevel",["40bit","128bit"])}}class Enforce extends n.StringObject{constructor(e){super(o,"enforce")}}class Equate extends n.XFAObject{constructor(e){super(o,"equate");this.force=(0,i.getInteger)({data:e.force,defaultValue:1,validate:e=>0===e});this.from=e.from||"";this.to=e.to||""}}class EquateRange extends n.XFAObject{constructor(e){super(o,"equateRange");this.from=e.from||"";this.to=e.to||"";this._unicodeRange=e.unicodeRange||""}get unicodeRange(){const e=[],t=/U\+([0-9a-fA-F]+)/,a=this._unicodeRange;for(let r of a.split(",").map((e=>e.trim())).filter((e=>!!e))){r=r.split("-",2).map((e=>{const a=e.match(t);return a?parseInt(a[1],16):0}));1===r.length&&r.push(r[0]);e.push(r)}return(0,s.shadow)(this,"unicodeRange",e)}}class Exclude extends n.ContentObject{constructor(e){super(o,"exclude")}[n.$finalize](){this[n.$content]=this[n.$content].trim().split(/\s+/).filter((e=>e&&["calculate","close","enter","exit","initialize","ready","validate"].includes(e)))}}class ExcludeNS extends n.StringObject{constructor(e){super(o,"excludeNS")}}class FlipLabel extends n.OptionObject{constructor(e){super(o,"flipLabel",["usePrinterSetting","on","off"])}}class FontInfo extends n.XFAObject{constructor(e){super(o,"fontInfo",!0);this.embed=null;this.map=null;this.subsetBelow=null;this.alwaysEmbed=new n.XFAObjectArray;this.defaultTypeface=new n.XFAObjectArray;this.neverEmbed=new n.XFAObjectArray}}class FormFieldFilling extends n.Option01{constructor(e){super(o,"formFieldFilling")}}class GroupParent extends n.StringObject{constructor(e){super(o,"groupParent")}}class IfEmpty extends n.OptionObject{constructor(e){super(o,"ifEmpty",["dataValue","dataGroup","ignore","remove"])}}class IncludeXDPContent extends n.StringObject{constructor(e){super(o,"includeXDPContent")}}class IncrementalLoad extends n.OptionObject{constructor(e){super(o,"incrementalLoad",["none","forwardOnly"])}}class IncrementalMerge extends n.Option01{constructor(e){super(o,"incrementalMerge")}}class Interactive extends n.Option01{constructor(e){super(o,"interactive")}}class Jog extends n.OptionObject{constructor(e){super(o,"jog",["usePrinterSetting","none","pageSet"])}}class LabelPrinter extends n.XFAObject{constructor(e){super(o,"labelPrinter",!0);this.name=(0,i.getStringOption)(e.name,["zpl","dpl","ipl","tcpl"]);this.batchOutput=null;this.flipLabel=null;this.fontInfo=null;this.xdc=null}}class Layout extends n.OptionObject{constructor(e){super(o,"layout",["paginate","panel"])}}class Level extends n.IntegerObject{constructor(e){super(o,"level",0,(e=>e>0))}}class Linearized extends n.Option01{constructor(e){super(o,"linearized")}}class Locale extends n.StringObject{constructor(e){super(o,"locale")}}class LocaleSet extends n.StringObject{constructor(e){super(o,"localeSet")}}class Log extends n.XFAObject{constructor(e){super(o,"log",!0);this.mode=null;this.threshold=null;this.to=null;this.uri=null}}class MapElement extends n.XFAObject{constructor(e){super(o,"map",!0);this.equate=new n.XFAObjectArray;this.equateRange=new n.XFAObjectArray}}class MediumInfo extends n.XFAObject{constructor(e){super(o,"mediumInfo",!0);this.map=null}}class Message extends n.XFAObject{constructor(e){super(o,"message",!0);this.msgId=null;this.severity=null}}class Messaging extends n.XFAObject{constructor(e){super(o,"messaging",!0);this.message=new n.XFAObjectArray}}class Mode extends n.OptionObject{constructor(e){super(o,"mode",["append","overwrite"])}}class ModifyAnnots extends n.Option01{constructor(e){super(o,"modifyAnnots")}}class MsgId extends n.IntegerObject{constructor(e){super(o,"msgId",1,(e=>e>=1))}}class NameAttr extends n.StringObject{constructor(e){super(o,"nameAttr")}}class NeverEmbed extends n.ContentObject{constructor(e){super(o,"neverEmbed")}}class NumberOfCopies extends n.IntegerObject{constructor(e){super(o,"numberOfCopies",null,(e=>e>=2&&e<=5))}}class OpenAction extends n.XFAObject{constructor(e){super(o,"openAction",!0);this.destination=null}}class Output extends n.XFAObject{constructor(e){super(o,"output",!0);this.to=null;this.type=null;this.uri=null}}class OutputBin extends n.StringObject{constructor(e){super(o,"outputBin")}}class OutputXSL extends n.XFAObject{constructor(e){super(o,"outputXSL",!0);this.uri=null}}class Overprint extends n.OptionObject{constructor(e){super(o,"overprint",["none","both","draw","field"])}}class Packets extends n.StringObject{constructor(e){super(o,"packets")}[n.$finalize](){"*"!==this[n.$content]&&(this[n.$content]=this[n.$content].trim().split(/\s+/).filter((e=>["config","datasets","template","xfdf","xslt"].includes(e))))}}class PageOffset extends n.XFAObject{constructor(e){super(o,"pageOffset");this.x=(0,i.getInteger)({data:e.x,defaultValue:"useXDCSetting",validate:e=>!0});this.y=(0,i.getInteger)({data:e.y,defaultValue:"useXDCSetting",validate:e=>!0})}}class PageRange extends n.StringObject{constructor(e){super(o,"pageRange")}[n.$finalize](){const e=this[n.$content].trim().split(/\s+/).map((e=>parseInt(e,10))),t=[];for(let a=0,r=e.length;a!1))}}class Pcl extends n.XFAObject{constructor(e){super(o,"pcl",!0);this.name=e.name||"";this.batchOutput=null;this.fontInfo=null;this.jog=null;this.mediumInfo=null;this.outputBin=null;this.pageOffset=null;this.staple=null;this.xdc=null}}class Pdf extends n.XFAObject{constructor(e){super(o,"pdf",!0);this.name=e.name||"";this.adobeExtensionLevel=null;this.batchOutput=null;this.compression=null;this.creator=null;this.encryption=null;this.fontInfo=null;this.interactive=null;this.linearized=null;this.openAction=null;this.pdfa=null;this.producer=null;this.renderPolicy=null;this.scriptModel=null;this.silentPrint=null;this.submitFormat=null;this.tagged=null;this.version=null;this.viewerPreferences=null;this.xdc=null}}class Pdfa extends n.XFAObject{constructor(e){super(o,"pdfa",!0);this.amd=null;this.conformance=null;this.includeXDPContent=null;this.part=null}}class Permissions extends n.XFAObject{constructor(e){super(o,"permissions",!0);this.accessibleContent=null;this.change=null;this.contentCopy=null;this.documentAssembly=null;this.formFieldFilling=null;this.modifyAnnots=null;this.plaintextMetadata=null;this.print=null;this.printHighQuality=null}}class PickTrayByPDFSize extends n.Option01{constructor(e){super(o,"pickTrayByPDFSize")}}class Picture extends n.StringObject{constructor(e){super(o,"picture")}}class PlaintextMetadata extends n.Option01{constructor(e){super(o,"plaintextMetadata")}}class Presence extends n.OptionObject{constructor(e){super(o,"presence",["preserve","dissolve","dissolveStructure","ignore","remove"])}}class Present extends n.XFAObject{constructor(e){super(o,"present",!0);this.behaviorOverride=null;this.cache=null;this.common=null;this.copies=null;this.destination=null;this.incrementalMerge=null;this.layout=null;this.output=null;this.overprint=null;this.pagination=null;this.paginationOverride=null;this.script=null;this.validate=null;this.xdp=null;this.driver=new n.XFAObjectArray;this.labelPrinter=new n.XFAObjectArray;this.pcl=new n.XFAObjectArray;this.pdf=new n.XFAObjectArray;this.ps=new n.XFAObjectArray;this.submitUrl=new n.XFAObjectArray;this.webClient=new n.XFAObjectArray;this.zpl=new n.XFAObjectArray}}class Print extends n.Option01{constructor(e){super(o,"print")}}class PrintHighQuality extends n.Option01{constructor(e){super(o,"printHighQuality")}}class PrintScaling extends n.OptionObject{constructor(e){super(o,"printScaling",["appdefault","noScaling"])}}class PrinterName extends n.StringObject{constructor(e){super(o,"printerName")}}class Producer extends n.StringObject{constructor(e){super(o,"producer")}}class Ps extends n.XFAObject{constructor(e){super(o,"ps",!0);this.name=e.name||"";this.batchOutput=null;this.fontInfo=null;this.jog=null;this.mediumInfo=null;this.outputBin=null;this.staple=null;this.xdc=null}}class Range extends n.ContentObject{constructor(e){super(o,"range")}[n.$finalize](){this[n.$content]=this[n.$content].trim().split(/\s*,\s*/,2).map((e=>e.split("-").map((e=>parseInt(e.trim(),10))))).filter((e=>e.every((e=>!isNaN(e))))).map((e=>{1===e.length&&e.push(e[0]);return e}))}}class Record extends n.ContentObject{constructor(e){super(o,"record")}[n.$finalize](){this[n.$content]=this[n.$content].trim();const e=parseInt(this[n.$content],10);!isNaN(e)&&e>=0&&(this[n.$content]=e)}}class Relevant extends n.ContentObject{constructor(e){super(o,"relevant")}[n.$finalize](){this[n.$content]=this[n.$content].trim().split(/\s+/)}}class Rename extends n.ContentObject{constructor(e){super(o,"rename")}[n.$finalize](){this[n.$content]=this[n.$content].trim();(this[n.$content].toLowerCase().startsWith("xml")||this[n.$content].match(new RegExp("[\\p{L}_][\\p{L}\\d._\\p{M}-]*","u")))&&(0,s.warn)("XFA - Rename: invalid XFA name")}}class RenderPolicy extends n.OptionObject{constructor(e){super(o,"renderPolicy",["server","client"])}}class RunScripts extends n.OptionObject{constructor(e){super(o,"runScripts",["both","client","none","server"])}}class Script extends n.XFAObject{constructor(e){super(o,"script",!0);this.currentPage=null;this.exclude=null;this.runScripts=null}}class ScriptModel extends n.OptionObject{constructor(e){super(o,"scriptModel",["XFA","none"])}}class Severity extends n.OptionObject{constructor(e){super(o,"severity",["ignore","error","information","trace","warning"])}}class SilentPrint extends n.XFAObject{constructor(e){super(o,"silentPrint",!0);this.addSilentPrint=null;this.printerName=null}}class Staple extends n.XFAObject{constructor(e){super(o,"staple");this.mode=(0,i.getStringOption)(e.mode,["usePrinterSetting","on","off"])}}class StartNode extends n.StringObject{constructor(e){super(o,"startNode")}}class StartPage extends n.IntegerObject{constructor(e){super(o,"startPage",0,(e=>!0))}}class SubmitFormat extends n.OptionObject{constructor(e){super(o,"submitFormat",["html","delegate","fdf","xml","pdf"])}}class SubmitUrl extends n.StringObject{constructor(e){super(o,"submitUrl")}}class SubsetBelow extends n.IntegerObject{constructor(e){super(o,"subsetBelow",100,(e=>e>=0&&e<=100))}}class SuppressBanner extends n.Option01{constructor(e){super(o,"suppressBanner")}}class Tagged extends n.Option01{constructor(e){super(o,"tagged")}}class Template extends n.XFAObject{constructor(e){super(o,"template",!0);this.base=null;this.relevant=null;this.startPage=null;this.uri=null;this.xsl=null}}class Threshold extends n.OptionObject{constructor(e){super(o,"threshold",["trace","error","information","warning"])}}class To extends n.OptionObject{constructor(e){super(o,"to",["null","memory","stderr","stdout","system","uri"])}}class TemplateCache extends n.XFAObject{constructor(e){super(o,"templateCache");this.maxEntries=(0,i.getInteger)({data:e.maxEntries,defaultValue:5,validate:e=>e>=0})}}class Trace extends n.XFAObject{constructor(e){super(o,"trace",!0);this.area=new n.XFAObjectArray}}class Transform extends n.XFAObject{constructor(e){super(o,"transform",!0);this.groupParent=null;this.ifEmpty=null;this.nameAttr=null;this.picture=null;this.presence=null;this.rename=null;this.whitespace=null}}class Type extends n.OptionObject{constructor(e){super(o,"type",["none","ascii85","asciiHex","ccittfax","flate","lzw","runLength","native","xdp","mergedXDP"])}}class Uri extends n.StringObject{constructor(e){super(o,"uri")}}class Validate extends n.OptionObject{constructor(e){super(o,"validate",["preSubmit","prePrint","preExecute","preSave"])}}class ValidateApprovalSignatures extends n.ContentObject{constructor(e){super(o,"validateApprovalSignatures")}[n.$finalize](){this[n.$content]=this[n.$content].trim().split(/\s+/).filter((e=>["docReady","postSign"].includes(e)))}}class ValidationMessaging extends n.OptionObject{constructor(e){super(o,"validationMessaging",["allMessagesIndividually","allMessagesTogether","firstMessageOnly","noMessages"])}}class Version extends n.OptionObject{constructor(e){super(o,"version",["1.7","1.6","1.5","1.4","1.3","1.2"])}}class VersionControl extends n.XFAObject{constructor(e){super(o,"VersionControl");this.outputBelow=(0,i.getStringOption)(e.outputBelow,["warn","error","update"]);this.sourceAbove=(0,i.getStringOption)(e.sourceAbove,["warn","error"]);this.sourceBelow=(0,i.getStringOption)(e.sourceBelow,["update","maintain"])}}class ViewerPreferences extends n.XFAObject{constructor(e){super(o,"viewerPreferences",!0);this.ADBE_JSConsole=null;this.ADBE_JSDebugger=null;this.addViewerPreferences=null;this.duplexOption=null;this.enforce=null;this.numberOfCopies=null;this.pageRange=null;this.pickTrayByPDFSize=null;this.printScaling=null}}class WebClient extends n.XFAObject{constructor(e){super(o,"webClient",!0);this.name=e.name?e.name.trim():"";this.fontInfo=null;this.xdc=null}}class Whitespace extends n.OptionObject{constructor(e){super(o,"whitespace",["preserve","ltrim","normalize","rtrim","trim"])}}class Window extends n.ContentObject{constructor(e){super(o,"window")}[n.$finalize](){const e=this[n.$content].trim().split(/\s*,\s*/,2).map((e=>parseInt(e,10)));if(e.some((e=>isNaN(e))))this[n.$content]=[0,0];else{1===e.length&&e.push(e[0]);this[n.$content]=e}}}class Xdc extends n.XFAObject{constructor(e){super(o,"xdc",!0);this.uri=new n.XFAObjectArray;this.xsl=new n.XFAObjectArray}}class Xdp extends n.XFAObject{constructor(e){super(o,"xdp",!0);this.packets=null}}class Xsl extends n.XFAObject{constructor(e){super(o,"xsl",!0);this.debug=null;this.uri=null}}class Zpl extends n.XFAObject{constructor(e){super(o,"zpl",!0);this.name=e.name?e.name.trim():"";this.batchOutput=null;this.flipLabel=null;this.fontInfo=null;this.xdc=null}}class ConfigNamespace{static[r.$buildXFAObject](e,t){if(ConfigNamespace.hasOwnProperty(e))return ConfigNamespace[e](t)}static acrobat(e){return new Acrobat(e)}static acrobat7(e){return new Acrobat7(e)}static ADBE_JSConsole(e){return new ADBE_JSConsole(e)}static ADBE_JSDebugger(e){return new ADBE_JSDebugger(e)}static addSilentPrint(e){return new AddSilentPrint(e)}static addViewerPreferences(e){return new AddViewerPreferences(e)}static adjustData(e){return new AdjustData(e)}static adobeExtensionLevel(e){return new AdobeExtensionLevel(e)}static agent(e){return new Agent(e)}static alwaysEmbed(e){return new AlwaysEmbed(e)}static amd(e){return new Amd(e)}static area(e){return new Area(e)}static attributes(e){return new Attributes(e)}static autoSave(e){return new AutoSave(e)}static base(e){return new Base(e)}static batchOutput(e){return new BatchOutput(e)}static behaviorOverride(e){return new BehaviorOverride(e)}static cache(e){return new Cache(e)}static change(e){return new Change(e)}static common(e){return new Common(e)}static compress(e){return new Compress(e)}static compressLogicalStructure(e){return new CompressLogicalStructure(e)}static compressObjectStream(e){return new CompressObjectStream(e)}static compression(e){return new Compression(e)}static config(e){return new Config(e)}static conformance(e){return new Conformance(e)}static contentCopy(e){return new ContentCopy(e)}static copies(e){return new Copies(e)}static creator(e){return new Creator(e)}static currentPage(e){return new CurrentPage(e)}static data(e){return new Data(e)}static debug(e){return new Debug(e)}static defaultTypeface(e){return new DefaultTypeface(e)}static destination(e){return new Destination(e)}static documentAssembly(e){return new DocumentAssembly(e)}static driver(e){return new Driver(e)}static duplexOption(e){return new DuplexOption(e)}static dynamicRender(e){return new DynamicRender(e)}static embed(e){return new Embed(e)}static encrypt(e){return new Encrypt(e)}static encryption(e){return new Encryption(e)}static encryptionLevel(e){return new EncryptionLevel(e)}static enforce(e){return new Enforce(e)}static equate(e){return new Equate(e)}static equateRange(e){return new EquateRange(e)}static exclude(e){return new Exclude(e)}static excludeNS(e){return new ExcludeNS(e)}static flipLabel(e){return new FlipLabel(e)}static fontInfo(e){return new FontInfo(e)}static formFieldFilling(e){return new FormFieldFilling(e)}static groupParent(e){return new GroupParent(e)}static ifEmpty(e){return new IfEmpty(e)}static includeXDPContent(e){return new IncludeXDPContent(e)}static incrementalLoad(e){return new IncrementalLoad(e)}static incrementalMerge(e){return new IncrementalMerge(e)}static interactive(e){return new Interactive(e)}static jog(e){return new Jog(e)}static labelPrinter(e){return new LabelPrinter(e)}static layout(e){return new Layout(e)}static level(e){return new Level(e)}static linearized(e){return new Linearized(e)}static locale(e){return new Locale(e)}static localeSet(e){return new LocaleSet(e)}static log(e){return new Log(e)}static map(e){return new MapElement(e)}static mediumInfo(e){return new MediumInfo(e)}static message(e){return new Message(e)}static messaging(e){return new Messaging(e)}static mode(e){return new Mode(e)}static modifyAnnots(e){return new ModifyAnnots(e)}static msgId(e){return new MsgId(e)}static nameAttr(e){return new NameAttr(e)}static neverEmbed(e){return new NeverEmbed(e)}static numberOfCopies(e){return new NumberOfCopies(e)}static openAction(e){return new OpenAction(e)}static output(e){return new Output(e)}static outputBin(e){return new OutputBin(e)}static outputXSL(e){return new OutputXSL(e)}static overprint(e){return new Overprint(e)}static packets(e){return new Packets(e)}static pageOffset(e){return new PageOffset(e)}static pageRange(e){return new PageRange(e)}static pagination(e){return new Pagination(e)}static paginationOverride(e){return new PaginationOverride(e)}static part(e){return new Part(e)}static pcl(e){return new Pcl(e)}static pdf(e){return new Pdf(e)}static pdfa(e){return new Pdfa(e)}static permissions(e){return new Permissions(e)}static pickTrayByPDFSize(e){return new PickTrayByPDFSize(e)}static picture(e){return new Picture(e)}static plaintextMetadata(e){return new PlaintextMetadata(e)}static presence(e){return new Presence(e)}static present(e){return new Present(e)}static print(e){return new Print(e)}static printHighQuality(e){return new PrintHighQuality(e)}static printScaling(e){return new PrintScaling(e)}static printerName(e){return new PrinterName(e)}static producer(e){return new Producer(e)}static ps(e){return new Ps(e)}static range(e){return new Range(e)}static record(e){return new Record(e)}static relevant(e){return new Relevant(e)}static rename(e){return new Rename(e)}static renderPolicy(e){return new RenderPolicy(e)}static runScripts(e){return new RunScripts(e)}static script(e){return new Script(e)}static scriptModel(e){return new ScriptModel(e)}static severity(e){return new Severity(e)}static silentPrint(e){return new SilentPrint(e)}static staple(e){return new Staple(e)}static startNode(e){return new StartNode(e)}static startPage(e){return new StartPage(e)}static submitFormat(e){return new SubmitFormat(e)}static submitUrl(e){return new SubmitUrl(e)}static subsetBelow(e){return new SubsetBelow(e)}static suppressBanner(e){return new SuppressBanner(e)}static tagged(e){return new Tagged(e)}static template(e){return new Template(e)}static templateCache(e){return new TemplateCache(e)}static threshold(e){return new Threshold(e)}static to(e){return new To(e)}static trace(e){return new Trace(e)}static transform(e){return new Transform(e)}static type(e){return new Type(e)}static uri(e){return new Uri(e)}static validate(e){return new Validate(e)}static validateApprovalSignatures(e){return new ValidateApprovalSignatures(e)}static validationMessaging(e){return new ValidationMessaging(e)}static version(e){return new Version(e)}static versionControl(e){return new VersionControl(e)}static viewerPreferences(e){return new ViewerPreferences(e)}static webClient(e){return new WebClient(e)}static whitespace(e){return new Whitespace(e)}static window(e){return new Window(e)}static xdc(e){return new Xdc(e)}static xdp(e){return new Xdp(e)}static xsl(e){return new Xsl(e)}static zpl(e){return new Zpl(e)}}t.ConfigNamespace=ConfigNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ConnectionSetNamespace=void 0;var r=a(80),n=a(78);const i=r.NamespaceIds.connectionSet.id;class ConnectionSet extends n.XFAObject{constructor(e){super(i,"connectionSet",!0);this.wsdlConnection=new n.XFAObjectArray;this.xmlConnection=new n.XFAObjectArray;this.xsdConnection=new n.XFAObjectArray}}class EffectiveInputPolicy extends n.XFAObject{constructor(e){super(i,"effectiveInputPolicy");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class EffectiveOutputPolicy extends n.XFAObject{constructor(e){super(i,"effectiveOutputPolicy");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Operation extends n.StringObject{constructor(e){super(i,"operation");this.id=e.id||"";this.input=e.input||"";this.name=e.name||"";this.output=e.output||"";this.use=e.use||"";this.usehref=e.usehref||""}}class RootElement extends n.StringObject{constructor(e){super(i,"rootElement");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class SoapAction extends n.StringObject{constructor(e){super(i,"soapAction");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class SoapAddress extends n.StringObject{constructor(e){super(i,"soapAddress");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class Uri extends n.StringObject{constructor(e){super(i,"uri");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class WsdlAddress extends n.StringObject{constructor(e){super(i,"wsdlAddress");this.id=e.id||"";this.name=e.name||"";this.use=e.use||"";this.usehref=e.usehref||""}}class WsdlConnection extends n.XFAObject{constructor(e){super(i,"wsdlConnection",!0);this.dataDescription=e.dataDescription||"";this.name=e.name||"";this.effectiveInputPolicy=null;this.effectiveOutputPolicy=null;this.operation=null;this.soapAction=null;this.soapAddress=null;this.wsdlAddress=null}}class XmlConnection extends n.XFAObject{constructor(e){super(i,"xmlConnection",!0);this.dataDescription=e.dataDescription||"";this.name=e.name||"";this.uri=null}}class XsdConnection extends n.XFAObject{constructor(e){super(i,"xsdConnection",!0);this.dataDescription=e.dataDescription||"";this.name=e.name||"";this.rootElement=null;this.uri=null}}class ConnectionSetNamespace{static[r.$buildXFAObject](e,t){if(ConnectionSetNamespace.hasOwnProperty(e))return ConnectionSetNamespace[e](t)}static connectionSet(e){return new ConnectionSet(e)}static effectiveInputPolicy(e){return new EffectiveInputPolicy(e)}static effectiveOutputPolicy(e){return new EffectiveOutputPolicy(e)}static operation(e){return new Operation(e)}static rootElement(e){return new RootElement(e)}static soapAction(e){return new SoapAction(e)}static soapAddress(e){return new SoapAddress(e)}static uri(e){return new Uri(e)}static wsdlAddress(e){return new WsdlAddress(e)}static wsdlConnection(e){return new WsdlConnection(e)}static xmlConnection(e){return new XmlConnection(e)}static xsdConnection(e){return new XsdConnection(e)}}t.ConnectionSetNamespace=ConnectionSetNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.DatasetsNamespace=void 0;var r=a(78),n=a(80);const i=n.NamespaceIds.datasets.id;class Data extends r.XmlObject{constructor(e){super(i,"data",e)}[r.$isNsAgnostic](){return!0}}class Datasets extends r.XFAObject{constructor(e){super(i,"datasets",!0);this.data=null;this.Signature=null}[r.$onChild](e){const t=e[r.$nodeName];("data"===t&&e[r.$namespaceId]===i||"Signature"===t&&e[r.$namespaceId]===n.NamespaceIds.signature.id)&&(this[t]=e);this[r.$appendChild](e)}}class DatasetsNamespace{static[n.$buildXFAObject](e,t){if(DatasetsNamespace.hasOwnProperty(e))return DatasetsNamespace[e](t)}static datasets(e){return new Datasets(e)}static data(e){return new Data(e)}}t.DatasetsNamespace=DatasetsNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.LocaleSetNamespace=void 0;var r=a(80),n=a(78),i=a(79);const s=r.NamespaceIds.localeSet.id;class CalendarSymbols extends n.XFAObject{constructor(e){super(s,"calendarSymbols",!0);this.name="gregorian";this.dayNames=new n.XFAObjectArray(2);this.eraNames=null;this.meridiemNames=null;this.monthNames=new n.XFAObjectArray(2)}}class CurrencySymbol extends n.StringObject{constructor(e){super(s,"currencySymbol");this.name=(0,i.getStringOption)(e.name,["symbol","isoname","decimal"])}}class CurrencySymbols extends n.XFAObject{constructor(e){super(s,"currencySymbols",!0);this.currencySymbol=new n.XFAObjectArray(3)}}class DatePattern extends n.StringObject{constructor(e){super(s,"datePattern");this.name=(0,i.getStringOption)(e.name,["full","long","med","short"])}}class DatePatterns extends n.XFAObject{constructor(e){super(s,"datePatterns",!0);this.datePattern=new n.XFAObjectArray(4)}}class DateTimeSymbols extends n.ContentObject{constructor(e){super(s,"dateTimeSymbols")}}class Day extends n.StringObject{constructor(e){super(s,"day")}}class DayNames extends n.XFAObject{constructor(e){super(s,"dayNames",!0);this.abbr=(0,i.getInteger)({data:e.abbr,defaultValue:0,validate:e=>1===e});this.day=new n.XFAObjectArray(7)}}class Era extends n.StringObject{constructor(e){super(s,"era")}}class EraNames extends n.XFAObject{constructor(e){super(s,"eraNames",!0);this.era=new n.XFAObjectArray(2)}}class Locale extends n.XFAObject{constructor(e){super(s,"locale",!0);this.desc=e.desc||"";this.name="isoname";this.calendarSymbols=null;this.currencySymbols=null;this.datePatterns=null;this.dateTimeSymbols=null;this.numberPatterns=null;this.numberSymbols=null;this.timePatterns=null;this.typeFaces=null}}class LocaleSet extends n.XFAObject{constructor(e){super(s,"localeSet",!0);this.locale=new n.XFAObjectArray}}class Meridiem extends n.StringObject{constructor(e){super(s,"meridiem")}}class MeridiemNames extends n.XFAObject{constructor(e){super(s,"meridiemNames",!0);this.meridiem=new n.XFAObjectArray(2)}}class Month extends n.StringObject{constructor(e){super(s,"month")}}class MonthNames extends n.XFAObject{constructor(e){super(s,"monthNames",!0);this.abbr=(0,i.getInteger)({data:e.abbr,defaultValue:0,validate:e=>1===e});this.month=new n.XFAObjectArray(12)}}class NumberPattern extends n.StringObject{constructor(e){super(s,"numberPattern");this.name=(0,i.getStringOption)(e.name,["full","long","med","short"])}}class NumberPatterns extends n.XFAObject{constructor(e){super(s,"numberPatterns",!0);this.numberPattern=new n.XFAObjectArray(4)}}class NumberSymbol extends n.StringObject{constructor(e){super(s,"numberSymbol");this.name=(0,i.getStringOption)(e.name,["decimal","grouping","percent","minus","zero"])}}class NumberSymbols extends n.XFAObject{constructor(e){super(s,"numberSymbols",!0);this.numberSymbol=new n.XFAObjectArray(5)}}class TimePattern extends n.StringObject{constructor(e){super(s,"timePattern");this.name=(0,i.getStringOption)(e.name,["full","long","med","short"])}}class TimePatterns extends n.XFAObject{constructor(e){super(s,"timePatterns",!0);this.timePattern=new n.XFAObjectArray(4)}}class TypeFace extends n.XFAObject{constructor(e){super(s,"typeFace",!0);this.name=""|e.name}}class TypeFaces extends n.XFAObject{constructor(e){super(s,"typeFaces",!0);this.typeFace=new n.XFAObjectArray}}class LocaleSetNamespace{static[r.$buildXFAObject](e,t){if(LocaleSetNamespace.hasOwnProperty(e))return LocaleSetNamespace[e](t)}static calendarSymbols(e){return new CalendarSymbols(e)}static currencySymbol(e){return new CurrencySymbol(e)}static currencySymbols(e){return new CurrencySymbols(e)}static datePattern(e){return new DatePattern(e)}static datePatterns(e){return new DatePatterns(e)}static dateTimeSymbols(e){return new DateTimeSymbols(e)}static day(e){return new Day(e)}static dayNames(e){return new DayNames(e)}static era(e){return new Era(e)}static eraNames(e){return new EraNames(e)}static locale(e){return new Locale(e)}static localeSet(e){return new LocaleSet(e)}static meridiem(e){return new Meridiem(e)}static meridiemNames(e){return new MeridiemNames(e)}static month(e){return new Month(e)}static monthNames(e){return new MonthNames(e)}static numberPattern(e){return new NumberPattern(e)}static numberPatterns(e){return new NumberPatterns(e)}static numberSymbol(e){return new NumberSymbol(e)}static numberSymbols(e){return new NumberSymbols(e)}static timePattern(e){return new TimePattern(e)}static timePatterns(e){return new TimePatterns(e)}static typeFace(e){return new TypeFace(e)}static typeFaces(e){return new TypeFaces(e)}}t.LocaleSetNamespace=LocaleSetNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.SignatureNamespace=void 0;var r=a(80),n=a(78);const i=r.NamespaceIds.signature.id;class Signature extends n.XFAObject{constructor(e){super(i,"signature",!0)}}class SignatureNamespace{static[r.$buildXFAObject](e,t){if(SignatureNamespace.hasOwnProperty(e))return SignatureNamespace[e](t)}static signature(e){return new Signature(e)}}t.SignatureNamespace=SignatureNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.StylesheetNamespace=void 0;var r=a(80),n=a(78);const i=r.NamespaceIds.stylesheet.id;class Stylesheet extends n.XFAObject{constructor(e){super(i,"stylesheet",!0)}}class StylesheetNamespace{static[r.$buildXFAObject](e,t){if(StylesheetNamespace.hasOwnProperty(e))return StylesheetNamespace[e](t)}static stylesheet(e){return new Stylesheet(e)}}t.StylesheetNamespace=StylesheetNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XdpNamespace=void 0;var r=a(80),n=a(78);const i=r.NamespaceIds.xdp.id;class Xdp extends n.XFAObject{constructor(e){super(i,"xdp",!0);this.uuid=e.uuid||"";this.timeStamp=e.timeStamp||"";this.config=null;this.connectionSet=null;this.datasets=null;this.localeSet=null;this.stylesheet=new n.XFAObjectArray;this.template=null}[n.$onChildCheck](e){const t=r.NamespaceIds[e[n.$nodeName]];return t&&e[n.$namespaceId]===t.id}}class XdpNamespace{static[r.$buildXFAObject](e,t){if(XdpNamespace.hasOwnProperty(e))return XdpNamespace[e](t)}static xdp(e){return new Xdp(e)}}t.XdpNamespace=XdpNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XhtmlNamespace=void 0;var r=a(78),n=a(80),i=a(85),s=a(79);const o=n.NamespaceIds.xhtml.id,c=Symbol(),l=new Set(["color","font","font-family","font-size","font-stretch","font-style","font-weight","margin","margin-bottom","margin-left","margin-right","margin-top","letter-spacing","line-height","orphans","page-break-after","page-break-before","page-break-inside","tab-interval","tab-stop","text-align","text-decoration","text-indent","vertical-align","widows","kerning-mode","xfa-font-horizontal-scale","xfa-font-vertical-scale","xfa-spacerun","xfa-tab-stops"]),h=new Map([["page-break-after","breakAfter"],["page-break-before","breakBefore"],["page-break-inside","breakInside"],["kerning-mode",e=>"none"===e?"none":"normal"],["xfa-font-horizontal-scale",e=>`scaleX(${Math.max(0,Math.min(parseInt(e)/100)).toFixed(2)})`],["xfa-font-vertical-scale",e=>`scaleY(${Math.max(0,Math.min(parseInt(e)/100)).toFixed(2)})`],["xfa-spacerun",""],["xfa-tab-stops",""],["font-size",(e,t)=>{e=t.fontSize=(0,s.getMeasurement)(e);return(0,i.measureToString)(.99*e)}],["letter-spacing",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["line-height",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["margin",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["margin-bottom",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["margin-left",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["margin-right",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["margin-top",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["text-indent",e=>(0,i.measureToString)((0,s.getMeasurement)(e))],["font-family",e=>e],["vertical-align",e=>(0,i.measureToString)((0,s.getMeasurement)(e))]]),u=/\s+/g,d=/[\r\n]+/g,f=/\r\n?/g;function mapStyle(e,t,a){const n=Object.create(null);if(!e)return n;const o=Object.create(null);for(const[t,a]of e.split(";").map((e=>e.split(":",2)))){const e=h.get(t);if(""===e)continue;let r=a;e&&(r="string"==typeof e?e:e(a,o));t.endsWith("scale")?n.transform?n.transform=`${n[t]} ${r}`:n.transform=r:n[t.replaceAll(/-([a-zA-Z])/g,((e,t)=>t.toUpperCase()))]=r}n.fontFamily&&(0,i.setFontFamily)({typeface:n.fontFamily,weight:n.fontWeight||"normal",posture:n.fontStyle||"normal",size:o.fontSize||0},t,t[r.$globalData].fontFinder,n);if(a&&n.verticalAlign&&"0px"!==n.verticalAlign&&n.fontSize){const e=.583,t=.333,a=(0,s.getMeasurement)(n.fontSize);n.fontSize=(0,i.measureToString)(a*e);n.verticalAlign=(0,i.measureToString)(Math.sign((0,s.getMeasurement)(n.verticalAlign))*a*t)}(0,i.fixTextIndent)(n);return n}const g=new Set(["body","html"]);class XhtmlObject extends r.XmlObject{constructor(e,t){super(o,t);this[c]=!1;this.style=e.style||""}[r.$clean](e){super[r.$clean](e);this.style=function checkStyle(e){return e.style?e.style.trim().split(/\s*;\s*/).filter((e=>!!e)).map((e=>e.split(/\s*:\s*/,2))).filter((([t,a])=>{"font-family"===t&&e[r.$globalData].usedTypefaces.add(a);return l.has(t)})).map((e=>e.join(":"))).join(";"):""}(this)}[r.$acceptWhitespace](){return!g.has(this[r.$nodeName])}[r.$onText](e,t=!1){if(t)this[c]=!0;else{e=e.replace(d,"");this.style.includes("xfa-spacerun:yes")||(e=e.replace(u," "))}e&&(this[r.$content]+=e)}[r.$pushGlyphs](e,t=!0){const a=Object.create(null),n={top:NaN,bottom:NaN,left:NaN,right:NaN};let i=null;for(const[e,t]of this.style.split(";").map((e=>e.split(":",2))))switch(e){case"font-family":a.typeface=(0,s.stripQuotes)(t);break;case"font-size":a.size=(0,s.getMeasurement)(t);break;case"font-weight":a.weight=t;break;case"font-style":a.posture=t;break;case"letter-spacing":a.letterSpacing=(0,s.getMeasurement)(t);break;case"margin":const e=t.split(/ \t/).map((e=>(0,s.getMeasurement)(e)));switch(e.length){case 1:n.top=n.bottom=n.left=n.right=e[0];break;case 2:n.top=n.bottom=e[0];n.left=n.right=e[1];break;case 3:n.top=e[0];n.bottom=e[2];n.left=n.right=e[1];break;case 4:n.top=e[0];n.left=e[1];n.bottom=e[2];n.right=e[3]}break;case"margin-top":n.top=(0,s.getMeasurement)(t);break;case"margin-bottom":n.bottom=(0,s.getMeasurement)(t);break;case"margin-left":n.left=(0,s.getMeasurement)(t);break;case"margin-right":n.right=(0,s.getMeasurement)(t);break;case"line-height":i=(0,s.getMeasurement)(t)}e.pushData(a,n,i);if(this[r.$content])e.addString(this[r.$content]);else for(const t of this[r.$getChildren]())"#text"!==t[r.$nodeName]?t[r.$pushGlyphs](e):e.addString(t[r.$content]);t&&e.popFont()}[r.$toHTML](e){const t=[];this[r.$extra]={children:t};this[r.$childrenToHTML]({});if(0===t.length&&!this[r.$content])return s.HTMLResult.EMPTY;let a;a=this[c]?this[r.$content]?this[r.$content].replace(f,"\n"):void 0:this[r.$content]||void 0;return s.HTMLResult.success({name:this[r.$nodeName],attributes:{href:this.href,style:mapStyle(this.style,this,this[c])},children:t,value:a})}}class A extends XhtmlObject{constructor(e){super(e,"a");this.href=(0,i.fixURL)(e.href)||""}}class B extends XhtmlObject{constructor(e){super(e,"b")}[r.$pushGlyphs](e){e.pushFont({weight:"bold"});super[r.$pushGlyphs](e);e.popFont()}}class Body extends XhtmlObject{constructor(e){super(e,"body")}[r.$toHTML](e){const t=super[r.$toHTML](e),{html:a}=t;if(!a)return s.HTMLResult.EMPTY;a.name="div";a.attributes.class=["xfaRich"];return t}}class Br extends XhtmlObject{constructor(e){super(e,"br")}[r.$text](){return"\n"}[r.$pushGlyphs](e){e.addString("\n")}[r.$toHTML](e){return s.HTMLResult.success({name:"br"})}}class Html extends XhtmlObject{constructor(e){super(e,"html")}[r.$toHTML](e){const t=[];this[r.$extra]={children:t};this[r.$childrenToHTML]({});if(0===t.length)return s.HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:{}},value:this[r.$content]||""});if(1===t.length){const e=t[0];if(e.attributes&&e.attributes.class.includes("xfaRich"))return s.HTMLResult.success(e)}return s.HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:{}},children:t})}}class I extends XhtmlObject{constructor(e){super(e,"i")}[r.$pushGlyphs](e){e.pushFont({posture:"italic"});super[r.$pushGlyphs](e);e.popFont()}}class Li extends XhtmlObject{constructor(e){super(e,"li")}}class Ol extends XhtmlObject{constructor(e){super(e,"ol")}}class P extends XhtmlObject{constructor(e){super(e,"p")}[r.$pushGlyphs](e){super[r.$pushGlyphs](e,!1);e.addString("\n");e.addPara();e.popFont()}[r.$text](){const e=this[r.$getParent]()[r.$getChildren]();return e[e.length-1]===this?super[r.$text]():super[r.$text]()+"\n"}}class Span extends XhtmlObject{constructor(e){super(e,"span")}}class Sub extends XhtmlObject{constructor(e){super(e,"sub")}}class Sup extends XhtmlObject{constructor(e){super(e,"sup")}}class Ul extends XhtmlObject{constructor(e){super(e,"ul")}}class XhtmlNamespace{static[n.$buildXFAObject](e,t){if(XhtmlNamespace.hasOwnProperty(e))return XhtmlNamespace[e](t)}static a(e){return new A(e)}static b(e){return new B(e)}static body(e){return new Body(e)}static br(e){return new Br(e)}static html(e){return new Html(e)}static i(e){return new I(e)}static li(e){return new Li(e)}static ol(e){return new Ol(e)}static p(e){return new P(e)}static span(e){return new Span(e)}static sub(e){return new Sub(e)}static sup(e){return new Sup(e)}static ul(e){return new Ul(e)}}t.XhtmlNamespace=XhtmlNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.UnknownNamespace=void 0;var r=a(80),n=a(78);class UnknownNamespace{constructor(e){this.namespaceId=e}[r.$buildXFAObject](e,t){return new n.XmlObject(this.namespaceId,e,t)}}t.UnknownNamespace=UnknownNamespace},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.DatasetReader=void 0;var r=a(2),n=a(8),i=a(71);function decodeString(e){try{return(0,r.stringToUTF8String)(e)}catch(t){(0,r.warn)(`UTF-8 decoding failed: "${t}".`);return e}}class DatasetXMLParser extends i.SimpleXMLParser{constructor(e){super(e);this.node=null}onEndElement(e){const t=super.onEndElement(e);if(t&&"xfa:datasets"===e){this.node=t;throw new Error("Aborting DatasetXMLParser.")}}}t.DatasetReader=class DatasetReader{constructor(e){if(e.datasets)this.node=new i.SimpleXMLParser({hasAttributes:!0}).parseFromString(e.datasets).documentElement;else{const t=new DatasetXMLParser({hasAttributes:!0});try{t.parseFromString(e["xdp:xdp"])}catch(e){}this.node=t.node}}getValue(e){if(!this.node||!e)return"";const t=this.node.searchNode((0,n.parseXFAPath)(e),0);if(!t)return"";const a=t.firstChild;return a&&"value"===a.nodeName?t.children.map((e=>decodeString(e.textContent))):decodeString(t.textContent)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XRef=void 0;var r=a(2),n=a(5),i=a(8),s=a(27),o=a(9),c=a(75);t.XRef=class XRef{constructor(e,t){this.stream=e;this.pdfManager=t;this.entries=[];this.xrefstms=Object.create(null);this._cacheMap=new Map;this._pendingRefs=new n.RefSet;this.stats=new i.DocStats(t.msgHandler);this._newRefNum=null}getNewRef(){null===this._newRefNum&&(this._newRefNum=this.entries.length);return n.Ref.get(this._newRefNum++,0)}resetNewRef(){this._newRefNum=null}setStartXRef(e){this.startXRefQueue=[e]}parse(e=!1){let t,a,s;if(e){(0,r.warn)("Indexing all PDF objects");t=this.indexObjects()}else t=this.readXRef();t.assignXref(this);this.trailer=t;try{a=t.get("Encrypt")}catch(e){if(e instanceof i.MissingDataException)throw e;(0,r.warn)(`XRef.parse - Invalid "Encrypt" reference: "${e}".`)}if(a instanceof n.Dict){const e=t.get("ID"),r=e&&e.length?e[0]:"";a.suppressEncryption=!0;this.encrypt=new c.CipherTransformFactory(a,r,this.pdfManager.password)}try{s=t.get("Root")}catch(e){if(e instanceof i.MissingDataException)throw e;(0,r.warn)(`XRef.parse - Invalid "Root" reference: "${e}".`)}if(s instanceof n.Dict)try{if(s.get("Pages")instanceof n.Dict){this.root=s;return}}catch(e){if(e instanceof i.MissingDataException)throw e;(0,r.warn)(`XRef.parse - Invalid "Pages" reference: "${e}".`)}if(!e)throw new i.XRefParseException;throw new r.InvalidPDFException("Invalid Root reference.")}processXRefTable(e){"tableState"in this||(this.tableState={entryNum:0,streamPos:e.lexer.stream.pos,parserBuf1:e.buf1,parserBuf2:e.buf2});const t=this.readXRefTable(e);if(!(0,n.isCmd)(t,"trailer"))throw new r.FormatError("Invalid XRef table: could not find trailer dictionary");let a=e.getObj();a instanceof n.Dict||!a.dict||(a=a.dict);if(!(a instanceof n.Dict))throw new r.FormatError("Invalid XRef table: could not parse trailer dictionary");delete this.tableState;return a}readXRefTable(e){const t=e.lexer.stream,a=this.tableState;t.pos=a.streamPos;e.buf1=a.parserBuf1;e.buf2=a.parserBuf2;let i;for(;;){if(!("firstEntryNum"in a)||!("entryCount"in a)){if((0,n.isCmd)(i=e.getObj(),"trailer"))break;a.firstEntryNum=i;a.entryCount=e.getObj()}let s=a.firstEntryNum;const o=a.entryCount;if(!Number.isInteger(s)||!Number.isInteger(o))throw new r.FormatError("Invalid XRef table: wrong types in subsection header");for(let i=a.entryNum;i0;){const[o,c]=s;if(!Number.isInteger(o)||!Number.isInteger(c))throw new r.FormatError(`Invalid XRef range fields: ${o}, ${c}`);if(!Number.isInteger(a)||!Number.isInteger(n)||!Number.isInteger(i))throw new r.FormatError(`Invalid XRef entry fields length: ${o}, ${c}`);for(let s=t.entryNum;s=e.length);){a+=String.fromCharCode(r);r=e[t]}return a}function skipUntil(e,t,a){const r=a.length,n=e.length;let i=0;for(;t=r)break;t++;i++}return i}const e=/^(\d+)\s+(\d+)\s+obj\b/,t=/\bendobj[\b\s]$/,a=/\s+(\d+\s+\d+\s+obj[\b\s<])$/,o=new Uint8Array([116,114,97,105,108,101,114]),c=new Uint8Array([115,116,97,114,116,120,114,101,102]),l=new Uint8Array([111,98,106]),h=new Uint8Array([47,88,82,101,102]);this.entries.length=0;this._cacheMap.clear();const u=this.stream;u.pos=0;const d=u.getBytes(),f=d.length;let g=u.start;const p=[],m=[];for(;g=f)break;n=d[g]}while(10!==n&&13!==n);continue}const b=readToken(d,g);let y;if(b.startsWith("xref")&&(4===b.length||/\s/.test(b[4]))){g+=skipUntil(d,g,o);p.push(g);g+=skipUntil(d,g,c)}else if(y=e.exec(b)){const e=0|y[1],n=0|y[2];let o,c=g+b.length,f=!1;if(this.entries[e]){if(this.entries[e].gen===n)try{new s.Parser({lexer:new s.Lexer(u.makeSubStream(c))}).getObj();f=!0}catch(e){e instanceof i.ParserEOFException?(0,r.warn)(`indexObjects -- checking object (${b}): "${e}".`):f=!0}}else f=!0;f&&(this.entries[e]={offset:g-u.start,gen:n,uncompressed:!0});for(;c{Object.defineProperty(t,"__esModule",{value:!0});t.MessageHandler=void 0;var r=a(2);const n=1,i=2,s=1,o=2,c=3,l=4,h=5,u=6,d=7,f=8;function wrapReason(e){e instanceof Error||"object"==typeof e&&null!==e||(0,r.unreachable)('wrapReason: Expected "reason" to be a (possibly cloned) Error.');switch(e.name){case"AbortException":return new r.AbortException(e.message);case"MissingPDFException":return new r.MissingPDFException(e.message);case"PasswordException":return new r.PasswordException(e.message,e.code);case"UnexpectedResponseException":return new r.UnexpectedResponseException(e.message,e.status);case"UnknownErrorException":return new r.UnknownErrorException(e.message,e.details);default:return new r.UnknownErrorException(e.message,e.toString())}}t.MessageHandler=class MessageHandler{constructor(e,t,a){this.sourceName=e;this.targetName=t;this.comObj=a;this.callbackId=1;this.streamId=1;this.streamSinks=Object.create(null);this.streamControllers=Object.create(null);this.callbackCapabilities=Object.create(null);this.actionHandler=Object.create(null);this._onComObjOnMessage=e=>{const t=e.data;if(t.targetName!==this.sourceName)return;if(t.stream){this._processStreamMessage(t);return}if(t.callback){const e=t.callbackId,a=this.callbackCapabilities[e];if(!a)throw new Error(`Cannot resolve callback ${e}`);delete this.callbackCapabilities[e];if(t.callback===n)a.resolve(t.data);else{if(t.callback!==i)throw new Error("Unexpected callback case");a.reject(wrapReason(t.reason))}return}const r=this.actionHandler[t.action];if(!r)throw new Error(`Unknown action from worker: ${t.action}`);if(t.callbackId){const e=this.sourceName,s=t.sourceName;new Promise((function(e){e(r(t.data))})).then((function(r){a.postMessage({sourceName:e,targetName:s,callback:n,callbackId:t.callbackId,data:r})}),(function(r){a.postMessage({sourceName:e,targetName:s,callback:i,callbackId:t.callbackId,reason:wrapReason(r)})}))}else t.streamId?this._createStreamSink(t):r(t.data)};a.addEventListener("message",this._onComObjOnMessage)}on(e,t){const a=this.actionHandler;if(a[e])throw new Error(`There is already an actionName called "${e}"`);a[e]=t}send(e,t,a){this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:e,data:t},a)}sendWithPromise(e,t,a){const n=this.callbackId++,i=(0,r.createPromiseCapability)();this.callbackCapabilities[n]=i;try{this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:e,callbackId:n,data:t},a)}catch(e){i.reject(e)}return i.promise}sendWithStream(e,t,a,n){const i=this.streamId++,o=this.sourceName,c=this.targetName,l=this.comObj;return new ReadableStream({start:a=>{const s=(0,r.createPromiseCapability)();this.streamControllers[i]={controller:a,startCall:s,pullCall:null,cancelCall:null,isClosed:!1};l.postMessage({sourceName:o,targetName:c,action:e,streamId:i,data:t,desiredSize:a.desiredSize},n);return s.promise},pull:e=>{const t=(0,r.createPromiseCapability)();this.streamControllers[i].pullCall=t;l.postMessage({sourceName:o,targetName:c,stream:u,streamId:i,desiredSize:e.desiredSize});return t.promise},cancel:e=>{(0,r.assert)(e instanceof Error,"cancel must have a valid reason");const t=(0,r.createPromiseCapability)();this.streamControllers[i].cancelCall=t;this.streamControllers[i].isClosed=!0;l.postMessage({sourceName:o,targetName:c,stream:s,streamId:i,reason:wrapReason(e)});return t.promise}},a)}_createStreamSink(e){const t=e.streamId,a=this.sourceName,n=e.sourceName,i=this.comObj,s=this,o=this.actionHandler[e.action],u={enqueue(e,s=1,o){if(this.isCancelled)return;const c=this.desiredSize;this.desiredSize-=s;if(c>0&&this.desiredSize<=0){this.sinkCapability=(0,r.createPromiseCapability)();this.ready=this.sinkCapability.promise}i.postMessage({sourceName:a,targetName:n,stream:l,streamId:t,chunk:e},o)},close(){if(!this.isCancelled){this.isCancelled=!0;i.postMessage({sourceName:a,targetName:n,stream:c,streamId:t});delete s.streamSinks[t]}},error(e){(0,r.assert)(e instanceof Error,"error must have a valid reason");if(!this.isCancelled){this.isCancelled=!0;i.postMessage({sourceName:a,targetName:n,stream:h,streamId:t,reason:wrapReason(e)})}},sinkCapability:(0,r.createPromiseCapability)(),onPull:null,onCancel:null,isCancelled:!1,desiredSize:e.desiredSize,ready:null};u.sinkCapability.resolve();u.ready=u.sinkCapability.promise;this.streamSinks[t]=u;new Promise((function(t){t(o(e.data,u))})).then((function(){i.postMessage({sourceName:a,targetName:n,stream:f,streamId:t,success:!0})}),(function(e){i.postMessage({sourceName:a,targetName:n,stream:f,streamId:t,reason:wrapReason(e)})}))}_processStreamMessage(e){const t=e.streamId,a=this.sourceName,n=e.sourceName,i=this.comObj,g=this.streamControllers[t],p=this.streamSinks[t];switch(e.stream){case f:e.success?g.startCall.resolve():g.startCall.reject(wrapReason(e.reason));break;case d:e.success?g.pullCall.resolve():g.pullCall.reject(wrapReason(e.reason));break;case u:if(!p){i.postMessage({sourceName:a,targetName:n,stream:d,streamId:t,success:!0});break}p.desiredSize<=0&&e.desiredSize>0&&p.sinkCapability.resolve();p.desiredSize=e.desiredSize;new Promise((function(e){e(p.onPull&&p.onPull())})).then((function(){i.postMessage({sourceName:a,targetName:n,stream:d,streamId:t,success:!0})}),(function(e){i.postMessage({sourceName:a,targetName:n,stream:d,streamId:t,reason:wrapReason(e)})}));break;case l:(0,r.assert)(g,"enqueue should have stream controller");if(g.isClosed)break;g.controller.enqueue(e.chunk);break;case c:(0,r.assert)(g,"close should have stream controller");if(g.isClosed)break;g.isClosed=!0;g.controller.close();this._deleteStreamController(g,t);break;case h:(0,r.assert)(g,"error should have stream controller");g.controller.error(wrapReason(e.reason));this._deleteStreamController(g,t);break;case o:e.success?g.cancelCall.resolve():g.cancelCall.reject(wrapReason(e.reason));this._deleteStreamController(g,t);break;case s:if(!p)break;new Promise((function(t){t(p.onCancel&&p.onCancel(wrapReason(e.reason)))})).then((function(){i.postMessage({sourceName:a,targetName:n,stream:o,streamId:t,success:!0})}),(function(e){i.postMessage({sourceName:a,targetName:n,stream:o,streamId:t,reason:wrapReason(e)})}));p.sinkCapability.reject(wrapReason(e.reason));p.isCancelled=!0;delete this.streamSinks[t];break;default:throw new Error("Unexpected stream case")}}async _deleteStreamController(e,t){await Promise.allSettled([e.startCall&&e.startCall.promise,e.pullCall&&e.pullCall.promise,e.cancelCall&&e.cancelCall.promise]);delete this.streamControllers[t]}destroy(){this.comObj.removeEventListener("message",this._onComObjOnMessage)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.PDFWorkerStream=void 0;var r=a(2);t.PDFWorkerStream=class PDFWorkerStream{constructor(e){this._msgHandler=e;this._contentLength=null;this._fullRequestReader=null;this._rangeRequestReaders=[]}getFullReader(){(0,r.assert)(!this._fullRequestReader,"PDFWorkerStream.getFullReader can only be called once.");this._fullRequestReader=new PDFWorkerStreamReader(this._msgHandler);return this._fullRequestReader}getRangeReader(e,t){const a=new PDFWorkerStreamRangeReader(e,t,this._msgHandler);this._rangeRequestReaders.push(a);return a}cancelAllRequests(e){this._fullRequestReader&&this._fullRequestReader.cancel(e);for(const t of this._rangeRequestReaders.slice(0))t.cancel(e)}};class PDFWorkerStreamReader{constructor(e){this._msgHandler=e;this.onProgress=null;this._contentLength=null;this._isRangeSupported=!1;this._isStreamingSupported=!1;const t=this._msgHandler.sendWithStream("GetReader");this._reader=t.getReader();this._headersReady=this._msgHandler.sendWithPromise("ReaderHeadersReady").then((e=>{this._isStreamingSupported=e.isStreamingSupported;this._isRangeSupported=e.isRangeSupported;this._contentLength=e.contentLength}))}get headersReady(){return this._headersReady}get contentLength(){return this._contentLength}get isStreamingSupported(){return this._isStreamingSupported}get isRangeSupported(){return this._isRangeSupported}async read(){const{value:e,done:t}=await this._reader.read();return t?{value:void 0,done:!0}:{value:e.buffer,done:!1}}cancel(e){this._reader.cancel(e)}}class PDFWorkerStreamRangeReader{constructor(e,t,a){this._msgHandler=a;this.onProgress=null;const r=this._msgHandler.sendWithStream("GetRangeReader",{begin:e,end:t});this._reader=r.getReader()}get isStreamingSupported(){return!1}async read(){const{value:e,done:t}=await this._reader.read();return t?{value:void 0,done:!0}:{value:e.buffer,done:!1}}cancel(e){this._reader.cancel(e)}}}],t={};function __w_pdfjs_require__(a){var r=t[a];if(void 0!==r)return r.exports;var n=t[a]={exports:{}};e[a](n,n.exports,__w_pdfjs_require__);return n.exports}__w_pdfjs_require__.d=(e,t)=>{for(var a in t)__w_pdfjs_require__.o(t,a)&&!__w_pdfjs_require__.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})};__w_pdfjs_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);__w_pdfjs_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});Object.defineProperty(e,"__esModule",{value:!0})};var a={};(()=>{var e=a;Object.defineProperty(e,"__esModule",{value:!0});Object.defineProperty(e,"WorkerMessageHandler",{enumerable:!0,get:function(){return t.WorkerMessageHandler}});var t=__w_pdfjs_require__(1)})();return a})())); \ No newline at end of file diff --git a/legacy/build/pdf.worker.js b/legacy/build/pdf.worker.js index 2a66261182..9ac6ea8a5f 100644 --- a/legacy/build/pdf.worker.js +++ b/legacy/build/pdf.worker.js @@ -65020,6 +65020,10 @@ var BoundingBoxStack = function BoundingBoxStack() { end: function BoundingBoxStack_end() { var last = this.stack.pop(); + if (!last) { + return null; + } + if (last.mcid !== null) { return last; } else { diff --git a/legacy/build/pdf.worker.js.map b/legacy/build/pdf.worker.js.map index 5608204754..492e9858cd 100644 --- a/legacy/build/pdf.worker.js.map +++ b/legacy/build/pdf.worker.js.map @@ -1 +1 @@ -{"version":3,"file":"pdf.worker.js","mappings":"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EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;AAhZkC,EAApC;;AAsZA,IAAMsgH,uCAAuC3qF,uCAAsB,UACjE31B,CADiE,EAEjE;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;AAL2C,EAA7C;;AAWA,IAAMugH,oCAAoC5qF,uCAAsB,UAAU31B,CAAV,EAAa;EAC3EA,EAAE,CAAF,IAAO,EAAPA;EACAA,EAAE,CAAF,IAAO,EAAPA;EACAA,EAAE,CAAF,IAAO,GAAPA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAA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","sources":["webpack://pdfjs-dist/build/pdf.worker/webpack/universalModuleDefinition","webpack://pdfjs-dist/build/pdf.worker/src/core/worker.js","webpack://pdfjs-dist/build/pdf.worker/src/shared/util.js","webpack://pdfjs-dist/build/pdf.worker/src/shared/compatibility.js","webpack://pdfjs-dist/build/pdf.worker/src/shared/is_node.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/es/promise/index.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.aggregate-error.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.aggregate-error.constructor.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/export.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/global.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/descriptors.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/fails.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/function-call.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/function-bind-native.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-property-is-enumerable.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/create-property-descriptor.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/to-indexed-object.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/indexed-object.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/function-uncurry-this.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/classof-raw.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/require-object-coercible.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/is-null-or-undefined.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/to-property-key.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/to-primitive.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/is-object.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/is-callable.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/is-symbol.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/get-built-in.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-is-prototype-of.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/use-symbol-as-uid.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/symbol-constructor-detection.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/engine-v8-version.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/engine-user-agent.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/get-method.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/a-callable.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/try-to-string.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/ordinary-to-primitive.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/well-known-symbol.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/shared.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/is-pure.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/shared-store.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/define-global-property.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/has-own-property.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/to-object.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/uid.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/ie8-dom-define.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/document-create-element.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/create-non-enumerable-property.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-define-property.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/an-object.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/define-built-in.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/make-built-in.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/function-name.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/inspect-source.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/internal-state.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/weak-map-basic-detection.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/shared-key.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/hidden-keys.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/copy-constructor-properties.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/own-keys.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-get-own-property-names.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-keys-internal.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/array-includes.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/to-absolute-index.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/to-integer-or-infinity.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/math-trunc.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/length-of-array-like.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/to-length.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/enum-bug-keys.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/is-forced.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-get-prototype-of.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/correct-prototype-getter.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-set-prototype-of.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/a-possible-prototype.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-create.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-define-properties.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-keys.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/html.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/error-stack-clear.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/install-error-cause.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/iterate.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/function-bind-context.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/is-array-iterator-method.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/iterators.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/get-iterator.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/get-iterator-method.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/classof.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/to-string-tag-support.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/iterator-close.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/normalize-string-argument.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/to-string.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/error-stack-installable.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.array.iterator.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/add-to-unscopables.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/iterator-define.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/iterator-create-constructor.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/iterators-core.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/set-to-string-tag.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/create-iter-result-object.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.object.to-string.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-to-string.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.promise.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.promise.constructor.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/engine-is-node.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/set-species.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/an-instance.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/species-constructor.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/a-constructor.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/is-constructor.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/task.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/function-apply.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/array-slice.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/validate-arguments-length.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/engine-is-ios.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/microtask.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/engine-is-ios-pebble.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/engine-is-webos-webkit.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/host-report-errors.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/perform.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/queue.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/promise-native-constructor.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/promise-constructor-detection.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/engine-is-browser.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/engine-is-deno.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/new-promise-capability.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.promise.all.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/promise-statics-incorrect-iteration.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.promise.catch.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.promise.race.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.promise.reject.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.promise.resolve.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/promise-resolve.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.promise.all-settled.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.promise.any.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.promise.finally.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.string.iterator.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/string-multibyte.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/path.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/web/structured-clone.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.map.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.map.constructor.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/collection.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/internal-metadata.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/array-slice-simple.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/create-property.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-is-extensible.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/array-buffer-non-extensible.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/freezing.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/inherit-if-required.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/collection-strong.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/define-built-ins.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.set.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.set.constructor.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/web.structured-clone.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/regexp-get-flags.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/regexp-flags.js","webpack://pdfjs-dist/build/pdf.worker/src/core/primitives.js","webpack://pdfjs-dist/build/pdf.worker/src/core/pdf_manager.js","webpack://pdfjs-dist/build/pdf.worker/src/core/chunked_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/core_utils.js","webpack://pdfjs-dist/build/pdf.worker/src/core/base_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/document.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa_fonts.js","webpack://pdfjs-dist/build/pdf.worker/src/core/calibri_factors.js","webpack://pdfjs-dist/build/pdf.worker/src/core/helvetica_factors.js","webpack://pdfjs-dist/build/pdf.worker/src/core/liberationsans_widths.js","webpack://pdfjs-dist/build/pdf.worker/src/core/myriadpro_factors.js","webpack://pdfjs-dist/build/pdf.worker/src/core/segoeui_factors.js","webpack://pdfjs-dist/build/pdf.worker/src/core/fonts_utils.js","webpack://pdfjs-dist/build/pdf.worker/src/core/encodings.js","webpack://pdfjs-dist/build/pdf.worker/src/core/glyphlist.js","webpack://pdfjs-dist/build/pdf.worker/src/core/unicode.js","webpack://pdfjs-dist/build/pdf.worker/src/core/annotation.js","webpack://pdfjs-dist/build/pdf.worker/src/core/default_appearance.js","webpack://pdfjs-dist/build/pdf.worker/src/core/colorspace.js","webpack://pdfjs-dist/build/pdf.worker/src/core/evaluator.js","webpack://pdfjs-dist/build/pdf.worker/src/core/cmap.js","webpack://pdfjs-dist/build/pdf.worker/src/core/parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/ascii_85_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/decode_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/ascii_hex_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/ccitt_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/ccitt.js","webpack://pdfjs-dist/build/pdf.worker/src/core/flate_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jbig2_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jbig2.js","webpack://pdfjs-dist/build/pdf.worker/src/core/arithmetic_decoder.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jpeg_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jpg.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jpx_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jpx.js","webpack://pdfjs-dist/build/pdf.worker/src/core/lzw_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/predictor_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/run_length_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/fonts.js","webpack://pdfjs-dist/build/pdf.worker/src/core/cff_parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/charsets.js","webpack://pdfjs-dist/build/pdf.worker/src/core/standard_fonts.js","webpack://pdfjs-dist/build/pdf.worker/src/core/to_unicode_map.js","webpack://pdfjs-dist/build/pdf.worker/src/core/cff_font.js","webpack://pdfjs-dist/build/pdf.worker/src/core/font_renderer.js","webpack://pdfjs-dist/build/pdf.worker/src/core/metrics.js","webpack://pdfjs-dist/build/pdf.worker/src/core/glyf.js","webpack://pdfjs-dist/build/pdf.worker/src/core/opentype_file_builder.js","webpack://pdfjs-dist/build/pdf.worker/src/core/type1_font.js","webpack://pdfjs-dist/build/pdf.worker/src/core/type1_parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/pattern.js","webpack://pdfjs-dist/build/pdf.worker/src/core/function.js","webpack://pdfjs-dist/build/pdf.worker/src/core/ps_parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/image_utils.js","webpack://pdfjs-dist/build/pdf.worker/src/core/bidi.js","webpack://pdfjs-dist/build/pdf.worker/src/shared/murmurhash3.js","webpack://pdfjs-dist/build/pdf.worker/src/core/operator_list.js","webpack://pdfjs-dist/build/pdf.worker/src/core/image.js","webpack://pdfjs-dist/build/pdf.worker/src/shared/image_utils.js","webpack://pdfjs-dist/build/pdf.worker/src/core/bounding_boxes.js","webpack://pdfjs-dist/build/pdf.worker/src/core/catalog.js","webpack://pdfjs-dist/build/pdf.worker/src/core/name_number_tree.js","webpack://pdfjs-dist/build/pdf.worker/src/core/cleanup_helper.js","webpack://pdfjs-dist/build/pdf.worker/src/core/file_spec.js","webpack://pdfjs-dist/build/pdf.worker/src/core/metadata_parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xml_parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/struct_tree.js","webpack://pdfjs-dist/build/pdf.worker/src/core/object_loader.js","webpack://pdfjs-dist/build/pdf.worker/src/core/writer.js","webpack://pdfjs-dist/build/pdf.worker/src/core/crypto.js","webpack://pdfjs-dist/build/pdf.worker/src/core/decrypt_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/factory.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/xfa_object.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/utils.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/namespaces.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/som.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/bind.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/template.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/layout.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/html_utils.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/fonts.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/text.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/data.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/builder.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/setup.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/config.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/connection_set.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/datasets.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/locale_set.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/signature.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/stylesheet.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/xdp.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/xhtml.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/unknown.js","webpack://pdfjs-dist/build/pdf.worker/src/core/dataset_reader.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xref.js","webpack://pdfjs-dist/build/pdf.worker/src/shared/message_handler.js","webpack://pdfjs-dist/build/pdf.worker/src/core/worker_stream.js","webpack://pdfjs-dist/build/pdf.worker/webpack/bootstrap","webpack://pdfjs-dist/build/pdf.worker/webpack/runtime/define property getters","webpack://pdfjs-dist/build/pdf.worker/webpack/runtime/hasOwnProperty shorthand","webpack://pdfjs-dist/build/pdf.worker/webpack/runtime/make namespace object","webpack://pdfjs-dist/build/pdf.worker/src/pdf.worker.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf.worker\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf.worker\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf.worker\"] = factory();\n})(this, () => {\nreturn ","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AbortException,\n arrayByteLength,\n arraysToBytes,\n createPromiseCapability,\n getVerbosityLevel,\n info,\n InvalidPDFException,\n MissingPDFException,\n PasswordException,\n setVerbosityLevel,\n stringToPDFString,\n UnexpectedResponseException,\n UnknownErrorException,\n UNSUPPORTED_FEATURES,\n VerbosityLevel,\n warn,\n} from \"../shared/util.js\";\nimport { Dict, Ref } from \"./primitives.js\";\nimport { LocalPdfManager, NetworkPdfManager } from \"./pdf_manager.js\";\nimport { clearGlobalCaches } from \"./cleanup_helper.js\";\nimport { incrementalUpdate } from \"./writer.js\";\nimport { isNodeJS } from \"../shared/is_node.js\";\nimport { MessageHandler } from \"../shared/message_handler.js\";\nimport { PDFWorkerStream } from \"./worker_stream.js\";\nimport { XRefParseException } from \"./core_utils.js\";\n\nclass WorkerTask {\n constructor(name) {\n this.name = name;\n this.terminated = false;\n this._capability = createPromiseCapability();\n }\n\n get finished() {\n return this._capability.promise;\n }\n\n finish() {\n this._capability.resolve();\n }\n\n terminate() {\n this.terminated = true;\n }\n\n ensureNotTerminated() {\n if (this.terminated) {\n throw new Error(\"Worker task was terminated\");\n }\n }\n}\n\nclass WorkerMessageHandler {\n static setup(handler, port) {\n let testMessageProcessed = false;\n handler.on(\"test\", function wphSetupTest(data) {\n if (testMessageProcessed) {\n return; // we already processed 'test' message once\n }\n testMessageProcessed = true;\n\n // Ensure that `TypedArray`s can be sent to the worker.\n handler.send(\"test\", data instanceof Uint8Array);\n });\n\n handler.on(\"configure\", function wphConfigure(data) {\n setVerbosityLevel(data.verbosity);\n });\n\n handler.on(\"GetDocRequest\", function wphSetupDoc(data) {\n return WorkerMessageHandler.createDocumentHandler(data, port);\n });\n }\n\n static createDocumentHandler(docParams, port) {\n // This context is actually holds references on pdfManager and handler,\n // until the latter is destroyed.\n let pdfManager;\n let terminated = false;\n let cancelXHRs = null;\n const WorkerTasks = [];\n const verbosity = getVerbosityLevel();\n\n const apiVersion = docParams.apiVersion;\n const workerVersion =\n typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"TESTING\")\n ? PDFJSDev.eval(\"BUNDLE_VERSION\")\n : null;\n if (apiVersion !== workerVersion) {\n throw new Error(\n `The API version \"${apiVersion}\" does not match ` +\n `the Worker version \"${workerVersion}\".`\n );\n }\n\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n // Fail early, and predictably, rather than having (some) fonts fail to\n // load/render with slightly cryptic error messages in environments where\n // the `Array.prototype` has been *incorrectly* extended.\n //\n // PLEASE NOTE: We do *not* want to slow down font parsing by adding\n // `hasOwnProperty` checks all over the code-base.\n const enumerableProperties = [];\n for (const property in []) {\n enumerableProperties.push(property);\n }\n if (enumerableProperties.length) {\n throw new Error(\n \"The `Array.prototype` contains unexpected enumerable properties: \" +\n enumerableProperties.join(\", \") +\n \"; thus breaking e.g. `for...in` iteration of `Array`s.\"\n );\n }\n\n // Ensure that (primarily) Node.js users won't accidentally attempt to use\n // a non-translated/non-polyfilled build of the library, since that would\n // quickly fail anyway because of missing functionality.\n if (typeof ReadableStream === \"undefined\") {\n const partialMsg =\n \"The browser/environment lacks native support for critical \" +\n \"functionality used by the PDF.js library (e.g. `ReadableStream`); \";\n\n if (isNodeJS) {\n throw new Error(partialMsg + \"please use a `legacy`-build instead.\");\n }\n throw new Error(partialMsg + \"please update to a supported browser.\");\n }\n }\n\n const docId = docParams.docId;\n const docBaseUrl = docParams.docBaseUrl;\n const workerHandlerName = docParams.docId + \"_worker\";\n let handler = new MessageHandler(workerHandlerName, docId, port);\n\n function ensureNotTerminated() {\n if (terminated) {\n throw new Error(\"Worker was terminated\");\n }\n }\n\n function startWorkerTask(task) {\n WorkerTasks.push(task);\n }\n\n function finishWorkerTask(task) {\n task.finish();\n const i = WorkerTasks.indexOf(task);\n WorkerTasks.splice(i, 1);\n }\n\n async function loadDocument(recoveryMode) {\n await pdfManager.ensureDoc(\"checkHeader\");\n await pdfManager.ensureDoc(\"parseStartXRef\");\n await pdfManager.ensureDoc(\"parse\", [recoveryMode]);\n\n // Check that at least the first page can be successfully loaded,\n // since otherwise the XRef table is definitely not valid.\n await pdfManager.ensureDoc(\"checkFirstPage\", [recoveryMode]);\n // Check that the last page can be successfully loaded, to ensure that\n // `numPages` is correct, and fallback to walking the entire /Pages-tree.\n await pdfManager.ensureDoc(\"checkLastPage\", [recoveryMode]);\n\n const isPureXfa = await pdfManager.ensureDoc(\"isPureXfa\");\n if (isPureXfa) {\n const task = new WorkerTask(\"loadXfaFonts\");\n startWorkerTask(task);\n await Promise.all([\n pdfManager\n .loadXfaFonts(handler, task)\n .catch(reason => {\n // Ignore errors, to allow the document to load.\n })\n .then(() => finishWorkerTask(task)),\n pdfManager.loadXfaImages(),\n ]);\n }\n\n const [numPages, fingerprints, structureTree] = await Promise.all([\n pdfManager.ensureDoc(\"numPages\"),\n pdfManager.ensureDoc(\"fingerprints\"),\n pdfManager.ensureDoc('structureTree'),\n ]);\n\n // Get htmlForXfa after numPages to avoid to create HTML twice.\n const htmlForXfa = isPureXfa\n ? await pdfManager.ensureDoc(\"htmlForXfa\")\n : null;\n\n return { numPages, fingerprints, htmlForXfa, structureTree };\n }\n\n function getPdfManager(data, evaluatorOptions, enableXfa) {\n const pdfManagerCapability = createPromiseCapability();\n let newPdfManager;\n\n const source = data.source;\n if (source.data) {\n try {\n newPdfManager = new LocalPdfManager(\n docId,\n source.data,\n source.password,\n handler,\n evaluatorOptions,\n enableXfa,\n docBaseUrl\n );\n pdfManagerCapability.resolve(newPdfManager);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n }\n return pdfManagerCapability.promise;\n }\n\n let pdfStream,\n cachedChunks = [];\n try {\n pdfStream = new PDFWorkerStream(handler);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n return pdfManagerCapability.promise;\n }\n\n const fullRequest = pdfStream.getFullReader();\n fullRequest.headersReady\n .then(function () {\n if (!fullRequest.isRangeSupported) {\n return;\n }\n\n // We don't need auto-fetch when streaming is enabled.\n const disableAutoFetch =\n source.disableAutoFetch || fullRequest.isStreamingSupported;\n newPdfManager = new NetworkPdfManager(\n docId,\n pdfStream,\n {\n msgHandler: handler,\n password: source.password,\n length: fullRequest.contentLength,\n disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize,\n },\n evaluatorOptions,\n enableXfa,\n docBaseUrl\n );\n // There may be a chance that `newPdfManager` is not initialized for\n // the first few runs of `readchunk` block of code. Be sure to send\n // all cached chunks, if any, to chunked_stream via pdf_manager.\n for (let i = 0; i < cachedChunks.length; i++) {\n newPdfManager.sendProgressiveData(cachedChunks[i]);\n }\n\n cachedChunks = [];\n pdfManagerCapability.resolve(newPdfManager);\n cancelXHRs = null;\n })\n .catch(function (reason) {\n pdfManagerCapability.reject(reason);\n cancelXHRs = null;\n });\n\n let loaded = 0;\n const flushChunks = function () {\n const pdfFile = arraysToBytes(cachedChunks);\n if (source.length && pdfFile.length !== source.length) {\n warn(\"reported HTTP length is different from actual\");\n }\n // the data is array, instantiating directly from it\n try {\n newPdfManager = new LocalPdfManager(\n docId,\n pdfFile,\n source.password,\n handler,\n evaluatorOptions,\n enableXfa,\n docBaseUrl\n );\n pdfManagerCapability.resolve(newPdfManager);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n }\n cachedChunks = [];\n };\n const readPromise = new Promise(function (resolve, reject) {\n const readChunk = function ({ value, done }) {\n try {\n ensureNotTerminated();\n if (done) {\n if (!newPdfManager) {\n flushChunks();\n }\n cancelXHRs = null;\n return;\n }\n\n loaded += arrayByteLength(value);\n if (!fullRequest.isStreamingSupported) {\n handler.send(\"DocProgress\", {\n loaded,\n total: Math.max(loaded, fullRequest.contentLength || 0),\n });\n }\n\n if (newPdfManager) {\n newPdfManager.sendProgressiveData(value);\n } else {\n cachedChunks.push(value);\n }\n\n fullRequest.read().then(readChunk, reject);\n } catch (e) {\n reject(e);\n }\n };\n fullRequest.read().then(readChunk, reject);\n });\n readPromise.catch(function (e) {\n pdfManagerCapability.reject(e);\n cancelXHRs = null;\n });\n\n cancelXHRs = function (reason) {\n pdfStream.cancelAllRequests(reason);\n };\n\n return pdfManagerCapability.promise;\n }\n\n function setupDoc(data) {\n function onSuccess(doc) {\n ensureNotTerminated();\n handler.send(\"GetDoc\", { pdfInfo: doc });\n }\n\n function onFailure(ex) {\n ensureNotTerminated();\n\n if (ex instanceof PasswordException) {\n const task = new WorkerTask(`PasswordException: response ${ex.code}`);\n startWorkerTask(task);\n\n handler\n .sendWithPromise(\"PasswordRequest\", ex)\n .then(function ({ password }) {\n finishWorkerTask(task);\n pdfManager.updatePassword(password);\n pdfManagerReady();\n })\n .catch(function () {\n finishWorkerTask(task);\n handler.send(\"DocException\", ex);\n });\n } else if (\n ex instanceof InvalidPDFException ||\n ex instanceof MissingPDFException ||\n ex instanceof UnexpectedResponseException ||\n ex instanceof UnknownErrorException\n ) {\n handler.send(\"DocException\", ex);\n } else {\n handler.send(\n \"DocException\",\n new UnknownErrorException(ex.message, ex.toString())\n );\n }\n }\n\n function pdfManagerReady() {\n ensureNotTerminated();\n\n loadDocument(false).then(onSuccess, function (reason) {\n ensureNotTerminated();\n\n // Try again with recoveryMode == true\n if (!(reason instanceof XRefParseException)) {\n onFailure(reason);\n return;\n }\n pdfManager.requestLoadedStream();\n pdfManager.onLoadedStream().then(function () {\n ensureNotTerminated();\n\n loadDocument(true).then(onSuccess, onFailure);\n });\n });\n }\n\n ensureNotTerminated();\n\n const evaluatorOptions = {\n maxImageSize: data.maxImageSize,\n disableFontFace: data.disableFontFace,\n ignoreErrors: data.ignoreErrors,\n isEvalSupported: data.isEvalSupported,\n fontExtraProperties: data.fontExtraProperties,\n useSystemFonts: data.useSystemFonts,\n cMapUrl: data.cMapUrl,\n standardFontDataUrl: data.standardFontDataUrl,\n };\n\n getPdfManager(data, evaluatorOptions, data.enableXfa)\n .then(function (newPdfManager) {\n if (terminated) {\n // We were in a process of setting up the manager, but it got\n // terminated in the middle.\n newPdfManager.terminate(\n new AbortException(\"Worker was terminated.\")\n );\n throw new Error(\"Worker was terminated\");\n }\n pdfManager = newPdfManager;\n\n pdfManager.onLoadedStream().then(function (stream) {\n handler.send(\"DataLoaded\", { length: stream.bytes.byteLength });\n });\n })\n .then(pdfManagerReady, onFailure);\n }\n\n handler.on(\"GetPage\", function wphSetupGetPage(data) {\n return pdfManager.getPage(data.pageIndex).then(function (page) {\n return Promise.all([\n pdfManager.ensure(page, \"rotate\"),\n pdfManager.ensure(page, \"ref\"),\n pdfManager.ensure(page, \"userUnit\"),\n pdfManager.ensure(page, \"view\"),\n ]).then(function ([rotate, ref, userUnit, view]) {\n return {\n rotate,\n ref,\n userUnit,\n view,\n };\n });\n });\n });\n\n handler.on(\"GetPageIndex\", function wphSetupGetPageIndex(data) {\n const pageRef = Ref.get(data.num, data.gen);\n return pdfManager.ensureCatalog(\"getPageIndex\", [pageRef]);\n });\n\n handler.on(\"GetDestinations\", function wphSetupGetDestinations(data) {\n return pdfManager.ensureCatalog(\"destinations\");\n });\n\n handler.on(\"GetDestination\", function wphSetupGetDestination(data) {\n return pdfManager.ensureCatalog(\"getDestination\", [data.id]);\n });\n\n handler.on(\"GetPageLabels\", function wphSetupGetPageLabels(data) {\n return pdfManager.ensureCatalog(\"pageLabels\");\n });\n\n handler.on(\"GetPageLayout\", function wphSetupGetPageLayout(data) {\n return pdfManager.ensureCatalog(\"pageLayout\");\n });\n\n handler.on(\"GetPageMode\", function wphSetupGetPageMode(data) {\n return pdfManager.ensureCatalog(\"pageMode\");\n });\n\n handler.on(\"GetViewerPreferences\", function (data) {\n return pdfManager.ensureCatalog(\"viewerPreferences\");\n });\n\n handler.on(\"GetOpenAction\", function (data) {\n return pdfManager.ensureCatalog(\"openAction\");\n });\n\n handler.on(\"GetAttachments\", function wphSetupGetAttachments(data) {\n return pdfManager.ensureCatalog(\"attachments\");\n });\n\n handler.on(\"GetJavaScript\", function wphSetupGetJavaScript(data) {\n return pdfManager.ensureCatalog(\"javaScript\");\n });\n\n handler.on(\"GetDocJSActions\", function wphSetupGetDocJSActions(data) {\n return pdfManager.ensureCatalog(\"jsActions\");\n });\n\n handler.on(\"GetPageJSActions\", function ({ pageIndex }) {\n return pdfManager.getPage(pageIndex).then(function (page) {\n return pdfManager.ensure(page, \"jsActions\");\n });\n });\n\n handler.on(\"GetOutline\", function wphSetupGetOutline(data) {\n return pdfManager.ensureCatalog(\"documentOutline\");\n });\n\n handler.on(\"GetOptionalContentConfig\", function (data) {\n return pdfManager.ensureCatalog(\"optionalContentConfig\");\n });\n\n handler.on(\"GetPermissions\", function (data) {\n return pdfManager.ensureCatalog(\"permissions\");\n });\n\n handler.on(\"GetMetadata\", function wphSetupGetMetadata(data) {\n return Promise.all([\n pdfManager.ensureDoc(\"documentInfo\"),\n pdfManager.ensureCatalog(\"metadata\"),\n ]);\n });\n\n handler.on(\"GetMarkInfo\", function wphSetupGetMarkInfo(data) {\n return pdfManager.ensureCatalog(\"markInfo\");\n });\n\n handler.on(\"GetData\", function wphSetupGetData(data) {\n pdfManager.requestLoadedStream();\n return pdfManager.onLoadedStream().then(function (stream) {\n return stream.bytes;\n });\n });\n\n handler.on(\"GetAnnotations\", function ({ pageIndex, intent }) {\n return pdfManager.getPage(pageIndex).then(function (page) {\n return page.getAnnotationsData(intent);\n });\n });\n\n handler.on(\"GetFieldObjects\", function (data) {\n return pdfManager.ensureDoc(\"fieldObjects\");\n });\n\n handler.on(\"HasJSActions\", function (data) {\n return pdfManager.ensureDoc(\"hasJSActions\");\n });\n\n handler.on(\"GetCalculationOrderIds\", function (data) {\n return pdfManager.ensureDoc(\"calculationOrderIds\");\n });\n\n handler.on(\n \"SaveDocument\",\n function ({ isPureXfa, numPages, annotationStorage, filename }) {\n pdfManager.requestLoadedStream();\n\n const promises = [\n pdfManager.onLoadedStream(),\n pdfManager.ensureCatalog(\"acroForm\"),\n pdfManager.ensureCatalog(\"acroFormRef\"),\n pdfManager.ensureDoc(\"xref\"),\n pdfManager.ensureDoc(\"startXRef\"),\n ];\n\n if (isPureXfa) {\n promises.push(pdfManager.serializeXfaData(annotationStorage));\n } else {\n for (let pageIndex = 0; pageIndex < numPages; pageIndex++) {\n promises.push(\n pdfManager.getPage(pageIndex).then(function (page) {\n const task = new WorkerTask(`Save: page ${pageIndex}`);\n return page\n .save(handler, task, annotationStorage)\n .finally(function () {\n finishWorkerTask(task);\n });\n })\n );\n }\n }\n\n return Promise.all(promises).then(function ([\n stream,\n acroForm,\n acroFormRef,\n xref,\n startXRef,\n ...refs\n ]) {\n let newRefs = [];\n let xfaData = null;\n if (isPureXfa) {\n xfaData = refs[0];\n if (!xfaData) {\n return stream.bytes;\n }\n } else {\n for (const ref of refs) {\n newRefs = ref\n .filter(x => x !== null)\n .reduce((a, b) => a.concat(b), newRefs);\n }\n\n if (newRefs.length === 0) {\n // No new refs so just return the initial bytes\n return stream.bytes;\n }\n }\n\n const xfa = (acroForm instanceof Dict && acroForm.get(\"XFA\")) || null;\n let xfaDatasetsRef = null;\n let hasXfaDatasetsEntry = false;\n if (Array.isArray(xfa)) {\n for (let i = 0, ii = xfa.length; i < ii; i += 2) {\n if (xfa[i] === \"datasets\") {\n xfaDatasetsRef = xfa[i + 1];\n acroFormRef = null;\n hasXfaDatasetsEntry = true;\n }\n }\n if (xfaDatasetsRef === null) {\n xfaDatasetsRef = xref.getNewRef();\n }\n } else if (xfa) {\n acroFormRef = null;\n // TODO: Support XFA streams.\n warn(\"Unsupported XFA type.\");\n }\n\n let newXrefInfo = Object.create(null);\n if (xref.trailer) {\n // Get string info from Info in order to compute fileId.\n const infoObj = Object.create(null);\n const xrefInfo = xref.trailer.get(\"Info\") || null;\n if (xrefInfo instanceof Dict) {\n xrefInfo.forEach((key, value) => {\n if (typeof value === \"string\") {\n infoObj[key] = stringToPDFString(value);\n }\n });\n }\n\n newXrefInfo = {\n rootRef: xref.trailer.getRaw(\"Root\") || null,\n encryptRef: xref.trailer.getRaw(\"Encrypt\") || null,\n newRef: xref.getNewRef(),\n infoRef: xref.trailer.getRaw(\"Info\") || null,\n info: infoObj,\n fileIds: xref.trailer.get(\"ID\") || null,\n startXRef,\n filename,\n };\n }\n xref.resetNewRef();\n\n return incrementalUpdate({\n originalData: stream.bytes,\n xrefInfo: newXrefInfo,\n newRefs,\n xref,\n hasXfa: !!xfa,\n xfaDatasetsRef,\n hasXfaDatasetsEntry,\n acroFormRef,\n acroForm,\n xfaData,\n });\n });\n }\n );\n\n handler.on(\"GetOperatorList\", function wphSetupRenderPage(data, sink) {\n const pageIndex = data.pageIndex;\n pdfManager.getPage(pageIndex).then(function (page) {\n const task = new WorkerTask(`GetOperatorList: page ${pageIndex}`);\n startWorkerTask(task);\n\n // NOTE: Keep this condition in sync with the `info` helper function.\n const start = verbosity >= VerbosityLevel.INFOS ? Date.now() : 0;\n\n // Pre compile the pdf page and fetch the fonts/images.\n page\n .getOperatorList({\n handler,\n sink,\n task,\n intent: data.intent,\n cacheKey: data.cacheKey,\n annotationStorage: data.annotationStorage,\n })\n .then(\n function (operatorListInfo) {\n finishWorkerTask(task);\n\n if (start) {\n info(\n `page=${pageIndex + 1} - getOperatorList: time=` +\n `${Date.now() - start}ms, len=${operatorListInfo.length}`\n );\n }\n sink.close();\n },\n function (reason) {\n finishWorkerTask(task);\n if (task.terminated) {\n return; // ignoring errors from the terminated thread\n }\n // For compatibility with older behavior, generating unknown\n // unsupported feature notification on errors.\n handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorOperatorList,\n });\n\n sink.error(reason);\n\n // TODO: Should `reason` be re-thrown here (currently that casues\n // \"Uncaught exception: ...\" messages in the console)?\n }\n );\n });\n });\n\n handler.on(\"GetTextContent\", function wphExtractText(data, sink) {\n const pageIndex = data.pageIndex;\n\n pdfManager.getPage(pageIndex).then(function (page) {\n const task = new WorkerTask(\"GetTextContent: page \" + pageIndex);\n startWorkerTask(task);\n\n // NOTE: Keep this condition in sync with the `info` helper function.\n const start = verbosity >= VerbosityLevel.INFOS ? Date.now() : 0;\n\n page\n .extractTextContent({\n handler,\n task,\n sink,\n includeMarkedContent: data.includeMarkedContent,\n combineTextItems: data.combineTextItems,\n })\n .then(\n function () {\n finishWorkerTask(task);\n\n if (start) {\n info(\n `page=${pageIndex + 1} - getTextContent: time=` +\n `${Date.now() - start}ms`\n );\n }\n sink.close();\n },\n function (reason) {\n finishWorkerTask(task);\n if (task.terminated) {\n return; // ignoring errors from the terminated thread\n }\n sink.error(reason);\n\n // TODO: Should `reason` be re-thrown here (currently that casues\n // \"Uncaught exception: ...\" messages in the console)?\n }\n );\n });\n });\n\n handler.on(\"GetStructTree\", function wphGetStructTree(data) {\n return pdfManager.getPage(data.pageIndex).then(function (page) {\n return pdfManager.ensure(page, \"getStructTree\");\n });\n });\n\n handler.on(\"FontFallback\", function (data) {\n return pdfManager.fontFallback(data.id, handler);\n });\n\n handler.on(\"Cleanup\", function wphCleanup(data) {\n return pdfManager.cleanup(/* manuallyTriggered = */ true);\n });\n\n handler.on(\"Terminate\", function wphTerminate(data) {\n terminated = true;\n\n const waitOn = [];\n if (pdfManager) {\n pdfManager.terminate(new AbortException(\"Worker was terminated.\"));\n\n const cleanupPromise = pdfManager.cleanup();\n waitOn.push(cleanupPromise);\n\n pdfManager = null;\n } else {\n clearGlobalCaches();\n }\n if (cancelXHRs) {\n cancelXHRs(new AbortException(\"Worker was terminated.\"));\n }\n\n for (const task of WorkerTasks) {\n waitOn.push(task.finished);\n task.terminate();\n }\n\n return Promise.all(waitOn).then(function () {\n // Notice that even if we destroying handler, resolved response promise\n // must be sent back.\n handler.destroy();\n handler = null;\n });\n });\n\n handler.on(\"Ready\", function wphReady(data) {\n setupDoc(docParams);\n docParams = null; // we don't need docParams anymore -- saving memory.\n });\n return workerHandlerName;\n }\n\n static initializeFromPort(port) {\n const handler = new MessageHandler(\"worker\", \"main\", port);\n WorkerMessageHandler.setup(handler, port);\n handler.send(\"ready\", null);\n }\n}\n\nfunction isMessagePort(maybePort) {\n return (\n typeof maybePort.postMessage === \"function\" && \"onmessage\" in maybePort\n );\n}\n\n// Worker thread (and not Node.js)?\nif (\n typeof window === \"undefined\" &&\n !isNodeJS &&\n typeof self !== \"undefined\" &&\n isMessagePort(self)\n) {\n WorkerMessageHandler.initializeFromPort(self);\n}\n\nexport { WorkerMessageHandler, WorkerTask };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport \"./compatibility.js\";\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\n/**\n * Refer to the `WorkerTransport.getRenderingIntent`-method in the API, to see\n * how these flags are being used:\n * - ANY, DISPLAY, and PRINT are the normal rendering intents, note the\n * `PDFPageProxy.{render, getOperatorList, getAnnotations}`-methods.\n * - ANNOTATIONS_FORMS, ANNOTATIONS_STORAGE, ANNOTATIONS_DISABLE control which\n * annotations are rendered onto the canvas (i.e. by being included in the\n * operatorList), note the `PDFPageProxy.{render, getOperatorList}`-methods\n * and their `annotationMode`-option.\n * - OPLIST is used with the `PDFPageProxy.getOperatorList`-method, note the\n * `OperatorList`-constructor (on the worker-thread).\n */\nconst RenderingIntentFlag = {\n ANY: 0x01,\n DISPLAY: 0x02,\n PRINT: 0x04,\n ANNOTATIONS_FORMS: 0x10,\n ANNOTATIONS_STORAGE: 0x20,\n ANNOTATIONS_DISABLE: 0x40,\n OPLIST: 0x100,\n};\n\nconst AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3,\n};\n\n// Permission flags from Table 22, Section 7.6.3.2 of the PDF specification.\nconst PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800,\n};\n\nconst TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4,\n};\n\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3,\n};\n\nconst AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26,\n};\n\nconst AnnotationStateModelType = {\n MARKED: \"Marked\",\n REVIEW: \"Review\",\n};\n\nconst AnnotationMarkedState = {\n MARKED: \"Marked\",\n UNMARKED: \"Unmarked\",\n};\n\nconst AnnotationReviewState = {\n ACCEPTED: \"Accepted\",\n REJECTED: \"Rejected\",\n CANCELLED: \"Cancelled\",\n COMPLETED: \"Completed\",\n NONE: \"None\",\n};\n\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\",\n};\n\nconst AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200,\n};\n\nconst AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000,\n};\n\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5,\n};\n\nconst AnnotationActionEventType = {\n E: \"Mouse Enter\",\n X: \"Mouse Exit\",\n D: \"Mouse Down\",\n U: \"Mouse Up\",\n Fo: \"Focus\",\n Bl: \"Blur\",\n PO: \"PageOpen\",\n PC: \"PageClose\",\n PV: \"PageVisible\",\n PI: \"PageInvisible\",\n K: \"Keystroke\",\n F: \"Format\",\n V: \"Validate\",\n C: \"Calculate\",\n};\n\nconst DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\",\n};\n\nconst PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\",\n};\n\nconst StreamType = {\n UNKNOWN: \"UNKNOWN\",\n FLATE: \"FLATE\",\n LZW: \"LZW\",\n DCT: \"DCT\",\n JPX: \"JPX\",\n JBIG: \"JBIG\",\n A85: \"A85\",\n AHX: \"AHX\",\n CCF: \"CCF\",\n RLX: \"RLX\", // PDF short name is 'RL', but telemetry requires three chars.\n};\n\nconst FontType = {\n UNKNOWN: \"UNKNOWN\",\n TYPE1: \"TYPE1\",\n TYPE1STANDARD: \"TYPE1STANDARD\",\n TYPE1C: \"TYPE1C\",\n CIDFONTTYPE0: \"CIDFONTTYPE0\",\n CIDFONTTYPE0C: \"CIDFONTTYPE0C\",\n TRUETYPE: \"TRUETYPE\",\n CIDFONTTYPE2: \"CIDFONTTYPE2\",\n TYPE3: \"TYPE3\",\n OPENTYPE: \"OPENTYPE\",\n TYPE0: \"TYPE0\",\n MMTYPE1: \"MMTYPE1\",\n};\n\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5,\n};\n\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2,\n};\n\n// All the possible operations for an operator list.\nconst OPS = {\n // Intentionally start from 1 so it is easy to spot bad operators that will be\n // 0's.\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotations: 78,\n endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n /** @deprecated unused */\n paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91,\n boundingBoxes: 100,\n operationPosition: 101\n};\n\nconst UNSUPPORTED_FEATURES = {\n /** @deprecated unused */\n unknown: \"unknown\",\n forms: \"forms\",\n javaScript: \"javaScript\",\n signatures: \"signatures\",\n smask: \"smask\",\n shadingPattern: \"shadingPattern\",\n /** @deprecated unused */\n font: \"font\",\n errorTilingPattern: \"errorTilingPattern\",\n errorExtGState: \"errorExtGState\",\n errorXObject: \"errorXObject\",\n errorFontLoadType3: \"errorFontLoadType3\",\n errorFontState: \"errorFontState\",\n errorFontMissing: \"errorFontMissing\",\n errorFontTranslate: \"errorFontTranslate\",\n errorColorSpace: \"errorColorSpace\",\n errorOperatorList: \"errorOperatorList\",\n errorFontToUnicode: \"errorFontToUnicode\",\n errorFontLoadNative: \"errorFontLoadNative\",\n errorFontBuildPath: \"errorFontBuildPath\",\n errorFontGetPath: \"errorFontGetPath\",\n errorMarkedContent: \"errorMarkedContent\",\n errorContentSubStream: \"errorContentSubStream\",\n};\n\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2,\n};\n\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\n\nfunction getVerbosityLevel() {\n return verbosity;\n}\n\n// A notice for devs. These are good for things that are helpful to devs, such\n// as warning that Workers were disabled, which is important to devs but not\n// end users.\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\n\n// Non-fatal warnings.\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log(`Warning: ${msg}`);\n }\n}\n\nfunction unreachable(msg) {\n throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\n\n// Checks if URLs use one of the allowed protocols, e.g. to avoid XSS.\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n switch (url.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Attempts to create a valid absolute URL.\n *\n * @param {URL|string} url - An absolute, or relative, URL.\n * @param {URL|string} [baseUrl] - An absolute URL.\n * @param {Object} [options]\n * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n if (!url) {\n return null;\n }\n try {\n if (options && typeof url === \"string\") {\n // Let URLs beginning with \"www.\" default to using the \"http://\" protocol.\n if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n const dots = url.match(/\\./g);\n // Avoid accidentally matching a *relative* URL pointing to a file named\n // e.g. \"www.pdf\" or similar.\n if (dots && dots.length >= 2) {\n url = `http://${url}`;\n }\n }\n\n // According to ISO 32000-1:2008, section 12.6.4.7, URIs should be encoded\n // in 7-bit ASCII. Some bad PDFs use UTF-8 encoding; see bug 1122280.\n if (options.tryConvertEncoding) {\n try {\n url = stringToUTF8String(url);\n } catch (ex) {}\n }\n }\n\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {\n /* `new URL()` will throw on incorrect data. */\n }\n return null;\n}\n\nfunction shadow(obj, prop, value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n prop in obj,\n `shadow: Property \"${prop && prop.toString()}\" not found in object.`\n );\n }\n Object.defineProperty(obj, prop, {\n value,\n enumerable: true,\n configurable: true,\n writable: false,\n });\n return value;\n}\n\n/**\n * @type {any}\n */\nconst BaseException = (function BaseExceptionClosure() {\n // eslint-disable-next-line no-shadow\n function BaseException(message, name) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n this.message = message;\n this.name = name;\n }\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n\n return BaseException;\n})();\n\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg, \"PasswordException\");\n this.code = code;\n }\n}\n\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg, \"UnknownErrorException\");\n this.details = details;\n }\n}\n\nclass InvalidPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"InvalidPDFException\");\n }\n}\n\nclass MissingPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"MissingPDFException\");\n }\n}\n\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg, \"UnexpectedResponseException\");\n this.status = status;\n }\n}\n\n/**\n * Error caused during parsing PDF data.\n */\nclass FormatError extends BaseException {\n constructor(msg) {\n super(msg, \"FormatError\");\n }\n}\n\n/**\n * Error used to indicate task cancellation.\n */\nclass AbortException extends BaseException {\n constructor(msg) {\n super(msg, \"AbortException\");\n }\n}\n\nfunction bytesToString(bytes) {\n if (\n typeof bytes !== \"object\" ||\n bytes === null ||\n bytes.length === undefined\n ) {\n unreachable(\"Invalid argument for bytesToString\");\n }\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n const strBuf = [];\n for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n const chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n if (typeof str !== \"string\") {\n unreachable(\"Invalid argument for stringToBytes\");\n }\n const length = str.length;\n const bytes = new Uint8Array(length);\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n return bytes;\n}\n\n/**\n * Gets length of the array (Array, Uint8Array, or string) in bytes.\n * @param {Array|Uint8Array|string} arr\n * @returns {number}\n */\n// eslint-disable-next-line consistent-return\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n if (arr.byteLength !== undefined) {\n return arr.byteLength;\n }\n unreachable(\"Invalid argument for arrayByteLength\");\n}\n\n/**\n * Combines array items (arrays) into single Uint8Array object.\n * @param {Array|Uint8Array|string>} arr - the array of the arrays\n * (Array, Uint8Array, or string).\n * @returns {Uint8Array}\n */\nfunction arraysToBytes(arr) {\n const length = arr.length;\n // Shortcut: if first and only item is Uint8Array, return it.\n if (length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n let resultLength = 0;\n for (let i = 0; i < length; i++) {\n resultLength += arrayByteLength(arr[i]);\n }\n let pos = 0;\n const data = new Uint8Array(resultLength);\n for (let i = 0; i < length; i++) {\n let item = arr[i];\n if (!(item instanceof Uint8Array)) {\n if (typeof item === \"string\") {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n const itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n return data;\n}\n\nfunction string32(value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n typeof value === \"number\" && Math.abs(value) < 2 ** 32,\n `string32: Unexpected input \"${value}\".`\n );\n }\n return String.fromCharCode(\n (value >> 24) & 0xff,\n (value >> 16) & 0xff,\n (value >> 8) & 0xff,\n value & 0xff\n );\n}\n\nfunction objectSize(obj) {\n return Object.keys(obj).length;\n}\n\n// Ensure that the returned Object has a `null` prototype; hence why\n// `Object.fromEntries(...)` is not used.\nfunction objectFromMap(map) {\n const obj = Object.create(null);\n for (const [key, value] of map) {\n obj[key] = value;\n }\n return obj;\n}\n\n// Checks the endianness of the platform.\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\n\n// Checks if it's possible to eval JS expressions.\nfunction isEvalSupported() {\n try {\n new Function(\"\"); // eslint-disable-line no-new, no-new-func\n return true;\n } catch (e) {\n return false;\n }\n}\n\nclass FeatureTest {\n static get isLittleEndian() {\n return shadow(this, \"isLittleEndian\", isLittleEndian());\n }\n\n static get isEvalSupported() {\n return shadow(this, \"isEvalSupported\", isEvalSupported());\n }\n\n static get isOffscreenCanvasSupported() {\n return shadow(\n this,\n \"isOffscreenCanvasSupported\",\n typeof OffscreenCanvas !== \"undefined\"\n );\n }\n}\n\nconst hexNumbers = [...Array(256).keys()].map(n =>\n n.toString(16).padStart(2, \"0\")\n);\n\nclass Util {\n static makeHexColor(r, g, b) {\n return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n }\n\n // Apply a scaling matrix to some min/max values.\n // If a scaling factor is negative then min and max must be\n // swaped.\n static scaleMinMax(transform, minMax) {\n let temp;\n if (transform[0]) {\n if (transform[0] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[0];\n minMax[1] *= transform[0];\n\n if (transform[3] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[3];\n minMax[3] *= transform[3];\n } else {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n\n if (transform[1] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[1];\n minMax[3] *= transform[1];\n\n if (transform[2] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[2];\n minMax[1] *= transform[2];\n }\n minMax[0] += transform[4];\n minMax[1] += transform[4];\n minMax[2] += transform[5];\n minMax[3] += transform[5];\n }\n\n // Concatenates two transformation matrices together and returns the result.\n static transform(m1, m2) {\n return [\n m1[0] * m2[0] + m1[2] * m2[1],\n m1[1] * m2[0] + m1[3] * m2[1],\n m1[0] * m2[2] + m1[2] * m2[3],\n m1[1] * m2[2] + m1[3] * m2[3],\n m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n m1[1] * m2[4] + m1[3] * m2[5] + m1[5],\n ];\n }\n\n // For 2d affine transforms\n static applyTransform(p, m) {\n const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n }\n\n static applyInverseTransform(p, m) {\n const d = m[0] * m[3] - m[1] * m[2];\n const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n }\n\n // Applies the transform to the rectangle and finds the minimum axially\n // aligned bounding box.\n static getAxialAlignedBoundingBox(r, m) {\n const p1 = Util.applyTransform(r, m);\n const p2 = Util.applyTransform(r.slice(2, 4), m);\n const p3 = Util.applyTransform([r[0], r[3]], m);\n const p4 = Util.applyTransform([r[2], r[1]], m);\n return [\n Math.min(p1[0], p2[0], p3[0], p4[0]),\n Math.min(p1[1], p2[1], p3[1], p4[1]),\n Math.max(p1[0], p2[0], p3[0], p4[0]),\n Math.max(p1[1], p2[1], p3[1], p4[1]),\n ];\n }\n\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [\n m[3] / d,\n -m[1] / d,\n -m[2] / d,\n m[0] / d,\n (m[2] * m[5] - m[4] * m[3]) / d,\n (m[4] * m[1] - m[5] * m[0]) / d,\n ];\n }\n\n // Apply a generic 3d matrix M on a 3-vector v:\n // | a b c | | X |\n // | d e f | x | Y |\n // | g h i | | Z |\n // M is assumed to be serialized as [a,b,c,d,e,f,g,h,i],\n // with v as [X,Y,Z]\n static apply3dTransform(m, v) {\n return [\n m[0] * v[0] + m[1] * v[1] + m[2] * v[2],\n m[3] * v[0] + m[4] * v[1] + m[5] * v[2],\n m[6] * v[0] + m[7] * v[1] + m[8] * v[2],\n ];\n }\n\n // This calculation uses Singular Value Decomposition.\n // The SVD can be represented with formula A = USV. We are interested in the\n // matrix S here because it represents the scale values.\n static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\n\n // Multiply matrix m with its transpose.\n const a = m[0] * transpose[0] + m[1] * transpose[2];\n const b = m[0] * transpose[1] + m[1] * transpose[3];\n const c = m[2] * transpose[0] + m[3] * transpose[2];\n const d = m[2] * transpose[1] + m[3] * transpose[3];\n\n // Solve the second degree polynomial to get roots.\n const first = (a + d) / 2;\n const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n const sx = first + second || 1;\n const sy = first - second || 1;\n\n // Scale values are the square roots of the eigenvalues.\n return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n\n // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)\n // For coordinate systems whose origin lies in the bottom-left, this\n // means normalization to (BL,TR) ordering. For systems with origin in the\n // top-left, this means (TL,BR) ordering.\n static normalizeRect(rect) {\n const r = rect.slice(0); // clone rect\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n }\n\n // Returns a rectangle [x1, y1, x2, y2] corresponding to the\n // intersection of rect1 and rect2. If no intersection, returns 'null'\n // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n static intersect(rect1, rect2) {\n const xLow = Math.max(\n Math.min(rect1[0], rect1[2]),\n Math.min(rect2[0], rect2[2])\n );\n const xHigh = Math.min(\n Math.max(rect1[0], rect1[2]),\n Math.max(rect2[0], rect2[2])\n );\n if (xLow > xHigh) {\n return null;\n }\n const yLow = Math.max(\n Math.min(rect1[1], rect1[3]),\n Math.min(rect2[1], rect2[3])\n );\n const yHigh = Math.min(\n Math.max(rect1[1], rect1[3]),\n Math.max(rect2[1], rect2[3])\n );\n if (yLow > yHigh) {\n return null;\n }\n\n return [xLow, yLow, xHigh, yHigh];\n }\n\n // From https://github.com/adobe-webplatform/Snap.svg/blob/b365287722a72526000ac4bfcf0ce4cac2faa015/src/path.js#L852\n static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n const tvalues = [],\n bounds = [[], []];\n let a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n for (let i = 0; i < 2; ++i) {\n if (i === 0) {\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n } else {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) < 1e-12) {\n continue;\n }\n t = -c / b;\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n continue;\n }\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = Math.sqrt(b2ac);\n if (b2ac < 0) {\n continue;\n }\n t1 = (-b + sqrtb2ac) / (2 * a);\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n t2 = (-b - sqrtb2ac) / (2 * a);\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n let j = tvalues.length,\n mt;\n const jlen = j;\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] =\n mt * mt * mt * x0 +\n 3 * mt * mt * t * x1 +\n 3 * mt * t * t * x2 +\n t * t * t * x3;\n bounds[1][j] =\n mt * mt * mt * y0 +\n 3 * mt * mt * t * y1 +\n 3 * mt * t * t * y2 +\n t * t * t * y3;\n }\n\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n bounds[0].length = bounds[1].length = jlen + 2;\n\n return [\n Math.min(...bounds[0]),\n Math.min(...bounds[1]),\n Math.max(...bounds[0]),\n Math.max(...bounds[1]),\n ];\n }\n}\n\nconst PDFStringTranslateTable = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8,\n 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192,\n 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018,\n 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d,\n 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac,\n];\n\nfunction stringToPDFString(str) {\n if (str[0] >= \"\\xEF\") {\n let encoding;\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n encoding = \"utf-16be\";\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n encoding = \"utf-16le\";\n } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n encoding = \"utf-8\";\n }\n\n if (encoding) {\n try {\n const decoder = new TextDecoder(encoding, { fatal: true });\n const buffer = stringToBytes(str);\n return decoder.decode(buffer);\n } catch (ex) {\n warn(`stringToPDFString: \"${ex}\".`);\n }\n }\n }\n // ISO Latin 1\n const strBuf = [];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n return strBuf.join(\"\");\n}\n\nfunction escapeString(str) {\n // replace \"(\", \")\", \"\\n\", \"\\r\" and \"\\\"\n // by \"\\(\", \"\\)\", \"\\\\n\", \"\\\\r\" and \"\\\\\"\n // in order to write it in a PDF file.\n return str.replace(/([()\\\\\\n\\r])/g, match => {\n if (match === \"\\n\") {\n return \"\\\\n\";\n } else if (match === \"\\r\") {\n return \"\\\\r\";\n }\n return `\\\\${match}`;\n });\n}\n\nfunction isAscii(str) {\n return /^[\\x00-\\x7F]*$/.test(str);\n}\n\nfunction stringToUTF16BEString(str) {\n const buf = [\"\\xFE\\xFF\"];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n buf.push(\n String.fromCharCode((char >> 8) & 0xff),\n String.fromCharCode(char & 0xff)\n );\n }\n return buf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isArrayBuffer(v) {\n return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n for (let i = 0, ii = arr1.length; i < ii; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction getModificationDate(date = new Date()) {\n const buffer = [\n date.getUTCFullYear().toString(),\n (date.getUTCMonth() + 1).toString().padStart(2, \"0\"),\n date.getUTCDate().toString().padStart(2, \"0\"),\n date.getUTCHours().toString().padStart(2, \"0\"),\n date.getUTCMinutes().toString().padStart(2, \"0\"),\n date.getUTCSeconds().toString().padStart(2, \"0\"),\n ];\n\n return buffer.join(\"\");\n}\n\n/**\n * Promise Capability object.\n *\n * @typedef {Object} PromiseCapability\n * @property {Promise} promise - A Promise object.\n * @property {boolean} settled - If the Promise has been fulfilled/rejected.\n * @property {function} resolve - Fulfills the Promise.\n * @property {function} reject - Rejects the Promise.\n */\n\n/**\n * Creates a promise capability object.\n * @alias createPromiseCapability\n *\n * @returns {PromiseCapability}\n */\nfunction createPromiseCapability() {\n const capability = Object.create(null);\n let isSettled = false;\n\n Object.defineProperty(capability, \"settled\", {\n get() {\n return isSettled;\n },\n });\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = function (data) {\n isSettled = true;\n resolve(data);\n };\n capability.reject = function (reason) {\n isSettled = true;\n reject(reason);\n };\n });\n return capability;\n}\n\nexport {\n AbortException,\n AnnotationActionEventType,\n AnnotationBorderStyleType,\n AnnotationFieldFlag,\n AnnotationFlag,\n AnnotationMarkedState,\n AnnotationMode,\n AnnotationReplyType,\n AnnotationReviewState,\n AnnotationStateModelType,\n AnnotationType,\n arrayByteLength,\n arraysToBytes,\n assert,\n BaseException,\n bytesToString,\n CMapCompressionType,\n createPromiseCapability,\n createValidAbsoluteUrl,\n DocumentActionEventType,\n escapeString,\n FeatureTest,\n FONT_IDENTITY_MATRIX,\n FontType,\n FormatError,\n getModificationDate,\n getVerbosityLevel,\n IDENTITY_MATRIX,\n ImageKind,\n info,\n InvalidPDFException,\n isArrayBuffer,\n isArrayEqual,\n isAscii,\n MissingPDFException,\n objectFromMap,\n objectSize,\n OPS,\n PageActionEventType,\n PasswordException,\n PasswordResponses,\n PermissionFlag,\n RenderingIntentFlag,\n setVerbosityLevel,\n shadow,\n StreamType,\n string32,\n stringToBytes,\n stringToPDFString,\n stringToUTF16BEString,\n stringToUTF8String,\n TextRenderingMode,\n UnexpectedResponseException,\n UnknownErrorException,\n unreachable,\n UNSUPPORTED_FEATURES,\n utf8StringToString,\n Util,\n VerbosityLevel,\n warn,\n};\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals __non_webpack_require__ */\n\nimport { isNodeJS } from \"./is_node.js\";\n\n// Skip compatibility checks for modern builds and if we already ran the module.\nif (\n (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"SKIP_BABEL\")) &&\n !globalThis._pdfjsCompatibilityChecked\n) {\n globalThis._pdfjsCompatibilityChecked = true;\n\n // Support: Node.js\n (function checkNodeBtoa() {\n if (globalThis.btoa || !isNodeJS) {\n return;\n }\n globalThis.btoa = function (chars) {\n // eslint-disable-next-line no-undef\n return Buffer.from(chars, \"binary\").toString(\"base64\");\n };\n })();\n\n // Support: Node.js\n (function checkNodeAtob() {\n if (globalThis.atob || !isNodeJS) {\n return;\n }\n globalThis.atob = function (input) {\n // eslint-disable-next-line no-undef\n return Buffer.from(input, \"base64\").toString(\"binary\");\n };\n })();\n\n // Support: Node.js\n (function checkDOMMatrix() {\n if (globalThis.DOMMatrix || !isNodeJS) {\n return;\n }\n globalThis.DOMMatrix = __non_webpack_require__(\n \"dommatrix/dist/dommatrix.js\"\n );\n })();\n\n // Provides support for *recent* additions to the Promise specification,\n // however basic Promise support is assumed to be available natively.\n // Support: Firefox<71, Chrome<76, Safari<13, Node.js<12.9.0\n (function checkPromise() {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n // The current image decoders are synchronous, hence `Promise` shouldn't\n // need to be polyfilled for the IMAGE_DECODERS build target.\n return;\n }\n if (globalThis.Promise.allSettled) {\n return;\n }\n globalThis.Promise = require(\"core-js/es/promise/index.js\");\n })();\n\n // Support: Node.js\n (function checkReadableStream() {\n if (globalThis.ReadableStream || !isNodeJS) {\n return;\n }\n globalThis.ReadableStream = __non_webpack_require__(\n \"web-streams-polyfill/dist/ponyfill.js\"\n ).ReadableStream;\n })();\n\n // Support: Firefox<94, Chrome<98, Safari<15.4, Node.js<17.0.0\n (function checkStructuredClone() {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n // The current image decoders are synchronous, hence `structuredClone`\n // shouldn't need to be polyfilled for the IMAGE_DECODERS build target.\n return;\n }\n if (globalThis.structuredClone) {\n return;\n }\n require(\"core-js/web/structured-clone.js\");\n })();\n}\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals process */\n\n// NW.js / Electron is a browser context, but copies some Node.js objects; see\n// http://docs.nwjs.io/en/latest/For%20Users/Advanced/JavaScript%20Contexts%20in%20NW.js/#access-nodejs-and-nwjs-api-in-browser-context\n// https://www.electronjs.org/docs/api/process#processversionselectron-readonly\n// https://www.electronjs.org/docs/api/process#processtype-readonly\nconst isNodeJS =\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n typeof process === \"object\" &&\n process + \"\" === \"[object process]\" &&\n !process.versions.nw &&\n !(process.versions.electron && process.type && process.type !== \"browser\");\n\nexport { isNodeJS };\n","require('../../modules/es.aggregate-error');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.all-settled');\nrequire('../../modules/es.promise.any');\nrequire('../../modules/es.promise.finally');\nrequire('../../modules/es.string.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Promise;\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.aggregate-error.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar installErrorCause = require('../internals/install-error-cause');\nvar iterate = require('../internals/iterate');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Error = Error;\nvar push = [].push;\n\nvar $AggregateError = function AggregateError(errors, message /* , options */) {\n var options = arguments.length > 2 ? arguments[2] : undefined;\n var isInstance = isPrototypeOf(AggregateErrorPrototype, this);\n var that;\n if (setPrototypeOf) {\n that = setPrototypeOf($Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);\n } else {\n that = isInstance ? this : create(AggregateErrorPrototype);\n createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');\n }\n if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));\n if (ERROR_STACK_INSTALLABLE) createNonEnumerableProperty(that, 'stack', clearErrorStack(that.stack, 1));\n installErrorCause(that, options);\n var errorsArray = [];\n iterate(errors, push, { that: errorsArray });\n createNonEnumerableProperty(that, 'errors', errorsArray);\n return that;\n};\n\nif (setPrototypeOf) setPrototypeOf($AggregateError, $Error);\nelse copyConstructorProperties($AggregateError, $Error, { name: true });\n\nvar AggregateErrorPrototype = $AggregateError.prototype = create($Error.prototype, {\n constructor: createPropertyDescriptor(1, $AggregateError),\n message: createPropertyDescriptor(1, ''),\n name: createPropertyDescriptor(1, 'AggregateError')\n});\n\n// `AggregateError` constructor\n// https://tc39.es/ecma262/#sec-aggregate-error-constructor\n$({ global: true, constructor: true, arity: 2 }, {\n AggregateError: $AggregateError\n});\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es-x/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var isCallable = require('../internals/is-callable');\n\nvar documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar SPECIAL_DOCUMENT_ALL = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = SPECIAL_DOCUMENT_ALL ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.25.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.25.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","module.exports = false;\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es-x/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es-x/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es-x/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es-x/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es-x/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es-x/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es-x/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es-x/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es-x/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String($Error(arg).stack); })('zxcasd');\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n","var isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n if (isObject(options) && 'cause' in options) {\n createNonEnumerableProperty(O, 'cause', options.cause);\n }\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","module.exports = {};\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = Error('a');\n if (!('stack' in error)) return true;\n // eslint-disable-next-line es-x/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n if (kind == 'keys') return createIterResultObject(index, false);\n if (kind == 'values') return createIterResultObject(target[index], false);\n return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es-x/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar location, defer, channel, port;\n\ntry {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n location = global.location;\n} catch (error) { /* empty */ }\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es-x/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // strange IE + webpack dev server bug - use .bind(global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var userAgent = require('../internals/engine-user-agent');\nvar global = require('../internals/global');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n }\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n if (this.head) this.tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n this.head = entry.next;\n if (this.tail === entry) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","var IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es-x/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (error) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: error };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar getBuiltIn = require('../internals/get-built-in');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\nvar PROMISE_ANY_ERROR = 'No one promise resolved';\n\n// `Promise.any` method\n// https://tc39.es/ecma262/#sec-promise.any\n$({ target: 'Promise', stat: true }, {\n any: function any(iterable) {\n var C = this;\n var AggregateError = getBuiltIn('AggregateError');\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var errors = [];\n var counter = 0;\n var remaining = 1;\n var alreadyResolved = false;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyRejected = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyResolved = true;\n resolve(value);\n }, function (error) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyRejected = true;\n errors[index] = error;\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n });\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromiseConstructor && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromisePrototype['finally'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true });\n }\n}\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","require('../modules/es.array.iterator');\nrequire('../modules/es.object.to-string');\nrequire('../modules/es.map');\nrequire('../modules/es.set');\nrequire('../modules/web.structured-clone');\nvar path = require('../internals/path');\n\nmodule.exports = path.structuredClone;\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.map.constructor');\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","/* eslint-disable es-x/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es-x/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es-x/no-object-isextensible, es-x/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-object-isextensible, es-x/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n // return step by kind\n if (kind == 'keys') return createIterResultObject(entry.key, false);\n if (kind == 'values') return createIterResultObject(entry.value, false);\n return createIterResultObject([entry.key, entry.value], false);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.set.constructor');\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var IS_PURE = require('../internals/is-pure');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltin = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar uid = require('../internals/uid');\nvar isCallable = require('../internals/is-callable');\nvar isConstructor = require('../internals/is-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar iterate = require('../internals/iterate');\nvar anObject = require('../internals/an-object');\nvar classof = require('../internals/classof');\nvar hasOwn = require('../internals/has-own-property');\nvar createProperty = require('../internals/create-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\nvar V8 = require('../internals/engine-v8-version');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar Object = global.Object;\nvar Date = global.Date;\nvar Error = global.Error;\nvar EvalError = global.EvalError;\nvar RangeError = global.RangeError;\nvar ReferenceError = global.ReferenceError;\nvar SyntaxError = global.SyntaxError;\nvar TypeError = global.TypeError;\nvar URIError = global.URIError;\nvar PerformanceMark = global.PerformanceMark;\nvar WebAssembly = global.WebAssembly;\nvar CompileError = WebAssembly && WebAssembly.CompileError || Error;\nvar LinkError = WebAssembly && WebAssembly.LinkError || Error;\nvar RuntimeError = WebAssembly && WebAssembly.RuntimeError || Error;\nvar DOMException = getBuiltin('DOMException');\nvar Set = getBuiltin('Set');\nvar Map = getBuiltin('Map');\nvar MapPrototype = Map.prototype;\nvar mapHas = uncurryThis(MapPrototype.has);\nvar mapGet = uncurryThis(MapPrototype.get);\nvar mapSet = uncurryThis(MapPrototype.set);\nvar setAdd = uncurryThis(Set.prototype.add);\nvar objectKeys = getBuiltin('Object', 'keys');\nvar push = uncurryThis([].push);\nvar thisBooleanValue = uncurryThis(true.valueOf);\nvar thisNumberValue = uncurryThis(1.0.valueOf);\nvar thisStringValue = uncurryThis(''.valueOf);\nvar thisTimeValue = uncurryThis(Date.prototype.getTime);\nvar PERFORMANCE_MARK = uid('structuredClone');\nvar DATA_CLONE_ERROR = 'DataCloneError';\nvar TRANSFERRING = 'Transferring';\n\nvar checkBasicSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n var set1 = new global.Set([7]);\n var set2 = structuredCloneImplementation(set1);\n var number = structuredCloneImplementation(Object(7));\n return set2 == set1 || !set2.has(7) || typeof number != 'object' || number != 7;\n }) && structuredCloneImplementation;\n};\n\nvar checkErrorsCloning = function (structuredCloneImplementation, $Error) {\n return !fails(function () {\n var error = new $Error();\n var test = structuredCloneImplementation({ a: error, b: error });\n return !(test && test.a === test.b && test.a instanceof $Error && test.a.stack === error.stack);\n });\n};\n\n// https://github.com/whatwg/html/pull/5749\nvar checkNewErrorsCloningSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n var test = structuredCloneImplementation(new global.AggregateError([1], PERFORMANCE_MARK, { cause: 3 }));\n return test.name != 'AggregateError' || test.errors[0] != 1 || test.message != PERFORMANCE_MARK || test.cause != 3;\n });\n};\n\n// FF94+, Safari 15.4+, Chrome 98+, NodeJS 17.0+, Deno 1.13+\n// FF<103 and Safari implementations can't clone errors\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1556604\n// FF103 can clone errors, but `.stack` of clone is an empty string\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1778762\n// FF104+ fixed it on usual errors, but not on DOMExceptions\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1777321\n// Chrome <102 returns `null` if cloned object contains multiple references to one error\n// https://bugs.chromium.org/p/v8/issues/detail?id=12542\n// NodeJS implementation can't clone DOMExceptions\n// https://github.com/nodejs/node/issues/41038\n// only FF103+ supports new (html/5749) error cloning semantic\nvar nativeStructuredClone = global.structuredClone;\n\nvar FORCED_REPLACEMENT = IS_PURE\n || !checkErrorsCloning(nativeStructuredClone, Error)\n || !checkErrorsCloning(nativeStructuredClone, DOMException)\n || !checkNewErrorsCloningSemantic(nativeStructuredClone);\n\n// Chrome 82+, Safari 14.1+, Deno 1.11+\n// Chrome 78-81 implementation swaps `.name` and `.message` of cloned `DOMException`\n// Chrome returns `null` if cloned object contains multiple references to one error\n// Safari 14.1 implementation doesn't clone some `RegExp` flags, so requires a workaround\n// Safari implementation can't clone errors\n// Deno 1.2-1.10 implementations too naive\n// NodeJS 16.0+ does not have `PerformanceMark` constructor\n// NodeJS <17.2 structured cloning implementation from `performance.mark` is too naive\n// and can't clone, for example, `RegExp` or some boxed primitives\n// https://github.com/nodejs/node/issues/40840\n// no one of those implementations supports new (html/5749) error cloning semantic\nvar structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) {\n return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail;\n});\n\nvar nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark;\n\nvar throwUncloneable = function (type) {\n throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR);\n};\n\nvar throwUnpolyfillable = function (type, action) {\n throw new DOMException((action || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR);\n};\n\nvar createDataTransfer = function () {\n var dataTransfer;\n try {\n dataTransfer = new global.DataTransfer();\n } catch (error) {\n try {\n dataTransfer = new global.ClipboardEvent('').clipboardData;\n } catch (error2) { /* empty */ }\n }\n return dataTransfer && dataTransfer.items && dataTransfer.files ? dataTransfer : null;\n};\n\nvar structuredCloneInternal = function (value, map) {\n if (isSymbol(value)) throwUncloneable('Symbol');\n if (!isObject(value)) return value;\n // effectively preserves circular references\n if (map) {\n if (mapHas(map, value)) return mapGet(map, value);\n } else map = new Map();\n\n var type = classof(value);\n var deep = false;\n var C, name, cloned, dataTransfer, i, length, keys, key, source, target;\n\n switch (type) {\n case 'Array':\n cloned = [];\n deep = true;\n break;\n case 'Object':\n cloned = {};\n deep = true;\n break;\n case 'Map':\n cloned = new Map();\n deep = true;\n break;\n case 'Set':\n cloned = new Set();\n deep = true;\n break;\n case 'RegExp':\n // in this block because of a Safari 14.1 bug\n // old FF does not clone regexes passed to the constructor, so get the source and flags directly\n cloned = new RegExp(value.source, getRegExpFlags(value));\n break;\n case 'Error':\n name = value.name;\n switch (name) {\n case 'AggregateError':\n cloned = getBuiltin('AggregateError')([]);\n break;\n case 'EvalError':\n cloned = EvalError();\n break;\n case 'RangeError':\n cloned = RangeError();\n break;\n case 'ReferenceError':\n cloned = ReferenceError();\n break;\n case 'SyntaxError':\n cloned = SyntaxError();\n break;\n case 'TypeError':\n cloned = TypeError();\n break;\n case 'URIError':\n cloned = URIError();\n break;\n case 'CompileError':\n cloned = CompileError();\n break;\n case 'LinkError':\n cloned = LinkError();\n break;\n case 'RuntimeError':\n cloned = RuntimeError();\n break;\n default:\n cloned = Error();\n }\n deep = true;\n break;\n case 'DOMException':\n cloned = new DOMException(value.message, value.name);\n deep = true;\n break;\n case 'DataView':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'BigInt64Array':\n case 'BigUint64Array':\n C = global[type];\n // in some old engines like Safari 9, typeof C is 'object'\n // on Uint8ClampedArray or some other constructors\n if (!isObject(C)) throwUnpolyfillable(type);\n cloned = new C(\n // this is safe, since arraybuffer cannot have circular references\n structuredCloneInternal(value.buffer, map),\n value.byteOffset,\n type === 'DataView' ? value.byteLength : value.length\n );\n break;\n case 'DOMQuad':\n try {\n cloned = new DOMQuad(\n structuredCloneInternal(value.p1, map),\n structuredCloneInternal(value.p2, map),\n structuredCloneInternal(value.p3, map),\n structuredCloneInternal(value.p4, map)\n );\n } catch (error) {\n if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else throwUnpolyfillable(type);\n }\n break;\n case 'FileList':\n dataTransfer = createDataTransfer();\n if (dataTransfer) {\n for (i = 0, length = lengthOfArrayLike(value); i < length; i++) {\n dataTransfer.items.add(structuredCloneInternal(value[i], map));\n }\n cloned = dataTransfer.files;\n } else if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else throwUnpolyfillable(type);\n break;\n case 'ImageData':\n // Safari 9 ImageData is a constructor, but typeof ImageData is 'object'\n try {\n cloned = new ImageData(\n structuredCloneInternal(value.data, map),\n value.width,\n value.height,\n { colorSpace: value.colorSpace }\n );\n } catch (error) {\n if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else throwUnpolyfillable(type);\n } break;\n default:\n if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else switch (type) {\n case 'BigInt':\n // can be a 3rd party polyfill\n cloned = Object(value.valueOf());\n break;\n case 'Boolean':\n cloned = Object(thisBooleanValue(value));\n break;\n case 'Number':\n cloned = Object(thisNumberValue(value));\n break;\n case 'String':\n cloned = Object(thisStringValue(value));\n break;\n case 'Date':\n cloned = new Date(thisTimeValue(value));\n break;\n case 'ArrayBuffer':\n C = global.DataView;\n // `ArrayBuffer#slice` is not available in IE10\n // `ArrayBuffer#slice` and `DataView` are not available in old FF\n if (!C && typeof value.slice != 'function') throwUnpolyfillable(type);\n // detached buffers throws in `DataView` and `.slice`\n try {\n if (typeof value.slice == 'function') {\n cloned = value.slice(0);\n } else {\n length = value.byteLength;\n cloned = new ArrayBuffer(length);\n source = new C(value);\n target = new C(cloned);\n for (i = 0; i < length; i++) {\n target.setUint8(i, source.getUint8(i));\n }\n }\n } catch (error) {\n throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR);\n } break;\n case 'SharedArrayBuffer':\n // SharedArrayBuffer should use shared memory, we can't polyfill it, so return the original\n cloned = value;\n break;\n case 'Blob':\n try {\n cloned = value.slice(0, value.size, value.type);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMPoint':\n case 'DOMPointReadOnly':\n C = global[type];\n try {\n cloned = C.fromPoint\n ? C.fromPoint(value)\n : new C(value.x, value.y, value.z, value.w);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMRect':\n case 'DOMRectReadOnly':\n C = global[type];\n try {\n cloned = C.fromRect\n ? C.fromRect(value)\n : new C(value.x, value.y, value.width, value.height);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMMatrix':\n case 'DOMMatrixReadOnly':\n C = global[type];\n try {\n cloned = C.fromMatrix\n ? C.fromMatrix(value)\n : new C(value);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'AudioData':\n case 'VideoFrame':\n if (!isCallable(value.clone)) throwUnpolyfillable(type);\n try {\n cloned = value.clone();\n } catch (error) {\n throwUncloneable(type);\n } break;\n case 'File':\n try {\n cloned = new File([value], value.name, value);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'CryptoKey':\n case 'GPUCompilationMessage':\n case 'GPUCompilationInfo':\n case 'ImageBitmap':\n case 'RTCCertificate':\n case 'WebAssembly.Module':\n throwUnpolyfillable(type);\n // break omitted\n default:\n throwUncloneable(type);\n }\n }\n\n mapSet(map, value, cloned);\n\n if (deep) switch (type) {\n case 'Array':\n case 'Object':\n keys = objectKeys(value);\n for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) {\n key = keys[i];\n createProperty(cloned, key, structuredCloneInternal(value[key], map));\n } break;\n case 'Map':\n value.forEach(function (v, k) {\n mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map));\n });\n break;\n case 'Set':\n value.forEach(function (v) {\n setAdd(cloned, structuredCloneInternal(v, map));\n });\n break;\n case 'Error':\n createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map));\n if (hasOwn(value, 'cause')) {\n createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map));\n }\n if (name == 'AggregateError') {\n cloned.errors = structuredCloneInternal(value.errors, map);\n } // break omitted\n case 'DOMException':\n if (ERROR_STACK_INSTALLABLE) {\n createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map));\n }\n }\n\n return cloned;\n};\n\nvar PROPER_TRANSFER = nativeStructuredClone && !fails(function () {\n // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if ((IS_DENO && V8 > 92) || (IS_NODE && V8 > 94) || (IS_BROWSER && V8 > 97)) return false;\n var buffer = new ArrayBuffer(8);\n var clone = nativeStructuredClone(buffer, { transfer: [buffer] });\n return buffer.byteLength != 0 || clone.byteLength != 8;\n});\n\nvar tryToTransfer = function (rawTransfer, map) {\n if (!isObject(rawTransfer)) throw TypeError('Transfer option cannot be converted to a sequence');\n\n var transfer = [];\n\n iterate(rawTransfer, function (value) {\n push(transfer, anObject(value));\n });\n\n var i = 0;\n var length = lengthOfArrayLike(transfer);\n var value, type, C, transferredArray, transferred, canvas, context;\n\n if (PROPER_TRANSFER) {\n transferredArray = nativeStructuredClone(transfer, { transfer: transfer });\n while (i < length) mapSet(map, transfer[i], transferredArray[i++]);\n } else while (i < length) {\n value = transfer[i++];\n if (mapHas(map, value)) throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR);\n\n type = classof(value);\n\n switch (type) {\n case 'ImageBitmap':\n C = global.OffscreenCanvas;\n if (!isConstructor(C)) throwUnpolyfillable(type, TRANSFERRING);\n try {\n canvas = new C(value.width, value.height);\n context = canvas.getContext('bitmaprenderer');\n context.transferFromImageBitmap(value);\n transferred = canvas.transferToImageBitmap();\n } catch (error) { /* empty */ }\n break;\n case 'AudioData':\n case 'VideoFrame':\n if (!isCallable(value.clone) || !isCallable(value.close)) throwUnpolyfillable(type, TRANSFERRING);\n try {\n transferred = value.clone();\n value.close();\n } catch (error) { /* empty */ }\n break;\n case 'ArrayBuffer':\n case 'MessagePort':\n case 'OffscreenCanvas':\n case 'ReadableStream':\n case 'TransformStream':\n case 'WritableStream':\n throwUnpolyfillable(type, TRANSFERRING);\n }\n\n if (transferred === undefined) throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR);\n mapSet(map, value, transferred);\n }\n};\n\n$({ global: true, enumerable: true, sham: !PROPER_TRANSFER, forced: FORCED_REPLACEMENT }, {\n structuredClone: function structuredClone(value /* , { transfer } */) {\n var options = validateArgumentsLength(arguments.length, 1) > 1 && !isNullOrUndefined(arguments[1]) ? anObject(arguments[1]) : undefined;\n var transfer = options ? options.transfer : undefined;\n var map;\n\n if (transfer !== undefined) {\n map = new Map();\n tryToTransfer(transfer, map);\n }\n\n return structuredCloneInternal(value, map);\n }\n});\n","var call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, shadow, unreachable } from \"../shared/util.js\";\n\nconst CIRCULAR_REF = Symbol(\"CIRCULAR_REF\");\nconst EOF = Symbol(\"EOF\");\n\nconst Name = (function NameClosure() {\n let nameCache = Object.create(null);\n\n // eslint-disable-next-line no-shadow\n class Name {\n constructor(name) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n typeof name !== \"string\"\n ) {\n unreachable('Name: The \"name\" must be a string.');\n }\n this.name = name;\n }\n\n static get(name) {\n const nameValue = nameCache[name];\n // eslint-disable-next-line no-restricted-syntax\n return nameValue ? nameValue : (nameCache[name] = new Name(name));\n }\n\n static _clearCache() {\n nameCache = Object.create(null);\n }\n }\n\n return Name;\n})();\n\nconst Cmd = (function CmdClosure() {\n let cmdCache = Object.create(null);\n\n // eslint-disable-next-line no-shadow\n class Cmd {\n constructor(cmd) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n typeof cmd !== \"string\"\n ) {\n unreachable('Cmd: The \"cmd\" must be a string.');\n }\n this.cmd = cmd;\n }\n\n static get(cmd) {\n const cmdValue = cmdCache[cmd];\n // eslint-disable-next-line no-restricted-syntax\n return cmdValue ? cmdValue : (cmdCache[cmd] = new Cmd(cmd));\n }\n\n static _clearCache() {\n cmdCache = Object.create(null);\n }\n }\n\n return Cmd;\n})();\n\nconst nonSerializable = function nonSerializableClosure() {\n return nonSerializable; // Creating closure on some variable.\n};\n\nclass Dict {\n constructor(xref = null) {\n // Map should only be used internally, use functions below to access.\n this._map = Object.create(null);\n this.xref = xref;\n this.objId = null;\n this.suppressEncryption = false;\n this.__nonSerializable__ = nonSerializable; // Disable cloning of the Dict.\n }\n\n assignXref(newXref) {\n this.xref = newXref;\n }\n\n get size() {\n return Object.keys(this._map).length;\n }\n\n // Automatically dereferences Ref objects.\n get(key1, key2, key3) {\n let value = this._map[key1];\n if (value === undefined && key2 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key2.length < key1.length\n ) {\n unreachable(\"Dict.get: Expected keys to be ordered by length.\");\n }\n value = this._map[key2];\n if (value === undefined && key3 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key3.length < key2.length\n ) {\n unreachable(\"Dict.get: Expected keys to be ordered by length.\");\n }\n value = this._map[key3];\n }\n }\n if (value instanceof Ref && this.xref) {\n return this.xref.fetch(value, this.suppressEncryption);\n }\n return value;\n }\n\n // Same as get(), but returns a promise and uses fetchIfRefAsync().\n async getAsync(key1, key2, key3) {\n let value = this._map[key1];\n if (value === undefined && key2 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key2.length < key1.length\n ) {\n unreachable(\"Dict.getAsync: Expected keys to be ordered by length.\");\n }\n value = this._map[key2];\n if (value === undefined && key3 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key3.length < key2.length\n ) {\n unreachable(\"Dict.getAsync: Expected keys to be ordered by length.\");\n }\n value = this._map[key3];\n }\n }\n if (value instanceof Ref && this.xref) {\n return this.xref.fetchAsync(value, this.suppressEncryption);\n }\n return value;\n }\n\n // Same as get(), but dereferences all elements if the result is an Array.\n getArray(key1, key2, key3) {\n let value = this._map[key1];\n if (value === undefined && key2 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key2.length < key1.length\n ) {\n unreachable(\"Dict.getArray: Expected keys to be ordered by length.\");\n }\n value = this._map[key2];\n if (value === undefined && key3 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key3.length < key2.length\n ) {\n unreachable(\"Dict.getArray: Expected keys to be ordered by length.\");\n }\n value = this._map[key3];\n }\n }\n if (value instanceof Ref && this.xref) {\n value = this.xref.fetch(value, this.suppressEncryption);\n }\n\n if (Array.isArray(value)) {\n value = value.slice(); // Ensure that we don't modify the Dict data.\n for (let i = 0, ii = value.length; i < ii; i++) {\n if (value[i] instanceof Ref && this.xref) {\n value[i] = this.xref.fetch(value[i], this.suppressEncryption);\n }\n }\n }\n return value;\n }\n\n // No dereferencing.\n getRaw(key) {\n return this._map[key];\n }\n\n getKeys() {\n return Object.keys(this._map);\n }\n\n // No dereferencing.\n getRawValues() {\n return Object.values(this._map);\n }\n\n set(key, value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n if (typeof key !== \"string\") {\n unreachable('Dict.set: The \"key\" must be a string.');\n } else if (value === undefined) {\n unreachable('Dict.set: The \"value\" cannot be undefined.');\n }\n }\n this._map[key] = value;\n }\n\n has(key) {\n return this._map[key] !== undefined;\n }\n\n forEach(callback) {\n for (const key in this._map) {\n callback(key, this.get(key));\n }\n }\n\n static get empty() {\n const emptyDict = new Dict(null);\n\n emptyDict.set = (key, value) => {\n unreachable(\"Should not call `set` on the empty dictionary.\");\n };\n return shadow(this, \"empty\", emptyDict);\n }\n\n static merge({ xref, dictArray, mergeSubDicts = false }) {\n const mergedDict = new Dict(xref),\n properties = new Map();\n\n for (const dict of dictArray) {\n if (!(dict instanceof Dict)) {\n continue;\n }\n for (const [key, value] of Object.entries(dict._map)) {\n let property = properties.get(key);\n if (property === undefined) {\n property = [];\n properties.set(key, property);\n } else if (!mergeSubDicts || !(value instanceof Dict)) {\n // Ignore additional entries, if either:\n // - This is a \"shallow\" merge, where only the first element matters.\n // - The value is *not* a `Dict`, since other types cannot be merged.\n continue;\n }\n property.push(value);\n }\n }\n for (const [name, values] of properties) {\n if (values.length === 1 || !(values[0] instanceof Dict)) {\n mergedDict._map[name] = values[0];\n continue;\n }\n const subDict = new Dict(xref);\n\n for (const dict of values) {\n for (const [key, value] of Object.entries(dict._map)) {\n if (subDict._map[key] === undefined) {\n subDict._map[key] = value;\n }\n }\n }\n if (subDict.size > 0) {\n mergedDict._map[name] = subDict;\n }\n }\n properties.clear();\n\n return mergedDict.size > 0 ? mergedDict : Dict.empty;\n }\n}\n\nconst Ref = (function RefClosure() {\n let refCache = Object.create(null);\n\n // eslint-disable-next-line no-shadow\n class Ref {\n constructor(num, gen) {\n this.num = num;\n this.gen = gen;\n }\n\n toString() {\n // This function is hot, so we make the string as compact as possible.\n // |this.gen| is almost always zero, so we treat that case specially.\n if (this.gen === 0) {\n return `${this.num}R`;\n }\n return `${this.num}R${this.gen}`;\n }\n\n static get(num, gen) {\n const key = gen === 0 ? `${num}R` : `${num}R${gen}`;\n const refValue = refCache[key];\n // eslint-disable-next-line no-restricted-syntax\n return refValue ? refValue : (refCache[key] = new Ref(num, gen));\n }\n\n static _clearCache() {\n refCache = Object.create(null);\n }\n }\n\n return Ref;\n})();\n\n// The reference is identified by number and generation.\n// This structure stores only one instance of the reference.\nclass RefSet {\n constructor(parent = null) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n parent &&\n !(parent instanceof RefSet)\n ) {\n unreachable('RefSet: Invalid \"parent\" value.');\n }\n this._set = new Set(parent && parent._set);\n }\n\n has(ref) {\n return this._set.has(ref.toString());\n }\n\n put(ref) {\n this._set.add(ref.toString());\n }\n\n remove(ref) {\n this._set.delete(ref.toString());\n }\n\n [Symbol.iterator]() {\n return this._set.values();\n }\n\n clear() {\n this._set.clear();\n }\n}\n\nclass RefSetCache {\n constructor() {\n this._map = new Map();\n }\n\n get size() {\n return this._map.size;\n }\n\n get(ref) {\n return this._map.get(ref.toString());\n }\n\n has(ref) {\n return this._map.has(ref.toString());\n }\n\n put(ref, obj) {\n this._map.set(ref.toString(), obj);\n }\n\n putAlias(ref, aliasRef) {\n this._map.set(ref.toString(), this.get(aliasRef));\n }\n\n [Symbol.iterator]() {\n return this._map.values();\n }\n\n clear() {\n this._map.clear();\n }\n}\n\nfunction isName(v, name) {\n return v instanceof Name && (name === undefined || v.name === name);\n}\n\nfunction isCmd(v, cmd) {\n return v instanceof Cmd && (cmd === undefined || v.cmd === cmd);\n}\n\nfunction isDict(v, type) {\n return (\n v instanceof Dict && (type === undefined || isName(v.get(\"Type\"), type))\n );\n}\n\nfunction isRefsEqual(v1, v2) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n v1 instanceof Ref && v2 instanceof Ref,\n \"isRefsEqual: Both parameters should be `Ref`s.\"\n );\n }\n return v1.num === v2.num && v1.gen === v2.gen;\n}\n\nfunction clearPrimitiveCaches() {\n Cmd._clearCache();\n Name._clearCache();\n Ref._clearCache();\n}\n\nexport {\n CIRCULAR_REF,\n clearPrimitiveCaches,\n Cmd,\n Dict,\n EOF,\n isCmd,\n isDict,\n isName,\n isRefsEqual,\n Name,\n Ref,\n RefSet,\n RefSetCache,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n createValidAbsoluteUrl,\n shadow,\n unreachable,\n warn,\n} from \"../shared/util.js\";\nimport { ChunkedStreamManager } from \"./chunked_stream.js\";\nimport { MissingDataException } from \"./core_utils.js\";\nimport { PDFDocument } from \"./document.js\";\nimport { Stream } from \"./stream.js\";\n\nfunction parseDocBaseUrl(url) {\n if (url) {\n const absoluteUrl = createValidAbsoluteUrl(url);\n if (absoluteUrl) {\n return absoluteUrl.href;\n }\n warn(`Invalid absolute docBaseUrl: \"${url}\".`);\n }\n return null;\n}\n\nclass BasePdfManager {\n constructor() {\n if (this.constructor === BasePdfManager) {\n unreachable(\"Cannot initialize BasePdfManager.\");\n }\n }\n\n get docId() {\n return this._docId;\n }\n\n get password() {\n return this._password;\n }\n\n get docBaseUrl() {\n const catalog = this.pdfDocument.catalog;\n return shadow(this, \"docBaseUrl\", catalog.baseUrl || this._docBaseUrl);\n }\n\n onLoadedStream() {\n unreachable(\"Abstract method `onLoadedStream` called\");\n }\n\n ensureDoc(prop, args) {\n return this.ensure(this.pdfDocument, prop, args);\n }\n\n ensureXRef(prop, args) {\n return this.ensure(this.pdfDocument.xref, prop, args);\n }\n\n ensureCatalog(prop, args) {\n return this.ensure(this.pdfDocument.catalog, prop, args);\n }\n\n getPage(pageIndex) {\n return this.pdfDocument.getPage(pageIndex);\n }\n\n fontFallback(id, handler) {\n return this.pdfDocument.fontFallback(id, handler);\n }\n\n loadXfaFonts(handler, task) {\n return this.pdfDocument.loadXfaFonts(handler, task);\n }\n\n loadXfaImages() {\n return this.pdfDocument.loadXfaImages();\n }\n\n serializeXfaData(annotationStorage) {\n return this.pdfDocument.serializeXfaData(annotationStorage);\n }\n\n cleanup(manuallyTriggered = false) {\n return this.pdfDocument.cleanup(manuallyTriggered);\n }\n\n async ensure(obj, prop, args) {\n unreachable(\"Abstract method `ensure` called\");\n }\n\n requestRange(begin, end) {\n unreachable(\"Abstract method `requestRange` called\");\n }\n\n requestLoadedStream() {\n unreachable(\"Abstract method `requestLoadedStream` called\");\n }\n\n sendProgressiveData(chunk) {\n unreachable(\"Abstract method `sendProgressiveData` called\");\n }\n\n updatePassword(password) {\n this._password = password;\n }\n\n terminate(reason) {\n unreachable(\"Abstract method `terminate` called\");\n }\n}\n\nclass LocalPdfManager extends BasePdfManager {\n constructor(\n docId,\n data,\n password,\n msgHandler,\n evaluatorOptions,\n enableXfa,\n docBaseUrl\n ) {\n super();\n\n this._docId = docId;\n this._password = password;\n this._docBaseUrl = parseDocBaseUrl(docBaseUrl);\n this.msgHandler = msgHandler;\n this.evaluatorOptions = evaluatorOptions;\n this.enableXfa = enableXfa;\n\n const stream = new Stream(data);\n this.pdfDocument = new PDFDocument(this, stream);\n this._loadedStreamPromise = Promise.resolve(stream);\n }\n\n async ensure(obj, prop, args) {\n const value = obj[prop];\n if (typeof value === \"function\") {\n return value.apply(obj, args);\n }\n return value;\n }\n\n requestRange(begin, end) {\n return Promise.resolve();\n }\n\n requestLoadedStream() {}\n\n onLoadedStream() {\n return this._loadedStreamPromise;\n }\n\n terminate(reason) {}\n}\n\nclass NetworkPdfManager extends BasePdfManager {\n constructor(\n docId,\n pdfNetworkStream,\n args,\n evaluatorOptions,\n enableXfa,\n docBaseUrl\n ) {\n super();\n\n this._docId = docId;\n this._password = args.password;\n this._docBaseUrl = parseDocBaseUrl(docBaseUrl);\n this.msgHandler = args.msgHandler;\n this.evaluatorOptions = evaluatorOptions;\n this.enableXfa = enableXfa;\n\n this.streamManager = new ChunkedStreamManager(pdfNetworkStream, {\n msgHandler: args.msgHandler,\n length: args.length,\n disableAutoFetch: args.disableAutoFetch,\n rangeChunkSize: args.rangeChunkSize,\n });\n this.pdfDocument = new PDFDocument(this, this.streamManager.getStream());\n }\n\n async ensure(obj, prop, args) {\n try {\n const value = obj[prop];\n if (typeof value === \"function\") {\n return value.apply(obj, args);\n }\n return value;\n } catch (ex) {\n if (!(ex instanceof MissingDataException)) {\n throw ex;\n }\n await this.requestRange(ex.begin, ex.end);\n return this.ensure(obj, prop, args);\n }\n }\n\n requestRange(begin, end) {\n return this.streamManager.requestRange(begin, end);\n }\n\n requestLoadedStream() {\n this.streamManager.requestAllChunks();\n }\n\n sendProgressiveData(chunk) {\n this.streamManager.onReceiveData({ chunk });\n }\n\n onLoadedStream() {\n return this.streamManager.onLoadedStream();\n }\n\n terminate(reason) {\n this.streamManager.abort(reason);\n }\n}\n\nexport { LocalPdfManager, NetworkPdfManager };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n arrayByteLength,\n arraysToBytes,\n createPromiseCapability,\n} from \"../shared/util.js\";\nimport { MissingDataException } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\n\nclass ChunkedStream extends Stream {\n constructor(length, chunkSize, manager) {\n super(\n /* arrayBuffer = */ new Uint8Array(length),\n /* start = */ 0,\n /* length = */ length,\n /* dict = */ null\n );\n\n this.chunkSize = chunkSize;\n this._loadedChunks = new Set();\n this.numChunks = Math.ceil(length / chunkSize);\n this.manager = manager;\n this.progressiveDataLength = 0;\n this.lastSuccessfulEnsureByteChunk = -1; // Single-entry cache\n }\n\n // If a particular stream does not implement one or more of these methods,\n // an error should be thrown.\n getMissingChunks() {\n const chunks = [];\n for (let chunk = 0, n = this.numChunks; chunk < n; ++chunk) {\n if (!this._loadedChunks.has(chunk)) {\n chunks.push(chunk);\n }\n }\n return chunks;\n }\n\n get numChunksLoaded() {\n return this._loadedChunks.size;\n }\n\n get isDataLoaded() {\n return this.numChunksLoaded === this.numChunks;\n }\n\n onReceiveData(begin, chunk) {\n const chunkSize = this.chunkSize;\n if (begin % chunkSize !== 0) {\n throw new Error(`Bad begin offset: ${begin}`);\n }\n\n // Using `this.length` is inaccurate here since `this.start` can be moved\n // (see the `moveStart` method).\n const end = begin + chunk.byteLength;\n if (end % chunkSize !== 0 && end !== this.bytes.length) {\n throw new Error(`Bad end offset: ${end}`);\n }\n\n this.bytes.set(new Uint8Array(chunk), begin);\n const beginChunk = Math.floor(begin / chunkSize);\n const endChunk = Math.floor((end - 1) / chunkSize) + 1;\n\n for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n // Since a value can only occur *once* in a `Set`, there's no need to\n // manually check `Set.prototype.has()` before adding the value here.\n this._loadedChunks.add(curChunk);\n }\n }\n\n onReceiveProgressiveData(data) {\n let position = this.progressiveDataLength;\n const beginChunk = Math.floor(position / this.chunkSize);\n\n this.bytes.set(new Uint8Array(data), position);\n position += data.byteLength;\n this.progressiveDataLength = position;\n const endChunk =\n position >= this.end\n ? this.numChunks\n : Math.floor(position / this.chunkSize);\n\n for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n // Since a value can only occur *once* in a `Set`, there's no need to\n // manually check `Set.prototype.has()` before adding the value here.\n this._loadedChunks.add(curChunk);\n }\n }\n\n ensureByte(pos) {\n if (pos < this.progressiveDataLength) {\n return;\n }\n\n const chunk = Math.floor(pos / this.chunkSize);\n if (chunk > this.numChunks) {\n return;\n }\n if (chunk === this.lastSuccessfulEnsureByteChunk) {\n return;\n }\n\n if (!this._loadedChunks.has(chunk)) {\n throw new MissingDataException(pos, pos + 1);\n }\n this.lastSuccessfulEnsureByteChunk = chunk;\n }\n\n ensureRange(begin, end) {\n if (begin >= end) {\n return;\n }\n if (end <= this.progressiveDataLength) {\n return;\n }\n\n const beginChunk = Math.floor(begin / this.chunkSize);\n if (beginChunk > this.numChunks) {\n return;\n }\n const endChunk = Math.min(\n Math.floor((end - 1) / this.chunkSize) + 1,\n this.numChunks\n );\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!this._loadedChunks.has(chunk)) {\n throw new MissingDataException(begin, end);\n }\n }\n }\n\n nextEmptyChunk(beginChunk) {\n const numChunks = this.numChunks;\n for (let i = 0; i < numChunks; ++i) {\n const chunk = (beginChunk + i) % numChunks; // Wrap around to beginning.\n if (!this._loadedChunks.has(chunk)) {\n return chunk;\n }\n }\n return null;\n }\n\n hasChunk(chunk) {\n return this._loadedChunks.has(chunk);\n }\n\n getByte() {\n const pos = this.pos;\n if (pos >= this.end) {\n return -1;\n }\n if (pos >= this.progressiveDataLength) {\n this.ensureByte(pos);\n }\n return this.bytes[this.pos++];\n }\n\n getBytes(length) {\n const bytes = this.bytes;\n const pos = this.pos;\n const strEnd = this.end;\n\n if (!length) {\n if (strEnd > this.progressiveDataLength) {\n this.ensureRange(pos, strEnd);\n }\n return bytes.subarray(pos, strEnd);\n }\n\n let end = pos + length;\n if (end > strEnd) {\n end = strEnd;\n }\n if (end > this.progressiveDataLength) {\n this.ensureRange(pos, end);\n }\n\n this.pos = end;\n return bytes.subarray(pos, end);\n }\n\n getByteRange(begin, end) {\n if (begin < 0) {\n begin = 0;\n }\n if (end > this.end) {\n end = this.end;\n }\n if (end > this.progressiveDataLength) {\n this.ensureRange(begin, end);\n }\n return this.bytes.subarray(begin, end);\n }\n\n makeSubStream(start, length, dict = null) {\n if (length) {\n if (start + length > this.progressiveDataLength) {\n this.ensureRange(start, start + length);\n }\n } else {\n // When the `length` is undefined you do *not*, under any circumstances,\n // want to fallback on calling `this.ensureRange(start, this.end)` since\n // that would force the *entire* PDF file to be loaded, thus completely\n // breaking the whole purpose of using streaming and/or range requests.\n //\n // However, not doing any checking here could very easily lead to wasted\n // time/resources during e.g. parsing, since `MissingDataException`s will\n // require data to be re-parsed, which we attempt to minimize by at least\n // checking that the *beginning* of the data is available here.\n if (start >= this.progressiveDataLength) {\n this.ensureByte(start);\n }\n }\n\n function ChunkedStreamSubstream() {}\n ChunkedStreamSubstream.prototype = Object.create(this);\n ChunkedStreamSubstream.prototype.getMissingChunks = function () {\n const chunkSize = this.chunkSize;\n const beginChunk = Math.floor(this.start / chunkSize);\n const endChunk = Math.floor((this.end - 1) / chunkSize) + 1;\n const missingChunks = [];\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!this._loadedChunks.has(chunk)) {\n missingChunks.push(chunk);\n }\n }\n return missingChunks;\n };\n Object.defineProperty(ChunkedStreamSubstream.prototype, \"isDataLoaded\", {\n get() {\n if (this.numChunksLoaded === this.numChunks) {\n return true;\n }\n return this.getMissingChunks().length === 0;\n },\n configurable: true,\n });\n\n const subStream = new ChunkedStreamSubstream();\n subStream.pos = subStream.start = start;\n subStream.end = start + length || this.end;\n subStream.dict = dict;\n return subStream;\n }\n\n getBaseStreams() {\n return [this];\n }\n}\n\nclass ChunkedStreamManager {\n constructor(pdfNetworkStream, args) {\n this.length = args.length;\n this.chunkSize = args.rangeChunkSize;\n this.stream = new ChunkedStream(this.length, this.chunkSize, this);\n this.pdfNetworkStream = pdfNetworkStream;\n this.disableAutoFetch = args.disableAutoFetch;\n this.msgHandler = args.msgHandler;\n\n this.currRequestId = 0;\n\n this._chunksNeededByRequest = new Map();\n this._requestsByChunk = new Map();\n this._promisesByRequest = new Map();\n this.progressiveDataLength = 0;\n this.aborted = false;\n\n this._loadedStreamCapability = createPromiseCapability();\n }\n\n onLoadedStream() {\n return this._loadedStreamCapability.promise;\n }\n\n sendRequest(begin, end) {\n const rangeReader = this.pdfNetworkStream.getRangeReader(begin, end);\n if (!rangeReader.isStreamingSupported) {\n rangeReader.onProgress = this.onProgress.bind(this);\n }\n\n let chunks = [],\n loaded = 0;\n return new Promise((resolve, reject) => {\n const readChunk = chunk => {\n try {\n if (!chunk.done) {\n const data = chunk.value;\n chunks.push(data);\n loaded += arrayByteLength(data);\n if (rangeReader.isStreamingSupported) {\n this.onProgress({ loaded });\n }\n rangeReader.read().then(readChunk, reject);\n return;\n }\n const chunkData = arraysToBytes(chunks);\n chunks = null;\n resolve(chunkData);\n } catch (e) {\n reject(e);\n }\n };\n rangeReader.read().then(readChunk, reject);\n }).then(data => {\n if (this.aborted) {\n return; // Ignoring any data after abort.\n }\n this.onReceiveData({ chunk: data, begin });\n });\n }\n\n /**\n * Get all the chunks that are not yet loaded and group them into\n * contiguous ranges to load in as few requests as possible.\n */\n requestAllChunks() {\n const missingChunks = this.stream.getMissingChunks();\n this._requestChunks(missingChunks);\n return this._loadedStreamCapability.promise;\n }\n\n _requestChunks(chunks) {\n const requestId = this.currRequestId++;\n\n const chunksNeeded = new Set();\n this._chunksNeededByRequest.set(requestId, chunksNeeded);\n for (const chunk of chunks) {\n if (!this.stream.hasChunk(chunk)) {\n chunksNeeded.add(chunk);\n }\n }\n\n if (chunksNeeded.size === 0) {\n return Promise.resolve();\n }\n\n const capability = createPromiseCapability();\n this._promisesByRequest.set(requestId, capability);\n\n const chunksToRequest = [];\n for (const chunk of chunksNeeded) {\n let requestIds = this._requestsByChunk.get(chunk);\n if (!requestIds) {\n requestIds = [];\n this._requestsByChunk.set(chunk, requestIds);\n\n chunksToRequest.push(chunk);\n }\n requestIds.push(requestId);\n }\n\n if (chunksToRequest.length > 0) {\n const groupedChunksToRequest = this.groupChunks(chunksToRequest);\n for (const groupedChunk of groupedChunksToRequest) {\n const begin = groupedChunk.beginChunk * this.chunkSize;\n const end = Math.min(\n groupedChunk.endChunk * this.chunkSize,\n this.length\n );\n this.sendRequest(begin, end).catch(capability.reject);\n }\n }\n\n return capability.promise.catch(reason => {\n if (this.aborted) {\n return; // Ignoring any pending requests after abort.\n }\n throw reason;\n });\n }\n\n getStream() {\n return this.stream;\n }\n\n /**\n * Loads any chunks in the requested range that are not yet loaded.\n */\n requestRange(begin, end) {\n end = Math.min(end, this.length);\n\n const beginChunk = this.getBeginChunk(begin);\n const endChunk = this.getEndChunk(end);\n\n const chunks = [];\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n chunks.push(chunk);\n }\n return this._requestChunks(chunks);\n }\n\n requestRanges(ranges = []) {\n const chunksToRequest = [];\n for (const range of ranges) {\n const beginChunk = this.getBeginChunk(range.begin);\n const endChunk = this.getEndChunk(range.end);\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!chunksToRequest.includes(chunk)) {\n chunksToRequest.push(chunk);\n }\n }\n }\n\n chunksToRequest.sort(function (a, b) {\n return a - b;\n });\n return this._requestChunks(chunksToRequest);\n }\n\n /**\n * Groups a sorted array of chunks into as few contiguous larger\n * chunks as possible.\n */\n groupChunks(chunks) {\n const groupedChunks = [];\n let beginChunk = -1;\n let prevChunk = -1;\n\n for (let i = 0, ii = chunks.length; i < ii; ++i) {\n const chunk = chunks[i];\n if (beginChunk < 0) {\n beginChunk = chunk;\n }\n\n if (prevChunk >= 0 && prevChunk + 1 !== chunk) {\n groupedChunks.push({ beginChunk, endChunk: prevChunk + 1 });\n beginChunk = chunk;\n }\n if (i + 1 === chunks.length) {\n groupedChunks.push({ beginChunk, endChunk: chunk + 1 });\n }\n\n prevChunk = chunk;\n }\n return groupedChunks;\n }\n\n onProgress(args) {\n this.msgHandler.send(\"DocProgress\", {\n loaded: this.stream.numChunksLoaded * this.chunkSize + args.loaded,\n total: this.length,\n });\n }\n\n onReceiveData(args) {\n const chunk = args.chunk;\n const isProgressive = args.begin === undefined;\n const begin = isProgressive ? this.progressiveDataLength : args.begin;\n const end = begin + chunk.byteLength;\n\n const beginChunk = Math.floor(begin / this.chunkSize);\n const endChunk =\n end < this.length\n ? Math.floor(end / this.chunkSize)\n : Math.ceil(end / this.chunkSize);\n\n if (isProgressive) {\n this.stream.onReceiveProgressiveData(chunk);\n this.progressiveDataLength = end;\n } else {\n this.stream.onReceiveData(begin, chunk);\n }\n\n if (this.stream.isDataLoaded) {\n this._loadedStreamCapability.resolve(this.stream);\n }\n\n const loadedRequests = [];\n for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n // The server might return more chunks than requested.\n const requestIds = this._requestsByChunk.get(curChunk);\n if (!requestIds) {\n continue;\n }\n this._requestsByChunk.delete(curChunk);\n\n for (const requestId of requestIds) {\n const chunksNeeded = this._chunksNeededByRequest.get(requestId);\n if (chunksNeeded.has(curChunk)) {\n chunksNeeded.delete(curChunk);\n }\n\n if (chunksNeeded.size > 0) {\n continue;\n }\n loadedRequests.push(requestId);\n }\n }\n\n // If there are no pending requests, automatically fetch the next\n // unfetched chunk of the PDF file.\n if (!this.disableAutoFetch && this._requestsByChunk.size === 0) {\n let nextEmptyChunk;\n if (this.stream.numChunksLoaded === 1) {\n // This is a special optimization so that after fetching the first\n // chunk, rather than fetching the second chunk, we fetch the last\n // chunk.\n const lastChunk = this.stream.numChunks - 1;\n if (!this.stream.hasChunk(lastChunk)) {\n nextEmptyChunk = lastChunk;\n }\n } else {\n nextEmptyChunk = this.stream.nextEmptyChunk(endChunk);\n }\n if (Number.isInteger(nextEmptyChunk)) {\n this._requestChunks([nextEmptyChunk]);\n }\n }\n\n for (const requestId of loadedRequests) {\n const capability = this._promisesByRequest.get(requestId);\n this._promisesByRequest.delete(requestId);\n capability.resolve();\n }\n\n this.msgHandler.send(\"DocProgress\", {\n loaded: this.stream.numChunksLoaded * this.chunkSize,\n total: this.length,\n });\n }\n\n onError(err) {\n this._loadedStreamCapability.reject(err);\n }\n\n getBeginChunk(begin) {\n return Math.floor(begin / this.chunkSize);\n }\n\n getEndChunk(end) {\n return Math.floor((end - 1) / this.chunkSize) + 1;\n }\n\n abort(reason) {\n this.aborted = true;\n if (this.pdfNetworkStream) {\n this.pdfNetworkStream.cancelAllRequests(reason);\n }\n for (const capability of this._promisesByRequest.values()) {\n capability.reject(reason);\n }\n }\n}\n\nexport { ChunkedStream, ChunkedStreamManager };\n","/* Copyright 2019 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n BaseException,\n FontType,\n objectSize,\n StreamType,\n stringToPDFString,\n warn,\n} from \"../shared/util.js\";\nimport { Dict, isName, Ref, RefSet } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\n\nfunction getLookupTableFactory(initializer) {\n let lookup;\n return function () {\n if (initializer) {\n lookup = Object.create(null);\n initializer(lookup);\n initializer = null;\n }\n return lookup;\n };\n}\n\nfunction getArrayLookupTableFactory(initializer) {\n let lookup;\n return function () {\n if (initializer) {\n let arr = initializer();\n initializer = null;\n lookup = Object.create(null);\n for (let i = 0, ii = arr.length; i < ii; i += 2) {\n lookup[arr[i]] = arr[i + 1];\n }\n arr = null;\n }\n return lookup;\n };\n}\n\nclass MissingDataException extends BaseException {\n constructor(begin, end) {\n super(`Missing data [${begin}, ${end})`, \"MissingDataException\");\n this.begin = begin;\n this.end = end;\n }\n}\n\nclass ParserEOFException extends BaseException {\n constructor(msg) {\n super(msg, \"ParserEOFException\");\n }\n}\n\nclass XRefEntryException extends BaseException {\n constructor(msg) {\n super(msg, \"XRefEntryException\");\n }\n}\n\nclass XRefParseException extends BaseException {\n constructor(msg) {\n super(msg, \"XRefParseException\");\n }\n}\n\nclass DocStats {\n constructor(handler) {\n this._handler = handler;\n\n this._streamTypes = new Set();\n this._fontTypes = new Set();\n }\n\n _send() {\n const streamTypes = Object.create(null),\n fontTypes = Object.create(null);\n for (const type of this._streamTypes) {\n streamTypes[type] = true;\n }\n for (const type of this._fontTypes) {\n fontTypes[type] = true;\n }\n this._handler.send(\"DocStats\", { streamTypes, fontTypes });\n }\n\n addStreamType(type) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(StreamType[type] === type, 'addStreamType: Invalid \"type\" value.');\n }\n if (this._streamTypes.has(type)) {\n return;\n }\n this._streamTypes.add(type);\n this._send();\n }\n\n addFontType(type) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(FontType[type] === type, 'addFontType: Invalid \"type\" value.');\n }\n if (this._fontTypes.has(type)) {\n return;\n }\n this._fontTypes.add(type);\n this._send();\n }\n}\n\n/**\n * Get the value of an inheritable property.\n *\n * If the PDF specification explicitly lists a property in a dictionary as\n * inheritable, then the value of the property may be present in the dictionary\n * itself or in one or more parents of the dictionary.\n *\n * If the key is not found in the tree, `undefined` is returned. Otherwise,\n * the value for the key is returned or, if `stopWhenFound` is `false`, a list\n * of values is returned.\n *\n * @param {Dict} dict - Dictionary from where to start the traversal.\n * @param {string} key - The key of the property to find the value for.\n * @param {boolean} getArray - Whether or not the value should be fetched as an\n * array. The default value is `false`.\n * @param {boolean} stopWhenFound - Whether or not to stop the traversal when\n * the key is found. If set to `false`, we always walk up the entire parent\n * chain, for example to be able to find `\\Resources` placed on multiple\n * levels of the tree. The default value is `true`.\n */\nfunction getInheritableProperty({\n dict,\n key,\n getArray = false,\n stopWhenFound = true,\n}) {\n let values;\n const visited = new RefSet();\n\n while (dict instanceof Dict && !(dict.objId && visited.has(dict.objId))) {\n if (dict.objId) {\n visited.put(dict.objId);\n }\n const value = getArray ? dict.getArray(key) : dict.get(key);\n if (value !== undefined) {\n if (stopWhenFound) {\n return value;\n }\n if (!values) {\n values = [];\n }\n values.push(value);\n }\n dict = dict.get(\"Parent\");\n }\n return values;\n}\n\n// prettier-ignore\nconst ROMAN_NUMBER_MAP = [\n \"\", \"C\", \"CC\", \"CCC\", \"CD\", \"D\", \"DC\", \"DCC\", \"DCCC\", \"CM\",\n \"\", \"X\", \"XX\", \"XXX\", \"XL\", \"L\", \"LX\", \"LXX\", \"LXXX\", \"XC\",\n \"\", \"I\", \"II\", \"III\", \"IV\", \"V\", \"VI\", \"VII\", \"VIII\", \"IX\"\n];\n\n/**\n * Converts positive integers to (upper case) Roman numerals.\n * @param {number} number - The number that should be converted.\n * @param {boolean} lowerCase - Indicates if the result should be converted\n * to lower case letters. The default value is `false`.\n * @returns {string} The resulting Roman number.\n */\nfunction toRomanNumerals(number, lowerCase = false) {\n assert(\n Number.isInteger(number) && number > 0,\n \"The number should be a positive integer.\"\n );\n const romanBuf = [];\n let pos;\n // Thousands\n while (number >= 1000) {\n number -= 1000;\n romanBuf.push(\"M\");\n }\n // Hundreds\n pos = (number / 100) | 0;\n number %= 100;\n romanBuf.push(ROMAN_NUMBER_MAP[pos]);\n // Tens\n pos = (number / 10) | 0;\n number %= 10;\n romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);\n // Ones\n romanBuf.push(ROMAN_NUMBER_MAP[20 + number]); // eslint-disable-line unicorn/no-array-push-push\n\n const romanStr = romanBuf.join(\"\");\n return lowerCase ? romanStr.toLowerCase() : romanStr;\n}\n\n// Calculate the base 2 logarithm of the number `x`. This differs from the\n// native function in the sense that it returns the ceiling value and that it\n// returns 0 instead of `Infinity`/`NaN` for `x` values smaller than/equal to 0.\nfunction log2(x) {\n if (x <= 0) {\n return 0;\n }\n return Math.ceil(Math.log2(x));\n}\n\nfunction readInt8(data, offset) {\n return (data[offset] << 24) >> 24;\n}\n\nfunction readUint16(data, offset) {\n return (data[offset] << 8) | data[offset + 1];\n}\n\nfunction readUint32(data, offset) {\n return (\n ((data[offset] << 24) |\n (data[offset + 1] << 16) |\n (data[offset + 2] << 8) |\n data[offset + 3]) >>>\n 0\n );\n}\n\n// Checks if ch is one of the following characters: SPACE, TAB, CR or LF.\nfunction isWhiteSpace(ch) {\n return ch === 0x20 || ch === 0x09 || ch === 0x0d || ch === 0x0a;\n}\n\n/**\n * AcroForm field names use an array like notation to refer to\n * repeated XFA elements e.g. foo.bar[nnn].\n * see: XFA Spec Chapter 3 - Repeated Elements\n *\n * @param {string} path - XFA path name.\n * @returns {Array} - Array of Objects with the name and pos of\n * each part of the path.\n */\nfunction parseXFAPath(path) {\n const positionPattern = /(.+)\\[(\\d+)\\]$/;\n return path.split(\".\").map(component => {\n const m = component.match(positionPattern);\n if (m) {\n return { name: m[1], pos: parseInt(m[2], 10) };\n }\n return { name: component, pos: 0 };\n });\n}\n\nfunction escapePDFName(str) {\n const buffer = [];\n let start = 0;\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n // Whitespace or delimiters aren't regular chars, so escape them.\n if (\n char < 0x21 ||\n char > 0x7e ||\n char === 0x23 /* # */ ||\n char === 0x28 /* ( */ ||\n char === 0x29 /* ) */ ||\n char === 0x3c /* < */ ||\n char === 0x3e /* > */ ||\n char === 0x5b /* [ */ ||\n char === 0x5d /* ] */ ||\n char === 0x7b /* { */ ||\n char === 0x7d /* } */ ||\n char === 0x2f /* / */ ||\n char === 0x25 /* % */\n ) {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n buffer.push(`#${char.toString(16)}`);\n start = i + 1;\n }\n }\n\n if (buffer.length === 0) {\n return str;\n }\n\n if (start < str.length) {\n buffer.push(str.substring(start, str.length));\n }\n\n return buffer.join(\"\");\n}\n\nfunction _collectJS(entry, xref, list, parents) {\n if (!entry) {\n return;\n }\n\n let parent = null;\n if (entry instanceof Ref) {\n if (parents.has(entry)) {\n // If we've already found entry then we've a cycle.\n return;\n }\n parent = entry;\n parents.put(parent);\n entry = xref.fetch(entry);\n }\n if (Array.isArray(entry)) {\n for (const element of entry) {\n _collectJS(element, xref, list, parents);\n }\n } else if (entry instanceof Dict) {\n if (isName(entry.get(\"S\"), \"JavaScript\")) {\n const js = entry.get(\"JS\");\n let code;\n if (js instanceof BaseStream) {\n code = js.getString();\n } else if (typeof js === \"string\") {\n code = js;\n }\n code = code && stringToPDFString(code);\n if (code) {\n list.push(code);\n }\n }\n _collectJS(entry.getRaw(\"Next\"), xref, list, parents);\n }\n\n if (parent) {\n parents.remove(parent);\n }\n}\n\nfunction collectActions(xref, dict, eventType) {\n const actions = Object.create(null);\n const additionalActionsDicts = getInheritableProperty({\n dict,\n key: \"AA\",\n stopWhenFound: false,\n });\n if (additionalActionsDicts) {\n // additionalActionsDicts contains dicts from ancestors\n // as they're found in the tree from bottom to top.\n // So the dicts are visited in reverse order to guarantee\n // that actions from elder ancestors will be overwritten\n // by ones from younger ancestors.\n for (let i = additionalActionsDicts.length - 1; i >= 0; i--) {\n const additionalActions = additionalActionsDicts[i];\n if (!(additionalActions instanceof Dict)) {\n continue;\n }\n for (const key of additionalActions.getKeys()) {\n const action = eventType[key];\n if (!action) {\n continue;\n }\n const actionDict = additionalActions.getRaw(key);\n const parents = new RefSet();\n const list = [];\n _collectJS(actionDict, xref, list, parents);\n if (list.length > 0) {\n actions[action] = list;\n }\n }\n }\n }\n // Collect the Action if any (we may have one on pushbutton).\n if (dict.has(\"A\")) {\n const actionDict = dict.get(\"A\");\n const parents = new RefSet();\n const list = [];\n _collectJS(actionDict, xref, list, parents);\n if (list.length > 0) {\n actions.Action = list;\n }\n }\n return objectSize(actions) > 0 ? actions : null;\n}\n\nconst XMLEntities = {\n /* < */ 0x3c: \"<\",\n /* > */ 0x3e: \">\",\n /* & */ 0x26: \"&\",\n /* \" */ 0x22: \""\",\n /* ' */ 0x27: \"'\",\n};\n\nfunction encodeToXmlString(str) {\n const buffer = [];\n let start = 0;\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.codePointAt(i);\n if (0x20 <= char && char <= 0x7e) {\n // ascii\n const entity = XMLEntities[char];\n if (entity) {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n buffer.push(entity);\n start = i + 1;\n }\n } else {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n buffer.push(`&#x${char.toString(16).toUpperCase()};`);\n if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) {\n // char is represented by two u16\n i++;\n }\n start = i + 1;\n }\n }\n\n if (buffer.length === 0) {\n return str;\n }\n if (start < str.length) {\n buffer.push(str.substring(start, str.length));\n }\n return buffer.join(\"\");\n}\n\nfunction validateCSSFont(cssFontInfo) {\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/font-style.\n const DEFAULT_CSS_FONT_OBLIQUE = \"14\";\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight.\n const DEFAULT_CSS_FONT_WEIGHT = \"400\";\n const CSS_FONT_WEIGHT_VALUES = new Set([\n \"100\",\n \"200\",\n \"300\",\n \"400\",\n \"500\",\n \"600\",\n \"700\",\n \"800\",\n \"900\",\n \"1000\",\n \"normal\",\n \"bold\",\n \"bolder\",\n \"lighter\",\n ]);\n\n const { fontFamily, fontWeight, italicAngle } = cssFontInfo;\n\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/string.\n if (/^\".*\"$/.test(fontFamily)) {\n if (/[^\\\\]\"/.test(fontFamily.slice(1, fontFamily.length - 1))) {\n warn(`XFA - FontFamily contains some unescaped \": ${fontFamily}.`);\n return false;\n }\n } else if (/^'.*'$/.test(fontFamily)) {\n if (/[^\\\\]'/.test(fontFamily.slice(1, fontFamily.length - 1))) {\n warn(`XFA - FontFamily contains some unescaped ': ${fontFamily}.`);\n return false;\n }\n } else {\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/custom-ident.\n for (const ident of fontFamily.split(/[ \\t]+/)) {\n if (/^(\\d|(-(\\d|-)))/.test(ident) || !/^[\\w-\\\\]+$/.test(ident)) {\n warn(\n `XFA - FontFamily contains some invalid : ${fontFamily}.`\n );\n return false;\n }\n }\n }\n\n const weight = fontWeight ? fontWeight.toString() : \"\";\n cssFontInfo.fontWeight = CSS_FONT_WEIGHT_VALUES.has(weight)\n ? weight\n : DEFAULT_CSS_FONT_WEIGHT;\n\n const angle = parseFloat(italicAngle);\n cssFontInfo.italicAngle =\n isNaN(angle) || angle < -90 || angle > 90\n ? DEFAULT_CSS_FONT_OBLIQUE\n : italicAngle.toString();\n\n return true;\n}\n\nfunction recoverJsURL(str) {\n // Attempt to recover valid URLs from `JS` entries with certain\n // white-listed formats:\n // - window.open('http://example.com')\n // - app.launchURL('http://example.com', true)\n // - xfa.host.gotoURL('http://example.com')\n const URL_OPEN_METHODS = [\"app.launchURL\", \"window.open\", \"xfa.host.gotoURL\"];\n const regex = new RegExp(\n \"^\\\\s*(\" +\n URL_OPEN_METHODS.join(\"|\").split(\".\").join(\"\\\\.\") +\n \")\\\\((?:'|\\\")([^'\\\"]*)(?:'|\\\")(?:,\\\\s*(\\\\w+)\\\\)|\\\\))\",\n \"i\"\n );\n\n const jsUrl = regex.exec(str);\n if (jsUrl && jsUrl[2]) {\n const url = jsUrl[2];\n let newWindow = false;\n\n if (jsUrl[3] === \"true\" && jsUrl[1] === \"app.launchURL\") {\n newWindow = true;\n }\n return { url, newWindow };\n }\n\n return null;\n}\n\nexport {\n collectActions,\n DocStats,\n encodeToXmlString,\n escapePDFName,\n getArrayLookupTableFactory,\n getInheritableProperty,\n getLookupTableFactory,\n isWhiteSpace,\n log2,\n MissingDataException,\n ParserEOFException,\n parseXFAPath,\n readInt8,\n readUint16,\n readUint32,\n recoverJsURL,\n toRomanNumerals,\n validateCSSFont,\n XRefEntryException,\n XRefParseException,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bytesToString, shadow, unreachable } from \"../shared/util.js\";\n\nclass BaseStream {\n constructor() {\n if (this.constructor === BaseStream) {\n unreachable(\"Cannot initialize BaseStream.\");\n }\n }\n\n // eslint-disable-next-line getter-return\n get length() {\n unreachable(\"Abstract getter `length` accessed\");\n }\n\n // eslint-disable-next-line getter-return\n get isEmpty() {\n unreachable(\"Abstract getter `isEmpty` accessed\");\n }\n\n get isDataLoaded() {\n return shadow(this, \"isDataLoaded\", true);\n }\n\n getByte() {\n unreachable(\"Abstract method `getByte` called\");\n }\n\n getBytes(length) {\n unreachable(\"Abstract method `getBytes` called\");\n }\n\n peekByte() {\n const peekedByte = this.getByte();\n if (peekedByte !== -1) {\n this.pos--;\n }\n return peekedByte;\n }\n\n peekBytes(length) {\n const bytes = this.getBytes(length);\n this.pos -= bytes.length;\n return bytes;\n }\n\n getUint16() {\n const b0 = this.getByte();\n const b1 = this.getByte();\n if (b0 === -1 || b1 === -1) {\n return -1;\n }\n return (b0 << 8) + b1;\n }\n\n getInt32() {\n const b0 = this.getByte();\n const b1 = this.getByte();\n const b2 = this.getByte();\n const b3 = this.getByte();\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n }\n\n getByteRange(begin, end) {\n unreachable(\"Abstract method `getByteRange` called\");\n }\n\n getString(length) {\n return bytesToString(this.getBytes(length));\n }\n\n skip(n) {\n this.pos += n || 1;\n }\n\n reset() {\n unreachable(\"Abstract method `reset` called\");\n }\n\n moveStart() {\n unreachable(\"Abstract method `moveStart` called\");\n }\n\n makeSubStream(start, length, dict = null) {\n unreachable(\"Abstract method `makeSubStream` called\");\n }\n\n /**\n * @returns {Array | null}\n */\n getBaseStreams() {\n return null;\n }\n}\n\nexport { BaseStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseStream } from \"./base_stream.js\";\nimport { stringToBytes } from \"../shared/util.js\";\n\nclass Stream extends BaseStream {\n constructor(arrayBuffer, start, length, dict) {\n super();\n\n this.bytes =\n arrayBuffer instanceof Uint8Array\n ? arrayBuffer\n : new Uint8Array(arrayBuffer);\n this.start = start || 0;\n this.pos = this.start;\n this.end = start + length || this.bytes.length;\n this.dict = dict;\n }\n\n get length() {\n return this.end - this.start;\n }\n\n get isEmpty() {\n return this.length === 0;\n }\n\n getByte() {\n if (this.pos >= this.end) {\n return -1;\n }\n return this.bytes[this.pos++];\n }\n\n getBytes(length) {\n const bytes = this.bytes;\n const pos = this.pos;\n const strEnd = this.end;\n\n if (!length) {\n return bytes.subarray(pos, strEnd);\n }\n let end = pos + length;\n if (end > strEnd) {\n end = strEnd;\n }\n this.pos = end;\n return bytes.subarray(pos, end);\n }\n\n getByteRange(begin, end) {\n if (begin < 0) {\n begin = 0;\n }\n if (end > this.end) {\n end = this.end;\n }\n return this.bytes.subarray(begin, end);\n }\n\n reset() {\n this.pos = this.start;\n }\n\n moveStart() {\n this.start = this.pos;\n }\n\n makeSubStream(start, length, dict = null) {\n return new Stream(this.bytes.buffer, start, length, dict);\n }\n}\n\nclass StringStream extends Stream {\n constructor(str) {\n super(stringToBytes(str));\n }\n}\n\nclass NullStream extends Stream {\n constructor() {\n super(new Uint8Array(0));\n }\n}\n\nexport { NullStream, Stream, StringStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n FormatError,\n info,\n InvalidPDFException,\n isArrayEqual,\n OPS,\n PageActionEventType,\n RenderingIntentFlag,\n shadow,\n stringToBytes,\n stringToPDFString,\n stringToUTF8String,\n unreachable,\n UNSUPPORTED_FEATURES,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport {\n collectActions,\n getInheritableProperty,\n isWhiteSpace,\n MissingDataException,\n validateCSSFont,\n XRefEntryException,\n XRefParseException,\n} from \"./core_utils.js\";\nimport { Dict, isName, Name, Ref } from \"./primitives.js\";\nimport { getXfaFontDict, getXfaFontName } from \"./xfa_fonts.js\";\nimport { AnnotationFactory } from \"./annotation.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { calculateMD5 } from \"./crypto.js\";\nimport { Catalog } from \"./catalog.js\";\nimport { clearGlobalCaches } from \"./cleanup_helper.js\";\nimport { DatasetReader } from \"./dataset_reader.js\";\nimport { Linearization } from \"./parser.js\";\nimport { NullStream } from \"./stream.js\";\nimport { ObjectLoader } from \"./object_loader.js\";\nimport { OperatorList } from \"./operator_list.js\";\nimport { PartialEvaluator } from \"./evaluator.js\";\nimport { StreamsSequenceStream } from \"./decode_stream.js\";\nimport { StructTreePage } from \"./struct_tree.js\";\nimport { XFAFactory } from \"./xfa/factory.js\";\nimport { XRef } from \"./xref.js\";\n\nconst DEFAULT_USER_UNIT = 1.0;\nconst LETTER_SIZE_MEDIABOX = [0, 0, 612, 792];\n\nclass Page {\n constructor({\n pdfManager,\n xref,\n pageIndex,\n pageDict,\n ref,\n globalIdFactory,\n fontCache,\n builtInCMapCache,\n standardFontDataCache,\n globalImageCache,\n nonBlendModesSet,\n xfaFactory,\n }) {\n this.pdfManager = pdfManager;\n this.pageIndex = pageIndex;\n this.pageDict = pageDict;\n this.xref = xref;\n this.ref = ref;\n this.fontCache = fontCache;\n this.builtInCMapCache = builtInCMapCache;\n this.standardFontDataCache = standardFontDataCache;\n this.globalImageCache = globalImageCache;\n this.nonBlendModesSet = nonBlendModesSet;\n this.evaluatorOptions = pdfManager.evaluatorOptions;\n this.resourcesPromise = null;\n this.xfaFactory = xfaFactory;\n\n const idCounters = {\n obj: 0,\n };\n this._localIdFactory = class extends globalIdFactory {\n static createObjId() {\n return `p${pageIndex}_${++idCounters.obj}`;\n }\n\n static getPageObjId() {\n return `page${ref.toString()}`;\n }\n };\n }\n\n /**\n * @private\n */\n _getInheritableProperty(key, getArray = false) {\n const value = getInheritableProperty({\n dict: this.pageDict,\n key,\n getArray,\n stopWhenFound: false,\n });\n if (!Array.isArray(value)) {\n return value;\n }\n if (value.length === 1 || !(value[0] instanceof Dict)) {\n return value[0];\n }\n return Dict.merge({ xref: this.xref, dictArray: value });\n }\n\n get content() {\n return this.pageDict.getArray(\"Contents\");\n }\n\n get resources() {\n // For robustness: The spec states that a \\Resources entry has to be\n // present, but can be empty. Some documents still omit it; in this case\n // we return an empty dictionary.\n return shadow(\n this,\n \"resources\",\n this._getInheritableProperty(\"Resources\") || Dict.empty\n );\n }\n\n _getBoundingBox(name) {\n if (this.xfaData) {\n return this.xfaData.bbox;\n }\n\n const box = this._getInheritableProperty(name, /* getArray = */ true);\n\n if (Array.isArray(box) && box.length === 4) {\n if (box[2] - box[0] !== 0 && box[3] - box[1] !== 0) {\n return box;\n }\n warn(`Empty /${name} entry.`);\n }\n return null;\n }\n\n get mediaBox() {\n // Reset invalid media box to letter size.\n return shadow(\n this,\n \"mediaBox\",\n this._getBoundingBox(\"MediaBox\") || LETTER_SIZE_MEDIABOX\n );\n }\n\n get cropBox() {\n // Reset invalid crop box to media box.\n return shadow(\n this,\n \"cropBox\",\n this._getBoundingBox(\"CropBox\") || this.mediaBox\n );\n }\n\n get userUnit() {\n let obj = this.pageDict.get(\"UserUnit\");\n if (typeof obj !== \"number\" || obj <= 0) {\n obj = DEFAULT_USER_UNIT;\n }\n return shadow(this, \"userUnit\", obj);\n }\n\n get view() {\n // From the spec, 6th ed., p.963:\n // \"The crop, bleed, trim, and art boxes should not ordinarily\n // extend beyond the boundaries of the media box. If they do, they are\n // effectively reduced to their intersection with the media box.\"\n const { cropBox, mediaBox } = this;\n let view;\n if (cropBox === mediaBox || isArrayEqual(cropBox, mediaBox)) {\n view = mediaBox;\n } else {\n const box = Util.intersect(cropBox, mediaBox);\n if (box && box[2] - box[0] !== 0 && box[3] - box[1] !== 0) {\n view = box;\n } else {\n warn(\"Empty /CropBox and /MediaBox intersection.\");\n }\n }\n return shadow(this, \"view\", view || mediaBox);\n }\n\n get rotate() {\n let rotate = this._getInheritableProperty(\"Rotate\") || 0;\n\n // Normalize rotation so it's a multiple of 90 and between 0 and 270.\n if (rotate % 90 !== 0) {\n rotate = 0;\n } else if (rotate >= 360) {\n rotate %= 360;\n } else if (rotate < 0) {\n // The spec doesn't cover negatives. Assume it's counterclockwise\n // rotation. The following is the other implementation of modulo.\n rotate = ((rotate % 360) + 360) % 360;\n }\n return shadow(this, \"rotate\", rotate);\n }\n\n /**\n * @private\n */\n _onSubStreamError(handler, reason, objId) {\n if (this.evaluatorOptions.ignoreErrors) {\n // Error(s) when reading one of the /Contents sub-streams -- sending\n // unsupported feature notification and allow parsing to continue.\n handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorContentSubStream,\n });\n warn(`getContentStream - ignoring sub-stream (${objId}): \"${reason}\".`);\n return;\n }\n throw reason;\n }\n\n /**\n * @returns {Promise}\n */\n getContentStream(handler) {\n return this.pdfManager.ensure(this, \"content\").then(content => {\n if (content instanceof BaseStream) {\n return content;\n }\n if (Array.isArray(content)) {\n return new StreamsSequenceStream(\n content,\n this._onSubStreamError.bind(this, handler)\n );\n }\n // Replace non-existent page content with empty content.\n return new NullStream();\n });\n }\n\n get xfaData() {\n return shadow(\n this,\n \"xfaData\",\n this.xfaFactory\n ? { bbox: this.xfaFactory.getBoundingBox(this.pageIndex) }\n : null\n );\n }\n\n save(handler, task, annotationStorage) {\n const partialEvaluator = new PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: this.pageIndex,\n idFactory: this._localIdFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n standardFontDataCache: this.standardFontDataCache,\n globalImageCache: this.globalImageCache,\n options: this.evaluatorOptions,\n });\n\n // Fetch the page's annotations and save the content\n // in case of interactive form fields.\n return this._parsedAnnotations.then(function (annotations) {\n const newRefsPromises = [];\n for (const annotation of annotations) {\n if (!annotation.mustBePrinted(annotationStorage)) {\n continue;\n }\n newRefsPromises.push(\n annotation\n .save(partialEvaluator, task, annotationStorage)\n .catch(function (reason) {\n warn(\n \"save - ignoring annotation data during \" +\n `\"${task.name}\" task: \"${reason}\".`\n );\n return null;\n })\n );\n }\n\n return Promise.all(newRefsPromises);\n });\n }\n\n loadResources(keys) {\n if (!this.resourcesPromise) {\n // TODO: add async `_getInheritableProperty` and remove this.\n this.resourcesPromise = this.pdfManager.ensure(this, \"resources\");\n }\n return this.resourcesPromise.then(() => {\n const objectLoader = new ObjectLoader(this.resources, keys, this.xref);\n return objectLoader.load();\n });\n }\n\n getOperatorList({\n handler,\n sink,\n task,\n intent,\n cacheKey,\n annotationStorage = null,\n }) {\n const contentStreamPromise = this.getContentStream(handler);\n const resourcesPromise = this.loadResources([\n \"ColorSpace\",\n \"ExtGState\",\n \"Font\",\n \"Pattern\",\n \"Properties\",\n \"Shading\",\n \"XObject\",\n ]);\n\n const partialEvaluator = new PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: this.pageIndex,\n idFactory: this._localIdFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n standardFontDataCache: this.standardFontDataCache,\n globalImageCache: this.globalImageCache,\n options: this.evaluatorOptions,\n });\n\n const dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n let MCIDBoundingBoxes, positionByOperationIndex, noMCIDBoundingBoxes;\n const pageListPromise = dataPromises.then(([contentStream]) => {\n const opList = new OperatorList(intent, sink);\n\n handler.send(\"StartRenderPage\", {\n transparency: partialEvaluator.hasBlendModes(\n this.resources,\n this.nonBlendModesSet\n ),\n pageIndex: this.pageIndex,\n cacheKey,\n });\n\n return partialEvaluator\n .getOperatorList({\n stream: contentStream,\n task,\n resources: this.resources,\n operatorList: opList,\n intent\n })\n .then(function ([boundingBoxesByMCID, operationArray, boundingBoxesWithoutMCID]) {\n MCIDBoundingBoxes = boundingBoxesByMCID;\n positionByOperationIndex = operationArray;\n noMCIDBoundingBoxes = boundingBoxesWithoutMCID;\n return opList;\n });\n });\n\n // Fetch the page's annotations and add their operator lists to the\n // page's operator list to render them.\n return Promise.all([pageListPromise, this._parsedAnnotations]).then(\n function ([pageOpList, annotations]) {\n if (\n annotations.length === 0 ||\n intent & RenderingIntentFlag.ANNOTATIONS_DISABLE\n ) {\n if (intent & RenderingIntentFlag.OPLIST) {\n pageOpList.addOp(OPS.operationPosition, positionByOperationIndex);\n pageOpList.addOp(OPS.boundingBoxes, [MCIDBoundingBoxes, noMCIDBoundingBoxes]);\n }\n pageOpList.flush(true);\n return { length: pageOpList.totalLength };\n }\n const renderForms = !!(intent & RenderingIntentFlag.ANNOTATIONS_FORMS),\n intentAny = !!(intent & RenderingIntentFlag.ANY),\n intentDisplay = !!(intent & RenderingIntentFlag.DISPLAY),\n intentPrint = !!(intent & RenderingIntentFlag.PRINT);\n\n // Collect the operator list promises for the annotations. Each promise\n // is resolved with the complete operator list for a single annotation.\n const opListPromises = [];\n for (const annotation of annotations) {\n if (\n intentAny ||\n (intentDisplay && annotation.mustBeViewed(annotationStorage)) ||\n (intentPrint && annotation.mustBePrinted(annotationStorage)) ||\n intent & RenderingIntentFlag.OPLIST\n ) {\n opListPromises.push(\n annotation\n .getOperatorList(\n partialEvaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n )\n .catch(function (reason) {\n warn(\n \"getOperatorList - ignoring annotation data during \" +\n `\"${task.name}\" task: \"${reason}\".`\n );\n return null;\n })\n );\n }\n }\n\n return Promise.all(opListPromises).then(function (opLists) {\n pageOpList.addOp(OPS.beginAnnotations, []);\n for (const opList of opLists) {\n pageOpList.addOpList(opList);\n }\n pageOpList.addOp(OPS.endAnnotations, []);\n if (intent & RenderingIntentFlag.OPLIST) { \n pageOpList.addOp(OPS.save, [MCIDBoundingBoxes, noMCIDBoundingBoxes]);\n }\n pageOpList.flush(true);\n return { length: pageOpList.totalLength };\n });\n }\n );\n }\n\n extractTextContent({\n handler,\n task,\n includeMarkedContent,\n sink,\n combineTextItems,\n }) {\n const contentStreamPromise = this.getContentStream(handler);\n const resourcesPromise = this.loadResources([\n \"ExtGState\",\n \"Font\",\n \"Properties\",\n \"XObject\",\n ]);\n\n const dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n return dataPromises.then(([contentStream]) => {\n const partialEvaluator = new PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: this.pageIndex,\n idFactory: this._localIdFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n standardFontDataCache: this.standardFontDataCache,\n globalImageCache: this.globalImageCache,\n options: this.evaluatorOptions,\n });\n\n return partialEvaluator.getTextContent({\n stream: contentStream,\n task,\n resources: this.resources,\n includeMarkedContent,\n combineTextItems,\n sink,\n viewBox: this.view,\n });\n });\n }\n\n async getStructTree() {\n const structTreeRoot = await this.pdfManager.ensureCatalog(\n \"structTreeRoot\"\n );\n if (!structTreeRoot) {\n return null;\n }\n const structTree = await this.pdfManager.ensure(this, \"_parseStructTree\", [\n structTreeRoot,\n ]);\n return structTree.serializable;\n }\n\n /**\n * @private\n */\n _parseStructTree(structTreeRoot) {\n const tree = new StructTreePage(structTreeRoot, this.pageDict);\n tree.parse();\n return tree;\n }\n\n getAnnotationsData(intent) {\n return this._parsedAnnotations.then(function (annotations) {\n const annotationsData = [];\n\n if (annotations.length === 0) {\n return annotationsData;\n }\n const intentAny = !!(intent & RenderingIntentFlag.ANY),\n intentDisplay = !!(intent & RenderingIntentFlag.DISPLAY),\n intentPrint = !!(intent & RenderingIntentFlag.PRINT);\n\n for (const annotation of annotations) {\n // Get the annotation even if it's hidden because\n // JS can change its display.\n if (\n intentAny ||\n (intentDisplay && annotation.viewable) ||\n (intentPrint && annotation.printable) ||\n intent & RenderingIntentFlag.OPLIST\n ) {\n annotationsData.push(annotation.data);\n }\n }\n return annotationsData;\n });\n }\n\n get annotations() {\n const annots = this._getInheritableProperty(\"Annots\");\n return shadow(this, \"annotations\", Array.isArray(annots) ? annots : []);\n }\n\n get _parsedAnnotations() {\n const parsedAnnotations = this.pdfManager\n .ensure(this, \"annotations\")\n .then(() => {\n const annotationPromises = [];\n for (const annotationRef of this.annotations) {\n annotationPromises.push(\n AnnotationFactory.create(\n this.xref,\n annotationRef,\n this.pdfManager,\n this._localIdFactory,\n /* collectFields */ false\n ).catch(function (reason) {\n warn(`_parsedAnnotations: \"${reason}\".`);\n return null;\n })\n );\n }\n\n return Promise.all(annotationPromises).then(function (annotations) {\n return annotations.filter(annotation => !!annotation);\n });\n });\n\n return shadow(this, \"_parsedAnnotations\", parsedAnnotations);\n }\n\n get jsActions() {\n const actions = collectActions(\n this.xref,\n this.pageDict,\n PageActionEventType\n );\n return shadow(this, \"jsActions\", actions);\n }\n}\n\nconst PDF_HEADER_SIGNATURE = new Uint8Array([0x25, 0x50, 0x44, 0x46, 0x2d]);\nconst STARTXREF_SIGNATURE = new Uint8Array([\n 0x73, 0x74, 0x61, 0x72, 0x74, 0x78, 0x72, 0x65, 0x66,\n]);\nconst ENDOBJ_SIGNATURE = new Uint8Array([0x65, 0x6e, 0x64, 0x6f, 0x62, 0x6a]);\n\nconst FINGERPRINT_FIRST_BYTES = 1024;\nconst EMPTY_FINGERPRINT =\n \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\";\n\nconst PDF_HEADER_VERSION_REGEXP = /^[1-9]\\.\\d$/;\n\nfunction find(stream, signature, limit = 1024, backwards = false) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(limit > 0, 'The \"limit\" must be a positive integer.');\n }\n const signatureLength = signature.length;\n\n const scanBytes = stream.peekBytes(limit);\n const scanLength = scanBytes.length - signatureLength;\n\n if (scanLength <= 0) {\n return false;\n }\n if (backwards) {\n const signatureEnd = signatureLength - 1;\n\n let pos = scanBytes.length - 1;\n while (pos >= signatureEnd) {\n let j = 0;\n while (\n j < signatureLength &&\n scanBytes[pos - j] === signature[signatureEnd - j]\n ) {\n j++;\n }\n if (j >= signatureLength) {\n // `signature` found.\n stream.pos += pos - signatureEnd;\n return true;\n }\n pos--;\n }\n } else {\n // forwards\n let pos = 0;\n while (pos <= scanLength) {\n let j = 0;\n while (j < signatureLength && scanBytes[pos + j] === signature[j]) {\n j++;\n }\n if (j >= signatureLength) {\n // `signature` found.\n stream.pos += pos;\n return true;\n }\n pos++;\n }\n }\n return false;\n}\n\n/**\n * The `PDFDocument` class holds all the (worker-thread) data of the PDF file.\n */\nclass PDFDocument {\n constructor(pdfManager, stream) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n stream instanceof BaseStream,\n 'PDFDocument: Invalid \"stream\" argument.'\n );\n }\n if (stream.length <= 0) {\n throw new InvalidPDFException(\n \"The PDF file is empty, i.e. its size is zero bytes.\"\n );\n }\n\n this.pdfManager = pdfManager;\n this.stream = stream;\n this.xref = new XRef(stream, pdfManager);\n this._pagePromises = new Map();\n this._version = null;\n\n const idCounters = {\n font: 0,\n };\n this._globalIdFactory = class {\n static getDocId() {\n return `g_${pdfManager.docId}`;\n }\n\n static createFontId() {\n return `f${++idCounters.font}`;\n }\n\n static createObjId() {\n unreachable(\"Abstract method `createObjId` called.\");\n }\n\n static getPageObjId() {\n unreachable(\"Abstract method `getPageObjId` called.\");\n }\n };\n }\n\n parse(recoveryMode) {\n this.xref.parse(recoveryMode);\n this.catalog = new Catalog(this.pdfManager, this.xref);\n\n // The `checkHeader` method is called before this method and parses the\n // version from the header. The specification states in section 7.5.2\n // that the version from the catalog, if present, should overwrite the\n // version from the header.\n if (this.catalog.version) {\n this._version = this.catalog.version;\n }\n }\n\n get linearization() {\n let linearization = null;\n try {\n linearization = Linearization.create(this.stream);\n } catch (err) {\n if (err instanceof MissingDataException) {\n throw err;\n }\n info(err);\n }\n return shadow(this, \"linearization\", linearization);\n }\n\n get startXRef() {\n const stream = this.stream;\n let startXRef = 0;\n\n if (this.linearization) {\n // Find the end of the first object.\n stream.reset();\n if (find(stream, ENDOBJ_SIGNATURE)) {\n startXRef = stream.pos + 6 - stream.start;\n }\n } else {\n // Find `startxref` by checking backwards from the end of the file.\n const step = 1024;\n const startXRefLength = STARTXREF_SIGNATURE.length;\n let found = false,\n pos = stream.end;\n\n while (!found && pos > 0) {\n pos -= step - startXRefLength;\n if (pos < 0) {\n pos = 0;\n }\n stream.pos = pos;\n found = find(stream, STARTXREF_SIGNATURE, step, true);\n }\n\n if (found) {\n stream.skip(9);\n let ch;\n do {\n ch = stream.getByte();\n } while (isWhiteSpace(ch));\n let str = \"\";\n while (ch >= /* Space = */ 0x20 && ch <= /* '9' = */ 0x39) {\n str += String.fromCharCode(ch);\n ch = stream.getByte();\n }\n startXRef = parseInt(str, 10);\n if (isNaN(startXRef)) {\n startXRef = 0;\n }\n }\n }\n return shadow(this, \"startXRef\", startXRef);\n }\n\n // Find the header, get the PDF format version and setup the\n // stream to start from the header.\n checkHeader() {\n const stream = this.stream;\n stream.reset();\n\n if (!find(stream, PDF_HEADER_SIGNATURE)) {\n // May not be a PDF file, but don't throw an error and let\n // parsing continue.\n return;\n }\n stream.moveStart();\n\n // Read the PDF format version.\n const MAX_PDF_VERSION_LENGTH = 12;\n let version = \"\",\n ch;\n while ((ch = stream.getByte()) > /* Space = */ 0x20) {\n if (version.length >= MAX_PDF_VERSION_LENGTH) {\n break;\n }\n version += String.fromCharCode(ch);\n }\n if (!this._version) {\n // Remove the \"%PDF-\" prefix.\n this._version = version.substring(5);\n }\n }\n\n parseStartXRef() {\n this.xref.setStartXRef(this.startXRef);\n }\n\n get numPages() {\n let num = 0;\n if (this.catalog.hasActualNumPages) {\n num = this.catalog.numPages;\n } else if (this.xfaFactory) {\n // num is a Promise.\n num = this.xfaFactory.getNumPages();\n } else if (this.linearization) {\n num = this.linearization.numPages;\n } else {\n num = this.catalog.numPages;\n }\n return shadow(this, \"numPages\", num);\n }\n\n /**\n * @private\n */\n _hasOnlyDocumentSignatures(fields, recursionDepth = 0) {\n const RECURSION_LIMIT = 10;\n\n if (!Array.isArray(fields)) {\n return false;\n }\n return fields.every(field => {\n field = this.xref.fetchIfRef(field);\n if (!(field instanceof Dict)) {\n return false;\n }\n if (field.has(\"Kids\")) {\n if (++recursionDepth > RECURSION_LIMIT) {\n warn(\"_hasOnlyDocumentSignatures: maximum recursion depth reached\");\n return false;\n }\n return this._hasOnlyDocumentSignatures(\n field.get(\"Kids\"),\n recursionDepth\n );\n }\n const isSignature = isName(field.get(\"FT\"), \"Sig\");\n const rectangle = field.get(\"Rect\");\n const isInvisible =\n Array.isArray(rectangle) && rectangle.every(value => value === 0);\n return isSignature && isInvisible;\n });\n }\n\n get _xfaStreams() {\n const acroForm = this.catalog.acroForm;\n if (!acroForm) {\n return null;\n }\n\n const xfa = acroForm.get(\"XFA\");\n const entries = {\n \"xdp:xdp\": \"\",\n template: \"\",\n datasets: \"\",\n config: \"\",\n connectionSet: \"\",\n localeSet: \"\",\n stylesheet: \"\",\n \"/xdp:xdp\": \"\",\n };\n if (xfa instanceof BaseStream && !xfa.isEmpty) {\n entries[\"xdp:xdp\"] = xfa;\n return entries;\n }\n\n if (!Array.isArray(xfa) || xfa.length === 0) {\n return null;\n }\n\n for (let i = 0, ii = xfa.length; i < ii; i += 2) {\n let name;\n if (i === 0) {\n name = \"xdp:xdp\";\n } else if (i === ii - 2) {\n name = \"/xdp:xdp\";\n } else {\n name = xfa[i];\n }\n\n if (!entries.hasOwnProperty(name)) {\n continue;\n }\n const data = this.xref.fetchIfRef(xfa[i + 1]);\n if (!(data instanceof BaseStream) || data.isEmpty) {\n continue;\n }\n entries[name] = data;\n }\n return entries;\n }\n\n get xfaDatasets() {\n const streams = this._xfaStreams;\n if (!streams) {\n return shadow(this, \"xfaDatasets\", null);\n }\n for (const key of [\"datasets\", \"xdp:xdp\"]) {\n const stream = streams[key];\n if (!stream) {\n continue;\n }\n try {\n const str = stringToUTF8String(stream.getString());\n const data = { [key]: str };\n return shadow(this, \"xfaDatasets\", new DatasetReader(data));\n } catch (_) {\n warn(\"XFA - Invalid utf-8 string.\");\n break;\n }\n }\n return shadow(this, \"xfaDatasets\", null);\n }\n\n get xfaData() {\n const streams = this._xfaStreams;\n if (!streams) {\n return null;\n }\n const data = Object.create(null);\n for (const [key, stream] of Object.entries(streams)) {\n if (!stream) {\n continue;\n }\n try {\n data[key] = stringToUTF8String(stream.getString());\n } catch (_) {\n warn(\"XFA - Invalid utf-8 string.\");\n return null;\n }\n }\n return data;\n }\n\n get xfaFactory() {\n let data;\n if (\n this.pdfManager.enableXfa &&\n this.catalog.needsRendering &&\n this.formInfo.hasXfa &&\n !this.formInfo.hasAcroForm\n ) {\n data = this.xfaData;\n }\n return shadow(this, \"xfaFactory\", data ? new XFAFactory(data) : null);\n }\n\n get isPureXfa() {\n return this.xfaFactory ? this.xfaFactory.isValid() : false;\n }\n\n get htmlForXfa() {\n return this.xfaFactory ? this.xfaFactory.getPages() : null;\n }\n\n async loadXfaImages() {\n const xfaImagesDict = await this.pdfManager.ensureCatalog(\"xfaImages\");\n if (!xfaImagesDict) {\n return;\n }\n\n const keys = xfaImagesDict.getKeys();\n const objectLoader = new ObjectLoader(xfaImagesDict, keys, this.xref);\n await objectLoader.load();\n\n const xfaImages = new Map();\n for (const key of keys) {\n const stream = xfaImagesDict.get(key);\n if (stream instanceof BaseStream) {\n xfaImages.set(key, stream.getBytes());\n }\n }\n\n this.xfaFactory.setImages(xfaImages);\n }\n\n async loadXfaFonts(handler, task) {\n const acroForm = await this.pdfManager.ensureCatalog(\"acroForm\");\n if (!acroForm) {\n return;\n }\n const resources = await acroForm.getAsync(\"DR\");\n if (!(resources instanceof Dict)) {\n return;\n }\n const objectLoader = new ObjectLoader(resources, [\"Font\"], this.xref);\n await objectLoader.load();\n\n const fontRes = resources.get(\"Font\");\n if (!(fontRes instanceof Dict)) {\n return;\n }\n\n const options = Object.assign(\n Object.create(null),\n this.pdfManager.evaluatorOptions\n );\n options.useSystemFonts = false;\n\n const partialEvaluator = new PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: -1,\n idFactory: this._globalIdFactory,\n fontCache: this.catalog.fontCache,\n builtInCMapCache: this.catalog.builtInCMapCache,\n standardFontDataCache: this.catalog.standardFontDataCache,\n options,\n });\n const operatorList = new OperatorList();\n const pdfFonts = [];\n const initialState = {\n get font() {\n return pdfFonts[pdfFonts.length - 1];\n },\n set font(font) {\n pdfFonts.push(font);\n },\n clone() {\n return this;\n },\n };\n\n const fonts = new Map();\n fontRes.forEach((fontName, font) => {\n fonts.set(fontName, font);\n });\n const promises = [];\n\n for (const [fontName, font] of fonts) {\n const descriptor = font.get(\"FontDescriptor\");\n if (!(descriptor instanceof Dict)) {\n continue;\n }\n let fontFamily = descriptor.get(\"FontFamily\");\n // For example, \"Wingdings 3\" is not a valid font name in the css specs.\n fontFamily = fontFamily.replace(/[ ]+(\\d)/g, \"$1\");\n const fontWeight = descriptor.get(\"FontWeight\");\n\n // Angle is expressed in degrees counterclockwise in PDF\n // when it's clockwise in CSS\n // (see https://drafts.csswg.org/css-fonts-4/#valdef-font-style-oblique-angle)\n const italicAngle = -descriptor.get(\"ItalicAngle\");\n const cssFontInfo = { fontFamily, fontWeight, italicAngle };\n\n if (!validateCSSFont(cssFontInfo)) {\n continue;\n }\n promises.push(\n partialEvaluator\n .handleSetFont(\n resources,\n [Name.get(fontName), 1],\n /* fontRef = */ null,\n operatorList,\n task,\n initialState,\n /* fallbackFontDict = */ null,\n /* cssFontInfo = */ cssFontInfo\n )\n .catch(function (reason) {\n warn(`loadXfaFonts: \"${reason}\".`);\n return null;\n })\n );\n }\n\n await Promise.all(promises);\n const missingFonts = this.xfaFactory.setFonts(pdfFonts);\n\n if (!missingFonts) {\n return;\n }\n\n options.ignoreErrors = true;\n promises.length = 0;\n pdfFonts.length = 0;\n\n const reallyMissingFonts = new Set();\n for (const missing of missingFonts) {\n if (!getXfaFontName(`${missing}-Regular`)) {\n // No substitution available: we'll fallback on Myriad.\n reallyMissingFonts.add(missing);\n }\n }\n\n if (reallyMissingFonts.size) {\n missingFonts.push(\"PdfJS-Fallback\");\n }\n\n for (const missing of missingFonts) {\n if (reallyMissingFonts.has(missing)) {\n continue;\n }\n for (const fontInfo of [\n { name: \"Regular\", fontWeight: 400, italicAngle: 0 },\n { name: \"Bold\", fontWeight: 700, italicAngle: 0 },\n { name: \"Italic\", fontWeight: 400, italicAngle: 12 },\n { name: \"BoldItalic\", fontWeight: 700, italicAngle: 12 },\n ]) {\n const name = `${missing}-${fontInfo.name}`;\n const dict = getXfaFontDict(name);\n\n promises.push(\n partialEvaluator\n .handleSetFont(\n resources,\n [Name.get(name), 1],\n /* fontRef = */ null,\n operatorList,\n task,\n initialState,\n /* fallbackFontDict = */ dict,\n /* cssFontInfo = */ {\n fontFamily: missing,\n fontWeight: fontInfo.fontWeight,\n italicAngle: fontInfo.italicAngle,\n }\n )\n .catch(function (reason) {\n warn(`loadXfaFonts: \"${reason}\".`);\n return null;\n })\n );\n }\n }\n\n await Promise.all(promises);\n this.xfaFactory.appendFonts(pdfFonts, reallyMissingFonts);\n }\n\n async serializeXfaData(annotationStorage) {\n return this.xfaFactory\n ? this.xfaFactory.serializeData(annotationStorage)\n : null;\n }\n\n get formInfo() {\n const formInfo = {\n hasFields: false,\n hasAcroForm: false,\n hasXfa: false,\n hasSignatures: false,\n };\n const acroForm = this.catalog.acroForm;\n if (!acroForm) {\n return shadow(this, \"formInfo\", formInfo);\n }\n\n try {\n const fields = acroForm.get(\"Fields\");\n const hasFields = Array.isArray(fields) && fields.length > 0;\n formInfo.hasFields = hasFields; // Used by the `fieldObjects` getter.\n\n // The document contains XFA data if the `XFA` entry is a non-empty\n // array or stream.\n const xfa = acroForm.get(\"XFA\");\n formInfo.hasXfa =\n (Array.isArray(xfa) && xfa.length > 0) ||\n (xfa instanceof BaseStream && !xfa.isEmpty);\n\n // The document contains AcroForm data if the `Fields` entry is a\n // non-empty array and it doesn't consist of only document signatures.\n // This second check is required for files that don't actually contain\n // AcroForm data (only XFA data), but that use the `Fields` entry to\n // store (invisible) document signatures. This can be detected using\n // the first bit of the `SigFlags` integer (see Table 219 in the\n // specification).\n const sigFlags = acroForm.get(\"SigFlags\");\n const hasSignatures = !!(sigFlags & 0x1);\n const hasOnlyDocumentSignatures =\n hasSignatures && this._hasOnlyDocumentSignatures(fields);\n formInfo.hasAcroForm = hasFields && !hasOnlyDocumentSignatures;\n formInfo.hasSignatures = hasSignatures;\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`Cannot fetch form information: \"${ex}\".`);\n }\n return shadow(this, \"formInfo\", formInfo);\n }\n\n get documentInfo() {\n let version = this._version;\n if (\n typeof version !== \"string\" ||\n !PDF_HEADER_VERSION_REGEXP.test(version)\n ) {\n warn(`Invalid PDF header version number: ${version}`);\n version = null;\n }\n\n const docInfo = {\n PDFFormatVersion: version,\n Language: this.catalog.lang,\n EncryptFilterName: this.xref.encrypt\n ? this.xref.encrypt.filterName\n : null,\n IsLinearized: !!this.linearization,\n IsAcroFormPresent: this.formInfo.hasAcroForm,\n IsXFAPresent: this.formInfo.hasXfa,\n IsCollectionPresent: !!this.catalog.collection,\n IsSignaturesPresent: this.formInfo.hasSignatures,\n };\n\n let infoDict;\n try {\n infoDict = this.xref.trailer.get(\"Info\");\n } catch (err) {\n if (err instanceof MissingDataException) {\n throw err;\n }\n info(\"The document information dictionary is invalid.\");\n }\n if (!(infoDict instanceof Dict)) {\n return shadow(this, \"documentInfo\", docInfo);\n }\n\n for (const key of infoDict.getKeys()) {\n const value = infoDict.get(key);\n\n switch (key) {\n case \"Title\":\n case \"Author\":\n case \"Subject\":\n case \"Keywords\":\n case \"Creator\":\n case \"Producer\":\n case \"CreationDate\":\n case \"ModDate\":\n if (typeof value === \"string\") {\n docInfo[key] = stringToPDFString(value);\n continue;\n }\n break;\n case \"Trapped\":\n if (value instanceof Name) {\n docInfo[key] = value;\n continue;\n }\n break;\n default:\n // For custom values, only accept white-listed types to prevent\n // errors that would occur when trying to send non-serializable\n // objects to the main-thread (for example `Dict` or `Stream`).\n let customValue;\n switch (typeof value) {\n case \"string\":\n customValue = stringToPDFString(value);\n break;\n case \"number\":\n case \"boolean\":\n customValue = value;\n break;\n default:\n if (value instanceof Name) {\n customValue = value;\n }\n break;\n }\n\n if (customValue === undefined) {\n warn(`Bad value, for custom key \"${key}\", in Info: ${value}.`);\n continue;\n }\n if (!docInfo.Custom) {\n docInfo.Custom = Object.create(null);\n }\n docInfo.Custom[key] = customValue;\n continue;\n }\n warn(`Bad value, for key \"${key}\", in Info: ${value}.`);\n }\n return shadow(this, \"documentInfo\", docInfo);\n }\n\n get fingerprints() {\n function validate(data) {\n return (\n typeof data === \"string\" &&\n data.length > 0 &&\n data !== EMPTY_FINGERPRINT\n );\n }\n\n function hexString(hash) {\n const buf = [];\n for (let i = 0, ii = hash.length; i < ii; i++) {\n const hex = hash[i].toString(16);\n buf.push(hex.padStart(2, \"0\"));\n }\n return buf.join(\"\");\n }\n\n const idArray = this.xref.trailer.get(\"ID\");\n let hashOriginal, hashModified;\n if (Array.isArray(idArray) && validate(idArray[0])) {\n hashOriginal = stringToBytes(idArray[0]);\n\n if (idArray[1] !== idArray[0] && validate(idArray[1])) {\n hashModified = stringToBytes(idArray[1]);\n }\n } else {\n hashOriginal = calculateMD5(\n this.stream.getByteRange(0, FINGERPRINT_FIRST_BYTES),\n 0,\n FINGERPRINT_FIRST_BYTES\n );\n }\n\n return shadow(this, \"fingerprints\", [\n hexString(hashOriginal),\n hashModified ? hexString(hashModified) : null,\n ]);\n }\n\n async _getLinearizationPage(pageIndex) {\n const { catalog, linearization, xref } = this;\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n linearization && linearization.pageFirst === pageIndex,\n \"_getLinearizationPage - invalid pageIndex argument.\"\n );\n }\n\n const ref = Ref.get(linearization.objectNumberFirst, 0);\n try {\n const obj = await xref.fetchAsync(ref);\n // Ensure that the object that was found is actually a Page dictionary.\n if (obj instanceof Dict) {\n let type = obj.getRaw(\"Type\");\n if (type instanceof Ref) {\n type = await xref.fetchAsync(type);\n }\n if (isName(type, \"Page\") || (!obj.has(\"Type\") && !obj.has(\"Kids\"))) {\n if (!catalog.pageKidsCountCache.has(ref)) {\n catalog.pageKidsCountCache.put(ref, 1); // Cache the Page reference.\n }\n // Help improve performance of the `Catalog.getPageIndex` method.\n if (!catalog.pageIndexCache.has(ref)) {\n catalog.pageIndexCache.put(ref, 0);\n }\n\n return [obj, ref];\n }\n }\n throw new FormatError(\n \"The Linearization dictionary doesn't point to a valid Page dictionary.\"\n );\n } catch (reason) {\n warn(`_getLinearizationPage: \"${reason.message}\".`);\n return catalog.getPageDict(pageIndex);\n }\n }\n\n getPage(pageIndex) {\n const cachedPromise = this._pagePromises.get(pageIndex);\n if (cachedPromise) {\n return cachedPromise;\n }\n const { catalog, linearization, xfaFactory } = this;\n\n let promise;\n if (xfaFactory) {\n promise = Promise.resolve([Dict.empty, null]);\n } else if (linearization && linearization.pageFirst === pageIndex) {\n promise = this._getLinearizationPage(pageIndex);\n } else {\n promise = catalog.getPageDict(pageIndex);\n }\n promise = promise.then(([pageDict, ref]) => {\n return new Page({\n pdfManager: this.pdfManager,\n xref: this.xref,\n pageIndex,\n pageDict,\n ref,\n globalIdFactory: this._globalIdFactory,\n fontCache: catalog.fontCache,\n builtInCMapCache: catalog.builtInCMapCache,\n standardFontDataCache: catalog.standardFontDataCache,\n globalImageCache: catalog.globalImageCache,\n nonBlendModesSet: catalog.nonBlendModesSet,\n xfaFactory,\n });\n });\n\n this._pagePromises.set(pageIndex, promise);\n return promise;\n }\n\n async checkFirstPage(recoveryMode = false) {\n if (recoveryMode) {\n return;\n }\n try {\n await this.getPage(0);\n } catch (reason) {\n if (reason instanceof XRefEntryException) {\n // Clear out the various caches to ensure that we haven't stored any\n // inconsistent and/or incorrect state, since that could easily break\n // subsequent `this.getPage` calls.\n this._pagePromises.delete(0);\n await this.cleanup();\n\n throw new XRefParseException();\n }\n }\n }\n\n async checkLastPage(recoveryMode = false) {\n const { catalog, pdfManager } = this;\n\n catalog.setActualNumPages(); // Ensure that it's always reset.\n let numPages;\n\n try {\n await Promise.all([\n pdfManager.ensureDoc(\"xfaFactory\"),\n pdfManager.ensureDoc(\"linearization\"),\n pdfManager.ensureCatalog(\"numPages\"),\n ]);\n\n if (this.xfaFactory) {\n return; // The Page count is always calculated for XFA-documents.\n } else if (this.linearization) {\n numPages = this.linearization.numPages;\n } else {\n numPages = catalog.numPages;\n }\n\n if (!Number.isInteger(numPages)) {\n throw new FormatError(\"Page count is not an integer.\");\n } else if (numPages <= 1) {\n return;\n }\n await this.getPage(numPages - 1);\n } catch (reason) {\n // Clear out the various caches to ensure that we haven't stored any\n // inconsistent and/or incorrect state, since that could easily break\n // subsequent `this.getPage` calls.\n this._pagePromises.delete(numPages - 1);\n await this.cleanup();\n\n if (reason instanceof XRefEntryException && !recoveryMode) {\n throw new XRefParseException();\n }\n warn(`checkLastPage - invalid /Pages tree /Count: ${numPages}.`);\n\n let pagesTree;\n try {\n pagesTree = await catalog.getAllPageDicts(recoveryMode);\n } catch (reasonAll) {\n if (reasonAll instanceof XRefEntryException && !recoveryMode) {\n throw new XRefParseException();\n }\n catalog.setActualNumPages(1);\n return;\n }\n\n for (const [pageIndex, [pageDict, ref]] of pagesTree) {\n let promise;\n if (pageDict instanceof Error) {\n promise = Promise.reject(pageDict);\n\n // Prevent \"uncaught exception: Object\"-messages in the console.\n promise.catch(() => {});\n } else {\n promise = Promise.resolve(\n new Page({\n pdfManager,\n xref: this.xref,\n pageIndex,\n pageDict,\n ref,\n globalIdFactory: this._globalIdFactory,\n fontCache: catalog.fontCache,\n builtInCMapCache: catalog.builtInCMapCache,\n standardFontDataCache: catalog.standardFontDataCache,\n globalImageCache: catalog.globalImageCache,\n nonBlendModesSet: catalog.nonBlendModesSet,\n xfaFactory: null,\n })\n );\n }\n\n this._pagePromises.set(pageIndex, promise);\n }\n catalog.setActualNumPages(pagesTree.size);\n }\n }\n\n fontFallback(id, handler) {\n return this.catalog.fontFallback(id, handler);\n }\n\n async cleanup(manuallyTriggered = false) {\n return this.catalog\n ? this.catalog.cleanup(manuallyTriggered)\n : clearGlobalCaches();\n }\n\n /**\n * @private\n */\n _collectFieldObjects(name, fieldRef, promises) {\n const field = this.xref.fetchIfRef(fieldRef);\n if (field.has(\"T\")) {\n const partName = stringToPDFString(field.get(\"T\"));\n if (name === \"\") {\n name = partName;\n } else {\n name = `${name}.${partName}`;\n }\n }\n\n if (!promises.has(name)) {\n promises.set(name, []);\n }\n promises.get(name).push(\n AnnotationFactory.create(\n this.xref,\n fieldRef,\n this.pdfManager,\n this._localIdFactory,\n /* collectFields */ true\n )\n .then(annotation => annotation && annotation.getFieldObject())\n .catch(function (reason) {\n warn(`_collectFieldObjects: \"${reason}\".`);\n return null;\n })\n );\n\n if (field.has(\"Kids\")) {\n const kids = field.get(\"Kids\");\n for (const kid of kids) {\n this._collectFieldObjects(name, kid, promises);\n }\n }\n }\n\n get fieldObjects() {\n if (!this.formInfo.hasFields) {\n return shadow(this, \"fieldObjects\", Promise.resolve(null));\n }\n\n const allFields = Object.create(null);\n const fieldPromises = new Map();\n for (const fieldRef of this.catalog.acroForm.get(\"Fields\")) {\n this._collectFieldObjects(\"\", fieldRef, fieldPromises);\n }\n\n const allPromises = [];\n for (const [name, promises] of fieldPromises) {\n allPromises.push(\n Promise.all(promises).then(fields => {\n fields = fields.filter(field => !!field);\n if (fields.length > 0) {\n allFields[name] = fields;\n }\n })\n );\n }\n\n return shadow(\n this,\n \"fieldObjects\",\n Promise.all(allPromises).then(() => allFields)\n );\n }\n\n get hasJSActions() {\n const promise = this.pdfManager.ensureDoc(\"_parseHasJSActions\");\n return shadow(this, \"hasJSActions\", promise);\n }\n\n /**\n * @private\n */\n async _parseHasJSActions() {\n const [catalogJsActions, fieldObjects] = await Promise.all([\n this.pdfManager.ensureCatalog(\"jsActions\"),\n this.pdfManager.ensureDoc(\"fieldObjects\"),\n ]);\n\n if (catalogJsActions) {\n return true;\n }\n if (fieldObjects) {\n return Object.values(fieldObjects).some(fieldObject =>\n fieldObject.some(object => object.actions !== null)\n );\n }\n return false;\n }\n\n get calculationOrderIds() {\n const acroForm = this.catalog.acroForm;\n if (!acroForm || !acroForm.has(\"CO\")) {\n return shadow(this, \"calculationOrderIds\", null);\n }\n\n const calculationOrder = acroForm.get(\"CO\");\n if (!Array.isArray(calculationOrder) || calculationOrder.length === 0) {\n return shadow(this, \"calculationOrderIds\", null);\n }\n\n const ids = [];\n for (const id of calculationOrder) {\n if (id instanceof Ref) {\n ids.push(id.toString());\n }\n }\n if (ids.length === 0) {\n return shadow(this, \"calculationOrderIds\", null);\n }\n return shadow(this, \"calculationOrderIds\", ids);\n }\n}\n\nclass ExtendedPDFDocument extends PDFDocument{\n constructor(pdfManager, arg) {\n super(pdfManager, arg);\n }\n\n get structureTree() {\n return shadow(this, 'structureTree', this.catalog.structureTree);\n }\n}\n\nexport {\n Page,\n ExtendedPDFDocument as PDFDocument,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n CalibriBoldFactors,\n CalibriBoldItalicFactors,\n CalibriBoldItalicMetrics,\n CalibriBoldMetrics,\n CalibriItalicFactors,\n CalibriItalicMetrics,\n CalibriRegularFactors,\n CalibriRegularMetrics,\n} from \"./calibri_factors.js\";\nimport { Dict, Name } from \"./primitives.js\";\nimport {\n HelveticaBoldFactors,\n HelveticaBoldItalicFactors,\n HelveticaBoldItalicMetrics,\n HelveticaBoldMetrics,\n HelveticaItalicFactors,\n HelveticaItalicMetrics,\n HelveticaRegularFactors,\n HelveticaRegularMetrics,\n} from \"./helvetica_factors.js\";\nimport {\n LiberationSansBoldItalicMapping,\n LiberationSansBoldItalicWidths,\n LiberationSansBoldMapping,\n LiberationSansBoldWidths,\n LiberationSansItalicMapping,\n LiberationSansItalicWidths,\n LiberationSansRegularMapping,\n LiberationSansRegularWidths,\n} from \"./liberationsans_widths.js\";\nimport {\n MyriadProBoldFactors,\n MyriadProBoldItalicFactors,\n MyriadProBoldItalicMetrics,\n MyriadProBoldMetrics,\n MyriadProItalicFactors,\n MyriadProItalicMetrics,\n MyriadProRegularFactors,\n MyriadProRegularMetrics,\n} from \"./myriadpro_factors.js\";\nimport {\n SegoeuiBoldFactors,\n SegoeuiBoldItalicFactors,\n SegoeuiBoldItalicMetrics,\n SegoeuiBoldMetrics,\n SegoeuiItalicFactors,\n SegoeuiItalicMetrics,\n SegoeuiRegularFactors,\n SegoeuiRegularMetrics,\n} from \"./segoeui_factors.js\";\nimport { getLookupTableFactory } from \"./core_utils.js\";\nimport { normalizeFontName } from \"./fonts_utils.js\";\n\nconst getXFAFontMap = getLookupTableFactory(function (t) {\n t[\"MyriadPro-Regular\"] = t[\"PdfJS-Fallback-Regular\"] = {\n name: \"LiberationSans-Regular\",\n factors: MyriadProRegularFactors,\n baseWidths: LiberationSansRegularWidths,\n baseMapping: LiberationSansRegularMapping,\n metrics: MyriadProRegularMetrics,\n };\n t[\"MyriadPro-Bold\"] = t[\"PdfJS-Fallback-Bold\"] = {\n name: \"LiberationSans-Bold\",\n factors: MyriadProBoldFactors,\n baseWidths: LiberationSansBoldWidths,\n baseMapping: LiberationSansBoldMapping,\n metrics: MyriadProBoldMetrics,\n };\n t[\"MyriadPro-It\"] =\n t[\"MyriadPro-Italic\"] =\n t[\"PdfJS-Fallback-Italic\"] =\n {\n name: \"LiberationSans-Italic\",\n factors: MyriadProItalicFactors,\n baseWidths: LiberationSansItalicWidths,\n baseMapping: LiberationSansItalicMapping,\n metrics: MyriadProItalicMetrics,\n };\n t[\"MyriadPro-BoldIt\"] =\n t[\"MyriadPro-BoldItalic\"] =\n t[\"PdfJS-Fallback-BoldItalic\"] =\n {\n name: \"LiberationSans-BoldItalic\",\n factors: MyriadProBoldItalicFactors,\n baseWidths: LiberationSansBoldItalicWidths,\n baseMapping: LiberationSansBoldItalicMapping,\n metrics: MyriadProBoldItalicMetrics,\n };\n t.ArialMT =\n t.Arial =\n t[\"Arial-Regular\"] =\n {\n name: \"LiberationSans-Regular\",\n baseWidths: LiberationSansRegularWidths,\n baseMapping: LiberationSansRegularMapping,\n };\n t[\"Arial-BoldMT\"] = t[\"Arial-Bold\"] = {\n name: \"LiberationSans-Bold\",\n baseWidths: LiberationSansBoldWidths,\n baseMapping: LiberationSansBoldMapping,\n };\n t[\"Arial-ItalicMT\"] = t[\"Arial-Italic\"] = {\n name: \"LiberationSans-Italic\",\n baseWidths: LiberationSansItalicWidths,\n baseMapping: LiberationSansItalicMapping,\n };\n t[\"Arial-BoldItalicMT\"] = t[\"Arial-BoldItalic\"] = {\n name: \"LiberationSans-BoldItalic\",\n baseWidths: LiberationSansBoldItalicWidths,\n baseMapping: LiberationSansBoldItalicMapping,\n };\n t[\"Calibri-Regular\"] = {\n name: \"LiberationSans-Regular\",\n factors: CalibriRegularFactors,\n baseWidths: LiberationSansRegularWidths,\n baseMapping: LiberationSansRegularMapping,\n metrics: CalibriRegularMetrics,\n };\n t[\"Calibri-Bold\"] = {\n name: \"LiberationSans-Bold\",\n factors: CalibriBoldFactors,\n baseWidths: LiberationSansBoldWidths,\n baseMapping: LiberationSansBoldMapping,\n metrics: CalibriBoldMetrics,\n };\n t[\"Calibri-Italic\"] = {\n name: \"LiberationSans-Italic\",\n factors: CalibriItalicFactors,\n baseWidths: LiberationSansItalicWidths,\n baseMapping: LiberationSansItalicMapping,\n metrics: CalibriItalicMetrics,\n };\n t[\"Calibri-BoldItalic\"] = {\n name: \"LiberationSans-BoldItalic\",\n factors: CalibriBoldItalicFactors,\n baseWidths: LiberationSansBoldItalicWidths,\n baseMapping: LiberationSansBoldItalicMapping,\n metrics: CalibriBoldItalicMetrics,\n };\n t[\"Segoeui-Regular\"] = {\n name: \"LiberationSans-Regular\",\n factors: SegoeuiRegularFactors,\n baseWidths: LiberationSansRegularWidths,\n baseMapping: LiberationSansRegularMapping,\n metrics: SegoeuiRegularMetrics,\n };\n t[\"Segoeui-Bold\"] = {\n name: \"LiberationSans-Bold\",\n factors: SegoeuiBoldFactors,\n baseWidths: LiberationSansBoldWidths,\n baseMapping: LiberationSansBoldMapping,\n metrics: SegoeuiBoldMetrics,\n };\n t[\"Segoeui-Italic\"] = {\n name: \"LiberationSans-Italic\",\n factors: SegoeuiItalicFactors,\n baseWidths: LiberationSansItalicWidths,\n baseMapping: LiberationSansItalicMapping,\n metrics: SegoeuiItalicMetrics,\n };\n t[\"Segoeui-BoldItalic\"] = {\n name: \"LiberationSans-BoldItalic\",\n factors: SegoeuiBoldItalicFactors,\n baseWidths: LiberationSansBoldItalicWidths,\n baseMapping: LiberationSansBoldItalicMapping,\n metrics: SegoeuiBoldItalicMetrics,\n };\n t[\"Helvetica-Regular\"] = t.Helvetica = {\n name: \"LiberationSans-Regular\",\n factors: HelveticaRegularFactors,\n baseWidths: LiberationSansRegularWidths,\n baseMapping: LiberationSansRegularMapping,\n metrics: HelveticaRegularMetrics,\n };\n t[\"Helvetica-Bold\"] = {\n name: \"LiberationSans-Bold\",\n factors: HelveticaBoldFactors,\n baseWidths: LiberationSansBoldWidths,\n baseMapping: LiberationSansBoldMapping,\n metrics: HelveticaBoldMetrics,\n };\n t[\"Helvetica-Italic\"] = {\n name: \"LiberationSans-Italic\",\n factors: HelveticaItalicFactors,\n baseWidths: LiberationSansItalicWidths,\n baseMapping: LiberationSansItalicMapping,\n metrics: HelveticaItalicMetrics,\n };\n t[\"Helvetica-BoldItalic\"] = {\n name: \"LiberationSans-BoldItalic\",\n factors: HelveticaBoldItalicFactors,\n baseWidths: LiberationSansBoldItalicWidths,\n baseMapping: LiberationSansBoldItalicMapping,\n metrics: HelveticaBoldItalicMetrics,\n };\n});\n\nfunction getXfaFontName(name) {\n const fontName = normalizeFontName(name);\n const fontMap = getXFAFontMap();\n return fontMap[fontName];\n}\n\nfunction getXfaFontWidths(name) {\n const info = getXfaFontName(name);\n if (!info) {\n return null;\n }\n\n const { baseWidths, baseMapping, factors } = info;\n let rescaledBaseWidths;\n if (!factors) {\n rescaledBaseWidths = baseWidths;\n } else {\n rescaledBaseWidths = baseWidths.map((w, i) => w * factors[i]);\n }\n\n let currentCode = -2;\n let currentArray;\n\n // Widths array for composite font is:\n // CharCode1 [10, 20, 30] ...\n // which means:\n // - CharCode1 has a width equal to 10\n // - CharCode1+1 has a width equal to 20\n // - CharCode1+2 has a width equal to 30\n //\n // The baseMapping array contains a map for glyph index to unicode.\n // So from baseMapping we'll get sorted unicodes and their positions\n // (i.e. glyph indices) and then we put widths in an array for the\n // the consecutive unicodes.\n const newWidths = [];\n for (const [unicode, glyphIndex] of baseMapping\n .map(\n (charUnicode, index) => [\n charUnicode,\n index,\n ] /* collect unicode and glyph index */\n )\n .sort(\n ([unicode1], [unicode2]) =>\n unicode1 - unicode2 /* order by unicode only */\n )) {\n if (unicode === -1) {\n continue;\n }\n\n if (unicode === currentCode + 1) {\n currentArray.push(rescaledBaseWidths[glyphIndex]);\n currentCode += 1;\n } else {\n currentCode = unicode;\n currentArray = [rescaledBaseWidths[glyphIndex]];\n newWidths.push(unicode, currentArray);\n }\n }\n\n return newWidths;\n}\n\nfunction getXfaFontDict(name) {\n const widths = getXfaFontWidths(name);\n const dict = new Dict(null);\n dict.set(\"BaseFont\", Name.get(name));\n dict.set(\"Type\", Name.get(\"Font\"));\n dict.set(\"Subtype\", Name.get(\"CIDFontType2\"));\n dict.set(\"Encoding\", Name.get(\"Identity-H\"));\n dict.set(\"CIDToGIDMap\", Name.get(\"Identity\"));\n dict.set(\"W\", widths);\n dict.set(\"FirstChar\", widths[0]);\n dict.set(\n \"LastChar\",\n widths[widths.length - 2] + widths[widths.length - 1].length - 1\n );\n const descriptor = new Dict(null);\n dict.set(\"FontDescriptor\", descriptor);\n const systemInfo = new Dict(null);\n systemInfo.set(\"Ordering\", \"Identity\");\n systemInfo.set(\"Registry\", \"Adobe\");\n systemInfo.set(\"Supplement\", 0);\n dict.set(\"CIDSystemInfo\", systemInfo);\n\n return dict;\n}\n\nexport { getXfaFontDict, getXfaFontName };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Factors to rescale LiberationSans-Bold.ttf to have the same\n// metrics as calibrib.ttf.\nconst CalibriBoldFactors = [\n 1.3877, 1, 1, 1, 0.97801, 0.92482, 0.89552, 0.91133, 0.81988, 0.97566,\n 0.98152, 0.93548, 0.93548, 1.2798, 0.85284, 0.92794, 1, 0.96134, 1.54657,\n 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133,\n 0.91133, 0.91133, 0.82845, 0.82845, 0.85284, 0.85284, 0.85284, 0.75859,\n 0.92138, 0.83908, 0.7762, 0.73293, 0.87289, 0.73133, 0.7514, 0.81921, 0.87356,\n 0.95958, 0.59526, 0.75727, 0.69225, 1.04924, 0.9121, 0.86943, 0.79795,\n 0.88198, 0.77958, 0.70864, 0.81055, 0.90399, 0.88653, 0.96017, 0.82577,\n 0.77892, 0.78257, 0.97507, 1.54657, 0.97507, 0.85284, 0.89552, 0.90176,\n 0.88762, 0.8785, 0.75241, 0.8785, 0.90518, 0.95015, 0.77618, 0.8785, 0.88401,\n 0.91916, 0.86304, 0.88401, 0.91488, 0.8785, 0.8801, 0.8785, 0.8785, 0.91343,\n 0.7173, 1.04106, 0.8785, 0.85075, 0.95794, 0.82616, 0.85162, 0.79492, 0.88331,\n 1.69808, 0.88331, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133,\n 1.7801, 0.89552, 1.24487, 1.13254, 1.12401, 0.96839, 0.85284, 0.68787,\n 0.70645, 0.85592, 0.90747, 1.01466, 1.0088, 0.90323, 1, 1.07463, 1, 0.91056,\n 0.75806, 1.19118, 0.96839, 0.78864, 0.82845, 0.84133, 0.75859, 0.83908,\n 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.77539, 0.73293, 0.73133,\n 0.73133, 0.73133, 0.73133, 0.95958, 0.95958, 0.95958, 0.95958, 0.88506,\n 0.9121, 0.86943, 0.86943, 0.86943, 0.86943, 0.86943, 0.85284, 0.87508,\n 0.90399, 0.90399, 0.90399, 0.90399, 0.77892, 0.79795, 0.90807, 0.88762,\n 0.88762, 0.88762, 0.88762, 0.88762, 0.88762, 0.8715, 0.75241, 0.90518,\n 0.90518, 0.90518, 0.90518, 0.88401, 0.88401, 0.88401, 0.88401, 0.8785, 0.8785,\n 0.8801, 0.8801, 0.8801, 0.8801, 0.8801, 0.90747, 0.89049, 0.8785, 0.8785,\n 0.8785, 0.8785, 0.85162, 0.8785, 0.85162, 0.83908, 0.88762, 0.83908, 0.88762,\n 0.83908, 0.88762, 0.73293, 0.75241, 0.73293, 0.75241, 0.73293, 0.75241,\n 0.73293, 0.75241, 0.87289, 0.83016, 0.88506, 0.93125, 0.73133, 0.90518,\n 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518,\n 0.81921, 0.77618, 0.81921, 0.77618, 0.81921, 0.77618, 1, 1, 0.87356, 0.8785,\n 0.91075, 0.89608, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401,\n 0.95958, 0.88401, 0.95958, 0.88401, 0.76229, 0.90167, 0.59526, 0.91916, 1, 1,\n 0.86304, 0.69225, 0.88401, 1, 1, 0.70424, 0.79468, 0.91926, 0.88175, 0.70823,\n 0.94903, 0.9121, 0.8785, 1, 1, 0.9121, 0.8785, 0.87802, 0.88656, 0.8785,\n 0.86943, 0.8801, 0.86943, 0.8801, 0.86943, 0.8801, 0.87402, 0.89291, 0.77958,\n 0.91343, 1, 1, 0.77958, 0.91343, 0.70864, 0.7173, 0.70864, 0.7173, 0.70864,\n 0.7173, 0.70864, 0.7173, 1, 1, 0.81055, 0.75841, 0.81055, 1.06452, 0.90399,\n 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785,\n 0.90399, 0.8785, 0.96017, 0.95794, 0.77892, 0.85162, 0.77892, 0.78257,\n 0.79492, 0.78257, 0.79492, 0.78257, 0.79492, 0.9297, 0.56892, 0.83908,\n 0.88762, 0.77539, 0.8715, 0.87508, 0.89049, 1, 1, 0.81055, 1.04106, 1.20528,\n 1.20528, 1, 1.15543, 0.70674, 0.98387, 0.94721, 1.33431, 1.45894, 0.95161,\n 1.06303, 0.83908, 0.80352, 0.57184, 0.6965, 0.56289, 0.82001, 0.56029,\n 0.81235, 1.02988, 0.83908, 0.7762, 0.68156, 0.80367, 0.73133, 0.78257,\n 0.87356, 0.86943, 0.95958, 0.75727, 0.89019, 1.04924, 0.9121, 0.7648, 0.86943,\n 0.87356, 0.79795, 0.78275, 0.81055, 0.77892, 0.9762, 0.82577, 0.99819,\n 0.84896, 0.95958, 0.77892, 0.96108, 1.01407, 0.89049, 1.02988, 0.94211,\n 0.96108, 0.8936, 0.84021, 0.87842, 0.96399, 0.79109, 0.89049, 1.00813,\n 1.02988, 0.86077, 0.87445, 0.92099, 0.84723, 0.86513, 0.8801, 0.75638,\n 0.85714, 0.78216, 0.79586, 0.87965, 0.94211, 0.97747, 0.78287, 0.97926,\n 0.84971, 1.02988, 0.94211, 0.8801, 0.94211, 0.84971, 0.73133, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 0.90264, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 0.90518, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90548, 1, 1, 1, 1, 1, 1,\n 0.96017, 0.95794, 0.96017, 0.95794, 0.96017, 0.95794, 0.77892, 0.85162, 1, 1,\n 0.89552, 0.90527, 1, 0.90363, 0.92794, 0.92794, 0.92794, 0.92794, 0.87012,\n 0.87012, 0.87012, 0.89552, 0.89552, 1.42259, 0.71143, 1.06152, 1, 1, 1.03372,\n 1.03372, 0.97171, 1.4956, 2.2807, 0.93835, 0.83406, 0.91133, 0.84107, 0.91133,\n 1, 1, 1, 0.72021, 1, 1.23108, 0.83489, 0.88525, 0.88525, 0.81499, 0.90527,\n 1.81055, 0.90527, 1.81055, 1.31006, 1.53711, 0.94434, 1.08696, 1, 0.95018,\n 0.77192, 0.85284, 0.90747, 1.17534, 0.69825, 0.9716, 1.37077, 0.90747,\n 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572,\n 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.08004, 0.91027, 1, 1, 1,\n 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90727, 0.90727, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst CalibriBoldMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };\n\n// Factors to rescale LiberationSans-BoldItalic.ttf to have the same\n// metrics as calibriz.ttf.\nconst CalibriBoldItalicFactors = [\n 1.3877, 1, 1, 1, 0.97801, 0.92482, 0.89552, 0.91133, 0.81988, 0.97566,\n 0.98152, 0.93548, 0.93548, 1.2798, 0.85284, 0.92794, 1, 0.96134, 1.56239,\n 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133,\n 0.91133, 0.91133, 0.82845, 0.82845, 0.85284, 0.85284, 0.85284, 0.75859,\n 0.92138, 0.83908, 0.7762, 0.71805, 0.87289, 0.73133, 0.7514, 0.81921, 0.87356,\n 0.95958, 0.59526, 0.75727, 0.69225, 1.04924, 0.90872, 0.85938, 0.79795,\n 0.87068, 0.77958, 0.69766, 0.81055, 0.90399, 0.88653, 0.96068, 0.82577,\n 0.77892, 0.78257, 0.97507, 1.529, 0.97507, 0.85284, 0.89552, 0.90176, 0.94908,\n 0.86411, 0.74012, 0.86411, 0.88323, 0.95015, 0.86411, 0.86331, 0.88401,\n 0.91916, 0.86304, 0.88401, 0.9039, 0.86331, 0.86331, 0.86411, 0.86411,\n 0.90464, 0.70852, 1.04106, 0.86331, 0.84372, 0.95794, 0.82616, 0.84548,\n 0.79492, 0.88331, 1.69808, 0.88331, 0.85284, 0.97801, 0.89552, 0.91133,\n 0.89552, 0.91133, 1.7801, 0.89552, 1.24487, 1.13254, 1.19129, 0.96839,\n 0.85284, 0.68787, 0.70645, 0.85592, 0.90747, 1.01466, 1.0088, 0.90323, 1,\n 1.07463, 1, 0.91056, 0.75806, 1.19118, 0.96839, 0.78864, 0.82845, 0.84133,\n 0.75859, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.77539,\n 0.71805, 0.73133, 0.73133, 0.73133, 0.73133, 0.95958, 0.95958, 0.95958,\n 0.95958, 0.88506, 0.90872, 0.85938, 0.85938, 0.85938, 0.85938, 0.85938,\n 0.85284, 0.87068, 0.90399, 0.90399, 0.90399, 0.90399, 0.77892, 0.79795,\n 0.90807, 0.94908, 0.94908, 0.94908, 0.94908, 0.94908, 0.94908, 0.85887,\n 0.74012, 0.88323, 0.88323, 0.88323, 0.88323, 0.88401, 0.88401, 0.88401,\n 0.88401, 0.8785, 0.86331, 0.86331, 0.86331, 0.86331, 0.86331, 0.86331,\n 0.90747, 0.89049, 0.86331, 0.86331, 0.86331, 0.86331, 0.84548, 0.86411,\n 0.84548, 0.83908, 0.94908, 0.83908, 0.94908, 0.83908, 0.94908, 0.71805,\n 0.74012, 0.71805, 0.74012, 0.71805, 0.74012, 0.71805, 0.74012, 0.87289,\n 0.79538, 0.88506, 0.92726, 0.73133, 0.88323, 0.73133, 0.88323, 0.73133,\n 0.88323, 0.73133, 0.88323, 0.73133, 0.88323, 0.81921, 0.86411, 0.81921,\n 0.86411, 0.81921, 0.86411, 1, 1, 0.87356, 0.86331, 0.91075, 0.8777, 0.95958,\n 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958,\n 0.88401, 0.76467, 0.90167, 0.59526, 0.91916, 1, 1, 0.86304, 0.69225, 0.88401,\n 1, 1, 0.70424, 0.77312, 0.91926, 0.88175, 0.70823, 0.94903, 0.90872, 0.86331,\n 1, 1, 0.90872, 0.86331, 0.86906, 0.88116, 0.86331, 0.85938, 0.86331, 0.85938,\n 0.86331, 0.85938, 0.86331, 0.87402, 0.86549, 0.77958, 0.90464, 1, 1, 0.77958,\n 0.90464, 0.69766, 0.70852, 0.69766, 0.70852, 0.69766, 0.70852, 0.69766,\n 0.70852, 1, 1, 0.81055, 0.75841, 0.81055, 1.06452, 0.90399, 0.86331, 0.90399,\n 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399,\n 0.86331, 0.96068, 0.95794, 0.77892, 0.84548, 0.77892, 0.78257, 0.79492,\n 0.78257, 0.79492, 0.78257, 0.79492, 0.9297, 0.56892, 0.83908, 0.94908,\n 0.77539, 0.85887, 0.87068, 0.89049, 1, 1, 0.81055, 1.04106, 1.20528, 1.20528,\n 1, 1.15543, 0.70088, 0.98387, 0.94721, 1.33431, 1.45894, 0.95161, 1.48387,\n 0.83908, 0.80352, 0.57118, 0.6965, 0.56347, 0.79179, 0.55853, 0.80346,\n 1.02988, 0.83908, 0.7762, 0.67174, 0.86036, 0.73133, 0.78257, 0.87356,\n 0.86441, 0.95958, 0.75727, 0.89019, 1.04924, 0.90872, 0.74889, 0.85938,\n 0.87891, 0.79795, 0.7957, 0.81055, 0.77892, 0.97447, 0.82577, 0.97466,\n 0.87179, 0.95958, 0.77892, 0.94252, 0.95612, 0.8753, 1.02988, 0.92733,\n 0.94252, 0.87411, 0.84021, 0.8728, 0.95612, 0.74081, 0.8753, 1.02189, 1.02988,\n 0.84814, 0.87445, 0.91822, 0.84723, 0.85668, 0.86331, 0.81344, 0.87581,\n 0.76422, 0.82046, 0.96057, 0.92733, 0.99375, 0.78022, 0.95452, 0.86015,\n 1.02988, 0.92733, 0.86331, 0.92733, 0.86015, 0.73133, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 0.90631, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.88323, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.85174, 1, 1, 1, 1, 1, 1, 0.96068, 0.95794,\n 0.96068, 0.95794, 0.96068, 0.95794, 0.77892, 0.84548, 1, 1, 0.89552, 0.90527,\n 1, 0.90363, 0.92794, 0.92794, 0.92794, 0.89807, 0.87012, 0.87012, 0.87012,\n 0.89552, 0.89552, 1.42259, 0.71094, 1.06152, 1, 1, 1.03372, 1.03372, 0.97171,\n 1.4956, 2.2807, 0.92972, 0.83406, 0.91133, 0.83326, 0.91133, 1, 1, 1, 0.72021,\n 1, 1.23108, 0.83489, 0.88525, 0.88525, 0.81499, 0.90616, 1.81055, 0.90527,\n 1.81055, 1.3107, 1.53711, 0.94434, 1.08696, 1, 0.95018, 0.77192, 0.85284,\n 0.90747, 1.17534, 0.69825, 0.9716, 1.37077, 0.90747, 0.90747, 0.85356,\n 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572,\n 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.08004, 0.91027, 1, 1, 1, 0.99862, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90727, 0.90727, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst CalibriBoldItalicMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };\n\n// Factors to rescale LiberationSans-Italic.ttf to have the same\n// metrics as calibrii.ttf.\nconst CalibriItalicFactors = [\n 1.3877, 1, 1, 1, 1.17223, 1.1293, 0.89552, 0.91133, 0.80395, 1.02269, 1.15601,\n 0.91056, 0.91056, 1.2798, 0.85284, 0.89807, 1, 0.90861, 1.39543, 0.91133,\n 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133,\n 0.91133, 0.96309, 0.96309, 0.85284, 0.85284, 0.85284, 0.83319, 0.88071,\n 0.8675, 0.81552, 0.72346, 0.85193, 0.73206, 0.7522, 0.81105, 0.86275, 0.90685,\n 0.6377, 0.77892, 0.75593, 1.02638, 0.89249, 0.84118, 0.77452, 0.85374,\n 0.75186, 0.67789, 0.79776, 0.88844, 0.85066, 0.94309, 0.77818, 0.7306,\n 0.76659, 1.10369, 1.38313, 1.10369, 1.06139, 0.89552, 0.8739, 0.9245, 0.9245,\n 0.83203, 0.9245, 0.85865, 1.09842, 0.9245, 0.9245, 1.03297, 1.07692, 0.90918,\n 1.03297, 0.94959, 0.9245, 0.92274, 0.9245, 0.9245, 1.02933, 0.77832, 1.20562,\n 0.9245, 0.8916, 0.98986, 0.86621, 0.89453, 0.79004, 0.94152, 1.77256, 0.94152,\n 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.91729, 0.89552,\n 1.17889, 1.13254, 1.16359, 0.92098, 0.85284, 0.68787, 0.71353, 0.84737,\n 0.90747, 1.0088, 1.0044, 0.87683, 1, 1.09091, 1, 0.92229, 0.739, 1.15642,\n 0.92098, 0.76288, 0.80504, 0.80972, 0.75859, 0.8675, 0.8675, 0.8675, 0.8675,\n 0.8675, 0.8675, 0.76318, 0.72346, 0.73206, 0.73206, 0.73206, 0.73206, 0.90685,\n 0.90685, 0.90685, 0.90685, 0.86477, 0.89249, 0.84118, 0.84118, 0.84118,\n 0.84118, 0.84118, 0.85284, 0.84557, 0.88844, 0.88844, 0.88844, 0.88844,\n 0.7306, 0.77452, 0.86331, 0.9245, 0.9245, 0.9245, 0.9245, 0.9245, 0.9245,\n 0.84843, 0.83203, 0.85865, 0.85865, 0.85865, 0.85865, 0.82601, 0.82601,\n 0.82601, 0.82601, 0.94469, 0.9245, 0.92274, 0.92274, 0.92274, 0.92274,\n 0.92274, 0.90747, 0.86651, 0.9245, 0.9245, 0.9245, 0.9245, 0.89453, 0.9245,\n 0.89453, 0.8675, 0.9245, 0.8675, 0.9245, 0.8675, 0.9245, 0.72346, 0.83203,\n 0.72346, 0.83203, 0.72346, 0.83203, 0.72346, 0.83203, 0.85193, 0.8875,\n 0.86477, 0.99034, 0.73206, 0.85865, 0.73206, 0.85865, 0.73206, 0.85865,\n 0.73206, 0.85865, 0.73206, 0.85865, 0.81105, 0.9245, 0.81105, 0.9245, 0.81105,\n 0.9245, 1, 1, 0.86275, 0.9245, 0.90872, 0.93591, 0.90685, 0.82601, 0.90685,\n 0.82601, 0.90685, 0.82601, 0.90685, 1.03297, 0.90685, 0.82601, 0.77896,\n 1.05611, 0.6377, 1.07692, 1, 1, 0.90918, 0.75593, 1.03297, 1, 1, 0.76032,\n 0.9375, 0.98156, 0.93407, 0.77261, 1.11429, 0.89249, 0.9245, 1, 1, 0.89249,\n 0.9245, 0.92534, 0.86698, 0.9245, 0.84118, 0.92274, 0.84118, 0.92274, 0.84118,\n 0.92274, 0.8667, 0.86291, 0.75186, 1.02933, 1, 1, 0.75186, 1.02933, 0.67789,\n 0.77832, 0.67789, 0.77832, 0.67789, 0.77832, 0.67789, 0.77832, 1, 1, 0.79776,\n 0.97655, 0.79776, 1.23023, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245,\n 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.94309, 0.98986, 0.7306,\n 0.89453, 0.7306, 0.76659, 0.79004, 0.76659, 0.79004, 0.76659, 0.79004,\n 1.09231, 0.54873, 0.8675, 0.9245, 0.76318, 0.84843, 0.84557, 0.86651, 1, 1,\n 0.79776, 1.20562, 1.18622, 1.18622, 1, 1.1437, 0.67009, 0.96334, 0.93695,\n 1.35191, 1.40909, 0.95161, 1.48387, 0.8675, 0.90861, 0.6192, 0.7363, 0.64824,\n 0.82411, 0.56321, 0.85696, 1.23516, 0.8675, 0.81552, 0.7286, 0.84134, 0.73206,\n 0.76659, 0.86275, 0.84369, 0.90685, 0.77892, 0.85871, 1.02638, 0.89249,\n 0.75828, 0.84118, 0.85984, 0.77452, 0.76466, 0.79776, 0.7306, 0.90782,\n 0.77818, 0.903, 0.87291, 0.90685, 0.7306, 0.99058, 1.03667, 0.94635, 1.23516,\n 0.9849, 0.99058, 0.92393, 0.8916, 0.942, 1.03667, 0.75026, 0.94635, 1.0297,\n 1.23516, 0.90918, 0.94048, 0.98217, 0.89746, 0.84153, 0.92274, 0.82507,\n 0.88832, 0.84438, 0.88178, 1.03525, 0.9849, 1.00225, 0.78086, 0.97248,\n 0.89404, 1.23516, 0.9849, 0.92274, 0.9849, 0.89404, 0.73206, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 0.89693, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.85865,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90933, 1, 1, 1, 1, 1, 1, 0.94309,\n 0.98986, 0.94309, 0.98986, 0.94309, 0.98986, 0.7306, 0.89453, 1, 1, 0.89552,\n 0.90527, 1, 0.90186, 1.12308, 1.12308, 1.12308, 1.12308, 1.2566, 1.2566,\n 1.2566, 0.89552, 0.89552, 1.42259, 0.68994, 1.03809, 1, 1, 1.0176, 1.0176,\n 1.11523, 1.4956, 2.01462, 0.97858, 0.82616, 0.91133, 0.83437, 0.91133, 1, 1,\n 1, 0.70508, 1, 1.23108, 0.79801, 0.84426, 0.84426, 0.774, 0.90572, 1.81055,\n 0.90749, 1.81055, 1.28809, 1.55469, 0.94434, 1.07806, 1, 0.97094, 0.7589,\n 0.85284, 0.90747, 1.19658, 0.69825, 0.97622, 1.33512, 0.90747, 0.90747,\n 0.85284, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8,\n 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.0336, 0.91027, 1, 1, 1,\n 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05859, 1.05859, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst CalibriItalicMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };\n\n// Factors to rescale LiberationSans-Regular.ttf to have the same\n// metrics as calibri.ttf.\nconst CalibriRegularFactors = [\n 1.3877, 1, 1, 1, 1.17223, 1.1293, 0.89552, 0.91133, 0.80395, 1.02269, 1.15601,\n 0.91056, 0.91056, 1.2798, 0.85284, 0.89807, 1, 0.90861, 1.39016, 0.91133,\n 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133,\n 0.91133, 0.96309, 0.96309, 0.85284, 0.85284, 0.85284, 0.83319, 0.88071,\n 0.8675, 0.81552, 0.73834, 0.85193, 0.73206, 0.7522, 0.81105, 0.86275, 0.90685,\n 0.6377, 0.77892, 0.75593, 1.02638, 0.89385, 0.85122, 0.77452, 0.86503,\n 0.75186, 0.68887, 0.79776, 0.88844, 0.85066, 0.94258, 0.77818, 0.7306,\n 0.76659, 1.10369, 1.39016, 1.10369, 1.06139, 0.89552, 0.8739, 0.86128,\n 0.94469, 0.8457, 0.94469, 0.89464, 1.09842, 0.84636, 0.94469, 1.03297,\n 1.07692, 0.90918, 1.03297, 0.95897, 0.94469, 0.9482, 0.94469, 0.94469,\n 1.04692, 0.78223, 1.20562, 0.94469, 0.90332, 0.98986, 0.86621, 0.90527,\n 0.79004, 0.94152, 1.77256, 0.94152, 0.85284, 0.97801, 0.89552, 0.91133,\n 0.89552, 0.91133, 1.91729, 0.89552, 1.17889, 1.13254, 1.08707, 0.92098,\n 0.85284, 0.68787, 0.71353, 0.84737, 0.90747, 1.0088, 1.0044, 0.87683, 1,\n 1.09091, 1, 0.92229, 0.739, 1.15642, 0.92098, 0.76288, 0.80504, 0.80972,\n 0.75859, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.76318, 0.73834,\n 0.73206, 0.73206, 0.73206, 0.73206, 0.90685, 0.90685, 0.90685, 0.90685,\n 0.86477, 0.89385, 0.85122, 0.85122, 0.85122, 0.85122, 0.85122, 0.85284,\n 0.85311, 0.88844, 0.88844, 0.88844, 0.88844, 0.7306, 0.77452, 0.86331,\n 0.86128, 0.86128, 0.86128, 0.86128, 0.86128, 0.86128, 0.8693, 0.8457, 0.89464,\n 0.89464, 0.89464, 0.89464, 0.82601, 0.82601, 0.82601, 0.82601, 0.94469,\n 0.94469, 0.9482, 0.9482, 0.9482, 0.9482, 0.9482, 0.90747, 0.86651, 0.94469,\n 0.94469, 0.94469, 0.94469, 0.90527, 0.94469, 0.90527, 0.8675, 0.86128, 0.8675,\n 0.86128, 0.8675, 0.86128, 0.73834, 0.8457, 0.73834, 0.8457, 0.73834, 0.8457,\n 0.73834, 0.8457, 0.85193, 0.92454, 0.86477, 0.9921, 0.73206, 0.89464, 0.73206,\n 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.81105,\n 0.84636, 0.81105, 0.84636, 0.81105, 0.84636, 1, 1, 0.86275, 0.94469, 0.90872,\n 0.95786, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685,\n 1.03297, 0.90685, 0.82601, 0.77741, 1.05611, 0.6377, 1.07692, 1, 1, 0.90918,\n 0.75593, 1.03297, 1, 1, 0.76032, 0.90452, 0.98156, 1.11842, 0.77261, 1.11429,\n 0.89385, 0.94469, 1, 1, 0.89385, 0.94469, 0.95877, 0.86901, 0.94469, 0.85122,\n 0.9482, 0.85122, 0.9482, 0.85122, 0.9482, 0.8667, 0.90016, 0.75186, 1.04692,\n 1, 1, 0.75186, 1.04692, 0.68887, 0.78223, 0.68887, 0.78223, 0.68887, 0.78223,\n 0.68887, 0.78223, 1, 1, 0.79776, 0.92188, 0.79776, 1.23023, 0.88844, 0.94469,\n 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469,\n 0.88844, 0.94469, 0.94258, 0.98986, 0.7306, 0.90527, 0.7306, 0.76659, 0.79004,\n 0.76659, 0.79004, 0.76659, 0.79004, 1.09231, 0.54873, 0.8675, 0.86128,\n 0.76318, 0.8693, 0.85311, 0.86651, 1, 1, 0.79776, 1.20562, 1.18622, 1.18622,\n 1, 1.1437, 0.67742, 0.96334, 0.93695, 1.35191, 1.40909, 0.95161, 1.48387,\n 0.86686, 0.90861, 0.62267, 0.74359, 0.65649, 0.85498, 0.56963, 0.88254,\n 1.23516, 0.8675, 0.81552, 0.75443, 0.84503, 0.73206, 0.76659, 0.86275,\n 0.85122, 0.90685, 0.77892, 0.85746, 1.02638, 0.89385, 0.75657, 0.85122,\n 0.86275, 0.77452, 0.74171, 0.79776, 0.7306, 0.95165, 0.77818, 0.89772,\n 0.88831, 0.90685, 0.7306, 0.98142, 1.02191, 0.96576, 1.23516, 0.99018,\n 0.98142, 0.9236, 0.89258, 0.94035, 1.02191, 0.78848, 0.96576, 0.9561, 1.23516,\n 0.90918, 0.92578, 0.95424, 0.89746, 0.83969, 0.9482, 0.80113, 0.89442,\n 0.85208, 0.86155, 0.98022, 0.99018, 1.00452, 0.81209, 0.99247, 0.89181,\n 1.23516, 0.99018, 0.9482, 0.99018, 0.89181, 0.73206, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 0.88844, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89464, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.96766, 1, 1, 1, 1, 1, 1, 0.94258, 0.98986,\n 0.94258, 0.98986, 0.94258, 0.98986, 0.7306, 0.90527, 1, 1, 0.89552, 0.90527,\n 1, 0.90186, 1.12308, 1.12308, 1.12308, 1.12308, 1.2566, 1.2566, 1.2566,\n 0.89552, 0.89552, 1.42259, 0.69043, 1.03809, 1, 1, 1.0176, 1.0176, 1.11523,\n 1.4956, 2.01462, 0.99331, 0.82616, 0.91133, 0.84286, 0.91133, 1, 1, 1,\n 0.70508, 1, 1.23108, 0.79801, 0.84426, 0.84426, 0.774, 0.90527, 1.81055,\n 0.90527, 1.81055, 1.28809, 1.55469, 0.94434, 1.07806, 1, 0.97094, 0.7589,\n 0.85284, 0.90747, 1.19658, 0.69825, 0.97622, 1.33512, 0.90747, 0.90747,\n 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8,\n 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.0336, 0.91027, 1, 1, 1,\n 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05859, 1.05859, 1, 1, 1,\n 1.07185, 0.99413, 0.96334, 1.08065, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst CalibriRegularMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };\n\nexport {\n CalibriBoldFactors,\n CalibriBoldItalicFactors,\n CalibriBoldItalicMetrics,\n CalibriBoldMetrics,\n CalibriItalicFactors,\n CalibriItalicMetrics,\n CalibriRegularFactors,\n CalibriRegularMetrics,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Factors to rescale LiberationSans-Bold.ttf to have the same\n// metrics as NimbusSans-Bold.otf.\nconst HelveticaBoldFactors = [\n 0.76116, 1, 1, 1.0006, 0.99998, 0.99974, 0.99973, 0.99973, 0.99982, 0.99977,\n 1.00087, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99998, 1, 1.00003, 1.00003, 1.00003, 1.00026, 0.9999,\n 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977,\n 1.0006, 0.99973, 0.99977, 1.00026, 0.99999, 0.99977, 1.00022, 1.00001,\n 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001,\n 1.00001, 1.00026, 0.99998, 1.0006, 0.99998, 1.00003, 0.99973, 0.99998,\n 0.99973, 1.00026, 0.99973, 1.00026, 0.99973, 0.99998, 1.00026, 1.00026,\n 1.0006, 1.0006, 0.99973, 1.0006, 0.99982, 1.00026, 1.00026, 1.00026, 1.00026,\n 0.99959, 0.99973, 0.99998, 1.00026, 0.99973, 1.00022, 0.99973, 0.99973, 1,\n 0.99959, 1.00077, 0.99959, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973,\n 0.99973, 1.00077, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003,\n 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.99973, 1.0006,\n 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 0.99977,\n 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 1, 0.99977, 1.00001, 1.00001,\n 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022,\n 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977,\n 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99982, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.00026, 1.00026, 1.00026, 1.00026,\n 1.00026, 1.00026, 1.00026, 1.06409, 1.00026, 1.00026, 1.00026, 1.00026,\n 1.00026, 0.99973, 1.00026, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 1.03374, 0.99977, 1.00026, 1.00001, 0.99973,\n 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973,\n 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,\n 0.99977, 1.00026, 0.99977, 1.00026, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006,\n 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.00042, 0.99973, 0.99973, 1.0006,\n 0.99977, 0.99973, 0.99973, 1.00026, 1.0006, 1.00026, 1.0006, 1.00026, 1.03828,\n 1.00026, 0.99999, 1.00026, 1.0006, 0.99977, 1.00026, 0.99977, 1.00026,\n 0.99977, 1.00026, 0.9993, 0.9998, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,\n 1.00022, 1.00026, 1, 1.00016, 0.99977, 0.99959, 0.99977, 0.99959, 0.99977,\n 0.99959, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,\n 0.99973, 1.00026, 0.99998, 1.00026, 0.8121, 1.00026, 0.99998, 0.99977,\n 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977,\n 1.00026, 0.99977, 1.00026, 1.00016, 1.00022, 1.00001, 0.99973, 1.00001,\n 1.00026, 1, 1.00026, 1, 1.00026, 1, 1.0006, 0.99973, 0.99977, 0.99973, 1,\n 0.99982, 1.00022, 1.00026, 1.00001, 0.99973, 1.00026, 0.99998, 0.99998,\n 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,\n 0.99998, 1.00034, 0.99977, 1, 0.99997, 1.00026, 1.00078, 1.00036, 0.99973,\n 1.00013, 1.0006, 0.99977, 0.99977, 0.99988, 0.85148, 1.00001, 1.00026,\n 0.99977, 1.00022, 1.0006, 0.99977, 1.00001, 0.99999, 0.99977, 1.00069,\n 1.00022, 0.99977, 1.00001, 0.99984, 1.00026, 1.00001, 1.00024, 1.00001,\n 0.9999, 1, 1.0006, 1.00001, 1.00041, 0.99962, 1.00026, 1.0006, 0.99995,\n 1.00041, 0.99942, 0.99973, 0.99927, 1.00082, 0.99902, 1.00026, 1.00087,\n 1.0006, 1.00069, 0.99973, 0.99867, 0.99973, 0.9993, 1.00026, 1.00049, 1.00056,\n 1, 0.99988, 0.99935, 0.99995, 0.99954, 1.00055, 0.99945, 1.00032, 1.0006,\n 0.99995, 1.00026, 0.99995, 1.00032, 1.00001, 1.00008, 0.99971, 1.00019,\n 0.9994, 1.00001, 1.0006, 1.00044, 0.99973, 1.00023, 1.00047, 1, 0.99942,\n 0.99561, 0.99989, 1.00035, 0.99977, 1.00035, 0.99977, 1.00019, 0.99944,\n 1.00001, 1.00021, 0.99926, 1.00035, 1.00035, 0.99942, 1.00048, 0.99999,\n 0.99977, 1.00022, 1.00035, 1.00001, 0.99977, 1.00026, 0.99989, 1.00057,\n 1.00001, 0.99936, 1.00052, 1.00012, 0.99996, 1.00043, 1, 1.00035, 0.9994,\n 0.99976, 1.00035, 0.99973, 1.00052, 1.00041, 1.00119, 1.00037, 0.99973,\n 1.00002, 0.99986, 1.00041, 1.00041, 0.99902, 0.9996, 1.00034, 0.99999,\n 1.00026, 0.99999, 1.00026, 0.99973, 1.00052, 0.99973, 1, 0.99973, 1.00041,\n 1.00075, 0.9994, 1.0003, 0.99999, 1, 1.00041, 0.99955, 1, 0.99915, 0.99973,\n 0.99973, 1.00026, 1.00119, 0.99955, 0.99973, 1.0006, 0.99911, 1.0006, 1.00026,\n 0.99972, 1.00026, 0.99902, 1.00041, 0.99973, 0.99999, 1, 1, 1.00038, 1.0005,\n 1.00016, 1.00022, 1.00016, 1.00022, 1.00016, 1.00022, 1.00001, 0.99973, 1, 1,\n 0.99973, 1, 1, 0.99955, 1.0006, 1.0006, 1.0006, 1.0006, 1, 1, 1, 0.99973,\n 0.99973, 0.99972, 1, 1, 1.00106, 0.99999, 0.99998, 0.99998, 0.99999, 0.99998,\n 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973, 0.99971, 1.00047, 1.00023, 1,\n 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1, 1, 1, 1, 1, 1, 1,\n 0.99972, 1, 1.20985, 1.39713, 1.00003, 1.00031, 1.00015, 1, 0.99561, 1.00027,\n 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999,\n 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625,\n 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.99972,\n 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1,\n 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998,\n 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst HelveticaBoldMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-BoldItalic.ttf to have the same\n// metrics as NimbusSans-BoldItalic.otf.\nconst HelveticaBoldItalicFactors = [\n 0.76116, 1, 1, 1.0006, 0.99998, 0.99974, 0.99973, 0.99973, 0.99982, 0.99977,\n 1.00087, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99998, 1, 1.00003, 1.00003, 1.00003, 1.00026, 0.9999,\n 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977,\n 1.0006, 0.99973, 0.99977, 1.00026, 0.99999, 0.99977, 1.00022, 1.00001,\n 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001,\n 1.00001, 1.00026, 0.99998, 1.0006, 0.99998, 1.00003, 0.99973, 0.99998,\n 0.99973, 1.00026, 0.99973, 1.00026, 0.99973, 0.99998, 1.00026, 1.00026,\n 1.0006, 1.0006, 0.99973, 1.0006, 0.99982, 1.00026, 1.00026, 1.00026, 1.00026,\n 0.99959, 0.99973, 0.99998, 1.00026, 0.99973, 1.00022, 0.99973, 0.99973, 1,\n 0.99959, 1.00077, 0.99959, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973,\n 0.99973, 1.00077, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003,\n 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.99973, 1.0006,\n 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 0.99977,\n 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 1, 0.99977, 1.00001, 1.00001,\n 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022,\n 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977,\n 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99982, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.00026, 1.00026, 1.00026, 1.00026,\n 1.00026, 1.00026, 1.00026, 1.06409, 1.00026, 1.00026, 1.00026, 1.00026,\n 1.00026, 0.99973, 1.00026, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 1.0044, 0.99977, 1.00026, 1.00001, 0.99973,\n 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973,\n 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,\n 0.99977, 1.00026, 0.99977, 1.00026, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006,\n 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99971, 0.99973, 0.99973, 1.0006,\n 0.99977, 0.99973, 0.99973, 1.00026, 1.0006, 1.00026, 1.0006, 1.00026, 1.01011,\n 1.00026, 0.99999, 1.00026, 1.0006, 0.99977, 1.00026, 0.99977, 1.00026,\n 0.99977, 1.00026, 0.9993, 0.9998, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,\n 1.00022, 1.00026, 1, 1.00016, 0.99977, 0.99959, 0.99977, 0.99959, 0.99977,\n 0.99959, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,\n 0.99973, 1.00026, 0.99998, 1.00026, 0.8121, 1.00026, 0.99998, 0.99977,\n 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977,\n 1.00026, 0.99977, 1.00026, 1.00016, 1.00022, 1.00001, 0.99973, 1.00001,\n 1.00026, 1, 1.00026, 1, 1.00026, 1, 1.0006, 0.99973, 0.99977, 0.99973, 1,\n 0.99982, 1.00022, 1.00026, 1.00001, 0.99973, 1.00026, 0.99998, 0.99998,\n 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,\n 0.99998, 0.99998, 0.99977, 1, 1, 1.00026, 0.99969, 0.99972, 0.99981, 0.9998,\n 1.0006, 0.99977, 0.99977, 1.00022, 0.91155, 1.00001, 1.00026, 0.99977,\n 1.00022, 1.0006, 0.99977, 1.00001, 0.99999, 0.99977, 0.99966, 1.00022,\n 1.00032, 1.00001, 0.99944, 1.00026, 1.00001, 0.99968, 1.00001, 1.00047, 1,\n 1.0006, 1.00001, 0.99981, 1.00101, 1.00026, 1.0006, 0.99948, 0.99981, 1.00064,\n 0.99973, 0.99942, 1.00101, 1.00061, 1.00026, 1.00069, 1.0006, 1.00014,\n 0.99973, 1.01322, 0.99973, 1.00065, 1.00026, 1.00012, 0.99923, 1, 1.00064,\n 1.00076, 0.99948, 1.00055, 1.00063, 1.00007, 0.99943, 1.0006, 0.99948,\n 1.00026, 0.99948, 0.99943, 1.00001, 1.00001, 1.00029, 1.00038, 1.00035,\n 1.00001, 1.0006, 1.0006, 0.99973, 0.99978, 1.00001, 1.00057, 0.99989, 0.99967,\n 0.99964, 0.99967, 0.99977, 0.99999, 0.99977, 1.00038, 0.99977, 1.00001,\n 0.99973, 1.00066, 0.99967, 0.99967, 1.00041, 0.99998, 0.99999, 0.99977,\n 1.00022, 0.99967, 1.00001, 0.99977, 1.00026, 0.99964, 1.00031, 1.00001,\n 0.99999, 0.99999, 1, 1.00023, 1, 1, 0.99999, 1.00035, 1.00001, 0.99999,\n 0.99973, 0.99977, 0.99999, 1.00058, 0.99973, 0.99973, 0.99955, 0.9995,\n 1.00026, 1.00026, 1.00032, 0.99989, 1.00034, 0.99999, 1.00026, 1.00026,\n 1.00026, 0.99973, 0.45998, 0.99973, 1.00026, 0.99973, 1.00001, 0.99999,\n 0.99982, 0.99994, 0.99996, 1, 1.00042, 1.00044, 1.00029, 1.00023, 0.99973,\n 0.99973, 1.00026, 0.99949, 1.00002, 0.99973, 1.0006, 1.0006, 1.0006, 0.99975,\n 1.00026, 1.00026, 1.00032, 0.98685, 0.99973, 1.00026, 1, 1, 0.99966, 1.00044,\n 1.00016, 1.00022, 1.00016, 1.00022, 1.00016, 1.00022, 1.00001, 0.99973, 1, 1,\n 0.99973, 1, 1, 0.99955, 1.0006, 1.0006, 1.0006, 1.0006, 1, 1, 1, 0.99973,\n 0.99973, 0.99972, 1, 1, 1.00106, 0.99999, 0.99998, 0.99998, 0.99999, 0.99998,\n 1.66475, 1, 0.99973, 0.99973, 1, 0.99973, 0.99971, 0.99978, 1, 1, 0.99991,\n 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1.00098, 1, 1, 1, 1.00049, 1, 1,\n 0.99972, 1, 1.20985, 1.39713, 1.00003, 1.00031, 1.00015, 1, 0.99561, 1.00027,\n 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999,\n 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625,\n 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.99972,\n 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1,\n 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998,\n 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst HelveticaBoldItalicMetrics = { lineHeight: 1.35, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-Italic.ttf to have the same\n// metrics as NimbusSans-Italic.otf.\nconst HelveticaItalicFactors = [\n 0.76116, 1, 1, 1.0006, 1.0006, 1.00006, 0.99973, 0.99973, 0.99982, 1.00001,\n 1.00043, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 1.0006, 1, 1.00003, 1.00003, 1.00003, 0.99973, 0.99987,\n 1.00001, 1.00001, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977,\n 1.0006, 1, 1.00001, 0.99973, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022,\n 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001,\n 1.00026, 1.0006, 1.0006, 1.0006, 0.99949, 0.99973, 0.99998, 0.99973, 0.99973,\n 1, 0.99973, 0.99973, 1.0006, 0.99973, 0.99973, 0.99924, 0.99924, 1, 0.99924,\n 0.99999, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.0006, 0.99973, 1,\n 0.99977, 1, 1, 1, 1.00005, 1.0009, 1.00005, 1.00003, 0.99998, 0.99973,\n 0.99973, 0.99973, 0.99973, 1.0009, 0.99973, 0.99998, 1.00025, 0.99968,\n 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1,\n 0.9998, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002,\n 1.00026, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1, 0.99977,\n 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977,\n 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022,\n 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 1, 0.99973, 0.99973,\n 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99973, 1.06409, 1.00026, 0.99973, 0.99973,\n 0.99973, 0.99973, 1, 0.99973, 1, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,\n 0.99973, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1.0288,\n 0.99977, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973,\n 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973,\n 1.00022, 0.99973, 1.00022, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99924, 1.0006,\n 1.0006, 0.99946, 1.00034, 1, 0.99924, 1.00001, 1, 1, 0.99973, 0.99924,\n 0.99973, 0.99924, 0.99973, 1.06311, 0.99973, 1.00024, 0.99973, 0.99924,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.00041, 0.9998,\n 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1, 1.00016,\n 0.99977, 0.99998, 0.99977, 0.99998, 0.99977, 0.99998, 1.00001, 1, 1.00001, 1,\n 1.00001, 1, 1.00001, 1, 1.00026, 1.0006, 1.00026, 0.89547, 1.00026, 1.0006,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 0.99973, 1.00016, 0.99977, 1.00001, 1, 1.00001,\n 1.00026, 1, 1.00026, 1, 1.00026, 1, 0.99924, 0.99973, 1.00001, 0.99973, 1,\n 0.99982, 1.00022, 1.00026, 1.00001, 1, 1.00026, 1.0006, 0.99998, 0.99998,\n 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,\n 0.99998, 1.00001, 1, 1.00054, 0.99977, 1.00084, 1.00007, 0.99973, 1.00013,\n 0.99924, 1.00001, 1.00001, 0.99945, 0.91221, 1.00001, 1.00026, 0.99977,\n 1.00022, 1.0006, 1.00001, 1.00001, 0.99999, 0.99977, 0.99933, 1.00022,\n 1.00054, 1.00001, 1.00065, 1.00026, 1.00001, 1.0001, 1.00001, 1.00052, 1,\n 1.0006, 1.00001, 0.99945, 0.99897, 0.99968, 0.99924, 1.00036, 0.99945,\n 0.99949, 1, 1.0006, 0.99897, 0.99918, 0.99968, 0.99911, 0.99924, 1, 0.99962,\n 1.01487, 1, 1.0005, 0.99973, 1.00012, 1.00043, 1, 0.99995, 0.99994, 1.00036,\n 0.99947, 1.00019, 1.00063, 1.00025, 0.99924, 1.00036, 0.99973, 1.00036,\n 1.00025, 1.00001, 1.00001, 1.00027, 1.0001, 1.00068, 1.00001, 1.0006, 1.0006,\n 1, 1.00008, 0.99957, 0.99972, 0.9994, 0.99954, 0.99975, 1.00051, 1.00001,\n 1.00019, 1.00001, 1.0001, 0.99986, 1.00001, 1.00001, 1.00038, 0.99954,\n 0.99954, 0.9994, 1.00066, 0.99999, 0.99977, 1.00022, 1.00054, 1.00001,\n 0.99977, 1.00026, 0.99975, 1.0001, 1.00001, 0.99993, 0.9995, 0.99955, 1.00016,\n 0.99978, 0.99974, 1.00019, 1.00022, 0.99955, 1.00053, 0.99973, 1.00089,\n 1.00005, 0.99967, 1.00048, 0.99973, 1.00002, 1.00034, 0.99973, 0.99973,\n 0.99964, 1.00006, 1.00066, 0.99947, 0.99973, 0.98894, 0.99973, 1, 0.44898, 1,\n 0.99946, 1, 1.00039, 1.00082, 0.99991, 0.99991, 0.99985, 1.00022, 1.00023,\n 1.00061, 1.00006, 0.99966, 0.99973, 0.99973, 0.99973, 1.00019, 1.0008, 1,\n 0.99924, 0.99924, 0.99924, 0.99983, 1.00044, 0.99973, 0.99964, 0.98332, 1,\n 0.99973, 1, 1, 0.99962, 0.99895, 1.00016, 0.99977, 1.00016, 0.99977, 1.00016,\n 0.99977, 1.00001, 1, 1, 1, 0.99973, 1, 1, 0.99955, 0.99924, 0.99924, 0.99924,\n 0.99924, 0.99998, 0.99998, 0.99998, 0.99973, 0.99973, 0.99972, 1, 1, 1.00267,\n 0.99999, 0.99998, 0.99998, 1, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023,\n 0.99973, 1.00423, 0.99925, 0.99999, 1, 0.99991, 0.99984, 1.00002, 1.00002,\n 1.00002, 1.00002, 1.00049, 1, 1.00245, 1, 1, 1, 1, 0.96329, 1, 1.20985,\n 1.39713, 1.00003, 0.8254, 1.00015, 1, 1.00035, 1.00027, 1.00031, 1.00031,\n 1.00003, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861,\n 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.95317, 0.99999, 0.99999,\n 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962,\n 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst HelveticaItalicMetrics = { lineHeight: 1.35, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-Regular.ttf to have the same\n// metrics as NimbusSans-Regular.otf.\nconst HelveticaRegularFactors = [\n 0.76116, 1, 1, 1.0006, 1.0006, 1.00006, 0.99973, 0.99973, 0.99982, 1.00001,\n 1.00043, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 1.0006, 1, 1.00003, 1.00003, 1.00003, 0.99973, 0.99987,\n 1.00001, 1.00001, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977,\n 1.0006, 1, 1.00001, 0.99973, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022,\n 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001,\n 1.00026, 1.0006, 1.0006, 1.0006, 0.99949, 0.99973, 0.99998, 0.99973, 0.99973,\n 1, 0.99973, 0.99973, 1.0006, 0.99973, 0.99973, 0.99924, 0.99924, 1, 0.99924,\n 0.99999, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.0006, 0.99973, 1,\n 0.99977, 1, 1, 1, 1.00005, 1.0009, 1.00005, 1.00003, 0.99998, 0.99973,\n 0.99973, 0.99973, 0.99973, 1.0009, 0.99973, 0.99998, 1.00025, 0.99968,\n 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1,\n 0.9998, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002,\n 1.00026, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1, 0.99977,\n 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977,\n 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022,\n 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 1, 0.99973, 0.99973,\n 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99973, 1.06409, 1.00026, 0.99973, 0.99973,\n 0.99973, 0.99973, 1, 0.99973, 1, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,\n 0.99973, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1.04596,\n 0.99977, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973,\n 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973,\n 1.00022, 0.99973, 1.00022, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99924, 1.0006,\n 1.0006, 1.00019, 1.00034, 1, 0.99924, 1.00001, 1, 1, 0.99973, 0.99924,\n 0.99973, 0.99924, 0.99973, 1.02572, 0.99973, 1.00005, 0.99973, 0.99924,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99999, 0.9998,\n 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1, 1.00016,\n 0.99977, 0.99998, 0.99977, 0.99998, 0.99977, 0.99998, 1.00001, 1, 1.00001, 1,\n 1.00001, 1, 1.00001, 1, 1.00026, 1.0006, 1.00026, 0.84533, 1.00026, 1.0006,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 0.99973, 1.00016, 0.99977, 1.00001, 1, 1.00001,\n 1.00026, 1, 1.00026, 1, 1.00026, 1, 0.99924, 0.99973, 1.00001, 0.99973, 1,\n 0.99982, 1.00022, 1.00026, 1.00001, 1, 1.00026, 1.0006, 0.99998, 0.99998,\n 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,\n 0.99998, 0.99928, 1, 0.99977, 1.00013, 1.00055, 0.99947, 0.99945, 0.99941,\n 0.99924, 1.00001, 1.00001, 1.0004, 0.91621, 1.00001, 1.00026, 0.99977,\n 1.00022, 1.0006, 1.00001, 1.00005, 0.99999, 0.99977, 1.00015, 1.00022,\n 0.99977, 1.00001, 0.99973, 1.00026, 1.00001, 1.00019, 1.00001, 0.99946, 1,\n 1.0006, 1.00001, 0.99978, 1.00045, 0.99973, 0.99924, 1.00023, 0.99978,\n 0.99966, 1, 1.00065, 1.00045, 1.00019, 0.99973, 0.99973, 0.99924, 1, 1,\n 0.96499, 1, 1.00055, 0.99973, 1.00008, 1.00027, 1, 0.9997, 0.99995, 1.00023,\n 0.99933, 1.00019, 1.00015, 1.00031, 0.99924, 1.00023, 0.99973, 1.00023,\n 1.00031, 1.00001, 0.99928, 1.00029, 1.00092, 1.00035, 1.00001, 1.0006, 1.0006,\n 1, 0.99988, 0.99975, 1, 1.00082, 0.99561, 0.9996, 1.00035, 1.00001, 0.99962,\n 1.00001, 1.00092, 0.99964, 1.00001, 0.99963, 0.99999, 1.00035, 1.00035,\n 1.00082, 0.99962, 0.99999, 0.99977, 1.00022, 1.00035, 1.00001, 0.99977,\n 1.00026, 0.9996, 0.99967, 1.00001, 1.00034, 1.00074, 1.00054, 1.00053,\n 1.00063, 0.99971, 0.99962, 1.00035, 0.99975, 0.99977, 0.99973, 1.00043,\n 0.99953, 1.0007, 0.99915, 0.99973, 1.00008, 0.99892, 1.00073, 1.00073,\n 1.00114, 0.99915, 1.00073, 0.99955, 0.99973, 1.00092, 0.99973, 1, 0.99998, 1,\n 1.0003, 1, 1.00043, 1.00001, 0.99969, 1.0003, 1, 1.00035, 1.00001, 0.9995, 1,\n 1.00092, 0.99973, 0.99973, 0.99973, 1.0007, 0.9995, 1, 0.99924, 1.0006,\n 0.99924, 0.99972, 1.00062, 0.99973, 1.00114, 1.00073, 1, 0.99955, 1, 1,\n 1.00047, 0.99968, 1.00016, 0.99977, 1.00016, 0.99977, 1.00016, 0.99977,\n 1.00001, 1, 1, 1, 0.99973, 1, 1, 0.99955, 0.99924, 0.99924, 0.99924, 0.99924,\n 0.99998, 0.99998, 0.99998, 0.99973, 0.99973, 0.99972, 1, 1, 1.00267, 0.99999,\n 0.99998, 0.99998, 1, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973,\n 0.99971, 0.99925, 1.00023, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002,\n 1.00002, 1, 1, 1, 1, 1, 1, 1, 0.96329, 1, 1.20985, 1.39713, 1.00003, 0.8254,\n 1.00015, 1, 1.00035, 1.00027, 1.00031, 1.00031, 0.99915, 1.00031, 1.00031,\n 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026,\n 1.00026, 1.00026, 0.95317, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1,\n 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst HelveticaRegularMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\nexport {\n HelveticaBoldFactors,\n HelveticaBoldItalicFactors,\n HelveticaBoldItalicMetrics,\n HelveticaBoldMetrics,\n HelveticaItalicFactors,\n HelveticaItalicMetrics,\n HelveticaRegularFactors,\n HelveticaRegularMetrics,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Widths of glyphs in LiberationSans-Bold.ttf.\nconst LiberationSansBoldWidths = [\n 365, 0, 333, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278,\n 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333,\n 584, 584, 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556,\n 722, 611, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667,\n 611, 333, 278, 333, 584, 556, 333, 556, 611, 556, 611, 556, 333, 611, 611,\n 278, 278, 556, 278, 889, 611, 611, 611, 611, 389, 556, 333, 611, 556, 778,\n 556, 556, 500, 389, 280, 389, 584, 333, 556, 556, 556, 556, 280, 556, 333,\n 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 556, 278, 333,\n 333, 365, 556, 834, 834, 834, 611, 722, 722, 722, 722, 722, 722, 1000, 722,\n 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778,\n 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556,\n 889, 556, 556, 556, 556, 556, 278, 278, 278, 278, 611, 611, 611, 611, 611,\n 611, 611, 549, 611, 611, 611, 611, 611, 556, 611, 556, 722, 556, 722, 556,\n 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 719, 722, 611, 667,\n 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 611, 778, 611, 778, 611,\n 778, 611, 722, 611, 722, 611, 278, 278, 278, 278, 278, 278, 278, 278, 278,\n 278, 785, 556, 556, 278, 722, 556, 556, 611, 278, 611, 278, 611, 385, 611,\n 479, 611, 278, 722, 611, 722, 611, 722, 611, 708, 723, 611, 778, 611, 778,\n 611, 778, 611, 1000, 944, 722, 389, 722, 389, 722, 389, 667, 556, 667, 556,\n 667, 556, 667, 556, 611, 333, 611, 479, 611, 333, 722, 611, 722, 611, 722,\n 611, 722, 611, 722, 611, 722, 611, 944, 778, 667, 556, 667, 611, 500, 611,\n 500, 611, 500, 278, 556, 722, 556, 1000, 889, 778, 611, 667, 556, 611, 333,\n 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 465, 722, 333, 853, 906,\n 474, 825, 927, 838, 278, 722, 722, 601, 719, 667, 611, 722, 778, 278, 722,\n 667, 833, 722, 644, 778, 722, 667, 600, 611, 667, 821, 667, 809, 802, 278,\n 667, 615, 451, 611, 278, 582, 615, 610, 556, 606, 475, 460, 611, 541, 278,\n 558, 556, 612, 556, 445, 611, 766, 619, 520, 684, 446, 582, 715, 576, 753,\n 845, 278, 582, 611, 582, 845, 667, 669, 885, 567, 711, 667, 278, 276, 556,\n 1094, 1062, 875, 610, 722, 622, 719, 722, 719, 722, 567, 712, 667, 904, 626,\n 719, 719, 610, 702, 833, 722, 778, 719, 667, 722, 611, 622, 854, 667, 730,\n 703, 1005, 1019, 870, 979, 719, 711, 1031, 719, 556, 618, 615, 417, 635, 556,\n 709, 497, 615, 615, 500, 635, 740, 604, 611, 604, 611, 556, 490, 556, 875,\n 556, 615, 581, 833, 844, 729, 854, 615, 552, 854, 583, 556, 556, 611, 417,\n 552, 556, 278, 281, 278, 969, 906, 611, 500, 615, 556, 604, 778, 611, 487,\n 447, 944, 778, 944, 778, 944, 778, 667, 556, 333, 333, 556, 1000, 1000, 552,\n 278, 278, 278, 278, 500, 500, 500, 556, 556, 350, 1000, 1000, 240, 479, 333,\n 333, 604, 333, 167, 396, 556, 556, 1094, 556, 885, 489, 1115, 1000, 768, 600,\n 834, 834, 834, 834, 1000, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713,\n 584, 549, 713, 979, 722, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604,\n 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604,\n 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750,\n 611, 611, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 333, 333, 333,\n 333, 333, 333, 333, 333,\n];\n\n// Char code of glyphs in LiberationSans-Bold.ttf.\nconst LiberationSansBoldMapping = [\n -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,\n 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,\n 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,\n 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,\n 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167,\n 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,\n 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,\n 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,\n 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,\n 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,\n 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,\n 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,\n 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,\n 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,\n 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,\n 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,\n 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,\n 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,\n 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,\n 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538,\n 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904,\n 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,\n 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937,\n 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,\n 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967,\n 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030,\n 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,\n 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,\n 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,\n 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,\n 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,\n 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108,\n 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139,\n 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211,\n 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226,\n 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359,\n 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,\n 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735,\n 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474,\n 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555,\n 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568,\n 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600,\n 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650,\n 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792,\n 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n\n// Widths of glyphs in LiberationSans-BoldItalic.ttf.\nconst LiberationSansBoldItalicWidths = [\n 365, 0, 333, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278,\n 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333,\n 584, 584, 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556,\n 722, 611, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667,\n 611, 333, 278, 333, 584, 556, 333, 556, 611, 556, 611, 556, 333, 611, 611,\n 278, 278, 556, 278, 889, 611, 611, 611, 611, 389, 556, 333, 611, 556, 778,\n 556, 556, 500, 389, 280, 389, 584, 333, 556, 556, 556, 556, 280, 556, 333,\n 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 556, 278, 333,\n 333, 365, 556, 834, 834, 834, 611, 722, 722, 722, 722, 722, 722, 1000, 722,\n 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778,\n 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556,\n 889, 556, 556, 556, 556, 556, 278, 278, 278, 278, 611, 611, 611, 611, 611,\n 611, 611, 549, 611, 611, 611, 611, 611, 556, 611, 556, 722, 556, 722, 556,\n 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 740, 722, 611, 667,\n 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 611, 778, 611, 778, 611,\n 778, 611, 722, 611, 722, 611, 278, 278, 278, 278, 278, 278, 278, 278, 278,\n 278, 782, 556, 556, 278, 722, 556, 556, 611, 278, 611, 278, 611, 396, 611,\n 479, 611, 278, 722, 611, 722, 611, 722, 611, 708, 723, 611, 778, 611, 778,\n 611, 778, 611, 1000, 944, 722, 389, 722, 389, 722, 389, 667, 556, 667, 556,\n 667, 556, 667, 556, 611, 333, 611, 479, 611, 333, 722, 611, 722, 611, 722,\n 611, 722, 611, 722, 611, 722, 611, 944, 778, 667, 556, 667, 611, 500, 611,\n 500, 611, 500, 278, 556, 722, 556, 1000, 889, 778, 611, 667, 556, 611, 333,\n 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 722, 333, 854, 906,\n 473, 844, 930, 847, 278, 722, 722, 610, 671, 667, 611, 722, 778, 278, 722,\n 667, 833, 722, 657, 778, 718, 667, 590, 611, 667, 822, 667, 829, 781, 278,\n 667, 620, 479, 611, 278, 591, 620, 621, 556, 610, 479, 492, 611, 558, 278,\n 566, 556, 603, 556, 450, 611, 712, 605, 532, 664, 409, 591, 704, 578, 773,\n 834, 278, 591, 611, 591, 834, 667, 667, 886, 614, 719, 667, 278, 278, 556,\n 1094, 1042, 854, 622, 719, 677, 719, 722, 708, 722, 614, 722, 667, 927, 643,\n 719, 719, 615, 687, 833, 722, 778, 719, 667, 722, 611, 677, 781, 667, 729,\n 708, 979, 989, 854, 1000, 708, 719, 1042, 729, 556, 619, 604, 534, 618, 556,\n 736, 510, 611, 611, 507, 622, 740, 604, 611, 611, 611, 556, 889, 556, 885,\n 556, 646, 583, 889, 935, 707, 854, 594, 552, 865, 589, 556, 556, 611, 469,\n 563, 556, 278, 278, 278, 969, 906, 611, 507, 619, 556, 611, 778, 611, 575,\n 467, 944, 778, 944, 778, 944, 778, 667, 556, 333, 333, 556, 1000, 1000, 552,\n 278, 278, 278, 278, 500, 500, 500, 556, 556, 350, 1000, 1000, 240, 479, 333,\n 333, 604, 333, 167, 396, 556, 556, 1104, 556, 885, 516, 1146, 1000, 768, 600,\n 834, 834, 834, 834, 999, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713,\n 584, 549, 713, 979, 722, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604,\n 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604,\n 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750,\n 611, 611, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 333, 333, 333,\n 333, 333, 333, 333, 333,\n];\n\n// Char code of glyphs in LiberationSans-BoldItalic.ttf.\nconst LiberationSansBoldItalicMapping = [\n -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,\n 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,\n 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,\n 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,\n 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167,\n 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,\n 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,\n 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,\n 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,\n 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,\n 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,\n 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,\n 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,\n 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,\n 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,\n 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,\n 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,\n 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,\n 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,\n 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538,\n 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904,\n 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,\n 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937,\n 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,\n 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967,\n 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030,\n 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,\n 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,\n 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,\n 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,\n 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,\n 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108,\n 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139,\n 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211,\n 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226,\n 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359,\n 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,\n 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735,\n 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474,\n 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555,\n 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568,\n 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600,\n 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650,\n 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792,\n 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n\n// Widths of glyphs in LiberationSans-Italic.ttf.\nconst LiberationSansItalicWidths = [\n 365, 0, 333, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278,\n 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278,\n 584, 584, 584, 556, 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500,\n 667, 556, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667,\n 611, 278, 278, 278, 469, 556, 333, 556, 556, 500, 556, 556, 278, 556, 556,\n 222, 222, 500, 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722,\n 500, 500, 500, 334, 260, 334, 584, 333, 556, 556, 556, 556, 260, 556, 333,\n 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 537, 278, 333,\n 333, 365, 556, 834, 834, 834, 611, 667, 667, 667, 667, 667, 667, 1000, 722,\n 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778,\n 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556,\n 889, 500, 556, 556, 556, 556, 278, 278, 278, 278, 556, 556, 556, 556, 556,\n 556, 556, 549, 611, 556, 556, 556, 556, 500, 556, 500, 667, 556, 667, 556,\n 667, 556, 722, 500, 722, 500, 722, 500, 722, 500, 722, 625, 722, 556, 667,\n 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 556, 778, 556, 778, 556,\n 778, 556, 722, 556, 722, 556, 278, 278, 278, 278, 278, 278, 278, 222, 278,\n 278, 733, 444, 500, 222, 667, 500, 500, 556, 222, 556, 222, 556, 281, 556,\n 400, 556, 222, 722, 556, 722, 556, 722, 556, 615, 723, 556, 778, 556, 778,\n 556, 778, 556, 1000, 944, 722, 333, 722, 333, 722, 333, 667, 500, 667, 500,\n 667, 500, 667, 500, 611, 278, 611, 354, 611, 278, 722, 556, 722, 556, 722,\n 556, 722, 556, 722, 556, 722, 556, 944, 722, 667, 500, 667, 611, 500, 611,\n 500, 611, 500, 222, 556, 667, 556, 1000, 889, 778, 611, 667, 500, 611, 278,\n 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 667, 278, 789, 846,\n 389, 794, 865, 775, 222, 667, 667, 570, 671, 667, 611, 722, 778, 278, 667,\n 667, 833, 722, 648, 778, 725, 667, 600, 611, 667, 837, 667, 831, 761, 278,\n 667, 570, 439, 555, 222, 550, 570, 571, 500, 556, 439, 463, 555, 542, 222,\n 500, 492, 548, 500, 447, 556, 670, 573, 486, 603, 374, 550, 652, 546, 728,\n 779, 222, 550, 556, 550, 779, 667, 667, 843, 544, 708, 667, 278, 278, 500,\n 1066, 982, 844, 589, 715, 639, 724, 667, 651, 667, 544, 704, 667, 917, 614,\n 715, 715, 589, 686, 833, 722, 778, 725, 667, 722, 611, 639, 795, 667, 727,\n 673, 920, 923, 805, 886, 651, 694, 1022, 682, 556, 562, 522, 493, 553, 556,\n 688, 465, 556, 556, 472, 564, 686, 550, 556, 556, 556, 500, 833, 500, 835,\n 500, 572, 518, 830, 851, 621, 736, 526, 492, 752, 534, 556, 556, 556, 378,\n 496, 500, 222, 222, 222, 910, 828, 556, 472, 565, 500, 556, 778, 556, 492,\n 339, 944, 722, 944, 722, 944, 722, 667, 500, 333, 333, 556, 1000, 1000, 552,\n 222, 222, 222, 222, 333, 333, 333, 556, 556, 350, 1000, 1000, 188, 354, 333,\n 333, 500, 333, 167, 365, 556, 556, 1094, 556, 885, 323, 1083, 1000, 768, 600,\n 834, 834, 834, 834, 1000, 500, 998, 500, 1000, 500, 500, 494, 612, 823, 713,\n 584, 549, 713, 979, 719, 274, 549, 549, 584, 549, 549, 604, 584, 604, 604,\n 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604,\n 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750,\n 500, 500, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 294, 294, 324,\n 324, 316, 328, 398, 285,\n];\n\n// Char code of glyphs in LiberationSans-Italic.ttf.\nconst LiberationSansItalicMapping = [\n -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,\n 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,\n 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,\n 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,\n 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167,\n 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,\n 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,\n 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,\n 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,\n 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,\n 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,\n 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,\n 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,\n 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,\n 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,\n 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,\n 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,\n 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,\n 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,\n 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538,\n 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904,\n 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,\n 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937,\n 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,\n 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967,\n 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030,\n 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,\n 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,\n 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,\n 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,\n 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,\n 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108,\n 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139,\n 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211,\n 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226,\n 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359,\n 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,\n 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735,\n 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474,\n 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555,\n 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568,\n 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600,\n 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650,\n 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792,\n 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n\n// Widths of glyphs in LiberationSans-Regular.ttf.\nconst LiberationSansRegularWidths = [\n 365, 0, 333, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278,\n 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278,\n 584, 584, 584, 556, 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500,\n 667, 556, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667,\n 611, 278, 278, 278, 469, 556, 333, 556, 556, 500, 556, 556, 278, 556, 556,\n 222, 222, 500, 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722,\n 500, 500, 500, 334, 260, 334, 584, 333, 556, 556, 556, 556, 260, 556, 333,\n 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 537, 278, 333,\n 333, 365, 556, 834, 834, 834, 611, 667, 667, 667, 667, 667, 667, 1000, 722,\n 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778,\n 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556,\n 889, 500, 556, 556, 556, 556, 278, 278, 278, 278, 556, 556, 556, 556, 556,\n 556, 556, 549, 611, 556, 556, 556, 556, 500, 556, 500, 667, 556, 667, 556,\n 667, 556, 722, 500, 722, 500, 722, 500, 722, 500, 722, 615, 722, 556, 667,\n 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 556, 778, 556, 778, 556,\n 778, 556, 722, 556, 722, 556, 278, 278, 278, 278, 278, 278, 278, 222, 278,\n 278, 735, 444, 500, 222, 667, 500, 500, 556, 222, 556, 222, 556, 292, 556,\n 334, 556, 222, 722, 556, 722, 556, 722, 556, 604, 723, 556, 778, 556, 778,\n 556, 778, 556, 1000, 944, 722, 333, 722, 333, 722, 333, 667, 500, 667, 500,\n 667, 500, 667, 500, 611, 278, 611, 375, 611, 278, 722, 556, 722, 556, 722,\n 556, 722, 556, 722, 556, 722, 556, 944, 722, 667, 500, 667, 611, 500, 611,\n 500, 611, 500, 222, 556, 667, 556, 1000, 889, 778, 611, 667, 500, 611, 278,\n 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 667, 278, 784, 838,\n 384, 774, 855, 752, 222, 667, 667, 551, 668, 667, 611, 722, 778, 278, 667,\n 668, 833, 722, 650, 778, 722, 667, 618, 611, 667, 798, 667, 835, 748, 278,\n 667, 578, 446, 556, 222, 547, 578, 575, 500, 557, 446, 441, 556, 556, 222,\n 500, 500, 576, 500, 448, 556, 690, 569, 482, 617, 395, 547, 648, 525, 713,\n 781, 222, 547, 556, 547, 781, 667, 667, 865, 542, 719, 667, 278, 278, 500,\n 1057, 1010, 854, 583, 722, 635, 719, 667, 656, 667, 542, 677, 667, 923, 604,\n 719, 719, 583, 656, 833, 722, 778, 719, 667, 722, 611, 635, 760, 667, 740,\n 667, 917, 938, 792, 885, 656, 719, 1010, 722, 556, 573, 531, 365, 583, 556,\n 669, 458, 559, 559, 438, 583, 688, 552, 556, 542, 556, 500, 458, 500, 823,\n 500, 573, 521, 802, 823, 625, 719, 521, 510, 750, 542, 556, 556, 556, 365,\n 510, 500, 222, 278, 222, 906, 812, 556, 438, 559, 500, 552, 778, 556, 489,\n 411, 944, 722, 944, 722, 944, 722, 667, 500, 333, 333, 556, 1000, 1000, 552,\n 222, 222, 222, 222, 333, 333, 333, 556, 556, 350, 1000, 1000, 188, 354, 333,\n 333, 500, 333, 167, 365, 556, 556, 1094, 556, 885, 323, 1073, 1000, 768, 600,\n 834, 834, 834, 834, 1000, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713,\n 584, 549, 713, 979, 719, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604,\n 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604,\n 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750,\n 500, 500, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 294, 294, 324,\n 324, 316, 328, 398, 285,\n];\n\n// Char code of glyphs in LiberationSans-Regular.ttf.\nconst LiberationSansRegularMapping = [\n -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,\n 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,\n 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,\n 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,\n 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167,\n 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,\n 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,\n 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,\n 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,\n 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,\n 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,\n 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,\n 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,\n 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,\n 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,\n 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,\n 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,\n 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,\n 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,\n 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538,\n 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904,\n 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,\n 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937,\n 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,\n 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967,\n 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030,\n 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,\n 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,\n 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,\n 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,\n 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,\n 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108,\n 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139,\n 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211,\n 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226,\n 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359,\n 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,\n 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735,\n 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474,\n 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555,\n 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568,\n 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600,\n 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650,\n 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792,\n 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n\nexport {\n LiberationSansBoldItalicMapping,\n LiberationSansBoldItalicWidths,\n LiberationSansBoldMapping,\n LiberationSansBoldWidths,\n LiberationSansItalicMapping,\n LiberationSansItalicWidths,\n LiberationSansRegularMapping,\n LiberationSansRegularWidths,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Factors to rescale LiberationSans-Bold.ttf to have the same\n// metrics as MyriadPro-Bold.otf.\nconst MyriadProBoldFactors = [\n 1.36898, 1, 1, 0.72706, 0.80479, 0.83734, 0.98894, 0.99793, 0.9897, 0.93884,\n 0.86209, 0.94292, 0.94292, 1.16661, 1.02058, 0.93582, 0.96694, 0.93582,\n 1.19137, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793,\n 0.99793, 0.99793, 0.99793, 0.78076, 0.78076, 1.02058, 1.02058, 1.02058,\n 0.72851, 0.78966, 0.90838, 0.83637, 0.82391, 0.96376, 0.80061, 0.86275,\n 0.8768, 0.95407, 1.0258, 0.73901, 0.85022, 0.83655, 1.0156, 0.95546, 0.92179,\n 0.87107, 0.92179, 0.82114, 0.8096, 0.89713, 0.94438, 0.95353, 0.94083,\n 0.91905, 0.90406, 0.9446, 0.94292, 1.18777, 0.94292, 1.02058, 0.89903,\n 0.90088, 0.94938, 0.97898, 0.81093, 0.97571, 0.94938, 1.024, 0.9577, 0.95933,\n 0.98621, 1.0474, 0.97455, 0.98981, 0.9672, 0.95933, 0.9446, 0.97898, 0.97407,\n 0.97646, 0.78036, 1.10208, 0.95442, 0.95298, 0.97579, 0.9332, 0.94039, 0.938,\n 0.80687, 1.01149, 0.80687, 1.02058, 0.80479, 0.99793, 0.99793, 0.99793,\n 0.99793, 1.01149, 1.00872, 0.90088, 0.91882, 1.0213, 0.8361, 1.02058, 0.62295,\n 0.54324, 0.89022, 1.08595, 1, 1, 0.90088, 1, 0.97455, 0.93582, 0.90088, 1,\n 1.05686, 0.8361, 0.99642, 0.99642, 0.99642, 0.72851, 0.90838, 0.90838,\n 0.90838, 0.90838, 0.90838, 0.90838, 0.868, 0.82391, 0.80061, 0.80061, 0.80061,\n 0.80061, 1.0258, 1.0258, 1.0258, 1.0258, 0.97484, 0.95546, 0.92179, 0.92179,\n 0.92179, 0.92179, 0.92179, 1.02058, 0.92179, 0.94438, 0.94438, 0.94438,\n 0.94438, 0.90406, 0.86958, 0.98225, 0.94938, 0.94938, 0.94938, 0.94938,\n 0.94938, 0.94938, 0.9031, 0.81093, 0.94938, 0.94938, 0.94938, 0.94938,\n 0.98621, 0.98621, 0.98621, 0.98621, 0.93969, 0.95933, 0.9446, 0.9446, 0.9446,\n 0.9446, 0.9446, 1.08595, 0.9446, 0.95442, 0.95442, 0.95442, 0.95442, 0.94039,\n 0.97898, 0.94039, 0.90838, 0.94938, 0.90838, 0.94938, 0.90838, 0.94938,\n 0.82391, 0.81093, 0.82391, 0.81093, 0.82391, 0.81093, 0.82391, 0.81093,\n 0.96376, 0.84313, 0.97484, 0.97571, 0.80061, 0.94938, 0.80061, 0.94938,\n 0.80061, 0.94938, 0.80061, 0.94938, 0.80061, 0.94938, 0.8768, 0.9577, 0.8768,\n 0.9577, 0.8768, 0.9577, 1, 1, 0.95407, 0.95933, 0.97069, 0.95933, 1.0258,\n 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621,\n 0.887, 1.01591, 0.73901, 1.0474, 1, 1, 0.97455, 0.83655, 0.98981, 1, 1,\n 0.83655, 0.73977, 0.83655, 0.73903, 0.84638, 1.033, 0.95546, 0.95933, 1, 1,\n 0.95546, 0.95933, 0.8271, 0.95417, 0.95933, 0.92179, 0.9446, 0.92179, 0.9446,\n 0.92179, 0.9446, 0.936, 0.91964, 0.82114, 0.97646, 1, 1, 0.82114, 0.97646,\n 0.8096, 0.78036, 0.8096, 0.78036, 1, 1, 0.8096, 0.78036, 1, 1, 0.89713,\n 0.77452, 0.89713, 1.10208, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438,\n 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94083,\n 0.97579, 0.90406, 0.94039, 0.90406, 0.9446, 0.938, 0.9446, 0.938, 0.9446,\n 0.938, 1, 0.99793, 0.90838, 0.94938, 0.868, 0.9031, 0.92179, 0.9446, 1, 1,\n 0.89713, 1.10208, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088,\n 0.90088, 0.90088, 0.90088, 0.90989, 0.9358, 0.91945, 0.83181, 0.75261,\n 0.87992, 0.82976, 0.96034, 0.83689, 0.97268, 1.0078, 0.90838, 0.83637, 0.8019,\n 0.90157, 0.80061, 0.9446, 0.95407, 0.92436, 1.0258, 0.85022, 0.97153, 1.0156,\n 0.95546, 0.89192, 0.92179, 0.92361, 0.87107, 0.96318, 0.89713, 0.93704,\n 0.95638, 0.91905, 0.91709, 0.92796, 1.0258, 0.93704, 0.94836, 1.0373, 0.95933,\n 1.0078, 0.95871, 0.94836, 0.96174, 0.92601, 0.9498, 0.98607, 0.95776, 0.95933,\n 1.05453, 1.0078, 0.98275, 0.9314, 0.95617, 0.91701, 1.05993, 0.9446, 0.78367,\n 0.9553, 1, 0.86832, 1.0128, 0.95871, 0.99394, 0.87548, 0.96361, 0.86774,\n 1.0078, 0.95871, 0.9446, 0.95871, 0.86774, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.94083, 0.97579, 0.94083, 0.97579, 0.94083,\n 0.97579, 0.90406, 0.94039, 0.96694, 1, 0.89903, 1, 1, 1, 0.93582, 0.93582,\n 0.93582, 1, 0.908, 0.908, 0.918, 0.94219, 0.94219, 0.96544, 1, 1.285, 1, 1,\n 0.81079, 0.81079, 1, 1, 0.74854, 1, 1, 1, 1, 0.99793, 1, 1, 1, 0.65, 1,\n 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.17173, 1, 0.80535, 0.76169,\n 1.02058, 1.0732, 1.05486, 1, 1, 1.30692, 1.08595, 1.08595, 1, 1.08595,\n 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.16161, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst MyriadProBoldMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-BoldItalic.ttf to have the same\n// metrics as MyriadPro-BoldIt.otf.\nconst MyriadProBoldItalicFactors = [\n 1.36898, 1, 1, 0.66227, 0.80779, 0.81625, 0.97276, 0.97276, 0.97733, 0.92222,\n 0.83266, 0.94292, 0.94292, 1.16148, 1.02058, 0.93582, 0.96694, 0.93582,\n 1.17337, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276,\n 0.97276, 0.97276, 0.97276, 0.78076, 0.78076, 1.02058, 1.02058, 1.02058,\n 0.71541, 0.76813, 0.85576, 0.80591, 0.80729, 0.94299, 0.77512, 0.83655,\n 0.86523, 0.92222, 0.98621, 0.71743, 0.81698, 0.79726, 0.98558, 0.92222,\n 0.90637, 0.83809, 0.90637, 0.80729, 0.76463, 0.86275, 0.90699, 0.91605,\n 0.9154, 0.85308, 0.85458, 0.90531, 0.94292, 1.21296, 0.94292, 1.02058,\n 0.89903, 1.18616, 0.99613, 0.91677, 0.78216, 0.91677, 0.90083, 0.98796,\n 0.9135, 0.92168, 0.95381, 0.98981, 0.95298, 0.95381, 0.93459, 0.92168,\n 0.91513, 0.92004, 0.91677, 0.95077, 0.748, 1.04502, 0.91677, 0.92061, 0.94236,\n 0.89544, 0.89364, 0.9, 0.80687, 0.8578, 0.80687, 1.02058, 0.80779, 0.97276,\n 0.97276, 0.97276, 0.97276, 0.8578, 0.99973, 1.18616, 0.91339, 1.08074,\n 0.82891, 1.02058, 0.55509, 0.71526, 0.89022, 1.08595, 1, 1, 1.18616, 1,\n 0.96736, 0.93582, 1.18616, 1, 1.04864, 0.82711, 0.99043, 0.99043, 0.99043,\n 0.71541, 0.85576, 0.85576, 0.85576, 0.85576, 0.85576, 0.85576, 0.845, 0.80729,\n 0.77512, 0.77512, 0.77512, 0.77512, 0.98621, 0.98621, 0.98621, 0.98621,\n 0.95961, 0.92222, 0.90637, 0.90637, 0.90637, 0.90637, 0.90637, 1.02058,\n 0.90251, 0.90699, 0.90699, 0.90699, 0.90699, 0.85458, 0.83659, 0.94951,\n 0.99613, 0.99613, 0.99613, 0.99613, 0.99613, 0.99613, 0.85811, 0.78216,\n 0.90083, 0.90083, 0.90083, 0.90083, 0.95381, 0.95381, 0.95381, 0.95381,\n 0.9135, 0.92168, 0.91513, 0.91513, 0.91513, 0.91513, 0.91513, 1.08595,\n 0.91677, 0.91677, 0.91677, 0.91677, 0.91677, 0.89364, 0.92332, 0.89364,\n 0.85576, 0.99613, 0.85576, 0.99613, 0.85576, 0.99613, 0.80729, 0.78216,\n 0.80729, 0.78216, 0.80729, 0.78216, 0.80729, 0.78216, 0.94299, 0.76783,\n 0.95961, 0.91677, 0.77512, 0.90083, 0.77512, 0.90083, 0.77512, 0.90083,\n 0.77512, 0.90083, 0.77512, 0.90083, 0.86523, 0.9135, 0.86523, 0.9135, 0.86523,\n 0.9135, 1, 1, 0.92222, 0.92168, 0.92222, 0.92168, 0.98621, 0.95381, 0.98621,\n 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.86036,\n 0.97096, 0.71743, 0.98981, 1, 1, 0.95298, 0.79726, 0.95381, 1, 1, 0.79726,\n 0.6894, 0.79726, 0.74321, 0.81691, 1.0006, 0.92222, 0.92168, 1, 1, 0.92222,\n 0.92168, 0.79464, 0.92098, 0.92168, 0.90637, 0.91513, 0.90637, 0.91513,\n 0.90637, 0.91513, 0.909, 0.87514, 0.80729, 0.95077, 1, 1, 0.80729, 0.95077,\n 0.76463, 0.748, 0.76463, 0.748, 1, 1, 0.76463, 0.748, 1, 1, 0.86275, 0.72651,\n 0.86275, 1.04502, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677,\n 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.9154, 0.94236,\n 0.85458, 0.89364, 0.85458, 0.90531, 0.9, 0.90531, 0.9, 0.90531, 0.9, 1,\n 0.97276, 0.85576, 0.99613, 0.845, 0.85811, 0.90251, 0.91677, 1, 1, 0.86275,\n 1.04502, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616,\n 1.18616, 1.18616, 1.00899, 1.30628, 0.85576, 0.80178, 0.66862, 0.7927,\n 0.69323, 0.88127, 0.72459, 0.89711, 0.95381, 0.85576, 0.80591, 0.7805,\n 0.94729, 0.77512, 0.90531, 0.92222, 0.90637, 0.98621, 0.81698, 0.92655,\n 0.98558, 0.92222, 0.85359, 0.90637, 0.90976, 0.83809, 0.94523, 0.86275,\n 0.83509, 0.93157, 0.85308, 0.83392, 0.92346, 0.98621, 0.83509, 0.92886,\n 0.91324, 0.92168, 0.95381, 0.90646, 0.92886, 0.90557, 0.86847, 0.90276,\n 0.91324, 0.86842, 0.92168, 0.99531, 0.95381, 0.9224, 0.85408, 0.92699,\n 0.86847, 1.0051, 0.91513, 0.80487, 0.93481, 1, 0.88159, 1.05214, 0.90646,\n 0.97355, 0.81539, 0.89398, 0.85923, 0.95381, 0.90646, 0.91513, 0.90646,\n 0.85923, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 0.9154, 0.94236, 0.9154, 0.94236, 0.9154, 0.94236, 0.85458, 0.89364, 0.96694,\n 1, 0.89903, 1, 1, 1, 0.91782, 0.91782, 0.91782, 1, 0.896, 0.896, 0.896,\n 0.9332, 0.9332, 0.95973, 1, 1.26, 1, 1, 0.80479, 0.80178, 1, 1, 0.85633, 1, 1,\n 1, 1, 0.97276, 1, 1, 1, 0.698, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1.14542, 1, 0.79199, 0.78694, 1.02058, 1.03493, 1.05486, 1, 1, 1.23026,\n 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.20006, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst MyriadProBoldItalicMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-Italic.ttf to have the same\n// metrics as MyriadPro-It.otf.\nconst MyriadProItalicFactors = [\n 1.36898, 1, 1, 0.65507, 0.84943, 0.85639, 0.88465, 0.88465, 0.86936, 0.88307,\n 0.86948, 0.85283, 0.85283, 1.06383, 1.02058, 0.75945, 0.9219, 0.75945,\n 1.17337, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465,\n 0.88465, 0.88465, 0.88465, 0.75945, 0.75945, 1.02058, 1.02058, 1.02058,\n 0.69046, 0.70926, 0.85158, 0.77812, 0.76852, 0.89591, 0.70466, 0.76125,\n 0.80094, 0.86822, 0.83864, 0.728, 0.77212, 0.79475, 0.93637, 0.87514, 0.8588,\n 0.76013, 0.8588, 0.72421, 0.69866, 0.77598, 0.85991, 0.80811, 0.87832,\n 0.78112, 0.77512, 0.8562, 1.0222, 1.18417, 1.0222, 1.27014, 0.89903, 1.15012,\n 0.93859, 0.94399, 0.846, 0.94399, 0.81453, 1.0186, 0.94219, 0.96017, 1.03075,\n 1.02175, 0.912, 1.03075, 0.96998, 0.96017, 0.93859, 0.94399, 0.94399, 0.95493,\n 0.746, 1.12658, 0.94578, 0.91, 0.979, 0.882, 0.882, 0.83, 0.85034, 0.83537,\n 0.85034, 1.02058, 0.70869, 0.88465, 0.88465, 0.88465, 0.88465, 0.83537,\n 0.90083, 1.15012, 0.9161, 0.94565, 0.73541, 1.02058, 0.53609, 0.69353,\n 0.79519, 1.08595, 1, 1, 1.15012, 1, 0.91974, 0.75945, 1.15012, 1, 0.9446,\n 0.73361, 0.9005, 0.9005, 0.9005, 0.62864, 0.85158, 0.85158, 0.85158, 0.85158,\n 0.85158, 0.85158, 0.773, 0.76852, 0.70466, 0.70466, 0.70466, 0.70466, 0.83864,\n 0.83864, 0.83864, 0.83864, 0.90561, 0.87514, 0.8588, 0.8588, 0.8588, 0.8588,\n 0.8588, 1.02058, 0.85751, 0.85991, 0.85991, 0.85991, 0.85991, 0.77512,\n 0.76013, 0.88075, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859,\n 0.8075, 0.846, 0.81453, 0.81453, 0.81453, 0.81453, 0.82424, 0.82424, 0.82424,\n 0.82424, 0.9278, 0.96017, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859,\n 1.08595, 0.8562, 0.94578, 0.94578, 0.94578, 0.94578, 0.882, 0.94578, 0.882,\n 0.85158, 0.93859, 0.85158, 0.93859, 0.85158, 0.93859, 0.76852, 0.846, 0.76852,\n 0.846, 0.76852, 0.846, 0.76852, 0.846, 0.89591, 0.8544, 0.90561, 0.94399,\n 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453,\n 0.70466, 0.81453, 0.80094, 0.94219, 0.80094, 0.94219, 0.80094, 0.94219, 1, 1,\n 0.86822, 0.96017, 0.86822, 0.96017, 0.83864, 0.82424, 0.83864, 0.82424,\n 0.83864, 0.82424, 0.83864, 1.03075, 0.83864, 0.82424, 0.81402, 1.02738, 0.728,\n 1.02175, 1, 1, 0.912, 0.79475, 1.03075, 1, 1, 0.79475, 0.83911, 0.79475,\n 0.66266, 0.80553, 1.06676, 0.87514, 0.96017, 1, 1, 0.87514, 0.96017, 0.86865,\n 0.87396, 0.96017, 0.8588, 0.93859, 0.8588, 0.93859, 0.8588, 0.93859, 0.867,\n 0.84759, 0.72421, 0.95493, 1, 1, 0.72421, 0.95493, 0.69866, 0.746, 0.69866,\n 0.746, 1, 1, 0.69866, 0.746, 1, 1, 0.77598, 0.88417, 0.77598, 1.12658,\n 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578,\n 0.85991, 0.94578, 0.85991, 0.94578, 0.87832, 0.979, 0.77512, 0.882, 0.77512,\n 0.8562, 0.83, 0.8562, 0.83, 0.8562, 0.83, 1, 0.88465, 0.85158, 0.93859, 0.773,\n 0.8075, 0.85751, 0.8562, 1, 1, 0.77598, 1.12658, 1.15012, 1.15012, 1.15012,\n 1.15012, 1.15012, 1.15313, 1.15012, 1.15012, 1.15012, 1.08106, 1.03901,\n 0.85158, 0.77025, 0.62264, 0.7646, 0.65351, 0.86026, 0.69461, 0.89947,\n 1.03075, 0.85158, 0.77812, 0.76449, 0.88836, 0.70466, 0.8562, 0.86822, 0.8588,\n 0.83864, 0.77212, 0.85308, 0.93637, 0.87514, 0.82352, 0.8588, 0.85701,\n 0.76013, 0.89058, 0.77598, 0.8156, 0.82565, 0.78112, 0.77899, 0.89386,\n 0.83864, 0.8156, 0.9486, 0.92388, 0.96186, 1.03075, 0.91123, 0.9486, 0.93298,\n 0.878, 0.93942, 0.92388, 0.84596, 0.96186, 0.95119, 1.03075, 0.922, 0.88787,\n 0.95829, 0.88, 0.93559, 0.93859, 0.78815, 0.93758, 1, 0.89217, 1.03737,\n 0.91123, 0.93969, 0.77487, 0.85769, 0.86799, 1.03075, 0.91123, 0.93859,\n 0.91123, 0.86799, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 0.87832, 0.979, 0.87832, 0.979, 0.87832, 0.979, 0.77512, 0.882, 0.9219,\n 1, 0.89903, 1, 1, 1, 0.87321, 0.87321, 0.87321, 1, 1.027, 1.027, 1.027,\n 0.86847, 0.86847, 0.79121, 1, 1.124, 1, 1, 0.73572, 0.73572, 1, 1, 0.85034, 1,\n 1, 1, 1, 0.88465, 1, 1, 1, 0.669, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1.04828, 1, 0.74948, 0.75187, 1.02058, 0.98391, 1.02119, 1, 1, 1.06233,\n 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05233, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst MyriadProItalicMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-Regular.ttf to have the same\n// metrics as MyriadPro-Regular.otf.\nconst MyriadProRegularFactors = [\n 1.36898, 1, 1, 0.76305, 0.82784, 0.94935, 0.89364, 0.92241, 0.89073, 0.90706,\n 0.98472, 0.85283, 0.85283, 1.0664, 1.02058, 0.74505, 0.9219, 0.74505, 1.23456,\n 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241,\n 0.92241, 0.92241, 0.74505, 0.74505, 1.02058, 1.02058, 1.02058, 0.73002,\n 0.72601, 0.91755, 0.8126, 0.80314, 0.92222, 0.73764, 0.79726, 0.83051,\n 0.90284, 0.86023, 0.74, 0.8126, 0.84869, 0.96518, 0.91115, 0.8858, 0.79761,\n 0.8858, 0.74498, 0.73914, 0.81363, 0.89591, 0.83659, 0.89633, 0.85608, 0.8111,\n 0.90531, 1.0222, 1.22736, 1.0222, 1.27014, 0.89903, 0.90088, 0.86667, 1.0231,\n 0.896, 1.01411, 0.90083, 1.05099, 1.00512, 0.99793, 1.05326, 1.09377, 0.938,\n 1.06226, 1.00119, 0.99793, 0.98714, 1.0231, 1.01231, 0.98196, 0.792, 1.19137,\n 0.99074, 0.962, 1.01915, 0.926, 0.942, 0.856, 0.85034, 0.92006, 0.85034,\n 1.02058, 0.69067, 0.92241, 0.92241, 0.92241, 0.92241, 0.92006, 0.9332,\n 0.90088, 0.91882, 0.93484, 0.75339, 1.02058, 0.56866, 0.54324, 0.79519,\n 1.08595, 1, 1, 0.90088, 1, 0.95325, 0.74505, 0.90088, 1, 0.97198, 0.75339,\n 0.91009, 0.91009, 0.91009, 0.66466, 0.91755, 0.91755, 0.91755, 0.91755,\n 0.91755, 0.91755, 0.788, 0.80314, 0.73764, 0.73764, 0.73764, 0.73764, 0.86023,\n 0.86023, 0.86023, 0.86023, 0.92915, 0.91115, 0.8858, 0.8858, 0.8858, 0.8858,\n 0.8858, 1.02058, 0.8858, 0.89591, 0.89591, 0.89591, 0.89591, 0.8111, 0.79611,\n 0.89713, 0.86667, 0.86667, 0.86667, 0.86667, 0.86667, 0.86667, 0.86936, 0.896,\n 0.90083, 0.90083, 0.90083, 0.90083, 0.84224, 0.84224, 0.84224, 0.84224,\n 0.97276, 0.99793, 0.98714, 0.98714, 0.98714, 0.98714, 0.98714, 1.08595,\n 0.89876, 0.99074, 0.99074, 0.99074, 0.99074, 0.942, 1.0231, 0.942, 0.91755,\n 0.86667, 0.91755, 0.86667, 0.91755, 0.86667, 0.80314, 0.896, 0.80314, 0.896,\n 0.80314, 0.896, 0.80314, 0.896, 0.92222, 0.93372, 0.92915, 1.01411, 0.73764,\n 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764,\n 0.90083, 0.83051, 1.00512, 0.83051, 1.00512, 0.83051, 1.00512, 1, 1, 0.90284,\n 0.99793, 0.90976, 0.99793, 0.86023, 0.84224, 0.86023, 0.84224, 0.86023,\n 0.84224, 0.86023, 1.05326, 0.86023, 0.84224, 0.82873, 1.07469, 0.74, 1.09377,\n 1, 1, 0.938, 0.84869, 1.06226, 1, 1, 0.84869, 0.83704, 0.84869, 0.81441,\n 0.85588, 1.08927, 0.91115, 0.99793, 1, 1, 0.91115, 0.99793, 0.91887, 0.90991,\n 0.99793, 0.8858, 0.98714, 0.8858, 0.98714, 0.8858, 0.98714, 0.894, 0.91434,\n 0.74498, 0.98196, 1, 1, 0.74498, 0.98196, 0.73914, 0.792, 0.73914, 0.792, 1,\n 1, 0.73914, 0.792, 1, 1, 0.81363, 0.904, 0.81363, 1.19137, 0.89591, 0.99074,\n 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074,\n 0.89591, 0.99074, 0.89633, 1.01915, 0.8111, 0.942, 0.8111, 0.90531, 0.856,\n 0.90531, 0.856, 0.90531, 0.856, 1, 0.92241, 0.91755, 0.86667, 0.788, 0.86936,\n 0.8858, 0.89876, 1, 1, 0.81363, 1.19137, 0.90088, 0.90088, 0.90088, 0.90088,\n 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90388, 1.03901, 0.92138,\n 0.78105, 0.7154, 0.86169, 0.80513, 0.94007, 0.82528, 0.98612, 1.06226,\n 0.91755, 0.8126, 0.81884, 0.92819, 0.73764, 0.90531, 0.90284, 0.8858, 0.86023,\n 0.8126, 0.91172, 0.96518, 0.91115, 0.83089, 0.8858, 0.87791, 0.79761, 0.89297,\n 0.81363, 0.88157, 0.89992, 0.85608, 0.81992, 0.94307, 0.86023, 0.88157,\n 0.95308, 0.98699, 0.99793, 1.06226, 0.95817, 0.95308, 0.97358, 0.928, 0.98088,\n 0.98699, 0.92761, 0.99793, 0.96017, 1.06226, 0.986, 0.944, 0.95978, 0.938,\n 0.96705, 0.98714, 0.80442, 0.98972, 1, 0.89762, 1.04552, 0.95817, 0.99007,\n 0.87064, 0.91879, 0.88888, 1.06226, 0.95817, 0.98714, 0.95817, 0.88888, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89633, 1.01915,\n 0.89633, 1.01915, 0.89633, 1.01915, 0.8111, 0.942, 0.9219, 1, 0.89903, 1, 1,\n 1, 0.93173, 0.93173, 0.93173, 1, 1.06304, 1.06304, 1.06904, 0.89903, 0.89903,\n 0.80549, 1, 1.156, 1, 1, 0.76575, 0.76575, 1, 1, 0.72458, 1, 1, 1, 1, 0.92241,\n 1, 1, 1, 0.619, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.07257, 1,\n 0.74705, 0.71119, 1.02058, 1.024, 1.02119, 1, 1, 1.1536, 1.08595, 1.08595, 1,\n 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05638, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1,\n];\nconst MyriadProRegularMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\nexport {\n MyriadProBoldFactors,\n MyriadProBoldItalicFactors,\n MyriadProBoldItalicMetrics,\n MyriadProBoldMetrics,\n MyriadProItalicFactors,\n MyriadProItalicMetrics,\n MyriadProRegularFactors,\n MyriadProRegularMetrics,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Factors to rescale LiberationSans-Bold.ttf to have the same\n// metrics as segoeuib.ttf.\nconst SegoeuiBoldFactors = [\n 1.76738, 1, 1, 0.99297, 0.9824, 1.04016, 1.06497, 1.03424, 0.97529, 1.17647,\n 1.23203, 1.1085, 1.1085, 1.16939, 1.2107, 0.9754, 1.21408, 0.9754, 1.59578,\n 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424,\n 1.03424, 1.03424, 0.81378, 0.81378, 1.2107, 1.2107, 1.2107, 0.71703, 0.97847,\n 0.97363, 0.88776, 0.8641, 1.02096, 0.79795, 0.85132, 0.914, 1.06085, 1.1406,\n 0.8007, 0.89858, 0.83693, 1.14889, 1.09398, 0.97489, 0.92094, 0.97489,\n 0.90399, 0.84041, 0.95923, 1.00135, 1, 1.06467, 0.98243, 0.90996, 0.99361,\n 1.1085, 1.56942, 1.1085, 1.2107, 0.74627, 0.94282, 0.96752, 1.01519, 0.86304,\n 1.01359, 0.97278, 1.15103, 1.01359, 0.98561, 1.02285, 1.02285, 1.00527,\n 1.02285, 1.0302, 0.99041, 1.0008, 1.01519, 1.01359, 1.02258, 0.79104, 1.16862,\n 0.99041, 0.97454, 1.02511, 0.99298, 0.96752, 0.95801, 0.94856, 1.16579,\n 0.94856, 1.2107, 0.9824, 1.03424, 1.03424, 1, 1.03424, 1.16579, 0.8727,\n 1.3871, 1.18622, 1.10818, 1.04478, 1.2107, 1.18622, 0.75155, 0.94994, 1.28826,\n 1.21408, 1.21408, 0.91056, 1, 0.91572, 0.9754, 0.64663, 1.18328, 1.24866,\n 1.04478, 1.14169, 1.15749, 1.17389, 0.71703, 0.97363, 0.97363, 0.97363,\n 0.97363, 0.97363, 0.97363, 0.93506, 0.8641, 0.79795, 0.79795, 0.79795,\n 0.79795, 1.1406, 1.1406, 1.1406, 1.1406, 1.02096, 1.09398, 0.97426, 0.97426,\n 0.97426, 0.97426, 0.97426, 1.2107, 0.97489, 1.00135, 1.00135, 1.00135,\n 1.00135, 0.90996, 0.92094, 1.02798, 0.96752, 0.96752, 0.96752, 0.96752,\n 0.96752, 0.96752, 0.93136, 0.86304, 0.97278, 0.97278, 0.97278, 0.97278,\n 1.02285, 1.02285, 1.02285, 1.02285, 0.97122, 0.99041, 1, 1, 1, 1, 1, 1.28826,\n 1.0008, 0.99041, 0.99041, 0.99041, 0.99041, 0.96752, 1.01519, 0.96752,\n 0.97363, 0.96752, 0.97363, 0.96752, 0.97363, 0.96752, 0.8641, 0.86304, 0.8641,\n 0.86304, 0.8641, 0.86304, 0.8641, 0.86304, 1.02096, 1.03057, 1.02096, 1.03517,\n 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278,\n 0.79795, 0.97278, 0.914, 1.01359, 0.914, 1.01359, 0.914, 1.01359, 1, 1,\n 1.06085, 0.98561, 1.06085, 1.00879, 1.1406, 1.02285, 1.1406, 1.02285, 1.1406,\n 1.02285, 1.1406, 1.02285, 1.1406, 1.02285, 0.97138, 1.08692, 0.8007, 1.02285,\n 1, 1, 1.00527, 0.83693, 1.02285, 1, 1, 0.83693, 0.9455, 0.83693, 0.90418,\n 0.83693, 1.13005, 1.09398, 0.99041, 1, 1, 1.09398, 0.99041, 0.96692, 1.09251,\n 0.99041, 0.97489, 1.0008, 0.97489, 1.0008, 0.97489, 1.0008, 0.93994, 0.97931,\n 0.90399, 1.02258, 1, 1, 0.90399, 1.02258, 0.84041, 0.79104, 0.84041, 0.79104,\n 0.84041, 0.79104, 0.84041, 0.79104, 1, 1, 0.95923, 1.07034, 0.95923, 1.16862,\n 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041,\n 1.00135, 0.99041, 1.00135, 0.99041, 1.06467, 1.02511, 0.90996, 0.96752,\n 0.90996, 0.99361, 0.95801, 0.99361, 0.95801, 0.99361, 0.95801, 1.07733,\n 1.03424, 0.97363, 0.96752, 0.93506, 0.93136, 0.97489, 1.0008, 1, 1, 0.95923,\n 1.16862, 1.15103, 1.15103, 1.01173, 1.03959, 0.75953, 0.81378, 0.79912,\n 1.15103, 1.21994, 0.95161, 0.87815, 1.01149, 0.81525, 0.7676, 0.98167,\n 1.01134, 1.02546, 0.84097, 1.03089, 1.18102, 0.97363, 0.88776, 0.85134,\n 0.97826, 0.79795, 0.99361, 1.06085, 0.97489, 1.1406, 0.89858, 1.0388, 1.14889,\n 1.09398, 0.86039, 0.97489, 1.0595, 0.92094, 0.94793, 0.95923, 0.90996,\n 0.99346, 0.98243, 1.02112, 0.95493, 1.1406, 0.90996, 1.03574, 1.02597, 1.0008,\n 1.18102, 1.06628, 1.03574, 1.0192, 1.01932, 1.00886, 0.97531, 1.0106, 1.0008,\n 1.13189, 1.18102, 1.02277, 0.98683, 1.0016, 0.99561, 1.07237, 1.0008, 0.90434,\n 0.99921, 0.93803, 0.8965, 1.23085, 1.06628, 1.04983, 0.96268, 1.0499, 0.98439,\n 1.18102, 1.06628, 1.0008, 1.06628, 0.98439, 0.79795, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1.09466, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.97278, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.02065, 1, 1, 1, 1, 1, 1, 1.06467, 1.02511,\n 1.06467, 1.02511, 1.06467, 1.02511, 0.90996, 0.96752, 1, 1.21408, 0.89903, 1,\n 1, 0.75155, 1.04394, 1.04394, 1.04394, 1.04394, 0.98633, 0.98633, 0.98633,\n 0.73047, 0.73047, 1.20642, 0.91211, 1.25635, 1.222, 1.02956, 1.03372, 1.03372,\n 0.96039, 1.24633, 1, 1.12454, 0.93503, 1.03424, 1.19687, 1.03424, 1, 1, 1,\n 0.771, 1, 1, 1.15749, 1.15749, 1.15749, 1.10948, 0.86279, 0.94434, 0.86279,\n 0.94434, 0.86182, 1, 1, 1.16897, 1, 0.96085, 0.90137, 1.2107, 1.18416,\n 1.13973, 0.69825, 0.9716, 2.10339, 1.29004, 1.29004, 1.21172, 1.29004,\n 1.29004, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025,\n 1.18874, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886,\n 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.09193, 1.09193, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst SegoeuiBoldMetrics = { lineHeight: 1.33008, lineGap: 0 };\n\n// Factors to rescale LiberationSans-BoldItalic.ttf to have the same\n// metrics as segoeuiz.ttf.\nconst SegoeuiBoldItalicFactors = [\n 1.76738, 1, 1, 0.98946, 1.03959, 1.04016, 1.02809, 1.036, 0.97639, 1.10953,\n 1.23203, 1.11144, 1.11144, 1.16939, 1.21237, 0.9754, 1.21261, 0.9754, 1.59754,\n 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 0.81378,\n 0.81378, 1.21237, 1.21237, 1.21237, 0.73541, 0.97847, 0.97363, 0.89723,\n 0.87897, 1.0426, 0.79429, 0.85292, 0.91149, 1.05815, 1.1406, 0.79631, 0.90128,\n 0.83853, 1.04396, 1.10615, 0.97552, 0.94436, 0.97552, 0.88641, 0.80527,\n 0.96083, 1.00135, 1, 1.06777, 0.9817, 0.91142, 0.99361, 1.11144, 1.57293,\n 1.11144, 1.21237, 0.74627, 1.31818, 1.06585, 0.97042, 0.83055, 0.97042,\n 0.93503, 1.1261, 0.97042, 0.97922, 1.14236, 0.94552, 1.01054, 1.14236,\n 1.02471, 0.97922, 0.94165, 0.97042, 0.97042, 1.0276, 0.78929, 1.1261, 0.97922,\n 0.95874, 1.02197, 0.98507, 0.96752, 0.97168, 0.95107, 1.16579, 0.95107,\n 1.21237, 1.03959, 1.036, 1.036, 1, 1.036, 1.16579, 0.87357, 1.31818, 1.18754,\n 1.26781, 1.05356, 1.21237, 1.18622, 0.79487, 0.94994, 1.29004, 1.24047,\n 1.24047, 1.31818, 1, 0.91484, 0.9754, 1.31818, 1.1349, 1.24866, 1.05356,\n 1.13934, 1.15574, 1.17389, 0.73541, 0.97363, 0.97363, 0.97363, 0.97363,\n 0.97363, 0.97363, 0.94385, 0.87897, 0.79429, 0.79429, 0.79429, 0.79429,\n 1.1406, 1.1406, 1.1406, 1.1406, 1.0426, 1.10615, 0.97552, 0.97552, 0.97552,\n 0.97552, 0.97552, 1.21237, 0.97552, 1.00135, 1.00135, 1.00135, 1.00135,\n 0.91142, 0.94436, 0.98721, 1.06585, 1.06585, 1.06585, 1.06585, 1.06585,\n 1.06585, 0.96705, 0.83055, 0.93503, 0.93503, 0.93503, 0.93503, 1.14236,\n 1.14236, 1.14236, 1.14236, 0.93125, 0.97922, 0.94165, 0.94165, 0.94165,\n 0.94165, 0.94165, 1.29004, 0.94165, 0.97922, 0.97922, 0.97922, 0.97922,\n 0.96752, 0.97042, 0.96752, 0.97363, 1.06585, 0.97363, 1.06585, 0.97363,\n 1.06585, 0.87897, 0.83055, 0.87897, 0.83055, 0.87897, 0.83055, 0.87897,\n 0.83055, 1.0426, 1.0033, 1.0426, 0.97042, 0.79429, 0.93503, 0.79429, 0.93503,\n 0.79429, 0.93503, 0.79429, 0.93503, 0.79429, 0.93503, 0.91149, 0.97042,\n 0.91149, 0.97042, 0.91149, 0.97042, 1, 1, 1.05815, 0.97922, 1.05815, 0.97922,\n 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406,\n 1.14236, 0.97441, 1.04302, 0.79631, 1.01582, 1, 1, 1.01054, 0.83853, 1.14236,\n 1, 1, 0.83853, 1.09125, 0.83853, 0.90418, 0.83853, 1.19508, 1.10615, 0.97922,\n 1, 1, 1.10615, 0.97922, 1.01034, 1.10466, 0.97922, 0.97552, 0.94165, 0.97552,\n 0.94165, 0.97552, 0.94165, 0.91602, 0.91981, 0.88641, 1.0276, 1, 1, 0.88641,\n 1.0276, 0.80527, 0.78929, 0.80527, 0.78929, 0.80527, 0.78929, 0.80527,\n 0.78929, 1, 1, 0.96083, 1.05403, 0.95923, 1.16862, 1.00135, 0.97922, 1.00135,\n 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135,\n 0.97922, 1.06777, 1.02197, 0.91142, 0.96752, 0.91142, 0.99361, 0.97168,\n 0.99361, 0.97168, 0.99361, 0.97168, 1.23199, 1.036, 0.97363, 1.06585, 0.94385,\n 0.96705, 0.97552, 0.94165, 1, 1, 0.96083, 1.1261, 1.31818, 1.31818, 1.31818,\n 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 0.95161, 1.27126,\n 1.00811, 0.83284, 0.77702, 0.99137, 0.95253, 1.0347, 0.86142, 1.07205,\n 1.14236, 0.97363, 0.89723, 0.86869, 1.09818, 0.79429, 0.99361, 1.05815,\n 0.97552, 1.1406, 0.90128, 1.06662, 1.04396, 1.10615, 0.84918, 0.97552,\n 1.04694, 0.94436, 0.98015, 0.96083, 0.91142, 1.00356, 0.9817, 1.01945,\n 0.98999, 1.1406, 0.91142, 1.04961, 0.9898, 1.00639, 1.14236, 1.07514, 1.04961,\n 0.99607, 1.02897, 1.008, 0.9898, 0.95134, 1.00639, 1.11121, 1.14236, 1.00518,\n 0.97981, 1.02186, 1, 1.08578, 0.94165, 0.99314, 0.98387, 0.93028, 0.93377,\n 1.35125, 1.07514, 1.10687, 0.93491, 1.04232, 1.00351, 1.14236, 1.07514,\n 0.94165, 1.07514, 1.00351, 0.79429, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1.09097, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.93503, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 0.96609, 1, 1, 1, 1, 1, 1, 1.06777, 1.02197, 1.06777,\n 1.02197, 1.06777, 1.02197, 0.91142, 0.96752, 1, 1.21261, 0.89903, 1, 1,\n 0.75155, 1.04745, 1.04745, 1.04745, 1.04394, 0.98633, 0.98633, 0.98633,\n 0.72959, 0.72959, 1.20502, 0.91406, 1.26514, 1.222, 1.02956, 1.03372, 1.03372,\n 0.96039, 1.24633, 1, 1.09125, 0.93327, 1.03336, 1.16541, 1.036, 1, 1, 1,\n 0.771, 1, 1, 1.15574, 1.15574, 1.15574, 1.15574, 0.86364, 0.94434, 0.86279,\n 0.94434, 0.86224, 1, 1, 1.16798, 1, 0.96085, 0.90068, 1.21237, 1.18416,\n 1.13904, 0.69825, 0.9716, 2.10339, 1.29004, 1.29004, 1.21339, 1.29004,\n 1.29004, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025,\n 1.18775, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886,\n 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.13269, 1.13269, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst SegoeuiBoldItalicMetrics = { lineHeight: 1.33008, lineGap: 0 };\n\n// Factors to rescale LiberationSans-Italic.ttf to have the same\n// metrics as segoeuii.ttf.\nconst SegoeuiItalicFactors = [\n 1.76738, 1, 1, 0.98946, 1.14763, 1.05365, 1.06234, 0.96927, 0.92586, 1.15373,\n 1.18414, 0.91349, 0.91349, 1.07403, 1.17308, 0.78383, 1.20088, 0.78383,\n 1.42531, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927,\n 0.96927, 0.96927, 0.96927, 0.78383, 0.78383, 1.17308, 1.17308, 1.17308,\n 0.77349, 0.94565, 0.94729, 0.85944, 0.88506, 0.9858, 0.74817, 0.80016,\n 0.88449, 0.98039, 0.95782, 0.69238, 0.89898, 0.83231, 0.98183, 1.03989,\n 0.96924, 0.86237, 0.96924, 0.80595, 0.74524, 0.86091, 0.95402, 0.94143,\n 0.98448, 0.8858, 0.83089, 0.93285, 1.0949, 1.39016, 1.0949, 1.45994, 0.74627,\n 1.04839, 0.97454, 0.97454, 0.87207, 0.97454, 0.87533, 1.06151, 0.97454,\n 1.00176, 1.16484, 1.08132, 0.98047, 1.16484, 1.02989, 1.01054, 0.96225,\n 0.97454, 0.97454, 1.06598, 0.79004, 1.16344, 1.00351, 0.94629, 0.9973,\n 0.91016, 0.96777, 0.9043, 0.91082, 0.92481, 0.91082, 1.17308, 0.95748,\n 0.96927, 0.96927, 1, 0.96927, 0.92481, 0.80597, 1.04839, 1.23393, 1.1781,\n 0.9245, 1.17308, 1.20808, 0.63218, 0.94261, 1.24822, 1.09971, 1.09971,\n 1.04839, 1, 0.85273, 0.78032, 1.04839, 1.09971, 1.22326, 0.9245, 1.09836,\n 1.13525, 1.15222, 0.70424, 0.94729, 0.94729, 0.94729, 0.94729, 0.94729,\n 0.94729, 0.85498, 0.88506, 0.74817, 0.74817, 0.74817, 0.74817, 0.95782,\n 0.95782, 0.95782, 0.95782, 0.9858, 1.03989, 0.96924, 0.96924, 0.96924,\n 0.96924, 0.96924, 1.17308, 0.96924, 0.95402, 0.95402, 0.95402, 0.95402,\n 0.83089, 0.86237, 0.88409, 0.97454, 0.97454, 0.97454, 0.97454, 0.97454,\n 0.97454, 0.92916, 0.87207, 0.87533, 0.87533, 0.87533, 0.87533, 0.93146,\n 0.93146, 0.93146, 0.93146, 0.93854, 1.01054, 0.96225, 0.96225, 0.96225,\n 0.96225, 0.96225, 1.24822, 0.8761, 1.00351, 1.00351, 1.00351, 1.00351,\n 0.96777, 0.97454, 0.96777, 0.94729, 0.97454, 0.94729, 0.97454, 0.94729,\n 0.97454, 0.88506, 0.87207, 0.88506, 0.87207, 0.88506, 0.87207, 0.88506,\n 0.87207, 0.9858, 0.95391, 0.9858, 0.97454, 0.74817, 0.87533, 0.74817, 0.87533,\n 0.74817, 0.87533, 0.74817, 0.87533, 0.74817, 0.87533, 0.88449, 0.97454,\n 0.88449, 0.97454, 0.88449, 0.97454, 1, 1, 0.98039, 1.00176, 0.98039, 1.00176,\n 0.95782, 0.93146, 0.95782, 0.93146, 0.95782, 0.93146, 0.95782, 1.16484,\n 0.95782, 0.93146, 0.84421, 1.12761, 0.69238, 1.08132, 1, 1, 0.98047, 0.83231,\n 1.16484, 1, 1, 0.84723, 1.04861, 0.84723, 0.78755, 0.83231, 1.23736, 1.03989,\n 1.01054, 1, 1, 1.03989, 1.01054, 0.9857, 1.03849, 1.01054, 0.96924, 0.96225,\n 0.96924, 0.96225, 0.96924, 0.96225, 0.92383, 0.90171, 0.80595, 1.06598, 1, 1,\n 0.80595, 1.06598, 0.74524, 0.79004, 0.74524, 0.79004, 0.74524, 0.79004,\n 0.74524, 0.79004, 1, 1, 0.86091, 1.02759, 0.85771, 1.16344, 0.95402, 1.00351,\n 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351,\n 0.95402, 1.00351, 0.98448, 0.9973, 0.83089, 0.96777, 0.83089, 0.93285, 0.9043,\n 0.93285, 0.9043, 0.93285, 0.9043, 1.31868, 0.96927, 0.94729, 0.97454, 0.85498,\n 0.92916, 0.96924, 0.8761, 1, 1, 0.86091, 1.16344, 1.04839, 1.04839, 1.04839,\n 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 0.81965, 0.81965,\n 0.94729, 0.78032, 0.71022, 0.90883, 0.84171, 0.99877, 0.77596, 1.05734, 1.2,\n 0.94729, 0.85944, 0.82791, 0.9607, 0.74817, 0.93285, 0.98039, 0.96924,\n 0.95782, 0.89898, 0.98316, 0.98183, 1.03989, 0.78614, 0.96924, 0.97642,\n 0.86237, 0.86075, 0.86091, 0.83089, 0.90082, 0.8858, 0.97296, 1.01284,\n 0.95782, 0.83089, 1.0976, 1.04, 1.03342, 1.2, 1.0675, 1.0976, 0.98205,\n 1.03809, 1.05097, 1.04, 0.95364, 1.03342, 1.05401, 1.2, 1.02148, 1.0119,\n 1.04724, 1.0127, 1.02732, 0.96225, 0.8965, 0.97783, 0.93574, 0.94818, 1.30679,\n 1.0675, 1.11826, 0.99821, 1.0557, 1.0326, 1.2, 1.0675, 0.96225, 1.0675,\n 1.0326, 0.74817, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.03754, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.87533, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 0.98705, 1, 1, 1, 1, 1, 1, 0.98448, 0.9973, 0.98448, 0.9973, 0.98448, 0.9973,\n 0.83089, 0.96777, 1, 1.20088, 0.89903, 1, 1, 0.75155, 0.94945, 0.94945,\n 0.94945, 0.94945, 1.12317, 1.12317, 1.12317, 0.67603, 0.67603, 1.15621,\n 0.73584, 1.21191, 1.22135, 1.06483, 0.94868, 0.94868, 0.95996, 1.24633, 1,\n 1.07497, 0.87709, 0.96927, 1.01473, 0.96927, 1, 1, 1, 0.77295, 1, 1, 1.09836,\n 1.09836, 1.09836, 1.01522, 0.86321, 0.94434, 0.8649, 0.94434, 0.86182, 1, 1,\n 1.083, 1, 0.91578, 0.86438, 1.17308, 1.18416, 1.14589, 0.69825, 0.97622,\n 1.96791, 1.24822, 1.24822, 1.17308, 1.24822, 1.24822, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862,\n 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.17984, 1.42603, 1, 1.42603,\n 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1,\n 1.10742, 1.10742, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst SegoeuiItalicMetrics = { lineHeight: 1.33008, lineGap: 0 };\n\n// Factors to rescale LiberationSans-Regular.ttf to have the same\n// metrics as segoeui.ttf.\nconst SegoeuiRegularFactors = [\n 1.76738, 1, 1, 0.98594, 1.02285, 1.10454, 1.06234, 0.96927, 0.92037, 1.19985,\n 1.2046, 0.90616, 0.90616, 1.07152, 1.1714, 0.78032, 1.20088, 0.78032, 1.40246,\n 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927,\n 0.96927, 0.96927, 0.78032, 0.78032, 1.1714, 1.1714, 1.1714, 0.80597, 0.94084,\n 0.96706, 0.85944, 0.85734, 0.97093, 0.75842, 0.79936, 0.88198, 0.9831,\n 0.95782, 0.71387, 0.86969, 0.84636, 1.07796, 1.03584, 0.96924, 0.83968,\n 0.96924, 0.82826, 0.79649, 0.85771, 0.95132, 0.93119, 0.98965, 0.88433,\n 0.8287, 0.93365, 1.08612, 1.3638, 1.08612, 1.45786, 0.74627, 0.80499, 0.91484,\n 1.05707, 0.92383, 1.05882, 0.9403, 1.12654, 1.05882, 1.01756, 1.09011,\n 1.09011, 0.99414, 1.09011, 1.034, 1.01756, 1.05356, 1.05707, 1.05882, 1.04399,\n 0.84863, 1.21968, 1.01756, 0.95801, 1.00068, 0.91797, 0.96777, 0.9043,\n 0.90351, 0.92105, 0.90351, 1.1714, 0.85337, 0.96927, 0.96927, 0.99912,\n 0.96927, 0.92105, 0.80597, 1.2434, 1.20808, 1.05937, 0.90957, 1.1714, 1.20808,\n 0.75155, 0.94261, 1.24644, 1.09971, 1.09971, 0.84751, 1, 0.85273, 0.78032,\n 0.61584, 1.05425, 1.17914, 0.90957, 1.08665, 1.11593, 1.14169, 0.73381,\n 0.96706, 0.96706, 0.96706, 0.96706, 0.96706, 0.96706, 0.86035, 0.85734,\n 0.75842, 0.75842, 0.75842, 0.75842, 0.95782, 0.95782, 0.95782, 0.95782,\n 0.97093, 1.03584, 0.96924, 0.96924, 0.96924, 0.96924, 0.96924, 1.1714,\n 0.96924, 0.95132, 0.95132, 0.95132, 0.95132, 0.8287, 0.83968, 0.89049,\n 0.91484, 0.91484, 0.91484, 0.91484, 0.91484, 0.91484, 0.93575, 0.92383,\n 0.9403, 0.9403, 0.9403, 0.9403, 0.8717, 0.8717, 0.8717, 0.8717, 1.00527,\n 1.01756, 1.05356, 1.05356, 1.05356, 1.05356, 1.05356, 1.24644, 0.95923,\n 1.01756, 1.01756, 1.01756, 1.01756, 0.96777, 1.05707, 0.96777, 0.96706,\n 0.91484, 0.96706, 0.91484, 0.96706, 0.91484, 0.85734, 0.92383, 0.85734,\n 0.92383, 0.85734, 0.92383, 0.85734, 0.92383, 0.97093, 1.0969, 0.97093,\n 1.05882, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403,\n 0.75842, 0.9403, 0.88198, 1.05882, 0.88198, 1.05882, 0.88198, 1.05882, 1, 1,\n 0.9831, 1.01756, 0.9831, 1.01756, 0.95782, 0.8717, 0.95782, 0.8717, 0.95782,\n 0.8717, 0.95782, 1.09011, 0.95782, 0.8717, 0.84784, 1.11551, 0.71387, 1.09011,\n 1, 1, 0.99414, 0.84636, 1.09011, 1, 1, 0.84636, 1.0536, 0.84636, 0.94298,\n 0.84636, 1.23297, 1.03584, 1.01756, 1, 1, 1.03584, 1.01756, 1.00323, 1.03444,\n 1.01756, 0.96924, 1.05356, 0.96924, 1.05356, 0.96924, 1.05356, 0.93066,\n 0.98293, 0.82826, 1.04399, 1, 1, 0.82826, 1.04399, 0.79649, 0.84863, 0.79649,\n 0.84863, 0.79649, 0.84863, 0.79649, 0.84863, 1, 1, 0.85771, 1.17318, 0.85771,\n 1.21968, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132,\n 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.98965, 1.00068, 0.8287,\n 0.96777, 0.8287, 0.93365, 0.9043, 0.93365, 0.9043, 0.93365, 0.9043, 1.08571,\n 0.96927, 0.96706, 0.91484, 0.86035, 0.93575, 0.96924, 0.95923, 1, 1, 0.85771,\n 1.21968, 1.11437, 1.11437, 0.93109, 0.91202, 0.60411, 0.84164, 0.55572,\n 1.01173, 0.97361, 0.81818, 0.81818, 0.96635, 0.78032, 0.72727, 0.92366,\n 0.98601, 1.03405, 0.77968, 1.09799, 1.2, 0.96706, 0.85944, 0.85638, 0.96491,\n 0.75842, 0.93365, 0.9831, 0.96924, 0.95782, 0.86969, 0.94152, 1.07796,\n 1.03584, 0.78437, 0.96924, 0.98715, 0.83968, 0.83491, 0.85771, 0.8287,\n 0.94492, 0.88433, 0.9287, 1.0098, 0.95782, 0.8287, 1.0625, 0.98248, 1.03424,\n 1.2, 1.01071, 1.0625, 0.95246, 1.03809, 1.04912, 0.98248, 1.00221, 1.03424,\n 1.05443, 1.2, 1.04785, 0.99609, 1.00169, 1.05176, 0.99346, 1.05356, 0.9087,\n 1.03004, 0.95542, 0.93117, 1.23362, 1.01071, 1.07831, 1.02512, 1.05205,\n 1.03502, 1.2, 1.01071, 1.05356, 1.01071, 1.03502, 0.75842, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1.03719, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.9403,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.04021, 1, 1, 1, 1, 1, 1, 0.98965,\n 1.00068, 0.98965, 1.00068, 0.98965, 1.00068, 0.8287, 0.96777, 1, 1.20088,\n 0.89903, 1, 1, 0.75155, 1.03077, 1.03077, 1.03077, 1.03077, 1.13196, 1.13196,\n 1.13196, 0.67428, 0.67428, 1.16039, 0.73291, 1.20996, 1.22135, 1.06483,\n 0.94868, 0.94868, 0.95996, 1.24633, 1, 1.07497, 0.87796, 0.96927, 1.01518,\n 0.96927, 1, 1, 1, 0.77295, 1, 1, 1.10539, 1.10539, 1.11358, 1.06967, 0.86279,\n 0.94434, 0.86279, 0.94434, 0.86182, 1, 1, 1.083, 1, 0.91578, 0.86507, 1.1714,\n 1.18416, 1.14589, 0.69825, 0.97622, 1.9697, 1.24822, 1.24822, 1.17238,\n 1.24822, 1.24822, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025,\n 0.87025, 1.18083, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1,\n 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.10938, 1.10938, 1, 1, 1,\n 1.05425, 1.09971, 1.09971, 1.09971, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst SegoeuiRegularMetrics = { lineHeight: 1.33008, lineGap: 0 };\n\nexport {\n SegoeuiBoldFactors,\n SegoeuiBoldItalicFactors,\n SegoeuiBoldItalicMetrics,\n SegoeuiBoldMetrics,\n SegoeuiItalicFactors,\n SegoeuiItalicMetrics,\n SegoeuiRegularFactors,\n SegoeuiRegularMetrics,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FontType, info } from \"../shared/util.js\";\nimport { getEncoding, StandardEncoding } from \"./encodings.js\";\nimport { getGlyphsUnicode } from \"./glyphlist.js\";\nimport { getUnicodeForGlyph } from \"./unicode.js\";\n\n// Accented characters have issues on Windows and Linux. When this flag is\n// enabled glyphs that use seac and seac style endchar operators are truncated\n// and we instead just store the glyph id's of the base glyph and its accent to\n// be drawn individually.\n// Linux (freetype) requires that when a seac style endchar is used\n// that the charset must be a predefined one, however we build a\n// custom one. Windows just refuses to draw glyphs with seac operators.\nconst SEAC_ANALYSIS_ENABLED = true;\n\nconst FontFlags = {\n FixedPitch: 1,\n Serif: 2,\n Symbolic: 4,\n Script: 8,\n Nonsymbolic: 32,\n Italic: 64,\n AllCap: 65536,\n SmallCap: 131072,\n ForceBold: 262144,\n};\n\n// prettier-ignore\nconst MacStandardGlyphOrdering = [\n \".notdef\", \".null\", \"nonmarkingreturn\", \"space\", \"exclam\", \"quotedbl\",\n \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quotesingle\", \"parenleft\",\n \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\",\n \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\",\n \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\",\n \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\",\n \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\",\n \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\",\n \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\",\n \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\",\n \"asciitilde\", \"Adieresis\", \"Aring\", \"Ccedilla\", \"Eacute\", \"Ntilde\",\n \"Odieresis\", \"Udieresis\", \"aacute\", \"agrave\", \"acircumflex\", \"adieresis\",\n \"atilde\", \"aring\", \"ccedilla\", \"eacute\", \"egrave\", \"ecircumflex\", \"edieresis\",\n \"iacute\", \"igrave\", \"icircumflex\", \"idieresis\", \"ntilde\", \"oacute\", \"ograve\",\n \"ocircumflex\", \"odieresis\", \"otilde\", \"uacute\", \"ugrave\", \"ucircumflex\",\n \"udieresis\", \"dagger\", \"degree\", \"cent\", \"sterling\", \"section\", \"bullet\",\n \"paragraph\", \"germandbls\", \"registered\", \"copyright\", \"trademark\", \"acute\",\n \"dieresis\", \"notequal\", \"AE\", \"Oslash\", \"infinity\", \"plusminus\", \"lessequal\",\n \"greaterequal\", \"yen\", \"mu\", \"partialdiff\", \"summation\", \"product\", \"pi\",\n \"integral\", \"ordfeminine\", \"ordmasculine\", \"Omega\", \"ae\", \"oslash\",\n \"questiondown\", \"exclamdown\", \"logicalnot\", \"radical\", \"florin\",\n \"approxequal\", \"Delta\", \"guillemotleft\", \"guillemotright\", \"ellipsis\",\n \"nonbreakingspace\", \"Agrave\", \"Atilde\", \"Otilde\", \"OE\", \"oe\", \"endash\",\n \"emdash\", \"quotedblleft\", \"quotedblright\", \"quoteleft\", \"quoteright\",\n \"divide\", \"lozenge\", \"ydieresis\", \"Ydieresis\", \"fraction\", \"currency\",\n \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"daggerdbl\", \"periodcentered\",\n \"quotesinglbase\", \"quotedblbase\", \"perthousand\", \"Acircumflex\",\n \"Ecircumflex\", \"Aacute\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\",\n \"Idieresis\", \"Igrave\", \"Oacute\", \"Ocircumflex\", \"apple\", \"Ograve\", \"Uacute\",\n \"Ucircumflex\", \"Ugrave\", \"dotlessi\", \"circumflex\", \"tilde\", \"macron\",\n \"breve\", \"dotaccent\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\",\n \"Lslash\", \"lslash\", \"Scaron\", \"scaron\", \"Zcaron\", \"zcaron\", \"brokenbar\",\n \"Eth\", \"eth\", \"Yacute\", \"yacute\", \"Thorn\", \"thorn\", \"minus\", \"multiply\",\n \"onesuperior\", \"twosuperior\", \"threesuperior\", \"onehalf\", \"onequarter\",\n \"threequarters\", \"franc\", \"Gbreve\", \"gbreve\", \"Idotaccent\", \"Scedilla\",\n \"scedilla\", \"Cacute\", \"cacute\", \"Ccaron\", \"ccaron\", \"dcroat\"];\n\nfunction getFontType(type, subtype, isStandardFont = false) {\n switch (type) {\n case \"Type1\":\n if (isStandardFont) {\n return FontType.TYPE1STANDARD;\n }\n return subtype === \"Type1C\" ? FontType.TYPE1C : FontType.TYPE1;\n case \"CIDFontType0\":\n return subtype === \"CIDFontType0C\"\n ? FontType.CIDFONTTYPE0C\n : FontType.CIDFONTTYPE0;\n case \"OpenType\":\n return FontType.OPENTYPE;\n case \"TrueType\":\n return FontType.TRUETYPE;\n case \"CIDFontType2\":\n return FontType.CIDFONTTYPE2;\n case \"MMType1\":\n return FontType.MMTYPE1;\n case \"Type0\":\n return FontType.TYPE0;\n default:\n return FontType.UNKNOWN;\n }\n}\n\n// Some bad PDF generators, e.g. Scribus PDF, include glyph names\n// in a 'uniXXXX' format -- attempting to recover proper ones.\nfunction recoverGlyphName(name, glyphsUnicodeMap) {\n if (glyphsUnicodeMap[name] !== undefined) {\n return name;\n }\n // The glyph name is non-standard, trying to recover.\n const unicode = getUnicodeForGlyph(name, glyphsUnicodeMap);\n if (unicode !== -1) {\n for (const key in glyphsUnicodeMap) {\n if (glyphsUnicodeMap[key] === unicode) {\n return key;\n }\n }\n }\n info(\"Unable to recover a standard glyph name for: \" + name);\n return name;\n}\n\n/**\n * Shared logic for building a char code to glyph id mapping for Type1 and\n * simple CFF fonts. See section 9.6.6.2 of the spec.\n * @param {Object} properties Font properties object.\n * @param {Object} builtInEncoding The encoding contained within the actual font\n * data.\n * @param {Array} glyphNames Array of glyph names where the index is the\n * glyph ID.\n * @returns {Object} A char code to glyph ID map.\n */\nfunction type1FontGlyphMapping(properties, builtInEncoding, glyphNames) {\n const charCodeToGlyphId = Object.create(null);\n let glyphId, charCode, baseEncoding;\n const isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n\n if (properties.isInternalFont) {\n baseEncoding = builtInEncoding;\n for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0; // notdef\n }\n }\n } else if (properties.baseEncodingName) {\n // If a valid base encoding name was used, the mapping is initialized with\n // that.\n baseEncoding = getEncoding(properties.baseEncodingName);\n for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0; // notdef\n }\n }\n } else if (isSymbolicFont) {\n // For a symbolic font the encoding should be the fonts built-in encoding.\n for (charCode in builtInEncoding) {\n charCodeToGlyphId[charCode] = builtInEncoding[charCode];\n }\n } else {\n // For non-symbolic fonts that don't have a base encoding the standard\n // encoding should be used.\n baseEncoding = StandardEncoding;\n for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0; // notdef\n }\n }\n }\n\n // Lastly, merge in the differences.\n const differences = properties.differences;\n let glyphsUnicodeMap;\n if (differences) {\n for (charCode in differences) {\n const glyphName = differences[charCode];\n glyphId = glyphNames.indexOf(glyphName);\n\n if (glyphId === -1) {\n if (!glyphsUnicodeMap) {\n glyphsUnicodeMap = getGlyphsUnicode();\n }\n const standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap);\n if (standardGlyphName !== glyphName) {\n glyphId = glyphNames.indexOf(standardGlyphName);\n }\n }\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0; // notdef\n }\n }\n }\n return charCodeToGlyphId;\n}\n\nfunction normalizeFontName(name) {\n return name.replace(/[,_]/g, \"-\").replace(/\\s/g, \"\");\n}\n\nexport {\n FontFlags,\n getFontType,\n MacStandardGlyphOrdering,\n normalizeFontName,\n recoverGlyphName,\n SEAC_ANALYSIS_ENABLED,\n type1FontGlyphMapping,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// prettier-ignore\nconst ExpertEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"\", \"dollaroldstyle\",\n \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\",\n \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\",\n \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\",\n \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\",\n \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"colon\",\n \"semicolon\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\",\n \"questionsmall\", \"\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\",\n \"esuperior\", \"\", \"\", \"\", \"isuperior\", \"\", \"\", \"lsuperior\", \"msuperior\",\n \"nsuperior\", \"osuperior\", \"\", \"\", \"rsuperior\", \"ssuperior\", \"tsuperior\",\n \"\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"\",\n \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\",\n \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\",\n \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\",\n \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\",\n \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\",\n \"onefitted\", \"rupiah\", \"Tildesmall\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\",\n \"\", \"\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\",\n \"Caronsmall\", \"\", \"Dotaccentsmall\", \"\", \"\", \"Macronsmall\", \"\", \"\",\n \"figuredash\", \"hypheninferior\", \"\", \"\", \"Ogoneksmall\", \"Ringsmall\",\n \"Cedillasmall\", \"\", \"\", \"\", \"onequarter\", \"onehalf\", \"threequarters\",\n \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n \"seveneighths\", \"onethird\", \"twothirds\", \"\", \"\", \"zerosuperior\",\n \"onesuperior\", \"twosuperior\", \"threesuperior\", \"foursuperior\",\n \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\",\n \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\",\n \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\",\n \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\",\n \"dollarinferior\", \"periodinferior\", \"commainferior\", \"Agravesmall\",\n \"Aacutesmall\", \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\",\n \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\",\n \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\",\n \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\",\n \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\",\n \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\",\n \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\",\n \"Ydieresissmall\"];\n\n// prettier-ignore\nconst MacExpertEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"centoldstyle\",\n \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\",\n \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\",\n \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\",\n \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\",\n \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\",\n \"nineoldstyle\", \"colon\", \"semicolon\", \"\", \"threequartersemdash\", \"\",\n \"questionsmall\", \"\", \"\", \"\", \"\", \"Ethsmall\", \"\", \"\", \"onequarter\",\n \"onehalf\", \"threequarters\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n \"seveneighths\", \"onethird\", \"twothirds\", \"\", \"\", \"\", \"\", \"\", \"\", \"ff\",\n \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"\", \"parenrightinferior\",\n \"Circumflexsmall\", \"hypheninferior\", \"Gravesmall\", \"Asmall\", \"Bsmall\",\n \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\",\n \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\",\n \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\",\n \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\",\n \"Tildesmall\", \"\", \"\", \"asuperior\", \"centsuperior\", \"\", \"\", \"\", \"\",\n \"Aacutesmall\", \"Agravesmall\", \"Acircumflexsmall\", \"Adieresissmall\",\n \"Atildesmall\", \"Aringsmall\", \"Ccedillasmall\", \"Eacutesmall\", \"Egravesmall\",\n \"Ecircumflexsmall\", \"Edieresissmall\", \"Iacutesmall\", \"Igravesmall\",\n \"Icircumflexsmall\", \"Idieresissmall\", \"Ntildesmall\", \"Oacutesmall\",\n \"Ogravesmall\", \"Ocircumflexsmall\", \"Odieresissmall\", \"Otildesmall\",\n \"Uacutesmall\", \"Ugravesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"\",\n \"eightsuperior\", \"fourinferior\", \"threeinferior\", \"sixinferior\",\n \"eightinferior\", \"seveninferior\", \"Scaronsmall\", \"\", \"centinferior\",\n \"twoinferior\", \"\", \"Dieresissmall\", \"\", \"Caronsmall\", \"osuperior\",\n \"fiveinferior\", \"\", \"commainferior\", \"periodinferior\", \"Yacutesmall\", \"\",\n \"dollarinferior\", \"\", \"\", \"Thornsmall\", \"\", \"nineinferior\", \"zeroinferior\",\n \"Zcaronsmall\", \"AEsmall\", \"Oslashsmall\", \"questiondownsmall\",\n \"oneinferior\", \"Lslashsmall\", \"\", \"\", \"\", \"\", \"\", \"\", \"Cedillasmall\", \"\",\n \"\", \"\", \"\", \"\", \"OEsmall\", \"figuredash\", \"hyphensuperior\", \"\", \"\", \"\", \"\",\n \"exclamdownsmall\", \"\", \"Ydieresissmall\", \"\", \"onesuperior\", \"twosuperior\",\n \"threesuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\",\n \"sevensuperior\", \"ninesuperior\", \"zerosuperior\", \"\", \"esuperior\",\n \"rsuperior\", \"tsuperior\", \"\", \"\", \"isuperior\", \"ssuperior\", \"dsuperior\",\n \"\", \"\", \"\", \"\", \"\", \"lsuperior\", \"Ogoneksmall\", \"Brevesmall\",\n \"Macronsmall\", \"bsuperior\", \"nsuperior\", \"msuperior\", \"commasuperior\",\n \"periodsuperior\", \"Dotaccentsmall\", \"Ringsmall\", \"\", \"\", \"\", \"\"];\n\n// prettier-ignore\nconst MacRomanEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\",\n \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\",\n \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\",\n \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\",\n \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\",\n \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\",\n \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\",\n \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\",\n \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\",\n \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"\",\n \"Adieresis\", \"Aring\", \"Ccedilla\", \"Eacute\", \"Ntilde\", \"Odieresis\",\n \"Udieresis\", \"aacute\", \"agrave\", \"acircumflex\", \"adieresis\", \"atilde\",\n \"aring\", \"ccedilla\", \"eacute\", \"egrave\", \"ecircumflex\", \"edieresis\",\n \"iacute\", \"igrave\", \"icircumflex\", \"idieresis\", \"ntilde\", \"oacute\",\n \"ograve\", \"ocircumflex\", \"odieresis\", \"otilde\", \"uacute\", \"ugrave\",\n \"ucircumflex\", \"udieresis\", \"dagger\", \"degree\", \"cent\", \"sterling\",\n \"section\", \"bullet\", \"paragraph\", \"germandbls\", \"registered\", \"copyright\",\n \"trademark\", \"acute\", \"dieresis\", \"notequal\", \"AE\", \"Oslash\", \"infinity\",\n \"plusminus\", \"lessequal\", \"greaterequal\", \"yen\", \"mu\", \"partialdiff\",\n \"summation\", \"product\", \"pi\", \"integral\", \"ordfeminine\", \"ordmasculine\",\n \"Omega\", \"ae\", \"oslash\", \"questiondown\", \"exclamdown\", \"logicalnot\",\n \"radical\", \"florin\", \"approxequal\", \"Delta\", \"guillemotleft\",\n \"guillemotright\", \"ellipsis\", \"space\", \"Agrave\", \"Atilde\", \"Otilde\", \"OE\",\n \"oe\", \"endash\", \"emdash\", \"quotedblleft\", \"quotedblright\", \"quoteleft\",\n \"quoteright\", \"divide\", \"lozenge\", \"ydieresis\", \"Ydieresis\", \"fraction\",\n \"currency\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"daggerdbl\",\n \"periodcentered\", \"quotesinglbase\", \"quotedblbase\", \"perthousand\",\n \"Acircumflex\", \"Ecircumflex\", \"Aacute\", \"Edieresis\", \"Egrave\", \"Iacute\",\n \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Oacute\", \"Ocircumflex\", \"apple\",\n \"Ograve\", \"Uacute\", \"Ucircumflex\", \"Ugrave\", \"dotlessi\", \"circumflex\",\n \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"ring\", \"cedilla\", \"hungarumlaut\",\n \"ogonek\", \"caron\"];\n\n// prettier-ignore\nconst StandardEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\",\n \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\",\n \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\",\n \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\",\n \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\",\n \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\",\n \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\",\n \"asciicircum\", \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\",\n \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\",\n \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"exclamdown\",\n \"cent\", \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\",\n \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\",\n \"guilsinglright\", \"fi\", \"fl\", \"\", \"endash\", \"dagger\", \"daggerdbl\",\n \"periodcentered\", \"\", \"paragraph\", \"bullet\", \"quotesinglbase\",\n \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\",\n \"perthousand\", \"\", \"questiondown\", \"\", \"grave\", \"acute\", \"circumflex\",\n \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"\", \"ring\", \"cedilla\",\n \"\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"AE\", \"\", \"ordfeminine\", \"\", \"\",\n \"\", \"\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"\", \"\", \"\", \"\", \"\", \"ae\",\n \"\", \"\", \"\", \"dotlessi\", \"\", \"\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"\",\n \"\", \"\", \"\"];\n\n// prettier-ignore\nconst WinAnsiEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\",\n \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\",\n \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\",\n \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\",\n \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\",\n \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\",\n \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\",\n \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\",\n \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\",\n \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\",\n \"bullet\", \"Euro\", \"bullet\", \"quotesinglbase\", \"florin\", \"quotedblbase\",\n \"ellipsis\", \"dagger\", \"daggerdbl\", \"circumflex\", \"perthousand\", \"Scaron\",\n \"guilsinglleft\", \"OE\", \"bullet\", \"Zcaron\", \"bullet\", \"bullet\", \"quoteleft\",\n \"quoteright\", \"quotedblleft\", \"quotedblright\", \"bullet\", \"endash\",\n \"emdash\", \"tilde\", \"trademark\", \"scaron\", \"guilsinglright\", \"oe\", \"bullet\",\n \"zcaron\", \"Ydieresis\", \"space\", \"exclamdown\", \"cent\", \"sterling\",\n \"currency\", \"yen\", \"brokenbar\", \"section\", \"dieresis\", \"copyright\",\n \"ordfeminine\", \"guillemotleft\", \"logicalnot\", \"hyphen\", \"registered\",\n \"macron\", \"degree\", \"plusminus\", \"twosuperior\", \"threesuperior\", \"acute\",\n \"mu\", \"paragraph\", \"periodcentered\", \"cedilla\", \"onesuperior\",\n \"ordmasculine\", \"guillemotright\", \"onequarter\", \"onehalf\", \"threequarters\",\n \"questiondown\", \"Agrave\", \"Aacute\", \"Acircumflex\", \"Atilde\", \"Adieresis\",\n \"Aring\", \"AE\", \"Ccedilla\", \"Egrave\", \"Eacute\", \"Ecircumflex\", \"Edieresis\",\n \"Igrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Eth\", \"Ntilde\", \"Ograve\",\n \"Oacute\", \"Ocircumflex\", \"Otilde\", \"Odieresis\", \"multiply\", \"Oslash\",\n \"Ugrave\", \"Uacute\", \"Ucircumflex\", \"Udieresis\", \"Yacute\", \"Thorn\",\n \"germandbls\", \"agrave\", \"aacute\", \"acircumflex\", \"atilde\", \"adieresis\",\n \"aring\", \"ae\", \"ccedilla\", \"egrave\", \"eacute\", \"ecircumflex\", \"edieresis\",\n \"igrave\", \"iacute\", \"icircumflex\", \"idieresis\", \"eth\", \"ntilde\", \"ograve\",\n \"oacute\", \"ocircumflex\", \"otilde\", \"odieresis\", \"divide\", \"oslash\",\n \"ugrave\", \"uacute\", \"ucircumflex\", \"udieresis\", \"yacute\", \"thorn\",\n \"ydieresis\"];\n\n// prettier-ignore\nconst SymbolSetEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclam\", \"universal\", \"numbersign\", \"existential\", \"percent\",\n \"ampersand\", \"suchthat\", \"parenleft\", \"parenright\", \"asteriskmath\", \"plus\",\n \"comma\", \"minus\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\",\n \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\",\n \"equal\", \"greater\", \"question\", \"congruent\", \"Alpha\", \"Beta\", \"Chi\",\n \"Delta\", \"Epsilon\", \"Phi\", \"Gamma\", \"Eta\", \"Iota\", \"theta1\", \"Kappa\",\n \"Lambda\", \"Mu\", \"Nu\", \"Omicron\", \"Pi\", \"Theta\", \"Rho\", \"Sigma\", \"Tau\",\n \"Upsilon\", \"sigma1\", \"Omega\", \"Xi\", \"Psi\", \"Zeta\", \"bracketleft\",\n \"therefore\", \"bracketright\", \"perpendicular\", \"underscore\", \"radicalex\",\n \"alpha\", \"beta\", \"chi\", \"delta\", \"epsilon\", \"phi\", \"gamma\", \"eta\", \"iota\",\n \"phi1\", \"kappa\", \"lambda\", \"mu\", \"nu\", \"omicron\", \"pi\", \"theta\", \"rho\",\n \"sigma\", \"tau\", \"upsilon\", \"omega1\", \"omega\", \"xi\", \"psi\", \"zeta\",\n \"braceleft\", \"bar\", \"braceright\", \"similar\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"Euro\", \"Upsilon1\", \"minute\", \"lessequal\",\n \"fraction\", \"infinity\", \"florin\", \"club\", \"diamond\", \"heart\", \"spade\",\n \"arrowboth\", \"arrowleft\", \"arrowup\", \"arrowright\", \"arrowdown\", \"degree\",\n \"plusminus\", \"second\", \"greaterequal\", \"multiply\", \"proportional\",\n \"partialdiff\", \"bullet\", \"divide\", \"notequal\", \"equivalence\",\n \"approxequal\", \"ellipsis\", \"arrowvertex\", \"arrowhorizex\", \"carriagereturn\",\n \"aleph\", \"Ifraktur\", \"Rfraktur\", \"weierstrass\", \"circlemultiply\",\n \"circleplus\", \"emptyset\", \"intersection\", \"union\", \"propersuperset\",\n \"reflexsuperset\", \"notsubset\", \"propersubset\", \"reflexsubset\", \"element\",\n \"notelement\", \"angle\", \"gradient\", \"registerserif\", \"copyrightserif\",\n \"trademarkserif\", \"product\", \"radical\", \"dotmath\", \"logicalnot\",\n \"logicaland\", \"logicalor\", \"arrowdblboth\", \"arrowdblleft\", \"arrowdblup\",\n \"arrowdblright\", \"arrowdbldown\", \"lozenge\", \"angleleft\", \"registersans\",\n \"copyrightsans\", \"trademarksans\", \"summation\", \"parenlefttp\",\n \"parenleftex\", \"parenleftbt\", \"bracketlefttp\", \"bracketleftex\",\n \"bracketleftbt\", \"bracelefttp\", \"braceleftmid\", \"braceleftbt\", \"braceex\",\n \"\", \"angleright\", \"integral\", \"integraltp\", \"integralex\", \"integralbt\",\n \"parenrighttp\", \"parenrightex\", \"parenrightbt\", \"bracketrighttp\",\n \"bracketrightex\", \"bracketrightbt\", \"bracerighttp\", \"bracerightmid\",\n \"bracerightbt\", \"\"];\n\n// prettier-ignore\nconst ZapfDingbatsEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"a1\", \"a2\", \"a202\", \"a3\", \"a4\", \"a5\", \"a119\", \"a118\", \"a117\",\n \"a11\", \"a12\", \"a13\", \"a14\", \"a15\", \"a16\", \"a105\", \"a17\", \"a18\", \"a19\",\n \"a20\", \"a21\", \"a22\", \"a23\", \"a24\", \"a25\", \"a26\", \"a27\", \"a28\", \"a6\", \"a7\",\n \"a8\", \"a9\", \"a10\", \"a29\", \"a30\", \"a31\", \"a32\", \"a33\", \"a34\", \"a35\", \"a36\",\n \"a37\", \"a38\", \"a39\", \"a40\", \"a41\", \"a42\", \"a43\", \"a44\", \"a45\", \"a46\",\n \"a47\", \"a48\", \"a49\", \"a50\", \"a51\", \"a52\", \"a53\", \"a54\", \"a55\", \"a56\",\n \"a57\", \"a58\", \"a59\", \"a60\", \"a61\", \"a62\", \"a63\", \"a64\", \"a65\", \"a66\",\n \"a67\", \"a68\", \"a69\", \"a70\", \"a71\", \"a72\", \"a73\", \"a74\", \"a203\", \"a75\",\n \"a204\", \"a76\", \"a77\", \"a78\", \"a79\", \"a81\", \"a82\", \"a83\", \"a84\", \"a97\",\n \"a98\", \"a99\", \"a100\", \"\", \"a89\", \"a90\", \"a93\", \"a94\", \"a91\", \"a92\", \"a205\",\n \"a85\", \"a206\", \"a86\", \"a87\", \"a88\", \"a95\", \"a96\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"a101\", \"a102\", \"a103\",\n \"a104\", \"a106\", \"a107\", \"a108\", \"a112\", \"a111\", \"a110\", \"a109\", \"a120\",\n \"a121\", \"a122\", \"a123\", \"a124\", \"a125\", \"a126\", \"a127\", \"a128\", \"a129\",\n \"a130\", \"a131\", \"a132\", \"a133\", \"a134\", \"a135\", \"a136\", \"a137\", \"a138\",\n \"a139\", \"a140\", \"a141\", \"a142\", \"a143\", \"a144\", \"a145\", \"a146\", \"a147\",\n \"a148\", \"a149\", \"a150\", \"a151\", \"a152\", \"a153\", \"a154\", \"a155\", \"a156\",\n \"a157\", \"a158\", \"a159\", \"a160\", \"a161\", \"a163\", \"a164\", \"a196\", \"a165\",\n \"a192\", \"a166\", \"a167\", \"a168\", \"a169\", \"a170\", \"a171\", \"a172\", \"a173\",\n \"a162\", \"a174\", \"a175\", \"a176\", \"a177\", \"a178\", \"a179\", \"a193\", \"a180\",\n \"a199\", \"a181\", \"a200\", \"a182\", \"\", \"a201\", \"a183\", \"a184\", \"a197\", \"a185\",\n \"a194\", \"a198\", \"a186\", \"a195\", \"a187\", \"a188\", \"a189\", \"a190\", \"a191\", \"\"];\n\nfunction getEncoding(encodingName) {\n switch (encodingName) {\n case \"WinAnsiEncoding\":\n return WinAnsiEncoding;\n case \"StandardEncoding\":\n return StandardEncoding;\n case \"MacRomanEncoding\":\n return MacRomanEncoding;\n case \"SymbolSetEncoding\":\n return SymbolSetEncoding;\n case \"ZapfDingbatsEncoding\":\n return ZapfDingbatsEncoding;\n case \"ExpertEncoding\":\n return ExpertEncoding;\n case \"MacExpertEncoding\":\n return MacExpertEncoding;\n default:\n return null;\n }\n}\n\nexport {\n ExpertEncoding,\n getEncoding,\n MacRomanEncoding,\n StandardEncoding,\n SymbolSetEncoding,\n WinAnsiEncoding,\n ZapfDingbatsEncoding,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* no-babel-preset */\n\nimport { getArrayLookupTableFactory } from \"./core_utils.js\";\n\nconst getGlyphsUnicode = getArrayLookupTableFactory(function () {\n // prettier-ignore\n return [\n \"A\", 0x0041,\n \"AE\", 0x00c6,\n \"AEacute\", 0x01fc,\n \"AEmacron\", 0x01e2,\n \"AEsmall\", 0xf7e6,\n \"Aacute\", 0x00c1,\n \"Aacutesmall\", 0xf7e1,\n \"Abreve\", 0x0102,\n \"Abreveacute\", 0x1eae,\n \"Abrevecyrillic\", 0x04d0,\n \"Abrevedotbelow\", 0x1eb6,\n \"Abrevegrave\", 0x1eb0,\n \"Abrevehookabove\", 0x1eb2,\n \"Abrevetilde\", 0x1eb4,\n \"Acaron\", 0x01cd,\n \"Acircle\", 0x24b6,\n \"Acircumflex\", 0x00c2,\n \"Acircumflexacute\", 0x1ea4,\n \"Acircumflexdotbelow\", 0x1eac,\n \"Acircumflexgrave\", 0x1ea6,\n \"Acircumflexhookabove\", 0x1ea8,\n \"Acircumflexsmall\", 0xf7e2,\n \"Acircumflextilde\", 0x1eaa,\n \"Acute\", 0xf6c9,\n \"Acutesmall\", 0xf7b4,\n \"Acyrillic\", 0x0410,\n \"Adblgrave\", 0x0200,\n \"Adieresis\", 0x00c4,\n \"Adieresiscyrillic\", 0x04d2,\n \"Adieresismacron\", 0x01de,\n \"Adieresissmall\", 0xf7e4,\n \"Adotbelow\", 0x1ea0,\n \"Adotmacron\", 0x01e0,\n \"Agrave\", 0x00c0,\n \"Agravesmall\", 0xf7e0,\n \"Ahookabove\", 0x1ea2,\n \"Aiecyrillic\", 0x04d4,\n \"Ainvertedbreve\", 0x0202,\n \"Alpha\", 0x0391,\n \"Alphatonos\", 0x0386,\n \"Amacron\", 0x0100,\n \"Amonospace\", 0xff21,\n \"Aogonek\", 0x0104,\n \"Aring\", 0x00c5,\n \"Aringacute\", 0x01fa,\n \"Aringbelow\", 0x1e00,\n \"Aringsmall\", 0xf7e5,\n \"Asmall\", 0xf761,\n \"Atilde\", 0x00c3,\n \"Atildesmall\", 0xf7e3,\n \"Aybarmenian\", 0x0531,\n \"B\", 0x0042,\n \"Bcircle\", 0x24b7,\n \"Bdotaccent\", 0x1e02,\n \"Bdotbelow\", 0x1e04,\n \"Becyrillic\", 0x0411,\n \"Benarmenian\", 0x0532,\n \"Beta\", 0x0392,\n \"Bhook\", 0x0181,\n \"Blinebelow\", 0x1e06,\n \"Bmonospace\", 0xff22,\n \"Brevesmall\", 0xf6f4,\n \"Bsmall\", 0xf762,\n \"Btopbar\", 0x0182,\n \"C\", 0x0043,\n \"Caarmenian\", 0x053e,\n \"Cacute\", 0x0106,\n \"Caron\", 0xf6ca,\n \"Caronsmall\", 0xf6f5,\n \"Ccaron\", 0x010c,\n \"Ccedilla\", 0x00c7,\n \"Ccedillaacute\", 0x1e08,\n \"Ccedillasmall\", 0xf7e7,\n \"Ccircle\", 0x24b8,\n \"Ccircumflex\", 0x0108,\n \"Cdot\", 0x010a,\n \"Cdotaccent\", 0x010a,\n \"Cedillasmall\", 0xf7b8,\n \"Chaarmenian\", 0x0549,\n \"Cheabkhasiancyrillic\", 0x04bc,\n \"Checyrillic\", 0x0427,\n \"Chedescenderabkhasiancyrillic\", 0x04be,\n \"Chedescendercyrillic\", 0x04b6,\n \"Chedieresiscyrillic\", 0x04f4,\n \"Cheharmenian\", 0x0543,\n \"Chekhakassiancyrillic\", 0x04cb,\n \"Cheverticalstrokecyrillic\", 0x04b8,\n \"Chi\", 0x03a7,\n \"Chook\", 0x0187,\n \"Circumflexsmall\", 0xf6f6,\n \"Cmonospace\", 0xff23,\n \"Coarmenian\", 0x0551,\n \"Csmall\", 0xf763,\n \"D\", 0x0044,\n \"DZ\", 0x01f1,\n \"DZcaron\", 0x01c4,\n \"Daarmenian\", 0x0534,\n \"Dafrican\", 0x0189,\n \"Dcaron\", 0x010e,\n \"Dcedilla\", 0x1e10,\n \"Dcircle\", 0x24b9,\n \"Dcircumflexbelow\", 0x1e12,\n \"Dcroat\", 0x0110,\n \"Ddotaccent\", 0x1e0a,\n \"Ddotbelow\", 0x1e0c,\n \"Decyrillic\", 0x0414,\n \"Deicoptic\", 0x03ee,\n \"Delta\", 0x2206,\n \"Deltagreek\", 0x0394,\n \"Dhook\", 0x018a,\n \"Dieresis\", 0xf6cb,\n \"DieresisAcute\", 0xf6cc,\n \"DieresisGrave\", 0xf6cd,\n \"Dieresissmall\", 0xf7a8,\n \"Digammagreek\", 0x03dc,\n \"Djecyrillic\", 0x0402,\n \"Dlinebelow\", 0x1e0e,\n \"Dmonospace\", 0xff24,\n \"Dotaccentsmall\", 0xf6f7,\n \"Dslash\", 0x0110,\n \"Dsmall\", 0xf764,\n \"Dtopbar\", 0x018b,\n \"Dz\", 0x01f2,\n \"Dzcaron\", 0x01c5,\n \"Dzeabkhasiancyrillic\", 0x04e0,\n \"Dzecyrillic\", 0x0405,\n \"Dzhecyrillic\", 0x040f,\n \"E\", 0x0045,\n \"Eacute\", 0x00c9,\n \"Eacutesmall\", 0xf7e9,\n \"Ebreve\", 0x0114,\n \"Ecaron\", 0x011a,\n \"Ecedillabreve\", 0x1e1c,\n \"Echarmenian\", 0x0535,\n \"Ecircle\", 0x24ba,\n \"Ecircumflex\", 0x00ca,\n \"Ecircumflexacute\", 0x1ebe,\n \"Ecircumflexbelow\", 0x1e18,\n \"Ecircumflexdotbelow\", 0x1ec6,\n \"Ecircumflexgrave\", 0x1ec0,\n \"Ecircumflexhookabove\", 0x1ec2,\n \"Ecircumflexsmall\", 0xf7ea,\n \"Ecircumflextilde\", 0x1ec4,\n \"Ecyrillic\", 0x0404,\n \"Edblgrave\", 0x0204,\n \"Edieresis\", 0x00cb,\n \"Edieresissmall\", 0xf7eb,\n \"Edot\", 0x0116,\n \"Edotaccent\", 0x0116,\n \"Edotbelow\", 0x1eb8,\n \"Efcyrillic\", 0x0424,\n \"Egrave\", 0x00c8,\n \"Egravesmall\", 0xf7e8,\n \"Eharmenian\", 0x0537,\n \"Ehookabove\", 0x1eba,\n \"Eightroman\", 0x2167,\n \"Einvertedbreve\", 0x0206,\n \"Eiotifiedcyrillic\", 0x0464,\n \"Elcyrillic\", 0x041b,\n \"Elevenroman\", 0x216a,\n \"Emacron\", 0x0112,\n \"Emacronacute\", 0x1e16,\n \"Emacrongrave\", 0x1e14,\n \"Emcyrillic\", 0x041c,\n \"Emonospace\", 0xff25,\n \"Encyrillic\", 0x041d,\n \"Endescendercyrillic\", 0x04a2,\n \"Eng\", 0x014a,\n \"Enghecyrillic\", 0x04a4,\n \"Enhookcyrillic\", 0x04c7,\n \"Eogonek\", 0x0118,\n \"Eopen\", 0x0190,\n \"Epsilon\", 0x0395,\n \"Epsilontonos\", 0x0388,\n \"Ercyrillic\", 0x0420,\n \"Ereversed\", 0x018e,\n \"Ereversedcyrillic\", 0x042d,\n \"Escyrillic\", 0x0421,\n \"Esdescendercyrillic\", 0x04aa,\n \"Esh\", 0x01a9,\n \"Esmall\", 0xf765,\n \"Eta\", 0x0397,\n \"Etarmenian\", 0x0538,\n \"Etatonos\", 0x0389,\n \"Eth\", 0x00d0,\n \"Ethsmall\", 0xf7f0,\n \"Etilde\", 0x1ebc,\n \"Etildebelow\", 0x1e1a,\n \"Euro\", 0x20ac,\n \"Ezh\", 0x01b7,\n \"Ezhcaron\", 0x01ee,\n \"Ezhreversed\", 0x01b8,\n \"F\", 0x0046,\n \"Fcircle\", 0x24bb,\n \"Fdotaccent\", 0x1e1e,\n \"Feharmenian\", 0x0556,\n \"Feicoptic\", 0x03e4,\n \"Fhook\", 0x0191,\n \"Fitacyrillic\", 0x0472,\n \"Fiveroman\", 0x2164,\n \"Fmonospace\", 0xff26,\n \"Fourroman\", 0x2163,\n \"Fsmall\", 0xf766,\n \"G\", 0x0047,\n \"GBsquare\", 0x3387,\n \"Gacute\", 0x01f4,\n \"Gamma\", 0x0393,\n \"Gammaafrican\", 0x0194,\n \"Gangiacoptic\", 0x03ea,\n \"Gbreve\", 0x011e,\n \"Gcaron\", 0x01e6,\n \"Gcedilla\", 0x0122,\n \"Gcircle\", 0x24bc,\n \"Gcircumflex\", 0x011c,\n \"Gcommaaccent\", 0x0122,\n \"Gdot\", 0x0120,\n \"Gdotaccent\", 0x0120,\n \"Gecyrillic\", 0x0413,\n \"Ghadarmenian\", 0x0542,\n \"Ghemiddlehookcyrillic\", 0x0494,\n \"Ghestrokecyrillic\", 0x0492,\n \"Gheupturncyrillic\", 0x0490,\n \"Ghook\", 0x0193,\n \"Gimarmenian\", 0x0533,\n \"Gjecyrillic\", 0x0403,\n \"Gmacron\", 0x1e20,\n \"Gmonospace\", 0xff27,\n \"Grave\", 0xf6ce,\n \"Gravesmall\", 0xf760,\n \"Gsmall\", 0xf767,\n \"Gsmallhook\", 0x029b,\n \"Gstroke\", 0x01e4,\n \"H\", 0x0048,\n \"H18533\", 0x25cf,\n \"H18543\", 0x25aa,\n \"H18551\", 0x25ab,\n \"H22073\", 0x25a1,\n \"HPsquare\", 0x33cb,\n \"Haabkhasiancyrillic\", 0x04a8,\n \"Hadescendercyrillic\", 0x04b2,\n \"Hardsigncyrillic\", 0x042a,\n \"Hbar\", 0x0126,\n \"Hbrevebelow\", 0x1e2a,\n \"Hcedilla\", 0x1e28,\n \"Hcircle\", 0x24bd,\n \"Hcircumflex\", 0x0124,\n \"Hdieresis\", 0x1e26,\n \"Hdotaccent\", 0x1e22,\n \"Hdotbelow\", 0x1e24,\n \"Hmonospace\", 0xff28,\n \"Hoarmenian\", 0x0540,\n \"Horicoptic\", 0x03e8,\n \"Hsmall\", 0xf768,\n \"Hungarumlaut\", 0xf6cf,\n \"Hungarumlautsmall\", 0xf6f8,\n \"Hzsquare\", 0x3390,\n \"I\", 0x0049,\n \"IAcyrillic\", 0x042f,\n \"IJ\", 0x0132,\n \"IUcyrillic\", 0x042e,\n \"Iacute\", 0x00cd,\n \"Iacutesmall\", 0xf7ed,\n \"Ibreve\", 0x012c,\n \"Icaron\", 0x01cf,\n \"Icircle\", 0x24be,\n \"Icircumflex\", 0x00ce,\n \"Icircumflexsmall\", 0xf7ee,\n \"Icyrillic\", 0x0406,\n \"Idblgrave\", 0x0208,\n \"Idieresis\", 0x00cf,\n \"Idieresisacute\", 0x1e2e,\n \"Idieresiscyrillic\", 0x04e4,\n \"Idieresissmall\", 0xf7ef,\n \"Idot\", 0x0130,\n \"Idotaccent\", 0x0130,\n \"Idotbelow\", 0x1eca,\n \"Iebrevecyrillic\", 0x04d6,\n \"Iecyrillic\", 0x0415,\n \"Ifraktur\", 0x2111,\n \"Igrave\", 0x00cc,\n \"Igravesmall\", 0xf7ec,\n \"Ihookabove\", 0x1ec8,\n \"Iicyrillic\", 0x0418,\n \"Iinvertedbreve\", 0x020a,\n \"Iishortcyrillic\", 0x0419,\n \"Imacron\", 0x012a,\n \"Imacroncyrillic\", 0x04e2,\n \"Imonospace\", 0xff29,\n \"Iniarmenian\", 0x053b,\n \"Iocyrillic\", 0x0401,\n \"Iogonek\", 0x012e,\n \"Iota\", 0x0399,\n \"Iotaafrican\", 0x0196,\n \"Iotadieresis\", 0x03aa,\n \"Iotatonos\", 0x038a,\n \"Ismall\", 0xf769,\n \"Istroke\", 0x0197,\n \"Itilde\", 0x0128,\n \"Itildebelow\", 0x1e2c,\n \"Izhitsacyrillic\", 0x0474,\n \"Izhitsadblgravecyrillic\", 0x0476,\n \"J\", 0x004a,\n \"Jaarmenian\", 0x0541,\n \"Jcircle\", 0x24bf,\n \"Jcircumflex\", 0x0134,\n \"Jecyrillic\", 0x0408,\n \"Jheharmenian\", 0x054b,\n \"Jmonospace\", 0xff2a,\n \"Jsmall\", 0xf76a,\n \"K\", 0x004b,\n \"KBsquare\", 0x3385,\n \"KKsquare\", 0x33cd,\n \"Kabashkircyrillic\", 0x04a0,\n \"Kacute\", 0x1e30,\n \"Kacyrillic\", 0x041a,\n \"Kadescendercyrillic\", 0x049a,\n \"Kahookcyrillic\", 0x04c3,\n \"Kappa\", 0x039a,\n \"Kastrokecyrillic\", 0x049e,\n \"Kaverticalstrokecyrillic\", 0x049c,\n \"Kcaron\", 0x01e8,\n \"Kcedilla\", 0x0136,\n \"Kcircle\", 0x24c0,\n \"Kcommaaccent\", 0x0136,\n \"Kdotbelow\", 0x1e32,\n \"Keharmenian\", 0x0554,\n \"Kenarmenian\", 0x053f,\n \"Khacyrillic\", 0x0425,\n \"Kheicoptic\", 0x03e6,\n \"Khook\", 0x0198,\n \"Kjecyrillic\", 0x040c,\n \"Klinebelow\", 0x1e34,\n \"Kmonospace\", 0xff2b,\n \"Koppacyrillic\", 0x0480,\n \"Koppagreek\", 0x03de,\n \"Ksicyrillic\", 0x046e,\n \"Ksmall\", 0xf76b,\n \"L\", 0x004c,\n \"LJ\", 0x01c7,\n \"LL\", 0xf6bf,\n \"Lacute\", 0x0139,\n \"Lambda\", 0x039b,\n \"Lcaron\", 0x013d,\n \"Lcedilla\", 0x013b,\n \"Lcircle\", 0x24c1,\n \"Lcircumflexbelow\", 0x1e3c,\n \"Lcommaaccent\", 0x013b,\n \"Ldot\", 0x013f,\n \"Ldotaccent\", 0x013f,\n \"Ldotbelow\", 0x1e36,\n \"Ldotbelowmacron\", 0x1e38,\n \"Liwnarmenian\", 0x053c,\n \"Lj\", 0x01c8,\n \"Ljecyrillic\", 0x0409,\n \"Llinebelow\", 0x1e3a,\n \"Lmonospace\", 0xff2c,\n \"Lslash\", 0x0141,\n \"Lslashsmall\", 0xf6f9,\n \"Lsmall\", 0xf76c,\n \"M\", 0x004d,\n \"MBsquare\", 0x3386,\n \"Macron\", 0xf6d0,\n \"Macronsmall\", 0xf7af,\n \"Macute\", 0x1e3e,\n \"Mcircle\", 0x24c2,\n \"Mdotaccent\", 0x1e40,\n \"Mdotbelow\", 0x1e42,\n \"Menarmenian\", 0x0544,\n \"Mmonospace\", 0xff2d,\n \"Msmall\", 0xf76d,\n \"Mturned\", 0x019c,\n \"Mu\", 0x039c,\n \"N\", 0x004e,\n \"NJ\", 0x01ca,\n \"Nacute\", 0x0143,\n \"Ncaron\", 0x0147,\n \"Ncedilla\", 0x0145,\n \"Ncircle\", 0x24c3,\n \"Ncircumflexbelow\", 0x1e4a,\n \"Ncommaaccent\", 0x0145,\n \"Ndotaccent\", 0x1e44,\n \"Ndotbelow\", 0x1e46,\n \"Nhookleft\", 0x019d,\n \"Nineroman\", 0x2168,\n \"Nj\", 0x01cb,\n \"Njecyrillic\", 0x040a,\n \"Nlinebelow\", 0x1e48,\n \"Nmonospace\", 0xff2e,\n \"Nowarmenian\", 0x0546,\n \"Nsmall\", 0xf76e,\n \"Ntilde\", 0x00d1,\n \"Ntildesmall\", 0xf7f1,\n \"Nu\", 0x039d,\n \"O\", 0x004f,\n \"OE\", 0x0152,\n \"OEsmall\", 0xf6fa,\n \"Oacute\", 0x00d3,\n \"Oacutesmall\", 0xf7f3,\n \"Obarredcyrillic\", 0x04e8,\n \"Obarreddieresiscyrillic\", 0x04ea,\n \"Obreve\", 0x014e,\n \"Ocaron\", 0x01d1,\n \"Ocenteredtilde\", 0x019f,\n \"Ocircle\", 0x24c4,\n \"Ocircumflex\", 0x00d4,\n \"Ocircumflexacute\", 0x1ed0,\n \"Ocircumflexdotbelow\", 0x1ed8,\n \"Ocircumflexgrave\", 0x1ed2,\n \"Ocircumflexhookabove\", 0x1ed4,\n \"Ocircumflexsmall\", 0xf7f4,\n \"Ocircumflextilde\", 0x1ed6,\n \"Ocyrillic\", 0x041e,\n \"Odblacute\", 0x0150,\n \"Odblgrave\", 0x020c,\n \"Odieresis\", 0x00d6,\n \"Odieresiscyrillic\", 0x04e6,\n \"Odieresissmall\", 0xf7f6,\n \"Odotbelow\", 0x1ecc,\n \"Ogoneksmall\", 0xf6fb,\n \"Ograve\", 0x00d2,\n \"Ogravesmall\", 0xf7f2,\n \"Oharmenian\", 0x0555,\n \"Ohm\", 0x2126,\n \"Ohookabove\", 0x1ece,\n \"Ohorn\", 0x01a0,\n \"Ohornacute\", 0x1eda,\n \"Ohorndotbelow\", 0x1ee2,\n \"Ohorngrave\", 0x1edc,\n \"Ohornhookabove\", 0x1ede,\n \"Ohorntilde\", 0x1ee0,\n \"Ohungarumlaut\", 0x0150,\n \"Oi\", 0x01a2,\n \"Oinvertedbreve\", 0x020e,\n \"Omacron\", 0x014c,\n \"Omacronacute\", 0x1e52,\n \"Omacrongrave\", 0x1e50,\n \"Omega\", 0x2126,\n \"Omegacyrillic\", 0x0460,\n \"Omegagreek\", 0x03a9,\n \"Omegaroundcyrillic\", 0x047a,\n \"Omegatitlocyrillic\", 0x047c,\n \"Omegatonos\", 0x038f,\n \"Omicron\", 0x039f,\n \"Omicrontonos\", 0x038c,\n \"Omonospace\", 0xff2f,\n \"Oneroman\", 0x2160,\n \"Oogonek\", 0x01ea,\n \"Oogonekmacron\", 0x01ec,\n \"Oopen\", 0x0186,\n \"Oslash\", 0x00d8,\n \"Oslashacute\", 0x01fe,\n \"Oslashsmall\", 0xf7f8,\n \"Osmall\", 0xf76f,\n \"Ostrokeacute\", 0x01fe,\n \"Otcyrillic\", 0x047e,\n \"Otilde\", 0x00d5,\n \"Otildeacute\", 0x1e4c,\n \"Otildedieresis\", 0x1e4e,\n \"Otildesmall\", 0xf7f5,\n \"P\", 0x0050,\n \"Pacute\", 0x1e54,\n \"Pcircle\", 0x24c5,\n \"Pdotaccent\", 0x1e56,\n \"Pecyrillic\", 0x041f,\n \"Peharmenian\", 0x054a,\n \"Pemiddlehookcyrillic\", 0x04a6,\n \"Phi\", 0x03a6,\n \"Phook\", 0x01a4,\n \"Pi\", 0x03a0,\n \"Piwrarmenian\", 0x0553,\n \"Pmonospace\", 0xff30,\n \"Psi\", 0x03a8,\n \"Psicyrillic\", 0x0470,\n \"Psmall\", 0xf770,\n \"Q\", 0x0051,\n \"Qcircle\", 0x24c6,\n \"Qmonospace\", 0xff31,\n \"Qsmall\", 0xf771,\n \"R\", 0x0052,\n \"Raarmenian\", 0x054c,\n \"Racute\", 0x0154,\n \"Rcaron\", 0x0158,\n \"Rcedilla\", 0x0156,\n \"Rcircle\", 0x24c7,\n \"Rcommaaccent\", 0x0156,\n \"Rdblgrave\", 0x0210,\n \"Rdotaccent\", 0x1e58,\n \"Rdotbelow\", 0x1e5a,\n \"Rdotbelowmacron\", 0x1e5c,\n \"Reharmenian\", 0x0550,\n \"Rfraktur\", 0x211c,\n \"Rho\", 0x03a1,\n \"Ringsmall\", 0xf6fc,\n \"Rinvertedbreve\", 0x0212,\n \"Rlinebelow\", 0x1e5e,\n \"Rmonospace\", 0xff32,\n \"Rsmall\", 0xf772,\n \"Rsmallinverted\", 0x0281,\n \"Rsmallinvertedsuperior\", 0x02b6,\n \"S\", 0x0053,\n \"SF010000\", 0x250c,\n \"SF020000\", 0x2514,\n \"SF030000\", 0x2510,\n \"SF040000\", 0x2518,\n \"SF050000\", 0x253c,\n \"SF060000\", 0x252c,\n \"SF070000\", 0x2534,\n \"SF080000\", 0x251c,\n \"SF090000\", 0x2524,\n \"SF100000\", 0x2500,\n \"SF110000\", 0x2502,\n \"SF190000\", 0x2561,\n \"SF200000\", 0x2562,\n \"SF210000\", 0x2556,\n \"SF220000\", 0x2555,\n \"SF230000\", 0x2563,\n \"SF240000\", 0x2551,\n \"SF250000\", 0x2557,\n \"SF260000\", 0x255d,\n \"SF270000\", 0x255c,\n \"SF280000\", 0x255b,\n \"SF360000\", 0x255e,\n \"SF370000\", 0x255f,\n \"SF380000\", 0x255a,\n \"SF390000\", 0x2554,\n \"SF400000\", 0x2569,\n \"SF410000\", 0x2566,\n \"SF420000\", 0x2560,\n \"SF430000\", 0x2550,\n \"SF440000\", 0x256c,\n \"SF450000\", 0x2567,\n \"SF460000\", 0x2568,\n \"SF470000\", 0x2564,\n \"SF480000\", 0x2565,\n \"SF490000\", 0x2559,\n \"SF500000\", 0x2558,\n \"SF510000\", 0x2552,\n \"SF520000\", 0x2553,\n \"SF530000\", 0x256b,\n \"SF540000\", 0x256a,\n \"Sacute\", 0x015a,\n \"Sacutedotaccent\", 0x1e64,\n \"Sampigreek\", 0x03e0,\n \"Scaron\", 0x0160,\n \"Scarondotaccent\", 0x1e66,\n \"Scaronsmall\", 0xf6fd,\n \"Scedilla\", 0x015e,\n \"Schwa\", 0x018f,\n \"Schwacyrillic\", 0x04d8,\n \"Schwadieresiscyrillic\", 0x04da,\n \"Scircle\", 0x24c8,\n \"Scircumflex\", 0x015c,\n \"Scommaaccent\", 0x0218,\n \"Sdotaccent\", 0x1e60,\n \"Sdotbelow\", 0x1e62,\n \"Sdotbelowdotaccent\", 0x1e68,\n \"Seharmenian\", 0x054d,\n \"Sevenroman\", 0x2166,\n \"Shaarmenian\", 0x0547,\n \"Shacyrillic\", 0x0428,\n \"Shchacyrillic\", 0x0429,\n \"Sheicoptic\", 0x03e2,\n \"Shhacyrillic\", 0x04ba,\n \"Shimacoptic\", 0x03ec,\n \"Sigma\", 0x03a3,\n \"Sixroman\", 0x2165,\n \"Smonospace\", 0xff33,\n \"Softsigncyrillic\", 0x042c,\n \"Ssmall\", 0xf773,\n \"Stigmagreek\", 0x03da,\n \"T\", 0x0054,\n \"Tau\", 0x03a4,\n \"Tbar\", 0x0166,\n \"Tcaron\", 0x0164,\n \"Tcedilla\", 0x0162,\n \"Tcircle\", 0x24c9,\n \"Tcircumflexbelow\", 0x1e70,\n \"Tcommaaccent\", 0x0162,\n \"Tdotaccent\", 0x1e6a,\n \"Tdotbelow\", 0x1e6c,\n \"Tecyrillic\", 0x0422,\n \"Tedescendercyrillic\", 0x04ac,\n \"Tenroman\", 0x2169,\n \"Tetsecyrillic\", 0x04b4,\n \"Theta\", 0x0398,\n \"Thook\", 0x01ac,\n \"Thorn\", 0x00de,\n \"Thornsmall\", 0xf7fe,\n \"Threeroman\", 0x2162,\n \"Tildesmall\", 0xf6fe,\n \"Tiwnarmenian\", 0x054f,\n \"Tlinebelow\", 0x1e6e,\n \"Tmonospace\", 0xff34,\n \"Toarmenian\", 0x0539,\n \"Tonefive\", 0x01bc,\n \"Tonesix\", 0x0184,\n \"Tonetwo\", 0x01a7,\n \"Tretroflexhook\", 0x01ae,\n \"Tsecyrillic\", 0x0426,\n \"Tshecyrillic\", 0x040b,\n \"Tsmall\", 0xf774,\n \"Twelveroman\", 0x216b,\n \"Tworoman\", 0x2161,\n \"U\", 0x0055,\n \"Uacute\", 0x00da,\n \"Uacutesmall\", 0xf7fa,\n \"Ubreve\", 0x016c,\n \"Ucaron\", 0x01d3,\n \"Ucircle\", 0x24ca,\n \"Ucircumflex\", 0x00db,\n \"Ucircumflexbelow\", 0x1e76,\n \"Ucircumflexsmall\", 0xf7fb,\n \"Ucyrillic\", 0x0423,\n \"Udblacute\", 0x0170,\n \"Udblgrave\", 0x0214,\n \"Udieresis\", 0x00dc,\n \"Udieresisacute\", 0x01d7,\n \"Udieresisbelow\", 0x1e72,\n \"Udieresiscaron\", 0x01d9,\n \"Udieresiscyrillic\", 0x04f0,\n \"Udieresisgrave\", 0x01db,\n \"Udieresismacron\", 0x01d5,\n \"Udieresissmall\", 0xf7fc,\n \"Udotbelow\", 0x1ee4,\n \"Ugrave\", 0x00d9,\n \"Ugravesmall\", 0xf7f9,\n \"Uhookabove\", 0x1ee6,\n \"Uhorn\", 0x01af,\n \"Uhornacute\", 0x1ee8,\n \"Uhorndotbelow\", 0x1ef0,\n \"Uhorngrave\", 0x1eea,\n \"Uhornhookabove\", 0x1eec,\n \"Uhorntilde\", 0x1eee,\n \"Uhungarumlaut\", 0x0170,\n \"Uhungarumlautcyrillic\", 0x04f2,\n \"Uinvertedbreve\", 0x0216,\n \"Ukcyrillic\", 0x0478,\n \"Umacron\", 0x016a,\n \"Umacroncyrillic\", 0x04ee,\n \"Umacrondieresis\", 0x1e7a,\n \"Umonospace\", 0xff35,\n \"Uogonek\", 0x0172,\n \"Upsilon\", 0x03a5,\n \"Upsilon1\", 0x03d2,\n \"Upsilonacutehooksymbolgreek\", 0x03d3,\n \"Upsilonafrican\", 0x01b1,\n \"Upsilondieresis\", 0x03ab,\n \"Upsilondieresishooksymbolgreek\", 0x03d4,\n \"Upsilonhooksymbol\", 0x03d2,\n \"Upsilontonos\", 0x038e,\n \"Uring\", 0x016e,\n \"Ushortcyrillic\", 0x040e,\n \"Usmall\", 0xf775,\n \"Ustraightcyrillic\", 0x04ae,\n \"Ustraightstrokecyrillic\", 0x04b0,\n \"Utilde\", 0x0168,\n \"Utildeacute\", 0x1e78,\n \"Utildebelow\", 0x1e74,\n \"V\", 0x0056,\n \"Vcircle\", 0x24cb,\n \"Vdotbelow\", 0x1e7e,\n \"Vecyrillic\", 0x0412,\n \"Vewarmenian\", 0x054e,\n \"Vhook\", 0x01b2,\n \"Vmonospace\", 0xff36,\n \"Voarmenian\", 0x0548,\n \"Vsmall\", 0xf776,\n \"Vtilde\", 0x1e7c,\n \"W\", 0x0057,\n \"Wacute\", 0x1e82,\n \"Wcircle\", 0x24cc,\n \"Wcircumflex\", 0x0174,\n \"Wdieresis\", 0x1e84,\n \"Wdotaccent\", 0x1e86,\n \"Wdotbelow\", 0x1e88,\n \"Wgrave\", 0x1e80,\n \"Wmonospace\", 0xff37,\n \"Wsmall\", 0xf777,\n \"X\", 0x0058,\n \"Xcircle\", 0x24cd,\n \"Xdieresis\", 0x1e8c,\n \"Xdotaccent\", 0x1e8a,\n \"Xeharmenian\", 0x053d,\n \"Xi\", 0x039e,\n \"Xmonospace\", 0xff38,\n \"Xsmall\", 0xf778,\n \"Y\", 0x0059,\n \"Yacute\", 0x00dd,\n \"Yacutesmall\", 0xf7fd,\n \"Yatcyrillic\", 0x0462,\n \"Ycircle\", 0x24ce,\n \"Ycircumflex\", 0x0176,\n \"Ydieresis\", 0x0178,\n \"Ydieresissmall\", 0xf7ff,\n \"Ydotaccent\", 0x1e8e,\n \"Ydotbelow\", 0x1ef4,\n \"Yericyrillic\", 0x042b,\n \"Yerudieresiscyrillic\", 0x04f8,\n \"Ygrave\", 0x1ef2,\n \"Yhook\", 0x01b3,\n \"Yhookabove\", 0x1ef6,\n \"Yiarmenian\", 0x0545,\n \"Yicyrillic\", 0x0407,\n \"Yiwnarmenian\", 0x0552,\n \"Ymonospace\", 0xff39,\n \"Ysmall\", 0xf779,\n \"Ytilde\", 0x1ef8,\n \"Yusbigcyrillic\", 0x046a,\n \"Yusbigiotifiedcyrillic\", 0x046c,\n \"Yuslittlecyrillic\", 0x0466,\n \"Yuslittleiotifiedcyrillic\", 0x0468,\n \"Z\", 0x005a,\n \"Zaarmenian\", 0x0536,\n \"Zacute\", 0x0179,\n \"Zcaron\", 0x017d,\n \"Zcaronsmall\", 0xf6ff,\n \"Zcircle\", 0x24cf,\n \"Zcircumflex\", 0x1e90,\n \"Zdot\", 0x017b,\n \"Zdotaccent\", 0x017b,\n \"Zdotbelow\", 0x1e92,\n \"Zecyrillic\", 0x0417,\n \"Zedescendercyrillic\", 0x0498,\n \"Zedieresiscyrillic\", 0x04de,\n \"Zeta\", 0x0396,\n \"Zhearmenian\", 0x053a,\n \"Zhebrevecyrillic\", 0x04c1,\n \"Zhecyrillic\", 0x0416,\n \"Zhedescendercyrillic\", 0x0496,\n \"Zhedieresiscyrillic\", 0x04dc,\n \"Zlinebelow\", 0x1e94,\n \"Zmonospace\", 0xff3a,\n \"Zsmall\", 0xf77a,\n \"Zstroke\", 0x01b5,\n \"a\", 0x0061,\n \"aabengali\", 0x0986,\n \"aacute\", 0x00e1,\n \"aadeva\", 0x0906,\n \"aagujarati\", 0x0a86,\n \"aagurmukhi\", 0x0a06,\n \"aamatragurmukhi\", 0x0a3e,\n \"aarusquare\", 0x3303,\n \"aavowelsignbengali\", 0x09be,\n \"aavowelsigndeva\", 0x093e,\n \"aavowelsigngujarati\", 0x0abe,\n \"abbreviationmarkarmenian\", 0x055f,\n \"abbreviationsigndeva\", 0x0970,\n \"abengali\", 0x0985,\n \"abopomofo\", 0x311a,\n \"abreve\", 0x0103,\n \"abreveacute\", 0x1eaf,\n \"abrevecyrillic\", 0x04d1,\n \"abrevedotbelow\", 0x1eb7,\n \"abrevegrave\", 0x1eb1,\n \"abrevehookabove\", 0x1eb3,\n \"abrevetilde\", 0x1eb5,\n \"acaron\", 0x01ce,\n \"acircle\", 0x24d0,\n \"acircumflex\", 0x00e2,\n \"acircumflexacute\", 0x1ea5,\n \"acircumflexdotbelow\", 0x1ead,\n \"acircumflexgrave\", 0x1ea7,\n \"acircumflexhookabove\", 0x1ea9,\n \"acircumflextilde\", 0x1eab,\n \"acute\", 0x00b4,\n \"acutebelowcmb\", 0x0317,\n \"acutecmb\", 0x0301,\n \"acutecomb\", 0x0301,\n \"acutedeva\", 0x0954,\n \"acutelowmod\", 0x02cf,\n \"acutetonecmb\", 0x0341,\n \"acyrillic\", 0x0430,\n \"adblgrave\", 0x0201,\n \"addakgurmukhi\", 0x0a71,\n \"adeva\", 0x0905,\n \"adieresis\", 0x00e4,\n \"adieresiscyrillic\", 0x04d3,\n \"adieresismacron\", 0x01df,\n \"adotbelow\", 0x1ea1,\n \"adotmacron\", 0x01e1,\n \"ae\", 0x00e6,\n \"aeacute\", 0x01fd,\n \"aekorean\", 0x3150,\n \"aemacron\", 0x01e3,\n \"afii00208\", 0x2015,\n \"afii08941\", 0x20a4,\n \"afii10017\", 0x0410,\n \"afii10018\", 0x0411,\n \"afii10019\", 0x0412,\n \"afii10020\", 0x0413,\n \"afii10021\", 0x0414,\n \"afii10022\", 0x0415,\n \"afii10023\", 0x0401,\n \"afii10024\", 0x0416,\n \"afii10025\", 0x0417,\n \"afii10026\", 0x0418,\n \"afii10027\", 0x0419,\n \"afii10028\", 0x041a,\n \"afii10029\", 0x041b,\n \"afii10030\", 0x041c,\n \"afii10031\", 0x041d,\n \"afii10032\", 0x041e,\n \"afii10033\", 0x041f,\n \"afii10034\", 0x0420,\n \"afii10035\", 0x0421,\n \"afii10036\", 0x0422,\n \"afii10037\", 0x0423,\n \"afii10038\", 0x0424,\n \"afii10039\", 0x0425,\n \"afii10040\", 0x0426,\n \"afii10041\", 0x0427,\n \"afii10042\", 0x0428,\n \"afii10043\", 0x0429,\n \"afii10044\", 0x042a,\n \"afii10045\", 0x042b,\n \"afii10046\", 0x042c,\n \"afii10047\", 0x042d,\n \"afii10048\", 0x042e,\n \"afii10049\", 0x042f,\n \"afii10050\", 0x0490,\n \"afii10051\", 0x0402,\n \"afii10052\", 0x0403,\n \"afii10053\", 0x0404,\n \"afii10054\", 0x0405,\n \"afii10055\", 0x0406,\n \"afii10056\", 0x0407,\n \"afii10057\", 0x0408,\n \"afii10058\", 0x0409,\n \"afii10059\", 0x040a,\n \"afii10060\", 0x040b,\n \"afii10061\", 0x040c,\n \"afii10062\", 0x040e,\n \"afii10063\", 0xf6c4,\n \"afii10064\", 0xf6c5,\n \"afii10065\", 0x0430,\n \"afii10066\", 0x0431,\n \"afii10067\", 0x0432,\n \"afii10068\", 0x0433,\n \"afii10069\", 0x0434,\n \"afii10070\", 0x0435,\n \"afii10071\", 0x0451,\n \"afii10072\", 0x0436,\n \"afii10073\", 0x0437,\n \"afii10074\", 0x0438,\n \"afii10075\", 0x0439,\n \"afii10076\", 0x043a,\n \"afii10077\", 0x043b,\n \"afii10078\", 0x043c,\n \"afii10079\", 0x043d,\n \"afii10080\", 0x043e,\n \"afii10081\", 0x043f,\n \"afii10082\", 0x0440,\n \"afii10083\", 0x0441,\n \"afii10084\", 0x0442,\n \"afii10085\", 0x0443,\n \"afii10086\", 0x0444,\n \"afii10087\", 0x0445,\n \"afii10088\", 0x0446,\n \"afii10089\", 0x0447,\n \"afii10090\", 0x0448,\n \"afii10091\", 0x0449,\n \"afii10092\", 0x044a,\n \"afii10093\", 0x044b,\n \"afii10094\", 0x044c,\n \"afii10095\", 0x044d,\n \"afii10096\", 0x044e,\n \"afii10097\", 0x044f,\n \"afii10098\", 0x0491,\n \"afii10099\", 0x0452,\n \"afii10100\", 0x0453,\n \"afii10101\", 0x0454,\n \"afii10102\", 0x0455,\n \"afii10103\", 0x0456,\n \"afii10104\", 0x0457,\n \"afii10105\", 0x0458,\n \"afii10106\", 0x0459,\n \"afii10107\", 0x045a,\n \"afii10108\", 0x045b,\n \"afii10109\", 0x045c,\n \"afii10110\", 0x045e,\n \"afii10145\", 0x040f,\n \"afii10146\", 0x0462,\n \"afii10147\", 0x0472,\n \"afii10148\", 0x0474,\n \"afii10192\", 0xf6c6,\n \"afii10193\", 0x045f,\n \"afii10194\", 0x0463,\n \"afii10195\", 0x0473,\n \"afii10196\", 0x0475,\n \"afii10831\", 0xf6c7,\n \"afii10832\", 0xf6c8,\n \"afii10846\", 0x04d9,\n \"afii299\", 0x200e,\n \"afii300\", 0x200f,\n \"afii301\", 0x200d,\n \"afii57381\", 0x066a,\n \"afii57388\", 0x060c,\n \"afii57392\", 0x0660,\n \"afii57393\", 0x0661,\n \"afii57394\", 0x0662,\n \"afii57395\", 0x0663,\n \"afii57396\", 0x0664,\n \"afii57397\", 0x0665,\n \"afii57398\", 0x0666,\n \"afii57399\", 0x0667,\n \"afii57400\", 0x0668,\n \"afii57401\", 0x0669,\n \"afii57403\", 0x061b,\n \"afii57407\", 0x061f,\n \"afii57409\", 0x0621,\n \"afii57410\", 0x0622,\n \"afii57411\", 0x0623,\n \"afii57412\", 0x0624,\n \"afii57413\", 0x0625,\n \"afii57414\", 0x0626,\n \"afii57415\", 0x0627,\n \"afii57416\", 0x0628,\n \"afii57417\", 0x0629,\n \"afii57418\", 0x062a,\n \"afii57419\", 0x062b,\n \"afii57420\", 0x062c,\n \"afii57421\", 0x062d,\n \"afii57422\", 0x062e,\n \"afii57423\", 0x062f,\n \"afii57424\", 0x0630,\n \"afii57425\", 0x0631,\n \"afii57426\", 0x0632,\n \"afii57427\", 0x0633,\n \"afii57428\", 0x0634,\n \"afii57429\", 0x0635,\n \"afii57430\", 0x0636,\n \"afii57431\", 0x0637,\n \"afii57432\", 0x0638,\n \"afii57433\", 0x0639,\n \"afii57434\", 0x063a,\n \"afii57440\", 0x0640,\n \"afii57441\", 0x0641,\n \"afii57442\", 0x0642,\n \"afii57443\", 0x0643,\n \"afii57444\", 0x0644,\n \"afii57445\", 0x0645,\n \"afii57446\", 0x0646,\n \"afii57448\", 0x0648,\n \"afii57449\", 0x0649,\n \"afii57450\", 0x064a,\n \"afii57451\", 0x064b,\n \"afii57452\", 0x064c,\n \"afii57453\", 0x064d,\n \"afii57454\", 0x064e,\n \"afii57455\", 0x064f,\n \"afii57456\", 0x0650,\n \"afii57457\", 0x0651,\n \"afii57458\", 0x0652,\n \"afii57470\", 0x0647,\n \"afii57505\", 0x06a4,\n \"afii57506\", 0x067e,\n \"afii57507\", 0x0686,\n \"afii57508\", 0x0698,\n \"afii57509\", 0x06af,\n \"afii57511\", 0x0679,\n \"afii57512\", 0x0688,\n \"afii57513\", 0x0691,\n \"afii57514\", 0x06ba,\n \"afii57519\", 0x06d2,\n \"afii57534\", 0x06d5,\n \"afii57636\", 0x20aa,\n \"afii57645\", 0x05be,\n \"afii57658\", 0x05c3,\n \"afii57664\", 0x05d0,\n \"afii57665\", 0x05d1,\n \"afii57666\", 0x05d2,\n \"afii57667\", 0x05d3,\n \"afii57668\", 0x05d4,\n \"afii57669\", 0x05d5,\n \"afii57670\", 0x05d6,\n \"afii57671\", 0x05d7,\n \"afii57672\", 0x05d8,\n \"afii57673\", 0x05d9,\n \"afii57674\", 0x05da,\n \"afii57675\", 0x05db,\n \"afii57676\", 0x05dc,\n \"afii57677\", 0x05dd,\n \"afii57678\", 0x05de,\n \"afii57679\", 0x05df,\n \"afii57680\", 0x05e0,\n \"afii57681\", 0x05e1,\n \"afii57682\", 0x05e2,\n \"afii57683\", 0x05e3,\n \"afii57684\", 0x05e4,\n \"afii57685\", 0x05e5,\n \"afii57686\", 0x05e6,\n \"afii57687\", 0x05e7,\n \"afii57688\", 0x05e8,\n \"afii57689\", 0x05e9,\n \"afii57690\", 0x05ea,\n \"afii57694\", 0xfb2a,\n \"afii57695\", 0xfb2b,\n \"afii57700\", 0xfb4b,\n \"afii57705\", 0xfb1f,\n \"afii57716\", 0x05f0,\n \"afii57717\", 0x05f1,\n \"afii57718\", 0x05f2,\n \"afii57723\", 0xfb35,\n \"afii57793\", 0x05b4,\n \"afii57794\", 0x05b5,\n \"afii57795\", 0x05b6,\n \"afii57796\", 0x05bb,\n \"afii57797\", 0x05b8,\n \"afii57798\", 0x05b7,\n \"afii57799\", 0x05b0,\n \"afii57800\", 0x05b2,\n \"afii57801\", 0x05b1,\n \"afii57802\", 0x05b3,\n \"afii57803\", 0x05c2,\n \"afii57804\", 0x05c1,\n \"afii57806\", 0x05b9,\n \"afii57807\", 0x05bc,\n \"afii57839\", 0x05bd,\n \"afii57841\", 0x05bf,\n \"afii57842\", 0x05c0,\n \"afii57929\", 0x02bc,\n \"afii61248\", 0x2105,\n \"afii61289\", 0x2113,\n \"afii61352\", 0x2116,\n \"afii61573\", 0x202c,\n \"afii61574\", 0x202d,\n \"afii61575\", 0x202e,\n \"afii61664\", 0x200c,\n \"afii63167\", 0x066d,\n \"afii64937\", 0x02bd,\n \"agrave\", 0x00e0,\n \"agujarati\", 0x0a85,\n \"agurmukhi\", 0x0a05,\n \"ahiragana\", 0x3042,\n \"ahookabove\", 0x1ea3,\n \"aibengali\", 0x0990,\n \"aibopomofo\", 0x311e,\n \"aideva\", 0x0910,\n \"aiecyrillic\", 0x04d5,\n \"aigujarati\", 0x0a90,\n \"aigurmukhi\", 0x0a10,\n \"aimatragurmukhi\", 0x0a48,\n \"ainarabic\", 0x0639,\n \"ainfinalarabic\", 0xfeca,\n \"aininitialarabic\", 0xfecb,\n \"ainmedialarabic\", 0xfecc,\n \"ainvertedbreve\", 0x0203,\n \"aivowelsignbengali\", 0x09c8,\n \"aivowelsigndeva\", 0x0948,\n \"aivowelsigngujarati\", 0x0ac8,\n \"akatakana\", 0x30a2,\n \"akatakanahalfwidth\", 0xff71,\n \"akorean\", 0x314f,\n \"alef\", 0x05d0,\n \"alefarabic\", 0x0627,\n \"alefdageshhebrew\", 0xfb30,\n \"aleffinalarabic\", 0xfe8e,\n \"alefhamzaabovearabic\", 0x0623,\n \"alefhamzaabovefinalarabic\", 0xfe84,\n \"alefhamzabelowarabic\", 0x0625,\n \"alefhamzabelowfinalarabic\", 0xfe88,\n \"alefhebrew\", 0x05d0,\n \"aleflamedhebrew\", 0xfb4f,\n \"alefmaddaabovearabic\", 0x0622,\n \"alefmaddaabovefinalarabic\", 0xfe82,\n \"alefmaksuraarabic\", 0x0649,\n \"alefmaksurafinalarabic\", 0xfef0,\n \"alefmaksurainitialarabic\", 0xfef3,\n \"alefmaksuramedialarabic\", 0xfef4,\n \"alefpatahhebrew\", 0xfb2e,\n \"alefqamatshebrew\", 0xfb2f,\n \"aleph\", 0x2135,\n \"allequal\", 0x224c,\n \"alpha\", 0x03b1,\n \"alphatonos\", 0x03ac,\n \"amacron\", 0x0101,\n \"amonospace\", 0xff41,\n \"ampersand\", 0x0026,\n \"ampersandmonospace\", 0xff06,\n \"ampersandsmall\", 0xf726,\n \"amsquare\", 0x33c2,\n \"anbopomofo\", 0x3122,\n \"angbopomofo\", 0x3124,\n \"angbracketleft\", 0x3008, // Glyph is missing from Adobe's original list.\n \"angbracketright\", 0x3009, // Glyph is missing from Adobe's original list.\n \"angkhankhuthai\", 0x0e5a,\n \"angle\", 0x2220,\n \"anglebracketleft\", 0x3008,\n \"anglebracketleftvertical\", 0xfe3f,\n \"anglebracketright\", 0x3009,\n \"anglebracketrightvertical\", 0xfe40,\n \"angleleft\", 0x2329,\n \"angleright\", 0x232a,\n \"angstrom\", 0x212b,\n \"anoteleia\", 0x0387,\n \"anudattadeva\", 0x0952,\n \"anusvarabengali\", 0x0982,\n \"anusvaradeva\", 0x0902,\n \"anusvaragujarati\", 0x0a82,\n \"aogonek\", 0x0105,\n \"apaatosquare\", 0x3300,\n \"aparen\", 0x249c,\n \"apostrophearmenian\", 0x055a,\n \"apostrophemod\", 0x02bc,\n \"apple\", 0xf8ff,\n \"approaches\", 0x2250,\n \"approxequal\", 0x2248,\n \"approxequalorimage\", 0x2252,\n \"approximatelyequal\", 0x2245,\n \"araeaekorean\", 0x318e,\n \"araeakorean\", 0x318d,\n \"arc\", 0x2312,\n \"arighthalfring\", 0x1e9a,\n \"aring\", 0x00e5,\n \"aringacute\", 0x01fb,\n \"aringbelow\", 0x1e01,\n \"arrowboth\", 0x2194,\n \"arrowdashdown\", 0x21e3,\n \"arrowdashleft\", 0x21e0,\n \"arrowdashright\", 0x21e2,\n \"arrowdashup\", 0x21e1,\n \"arrowdblboth\", 0x21d4,\n \"arrowdbldown\", 0x21d3,\n \"arrowdblleft\", 0x21d0,\n \"arrowdblright\", 0x21d2,\n \"arrowdblup\", 0x21d1,\n \"arrowdown\", 0x2193,\n \"arrowdownleft\", 0x2199,\n \"arrowdownright\", 0x2198,\n \"arrowdownwhite\", 0x21e9,\n \"arrowheaddownmod\", 0x02c5,\n \"arrowheadleftmod\", 0x02c2,\n \"arrowheadrightmod\", 0x02c3,\n \"arrowheadupmod\", 0x02c4,\n \"arrowhorizex\", 0xf8e7,\n \"arrowleft\", 0x2190,\n \"arrowleftdbl\", 0x21d0,\n \"arrowleftdblstroke\", 0x21cd,\n \"arrowleftoverright\", 0x21c6,\n \"arrowleftwhite\", 0x21e6,\n \"arrowright\", 0x2192,\n \"arrowrightdblstroke\", 0x21cf,\n \"arrowrightheavy\", 0x279e,\n \"arrowrightoverleft\", 0x21c4,\n \"arrowrightwhite\", 0x21e8,\n \"arrowtableft\", 0x21e4,\n \"arrowtabright\", 0x21e5,\n \"arrowup\", 0x2191,\n \"arrowupdn\", 0x2195,\n \"arrowupdnbse\", 0x21a8,\n \"arrowupdownbase\", 0x21a8,\n \"arrowupleft\", 0x2196,\n \"arrowupleftofdown\", 0x21c5,\n \"arrowupright\", 0x2197,\n \"arrowupwhite\", 0x21e7,\n \"arrowvertex\", 0xf8e6,\n \"asciicircum\", 0x005e,\n \"asciicircummonospace\", 0xff3e,\n \"asciitilde\", 0x007e,\n \"asciitildemonospace\", 0xff5e,\n \"ascript\", 0x0251,\n \"ascriptturned\", 0x0252,\n \"asmallhiragana\", 0x3041,\n \"asmallkatakana\", 0x30a1,\n \"asmallkatakanahalfwidth\", 0xff67,\n \"asterisk\", 0x002a,\n \"asteriskaltonearabic\", 0x066d,\n \"asteriskarabic\", 0x066d,\n \"asteriskmath\", 0x2217,\n \"asteriskmonospace\", 0xff0a,\n \"asterisksmall\", 0xfe61,\n \"asterism\", 0x2042,\n \"asuperior\", 0xf6e9,\n \"asymptoticallyequal\", 0x2243,\n \"at\", 0x0040,\n \"atilde\", 0x00e3,\n \"atmonospace\", 0xff20,\n \"atsmall\", 0xfe6b,\n \"aturned\", 0x0250,\n \"aubengali\", 0x0994,\n \"aubopomofo\", 0x3120,\n \"audeva\", 0x0914,\n \"augujarati\", 0x0a94,\n \"augurmukhi\", 0x0a14,\n \"aulengthmarkbengali\", 0x09d7,\n \"aumatragurmukhi\", 0x0a4c,\n \"auvowelsignbengali\", 0x09cc,\n \"auvowelsigndeva\", 0x094c,\n \"auvowelsigngujarati\", 0x0acc,\n \"avagrahadeva\", 0x093d,\n \"aybarmenian\", 0x0561,\n \"ayin\", 0x05e2,\n \"ayinaltonehebrew\", 0xfb20,\n \"ayinhebrew\", 0x05e2,\n \"b\", 0x0062,\n \"babengali\", 0x09ac,\n \"backslash\", 0x005c,\n \"backslashmonospace\", 0xff3c,\n \"badeva\", 0x092c,\n \"bagujarati\", 0x0aac,\n \"bagurmukhi\", 0x0a2c,\n \"bahiragana\", 0x3070,\n \"bahtthai\", 0x0e3f,\n \"bakatakana\", 0x30d0,\n \"bar\", 0x007c,\n \"barmonospace\", 0xff5c,\n \"bbopomofo\", 0x3105,\n \"bcircle\", 0x24d1,\n \"bdotaccent\", 0x1e03,\n \"bdotbelow\", 0x1e05,\n \"beamedsixteenthnotes\", 0x266c,\n \"because\", 0x2235,\n \"becyrillic\", 0x0431,\n \"beharabic\", 0x0628,\n \"behfinalarabic\", 0xfe90,\n \"behinitialarabic\", 0xfe91,\n \"behiragana\", 0x3079,\n \"behmedialarabic\", 0xfe92,\n \"behmeeminitialarabic\", 0xfc9f,\n \"behmeemisolatedarabic\", 0xfc08,\n \"behnoonfinalarabic\", 0xfc6d,\n \"bekatakana\", 0x30d9,\n \"benarmenian\", 0x0562,\n \"bet\", 0x05d1,\n \"beta\", 0x03b2,\n \"betasymbolgreek\", 0x03d0,\n \"betdagesh\", 0xfb31,\n \"betdageshhebrew\", 0xfb31,\n \"bethebrew\", 0x05d1,\n \"betrafehebrew\", 0xfb4c,\n \"bhabengali\", 0x09ad,\n \"bhadeva\", 0x092d,\n \"bhagujarati\", 0x0aad,\n \"bhagurmukhi\", 0x0a2d,\n \"bhook\", 0x0253,\n \"bihiragana\", 0x3073,\n \"bikatakana\", 0x30d3,\n \"bilabialclick\", 0x0298,\n \"bindigurmukhi\", 0x0a02,\n \"birusquare\", 0x3331,\n \"blackcircle\", 0x25cf,\n \"blackdiamond\", 0x25c6,\n \"blackdownpointingtriangle\", 0x25bc,\n \"blackleftpointingpointer\", 0x25c4,\n \"blackleftpointingtriangle\", 0x25c0,\n \"blacklenticularbracketleft\", 0x3010,\n \"blacklenticularbracketleftvertical\", 0xfe3b,\n \"blacklenticularbracketright\", 0x3011,\n \"blacklenticularbracketrightvertical\", 0xfe3c,\n \"blacklowerlefttriangle\", 0x25e3,\n \"blacklowerrighttriangle\", 0x25e2,\n \"blackrectangle\", 0x25ac,\n \"blackrightpointingpointer\", 0x25ba,\n \"blackrightpointingtriangle\", 0x25b6,\n \"blacksmallsquare\", 0x25aa,\n \"blacksmilingface\", 0x263b,\n \"blacksquare\", 0x25a0,\n \"blackstar\", 0x2605,\n \"blackupperlefttriangle\", 0x25e4,\n \"blackupperrighttriangle\", 0x25e5,\n \"blackuppointingsmalltriangle\", 0x25b4,\n \"blackuppointingtriangle\", 0x25b2,\n \"blank\", 0x2423,\n \"blinebelow\", 0x1e07,\n \"block\", 0x2588,\n \"bmonospace\", 0xff42,\n \"bobaimaithai\", 0x0e1a,\n \"bohiragana\", 0x307c,\n \"bokatakana\", 0x30dc,\n \"bparen\", 0x249d,\n \"bqsquare\", 0x33c3,\n \"braceex\", 0xf8f4,\n \"braceleft\", 0x007b,\n \"braceleftbt\", 0xf8f3,\n \"braceleftmid\", 0xf8f2,\n \"braceleftmonospace\", 0xff5b,\n \"braceleftsmall\", 0xfe5b,\n \"bracelefttp\", 0xf8f1,\n \"braceleftvertical\", 0xfe37,\n \"braceright\", 0x007d,\n \"bracerightbt\", 0xf8fe,\n \"bracerightmid\", 0xf8fd,\n \"bracerightmonospace\", 0xff5d,\n \"bracerightsmall\", 0xfe5c,\n \"bracerighttp\", 0xf8fc,\n \"bracerightvertical\", 0xfe38,\n \"bracketleft\", 0x005b,\n \"bracketleftbt\", 0xf8f0,\n \"bracketleftex\", 0xf8ef,\n \"bracketleftmonospace\", 0xff3b,\n \"bracketlefttp\", 0xf8ee,\n \"bracketright\", 0x005d,\n \"bracketrightbt\", 0xf8fb,\n \"bracketrightex\", 0xf8fa,\n \"bracketrightmonospace\", 0xff3d,\n \"bracketrighttp\", 0xf8f9,\n \"breve\", 0x02d8,\n \"brevebelowcmb\", 0x032e,\n \"brevecmb\", 0x0306,\n \"breveinvertedbelowcmb\", 0x032f,\n \"breveinvertedcmb\", 0x0311,\n \"breveinverteddoublecmb\", 0x0361,\n \"bridgebelowcmb\", 0x032a,\n \"bridgeinvertedbelowcmb\", 0x033a,\n \"brokenbar\", 0x00a6,\n \"bstroke\", 0x0180,\n \"bsuperior\", 0xf6ea,\n \"btopbar\", 0x0183,\n \"buhiragana\", 0x3076,\n \"bukatakana\", 0x30d6,\n \"bullet\", 0x2022,\n \"bulletinverse\", 0x25d8,\n \"bulletoperator\", 0x2219,\n \"bullseye\", 0x25ce,\n \"c\", 0x0063,\n \"caarmenian\", 0x056e,\n \"cabengali\", 0x099a,\n \"cacute\", 0x0107,\n \"cadeva\", 0x091a,\n \"cagujarati\", 0x0a9a,\n \"cagurmukhi\", 0x0a1a,\n \"calsquare\", 0x3388,\n \"candrabindubengali\", 0x0981,\n \"candrabinducmb\", 0x0310,\n \"candrabindudeva\", 0x0901,\n \"candrabindugujarati\", 0x0a81,\n \"capslock\", 0x21ea,\n \"careof\", 0x2105,\n \"caron\", 0x02c7,\n \"caronbelowcmb\", 0x032c,\n \"caroncmb\", 0x030c,\n \"carriagereturn\", 0x21b5,\n \"cbopomofo\", 0x3118,\n \"ccaron\", 0x010d,\n \"ccedilla\", 0x00e7,\n \"ccedillaacute\", 0x1e09,\n \"ccircle\", 0x24d2,\n \"ccircumflex\", 0x0109,\n \"ccurl\", 0x0255,\n \"cdot\", 0x010b,\n \"cdotaccent\", 0x010b,\n \"cdsquare\", 0x33c5,\n \"cedilla\", 0x00b8,\n \"cedillacmb\", 0x0327,\n \"cent\", 0x00a2,\n \"centigrade\", 0x2103,\n \"centinferior\", 0xf6df,\n \"centmonospace\", 0xffe0,\n \"centoldstyle\", 0xf7a2,\n \"centsuperior\", 0xf6e0,\n \"chaarmenian\", 0x0579,\n \"chabengali\", 0x099b,\n \"chadeva\", 0x091b,\n \"chagujarati\", 0x0a9b,\n \"chagurmukhi\", 0x0a1b,\n \"chbopomofo\", 0x3114,\n \"cheabkhasiancyrillic\", 0x04bd,\n \"checkmark\", 0x2713,\n \"checyrillic\", 0x0447,\n \"chedescenderabkhasiancyrillic\", 0x04bf,\n \"chedescendercyrillic\", 0x04b7,\n \"chedieresiscyrillic\", 0x04f5,\n \"cheharmenian\", 0x0573,\n \"chekhakassiancyrillic\", 0x04cc,\n \"cheverticalstrokecyrillic\", 0x04b9,\n \"chi\", 0x03c7,\n \"chieuchacirclekorean\", 0x3277,\n \"chieuchaparenkorean\", 0x3217,\n \"chieuchcirclekorean\", 0x3269,\n \"chieuchkorean\", 0x314a,\n \"chieuchparenkorean\", 0x3209,\n \"chochangthai\", 0x0e0a,\n \"chochanthai\", 0x0e08,\n \"chochingthai\", 0x0e09,\n \"chochoethai\", 0x0e0c,\n \"chook\", 0x0188,\n \"cieucacirclekorean\", 0x3276,\n \"cieucaparenkorean\", 0x3216,\n \"cieuccirclekorean\", 0x3268,\n \"cieuckorean\", 0x3148,\n \"cieucparenkorean\", 0x3208,\n \"cieucuparenkorean\", 0x321c,\n \"circle\", 0x25cb,\n \"circlecopyrt\", 0x00a9, // Glyph is missing from Adobe's original list.\n \"circlemultiply\", 0x2297,\n \"circleot\", 0x2299,\n \"circleplus\", 0x2295,\n \"circlepostalmark\", 0x3036,\n \"circlewithlefthalfblack\", 0x25d0,\n \"circlewithrighthalfblack\", 0x25d1,\n \"circumflex\", 0x02c6,\n \"circumflexbelowcmb\", 0x032d,\n \"circumflexcmb\", 0x0302,\n \"clear\", 0x2327,\n \"clickalveolar\", 0x01c2,\n \"clickdental\", 0x01c0,\n \"clicklateral\", 0x01c1,\n \"clickretroflex\", 0x01c3,\n \"club\", 0x2663,\n \"clubsuitblack\", 0x2663,\n \"clubsuitwhite\", 0x2667,\n \"cmcubedsquare\", 0x33a4,\n \"cmonospace\", 0xff43,\n \"cmsquaredsquare\", 0x33a0,\n \"coarmenian\", 0x0581,\n \"colon\", 0x003a,\n \"colonmonetary\", 0x20a1,\n \"colonmonospace\", 0xff1a,\n \"colonsign\", 0x20a1,\n \"colonsmall\", 0xfe55,\n \"colontriangularhalfmod\", 0x02d1,\n \"colontriangularmod\", 0x02d0,\n \"comma\", 0x002c,\n \"commaabovecmb\", 0x0313,\n \"commaaboverightcmb\", 0x0315,\n \"commaaccent\", 0xf6c3,\n \"commaarabic\", 0x060c,\n \"commaarmenian\", 0x055d,\n \"commainferior\", 0xf6e1,\n \"commamonospace\", 0xff0c,\n \"commareversedabovecmb\", 0x0314,\n \"commareversedmod\", 0x02bd,\n \"commasmall\", 0xfe50,\n \"commasuperior\", 0xf6e2,\n \"commaturnedabovecmb\", 0x0312,\n \"commaturnedmod\", 0x02bb,\n \"compass\", 0x263c,\n \"congruent\", 0x2245,\n \"contourintegral\", 0x222e,\n \"control\", 0x2303,\n \"controlACK\", 0x0006,\n \"controlBEL\", 0x0007,\n \"controlBS\", 0x0008,\n \"controlCAN\", 0x0018,\n \"controlCR\", 0x000d,\n \"controlDC1\", 0x0011,\n \"controlDC2\", 0x0012,\n \"controlDC3\", 0x0013,\n \"controlDC4\", 0x0014,\n \"controlDEL\", 0x007f,\n \"controlDLE\", 0x0010,\n \"controlEM\", 0x0019,\n \"controlENQ\", 0x0005,\n \"controlEOT\", 0x0004,\n \"controlESC\", 0x001b,\n \"controlETB\", 0x0017,\n \"controlETX\", 0x0003,\n \"controlFF\", 0x000c,\n \"controlFS\", 0x001c,\n \"controlGS\", 0x001d,\n \"controlHT\", 0x0009,\n \"controlLF\", 0x000a,\n \"controlNAK\", 0x0015,\n \"controlNULL\", 0x0000, // Glyph is missing from Adobe's original list.\n \"controlRS\", 0x001e,\n \"controlSI\", 0x000f,\n \"controlSO\", 0x000e,\n \"controlSOT\", 0x0002,\n \"controlSTX\", 0x0001,\n \"controlSUB\", 0x001a,\n \"controlSYN\", 0x0016,\n \"controlUS\", 0x001f,\n \"controlVT\", 0x000b,\n \"copyright\", 0x00a9,\n \"copyrightsans\", 0xf8e9,\n \"copyrightserif\", 0xf6d9,\n \"cornerbracketleft\", 0x300c,\n \"cornerbracketlefthalfwidth\", 0xff62,\n \"cornerbracketleftvertical\", 0xfe41,\n \"cornerbracketright\", 0x300d,\n \"cornerbracketrighthalfwidth\", 0xff63,\n \"cornerbracketrightvertical\", 0xfe42,\n \"corporationsquare\", 0x337f,\n \"cosquare\", 0x33c7,\n \"coverkgsquare\", 0x33c6,\n \"cparen\", 0x249e,\n \"cruzeiro\", 0x20a2,\n \"cstretched\", 0x0297,\n \"curlyand\", 0x22cf,\n \"curlyor\", 0x22ce,\n \"currency\", 0x00a4,\n \"cyrBreve\", 0xf6d1,\n \"cyrFlex\", 0xf6d2,\n \"cyrbreve\", 0xf6d4,\n \"cyrflex\", 0xf6d5,\n \"d\", 0x0064,\n \"daarmenian\", 0x0564,\n \"dabengali\", 0x09a6,\n \"dadarabic\", 0x0636,\n \"dadeva\", 0x0926,\n \"dadfinalarabic\", 0xfebe,\n \"dadinitialarabic\", 0xfebf,\n \"dadmedialarabic\", 0xfec0,\n \"dagesh\", 0x05bc,\n \"dageshhebrew\", 0x05bc,\n \"dagger\", 0x2020,\n \"daggerdbl\", 0x2021,\n \"dagujarati\", 0x0aa6,\n \"dagurmukhi\", 0x0a26,\n \"dahiragana\", 0x3060,\n \"dakatakana\", 0x30c0,\n \"dalarabic\", 0x062f,\n \"dalet\", 0x05d3,\n \"daletdagesh\", 0xfb33,\n \"daletdageshhebrew\", 0xfb33,\n \"dalethebrew\", 0x05d3,\n \"dalfinalarabic\", 0xfeaa,\n \"dammaarabic\", 0x064f,\n \"dammalowarabic\", 0x064f,\n \"dammatanaltonearabic\", 0x064c,\n \"dammatanarabic\", 0x064c,\n \"danda\", 0x0964,\n \"dargahebrew\", 0x05a7,\n \"dargalefthebrew\", 0x05a7,\n \"dasiapneumatacyrilliccmb\", 0x0485,\n \"dblGrave\", 0xf6d3,\n \"dblanglebracketleft\", 0x300a,\n \"dblanglebracketleftvertical\", 0xfe3d,\n \"dblanglebracketright\", 0x300b,\n \"dblanglebracketrightvertical\", 0xfe3e,\n \"dblarchinvertedbelowcmb\", 0x032b,\n \"dblarrowleft\", 0x21d4,\n \"dblarrowright\", 0x21d2,\n \"dbldanda\", 0x0965,\n \"dblgrave\", 0xf6d6,\n \"dblgravecmb\", 0x030f,\n \"dblintegral\", 0x222c,\n \"dbllowline\", 0x2017,\n \"dbllowlinecmb\", 0x0333,\n \"dbloverlinecmb\", 0x033f,\n \"dblprimemod\", 0x02ba,\n \"dblverticalbar\", 0x2016,\n \"dblverticallineabovecmb\", 0x030e,\n \"dbopomofo\", 0x3109,\n \"dbsquare\", 0x33c8,\n \"dcaron\", 0x010f,\n \"dcedilla\", 0x1e11,\n \"dcircle\", 0x24d3,\n \"dcircumflexbelow\", 0x1e13,\n \"dcroat\", 0x0111,\n \"ddabengali\", 0x09a1,\n \"ddadeva\", 0x0921,\n \"ddagujarati\", 0x0aa1,\n \"ddagurmukhi\", 0x0a21,\n \"ddalarabic\", 0x0688,\n \"ddalfinalarabic\", 0xfb89,\n \"dddhadeva\", 0x095c,\n \"ddhabengali\", 0x09a2,\n \"ddhadeva\", 0x0922,\n \"ddhagujarati\", 0x0aa2,\n \"ddhagurmukhi\", 0x0a22,\n \"ddotaccent\", 0x1e0b,\n \"ddotbelow\", 0x1e0d,\n \"decimalseparatorarabic\", 0x066b,\n \"decimalseparatorpersian\", 0x066b,\n \"decyrillic\", 0x0434,\n \"degree\", 0x00b0,\n \"dehihebrew\", 0x05ad,\n \"dehiragana\", 0x3067,\n \"deicoptic\", 0x03ef,\n \"dekatakana\", 0x30c7,\n \"deleteleft\", 0x232b,\n \"deleteright\", 0x2326,\n \"delta\", 0x03b4,\n \"deltaturned\", 0x018d,\n \"denominatorminusonenumeratorbengali\", 0x09f8,\n \"dezh\", 0x02a4,\n \"dhabengali\", 0x09a7,\n \"dhadeva\", 0x0927,\n \"dhagujarati\", 0x0aa7,\n \"dhagurmukhi\", 0x0a27,\n \"dhook\", 0x0257,\n \"dialytikatonos\", 0x0385,\n \"dialytikatonoscmb\", 0x0344,\n \"diamond\", 0x2666,\n \"diamondsuitwhite\", 0x2662,\n \"dieresis\", 0x00a8,\n \"dieresisacute\", 0xf6d7,\n \"dieresisbelowcmb\", 0x0324,\n \"dieresiscmb\", 0x0308,\n \"dieresisgrave\", 0xf6d8,\n \"dieresistonos\", 0x0385,\n \"dihiragana\", 0x3062,\n \"dikatakana\", 0x30c2,\n \"dittomark\", 0x3003,\n \"divide\", 0x00f7,\n \"divides\", 0x2223,\n \"divisionslash\", 0x2215,\n \"djecyrillic\", 0x0452,\n \"dkshade\", 0x2593,\n \"dlinebelow\", 0x1e0f,\n \"dlsquare\", 0x3397,\n \"dmacron\", 0x0111,\n \"dmonospace\", 0xff44,\n \"dnblock\", 0x2584,\n \"dochadathai\", 0x0e0e,\n \"dodekthai\", 0x0e14,\n \"dohiragana\", 0x3069,\n \"dokatakana\", 0x30c9,\n \"dollar\", 0x0024,\n \"dollarinferior\", 0xf6e3,\n \"dollarmonospace\", 0xff04,\n \"dollaroldstyle\", 0xf724,\n \"dollarsmall\", 0xfe69,\n \"dollarsuperior\", 0xf6e4,\n \"dong\", 0x20ab,\n \"dorusquare\", 0x3326,\n \"dotaccent\", 0x02d9,\n \"dotaccentcmb\", 0x0307,\n \"dotbelowcmb\", 0x0323,\n \"dotbelowcomb\", 0x0323,\n \"dotkatakana\", 0x30fb,\n \"dotlessi\", 0x0131,\n \"dotlessj\", 0xf6be,\n \"dotlessjstrokehook\", 0x0284,\n \"dotmath\", 0x22c5,\n \"dottedcircle\", 0x25cc,\n \"doubleyodpatah\", 0xfb1f,\n \"doubleyodpatahhebrew\", 0xfb1f,\n \"downtackbelowcmb\", 0x031e,\n \"downtackmod\", 0x02d5,\n \"dparen\", 0x249f,\n \"dsuperior\", 0xf6eb,\n \"dtail\", 0x0256,\n \"dtopbar\", 0x018c,\n \"duhiragana\", 0x3065,\n \"dukatakana\", 0x30c5,\n \"dz\", 0x01f3,\n \"dzaltone\", 0x02a3,\n \"dzcaron\", 0x01c6,\n \"dzcurl\", 0x02a5,\n \"dzeabkhasiancyrillic\", 0x04e1,\n \"dzecyrillic\", 0x0455,\n \"dzhecyrillic\", 0x045f,\n \"e\", 0x0065,\n \"eacute\", 0x00e9,\n \"earth\", 0x2641,\n \"ebengali\", 0x098f,\n \"ebopomofo\", 0x311c,\n \"ebreve\", 0x0115,\n \"ecandradeva\", 0x090d,\n \"ecandragujarati\", 0x0a8d,\n \"ecandravowelsigndeva\", 0x0945,\n \"ecandravowelsigngujarati\", 0x0ac5,\n \"ecaron\", 0x011b,\n \"ecedillabreve\", 0x1e1d,\n \"echarmenian\", 0x0565,\n \"echyiwnarmenian\", 0x0587,\n \"ecircle\", 0x24d4,\n \"ecircumflex\", 0x00ea,\n \"ecircumflexacute\", 0x1ebf,\n \"ecircumflexbelow\", 0x1e19,\n \"ecircumflexdotbelow\", 0x1ec7,\n \"ecircumflexgrave\", 0x1ec1,\n \"ecircumflexhookabove\", 0x1ec3,\n \"ecircumflextilde\", 0x1ec5,\n \"ecyrillic\", 0x0454,\n \"edblgrave\", 0x0205,\n \"edeva\", 0x090f,\n \"edieresis\", 0x00eb,\n \"edot\", 0x0117,\n \"edotaccent\", 0x0117,\n \"edotbelow\", 0x1eb9,\n \"eegurmukhi\", 0x0a0f,\n \"eematragurmukhi\", 0x0a47,\n \"efcyrillic\", 0x0444,\n \"egrave\", 0x00e8,\n \"egujarati\", 0x0a8f,\n \"eharmenian\", 0x0567,\n \"ehbopomofo\", 0x311d,\n \"ehiragana\", 0x3048,\n \"ehookabove\", 0x1ebb,\n \"eibopomofo\", 0x311f,\n \"eight\", 0x0038,\n \"eightarabic\", 0x0668,\n \"eightbengali\", 0x09ee,\n \"eightcircle\", 0x2467,\n \"eightcircleinversesansserif\", 0x2791,\n \"eightdeva\", 0x096e,\n \"eighteencircle\", 0x2471,\n \"eighteenparen\", 0x2485,\n \"eighteenperiod\", 0x2499,\n \"eightgujarati\", 0x0aee,\n \"eightgurmukhi\", 0x0a6e,\n \"eighthackarabic\", 0x0668,\n \"eighthangzhou\", 0x3028,\n \"eighthnotebeamed\", 0x266b,\n \"eightideographicparen\", 0x3227,\n \"eightinferior\", 0x2088,\n \"eightmonospace\", 0xff18,\n \"eightoldstyle\", 0xf738,\n \"eightparen\", 0x247b,\n \"eightperiod\", 0x248f,\n \"eightpersian\", 0x06f8,\n \"eightroman\", 0x2177,\n \"eightsuperior\", 0x2078,\n \"eightthai\", 0x0e58,\n \"einvertedbreve\", 0x0207,\n \"eiotifiedcyrillic\", 0x0465,\n \"ekatakana\", 0x30a8,\n \"ekatakanahalfwidth\", 0xff74,\n \"ekonkargurmukhi\", 0x0a74,\n \"ekorean\", 0x3154,\n \"elcyrillic\", 0x043b,\n \"element\", 0x2208,\n \"elevencircle\", 0x246a,\n \"elevenparen\", 0x247e,\n \"elevenperiod\", 0x2492,\n \"elevenroman\", 0x217a,\n \"ellipsis\", 0x2026,\n \"ellipsisvertical\", 0x22ee,\n \"emacron\", 0x0113,\n \"emacronacute\", 0x1e17,\n \"emacrongrave\", 0x1e15,\n \"emcyrillic\", 0x043c,\n \"emdash\", 0x2014,\n \"emdashvertical\", 0xfe31,\n \"emonospace\", 0xff45,\n \"emphasismarkarmenian\", 0x055b,\n \"emptyset\", 0x2205,\n \"enbopomofo\", 0x3123,\n \"encyrillic\", 0x043d,\n \"endash\", 0x2013,\n \"endashvertical\", 0xfe32,\n \"endescendercyrillic\", 0x04a3,\n \"eng\", 0x014b,\n \"engbopomofo\", 0x3125,\n \"enghecyrillic\", 0x04a5,\n \"enhookcyrillic\", 0x04c8,\n \"enspace\", 0x2002,\n \"eogonek\", 0x0119,\n \"eokorean\", 0x3153,\n \"eopen\", 0x025b,\n \"eopenclosed\", 0x029a,\n \"eopenreversed\", 0x025c,\n \"eopenreversedclosed\", 0x025e,\n \"eopenreversedhook\", 0x025d,\n \"eparen\", 0x24a0,\n \"epsilon\", 0x03b5,\n \"epsilontonos\", 0x03ad,\n \"equal\", 0x003d,\n \"equalmonospace\", 0xff1d,\n \"equalsmall\", 0xfe66,\n \"equalsuperior\", 0x207c,\n \"equivalence\", 0x2261,\n \"erbopomofo\", 0x3126,\n \"ercyrillic\", 0x0440,\n \"ereversed\", 0x0258,\n \"ereversedcyrillic\", 0x044d,\n \"escyrillic\", 0x0441,\n \"esdescendercyrillic\", 0x04ab,\n \"esh\", 0x0283,\n \"eshcurl\", 0x0286,\n \"eshortdeva\", 0x090e,\n \"eshortvowelsigndeva\", 0x0946,\n \"eshreversedloop\", 0x01aa,\n \"eshsquatreversed\", 0x0285,\n \"esmallhiragana\", 0x3047,\n \"esmallkatakana\", 0x30a7,\n \"esmallkatakanahalfwidth\", 0xff6a,\n \"estimated\", 0x212e,\n \"esuperior\", 0xf6ec,\n \"eta\", 0x03b7,\n \"etarmenian\", 0x0568,\n \"etatonos\", 0x03ae,\n \"eth\", 0x00f0,\n \"etilde\", 0x1ebd,\n \"etildebelow\", 0x1e1b,\n \"etnahtafoukhhebrew\", 0x0591,\n \"etnahtafoukhlefthebrew\", 0x0591,\n \"etnahtahebrew\", 0x0591,\n \"etnahtalefthebrew\", 0x0591,\n \"eturned\", 0x01dd,\n \"eukorean\", 0x3161,\n \"euro\", 0x20ac,\n \"evowelsignbengali\", 0x09c7,\n \"evowelsigndeva\", 0x0947,\n \"evowelsigngujarati\", 0x0ac7,\n \"exclam\", 0x0021,\n \"exclamarmenian\", 0x055c,\n \"exclamdbl\", 0x203c,\n \"exclamdown\", 0x00a1,\n \"exclamdownsmall\", 0xf7a1,\n \"exclammonospace\", 0xff01,\n \"exclamsmall\", 0xf721,\n \"existential\", 0x2203,\n \"ezh\", 0x0292,\n \"ezhcaron\", 0x01ef,\n \"ezhcurl\", 0x0293,\n \"ezhreversed\", 0x01b9,\n \"ezhtail\", 0x01ba,\n \"f\", 0x0066,\n \"fadeva\", 0x095e,\n \"fagurmukhi\", 0x0a5e,\n \"fahrenheit\", 0x2109,\n \"fathaarabic\", 0x064e,\n \"fathalowarabic\", 0x064e,\n \"fathatanarabic\", 0x064b,\n \"fbopomofo\", 0x3108,\n \"fcircle\", 0x24d5,\n \"fdotaccent\", 0x1e1f,\n \"feharabic\", 0x0641,\n \"feharmenian\", 0x0586,\n \"fehfinalarabic\", 0xfed2,\n \"fehinitialarabic\", 0xfed3,\n \"fehmedialarabic\", 0xfed4,\n \"feicoptic\", 0x03e5,\n \"female\", 0x2640,\n \"ff\", 0xfb00,\n \"f_f\", 0xfb00, // Fixes issue 11016.\n \"ffi\", 0xfb03,\n \"ffl\", 0xfb04,\n \"fi\", 0xfb01,\n \"fifteencircle\", 0x246e,\n \"fifteenparen\", 0x2482,\n \"fifteenperiod\", 0x2496,\n \"figuredash\", 0x2012,\n \"filledbox\", 0x25a0,\n \"filledrect\", 0x25ac,\n \"finalkaf\", 0x05da,\n \"finalkafdagesh\", 0xfb3a,\n \"finalkafdageshhebrew\", 0xfb3a,\n \"finalkafhebrew\", 0x05da,\n \"finalmem\", 0x05dd,\n \"finalmemhebrew\", 0x05dd,\n \"finalnun\", 0x05df,\n \"finalnunhebrew\", 0x05df,\n \"finalpe\", 0x05e3,\n \"finalpehebrew\", 0x05e3,\n \"finaltsadi\", 0x05e5,\n \"finaltsadihebrew\", 0x05e5,\n \"firsttonechinese\", 0x02c9,\n \"fisheye\", 0x25c9,\n \"fitacyrillic\", 0x0473,\n \"five\", 0x0035,\n \"fivearabic\", 0x0665,\n \"fivebengali\", 0x09eb,\n \"fivecircle\", 0x2464,\n \"fivecircleinversesansserif\", 0x278e,\n \"fivedeva\", 0x096b,\n \"fiveeighths\", 0x215d,\n \"fivegujarati\", 0x0aeb,\n \"fivegurmukhi\", 0x0a6b,\n \"fivehackarabic\", 0x0665,\n \"fivehangzhou\", 0x3025,\n \"fiveideographicparen\", 0x3224,\n \"fiveinferior\", 0x2085,\n \"fivemonospace\", 0xff15,\n \"fiveoldstyle\", 0xf735,\n \"fiveparen\", 0x2478,\n \"fiveperiod\", 0x248c,\n \"fivepersian\", 0x06f5,\n \"fiveroman\", 0x2174,\n \"fivesuperior\", 0x2075,\n \"fivethai\", 0x0e55,\n \"fl\", 0xfb02,\n \"florin\", 0x0192,\n \"fmonospace\", 0xff46,\n \"fmsquare\", 0x3399,\n \"fofanthai\", 0x0e1f,\n \"fofathai\", 0x0e1d,\n \"fongmanthai\", 0x0e4f,\n \"forall\", 0x2200,\n \"four\", 0x0034,\n \"fourarabic\", 0x0664,\n \"fourbengali\", 0x09ea,\n \"fourcircle\", 0x2463,\n \"fourcircleinversesansserif\", 0x278d,\n \"fourdeva\", 0x096a,\n \"fourgujarati\", 0x0aea,\n \"fourgurmukhi\", 0x0a6a,\n \"fourhackarabic\", 0x0664,\n \"fourhangzhou\", 0x3024,\n \"fourideographicparen\", 0x3223,\n \"fourinferior\", 0x2084,\n \"fourmonospace\", 0xff14,\n \"fournumeratorbengali\", 0x09f7,\n \"fouroldstyle\", 0xf734,\n \"fourparen\", 0x2477,\n \"fourperiod\", 0x248b,\n \"fourpersian\", 0x06f4,\n \"fourroman\", 0x2173,\n \"foursuperior\", 0x2074,\n \"fourteencircle\", 0x246d,\n \"fourteenparen\", 0x2481,\n \"fourteenperiod\", 0x2495,\n \"fourthai\", 0x0e54,\n \"fourthtonechinese\", 0x02cb,\n \"fparen\", 0x24a1,\n \"fraction\", 0x2044,\n \"franc\", 0x20a3,\n \"g\", 0x0067,\n \"gabengali\", 0x0997,\n \"gacute\", 0x01f5,\n \"gadeva\", 0x0917,\n \"gafarabic\", 0x06af,\n \"gaffinalarabic\", 0xfb93,\n \"gafinitialarabic\", 0xfb94,\n \"gafmedialarabic\", 0xfb95,\n \"gagujarati\", 0x0a97,\n \"gagurmukhi\", 0x0a17,\n \"gahiragana\", 0x304c,\n \"gakatakana\", 0x30ac,\n \"gamma\", 0x03b3,\n \"gammalatinsmall\", 0x0263,\n \"gammasuperior\", 0x02e0,\n \"gangiacoptic\", 0x03eb,\n \"gbopomofo\", 0x310d,\n \"gbreve\", 0x011f,\n \"gcaron\", 0x01e7,\n \"gcedilla\", 0x0123,\n \"gcircle\", 0x24d6,\n \"gcircumflex\", 0x011d,\n \"gcommaaccent\", 0x0123,\n \"gdot\", 0x0121,\n \"gdotaccent\", 0x0121,\n \"gecyrillic\", 0x0433,\n \"gehiragana\", 0x3052,\n \"gekatakana\", 0x30b2,\n \"geometricallyequal\", 0x2251,\n \"gereshaccenthebrew\", 0x059c,\n \"gereshhebrew\", 0x05f3,\n \"gereshmuqdamhebrew\", 0x059d,\n \"germandbls\", 0x00df,\n \"gershayimaccenthebrew\", 0x059e,\n \"gershayimhebrew\", 0x05f4,\n \"getamark\", 0x3013,\n \"ghabengali\", 0x0998,\n \"ghadarmenian\", 0x0572,\n \"ghadeva\", 0x0918,\n \"ghagujarati\", 0x0a98,\n \"ghagurmukhi\", 0x0a18,\n \"ghainarabic\", 0x063a,\n \"ghainfinalarabic\", 0xfece,\n \"ghaininitialarabic\", 0xfecf,\n \"ghainmedialarabic\", 0xfed0,\n \"ghemiddlehookcyrillic\", 0x0495,\n \"ghestrokecyrillic\", 0x0493,\n \"gheupturncyrillic\", 0x0491,\n \"ghhadeva\", 0x095a,\n \"ghhagurmukhi\", 0x0a5a,\n \"ghook\", 0x0260,\n \"ghzsquare\", 0x3393,\n \"gihiragana\", 0x304e,\n \"gikatakana\", 0x30ae,\n \"gimarmenian\", 0x0563,\n \"gimel\", 0x05d2,\n \"gimeldagesh\", 0xfb32,\n \"gimeldageshhebrew\", 0xfb32,\n \"gimelhebrew\", 0x05d2,\n \"gjecyrillic\", 0x0453,\n \"glottalinvertedstroke\", 0x01be,\n \"glottalstop\", 0x0294,\n \"glottalstopinverted\", 0x0296,\n \"glottalstopmod\", 0x02c0,\n \"glottalstopreversed\", 0x0295,\n \"glottalstopreversedmod\", 0x02c1,\n \"glottalstopreversedsuperior\", 0x02e4,\n \"glottalstopstroke\", 0x02a1,\n \"glottalstopstrokereversed\", 0x02a2,\n \"gmacron\", 0x1e21,\n \"gmonospace\", 0xff47,\n \"gohiragana\", 0x3054,\n \"gokatakana\", 0x30b4,\n \"gparen\", 0x24a2,\n \"gpasquare\", 0x33ac,\n \"gradient\", 0x2207,\n \"grave\", 0x0060,\n \"gravebelowcmb\", 0x0316,\n \"gravecmb\", 0x0300,\n \"gravecomb\", 0x0300,\n \"gravedeva\", 0x0953,\n \"gravelowmod\", 0x02ce,\n \"gravemonospace\", 0xff40,\n \"gravetonecmb\", 0x0340,\n \"greater\", 0x003e,\n \"greaterequal\", 0x2265,\n \"greaterequalorless\", 0x22db,\n \"greatermonospace\", 0xff1e,\n \"greaterorequivalent\", 0x2273,\n \"greaterorless\", 0x2277,\n \"greateroverequal\", 0x2267,\n \"greatersmall\", 0xfe65,\n \"gscript\", 0x0261,\n \"gstroke\", 0x01e5,\n \"guhiragana\", 0x3050,\n \"guillemotleft\", 0x00ab,\n \"guillemotright\", 0x00bb,\n \"guilsinglleft\", 0x2039,\n \"guilsinglright\", 0x203a,\n \"gukatakana\", 0x30b0,\n \"guramusquare\", 0x3318,\n \"gysquare\", 0x33c9,\n \"h\", 0x0068,\n \"haabkhasiancyrillic\", 0x04a9,\n \"haaltonearabic\", 0x06c1,\n \"habengali\", 0x09b9,\n \"hadescendercyrillic\", 0x04b3,\n \"hadeva\", 0x0939,\n \"hagujarati\", 0x0ab9,\n \"hagurmukhi\", 0x0a39,\n \"haharabic\", 0x062d,\n \"hahfinalarabic\", 0xfea2,\n \"hahinitialarabic\", 0xfea3,\n \"hahiragana\", 0x306f,\n \"hahmedialarabic\", 0xfea4,\n \"haitusquare\", 0x332a,\n \"hakatakana\", 0x30cf,\n \"hakatakanahalfwidth\", 0xff8a,\n \"halantgurmukhi\", 0x0a4d,\n \"hamzaarabic\", 0x0621,\n \"hamzalowarabic\", 0x0621,\n \"hangulfiller\", 0x3164,\n \"hardsigncyrillic\", 0x044a,\n \"harpoonleftbarbup\", 0x21bc,\n \"harpoonrightbarbup\", 0x21c0,\n \"hasquare\", 0x33ca,\n \"hatafpatah\", 0x05b2,\n \"hatafpatah16\", 0x05b2,\n \"hatafpatah23\", 0x05b2,\n \"hatafpatah2f\", 0x05b2,\n \"hatafpatahhebrew\", 0x05b2,\n \"hatafpatahnarrowhebrew\", 0x05b2,\n \"hatafpatahquarterhebrew\", 0x05b2,\n \"hatafpatahwidehebrew\", 0x05b2,\n \"hatafqamats\", 0x05b3,\n \"hatafqamats1b\", 0x05b3,\n \"hatafqamats28\", 0x05b3,\n \"hatafqamats34\", 0x05b3,\n \"hatafqamatshebrew\", 0x05b3,\n \"hatafqamatsnarrowhebrew\", 0x05b3,\n \"hatafqamatsquarterhebrew\", 0x05b3,\n \"hatafqamatswidehebrew\", 0x05b3,\n \"hatafsegol\", 0x05b1,\n \"hatafsegol17\", 0x05b1,\n \"hatafsegol24\", 0x05b1,\n \"hatafsegol30\", 0x05b1,\n \"hatafsegolhebrew\", 0x05b1,\n \"hatafsegolnarrowhebrew\", 0x05b1,\n \"hatafsegolquarterhebrew\", 0x05b1,\n \"hatafsegolwidehebrew\", 0x05b1,\n \"hbar\", 0x0127,\n \"hbopomofo\", 0x310f,\n \"hbrevebelow\", 0x1e2b,\n \"hcedilla\", 0x1e29,\n \"hcircle\", 0x24d7,\n \"hcircumflex\", 0x0125,\n \"hdieresis\", 0x1e27,\n \"hdotaccent\", 0x1e23,\n \"hdotbelow\", 0x1e25,\n \"he\", 0x05d4,\n \"heart\", 0x2665,\n \"heartsuitblack\", 0x2665,\n \"heartsuitwhite\", 0x2661,\n \"hedagesh\", 0xfb34,\n \"hedageshhebrew\", 0xfb34,\n \"hehaltonearabic\", 0x06c1,\n \"heharabic\", 0x0647,\n \"hehebrew\", 0x05d4,\n \"hehfinalaltonearabic\", 0xfba7,\n \"hehfinalalttwoarabic\", 0xfeea,\n \"hehfinalarabic\", 0xfeea,\n \"hehhamzaabovefinalarabic\", 0xfba5,\n \"hehhamzaaboveisolatedarabic\", 0xfba4,\n \"hehinitialaltonearabic\", 0xfba8,\n \"hehinitialarabic\", 0xfeeb,\n \"hehiragana\", 0x3078,\n \"hehmedialaltonearabic\", 0xfba9,\n \"hehmedialarabic\", 0xfeec,\n \"heiseierasquare\", 0x337b,\n \"hekatakana\", 0x30d8,\n \"hekatakanahalfwidth\", 0xff8d,\n \"hekutaarusquare\", 0x3336,\n \"henghook\", 0x0267,\n \"herutusquare\", 0x3339,\n \"het\", 0x05d7,\n \"hethebrew\", 0x05d7,\n \"hhook\", 0x0266,\n \"hhooksuperior\", 0x02b1,\n \"hieuhacirclekorean\", 0x327b,\n \"hieuhaparenkorean\", 0x321b,\n \"hieuhcirclekorean\", 0x326d,\n \"hieuhkorean\", 0x314e,\n \"hieuhparenkorean\", 0x320d,\n \"hihiragana\", 0x3072,\n \"hikatakana\", 0x30d2,\n \"hikatakanahalfwidth\", 0xff8b,\n \"hiriq\", 0x05b4,\n \"hiriq14\", 0x05b4,\n \"hiriq21\", 0x05b4,\n \"hiriq2d\", 0x05b4,\n \"hiriqhebrew\", 0x05b4,\n \"hiriqnarrowhebrew\", 0x05b4,\n \"hiriqquarterhebrew\", 0x05b4,\n \"hiriqwidehebrew\", 0x05b4,\n \"hlinebelow\", 0x1e96,\n \"hmonospace\", 0xff48,\n \"hoarmenian\", 0x0570,\n \"hohipthai\", 0x0e2b,\n \"hohiragana\", 0x307b,\n \"hokatakana\", 0x30db,\n \"hokatakanahalfwidth\", 0xff8e,\n \"holam\", 0x05b9,\n \"holam19\", 0x05b9,\n \"holam26\", 0x05b9,\n \"holam32\", 0x05b9,\n \"holamhebrew\", 0x05b9,\n \"holamnarrowhebrew\", 0x05b9,\n \"holamquarterhebrew\", 0x05b9,\n \"holamwidehebrew\", 0x05b9,\n \"honokhukthai\", 0x0e2e,\n \"hookabovecomb\", 0x0309,\n \"hookcmb\", 0x0309,\n \"hookpalatalizedbelowcmb\", 0x0321,\n \"hookretroflexbelowcmb\", 0x0322,\n \"hoonsquare\", 0x3342,\n \"horicoptic\", 0x03e9,\n \"horizontalbar\", 0x2015,\n \"horncmb\", 0x031b,\n \"hotsprings\", 0x2668,\n \"house\", 0x2302,\n \"hparen\", 0x24a3,\n \"hsuperior\", 0x02b0,\n \"hturned\", 0x0265,\n \"huhiragana\", 0x3075,\n \"huiitosquare\", 0x3333,\n \"hukatakana\", 0x30d5,\n \"hukatakanahalfwidth\", 0xff8c,\n \"hungarumlaut\", 0x02dd,\n \"hungarumlautcmb\", 0x030b,\n \"hv\", 0x0195,\n \"hyphen\", 0x002d,\n \"hypheninferior\", 0xf6e5,\n \"hyphenmonospace\", 0xff0d,\n \"hyphensmall\", 0xfe63,\n \"hyphensuperior\", 0xf6e6,\n \"hyphentwo\", 0x2010,\n \"i\", 0x0069,\n \"iacute\", 0x00ed,\n \"iacyrillic\", 0x044f,\n \"ibengali\", 0x0987,\n \"ibopomofo\", 0x3127,\n \"ibreve\", 0x012d,\n \"icaron\", 0x01d0,\n \"icircle\", 0x24d8,\n \"icircumflex\", 0x00ee,\n \"icyrillic\", 0x0456,\n \"idblgrave\", 0x0209,\n \"ideographearthcircle\", 0x328f,\n \"ideographfirecircle\", 0x328b,\n \"ideographicallianceparen\", 0x323f,\n \"ideographiccallparen\", 0x323a,\n \"ideographiccentrecircle\", 0x32a5,\n \"ideographicclose\", 0x3006,\n \"ideographiccomma\", 0x3001,\n \"ideographiccommaleft\", 0xff64,\n \"ideographiccongratulationparen\", 0x3237,\n \"ideographiccorrectcircle\", 0x32a3,\n \"ideographicearthparen\", 0x322f,\n \"ideographicenterpriseparen\", 0x323d,\n \"ideographicexcellentcircle\", 0x329d,\n \"ideographicfestivalparen\", 0x3240,\n \"ideographicfinancialcircle\", 0x3296,\n \"ideographicfinancialparen\", 0x3236,\n \"ideographicfireparen\", 0x322b,\n \"ideographichaveparen\", 0x3232,\n \"ideographichighcircle\", 0x32a4,\n \"ideographiciterationmark\", 0x3005,\n \"ideographiclaborcircle\", 0x3298,\n \"ideographiclaborparen\", 0x3238,\n \"ideographicleftcircle\", 0x32a7,\n \"ideographiclowcircle\", 0x32a6,\n \"ideographicmedicinecircle\", 0x32a9,\n \"ideographicmetalparen\", 0x322e,\n \"ideographicmoonparen\", 0x322a,\n \"ideographicnameparen\", 0x3234,\n \"ideographicperiod\", 0x3002,\n \"ideographicprintcircle\", 0x329e,\n \"ideographicreachparen\", 0x3243,\n \"ideographicrepresentparen\", 0x3239,\n \"ideographicresourceparen\", 0x323e,\n \"ideographicrightcircle\", 0x32a8,\n \"ideographicsecretcircle\", 0x3299,\n \"ideographicselfparen\", 0x3242,\n \"ideographicsocietyparen\", 0x3233,\n \"ideographicspace\", 0x3000,\n \"ideographicspecialparen\", 0x3235,\n \"ideographicstockparen\", 0x3231,\n \"ideographicstudyparen\", 0x323b,\n \"ideographicsunparen\", 0x3230,\n \"ideographicsuperviseparen\", 0x323c,\n \"ideographicwaterparen\", 0x322c,\n \"ideographicwoodparen\", 0x322d,\n \"ideographiczero\", 0x3007,\n \"ideographmetalcircle\", 0x328e,\n \"ideographmooncircle\", 0x328a,\n \"ideographnamecircle\", 0x3294,\n \"ideographsuncircle\", 0x3290,\n \"ideographwatercircle\", 0x328c,\n \"ideographwoodcircle\", 0x328d,\n \"ideva\", 0x0907,\n \"idieresis\", 0x00ef,\n \"idieresisacute\", 0x1e2f,\n \"idieresiscyrillic\", 0x04e5,\n \"idotbelow\", 0x1ecb,\n \"iebrevecyrillic\", 0x04d7,\n \"iecyrillic\", 0x0435,\n \"ieungacirclekorean\", 0x3275,\n \"ieungaparenkorean\", 0x3215,\n \"ieungcirclekorean\", 0x3267,\n \"ieungkorean\", 0x3147,\n \"ieungparenkorean\", 0x3207,\n \"igrave\", 0x00ec,\n \"igujarati\", 0x0a87,\n \"igurmukhi\", 0x0a07,\n \"ihiragana\", 0x3044,\n \"ihookabove\", 0x1ec9,\n \"iibengali\", 0x0988,\n \"iicyrillic\", 0x0438,\n \"iideva\", 0x0908,\n \"iigujarati\", 0x0a88,\n \"iigurmukhi\", 0x0a08,\n \"iimatragurmukhi\", 0x0a40,\n \"iinvertedbreve\", 0x020b,\n \"iishortcyrillic\", 0x0439,\n \"iivowelsignbengali\", 0x09c0,\n \"iivowelsigndeva\", 0x0940,\n \"iivowelsigngujarati\", 0x0ac0,\n \"ij\", 0x0133,\n \"ikatakana\", 0x30a4,\n \"ikatakanahalfwidth\", 0xff72,\n \"ikorean\", 0x3163,\n \"ilde\", 0x02dc,\n \"iluyhebrew\", 0x05ac,\n \"imacron\", 0x012b,\n \"imacroncyrillic\", 0x04e3,\n \"imageorapproximatelyequal\", 0x2253,\n \"imatragurmukhi\", 0x0a3f,\n \"imonospace\", 0xff49,\n \"increment\", 0x2206,\n \"infinity\", 0x221e,\n \"iniarmenian\", 0x056b,\n \"integral\", 0x222b,\n \"integralbottom\", 0x2321,\n \"integralbt\", 0x2321,\n \"integralex\", 0xf8f5,\n \"integraltop\", 0x2320,\n \"integraltp\", 0x2320,\n \"intersection\", 0x2229,\n \"intisquare\", 0x3305,\n \"invbullet\", 0x25d8,\n \"invcircle\", 0x25d9,\n \"invsmileface\", 0x263b,\n \"iocyrillic\", 0x0451,\n \"iogonek\", 0x012f,\n \"iota\", 0x03b9,\n \"iotadieresis\", 0x03ca,\n \"iotadieresistonos\", 0x0390,\n \"iotalatin\", 0x0269,\n \"iotatonos\", 0x03af,\n \"iparen\", 0x24a4,\n \"irigurmukhi\", 0x0a72,\n \"ismallhiragana\", 0x3043,\n \"ismallkatakana\", 0x30a3,\n \"ismallkatakanahalfwidth\", 0xff68,\n \"issharbengali\", 0x09fa,\n \"istroke\", 0x0268,\n \"isuperior\", 0xf6ed,\n \"iterationhiragana\", 0x309d,\n \"iterationkatakana\", 0x30fd,\n \"itilde\", 0x0129,\n \"itildebelow\", 0x1e2d,\n \"iubopomofo\", 0x3129,\n \"iucyrillic\", 0x044e,\n \"ivowelsignbengali\", 0x09bf,\n \"ivowelsigndeva\", 0x093f,\n \"ivowelsigngujarati\", 0x0abf,\n \"izhitsacyrillic\", 0x0475,\n \"izhitsadblgravecyrillic\", 0x0477,\n \"j\", 0x006a,\n \"jaarmenian\", 0x0571,\n \"jabengali\", 0x099c,\n \"jadeva\", 0x091c,\n \"jagujarati\", 0x0a9c,\n \"jagurmukhi\", 0x0a1c,\n \"jbopomofo\", 0x3110,\n \"jcaron\", 0x01f0,\n \"jcircle\", 0x24d9,\n \"jcircumflex\", 0x0135,\n \"jcrossedtail\", 0x029d,\n \"jdotlessstroke\", 0x025f,\n \"jecyrillic\", 0x0458,\n \"jeemarabic\", 0x062c,\n \"jeemfinalarabic\", 0xfe9e,\n \"jeeminitialarabic\", 0xfe9f,\n \"jeemmedialarabic\", 0xfea0,\n \"jeharabic\", 0x0698,\n \"jehfinalarabic\", 0xfb8b,\n \"jhabengali\", 0x099d,\n \"jhadeva\", 0x091d,\n \"jhagujarati\", 0x0a9d,\n \"jhagurmukhi\", 0x0a1d,\n \"jheharmenian\", 0x057b,\n \"jis\", 0x3004,\n \"jmonospace\", 0xff4a,\n \"jparen\", 0x24a5,\n \"jsuperior\", 0x02b2,\n \"k\", 0x006b,\n \"kabashkircyrillic\", 0x04a1,\n \"kabengali\", 0x0995,\n \"kacute\", 0x1e31,\n \"kacyrillic\", 0x043a,\n \"kadescendercyrillic\", 0x049b,\n \"kadeva\", 0x0915,\n \"kaf\", 0x05db,\n \"kafarabic\", 0x0643,\n \"kafdagesh\", 0xfb3b,\n \"kafdageshhebrew\", 0xfb3b,\n \"kaffinalarabic\", 0xfeda,\n \"kafhebrew\", 0x05db,\n \"kafinitialarabic\", 0xfedb,\n \"kafmedialarabic\", 0xfedc,\n \"kafrafehebrew\", 0xfb4d,\n \"kagujarati\", 0x0a95,\n \"kagurmukhi\", 0x0a15,\n \"kahiragana\", 0x304b,\n \"kahookcyrillic\", 0x04c4,\n \"kakatakana\", 0x30ab,\n \"kakatakanahalfwidth\", 0xff76,\n \"kappa\", 0x03ba,\n \"kappasymbolgreek\", 0x03f0,\n \"kapyeounmieumkorean\", 0x3171,\n \"kapyeounphieuphkorean\", 0x3184,\n \"kapyeounpieupkorean\", 0x3178,\n \"kapyeounssangpieupkorean\", 0x3179,\n \"karoriisquare\", 0x330d,\n \"kashidaautoarabic\", 0x0640,\n \"kashidaautonosidebearingarabic\", 0x0640,\n \"kasmallkatakana\", 0x30f5,\n \"kasquare\", 0x3384,\n \"kasraarabic\", 0x0650,\n \"kasratanarabic\", 0x064d,\n \"kastrokecyrillic\", 0x049f,\n \"katahiraprolongmarkhalfwidth\", 0xff70,\n \"kaverticalstrokecyrillic\", 0x049d,\n \"kbopomofo\", 0x310e,\n \"kcalsquare\", 0x3389,\n \"kcaron\", 0x01e9,\n \"kcedilla\", 0x0137,\n \"kcircle\", 0x24da,\n \"kcommaaccent\", 0x0137,\n \"kdotbelow\", 0x1e33,\n \"keharmenian\", 0x0584,\n \"kehiragana\", 0x3051,\n \"kekatakana\", 0x30b1,\n \"kekatakanahalfwidth\", 0xff79,\n \"kenarmenian\", 0x056f,\n \"kesmallkatakana\", 0x30f6,\n \"kgreenlandic\", 0x0138,\n \"khabengali\", 0x0996,\n \"khacyrillic\", 0x0445,\n \"khadeva\", 0x0916,\n \"khagujarati\", 0x0a96,\n \"khagurmukhi\", 0x0a16,\n \"khaharabic\", 0x062e,\n \"khahfinalarabic\", 0xfea6,\n \"khahinitialarabic\", 0xfea7,\n \"khahmedialarabic\", 0xfea8,\n \"kheicoptic\", 0x03e7,\n \"khhadeva\", 0x0959,\n \"khhagurmukhi\", 0x0a59,\n \"khieukhacirclekorean\", 0x3278,\n \"khieukhaparenkorean\", 0x3218,\n \"khieukhcirclekorean\", 0x326a,\n \"khieukhkorean\", 0x314b,\n \"khieukhparenkorean\", 0x320a,\n \"khokhaithai\", 0x0e02,\n \"khokhonthai\", 0x0e05,\n \"khokhuatthai\", 0x0e03,\n \"khokhwaithai\", 0x0e04,\n \"khomutthai\", 0x0e5b,\n \"khook\", 0x0199,\n \"khorakhangthai\", 0x0e06,\n \"khzsquare\", 0x3391,\n \"kihiragana\", 0x304d,\n \"kikatakana\", 0x30ad,\n \"kikatakanahalfwidth\", 0xff77,\n \"kiroguramusquare\", 0x3315,\n \"kiromeetorusquare\", 0x3316,\n \"kirosquare\", 0x3314,\n \"kiyeokacirclekorean\", 0x326e,\n \"kiyeokaparenkorean\", 0x320e,\n \"kiyeokcirclekorean\", 0x3260,\n \"kiyeokkorean\", 0x3131,\n \"kiyeokparenkorean\", 0x3200,\n \"kiyeoksioskorean\", 0x3133,\n \"kjecyrillic\", 0x045c,\n \"klinebelow\", 0x1e35,\n \"klsquare\", 0x3398,\n \"kmcubedsquare\", 0x33a6,\n \"kmonospace\", 0xff4b,\n \"kmsquaredsquare\", 0x33a2,\n \"kohiragana\", 0x3053,\n \"kohmsquare\", 0x33c0,\n \"kokaithai\", 0x0e01,\n \"kokatakana\", 0x30b3,\n \"kokatakanahalfwidth\", 0xff7a,\n \"kooposquare\", 0x331e,\n \"koppacyrillic\", 0x0481,\n \"koreanstandardsymbol\", 0x327f,\n \"koroniscmb\", 0x0343,\n \"kparen\", 0x24a6,\n \"kpasquare\", 0x33aa,\n \"ksicyrillic\", 0x046f,\n \"ktsquare\", 0x33cf,\n \"kturned\", 0x029e,\n \"kuhiragana\", 0x304f,\n \"kukatakana\", 0x30af,\n \"kukatakanahalfwidth\", 0xff78,\n \"kvsquare\", 0x33b8,\n \"kwsquare\", 0x33be,\n \"l\", 0x006c,\n \"labengali\", 0x09b2,\n \"lacute\", 0x013a,\n \"ladeva\", 0x0932,\n \"lagujarati\", 0x0ab2,\n \"lagurmukhi\", 0x0a32,\n \"lakkhangyaothai\", 0x0e45,\n \"lamaleffinalarabic\", 0xfefc,\n \"lamalefhamzaabovefinalarabic\", 0xfef8,\n \"lamalefhamzaaboveisolatedarabic\", 0xfef7,\n \"lamalefhamzabelowfinalarabic\", 0xfefa,\n \"lamalefhamzabelowisolatedarabic\", 0xfef9,\n \"lamalefisolatedarabic\", 0xfefb,\n \"lamalefmaddaabovefinalarabic\", 0xfef6,\n \"lamalefmaddaaboveisolatedarabic\", 0xfef5,\n \"lamarabic\", 0x0644,\n \"lambda\", 0x03bb,\n \"lambdastroke\", 0x019b,\n \"lamed\", 0x05dc,\n \"lameddagesh\", 0xfb3c,\n \"lameddageshhebrew\", 0xfb3c,\n \"lamedhebrew\", 0x05dc,\n \"lamfinalarabic\", 0xfede,\n \"lamhahinitialarabic\", 0xfcca,\n \"laminitialarabic\", 0xfedf,\n \"lamjeeminitialarabic\", 0xfcc9,\n \"lamkhahinitialarabic\", 0xfccb,\n \"lamlamhehisolatedarabic\", 0xfdf2,\n \"lammedialarabic\", 0xfee0,\n \"lammeemhahinitialarabic\", 0xfd88,\n \"lammeeminitialarabic\", 0xfccc,\n \"largecircle\", 0x25ef,\n \"lbar\", 0x019a,\n \"lbelt\", 0x026c,\n \"lbopomofo\", 0x310c,\n \"lcaron\", 0x013e,\n \"lcedilla\", 0x013c,\n \"lcircle\", 0x24db,\n \"lcircumflexbelow\", 0x1e3d,\n \"lcommaaccent\", 0x013c,\n \"ldot\", 0x0140,\n \"ldotaccent\", 0x0140,\n \"ldotbelow\", 0x1e37,\n \"ldotbelowmacron\", 0x1e39,\n \"leftangleabovecmb\", 0x031a,\n \"lefttackbelowcmb\", 0x0318,\n \"less\", 0x003c,\n \"lessequal\", 0x2264,\n \"lessequalorgreater\", 0x22da,\n \"lessmonospace\", 0xff1c,\n \"lessorequivalent\", 0x2272,\n \"lessorgreater\", 0x2276,\n \"lessoverequal\", 0x2266,\n \"lesssmall\", 0xfe64,\n \"lezh\", 0x026e,\n \"lfblock\", 0x258c,\n \"lhookretroflex\", 0x026d,\n \"lira\", 0x20a4,\n \"liwnarmenian\", 0x056c,\n \"lj\", 0x01c9,\n \"ljecyrillic\", 0x0459,\n \"ll\", 0xf6c0,\n \"lladeva\", 0x0933,\n \"llagujarati\", 0x0ab3,\n \"llinebelow\", 0x1e3b,\n \"llladeva\", 0x0934,\n \"llvocalicbengali\", 0x09e1,\n \"llvocalicdeva\", 0x0961,\n \"llvocalicvowelsignbengali\", 0x09e3,\n \"llvocalicvowelsigndeva\", 0x0963,\n \"lmiddletilde\", 0x026b,\n \"lmonospace\", 0xff4c,\n \"lmsquare\", 0x33d0,\n \"lochulathai\", 0x0e2c,\n \"logicaland\", 0x2227,\n \"logicalnot\", 0x00ac,\n \"logicalnotreversed\", 0x2310,\n \"logicalor\", 0x2228,\n \"lolingthai\", 0x0e25,\n \"longs\", 0x017f,\n \"lowlinecenterline\", 0xfe4e,\n \"lowlinecmb\", 0x0332,\n \"lowlinedashed\", 0xfe4d,\n \"lozenge\", 0x25ca,\n \"lparen\", 0x24a7,\n \"lslash\", 0x0142,\n \"lsquare\", 0x2113,\n \"lsuperior\", 0xf6ee,\n \"ltshade\", 0x2591,\n \"luthai\", 0x0e26,\n \"lvocalicbengali\", 0x098c,\n \"lvocalicdeva\", 0x090c,\n \"lvocalicvowelsignbengali\", 0x09e2,\n \"lvocalicvowelsigndeva\", 0x0962,\n \"lxsquare\", 0x33d3,\n \"m\", 0x006d,\n \"mabengali\", 0x09ae,\n \"macron\", 0x00af,\n \"macronbelowcmb\", 0x0331,\n \"macroncmb\", 0x0304,\n \"macronlowmod\", 0x02cd,\n \"macronmonospace\", 0xffe3,\n \"macute\", 0x1e3f,\n \"madeva\", 0x092e,\n \"magujarati\", 0x0aae,\n \"magurmukhi\", 0x0a2e,\n \"mahapakhhebrew\", 0x05a4,\n \"mahapakhlefthebrew\", 0x05a4,\n \"mahiragana\", 0x307e,\n \"maichattawalowleftthai\", 0xf895,\n \"maichattawalowrightthai\", 0xf894,\n \"maichattawathai\", 0x0e4b,\n \"maichattawaupperleftthai\", 0xf893,\n \"maieklowleftthai\", 0xf88c,\n \"maieklowrightthai\", 0xf88b,\n \"maiekthai\", 0x0e48,\n \"maiekupperleftthai\", 0xf88a,\n \"maihanakatleftthai\", 0xf884,\n \"maihanakatthai\", 0x0e31,\n \"maitaikhuleftthai\", 0xf889,\n \"maitaikhuthai\", 0x0e47,\n \"maitholowleftthai\", 0xf88f,\n \"maitholowrightthai\", 0xf88e,\n \"maithothai\", 0x0e49,\n \"maithoupperleftthai\", 0xf88d,\n \"maitrilowleftthai\", 0xf892,\n \"maitrilowrightthai\", 0xf891,\n \"maitrithai\", 0x0e4a,\n \"maitriupperleftthai\", 0xf890,\n \"maiyamokthai\", 0x0e46,\n \"makatakana\", 0x30de,\n \"makatakanahalfwidth\", 0xff8f,\n \"male\", 0x2642,\n \"mansyonsquare\", 0x3347,\n \"maqafhebrew\", 0x05be,\n \"mars\", 0x2642,\n \"masoracirclehebrew\", 0x05af,\n \"masquare\", 0x3383,\n \"mbopomofo\", 0x3107,\n \"mbsquare\", 0x33d4,\n \"mcircle\", 0x24dc,\n \"mcubedsquare\", 0x33a5,\n \"mdotaccent\", 0x1e41,\n \"mdotbelow\", 0x1e43,\n \"meemarabic\", 0x0645,\n \"meemfinalarabic\", 0xfee2,\n \"meeminitialarabic\", 0xfee3,\n \"meemmedialarabic\", 0xfee4,\n \"meemmeeminitialarabic\", 0xfcd1,\n \"meemmeemisolatedarabic\", 0xfc48,\n \"meetorusquare\", 0x334d,\n \"mehiragana\", 0x3081,\n \"meizierasquare\", 0x337e,\n \"mekatakana\", 0x30e1,\n \"mekatakanahalfwidth\", 0xff92,\n \"mem\", 0x05de,\n \"memdagesh\", 0xfb3e,\n \"memdageshhebrew\", 0xfb3e,\n \"memhebrew\", 0x05de,\n \"menarmenian\", 0x0574,\n \"merkhahebrew\", 0x05a5,\n \"merkhakefulahebrew\", 0x05a6,\n \"merkhakefulalefthebrew\", 0x05a6,\n \"merkhalefthebrew\", 0x05a5,\n \"mhook\", 0x0271,\n \"mhzsquare\", 0x3392,\n \"middledotkatakanahalfwidth\", 0xff65,\n \"middot\", 0x00b7,\n \"mieumacirclekorean\", 0x3272,\n \"mieumaparenkorean\", 0x3212,\n \"mieumcirclekorean\", 0x3264,\n \"mieumkorean\", 0x3141,\n \"mieumpansioskorean\", 0x3170,\n \"mieumparenkorean\", 0x3204,\n \"mieumpieupkorean\", 0x316e,\n \"mieumsioskorean\", 0x316f,\n \"mihiragana\", 0x307f,\n \"mikatakana\", 0x30df,\n \"mikatakanahalfwidth\", 0xff90,\n \"minus\", 0x2212,\n \"minusbelowcmb\", 0x0320,\n \"minuscircle\", 0x2296,\n \"minusmod\", 0x02d7,\n \"minusplus\", 0x2213,\n \"minute\", 0x2032,\n \"miribaarusquare\", 0x334a,\n \"mirisquare\", 0x3349,\n \"mlonglegturned\", 0x0270,\n \"mlsquare\", 0x3396,\n \"mmcubedsquare\", 0x33a3,\n \"mmonospace\", 0xff4d,\n \"mmsquaredsquare\", 0x339f,\n \"mohiragana\", 0x3082,\n \"mohmsquare\", 0x33c1,\n \"mokatakana\", 0x30e2,\n \"mokatakanahalfwidth\", 0xff93,\n \"molsquare\", 0x33d6,\n \"momathai\", 0x0e21,\n \"moverssquare\", 0x33a7,\n \"moverssquaredsquare\", 0x33a8,\n \"mparen\", 0x24a8,\n \"mpasquare\", 0x33ab,\n \"mssquare\", 0x33b3,\n \"msuperior\", 0xf6ef,\n \"mturned\", 0x026f,\n \"mu\", 0x00b5,\n \"mu1\", 0x00b5,\n \"muasquare\", 0x3382,\n \"muchgreater\", 0x226b,\n \"muchless\", 0x226a,\n \"mufsquare\", 0x338c,\n \"mugreek\", 0x03bc,\n \"mugsquare\", 0x338d,\n \"muhiragana\", 0x3080,\n \"mukatakana\", 0x30e0,\n \"mukatakanahalfwidth\", 0xff91,\n \"mulsquare\", 0x3395,\n \"multiply\", 0x00d7,\n \"mumsquare\", 0x339b,\n \"munahhebrew\", 0x05a3,\n \"munahlefthebrew\", 0x05a3,\n \"musicalnote\", 0x266a,\n \"musicalnotedbl\", 0x266b,\n \"musicflatsign\", 0x266d,\n \"musicsharpsign\", 0x266f,\n \"mussquare\", 0x33b2,\n \"muvsquare\", 0x33b6,\n \"muwsquare\", 0x33bc,\n \"mvmegasquare\", 0x33b9,\n \"mvsquare\", 0x33b7,\n \"mwmegasquare\", 0x33bf,\n \"mwsquare\", 0x33bd,\n \"n\", 0x006e,\n \"nabengali\", 0x09a8,\n \"nabla\", 0x2207,\n \"nacute\", 0x0144,\n \"nadeva\", 0x0928,\n \"nagujarati\", 0x0aa8,\n \"nagurmukhi\", 0x0a28,\n \"nahiragana\", 0x306a,\n \"nakatakana\", 0x30ca,\n \"nakatakanahalfwidth\", 0xff85,\n \"napostrophe\", 0x0149,\n \"nasquare\", 0x3381,\n \"nbopomofo\", 0x310b,\n \"nbspace\", 0x00a0,\n \"ncaron\", 0x0148,\n \"ncedilla\", 0x0146,\n \"ncircle\", 0x24dd,\n \"ncircumflexbelow\", 0x1e4b,\n \"ncommaaccent\", 0x0146,\n \"ndotaccent\", 0x1e45,\n \"ndotbelow\", 0x1e47,\n \"nehiragana\", 0x306d,\n \"nekatakana\", 0x30cd,\n \"nekatakanahalfwidth\", 0xff88,\n \"newsheqelsign\", 0x20aa,\n \"nfsquare\", 0x338b,\n \"ngabengali\", 0x0999,\n \"ngadeva\", 0x0919,\n \"ngagujarati\", 0x0a99,\n \"ngagurmukhi\", 0x0a19,\n \"ngonguthai\", 0x0e07,\n \"nhiragana\", 0x3093,\n \"nhookleft\", 0x0272,\n \"nhookretroflex\", 0x0273,\n \"nieunacirclekorean\", 0x326f,\n \"nieunaparenkorean\", 0x320f,\n \"nieuncieuckorean\", 0x3135,\n \"nieuncirclekorean\", 0x3261,\n \"nieunhieuhkorean\", 0x3136,\n \"nieunkorean\", 0x3134,\n \"nieunpansioskorean\", 0x3168,\n \"nieunparenkorean\", 0x3201,\n \"nieunsioskorean\", 0x3167,\n \"nieuntikeutkorean\", 0x3166,\n \"nihiragana\", 0x306b,\n \"nikatakana\", 0x30cb,\n \"nikatakanahalfwidth\", 0xff86,\n \"nikhahitleftthai\", 0xf899,\n \"nikhahitthai\", 0x0e4d,\n \"nine\", 0x0039,\n \"ninearabic\", 0x0669,\n \"ninebengali\", 0x09ef,\n \"ninecircle\", 0x2468,\n \"ninecircleinversesansserif\", 0x2792,\n \"ninedeva\", 0x096f,\n \"ninegujarati\", 0x0aef,\n \"ninegurmukhi\", 0x0a6f,\n \"ninehackarabic\", 0x0669,\n \"ninehangzhou\", 0x3029,\n \"nineideographicparen\", 0x3228,\n \"nineinferior\", 0x2089,\n \"ninemonospace\", 0xff19,\n \"nineoldstyle\", 0xf739,\n \"nineparen\", 0x247c,\n \"nineperiod\", 0x2490,\n \"ninepersian\", 0x06f9,\n \"nineroman\", 0x2178,\n \"ninesuperior\", 0x2079,\n \"nineteencircle\", 0x2472,\n \"nineteenparen\", 0x2486,\n \"nineteenperiod\", 0x249a,\n \"ninethai\", 0x0e59,\n \"nj\", 0x01cc,\n \"njecyrillic\", 0x045a,\n \"nkatakana\", 0x30f3,\n \"nkatakanahalfwidth\", 0xff9d,\n \"nlegrightlong\", 0x019e,\n \"nlinebelow\", 0x1e49,\n \"nmonospace\", 0xff4e,\n \"nmsquare\", 0x339a,\n \"nnabengali\", 0x09a3,\n \"nnadeva\", 0x0923,\n \"nnagujarati\", 0x0aa3,\n \"nnagurmukhi\", 0x0a23,\n \"nnnadeva\", 0x0929,\n \"nohiragana\", 0x306e,\n \"nokatakana\", 0x30ce,\n \"nokatakanahalfwidth\", 0xff89,\n \"nonbreakingspace\", 0x00a0,\n \"nonenthai\", 0x0e13,\n \"nonuthai\", 0x0e19,\n \"noonarabic\", 0x0646,\n \"noonfinalarabic\", 0xfee6,\n \"noonghunnaarabic\", 0x06ba,\n \"noonghunnafinalarabic\", 0xfb9f,\n \"nooninitialarabic\", 0xfee7,\n \"noonjeeminitialarabic\", 0xfcd2,\n \"noonjeemisolatedarabic\", 0xfc4b,\n \"noonmedialarabic\", 0xfee8,\n \"noonmeeminitialarabic\", 0xfcd5,\n \"noonmeemisolatedarabic\", 0xfc4e,\n \"noonnoonfinalarabic\", 0xfc8d,\n \"notcontains\", 0x220c,\n \"notelement\", 0x2209,\n \"notelementof\", 0x2209,\n \"notequal\", 0x2260,\n \"notgreater\", 0x226f,\n \"notgreaternorequal\", 0x2271,\n \"notgreaternorless\", 0x2279,\n \"notidentical\", 0x2262,\n \"notless\", 0x226e,\n \"notlessnorequal\", 0x2270,\n \"notparallel\", 0x2226,\n \"notprecedes\", 0x2280,\n \"notsubset\", 0x2284,\n \"notsucceeds\", 0x2281,\n \"notsuperset\", 0x2285,\n \"nowarmenian\", 0x0576,\n \"nparen\", 0x24a9,\n \"nssquare\", 0x33b1,\n \"nsuperior\", 0x207f,\n \"ntilde\", 0x00f1,\n \"nu\", 0x03bd,\n \"nuhiragana\", 0x306c,\n \"nukatakana\", 0x30cc,\n \"nukatakanahalfwidth\", 0xff87,\n \"nuktabengali\", 0x09bc,\n \"nuktadeva\", 0x093c,\n \"nuktagujarati\", 0x0abc,\n \"nuktagurmukhi\", 0x0a3c,\n \"numbersign\", 0x0023,\n \"numbersignmonospace\", 0xff03,\n \"numbersignsmall\", 0xfe5f,\n \"numeralsigngreek\", 0x0374,\n \"numeralsignlowergreek\", 0x0375,\n \"numero\", 0x2116,\n \"nun\", 0x05e0,\n \"nundagesh\", 0xfb40,\n \"nundageshhebrew\", 0xfb40,\n \"nunhebrew\", 0x05e0,\n \"nvsquare\", 0x33b5,\n \"nwsquare\", 0x33bb,\n \"nyabengali\", 0x099e,\n \"nyadeva\", 0x091e,\n \"nyagujarati\", 0x0a9e,\n \"nyagurmukhi\", 0x0a1e,\n \"o\", 0x006f,\n \"oacute\", 0x00f3,\n \"oangthai\", 0x0e2d,\n \"obarred\", 0x0275,\n \"obarredcyrillic\", 0x04e9,\n \"obarreddieresiscyrillic\", 0x04eb,\n \"obengali\", 0x0993,\n \"obopomofo\", 0x311b,\n \"obreve\", 0x014f,\n \"ocandradeva\", 0x0911,\n \"ocandragujarati\", 0x0a91,\n \"ocandravowelsigndeva\", 0x0949,\n \"ocandravowelsigngujarati\", 0x0ac9,\n \"ocaron\", 0x01d2,\n \"ocircle\", 0x24de,\n \"ocircumflex\", 0x00f4,\n \"ocircumflexacute\", 0x1ed1,\n \"ocircumflexdotbelow\", 0x1ed9,\n \"ocircumflexgrave\", 0x1ed3,\n \"ocircumflexhookabove\", 0x1ed5,\n \"ocircumflextilde\", 0x1ed7,\n \"ocyrillic\", 0x043e,\n \"odblacute\", 0x0151,\n \"odblgrave\", 0x020d,\n \"odeva\", 0x0913,\n \"odieresis\", 0x00f6,\n \"odieresiscyrillic\", 0x04e7,\n \"odotbelow\", 0x1ecd,\n \"oe\", 0x0153,\n \"oekorean\", 0x315a,\n \"ogonek\", 0x02db,\n \"ogonekcmb\", 0x0328,\n \"ograve\", 0x00f2,\n \"ogujarati\", 0x0a93,\n \"oharmenian\", 0x0585,\n \"ohiragana\", 0x304a,\n \"ohookabove\", 0x1ecf,\n \"ohorn\", 0x01a1,\n \"ohornacute\", 0x1edb,\n \"ohorndotbelow\", 0x1ee3,\n \"ohorngrave\", 0x1edd,\n \"ohornhookabove\", 0x1edf,\n \"ohorntilde\", 0x1ee1,\n \"ohungarumlaut\", 0x0151,\n \"oi\", 0x01a3,\n \"oinvertedbreve\", 0x020f,\n \"okatakana\", 0x30aa,\n \"okatakanahalfwidth\", 0xff75,\n \"okorean\", 0x3157,\n \"olehebrew\", 0x05ab,\n \"omacron\", 0x014d,\n \"omacronacute\", 0x1e53,\n \"omacrongrave\", 0x1e51,\n \"omdeva\", 0x0950,\n \"omega\", 0x03c9,\n \"omega1\", 0x03d6,\n \"omegacyrillic\", 0x0461,\n \"omegalatinclosed\", 0x0277,\n \"omegaroundcyrillic\", 0x047b,\n \"omegatitlocyrillic\", 0x047d,\n \"omegatonos\", 0x03ce,\n \"omgujarati\", 0x0ad0,\n \"omicron\", 0x03bf,\n \"omicrontonos\", 0x03cc,\n \"omonospace\", 0xff4f,\n \"one\", 0x0031,\n \"onearabic\", 0x0661,\n \"onebengali\", 0x09e7,\n \"onecircle\", 0x2460,\n \"onecircleinversesansserif\", 0x278a,\n \"onedeva\", 0x0967,\n \"onedotenleader\", 0x2024,\n \"oneeighth\", 0x215b,\n \"onefitted\", 0xf6dc,\n \"onegujarati\", 0x0ae7,\n \"onegurmukhi\", 0x0a67,\n \"onehackarabic\", 0x0661,\n \"onehalf\", 0x00bd,\n \"onehangzhou\", 0x3021,\n \"oneideographicparen\", 0x3220,\n \"oneinferior\", 0x2081,\n \"onemonospace\", 0xff11,\n \"onenumeratorbengali\", 0x09f4,\n \"oneoldstyle\", 0xf731,\n \"oneparen\", 0x2474,\n \"oneperiod\", 0x2488,\n \"onepersian\", 0x06f1,\n \"onequarter\", 0x00bc,\n \"oneroman\", 0x2170,\n \"onesuperior\", 0x00b9,\n \"onethai\", 0x0e51,\n \"onethird\", 0x2153,\n \"oogonek\", 0x01eb,\n \"oogonekmacron\", 0x01ed,\n \"oogurmukhi\", 0x0a13,\n \"oomatragurmukhi\", 0x0a4b,\n \"oopen\", 0x0254,\n \"oparen\", 0x24aa,\n \"openbullet\", 0x25e6,\n \"option\", 0x2325,\n \"ordfeminine\", 0x00aa,\n \"ordmasculine\", 0x00ba,\n \"orthogonal\", 0x221f,\n \"oshortdeva\", 0x0912,\n \"oshortvowelsigndeva\", 0x094a,\n \"oslash\", 0x00f8,\n \"oslashacute\", 0x01ff,\n \"osmallhiragana\", 0x3049,\n \"osmallkatakana\", 0x30a9,\n \"osmallkatakanahalfwidth\", 0xff6b,\n \"ostrokeacute\", 0x01ff,\n \"osuperior\", 0xf6f0,\n \"otcyrillic\", 0x047f,\n \"otilde\", 0x00f5,\n \"otildeacute\", 0x1e4d,\n \"otildedieresis\", 0x1e4f,\n \"oubopomofo\", 0x3121,\n \"overline\", 0x203e,\n \"overlinecenterline\", 0xfe4a,\n \"overlinecmb\", 0x0305,\n \"overlinedashed\", 0xfe49,\n \"overlinedblwavy\", 0xfe4c,\n \"overlinewavy\", 0xfe4b,\n \"overscore\", 0x00af,\n \"ovowelsignbengali\", 0x09cb,\n \"ovowelsigndeva\", 0x094b,\n \"ovowelsigngujarati\", 0x0acb,\n \"p\", 0x0070,\n \"paampssquare\", 0x3380,\n \"paasentosquare\", 0x332b,\n \"pabengali\", 0x09aa,\n \"pacute\", 0x1e55,\n \"padeva\", 0x092a,\n \"pagedown\", 0x21df,\n \"pageup\", 0x21de,\n \"pagujarati\", 0x0aaa,\n \"pagurmukhi\", 0x0a2a,\n \"pahiragana\", 0x3071,\n \"paiyannoithai\", 0x0e2f,\n \"pakatakana\", 0x30d1,\n \"palatalizationcyrilliccmb\", 0x0484,\n \"palochkacyrillic\", 0x04c0,\n \"pansioskorean\", 0x317f,\n \"paragraph\", 0x00b6,\n \"parallel\", 0x2225,\n \"parenleft\", 0x0028,\n \"parenleftaltonearabic\", 0xfd3e,\n \"parenleftbt\", 0xf8ed,\n \"parenleftex\", 0xf8ec,\n \"parenleftinferior\", 0x208d,\n \"parenleftmonospace\", 0xff08,\n \"parenleftsmall\", 0xfe59,\n \"parenleftsuperior\", 0x207d,\n \"parenlefttp\", 0xf8eb,\n \"parenleftvertical\", 0xfe35,\n \"parenright\", 0x0029,\n \"parenrightaltonearabic\", 0xfd3f,\n \"parenrightbt\", 0xf8f8,\n \"parenrightex\", 0xf8f7,\n \"parenrightinferior\", 0x208e,\n \"parenrightmonospace\", 0xff09,\n \"parenrightsmall\", 0xfe5a,\n \"parenrightsuperior\", 0x207e,\n \"parenrighttp\", 0xf8f6,\n \"parenrightvertical\", 0xfe36,\n \"partialdiff\", 0x2202,\n \"paseqhebrew\", 0x05c0,\n \"pashtahebrew\", 0x0599,\n \"pasquare\", 0x33a9,\n \"patah\", 0x05b7,\n \"patah11\", 0x05b7,\n \"patah1d\", 0x05b7,\n \"patah2a\", 0x05b7,\n \"patahhebrew\", 0x05b7,\n \"patahnarrowhebrew\", 0x05b7,\n \"patahquarterhebrew\", 0x05b7,\n \"patahwidehebrew\", 0x05b7,\n \"pazerhebrew\", 0x05a1,\n \"pbopomofo\", 0x3106,\n \"pcircle\", 0x24df,\n \"pdotaccent\", 0x1e57,\n \"pe\", 0x05e4,\n \"pecyrillic\", 0x043f,\n \"pedagesh\", 0xfb44,\n \"pedageshhebrew\", 0xfb44,\n \"peezisquare\", 0x333b,\n \"pefinaldageshhebrew\", 0xfb43,\n \"peharabic\", 0x067e,\n \"peharmenian\", 0x057a,\n \"pehebrew\", 0x05e4,\n \"pehfinalarabic\", 0xfb57,\n \"pehinitialarabic\", 0xfb58,\n \"pehiragana\", 0x307a,\n \"pehmedialarabic\", 0xfb59,\n \"pekatakana\", 0x30da,\n \"pemiddlehookcyrillic\", 0x04a7,\n \"perafehebrew\", 0xfb4e,\n \"percent\", 0x0025,\n \"percentarabic\", 0x066a,\n \"percentmonospace\", 0xff05,\n \"percentsmall\", 0xfe6a,\n \"period\", 0x002e,\n \"periodarmenian\", 0x0589,\n \"periodcentered\", 0x00b7,\n \"periodhalfwidth\", 0xff61,\n \"periodinferior\", 0xf6e7,\n \"periodmonospace\", 0xff0e,\n \"periodsmall\", 0xfe52,\n \"periodsuperior\", 0xf6e8,\n \"perispomenigreekcmb\", 0x0342,\n \"perpendicular\", 0x22a5,\n \"perthousand\", 0x2030,\n \"peseta\", 0x20a7,\n \"pfsquare\", 0x338a,\n \"phabengali\", 0x09ab,\n \"phadeva\", 0x092b,\n \"phagujarati\", 0x0aab,\n \"phagurmukhi\", 0x0a2b,\n \"phi\", 0x03c6,\n \"phi1\", 0x03d5,\n \"phieuphacirclekorean\", 0x327a,\n \"phieuphaparenkorean\", 0x321a,\n \"phieuphcirclekorean\", 0x326c,\n \"phieuphkorean\", 0x314d,\n \"phieuphparenkorean\", 0x320c,\n \"philatin\", 0x0278,\n \"phinthuthai\", 0x0e3a,\n \"phisymbolgreek\", 0x03d5,\n \"phook\", 0x01a5,\n \"phophanthai\", 0x0e1e,\n \"phophungthai\", 0x0e1c,\n \"phosamphaothai\", 0x0e20,\n \"pi\", 0x03c0,\n \"pieupacirclekorean\", 0x3273,\n \"pieupaparenkorean\", 0x3213,\n \"pieupcieuckorean\", 0x3176,\n \"pieupcirclekorean\", 0x3265,\n \"pieupkiyeokkorean\", 0x3172,\n \"pieupkorean\", 0x3142,\n \"pieupparenkorean\", 0x3205,\n \"pieupsioskiyeokkorean\", 0x3174,\n \"pieupsioskorean\", 0x3144,\n \"pieupsiostikeutkorean\", 0x3175,\n \"pieupthieuthkorean\", 0x3177,\n \"pieuptikeutkorean\", 0x3173,\n \"pihiragana\", 0x3074,\n \"pikatakana\", 0x30d4,\n \"pisymbolgreek\", 0x03d6,\n \"piwrarmenian\", 0x0583,\n \"plus\", 0x002b,\n \"plusbelowcmb\", 0x031f,\n \"pluscircle\", 0x2295,\n \"plusminus\", 0x00b1,\n \"plusmod\", 0x02d6,\n \"plusmonospace\", 0xff0b,\n \"plussmall\", 0xfe62,\n \"plussuperior\", 0x207a,\n \"pmonospace\", 0xff50,\n \"pmsquare\", 0x33d8,\n \"pohiragana\", 0x307d,\n \"pointingindexdownwhite\", 0x261f,\n \"pointingindexleftwhite\", 0x261c,\n \"pointingindexrightwhite\", 0x261e,\n \"pointingindexupwhite\", 0x261d,\n \"pokatakana\", 0x30dd,\n \"poplathai\", 0x0e1b,\n \"postalmark\", 0x3012,\n \"postalmarkface\", 0x3020,\n \"pparen\", 0x24ab,\n \"precedes\", 0x227a,\n \"prescription\", 0x211e,\n \"primemod\", 0x02b9,\n \"primereversed\", 0x2035,\n \"product\", 0x220f,\n \"projective\", 0x2305,\n \"prolongedkana\", 0x30fc,\n \"propellor\", 0x2318,\n \"propersubset\", 0x2282,\n \"propersuperset\", 0x2283,\n \"proportion\", 0x2237,\n \"proportional\", 0x221d,\n \"psi\", 0x03c8,\n \"psicyrillic\", 0x0471,\n \"psilipneumatacyrilliccmb\", 0x0486,\n \"pssquare\", 0x33b0,\n \"puhiragana\", 0x3077,\n \"pukatakana\", 0x30d7,\n \"pvsquare\", 0x33b4,\n \"pwsquare\", 0x33ba,\n \"q\", 0x0071,\n \"qadeva\", 0x0958,\n \"qadmahebrew\", 0x05a8,\n \"qafarabic\", 0x0642,\n \"qaffinalarabic\", 0xfed6,\n \"qafinitialarabic\", 0xfed7,\n \"qafmedialarabic\", 0xfed8,\n \"qamats\", 0x05b8,\n \"qamats10\", 0x05b8,\n \"qamats1a\", 0x05b8,\n \"qamats1c\", 0x05b8,\n \"qamats27\", 0x05b8,\n \"qamats29\", 0x05b8,\n \"qamats33\", 0x05b8,\n \"qamatsde\", 0x05b8,\n \"qamatshebrew\", 0x05b8,\n \"qamatsnarrowhebrew\", 0x05b8,\n \"qamatsqatanhebrew\", 0x05b8,\n \"qamatsqatannarrowhebrew\", 0x05b8,\n \"qamatsqatanquarterhebrew\", 0x05b8,\n \"qamatsqatanwidehebrew\", 0x05b8,\n \"qamatsquarterhebrew\", 0x05b8,\n \"qamatswidehebrew\", 0x05b8,\n \"qarneyparahebrew\", 0x059f,\n \"qbopomofo\", 0x3111,\n \"qcircle\", 0x24e0,\n \"qhook\", 0x02a0,\n \"qmonospace\", 0xff51,\n \"qof\", 0x05e7,\n \"qofdagesh\", 0xfb47,\n \"qofdageshhebrew\", 0xfb47,\n \"qofhebrew\", 0x05e7,\n \"qparen\", 0x24ac,\n \"quarternote\", 0x2669,\n \"qubuts\", 0x05bb,\n \"qubuts18\", 0x05bb,\n \"qubuts25\", 0x05bb,\n \"qubuts31\", 0x05bb,\n \"qubutshebrew\", 0x05bb,\n \"qubutsnarrowhebrew\", 0x05bb,\n \"qubutsquarterhebrew\", 0x05bb,\n \"qubutswidehebrew\", 0x05bb,\n \"question\", 0x003f,\n \"questionarabic\", 0x061f,\n \"questionarmenian\", 0x055e,\n \"questiondown\", 0x00bf,\n \"questiondownsmall\", 0xf7bf,\n \"questiongreek\", 0x037e,\n \"questionmonospace\", 0xff1f,\n \"questionsmall\", 0xf73f,\n \"quotedbl\", 0x0022,\n \"quotedblbase\", 0x201e,\n \"quotedblleft\", 0x201c,\n \"quotedblmonospace\", 0xff02,\n \"quotedblprime\", 0x301e,\n \"quotedblprimereversed\", 0x301d,\n \"quotedblright\", 0x201d,\n \"quoteleft\", 0x2018,\n \"quoteleftreversed\", 0x201b,\n \"quotereversed\", 0x201b,\n \"quoteright\", 0x2019,\n \"quoterightn\", 0x0149,\n \"quotesinglbase\", 0x201a,\n \"quotesingle\", 0x0027,\n \"quotesinglemonospace\", 0xff07,\n \"r\", 0x0072,\n \"raarmenian\", 0x057c,\n \"rabengali\", 0x09b0,\n \"racute\", 0x0155,\n \"radeva\", 0x0930,\n \"radical\", 0x221a,\n \"radicalex\", 0xf8e5,\n \"radoverssquare\", 0x33ae,\n \"radoverssquaredsquare\", 0x33af,\n \"radsquare\", 0x33ad,\n \"rafe\", 0x05bf,\n \"rafehebrew\", 0x05bf,\n \"ragujarati\", 0x0ab0,\n \"ragurmukhi\", 0x0a30,\n \"rahiragana\", 0x3089,\n \"rakatakana\", 0x30e9,\n \"rakatakanahalfwidth\", 0xff97,\n \"ralowerdiagonalbengali\", 0x09f1,\n \"ramiddlediagonalbengali\", 0x09f0,\n \"ramshorn\", 0x0264,\n \"ratio\", 0x2236,\n \"rbopomofo\", 0x3116,\n \"rcaron\", 0x0159,\n \"rcedilla\", 0x0157,\n \"rcircle\", 0x24e1,\n \"rcommaaccent\", 0x0157,\n \"rdblgrave\", 0x0211,\n \"rdotaccent\", 0x1e59,\n \"rdotbelow\", 0x1e5b,\n \"rdotbelowmacron\", 0x1e5d,\n \"referencemark\", 0x203b,\n \"reflexsubset\", 0x2286,\n \"reflexsuperset\", 0x2287,\n \"registered\", 0x00ae,\n \"registersans\", 0xf8e8,\n \"registerserif\", 0xf6da,\n \"reharabic\", 0x0631,\n \"reharmenian\", 0x0580,\n \"rehfinalarabic\", 0xfeae,\n \"rehiragana\", 0x308c,\n \"rekatakana\", 0x30ec,\n \"rekatakanahalfwidth\", 0xff9a,\n \"resh\", 0x05e8,\n \"reshdageshhebrew\", 0xfb48,\n \"reshhebrew\", 0x05e8,\n \"reversedtilde\", 0x223d,\n \"reviahebrew\", 0x0597,\n \"reviamugrashhebrew\", 0x0597,\n \"revlogicalnot\", 0x2310,\n \"rfishhook\", 0x027e,\n \"rfishhookreversed\", 0x027f,\n \"rhabengali\", 0x09dd,\n \"rhadeva\", 0x095d,\n \"rho\", 0x03c1,\n \"rhook\", 0x027d,\n \"rhookturned\", 0x027b,\n \"rhookturnedsuperior\", 0x02b5,\n \"rhosymbolgreek\", 0x03f1,\n \"rhotichookmod\", 0x02de,\n \"rieulacirclekorean\", 0x3271,\n \"rieulaparenkorean\", 0x3211,\n \"rieulcirclekorean\", 0x3263,\n \"rieulhieuhkorean\", 0x3140,\n \"rieulkiyeokkorean\", 0x313a,\n \"rieulkiyeoksioskorean\", 0x3169,\n \"rieulkorean\", 0x3139,\n \"rieulmieumkorean\", 0x313b,\n \"rieulpansioskorean\", 0x316c,\n \"rieulparenkorean\", 0x3203,\n \"rieulphieuphkorean\", 0x313f,\n \"rieulpieupkorean\", 0x313c,\n \"rieulpieupsioskorean\", 0x316b,\n \"rieulsioskorean\", 0x313d,\n \"rieulthieuthkorean\", 0x313e,\n \"rieultikeutkorean\", 0x316a,\n \"rieulyeorinhieuhkorean\", 0x316d,\n \"rightangle\", 0x221f,\n \"righttackbelowcmb\", 0x0319,\n \"righttriangle\", 0x22bf,\n \"rihiragana\", 0x308a,\n \"rikatakana\", 0x30ea,\n \"rikatakanahalfwidth\", 0xff98,\n \"ring\", 0x02da,\n \"ringbelowcmb\", 0x0325,\n \"ringcmb\", 0x030a,\n \"ringhalfleft\", 0x02bf,\n \"ringhalfleftarmenian\", 0x0559,\n \"ringhalfleftbelowcmb\", 0x031c,\n \"ringhalfleftcentered\", 0x02d3,\n \"ringhalfright\", 0x02be,\n \"ringhalfrightbelowcmb\", 0x0339,\n \"ringhalfrightcentered\", 0x02d2,\n \"rinvertedbreve\", 0x0213,\n \"rittorusquare\", 0x3351,\n \"rlinebelow\", 0x1e5f,\n \"rlongleg\", 0x027c,\n \"rlonglegturned\", 0x027a,\n \"rmonospace\", 0xff52,\n \"rohiragana\", 0x308d,\n \"rokatakana\", 0x30ed,\n \"rokatakanahalfwidth\", 0xff9b,\n \"roruathai\", 0x0e23,\n \"rparen\", 0x24ad,\n \"rrabengali\", 0x09dc,\n \"rradeva\", 0x0931,\n \"rragurmukhi\", 0x0a5c,\n \"rreharabic\", 0x0691,\n \"rrehfinalarabic\", 0xfb8d,\n \"rrvocalicbengali\", 0x09e0,\n \"rrvocalicdeva\", 0x0960,\n \"rrvocalicgujarati\", 0x0ae0,\n \"rrvocalicvowelsignbengali\", 0x09c4,\n \"rrvocalicvowelsigndeva\", 0x0944,\n \"rrvocalicvowelsigngujarati\", 0x0ac4,\n \"rsuperior\", 0xf6f1,\n \"rtblock\", 0x2590,\n \"rturned\", 0x0279,\n \"rturnedsuperior\", 0x02b4,\n \"ruhiragana\", 0x308b,\n \"rukatakana\", 0x30eb,\n \"rukatakanahalfwidth\", 0xff99,\n \"rupeemarkbengali\", 0x09f2,\n \"rupeesignbengali\", 0x09f3,\n \"rupiah\", 0xf6dd,\n \"ruthai\", 0x0e24,\n \"rvocalicbengali\", 0x098b,\n \"rvocalicdeva\", 0x090b,\n \"rvocalicgujarati\", 0x0a8b,\n \"rvocalicvowelsignbengali\", 0x09c3,\n \"rvocalicvowelsigndeva\", 0x0943,\n \"rvocalicvowelsigngujarati\", 0x0ac3,\n \"s\", 0x0073,\n \"sabengali\", 0x09b8,\n \"sacute\", 0x015b,\n \"sacutedotaccent\", 0x1e65,\n \"sadarabic\", 0x0635,\n \"sadeva\", 0x0938,\n \"sadfinalarabic\", 0xfeba,\n \"sadinitialarabic\", 0xfebb,\n \"sadmedialarabic\", 0xfebc,\n \"sagujarati\", 0x0ab8,\n \"sagurmukhi\", 0x0a38,\n \"sahiragana\", 0x3055,\n \"sakatakana\", 0x30b5,\n \"sakatakanahalfwidth\", 0xff7b,\n \"sallallahoualayhewasallamarabic\", 0xfdfa,\n \"samekh\", 0x05e1,\n \"samekhdagesh\", 0xfb41,\n \"samekhdageshhebrew\", 0xfb41,\n \"samekhhebrew\", 0x05e1,\n \"saraaathai\", 0x0e32,\n \"saraaethai\", 0x0e41,\n \"saraaimaimalaithai\", 0x0e44,\n \"saraaimaimuanthai\", 0x0e43,\n \"saraamthai\", 0x0e33,\n \"saraathai\", 0x0e30,\n \"saraethai\", 0x0e40,\n \"saraiileftthai\", 0xf886,\n \"saraiithai\", 0x0e35,\n \"saraileftthai\", 0xf885,\n \"saraithai\", 0x0e34,\n \"saraothai\", 0x0e42,\n \"saraueeleftthai\", 0xf888,\n \"saraueethai\", 0x0e37,\n \"saraueleftthai\", 0xf887,\n \"sarauethai\", 0x0e36,\n \"sarauthai\", 0x0e38,\n \"sarauuthai\", 0x0e39,\n \"sbopomofo\", 0x3119,\n \"scaron\", 0x0161,\n \"scarondotaccent\", 0x1e67,\n \"scedilla\", 0x015f,\n \"schwa\", 0x0259,\n \"schwacyrillic\", 0x04d9,\n \"schwadieresiscyrillic\", 0x04db,\n \"schwahook\", 0x025a,\n \"scircle\", 0x24e2,\n \"scircumflex\", 0x015d,\n \"scommaaccent\", 0x0219,\n \"sdotaccent\", 0x1e61,\n \"sdotbelow\", 0x1e63,\n \"sdotbelowdotaccent\", 0x1e69,\n \"seagullbelowcmb\", 0x033c,\n \"second\", 0x2033,\n \"secondtonechinese\", 0x02ca,\n \"section\", 0x00a7,\n \"seenarabic\", 0x0633,\n \"seenfinalarabic\", 0xfeb2,\n \"seeninitialarabic\", 0xfeb3,\n \"seenmedialarabic\", 0xfeb4,\n \"segol\", 0x05b6,\n \"segol13\", 0x05b6,\n \"segol1f\", 0x05b6,\n \"segol2c\", 0x05b6,\n \"segolhebrew\", 0x05b6,\n \"segolnarrowhebrew\", 0x05b6,\n \"segolquarterhebrew\", 0x05b6,\n \"segoltahebrew\", 0x0592,\n \"segolwidehebrew\", 0x05b6,\n \"seharmenian\", 0x057d,\n \"sehiragana\", 0x305b,\n \"sekatakana\", 0x30bb,\n \"sekatakanahalfwidth\", 0xff7e,\n \"semicolon\", 0x003b,\n \"semicolonarabic\", 0x061b,\n \"semicolonmonospace\", 0xff1b,\n \"semicolonsmall\", 0xfe54,\n \"semivoicedmarkkana\", 0x309c,\n \"semivoicedmarkkanahalfwidth\", 0xff9f,\n \"sentisquare\", 0x3322,\n \"sentosquare\", 0x3323,\n \"seven\", 0x0037,\n \"sevenarabic\", 0x0667,\n \"sevenbengali\", 0x09ed,\n \"sevencircle\", 0x2466,\n \"sevencircleinversesansserif\", 0x2790,\n \"sevendeva\", 0x096d,\n \"seveneighths\", 0x215e,\n \"sevengujarati\", 0x0aed,\n \"sevengurmukhi\", 0x0a6d,\n \"sevenhackarabic\", 0x0667,\n \"sevenhangzhou\", 0x3027,\n \"sevenideographicparen\", 0x3226,\n \"seveninferior\", 0x2087,\n \"sevenmonospace\", 0xff17,\n \"sevenoldstyle\", 0xf737,\n \"sevenparen\", 0x247a,\n \"sevenperiod\", 0x248e,\n \"sevenpersian\", 0x06f7,\n \"sevenroman\", 0x2176,\n \"sevensuperior\", 0x2077,\n \"seventeencircle\", 0x2470,\n \"seventeenparen\", 0x2484,\n \"seventeenperiod\", 0x2498,\n \"seventhai\", 0x0e57,\n \"sfthyphen\", 0x00ad,\n \"shaarmenian\", 0x0577,\n \"shabengali\", 0x09b6,\n \"shacyrillic\", 0x0448,\n \"shaddaarabic\", 0x0651,\n \"shaddadammaarabic\", 0xfc61,\n \"shaddadammatanarabic\", 0xfc5e,\n \"shaddafathaarabic\", 0xfc60,\n \"shaddakasraarabic\", 0xfc62,\n \"shaddakasratanarabic\", 0xfc5f,\n \"shade\", 0x2592,\n \"shadedark\", 0x2593,\n \"shadelight\", 0x2591,\n \"shademedium\", 0x2592,\n \"shadeva\", 0x0936,\n \"shagujarati\", 0x0ab6,\n \"shagurmukhi\", 0x0a36,\n \"shalshelethebrew\", 0x0593,\n \"shbopomofo\", 0x3115,\n \"shchacyrillic\", 0x0449,\n \"sheenarabic\", 0x0634,\n \"sheenfinalarabic\", 0xfeb6,\n \"sheeninitialarabic\", 0xfeb7,\n \"sheenmedialarabic\", 0xfeb8,\n \"sheicoptic\", 0x03e3,\n \"sheqel\", 0x20aa,\n \"sheqelhebrew\", 0x20aa,\n \"sheva\", 0x05b0,\n \"sheva115\", 0x05b0,\n \"sheva15\", 0x05b0,\n \"sheva22\", 0x05b0,\n \"sheva2e\", 0x05b0,\n \"shevahebrew\", 0x05b0,\n \"shevanarrowhebrew\", 0x05b0,\n \"shevaquarterhebrew\", 0x05b0,\n \"shevawidehebrew\", 0x05b0,\n \"shhacyrillic\", 0x04bb,\n \"shimacoptic\", 0x03ed,\n \"shin\", 0x05e9,\n \"shindagesh\", 0xfb49,\n \"shindageshhebrew\", 0xfb49,\n \"shindageshshindot\", 0xfb2c,\n \"shindageshshindothebrew\", 0xfb2c,\n \"shindageshsindot\", 0xfb2d,\n \"shindageshsindothebrew\", 0xfb2d,\n \"shindothebrew\", 0x05c1,\n \"shinhebrew\", 0x05e9,\n \"shinshindot\", 0xfb2a,\n \"shinshindothebrew\", 0xfb2a,\n \"shinsindot\", 0xfb2b,\n \"shinsindothebrew\", 0xfb2b,\n \"shook\", 0x0282,\n \"sigma\", 0x03c3,\n \"sigma1\", 0x03c2,\n \"sigmafinal\", 0x03c2,\n \"sigmalunatesymbolgreek\", 0x03f2,\n \"sihiragana\", 0x3057,\n \"sikatakana\", 0x30b7,\n \"sikatakanahalfwidth\", 0xff7c,\n \"siluqhebrew\", 0x05bd,\n \"siluqlefthebrew\", 0x05bd,\n \"similar\", 0x223c,\n \"sindothebrew\", 0x05c2,\n \"siosacirclekorean\", 0x3274,\n \"siosaparenkorean\", 0x3214,\n \"sioscieuckorean\", 0x317e,\n \"sioscirclekorean\", 0x3266,\n \"sioskiyeokkorean\", 0x317a,\n \"sioskorean\", 0x3145,\n \"siosnieunkorean\", 0x317b,\n \"siosparenkorean\", 0x3206,\n \"siospieupkorean\", 0x317d,\n \"siostikeutkorean\", 0x317c,\n \"six\", 0x0036,\n \"sixarabic\", 0x0666,\n \"sixbengali\", 0x09ec,\n \"sixcircle\", 0x2465,\n \"sixcircleinversesansserif\", 0x278f,\n \"sixdeva\", 0x096c,\n \"sixgujarati\", 0x0aec,\n \"sixgurmukhi\", 0x0a6c,\n \"sixhackarabic\", 0x0666,\n \"sixhangzhou\", 0x3026,\n \"sixideographicparen\", 0x3225,\n \"sixinferior\", 0x2086,\n \"sixmonospace\", 0xff16,\n \"sixoldstyle\", 0xf736,\n \"sixparen\", 0x2479,\n \"sixperiod\", 0x248d,\n \"sixpersian\", 0x06f6,\n \"sixroman\", 0x2175,\n \"sixsuperior\", 0x2076,\n \"sixteencircle\", 0x246f,\n \"sixteencurrencydenominatorbengali\", 0x09f9,\n \"sixteenparen\", 0x2483,\n \"sixteenperiod\", 0x2497,\n \"sixthai\", 0x0e56,\n \"slash\", 0x002f,\n \"slashmonospace\", 0xff0f,\n \"slong\", 0x017f,\n \"slongdotaccent\", 0x1e9b,\n \"smileface\", 0x263a,\n \"smonospace\", 0xff53,\n \"sofpasuqhebrew\", 0x05c3,\n \"softhyphen\", 0x00ad,\n \"softsigncyrillic\", 0x044c,\n \"sohiragana\", 0x305d,\n \"sokatakana\", 0x30bd,\n \"sokatakanahalfwidth\", 0xff7f,\n \"soliduslongoverlaycmb\", 0x0338,\n \"solidusshortoverlaycmb\", 0x0337,\n \"sorusithai\", 0x0e29,\n \"sosalathai\", 0x0e28,\n \"sosothai\", 0x0e0b,\n \"sosuathai\", 0x0e2a,\n \"space\", 0x0020,\n \"spacehackarabic\", 0x0020,\n \"spade\", 0x2660,\n \"spadesuitblack\", 0x2660,\n \"spadesuitwhite\", 0x2664,\n \"sparen\", 0x24ae,\n \"squarebelowcmb\", 0x033b,\n \"squarecc\", 0x33c4,\n \"squarecm\", 0x339d,\n \"squarediagonalcrosshatchfill\", 0x25a9,\n \"squarehorizontalfill\", 0x25a4,\n \"squarekg\", 0x338f,\n \"squarekm\", 0x339e,\n \"squarekmcapital\", 0x33ce,\n \"squareln\", 0x33d1,\n \"squarelog\", 0x33d2,\n \"squaremg\", 0x338e,\n \"squaremil\", 0x33d5,\n \"squaremm\", 0x339c,\n \"squaremsquared\", 0x33a1,\n \"squareorthogonalcrosshatchfill\", 0x25a6,\n \"squareupperlefttolowerrightfill\", 0x25a7,\n \"squareupperrighttolowerleftfill\", 0x25a8,\n \"squareverticalfill\", 0x25a5,\n \"squarewhitewithsmallblack\", 0x25a3,\n \"srsquare\", 0x33db,\n \"ssabengali\", 0x09b7,\n \"ssadeva\", 0x0937,\n \"ssagujarati\", 0x0ab7,\n \"ssangcieuckorean\", 0x3149,\n \"ssanghieuhkorean\", 0x3185,\n \"ssangieungkorean\", 0x3180,\n \"ssangkiyeokkorean\", 0x3132,\n \"ssangnieunkorean\", 0x3165,\n \"ssangpieupkorean\", 0x3143,\n \"ssangsioskorean\", 0x3146,\n \"ssangtikeutkorean\", 0x3138,\n \"ssuperior\", 0xf6f2,\n \"sterling\", 0x00a3,\n \"sterlingmonospace\", 0xffe1,\n \"strokelongoverlaycmb\", 0x0336,\n \"strokeshortoverlaycmb\", 0x0335,\n \"subset\", 0x2282,\n \"subsetnotequal\", 0x228a,\n \"subsetorequal\", 0x2286,\n \"succeeds\", 0x227b,\n \"suchthat\", 0x220b,\n \"suhiragana\", 0x3059,\n \"sukatakana\", 0x30b9,\n \"sukatakanahalfwidth\", 0xff7d,\n \"sukunarabic\", 0x0652,\n \"summation\", 0x2211,\n \"sun\", 0x263c,\n \"superset\", 0x2283,\n \"supersetnotequal\", 0x228b,\n \"supersetorequal\", 0x2287,\n \"svsquare\", 0x33dc,\n \"syouwaerasquare\", 0x337c,\n \"t\", 0x0074,\n \"tabengali\", 0x09a4,\n \"tackdown\", 0x22a4,\n \"tackleft\", 0x22a3,\n \"tadeva\", 0x0924,\n \"tagujarati\", 0x0aa4,\n \"tagurmukhi\", 0x0a24,\n \"taharabic\", 0x0637,\n \"tahfinalarabic\", 0xfec2,\n \"tahinitialarabic\", 0xfec3,\n \"tahiragana\", 0x305f,\n \"tahmedialarabic\", 0xfec4,\n \"taisyouerasquare\", 0x337d,\n \"takatakana\", 0x30bf,\n \"takatakanahalfwidth\", 0xff80,\n \"tatweelarabic\", 0x0640,\n \"tau\", 0x03c4,\n \"tav\", 0x05ea,\n \"tavdages\", 0xfb4a,\n \"tavdagesh\", 0xfb4a,\n \"tavdageshhebrew\", 0xfb4a,\n \"tavhebrew\", 0x05ea,\n \"tbar\", 0x0167,\n \"tbopomofo\", 0x310a,\n \"tcaron\", 0x0165,\n \"tccurl\", 0x02a8,\n \"tcedilla\", 0x0163,\n \"tcheharabic\", 0x0686,\n \"tchehfinalarabic\", 0xfb7b,\n \"tchehinitialarabic\", 0xfb7c,\n \"tchehmedialarabic\", 0xfb7d,\n \"tcircle\", 0x24e3,\n \"tcircumflexbelow\", 0x1e71,\n \"tcommaaccent\", 0x0163,\n \"tdieresis\", 0x1e97,\n \"tdotaccent\", 0x1e6b,\n \"tdotbelow\", 0x1e6d,\n \"tecyrillic\", 0x0442,\n \"tedescendercyrillic\", 0x04ad,\n \"teharabic\", 0x062a,\n \"tehfinalarabic\", 0xfe96,\n \"tehhahinitialarabic\", 0xfca2,\n \"tehhahisolatedarabic\", 0xfc0c,\n \"tehinitialarabic\", 0xfe97,\n \"tehiragana\", 0x3066,\n \"tehjeeminitialarabic\", 0xfca1,\n \"tehjeemisolatedarabic\", 0xfc0b,\n \"tehmarbutaarabic\", 0x0629,\n \"tehmarbutafinalarabic\", 0xfe94,\n \"tehmedialarabic\", 0xfe98,\n \"tehmeeminitialarabic\", 0xfca4,\n \"tehmeemisolatedarabic\", 0xfc0e,\n \"tehnoonfinalarabic\", 0xfc73,\n \"tekatakana\", 0x30c6,\n \"tekatakanahalfwidth\", 0xff83,\n \"telephone\", 0x2121,\n \"telephoneblack\", 0x260e,\n \"telishagedolahebrew\", 0x05a0,\n \"telishaqetanahebrew\", 0x05a9,\n \"tencircle\", 0x2469,\n \"tenideographicparen\", 0x3229,\n \"tenparen\", 0x247d,\n \"tenperiod\", 0x2491,\n \"tenroman\", 0x2179,\n \"tesh\", 0x02a7,\n \"tet\", 0x05d8,\n \"tetdagesh\", 0xfb38,\n \"tetdageshhebrew\", 0xfb38,\n \"tethebrew\", 0x05d8,\n \"tetsecyrillic\", 0x04b5,\n \"tevirhebrew\", 0x059b,\n \"tevirlefthebrew\", 0x059b,\n \"thabengali\", 0x09a5,\n \"thadeva\", 0x0925,\n \"thagujarati\", 0x0aa5,\n \"thagurmukhi\", 0x0a25,\n \"thalarabic\", 0x0630,\n \"thalfinalarabic\", 0xfeac,\n \"thanthakhatlowleftthai\", 0xf898,\n \"thanthakhatlowrightthai\", 0xf897,\n \"thanthakhatthai\", 0x0e4c,\n \"thanthakhatupperleftthai\", 0xf896,\n \"theharabic\", 0x062b,\n \"thehfinalarabic\", 0xfe9a,\n \"thehinitialarabic\", 0xfe9b,\n \"thehmedialarabic\", 0xfe9c,\n \"thereexists\", 0x2203,\n \"therefore\", 0x2234,\n \"theta\", 0x03b8,\n \"theta1\", 0x03d1,\n \"thetasymbolgreek\", 0x03d1,\n \"thieuthacirclekorean\", 0x3279,\n \"thieuthaparenkorean\", 0x3219,\n \"thieuthcirclekorean\", 0x326b,\n \"thieuthkorean\", 0x314c,\n \"thieuthparenkorean\", 0x320b,\n \"thirteencircle\", 0x246c,\n \"thirteenparen\", 0x2480,\n \"thirteenperiod\", 0x2494,\n \"thonangmonthothai\", 0x0e11,\n \"thook\", 0x01ad,\n \"thophuthaothai\", 0x0e12,\n \"thorn\", 0x00fe,\n \"thothahanthai\", 0x0e17,\n \"thothanthai\", 0x0e10,\n \"thothongthai\", 0x0e18,\n \"thothungthai\", 0x0e16,\n \"thousandcyrillic\", 0x0482,\n \"thousandsseparatorarabic\", 0x066c,\n \"thousandsseparatorpersian\", 0x066c,\n \"three\", 0x0033,\n \"threearabic\", 0x0663,\n \"threebengali\", 0x09e9,\n \"threecircle\", 0x2462,\n \"threecircleinversesansserif\", 0x278c,\n \"threedeva\", 0x0969,\n \"threeeighths\", 0x215c,\n \"threegujarati\", 0x0ae9,\n \"threegurmukhi\", 0x0a69,\n \"threehackarabic\", 0x0663,\n \"threehangzhou\", 0x3023,\n \"threeideographicparen\", 0x3222,\n \"threeinferior\", 0x2083,\n \"threemonospace\", 0xff13,\n \"threenumeratorbengali\", 0x09f6,\n \"threeoldstyle\", 0xf733,\n \"threeparen\", 0x2476,\n \"threeperiod\", 0x248a,\n \"threepersian\", 0x06f3,\n \"threequarters\", 0x00be,\n \"threequartersemdash\", 0xf6de,\n \"threeroman\", 0x2172,\n \"threesuperior\", 0x00b3,\n \"threethai\", 0x0e53,\n \"thzsquare\", 0x3394,\n \"tihiragana\", 0x3061,\n \"tikatakana\", 0x30c1,\n \"tikatakanahalfwidth\", 0xff81,\n \"tikeutacirclekorean\", 0x3270,\n \"tikeutaparenkorean\", 0x3210,\n \"tikeutcirclekorean\", 0x3262,\n \"tikeutkorean\", 0x3137,\n \"tikeutparenkorean\", 0x3202,\n \"tilde\", 0x02dc,\n \"tildebelowcmb\", 0x0330,\n \"tildecmb\", 0x0303,\n \"tildecomb\", 0x0303,\n \"tildedoublecmb\", 0x0360,\n \"tildeoperator\", 0x223c,\n \"tildeoverlaycmb\", 0x0334,\n \"tildeverticalcmb\", 0x033e,\n \"timescircle\", 0x2297,\n \"tipehahebrew\", 0x0596,\n \"tipehalefthebrew\", 0x0596,\n \"tippigurmukhi\", 0x0a70,\n \"titlocyrilliccmb\", 0x0483,\n \"tiwnarmenian\", 0x057f,\n \"tlinebelow\", 0x1e6f,\n \"tmonospace\", 0xff54,\n \"toarmenian\", 0x0569,\n \"tohiragana\", 0x3068,\n \"tokatakana\", 0x30c8,\n \"tokatakanahalfwidth\", 0xff84,\n \"tonebarextrahighmod\", 0x02e5,\n \"tonebarextralowmod\", 0x02e9,\n \"tonebarhighmod\", 0x02e6,\n \"tonebarlowmod\", 0x02e8,\n \"tonebarmidmod\", 0x02e7,\n \"tonefive\", 0x01bd,\n \"tonesix\", 0x0185,\n \"tonetwo\", 0x01a8,\n \"tonos\", 0x0384,\n \"tonsquare\", 0x3327,\n \"topatakthai\", 0x0e0f,\n \"tortoiseshellbracketleft\", 0x3014,\n \"tortoiseshellbracketleftsmall\", 0xfe5d,\n \"tortoiseshellbracketleftvertical\", 0xfe39,\n \"tortoiseshellbracketright\", 0x3015,\n \"tortoiseshellbracketrightsmall\", 0xfe5e,\n \"tortoiseshellbracketrightvertical\", 0xfe3a,\n \"totaothai\", 0x0e15,\n \"tpalatalhook\", 0x01ab,\n \"tparen\", 0x24af,\n \"trademark\", 0x2122,\n \"trademarksans\", 0xf8ea,\n \"trademarkserif\", 0xf6db,\n \"tretroflexhook\", 0x0288,\n \"triagdn\", 0x25bc,\n \"triaglf\", 0x25c4,\n \"triagrt\", 0x25ba,\n \"triagup\", 0x25b2,\n \"ts\", 0x02a6,\n \"tsadi\", 0x05e6,\n \"tsadidagesh\", 0xfb46,\n \"tsadidageshhebrew\", 0xfb46,\n \"tsadihebrew\", 0x05e6,\n \"tsecyrillic\", 0x0446,\n \"tsere\", 0x05b5,\n \"tsere12\", 0x05b5,\n \"tsere1e\", 0x05b5,\n \"tsere2b\", 0x05b5,\n \"tserehebrew\", 0x05b5,\n \"tserenarrowhebrew\", 0x05b5,\n \"tserequarterhebrew\", 0x05b5,\n \"tserewidehebrew\", 0x05b5,\n \"tshecyrillic\", 0x045b,\n \"tsuperior\", 0xf6f3,\n \"ttabengali\", 0x099f,\n \"ttadeva\", 0x091f,\n \"ttagujarati\", 0x0a9f,\n \"ttagurmukhi\", 0x0a1f,\n \"tteharabic\", 0x0679,\n \"ttehfinalarabic\", 0xfb67,\n \"ttehinitialarabic\", 0xfb68,\n \"ttehmedialarabic\", 0xfb69,\n \"tthabengali\", 0x09a0,\n \"tthadeva\", 0x0920,\n \"tthagujarati\", 0x0aa0,\n \"tthagurmukhi\", 0x0a20,\n \"tturned\", 0x0287,\n \"tuhiragana\", 0x3064,\n \"tukatakana\", 0x30c4,\n \"tukatakanahalfwidth\", 0xff82,\n \"tusmallhiragana\", 0x3063,\n \"tusmallkatakana\", 0x30c3,\n \"tusmallkatakanahalfwidth\", 0xff6f,\n \"twelvecircle\", 0x246b,\n \"twelveparen\", 0x247f,\n \"twelveperiod\", 0x2493,\n \"twelveroman\", 0x217b,\n \"twentycircle\", 0x2473,\n \"twentyhangzhou\", 0x5344,\n \"twentyparen\", 0x2487,\n \"twentyperiod\", 0x249b,\n \"two\", 0x0032,\n \"twoarabic\", 0x0662,\n \"twobengali\", 0x09e8,\n \"twocircle\", 0x2461,\n \"twocircleinversesansserif\", 0x278b,\n \"twodeva\", 0x0968,\n \"twodotenleader\", 0x2025,\n \"twodotleader\", 0x2025,\n \"twodotleadervertical\", 0xfe30,\n \"twogujarati\", 0x0ae8,\n \"twogurmukhi\", 0x0a68,\n \"twohackarabic\", 0x0662,\n \"twohangzhou\", 0x3022,\n \"twoideographicparen\", 0x3221,\n \"twoinferior\", 0x2082,\n \"twomonospace\", 0xff12,\n \"twonumeratorbengali\", 0x09f5,\n \"twooldstyle\", 0xf732,\n \"twoparen\", 0x2475,\n \"twoperiod\", 0x2489,\n \"twopersian\", 0x06f2,\n \"tworoman\", 0x2171,\n \"twostroke\", 0x01bb,\n \"twosuperior\", 0x00b2,\n \"twothai\", 0x0e52,\n \"twothirds\", 0x2154,\n \"u\", 0x0075,\n \"uacute\", 0x00fa,\n \"ubar\", 0x0289,\n \"ubengali\", 0x0989,\n \"ubopomofo\", 0x3128,\n \"ubreve\", 0x016d,\n \"ucaron\", 0x01d4,\n \"ucircle\", 0x24e4,\n \"ucircumflex\", 0x00fb,\n \"ucircumflexbelow\", 0x1e77,\n \"ucyrillic\", 0x0443,\n \"udattadeva\", 0x0951,\n \"udblacute\", 0x0171,\n \"udblgrave\", 0x0215,\n \"udeva\", 0x0909,\n \"udieresis\", 0x00fc,\n \"udieresisacute\", 0x01d8,\n \"udieresisbelow\", 0x1e73,\n \"udieresiscaron\", 0x01da,\n \"udieresiscyrillic\", 0x04f1,\n \"udieresisgrave\", 0x01dc,\n \"udieresismacron\", 0x01d6,\n \"udotbelow\", 0x1ee5,\n \"ugrave\", 0x00f9,\n \"ugujarati\", 0x0a89,\n \"ugurmukhi\", 0x0a09,\n \"uhiragana\", 0x3046,\n \"uhookabove\", 0x1ee7,\n \"uhorn\", 0x01b0,\n \"uhornacute\", 0x1ee9,\n \"uhorndotbelow\", 0x1ef1,\n \"uhorngrave\", 0x1eeb,\n \"uhornhookabove\", 0x1eed,\n \"uhorntilde\", 0x1eef,\n \"uhungarumlaut\", 0x0171,\n \"uhungarumlautcyrillic\", 0x04f3,\n \"uinvertedbreve\", 0x0217,\n \"ukatakana\", 0x30a6,\n \"ukatakanahalfwidth\", 0xff73,\n \"ukcyrillic\", 0x0479,\n \"ukorean\", 0x315c,\n \"umacron\", 0x016b,\n \"umacroncyrillic\", 0x04ef,\n \"umacrondieresis\", 0x1e7b,\n \"umatragurmukhi\", 0x0a41,\n \"umonospace\", 0xff55,\n \"underscore\", 0x005f,\n \"underscoredbl\", 0x2017,\n \"underscoremonospace\", 0xff3f,\n \"underscorevertical\", 0xfe33,\n \"underscorewavy\", 0xfe4f,\n \"union\", 0x222a,\n \"universal\", 0x2200,\n \"uogonek\", 0x0173,\n \"uparen\", 0x24b0,\n \"upblock\", 0x2580,\n \"upperdothebrew\", 0x05c4,\n \"upsilon\", 0x03c5,\n \"upsilondieresis\", 0x03cb,\n \"upsilondieresistonos\", 0x03b0,\n \"upsilonlatin\", 0x028a,\n \"upsilontonos\", 0x03cd,\n \"uptackbelowcmb\", 0x031d,\n \"uptackmod\", 0x02d4,\n \"uragurmukhi\", 0x0a73,\n \"uring\", 0x016f,\n \"ushortcyrillic\", 0x045e,\n \"usmallhiragana\", 0x3045,\n \"usmallkatakana\", 0x30a5,\n \"usmallkatakanahalfwidth\", 0xff69,\n \"ustraightcyrillic\", 0x04af,\n \"ustraightstrokecyrillic\", 0x04b1,\n \"utilde\", 0x0169,\n \"utildeacute\", 0x1e79,\n \"utildebelow\", 0x1e75,\n \"uubengali\", 0x098a,\n \"uudeva\", 0x090a,\n \"uugujarati\", 0x0a8a,\n \"uugurmukhi\", 0x0a0a,\n \"uumatragurmukhi\", 0x0a42,\n \"uuvowelsignbengali\", 0x09c2,\n \"uuvowelsigndeva\", 0x0942,\n \"uuvowelsigngujarati\", 0x0ac2,\n \"uvowelsignbengali\", 0x09c1,\n \"uvowelsigndeva\", 0x0941,\n \"uvowelsigngujarati\", 0x0ac1,\n \"v\", 0x0076,\n \"vadeva\", 0x0935,\n \"vagujarati\", 0x0ab5,\n \"vagurmukhi\", 0x0a35,\n \"vakatakana\", 0x30f7,\n \"vav\", 0x05d5,\n \"vavdagesh\", 0xfb35,\n \"vavdagesh65\", 0xfb35,\n \"vavdageshhebrew\", 0xfb35,\n \"vavhebrew\", 0x05d5,\n \"vavholam\", 0xfb4b,\n \"vavholamhebrew\", 0xfb4b,\n \"vavvavhebrew\", 0x05f0,\n \"vavyodhebrew\", 0x05f1,\n \"vcircle\", 0x24e5,\n \"vdotbelow\", 0x1e7f,\n \"vecyrillic\", 0x0432,\n \"veharabic\", 0x06a4,\n \"vehfinalarabic\", 0xfb6b,\n \"vehinitialarabic\", 0xfb6c,\n \"vehmedialarabic\", 0xfb6d,\n \"vekatakana\", 0x30f9,\n \"venus\", 0x2640,\n \"verticalbar\", 0x007c,\n \"verticallineabovecmb\", 0x030d,\n \"verticallinebelowcmb\", 0x0329,\n \"verticallinelowmod\", 0x02cc,\n \"verticallinemod\", 0x02c8,\n \"vewarmenian\", 0x057e,\n \"vhook\", 0x028b,\n \"vikatakana\", 0x30f8,\n \"viramabengali\", 0x09cd,\n \"viramadeva\", 0x094d,\n \"viramagujarati\", 0x0acd,\n \"visargabengali\", 0x0983,\n \"visargadeva\", 0x0903,\n \"visargagujarati\", 0x0a83,\n \"vmonospace\", 0xff56,\n \"voarmenian\", 0x0578,\n \"voicediterationhiragana\", 0x309e,\n \"voicediterationkatakana\", 0x30fe,\n \"voicedmarkkana\", 0x309b,\n \"voicedmarkkanahalfwidth\", 0xff9e,\n \"vokatakana\", 0x30fa,\n \"vparen\", 0x24b1,\n \"vtilde\", 0x1e7d,\n \"vturned\", 0x028c,\n \"vuhiragana\", 0x3094,\n \"vukatakana\", 0x30f4,\n \"w\", 0x0077,\n \"wacute\", 0x1e83,\n \"waekorean\", 0x3159,\n \"wahiragana\", 0x308f,\n \"wakatakana\", 0x30ef,\n \"wakatakanahalfwidth\", 0xff9c,\n \"wakorean\", 0x3158,\n \"wasmallhiragana\", 0x308e,\n \"wasmallkatakana\", 0x30ee,\n \"wattosquare\", 0x3357,\n \"wavedash\", 0x301c,\n \"wavyunderscorevertical\", 0xfe34,\n \"wawarabic\", 0x0648,\n \"wawfinalarabic\", 0xfeee,\n \"wawhamzaabovearabic\", 0x0624,\n \"wawhamzaabovefinalarabic\", 0xfe86,\n \"wbsquare\", 0x33dd,\n \"wcircle\", 0x24e6,\n \"wcircumflex\", 0x0175,\n \"wdieresis\", 0x1e85,\n \"wdotaccent\", 0x1e87,\n \"wdotbelow\", 0x1e89,\n \"wehiragana\", 0x3091,\n \"weierstrass\", 0x2118,\n \"wekatakana\", 0x30f1,\n \"wekorean\", 0x315e,\n \"weokorean\", 0x315d,\n \"wgrave\", 0x1e81,\n \"whitebullet\", 0x25e6,\n \"whitecircle\", 0x25cb,\n \"whitecircleinverse\", 0x25d9,\n \"whitecornerbracketleft\", 0x300e,\n \"whitecornerbracketleftvertical\", 0xfe43,\n \"whitecornerbracketright\", 0x300f,\n \"whitecornerbracketrightvertical\", 0xfe44,\n \"whitediamond\", 0x25c7,\n \"whitediamondcontainingblacksmalldiamond\", 0x25c8,\n \"whitedownpointingsmalltriangle\", 0x25bf,\n \"whitedownpointingtriangle\", 0x25bd,\n \"whiteleftpointingsmalltriangle\", 0x25c3,\n \"whiteleftpointingtriangle\", 0x25c1,\n \"whitelenticularbracketleft\", 0x3016,\n \"whitelenticularbracketright\", 0x3017,\n \"whiterightpointingsmalltriangle\", 0x25b9,\n \"whiterightpointingtriangle\", 0x25b7,\n \"whitesmallsquare\", 0x25ab,\n \"whitesmilingface\", 0x263a,\n \"whitesquare\", 0x25a1,\n \"whitestar\", 0x2606,\n \"whitetelephone\", 0x260f,\n \"whitetortoiseshellbracketleft\", 0x3018,\n \"whitetortoiseshellbracketright\", 0x3019,\n \"whiteuppointingsmalltriangle\", 0x25b5,\n \"whiteuppointingtriangle\", 0x25b3,\n \"wihiragana\", 0x3090,\n \"wikatakana\", 0x30f0,\n \"wikorean\", 0x315f,\n \"wmonospace\", 0xff57,\n \"wohiragana\", 0x3092,\n \"wokatakana\", 0x30f2,\n \"wokatakanahalfwidth\", 0xff66,\n \"won\", 0x20a9,\n \"wonmonospace\", 0xffe6,\n \"wowaenthai\", 0x0e27,\n \"wparen\", 0x24b2,\n \"wring\", 0x1e98,\n \"wsuperior\", 0x02b7,\n \"wturned\", 0x028d,\n \"wynn\", 0x01bf,\n \"x\", 0x0078,\n \"xabovecmb\", 0x033d,\n \"xbopomofo\", 0x3112,\n \"xcircle\", 0x24e7,\n \"xdieresis\", 0x1e8d,\n \"xdotaccent\", 0x1e8b,\n \"xeharmenian\", 0x056d,\n \"xi\", 0x03be,\n \"xmonospace\", 0xff58,\n \"xparen\", 0x24b3,\n \"xsuperior\", 0x02e3,\n \"y\", 0x0079,\n \"yaadosquare\", 0x334e,\n \"yabengali\", 0x09af,\n \"yacute\", 0x00fd,\n \"yadeva\", 0x092f,\n \"yaekorean\", 0x3152,\n \"yagujarati\", 0x0aaf,\n \"yagurmukhi\", 0x0a2f,\n \"yahiragana\", 0x3084,\n \"yakatakana\", 0x30e4,\n \"yakatakanahalfwidth\", 0xff94,\n \"yakorean\", 0x3151,\n \"yamakkanthai\", 0x0e4e,\n \"yasmallhiragana\", 0x3083,\n \"yasmallkatakana\", 0x30e3,\n \"yasmallkatakanahalfwidth\", 0xff6c,\n \"yatcyrillic\", 0x0463,\n \"ycircle\", 0x24e8,\n \"ycircumflex\", 0x0177,\n \"ydieresis\", 0x00ff,\n \"ydotaccent\", 0x1e8f,\n \"ydotbelow\", 0x1ef5,\n \"yeharabic\", 0x064a,\n \"yehbarreearabic\", 0x06d2,\n \"yehbarreefinalarabic\", 0xfbaf,\n \"yehfinalarabic\", 0xfef2,\n \"yehhamzaabovearabic\", 0x0626,\n \"yehhamzaabovefinalarabic\", 0xfe8a,\n \"yehhamzaaboveinitialarabic\", 0xfe8b,\n \"yehhamzaabovemedialarabic\", 0xfe8c,\n \"yehinitialarabic\", 0xfef3,\n \"yehmedialarabic\", 0xfef4,\n \"yehmeeminitialarabic\", 0xfcdd,\n \"yehmeemisolatedarabic\", 0xfc58,\n \"yehnoonfinalarabic\", 0xfc94,\n \"yehthreedotsbelowarabic\", 0x06d1,\n \"yekorean\", 0x3156,\n \"yen\", 0x00a5,\n \"yenmonospace\", 0xffe5,\n \"yeokorean\", 0x3155,\n \"yeorinhieuhkorean\", 0x3186,\n \"yerahbenyomohebrew\", 0x05aa,\n \"yerahbenyomolefthebrew\", 0x05aa,\n \"yericyrillic\", 0x044b,\n \"yerudieresiscyrillic\", 0x04f9,\n \"yesieungkorean\", 0x3181,\n \"yesieungpansioskorean\", 0x3183,\n \"yesieungsioskorean\", 0x3182,\n \"yetivhebrew\", 0x059a,\n \"ygrave\", 0x1ef3,\n \"yhook\", 0x01b4,\n \"yhookabove\", 0x1ef7,\n \"yiarmenian\", 0x0575,\n \"yicyrillic\", 0x0457,\n \"yikorean\", 0x3162,\n \"yinyang\", 0x262f,\n \"yiwnarmenian\", 0x0582,\n \"ymonospace\", 0xff59,\n \"yod\", 0x05d9,\n \"yoddagesh\", 0xfb39,\n \"yoddageshhebrew\", 0xfb39,\n \"yodhebrew\", 0x05d9,\n \"yodyodhebrew\", 0x05f2,\n \"yodyodpatahhebrew\", 0xfb1f,\n \"yohiragana\", 0x3088,\n \"yoikorean\", 0x3189,\n \"yokatakana\", 0x30e8,\n \"yokatakanahalfwidth\", 0xff96,\n \"yokorean\", 0x315b,\n \"yosmallhiragana\", 0x3087,\n \"yosmallkatakana\", 0x30e7,\n \"yosmallkatakanahalfwidth\", 0xff6e,\n \"yotgreek\", 0x03f3,\n \"yoyaekorean\", 0x3188,\n \"yoyakorean\", 0x3187,\n \"yoyakthai\", 0x0e22,\n \"yoyingthai\", 0x0e0d,\n \"yparen\", 0x24b4,\n \"ypogegrammeni\", 0x037a,\n \"ypogegrammenigreekcmb\", 0x0345,\n \"yr\", 0x01a6,\n \"yring\", 0x1e99,\n \"ysuperior\", 0x02b8,\n \"ytilde\", 0x1ef9,\n \"yturned\", 0x028e,\n \"yuhiragana\", 0x3086,\n \"yuikorean\", 0x318c,\n \"yukatakana\", 0x30e6,\n \"yukatakanahalfwidth\", 0xff95,\n \"yukorean\", 0x3160,\n \"yusbigcyrillic\", 0x046b,\n \"yusbigiotifiedcyrillic\", 0x046d,\n \"yuslittlecyrillic\", 0x0467,\n \"yuslittleiotifiedcyrillic\", 0x0469,\n \"yusmallhiragana\", 0x3085,\n \"yusmallkatakana\", 0x30e5,\n \"yusmallkatakanahalfwidth\", 0xff6d,\n \"yuyekorean\", 0x318b,\n \"yuyeokorean\", 0x318a,\n \"yyabengali\", 0x09df,\n \"yyadeva\", 0x095f,\n \"z\", 0x007a,\n \"zaarmenian\", 0x0566,\n \"zacute\", 0x017a,\n \"zadeva\", 0x095b,\n \"zagurmukhi\", 0x0a5b,\n \"zaharabic\", 0x0638,\n \"zahfinalarabic\", 0xfec6,\n \"zahinitialarabic\", 0xfec7,\n \"zahiragana\", 0x3056,\n \"zahmedialarabic\", 0xfec8,\n \"zainarabic\", 0x0632,\n \"zainfinalarabic\", 0xfeb0,\n \"zakatakana\", 0x30b6,\n \"zaqefgadolhebrew\", 0x0595,\n \"zaqefqatanhebrew\", 0x0594,\n \"zarqahebrew\", 0x0598,\n \"zayin\", 0x05d6,\n \"zayindagesh\", 0xfb36,\n \"zayindageshhebrew\", 0xfb36,\n \"zayinhebrew\", 0x05d6,\n \"zbopomofo\", 0x3117,\n \"zcaron\", 0x017e,\n \"zcircle\", 0x24e9,\n \"zcircumflex\", 0x1e91,\n \"zcurl\", 0x0291,\n \"zdot\", 0x017c,\n \"zdotaccent\", 0x017c,\n \"zdotbelow\", 0x1e93,\n \"zecyrillic\", 0x0437,\n \"zedescendercyrillic\", 0x0499,\n \"zedieresiscyrillic\", 0x04df,\n \"zehiragana\", 0x305c,\n \"zekatakana\", 0x30bc,\n \"zero\", 0x0030,\n \"zeroarabic\", 0x0660,\n \"zerobengali\", 0x09e6,\n \"zerodeva\", 0x0966,\n \"zerogujarati\", 0x0ae6,\n \"zerogurmukhi\", 0x0a66,\n \"zerohackarabic\", 0x0660,\n \"zeroinferior\", 0x2080,\n \"zeromonospace\", 0xff10,\n \"zerooldstyle\", 0xf730,\n \"zeropersian\", 0x06f0,\n \"zerosuperior\", 0x2070,\n \"zerothai\", 0x0e50,\n \"zerowidthjoiner\", 0xfeff,\n \"zerowidthnonjoiner\", 0x200c,\n \"zerowidthspace\", 0x200b,\n \"zeta\", 0x03b6,\n \"zhbopomofo\", 0x3113,\n \"zhearmenian\", 0x056a,\n \"zhebrevecyrillic\", 0x04c2,\n \"zhecyrillic\", 0x0436,\n \"zhedescendercyrillic\", 0x0497,\n \"zhedieresiscyrillic\", 0x04dd,\n \"zihiragana\", 0x3058,\n \"zikatakana\", 0x30b8,\n \"zinorhebrew\", 0x05ae,\n \"zlinebelow\", 0x1e95,\n \"zmonospace\", 0xff5a,\n \"zohiragana\", 0x305e,\n \"zokatakana\", 0x30be,\n \"zparen\", 0x24b5,\n \"zretroflexhook\", 0x0290,\n \"zstroke\", 0x01b6,\n \"zuhiragana\", 0x305a,\n \"zukatakana\", 0x30ba,\n \".notdef\", 0x0000,\n\n // TeX-specific glyph names.\n \"angbracketleftbig\", 0x2329,\n \"angbracketleftBig\", 0x2329,\n \"angbracketleftbigg\", 0x2329,\n \"angbracketleftBigg\", 0x2329,\n \"angbracketrightBig\", 0x232a,\n \"angbracketrightbig\", 0x232a,\n \"angbracketrightBigg\", 0x232a,\n \"angbracketrightbigg\", 0x232a,\n \"arrowhookleft\", 0x21aa,\n \"arrowhookright\", 0x21a9,\n \"arrowlefttophalf\", 0x21bc,\n \"arrowleftbothalf\", 0x21bd,\n \"arrownortheast\", 0x2197,\n \"arrownorthwest\", 0x2196,\n \"arrowrighttophalf\", 0x21c0,\n \"arrowrightbothalf\", 0x21c1,\n \"arrowsoutheast\", 0x2198,\n \"arrowsouthwest\", 0x2199,\n \"backslashbig\", 0x2216,\n \"backslashBig\", 0x2216,\n \"backslashBigg\", 0x2216,\n \"backslashbigg\", 0x2216,\n \"bardbl\", 0x2016,\n \"bracehtipdownleft\", 0xfe37,\n \"bracehtipdownright\", 0xfe37,\n \"bracehtipupleft\", 0xfe38,\n \"bracehtipupright\", 0xfe38,\n \"braceleftBig\", 0x007b,\n \"braceleftbig\", 0x007b,\n \"braceleftbigg\", 0x007b,\n \"braceleftBigg\", 0x007b,\n \"bracerightBig\", 0x007d,\n \"bracerightbig\", 0x007d,\n \"bracerightbigg\", 0x007d,\n \"bracerightBigg\", 0x007d,\n \"bracketleftbig\", 0x005b,\n \"bracketleftBig\", 0x005b,\n \"bracketleftbigg\", 0x005b,\n \"bracketleftBigg\", 0x005b,\n \"bracketrightBig\", 0x005d,\n \"bracketrightbig\", 0x005d,\n \"bracketrightbigg\", 0x005d,\n \"bracketrightBigg\", 0x005d,\n \"ceilingleftbig\", 0x2308,\n \"ceilingleftBig\", 0x2308,\n \"ceilingleftBigg\", 0x2308,\n \"ceilingleftbigg\", 0x2308,\n \"ceilingrightbig\", 0x2309,\n \"ceilingrightBig\", 0x2309,\n \"ceilingrightbigg\", 0x2309,\n \"ceilingrightBigg\", 0x2309,\n \"circledotdisplay\", 0x2299,\n \"circledottext\", 0x2299,\n \"circlemultiplydisplay\", 0x2297,\n \"circlemultiplytext\", 0x2297,\n \"circleplusdisplay\", 0x2295,\n \"circleplustext\", 0x2295,\n \"contintegraldisplay\", 0x222e,\n \"contintegraltext\", 0x222e,\n \"coproductdisplay\", 0x2210,\n \"coproducttext\", 0x2210,\n \"floorleftBig\", 0x230a,\n \"floorleftbig\", 0x230a,\n \"floorleftbigg\", 0x230a,\n \"floorleftBigg\", 0x230a,\n \"floorrightbig\", 0x230b,\n \"floorrightBig\", 0x230b,\n \"floorrightBigg\", 0x230b,\n \"floorrightbigg\", 0x230b,\n \"hatwide\", 0x0302,\n \"hatwider\", 0x0302,\n \"hatwidest\", 0x0302,\n \"intercal\", 0x1d40,\n \"integraldisplay\", 0x222b,\n \"integraltext\", 0x222b,\n \"intersectiondisplay\", 0x22c2,\n \"intersectiontext\", 0x22c2,\n \"logicalanddisplay\", 0x2227,\n \"logicalandtext\", 0x2227,\n \"logicalordisplay\", 0x2228,\n \"logicalortext\", 0x2228,\n \"parenleftBig\", 0x0028,\n \"parenleftbig\", 0x0028,\n \"parenleftBigg\", 0x0028,\n \"parenleftbigg\", 0x0028,\n \"parenrightBig\", 0x0029,\n \"parenrightbig\", 0x0029,\n \"parenrightBigg\", 0x0029,\n \"parenrightbigg\", 0x0029,\n \"prime\", 0x2032,\n \"productdisplay\", 0x220f,\n \"producttext\", 0x220f,\n \"radicalbig\", 0x221a,\n \"radicalBig\", 0x221a,\n \"radicalBigg\", 0x221a,\n \"radicalbigg\", 0x221a,\n \"radicalbt\", 0x221a,\n \"radicaltp\", 0x221a,\n \"radicalvertex\", 0x221a,\n \"slashbig\", 0x002f,\n \"slashBig\", 0x002f,\n \"slashBigg\", 0x002f,\n \"slashbigg\", 0x002f,\n \"summationdisplay\", 0x2211,\n \"summationtext\", 0x2211,\n \"tildewide\", 0x02dc,\n \"tildewider\", 0x02dc,\n \"tildewidest\", 0x02dc,\n \"uniondisplay\", 0x22c3,\n \"unionmultidisplay\", 0x228e,\n \"unionmultitext\", 0x228e,\n \"unionsqdisplay\", 0x2294,\n \"unionsqtext\", 0x2294,\n \"uniontext\", 0x22c3,\n \"vextenddouble\", 0x2225,\n \"vextendsingle\", 0x2223,\n ];\n});\n\nconst getDingbatsGlyphsUnicode = getArrayLookupTableFactory(function () {\n // prettier-ignore\n return [\n \"space\", 0x0020,\n \"a1\", 0x2701,\n \"a2\", 0x2702,\n \"a202\", 0x2703,\n \"a3\", 0x2704,\n \"a4\", 0x260e,\n \"a5\", 0x2706,\n \"a119\", 0x2707,\n \"a118\", 0x2708,\n \"a117\", 0x2709,\n \"a11\", 0x261b,\n \"a12\", 0x261e,\n \"a13\", 0x270c,\n \"a14\", 0x270d,\n \"a15\", 0x270e,\n \"a16\", 0x270f,\n \"a105\", 0x2710,\n \"a17\", 0x2711,\n \"a18\", 0x2712,\n \"a19\", 0x2713,\n \"a20\", 0x2714,\n \"a21\", 0x2715,\n \"a22\", 0x2716,\n \"a23\", 0x2717,\n \"a24\", 0x2718,\n \"a25\", 0x2719,\n \"a26\", 0x271a,\n \"a27\", 0x271b,\n \"a28\", 0x271c,\n \"a6\", 0x271d,\n \"a7\", 0x271e,\n \"a8\", 0x271f,\n \"a9\", 0x2720,\n \"a10\", 0x2721,\n \"a29\", 0x2722,\n \"a30\", 0x2723,\n \"a31\", 0x2724,\n \"a32\", 0x2725,\n \"a33\", 0x2726,\n \"a34\", 0x2727,\n \"a35\", 0x2605,\n \"a36\", 0x2729,\n \"a37\", 0x272a,\n \"a38\", 0x272b,\n \"a39\", 0x272c,\n \"a40\", 0x272d,\n \"a41\", 0x272e,\n \"a42\", 0x272f,\n \"a43\", 0x2730,\n \"a44\", 0x2731,\n \"a45\", 0x2732,\n \"a46\", 0x2733,\n \"a47\", 0x2734,\n \"a48\", 0x2735,\n \"a49\", 0x2736,\n \"a50\", 0x2737,\n \"a51\", 0x2738,\n \"a52\", 0x2739,\n \"a53\", 0x273a,\n \"a54\", 0x273b,\n \"a55\", 0x273c,\n \"a56\", 0x273d,\n \"a57\", 0x273e,\n \"a58\", 0x273f,\n \"a59\", 0x2740,\n \"a60\", 0x2741,\n \"a61\", 0x2742,\n \"a62\", 0x2743,\n \"a63\", 0x2744,\n \"a64\", 0x2745,\n \"a65\", 0x2746,\n \"a66\", 0x2747,\n \"a67\", 0x2748,\n \"a68\", 0x2749,\n \"a69\", 0x274a,\n \"a70\", 0x274b,\n \"a71\", 0x25cf,\n \"a72\", 0x274d,\n \"a73\", 0x25a0,\n \"a74\", 0x274f,\n \"a203\", 0x2750,\n \"a75\", 0x2751,\n \"a204\", 0x2752,\n \"a76\", 0x25b2,\n \"a77\", 0x25bc,\n \"a78\", 0x25c6,\n \"a79\", 0x2756,\n \"a81\", 0x25d7,\n \"a82\", 0x2758,\n \"a83\", 0x2759,\n \"a84\", 0x275a,\n \"a97\", 0x275b,\n \"a98\", 0x275c,\n \"a99\", 0x275d,\n \"a100\", 0x275e,\n \"a101\", 0x2761,\n \"a102\", 0x2762,\n \"a103\", 0x2763,\n \"a104\", 0x2764,\n \"a106\", 0x2765,\n \"a107\", 0x2766,\n \"a108\", 0x2767,\n \"a112\", 0x2663,\n \"a111\", 0x2666,\n \"a110\", 0x2665,\n \"a109\", 0x2660,\n \"a120\", 0x2460,\n \"a121\", 0x2461,\n \"a122\", 0x2462,\n \"a123\", 0x2463,\n \"a124\", 0x2464,\n \"a125\", 0x2465,\n \"a126\", 0x2466,\n \"a127\", 0x2467,\n \"a128\", 0x2468,\n \"a129\", 0x2469,\n \"a130\", 0x2776,\n \"a131\", 0x2777,\n \"a132\", 0x2778,\n \"a133\", 0x2779,\n \"a134\", 0x277a,\n \"a135\", 0x277b,\n \"a136\", 0x277c,\n \"a137\", 0x277d,\n \"a138\", 0x277e,\n \"a139\", 0x277f,\n \"a140\", 0x2780,\n \"a141\", 0x2781,\n \"a142\", 0x2782,\n \"a143\", 0x2783,\n \"a144\", 0x2784,\n \"a145\", 0x2785,\n \"a146\", 0x2786,\n \"a147\", 0x2787,\n \"a148\", 0x2788,\n \"a149\", 0x2789,\n \"a150\", 0x278a,\n \"a151\", 0x278b,\n \"a152\", 0x278c,\n \"a153\", 0x278d,\n \"a154\", 0x278e,\n \"a155\", 0x278f,\n \"a156\", 0x2790,\n \"a157\", 0x2791,\n \"a158\", 0x2792,\n \"a159\", 0x2793,\n \"a160\", 0x2794,\n \"a161\", 0x2192,\n \"a163\", 0x2194,\n \"a164\", 0x2195,\n \"a196\", 0x2798,\n \"a165\", 0x2799,\n \"a192\", 0x279a,\n \"a166\", 0x279b,\n \"a167\", 0x279c,\n \"a168\", 0x279d,\n \"a169\", 0x279e,\n \"a170\", 0x279f,\n \"a171\", 0x27a0,\n \"a172\", 0x27a1,\n \"a173\", 0x27a2,\n \"a162\", 0x27a3,\n \"a174\", 0x27a4,\n \"a175\", 0x27a5,\n \"a176\", 0x27a6,\n \"a177\", 0x27a7,\n \"a178\", 0x27a8,\n \"a179\", 0x27a9,\n \"a193\", 0x27aa,\n \"a180\", 0x27ab,\n \"a199\", 0x27ac,\n \"a181\", 0x27ad,\n \"a200\", 0x27ae,\n \"a182\", 0x27af,\n \"a201\", 0x27b1,\n \"a183\", 0x27b2,\n \"a184\", 0x27b3,\n \"a197\", 0x27b4,\n \"a185\", 0x27b5,\n \"a194\", 0x27b6,\n \"a198\", 0x27b7,\n \"a186\", 0x27b8,\n \"a195\", 0x27b9,\n \"a187\", 0x27ba,\n \"a188\", 0x27bb,\n \"a189\", 0x27bc,\n \"a190\", 0x27bd,\n \"a191\", 0x27be,\n \"a89\", 0x2768, // 0xF8D7\n \"a90\", 0x2769, // 0xF8D8\n \"a93\", 0x276a, // 0xF8D9\n \"a94\", 0x276b, // 0xF8DA\n \"a91\", 0x276c, // 0xF8DB\n \"a92\", 0x276d, // 0xF8DC\n \"a205\", 0x276e, // 0xF8DD\n \"a85\", 0x276f, // 0xF8DE\n \"a206\", 0x2770, // 0xF8DF\n \"a86\", 0x2771, // 0xF8E0\n \"a87\", 0x2772, // 0xF8E1\n \"a88\", 0x2773, // 0xF8E2\n \"a95\", 0x2774, // 0xF8E3\n \"a96\", 0x2775, // 0xF8E4\n \".notdef\", 0x0000,\n ];\n});\n\nexport { getDingbatsGlyphsUnicode, getGlyphsUnicode };\n","/* Copyright 2016 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* no-babel-preset */\n\nimport {\n getArrayLookupTableFactory,\n getLookupTableFactory,\n} from \"./core_utils.js\";\n\n// Some characters, e.g. copyrightserif, are mapped to the private use area\n// and might not be displayed using standard fonts. Mapping/hacking well-known\n// chars to the similar equivalents in the normal characters range.\nconst getSpecialPUASymbols = getLookupTableFactory(function (t) {\n t[63721] = 0x00a9; // copyrightsans (0xF8E9) => copyright\n t[63193] = 0x00a9; // copyrightserif (0xF6D9) => copyright\n t[63720] = 0x00ae; // registersans (0xF8E8) => registered\n t[63194] = 0x00ae; // registerserif (0xF6DA) => registered\n t[63722] = 0x2122; // trademarksans (0xF8EA) => trademark\n t[63195] = 0x2122; // trademarkserif (0xF6DB) => trademark\n t[63729] = 0x23a7; // bracelefttp (0xF8F1)\n t[63730] = 0x23a8; // braceleftmid (0xF8F2)\n t[63731] = 0x23a9; // braceleftbt (0xF8F3)\n t[63740] = 0x23ab; // bracerighttp (0xF8FC)\n t[63741] = 0x23ac; // bracerightmid (0xF8FD)\n t[63742] = 0x23ad; // bracerightbt (0xF8FE)\n t[63726] = 0x23a1; // bracketlefttp (0xF8EE)\n t[63727] = 0x23a2; // bracketleftex (0xF8EF)\n t[63728] = 0x23a3; // bracketleftbt (0xF8F0)\n t[63737] = 0x23a4; // bracketrighttp (0xF8F9)\n t[63738] = 0x23a5; // bracketrightex (0xF8FA)\n t[63739] = 0x23a6; // bracketrightbt (0xF8FB)\n t[63723] = 0x239b; // parenlefttp (0xF8EB)\n t[63724] = 0x239c; // parenleftex (0xF8EC)\n t[63725] = 0x239d; // parenleftbt (0xF8ED)\n t[63734] = 0x239e; // parenrighttp (0xF8F6)\n t[63735] = 0x239f; // parenrightex (0xF8F7)\n t[63736] = 0x23a0; // parenrightbt (0xF8F8)\n});\n\nfunction mapSpecialUnicodeValues(code) {\n if (code >= 0xfff0 && code <= 0xffff) {\n // Specials unicode block.\n return 0;\n } else if (code >= 0xf600 && code <= 0xf8ff) {\n return getSpecialPUASymbols()[code] || code;\n } else if (code === /* softhyphen = */ 0x00ad) {\n return 0x002d; // hyphen\n }\n return code;\n}\n\nfunction getUnicodeForGlyph(name, glyphsUnicodeMap) {\n let unicode = glyphsUnicodeMap[name];\n if (unicode !== undefined) {\n return unicode;\n }\n if (!name) {\n return -1;\n }\n // Try to recover valid Unicode values from 'uniXXXX'/'uXXXX{XX}' glyphs.\n if (name[0] === \"u\") {\n const nameLen = name.length;\n let hexStr;\n\n if (nameLen === 7 && name[1] === \"n\" && name[2] === \"i\") {\n // 'uniXXXX'\n hexStr = name.substring(3);\n } else if (nameLen >= 5 && nameLen <= 7) {\n // 'uXXXX{XX}'\n hexStr = name.substring(1);\n } else {\n return -1;\n }\n // Check for upper-case hexadecimal characters, to avoid false positives.\n if (hexStr === hexStr.toUpperCase()) {\n unicode = parseInt(hexStr, 16);\n if (unicode >= 0) {\n return unicode;\n }\n }\n }\n return -1;\n}\n\nconst UnicodeRanges = [\n { begin: 0x0000, end: 0x007f }, // Basic Latin\n { begin: 0x0080, end: 0x00ff }, // Latin-1 Supplement\n { begin: 0x0100, end: 0x017f }, // Latin Extended-A\n { begin: 0x0180, end: 0x024f }, // Latin Extended-B\n { begin: 0x0250, end: 0x02af }, // IPA Extensions\n { begin: 0x02b0, end: 0x02ff }, // Spacing Modifier Letters\n { begin: 0x0300, end: 0x036f }, // Combining Diacritical Marks\n { begin: 0x0370, end: 0x03ff }, // Greek and Coptic\n { begin: 0x2c80, end: 0x2cff }, // Coptic\n { begin: 0x0400, end: 0x04ff }, // Cyrillic\n { begin: 0x0530, end: 0x058f }, // Armenian\n { begin: 0x0590, end: 0x05ff }, // Hebrew\n { begin: 0xa500, end: 0xa63f }, // Vai\n { begin: 0x0600, end: 0x06ff }, // Arabic\n { begin: 0x07c0, end: 0x07ff }, // NKo\n { begin: 0x0900, end: 0x097f }, // Devanagari\n { begin: 0x0980, end: 0x09ff }, // Bengali\n { begin: 0x0a00, end: 0x0a7f }, // Gurmukhi\n { begin: 0x0a80, end: 0x0aff }, // Gujarati\n { begin: 0x0b00, end: 0x0b7f }, // Oriya\n { begin: 0x0b80, end: 0x0bff }, // Tamil\n { begin: 0x0c00, end: 0x0c7f }, // Telugu\n { begin: 0x0c80, end: 0x0cff }, // Kannada\n { begin: 0x0d00, end: 0x0d7f }, // Malayalam\n { begin: 0x0e00, end: 0x0e7f }, // Thai\n { begin: 0x0e80, end: 0x0eff }, // Lao\n { begin: 0x10a0, end: 0x10ff }, // Georgian\n { begin: 0x1b00, end: 0x1b7f }, // Balinese\n { begin: 0x1100, end: 0x11ff }, // Hangul Jamo\n { begin: 0x1e00, end: 0x1eff }, // Latin Extended Additional\n { begin: 0x1f00, end: 0x1fff }, // Greek Extended\n { begin: 0x2000, end: 0x206f }, // General Punctuation\n { begin: 0x2070, end: 0x209f }, // Superscripts And Subscripts\n { begin: 0x20a0, end: 0x20cf }, // Currency Symbol\n { begin: 0x20d0, end: 0x20ff }, // Combining Diacritical Marks\n { begin: 0x2100, end: 0x214f }, // Letterlike Symbols\n { begin: 0x2150, end: 0x218f }, // Number Forms\n { begin: 0x2190, end: 0x21ff }, // Arrows\n { begin: 0x2200, end: 0x22ff }, // Mathematical Operators\n { begin: 0x2300, end: 0x23ff }, // Miscellaneous Technical\n { begin: 0x2400, end: 0x243f }, // Control Pictures\n { begin: 0x2440, end: 0x245f }, // Optical Character Recognition\n { begin: 0x2460, end: 0x24ff }, // Enclosed Alphanumerics\n { begin: 0x2500, end: 0x257f }, // Box Drawing\n { begin: 0x2580, end: 0x259f }, // Block Elements\n { begin: 0x25a0, end: 0x25ff }, // Geometric Shapes\n { begin: 0x2600, end: 0x26ff }, // Miscellaneous Symbols\n { begin: 0x2700, end: 0x27bf }, // Dingbats\n { begin: 0x3000, end: 0x303f }, // CJK Symbols And Punctuation\n { begin: 0x3040, end: 0x309f }, // Hiragana\n { begin: 0x30a0, end: 0x30ff }, // Katakana\n { begin: 0x3100, end: 0x312f }, // Bopomofo\n { begin: 0x3130, end: 0x318f }, // Hangul Compatibility Jamo\n { begin: 0xa840, end: 0xa87f }, // Phags-pa\n { begin: 0x3200, end: 0x32ff }, // Enclosed CJK Letters And Months\n { begin: 0x3300, end: 0x33ff }, // CJK Compatibility\n { begin: 0xac00, end: 0xd7af }, // Hangul Syllables\n { begin: 0xd800, end: 0xdfff }, // Non-Plane 0 *\n { begin: 0x10900, end: 0x1091f }, // Phoenicia\n { begin: 0x4e00, end: 0x9fff }, // CJK Unified Ideographs\n { begin: 0xe000, end: 0xf8ff }, // Private Use Area (plane 0)\n { begin: 0x31c0, end: 0x31ef }, // CJK Strokes\n { begin: 0xfb00, end: 0xfb4f }, // Alphabetic Presentation Forms\n { begin: 0xfb50, end: 0xfdff }, // Arabic Presentation Forms-A\n { begin: 0xfe20, end: 0xfe2f }, // Combining Half Marks\n { begin: 0xfe10, end: 0xfe1f }, // Vertical Forms\n { begin: 0xfe50, end: 0xfe6f }, // Small Form Variants\n { begin: 0xfe70, end: 0xfeff }, // Arabic Presentation Forms-B\n { begin: 0xff00, end: 0xffef }, // Halfwidth And Fullwidth Forms\n { begin: 0xfff0, end: 0xffff }, // Specials\n { begin: 0x0f00, end: 0x0fff }, // Tibetan\n { begin: 0x0700, end: 0x074f }, // Syriac\n { begin: 0x0780, end: 0x07bf }, // Thaana\n { begin: 0x0d80, end: 0x0dff }, // Sinhala\n { begin: 0x1000, end: 0x109f }, // Myanmar\n { begin: 0x1200, end: 0x137f }, // Ethiopic\n { begin: 0x13a0, end: 0x13ff }, // Cherokee\n { begin: 0x1400, end: 0x167f }, // Unified Canadian Aboriginal Syllabics\n { begin: 0x1680, end: 0x169f }, // Ogham\n { begin: 0x16a0, end: 0x16ff }, // Runic\n { begin: 0x1780, end: 0x17ff }, // Khmer\n { begin: 0x1800, end: 0x18af }, // Mongolian\n { begin: 0x2800, end: 0x28ff }, // Braille Patterns\n { begin: 0xa000, end: 0xa48f }, // Yi Syllables\n { begin: 0x1700, end: 0x171f }, // Tagalog\n { begin: 0x10300, end: 0x1032f }, // Old Italic\n { begin: 0x10330, end: 0x1034f }, // Gothic\n { begin: 0x10400, end: 0x1044f }, // Deseret\n { begin: 0x1d000, end: 0x1d0ff }, // Byzantine Musical Symbols\n { begin: 0x1d400, end: 0x1d7ff }, // Mathematical Alphanumeric Symbols\n { begin: 0xff000, end: 0xffffd }, // Private Use (plane 15)\n { begin: 0xfe00, end: 0xfe0f }, // Variation Selectors\n { begin: 0xe0000, end: 0xe007f }, // Tags\n { begin: 0x1900, end: 0x194f }, // Limbu\n { begin: 0x1950, end: 0x197f }, // Tai Le\n { begin: 0x1980, end: 0x19df }, // New Tai Lue\n { begin: 0x1a00, end: 0x1a1f }, // Buginese\n { begin: 0x2c00, end: 0x2c5f }, // Glagolitic\n { begin: 0x2d30, end: 0x2d7f }, // Tifinagh\n { begin: 0x4dc0, end: 0x4dff }, // Yijing Hexagram Symbols\n { begin: 0xa800, end: 0xa82f }, // Syloti Nagri\n { begin: 0x10000, end: 0x1007f }, // Linear B Syllabary\n { begin: 0x10140, end: 0x1018f }, // Ancient Greek Numbers\n { begin: 0x10380, end: 0x1039f }, // Ugaritic\n { begin: 0x103a0, end: 0x103df }, // Old Persian\n { begin: 0x10450, end: 0x1047f }, // Shavian\n { begin: 0x10480, end: 0x104af }, // Osmanya\n { begin: 0x10800, end: 0x1083f }, // Cypriot Syllabary\n { begin: 0x10a00, end: 0x10a5f }, // Kharoshthi\n { begin: 0x1d300, end: 0x1d35f }, // Tai Xuan Jing Symbols\n { begin: 0x12000, end: 0x123ff }, // Cuneiform\n { begin: 0x1d360, end: 0x1d37f }, // Counting Rod Numerals\n { begin: 0x1b80, end: 0x1bbf }, // Sundanese\n { begin: 0x1c00, end: 0x1c4f }, // Lepcha\n { begin: 0x1c50, end: 0x1c7f }, // Ol Chiki\n { begin: 0xa880, end: 0xa8df }, // Saurashtra\n { begin: 0xa900, end: 0xa92f }, // Kayah Li\n { begin: 0xa930, end: 0xa95f }, // Rejang\n { begin: 0xaa00, end: 0xaa5f }, // Cham\n { begin: 0x10190, end: 0x101cf }, // Ancient Symbols\n { begin: 0x101d0, end: 0x101ff }, // Phaistos Disc\n { begin: 0x102a0, end: 0x102df }, // Carian\n { begin: 0x1f030, end: 0x1f09f }, // Domino Tiles\n];\n\nfunction getUnicodeRangeFor(value) {\n for (let i = 0, ii = UnicodeRanges.length; i < ii; i++) {\n const range = UnicodeRanges[i];\n if (value >= range.begin && value < range.end) {\n return i;\n }\n }\n return -1;\n}\n\nfunction isRTLRangeFor(value) {\n let range = UnicodeRanges[13];\n if (value >= range.begin && value < range.end) {\n return true;\n }\n range = UnicodeRanges[11];\n if (value >= range.begin && value < range.end) {\n return true;\n }\n return false;\n}\n\n// The normalization table is obtained by filtering the Unicode characters\n// database with entries.\nconst getNormalizedUnicodes = getArrayLookupTableFactory(function () {\n // prettier-ignore\n return [\n \"\\u00A8\", \"\\u0020\\u0308\",\n \"\\u00AF\", \"\\u0020\\u0304\",\n \"\\u00B4\", \"\\u0020\\u0301\",\n \"\\u00B5\", \"\\u03BC\",\n \"\\u00B8\", \"\\u0020\\u0327\",\n \"\\u0132\", \"\\u0049\\u004A\",\n \"\\u0133\", \"\\u0069\\u006A\",\n \"\\u013F\", \"\\u004C\\u00B7\",\n \"\\u0140\", \"\\u006C\\u00B7\",\n \"\\u0149\", \"\\u02BC\\u006E\",\n \"\\u017F\", \"\\u0073\",\n \"\\u01C4\", \"\\u0044\\u017D\",\n \"\\u01C5\", \"\\u0044\\u017E\",\n \"\\u01C6\", \"\\u0064\\u017E\",\n \"\\u01C7\", \"\\u004C\\u004A\",\n \"\\u01C8\", \"\\u004C\\u006A\",\n \"\\u01C9\", \"\\u006C\\u006A\",\n \"\\u01CA\", \"\\u004E\\u004A\",\n \"\\u01CB\", \"\\u004E\\u006A\",\n \"\\u01CC\", \"\\u006E\\u006A\",\n \"\\u01F1\", \"\\u0044\\u005A\",\n \"\\u01F2\", \"\\u0044\\u007A\",\n \"\\u01F3\", \"\\u0064\\u007A\",\n \"\\u02D8\", \"\\u0020\\u0306\",\n \"\\u02D9\", \"\\u0020\\u0307\",\n \"\\u02DA\", \"\\u0020\\u030A\",\n \"\\u02DB\", \"\\u0020\\u0328\",\n \"\\u02DC\", \"\\u0020\\u0303\",\n \"\\u02DD\", \"\\u0020\\u030B\",\n \"\\u037A\", \"\\u0020\\u0345\",\n \"\\u0384\", \"\\u0020\\u0301\",\n \"\\u03D0\", \"\\u03B2\",\n \"\\u03D1\", \"\\u03B8\",\n \"\\u03D2\", \"\\u03A5\",\n \"\\u03D5\", \"\\u03C6\",\n \"\\u03D6\", \"\\u03C0\",\n \"\\u03F0\", \"\\u03BA\",\n \"\\u03F1\", \"\\u03C1\",\n \"\\u03F2\", \"\\u03C2\",\n \"\\u03F4\", \"\\u0398\",\n \"\\u03F5\", \"\\u03B5\",\n \"\\u03F9\", \"\\u03A3\",\n \"\\u0587\", \"\\u0565\\u0582\",\n \"\\u0675\", \"\\u0627\\u0674\",\n \"\\u0676\", \"\\u0648\\u0674\",\n \"\\u0677\", \"\\u06C7\\u0674\",\n \"\\u0678\", \"\\u064A\\u0674\",\n \"\\u0E33\", \"\\u0E4D\\u0E32\",\n \"\\u0EB3\", \"\\u0ECD\\u0EB2\",\n \"\\u0EDC\", \"\\u0EAB\\u0E99\",\n \"\\u0EDD\", \"\\u0EAB\\u0EA1\",\n \"\\u0F77\", \"\\u0FB2\\u0F81\",\n \"\\u0F79\", \"\\u0FB3\\u0F81\",\n \"\\u1E9A\", \"\\u0061\\u02BE\",\n \"\\u1FBD\", \"\\u0020\\u0313\",\n \"\\u1FBF\", \"\\u0020\\u0313\",\n \"\\u1FC0\", \"\\u0020\\u0342\",\n \"\\u1FFE\", \"\\u0020\\u0314\",\n \"\\u2002\", \"\\u0020\",\n \"\\u2003\", \"\\u0020\",\n \"\\u2004\", \"\\u0020\",\n \"\\u2005\", \"\\u0020\",\n \"\\u2006\", \"\\u0020\",\n \"\\u2008\", \"\\u0020\",\n \"\\u2009\", \"\\u0020\",\n \"\\u200A\", \"\\u0020\",\n \"\\u2017\", \"\\u0020\\u0333\",\n \"\\u2024\", \"\\u002E\",\n \"\\u2025\", \"\\u002E\\u002E\",\n \"\\u2026\", \"\\u002E\\u002E\\u002E\",\n \"\\u2033\", \"\\u2032\\u2032\",\n \"\\u2034\", \"\\u2032\\u2032\\u2032\",\n \"\\u2036\", \"\\u2035\\u2035\",\n \"\\u2037\", \"\\u2035\\u2035\\u2035\",\n \"\\u203C\", \"\\u0021\\u0021\",\n \"\\u203E\", \"\\u0020\\u0305\",\n \"\\u2047\", \"\\u003F\\u003F\",\n \"\\u2048\", \"\\u003F\\u0021\",\n \"\\u2049\", \"\\u0021\\u003F\",\n \"\\u2057\", \"\\u2032\\u2032\\u2032\\u2032\",\n \"\\u205F\", \"\\u0020\",\n \"\\u20A8\", \"\\u0052\\u0073\",\n \"\\u2100\", \"\\u0061\\u002F\\u0063\",\n \"\\u2101\", \"\\u0061\\u002F\\u0073\",\n \"\\u2103\", \"\\u00B0\\u0043\",\n \"\\u2105\", \"\\u0063\\u002F\\u006F\",\n \"\\u2106\", \"\\u0063\\u002F\\u0075\",\n \"\\u2107\", \"\\u0190\",\n \"\\u2109\", \"\\u00B0\\u0046\",\n \"\\u2116\", \"\\u004E\\u006F\",\n \"\\u2121\", \"\\u0054\\u0045\\u004C\",\n \"\\u2135\", \"\\u05D0\",\n \"\\u2136\", \"\\u05D1\",\n \"\\u2137\", \"\\u05D2\",\n \"\\u2138\", \"\\u05D3\",\n \"\\u213B\", \"\\u0046\\u0041\\u0058\",\n \"\\u2160\", \"\\u0049\",\n \"\\u2161\", \"\\u0049\\u0049\",\n \"\\u2162\", \"\\u0049\\u0049\\u0049\",\n \"\\u2163\", \"\\u0049\\u0056\",\n \"\\u2164\", \"\\u0056\",\n \"\\u2165\", \"\\u0056\\u0049\",\n \"\\u2166\", \"\\u0056\\u0049\\u0049\",\n \"\\u2167\", \"\\u0056\\u0049\\u0049\\u0049\",\n \"\\u2168\", \"\\u0049\\u0058\",\n \"\\u2169\", \"\\u0058\",\n \"\\u216A\", \"\\u0058\\u0049\",\n \"\\u216B\", \"\\u0058\\u0049\\u0049\",\n \"\\u216C\", \"\\u004C\",\n \"\\u216D\", \"\\u0043\",\n \"\\u216E\", \"\\u0044\",\n \"\\u216F\", \"\\u004D\",\n \"\\u2170\", \"\\u0069\",\n \"\\u2171\", \"\\u0069\\u0069\",\n \"\\u2172\", \"\\u0069\\u0069\\u0069\",\n \"\\u2173\", \"\\u0069\\u0076\",\n \"\\u2174\", \"\\u0076\",\n \"\\u2175\", \"\\u0076\\u0069\",\n \"\\u2176\", \"\\u0076\\u0069\\u0069\",\n \"\\u2177\", \"\\u0076\\u0069\\u0069\\u0069\",\n \"\\u2178\", \"\\u0069\\u0078\",\n \"\\u2179\", \"\\u0078\",\n \"\\u217A\", \"\\u0078\\u0069\",\n \"\\u217B\", \"\\u0078\\u0069\\u0069\",\n \"\\u217C\", \"\\u006C\",\n \"\\u217D\", \"\\u0063\",\n \"\\u217E\", \"\\u0064\",\n \"\\u217F\", \"\\u006D\",\n \"\\u222C\", \"\\u222B\\u222B\",\n \"\\u222D\", \"\\u222B\\u222B\\u222B\",\n \"\\u222F\", \"\\u222E\\u222E\",\n \"\\u2230\", \"\\u222E\\u222E\\u222E\",\n \"\\u2474\", \"\\u0028\\u0031\\u0029\",\n \"\\u2475\", \"\\u0028\\u0032\\u0029\",\n \"\\u2476\", \"\\u0028\\u0033\\u0029\",\n \"\\u2477\", \"\\u0028\\u0034\\u0029\",\n \"\\u2478\", \"\\u0028\\u0035\\u0029\",\n \"\\u2479\", \"\\u0028\\u0036\\u0029\",\n \"\\u247A\", \"\\u0028\\u0037\\u0029\",\n \"\\u247B\", \"\\u0028\\u0038\\u0029\",\n \"\\u247C\", \"\\u0028\\u0039\\u0029\",\n \"\\u247D\", \"\\u0028\\u0031\\u0030\\u0029\",\n \"\\u247E\", \"\\u0028\\u0031\\u0031\\u0029\",\n \"\\u247F\", \"\\u0028\\u0031\\u0032\\u0029\",\n \"\\u2480\", \"\\u0028\\u0031\\u0033\\u0029\",\n \"\\u2481\", \"\\u0028\\u0031\\u0034\\u0029\",\n \"\\u2482\", \"\\u0028\\u0031\\u0035\\u0029\",\n \"\\u2483\", \"\\u0028\\u0031\\u0036\\u0029\",\n \"\\u2484\", \"\\u0028\\u0031\\u0037\\u0029\",\n \"\\u2485\", \"\\u0028\\u0031\\u0038\\u0029\",\n \"\\u2486\", \"\\u0028\\u0031\\u0039\\u0029\",\n \"\\u2487\", \"\\u0028\\u0032\\u0030\\u0029\",\n \"\\u2488\", \"\\u0031\\u002E\",\n \"\\u2489\", \"\\u0032\\u002E\",\n \"\\u248A\", \"\\u0033\\u002E\",\n \"\\u248B\", \"\\u0034\\u002E\",\n \"\\u248C\", \"\\u0035\\u002E\",\n \"\\u248D\", \"\\u0036\\u002E\",\n \"\\u248E\", \"\\u0037\\u002E\",\n \"\\u248F\", \"\\u0038\\u002E\",\n \"\\u2490\", \"\\u0039\\u002E\",\n \"\\u2491\", \"\\u0031\\u0030\\u002E\",\n \"\\u2492\", \"\\u0031\\u0031\\u002E\",\n \"\\u2493\", \"\\u0031\\u0032\\u002E\",\n \"\\u2494\", \"\\u0031\\u0033\\u002E\",\n \"\\u2495\", \"\\u0031\\u0034\\u002E\",\n \"\\u2496\", \"\\u0031\\u0035\\u002E\",\n \"\\u2497\", \"\\u0031\\u0036\\u002E\",\n \"\\u2498\", \"\\u0031\\u0037\\u002E\",\n \"\\u2499\", \"\\u0031\\u0038\\u002E\",\n \"\\u249A\", \"\\u0031\\u0039\\u002E\",\n \"\\u249B\", \"\\u0032\\u0030\\u002E\",\n \"\\u249C\", \"\\u0028\\u0061\\u0029\",\n \"\\u249D\", \"\\u0028\\u0062\\u0029\",\n \"\\u249E\", \"\\u0028\\u0063\\u0029\",\n \"\\u249F\", \"\\u0028\\u0064\\u0029\",\n \"\\u24A0\", \"\\u0028\\u0065\\u0029\",\n \"\\u24A1\", \"\\u0028\\u0066\\u0029\",\n \"\\u24A2\", \"\\u0028\\u0067\\u0029\",\n \"\\u24A3\", \"\\u0028\\u0068\\u0029\",\n \"\\u24A4\", \"\\u0028\\u0069\\u0029\",\n \"\\u24A5\", \"\\u0028\\u006A\\u0029\",\n \"\\u24A6\", \"\\u0028\\u006B\\u0029\",\n \"\\u24A7\", \"\\u0028\\u006C\\u0029\",\n \"\\u24A8\", \"\\u0028\\u006D\\u0029\",\n \"\\u24A9\", \"\\u0028\\u006E\\u0029\",\n \"\\u24AA\", \"\\u0028\\u006F\\u0029\",\n \"\\u24AB\", \"\\u0028\\u0070\\u0029\",\n \"\\u24AC\", \"\\u0028\\u0071\\u0029\",\n \"\\u24AD\", \"\\u0028\\u0072\\u0029\",\n \"\\u24AE\", \"\\u0028\\u0073\\u0029\",\n \"\\u24AF\", \"\\u0028\\u0074\\u0029\",\n \"\\u24B0\", \"\\u0028\\u0075\\u0029\",\n \"\\u24B1\", \"\\u0028\\u0076\\u0029\",\n \"\\u24B2\", \"\\u0028\\u0077\\u0029\",\n \"\\u24B3\", \"\\u0028\\u0078\\u0029\",\n \"\\u24B4\", \"\\u0028\\u0079\\u0029\",\n \"\\u24B5\", \"\\u0028\\u007A\\u0029\",\n \"\\u2A0C\", \"\\u222B\\u222B\\u222B\\u222B\",\n \"\\u2A74\", \"\\u003A\\u003A\\u003D\",\n \"\\u2A75\", \"\\u003D\\u003D\",\n \"\\u2A76\", \"\\u003D\\u003D\\u003D\",\n \"\\u2E9F\", \"\\u6BCD\",\n \"\\u2EF3\", \"\\u9F9F\",\n \"\\u2F00\", \"\\u4E00\",\n \"\\u2F01\", \"\\u4E28\",\n \"\\u2F02\", \"\\u4E36\",\n \"\\u2F03\", \"\\u4E3F\",\n \"\\u2F04\", \"\\u4E59\",\n \"\\u2F05\", \"\\u4E85\",\n \"\\u2F06\", \"\\u4E8C\",\n \"\\u2F07\", \"\\u4EA0\",\n \"\\u2F08\", \"\\u4EBA\",\n \"\\u2F09\", \"\\u513F\",\n \"\\u2F0A\", \"\\u5165\",\n \"\\u2F0B\", \"\\u516B\",\n \"\\u2F0C\", \"\\u5182\",\n \"\\u2F0D\", \"\\u5196\",\n \"\\u2F0E\", \"\\u51AB\",\n \"\\u2F0F\", \"\\u51E0\",\n \"\\u2F10\", \"\\u51F5\",\n \"\\u2F11\", \"\\u5200\",\n \"\\u2F12\", \"\\u529B\",\n \"\\u2F13\", \"\\u52F9\",\n \"\\u2F14\", \"\\u5315\",\n \"\\u2F15\", \"\\u531A\",\n \"\\u2F16\", \"\\u5338\",\n \"\\u2F17\", \"\\u5341\",\n \"\\u2F18\", \"\\u535C\",\n \"\\u2F19\", \"\\u5369\",\n \"\\u2F1A\", \"\\u5382\",\n \"\\u2F1B\", \"\\u53B6\",\n \"\\u2F1C\", \"\\u53C8\",\n \"\\u2F1D\", \"\\u53E3\",\n \"\\u2F1E\", \"\\u56D7\",\n \"\\u2F1F\", \"\\u571F\",\n \"\\u2F20\", \"\\u58EB\",\n \"\\u2F21\", \"\\u5902\",\n \"\\u2F22\", \"\\u590A\",\n \"\\u2F23\", \"\\u5915\",\n \"\\u2F24\", \"\\u5927\",\n \"\\u2F25\", \"\\u5973\",\n \"\\u2F26\", \"\\u5B50\",\n \"\\u2F27\", \"\\u5B80\",\n \"\\u2F28\", \"\\u5BF8\",\n \"\\u2F29\", \"\\u5C0F\",\n \"\\u2F2A\", \"\\u5C22\",\n \"\\u2F2B\", \"\\u5C38\",\n \"\\u2F2C\", \"\\u5C6E\",\n \"\\u2F2D\", \"\\u5C71\",\n \"\\u2F2E\", \"\\u5DDB\",\n \"\\u2F2F\", \"\\u5DE5\",\n \"\\u2F30\", \"\\u5DF1\",\n \"\\u2F31\", \"\\u5DFE\",\n \"\\u2F32\", \"\\u5E72\",\n \"\\u2F33\", \"\\u5E7A\",\n \"\\u2F34\", \"\\u5E7F\",\n \"\\u2F35\", \"\\u5EF4\",\n \"\\u2F36\", \"\\u5EFE\",\n \"\\u2F37\", \"\\u5F0B\",\n \"\\u2F38\", \"\\u5F13\",\n \"\\u2F39\", \"\\u5F50\",\n \"\\u2F3A\", \"\\u5F61\",\n \"\\u2F3B\", \"\\u5F73\",\n \"\\u2F3C\", \"\\u5FC3\",\n \"\\u2F3D\", \"\\u6208\",\n \"\\u2F3E\", \"\\u6236\",\n \"\\u2F3F\", \"\\u624B\",\n \"\\u2F40\", \"\\u652F\",\n \"\\u2F41\", \"\\u6534\",\n \"\\u2F42\", \"\\u6587\",\n \"\\u2F43\", \"\\u6597\",\n \"\\u2F44\", \"\\u65A4\",\n \"\\u2F45\", \"\\u65B9\",\n \"\\u2F46\", \"\\u65E0\",\n \"\\u2F47\", \"\\u65E5\",\n \"\\u2F48\", \"\\u66F0\",\n \"\\u2F49\", \"\\u6708\",\n \"\\u2F4A\", \"\\u6728\",\n \"\\u2F4B\", \"\\u6B20\",\n \"\\u2F4C\", \"\\u6B62\",\n \"\\u2F4D\", \"\\u6B79\",\n \"\\u2F4E\", \"\\u6BB3\",\n \"\\u2F4F\", \"\\u6BCB\",\n \"\\u2F50\", \"\\u6BD4\",\n \"\\u2F51\", \"\\u6BDB\",\n \"\\u2F52\", \"\\u6C0F\",\n \"\\u2F53\", \"\\u6C14\",\n \"\\u2F54\", \"\\u6C34\",\n \"\\u2F55\", \"\\u706B\",\n \"\\u2F56\", \"\\u722A\",\n \"\\u2F57\", \"\\u7236\",\n \"\\u2F58\", \"\\u723B\",\n \"\\u2F59\", \"\\u723F\",\n \"\\u2F5A\", \"\\u7247\",\n \"\\u2F5B\", \"\\u7259\",\n \"\\u2F5C\", \"\\u725B\",\n \"\\u2F5D\", \"\\u72AC\",\n \"\\u2F5E\", \"\\u7384\",\n \"\\u2F5F\", \"\\u7389\",\n \"\\u2F60\", \"\\u74DC\",\n \"\\u2F61\", \"\\u74E6\",\n \"\\u2F62\", \"\\u7518\",\n \"\\u2F63\", \"\\u751F\",\n \"\\u2F64\", \"\\u7528\",\n \"\\u2F65\", \"\\u7530\",\n \"\\u2F66\", \"\\u758B\",\n \"\\u2F67\", \"\\u7592\",\n \"\\u2F68\", \"\\u7676\",\n \"\\u2F69\", \"\\u767D\",\n \"\\u2F6A\", \"\\u76AE\",\n \"\\u2F6B\", \"\\u76BF\",\n \"\\u2F6C\", \"\\u76EE\",\n \"\\u2F6D\", \"\\u77DB\",\n \"\\u2F6E\", \"\\u77E2\",\n \"\\u2F6F\", \"\\u77F3\",\n \"\\u2F70\", \"\\u793A\",\n \"\\u2F71\", \"\\u79B8\",\n \"\\u2F72\", \"\\u79BE\",\n \"\\u2F73\", \"\\u7A74\",\n \"\\u2F74\", \"\\u7ACB\",\n \"\\u2F75\", \"\\u7AF9\",\n \"\\u2F76\", \"\\u7C73\",\n \"\\u2F77\", \"\\u7CF8\",\n \"\\u2F78\", \"\\u7F36\",\n \"\\u2F79\", \"\\u7F51\",\n \"\\u2F7A\", \"\\u7F8A\",\n \"\\u2F7B\", \"\\u7FBD\",\n \"\\u2F7C\", \"\\u8001\",\n \"\\u2F7D\", \"\\u800C\",\n \"\\u2F7E\", \"\\u8012\",\n \"\\u2F7F\", \"\\u8033\",\n \"\\u2F80\", \"\\u807F\",\n \"\\u2F81\", \"\\u8089\",\n \"\\u2F82\", \"\\u81E3\",\n \"\\u2F83\", \"\\u81EA\",\n \"\\u2F84\", \"\\u81F3\",\n \"\\u2F85\", \"\\u81FC\",\n \"\\u2F86\", \"\\u820C\",\n \"\\u2F87\", \"\\u821B\",\n \"\\u2F88\", \"\\u821F\",\n \"\\u2F89\", \"\\u826E\",\n \"\\u2F8A\", \"\\u8272\",\n \"\\u2F8B\", \"\\u8278\",\n \"\\u2F8C\", \"\\u864D\",\n \"\\u2F8D\", \"\\u866B\",\n \"\\u2F8E\", \"\\u8840\",\n \"\\u2F8F\", \"\\u884C\",\n \"\\u2F90\", \"\\u8863\",\n \"\\u2F91\", \"\\u897E\",\n \"\\u2F92\", \"\\u898B\",\n \"\\u2F93\", \"\\u89D2\",\n \"\\u2F94\", \"\\u8A00\",\n \"\\u2F95\", \"\\u8C37\",\n \"\\u2F96\", \"\\u8C46\",\n \"\\u2F97\", \"\\u8C55\",\n \"\\u2F98\", \"\\u8C78\",\n \"\\u2F99\", \"\\u8C9D\",\n \"\\u2F9A\", \"\\u8D64\",\n \"\\u2F9B\", \"\\u8D70\",\n \"\\u2F9C\", \"\\u8DB3\",\n \"\\u2F9D\", \"\\u8EAB\",\n \"\\u2F9E\", \"\\u8ECA\",\n \"\\u2F9F\", \"\\u8F9B\",\n \"\\u2FA0\", \"\\u8FB0\",\n \"\\u2FA1\", \"\\u8FB5\",\n \"\\u2FA2\", \"\\u9091\",\n \"\\u2FA3\", \"\\u9149\",\n \"\\u2FA4\", \"\\u91C6\",\n \"\\u2FA5\", \"\\u91CC\",\n \"\\u2FA6\", \"\\u91D1\",\n \"\\u2FA7\", \"\\u9577\",\n \"\\u2FA8\", \"\\u9580\",\n \"\\u2FA9\", \"\\u961C\",\n \"\\u2FAA\", \"\\u96B6\",\n \"\\u2FAB\", \"\\u96B9\",\n \"\\u2FAC\", \"\\u96E8\",\n \"\\u2FAD\", \"\\u9751\",\n \"\\u2FAE\", \"\\u975E\",\n \"\\u2FAF\", \"\\u9762\",\n \"\\u2FB0\", \"\\u9769\",\n \"\\u2FB1\", \"\\u97CB\",\n \"\\u2FB2\", \"\\u97ED\",\n \"\\u2FB3\", \"\\u97F3\",\n \"\\u2FB4\", \"\\u9801\",\n \"\\u2FB5\", \"\\u98A8\",\n \"\\u2FB6\", \"\\u98DB\",\n \"\\u2FB7\", \"\\u98DF\",\n \"\\u2FB8\", \"\\u9996\",\n \"\\u2FB9\", \"\\u9999\",\n \"\\u2FBA\", \"\\u99AC\",\n \"\\u2FBB\", \"\\u9AA8\",\n \"\\u2FBC\", \"\\u9AD8\",\n \"\\u2FBD\", \"\\u9ADF\",\n \"\\u2FBE\", \"\\u9B25\",\n \"\\u2FBF\", \"\\u9B2F\",\n \"\\u2FC0\", \"\\u9B32\",\n \"\\u2FC1\", \"\\u9B3C\",\n \"\\u2FC2\", \"\\u9B5A\",\n \"\\u2FC3\", \"\\u9CE5\",\n \"\\u2FC4\", \"\\u9E75\",\n \"\\u2FC5\", \"\\u9E7F\",\n \"\\u2FC6\", \"\\u9EA5\",\n \"\\u2FC7\", \"\\u9EBB\",\n \"\\u2FC8\", \"\\u9EC3\",\n \"\\u2FC9\", \"\\u9ECD\",\n \"\\u2FCA\", \"\\u9ED1\",\n \"\\u2FCB\", \"\\u9EF9\",\n \"\\u2FCC\", \"\\u9EFD\",\n \"\\u2FCD\", \"\\u9F0E\",\n \"\\u2FCE\", \"\\u9F13\",\n \"\\u2FCF\", \"\\u9F20\",\n \"\\u2FD0\", \"\\u9F3B\",\n \"\\u2FD1\", \"\\u9F4A\",\n \"\\u2FD2\", \"\\u9F52\",\n \"\\u2FD3\", \"\\u9F8D\",\n \"\\u2FD4\", \"\\u9F9C\",\n \"\\u2FD5\", \"\\u9FA0\",\n \"\\u3036\", \"\\u3012\",\n \"\\u3038\", \"\\u5341\",\n \"\\u3039\", \"\\u5344\",\n \"\\u303A\", \"\\u5345\",\n \"\\u309B\", \"\\u0020\\u3099\",\n \"\\u309C\", \"\\u0020\\u309A\",\n \"\\u3131\", \"\\u1100\",\n \"\\u3132\", \"\\u1101\",\n \"\\u3133\", \"\\u11AA\",\n \"\\u3134\", \"\\u1102\",\n \"\\u3135\", \"\\u11AC\",\n \"\\u3136\", \"\\u11AD\",\n \"\\u3137\", \"\\u1103\",\n \"\\u3138\", \"\\u1104\",\n \"\\u3139\", \"\\u1105\",\n \"\\u313A\", \"\\u11B0\",\n \"\\u313B\", \"\\u11B1\",\n \"\\u313C\", \"\\u11B2\",\n \"\\u313D\", \"\\u11B3\",\n \"\\u313E\", \"\\u11B4\",\n \"\\u313F\", \"\\u11B5\",\n \"\\u3140\", \"\\u111A\",\n \"\\u3141\", \"\\u1106\",\n \"\\u3142\", \"\\u1107\",\n \"\\u3143\", \"\\u1108\",\n \"\\u3144\", \"\\u1121\",\n \"\\u3145\", \"\\u1109\",\n \"\\u3146\", \"\\u110A\",\n \"\\u3147\", \"\\u110B\",\n \"\\u3148\", \"\\u110C\",\n \"\\u3149\", \"\\u110D\",\n \"\\u314A\", \"\\u110E\",\n \"\\u314B\", \"\\u110F\",\n \"\\u314C\", \"\\u1110\",\n \"\\u314D\", \"\\u1111\",\n \"\\u314E\", \"\\u1112\",\n \"\\u314F\", \"\\u1161\",\n \"\\u3150\", \"\\u1162\",\n \"\\u3151\", \"\\u1163\",\n \"\\u3152\", \"\\u1164\",\n \"\\u3153\", \"\\u1165\",\n \"\\u3154\", \"\\u1166\",\n \"\\u3155\", \"\\u1167\",\n \"\\u3156\", \"\\u1168\",\n \"\\u3157\", \"\\u1169\",\n \"\\u3158\", \"\\u116A\",\n \"\\u3159\", \"\\u116B\",\n \"\\u315A\", \"\\u116C\",\n \"\\u315B\", \"\\u116D\",\n \"\\u315C\", \"\\u116E\",\n \"\\u315D\", \"\\u116F\",\n \"\\u315E\", \"\\u1170\",\n \"\\u315F\", \"\\u1171\",\n \"\\u3160\", \"\\u1172\",\n \"\\u3161\", \"\\u1173\",\n \"\\u3162\", \"\\u1174\",\n \"\\u3163\", \"\\u1175\",\n \"\\u3164\", \"\\u1160\",\n \"\\u3165\", \"\\u1114\",\n \"\\u3166\", \"\\u1115\",\n \"\\u3167\", \"\\u11C7\",\n \"\\u3168\", \"\\u11C8\",\n \"\\u3169\", \"\\u11CC\",\n \"\\u316A\", \"\\u11CE\",\n \"\\u316B\", \"\\u11D3\",\n \"\\u316C\", \"\\u11D7\",\n \"\\u316D\", \"\\u11D9\",\n \"\\u316E\", \"\\u111C\",\n \"\\u316F\", \"\\u11DD\",\n \"\\u3170\", \"\\u11DF\",\n \"\\u3171\", \"\\u111D\",\n \"\\u3172\", \"\\u111E\",\n \"\\u3173\", \"\\u1120\",\n \"\\u3174\", \"\\u1122\",\n \"\\u3175\", \"\\u1123\",\n \"\\u3176\", \"\\u1127\",\n \"\\u3177\", \"\\u1129\",\n \"\\u3178\", \"\\u112B\",\n \"\\u3179\", \"\\u112C\",\n \"\\u317A\", \"\\u112D\",\n \"\\u317B\", \"\\u112E\",\n \"\\u317C\", \"\\u112F\",\n \"\\u317D\", \"\\u1132\",\n \"\\u317E\", \"\\u1136\",\n \"\\u317F\", \"\\u1140\",\n \"\\u3180\", \"\\u1147\",\n \"\\u3181\", \"\\u114C\",\n \"\\u3182\", \"\\u11F1\",\n \"\\u3183\", \"\\u11F2\",\n \"\\u3184\", \"\\u1157\",\n \"\\u3185\", \"\\u1158\",\n \"\\u3186\", \"\\u1159\",\n \"\\u3187\", \"\\u1184\",\n \"\\u3188\", \"\\u1185\",\n \"\\u3189\", \"\\u1188\",\n \"\\u318A\", \"\\u1191\",\n \"\\u318B\", \"\\u1192\",\n \"\\u318C\", \"\\u1194\",\n \"\\u318D\", \"\\u119E\",\n \"\\u318E\", \"\\u11A1\",\n \"\\u3200\", \"\\u0028\\u1100\\u0029\",\n \"\\u3201\", \"\\u0028\\u1102\\u0029\",\n \"\\u3202\", \"\\u0028\\u1103\\u0029\",\n \"\\u3203\", \"\\u0028\\u1105\\u0029\",\n \"\\u3204\", \"\\u0028\\u1106\\u0029\",\n \"\\u3205\", \"\\u0028\\u1107\\u0029\",\n \"\\u3206\", \"\\u0028\\u1109\\u0029\",\n \"\\u3207\", \"\\u0028\\u110B\\u0029\",\n \"\\u3208\", \"\\u0028\\u110C\\u0029\",\n \"\\u3209\", \"\\u0028\\u110E\\u0029\",\n \"\\u320A\", \"\\u0028\\u110F\\u0029\",\n \"\\u320B\", \"\\u0028\\u1110\\u0029\",\n \"\\u320C\", \"\\u0028\\u1111\\u0029\",\n \"\\u320D\", \"\\u0028\\u1112\\u0029\",\n \"\\u320E\", \"\\u0028\\u1100\\u1161\\u0029\",\n \"\\u320F\", \"\\u0028\\u1102\\u1161\\u0029\",\n \"\\u3210\", \"\\u0028\\u1103\\u1161\\u0029\",\n \"\\u3211\", \"\\u0028\\u1105\\u1161\\u0029\",\n \"\\u3212\", \"\\u0028\\u1106\\u1161\\u0029\",\n \"\\u3213\", \"\\u0028\\u1107\\u1161\\u0029\",\n \"\\u3214\", \"\\u0028\\u1109\\u1161\\u0029\",\n \"\\u3215\", \"\\u0028\\u110B\\u1161\\u0029\",\n \"\\u3216\", \"\\u0028\\u110C\\u1161\\u0029\",\n \"\\u3217\", \"\\u0028\\u110E\\u1161\\u0029\",\n \"\\u3218\", \"\\u0028\\u110F\\u1161\\u0029\",\n \"\\u3219\", \"\\u0028\\u1110\\u1161\\u0029\",\n \"\\u321A\", \"\\u0028\\u1111\\u1161\\u0029\",\n \"\\u321B\", \"\\u0028\\u1112\\u1161\\u0029\",\n \"\\u321C\", \"\\u0028\\u110C\\u116E\\u0029\",\n \"\\u321D\", \"\\u0028\\u110B\\u1169\\u110C\\u1165\\u11AB\\u0029\",\n \"\\u321E\", \"\\u0028\\u110B\\u1169\\u1112\\u116E\\u0029\",\n \"\\u3220\", \"\\u0028\\u4E00\\u0029\",\n \"\\u3221\", \"\\u0028\\u4E8C\\u0029\",\n \"\\u3222\", \"\\u0028\\u4E09\\u0029\",\n \"\\u3223\", \"\\u0028\\u56DB\\u0029\",\n \"\\u3224\", \"\\u0028\\u4E94\\u0029\",\n \"\\u3225\", \"\\u0028\\u516D\\u0029\",\n \"\\u3226\", \"\\u0028\\u4E03\\u0029\",\n \"\\u3227\", \"\\u0028\\u516B\\u0029\",\n \"\\u3228\", \"\\u0028\\u4E5D\\u0029\",\n \"\\u3229\", \"\\u0028\\u5341\\u0029\",\n \"\\u322A\", \"\\u0028\\u6708\\u0029\",\n \"\\u322B\", \"\\u0028\\u706B\\u0029\",\n \"\\u322C\", \"\\u0028\\u6C34\\u0029\",\n \"\\u322D\", \"\\u0028\\u6728\\u0029\",\n \"\\u322E\", \"\\u0028\\u91D1\\u0029\",\n \"\\u322F\", \"\\u0028\\u571F\\u0029\",\n \"\\u3230\", \"\\u0028\\u65E5\\u0029\",\n \"\\u3231\", \"\\u0028\\u682A\\u0029\",\n \"\\u3232\", \"\\u0028\\u6709\\u0029\",\n \"\\u3233\", \"\\u0028\\u793E\\u0029\",\n \"\\u3234\", \"\\u0028\\u540D\\u0029\",\n \"\\u3235\", \"\\u0028\\u7279\\u0029\",\n \"\\u3236\", \"\\u0028\\u8CA1\\u0029\",\n \"\\u3237\", \"\\u0028\\u795D\\u0029\",\n \"\\u3238\", \"\\u0028\\u52B4\\u0029\",\n \"\\u3239\", \"\\u0028\\u4EE3\\u0029\",\n \"\\u323A\", \"\\u0028\\u547C\\u0029\",\n \"\\u323B\", \"\\u0028\\u5B66\\u0029\",\n \"\\u323C\", \"\\u0028\\u76E3\\u0029\",\n \"\\u323D\", \"\\u0028\\u4F01\\u0029\",\n \"\\u323E\", \"\\u0028\\u8CC7\\u0029\",\n \"\\u323F\", \"\\u0028\\u5354\\u0029\",\n \"\\u3240\", \"\\u0028\\u796D\\u0029\",\n \"\\u3241\", \"\\u0028\\u4F11\\u0029\",\n \"\\u3242\", \"\\u0028\\u81EA\\u0029\",\n \"\\u3243\", \"\\u0028\\u81F3\\u0029\",\n \"\\u32C0\", \"\\u0031\\u6708\",\n \"\\u32C1\", \"\\u0032\\u6708\",\n \"\\u32C2\", \"\\u0033\\u6708\",\n \"\\u32C3\", \"\\u0034\\u6708\",\n \"\\u32C4\", \"\\u0035\\u6708\",\n \"\\u32C5\", \"\\u0036\\u6708\",\n \"\\u32C6\", \"\\u0037\\u6708\",\n \"\\u32C7\", \"\\u0038\\u6708\",\n \"\\u32C8\", \"\\u0039\\u6708\",\n \"\\u32C9\", \"\\u0031\\u0030\\u6708\",\n \"\\u32CA\", \"\\u0031\\u0031\\u6708\",\n \"\\u32CB\", \"\\u0031\\u0032\\u6708\",\n \"\\u3358\", \"\\u0030\\u70B9\",\n \"\\u3359\", \"\\u0031\\u70B9\",\n \"\\u335A\", \"\\u0032\\u70B9\",\n \"\\u335B\", \"\\u0033\\u70B9\",\n \"\\u335C\", \"\\u0034\\u70B9\",\n \"\\u335D\", \"\\u0035\\u70B9\",\n \"\\u335E\", \"\\u0036\\u70B9\",\n \"\\u335F\", \"\\u0037\\u70B9\",\n \"\\u3360\", \"\\u0038\\u70B9\",\n \"\\u3361\", \"\\u0039\\u70B9\",\n \"\\u3362\", \"\\u0031\\u0030\\u70B9\",\n \"\\u3363\", \"\\u0031\\u0031\\u70B9\",\n \"\\u3364\", \"\\u0031\\u0032\\u70B9\",\n \"\\u3365\", \"\\u0031\\u0033\\u70B9\",\n \"\\u3366\", \"\\u0031\\u0034\\u70B9\",\n \"\\u3367\", \"\\u0031\\u0035\\u70B9\",\n \"\\u3368\", \"\\u0031\\u0036\\u70B9\",\n \"\\u3369\", \"\\u0031\\u0037\\u70B9\",\n \"\\u336A\", \"\\u0031\\u0038\\u70B9\",\n \"\\u336B\", \"\\u0031\\u0039\\u70B9\",\n \"\\u336C\", \"\\u0032\\u0030\\u70B9\",\n \"\\u336D\", \"\\u0032\\u0031\\u70B9\",\n \"\\u336E\", \"\\u0032\\u0032\\u70B9\",\n \"\\u336F\", \"\\u0032\\u0033\\u70B9\",\n \"\\u3370\", \"\\u0032\\u0034\\u70B9\",\n \"\\u33E0\", \"\\u0031\\u65E5\",\n \"\\u33E1\", \"\\u0032\\u65E5\",\n \"\\u33E2\", \"\\u0033\\u65E5\",\n \"\\u33E3\", \"\\u0034\\u65E5\",\n \"\\u33E4\", \"\\u0035\\u65E5\",\n \"\\u33E5\", \"\\u0036\\u65E5\",\n \"\\u33E6\", \"\\u0037\\u65E5\",\n \"\\u33E7\", \"\\u0038\\u65E5\",\n \"\\u33E8\", \"\\u0039\\u65E5\",\n \"\\u33E9\", \"\\u0031\\u0030\\u65E5\",\n \"\\u33EA\", \"\\u0031\\u0031\\u65E5\",\n \"\\u33EB\", \"\\u0031\\u0032\\u65E5\",\n \"\\u33EC\", \"\\u0031\\u0033\\u65E5\",\n \"\\u33ED\", \"\\u0031\\u0034\\u65E5\",\n \"\\u33EE\", \"\\u0031\\u0035\\u65E5\",\n \"\\u33EF\", \"\\u0031\\u0036\\u65E5\",\n \"\\u33F0\", \"\\u0031\\u0037\\u65E5\",\n \"\\u33F1\", \"\\u0031\\u0038\\u65E5\",\n \"\\u33F2\", \"\\u0031\\u0039\\u65E5\",\n \"\\u33F3\", \"\\u0032\\u0030\\u65E5\",\n \"\\u33F4\", \"\\u0032\\u0031\\u65E5\",\n \"\\u33F5\", \"\\u0032\\u0032\\u65E5\",\n \"\\u33F6\", \"\\u0032\\u0033\\u65E5\",\n \"\\u33F7\", \"\\u0032\\u0034\\u65E5\",\n \"\\u33F8\", \"\\u0032\\u0035\\u65E5\",\n \"\\u33F9\", \"\\u0032\\u0036\\u65E5\",\n \"\\u33FA\", \"\\u0032\\u0037\\u65E5\",\n \"\\u33FB\", \"\\u0032\\u0038\\u65E5\",\n \"\\u33FC\", \"\\u0032\\u0039\\u65E5\",\n \"\\u33FD\", \"\\u0033\\u0030\\u65E5\",\n \"\\u33FE\", \"\\u0033\\u0031\\u65E5\",\n \"\\uFB00\", \"\\u0066\\u0066\",\n \"\\uFB01\", \"\\u0066\\u0069\",\n \"\\uFB02\", \"\\u0066\\u006C\",\n \"\\uFB03\", \"\\u0066\\u0066\\u0069\",\n \"\\uFB04\", \"\\u0066\\u0066\\u006C\",\n \"\\uFB05\", \"\\u017F\\u0074\",\n \"\\uFB06\", \"\\u0073\\u0074\",\n \"\\uFB13\", \"\\u0574\\u0576\",\n \"\\uFB14\", \"\\u0574\\u0565\",\n \"\\uFB15\", \"\\u0574\\u056B\",\n \"\\uFB16\", \"\\u057E\\u0576\",\n \"\\uFB17\", \"\\u0574\\u056D\",\n \"\\uFB4F\", \"\\u05D0\\u05DC\",\n \"\\uFB50\", \"\\u0671\",\n \"\\uFB51\", \"\\u0671\",\n \"\\uFB52\", \"\\u067B\",\n \"\\uFB53\", \"\\u067B\",\n \"\\uFB54\", \"\\u067B\",\n \"\\uFB55\", \"\\u067B\",\n \"\\uFB56\", \"\\u067E\",\n \"\\uFB57\", \"\\u067E\",\n \"\\uFB58\", \"\\u067E\",\n \"\\uFB59\", \"\\u067E\",\n \"\\uFB5A\", \"\\u0680\",\n \"\\uFB5B\", \"\\u0680\",\n \"\\uFB5C\", \"\\u0680\",\n \"\\uFB5D\", \"\\u0680\",\n \"\\uFB5E\", \"\\u067A\",\n \"\\uFB5F\", \"\\u067A\",\n \"\\uFB60\", \"\\u067A\",\n \"\\uFB61\", \"\\u067A\",\n \"\\uFB62\", \"\\u067F\",\n \"\\uFB63\", \"\\u067F\",\n \"\\uFB64\", \"\\u067F\",\n \"\\uFB65\", \"\\u067F\",\n \"\\uFB66\", \"\\u0679\",\n \"\\uFB67\", \"\\u0679\",\n \"\\uFB68\", \"\\u0679\",\n \"\\uFB69\", \"\\u0679\",\n \"\\uFB6A\", \"\\u06A4\",\n \"\\uFB6B\", \"\\u06A4\",\n \"\\uFB6C\", \"\\u06A4\",\n \"\\uFB6D\", \"\\u06A4\",\n \"\\uFB6E\", \"\\u06A6\",\n \"\\uFB6F\", \"\\u06A6\",\n \"\\uFB70\", \"\\u06A6\",\n \"\\uFB71\", \"\\u06A6\",\n \"\\uFB72\", \"\\u0684\",\n \"\\uFB73\", \"\\u0684\",\n \"\\uFB74\", \"\\u0684\",\n \"\\uFB75\", \"\\u0684\",\n \"\\uFB76\", \"\\u0683\",\n \"\\uFB77\", \"\\u0683\",\n \"\\uFB78\", \"\\u0683\",\n \"\\uFB79\", \"\\u0683\",\n \"\\uFB7A\", \"\\u0686\",\n \"\\uFB7B\", \"\\u0686\",\n \"\\uFB7C\", \"\\u0686\",\n \"\\uFB7D\", \"\\u0686\",\n \"\\uFB7E\", \"\\u0687\",\n \"\\uFB7F\", \"\\u0687\",\n \"\\uFB80\", \"\\u0687\",\n \"\\uFB81\", \"\\u0687\",\n \"\\uFB82\", \"\\u068D\",\n \"\\uFB83\", \"\\u068D\",\n \"\\uFB84\", \"\\u068C\",\n \"\\uFB85\", \"\\u068C\",\n \"\\uFB86\", \"\\u068E\",\n \"\\uFB87\", \"\\u068E\",\n \"\\uFB88\", \"\\u0688\",\n \"\\uFB89\", \"\\u0688\",\n \"\\uFB8A\", \"\\u0698\",\n \"\\uFB8B\", \"\\u0698\",\n \"\\uFB8C\", \"\\u0691\",\n \"\\uFB8D\", \"\\u0691\",\n \"\\uFB8E\", \"\\u06A9\",\n \"\\uFB8F\", \"\\u06A9\",\n \"\\uFB90\", \"\\u06A9\",\n \"\\uFB91\", \"\\u06A9\",\n \"\\uFB92\", \"\\u06AF\",\n \"\\uFB93\", \"\\u06AF\",\n \"\\uFB94\", \"\\u06AF\",\n \"\\uFB95\", \"\\u06AF\",\n \"\\uFB96\", \"\\u06B3\",\n \"\\uFB97\", \"\\u06B3\",\n \"\\uFB98\", \"\\u06B3\",\n \"\\uFB99\", \"\\u06B3\",\n \"\\uFB9A\", \"\\u06B1\",\n \"\\uFB9B\", \"\\u06B1\",\n \"\\uFB9C\", \"\\u06B1\",\n \"\\uFB9D\", \"\\u06B1\",\n \"\\uFB9E\", \"\\u06BA\",\n \"\\uFB9F\", \"\\u06BA\",\n \"\\uFBA0\", \"\\u06BB\",\n \"\\uFBA1\", \"\\u06BB\",\n \"\\uFBA2\", \"\\u06BB\",\n \"\\uFBA3\", \"\\u06BB\",\n \"\\uFBA4\", \"\\u06C0\",\n \"\\uFBA5\", \"\\u06C0\",\n \"\\uFBA6\", \"\\u06C1\",\n \"\\uFBA7\", \"\\u06C1\",\n \"\\uFBA8\", \"\\u06C1\",\n \"\\uFBA9\", \"\\u06C1\",\n \"\\uFBAA\", \"\\u06BE\",\n \"\\uFBAB\", \"\\u06BE\",\n \"\\uFBAC\", \"\\u06BE\",\n \"\\uFBAD\", \"\\u06BE\",\n \"\\uFBAE\", \"\\u06D2\",\n \"\\uFBAF\", \"\\u06D2\",\n \"\\uFBB0\", \"\\u06D3\",\n \"\\uFBB1\", \"\\u06D3\",\n \"\\uFBD3\", \"\\u06AD\",\n \"\\uFBD4\", \"\\u06AD\",\n \"\\uFBD5\", \"\\u06AD\",\n \"\\uFBD6\", \"\\u06AD\",\n \"\\uFBD7\", \"\\u06C7\",\n \"\\uFBD8\", \"\\u06C7\",\n \"\\uFBD9\", \"\\u06C6\",\n \"\\uFBDA\", \"\\u06C6\",\n \"\\uFBDB\", \"\\u06C8\",\n \"\\uFBDC\", \"\\u06C8\",\n \"\\uFBDD\", \"\\u0677\",\n \"\\uFBDE\", \"\\u06CB\",\n \"\\uFBDF\", \"\\u06CB\",\n \"\\uFBE0\", \"\\u06C5\",\n \"\\uFBE1\", \"\\u06C5\",\n \"\\uFBE2\", \"\\u06C9\",\n \"\\uFBE3\", \"\\u06C9\",\n \"\\uFBE4\", \"\\u06D0\",\n \"\\uFBE5\", \"\\u06D0\",\n \"\\uFBE6\", \"\\u06D0\",\n \"\\uFBE7\", \"\\u06D0\",\n \"\\uFBE8\", \"\\u0649\",\n \"\\uFBE9\", \"\\u0649\",\n \"\\uFBEA\", \"\\u0626\\u0627\",\n \"\\uFBEB\", \"\\u0626\\u0627\",\n \"\\uFBEC\", \"\\u0626\\u06D5\",\n \"\\uFBED\", \"\\u0626\\u06D5\",\n \"\\uFBEE\", \"\\u0626\\u0648\",\n \"\\uFBEF\", \"\\u0626\\u0648\",\n \"\\uFBF0\", \"\\u0626\\u06C7\",\n \"\\uFBF1\", \"\\u0626\\u06C7\",\n \"\\uFBF2\", \"\\u0626\\u06C6\",\n \"\\uFBF3\", \"\\u0626\\u06C6\",\n \"\\uFBF4\", \"\\u0626\\u06C8\",\n \"\\uFBF5\", \"\\u0626\\u06C8\",\n \"\\uFBF6\", \"\\u0626\\u06D0\",\n \"\\uFBF7\", \"\\u0626\\u06D0\",\n \"\\uFBF8\", \"\\u0626\\u06D0\",\n \"\\uFBF9\", \"\\u0626\\u0649\",\n \"\\uFBFA\", \"\\u0626\\u0649\",\n \"\\uFBFB\", \"\\u0626\\u0649\",\n \"\\uFBFC\", \"\\u06CC\",\n \"\\uFBFD\", \"\\u06CC\",\n \"\\uFBFE\", \"\\u06CC\",\n \"\\uFBFF\", \"\\u06CC\",\n \"\\uFC00\", \"\\u0626\\u062C\",\n \"\\uFC01\", \"\\u0626\\u062D\",\n \"\\uFC02\", \"\\u0626\\u0645\",\n \"\\uFC03\", \"\\u0626\\u0649\",\n \"\\uFC04\", \"\\u0626\\u064A\",\n \"\\uFC05\", \"\\u0628\\u062C\",\n \"\\uFC06\", \"\\u0628\\u062D\",\n \"\\uFC07\", \"\\u0628\\u062E\",\n \"\\uFC08\", \"\\u0628\\u0645\",\n \"\\uFC09\", \"\\u0628\\u0649\",\n \"\\uFC0A\", \"\\u0628\\u064A\",\n \"\\uFC0B\", \"\\u062A\\u062C\",\n \"\\uFC0C\", \"\\u062A\\u062D\",\n \"\\uFC0D\", \"\\u062A\\u062E\",\n \"\\uFC0E\", \"\\u062A\\u0645\",\n \"\\uFC0F\", \"\\u062A\\u0649\",\n \"\\uFC10\", \"\\u062A\\u064A\",\n \"\\uFC11\", \"\\u062B\\u062C\",\n \"\\uFC12\", \"\\u062B\\u0645\",\n \"\\uFC13\", \"\\u062B\\u0649\",\n \"\\uFC14\", \"\\u062B\\u064A\",\n \"\\uFC15\", \"\\u062C\\u062D\",\n \"\\uFC16\", \"\\u062C\\u0645\",\n \"\\uFC17\", \"\\u062D\\u062C\",\n \"\\uFC18\", \"\\u062D\\u0645\",\n \"\\uFC19\", \"\\u062E\\u062C\",\n \"\\uFC1A\", \"\\u062E\\u062D\",\n \"\\uFC1B\", \"\\u062E\\u0645\",\n \"\\uFC1C\", \"\\u0633\\u062C\",\n \"\\uFC1D\", \"\\u0633\\u062D\",\n \"\\uFC1E\", \"\\u0633\\u062E\",\n \"\\uFC1F\", \"\\u0633\\u0645\",\n \"\\uFC20\", \"\\u0635\\u062D\",\n \"\\uFC21\", \"\\u0635\\u0645\",\n \"\\uFC22\", \"\\u0636\\u062C\",\n \"\\uFC23\", \"\\u0636\\u062D\",\n \"\\uFC24\", \"\\u0636\\u062E\",\n \"\\uFC25\", \"\\u0636\\u0645\",\n \"\\uFC26\", \"\\u0637\\u062D\",\n \"\\uFC27\", \"\\u0637\\u0645\",\n \"\\uFC28\", \"\\u0638\\u0645\",\n \"\\uFC29\", \"\\u0639\\u062C\",\n \"\\uFC2A\", \"\\u0639\\u0645\",\n \"\\uFC2B\", \"\\u063A\\u062C\",\n \"\\uFC2C\", \"\\u063A\\u0645\",\n \"\\uFC2D\", \"\\u0641\\u062C\",\n \"\\uFC2E\", \"\\u0641\\u062D\",\n \"\\uFC2F\", \"\\u0641\\u062E\",\n \"\\uFC30\", \"\\u0641\\u0645\",\n \"\\uFC31\", \"\\u0641\\u0649\",\n \"\\uFC32\", \"\\u0641\\u064A\",\n \"\\uFC33\", \"\\u0642\\u062D\",\n \"\\uFC34\", \"\\u0642\\u0645\",\n \"\\uFC35\", \"\\u0642\\u0649\",\n \"\\uFC36\", \"\\u0642\\u064A\",\n \"\\uFC37\", \"\\u0643\\u0627\",\n \"\\uFC38\", \"\\u0643\\u062C\",\n \"\\uFC39\", \"\\u0643\\u062D\",\n \"\\uFC3A\", \"\\u0643\\u062E\",\n \"\\uFC3B\", \"\\u0643\\u0644\",\n \"\\uFC3C\", \"\\u0643\\u0645\",\n \"\\uFC3D\", \"\\u0643\\u0649\",\n \"\\uFC3E\", \"\\u0643\\u064A\",\n \"\\uFC3F\", \"\\u0644\\u062C\",\n \"\\uFC40\", \"\\u0644\\u062D\",\n \"\\uFC41\", \"\\u0644\\u062E\",\n \"\\uFC42\", \"\\u0644\\u0645\",\n \"\\uFC43\", \"\\u0644\\u0649\",\n \"\\uFC44\", \"\\u0644\\u064A\",\n \"\\uFC45\", \"\\u0645\\u062C\",\n \"\\uFC46\", \"\\u0645\\u062D\",\n \"\\uFC47\", \"\\u0645\\u062E\",\n \"\\uFC48\", \"\\u0645\\u0645\",\n \"\\uFC49\", \"\\u0645\\u0649\",\n \"\\uFC4A\", \"\\u0645\\u064A\",\n \"\\uFC4B\", \"\\u0646\\u062C\",\n \"\\uFC4C\", \"\\u0646\\u062D\",\n \"\\uFC4D\", \"\\u0646\\u062E\",\n \"\\uFC4E\", \"\\u0646\\u0645\",\n \"\\uFC4F\", \"\\u0646\\u0649\",\n \"\\uFC50\", \"\\u0646\\u064A\",\n \"\\uFC51\", \"\\u0647\\u062C\",\n \"\\uFC52\", \"\\u0647\\u0645\",\n \"\\uFC53\", \"\\u0647\\u0649\",\n \"\\uFC54\", \"\\u0647\\u064A\",\n \"\\uFC55\", \"\\u064A\\u062C\",\n \"\\uFC56\", \"\\u064A\\u062D\",\n \"\\uFC57\", \"\\u064A\\u062E\",\n \"\\uFC58\", \"\\u064A\\u0645\",\n \"\\uFC59\", \"\\u064A\\u0649\",\n \"\\uFC5A\", \"\\u064A\\u064A\",\n \"\\uFC5B\", \"\\u0630\\u0670\",\n \"\\uFC5C\", \"\\u0631\\u0670\",\n \"\\uFC5D\", \"\\u0649\\u0670\",\n \"\\uFC5E\", \"\\u0020\\u064C\\u0651\",\n \"\\uFC5F\", \"\\u0020\\u064D\\u0651\",\n \"\\uFC60\", \"\\u0020\\u064E\\u0651\",\n \"\\uFC61\", \"\\u0020\\u064F\\u0651\",\n \"\\uFC62\", \"\\u0020\\u0650\\u0651\",\n \"\\uFC63\", \"\\u0020\\u0651\\u0670\",\n \"\\uFC64\", \"\\u0626\\u0631\",\n \"\\uFC65\", \"\\u0626\\u0632\",\n \"\\uFC66\", \"\\u0626\\u0645\",\n \"\\uFC67\", \"\\u0626\\u0646\",\n \"\\uFC68\", \"\\u0626\\u0649\",\n \"\\uFC69\", \"\\u0626\\u064A\",\n \"\\uFC6A\", \"\\u0628\\u0631\",\n \"\\uFC6B\", \"\\u0628\\u0632\",\n \"\\uFC6C\", \"\\u0628\\u0645\",\n \"\\uFC6D\", \"\\u0628\\u0646\",\n \"\\uFC6E\", \"\\u0628\\u0649\",\n \"\\uFC6F\", \"\\u0628\\u064A\",\n \"\\uFC70\", \"\\u062A\\u0631\",\n \"\\uFC71\", \"\\u062A\\u0632\",\n \"\\uFC72\", \"\\u062A\\u0645\",\n \"\\uFC73\", \"\\u062A\\u0646\",\n \"\\uFC74\", \"\\u062A\\u0649\",\n \"\\uFC75\", \"\\u062A\\u064A\",\n \"\\uFC76\", \"\\u062B\\u0631\",\n \"\\uFC77\", \"\\u062B\\u0632\",\n \"\\uFC78\", \"\\u062B\\u0645\",\n \"\\uFC79\", \"\\u062B\\u0646\",\n \"\\uFC7A\", \"\\u062B\\u0649\",\n \"\\uFC7B\", \"\\u062B\\u064A\",\n \"\\uFC7C\", \"\\u0641\\u0649\",\n \"\\uFC7D\", \"\\u0641\\u064A\",\n \"\\uFC7E\", \"\\u0642\\u0649\",\n \"\\uFC7F\", \"\\u0642\\u064A\",\n \"\\uFC80\", \"\\u0643\\u0627\",\n \"\\uFC81\", \"\\u0643\\u0644\",\n \"\\uFC82\", \"\\u0643\\u0645\",\n \"\\uFC83\", \"\\u0643\\u0649\",\n \"\\uFC84\", \"\\u0643\\u064A\",\n \"\\uFC85\", \"\\u0644\\u0645\",\n \"\\uFC86\", \"\\u0644\\u0649\",\n \"\\uFC87\", \"\\u0644\\u064A\",\n \"\\uFC88\", \"\\u0645\\u0627\",\n \"\\uFC89\", \"\\u0645\\u0645\",\n \"\\uFC8A\", \"\\u0646\\u0631\",\n \"\\uFC8B\", \"\\u0646\\u0632\",\n \"\\uFC8C\", \"\\u0646\\u0645\",\n \"\\uFC8D\", \"\\u0646\\u0646\",\n \"\\uFC8E\", \"\\u0646\\u0649\",\n \"\\uFC8F\", \"\\u0646\\u064A\",\n \"\\uFC90\", \"\\u0649\\u0670\",\n \"\\uFC91\", \"\\u064A\\u0631\",\n \"\\uFC92\", \"\\u064A\\u0632\",\n \"\\uFC93\", \"\\u064A\\u0645\",\n \"\\uFC94\", \"\\u064A\\u0646\",\n \"\\uFC95\", \"\\u064A\\u0649\",\n \"\\uFC96\", \"\\u064A\\u064A\",\n \"\\uFC97\", \"\\u0626\\u062C\",\n \"\\uFC98\", \"\\u0626\\u062D\",\n \"\\uFC99\", \"\\u0626\\u062E\",\n \"\\uFC9A\", \"\\u0626\\u0645\",\n \"\\uFC9B\", \"\\u0626\\u0647\",\n \"\\uFC9C\", \"\\u0628\\u062C\",\n \"\\uFC9D\", \"\\u0628\\u062D\",\n \"\\uFC9E\", \"\\u0628\\u062E\",\n \"\\uFC9F\", \"\\u0628\\u0645\",\n \"\\uFCA0\", \"\\u0628\\u0647\",\n \"\\uFCA1\", \"\\u062A\\u062C\",\n \"\\uFCA2\", \"\\u062A\\u062D\",\n \"\\uFCA3\", \"\\u062A\\u062E\",\n \"\\uFCA4\", \"\\u062A\\u0645\",\n \"\\uFCA5\", \"\\u062A\\u0647\",\n \"\\uFCA6\", \"\\u062B\\u0645\",\n \"\\uFCA7\", \"\\u062C\\u062D\",\n \"\\uFCA8\", \"\\u062C\\u0645\",\n \"\\uFCA9\", \"\\u062D\\u062C\",\n \"\\uFCAA\", \"\\u062D\\u0645\",\n \"\\uFCAB\", \"\\u062E\\u062C\",\n \"\\uFCAC\", \"\\u062E\\u0645\",\n \"\\uFCAD\", \"\\u0633\\u062C\",\n \"\\uFCAE\", \"\\u0633\\u062D\",\n \"\\uFCAF\", \"\\u0633\\u062E\",\n \"\\uFCB0\", \"\\u0633\\u0645\",\n \"\\uFCB1\", \"\\u0635\\u062D\",\n \"\\uFCB2\", \"\\u0635\\u062E\",\n \"\\uFCB3\", \"\\u0635\\u0645\",\n \"\\uFCB4\", \"\\u0636\\u062C\",\n \"\\uFCB5\", \"\\u0636\\u062D\",\n \"\\uFCB6\", \"\\u0636\\u062E\",\n \"\\uFCB7\", \"\\u0636\\u0645\",\n \"\\uFCB8\", \"\\u0637\\u062D\",\n \"\\uFCB9\", \"\\u0638\\u0645\",\n \"\\uFCBA\", \"\\u0639\\u062C\",\n \"\\uFCBB\", \"\\u0639\\u0645\",\n \"\\uFCBC\", \"\\u063A\\u062C\",\n \"\\uFCBD\", \"\\u063A\\u0645\",\n \"\\uFCBE\", \"\\u0641\\u062C\",\n \"\\uFCBF\", \"\\u0641\\u062D\",\n \"\\uFCC0\", \"\\u0641\\u062E\",\n \"\\uFCC1\", \"\\u0641\\u0645\",\n \"\\uFCC2\", \"\\u0642\\u062D\",\n \"\\uFCC3\", \"\\u0642\\u0645\",\n \"\\uFCC4\", \"\\u0643\\u062C\",\n \"\\uFCC5\", \"\\u0643\\u062D\",\n \"\\uFCC6\", \"\\u0643\\u062E\",\n \"\\uFCC7\", \"\\u0643\\u0644\",\n \"\\uFCC8\", \"\\u0643\\u0645\",\n \"\\uFCC9\", \"\\u0644\\u062C\",\n \"\\uFCCA\", \"\\u0644\\u062D\",\n \"\\uFCCB\", \"\\u0644\\u062E\",\n \"\\uFCCC\", \"\\u0644\\u0645\",\n \"\\uFCCD\", \"\\u0644\\u0647\",\n \"\\uFCCE\", \"\\u0645\\u062C\",\n \"\\uFCCF\", \"\\u0645\\u062D\",\n \"\\uFCD0\", \"\\u0645\\u062E\",\n \"\\uFCD1\", \"\\u0645\\u0645\",\n \"\\uFCD2\", \"\\u0646\\u062C\",\n \"\\uFCD3\", \"\\u0646\\u062D\",\n \"\\uFCD4\", \"\\u0646\\u062E\",\n \"\\uFCD5\", \"\\u0646\\u0645\",\n \"\\uFCD6\", \"\\u0646\\u0647\",\n \"\\uFCD7\", \"\\u0647\\u062C\",\n \"\\uFCD8\", \"\\u0647\\u0645\",\n \"\\uFCD9\", \"\\u0647\\u0670\",\n \"\\uFCDA\", \"\\u064A\\u062C\",\n \"\\uFCDB\", \"\\u064A\\u062D\",\n \"\\uFCDC\", \"\\u064A\\u062E\",\n \"\\uFCDD\", \"\\u064A\\u0645\",\n \"\\uFCDE\", \"\\u064A\\u0647\",\n \"\\uFCDF\", \"\\u0626\\u0645\",\n \"\\uFCE0\", \"\\u0626\\u0647\",\n \"\\uFCE1\", \"\\u0628\\u0645\",\n \"\\uFCE2\", \"\\u0628\\u0647\",\n \"\\uFCE3\", \"\\u062A\\u0645\",\n \"\\uFCE4\", \"\\u062A\\u0647\",\n \"\\uFCE5\", \"\\u062B\\u0645\",\n \"\\uFCE6\", \"\\u062B\\u0647\",\n \"\\uFCE7\", \"\\u0633\\u0645\",\n \"\\uFCE8\", \"\\u0633\\u0647\",\n \"\\uFCE9\", \"\\u0634\\u0645\",\n \"\\uFCEA\", \"\\u0634\\u0647\",\n \"\\uFCEB\", \"\\u0643\\u0644\",\n \"\\uFCEC\", \"\\u0643\\u0645\",\n \"\\uFCED\", \"\\u0644\\u0645\",\n \"\\uFCEE\", \"\\u0646\\u0645\",\n \"\\uFCEF\", \"\\u0646\\u0647\",\n \"\\uFCF0\", \"\\u064A\\u0645\",\n \"\\uFCF1\", \"\\u064A\\u0647\",\n \"\\uFCF2\", \"\\u0640\\u064E\\u0651\",\n \"\\uFCF3\", \"\\u0640\\u064F\\u0651\",\n \"\\uFCF4\", \"\\u0640\\u0650\\u0651\",\n \"\\uFCF5\", \"\\u0637\\u0649\",\n \"\\uFCF6\", \"\\u0637\\u064A\",\n \"\\uFCF7\", \"\\u0639\\u0649\",\n \"\\uFCF8\", \"\\u0639\\u064A\",\n \"\\uFCF9\", \"\\u063A\\u0649\",\n \"\\uFCFA\", \"\\u063A\\u064A\",\n \"\\uFCFB\", \"\\u0633\\u0649\",\n \"\\uFCFC\", \"\\u0633\\u064A\",\n \"\\uFCFD\", \"\\u0634\\u0649\",\n \"\\uFCFE\", \"\\u0634\\u064A\",\n \"\\uFCFF\", \"\\u062D\\u0649\",\n \"\\uFD00\", \"\\u062D\\u064A\",\n \"\\uFD01\", \"\\u062C\\u0649\",\n \"\\uFD02\", \"\\u062C\\u064A\",\n \"\\uFD03\", \"\\u062E\\u0649\",\n \"\\uFD04\", \"\\u062E\\u064A\",\n \"\\uFD05\", \"\\u0635\\u0649\",\n \"\\uFD06\", \"\\u0635\\u064A\",\n \"\\uFD07\", \"\\u0636\\u0649\",\n \"\\uFD08\", \"\\u0636\\u064A\",\n \"\\uFD09\", \"\\u0634\\u062C\",\n \"\\uFD0A\", \"\\u0634\\u062D\",\n \"\\uFD0B\", \"\\u0634\\u062E\",\n \"\\uFD0C\", \"\\u0634\\u0645\",\n \"\\uFD0D\", \"\\u0634\\u0631\",\n \"\\uFD0E\", \"\\u0633\\u0631\",\n \"\\uFD0F\", \"\\u0635\\u0631\",\n \"\\uFD10\", \"\\u0636\\u0631\",\n \"\\uFD11\", \"\\u0637\\u0649\",\n \"\\uFD12\", \"\\u0637\\u064A\",\n \"\\uFD13\", \"\\u0639\\u0649\",\n \"\\uFD14\", \"\\u0639\\u064A\",\n \"\\uFD15\", \"\\u063A\\u0649\",\n \"\\uFD16\", \"\\u063A\\u064A\",\n \"\\uFD17\", \"\\u0633\\u0649\",\n \"\\uFD18\", \"\\u0633\\u064A\",\n \"\\uFD19\", \"\\u0634\\u0649\",\n \"\\uFD1A\", \"\\u0634\\u064A\",\n \"\\uFD1B\", \"\\u062D\\u0649\",\n \"\\uFD1C\", \"\\u062D\\u064A\",\n \"\\uFD1D\", \"\\u062C\\u0649\",\n \"\\uFD1E\", \"\\u062C\\u064A\",\n \"\\uFD1F\", \"\\u062E\\u0649\",\n \"\\uFD20\", \"\\u062E\\u064A\",\n \"\\uFD21\", \"\\u0635\\u0649\",\n \"\\uFD22\", \"\\u0635\\u064A\",\n \"\\uFD23\", \"\\u0636\\u0649\",\n \"\\uFD24\", \"\\u0636\\u064A\",\n \"\\uFD25\", \"\\u0634\\u062C\",\n \"\\uFD26\", \"\\u0634\\u062D\",\n \"\\uFD27\", \"\\u0634\\u062E\",\n \"\\uFD28\", \"\\u0634\\u0645\",\n \"\\uFD29\", \"\\u0634\\u0631\",\n \"\\uFD2A\", \"\\u0633\\u0631\",\n \"\\uFD2B\", \"\\u0635\\u0631\",\n \"\\uFD2C\", \"\\u0636\\u0631\",\n \"\\uFD2D\", \"\\u0634\\u062C\",\n \"\\uFD2E\", \"\\u0634\\u062D\",\n \"\\uFD2F\", \"\\u0634\\u062E\",\n \"\\uFD30\", \"\\u0634\\u0645\",\n \"\\uFD31\", \"\\u0633\\u0647\",\n \"\\uFD32\", \"\\u0634\\u0647\",\n \"\\uFD33\", \"\\u0637\\u0645\",\n \"\\uFD34\", \"\\u0633\\u062C\",\n \"\\uFD35\", \"\\u0633\\u062D\",\n \"\\uFD36\", \"\\u0633\\u062E\",\n \"\\uFD37\", \"\\u0634\\u062C\",\n \"\\uFD38\", \"\\u0634\\u062D\",\n \"\\uFD39\", \"\\u0634\\u062E\",\n \"\\uFD3A\", \"\\u0637\\u0645\",\n \"\\uFD3B\", \"\\u0638\\u0645\",\n \"\\uFD3C\", \"\\u0627\\u064B\",\n \"\\uFD3D\", \"\\u0627\\u064B\",\n \"\\uFD50\", \"\\u062A\\u062C\\u0645\",\n \"\\uFD51\", \"\\u062A\\u062D\\u062C\",\n \"\\uFD52\", \"\\u062A\\u062D\\u062C\",\n \"\\uFD53\", \"\\u062A\\u062D\\u0645\",\n \"\\uFD54\", \"\\u062A\\u062E\\u0645\",\n \"\\uFD55\", \"\\u062A\\u0645\\u062C\",\n \"\\uFD56\", \"\\u062A\\u0645\\u062D\",\n \"\\uFD57\", \"\\u062A\\u0645\\u062E\",\n \"\\uFD58\", \"\\u062C\\u0645\\u062D\",\n \"\\uFD59\", \"\\u062C\\u0645\\u062D\",\n \"\\uFD5A\", \"\\u062D\\u0645\\u064A\",\n \"\\uFD5B\", \"\\u062D\\u0645\\u0649\",\n \"\\uFD5C\", \"\\u0633\\u062D\\u062C\",\n \"\\uFD5D\", \"\\u0633\\u062C\\u062D\",\n \"\\uFD5E\", \"\\u0633\\u062C\\u0649\",\n \"\\uFD5F\", \"\\u0633\\u0645\\u062D\",\n \"\\uFD60\", \"\\u0633\\u0645\\u062D\",\n \"\\uFD61\", \"\\u0633\\u0645\\u062C\",\n \"\\uFD62\", \"\\u0633\\u0645\\u0645\",\n \"\\uFD63\", \"\\u0633\\u0645\\u0645\",\n \"\\uFD64\", \"\\u0635\\u062D\\u062D\",\n \"\\uFD65\", \"\\u0635\\u062D\\u062D\",\n \"\\uFD66\", \"\\u0635\\u0645\\u0645\",\n \"\\uFD67\", \"\\u0634\\u062D\\u0645\",\n \"\\uFD68\", \"\\u0634\\u062D\\u0645\",\n \"\\uFD69\", \"\\u0634\\u062C\\u064A\",\n \"\\uFD6A\", \"\\u0634\\u0645\\u062E\",\n \"\\uFD6B\", \"\\u0634\\u0645\\u062E\",\n \"\\uFD6C\", \"\\u0634\\u0645\\u0645\",\n \"\\uFD6D\", \"\\u0634\\u0645\\u0645\",\n \"\\uFD6E\", \"\\u0636\\u062D\\u0649\",\n \"\\uFD6F\", \"\\u0636\\u062E\\u0645\",\n \"\\uFD70\", \"\\u0636\\u062E\\u0645\",\n \"\\uFD71\", \"\\u0637\\u0645\\u062D\",\n \"\\uFD72\", \"\\u0637\\u0645\\u062D\",\n \"\\uFD73\", \"\\u0637\\u0645\\u0645\",\n \"\\uFD74\", \"\\u0637\\u0645\\u064A\",\n \"\\uFD75\", \"\\u0639\\u062C\\u0645\",\n \"\\uFD76\", \"\\u0639\\u0645\\u0645\",\n \"\\uFD77\", \"\\u0639\\u0645\\u0645\",\n \"\\uFD78\", \"\\u0639\\u0645\\u0649\",\n \"\\uFD79\", \"\\u063A\\u0645\\u0645\",\n \"\\uFD7A\", \"\\u063A\\u0645\\u064A\",\n \"\\uFD7B\", \"\\u063A\\u0645\\u0649\",\n \"\\uFD7C\", \"\\u0641\\u062E\\u0645\",\n \"\\uFD7D\", \"\\u0641\\u062E\\u0645\",\n \"\\uFD7E\", \"\\u0642\\u0645\\u062D\",\n \"\\uFD7F\", \"\\u0642\\u0645\\u0645\",\n \"\\uFD80\", \"\\u0644\\u062D\\u0645\",\n \"\\uFD81\", \"\\u0644\\u062D\\u064A\",\n \"\\uFD82\", \"\\u0644\\u062D\\u0649\",\n \"\\uFD83\", \"\\u0644\\u062C\\u062C\",\n \"\\uFD84\", \"\\u0644\\u062C\\u062C\",\n \"\\uFD85\", \"\\u0644\\u062E\\u0645\",\n \"\\uFD86\", \"\\u0644\\u062E\\u0645\",\n \"\\uFD87\", \"\\u0644\\u0645\\u062D\",\n \"\\uFD88\", \"\\u0644\\u0645\\u062D\",\n \"\\uFD89\", \"\\u0645\\u062D\\u062C\",\n \"\\uFD8A\", \"\\u0645\\u062D\\u0645\",\n \"\\uFD8B\", \"\\u0645\\u062D\\u064A\",\n \"\\uFD8C\", \"\\u0645\\u062C\\u062D\",\n \"\\uFD8D\", \"\\u0645\\u062C\\u0645\",\n \"\\uFD8E\", \"\\u0645\\u062E\\u062C\",\n \"\\uFD8F\", \"\\u0645\\u062E\\u0645\",\n \"\\uFD92\", \"\\u0645\\u062C\\u062E\",\n \"\\uFD93\", \"\\u0647\\u0645\\u062C\",\n \"\\uFD94\", \"\\u0647\\u0645\\u0645\",\n \"\\uFD95\", \"\\u0646\\u062D\\u0645\",\n \"\\uFD96\", \"\\u0646\\u062D\\u0649\",\n \"\\uFD97\", \"\\u0646\\u062C\\u0645\",\n \"\\uFD98\", \"\\u0646\\u062C\\u0645\",\n \"\\uFD99\", \"\\u0646\\u062C\\u0649\",\n \"\\uFD9A\", \"\\u0646\\u0645\\u064A\",\n \"\\uFD9B\", \"\\u0646\\u0645\\u0649\",\n \"\\uFD9C\", \"\\u064A\\u0645\\u0645\",\n \"\\uFD9D\", \"\\u064A\\u0645\\u0645\",\n \"\\uFD9E\", \"\\u0628\\u062E\\u064A\",\n \"\\uFD9F\", \"\\u062A\\u062C\\u064A\",\n \"\\uFDA0\", \"\\u062A\\u062C\\u0649\",\n \"\\uFDA1\", \"\\u062A\\u062E\\u064A\",\n \"\\uFDA2\", \"\\u062A\\u062E\\u0649\",\n \"\\uFDA3\", \"\\u062A\\u0645\\u064A\",\n \"\\uFDA4\", \"\\u062A\\u0645\\u0649\",\n \"\\uFDA5\", \"\\u062C\\u0645\\u064A\",\n \"\\uFDA6\", \"\\u062C\\u062D\\u0649\",\n \"\\uFDA7\", \"\\u062C\\u0645\\u0649\",\n \"\\uFDA8\", \"\\u0633\\u062E\\u0649\",\n \"\\uFDA9\", \"\\u0635\\u062D\\u064A\",\n \"\\uFDAA\", \"\\u0634\\u062D\\u064A\",\n \"\\uFDAB\", \"\\u0636\\u062D\\u064A\",\n \"\\uFDAC\", \"\\u0644\\u062C\\u064A\",\n \"\\uFDAD\", \"\\u0644\\u0645\\u064A\",\n \"\\uFDAE\", \"\\u064A\\u062D\\u064A\",\n \"\\uFDAF\", \"\\u064A\\u062C\\u064A\",\n \"\\uFDB0\", \"\\u064A\\u0645\\u064A\",\n \"\\uFDB1\", \"\\u0645\\u0645\\u064A\",\n \"\\uFDB2\", \"\\u0642\\u0645\\u064A\",\n \"\\uFDB3\", \"\\u0646\\u062D\\u064A\",\n \"\\uFDB4\", \"\\u0642\\u0645\\u062D\",\n \"\\uFDB5\", \"\\u0644\\u062D\\u0645\",\n \"\\uFDB6\", \"\\u0639\\u0645\\u064A\",\n \"\\uFDB7\", \"\\u0643\\u0645\\u064A\",\n \"\\uFDB8\", \"\\u0646\\u062C\\u062D\",\n \"\\uFDB9\", \"\\u0645\\u062E\\u064A\",\n \"\\uFDBA\", \"\\u0644\\u062C\\u0645\",\n \"\\uFDBB\", \"\\u0643\\u0645\\u0645\",\n \"\\uFDBC\", \"\\u0644\\u062C\\u0645\",\n \"\\uFDBD\", \"\\u0646\\u062C\\u062D\",\n \"\\uFDBE\", \"\\u062C\\u062D\\u064A\",\n \"\\uFDBF\", \"\\u062D\\u062C\\u064A\",\n \"\\uFDC0\", \"\\u0645\\u062C\\u064A\",\n \"\\uFDC1\", \"\\u0641\\u0645\\u064A\",\n \"\\uFDC2\", \"\\u0628\\u062D\\u064A\",\n \"\\uFDC3\", \"\\u0643\\u0645\\u0645\",\n \"\\uFDC4\", \"\\u0639\\u062C\\u0645\",\n \"\\uFDC5\", \"\\u0635\\u0645\\u0645\",\n \"\\uFDC6\", \"\\u0633\\u062E\\u064A\",\n \"\\uFDC7\", \"\\u0646\\u062C\\u064A\",\n \"\\uFE49\", \"\\u203E\",\n \"\\uFE4A\", \"\\u203E\",\n \"\\uFE4B\", \"\\u203E\",\n \"\\uFE4C\", \"\\u203E\",\n \"\\uFE4D\", \"\\u005F\",\n \"\\uFE4E\", \"\\u005F\",\n \"\\uFE4F\", \"\\u005F\",\n \"\\uFE80\", \"\\u0621\",\n \"\\uFE81\", \"\\u0622\",\n \"\\uFE82\", \"\\u0622\",\n \"\\uFE83\", \"\\u0623\",\n \"\\uFE84\", \"\\u0623\",\n \"\\uFE85\", \"\\u0624\",\n \"\\uFE86\", \"\\u0624\",\n \"\\uFE87\", \"\\u0625\",\n \"\\uFE88\", \"\\u0625\",\n \"\\uFE89\", \"\\u0626\",\n \"\\uFE8A\", \"\\u0626\",\n \"\\uFE8B\", \"\\u0626\",\n \"\\uFE8C\", \"\\u0626\",\n \"\\uFE8D\", \"\\u0627\",\n \"\\uFE8E\", \"\\u0627\",\n \"\\uFE8F\", \"\\u0628\",\n \"\\uFE90\", \"\\u0628\",\n \"\\uFE91\", \"\\u0628\",\n \"\\uFE92\", \"\\u0628\",\n \"\\uFE93\", \"\\u0629\",\n \"\\uFE94\", \"\\u0629\",\n \"\\uFE95\", \"\\u062A\",\n \"\\uFE96\", \"\\u062A\",\n \"\\uFE97\", \"\\u062A\",\n \"\\uFE98\", \"\\u062A\",\n \"\\uFE99\", \"\\u062B\",\n \"\\uFE9A\", \"\\u062B\",\n \"\\uFE9B\", \"\\u062B\",\n \"\\uFE9C\", \"\\u062B\",\n \"\\uFE9D\", \"\\u062C\",\n \"\\uFE9E\", \"\\u062C\",\n \"\\uFE9F\", \"\\u062C\",\n \"\\uFEA0\", \"\\u062C\",\n \"\\uFEA1\", \"\\u062D\",\n \"\\uFEA2\", \"\\u062D\",\n \"\\uFEA3\", \"\\u062D\",\n \"\\uFEA4\", \"\\u062D\",\n \"\\uFEA5\", \"\\u062E\",\n \"\\uFEA6\", \"\\u062E\",\n \"\\uFEA7\", \"\\u062E\",\n \"\\uFEA8\", \"\\u062E\",\n \"\\uFEA9\", \"\\u062F\",\n \"\\uFEAA\", \"\\u062F\",\n \"\\uFEAB\", \"\\u0630\",\n \"\\uFEAC\", \"\\u0630\",\n \"\\uFEAD\", \"\\u0631\",\n \"\\uFEAE\", \"\\u0631\",\n \"\\uFEAF\", \"\\u0632\",\n \"\\uFEB0\", \"\\u0632\",\n \"\\uFEB1\", \"\\u0633\",\n \"\\uFEB2\", \"\\u0633\",\n \"\\uFEB3\", \"\\u0633\",\n \"\\uFEB4\", \"\\u0633\",\n \"\\uFEB5\", \"\\u0634\",\n \"\\uFEB6\", \"\\u0634\",\n \"\\uFEB7\", \"\\u0634\",\n \"\\uFEB8\", \"\\u0634\",\n \"\\uFEB9\", \"\\u0635\",\n \"\\uFEBA\", \"\\u0635\",\n \"\\uFEBB\", \"\\u0635\",\n \"\\uFEBC\", \"\\u0635\",\n \"\\uFEBD\", \"\\u0636\",\n \"\\uFEBE\", \"\\u0636\",\n \"\\uFEBF\", \"\\u0636\",\n \"\\uFEC0\", \"\\u0636\",\n \"\\uFEC1\", \"\\u0637\",\n \"\\uFEC2\", \"\\u0637\",\n \"\\uFEC3\", \"\\u0637\",\n \"\\uFEC4\", \"\\u0637\",\n \"\\uFEC5\", \"\\u0638\",\n \"\\uFEC6\", \"\\u0638\",\n \"\\uFEC7\", \"\\u0638\",\n \"\\uFEC8\", \"\\u0638\",\n \"\\uFEC9\", \"\\u0639\",\n \"\\uFECA\", \"\\u0639\",\n \"\\uFECB\", \"\\u0639\",\n \"\\uFECC\", \"\\u0639\",\n \"\\uFECD\", \"\\u063A\",\n \"\\uFECE\", \"\\u063A\",\n \"\\uFECF\", \"\\u063A\",\n \"\\uFED0\", \"\\u063A\",\n \"\\uFED1\", \"\\u0641\",\n \"\\uFED2\", \"\\u0641\",\n \"\\uFED3\", \"\\u0641\",\n \"\\uFED4\", \"\\u0641\",\n \"\\uFED5\", \"\\u0642\",\n \"\\uFED6\", \"\\u0642\",\n \"\\uFED7\", \"\\u0642\",\n \"\\uFED8\", \"\\u0642\",\n \"\\uFED9\", \"\\u0643\",\n \"\\uFEDA\", \"\\u0643\",\n \"\\uFEDB\", \"\\u0643\",\n \"\\uFEDC\", \"\\u0643\",\n \"\\uFEDD\", \"\\u0644\",\n \"\\uFEDE\", \"\\u0644\",\n \"\\uFEDF\", \"\\u0644\",\n \"\\uFEE0\", \"\\u0644\",\n \"\\uFEE1\", \"\\u0645\",\n \"\\uFEE2\", \"\\u0645\",\n \"\\uFEE3\", \"\\u0645\",\n \"\\uFEE4\", \"\\u0645\",\n \"\\uFEE5\", \"\\u0646\",\n \"\\uFEE6\", \"\\u0646\",\n \"\\uFEE7\", \"\\u0646\",\n \"\\uFEE8\", \"\\u0646\",\n \"\\uFEE9\", \"\\u0647\",\n \"\\uFEEA\", \"\\u0647\",\n \"\\uFEEB\", \"\\u0647\",\n \"\\uFEEC\", \"\\u0647\",\n \"\\uFEED\", \"\\u0648\",\n \"\\uFEEE\", \"\\u0648\",\n \"\\uFEEF\", \"\\u0649\",\n \"\\uFEF0\", \"\\u0649\",\n \"\\uFEF1\", \"\\u064A\",\n \"\\uFEF2\", \"\\u064A\",\n \"\\uFEF3\", \"\\u064A\",\n \"\\uFEF4\", \"\\u064A\",\n \"\\uFEF5\", \"\\u0644\\u0622\",\n \"\\uFEF6\", \"\\u0644\\u0622\",\n \"\\uFEF7\", \"\\u0644\\u0623\",\n \"\\uFEF8\", \"\\u0644\\u0623\",\n \"\\uFEF9\", \"\\u0644\\u0625\",\n \"\\uFEFA\", \"\\u0644\\u0625\",\n \"\\uFEFB\", \"\\u0644\\u0627\",\n \"\\uFEFC\", \"\\u0644\\u0627\",\n ];\n});\n\nfunction reverseIfRtl(chars) {\n const charsLength = chars.length;\n // Reverse an arabic ligature.\n if (charsLength <= 1 || !isRTLRangeFor(chars.charCodeAt(0))) {\n return chars;\n }\n const buf = [];\n for (let ii = charsLength - 1; ii >= 0; ii--) {\n buf.push(chars[ii]);\n }\n return buf.join(\"\");\n}\n\nconst SpecialCharRegExp = new RegExp(\"^(\\\\s)|(\\\\p{Mn})|(\\\\p{Cf})$\", \"u\");\nconst CategoryCache = new Map();\n\nfunction getCharUnicodeCategory(char) {\n const cachedCategory = CategoryCache.get(char);\n if (cachedCategory) {\n return cachedCategory;\n }\n const groups = char.match(SpecialCharRegExp);\n const category = {\n isWhitespace: !!(groups && groups[1]),\n isZeroWidthDiacritic: !!(groups && groups[2]),\n isInvisibleFormatMark: !!(groups && groups[3]),\n };\n CategoryCache.set(char, category);\n return category;\n}\n\nfunction clearUnicodeCaches() {\n CategoryCache.clear();\n}\n\nexport {\n clearUnicodeCaches,\n getCharUnicodeCategory,\n getNormalizedUnicodes,\n getUnicodeForGlyph,\n getUnicodeRangeFor,\n mapSpecialUnicodeValues,\n reverseIfRtl,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AnnotationActionEventType,\n AnnotationBorderStyleType,\n AnnotationFieldFlag,\n AnnotationFlag,\n AnnotationReplyType,\n AnnotationType,\n assert,\n escapeString,\n getModificationDate,\n isAscii,\n OPS,\n RenderingIntentFlag,\n shadow,\n stringToPDFString,\n stringToUTF16BEString,\n unreachable,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport { collectActions, getInheritableProperty } from \"./core_utils.js\";\nimport {\n createDefaultAppearance,\n parseDefaultAppearance,\n} from \"./default_appearance.js\";\nimport { Dict, isName, Name, Ref, RefSet } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { bidi } from \"./bidi.js\";\nimport { Catalog } from \"./catalog.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { FileSpec } from \"./file_spec.js\";\nimport { ObjectLoader } from \"./object_loader.js\";\nimport { OperatorList } from \"./operator_list.js\";\nimport { StringStream } from \"./stream.js\";\nimport { writeDict } from \"./writer.js\";\nimport { XFAFactory } from \"./xfa/factory.js\";\n\n// Represent the percentage of the height of a single-line field over\n// the font size.\n// Acrobat seems to use this value.\nconst LINE_FACTOR = 1.35;\n\nclass AnnotationFactory {\n /**\n * Create an `Annotation` object of the correct type for the given reference\n * to an annotation dictionary. This yields a promise that is resolved when\n * the `Annotation` object is constructed.\n *\n * @param {XRef} xref\n * @param {Object} ref\n * @param {PDFManager} pdfManager\n * @param {Object} idFactory\n * @param {boolean} collectFields\n * @returns {Promise} A promise that is resolved with an {Annotation}\n * instance.\n */\n static create(xref, ref, pdfManager, idFactory, collectFields) {\n return Promise.all([\n pdfManager.ensureCatalog(\"acroForm\"),\n // Only necessary to prevent the `pdfManager.docBaseUrl`-getter, used\n // with certain Annotations, from throwing and thus breaking parsing:\n pdfManager.ensureCatalog(\"baseUrl\"),\n pdfManager.ensureDoc(\"xfaDatasets\"),\n collectFields ? this._getPageIndex(xref, ref, pdfManager) : -1,\n ]).then(([acroForm, baseUrl, xfaDatasets, pageIndex]) =>\n pdfManager.ensure(this, \"_create\", [\n xref,\n ref,\n pdfManager,\n idFactory,\n acroForm,\n xfaDatasets,\n collectFields,\n pageIndex,\n ])\n );\n }\n\n /**\n * @private\n */\n static _create(\n xref,\n ref,\n pdfManager,\n idFactory,\n acroForm,\n xfaDatasets,\n collectFields,\n pageIndex = -1\n ) {\n const dict = xref.fetchIfRef(ref);\n if (!(dict instanceof Dict)) {\n return undefined;\n }\n\n const id =\n ref instanceof Ref ? ref.toString() : `annot_${idFactory.createObjId()}`;\n\n // Determine the annotation's subtype.\n let subtype = dict.get(\"Subtype\");\n subtype = subtype instanceof Name ? subtype.name : null;\n\n // Return the right annotation object based on the subtype and field type.\n const parameters = {\n xref,\n ref,\n dict,\n subtype,\n id,\n pdfManager,\n acroForm: acroForm instanceof Dict ? acroForm : Dict.empty,\n xfaDatasets,\n collectFields,\n pageIndex,\n };\n\n switch (subtype) {\n case \"Link\":\n return new LinkAnnotation(parameters);\n\n case \"Text\":\n return new TextAnnotation(parameters);\n\n case \"Widget\":\n let fieldType = getInheritableProperty({ dict, key: \"FT\" });\n fieldType = fieldType instanceof Name ? fieldType.name : null;\n\n switch (fieldType) {\n case \"Tx\":\n return new TextWidgetAnnotation(parameters);\n case \"Btn\":\n return new ButtonWidgetAnnotation(parameters);\n case \"Ch\":\n return new ChoiceWidgetAnnotation(parameters);\n case \"Sig\":\n return new SignatureWidgetAnnotation(parameters);\n }\n warn(\n `Unimplemented widget field type \"${fieldType}\", ` +\n \"falling back to base field type.\"\n );\n return new WidgetAnnotation(parameters);\n\n case \"Popup\":\n return new PopupAnnotation(parameters);\n\n case \"FreeText\":\n return new FreeTextAnnotation(parameters);\n\n case \"Line\":\n return new LineAnnotation(parameters);\n\n case \"Square\":\n return new SquareAnnotation(parameters);\n\n case \"Circle\":\n return new CircleAnnotation(parameters);\n\n case \"PolyLine\":\n return new PolylineAnnotation(parameters);\n\n case \"Polygon\":\n return new PolygonAnnotation(parameters);\n\n case \"Caret\":\n return new CaretAnnotation(parameters);\n\n case \"Ink\":\n return new InkAnnotation(parameters);\n\n case \"Highlight\":\n return new HighlightAnnotation(parameters);\n\n case \"Underline\":\n return new UnderlineAnnotation(parameters);\n\n case \"Squiggly\":\n return new SquigglyAnnotation(parameters);\n\n case \"StrikeOut\":\n return new StrikeOutAnnotation(parameters);\n\n case \"Stamp\":\n return new StampAnnotation(parameters);\n\n case \"FileAttachment\":\n return new FileAttachmentAnnotation(parameters);\n\n default:\n if (!collectFields) {\n if (!subtype) {\n warn(\"Annotation is missing the required /Subtype.\");\n } else {\n warn(\n `Unimplemented annotation type \"${subtype}\", ` +\n \"falling back to base annotation.\"\n );\n }\n }\n return new Annotation(parameters);\n }\n }\n\n static async _getPageIndex(xref, ref, pdfManager) {\n try {\n const annotDict = await xref.fetchIfRefAsync(ref);\n if (!(annotDict instanceof Dict)) {\n return -1;\n }\n const pageRef = annotDict.getRaw(\"P\");\n if (!(pageRef instanceof Ref)) {\n return -1;\n }\n const pageIndex = await pdfManager.ensureCatalog(\"getPageIndex\", [\n pageRef,\n ]);\n return pageIndex;\n } catch (ex) {\n warn(`_getPageIndex: \"${ex}\".`);\n return -1;\n }\n }\n}\n\nfunction getRgbColor(color, defaultColor = new Uint8ClampedArray(3)) {\n if (!Array.isArray(color)) {\n return defaultColor;\n }\n\n const rgbColor = defaultColor || new Uint8ClampedArray(3);\n switch (color.length) {\n case 0: // Transparent, which we indicate with a null value\n return null;\n\n case 1: // Convert grayscale to RGB\n ColorSpace.singletons.gray.getRgbItem(color, 0, rgbColor, 0);\n return rgbColor;\n\n case 3: // Convert RGB percentages to RGB\n ColorSpace.singletons.rgb.getRgbItem(color, 0, rgbColor, 0);\n return rgbColor;\n\n case 4: // Convert CMYK to RGB\n ColorSpace.singletons.cmyk.getRgbItem(color, 0, rgbColor, 0);\n return rgbColor;\n\n default:\n return defaultColor;\n }\n}\n\nfunction getQuadPoints(dict, rect) {\n if (!dict.has(\"QuadPoints\")) {\n return null;\n }\n\n // The region is described as a number of quadrilaterals.\n // Each quadrilateral must consist of eight coordinates.\n const quadPoints = dict.getArray(\"QuadPoints\");\n if (\n !Array.isArray(quadPoints) ||\n quadPoints.length === 0 ||\n quadPoints.length % 8 > 0\n ) {\n return null;\n }\n\n const quadPointsLists = [];\n for (let i = 0, ii = quadPoints.length / 8; i < ii; i++) {\n // Each series of eight numbers represents the coordinates for one\n // quadrilateral in the order [x1, y1, x2, y2, x3, y3, x4, y4].\n // Convert this to an array of objects with x and y coordinates.\n quadPointsLists.push([]);\n for (let j = i * 8, jj = i * 8 + 8; j < jj; j += 2) {\n const x = quadPoints[j];\n const y = quadPoints[j + 1];\n\n // The quadpoints should be ignored if any coordinate in the array\n // lies outside the region specified by the rectangle. The rectangle\n // can be `null` for markup annotations since their rectangle may be\n // incorrect (fixes bug 1538111).\n if (\n rect !== null &&\n (x < rect[0] || x > rect[2] || y < rect[1] || y > rect[3])\n ) {\n return null;\n }\n quadPointsLists[i].push({ x, y });\n }\n }\n\n // The PDF specification states in section 12.5.6.10 (figure 64) that the\n // order of the quadpoints should be bottom left, bottom right, top right\n // and top left. However, in practice PDF files use a different order,\n // namely bottom left, bottom right, top left and top right (this is also\n // mentioned on https://github.com/highkite/pdfAnnotate#QuadPoints), so\n // this is the actual order we should work with. However, the situation is\n // even worse since Adobe's own applications and other applications violate\n // the specification and create annotations with other orders, namely top\n // left, top right, bottom left and bottom right or even top left, top right,\n // bottom right and bottom left. To avoid inconsistency and broken rendering,\n // we normalize all lists to put the quadpoints in the same standard order\n // (see https://stackoverflow.com/a/10729881).\n return quadPointsLists.map(quadPointsList => {\n const [minX, maxX, minY, maxY] = quadPointsList.reduce(\n ([mX, MX, mY, MY], quadPoint) => [\n Math.min(mX, quadPoint.x),\n Math.max(MX, quadPoint.x),\n Math.min(mY, quadPoint.y),\n Math.max(MY, quadPoint.y),\n ],\n [Number.MAX_VALUE, Number.MIN_VALUE, Number.MAX_VALUE, Number.MIN_VALUE]\n );\n return [\n { x: minX, y: maxY },\n { x: maxX, y: maxY },\n { x: minX, y: minY },\n { x: maxX, y: minY },\n ];\n });\n}\n\nfunction getTransformMatrix(rect, bbox, matrix) {\n // 12.5.5: Algorithm: Appearance streams\n const [minX, minY, maxX, maxY] = Util.getAxialAlignedBoundingBox(\n bbox,\n matrix\n );\n if (minX === maxX || minY === maxY) {\n // From real-life file, bbox was [0, 0, 0, 0]. In this case,\n // just apply the transform for rect\n return [1, 0, 0, 1, rect[0], rect[1]];\n }\n\n const xRatio = (rect[2] - rect[0]) / (maxX - minX);\n const yRatio = (rect[3] - rect[1]) / (maxY - minY);\n return [\n xRatio,\n 0,\n 0,\n yRatio,\n rect[0] - minX * xRatio,\n rect[1] - minY * yRatio,\n ];\n}\n\nclass Annotation {\n constructor(params) {\n const dict = params.dict;\n\n this.setTitle(dict.get(\"T\"));\n this.setContents(dict.get(\"Contents\"));\n this.setModificationDate(dict.get(\"M\"));\n this.setFlags(dict.get(\"F\"));\n this.setRectangle(dict.getArray(\"Rect\"));\n this.setColor(dict.getArray(\"C\"));\n this.setBorderStyle(dict);\n this.setAppearance(dict);\n this.setBorderAndBackgroundColors(dict.get(\"MK\"));\n\n this._streams = [];\n if (this.appearance) {\n this._streams.push(this.appearance);\n }\n\n // Expose public properties using a data object.\n this.data = {\n annotationFlags: this.flags,\n borderStyle: this.borderStyle,\n color: this.color,\n backgroundColor: this.backgroundColor,\n borderColor: this.borderColor,\n contentsObj: this._contents,\n hasAppearance: !!this.appearance,\n id: params.id,\n modificationDate: this.modificationDate,\n rect: this.rectangle,\n subtype: params.subtype,\n hasOwnCanvas: false,\n };\n\n if (params.collectFields) {\n // Fields can act as container for other fields and have\n // some actions even if no Annotation inherit from them.\n // Those fields can be referenced by CO (calculation order).\n const kids = dict.get(\"Kids\");\n if (Array.isArray(kids)) {\n const kidIds = [];\n for (const kid of kids) {\n if (kid instanceof Ref) {\n kidIds.push(kid.toString());\n }\n }\n if (kidIds.length !== 0) {\n this.data.kidIds = kidIds;\n }\n }\n\n this.data.actions = collectActions(\n params.xref,\n dict,\n AnnotationActionEventType\n );\n this.data.fieldName = this._constructFieldName(dict);\n this.data.pageIndex = params.pageIndex;\n }\n\n this._fallbackFontDict = null;\n }\n\n /**\n * @private\n */\n _hasFlag(flags, flag) {\n return !!(flags & flag);\n }\n\n /**\n * @private\n */\n _isViewable(flags) {\n return (\n !this._hasFlag(flags, AnnotationFlag.INVISIBLE) &&\n !this._hasFlag(flags, AnnotationFlag.NOVIEW)\n );\n }\n\n /**\n * @private\n */\n _isPrintable(flags) {\n return (\n this._hasFlag(flags, AnnotationFlag.PRINT) &&\n !this._hasFlag(flags, AnnotationFlag.INVISIBLE)\n );\n }\n\n /**\n * Check if the annotation must be displayed by taking into account\n * the value found in the annotationStorage which may have been set\n * through JS.\n *\n * @public\n * @memberof Annotation\n * @param {AnnotationStorage} [annotationStorage] - Storage for annotation\n */\n mustBeViewed(annotationStorage) {\n const storageEntry =\n annotationStorage && annotationStorage.get(this.data.id);\n if (storageEntry && storageEntry.hidden !== undefined) {\n return !storageEntry.hidden;\n }\n return this.viewable && !this._hasFlag(this.flags, AnnotationFlag.HIDDEN);\n }\n\n /**\n * Check if the annotation must be printed by taking into account\n * the value found in the annotationStorage which may have been set\n * through JS.\n *\n * @public\n * @memberof Annotation\n * @param {AnnotationStorage} [annotationStorage] - Storage for annotation\n */\n mustBePrinted(annotationStorage) {\n const storageEntry =\n annotationStorage && annotationStorage.get(this.data.id);\n if (storageEntry && storageEntry.print !== undefined) {\n return storageEntry.print;\n }\n return this.printable;\n }\n\n /**\n * @type {boolean}\n */\n get viewable() {\n if (this.data.quadPoints === null) {\n return false;\n }\n if (this.flags === 0) {\n return true;\n }\n return this._isViewable(this.flags);\n }\n\n /**\n * @type {boolean}\n */\n get printable() {\n if (this.data.quadPoints === null) {\n return false;\n }\n if (this.flags === 0) {\n return false;\n }\n return this._isPrintable(this.flags);\n }\n\n /**\n * @private\n */\n _parseStringHelper(data) {\n const str = typeof data === \"string\" ? stringToPDFString(data) : \"\";\n const dir = str && bidi(str).dir === \"rtl\" ? \"rtl\" : \"ltr\";\n\n return { str, dir };\n }\n\n /**\n * Set the title.\n *\n * @param {string} title - The title of the annotation, used e.g. with\n * PopupAnnotations.\n */\n setTitle(title) {\n this._title = this._parseStringHelper(title);\n }\n\n /**\n * Set the contents.\n *\n * @param {string} contents - Text to display for the annotation or, if the\n * type of annotation does not display text, a\n * description of the annotation's contents\n */\n setContents(contents) {\n this._contents = this._parseStringHelper(contents);\n }\n\n /**\n * Set the modification date.\n *\n * @public\n * @memberof Annotation\n * @param {string} modificationDate - PDF date string that indicates when the\n * annotation was last modified\n */\n setModificationDate(modificationDate) {\n this.modificationDate =\n typeof modificationDate === \"string\" ? modificationDate : null;\n }\n\n /**\n * Set the flags.\n *\n * @public\n * @memberof Annotation\n * @param {number} flags - Unsigned 32-bit integer specifying annotation\n * characteristics\n * @see {@link shared/util.js}\n */\n setFlags(flags) {\n this.flags = Number.isInteger(flags) && flags > 0 ? flags : 0;\n }\n\n /**\n * Check if a provided flag is set.\n *\n * @public\n * @memberof Annotation\n * @param {number} flag - Hexadecimal representation for an annotation\n * characteristic\n * @returns {boolean}\n * @see {@link shared/util.js}\n */\n hasFlag(flag) {\n return this._hasFlag(this.flags, flag);\n }\n\n /**\n * Set the rectangle.\n *\n * @public\n * @memberof Annotation\n * @param {Array} rectangle - The rectangle array with exactly four entries\n */\n setRectangle(rectangle) {\n if (Array.isArray(rectangle) && rectangle.length === 4) {\n this.rectangle = Util.normalizeRect(rectangle);\n } else {\n this.rectangle = [0, 0, 0, 0];\n }\n }\n\n /**\n * Set the color and take care of color space conversion.\n * The default value is black, in RGB color space.\n *\n * @public\n * @memberof Annotation\n * @param {Array} color - The color array containing either 0\n * (transparent), 1 (grayscale), 3 (RGB) or\n * 4 (CMYK) elements\n */\n setColor(color) {\n this.color = getRgbColor(color);\n }\n\n /**\n * Set the line endings; should only be used with specific annotation types.\n * @param {Array} lineEndings - The line endings array.\n */\n setLineEndings(lineEndings) {\n this.lineEndings = [\"None\", \"None\"]; // The default values.\n\n if (Array.isArray(lineEndings) && lineEndings.length === 2) {\n for (let i = 0; i < 2; i++) {\n const obj = lineEndings[i];\n\n if (obj instanceof Name) {\n switch (obj.name) {\n case \"None\":\n continue;\n case \"Square\":\n case \"Circle\":\n case \"Diamond\":\n case \"OpenArrow\":\n case \"ClosedArrow\":\n case \"Butt\":\n case \"ROpenArrow\":\n case \"RClosedArrow\":\n case \"Slash\":\n this.lineEndings[i] = obj.name;\n continue;\n }\n }\n warn(`Ignoring invalid lineEnding: ${obj}`);\n }\n }\n }\n\n /**\n * Set the color for background and border if any.\n * The default values are transparent.\n *\n * @public\n * @memberof Annotation\n * @param {Dict} mk - The MK dictionary\n */\n setBorderAndBackgroundColors(mk) {\n if (mk instanceof Dict) {\n this.borderColor = getRgbColor(mk.getArray(\"BC\"), null);\n this.backgroundColor = getRgbColor(mk.getArray(\"BG\"), null);\n } else {\n this.borderColor = this.backgroundColor = null;\n }\n }\n\n /**\n * Set the border style (as AnnotationBorderStyle object).\n *\n * @public\n * @memberof Annotation\n * @param {Dict} borderStyle - The border style dictionary\n */\n setBorderStyle(borderStyle) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(this.rectangle, \"setRectangle must have been called previously.\");\n }\n\n this.borderStyle = new AnnotationBorderStyle();\n if (!(borderStyle instanceof Dict)) {\n return;\n }\n if (borderStyle.has(\"BS\")) {\n const dict = borderStyle.get(\"BS\");\n const dictType = dict.get(\"Type\");\n\n if (!dictType || isName(dictType, \"Border\")) {\n this.borderStyle.setWidth(dict.get(\"W\"), this.rectangle);\n this.borderStyle.setStyle(dict.get(\"S\"));\n this.borderStyle.setDashArray(dict.getArray(\"D\"));\n }\n } else if (borderStyle.has(\"Border\")) {\n const array = borderStyle.getArray(\"Border\");\n if (Array.isArray(array) && array.length >= 3) {\n this.borderStyle.setHorizontalCornerRadius(array[0]);\n this.borderStyle.setVerticalCornerRadius(array[1]);\n this.borderStyle.setWidth(array[2], this.rectangle);\n\n if (array.length === 4) {\n // Dash array available\n this.borderStyle.setDashArray(array[3], /* forceStyle = */ true);\n }\n }\n } else {\n // There are no border entries in the dictionary. According to the\n // specification, we should draw a solid border of width 1 in that\n // case, but Adobe Reader did not implement that part of the\n // specification and instead draws no border at all, so we do the same.\n // See also https://github.com/mozilla/pdf.js/issues/6179.\n this.borderStyle.setWidth(0);\n }\n }\n\n /**\n * Set the (normal) appearance.\n *\n * @public\n * @memberof Annotation\n * @param {Dict} dict - The annotation's data dictionary\n */\n setAppearance(dict) {\n this.appearance = null;\n\n const appearanceStates = dict.get(\"AP\");\n if (!(appearanceStates instanceof Dict)) {\n return;\n }\n\n // In case the normal appearance is a stream, then it is used directly.\n const normalAppearanceState = appearanceStates.get(\"N\");\n if (normalAppearanceState instanceof BaseStream) {\n this.appearance = normalAppearanceState;\n return;\n }\n if (!(normalAppearanceState instanceof Dict)) {\n return;\n }\n\n // In case the normal appearance is a dictionary, the `AS` entry provides\n // the key of the stream in this dictionary.\n const as = dict.get(\"AS\");\n if (!(as instanceof Name) || !normalAppearanceState.has(as.name)) {\n return;\n }\n this.appearance = normalAppearanceState.get(as.name);\n }\n\n loadResources(keys, appearance) {\n return appearance.dict.getAsync(\"Resources\").then(resources => {\n if (!resources) {\n return undefined;\n }\n\n const objectLoader = new ObjectLoader(resources, keys, resources.xref);\n return objectLoader.load().then(function () {\n return resources;\n });\n });\n }\n\n getOperatorList(evaluator, task, intent, renderForms, annotationStorage) {\n const data = this.data;\n let appearance = this.appearance;\n const isUsingOwnCanvas =\n data.hasOwnCanvas && intent & RenderingIntentFlag.DISPLAY;\n if (!appearance) {\n if (!isUsingOwnCanvas) {\n return Promise.resolve(new OperatorList());\n }\n appearance = new StringStream(\"\");\n appearance.dict = new Dict();\n }\n\n const appearanceDict = appearance.dict;\n const resourcesPromise = this.loadResources(\n [\"ExtGState\", \"ColorSpace\", \"Pattern\", \"Shading\", \"XObject\", \"Font\"],\n appearance\n );\n const bbox = appearanceDict.getArray(\"BBox\") || [0, 0, 1, 1];\n const matrix = appearanceDict.getArray(\"Matrix\") || [1, 0, 0, 1, 0, 0];\n const transform = getTransformMatrix(data.rect, bbox, matrix);\n\n return resourcesPromise.then(resources => {\n const opList = new OperatorList();\n opList.addOp(OPS.beginAnnotation, [\n data.id,\n data.rect,\n transform,\n matrix,\n isUsingOwnCanvas,\n ]);\n\n return evaluator\n .getOperatorList({\n stream: appearance,\n task,\n resources,\n operatorList: opList,\n fallbackFontDict: this._fallbackFontDict,\n })\n .then(() => {\n opList.addOp(OPS.endAnnotation, []);\n this.reset();\n return opList;\n });\n });\n }\n\n async save(evaluator, task, annotationStorage) {\n return null;\n }\n\n /**\n * Get field data for usage in JS sandbox.\n *\n * Field object is defined here:\n * https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/js_api_reference.pdf#page=16\n *\n * @public\n * @memberof Annotation\n * @returns {Object | null}\n */\n getFieldObject() {\n if (this.data.kidIds) {\n return {\n id: this.data.id,\n actions: this.data.actions,\n name: this.data.fieldName,\n strokeColor: this.data.borderColor,\n fillColor: this.data.backgroundColor,\n type: \"\",\n kidIds: this.data.kidIds,\n page: this.data.pageIndex,\n };\n }\n return null;\n }\n\n /**\n * Reset the annotation.\n *\n * This involves resetting the various streams that are either cached on the\n * annotation instance or created during its construction.\n *\n * @public\n * @memberof Annotation\n */\n reset() {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n this.appearance &&\n !this._streams.includes(this.appearance)\n ) {\n unreachable(\"The appearance stream should always be reset.\");\n }\n\n for (const stream of this._streams) {\n stream.reset();\n }\n }\n\n /**\n * Construct the (fully qualified) field name from the (partial) field\n * names of the field and its ancestors.\n *\n * @private\n * @memberof Annotation\n * @param {Dict} dict - Complete widget annotation dictionary\n * @returns {string}\n */\n _constructFieldName(dict) {\n // Both the `Parent` and `T` fields are optional. While at least one of\n // them should be provided, bad PDF generators may fail to do so.\n if (!dict.has(\"T\") && !dict.has(\"Parent\")) {\n warn(\"Unknown field name, falling back to empty field name.\");\n return \"\";\n }\n\n // If no parent exists, the partial and fully qualified names are equal.\n if (!dict.has(\"Parent\")) {\n return stringToPDFString(dict.get(\"T\"));\n }\n\n // Form the fully qualified field name by appending the partial name to\n // the parent's fully qualified name, separated by a period.\n const fieldName = [];\n if (dict.has(\"T\")) {\n fieldName.unshift(stringToPDFString(dict.get(\"T\")));\n }\n\n let loopDict = dict;\n const visited = new RefSet();\n if (dict.objId) {\n visited.put(dict.objId);\n }\n while (loopDict.has(\"Parent\")) {\n loopDict = loopDict.get(\"Parent\");\n if (\n !(loopDict instanceof Dict) ||\n (loopDict.objId && visited.has(loopDict.objId))\n ) {\n // Even though it is not allowed according to the PDF specification,\n // bad PDF generators may provide a `Parent` entry that is not a\n // dictionary, but `null` for example (issue 8143).\n //\n // If parent has been already visited, it means that we're\n // in an infinite loop.\n break;\n }\n if (loopDict.objId) {\n visited.put(loopDict.objId);\n }\n\n if (loopDict.has(\"T\")) {\n fieldName.unshift(stringToPDFString(loopDict.get(\"T\")));\n }\n }\n return fieldName.join(\".\");\n }\n}\n\n/**\n * Contains all data regarding an annotation's border style.\n */\nclass AnnotationBorderStyle {\n constructor() {\n this.width = 1;\n this.style = AnnotationBorderStyleType.SOLID;\n this.dashArray = [3];\n this.horizontalCornerRadius = 0;\n this.verticalCornerRadius = 0;\n }\n\n /**\n * Set the width.\n *\n * @public\n * @memberof AnnotationBorderStyle\n * @param {number} width - The width.\n * @param {Array} rect - The annotation `Rect` entry.\n */\n setWidth(width, rect = [0, 0, 0, 0]) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n Array.isArray(rect) && rect.length === 4,\n \"A valid `rect` parameter must be provided.\"\n );\n }\n\n // Some corrupt PDF generators may provide the width as a `Name`,\n // rather than as a number (fixes issue 10385).\n if (width instanceof Name) {\n this.width = 0; // This is consistent with the behaviour in Adobe Reader.\n return;\n }\n if (typeof width === \"number\") {\n if (width > 0) {\n const maxWidth = (rect[2] - rect[0]) / 2;\n const maxHeight = (rect[3] - rect[1]) / 2;\n\n // Ignore large `width`s, since they lead to the Annotation overflowing\n // the size set by the `Rect` entry thus causing the `annotationLayer`\n // to render it over the surrounding document (fixes bug1552113.pdf).\n if (\n maxWidth > 0 &&\n maxHeight > 0 &&\n (width > maxWidth || width > maxHeight)\n ) {\n warn(`AnnotationBorderStyle.setWidth - ignoring width: ${width}`);\n width = 1;\n }\n }\n this.width = width;\n }\n }\n\n /**\n * Set the style.\n *\n * @public\n * @memberof AnnotationBorderStyle\n * @param {Name} style - The annotation style.\n * @see {@link shared/util.js}\n */\n setStyle(style) {\n if (!(style instanceof Name)) {\n return;\n }\n switch (style.name) {\n case \"S\":\n this.style = AnnotationBorderStyleType.SOLID;\n break;\n\n case \"D\":\n this.style = AnnotationBorderStyleType.DASHED;\n break;\n\n case \"B\":\n this.style = AnnotationBorderStyleType.BEVELED;\n break;\n\n case \"I\":\n this.style = AnnotationBorderStyleType.INSET;\n break;\n\n case \"U\":\n this.style = AnnotationBorderStyleType.UNDERLINE;\n break;\n\n default:\n break;\n }\n }\n\n /**\n * Set the dash array.\n *\n * @public\n * @memberof AnnotationBorderStyle\n * @param {Array} dashArray - The dash array with at least one element\n * @param {boolean} [forceStyle]\n */\n setDashArray(dashArray, forceStyle = false) {\n // We validate the dash array, but we do not use it because CSS does not\n // allow us to change spacing of dashes. For more information, visit\n // http://www.w3.org/TR/css3-background/#the-border-style.\n if (Array.isArray(dashArray) && dashArray.length > 0) {\n // According to the PDF specification: the elements in `dashArray`\n // shall be numbers that are nonnegative and not all equal to zero.\n let isValid = true;\n let allZeros = true;\n for (const element of dashArray) {\n const validNumber = +element >= 0;\n if (!validNumber) {\n isValid = false;\n break;\n } else if (element > 0) {\n allZeros = false;\n }\n }\n if (isValid && !allZeros) {\n this.dashArray = dashArray;\n\n if (forceStyle) {\n // Even though we cannot use the dash array in the display layer,\n // at least ensure that we use the correct border-style.\n this.setStyle(Name.get(\"D\"));\n }\n } else {\n this.width = 0; // Adobe behavior when the array is invalid.\n }\n } else if (dashArray) {\n this.width = 0; // Adobe behavior when the array is invalid.\n }\n }\n\n /**\n * Set the horizontal corner radius (from a Border dictionary).\n *\n * @public\n * @memberof AnnotationBorderStyle\n * @param {number} radius - The horizontal corner radius.\n */\n setHorizontalCornerRadius(radius) {\n if (Number.isInteger(radius)) {\n this.horizontalCornerRadius = radius;\n }\n }\n\n /**\n * Set the vertical corner radius (from a Border dictionary).\n *\n * @public\n * @memberof AnnotationBorderStyle\n * @param {number} radius - The vertical corner radius.\n */\n setVerticalCornerRadius(radius) {\n if (Number.isInteger(radius)) {\n this.verticalCornerRadius = radius;\n }\n }\n}\n\nclass MarkupAnnotation extends Annotation {\n constructor(parameters) {\n super(parameters);\n\n const dict = parameters.dict;\n\n if (dict.has(\"IRT\")) {\n const rawIRT = dict.getRaw(\"IRT\");\n this.data.inReplyTo = rawIRT instanceof Ref ? rawIRT.toString() : null;\n\n const rt = dict.get(\"RT\");\n this.data.replyType =\n rt instanceof Name ? rt.name : AnnotationReplyType.REPLY;\n }\n\n if (this.data.replyType === AnnotationReplyType.GROUP) {\n // Subordinate annotations in a group should inherit\n // the group attributes from the primary annotation.\n const parent = dict.get(\"IRT\");\n\n this.setTitle(parent.get(\"T\"));\n this.data.titleObj = this._title;\n\n this.setContents(parent.get(\"Contents\"));\n this.data.contentsObj = this._contents;\n\n if (!parent.has(\"CreationDate\")) {\n this.data.creationDate = null;\n } else {\n this.setCreationDate(parent.get(\"CreationDate\"));\n this.data.creationDate = this.creationDate;\n }\n\n if (!parent.has(\"M\")) {\n this.data.modificationDate = null;\n } else {\n this.setModificationDate(parent.get(\"M\"));\n this.data.modificationDate = this.modificationDate;\n }\n\n this.data.hasPopup = parent.has(\"Popup\");\n\n if (!parent.has(\"C\")) {\n // Fall back to the default background color.\n this.data.color = null;\n } else {\n this.setColor(parent.getArray(\"C\"));\n this.data.color = this.color;\n }\n } else {\n this.data.titleObj = this._title;\n\n this.setCreationDate(dict.get(\"CreationDate\"));\n this.data.creationDate = this.creationDate;\n\n this.data.hasPopup = dict.has(\"Popup\");\n\n if (!dict.has(\"C\")) {\n // Fall back to the default background color.\n this.data.color = null;\n }\n }\n\n if (dict.has(\"RC\")) {\n this.data.richText = XFAFactory.getRichTextAsHtml(dict.get(\"RC\"));\n }\n }\n\n /**\n * Set the creation date.\n *\n * @public\n * @memberof MarkupAnnotation\n * @param {string} creationDate - PDF date string that indicates when the\n * annotation was originally created\n */\n setCreationDate(creationDate) {\n this.creationDate = typeof creationDate === \"string\" ? creationDate : null;\n }\n\n _setDefaultAppearance({\n xref,\n extra,\n strokeColor,\n fillColor,\n blendMode,\n strokeAlpha,\n fillAlpha,\n pointsCallback,\n }) {\n let minX = Number.MAX_VALUE;\n let minY = Number.MAX_VALUE;\n let maxX = Number.MIN_VALUE;\n let maxY = Number.MIN_VALUE;\n\n const buffer = [\"q\"];\n if (extra) {\n buffer.push(extra);\n }\n if (strokeColor) {\n buffer.push(`${strokeColor[0]} ${strokeColor[1]} ${strokeColor[2]} RG`);\n }\n if (fillColor) {\n buffer.push(`${fillColor[0]} ${fillColor[1]} ${fillColor[2]} rg`);\n }\n\n let pointsArray = this.data.quadPoints;\n if (!pointsArray) {\n // If there are no quadpoints, the rectangle should be used instead.\n // Convert the rectangle definition to a points array similar to how the\n // quadpoints are defined.\n pointsArray = [\n [\n { x: this.rectangle[0], y: this.rectangle[3] },\n { x: this.rectangle[2], y: this.rectangle[3] },\n { x: this.rectangle[0], y: this.rectangle[1] },\n { x: this.rectangle[2], y: this.rectangle[1] },\n ],\n ];\n }\n\n for (const points of pointsArray) {\n const [mX, MX, mY, MY] = pointsCallback(buffer, points);\n minX = Math.min(minX, mX);\n maxX = Math.max(maxX, MX);\n minY = Math.min(minY, mY);\n maxY = Math.max(maxY, MY);\n }\n buffer.push(\"Q\");\n\n const formDict = new Dict(xref);\n const appearanceStreamDict = new Dict(xref);\n appearanceStreamDict.set(\"Subtype\", Name.get(\"Form\"));\n\n const appearanceStream = new StringStream(buffer.join(\" \"));\n appearanceStream.dict = appearanceStreamDict;\n formDict.set(\"Fm0\", appearanceStream);\n\n const gsDict = new Dict(xref);\n if (blendMode) {\n gsDict.set(\"BM\", Name.get(blendMode));\n }\n if (typeof strokeAlpha === \"number\") {\n gsDict.set(\"CA\", strokeAlpha);\n }\n if (typeof fillAlpha === \"number\") {\n gsDict.set(\"ca\", fillAlpha);\n }\n\n const stateDict = new Dict(xref);\n stateDict.set(\"GS0\", gsDict);\n\n const resources = new Dict(xref);\n resources.set(\"ExtGState\", stateDict);\n resources.set(\"XObject\", formDict);\n\n const appearanceDict = new Dict(xref);\n appearanceDict.set(\"Resources\", resources);\n const bbox = (this.data.rect = [minX, minY, maxX, maxY]);\n appearanceDict.set(\"BBox\", bbox);\n\n this.appearance = new StringStream(\"/GS0 gs /Fm0 Do\");\n this.appearance.dict = appearanceDict;\n\n // This method is only called if there is no appearance for the annotation,\n // so `this.appearance` is not pushed yet in the `Annotation` constructor.\n this._streams.push(this.appearance, appearanceStream);\n }\n}\n\nclass WidgetAnnotation extends Annotation {\n constructor(params) {\n super(params);\n\n const dict = params.dict;\n const data = this.data;\n this.ref = params.ref;\n\n data.annotationType = AnnotationType.WIDGET;\n if (data.fieldName === undefined) {\n data.fieldName = this._constructFieldName(dict);\n }\n if (data.actions === undefined) {\n data.actions = collectActions(\n params.xref,\n dict,\n AnnotationActionEventType\n );\n }\n\n let fieldValue = getInheritableProperty({\n dict,\n key: \"V\",\n getArray: true,\n });\n data.fieldValue = this._decodeFormValue(fieldValue);\n\n const defaultFieldValue = getInheritableProperty({\n dict,\n key: \"DV\",\n getArray: true,\n });\n data.defaultFieldValue = this._decodeFormValue(defaultFieldValue);\n\n if (fieldValue === undefined && params.xfaDatasets) {\n // Try to figure out if we have something in the xfa dataset.\n const path = this._title.str;\n if (path) {\n this._hasValueFromXFA = true;\n data.fieldValue = fieldValue = params.xfaDatasets.getValue(path);\n }\n }\n\n // When no \"V\" entry exists, let the fieldValue fallback to the \"DV\" entry\n // (fixes issue13823.pdf).\n if (fieldValue === undefined && data.defaultFieldValue !== null) {\n data.fieldValue = data.defaultFieldValue;\n }\n\n data.alternativeText = stringToPDFString(dict.get(\"TU\") || \"\");\n\n const defaultAppearance =\n getInheritableProperty({ dict, key: \"DA\" }) || params.acroForm.get(\"DA\");\n this._defaultAppearance =\n typeof defaultAppearance === \"string\" ? defaultAppearance : \"\";\n data.defaultAppearanceData = parseDefaultAppearance(\n this._defaultAppearance\n );\n\n const fieldType = getInheritableProperty({ dict, key: \"FT\" });\n data.fieldType = fieldType instanceof Name ? fieldType.name : null;\n\n const localResources = getInheritableProperty({ dict, key: \"DR\" });\n const acroFormResources = params.acroForm.get(\"DR\");\n const appearanceResources =\n this.appearance && this.appearance.dict.get(\"Resources\");\n\n this._fieldResources = {\n localResources,\n acroFormResources,\n appearanceResources,\n mergedResources: Dict.merge({\n xref: params.xref,\n dictArray: [localResources, appearanceResources, acroFormResources],\n mergeSubDicts: true,\n }),\n };\n\n data.fieldFlags = getInheritableProperty({ dict, key: \"Ff\" });\n if (!Number.isInteger(data.fieldFlags) || data.fieldFlags < 0) {\n data.fieldFlags = 0;\n }\n\n data.readOnly = this.hasFieldFlag(AnnotationFieldFlag.READONLY);\n data.hidden = this._hasFlag(data.annotationFlags, AnnotationFlag.HIDDEN);\n }\n\n /**\n * Decode the given form value.\n *\n * @private\n * @memberof WidgetAnnotation\n * @param {Array|Name|string} formValue - The (possibly encoded)\n * form value.\n * @returns {Array|string|null}\n */\n _decodeFormValue(formValue) {\n if (Array.isArray(formValue)) {\n return formValue\n .filter(item => typeof item === \"string\")\n .map(item => stringToPDFString(item));\n } else if (formValue instanceof Name) {\n return stringToPDFString(formValue.name);\n } else if (typeof formValue === \"string\") {\n return stringToPDFString(formValue);\n }\n return null;\n }\n\n /**\n * Check if a provided field flag is set.\n *\n * @public\n * @memberof WidgetAnnotation\n * @param {number} flag - Hexadecimal representation for an annotation\n * field characteristic\n * @returns {boolean}\n * @see {@link shared/util.js}\n */\n hasFieldFlag(flag) {\n return !!(this.data.fieldFlags & flag);\n }\n\n getOperatorList(evaluator, task, intent, renderForms, annotationStorage) {\n // Do not render form elements on the canvas when interactive forms are\n // enabled. The display layer is responsible for rendering them instead.\n if (renderForms && !(this instanceof SignatureWidgetAnnotation)) {\n return Promise.resolve(new OperatorList());\n }\n\n if (!this._hasText) {\n return super.getOperatorList(\n evaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n );\n }\n\n return this._getAppearance(evaluator, task, annotationStorage).then(\n content => {\n if (this.appearance && content === null) {\n return super.getOperatorList(\n evaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n );\n }\n\n const operatorList = new OperatorList();\n\n // Even if there is an appearance stream, ignore it. This is the\n // behaviour used by Adobe Reader.\n if (!this._defaultAppearance || content === null) {\n return operatorList;\n }\n\n const matrix = [1, 0, 0, 1, 0, 0];\n const bbox = [\n 0,\n 0,\n this.data.rect[2] - this.data.rect[0],\n this.data.rect[3] - this.data.rect[1],\n ];\n\n const transform = getTransformMatrix(this.data.rect, bbox, matrix);\n operatorList.addOp(OPS.beginAnnotation, [\n this.data.id,\n this.data.rect,\n transform,\n matrix,\n ]);\n\n const stream = new StringStream(content);\n return evaluator\n .getOperatorList({\n stream,\n task,\n resources: this._fieldResources.mergedResources,\n operatorList,\n })\n .then(function () {\n operatorList.addOp(OPS.endAnnotation, []);\n return operatorList;\n });\n }\n );\n }\n\n async save(evaluator, task, annotationStorage) {\n const storageEntry = annotationStorage\n ? annotationStorage.get(this.data.id)\n : undefined;\n let value = storageEntry && storageEntry.value;\n if (value === this.data.fieldValue || value === undefined) {\n if (!this._hasValueFromXFA) {\n return null;\n }\n value = value || this.data.fieldValue;\n }\n\n // Value can be an array (with choice list and multiple selections)\n if (\n !this._hasValueFromXFA &&\n Array.isArray(value) &&\n Array.isArray(this.data.fieldValue) &&\n value.length === this.data.fieldValue.length &&\n value.every((x, i) => x === this.data.fieldValue[i])\n ) {\n return null;\n }\n\n let appearance = await this._getAppearance(\n evaluator,\n task,\n annotationStorage\n );\n if (appearance === null) {\n return null;\n }\n const { xref } = evaluator;\n\n const dict = xref.fetchIfRef(this.ref);\n if (!(dict instanceof Dict)) {\n return null;\n }\n\n const bbox = [\n 0,\n 0,\n this.data.rect[2] - this.data.rect[0],\n this.data.rect[3] - this.data.rect[1],\n ];\n\n const xfa = {\n path: stringToPDFString(dict.get(\"T\") || \"\"),\n value,\n };\n\n const newRef = xref.getNewRef();\n const AP = new Dict(xref);\n AP.set(\"N\", newRef);\n\n const encrypt = xref.encrypt;\n let originalTransform = null;\n let newTransform = null;\n if (encrypt) {\n originalTransform = encrypt.createCipherTransform(\n this.ref.num,\n this.ref.gen\n );\n newTransform = encrypt.createCipherTransform(newRef.num, newRef.gen);\n appearance = newTransform.encryptString(appearance);\n }\n\n const encoder = val => (isAscii(val) ? val : stringToUTF16BEString(val));\n dict.set(\"V\", Array.isArray(value) ? value.map(encoder) : encoder(value));\n dict.set(\"AP\", AP);\n dict.set(\"M\", `D:${getModificationDate()}`);\n\n const appearanceDict = new Dict(xref);\n appearanceDict.set(\"Length\", appearance.length);\n appearanceDict.set(\"Subtype\", Name.get(\"Form\"));\n appearanceDict.set(\"Resources\", this._getSaveFieldResources(xref));\n appearanceDict.set(\"BBox\", bbox);\n\n const bufferOriginal = [`${this.ref.num} ${this.ref.gen} obj\\n`];\n writeDict(dict, bufferOriginal, originalTransform);\n bufferOriginal.push(\"\\nendobj\\n\");\n\n const bufferNew = [`${newRef.num} ${newRef.gen} obj\\n`];\n writeDict(appearanceDict, bufferNew, newTransform);\n bufferNew.push(\" stream\\n\", appearance, \"\\nendstream\\nendobj\\n\");\n\n return [\n // data for the original object\n // V field changed + reference for new AP\n { ref: this.ref, data: bufferOriginal.join(\"\"), xfa },\n // data for the new AP\n { ref: newRef, data: bufferNew.join(\"\"), xfa: null },\n ];\n }\n\n async _getAppearance(evaluator, task, annotationStorage) {\n const isPassword = this.hasFieldFlag(AnnotationFieldFlag.PASSWORD);\n if (isPassword) {\n return null;\n }\n const storageEntry = annotationStorage\n ? annotationStorage.get(this.data.id)\n : undefined;\n let value =\n storageEntry && (storageEntry.formattedValue || storageEntry.value);\n if (value === undefined) {\n if (!this._hasValueFromXFA || this.appearance) {\n // The annotation hasn't been rendered so use the appearance.\n return null;\n }\n // The annotation has its value in XFA datasets but not in the V field.\n value = this.data.fieldValue;\n if (!value) {\n return \"\";\n }\n }\n\n assert(typeof value === \"string\", \"Expected `value` to be a string.\");\n\n value = value.trim();\n\n if (value === \"\") {\n // the field is empty: nothing to render\n return \"\";\n }\n\n let lineCount = -1;\n if (this.data.multiLine) {\n lineCount = value.split(/\\r\\n|\\r|\\n/).length;\n }\n\n const defaultPadding = 2;\n const hPadding = defaultPadding;\n const totalHeight = this.data.rect[3] - this.data.rect[1];\n const totalWidth = this.data.rect[2] - this.data.rect[0];\n\n if (!this._defaultAppearance) {\n // The DA is required and must be a string.\n // If there is no font named Helvetica in the resource dictionary,\n // the evaluator will fall back to a default font.\n // Doing so prevents exceptions and allows saving/printing\n // the file as expected.\n this.data.defaultAppearanceData = parseDefaultAppearance(\n (this._defaultAppearance = \"/Helvetica 0 Tf 0 g\")\n );\n }\n\n const font = await this._getFontData(evaluator, task);\n const [defaultAppearance, fontSize] = this._computeFontSize(\n totalHeight - defaultPadding,\n totalWidth - 2 * hPadding,\n value,\n font,\n lineCount\n );\n\n let descent = font.descent;\n if (isNaN(descent)) {\n descent = 0;\n }\n\n const vPadding = defaultPadding + Math.abs(descent) * fontSize;\n const alignment = this.data.textAlignment;\n\n if (this.data.multiLine) {\n return this._getMultilineAppearance(\n defaultAppearance,\n value,\n font,\n fontSize,\n totalWidth,\n totalHeight,\n alignment,\n hPadding,\n vPadding\n );\n }\n\n // TODO: need to handle chars which are not in the font.\n const encodedString = font.encodeString(value).join(\"\");\n\n if (this.data.comb) {\n return this._getCombAppearance(\n defaultAppearance,\n font,\n encodedString,\n totalWidth,\n hPadding,\n vPadding\n );\n }\n\n if (alignment === 0 || alignment > 2) {\n // Left alignment: nothing to do\n return (\n \"/Tx BMC q BT \" +\n defaultAppearance +\n ` 1 0 0 1 ${hPadding} ${vPadding} Tm (${escapeString(\n encodedString\n )}) Tj` +\n \" ET Q EMC\"\n );\n }\n\n const renderedText = this._renderText(\n encodedString,\n font,\n fontSize,\n totalWidth,\n alignment,\n hPadding,\n vPadding\n );\n return (\n \"/Tx BMC q BT \" +\n defaultAppearance +\n ` 1 0 0 1 0 0 Tm ${renderedText}` +\n \" ET Q EMC\"\n );\n }\n\n async _getFontData(evaluator, task) {\n const operatorList = new OperatorList();\n const initialState = {\n font: null,\n clone() {\n return this;\n },\n };\n\n const { fontName, fontSize } = this.data.defaultAppearanceData;\n await evaluator.handleSetFont(\n this._fieldResources.mergedResources,\n [fontName && Name.get(fontName), fontSize],\n /* fontRef = */ null,\n operatorList,\n task,\n initialState,\n /* fallbackFontDict = */ null\n );\n\n return initialState.font;\n }\n\n _getTextWidth(text, font) {\n return (\n font\n .charsToGlyphs(text)\n .reduce((width, glyph) => width + glyph.width, 0) / 1000\n );\n }\n\n _computeFontSize(height, width, text, font, lineCount) {\n let { fontSize } = this.data.defaultAppearanceData;\n if (!fontSize) {\n // A zero value for size means that the font shall be auto-sized:\n // its size shall be computed as a function of the height of the\n // annotation rectangle (see 12.7.3.3).\n\n const roundWithTwoDigits = x => Math.floor(x * 100) / 100;\n\n if (lineCount === -1) {\n const textWidth = this._getTextWidth(text, font);\n fontSize = roundWithTwoDigits(\n Math.min(height / LINE_FACTOR, width / textWidth)\n );\n } else {\n const lines = text.split(/\\r\\n?|\\n/);\n const cachedLines = [];\n for (const line of lines) {\n const encoded = font.encodeString(line).join(\"\");\n const glyphs = font.charsToGlyphs(encoded);\n const positions = font.getCharPositions(encoded);\n cachedLines.push({\n line: encoded,\n glyphs,\n positions,\n });\n }\n\n const isTooBig = fsize => {\n // Return true when the text doesn't fit the given height.\n let totalHeight = 0;\n for (const cache of cachedLines) {\n const chunks = this._splitLine(null, font, fsize, width, cache);\n totalHeight += chunks.length * fsize;\n if (totalHeight > height) {\n return true;\n }\n }\n return false;\n };\n\n // Hard to guess how many lines there are.\n // The field may have been sized to have 10 lines\n // and the user entered only 1 so if we get font size from\n // height and number of lines then we'll get something too big.\n // So we compute a fake number of lines based on height and\n // a font size equal to 12 (this is the default font size in\n // Acrobat).\n // Then we'll adjust font size to what we have really.\n fontSize = 12;\n let lineHeight = fontSize * LINE_FACTOR;\n let numberOfLines = Math.round(height / lineHeight);\n numberOfLines = Math.max(numberOfLines, lineCount);\n\n while (true) {\n lineHeight = height / numberOfLines;\n fontSize = roundWithTwoDigits(lineHeight / LINE_FACTOR);\n\n if (isTooBig(fontSize)) {\n numberOfLines++;\n continue;\n }\n\n break;\n }\n }\n\n const { fontName, fontColor } = this.data.defaultAppearanceData;\n this._defaultAppearance = createDefaultAppearance({\n fontSize,\n fontName,\n fontColor,\n });\n }\n return [this._defaultAppearance, fontSize];\n }\n\n _renderText(text, font, fontSize, totalWidth, alignment, hPadding, vPadding) {\n let shift;\n if (alignment === 1) {\n // Center\n const width = this._getTextWidth(text, font) * fontSize;\n shift = (totalWidth - width) / 2;\n } else if (alignment === 2) {\n // Right\n const width = this._getTextWidth(text, font) * fontSize;\n shift = totalWidth - width - hPadding;\n } else {\n shift = hPadding;\n }\n shift = shift.toFixed(2);\n vPadding = vPadding.toFixed(2);\n\n return `${shift} ${vPadding} Td (${escapeString(text)}) Tj`;\n }\n\n /**\n * @private\n */\n _getSaveFieldResources(xref) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n this.data.defaultAppearanceData,\n \"Expected `_defaultAppearanceData` to have been set.\"\n );\n }\n const { localResources, appearanceResources, acroFormResources } =\n this._fieldResources;\n\n const fontName =\n this.data.defaultAppearanceData &&\n this.data.defaultAppearanceData.fontName;\n if (!fontName) {\n return localResources || Dict.empty;\n }\n\n for (const resources of [localResources, appearanceResources]) {\n if (resources instanceof Dict) {\n const localFont = resources.get(\"Font\");\n if (localFont instanceof Dict && localFont.has(fontName)) {\n return resources;\n }\n }\n }\n if (acroFormResources instanceof Dict) {\n const acroFormFont = acroFormResources.get(\"Font\");\n if (acroFormFont instanceof Dict && acroFormFont.has(fontName)) {\n const subFontDict = new Dict(xref);\n subFontDict.set(fontName, acroFormFont.getRaw(fontName));\n\n const subResourcesDict = new Dict(xref);\n subResourcesDict.set(\"Font\", subFontDict);\n\n return Dict.merge({\n xref,\n dictArray: [subResourcesDict, localResources],\n mergeSubDicts: true,\n });\n }\n }\n return localResources || Dict.empty;\n }\n\n getFieldObject() {\n return null;\n }\n}\n\nclass TextWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n\n this._hasText = true;\n\n const dict = params.dict;\n\n // The field value is always a string.\n if (typeof this.data.fieldValue !== \"string\") {\n this.data.fieldValue = \"\";\n }\n\n // Determine the alignment of text in the field.\n let alignment = getInheritableProperty({ dict, key: \"Q\" });\n if (!Number.isInteger(alignment) || alignment < 0 || alignment > 2) {\n alignment = null;\n }\n this.data.textAlignment = alignment;\n\n // Determine the maximum length of text in the field.\n let maximumLength = getInheritableProperty({ dict, key: \"MaxLen\" });\n if (!Number.isInteger(maximumLength) || maximumLength < 0) {\n maximumLength = null;\n }\n this.data.maxLen = maximumLength;\n\n // Process field flags for the display layer.\n this.data.multiLine = this.hasFieldFlag(AnnotationFieldFlag.MULTILINE);\n this.data.comb =\n this.hasFieldFlag(AnnotationFieldFlag.COMB) &&\n !this.hasFieldFlag(AnnotationFieldFlag.MULTILINE) &&\n !this.hasFieldFlag(AnnotationFieldFlag.PASSWORD) &&\n !this.hasFieldFlag(AnnotationFieldFlag.FILESELECT) &&\n this.data.maxLen !== null;\n }\n\n _getCombAppearance(defaultAppearance, font, text, width, hPadding, vPadding) {\n const combWidth = (width / this.data.maxLen).toFixed(2);\n const buf = [];\n const positions = font.getCharPositions(text);\n for (const [start, end] of positions) {\n buf.push(`(${escapeString(text.substring(start, end))}) Tj`);\n }\n\n const renderedComb = buf.join(` ${combWidth} 0 Td `);\n return (\n \"/Tx BMC q BT \" +\n defaultAppearance +\n ` 1 0 0 1 ${hPadding} ${vPadding} Tm ${renderedComb}` +\n \" ET Q EMC\"\n );\n }\n\n _getMultilineAppearance(\n defaultAppearance,\n text,\n font,\n fontSize,\n width,\n height,\n alignment,\n hPadding,\n vPadding\n ) {\n const lines = text.split(/\\r\\n?|\\n/);\n const buf = [];\n const totalWidth = width - 2 * hPadding;\n for (const line of lines) {\n const chunks = this._splitLine(line, font, fontSize, totalWidth);\n for (const chunk of chunks) {\n const padding = buf.length === 0 ? hPadding : 0;\n buf.push(\n this._renderText(\n chunk,\n font,\n fontSize,\n width,\n alignment,\n padding,\n -fontSize // <0 because a line is below the previous one\n )\n );\n }\n }\n\n const renderedText = buf.join(\"\\n\");\n return (\n \"/Tx BMC q BT \" +\n defaultAppearance +\n ` 1 0 0 1 0 ${height} Tm ${renderedText}` +\n \" ET Q EMC\"\n );\n }\n\n _splitLine(line, font, fontSize, width, cache = {}) {\n // TODO: need to handle chars which are not in the font.\n line = cache.line || font.encodeString(line).join(\"\");\n\n const glyphs = cache.glyphs || font.charsToGlyphs(line);\n\n if (glyphs.length <= 1) {\n // Nothing to split\n return [line];\n }\n\n const positions = cache.positions || font.getCharPositions(line);\n const scale = fontSize / 1000;\n const chunks = [];\n\n let lastSpacePosInStringStart = -1,\n lastSpacePosInStringEnd = -1,\n lastSpacePos = -1,\n startChunk = 0,\n currentWidth = 0;\n\n for (let i = 0, ii = glyphs.length; i < ii; i++) {\n const [start, end] = positions[i];\n const glyph = glyphs[i];\n const glyphWidth = glyph.width * scale;\n if (glyph.unicode === \" \") {\n if (currentWidth + glyphWidth > width) {\n // We can break here\n chunks.push(line.substring(startChunk, start));\n startChunk = start;\n currentWidth = glyphWidth;\n lastSpacePosInStringStart = -1;\n lastSpacePos = -1;\n } else {\n currentWidth += glyphWidth;\n lastSpacePosInStringStart = start;\n lastSpacePosInStringEnd = end;\n lastSpacePos = i;\n }\n } else {\n if (currentWidth + glyphWidth > width) {\n // We must break to the last white position (if available)\n if (lastSpacePosInStringStart !== -1) {\n chunks.push(line.substring(startChunk, lastSpacePosInStringEnd));\n startChunk = lastSpacePosInStringEnd;\n i = lastSpacePos + 1;\n lastSpacePosInStringStart = -1;\n currentWidth = 0;\n } else {\n // Just break in the middle of the word\n chunks.push(line.substring(startChunk, start));\n startChunk = start;\n currentWidth = glyphWidth;\n }\n } else {\n currentWidth += glyphWidth;\n }\n }\n }\n\n if (startChunk < line.length) {\n chunks.push(line.substring(startChunk, line.length));\n }\n\n return chunks;\n }\n\n getFieldObject() {\n return {\n id: this.data.id,\n value: this.data.fieldValue,\n defaultValue: this.data.defaultFieldValue || \"\",\n multiline: this.data.multiLine,\n password: this.hasFieldFlag(AnnotationFieldFlag.PASSWORD),\n charLimit: this.data.maxLen,\n comb: this.data.comb,\n editable: !this.data.readOnly,\n hidden: this.data.hidden,\n name: this.data.fieldName,\n rect: this.data.rect,\n actions: this.data.actions,\n page: this.data.pageIndex,\n strokeColor: this.data.borderColor,\n fillColor: this.data.backgroundColor,\n type: \"text\",\n };\n }\n}\n\nclass ButtonWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n\n this.checkedAppearance = null;\n this.uncheckedAppearance = null;\n\n this.data.checkBox =\n !this.hasFieldFlag(AnnotationFieldFlag.RADIO) &&\n !this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON);\n this.data.radioButton =\n this.hasFieldFlag(AnnotationFieldFlag.RADIO) &&\n !this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON);\n this.data.pushButton = this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON);\n this.data.isTooltipOnly = false;\n\n if (this.data.checkBox) {\n this._processCheckBox(params);\n } else if (this.data.radioButton) {\n this._processRadioButton(params);\n } else if (this.data.pushButton) {\n this.data.hasOwnCanvas = true;\n this._processPushButton(params);\n } else {\n warn(\"Invalid field flags for button widget annotation\");\n }\n }\n\n async getOperatorList(\n evaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n ) {\n if (this.data.pushButton) {\n return super.getOperatorList(\n evaluator,\n task,\n intent,\n false, // we use normalAppearance to render the button\n annotationStorage\n );\n }\n\n let value = null;\n if (annotationStorage) {\n const storageEntry = annotationStorage.get(this.data.id);\n value = storageEntry ? storageEntry.value : null;\n }\n\n if (value === null) {\n // Nothing in the annotationStorage.\n if (this.appearance) {\n // But we've a default appearance so use it.\n return super.getOperatorList(\n evaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n );\n }\n\n // There is no default appearance so use the one derived\n // from the field value.\n if (this.data.checkBox) {\n value = this.data.fieldValue === this.data.exportValue;\n } else {\n value = this.data.fieldValue === this.data.buttonValue;\n }\n }\n\n const appearance = value\n ? this.checkedAppearance\n : this.uncheckedAppearance;\n if (appearance) {\n const savedAppearance = this.appearance;\n this.appearance = appearance;\n const operatorList = super.getOperatorList(\n evaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n );\n this.appearance = savedAppearance;\n return operatorList;\n }\n\n // No appearance\n return new OperatorList();\n }\n\n async save(evaluator, task, annotationStorage) {\n if (this.data.checkBox) {\n return this._saveCheckbox(evaluator, task, annotationStorage);\n }\n\n if (this.data.radioButton) {\n return this._saveRadioButton(evaluator, task, annotationStorage);\n }\n\n // Nothing to save\n return null;\n }\n\n async _saveCheckbox(evaluator, task, annotationStorage) {\n if (!annotationStorage) {\n return null;\n }\n const storageEntry = annotationStorage.get(this.data.id);\n const value = storageEntry && storageEntry.value;\n if (value === undefined) {\n return null;\n }\n\n const defaultValue = this.data.fieldValue === this.data.exportValue;\n if (defaultValue === value) {\n return null;\n }\n\n const dict = evaluator.xref.fetchIfRef(this.ref);\n if (!(dict instanceof Dict)) {\n return null;\n }\n\n const xfa = {\n path: stringToPDFString(dict.get(\"T\") || \"\"),\n value: value ? this.data.exportValue : \"\",\n };\n\n const name = Name.get(value ? this.data.exportValue : \"Off\");\n dict.set(\"V\", name);\n dict.set(\"AS\", name);\n dict.set(\"M\", `D:${getModificationDate()}`);\n\n const encrypt = evaluator.xref.encrypt;\n let originalTransform = null;\n if (encrypt) {\n originalTransform = encrypt.createCipherTransform(\n this.ref.num,\n this.ref.gen\n );\n }\n\n const buffer = [`${this.ref.num} ${this.ref.gen} obj\\n`];\n writeDict(dict, buffer, originalTransform);\n buffer.push(\"\\nendobj\\n\");\n\n return [{ ref: this.ref, data: buffer.join(\"\"), xfa }];\n }\n\n async _saveRadioButton(evaluator, task, annotationStorage) {\n if (!annotationStorage) {\n return null;\n }\n const storageEntry = annotationStorage.get(this.data.id);\n const value = storageEntry && storageEntry.value;\n if (value === undefined) {\n return null;\n }\n\n const defaultValue = this.data.fieldValue === this.data.buttonValue;\n if (defaultValue === value) {\n return null;\n }\n\n const dict = evaluator.xref.fetchIfRef(this.ref);\n if (!(dict instanceof Dict)) {\n return null;\n }\n\n const xfa = {\n path: stringToPDFString(dict.get(\"T\") || \"\"),\n value: value ? this.data.buttonValue : \"\",\n };\n\n const name = Name.get(value ? this.data.buttonValue : \"Off\");\n let parentBuffer = null;\n const encrypt = evaluator.xref.encrypt;\n\n if (value) {\n if (this.parent instanceof Ref) {\n const parent = evaluator.xref.fetch(this.parent);\n let parentTransform = null;\n if (encrypt) {\n parentTransform = encrypt.createCipherTransform(\n this.parent.num,\n this.parent.gen\n );\n }\n parent.set(\"V\", name);\n parentBuffer = [`${this.parent.num} ${this.parent.gen} obj\\n`];\n writeDict(parent, parentBuffer, parentTransform);\n parentBuffer.push(\"\\nendobj\\n\");\n } else if (this.parent instanceof Dict) {\n this.parent.set(\"V\", name);\n }\n }\n\n dict.set(\"AS\", name);\n dict.set(\"M\", `D:${getModificationDate()}`);\n\n let originalTransform = null;\n if (encrypt) {\n originalTransform = encrypt.createCipherTransform(\n this.ref.num,\n this.ref.gen\n );\n }\n\n const buffer = [`${this.ref.num} ${this.ref.gen} obj\\n`];\n writeDict(dict, buffer, originalTransform);\n buffer.push(\"\\nendobj\\n\");\n\n const newRefs = [{ ref: this.ref, data: buffer.join(\"\"), xfa }];\n if (parentBuffer !== null) {\n newRefs.push({\n ref: this.parent,\n data: parentBuffer.join(\"\"),\n xfa: null,\n });\n }\n\n return newRefs;\n }\n\n _getDefaultCheckedAppearance(params, type) {\n const width = this.data.rect[2] - this.data.rect[0];\n const height = this.data.rect[3] - this.data.rect[1];\n const bbox = [0, 0, width, height];\n\n // Ratio used to have a mark slightly smaller than the bbox.\n const FONT_RATIO = 0.8;\n const fontSize = Math.min(width, height) * FONT_RATIO;\n\n // Char Metrics\n // Widths came from widths for ZapfDingbats.\n // Heights are guessed with Fontforge and FoxitDingbats.pfb.\n let metrics, char;\n if (type === \"check\") {\n // Char 33 (2713 in unicode)\n metrics = {\n width: 0.755 * fontSize,\n height: 0.705 * fontSize,\n };\n char = \"\\x33\";\n } else if (type === \"disc\") {\n // Char 6C (25CF in unicode)\n metrics = {\n width: 0.791 * fontSize,\n height: 0.705 * fontSize,\n };\n char = \"\\x6C\";\n } else {\n unreachable(`_getDefaultCheckedAppearance - unsupported type: ${type}`);\n }\n\n // Values to center the glyph in the bbox.\n const xShift = (width - metrics.width) / 2;\n const yShift = (height - metrics.height) / 2;\n\n const appearance = `q BT /PdfJsZaDb ${fontSize} Tf 0 g ${xShift} ${yShift} Td (${char}) Tj ET Q`;\n\n const appearanceStreamDict = new Dict(params.xref);\n appearanceStreamDict.set(\"FormType\", 1);\n appearanceStreamDict.set(\"Subtype\", Name.get(\"Form\"));\n appearanceStreamDict.set(\"Type\", Name.get(\"XObject\"));\n appearanceStreamDict.set(\"BBox\", bbox);\n appearanceStreamDict.set(\"Matrix\", [1, 0, 0, 1, 0, 0]);\n appearanceStreamDict.set(\"Length\", appearance.length);\n\n const resources = new Dict(params.xref);\n const font = new Dict(params.xref);\n font.set(\"PdfJsZaDb\", this.fallbackFontDict);\n resources.set(\"Font\", font);\n\n appearanceStreamDict.set(\"Resources\", resources);\n\n this.checkedAppearance = new StringStream(appearance);\n this.checkedAppearance.dict = appearanceStreamDict;\n\n this._streams.push(this.checkedAppearance);\n }\n\n _processCheckBox(params) {\n const customAppearance = params.dict.get(\"AP\");\n if (!(customAppearance instanceof Dict)) {\n return;\n }\n\n const normalAppearance = customAppearance.get(\"N\");\n if (!(normalAppearance instanceof Dict)) {\n return;\n }\n\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=1722036.\n // If we've an AS and a V then take AS.\n const asValue = this._decodeFormValue(params.dict.get(\"AS\"));\n if (typeof asValue === \"string\") {\n this.data.fieldValue = asValue;\n }\n\n const yes =\n this.data.fieldValue !== null && this.data.fieldValue !== \"Off\"\n ? this.data.fieldValue\n : \"Yes\";\n\n const exportValues = normalAppearance.getKeys();\n if (exportValues.length === 0) {\n exportValues.push(\"Off\", yes);\n } else if (exportValues.length === 1) {\n if (exportValues[0] === \"Off\") {\n exportValues.push(yes);\n } else {\n exportValues.unshift(\"Off\");\n }\n } else if (exportValues.includes(yes)) {\n exportValues.length = 0;\n exportValues.push(\"Off\", yes);\n } else {\n const otherYes = exportValues.find(v => v !== \"Off\");\n exportValues.length = 0;\n exportValues.push(\"Off\", otherYes);\n }\n\n // Don't use a \"V\" entry pointing to a non-existent appearance state,\n // see e.g. bug1720411.pdf where it's an *empty* Name-instance.\n if (!exportValues.includes(this.data.fieldValue)) {\n this.data.fieldValue = \"Off\";\n }\n\n this.data.exportValue = exportValues[1];\n\n this.checkedAppearance =\n normalAppearance.get(this.data.exportValue) || null;\n this.uncheckedAppearance = normalAppearance.get(\"Off\") || null;\n\n if (this.checkedAppearance) {\n this._streams.push(this.checkedAppearance);\n } else {\n this._getDefaultCheckedAppearance(params, \"check\");\n }\n if (this.uncheckedAppearance) {\n this._streams.push(this.uncheckedAppearance);\n }\n this._fallbackFontDict = this.fallbackFontDict;\n }\n\n _processRadioButton(params) {\n this.data.fieldValue = this.data.buttonValue = null;\n\n // The parent field's `V` entry holds a `Name` object with the appearance\n // state of whichever child field is currently in the \"on\" state.\n const fieldParent = params.dict.get(\"Parent\");\n if (fieldParent instanceof Dict) {\n this.parent = params.dict.getRaw(\"Parent\");\n const fieldParentValue = fieldParent.get(\"V\");\n if (fieldParentValue instanceof Name) {\n this.data.fieldValue = this._decodeFormValue(fieldParentValue);\n }\n }\n\n // The button's value corresponds to its appearance state.\n const appearanceStates = params.dict.get(\"AP\");\n if (!(appearanceStates instanceof Dict)) {\n return;\n }\n const normalAppearance = appearanceStates.get(\"N\");\n if (!(normalAppearance instanceof Dict)) {\n return;\n }\n for (const key of normalAppearance.getKeys()) {\n if (key !== \"Off\") {\n this.data.buttonValue = this._decodeFormValue(key);\n break;\n }\n }\n\n this.checkedAppearance =\n normalAppearance.get(this.data.buttonValue) || null;\n this.uncheckedAppearance = normalAppearance.get(\"Off\") || null;\n\n if (this.checkedAppearance) {\n this._streams.push(this.checkedAppearance);\n } else {\n this._getDefaultCheckedAppearance(params, \"disc\");\n }\n if (this.uncheckedAppearance) {\n this._streams.push(this.uncheckedAppearance);\n }\n this._fallbackFontDict = this.fallbackFontDict;\n }\n\n _processPushButton(params) {\n if (\n !params.dict.has(\"A\") &&\n !params.dict.has(\"AA\") &&\n !this.data.alternativeText\n ) {\n warn(\"Push buttons without action dictionaries are not supported\");\n return;\n }\n\n this.data.isTooltipOnly = !params.dict.has(\"A\") && !params.dict.has(\"AA\");\n\n Catalog.parseDestDictionary({\n destDict: params.dict,\n resultObj: this.data,\n docBaseUrl: params.pdfManager.docBaseUrl,\n });\n }\n\n getFieldObject() {\n let type = \"button\";\n let exportValues;\n if (this.data.checkBox) {\n type = \"checkbox\";\n exportValues = this.data.exportValue;\n } else if (this.data.radioButton) {\n type = \"radiobutton\";\n exportValues = this.data.buttonValue;\n }\n return {\n id: this.data.id,\n value: this.data.fieldValue || \"Off\",\n defaultValue: this.data.defaultFieldValue,\n exportValues,\n editable: !this.data.readOnly,\n name: this.data.fieldName,\n rect: this.data.rect,\n hidden: this.data.hidden,\n actions: this.data.actions,\n page: this.data.pageIndex,\n strokeColor: this.data.borderColor,\n fillColor: this.data.backgroundColor,\n type,\n };\n }\n\n get fallbackFontDict() {\n const dict = new Dict();\n dict.set(\"BaseFont\", Name.get(\"ZapfDingbats\"));\n dict.set(\"Type\", Name.get(\"FallbackType\"));\n dict.set(\"Subtype\", Name.get(\"FallbackType\"));\n dict.set(\"Encoding\", Name.get(\"ZapfDingbatsEncoding\"));\n\n return shadow(this, \"fallbackFontDict\", dict);\n }\n}\n\nclass ChoiceWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n\n // Determine the options. The options array may consist of strings or\n // arrays. If the array consists of arrays, then the first element of\n // each array is the export value and the second element of each array is\n // the display value. If the array consists of strings, then these\n // represent both the export and display value. In this case, we convert\n // it to an array of arrays as well for convenience in the display layer.\n // Note that the specification does not state that the `Opt` field is\n // inheritable, but in practice PDF generators do make annotations\n // inherit the options from a parent annotation (issue 8094).\n this.data.options = [];\n\n const options = getInheritableProperty({ dict: params.dict, key: \"Opt\" });\n if (Array.isArray(options)) {\n const xref = params.xref;\n for (let i = 0, ii = options.length; i < ii; i++) {\n const option = xref.fetchIfRef(options[i]);\n const isOptionArray = Array.isArray(option);\n\n this.data.options[i] = {\n exportValue: this._decodeFormValue(\n isOptionArray ? xref.fetchIfRef(option[0]) : option\n ),\n displayValue: this._decodeFormValue(\n isOptionArray ? xref.fetchIfRef(option[1]) : option\n ),\n };\n }\n }\n\n // The field value can be `null` if no item is selected, a string if one\n // item is selected or an array of strings if multiple items are selected.\n // For consistency in the API and convenience in the display layer, we\n // always make the field value an array with zero, one or multiple items.\n if (typeof this.data.fieldValue === \"string\") {\n this.data.fieldValue = [this.data.fieldValue];\n } else if (!this.data.fieldValue) {\n this.data.fieldValue = [];\n }\n\n // Process field flags for the display layer.\n this.data.combo = this.hasFieldFlag(AnnotationFieldFlag.COMBO);\n this.data.multiSelect = this.hasFieldFlag(AnnotationFieldFlag.MULTISELECT);\n this._hasText = true;\n }\n\n getFieldObject() {\n const type = this.data.combo ? \"combobox\" : \"listbox\";\n const value =\n this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : null;\n return {\n id: this.data.id,\n value,\n defaultValue: this.data.defaultFieldValue,\n editable: !this.data.readOnly,\n name: this.data.fieldName,\n rect: this.data.rect,\n numItems: this.data.fieldValue.length,\n multipleSelection: this.data.multiSelect,\n hidden: this.data.hidden,\n actions: this.data.actions,\n items: this.data.options,\n page: this.data.pageIndex,\n strokeColor: this.data.borderColor,\n fillColor: this.data.backgroundColor,\n type,\n };\n }\n\n async _getAppearance(evaluator, task, annotationStorage) {\n if (this.data.combo) {\n return super._getAppearance(evaluator, task, annotationStorage);\n }\n\n if (!annotationStorage) {\n return null;\n }\n const storageEntry = annotationStorage.get(this.data.id);\n let exportedValue = storageEntry && storageEntry.value;\n if (exportedValue === undefined) {\n // The annotation hasn't been rendered so use the appearance\n return null;\n }\n\n if (!Array.isArray(exportedValue)) {\n exportedValue = [exportedValue];\n }\n\n const defaultPadding = 2;\n const hPadding = defaultPadding;\n const totalHeight = this.data.rect[3] - this.data.rect[1];\n const totalWidth = this.data.rect[2] - this.data.rect[0];\n const lineCount = this.data.options.length;\n const valueIndices = [];\n for (let i = 0; i < lineCount; i++) {\n const { exportValue } = this.data.options[i];\n if (exportedValue.includes(exportValue)) {\n valueIndices.push(i);\n }\n }\n\n if (!this._defaultAppearance) {\n // The DA is required and must be a string.\n // If there is no font named Helvetica in the resource dictionary,\n // the evaluator will fall back to a default font.\n // Doing so prevents exceptions and allows saving/printing\n // the file as expected.\n this.data.defaultAppearanceData = parseDefaultAppearance(\n (this._defaultAppearance = \"/Helvetica 0 Tf 0 g\")\n );\n }\n\n const font = await this._getFontData(evaluator, task);\n\n let defaultAppearance;\n let { fontSize } = this.data.defaultAppearanceData;\n if (!fontSize) {\n const lineHeight = (totalHeight - defaultPadding) / lineCount;\n let lineWidth = -1;\n let value;\n for (const { displayValue } of this.data.options) {\n const width = this._getTextWidth(displayValue);\n if (width > lineWidth) {\n lineWidth = width;\n value = displayValue;\n }\n }\n\n [defaultAppearance, fontSize] = this._computeFontSize(\n lineHeight,\n totalWidth - 2 * hPadding,\n value,\n font,\n -1\n );\n } else {\n defaultAppearance = this._defaultAppearance;\n }\n\n const lineHeight = fontSize * LINE_FACTOR;\n const vPadding = (lineHeight - fontSize) / 2;\n const numberOfVisibleLines = Math.floor(totalHeight / lineHeight);\n\n let firstIndex;\n if (valueIndices.length === 1) {\n const valuePosition = valueIndices[0];\n const indexInPage = valuePosition % numberOfVisibleLines;\n firstIndex = valuePosition - indexInPage;\n } else {\n // If nothing is selected (valueIndice.length === 0), we render\n // from the first element.\n firstIndex = valueIndices.length ? valueIndices[0] : 0;\n }\n const end = Math.min(firstIndex + numberOfVisibleLines + 1, lineCount);\n\n const buf = [\"/Tx BMC q\", `1 1 ${totalWidth} ${totalHeight} re W n`];\n\n if (valueIndices.length) {\n // This value has been copied/pasted from annotation-choice-widget.pdf.\n // It corresponds to rgb(153, 193, 218).\n buf.push(\"0.600006 0.756866 0.854904 rg\");\n\n // Highlight the lines in filling a blue rectangle at the selected\n // positions.\n for (const index of valueIndices) {\n if (firstIndex <= index && index < end) {\n buf.push(\n `1 ${\n totalHeight - (index - firstIndex + 1) * lineHeight\n } ${totalWidth} ${lineHeight} re f`\n );\n }\n }\n }\n buf.push(\"BT\", defaultAppearance, `1 0 0 1 0 ${totalHeight} Tm`);\n\n for (let i = firstIndex; i < end; i++) {\n const { displayValue } = this.data.options[i];\n const hpadding = i === firstIndex ? hPadding : 0;\n const vpadding = i === firstIndex ? vPadding : 0;\n buf.push(\n this._renderText(\n displayValue,\n font,\n fontSize,\n totalWidth,\n 0,\n hpadding,\n -lineHeight + vpadding\n )\n );\n }\n\n buf.push(\"ET Q EMC\");\n\n return buf.join(\"\\n\");\n }\n}\n\nclass SignatureWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n\n // Unset the fieldValue since it's (most likely) a `Dict` which is\n // non-serializable and will thus cause errors when sending annotations\n // to the main-thread (issue 10347).\n this.data.fieldValue = null;\n }\n\n getFieldObject() {\n return {\n id: this.data.id,\n value: null,\n page: this.data.pageIndex,\n type: \"signature\",\n };\n }\n}\n\nclass TextAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n const DEFAULT_ICON_SIZE = 22; // px\n\n super(parameters);\n\n const dict = parameters.dict;\n this.data.annotationType = AnnotationType.TEXT;\n\n if (this.data.hasAppearance) {\n this.data.name = \"NoIcon\";\n } else {\n this.data.rect[1] = this.data.rect[3] - DEFAULT_ICON_SIZE;\n this.data.rect[2] = this.data.rect[0] + DEFAULT_ICON_SIZE;\n this.data.name = dict.has(\"Name\") ? dict.get(\"Name\").name : \"Note\";\n }\n\n if (dict.has(\"State\")) {\n this.data.state = dict.get(\"State\") || null;\n this.data.stateModel = dict.get(\"StateModel\") || null;\n } else {\n this.data.state = null;\n this.data.stateModel = null;\n }\n }\n}\n\nclass LinkAnnotation extends Annotation {\n constructor(params) {\n super(params);\n\n this.data.annotationType = AnnotationType.LINK;\n\n const quadPoints = getQuadPoints(params.dict, this.rectangle);\n if (quadPoints) {\n this.data.quadPoints = quadPoints;\n }\n\n Catalog.parseDestDictionary({\n destDict: params.dict,\n resultObj: this.data,\n docBaseUrl: params.pdfManager.docBaseUrl,\n });\n }\n}\n\nclass PopupAnnotation extends Annotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.POPUP;\n\n let parentItem = parameters.dict.get(\"Parent\");\n if (!parentItem) {\n warn(\"Popup annotation has a missing or invalid parent annotation.\");\n return;\n }\n\n const parentSubtype = parentItem.get(\"Subtype\");\n this.data.parentType =\n parentSubtype instanceof Name ? parentSubtype.name : null;\n const rawParent = parameters.dict.getRaw(\"Parent\");\n this.data.parentId = rawParent instanceof Ref ? rawParent.toString() : null;\n\n const parentRect = parentItem.getArray(\"Rect\");\n if (Array.isArray(parentRect) && parentRect.length === 4) {\n this.data.parentRect = Util.normalizeRect(parentRect);\n } else {\n this.data.parentRect = [0, 0, 0, 0];\n }\n\n const rt = parentItem.get(\"RT\");\n if (isName(rt, AnnotationReplyType.GROUP)) {\n // Subordinate annotations in a group should inherit\n // the group attributes from the primary annotation.\n parentItem = parentItem.get(\"IRT\");\n }\n\n if (!parentItem.has(\"M\")) {\n this.data.modificationDate = null;\n } else {\n this.setModificationDate(parentItem.get(\"M\"));\n this.data.modificationDate = this.modificationDate;\n }\n\n if (!parentItem.has(\"C\")) {\n // Fall back to the default background color.\n this.data.color = null;\n } else {\n this.setColor(parentItem.getArray(\"C\"));\n this.data.color = this.color;\n }\n\n // If the Popup annotation is not viewable, but the parent annotation is,\n // that is most likely a bug. Fallback to inherit the flags from the parent\n // annotation (this is consistent with the behaviour in Adobe Reader).\n if (!this.viewable) {\n const parentFlags = parentItem.get(\"F\");\n if (this._isViewable(parentFlags)) {\n this.setFlags(parentFlags);\n }\n }\n\n this.setTitle(parentItem.get(\"T\"));\n this.data.titleObj = this._title;\n\n this.setContents(parentItem.get(\"Contents\"));\n this.data.contentsObj = this._contents;\n\n if (parentItem.has(\"RC\")) {\n this.data.richText = XFAFactory.getRichTextAsHtml(parentItem.get(\"RC\"));\n }\n }\n}\n\nclass FreeTextAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.FREETEXT;\n }\n}\n\nclass LineAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n const { dict } = parameters;\n this.data.annotationType = AnnotationType.LINE;\n\n const lineCoordinates = dict.getArray(\"L\");\n this.data.lineCoordinates = Util.normalizeRect(lineCoordinates);\n\n this.setLineEndings(dict.getArray(\"LE\"));\n this.data.lineEndings = this.lineEndings;\n\n if (!this.appearance) {\n // The default stroke color is black.\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = dict.get(\"CA\");\n\n // The default fill color is transparent. Setting the fill colour is\n // necessary if/when we want to add support for non-default line endings.\n let fillColor = null,\n interiorColor = dict.getArray(\"IC\");\n if (interiorColor) {\n interiorColor = getRgbColor(interiorColor, null);\n fillColor = interiorColor\n ? Array.from(interiorColor).map(c => c / 255)\n : null;\n }\n const fillAlpha = fillColor ? strokeAlpha : null;\n\n const borderWidth = this.borderStyle.width || 1,\n borderAdjust = 2 * borderWidth;\n\n // If the /Rect-entry is empty/wrong, create a fallback rectangle so that\n // we get similar rendering/highlighting behaviour as in Adobe Reader.\n const bbox = [\n this.data.lineCoordinates[0] - borderAdjust,\n this.data.lineCoordinates[1] - borderAdjust,\n this.data.lineCoordinates[2] + borderAdjust,\n this.data.lineCoordinates[3] + borderAdjust,\n ];\n if (!Util.intersect(this.rectangle, bbox)) {\n this.rectangle = bbox;\n }\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: `${borderWidth} w`,\n strokeColor,\n fillColor,\n strokeAlpha,\n fillAlpha,\n pointsCallback: (buffer, points) => {\n buffer.push(\n `${lineCoordinates[0]} ${lineCoordinates[1]} m`,\n `${lineCoordinates[2]} ${lineCoordinates[3]} l`,\n \"S\"\n );\n return [\n points[0].x - borderWidth,\n points[1].x + borderWidth,\n points[3].y - borderWidth,\n points[1].y + borderWidth,\n ];\n },\n });\n }\n }\n}\n\nclass SquareAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.SQUARE;\n\n if (!this.appearance) {\n // The default stroke color is black.\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = parameters.dict.get(\"CA\");\n\n // The default fill color is transparent.\n let fillColor = null,\n interiorColor = parameters.dict.getArray(\"IC\");\n if (interiorColor) {\n interiorColor = getRgbColor(interiorColor, null);\n fillColor = interiorColor\n ? Array.from(interiorColor).map(c => c / 255)\n : null;\n }\n const fillAlpha = fillColor ? strokeAlpha : null;\n\n if (this.borderStyle.width === 0 && !fillColor) {\n // Prevent rendering a \"hairline\" border (fixes issue14164.pdf).\n return;\n }\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: `${this.borderStyle.width} w`,\n strokeColor,\n fillColor,\n strokeAlpha,\n fillAlpha,\n pointsCallback: (buffer, points) => {\n const x = points[2].x + this.borderStyle.width / 2;\n const y = points[2].y + this.borderStyle.width / 2;\n const width = points[3].x - points[2].x - this.borderStyle.width;\n const height = points[1].y - points[3].y - this.borderStyle.width;\n buffer.push(`${x} ${y} ${width} ${height} re`);\n if (fillColor) {\n buffer.push(\"B\");\n } else {\n buffer.push(\"S\");\n }\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n }\n}\n\nclass CircleAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.CIRCLE;\n\n if (!this.appearance) {\n // The default stroke color is black.\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = parameters.dict.get(\"CA\");\n\n // The default fill color is transparent.\n let fillColor = null;\n let interiorColor = parameters.dict.getArray(\"IC\");\n if (interiorColor) {\n interiorColor = getRgbColor(interiorColor, null);\n fillColor = interiorColor\n ? Array.from(interiorColor).map(c => c / 255)\n : null;\n }\n const fillAlpha = fillColor ? strokeAlpha : null;\n\n if (this.borderStyle.width === 0 && !fillColor) {\n // Prevent rendering a \"hairline\" border (fixes issue14164.pdf).\n return;\n }\n\n // Circles are approximated by Bézier curves with four segments since\n // there is no circle primitive in the PDF specification. For the control\n // points distance, see https://stackoverflow.com/a/27863181.\n const controlPointsDistance = (4 / 3) * Math.tan(Math.PI / (2 * 4));\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: `${this.borderStyle.width} w`,\n strokeColor,\n fillColor,\n strokeAlpha,\n fillAlpha,\n pointsCallback: (buffer, points) => {\n const x0 = points[0].x + this.borderStyle.width / 2;\n const y0 = points[0].y - this.borderStyle.width / 2;\n const x1 = points[3].x - this.borderStyle.width / 2;\n const y1 = points[3].y + this.borderStyle.width / 2;\n const xMid = x0 + (x1 - x0) / 2;\n const yMid = y0 + (y1 - y0) / 2;\n const xOffset = ((x1 - x0) / 2) * controlPointsDistance;\n const yOffset = ((y1 - y0) / 2) * controlPointsDistance;\n\n buffer.push(\n `${xMid} ${y1} m`,\n `${xMid + xOffset} ${y1} ${x1} ${yMid + yOffset} ${x1} ${yMid} c`,\n `${x1} ${yMid - yOffset} ${xMid + xOffset} ${y0} ${xMid} ${y0} c`,\n `${xMid - xOffset} ${y0} ${x0} ${yMid - yOffset} ${x0} ${yMid} c`,\n `${x0} ${yMid + yOffset} ${xMid - xOffset} ${y1} ${xMid} ${y1} c`,\n \"h\"\n );\n if (fillColor) {\n buffer.push(\"B\");\n } else {\n buffer.push(\"S\");\n }\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n }\n}\n\nclass PolylineAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n const { dict } = parameters;\n this.data.annotationType = AnnotationType.POLYLINE;\n this.data.vertices = [];\n\n if (!(this instanceof PolygonAnnotation)) {\n // Only meaningful for polyline annotations.\n this.setLineEndings(dict.getArray(\"LE\"));\n this.data.lineEndings = this.lineEndings;\n }\n\n // The vertices array is an array of numbers representing the alternating\n // horizontal and vertical coordinates, respectively, of each vertex.\n // Convert this to an array of objects with x and y coordinates.\n const rawVertices = dict.getArray(\"Vertices\");\n if (!Array.isArray(rawVertices)) {\n return;\n }\n for (let i = 0, ii = rawVertices.length; i < ii; i += 2) {\n this.data.vertices.push({\n x: rawVertices[i],\n y: rawVertices[i + 1],\n });\n }\n\n if (!this.appearance) {\n // The default stroke color is black.\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = dict.get(\"CA\");\n\n const borderWidth = this.borderStyle.width || 1,\n borderAdjust = 2 * borderWidth;\n\n // If the /Rect-entry is empty/wrong, create a fallback rectangle so that\n // we get similar rendering/highlighting behaviour as in Adobe Reader.\n const bbox = [Infinity, Infinity, -Infinity, -Infinity];\n for (const vertex of this.data.vertices) {\n bbox[0] = Math.min(bbox[0], vertex.x - borderAdjust);\n bbox[1] = Math.min(bbox[1], vertex.y - borderAdjust);\n bbox[2] = Math.max(bbox[2], vertex.x + borderAdjust);\n bbox[3] = Math.max(bbox[3], vertex.y + borderAdjust);\n }\n if (!Util.intersect(this.rectangle, bbox)) {\n this.rectangle = bbox;\n }\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: `${borderWidth} w`,\n strokeColor,\n strokeAlpha,\n pointsCallback: (buffer, points) => {\n const vertices = this.data.vertices;\n for (let i = 0, ii = vertices.length; i < ii; i++) {\n buffer.push(\n `${vertices[i].x} ${vertices[i].y} ${i === 0 ? \"m\" : \"l\"}`\n );\n }\n buffer.push(\"S\");\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n }\n}\n\nclass PolygonAnnotation extends PolylineAnnotation {\n constructor(parameters) {\n // Polygons are specific forms of polylines, so reuse their logic.\n super(parameters);\n\n this.data.annotationType = AnnotationType.POLYGON;\n }\n}\n\nclass CaretAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.CARET;\n }\n}\n\nclass InkAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.INK;\n this.data.inkLists = [];\n\n const rawInkLists = parameters.dict.getArray(\"InkList\");\n if (!Array.isArray(rawInkLists)) {\n return;\n }\n const xref = parameters.xref;\n for (let i = 0, ii = rawInkLists.length; i < ii; ++i) {\n // The raw ink lists array contains arrays of numbers representing\n // the alternating horizontal and vertical coordinates, respectively,\n // of each vertex. Convert this to an array of objects with x and y\n // coordinates.\n this.data.inkLists.push([]);\n for (let j = 0, jj = rawInkLists[i].length; j < jj; j += 2) {\n this.data.inkLists[i].push({\n x: xref.fetchIfRef(rawInkLists[i][j]),\n y: xref.fetchIfRef(rawInkLists[i][j + 1]),\n });\n }\n }\n\n if (!this.appearance) {\n // The default stroke color is black.\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = parameters.dict.get(\"CA\");\n\n const borderWidth = this.borderStyle.width || 1,\n borderAdjust = 2 * borderWidth;\n\n // If the /Rect-entry is empty/wrong, create a fallback rectangle so that\n // we get similar rendering/highlighting behaviour as in Adobe Reader.\n const bbox = [Infinity, Infinity, -Infinity, -Infinity];\n for (const inkLists of this.data.inkLists) {\n for (const vertex of inkLists) {\n bbox[0] = Math.min(bbox[0], vertex.x - borderAdjust);\n bbox[1] = Math.min(bbox[1], vertex.y - borderAdjust);\n bbox[2] = Math.max(bbox[2], vertex.x + borderAdjust);\n bbox[3] = Math.max(bbox[3], vertex.y + borderAdjust);\n }\n }\n if (!Util.intersect(this.rectangle, bbox)) {\n this.rectangle = bbox;\n }\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: `${borderWidth} w`,\n strokeColor,\n strokeAlpha,\n pointsCallback: (buffer, points) => {\n // According to the specification, see \"12.5.6.13 Ink Annotations\":\n // When drawn, the points shall be connected by straight lines or\n // curves in an implementation-dependent way.\n // In order to simplify things, we utilize straight lines for now.\n for (const inkList of this.data.inkLists) {\n for (let i = 0, ii = inkList.length; i < ii; i++) {\n buffer.push(\n `${inkList[i].x} ${inkList[i].y} ${i === 0 ? \"m\" : \"l\"}`\n );\n }\n buffer.push(\"S\");\n }\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n }\n}\n\nclass HighlightAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.HIGHLIGHT;\n const quadPoints = (this.data.quadPoints = getQuadPoints(\n parameters.dict,\n null\n ));\n if (quadPoints) {\n const resources =\n this.appearance && this.appearance.dict.get(\"Resources\");\n\n if (!this.appearance || !(resources && resources.has(\"ExtGState\"))) {\n if (this.appearance) {\n // Workaround for cases where there's no /ExtGState-entry directly\n // available, e.g. when the appearance stream contains a /XObject of\n // the /Form-type, since that causes the highlighting to completely\n // obscure the PDF content below it (fixes issue13242.pdf).\n warn(\"HighlightAnnotation - ignoring built-in appearance stream.\");\n }\n // Default color is yellow in Acrobat Reader\n const fillColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [1, 1, 0];\n const fillAlpha = parameters.dict.get(\"CA\");\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n fillColor,\n blendMode: \"Multiply\",\n fillAlpha,\n pointsCallback: (buffer, points) => {\n buffer.push(\n `${points[0].x} ${points[0].y} m`,\n `${points[1].x} ${points[1].y} l`,\n `${points[3].x} ${points[3].y} l`,\n `${points[2].x} ${points[2].y} l`,\n \"f\"\n );\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n } else {\n this.data.hasPopup = false;\n }\n }\n}\n\nclass UnderlineAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.UNDERLINE;\n const quadPoints = (this.data.quadPoints = getQuadPoints(\n parameters.dict,\n null\n ));\n if (quadPoints) {\n if (!this.appearance) {\n // Default color is black\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = parameters.dict.get(\"CA\");\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: \"[] 0 d 1 w\",\n strokeColor,\n strokeAlpha,\n pointsCallback: (buffer, points) => {\n buffer.push(\n `${points[2].x} ${points[2].y} m`,\n `${points[3].x} ${points[3].y} l`,\n \"S\"\n );\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n } else {\n this.data.hasPopup = false;\n }\n }\n}\n\nclass SquigglyAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.SQUIGGLY;\n\n const quadPoints = (this.data.quadPoints = getQuadPoints(\n parameters.dict,\n null\n ));\n if (quadPoints) {\n if (!this.appearance) {\n // Default color is black\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = parameters.dict.get(\"CA\");\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: \"[] 0 d 1 w\",\n strokeColor,\n strokeAlpha,\n pointsCallback: (buffer, points) => {\n const dy = (points[0].y - points[2].y) / 6;\n let shift = dy;\n let x = points[2].x;\n const y = points[2].y;\n const xEnd = points[3].x;\n buffer.push(`${x} ${y + shift} m`);\n do {\n x += 2;\n shift = shift === 0 ? dy : 0;\n buffer.push(`${x} ${y + shift} l`);\n } while (x < xEnd);\n buffer.push(\"S\");\n return [points[2].x, xEnd, y - 2 * dy, y + 2 * dy];\n },\n });\n }\n } else {\n this.data.hasPopup = false;\n }\n }\n}\n\nclass StrikeOutAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.STRIKEOUT;\n\n const quadPoints = (this.data.quadPoints = getQuadPoints(\n parameters.dict,\n null\n ));\n if (quadPoints) {\n if (!this.appearance) {\n // Default color is black\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = parameters.dict.get(\"CA\");\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: \"[] 0 d 1 w\",\n strokeColor,\n strokeAlpha,\n pointsCallback: (buffer, points) => {\n buffer.push(\n `${(points[0].x + points[2].x) / 2} ` +\n `${(points[0].y + points[2].y) / 2} m`,\n `${(points[1].x + points[3].x) / 2} ` +\n `${(points[1].y + points[3].y) / 2} l`,\n \"S\"\n );\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n } else {\n this.data.hasPopup = false;\n }\n }\n}\n\nclass StampAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.STAMP;\n }\n}\n\nclass FileAttachmentAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n const file = new FileSpec(parameters.dict.get(\"FS\"), parameters.xref);\n\n this.data.annotationType = AnnotationType.FILEATTACHMENT;\n this.data.file = file.serializable;\n }\n}\n\nexport {\n Annotation,\n AnnotationBorderStyle,\n AnnotationFactory,\n getQuadPoints,\n MarkupAnnotation,\n};\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { OPS, warn } from \"../shared/util.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { escapePDFName } from \"./core_utils.js\";\nimport { EvaluatorPreprocessor } from \"./evaluator.js\";\nimport { Name } from \"./primitives.js\";\nimport { StringStream } from \"./stream.js\";\n\nclass DefaultAppearanceEvaluator extends EvaluatorPreprocessor {\n constructor(str) {\n super(new StringStream(str));\n }\n\n parse() {\n const operation = {\n fn: 0,\n args: [],\n };\n const result = {\n fontSize: 0,\n fontName: \"\",\n fontColor: /* black = */ new Uint8ClampedArray(3),\n };\n\n try {\n while (true) {\n operation.args.length = 0; // Ensure that `args` it's always reset.\n\n if (!this.read(operation)) {\n break;\n }\n if (this.savedStatesDepth !== 0) {\n continue; // Don't get info in save/restore sections.\n }\n const { fn, args } = operation;\n\n switch (fn | 0) {\n case OPS.setFont:\n const [fontName, fontSize] = args;\n if (fontName instanceof Name) {\n result.fontName = fontName.name;\n }\n if (typeof fontSize === \"number\" && fontSize > 0) {\n result.fontSize = fontSize;\n }\n break;\n case OPS.setFillRGBColor:\n ColorSpace.singletons.rgb.getRgbItem(args, 0, result.fontColor, 0);\n break;\n case OPS.setFillGray:\n ColorSpace.singletons.gray.getRgbItem(args, 0, result.fontColor, 0);\n break;\n case OPS.setFillColorSpace:\n ColorSpace.singletons.cmyk.getRgbItem(args, 0, result.fontColor, 0);\n break;\n }\n }\n } catch (reason) {\n warn(`parseDefaultAppearance - ignoring errors: \"${reason}\".`);\n }\n\n return result;\n }\n}\n\n// Parse DA to extract font and color information.\nfunction parseDefaultAppearance(str) {\n return new DefaultAppearanceEvaluator(str).parse();\n}\n\n// Create default appearance string from some information.\nfunction createDefaultAppearance({ fontSize, fontName, fontColor }) {\n let colorCmd;\n if (fontColor.every(c => c === 0)) {\n colorCmd = \"0 g\";\n } else {\n colorCmd =\n Array.from(fontColor)\n .map(c => (c / 255).toFixed(2))\n .join(\" \") + \" rg\";\n }\n return `/${escapePDFName(fontName)} ${fontSize} Tf ${colorCmd}`;\n}\n\nexport { createDefaultAppearance, parseDefaultAppearance };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n FormatError,\n info,\n shadow,\n unreachable,\n warn,\n} from \"../shared/util.js\";\nimport { Dict, Name, Ref } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { MissingDataException } from \"./core_utils.js\";\n\n/**\n * Resizes an RGB image with 3 components.\n * @param {TypedArray} src - The source buffer.\n * @param {TypedArray} dest - The destination buffer.\n * @param {number} w1 - Original width.\n * @param {number} h1 - Original height.\n * @param {number} w2 - New width.\n * @param {number} h2 - New height.\n * @param {number} alpha01 - Size reserved for the alpha channel.\n */\nfunction resizeRgbImage(src, dest, w1, h1, w2, h2, alpha01) {\n const COMPONENTS = 3;\n alpha01 = alpha01 !== 1 ? 0 : alpha01;\n const xRatio = w1 / w2;\n const yRatio = h1 / h2;\n let newIndex = 0,\n oldIndex;\n const xScaled = new Uint16Array(w2);\n const w1Scanline = w1 * COMPONENTS;\n\n for (let i = 0; i < w2; i++) {\n xScaled[i] = Math.floor(i * xRatio) * COMPONENTS;\n }\n for (let i = 0; i < h2; i++) {\n const py = Math.floor(i * yRatio) * w1Scanline;\n for (let j = 0; j < w2; j++) {\n oldIndex = py + xScaled[j];\n dest[newIndex++] = src[oldIndex++];\n dest[newIndex++] = src[oldIndex++];\n dest[newIndex++] = src[oldIndex++];\n newIndex += alpha01;\n }\n }\n}\n\nclass ColorSpace {\n constructor(name, numComps) {\n if (this.constructor === ColorSpace) {\n unreachable(\"Cannot initialize ColorSpace.\");\n }\n this.name = name;\n this.numComps = numComps;\n }\n\n /**\n * Converts the color value to the RGB color. The color components are\n * located in the src array starting from the srcOffset. Returns the array\n * of the rgb components, each value ranging from [0,255].\n */\n getRgb(src, srcOffset) {\n const rgb = new Uint8ClampedArray(3);\n this.getRgbItem(src, srcOffset, rgb, 0);\n return rgb;\n }\n\n /**\n * Converts the color value to the RGB color, similar to the getRgb method.\n * The result placed into the dest array starting from the destOffset.\n */\n getRgbItem(src, srcOffset, dest, destOffset) {\n unreachable(\"Should not call ColorSpace.getRgbItem\");\n }\n\n /**\n * Converts the specified number of the color values to the RGB colors.\n * The colors are located in the src array starting from the srcOffset.\n * The result is placed into the dest array starting from the destOffset.\n * The src array items shall be in [0,2^bits) range, the dest array items\n * will be in [0,255] range. alpha01 indicates how many alpha components\n * there are in the dest array; it will be either 0 (RGB array) or 1 (RGBA\n * array).\n */\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n unreachable(\"Should not call ColorSpace.getRgbBuffer\");\n }\n\n /**\n * Determines the number of bytes required to store the result of the\n * conversion done by the getRgbBuffer method. As in getRgbBuffer,\n * |alpha01| is either 0 (RGB output) or 1 (RGBA output).\n */\n getOutputLength(inputLength, alpha01) {\n unreachable(\"Should not call ColorSpace.getOutputLength\");\n }\n\n /**\n * Returns true if source data will be equal the result/output data.\n */\n isPassthrough(bits) {\n return false;\n }\n\n /**\n * Refer to the static `ColorSpace.isDefaultDecode` method below.\n */\n isDefaultDecode(decodeMap, bpc) {\n return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n }\n\n /**\n * Fills in the RGB colors in the destination buffer. alpha01 indicates\n * how many alpha components there are in the dest array; it will be either\n * 0 (RGB array) or 1 (RGBA array).\n */\n fillRgb(\n dest,\n originalWidth,\n originalHeight,\n width,\n height,\n actualHeight,\n bpc,\n comps,\n alpha01\n ) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'ColorSpace.fillRgb: Unsupported \"dest\" type.'\n );\n }\n const count = originalWidth * originalHeight;\n let rgbBuf = null;\n const numComponentColors = 1 << bpc;\n const needsResizing = originalHeight !== height || originalWidth !== width;\n\n if (this.isPassthrough(bpc)) {\n rgbBuf = comps;\n } else if (\n this.numComps === 1 &&\n count > numComponentColors &&\n this.name !== \"DeviceGray\" &&\n this.name !== \"DeviceRGB\"\n ) {\n // Optimization: create a color map when there is just one component and\n // we are converting more colors than the size of the color map. We\n // don't build the map if the colorspace is gray or rgb since those\n // methods are faster than building a map. This mainly offers big speed\n // ups for indexed and alternate colorspaces.\n //\n // TODO it may be worth while to cache the color map. While running\n // testing I never hit a cache so I will leave that out for now (perhaps\n // we are reparsing colorspaces too much?).\n const allColors =\n bpc <= 8\n ? new Uint8Array(numComponentColors)\n : new Uint16Array(numComponentColors);\n for (let i = 0; i < numComponentColors; i++) {\n allColors[i] = i;\n }\n const colorMap = new Uint8ClampedArray(numComponentColors * 3);\n this.getRgbBuffer(\n allColors,\n 0,\n numComponentColors,\n colorMap,\n 0,\n bpc,\n /* alpha01 = */ 0\n );\n\n if (!needsResizing) {\n // Fill in the RGB values directly into |dest|.\n let destPos = 0;\n for (let i = 0; i < count; ++i) {\n const key = comps[i] * 3;\n dest[destPos++] = colorMap[key];\n dest[destPos++] = colorMap[key + 1];\n dest[destPos++] = colorMap[key + 2];\n destPos += alpha01;\n }\n } else {\n rgbBuf = new Uint8Array(count * 3);\n let rgbPos = 0;\n for (let i = 0; i < count; ++i) {\n const key = comps[i] * 3;\n rgbBuf[rgbPos++] = colorMap[key];\n rgbBuf[rgbPos++] = colorMap[key + 1];\n rgbBuf[rgbPos++] = colorMap[key + 2];\n }\n }\n } else {\n if (!needsResizing) {\n // Fill in the RGB values directly into |dest|.\n this.getRgbBuffer(\n comps,\n 0,\n width * actualHeight,\n dest,\n 0,\n bpc,\n alpha01\n );\n } else {\n rgbBuf = new Uint8ClampedArray(count * 3);\n this.getRgbBuffer(comps, 0, count, rgbBuf, 0, bpc, /* alpha01 = */ 0);\n }\n }\n\n if (rgbBuf) {\n if (needsResizing) {\n resizeRgbImage(\n rgbBuf,\n dest,\n originalWidth,\n originalHeight,\n width,\n height,\n alpha01\n );\n } else {\n let destPos = 0,\n rgbPos = 0;\n for (let i = 0, ii = width * actualHeight; i < ii; i++) {\n dest[destPos++] = rgbBuf[rgbPos++];\n dest[destPos++] = rgbBuf[rgbPos++];\n dest[destPos++] = rgbBuf[rgbPos++];\n destPos += alpha01;\n }\n }\n }\n }\n\n /**\n * True if the colorspace has components in the default range of [0, 1].\n * This should be true for all colorspaces except for lab color spaces\n * which are [0,100], [-128, 127], [-128, 127].\n */\n get usesZeroToOneRange() {\n return shadow(this, \"usesZeroToOneRange\", true);\n }\n\n /**\n * @private\n */\n static _cache(cacheKey, xref, localColorSpaceCache, parsedColorSpace) {\n if (!localColorSpaceCache) {\n throw new Error(\n 'ColorSpace._cache - expected \"localColorSpaceCache\" argument.'\n );\n }\n if (!parsedColorSpace) {\n throw new Error(\n 'ColorSpace._cache - expected \"parsedColorSpace\" argument.'\n );\n }\n let csName, csRef;\n if (cacheKey instanceof Ref) {\n csRef = cacheKey;\n\n // If parsing succeeded, we know that this call cannot throw.\n cacheKey = xref.fetch(cacheKey);\n }\n if (cacheKey instanceof Name) {\n csName = cacheKey.name;\n }\n if (csName || csRef) {\n localColorSpaceCache.set(csName, csRef, parsedColorSpace);\n }\n }\n\n static getCached(cacheKey, xref, localColorSpaceCache) {\n if (!localColorSpaceCache) {\n throw new Error(\n 'ColorSpace.getCached - expected \"localColorSpaceCache\" argument.'\n );\n }\n if (cacheKey instanceof Ref) {\n const localColorSpace = localColorSpaceCache.getByRef(cacheKey);\n if (localColorSpace) {\n return localColorSpace;\n }\n\n try {\n cacheKey = xref.fetch(cacheKey);\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n // Any errors should be handled during parsing, rather than here.\n }\n }\n if (cacheKey instanceof Name) {\n const localColorSpace = localColorSpaceCache.getByName(cacheKey.name);\n if (localColorSpace) {\n return localColorSpace;\n }\n }\n return null;\n }\n\n static async parseAsync({\n cs,\n xref,\n resources = null,\n pdfFunctionFactory,\n localColorSpaceCache,\n }) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n !this.getCached(cs, xref, localColorSpaceCache),\n \"Expected `ColorSpace.getCached` to have been manually checked \" +\n \"before calling `ColorSpace.parseAsync`.\"\n );\n }\n const parsedColorSpace = this._parse(\n cs,\n xref,\n resources,\n pdfFunctionFactory\n );\n\n // Attempt to cache the parsed ColorSpace, by name and/or reference.\n this._cache(cs, xref, localColorSpaceCache, parsedColorSpace);\n\n return parsedColorSpace;\n }\n\n static parse({\n cs,\n xref,\n resources = null,\n pdfFunctionFactory,\n localColorSpaceCache,\n }) {\n const cachedColorSpace = this.getCached(cs, xref, localColorSpaceCache);\n if (cachedColorSpace) {\n return cachedColorSpace;\n }\n const parsedColorSpace = this._parse(\n cs,\n xref,\n resources,\n pdfFunctionFactory\n );\n\n // Attempt to cache the parsed ColorSpace, by name and/or reference.\n this._cache(cs, xref, localColorSpaceCache, parsedColorSpace);\n\n return parsedColorSpace;\n }\n\n /**\n * @private\n */\n static _parse(cs, xref, resources = null, pdfFunctionFactory) {\n cs = xref.fetchIfRef(cs);\n if (cs instanceof Name) {\n switch (cs.name) {\n case \"G\":\n case \"DeviceGray\":\n return this.singletons.gray;\n case \"RGB\":\n case \"DeviceRGB\":\n return this.singletons.rgb;\n case \"CMYK\":\n case \"DeviceCMYK\":\n return this.singletons.cmyk;\n case \"Pattern\":\n return new PatternCS(/* baseCS = */ null);\n default:\n if (resources instanceof Dict) {\n const colorSpaces = resources.get(\"ColorSpace\");\n if (colorSpaces instanceof Dict) {\n const resourcesCS = colorSpaces.get(cs.name);\n if (resourcesCS) {\n if (resourcesCS instanceof Name) {\n return this._parse(\n resourcesCS,\n xref,\n resources,\n pdfFunctionFactory\n );\n }\n cs = resourcesCS;\n break;\n }\n }\n }\n throw new FormatError(`Unrecognized ColorSpace: ${cs.name}`);\n }\n }\n if (Array.isArray(cs)) {\n const mode = xref.fetchIfRef(cs[0]).name;\n let params, numComps, baseCS, whitePoint, blackPoint, gamma;\n\n switch (mode) {\n case \"G\":\n case \"DeviceGray\":\n return this.singletons.gray;\n case \"RGB\":\n case \"DeviceRGB\":\n return this.singletons.rgb;\n case \"CMYK\":\n case \"DeviceCMYK\":\n return this.singletons.cmyk;\n case \"CalGray\":\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray(\"WhitePoint\");\n blackPoint = params.getArray(\"BlackPoint\");\n gamma = params.get(\"Gamma\");\n return new CalGrayCS(whitePoint, blackPoint, gamma);\n case \"CalRGB\":\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray(\"WhitePoint\");\n blackPoint = params.getArray(\"BlackPoint\");\n gamma = params.getArray(\"Gamma\");\n const matrix = params.getArray(\"Matrix\");\n return new CalRGBCS(whitePoint, blackPoint, gamma, matrix);\n case \"ICCBased\":\n const stream = xref.fetchIfRef(cs[1]);\n const dict = stream.dict;\n numComps = dict.get(\"N\");\n const alt = dict.get(\"Alternate\");\n if (alt) {\n const altCS = this._parse(alt, xref, resources, pdfFunctionFactory);\n // Ensure that the number of components are correct,\n // and also (indirectly) that it is not a PatternCS.\n if (altCS.numComps === numComps) {\n return altCS;\n }\n warn(\"ICCBased color space: Ignoring incorrect /Alternate entry.\");\n }\n if (numComps === 1) {\n return this.singletons.gray;\n } else if (numComps === 3) {\n return this.singletons.rgb;\n } else if (numComps === 4) {\n return this.singletons.cmyk;\n }\n break;\n case \"Pattern\":\n baseCS = cs[1] || null;\n if (baseCS) {\n baseCS = this._parse(baseCS, xref, resources, pdfFunctionFactory);\n }\n return new PatternCS(baseCS);\n case \"I\":\n case \"Indexed\":\n baseCS = this._parse(cs[1], xref, resources, pdfFunctionFactory);\n const hiVal = xref.fetchIfRef(cs[2]) + 1;\n const lookup = xref.fetchIfRef(cs[3]);\n return new IndexedCS(baseCS, hiVal, lookup);\n case \"Separation\":\n case \"DeviceN\":\n const name = xref.fetchIfRef(cs[1]);\n numComps = Array.isArray(name) ? name.length : 1;\n baseCS = this._parse(cs[2], xref, resources, pdfFunctionFactory);\n const tintFn = pdfFunctionFactory.create(cs[3]);\n return new AlternateCS(numComps, baseCS, tintFn);\n case \"Lab\":\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray(\"WhitePoint\");\n blackPoint = params.getArray(\"BlackPoint\");\n const range = params.getArray(\"Range\");\n return new LabCS(whitePoint, blackPoint, range);\n default:\n throw new FormatError(`Unimplemented ColorSpace object: ${mode}`);\n }\n }\n throw new FormatError(`Unrecognized ColorSpace object: ${cs}`);\n }\n\n /**\n * Checks if a decode map matches the default decode map for a color space.\n * This handles the general decode maps where there are two values per\n * component, e.g. [0, 1, 0, 1, 0, 1] for a RGB color.\n * This does not handle Lab, Indexed, or Pattern decode maps since they are\n * slightly different.\n * @param {Array} decode - Decode map (usually from an image).\n * @param {number} numComps - Number of components the color space has.\n */\n static isDefaultDecode(decode, numComps) {\n if (!Array.isArray(decode)) {\n return true;\n }\n if (numComps * 2 !== decode.length) {\n warn(\"The decode map is not the correct length\");\n return true;\n }\n for (let i = 0, ii = decode.length; i < ii; i += 2) {\n if (decode[i] !== 0 || decode[i + 1] !== 1) {\n return false;\n }\n }\n return true;\n }\n\n static get singletons() {\n return shadow(this, \"singletons\", {\n get gray() {\n return shadow(this, \"gray\", new DeviceGrayCS());\n },\n get rgb() {\n return shadow(this, \"rgb\", new DeviceRgbCS());\n },\n get cmyk() {\n return shadow(this, \"cmyk\", new DeviceCmykCS());\n },\n });\n }\n}\n\n/**\n * Alternate color space handles both Separation and DeviceN color spaces. A\n * Separation color space is actually just a DeviceN with one color component.\n * Both color spaces use a tinting function to convert colors to a base color\n * space.\n *\n * The default color is `new Float32Array(new Array(numComps).fill(1))`.\n */\nclass AlternateCS extends ColorSpace {\n constructor(numComps, base, tintFn) {\n super(\"Alternate\", numComps);\n this.base = base;\n this.tintFn = tintFn;\n this.tmpBuf = new Float32Array(base.numComps);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'AlternateCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n const tmpBuf = this.tmpBuf;\n this.tintFn(src, srcOffset, tmpBuf, 0);\n this.base.getRgbItem(tmpBuf, 0, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'AlternateCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const tintFn = this.tintFn;\n const base = this.base;\n const scale = 1 / ((1 << bits) - 1);\n const baseNumComps = base.numComps;\n const usesZeroToOneRange = base.usesZeroToOneRange;\n const isPassthrough =\n (base.isPassthrough(8) || !usesZeroToOneRange) && alpha01 === 0;\n let pos = isPassthrough ? destOffset : 0;\n const baseBuf = isPassthrough\n ? dest\n : new Uint8ClampedArray(baseNumComps * count);\n const numComps = this.numComps;\n\n const scaled = new Float32Array(numComps);\n const tinted = new Float32Array(baseNumComps);\n let i, j;\n\n for (i = 0; i < count; i++) {\n for (j = 0; j < numComps; j++) {\n scaled[j] = src[srcOffset++] * scale;\n }\n tintFn(scaled, 0, tinted, 0);\n if (usesZeroToOneRange) {\n for (j = 0; j < baseNumComps; j++) {\n baseBuf[pos++] = tinted[j] * 255;\n }\n } else {\n base.getRgbItem(tinted, 0, baseBuf, pos);\n pos += baseNumComps;\n }\n }\n\n if (!isPassthrough) {\n base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8, alpha01);\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return this.base.getOutputLength(\n (inputLength * this.base.numComps) / this.numComps,\n alpha01\n );\n }\n}\n\nclass PatternCS extends ColorSpace {\n constructor(baseCS) {\n super(\"Pattern\", null);\n this.base = baseCS;\n }\n\n isDefaultDecode(decodeMap, bpc) {\n unreachable(\"Should not call PatternCS.isDefaultDecode\");\n }\n}\n\n/**\n * The default color is `new Uint8Array([0])`.\n */\nclass IndexedCS extends ColorSpace {\n constructor(base, highVal, lookup) {\n super(\"Indexed\", 1);\n this.base = base;\n this.highVal = highVal;\n\n const length = base.numComps * highVal;\n this.lookup = new Uint8Array(length);\n\n if (lookup instanceof BaseStream) {\n const bytes = lookup.getBytes(length);\n this.lookup.set(bytes);\n } else if (typeof lookup === \"string\") {\n for (let i = 0; i < length; ++i) {\n this.lookup[i] = lookup.charCodeAt(i) & 0xff;\n }\n } else {\n throw new FormatError(`IndexedCS - unrecognized lookup table: ${lookup}`);\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'IndexedCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n const numComps = this.base.numComps;\n const start = src[srcOffset] * numComps;\n this.base.getRgbBuffer(this.lookup, start, 1, dest, destOffset, 8, 0);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'IndexedCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const base = this.base;\n const numComps = base.numComps;\n const outputDelta = base.getOutputLength(numComps, alpha01);\n const lookup = this.lookup;\n\n for (let i = 0; i < count; ++i) {\n const lookupPos = src[srcOffset++] * numComps;\n base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8, alpha01);\n destOffset += outputDelta;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return this.base.getOutputLength(inputLength * this.base.numComps, alpha01);\n }\n\n isDefaultDecode(decodeMap, bpc) {\n if (!Array.isArray(decodeMap)) {\n return true;\n }\n if (decodeMap.length !== 2) {\n warn(\"Decode map length is not correct\");\n return true;\n }\n if (!Number.isInteger(bpc) || bpc < 1) {\n warn(\"Bits per component is not correct\");\n return true;\n }\n return decodeMap[0] === 0 && decodeMap[1] === (1 << bpc) - 1;\n }\n}\n\n/**\n * The default color is `new Float32Array([0])`.\n */\nclass DeviceGrayCS extends ColorSpace {\n constructor() {\n super(\"DeviceGray\", 1);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceGrayCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n const c = src[srcOffset] * 255;\n dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c;\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceGrayCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const scale = 255 / ((1 << bits) - 1);\n let j = srcOffset,\n q = destOffset;\n for (let i = 0; i < count; ++i) {\n const c = scale * src[j++];\n dest[q++] = c;\n dest[q++] = c;\n dest[q++] = c;\n q += alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01);\n }\n}\n\n/**\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nclass DeviceRgbCS extends ColorSpace {\n constructor() {\n super(\"DeviceRGB\", 3);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceRgbCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n dest[destOffset] = src[srcOffset] * 255;\n dest[destOffset + 1] = src[srcOffset + 1] * 255;\n dest[destOffset + 2] = src[srcOffset + 2] * 255;\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceRgbCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n if (bits === 8 && alpha01 === 0) {\n dest.set(src.subarray(srcOffset, srcOffset + count * 3), destOffset);\n return;\n }\n const scale = 255 / ((1 << bits) - 1);\n let j = srcOffset,\n q = destOffset;\n for (let i = 0; i < count; ++i) {\n dest[q++] = scale * src[j++];\n dest[q++] = scale * src[j++];\n dest[q++] = scale * src[j++];\n q += alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength * (3 + alpha01)) / 3) | 0;\n }\n\n isPassthrough(bits) {\n return bits === 8;\n }\n}\n\n/**\n * The default color is `new Float32Array([0, 0, 0, 1])`.\n */\nconst DeviceCmykCS = (function DeviceCmykCSClosure() {\n // The coefficients below was found using numerical analysis: the method of\n // steepest descent for the sum((f_i - color_value_i)^2) for r/g/b colors,\n // where color_value is the tabular value from the table of sampled RGB colors\n // from CMYK US Web Coated (SWOP) colorspace, and f_i is the corresponding\n // CMYK color conversion using the estimation below:\n // f(A, B,.. N) = Acc+Bcm+Ccy+Dck+c+Fmm+Gmy+Hmk+Im+Jyy+Kyk+Ly+Mkk+Nk+255\n function convertToRgb(src, srcOffset, srcScale, dest, destOffset) {\n const c = src[srcOffset] * srcScale;\n const m = src[srcOffset + 1] * srcScale;\n const y = src[srcOffset + 2] * srcScale;\n const k = src[srcOffset + 3] * srcScale;\n\n dest[destOffset] =\n 255 +\n c *\n (-4.387332384609988 * c +\n 54.48615194189176 * m +\n 18.82290502165302 * y +\n 212.25662451639585 * k +\n -285.2331026137004) +\n m *\n (1.7149763477362134 * m -\n 5.6096736904047315 * y +\n -17.873870861415444 * k -\n 5.497006427196366) +\n y *\n (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) +\n k * (-21.86122147463605 * k - 189.48180835922747);\n\n dest[destOffset + 1] =\n 255 +\n c *\n (8.841041422036149 * c +\n 60.118027045597366 * m +\n 6.871425592049007 * y +\n 31.159100130055922 * k +\n -79.2970844816548) +\n m *\n (-15.310361306967817 * m +\n 17.575251261109482 * y +\n 131.35250912493976 * k -\n 190.9453302588951) +\n y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) +\n k * (-20.737325471181034 * k - 187.80453709719578);\n\n dest[destOffset + 2] =\n 255 +\n c *\n (0.8842522430003296 * c +\n 8.078677503112928 * m +\n 30.89978309703729 * y -\n 0.23883238689178934 * k +\n -14.183576799673286) +\n m *\n (10.49593273432072 * m +\n 63.02378494754052 * y +\n 50.606957656360734 * k -\n 112.23884253719248) +\n y *\n (0.03296041114873217 * y +\n 115.60384449646641 * k +\n -193.58209356861505) +\n k * (-22.33816807309886 * k - 180.12613974708367);\n }\n\n // eslint-disable-next-line no-shadow\n class DeviceCmykCS extends ColorSpace {\n constructor() {\n super(\"DeviceCMYK\", 4);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceCmykCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n convertToRgb(src, srcOffset, 1, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceCmykCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const scale = 1 / ((1 << bits) - 1);\n for (let i = 0; i < count; i++) {\n convertToRgb(src, srcOffset, scale, dest, destOffset);\n srcOffset += 4;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength / 4) * (3 + alpha01)) | 0;\n }\n }\n return DeviceCmykCS;\n})();\n\n/**\n * CalGrayCS: Based on \"PDF Reference, Sixth Ed\", p.245\n *\n * The default color is `new Float32Array([0])`.\n */\nconst CalGrayCS = (function CalGrayCSClosure() {\n function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n // A represents a gray component of a calibrated gray space.\n // A <---> AG in the spec\n const A = src[srcOffset] * scale;\n const AG = A ** cs.G;\n\n // Computes L as per spec. ( = cs.YW * AG )\n // Except if other than default BlackPoint values are used.\n const L = cs.YW * AG;\n // http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html, Ch 4.\n // Convert values to rgb range [0, 255].\n const val = Math.max(295.8 * L ** 0.3333333333333333 - 40.8, 0);\n dest[destOffset] = val;\n dest[destOffset + 1] = val;\n dest[destOffset + 2] = val;\n }\n\n // eslint-disable-next-line no-shadow\n class CalGrayCS extends ColorSpace {\n constructor(whitePoint, blackPoint, gamma) {\n super(\"CalGray\", 1);\n\n if (!whitePoint) {\n throw new FormatError(\n \"WhitePoint missing - required for color space CalGray\"\n );\n }\n blackPoint = blackPoint || [0, 0, 0];\n gamma = gamma || 1;\n\n // Translate arguments to spec variables.\n this.XW = whitePoint[0];\n this.YW = whitePoint[1];\n this.ZW = whitePoint[2];\n\n this.XB = blackPoint[0];\n this.YB = blackPoint[1];\n this.ZB = blackPoint[2];\n\n this.G = gamma;\n\n // Validate variables as per spec.\n if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n throw new FormatError(\n `Invalid WhitePoint components for ${this.name}` +\n \", no fallback available\"\n );\n }\n\n if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n info(`Invalid BlackPoint for ${this.name}, falling back to default.`);\n this.XB = this.YB = this.ZB = 0;\n }\n\n if (this.XB !== 0 || this.YB !== 0 || this.ZB !== 0) {\n warn(\n `${this.name}, BlackPoint: XB: ${this.XB}, YB: ${this.YB}, ` +\n `ZB: ${this.ZB}, only default values are supported.`\n );\n }\n\n if (this.G < 1) {\n info(\n `Invalid Gamma: ${this.G} for ${this.name}, ` +\n \"falling back to default.\"\n );\n this.G = 1;\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'CalGrayCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'CalGrayCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const scale = 1 / ((1 << bits) - 1);\n\n for (let i = 0; i < count; ++i) {\n convertToRgb(this, src, srcOffset, dest, destOffset, scale);\n srcOffset += 1;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01);\n }\n }\n return CalGrayCS;\n})();\n\n/**\n * CalRGBCS: Based on \"PDF Reference, Sixth Ed\", p.247\n *\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nconst CalRGBCS = (function CalRGBCSClosure() {\n // See http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html for these\n // matrices.\n // prettier-ignore\n const BRADFORD_SCALE_MATRIX = new Float32Array([\n 0.8951, 0.2664, -0.1614,\n -0.7502, 1.7135, 0.0367,\n 0.0389, -0.0685, 1.0296]);\n\n // prettier-ignore\n const BRADFORD_SCALE_INVERSE_MATRIX = new Float32Array([\n 0.9869929, -0.1470543, 0.1599627,\n 0.4323053, 0.5183603, 0.0492912,\n -0.0085287, 0.0400428, 0.9684867]);\n\n // See http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html.\n // prettier-ignore\n const SRGB_D65_XYZ_TO_RGB_MATRIX = new Float32Array([\n 3.2404542, -1.5371385, -0.4985314,\n -0.9692660, 1.8760108, 0.0415560,\n 0.0556434, -0.2040259, 1.0572252]);\n\n const FLAT_WHITEPOINT_MATRIX = new Float32Array([1, 1, 1]);\n\n const tempNormalizeMatrix = new Float32Array(3);\n const tempConvertMatrix1 = new Float32Array(3);\n const tempConvertMatrix2 = new Float32Array(3);\n\n const DECODE_L_CONSTANT = ((8 + 16) / 116) ** 3 / 8.0;\n\n function matrixProduct(a, b, result) {\n result[0] = a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n result[1] = a[3] * b[0] + a[4] * b[1] + a[5] * b[2];\n result[2] = a[6] * b[0] + a[7] * b[1] + a[8] * b[2];\n }\n\n function convertToFlat(sourceWhitePoint, LMS, result) {\n result[0] = (LMS[0] * 1) / sourceWhitePoint[0];\n result[1] = (LMS[1] * 1) / sourceWhitePoint[1];\n result[2] = (LMS[2] * 1) / sourceWhitePoint[2];\n }\n\n function convertToD65(sourceWhitePoint, LMS, result) {\n const D65X = 0.95047;\n const D65Y = 1;\n const D65Z = 1.08883;\n\n result[0] = (LMS[0] * D65X) / sourceWhitePoint[0];\n result[1] = (LMS[1] * D65Y) / sourceWhitePoint[1];\n result[2] = (LMS[2] * D65Z) / sourceWhitePoint[2];\n }\n\n function sRGBTransferFunction(color) {\n // See http://en.wikipedia.org/wiki/SRGB.\n if (color <= 0.0031308) {\n return adjustToRange(0, 1, 12.92 * color);\n }\n // Optimization:\n // If color is close enough to 1, skip calling the following transform\n // since calling Math.pow is expensive. If color is larger than\n // the threshold, the final result is larger than 254.5 since\n // ((1 + 0.055) * 0.99554525 ** (1 / 2.4) - 0.055) * 255 ===\n // 254.50000003134699\n if (color >= 0.99554525) {\n return 1;\n }\n return adjustToRange(0, 1, (1 + 0.055) * color ** (1 / 2.4) - 0.055);\n }\n\n function adjustToRange(min, max, value) {\n return Math.max(min, Math.min(max, value));\n }\n\n function decodeL(L) {\n if (L < 0) {\n return -decodeL(-L);\n }\n if (L > 8.0) {\n return ((L + 16) / 116) ** 3;\n }\n return L * DECODE_L_CONSTANT;\n }\n\n function compensateBlackPoint(sourceBlackPoint, XYZ_Flat, result) {\n // In case the blackPoint is already the default blackPoint then there is\n // no need to do compensation.\n if (\n sourceBlackPoint[0] === 0 &&\n sourceBlackPoint[1] === 0 &&\n sourceBlackPoint[2] === 0\n ) {\n result[0] = XYZ_Flat[0];\n result[1] = XYZ_Flat[1];\n result[2] = XYZ_Flat[2];\n return;\n }\n\n // For the blackPoint calculation details, please see\n // http://www.adobe.com/content/dam/Adobe/en/devnet/photoshop/sdk/\n // AdobeBPC.pdf.\n // The destination blackPoint is the default blackPoint [0, 0, 0].\n const zeroDecodeL = decodeL(0);\n\n const X_DST = zeroDecodeL;\n const X_SRC = decodeL(sourceBlackPoint[0]);\n\n const Y_DST = zeroDecodeL;\n const Y_SRC = decodeL(sourceBlackPoint[1]);\n\n const Z_DST = zeroDecodeL;\n const Z_SRC = decodeL(sourceBlackPoint[2]);\n\n const X_Scale = (1 - X_DST) / (1 - X_SRC);\n const X_Offset = 1 - X_Scale;\n\n const Y_Scale = (1 - Y_DST) / (1 - Y_SRC);\n const Y_Offset = 1 - Y_Scale;\n\n const Z_Scale = (1 - Z_DST) / (1 - Z_SRC);\n const Z_Offset = 1 - Z_Scale;\n\n result[0] = XYZ_Flat[0] * X_Scale + X_Offset;\n result[1] = XYZ_Flat[1] * Y_Scale + Y_Offset;\n result[2] = XYZ_Flat[2] * Z_Scale + Z_Offset;\n }\n\n function normalizeWhitePointToFlat(sourceWhitePoint, XYZ_In, result) {\n // In case the whitePoint is already flat then there is no need to do\n // normalization.\n if (sourceWhitePoint[0] === 1 && sourceWhitePoint[2] === 1) {\n result[0] = XYZ_In[0];\n result[1] = XYZ_In[1];\n result[2] = XYZ_In[2];\n return;\n }\n\n const LMS = result;\n matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n\n const LMS_Flat = tempNormalizeMatrix;\n convertToFlat(sourceWhitePoint, LMS, LMS_Flat);\n\n matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_Flat, result);\n }\n\n function normalizeWhitePointToD65(sourceWhitePoint, XYZ_In, result) {\n const LMS = result;\n matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n\n const LMS_D65 = tempNormalizeMatrix;\n convertToD65(sourceWhitePoint, LMS, LMS_D65);\n\n matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_D65, result);\n }\n\n function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n // A, B and C represent a red, green and blue components of a calibrated\n // rgb space.\n const A = adjustToRange(0, 1, src[srcOffset] * scale);\n const B = adjustToRange(0, 1, src[srcOffset + 1] * scale);\n const C = adjustToRange(0, 1, src[srcOffset + 2] * scale);\n\n // A <---> AGR in the spec\n // B <---> BGG in the spec\n // C <---> CGB in the spec\n const AGR = A === 1 ? 1 : A ** cs.GR;\n const BGG = B === 1 ? 1 : B ** cs.GG;\n const CGB = C === 1 ? 1 : C ** cs.GB;\n\n // Computes intermediate variables L, M, N as per spec.\n // To decode X, Y, Z values map L, M, N directly to them.\n const X = cs.MXA * AGR + cs.MXB * BGG + cs.MXC * CGB;\n const Y = cs.MYA * AGR + cs.MYB * BGG + cs.MYC * CGB;\n const Z = cs.MZA * AGR + cs.MZB * BGG + cs.MZC * CGB;\n\n // The following calculations are based on this document:\n // http://www.adobe.com/content/dam/Adobe/en/devnet/photoshop/sdk/\n // AdobeBPC.pdf.\n const XYZ = tempConvertMatrix1;\n XYZ[0] = X;\n XYZ[1] = Y;\n XYZ[2] = Z;\n const XYZ_Flat = tempConvertMatrix2;\n\n normalizeWhitePointToFlat(cs.whitePoint, XYZ, XYZ_Flat);\n\n const XYZ_Black = tempConvertMatrix1;\n compensateBlackPoint(cs.blackPoint, XYZ_Flat, XYZ_Black);\n\n const XYZ_D65 = tempConvertMatrix2;\n normalizeWhitePointToD65(FLAT_WHITEPOINT_MATRIX, XYZ_Black, XYZ_D65);\n\n const SRGB = tempConvertMatrix1;\n matrixProduct(SRGB_D65_XYZ_TO_RGB_MATRIX, XYZ_D65, SRGB);\n\n // Convert the values to rgb range [0, 255].\n dest[destOffset] = sRGBTransferFunction(SRGB[0]) * 255;\n dest[destOffset + 1] = sRGBTransferFunction(SRGB[1]) * 255;\n dest[destOffset + 2] = sRGBTransferFunction(SRGB[2]) * 255;\n }\n\n // eslint-disable-next-line no-shadow\n class CalRGBCS extends ColorSpace {\n constructor(whitePoint, blackPoint, gamma, matrix) {\n super(\"CalRGB\", 3);\n\n if (!whitePoint) {\n throw new FormatError(\n \"WhitePoint missing - required for color space CalRGB\"\n );\n }\n blackPoint = blackPoint || new Float32Array(3);\n gamma = gamma || new Float32Array([1, 1, 1]);\n matrix = matrix || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);\n\n // Translate arguments to spec variables.\n const XW = whitePoint[0];\n const YW = whitePoint[1];\n const ZW = whitePoint[2];\n this.whitePoint = whitePoint;\n\n const XB = blackPoint[0];\n const YB = blackPoint[1];\n const ZB = blackPoint[2];\n this.blackPoint = blackPoint;\n\n this.GR = gamma[0];\n this.GG = gamma[1];\n this.GB = gamma[2];\n\n this.MXA = matrix[0];\n this.MYA = matrix[1];\n this.MZA = matrix[2];\n this.MXB = matrix[3];\n this.MYB = matrix[4];\n this.MZB = matrix[5];\n this.MXC = matrix[6];\n this.MYC = matrix[7];\n this.MZC = matrix[8];\n\n // Validate variables as per spec.\n if (XW < 0 || ZW < 0 || YW !== 1) {\n throw new FormatError(\n `Invalid WhitePoint components for ${this.name}` +\n \", no fallback available\"\n );\n }\n\n if (XB < 0 || YB < 0 || ZB < 0) {\n info(\n `Invalid BlackPoint for ${this.name} [${XB}, ${YB}, ${ZB}], ` +\n \"falling back to default.\"\n );\n this.blackPoint = new Float32Array(3);\n }\n\n if (this.GR < 0 || this.GG < 0 || this.GB < 0) {\n info(\n `Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ` +\n `${this.name}, falling back to default.`\n );\n this.GR = this.GG = this.GB = 1;\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'CalRGBCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'CalRGBCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const scale = 1 / ((1 << bits) - 1);\n\n for (let i = 0; i < count; ++i) {\n convertToRgb(this, src, srcOffset, dest, destOffset, scale);\n srcOffset += 3;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength * (3 + alpha01)) / 3) | 0;\n }\n }\n return CalRGBCS;\n})();\n\n/**\n * LabCS: Based on \"PDF Reference, Sixth Ed\", p.250\n *\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nconst LabCS = (function LabCSClosure() {\n // Function g(x) from spec\n function fn_g(x) {\n let result;\n if (x >= 6 / 29) {\n result = x ** 3;\n } else {\n result = (108 / 841) * (x - 4 / 29);\n }\n return result;\n }\n\n function decode(value, high1, low2, high2) {\n return low2 + (value * (high2 - low2)) / high1;\n }\n\n // If decoding is needed maxVal should be 2^bits per component - 1.\n function convertToRgb(cs, src, srcOffset, maxVal, dest, destOffset) {\n // XXX: Lab input is in the range of [0, 100], [amin, amax], [bmin, bmax]\n // not the usual [0, 1]. If a command like setFillColor is used the src\n // values will already be within the correct range. However, if we are\n // converting an image we have to map the values to the correct range given\n // above.\n // Ls,as,bs <---> L*,a*,b* in the spec\n let Ls = src[srcOffset];\n let as = src[srcOffset + 1];\n let bs = src[srcOffset + 2];\n if (maxVal !== false) {\n Ls = decode(Ls, maxVal, 0, 100);\n as = decode(as, maxVal, cs.amin, cs.amax);\n bs = decode(bs, maxVal, cs.bmin, cs.bmax);\n }\n\n // Adjust limits of 'as' and 'bs'\n if (as > cs.amax) {\n as = cs.amax;\n } else if (as < cs.amin) {\n as = cs.amin;\n }\n if (bs > cs.bmax) {\n bs = cs.bmax;\n } else if (bs < cs.bmin) {\n bs = cs.bmin;\n }\n\n // Computes intermediate variables X,Y,Z as per spec\n const M = (Ls + 16) / 116;\n const L = M + as / 500;\n const N = M - bs / 200;\n\n const X = cs.XW * fn_g(L);\n const Y = cs.YW * fn_g(M);\n const Z = cs.ZW * fn_g(N);\n\n let r, g, b;\n // Using different conversions for D50 and D65 white points,\n // per http://www.color.org/srgb.pdf\n if (cs.ZW < 1) {\n // Assuming D50 (X=0.9642, Y=1.00, Z=0.8249)\n r = X * 3.1339 + Y * -1.617 + Z * -0.4906;\n g = X * -0.9785 + Y * 1.916 + Z * 0.0333;\n b = X * 0.072 + Y * -0.229 + Z * 1.4057;\n } else {\n // Assuming D65 (X=0.9505, Y=1.00, Z=1.0888)\n r = X * 3.2406 + Y * -1.5372 + Z * -0.4986;\n g = X * -0.9689 + Y * 1.8758 + Z * 0.0415;\n b = X * 0.0557 + Y * -0.204 + Z * 1.057;\n }\n // Convert the color values to the [0,255] range (clamping is automatic).\n dest[destOffset] = Math.sqrt(r) * 255;\n dest[destOffset + 1] = Math.sqrt(g) * 255;\n dest[destOffset + 2] = Math.sqrt(b) * 255;\n }\n\n // eslint-disable-next-line no-shadow\n class LabCS extends ColorSpace {\n constructor(whitePoint, blackPoint, range) {\n super(\"Lab\", 3);\n\n if (!whitePoint) {\n throw new FormatError(\n \"WhitePoint missing - required for color space Lab\"\n );\n }\n blackPoint = blackPoint || [0, 0, 0];\n range = range || [-100, 100, -100, 100];\n\n // Translate args to spec variables\n this.XW = whitePoint[0];\n this.YW = whitePoint[1];\n this.ZW = whitePoint[2];\n this.amin = range[0];\n this.amax = range[1];\n this.bmin = range[2];\n this.bmax = range[3];\n\n // These are here just for completeness - the spec doesn't offer any\n // formulas that use BlackPoint in Lab\n this.XB = blackPoint[0];\n this.YB = blackPoint[1];\n this.ZB = blackPoint[2];\n\n // Validate vars as per spec\n if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n throw new FormatError(\n \"Invalid WhitePoint components, no fallback available\"\n );\n }\n\n if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n info(\"Invalid BlackPoint, falling back to default\");\n this.XB = this.YB = this.ZB = 0;\n }\n\n if (this.amin > this.amax || this.bmin > this.bmax) {\n info(\"Invalid Range, falling back to defaults\");\n this.amin = -100;\n this.amax = 100;\n this.bmin = -100;\n this.bmax = 100;\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'LabCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n convertToRgb(this, src, srcOffset, false, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'LabCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const maxVal = (1 << bits) - 1;\n for (let i = 0; i < count; i++) {\n convertToRgb(this, src, srcOffset, maxVal, dest, destOffset);\n srcOffset += 3;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength * (3 + alpha01)) / 3) | 0;\n }\n\n isDefaultDecode(decodeMap, bpc) {\n // XXX: Decoding is handled with the lab conversion because of the strange\n // ranges that are used.\n return true;\n }\n\n get usesZeroToOneRange() {\n return shadow(this, \"usesZeroToOneRange\", false);\n }\n }\n return LabCS;\n})();\n\nexport { ColorSpace };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable no-var */\n\nimport {\n AbortException,\n assert,\n CMapCompressionType,\n createPromiseCapability,\n FONT_IDENTITY_MATRIX,\n FormatError,\n IDENTITY_MATRIX,\n info,\n isArrayEqual,\n OPS,\n RenderingIntentFlag,\n shadow,\n stringToPDFString,\n TextRenderingMode,\n UNSUPPORTED_FEATURES,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport { CMapFactory, IdentityCMap } from \"./cmap.js\";\nimport { Cmd, Dict, EOF, isName, Name, Ref, RefSet } from \"./primitives.js\";\nimport { ErrorFont, Font } from \"./fonts.js\";\nimport { FontFlags, getFontType } from \"./fonts_utils.js\";\nimport {\n getEncoding,\n MacRomanEncoding,\n StandardEncoding,\n SymbolSetEncoding,\n WinAnsiEncoding,\n ZapfDingbatsEncoding,\n} from \"./encodings.js\";\nimport {\n getFontNameToFileMap,\n getSerifFonts,\n getStandardFontName,\n getStdFontMap,\n getSymbolsFonts,\n} from \"./standard_fonts.js\";\nimport {\n getNormalizedUnicodes,\n getUnicodeForGlyph,\n reverseIfRtl,\n} from \"./unicode.js\";\nimport { getTilingPatternIR, Pattern } from \"./pattern.js\";\nimport { getXfaFontDict, getXfaFontName } from \"./xfa_fonts.js\";\nimport { IdentityToUnicodeMap, ToUnicodeMap } from \"./to_unicode_map.js\";\nimport { isPDFFunction, PDFFunctionFactory } from \"./function.js\";\nimport { Lexer, Parser } from \"./parser.js\";\nimport {\n LocalColorSpaceCache,\n LocalGStateCache,\n LocalImageCache,\n LocalTilingPatternCache,\n} from \"./image_utils.js\";\nimport { NullStream, Stream } from \"./stream.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { bidi } from \"./bidi.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { getGlyphsUnicode } from \"./glyphlist.js\";\nimport { getLookupTableFactory } from \"./core_utils.js\";\nimport { getMetrics } from \"./metrics.js\";\nimport { MurmurHash3_64 } from \"../shared/murmurhash3.js\";\nimport { OperatorList } from \"./operator_list.js\";\nimport { PDFImage } from \"./image.js\";\nimport {BoundingBoxesCalculator} from \"./bounding_boxes\";\n\nconst DefaultPartialEvaluatorOptions = Object.freeze({\n maxImageSize: -1,\n disableFontFace: false,\n ignoreErrors: false,\n isEvalSupported: true,\n fontExtraProperties: false,\n useSystemFonts: true,\n cMapUrl: null,\n standardFontDataUrl: null,\n});\n\nconst PatternType = {\n TILING: 1,\n SHADING: 2,\n};\n\n// Optionally avoid sending individual, or very few, text chunks to reduce\n// `postMessage` overhead with ReadableStream (see issue 13962).\n//\n// PLEASE NOTE: This value should *not* be too large (it's used as a lower limit\n// in `enqueueChunk`), since that would cause streaming of textContent to become\n// essentially useless in practice by sending all (or most) chunks at once.\n// Also, a too large value would (indirectly) affect the main-thread `textLayer`\n// building negatively by forcing all textContent to be handled at once, which\n// could easily end up hurting *overall* performance (e.g. rendering as well).\nconst TEXT_CHUNK_BATCH_SIZE = 10;\n\nconst deferred = Promise.resolve();\n\n// Convert PDF blend mode names to HTML5 blend mode names.\nfunction normalizeBlendMode(value, parsingArray = false) {\n if (Array.isArray(value)) {\n // Use the first *supported* BM value in the Array (fixes issue11279.pdf).\n for (let i = 0, ii = value.length; i < ii; i++) {\n const maybeBM = normalizeBlendMode(value[i], /* parsingArray = */ true);\n if (maybeBM) {\n return maybeBM;\n }\n }\n warn(`Unsupported blend mode Array: ${value}`);\n return \"source-over\";\n }\n\n if (!(value instanceof Name)) {\n if (parsingArray) {\n return null;\n }\n return \"source-over\";\n }\n switch (value.name) {\n case \"Normal\":\n case \"Compatible\":\n return \"source-over\";\n case \"Multiply\":\n return \"multiply\";\n case \"Screen\":\n return \"screen\";\n case \"Overlay\":\n return \"overlay\";\n case \"Darken\":\n return \"darken\";\n case \"Lighten\":\n return \"lighten\";\n case \"ColorDodge\":\n return \"color-dodge\";\n case \"ColorBurn\":\n return \"color-burn\";\n case \"HardLight\":\n return \"hard-light\";\n case \"SoftLight\":\n return \"soft-light\";\n case \"Difference\":\n return \"difference\";\n case \"Exclusion\":\n return \"exclusion\";\n case \"Hue\":\n return \"hue\";\n case \"Saturation\":\n return \"saturation\";\n case \"Color\":\n return \"color\";\n case \"Luminosity\":\n return \"luminosity\";\n }\n if (parsingArray) {\n return null;\n }\n warn(`Unsupported blend mode: ${value.name}`);\n return \"source-over\";\n}\n\nfunction incrementCachedImageMaskCount(data) {\n if (\n data.fn === OPS.paintImageMaskXObject &&\n data.args[0] &&\n data.args[0].count > 0\n ) {\n data.args[0].count++;\n }\n}\n\n// Trying to minimize Date.now() usage and check every 100 time.\nclass TimeSlotManager {\n static get TIME_SLOT_DURATION_MS() {\n return shadow(this, \"TIME_SLOT_DURATION_MS\", 20);\n }\n\n static get CHECK_TIME_EVERY() {\n return shadow(this, \"CHECK_TIME_EVERY\", 100);\n }\n\n constructor() {\n this.reset();\n }\n\n check() {\n if (++this.checked < TimeSlotManager.CHECK_TIME_EVERY) {\n return false;\n }\n this.checked = 0;\n return this.endTime <= Date.now();\n }\n\n reset() {\n this.endTime = Date.now() + TimeSlotManager.TIME_SLOT_DURATION_MS;\n this.checked = 0;\n }\n}\n\nclass PartialEvaluator {\n constructor({\n xref,\n handler,\n pageIndex,\n idFactory,\n fontCache,\n builtInCMapCache,\n standardFontDataCache,\n globalImageCache,\n options = null,\n }) {\n this.xref = xref;\n this.handler = handler;\n this.pageIndex = pageIndex;\n this.idFactory = idFactory;\n this.fontCache = fontCache;\n this.builtInCMapCache = builtInCMapCache;\n this.standardFontDataCache = standardFontDataCache;\n this.globalImageCache = globalImageCache;\n this.options = options || DefaultPartialEvaluatorOptions;\n this.parsingType3Font = false;\n\n this._fetchBuiltInCMapBound = this.fetchBuiltInCMap.bind(this);\n }\n\n /**\n * Since Functions are only cached (locally) by reference, we can share one\n * `PDFFunctionFactory` instance within this `PartialEvaluator` instance.\n */\n get _pdfFunctionFactory() {\n const pdfFunctionFactory = new PDFFunctionFactory({\n xref: this.xref,\n isEvalSupported: this.options.isEvalSupported,\n });\n return shadow(this, \"_pdfFunctionFactory\", pdfFunctionFactory);\n }\n\n clone(newOptions = null) {\n const newEvaluator = Object.create(this);\n newEvaluator.options = Object.assign(\n Object.create(null),\n this.options,\n newOptions\n );\n return newEvaluator;\n }\n\n hasBlendModes(resources, nonBlendModesSet) {\n if (!(resources instanceof Dict)) {\n return false;\n }\n if (resources.objId && nonBlendModesSet.has(resources.objId)) {\n return false;\n }\n\n const processed = new RefSet(nonBlendModesSet);\n if (resources.objId) {\n processed.put(resources.objId);\n }\n\n const nodes = [resources],\n xref = this.xref;\n while (nodes.length) {\n const node = nodes.shift();\n // First check the current resources for blend modes.\n const graphicStates = node.get(\"ExtGState\");\n if (graphicStates instanceof Dict) {\n for (let graphicState of graphicStates.getRawValues()) {\n if (graphicState instanceof Ref) {\n if (processed.has(graphicState)) {\n continue; // The ExtGState has already been processed.\n }\n try {\n graphicState = xref.fetch(graphicState);\n } catch (ex) {\n // Avoid parsing a corrupt ExtGState more than once.\n processed.put(graphicState);\n\n info(`hasBlendModes - ignoring ExtGState: \"${ex}\".`);\n continue;\n }\n }\n if (!(graphicState instanceof Dict)) {\n continue;\n }\n if (graphicState.objId) {\n processed.put(graphicState.objId);\n }\n\n const bm = graphicState.get(\"BM\");\n if (bm instanceof Name) {\n if (bm.name !== \"Normal\") {\n return true;\n }\n continue;\n }\n if (bm !== undefined && Array.isArray(bm)) {\n for (const element of bm) {\n if (element instanceof Name && element.name !== \"Normal\") {\n return true;\n }\n }\n }\n }\n }\n // Descend into the XObjects to look for more resources and blend modes.\n const xObjects = node.get(\"XObject\");\n if (!(xObjects instanceof Dict)) {\n continue;\n }\n for (let xObject of xObjects.getRawValues()) {\n if (xObject instanceof Ref) {\n if (processed.has(xObject)) {\n // The XObject has already been processed, and by avoiding a\n // redundant `xref.fetch` we can *significantly* reduce the load\n // time for badly generated PDF files (fixes issue6961.pdf).\n continue;\n }\n try {\n xObject = xref.fetch(xObject);\n } catch (ex) {\n // Avoid parsing a corrupt XObject more than once.\n processed.put(xObject);\n\n info(`hasBlendModes - ignoring XObject: \"${ex}\".`);\n continue;\n }\n }\n if (!(xObject instanceof BaseStream)) {\n continue;\n }\n if (xObject.dict.objId) {\n processed.put(xObject.dict.objId);\n }\n const xResources = xObject.dict.get(\"Resources\");\n if (!(xResources instanceof Dict)) {\n continue;\n }\n // Checking objId to detect an infinite loop.\n if (xResources.objId && processed.has(xResources.objId)) {\n continue;\n }\n\n nodes.push(xResources);\n if (xResources.objId) {\n processed.put(xResources.objId);\n }\n }\n }\n\n // When no blend modes exist, there's no need re-fetch/re-parse any of the\n // processed `Ref`s again for subsequent pages. This helps reduce redundant\n // `XRef.fetch` calls for some documents (e.g. issue6961.pdf).\n for (const ref of processed) {\n nonBlendModesSet.put(ref);\n }\n return false;\n }\n\n async fetchBuiltInCMap(name) {\n const cachedData = this.builtInCMapCache.get(name);\n if (cachedData) {\n return cachedData;\n }\n let data;\n\n if (this.options.cMapUrl !== null) {\n // Only compressed CMaps are (currently) supported here.\n const url = `${this.options.cMapUrl}${name}.bcmap`;\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(\n `fetchBuiltInCMap: failed to fetch file \"${url}\" with \"${response.statusText}\".`\n );\n }\n data = {\n cMapData: new Uint8Array(await response.arrayBuffer()),\n compressionType: CMapCompressionType.BINARY,\n };\n } else {\n // Get the data on the main-thread instead.\n data = await this.handler.sendWithPromise(\"FetchBuiltInCMap\", { name });\n }\n\n if (data.compressionType !== CMapCompressionType.NONE) {\n // Given the size of uncompressed CMaps, only cache compressed ones.\n this.builtInCMapCache.set(name, data);\n }\n return data;\n }\n\n async fetchStandardFontData(name) {\n const cachedData = this.standardFontDataCache.get(name);\n if (cachedData) {\n return new Stream(cachedData);\n }\n\n // The symbol fonts are not consistent across platforms, always load the\n // standard font data for them.\n if (\n this.options.useSystemFonts &&\n name !== \"Symbol\" &&\n name !== \"ZapfDingbats\"\n ) {\n return null;\n }\n\n const standardFontNameToFileName = getFontNameToFileMap(),\n filename = standardFontNameToFileName[name];\n let data;\n\n if (this.options.standardFontDataUrl !== null) {\n const url = `${this.options.standardFontDataUrl}${filename}`;\n const response = await fetch(url);\n if (!response.ok) {\n warn(\n `fetchStandardFontData: failed to fetch file \"${url}\" with \"${response.statusText}\".`\n );\n } else {\n data = await response.arrayBuffer();\n }\n } else {\n // Get the data on the main-thread instead.\n try {\n data = await this.handler.sendWithPromise(\"FetchStandardFontData\", {\n filename,\n });\n } catch (e) {\n warn(\n `fetchStandardFontData: failed to fetch file \"${filename}\" with \"${e}\".`\n );\n }\n }\n\n if (!data) {\n return null;\n }\n // Cache the \"raw\" standard font data, to avoid fetching it repeatedly\n // (see e.g. issue 11399).\n this.standardFontDataCache.set(name, data);\n\n return new Stream(data);\n }\n\n async buildFormXObject(\n resources,\n xobj,\n smask,\n operatorList,\n task,\n initialState,\n localColorSpaceCache\n ) {\n const dict = xobj.dict;\n const matrix = dict.getArray(\"Matrix\");\n let bbox = dict.getArray(\"BBox\");\n if (Array.isArray(bbox) && bbox.length === 4) {\n bbox = Util.normalizeRect(bbox);\n } else {\n bbox = null;\n }\n\n let optionalContent, groupOptions;\n if (dict.has(\"OC\")) {\n optionalContent = await this.parseMarkedContentProps(\n dict.get(\"OC\"),\n resources\n );\n }\n if (optionalContent !== undefined) {\n operatorList.addOp(OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n }\n const group = dict.get(\"Group\");\n if (group) {\n groupOptions = {\n matrix,\n bbox,\n smask,\n isolated: false,\n knockout: false,\n };\n\n const groupSubtype = group.get(\"S\");\n let colorSpace = null;\n if (isName(groupSubtype, \"Transparency\")) {\n groupOptions.isolated = group.get(\"I\") || false;\n groupOptions.knockout = group.get(\"K\") || false;\n if (group.has(\"CS\")) {\n const cs = group.getRaw(\"CS\");\n\n const cachedColorSpace = ColorSpace.getCached(\n cs,\n this.xref,\n localColorSpaceCache\n );\n if (cachedColorSpace) {\n colorSpace = cachedColorSpace;\n } else {\n colorSpace = await this.parseColorSpace({\n cs,\n resources,\n localColorSpaceCache,\n });\n }\n }\n }\n\n if (smask && smask.backdrop) {\n colorSpace = colorSpace || ColorSpace.singletons.rgb;\n smask.backdrop = colorSpace.getRgb(smask.backdrop, 0);\n }\n\n operatorList.addOp(OPS.beginGroup, [groupOptions]);\n }\n\n // If it's a group, a new canvas will be created that is the size of the\n // bounding box and translated to the correct position so we don't need to\n // apply the bounding box to it.\n const args = group ? [matrix, null] : [matrix, bbox];\n operatorList.addOp(OPS.paintFormXObjectBegin, args);\n\n return this.getOperatorList({\n stream: xobj,\n task,\n resources: dict.get(\"Resources\") || resources,\n operatorList,\n initialState,\n }).then(function () {\n operatorList.addOp(OPS.paintFormXObjectEnd, []);\n\n if (group) {\n operatorList.addOp(OPS.endGroup, [groupOptions]);\n }\n\n if (optionalContent !== undefined) {\n operatorList.addOp(OPS.endMarkedContent, []);\n }\n });\n }\n\n _sendImgData(objId, imgData, cacheGlobally = false) {\n const transfers = imgData ? [imgData.bitmap || imgData.data.buffer] : null;\n\n if (this.parsingType3Font || cacheGlobally) {\n return this.handler.send(\n \"commonobj\",\n [objId, \"Image\", imgData],\n transfers\n );\n }\n return this.handler.send(\n \"obj\",\n [objId, this.pageIndex, \"Image\", imgData],\n transfers\n );\n }\n\n async buildPaintImageXObject({\n resources,\n image,\n isInline = false,\n operatorList,\n cacheKey,\n localImageCache,\n localColorSpaceCache,\n }) {\n const dict = image.dict;\n const imageRef = dict.objId;\n const w = dict.get(\"W\", \"Width\");\n const h = dict.get(\"H\", \"Height\");\n\n if (!(w && typeof w === \"number\") || !(h && typeof h === \"number\")) {\n warn(\"Image dimensions are missing, or not numbers.\");\n return;\n }\n const maxImageSize = this.options.maxImageSize;\n if (maxImageSize !== -1 && w * h > maxImageSize) {\n const msg = \"Image exceeded maximum allowed size and was removed.\";\n\n if (this.options.ignoreErrors) {\n warn(msg);\n return;\n }\n throw new Error(msg);\n }\n\n let optionalContent;\n if (dict.has(\"OC\")) {\n optionalContent = await this.parseMarkedContentProps(\n dict.get(\"OC\"),\n resources\n );\n }\n\n const imageMask = dict.get(\"IM\", \"ImageMask\") || false;\n let imgData, args;\n if (imageMask) {\n // This depends on a tmpCanvas being filled with the\n // current fillStyle, such that processing the pixel\n // data can't be done here. Instead of creating a\n // complete PDFImage, only read the information needed\n // for later.\n const interpolate = dict.get(\"I\", \"Interpolate\");\n const bitStrideLength = (w + 7) >> 3;\n const imgArray = image.getBytes(bitStrideLength * h);\n const decode = dict.getArray(\"D\", \"Decode\");\n\n if (this.parsingType3Font) {\n imgData = PDFImage.createRawMask({\n imgArray,\n width: w,\n height: h,\n imageIsFromDecodeStream: image instanceof DecodeStream,\n inverseDecode: !!decode && decode[0] > 0,\n interpolate,\n });\n\n imgData.cached = !!cacheKey;\n args = [imgData];\n\n operatorList.addImageOps(\n OPS.paintImageMaskXObject,\n args,\n optionalContent\n );\n\n if (cacheKey) {\n localImageCache.set(cacheKey, imageRef, {\n fn: OPS.paintImageMaskXObject,\n args,\n optionalContent,\n });\n }\n return;\n }\n\n imgData = PDFImage.createMask({\n imgArray,\n width: w,\n height: h,\n imageIsFromDecodeStream: image instanceof DecodeStream,\n inverseDecode: !!decode && decode[0] > 0,\n interpolate,\n });\n\n if (imgData.isSingleOpaquePixel) {\n // Handles special case of mainly LaTeX documents which use image\n // masks to draw lines with the current fill style.\n operatorList.addImageOps(\n OPS.paintSolidColorImageMask,\n [],\n optionalContent\n );\n\n if (cacheKey) {\n localImageCache.set(cacheKey, imageRef, {\n fn: OPS.paintSolidColorImageMask,\n args: [],\n optionalContent,\n });\n }\n return;\n }\n\n const objId = `mask_${this.idFactory.createObjId()}`;\n operatorList.addDependency(objId);\n this._sendImgData(objId, imgData);\n\n args = [\n {\n data: objId,\n width: imgData.width,\n height: imgData.height,\n interpolate: imgData.interpolate,\n count: 1,\n },\n ];\n operatorList.addImageOps(\n OPS.paintImageMaskXObject,\n args,\n optionalContent\n );\n\n if (cacheKey) {\n localImageCache.set(cacheKey, imageRef, {\n fn: OPS.paintImageMaskXObject,\n args,\n optionalContent,\n });\n }\n return;\n }\n\n const softMask = dict.get(\"SM\", \"SMask\") || false;\n const mask = dict.get(\"Mask\") || false;\n\n const SMALL_IMAGE_DIMENSIONS = 200;\n // Inlining small images into the queue as RGB data\n if (isInline && !softMask && !mask && w + h < SMALL_IMAGE_DIMENSIONS) {\n const imageObj = new PDFImage({\n xref: this.xref,\n res: resources,\n image,\n isInline,\n pdfFunctionFactory: this._pdfFunctionFactory,\n localColorSpaceCache,\n });\n // We force the use of RGBA_32BPP images here, because we can't handle\n // any other kind.\n imgData = imageObj.createImageData(/* forceRGBA = */ true);\n operatorList.addImageOps(\n OPS.paintInlineImageXObject,\n [imgData],\n optionalContent\n );\n return;\n }\n\n // If there is no imageMask, create the PDFImage and a lot\n // of image processing can be done here.\n let objId = `img_${this.idFactory.createObjId()}`,\n cacheGlobally = false;\n\n if (this.parsingType3Font) {\n objId = `${this.idFactory.getDocId()}_type3_${objId}`;\n } else if (imageRef) {\n cacheGlobally = this.globalImageCache.shouldCache(\n imageRef,\n this.pageIndex\n );\n\n if (cacheGlobally) {\n objId = `${this.idFactory.getDocId()}_${objId}`;\n }\n }\n\n // Ensure that the dependency is added before the image is decoded.\n operatorList.addDependency(objId);\n args = [objId, w, h];\n\n PDFImage.buildImage({\n xref: this.xref,\n res: resources,\n image,\n isInline,\n pdfFunctionFactory: this._pdfFunctionFactory,\n localColorSpaceCache,\n })\n .then(imageObj => {\n imgData = imageObj.createImageData(/* forceRGBA = */ false);\n\n if (cacheKey && imageRef && cacheGlobally) {\n this.globalImageCache.addByteSize(imageRef, imgData.data.length);\n }\n return this._sendImgData(objId, imgData, cacheGlobally);\n })\n .catch(reason => {\n warn(`Unable to decode image \"${objId}\": \"${reason}\".`);\n\n return this._sendImgData(objId, /* imgData = */ null, cacheGlobally);\n });\n\n operatorList.addImageOps(OPS.paintImageXObject, args, optionalContent);\n\n if (cacheKey) {\n localImageCache.set(cacheKey, imageRef, {\n fn: OPS.paintImageXObject,\n args,\n optionalContent,\n });\n\n if (imageRef) {\n assert(!isInline, \"Cannot cache an inline image globally.\");\n this.globalImageCache.addPageIndex(imageRef, this.pageIndex);\n\n if (cacheGlobally) {\n this.globalImageCache.setData(imageRef, {\n objId,\n fn: OPS.paintImageXObject,\n args,\n optionalContent,\n byteSize: 0, // Temporary entry, note `addByteSize` above.\n });\n }\n }\n }\n }\n\n handleSMask(\n smask,\n resources,\n operatorList,\n task,\n stateManager,\n localColorSpaceCache\n ) {\n const smaskContent = smask.get(\"G\");\n const smaskOptions = {\n subtype: smask.get(\"S\").name,\n backdrop: smask.get(\"BC\"),\n };\n\n // The SMask might have a alpha/luminosity value transfer function --\n // we will build a map of integer values in range 0..255 to be fast.\n const transferObj = smask.get(\"TR\");\n if (isPDFFunction(transferObj)) {\n const transferFn = this._pdfFunctionFactory.create(transferObj);\n const transferMap = new Uint8Array(256);\n const tmp = new Float32Array(1);\n for (let i = 0; i < 256; i++) {\n tmp[0] = i / 255;\n transferFn(tmp, 0, tmp, 0);\n transferMap[i] = (tmp[0] * 255) | 0;\n }\n smaskOptions.transferMap = transferMap;\n }\n\n return this.buildFormXObject(\n resources,\n smaskContent,\n smaskOptions,\n operatorList,\n task,\n stateManager.state.clone(),\n localColorSpaceCache\n );\n }\n\n handleTransferFunction(tr) {\n let transferArray;\n if (Array.isArray(tr)) {\n transferArray = tr;\n } else if (isPDFFunction(tr)) {\n transferArray = [tr];\n } else {\n return null; // Not a valid transfer function entry.\n }\n\n const transferMaps = [];\n let numFns = 0,\n numEffectfulFns = 0;\n for (const entry of transferArray) {\n const transferObj = this.xref.fetchIfRef(entry);\n numFns++;\n\n if (isName(transferObj, \"Identity\")) {\n transferMaps.push(null);\n continue;\n } else if (!isPDFFunction(transferObj)) {\n return null; // Not a valid transfer function object.\n }\n\n const transferFn = this._pdfFunctionFactory.create(transferObj);\n const transferMap = new Uint8Array(256),\n tmp = new Float32Array(1);\n for (let j = 0; j < 256; j++) {\n tmp[0] = j / 255;\n transferFn(tmp, 0, tmp, 0);\n transferMap[j] = (tmp[0] * 255) | 0;\n }\n transferMaps.push(transferMap);\n numEffectfulFns++;\n }\n\n if (!(numFns === 1 || numFns === 4)) {\n return null; // Only 1 or 4 functions are supported, by the specification.\n }\n if (numEffectfulFns === 0) {\n return null; // Only /Identity transfer functions found, which are no-ops.\n }\n return transferMaps;\n }\n\n handleTilingType(\n fn,\n color,\n resources,\n pattern,\n patternDict,\n operatorList,\n task,\n localTilingPatternCache\n ) {\n // Create an IR of the pattern code.\n const tilingOpList = new OperatorList();\n // Merge the available resources, to prevent issues when the patternDict\n // is missing some /Resources entries (fixes issue6541.pdf).\n const patternResources = Dict.merge({\n xref: this.xref,\n dictArray: [patternDict.get(\"Resources\"), resources],\n });\n\n return this.getOperatorList({\n stream: pattern,\n task,\n resources: patternResources,\n operatorList: tilingOpList,\n })\n .then(function () {\n const operatorListIR = tilingOpList.getIR();\n const tilingPatternIR = getTilingPatternIR(\n operatorListIR,\n patternDict,\n color\n );\n // Add the dependencies to the parent operator list so they are\n // resolved before the sub operator list is executed synchronously.\n operatorList.addDependencies(tilingOpList.dependencies);\n operatorList.addOp(fn, tilingPatternIR);\n\n if (patternDict.objId) {\n localTilingPatternCache.set(/* name = */ null, patternDict.objId, {\n operatorListIR,\n dict: patternDict,\n });\n }\n })\n .catch(reason => {\n if (reason instanceof AbortException) {\n return;\n }\n if (this.options.ignoreErrors) {\n // Error(s) in the TilingPattern -- sending unsupported feature\n // notification and allow rendering to continue.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorTilingPattern,\n });\n warn(`handleTilingType - ignoring pattern: \"${reason}\".`);\n return;\n }\n throw reason;\n });\n }\n\n handleSetFont(\n resources,\n fontArgs,\n fontRef,\n operatorList,\n task,\n state,\n fallbackFontDict = null,\n cssFontInfo = null\n ) {\n const fontName =\n fontArgs && fontArgs[0] instanceof Name ? fontArgs[0].name : null;\n\n return this.loadFont(\n fontName,\n fontRef,\n resources,\n fallbackFontDict,\n cssFontInfo\n )\n .then(translated => {\n if (!translated.font.isType3Font) {\n return translated;\n }\n return translated\n .loadType3Data(this, resources, task)\n .then(function () {\n // Add the dependencies to the parent operatorList so they are\n // resolved before Type3 operatorLists are executed synchronously.\n operatorList.addDependencies(translated.type3Dependencies);\n\n return translated;\n })\n .catch(reason => {\n // Error in the font data -- sending unsupported feature\n // notification.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorFontLoadType3,\n });\n return new TranslatedFont({\n loadedName: \"g_font_error\",\n font: new ErrorFont(`Type3 font load error: ${reason}`),\n dict: translated.font,\n evaluatorOptions: this.options,\n });\n });\n })\n .then(translated => {\n state.font = translated.font;\n translated.send(this.handler);\n return translated;\n });\n }\n\n handleText(chars, state) {\n const font = state.font;\n const glyphs = font.charsToGlyphs(chars);\n\n if (font.data) {\n const isAddToPathSet = !!(\n state.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG\n );\n if (\n isAddToPathSet ||\n state.fillColorSpace.name === \"Pattern\" ||\n font.disableFontFace ||\n this.options.disableFontFace\n ) {\n PartialEvaluator.buildFontPaths(\n font,\n glyphs,\n this.handler,\n this.options\n );\n }\n }\n return glyphs;\n }\n\n ensureStateFont(state) {\n if (state.font) {\n return;\n }\n const reason = new FormatError(\n \"Missing setFont (Tf) operator before text rendering operator.\"\n );\n\n if (this.options.ignoreErrors) {\n // Missing setFont operator before text rendering operator -- sending\n // unsupported feature notification and allow rendering to continue.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorFontState,\n });\n warn(`ensureStateFont: \"${reason}\".`);\n return;\n }\n throw reason;\n }\n\n async setGState({\n resources,\n gState,\n operatorList,\n cacheKey,\n task,\n stateManager,\n localGStateCache,\n localColorSpaceCache,\n }) {\n const gStateRef = gState.objId;\n let isSimpleGState = true;\n // This array holds the converted/processed state data.\n const gStateObj = [];\n const gStateKeys = gState.getKeys();\n let promise = Promise.resolve();\n for (let i = 0, ii = gStateKeys.length; i < ii; i++) {\n const key = gStateKeys[i];\n const value = gState.get(key);\n switch (key) {\n case \"Type\":\n break;\n case \"LW\":\n case \"LC\":\n case \"LJ\":\n case \"ML\":\n case \"D\":\n case \"RI\":\n case \"FL\":\n case \"CA\":\n case \"ca\":\n gStateObj.push([key, value]);\n break;\n case \"Font\":\n isSimpleGState = false;\n\n promise = promise.then(() => {\n return this.handleSetFont(\n resources,\n null,\n value[0],\n operatorList,\n task,\n stateManager.state\n ).then(function (translated) {\n operatorList.addDependency(translated.loadedName);\n gStateObj.push([key, [translated.loadedName, value[1]]]);\n });\n });\n break;\n case \"BM\":\n gStateObj.push([key, normalizeBlendMode(value)]);\n break;\n case \"SMask\":\n if (isName(value, \"None\")) {\n gStateObj.push([key, false]);\n break;\n }\n if (value instanceof Dict) {\n isSimpleGState = false;\n\n promise = promise.then(() => {\n return this.handleSMask(\n value,\n resources,\n operatorList,\n task,\n stateManager,\n localColorSpaceCache\n );\n });\n gStateObj.push([key, true]);\n } else {\n warn(\"Unsupported SMask type\");\n }\n break;\n case \"TR\":\n const transferMaps = this.handleTransferFunction(value);\n gStateObj.push([key, transferMaps]);\n break;\n // Only generate info log messages for the following since\n // they are unlikely to have a big impact on the rendering.\n case \"OP\":\n case \"op\":\n case \"OPM\":\n case \"BG\":\n case \"BG2\":\n case \"UCR\":\n case \"UCR2\":\n case \"TR2\":\n case \"HT\":\n case \"SM\":\n case \"SA\":\n case \"AIS\":\n case \"TK\":\n // TODO implement these operators.\n info(\"graphic state operator \" + key);\n break;\n default:\n info(\"Unknown graphic state operator \" + key);\n break;\n }\n }\n return promise.then(function () {\n if (gStateObj.length > 0) {\n operatorList.addOp(OPS.setGState, [gStateObj]);\n }\n\n if (isSimpleGState) {\n localGStateCache.set(cacheKey, gStateRef, gStateObj);\n }\n });\n }\n\n loadFont(\n fontName,\n font,\n resources,\n fallbackFontDict = null,\n cssFontInfo = null\n ) {\n const errorFont = async () => {\n return new TranslatedFont({\n loadedName: \"g_font_error\",\n font: new ErrorFont(`Font \"${fontName}\" is not available.`),\n dict: font,\n evaluatorOptions: this.options,\n });\n };\n\n const xref = this.xref;\n let fontRef;\n if (font) {\n // Loading by ref.\n if (!(font instanceof Ref)) {\n throw new FormatError('The \"font\" object should be a reference.');\n }\n fontRef = font;\n } else {\n // Loading by name.\n const fontRes = resources.get(\"Font\");\n if (fontRes) {\n fontRef = fontRes.getRaw(fontName);\n }\n }\n if (!fontRef) {\n const partialMsg = `Font \"${\n fontName || (font && font.toString())\n }\" is not available`;\n\n if (!this.options.ignoreErrors && !this.parsingType3Font) {\n warn(`${partialMsg}.`);\n return errorFont();\n }\n // Font not found -- sending unsupported feature notification.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorFontMissing,\n });\n warn(`${partialMsg} -- attempting to fallback to a default font.`);\n\n // Falling back to a default font to avoid completely broken rendering,\n // but note that there're no guarantees that things will look \"correct\".\n if (fallbackFontDict) {\n fontRef = fallbackFontDict;\n } else {\n fontRef = PartialEvaluator.fallbackFontDict;\n }\n }\n\n if (this.parsingType3Font && this.type3FontRefs.has(fontRef)) {\n return errorFont();\n }\n\n if (this.fontCache.has(fontRef)) {\n return this.fontCache.get(fontRef);\n }\n\n font = xref.fetchIfRef(fontRef);\n if (!(font instanceof Dict)) {\n return errorFont();\n }\n\n // We are holding `font.cacheKey` references only for `fontRef`s that\n // are not actually `Ref`s, but rather `Dict`s. See explanation below.\n if (font.cacheKey && this.fontCache.has(font.cacheKey)) {\n return this.fontCache.get(font.cacheKey);\n }\n\n const fontCapability = createPromiseCapability();\n\n let preEvaluatedFont;\n try {\n preEvaluatedFont = this.preEvaluateFont(font);\n preEvaluatedFont.cssFontInfo = cssFontInfo;\n } catch (reason) {\n warn(`loadFont - preEvaluateFont failed: \"${reason}\".`);\n return errorFont();\n }\n const { descriptor, hash } = preEvaluatedFont;\n\n const fontRefIsRef = fontRef instanceof Ref;\n let fontID;\n if (fontRefIsRef) {\n fontID = `f${fontRef.toString()}`;\n }\n\n if (hash && descriptor instanceof Dict) {\n if (!descriptor.fontAliases) {\n descriptor.fontAliases = Object.create(null);\n }\n const fontAliases = descriptor.fontAliases;\n\n if (fontAliases[hash]) {\n const aliasFontRef = fontAliases[hash].aliasRef;\n if (fontRefIsRef && aliasFontRef && this.fontCache.has(aliasFontRef)) {\n this.fontCache.putAlias(fontRef, aliasFontRef);\n return this.fontCache.get(fontRef);\n }\n } else {\n fontAliases[hash] = {\n fontID: this.idFactory.createFontId(),\n };\n }\n\n if (fontRefIsRef) {\n fontAliases[hash].aliasRef = fontRef;\n }\n fontID = fontAliases[hash].fontID;\n }\n\n // Workaround for bad PDF generators that reference fonts incorrectly,\n // where `fontRef` is a `Dict` rather than a `Ref` (fixes bug946506.pdf).\n // In this case we cannot put the font into `this.fontCache` (which is\n // a `RefSetCache`), since it's not possible to use a `Dict` as a key.\n //\n // However, if we don't cache the font it's not possible to remove it\n // when `cleanup` is triggered from the API, which causes issues on\n // subsequent rendering operations (see issue7403.pdf) and would force us\n // to unnecessarily load the same fonts over and over.\n //\n // Instead, we cheat a bit by using a modified `fontID` as a key in\n // `this.fontCache`, to allow the font to be cached.\n // NOTE: This works because `RefSetCache` calls `toString()` on provided\n // keys. Also, since `fontRef` is used when getting cached fonts,\n // we'll not accidentally match fonts cached with the `fontID`.\n if (fontRefIsRef) {\n this.fontCache.put(fontRef, fontCapability.promise);\n } else {\n if (!fontID) {\n fontID = this.idFactory.createFontId();\n }\n font.cacheKey = `cacheKey_${fontID}`;\n this.fontCache.put(font.cacheKey, fontCapability.promise);\n }\n assert(\n fontID && fontID.startsWith(\"f\"),\n 'The \"fontID\" must be (correctly) defined.'\n );\n\n // Keep track of each font we translated so the caller can\n // load them asynchronously before calling display on a page.\n font.loadedName = `${this.idFactory.getDocId()}_${fontID}`;\n\n this.translateFont(preEvaluatedFont)\n .then(translatedFont => {\n if (translatedFont.fontType !== undefined) {\n xref.stats.addFontType(translatedFont.fontType);\n }\n\n fontCapability.resolve(\n new TranslatedFont({\n loadedName: font.loadedName,\n font: translatedFont,\n dict: font,\n evaluatorOptions: this.options,\n })\n );\n })\n .catch(reason => {\n // TODO fontCapability.reject?\n // Error in the font data -- sending unsupported feature notification.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorFontTranslate,\n });\n warn(`loadFont - translateFont failed: \"${reason}\".`);\n\n try {\n // error, but it's still nice to have font type reported\n const fontFile3 = descriptor && descriptor.get(\"FontFile3\");\n const subtype = fontFile3 && fontFile3.get(\"Subtype\");\n const fontType = getFontType(\n preEvaluatedFont.type,\n subtype && subtype.name\n );\n if (fontType !== undefined) {\n xref.stats.addFontType(fontType);\n }\n } catch (ex) {}\n\n fontCapability.resolve(\n new TranslatedFont({\n loadedName: font.loadedName,\n font: new ErrorFont(\n reason instanceof Error ? reason.message : reason\n ),\n dict: font,\n evaluatorOptions: this.options,\n })\n );\n });\n return fontCapability.promise;\n }\n\n buildPath(operatorList, fn, args, parsingText = false) {\n const lastIndex = operatorList.length - 1;\n if (!args) {\n args = [];\n }\n let minMax;\n if (\n lastIndex < 0 ||\n operatorList.fnArray[lastIndex] !== OPS.constructPath\n ) {\n // Handle corrupt PDF documents that contains path operators inside of\n // text objects, which may shift subsequent text, by enclosing the path\n // operator in save/restore operators (fixes issue10542_reduced.pdf).\n //\n // Note that this will effectively disable the optimization in the\n // `else` branch below, but given that this type of corruption is\n // *extremely* rare that shouldn't really matter much in practice.\n if (parsingText) {\n warn(`Encountered path operator \"${fn}\" inside of a text object.`);\n operatorList.addOp(OPS.save, null);\n }\n\n minMax = [Infinity, -Infinity, Infinity, -Infinity];\n operatorList.addOp(OPS.constructPath, [[fn], args, minMax]);\n\n if (parsingText) {\n operatorList.addOp(OPS.restore, null);\n }\n } else {\n const opArgs = operatorList.argsArray[lastIndex];\n opArgs[0].push(fn);\n Array.prototype.push.apply(opArgs[1], args);\n minMax = opArgs[2];\n }\n\n // Compute min/max in the worker instead of the main thread.\n // If the current matrix (when drawing) is a scaling one\n // then min/max can be easily computed in using those values.\n // Only rectangle, lineTo and moveTo are handled here since\n // Bezier stuff requires to have the starting point.\n switch (fn) {\n case OPS.rectangle:\n minMax[0] = Math.min(minMax[0], args[0], args[0] + args[2]);\n minMax[1] = Math.max(minMax[1], args[0], args[0] + args[2]);\n minMax[2] = Math.min(minMax[2], args[1], args[1] + args[3]);\n minMax[3] = Math.max(minMax[3], args[1], args[1] + args[3]);\n break;\n case OPS.moveTo:\n case OPS.lineTo:\n minMax[0] = Math.min(minMax[0], args[0]);\n minMax[1] = Math.max(minMax[1], args[0]);\n minMax[2] = Math.min(minMax[2], args[1]);\n minMax[3] = Math.max(minMax[3], args[1]);\n break;\n }\n }\n\n parseColorSpace({ cs, resources, localColorSpaceCache }) {\n return ColorSpace.parseAsync({\n cs,\n xref: this.xref,\n resources,\n pdfFunctionFactory: this._pdfFunctionFactory,\n localColorSpaceCache,\n }).catch(reason => {\n if (reason instanceof AbortException) {\n return null;\n }\n if (this.options.ignoreErrors) {\n // Error(s) in the ColorSpace -- sending unsupported feature\n // notification and allow rendering to continue.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorColorSpace,\n });\n warn(`parseColorSpace - ignoring ColorSpace: \"${reason}\".`);\n return null;\n }\n throw reason;\n });\n }\n\n parseShading({\n shading,\n resources,\n localColorSpaceCache,\n localShadingPatternCache,\n }) {\n // Shadings and patterns may be referenced by the same name but the resource\n // dictionary could be different so we can't use the name for the cache key.\n let id = localShadingPatternCache.get(shading);\n if (!id) {\n var shadingFill = Pattern.parseShading(\n shading,\n this.xref,\n resources,\n this.handler,\n this._pdfFunctionFactory,\n localColorSpaceCache\n );\n const patternIR = shadingFill.getIR();\n id = `pattern_${this.idFactory.createObjId()}`;\n localShadingPatternCache.set(shading, id);\n this.handler.send(\"obj\", [id, this.pageIndex, \"Pattern\", patternIR]);\n }\n return id;\n }\n\n handleColorN(\n operatorList,\n fn,\n args,\n cs,\n patterns,\n resources,\n task,\n localColorSpaceCache,\n localTilingPatternCache,\n localShadingPatternCache\n ) {\n // compile tiling patterns\n const patternName = args.pop();\n // SCN/scn applies patterns along with normal colors\n if (patternName instanceof Name) {\n const rawPattern = patterns.getRaw(patternName.name);\n\n const localTilingPattern =\n rawPattern instanceof Ref &&\n localTilingPatternCache.getByRef(rawPattern);\n if (localTilingPattern) {\n try {\n const color = cs.base ? cs.base.getRgb(args, 0) : null;\n const tilingPatternIR = getTilingPatternIR(\n localTilingPattern.operatorListIR,\n localTilingPattern.dict,\n color\n );\n operatorList.addOp(fn, tilingPatternIR);\n return undefined;\n } catch (ex) {\n // Handle any errors during normal TilingPattern parsing.\n }\n }\n\n const pattern = this.xref.fetchIfRef(rawPattern);\n if (pattern) {\n const dict = pattern instanceof BaseStream ? pattern.dict : pattern;\n const typeNum = dict.get(\"PatternType\");\n\n if (typeNum === PatternType.TILING) {\n const color = cs.base ? cs.base.getRgb(args, 0) : null;\n return this.handleTilingType(\n fn,\n color,\n resources,\n pattern,\n dict,\n operatorList,\n task,\n localTilingPatternCache\n );\n } else if (typeNum === PatternType.SHADING) {\n const shading = dict.get(\"Shading\");\n const matrix = dict.getArray(\"Matrix\");\n const objId = this.parseShading({\n shading,\n resources,\n localColorSpaceCache,\n localShadingPatternCache,\n });\n operatorList.addOp(fn, [\"Shading\", objId, matrix]);\n return undefined;\n }\n throw new FormatError(`Unknown PatternType: ${typeNum}`);\n }\n }\n throw new FormatError(`Unknown PatternName: ${patternName}`);\n }\n\n _parseVisibilityExpression(array, nestingCounter, currentResult) {\n const MAX_NESTING = 10;\n if (++nestingCounter > MAX_NESTING) {\n warn(\"Visibility expression is too deeply nested\");\n return;\n }\n const length = array.length;\n const operator = this.xref.fetchIfRef(array[0]);\n if (length < 2 || !(operator instanceof Name)) {\n warn(\"Invalid visibility expression\");\n return;\n }\n switch (operator.name) {\n case \"And\":\n case \"Or\":\n case \"Not\":\n currentResult.push(operator.name);\n break;\n default:\n warn(`Invalid operator ${operator.name} in visibility expression`);\n return;\n }\n for (let i = 1; i < length; i++) {\n const raw = array[i];\n const object = this.xref.fetchIfRef(raw);\n if (Array.isArray(object)) {\n const nestedResult = [];\n currentResult.push(nestedResult);\n // Recursively parse a subarray.\n this._parseVisibilityExpression(object, nestingCounter, nestedResult);\n } else if (raw instanceof Ref) {\n // Reference to an OCG dictionary.\n currentResult.push(raw.toString());\n }\n }\n }\n\n async parseMarkedContentProps(contentProperties, resources) {\n let optionalContent;\n if (contentProperties instanceof Name) {\n const properties = resources.get(\"Properties\");\n optionalContent = properties.get(contentProperties.name);\n } else if (contentProperties instanceof Dict) {\n optionalContent = contentProperties;\n } else {\n throw new FormatError(\"Optional content properties malformed.\");\n }\n\n const optionalContentType = optionalContent.get(\"Type\").name;\n if (optionalContentType === \"OCG\") {\n return {\n type: optionalContentType,\n id: optionalContent.objId,\n };\n } else if (optionalContentType === \"OCMD\") {\n const expression = optionalContent.get(\"VE\");\n if (Array.isArray(expression)) {\n const result = [];\n this._parseVisibilityExpression(expression, 0, result);\n if (result.length > 0) {\n return {\n type: \"OCMD\",\n expression: result,\n };\n }\n }\n\n const optionalContentGroups = optionalContent.get(\"OCGs\");\n if (\n Array.isArray(optionalContentGroups) ||\n optionalContentGroups instanceof Dict\n ) {\n const groupIds = [];\n if (Array.isArray(optionalContentGroups)) {\n for (const ocg of optionalContentGroups) {\n groupIds.push(ocg.toString());\n }\n } else {\n // Dictionary, just use the obj id.\n groupIds.push(optionalContentGroups.objId);\n }\n\n return {\n type: optionalContentType,\n ids: groupIds,\n policy:\n optionalContent.get(\"P\") instanceof Name\n ? optionalContent.get(\"P\").name\n : null,\n expression: null,\n };\n } else if (optionalContentGroups instanceof Ref) {\n return {\n type: optionalContentType,\n id: optionalContentGroups.toString(),\n };\n }\n }\n return null;\n }\n\n getOperatorList({\n stream,\n task,\n resources,\n operatorList,\n initialState = null,\n fallbackFontDict = null,\n intent,\n }) {\n // Ensure that `resources`/`initialState` is correctly initialized,\n // even if the provided parameter is e.g. `null`.\n resources = resources || Dict.empty;\n initialState = initialState || new EvalState();\n\n if (!operatorList) {\n throw new Error('getOperatorList: missing \"operatorList\" parameter');\n }\n\n var boundingBoxCalculator = new BoundingBoxesCalculator(!(intent & RenderingIntentFlag.OPLIST));\n var self = this;\n var xref = this.xref;\n let parsingText = false;\n const localImageCache = new LocalImageCache();\n const localColorSpaceCache = new LocalColorSpaceCache();\n const localGStateCache = new LocalGStateCache();\n const localTilingPatternCache = new LocalTilingPatternCache();\n const localShadingPatternCache = new Map();\n\n const xobjs = resources.get(\"XObject\") || Dict.empty;\n const patterns = resources.get(\"Pattern\") || Dict.empty;\n const stateManager = new StateManager(initialState);\n const preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n const timeSlotManager = new TimeSlotManager();\n\n function closePendingRestoreOPS(argument) {\n for (let i = 0, ii = preprocessor.savedStatesDepth; i < ii; i++) {\n operatorList.addOp(OPS.restore, []);\n }\n }\n\n return new Promise(function promiseBody(resolve, reject) {\n const next = function (promise) {\n Promise.all([promise, operatorList.ready]).then(function () {\n try {\n promiseBody(resolve, reject);\n } catch (ex) {\n reject(ex);\n }\n }, reject);\n };\n task.ensureNotTerminated();\n timeSlotManager.reset();\n\n const operation = {};\n let stop, i, ii, cs, name, isValidName;\n while (!(stop = timeSlotManager.check())) {\n // The arguments parsed by read() are used beyond this loop, so we\n // cannot reuse the same array on each iteration. Therefore we pass\n // in |null| as the initial value (see the comment on\n // EvaluatorPreprocessor_read() for why).\n operation.args = null;\n if (!preprocessor.read(operation)) {\n break;\n }\n let args = operation.args;\n let fn = operation.fn;\n boundingBoxCalculator.incrementOperation(fn);\n\n switch (fn | 0) {\n case OPS.paintXObject:\n // eagerly compile XForm objects\n isValidName = args[0] instanceof Name;\n name = args[0].name;\n\n if (isValidName) {\n const localImage = localImageCache.getByName(name);\n if (localImage) {\n boundingBoxCalculator.parseOperator(OPS.paintXObject, [\"Image\"]);\n operatorList.addImageOps(\n localImage.fn,\n localImage.args,\n localImage.optionalContent\n );\n\n incrementCachedImageMaskCount(localImage);\n args = null;\n continue;\n }\n }\n\n next(\n new Promise(function (resolveXObject, rejectXObject) {\n if (!isValidName) {\n throw new FormatError(\"XObject must be referred to by name.\");\n }\n\n let xobj = xobjs.getRaw(name);\n if (xobj instanceof Ref) {\n const localImage = localImageCache.getByRef(xobj);\n if (localImage) {\n boundingBoxCalculator.parseOperator(OPS.paintXObject, [\"Image\"]);\n operatorList.addImageOps(\n localImage.fn,\n localImage.args,\n localImage.optionalContent\n );\n\n incrementCachedImageMaskCount(localImage);\n resolveXObject();\n return;\n }\n\n const globalImage = self.globalImageCache.getData(\n xobj,\n self.pageIndex\n );\n if (globalImage) {\n boundingBoxCalculator.parseOperator(OPS.paintXObject, [\"Image\"]);\n operatorList.addDependency(globalImage.objId);\n operatorList.addImageOps(\n globalImage.fn,\n globalImage.args,\n globalImage.optionalContent\n );\n\n resolveXObject();\n return;\n }\n\n xobj = xref.fetch(xobj);\n }\n\n if (!(xobj instanceof BaseStream)) {\n throw new FormatError(\"XObject should be a stream\");\n }\n\n const type = xobj.dict.get(\"Subtype\");\n if (!(type instanceof Name)) {\n throw new FormatError(\"XObject should have a Name subtype\");\n }\n\n if (type.name === \"Form\") {\n stateManager.save();\n self\n .buildFormXObject(\n resources,\n xobj,\n null,\n operatorList,\n task,\n stateManager.state.clone(),\n localColorSpaceCache\n )\n .then(function () {\n stateManager.restore();\n resolveXObject();\n }, rejectXObject);\n return;\n } else if (type.name === \"Image\") {\n boundingBoxCalculator.parseOperator(OPS.paintXObject, [type.name]);\n self\n .buildPaintImageXObject({\n resources,\n image: xobj,\n operatorList,\n cacheKey: name,\n localImageCache,\n localColorSpaceCache,\n })\n .then(resolveXObject, rejectXObject);\n return;\n } else if (type.name === \"PS\") {\n // PostScript XObjects are unused when viewing documents.\n // See section 4.7.1 of Adobe's PDF reference.\n info(\"Ignored XObject subtype PS\");\n } else {\n throw new FormatError(\n `Unhandled XObject subtype ${type.name}`\n );\n }\n resolveXObject();\n }).catch(function (reason) {\n if (reason instanceof AbortException) {\n return;\n }\n if (self.options.ignoreErrors) {\n // Error(s) in the XObject -- sending unsupported feature\n // notification and allow rendering to continue.\n self.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorXObject,\n });\n warn(`getOperatorList - ignoring XObject: \"${reason}\".`);\n return;\n }\n throw reason;\n })\n );\n return;\n case OPS.setFont:\n var fontSize = args[1];\n // eagerly collect all fonts\n next(\n self\n .handleSetFont(\n resources,\n args,\n null,\n operatorList,\n task,\n stateManager.state,\n fallbackFontDict\n )\n .then(function (translated) { \n boundingBoxCalculator.parseOperator(OPS.setFont, [fontSize, translated]);\n operatorList.addDependency(translated.loadedName);\n operatorList.addOp(OPS.setFont, [translated.loadedName, fontSize]);\n })\n );\n return;\n case OPS.beginText:\n parsingText = true;\n break;\n case OPS.endText:\n parsingText = false;\n break;\n case OPS.endInlineImage:\n var cacheKey = args[0].cacheKey;\n if (cacheKey) {\n const localImage = localImageCache.getByName(cacheKey);\n if (localImage) {\n operatorList.addImageOps(\n localImage.fn,\n localImage.args,\n localImage.optionalContent\n );\n\n incrementCachedImageMaskCount(localImage);\n args = null;\n continue;\n }\n }\n next(\n self.buildPaintImageXObject({\n resources,\n image: args[0],\n isInline: true,\n operatorList,\n cacheKey,\n localImageCache,\n localColorSpaceCache,\n })\n );\n boundingBoxCalculator.parseOperator(fn, args);\n return;\n case OPS.showText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n args[0] = self.handleText(args[0], stateManager.state);\n break;\n case OPS.showSpacedText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n var arr = args[0];\n var combinedGlyphs = [];\n var arrLength = arr.length;\n var state = stateManager.state;\n for (i = 0; i < arrLength; ++i) {\n const arrItem = arr[i];\n if (typeof arrItem === \"string\") {\n Array.prototype.push.apply(\n combinedGlyphs,\n self.handleText(arrItem, state)\n );\n } else if (typeof arrItem === \"number\") {\n combinedGlyphs.push(arrItem);\n }\n }\n args[0] = combinedGlyphs;\n fn = OPS.showText;\n break;\n case OPS.nextLineShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n operatorList.addOp(OPS.nextLine);\n boundingBoxCalculator.parseOperator(OPS.nextLine);\n args[0] = self.handleText(args[0], stateManager.state);\n fn = OPS.showText;\n break;\n case OPS.nextLineSetSpacingShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n operatorList.addOp(OPS.nextLine);\n operatorList.addOp(OPS.setWordSpacing, [args.shift()]);\n operatorList.addOp(OPS.setCharSpacing, [args.shift()]);\n boundingBoxCalculator.parseOperator(OPS.nextLine);\n boundingBoxCalculator.parseOperator(OPS.setWordSpacing, [args.shift()]);\n boundingBoxCalculator.parseOperator(OPS.setCharSpacing, [args.shift()]);\n args[0] = self.handleText(args[0], stateManager.state);\n fn = OPS.showText;\n break;\n case OPS.setTextRenderingMode:\n stateManager.state.textRenderingMode = args[0];\n break;\n\n case OPS.setFillColorSpace: {\n const cachedColorSpace = ColorSpace.getCached(\n args[0],\n xref,\n localColorSpaceCache\n );\n if (cachedColorSpace) {\n stateManager.state.fillColorSpace = cachedColorSpace;\n continue;\n }\n\n next(\n self\n .parseColorSpace({\n cs: args[0],\n resources,\n localColorSpaceCache,\n })\n .then(function (colorSpace) {\n boundingBoxCalculator.parseOperator(fn, args);\n if (colorSpace) {\n stateManager.state.fillColorSpace = colorSpace;\n }\n })\n );\n return;\n }\n case OPS.setStrokeColorSpace: {\n const cachedColorSpace = ColorSpace.getCached(\n args[0],\n xref,\n localColorSpaceCache\n );\n if (cachedColorSpace) {\n stateManager.state.strokeColorSpace = cachedColorSpace;\n continue;\n }\n\n next(\n self\n .parseColorSpace({\n cs: args[0],\n resources,\n localColorSpaceCache,\n })\n .then(function (colorSpace) {\n boundingBoxCalculator.parseOperator(fn, args);\n if (colorSpace) {\n stateManager.state.strokeColorSpace = colorSpace;\n }\n })\n );\n return;\n }\n case OPS.setFillColor:\n cs = stateManager.state.fillColorSpace;\n args = cs.getRgb(args, 0);\n fn = OPS.setFillRGBColor;\n break;\n case OPS.setStrokeColor:\n cs = stateManager.state.strokeColorSpace;\n args = cs.getRgb(args, 0);\n fn = OPS.setStrokeRGBColor;\n break;\n case OPS.setFillGray:\n stateManager.state.fillColorSpace = ColorSpace.singletons.gray;\n args = ColorSpace.singletons.gray.getRgb(args, 0);\n fn = OPS.setFillRGBColor;\n break;\n case OPS.setStrokeGray:\n stateManager.state.strokeColorSpace = ColorSpace.singletons.gray;\n args = ColorSpace.singletons.gray.getRgb(args, 0);\n fn = OPS.setStrokeRGBColor;\n break;\n case OPS.setFillCMYKColor:\n stateManager.state.fillColorSpace = ColorSpace.singletons.cmyk;\n args = ColorSpace.singletons.cmyk.getRgb(args, 0);\n fn = OPS.setFillRGBColor;\n break;\n case OPS.setStrokeCMYKColor:\n stateManager.state.strokeColorSpace = ColorSpace.singletons.cmyk;\n args = ColorSpace.singletons.cmyk.getRgb(args, 0);\n fn = OPS.setStrokeRGBColor;\n break;\n case OPS.setFillRGBColor:\n stateManager.state.fillColorSpace = ColorSpace.singletons.rgb;\n args = ColorSpace.singletons.rgb.getRgb(args, 0);\n break;\n case OPS.setStrokeRGBColor:\n stateManager.state.strokeColorSpace = ColorSpace.singletons.rgb;\n args = ColorSpace.singletons.rgb.getRgb(args, 0);\n break;\n case OPS.setFillColorN:\n cs = stateManager.state.fillColorSpace;\n if (cs.name === \"Pattern\") {\n next(\n self.handleColorN(\n operatorList,\n OPS.setFillColorN,\n args,\n cs,\n patterns,\n resources,\n task,\n localColorSpaceCache,\n localTilingPatternCache,\n localShadingPatternCache\n )\n );\n return;\n }\n args = cs.getRgb(args, 0);\n fn = OPS.setFillRGBColor;\n break;\n case OPS.setStrokeColorN:\n cs = stateManager.state.strokeColorSpace;\n if (cs.name === \"Pattern\") {\n next(\n self.handleColorN(\n operatorList,\n OPS.setStrokeColorN,\n args,\n cs,\n patterns,\n resources,\n task,\n localColorSpaceCache,\n localTilingPatternCache,\n localShadingPatternCache\n )\n );\n return;\n }\n args = cs.getRgb(args, 0);\n fn = OPS.setStrokeRGBColor;\n break;\n\n case OPS.shadingFill:\n var shadingRes = resources.get(\"Shading\");\n if (!shadingRes) {\n throw new FormatError(\"No shading resource found\");\n }\n\n var shading = shadingRes.get(args[0].name);\n if (!shading) {\n throw new FormatError(\"No shading object found\");\n }\n const patternId = self.parseShading({\n shading,\n resources,\n localColorSpaceCache,\n localShadingPatternCache,\n });\n args = [patternId];\n fn = OPS.shadingFill;\n break;\n case OPS.setGState:\n isValidName = args[0] instanceof Name;\n name = args[0].name;\n\n if (isValidName) {\n const localGStateObj = localGStateCache.getByName(name);\n if (localGStateObj) {\n if (localGStateObj.length > 0) {\n operatorList.addOp(OPS.setGState, [localGStateObj]);\n }\n args = null;\n continue;\n }\n }\n\n next(\n new Promise(function (resolveGState, rejectGState) {\n if (!isValidName) {\n throw new FormatError(\"GState must be referred to by name.\");\n }\n\n const extGState = resources.get(\"ExtGState\");\n if (!(extGState instanceof Dict)) {\n throw new FormatError(\"ExtGState should be a dictionary.\");\n }\n\n const gState = extGState.get(name);\n // TODO: Attempt to lookup cached GStates by reference as well,\n // if and only if there are PDF documents where doing so\n // would significantly improve performance.\n if (!(gState instanceof Dict)) {\n throw new FormatError(\"GState should be a dictionary.\");\n }\n\n self\n .setGState({\n resources,\n gState,\n operatorList,\n cacheKey: name,\n task,\n stateManager,\n localGStateCache,\n localColorSpaceCache,\n })\n .then(resolveGState, rejectGState);\n }).catch(function (reason) {\n if (reason instanceof AbortException) {\n return;\n }\n if (self.options.ignoreErrors) {\n // Error(s) in the ExtGState -- sending unsupported feature\n // notification and allow parsing/rendering to continue.\n self.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorExtGState,\n });\n warn(`getOperatorList - ignoring ExtGState: \"${reason}\".`);\n return;\n }\n throw reason;\n })\n );\n boundingBoxCalculator.parseOperator(fn, args);\n return;\n case OPS.moveTo:\n case OPS.lineTo:\n case OPS.curveTo:\n case OPS.curveTo2:\n case OPS.curveTo3:\n case OPS.closePath:\n case OPS.rectangle:\n self.buildPath(operatorList, fn, args, parsingText);\n boundingBoxCalculator.parseOperator(fn, args);\n continue;\n case OPS.markPoint:\n case OPS.markPointProps:\n case OPS.beginCompat:\n case OPS.endCompat:\n // Ignore operators where the corresponding handlers are known to\n // be no-op in CanvasGraphics (display/canvas.js). This prevents\n // serialization errors and is also a bit more efficient.\n // We could also try to serialize all objects in a general way,\n // e.g. as done in https://github.com/mozilla/pdf.js/pull/6266,\n // but doing so is meaningless without knowing the semantics.\n continue;\n case OPS.beginMarkedContentProps:\n boundingBoxCalculator.parseOperator(fn, args);\n if (!(args[0] instanceof Name)) {\n warn(`Expected name for beginMarkedContentProps arg0=${args[0]}`);\n continue;\n }\n if (args[0].name === \"OC\") {\n next(\n self\n .parseMarkedContentProps(args[1], resources)\n .then(data => {\n operatorList.addOp(OPS.beginMarkedContentProps, [\n \"OC\",\n data,\n ]);\n })\n .catch(reason => {\n if (reason instanceof AbortException) {\n return;\n }\n if (self.options.ignoreErrors) {\n self.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorMarkedContent,\n });\n warn(\n `getOperatorList - ignoring beginMarkedContentProps: \"${reason}\".`\n );\n return;\n }\n throw reason;\n })\n );\n return;\n }\n // Other marked content types aren't supported yet.\n args = [\n args[0].name,\n args[1] instanceof Dict ? args[1].get(\"MCID\") : null,\n ];\n\n break;\n case OPS.beginMarkedContent:\n case OPS.endMarkedContent:\n boundingBoxCalculator.parseOperator(fn, args);\n default:\n // Note: Ignore the operator if it has `Dict` arguments, since\n // those are non-serializable, otherwise postMessage will throw\n // \"An object could not be cloned.\".\n if (args !== null) {\n for (i = 0, ii = args.length; i < ii; i++) {\n if (args[i] instanceof Dict) {\n break;\n }\n }\n if (i < ii) {\n warn(\"getOperatorList - ignoring operator: \" + fn);\n continue;\n }\n }\n }\n boundingBoxCalculator.parseOperator(fn, args);\n operatorList.addOp(fn, args);\n }\n if (stop) {\n next(deferred);\n return;\n }\n // Some PDFs don't close all restores inside object/form.\n // Closing those for them.\n closePendingRestoreOPS();\n // Add extra data about marked content and glyphs position as last elements\n // of operator list with corresponding custom functions 'operationPosition'(100)\n // and 'boundingBoxes'(101), because it won't affect on\n // the process of rendering\n resolve([boundingBoxCalculator.boundingBoxes, boundingBoxCalculator.operationArray, boundingBoxCalculator.getNoMCIDBoundingBoxes()]);\n }).catch(reason => {\n if (reason instanceof AbortException) {\n return;\n }\n if (this.options.ignoreErrors) {\n // Error(s) in the OperatorList -- sending unsupported feature\n // notification and allow rendering to continue.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorOperatorList,\n });\n warn(\n `getOperatorList - ignoring errors during \"${task.name}\" ` +\n `task: \"${reason}\".`\n );\n\n closePendingRestoreOPS();\n return;\n }\n throw reason;\n });\n }\n\n getTextContent({\n stream,\n task,\n resources,\n stateManager = null,\n combineTextItems = false,\n includeMarkedContent = false,\n sink,\n seenStyles = new Set(),\n viewBox,\n }) {\n // Ensure that `resources`/`stateManager` is correctly initialized,\n // even if the provided parameter is e.g. `null`.\n resources = resources || Dict.empty;\n stateManager = stateManager || new StateManager(new TextState());\n\n const NormalizedUnicodes = getNormalizedUnicodes();\n\n const textContent = {\n items: [],\n styles: Object.create(null),\n };\n const textContentItem = {\n initialized: false,\n str: [],\n totalWidth: 0,\n totalHeight: 0,\n width: 0,\n height: 0,\n vertical: false,\n prevTransform: null,\n textAdvanceScale: 0,\n spaceInFlowMin: 0,\n spaceInFlowMax: 0,\n trackingSpaceMin: Infinity,\n negativeSpaceMax: -Infinity,\n notASpace: -Infinity,\n transform: null,\n fontName: null,\n hasEOL: false,\n };\n\n // Use a circular buffer (length === 2) to save the last chars in the\n // text stream.\n // This implementation of the circular buffer is using a fixed array\n // and the position of the next element:\n // function addElement(x) {\n // buffer[pos] = x;\n // pos = (pos + 1) % buffer.length;\n // }\n // It's a way faster than:\n // function addElement(x) {\n // buffer.push(x);\n // buffer.shift();\n // }\n //\n // It's useful to know when we need to add a whitespace in the\n // text chunk.\n const twoLastChars = [\" \", \" \"];\n let twoLastCharsPos = 0;\n\n /**\n * Save the last char.\n * @param {string} char\n * @returns {boolean} true when the two last chars before adding the new one\n * are a non-whitespace followed by a whitespace.\n */\n function saveLastChar(char) {\n const nextPos = (twoLastCharsPos + 1) % 2;\n const ret =\n twoLastChars[twoLastCharsPos] !== \" \" && twoLastChars[nextPos] === \" \";\n twoLastChars[twoLastCharsPos] = char;\n twoLastCharsPos = nextPos;\n\n return ret;\n }\n\n function resetLastChars() {\n twoLastChars[0] = twoLastChars[1] = \" \";\n twoLastCharsPos = 0;\n }\n\n // Used in addFakeSpaces.\n\n // A white <= fontSize * TRACKING_SPACE_FACTOR is a tracking space\n // so it doesn't count as a space.\n const TRACKING_SPACE_FACTOR = 0.1;\n\n // When a white <= fontSize * NOT_A_SPACE_FACTOR, there is no space\n // even if one is present in the text stream.\n const NOT_A_SPACE_FACTOR = 0.03;\n\n // A negative white < fontSize * NEGATIVE_SPACE_FACTOR induces\n // a break (a new chunk of text is created).\n // It doesn't change anything when the text is copied but\n // it improves potential mismatch between text layer and canvas.\n const NEGATIVE_SPACE_FACTOR = -0.2;\n\n // A white with a width in [fontSize * MIN_FACTOR; fontSize * MAX_FACTOR]\n // is a space which will be inserted in the current flow of words.\n // If the width is outside of this range then the flow is broken\n // (which means a new span in the text layer).\n // It's useful to adjust the best as possible the span in the layer\n // to what is displayed in the canvas.\n const SPACE_IN_FLOW_MIN_FACTOR = 0.1;\n const SPACE_IN_FLOW_MAX_FACTOR = 0.6;\n\n const self = this;\n const xref = this.xref;\n const showSpacedTextBuffer = [];\n\n // The xobj is parsed iff it's needed, e.g. if there is a `DO` cmd.\n let xobjs = null;\n const emptyXObjectCache = new LocalImageCache();\n const emptyGStateCache = new LocalGStateCache();\n\n const preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n\n let textState;\n\n function getCurrentTextTransform() {\n // 9.4.4 Text Space Details\n const font = textState.font;\n const tsm = [\n textState.fontSize * textState.textHScale,\n 0,\n 0,\n textState.fontSize,\n 0,\n textState.textRise,\n ];\n\n if (\n font.isType3Font &&\n (textState.fontSize <= 1 || font.isCharBBox) &&\n !isArrayEqual(textState.fontMatrix, FONT_IDENTITY_MATRIX)\n ) {\n const glyphHeight = font.bbox[3] - font.bbox[1];\n if (glyphHeight > 0) {\n tsm[3] *= glyphHeight * textState.fontMatrix[3];\n }\n }\n\n return Util.transform(\n textState.ctm,\n Util.transform(textState.textMatrix, tsm)\n );\n }\n\n function ensureTextContentItem() {\n if (textContentItem.initialized) {\n return textContentItem;\n }\n const font = textState.font,\n loadedName = font.loadedName;\n if (!seenStyles.has(loadedName)) {\n seenStyles.add(loadedName);\n\n textContent.styles[loadedName] = {\n fontFamily: font.fallbackName,\n ascent: font.ascent,\n descent: font.descent,\n vertical: font.vertical,\n };\n }\n textContentItem.fontName = loadedName;\n\n const trm = (textContentItem.transform = getCurrentTextTransform());\n if (!font.vertical) {\n textContentItem.width = textContentItem.totalWidth = 0;\n textContentItem.height = textContentItem.totalHeight = Math.hypot(\n trm[2],\n trm[3]\n );\n textContentItem.vertical = false;\n } else {\n textContentItem.width = textContentItem.totalWidth = Math.hypot(\n trm[0],\n trm[1]\n );\n textContentItem.height = textContentItem.totalHeight = 0;\n textContentItem.vertical = true;\n }\n\n const scaleLineX = Math.hypot(\n textState.textLineMatrix[0],\n textState.textLineMatrix[1]\n );\n const scaleCtmX = Math.hypot(textState.ctm[0], textState.ctm[1]);\n textContentItem.textAdvanceScale = scaleCtmX * scaleLineX;\n\n textContentItem.trackingSpaceMin =\n textState.fontSize * TRACKING_SPACE_FACTOR;\n textContentItem.notASpace = textState.fontSize * NOT_A_SPACE_FACTOR;\n textContentItem.negativeSpaceMax =\n textState.fontSize * NEGATIVE_SPACE_FACTOR;\n textContentItem.spaceInFlowMin =\n textState.fontSize * SPACE_IN_FLOW_MIN_FACTOR;\n textContentItem.spaceInFlowMax =\n textState.fontSize * SPACE_IN_FLOW_MAX_FACTOR;\n\n textContentItem.hasEOL = false;\n\n textContentItem.initialized = true;\n return textContentItem;\n }\n\n function updateAdvanceScale() {\n if (!textContentItem.initialized) {\n return;\n }\n\n const scaleLineX = Math.hypot(\n textState.textLineMatrix[0],\n textState.textLineMatrix[1]\n );\n const scaleCtmX = Math.hypot(textState.ctm[0], textState.ctm[1]);\n const scaleFactor = scaleCtmX * scaleLineX;\n if (scaleFactor === textContentItem.textAdvanceScale) {\n return;\n }\n\n if (!textContentItem.vertical) {\n textContentItem.totalWidth +=\n textContentItem.width * textContentItem.textAdvanceScale;\n textContentItem.width = 0;\n } else {\n textContentItem.totalHeight +=\n textContentItem.height * textContentItem.textAdvanceScale;\n textContentItem.height = 0;\n }\n\n textContentItem.textAdvanceScale = scaleFactor;\n }\n\n function runBidiTransform(textChunk) {\n const text = textChunk.str.join(\"\");\n const bidiResult = bidi(text, -1, textChunk.vertical);\n return {\n str: bidiResult.str,\n dir: bidiResult.dir,\n width: Math.abs(textChunk.totalWidth),\n height: Math.abs(textChunk.totalHeight),\n transform: textChunk.transform,\n fontName: textChunk.fontName,\n hasEOL: textChunk.hasEOL,\n };\n }\n\n function handleSetFont(fontName, fontRef) {\n return self\n .loadFont(fontName, fontRef, resources)\n .then(function (translated) {\n if (!translated.font.isType3Font) {\n return translated;\n }\n return translated\n .loadType3Data(self, resources, task)\n .catch(function () {\n // Ignore Type3-parsing errors, since we only use `loadType3Data`\n // here to ensure that we'll always obtain a useful /FontBBox.\n })\n .then(function () {\n return translated;\n });\n })\n .then(function (translated) {\n textState.font = translated.font;\n textState.fontMatrix =\n translated.font.fontMatrix || FONT_IDENTITY_MATRIX;\n });\n }\n\n function applyInverseRotation(x, y, matrix) {\n const scale = Math.hypot(matrix[0], matrix[1]);\n return [\n (matrix[0] * x + matrix[1] * y) / scale,\n (matrix[2] * x + matrix[3] * y) / scale,\n ];\n }\n\n function compareWithLastPosition() {\n const currentTransform = getCurrentTextTransform();\n let posX = currentTransform[4];\n let posY = currentTransform[5];\n\n const shiftedX = posX - viewBox[0];\n const shiftedY = posY - viewBox[1];\n\n if (\n shiftedX < 0 ||\n shiftedX > viewBox[2] ||\n shiftedY < 0 ||\n shiftedY > viewBox[3]\n ) {\n return false;\n }\n\n if (\n !combineTextItems ||\n !textState.font ||\n !textContentItem.prevTransform\n ) {\n return true;\n }\n\n let lastPosX = textContentItem.prevTransform[4];\n let lastPosY = textContentItem.prevTransform[5];\n\n if (lastPosX === posX && lastPosY === posY) {\n return true;\n }\n\n let rotate = -1;\n // Take into account the rotation is the current transform.\n if (\n currentTransform[0] &&\n currentTransform[1] === 0 &&\n currentTransform[2] === 0\n ) {\n rotate = currentTransform[0] > 0 ? 0 : 180;\n } else if (\n currentTransform[1] &&\n currentTransform[0] === 0 &&\n currentTransform[3] === 0\n ) {\n rotate = currentTransform[1] > 0 ? 90 : 270;\n }\n\n switch (rotate) {\n case 0:\n break;\n case 90:\n [posX, posY] = [posY, posX];\n [lastPosX, lastPosY] = [lastPosY, lastPosX];\n break;\n case 180:\n [posX, posY, lastPosX, lastPosY] = [\n -posX,\n -posY,\n -lastPosX,\n -lastPosY,\n ];\n break;\n case 270:\n [posX, posY] = [-posY, -posX];\n [lastPosX, lastPosY] = [-lastPosY, -lastPosX];\n break;\n default:\n // This is not a 0, 90, 180, 270 rotation so:\n // - remove the scale factor from the matrix to get a rotation matrix\n // - apply the inverse (which is the transposed) to the positions\n // and we can then compare positions of the glyphes to detect\n // a whitespace.\n [posX, posY] = applyInverseRotation(posX, posY, currentTransform);\n [lastPosX, lastPosY] = applyInverseRotation(\n lastPosX,\n lastPosY,\n textContentItem.prevTransform\n );\n }\n\n if (textState.font.vertical) {\n const advanceY = (lastPosY - posY) / textContentItem.textAdvanceScale;\n const advanceX = posX - lastPosX;\n\n // When the total height of the current chunk is negative\n // then we're writing from bottom to top.\n const textOrientation = Math.sign(textContentItem.height);\n if (advanceY < textOrientation * textContentItem.negativeSpaceMax) {\n if (\n Math.abs(advanceX) >\n 0.5 * textContentItem.width /* not the same column */\n ) {\n appendEOL();\n return true;\n }\n\n resetLastChars();\n flushTextContentItem();\n return true;\n }\n\n if (Math.abs(advanceX) > textContentItem.width) {\n appendEOL();\n return true;\n }\n\n if (advanceY <= textOrientation * textContentItem.notASpace) {\n // The real spacing between 2 consecutive chars is thin enough to be\n // considered a non-space.\n resetLastChars();\n }\n\n if (advanceY <= textOrientation * textContentItem.trackingSpaceMin) {\n textContentItem.height += advanceY;\n } else if (\n !addFakeSpaces(\n advanceY,\n textContentItem.prevTransform,\n textOrientation\n )\n ) {\n if (textContentItem.str.length === 0) {\n resetLastChars();\n textContent.items.push({\n str: \" \",\n dir: \"ltr\",\n width: 0,\n height: Math.abs(advanceY),\n transform: textContentItem.prevTransform,\n fontName: textContentItem.fontName,\n hasEOL: false,\n });\n } else {\n textContentItem.height += advanceY;\n }\n }\n\n return true;\n }\n\n const advanceX = (posX - lastPosX) / textContentItem.textAdvanceScale;\n const advanceY = posY - lastPosY;\n\n // When the total width of the current chunk is negative\n // then we're writing from right to left.\n const textOrientation = Math.sign(textContentItem.width);\n if (advanceX < textOrientation * textContentItem.negativeSpaceMax) {\n if (\n Math.abs(advanceY) >\n 0.5 * textContentItem.height /* not the same line */\n ) {\n appendEOL();\n return true;\n }\n\n // We're moving back so in case the last char was a whitespace\n // we cancel it: it doesn't make sense to insert it.\n resetLastChars();\n flushTextContentItem();\n return true;\n }\n\n if (Math.abs(advanceY) > textContentItem.height) {\n appendEOL();\n return true;\n }\n\n if (advanceX <= textOrientation * textContentItem.notASpace) {\n // The real spacing between 2 consecutive chars is thin enough to be\n // considered a non-space.\n resetLastChars();\n }\n\n if (advanceX <= textOrientation * textContentItem.trackingSpaceMin) {\n textContentItem.width += advanceX;\n } else if (\n !addFakeSpaces(advanceX, textContentItem.prevTransform, textOrientation)\n ) {\n if (textContentItem.str.length === 0) {\n resetLastChars();\n textContent.items.push({\n str: \" \",\n dir: \"ltr\",\n width: Math.abs(advanceX),\n height: 0,\n transform: textContentItem.prevTransform,\n fontName: textContentItem.fontName,\n hasEOL: false,\n });\n } else {\n textContentItem.width += advanceX;\n }\n }\n\n return true;\n }\n\n function buildTextContentItem({ chars, extraSpacing }) {\n const font = textState.font;\n if (!chars) {\n // Just move according to the space we have.\n const charSpacing = textState.charSpacing + extraSpacing;\n if (charSpacing) {\n if (!font.vertical) {\n textState.translateTextMatrix(\n charSpacing * textState.textHScale,\n 0\n );\n } else {\n textState.translateTextMatrix(0, -charSpacing);\n }\n }\n\n return;\n }\n\n const glyphs = font.charsToGlyphs(chars);\n const scale = textState.fontMatrix[0] * textState.fontSize;\n\n for (let i = 0, ii = glyphs.length; i < ii; i++) {\n const glyph = glyphs[i];\n if (glyph.isInvisibleFormatMark) {\n continue;\n }\n let charSpacing =\n textState.charSpacing + (i + 1 === ii ? extraSpacing : 0);\n\n let glyphWidth = glyph.width;\n if (font.vertical) {\n glyphWidth = glyph.vmetric ? glyph.vmetric[0] : -glyphWidth;\n }\n let scaledDim = glyphWidth * scale;\n\n if (glyph.isWhitespace) {\n // Don't push a \" \" in the textContentItem\n // (except when it's between two non-spaces chars),\n // it will be done (if required) in next call to\n // compareWithLastPosition.\n // This way we can merge real spaces and spaces due to cursor moves.\n if (!font.vertical) {\n charSpacing += scaledDim + textState.wordSpacing;\n textState.translateTextMatrix(\n charSpacing * textState.textHScale,\n 0\n );\n } else {\n charSpacing += -scaledDim + textState.wordSpacing;\n textState.translateTextMatrix(0, -charSpacing);\n }\n saveLastChar(\" \");\n continue;\n }\n\n if (!compareWithLastPosition()) {\n // The glyph is not in page so just skip it.\n continue;\n }\n\n // Must be called after compareWithLastPosition because\n // the textContentItem could have been flushed.\n const textChunk = ensureTextContentItem();\n if (glyph.isZeroWidthDiacritic) {\n scaledDim = 0;\n }\n\n if (!font.vertical) {\n scaledDim *= textState.textHScale;\n textState.translateTextMatrix(scaledDim, 0);\n textChunk.width += scaledDim;\n } else {\n textState.translateTextMatrix(0, scaledDim);\n scaledDim = Math.abs(scaledDim);\n textChunk.height += scaledDim;\n }\n\n if (scaledDim) {\n // Save the position of the last visible character.\n textChunk.prevTransform = getCurrentTextTransform();\n }\n\n let glyphUnicode = glyph.unicode;\n glyphUnicode = NormalizedUnicodes[glyphUnicode] || glyphUnicode;\n glyphUnicode = reverseIfRtl(glyphUnicode);\n if (saveLastChar(glyphUnicode)) {\n // The two last chars are a non-whitespace followed by a whitespace\n // and then this non-whitespace, so we insert a whitespace here.\n // Replaces all whitespaces with standard spaces (0x20), to avoid\n // alignment issues between the textLayer and the canvas if the text\n // contains e.g. tabs (fixes issue6612.pdf).\n textChunk.str.push(\" \");\n }\n textChunk.str.push(glyphUnicode);\n\n if (charSpacing) {\n if (!font.vertical) {\n textState.translateTextMatrix(\n charSpacing * textState.textHScale,\n 0\n );\n } else {\n textState.translateTextMatrix(0, -charSpacing);\n }\n }\n }\n }\n\n function appendEOL() {\n resetLastChars();\n if (textContentItem.initialized) {\n textContentItem.hasEOL = true;\n flushTextContentItem();\n } else {\n textContent.items.push({\n str: \"\",\n dir: \"ltr\",\n width: 0,\n height: 0,\n transform: getCurrentTextTransform(),\n fontName: textState.font.loadedName,\n hasEOL: true,\n });\n }\n }\n\n function addFakeSpaces(width, transf, textOrientation) {\n if (\n textOrientation * textContentItem.spaceInFlowMin <= width &&\n width <= textOrientation * textContentItem.spaceInFlowMax\n ) {\n if (textContentItem.initialized) {\n resetLastChars();\n textContentItem.str.push(\" \");\n }\n return false;\n }\n\n const fontName = textContentItem.fontName;\n\n let height = 0;\n if (textContentItem.vertical) {\n height = width;\n width = 0;\n }\n\n flushTextContentItem();\n resetLastChars();\n textContent.items.push({\n str: \" \",\n // TODO: check if using the orientation from last chunk is\n // better or not.\n dir: \"ltr\",\n width: Math.abs(width),\n height: Math.abs(height),\n transform: transf || getCurrentTextTransform(),\n fontName,\n hasEOL: false,\n });\n\n return true;\n }\n\n function flushTextContentItem() {\n if (!textContentItem.initialized || !textContentItem.str) {\n return;\n }\n\n // Do final text scaling.\n if (!textContentItem.vertical) {\n textContentItem.totalWidth +=\n textContentItem.width * textContentItem.textAdvanceScale;\n } else {\n textContentItem.totalHeight +=\n textContentItem.height * textContentItem.textAdvanceScale;\n }\n\n textContent.items.push(runBidiTransform(textContentItem));\n textContentItem.initialized = false;\n textContentItem.str.length = 0;\n }\n\n function enqueueChunk(batch = false) {\n const length = textContent.items.length;\n if (length === 0) {\n return;\n }\n if (batch && length < TEXT_CHUNK_BATCH_SIZE) {\n return;\n }\n sink.enqueue(textContent, length);\n textContent.items = [];\n textContent.styles = Object.create(null);\n }\n\n const timeSlotManager = new TimeSlotManager();\n\n return new Promise(function promiseBody(resolve, reject) {\n const next = function (promise) {\n enqueueChunk(/* batch = */ true);\n Promise.all([promise, sink.ready]).then(function () {\n try {\n promiseBody(resolve, reject);\n } catch (ex) {\n reject(ex);\n }\n }, reject);\n };\n task.ensureNotTerminated();\n timeSlotManager.reset();\n\n const operation = {};\n let stop,\n args = [];\n while (!(stop = timeSlotManager.check())) {\n // The arguments parsed by read() are not used beyond this loop, so\n // we can reuse the same array on every iteration, thus avoiding\n // unnecessary allocations.\n args.length = 0;\n operation.args = args;\n if (!preprocessor.read(operation)) {\n break;\n }\n textState = stateManager.state;\n const fn = operation.fn;\n args = operation.args;\n\n switch (fn | 0) {\n case OPS.setFont:\n // Optimization to ignore multiple identical Tf commands.\n var fontNameArg = args[0].name,\n fontSizeArg = args[1];\n if (\n textState.font &&\n fontNameArg === textState.fontName &&\n fontSizeArg === textState.fontSize\n ) {\n break;\n }\n\n flushTextContentItem();\n textState.fontName = fontNameArg;\n textState.fontSize = fontSizeArg;\n next(handleSetFont(fontNameArg, null));\n return;\n case OPS.setTextRise:\n textState.textRise = args[0];\n break;\n case OPS.setHScale:\n textState.textHScale = args[0] / 100;\n break;\n case OPS.setLeading:\n textState.leading = args[0];\n break;\n case OPS.moveText:\n textState.translateTextLineMatrix(args[0], args[1]);\n textState.textMatrix = textState.textLineMatrix.slice();\n break;\n case OPS.setLeadingMoveText:\n textState.leading = -args[1];\n textState.translateTextLineMatrix(args[0], args[1]);\n textState.textMatrix = textState.textLineMatrix.slice();\n break;\n case OPS.nextLine:\n textState.carriageReturn();\n break;\n case OPS.setTextMatrix:\n textState.setTextMatrix(\n args[0],\n args[1],\n args[2],\n args[3],\n args[4],\n args[5]\n );\n textState.setTextLineMatrix(\n args[0],\n args[1],\n args[2],\n args[3],\n args[4],\n args[5]\n );\n updateAdvanceScale();\n break;\n case OPS.setCharSpacing:\n textState.charSpacing = args[0];\n break;\n case OPS.setWordSpacing:\n textState.wordSpacing = args[0];\n break;\n case OPS.beginText:\n textState.textMatrix = IDENTITY_MATRIX.slice();\n textState.textLineMatrix = IDENTITY_MATRIX.slice();\n break;\n case OPS.showSpacedText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n const spaceFactor =\n ((textState.font.vertical ? 1 : -1) * textState.fontSize) / 1000;\n const elements = args[0];\n for (let i = 0, ii = elements.length; i < ii - 1; i++) {\n const item = elements[i];\n if (typeof item === \"string\") {\n showSpacedTextBuffer.push(item);\n } else if (typeof item === \"number\" && item !== 0) {\n // PDF Specification 5.3.2 states:\n // The number is expressed in thousandths of a unit of text\n // space.\n // This amount is subtracted from the current horizontal or\n // vertical coordinate, depending on the writing mode.\n // In the default coordinate system, a positive adjustment\n // has the effect of moving the next glyph painted either to\n // the left or down by the given amount.\n const str = showSpacedTextBuffer.join(\"\");\n showSpacedTextBuffer.length = 0;\n buildTextContentItem({\n chars: str,\n extraSpacing: item * spaceFactor,\n });\n }\n }\n\n const item = elements[elements.length - 1];\n if (typeof item === \"string\") {\n showSpacedTextBuffer.push(item);\n }\n\n if (showSpacedTextBuffer.length > 0) {\n const str = showSpacedTextBuffer.join(\"\");\n showSpacedTextBuffer.length = 0;\n buildTextContentItem({\n chars: str,\n extraSpacing: 0,\n });\n }\n break;\n case OPS.showText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n buildTextContentItem({\n chars: args[0],\n extraSpacing: 0,\n });\n break;\n case OPS.nextLineShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n textState.carriageReturn();\n buildTextContentItem({\n chars: args[0],\n extraSpacing: 0,\n });\n break;\n case OPS.nextLineSetSpacingShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n textState.wordSpacing = args[0];\n textState.charSpacing = args[1];\n textState.carriageReturn();\n buildTextContentItem({\n chars: args[2],\n extraSpacing: 0,\n });\n break;\n case OPS.paintXObject:\n flushTextContentItem();\n if (!xobjs) {\n xobjs = resources.get(\"XObject\") || Dict.empty;\n }\n\n var isValidName = args[0] instanceof Name;\n var name = args[0].name;\n\n if (isValidName && emptyXObjectCache.getByName(name)) {\n break;\n }\n\n next(\n new Promise(function (resolveXObject, rejectXObject) {\n if (!isValidName) {\n throw new FormatError(\"XObject must be referred to by name.\");\n }\n\n let xobj = xobjs.getRaw(name);\n if (xobj instanceof Ref) {\n if (emptyXObjectCache.getByRef(xobj)) {\n resolveXObject();\n return;\n }\n\n const globalImage = self.globalImageCache.getData(\n xobj,\n self.pageIndex\n );\n if (globalImage) {\n resolveXObject();\n return;\n }\n\n xobj = xref.fetch(xobj);\n }\n\n if (!(xobj instanceof BaseStream)) {\n throw new FormatError(\"XObject should be a stream\");\n }\n\n const type = xobj.dict.get(\"Subtype\");\n if (!(type instanceof Name)) {\n throw new FormatError(\"XObject should have a Name subtype\");\n }\n\n if (type.name !== \"Form\") {\n emptyXObjectCache.set(name, xobj.dict.objId, true);\n\n resolveXObject();\n return;\n }\n\n // Use a new `StateManager` to prevent incorrect positioning\n // of textItems *after* the Form XObject, since errors in the\n // data can otherwise prevent `restore` operators from\n // executing.\n // NOTE: Only an issue when `options.ignoreErrors === true`.\n const currentState = stateManager.state.clone();\n const xObjStateManager = new StateManager(currentState);\n\n const matrix = xobj.dict.getArray(\"Matrix\");\n if (Array.isArray(matrix) && matrix.length === 6) {\n xObjStateManager.transform(matrix);\n }\n\n // Enqueue the `textContent` chunk before parsing the /Form\n // XObject.\n enqueueChunk();\n const sinkWrapper = {\n enqueueInvoked: false,\n\n enqueue(chunk, size) {\n this.enqueueInvoked = true;\n sink.enqueue(chunk, size);\n },\n\n get desiredSize() {\n return sink.desiredSize;\n },\n\n get ready() {\n return sink.ready;\n },\n };\n\n self\n .getTextContent({\n stream: xobj,\n task,\n resources: xobj.dict.get(\"Resources\") || resources,\n stateManager: xObjStateManager,\n combineTextItems,\n includeMarkedContent,\n sink: sinkWrapper,\n seenStyles,\n viewBox,\n })\n .then(function () {\n if (!sinkWrapper.enqueueInvoked) {\n emptyXObjectCache.set(name, xobj.dict.objId, true);\n }\n resolveXObject();\n }, rejectXObject);\n }).catch(function (reason) {\n if (reason instanceof AbortException) {\n return;\n }\n if (self.options.ignoreErrors) {\n // Error(s) in the XObject -- allow text-extraction to\n // continue.\n warn(`getTextContent - ignoring XObject: \"${reason}\".`);\n return;\n }\n throw reason;\n })\n );\n return;\n case OPS.setGState:\n isValidName = args[0] instanceof Name;\n name = args[0].name;\n\n if (isValidName && emptyGStateCache.getByName(name)) {\n break;\n }\n\n next(\n new Promise(function (resolveGState, rejectGState) {\n if (!isValidName) {\n throw new FormatError(\"GState must be referred to by name.\");\n }\n\n const extGState = resources.get(\"ExtGState\");\n if (!(extGState instanceof Dict)) {\n throw new FormatError(\"ExtGState should be a dictionary.\");\n }\n\n const gState = extGState.get(name);\n // TODO: Attempt to lookup cached GStates by reference as well,\n // if and only if there are PDF documents where doing so\n // would significantly improve performance.\n if (!(gState instanceof Dict)) {\n throw new FormatError(\"GState should be a dictionary.\");\n }\n\n const gStateFont = gState.get(\"Font\");\n if (!gStateFont) {\n emptyGStateCache.set(name, gState.objId, true);\n\n resolveGState();\n return;\n }\n flushTextContentItem();\n\n textState.fontName = null;\n textState.fontSize = gStateFont[1];\n handleSetFont(null, gStateFont[0]).then(\n resolveGState,\n rejectGState\n );\n }).catch(function (reason) {\n if (reason instanceof AbortException) {\n return;\n }\n if (self.options.ignoreErrors) {\n // Error(s) in the ExtGState -- allow text-extraction to\n // continue.\n warn(`getTextContent - ignoring ExtGState: \"${reason}\".`);\n return;\n }\n throw reason;\n })\n );\n return;\n case OPS.beginMarkedContent:\n if (includeMarkedContent) {\n textContent.items.push({\n type: \"beginMarkedContent\",\n tag: args[0] instanceof Name ? args[0].name : null,\n });\n }\n break;\n case OPS.beginMarkedContentProps:\n if (includeMarkedContent) {\n flushTextContentItem();\n let mcid = null;\n if (args[1] instanceof Dict) {\n mcid = args[1].get(\"MCID\");\n }\n textContent.items.push({\n type: \"beginMarkedContentProps\",\n id: Number.isInteger(mcid)\n ? `${self.idFactory.getPageObjId()}_mcid${mcid}`\n : null,\n tag: args[0] instanceof Name ? args[0].name : null,\n });\n }\n break;\n case OPS.endMarkedContent:\n if (includeMarkedContent) {\n flushTextContentItem();\n textContent.items.push({\n type: \"endMarkedContent\",\n });\n }\n break;\n } // switch\n if (textContent.items.length >= sink.desiredSize) {\n // Wait for ready, if we reach highWaterMark.\n stop = true;\n break;\n }\n } // while\n if (stop) {\n next(deferred);\n return;\n }\n flushTextContentItem();\n enqueueChunk();\n resolve();\n }).catch(reason => {\n if (reason instanceof AbortException) {\n return;\n }\n if (this.options.ignoreErrors) {\n // Error(s) in the TextContent -- allow text-extraction to continue.\n warn(\n `getTextContent - ignoring errors during \"${task.name}\" ` +\n `task: \"${reason}\".`\n );\n\n flushTextContentItem();\n enqueueChunk();\n return;\n }\n throw reason;\n });\n }\n\n extractDataStructures(dict, baseDict, properties) {\n const xref = this.xref;\n let cidToGidBytes;\n // 9.10.2\n const toUnicodePromise = this.readToUnicode(\n properties.toUnicode || dict.get(\"ToUnicode\") || baseDict.get(\"ToUnicode\")\n );\n\n if (properties.composite) {\n // CIDSystemInfo helps to match CID to glyphs\n const cidSystemInfo = dict.get(\"CIDSystemInfo\");\n if (cidSystemInfo instanceof Dict) {\n properties.cidSystemInfo = {\n registry: stringToPDFString(cidSystemInfo.get(\"Registry\")),\n ordering: stringToPDFString(cidSystemInfo.get(\"Ordering\")),\n supplement: cidSystemInfo.get(\"Supplement\"),\n };\n }\n\n const cidToGidMap = dict.get(\"CIDToGIDMap\");\n if (cidToGidMap instanceof BaseStream) {\n cidToGidBytes = cidToGidMap.getBytes();\n }\n }\n\n // Based on 9.6.6 of the spec the encoding can come from multiple places\n // and depends on the font type. The base encoding and differences are\n // read here, but the encoding that is actually used is chosen during\n // glyph mapping in the font.\n // TODO: Loading the built in encoding in the font would allow the\n // differences to be merged in here not require us to hold on to it.\n const differences = [];\n let baseEncodingName = null;\n let encoding;\n if (dict.has(\"Encoding\")) {\n encoding = dict.get(\"Encoding\");\n if (encoding instanceof Dict) {\n baseEncodingName = encoding.get(\"BaseEncoding\");\n baseEncodingName =\n baseEncodingName instanceof Name ? baseEncodingName.name : null;\n // Load the differences between the base and original\n if (encoding.has(\"Differences\")) {\n const diffEncoding = encoding.get(\"Differences\");\n let index = 0;\n for (let j = 0, jj = diffEncoding.length; j < jj; j++) {\n const data = xref.fetchIfRef(diffEncoding[j]);\n if (typeof data === \"number\") {\n index = data;\n } else if (data instanceof Name) {\n differences[index++] = data.name;\n } else {\n throw new FormatError(\n `Invalid entry in 'Differences' array: ${data}`\n );\n }\n }\n }\n } else if (encoding instanceof Name) {\n baseEncodingName = encoding.name;\n } else {\n const msg = \"Encoding is not a Name nor a Dict\";\n\n if (!this.options.ignoreErrors) {\n throw new FormatError(msg);\n }\n warn(msg);\n }\n // According to table 114 if the encoding is a named encoding it must be\n // one of these predefined encodings.\n if (\n baseEncodingName !== \"MacRomanEncoding\" &&\n baseEncodingName !== \"MacExpertEncoding\" &&\n baseEncodingName !== \"WinAnsiEncoding\"\n ) {\n baseEncodingName = null;\n }\n }\n\n if (baseEncodingName) {\n properties.defaultEncoding = getEncoding(baseEncodingName);\n } else {\n const isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n const isNonsymbolicFont = !!(properties.flags & FontFlags.Nonsymbolic);\n // According to \"Table 114\" in section \"9.6.6.1 General\" (under\n // \"9.6.6 Character Encoding\") of the PDF specification, a Nonsymbolic\n // font should use the `StandardEncoding` if no encoding is specified.\n encoding = StandardEncoding;\n if (properties.type === \"TrueType\" && !isNonsymbolicFont) {\n encoding = WinAnsiEncoding;\n }\n // The Symbolic attribute can be misused for regular fonts\n // Heuristic: we have to check if the font is a standard one also\n if (isSymbolicFont) {\n encoding = MacRomanEncoding;\n if (!properties.file || properties.isInternalFont) {\n if (/Symbol/i.test(properties.name)) {\n encoding = SymbolSetEncoding;\n } else if (/Dingbats|Wingdings/i.test(properties.name)) {\n encoding = ZapfDingbatsEncoding;\n }\n }\n }\n properties.defaultEncoding = encoding;\n }\n\n properties.differences = differences;\n properties.baseEncodingName = baseEncodingName;\n properties.hasEncoding = !!baseEncodingName || differences.length > 0;\n properties.dict = dict;\n return toUnicodePromise\n .then(readToUnicode => {\n properties.toUnicode = readToUnicode;\n return this.buildToUnicode(properties);\n })\n .then(builtToUnicode => {\n properties.toUnicode = builtToUnicode;\n if (cidToGidBytes) {\n properties.cidToGidMap = this.readCidToGidMap(\n cidToGidBytes,\n builtToUnicode\n );\n }\n return properties;\n });\n }\n\n /**\n * @returns {Array}\n * @private\n */\n _simpleFontToUnicode(properties, forceGlyphs = false) {\n assert(!properties.composite, \"Must be a simple font.\");\n\n const toUnicode = [];\n const encoding = properties.defaultEncoding.slice();\n const baseEncodingName = properties.baseEncodingName;\n // Merge in the differences array.\n const differences = properties.differences;\n for (const charcode in differences) {\n const glyphName = differences[charcode];\n if (glyphName === \".notdef\") {\n // Skip .notdef to prevent rendering errors, e.g. boxes appearing\n // where there should be spaces (fixes issue5256.pdf).\n continue;\n }\n encoding[charcode] = glyphName;\n }\n const glyphsUnicodeMap = getGlyphsUnicode();\n for (const charcode in encoding) {\n // a) Map the character code to a character name.\n let glyphName = encoding[charcode];\n // b) Look up the character name in the Adobe Glyph List (see the\n // Bibliography) to obtain the corresponding Unicode value.\n if (glyphName === \"\") {\n continue;\n } else if (glyphsUnicodeMap[glyphName] === undefined) {\n // (undocumented) c) Few heuristics to recognize unknown glyphs\n // NOTE: Adobe Reader does not do this step, but OSX Preview does\n let code = 0;\n switch (glyphName[0]) {\n case \"G\": // Gxx glyph\n if (glyphName.length === 3) {\n code = parseInt(glyphName.substring(1), 16);\n }\n break;\n case \"g\": // g00xx glyph\n if (glyphName.length === 5) {\n code = parseInt(glyphName.substring(1), 16);\n }\n break;\n case \"C\": // Cdd{d} glyph\n case \"c\": // cdd{d} glyph\n if (glyphName.length >= 3 && glyphName.length <= 4) {\n const codeStr = glyphName.substring(1);\n\n if (forceGlyphs) {\n code = parseInt(codeStr, 16);\n break;\n }\n // Normally the Cdd{d}/cdd{d} glyphName format will contain\n // regular, i.e. base 10, charCodes (see issue4550.pdf)...\n code = +codeStr;\n\n // ... however some PDF generators violate that assumption by\n // containing glyph, i.e. base 16, codes instead.\n // In that case we need to re-parse the *entire* encoding to\n // prevent broken text-selection (fixes issue9655_reduced.pdf).\n if (\n Number.isNaN(code) &&\n Number.isInteger(parseInt(codeStr, 16))\n ) {\n return this._simpleFontToUnicode(\n properties,\n /* forceGlyphs */ true\n );\n }\n }\n break;\n default: // 'uniXXXX'/'uXXXX{XX}' glyphs\n const unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap);\n if (unicode !== -1) {\n code = unicode;\n }\n }\n if (code > 0 && code <= 0x10ffff && Number.isInteger(code)) {\n // If `baseEncodingName` is one the predefined encodings, and `code`\n // equals `charcode`, using the glyph defined in the baseEncoding\n // seems to yield a better `toUnicode` mapping (fixes issue 5070).\n if (baseEncodingName && code === +charcode) {\n const baseEncoding = getEncoding(baseEncodingName);\n if (baseEncoding && (glyphName = baseEncoding[charcode])) {\n toUnicode[charcode] = String.fromCharCode(\n glyphsUnicodeMap[glyphName]\n );\n continue;\n }\n }\n toUnicode[charcode] = String.fromCodePoint(code);\n }\n continue;\n }\n toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]);\n }\n return toUnicode;\n }\n\n /**\n * Builds a char code to unicode map based on section 9.10 of the spec.\n * @param {Object} properties Font properties object.\n * @returns {Promise} A Promise that is resolved with a\n * {ToUnicodeMap|IdentityToUnicodeMap} object.\n */\n async buildToUnicode(properties) {\n properties.hasIncludedToUnicodeMap =\n !!properties.toUnicode && properties.toUnicode.length > 0;\n\n // Section 9.10.2 Mapping Character Codes to Unicode Values\n if (properties.hasIncludedToUnicodeMap) {\n // Some fonts contain incomplete ToUnicode data, causing issues with\n // text-extraction. For simple fonts, containing encoding information,\n // use a fallback ToUnicode map to improve this (fixes issue8229.pdf).\n if (!properties.composite && properties.hasEncoding) {\n properties.fallbackToUnicode = this._simpleFontToUnicode(properties);\n }\n return properties.toUnicode;\n }\n\n // According to the spec if the font is a simple font we should only map\n // to unicode if the base encoding is MacRoman, MacExpert, or WinAnsi or\n // the differences array only contains adobe standard or symbol set names,\n // in pratice it seems better to always try to create a toUnicode map\n // based of the default encoding.\n if (!properties.composite /* is simple font */) {\n return new ToUnicodeMap(this._simpleFontToUnicode(properties));\n }\n\n // If the font is a composite font that uses one of the predefined CMaps\n // listed in Table 118 (except Identity–H and Identity–V) or whose\n // descendant CIDFont uses the Adobe-GB1, Adobe-CNS1, Adobe-Japan1, or\n // Adobe-Korea1 character collection:\n if (\n properties.composite &&\n ((properties.cMap.builtInCMap &&\n !(properties.cMap instanceof IdentityCMap)) ||\n (properties.cidSystemInfo.registry === \"Adobe\" &&\n (properties.cidSystemInfo.ordering === \"GB1\" ||\n properties.cidSystemInfo.ordering === \"CNS1\" ||\n properties.cidSystemInfo.ordering === \"Japan1\" ||\n properties.cidSystemInfo.ordering === \"Korea1\")))\n ) {\n // Then:\n // a) Map the character code to a character identifier (CID) according\n // to the font’s CMap.\n // b) Obtain the registry and ordering of the character collection used\n // by the font’s CMap (for example, Adobe and Japan1) from its\n // CIDSystemInfo dictionary.\n const { registry, ordering } = properties.cidSystemInfo;\n // c) Construct a second CMap name by concatenating the registry and\n // ordering obtained in step (b) in the format registry–ordering–UCS2\n // (for example, Adobe–Japan1–UCS2).\n const ucs2CMapName = Name.get(`${registry}-${ordering}-UCS2`);\n // d) Obtain the CMap with the name constructed in step (c) (available\n // from the ASN Web site; see the Bibliography).\n const ucs2CMap = await CMapFactory.create({\n encoding: ucs2CMapName,\n fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n useCMap: null,\n });\n const toUnicode = [];\n properties.cMap.forEach(function (charcode, cid) {\n if (cid > 0xffff) {\n throw new FormatError(\"Max size of CID is 65,535\");\n }\n // e) Map the CID obtained in step (a) according to the CMap\n // obtained in step (d), producing a Unicode value.\n const ucs2 = ucs2CMap.lookup(cid);\n if (ucs2) {\n toUnicode[charcode] = String.fromCharCode(\n (ucs2.charCodeAt(0) << 8) + ucs2.charCodeAt(1)\n );\n }\n });\n return new ToUnicodeMap(toUnicode);\n }\n\n // The viewer's choice, just use an identity map.\n return new IdentityToUnicodeMap(properties.firstChar, properties.lastChar);\n }\n\n readToUnicode(cmapObj) {\n if (!cmapObj) {\n return Promise.resolve(null);\n }\n if (cmapObj instanceof Name) {\n return CMapFactory.create({\n encoding: cmapObj,\n fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n useCMap: null,\n }).then(function (cmap) {\n if (cmap instanceof IdentityCMap) {\n return new IdentityToUnicodeMap(0, 0xffff);\n }\n return new ToUnicodeMap(cmap.getMap());\n });\n } else if (cmapObj instanceof BaseStream) {\n return CMapFactory.create({\n encoding: cmapObj,\n fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n useCMap: null,\n }).then(\n function (cmap) {\n if (cmap instanceof IdentityCMap) {\n return new IdentityToUnicodeMap(0, 0xffff);\n }\n const map = new Array(cmap.length);\n // Convert UTF-16BE\n // NOTE: cmap can be a sparse array, so use forEach instead of\n // `for(;;)` to iterate over all keys.\n cmap.forEach(function (charCode, token) {\n // Some cmaps contain *only* CID characters (fixes issue9367.pdf).\n if (typeof token === \"number\") {\n map[charCode] = String.fromCodePoint(token);\n return;\n }\n const str = [];\n for (let k = 0; k < token.length; k += 2) {\n const w1 = (token.charCodeAt(k) << 8) | token.charCodeAt(k + 1);\n if ((w1 & 0xf800) !== 0xd800) {\n // w1 < 0xD800 || w1 > 0xDFFF\n str.push(w1);\n continue;\n }\n k += 2;\n const w2 = (token.charCodeAt(k) << 8) | token.charCodeAt(k + 1);\n str.push(((w1 & 0x3ff) << 10) + (w2 & 0x3ff) + 0x10000);\n }\n map[charCode] = String.fromCodePoint.apply(String, str);\n });\n return new ToUnicodeMap(map);\n },\n reason => {\n if (reason instanceof AbortException) {\n return null;\n }\n if (this.options.ignoreErrors) {\n // Error in the ToUnicode data -- sending unsupported feature\n // notification and allow font parsing to continue.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorFontToUnicode,\n });\n warn(`readToUnicode - ignoring ToUnicode data: \"${reason}\".`);\n return null;\n }\n throw reason;\n }\n );\n }\n return Promise.resolve(null);\n }\n\n readCidToGidMap(glyphsData, toUnicode) {\n // Extract the encoding from the CIDToGIDMap\n\n // Set encoding 0 to later verify the font has an encoding\n const result = [];\n for (let j = 0, jj = glyphsData.length; j < jj; j++) {\n const glyphID = (glyphsData[j++] << 8) | glyphsData[j];\n const code = j >> 1;\n if (glyphID === 0 && !toUnicode.has(code)) {\n continue;\n }\n result[code] = glyphID;\n }\n return result;\n }\n\n extractWidths(dict, descriptor, properties) {\n const xref = this.xref;\n let glyphsWidths = [];\n let defaultWidth = 0;\n const glyphsVMetrics = [];\n let defaultVMetrics;\n let i, ii, j, jj, start, code, widths;\n if (properties.composite) {\n defaultWidth = dict.has(\"DW\") ? dict.get(\"DW\") : 1000;\n\n widths = dict.get(\"W\");\n if (widths) {\n for (i = 0, ii = widths.length; i < ii; i++) {\n start = xref.fetchIfRef(widths[i++]);\n code = xref.fetchIfRef(widths[i]);\n if (Array.isArray(code)) {\n for (j = 0, jj = code.length; j < jj; j++) {\n glyphsWidths[start++] = xref.fetchIfRef(code[j]);\n }\n } else {\n const width = xref.fetchIfRef(widths[++i]);\n for (j = start; j <= code; j++) {\n glyphsWidths[j] = width;\n }\n }\n }\n }\n\n if (properties.vertical) {\n let vmetrics = dict.getArray(\"DW2\") || [880, -1000];\n defaultVMetrics = [vmetrics[1], defaultWidth * 0.5, vmetrics[0]];\n vmetrics = dict.get(\"W2\");\n if (vmetrics) {\n for (i = 0, ii = vmetrics.length; i < ii; i++) {\n start = xref.fetchIfRef(vmetrics[i++]);\n code = xref.fetchIfRef(vmetrics[i]);\n if (Array.isArray(code)) {\n for (j = 0, jj = code.length; j < jj; j++) {\n glyphsVMetrics[start++] = [\n xref.fetchIfRef(code[j++]),\n xref.fetchIfRef(code[j++]),\n xref.fetchIfRef(code[j]),\n ];\n }\n } else {\n const vmetric = [\n xref.fetchIfRef(vmetrics[++i]),\n xref.fetchIfRef(vmetrics[++i]),\n xref.fetchIfRef(vmetrics[++i]),\n ];\n for (j = start; j <= code; j++) {\n glyphsVMetrics[j] = vmetric;\n }\n }\n }\n }\n }\n } else {\n const firstChar = properties.firstChar;\n widths = dict.get(\"Widths\");\n if (widths) {\n j = firstChar;\n for (i = 0, ii = widths.length; i < ii; i++) {\n glyphsWidths[j++] = xref.fetchIfRef(widths[i]);\n }\n defaultWidth = parseFloat(descriptor.get(\"MissingWidth\")) || 0;\n } else {\n // Trying get the BaseFont metrics (see comment above).\n const baseFontName = dict.get(\"BaseFont\");\n if (baseFontName instanceof Name) {\n const metrics = this.getBaseFontMetrics(baseFontName.name);\n\n glyphsWidths = this.buildCharCodeToWidth(metrics.widths, properties);\n defaultWidth = metrics.defaultWidth;\n }\n }\n }\n\n // Heuristic: detection of monospace font by checking all non-zero widths\n let isMonospace = true;\n let firstWidth = defaultWidth;\n for (const glyph in glyphsWidths) {\n const glyphWidth = glyphsWidths[glyph];\n if (!glyphWidth) {\n continue;\n }\n if (!firstWidth) {\n firstWidth = glyphWidth;\n continue;\n }\n if (firstWidth !== glyphWidth) {\n isMonospace = false;\n break;\n }\n }\n if (isMonospace) {\n properties.flags |= FontFlags.FixedPitch;\n }\n\n properties.defaultWidth = defaultWidth;\n properties.widths = glyphsWidths;\n properties.defaultVMetrics = defaultVMetrics;\n properties.vmetrics = glyphsVMetrics;\n }\n\n isSerifFont(baseFontName) {\n // Simulating descriptor flags attribute\n const fontNameWoStyle = baseFontName.split(\"-\")[0];\n return (\n fontNameWoStyle in getSerifFonts() ||\n fontNameWoStyle.search(/serif/gi) !== -1\n );\n }\n\n getBaseFontMetrics(name) {\n let defaultWidth = 0;\n let widths = Object.create(null);\n let monospace = false;\n const stdFontMap = getStdFontMap();\n let lookupName = stdFontMap[name] || name;\n const Metrics = getMetrics();\n\n if (!(lookupName in Metrics)) {\n // Use default fonts for looking up font metrics if the passed\n // font is not a base font\n if (this.isSerifFont(name)) {\n lookupName = \"Times-Roman\";\n } else {\n lookupName = \"Helvetica\";\n }\n }\n const glyphWidths = Metrics[lookupName];\n\n if (typeof glyphWidths === \"number\") {\n defaultWidth = glyphWidths;\n monospace = true;\n } else {\n widths = glyphWidths(); // expand lazy widths array\n }\n\n return {\n defaultWidth,\n monospace,\n widths,\n };\n }\n\n buildCharCodeToWidth(widthsByGlyphName, properties) {\n const widths = Object.create(null);\n const differences = properties.differences;\n const encoding = properties.defaultEncoding;\n for (let charCode = 0; charCode < 256; charCode++) {\n if (charCode in differences && widthsByGlyphName[differences[charCode]]) {\n widths[charCode] = widthsByGlyphName[differences[charCode]];\n continue;\n }\n if (charCode in encoding && widthsByGlyphName[encoding[charCode]]) {\n widths[charCode] = widthsByGlyphName[encoding[charCode]];\n continue;\n }\n }\n return widths;\n }\n\n preEvaluateFont(dict) {\n const baseDict = dict;\n let type = dict.get(\"Subtype\");\n if (!(type instanceof Name)) {\n throw new FormatError(\"invalid font Subtype\");\n }\n\n let composite = false;\n let hash, toUnicode;\n if (type.name === \"Type0\") {\n // If font is a composite\n // - get the descendant font\n // - set the type according to the descendant font\n // - get the FontDescriptor from the descendant font\n const df = dict.get(\"DescendantFonts\");\n if (!df) {\n throw new FormatError(\"Descendant fonts are not specified\");\n }\n dict = Array.isArray(df) ? this.xref.fetchIfRef(df[0]) : df;\n\n if (!(dict instanceof Dict)) {\n throw new FormatError(\"Descendant font is not a dictionary.\");\n }\n type = dict.get(\"Subtype\");\n if (!(type instanceof Name)) {\n throw new FormatError(\"invalid font Subtype\");\n }\n composite = true;\n }\n\n const firstChar = dict.get(\"FirstChar\") || 0,\n lastChar = dict.get(\"LastChar\") || (composite ? 0xffff : 0xff);\n const descriptor = dict.get(\"FontDescriptor\");\n if (descriptor) {\n hash = new MurmurHash3_64();\n\n const encoding = baseDict.getRaw(\"Encoding\");\n if (encoding instanceof Name) {\n hash.update(encoding.name);\n } else if (encoding instanceof Ref) {\n hash.update(encoding.toString());\n } else if (encoding instanceof Dict) {\n for (const entry of encoding.getRawValues()) {\n if (entry instanceof Name) {\n hash.update(entry.name);\n } else if (entry instanceof Ref) {\n hash.update(entry.toString());\n } else if (Array.isArray(entry)) {\n // 'Differences' array (fixes bug1157493.pdf).\n const diffLength = entry.length,\n diffBuf = new Array(diffLength);\n\n for (let j = 0; j < diffLength; j++) {\n const diffEntry = entry[j];\n if (diffEntry instanceof Name) {\n diffBuf[j] = diffEntry.name;\n } else if (\n typeof diffEntry === \"number\" ||\n diffEntry instanceof Ref\n ) {\n diffBuf[j] = diffEntry.toString();\n }\n }\n hash.update(diffBuf.join());\n }\n }\n }\n\n hash.update(`${firstChar}-${lastChar}`); // Fixes issue10665_reduced.pdf\n\n toUnicode = dict.get(\"ToUnicode\") || baseDict.get(\"ToUnicode\");\n if (toUnicode instanceof BaseStream) {\n const stream = toUnicode.str || toUnicode;\n const uint8array = stream.buffer\n ? new Uint8Array(stream.buffer.buffer, 0, stream.bufferLength)\n : new Uint8Array(\n stream.bytes.buffer,\n stream.start,\n stream.end - stream.start\n );\n hash.update(uint8array);\n } else if (toUnicode instanceof Name) {\n hash.update(toUnicode.name);\n }\n\n const widths = dict.get(\"Widths\") || baseDict.get(\"Widths\");\n if (Array.isArray(widths)) {\n const widthsBuf = [];\n for (const entry of widths) {\n if (typeof entry === \"number\" || entry instanceof Ref) {\n widthsBuf.push(entry.toString());\n }\n }\n hash.update(widthsBuf.join());\n }\n\n if (composite) {\n hash.update(\"compositeFont\");\n\n const compositeWidths = dict.get(\"W\") || baseDict.get(\"W\");\n if (Array.isArray(compositeWidths)) {\n const widthsBuf = [];\n for (const entry of compositeWidths) {\n if (typeof entry === \"number\" || entry instanceof Ref) {\n widthsBuf.push(entry.toString());\n } else if (Array.isArray(entry)) {\n const subWidthsBuf = [];\n for (const element of entry) {\n if (typeof element === \"number\" || element instanceof Ref) {\n subWidthsBuf.push(element.toString());\n }\n }\n widthsBuf.push(`[${subWidthsBuf.join()}]`);\n }\n }\n hash.update(widthsBuf.join());\n }\n\n const cidToGidMap =\n dict.getRaw(\"CIDToGIDMap\") || baseDict.getRaw(\"CIDToGIDMap\");\n if (cidToGidMap instanceof Name) {\n hash.update(cidToGidMap.name);\n } else if (cidToGidMap instanceof Ref) {\n hash.update(cidToGidMap.toString());\n } else if (cidToGidMap instanceof BaseStream) {\n hash.update(cidToGidMap.peekBytes());\n }\n }\n }\n\n return {\n descriptor,\n dict,\n baseDict,\n composite,\n type: type.name,\n firstChar,\n lastChar,\n toUnicode,\n hash: hash ? hash.hexdigest() : \"\",\n };\n }\n\n async translateFont({\n descriptor,\n dict,\n baseDict,\n composite,\n type,\n firstChar,\n lastChar,\n toUnicode,\n cssFontInfo,\n }) {\n const isType3Font = type === \"Type3\";\n let properties;\n\n if (!descriptor) {\n if (isType3Font) {\n // FontDescriptor is only required for Type3 fonts when the document\n // is a tagged pdf. Create a barbebones one to get by.\n descriptor = new Dict(null);\n descriptor.set(\"FontName\", Name.get(type));\n descriptor.set(\"FontBBox\", dict.getArray(\"FontBBox\") || [0, 0, 0, 0]);\n } else {\n // Before PDF 1.5 if the font was one of the base 14 fonts, having a\n // FontDescriptor was not required.\n // This case is here for compatibility.\n let baseFontName = dict.get(\"BaseFont\");\n if (!(baseFontName instanceof Name)) {\n throw new FormatError(\"Base font is not specified\");\n }\n\n // Using base font name as a font name.\n baseFontName = baseFontName.name.replace(/[,_]/g, \"-\");\n const metrics = this.getBaseFontMetrics(baseFontName);\n\n // Simulating descriptor flags attribute\n const fontNameWoStyle = baseFontName.split(\"-\")[0];\n const flags =\n (this.isSerifFont(fontNameWoStyle) ? FontFlags.Serif : 0) |\n (metrics.monospace ? FontFlags.FixedPitch : 0) |\n (getSymbolsFonts()[fontNameWoStyle]\n ? FontFlags.Symbolic\n : FontFlags.Nonsymbolic);\n\n properties = {\n type,\n name: baseFontName,\n loadedName: baseDict.loadedName,\n widths: metrics.widths,\n defaultWidth: metrics.defaultWidth,\n isSimulatedFlags: true,\n flags,\n firstChar,\n lastChar,\n toUnicode,\n xHeight: 0,\n capHeight: 0,\n italicAngle: 0,\n isType3Font,\n };\n const widths = dict.get(\"Widths\");\n\n const standardFontName = getStandardFontName(baseFontName);\n let file = null;\n if (standardFontName) {\n properties.isStandardFont = true;\n file = await this.fetchStandardFontData(standardFontName);\n properties.isInternalFont = !!file;\n }\n return this.extractDataStructures(dict, dict, properties).then(\n newProperties => {\n if (widths) {\n const glyphWidths = [];\n let j = firstChar;\n for (let i = 0, ii = widths.length; i < ii; i++) {\n glyphWidths[j++] = this.xref.fetchIfRef(widths[i]);\n }\n newProperties.widths = glyphWidths;\n } else {\n newProperties.widths = this.buildCharCodeToWidth(\n metrics.widths,\n newProperties\n );\n }\n return new Font(baseFontName, file, newProperties);\n }\n );\n }\n }\n\n // According to the spec if 'FontDescriptor' is declared, 'FirstChar',\n // 'LastChar' and 'Widths' should exist too, but some PDF encoders seem\n // to ignore this rule when a variant of a standard font is used.\n // TODO Fill the width array depending on which of the base font this is\n // a variant.\n\n let fontName = descriptor.get(\"FontName\");\n let baseFont = dict.get(\"BaseFont\");\n // Some bad PDFs have a string as the font name.\n if (typeof fontName === \"string\") {\n fontName = Name.get(fontName);\n }\n if (typeof baseFont === \"string\") {\n baseFont = Name.get(baseFont);\n }\n\n if (!isType3Font) {\n const fontNameStr = fontName && fontName.name;\n const baseFontStr = baseFont && baseFont.name;\n if (fontNameStr !== baseFontStr) {\n info(\n `The FontDescriptor's FontName is \"${fontNameStr}\" but ` +\n `should be the same as the Font's BaseFont \"${baseFontStr}\".`\n );\n // Workaround for cases where e.g. fontNameStr = 'Arial' and\n // baseFontStr = 'Arial,Bold' (needed when no font file is embedded).\n if (fontNameStr && baseFontStr && baseFontStr.startsWith(fontNameStr)) {\n fontName = baseFont;\n }\n }\n }\n fontName = fontName || baseFont;\n\n if (!(fontName instanceof Name)) {\n throw new FormatError(\"invalid font name\");\n }\n\n let fontFile, subtype, length1, length2, length3;\n try {\n fontFile = descriptor.get(\"FontFile\", \"FontFile2\", \"FontFile3\");\n } catch (ex) {\n if (!this.options.ignoreErrors) {\n throw ex;\n }\n warn(`translateFont - fetching \"${fontName.name}\" font file: \"${ex}\".`);\n fontFile = new NullStream();\n }\n let isStandardFont = false;\n let isInternalFont = false;\n let glyphScaleFactors = null;\n if (fontFile) {\n if (fontFile.dict) {\n const subtypeEntry = fontFile.dict.get(\"Subtype\");\n if (subtypeEntry instanceof Name) {\n subtype = subtypeEntry.name;\n }\n length1 = fontFile.dict.get(\"Length1\");\n length2 = fontFile.dict.get(\"Length2\");\n length3 = fontFile.dict.get(\"Length3\");\n }\n } else if (cssFontInfo) {\n // We've a missing XFA font.\n const standardFontName = getXfaFontName(fontName.name);\n if (standardFontName) {\n cssFontInfo.fontFamily = `${cssFontInfo.fontFamily}-PdfJS-XFA`;\n cssFontInfo.metrics = standardFontName.metrics || null;\n glyphScaleFactors = standardFontName.factors || null;\n fontFile = await this.fetchStandardFontData(standardFontName.name);\n isInternalFont = !!fontFile;\n\n // We're using a substitution font but for example widths (if any)\n // are related to the glyph positions in the font.\n // So we overwrite everything here to be sure that widths are\n // correct.\n baseDict = dict = getXfaFontDict(fontName.name);\n composite = true;\n }\n } else if (!isType3Font) {\n const standardFontName = getStandardFontName(fontName.name);\n if (standardFontName) {\n isStandardFont = true;\n fontFile = await this.fetchStandardFontData(standardFontName);\n isInternalFont = !!fontFile;\n }\n }\n\n properties = {\n type,\n name: fontName.name,\n subtype,\n file: fontFile,\n length1,\n length2,\n length3,\n isStandardFont,\n isInternalFont,\n loadedName: baseDict.loadedName,\n composite,\n fixedPitch: false,\n fontMatrix: dict.getArray(\"FontMatrix\") || FONT_IDENTITY_MATRIX,\n firstChar,\n lastChar,\n toUnicode,\n bbox: descriptor.getArray(\"FontBBox\") || dict.getArray(\"FontBBox\"),\n ascent: descriptor.get(\"Ascent\"),\n descent: descriptor.get(\"Descent\"),\n xHeight: descriptor.get(\"XHeight\") || 0,\n capHeight: descriptor.get(\"CapHeight\") || 0,\n flags: descriptor.get(\"Flags\"),\n italicAngle: descriptor.get(\"ItalicAngle\") || 0,\n isType3Font,\n cssFontInfo,\n scaleFactors: glyphScaleFactors,\n };\n\n if (composite) {\n const cidEncoding = baseDict.get(\"Encoding\");\n if (cidEncoding instanceof Name) {\n properties.cidEncoding = cidEncoding.name;\n }\n const cMap = await CMapFactory.create({\n encoding: cidEncoding,\n fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n useCMap: null,\n });\n properties.cMap = cMap;\n properties.vertical = properties.cMap.vertical;\n }\n\n return this.extractDataStructures(dict, baseDict, properties).then(\n newProperties => {\n this.extractWidths(dict, descriptor, newProperties);\n\n return new Font(fontName.name, fontFile, newProperties);\n }\n );\n }\n\n static buildFontPaths(font, glyphs, handler, evaluatorOptions) {\n function buildPath(fontChar) {\n const glyphName = `${font.loadedName}_path_${fontChar}`;\n try {\n if (font.renderer.hasBuiltPath(fontChar)) {\n return;\n }\n handler.send(\"commonobj\", [\n glyphName,\n \"FontPath\",\n font.renderer.getPathJs(fontChar),\n ]);\n } catch (reason) {\n if (evaluatorOptions.ignoreErrors) {\n // Error in the font data -- sending unsupported feature notification\n // and allow glyph path building to continue.\n handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorFontBuildPath,\n });\n warn(`buildFontPaths - ignoring ${glyphName} glyph: \"${reason}\".`);\n return;\n }\n throw reason;\n }\n }\n\n for (const glyph of glyphs) {\n buildPath(glyph.fontChar);\n\n // If the glyph has an accent we need to build a path for its\n // fontChar too, otherwise CanvasGraphics_paintChar will fail.\n const accent = glyph.accent;\n if (accent && accent.fontChar) {\n buildPath(accent.fontChar);\n }\n }\n }\n\n static get fallbackFontDict() {\n const dict = new Dict();\n dict.set(\"BaseFont\", Name.get(\"PDFJS-FallbackFont\"));\n dict.set(\"Type\", Name.get(\"FallbackType\"));\n dict.set(\"Subtype\", Name.get(\"FallbackType\"));\n dict.set(\"Encoding\", Name.get(\"WinAnsiEncoding\"));\n\n return shadow(this, \"fallbackFontDict\", dict);\n }\n}\n\nclass TranslatedFont {\n constructor({ loadedName, font, dict, evaluatorOptions }) {\n this.loadedName = loadedName;\n this.font = font;\n this.dict = dict;\n this._evaluatorOptions = evaluatorOptions || DefaultPartialEvaluatorOptions;\n this.type3Loaded = null;\n this.type3Dependencies = font.isType3Font ? new Set() : null;\n this.sent = false;\n }\n\n send(handler) {\n if (this.sent) {\n return;\n }\n this.sent = true;\n\n handler.send(\"commonobj\", [\n this.loadedName,\n \"Font\",\n this.font.exportData(this._evaluatorOptions.fontExtraProperties),\n ]);\n }\n\n fallback(handler) {\n if (!this.font.data) {\n return;\n }\n // When font loading failed, fall back to the built-in font renderer.\n this.font.disableFontFace = true;\n // An arbitrary number of text rendering operators could have been\n // encountered between the point in time when the 'Font' message was sent\n // to the main-thread, and the point in time when the 'FontFallback'\n // message was received on the worker-thread.\n // To ensure that all 'FontPath's are available on the main-thread, when\n // font loading failed, attempt to resend *all* previously parsed glyphs.\n PartialEvaluator.buildFontPaths(\n this.font,\n /* glyphs = */ this.font.glyphCacheValues,\n handler,\n this._evaluatorOptions\n );\n }\n\n loadType3Data(evaluator, resources, task) {\n if (this.type3Loaded) {\n return this.type3Loaded;\n }\n if (!this.font.isType3Font) {\n throw new Error(\"Must be a Type3 font.\");\n }\n // When parsing Type3 glyphs, always ignore them if there are errors.\n // Compared to the parsing of e.g. an entire page, it doesn't really\n // make sense to only be able to render a Type3 glyph partially.\n const type3Evaluator = evaluator.clone({ ignoreErrors: false });\n type3Evaluator.parsingType3Font = true;\n // Prevent circular references in Type3 fonts.\n const type3FontRefs = new RefSet(evaluator.type3FontRefs);\n if (this.dict.objId && !type3FontRefs.has(this.dict.objId)) {\n type3FontRefs.put(this.dict.objId);\n }\n type3Evaluator.type3FontRefs = type3FontRefs;\n\n const translatedFont = this.font,\n type3Dependencies = this.type3Dependencies;\n let loadCharProcsPromise = Promise.resolve();\n const charProcs = this.dict.get(\"CharProcs\");\n const fontResources = this.dict.get(\"Resources\") || resources;\n const charProcOperatorList = Object.create(null);\n\n const isEmptyBBox =\n !translatedFont.bbox || isArrayEqual(translatedFont.bbox, [0, 0, 0, 0]);\n\n for (const key of charProcs.getKeys()) {\n loadCharProcsPromise = loadCharProcsPromise.then(() => {\n const glyphStream = charProcs.get(key);\n const operatorList = new OperatorList();\n return type3Evaluator\n .getOperatorList({\n stream: glyphStream,\n task,\n resources: fontResources,\n operatorList,\n })\n .then(() => {\n // According to the PDF specification, section \"9.6.5 Type 3 Fonts\"\n // and \"Table 113\":\n // \"A glyph description that begins with the d1 operator should\n // not execute any operators that set the colour (or other\n // colour-related parameters) in the graphics state;\n // any use of such operators shall be ignored.\"\n if (operatorList.fnArray[0] === OPS.setCharWidthAndBounds) {\n this._removeType3ColorOperators(operatorList, isEmptyBBox);\n }\n charProcOperatorList[key] = operatorList.getIR();\n\n for (const dependency of operatorList.dependencies) {\n type3Dependencies.add(dependency);\n }\n })\n .catch(function (reason) {\n warn(`Type3 font resource \"${key}\" is not available.`);\n const dummyOperatorList = new OperatorList();\n charProcOperatorList[key] = dummyOperatorList.getIR();\n });\n });\n }\n this.type3Loaded = loadCharProcsPromise.then(() => {\n translatedFont.charProcOperatorList = charProcOperatorList;\n if (this._bbox) {\n translatedFont.isCharBBox = true;\n translatedFont.bbox = this._bbox;\n }\n });\n return this.type3Loaded;\n }\n\n /**\n * @private\n */\n _removeType3ColorOperators(operatorList, isEmptyBBox = false) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n operatorList.fnArray[0] === OPS.setCharWidthAndBounds,\n \"Type3 glyph shall start with the d1 operator.\"\n );\n }\n if (isEmptyBBox) {\n if (!this._bbox) {\n this._bbox = [Infinity, Infinity, -Infinity, -Infinity];\n }\n const charBBox = Util.normalizeRect(operatorList.argsArray[0].slice(2));\n\n this._bbox[0] = Math.min(this._bbox[0], charBBox[0]);\n this._bbox[1] = Math.min(this._bbox[1], charBBox[1]);\n this._bbox[2] = Math.max(this._bbox[2], charBBox[2]);\n this._bbox[3] = Math.max(this._bbox[3], charBBox[3]);\n }\n let i = 1,\n ii = operatorList.length;\n while (i < ii) {\n switch (operatorList.fnArray[i]) {\n case OPS.setStrokeColorSpace:\n case OPS.setFillColorSpace:\n case OPS.setStrokeColor:\n case OPS.setStrokeColorN:\n case OPS.setFillColor:\n case OPS.setFillColorN:\n case OPS.setStrokeGray:\n case OPS.setFillGray:\n case OPS.setStrokeRGBColor:\n case OPS.setFillRGBColor:\n case OPS.setStrokeCMYKColor:\n case OPS.setFillCMYKColor:\n case OPS.shadingFill:\n case OPS.setRenderingIntent:\n operatorList.fnArray.splice(i, 1);\n operatorList.argsArray.splice(i, 1);\n ii--;\n continue;\n\n case OPS.setGState:\n const [gStateObj] = operatorList.argsArray[i];\n let j = 0,\n jj = gStateObj.length;\n while (j < jj) {\n const [gStateKey] = gStateObj[j];\n switch (gStateKey) {\n case \"TR\":\n case \"TR2\":\n case \"HT\":\n case \"BG\":\n case \"BG2\":\n case \"UCR\":\n case \"UCR2\":\n gStateObj.splice(j, 1);\n jj--;\n continue;\n }\n j++;\n }\n break;\n }\n i++;\n }\n }\n}\n\nclass StateManager {\n constructor(initialState = new EvalState()) {\n this.state = initialState;\n this.stateStack = [];\n }\n\n save() {\n const old = this.state;\n this.stateStack.push(this.state);\n this.state = old.clone();\n }\n\n restore() {\n const prev = this.stateStack.pop();\n if (prev) {\n this.state = prev;\n }\n }\n\n transform(args) {\n this.state.ctm = Util.transform(this.state.ctm, args);\n }\n}\n\nclass TextState {\n constructor() {\n this.ctm = new Float32Array(IDENTITY_MATRIX);\n this.fontName = null;\n this.fontSize = 0;\n this.font = null;\n this.fontMatrix = FONT_IDENTITY_MATRIX.slice();\n this.textMatrix = IDENTITY_MATRIX.slice();\n this.textLineMatrix = IDENTITY_MATRIX.slice();\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.leading = 0;\n this.textHScale = 1;\n this.textRise = 0;\n }\n\n setTextMatrix(a, b, c, d, e, f) {\n const m = this.textMatrix;\n m[0] = a;\n m[1] = b;\n m[2] = c;\n m[3] = d;\n m[4] = e;\n m[5] = f;\n }\n\n setTextLineMatrix(a, b, c, d, e, f) {\n const m = this.textLineMatrix;\n m[0] = a;\n m[1] = b;\n m[2] = c;\n m[3] = d;\n m[4] = e;\n m[5] = f;\n }\n\n translateTextMatrix(x, y) {\n const m = this.textMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n }\n\n translateTextLineMatrix(x, y) {\n const m = this.textLineMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n }\n\n carriageReturn() {\n this.translateTextLineMatrix(0, -this.leading);\n this.textMatrix = this.textLineMatrix.slice();\n }\n\n clone() {\n const clone = Object.create(this);\n clone.textMatrix = this.textMatrix ? this.textMatrix.slice() : IDENTITY_MATRIX.slice();\n clone.textLineMatrix = this.textLineMatrix ? this.textLineMatrix.slice() : IDENTITY_MATRIX.slice();\n clone.fontMatrix = this.fontMatrix ? this.fontMatrix.slice() : FONT_IDENTITY_MATRIX.slice();\n return clone;\n }\n}\n\nclass EvalState {\n constructor() {\n this.ctm = new Float32Array(IDENTITY_MATRIX);\n this.font = null;\n this.textRenderingMode = TextRenderingMode.FILL;\n this.fillColorSpace = ColorSpace.singletons.gray;\n this.strokeColorSpace = ColorSpace.singletons.gray;\n }\n\n clone() {\n return Object.create(this);\n }\n}\n\nclass EvaluatorPreprocessor {\n static get opMap() {\n // Specifies properties for each command\n //\n // If variableArgs === true: [0, `numArgs`] expected\n // If variableArgs === false: exactly `numArgs` expected\n const getOPMap = getLookupTableFactory(function (t) {\n // Graphic state\n t.w = { id: OPS.setLineWidth, numArgs: 1, variableArgs: false };\n t.J = { id: OPS.setLineCap, numArgs: 1, variableArgs: false };\n t.j = { id: OPS.setLineJoin, numArgs: 1, variableArgs: false };\n t.M = { id: OPS.setMiterLimit, numArgs: 1, variableArgs: false };\n t.d = { id: OPS.setDash, numArgs: 2, variableArgs: false };\n t.ri = { id: OPS.setRenderingIntent, numArgs: 1, variableArgs: false };\n t.i = { id: OPS.setFlatness, numArgs: 1, variableArgs: false };\n t.gs = { id: OPS.setGState, numArgs: 1, variableArgs: false };\n t.q = { id: OPS.save, numArgs: 0, variableArgs: false };\n t.Q = { id: OPS.restore, numArgs: 0, variableArgs: false };\n t.cm = { id: OPS.transform, numArgs: 6, variableArgs: false };\n\n // Path\n t.m = { id: OPS.moveTo, numArgs: 2, variableArgs: false };\n t.l = { id: OPS.lineTo, numArgs: 2, variableArgs: false };\n t.c = { id: OPS.curveTo, numArgs: 6, variableArgs: false };\n t.v = { id: OPS.curveTo2, numArgs: 4, variableArgs: false };\n t.y = { id: OPS.curveTo3, numArgs: 4, variableArgs: false };\n t.h = { id: OPS.closePath, numArgs: 0, variableArgs: false };\n t.re = { id: OPS.rectangle, numArgs: 4, variableArgs: false };\n t.S = { id: OPS.stroke, numArgs: 0, variableArgs: false };\n t.s = { id: OPS.closeStroke, numArgs: 0, variableArgs: false };\n t.f = { id: OPS.fill, numArgs: 0, variableArgs: false };\n t.F = { id: OPS.fill, numArgs: 0, variableArgs: false };\n t[\"f*\"] = { id: OPS.eoFill, numArgs: 0, variableArgs: false };\n t.B = { id: OPS.fillStroke, numArgs: 0, variableArgs: false };\n t[\"B*\"] = { id: OPS.eoFillStroke, numArgs: 0, variableArgs: false };\n t.b = { id: OPS.closeFillStroke, numArgs: 0, variableArgs: false };\n t[\"b*\"] = { id: OPS.closeEOFillStroke, numArgs: 0, variableArgs: false };\n t.n = { id: OPS.endPath, numArgs: 0, variableArgs: false };\n\n // Clipping\n t.W = { id: OPS.clip, numArgs: 0, variableArgs: false };\n t[\"W*\"] = { id: OPS.eoClip, numArgs: 0, variableArgs: false };\n\n // Text\n t.BT = { id: OPS.beginText, numArgs: 0, variableArgs: false };\n t.ET = { id: OPS.endText, numArgs: 0, variableArgs: false };\n t.Tc = { id: OPS.setCharSpacing, numArgs: 1, variableArgs: false };\n t.Tw = { id: OPS.setWordSpacing, numArgs: 1, variableArgs: false };\n t.Tz = { id: OPS.setHScale, numArgs: 1, variableArgs: false };\n t.TL = { id: OPS.setLeading, numArgs: 1, variableArgs: false };\n t.Tf = { id: OPS.setFont, numArgs: 2, variableArgs: false };\n t.Tr = { id: OPS.setTextRenderingMode, numArgs: 1, variableArgs: false };\n t.Ts = { id: OPS.setTextRise, numArgs: 1, variableArgs: false };\n t.Td = { id: OPS.moveText, numArgs: 2, variableArgs: false };\n t.TD = { id: OPS.setLeadingMoveText, numArgs: 2, variableArgs: false };\n t.Tm = { id: OPS.setTextMatrix, numArgs: 6, variableArgs: false };\n t[\"T*\"] = { id: OPS.nextLine, numArgs: 0, variableArgs: false };\n t.Tj = { id: OPS.showText, numArgs: 1, variableArgs: false };\n t.TJ = { id: OPS.showSpacedText, numArgs: 1, variableArgs: false };\n t[\"'\"] = { id: OPS.nextLineShowText, numArgs: 1, variableArgs: false };\n t['\"'] = {\n id: OPS.nextLineSetSpacingShowText,\n numArgs: 3,\n variableArgs: false,\n };\n\n // Type3 fonts\n t.d0 = { id: OPS.setCharWidth, numArgs: 2, variableArgs: false };\n t.d1 = {\n id: OPS.setCharWidthAndBounds,\n numArgs: 6,\n variableArgs: false,\n };\n\n // Color\n t.CS = { id: OPS.setStrokeColorSpace, numArgs: 1, variableArgs: false };\n t.cs = { id: OPS.setFillColorSpace, numArgs: 1, variableArgs: false };\n t.SC = { id: OPS.setStrokeColor, numArgs: 4, variableArgs: true };\n t.SCN = { id: OPS.setStrokeColorN, numArgs: 33, variableArgs: true };\n t.sc = { id: OPS.setFillColor, numArgs: 4, variableArgs: true };\n t.scn = { id: OPS.setFillColorN, numArgs: 33, variableArgs: true };\n t.G = { id: OPS.setStrokeGray, numArgs: 1, variableArgs: false };\n t.g = { id: OPS.setFillGray, numArgs: 1, variableArgs: false };\n t.RG = { id: OPS.setStrokeRGBColor, numArgs: 3, variableArgs: false };\n t.rg = { id: OPS.setFillRGBColor, numArgs: 3, variableArgs: false };\n t.K = { id: OPS.setStrokeCMYKColor, numArgs: 4, variableArgs: false };\n t.k = { id: OPS.setFillCMYKColor, numArgs: 4, variableArgs: false };\n\n // Shading\n t.sh = { id: OPS.shadingFill, numArgs: 1, variableArgs: false };\n\n // Images\n t.BI = { id: OPS.beginInlineImage, numArgs: 0, variableArgs: false };\n t.ID = { id: OPS.beginImageData, numArgs: 0, variableArgs: false };\n t.EI = { id: OPS.endInlineImage, numArgs: 1, variableArgs: false };\n\n // XObjects\n t.Do = { id: OPS.paintXObject, numArgs: 1, variableArgs: false };\n t.MP = { id: OPS.markPoint, numArgs: 1, variableArgs: false };\n t.DP = { id: OPS.markPointProps, numArgs: 2, variableArgs: false };\n t.BMC = { id: OPS.beginMarkedContent, numArgs: 1, variableArgs: false };\n t.BDC = {\n id: OPS.beginMarkedContentProps,\n numArgs: 2,\n variableArgs: false,\n };\n t.EMC = { id: OPS.endMarkedContent, numArgs: 0, variableArgs: false };\n\n // Compatibility\n t.BX = { id: OPS.beginCompat, numArgs: 0, variableArgs: false };\n t.EX = { id: OPS.endCompat, numArgs: 0, variableArgs: false };\n\n // (reserved partial commands for the lexer)\n t.BM = null;\n t.BD = null;\n t.true = null;\n t.fa = null;\n t.fal = null;\n t.fals = null;\n t.false = null;\n t.nu = null;\n t.nul = null;\n t.null = null;\n });\n\n return shadow(this, \"opMap\", getOPMap());\n }\n\n static get MAX_INVALID_PATH_OPS() {\n return shadow(this, \"MAX_INVALID_PATH_OPS\", 10);\n }\n\n constructor(stream, xref, stateManager = new StateManager()) {\n // TODO(mduan): pass array of knownCommands rather than this.opMap\n // dictionary\n this.parser = new Parser({\n lexer: new Lexer(stream, EvaluatorPreprocessor.opMap),\n xref,\n });\n this.stateManager = stateManager;\n this.nonProcessedArgs = [];\n this._numInvalidPathOPS = 0;\n }\n\n get savedStatesDepth() {\n return this.stateManager.stateStack.length;\n }\n\n // |operation| is an object with two fields:\n //\n // - |fn| is an out param.\n //\n // - |args| is an inout param. On entry, it should have one of two values.\n //\n // - An empty array. This indicates that the caller is providing the\n // array in which the args will be stored in. The caller should use\n // this value if it can reuse a single array for each call to read().\n //\n // - |null|. This indicates that the caller needs this function to create\n // the array in which any args are stored in. If there are zero args,\n // this function will leave |operation.args| as |null| (thus avoiding\n // allocations that would occur if we used an empty array to represent\n // zero arguments). Otherwise, it will replace |null| with a new array\n // containing the arguments. The caller should use this value if it\n // cannot reuse an array for each call to read().\n //\n // These two modes are present because this function is very hot and so\n // avoiding allocations where possible is worthwhile.\n //\n read(operation) {\n let args = operation.args;\n while (true) {\n const obj = this.parser.getObj();\n if (obj instanceof Cmd) {\n const cmd = obj.cmd;\n // Check that the command is valid\n const opSpec = EvaluatorPreprocessor.opMap[cmd];\n if (!opSpec) {\n warn(`Unknown command \"${cmd}\".`);\n continue;\n }\n\n const fn = opSpec.id;\n const numArgs = opSpec.numArgs;\n let argsLength = args !== null ? args.length : 0;\n\n if (!opSpec.variableArgs) {\n // Postscript commands can be nested, e.g. /F2 /GS2 gs 5.711 Tf\n if (argsLength !== numArgs) {\n const nonProcessedArgs = this.nonProcessedArgs;\n while (argsLength > numArgs) {\n nonProcessedArgs.push(args.shift());\n argsLength--;\n }\n while (argsLength < numArgs && nonProcessedArgs.length !== 0) {\n if (args === null) {\n args = [];\n }\n args.unshift(nonProcessedArgs.pop());\n argsLength++;\n }\n }\n\n if (argsLength < numArgs) {\n const partialMsg =\n `command ${cmd}: expected ${numArgs} args, ` +\n `but received ${argsLength} args.`;\n\n // Incomplete path operators, in particular, can result in fairly\n // chaotic rendering artifacts. Hence the following heuristics is\n // used to error, rather than just warn, once a number of invalid\n // path operators have been encountered (fixes bug1443140.pdf).\n if (\n fn >= OPS.moveTo &&\n fn <= OPS.endPath && // Path operator\n ++this._numInvalidPathOPS >\n EvaluatorPreprocessor.MAX_INVALID_PATH_OPS\n ) {\n throw new FormatError(`Invalid ${partialMsg}`);\n }\n // If we receive too few arguments, it's not possible to execute\n // the command, hence we skip the command.\n warn(`Skipping ${partialMsg}`);\n if (args !== null) {\n args.length = 0;\n }\n continue;\n }\n } else if (argsLength > numArgs) {\n info(\n `Command ${cmd}: expected [0, ${numArgs}] args, ` +\n `but received ${argsLength} args.`\n );\n }\n\n // TODO figure out how to type-check vararg functions\n this.preprocessCommand(fn, args);\n\n operation.fn = fn;\n operation.args = args;\n return true;\n }\n if (obj === EOF) {\n return false; // no more commands\n }\n // argument\n if (obj !== null) {\n if (args === null) {\n args = [];\n }\n args.push(obj);\n if (args.length > 33) {\n throw new FormatError(\"Too many arguments\");\n }\n }\n }\n }\n\n preprocessCommand(fn, args) {\n switch (fn | 0) {\n case OPS.save:\n this.stateManager.save();\n break;\n case OPS.restore:\n this.stateManager.restore();\n break;\n case OPS.transform:\n this.stateManager.transform(args);\n break;\n }\n }\n}\n\nexport { EvaluatorPreprocessor, PartialEvaluator, StateManager, TextState };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n CMapCompressionType,\n FormatError,\n unreachable,\n warn,\n} from \"../shared/util.js\";\nimport { Cmd, EOF, isCmd, Name } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { Lexer } from \"./parser.js\";\nimport { MissingDataException } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\n\nconst BUILT_IN_CMAPS = [\n // << Start unicode maps.\n \"Adobe-GB1-UCS2\",\n \"Adobe-CNS1-UCS2\",\n \"Adobe-Japan1-UCS2\",\n \"Adobe-Korea1-UCS2\",\n // >> End unicode maps.\n \"78-EUC-H\",\n \"78-EUC-V\",\n \"78-H\",\n \"78-RKSJ-H\",\n \"78-RKSJ-V\",\n \"78-V\",\n \"78ms-RKSJ-H\",\n \"78ms-RKSJ-V\",\n \"83pv-RKSJ-H\",\n \"90ms-RKSJ-H\",\n \"90ms-RKSJ-V\",\n \"90msp-RKSJ-H\",\n \"90msp-RKSJ-V\",\n \"90pv-RKSJ-H\",\n \"90pv-RKSJ-V\",\n \"Add-H\",\n \"Add-RKSJ-H\",\n \"Add-RKSJ-V\",\n \"Add-V\",\n \"Adobe-CNS1-0\",\n \"Adobe-CNS1-1\",\n \"Adobe-CNS1-2\",\n \"Adobe-CNS1-3\",\n \"Adobe-CNS1-4\",\n \"Adobe-CNS1-5\",\n \"Adobe-CNS1-6\",\n \"Adobe-GB1-0\",\n \"Adobe-GB1-1\",\n \"Adobe-GB1-2\",\n \"Adobe-GB1-3\",\n \"Adobe-GB1-4\",\n \"Adobe-GB1-5\",\n \"Adobe-Japan1-0\",\n \"Adobe-Japan1-1\",\n \"Adobe-Japan1-2\",\n \"Adobe-Japan1-3\",\n \"Adobe-Japan1-4\",\n \"Adobe-Japan1-5\",\n \"Adobe-Japan1-6\",\n \"Adobe-Korea1-0\",\n \"Adobe-Korea1-1\",\n \"Adobe-Korea1-2\",\n \"B5-H\",\n \"B5-V\",\n \"B5pc-H\",\n \"B5pc-V\",\n \"CNS-EUC-H\",\n \"CNS-EUC-V\",\n \"CNS1-H\",\n \"CNS1-V\",\n \"CNS2-H\",\n \"CNS2-V\",\n \"ETHK-B5-H\",\n \"ETHK-B5-V\",\n \"ETen-B5-H\",\n \"ETen-B5-V\",\n \"ETenms-B5-H\",\n \"ETenms-B5-V\",\n \"EUC-H\",\n \"EUC-V\",\n \"Ext-H\",\n \"Ext-RKSJ-H\",\n \"Ext-RKSJ-V\",\n \"Ext-V\",\n \"GB-EUC-H\",\n \"GB-EUC-V\",\n \"GB-H\",\n \"GB-V\",\n \"GBK-EUC-H\",\n \"GBK-EUC-V\",\n \"GBK2K-H\",\n \"GBK2K-V\",\n \"GBKp-EUC-H\",\n \"GBKp-EUC-V\",\n \"GBT-EUC-H\",\n \"GBT-EUC-V\",\n \"GBT-H\",\n \"GBT-V\",\n \"GBTpc-EUC-H\",\n \"GBTpc-EUC-V\",\n \"GBpc-EUC-H\",\n \"GBpc-EUC-V\",\n \"H\",\n \"HKdla-B5-H\",\n \"HKdla-B5-V\",\n \"HKdlb-B5-H\",\n \"HKdlb-B5-V\",\n \"HKgccs-B5-H\",\n \"HKgccs-B5-V\",\n \"HKm314-B5-H\",\n \"HKm314-B5-V\",\n \"HKm471-B5-H\",\n \"HKm471-B5-V\",\n \"HKscs-B5-H\",\n \"HKscs-B5-V\",\n \"Hankaku\",\n \"Hiragana\",\n \"KSC-EUC-H\",\n \"KSC-EUC-V\",\n \"KSC-H\",\n \"KSC-Johab-H\",\n \"KSC-Johab-V\",\n \"KSC-V\",\n \"KSCms-UHC-H\",\n \"KSCms-UHC-HW-H\",\n \"KSCms-UHC-HW-V\",\n \"KSCms-UHC-V\",\n \"KSCpc-EUC-H\",\n \"KSCpc-EUC-V\",\n \"Katakana\",\n \"NWP-H\",\n \"NWP-V\",\n \"RKSJ-H\",\n \"RKSJ-V\",\n \"Roman\",\n \"UniCNS-UCS2-H\",\n \"UniCNS-UCS2-V\",\n \"UniCNS-UTF16-H\",\n \"UniCNS-UTF16-V\",\n \"UniCNS-UTF32-H\",\n \"UniCNS-UTF32-V\",\n \"UniCNS-UTF8-H\",\n \"UniCNS-UTF8-V\",\n \"UniGB-UCS2-H\",\n \"UniGB-UCS2-V\",\n \"UniGB-UTF16-H\",\n \"UniGB-UTF16-V\",\n \"UniGB-UTF32-H\",\n \"UniGB-UTF32-V\",\n \"UniGB-UTF8-H\",\n \"UniGB-UTF8-V\",\n \"UniJIS-UCS2-H\",\n \"UniJIS-UCS2-HW-H\",\n \"UniJIS-UCS2-HW-V\",\n \"UniJIS-UCS2-V\",\n \"UniJIS-UTF16-H\",\n \"UniJIS-UTF16-V\",\n \"UniJIS-UTF32-H\",\n \"UniJIS-UTF32-V\",\n \"UniJIS-UTF8-H\",\n \"UniJIS-UTF8-V\",\n \"UniJIS2004-UTF16-H\",\n \"UniJIS2004-UTF16-V\",\n \"UniJIS2004-UTF32-H\",\n \"UniJIS2004-UTF32-V\",\n \"UniJIS2004-UTF8-H\",\n \"UniJIS2004-UTF8-V\",\n \"UniJISPro-UCS2-HW-V\",\n \"UniJISPro-UCS2-V\",\n \"UniJISPro-UTF8-V\",\n \"UniJISX0213-UTF32-H\",\n \"UniJISX0213-UTF32-V\",\n \"UniJISX02132004-UTF32-H\",\n \"UniJISX02132004-UTF32-V\",\n \"UniKS-UCS2-H\",\n \"UniKS-UCS2-V\",\n \"UniKS-UTF16-H\",\n \"UniKS-UTF16-V\",\n \"UniKS-UTF32-H\",\n \"UniKS-UTF32-V\",\n \"UniKS-UTF8-H\",\n \"UniKS-UTF8-V\",\n \"V\",\n \"WP-Symbol\",\n];\n\n// Heuristic to avoid hanging the worker-thread for CMap data with ridiculously\n// large ranges, such as e.g. 0xFFFFFFFF (fixes issue11922_reduced.pdf).\nconst MAX_MAP_RANGE = 2 ** 24 - 1; // = 0xFFFFFF\n\n// CMap, not to be confused with TrueType's cmap.\nclass CMap {\n constructor(builtInCMap = false) {\n // Codespace ranges are stored as follows:\n // [[1BytePairs], [2BytePairs], [3BytePairs], [4BytePairs]]\n // where nBytePairs are ranges e.g. [low1, high1, low2, high2, ...]\n this.codespaceRanges = [[], [], [], []];\n this.numCodespaceRanges = 0;\n // Map entries have one of two forms.\n // - cid chars are 16-bit unsigned integers, stored as integers.\n // - bf chars are variable-length byte sequences, stored as strings, with\n // one byte per character.\n this._map = [];\n this.name = \"\";\n this.vertical = false;\n this.useCMap = null;\n this.builtInCMap = builtInCMap;\n }\n\n addCodespaceRange(n, low, high) {\n this.codespaceRanges[n - 1].push(low, high);\n this.numCodespaceRanges++;\n }\n\n mapCidRange(low, high, dstLow) {\n if (high - low > MAX_MAP_RANGE) {\n throw new Error(\"mapCidRange - ignoring data above MAX_MAP_RANGE.\");\n }\n while (low <= high) {\n this._map[low++] = dstLow++;\n }\n }\n\n mapBfRange(low, high, dstLow) {\n if (high - low > MAX_MAP_RANGE) {\n throw new Error(\"mapBfRange - ignoring data above MAX_MAP_RANGE.\");\n }\n const lastByte = dstLow.length - 1;\n while (low <= high) {\n this._map[low++] = dstLow;\n // Only the last byte has to be incremented (in the normal case).\n const nextCharCode = dstLow.charCodeAt(lastByte) + 1;\n if (nextCharCode > 0xff) {\n dstLow =\n dstLow.substring(0, lastByte - 1) +\n String.fromCharCode(dstLow.charCodeAt(lastByte - 1) + 1) +\n \"\\x00\";\n continue;\n }\n dstLow =\n dstLow.substring(0, lastByte) + String.fromCharCode(nextCharCode);\n }\n }\n\n mapBfRangeToArray(low, high, array) {\n if (high - low > MAX_MAP_RANGE) {\n throw new Error(\"mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.\");\n }\n const ii = array.length;\n let i = 0;\n while (low <= high && i < ii) {\n this._map[low] = array[i++];\n ++low;\n }\n }\n\n // This is used for both bf and cid chars.\n mapOne(src, dst) {\n this._map[src] = dst;\n }\n\n lookup(code) {\n return this._map[code];\n }\n\n contains(code) {\n return this._map[code] !== undefined;\n }\n\n forEach(callback) {\n // Most maps have fewer than 65536 entries, and for those we use normal\n // array iteration. But really sparse tables are possible -- e.g. with\n // indices in the *billions*. For such tables we use for..in, which isn't\n // ideal because it stringifies the indices for all present elements, but\n // it does avoid iterating over every undefined entry.\n const map = this._map;\n const length = map.length;\n if (length <= 0x10000) {\n for (let i = 0; i < length; i++) {\n if (map[i] !== undefined) {\n callback(i, map[i]);\n }\n }\n } else {\n for (const i in map) {\n callback(i, map[i]);\n }\n }\n }\n\n charCodeOf(value) {\n // `Array.prototype.indexOf` is *extremely* inefficient for arrays which\n // are both very sparse and very large (see issue8372.pdf).\n const map = this._map;\n if (map.length <= 0x10000) {\n return map.indexOf(value);\n }\n for (const charCode in map) {\n if (map[charCode] === value) {\n return charCode | 0;\n }\n }\n return -1;\n }\n\n getMap() {\n return this._map;\n }\n\n readCharCode(str, offset, out) {\n let c = 0;\n const codespaceRanges = this.codespaceRanges;\n // 9.7.6.2 CMap Mapping\n // The code length is at most 4.\n for (let n = 0, nn = codespaceRanges.length; n < nn; n++) {\n c = ((c << 8) | str.charCodeAt(offset + n)) >>> 0;\n // Check each codespace range to see if it falls within.\n const codespaceRange = codespaceRanges[n];\n for (let k = 0, kk = codespaceRange.length; k < kk; ) {\n const low = codespaceRange[k++];\n const high = codespaceRange[k++];\n if (c >= low && c <= high) {\n out.charcode = c;\n out.length = n + 1;\n return;\n }\n }\n }\n out.charcode = 0;\n out.length = 1;\n }\n\n getCharCodeLength(charCode) {\n const codespaceRanges = this.codespaceRanges;\n for (let n = 0, nn = codespaceRanges.length; n < nn; n++) {\n // Check each codespace range to see if it falls within.\n const codespaceRange = codespaceRanges[n];\n for (let k = 0, kk = codespaceRange.length; k < kk; ) {\n const low = codespaceRange[k++];\n const high = codespaceRange[k++];\n if (charCode >= low && charCode <= high) {\n return n + 1;\n }\n }\n }\n return 1;\n }\n\n get length() {\n return this._map.length;\n }\n\n get isIdentityCMap() {\n if (!(this.name === \"Identity-H\" || this.name === \"Identity-V\")) {\n return false;\n }\n if (this._map.length !== 0x10000) {\n return false;\n }\n for (let i = 0; i < 0x10000; i++) {\n if (this._map[i] !== i) {\n return false;\n }\n }\n return true;\n }\n}\n\n// A special case of CMap, where the _map array implicitly has a length of\n// 65536 and each element is equal to its index.\nclass IdentityCMap extends CMap {\n constructor(vertical, n) {\n super();\n\n this.vertical = vertical;\n this.addCodespaceRange(n, 0, 0xffff);\n }\n\n mapCidRange(low, high, dstLow) {\n unreachable(\"should not call mapCidRange\");\n }\n\n mapBfRange(low, high, dstLow) {\n unreachable(\"should not call mapBfRange\");\n }\n\n mapBfRangeToArray(low, high, array) {\n unreachable(\"should not call mapBfRangeToArray\");\n }\n\n mapOne(src, dst) {\n unreachable(\"should not call mapCidOne\");\n }\n\n lookup(code) {\n return Number.isInteger(code) && code <= 0xffff ? code : undefined;\n }\n\n contains(code) {\n return Number.isInteger(code) && code <= 0xffff;\n }\n\n forEach(callback) {\n for (let i = 0; i <= 0xffff; i++) {\n callback(i, i);\n }\n }\n\n charCodeOf(value) {\n return Number.isInteger(value) && value <= 0xffff ? value : -1;\n }\n\n getMap() {\n // Sometimes identity maps must be instantiated, but it's rare.\n const map = new Array(0x10000);\n for (let i = 0; i <= 0xffff; i++) {\n map[i] = i;\n }\n return map;\n }\n\n get length() {\n return 0x10000;\n }\n\n // eslint-disable-next-line getter-return\n get isIdentityCMap() {\n unreachable(\"should not access .isIdentityCMap\");\n }\n}\n\nconst BinaryCMapReader = (function BinaryCMapReaderClosure() {\n function hexToInt(a, size) {\n let n = 0;\n for (let i = 0; i <= size; i++) {\n n = (n << 8) | a[i];\n }\n return n >>> 0;\n }\n\n function hexToStr(a, size) {\n // This code is hot. Special-case some common values to avoid creating an\n // object with subarray().\n if (size === 1) {\n return String.fromCharCode(a[0], a[1]);\n }\n if (size === 3) {\n return String.fromCharCode(a[0], a[1], a[2], a[3]);\n }\n return String.fromCharCode.apply(null, a.subarray(0, size + 1));\n }\n\n function addHex(a, b, size) {\n let c = 0;\n for (let i = size; i >= 0; i--) {\n c += a[i] + b[i];\n a[i] = c & 255;\n c >>= 8;\n }\n }\n\n function incHex(a, size) {\n let c = 1;\n for (let i = size; i >= 0 && c > 0; i--) {\n c += a[i];\n a[i] = c & 255;\n c >>= 8;\n }\n }\n\n const MAX_NUM_SIZE = 16;\n const MAX_ENCODED_NUM_SIZE = 19; // ceil(MAX_NUM_SIZE * 7 / 8)\n\n class BinaryCMapStream {\n constructor(data) {\n this.buffer = data;\n this.pos = 0;\n this.end = data.length;\n this.tmpBuf = new Uint8Array(MAX_ENCODED_NUM_SIZE);\n }\n\n readByte() {\n if (this.pos >= this.end) {\n return -1;\n }\n return this.buffer[this.pos++];\n }\n\n readNumber() {\n let n = 0;\n let last;\n do {\n const b = this.readByte();\n if (b < 0) {\n throw new FormatError(\"unexpected EOF in bcmap\");\n }\n last = !(b & 0x80);\n n = (n << 7) | (b & 0x7f);\n } while (!last);\n return n;\n }\n\n readSigned() {\n const n = this.readNumber();\n return n & 1 ? ~(n >>> 1) : n >>> 1;\n }\n\n readHex(num, size) {\n num.set(this.buffer.subarray(this.pos, this.pos + size + 1));\n this.pos += size + 1;\n }\n\n readHexNumber(num, size) {\n let last;\n const stack = this.tmpBuf;\n let sp = 0;\n do {\n const b = this.readByte();\n if (b < 0) {\n throw new FormatError(\"unexpected EOF in bcmap\");\n }\n last = !(b & 0x80);\n stack[sp++] = b & 0x7f;\n } while (!last);\n let i = size,\n buffer = 0,\n bufferSize = 0;\n while (i >= 0) {\n while (bufferSize < 8 && stack.length > 0) {\n buffer |= stack[--sp] << bufferSize;\n bufferSize += 7;\n }\n num[i] = buffer & 255;\n i--;\n buffer >>= 8;\n bufferSize -= 8;\n }\n }\n\n readHexSigned(num, size) {\n this.readHexNumber(num, size);\n const sign = num[size] & 1 ? 255 : 0;\n let c = 0;\n for (let i = 0; i <= size; i++) {\n c = ((c & 1) << 8) | num[i];\n num[i] = (c >> 1) ^ sign;\n }\n }\n\n readString() {\n const len = this.readNumber();\n let s = \"\";\n for (let i = 0; i < len; i++) {\n s += String.fromCharCode(this.readNumber());\n }\n return s;\n }\n }\n\n // eslint-disable-next-line no-shadow\n class BinaryCMapReader {\n async process(data, cMap, extend) {\n const stream = new BinaryCMapStream(data);\n const header = stream.readByte();\n cMap.vertical = !!(header & 1);\n\n let useCMap = null;\n const start = new Uint8Array(MAX_NUM_SIZE);\n const end = new Uint8Array(MAX_NUM_SIZE);\n const char = new Uint8Array(MAX_NUM_SIZE);\n const charCode = new Uint8Array(MAX_NUM_SIZE);\n const tmp = new Uint8Array(MAX_NUM_SIZE);\n let code;\n\n let b;\n while ((b = stream.readByte()) >= 0) {\n const type = b >> 5;\n if (type === 7) {\n // metadata, e.g. comment or usecmap\n switch (b & 0x1f) {\n case 0:\n stream.readString(); // skipping comment\n break;\n case 1:\n useCMap = stream.readString();\n break;\n }\n continue;\n }\n const sequence = !!(b & 0x10);\n const dataSize = b & 15;\n\n if (dataSize + 1 > MAX_NUM_SIZE) {\n throw new Error(\"BinaryCMapReader.process: Invalid dataSize.\");\n }\n\n const ucs2DataSize = 1;\n const subitemsCount = stream.readNumber();\n switch (type) {\n case 0: // codespacerange\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n cMap.addCodespaceRange(\n dataSize + 1,\n hexToInt(start, dataSize),\n hexToInt(end, dataSize)\n );\n for (let i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n cMap.addCodespaceRange(\n dataSize + 1,\n hexToInt(start, dataSize),\n hexToInt(end, dataSize)\n );\n }\n break;\n case 1: // notdefrange\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n stream.readNumber(); // code\n // undefined range, skipping\n for (let i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n stream.readNumber(); // code\n // nop\n }\n break;\n case 2: // cidchar\n stream.readHex(char, dataSize);\n code = stream.readNumber();\n cMap.mapOne(hexToInt(char, dataSize), code);\n for (let i = 1; i < subitemsCount; i++) {\n incHex(char, dataSize);\n if (!sequence) {\n stream.readHexNumber(tmp, dataSize);\n addHex(char, tmp, dataSize);\n }\n code = stream.readSigned() + (code + 1);\n cMap.mapOne(hexToInt(char, dataSize), code);\n }\n break;\n case 3: // cidrange\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n code = stream.readNumber();\n cMap.mapCidRange(\n hexToInt(start, dataSize),\n hexToInt(end, dataSize),\n code\n );\n for (let i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n if (!sequence) {\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n } else {\n start.set(end);\n }\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n code = stream.readNumber();\n cMap.mapCidRange(\n hexToInt(start, dataSize),\n hexToInt(end, dataSize),\n code\n );\n }\n break;\n case 4: // bfchar\n stream.readHex(char, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapOne(\n hexToInt(char, ucs2DataSize),\n hexToStr(charCode, dataSize)\n );\n for (let i = 1; i < subitemsCount; i++) {\n incHex(char, ucs2DataSize);\n if (!sequence) {\n stream.readHexNumber(tmp, ucs2DataSize);\n addHex(char, tmp, ucs2DataSize);\n }\n incHex(charCode, dataSize);\n stream.readHexSigned(tmp, dataSize);\n addHex(charCode, tmp, dataSize);\n cMap.mapOne(\n hexToInt(char, ucs2DataSize),\n hexToStr(charCode, dataSize)\n );\n }\n break;\n case 5: // bfrange\n stream.readHex(start, ucs2DataSize);\n stream.readHexNumber(end, ucs2DataSize);\n addHex(end, start, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapBfRange(\n hexToInt(start, ucs2DataSize),\n hexToInt(end, ucs2DataSize),\n hexToStr(charCode, dataSize)\n );\n for (let i = 1; i < subitemsCount; i++) {\n incHex(end, ucs2DataSize);\n if (!sequence) {\n stream.readHexNumber(start, ucs2DataSize);\n addHex(start, end, ucs2DataSize);\n } else {\n start.set(end);\n }\n stream.readHexNumber(end, ucs2DataSize);\n addHex(end, start, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapBfRange(\n hexToInt(start, ucs2DataSize),\n hexToInt(end, ucs2DataSize),\n hexToStr(charCode, dataSize)\n );\n }\n break;\n default:\n throw new Error(`BinaryCMapReader.process - unknown type: ${type}`);\n }\n }\n\n if (useCMap) {\n return extend(useCMap);\n }\n return cMap;\n }\n }\n\n return BinaryCMapReader;\n})();\n\nconst CMapFactory = (function CMapFactoryClosure() {\n function strToInt(str) {\n let a = 0;\n for (let i = 0; i < str.length; i++) {\n a = (a << 8) | str.charCodeAt(i);\n }\n return a >>> 0;\n }\n\n function expectString(obj) {\n if (typeof obj !== \"string\") {\n throw new FormatError(\"Malformed CMap: expected string.\");\n }\n }\n\n function expectInt(obj) {\n if (!Number.isInteger(obj)) {\n throw new FormatError(\"Malformed CMap: expected int.\");\n }\n }\n\n function parseBfChar(cMap, lexer) {\n while (true) {\n let obj = lexer.getObj();\n if (obj === EOF) {\n break;\n }\n if (isCmd(obj, \"endbfchar\")) {\n return;\n }\n expectString(obj);\n const src = strToInt(obj);\n obj = lexer.getObj();\n // TODO are /dstName used?\n expectString(obj);\n const dst = obj;\n cMap.mapOne(src, dst);\n }\n }\n\n function parseBfRange(cMap, lexer) {\n while (true) {\n let obj = lexer.getObj();\n if (obj === EOF) {\n break;\n }\n if (isCmd(obj, \"endbfrange\")) {\n return;\n }\n expectString(obj);\n const low = strToInt(obj);\n obj = lexer.getObj();\n expectString(obj);\n const high = strToInt(obj);\n obj = lexer.getObj();\n if (Number.isInteger(obj) || typeof obj === \"string\") {\n const dstLow = Number.isInteger(obj) ? String.fromCharCode(obj) : obj;\n cMap.mapBfRange(low, high, dstLow);\n } else if (isCmd(obj, \"[\")) {\n obj = lexer.getObj();\n const array = [];\n while (!isCmd(obj, \"]\") && obj !== EOF) {\n array.push(obj);\n obj = lexer.getObj();\n }\n cMap.mapBfRangeToArray(low, high, array);\n } else {\n break;\n }\n }\n throw new FormatError(\"Invalid bf range.\");\n }\n\n function parseCidChar(cMap, lexer) {\n while (true) {\n let obj = lexer.getObj();\n if (obj === EOF) {\n break;\n }\n if (isCmd(obj, \"endcidchar\")) {\n return;\n }\n expectString(obj);\n const src = strToInt(obj);\n obj = lexer.getObj();\n expectInt(obj);\n const dst = obj;\n cMap.mapOne(src, dst);\n }\n }\n\n function parseCidRange(cMap, lexer) {\n while (true) {\n let obj = lexer.getObj();\n if (obj === EOF) {\n break;\n }\n if (isCmd(obj, \"endcidrange\")) {\n return;\n }\n expectString(obj);\n const low = strToInt(obj);\n obj = lexer.getObj();\n expectString(obj);\n const high = strToInt(obj);\n obj = lexer.getObj();\n expectInt(obj);\n const dstLow = obj;\n cMap.mapCidRange(low, high, dstLow);\n }\n }\n\n function parseCodespaceRange(cMap, lexer) {\n while (true) {\n let obj = lexer.getObj();\n if (obj === EOF) {\n break;\n }\n if (isCmd(obj, \"endcodespacerange\")) {\n return;\n }\n if (typeof obj !== \"string\") {\n break;\n }\n const low = strToInt(obj);\n obj = lexer.getObj();\n if (typeof obj !== \"string\") {\n break;\n }\n const high = strToInt(obj);\n cMap.addCodespaceRange(obj.length, low, high);\n }\n throw new FormatError(\"Invalid codespace range.\");\n }\n\n function parseWMode(cMap, lexer) {\n const obj = lexer.getObj();\n if (Number.isInteger(obj)) {\n cMap.vertical = !!obj;\n }\n }\n\n function parseCMapName(cMap, lexer) {\n const obj = lexer.getObj();\n if (obj instanceof Name) {\n cMap.name = obj.name;\n }\n }\n\n async function parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap) {\n let previous, embeddedUseCMap;\n objLoop: while (true) {\n try {\n const obj = lexer.getObj();\n if (obj === EOF) {\n break;\n } else if (obj instanceof Name) {\n if (obj.name === \"WMode\") {\n parseWMode(cMap, lexer);\n } else if (obj.name === \"CMapName\") {\n parseCMapName(cMap, lexer);\n }\n previous = obj;\n } else if (obj instanceof Cmd) {\n switch (obj.cmd) {\n case \"endcmap\":\n break objLoop;\n case \"usecmap\":\n if (previous instanceof Name) {\n embeddedUseCMap = previous.name;\n }\n break;\n case \"begincodespacerange\":\n parseCodespaceRange(cMap, lexer);\n break;\n case \"beginbfchar\":\n parseBfChar(cMap, lexer);\n break;\n case \"begincidchar\":\n parseCidChar(cMap, lexer);\n break;\n case \"beginbfrange\":\n parseBfRange(cMap, lexer);\n break;\n case \"begincidrange\":\n parseCidRange(cMap, lexer);\n break;\n }\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Invalid cMap data: \" + ex);\n continue;\n }\n }\n\n if (!useCMap && embeddedUseCMap) {\n // Load the useCMap definition from the file only if there wasn't one\n // specified.\n useCMap = embeddedUseCMap;\n }\n if (useCMap) {\n return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n }\n return cMap;\n }\n\n async function extendCMap(cMap, fetchBuiltInCMap, useCMap) {\n cMap.useCMap = await createBuiltInCMap(useCMap, fetchBuiltInCMap);\n // If there aren't any code space ranges defined clone all the parent ones\n // into this cMap.\n if (cMap.numCodespaceRanges === 0) {\n const useCodespaceRanges = cMap.useCMap.codespaceRanges;\n for (let i = 0; i < useCodespaceRanges.length; i++) {\n cMap.codespaceRanges[i] = useCodespaceRanges[i].slice();\n }\n cMap.numCodespaceRanges = cMap.useCMap.numCodespaceRanges;\n }\n // Merge the map into the current one, making sure not to override\n // any previously defined entries.\n cMap.useCMap.forEach(function (key, value) {\n if (!cMap.contains(key)) {\n cMap.mapOne(key, cMap.useCMap.lookup(key));\n }\n });\n\n return cMap;\n }\n\n async function createBuiltInCMap(name, fetchBuiltInCMap) {\n if (name === \"Identity-H\") {\n return new IdentityCMap(false, 2);\n } else if (name === \"Identity-V\") {\n return new IdentityCMap(true, 2);\n }\n if (!BUILT_IN_CMAPS.includes(name)) {\n throw new Error(\"Unknown CMap name: \" + name);\n }\n if (!fetchBuiltInCMap) {\n throw new Error(\"Built-in CMap parameters are not provided.\");\n }\n\n const { cMapData, compressionType } = await fetchBuiltInCMap(name);\n const cMap = new CMap(true);\n\n if (compressionType === CMapCompressionType.BINARY) {\n return new BinaryCMapReader().process(cMapData, cMap, useCMap => {\n return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n });\n }\n if (compressionType === CMapCompressionType.NONE) {\n const lexer = new Lexer(new Stream(cMapData));\n return parseCMap(cMap, lexer, fetchBuiltInCMap, null);\n }\n throw new Error(\n \"TODO: Only BINARY/NONE CMap compression is currently supported.\"\n );\n }\n\n return {\n async create(params) {\n const encoding = params.encoding;\n const fetchBuiltInCMap = params.fetchBuiltInCMap;\n const useCMap = params.useCMap;\n\n if (encoding instanceof Name) {\n return createBuiltInCMap(encoding.name, fetchBuiltInCMap);\n } else if (encoding instanceof BaseStream) {\n const parsedCMap = await parseCMap(\n /* cMap = */ new CMap(),\n /* lexer = */ new Lexer(encoding),\n fetchBuiltInCMap,\n useCMap\n );\n\n if (parsedCMap.isIdentityCMap) {\n return createBuiltInCMap(parsedCMap.name, fetchBuiltInCMap);\n }\n return parsedCMap;\n }\n throw new Error(\"Encoding required.\");\n },\n };\n})();\n\nexport { CMap, CMapFactory, IdentityCMap };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n bytesToString,\n FormatError,\n info,\n StreamType,\n warn,\n} from \"../shared/util.js\";\nimport { Cmd, Dict, EOF, isCmd, Name, Ref } from \"./primitives.js\";\nimport {\n isWhiteSpace,\n MissingDataException,\n ParserEOFException,\n} from \"./core_utils.js\";\nimport { Ascii85Stream } from \"./ascii_85_stream.js\";\nimport { AsciiHexStream } from \"./ascii_hex_stream.js\";\nimport { CCITTFaxStream } from \"./ccitt_stream.js\";\nimport { FlateStream } from \"./flate_stream.js\";\nimport { Jbig2Stream } from \"./jbig2_stream.js\";\nimport { JpegStream } from \"./jpeg_stream.js\";\nimport { JpxStream } from \"./jpx_stream.js\";\nimport { LZWStream } from \"./lzw_stream.js\";\nimport { NullStream } from \"./stream.js\";\nimport { PredictorStream } from \"./predictor_stream.js\";\nimport { RunLengthStream } from \"./run_length_stream.js\";\n\nconst MAX_LENGTH_TO_CACHE = 1000;\nconst MAX_ADLER32_LENGTH = 5552;\n\nfunction computeAdler32(bytes) {\n const bytesLength = bytes.length;\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n bytesLength < MAX_ADLER32_LENGTH,\n 'computeAdler32: Unsupported \"bytes\" length.'\n );\n }\n let a = 1,\n b = 0;\n for (let i = 0; i < bytesLength; ++i) {\n // No modulo required in the loop if `bytesLength < 5552`.\n a += bytes[i] & 0xff;\n b += a;\n }\n return (b % 65521 << 16) | a % 65521;\n}\n\nclass Parser {\n constructor({ lexer, xref, allowStreams = false, recoveryMode = false }) {\n this.lexer = lexer;\n this.xref = xref;\n this.allowStreams = allowStreams;\n this.recoveryMode = recoveryMode;\n\n this.imageCache = Object.create(null);\n this.refill();\n }\n\n refill() {\n this.buf1 = this.lexer.getObj();\n this.buf2 = this.lexer.getObj();\n }\n\n shift() {\n if (this.buf2 instanceof Cmd && this.buf2.cmd === \"ID\") {\n this.buf1 = this.buf2;\n this.buf2 = null;\n } else {\n this.buf1 = this.buf2;\n this.buf2 = this.lexer.getObj();\n }\n }\n\n tryShift() {\n try {\n this.shift();\n return true;\n } catch (e) {\n if (e instanceof MissingDataException) {\n throw e;\n }\n // Upon failure, the caller should reset this.lexer.pos to a known good\n // state and call this.shift() twice to reset the buffers.\n return false;\n }\n }\n\n getObj(cipherTransform = null) {\n const buf1 = this.buf1;\n this.shift();\n\n if (buf1 instanceof Cmd) {\n switch (buf1.cmd) {\n case \"BI\": // inline image\n return this.makeInlineImage(cipherTransform);\n case \"[\": // array\n const array = [];\n while (!isCmd(this.buf1, \"]\") && this.buf1 !== EOF) {\n array.push(this.getObj(cipherTransform));\n }\n if (this.buf1 === EOF) {\n if (this.recoveryMode) {\n return array;\n }\n throw new ParserEOFException(\"End of file inside array.\");\n }\n this.shift();\n return array;\n case \"<<\": // dictionary or stream\n const dict = new Dict(this.xref);\n while (!isCmd(this.buf1, \">>\") && this.buf1 !== EOF) {\n if (!(this.buf1 instanceof Name)) {\n info(\"Malformed dictionary: key must be a name object\");\n this.shift();\n continue;\n }\n\n const key = this.buf1.name;\n this.shift();\n if (this.buf1 === EOF) {\n break;\n }\n dict.set(key, this.getObj(cipherTransform));\n }\n if (this.buf1 === EOF) {\n if (this.recoveryMode) {\n return dict;\n }\n throw new ParserEOFException(\"End of file inside dictionary.\");\n }\n\n // Stream objects are not allowed inside content streams or\n // object streams.\n if (isCmd(this.buf2, \"stream\")) {\n return this.allowStreams\n ? this.makeStream(dict, cipherTransform)\n : dict;\n }\n this.shift();\n return dict;\n default: // simple object\n return buf1;\n }\n }\n\n if (Number.isInteger(buf1)) {\n // indirect reference or integer\n if (Number.isInteger(this.buf1) && isCmd(this.buf2, \"R\")) {\n const ref = Ref.get(buf1, this.buf1);\n this.shift();\n this.shift();\n return ref;\n }\n return buf1;\n }\n\n if (typeof buf1 === \"string\") {\n if (cipherTransform) {\n return cipherTransform.decryptString(buf1);\n }\n return buf1;\n }\n\n // simple object\n return buf1;\n }\n\n /**\n * Find the end of the stream by searching for the /EI\\s/.\n * @returns {number} The inline stream length.\n */\n findDefaultInlineStreamEnd(stream) {\n const E = 0x45,\n I = 0x49,\n SPACE = 0x20,\n LF = 0xa,\n CR = 0xd,\n NUL = 0x0;\n const lexer = this.lexer,\n startPos = stream.pos,\n n = 10;\n let state = 0,\n ch,\n maybeEIPos;\n while ((ch = stream.getByte()) !== -1) {\n if (state === 0) {\n state = ch === E ? 1 : 0;\n } else if (state === 1) {\n state = ch === I ? 2 : 0;\n } else {\n assert(state === 2, \"findDefaultInlineStreamEnd - invalid state.\");\n if (ch === SPACE || ch === LF || ch === CR) {\n maybeEIPos = stream.pos;\n // Let's check that the next `n` bytes are ASCII... just to be sure.\n const followingBytes = stream.peekBytes(n);\n for (let i = 0, ii = followingBytes.length; i < ii; i++) {\n ch = followingBytes[i];\n if (ch === NUL && followingBytes[i + 1] !== NUL) {\n // NUL bytes are not supposed to occur *outside* of inline\n // images, but some PDF generators violate that assumption,\n // thus breaking the EI detection heuristics used below.\n //\n // However, we can't unconditionally treat NUL bytes as \"ASCII\",\n // since that *could* result in inline images being truncated.\n //\n // To attempt to address this, we'll still treat any *sequence*\n // of NUL bytes as non-ASCII, but for a *single* NUL byte we'll\n // continue checking the `followingBytes` (fixes issue8823.pdf).\n continue;\n }\n if (ch !== LF && ch !== CR && (ch < SPACE || ch > 0x7f)) {\n // Not a LF, CR, SPACE or any visible ASCII character, i.e.\n // it's binary stuff. Resetting the state.\n state = 0;\n break;\n }\n }\n\n if (state !== 2) {\n continue;\n }\n // Check that the \"EI\" sequence isn't part of the image data, since\n // that would cause the image to be truncated (fixes issue11124.pdf).\n if (lexer.knownCommands) {\n const nextObj = lexer.peekObj();\n if (nextObj instanceof Cmd && !lexer.knownCommands[nextObj.cmd]) {\n // Not a valid command, i.e. the inline image data *itself*\n // contains an \"EI\" sequence. Resetting the state.\n state = 0;\n }\n } else {\n warn(\n \"findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.\"\n );\n }\n\n if (state === 2) {\n break; // Finished!\n }\n } else {\n state = 0;\n }\n }\n }\n\n if (ch === -1) {\n warn(\n \"findDefaultInlineStreamEnd: \" +\n \"Reached the end of the stream without finding a valid EI marker\"\n );\n if (maybeEIPos) {\n warn('... trying to recover by using the last \"EI\" occurrence.');\n stream.skip(-(stream.pos - maybeEIPos)); // Reset the stream position.\n }\n }\n\n let endOffset = 4;\n stream.skip(-endOffset); // Set the stream position to just before \"EI\".\n ch = stream.peekByte();\n stream.skip(endOffset); // ... and remember to reset the stream position.\n\n // Ensure that we don't accidentally truncate the inline image, when the\n // data is immediately followed by the \"EI\" marker (fixes issue10388.pdf).\n if (!isWhiteSpace(ch)) {\n endOffset--;\n }\n return stream.pos - endOffset - startPos;\n }\n\n /**\n * Find the EOI (end-of-image) marker 0xFFD9 of the stream.\n * @returns {number} The inline stream length.\n */\n findDCTDecodeInlineStreamEnd(stream) {\n const startPos = stream.pos;\n let foundEOI = false,\n b,\n markerLength;\n while ((b = stream.getByte()) !== -1) {\n if (b !== 0xff) {\n // Not a valid marker.\n continue;\n }\n switch (stream.getByte()) {\n case 0x00: // Byte stuffing.\n // 0xFF00 appears to be a very common byte sequence in JPEG images.\n break;\n\n case 0xff: // Fill byte.\n // Avoid skipping a valid marker, resetting the stream position.\n stream.skip(-1);\n break;\n\n case 0xd9: // EOI\n foundEOI = true;\n break;\n\n case 0xc0: // SOF0\n case 0xc1: // SOF1\n case 0xc2: // SOF2\n case 0xc3: // SOF3\n /* falls through */\n case 0xc5: // SOF5\n case 0xc6: // SOF6\n case 0xc7: // SOF7\n /* falls through */\n case 0xc9: // SOF9\n case 0xca: // SOF10\n case 0xcb: // SOF11\n /* falls through */\n case 0xcd: // SOF13\n case 0xce: // SOF14\n case 0xcf: // SOF15\n /* falls through */\n case 0xc4: // DHT\n case 0xcc: // DAC\n /* falls through */\n case 0xda: // SOS\n case 0xdb: // DQT\n case 0xdc: // DNL\n case 0xdd: // DRI\n case 0xde: // DHP\n case 0xdf: // EXP\n /* falls through */\n case 0xe0: // APP0\n case 0xe1: // APP1\n case 0xe2: // APP2\n case 0xe3: // APP3\n case 0xe4: // APP4\n case 0xe5: // APP5\n case 0xe6: // APP6\n case 0xe7: // APP7\n case 0xe8: // APP8\n case 0xe9: // APP9\n case 0xea: // APP10\n case 0xeb: // APP11\n case 0xec: // APP12\n case 0xed: // APP13\n case 0xee: // APP14\n case 0xef: // APP15\n /* falls through */\n case 0xfe: // COM\n // The marker should be followed by the length of the segment.\n markerLength = stream.getUint16();\n if (markerLength > 2) {\n // |markerLength| contains the byte length of the marker segment,\n // including its own length (2 bytes) and excluding the marker.\n stream.skip(markerLength - 2); // Jump to the next marker.\n } else {\n // The marker length is invalid, resetting the stream position.\n stream.skip(-2);\n }\n break;\n }\n if (foundEOI) {\n break;\n }\n }\n const length = stream.pos - startPos;\n if (b === -1) {\n warn(\n \"Inline DCTDecode image stream: \" +\n \"EOI marker not found, searching for /EI/ instead.\"\n );\n stream.skip(-length); // Reset the stream position.\n return this.findDefaultInlineStreamEnd(stream);\n }\n this.inlineStreamSkipEI(stream);\n return length;\n }\n\n /**\n * Find the EOD (end-of-data) marker '~>' (i.e. TILDE + GT) of the stream.\n * @returns {number} The inline stream length.\n */\n findASCII85DecodeInlineStreamEnd(stream) {\n const TILDE = 0x7e,\n GT = 0x3e;\n const startPos = stream.pos;\n let ch;\n while ((ch = stream.getByte()) !== -1) {\n if (ch === TILDE) {\n const tildePos = stream.pos;\n\n ch = stream.peekByte();\n // Handle corrupt PDF documents which contains whitespace \"inside\" of\n // the EOD marker (fixes issue10614.pdf).\n while (isWhiteSpace(ch)) {\n stream.skip();\n ch = stream.peekByte();\n }\n if (ch === GT) {\n stream.skip();\n break;\n }\n // Handle corrupt PDF documents which contains truncated EOD markers,\n // where the '>' character is missing (fixes issue11385.pdf).\n if (stream.pos > tildePos) {\n const maybeEI = stream.peekBytes(2);\n if (maybeEI[0] === /* E = */ 0x45 && maybeEI[1] === /* I = */ 0x49) {\n break;\n }\n }\n }\n }\n const length = stream.pos - startPos;\n if (ch === -1) {\n warn(\n \"Inline ASCII85Decode image stream: \" +\n \"EOD marker not found, searching for /EI/ instead.\"\n );\n stream.skip(-length); // Reset the stream position.\n return this.findDefaultInlineStreamEnd(stream);\n }\n this.inlineStreamSkipEI(stream);\n return length;\n }\n\n /**\n * Find the EOD (end-of-data) marker '>' (i.e. GT) of the stream.\n * @returns {number} The inline stream length.\n */\n findASCIIHexDecodeInlineStreamEnd(stream) {\n const GT = 0x3e;\n const startPos = stream.pos;\n let ch;\n while ((ch = stream.getByte()) !== -1) {\n if (ch === GT) {\n break;\n }\n }\n const length = stream.pos - startPos;\n if (ch === -1) {\n warn(\n \"Inline ASCIIHexDecode image stream: \" +\n \"EOD marker not found, searching for /EI/ instead.\"\n );\n stream.skip(-length); // Reset the stream position.\n return this.findDefaultInlineStreamEnd(stream);\n }\n this.inlineStreamSkipEI(stream);\n return length;\n }\n\n /**\n * Skip over the /EI/ for streams where we search for an EOD marker.\n */\n inlineStreamSkipEI(stream) {\n const E = 0x45,\n I = 0x49;\n let state = 0,\n ch;\n while ((ch = stream.getByte()) !== -1) {\n if (state === 0) {\n state = ch === E ? 1 : 0;\n } else if (state === 1) {\n state = ch === I ? 2 : 0;\n } else if (state === 2) {\n break;\n }\n }\n }\n\n makeInlineImage(cipherTransform) {\n const lexer = this.lexer;\n const stream = lexer.stream;\n\n // Parse dictionary.\n const dict = new Dict(this.xref);\n let dictLength;\n while (!isCmd(this.buf1, \"ID\") && this.buf1 !== EOF) {\n if (!(this.buf1 instanceof Name)) {\n throw new FormatError(\"Dictionary key must be a name object\");\n }\n const key = this.buf1.name;\n this.shift();\n if (this.buf1 === EOF) {\n break;\n }\n dict.set(key, this.getObj(cipherTransform));\n }\n if (lexer.beginInlineImagePos !== -1) {\n dictLength = stream.pos - lexer.beginInlineImagePos;\n }\n\n // Extract the name of the first (i.e. the current) image filter.\n const filter = dict.get(\"F\", \"Filter\");\n let filterName;\n if (filter instanceof Name) {\n filterName = filter.name;\n } else if (Array.isArray(filter)) {\n const filterZero = this.xref.fetchIfRef(filter[0]);\n if (filterZero instanceof Name) {\n filterName = filterZero.name;\n }\n }\n\n // Parse image stream.\n const startPos = stream.pos;\n let length;\n switch (filterName) {\n case \"DCT\":\n case \"DCTDecode\":\n length = this.findDCTDecodeInlineStreamEnd(stream);\n break;\n case \"A85\":\n case \"ASCII85Decode\":\n length = this.findASCII85DecodeInlineStreamEnd(stream);\n break;\n case \"AHx\":\n case \"ASCIIHexDecode\":\n length = this.findASCIIHexDecodeInlineStreamEnd(stream);\n break;\n default:\n length = this.findDefaultInlineStreamEnd(stream);\n }\n let imageStream = stream.makeSubStream(startPos, length, dict);\n\n // Cache all images below the MAX_LENGTH_TO_CACHE threshold by their\n // adler32 checksum.\n let cacheKey;\n if (length < MAX_LENGTH_TO_CACHE && dictLength < MAX_ADLER32_LENGTH) {\n const imageBytes = imageStream.getBytes();\n imageStream.reset();\n\n const initialStreamPos = stream.pos;\n // Set the stream position to the beginning of the dictionary data...\n stream.pos = lexer.beginInlineImagePos;\n // ... and fetch the bytes of the *entire* dictionary.\n const dictBytes = stream.getBytes(dictLength);\n // Finally, don't forget to reset the stream position.\n stream.pos = initialStreamPos;\n\n cacheKey = computeAdler32(imageBytes) + \"_\" + computeAdler32(dictBytes);\n\n const cacheEntry = this.imageCache[cacheKey];\n if (cacheEntry !== undefined) {\n this.buf2 = Cmd.get(\"EI\");\n this.shift();\n\n cacheEntry.reset();\n return cacheEntry;\n }\n }\n\n if (cipherTransform) {\n imageStream = cipherTransform.createStream(imageStream, length);\n }\n\n imageStream = this.filter(imageStream, dict, length);\n imageStream.dict = dict;\n if (cacheKey !== undefined) {\n imageStream.cacheKey = `inline_${length}_${cacheKey}`;\n this.imageCache[cacheKey] = imageStream;\n }\n\n this.buf2 = Cmd.get(\"EI\");\n this.shift();\n\n return imageStream;\n }\n\n _findStreamLength(startPos, signature) {\n const { stream } = this.lexer;\n stream.pos = startPos;\n\n const SCAN_BLOCK_LENGTH = 2048;\n const signatureLength = signature.length;\n\n while (stream.pos < stream.end) {\n const scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n const scanLength = scanBytes.length - signatureLength;\n\n if (scanLength <= 0) {\n break;\n }\n let pos = 0;\n while (pos < scanLength) {\n let j = 0;\n while (j < signatureLength && scanBytes[pos + j] === signature[j]) {\n j++;\n }\n if (j >= signatureLength) {\n // `signature` found.\n stream.pos += pos;\n return stream.pos - startPos;\n }\n pos++;\n }\n stream.pos += scanLength;\n }\n return -1;\n }\n\n makeStream(dict, cipherTransform) {\n const lexer = this.lexer;\n let stream = lexer.stream;\n\n // Get the stream's start position.\n lexer.skipToNextLine();\n const startPos = stream.pos - 1;\n\n // Get the length.\n let length = dict.get(\"Length\");\n if (!Number.isInteger(length)) {\n info(`Bad length \"${length && length.toString()}\" in stream.`);\n length = 0;\n }\n\n // Skip over the stream data.\n stream.pos = startPos + length;\n lexer.nextChar();\n\n // Shift '>>' and check whether the new object marks the end of the stream.\n if (this.tryShift() && isCmd(this.buf2, \"endstream\")) {\n this.shift(); // 'stream'\n } else {\n // Bad stream length, scanning for endstream command.\n const ENDSTREAM_SIGNATURE = new Uint8Array([\n 0x65, 0x6e, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d,\n ]);\n let actualLength = this._findStreamLength(startPos, ENDSTREAM_SIGNATURE);\n if (actualLength < 0) {\n // Only allow limited truncation of the endstream signature,\n // to prevent false positives.\n const MAX_TRUNCATION = 1;\n // Check if the PDF generator included truncated endstream commands,\n // such as e.g. \"endstrea\" (fixes issue10004.pdf).\n for (let i = 1; i <= MAX_TRUNCATION; i++) {\n const end = ENDSTREAM_SIGNATURE.length - i;\n const TRUNCATED_SIGNATURE = ENDSTREAM_SIGNATURE.slice(0, end);\n\n const maybeLength = this._findStreamLength(\n startPos,\n TRUNCATED_SIGNATURE\n );\n if (maybeLength >= 0) {\n // Ensure that the byte immediately following the truncated\n // endstream command is a space, to prevent false positives.\n const lastByte = stream.peekBytes(end + 1)[end];\n if (!isWhiteSpace(lastByte)) {\n break;\n }\n info(\n `Found \"${bytesToString(TRUNCATED_SIGNATURE)}\" when ` +\n \"searching for endstream command.\"\n );\n actualLength = maybeLength;\n break;\n }\n }\n\n if (actualLength < 0) {\n throw new FormatError(\"Missing endstream command.\");\n }\n }\n length = actualLength;\n\n lexer.nextChar();\n this.shift();\n this.shift();\n }\n this.shift(); // 'endstream'\n\n stream = stream.makeSubStream(startPos, length, dict);\n if (cipherTransform) {\n stream = cipherTransform.createStream(stream, length);\n }\n stream = this.filter(stream, dict, length);\n stream.dict = dict;\n return stream;\n }\n\n filter(stream, dict, length) {\n let filter = dict.get(\"F\", \"Filter\");\n let params = dict.get(\"DP\", \"DecodeParms\");\n\n if (filter instanceof Name) {\n if (Array.isArray(params)) {\n warn(\"/DecodeParms should not be an Array, when /Filter is a Name.\");\n }\n return this.makeFilter(stream, filter.name, length, params);\n }\n\n let maybeLength = length;\n if (Array.isArray(filter)) {\n const filterArray = filter;\n const paramsArray = params;\n for (let i = 0, ii = filterArray.length; i < ii; ++i) {\n filter = this.xref.fetchIfRef(filterArray[i]);\n if (!(filter instanceof Name)) {\n throw new FormatError(`Bad filter name \"${filter}\"`);\n }\n\n params = null;\n if (Array.isArray(paramsArray) && i in paramsArray) {\n params = this.xref.fetchIfRef(paramsArray[i]);\n }\n stream = this.makeFilter(stream, filter.name, maybeLength, params);\n // After the first stream the `length` variable is invalid.\n maybeLength = null;\n }\n }\n return stream;\n }\n\n makeFilter(stream, name, maybeLength, params) {\n // Since the 'Length' entry in the stream dictionary can be completely\n // wrong, e.g. zero for non-empty streams, only skip parsing the stream\n // when we can be absolutely certain that it actually is empty.\n if (maybeLength === 0) {\n warn(`Empty \"${name}\" stream.`);\n return new NullStream();\n }\n const xrefStats = this.xref.stats;\n\n try {\n switch (name) {\n case \"Fl\":\n case \"FlateDecode\":\n xrefStats.addStreamType(StreamType.FLATE);\n if (params) {\n return new PredictorStream(\n new FlateStream(stream, maybeLength),\n maybeLength,\n params\n );\n }\n return new FlateStream(stream, maybeLength);\n case \"LZW\":\n case \"LZWDecode\":\n xrefStats.addStreamType(StreamType.LZW);\n let earlyChange = 1;\n if (params) {\n if (params.has(\"EarlyChange\")) {\n earlyChange = params.get(\"EarlyChange\");\n }\n return new PredictorStream(\n new LZWStream(stream, maybeLength, earlyChange),\n maybeLength,\n params\n );\n }\n return new LZWStream(stream, maybeLength, earlyChange);\n case \"DCT\":\n case \"DCTDecode\":\n xrefStats.addStreamType(StreamType.DCT);\n return new JpegStream(stream, maybeLength, params);\n case \"JPX\":\n case \"JPXDecode\":\n xrefStats.addStreamType(StreamType.JPX);\n return new JpxStream(stream, maybeLength, params);\n case \"A85\":\n case \"ASCII85Decode\":\n xrefStats.addStreamType(StreamType.A85);\n return new Ascii85Stream(stream, maybeLength);\n case \"AHx\":\n case \"ASCIIHexDecode\":\n xrefStats.addStreamType(StreamType.AHX);\n return new AsciiHexStream(stream, maybeLength);\n case \"CCF\":\n case \"CCITTFaxDecode\":\n xrefStats.addStreamType(StreamType.CCF);\n return new CCITTFaxStream(stream, maybeLength, params);\n case \"RL\":\n case \"RunLengthDecode\":\n xrefStats.addStreamType(StreamType.RLX);\n return new RunLengthStream(stream, maybeLength);\n case \"JBIG2Decode\":\n xrefStats.addStreamType(StreamType.JBIG);\n return new Jbig2Stream(stream, maybeLength, params);\n }\n warn(`Filter \"${name}\" is not supported.`);\n return stream;\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`Invalid stream: \"${ex}\"`);\n return new NullStream();\n }\n }\n}\n\n// A '1' in this array means the character is white space. A '1' or\n// '2' means the character ends a name or command.\n// prettier-ignore\nconst specialChars = [\n 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, // 0x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x\n 1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, // 2x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, // 3x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 4x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, // 5x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 6x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, // 7x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 8x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 9x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // ax\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // bx\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // cx\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // dx\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // ex\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 // fx\n];\n\nfunction toHexDigit(ch) {\n if (ch >= /* '0' = */ 0x30 && ch /* '9' = */ <= 0x39) {\n return ch & 0x0f;\n }\n if (\n (ch >= /* 'A' = */ 0x41 && ch <= /* 'F' = */ 0x46) ||\n (ch >= /* 'a' = */ 0x61 && ch <= /* 'f' = */ 0x66)\n ) {\n return (ch & 0x0f) + 9;\n }\n return -1;\n}\n\nclass Lexer {\n constructor(stream, knownCommands = null) {\n this.stream = stream;\n this.nextChar();\n\n // While lexing, we build up many strings one char at a time. Using += for\n // this can result in lots of garbage strings. It's better to build an\n // array of single-char strings and then join() them together at the end.\n // And reusing a single array (i.e. |this.strBuf|) over and over for this\n // purpose uses less memory than using a new array for each string.\n this.strBuf = [];\n\n // The PDFs might have \"glued\" commands with other commands, operands or\n // literals, e.g. \"q1\". The knownCommands is a dictionary of the valid\n // commands and their prefixes. The prefixes are built the following way:\n // if there a command that is a prefix of the other valid command or\n // literal (e.g. 'f' and 'false') the following prefixes must be included,\n // 'fa', 'fal', 'fals'. The prefixes are not needed, if the command has no\n // other commands or literals as a prefix. The knowCommands is optional.\n this.knownCommands = knownCommands;\n\n this._hexStringNumWarn = 0;\n this.beginInlineImagePos = -1;\n }\n\n nextChar() {\n return (this.currentChar = this.stream.getByte());\n }\n\n peekChar() {\n return this.stream.peekByte();\n }\n\n getNumber() {\n let ch = this.currentChar;\n let eNotation = false;\n let divideBy = 0; // Different from 0 if it's a floating point value.\n let sign = 0;\n\n if (ch === /* '-' = */ 0x2d) {\n sign = -1;\n ch = this.nextChar();\n\n if (ch === /* '-' = */ 0x2d) {\n // Ignore double negative (this is consistent with Adobe Reader).\n ch = this.nextChar();\n }\n } else if (ch === /* '+' = */ 0x2b) {\n sign = 1;\n ch = this.nextChar();\n }\n if (ch === /* LF = */ 0x0a || ch === /* CR = */ 0x0d) {\n // Ignore line-breaks (this is consistent with Adobe Reader).\n do {\n ch = this.nextChar();\n } while (ch === 0x0a || ch === 0x0d);\n }\n if (ch === /* '.' = */ 0x2e) {\n divideBy = 10;\n ch = this.nextChar();\n }\n if (ch < /* '0' = */ 0x30 || ch > /* '9' = */ 0x39) {\n if (isWhiteSpace(ch) || ch === /* EOF = */ -1) {\n // This is consistent with Adobe Reader (fixes issue9252.pdf).\n if (divideBy === 10 && sign === 0) {\n warn(\"Lexer.getNumber - treating a single decimal point as zero.\");\n return 0;\n }\n // This is consistent with Adobe Reader (fixes bug1753983.pdf).\n if (divideBy === 0 && sign === -1) {\n warn(\"Lexer.getNumber - treating a single minus sign as zero.\");\n return 0;\n }\n }\n throw new FormatError(\n `Invalid number: ${String.fromCharCode(ch)} (charCode ${ch})`\n );\n }\n\n sign = sign || 1;\n let baseValue = ch - 0x30; // '0'\n let powerValue = 0;\n let powerValueSign = 1;\n\n while ((ch = this.nextChar()) >= 0) {\n if (ch >= /* '0' = */ 0x30 && ch <= /* '9' = */ 0x39) {\n const currentDigit = ch - 0x30; // '0'\n if (eNotation) {\n // We are after an 'e' or 'E'.\n powerValue = powerValue * 10 + currentDigit;\n } else {\n if (divideBy !== 0) {\n // We are after a point.\n divideBy *= 10;\n }\n baseValue = baseValue * 10 + currentDigit;\n }\n } else if (ch === /* '.' = */ 0x2e) {\n if (divideBy === 0) {\n divideBy = 1;\n } else {\n // A number can have only one dot.\n break;\n }\n } else if (ch === /* '-' = */ 0x2d) {\n // Ignore minus signs in the middle of numbers to match\n // Adobe's behavior.\n warn(\"Badly formatted number: minus sign in the middle\");\n } else if (ch === /* 'E' = */ 0x45 || ch === /* 'e' = */ 0x65) {\n // 'E' can be either a scientific notation or the beginning of a new\n // operator.\n ch = this.peekChar();\n if (ch === /* '+' = */ 0x2b || ch === /* '-' = */ 0x2d) {\n powerValueSign = ch === 0x2d ? -1 : 1;\n this.nextChar(); // Consume the sign character.\n } else if (ch < /* '0' = */ 0x30 || ch > /* '9' = */ 0x39) {\n // The 'E' must be the beginning of a new operator.\n break;\n }\n eNotation = true;\n } else {\n // The last character doesn't belong to us.\n break;\n }\n }\n\n if (divideBy !== 0) {\n baseValue /= divideBy;\n }\n if (eNotation) {\n baseValue *= 10 ** (powerValueSign * powerValue);\n }\n return sign * baseValue;\n }\n\n getString() {\n let numParen = 1;\n let done = false;\n const strBuf = this.strBuf;\n strBuf.length = 0;\n\n let ch = this.nextChar();\n while (true) {\n let charBuffered = false;\n switch (ch | 0) {\n case -1:\n warn(\"Unterminated string\");\n done = true;\n break;\n case 0x28: // '('\n ++numParen;\n strBuf.push(\"(\");\n break;\n case 0x29: // ')'\n if (--numParen === 0) {\n this.nextChar(); // consume strings ')'\n done = true;\n } else {\n strBuf.push(\")\");\n }\n break;\n case 0x5c: // '\\\\'\n ch = this.nextChar();\n switch (ch) {\n case -1:\n warn(\"Unterminated string\");\n done = true;\n break;\n case 0x6e: // 'n'\n strBuf.push(\"\\n\");\n break;\n case 0x72: // 'r'\n strBuf.push(\"\\r\");\n break;\n case 0x74: // 't'\n strBuf.push(\"\\t\");\n break;\n case 0x62: // 'b'\n strBuf.push(\"\\b\");\n break;\n case 0x66: // 'f'\n strBuf.push(\"\\f\");\n break;\n case 0x5c: // '\\'\n case 0x28: // '('\n case 0x29: // ')'\n strBuf.push(String.fromCharCode(ch));\n break;\n case 0x30: // '0'\n case 0x31: // '1'\n case 0x32: // '2'\n case 0x33: // '3'\n case 0x34: // '4'\n case 0x35: // '5'\n case 0x36: // '6'\n case 0x37: // '7'\n let x = ch & 0x0f;\n ch = this.nextChar();\n charBuffered = true;\n if (ch >= /* '0' = */ 0x30 && ch <= /* '7' = */ 0x37) {\n x = (x << 3) + (ch & 0x0f);\n ch = this.nextChar();\n if (ch >= /* '0' = */ 0x30 && ch /* '7' = */ <= 0x37) {\n charBuffered = false;\n x = (x << 3) + (ch & 0x0f);\n }\n }\n strBuf.push(String.fromCharCode(x));\n break;\n case 0x0d: // CR\n if (this.peekChar() === /* LF = */ 0x0a) {\n this.nextChar();\n }\n break;\n case 0x0a: // LF\n break;\n default:\n strBuf.push(String.fromCharCode(ch));\n break;\n }\n break;\n default:\n strBuf.push(String.fromCharCode(ch));\n break;\n }\n if (done) {\n break;\n }\n if (!charBuffered) {\n ch = this.nextChar();\n }\n }\n return strBuf.join(\"\");\n }\n\n getName() {\n let ch, previousCh;\n const strBuf = this.strBuf;\n strBuf.length = 0;\n\n while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n if (ch === /* '#' = */ 0x23) {\n ch = this.nextChar();\n if (specialChars[ch]) {\n warn(\n \"Lexer_getName: \" +\n \"NUMBER SIGN (#) should be followed by a hexadecimal number.\"\n );\n strBuf.push(\"#\");\n break;\n }\n const x = toHexDigit(ch);\n if (x !== -1) {\n previousCh = ch;\n ch = this.nextChar();\n const x2 = toHexDigit(ch);\n if (x2 === -1) {\n warn(\n `Lexer_getName: Illegal digit (${String.fromCharCode(ch)}) ` +\n \"in hexadecimal number.\"\n );\n strBuf.push(\"#\", String.fromCharCode(previousCh));\n if (specialChars[ch]) {\n break;\n }\n strBuf.push(String.fromCharCode(ch));\n continue;\n }\n strBuf.push(String.fromCharCode((x << 4) | x2));\n } else {\n strBuf.push(\"#\", String.fromCharCode(ch));\n }\n } else {\n strBuf.push(String.fromCharCode(ch));\n }\n }\n if (strBuf.length > 127) {\n warn(`Name token is longer than allowed by the spec: ${strBuf.length}`);\n }\n return Name.get(strBuf.join(\"\"));\n }\n\n /**\n * @private\n */\n _hexStringWarn(ch) {\n const MAX_HEX_STRING_NUM_WARN = 5;\n\n if (this._hexStringNumWarn++ === MAX_HEX_STRING_NUM_WARN) {\n warn(\"getHexString - ignoring additional invalid characters.\");\n return;\n }\n if (this._hexStringNumWarn > MAX_HEX_STRING_NUM_WARN) {\n // Limit the number of warning messages printed for a `this.getHexString`\n // invocation, since corrupt PDF documents may otherwise spam the console\n // enough to affect general performance negatively.\n return;\n }\n warn(`getHexString - ignoring invalid character: ${ch}`);\n }\n\n getHexString() {\n const strBuf = this.strBuf;\n strBuf.length = 0;\n let ch = this.currentChar;\n let isFirstHex = true;\n let firstDigit, secondDigit;\n this._hexStringNumWarn = 0;\n\n while (true) {\n if (ch < 0) {\n warn(\"Unterminated hex string\");\n break;\n } else if (ch === /* '>' = */ 0x3e) {\n this.nextChar();\n break;\n } else if (specialChars[ch] === 1) {\n ch = this.nextChar();\n continue;\n } else {\n if (isFirstHex) {\n firstDigit = toHexDigit(ch);\n if (firstDigit === -1) {\n this._hexStringWarn(ch);\n ch = this.nextChar();\n continue;\n }\n } else {\n secondDigit = toHexDigit(ch);\n if (secondDigit === -1) {\n this._hexStringWarn(ch);\n ch = this.nextChar();\n continue;\n }\n strBuf.push(String.fromCharCode((firstDigit << 4) | secondDigit));\n }\n isFirstHex = !isFirstHex;\n ch = this.nextChar();\n }\n }\n return strBuf.join(\"\");\n }\n\n getObj() {\n // Skip whitespace and comments.\n let comment = false;\n let ch = this.currentChar;\n while (true) {\n if (ch < 0) {\n return EOF;\n }\n if (comment) {\n if (ch === /* LF = */ 0x0a || ch === /* CR = */ 0x0d) {\n comment = false;\n }\n } else if (ch === /* '%' = */ 0x25) {\n comment = true;\n } else if (specialChars[ch] !== 1) {\n break;\n }\n ch = this.nextChar();\n }\n\n // Start reading a token.\n switch (ch | 0) {\n case 0x30: // '0'\n case 0x31: // '1'\n case 0x32: // '2'\n case 0x33: // '3'\n case 0x34: // '4'\n case 0x35: // '5'\n case 0x36: // '6'\n case 0x37: // '7'\n case 0x38: // '8'\n case 0x39: // '9'\n case 0x2b: // '+'\n case 0x2d: // '-'\n case 0x2e: // '.'\n return this.getNumber();\n case 0x28: // '('\n return this.getString();\n case 0x2f: // '/'\n return this.getName();\n // array punctuation\n case 0x5b: // '['\n this.nextChar();\n return Cmd.get(\"[\");\n case 0x5d: // ']'\n this.nextChar();\n return Cmd.get(\"]\");\n // hex string or dict punctuation\n case 0x3c: // '<'\n ch = this.nextChar();\n if (ch === 0x3c) {\n // dict punctuation\n this.nextChar();\n return Cmd.get(\"<<\");\n }\n return this.getHexString();\n // dict punctuation\n case 0x3e: // '>'\n ch = this.nextChar();\n if (ch === 0x3e) {\n this.nextChar();\n return Cmd.get(\">>\");\n }\n return Cmd.get(\">\");\n case 0x7b: // '{'\n this.nextChar();\n return Cmd.get(\"{\");\n case 0x7d: // '}'\n this.nextChar();\n return Cmd.get(\"}\");\n case 0x29: // ')'\n // Consume the current character in order to avoid permanently hanging\n // the worker thread if `Lexer.getObj` is called from within a loop\n // containing try-catch statements, since we would otherwise attempt\n // to parse the *same* character over and over (fixes issue8061.pdf).\n this.nextChar();\n throw new FormatError(`Illegal character: ${ch}`);\n }\n\n // Start reading a command.\n let str = String.fromCharCode(ch);\n // A valid command cannot start with a non-visible ASCII character,\n // and the next character may be (the start of) a valid command.\n if (ch < 0x20 || ch > 0x7f) {\n const nextCh = this.peekChar();\n if (nextCh >= 0x20 && nextCh <= 0x7f) {\n this.nextChar();\n return Cmd.get(str);\n }\n }\n const knownCommands = this.knownCommands;\n let knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n // Stop if a known command is found and next character does not make\n // the string a command.\n const possibleCommand = str + String.fromCharCode(ch);\n if (knownCommandFound && knownCommands[possibleCommand] === undefined) {\n break;\n }\n if (str.length === 128) {\n throw new FormatError(`Command token too long: ${str.length}`);\n }\n str = possibleCommand;\n knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n }\n if (str === \"true\") {\n return true;\n }\n if (str === \"false\") {\n return false;\n }\n if (str === \"null\") {\n return null;\n }\n\n if (str === \"BI\") {\n // Keep track of the current stream position, since it's needed in order\n // to correctly cache inline images; see `Parser.makeInlineImage`.\n this.beginInlineImagePos = this.stream.pos;\n }\n\n return Cmd.get(str);\n }\n\n peekObj() {\n const streamPos = this.stream.pos,\n currentChar = this.currentChar,\n beginInlineImagePos = this.beginInlineImagePos;\n\n let nextObj;\n try {\n nextObj = this.getObj();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`peekObj: ${ex}`);\n }\n // Ensure that we reset *all* relevant `Lexer`-instance state.\n this.stream.pos = streamPos;\n this.currentChar = currentChar;\n this.beginInlineImagePos = beginInlineImagePos;\n\n return nextObj;\n }\n\n skipToNextLine() {\n let ch = this.currentChar;\n while (ch >= 0) {\n if (ch === /* CR = */ 0x0d) {\n ch = this.nextChar();\n if (ch === /* LF = */ 0x0a) {\n this.nextChar();\n }\n break;\n } else if (ch === /* LF = */ 0x0a) {\n this.nextChar();\n break;\n }\n ch = this.nextChar();\n }\n }\n}\n\nclass Linearization {\n static create(stream) {\n function getInt(linDict, name, allowZeroValue = false) {\n const obj = linDict.get(name);\n if (Number.isInteger(obj) && (allowZeroValue ? obj >= 0 : obj > 0)) {\n return obj;\n }\n throw new Error(\n `The \"${name}\" parameter in the linearization ` +\n \"dictionary is invalid.\"\n );\n }\n\n function getHints(linDict) {\n const hints = linDict.get(\"H\");\n let hintsLength;\n\n if (\n Array.isArray(hints) &&\n ((hintsLength = hints.length) === 2 || hintsLength === 4)\n ) {\n for (let index = 0; index < hintsLength; index++) {\n const hint = hints[index];\n if (!(Number.isInteger(hint) && hint > 0)) {\n throw new Error(\n `Hint (${index}) in the linearization dictionary is invalid.`\n );\n }\n }\n return hints;\n }\n throw new Error(\"Hint array in the linearization dictionary is invalid.\");\n }\n\n const parser = new Parser({\n lexer: new Lexer(stream),\n xref: null,\n });\n const obj1 = parser.getObj();\n const obj2 = parser.getObj();\n const obj3 = parser.getObj();\n const linDict = parser.getObj();\n let obj, length;\n if (\n !(\n Number.isInteger(obj1) &&\n Number.isInteger(obj2) &&\n isCmd(obj3, \"obj\") &&\n linDict instanceof Dict &&\n typeof (obj = linDict.get(\"Linearized\")) === \"number\" &&\n obj > 0\n )\n ) {\n return null; // No valid linearization dictionary found.\n } else if ((length = getInt(linDict, \"L\")) !== stream.length) {\n throw new Error(\n 'The \"L\" parameter in the linearization dictionary ' +\n \"does not equal the stream length.\"\n );\n }\n return {\n length,\n hints: getHints(linDict),\n objectNumberFirst: getInt(linDict, \"O\"),\n endFirst: getInt(linDict, \"E\"),\n numPages: getInt(linDict, \"N\"),\n mainXRefEntriesOffset: getInt(linDict, \"T\"),\n pageFirst: linDict.has(\"P\")\n ? getInt(linDict, \"P\", /* allowZeroValue = */ true)\n : 0,\n };\n }\n}\n\nexport { Lexer, Linearization, Parser };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { isWhiteSpace } from \"./core_utils.js\";\n\nclass Ascii85Stream extends DecodeStream {\n constructor(str, maybeLength) {\n // Most streams increase in size when decoded, but Ascii85 streams\n // typically shrink by ~20%.\n if (maybeLength) {\n maybeLength *= 0.8;\n }\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n this.input = new Uint8Array(5);\n }\n\n readBlock() {\n const TILDA_CHAR = 0x7e; // '~'\n const Z_LOWER_CHAR = 0x7a; // 'z'\n const EOF = -1;\n\n const str = this.str;\n\n let c = str.getByte();\n while (isWhiteSpace(c)) {\n c = str.getByte();\n }\n\n if (c === EOF || c === TILDA_CHAR) {\n this.eof = true;\n return;\n }\n\n const bufferLength = this.bufferLength;\n let buffer, i;\n\n // special code for z\n if (c === Z_LOWER_CHAR) {\n buffer = this.ensureBuffer(bufferLength + 4);\n for (i = 0; i < 4; ++i) {\n buffer[bufferLength + i] = 0;\n }\n this.bufferLength += 4;\n } else {\n const input = this.input;\n input[0] = c;\n for (i = 1; i < 5; ++i) {\n c = str.getByte();\n while (isWhiteSpace(c)) {\n c = str.getByte();\n }\n\n input[i] = c;\n\n if (c === EOF || c === TILDA_CHAR) {\n break;\n }\n }\n buffer = this.ensureBuffer(bufferLength + i - 1);\n this.bufferLength += i - 1;\n\n // partial ending;\n if (i < 5) {\n for (; i < 5; ++i) {\n input[i] = 0x21 + 84;\n }\n this.eof = true;\n }\n let t = 0;\n for (i = 0; i < 5; ++i) {\n t = t * 85 + (input[i] - 0x21);\n }\n\n for (i = 3; i >= 0; --i) {\n buffer[bufferLength + i] = t & 0xff;\n t >>= 8;\n }\n }\n }\n}\n\nexport { Ascii85Stream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseStream } from \"./base_stream.js\";\nimport { Stream } from \"./stream.js\";\n\n// Lots of DecodeStreams are created whose buffers are never used. For these\n// we share a single empty buffer. This is (a) space-efficient and (b) avoids\n// having special cases that would be required if we used |null| for an empty\n// buffer.\nconst emptyBuffer = new Uint8Array(0);\n\n// Super class for the decoding streams.\nclass DecodeStream extends BaseStream {\n constructor(maybeMinBufferLength) {\n super();\n this._rawMinBufferLength = maybeMinBufferLength || 0;\n\n this.pos = 0;\n this.bufferLength = 0;\n this.eof = false;\n this.buffer = emptyBuffer;\n this.minBufferLength = 512;\n if (maybeMinBufferLength) {\n // Compute the first power of two that is as big as maybeMinBufferLength.\n while (this.minBufferLength < maybeMinBufferLength) {\n this.minBufferLength *= 2;\n }\n }\n }\n\n get isEmpty() {\n while (!this.eof && this.bufferLength === 0) {\n this.readBlock();\n }\n return this.bufferLength === 0;\n }\n\n ensureBuffer(requested) {\n const buffer = this.buffer;\n if (requested <= buffer.byteLength) {\n return buffer;\n }\n let size = this.minBufferLength;\n while (size < requested) {\n size *= 2;\n }\n const buffer2 = new Uint8Array(size);\n buffer2.set(buffer);\n return (this.buffer = buffer2);\n }\n\n getByte() {\n const pos = this.pos;\n while (this.bufferLength <= pos) {\n if (this.eof) {\n return -1;\n }\n this.readBlock();\n }\n return this.buffer[this.pos++];\n }\n\n getBytes(length) {\n const pos = this.pos;\n let end;\n\n if (length) {\n this.ensureBuffer(pos + length);\n end = pos + length;\n\n while (!this.eof && this.bufferLength < end) {\n this.readBlock();\n }\n const bufEnd = this.bufferLength;\n if (end > bufEnd) {\n end = bufEnd;\n }\n } else {\n while (!this.eof) {\n this.readBlock();\n }\n end = this.bufferLength;\n }\n\n this.pos = end;\n return this.buffer.subarray(pos, end);\n }\n\n reset() {\n this.pos = 0;\n }\n\n makeSubStream(start, length, dict = null) {\n if (length === undefined) {\n while (!this.eof) {\n this.readBlock();\n }\n } else {\n const end = start + length;\n while (this.bufferLength <= end && !this.eof) {\n this.readBlock();\n }\n }\n return new Stream(this.buffer, start, length, dict);\n }\n\n getBaseStreams() {\n return this.str ? this.str.getBaseStreams() : null;\n }\n}\n\nclass StreamsSequenceStream extends DecodeStream {\n constructor(streams, onError = null) {\n let maybeLength = 0;\n for (const stream of streams) {\n maybeLength +=\n stream instanceof DecodeStream\n ? stream._rawMinBufferLength\n : stream.length;\n }\n super(maybeLength);\n\n this.streams = streams;\n this._onError = onError;\n }\n\n readBlock() {\n const streams = this.streams;\n if (streams.length === 0) {\n this.eof = true;\n return;\n }\n const stream = streams.shift();\n let chunk;\n try {\n chunk = stream.getBytes();\n } catch (reason) {\n if (this._onError) {\n this._onError(reason, stream.dict && stream.dict.objId);\n return;\n }\n throw reason;\n }\n const bufferLength = this.bufferLength;\n const newLength = bufferLength + chunk.length;\n const buffer = this.ensureBuffer(newLength);\n buffer.set(chunk, bufferLength);\n this.bufferLength = newLength;\n }\n\n getBaseStreams() {\n const baseStreamsBuf = [];\n for (const stream of this.streams) {\n const baseStreams = stream.getBaseStreams();\n if (baseStreams) {\n baseStreamsBuf.push(...baseStreams);\n }\n }\n return baseStreamsBuf.length > 0 ? baseStreamsBuf : null;\n }\n}\n\nexport { DecodeStream, StreamsSequenceStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\n\nclass AsciiHexStream extends DecodeStream {\n constructor(str, maybeLength) {\n // Most streams increase in size when decoded, but AsciiHex streams shrink\n // by 50%.\n if (maybeLength) {\n maybeLength *= 0.5;\n }\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n\n this.firstDigit = -1;\n }\n\n readBlock() {\n const UPSTREAM_BLOCK_SIZE = 8000;\n const bytes = this.str.getBytes(UPSTREAM_BLOCK_SIZE);\n if (!bytes.length) {\n this.eof = true;\n return;\n }\n\n const maxDecodeLength = (bytes.length + 1) >> 1;\n const buffer = this.ensureBuffer(this.bufferLength + maxDecodeLength);\n let bufferLength = this.bufferLength;\n\n let firstDigit = this.firstDigit;\n for (const ch of bytes) {\n let digit;\n if (ch >= /* '0' = */ 0x30 && ch <= /* '9' = */ 0x39) {\n digit = ch & 0x0f;\n } else if (\n (ch >= /* 'A' = */ 0x41 && ch <= /* 'Z' = */ 0x46) ||\n (ch >= /* 'a' = */ 0x61 && ch <= /* 'z' = */ 0x66)\n ) {\n digit = (ch & 0x0f) + 9;\n } else if (ch === /* '>' = */ 0x3e) {\n this.eof = true;\n break;\n } else {\n // Probably whitespace, ignoring.\n continue;\n }\n if (firstDigit < 0) {\n firstDigit = digit;\n } else {\n buffer[bufferLength++] = (firstDigit << 4) | digit;\n firstDigit = -1;\n }\n }\n if (firstDigit >= 0 && this.eof) {\n // incomplete byte\n buffer[bufferLength++] = firstDigit << 4;\n firstDigit = -1;\n }\n this.firstDigit = firstDigit;\n this.bufferLength = bufferLength;\n }\n}\n\nexport { AsciiHexStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CCITTFaxDecoder } from \"./ccitt.js\";\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { Dict } from \"./primitives.js\";\n\nclass CCITTFaxStream extends DecodeStream {\n constructor(str, maybeLength, params) {\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n\n if (!(params instanceof Dict)) {\n params = Dict.empty;\n }\n\n const source = {\n next() {\n return str.getByte();\n },\n };\n this.ccittFaxDecoder = new CCITTFaxDecoder(source, {\n K: params.get(\"K\"),\n EndOfLine: params.get(\"EndOfLine\"),\n EncodedByteAlign: params.get(\"EncodedByteAlign\"),\n Columns: params.get(\"Columns\"),\n Rows: params.get(\"Rows\"),\n EndOfBlock: params.get(\"EndOfBlock\"),\n BlackIs1: params.get(\"BlackIs1\"),\n });\n }\n\n readBlock() {\n while (!this.eof) {\n const c = this.ccittFaxDecoder.readNextChar();\n if (c === -1) {\n this.eof = true;\n return;\n }\n this.ensureBuffer(this.bufferLength + 1);\n this.buffer[this.bufferLength++] = c;\n }\n }\n}\n\nexport { CCITTFaxStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Copyright 1996-2003 Glyph & Cog, LLC\n *\n * The CCITT stream implementation contained in this file is a JavaScript port\n * of XPDF's implementation, made available under the Apache 2.0 open source\n * license.\n */\n\nimport { FormatError, info } from \"../shared/util.js\";\n\n/**\n * @typedef {Object} CCITTFaxDecoderSource\n * @property {function} next - Method that return one byte of data for decoding,\n * or -1 when EOF is reached.\n */\n\nconst ccittEOL = -2;\nconst ccittEOF = -1;\nconst twoDimPass = 0;\nconst twoDimHoriz = 1;\nconst twoDimVert0 = 2;\nconst twoDimVertR1 = 3;\nconst twoDimVertL1 = 4;\nconst twoDimVertR2 = 5;\nconst twoDimVertL2 = 6;\nconst twoDimVertR3 = 7;\nconst twoDimVertL3 = 8;\n\n// prettier-ignore\nconst twoDimTable = [\n [-1, -1], [-1, -1], // 000000x\n [7, twoDimVertL3], // 0000010\n [7, twoDimVertR3], // 0000011\n [6, twoDimVertL2], [6, twoDimVertL2], // 000010x\n [6, twoDimVertR2], [6, twoDimVertR2], // 000011x\n [4, twoDimPass], [4, twoDimPass], // 0001xxx\n [4, twoDimPass], [4, twoDimPass],\n [4, twoDimPass], [4, twoDimPass],\n [4, twoDimPass], [4, twoDimPass],\n [3, twoDimHoriz], [3, twoDimHoriz], // 001xxxx\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimVertL1], [3, twoDimVertL1], // 010xxxx\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertR1], [3, twoDimVertR1], // 011xxxx\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [1, twoDimVert0], [1, twoDimVert0], // 1xxxxxx\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0]\n];\n\n// prettier-ignore\nconst whiteTable1 = [\n [-1, -1], // 00000\n [12, ccittEOL], // 00001\n [-1, -1], [-1, -1], // 0001x\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 001xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 010xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 011xx\n [11, 1792], [11, 1792], // 1000x\n [12, 1984], // 10010\n [12, 2048], // 10011\n [12, 2112], // 10100\n [12, 2176], // 10101\n [12, 2240], // 10110\n [12, 2304], // 10111\n [11, 1856], [11, 1856], // 1100x\n [11, 1920], [11, 1920], // 1101x\n [12, 2368], // 11100\n [12, 2432], // 11101\n [12, 2496], // 11110\n [12, 2560] // 11111\n];\n\n// prettier-ignore\nconst whiteTable2 = [\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 0000000xx\n [8, 29], [8, 29], // 00000010x\n [8, 30], [8, 30], // 00000011x\n [8, 45], [8, 45], // 00000100x\n [8, 46], [8, 46], // 00000101x\n [7, 22], [7, 22], [7, 22], [7, 22], // 0000011xx\n [7, 23], [7, 23], [7, 23], [7, 23], // 0000100xx\n [8, 47], [8, 47], // 00001010x\n [8, 48], [8, 48], // 00001011x\n [6, 13], [6, 13], [6, 13], [6, 13], // 000011xxx\n [6, 13], [6, 13], [6, 13], [6, 13],\n [7, 20], [7, 20], [7, 20], [7, 20], // 0001000xx\n [8, 33], [8, 33], // 00010010x\n [8, 34], [8, 34], // 00010011x\n [8, 35], [8, 35], // 00010100x\n [8, 36], [8, 36], // 00010101x\n [8, 37], [8, 37], // 00010110x\n [8, 38], [8, 38], // 00010111x\n [7, 19], [7, 19], [7, 19], [7, 19], // 0001100xx\n [8, 31], [8, 31], // 00011010x\n [8, 32], [8, 32], // 00011011x\n [6, 1], [6, 1], [6, 1], [6, 1], // 000111xxx\n [6, 1], [6, 1], [6, 1], [6, 1],\n [6, 12], [6, 12], [6, 12], [6, 12], // 001000xxx\n [6, 12], [6, 12], [6, 12], [6, 12],\n [8, 53], [8, 53], // 00100100x\n [8, 54], [8, 54], // 00100101x\n [7, 26], [7, 26], [7, 26], [7, 26], // 0010011xx\n [8, 39], [8, 39], // 00101000x\n [8, 40], [8, 40], // 00101001x\n [8, 41], [8, 41], // 00101010x\n [8, 42], [8, 42], // 00101011x\n [8, 43], [8, 43], // 00101100x\n [8, 44], [8, 44], // 00101101x\n [7, 21], [7, 21], [7, 21], [7, 21], // 0010111xx\n [7, 28], [7, 28], [7, 28], [7, 28], // 0011000xx\n [8, 61], [8, 61], // 00110010x\n [8, 62], [8, 62], // 00110011x\n [8, 63], [8, 63], // 00110100x\n [8, 0], [8, 0], // 00110101x\n [8, 320], [8, 320], // 00110110x\n [8, 384], [8, 384], // 00110111x\n [5, 10], [5, 10], [5, 10], [5, 10], // 00111xxxx\n [5, 10], [5, 10], [5, 10], [5, 10],\n [5, 10], [5, 10], [5, 10], [5, 10],\n [5, 10], [5, 10], [5, 10], [5, 10],\n [5, 11], [5, 11], [5, 11], [5, 11], // 01000xxxx\n [5, 11], [5, 11], [5, 11], [5, 11],\n [5, 11], [5, 11], [5, 11], [5, 11],\n [5, 11], [5, 11], [5, 11], [5, 11],\n [7, 27], [7, 27], [7, 27], [7, 27], // 0100100xx\n [8, 59], [8, 59], // 01001010x\n [8, 60], [8, 60], // 01001011x\n [9, 1472], // 010011000\n [9, 1536], // 010011001\n [9, 1600], // 010011010\n [9, 1728], // 010011011\n [7, 18], [7, 18], [7, 18], [7, 18], // 0100111xx\n [7, 24], [7, 24], [7, 24], [7, 24], // 0101000xx\n [8, 49], [8, 49], // 01010010x\n [8, 50], [8, 50], // 01010011x\n [8, 51], [8, 51], // 01010100x\n [8, 52], [8, 52], // 01010101x\n [7, 25], [7, 25], [7, 25], [7, 25], // 0101011xx\n [8, 55], [8, 55], // 01011000x\n [8, 56], [8, 56], // 01011001x\n [8, 57], [8, 57], // 01011010x\n [8, 58], [8, 58], // 01011011x\n [6, 192], [6, 192], [6, 192], [6, 192], // 010111xxx\n [6, 192], [6, 192], [6, 192], [6, 192],\n [6, 1664], [6, 1664], [6, 1664], [6, 1664], // 011000xxx\n [6, 1664], [6, 1664], [6, 1664], [6, 1664],\n [8, 448], [8, 448], // 01100100x\n [8, 512], [8, 512], // 01100101x\n [9, 704], // 011001100\n [9, 768], // 011001101\n [8, 640], [8, 640], // 01100111x\n [8, 576], [8, 576], // 01101000x\n [9, 832], // 011010010\n [9, 896], // 011010011\n [9, 960], // 011010100\n [9, 1024], // 011010101\n [9, 1088], // 011010110\n [9, 1152], // 011010111\n [9, 1216], // 011011000\n [9, 1280], // 011011001\n [9, 1344], // 011011010\n [9, 1408], // 011011011\n [7, 256], [7, 256], [7, 256], [7, 256], // 0110111xx\n [4, 2], [4, 2], [4, 2], [4, 2], // 0111xxxxx\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 3], [4, 3], [4, 3], [4, 3], // 1000xxxxx\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [5, 128], [5, 128], [5, 128], [5, 128], // 10010xxxx\n [5, 128], [5, 128], [5, 128], [5, 128],\n [5, 128], [5, 128], [5, 128], [5, 128],\n [5, 128], [5, 128], [5, 128], [5, 128],\n [5, 8], [5, 8], [5, 8], [5, 8], // 10011xxxx\n [5, 8], [5, 8], [5, 8], [5, 8],\n [5, 8], [5, 8], [5, 8], [5, 8],\n [5, 8], [5, 8], [5, 8], [5, 8],\n [5, 9], [5, 9], [5, 9], [5, 9], // 10100xxxx\n [5, 9], [5, 9], [5, 9], [5, 9],\n [5, 9], [5, 9], [5, 9], [5, 9],\n [5, 9], [5, 9], [5, 9], [5, 9],\n [6, 16], [6, 16], [6, 16], [6, 16], // 101010xxx\n [6, 16], [6, 16], [6, 16], [6, 16],\n [6, 17], [6, 17], [6, 17], [6, 17], // 101011xxx\n [6, 17], [6, 17], [6, 17], [6, 17],\n [4, 4], [4, 4], [4, 4], [4, 4], // 1011xxxxx\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 5], [4, 5], [4, 5], [4, 5], // 1100xxxxx\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [6, 14], [6, 14], [6, 14], [6, 14], // 110100xxx\n [6, 14], [6, 14], [6, 14], [6, 14],\n [6, 15], [6, 15], [6, 15], [6, 15], // 110101xxx\n [6, 15], [6, 15], [6, 15], [6, 15],\n [5, 64], [5, 64], [5, 64], [5, 64], // 11011xxxx\n [5, 64], [5, 64], [5, 64], [5, 64],\n [5, 64], [5, 64], [5, 64], [5, 64],\n [5, 64], [5, 64], [5, 64], [5, 64],\n [4, 6], [4, 6], [4, 6], [4, 6], // 1110xxxxx\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 7], [4, 7], [4, 7], [4, 7], // 1111xxxxx\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7]\n];\n\n// prettier-ignore\nconst blackTable1 = [\n [-1, -1], [-1, -1], // 000000000000x\n [12, ccittEOL], [12, ccittEOL], // 000000000001x\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000001xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000010xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000011xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000100xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000101xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000110xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000111xx\n [11, 1792], [11, 1792], [11, 1792], [11, 1792], // 00000001000xx\n [12, 1984], [12, 1984], // 000000010010x\n [12, 2048], [12, 2048], // 000000010011x\n [12, 2112], [12, 2112], // 000000010100x\n [12, 2176], [12, 2176], // 000000010101x\n [12, 2240], [12, 2240], // 000000010110x\n [12, 2304], [12, 2304], // 000000010111x\n [11, 1856], [11, 1856], [11, 1856], [11, 1856], // 00000001100xx\n [11, 1920], [11, 1920], [11, 1920], [11, 1920], // 00000001101xx\n [12, 2368], [12, 2368], // 000000011100x\n [12, 2432], [12, 2432], // 000000011101x\n [12, 2496], [12, 2496], // 000000011110x\n [12, 2560], [12, 2560], // 000000011111x\n [10, 18], [10, 18], [10, 18], [10, 18], // 0000001000xxx\n [10, 18], [10, 18], [10, 18], [10, 18],\n [12, 52], [12, 52], // 000000100100x\n [13, 640], // 0000001001010\n [13, 704], // 0000001001011\n [13, 768], // 0000001001100\n [13, 832], // 0000001001101\n [12, 55], [12, 55], // 000000100111x\n [12, 56], [12, 56], // 000000101000x\n [13, 1280], // 0000001010010\n [13, 1344], // 0000001010011\n [13, 1408], // 0000001010100\n [13, 1472], // 0000001010101\n [12, 59], [12, 59], // 000000101011x\n [12, 60], [12, 60], // 000000101100x\n [13, 1536], // 0000001011010\n [13, 1600], // 0000001011011\n [11, 24], [11, 24], [11, 24], [11, 24], // 00000010111xx\n [11, 25], [11, 25], [11, 25], [11, 25], // 00000011000xx\n [13, 1664], // 0000001100100\n [13, 1728], // 0000001100101\n [12, 320], [12, 320], // 000000110011x\n [12, 384], [12, 384], // 000000110100x\n [12, 448], [12, 448], // 000000110101x\n [13, 512], // 0000001101100\n [13, 576], // 0000001101101\n [12, 53], [12, 53], // 000000110111x\n [12, 54], [12, 54], // 000000111000x\n [13, 896], // 0000001110010\n [13, 960], // 0000001110011\n [13, 1024], // 0000001110100\n [13, 1088], // 0000001110101\n [13, 1152], // 0000001110110\n [13, 1216], // 0000001110111\n [10, 64], [10, 64], [10, 64], [10, 64], // 0000001111xxx\n [10, 64], [10, 64], [10, 64], [10, 64]\n];\n\n// prettier-ignore\nconst blackTable2 = [\n [8, 13], [8, 13], [8, 13], [8, 13], // 00000100xxxx\n [8, 13], [8, 13], [8, 13], [8, 13],\n [8, 13], [8, 13], [8, 13], [8, 13],\n [8, 13], [8, 13], [8, 13], [8, 13],\n [11, 23], [11, 23], // 00000101000x\n [12, 50], // 000001010010\n [12, 51], // 000001010011\n [12, 44], // 000001010100\n [12, 45], // 000001010101\n [12, 46], // 000001010110\n [12, 47], // 000001010111\n [12, 57], // 000001011000\n [12, 58], // 000001011001\n [12, 61], // 000001011010\n [12, 256], // 000001011011\n [10, 16], [10, 16], [10, 16], [10, 16], // 0000010111xx\n [10, 17], [10, 17], [10, 17], [10, 17], // 0000011000xx\n [12, 48], // 000001100100\n [12, 49], // 000001100101\n [12, 62], // 000001100110\n [12, 63], // 000001100111\n [12, 30], // 000001101000\n [12, 31], // 000001101001\n [12, 32], // 000001101010\n [12, 33], // 000001101011\n [12, 40], // 000001101100\n [12, 41], // 000001101101\n [11, 22], [11, 22], // 00000110111x\n [8, 14], [8, 14], [8, 14], [8, 14], // 00000111xxxx\n [8, 14], [8, 14], [8, 14], [8, 14],\n [8, 14], [8, 14], [8, 14], [8, 14],\n [8, 14], [8, 14], [8, 14], [8, 14],\n [7, 10], [7, 10], [7, 10], [7, 10], // 0000100xxxxx\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 11], [7, 11], [7, 11], [7, 11], // 0000101xxxxx\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [9, 15], [9, 15], [9, 15], [9, 15], // 000011000xxx\n [9, 15], [9, 15], [9, 15], [9, 15],\n [12, 128], // 000011001000\n [12, 192], // 000011001001\n [12, 26], // 000011001010\n [12, 27], // 000011001011\n [12, 28], // 000011001100\n [12, 29], // 000011001101\n [11, 19], [11, 19], // 00001100111x\n [11, 20], [11, 20], // 00001101000x\n [12, 34], // 000011010010\n [12, 35], // 000011010011\n [12, 36], // 000011010100\n [12, 37], // 000011010101\n [12, 38], // 000011010110\n [12, 39], // 000011010111\n [11, 21], [11, 21], // 00001101100x\n [12, 42], // 000011011010\n [12, 43], // 000011011011\n [10, 0], [10, 0], [10, 0], [10, 0], // 0000110111xx\n [7, 12], [7, 12], [7, 12], [7, 12], // 0000111xxxxx\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12]\n];\n\n// prettier-ignore\nconst blackTable3 = [\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 0000xx\n [6, 9], // 000100\n [6, 8], // 000101\n [5, 7], [5, 7], // 00011x\n [4, 6], [4, 6], [4, 6], [4, 6], // 0010xx\n [4, 5], [4, 5], [4, 5], [4, 5], // 0011xx\n [3, 1], [3, 1], [3, 1], [3, 1], // 010xxx\n [3, 1], [3, 1], [3, 1], [3, 1],\n [3, 4], [3, 4], [3, 4], [3, 4], // 011xxx\n [3, 4], [3, 4], [3, 4], [3, 4],\n [2, 3], [2, 3], [2, 3], [2, 3], // 10xxxx\n [2, 3], [2, 3], [2, 3], [2, 3],\n [2, 3], [2, 3], [2, 3], [2, 3],\n [2, 3], [2, 3], [2, 3], [2, 3],\n [2, 2], [2, 2], [2, 2], [2, 2], // 11xxxx\n [2, 2], [2, 2], [2, 2], [2, 2],\n [2, 2], [2, 2], [2, 2], [2, 2],\n [2, 2], [2, 2], [2, 2], [2, 2]\n];\n\n/**\n * @param {CCITTFaxDecoderSource} source - The data which should be decoded.\n * @param {Object} [options] - Decoding options.\n */\nclass CCITTFaxDecoder {\n constructor(source, options = {}) {\n if (!source || typeof source.next !== \"function\") {\n throw new Error('CCITTFaxDecoder - invalid \"source\" parameter.');\n }\n this.source = source;\n this.eof = false;\n\n this.encoding = options.K || 0;\n this.eoline = options.EndOfLine || false;\n this.byteAlign = options.EncodedByteAlign || false;\n this.columns = options.Columns || 1728;\n this.rows = options.Rows || 0;\n let eoblock = options.EndOfBlock;\n if (eoblock === null || eoblock === undefined) {\n eoblock = true;\n }\n this.eoblock = eoblock;\n this.black = options.BlackIs1 || false;\n\n this.codingLine = new Uint32Array(this.columns + 1);\n this.refLine = new Uint32Array(this.columns + 2);\n\n this.codingLine[0] = this.columns;\n this.codingPos = 0;\n\n this.row = 0;\n this.nextLine2D = this.encoding < 0;\n this.inputBits = 0;\n this.inputBuf = 0;\n this.outputBits = 0;\n this.rowsDone = false;\n\n let code1;\n while ((code1 = this._lookBits(12)) === 0) {\n this._eatBits(1);\n }\n if (code1 === 1) {\n this._eatBits(12);\n }\n if (this.encoding > 0) {\n this.nextLine2D = !this._lookBits(1);\n this._eatBits(1);\n }\n }\n\n readNextChar() {\n if (this.eof) {\n return -1;\n }\n const refLine = this.refLine;\n const codingLine = this.codingLine;\n const columns = this.columns;\n\n let refPos, blackPixels, bits, i;\n\n if (this.outputBits === 0) {\n if (this.rowsDone) {\n this.eof = true;\n }\n if (this.eof) {\n return -1;\n }\n this.err = false;\n\n let code1, code2, code3;\n if (this.nextLine2D) {\n for (i = 0; codingLine[i] < columns; ++i) {\n refLine[i] = codingLine[i];\n }\n refLine[i++] = columns;\n refLine[i] = columns;\n codingLine[0] = 0;\n this.codingPos = 0;\n refPos = 0;\n blackPixels = 0;\n\n while (codingLine[this.codingPos] < columns) {\n code1 = this._getTwoDimCode();\n switch (code1) {\n case twoDimPass:\n this._addPixels(refLine[refPos + 1], blackPixels);\n if (refLine[refPos + 1] < columns) {\n refPos += 2;\n }\n break;\n case twoDimHoriz:\n code1 = code2 = 0;\n if (blackPixels) {\n do {\n code1 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n do {\n code2 += code3 = this._getWhiteCode();\n } while (code3 >= 64);\n } else {\n do {\n code1 += code3 = this._getWhiteCode();\n } while (code3 >= 64);\n do {\n code2 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n }\n this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n if (codingLine[this.codingPos] < columns) {\n this._addPixels(\n codingLine[this.codingPos] + code2,\n blackPixels ^ 1\n );\n }\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n break;\n case twoDimVertR3:\n this._addPixels(refLine[refPos] + 3, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertR2:\n this._addPixels(refLine[refPos] + 2, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertR1:\n this._addPixels(refLine[refPos] + 1, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVert0:\n this._addPixels(refLine[refPos], blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL3:\n this._addPixelsNeg(refLine[refPos] - 3, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL2:\n this._addPixelsNeg(refLine[refPos] - 2, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL1:\n this._addPixelsNeg(refLine[refPos] - 1, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case ccittEOF:\n this._addPixels(columns, 0);\n this.eof = true;\n break;\n default:\n info(\"bad 2d code\");\n this._addPixels(columns, 0);\n this.err = true;\n }\n }\n } else {\n codingLine[0] = 0;\n this.codingPos = 0;\n blackPixels = 0;\n while (codingLine[this.codingPos] < columns) {\n code1 = 0;\n if (blackPixels) {\n do {\n code1 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n } else {\n do {\n code1 += code3 = this._getWhiteCode();\n } while (code3 >= 64);\n }\n this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n blackPixels ^= 1;\n }\n }\n\n let gotEOL = false;\n\n if (this.byteAlign) {\n this.inputBits &= ~7;\n }\n\n if (!this.eoblock && this.row === this.rows - 1) {\n this.rowsDone = true;\n } else {\n code1 = this._lookBits(12);\n if (this.eoline) {\n while (code1 !== ccittEOF && code1 !== 1) {\n this._eatBits(1);\n code1 = this._lookBits(12);\n }\n } else {\n while (code1 === 0) {\n this._eatBits(1);\n code1 = this._lookBits(12);\n }\n }\n if (code1 === 1) {\n this._eatBits(12);\n gotEOL = true;\n } else if (code1 === ccittEOF) {\n this.eof = true;\n }\n }\n\n if (!this.eof && this.encoding > 0 && !this.rowsDone) {\n this.nextLine2D = !this._lookBits(1);\n this._eatBits(1);\n }\n\n if (this.eoblock && gotEOL && this.byteAlign) {\n code1 = this._lookBits(12);\n if (code1 === 1) {\n this._eatBits(12);\n if (this.encoding > 0) {\n this._lookBits(1);\n this._eatBits(1);\n }\n if (this.encoding >= 0) {\n for (i = 0; i < 4; ++i) {\n code1 = this._lookBits(12);\n if (code1 !== 1) {\n info(\"bad rtc code: \" + code1);\n }\n this._eatBits(12);\n if (this.encoding > 0) {\n this._lookBits(1);\n this._eatBits(1);\n }\n }\n }\n this.eof = true;\n }\n } else if (this.err && this.eoline) {\n while (true) {\n code1 = this._lookBits(13);\n if (code1 === ccittEOF) {\n this.eof = true;\n return -1;\n }\n if (code1 >> 1 === 1) {\n break;\n }\n this._eatBits(1);\n }\n this._eatBits(12);\n if (this.encoding > 0) {\n this._eatBits(1);\n this.nextLine2D = !(code1 & 1);\n }\n }\n\n if (codingLine[0] > 0) {\n this.outputBits = codingLine[(this.codingPos = 0)];\n } else {\n this.outputBits = codingLine[(this.codingPos = 1)];\n }\n this.row++;\n }\n\n let c;\n if (this.outputBits >= 8) {\n c = this.codingPos & 1 ? 0 : 0xff;\n this.outputBits -= 8;\n if (this.outputBits === 0 && codingLine[this.codingPos] < columns) {\n this.codingPos++;\n this.outputBits =\n codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n }\n } else {\n bits = 8;\n c = 0;\n do {\n if (typeof this.outputBits !== \"number\") {\n throw new FormatError(\n 'Invalid /CCITTFaxDecode data, \"outputBits\" must be a number.'\n );\n }\n\n if (this.outputBits > bits) {\n c <<= bits;\n if (!(this.codingPos & 1)) {\n c |= 0xff >> (8 - bits);\n }\n this.outputBits -= bits;\n bits = 0;\n } else {\n c <<= this.outputBits;\n if (!(this.codingPos & 1)) {\n c |= 0xff >> (8 - this.outputBits);\n }\n bits -= this.outputBits;\n this.outputBits = 0;\n if (codingLine[this.codingPos] < columns) {\n this.codingPos++;\n this.outputBits =\n codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n } else if (bits > 0) {\n c <<= bits;\n bits = 0;\n }\n }\n } while (bits);\n }\n if (this.black) {\n c ^= 0xff;\n }\n return c;\n }\n\n /**\n * @private\n */\n _addPixels(a1, blackPixels) {\n const codingLine = this.codingLine;\n let codingPos = this.codingPos;\n\n if (a1 > codingLine[codingPos]) {\n if (a1 > this.columns) {\n info(\"row is wrong length\");\n this.err = true;\n a1 = this.columns;\n }\n if ((codingPos & 1) ^ blackPixels) {\n ++codingPos;\n }\n\n codingLine[codingPos] = a1;\n }\n this.codingPos = codingPos;\n }\n\n /**\n * @private\n */\n _addPixelsNeg(a1, blackPixels) {\n const codingLine = this.codingLine;\n let codingPos = this.codingPos;\n\n if (a1 > codingLine[codingPos]) {\n if (a1 > this.columns) {\n info(\"row is wrong length\");\n this.err = true;\n a1 = this.columns;\n }\n if ((codingPos & 1) ^ blackPixels) {\n ++codingPos;\n }\n\n codingLine[codingPos] = a1;\n } else if (a1 < codingLine[codingPos]) {\n if (a1 < 0) {\n info(\"invalid code\");\n this.err = true;\n a1 = 0;\n }\n while (codingPos > 0 && a1 < codingLine[codingPos - 1]) {\n --codingPos;\n }\n codingLine[codingPos] = a1;\n }\n\n this.codingPos = codingPos;\n }\n\n /**\n * This function returns the code found from the table.\n * The start and end parameters set the boundaries for searching the table.\n * The limit parameter is optional. Function returns an array with three\n * values. The first array element indicates whether a valid code is being\n * returned. The second array element is the actual code. The third array\n * element indicates whether EOF was reached.\n * @private\n */\n _findTableCode(start, end, table, limit) {\n const limitValue = limit || 0;\n for (let i = start; i <= end; ++i) {\n let code = this._lookBits(i);\n if (code === ccittEOF) {\n return [true, 1, false];\n }\n if (i < end) {\n code <<= end - i;\n }\n if (!limitValue || code >= limitValue) {\n const p = table[code - limitValue];\n if (p[0] === i) {\n this._eatBits(i);\n return [true, p[1], true];\n }\n }\n }\n return [false, 0, false];\n }\n\n /**\n * @private\n */\n _getTwoDimCode() {\n let code = 0;\n let p;\n if (this.eoblock) {\n code = this._lookBits(7);\n p = twoDimTable[code];\n if (p && p[0] > 0) {\n this._eatBits(p[0]);\n return p[1];\n }\n } else {\n const result = this._findTableCode(1, 7, twoDimTable);\n if (result[0] && result[2]) {\n return result[1];\n }\n }\n info(\"Bad two dim code\");\n return ccittEOF;\n }\n\n /**\n * @private\n */\n _getWhiteCode() {\n let code = 0;\n let p;\n if (this.eoblock) {\n code = this._lookBits(12);\n if (code === ccittEOF) {\n return 1;\n }\n\n if (code >> 5 === 0) {\n p = whiteTable1[code];\n } else {\n p = whiteTable2[code >> 3];\n }\n\n if (p[0] > 0) {\n this._eatBits(p[0]);\n return p[1];\n }\n } else {\n let result = this._findTableCode(1, 9, whiteTable2);\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(11, 12, whiteTable1);\n if (result[0]) {\n return result[1];\n }\n }\n info(\"bad white code\");\n this._eatBits(1);\n return 1;\n }\n\n /**\n * @private\n */\n _getBlackCode() {\n let code, p;\n if (this.eoblock) {\n code = this._lookBits(13);\n if (code === ccittEOF) {\n return 1;\n }\n if (code >> 7 === 0) {\n p = blackTable1[code];\n } else if (code >> 9 === 0 && code >> 7 !== 0) {\n p = blackTable2[(code >> 1) - 64];\n } else {\n p = blackTable3[code >> 7];\n }\n\n if (p[0] > 0) {\n this._eatBits(p[0]);\n return p[1];\n }\n } else {\n let result = this._findTableCode(2, 6, blackTable3);\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(7, 12, blackTable2, 64);\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(10, 13, blackTable1);\n if (result[0]) {\n return result[1];\n }\n }\n info(\"bad black code\");\n this._eatBits(1);\n return 1;\n }\n\n /**\n * @private\n */\n _lookBits(n) {\n let c;\n while (this.inputBits < n) {\n if ((c = this.source.next()) === -1) {\n if (this.inputBits === 0) {\n return ccittEOF;\n }\n return (this.inputBuf << (n - this.inputBits)) & (0xffff >> (16 - n));\n }\n this.inputBuf = (this.inputBuf << 8) | c;\n this.inputBits += 8;\n }\n return (this.inputBuf >> (this.inputBits - n)) & (0xffff >> (16 - n));\n }\n\n /**\n * @private\n */\n _eatBits(n) {\n if ((this.inputBits -= n) < 0) {\n this.inputBits = 0;\n }\n }\n}\n\nexport { CCITTFaxDecoder };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Copyright 1996-2003 Glyph & Cog, LLC\n *\n * The flate stream implementation contained in this file is a JavaScript port\n * of XPDF's implementation, made available under the Apache 2.0 open source\n * license.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { FormatError } from \"../shared/util.js\";\n\nconst codeLenCodeMap = new Int32Array([\n 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15,\n]);\n\nconst lengthDecode = new Int32Array([\n 0x00003, 0x00004, 0x00005, 0x00006, 0x00007, 0x00008, 0x00009, 0x0000a,\n 0x1000b, 0x1000d, 0x1000f, 0x10011, 0x20013, 0x20017, 0x2001b, 0x2001f,\n 0x30023, 0x3002b, 0x30033, 0x3003b, 0x40043, 0x40053, 0x40063, 0x40073,\n 0x50083, 0x500a3, 0x500c3, 0x500e3, 0x00102, 0x00102, 0x00102,\n]);\n\nconst distDecode = new Int32Array([\n 0x00001, 0x00002, 0x00003, 0x00004, 0x10005, 0x10007, 0x20009, 0x2000d,\n 0x30011, 0x30019, 0x40021, 0x40031, 0x50041, 0x50061, 0x60081, 0x600c1,\n 0x70101, 0x70181, 0x80201, 0x80301, 0x90401, 0x90601, 0xa0801, 0xa0c01,\n 0xb1001, 0xb1801, 0xc2001, 0xc3001, 0xd4001, 0xd6001,\n]);\n\nconst fixedLitCodeTab = [\n new Int32Array([\n 0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c0,\n 0x70108, 0x80060, 0x80020, 0x900a0, 0x80000, 0x80080, 0x80040, 0x900e0,\n 0x70104, 0x80058, 0x80018, 0x90090, 0x70114, 0x80078, 0x80038, 0x900d0,\n 0x7010c, 0x80068, 0x80028, 0x900b0, 0x80008, 0x80088, 0x80048, 0x900f0,\n 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c8,\n 0x7010a, 0x80064, 0x80024, 0x900a8, 0x80004, 0x80084, 0x80044, 0x900e8,\n 0x70106, 0x8005c, 0x8001c, 0x90098, 0x70116, 0x8007c, 0x8003c, 0x900d8,\n 0x7010e, 0x8006c, 0x8002c, 0x900b8, 0x8000c, 0x8008c, 0x8004c, 0x900f8,\n 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c4,\n 0x70109, 0x80062, 0x80022, 0x900a4, 0x80002, 0x80082, 0x80042, 0x900e4,\n 0x70105, 0x8005a, 0x8001a, 0x90094, 0x70115, 0x8007a, 0x8003a, 0x900d4,\n 0x7010d, 0x8006a, 0x8002a, 0x900b4, 0x8000a, 0x8008a, 0x8004a, 0x900f4,\n 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cc,\n 0x7010b, 0x80066, 0x80026, 0x900ac, 0x80006, 0x80086, 0x80046, 0x900ec,\n 0x70107, 0x8005e, 0x8001e, 0x9009c, 0x70117, 0x8007e, 0x8003e, 0x900dc,\n 0x7010f, 0x8006e, 0x8002e, 0x900bc, 0x8000e, 0x8008e, 0x8004e, 0x900fc,\n 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c2,\n 0x70108, 0x80061, 0x80021, 0x900a2, 0x80001, 0x80081, 0x80041, 0x900e2,\n 0x70104, 0x80059, 0x80019, 0x90092, 0x70114, 0x80079, 0x80039, 0x900d2,\n 0x7010c, 0x80069, 0x80029, 0x900b2, 0x80009, 0x80089, 0x80049, 0x900f2,\n 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900ca,\n 0x7010a, 0x80065, 0x80025, 0x900aa, 0x80005, 0x80085, 0x80045, 0x900ea,\n 0x70106, 0x8005d, 0x8001d, 0x9009a, 0x70116, 0x8007d, 0x8003d, 0x900da,\n 0x7010e, 0x8006d, 0x8002d, 0x900ba, 0x8000d, 0x8008d, 0x8004d, 0x900fa,\n 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c6,\n 0x70109, 0x80063, 0x80023, 0x900a6, 0x80003, 0x80083, 0x80043, 0x900e6,\n 0x70105, 0x8005b, 0x8001b, 0x90096, 0x70115, 0x8007b, 0x8003b, 0x900d6,\n 0x7010d, 0x8006b, 0x8002b, 0x900b6, 0x8000b, 0x8008b, 0x8004b, 0x900f6,\n 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900ce,\n 0x7010b, 0x80067, 0x80027, 0x900ae, 0x80007, 0x80087, 0x80047, 0x900ee,\n 0x70107, 0x8005f, 0x8001f, 0x9009e, 0x70117, 0x8007f, 0x8003f, 0x900de,\n 0x7010f, 0x8006f, 0x8002f, 0x900be, 0x8000f, 0x8008f, 0x8004f, 0x900fe,\n 0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c1,\n 0x70108, 0x80060, 0x80020, 0x900a1, 0x80000, 0x80080, 0x80040, 0x900e1,\n 0x70104, 0x80058, 0x80018, 0x90091, 0x70114, 0x80078, 0x80038, 0x900d1,\n 0x7010c, 0x80068, 0x80028, 0x900b1, 0x80008, 0x80088, 0x80048, 0x900f1,\n 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c9,\n 0x7010a, 0x80064, 0x80024, 0x900a9, 0x80004, 0x80084, 0x80044, 0x900e9,\n 0x70106, 0x8005c, 0x8001c, 0x90099, 0x70116, 0x8007c, 0x8003c, 0x900d9,\n 0x7010e, 0x8006c, 0x8002c, 0x900b9, 0x8000c, 0x8008c, 0x8004c, 0x900f9,\n 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c5,\n 0x70109, 0x80062, 0x80022, 0x900a5, 0x80002, 0x80082, 0x80042, 0x900e5,\n 0x70105, 0x8005a, 0x8001a, 0x90095, 0x70115, 0x8007a, 0x8003a, 0x900d5,\n 0x7010d, 0x8006a, 0x8002a, 0x900b5, 0x8000a, 0x8008a, 0x8004a, 0x900f5,\n 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cd,\n 0x7010b, 0x80066, 0x80026, 0x900ad, 0x80006, 0x80086, 0x80046, 0x900ed,\n 0x70107, 0x8005e, 0x8001e, 0x9009d, 0x70117, 0x8007e, 0x8003e, 0x900dd,\n 0x7010f, 0x8006e, 0x8002e, 0x900bd, 0x8000e, 0x8008e, 0x8004e, 0x900fd,\n 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c3,\n 0x70108, 0x80061, 0x80021, 0x900a3, 0x80001, 0x80081, 0x80041, 0x900e3,\n 0x70104, 0x80059, 0x80019, 0x90093, 0x70114, 0x80079, 0x80039, 0x900d3,\n 0x7010c, 0x80069, 0x80029, 0x900b3, 0x80009, 0x80089, 0x80049, 0x900f3,\n 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900cb,\n 0x7010a, 0x80065, 0x80025, 0x900ab, 0x80005, 0x80085, 0x80045, 0x900eb,\n 0x70106, 0x8005d, 0x8001d, 0x9009b, 0x70116, 0x8007d, 0x8003d, 0x900db,\n 0x7010e, 0x8006d, 0x8002d, 0x900bb, 0x8000d, 0x8008d, 0x8004d, 0x900fb,\n 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c7,\n 0x70109, 0x80063, 0x80023, 0x900a7, 0x80003, 0x80083, 0x80043, 0x900e7,\n 0x70105, 0x8005b, 0x8001b, 0x90097, 0x70115, 0x8007b, 0x8003b, 0x900d7,\n 0x7010d, 0x8006b, 0x8002b, 0x900b7, 0x8000b, 0x8008b, 0x8004b, 0x900f7,\n 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900cf,\n 0x7010b, 0x80067, 0x80027, 0x900af, 0x80007, 0x80087, 0x80047, 0x900ef,\n 0x70107, 0x8005f, 0x8001f, 0x9009f, 0x70117, 0x8007f, 0x8003f, 0x900df,\n 0x7010f, 0x8006f, 0x8002f, 0x900bf, 0x8000f, 0x8008f, 0x8004f, 0x900ff,\n ]),\n 9,\n];\n\nconst fixedDistCodeTab = [\n new Int32Array([\n 0x50000, 0x50010, 0x50008, 0x50018, 0x50004, 0x50014, 0x5000c, 0x5001c,\n 0x50002, 0x50012, 0x5000a, 0x5001a, 0x50006, 0x50016, 0x5000e, 0x00000,\n 0x50001, 0x50011, 0x50009, 0x50019, 0x50005, 0x50015, 0x5000d, 0x5001d,\n 0x50003, 0x50013, 0x5000b, 0x5001b, 0x50007, 0x50017, 0x5000f, 0x00000,\n ]),\n 5,\n];\n\nclass FlateStream extends DecodeStream {\n constructor(str, maybeLength) {\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n\n const cmf = str.getByte();\n const flg = str.getByte();\n if (cmf === -1 || flg === -1) {\n throw new FormatError(`Invalid header in flate stream: ${cmf}, ${flg}`);\n }\n if ((cmf & 0x0f) !== 0x08) {\n throw new FormatError(\n `Unknown compression method in flate stream: ${cmf}, ${flg}`\n );\n }\n if (((cmf << 8) + flg) % 31 !== 0) {\n throw new FormatError(`Bad FCHECK in flate stream: ${cmf}, ${flg}`);\n }\n if (flg & 0x20) {\n throw new FormatError(`FDICT bit set in flate stream: ${cmf}, ${flg}`);\n }\n\n this.codeSize = 0;\n this.codeBuf = 0;\n }\n\n getBits(bits) {\n const str = this.str;\n let codeSize = this.codeSize;\n let codeBuf = this.codeBuf;\n\n let b;\n while (codeSize < bits) {\n if ((b = str.getByte()) === -1) {\n throw new FormatError(\"Bad encoding in flate stream\");\n }\n codeBuf |= b << codeSize;\n codeSize += 8;\n }\n b = codeBuf & ((1 << bits) - 1);\n this.codeBuf = codeBuf >> bits;\n this.codeSize = codeSize -= bits;\n\n return b;\n }\n\n getCode(table) {\n const str = this.str;\n const codes = table[0];\n const maxLen = table[1];\n let codeSize = this.codeSize;\n let codeBuf = this.codeBuf;\n\n let b;\n while (codeSize < maxLen) {\n if ((b = str.getByte()) === -1) {\n // premature end of stream. code might however still be valid.\n // codeSize < codeLen check below guards against incomplete codeVal.\n break;\n }\n codeBuf |= b << codeSize;\n codeSize += 8;\n }\n const code = codes[codeBuf & ((1 << maxLen) - 1)];\n const codeLen = code >> 16;\n const codeVal = code & 0xffff;\n if (codeLen < 1 || codeSize < codeLen) {\n throw new FormatError(\"Bad encoding in flate stream\");\n }\n this.codeBuf = codeBuf >> codeLen;\n this.codeSize = codeSize - codeLen;\n return codeVal;\n }\n\n generateHuffmanTable(lengths) {\n const n = lengths.length;\n\n // find max code length\n let maxLen = 0;\n let i;\n for (i = 0; i < n; ++i) {\n if (lengths[i] > maxLen) {\n maxLen = lengths[i];\n }\n }\n\n // build the table\n const size = 1 << maxLen;\n const codes = new Int32Array(size);\n for (\n let len = 1, code = 0, skip = 2;\n len <= maxLen;\n ++len, code <<= 1, skip <<= 1\n ) {\n for (let val = 0; val < n; ++val) {\n if (lengths[val] === len) {\n // bit-reverse the code\n let code2 = 0;\n let t = code;\n for (i = 0; i < len; ++i) {\n code2 = (code2 << 1) | (t & 1);\n t >>= 1;\n }\n\n // fill the table entries\n for (i = code2; i < size; i += skip) {\n codes[i] = (len << 16) | val;\n }\n ++code;\n }\n }\n }\n\n return [codes, maxLen];\n }\n\n readBlock() {\n let buffer, len;\n const str = this.str;\n // read block header\n let hdr = this.getBits(3);\n if (hdr & 1) {\n this.eof = true;\n }\n hdr >>= 1;\n\n if (hdr === 0) {\n // uncompressed block\n let b;\n\n if ((b = str.getByte()) === -1) {\n throw new FormatError(\"Bad block header in flate stream\");\n }\n let blockLen = b;\n if ((b = str.getByte()) === -1) {\n throw new FormatError(\"Bad block header in flate stream\");\n }\n blockLen |= b << 8;\n if ((b = str.getByte()) === -1) {\n throw new FormatError(\"Bad block header in flate stream\");\n }\n let check = b;\n if ((b = str.getByte()) === -1) {\n throw new FormatError(\"Bad block header in flate stream\");\n }\n check |= b << 8;\n if (check !== (~blockLen & 0xffff) && (blockLen !== 0 || check !== 0)) {\n // Ignoring error for bad \"empty\" block (see issue 1277)\n throw new FormatError(\"Bad uncompressed block length in flate stream\");\n }\n\n this.codeBuf = 0;\n this.codeSize = 0;\n\n const bufferLength = this.bufferLength,\n end = bufferLength + blockLen;\n buffer = this.ensureBuffer(end);\n this.bufferLength = end;\n\n if (blockLen === 0) {\n if (str.peekByte() === -1) {\n this.eof = true;\n }\n } else {\n const block = str.getBytes(blockLen);\n buffer.set(block, bufferLength);\n if (block.length < blockLen) {\n this.eof = true;\n }\n }\n return;\n }\n\n let litCodeTable;\n let distCodeTable;\n if (hdr === 1) {\n // compressed block, fixed codes\n litCodeTable = fixedLitCodeTab;\n distCodeTable = fixedDistCodeTab;\n } else if (hdr === 2) {\n // compressed block, dynamic codes\n const numLitCodes = this.getBits(5) + 257;\n const numDistCodes = this.getBits(5) + 1;\n const numCodeLenCodes = this.getBits(4) + 4;\n\n // build the code lengths code table\n const codeLenCodeLengths = new Uint8Array(codeLenCodeMap.length);\n\n let i;\n for (i = 0; i < numCodeLenCodes; ++i) {\n codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3);\n }\n const codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths);\n\n // build the literal and distance code tables\n len = 0;\n i = 0;\n const codes = numLitCodes + numDistCodes;\n const codeLengths = new Uint8Array(codes);\n let bitsLength, bitsOffset, what;\n while (i < codes) {\n const code = this.getCode(codeLenCodeTab);\n if (code === 16) {\n bitsLength = 2;\n bitsOffset = 3;\n what = len;\n } else if (code === 17) {\n bitsLength = 3;\n bitsOffset = 3;\n what = len = 0;\n } else if (code === 18) {\n bitsLength = 7;\n bitsOffset = 11;\n what = len = 0;\n } else {\n codeLengths[i++] = len = code;\n continue;\n }\n\n let repeatLength = this.getBits(bitsLength) + bitsOffset;\n while (repeatLength-- > 0) {\n codeLengths[i++] = what;\n }\n }\n\n litCodeTable = this.generateHuffmanTable(\n codeLengths.subarray(0, numLitCodes)\n );\n distCodeTable = this.generateHuffmanTable(\n codeLengths.subarray(numLitCodes, codes)\n );\n } else {\n throw new FormatError(\"Unknown block type in flate stream\");\n }\n\n buffer = this.buffer;\n let limit = buffer ? buffer.length : 0;\n let pos = this.bufferLength;\n while (true) {\n let code1 = this.getCode(litCodeTable);\n if (code1 < 256) {\n if (pos + 1 >= limit) {\n buffer = this.ensureBuffer(pos + 1);\n limit = buffer.length;\n }\n buffer[pos++] = code1;\n continue;\n }\n if (code1 === 256) {\n this.bufferLength = pos;\n return;\n }\n code1 -= 257;\n code1 = lengthDecode[code1];\n let code2 = code1 >> 16;\n if (code2 > 0) {\n code2 = this.getBits(code2);\n }\n len = (code1 & 0xffff) + code2;\n code1 = this.getCode(distCodeTable);\n code1 = distDecode[code1];\n code2 = code1 >> 16;\n if (code2 > 0) {\n code2 = this.getBits(code2);\n }\n const dist = (code1 & 0xffff) + code2;\n if (pos + len >= limit) {\n buffer = this.ensureBuffer(pos + len);\n limit = buffer.length;\n }\n for (let k = 0; k < len; ++k, ++pos) {\n buffer[pos] = buffer[pos - dist];\n }\n }\n }\n}\n\nexport { FlateStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseStream } from \"./base_stream.js\";\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { Dict } from \"./primitives.js\";\nimport { Jbig2Image } from \"./jbig2.js\";\nimport { shadow } from \"../shared/util.js\";\n\n/**\n * For JBIG2's we use a library to decode these images and\n * the stream behaves like all the other DecodeStreams.\n */\nclass Jbig2Stream extends DecodeStream {\n constructor(stream, maybeLength, params) {\n super(maybeLength);\n\n this.stream = stream;\n this.dict = stream.dict;\n this.maybeLength = maybeLength;\n this.params = params;\n }\n\n get bytes() {\n // If `this.maybeLength` is null, we'll get the entire stream.\n return shadow(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n }\n\n ensureBuffer(requested) {\n // No-op, since `this.readBlock` will always parse the entire image and\n // directly insert all of its data into `this.buffer`.\n }\n\n readBlock() {\n if (this.eof) {\n return;\n }\n const jbig2Image = new Jbig2Image();\n\n const chunks = [];\n if (this.params instanceof Dict) {\n const globalsStream = this.params.get(\"JBIG2Globals\");\n if (globalsStream instanceof BaseStream) {\n const globals = globalsStream.getBytes();\n chunks.push({ data: globals, start: 0, end: globals.length });\n }\n }\n chunks.push({ data: this.bytes, start: 0, end: this.bytes.length });\n const data = jbig2Image.parseChunks(chunks);\n const dataLength = data.length;\n\n // JBIG2 had black as 1 and white as 0, inverting the colors\n for (let i = 0; i < dataLength; i++) {\n data[i] ^= 0xff;\n }\n this.buffer = data;\n this.bufferLength = dataLength;\n this.eof = true;\n }\n}\n\nexport { Jbig2Stream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseException, shadow } from \"../shared/util.js\";\nimport { log2, readInt8, readUint16, readUint32 } from \"./core_utils.js\";\nimport { ArithmeticDecoder } from \"./arithmetic_decoder.js\";\nimport { CCITTFaxDecoder } from \"./ccitt.js\";\n\nclass Jbig2Error extends BaseException {\n constructor(msg) {\n super(`JBIG2 error: ${msg}`, \"Jbig2Error\");\n }\n}\n\n// Utility data structures\nclass ContextCache {\n getContexts(id) {\n if (id in this) {\n return this[id];\n }\n return (this[id] = new Int8Array(1 << 16));\n }\n}\n\nclass DecodingContext {\n constructor(data, start, end) {\n this.data = data;\n this.start = start;\n this.end = end;\n }\n\n get decoder() {\n const decoder = new ArithmeticDecoder(this.data, this.start, this.end);\n return shadow(this, \"decoder\", decoder);\n }\n\n get contextCache() {\n const cache = new ContextCache();\n return shadow(this, \"contextCache\", cache);\n }\n}\n\n// Annex A. Arithmetic Integer Decoding Procedure\n// A.2 Procedure for decoding values\nfunction decodeInteger(contextCache, procedure, decoder) {\n const contexts = contextCache.getContexts(procedure);\n let prev = 1;\n\n function readBits(length) {\n let v = 0;\n for (let i = 0; i < length; i++) {\n const bit = decoder.readBit(contexts, prev);\n prev = prev < 256 ? (prev << 1) | bit : (((prev << 1) | bit) & 511) | 256;\n v = (v << 1) | bit;\n }\n return v >>> 0;\n }\n\n const sign = readBits(1);\n // prettier-ignore\n /* eslint-disable no-nested-ternary */\n const value = readBits(1) ?\n (readBits(1) ?\n (readBits(1) ?\n (readBits(1) ?\n (readBits(1) ?\n (readBits(32) + 4436) :\n readBits(12) + 340) :\n readBits(8) + 84) :\n readBits(6) + 20) :\n readBits(4) + 4) :\n readBits(2);\n /* eslint-enable no-nested-ternary */\n if (sign === 0) {\n return value;\n } else if (value > 0) {\n return -value;\n }\n return null;\n}\n\n// A.3 The IAID decoding procedure\nfunction decodeIAID(contextCache, decoder, codeLength) {\n const contexts = contextCache.getContexts(\"IAID\");\n\n let prev = 1;\n for (let i = 0; i < codeLength; i++) {\n const bit = decoder.readBit(contexts, prev);\n prev = (prev << 1) | bit;\n }\n if (codeLength < 31) {\n return prev & ((1 << codeLength) - 1);\n }\n return prev & 0x7fffffff;\n}\n\n// 7.3 Segment types\nconst SegmentTypes = [\n \"SymbolDictionary\",\n null,\n null,\n null,\n \"IntermediateTextRegion\",\n null,\n \"ImmediateTextRegion\",\n \"ImmediateLosslessTextRegion\",\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n \"PatternDictionary\",\n null,\n null,\n null,\n \"IntermediateHalftoneRegion\",\n null,\n \"ImmediateHalftoneRegion\",\n \"ImmediateLosslessHalftoneRegion\",\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n \"IntermediateGenericRegion\",\n null,\n \"ImmediateGenericRegion\",\n \"ImmediateLosslessGenericRegion\",\n \"IntermediateGenericRefinementRegion\",\n null,\n \"ImmediateGenericRefinementRegion\",\n \"ImmediateLosslessGenericRefinementRegion\",\n null,\n null,\n null,\n null,\n \"PageInformation\",\n \"EndOfPage\",\n \"EndOfStripe\",\n \"EndOfFile\",\n \"Profiles\",\n \"Tables\",\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n \"Extension\",\n];\n\nconst CodingTemplates = [\n [\n { x: -1, y: -2 },\n { x: 0, y: -2 },\n { x: 1, y: -2 },\n { x: -2, y: -1 },\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: 2, y: -1 },\n { x: -4, y: 0 },\n { x: -3, y: 0 },\n { x: -2, y: 0 },\n { x: -1, y: 0 },\n ],\n [\n { x: -1, y: -2 },\n { x: 0, y: -2 },\n { x: 1, y: -2 },\n { x: 2, y: -2 },\n { x: -2, y: -1 },\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: 2, y: -1 },\n { x: -3, y: 0 },\n { x: -2, y: 0 },\n { x: -1, y: 0 },\n ],\n [\n { x: -1, y: -2 },\n { x: 0, y: -2 },\n { x: 1, y: -2 },\n { x: -2, y: -1 },\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -2, y: 0 },\n { x: -1, y: 0 },\n ],\n [\n { x: -3, y: -1 },\n { x: -2, y: -1 },\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -4, y: 0 },\n { x: -3, y: 0 },\n { x: -2, y: 0 },\n { x: -1, y: 0 },\n ],\n];\n\nconst RefinementTemplates = [\n {\n coding: [\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -1, y: 0 },\n ],\n reference: [\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -1, y: 0 },\n { x: 0, y: 0 },\n { x: 1, y: 0 },\n { x: -1, y: 1 },\n { x: 0, y: 1 },\n { x: 1, y: 1 },\n ],\n },\n {\n coding: [\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -1, y: 0 },\n ],\n reference: [\n { x: 0, y: -1 },\n { x: -1, y: 0 },\n { x: 0, y: 0 },\n { x: 1, y: 0 },\n { x: 0, y: 1 },\n { x: 1, y: 1 },\n ],\n },\n];\n\n// See 6.2.5.7 Decoding the bitmap.\nconst ReusedContexts = [\n 0x9b25, // 10011 0110010 0101\n 0x0795, // 0011 110010 101\n 0x00e5, // 001 11001 01\n 0x0195, // 011001 0101\n];\n\nconst RefinementReusedContexts = [\n 0x0020, // '000' + '0' (coding) + '00010000' + '0' (reference)\n 0x0008, // '0000' + '001000'\n];\n\nfunction decodeBitmapTemplate0(width, height, decodingContext) {\n const decoder = decodingContext.decoder;\n const contexts = decodingContext.contextCache.getContexts(\"GB\");\n const bitmap = [];\n let contextLabel, i, j, pixel, row, row1, row2;\n\n // ...ooooo....\n // ..ooooooo... Context template for current pixel (X)\n // .ooooX...... (concatenate values of 'o'-pixels to get contextLabel)\n const OLD_PIXEL_MASK = 0x7bf7; // 01111 0111111 0111\n\n for (i = 0; i < height; i++) {\n row = bitmap[i] = new Uint8Array(width);\n row1 = i < 1 ? row : bitmap[i - 1];\n row2 = i < 2 ? row : bitmap[i - 2];\n\n // At the beginning of each row:\n // Fill contextLabel with pixels that are above/right of (X)\n contextLabel =\n (row2[0] << 13) |\n (row2[1] << 12) |\n (row2[2] << 11) |\n (row1[0] << 7) |\n (row1[1] << 6) |\n (row1[2] << 5) |\n (row1[3] << 4);\n\n for (j = 0; j < width; j++) {\n row[j] = pixel = decoder.readBit(contexts, contextLabel);\n\n // At each pixel: Clear contextLabel pixels that are shifted\n // out of the context, then add new ones.\n contextLabel =\n ((contextLabel & OLD_PIXEL_MASK) << 1) |\n (j + 3 < width ? row2[j + 3] << 11 : 0) |\n (j + 4 < width ? row1[j + 4] << 4 : 0) |\n pixel;\n }\n }\n\n return bitmap;\n}\n\n// 6.2 Generic Region Decoding Procedure\nfunction decodeBitmap(\n mmr,\n width,\n height,\n templateIndex,\n prediction,\n skip,\n at,\n decodingContext\n) {\n if (mmr) {\n const input = new Reader(\n decodingContext.data,\n decodingContext.start,\n decodingContext.end\n );\n return decodeMMRBitmap(input, width, height, false);\n }\n\n // Use optimized version for the most common case\n if (\n templateIndex === 0 &&\n !skip &&\n !prediction &&\n at.length === 4 &&\n at[0].x === 3 &&\n at[0].y === -1 &&\n at[1].x === -3 &&\n at[1].y === -1 &&\n at[2].x === 2 &&\n at[2].y === -2 &&\n at[3].x === -2 &&\n at[3].y === -2\n ) {\n return decodeBitmapTemplate0(width, height, decodingContext);\n }\n\n const useskip = !!skip;\n const template = CodingTemplates[templateIndex].concat(at);\n\n // Sorting is non-standard, and it is not required. But sorting increases\n // the number of template bits that can be reused from the previous\n // contextLabel in the main loop.\n template.sort(function (a, b) {\n return a.y - b.y || a.x - b.x;\n });\n\n const templateLength = template.length;\n const templateX = new Int8Array(templateLength);\n const templateY = new Int8Array(templateLength);\n const changingTemplateEntries = [];\n let reuseMask = 0,\n minX = 0,\n maxX = 0,\n minY = 0;\n let c, k;\n\n for (k = 0; k < templateLength; k++) {\n templateX[k] = template[k].x;\n templateY[k] = template[k].y;\n minX = Math.min(minX, template[k].x);\n maxX = Math.max(maxX, template[k].x);\n minY = Math.min(minY, template[k].y);\n // Check if the template pixel appears in two consecutive context labels,\n // so it can be reused. Otherwise, we add it to the list of changing\n // template entries.\n if (\n k < templateLength - 1 &&\n template[k].y === template[k + 1].y &&\n template[k].x === template[k + 1].x - 1\n ) {\n reuseMask |= 1 << (templateLength - 1 - k);\n } else {\n changingTemplateEntries.push(k);\n }\n }\n const changingEntriesLength = changingTemplateEntries.length;\n\n const changingTemplateX = new Int8Array(changingEntriesLength);\n const changingTemplateY = new Int8Array(changingEntriesLength);\n const changingTemplateBit = new Uint16Array(changingEntriesLength);\n for (c = 0; c < changingEntriesLength; c++) {\n k = changingTemplateEntries[c];\n changingTemplateX[c] = template[k].x;\n changingTemplateY[c] = template[k].y;\n changingTemplateBit[c] = 1 << (templateLength - 1 - k);\n }\n\n // Get the safe bounding box edges from the width, height, minX, maxX, minY\n const sbb_left = -minX;\n const sbb_top = -minY;\n const sbb_right = width - maxX;\n\n const pseudoPixelContext = ReusedContexts[templateIndex];\n let row = new Uint8Array(width);\n const bitmap = [];\n\n const decoder = decodingContext.decoder;\n const contexts = decodingContext.contextCache.getContexts(\"GB\");\n\n let ltp = 0,\n j,\n i0,\n j0,\n contextLabel = 0,\n bit,\n shift;\n for (let i = 0; i < height; i++) {\n if (prediction) {\n const sltp = decoder.readBit(contexts, pseudoPixelContext);\n ltp ^= sltp;\n if (ltp) {\n bitmap.push(row); // duplicate previous row\n continue;\n }\n }\n row = new Uint8Array(row);\n bitmap.push(row);\n for (j = 0; j < width; j++) {\n if (useskip && skip[i][j]) {\n row[j] = 0;\n continue;\n }\n // Are we in the middle of a scanline, so we can reuse contextLabel\n // bits?\n if (j >= sbb_left && j < sbb_right && i >= sbb_top) {\n // If yes, we can just shift the bits that are reusable and only\n // fetch the remaining ones.\n contextLabel = (contextLabel << 1) & reuseMask;\n for (k = 0; k < changingEntriesLength; k++) {\n i0 = i + changingTemplateY[k];\n j0 = j + changingTemplateX[k];\n bit = bitmap[i0][j0];\n if (bit) {\n bit = changingTemplateBit[k];\n contextLabel |= bit;\n }\n }\n } else {\n // compute the contextLabel from scratch\n contextLabel = 0;\n shift = templateLength - 1;\n for (k = 0; k < templateLength; k++, shift--) {\n j0 = j + templateX[k];\n if (j0 >= 0 && j0 < width) {\n i0 = i + templateY[k];\n if (i0 >= 0) {\n bit = bitmap[i0][j0];\n if (bit) {\n contextLabel |= bit << shift;\n }\n }\n }\n }\n }\n const pixel = decoder.readBit(contexts, contextLabel);\n row[j] = pixel;\n }\n }\n return bitmap;\n}\n\n// 6.3.2 Generic Refinement Region Decoding Procedure\nfunction decodeRefinement(\n width,\n height,\n templateIndex,\n referenceBitmap,\n offsetX,\n offsetY,\n prediction,\n at,\n decodingContext\n) {\n let codingTemplate = RefinementTemplates[templateIndex].coding;\n if (templateIndex === 0) {\n codingTemplate = codingTemplate.concat([at[0]]);\n }\n const codingTemplateLength = codingTemplate.length;\n const codingTemplateX = new Int32Array(codingTemplateLength);\n const codingTemplateY = new Int32Array(codingTemplateLength);\n let k;\n for (k = 0; k < codingTemplateLength; k++) {\n codingTemplateX[k] = codingTemplate[k].x;\n codingTemplateY[k] = codingTemplate[k].y;\n }\n\n let referenceTemplate = RefinementTemplates[templateIndex].reference;\n if (templateIndex === 0) {\n referenceTemplate = referenceTemplate.concat([at[1]]);\n }\n const referenceTemplateLength = referenceTemplate.length;\n const referenceTemplateX = new Int32Array(referenceTemplateLength);\n const referenceTemplateY = new Int32Array(referenceTemplateLength);\n for (k = 0; k < referenceTemplateLength; k++) {\n referenceTemplateX[k] = referenceTemplate[k].x;\n referenceTemplateY[k] = referenceTemplate[k].y;\n }\n const referenceWidth = referenceBitmap[0].length;\n const referenceHeight = referenceBitmap.length;\n\n const pseudoPixelContext = RefinementReusedContexts[templateIndex];\n const bitmap = [];\n\n const decoder = decodingContext.decoder;\n const contexts = decodingContext.contextCache.getContexts(\"GR\");\n\n let ltp = 0;\n for (let i = 0; i < height; i++) {\n if (prediction) {\n const sltp = decoder.readBit(contexts, pseudoPixelContext);\n ltp ^= sltp;\n if (ltp) {\n throw new Jbig2Error(\"prediction is not supported\");\n }\n }\n const row = new Uint8Array(width);\n bitmap.push(row);\n for (let j = 0; j < width; j++) {\n let i0, j0;\n let contextLabel = 0;\n for (k = 0; k < codingTemplateLength; k++) {\n i0 = i + codingTemplateY[k];\n j0 = j + codingTemplateX[k];\n if (i0 < 0 || j0 < 0 || j0 >= width) {\n contextLabel <<= 1; // out of bound pixel\n } else {\n contextLabel = (contextLabel << 1) | bitmap[i0][j0];\n }\n }\n for (k = 0; k < referenceTemplateLength; k++) {\n i0 = i + referenceTemplateY[k] - offsetY;\n j0 = j + referenceTemplateX[k] - offsetX;\n if (i0 < 0 || i0 >= referenceHeight || j0 < 0 || j0 >= referenceWidth) {\n contextLabel <<= 1; // out of bound pixel\n } else {\n contextLabel = (contextLabel << 1) | referenceBitmap[i0][j0];\n }\n }\n const pixel = decoder.readBit(contexts, contextLabel);\n row[j] = pixel;\n }\n }\n\n return bitmap;\n}\n\n// 6.5.5 Decoding the symbol dictionary\nfunction decodeSymbolDictionary(\n huffman,\n refinement,\n symbols,\n numberOfNewSymbols,\n numberOfExportedSymbols,\n huffmanTables,\n templateIndex,\n at,\n refinementTemplateIndex,\n refinementAt,\n decodingContext,\n huffmanInput\n) {\n if (huffman && refinement) {\n throw new Jbig2Error(\"symbol refinement with Huffman is not supported\");\n }\n\n const newSymbols = [];\n let currentHeight = 0;\n let symbolCodeLength = log2(symbols.length + numberOfNewSymbols);\n\n const decoder = decodingContext.decoder;\n const contextCache = decodingContext.contextCache;\n let tableB1, symbolWidths;\n if (huffman) {\n tableB1 = getStandardTable(1); // standard table B.1\n symbolWidths = [];\n symbolCodeLength = Math.max(symbolCodeLength, 1); // 6.5.8.2.3\n }\n\n while (newSymbols.length < numberOfNewSymbols) {\n const deltaHeight = huffman\n ? huffmanTables.tableDeltaHeight.decode(huffmanInput)\n : decodeInteger(contextCache, \"IADH\", decoder); // 6.5.6\n currentHeight += deltaHeight;\n let currentWidth = 0,\n totalWidth = 0;\n const firstSymbol = huffman ? symbolWidths.length : 0;\n while (true) {\n const deltaWidth = huffman\n ? huffmanTables.tableDeltaWidth.decode(huffmanInput)\n : decodeInteger(contextCache, \"IADW\", decoder); // 6.5.7\n if (deltaWidth === null) {\n break; // OOB\n }\n currentWidth += deltaWidth;\n totalWidth += currentWidth;\n let bitmap;\n if (refinement) {\n // 6.5.8.2 Refinement/aggregate-coded symbol bitmap\n const numberOfInstances = decodeInteger(contextCache, \"IAAI\", decoder);\n if (numberOfInstances > 1) {\n bitmap = decodeTextRegion(\n huffman,\n refinement,\n currentWidth,\n currentHeight,\n 0,\n numberOfInstances,\n 1, // strip size\n symbols.concat(newSymbols),\n symbolCodeLength,\n 0, // transposed\n 0, // ds offset\n 1, // top left 7.4.3.1.1\n 0, // OR operator\n huffmanTables,\n refinementTemplateIndex,\n refinementAt,\n decodingContext,\n 0,\n huffmanInput\n );\n } else {\n const symbolId = decodeIAID(contextCache, decoder, symbolCodeLength);\n const rdx = decodeInteger(contextCache, \"IARDX\", decoder); // 6.4.11.3\n const rdy = decodeInteger(contextCache, \"IARDY\", decoder); // 6.4.11.4\n const symbol =\n symbolId < symbols.length\n ? symbols[symbolId]\n : newSymbols[symbolId - symbols.length];\n bitmap = decodeRefinement(\n currentWidth,\n currentHeight,\n refinementTemplateIndex,\n symbol,\n rdx,\n rdy,\n false,\n refinementAt,\n decodingContext\n );\n }\n newSymbols.push(bitmap);\n } else if (huffman) {\n // Store only symbol width and decode a collective bitmap when the\n // height class is done.\n symbolWidths.push(currentWidth);\n } else {\n // 6.5.8.1 Direct-coded symbol bitmap\n bitmap = decodeBitmap(\n false,\n currentWidth,\n currentHeight,\n templateIndex,\n false,\n null,\n at,\n decodingContext\n );\n newSymbols.push(bitmap);\n }\n }\n if (huffman && !refinement) {\n // 6.5.9 Height class collective bitmap\n const bitmapSize = huffmanTables.tableBitmapSize.decode(huffmanInput);\n huffmanInput.byteAlign();\n let collectiveBitmap;\n if (bitmapSize === 0) {\n // Uncompressed collective bitmap\n collectiveBitmap = readUncompressedBitmap(\n huffmanInput,\n totalWidth,\n currentHeight\n );\n } else {\n // MMR collective bitmap\n const originalEnd = huffmanInput.end;\n const bitmapEnd = huffmanInput.position + bitmapSize;\n huffmanInput.end = bitmapEnd;\n collectiveBitmap = decodeMMRBitmap(\n huffmanInput,\n totalWidth,\n currentHeight,\n false\n );\n huffmanInput.end = originalEnd;\n huffmanInput.position = bitmapEnd;\n }\n const numberOfSymbolsDecoded = symbolWidths.length;\n if (firstSymbol === numberOfSymbolsDecoded - 1) {\n // collectiveBitmap is a single symbol.\n newSymbols.push(collectiveBitmap);\n } else {\n // Divide collectiveBitmap into symbols.\n let i,\n y,\n xMin = 0,\n xMax,\n bitmapWidth,\n symbolBitmap;\n for (i = firstSymbol; i < numberOfSymbolsDecoded; i++) {\n bitmapWidth = symbolWidths[i];\n xMax = xMin + bitmapWidth;\n symbolBitmap = [];\n for (y = 0; y < currentHeight; y++) {\n symbolBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n }\n newSymbols.push(symbolBitmap);\n xMin = xMax;\n }\n }\n }\n }\n\n // 6.5.10 Exported symbols\n const exportedSymbols = [],\n flags = [];\n let currentFlag = false,\n i,\n ii;\n const totalSymbolsLength = symbols.length + numberOfNewSymbols;\n while (flags.length < totalSymbolsLength) {\n let runLength = huffman\n ? tableB1.decode(huffmanInput)\n : decodeInteger(contextCache, \"IAEX\", decoder);\n while (runLength--) {\n flags.push(currentFlag);\n }\n currentFlag = !currentFlag;\n }\n for (i = 0, ii = symbols.length; i < ii; i++) {\n if (flags[i]) {\n exportedSymbols.push(symbols[i]);\n }\n }\n for (let j = 0; j < numberOfNewSymbols; i++, j++) {\n if (flags[i]) {\n exportedSymbols.push(newSymbols[j]);\n }\n }\n return exportedSymbols;\n}\n\nfunction decodeTextRegion(\n huffman,\n refinement,\n width,\n height,\n defaultPixelValue,\n numberOfSymbolInstances,\n stripSize,\n inputSymbols,\n symbolCodeLength,\n transposed,\n dsOffset,\n referenceCorner,\n combinationOperator,\n huffmanTables,\n refinementTemplateIndex,\n refinementAt,\n decodingContext,\n logStripSize,\n huffmanInput\n) {\n if (huffman && refinement) {\n throw new Jbig2Error(\"refinement with Huffman is not supported\");\n }\n\n // Prepare bitmap\n const bitmap = [];\n let i, row;\n for (i = 0; i < height; i++) {\n row = new Uint8Array(width);\n if (defaultPixelValue) {\n for (let j = 0; j < width; j++) {\n row[j] = defaultPixelValue;\n }\n }\n bitmap.push(row);\n }\n\n const decoder = decodingContext.decoder;\n const contextCache = decodingContext.contextCache;\n\n let stripT = huffman\n ? -huffmanTables.tableDeltaT.decode(huffmanInput)\n : -decodeInteger(contextCache, \"IADT\", decoder); // 6.4.6\n let firstS = 0;\n i = 0;\n while (i < numberOfSymbolInstances) {\n const deltaT = huffman\n ? huffmanTables.tableDeltaT.decode(huffmanInput)\n : decodeInteger(contextCache, \"IADT\", decoder); // 6.4.6\n stripT += deltaT;\n\n const deltaFirstS = huffman\n ? huffmanTables.tableFirstS.decode(huffmanInput)\n : decodeInteger(contextCache, \"IAFS\", decoder); // 6.4.7\n firstS += deltaFirstS;\n let currentS = firstS;\n do {\n let currentT = 0; // 6.4.9\n if (stripSize > 1) {\n currentT = huffman\n ? huffmanInput.readBits(logStripSize)\n : decodeInteger(contextCache, \"IAIT\", decoder);\n }\n const t = stripSize * stripT + currentT;\n const symbolId = huffman\n ? huffmanTables.symbolIDTable.decode(huffmanInput)\n : decodeIAID(contextCache, decoder, symbolCodeLength);\n const applyRefinement =\n refinement &&\n (huffman\n ? huffmanInput.readBit()\n : decodeInteger(contextCache, \"IARI\", decoder));\n let symbolBitmap = inputSymbols[symbolId];\n let symbolWidth = symbolBitmap[0].length;\n let symbolHeight = symbolBitmap.length;\n if (applyRefinement) {\n const rdw = decodeInteger(contextCache, \"IARDW\", decoder); // 6.4.11.1\n const rdh = decodeInteger(contextCache, \"IARDH\", decoder); // 6.4.11.2\n const rdx = decodeInteger(contextCache, \"IARDX\", decoder); // 6.4.11.3\n const rdy = decodeInteger(contextCache, \"IARDY\", decoder); // 6.4.11.4\n symbolWidth += rdw;\n symbolHeight += rdh;\n symbolBitmap = decodeRefinement(\n symbolWidth,\n symbolHeight,\n refinementTemplateIndex,\n symbolBitmap,\n (rdw >> 1) + rdx,\n (rdh >> 1) + rdy,\n false,\n refinementAt,\n decodingContext\n );\n }\n const offsetT = t - (referenceCorner & 1 ? 0 : symbolHeight - 1);\n const offsetS = currentS - (referenceCorner & 2 ? symbolWidth - 1 : 0);\n let s2, t2, symbolRow;\n if (transposed) {\n // Place Symbol Bitmap from T1,S1\n for (s2 = 0; s2 < symbolHeight; s2++) {\n row = bitmap[offsetS + s2];\n if (!row) {\n continue;\n }\n symbolRow = symbolBitmap[s2];\n // To ignore Parts of Symbol bitmap which goes\n // outside bitmap region\n const maxWidth = Math.min(width - offsetT, symbolWidth);\n switch (combinationOperator) {\n case 0: // OR\n for (t2 = 0; t2 < maxWidth; t2++) {\n row[offsetT + t2] |= symbolRow[t2];\n }\n break;\n case 2: // XOR\n for (t2 = 0; t2 < maxWidth; t2++) {\n row[offsetT + t2] ^= symbolRow[t2];\n }\n break;\n default:\n throw new Jbig2Error(\n `operator ${combinationOperator} is not supported`\n );\n }\n }\n currentS += symbolHeight - 1;\n } else {\n for (t2 = 0; t2 < symbolHeight; t2++) {\n row = bitmap[offsetT + t2];\n if (!row) {\n continue;\n }\n symbolRow = symbolBitmap[t2];\n switch (combinationOperator) {\n case 0: // OR\n for (s2 = 0; s2 < symbolWidth; s2++) {\n row[offsetS + s2] |= symbolRow[s2];\n }\n break;\n case 2: // XOR\n for (s2 = 0; s2 < symbolWidth; s2++) {\n row[offsetS + s2] ^= symbolRow[s2];\n }\n break;\n default:\n throw new Jbig2Error(\n `operator ${combinationOperator} is not supported`\n );\n }\n }\n currentS += symbolWidth - 1;\n }\n i++;\n const deltaS = huffman\n ? huffmanTables.tableDeltaS.decode(huffmanInput)\n : decodeInteger(contextCache, \"IADS\", decoder); // 6.4.8\n if (deltaS === null) {\n break; // OOB\n }\n currentS += deltaS + dsOffset;\n } while (true);\n }\n return bitmap;\n}\n\nfunction decodePatternDictionary(\n mmr,\n patternWidth,\n patternHeight,\n maxPatternIndex,\n template,\n decodingContext\n) {\n const at = [];\n if (!mmr) {\n at.push({\n x: -patternWidth,\n y: 0,\n });\n if (template === 0) {\n at.push(\n {\n x: -3,\n y: -1,\n },\n {\n x: 2,\n y: -2,\n },\n {\n x: -2,\n y: -2,\n }\n );\n }\n }\n const collectiveWidth = (maxPatternIndex + 1) * patternWidth;\n const collectiveBitmap = decodeBitmap(\n mmr,\n collectiveWidth,\n patternHeight,\n template,\n false,\n null,\n at,\n decodingContext\n );\n // Divide collective bitmap into patterns.\n const patterns = [];\n for (let i = 0; i <= maxPatternIndex; i++) {\n const patternBitmap = [];\n const xMin = patternWidth * i;\n const xMax = xMin + patternWidth;\n for (let y = 0; y < patternHeight; y++) {\n patternBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n }\n patterns.push(patternBitmap);\n }\n return patterns;\n}\n\nfunction decodeHalftoneRegion(\n mmr,\n patterns,\n template,\n regionWidth,\n regionHeight,\n defaultPixelValue,\n enableSkip,\n combinationOperator,\n gridWidth,\n gridHeight,\n gridOffsetX,\n gridOffsetY,\n gridVectorX,\n gridVectorY,\n decodingContext\n) {\n const skip = null;\n if (enableSkip) {\n throw new Jbig2Error(\"skip is not supported\");\n }\n if (combinationOperator !== 0) {\n throw new Jbig2Error(\n `operator \"${combinationOperator}\" is not supported in halftone region`\n );\n }\n\n // Prepare bitmap.\n const regionBitmap = [];\n let i, j, row;\n for (i = 0; i < regionHeight; i++) {\n row = new Uint8Array(regionWidth);\n if (defaultPixelValue) {\n for (j = 0; j < regionWidth; j++) {\n row[j] = defaultPixelValue;\n }\n }\n regionBitmap.push(row);\n }\n\n const numberOfPatterns = patterns.length;\n const pattern0 = patterns[0];\n const patternWidth = pattern0[0].length,\n patternHeight = pattern0.length;\n const bitsPerValue = log2(numberOfPatterns);\n const at = [];\n if (!mmr) {\n at.push({\n x: template <= 1 ? 3 : 2,\n y: -1,\n });\n if (template === 0) {\n at.push(\n {\n x: -3,\n y: -1,\n },\n {\n x: 2,\n y: -2,\n },\n {\n x: -2,\n y: -2,\n }\n );\n }\n }\n // Annex C. Gray-scale Image Decoding Procedure.\n const grayScaleBitPlanes = [];\n let mmrInput, bitmap;\n if (mmr) {\n // MMR bit planes are in one continuous stream. Only EOFB codes indicate\n // the end of each bitmap, so EOFBs must be decoded.\n mmrInput = new Reader(\n decodingContext.data,\n decodingContext.start,\n decodingContext.end\n );\n }\n for (i = bitsPerValue - 1; i >= 0; i--) {\n if (mmr) {\n bitmap = decodeMMRBitmap(mmrInput, gridWidth, gridHeight, true);\n } else {\n bitmap = decodeBitmap(\n false,\n gridWidth,\n gridHeight,\n template,\n false,\n skip,\n at,\n decodingContext\n );\n }\n grayScaleBitPlanes[i] = bitmap;\n }\n // 6.6.5.2 Rendering the patterns.\n let mg, ng, bit, patternIndex, patternBitmap, x, y, patternRow, regionRow;\n for (mg = 0; mg < gridHeight; mg++) {\n for (ng = 0; ng < gridWidth; ng++) {\n bit = 0;\n patternIndex = 0;\n for (j = bitsPerValue - 1; j >= 0; j--) {\n bit ^= grayScaleBitPlanes[j][mg][ng]; // Gray decoding\n patternIndex |= bit << j;\n }\n patternBitmap = patterns[patternIndex];\n x = (gridOffsetX + mg * gridVectorY + ng * gridVectorX) >> 8;\n y = (gridOffsetY + mg * gridVectorX - ng * gridVectorY) >> 8;\n // Draw patternBitmap at (x, y).\n if (\n x >= 0 &&\n x + patternWidth <= regionWidth &&\n y >= 0 &&\n y + patternHeight <= regionHeight\n ) {\n for (i = 0; i < patternHeight; i++) {\n regionRow = regionBitmap[y + i];\n patternRow = patternBitmap[i];\n for (j = 0; j < patternWidth; j++) {\n regionRow[x + j] |= patternRow[j];\n }\n }\n } else {\n let regionX, regionY;\n for (i = 0; i < patternHeight; i++) {\n regionY = y + i;\n if (regionY < 0 || regionY >= regionHeight) {\n continue;\n }\n regionRow = regionBitmap[regionY];\n patternRow = patternBitmap[i];\n for (j = 0; j < patternWidth; j++) {\n regionX = x + j;\n if (regionX >= 0 && regionX < regionWidth) {\n regionRow[regionX] |= patternRow[j];\n }\n }\n }\n }\n }\n }\n return regionBitmap;\n}\n\nfunction readSegmentHeader(data, start) {\n const segmentHeader = {};\n segmentHeader.number = readUint32(data, start);\n const flags = data[start + 4];\n const segmentType = flags & 0x3f;\n if (!SegmentTypes[segmentType]) {\n throw new Jbig2Error(\"invalid segment type: \" + segmentType);\n }\n segmentHeader.type = segmentType;\n segmentHeader.typeName = SegmentTypes[segmentType];\n segmentHeader.deferredNonRetain = !!(flags & 0x80);\n\n const pageAssociationFieldSize = !!(flags & 0x40);\n const referredFlags = data[start + 5];\n let referredToCount = (referredFlags >> 5) & 7;\n const retainBits = [referredFlags & 31];\n let position = start + 6;\n if (referredFlags === 7) {\n referredToCount = readUint32(data, position - 1) & 0x1fffffff;\n position += 3;\n let bytes = (referredToCount + 7) >> 3;\n retainBits[0] = data[position++];\n while (--bytes > 0) {\n retainBits.push(data[position++]);\n }\n } else if (referredFlags === 5 || referredFlags === 6) {\n throw new Jbig2Error(\"invalid referred-to flags\");\n }\n\n segmentHeader.retainBits = retainBits;\n\n let referredToSegmentNumberSize = 4;\n if (segmentHeader.number <= 256) {\n referredToSegmentNumberSize = 1;\n } else if (segmentHeader.number <= 65536) {\n referredToSegmentNumberSize = 2;\n }\n const referredTo = [];\n let i, ii;\n for (i = 0; i < referredToCount; i++) {\n let number;\n if (referredToSegmentNumberSize === 1) {\n number = data[position];\n } else if (referredToSegmentNumberSize === 2) {\n number = readUint16(data, position);\n } else {\n number = readUint32(data, position);\n }\n referredTo.push(number);\n position += referredToSegmentNumberSize;\n }\n segmentHeader.referredTo = referredTo;\n if (!pageAssociationFieldSize) {\n segmentHeader.pageAssociation = data[position++];\n } else {\n segmentHeader.pageAssociation = readUint32(data, position);\n position += 4;\n }\n segmentHeader.length = readUint32(data, position);\n position += 4;\n\n if (segmentHeader.length === 0xffffffff) {\n // 7.2.7 Segment data length, unknown segment length\n if (segmentType === 38) {\n // ImmediateGenericRegion\n const genericRegionInfo = readRegionSegmentInformation(data, position);\n const genericRegionSegmentFlags =\n data[position + RegionSegmentInformationFieldLength];\n const genericRegionMmr = !!(genericRegionSegmentFlags & 1);\n // searching for the segment end\n const searchPatternLength = 6;\n const searchPattern = new Uint8Array(searchPatternLength);\n if (!genericRegionMmr) {\n searchPattern[0] = 0xff;\n searchPattern[1] = 0xac;\n }\n searchPattern[2] = (genericRegionInfo.height >>> 24) & 0xff;\n searchPattern[3] = (genericRegionInfo.height >> 16) & 0xff;\n searchPattern[4] = (genericRegionInfo.height >> 8) & 0xff;\n searchPattern[5] = genericRegionInfo.height & 0xff;\n for (i = position, ii = data.length; i < ii; i++) {\n let j = 0;\n while (j < searchPatternLength && searchPattern[j] === data[i + j]) {\n j++;\n }\n if (j === searchPatternLength) {\n segmentHeader.length = i + searchPatternLength;\n break;\n }\n }\n if (segmentHeader.length === 0xffffffff) {\n throw new Jbig2Error(\"segment end was not found\");\n }\n } else {\n throw new Jbig2Error(\"invalid unknown segment length\");\n }\n }\n segmentHeader.headerEnd = position;\n return segmentHeader;\n}\n\nfunction readSegments(header, data, start, end) {\n const segments = [];\n let position = start;\n while (position < end) {\n const segmentHeader = readSegmentHeader(data, position);\n position = segmentHeader.headerEnd;\n const segment = {\n header: segmentHeader,\n data,\n };\n if (!header.randomAccess) {\n segment.start = position;\n position += segmentHeader.length;\n segment.end = position;\n }\n segments.push(segment);\n if (segmentHeader.type === 51) {\n break; // end of file is found\n }\n }\n if (header.randomAccess) {\n for (let i = 0, ii = segments.length; i < ii; i++) {\n segments[i].start = position;\n position += segments[i].header.length;\n segments[i].end = position;\n }\n }\n return segments;\n}\n\n// 7.4.1 Region segment information field\nfunction readRegionSegmentInformation(data, start) {\n return {\n width: readUint32(data, start),\n height: readUint32(data, start + 4),\n x: readUint32(data, start + 8),\n y: readUint32(data, start + 12),\n combinationOperator: data[start + 16] & 7,\n };\n}\nconst RegionSegmentInformationFieldLength = 17;\n\nfunction processSegment(segment, visitor) {\n const header = segment.header;\n\n const data = segment.data,\n end = segment.end;\n let position = segment.start;\n let args, at, i, atLength;\n switch (header.type) {\n case 0: // SymbolDictionary\n // 7.4.2 Symbol dictionary segment syntax\n const dictionary = {};\n const dictionaryFlags = readUint16(data, position); // 7.4.2.1.1\n dictionary.huffman = !!(dictionaryFlags & 1);\n dictionary.refinement = !!(dictionaryFlags & 2);\n dictionary.huffmanDHSelector = (dictionaryFlags >> 2) & 3;\n dictionary.huffmanDWSelector = (dictionaryFlags >> 4) & 3;\n dictionary.bitmapSizeSelector = (dictionaryFlags >> 6) & 1;\n dictionary.aggregationInstancesSelector = (dictionaryFlags >> 7) & 1;\n dictionary.bitmapCodingContextUsed = !!(dictionaryFlags & 256);\n dictionary.bitmapCodingContextRetained = !!(dictionaryFlags & 512);\n dictionary.template = (dictionaryFlags >> 10) & 3;\n dictionary.refinementTemplate = (dictionaryFlags >> 12) & 1;\n position += 2;\n if (!dictionary.huffman) {\n atLength = dictionary.template === 0 ? 4 : 1;\n at = [];\n for (i = 0; i < atLength; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n dictionary.at = at;\n }\n if (dictionary.refinement && !dictionary.refinementTemplate) {\n at = [];\n for (i = 0; i < 2; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n dictionary.refinementAt = at;\n }\n dictionary.numberOfExportedSymbols = readUint32(data, position);\n position += 4;\n dictionary.numberOfNewSymbols = readUint32(data, position);\n position += 4;\n args = [\n dictionary,\n header.number,\n header.referredTo,\n data,\n position,\n end,\n ];\n break;\n case 6: // ImmediateTextRegion\n case 7: // ImmediateLosslessTextRegion\n const textRegion = {};\n textRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n const textRegionSegmentFlags = readUint16(data, position);\n position += 2;\n textRegion.huffman = !!(textRegionSegmentFlags & 1);\n textRegion.refinement = !!(textRegionSegmentFlags & 2);\n textRegion.logStripSize = (textRegionSegmentFlags >> 2) & 3;\n textRegion.stripSize = 1 << textRegion.logStripSize;\n textRegion.referenceCorner = (textRegionSegmentFlags >> 4) & 3;\n textRegion.transposed = !!(textRegionSegmentFlags & 64);\n textRegion.combinationOperator = (textRegionSegmentFlags >> 7) & 3;\n textRegion.defaultPixelValue = (textRegionSegmentFlags >> 9) & 1;\n textRegion.dsOffset = (textRegionSegmentFlags << 17) >> 27;\n textRegion.refinementTemplate = (textRegionSegmentFlags >> 15) & 1;\n if (textRegion.huffman) {\n const textRegionHuffmanFlags = readUint16(data, position);\n position += 2;\n textRegion.huffmanFS = textRegionHuffmanFlags & 3;\n textRegion.huffmanDS = (textRegionHuffmanFlags >> 2) & 3;\n textRegion.huffmanDT = (textRegionHuffmanFlags >> 4) & 3;\n textRegion.huffmanRefinementDW = (textRegionHuffmanFlags >> 6) & 3;\n textRegion.huffmanRefinementDH = (textRegionHuffmanFlags >> 8) & 3;\n textRegion.huffmanRefinementDX = (textRegionHuffmanFlags >> 10) & 3;\n textRegion.huffmanRefinementDY = (textRegionHuffmanFlags >> 12) & 3;\n textRegion.huffmanRefinementSizeSelector = !!(\n textRegionHuffmanFlags & 0x4000\n );\n }\n if (textRegion.refinement && !textRegion.refinementTemplate) {\n at = [];\n for (i = 0; i < 2; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n textRegion.refinementAt = at;\n }\n textRegion.numberOfSymbolInstances = readUint32(data, position);\n position += 4;\n args = [textRegion, header.referredTo, data, position, end];\n break;\n case 16: // PatternDictionary\n // 7.4.4. Pattern dictionary segment syntax\n const patternDictionary = {};\n const patternDictionaryFlags = data[position++];\n patternDictionary.mmr = !!(patternDictionaryFlags & 1);\n patternDictionary.template = (patternDictionaryFlags >> 1) & 3;\n patternDictionary.patternWidth = data[position++];\n patternDictionary.patternHeight = data[position++];\n patternDictionary.maxPatternIndex = readUint32(data, position);\n position += 4;\n args = [patternDictionary, header.number, data, position, end];\n break;\n case 22: // ImmediateHalftoneRegion\n case 23: // ImmediateLosslessHalftoneRegion\n // 7.4.5 Halftone region segment syntax\n const halftoneRegion = {};\n halftoneRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n const halftoneRegionFlags = data[position++];\n halftoneRegion.mmr = !!(halftoneRegionFlags & 1);\n halftoneRegion.template = (halftoneRegionFlags >> 1) & 3;\n halftoneRegion.enableSkip = !!(halftoneRegionFlags & 8);\n halftoneRegion.combinationOperator = (halftoneRegionFlags >> 4) & 7;\n halftoneRegion.defaultPixelValue = (halftoneRegionFlags >> 7) & 1;\n halftoneRegion.gridWidth = readUint32(data, position);\n position += 4;\n halftoneRegion.gridHeight = readUint32(data, position);\n position += 4;\n halftoneRegion.gridOffsetX = readUint32(data, position) & 0xffffffff;\n position += 4;\n halftoneRegion.gridOffsetY = readUint32(data, position) & 0xffffffff;\n position += 4;\n halftoneRegion.gridVectorX = readUint16(data, position);\n position += 2;\n halftoneRegion.gridVectorY = readUint16(data, position);\n position += 2;\n args = [halftoneRegion, header.referredTo, data, position, end];\n break;\n case 38: // ImmediateGenericRegion\n case 39: // ImmediateLosslessGenericRegion\n const genericRegion = {};\n genericRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n const genericRegionSegmentFlags = data[position++];\n genericRegion.mmr = !!(genericRegionSegmentFlags & 1);\n genericRegion.template = (genericRegionSegmentFlags >> 1) & 3;\n genericRegion.prediction = !!(genericRegionSegmentFlags & 8);\n if (!genericRegion.mmr) {\n atLength = genericRegion.template === 0 ? 4 : 1;\n at = [];\n for (i = 0; i < atLength; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n genericRegion.at = at;\n }\n args = [genericRegion, data, position, end];\n break;\n case 48: // PageInformation\n const pageInfo = {\n width: readUint32(data, position),\n height: readUint32(data, position + 4),\n resolutionX: readUint32(data, position + 8),\n resolutionY: readUint32(data, position + 12),\n };\n if (pageInfo.height === 0xffffffff) {\n delete pageInfo.height;\n }\n const pageSegmentFlags = data[position + 16];\n readUint16(data, position + 17); // pageStripingInformation\n pageInfo.lossless = !!(pageSegmentFlags & 1);\n pageInfo.refinement = !!(pageSegmentFlags & 2);\n pageInfo.defaultPixelValue = (pageSegmentFlags >> 2) & 1;\n pageInfo.combinationOperator = (pageSegmentFlags >> 3) & 3;\n pageInfo.requiresBuffer = !!(pageSegmentFlags & 32);\n pageInfo.combinationOperatorOverride = !!(pageSegmentFlags & 64);\n args = [pageInfo];\n break;\n case 49: // EndOfPage\n break;\n case 50: // EndOfStripe\n break;\n case 51: // EndOfFile\n break;\n case 53: // Tables\n args = [header.number, data, position, end];\n break;\n case 62: // 7.4.15 defines 2 extension types which\n // are comments and can be ignored.\n break;\n default:\n throw new Jbig2Error(\n `segment type ${header.typeName}(${header.type})` +\n \" is not implemented\"\n );\n }\n const callbackName = \"on\" + header.typeName;\n if (callbackName in visitor) {\n visitor[callbackName].apply(visitor, args);\n }\n}\n\nfunction processSegments(segments, visitor) {\n for (let i = 0, ii = segments.length; i < ii; i++) {\n processSegment(segments[i], visitor);\n }\n}\n\nfunction parseJbig2Chunks(chunks) {\n const visitor = new SimpleSegmentVisitor();\n for (let i = 0, ii = chunks.length; i < ii; i++) {\n const chunk = chunks[i];\n const segments = readSegments({}, chunk.data, chunk.start, chunk.end);\n processSegments(segments, visitor);\n }\n return visitor.buffer;\n}\n\nfunction parseJbig2(data) {\n const end = data.length;\n let position = 0;\n\n if (\n data[position] !== 0x97 ||\n data[position + 1] !== 0x4a ||\n data[position + 2] !== 0x42 ||\n data[position + 3] !== 0x32 ||\n data[position + 4] !== 0x0d ||\n data[position + 5] !== 0x0a ||\n data[position + 6] !== 0x1a ||\n data[position + 7] !== 0x0a\n ) {\n throw new Jbig2Error(\"parseJbig2 - invalid header.\");\n }\n\n const header = Object.create(null);\n position += 8;\n const flags = data[position++];\n header.randomAccess = !(flags & 1);\n if (!(flags & 2)) {\n header.numberOfPages = readUint32(data, position);\n position += 4;\n }\n\n const segments = readSegments(header, data, position, end);\n const visitor = new SimpleSegmentVisitor();\n processSegments(segments, visitor);\n\n const { width, height } = visitor.currentPageInfo;\n const bitPacked = visitor.buffer;\n const imgData = new Uint8ClampedArray(width * height);\n let q = 0,\n k = 0;\n for (let i = 0; i < height; i++) {\n let mask = 0,\n buffer;\n for (let j = 0; j < width; j++) {\n if (!mask) {\n mask = 128;\n buffer = bitPacked[k++];\n }\n imgData[q++] = buffer & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n\n return { imgData, width, height };\n}\n\nclass SimpleSegmentVisitor {\n onPageInformation(info) {\n this.currentPageInfo = info;\n const rowSize = (info.width + 7) >> 3;\n const buffer = new Uint8ClampedArray(rowSize * info.height);\n // The contents of ArrayBuffers are initialized to 0.\n // Fill the buffer with 0xFF only if info.defaultPixelValue is set\n if (info.defaultPixelValue) {\n buffer.fill(0xff);\n }\n this.buffer = buffer;\n }\n\n drawBitmap(regionInfo, bitmap) {\n const pageInfo = this.currentPageInfo;\n const width = regionInfo.width,\n height = regionInfo.height;\n const rowSize = (pageInfo.width + 7) >> 3;\n const combinationOperator = pageInfo.combinationOperatorOverride\n ? regionInfo.combinationOperator\n : pageInfo.combinationOperator;\n const buffer = this.buffer;\n const mask0 = 128 >> (regionInfo.x & 7);\n let offset0 = regionInfo.y * rowSize + (regionInfo.x >> 3);\n let i, j, mask, offset;\n switch (combinationOperator) {\n case 0: // OR\n for (i = 0; i < height; i++) {\n mask = mask0;\n offset = offset0;\n for (j = 0; j < width; j++) {\n if (bitmap[i][j]) {\n buffer[offset] |= mask;\n }\n mask >>= 1;\n if (!mask) {\n mask = 128;\n offset++;\n }\n }\n offset0 += rowSize;\n }\n break;\n case 2: // XOR\n for (i = 0; i < height; i++) {\n mask = mask0;\n offset = offset0;\n for (j = 0; j < width; j++) {\n if (bitmap[i][j]) {\n buffer[offset] ^= mask;\n }\n mask >>= 1;\n if (!mask) {\n mask = 128;\n offset++;\n }\n }\n offset0 += rowSize;\n }\n break;\n default:\n throw new Jbig2Error(\n `operator ${combinationOperator} is not supported`\n );\n }\n }\n\n onImmediateGenericRegion(region, data, start, end) {\n const regionInfo = region.info;\n const decodingContext = new DecodingContext(data, start, end);\n const bitmap = decodeBitmap(\n region.mmr,\n regionInfo.width,\n regionInfo.height,\n region.template,\n region.prediction,\n null,\n region.at,\n decodingContext\n );\n this.drawBitmap(regionInfo, bitmap);\n }\n\n onImmediateLosslessGenericRegion() {\n this.onImmediateGenericRegion.apply(this, arguments);\n }\n\n onSymbolDictionary(\n dictionary,\n currentSegment,\n referredSegments,\n data,\n start,\n end\n ) {\n let huffmanTables, huffmanInput;\n if (dictionary.huffman) {\n huffmanTables = getSymbolDictionaryHuffmanTables(\n dictionary,\n referredSegments,\n this.customTables\n );\n huffmanInput = new Reader(data, start, end);\n }\n\n // Combines exported symbols from all referred segments\n let symbols = this.symbols;\n if (!symbols) {\n this.symbols = symbols = {};\n }\n\n let inputSymbols = [];\n for (let i = 0, ii = referredSegments.length; i < ii; i++) {\n const referredSymbols = symbols[referredSegments[i]];\n // referredSymbols is undefined when we have a reference to a Tables\n // segment instead of a SymbolDictionary.\n if (referredSymbols) {\n inputSymbols = inputSymbols.concat(referredSymbols);\n }\n }\n\n const decodingContext = new DecodingContext(data, start, end);\n symbols[currentSegment] = decodeSymbolDictionary(\n dictionary.huffman,\n dictionary.refinement,\n inputSymbols,\n dictionary.numberOfNewSymbols,\n dictionary.numberOfExportedSymbols,\n huffmanTables,\n dictionary.template,\n dictionary.at,\n dictionary.refinementTemplate,\n dictionary.refinementAt,\n decodingContext,\n huffmanInput\n );\n }\n\n onImmediateTextRegion(region, referredSegments, data, start, end) {\n const regionInfo = region.info;\n let huffmanTables, huffmanInput;\n\n // Combines exported symbols from all referred segments\n const symbols = this.symbols;\n let inputSymbols = [];\n for (let i = 0, ii = referredSegments.length; i < ii; i++) {\n const referredSymbols = symbols[referredSegments[i]];\n // referredSymbols is undefined when we have a reference to a Tables\n // segment instead of a SymbolDictionary.\n if (referredSymbols) {\n inputSymbols = inputSymbols.concat(referredSymbols);\n }\n }\n const symbolCodeLength = log2(inputSymbols.length);\n if (region.huffman) {\n huffmanInput = new Reader(data, start, end);\n huffmanTables = getTextRegionHuffmanTables(\n region,\n referredSegments,\n this.customTables,\n inputSymbols.length,\n huffmanInput\n );\n }\n\n const decodingContext = new DecodingContext(data, start, end);\n const bitmap = decodeTextRegion(\n region.huffman,\n region.refinement,\n regionInfo.width,\n regionInfo.height,\n region.defaultPixelValue,\n region.numberOfSymbolInstances,\n region.stripSize,\n inputSymbols,\n symbolCodeLength,\n region.transposed,\n region.dsOffset,\n region.referenceCorner,\n region.combinationOperator,\n huffmanTables,\n region.refinementTemplate,\n region.refinementAt,\n decodingContext,\n region.logStripSize,\n huffmanInput\n );\n this.drawBitmap(regionInfo, bitmap);\n }\n\n onImmediateLosslessTextRegion() {\n this.onImmediateTextRegion.apply(this, arguments);\n }\n\n onPatternDictionary(dictionary, currentSegment, data, start, end) {\n let patterns = this.patterns;\n if (!patterns) {\n this.patterns = patterns = {};\n }\n const decodingContext = new DecodingContext(data, start, end);\n patterns[currentSegment] = decodePatternDictionary(\n dictionary.mmr,\n dictionary.patternWidth,\n dictionary.patternHeight,\n dictionary.maxPatternIndex,\n dictionary.template,\n decodingContext\n );\n }\n\n onImmediateHalftoneRegion(region, referredSegments, data, start, end) {\n // HalftoneRegion refers to exactly one PatternDictionary.\n const patterns = this.patterns[referredSegments[0]];\n const regionInfo = region.info;\n const decodingContext = new DecodingContext(data, start, end);\n const bitmap = decodeHalftoneRegion(\n region.mmr,\n patterns,\n region.template,\n regionInfo.width,\n regionInfo.height,\n region.defaultPixelValue,\n region.enableSkip,\n region.combinationOperator,\n region.gridWidth,\n region.gridHeight,\n region.gridOffsetX,\n region.gridOffsetY,\n region.gridVectorX,\n region.gridVectorY,\n decodingContext\n );\n this.drawBitmap(regionInfo, bitmap);\n }\n\n onImmediateLosslessHalftoneRegion() {\n this.onImmediateHalftoneRegion.apply(this, arguments);\n }\n\n onTables(currentSegment, data, start, end) {\n let customTables = this.customTables;\n if (!customTables) {\n this.customTables = customTables = {};\n }\n customTables[currentSegment] = decodeTablesSegment(data, start, end);\n }\n}\n\nclass HuffmanLine {\n constructor(lineData) {\n if (lineData.length === 2) {\n // OOB line.\n this.isOOB = true;\n this.rangeLow = 0;\n this.prefixLength = lineData[0];\n this.rangeLength = 0;\n this.prefixCode = lineData[1];\n this.isLowerRange = false;\n } else {\n // Normal, upper range or lower range line.\n // Upper range lines are processed like normal lines.\n this.isOOB = false;\n this.rangeLow = lineData[0];\n this.prefixLength = lineData[1];\n this.rangeLength = lineData[2];\n this.prefixCode = lineData[3];\n this.isLowerRange = lineData[4] === \"lower\";\n }\n }\n}\n\nclass HuffmanTreeNode {\n constructor(line) {\n this.children = [];\n if (line) {\n // Leaf node\n this.isLeaf = true;\n this.rangeLength = line.rangeLength;\n this.rangeLow = line.rangeLow;\n this.isLowerRange = line.isLowerRange;\n this.isOOB = line.isOOB;\n } else {\n // Intermediate or root node\n this.isLeaf = false;\n }\n }\n\n buildTree(line, shift) {\n const bit = (line.prefixCode >> shift) & 1;\n if (shift <= 0) {\n // Create a leaf node.\n this.children[bit] = new HuffmanTreeNode(line);\n } else {\n // Create an intermediate node and continue recursively.\n let node = this.children[bit];\n if (!node) {\n this.children[bit] = node = new HuffmanTreeNode(null);\n }\n node.buildTree(line, shift - 1);\n }\n }\n\n decodeNode(reader) {\n if (this.isLeaf) {\n if (this.isOOB) {\n return null;\n }\n const htOffset = reader.readBits(this.rangeLength);\n return this.rangeLow + (this.isLowerRange ? -htOffset : htOffset);\n }\n const node = this.children[reader.readBit()];\n if (!node) {\n throw new Jbig2Error(\"invalid Huffman data\");\n }\n return node.decodeNode(reader);\n }\n}\n\nclass HuffmanTable {\n constructor(lines, prefixCodesDone) {\n if (!prefixCodesDone) {\n this.assignPrefixCodes(lines);\n }\n // Create Huffman tree.\n this.rootNode = new HuffmanTreeNode(null);\n for (let i = 0, ii = lines.length; i < ii; i++) {\n const line = lines[i];\n if (line.prefixLength > 0) {\n this.rootNode.buildTree(line, line.prefixLength - 1);\n }\n }\n }\n\n decode(reader) {\n return this.rootNode.decodeNode(reader);\n }\n\n assignPrefixCodes(lines) {\n // Annex B.3 Assigning the prefix codes.\n const linesLength = lines.length;\n let prefixLengthMax = 0;\n for (let i = 0; i < linesLength; i++) {\n prefixLengthMax = Math.max(prefixLengthMax, lines[i].prefixLength);\n }\n\n const histogram = new Uint32Array(prefixLengthMax + 1);\n for (let i = 0; i < linesLength; i++) {\n histogram[lines[i].prefixLength]++;\n }\n let currentLength = 1,\n firstCode = 0,\n currentCode,\n currentTemp,\n line;\n histogram[0] = 0;\n\n while (currentLength <= prefixLengthMax) {\n firstCode = (firstCode + histogram[currentLength - 1]) << 1;\n currentCode = firstCode;\n currentTemp = 0;\n while (currentTemp < linesLength) {\n line = lines[currentTemp];\n if (line.prefixLength === currentLength) {\n line.prefixCode = currentCode;\n currentCode++;\n }\n currentTemp++;\n }\n currentLength++;\n }\n }\n}\n\nfunction decodeTablesSegment(data, start, end) {\n // Decodes a Tables segment, i.e., a custom Huffman table.\n // Annex B.2 Code table structure.\n const flags = data[start];\n const lowestValue = readUint32(data, start + 1) & 0xffffffff;\n const highestValue = readUint32(data, start + 5) & 0xffffffff;\n const reader = new Reader(data, start + 9, end);\n\n const prefixSizeBits = ((flags >> 1) & 7) + 1;\n const rangeSizeBits = ((flags >> 4) & 7) + 1;\n const lines = [];\n let prefixLength,\n rangeLength,\n currentRangeLow = lowestValue;\n\n // Normal table lines\n do {\n prefixLength = reader.readBits(prefixSizeBits);\n rangeLength = reader.readBits(rangeSizeBits);\n lines.push(\n new HuffmanLine([currentRangeLow, prefixLength, rangeLength, 0])\n );\n currentRangeLow += 1 << rangeLength;\n } while (currentRangeLow < highestValue);\n\n // Lower range table line\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([lowestValue - 1, prefixLength, 32, 0, \"lower\"]));\n\n // Upper range table line\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([highestValue, prefixLength, 32, 0]));\n\n if (flags & 1) {\n // Out-of-band table line\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([prefixLength, 0]));\n }\n\n return new HuffmanTable(lines, false);\n}\n\nconst standardTablesCache = {};\n\nfunction getStandardTable(number) {\n // Annex B.5 Standard Huffman tables.\n let table = standardTablesCache[number];\n if (table) {\n return table;\n }\n let lines;\n switch (number) {\n case 1:\n lines = [\n [0, 1, 4, 0x0],\n [16, 2, 8, 0x2],\n [272, 3, 16, 0x6],\n [65808, 3, 32, 0x7], // upper\n ];\n break;\n case 2:\n lines = [\n [0, 1, 0, 0x0],\n [1, 2, 0, 0x2],\n [2, 3, 0, 0x6],\n [3, 4, 3, 0xe],\n [11, 5, 6, 0x1e],\n [75, 6, 32, 0x3e], // upper\n [6, 0x3f], // OOB\n ];\n break;\n case 3:\n lines = [\n [-256, 8, 8, 0xfe],\n [0, 1, 0, 0x0],\n [1, 2, 0, 0x2],\n [2, 3, 0, 0x6],\n [3, 4, 3, 0xe],\n [11, 5, 6, 0x1e],\n [-257, 8, 32, 0xff, \"lower\"],\n [75, 7, 32, 0x7e], // upper\n [6, 0x3e], // OOB\n ];\n break;\n case 4:\n lines = [\n [1, 1, 0, 0x0],\n [2, 2, 0, 0x2],\n [3, 3, 0, 0x6],\n [4, 4, 3, 0xe],\n [12, 5, 6, 0x1e],\n [76, 5, 32, 0x1f], // upper\n ];\n break;\n case 5:\n lines = [\n [-255, 7, 8, 0x7e],\n [1, 1, 0, 0x0],\n [2, 2, 0, 0x2],\n [3, 3, 0, 0x6],\n [4, 4, 3, 0xe],\n [12, 5, 6, 0x1e],\n [-256, 7, 32, 0x7f, \"lower\"],\n [76, 6, 32, 0x3e], // upper\n ];\n break;\n case 6:\n lines = [\n [-2048, 5, 10, 0x1c],\n [-1024, 4, 9, 0x8],\n [-512, 4, 8, 0x9],\n [-256, 4, 7, 0xa],\n [-128, 5, 6, 0x1d],\n [-64, 5, 5, 0x1e],\n [-32, 4, 5, 0xb],\n [0, 2, 7, 0x0],\n [128, 3, 7, 0x2],\n [256, 3, 8, 0x3],\n [512, 4, 9, 0xc],\n [1024, 4, 10, 0xd],\n [-2049, 6, 32, 0x3e, \"lower\"],\n [2048, 6, 32, 0x3f], // upper\n ];\n break;\n case 7:\n lines = [\n [-1024, 4, 9, 0x8],\n [-512, 3, 8, 0x0],\n [-256, 4, 7, 0x9],\n [-128, 5, 6, 0x1a],\n [-64, 5, 5, 0x1b],\n [-32, 4, 5, 0xa],\n [0, 4, 5, 0xb],\n [32, 5, 5, 0x1c],\n [64, 5, 6, 0x1d],\n [128, 4, 7, 0xc],\n [256, 3, 8, 0x1],\n [512, 3, 9, 0x2],\n [1024, 3, 10, 0x3],\n [-1025, 5, 32, 0x1e, \"lower\"],\n [2048, 5, 32, 0x1f], // upper\n ];\n break;\n case 8:\n lines = [\n [-15, 8, 3, 0xfc],\n [-7, 9, 1, 0x1fc],\n [-5, 8, 1, 0xfd],\n [-3, 9, 0, 0x1fd],\n [-2, 7, 0, 0x7c],\n [-1, 4, 0, 0xa],\n [0, 2, 1, 0x0],\n [2, 5, 0, 0x1a],\n [3, 6, 0, 0x3a],\n [4, 3, 4, 0x4],\n [20, 6, 1, 0x3b],\n [22, 4, 4, 0xb],\n [38, 4, 5, 0xc],\n [70, 5, 6, 0x1b],\n [134, 5, 7, 0x1c],\n [262, 6, 7, 0x3c],\n [390, 7, 8, 0x7d],\n [646, 6, 10, 0x3d],\n [-16, 9, 32, 0x1fe, \"lower\"],\n [1670, 9, 32, 0x1ff], // upper\n [2, 0x1], // OOB\n ];\n break;\n case 9:\n lines = [\n [-31, 8, 4, 0xfc],\n [-15, 9, 2, 0x1fc],\n [-11, 8, 2, 0xfd],\n [-7, 9, 1, 0x1fd],\n [-5, 7, 1, 0x7c],\n [-3, 4, 1, 0xa],\n [-1, 3, 1, 0x2],\n [1, 3, 1, 0x3],\n [3, 5, 1, 0x1a],\n [5, 6, 1, 0x3a],\n [7, 3, 5, 0x4],\n [39, 6, 2, 0x3b],\n [43, 4, 5, 0xb],\n [75, 4, 6, 0xc],\n [139, 5, 7, 0x1b],\n [267, 5, 8, 0x1c],\n [523, 6, 8, 0x3c],\n [779, 7, 9, 0x7d],\n [1291, 6, 11, 0x3d],\n [-32, 9, 32, 0x1fe, \"lower\"],\n [3339, 9, 32, 0x1ff], // upper\n [2, 0x0], // OOB\n ];\n break;\n case 10:\n lines = [\n [-21, 7, 4, 0x7a],\n [-5, 8, 0, 0xfc],\n [-4, 7, 0, 0x7b],\n [-3, 5, 0, 0x18],\n [-2, 2, 2, 0x0],\n [2, 5, 0, 0x19],\n [3, 6, 0, 0x36],\n [4, 7, 0, 0x7c],\n [5, 8, 0, 0xfd],\n [6, 2, 6, 0x1],\n [70, 5, 5, 0x1a],\n [102, 6, 5, 0x37],\n [134, 6, 6, 0x38],\n [198, 6, 7, 0x39],\n [326, 6, 8, 0x3a],\n [582, 6, 9, 0x3b],\n [1094, 6, 10, 0x3c],\n [2118, 7, 11, 0x7d],\n [-22, 8, 32, 0xfe, \"lower\"],\n [4166, 8, 32, 0xff], // upper\n [2, 0x2], // OOB\n ];\n break;\n case 11:\n lines = [\n [1, 1, 0, 0x0],\n [2, 2, 1, 0x2],\n [4, 4, 0, 0xc],\n [5, 4, 1, 0xd],\n [7, 5, 1, 0x1c],\n [9, 5, 2, 0x1d],\n [13, 6, 2, 0x3c],\n [17, 7, 2, 0x7a],\n [21, 7, 3, 0x7b],\n [29, 7, 4, 0x7c],\n [45, 7, 5, 0x7d],\n [77, 7, 6, 0x7e],\n [141, 7, 32, 0x7f], // upper\n ];\n break;\n case 12:\n lines = [\n [1, 1, 0, 0x0],\n [2, 2, 0, 0x2],\n [3, 3, 1, 0x6],\n [5, 5, 0, 0x1c],\n [6, 5, 1, 0x1d],\n [8, 6, 1, 0x3c],\n [10, 7, 0, 0x7a],\n [11, 7, 1, 0x7b],\n [13, 7, 2, 0x7c],\n [17, 7, 3, 0x7d],\n [25, 7, 4, 0x7e],\n [41, 8, 5, 0xfe],\n [73, 8, 32, 0xff], // upper\n ];\n break;\n case 13:\n lines = [\n [1, 1, 0, 0x0],\n [2, 3, 0, 0x4],\n [3, 4, 0, 0xc],\n [4, 5, 0, 0x1c],\n [5, 4, 1, 0xd],\n [7, 3, 3, 0x5],\n [15, 6, 1, 0x3a],\n [17, 6, 2, 0x3b],\n [21, 6, 3, 0x3c],\n [29, 6, 4, 0x3d],\n [45, 6, 5, 0x3e],\n [77, 7, 6, 0x7e],\n [141, 7, 32, 0x7f], // upper\n ];\n break;\n case 14:\n lines = [\n [-2, 3, 0, 0x4],\n [-1, 3, 0, 0x5],\n [0, 1, 0, 0x0],\n [1, 3, 0, 0x6],\n [2, 3, 0, 0x7],\n ];\n break;\n case 15:\n lines = [\n [-24, 7, 4, 0x7c],\n [-8, 6, 2, 0x3c],\n [-4, 5, 1, 0x1c],\n [-2, 4, 0, 0xc],\n [-1, 3, 0, 0x4],\n [0, 1, 0, 0x0],\n [1, 3, 0, 0x5],\n [2, 4, 0, 0xd],\n [3, 5, 1, 0x1d],\n [5, 6, 2, 0x3d],\n [9, 7, 4, 0x7d],\n [-25, 7, 32, 0x7e, \"lower\"],\n [25, 7, 32, 0x7f], // upper\n ];\n break;\n default:\n throw new Jbig2Error(`standard table B.${number} does not exist`);\n }\n\n for (let i = 0, ii = lines.length; i < ii; i++) {\n lines[i] = new HuffmanLine(lines[i]);\n }\n table = new HuffmanTable(lines, true);\n standardTablesCache[number] = table;\n return table;\n}\n\nclass Reader {\n constructor(data, start, end) {\n this.data = data;\n this.start = start;\n this.end = end;\n this.position = start;\n this.shift = -1;\n this.currentByte = 0;\n }\n\n readBit() {\n if (this.shift < 0) {\n if (this.position >= this.end) {\n throw new Jbig2Error(\"end of data while reading bit\");\n }\n this.currentByte = this.data[this.position++];\n this.shift = 7;\n }\n const bit = (this.currentByte >> this.shift) & 1;\n this.shift--;\n return bit;\n }\n\n readBits(numBits) {\n let result = 0,\n i;\n for (i = numBits - 1; i >= 0; i--) {\n result |= this.readBit() << i;\n }\n return result;\n }\n\n byteAlign() {\n this.shift = -1;\n }\n\n next() {\n if (this.position >= this.end) {\n return -1;\n }\n return this.data[this.position++];\n }\n}\n\nfunction getCustomHuffmanTable(index, referredTo, customTables) {\n // Returns a Tables segment that has been earlier decoded.\n // See 7.4.2.1.6 (symbol dictionary) or 7.4.3.1.6 (text region).\n let currentIndex = 0;\n for (let i = 0, ii = referredTo.length; i < ii; i++) {\n const table = customTables[referredTo[i]];\n if (table) {\n if (index === currentIndex) {\n return table;\n }\n currentIndex++;\n }\n }\n throw new Jbig2Error(\"can't find custom Huffman table\");\n}\n\nfunction getTextRegionHuffmanTables(\n textRegion,\n referredTo,\n customTables,\n numberOfSymbols,\n reader\n) {\n // 7.4.3.1.7 Symbol ID Huffman table decoding\n\n // Read code lengths for RUNCODEs 0...34.\n const codes = [];\n for (let i = 0; i <= 34; i++) {\n const codeLength = reader.readBits(4);\n codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n }\n // Assign Huffman codes for RUNCODEs.\n const runCodesTable = new HuffmanTable(codes, false);\n\n // Read a Huffman code using the assignment above.\n // Interpret the RUNCODE codes and the additional bits (if any).\n codes.length = 0;\n for (let i = 0; i < numberOfSymbols; ) {\n const codeLength = runCodesTable.decode(reader);\n if (codeLength >= 32) {\n let repeatedLength, numberOfRepeats, j;\n switch (codeLength) {\n case 32:\n if (i === 0) {\n throw new Jbig2Error(\"no previous value in symbol ID table\");\n }\n numberOfRepeats = reader.readBits(2) + 3;\n repeatedLength = codes[i - 1].prefixLength;\n break;\n case 33:\n numberOfRepeats = reader.readBits(3) + 3;\n repeatedLength = 0;\n break;\n case 34:\n numberOfRepeats = reader.readBits(7) + 11;\n repeatedLength = 0;\n break;\n default:\n throw new Jbig2Error(\"invalid code length in symbol ID table\");\n }\n for (j = 0; j < numberOfRepeats; j++) {\n codes.push(new HuffmanLine([i, repeatedLength, 0, 0]));\n i++;\n }\n } else {\n codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n i++;\n }\n }\n reader.byteAlign();\n const symbolIDTable = new HuffmanTable(codes, false);\n\n // 7.4.3.1.6 Text region segment Huffman table selection\n\n let customIndex = 0,\n tableFirstS,\n tableDeltaS,\n tableDeltaT;\n\n switch (textRegion.huffmanFS) {\n case 0:\n case 1:\n tableFirstS = getStandardTable(textRegion.huffmanFS + 6);\n break;\n case 3:\n tableFirstS = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman FS selector\");\n }\n\n switch (textRegion.huffmanDS) {\n case 0:\n case 1:\n case 2:\n tableDeltaS = getStandardTable(textRegion.huffmanDS + 8);\n break;\n case 3:\n tableDeltaS = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman DS selector\");\n }\n\n switch (textRegion.huffmanDT) {\n case 0:\n case 1:\n case 2:\n tableDeltaT = getStandardTable(textRegion.huffmanDT + 11);\n break;\n case 3:\n tableDeltaT = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman DT selector\");\n }\n\n if (textRegion.refinement) {\n // Load tables RDW, RDH, RDX and RDY.\n throw new Jbig2Error(\"refinement with Huffman is not supported\");\n }\n\n return {\n symbolIDTable,\n tableFirstS,\n tableDeltaS,\n tableDeltaT,\n };\n}\n\nfunction getSymbolDictionaryHuffmanTables(\n dictionary,\n referredTo,\n customTables\n) {\n // 7.4.2.1.6 Symbol dictionary segment Huffman table selection\n\n let customIndex = 0,\n tableDeltaHeight,\n tableDeltaWidth;\n switch (dictionary.huffmanDHSelector) {\n case 0:\n case 1:\n tableDeltaHeight = getStandardTable(dictionary.huffmanDHSelector + 4);\n break;\n case 3:\n tableDeltaHeight = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman DH selector\");\n }\n\n switch (dictionary.huffmanDWSelector) {\n case 0:\n case 1:\n tableDeltaWidth = getStandardTable(dictionary.huffmanDWSelector + 2);\n break;\n case 3:\n tableDeltaWidth = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman DW selector\");\n }\n\n let tableBitmapSize, tableAggregateInstances;\n if (dictionary.bitmapSizeSelector) {\n tableBitmapSize = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n } else {\n tableBitmapSize = getStandardTable(1);\n }\n\n if (dictionary.aggregationInstancesSelector) {\n tableAggregateInstances = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n } else {\n tableAggregateInstances = getStandardTable(1);\n }\n\n return {\n tableDeltaHeight,\n tableDeltaWidth,\n tableBitmapSize,\n tableAggregateInstances,\n };\n}\n\nfunction readUncompressedBitmap(reader, width, height) {\n const bitmap = [];\n for (let y = 0; y < height; y++) {\n const row = new Uint8Array(width);\n bitmap.push(row);\n for (let x = 0; x < width; x++) {\n row[x] = reader.readBit();\n }\n reader.byteAlign();\n }\n return bitmap;\n}\n\nfunction decodeMMRBitmap(input, width, height, endOfBlock) {\n // MMR is the same compression algorithm as the PDF filter\n // CCITTFaxDecode with /K -1.\n const params = {\n K: -1,\n Columns: width,\n Rows: height,\n BlackIs1: true,\n EndOfBlock: endOfBlock,\n };\n const decoder = new CCITTFaxDecoder(input, params);\n const bitmap = [];\n let currentByte,\n eof = false;\n\n for (let y = 0; y < height; y++) {\n const row = new Uint8Array(width);\n bitmap.push(row);\n let shift = -1;\n for (let x = 0; x < width; x++) {\n if (shift < 0) {\n currentByte = decoder.readNextChar();\n if (currentByte === -1) {\n // Set the rest of the bits to zero.\n currentByte = 0;\n eof = true;\n }\n shift = 7;\n }\n row[x] = (currentByte >> shift) & 1;\n shift--;\n }\n }\n\n if (endOfBlock && !eof) {\n // Read until EOFB has been consumed.\n const lookForEOFLimit = 5;\n for (let i = 0; i < lookForEOFLimit; i++) {\n if (decoder.readNextChar() === -1) {\n break;\n }\n }\n }\n\n return bitmap;\n}\n\nclass Jbig2Image {\n parseChunks(chunks) {\n return parseJbig2Chunks(chunks);\n }\n\n parse(data) {\n const { imgData, width, height } = parseJbig2(data);\n this.width = width;\n this.height = height;\n return imgData;\n }\n}\n\nexport { Jbig2Image };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Table C-2\nconst QeTable = [\n { qe: 0x5601, nmps: 1, nlps: 1, switchFlag: 1 },\n { qe: 0x3401, nmps: 2, nlps: 6, switchFlag: 0 },\n { qe: 0x1801, nmps: 3, nlps: 9, switchFlag: 0 },\n { qe: 0x0ac1, nmps: 4, nlps: 12, switchFlag: 0 },\n { qe: 0x0521, nmps: 5, nlps: 29, switchFlag: 0 },\n { qe: 0x0221, nmps: 38, nlps: 33, switchFlag: 0 },\n { qe: 0x5601, nmps: 7, nlps: 6, switchFlag: 1 },\n { qe: 0x5401, nmps: 8, nlps: 14, switchFlag: 0 },\n { qe: 0x4801, nmps: 9, nlps: 14, switchFlag: 0 },\n { qe: 0x3801, nmps: 10, nlps: 14, switchFlag: 0 },\n { qe: 0x3001, nmps: 11, nlps: 17, switchFlag: 0 },\n { qe: 0x2401, nmps: 12, nlps: 18, switchFlag: 0 },\n { qe: 0x1c01, nmps: 13, nlps: 20, switchFlag: 0 },\n { qe: 0x1601, nmps: 29, nlps: 21, switchFlag: 0 },\n { qe: 0x5601, nmps: 15, nlps: 14, switchFlag: 1 },\n { qe: 0x5401, nmps: 16, nlps: 14, switchFlag: 0 },\n { qe: 0x5101, nmps: 17, nlps: 15, switchFlag: 0 },\n { qe: 0x4801, nmps: 18, nlps: 16, switchFlag: 0 },\n { qe: 0x3801, nmps: 19, nlps: 17, switchFlag: 0 },\n { qe: 0x3401, nmps: 20, nlps: 18, switchFlag: 0 },\n { qe: 0x3001, nmps: 21, nlps: 19, switchFlag: 0 },\n { qe: 0x2801, nmps: 22, nlps: 19, switchFlag: 0 },\n { qe: 0x2401, nmps: 23, nlps: 20, switchFlag: 0 },\n { qe: 0x2201, nmps: 24, nlps: 21, switchFlag: 0 },\n { qe: 0x1c01, nmps: 25, nlps: 22, switchFlag: 0 },\n { qe: 0x1801, nmps: 26, nlps: 23, switchFlag: 0 },\n { qe: 0x1601, nmps: 27, nlps: 24, switchFlag: 0 },\n { qe: 0x1401, nmps: 28, nlps: 25, switchFlag: 0 },\n { qe: 0x1201, nmps: 29, nlps: 26, switchFlag: 0 },\n { qe: 0x1101, nmps: 30, nlps: 27, switchFlag: 0 },\n { qe: 0x0ac1, nmps: 31, nlps: 28, switchFlag: 0 },\n { qe: 0x09c1, nmps: 32, nlps: 29, switchFlag: 0 },\n { qe: 0x08a1, nmps: 33, nlps: 30, switchFlag: 0 },\n { qe: 0x0521, nmps: 34, nlps: 31, switchFlag: 0 },\n { qe: 0x0441, nmps: 35, nlps: 32, switchFlag: 0 },\n { qe: 0x02a1, nmps: 36, nlps: 33, switchFlag: 0 },\n { qe: 0x0221, nmps: 37, nlps: 34, switchFlag: 0 },\n { qe: 0x0141, nmps: 38, nlps: 35, switchFlag: 0 },\n { qe: 0x0111, nmps: 39, nlps: 36, switchFlag: 0 },\n { qe: 0x0085, nmps: 40, nlps: 37, switchFlag: 0 },\n { qe: 0x0049, nmps: 41, nlps: 38, switchFlag: 0 },\n { qe: 0x0025, nmps: 42, nlps: 39, switchFlag: 0 },\n { qe: 0x0015, nmps: 43, nlps: 40, switchFlag: 0 },\n { qe: 0x0009, nmps: 44, nlps: 41, switchFlag: 0 },\n { qe: 0x0005, nmps: 45, nlps: 42, switchFlag: 0 },\n { qe: 0x0001, nmps: 45, nlps: 43, switchFlag: 0 },\n { qe: 0x5601, nmps: 46, nlps: 46, switchFlag: 0 },\n];\n\n/**\n * This class implements the QM Coder decoding as defined in\n * JPEG 2000 Part I Final Committee Draft Version 1.0\n * Annex C.3 Arithmetic decoding procedure\n * available at http://www.jpeg.org/public/fcd15444-1.pdf\n *\n * The arithmetic decoder is used in conjunction with context models to decode\n * JPEG2000 and JBIG2 streams.\n */\nclass ArithmeticDecoder {\n // C.3.5 Initialisation of the decoder (INITDEC)\n constructor(data, start, end) {\n this.data = data;\n this.bp = start;\n this.dataEnd = end;\n\n this.chigh = data[start];\n this.clow = 0;\n\n this.byteIn();\n\n this.chigh = ((this.chigh << 7) & 0xffff) | ((this.clow >> 9) & 0x7f);\n this.clow = (this.clow << 7) & 0xffff;\n this.ct -= 7;\n this.a = 0x8000;\n }\n\n // C.3.4 Compressed data input (BYTEIN)\n byteIn() {\n const data = this.data;\n let bp = this.bp;\n\n if (data[bp] === 0xff) {\n if (data[bp + 1] > 0x8f) {\n this.clow += 0xff00;\n this.ct = 8;\n } else {\n bp++;\n this.clow += data[bp] << 9;\n this.ct = 7;\n this.bp = bp;\n }\n } else {\n bp++;\n this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xff00;\n this.ct = 8;\n this.bp = bp;\n }\n if (this.clow > 0xffff) {\n this.chigh += this.clow >> 16;\n this.clow &= 0xffff;\n }\n }\n\n // C.3.2 Decoding a decision (DECODE)\n readBit(contexts, pos) {\n // Contexts are packed into 1 byte:\n // highest 7 bits carry cx.index, lowest bit carries cx.mps\n let cx_index = contexts[pos] >> 1,\n cx_mps = contexts[pos] & 1;\n const qeTableIcx = QeTable[cx_index];\n const qeIcx = qeTableIcx.qe;\n let d;\n let a = this.a - qeIcx;\n\n if (this.chigh < qeIcx) {\n // exchangeLps\n if (a < qeIcx) {\n a = qeIcx;\n d = cx_mps;\n cx_index = qeTableIcx.nmps;\n } else {\n a = qeIcx;\n d = 1 ^ cx_mps;\n if (qeTableIcx.switchFlag === 1) {\n cx_mps = d;\n }\n cx_index = qeTableIcx.nlps;\n }\n } else {\n this.chigh -= qeIcx;\n if ((a & 0x8000) !== 0) {\n this.a = a;\n return cx_mps;\n }\n // exchangeMps\n if (a < qeIcx) {\n d = 1 ^ cx_mps;\n if (qeTableIcx.switchFlag === 1) {\n cx_mps = d;\n }\n cx_index = qeTableIcx.nlps;\n } else {\n d = cx_mps;\n cx_index = qeTableIcx.nmps;\n }\n }\n // C.3.3 renormD;\n do {\n if (this.ct === 0) {\n this.byteIn();\n }\n\n a <<= 1;\n this.chigh = ((this.chigh << 1) & 0xffff) | ((this.clow >> 15) & 1);\n this.clow = (this.clow << 1) & 0xffff;\n this.ct--;\n } while ((a & 0x8000) === 0);\n this.a = a;\n\n contexts[pos] = (cx_index << 1) | cx_mps;\n return d;\n }\n}\n\nexport { ArithmeticDecoder };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { Dict } from \"./primitives.js\";\nimport { JpegImage } from \"./jpg.js\";\nimport { shadow } from \"../shared/util.js\";\n\n/**\n * For JPEG's we use a library to decode these images and the stream behaves\n * like all the other DecodeStreams.\n */\nclass JpegStream extends DecodeStream {\n constructor(stream, maybeLength, params) {\n // Some images may contain 'junk' before the SOI (start-of-image) marker.\n // Note: this seems to mainly affect inline images.\n let ch;\n while ((ch = stream.getByte()) !== -1) {\n // Find the first byte of the SOI marker (0xFFD8).\n if (ch === 0xff) {\n stream.skip(-1); // Reset the stream position to the SOI.\n break;\n }\n }\n super(maybeLength);\n\n this.stream = stream;\n this.dict = stream.dict;\n this.maybeLength = maybeLength;\n this.params = params;\n }\n\n get bytes() {\n // If `this.maybeLength` is null, we'll get the entire stream.\n return shadow(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n }\n\n ensureBuffer(requested) {\n // No-op, since `this.readBlock` will always parse the entire image and\n // directly insert all of its data into `this.buffer`.\n }\n\n readBlock() {\n if (this.eof) {\n return;\n }\n const jpegOptions = {\n decodeTransform: undefined,\n colorTransform: undefined,\n };\n\n // Checking if values need to be transformed before conversion.\n const decodeArr = this.dict.getArray(\"D\", \"Decode\");\n if (this.forceRGB && Array.isArray(decodeArr)) {\n const bitsPerComponent = this.dict.get(\"BPC\", \"BitsPerComponent\") || 8;\n const decodeArrLength = decodeArr.length;\n const transform = new Int32Array(decodeArrLength);\n let transformNeeded = false;\n const maxValue = (1 << bitsPerComponent) - 1;\n for (let i = 0; i < decodeArrLength; i += 2) {\n transform[i] = ((decodeArr[i + 1] - decodeArr[i]) * 256) | 0;\n transform[i + 1] = (decodeArr[i] * maxValue) | 0;\n if (transform[i] !== 256 || transform[i + 1] !== 0) {\n transformNeeded = true;\n }\n }\n if (transformNeeded) {\n jpegOptions.decodeTransform = transform;\n }\n }\n // Fetching the 'ColorTransform' entry, if it exists.\n if (this.params instanceof Dict) {\n const colorTransform = this.params.get(\"ColorTransform\");\n if (Number.isInteger(colorTransform)) {\n jpegOptions.colorTransform = colorTransform;\n }\n }\n const jpegImage = new JpegImage(jpegOptions);\n\n jpegImage.parse(this.bytes);\n const data = jpegImage.getData({\n width: this.drawWidth,\n height: this.drawHeight,\n forceRGB: this.forceRGB,\n isSourcePDF: true,\n });\n this.buffer = data;\n this.bufferLength = data.length;\n this.eof = true;\n }\n}\n\nexport { JpegStream };\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, BaseException, warn } from \"../shared/util.js\";\nimport { readUint16 } from \"./core_utils.js\";\n\nclass JpegError extends BaseException {\n constructor(msg) {\n super(`JPEG error: ${msg}`, \"JpegError\");\n }\n}\n\nclass DNLMarkerError extends BaseException {\n constructor(message, scanLines) {\n super(message, \"DNLMarkerError\");\n this.scanLines = scanLines;\n }\n}\n\nclass EOIMarkerError extends BaseException {\n constructor(msg) {\n super(msg, \"EOIMarkerError\");\n }\n}\n\n/**\n * This code was forked from https://github.com/notmasteryet/jpgjs.\n * The original version was created by GitHub user notmasteryet.\n *\n * - The JPEG specification can be found in the ITU CCITT Recommendation T.81\n * (www.w3.org/Graphics/JPEG/itu-t81.pdf)\n * - The JFIF specification can be found in the JPEG File Interchange Format\n * (www.w3.org/Graphics/JPEG/jfif3.pdf)\n * - The Adobe Application-Specific JPEG markers in the\n * Supporting the DCT Filters in PostScript Level 2, Technical Note #5116\n * (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf)\n */\n\n// prettier-ignore\nconst dctZigZag = new Uint8Array([\n 0,\n 1, 8,\n 16, 9, 2,\n 3, 10, 17, 24,\n 32, 25, 18, 11, 4,\n 5, 12, 19, 26, 33, 40,\n 48, 41, 34, 27, 20, 13, 6,\n 7, 14, 21, 28, 35, 42, 49, 56,\n 57, 50, 43, 36, 29, 22, 15,\n 23, 30, 37, 44, 51, 58,\n 59, 52, 45, 38, 31,\n 39, 46, 53, 60,\n 61, 54, 47,\n 55, 62,\n 63\n]);\n\nconst dctCos1 = 4017; // cos(pi/16)\nconst dctSin1 = 799; // sin(pi/16)\nconst dctCos3 = 3406; // cos(3*pi/16)\nconst dctSin3 = 2276; // sin(3*pi/16)\nconst dctCos6 = 1567; // cos(6*pi/16)\nconst dctSin6 = 3784; // sin(6*pi/16)\nconst dctSqrt2 = 5793; // sqrt(2)\nconst dctSqrt1d2 = 2896; // sqrt(2) / 2\n\nfunction buildHuffmanTable(codeLengths, values) {\n let k = 0,\n i,\n j,\n length = 16;\n while (length > 0 && !codeLengths[length - 1]) {\n length--;\n }\n const code = [{ children: [], index: 0 }];\n let p = code[0],\n q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push((q = { children: [], index: 0 }));\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n // p here points to last code\n code.push((q = { children: [], index: 0 }));\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n}\n\nfunction getBlockBufferOffset(component, row, col) {\n return 64 * ((component.blocksPerLine + 1) * row + col);\n}\n\nfunction decodeScan(\n data,\n offset,\n frame,\n components,\n resetInterval,\n spectralStart,\n spectralEnd,\n successivePrev,\n successive,\n parseDNLMarker = false\n) {\n const mcusPerLine = frame.mcusPerLine;\n const progressive = frame.progressive;\n\n const startOffset = offset;\n let bitsData = 0,\n bitsCount = 0;\n\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return (bitsData >> bitsCount) & 1;\n }\n bitsData = data[offset++];\n if (bitsData === 0xff) {\n const nextByte = data[offset++];\n if (nextByte) {\n if (nextByte === /* DNL = */ 0xdc && parseDNLMarker) {\n offset += 2; // Skip marker length.\n\n const scanLines = readUint16(data, offset);\n offset += 2;\n if (scanLines > 0 && scanLines !== frame.scanLines) {\n throw new DNLMarkerError(\n \"Found DNL marker (0xFFDC) while parsing scan data\",\n scanLines\n );\n }\n } else if (nextByte === /* EOI = */ 0xd9) {\n if (parseDNLMarker) {\n // NOTE: only 8-bit JPEG images are supported in this decoder.\n const maybeScanLines = blockRow * (frame.precision === 8 ? 8 : 0);\n // Heuristic to attempt to handle corrupt JPEG images with too\n // large `scanLines` parameter, by falling back to the currently\n // parsed number of scanLines when it's at least (approximately)\n // one order of magnitude smaller than expected (fixes\n // issue10880.pdf and issue10989.pdf).\n if (\n maybeScanLines > 0 &&\n Math.round(frame.scanLines / maybeScanLines) >= 10\n ) {\n throw new DNLMarkerError(\n \"Found EOI marker (0xFFD9) while parsing scan data, \" +\n \"possibly caused by incorrect `scanLines` parameter\",\n maybeScanLines\n );\n }\n }\n throw new EOIMarkerError(\n \"Found EOI marker (0xFFD9) while parsing scan data\"\n );\n }\n throw new JpegError(\n `unexpected marker ${((bitsData << 8) | nextByte).toString(16)}`\n );\n }\n // unstuff 0\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n\n function decodeHuffman(tree) {\n let node = tree;\n while (true) {\n node = node[readBit()];\n switch (typeof node) {\n case \"number\":\n return node;\n case \"object\":\n continue;\n }\n throw new JpegError(\"invalid huffman sequence\");\n }\n }\n\n function receive(length) {\n let n = 0;\n while (length > 0) {\n n = (n << 1) | readBit();\n length--;\n }\n return n;\n }\n\n function receiveAndExtend(length) {\n if (length === 1) {\n return readBit() === 1 ? 1 : -1;\n }\n const n = receive(length);\n if (n >= 1 << (length - 1)) {\n return n;\n }\n return n + (-1 << length) + 1;\n }\n\n function decodeBaseline(component, blockOffset) {\n const t = decodeHuffman(component.huffmanTableDC);\n const diff = t === 0 ? 0 : receiveAndExtend(t);\n component.blockData[blockOffset] = component.pred += diff;\n let k = 1;\n while (k < 64) {\n const rs = decodeHuffman(component.huffmanTableAC);\n const s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n const z = dctZigZag[k];\n component.blockData[blockOffset + z] = receiveAndExtend(s);\n k++;\n }\n }\n\n function decodeDCFirst(component, blockOffset) {\n const t = decodeHuffman(component.huffmanTableDC);\n const diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n component.blockData[blockOffset] = component.pred += diff;\n }\n\n function decodeDCSuccessive(component, blockOffset) {\n component.blockData[blockOffset] |= readBit() << successive;\n }\n\n let eobrun = 0;\n function decodeACFirst(component, blockOffset) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n let k = spectralStart;\n const e = spectralEnd;\n while (k <= e) {\n const rs = decodeHuffman(component.huffmanTableAC);\n const s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n const z = dctZigZag[k];\n component.blockData[blockOffset + z] =\n receiveAndExtend(s) * (1 << successive);\n k++;\n }\n }\n\n let successiveACState = 0,\n successiveACNextValue;\n function decodeACSuccessive(component, blockOffset) {\n let k = spectralStart;\n const e = spectralEnd;\n let r = 0;\n let s;\n let rs;\n while (k <= e) {\n const offsetZ = blockOffset + dctZigZag[k];\n const sign = component.blockData[offsetZ] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0: // initial state\n rs = decodeHuffman(component.huffmanTableAC);\n s = rs & 15;\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1) {\n throw new JpegError(\"invalid ACn encoding\");\n }\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1: // skipping r zero items\n case 2:\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n } else {\n r--;\n if (r === 0) {\n successiveACState = successiveACState === 2 ? 3 : 0;\n }\n }\n break;\n case 3: // set value for a zero item\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n } else {\n component.blockData[offsetZ] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4: // eob\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n }\n break;\n }\n k++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0) {\n successiveACState = 0;\n }\n }\n }\n\n let blockRow = 0;\n function decodeMcu(component, decode, mcu, row, col) {\n const mcuRow = (mcu / mcusPerLine) | 0;\n const mcuCol = mcu % mcusPerLine;\n blockRow = mcuRow * component.v + row;\n const blockCol = mcuCol * component.h + col;\n const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, blockOffset);\n }\n\n function decodeBlock(component, decode, mcu) {\n blockRow = (mcu / component.blocksPerLine) | 0;\n const blockCol = mcu % component.blocksPerLine;\n const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, blockOffset);\n }\n\n const componentsLength = components.length;\n let component, i, j, k, n;\n let decodeFn;\n if (progressive) {\n if (spectralStart === 0) {\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n } else {\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n }\n } else {\n decodeFn = decodeBaseline;\n }\n\n let mcu = 0,\n fileMarker;\n let mcuExpected;\n if (componentsLength === 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n\n let h, v;\n while (mcu <= mcuExpected) {\n // reset interval stuff\n const mcuToRead = resetInterval\n ? Math.min(mcuExpected - mcu, resetInterval)\n : mcuExpected;\n\n // The `mcuToRead === 0` case should only occur when all of the expected\n // MCU data has been already parsed, i.e. when `mcu === mcuExpected`, but\n // some corrupt JPEG images contain more data than intended and we thus\n // want to skip over any extra RSTx markers below (fixes issue11794.pdf).\n if (mcuToRead > 0) {\n for (i = 0; i < componentsLength; i++) {\n components[i].pred = 0;\n }\n eobrun = 0;\n\n if (componentsLength === 1) {\n component = components[0];\n for (n = 0; n < mcuToRead; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < mcuToRead; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n }\n }\n }\n\n // find marker\n bitsCount = 0;\n fileMarker = findNextFileMarker(data, offset);\n if (!fileMarker) {\n break; // Reached the end of the image data without finding any marker.\n }\n if (fileMarker.invalid) {\n // Some bad images seem to pad Scan blocks with e.g. zero bytes, skip\n // past those to attempt to find a valid marker (fixes issue4090.pdf).\n const partialMsg = mcuToRead > 0 ? \"unexpected\" : \"excessive\";\n warn(\n `decodeScan - ${partialMsg} MCU data, current marker is: ${fileMarker.invalid}`\n );\n offset = fileMarker.offset;\n }\n if (fileMarker.marker >= 0xffd0 && fileMarker.marker <= 0xffd7) {\n // RSTx\n offset += 2;\n } else {\n break;\n }\n }\n\n return offset - startOffset;\n}\n\n// A port of poppler's IDCT method which in turn is taken from:\n// Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz,\n// 'Practical Fast 1-D DCT Algorithms with 11 Multiplications',\n// IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989,\n// 988-991.\nfunction quantizeAndInverse(component, blockBufferOffset, p) {\n const qt = component.quantizationTable,\n blockData = component.blockData;\n let v0, v1, v2, v3, v4, v5, v6, v7;\n let p0, p1, p2, p3, p4, p5, p6, p7;\n let t;\n\n if (!qt) {\n throw new JpegError(\"missing required Quantization Table.\");\n }\n\n // inverse DCT on rows\n for (let row = 0; row < 64; row += 8) {\n // gather block data\n p0 = blockData[blockBufferOffset + row];\n p1 = blockData[blockBufferOffset + row + 1];\n p2 = blockData[blockBufferOffset + row + 2];\n p3 = blockData[blockBufferOffset + row + 3];\n p4 = blockData[blockBufferOffset + row + 4];\n p5 = blockData[blockBufferOffset + row + 5];\n p6 = blockData[blockBufferOffset + row + 6];\n p7 = blockData[blockBufferOffset + row + 7];\n\n // dequant p0\n p0 *= qt[row];\n\n // check for all-zero AC coefficients\n if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = (dctSqrt2 * p0 + 512) >> 10;\n p[row] = t;\n p[row + 1] = t;\n p[row + 2] = t;\n p[row + 3] = t;\n p[row + 4] = t;\n p[row + 5] = t;\n p[row + 6] = t;\n p[row + 7] = t;\n continue;\n }\n // dequant p1 ... p7\n p1 *= qt[row + 1];\n p2 *= qt[row + 2];\n p3 *= qt[row + 3];\n p4 *= qt[row + 4];\n p5 *= qt[row + 5];\n p6 *= qt[row + 6];\n p7 *= qt[row + 7];\n\n // stage 4\n v0 = (dctSqrt2 * p0 + 128) >> 8;\n v1 = (dctSqrt2 * p4 + 128) >> 8;\n v2 = p2;\n v3 = p6;\n v4 = (dctSqrt1d2 * (p1 - p7) + 128) >> 8;\n v7 = (dctSqrt1d2 * (p1 + p7) + 128) >> 8;\n v5 = p3 << 4;\n v6 = p5 << 4;\n\n // stage 3\n v0 = (v0 + v1 + 1) >> 1;\n v1 = v0 - v1;\n t = (v2 * dctSin6 + v3 * dctCos6 + 128) >> 8;\n v2 = (v2 * dctCos6 - v3 * dctSin6 + 128) >> 8;\n v3 = t;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = v4 - v6;\n v7 = (v7 + v5 + 1) >> 1;\n v5 = v7 - v5;\n\n // stage 2\n v0 = (v0 + v3 + 1) >> 1;\n v3 = v0 - v3;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = v1 - v2;\n t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n v7 = t;\n t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p[row] = v0 + v7;\n p[row + 7] = v0 - v7;\n p[row + 1] = v1 + v6;\n p[row + 6] = v1 - v6;\n p[row + 2] = v2 + v5;\n p[row + 5] = v2 - v5;\n p[row + 3] = v3 + v4;\n p[row + 4] = v3 - v4;\n }\n\n // inverse DCT on columns\n for (let col = 0; col < 8; ++col) {\n p0 = p[col];\n p1 = p[col + 8];\n p2 = p[col + 16];\n p3 = p[col + 24];\n p4 = p[col + 32];\n p5 = p[col + 40];\n p6 = p[col + 48];\n p7 = p[col + 56];\n\n // check for all-zero AC coefficients\n if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = (dctSqrt2 * p0 + 8192) >> 14;\n // Convert to 8-bit.\n if (t < -2040) {\n t = 0;\n } else if (t >= 2024) {\n t = 255;\n } else {\n t = (t + 2056) >> 4;\n }\n blockData[blockBufferOffset + col] = t;\n blockData[blockBufferOffset + col + 8] = t;\n blockData[blockBufferOffset + col + 16] = t;\n blockData[blockBufferOffset + col + 24] = t;\n blockData[blockBufferOffset + col + 32] = t;\n blockData[blockBufferOffset + col + 40] = t;\n blockData[blockBufferOffset + col + 48] = t;\n blockData[blockBufferOffset + col + 56] = t;\n continue;\n }\n\n // stage 4\n v0 = (dctSqrt2 * p0 + 2048) >> 12;\n v1 = (dctSqrt2 * p4 + 2048) >> 12;\n v2 = p2;\n v3 = p6;\n v4 = (dctSqrt1d2 * (p1 - p7) + 2048) >> 12;\n v7 = (dctSqrt1d2 * (p1 + p7) + 2048) >> 12;\n v5 = p3;\n v6 = p5;\n\n // stage 3\n // Shift v0 by 128.5 << 5 here, so we don't need to shift p0...p7 when\n // converting to UInt8 range later.\n v0 = ((v0 + v1 + 1) >> 1) + 4112;\n v1 = v0 - v1;\n t = (v2 * dctSin6 + v3 * dctCos6 + 2048) >> 12;\n v2 = (v2 * dctCos6 - v3 * dctSin6 + 2048) >> 12;\n v3 = t;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = v4 - v6;\n v7 = (v7 + v5 + 1) >> 1;\n v5 = v7 - v5;\n\n // stage 2\n v0 = (v0 + v3 + 1) >> 1;\n v3 = v0 - v3;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = v1 - v2;\n t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n v7 = t;\n t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p0 = v0 + v7;\n p7 = v0 - v7;\n p1 = v1 + v6;\n p6 = v1 - v6;\n p2 = v2 + v5;\n p5 = v2 - v5;\n p3 = v3 + v4;\n p4 = v3 - v4;\n\n // Convert to 8-bit integers.\n if (p0 < 16) {\n p0 = 0;\n } else if (p0 >= 4080) {\n p0 = 255;\n } else {\n p0 >>= 4;\n }\n if (p1 < 16) {\n p1 = 0;\n } else if (p1 >= 4080) {\n p1 = 255;\n } else {\n p1 >>= 4;\n }\n if (p2 < 16) {\n p2 = 0;\n } else if (p2 >= 4080) {\n p2 = 255;\n } else {\n p2 >>= 4;\n }\n if (p3 < 16) {\n p3 = 0;\n } else if (p3 >= 4080) {\n p3 = 255;\n } else {\n p3 >>= 4;\n }\n if (p4 < 16) {\n p4 = 0;\n } else if (p4 >= 4080) {\n p4 = 255;\n } else {\n p4 >>= 4;\n }\n if (p5 < 16) {\n p5 = 0;\n } else if (p5 >= 4080) {\n p5 = 255;\n } else {\n p5 >>= 4;\n }\n if (p6 < 16) {\n p6 = 0;\n } else if (p6 >= 4080) {\n p6 = 255;\n } else {\n p6 >>= 4;\n }\n if (p7 < 16) {\n p7 = 0;\n } else if (p7 >= 4080) {\n p7 = 255;\n } else {\n p7 >>= 4;\n }\n\n // store block data\n blockData[blockBufferOffset + col] = p0;\n blockData[blockBufferOffset + col + 8] = p1;\n blockData[blockBufferOffset + col + 16] = p2;\n blockData[blockBufferOffset + col + 24] = p3;\n blockData[blockBufferOffset + col + 32] = p4;\n blockData[blockBufferOffset + col + 40] = p5;\n blockData[blockBufferOffset + col + 48] = p6;\n blockData[blockBufferOffset + col + 56] = p7;\n }\n}\n\nfunction buildComponentData(frame, component) {\n const blocksPerLine = component.blocksPerLine;\n const blocksPerColumn = component.blocksPerColumn;\n const computationBuffer = new Int16Array(64);\n\n for (let blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n for (let blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n const offset = getBlockBufferOffset(component, blockRow, blockCol);\n quantizeAndInverse(component, offset, computationBuffer);\n }\n }\n return component.blockData;\n}\n\nfunction findNextFileMarker(data, currentPos, startPos = currentPos) {\n const maxPos = data.length - 1;\n let newPos = startPos < currentPos ? startPos : currentPos;\n\n if (currentPos >= maxPos) {\n return null; // Don't attempt to read non-existent data and just return.\n }\n const currentMarker = readUint16(data, currentPos);\n if (currentMarker >= 0xffc0 && currentMarker <= 0xfffe) {\n return {\n invalid: null,\n marker: currentMarker,\n offset: currentPos,\n };\n }\n let newMarker = readUint16(data, newPos);\n while (!(newMarker >= 0xffc0 && newMarker <= 0xfffe)) {\n if (++newPos >= maxPos) {\n return null; // Don't attempt to read non-existent data and just return.\n }\n newMarker = readUint16(data, newPos);\n }\n return {\n invalid: currentMarker.toString(16),\n marker: newMarker,\n offset: newPos,\n };\n}\n\nclass JpegImage {\n constructor({ decodeTransform = null, colorTransform = -1 } = {}) {\n this._decodeTransform = decodeTransform;\n this._colorTransform = colorTransform;\n }\n\n parse(data, { dnlScanLines = null } = {}) {\n function readDataBlock() {\n const length = readUint16(data, offset);\n offset += 2;\n let endOffset = offset + length - 2;\n\n const fileMarker = findNextFileMarker(data, endOffset, offset);\n if (fileMarker && fileMarker.invalid) {\n warn(\n \"readDataBlock - incorrect length, current marker is: \" +\n fileMarker.invalid\n );\n endOffset = fileMarker.offset;\n }\n\n const array = data.subarray(offset, endOffset);\n offset += array.length;\n return array;\n }\n\n function prepareComponents(frame) {\n const mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);\n const mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);\n for (let i = 0, ii = frame.components.length; i < ii; i++) {\n const component = frame.components[i];\n const blocksPerLine = Math.ceil(\n (Math.ceil(frame.samplesPerLine / 8) * component.h) / frame.maxH\n );\n const blocksPerColumn = Math.ceil(\n (Math.ceil(frame.scanLines / 8) * component.v) / frame.maxV\n );\n const blocksPerLineForMcu = mcusPerLine * component.h;\n const blocksPerColumnForMcu = mcusPerColumn * component.v;\n\n const blocksBufferSize =\n 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1);\n component.blockData = new Int16Array(blocksBufferSize);\n component.blocksPerLine = blocksPerLine;\n component.blocksPerColumn = blocksPerColumn;\n }\n frame.mcusPerLine = mcusPerLine;\n frame.mcusPerColumn = mcusPerColumn;\n }\n\n let offset = 0;\n let jfif = null;\n let adobe = null;\n let frame, resetInterval;\n let numSOSMarkers = 0;\n const quantizationTables = [];\n const huffmanTablesAC = [],\n huffmanTablesDC = [];\n\n let fileMarker = readUint16(data, offset);\n offset += 2;\n if (fileMarker !== /* SOI (Start of Image) = */ 0xffd8) {\n throw new JpegError(\"SOI not found\");\n }\n fileMarker = readUint16(data, offset);\n offset += 2;\n\n markerLoop: while (fileMarker !== /* EOI (End of Image) = */ 0xffd9) {\n let i, j, l;\n switch (fileMarker) {\n case 0xffe0: // APP0 (Application Specific)\n case 0xffe1: // APP1\n case 0xffe2: // APP2\n case 0xffe3: // APP3\n case 0xffe4: // APP4\n case 0xffe5: // APP5\n case 0xffe6: // APP6\n case 0xffe7: // APP7\n case 0xffe8: // APP8\n case 0xffe9: // APP9\n case 0xffea: // APP10\n case 0xffeb: // APP11\n case 0xffec: // APP12\n case 0xffed: // APP13\n case 0xffee: // APP14\n case 0xffef: // APP15\n case 0xfffe: // COM (Comment)\n const appData = readDataBlock();\n\n if (fileMarker === 0xffe0) {\n // 'JFIF\\x00'\n if (\n appData[0] === 0x4a &&\n appData[1] === 0x46 &&\n appData[2] === 0x49 &&\n appData[3] === 0x46 &&\n appData[4] === 0\n ) {\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: (appData[8] << 8) | appData[9],\n yDensity: (appData[10] << 8) | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(\n 14,\n 14 + 3 * appData[12] * appData[13]\n ),\n };\n }\n }\n // TODO APP1 - Exif\n if (fileMarker === 0xffee) {\n // 'Adobe'\n if (\n appData[0] === 0x41 &&\n appData[1] === 0x64 &&\n appData[2] === 0x6f &&\n appData[3] === 0x62 &&\n appData[4] === 0x65\n ) {\n adobe = {\n version: (appData[5] << 8) | appData[6],\n flags0: (appData[7] << 8) | appData[8],\n flags1: (appData[9] << 8) | appData[10],\n transformCode: appData[11],\n };\n }\n }\n break;\n\n case 0xffdb: // DQT (Define Quantization Tables)\n const quantizationTablesLength = readUint16(data, offset);\n offset += 2;\n const quantizationTablesEnd = quantizationTablesLength + offset - 2;\n let z;\n while (offset < quantizationTablesEnd) {\n const quantizationTableSpec = data[offset++];\n const tableData = new Uint16Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n // 8 bit values\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n // 16 bit values\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = readUint16(data, offset);\n offset += 2;\n }\n } else {\n throw new JpegError(\"DQT - invalid table spec\");\n }\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n\n case 0xffc0: // SOF0 (Start of Frame, Baseline DCT)\n case 0xffc1: // SOF1 (Start of Frame, Extended DCT)\n case 0xffc2: // SOF2 (Start of Frame, Progressive DCT)\n if (frame) {\n throw new JpegError(\"Only single frame JPEGs supported\");\n }\n offset += 2; // Skip marker length.\n\n frame = {};\n frame.extended = fileMarker === 0xffc1;\n frame.progressive = fileMarker === 0xffc2;\n frame.precision = data[offset++];\n const sofScanLines = readUint16(data, offset);\n offset += 2;\n frame.scanLines = dnlScanLines || sofScanLines;\n frame.samplesPerLine = readUint16(data, offset);\n offset += 2;\n frame.components = [];\n frame.componentIds = {};\n const componentsCount = data[offset++];\n let maxH = 0,\n maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n const componentId = data[offset];\n const h = data[offset + 1] >> 4;\n const v = data[offset + 1] & 15;\n if (maxH < h) {\n maxH = h;\n }\n if (maxV < v) {\n maxV = v;\n }\n const qId = data[offset + 2];\n l = frame.components.push({\n h,\n v,\n quantizationId: qId,\n quantizationTable: null, // See comment below.\n });\n frame.componentIds[componentId] = l - 1;\n offset += 3;\n }\n frame.maxH = maxH;\n frame.maxV = maxV;\n prepareComponents(frame);\n break;\n\n case 0xffc4: // DHT (Define Huffman Tables)\n const huffmanLength = readUint16(data, offset);\n offset += 2;\n for (i = 2; i < huffmanLength; ) {\n const huffmanTableSpec = data[offset++];\n const codeLengths = new Uint8Array(16);\n let codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n const huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++) {\n huffmanValues[j] = data[offset];\n }\n i += 17 + codeLengthSum;\n\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[\n huffmanTableSpec & 15\n ] = buildHuffmanTable(codeLengths, huffmanValues);\n }\n break;\n\n case 0xffdd: // DRI (Define Restart Interval)\n offset += 2; // Skip marker length.\n\n resetInterval = readUint16(data, offset);\n offset += 2;\n break;\n\n case 0xffda: // SOS (Start of Scan)\n // A DNL marker (0xFFDC), if it exists, is only allowed at the end\n // of the first scan segment and may only occur once in an image.\n // Furthermore, to prevent an infinite loop, do *not* attempt to\n // parse DNL markers during re-parsing of the JPEG scan data.\n const parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines;\n\n offset += 2; // Skip marker length.\n\n const selectorsCount = data[offset++],\n components = [];\n for (i = 0; i < selectorsCount; i++) {\n const index = data[offset++];\n const componentIndex = frame.componentIds[index];\n const component = frame.components[componentIndex];\n component.index = index;\n const tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n const spectralStart = data[offset++],\n spectralEnd = data[offset++],\n successiveApproximation = data[offset++];\n try {\n const processed = decodeScan(\n data,\n offset,\n frame,\n components,\n resetInterval,\n spectralStart,\n spectralEnd,\n successiveApproximation >> 4,\n successiveApproximation & 15,\n parseDNLMarker\n );\n offset += processed;\n } catch (ex) {\n if (ex instanceof DNLMarkerError) {\n warn(`${ex.message} -- attempting to re-parse the JPEG image.`);\n return this.parse(data, { dnlScanLines: ex.scanLines });\n } else if (ex instanceof EOIMarkerError) {\n warn(`${ex.message} -- ignoring the rest of the image data.`);\n break markerLoop;\n }\n throw ex;\n }\n break;\n\n case 0xffdc: // DNL (Define Number of Lines)\n // Ignore the marker, since it's being handled in `decodeScan`.\n offset += 4;\n break;\n\n case 0xffff: // Fill bytes\n if (data[offset] !== 0xff) {\n // Avoid skipping a valid marker.\n offset--;\n }\n break;\n\n default:\n // Could be incorrect encoding -- the last 0xFF byte of the previous\n // block could have been eaten by the encoder, hence we fallback to\n // `startPos = offset - 3` when looking for the next valid marker.\n const nextFileMarker = findNextFileMarker(\n data,\n /* currentPos = */ offset - 2,\n /* startPos = */ offset - 3\n );\n if (nextFileMarker && nextFileMarker.invalid) {\n warn(\n \"JpegImage.parse - unexpected data, current marker is: \" +\n nextFileMarker.invalid\n );\n offset = nextFileMarker.offset;\n break;\n }\n if (!nextFileMarker || offset >= data.length - 1) {\n warn(\n \"JpegImage.parse - reached the end of the image data \" +\n \"without finding an EOI marker (0xFFD9).\"\n );\n break markerLoop;\n }\n throw new JpegError(\n \"JpegImage.parse - unknown marker: \" + fileMarker.toString(16)\n );\n }\n fileMarker = readUint16(data, offset);\n offset += 2;\n }\n\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (let i = 0, ii = frame.components.length; i < ii; i++) {\n const component = frame.components[i];\n\n // Prevent errors when DQT markers are placed after SOF{n} markers,\n // by assigning the `quantizationTable` entry after the entire image\n // has been parsed (fixes issue7406.pdf).\n const quantizationTable = quantizationTables[component.quantizationId];\n if (quantizationTable) {\n component.quantizationTable = quantizationTable;\n }\n\n this.components.push({\n index: component.index,\n output: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV,\n blocksPerLine: component.blocksPerLine,\n blocksPerColumn: component.blocksPerColumn,\n });\n }\n this.numComponents = this.components.length;\n return undefined;\n }\n\n _getLinearizedBlockData(width, height, isSourcePDF = false) {\n const scaleX = this.width / width,\n scaleY = this.height / height;\n\n let component, componentScaleX, componentScaleY, blocksPerScanline;\n let x, y, i, j, k;\n let index;\n let offset = 0;\n let output;\n const numComponents = this.components.length;\n const dataLength = width * height * numComponents;\n const data = new Uint8ClampedArray(dataLength);\n const xScaleBlockOffset = new Uint32Array(width);\n const mask3LSB = 0xfffffff8; // used to clear the 3 LSBs\n let lastComponentScaleX;\n\n for (i = 0; i < numComponents; i++) {\n component = this.components[i];\n componentScaleX = component.scaleX * scaleX;\n componentScaleY = component.scaleY * scaleY;\n offset = i;\n output = component.output;\n blocksPerScanline = (component.blocksPerLine + 1) << 3;\n // Precalculate the `xScaleBlockOffset`. Since it doesn't depend on the\n // component data, that's only necessary when `componentScaleX` changes.\n if (componentScaleX !== lastComponentScaleX) {\n for (x = 0; x < width; x++) {\n j = 0 | (x * componentScaleX);\n xScaleBlockOffset[x] = ((j & mask3LSB) << 3) | (j & 7);\n }\n lastComponentScaleX = componentScaleX;\n }\n // linearize the blocks of the component\n for (y = 0; y < height; y++) {\n j = 0 | (y * componentScaleY);\n index = (blocksPerScanline * (j & mask3LSB)) | ((j & 7) << 3);\n for (x = 0; x < width; x++) {\n data[offset] = output[index + xScaleBlockOffset[x]];\n offset += numComponents;\n }\n }\n }\n\n // decodeTransform contains pairs of multiplier (-256..256) and additive\n let transform = this._decodeTransform;\n\n // In PDF files, JPEG images with CMYK colour spaces are usually inverted\n // (this can be observed by extracting the raw image data).\n // Since the conversion algorithms (see below) were written primarily for\n // the PDF use-cases, attempting to use `JpegImage` to parse standalone\n // JPEG (CMYK) images may thus result in inverted images (see issue 9513).\n //\n // Unfortunately it's not (always) possible to tell, from the image data\n // alone, if it needs to be inverted. Thus in an attempt to provide better\n // out-of-box behaviour when `JpegImage` is used standalone, default to\n // inverting JPEG (CMYK) images if and only if the image data does *not*\n // come from a PDF file and no `decodeTransform` was passed by the user.\n if (!isSourcePDF && numComponents === 4 && !transform) {\n transform = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255]);\n }\n\n if (transform) {\n for (i = 0; i < dataLength; ) {\n for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) {\n data[i] = ((data[i] * transform[k]) >> 8) + transform[k + 1];\n }\n }\n }\n return data;\n }\n\n get _isColorConversionNeeded() {\n if (this.adobe) {\n // The adobe transform marker overrides any previous setting.\n return !!this.adobe.transformCode;\n }\n if (this.numComponents === 3) {\n if (this._colorTransform === 0) {\n // If the Adobe transform marker is not present and the image\n // dictionary has a 'ColorTransform' entry, explicitly set to `0`,\n // then the colours should *not* be transformed.\n return false;\n } else if (\n this.components[0].index === /* \"R\" = */ 0x52 &&\n this.components[1].index === /* \"G\" = */ 0x47 &&\n this.components[2].index === /* \"B\" = */ 0x42\n ) {\n // If the three components are indexed as RGB in ASCII\n // then the colours should *not* be transformed.\n return false;\n }\n return true;\n }\n // `this.numComponents !== 3`\n if (this._colorTransform === 1) {\n // If the Adobe transform marker is not present and the image\n // dictionary has a 'ColorTransform' entry, explicitly set to `1`,\n // then the colours should be transformed.\n return true;\n }\n return false;\n }\n\n _convertYccToRgb(data) {\n let Y, Cb, Cr;\n for (let i = 0, length = data.length; i < length; i += 3) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n data[i] = Y - 179.456 + 1.402 * Cr;\n data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n data[i + 2] = Y - 226.816 + 1.772 * Cb;\n }\n return data;\n }\n\n _convertYcckToRgb(data) {\n let Y, Cb, Cr, k;\n let offset = 0;\n for (let i = 0, length = data.length; i < length; i += 4) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n k = data[i + 3];\n\n data[offset++] =\n -122.67195406894 +\n Cb *\n (-6.60635669420364e-5 * Cb +\n 0.000437130475926232 * Cr -\n 5.4080610064599e-5 * Y +\n 0.00048449797120281 * k -\n 0.154362151871126) +\n Cr *\n (-0.000957964378445773 * Cr +\n 0.000817076911346625 * Y -\n 0.00477271405408747 * k +\n 1.53380253221734) +\n Y *\n (0.000961250184130688 * Y -\n 0.00266257332283933 * k +\n 0.48357088451265) +\n k * (-0.000336197177618394 * k + 0.484791561490776);\n\n data[offset++] =\n 107.268039397724 +\n Cb *\n (2.19927104525741e-5 * Cb -\n 0.000640992018297945 * Cr +\n 0.000659397001245577 * Y +\n 0.000426105652938837 * k -\n 0.176491792462875) +\n Cr *\n (-0.000778269941513683 * Cr +\n 0.00130872261408275 * Y +\n 0.000770482631801132 * k -\n 0.151051492775562) +\n Y *\n (0.00126935368114843 * Y -\n 0.00265090189010898 * k +\n 0.25802910206845) +\n k * (-0.000318913117588328 * k - 0.213742400323665);\n\n data[offset++] =\n -20.810012546947 +\n Cb *\n (-0.000570115196973677 * Cb -\n 2.63409051004589e-5 * Cr +\n 0.0020741088115012 * Y -\n 0.00288260236853442 * k +\n 0.814272968359295) +\n Cr *\n (-1.53496057440975e-5 * Cr -\n 0.000132689043961446 * Y +\n 0.000560833691242812 * k -\n 0.195152027534049) +\n Y *\n (0.00174418132927582 * Y -\n 0.00255243321439347 * k +\n 0.116935020465145) +\n k * (-0.000343531996510555 * k + 0.24165260232407);\n }\n // Ensure that only the converted RGB data is returned.\n return data.subarray(0, offset);\n }\n\n _convertYcckToCmyk(data) {\n let Y, Cb, Cr;\n for (let i = 0, length = data.length; i < length; i += 4) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n data[i] = 434.456 - Y - 1.402 * Cr;\n data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr;\n data[i + 2] = 481.816 - Y - 1.772 * Cb;\n // K in data[i + 3] is unchanged\n }\n return data;\n }\n\n _convertCmykToRgb(data) {\n let c, m, y, k;\n let offset = 0;\n for (let i = 0, length = data.length; i < length; i += 4) {\n c = data[i];\n m = data[i + 1];\n y = data[i + 2];\n k = data[i + 3];\n\n data[offset++] =\n 255 +\n c *\n (-0.00006747147073602441 * c +\n 0.0008379262121013727 * m +\n 0.0002894718188643294 * y +\n 0.003264231057537806 * k -\n 1.1185611867203937) +\n m *\n (0.000026374107616089405 * m -\n 0.00008626949158638572 * y -\n 0.0002748769067499491 * k -\n 0.02155688794978967) +\n y *\n (-0.00003878099212869363 * y -\n 0.0003267808279485286 * k +\n 0.0686742238595345) -\n k * (0.0003361971776183937 * k + 0.7430659151342254);\n\n data[offset++] =\n 255 +\n c *\n (0.00013596372813588848 * c +\n 0.000924537132573585 * m +\n 0.00010567359618683593 * y +\n 0.0004791864687436512 * k -\n 0.3109689587515875) +\n m *\n (-0.00023545346108370344 * m +\n 0.0002702845253534714 * y +\n 0.0020200308977307156 * k -\n 0.7488052167015494) +\n y *\n (0.00006834815998235662 * y +\n 0.00015168452363460973 * k -\n 0.09751927774728933) -\n k * (0.0003189131175883281 * k + 0.7364883807733168);\n\n data[offset++] =\n 255 +\n c *\n (0.000013598650411385307 * c +\n 0.00012423956175490851 * m +\n 0.0004751985097583589 * y -\n 0.0000036729317476630422 * k -\n 0.05562186980264034) +\n m *\n (0.00016141380598724676 * m +\n 0.0009692239130725186 * y +\n 0.0007782692450036253 * k -\n 0.44015232367526463) +\n y *\n (5.068882914068769e-7 * y +\n 0.0017778369011375071 * k -\n 0.7591454649749609) -\n k * (0.0003435319965105553 * k + 0.7063770186160144);\n }\n // Ensure that only the converted RGB data is returned.\n return data.subarray(0, offset);\n }\n\n getData({ width, height, forceRGB = false, isSourcePDF = false }) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n isSourcePDF === true,\n 'JpegImage.getData: Unexpected \"isSourcePDF\" value for PDF files.'\n );\n }\n if (this.numComponents > 4) {\n throw new JpegError(\"Unsupported color mode\");\n }\n // Type of data: Uint8ClampedArray(width * height * numComponents)\n const data = this._getLinearizedBlockData(width, height, isSourcePDF);\n\n if (this.numComponents === 1 && forceRGB) {\n const dataLength = data.length;\n const rgbData = new Uint8ClampedArray(dataLength * 3);\n let offset = 0;\n for (let i = 0; i < dataLength; i++) {\n const grayColor = data[i];\n rgbData[offset++] = grayColor;\n rgbData[offset++] = grayColor;\n rgbData[offset++] = grayColor;\n }\n return rgbData;\n } else if (this.numComponents === 3 && this._isColorConversionNeeded) {\n return this._convertYccToRgb(data);\n } else if (this.numComponents === 4) {\n if (this._isColorConversionNeeded) {\n if (forceRGB) {\n return this._convertYcckToRgb(data);\n }\n return this._convertYcckToCmyk(data);\n } else if (forceRGB) {\n return this._convertCmykToRgb(data);\n }\n }\n return data;\n }\n}\n\nexport { JpegImage };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { JpxImage } from \"./jpx.js\";\nimport { shadow } from \"../shared/util.js\";\n\n/**\n * For JPEG 2000's we use a library to decode these images and\n * the stream behaves like all the other DecodeStreams.\n */\nclass JpxStream extends DecodeStream {\n constructor(stream, maybeLength, params) {\n super(maybeLength);\n\n this.stream = stream;\n this.dict = stream.dict;\n this.maybeLength = maybeLength;\n this.params = params;\n }\n\n get bytes() {\n // If `this.maybeLength` is null, we'll get the entire stream.\n return shadow(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n }\n\n ensureBuffer(requested) {\n // No-op, since `this.readBlock` will always parse the entire image and\n // directly insert all of its data into `this.buffer`.\n }\n\n readBlock() {\n if (this.eof) {\n return;\n }\n const jpxImage = new JpxImage();\n jpxImage.parse(this.bytes);\n\n const width = jpxImage.width;\n const height = jpxImage.height;\n const componentsCount = jpxImage.componentsCount;\n const tileCount = jpxImage.tiles.length;\n if (tileCount === 1) {\n this.buffer = jpxImage.tiles[0].items;\n } else {\n const data = new Uint8ClampedArray(width * height * componentsCount);\n\n for (let k = 0; k < tileCount; k++) {\n const tileComponents = jpxImage.tiles[k];\n const tileWidth = tileComponents.width;\n const tileHeight = tileComponents.height;\n const tileLeft = tileComponents.left;\n const tileTop = tileComponents.top;\n\n const src = tileComponents.items;\n let srcPosition = 0;\n let dataPosition = (width * tileTop + tileLeft) * componentsCount;\n const imgRowSize = width * componentsCount;\n const tileRowSize = tileWidth * componentsCount;\n\n for (let j = 0; j < tileHeight; j++) {\n const rowBytes = src.subarray(srcPosition, srcPosition + tileRowSize);\n data.set(rowBytes, dataPosition);\n srcPosition += tileRowSize;\n dataPosition += imgRowSize;\n }\n }\n this.buffer = data;\n }\n this.bufferLength = this.buffer.length;\n this.eof = true;\n }\n}\n\nexport { JpxStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseException, info, unreachable, warn } from \"../shared/util.js\";\nimport { log2, readUint16, readUint32 } from \"./core_utils.js\";\nimport { ArithmeticDecoder } from \"./arithmetic_decoder.js\";\n\nclass JpxError extends BaseException {\n constructor(msg) {\n super(`JPX error: ${msg}`, \"JpxError\");\n }\n}\n\n// Table E.1\nconst SubbandsGainLog2 = {\n LL: 0,\n LH: 1,\n HL: 1,\n HH: 2,\n};\n\nclass JpxImage {\n constructor() {\n this.failOnCorruptedImage = false;\n }\n\n parse(data) {\n const head = readUint16(data, 0);\n // No box header, immediate start of codestream (SOC)\n if (head === 0xff4f) {\n this.parseCodestream(data, 0, data.length);\n return;\n }\n\n const length = data.length;\n let position = 0;\n while (position < length) {\n let headerSize = 8;\n let lbox = readUint32(data, position);\n const tbox = readUint32(data, position + 4);\n position += headerSize;\n if (lbox === 1) {\n // XLBox: read UInt64 according to spec.\n // JavaScript's int precision of 53 bit should be sufficient here.\n lbox =\n readUint32(data, position) * 4294967296 +\n readUint32(data, position + 4);\n position += 8;\n headerSize += 8;\n }\n if (lbox === 0) {\n lbox = length - position + headerSize;\n }\n if (lbox < headerSize) {\n throw new JpxError(\"Invalid box field size\");\n }\n const dataLength = lbox - headerSize;\n let jumpDataLength = true;\n switch (tbox) {\n case 0x6a703268: // 'jp2h'\n jumpDataLength = false; // parsing child boxes\n break;\n case 0x636f6c72: // 'colr'\n // Colorspaces are not used, the CS from the PDF is used.\n const method = data[position];\n if (method === 1) {\n // enumerated colorspace\n const colorspace = readUint32(data, position + 3);\n switch (colorspace) {\n case 16: // this indicates a sRGB colorspace\n case 17: // this indicates a grayscale colorspace\n case 18: // this indicates a YUV colorspace\n break;\n default:\n warn(\"Unknown colorspace \" + colorspace);\n break;\n }\n } else if (method === 2) {\n info(\"ICC profile not supported\");\n }\n break;\n case 0x6a703263: // 'jp2c'\n this.parseCodestream(data, position, position + dataLength);\n break;\n case 0x6a502020: // 'jP\\024\\024'\n if (readUint32(data, position) !== 0x0d0a870a) {\n warn(\"Invalid JP2 signature\");\n }\n break;\n // The following header types are valid but currently not used:\n case 0x6a501a1a: // 'jP\\032\\032'\n case 0x66747970: // 'ftyp'\n case 0x72726571: // 'rreq'\n case 0x72657320: // 'res '\n case 0x69686472: // 'ihdr'\n break;\n default:\n const headerType = String.fromCharCode(\n (tbox >> 24) & 0xff,\n (tbox >> 16) & 0xff,\n (tbox >> 8) & 0xff,\n tbox & 0xff\n );\n warn(`Unsupported header type ${tbox} (${headerType}).`);\n break;\n }\n if (jumpDataLength) {\n position += dataLength;\n }\n }\n }\n\n parseImageProperties(stream) {\n let newByte = stream.getByte();\n while (newByte >= 0) {\n const oldByte = newByte;\n newByte = stream.getByte();\n const code = (oldByte << 8) | newByte;\n // Image and tile size (SIZ)\n if (code === 0xff51) {\n stream.skip(4);\n const Xsiz = stream.getInt32() >>> 0; // Byte 4\n const Ysiz = stream.getInt32() >>> 0; // Byte 8\n const XOsiz = stream.getInt32() >>> 0; // Byte 12\n const YOsiz = stream.getInt32() >>> 0; // Byte 16\n stream.skip(16);\n const Csiz = stream.getUint16(); // Byte 36\n this.width = Xsiz - XOsiz;\n this.height = Ysiz - YOsiz;\n this.componentsCount = Csiz;\n // Results are always returned as `Uint8ClampedArray`s.\n this.bitsPerComponent = 8;\n return;\n }\n }\n throw new JpxError(\"No size marker found in JPX stream\");\n }\n\n parseCodestream(data, start, end) {\n const context = {};\n let doNotRecover = false;\n try {\n let position = start;\n while (position + 1 < end) {\n const code = readUint16(data, position);\n position += 2;\n\n let length = 0,\n j,\n sqcd,\n spqcds,\n spqcdSize,\n scalarExpounded,\n tile;\n switch (code) {\n case 0xff4f: // Start of codestream (SOC)\n context.mainHeader = true;\n break;\n case 0xffd9: // End of codestream (EOC)\n break;\n case 0xff51: // Image and tile size (SIZ)\n length = readUint16(data, position);\n const siz = {};\n siz.Xsiz = readUint32(data, position + 4);\n siz.Ysiz = readUint32(data, position + 8);\n siz.XOsiz = readUint32(data, position + 12);\n siz.YOsiz = readUint32(data, position + 16);\n siz.XTsiz = readUint32(data, position + 20);\n siz.YTsiz = readUint32(data, position + 24);\n siz.XTOsiz = readUint32(data, position + 28);\n siz.YTOsiz = readUint32(data, position + 32);\n const componentsCount = readUint16(data, position + 36);\n siz.Csiz = componentsCount;\n const components = [];\n j = position + 38;\n for (let i = 0; i < componentsCount; i++) {\n const component = {\n precision: (data[j] & 0x7f) + 1,\n isSigned: !!(data[j] & 0x80),\n XRsiz: data[j + 1],\n YRsiz: data[j + 2],\n };\n j += 3;\n calculateComponentDimensions(component, siz);\n components.push(component);\n }\n context.SIZ = siz;\n context.components = components;\n calculateTileGrids(context, components);\n context.QCC = [];\n context.COC = [];\n break;\n case 0xff5c: // Quantization default (QCD)\n length = readUint16(data, position);\n const qcd = {};\n j = position + 2;\n sqcd = data[j++];\n switch (sqcd & 0x1f) {\n case 0:\n spqcdSize = 8;\n scalarExpounded = true;\n break;\n case 1:\n spqcdSize = 16;\n scalarExpounded = false;\n break;\n case 2:\n spqcdSize = 16;\n scalarExpounded = true;\n break;\n default:\n throw new Error(\"Invalid SQcd value \" + sqcd);\n }\n qcd.noQuantization = spqcdSize === 8;\n qcd.scalarExpounded = scalarExpounded;\n qcd.guardBits = sqcd >> 5;\n spqcds = [];\n while (j < length + position) {\n const spqcd = {};\n if (spqcdSize === 8) {\n spqcd.epsilon = data[j++] >> 3;\n spqcd.mu = 0;\n } else {\n spqcd.epsilon = data[j] >> 3;\n spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1];\n j += 2;\n }\n spqcds.push(spqcd);\n }\n qcd.SPqcds = spqcds;\n if (context.mainHeader) {\n context.QCD = qcd;\n } else {\n context.currentTile.QCD = qcd;\n context.currentTile.QCC = [];\n }\n break;\n case 0xff5d: // Quantization component (QCC)\n length = readUint16(data, position);\n const qcc = {};\n j = position + 2;\n let cqcc;\n if (context.SIZ.Csiz < 257) {\n cqcc = data[j++];\n } else {\n cqcc = readUint16(data, j);\n j += 2;\n }\n sqcd = data[j++];\n switch (sqcd & 0x1f) {\n case 0:\n spqcdSize = 8;\n scalarExpounded = true;\n break;\n case 1:\n spqcdSize = 16;\n scalarExpounded = false;\n break;\n case 2:\n spqcdSize = 16;\n scalarExpounded = true;\n break;\n default:\n throw new Error(\"Invalid SQcd value \" + sqcd);\n }\n qcc.noQuantization = spqcdSize === 8;\n qcc.scalarExpounded = scalarExpounded;\n qcc.guardBits = sqcd >> 5;\n spqcds = [];\n while (j < length + position) {\n const spqcd = {};\n if (spqcdSize === 8) {\n spqcd.epsilon = data[j++] >> 3;\n spqcd.mu = 0;\n } else {\n spqcd.epsilon = data[j] >> 3;\n spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1];\n j += 2;\n }\n spqcds.push(spqcd);\n }\n qcc.SPqcds = spqcds;\n if (context.mainHeader) {\n context.QCC[cqcc] = qcc;\n } else {\n context.currentTile.QCC[cqcc] = qcc;\n }\n break;\n case 0xff52: // Coding style default (COD)\n length = readUint16(data, position);\n const cod = {};\n j = position + 2;\n const scod = data[j++];\n cod.entropyCoderWithCustomPrecincts = !!(scod & 1);\n cod.sopMarkerUsed = !!(scod & 2);\n cod.ephMarkerUsed = !!(scod & 4);\n cod.progressionOrder = data[j++];\n cod.layersCount = readUint16(data, j);\n j += 2;\n cod.multipleComponentTransform = data[j++];\n\n cod.decompositionLevelsCount = data[j++];\n cod.xcb = (data[j++] & 0xf) + 2;\n cod.ycb = (data[j++] & 0xf) + 2;\n const blockStyle = data[j++];\n cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1);\n cod.resetContextProbabilities = !!(blockStyle & 2);\n cod.terminationOnEachCodingPass = !!(blockStyle & 4);\n cod.verticallyStripe = !!(blockStyle & 8);\n cod.predictableTermination = !!(blockStyle & 16);\n cod.segmentationSymbolUsed = !!(blockStyle & 32);\n cod.reversibleTransformation = data[j++];\n if (cod.entropyCoderWithCustomPrecincts) {\n const precinctsSizes = [];\n while (j < length + position) {\n const precinctsSize = data[j++];\n precinctsSizes.push({\n PPx: precinctsSize & 0xf,\n PPy: precinctsSize >> 4,\n });\n }\n cod.precinctsSizes = precinctsSizes;\n }\n const unsupported = [];\n if (cod.selectiveArithmeticCodingBypass) {\n unsupported.push(\"selectiveArithmeticCodingBypass\");\n }\n if (cod.terminationOnEachCodingPass) {\n unsupported.push(\"terminationOnEachCodingPass\");\n }\n if (cod.verticallyStripe) {\n unsupported.push(\"verticallyStripe\");\n }\n if (cod.predictableTermination) {\n unsupported.push(\"predictableTermination\");\n }\n if (unsupported.length > 0) {\n doNotRecover = true;\n warn(`JPX: Unsupported COD options (${unsupported.join(\", \")}).`);\n }\n if (context.mainHeader) {\n context.COD = cod;\n } else {\n context.currentTile.COD = cod;\n context.currentTile.COC = [];\n }\n break;\n case 0xff90: // Start of tile-part (SOT)\n length = readUint16(data, position);\n tile = {};\n tile.index = readUint16(data, position + 2);\n tile.length = readUint32(data, position + 4);\n tile.dataEnd = tile.length + position - 2;\n tile.partIndex = data[position + 8];\n tile.partsCount = data[position + 9];\n\n context.mainHeader = false;\n if (tile.partIndex === 0) {\n // reset component specific settings\n tile.COD = context.COD;\n tile.COC = context.COC.slice(0); // clone of the global COC\n tile.QCD = context.QCD;\n tile.QCC = context.QCC.slice(0); // clone of the global COC\n }\n context.currentTile = tile;\n break;\n case 0xff93: // Start of data (SOD)\n tile = context.currentTile;\n if (tile.partIndex === 0) {\n initializeTile(context, tile.index);\n buildPackets(context);\n }\n\n // moving to the end of the data\n length = tile.dataEnd - position;\n parseTilePackets(context, data, position, length);\n break;\n case 0xff53: // Coding style component (COC)\n warn(\"JPX: Codestream code 0xFF53 (COC) is not implemented.\");\n /* falls through */\n case 0xff55: // Tile-part lengths, main header (TLM)\n case 0xff57: // Packet length, main header (PLM)\n case 0xff58: // Packet length, tile-part header (PLT)\n case 0xff64: // Comment (COM)\n length = readUint16(data, position);\n // skipping content\n break;\n default:\n throw new Error(\"Unknown codestream code: \" + code.toString(16));\n }\n position += length;\n }\n } catch (e) {\n if (doNotRecover || this.failOnCorruptedImage) {\n throw new JpxError(e.message);\n } else {\n warn(`JPX: Trying to recover from: \"${e.message}\".`);\n }\n }\n this.tiles = transformComponents(context);\n this.width = context.SIZ.Xsiz - context.SIZ.XOsiz;\n this.height = context.SIZ.Ysiz - context.SIZ.YOsiz;\n this.componentsCount = context.SIZ.Csiz;\n }\n}\n\nfunction calculateComponentDimensions(component, siz) {\n // Section B.2 Component mapping\n component.x0 = Math.ceil(siz.XOsiz / component.XRsiz);\n component.x1 = Math.ceil(siz.Xsiz / component.XRsiz);\n component.y0 = Math.ceil(siz.YOsiz / component.YRsiz);\n component.y1 = Math.ceil(siz.Ysiz / component.YRsiz);\n component.width = component.x1 - component.x0;\n component.height = component.y1 - component.y0;\n}\nfunction calculateTileGrids(context, components) {\n const siz = context.SIZ;\n // Section B.3 Division into tile and tile-components\n const tiles = [];\n let tile;\n const numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz);\n const numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz);\n for (let q = 0; q < numYtiles; q++) {\n for (let p = 0; p < numXtiles; p++) {\n tile = {};\n tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz);\n tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz);\n tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz);\n tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz);\n tile.width = tile.tx1 - tile.tx0;\n tile.height = tile.ty1 - tile.ty0;\n tile.components = [];\n tiles.push(tile);\n }\n }\n context.tiles = tiles;\n\n const componentsCount = siz.Csiz;\n for (let i = 0, ii = componentsCount; i < ii; i++) {\n const component = components[i];\n for (let j = 0, jj = tiles.length; j < jj; j++) {\n const tileComponent = {};\n tile = tiles[j];\n tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz);\n tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz);\n tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz);\n tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz);\n tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0;\n tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0;\n tile.components[i] = tileComponent;\n }\n }\n}\nfunction getBlocksDimensions(context, component, r) {\n const codOrCoc = component.codingStyleParameters;\n const result = {};\n if (!codOrCoc.entropyCoderWithCustomPrecincts) {\n result.PPx = 15;\n result.PPy = 15;\n } else {\n result.PPx = codOrCoc.precinctsSizes[r].PPx;\n result.PPy = codOrCoc.precinctsSizes[r].PPy;\n }\n // calculate codeblock size as described in section B.7\n result.xcb_ =\n r > 0\n ? Math.min(codOrCoc.xcb, result.PPx - 1)\n : Math.min(codOrCoc.xcb, result.PPx);\n result.ycb_ =\n r > 0\n ? Math.min(codOrCoc.ycb, result.PPy - 1)\n : Math.min(codOrCoc.ycb, result.PPy);\n return result;\n}\nfunction buildPrecincts(context, resolution, dimensions) {\n // Section B.6 Division resolution to precincts\n const precinctWidth = 1 << dimensions.PPx;\n const precinctHeight = 1 << dimensions.PPy;\n // Jasper introduces codeblock groups for mapping each subband codeblocks\n // to precincts. Precinct partition divides a resolution according to width\n // and height parameters. The subband that belongs to the resolution level\n // has a different size than the level, unless it is the zero resolution.\n\n // From Jasper documentation: jpeg2000.pdf, section K: Tier-2 coding:\n // The precinct partitioning for a particular subband is derived from a\n // partitioning of its parent LL band (i.e., the LL band at the next higher\n // resolution level)... The LL band associated with each resolution level is\n // divided into precincts... Each of the resulting precinct regions is then\n // mapped into its child subbands (if any) at the next lower resolution\n // level. This is accomplished by using the coordinate transformation\n // (u, v) = (ceil(x/2), ceil(y/2)) where (x, y) and (u, v) are the\n // coordinates of a point in the LL band and child subband, respectively.\n const isZeroRes = resolution.resLevel === 0;\n const precinctWidthInSubband = 1 << (dimensions.PPx + (isZeroRes ? 0 : -1));\n const precinctHeightInSubband = 1 << (dimensions.PPy + (isZeroRes ? 0 : -1));\n const numprecinctswide =\n resolution.trx1 > resolution.trx0\n ? Math.ceil(resolution.trx1 / precinctWidth) -\n Math.floor(resolution.trx0 / precinctWidth)\n : 0;\n const numprecinctshigh =\n resolution.try1 > resolution.try0\n ? Math.ceil(resolution.try1 / precinctHeight) -\n Math.floor(resolution.try0 / precinctHeight)\n : 0;\n const numprecincts = numprecinctswide * numprecinctshigh;\n\n resolution.precinctParameters = {\n precinctWidth,\n precinctHeight,\n numprecinctswide,\n numprecinctshigh,\n numprecincts,\n precinctWidthInSubband,\n precinctHeightInSubband,\n };\n}\nfunction buildCodeblocks(context, subband, dimensions) {\n // Section B.7 Division sub-band into code-blocks\n const xcb_ = dimensions.xcb_;\n const ycb_ = dimensions.ycb_;\n const codeblockWidth = 1 << xcb_;\n const codeblockHeight = 1 << ycb_;\n const cbx0 = subband.tbx0 >> xcb_;\n const cby0 = subband.tby0 >> ycb_;\n const cbx1 = (subband.tbx1 + codeblockWidth - 1) >> xcb_;\n const cby1 = (subband.tby1 + codeblockHeight - 1) >> ycb_;\n const precinctParameters = subband.resolution.precinctParameters;\n const codeblocks = [];\n const precincts = [];\n let i, j, codeblock, precinctNumber;\n for (j = cby0; j < cby1; j++) {\n for (i = cbx0; i < cbx1; i++) {\n codeblock = {\n cbx: i,\n cby: j,\n tbx0: codeblockWidth * i,\n tby0: codeblockHeight * j,\n tbx1: codeblockWidth * (i + 1),\n tby1: codeblockHeight * (j + 1),\n };\n\n codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0);\n codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0);\n codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1);\n codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1);\n\n // Calculate precinct number for this codeblock, codeblock position\n // should be relative to its subband, use actual dimension and position\n // See comment about codeblock group width and height\n const pi = Math.floor(\n (codeblock.tbx0_ - subband.tbx0) /\n precinctParameters.precinctWidthInSubband\n );\n const pj = Math.floor(\n (codeblock.tby0_ - subband.tby0) /\n precinctParameters.precinctHeightInSubband\n );\n precinctNumber = pi + pj * precinctParameters.numprecinctswide;\n\n codeblock.precinctNumber = precinctNumber;\n codeblock.subbandType = subband.type;\n codeblock.Lblock = 3;\n\n if (\n codeblock.tbx1_ <= codeblock.tbx0_ ||\n codeblock.tby1_ <= codeblock.tby0_\n ) {\n continue;\n }\n codeblocks.push(codeblock);\n // building precinct for the sub-band\n let precinct = precincts[precinctNumber];\n if (precinct !== undefined) {\n if (i < precinct.cbxMin) {\n precinct.cbxMin = i;\n } else if (i > precinct.cbxMax) {\n precinct.cbxMax = i;\n }\n if (j < precinct.cbyMin) {\n precinct.cbxMin = j;\n } else if (j > precinct.cbyMax) {\n precinct.cbyMax = j;\n }\n } else {\n precincts[precinctNumber] = precinct = {\n cbxMin: i,\n cbyMin: j,\n cbxMax: i,\n cbyMax: j,\n };\n }\n codeblock.precinct = precinct;\n }\n }\n subband.codeblockParameters = {\n codeblockWidth: xcb_,\n codeblockHeight: ycb_,\n numcodeblockwide: cbx1 - cbx0 + 1,\n numcodeblockhigh: cby1 - cby0 + 1,\n };\n subband.codeblocks = codeblocks;\n subband.precincts = precincts;\n}\nfunction createPacket(resolution, precinctNumber, layerNumber) {\n const precinctCodeblocks = [];\n // Section B.10.8 Order of info in packet\n const subbands = resolution.subbands;\n // sub-bands already ordered in 'LL', 'HL', 'LH', and 'HH' sequence\n for (let i = 0, ii = subbands.length; i < ii; i++) {\n const subband = subbands[i];\n const codeblocks = subband.codeblocks;\n for (let j = 0, jj = codeblocks.length; j < jj; j++) {\n const codeblock = codeblocks[j];\n if (codeblock.precinctNumber !== precinctNumber) {\n continue;\n }\n precinctCodeblocks.push(codeblock);\n }\n }\n return {\n layerNumber,\n codeblocks: precinctCodeblocks,\n };\n}\nfunction LayerResolutionComponentPositionIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n let maxDecompositionLevelsCount = 0;\n for (let q = 0; q < componentsCount; q++) {\n maxDecompositionLevelsCount = Math.max(\n maxDecompositionLevelsCount,\n tile.components[q].codingStyleParameters.decompositionLevelsCount\n );\n }\n\n let l = 0,\n r = 0,\n i = 0,\n k = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.1 Layer-resolution-component-position\n for (; l < layersCount; l++) {\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; i < componentsCount; i++) {\n const component = tile.components[i];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n\n const resolution = component.resolutions[r];\n const numprecincts = resolution.precinctParameters.numprecincts;\n for (; k < numprecincts; ) {\n const packet = createPacket(resolution, k, l);\n k++;\n return packet;\n }\n k = 0;\n }\n i = 0;\n }\n r = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction ResolutionLayerComponentPositionIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n let maxDecompositionLevelsCount = 0;\n for (let q = 0; q < componentsCount; q++) {\n maxDecompositionLevelsCount = Math.max(\n maxDecompositionLevelsCount,\n tile.components[q].codingStyleParameters.decompositionLevelsCount\n );\n }\n\n let r = 0,\n l = 0,\n i = 0,\n k = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.2 Resolution-layer-component-position\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; l < layersCount; l++) {\n for (; i < componentsCount; i++) {\n const component = tile.components[i];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n\n const resolution = component.resolutions[r];\n const numprecincts = resolution.precinctParameters.numprecincts;\n for (; k < numprecincts; ) {\n const packet = createPacket(resolution, k, l);\n k++;\n return packet;\n }\n k = 0;\n }\n i = 0;\n }\n l = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction ResolutionPositionComponentLayerIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n let l, r, c, p;\n let maxDecompositionLevelsCount = 0;\n for (c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n maxDecompositionLevelsCount = Math.max(\n maxDecompositionLevelsCount,\n component.codingStyleParameters.decompositionLevelsCount\n );\n }\n const maxNumPrecinctsInLevel = new Int32Array(\n maxDecompositionLevelsCount + 1\n );\n for (r = 0; r <= maxDecompositionLevelsCount; ++r) {\n let maxNumPrecincts = 0;\n for (c = 0; c < componentsCount; ++c) {\n const resolutions = tile.components[c].resolutions;\n if (r < resolutions.length) {\n maxNumPrecincts = Math.max(\n maxNumPrecincts,\n resolutions[r].precinctParameters.numprecincts\n );\n }\n }\n maxNumPrecinctsInLevel[r] = maxNumPrecincts;\n }\n l = 0;\n r = 0;\n c = 0;\n p = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.3 Resolution-position-component-layer\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; p < maxNumPrecinctsInLevel[r]; p++) {\n for (; c < componentsCount; c++) {\n const component = tile.components[c];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n const resolution = component.resolutions[r];\n const numprecincts = resolution.precinctParameters.numprecincts;\n if (p >= numprecincts) {\n continue;\n }\n for (; l < layersCount; ) {\n const packet = createPacket(resolution, p, l);\n l++;\n return packet;\n }\n l = 0;\n }\n c = 0;\n }\n p = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction PositionComponentResolutionLayerIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n const precinctsSizes = getPrecinctSizesInImageScale(tile);\n const precinctsIterationSizes = precinctsSizes;\n let l = 0,\n r = 0,\n c = 0,\n px = 0,\n py = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.4 Position-component-resolution-layer\n for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n for (; px < precinctsIterationSizes.maxNumWide; px++) {\n for (; c < componentsCount; c++) {\n const component = tile.components[c];\n const decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n for (; r <= decompositionLevelsCount; r++) {\n const resolution = component.resolutions[r];\n const sizeInImageScale =\n precinctsSizes.components[c].resolutions[r];\n const k = getPrecinctIndexIfExist(\n px,\n py,\n sizeInImageScale,\n precinctsIterationSizes,\n resolution\n );\n if (k === null) {\n continue;\n }\n for (; l < layersCount; ) {\n const packet = createPacket(resolution, k, l);\n l++;\n return packet;\n }\n l = 0;\n }\n r = 0;\n }\n c = 0;\n }\n px = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction ComponentPositionResolutionLayerIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n const precinctsSizes = getPrecinctSizesInImageScale(tile);\n let l = 0,\n r = 0,\n c = 0,\n px = 0,\n py = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.5 Component-position-resolution-layer\n for (; c < componentsCount; ++c) {\n const component = tile.components[c];\n const precinctsIterationSizes = precinctsSizes.components[c];\n const decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n for (; px < precinctsIterationSizes.maxNumWide; px++) {\n for (; r <= decompositionLevelsCount; r++) {\n const resolution = component.resolutions[r];\n const sizeInImageScale = precinctsIterationSizes.resolutions[r];\n const k = getPrecinctIndexIfExist(\n px,\n py,\n sizeInImageScale,\n precinctsIterationSizes,\n resolution\n );\n if (k === null) {\n continue;\n }\n for (; l < layersCount; ) {\n const packet = createPacket(resolution, k, l);\n l++;\n return packet;\n }\n l = 0;\n }\n r = 0;\n }\n px = 0;\n }\n py = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction getPrecinctIndexIfExist(\n pxIndex,\n pyIndex,\n sizeInImageScale,\n precinctIterationSizes,\n resolution\n) {\n const posX = pxIndex * precinctIterationSizes.minWidth;\n const posY = pyIndex * precinctIterationSizes.minHeight;\n if (\n posX % sizeInImageScale.width !== 0 ||\n posY % sizeInImageScale.height !== 0\n ) {\n return null;\n }\n const startPrecinctRowIndex =\n (posY / sizeInImageScale.width) *\n resolution.precinctParameters.numprecinctswide;\n return posX / sizeInImageScale.height + startPrecinctRowIndex;\n}\nfunction getPrecinctSizesInImageScale(tile) {\n const componentsCount = tile.components.length;\n let minWidth = Number.MAX_VALUE;\n let minHeight = Number.MAX_VALUE;\n let maxNumWide = 0;\n let maxNumHigh = 0;\n const sizePerComponent = new Array(componentsCount);\n for (let c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n const decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n const sizePerResolution = new Array(decompositionLevelsCount + 1);\n let minWidthCurrentComponent = Number.MAX_VALUE;\n let minHeightCurrentComponent = Number.MAX_VALUE;\n let maxNumWideCurrentComponent = 0;\n let maxNumHighCurrentComponent = 0;\n let scale = 1;\n for (let r = decompositionLevelsCount; r >= 0; --r) {\n const resolution = component.resolutions[r];\n const widthCurrentResolution =\n scale * resolution.precinctParameters.precinctWidth;\n const heightCurrentResolution =\n scale * resolution.precinctParameters.precinctHeight;\n minWidthCurrentComponent = Math.min(\n minWidthCurrentComponent,\n widthCurrentResolution\n );\n minHeightCurrentComponent = Math.min(\n minHeightCurrentComponent,\n heightCurrentResolution\n );\n maxNumWideCurrentComponent = Math.max(\n maxNumWideCurrentComponent,\n resolution.precinctParameters.numprecinctswide\n );\n maxNumHighCurrentComponent = Math.max(\n maxNumHighCurrentComponent,\n resolution.precinctParameters.numprecinctshigh\n );\n sizePerResolution[r] = {\n width: widthCurrentResolution,\n height: heightCurrentResolution,\n };\n scale <<= 1;\n }\n minWidth = Math.min(minWidth, minWidthCurrentComponent);\n minHeight = Math.min(minHeight, minHeightCurrentComponent);\n maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent);\n maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent);\n sizePerComponent[c] = {\n resolutions: sizePerResolution,\n minWidth: minWidthCurrentComponent,\n minHeight: minHeightCurrentComponent,\n maxNumWide: maxNumWideCurrentComponent,\n maxNumHigh: maxNumHighCurrentComponent,\n };\n }\n return {\n components: sizePerComponent,\n minWidth,\n minHeight,\n maxNumWide,\n maxNumHigh,\n };\n}\nfunction buildPackets(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const componentsCount = siz.Csiz;\n // Creating resolutions and sub-bands for each component\n for (let c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n const decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n // Section B.5 Resolution levels and sub-bands\n const resolutions = [];\n const subbands = [];\n for (let r = 0; r <= decompositionLevelsCount; r++) {\n const blocksDimensions = getBlocksDimensions(context, component, r);\n const resolution = {};\n const scale = 1 << (decompositionLevelsCount - r);\n resolution.trx0 = Math.ceil(component.tcx0 / scale);\n resolution.try0 = Math.ceil(component.tcy0 / scale);\n resolution.trx1 = Math.ceil(component.tcx1 / scale);\n resolution.try1 = Math.ceil(component.tcy1 / scale);\n resolution.resLevel = r;\n buildPrecincts(context, resolution, blocksDimensions);\n resolutions.push(resolution);\n\n let subband;\n if (r === 0) {\n // one sub-band (LL) with last decomposition\n subband = {};\n subband.type = \"LL\";\n subband.tbx0 = Math.ceil(component.tcx0 / scale);\n subband.tby0 = Math.ceil(component.tcy0 / scale);\n subband.tbx1 = Math.ceil(component.tcx1 / scale);\n subband.tby1 = Math.ceil(component.tcy1 / scale);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolution.subbands = [subband];\n } else {\n const bscale = 1 << (decompositionLevelsCount - r + 1);\n const resolutionSubbands = [];\n // three sub-bands (HL, LH and HH) with rest of decompositions\n subband = {};\n subband.type = \"HL\";\n subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n subband.tby0 = Math.ceil(component.tcy0 / bscale);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n subband.tby1 = Math.ceil(component.tcy1 / bscale);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n\n subband = {};\n subband.type = \"LH\";\n subband.tbx0 = Math.ceil(component.tcx0 / bscale);\n subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale);\n subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n\n subband = {};\n subband.type = \"HH\";\n subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n\n resolution.subbands = resolutionSubbands;\n }\n }\n component.resolutions = resolutions;\n component.subbands = subbands;\n }\n // Generate the packets sequence\n const progressionOrder = tile.codingStyleDefaultParameters.progressionOrder;\n switch (progressionOrder) {\n case 0:\n tile.packetsIterator = new LayerResolutionComponentPositionIterator(\n context\n );\n break;\n case 1:\n tile.packetsIterator = new ResolutionLayerComponentPositionIterator(\n context\n );\n break;\n case 2:\n tile.packetsIterator = new ResolutionPositionComponentLayerIterator(\n context\n );\n break;\n case 3:\n tile.packetsIterator = new PositionComponentResolutionLayerIterator(\n context\n );\n break;\n case 4:\n tile.packetsIterator = new ComponentPositionResolutionLayerIterator(\n context\n );\n break;\n default:\n throw new JpxError(`Unsupported progression order ${progressionOrder}`);\n }\n}\nfunction parseTilePackets(context, data, offset, dataLength) {\n let position = 0;\n let buffer,\n bufferSize = 0,\n skipNextBit = false;\n function readBits(count) {\n while (bufferSize < count) {\n const b = data[offset + position];\n position++;\n if (skipNextBit) {\n buffer = (buffer << 7) | b;\n bufferSize += 7;\n skipNextBit = false;\n } else {\n buffer = (buffer << 8) | b;\n bufferSize += 8;\n }\n if (b === 0xff) {\n skipNextBit = true;\n }\n }\n bufferSize -= count;\n return (buffer >>> bufferSize) & ((1 << count) - 1);\n }\n function skipMarkerIfEqual(value) {\n if (\n data[offset + position - 1] === 0xff &&\n data[offset + position] === value\n ) {\n skipBytes(1);\n return true;\n } else if (\n data[offset + position] === 0xff &&\n data[offset + position + 1] === value\n ) {\n skipBytes(2);\n return true;\n }\n return false;\n }\n function skipBytes(count) {\n position += count;\n }\n function alignToByte() {\n bufferSize = 0;\n if (skipNextBit) {\n position++;\n skipNextBit = false;\n }\n }\n function readCodingpasses() {\n if (readBits(1) === 0) {\n return 1;\n }\n if (readBits(1) === 0) {\n return 2;\n }\n let value = readBits(2);\n if (value < 3) {\n return value + 3;\n }\n value = readBits(5);\n if (value < 31) {\n return value + 6;\n }\n value = readBits(7);\n return value + 37;\n }\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const sopMarkerUsed = context.COD.sopMarkerUsed;\n const ephMarkerUsed = context.COD.ephMarkerUsed;\n const packetsIterator = tile.packetsIterator;\n while (position < dataLength) {\n alignToByte();\n if (sopMarkerUsed && skipMarkerIfEqual(0x91)) {\n // Skip also marker segment length and packet sequence ID\n skipBytes(4);\n }\n const packet = packetsIterator.nextPacket();\n if (!readBits(1)) {\n continue;\n }\n const layerNumber = packet.layerNumber,\n queue = [];\n let codeblock;\n for (let i = 0, ii = packet.codeblocks.length; i < ii; i++) {\n codeblock = packet.codeblocks[i];\n let precinct = codeblock.precinct;\n const codeblockColumn = codeblock.cbx - precinct.cbxMin;\n const codeblockRow = codeblock.cby - precinct.cbyMin;\n let codeblockIncluded = false;\n let firstTimeInclusion = false;\n let valueReady, zeroBitPlanesTree;\n if (codeblock.included !== undefined) {\n codeblockIncluded = !!readBits(1);\n } else {\n // reading inclusion tree\n precinct = codeblock.precinct;\n let inclusionTree;\n if (precinct.inclusionTree !== undefined) {\n inclusionTree = precinct.inclusionTree;\n } else {\n // building inclusion and zero bit-planes trees\n const width = precinct.cbxMax - precinct.cbxMin + 1;\n const height = precinct.cbyMax - precinct.cbyMin + 1;\n inclusionTree = new InclusionTree(width, height, layerNumber);\n zeroBitPlanesTree = new TagTree(width, height);\n precinct.inclusionTree = inclusionTree;\n precinct.zeroBitPlanesTree = zeroBitPlanesTree;\n for (let l = 0; l < layerNumber; l++) {\n if (readBits(1) !== 0) {\n throw new JpxError(\"Invalid tag tree\");\n }\n }\n }\n\n if (inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber)) {\n while (true) {\n if (readBits(1)) {\n valueReady = !inclusionTree.nextLevel();\n if (valueReady) {\n codeblock.included = true;\n codeblockIncluded = firstTimeInclusion = true;\n break;\n }\n } else {\n inclusionTree.incrementValue(layerNumber);\n break;\n }\n }\n }\n }\n if (!codeblockIncluded) {\n continue;\n }\n if (firstTimeInclusion) {\n zeroBitPlanesTree = precinct.zeroBitPlanesTree;\n zeroBitPlanesTree.reset(codeblockColumn, codeblockRow);\n while (true) {\n if (readBits(1)) {\n valueReady = !zeroBitPlanesTree.nextLevel();\n if (valueReady) {\n break;\n }\n } else {\n zeroBitPlanesTree.incrementValue();\n }\n }\n codeblock.zeroBitPlanes = zeroBitPlanesTree.value;\n }\n const codingpasses = readCodingpasses();\n while (readBits(1)) {\n codeblock.Lblock++;\n }\n const codingpassesLog2 = log2(codingpasses);\n // rounding down log2\n const bits =\n (codingpasses < 1 << codingpassesLog2\n ? codingpassesLog2 - 1\n : codingpassesLog2) + codeblock.Lblock;\n const codedDataLength = readBits(bits);\n queue.push({\n codeblock,\n codingpasses,\n dataLength: codedDataLength,\n });\n }\n alignToByte();\n if (ephMarkerUsed) {\n skipMarkerIfEqual(0x92);\n }\n while (queue.length > 0) {\n const packetItem = queue.shift();\n codeblock = packetItem.codeblock;\n if (codeblock.data === undefined) {\n codeblock.data = [];\n }\n codeblock.data.push({\n data,\n start: offset + position,\n end: offset + position + packetItem.dataLength,\n codingpasses: packetItem.codingpasses,\n });\n position += packetItem.dataLength;\n }\n }\n return position;\n}\nfunction copyCoefficients(\n coefficients,\n levelWidth,\n levelHeight,\n subband,\n delta,\n mb,\n reversible,\n segmentationSymbolUsed,\n resetContextProbabilities\n) {\n const x0 = subband.tbx0;\n const y0 = subband.tby0;\n const width = subband.tbx1 - subband.tbx0;\n const codeblocks = subband.codeblocks;\n const right = subband.type.charAt(0) === \"H\" ? 1 : 0;\n const bottom = subband.type.charAt(1) === \"H\" ? levelWidth : 0;\n\n for (let i = 0, ii = codeblocks.length; i < ii; ++i) {\n const codeblock = codeblocks[i];\n const blockWidth = codeblock.tbx1_ - codeblock.tbx0_;\n const blockHeight = codeblock.tby1_ - codeblock.tby0_;\n if (blockWidth === 0 || blockHeight === 0) {\n continue;\n }\n if (codeblock.data === undefined) {\n continue;\n }\n\n const bitModel = new BitModel(\n blockWidth,\n blockHeight,\n codeblock.subbandType,\n codeblock.zeroBitPlanes,\n mb\n );\n let currentCodingpassType = 2; // first bit plane starts from cleanup\n\n // collect data\n const data = codeblock.data;\n let totalLength = 0,\n codingpasses = 0;\n let j, jj, dataItem;\n for (j = 0, jj = data.length; j < jj; j++) {\n dataItem = data[j];\n totalLength += dataItem.end - dataItem.start;\n codingpasses += dataItem.codingpasses;\n }\n const encodedData = new Uint8Array(totalLength);\n let position = 0;\n for (j = 0, jj = data.length; j < jj; j++) {\n dataItem = data[j];\n const chunk = dataItem.data.subarray(dataItem.start, dataItem.end);\n encodedData.set(chunk, position);\n position += chunk.length;\n }\n // decoding the item\n const decoder = new ArithmeticDecoder(encodedData, 0, totalLength);\n bitModel.setDecoder(decoder);\n\n for (j = 0; j < codingpasses; j++) {\n switch (currentCodingpassType) {\n case 0:\n bitModel.runSignificancePropagationPass();\n break;\n case 1:\n bitModel.runMagnitudeRefinementPass();\n break;\n case 2:\n bitModel.runCleanupPass();\n if (segmentationSymbolUsed) {\n bitModel.checkSegmentationSymbol();\n }\n break;\n }\n\n if (resetContextProbabilities) {\n bitModel.reset();\n }\n\n currentCodingpassType = (currentCodingpassType + 1) % 3;\n }\n\n let offset = codeblock.tbx0_ - x0 + (codeblock.tby0_ - y0) * width;\n const sign = bitModel.coefficentsSign;\n const magnitude = bitModel.coefficentsMagnitude;\n const bitsDecoded = bitModel.bitsDecoded;\n const magnitudeCorrection = reversible ? 0 : 0.5;\n let k, n, nb;\n position = 0;\n // Do the interleaving of Section F.3.3 here, so we do not need\n // to copy later. LL level is not interleaved, just copied.\n const interleave = subband.type !== \"LL\";\n for (j = 0; j < blockHeight; j++) {\n const row = (offset / width) | 0; // row in the non-interleaved subband\n const levelOffset = 2 * row * (levelWidth - width) + right + bottom;\n for (k = 0; k < blockWidth; k++) {\n n = magnitude[position];\n if (n !== 0) {\n n = (n + magnitudeCorrection) * delta;\n if (sign[position] !== 0) {\n n = -n;\n }\n nb = bitsDecoded[position];\n const pos = interleave ? levelOffset + (offset << 1) : offset;\n if (reversible && nb >= mb) {\n coefficients[pos] = n;\n } else {\n coefficients[pos] = n * (1 << (mb - nb));\n }\n }\n offset++;\n position++;\n }\n offset += width - blockWidth;\n }\n }\n}\nfunction transformTile(context, tile, c) {\n const component = tile.components[c];\n const codingStyleParameters = component.codingStyleParameters;\n const quantizationParameters = component.quantizationParameters;\n const decompositionLevelsCount =\n codingStyleParameters.decompositionLevelsCount;\n const spqcds = quantizationParameters.SPqcds;\n const scalarExpounded = quantizationParameters.scalarExpounded;\n const guardBits = quantizationParameters.guardBits;\n const segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed;\n const resetContextProbabilities =\n codingStyleParameters.resetContextProbabilities;\n const precision = context.components[c].precision;\n\n const reversible = codingStyleParameters.reversibleTransformation;\n const transform = reversible\n ? new ReversibleTransform()\n : new IrreversibleTransform();\n\n const subbandCoefficients = [];\n let b = 0;\n for (let i = 0; i <= decompositionLevelsCount; i++) {\n const resolution = component.resolutions[i];\n\n const width = resolution.trx1 - resolution.trx0;\n const height = resolution.try1 - resolution.try0;\n // Allocate space for the whole sublevel.\n const coefficients = new Float32Array(width * height);\n\n for (let j = 0, jj = resolution.subbands.length; j < jj; j++) {\n let mu, epsilon;\n if (!scalarExpounded) {\n // formula E-5\n mu = spqcds[0].mu;\n epsilon = spqcds[0].epsilon + (i > 0 ? 1 - i : 0);\n } else {\n mu = spqcds[b].mu;\n epsilon = spqcds[b].epsilon;\n b++;\n }\n\n const subband = resolution.subbands[j];\n const gainLog2 = SubbandsGainLog2[subband.type];\n\n // calculate quantization coefficient (Section E.1.1.1)\n const delta = reversible\n ? 1\n : 2 ** (precision + gainLog2 - epsilon) * (1 + mu / 2048);\n const mb = guardBits + epsilon - 1;\n\n // In the first resolution level, copyCoefficients will fill the\n // whole array with coefficients. In the succeeding passes,\n // copyCoefficients will consecutively fill in the values that belong\n // to the interleaved positions of the HL, LH, and HH coefficients.\n // The LL coefficients will then be interleaved in Transform.iterate().\n copyCoefficients(\n coefficients,\n width,\n height,\n subband,\n delta,\n mb,\n reversible,\n segmentationSymbolUsed,\n resetContextProbabilities\n );\n }\n subbandCoefficients.push({\n width,\n height,\n items: coefficients,\n });\n }\n\n const result = transform.calculate(\n subbandCoefficients,\n component.tcx0,\n component.tcy0\n );\n return {\n left: component.tcx0,\n top: component.tcy0,\n width: result.width,\n height: result.height,\n items: result.items,\n };\n}\nfunction transformComponents(context) {\n const siz = context.SIZ;\n const components = context.components;\n const componentsCount = siz.Csiz;\n const resultImages = [];\n for (let i = 0, ii = context.tiles.length; i < ii; i++) {\n const tile = context.tiles[i];\n const transformedTiles = [];\n for (let c = 0; c < componentsCount; c++) {\n transformedTiles[c] = transformTile(context, tile, c);\n }\n const tile0 = transformedTiles[0];\n const out = new Uint8ClampedArray(tile0.items.length * componentsCount);\n const result = {\n left: tile0.left,\n top: tile0.top,\n width: tile0.width,\n height: tile0.height,\n items: out,\n };\n\n // Section G.2.2 Inverse multi component transform\n let shift, offset;\n let pos = 0,\n j,\n jj,\n y0,\n y1,\n y2;\n if (tile.codingStyleDefaultParameters.multipleComponentTransform) {\n const fourComponents = componentsCount === 4;\n const y0items = transformedTiles[0].items;\n const y1items = transformedTiles[1].items;\n const y2items = transformedTiles[2].items;\n const y3items = fourComponents ? transformedTiles[3].items : null;\n\n // HACK: The multiple component transform formulas below assume that\n // all components have the same precision. With this in mind, we\n // compute shift and offset only once.\n shift = components[0].precision - 8;\n offset = (128 << shift) + 0.5;\n\n const component0 = tile.components[0];\n const alpha01 = componentsCount - 3;\n jj = y0items.length;\n if (!component0.codingStyleParameters.reversibleTransformation) {\n // inverse irreversible multiple component transform\n for (j = 0; j < jj; j++, pos += alpha01) {\n y0 = y0items[j] + offset;\n y1 = y1items[j];\n y2 = y2items[j];\n out[pos++] = (y0 + 1.402 * y2) >> shift;\n out[pos++] = (y0 - 0.34413 * y1 - 0.71414 * y2) >> shift;\n out[pos++] = (y0 + 1.772 * y1) >> shift;\n }\n } else {\n // inverse reversible multiple component transform\n for (j = 0; j < jj; j++, pos += alpha01) {\n y0 = y0items[j] + offset;\n y1 = y1items[j];\n y2 = y2items[j];\n const g = y0 - ((y2 + y1) >> 2);\n\n out[pos++] = (g + y2) >> shift;\n out[pos++] = g >> shift;\n out[pos++] = (g + y1) >> shift;\n }\n }\n if (fourComponents) {\n for (j = 0, pos = 3; j < jj; j++, pos += 4) {\n out[pos] = (y3items[j] + offset) >> shift;\n }\n }\n } else {\n // no multi-component transform\n for (let c = 0; c < componentsCount; c++) {\n const items = transformedTiles[c].items;\n shift = components[c].precision - 8;\n offset = (128 << shift) + 0.5;\n for (pos = c, j = 0, jj = items.length; j < jj; j++) {\n out[pos] = (items[j] + offset) >> shift;\n pos += componentsCount;\n }\n }\n }\n resultImages.push(result);\n }\n return resultImages;\n}\nfunction initializeTile(context, tileIndex) {\n const siz = context.SIZ;\n const componentsCount = siz.Csiz;\n const tile = context.tiles[tileIndex];\n for (let c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n const qcdOrQcc =\n context.currentTile.QCC[c] !== undefined\n ? context.currentTile.QCC[c]\n : context.currentTile.QCD;\n component.quantizationParameters = qcdOrQcc;\n const codOrCoc =\n context.currentTile.COC[c] !== undefined\n ? context.currentTile.COC[c]\n : context.currentTile.COD;\n component.codingStyleParameters = codOrCoc;\n }\n tile.codingStyleDefaultParameters = context.currentTile.COD;\n}\n\n// Section B.10.2 Tag trees\nclass TagTree {\n constructor(width, height) {\n const levelsLength = log2(Math.max(width, height)) + 1;\n this.levels = [];\n for (let i = 0; i < levelsLength; i++) {\n const level = {\n width,\n height,\n items: [],\n };\n this.levels.push(level);\n width = Math.ceil(width / 2);\n height = Math.ceil(height / 2);\n }\n }\n\n reset(i, j) {\n let currentLevel = 0,\n value = 0,\n level;\n while (currentLevel < this.levels.length) {\n level = this.levels[currentLevel];\n const index = i + j * level.width;\n if (level.items[index] !== undefined) {\n value = level.items[index];\n break;\n }\n level.index = index;\n i >>= 1;\n j >>= 1;\n currentLevel++;\n }\n currentLevel--;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n this.currentLevel = currentLevel;\n delete this.value;\n }\n\n incrementValue() {\n const level = this.levels[this.currentLevel];\n level.items[level.index]++;\n }\n\n nextLevel() {\n let currentLevel = this.currentLevel;\n let level = this.levels[currentLevel];\n const value = level.items[level.index];\n currentLevel--;\n if (currentLevel < 0) {\n this.value = value;\n return false;\n }\n\n this.currentLevel = currentLevel;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n return true;\n }\n}\n\nclass InclusionTree {\n constructor(width, height, defaultValue) {\n const levelsLength = log2(Math.max(width, height)) + 1;\n this.levels = [];\n for (let i = 0; i < levelsLength; i++) {\n const items = new Uint8Array(width * height);\n for (let j = 0, jj = items.length; j < jj; j++) {\n items[j] = defaultValue;\n }\n\n const level = {\n width,\n height,\n items,\n };\n this.levels.push(level);\n\n width = Math.ceil(width / 2);\n height = Math.ceil(height / 2);\n }\n }\n\n reset(i, j, stopValue) {\n let currentLevel = 0;\n while (currentLevel < this.levels.length) {\n const level = this.levels[currentLevel];\n const index = i + j * level.width;\n level.index = index;\n const value = level.items[index];\n\n if (value === 0xff) {\n break;\n }\n\n if (value > stopValue) {\n this.currentLevel = currentLevel;\n // already know about this one, propagating the value to top levels\n this.propagateValues();\n return false;\n }\n\n i >>= 1;\n j >>= 1;\n currentLevel++;\n }\n this.currentLevel = currentLevel - 1;\n return true;\n }\n\n incrementValue(stopValue) {\n const level = this.levels[this.currentLevel];\n level.items[level.index] = stopValue + 1;\n this.propagateValues();\n }\n\n propagateValues() {\n let levelIndex = this.currentLevel;\n let level = this.levels[levelIndex];\n const currentValue = level.items[level.index];\n while (--levelIndex >= 0) {\n level = this.levels[levelIndex];\n level.items[level.index] = currentValue;\n }\n }\n\n nextLevel() {\n let currentLevel = this.currentLevel;\n let level = this.levels[currentLevel];\n const value = level.items[level.index];\n level.items[level.index] = 0xff;\n currentLevel--;\n if (currentLevel < 0) {\n return false;\n }\n\n this.currentLevel = currentLevel;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n return true;\n }\n}\n\n// Section D. Coefficient bit modeling\nconst BitModel = (function BitModelClosure() {\n const UNIFORM_CONTEXT = 17;\n const RUNLENGTH_CONTEXT = 18;\n // Table D-1\n // The index is binary presentation: 0dddvvhh, ddd - sum of Di (0..4),\n // vv - sum of Vi (0..2), and hh - sum of Hi (0..2)\n const LLAndLHContextsLabel = new Uint8Array([\n 0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4,\n 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6,\n 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8,\n ]);\n const HLContextLabel = new Uint8Array([\n 0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8,\n 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3,\n 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8,\n ]);\n const HHContextLabel = new Uint8Array([\n 0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5,\n 5, 5, 0, 0, 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8,\n 8, 0, 8, 8, 8, 0, 8, 8, 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8,\n ]);\n\n // eslint-disable-next-line no-shadow\n class BitModel {\n constructor(width, height, subband, zeroBitPlanes, mb) {\n this.width = width;\n this.height = height;\n\n let contextLabelTable;\n if (subband === \"HH\") {\n contextLabelTable = HHContextLabel;\n } else if (subband === \"HL\") {\n contextLabelTable = HLContextLabel;\n } else {\n contextLabelTable = LLAndLHContextsLabel;\n }\n this.contextLabelTable = contextLabelTable;\n\n const coefficientCount = width * height;\n\n // coefficients outside the encoding region treated as insignificant\n // add border state cells for significanceState\n this.neighborsSignificance = new Uint8Array(coefficientCount);\n this.coefficentsSign = new Uint8Array(coefficientCount);\n let coefficentsMagnitude;\n if (mb > 14) {\n coefficentsMagnitude = new Uint32Array(coefficientCount);\n } else if (mb > 6) {\n coefficentsMagnitude = new Uint16Array(coefficientCount);\n } else {\n coefficentsMagnitude = new Uint8Array(coefficientCount);\n }\n this.coefficentsMagnitude = coefficentsMagnitude;\n this.processingFlags = new Uint8Array(coefficientCount);\n\n const bitsDecoded = new Uint8Array(coefficientCount);\n if (zeroBitPlanes !== 0) {\n for (let i = 0; i < coefficientCount; i++) {\n bitsDecoded[i] = zeroBitPlanes;\n }\n }\n this.bitsDecoded = bitsDecoded;\n\n this.reset();\n }\n\n setDecoder(decoder) {\n this.decoder = decoder;\n }\n\n reset() {\n // We have 17 contexts that are accessed via context labels,\n // plus the uniform and runlength context.\n this.contexts = new Int8Array(19);\n\n // Contexts are packed into 1 byte:\n // highest 7 bits carry the index, lowest bit carries mps\n this.contexts[0] = (4 << 1) | 0;\n this.contexts[UNIFORM_CONTEXT] = (46 << 1) | 0;\n this.contexts[RUNLENGTH_CONTEXT] = (3 << 1) | 0;\n }\n\n setNeighborsSignificance(row, column, index) {\n const neighborsSignificance = this.neighborsSignificance;\n const width = this.width,\n height = this.height;\n const left = column > 0;\n const right = column + 1 < width;\n let i;\n\n if (row > 0) {\n i = index - width;\n if (left) {\n neighborsSignificance[i - 1] += 0x10;\n }\n if (right) {\n neighborsSignificance[i + 1] += 0x10;\n }\n neighborsSignificance[i] += 0x04;\n }\n\n if (row + 1 < height) {\n i = index + width;\n if (left) {\n neighborsSignificance[i - 1] += 0x10;\n }\n if (right) {\n neighborsSignificance[i + 1] += 0x10;\n }\n neighborsSignificance[i] += 0x04;\n }\n\n if (left) {\n neighborsSignificance[index - 1] += 0x01;\n }\n if (right) {\n neighborsSignificance[index + 1] += 0x01;\n }\n neighborsSignificance[index] |= 0x80;\n }\n\n runSignificancePropagationPass() {\n const decoder = this.decoder;\n const width = this.width,\n height = this.height;\n const coefficentsMagnitude = this.coefficentsMagnitude;\n const coefficentsSign = this.coefficentsSign;\n const neighborsSignificance = this.neighborsSignificance;\n const processingFlags = this.processingFlags;\n const contexts = this.contexts;\n const labels = this.contextLabelTable;\n const bitsDecoded = this.bitsDecoded;\n const processedInverseMask = ~1;\n const processedMask = 1;\n const firstMagnitudeBitMask = 2;\n\n for (let i0 = 0; i0 < height; i0 += 4) {\n for (let j = 0; j < width; j++) {\n let index = i0 * width + j;\n for (let i1 = 0; i1 < 4; i1++, index += width) {\n const i = i0 + i1;\n if (i >= height) {\n break;\n }\n // clear processed flag first\n processingFlags[index] &= processedInverseMask;\n\n if (coefficentsMagnitude[index] || !neighborsSignificance[index]) {\n continue;\n }\n\n const contextLabel = labels[neighborsSignificance[index]];\n const decision = decoder.readBit(contexts, contextLabel);\n if (decision) {\n const sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n }\n bitsDecoded[index]++;\n processingFlags[index] |= processedMask;\n }\n }\n }\n }\n\n decodeSignBit(row, column, index) {\n const width = this.width,\n height = this.height;\n const coefficentsMagnitude = this.coefficentsMagnitude;\n const coefficentsSign = this.coefficentsSign;\n let contribution, sign0, sign1, significance1;\n let contextLabel, decoded;\n\n // calculate horizontal contribution\n significance1 = column > 0 && coefficentsMagnitude[index - 1] !== 0;\n if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) {\n sign1 = coefficentsSign[index + 1];\n if (significance1) {\n sign0 = coefficentsSign[index - 1];\n contribution = 1 - sign1 - sign0;\n } else {\n contribution = 1 - sign1 - sign1;\n }\n } else if (significance1) {\n sign0 = coefficentsSign[index - 1];\n contribution = 1 - sign0 - sign0;\n } else {\n contribution = 0;\n }\n const horizontalContribution = 3 * contribution;\n\n // calculate vertical contribution and combine with the horizontal\n significance1 = row > 0 && coefficentsMagnitude[index - width] !== 0;\n if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) {\n sign1 = coefficentsSign[index + width];\n if (significance1) {\n sign0 = coefficentsSign[index - width];\n contribution = 1 - sign1 - sign0 + horizontalContribution;\n } else {\n contribution = 1 - sign1 - sign1 + horizontalContribution;\n }\n } else if (significance1) {\n sign0 = coefficentsSign[index - width];\n contribution = 1 - sign0 - sign0 + horizontalContribution;\n } else {\n contribution = horizontalContribution;\n }\n\n if (contribution >= 0) {\n contextLabel = 9 + contribution;\n decoded = this.decoder.readBit(this.contexts, contextLabel);\n } else {\n contextLabel = 9 - contribution;\n decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1;\n }\n return decoded;\n }\n\n runMagnitudeRefinementPass() {\n const decoder = this.decoder;\n const width = this.width,\n height = this.height;\n const coefficentsMagnitude = this.coefficentsMagnitude;\n const neighborsSignificance = this.neighborsSignificance;\n const contexts = this.contexts;\n const bitsDecoded = this.bitsDecoded;\n const processingFlags = this.processingFlags;\n const processedMask = 1;\n const firstMagnitudeBitMask = 2;\n const length = width * height;\n const width4 = width * 4;\n\n for (let index0 = 0, indexNext; index0 < length; index0 = indexNext) {\n indexNext = Math.min(length, index0 + width4);\n for (let j = 0; j < width; j++) {\n for (let index = index0 + j; index < indexNext; index += width) {\n // significant but not those that have just become\n if (\n !coefficentsMagnitude[index] ||\n (processingFlags[index] & processedMask) !== 0\n ) {\n continue;\n }\n\n let contextLabel = 16;\n if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) {\n processingFlags[index] ^= firstMagnitudeBitMask;\n // first refinement\n const significance = neighborsSignificance[index] & 127;\n contextLabel = significance === 0 ? 15 : 14;\n }\n\n const bit = decoder.readBit(contexts, contextLabel);\n coefficentsMagnitude[index] =\n (coefficentsMagnitude[index] << 1) | bit;\n bitsDecoded[index]++;\n processingFlags[index] |= processedMask;\n }\n }\n }\n }\n\n runCleanupPass() {\n const decoder = this.decoder;\n const width = this.width,\n height = this.height;\n const neighborsSignificance = this.neighborsSignificance;\n const coefficentsMagnitude = this.coefficentsMagnitude;\n const coefficentsSign = this.coefficentsSign;\n const contexts = this.contexts;\n const labels = this.contextLabelTable;\n const bitsDecoded = this.bitsDecoded;\n const processingFlags = this.processingFlags;\n const processedMask = 1;\n const firstMagnitudeBitMask = 2;\n const oneRowDown = width;\n const twoRowsDown = width * 2;\n const threeRowsDown = width * 3;\n let iNext;\n for (let i0 = 0; i0 < height; i0 = iNext) {\n iNext = Math.min(i0 + 4, height);\n const indexBase = i0 * width;\n const checkAllEmpty = i0 + 3 < height;\n for (let j = 0; j < width; j++) {\n const index0 = indexBase + j;\n // using the property: labels[neighborsSignificance[index]] === 0\n // when neighborsSignificance[index] === 0\n const allEmpty =\n checkAllEmpty &&\n processingFlags[index0] === 0 &&\n processingFlags[index0 + oneRowDown] === 0 &&\n processingFlags[index0 + twoRowsDown] === 0 &&\n processingFlags[index0 + threeRowsDown] === 0 &&\n neighborsSignificance[index0] === 0 &&\n neighborsSignificance[index0 + oneRowDown] === 0 &&\n neighborsSignificance[index0 + twoRowsDown] === 0 &&\n neighborsSignificance[index0 + threeRowsDown] === 0;\n let i1 = 0,\n index = index0;\n let i = i0,\n sign;\n if (allEmpty) {\n const hasSignificantCoefficent = decoder.readBit(\n contexts,\n RUNLENGTH_CONTEXT\n );\n if (!hasSignificantCoefficent) {\n bitsDecoded[index0]++;\n bitsDecoded[index0 + oneRowDown]++;\n bitsDecoded[index0 + twoRowsDown]++;\n bitsDecoded[index0 + threeRowsDown]++;\n continue; // next column\n }\n i1 =\n (decoder.readBit(contexts, UNIFORM_CONTEXT) << 1) |\n decoder.readBit(contexts, UNIFORM_CONTEXT);\n if (i1 !== 0) {\n i = i0 + i1;\n index += i1 * width;\n }\n\n sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n\n index = index0;\n for (let i2 = i0; i2 <= i; i2++, index += width) {\n bitsDecoded[index]++;\n }\n\n i1++;\n }\n for (i = i0 + i1; i < iNext; i++, index += width) {\n if (\n coefficentsMagnitude[index] ||\n (processingFlags[index] & processedMask) !== 0\n ) {\n continue;\n }\n\n const contextLabel = labels[neighborsSignificance[index]];\n const decision = decoder.readBit(contexts, contextLabel);\n if (decision === 1) {\n sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n }\n bitsDecoded[index]++;\n }\n }\n }\n }\n\n checkSegmentationSymbol() {\n const decoder = this.decoder;\n const contexts = this.contexts;\n const symbol =\n (decoder.readBit(contexts, UNIFORM_CONTEXT) << 3) |\n (decoder.readBit(contexts, UNIFORM_CONTEXT) << 2) |\n (decoder.readBit(contexts, UNIFORM_CONTEXT) << 1) |\n decoder.readBit(contexts, UNIFORM_CONTEXT);\n if (symbol !== 0xa) {\n throw new JpxError(\"Invalid segmentation symbol\");\n }\n }\n }\n\n return BitModel;\n})();\n\n// Section F, Discrete wavelet transformation\nclass Transform {\n constructor() {\n if (this.constructor === Transform) {\n unreachable(\"Cannot initialize Transform.\");\n }\n }\n\n calculate(subbands, u0, v0) {\n let ll = subbands[0];\n for (let i = 1, ii = subbands.length; i < ii; i++) {\n ll = this.iterate(ll, subbands[i], u0, v0);\n }\n return ll;\n }\n\n extend(buffer, offset, size) {\n // Section F.3.7 extending... using max extension of 4\n let i1 = offset - 1,\n j1 = offset + 1;\n let i2 = offset + size - 2,\n j2 = offset + size;\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1] = buffer[j1];\n buffer[j2] = buffer[i2];\n }\n\n filter(x, offset, length) {\n unreachable(\"Abstract method `filter` called\");\n }\n\n iterate(ll, hl_lh_hh, u0, v0) {\n const llWidth = ll.width,\n llHeight = ll.height;\n let llItems = ll.items;\n const width = hl_lh_hh.width;\n const height = hl_lh_hh.height;\n const items = hl_lh_hh.items;\n let i, j, k, l, u, v;\n\n // Interleave LL according to Section F.3.3\n for (k = 0, i = 0; i < llHeight; i++) {\n l = i * 2 * width;\n for (j = 0; j < llWidth; j++, k++, l += 2) {\n items[l] = llItems[k];\n }\n }\n // The LL band is not needed anymore.\n llItems = ll.items = null;\n\n const bufferPadding = 4;\n const rowBuffer = new Float32Array(width + 2 * bufferPadding);\n\n // Section F.3.4 HOR_SR\n if (width === 1) {\n // if width = 1, when u0 even keep items as is, when odd divide by 2\n if ((u0 & 1) !== 0) {\n for (v = 0, k = 0; v < height; v++, k += width) {\n items[k] *= 0.5;\n }\n }\n } else {\n for (v = 0, k = 0; v < height; v++, k += width) {\n rowBuffer.set(items.subarray(k, k + width), bufferPadding);\n\n this.extend(rowBuffer, bufferPadding, width);\n this.filter(rowBuffer, bufferPadding, width);\n\n items.set(rowBuffer.subarray(bufferPadding, bufferPadding + width), k);\n }\n }\n\n // Accesses to the items array can take long, because it may not fit into\n // CPU cache and has to be fetched from main memory. Since subsequent\n // accesses to the items array are not local when reading columns, we\n // have a cache miss every time. To reduce cache misses, get up to\n // 'numBuffers' items at a time and store them into the individual\n // buffers. The colBuffers should be small enough to fit into CPU cache.\n let numBuffers = 16;\n const colBuffers = [];\n for (i = 0; i < numBuffers; i++) {\n colBuffers.push(new Float32Array(height + 2 * bufferPadding));\n }\n let b,\n currentBuffer = 0;\n ll = bufferPadding + height;\n\n // Section F.3.5 VER_SR\n if (height === 1) {\n // if height = 1, when v0 even keep items as is, when odd divide by 2\n if ((v0 & 1) !== 0) {\n for (u = 0; u < width; u++) {\n items[u] *= 0.5;\n }\n }\n } else {\n for (u = 0; u < width; u++) {\n // if we ran out of buffers, copy several image columns at once\n if (currentBuffer === 0) {\n numBuffers = Math.min(width - u, numBuffers);\n for (k = u, l = bufferPadding; l < ll; k += width, l++) {\n for (b = 0; b < numBuffers; b++) {\n colBuffers[b][l] = items[k + b];\n }\n }\n currentBuffer = numBuffers;\n }\n\n currentBuffer--;\n const buffer = colBuffers[currentBuffer];\n this.extend(buffer, bufferPadding, height);\n this.filter(buffer, bufferPadding, height);\n\n // If this is last buffer in this group of buffers, flush all buffers.\n if (currentBuffer === 0) {\n k = u - numBuffers + 1;\n for (l = bufferPadding; l < ll; k += width, l++) {\n for (b = 0; b < numBuffers; b++) {\n items[k + b] = colBuffers[b][l];\n }\n }\n }\n }\n }\n\n return { width, height, items };\n }\n}\n\n// Section 3.8.2 Irreversible 9-7 filter\nclass IrreversibleTransform extends Transform {\n filter(x, offset, length) {\n const len = length >> 1;\n offset |= 0;\n let j, n, current, next;\n\n const alpha = -1.586134342059924;\n const beta = -0.052980118572961;\n const gamma = 0.882911075530934;\n const delta = 0.443506852043971;\n const K = 1.230174104914001;\n const K_ = 1 / K;\n\n // step 1 is combined with step 3\n\n // step 2\n j = offset - 3;\n for (n = len + 4; n--; j += 2) {\n x[j] *= K_;\n }\n\n // step 1 & 3\n j = offset - 2;\n current = delta * x[j - 1];\n for (n = len + 3; n--; j += 2) {\n next = delta * x[j + 1];\n x[j] = K * x[j] - current - next;\n if (n--) {\n j += 2;\n current = delta * x[j + 1];\n x[j] = K * x[j] - current - next;\n } else {\n break;\n }\n }\n\n // step 4\n j = offset - 1;\n current = gamma * x[j - 1];\n for (n = len + 2; n--; j += 2) {\n next = gamma * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = gamma * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n\n // step 5\n j = offset;\n current = beta * x[j - 1];\n for (n = len + 1; n--; j += 2) {\n next = beta * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = beta * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n\n // step 6\n if (len !== 0) {\n j = offset + 1;\n current = alpha * x[j - 1];\n for (n = len; n--; j += 2) {\n next = alpha * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = alpha * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n }\n }\n}\n\n// Section 3.8.1 Reversible 5-3 filter\nclass ReversibleTransform extends Transform {\n filter(x, offset, length) {\n const len = length >> 1;\n offset |= 0;\n let j, n;\n\n for (j = offset, n = len + 1; n--; j += 2) {\n x[j] -= (x[j - 1] + x[j + 1] + 2) >> 2;\n }\n\n for (j = offset + 1, n = len; n--; j += 2) {\n x[j] += (x[j - 1] + x[j + 1]) >> 1;\n }\n }\n}\n\nexport { JpxImage };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\n\nclass LZWStream extends DecodeStream {\n constructor(str, maybeLength, earlyChange) {\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n this.cachedData = 0;\n this.bitsCached = 0;\n\n const maxLzwDictionarySize = 4096;\n const lzwState = {\n earlyChange,\n codeLength: 9,\n nextCode: 258,\n dictionaryValues: new Uint8Array(maxLzwDictionarySize),\n dictionaryLengths: new Uint16Array(maxLzwDictionarySize),\n dictionaryPrevCodes: new Uint16Array(maxLzwDictionarySize),\n currentSequence: new Uint8Array(maxLzwDictionarySize),\n currentSequenceLength: 0,\n };\n for (let i = 0; i < 256; ++i) {\n lzwState.dictionaryValues[i] = i;\n lzwState.dictionaryLengths[i] = 1;\n }\n this.lzwState = lzwState;\n }\n\n readBits(n) {\n let bitsCached = this.bitsCached;\n let cachedData = this.cachedData;\n while (bitsCached < n) {\n const c = this.str.getByte();\n if (c === -1) {\n this.eof = true;\n return null;\n }\n cachedData = (cachedData << 8) | c;\n bitsCached += 8;\n }\n this.bitsCached = bitsCached -= n;\n this.cachedData = cachedData;\n this.lastCode = null;\n return (cachedData >>> bitsCached) & ((1 << n) - 1);\n }\n\n readBlock() {\n const blockSize = 512,\n decodedSizeDelta = blockSize;\n let estimatedDecodedSize = blockSize * 2;\n let i, j, q;\n\n const lzwState = this.lzwState;\n if (!lzwState) {\n return; // eof was found\n }\n\n const earlyChange = lzwState.earlyChange;\n let nextCode = lzwState.nextCode;\n const dictionaryValues = lzwState.dictionaryValues;\n const dictionaryLengths = lzwState.dictionaryLengths;\n const dictionaryPrevCodes = lzwState.dictionaryPrevCodes;\n let codeLength = lzwState.codeLength;\n let prevCode = lzwState.prevCode;\n const currentSequence = lzwState.currentSequence;\n let currentSequenceLength = lzwState.currentSequenceLength;\n\n let decodedLength = 0;\n let currentBufferLength = this.bufferLength;\n let buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n\n for (i = 0; i < blockSize; i++) {\n const code = this.readBits(codeLength);\n const hasPrev = currentSequenceLength > 0;\n if (code < 256) {\n currentSequence[0] = code;\n currentSequenceLength = 1;\n } else if (code >= 258) {\n if (code < nextCode) {\n currentSequenceLength = dictionaryLengths[code];\n for (j = currentSequenceLength - 1, q = code; j >= 0; j--) {\n currentSequence[j] = dictionaryValues[q];\n q = dictionaryPrevCodes[q];\n }\n } else {\n currentSequence[currentSequenceLength++] = currentSequence[0];\n }\n } else if (code === 256) {\n codeLength = 9;\n nextCode = 258;\n currentSequenceLength = 0;\n continue;\n } else {\n this.eof = true;\n delete this.lzwState;\n break;\n }\n\n if (hasPrev) {\n dictionaryPrevCodes[nextCode] = prevCode;\n dictionaryLengths[nextCode] = dictionaryLengths[prevCode] + 1;\n dictionaryValues[nextCode] = currentSequence[0];\n nextCode++;\n codeLength =\n (nextCode + earlyChange) & (nextCode + earlyChange - 1)\n ? codeLength\n : Math.min(\n Math.log(nextCode + earlyChange) / 0.6931471805599453 + 1,\n 12\n ) | 0;\n }\n prevCode = code;\n\n decodedLength += currentSequenceLength;\n if (estimatedDecodedSize < decodedLength) {\n do {\n estimatedDecodedSize += decodedSizeDelta;\n } while (estimatedDecodedSize < decodedLength);\n buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n }\n for (j = 0; j < currentSequenceLength; j++) {\n buffer[currentBufferLength++] = currentSequence[j];\n }\n }\n lzwState.nextCode = nextCode;\n lzwState.codeLength = codeLength;\n lzwState.prevCode = prevCode;\n lzwState.currentSequenceLength = currentSequenceLength;\n\n this.bufferLength = currentBufferLength;\n }\n}\n\nexport { LZWStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { Dict } from \"./primitives.js\";\nimport { FormatError } from \"../shared/util.js\";\n\nclass PredictorStream extends DecodeStream {\n constructor(str, maybeLength, params) {\n super(maybeLength);\n\n if (!(params instanceof Dict)) {\n return str; // no prediction\n }\n const predictor = (this.predictor = params.get(\"Predictor\") || 1);\n\n if (predictor <= 1) {\n return str; // no prediction\n }\n if (predictor !== 2 && (predictor < 10 || predictor > 15)) {\n throw new FormatError(`Unsupported predictor: ${predictor}`);\n }\n\n if (predictor === 2) {\n this.readBlock = this.readBlockTiff;\n } else {\n this.readBlock = this.readBlockPng;\n }\n\n this.str = str;\n this.dict = str.dict;\n\n const colors = (this.colors = params.get(\"Colors\") || 1);\n const bits = (this.bits = params.get(\"BPC\", \"BitsPerComponent\") || 8);\n const columns = (this.columns = params.get(\"Columns\") || 1);\n\n this.pixBytes = (colors * bits + 7) >> 3;\n this.rowBytes = (columns * colors * bits + 7) >> 3;\n\n return this;\n }\n\n readBlockTiff() {\n const rowBytes = this.rowBytes;\n\n const bufferLength = this.bufferLength;\n const buffer = this.ensureBuffer(bufferLength + rowBytes);\n\n const bits = this.bits;\n const colors = this.colors;\n\n const rawBytes = this.str.getBytes(rowBytes);\n this.eof = !rawBytes.length;\n if (this.eof) {\n return;\n }\n\n let inbuf = 0,\n outbuf = 0;\n let inbits = 0,\n outbits = 0;\n let pos = bufferLength;\n let i;\n\n if (bits === 1 && colors === 1) {\n // Optimized version of the loop in the \"else\"-branch\n // for 1 bit-per-component and 1 color TIFF images.\n for (i = 0; i < rowBytes; ++i) {\n let c = rawBytes[i] ^ inbuf;\n c ^= c >> 1;\n c ^= c >> 2;\n c ^= c >> 4;\n inbuf = (c & 1) << 7;\n buffer[pos++] = c;\n }\n } else if (bits === 8) {\n for (i = 0; i < colors; ++i) {\n buffer[pos++] = rawBytes[i];\n }\n for (; i < rowBytes; ++i) {\n buffer[pos] = buffer[pos - colors] + rawBytes[i];\n pos++;\n }\n } else if (bits === 16) {\n const bytesPerPixel = colors * 2;\n for (i = 0; i < bytesPerPixel; ++i) {\n buffer[pos++] = rawBytes[i];\n }\n for (; i < rowBytes; i += 2) {\n const sum =\n ((rawBytes[i] & 0xff) << 8) +\n (rawBytes[i + 1] & 0xff) +\n ((buffer[pos - bytesPerPixel] & 0xff) << 8) +\n (buffer[pos - bytesPerPixel + 1] & 0xff);\n buffer[pos++] = (sum >> 8) & 0xff;\n buffer[pos++] = sum & 0xff;\n }\n } else {\n const compArray = new Uint8Array(colors + 1);\n const bitMask = (1 << bits) - 1;\n let j = 0,\n k = bufferLength;\n const columns = this.columns;\n for (i = 0; i < columns; ++i) {\n for (let kk = 0; kk < colors; ++kk) {\n if (inbits < bits) {\n inbuf = (inbuf << 8) | (rawBytes[j++] & 0xff);\n inbits += 8;\n }\n compArray[kk] =\n (compArray[kk] + (inbuf >> (inbits - bits))) & bitMask;\n inbits -= bits;\n outbuf = (outbuf << bits) | compArray[kk];\n outbits += bits;\n if (outbits >= 8) {\n buffer[k++] = (outbuf >> (outbits - 8)) & 0xff;\n outbits -= 8;\n }\n }\n }\n if (outbits > 0) {\n buffer[k++] =\n (outbuf << (8 - outbits)) + (inbuf & ((1 << (8 - outbits)) - 1));\n }\n }\n this.bufferLength += rowBytes;\n }\n\n readBlockPng() {\n const rowBytes = this.rowBytes;\n const pixBytes = this.pixBytes;\n\n const predictor = this.str.getByte();\n const rawBytes = this.str.getBytes(rowBytes);\n this.eof = !rawBytes.length;\n if (this.eof) {\n return;\n }\n\n const bufferLength = this.bufferLength;\n const buffer = this.ensureBuffer(bufferLength + rowBytes);\n\n let prevRow = buffer.subarray(bufferLength - rowBytes, bufferLength);\n if (prevRow.length === 0) {\n prevRow = new Uint8Array(rowBytes);\n }\n\n let i,\n j = bufferLength,\n up,\n c;\n switch (predictor) {\n case 0:\n for (i = 0; i < rowBytes; ++i) {\n buffer[j++] = rawBytes[i];\n }\n break;\n case 1:\n for (i = 0; i < pixBytes; ++i) {\n buffer[j++] = rawBytes[i];\n }\n for (; i < rowBytes; ++i) {\n buffer[j] = (buffer[j - pixBytes] + rawBytes[i]) & 0xff;\n j++;\n }\n break;\n case 2:\n for (i = 0; i < rowBytes; ++i) {\n buffer[j++] = (prevRow[i] + rawBytes[i]) & 0xff;\n }\n break;\n case 3:\n for (i = 0; i < pixBytes; ++i) {\n buffer[j++] = (prevRow[i] >> 1) + rawBytes[i];\n }\n for (; i < rowBytes; ++i) {\n buffer[j] =\n (((prevRow[i] + buffer[j - pixBytes]) >> 1) + rawBytes[i]) & 0xff;\n j++;\n }\n break;\n case 4:\n // we need to save the up left pixels values. the simplest way\n // is to create a new buffer\n for (i = 0; i < pixBytes; ++i) {\n up = prevRow[i];\n c = rawBytes[i];\n buffer[j++] = up + c;\n }\n for (; i < rowBytes; ++i) {\n up = prevRow[i];\n const upLeft = prevRow[i - pixBytes];\n const left = buffer[j - pixBytes];\n const p = left + up - upLeft;\n\n let pa = p - left;\n if (pa < 0) {\n pa = -pa;\n }\n let pb = p - up;\n if (pb < 0) {\n pb = -pb;\n }\n let pc = p - upLeft;\n if (pc < 0) {\n pc = -pc;\n }\n\n c = rawBytes[i];\n if (pa <= pb && pa <= pc) {\n buffer[j++] = left + c;\n } else if (pb <= pc) {\n buffer[j++] = up + c;\n } else {\n buffer[j++] = upLeft + c;\n }\n }\n break;\n default:\n throw new FormatError(`Unsupported predictor: ${predictor}`);\n }\n this.bufferLength += rowBytes;\n }\n}\n\nexport { PredictorStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\n\nclass RunLengthStream extends DecodeStream {\n constructor(str, maybeLength) {\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n }\n\n readBlock() {\n // The repeatHeader has following format. The first byte defines type of run\n // and amount of bytes to repeat/copy: n = 0 through 127 - copy next n bytes\n // (in addition to the second byte from the header), n = 129 through 255 -\n // duplicate the second byte from the header (257 - n) times, n = 128 - end.\n const repeatHeader = this.str.getBytes(2);\n if (!repeatHeader || repeatHeader.length < 2 || repeatHeader[0] === 128) {\n this.eof = true;\n return;\n }\n\n let buffer;\n let bufferLength = this.bufferLength;\n let n = repeatHeader[0];\n if (n < 128) {\n // copy n bytes\n buffer = this.ensureBuffer(bufferLength + n + 1);\n buffer[bufferLength++] = repeatHeader[1];\n if (n > 0) {\n const source = this.str.getBytes(n);\n buffer.set(source, bufferLength);\n bufferLength += n;\n }\n } else {\n n = 257 - n;\n const b = repeatHeader[1];\n buffer = this.ensureBuffer(bufferLength + n + 1);\n for (let i = 0; i < n; i++) {\n buffer[bufferLength++] = b;\n }\n }\n this.bufferLength = bufferLength;\n }\n}\n\nexport { RunLengthStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n bytesToString,\n FONT_IDENTITY_MATRIX,\n FontType,\n FormatError,\n info,\n shadow,\n string32,\n warn,\n} from \"../shared/util.js\";\nimport { CFFCompiler, CFFParser } from \"./cff_parser.js\";\nimport {\n FontFlags,\n getFontType,\n MacStandardGlyphOrdering,\n normalizeFontName,\n recoverGlyphName,\n SEAC_ANALYSIS_ENABLED,\n} from \"./fonts_utils.js\";\nimport {\n getCharUnicodeCategory,\n getUnicodeForGlyph,\n getUnicodeRangeFor,\n mapSpecialUnicodeValues,\n} from \"./unicode.js\";\nimport { getDingbatsGlyphsUnicode, getGlyphsUnicode } from \"./glyphlist.js\";\nimport {\n getEncoding,\n MacRomanEncoding,\n StandardEncoding,\n SymbolSetEncoding,\n ZapfDingbatsEncoding,\n} from \"./encodings.js\";\nimport {\n getGlyphMapForStandardFonts,\n getNonStdFontMap,\n getSerifFonts,\n getStdFontMap,\n getSupplementalGlyphMapForArialBlack,\n getSupplementalGlyphMapForCalibri,\n} from \"./standard_fonts.js\";\nimport { IdentityToUnicodeMap, ToUnicodeMap } from \"./to_unicode_map.js\";\nimport { CFFFont } from \"./cff_font.js\";\nimport { FontRendererFactory } from \"./font_renderer.js\";\nimport { getFontBasicMetrics } from \"./metrics.js\";\nimport { GlyfTable } from \"./glyf.js\";\nimport { IdentityCMap } from \"./cmap.js\";\nimport { OpenTypeFileBuilder } from \"./opentype_file_builder.js\";\nimport { readUint32 } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\nimport { Type1Font } from \"./type1_font.js\";\n\n// Unicode Private Use Areas:\nconst PRIVATE_USE_AREAS = [\n [0xe000, 0xf8ff], // BMP (0)\n [0x100000, 0x10fffd], // PUP (16)\n];\n\n// PDF Glyph Space Units are one Thousandth of a TextSpace Unit\n// except for Type 3 fonts\nconst PDF_GLYPH_SPACE_UNITS = 1000;\n\nconst EXPORT_DATA_PROPERTIES = [\n \"ascent\",\n \"bbox\",\n \"black\",\n \"bold\",\n \"charProcOperatorList\",\n \"composite\",\n \"cssFontInfo\",\n \"data\",\n \"defaultVMetrics\",\n \"defaultWidth\",\n \"descent\",\n \"fallbackName\",\n \"fontMatrix\",\n \"fontType\",\n \"isType3Font\",\n \"italic\",\n \"loadedName\",\n \"mimetype\",\n \"missingFile\",\n \"name\",\n \"remeasure\",\n \"subtype\",\n \"type\",\n \"vertical\",\n];\n\nconst EXPORT_DATA_EXTRA_PROPERTIES = [\n \"cMap\",\n \"defaultEncoding\",\n \"differences\",\n \"isMonospace\",\n \"isSerifFont\",\n \"isSymbolicFont\",\n \"seacMap\",\n \"toFontChar\",\n \"toUnicode\",\n \"vmetrics\",\n \"widths\",\n];\n\nfunction adjustWidths(properties) {\n if (!properties.fontMatrix) {\n return;\n }\n if (properties.fontMatrix[0] === FONT_IDENTITY_MATRIX[0]) {\n return;\n }\n // adjusting width to fontMatrix scale\n const scale = 0.001 / properties.fontMatrix[0];\n const glyphsWidths = properties.widths;\n for (const glyph in glyphsWidths) {\n glyphsWidths[glyph] *= scale;\n }\n properties.defaultWidth *= scale;\n}\n\nfunction adjustToUnicode(properties, builtInEncoding) {\n if (properties.isInternalFont) {\n return;\n }\n if (builtInEncoding === properties.defaultEncoding) {\n return; // No point in trying to adjust `toUnicode` if the encodings match.\n }\n if (properties.toUnicode instanceof IdentityToUnicodeMap) {\n return;\n }\n const toUnicode = [],\n glyphsUnicodeMap = getGlyphsUnicode();\n for (const charCode in builtInEncoding) {\n if (properties.hasIncludedToUnicodeMap) {\n if (properties.toUnicode.has(charCode)) {\n continue; // The font dictionary has a `ToUnicode` entry.\n }\n } else if (properties.hasEncoding) {\n if (\n properties.differences.length === 0 ||\n properties.differences[charCode] !== undefined\n ) {\n continue; // The font dictionary has an `Encoding`/`Differences` entry.\n }\n }\n const glyphName = builtInEncoding[charCode];\n const unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap);\n if (unicode !== -1) {\n toUnicode[charCode] = String.fromCharCode(unicode);\n }\n }\n if (toUnicode.length > 0) {\n properties.toUnicode.amend(toUnicode);\n }\n}\n\n/**\n * NOTE: This function should only be called at the *end* of font-parsing,\n * after e.g. `adjustToUnicode` has run, to prevent any issues.\n */\nfunction amendFallbackToUnicode(properties) {\n if (!properties.fallbackToUnicode) {\n return;\n }\n if (properties.toUnicode instanceof IdentityToUnicodeMap) {\n return;\n }\n const toUnicode = [];\n for (const charCode in properties.fallbackToUnicode) {\n if (properties.toUnicode.has(charCode)) {\n continue; // The font dictionary has a `ToUnicode` entry.\n }\n toUnicode[charCode] = properties.fallbackToUnicode[charCode];\n }\n if (toUnicode.length > 0) {\n properties.toUnicode.amend(toUnicode);\n }\n}\n\nclass Glyph {\n constructor(\n originalCharCode,\n fontChar,\n unicode,\n accent,\n width,\n vmetric,\n operatorListId,\n isSpace,\n isInFont\n ) {\n this.originalCharCode = originalCharCode;\n this.fontChar = fontChar;\n this.unicode = unicode;\n this.accent = accent;\n this.width = width;\n this.vmetric = vmetric;\n this.operatorListId = operatorListId;\n this.isSpace = isSpace;\n this.isInFont = isInFont;\n\n const category = getCharUnicodeCategory(unicode);\n this.isWhitespace = category.isWhitespace;\n this.isZeroWidthDiacritic = category.isZeroWidthDiacritic;\n this.isInvisibleFormatMark = category.isInvisibleFormatMark;\n }\n\n matchesForCache(\n originalCharCode,\n fontChar,\n unicode,\n accent,\n width,\n vmetric,\n operatorListId,\n isSpace,\n isInFont\n ) {\n return (\n this.originalCharCode === originalCharCode &&\n this.fontChar === fontChar &&\n this.unicode === unicode &&\n this.accent === accent &&\n this.width === width &&\n this.vmetric === vmetric &&\n this.operatorListId === operatorListId &&\n this.isSpace === isSpace &&\n this.isInFont === isInFont\n );\n }\n}\n\nfunction int16(b0, b1) {\n return (b0 << 8) + b1;\n}\n\nfunction writeSignedInt16(bytes, index, value) {\n bytes[index + 1] = value;\n bytes[index] = value >>> 8;\n}\n\nfunction signedInt16(b0, b1) {\n const value = (b0 << 8) + b1;\n return value & (1 << 15) ? value - 0x10000 : value;\n}\n\nfunction int32(b0, b1, b2, b3) {\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n}\n\nfunction string16(value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n typeof value === \"number\" && Math.abs(value) < 2 ** 16,\n `string16: Unexpected input \"${value}\".`\n );\n }\n return String.fromCharCode((value >> 8) & 0xff, value & 0xff);\n}\n\nfunction safeString16(value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n typeof value === \"number\" && !Number.isNaN(value),\n `safeString16: Unexpected input \"${value}\".`\n );\n }\n // clamp value to the 16-bit int range\n if (value > 0x7fff) {\n value = 0x7fff;\n } else if (value < -0x8000) {\n value = -0x8000;\n }\n return String.fromCharCode((value >> 8) & 0xff, value & 0xff);\n}\n\nfunction isTrueTypeFile(file) {\n const header = file.peekBytes(4);\n return (\n readUint32(header, 0) === 0x00010000 || bytesToString(header) === \"true\"\n );\n}\n\nfunction isTrueTypeCollectionFile(file) {\n const header = file.peekBytes(4);\n return bytesToString(header) === \"ttcf\";\n}\n\nfunction isOpenTypeFile(file) {\n const header = file.peekBytes(4);\n return bytesToString(header) === \"OTTO\";\n}\n\nfunction isType1File(file) {\n const header = file.peekBytes(2);\n // All Type1 font programs must begin with the comment '%!' (0x25 + 0x21).\n if (header[0] === 0x25 && header[1] === 0x21) {\n return true;\n }\n // ... obviously some fonts violate that part of the specification,\n // please refer to the comment in |Type1Font| below (pfb file header).\n if (header[0] === 0x80 && header[1] === 0x01) {\n return true;\n }\n return false;\n}\n\n/**\n * Compared to other font formats, the header in CFF files is not constant\n * but contains version numbers. To reduce the possibility of misclassifying\n * font files as CFF, it's recommended to check for other font formats first.\n */\nfunction isCFFFile(file) {\n const header = file.peekBytes(4);\n if (\n /* major version, [1, 255] */ header[0] >= 1 &&\n /* minor version, [0, 255]; header[1] */\n /* header size, [0, 255]; header[2] */\n /* offset(0) size, [1, 4] */ header[3] >= 1 &&\n header[3] <= 4\n ) {\n return true;\n }\n return false;\n}\n\nfunction getFontFileType(file, { type, subtype, composite }) {\n let fileType, fileSubtype;\n\n if (isTrueTypeFile(file) || isTrueTypeCollectionFile(file)) {\n if (composite) {\n fileType = \"CIDFontType2\";\n } else {\n fileType = \"TrueType\";\n }\n } else if (isOpenTypeFile(file)) {\n if (composite) {\n fileType = \"CIDFontType2\";\n } else {\n fileType = \"OpenType\";\n }\n } else if (isType1File(file)) {\n if (composite) {\n fileType = \"CIDFontType0\";\n } else {\n fileType = type === \"MMType1\" ? \"MMType1\" : \"Type1\";\n }\n } else if (isCFFFile(file)) {\n if (composite) {\n fileType = \"CIDFontType0\";\n fileSubtype = \"CIDFontType0C\";\n } else {\n fileType = type === \"MMType1\" ? \"MMType1\" : \"Type1\";\n fileSubtype = \"Type1C\";\n }\n } else {\n warn(\"getFontFileType: Unable to detect correct font file Type/Subtype.\");\n fileType = type;\n fileSubtype = subtype;\n }\n\n return [fileType, fileSubtype];\n}\n\nfunction applyStandardFontGlyphMap(map, glyphMap) {\n for (const charCode in glyphMap) {\n map[+charCode] = glyphMap[charCode];\n }\n}\n\nfunction buildToFontChar(encoding, glyphsUnicodeMap, differences) {\n const toFontChar = [];\n let unicode;\n for (let i = 0, ii = encoding.length; i < ii; i++) {\n unicode = getUnicodeForGlyph(encoding[i], glyphsUnicodeMap);\n if (unicode !== -1) {\n toFontChar[i] = unicode;\n }\n }\n for (const charCode in differences) {\n unicode = getUnicodeForGlyph(differences[charCode], glyphsUnicodeMap);\n if (unicode !== -1) {\n toFontChar[+charCode] = unicode;\n }\n }\n return toFontChar;\n}\n\nfunction convertCidString(charCode, cid, shouldThrow = false) {\n switch (cid.length) {\n case 1:\n return cid.charCodeAt(0);\n case 2:\n return (cid.charCodeAt(0) << 8) | cid.charCodeAt(1);\n }\n const msg = `Unsupported CID string (charCode ${charCode}): \"${cid}\".`;\n if (shouldThrow) {\n throw new FormatError(msg);\n }\n warn(msg);\n return cid;\n}\n\n/**\n * Rebuilds the char code to glyph ID map by moving all char codes to the\n * private use area. This is done to avoid issues with various problematic\n * unicode areas where either a glyph won't be drawn or is deformed by a\n * shaper.\n * @returns {Object} Two properties:\n * 'toFontChar' - maps original char codes(the value that will be read\n * from commands such as show text) to the char codes that will be used in the\n * font that we build\n * 'charCodeToGlyphId' - maps the new font char codes to glyph ids\n */\nfunction adjustMapping(charCodeToGlyphId, hasGlyph, newGlyphZeroId) {\n const newMap = Object.create(null);\n const toFontChar = [];\n let privateUseAreaIndex = 0;\n let nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n let privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n for (let originalCharCode in charCodeToGlyphId) {\n originalCharCode |= 0;\n let glyphId = charCodeToGlyphId[originalCharCode];\n // For missing glyphs don't create the mappings so the glyph isn't\n // drawn.\n if (!hasGlyph(glyphId)) {\n continue;\n }\n if (nextAvailableFontCharCode > privateUseOffetEnd) {\n privateUseAreaIndex++;\n if (privateUseAreaIndex >= PRIVATE_USE_AREAS.length) {\n warn(\"Ran out of space in font private use area.\");\n break;\n }\n nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n }\n const fontCharCode = nextAvailableFontCharCode++;\n if (glyphId === 0) {\n glyphId = newGlyphZeroId;\n }\n\n newMap[fontCharCode] = glyphId;\n toFontChar[originalCharCode] = fontCharCode;\n }\n return {\n toFontChar,\n charCodeToGlyphId: newMap,\n nextAvailableFontCharCode,\n };\n}\n\nfunction getRanges(glyphs, numGlyphs) {\n // Array.sort() sorts by characters, not numerically, so convert to an\n // array of characters.\n const codes = [];\n for (const charCode in glyphs) {\n // Remove an invalid glyph ID mappings to make OTS happy.\n if (glyphs[charCode] >= numGlyphs) {\n continue;\n }\n codes.push({ fontCharCode: charCode | 0, glyphId: glyphs[charCode] });\n }\n // Some fonts have zero glyphs and are used only for text selection, but\n // there needs to be at least one to build a valid cmap table.\n if (codes.length === 0) {\n codes.push({ fontCharCode: 0, glyphId: 0 });\n }\n codes.sort(function fontGetRangesSort(a, b) {\n return a.fontCharCode - b.fontCharCode;\n });\n\n // Split the sorted codes into ranges.\n const ranges = [];\n const length = codes.length;\n for (let n = 0; n < length; ) {\n const start = codes[n].fontCharCode;\n const codeIndices = [codes[n].glyphId];\n ++n;\n let end = start;\n while (n < length && end + 1 === codes[n].fontCharCode) {\n codeIndices.push(codes[n].glyphId);\n ++end;\n ++n;\n if (end === 0xffff) {\n break;\n }\n }\n ranges.push([start, end, codeIndices]);\n }\n\n return ranges;\n}\n\nfunction createCmapTable(glyphs, numGlyphs) {\n const ranges = getRanges(glyphs, numGlyphs);\n const numTables = ranges[ranges.length - 1][1] > 0xffff ? 2 : 1;\n let cmap =\n \"\\x00\\x00\" + // version\n string16(numTables) + // numTables\n \"\\x00\\x03\" + // platformID\n \"\\x00\\x01\" + // encodingID\n string32(4 + numTables * 8); // start of the table record\n\n let i, ii, j, jj;\n for (i = ranges.length - 1; i >= 0; --i) {\n if (ranges[i][0] <= 0xffff) {\n break;\n }\n }\n const bmpLength = i + 1;\n\n if (ranges[i][0] < 0xffff && ranges[i][1] === 0xffff) {\n ranges[i][1] = 0xfffe;\n }\n const trailingRangesCount = ranges[i][1] < 0xffff ? 1 : 0;\n const segCount = bmpLength + trailingRangesCount;\n const searchParams = OpenTypeFileBuilder.getSearchParams(segCount, 2);\n\n // Fill up the 4 parallel arrays describing the segments.\n let startCount = \"\";\n let endCount = \"\";\n let idDeltas = \"\";\n let idRangeOffsets = \"\";\n let glyphsIds = \"\";\n let bias = 0;\n\n let range, start, end, codes;\n for (i = 0, ii = bmpLength; i < ii; i++) {\n range = ranges[i];\n start = range[0];\n end = range[1];\n startCount += string16(start);\n endCount += string16(end);\n codes = range[2];\n let contiguous = true;\n for (j = 1, jj = codes.length; j < jj; ++j) {\n if (codes[j] !== codes[j - 1] + 1) {\n contiguous = false;\n break;\n }\n }\n if (!contiguous) {\n const offset = (segCount - i) * 2 + bias * 2;\n bias += end - start + 1;\n\n idDeltas += string16(0);\n idRangeOffsets += string16(offset);\n\n for (j = 0, jj = codes.length; j < jj; ++j) {\n glyphsIds += string16(codes[j]);\n }\n } else {\n const startCode = codes[0];\n\n idDeltas += string16((startCode - start) & 0xffff);\n idRangeOffsets += string16(0);\n }\n }\n\n if (trailingRangesCount > 0) {\n endCount += \"\\xFF\\xFF\";\n startCount += \"\\xFF\\xFF\";\n idDeltas += \"\\x00\\x01\";\n idRangeOffsets += \"\\x00\\x00\";\n }\n\n const format314 =\n \"\\x00\\x00\" + // language\n string16(2 * segCount) +\n string16(searchParams.range) +\n string16(searchParams.entry) +\n string16(searchParams.rangeShift) +\n endCount +\n \"\\x00\\x00\" +\n startCount +\n idDeltas +\n idRangeOffsets +\n glyphsIds;\n\n let format31012 = \"\";\n let header31012 = \"\";\n if (numTables > 1) {\n cmap +=\n \"\\x00\\x03\" + // platformID\n \"\\x00\\x0A\" + // encodingID\n string32(4 + numTables * 8 + 4 + format314.length); // start of the table record\n format31012 = \"\";\n for (i = 0, ii = ranges.length; i < ii; i++) {\n range = ranges[i];\n start = range[0];\n codes = range[2];\n let code = codes[0];\n for (j = 1, jj = codes.length; j < jj; ++j) {\n if (codes[j] !== codes[j - 1] + 1) {\n end = range[0] + j - 1;\n format31012 +=\n string32(start) + // startCharCode\n string32(end) + // endCharCode\n string32(code); // startGlyphID\n start = end + 1;\n code = codes[j];\n }\n }\n format31012 +=\n string32(start) + // startCharCode\n string32(range[1]) + // endCharCode\n string32(code); // startGlyphID\n }\n header31012 =\n \"\\x00\\x0C\" + // format\n \"\\x00\\x00\" + // reserved\n string32(format31012.length + 16) + // length\n \"\\x00\\x00\\x00\\x00\" + // language\n string32(format31012.length / 12); // nGroups\n }\n\n return (\n cmap +\n \"\\x00\\x04\" + // format\n string16(format314.length + 4) + // length\n format314 +\n header31012 +\n format31012\n );\n}\n\nfunction validateOS2Table(os2, file) {\n file.pos = (file.start || 0) + os2.offset;\n const version = file.getUint16();\n // TODO verify all OS/2 tables fields, but currently we validate only those\n // that give us issues\n file.skip(60); // skipping type, misc sizes, panose, unicode ranges\n const selection = file.getUint16();\n if (version < 4 && selection & 0x0300) {\n return false;\n }\n const firstChar = file.getUint16();\n const lastChar = file.getUint16();\n if (firstChar > lastChar) {\n return false;\n }\n file.skip(6); // skipping sTypoAscender/Descender/LineGap\n const usWinAscent = file.getUint16();\n if (usWinAscent === 0) {\n // makes font unreadable by windows\n return false;\n }\n\n // OS/2 appears to be valid, resetting some fields\n os2.data[8] = os2.data[9] = 0; // IE rejects fonts if fsType != 0\n return true;\n}\n\nfunction createOS2Table(properties, charstrings, override) {\n override = override || {\n unitsPerEm: 0,\n yMax: 0,\n yMin: 0,\n ascent: 0,\n descent: 0,\n };\n\n let ulUnicodeRange1 = 0;\n let ulUnicodeRange2 = 0;\n let ulUnicodeRange3 = 0;\n let ulUnicodeRange4 = 0;\n\n let firstCharIndex = null;\n let lastCharIndex = 0;\n\n if (charstrings) {\n for (let code in charstrings) {\n code |= 0;\n if (firstCharIndex > code || !firstCharIndex) {\n firstCharIndex = code;\n }\n if (lastCharIndex < code) {\n lastCharIndex = code;\n }\n\n const position = getUnicodeRangeFor(code);\n if (position < 32) {\n ulUnicodeRange1 |= 1 << position;\n } else if (position < 64) {\n ulUnicodeRange2 |= 1 << (position - 32);\n } else if (position < 96) {\n ulUnicodeRange3 |= 1 << (position - 64);\n } else if (position < 123) {\n ulUnicodeRange4 |= 1 << (position - 96);\n } else {\n throw new FormatError(\n \"Unicode ranges Bits > 123 are reserved for internal usage\"\n );\n }\n }\n if (lastCharIndex > 0xffff) {\n // OS2 only supports a 16 bit int. The spec says if supplementary\n // characters are used the field should just be set to 0xFFFF.\n lastCharIndex = 0xffff;\n }\n } else {\n // TODO\n firstCharIndex = 0;\n lastCharIndex = 255;\n }\n\n const bbox = properties.bbox || [0, 0, 0, 0];\n const unitsPerEm =\n override.unitsPerEm ||\n 1 / (properties.fontMatrix || FONT_IDENTITY_MATRIX)[0];\n\n // if the font units differ to the PDF glyph space units\n // then scale up the values\n const scale = properties.ascentScaled\n ? 1.0\n : unitsPerEm / PDF_GLYPH_SPACE_UNITS;\n\n const typoAscent =\n override.ascent || Math.round(scale * (properties.ascent || bbox[3]));\n let typoDescent =\n override.descent || Math.round(scale * (properties.descent || bbox[1]));\n if (typoDescent > 0 && properties.descent > 0 && bbox[1] < 0) {\n typoDescent = -typoDescent; // fixing incorrect descent\n }\n const winAscent = override.yMax || typoAscent;\n const winDescent = -override.yMin || -typoDescent;\n\n return (\n \"\\x00\\x03\" + // version\n \"\\x02\\x24\" + // xAvgCharWidth\n \"\\x01\\xF4\" + // usWeightClass\n \"\\x00\\x05\" + // usWidthClass\n \"\\x00\\x00\" + // fstype (0 to let the font loads via font-face on IE)\n \"\\x02\\x8A\" + // ySubscriptXSize\n \"\\x02\\xBB\" + // ySubscriptYSize\n \"\\x00\\x00\" + // ySubscriptXOffset\n \"\\x00\\x8C\" + // ySubscriptYOffset\n \"\\x02\\x8A\" + // ySuperScriptXSize\n \"\\x02\\xBB\" + // ySuperScriptYSize\n \"\\x00\\x00\" + // ySuperScriptXOffset\n \"\\x01\\xDF\" + // ySuperScriptYOffset\n \"\\x00\\x31\" + // yStrikeOutSize\n \"\\x01\\x02\" + // yStrikeOutPosition\n \"\\x00\\x00\" + // sFamilyClass\n \"\\x00\\x00\\x06\" +\n String.fromCharCode(properties.fixedPitch ? 0x09 : 0x00) +\n \"\\x00\\x00\\x00\\x00\\x00\\x00\" + // Panose\n string32(ulUnicodeRange1) + // ulUnicodeRange1 (Bits 0-31)\n string32(ulUnicodeRange2) + // ulUnicodeRange2 (Bits 32-63)\n string32(ulUnicodeRange3) + // ulUnicodeRange3 (Bits 64-95)\n string32(ulUnicodeRange4) + // ulUnicodeRange4 (Bits 96-127)\n \"\\x2A\\x32\\x31\\x2A\" + // achVendID\n string16(properties.italicAngle ? 1 : 0) + // fsSelection\n string16(firstCharIndex || properties.firstChar) + // usFirstCharIndex\n string16(lastCharIndex || properties.lastChar) + // usLastCharIndex\n string16(typoAscent) + // sTypoAscender\n string16(typoDescent) + // sTypoDescender\n \"\\x00\\x64\" + // sTypoLineGap (7%-10% of the unitsPerEM value)\n string16(winAscent) + // usWinAscent\n string16(winDescent) + // usWinDescent\n \"\\x00\\x00\\x00\\x00\" + // ulCodePageRange1 (Bits 0-31)\n \"\\x00\\x00\\x00\\x00\" + // ulCodePageRange2 (Bits 32-63)\n string16(properties.xHeight) + // sxHeight\n string16(properties.capHeight) + // sCapHeight\n string16(0) + // usDefaultChar\n string16(firstCharIndex || properties.firstChar) + // usBreakChar\n \"\\x00\\x03\"\n ); // usMaxContext\n}\n\nfunction createPostTable(properties) {\n const angle = Math.floor(properties.italicAngle * 2 ** 16);\n return (\n \"\\x00\\x03\\x00\\x00\" + // Version number\n string32(angle) + // italicAngle\n \"\\x00\\x00\" + // underlinePosition\n \"\\x00\\x00\" + // underlineThickness\n string32(properties.fixedPitch ? 1 : 0) + // isFixedPitch\n \"\\x00\\x00\\x00\\x00\" + // minMemType42\n \"\\x00\\x00\\x00\\x00\" + // maxMemType42\n \"\\x00\\x00\\x00\\x00\" + // minMemType1\n \"\\x00\\x00\\x00\\x00\"\n ); // maxMemType1\n}\n\nfunction createPostscriptName(name) {\n // See https://docs.microsoft.com/en-us/typography/opentype/spec/recom#name.\n return name.replace(/[^\\x21-\\x7E]|[[\\](){}<>/%]/g, \"\").slice(0, 63);\n}\n\nfunction createNameTable(name, proto) {\n if (!proto) {\n proto = [[], []]; // no strings and unicode strings\n }\n\n const strings = [\n proto[0][0] || \"Original licence\", // 0.Copyright\n proto[0][1] || name, // 1.Font family\n proto[0][2] || \"Unknown\", // 2.Font subfamily (font weight)\n proto[0][3] || \"uniqueID\", // 3.Unique ID\n proto[0][4] || name, // 4.Full font name\n proto[0][5] || \"Version 0.11\", // 5.Version\n proto[0][6] || createPostscriptName(name), // 6.Postscript name\n proto[0][7] || \"Unknown\", // 7.Trademark\n proto[0][8] || \"Unknown\", // 8.Manufacturer\n proto[0][9] || \"Unknown\", // 9.Designer\n ];\n\n // Mac want 1-byte per character strings while Windows want\n // 2-bytes per character, so duplicate the names table\n const stringsUnicode = [];\n let i, ii, j, jj, str;\n for (i = 0, ii = strings.length; i < ii; i++) {\n str = proto[1][i] || strings[i];\n\n const strBufUnicode = [];\n for (j = 0, jj = str.length; j < jj; j++) {\n strBufUnicode.push(string16(str.charCodeAt(j)));\n }\n stringsUnicode.push(strBufUnicode.join(\"\"));\n }\n\n const names = [strings, stringsUnicode];\n const platforms = [\"\\x00\\x01\", \"\\x00\\x03\"];\n const encodings = [\"\\x00\\x00\", \"\\x00\\x01\"];\n const languages = [\"\\x00\\x00\", \"\\x04\\x09\"];\n\n const namesRecordCount = strings.length * platforms.length;\n let nameTable =\n \"\\x00\\x00\" + // format\n string16(namesRecordCount) + // Number of names Record\n string16(namesRecordCount * 12 + 6); // Storage\n\n // Build the name records field\n let strOffset = 0;\n for (i = 0, ii = platforms.length; i < ii; i++) {\n const strs = names[i];\n for (j = 0, jj = strs.length; j < jj; j++) {\n str = strs[j];\n const nameRecord =\n platforms[i] + // platform ID\n encodings[i] + // encoding ID\n languages[i] + // language ID\n string16(j) + // name ID\n string16(str.length) +\n string16(strOffset);\n nameTable += nameRecord;\n strOffset += str.length;\n }\n }\n\n nameTable += strings.join(\"\") + stringsUnicode.join(\"\");\n return nameTable;\n}\n\n/**\n * 'Font' is the class the outside world should use, it encapsulate all the font\n * decoding logics whatever type it is (assuming the font type is supported).\n */\nclass Font {\n constructor(name, file, properties) {\n this.name = name;\n this.psName = null;\n this.mimetype = null;\n this.disableFontFace = false;\n\n this.loadedName = properties.loadedName;\n this.isType3Font = properties.isType3Font;\n this.missingFile = false;\n this.cssFontInfo = properties.cssFontInfo;\n\n this._charsCache = Object.create(null);\n this._glyphCache = Object.create(null);\n\n let isSerifFont = !!(properties.flags & FontFlags.Serif);\n // Fallback to checking the font name, in order to improve text-selection,\n // since the /Flags-entry is often wrong (fixes issue13845.pdf).\n if (!isSerifFont && !properties.isSimulatedFlags) {\n const baseName = name.replace(/[,_]/g, \"-\").split(\"-\")[0],\n serifFonts = getSerifFonts();\n for (const namePart of baseName.split(\"+\")) {\n if (serifFonts[namePart]) {\n isSerifFont = true;\n break;\n }\n }\n }\n this.isSerifFont = isSerifFont;\n\n this.isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n this.isMonospace = !!(properties.flags & FontFlags.FixedPitch);\n\n let type = properties.type;\n let subtype = properties.subtype;\n this.type = type;\n this.subtype = subtype;\n\n let fallbackName = \"sans-serif\";\n if (this.isMonospace) {\n fallbackName = \"monospace\";\n } else if (this.isSerifFont) {\n fallbackName = \"serif\";\n }\n this.fallbackName = fallbackName;\n\n this.differences = properties.differences;\n this.widths = properties.widths;\n this.defaultWidth = properties.defaultWidth;\n this.composite = properties.composite;\n this.cMap = properties.cMap;\n this.capHeight = properties.capHeight / PDF_GLYPH_SPACE_UNITS;\n this.ascent = properties.ascent / PDF_GLYPH_SPACE_UNITS;\n this.descent = properties.descent / PDF_GLYPH_SPACE_UNITS;\n this.lineHeight = this.ascent - this.descent;\n this.fontMatrix = properties.fontMatrix;\n this.bbox = properties.bbox;\n this.defaultEncoding = properties.defaultEncoding;\n\n this.toUnicode = properties.toUnicode;\n this.toFontChar = [];\n\n if (properties.type === \"Type3\") {\n for (let charCode = 0; charCode < 256; charCode++) {\n this.toFontChar[charCode] =\n this.differences[charCode] || properties.defaultEncoding[charCode];\n }\n this.fontType = FontType.TYPE3;\n return;\n }\n\n this.cidEncoding = properties.cidEncoding || \"\";\n this.vertical = !!properties.vertical;\n if (this.vertical) {\n this.vmetrics = properties.vmetrics;\n this.defaultVMetrics = properties.defaultVMetrics;\n }\n\n if (!file || file.isEmpty) {\n if (file) {\n // Some bad PDF generators will include empty font files,\n // attempting to recover by assuming that no file exists.\n warn('Font file is empty in \"' + name + '\" (' + this.loadedName + \")\");\n }\n this.fallbackToSystemFont(properties);\n return;\n }\n\n // Parse the font file to determine the correct type/subtype, rather than\n // relying on the (often incorrect) data in the font dictionary; (see e.g.\n // issue6782.pdf, issue7598.pdf, and issue9949.pdf).\n [type, subtype] = getFontFileType(file, properties);\n\n if (type !== this.type || subtype !== this.subtype) {\n info(\n \"Inconsistent font file Type/SubType, expected: \" +\n `${this.type}/${this.subtype} but found: ${type}/${subtype}.`\n );\n }\n\n let data;\n try {\n switch (type) {\n case \"MMType1\":\n info(\"MMType1 font (\" + name + \"), falling back to Type1.\");\n /* falls through */\n case \"Type1\":\n case \"CIDFontType0\":\n this.mimetype = \"font/opentype\";\n\n const cff =\n subtype === \"Type1C\" || subtype === \"CIDFontType0C\"\n ? new CFFFont(file, properties)\n : new Type1Font(name, file, properties);\n\n adjustWidths(properties);\n\n // Wrap the CFF data inside an OTF font file\n data = this.convert(name, cff, properties);\n break;\n\n case \"OpenType\":\n case \"TrueType\":\n case \"CIDFontType2\":\n this.mimetype = \"font/opentype\";\n\n // Repair the TrueType file. It is can be damaged in the point of\n // view of the sanitizer\n data = this.checkAndRepair(name, file, properties);\n if (this.isOpenType) {\n adjustWidths(properties);\n\n type = \"OpenType\";\n }\n break;\n\n default:\n throw new FormatError(`Font ${type} is not supported`);\n }\n } catch (e) {\n warn(e);\n this.fallbackToSystemFont(properties);\n return;\n }\n\n amendFallbackToUnicode(properties);\n this.data = data;\n this.fontType = getFontType(type, subtype, properties.isStandardFont);\n\n // Transfer some properties again that could change during font conversion\n this.fontMatrix = properties.fontMatrix;\n this.widths = properties.widths;\n this.defaultWidth = properties.defaultWidth;\n this.toUnicode = properties.toUnicode;\n this.seacMap = properties.seacMap;\n }\n\n get renderer() {\n const renderer = FontRendererFactory.create(this, SEAC_ANALYSIS_ENABLED);\n return shadow(this, \"renderer\", renderer);\n }\n\n exportData(extraProperties = false) {\n const exportDataProperties = extraProperties\n ? [...EXPORT_DATA_PROPERTIES, ...EXPORT_DATA_EXTRA_PROPERTIES]\n : EXPORT_DATA_PROPERTIES;\n\n const data = Object.create(null);\n let property, value;\n for (property of exportDataProperties) {\n value = this[property];\n // Ignore properties that haven't been explicitly set.\n if (value !== undefined) {\n data[property] = value;\n }\n }\n return data;\n }\n\n fallbackToSystemFont(properties) {\n this.missingFile = true;\n // The file data is not specified. Trying to fix the font name\n // to be used with the canvas.font.\n const name = this.name;\n const type = this.type;\n const subtype = this.subtype;\n let fontName = normalizeFontName(name);\n const stdFontMap = getStdFontMap(),\n nonStdFontMap = getNonStdFontMap();\n const isStandardFont = !!stdFontMap[fontName];\n const isMappedToStandardFont = !!(\n nonStdFontMap[fontName] && stdFontMap[nonStdFontMap[fontName]]\n );\n\n fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName;\n\n const fontBasicMetricsMap = getFontBasicMetrics();\n const metrics = fontBasicMetricsMap[fontName];\n if (metrics) {\n if (isNaN(this.ascent)) {\n this.ascent = metrics.ascent / PDF_GLYPH_SPACE_UNITS;\n }\n if (isNaN(this.descent)) {\n this.descent = metrics.descent / PDF_GLYPH_SPACE_UNITS;\n }\n if (isNaN(this.capHeight)) {\n this.capHeight = metrics.capHeight / PDF_GLYPH_SPACE_UNITS;\n }\n }\n\n this.bold = fontName.search(/bold/gi) !== -1;\n this.italic =\n fontName.search(/oblique/gi) !== -1 || fontName.search(/italic/gi) !== -1;\n\n // Use 'name' instead of 'fontName' here because the original\n // name ArialBlack for example will be replaced by Helvetica.\n this.black = name.search(/Black/g) !== -1;\n\n // Use 'name' instead of 'fontName' here because the original\n // name ArialNarrow for example will be replaced by Helvetica.\n const isNarrow = name.search(/Narrow/g) !== -1;\n\n // if at least one width is present, remeasure all chars when exists\n this.remeasure =\n (!isStandardFont || isNarrow) && Object.keys(this.widths).length > 0;\n if (\n (isStandardFont || isMappedToStandardFont) &&\n type === \"CIDFontType2\" &&\n this.cidEncoding.startsWith(\"Identity-\")\n ) {\n const cidToGidMap = properties.cidToGidMap;\n // Standard fonts might be embedded as CID font without glyph mapping.\n // Building one based on GlyphMapForStandardFonts.\n const map = [];\n applyStandardFontGlyphMap(map, getGlyphMapForStandardFonts());\n\n if (/Arial-?Black/i.test(name)) {\n applyStandardFontGlyphMap(map, getSupplementalGlyphMapForArialBlack());\n } else if (/Calibri/i.test(name)) {\n applyStandardFontGlyphMap(map, getSupplementalGlyphMapForCalibri());\n }\n\n // Always update the glyph mapping with the `cidToGidMap` when it exists\n // (fixes issue12418_reduced.pdf).\n if (cidToGidMap) {\n for (const charCode in map) {\n const cid = map[charCode];\n if (cidToGidMap[cid] !== undefined) {\n map[+charCode] = cidToGidMap[cid];\n }\n }\n // When the /CIDToGIDMap is \"incomplete\", fallback to the included\n // /ToUnicode-map regardless of its encoding (fixes issue11915.pdf).\n if (\n cidToGidMap.length !== this.toUnicode.length &&\n properties.hasIncludedToUnicodeMap &&\n this.toUnicode instanceof IdentityToUnicodeMap\n ) {\n this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n const cid = map[charCode];\n if (cidToGidMap[cid] === undefined) {\n map[+charCode] = unicodeCharCode;\n }\n });\n }\n }\n\n if (!(this.toUnicode instanceof IdentityToUnicodeMap)) {\n this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n map[+charCode] = unicodeCharCode;\n });\n }\n this.toFontChar = map;\n this.toUnicode = new ToUnicodeMap(map);\n } else if (/Symbol/i.test(fontName)) {\n this.toFontChar = buildToFontChar(\n SymbolSetEncoding,\n getGlyphsUnicode(),\n this.differences\n );\n } else if (/Dingbats/i.test(fontName)) {\n if (/Wingdings/i.test(name)) {\n warn(\"Non-embedded Wingdings font, falling back to ZapfDingbats.\");\n }\n this.toFontChar = buildToFontChar(\n ZapfDingbatsEncoding,\n getDingbatsGlyphsUnicode(),\n this.differences\n );\n } else if (isStandardFont) {\n const map = buildToFontChar(\n this.defaultEncoding,\n getGlyphsUnicode(),\n this.differences\n );\n\n if (\n type === \"CIDFontType2\" &&\n !this.cidEncoding.startsWith(\"Identity-\") &&\n !(this.toUnicode instanceof IdentityToUnicodeMap)\n ) {\n this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n map[+charCode] = unicodeCharCode;\n });\n }\n this.toFontChar = map;\n } else {\n const glyphsUnicodeMap = getGlyphsUnicode();\n const map = [];\n this.toUnicode.forEach((charCode, unicodeCharCode) => {\n if (!this.composite) {\n const glyphName =\n this.differences[charCode] || this.defaultEncoding[charCode];\n const unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap);\n if (unicode !== -1) {\n unicodeCharCode = unicode;\n }\n }\n map[+charCode] = unicodeCharCode;\n });\n\n // Attempt to improve the glyph mapping for (some) composite fonts that\n // appear to lack meaningful ToUnicode data.\n if (this.composite && this.toUnicode instanceof IdentityToUnicodeMap) {\n if (/Verdana/i.test(name)) {\n // Fixes issue11242_reduced.pdf\n applyStandardFontGlyphMap(map, getGlyphMapForStandardFonts());\n }\n }\n this.toFontChar = map;\n }\n\n amendFallbackToUnicode(properties);\n this.loadedName = fontName.split(\"-\")[0];\n this.fontType = getFontType(type, subtype, properties.isStandardFont);\n }\n\n checkAndRepair(name, font, properties) {\n const VALID_TABLES = [\n \"OS/2\",\n \"cmap\",\n \"head\",\n \"hhea\",\n \"hmtx\",\n \"maxp\",\n \"name\",\n \"post\",\n \"loca\",\n \"glyf\",\n \"fpgm\",\n \"prep\",\n \"cvt \",\n \"CFF \",\n ];\n\n function readTables(file, numTables) {\n const tables = Object.create(null);\n tables[\"OS/2\"] = null;\n tables.cmap = null;\n tables.head = null;\n tables.hhea = null;\n tables.hmtx = null;\n tables.maxp = null;\n tables.name = null;\n tables.post = null;\n\n for (let i = 0; i < numTables; i++) {\n const table = readTableEntry(file);\n if (!VALID_TABLES.includes(table.tag)) {\n continue; // skipping table if it's not a required or optional table\n }\n if (table.length === 0) {\n continue; // skipping empty tables\n }\n tables[table.tag] = table;\n }\n return tables;\n }\n\n function readTableEntry(file) {\n const tag = file.getString(4);\n\n const checksum = file.getInt32() >>> 0;\n const offset = file.getInt32() >>> 0;\n const length = file.getInt32() >>> 0;\n\n // Read the table associated data\n const previousPosition = file.pos;\n file.pos = file.start ? file.start : 0;\n file.skip(offset);\n const data = file.getBytes(length);\n file.pos = previousPosition;\n\n if (tag === \"head\") {\n // clearing checksum adjustment\n data[8] = data[9] = data[10] = data[11] = 0;\n data[17] |= 0x20; // Set font optimized for cleartype flag.\n }\n\n return {\n tag,\n checksum,\n length,\n offset,\n data,\n };\n }\n\n function readOpenTypeHeader(ttf) {\n return {\n version: ttf.getString(4),\n numTables: ttf.getUint16(),\n searchRange: ttf.getUint16(),\n entrySelector: ttf.getUint16(),\n rangeShift: ttf.getUint16(),\n };\n }\n\n function readTrueTypeCollectionHeader(ttc) {\n const ttcTag = ttc.getString(4);\n assert(ttcTag === \"ttcf\", \"Must be a TrueType Collection font.\");\n\n const majorVersion = ttc.getUint16();\n const minorVersion = ttc.getUint16();\n const numFonts = ttc.getInt32() >>> 0;\n const offsetTable = [];\n for (let i = 0; i < numFonts; i++) {\n offsetTable.push(ttc.getInt32() >>> 0);\n }\n\n const header = {\n ttcTag,\n majorVersion,\n minorVersion,\n numFonts,\n offsetTable,\n };\n switch (majorVersion) {\n case 1:\n return header;\n case 2:\n header.dsigTag = ttc.getInt32() >>> 0;\n header.dsigLength = ttc.getInt32() >>> 0;\n header.dsigOffset = ttc.getInt32() >>> 0;\n return header;\n }\n throw new FormatError(\n `Invalid TrueType Collection majorVersion: ${majorVersion}.`\n );\n }\n\n function readTrueTypeCollectionData(ttc, fontName) {\n const { numFonts, offsetTable } = readTrueTypeCollectionHeader(ttc);\n const fontNameParts = fontName.split(\"+\");\n let fallbackData;\n\n for (let i = 0; i < numFonts; i++) {\n ttc.pos = (ttc.start || 0) + offsetTable[i];\n const potentialHeader = readOpenTypeHeader(ttc);\n const potentialTables = readTables(ttc, potentialHeader.numTables);\n\n if (!potentialTables.name) {\n throw new FormatError(\n 'TrueType Collection font must contain a \"name\" table.'\n );\n }\n const nameTable = readNameTable(potentialTables.name);\n\n for (let j = 0, jj = nameTable.length; j < jj; j++) {\n for (let k = 0, kk = nameTable[j].length; k < kk; k++) {\n const nameEntry =\n nameTable[j][k] && nameTable[j][k].replace(/\\s/g, \"\");\n if (!nameEntry) {\n continue;\n }\n if (nameEntry === fontName) {\n return {\n header: potentialHeader,\n tables: potentialTables,\n };\n }\n if (fontNameParts.length < 2) {\n continue;\n }\n for (const part of fontNameParts) {\n if (nameEntry === part) {\n fallbackData = {\n name: part,\n header: potentialHeader,\n tables: potentialTables,\n };\n }\n }\n }\n }\n }\n if (fallbackData) {\n warn(\n `TrueType Collection does not contain \"${fontName}\" font, ` +\n `falling back to \"${fallbackData.name}\" font instead.`\n );\n return {\n header: fallbackData.header,\n tables: fallbackData.tables,\n };\n }\n throw new FormatError(\n `TrueType Collection does not contain \"${fontName}\" font.`\n );\n }\n\n /**\n * Read the appropriate subtable from the cmap according to 9.6.6.4 from\n * PDF spec\n */\n function readCmapTable(cmap, file, isSymbolicFont, hasEncoding) {\n if (!cmap) {\n warn(\"No cmap table available.\");\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false,\n };\n }\n let segment;\n let start = (file.start ? file.start : 0) + cmap.offset;\n file.pos = start;\n\n file.skip(2); // version\n const numTables = file.getUint16();\n\n let potentialTable;\n let canBreak = false;\n // There's an order of preference in terms of which cmap subtable to\n // use:\n // - non-symbolic fonts the preference is a 3,1 table then a 1,0 table\n // - symbolic fonts the preference is a 3,0 table then a 1,0 table\n // The following takes advantage of the fact that the tables are sorted\n // to work.\n for (let i = 0; i < numTables; i++) {\n const platformId = file.getUint16();\n const encodingId = file.getUint16();\n const offset = file.getInt32() >>> 0;\n let useTable = false;\n\n // Sometimes there are multiple of the same type of table. Default\n // to choosing the first table and skip the rest.\n if (\n potentialTable &&\n potentialTable.platformId === platformId &&\n potentialTable.encodingId === encodingId\n ) {\n continue;\n }\n\n if (\n platformId === 0 &&\n (encodingId === /* Unicode Default */ 0 ||\n encodingId === /* Unicode 1.1 */ 1 ||\n encodingId === /* Unicode BMP */ 3)\n ) {\n useTable = true;\n // Continue the loop since there still may be a higher priority\n // table.\n } else if (platformId === 1 && encodingId === 0) {\n useTable = true;\n // Continue the loop since there still may be a higher priority\n // table.\n } else if (\n platformId === 3 &&\n encodingId === 1 &&\n (hasEncoding || !potentialTable)\n ) {\n useTable = true;\n if (!isSymbolicFont) {\n canBreak = true;\n }\n } else if (isSymbolicFont && platformId === 3 && encodingId === 0) {\n useTable = true;\n\n let correctlySorted = true;\n if (i < numTables - 1) {\n const nextBytes = file.peekBytes(2),\n nextPlatformId = int16(nextBytes[0], nextBytes[1]);\n if (nextPlatformId < platformId) {\n correctlySorted = false;\n }\n }\n if (correctlySorted) {\n canBreak = true;\n }\n }\n\n if (useTable) {\n potentialTable = {\n platformId,\n encodingId,\n offset,\n };\n }\n if (canBreak) {\n break;\n }\n }\n\n if (potentialTable) {\n file.pos = start + potentialTable.offset;\n }\n if (!potentialTable || file.peekByte() === -1) {\n warn(\"Could not find a preferred cmap table.\");\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false,\n };\n }\n\n const format = file.getUint16();\n let hasShortCmap = false;\n const mappings = [];\n let j, glyphId;\n\n // TODO(mack): refactor this cmap subtable reading logic out\n if (format === 0) {\n file.skip(2 + 2); // length + language\n\n for (j = 0; j < 256; j++) {\n const index = file.getByte();\n if (!index) {\n continue;\n }\n mappings.push({\n charCode: j,\n glyphId: index,\n });\n }\n hasShortCmap = true;\n } else if (format === 2) {\n file.skip(2 + 2); // length + language\n\n const subHeaderKeys = [];\n let maxSubHeaderKey = 0;\n // Read subHeaderKeys. If subHeaderKeys[i] === 0, then i is a\n // single-byte character. Otherwise, i is the first byte of a\n // multi-byte character, and the value is 8*index into\n // subHeaders.\n for (let i = 0; i < 256; i++) {\n const subHeaderKey = file.getUint16() >> 3;\n subHeaderKeys.push(subHeaderKey);\n maxSubHeaderKey = Math.max(subHeaderKey, maxSubHeaderKey);\n }\n // Read subHeaders. The number of entries is determined\n // dynamically based on the subHeaderKeys found above.\n const subHeaders = [];\n for (let i = 0; i <= maxSubHeaderKey; i++) {\n subHeaders.push({\n firstCode: file.getUint16(),\n entryCount: file.getUint16(),\n idDelta: signedInt16(file.getByte(), file.getByte()),\n idRangePos: file.pos + file.getUint16(),\n });\n }\n for (let i = 0; i < 256; i++) {\n if (subHeaderKeys[i] === 0) {\n // i is a single-byte code.\n file.pos = subHeaders[0].idRangePos + 2 * i;\n glyphId = file.getUint16();\n mappings.push({\n charCode: i,\n glyphId,\n });\n } else {\n // i is the first byte of a two-byte code.\n const s = subHeaders[subHeaderKeys[i]];\n for (j = 0; j < s.entryCount; j++) {\n const charCode = (i << 8) + j + s.firstCode;\n file.pos = s.idRangePos + 2 * j;\n glyphId = file.getUint16();\n if (glyphId !== 0) {\n glyphId = (glyphId + s.idDelta) % 65536;\n }\n mappings.push({\n charCode,\n glyphId,\n });\n }\n }\n }\n } else if (format === 4) {\n file.skip(2 + 2); // length + language\n\n // re-creating the table in format 4 since the encoding\n // might be changed\n const segCount = file.getUint16() >> 1;\n file.skip(6); // skipping range fields\n const segments = [];\n let segIndex;\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments.push({ end: file.getUint16() });\n }\n file.skip(2);\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments[segIndex].start = file.getUint16();\n }\n\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments[segIndex].delta = file.getUint16();\n }\n\n let offsetsCount = 0,\n offsetIndex;\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segment = segments[segIndex];\n const rangeOffset = file.getUint16();\n if (!rangeOffset) {\n segment.offsetIndex = -1;\n continue;\n }\n\n offsetIndex = (rangeOffset >> 1) - (segCount - segIndex);\n segment.offsetIndex = offsetIndex;\n offsetsCount = Math.max(\n offsetsCount,\n offsetIndex + segment.end - segment.start + 1\n );\n }\n\n const offsets = [];\n for (j = 0; j < offsetsCount; j++) {\n offsets.push(file.getUint16());\n }\n\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segment = segments[segIndex];\n start = segment.start;\n const end = segment.end;\n const delta = segment.delta;\n offsetIndex = segment.offsetIndex;\n\n for (j = start; j <= end; j++) {\n if (j === 0xffff) {\n continue;\n }\n\n glyphId = offsetIndex < 0 ? j : offsets[offsetIndex + j - start];\n glyphId = (glyphId + delta) & 0xffff;\n mappings.push({\n charCode: j,\n glyphId,\n });\n }\n }\n } else if (format === 6) {\n file.skip(2 + 2); // length + language\n\n // Format 6 is a 2-bytes dense mapping, which means the font data\n // lives glue together even if they are pretty far in the unicode\n // table. (This looks weird, so I can have missed something), this\n // works on Linux but seems to fails on Mac so let's rewrite the\n // cmap table to a 3-1-4 style\n const firstCode = file.getUint16();\n const entryCount = file.getUint16();\n\n for (j = 0; j < entryCount; j++) {\n glyphId = file.getUint16();\n const charCode = firstCode + j;\n\n mappings.push({\n charCode,\n glyphId,\n });\n }\n } else if (format === 12) {\n file.skip(2 + 4 + 4); // reserved + length + language\n\n const nGroups = file.getInt32() >>> 0;\n for (j = 0; j < nGroups; j++) {\n const startCharCode = file.getInt32() >>> 0;\n const endCharCode = file.getInt32() >>> 0;\n let glyphCode = file.getInt32() >>> 0;\n\n for (\n let charCode = startCharCode;\n charCode <= endCharCode;\n charCode++\n ) {\n mappings.push({\n charCode,\n glyphId: glyphCode++,\n });\n }\n }\n } else {\n warn(\"cmap table has unsupported format: \" + format);\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false,\n };\n }\n\n // removing duplicate entries\n mappings.sort(function (a, b) {\n return a.charCode - b.charCode;\n });\n for (let i = 1; i < mappings.length; i++) {\n if (mappings[i - 1].charCode === mappings[i].charCode) {\n mappings.splice(i, 1);\n i--;\n }\n }\n\n return {\n platformId: potentialTable.platformId,\n encodingId: potentialTable.encodingId,\n mappings,\n hasShortCmap,\n };\n }\n\n function sanitizeMetrics(\n file,\n header,\n metrics,\n headTable,\n numGlyphs,\n dupFirstEntry\n ) {\n if (!header) {\n if (metrics) {\n metrics.data = null;\n }\n return;\n }\n\n file.pos = (file.start ? file.start : 0) + header.offset;\n file.pos += 4; // version\n file.pos += 2; // ascent\n file.pos += 2; // descent\n file.pos += 2; // linegap\n file.pos += 2; // adv_width_max\n file.pos += 2; // min_sb1\n file.pos += 2; // min_sb2\n file.pos += 2; // max_extent\n file.pos += 2; // caret_slope_rise\n file.pos += 2; // caret_slope_run\n const caretOffset = file.getUint16();\n file.pos += 8; // reserved\n file.pos += 2; // format\n let numOfMetrics = file.getUint16();\n\n if (caretOffset !== 0) {\n const macStyle = int16(headTable.data[44], headTable.data[45]);\n if (!(macStyle & 2)) {\n // Suppress OTS warnings about the `caretOffset` in the hhea-table.\n header.data[22] = 0;\n header.data[23] = 0;\n }\n }\n\n if (numOfMetrics > numGlyphs) {\n info(\n `The numOfMetrics (${numOfMetrics}) should not be ` +\n `greater than the numGlyphs (${numGlyphs}).`\n );\n // Reduce numOfMetrics if it is greater than numGlyphs\n numOfMetrics = numGlyphs;\n header.data[34] = (numOfMetrics & 0xff00) >> 8;\n header.data[35] = numOfMetrics & 0x00ff;\n }\n\n const numOfSidebearings = numGlyphs - numOfMetrics;\n const numMissing =\n numOfSidebearings - ((metrics.length - numOfMetrics * 4) >> 1);\n\n if (numMissing > 0) {\n // For each missing glyph, we set both the width and lsb to 0 (zero).\n // Since we need to add two properties for each glyph, this explains\n // the use of |numMissing * 2| when initializing the typed array.\n const entries = new Uint8Array(metrics.length + numMissing * 2);\n entries.set(metrics.data);\n if (dupFirstEntry) {\n // Set the sidebearing value of the duplicated glyph.\n entries[metrics.length] = metrics.data[2];\n entries[metrics.length + 1] = metrics.data[3];\n }\n metrics.data = entries;\n }\n }\n\n function sanitizeGlyph(\n source,\n sourceStart,\n sourceEnd,\n dest,\n destStart,\n hintsValid\n ) {\n const glyphProfile = {\n length: 0,\n sizeOfInstructions: 0,\n };\n if (sourceEnd - sourceStart <= 12) {\n // glyph with data less than 12 is invalid one\n return glyphProfile;\n }\n const glyf = source.subarray(sourceStart, sourceEnd);\n let contoursCount = signedInt16(glyf[0], glyf[1]);\n if (contoursCount < 0) {\n // OTS doesn't like contour count to be less than -1.\n contoursCount = -1;\n writeSignedInt16(glyf, 0, contoursCount);\n // complex glyph, writing as is\n dest.set(glyf, destStart);\n glyphProfile.length = glyf.length;\n return glyphProfile;\n }\n\n let i,\n j = 10,\n flagsCount = 0;\n for (i = 0; i < contoursCount; i++) {\n const endPoint = (glyf[j] << 8) | glyf[j + 1];\n flagsCount = endPoint + 1;\n j += 2;\n }\n // skipping instructions\n const instructionsStart = j;\n const instructionsLength = (glyf[j] << 8) | glyf[j + 1];\n glyphProfile.sizeOfInstructions = instructionsLength;\n j += 2 + instructionsLength;\n const instructionsEnd = j;\n // validating flags\n let coordinatesLength = 0;\n for (i = 0; i < flagsCount; i++) {\n const flag = glyf[j++];\n if (flag & 0xc0) {\n // reserved flags must be zero, cleaning up\n glyf[j - 1] = flag & 0x3f;\n }\n let xLength = 2;\n if (flag & 2) {\n xLength = 1;\n } else if (flag & 16) {\n xLength = 0;\n }\n let yLength = 2;\n if (flag & 4) {\n yLength = 1;\n } else if (flag & 32) {\n yLength = 0;\n }\n const xyLength = xLength + yLength;\n coordinatesLength += xyLength;\n if (flag & 8) {\n const repeat = glyf[j++];\n i += repeat;\n coordinatesLength += repeat * xyLength;\n }\n }\n // glyph without coordinates will be rejected\n if (coordinatesLength === 0) {\n return glyphProfile;\n }\n let glyphDataLength = j + coordinatesLength;\n if (glyphDataLength > glyf.length) {\n // not enough data for coordinates\n return glyphProfile;\n }\n if (!hintsValid && instructionsLength > 0) {\n dest.set(glyf.subarray(0, instructionsStart), destStart);\n dest.set([0, 0], destStart + instructionsStart);\n dest.set(\n glyf.subarray(instructionsEnd, glyphDataLength),\n destStart + instructionsStart + 2\n );\n glyphDataLength -= instructionsLength;\n if (glyf.length - glyphDataLength > 3) {\n glyphDataLength = (glyphDataLength + 3) & ~3;\n }\n glyphProfile.length = glyphDataLength;\n return glyphProfile;\n }\n if (glyf.length - glyphDataLength > 3) {\n // truncating and aligning to 4 bytes the long glyph data\n glyphDataLength = (glyphDataLength + 3) & ~3;\n dest.set(glyf.subarray(0, glyphDataLength), destStart);\n glyphProfile.length = glyphDataLength;\n return glyphProfile;\n }\n // glyph data is fine\n dest.set(glyf, destStart);\n glyphProfile.length = glyf.length;\n return glyphProfile;\n }\n\n function sanitizeHead(head, numGlyphs, locaLength) {\n const data = head.data;\n\n // Validate version:\n // Should always be 0x00010000\n const version = int32(data[0], data[1], data[2], data[3]);\n if (version >> 16 !== 1) {\n info(\"Attempting to fix invalid version in head table: \" + version);\n data[0] = 0;\n data[1] = 1;\n data[2] = 0;\n data[3] = 0;\n }\n\n const indexToLocFormat = int16(data[50], data[51]);\n if (indexToLocFormat < 0 || indexToLocFormat > 1) {\n info(\n \"Attempting to fix invalid indexToLocFormat in head table: \" +\n indexToLocFormat\n );\n\n // The value of indexToLocFormat should be 0 if the loca table\n // consists of short offsets, and should be 1 if the loca table\n // consists of long offsets.\n //\n // The number of entries in the loca table should be numGlyphs + 1.\n //\n // Using this information, we can work backwards to deduce if the\n // size of each offset in the loca table, and thus figure out the\n // appropriate value for indexToLocFormat.\n\n const numGlyphsPlusOne = numGlyphs + 1;\n if (locaLength === numGlyphsPlusOne << 1) {\n // 0x0000 indicates the loca table consists of short offsets\n data[50] = 0;\n data[51] = 0;\n } else if (locaLength === numGlyphsPlusOne << 2) {\n // 0x0001 indicates the loca table consists of long offsets\n data[50] = 0;\n data[51] = 1;\n } else {\n throw new FormatError(\n \"Could not fix indexToLocFormat: \" + indexToLocFormat\n );\n }\n }\n }\n\n function sanitizeGlyphLocations(\n loca,\n glyf,\n numGlyphs,\n isGlyphLocationsLong,\n hintsValid,\n dupFirstEntry,\n maxSizeOfInstructions\n ) {\n let itemSize, itemDecode, itemEncode;\n if (isGlyphLocationsLong) {\n itemSize = 4;\n itemDecode = function fontItemDecodeLong(data, offset) {\n return (\n (data[offset] << 24) |\n (data[offset + 1] << 16) |\n (data[offset + 2] << 8) |\n data[offset + 3]\n );\n };\n itemEncode = function fontItemEncodeLong(data, offset, value) {\n data[offset] = (value >>> 24) & 0xff;\n data[offset + 1] = (value >> 16) & 0xff;\n data[offset + 2] = (value >> 8) & 0xff;\n data[offset + 3] = value & 0xff;\n };\n } else {\n itemSize = 2;\n itemDecode = function fontItemDecode(data, offset) {\n return (data[offset] << 9) | (data[offset + 1] << 1);\n };\n itemEncode = function fontItemEncode(data, offset, value) {\n data[offset] = (value >> 9) & 0xff;\n data[offset + 1] = (value >> 1) & 0xff;\n };\n }\n // The first glyph is duplicated.\n const numGlyphsOut = dupFirstEntry ? numGlyphs + 1 : numGlyphs;\n const locaDataSize = itemSize * (1 + numGlyphsOut);\n // Resize loca table to account for duplicated glyph.\n const locaData = new Uint8Array(locaDataSize);\n locaData.set(loca.data.subarray(0, locaDataSize));\n loca.data = locaData;\n // removing the invalid glyphs\n const oldGlyfData = glyf.data;\n const oldGlyfDataLength = oldGlyfData.length;\n const newGlyfData = new Uint8Array(oldGlyfDataLength);\n\n // The spec says the offsets should be in ascending order, however\n // this is not true for some fonts or they use the offset of 0 to mark a\n // glyph as missing. OTS requires the offsets to be in order and not to\n // be zero, so we must sort and rebuild the loca table and potentially\n // re-arrange the glyf data.\n let i, j;\n const locaEntries = [];\n // There are numGlyphs + 1 loca table entries.\n for (i = 0, j = 0; i < numGlyphs + 1; i++, j += itemSize) {\n let offset = itemDecode(locaData, j);\n if (offset > oldGlyfDataLength) {\n offset = oldGlyfDataLength;\n }\n locaEntries.push({\n index: i,\n offset,\n endOffset: 0,\n });\n }\n locaEntries.sort((a, b) => {\n return a.offset - b.offset;\n });\n // Now the offsets are sorted, calculate the end offset of each glyph.\n // The last loca entry's endOffset is not calculated since it's the end\n // of the data and will be stored on the previous entry's endOffset.\n for (i = 0; i < numGlyphs; i++) {\n locaEntries[i].endOffset = locaEntries[i + 1].offset;\n }\n // Re-sort so glyphs aren't out of order.\n locaEntries.sort((a, b) => {\n return a.index - b.index;\n });\n // Calculate the endOffset of the \"first\" glyph correctly when there are\n // *multiple* empty ones at the start of the data (fixes issue14618.pdf).\n for (i = 0; i < numGlyphs; i++) {\n const { offset, endOffset } = locaEntries[i];\n if (offset !== 0 || endOffset !== 0) {\n break;\n }\n const nextOffset = locaEntries[i + 1].offset;\n if (nextOffset === 0) {\n continue;\n }\n locaEntries[i].endOffset = nextOffset;\n break;\n }\n\n const missingGlyphs = Object.create(null);\n let writeOffset = 0;\n itemEncode(locaData, 0, writeOffset);\n for (i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) {\n const glyphProfile = sanitizeGlyph(\n oldGlyfData,\n locaEntries[i].offset,\n locaEntries[i].endOffset,\n newGlyfData,\n writeOffset,\n hintsValid\n );\n const newLength = glyphProfile.length;\n if (newLength === 0) {\n missingGlyphs[i] = true;\n }\n if (glyphProfile.sizeOfInstructions > maxSizeOfInstructions) {\n maxSizeOfInstructions = glyphProfile.sizeOfInstructions;\n }\n writeOffset += newLength;\n itemEncode(locaData, j, writeOffset);\n }\n\n if (writeOffset === 0) {\n // glyf table cannot be empty -- redoing the glyf and loca tables\n // to have single glyph with one point\n const simpleGlyph = new Uint8Array([\n 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0,\n ]);\n for (i = 0, j = itemSize; i < numGlyphsOut; i++, j += itemSize) {\n itemEncode(locaData, j, simpleGlyph.length);\n }\n glyf.data = simpleGlyph;\n } else if (dupFirstEntry) {\n // Browsers will not display a glyph at position 0. Typically glyph 0\n // is notdef, but a number of fonts put a valid glyph there so it must\n // be duplicated and appended.\n const firstEntryLength = itemDecode(locaData, itemSize);\n if (newGlyfData.length > firstEntryLength + writeOffset) {\n glyf.data = newGlyfData.subarray(0, firstEntryLength + writeOffset);\n } else {\n glyf.data = new Uint8Array(firstEntryLength + writeOffset);\n glyf.data.set(newGlyfData.subarray(0, writeOffset));\n }\n glyf.data.set(newGlyfData.subarray(0, firstEntryLength), writeOffset);\n itemEncode(\n loca.data,\n locaData.length - itemSize,\n writeOffset + firstEntryLength\n );\n } else {\n glyf.data = newGlyfData.subarray(0, writeOffset);\n }\n return {\n missingGlyphs,\n maxSizeOfInstructions,\n };\n }\n\n function readPostScriptTable(post, propertiesObj, maxpNumGlyphs) {\n const start = (font.start ? font.start : 0) + post.offset;\n font.pos = start;\n\n const length = post.length,\n end = start + length;\n const version = font.getInt32();\n // skip rest to the tables\n font.skip(28);\n\n let glyphNames;\n let valid = true;\n let i;\n\n switch (version) {\n case 0x00010000:\n glyphNames = MacStandardGlyphOrdering;\n break;\n case 0x00020000:\n const numGlyphs = font.getUint16();\n if (numGlyphs !== maxpNumGlyphs) {\n valid = false;\n break;\n }\n const glyphNameIndexes = [];\n for (i = 0; i < numGlyphs; ++i) {\n const index = font.getUint16();\n if (index >= 32768) {\n valid = false;\n break;\n }\n glyphNameIndexes.push(index);\n }\n if (!valid) {\n break;\n }\n const customNames = [],\n strBuf = [];\n while (font.pos < end) {\n const stringLength = font.getByte();\n strBuf.length = stringLength;\n for (i = 0; i < stringLength; ++i) {\n strBuf[i] = String.fromCharCode(font.getByte());\n }\n customNames.push(strBuf.join(\"\"));\n }\n glyphNames = [];\n for (i = 0; i < numGlyphs; ++i) {\n const j = glyphNameIndexes[i];\n if (j < 258) {\n glyphNames.push(MacStandardGlyphOrdering[j]);\n continue;\n }\n glyphNames.push(customNames[j - 258]);\n }\n break;\n case 0x00030000:\n break;\n default:\n warn(\"Unknown/unsupported post table version \" + version);\n valid = false;\n if (propertiesObj.defaultEncoding) {\n glyphNames = propertiesObj.defaultEncoding;\n }\n break;\n }\n propertiesObj.glyphNames = glyphNames;\n return valid;\n }\n\n function readNameTable(nameTable) {\n const start = (font.start ? font.start : 0) + nameTable.offset;\n font.pos = start;\n\n const names = [[], []];\n const length = nameTable.length,\n end = start + length;\n const format = font.getUint16();\n const FORMAT_0_HEADER_LENGTH = 6;\n if (format !== 0 || length < FORMAT_0_HEADER_LENGTH) {\n // unsupported name table format or table \"too\" small\n return names;\n }\n const numRecords = font.getUint16();\n const stringsStart = font.getUint16();\n const records = [];\n const NAME_RECORD_LENGTH = 12;\n let i, ii;\n\n for (i = 0; i < numRecords && font.pos + NAME_RECORD_LENGTH <= end; i++) {\n const r = {\n platform: font.getUint16(),\n encoding: font.getUint16(),\n language: font.getUint16(),\n name: font.getUint16(),\n length: font.getUint16(),\n offset: font.getUint16(),\n };\n // using only Macintosh and Windows platform/encoding names\n if (\n (r.platform === 1 && r.encoding === 0 && r.language === 0) ||\n (r.platform === 3 && r.encoding === 1 && r.language === 0x409)\n ) {\n records.push(r);\n }\n }\n for (i = 0, ii = records.length; i < ii; i++) {\n const record = records[i];\n if (record.length <= 0) {\n continue; // Nothing to process, ignoring.\n }\n const pos = start + stringsStart + record.offset;\n if (pos + record.length > end) {\n continue; // outside of name table, ignoring\n }\n font.pos = pos;\n const nameIndex = record.name;\n if (record.encoding) {\n // unicode\n let str = \"\";\n for (let j = 0, jj = record.length; j < jj; j += 2) {\n str += String.fromCharCode(font.getUint16());\n }\n names[1][nameIndex] = str;\n } else {\n names[0][nameIndex] = font.getString(record.length);\n }\n }\n return names;\n }\n\n // prettier-ignore\n const TTOpsStackDeltas = [\n 0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, 0, 0, -2, -5,\n -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1,\n 1, -1, -999, 0, 1, 0, -1, -2, 0, -1, -2, -1, -1, 0, -1, -1,\n 0, 0, -999, -999, -1, -1, -1, -1, -2, -999, -2, -2, -999, 0, -2, -2,\n 0, 0, -2, 0, -2, 0, 0, 0, -2, -1, -1, 1, 1, 0, 0, -1,\n -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, 0, -999, -1, -1,\n -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n -2, -999, -999, -999, -999, -999, -1, -1, -2, -2, 0, 0, 0, 0, -1, -1,\n -999, -2, -2, 0, 0, -1, -2, -2, 0, 0, 0, -1, -1, -1, -2];\n // 0xC0-DF == -1 and 0xE0-FF == -2\n\n function sanitizeTTProgram(table, ttContext) {\n let data = table.data;\n let i = 0,\n j,\n n,\n b,\n funcId,\n pc,\n lastEndf = 0,\n lastDeff = 0;\n const stack = [];\n const callstack = [];\n const functionsCalled = [];\n let tooComplexToFollowFunctions = ttContext.tooComplexToFollowFunctions;\n let inFDEF = false,\n ifLevel = 0,\n inELSE = 0;\n for (let ii = data.length; i < ii; ) {\n const op = data[i++];\n // The TrueType instruction set docs can be found at\n // https://developer.apple.com/fonts/TTRefMan/RM05/Chap5.html\n if (op === 0x40) {\n // NPUSHB - pushes n bytes\n n = data[i++];\n if (inFDEF || inELSE) {\n i += n;\n } else {\n for (j = 0; j < n; j++) {\n stack.push(data[i++]);\n }\n }\n } else if (op === 0x41) {\n // NPUSHW - pushes n words\n n = data[i++];\n if (inFDEF || inELSE) {\n i += n * 2;\n } else {\n for (j = 0; j < n; j++) {\n b = data[i++];\n stack.push((b << 8) | data[i++]);\n }\n }\n } else if ((op & 0xf8) === 0xb0) {\n // PUSHB - pushes bytes\n n = op - 0xb0 + 1;\n if (inFDEF || inELSE) {\n i += n;\n } else {\n for (j = 0; j < n; j++) {\n stack.push(data[i++]);\n }\n }\n } else if ((op & 0xf8) === 0xb8) {\n // PUSHW - pushes words\n n = op - 0xb8 + 1;\n if (inFDEF || inELSE) {\n i += n * 2;\n } else {\n for (j = 0; j < n; j++) {\n b = data[i++];\n stack.push((b << 8) | data[i++]);\n }\n }\n } else if (op === 0x2b && !tooComplexToFollowFunctions) {\n // CALL\n if (!inFDEF && !inELSE) {\n // collecting information about which functions are used\n funcId = stack[stack.length - 1];\n if (isNaN(funcId)) {\n info(\"TT: CALL empty stack (or invalid entry).\");\n } else {\n ttContext.functionsUsed[funcId] = true;\n if (funcId in ttContext.functionsStackDeltas) {\n const newStackLength =\n stack.length + ttContext.functionsStackDeltas[funcId];\n if (newStackLength < 0) {\n warn(\"TT: CALL invalid functions stack delta.\");\n ttContext.hintsValid = false;\n return;\n }\n stack.length = newStackLength;\n } else if (\n funcId in ttContext.functionsDefined &&\n !functionsCalled.includes(funcId)\n ) {\n callstack.push({ data, i, stackTop: stack.length - 1 });\n functionsCalled.push(funcId);\n pc = ttContext.functionsDefined[funcId];\n if (!pc) {\n warn(\"TT: CALL non-existent function\");\n ttContext.hintsValid = false;\n return;\n }\n data = pc.data;\n i = pc.i;\n }\n }\n }\n } else if (op === 0x2c && !tooComplexToFollowFunctions) {\n // FDEF\n if (inFDEF || inELSE) {\n warn(\"TT: nested FDEFs not allowed\");\n tooComplexToFollowFunctions = true;\n }\n inFDEF = true;\n // collecting information about which functions are defined\n lastDeff = i;\n funcId = stack.pop();\n ttContext.functionsDefined[funcId] = { data, i };\n } else if (op === 0x2d) {\n // ENDF - end of function\n if (inFDEF) {\n inFDEF = false;\n lastEndf = i;\n } else {\n pc = callstack.pop();\n if (!pc) {\n warn(\"TT: ENDF bad stack\");\n ttContext.hintsValid = false;\n return;\n }\n funcId = functionsCalled.pop();\n data = pc.data;\n i = pc.i;\n ttContext.functionsStackDeltas[funcId] = stack.length - pc.stackTop;\n }\n } else if (op === 0x89) {\n // IDEF - instruction definition\n if (inFDEF || inELSE) {\n warn(\"TT: nested IDEFs not allowed\");\n tooComplexToFollowFunctions = true;\n }\n inFDEF = true;\n // recording it as a function to track ENDF\n lastDeff = i;\n } else if (op === 0x58) {\n // IF\n ++ifLevel;\n } else if (op === 0x1b) {\n // ELSE\n inELSE = ifLevel;\n } else if (op === 0x59) {\n // EIF\n if (inELSE === ifLevel) {\n inELSE = 0;\n }\n --ifLevel;\n } else if (op === 0x1c) {\n // JMPR\n if (!inFDEF && !inELSE) {\n const offset = stack[stack.length - 1];\n // only jumping forward to prevent infinite loop\n if (offset > 0) {\n i += offset - 1;\n }\n }\n }\n // Adjusting stack not extactly, but just enough to get function id\n if (!inFDEF && !inELSE) {\n let stackDelta = 0;\n if (op <= 0x8e) {\n stackDelta = TTOpsStackDeltas[op];\n } else if (op >= 0xc0 && op <= 0xdf) {\n stackDelta = -1;\n } else if (op >= 0xe0) {\n stackDelta = -2;\n }\n if (op >= 0x71 && op <= 0x75) {\n n = stack.pop();\n if (!isNaN(n)) {\n stackDelta = -n * 2;\n }\n }\n while (stackDelta < 0 && stack.length > 0) {\n stack.pop();\n stackDelta++;\n }\n while (stackDelta > 0) {\n stack.push(NaN); // pushing any number into stack\n stackDelta--;\n }\n }\n }\n ttContext.tooComplexToFollowFunctions = tooComplexToFollowFunctions;\n const content = [data];\n if (i > data.length) {\n content.push(new Uint8Array(i - data.length));\n }\n if (lastDeff > lastEndf) {\n warn(\"TT: complementing a missing function tail\");\n // new function definition started, but not finished\n // complete function by [CLEAR, ENDF]\n content.push(new Uint8Array([0x22, 0x2d]));\n }\n foldTTTable(table, content);\n }\n\n function checkInvalidFunctions(ttContext, maxFunctionDefs) {\n if (ttContext.tooComplexToFollowFunctions) {\n return;\n }\n if (ttContext.functionsDefined.length > maxFunctionDefs) {\n warn(\"TT: more functions defined than expected\");\n ttContext.hintsValid = false;\n return;\n }\n for (let j = 0, jj = ttContext.functionsUsed.length; j < jj; j++) {\n if (j > maxFunctionDefs) {\n warn(\"TT: invalid function id: \" + j);\n ttContext.hintsValid = false;\n return;\n }\n if (ttContext.functionsUsed[j] && !ttContext.functionsDefined[j]) {\n warn(\"TT: undefined function: \" + j);\n ttContext.hintsValid = false;\n return;\n }\n }\n }\n\n function foldTTTable(table, content) {\n if (content.length > 1) {\n // concatenating the content items\n let newLength = 0;\n let j, jj;\n for (j = 0, jj = content.length; j < jj; j++) {\n newLength += content[j].length;\n }\n newLength = (newLength + 3) & ~3;\n const result = new Uint8Array(newLength);\n let pos = 0;\n for (j = 0, jj = content.length; j < jj; j++) {\n result.set(content[j], pos);\n pos += content[j].length;\n }\n table.data = result;\n table.length = newLength;\n }\n }\n\n function sanitizeTTPrograms(fpgm, prep, cvt, maxFunctionDefs) {\n const ttContext = {\n functionsDefined: [],\n functionsUsed: [],\n functionsStackDeltas: [],\n tooComplexToFollowFunctions: false,\n hintsValid: true,\n };\n if (fpgm) {\n sanitizeTTProgram(fpgm, ttContext);\n }\n if (prep) {\n sanitizeTTProgram(prep, ttContext);\n }\n if (fpgm) {\n checkInvalidFunctions(ttContext, maxFunctionDefs);\n }\n if (cvt && cvt.length & 1) {\n const cvtData = new Uint8Array(cvt.length + 1);\n cvtData.set(cvt.data);\n cvt.data = cvtData;\n }\n return ttContext.hintsValid;\n }\n\n // The following steps modify the original font data, making copy\n font = new Stream(new Uint8Array(font.getBytes()));\n\n let header, tables;\n if (isTrueTypeCollectionFile(font)) {\n const ttcData = readTrueTypeCollectionData(font, this.name);\n header = ttcData.header;\n tables = ttcData.tables;\n } else {\n header = readOpenTypeHeader(font);\n tables = readTables(font, header.numTables);\n }\n let cff, cffFile;\n\n const isTrueType = !tables[\"CFF \"];\n if (!isTrueType) {\n const isComposite =\n properties.composite &&\n ((properties.cidToGidMap || []).length > 0 ||\n !(properties.cMap instanceof IdentityCMap));\n // OpenType font (skip composite fonts with non-default glyph mapping).\n if (\n (header.version === \"OTTO\" && !isComposite) ||\n !tables.head ||\n !tables.hhea ||\n !tables.maxp ||\n !tables.post\n ) {\n // No major tables: throwing everything at `CFFFont`.\n cffFile = new Stream(tables[\"CFF \"].data);\n cff = new CFFFont(cffFile, properties);\n\n adjustWidths(properties);\n\n return this.convert(name, cff, properties);\n }\n\n delete tables.glyf;\n delete tables.loca;\n delete tables.fpgm;\n delete tables.prep;\n delete tables[\"cvt \"];\n this.isOpenType = true;\n } else {\n if (!tables.loca) {\n throw new FormatError('Required \"loca\" table is not found');\n }\n if (!tables.glyf) {\n warn('Required \"glyf\" table is not found -- trying to recover.');\n // Note: We use `sanitizeGlyphLocations` to add dummy glyf data below.\n tables.glyf = {\n tag: \"glyf\",\n data: new Uint8Array(0),\n };\n }\n this.isOpenType = false;\n }\n\n if (!tables.maxp) {\n throw new FormatError('Required \"maxp\" table is not found');\n }\n\n font.pos = (font.start || 0) + tables.maxp.offset;\n const version = font.getInt32();\n const numGlyphs = font.getUint16();\n\n if (\n properties.scaleFactors &&\n properties.scaleFactors.length === numGlyphs &&\n isTrueType\n ) {\n const { scaleFactors } = properties;\n const isGlyphLocationsLong = int16(\n tables.head.data[50],\n tables.head.data[51]\n );\n\n const glyphs = new GlyfTable({\n glyfTable: tables.glyf.data,\n isGlyphLocationsLong,\n locaTable: tables.loca.data,\n numGlyphs,\n });\n glyphs.scale(scaleFactors);\n\n const { glyf, loca, isLocationLong } = glyphs.write();\n tables.glyf.data = glyf;\n tables.loca.data = loca;\n\n if (isLocationLong !== !!isGlyphLocationsLong) {\n tables.head.data[50] = 0;\n tables.head.data[51] = isLocationLong ? 1 : 0;\n }\n\n const metrics = tables.hmtx.data;\n\n for (let i = 0; i < numGlyphs; i++) {\n const j = 4 * i;\n const advanceWidth = Math.round(\n scaleFactors[i] * int16(metrics[j], metrics[j + 1])\n );\n metrics[j] = (advanceWidth >> 8) & 0xff;\n metrics[j + 1] = advanceWidth & 0xff;\n const lsb = Math.round(\n scaleFactors[i] * signedInt16(metrics[j + 2], metrics[j + 3])\n );\n writeSignedInt16(metrics, j + 2, lsb);\n }\n }\n\n // Glyph 0 is duplicated and appended.\n let numGlyphsOut = numGlyphs + 1;\n let dupFirstEntry = true;\n if (numGlyphsOut > 0xffff) {\n dupFirstEntry = false;\n numGlyphsOut = numGlyphs;\n warn(\"Not enough space in glyfs to duplicate first glyph.\");\n }\n let maxFunctionDefs = 0;\n let maxSizeOfInstructions = 0;\n if (version >= 0x00010000 && tables.maxp.length >= 22) {\n // maxZones can be invalid\n font.pos += 8;\n const maxZones = font.getUint16();\n if (maxZones > 2) {\n // reset to 2 if font has invalid maxZones\n tables.maxp.data[14] = 0;\n tables.maxp.data[15] = 2;\n }\n font.pos += 4;\n maxFunctionDefs = font.getUint16();\n font.pos += 4;\n maxSizeOfInstructions = font.getUint16();\n }\n\n tables.maxp.data[4] = numGlyphsOut >> 8;\n tables.maxp.data[5] = numGlyphsOut & 255;\n\n const hintsValid = sanitizeTTPrograms(\n tables.fpgm,\n tables.prep,\n tables[\"cvt \"],\n maxFunctionDefs\n );\n if (!hintsValid) {\n delete tables.fpgm;\n delete tables.prep;\n delete tables[\"cvt \"];\n }\n\n // Ensure the hmtx table contains the advance width and\n // sidebearings information for numGlyphs in the maxp table\n sanitizeMetrics(\n font,\n tables.hhea,\n tables.hmtx,\n tables.head,\n numGlyphsOut,\n dupFirstEntry\n );\n\n if (!tables.head) {\n throw new FormatError('Required \"head\" table is not found');\n }\n\n sanitizeHead(tables.head, numGlyphs, isTrueType ? tables.loca.length : 0);\n\n let missingGlyphs = Object.create(null);\n if (isTrueType) {\n const isGlyphLocationsLong = int16(\n tables.head.data[50],\n tables.head.data[51]\n );\n const glyphsInfo = sanitizeGlyphLocations(\n tables.loca,\n tables.glyf,\n numGlyphs,\n isGlyphLocationsLong,\n hintsValid,\n dupFirstEntry,\n maxSizeOfInstructions\n );\n missingGlyphs = glyphsInfo.missingGlyphs;\n\n // Some fonts have incorrect maxSizeOfInstructions values, so we use\n // the computed value instead.\n if (version >= 0x00010000 && tables.maxp.length >= 22) {\n tables.maxp.data[26] = glyphsInfo.maxSizeOfInstructions >> 8;\n tables.maxp.data[27] = glyphsInfo.maxSizeOfInstructions & 255;\n }\n }\n if (!tables.hhea) {\n throw new FormatError('Required \"hhea\" table is not found');\n }\n\n // Sanitizer reduces the glyph advanceWidth to the maxAdvanceWidth\n // Sometimes it's 0. That needs to be fixed\n if (tables.hhea.data[10] === 0 && tables.hhea.data[11] === 0) {\n tables.hhea.data[10] = 0xff;\n tables.hhea.data[11] = 0xff;\n }\n\n // Extract some more font properties from the OpenType head and\n // hhea tables; yMin and descent value are always negative.\n const metricsOverride = {\n unitsPerEm: int16(tables.head.data[18], tables.head.data[19]),\n yMax: int16(tables.head.data[42], tables.head.data[43]),\n yMin: signedInt16(tables.head.data[38], tables.head.data[39]),\n ascent: signedInt16(tables.hhea.data[4], tables.hhea.data[5]),\n descent: signedInt16(tables.hhea.data[6], tables.hhea.data[7]),\n lineGap: signedInt16(tables.hhea.data[8], tables.hhea.data[9]),\n };\n\n // PDF FontDescriptor metrics lie -- using data from actual font.\n this.ascent = metricsOverride.ascent / metricsOverride.unitsPerEm;\n this.descent = metricsOverride.descent / metricsOverride.unitsPerEm;\n this.lineGap = metricsOverride.lineGap / metricsOverride.unitsPerEm;\n\n if (this.cssFontInfo && this.cssFontInfo.lineHeight) {\n this.lineHeight = this.cssFontInfo.metrics.lineHeight;\n this.lineGap = this.cssFontInfo.metrics.lineGap;\n } else {\n this.lineHeight = this.ascent - this.descent + this.lineGap;\n }\n\n // The 'post' table has glyphs names.\n if (tables.post) {\n readPostScriptTable(tables.post, properties, numGlyphs);\n }\n\n // The original 'post' table is not needed, replace it.\n tables.post = {\n tag: \"post\",\n data: createPostTable(properties),\n };\n\n const charCodeToGlyphId = [];\n\n // Helper function to try to skip mapping of empty glyphs.\n function hasGlyph(glyphId) {\n return !missingGlyphs[glyphId];\n }\n\n if (properties.composite) {\n const cidToGidMap = properties.cidToGidMap || [];\n const isCidToGidMapEmpty = cidToGidMap.length === 0;\n\n properties.cMap.forEach(function (charCode, cid) {\n if (typeof cid === \"string\") {\n cid = convertCidString(charCode, cid, /* shouldThrow = */ true);\n }\n if (cid > 0xffff) {\n throw new FormatError(\"Max size of CID is 65,535\");\n }\n let glyphId = -1;\n if (isCidToGidMapEmpty) {\n glyphId = cid;\n } else if (cidToGidMap[cid] !== undefined) {\n glyphId = cidToGidMap[cid];\n }\n\n if (glyphId >= 0 && glyphId < numGlyphs && hasGlyph(glyphId)) {\n charCodeToGlyphId[charCode] = glyphId;\n }\n });\n } else {\n // Most of the following logic in this code branch is based on the\n // 9.6.6.4 of the PDF spec.\n const cmapTable = readCmapTable(\n tables.cmap,\n font,\n this.isSymbolicFont,\n properties.hasEncoding\n );\n const cmapPlatformId = cmapTable.platformId;\n const cmapEncodingId = cmapTable.encodingId;\n const cmapMappings = cmapTable.mappings;\n const cmapMappingsLength = cmapMappings.length;\n let baseEncoding = [],\n forcePostTable = false;\n if (\n properties.hasEncoding &&\n (properties.baseEncodingName === \"MacRomanEncoding\" ||\n properties.baseEncodingName === \"WinAnsiEncoding\")\n ) {\n baseEncoding = getEncoding(properties.baseEncodingName);\n }\n\n // If the font has an encoding and is not symbolic then follow the rules\n // in section 9.6.6.4 of the spec on how to map 3,1 and 1,0 cmaps.\n if (\n properties.hasEncoding &&\n !this.isSymbolicFont &&\n ((cmapPlatformId === 3 && cmapEncodingId === 1) ||\n (cmapPlatformId === 1 && cmapEncodingId === 0))\n ) {\n const glyphsUnicodeMap = getGlyphsUnicode();\n for (let charCode = 0; charCode < 256; charCode++) {\n let glyphName;\n if (this.differences[charCode] !== undefined) {\n glyphName = this.differences[charCode];\n } else if (baseEncoding.length && baseEncoding[charCode] !== \"\") {\n glyphName = baseEncoding[charCode];\n } else {\n glyphName = StandardEncoding[charCode];\n }\n if (!glyphName) {\n continue;\n }\n // Ensure that non-standard glyph names are resolved to valid ones.\n const standardGlyphName = recoverGlyphName(\n glyphName,\n glyphsUnicodeMap\n );\n\n let unicodeOrCharCode;\n if (cmapPlatformId === 3 && cmapEncodingId === 1) {\n unicodeOrCharCode = glyphsUnicodeMap[standardGlyphName];\n } else if (cmapPlatformId === 1 && cmapEncodingId === 0) {\n // TODO: the encoding needs to be updated with mac os table.\n unicodeOrCharCode = MacRomanEncoding.indexOf(standardGlyphName);\n }\n\n if (unicodeOrCharCode === undefined) {\n // Not a valid glyph name, fallback to using the /ToUnicode map\n // when no post-table exists (fixes issue13316_reduced.pdf).\n if (\n !properties.glyphNames &&\n properties.hasIncludedToUnicodeMap &&\n !(this.toUnicode instanceof IdentityToUnicodeMap)\n ) {\n const unicode = this.toUnicode.get(charCode);\n if (unicode) {\n unicodeOrCharCode = unicode.codePointAt(0);\n }\n }\n\n if (unicodeOrCharCode === undefined) {\n continue; // No valid glyph mapping found.\n }\n }\n\n for (let i = 0; i < cmapMappingsLength; ++i) {\n if (cmapMappings[i].charCode !== unicodeOrCharCode) {\n continue;\n }\n charCodeToGlyphId[charCode] = cmapMappings[i].glyphId;\n break;\n }\n }\n } else if (cmapPlatformId === 0) {\n // Default Unicode semantics, use the charcodes as is.\n for (let i = 0; i < cmapMappingsLength; ++i) {\n charCodeToGlyphId[cmapMappings[i].charCode] = cmapMappings[i].glyphId;\n }\n // Always prefer the BaseEncoding/Differences arrays, when they exist\n // (fixes issue13433.pdf).\n forcePostTable = true;\n } else {\n // When there is only a (1, 0) cmap table, the char code is a single\n // byte and it is used directly as the char code.\n\n // When a (3, 0) cmap table is present, it is used instead but the\n // spec has special rules for char codes in the range of 0xF000 to\n // 0xF0FF and it says the (3, 0) table should map the values from\n // the (1, 0) table by prepending 0xF0 to the char codes. To reverse\n // this, the upper bits of the char code are cleared, but only for the\n // special range since some PDFs have char codes outside of this range\n // (e.g. 0x2013) which when masked would overwrite other values in the\n // cmap.\n for (let i = 0; i < cmapMappingsLength; ++i) {\n let charCode = cmapMappings[i].charCode;\n if (\n cmapPlatformId === 3 &&\n charCode >= 0xf000 &&\n charCode <= 0xf0ff\n ) {\n charCode &= 0xff;\n }\n charCodeToGlyphId[charCode] = cmapMappings[i].glyphId;\n }\n }\n\n // Last, try to map any missing charcodes using the post table.\n if (\n properties.glyphNames &&\n (baseEncoding.length || this.differences.length)\n ) {\n for (let i = 0; i < 256; ++i) {\n if (!forcePostTable && charCodeToGlyphId[i] !== undefined) {\n continue;\n }\n const glyphName = this.differences[i] || baseEncoding[i];\n if (!glyphName) {\n continue;\n }\n const glyphId = properties.glyphNames.indexOf(glyphName);\n if (glyphId > 0 && hasGlyph(glyphId)) {\n charCodeToGlyphId[i] = glyphId;\n }\n }\n }\n }\n\n if (charCodeToGlyphId.length === 0) {\n // defines at least one glyph\n charCodeToGlyphId[0] = 0;\n }\n\n // Typically glyph 0 is duplicated and the mapping must be updated, but if\n // there isn't enough room to duplicate, the glyph id is left the same. In\n // this case, glyph 0 may not work correctly, but that is better than\n // having the whole font fail.\n let glyphZeroId = numGlyphsOut - 1;\n if (!dupFirstEntry) {\n glyphZeroId = 0;\n }\n\n // When `cssFontInfo` is set, the font is used to render text in the HTML\n // view (e.g. with Xfa) so nothing must be moved in the private use area.\n if (!properties.cssFontInfo) {\n // Converting glyphs and ids into font's cmap table\n const newMapping = adjustMapping(\n charCodeToGlyphId,\n hasGlyph,\n glyphZeroId\n );\n this.toFontChar = newMapping.toFontChar;\n tables.cmap = {\n tag: \"cmap\",\n data: createCmapTable(newMapping.charCodeToGlyphId, numGlyphsOut),\n };\n\n if (!tables[\"OS/2\"] || !validateOS2Table(tables[\"OS/2\"], font)) {\n tables[\"OS/2\"] = {\n tag: \"OS/2\",\n data: createOS2Table(\n properties,\n newMapping.charCodeToGlyphId,\n metricsOverride\n ),\n };\n }\n }\n\n if (!isTrueType) {\n try {\n // Trying to repair CFF file\n cffFile = new Stream(tables[\"CFF \"].data);\n const parser = new CFFParser(\n cffFile,\n properties,\n SEAC_ANALYSIS_ENABLED\n );\n cff = parser.parse();\n cff.duplicateFirstGlyph();\n const compiler = new CFFCompiler(cff);\n tables[\"CFF \"].data = compiler.compile();\n } catch (e) {\n warn(\"Failed to compile font \" + properties.loadedName);\n }\n }\n\n // Re-creating 'name' table\n if (!tables.name) {\n tables.name = {\n tag: \"name\",\n data: createNameTable(this.name),\n };\n } else {\n // ... using existing 'name' table as prototype\n const namePrototype = readNameTable(tables.name);\n tables.name.data = createNameTable(name, namePrototype);\n this.psName = namePrototype[0][6] || null;\n }\n\n const builder = new OpenTypeFileBuilder(header.version);\n for (const tableTag in tables) {\n builder.addTable(tableTag, tables[tableTag].data);\n }\n return builder.toArray();\n }\n\n convert(fontName, font, properties) {\n // TODO: Check the charstring widths to determine this.\n properties.fixedPitch = false;\n\n if (properties.builtInEncoding) {\n // For Type1 fonts that do not include either `ToUnicode` or `Encoding`\n // data, attempt to use the `builtInEncoding` to improve text selection.\n adjustToUnicode(properties, properties.builtInEncoding);\n }\n\n // Type 1 fonts have a notdef inserted at the beginning, so glyph 0\n // becomes glyph 1. In a CFF font glyph 0 is appended to the end of the\n // char strings.\n let glyphZeroId = 1;\n if (font instanceof CFFFont) {\n glyphZeroId = font.numGlyphs - 1;\n }\n const mapping = font.getGlyphMapping(properties);\n let newMapping = null;\n let newCharCodeToGlyphId = mapping;\n\n // When `cssFontInfo` is set, the font is used to render text in the HTML\n // view (e.g. with Xfa) so nothing must be moved in the private use area.\n if (!properties.cssFontInfo) {\n newMapping = adjustMapping(\n mapping,\n font.hasGlyphId.bind(font),\n glyphZeroId\n );\n this.toFontChar = newMapping.toFontChar;\n newCharCodeToGlyphId = newMapping.charCodeToGlyphId;\n }\n const numGlyphs = font.numGlyphs;\n\n function getCharCodes(charCodeToGlyphId, glyphId) {\n let charCodes = null;\n for (const charCode in charCodeToGlyphId) {\n if (glyphId === charCodeToGlyphId[charCode]) {\n if (!charCodes) {\n charCodes = [];\n }\n charCodes.push(charCode | 0);\n }\n }\n return charCodes;\n }\n\n function createCharCode(charCodeToGlyphId, glyphId) {\n for (const charCode in charCodeToGlyphId) {\n if (glyphId === charCodeToGlyphId[charCode]) {\n return charCode | 0;\n }\n }\n newMapping.charCodeToGlyphId[newMapping.nextAvailableFontCharCode] =\n glyphId;\n return newMapping.nextAvailableFontCharCode++;\n }\n\n const seacs = font.seacs;\n if (newMapping && SEAC_ANALYSIS_ENABLED && seacs && seacs.length) {\n const matrix = properties.fontMatrix || FONT_IDENTITY_MATRIX;\n const charset = font.getCharset();\n const seacMap = Object.create(null);\n for (let glyphId in seacs) {\n glyphId |= 0;\n const seac = seacs[glyphId];\n const baseGlyphName = StandardEncoding[seac[2]];\n const accentGlyphName = StandardEncoding[seac[3]];\n const baseGlyphId = charset.indexOf(baseGlyphName);\n const accentGlyphId = charset.indexOf(accentGlyphName);\n if (baseGlyphId < 0 || accentGlyphId < 0) {\n continue;\n }\n const accentOffset = {\n x: seac[0] * matrix[0] + seac[1] * matrix[2] + matrix[4],\n y: seac[0] * matrix[1] + seac[1] * matrix[3] + matrix[5],\n };\n\n const charCodes = getCharCodes(mapping, glyphId);\n if (!charCodes) {\n // There's no point in mapping it if the char code was never mapped\n // to begin with.\n continue;\n }\n for (let i = 0, ii = charCodes.length; i < ii; i++) {\n const charCode = charCodes[i];\n // Find a fontCharCode that maps to the base and accent glyphs.\n // If one doesn't exists, create it.\n const charCodeToGlyphId = newMapping.charCodeToGlyphId;\n const baseFontCharCode = createCharCode(\n charCodeToGlyphId,\n baseGlyphId\n );\n const accentFontCharCode = createCharCode(\n charCodeToGlyphId,\n accentGlyphId\n );\n seacMap[charCode] = {\n baseFontCharCode,\n accentFontCharCode,\n accentOffset,\n };\n }\n }\n properties.seacMap = seacMap;\n }\n\n const unitsPerEm = 1 / (properties.fontMatrix || FONT_IDENTITY_MATRIX)[0];\n\n const builder = new OpenTypeFileBuilder(\"\\x4F\\x54\\x54\\x4F\");\n // PostScript Font Program\n builder.addTable(\"CFF \", font.data);\n // OS/2 and Windows Specific metrics\n builder.addTable(\"OS/2\", createOS2Table(properties, newCharCodeToGlyphId));\n // Character to glyphs mapping\n builder.addTable(\"cmap\", createCmapTable(newCharCodeToGlyphId, numGlyphs));\n // Font header\n builder.addTable(\n \"head\",\n \"\\x00\\x01\\x00\\x00\" + // Version number\n \"\\x00\\x00\\x10\\x00\" + // fontRevision\n \"\\x00\\x00\\x00\\x00\" + // checksumAdjustement\n \"\\x5F\\x0F\\x3C\\xF5\" + // magicNumber\n \"\\x00\\x00\" + // Flags\n safeString16(unitsPerEm) + // unitsPerEM\n \"\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27\" + // creation date\n \"\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27\" + // modifification date\n \"\\x00\\x00\" + // xMin\n safeString16(properties.descent) + // yMin\n \"\\x0F\\xFF\" + // xMax\n safeString16(properties.ascent) + // yMax\n string16(properties.italicAngle ? 2 : 0) + // macStyle\n \"\\x00\\x11\" + // lowestRecPPEM\n \"\\x00\\x00\" + // fontDirectionHint\n \"\\x00\\x00\" + // indexToLocFormat\n \"\\x00\\x00\"\n ); // glyphDataFormat\n\n // Horizontal header\n builder.addTable(\n \"hhea\",\n \"\\x00\\x01\\x00\\x00\" + // Version number\n safeString16(properties.ascent) + // Typographic Ascent\n safeString16(properties.descent) + // Typographic Descent\n \"\\x00\\x00\" + // Line Gap\n \"\\xFF\\xFF\" + // advanceWidthMax\n \"\\x00\\x00\" + // minLeftSidebearing\n \"\\x00\\x00\" + // minRightSidebearing\n \"\\x00\\x00\" + // xMaxExtent\n safeString16(properties.capHeight) + // caretSlopeRise\n safeString16(Math.tan(properties.italicAngle) * properties.xHeight) + // caretSlopeRun\n \"\\x00\\x00\" + // caretOffset\n \"\\x00\\x00\" + // -reserved-\n \"\\x00\\x00\" + // -reserved-\n \"\\x00\\x00\" + // -reserved-\n \"\\x00\\x00\" + // -reserved-\n \"\\x00\\x00\" + // metricDataFormat\n string16(numGlyphs)\n ); // Number of HMetrics\n\n // Horizontal metrics\n builder.addTable(\n \"hmtx\",\n (function fontFieldsHmtx() {\n const charstrings = font.charstrings;\n const cffWidths = font.cff ? font.cff.widths : null;\n let hmtx = \"\\x00\\x00\\x00\\x00\"; // Fake .notdef\n for (let i = 1, ii = numGlyphs; i < ii; i++) {\n let width = 0;\n if (charstrings) {\n const charstring = charstrings[i - 1];\n width = \"width\" in charstring ? charstring.width : 0;\n } else if (cffWidths) {\n width = Math.ceil(cffWidths[i] || 0);\n }\n hmtx += string16(width) + string16(0);\n }\n return hmtx;\n })()\n );\n\n // Maximum profile\n builder.addTable(\n \"maxp\",\n \"\\x00\\x00\\x50\\x00\" + string16(numGlyphs) // Version number\n ); // Num of glyphs\n\n // Naming tables\n builder.addTable(\"name\", createNameTable(fontName));\n\n // PostScript information\n builder.addTable(\"post\", createPostTable(properties));\n\n return builder.toArray();\n }\n\n get spaceWidth() {\n // trying to estimate space character width\n const possibleSpaceReplacements = [\"space\", \"minus\", \"one\", \"i\", \"I\"];\n let width;\n for (let i = 0, ii = possibleSpaceReplacements.length; i < ii; i++) {\n const glyphName = possibleSpaceReplacements[i];\n // if possible, getting width by glyph name\n if (glyphName in this.widths) {\n width = this.widths[glyphName];\n break;\n }\n const glyphsUnicodeMap = getGlyphsUnicode();\n const glyphUnicode = glyphsUnicodeMap[glyphName];\n // finding the charcode via unicodeToCID map\n let charcode = 0;\n if (this.composite && this.cMap.contains(glyphUnicode)) {\n charcode = this.cMap.lookup(glyphUnicode);\n\n if (typeof charcode === \"string\") {\n charcode = convertCidString(glyphUnicode, charcode);\n }\n }\n // ... via toUnicode map\n if (!charcode && this.toUnicode) {\n charcode = this.toUnicode.charCodeOf(glyphUnicode);\n }\n // setting it to unicode if negative or undefined\n if (charcode <= 0) {\n charcode = glyphUnicode;\n }\n // trying to get width via charcode\n width = this.widths[charcode];\n if (width) {\n break; // the non-zero width found\n }\n }\n width = width || this.defaultWidth;\n return shadow(this, \"spaceWidth\", width);\n }\n\n /**\n * @private\n */\n _charToGlyph(charcode, isSpace = false) {\n let fontCharCode, width, operatorListId;\n\n let widthCode = charcode;\n if (this.cMap && this.cMap.contains(charcode)) {\n widthCode = this.cMap.lookup(charcode);\n\n if (typeof widthCode === \"string\") {\n widthCode = convertCidString(charcode, widthCode);\n }\n }\n width = this.widths[widthCode];\n if (typeof width !== \"number\") {\n width = this.defaultWidth;\n }\n const vmetric = this.vmetrics && this.vmetrics[widthCode];\n\n let unicode = this.toUnicode.get(charcode) || charcode;\n if (typeof unicode === \"number\") {\n unicode = String.fromCharCode(unicode);\n }\n\n let isInFont = this.toFontChar[charcode] !== undefined;\n // First try the toFontChar map, if it's not there then try falling\n // back to the char code.\n fontCharCode = this.toFontChar[charcode] || charcode;\n if (this.missingFile) {\n const glyphName =\n this.differences[charcode] || this.defaultEncoding[charcode];\n if (\n (glyphName === \".notdef\" || glyphName === \"\") &&\n this.type === \"Type1\"\n ) {\n // .notdef glyphs should be invisible in non-embedded Type1 fonts, so\n // replace them with spaces.\n fontCharCode = 0x20;\n }\n fontCharCode = mapSpecialUnicodeValues(fontCharCode);\n }\n\n if (this.isType3Font) {\n // Font char code in this case is actually a glyph name.\n operatorListId = fontCharCode;\n }\n\n let accent = null;\n if (this.seacMap && this.seacMap[charcode]) {\n isInFont = true;\n const seac = this.seacMap[charcode];\n fontCharCode = seac.baseFontCharCode;\n accent = {\n fontChar: String.fromCodePoint(seac.accentFontCharCode),\n offset: seac.accentOffset,\n };\n }\n\n let fontChar = \"\";\n if (typeof fontCharCode === \"number\") {\n if (fontCharCode <= 0x10ffff) {\n fontChar = String.fromCodePoint(fontCharCode);\n } else {\n warn(`charToGlyph - invalid fontCharCode: ${fontCharCode}`);\n }\n }\n\n let glyph = this._glyphCache[charcode];\n if (\n !glyph ||\n !glyph.matchesForCache(\n charcode,\n fontChar,\n unicode,\n accent,\n width,\n vmetric,\n operatorListId,\n isSpace,\n isInFont\n )\n ) {\n glyph = new Glyph(\n charcode,\n fontChar,\n unicode,\n accent,\n width,\n vmetric,\n operatorListId,\n isSpace,\n isInFont\n );\n this._glyphCache[charcode] = glyph;\n }\n return glyph;\n }\n\n charsToGlyphs(chars) {\n // If we translated this string before, just grab it from the cache.\n let glyphs = this._charsCache[chars];\n if (glyphs) {\n return glyphs;\n }\n glyphs = [];\n\n if (this.cMap) {\n // Composite fonts have multi-byte strings, convert the string from\n // single-byte to multi-byte.\n const c = Object.create(null),\n ii = chars.length;\n let i = 0;\n while (i < ii) {\n this.cMap.readCharCode(chars, i, c);\n const { charcode, length } = c;\n i += length;\n // Space is char with code 0x20 and length 1 in multiple-byte codes.\n const glyph = this._charToGlyph(\n charcode,\n length === 1 && chars.charCodeAt(i - 1) === 0x20\n );\n glyphs.push(glyph);\n }\n } else {\n for (let i = 0, ii = chars.length; i < ii; ++i) {\n const charcode = chars.charCodeAt(i);\n const glyph = this._charToGlyph(charcode, charcode === 0x20);\n glyphs.push(glyph);\n }\n }\n\n // Enter the translated string into the cache.\n return (this._charsCache[chars] = glyphs);\n }\n\n /**\n * Chars can have different sizes (depends on the encoding).\n * @param {String} a string encoded with font encoding.\n * @returns {Array>} the positions of each char in the string.\n */\n getCharPositions(chars) {\n // This function doesn't use a cache because\n // it's called only when saving or printing.\n const positions = [];\n\n if (this.cMap) {\n const c = Object.create(null);\n let i = 0;\n while (i < chars.length) {\n this.cMap.readCharCode(chars, i, c);\n const length = c.length;\n positions.push([i, i + length]);\n i += length;\n }\n } else {\n for (let i = 0, ii = chars.length; i < ii; ++i) {\n positions.push([i, i + 1]);\n }\n }\n\n return positions;\n }\n\n get glyphCacheValues() {\n return Object.values(this._glyphCache);\n }\n\n /**\n * Encode a js string using font encoding.\n * The resulting array contains an encoded string at even positions\n * (can be empty) and a non-encoded one at odd positions.\n * @param {String} a js string.\n * @returns {Array} an array of encoded strings or non-encoded ones.\n */\n encodeString(str) {\n const buffers = [];\n const currentBuf = [];\n\n // buffers will contain: encoded, non-encoded, encoded, ...\n // currentBuf is pushed in buffers each time there is a change.\n // So when buffers.length is odd then the last string is an encoded one\n // and currentBuf contains non-encoded chars.\n const hasCurrentBufErrors = () => buffers.length % 2 === 1;\n\n const getCharCode =\n this.toUnicode instanceof IdentityToUnicodeMap\n ? unicode => this.toUnicode.charCodeOf(unicode)\n : unicode => this.toUnicode.charCodeOf(String.fromCodePoint(unicode));\n\n for (let i = 0, ii = str.length; i < ii; i++) {\n const unicode = str.codePointAt(i);\n if (unicode > 0xd7ff && (unicode < 0xe000 || unicode > 0xfffd)) {\n // unicode is represented by two uint16\n i++;\n }\n if (this.toUnicode) {\n const charCode = getCharCode(unicode);\n if (charCode !== -1) {\n if (hasCurrentBufErrors()) {\n buffers.push(currentBuf.join(\"\"));\n currentBuf.length = 0;\n }\n const charCodeLength = this.cMap\n ? this.cMap.getCharCodeLength(charCode)\n : 1;\n for (let j = charCodeLength - 1; j >= 0; j--) {\n currentBuf.push(String.fromCharCode((charCode >> (8 * j)) & 0xff));\n }\n continue;\n }\n }\n\n // unicode can't be encoded\n if (!hasCurrentBufErrors()) {\n buffers.push(currentBuf.join(\"\"));\n currentBuf.length = 0;\n }\n currentBuf.push(String.fromCodePoint(unicode));\n }\n\n buffers.push(currentBuf.join(\"\"));\n\n return buffers;\n }\n}\n\nclass ErrorFont {\n constructor(error) {\n this.error = error;\n this.loadedName = \"g_font_error\";\n this.missingFile = true;\n }\n\n charsToGlyphs() {\n return [];\n }\n\n encodeString(chars) {\n return [chars];\n }\n\n exportData(extraProperties = false) {\n return { error: this.error };\n }\n}\n\nexport { ErrorFont, Font };\n","/* Copyright 2016 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n bytesToString,\n FormatError,\n info,\n shadow,\n stringToBytes,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport {\n ExpertCharset,\n ExpertSubsetCharset,\n ISOAdobeCharset,\n} from \"./charsets.js\";\nimport { ExpertEncoding, StandardEncoding } from \"./encodings.js\";\n\n// Maximum subroutine call depth of type 2 charstrings. Matches OTS.\nconst MAX_SUBR_NESTING = 10;\n\n/**\n * The CFF class takes a Type1 file and wrap it into a\n * 'Compact Font Format' which itself embed Type2 charstrings.\n */\n// prettier-ignore\nconst CFFStandardStrings = [\n \".notdef\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\",\n \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\",\n \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\",\n \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\",\n \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\",\n \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\",\n \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\",\n \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\",\n \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\",\n \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"exclamdown\", \"cent\",\n \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\",\n \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\",\n \"guilsinglright\", \"fi\", \"fl\", \"endash\", \"dagger\", \"daggerdbl\",\n \"periodcentered\", \"paragraph\", \"bullet\", \"quotesinglbase\", \"quotedblbase\",\n \"quotedblright\", \"guillemotright\", \"ellipsis\", \"perthousand\", \"questiondown\",\n \"grave\", \"acute\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\",\n \"dieresis\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\",\n \"AE\", \"ordfeminine\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"ae\",\n \"dotlessi\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"onesuperior\",\n \"logicalnot\", \"mu\", \"trademark\", \"Eth\", \"onehalf\", \"plusminus\", \"Thorn\",\n \"onequarter\", \"divide\", \"brokenbar\", \"degree\", \"thorn\", \"threequarters\",\n \"twosuperior\", \"registered\", \"minus\", \"eth\", \"multiply\", \"threesuperior\",\n \"copyright\", \"Aacute\", \"Acircumflex\", \"Adieresis\", \"Agrave\", \"Aring\",\n \"Atilde\", \"Ccedilla\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Egrave\",\n \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Ntilde\", \"Oacute\",\n \"Ocircumflex\", \"Odieresis\", \"Ograve\", \"Otilde\", \"Scaron\", \"Uacute\",\n \"Ucircumflex\", \"Udieresis\", \"Ugrave\", \"Yacute\", \"Ydieresis\", \"Zcaron\",\n \"aacute\", \"acircumflex\", \"adieresis\", \"agrave\", \"aring\", \"atilde\",\n \"ccedilla\", \"eacute\", \"ecircumflex\", \"edieresis\", \"egrave\", \"iacute\",\n \"icircumflex\", \"idieresis\", \"igrave\", \"ntilde\", \"oacute\", \"ocircumflex\",\n \"odieresis\", \"ograve\", \"otilde\", \"scaron\", \"uacute\", \"ucircumflex\",\n \"udieresis\", \"ugrave\", \"yacute\", \"ydieresis\", \"zcaron\", \"exclamsmall\",\n \"Hungarumlautsmall\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\",\n \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\",\n \"onedotenleader\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\",\n \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\",\n \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"commasuperior\",\n \"threequartersemdash\", \"periodsuperior\", \"questionsmall\", \"asuperior\",\n \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\",\n \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\",\n \"tsuperior\", \"ff\", \"ffi\", \"ffl\", \"parenleftinferior\", \"parenrightinferior\",\n \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\", \"Asmall\", \"Bsmall\",\n \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\",\n \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\",\n \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\",\n \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\",\n \"Tildesmall\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\",\n \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\", \"Caronsmall\",\n \"Dotaccentsmall\", \"Macronsmall\", \"figuredash\", \"hypheninferior\",\n \"Ogoneksmall\", \"Ringsmall\", \"Cedillasmall\", \"questiondownsmall\", \"oneeighth\",\n \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\",\n \"zerosuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\",\n \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\",\n \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\",\n \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\",\n \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\",\n \"commainferior\", \"Agravesmall\", \"Aacutesmall\", \"Acircumflexsmall\",\n \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\",\n \"Egravesmall\", \"Eacutesmall\", \"Ecircumflexsmall\", \"Edieresissmall\",\n \"Igravesmall\", \"Iacutesmall\", \"Icircumflexsmall\", \"Idieresissmall\",\n \"Ethsmall\", \"Ntildesmall\", \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\",\n \"Otildesmall\", \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\",\n \"Uacutesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\",\n \"Thornsmall\", \"Ydieresissmall\", \"001.000\", \"001.001\", \"001.002\", \"001.003\",\n \"Black\", \"Bold\", \"Book\", \"Light\", \"Medium\", \"Regular\", \"Roman\", \"Semibold\"\n];\n\nconst NUM_STANDARD_CFF_STRINGS = 391;\n\nconst CFFParser = (function CFFParserClosure() {\n const CharstringValidationData = [\n null,\n { id: \"hstem\", min: 2, stackClearing: true, stem: true },\n null,\n { id: \"vstem\", min: 2, stackClearing: true, stem: true },\n { id: \"vmoveto\", min: 1, stackClearing: true },\n { id: \"rlineto\", min: 2, resetStack: true },\n { id: \"hlineto\", min: 1, resetStack: true },\n { id: \"vlineto\", min: 1, resetStack: true },\n { id: \"rrcurveto\", min: 6, resetStack: true },\n null,\n { id: \"callsubr\", min: 1, undefStack: true },\n { id: \"return\", min: 0, undefStack: true },\n null, // 12\n null,\n { id: \"endchar\", min: 0, stackClearing: true },\n null,\n null,\n null,\n { id: \"hstemhm\", min: 2, stackClearing: true, stem: true },\n { id: \"hintmask\", min: 0, stackClearing: true },\n { id: \"cntrmask\", min: 0, stackClearing: true },\n { id: \"rmoveto\", min: 2, stackClearing: true },\n { id: \"hmoveto\", min: 1, stackClearing: true },\n { id: \"vstemhm\", min: 2, stackClearing: true, stem: true },\n { id: \"rcurveline\", min: 8, resetStack: true },\n { id: \"rlinecurve\", min: 8, resetStack: true },\n { id: \"vvcurveto\", min: 4, resetStack: true },\n { id: \"hhcurveto\", min: 4, resetStack: true },\n null, // shortint\n { id: \"callgsubr\", min: 1, undefStack: true },\n { id: \"vhcurveto\", min: 4, resetStack: true },\n { id: \"hvcurveto\", min: 4, resetStack: true },\n ];\n const CharstringValidationData12 = [\n null,\n null,\n null,\n { id: \"and\", min: 2, stackDelta: -1 },\n { id: \"or\", min: 2, stackDelta: -1 },\n { id: \"not\", min: 1, stackDelta: 0 },\n null,\n null,\n null,\n { id: \"abs\", min: 1, stackDelta: 0 },\n {\n id: \"add\",\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] + stack[index - 1];\n },\n },\n {\n id: \"sub\",\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] - stack[index - 1];\n },\n },\n {\n id: \"div\",\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] / stack[index - 1];\n },\n },\n null,\n {\n id: \"neg\",\n min: 1,\n stackDelta: 0,\n stackFn: function stack_div(stack, index) {\n stack[index - 1] = -stack[index - 1];\n },\n },\n { id: \"eq\", min: 2, stackDelta: -1 },\n null,\n null,\n { id: \"drop\", min: 1, stackDelta: -1 },\n null,\n { id: \"put\", min: 2, stackDelta: -2 },\n { id: \"get\", min: 1, stackDelta: 0 },\n { id: \"ifelse\", min: 4, stackDelta: -3 },\n { id: \"random\", min: 0, stackDelta: 1 },\n {\n id: \"mul\",\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] * stack[index - 1];\n },\n },\n null,\n { id: \"sqrt\", min: 1, stackDelta: 0 },\n { id: \"dup\", min: 1, stackDelta: 1 },\n { id: \"exch\", min: 2, stackDelta: 0 },\n { id: \"index\", min: 2, stackDelta: 0 },\n { id: \"roll\", min: 3, stackDelta: -2 },\n null,\n null,\n null,\n { id: \"hflex\", min: 7, resetStack: true },\n { id: \"flex\", min: 13, resetStack: true },\n { id: \"hflex1\", min: 9, resetStack: true },\n { id: \"flex1\", min: 11, resetStack: true },\n ];\n\n // eslint-disable-next-line no-shadow\n class CFFParser {\n constructor(file, properties, seacAnalysisEnabled) {\n this.bytes = file.getBytes();\n this.properties = properties;\n this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n }\n\n parse() {\n const properties = this.properties;\n const cff = new CFF();\n this.cff = cff;\n\n // The first five sections must be in order, all the others are reached\n // via offsets contained in one of the below.\n const header = this.parseHeader();\n const nameIndex = this.parseIndex(header.endPos);\n const topDictIndex = this.parseIndex(nameIndex.endPos);\n const stringIndex = this.parseIndex(topDictIndex.endPos);\n const globalSubrIndex = this.parseIndex(stringIndex.endPos);\n\n const topDictParsed = this.parseDict(topDictIndex.obj.get(0));\n const topDict = this.createDict(CFFTopDict, topDictParsed, cff.strings);\n\n cff.header = header.obj;\n cff.names = this.parseNameIndex(nameIndex.obj);\n cff.strings = this.parseStringIndex(stringIndex.obj);\n cff.topDict = topDict;\n cff.globalSubrIndex = globalSubrIndex.obj;\n\n this.parsePrivateDict(cff.topDict);\n\n cff.isCIDFont = topDict.hasName(\"ROS\");\n\n const charStringOffset = topDict.getByName(\"CharStrings\");\n const charStringIndex = this.parseIndex(charStringOffset).obj;\n\n const fontMatrix = topDict.getByName(\"FontMatrix\");\n if (fontMatrix) {\n properties.fontMatrix = fontMatrix;\n }\n\n const fontBBox = topDict.getByName(\"FontBBox\");\n if (fontBBox) {\n // adjusting ascent/descent\n properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n properties.ascentScaled = true;\n }\n\n let charset, encoding;\n if (cff.isCIDFont) {\n const fdArrayIndex = this.parseIndex(topDict.getByName(\"FDArray\")).obj;\n for (let i = 0, ii = fdArrayIndex.count; i < ii; ++i) {\n const dictRaw = fdArrayIndex.get(i);\n const fontDict = this.createDict(\n CFFTopDict,\n this.parseDict(dictRaw),\n cff.strings\n );\n this.parsePrivateDict(fontDict);\n cff.fdArray.push(fontDict);\n }\n // cid fonts don't have an encoding\n encoding = null;\n charset = this.parseCharsets(\n topDict.getByName(\"charset\"),\n charStringIndex.count,\n cff.strings,\n true\n );\n cff.fdSelect = this.parseFDSelect(\n topDict.getByName(\"FDSelect\"),\n charStringIndex.count\n );\n } else {\n charset = this.parseCharsets(\n topDict.getByName(\"charset\"),\n charStringIndex.count,\n cff.strings,\n false\n );\n encoding = this.parseEncoding(\n topDict.getByName(\"Encoding\"),\n properties,\n cff.strings,\n charset.charset\n );\n }\n\n cff.charset = charset;\n cff.encoding = encoding;\n\n const charStringsAndSeacs = this.parseCharStrings({\n charStrings: charStringIndex,\n localSubrIndex: topDict.privateDict.subrsIndex,\n globalSubrIndex: globalSubrIndex.obj,\n fdSelect: cff.fdSelect,\n fdArray: cff.fdArray,\n privateDict: topDict.privateDict,\n });\n cff.charStrings = charStringsAndSeacs.charStrings;\n cff.seacs = charStringsAndSeacs.seacs;\n cff.widths = charStringsAndSeacs.widths;\n\n return cff;\n }\n\n parseHeader() {\n let bytes = this.bytes;\n const bytesLength = bytes.length;\n let offset = 0;\n\n // Prevent an infinite loop, by checking that the offset is within the\n // bounds of the bytes array. Necessary in empty, or invalid, font files.\n while (offset < bytesLength && bytes[offset] !== 1) {\n ++offset;\n }\n if (offset >= bytesLength) {\n throw new FormatError(\"Invalid CFF header\");\n }\n if (offset !== 0) {\n info(\"cff data is shifted\");\n bytes = bytes.subarray(offset);\n this.bytes = bytes;\n }\n const major = bytes[0];\n const minor = bytes[1];\n const hdrSize = bytes[2];\n const offSize = bytes[3];\n const header = new CFFHeader(major, minor, hdrSize, offSize);\n return { obj: header, endPos: hdrSize };\n }\n\n parseDict(dict) {\n let pos = 0;\n\n function parseOperand() {\n let value = dict[pos++];\n if (value === 30) {\n return parseFloatOperand();\n } else if (value === 28) {\n value = dict[pos++];\n value = ((value << 24) | (dict[pos++] << 16)) >> 16;\n return value;\n } else if (value === 29) {\n value = dict[pos++];\n value = (value << 8) | dict[pos++];\n value = (value << 8) | dict[pos++];\n value = (value << 8) | dict[pos++];\n return value;\n } else if (value >= 32 && value <= 246) {\n return value - 139;\n } else if (value >= 247 && value <= 250) {\n return (value - 247) * 256 + dict[pos++] + 108;\n } else if (value >= 251 && value <= 254) {\n return -((value - 251) * 256) - dict[pos++] - 108;\n }\n warn('CFFParser_parseDict: \"' + value + '\" is a reserved command.');\n return NaN;\n }\n\n function parseFloatOperand() {\n let str = \"\";\n const eof = 15;\n // prettier-ignore\n const lookup = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\",\n \"9\", \".\", \"E\", \"E-\", null, \"-\"];\n const length = dict.length;\n while (pos < length) {\n const b = dict[pos++];\n const b1 = b >> 4;\n const b2 = b & 15;\n\n if (b1 === eof) {\n break;\n }\n str += lookup[b1];\n\n if (b2 === eof) {\n break;\n }\n str += lookup[b2];\n }\n return parseFloat(str);\n }\n\n let operands = [];\n const entries = [];\n\n pos = 0;\n const end = dict.length;\n while (pos < end) {\n let b = dict[pos];\n if (b <= 21) {\n if (b === 12) {\n b = (b << 8) | dict[++pos];\n }\n entries.push([b, operands]);\n operands = [];\n ++pos;\n } else {\n operands.push(parseOperand());\n }\n }\n return entries;\n }\n\n parseIndex(pos) {\n const cffIndex = new CFFIndex();\n const bytes = this.bytes;\n const count = (bytes[pos++] << 8) | bytes[pos++];\n const offsets = [];\n let end = pos;\n let i, ii;\n\n if (count !== 0) {\n const offsetSize = bytes[pos++];\n // add 1 for offset to determine size of last object\n const startPos = pos + (count + 1) * offsetSize - 1;\n\n for (i = 0, ii = count + 1; i < ii; ++i) {\n let offset = 0;\n for (let j = 0; j < offsetSize; ++j) {\n offset <<= 8;\n offset += bytes[pos++];\n }\n offsets.push(startPos + offset);\n }\n end = offsets[count];\n }\n for (i = 0, ii = offsets.length - 1; i < ii; ++i) {\n const offsetStart = offsets[i];\n const offsetEnd = offsets[i + 1];\n cffIndex.add(bytes.subarray(offsetStart, offsetEnd));\n }\n return { obj: cffIndex, endPos: end };\n }\n\n parseNameIndex(index) {\n const names = [];\n for (let i = 0, ii = index.count; i < ii; ++i) {\n const name = index.get(i);\n names.push(bytesToString(name));\n }\n return names;\n }\n\n parseStringIndex(index) {\n const strings = new CFFStrings();\n for (let i = 0, ii = index.count; i < ii; ++i) {\n const data = index.get(i);\n strings.add(bytesToString(data));\n }\n return strings;\n }\n\n createDict(Type, dict, strings) {\n const cffDict = new Type(strings);\n for (let i = 0, ii = dict.length; i < ii; ++i) {\n const pair = dict[i];\n const key = pair[0];\n const value = pair[1];\n cffDict.setByKey(key, value);\n }\n return cffDict;\n }\n\n parseCharString(state, data, localSubrIndex, globalSubrIndex) {\n if (!data || state.callDepth > MAX_SUBR_NESTING) {\n return false;\n }\n let stackSize = state.stackSize;\n const stack = state.stack;\n\n const length = data.length;\n\n for (let j = 0; j < length; ) {\n const value = data[j++];\n let validationCommand = null;\n if (value === 12) {\n const q = data[j++];\n if (q === 0) {\n // The CFF specification state that the 'dotsection' command\n // (12, 0) is deprecated and treated as a no-op, but all Type2\n // charstrings processors should support them. Unfortunately\n // the font sanitizer don't. As a workaround the sequence (12, 0)\n // is replaced by a useless (0, hmoveto).\n data[j - 2] = 139;\n data[j - 1] = 22;\n stackSize = 0;\n } else {\n validationCommand = CharstringValidationData12[q];\n }\n } else if (value === 28) {\n // number (16 bit)\n stack[stackSize] = ((data[j] << 24) | (data[j + 1] << 16)) >> 16;\n j += 2;\n stackSize++;\n } else if (value === 14) {\n if (stackSize >= 4) {\n stackSize -= 4;\n if (this.seacAnalysisEnabled) {\n state.seac = stack.slice(stackSize, stackSize + 4);\n return false;\n }\n }\n validationCommand = CharstringValidationData[value];\n } else if (value >= 32 && value <= 246) {\n // number\n stack[stackSize] = value - 139;\n stackSize++;\n } else if (value >= 247 && value <= 254) {\n // number (+1 bytes)\n stack[stackSize] =\n value < 251\n ? ((value - 247) << 8) + data[j] + 108\n : -((value - 251) << 8) - data[j] - 108;\n j++;\n stackSize++;\n } else if (value === 255) {\n // number (32 bit)\n stack[stackSize] =\n ((data[j] << 24) |\n (data[j + 1] << 16) |\n (data[j + 2] << 8) |\n data[j + 3]) /\n 65536;\n j += 4;\n stackSize++;\n } else if (value === 19 || value === 20) {\n state.hints += stackSize >> 1;\n // skipping right amount of hints flag data\n j += (state.hints + 7) >> 3;\n stackSize %= 2;\n validationCommand = CharstringValidationData[value];\n } else if (value === 10 || value === 29) {\n let subrsIndex;\n if (value === 10) {\n subrsIndex = localSubrIndex;\n } else {\n subrsIndex = globalSubrIndex;\n }\n if (!subrsIndex) {\n validationCommand = CharstringValidationData[value];\n warn(\"Missing subrsIndex for \" + validationCommand.id);\n return false;\n }\n let bias = 32768;\n if (subrsIndex.count < 1240) {\n bias = 107;\n } else if (subrsIndex.count < 33900) {\n bias = 1131;\n }\n const subrNumber = stack[--stackSize] + bias;\n if (\n subrNumber < 0 ||\n subrNumber >= subrsIndex.count ||\n isNaN(subrNumber)\n ) {\n validationCommand = CharstringValidationData[value];\n warn(\"Out of bounds subrIndex for \" + validationCommand.id);\n return false;\n }\n state.stackSize = stackSize;\n state.callDepth++;\n const valid = this.parseCharString(\n state,\n subrsIndex.get(subrNumber),\n localSubrIndex,\n globalSubrIndex\n );\n if (!valid) {\n return false;\n }\n state.callDepth--;\n stackSize = state.stackSize;\n continue;\n } else if (value === 11) {\n state.stackSize = stackSize;\n return true;\n } else if (value === 0 && j === data.length) {\n // Operator 0 is not used according to the current spec and\n // it's the last char and consequently it's likely a terminator.\n // So just replace it by endchar command to make OTS happy.\n data[j - 1] = 14;\n validationCommand = CharstringValidationData[14];\n } else {\n validationCommand = CharstringValidationData[value];\n }\n if (validationCommand) {\n if (validationCommand.stem) {\n state.hints += stackSize >> 1;\n if (value === 3 || value === 23) {\n // vstem or vstemhm.\n state.hasVStems = true;\n } else if (state.hasVStems && (value === 1 || value === 18)) {\n // Some browsers don't draw glyphs that specify vstems before\n // hstems. As a workaround, replace hstem (1) and hstemhm (18)\n // with a pointless vstem (3) or vstemhm (23).\n warn(\"CFF stem hints are in wrong order\");\n data[j - 1] = value === 1 ? 3 : 23;\n }\n }\n if (\"min\" in validationCommand) {\n if (!state.undefStack && stackSize < validationCommand.min) {\n warn(\n \"Not enough parameters for \" +\n validationCommand.id +\n \"; actual: \" +\n stackSize +\n \", expected: \" +\n validationCommand.min\n );\n\n if (stackSize === 0) {\n // Just \"fix\" the outline in replacing command by a endchar:\n // it could lead to wrong rendering of some glyphs or not.\n // For example, the pdf in #6132 is well-rendered.\n data[j - 1] = 14;\n return true;\n }\n return false;\n }\n }\n if (state.firstStackClearing && validationCommand.stackClearing) {\n state.firstStackClearing = false;\n // the optional character width can be found before the first\n // stack-clearing command arguments\n stackSize -= validationCommand.min;\n if (stackSize >= 2 && validationCommand.stem) {\n // there are even amount of arguments for stem commands\n stackSize %= 2;\n } else if (stackSize > 1) {\n warn(\"Found too many parameters for stack-clearing command\");\n }\n if (stackSize > 0) {\n // Width can be any number since its the difference\n // from nominalWidthX.\n state.width = stack[stackSize - 1];\n }\n }\n if (\"stackDelta\" in validationCommand) {\n if (\"stackFn\" in validationCommand) {\n validationCommand.stackFn(stack, stackSize);\n }\n stackSize += validationCommand.stackDelta;\n } else if (validationCommand.stackClearing) {\n stackSize = 0;\n } else if (validationCommand.resetStack) {\n stackSize = 0;\n state.undefStack = false;\n } else if (validationCommand.undefStack) {\n stackSize = 0;\n state.undefStack = true;\n state.firstStackClearing = false;\n }\n }\n }\n state.stackSize = stackSize;\n return true;\n }\n\n parseCharStrings({\n charStrings,\n localSubrIndex,\n globalSubrIndex,\n fdSelect,\n fdArray,\n privateDict,\n }) {\n const seacs = [];\n const widths = [];\n const count = charStrings.count;\n for (let i = 0; i < count; i++) {\n const charstring = charStrings.get(i);\n const state = {\n callDepth: 0,\n stackSize: 0,\n stack: [],\n undefStack: true,\n hints: 0,\n firstStackClearing: true,\n seac: null,\n width: null,\n hasVStems: false,\n };\n let valid = true;\n let localSubrToUse = null;\n let privateDictToUse = privateDict;\n if (fdSelect && fdArray.length) {\n const fdIndex = fdSelect.getFDIndex(i);\n if (fdIndex === -1) {\n warn(\"Glyph index is not in fd select.\");\n valid = false;\n }\n if (fdIndex >= fdArray.length) {\n warn(\"Invalid fd index for glyph index.\");\n valid = false;\n }\n if (valid) {\n privateDictToUse = fdArray[fdIndex].privateDict;\n localSubrToUse = privateDictToUse.subrsIndex;\n }\n } else if (localSubrIndex) {\n localSubrToUse = localSubrIndex;\n }\n if (valid) {\n valid = this.parseCharString(\n state,\n charstring,\n localSubrToUse,\n globalSubrIndex\n );\n }\n if (state.width !== null) {\n const nominalWidth = privateDictToUse.getByName(\"nominalWidthX\");\n widths[i] = nominalWidth + state.width;\n } else {\n const defaultWidth = privateDictToUse.getByName(\"defaultWidthX\");\n widths[i] = defaultWidth;\n }\n if (state.seac !== null) {\n seacs[i] = state.seac;\n }\n if (!valid) {\n // resetting invalid charstring to single 'endchar'\n charStrings.set(i, new Uint8Array([14]));\n }\n }\n return { charStrings, seacs, widths };\n }\n\n emptyPrivateDictionary(parentDict) {\n const privateDict = this.createDict(\n CFFPrivateDict,\n [],\n parentDict.strings\n );\n parentDict.setByKey(18, [0, 0]);\n parentDict.privateDict = privateDict;\n }\n\n parsePrivateDict(parentDict) {\n // no private dict, do nothing\n if (!parentDict.hasName(\"Private\")) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n const privateOffset = parentDict.getByName(\"Private\");\n // make sure the params are formatted correctly\n if (!Array.isArray(privateOffset) || privateOffset.length !== 2) {\n parentDict.removeByName(\"Private\");\n return;\n }\n const size = privateOffset[0];\n const offset = privateOffset[1];\n // remove empty dicts or ones that refer to invalid location\n if (size === 0 || offset >= this.bytes.length) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n\n const privateDictEnd = offset + size;\n const dictData = this.bytes.subarray(offset, privateDictEnd);\n const dict = this.parseDict(dictData);\n const privateDict = this.createDict(\n CFFPrivateDict,\n dict,\n parentDict.strings\n );\n parentDict.privateDict = privateDict;\n\n // Parse the Subrs index also since it's relative to the private dict.\n if (!privateDict.getByName(\"Subrs\")) {\n return;\n }\n const subrsOffset = privateDict.getByName(\"Subrs\");\n const relativeOffset = offset + subrsOffset;\n // Validate the offset.\n if (subrsOffset === 0 || relativeOffset >= this.bytes.length) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n const subrsIndex = this.parseIndex(relativeOffset);\n privateDict.subrsIndex = subrsIndex.obj;\n }\n\n parseCharsets(pos, length, strings, cid) {\n if (pos === 0) {\n return new CFFCharset(\n true,\n CFFCharsetPredefinedTypes.ISO_ADOBE,\n ISOAdobeCharset\n );\n } else if (pos === 1) {\n return new CFFCharset(\n true,\n CFFCharsetPredefinedTypes.EXPERT,\n ExpertCharset\n );\n } else if (pos === 2) {\n return new CFFCharset(\n true,\n CFFCharsetPredefinedTypes.EXPERT_SUBSET,\n ExpertSubsetCharset\n );\n }\n\n const bytes = this.bytes;\n const start = pos;\n const format = bytes[pos++];\n const charset = [cid ? 0 : \".notdef\"];\n let id, count, i;\n\n // subtract 1 for the .notdef glyph\n length -= 1;\n\n switch (format) {\n case 0:\n for (i = 0; i < length; i++) {\n id = (bytes[pos++] << 8) | bytes[pos++];\n charset.push(cid ? id : strings.get(id));\n }\n break;\n case 1:\n while (charset.length <= length) {\n id = (bytes[pos++] << 8) | bytes[pos++];\n count = bytes[pos++];\n for (i = 0; i <= count; i++) {\n charset.push(cid ? id++ : strings.get(id++));\n }\n }\n break;\n case 2:\n while (charset.length <= length) {\n id = (bytes[pos++] << 8) | bytes[pos++];\n count = (bytes[pos++] << 8) | bytes[pos++];\n for (i = 0; i <= count; i++) {\n charset.push(cid ? id++ : strings.get(id++));\n }\n }\n break;\n default:\n throw new FormatError(\"Unknown charset format\");\n }\n // Raw won't be needed if we actually compile the charset.\n const end = pos;\n const raw = bytes.subarray(start, end);\n\n return new CFFCharset(false, format, charset, raw);\n }\n\n parseEncoding(pos, properties, strings, charset) {\n const encoding = Object.create(null);\n const bytes = this.bytes;\n let predefined = false;\n let format, i, ii;\n let raw = null;\n\n function readSupplement() {\n const supplementsCount = bytes[pos++];\n for (i = 0; i < supplementsCount; i++) {\n const code = bytes[pos++];\n const sid = (bytes[pos++] << 8) + (bytes[pos++] & 0xff);\n encoding[code] = charset.indexOf(strings.get(sid));\n }\n }\n\n if (pos === 0 || pos === 1) {\n predefined = true;\n format = pos;\n const baseEncoding = pos ? ExpertEncoding : StandardEncoding;\n for (i = 0, ii = charset.length; i < ii; i++) {\n const index = baseEncoding.indexOf(charset[i]);\n if (index !== -1) {\n encoding[index] = i;\n }\n }\n } else {\n const dataStart = pos;\n format = bytes[pos++];\n switch (format & 0x7f) {\n case 0:\n const glyphsCount = bytes[pos++];\n for (i = 1; i <= glyphsCount; i++) {\n encoding[bytes[pos++]] = i;\n }\n break;\n\n case 1:\n const rangesCount = bytes[pos++];\n let gid = 1;\n for (i = 0; i < rangesCount; i++) {\n const start = bytes[pos++];\n const left = bytes[pos++];\n for (let j = start; j <= start + left; j++) {\n encoding[j] = gid++;\n }\n }\n break;\n\n default:\n throw new FormatError(`Unknown encoding format: ${format} in CFF`);\n }\n const dataEnd = pos;\n if (format & 0x80) {\n // hasSupplement\n // The font sanitizer does not support CFF encoding with a\n // supplement, since the encoding is not really used to map\n // between gid to glyph, let's overwrite what is declared in\n // the top dictionary to let the sanitizer think the font use\n // StandardEncoding, that's a lie but that's ok.\n bytes[dataStart] &= 0x7f;\n readSupplement();\n }\n raw = bytes.subarray(dataStart, dataEnd);\n }\n format &= 0x7f;\n return new CFFEncoding(predefined, format, encoding, raw);\n }\n\n parseFDSelect(pos, length) {\n const bytes = this.bytes;\n const format = bytes[pos++];\n const fdSelect = [];\n let i;\n\n switch (format) {\n case 0:\n for (i = 0; i < length; ++i) {\n const id = bytes[pos++];\n fdSelect.push(id);\n }\n break;\n case 3:\n const rangesCount = (bytes[pos++] << 8) | bytes[pos++];\n for (i = 0; i < rangesCount; ++i) {\n let first = (bytes[pos++] << 8) | bytes[pos++];\n if (i === 0 && first !== 0) {\n warn(\n \"parseFDSelect: The first range must have a first GID of 0\" +\n \" -- trying to recover.\"\n );\n first = 0;\n }\n const fdIndex = bytes[pos++];\n const next = (bytes[pos] << 8) | bytes[pos + 1];\n for (let j = first; j < next; ++j) {\n fdSelect.push(fdIndex);\n }\n }\n // Advance past the sentinel(next).\n pos += 2;\n break;\n default:\n throw new FormatError(`parseFDSelect: Unknown format \"${format}\".`);\n }\n if (fdSelect.length !== length) {\n throw new FormatError(\"parseFDSelect: Invalid font data.\");\n }\n\n return new CFFFDSelect(format, fdSelect);\n }\n }\n return CFFParser;\n})();\n\n// Compact Font Format\nclass CFF {\n constructor() {\n this.header = null;\n this.names = [];\n this.topDict = null;\n this.strings = new CFFStrings();\n this.globalSubrIndex = null;\n\n // The following could really be per font, but since we only have one font\n // store them here.\n this.encoding = null;\n this.charset = null;\n this.charStrings = null;\n this.fdArray = [];\n this.fdSelect = null;\n\n this.isCIDFont = false;\n }\n\n duplicateFirstGlyph() {\n // Browsers will not display a glyph at position 0. Typically glyph 0 is\n // notdef, but a number of fonts put a valid glyph there so it must be\n // duplicated and appended.\n if (this.charStrings.count >= 65535) {\n warn(\"Not enough space in charstrings to duplicate first glyph.\");\n return;\n }\n const glyphZero = this.charStrings.get(0);\n this.charStrings.add(glyphZero);\n if (this.isCIDFont) {\n this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0]);\n }\n }\n\n hasGlyphId(id) {\n if (id < 0 || id >= this.charStrings.count) {\n return false;\n }\n const glyph = this.charStrings.get(id);\n return glyph.length > 0;\n }\n}\n\nclass CFFHeader {\n constructor(major, minor, hdrSize, offSize) {\n this.major = major;\n this.minor = minor;\n this.hdrSize = hdrSize;\n this.offSize = offSize;\n }\n}\n\nclass CFFStrings {\n constructor() {\n this.strings = [];\n }\n\n get(index) {\n if (index >= 0 && index <= NUM_STANDARD_CFF_STRINGS - 1) {\n return CFFStandardStrings[index];\n }\n if (index - NUM_STANDARD_CFF_STRINGS <= this.strings.length) {\n return this.strings[index - NUM_STANDARD_CFF_STRINGS];\n }\n return CFFStandardStrings[0];\n }\n\n getSID(str) {\n let index = CFFStandardStrings.indexOf(str);\n if (index !== -1) {\n return index;\n }\n index = this.strings.indexOf(str);\n if (index !== -1) {\n return index + NUM_STANDARD_CFF_STRINGS;\n }\n return -1;\n }\n\n add(value) {\n this.strings.push(value);\n }\n\n get count() {\n return this.strings.length;\n }\n}\n\nclass CFFIndex {\n constructor() {\n this.objects = [];\n this.length = 0;\n }\n\n add(data) {\n this.length += data.length;\n this.objects.push(data);\n }\n\n set(index, data) {\n this.length += data.length - this.objects[index].length;\n this.objects[index] = data;\n }\n\n get(index) {\n return this.objects[index];\n }\n\n get count() {\n return this.objects.length;\n }\n}\n\nclass CFFDict {\n constructor(tables, strings) {\n this.keyToNameMap = tables.keyToNameMap;\n this.nameToKeyMap = tables.nameToKeyMap;\n this.defaults = tables.defaults;\n this.types = tables.types;\n this.opcodes = tables.opcodes;\n this.order = tables.order;\n this.strings = strings;\n this.values = Object.create(null);\n }\n\n // value should always be an array\n setByKey(key, value) {\n if (!(key in this.keyToNameMap)) {\n return false;\n }\n const valueLength = value.length;\n // ignore empty values\n if (valueLength === 0) {\n return true;\n }\n // Ignore invalid values (fixes bug1068432.pdf and bug1308536.pdf).\n for (let i = 0; i < valueLength; i++) {\n if (isNaN(value[i])) {\n warn('Invalid CFFDict value: \"' + value + '\" for key \"' + key + '\".');\n return true;\n }\n }\n const type = this.types[key];\n // remove the array wrapping these types of values\n if (type === \"num\" || type === \"sid\" || type === \"offset\") {\n value = value[0];\n }\n this.values[key] = value;\n return true;\n }\n\n setByName(name, value) {\n if (!(name in this.nameToKeyMap)) {\n throw new FormatError(`Invalid dictionary name \"${name}\"`);\n }\n this.values[this.nameToKeyMap[name]] = value;\n }\n\n hasName(name) {\n return this.nameToKeyMap[name] in this.values;\n }\n\n getByName(name) {\n if (!(name in this.nameToKeyMap)) {\n throw new FormatError(`Invalid dictionary name ${name}\"`);\n }\n const key = this.nameToKeyMap[name];\n if (!(key in this.values)) {\n return this.defaults[key];\n }\n return this.values[key];\n }\n\n removeByName(name) {\n delete this.values[this.nameToKeyMap[name]];\n }\n\n static createTables(layout) {\n const tables = {\n keyToNameMap: {},\n nameToKeyMap: {},\n defaults: {},\n types: {},\n opcodes: {},\n order: [],\n };\n for (let i = 0, ii = layout.length; i < ii; ++i) {\n const entry = layout[i];\n const key = Array.isArray(entry[0])\n ? (entry[0][0] << 8) + entry[0][1]\n : entry[0];\n tables.keyToNameMap[key] = entry[1];\n tables.nameToKeyMap[entry[1]] = key;\n tables.types[key] = entry[2];\n tables.defaults[key] = entry[3];\n tables.opcodes[key] = Array.isArray(entry[0]) ? entry[0] : [entry[0]];\n tables.order.push(key);\n }\n return tables;\n }\n}\n\nconst CFFTopDict = (function CFFTopDictClosure() {\n const layout = [\n [[12, 30], \"ROS\", [\"sid\", \"sid\", \"num\"], null],\n [[12, 20], \"SyntheticBase\", \"num\", null],\n [0, \"version\", \"sid\", null],\n [1, \"Notice\", \"sid\", null],\n [[12, 0], \"Copyright\", \"sid\", null],\n [2, \"FullName\", \"sid\", null],\n [3, \"FamilyName\", \"sid\", null],\n [4, \"Weight\", \"sid\", null],\n [[12, 1], \"isFixedPitch\", \"num\", 0],\n [[12, 2], \"ItalicAngle\", \"num\", 0],\n [[12, 3], \"UnderlinePosition\", \"num\", -100],\n [[12, 4], \"UnderlineThickness\", \"num\", 50],\n [[12, 5], \"PaintType\", \"num\", 0],\n [[12, 6], \"CharstringType\", \"num\", 2],\n // prettier-ignore\n [[12, 7], \"FontMatrix\", [\"num\", \"num\", \"num\", \"num\", \"num\", \"num\"],\n [0.001, 0, 0, 0.001, 0, 0]],\n [13, \"UniqueID\", \"num\", null],\n [5, \"FontBBox\", [\"num\", \"num\", \"num\", \"num\"], [0, 0, 0, 0]],\n [[12, 8], \"StrokeWidth\", \"num\", 0],\n [14, \"XUID\", \"array\", null],\n [15, \"charset\", \"offset\", 0],\n [16, \"Encoding\", \"offset\", 0],\n [17, \"CharStrings\", \"offset\", 0],\n [18, \"Private\", [\"offset\", \"offset\"], null],\n [[12, 21], \"PostScript\", \"sid\", null],\n [[12, 22], \"BaseFontName\", \"sid\", null],\n [[12, 23], \"BaseFontBlend\", \"delta\", null],\n [[12, 31], \"CIDFontVersion\", \"num\", 0],\n [[12, 32], \"CIDFontRevision\", \"num\", 0],\n [[12, 33], \"CIDFontType\", \"num\", 0],\n [[12, 34], \"CIDCount\", \"num\", 8720],\n [[12, 35], \"UIDBase\", \"num\", null],\n // XXX: CID Fonts on DirectWrite 6.1 only seem to work if FDSelect comes\n // before FDArray.\n [[12, 37], \"FDSelect\", \"offset\", null],\n [[12, 36], \"FDArray\", \"offset\", null],\n [[12, 38], \"FontName\", \"sid\", null],\n ];\n let tables = null;\n\n // eslint-disable-next-line no-shadow\n class CFFTopDict extends CFFDict {\n constructor(strings) {\n if (tables === null) {\n tables = CFFDict.createTables(layout);\n }\n super(tables, strings);\n this.privateDict = null;\n }\n }\n return CFFTopDict;\n})();\n\nconst CFFPrivateDict = (function CFFPrivateDictClosure() {\n const layout = [\n [6, \"BlueValues\", \"delta\", null],\n [7, \"OtherBlues\", \"delta\", null],\n [8, \"FamilyBlues\", \"delta\", null],\n [9, \"FamilyOtherBlues\", \"delta\", null],\n [[12, 9], \"BlueScale\", \"num\", 0.039625],\n [[12, 10], \"BlueShift\", \"num\", 7],\n [[12, 11], \"BlueFuzz\", \"num\", 1],\n [10, \"StdHW\", \"num\", null],\n [11, \"StdVW\", \"num\", null],\n [[12, 12], \"StemSnapH\", \"delta\", null],\n [[12, 13], \"StemSnapV\", \"delta\", null],\n [[12, 14], \"ForceBold\", \"num\", 0],\n [[12, 17], \"LanguageGroup\", \"num\", 0],\n [[12, 18], \"ExpansionFactor\", \"num\", 0.06],\n [[12, 19], \"initialRandomSeed\", \"num\", 0],\n [20, \"defaultWidthX\", \"num\", 0],\n [21, \"nominalWidthX\", \"num\", 0],\n [19, \"Subrs\", \"offset\", null],\n ];\n let tables = null;\n\n // eslint-disable-next-line no-shadow\n class CFFPrivateDict extends CFFDict {\n constructor(strings) {\n if (tables === null) {\n tables = CFFDict.createTables(layout);\n }\n super(tables, strings);\n this.subrsIndex = null;\n }\n }\n return CFFPrivateDict;\n})();\n\nconst CFFCharsetPredefinedTypes = {\n ISO_ADOBE: 0,\n EXPERT: 1,\n EXPERT_SUBSET: 2,\n};\n\nclass CFFCharset {\n constructor(predefined, format, charset, raw) {\n this.predefined = predefined;\n this.format = format;\n this.charset = charset;\n this.raw = raw;\n }\n}\n\nclass CFFEncoding {\n constructor(predefined, format, encoding, raw) {\n this.predefined = predefined;\n this.format = format;\n this.encoding = encoding;\n this.raw = raw;\n }\n}\n\nclass CFFFDSelect {\n constructor(format, fdSelect) {\n this.format = format;\n this.fdSelect = fdSelect;\n }\n\n getFDIndex(glyphIndex) {\n if (glyphIndex < 0 || glyphIndex >= this.fdSelect.length) {\n return -1;\n }\n return this.fdSelect[glyphIndex];\n }\n}\n\n// Helper class to keep track of where an offset is within the data and helps\n// filling in that offset once it's known.\nclass CFFOffsetTracker {\n constructor() {\n this.offsets = Object.create(null);\n }\n\n isTracking(key) {\n return key in this.offsets;\n }\n\n track(key, location) {\n if (key in this.offsets) {\n throw new FormatError(`Already tracking location of ${key}`);\n }\n this.offsets[key] = location;\n }\n\n offset(value) {\n for (const key in this.offsets) {\n this.offsets[key] += value;\n }\n }\n\n setEntryLocation(key, values, output) {\n if (!(key in this.offsets)) {\n throw new FormatError(`Not tracking location of ${key}`);\n }\n const data = output.data;\n const dataOffset = this.offsets[key];\n const size = 5;\n for (let i = 0, ii = values.length; i < ii; ++i) {\n const offset0 = i * size + dataOffset;\n const offset1 = offset0 + 1;\n const offset2 = offset0 + 2;\n const offset3 = offset0 + 3;\n const offset4 = offset0 + 4;\n // It's easy to screw up offsets so perform this sanity check.\n if (\n data[offset0] !== 0x1d ||\n data[offset1] !== 0 ||\n data[offset2] !== 0 ||\n data[offset3] !== 0 ||\n data[offset4] !== 0\n ) {\n throw new FormatError(\"writing to an offset that is not empty\");\n }\n const value = values[i];\n data[offset0] = 0x1d;\n data[offset1] = (value >> 24) & 0xff;\n data[offset2] = (value >> 16) & 0xff;\n data[offset3] = (value >> 8) & 0xff;\n data[offset4] = value & 0xff;\n }\n }\n}\n\n// Takes a CFF and converts it to the binary representation.\nclass CFFCompiler {\n constructor(cff) {\n this.cff = cff;\n }\n\n compile() {\n const cff = this.cff;\n const output = {\n data: [],\n length: 0,\n add: function CFFCompiler_add(data) {\n this.data = this.data.concat(data);\n this.length = this.data.length;\n },\n };\n\n // Compile the five entries that must be in order.\n const header = this.compileHeader(cff.header);\n output.add(header);\n\n const nameIndex = this.compileNameIndex(cff.names);\n output.add(nameIndex);\n\n if (cff.isCIDFont) {\n // The spec is unclear on how font matrices should relate to each other\n // when there is one in the main top dict and the sub top dicts.\n // Windows handles this differently than linux and osx so we have to\n // normalize to work on all.\n // Rules based off of some mailing list discussions:\n // - If main font has a matrix and subfont doesn't, use the main matrix.\n // - If no main font matrix and there is a subfont matrix, use the\n // subfont matrix.\n // - If both have matrices, concat together.\n // - If neither have matrices, use default.\n // To make this work on all platforms we move the top matrix into each\n // sub top dict and concat if necessary.\n if (cff.topDict.hasName(\"FontMatrix\")) {\n const base = cff.topDict.getByName(\"FontMatrix\");\n cff.topDict.removeByName(\"FontMatrix\");\n for (let i = 0, ii = cff.fdArray.length; i < ii; i++) {\n const subDict = cff.fdArray[i];\n let matrix = base.slice(0);\n if (subDict.hasName(\"FontMatrix\")) {\n matrix = Util.transform(matrix, subDict.getByName(\"FontMatrix\"));\n }\n subDict.setByName(\"FontMatrix\", matrix);\n }\n }\n }\n\n const xuid = cff.topDict.getByName(\"XUID\");\n if (xuid && xuid.length > 16) {\n // Length of XUID array must not be greater than 16 (issue #12399).\n cff.topDict.removeByName(\"XUID\");\n }\n\n cff.topDict.setByName(\"charset\", 0);\n let compiled = this.compileTopDicts(\n [cff.topDict],\n output.length,\n cff.isCIDFont\n );\n output.add(compiled.output);\n const topDictTracker = compiled.trackers[0];\n\n const stringIndex = this.compileStringIndex(cff.strings.strings);\n output.add(stringIndex);\n\n const globalSubrIndex = this.compileIndex(cff.globalSubrIndex);\n output.add(globalSubrIndex);\n\n // Now start on the other entries that have no specific order.\n if (cff.encoding && cff.topDict.hasName(\"Encoding\")) {\n if (cff.encoding.predefined) {\n topDictTracker.setEntryLocation(\n \"Encoding\",\n [cff.encoding.format],\n output\n );\n } else {\n const encoding = this.compileEncoding(cff.encoding);\n topDictTracker.setEntryLocation(\"Encoding\", [output.length], output);\n output.add(encoding);\n }\n }\n const charset = this.compileCharset(\n cff.charset,\n cff.charStrings.count,\n cff.strings,\n cff.isCIDFont\n );\n topDictTracker.setEntryLocation(\"charset\", [output.length], output);\n output.add(charset);\n\n const charStrings = this.compileCharStrings(cff.charStrings);\n topDictTracker.setEntryLocation(\"CharStrings\", [output.length], output);\n output.add(charStrings);\n\n if (cff.isCIDFont) {\n // For some reason FDSelect must be in front of FDArray on windows. OSX\n // and linux don't seem to care.\n topDictTracker.setEntryLocation(\"FDSelect\", [output.length], output);\n const fdSelect = this.compileFDSelect(cff.fdSelect);\n output.add(fdSelect);\n // It is unclear if the sub font dictionary can have CID related\n // dictionary keys, but the sanitizer doesn't like them so remove them.\n compiled = this.compileTopDicts(cff.fdArray, output.length, true);\n topDictTracker.setEntryLocation(\"FDArray\", [output.length], output);\n output.add(compiled.output);\n const fontDictTrackers = compiled.trackers;\n\n this.compilePrivateDicts(cff.fdArray, fontDictTrackers, output);\n }\n\n this.compilePrivateDicts([cff.topDict], [topDictTracker], output);\n\n // If the font data ends with INDEX whose object data is zero-length,\n // the sanitizer will bail out. Add a dummy byte to avoid that.\n output.add([0]);\n\n return output.data;\n }\n\n encodeNumber(value) {\n if (Number.isInteger(value)) {\n return this.encodeInteger(value);\n }\n return this.encodeFloat(value);\n }\n\n static get EncodeFloatRegExp() {\n return shadow(\n this,\n \"EncodeFloatRegExp\",\n /\\.(\\d*?)(?:9{5,20}|0{5,20})\\d{0,2}(?:e(.+)|$)/\n );\n }\n\n encodeFloat(num) {\n let value = num.toString();\n\n // Rounding inaccurate doubles.\n const m = CFFCompiler.EncodeFloatRegExp.exec(value);\n if (m) {\n const epsilon = parseFloat(\"1e\" + ((m[2] ? +m[2] : 0) + m[1].length));\n value = (Math.round(num * epsilon) / epsilon).toString();\n }\n\n let nibbles = \"\";\n let i, ii;\n for (i = 0, ii = value.length; i < ii; ++i) {\n const a = value[i];\n if (a === \"e\") {\n nibbles += value[++i] === \"-\" ? \"c\" : \"b\";\n } else if (a === \".\") {\n nibbles += \"a\";\n } else if (a === \"-\") {\n nibbles += \"e\";\n } else {\n nibbles += a;\n }\n }\n nibbles += nibbles.length & 1 ? \"f\" : \"ff\";\n const out = [30];\n for (i = 0, ii = nibbles.length; i < ii; i += 2) {\n out.push(parseInt(nibbles.substring(i, i + 2), 16));\n }\n return out;\n }\n\n encodeInteger(value) {\n let code;\n if (value >= -107 && value <= 107) {\n code = [value + 139];\n } else if (value >= 108 && value <= 1131) {\n value -= 108;\n code = [(value >> 8) + 247, value & 0xff];\n } else if (value >= -1131 && value <= -108) {\n value = -value - 108;\n code = [(value >> 8) + 251, value & 0xff];\n } else if (value >= -32768 && value <= 32767) {\n code = [0x1c, (value >> 8) & 0xff, value & 0xff];\n } else {\n code = [\n 0x1d,\n (value >> 24) & 0xff,\n (value >> 16) & 0xff,\n (value >> 8) & 0xff,\n value & 0xff,\n ];\n }\n return code;\n }\n\n compileHeader(header) {\n // `header.hdrSize` can be any value but we only write 4 values\n // so header size is 4 (prevents OTS from rejecting the font).\n return [header.major, header.minor, 4, header.offSize];\n }\n\n compileNameIndex(names) {\n const nameIndex = new CFFIndex();\n for (let i = 0, ii = names.length; i < ii; ++i) {\n const name = names[i];\n // OTS doesn't allow names to be over 127 characters.\n const length = Math.min(name.length, 127);\n let sanitizedName = new Array(length);\n for (let j = 0; j < length; j++) {\n // OTS requires chars to be between a range and not certain other\n // chars.\n let char = name[j];\n if (\n char < \"!\" ||\n char > \"~\" ||\n char === \"[\" ||\n char === \"]\" ||\n char === \"(\" ||\n char === \")\" ||\n char === \"{\" ||\n char === \"}\" ||\n char === \"<\" ||\n char === \">\" ||\n char === \"/\" ||\n char === \"%\"\n ) {\n char = \"_\";\n }\n sanitizedName[j] = char;\n }\n sanitizedName = sanitizedName.join(\"\");\n\n if (sanitizedName === \"\") {\n sanitizedName = \"Bad_Font_Name\";\n }\n nameIndex.add(stringToBytes(sanitizedName));\n }\n return this.compileIndex(nameIndex);\n }\n\n compileTopDicts(dicts, length, removeCidKeys) {\n const fontDictTrackers = [];\n let fdArrayIndex = new CFFIndex();\n for (let i = 0, ii = dicts.length; i < ii; ++i) {\n const fontDict = dicts[i];\n if (removeCidKeys) {\n fontDict.removeByName(\"CIDFontVersion\");\n fontDict.removeByName(\"CIDFontRevision\");\n fontDict.removeByName(\"CIDFontType\");\n fontDict.removeByName(\"CIDCount\");\n fontDict.removeByName(\"UIDBase\");\n }\n const fontDictTracker = new CFFOffsetTracker();\n const fontDictData = this.compileDict(fontDict, fontDictTracker);\n fontDictTrackers.push(fontDictTracker);\n fdArrayIndex.add(fontDictData);\n fontDictTracker.offset(length);\n }\n fdArrayIndex = this.compileIndex(fdArrayIndex, fontDictTrackers);\n return {\n trackers: fontDictTrackers,\n output: fdArrayIndex,\n };\n }\n\n compilePrivateDicts(dicts, trackers, output) {\n for (let i = 0, ii = dicts.length; i < ii; ++i) {\n const fontDict = dicts[i];\n const privateDict = fontDict.privateDict;\n if (!privateDict || !fontDict.hasName(\"Private\")) {\n throw new FormatError(\"There must be a private dictionary.\");\n }\n const privateDictTracker = new CFFOffsetTracker();\n const privateDictData = this.compileDict(privateDict, privateDictTracker);\n\n let outputLength = output.length;\n privateDictTracker.offset(outputLength);\n if (!privateDictData.length) {\n // The private dictionary was empty, set the output length to zero to\n // ensure the offset length isn't out of bounds in the eyes of the\n // sanitizer.\n outputLength = 0;\n }\n\n trackers[i].setEntryLocation(\n \"Private\",\n [privateDictData.length, outputLength],\n output\n );\n output.add(privateDictData);\n\n if (privateDict.subrsIndex && privateDict.hasName(\"Subrs\")) {\n const subrs = this.compileIndex(privateDict.subrsIndex);\n privateDictTracker.setEntryLocation(\n \"Subrs\",\n [privateDictData.length],\n output\n );\n output.add(subrs);\n }\n }\n }\n\n compileDict(dict, offsetTracker) {\n let out = [];\n // The dictionary keys must be in a certain order.\n const order = dict.order;\n for (let i = 0; i < order.length; ++i) {\n const key = order[i];\n if (!(key in dict.values)) {\n continue;\n }\n let values = dict.values[key];\n let types = dict.types[key];\n if (!Array.isArray(types)) {\n types = [types];\n }\n if (!Array.isArray(values)) {\n values = [values];\n }\n\n // Remove any empty dict values.\n if (values.length === 0) {\n continue;\n }\n\n for (let j = 0, jj = types.length; j < jj; ++j) {\n const type = types[j];\n const value = values[j];\n switch (type) {\n case \"num\":\n case \"sid\":\n out = out.concat(this.encodeNumber(value));\n break;\n case \"offset\":\n // For offsets we just insert a 32bit integer so we don't have to\n // deal with figuring out the length of the offset when it gets\n // replaced later on by the compiler.\n const name = dict.keyToNameMap[key];\n // Some offsets have the offset and the length, so just record the\n // position of the first one.\n if (!offsetTracker.isTracking(name)) {\n offsetTracker.track(name, out.length);\n }\n out = out.concat([0x1d, 0, 0, 0, 0]);\n break;\n case \"array\":\n case \"delta\":\n out = out.concat(this.encodeNumber(value));\n for (let k = 1, kk = values.length; k < kk; ++k) {\n out = out.concat(this.encodeNumber(values[k]));\n }\n break;\n default:\n throw new FormatError(`Unknown data type of ${type}`);\n }\n }\n out = out.concat(dict.opcodes[key]);\n }\n return out;\n }\n\n compileStringIndex(strings) {\n const stringIndex = new CFFIndex();\n for (let i = 0, ii = strings.length; i < ii; ++i) {\n stringIndex.add(stringToBytes(strings[i]));\n }\n return this.compileIndex(stringIndex);\n }\n\n compileGlobalSubrIndex() {\n const globalSubrIndex = this.cff.globalSubrIndex;\n this.out.writeByteArray(this.compileIndex(globalSubrIndex));\n }\n\n compileCharStrings(charStrings) {\n const charStringsIndex = new CFFIndex();\n for (let i = 0; i < charStrings.count; i++) {\n const glyph = charStrings.get(i);\n // If the CharString outline is empty, replace it with .notdef to\n // prevent OTS from rejecting the font (fixes bug1252420.pdf).\n if (glyph.length === 0) {\n charStringsIndex.add(new Uint8Array([0x8b, 0x0e]));\n continue;\n }\n charStringsIndex.add(glyph);\n }\n return this.compileIndex(charStringsIndex);\n }\n\n compileCharset(charset, numGlyphs, strings, isCIDFont) {\n // Freetype requires the number of charset strings be correct and MacOS\n // requires a valid mapping for printing.\n let out;\n const numGlyphsLessNotDef = numGlyphs - 1;\n if (isCIDFont) {\n // In a CID font, the charset is a mapping of CIDs not SIDs so just\n // create an identity mapping.\n out = new Uint8Array([\n 2, // format\n 0, // first CID upper byte\n 0, // first CID lower byte\n (numGlyphsLessNotDef >> 8) & 0xff,\n numGlyphsLessNotDef & 0xff,\n ]);\n } else {\n const length = 1 + numGlyphsLessNotDef * 2;\n out = new Uint8Array(length);\n out[0] = 0; // format 0\n let charsetIndex = 0;\n const numCharsets = charset.charset.length;\n let warned = false;\n for (let i = 1; i < out.length; i += 2) {\n let sid = 0;\n if (charsetIndex < numCharsets) {\n const name = charset.charset[charsetIndex++];\n sid = strings.getSID(name);\n if (sid === -1) {\n sid = 0;\n if (!warned) {\n warned = true;\n warn(`Couldn't find ${name} in CFF strings`);\n }\n }\n }\n out[i] = (sid >> 8) & 0xff;\n out[i + 1] = sid & 0xff;\n }\n }\n return this.compileTypedArray(out);\n }\n\n compileEncoding(encoding) {\n return this.compileTypedArray(encoding.raw);\n }\n\n compileFDSelect(fdSelect) {\n const format = fdSelect.format;\n let out, i;\n switch (format) {\n case 0:\n out = new Uint8Array(1 + fdSelect.fdSelect.length);\n out[0] = format;\n for (i = 0; i < fdSelect.fdSelect.length; i++) {\n out[i + 1] = fdSelect.fdSelect[i];\n }\n break;\n case 3:\n const start = 0;\n let lastFD = fdSelect.fdSelect[0];\n const ranges = [\n format,\n 0, // nRanges place holder\n 0, // nRanges place holder\n (start >> 8) & 0xff,\n start & 0xff,\n lastFD,\n ];\n for (i = 1; i < fdSelect.fdSelect.length; i++) {\n const currentFD = fdSelect.fdSelect[i];\n if (currentFD !== lastFD) {\n ranges.push((i >> 8) & 0xff, i & 0xff, currentFD);\n lastFD = currentFD;\n }\n }\n // 3 bytes are pushed for every range and there are 3 header bytes.\n const numRanges = (ranges.length - 3) / 3;\n ranges[1] = (numRanges >> 8) & 0xff;\n ranges[2] = numRanges & 0xff;\n // sentinel\n ranges.push((i >> 8) & 0xff, i & 0xff);\n out = new Uint8Array(ranges);\n break;\n }\n return this.compileTypedArray(out);\n }\n\n compileTypedArray(data) {\n const out = [];\n for (let i = 0, ii = data.length; i < ii; ++i) {\n out[i] = data[i];\n }\n return out;\n }\n\n compileIndex(index, trackers = []) {\n const objects = index.objects;\n // First 2 bytes contains the number of objects contained into this index\n const count = objects.length;\n\n // If there is no object, just create an index. This technically\n // should just be [0, 0] but OTS has an issue with that.\n if (count === 0) {\n return [0, 0, 0];\n }\n\n const data = [(count >> 8) & 0xff, count & 0xff];\n\n let lastOffset = 1,\n i;\n for (i = 0; i < count; ++i) {\n lastOffset += objects[i].length;\n }\n\n let offsetSize;\n if (lastOffset < 0x100) {\n offsetSize = 1;\n } else if (lastOffset < 0x10000) {\n offsetSize = 2;\n } else if (lastOffset < 0x1000000) {\n offsetSize = 3;\n } else {\n offsetSize = 4;\n }\n\n // Next byte contains the offset size use to reference object in the file\n data.push(offsetSize);\n\n // Add another offset after this one because we need a new offset\n let relativeOffset = 1;\n for (i = 0; i < count + 1; i++) {\n if (offsetSize === 1) {\n data.push(relativeOffset & 0xff);\n } else if (offsetSize === 2) {\n data.push((relativeOffset >> 8) & 0xff, relativeOffset & 0xff);\n } else if (offsetSize === 3) {\n data.push(\n (relativeOffset >> 16) & 0xff,\n (relativeOffset >> 8) & 0xff,\n relativeOffset & 0xff\n );\n } else {\n data.push(\n (relativeOffset >>> 24) & 0xff,\n (relativeOffset >> 16) & 0xff,\n (relativeOffset >> 8) & 0xff,\n relativeOffset & 0xff\n );\n }\n\n if (objects[i]) {\n relativeOffset += objects[i].length;\n }\n }\n\n for (i = 0; i < count; i++) {\n // Notify the tracker where the object will be offset in the data.\n if (trackers[i]) {\n trackers[i].offset(data.length);\n }\n for (let j = 0, jj = objects[i].length; j < jj; j++) {\n data.push(objects[i][j]);\n }\n }\n return data;\n }\n}\n\nexport {\n CFF,\n CFFCharset,\n CFFCompiler,\n CFFFDSelect,\n CFFHeader,\n CFFIndex,\n CFFParser,\n CFFPrivateDict,\n CFFStandardStrings,\n CFFStrings,\n CFFTopDict,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// prettier-ignore\nconst ISOAdobeCharset = [\n \".notdef\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\",\n \"percent\", \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\",\n \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\",\n \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\",\n \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\",\n \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\",\n \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\",\n \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\",\n \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\",\n \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\",\n \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"exclamdown\", \"cent\",\n \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\",\n \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\",\n \"guilsinglright\", \"fi\", \"fl\", \"endash\", \"dagger\", \"daggerdbl\",\n \"periodcentered\", \"paragraph\", \"bullet\", \"quotesinglbase\",\n \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\",\n \"perthousand\", \"questiondown\", \"grave\", \"acute\", \"circumflex\", \"tilde\",\n \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"ring\", \"cedilla\",\n \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"AE\", \"ordfeminine\",\n \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"ae\", \"dotlessi\", \"lslash\",\n \"oslash\", \"oe\", \"germandbls\", \"onesuperior\", \"logicalnot\", \"mu\",\n \"trademark\", \"Eth\", \"onehalf\", \"plusminus\", \"Thorn\", \"onequarter\",\n \"divide\", \"brokenbar\", \"degree\", \"thorn\", \"threequarters\", \"twosuperior\",\n \"registered\", \"minus\", \"eth\", \"multiply\", \"threesuperior\", \"copyright\",\n \"Aacute\", \"Acircumflex\", \"Adieresis\", \"Agrave\", \"Aring\", \"Atilde\",\n \"Ccedilla\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Egrave\", \"Iacute\",\n \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Ntilde\", \"Oacute\", \"Ocircumflex\",\n \"Odieresis\", \"Ograve\", \"Otilde\", \"Scaron\", \"Uacute\", \"Ucircumflex\",\n \"Udieresis\", \"Ugrave\", \"Yacute\", \"Ydieresis\", \"Zcaron\", \"aacute\",\n \"acircumflex\", \"adieresis\", \"agrave\", \"aring\", \"atilde\", \"ccedilla\",\n \"eacute\", \"ecircumflex\", \"edieresis\", \"egrave\", \"iacute\", \"icircumflex\",\n \"idieresis\", \"igrave\", \"ntilde\", \"oacute\", \"ocircumflex\", \"odieresis\",\n \"ograve\", \"otilde\", \"scaron\", \"uacute\", \"ucircumflex\", \"udieresis\",\n \"ugrave\", \"yacute\", \"ydieresis\", \"zcaron\"\n];\n\n// prettier-ignore\nconst ExpertCharset = [\n \".notdef\", \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"dollaroldstyle\",\n \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\",\n \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\",\n \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\",\n \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\",\n \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\",\n \"colon\", \"semicolon\", \"commasuperior\", \"threequartersemdash\",\n \"periodsuperior\", \"questionsmall\", \"asuperior\", \"bsuperior\",\n \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\",\n \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\",\n \"tsuperior\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\",\n \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\",\n \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\",\n \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\",\n \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\",\n \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\",\n \"onefitted\", \"rupiah\", \"Tildesmall\", \"exclamdownsmall\", \"centoldstyle\",\n \"Lslashsmall\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\",\n \"Brevesmall\", \"Caronsmall\", \"Dotaccentsmall\", \"Macronsmall\",\n \"figuredash\", \"hypheninferior\", \"Ogoneksmall\", \"Ringsmall\",\n \"Cedillasmall\", \"onequarter\", \"onehalf\", \"threequarters\",\n \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"onesuperior\",\n \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\",\n \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\",\n \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\",\n \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\",\n \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\",\n \"periodinferior\", \"commainferior\", \"Agravesmall\", \"Aacutesmall\",\n \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\",\n \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\",\n \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\",\n \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\",\n \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\",\n \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\",\n \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\",\n \"Ydieresissmall\"\n];\n\n// prettier-ignore\nconst ExpertSubsetCharset = [\n \".notdef\", \"space\", \"dollaroldstyle\", \"dollarsuperior\",\n \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\",\n \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\",\n \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\",\n \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\",\n \"eightoldstyle\", \"nineoldstyle\", \"colon\", \"semicolon\", \"commasuperior\",\n \"threequartersemdash\", \"periodsuperior\", \"asuperior\", \"bsuperior\",\n \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\",\n \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\",\n \"tsuperior\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\",\n \"parenrightinferior\", \"hyphensuperior\", \"colonmonetary\", \"onefitted\",\n \"rupiah\", \"centoldstyle\", \"figuredash\", \"hypheninferior\", \"onequarter\",\n \"onehalf\", \"threequarters\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"onesuperior\",\n \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\",\n \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\",\n \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\",\n \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\",\n \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\",\n \"periodinferior\", \"commainferior\"\n];\n\nexport { ExpertCharset, ExpertSubsetCharset, ISOAdobeCharset };\n","/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getLookupTableFactory } from \"./core_utils.js\";\nimport { normalizeFontName } from \"./fonts_utils.js\";\n\n/**\n * Hold a map of decoded fonts and of the standard fourteen Type1\n * fonts and their acronyms.\n */\nconst getStdFontMap = getLookupTableFactory(function (t) {\n // The standard 14 fonts:\n t[\"Times-Roman\"] = \"Times-Roman\";\n t.Helvetica = \"Helvetica\";\n t.Courier = \"Courier\";\n t.Symbol = \"Symbol\";\n t[\"Times-Bold\"] = \"Times-Bold\";\n t[\"Helvetica-Bold\"] = \"Helvetica-Bold\";\n t[\"Courier-Bold\"] = \"Courier-Bold\";\n t.ZapfDingbats = \"ZapfDingbats\";\n t[\"Times-Italic\"] = \"Times-Italic\";\n t[\"Helvetica-Oblique\"] = \"Helvetica-Oblique\";\n t[\"Courier-Oblique\"] = \"Courier-Oblique\";\n t[\"Times-BoldItalic\"] = \"Times-BoldItalic\";\n t[\"Helvetica-BoldOblique\"] = \"Helvetica-BoldOblique\";\n t[\"Courier-BoldOblique\"] = \"Courier-BoldOblique\";\n\n // Extra mappings\n t.ArialNarrow = \"Helvetica\";\n t[\"ArialNarrow-Bold\"] = \"Helvetica-Bold\";\n t[\"ArialNarrow-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"ArialNarrow-Italic\"] = \"Helvetica-Oblique\";\n t.ArialBlack = \"Helvetica\";\n t[\"ArialBlack-Bold\"] = \"Helvetica-Bold\";\n t[\"ArialBlack-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"ArialBlack-Italic\"] = \"Helvetica-Oblique\";\n t[\"Arial-Black\"] = \"Helvetica\";\n t[\"Arial-Black-Bold\"] = \"Helvetica-Bold\";\n t[\"Arial-Black-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Arial-Black-Italic\"] = \"Helvetica-Oblique\";\n t.Arial = \"Helvetica\";\n t[\"Arial-Bold\"] = \"Helvetica-Bold\";\n t[\"Arial-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Arial-Italic\"] = \"Helvetica-Oblique\";\n t[\"Arial-BoldItalicMT\"] = \"Helvetica-BoldOblique\";\n t[\"Arial-BoldMT\"] = \"Helvetica-Bold\";\n t[\"Arial-ItalicMT\"] = \"Helvetica-Oblique\";\n t.ArialMT = \"Helvetica\";\n t[\"Courier-BoldItalic\"] = \"Courier-BoldOblique\";\n t[\"Courier-Italic\"] = \"Courier-Oblique\";\n t.CourierNew = \"Courier\";\n t[\"CourierNew-Bold\"] = \"Courier-Bold\";\n t[\"CourierNew-BoldItalic\"] = \"Courier-BoldOblique\";\n t[\"CourierNew-Italic\"] = \"Courier-Oblique\";\n t[\"CourierNewPS-BoldItalicMT\"] = \"Courier-BoldOblique\";\n t[\"CourierNewPS-BoldMT\"] = \"Courier-Bold\";\n t[\"CourierNewPS-ItalicMT\"] = \"Courier-Oblique\";\n t.CourierNewPSMT = \"Courier\";\n t[\"Helvetica-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Helvetica-Italic\"] = \"Helvetica-Oblique\";\n t[\"Symbol-Bold\"] = \"Symbol\";\n t[\"Symbol-BoldItalic\"] = \"Symbol\";\n t[\"Symbol-Italic\"] = \"Symbol\";\n t.TimesNewRoman = \"Times-Roman\";\n t[\"TimesNewRoman-Bold\"] = \"Times-Bold\";\n t[\"TimesNewRoman-BoldItalic\"] = \"Times-BoldItalic\";\n t[\"TimesNewRoman-Italic\"] = \"Times-Italic\";\n t.TimesNewRomanPS = \"Times-Roman\";\n t[\"TimesNewRomanPS-Bold\"] = \"Times-Bold\";\n t[\"TimesNewRomanPS-BoldItalic\"] = \"Times-BoldItalic\";\n t[\"TimesNewRomanPS-BoldItalicMT\"] = \"Times-BoldItalic\";\n t[\"TimesNewRomanPS-BoldMT\"] = \"Times-Bold\";\n t[\"TimesNewRomanPS-Italic\"] = \"Times-Italic\";\n t[\"TimesNewRomanPS-ItalicMT\"] = \"Times-Italic\";\n t.TimesNewRomanPSMT = \"Times-Roman\";\n t[\"TimesNewRomanPSMT-Bold\"] = \"Times-Bold\";\n t[\"TimesNewRomanPSMT-BoldItalic\"] = \"Times-BoldItalic\";\n t[\"TimesNewRomanPSMT-Italic\"] = \"Times-Italic\";\n});\n\n// Contains mapping for standard fonts and xfa fonts.\nconst getFontNameToFileMap = getLookupTableFactory(function (t) {\n t.Courier = \"FoxitFixed.pfb\";\n t[\"Courier-Bold\"] = \"FoxitFixedBold.pfb\";\n t[\"Courier-BoldOblique\"] = \"FoxitFixedBoldItalic.pfb\";\n t[\"Courier-Oblique\"] = \"FoxitFixedItalic.pfb\";\n t.Helvetica = \"FoxitSans.pfb\";\n t[\"Helvetica-Bold\"] = \"FoxitSansBold.pfb\";\n t[\"Helvetica-BoldOblique\"] = \"FoxitSansBoldItalic.pfb\";\n t[\"Helvetica-Oblique\"] = \"FoxitSansItalic.pfb\";\n t[\"Times-Roman\"] = \"FoxitSerif.pfb\";\n t[\"Times-Bold\"] = \"FoxitSerifBold.pfb\";\n t[\"Times-BoldItalic\"] = \"FoxitSerifBoldItalic.pfb\";\n t[\"Times-Italic\"] = \"FoxitSerifItalic.pfb\";\n t.Symbol = \"FoxitSymbol.pfb\";\n t.ZapfDingbats = \"FoxitDingbats.pfb\";\n t[\"LiberationSans-Regular\"] = \"LiberationSans-Regular.ttf\";\n t[\"LiberationSans-Bold\"] = \"LiberationSans-Bold.ttf\";\n t[\"LiberationSans-Italic\"] = \"LiberationSans-Italic.ttf\";\n t[\"LiberationSans-BoldItalic\"] = \"LiberationSans-BoldItalic.ttf\";\n});\n\n/**\n * Holds the map of the non-standard fonts that might be included as\n * a standard fonts without glyph data.\n */\nconst getNonStdFontMap = getLookupTableFactory(function (t) {\n t.Calibri = \"Helvetica\";\n t[\"Calibri-Bold\"] = \"Helvetica-Bold\";\n t[\"Calibri-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Calibri-Italic\"] = \"Helvetica-Oblique\";\n t.CenturyGothic = \"Helvetica\";\n t[\"CenturyGothic-Bold\"] = \"Helvetica-Bold\";\n t[\"CenturyGothic-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"CenturyGothic-Italic\"] = \"Helvetica-Oblique\";\n t.ComicSansMS = \"Comic Sans MS\";\n t[\"ComicSansMS-Bold\"] = \"Comic Sans MS-Bold\";\n t[\"ComicSansMS-BoldItalic\"] = \"Comic Sans MS-BoldItalic\";\n t[\"ComicSansMS-Italic\"] = \"Comic Sans MS-Italic\";\n t[\"ItcSymbol-Bold\"] = \"Helvetica-Bold\";\n t[\"ItcSymbol-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"ItcSymbol-Book\"] = \"Helvetica\";\n t[\"ItcSymbol-BookItalic\"] = \"Helvetica-Oblique\";\n t[\"ItcSymbol-Medium\"] = \"Helvetica\";\n t[\"ItcSymbol-MediumItalic\"] = \"Helvetica-Oblique\";\n t.LucidaConsole = \"Courier\";\n t[\"LucidaConsole-Bold\"] = \"Courier-Bold\";\n t[\"LucidaConsole-BoldItalic\"] = \"Courier-BoldOblique\";\n t[\"LucidaConsole-Italic\"] = \"Courier-Oblique\";\n t[\"LucidaSans-Demi\"] = \"Helvetica-Bold\";\n t[\"MS-Gothic\"] = \"MS Gothic\";\n t[\"MS-Gothic-Bold\"] = \"MS Gothic-Bold\";\n t[\"MS-Gothic-BoldItalic\"] = \"MS Gothic-BoldItalic\";\n t[\"MS-Gothic-Italic\"] = \"MS Gothic-Italic\";\n t[\"MS-Mincho\"] = \"MS Mincho\";\n t[\"MS-Mincho-Bold\"] = \"MS Mincho-Bold\";\n t[\"MS-Mincho-BoldItalic\"] = \"MS Mincho-BoldItalic\";\n t[\"MS-Mincho-Italic\"] = \"MS Mincho-Italic\";\n t[\"MS-PGothic\"] = \"MS PGothic\";\n t[\"MS-PGothic-Bold\"] = \"MS PGothic-Bold\";\n t[\"MS-PGothic-BoldItalic\"] = \"MS PGothic-BoldItalic\";\n t[\"MS-PGothic-Italic\"] = \"MS PGothic-Italic\";\n t[\"MS-PMincho\"] = \"MS PMincho\";\n t[\"MS-PMincho-Bold\"] = \"MS PMincho-Bold\";\n t[\"MS-PMincho-BoldItalic\"] = \"MS PMincho-BoldItalic\";\n t[\"MS-PMincho-Italic\"] = \"MS PMincho-Italic\";\n t.NuptialScript = \"Times-Italic\";\n t.SegoeUISymbol = \"Helvetica\";\n t.Wingdings = \"ZapfDingbats\";\n t[\"Wingdings-Regular\"] = \"ZapfDingbats\";\n});\n\nconst getSerifFonts = getLookupTableFactory(function (t) {\n t[\"Adobe Jenson\"] = true;\n t[\"Adobe Text\"] = true;\n t.Albertus = true;\n t.Aldus = true;\n t.Alexandria = true;\n t.Algerian = true;\n t[\"American Typewriter\"] = true;\n t.Antiqua = true;\n t.Apex = true;\n t.Arno = true;\n t.Aster = true;\n t.Aurora = true;\n t.Baskerville = true;\n t.Bell = true;\n t.Bembo = true;\n t[\"Bembo Schoolbook\"] = true;\n t.Benguiat = true;\n t[\"Berkeley Old Style\"] = true;\n t[\"Bernhard Modern\"] = true;\n t[\"Berthold City\"] = true;\n t.Bodoni = true;\n t[\"Bauer Bodoni\"] = true;\n t[\"Book Antiqua\"] = true;\n t.Bookman = true;\n t[\"Bordeaux Roman\"] = true;\n t[\"Californian FB\"] = true;\n t.Calisto = true;\n t.Calvert = true;\n t.Capitals = true;\n t.Cambria = true;\n t.Cartier = true;\n t.Caslon = true;\n t.Catull = true;\n t.Centaur = true;\n t[\"Century Old Style\"] = true;\n t[\"Century Schoolbook\"] = true;\n t.Chaparral = true;\n t[\"Charis SIL\"] = true;\n t.Cheltenham = true;\n t[\"Cholla Slab\"] = true;\n t.Clarendon = true;\n t.Clearface = true;\n t.Cochin = true;\n t.Colonna = true;\n t[\"Computer Modern\"] = true;\n t[\"Concrete Roman\"] = true;\n t.Constantia = true;\n t[\"Cooper Black\"] = true;\n t.Corona = true;\n t.Ecotype = true;\n t.Egyptienne = true;\n t.Elephant = true;\n t.Excelsior = true;\n t.Fairfield = true;\n t[\"FF Scala\"] = true;\n t.Folkard = true;\n t.Footlight = true;\n t.FreeSerif = true;\n t[\"Friz Quadrata\"] = true;\n t.Garamond = true;\n t.Gentium = true;\n t.Georgia = true;\n t.Gloucester = true;\n t[\"Goudy Old Style\"] = true;\n t[\"Goudy Schoolbook\"] = true;\n t[\"Goudy Pro Font\"] = true;\n t.Granjon = true;\n t[\"Guardian Egyptian\"] = true;\n t.Heather = true;\n t.Hercules = true;\n t[\"High Tower Text\"] = true;\n t.Hiroshige = true;\n t[\"Hoefler Text\"] = true;\n t[\"Humana Serif\"] = true;\n t.Imprint = true;\n t[\"Ionic No. 5\"] = true;\n t.Janson = true;\n t.Joanna = true;\n t.Korinna = true;\n t.Lexicon = true;\n t.LiberationSerif = true;\n t[\"Liberation Serif\"] = true;\n t[\"Linux Libertine\"] = true;\n t.Literaturnaya = true;\n t.Lucida = true;\n t[\"Lucida Bright\"] = true;\n t.Melior = true;\n t.Memphis = true;\n t.Miller = true;\n t.Minion = true;\n t.Modern = true;\n t[\"Mona Lisa\"] = true;\n t[\"Mrs Eaves\"] = true;\n t[\"MS Serif\"] = true;\n t[\"Museo Slab\"] = true;\n t[\"New York\"] = true;\n t[\"Nimbus Roman\"] = true;\n t[\"NPS Rawlinson Roadway\"] = true;\n t.NuptialScript = true;\n t.Palatino = true;\n t.Perpetua = true;\n t.Plantin = true;\n t[\"Plantin Schoolbook\"] = true;\n t.Playbill = true;\n t[\"Poor Richard\"] = true;\n t[\"Rawlinson Roadway\"] = true;\n t.Renault = true;\n t.Requiem = true;\n t.Rockwell = true;\n t.Roman = true;\n t[\"Rotis Serif\"] = true;\n t.Sabon = true;\n t.Scala = true;\n t.Seagull = true;\n t.Sistina = true;\n t.Souvenir = true;\n t.STIX = true;\n t[\"Stone Informal\"] = true;\n t[\"Stone Serif\"] = true;\n t.Sylfaen = true;\n t.Times = true;\n t.Trajan = true;\n t[\"Trinité\"] = true;\n t[\"Trump Mediaeval\"] = true;\n t.Utopia = true;\n t[\"Vale Type\"] = true;\n t[\"Bitstream Vera\"] = true;\n t[\"Vera Serif\"] = true;\n t.Versailles = true;\n t.Wanted = true;\n t.Weiss = true;\n t[\"Wide Latin\"] = true;\n t.Windsor = true;\n t.XITS = true;\n});\n\nconst getSymbolsFonts = getLookupTableFactory(function (t) {\n t.Dingbats = true;\n t.Symbol = true;\n t.ZapfDingbats = true;\n});\n\n// Glyph map for well-known standard fonts. Sometimes Ghostscript uses CID\n// fonts, but does not embed the CID to GID mapping. The mapping is incomplete\n// for all glyphs, but common for some set of the standard fonts.\nconst getGlyphMapForStandardFonts = getLookupTableFactory(function (t) {\n t[2] = 10;\n t[3] = 32;\n t[4] = 33;\n t[5] = 34;\n t[6] = 35;\n t[7] = 36;\n t[8] = 37;\n t[9] = 38;\n t[10] = 39;\n t[11] = 40;\n t[12] = 41;\n t[13] = 42;\n t[14] = 43;\n t[15] = 44;\n t[16] = 45;\n t[17] = 46;\n t[18] = 47;\n t[19] = 48;\n t[20] = 49;\n t[21] = 50;\n t[22] = 51;\n t[23] = 52;\n t[24] = 53;\n t[25] = 54;\n t[26] = 55;\n t[27] = 56;\n t[28] = 57;\n t[29] = 58;\n t[30] = 894;\n t[31] = 60;\n t[32] = 61;\n t[33] = 62;\n t[34] = 63;\n t[35] = 64;\n t[36] = 65;\n t[37] = 66;\n t[38] = 67;\n t[39] = 68;\n t[40] = 69;\n t[41] = 70;\n t[42] = 71;\n t[43] = 72;\n t[44] = 73;\n t[45] = 74;\n t[46] = 75;\n t[47] = 76;\n t[48] = 77;\n t[49] = 78;\n t[50] = 79;\n t[51] = 80;\n t[52] = 81;\n t[53] = 82;\n t[54] = 83;\n t[55] = 84;\n t[56] = 85;\n t[57] = 86;\n t[58] = 87;\n t[59] = 88;\n t[60] = 89;\n t[61] = 90;\n t[62] = 91;\n t[63] = 92;\n t[64] = 93;\n t[65] = 94;\n t[66] = 95;\n t[67] = 96;\n t[68] = 97;\n t[69] = 98;\n t[70] = 99;\n t[71] = 100;\n t[72] = 101;\n t[73] = 102;\n t[74] = 103;\n t[75] = 104;\n t[76] = 105;\n t[77] = 106;\n t[78] = 107;\n t[79] = 108;\n t[80] = 109;\n t[81] = 110;\n t[82] = 111;\n t[83] = 112;\n t[84] = 113;\n t[85] = 114;\n t[86] = 115;\n t[87] = 116;\n t[88] = 117;\n t[89] = 118;\n t[90] = 119;\n t[91] = 120;\n t[92] = 121;\n t[93] = 122;\n t[94] = 123;\n t[95] = 124;\n t[96] = 125;\n t[97] = 126;\n t[98] = 196;\n t[99] = 197;\n t[100] = 199;\n t[101] = 201;\n t[102] = 209;\n t[103] = 214;\n t[104] = 220;\n t[105] = 225;\n t[106] = 224;\n t[107] = 226;\n t[108] = 228;\n t[109] = 227;\n t[110] = 229;\n t[111] = 231;\n t[112] = 233;\n t[113] = 232;\n t[114] = 234;\n t[115] = 235;\n t[116] = 237;\n t[117] = 236;\n t[118] = 238;\n t[119] = 239;\n t[120] = 241;\n t[121] = 243;\n t[122] = 242;\n t[123] = 244;\n t[124] = 246;\n t[125] = 245;\n t[126] = 250;\n t[127] = 249;\n t[128] = 251;\n t[129] = 252;\n t[130] = 8224;\n t[131] = 176;\n t[132] = 162;\n t[133] = 163;\n t[134] = 167;\n t[135] = 8226;\n t[136] = 182;\n t[137] = 223;\n t[138] = 174;\n t[139] = 169;\n t[140] = 8482;\n t[141] = 180;\n t[142] = 168;\n t[143] = 8800;\n t[144] = 198;\n t[145] = 216;\n t[146] = 8734;\n t[147] = 177;\n t[148] = 8804;\n t[149] = 8805;\n t[150] = 165;\n t[151] = 181;\n t[152] = 8706;\n t[153] = 8721;\n t[154] = 8719;\n t[156] = 8747;\n t[157] = 170;\n t[158] = 186;\n t[159] = 8486;\n t[160] = 230;\n t[161] = 248;\n t[162] = 191;\n t[163] = 161;\n t[164] = 172;\n t[165] = 8730;\n t[166] = 402;\n t[167] = 8776;\n t[168] = 8710;\n t[169] = 171;\n t[170] = 187;\n t[171] = 8230;\n t[200] = 193;\n t[203] = 205;\n t[210] = 218;\n t[223] = 711;\n t[224] = 321;\n t[225] = 322;\n t[226] = 352;\n t[227] = 353;\n t[228] = 381;\n t[229] = 382;\n t[233] = 221;\n t[234] = 253;\n t[252] = 263;\n t[253] = 268;\n t[254] = 269;\n t[258] = 258;\n t[260] = 260;\n t[261] = 261;\n t[265] = 280;\n t[266] = 281;\n t[267] = 282;\n t[268] = 283;\n t[269] = 313;\n t[275] = 323;\n t[276] = 324;\n t[278] = 328;\n t[283] = 344;\n t[284] = 345;\n t[285] = 346;\n t[286] = 347;\n t[292] = 367;\n t[295] = 377;\n t[296] = 378;\n t[298] = 380;\n t[305] = 963;\n t[306] = 964;\n t[307] = 966;\n t[308] = 8215;\n t[309] = 8252;\n t[310] = 8319;\n t[311] = 8359;\n t[312] = 8592;\n t[313] = 8593;\n t[337] = 9552;\n t[493] = 1039;\n t[494] = 1040;\n t[705] = 1524;\n t[706] = 8362;\n t[710] = 64288;\n t[711] = 64298;\n t[759] = 1617;\n t[761] = 1776;\n t[763] = 1778;\n t[775] = 1652;\n t[777] = 1764;\n t[778] = 1780;\n t[779] = 1781;\n t[780] = 1782;\n t[782] = 771;\n t[783] = 64726;\n t[786] = 8363;\n t[788] = 8532;\n t[790] = 768;\n t[791] = 769;\n t[792] = 768;\n t[795] = 803;\n t[797] = 64336;\n t[798] = 64337;\n t[799] = 64342;\n t[800] = 64343;\n t[801] = 64344;\n t[802] = 64345;\n t[803] = 64362;\n t[804] = 64363;\n t[805] = 64364;\n t[2424] = 7821;\n t[2425] = 7822;\n t[2426] = 7823;\n t[2427] = 7824;\n t[2428] = 7825;\n t[2429] = 7826;\n t[2430] = 7827;\n t[2433] = 7682;\n t[2678] = 8045;\n t[2679] = 8046;\n t[2830] = 1552;\n t[2838] = 686;\n t[2840] = 751;\n t[2842] = 753;\n t[2843] = 754;\n t[2844] = 755;\n t[2846] = 757;\n t[2856] = 767;\n t[2857] = 848;\n t[2858] = 849;\n t[2862] = 853;\n t[2863] = 854;\n t[2864] = 855;\n t[2865] = 861;\n t[2866] = 862;\n t[2906] = 7460;\n t[2908] = 7462;\n t[2909] = 7463;\n t[2910] = 7464;\n t[2912] = 7466;\n t[2913] = 7467;\n t[2914] = 7468;\n t[2916] = 7470;\n t[2917] = 7471;\n t[2918] = 7472;\n t[2920] = 7474;\n t[2921] = 7475;\n t[2922] = 7476;\n t[2924] = 7478;\n t[2925] = 7479;\n t[2926] = 7480;\n t[2928] = 7482;\n t[2929] = 7483;\n t[2930] = 7484;\n t[2932] = 7486;\n t[2933] = 7487;\n t[2934] = 7488;\n t[2936] = 7490;\n t[2937] = 7491;\n t[2938] = 7492;\n t[2940] = 7494;\n t[2941] = 7495;\n t[2942] = 7496;\n t[2944] = 7498;\n t[2946] = 7500;\n t[2948] = 7502;\n t[2950] = 7504;\n t[2951] = 7505;\n t[2952] = 7506;\n t[2954] = 7508;\n t[2955] = 7509;\n t[2956] = 7510;\n t[2958] = 7512;\n t[2959] = 7513;\n t[2960] = 7514;\n t[2962] = 7516;\n t[2963] = 7517;\n t[2964] = 7518;\n t[2966] = 7520;\n t[2967] = 7521;\n t[2968] = 7522;\n t[2970] = 7524;\n t[2971] = 7525;\n t[2972] = 7526;\n t[2974] = 7528;\n t[2975] = 7529;\n t[2976] = 7530;\n t[2978] = 1537;\n t[2979] = 1538;\n t[2980] = 1539;\n t[2982] = 1549;\n t[2983] = 1551;\n t[2984] = 1552;\n t[2986] = 1554;\n t[2987] = 1555;\n t[2988] = 1556;\n t[2990] = 1623;\n t[2991] = 1624;\n t[2995] = 1775;\n t[2999] = 1791;\n t[3002] = 64290;\n t[3003] = 64291;\n t[3004] = 64292;\n t[3006] = 64294;\n t[3007] = 64295;\n t[3008] = 64296;\n t[3011] = 1900;\n t[3014] = 8223;\n t[3015] = 8244;\n t[3017] = 7532;\n t[3018] = 7533;\n t[3019] = 7534;\n t[3075] = 7590;\n t[3076] = 7591;\n t[3079] = 7594;\n t[3080] = 7595;\n t[3083] = 7598;\n t[3084] = 7599;\n t[3087] = 7602;\n t[3088] = 7603;\n t[3091] = 7606;\n t[3092] = 7607;\n t[3095] = 7610;\n t[3096] = 7611;\n t[3099] = 7614;\n t[3100] = 7615;\n t[3103] = 7618;\n t[3104] = 7619;\n t[3107] = 8337;\n t[3108] = 8338;\n t[3116] = 1884;\n t[3119] = 1885;\n t[3120] = 1885;\n t[3123] = 1886;\n t[3124] = 1886;\n t[3127] = 1887;\n t[3128] = 1887;\n t[3131] = 1888;\n t[3132] = 1888;\n t[3135] = 1889;\n t[3136] = 1889;\n t[3139] = 1890;\n t[3140] = 1890;\n t[3143] = 1891;\n t[3144] = 1891;\n t[3147] = 1892;\n t[3148] = 1892;\n t[3153] = 580;\n t[3154] = 581;\n t[3157] = 584;\n t[3158] = 585;\n t[3161] = 588;\n t[3162] = 589;\n t[3165] = 891;\n t[3166] = 892;\n t[3169] = 1274;\n t[3170] = 1275;\n t[3173] = 1278;\n t[3174] = 1279;\n t[3181] = 7622;\n t[3182] = 7623;\n t[3282] = 11799;\n t[3316] = 578;\n t[3379] = 42785;\n t[3393] = 1159;\n t[3416] = 8377;\n});\n\n// The glyph map for ArialBlack differs slightly from the glyph map used for\n// other well-known standard fonts. Hence we use this (incomplete) CID to GID\n// mapping to adjust the glyph map for non-embedded ArialBlack fonts.\nconst getSupplementalGlyphMapForArialBlack = getLookupTableFactory(function (\n t\n) {\n t[227] = 322;\n t[264] = 261;\n t[291] = 346;\n});\n\n// The glyph map for Calibri (a Windows font) differs from the glyph map used\n// in the standard fonts. Hence we use this (incomplete) CID to GID mapping to\n// adjust the glyph map for non-embedded Calibri fonts.\nconst getSupplementalGlyphMapForCalibri = getLookupTableFactory(function (t) {\n t[1] = 32;\n t[4] = 65;\n t[6] = 193;\n t[17] = 66;\n t[18] = 67;\n t[21] = 268;\n t[24] = 68;\n t[28] = 69;\n t[30] = 201;\n t[32] = 282;\n t[38] = 70;\n t[39] = 71;\n t[44] = 72;\n t[47] = 73;\n t[49] = 205;\n t[58] = 74;\n t[60] = 75;\n t[62] = 76;\n t[68] = 77;\n t[69] = 78;\n t[75] = 79;\n t[87] = 80;\n t[89] = 81;\n t[90] = 82;\n t[92] = 344;\n t[94] = 83;\n t[97] = 352;\n t[100] = 84;\n t[104] = 85;\n t[115] = 86;\n t[116] = 87;\n t[121] = 88;\n t[122] = 89;\n t[124] = 221;\n t[127] = 90;\n t[129] = 381;\n t[258] = 97;\n t[260] = 225;\n t[268] = 261;\n t[271] = 98;\n t[272] = 99;\n t[273] = 263;\n t[275] = 269;\n t[282] = 100;\n t[286] = 101;\n t[288] = 233;\n t[290] = 283;\n t[295] = 281;\n t[296] = 102;\n t[336] = 103;\n t[346] = 104;\n t[349] = 105;\n t[351] = 237;\n t[361] = 106;\n t[364] = 107;\n t[367] = 108;\n t[371] = 322;\n t[373] = 109;\n t[374] = 110;\n t[381] = 111;\n t[383] = 243;\n t[393] = 112;\n t[395] = 113;\n t[396] = 114;\n t[398] = 345;\n t[400] = 115;\n t[401] = 347;\n t[403] = 353;\n t[410] = 116;\n t[437] = 117;\n t[448] = 118;\n t[449] = 119;\n t[454] = 120;\n t[455] = 121;\n t[457] = 253;\n t[460] = 122;\n t[462] = 382;\n t[463] = 380;\n t[853] = 44;\n t[855] = 58;\n t[856] = 46;\n t[876] = 47;\n t[878] = 45;\n t[882] = 45;\n t[894] = 40;\n t[895] = 41;\n t[896] = 91;\n t[897] = 93;\n t[923] = 64;\n t[1004] = 48;\n t[1005] = 49;\n t[1006] = 50;\n t[1007] = 51;\n t[1008] = 52;\n t[1009] = 53;\n t[1010] = 54;\n t[1011] = 55;\n t[1012] = 56;\n t[1013] = 57;\n t[1081] = 37;\n t[1085] = 43;\n t[1086] = 45;\n});\n\nfunction getStandardFontName(name) {\n const fontName = normalizeFontName(name);\n const stdFontMap = getStdFontMap();\n return stdFontMap[fontName];\n}\n\nexport {\n getFontNameToFileMap,\n getGlyphMapForStandardFonts,\n getNonStdFontMap,\n getSerifFonts,\n getStandardFontName,\n getStdFontMap,\n getSupplementalGlyphMapForArialBlack,\n getSupplementalGlyphMapForCalibri,\n getSymbolsFonts,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { unreachable } from \"../shared/util.js\";\n\nclass ToUnicodeMap {\n constructor(cmap = []) {\n // The elements of this._map can be integers or strings, depending on how\n // `cmap` was created.\n this._map = cmap;\n }\n\n get length() {\n return this._map.length;\n }\n\n forEach(callback) {\n for (const charCode in this._map) {\n callback(charCode, this._map[charCode].charCodeAt(0));\n }\n }\n\n has(i) {\n return this._map[i] !== undefined;\n }\n\n get(i) {\n return this._map[i];\n }\n\n charCodeOf(value) {\n // `Array.prototype.indexOf` is *extremely* inefficient for arrays which\n // are both very sparse and very large (see issue8372.pdf).\n const map = this._map;\n if (map.length <= 0x10000) {\n return map.indexOf(value);\n }\n for (const charCode in map) {\n if (map[charCode] === value) {\n return charCode | 0;\n }\n }\n return -1;\n }\n\n amend(map) {\n for (const charCode in map) {\n this._map[charCode] = map[charCode];\n }\n }\n}\n\nclass IdentityToUnicodeMap {\n constructor(firstChar, lastChar) {\n this.firstChar = firstChar;\n this.lastChar = lastChar;\n }\n\n get length() {\n return this.lastChar + 1 - this.firstChar;\n }\n\n forEach(callback) {\n for (let i = this.firstChar, ii = this.lastChar; i <= ii; i++) {\n callback(i, i);\n }\n }\n\n has(i) {\n return this.firstChar <= i && i <= this.lastChar;\n }\n\n get(i) {\n if (this.firstChar <= i && i <= this.lastChar) {\n return String.fromCharCode(i);\n }\n return undefined;\n }\n\n charCodeOf(v) {\n return Number.isInteger(v) && v >= this.firstChar && v <= this.lastChar\n ? v\n : -1;\n }\n\n amend(map) {\n unreachable(\"Should not call amend()\");\n }\n}\n\nexport { IdentityToUnicodeMap, ToUnicodeMap };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CFFCompiler, CFFParser } from \"./cff_parser.js\";\nimport { SEAC_ANALYSIS_ENABLED, type1FontGlyphMapping } from \"./fonts_utils.js\";\nimport { warn } from \"../shared/util.js\";\n\nclass CFFFont {\n constructor(file, properties) {\n this.properties = properties;\n\n const parser = new CFFParser(file, properties, SEAC_ANALYSIS_ENABLED);\n this.cff = parser.parse();\n this.cff.duplicateFirstGlyph();\n const compiler = new CFFCompiler(this.cff);\n this.seacs = this.cff.seacs;\n try {\n this.data = compiler.compile();\n } catch (e) {\n warn(\"Failed to compile font \" + properties.loadedName);\n // There may have just been an issue with the compiler, set the data\n // anyway and hope the font loaded.\n this.data = file;\n }\n this._createBuiltInEncoding();\n }\n\n get numGlyphs() {\n return this.cff.charStrings.count;\n }\n\n getCharset() {\n return this.cff.charset.charset;\n }\n\n getGlyphMapping() {\n const cff = this.cff;\n const properties = this.properties;\n const charsets = cff.charset.charset;\n let charCodeToGlyphId;\n let glyphId;\n\n if (properties.composite) {\n charCodeToGlyphId = Object.create(null);\n let charCode;\n if (cff.isCIDFont) {\n // If the font is actually a CID font then we should use the charset\n // to map CIDs to GIDs.\n for (glyphId = 0; glyphId < charsets.length; glyphId++) {\n const cid = charsets[glyphId];\n charCode = properties.cMap.charCodeOf(cid);\n charCodeToGlyphId[charCode] = glyphId;\n }\n } else {\n // If it is NOT actually a CID font then CIDs should be mapped\n // directly to GIDs.\n for (glyphId = 0; glyphId < cff.charStrings.count; glyphId++) {\n charCode = properties.cMap.charCodeOf(glyphId);\n charCodeToGlyphId[charCode] = glyphId;\n }\n }\n return charCodeToGlyphId;\n }\n\n let encoding = cff.encoding ? cff.encoding.encoding : null;\n if (properties.isInternalFont) {\n encoding = properties.defaultEncoding;\n }\n charCodeToGlyphId = type1FontGlyphMapping(properties, encoding, charsets);\n return charCodeToGlyphId;\n }\n\n hasGlyphId(id) {\n return this.cff.hasGlyphId(id);\n }\n\n /**\n * @private\n */\n _createBuiltInEncoding() {\n const { charset, encoding } = this.cff;\n if (!charset || !encoding) {\n return;\n }\n const charsets = charset.charset,\n encodings = encoding.encoding;\n const map = [];\n\n for (const charCode in encodings) {\n const glyphId = encodings[charCode];\n if (glyphId >= 0) {\n const glyphName = charsets[glyphId];\n if (glyphName) {\n map[charCode] = glyphName;\n }\n }\n }\n if (map.length > 0) {\n this.properties.builtInEncoding = map;\n }\n }\n}\n\nexport { CFFFont };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n bytesToString,\n FONT_IDENTITY_MATRIX,\n FormatError,\n unreachable,\n warn,\n} from \"../shared/util.js\";\nimport { CFFParser } from \"./cff_parser.js\";\nimport { getGlyphsUnicode } from \"./glyphlist.js\";\nimport { StandardEncoding } from \"./encodings.js\";\nimport { Stream } from \"./stream.js\";\n\n// TODO: use DataView and its methods.\n\nfunction getUint32(data, offset) {\n return (\n ((data[offset] << 24) |\n (data[offset + 1] << 16) |\n (data[offset + 2] << 8) |\n data[offset + 3]) >>>\n 0\n );\n}\n\nfunction getUint16(data, offset) {\n return (data[offset] << 8) | data[offset + 1];\n}\n\nfunction getInt16(data, offset) {\n return ((data[offset] << 24) | (data[offset + 1] << 16)) >> 16;\n}\n\nfunction getInt8(data, offset) {\n return (data[offset] << 24) >> 24;\n}\n\nfunction getFloat214(data, offset) {\n return getInt16(data, offset) / 16384;\n}\n\nfunction getSubroutineBias(subrs) {\n const numSubrs = subrs.length;\n let bias = 32768;\n if (numSubrs < 1240) {\n bias = 107;\n } else if (numSubrs < 33900) {\n bias = 1131;\n }\n return bias;\n}\n\nfunction parseCmap(data, start, end) {\n const offset =\n getUint16(data, start + 2) === 1\n ? getUint32(data, start + 8)\n : getUint32(data, start + 16);\n const format = getUint16(data, start + offset);\n let ranges, p, i;\n if (format === 4) {\n getUint16(data, start + offset + 2); // length\n const segCount = getUint16(data, start + offset + 6) >> 1;\n p = start + offset + 14;\n ranges = [];\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i] = { end: getUint16(data, p) };\n }\n p += 2;\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i].start = getUint16(data, p);\n }\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i].idDelta = getUint16(data, p);\n }\n for (i = 0; i < segCount; i++, p += 2) {\n let idOffset = getUint16(data, p);\n if (idOffset === 0) {\n continue;\n }\n ranges[i].ids = [];\n for (let j = 0, jj = ranges[i].end - ranges[i].start + 1; j < jj; j++) {\n ranges[i].ids[j] = getUint16(data, p + idOffset);\n idOffset += 2;\n }\n }\n return ranges;\n } else if (format === 12) {\n const groups = getUint32(data, start + offset + 12);\n p = start + offset + 16;\n ranges = [];\n for (i = 0; i < groups; i++) {\n start = getUint32(data, p);\n ranges.push({\n start,\n end: getUint32(data, p + 4),\n idDelta: getUint32(data, p + 8) - start,\n });\n p += 12;\n }\n return ranges;\n }\n throw new FormatError(`unsupported cmap: ${format}`);\n}\n\nfunction parseCff(data, start, end, seacAnalysisEnabled) {\n const properties = {};\n const parser = new CFFParser(\n new Stream(data, start, end - start),\n properties,\n seacAnalysisEnabled\n );\n const cff = parser.parse();\n return {\n glyphs: cff.charStrings.objects,\n subrs:\n cff.topDict.privateDict &&\n cff.topDict.privateDict.subrsIndex &&\n cff.topDict.privateDict.subrsIndex.objects,\n gsubrs: cff.globalSubrIndex && cff.globalSubrIndex.objects,\n isCFFCIDFont: cff.isCIDFont,\n fdSelect: cff.fdSelect,\n fdArray: cff.fdArray,\n };\n}\n\nfunction parseGlyfTable(glyf, loca, isGlyphLocationsLong) {\n let itemSize, itemDecode;\n if (isGlyphLocationsLong) {\n itemSize = 4;\n itemDecode = getUint32;\n } else {\n itemSize = 2;\n itemDecode = (data, offset) => 2 * getUint16(data, offset);\n }\n const glyphs = [];\n let startOffset = itemDecode(loca, 0);\n for (let j = itemSize; j < loca.length; j += itemSize) {\n const endOffset = itemDecode(loca, j);\n glyphs.push(glyf.subarray(startOffset, endOffset));\n startOffset = endOffset;\n }\n return glyphs;\n}\n\nfunction lookupCmap(ranges, unicode) {\n const code = unicode.codePointAt(0);\n let gid = 0,\n l = 0,\n r = ranges.length - 1;\n while (l < r) {\n const c = (l + r + 1) >> 1;\n if (code < ranges[c].start) {\n r = c - 1;\n } else {\n l = c;\n }\n }\n if (ranges[l].start <= code && code <= ranges[l].end) {\n gid =\n (ranges[l].idDelta +\n (ranges[l].ids ? ranges[l].ids[code - ranges[l].start] : code)) &\n 0xffff;\n }\n return {\n charCode: code,\n glyphId: gid,\n };\n}\n\nfunction compileGlyf(code, cmds, font) {\n function moveTo(x, y) {\n cmds.push({ cmd: \"moveTo\", args: [x, y] });\n }\n function lineTo(x, y) {\n cmds.push({ cmd: \"lineTo\", args: [x, y] });\n }\n function quadraticCurveTo(xa, ya, x, y) {\n cmds.push({ cmd: \"quadraticCurveTo\", args: [xa, ya, x, y] });\n }\n\n let i = 0;\n const numberOfContours = getInt16(code, i);\n let flags;\n let x = 0,\n y = 0;\n i += 10;\n if (numberOfContours < 0) {\n // composite glyph\n do {\n flags = getUint16(code, i);\n const glyphIndex = getUint16(code, i + 2);\n i += 4;\n let arg1, arg2;\n if (flags & 0x01) {\n if (flags & 0x02) {\n arg1 = getInt16(code, i);\n arg2 = getInt16(code, i + 2);\n } else {\n arg1 = getUint16(code, i);\n arg2 = getUint16(code, i + 2);\n }\n i += 4;\n } else {\n if (flags & 0x02) {\n arg1 = getInt8(code, i++);\n arg2 = getInt8(code, i++);\n } else {\n arg1 = code[i++];\n arg2 = code[i++];\n }\n }\n if (flags & 0x02) {\n x = arg1;\n y = arg2;\n } else {\n x = 0;\n y = 0;\n }\n let scaleX = 1,\n scaleY = 1,\n scale01 = 0,\n scale10 = 0;\n if (flags & 0x08) {\n scaleX = scaleY = getFloat214(code, i);\n i += 2;\n } else if (flags & 0x40) {\n scaleX = getFloat214(code, i);\n scaleY = getFloat214(code, i + 2);\n i += 4;\n } else if (flags & 0x80) {\n scaleX = getFloat214(code, i);\n scale01 = getFloat214(code, i + 2);\n scale10 = getFloat214(code, i + 4);\n scaleY = getFloat214(code, i + 6);\n i += 8;\n }\n const subglyph = font.glyphs[glyphIndex];\n if (subglyph) {\n // TODO: the transform should be applied only if there is a scale:\n // https://github.com/freetype/freetype/blob/edd4fedc5427cf1cf1f4b045e53ff91eb282e9d4/src/truetype/ttgload.c#L1205\n cmds.push(\n { cmd: \"save\" },\n {\n cmd: \"transform\",\n args: [scaleX, scale01, scale10, scaleY, x, y],\n }\n );\n\n if (!(flags & 0x02)) {\n // TODO: we must use arg1 and arg2 to make something similar to:\n // https://github.com/freetype/freetype/blob/edd4fedc5427cf1cf1f4b045e53ff91eb282e9d4/src/truetype/ttgload.c#L1209\n }\n compileGlyf(subglyph, cmds, font);\n cmds.push({ cmd: \"restore\" });\n }\n } while (flags & 0x20);\n } else {\n // simple glyph\n const endPtsOfContours = [];\n let j, jj;\n for (j = 0; j < numberOfContours; j++) {\n endPtsOfContours.push(getUint16(code, i));\n i += 2;\n }\n const instructionLength = getUint16(code, i);\n i += 2 + instructionLength; // skipping the instructions\n const numberOfPoints = endPtsOfContours[endPtsOfContours.length - 1] + 1;\n const points = [];\n while (points.length < numberOfPoints) {\n flags = code[i++];\n let repeat = 1;\n if (flags & 0x08) {\n repeat += code[i++];\n }\n while (repeat-- > 0) {\n points.push({ flags });\n }\n }\n for (j = 0; j < numberOfPoints; j++) {\n switch (points[j].flags & 0x12) {\n case 0x00:\n x += getInt16(code, i);\n i += 2;\n break;\n case 0x02:\n x -= code[i++];\n break;\n case 0x12:\n x += code[i++];\n break;\n }\n points[j].x = x;\n }\n for (j = 0; j < numberOfPoints; j++) {\n switch (points[j].flags & 0x24) {\n case 0x00:\n y += getInt16(code, i);\n i += 2;\n break;\n case 0x04:\n y -= code[i++];\n break;\n case 0x24:\n y += code[i++];\n break;\n }\n points[j].y = y;\n }\n\n let startPoint = 0;\n for (i = 0; i < numberOfContours; i++) {\n const endPoint = endPtsOfContours[i];\n // contours might have implicit points, which is located in the middle\n // between two neighboring off-curve points\n const contour = points.slice(startPoint, endPoint + 1);\n if (contour[0].flags & 1) {\n contour.push(contour[0]); // using start point at the contour end\n } else if (contour[contour.length - 1].flags & 1) {\n // first is off-curve point, trying to use one from the end\n contour.unshift(contour[contour.length - 1]);\n } else {\n // start and end are off-curve points, creating implicit one\n const p = {\n flags: 1,\n x: (contour[0].x + contour[contour.length - 1].x) / 2,\n y: (contour[0].y + contour[contour.length - 1].y) / 2,\n };\n contour.unshift(p);\n contour.push(p);\n }\n moveTo(contour[0].x, contour[0].y);\n for (j = 1, jj = contour.length; j < jj; j++) {\n if (contour[j].flags & 1) {\n lineTo(contour[j].x, contour[j].y);\n } else if (contour[j + 1].flags & 1) {\n quadraticCurveTo(\n contour[j].x,\n contour[j].y,\n contour[j + 1].x,\n contour[j + 1].y\n );\n j++;\n } else {\n quadraticCurveTo(\n contour[j].x,\n contour[j].y,\n (contour[j].x + contour[j + 1].x) / 2,\n (contour[j].y + contour[j + 1].y) / 2\n );\n }\n }\n startPoint = endPoint + 1;\n }\n }\n}\n\nfunction compileCharString(charStringCode, cmds, font, glyphId) {\n function moveTo(x, y) {\n cmds.push({ cmd: \"moveTo\", args: [x, y] });\n }\n function lineTo(x, y) {\n cmds.push({ cmd: \"lineTo\", args: [x, y] });\n }\n function bezierCurveTo(x1, y1, x2, y2, x, y) {\n cmds.push({ cmd: \"bezierCurveTo\", args: [x1, y1, x2, y2, x, y] });\n }\n\n const stack = [];\n let x = 0,\n y = 0;\n let stems = 0;\n\n function parse(code) {\n let i = 0;\n while (i < code.length) {\n let stackClean = false;\n let v = code[i++];\n let xa, xb, ya, yb, y1, y2, y3, n, subrCode;\n switch (v) {\n case 1: // hstem\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 3: // vstem\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 4: // vmoveto\n y += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n case 5: // rlineto\n while (stack.length > 0) {\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n }\n break;\n case 6: // hlineto\n while (stack.length > 0) {\n x += stack.shift();\n lineTo(x, y);\n if (stack.length === 0) {\n break;\n }\n y += stack.shift();\n lineTo(x, y);\n }\n break;\n case 7: // vlineto\n while (stack.length > 0) {\n y += stack.shift();\n lineTo(x, y);\n if (stack.length === 0) {\n break;\n }\n x += stack.shift();\n lineTo(x, y);\n }\n break;\n case 8: // rrcurveto\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 10: // callsubr\n n = stack.pop();\n subrCode = null;\n if (font.isCFFCIDFont) {\n const fdIndex = font.fdSelect.getFDIndex(glyphId);\n if (fdIndex >= 0 && fdIndex < font.fdArray.length) {\n const fontDict = font.fdArray[fdIndex];\n let subrs;\n if (fontDict.privateDict && fontDict.privateDict.subrsIndex) {\n subrs = fontDict.privateDict.subrsIndex.objects;\n }\n if (subrs) {\n // Add subroutine bias.\n n += getSubroutineBias(subrs);\n subrCode = subrs[n];\n }\n } else {\n warn(\"Invalid fd index for glyph index.\");\n }\n } else {\n subrCode = font.subrs[n + font.subrsBias];\n }\n if (subrCode) {\n parse(subrCode);\n }\n break;\n case 11: // return\n return;\n case 12:\n v = code[i++];\n switch (v) {\n case 34: // flex\n xa = x + stack.shift();\n xb = xa + stack.shift();\n y1 = y + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y, xb, y1, x, y1);\n xa = x + stack.shift();\n xb = xa + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y1, xb, y, x, y);\n break;\n case 35: // flex\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n stack.pop(); // fd\n break;\n case 36: // hflex1\n xa = x + stack.shift();\n y1 = y + stack.shift();\n xb = xa + stack.shift();\n y2 = y1 + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y1, xb, y2, x, y2);\n xa = x + stack.shift();\n xb = xa + stack.shift();\n y3 = y2 + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y2, xb, y3, x, y);\n break;\n case 37: // flex1\n const x0 = x,\n y0 = y;\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb;\n y = yb;\n if (Math.abs(x - x0) > Math.abs(y - y0)) {\n x += stack.shift();\n } else {\n y += stack.shift();\n }\n bezierCurveTo(xa, ya, xb, yb, x, y);\n break;\n default:\n throw new FormatError(`unknown operator: 12 ${v}`);\n }\n break;\n case 14: // endchar\n if (stack.length >= 4) {\n const achar = stack.pop();\n const bchar = stack.pop();\n y = stack.pop();\n x = stack.pop();\n cmds.push({ cmd: \"save\" }, { cmd: \"translate\", args: [x, y] });\n let cmap = lookupCmap(\n font.cmap,\n String.fromCharCode(font.glyphNameMap[StandardEncoding[achar]])\n );\n compileCharString(\n font.glyphs[cmap.glyphId],\n cmds,\n font,\n cmap.glyphId\n );\n cmds.push({ cmd: \"restore\" });\n\n cmap = lookupCmap(\n font.cmap,\n String.fromCharCode(font.glyphNameMap[StandardEncoding[bchar]])\n );\n compileCharString(\n font.glyphs[cmap.glyphId],\n cmds,\n font,\n cmap.glyphId\n );\n }\n return;\n case 18: // hstemhm\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 19: // hintmask\n stems += stack.length >> 1;\n i += (stems + 7) >> 3;\n stackClean = true;\n break;\n case 20: // cntrmask\n stems += stack.length >> 1;\n i += (stems + 7) >> 3;\n stackClean = true;\n break;\n case 21: // rmoveto\n y += stack.pop();\n x += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n case 22: // hmoveto\n x += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n case 23: // vstemhm\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 24: // rcurveline\n while (stack.length > 2) {\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n break;\n case 25: // rlinecurve\n while (stack.length > 6) {\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n }\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n break;\n case 26: // vvcurveto\n if (stack.length % 2) {\n x += stack.shift();\n }\n while (stack.length > 0) {\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb;\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 27: // hhcurveto\n if (stack.length % 2) {\n y += stack.shift();\n }\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb;\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 28:\n stack.push(((code[i] << 24) | (code[i + 1] << 16)) >> 16);\n i += 2;\n break;\n case 29: // callgsubr\n n = stack.pop() + font.gsubrsBias;\n subrCode = font.gsubrs[n];\n if (subrCode) {\n parse(subrCode);\n }\n break;\n case 30: // vhcurveto\n while (stack.length > 0) {\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n if (stack.length === 0) {\n break;\n }\n\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n y = yb + stack.shift();\n x = xb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 31: // hvcurveto\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n y = yb + stack.shift();\n x = xb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n if (stack.length === 0) {\n break;\n }\n\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n default:\n if (v < 32) {\n throw new FormatError(`unknown operator: ${v}`);\n }\n if (v < 247) {\n stack.push(v - 139);\n } else if (v < 251) {\n stack.push((v - 247) * 256 + code[i++] + 108);\n } else if (v < 255) {\n stack.push(-(v - 251) * 256 - code[i++] - 108);\n } else {\n stack.push(\n ((code[i] << 24) |\n (code[i + 1] << 16) |\n (code[i + 2] << 8) |\n code[i + 3]) /\n 65536\n );\n i += 4;\n }\n break;\n }\n if (stackClean) {\n stack.length = 0;\n }\n }\n }\n parse(charStringCode);\n}\n\nconst NOOP = [];\n\nclass CompiledFont {\n constructor(fontMatrix) {\n if (this.constructor === CompiledFont) {\n unreachable(\"Cannot initialize CompiledFont.\");\n }\n this.fontMatrix = fontMatrix;\n\n this.compiledGlyphs = Object.create(null);\n this.compiledCharCodeToGlyphId = Object.create(null);\n }\n\n getPathJs(unicode) {\n const { charCode, glyphId } = lookupCmap(this.cmap, unicode);\n let fn = this.compiledGlyphs[glyphId];\n if (!fn) {\n try {\n fn = this.compileGlyph(this.glyphs[glyphId], glyphId);\n this.compiledGlyphs[glyphId] = fn;\n } catch (ex) {\n // Avoid attempting to re-compile a corrupt glyph.\n this.compiledGlyphs[glyphId] = NOOP;\n\n if (this.compiledCharCodeToGlyphId[charCode] === undefined) {\n this.compiledCharCodeToGlyphId[charCode] = glyphId;\n }\n throw ex;\n }\n }\n if (this.compiledCharCodeToGlyphId[charCode] === undefined) {\n this.compiledCharCodeToGlyphId[charCode] = glyphId;\n }\n return fn;\n }\n\n compileGlyph(code, glyphId) {\n if (!code || code.length === 0 || code[0] === 14) {\n return NOOP;\n }\n\n let fontMatrix = this.fontMatrix;\n if (this.isCFFCIDFont) {\n // Top DICT's FontMatrix can be ignored because CFFCompiler always\n // removes it and copies to FDArray DICTs.\n const fdIndex = this.fdSelect.getFDIndex(glyphId);\n if (fdIndex >= 0 && fdIndex < this.fdArray.length) {\n const fontDict = this.fdArray[fdIndex];\n fontMatrix = fontDict.getByName(\"FontMatrix\") || FONT_IDENTITY_MATRIX;\n } else {\n warn(\"Invalid fd index for glyph index.\");\n }\n }\n\n const cmds = [\n { cmd: \"save\" },\n { cmd: \"transform\", args: fontMatrix.slice() },\n { cmd: \"scale\", args: [\"size\", \"-size\"] },\n ];\n this.compileGlyphImpl(code, cmds, glyphId);\n\n cmds.push({ cmd: \"restore\" });\n\n return cmds;\n }\n\n compileGlyphImpl() {\n unreachable(\"Children classes should implement this.\");\n }\n\n hasBuiltPath(unicode) {\n const { charCode, glyphId } = lookupCmap(this.cmap, unicode);\n return (\n this.compiledGlyphs[glyphId] !== undefined &&\n this.compiledCharCodeToGlyphId[charCode] !== undefined\n );\n }\n}\n\nclass TrueTypeCompiled extends CompiledFont {\n constructor(glyphs, cmap, fontMatrix) {\n super(fontMatrix || [0.000488, 0, 0, 0.000488, 0, 0]);\n\n this.glyphs = glyphs;\n this.cmap = cmap;\n }\n\n compileGlyphImpl(code, cmds) {\n compileGlyf(code, cmds, this);\n }\n}\n\nclass Type2Compiled extends CompiledFont {\n constructor(cffInfo, cmap, fontMatrix, glyphNameMap) {\n super(fontMatrix || [0.001, 0, 0, 0.001, 0, 0]);\n\n this.glyphs = cffInfo.glyphs;\n this.gsubrs = cffInfo.gsubrs || [];\n this.subrs = cffInfo.subrs || [];\n this.cmap = cmap;\n this.glyphNameMap = glyphNameMap || getGlyphsUnicode();\n\n this.gsubrsBias = getSubroutineBias(this.gsubrs);\n this.subrsBias = getSubroutineBias(this.subrs);\n\n this.isCFFCIDFont = cffInfo.isCFFCIDFont;\n this.fdSelect = cffInfo.fdSelect;\n this.fdArray = cffInfo.fdArray;\n }\n\n compileGlyphImpl(code, cmds, glyphId) {\n compileCharString(code, cmds, this, glyphId);\n }\n}\n\nclass FontRendererFactory {\n static create(font, seacAnalysisEnabled) {\n const data = new Uint8Array(font.data);\n let cmap, glyf, loca, cff, indexToLocFormat, unitsPerEm;\n const numTables = getUint16(data, 4);\n for (let i = 0, p = 12; i < numTables; i++, p += 16) {\n const tag = bytesToString(data.subarray(p, p + 4));\n const offset = getUint32(data, p + 8);\n const length = getUint32(data, p + 12);\n switch (tag) {\n case \"cmap\":\n cmap = parseCmap(data, offset, offset + length);\n break;\n case \"glyf\":\n glyf = data.subarray(offset, offset + length);\n break;\n case \"loca\":\n loca = data.subarray(offset, offset + length);\n break;\n case \"head\":\n unitsPerEm = getUint16(data, offset + 18);\n indexToLocFormat = getUint16(data, offset + 50);\n break;\n case \"CFF \":\n cff = parseCff(data, offset, offset + length, seacAnalysisEnabled);\n break;\n }\n }\n\n if (glyf) {\n const fontMatrix = !unitsPerEm\n ? font.fontMatrix\n : [1 / unitsPerEm, 0, 0, 1 / unitsPerEm, 0, 0];\n return new TrueTypeCompiled(\n parseGlyfTable(glyf, loca, indexToLocFormat),\n cmap,\n fontMatrix\n );\n }\n return new Type2Compiled(cff, cmap, font.fontMatrix, font.glyphNameMap);\n }\n}\n\nexport { FontRendererFactory };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getLookupTableFactory } from \"./core_utils.js\";\n\n// The Metrics object contains glyph widths (in glyph space units).\n// As per PDF spec, for most fonts (Type 3 being an exception) a glyph\n// space unit corresponds to 1/1000th of text space unit.\nconst getMetrics = getLookupTableFactory(function (t) {\n t.Courier = 600;\n t[\"Courier-Bold\"] = 600;\n t[\"Courier-BoldOblique\"] = 600;\n t[\"Courier-Oblique\"] = 600;\n // eslint-disable-next-line no-shadow\n t.Helvetica = getLookupTableFactory(function (t) {\n t.space = 278;\n t.exclam = 278;\n t.quotedbl = 355;\n t.numbersign = 556;\n t.dollar = 556;\n t.percent = 889;\n t.ampersand = 667;\n t.quoteright = 222;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 389;\n t.plus = 584;\n t.comma = 278;\n t.hyphen = 333;\n t.period = 278;\n t.slash = 278;\n t.zero = 556;\n t.one = 556;\n t.two = 556;\n t.three = 556;\n t.four = 556;\n t.five = 556;\n t.six = 556;\n t.seven = 556;\n t.eight = 556;\n t.nine = 556;\n t.colon = 278;\n t.semicolon = 278;\n t.less = 584;\n t.equal = 584;\n t.greater = 584;\n t.question = 556;\n t.at = 1015;\n t.A = 667;\n t.B = 667;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 722;\n t.I = 278;\n t.J = 500;\n t.K = 667;\n t.L = 556;\n t.M = 833;\n t.N = 722;\n t.O = 778;\n t.P = 667;\n t.Q = 778;\n t.R = 722;\n t.S = 667;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 944;\n t.X = 667;\n t.Y = 667;\n t.Z = 611;\n t.bracketleft = 278;\n t.backslash = 278;\n t.bracketright = 278;\n t.asciicircum = 469;\n t.underscore = 556;\n t.quoteleft = 222;\n t.a = 556;\n t.b = 556;\n t.c = 500;\n t.d = 556;\n t.e = 556;\n t.f = 278;\n t.g = 556;\n t.h = 556;\n t.i = 222;\n t.j = 222;\n t.k = 500;\n t.l = 222;\n t.m = 833;\n t.n = 556;\n t.o = 556;\n t.p = 556;\n t.q = 556;\n t.r = 333;\n t.s = 500;\n t.t = 278;\n t.u = 556;\n t.v = 500;\n t.w = 722;\n t.x = 500;\n t.y = 500;\n t.z = 500;\n t.braceleft = 334;\n t.bar = 260;\n t.braceright = 334;\n t.asciitilde = 584;\n t.exclamdown = 333;\n t.cent = 556;\n t.sterling = 556;\n t.fraction = 167;\n t.yen = 556;\n t.florin = 556;\n t.section = 556;\n t.currency = 556;\n t.quotesingle = 191;\n t.quotedblleft = 333;\n t.guillemotleft = 556;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 500;\n t.fl = 500;\n t.endash = 556;\n t.dagger = 556;\n t.daggerdbl = 556;\n t.periodcentered = 278;\n t.paragraph = 537;\n t.bullet = 350;\n t.quotesinglbase = 222;\n t.quotedblbase = 333;\n t.quotedblright = 333;\n t.guillemotright = 556;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 611;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 370;\n t.Lslash = 556;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 365;\n t.ae = 889;\n t.dotlessi = 278;\n t.lslash = 222;\n t.oslash = 611;\n t.oe = 944;\n t.germandbls = 611;\n t.Idieresis = 278;\n t.eacute = 556;\n t.abreve = 556;\n t.uhungarumlaut = 556;\n t.ecaron = 556;\n t.Ydieresis = 667;\n t.divide = 584;\n t.Yacute = 667;\n t.Acircumflex = 667;\n t.aacute = 556;\n t.Ucircumflex = 722;\n t.yacute = 500;\n t.scommaaccent = 500;\n t.ecircumflex = 556;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 556;\n t.Uacute = 722;\n t.uogonek = 556;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 737;\n t.Emacron = 667;\n t.ccaron = 500;\n t.aring = 556;\n t.Ncommaaccent = 722;\n t.lacute = 222;\n t.agrave = 556;\n t.Tcommaaccent = 611;\n t.Cacute = 722;\n t.atilde = 556;\n t.Edotaccent = 667;\n t.scaron = 500;\n t.scedilla = 500;\n t.iacute = 278;\n t.lozenge = 471;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 556;\n t.acircumflex = 556;\n t.Amacron = 667;\n t.rcaron = 333;\n t.ccedilla = 500;\n t.Zdotaccent = 611;\n t.Thorn = 667;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 667;\n t.dcaron = 643;\n t.Umacron = 722;\n t.uring = 556;\n t.threesuperior = 333;\n t.Ograve = 778;\n t.Agrave = 667;\n t.Abreve = 667;\n t.multiply = 584;\n t.uacute = 556;\n t.Tcaron = 611;\n t.partialdiff = 476;\n t.ydieresis = 500;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 556;\n t.edieresis = 556;\n t.cacute = 500;\n t.nacute = 556;\n t.umacron = 556;\n t.Ncaron = 722;\n t.Iacute = 278;\n t.plusminus = 584;\n t.brokenbar = 260;\n t.registered = 737;\n t.Gbreve = 778;\n t.Idotaccent = 278;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 333;\n t.omacron = 556;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 222;\n t.tcaron = 317;\n t.eogonek = 556;\n t.Uogonek = 722;\n t.Aacute = 667;\n t.Adieresis = 667;\n t.egrave = 556;\n t.zacute = 500;\n t.iogonek = 222;\n t.Oacute = 778;\n t.oacute = 556;\n t.amacron = 556;\n t.sacute = 500;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 556;\n t.twosuperior = 333;\n t.Odieresis = 778;\n t.mu = 556;\n t.igrave = 278;\n t.ohungarumlaut = 556;\n t.Eogonek = 667;\n t.dcroat = 556;\n t.threequarters = 834;\n t.Scedilla = 667;\n t.lcaron = 299;\n t.Kcommaaccent = 667;\n t.Lacute = 556;\n t.trademark = 1000;\n t.edotaccent = 556;\n t.Igrave = 278;\n t.Imacron = 278;\n t.Lcaron = 556;\n t.onehalf = 834;\n t.lessequal = 549;\n t.ocircumflex = 556;\n t.ntilde = 556;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 556;\n t.gbreve = 556;\n t.onequarter = 834;\n t.Scaron = 667;\n t.Scommaaccent = 667;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 556;\n t.Ccaron = 722;\n t.ugrave = 556;\n t.radical = 453;\n t.Dcaron = 722;\n t.rcommaaccent = 333;\n t.Ntilde = 722;\n t.otilde = 556;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 556;\n t.Atilde = 667;\n t.Aogonek = 667;\n t.Aring = 667;\n t.Otilde = 778;\n t.zdotaccent = 500;\n t.Ecaron = 667;\n t.Iogonek = 278;\n t.kcommaaccent = 500;\n t.minus = 584;\n t.Icircumflex = 278;\n t.ncaron = 556;\n t.tcommaaccent = 278;\n t.logicalnot = 584;\n t.odieresis = 556;\n t.udieresis = 556;\n t.notequal = 549;\n t.gcommaaccent = 556;\n t.eth = 556;\n t.zcaron = 500;\n t.ncommaaccent = 556;\n t.onesuperior = 333;\n t.imacron = 278;\n t.Euro = 556;\n });\n // eslint-disable-next-line no-shadow\n t[\"Helvetica-Bold\"] = getLookupTableFactory(function (t) {\n t.space = 278;\n t.exclam = 333;\n t.quotedbl = 474;\n t.numbersign = 556;\n t.dollar = 556;\n t.percent = 889;\n t.ampersand = 722;\n t.quoteright = 278;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 389;\n t.plus = 584;\n t.comma = 278;\n t.hyphen = 333;\n t.period = 278;\n t.slash = 278;\n t.zero = 556;\n t.one = 556;\n t.two = 556;\n t.three = 556;\n t.four = 556;\n t.five = 556;\n t.six = 556;\n t.seven = 556;\n t.eight = 556;\n t.nine = 556;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 584;\n t.equal = 584;\n t.greater = 584;\n t.question = 611;\n t.at = 975;\n t.A = 722;\n t.B = 722;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 722;\n t.I = 278;\n t.J = 556;\n t.K = 722;\n t.L = 611;\n t.M = 833;\n t.N = 722;\n t.O = 778;\n t.P = 667;\n t.Q = 778;\n t.R = 722;\n t.S = 667;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 944;\n t.X = 667;\n t.Y = 667;\n t.Z = 611;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 584;\n t.underscore = 556;\n t.quoteleft = 278;\n t.a = 556;\n t.b = 611;\n t.c = 556;\n t.d = 611;\n t.e = 556;\n t.f = 333;\n t.g = 611;\n t.h = 611;\n t.i = 278;\n t.j = 278;\n t.k = 556;\n t.l = 278;\n t.m = 889;\n t.n = 611;\n t.o = 611;\n t.p = 611;\n t.q = 611;\n t.r = 389;\n t.s = 556;\n t.t = 333;\n t.u = 611;\n t.v = 556;\n t.w = 778;\n t.x = 556;\n t.y = 556;\n t.z = 500;\n t.braceleft = 389;\n t.bar = 280;\n t.braceright = 389;\n t.asciitilde = 584;\n t.exclamdown = 333;\n t.cent = 556;\n t.sterling = 556;\n t.fraction = 167;\n t.yen = 556;\n t.florin = 556;\n t.section = 556;\n t.currency = 556;\n t.quotesingle = 238;\n t.quotedblleft = 500;\n t.guillemotleft = 556;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 611;\n t.fl = 611;\n t.endash = 556;\n t.dagger = 556;\n t.daggerdbl = 556;\n t.periodcentered = 278;\n t.paragraph = 556;\n t.bullet = 350;\n t.quotesinglbase = 278;\n t.quotedblbase = 500;\n t.quotedblright = 500;\n t.guillemotright = 556;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 611;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 370;\n t.Lslash = 611;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 365;\n t.ae = 889;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 611;\n t.oe = 944;\n t.germandbls = 611;\n t.Idieresis = 278;\n t.eacute = 556;\n t.abreve = 556;\n t.uhungarumlaut = 611;\n t.ecaron = 556;\n t.Ydieresis = 667;\n t.divide = 584;\n t.Yacute = 667;\n t.Acircumflex = 722;\n t.aacute = 556;\n t.Ucircumflex = 722;\n t.yacute = 556;\n t.scommaaccent = 556;\n t.ecircumflex = 556;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 556;\n t.Uacute = 722;\n t.uogonek = 611;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 737;\n t.Emacron = 667;\n t.ccaron = 556;\n t.aring = 556;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 556;\n t.Tcommaaccent = 611;\n t.Cacute = 722;\n t.atilde = 556;\n t.Edotaccent = 667;\n t.scaron = 556;\n t.scedilla = 556;\n t.iacute = 278;\n t.lozenge = 494;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 611;\n t.acircumflex = 556;\n t.Amacron = 722;\n t.rcaron = 389;\n t.ccedilla = 556;\n t.Zdotaccent = 611;\n t.Thorn = 667;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 667;\n t.dcaron = 743;\n t.Umacron = 722;\n t.uring = 611;\n t.threesuperior = 333;\n t.Ograve = 778;\n t.Agrave = 722;\n t.Abreve = 722;\n t.multiply = 584;\n t.uacute = 611;\n t.Tcaron = 611;\n t.partialdiff = 494;\n t.ydieresis = 556;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 556;\n t.edieresis = 556;\n t.cacute = 556;\n t.nacute = 611;\n t.umacron = 611;\n t.Ncaron = 722;\n t.Iacute = 278;\n t.plusminus = 584;\n t.brokenbar = 280;\n t.registered = 737;\n t.Gbreve = 778;\n t.Idotaccent = 278;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 389;\n t.omacron = 611;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 278;\n t.tcaron = 389;\n t.eogonek = 556;\n t.Uogonek = 722;\n t.Aacute = 722;\n t.Adieresis = 722;\n t.egrave = 556;\n t.zacute = 500;\n t.iogonek = 278;\n t.Oacute = 778;\n t.oacute = 611;\n t.amacron = 556;\n t.sacute = 556;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 611;\n t.twosuperior = 333;\n t.Odieresis = 778;\n t.mu = 611;\n t.igrave = 278;\n t.ohungarumlaut = 611;\n t.Eogonek = 667;\n t.dcroat = 611;\n t.threequarters = 834;\n t.Scedilla = 667;\n t.lcaron = 400;\n t.Kcommaaccent = 722;\n t.Lacute = 611;\n t.trademark = 1000;\n t.edotaccent = 556;\n t.Igrave = 278;\n t.Imacron = 278;\n t.Lcaron = 611;\n t.onehalf = 834;\n t.lessequal = 549;\n t.ocircumflex = 611;\n t.ntilde = 611;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 556;\n t.gbreve = 611;\n t.onequarter = 834;\n t.Scaron = 667;\n t.Scommaaccent = 667;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 611;\n t.Ccaron = 722;\n t.ugrave = 611;\n t.radical = 549;\n t.Dcaron = 722;\n t.rcommaaccent = 389;\n t.Ntilde = 722;\n t.otilde = 611;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 611;\n t.Atilde = 722;\n t.Aogonek = 722;\n t.Aring = 722;\n t.Otilde = 778;\n t.zdotaccent = 500;\n t.Ecaron = 667;\n t.Iogonek = 278;\n t.kcommaaccent = 556;\n t.minus = 584;\n t.Icircumflex = 278;\n t.ncaron = 611;\n t.tcommaaccent = 333;\n t.logicalnot = 584;\n t.odieresis = 611;\n t.udieresis = 611;\n t.notequal = 549;\n t.gcommaaccent = 611;\n t.eth = 611;\n t.zcaron = 500;\n t.ncommaaccent = 611;\n t.onesuperior = 333;\n t.imacron = 278;\n t.Euro = 556;\n });\n // eslint-disable-next-line no-shadow\n t[\"Helvetica-BoldOblique\"] = getLookupTableFactory(function (t) {\n t.space = 278;\n t.exclam = 333;\n t.quotedbl = 474;\n t.numbersign = 556;\n t.dollar = 556;\n t.percent = 889;\n t.ampersand = 722;\n t.quoteright = 278;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 389;\n t.plus = 584;\n t.comma = 278;\n t.hyphen = 333;\n t.period = 278;\n t.slash = 278;\n t.zero = 556;\n t.one = 556;\n t.two = 556;\n t.three = 556;\n t.four = 556;\n t.five = 556;\n t.six = 556;\n t.seven = 556;\n t.eight = 556;\n t.nine = 556;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 584;\n t.equal = 584;\n t.greater = 584;\n t.question = 611;\n t.at = 975;\n t.A = 722;\n t.B = 722;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 722;\n t.I = 278;\n t.J = 556;\n t.K = 722;\n t.L = 611;\n t.M = 833;\n t.N = 722;\n t.O = 778;\n t.P = 667;\n t.Q = 778;\n t.R = 722;\n t.S = 667;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 944;\n t.X = 667;\n t.Y = 667;\n t.Z = 611;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 584;\n t.underscore = 556;\n t.quoteleft = 278;\n t.a = 556;\n t.b = 611;\n t.c = 556;\n t.d = 611;\n t.e = 556;\n t.f = 333;\n t.g = 611;\n t.h = 611;\n t.i = 278;\n t.j = 278;\n t.k = 556;\n t.l = 278;\n t.m = 889;\n t.n = 611;\n t.o = 611;\n t.p = 611;\n t.q = 611;\n t.r = 389;\n t.s = 556;\n t.t = 333;\n t.u = 611;\n t.v = 556;\n t.w = 778;\n t.x = 556;\n t.y = 556;\n t.z = 500;\n t.braceleft = 389;\n t.bar = 280;\n t.braceright = 389;\n t.asciitilde = 584;\n t.exclamdown = 333;\n t.cent = 556;\n t.sterling = 556;\n t.fraction = 167;\n t.yen = 556;\n t.florin = 556;\n t.section = 556;\n t.currency = 556;\n t.quotesingle = 238;\n t.quotedblleft = 500;\n t.guillemotleft = 556;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 611;\n t.fl = 611;\n t.endash = 556;\n t.dagger = 556;\n t.daggerdbl = 556;\n t.periodcentered = 278;\n t.paragraph = 556;\n t.bullet = 350;\n t.quotesinglbase = 278;\n t.quotedblbase = 500;\n t.quotedblright = 500;\n t.guillemotright = 556;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 611;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 370;\n t.Lslash = 611;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 365;\n t.ae = 889;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 611;\n t.oe = 944;\n t.germandbls = 611;\n t.Idieresis = 278;\n t.eacute = 556;\n t.abreve = 556;\n t.uhungarumlaut = 611;\n t.ecaron = 556;\n t.Ydieresis = 667;\n t.divide = 584;\n t.Yacute = 667;\n t.Acircumflex = 722;\n t.aacute = 556;\n t.Ucircumflex = 722;\n t.yacute = 556;\n t.scommaaccent = 556;\n t.ecircumflex = 556;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 556;\n t.Uacute = 722;\n t.uogonek = 611;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 737;\n t.Emacron = 667;\n t.ccaron = 556;\n t.aring = 556;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 556;\n t.Tcommaaccent = 611;\n t.Cacute = 722;\n t.atilde = 556;\n t.Edotaccent = 667;\n t.scaron = 556;\n t.scedilla = 556;\n t.iacute = 278;\n t.lozenge = 494;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 611;\n t.acircumflex = 556;\n t.Amacron = 722;\n t.rcaron = 389;\n t.ccedilla = 556;\n t.Zdotaccent = 611;\n t.Thorn = 667;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 667;\n t.dcaron = 743;\n t.Umacron = 722;\n t.uring = 611;\n t.threesuperior = 333;\n t.Ograve = 778;\n t.Agrave = 722;\n t.Abreve = 722;\n t.multiply = 584;\n t.uacute = 611;\n t.Tcaron = 611;\n t.partialdiff = 494;\n t.ydieresis = 556;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 556;\n t.edieresis = 556;\n t.cacute = 556;\n t.nacute = 611;\n t.umacron = 611;\n t.Ncaron = 722;\n t.Iacute = 278;\n t.plusminus = 584;\n t.brokenbar = 280;\n t.registered = 737;\n t.Gbreve = 778;\n t.Idotaccent = 278;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 389;\n t.omacron = 611;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 278;\n t.tcaron = 389;\n t.eogonek = 556;\n t.Uogonek = 722;\n t.Aacute = 722;\n t.Adieresis = 722;\n t.egrave = 556;\n t.zacute = 500;\n t.iogonek = 278;\n t.Oacute = 778;\n t.oacute = 611;\n t.amacron = 556;\n t.sacute = 556;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 611;\n t.twosuperior = 333;\n t.Odieresis = 778;\n t.mu = 611;\n t.igrave = 278;\n t.ohungarumlaut = 611;\n t.Eogonek = 667;\n t.dcroat = 611;\n t.threequarters = 834;\n t.Scedilla = 667;\n t.lcaron = 400;\n t.Kcommaaccent = 722;\n t.Lacute = 611;\n t.trademark = 1000;\n t.edotaccent = 556;\n t.Igrave = 278;\n t.Imacron = 278;\n t.Lcaron = 611;\n t.onehalf = 834;\n t.lessequal = 549;\n t.ocircumflex = 611;\n t.ntilde = 611;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 556;\n t.gbreve = 611;\n t.onequarter = 834;\n t.Scaron = 667;\n t.Scommaaccent = 667;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 611;\n t.Ccaron = 722;\n t.ugrave = 611;\n t.radical = 549;\n t.Dcaron = 722;\n t.rcommaaccent = 389;\n t.Ntilde = 722;\n t.otilde = 611;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 611;\n t.Atilde = 722;\n t.Aogonek = 722;\n t.Aring = 722;\n t.Otilde = 778;\n t.zdotaccent = 500;\n t.Ecaron = 667;\n t.Iogonek = 278;\n t.kcommaaccent = 556;\n t.minus = 584;\n t.Icircumflex = 278;\n t.ncaron = 611;\n t.tcommaaccent = 333;\n t.logicalnot = 584;\n t.odieresis = 611;\n t.udieresis = 611;\n t.notequal = 549;\n t.gcommaaccent = 611;\n t.eth = 611;\n t.zcaron = 500;\n t.ncommaaccent = 611;\n t.onesuperior = 333;\n t.imacron = 278;\n t.Euro = 556;\n });\n // eslint-disable-next-line no-shadow\n t[\"Helvetica-Oblique\"] = getLookupTableFactory(function (t) {\n t.space = 278;\n t.exclam = 278;\n t.quotedbl = 355;\n t.numbersign = 556;\n t.dollar = 556;\n t.percent = 889;\n t.ampersand = 667;\n t.quoteright = 222;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 389;\n t.plus = 584;\n t.comma = 278;\n t.hyphen = 333;\n t.period = 278;\n t.slash = 278;\n t.zero = 556;\n t.one = 556;\n t.two = 556;\n t.three = 556;\n t.four = 556;\n t.five = 556;\n t.six = 556;\n t.seven = 556;\n t.eight = 556;\n t.nine = 556;\n t.colon = 278;\n t.semicolon = 278;\n t.less = 584;\n t.equal = 584;\n t.greater = 584;\n t.question = 556;\n t.at = 1015;\n t.A = 667;\n t.B = 667;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 722;\n t.I = 278;\n t.J = 500;\n t.K = 667;\n t.L = 556;\n t.M = 833;\n t.N = 722;\n t.O = 778;\n t.P = 667;\n t.Q = 778;\n t.R = 722;\n t.S = 667;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 944;\n t.X = 667;\n t.Y = 667;\n t.Z = 611;\n t.bracketleft = 278;\n t.backslash = 278;\n t.bracketright = 278;\n t.asciicircum = 469;\n t.underscore = 556;\n t.quoteleft = 222;\n t.a = 556;\n t.b = 556;\n t.c = 500;\n t.d = 556;\n t.e = 556;\n t.f = 278;\n t.g = 556;\n t.h = 556;\n t.i = 222;\n t.j = 222;\n t.k = 500;\n t.l = 222;\n t.m = 833;\n t.n = 556;\n t.o = 556;\n t.p = 556;\n t.q = 556;\n t.r = 333;\n t.s = 500;\n t.t = 278;\n t.u = 556;\n t.v = 500;\n t.w = 722;\n t.x = 500;\n t.y = 500;\n t.z = 500;\n t.braceleft = 334;\n t.bar = 260;\n t.braceright = 334;\n t.asciitilde = 584;\n t.exclamdown = 333;\n t.cent = 556;\n t.sterling = 556;\n t.fraction = 167;\n t.yen = 556;\n t.florin = 556;\n t.section = 556;\n t.currency = 556;\n t.quotesingle = 191;\n t.quotedblleft = 333;\n t.guillemotleft = 556;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 500;\n t.fl = 500;\n t.endash = 556;\n t.dagger = 556;\n t.daggerdbl = 556;\n t.periodcentered = 278;\n t.paragraph = 537;\n t.bullet = 350;\n t.quotesinglbase = 222;\n t.quotedblbase = 333;\n t.quotedblright = 333;\n t.guillemotright = 556;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 611;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 370;\n t.Lslash = 556;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 365;\n t.ae = 889;\n t.dotlessi = 278;\n t.lslash = 222;\n t.oslash = 611;\n t.oe = 944;\n t.germandbls = 611;\n t.Idieresis = 278;\n t.eacute = 556;\n t.abreve = 556;\n t.uhungarumlaut = 556;\n t.ecaron = 556;\n t.Ydieresis = 667;\n t.divide = 584;\n t.Yacute = 667;\n t.Acircumflex = 667;\n t.aacute = 556;\n t.Ucircumflex = 722;\n t.yacute = 500;\n t.scommaaccent = 500;\n t.ecircumflex = 556;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 556;\n t.Uacute = 722;\n t.uogonek = 556;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 737;\n t.Emacron = 667;\n t.ccaron = 500;\n t.aring = 556;\n t.Ncommaaccent = 722;\n t.lacute = 222;\n t.agrave = 556;\n t.Tcommaaccent = 611;\n t.Cacute = 722;\n t.atilde = 556;\n t.Edotaccent = 667;\n t.scaron = 500;\n t.scedilla = 500;\n t.iacute = 278;\n t.lozenge = 471;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 556;\n t.acircumflex = 556;\n t.Amacron = 667;\n t.rcaron = 333;\n t.ccedilla = 500;\n t.Zdotaccent = 611;\n t.Thorn = 667;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 667;\n t.dcaron = 643;\n t.Umacron = 722;\n t.uring = 556;\n t.threesuperior = 333;\n t.Ograve = 778;\n t.Agrave = 667;\n t.Abreve = 667;\n t.multiply = 584;\n t.uacute = 556;\n t.Tcaron = 611;\n t.partialdiff = 476;\n t.ydieresis = 500;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 556;\n t.edieresis = 556;\n t.cacute = 500;\n t.nacute = 556;\n t.umacron = 556;\n t.Ncaron = 722;\n t.Iacute = 278;\n t.plusminus = 584;\n t.brokenbar = 260;\n t.registered = 737;\n t.Gbreve = 778;\n t.Idotaccent = 278;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 333;\n t.omacron = 556;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 222;\n t.tcaron = 317;\n t.eogonek = 556;\n t.Uogonek = 722;\n t.Aacute = 667;\n t.Adieresis = 667;\n t.egrave = 556;\n t.zacute = 500;\n t.iogonek = 222;\n t.Oacute = 778;\n t.oacute = 556;\n t.amacron = 556;\n t.sacute = 500;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 556;\n t.twosuperior = 333;\n t.Odieresis = 778;\n t.mu = 556;\n t.igrave = 278;\n t.ohungarumlaut = 556;\n t.Eogonek = 667;\n t.dcroat = 556;\n t.threequarters = 834;\n t.Scedilla = 667;\n t.lcaron = 299;\n t.Kcommaaccent = 667;\n t.Lacute = 556;\n t.trademark = 1000;\n t.edotaccent = 556;\n t.Igrave = 278;\n t.Imacron = 278;\n t.Lcaron = 556;\n t.onehalf = 834;\n t.lessequal = 549;\n t.ocircumflex = 556;\n t.ntilde = 556;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 556;\n t.gbreve = 556;\n t.onequarter = 834;\n t.Scaron = 667;\n t.Scommaaccent = 667;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 556;\n t.Ccaron = 722;\n t.ugrave = 556;\n t.radical = 453;\n t.Dcaron = 722;\n t.rcommaaccent = 333;\n t.Ntilde = 722;\n t.otilde = 556;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 556;\n t.Atilde = 667;\n t.Aogonek = 667;\n t.Aring = 667;\n t.Otilde = 778;\n t.zdotaccent = 500;\n t.Ecaron = 667;\n t.Iogonek = 278;\n t.kcommaaccent = 500;\n t.minus = 584;\n t.Icircumflex = 278;\n t.ncaron = 556;\n t.tcommaaccent = 278;\n t.logicalnot = 584;\n t.odieresis = 556;\n t.udieresis = 556;\n t.notequal = 549;\n t.gcommaaccent = 556;\n t.eth = 556;\n t.zcaron = 500;\n t.ncommaaccent = 556;\n t.onesuperior = 333;\n t.imacron = 278;\n t.Euro = 556;\n });\n // eslint-disable-next-line no-shadow\n t.Symbol = getLookupTableFactory(function (t) {\n t.space = 250;\n t.exclam = 333;\n t.universal = 713;\n t.numbersign = 500;\n t.existential = 549;\n t.percent = 833;\n t.ampersand = 778;\n t.suchthat = 439;\n t.parenleft = 333;\n t.parenright = 333;\n t.asteriskmath = 500;\n t.plus = 549;\n t.comma = 250;\n t.minus = 549;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 278;\n t.semicolon = 278;\n t.less = 549;\n t.equal = 549;\n t.greater = 549;\n t.question = 444;\n t.congruent = 549;\n t.Alpha = 722;\n t.Beta = 667;\n t.Chi = 722;\n t.Delta = 612;\n t.Epsilon = 611;\n t.Phi = 763;\n t.Gamma = 603;\n t.Eta = 722;\n t.Iota = 333;\n t.theta1 = 631;\n t.Kappa = 722;\n t.Lambda = 686;\n t.Mu = 889;\n t.Nu = 722;\n t.Omicron = 722;\n t.Pi = 768;\n t.Theta = 741;\n t.Rho = 556;\n t.Sigma = 592;\n t.Tau = 611;\n t.Upsilon = 690;\n t.sigma1 = 439;\n t.Omega = 768;\n t.Xi = 645;\n t.Psi = 795;\n t.Zeta = 611;\n t.bracketleft = 333;\n t.therefore = 863;\n t.bracketright = 333;\n t.perpendicular = 658;\n t.underscore = 500;\n t.radicalex = 500;\n t.alpha = 631;\n t.beta = 549;\n t.chi = 549;\n t.delta = 494;\n t.epsilon = 439;\n t.phi = 521;\n t.gamma = 411;\n t.eta = 603;\n t.iota = 329;\n t.phi1 = 603;\n t.kappa = 549;\n t.lambda = 549;\n t.mu = 576;\n t.nu = 521;\n t.omicron = 549;\n t.pi = 549;\n t.theta = 521;\n t.rho = 549;\n t.sigma = 603;\n t.tau = 439;\n t.upsilon = 576;\n t.omega1 = 713;\n t.omega = 686;\n t.xi = 493;\n t.psi = 686;\n t.zeta = 494;\n t.braceleft = 480;\n t.bar = 200;\n t.braceright = 480;\n t.similar = 549;\n t.Euro = 750;\n t.Upsilon1 = 620;\n t.minute = 247;\n t.lessequal = 549;\n t.fraction = 167;\n t.infinity = 713;\n t.florin = 500;\n t.club = 753;\n t.diamond = 753;\n t.heart = 753;\n t.spade = 753;\n t.arrowboth = 1042;\n t.arrowleft = 987;\n t.arrowup = 603;\n t.arrowright = 987;\n t.arrowdown = 603;\n t.degree = 400;\n t.plusminus = 549;\n t.second = 411;\n t.greaterequal = 549;\n t.multiply = 549;\n t.proportional = 713;\n t.partialdiff = 494;\n t.bullet = 460;\n t.divide = 549;\n t.notequal = 549;\n t.equivalence = 549;\n t.approxequal = 549;\n t.ellipsis = 1000;\n t.arrowvertex = 603;\n t.arrowhorizex = 1000;\n t.carriagereturn = 658;\n t.aleph = 823;\n t.Ifraktur = 686;\n t.Rfraktur = 795;\n t.weierstrass = 987;\n t.circlemultiply = 768;\n t.circleplus = 768;\n t.emptyset = 823;\n t.intersection = 768;\n t.union = 768;\n t.propersuperset = 713;\n t.reflexsuperset = 713;\n t.notsubset = 713;\n t.propersubset = 713;\n t.reflexsubset = 713;\n t.element = 713;\n t.notelement = 713;\n t.angle = 768;\n t.gradient = 713;\n t.registerserif = 790;\n t.copyrightserif = 790;\n t.trademarkserif = 890;\n t.product = 823;\n t.radical = 549;\n t.dotmath = 250;\n t.logicalnot = 713;\n t.logicaland = 603;\n t.logicalor = 603;\n t.arrowdblboth = 1042;\n t.arrowdblleft = 987;\n t.arrowdblup = 603;\n t.arrowdblright = 987;\n t.arrowdbldown = 603;\n t.lozenge = 494;\n t.angleleft = 329;\n t.registersans = 790;\n t.copyrightsans = 790;\n t.trademarksans = 786;\n t.summation = 713;\n t.parenlefttp = 384;\n t.parenleftex = 384;\n t.parenleftbt = 384;\n t.bracketlefttp = 384;\n t.bracketleftex = 384;\n t.bracketleftbt = 384;\n t.bracelefttp = 494;\n t.braceleftmid = 494;\n t.braceleftbt = 494;\n t.braceex = 494;\n t.angleright = 329;\n t.integral = 274;\n t.integraltp = 686;\n t.integralex = 686;\n t.integralbt = 686;\n t.parenrighttp = 384;\n t.parenrightex = 384;\n t.parenrightbt = 384;\n t.bracketrighttp = 384;\n t.bracketrightex = 384;\n t.bracketrightbt = 384;\n t.bracerighttp = 494;\n t.bracerightmid = 494;\n t.bracerightbt = 494;\n t.apple = 790;\n });\n // eslint-disable-next-line no-shadow\n t[\"Times-Roman\"] = getLookupTableFactory(function (t) {\n t.space = 250;\n t.exclam = 333;\n t.quotedbl = 408;\n t.numbersign = 500;\n t.dollar = 500;\n t.percent = 833;\n t.ampersand = 778;\n t.quoteright = 333;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 500;\n t.plus = 564;\n t.comma = 250;\n t.hyphen = 333;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 278;\n t.semicolon = 278;\n t.less = 564;\n t.equal = 564;\n t.greater = 564;\n t.question = 444;\n t.at = 921;\n t.A = 722;\n t.B = 667;\n t.C = 667;\n t.D = 722;\n t.E = 611;\n t.F = 556;\n t.G = 722;\n t.H = 722;\n t.I = 333;\n t.J = 389;\n t.K = 722;\n t.L = 611;\n t.M = 889;\n t.N = 722;\n t.O = 722;\n t.P = 556;\n t.Q = 722;\n t.R = 667;\n t.S = 556;\n t.T = 611;\n t.U = 722;\n t.V = 722;\n t.W = 944;\n t.X = 722;\n t.Y = 722;\n t.Z = 611;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 469;\n t.underscore = 500;\n t.quoteleft = 333;\n t.a = 444;\n t.b = 500;\n t.c = 444;\n t.d = 500;\n t.e = 444;\n t.f = 333;\n t.g = 500;\n t.h = 500;\n t.i = 278;\n t.j = 278;\n t.k = 500;\n t.l = 278;\n t.m = 778;\n t.n = 500;\n t.o = 500;\n t.p = 500;\n t.q = 500;\n t.r = 333;\n t.s = 389;\n t.t = 278;\n t.u = 500;\n t.v = 500;\n t.w = 722;\n t.x = 500;\n t.y = 500;\n t.z = 444;\n t.braceleft = 480;\n t.bar = 200;\n t.braceright = 480;\n t.asciitilde = 541;\n t.exclamdown = 333;\n t.cent = 500;\n t.sterling = 500;\n t.fraction = 167;\n t.yen = 500;\n t.florin = 500;\n t.section = 500;\n t.currency = 500;\n t.quotesingle = 180;\n t.quotedblleft = 444;\n t.guillemotleft = 500;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 556;\n t.fl = 556;\n t.endash = 500;\n t.dagger = 500;\n t.daggerdbl = 500;\n t.periodcentered = 250;\n t.paragraph = 453;\n t.bullet = 350;\n t.quotesinglbase = 333;\n t.quotedblbase = 444;\n t.quotedblright = 444;\n t.guillemotright = 500;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 444;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 889;\n t.ordfeminine = 276;\n t.Lslash = 611;\n t.Oslash = 722;\n t.OE = 889;\n t.ordmasculine = 310;\n t.ae = 667;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 500;\n t.oe = 722;\n t.germandbls = 500;\n t.Idieresis = 333;\n t.eacute = 444;\n t.abreve = 444;\n t.uhungarumlaut = 500;\n t.ecaron = 444;\n t.Ydieresis = 722;\n t.divide = 564;\n t.Yacute = 722;\n t.Acircumflex = 722;\n t.aacute = 444;\n t.Ucircumflex = 722;\n t.yacute = 500;\n t.scommaaccent = 389;\n t.ecircumflex = 444;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 444;\n t.Uacute = 722;\n t.uogonek = 500;\n t.Edieresis = 611;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 760;\n t.Emacron = 611;\n t.ccaron = 444;\n t.aring = 444;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 444;\n t.Tcommaaccent = 611;\n t.Cacute = 667;\n t.atilde = 444;\n t.Edotaccent = 611;\n t.scaron = 389;\n t.scedilla = 389;\n t.iacute = 278;\n t.lozenge = 471;\n t.Rcaron = 667;\n t.Gcommaaccent = 722;\n t.ucircumflex = 500;\n t.acircumflex = 444;\n t.Amacron = 722;\n t.rcaron = 333;\n t.ccedilla = 444;\n t.Zdotaccent = 611;\n t.Thorn = 556;\n t.Omacron = 722;\n t.Racute = 667;\n t.Sacute = 556;\n t.dcaron = 588;\n t.Umacron = 722;\n t.uring = 500;\n t.threesuperior = 300;\n t.Ograve = 722;\n t.Agrave = 722;\n t.Abreve = 722;\n t.multiply = 564;\n t.uacute = 500;\n t.Tcaron = 611;\n t.partialdiff = 476;\n t.ydieresis = 500;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 611;\n t.adieresis = 444;\n t.edieresis = 444;\n t.cacute = 444;\n t.nacute = 500;\n t.umacron = 500;\n t.Ncaron = 722;\n t.Iacute = 333;\n t.plusminus = 564;\n t.brokenbar = 200;\n t.registered = 760;\n t.Gbreve = 722;\n t.Idotaccent = 333;\n t.summation = 600;\n t.Egrave = 611;\n t.racute = 333;\n t.omacron = 500;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 667;\n t.lcommaaccent = 278;\n t.tcaron = 326;\n t.eogonek = 444;\n t.Uogonek = 722;\n t.Aacute = 722;\n t.Adieresis = 722;\n t.egrave = 444;\n t.zacute = 444;\n t.iogonek = 278;\n t.Oacute = 722;\n t.oacute = 500;\n t.amacron = 444;\n t.sacute = 389;\n t.idieresis = 278;\n t.Ocircumflex = 722;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 500;\n t.twosuperior = 300;\n t.Odieresis = 722;\n t.mu = 500;\n t.igrave = 278;\n t.ohungarumlaut = 500;\n t.Eogonek = 611;\n t.dcroat = 500;\n t.threequarters = 750;\n t.Scedilla = 556;\n t.lcaron = 344;\n t.Kcommaaccent = 722;\n t.Lacute = 611;\n t.trademark = 980;\n t.edotaccent = 444;\n t.Igrave = 333;\n t.Imacron = 333;\n t.Lcaron = 611;\n t.onehalf = 750;\n t.lessequal = 549;\n t.ocircumflex = 500;\n t.ntilde = 500;\n t.Uhungarumlaut = 722;\n t.Eacute = 611;\n t.emacron = 444;\n t.gbreve = 500;\n t.onequarter = 750;\n t.Scaron = 556;\n t.Scommaaccent = 556;\n t.Ohungarumlaut = 722;\n t.degree = 400;\n t.ograve = 500;\n t.Ccaron = 667;\n t.ugrave = 500;\n t.radical = 453;\n t.Dcaron = 722;\n t.rcommaaccent = 333;\n t.Ntilde = 722;\n t.otilde = 500;\n t.Rcommaaccent = 667;\n t.Lcommaaccent = 611;\n t.Atilde = 722;\n t.Aogonek = 722;\n t.Aring = 722;\n t.Otilde = 722;\n t.zdotaccent = 444;\n t.Ecaron = 611;\n t.Iogonek = 333;\n t.kcommaaccent = 500;\n t.minus = 564;\n t.Icircumflex = 333;\n t.ncaron = 500;\n t.tcommaaccent = 278;\n t.logicalnot = 564;\n t.odieresis = 500;\n t.udieresis = 500;\n t.notequal = 549;\n t.gcommaaccent = 500;\n t.eth = 500;\n t.zcaron = 444;\n t.ncommaaccent = 500;\n t.onesuperior = 300;\n t.imacron = 278;\n t.Euro = 500;\n });\n // eslint-disable-next-line no-shadow\n t[\"Times-Bold\"] = getLookupTableFactory(function (t) {\n t.space = 250;\n t.exclam = 333;\n t.quotedbl = 555;\n t.numbersign = 500;\n t.dollar = 500;\n t.percent = 1000;\n t.ampersand = 833;\n t.quoteright = 333;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 500;\n t.plus = 570;\n t.comma = 250;\n t.hyphen = 333;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 570;\n t.equal = 570;\n t.greater = 570;\n t.question = 500;\n t.at = 930;\n t.A = 722;\n t.B = 667;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 778;\n t.I = 389;\n t.J = 500;\n t.K = 778;\n t.L = 667;\n t.M = 944;\n t.N = 722;\n t.O = 778;\n t.P = 611;\n t.Q = 778;\n t.R = 722;\n t.S = 556;\n t.T = 667;\n t.U = 722;\n t.V = 722;\n t.W = 1000;\n t.X = 722;\n t.Y = 722;\n t.Z = 667;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 581;\n t.underscore = 500;\n t.quoteleft = 333;\n t.a = 500;\n t.b = 556;\n t.c = 444;\n t.d = 556;\n t.e = 444;\n t.f = 333;\n t.g = 500;\n t.h = 556;\n t.i = 278;\n t.j = 333;\n t.k = 556;\n t.l = 278;\n t.m = 833;\n t.n = 556;\n t.o = 500;\n t.p = 556;\n t.q = 556;\n t.r = 444;\n t.s = 389;\n t.t = 333;\n t.u = 556;\n t.v = 500;\n t.w = 722;\n t.x = 500;\n t.y = 500;\n t.z = 444;\n t.braceleft = 394;\n t.bar = 220;\n t.braceright = 394;\n t.asciitilde = 520;\n t.exclamdown = 333;\n t.cent = 500;\n t.sterling = 500;\n t.fraction = 167;\n t.yen = 500;\n t.florin = 500;\n t.section = 500;\n t.currency = 500;\n t.quotesingle = 278;\n t.quotedblleft = 500;\n t.guillemotleft = 500;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 556;\n t.fl = 556;\n t.endash = 500;\n t.dagger = 500;\n t.daggerdbl = 500;\n t.periodcentered = 250;\n t.paragraph = 540;\n t.bullet = 350;\n t.quotesinglbase = 333;\n t.quotedblbase = 500;\n t.quotedblright = 500;\n t.guillemotright = 500;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 500;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 300;\n t.Lslash = 667;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 330;\n t.ae = 722;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 500;\n t.oe = 722;\n t.germandbls = 556;\n t.Idieresis = 389;\n t.eacute = 444;\n t.abreve = 500;\n t.uhungarumlaut = 556;\n t.ecaron = 444;\n t.Ydieresis = 722;\n t.divide = 570;\n t.Yacute = 722;\n t.Acircumflex = 722;\n t.aacute = 500;\n t.Ucircumflex = 722;\n t.yacute = 500;\n t.scommaaccent = 389;\n t.ecircumflex = 444;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 500;\n t.Uacute = 722;\n t.uogonek = 556;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 747;\n t.Emacron = 667;\n t.ccaron = 444;\n t.aring = 500;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 500;\n t.Tcommaaccent = 667;\n t.Cacute = 722;\n t.atilde = 500;\n t.Edotaccent = 667;\n t.scaron = 389;\n t.scedilla = 389;\n t.iacute = 278;\n t.lozenge = 494;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 556;\n t.acircumflex = 500;\n t.Amacron = 722;\n t.rcaron = 444;\n t.ccedilla = 444;\n t.Zdotaccent = 667;\n t.Thorn = 611;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 556;\n t.dcaron = 672;\n t.Umacron = 722;\n t.uring = 556;\n t.threesuperior = 300;\n t.Ograve = 778;\n t.Agrave = 722;\n t.Abreve = 722;\n t.multiply = 570;\n t.uacute = 556;\n t.Tcaron = 667;\n t.partialdiff = 494;\n t.ydieresis = 500;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 500;\n t.edieresis = 444;\n t.cacute = 444;\n t.nacute = 556;\n t.umacron = 556;\n t.Ncaron = 722;\n t.Iacute = 389;\n t.plusminus = 570;\n t.brokenbar = 220;\n t.registered = 747;\n t.Gbreve = 778;\n t.Idotaccent = 389;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 444;\n t.omacron = 500;\n t.Zacute = 667;\n t.Zcaron = 667;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 278;\n t.tcaron = 416;\n t.eogonek = 444;\n t.Uogonek = 722;\n t.Aacute = 722;\n t.Adieresis = 722;\n t.egrave = 444;\n t.zacute = 444;\n t.iogonek = 278;\n t.Oacute = 778;\n t.oacute = 500;\n t.amacron = 500;\n t.sacute = 389;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 556;\n t.twosuperior = 300;\n t.Odieresis = 778;\n t.mu = 556;\n t.igrave = 278;\n t.ohungarumlaut = 500;\n t.Eogonek = 667;\n t.dcroat = 556;\n t.threequarters = 750;\n t.Scedilla = 556;\n t.lcaron = 394;\n t.Kcommaaccent = 778;\n t.Lacute = 667;\n t.trademark = 1000;\n t.edotaccent = 444;\n t.Igrave = 389;\n t.Imacron = 389;\n t.Lcaron = 667;\n t.onehalf = 750;\n t.lessequal = 549;\n t.ocircumflex = 500;\n t.ntilde = 556;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 444;\n t.gbreve = 500;\n t.onequarter = 750;\n t.Scaron = 556;\n t.Scommaaccent = 556;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 500;\n t.Ccaron = 722;\n t.ugrave = 556;\n t.radical = 549;\n t.Dcaron = 722;\n t.rcommaaccent = 444;\n t.Ntilde = 722;\n t.otilde = 500;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 667;\n t.Atilde = 722;\n t.Aogonek = 722;\n t.Aring = 722;\n t.Otilde = 778;\n t.zdotaccent = 444;\n t.Ecaron = 667;\n t.Iogonek = 389;\n t.kcommaaccent = 556;\n t.minus = 570;\n t.Icircumflex = 389;\n t.ncaron = 556;\n t.tcommaaccent = 333;\n t.logicalnot = 570;\n t.odieresis = 500;\n t.udieresis = 556;\n t.notequal = 549;\n t.gcommaaccent = 500;\n t.eth = 500;\n t.zcaron = 444;\n t.ncommaaccent = 556;\n t.onesuperior = 300;\n t.imacron = 278;\n t.Euro = 500;\n });\n // eslint-disable-next-line no-shadow\n t[\"Times-BoldItalic\"] = getLookupTableFactory(function (t) {\n t.space = 250;\n t.exclam = 389;\n t.quotedbl = 555;\n t.numbersign = 500;\n t.dollar = 500;\n t.percent = 833;\n t.ampersand = 778;\n t.quoteright = 333;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 500;\n t.plus = 570;\n t.comma = 250;\n t.hyphen = 333;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 570;\n t.equal = 570;\n t.greater = 570;\n t.question = 500;\n t.at = 832;\n t.A = 667;\n t.B = 667;\n t.C = 667;\n t.D = 722;\n t.E = 667;\n t.F = 667;\n t.G = 722;\n t.H = 778;\n t.I = 389;\n t.J = 500;\n t.K = 667;\n t.L = 611;\n t.M = 889;\n t.N = 722;\n t.O = 722;\n t.P = 611;\n t.Q = 722;\n t.R = 667;\n t.S = 556;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 889;\n t.X = 667;\n t.Y = 611;\n t.Z = 611;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 570;\n t.underscore = 500;\n t.quoteleft = 333;\n t.a = 500;\n t.b = 500;\n t.c = 444;\n t.d = 500;\n t.e = 444;\n t.f = 333;\n t.g = 500;\n t.h = 556;\n t.i = 278;\n t.j = 278;\n t.k = 500;\n t.l = 278;\n t.m = 778;\n t.n = 556;\n t.o = 500;\n t.p = 500;\n t.q = 500;\n t.r = 389;\n t.s = 389;\n t.t = 278;\n t.u = 556;\n t.v = 444;\n t.w = 667;\n t.x = 500;\n t.y = 444;\n t.z = 389;\n t.braceleft = 348;\n t.bar = 220;\n t.braceright = 348;\n t.asciitilde = 570;\n t.exclamdown = 389;\n t.cent = 500;\n t.sterling = 500;\n t.fraction = 167;\n t.yen = 500;\n t.florin = 500;\n t.section = 500;\n t.currency = 500;\n t.quotesingle = 278;\n t.quotedblleft = 500;\n t.guillemotleft = 500;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 556;\n t.fl = 556;\n t.endash = 500;\n t.dagger = 500;\n t.daggerdbl = 500;\n t.periodcentered = 250;\n t.paragraph = 500;\n t.bullet = 350;\n t.quotesinglbase = 333;\n t.quotedblbase = 500;\n t.quotedblright = 500;\n t.guillemotright = 500;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 500;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 944;\n t.ordfeminine = 266;\n t.Lslash = 611;\n t.Oslash = 722;\n t.OE = 944;\n t.ordmasculine = 300;\n t.ae = 722;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 500;\n t.oe = 722;\n t.germandbls = 500;\n t.Idieresis = 389;\n t.eacute = 444;\n t.abreve = 500;\n t.uhungarumlaut = 556;\n t.ecaron = 444;\n t.Ydieresis = 611;\n t.divide = 570;\n t.Yacute = 611;\n t.Acircumflex = 667;\n t.aacute = 500;\n t.Ucircumflex = 722;\n t.yacute = 444;\n t.scommaaccent = 389;\n t.ecircumflex = 444;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 500;\n t.Uacute = 722;\n t.uogonek = 556;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 747;\n t.Emacron = 667;\n t.ccaron = 444;\n t.aring = 500;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 500;\n t.Tcommaaccent = 611;\n t.Cacute = 667;\n t.atilde = 500;\n t.Edotaccent = 667;\n t.scaron = 389;\n t.scedilla = 389;\n t.iacute = 278;\n t.lozenge = 494;\n t.Rcaron = 667;\n t.Gcommaaccent = 722;\n t.ucircumflex = 556;\n t.acircumflex = 500;\n t.Amacron = 667;\n t.rcaron = 389;\n t.ccedilla = 444;\n t.Zdotaccent = 611;\n t.Thorn = 611;\n t.Omacron = 722;\n t.Racute = 667;\n t.Sacute = 556;\n t.dcaron = 608;\n t.Umacron = 722;\n t.uring = 556;\n t.threesuperior = 300;\n t.Ograve = 722;\n t.Agrave = 667;\n t.Abreve = 667;\n t.multiply = 570;\n t.uacute = 556;\n t.Tcaron = 611;\n t.partialdiff = 494;\n t.ydieresis = 444;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 500;\n t.edieresis = 444;\n t.cacute = 444;\n t.nacute = 556;\n t.umacron = 556;\n t.Ncaron = 722;\n t.Iacute = 389;\n t.plusminus = 570;\n t.brokenbar = 220;\n t.registered = 747;\n t.Gbreve = 722;\n t.Idotaccent = 389;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 389;\n t.omacron = 500;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 667;\n t.lcommaaccent = 278;\n t.tcaron = 366;\n t.eogonek = 444;\n t.Uogonek = 722;\n t.Aacute = 667;\n t.Adieresis = 667;\n t.egrave = 444;\n t.zacute = 389;\n t.iogonek = 278;\n t.Oacute = 722;\n t.oacute = 500;\n t.amacron = 500;\n t.sacute = 389;\n t.idieresis = 278;\n t.Ocircumflex = 722;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 500;\n t.twosuperior = 300;\n t.Odieresis = 722;\n t.mu = 576;\n t.igrave = 278;\n t.ohungarumlaut = 500;\n t.Eogonek = 667;\n t.dcroat = 500;\n t.threequarters = 750;\n t.Scedilla = 556;\n t.lcaron = 382;\n t.Kcommaaccent = 667;\n t.Lacute = 611;\n t.trademark = 1000;\n t.edotaccent = 444;\n t.Igrave = 389;\n t.Imacron = 389;\n t.Lcaron = 611;\n t.onehalf = 750;\n t.lessequal = 549;\n t.ocircumflex = 500;\n t.ntilde = 556;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 444;\n t.gbreve = 500;\n t.onequarter = 750;\n t.Scaron = 556;\n t.Scommaaccent = 556;\n t.Ohungarumlaut = 722;\n t.degree = 400;\n t.ograve = 500;\n t.Ccaron = 667;\n t.ugrave = 556;\n t.radical = 549;\n t.Dcaron = 722;\n t.rcommaaccent = 389;\n t.Ntilde = 722;\n t.otilde = 500;\n t.Rcommaaccent = 667;\n t.Lcommaaccent = 611;\n t.Atilde = 667;\n t.Aogonek = 667;\n t.Aring = 667;\n t.Otilde = 722;\n t.zdotaccent = 389;\n t.Ecaron = 667;\n t.Iogonek = 389;\n t.kcommaaccent = 500;\n t.minus = 606;\n t.Icircumflex = 389;\n t.ncaron = 556;\n t.tcommaaccent = 278;\n t.logicalnot = 606;\n t.odieresis = 500;\n t.udieresis = 556;\n t.notequal = 549;\n t.gcommaaccent = 500;\n t.eth = 500;\n t.zcaron = 389;\n t.ncommaaccent = 556;\n t.onesuperior = 300;\n t.imacron = 278;\n t.Euro = 500;\n });\n // eslint-disable-next-line no-shadow\n t[\"Times-Italic\"] = getLookupTableFactory(function (t) {\n t.space = 250;\n t.exclam = 333;\n t.quotedbl = 420;\n t.numbersign = 500;\n t.dollar = 500;\n t.percent = 833;\n t.ampersand = 778;\n t.quoteright = 333;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 500;\n t.plus = 675;\n t.comma = 250;\n t.hyphen = 333;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 675;\n t.equal = 675;\n t.greater = 675;\n t.question = 500;\n t.at = 920;\n t.A = 611;\n t.B = 611;\n t.C = 667;\n t.D = 722;\n t.E = 611;\n t.F = 611;\n t.G = 722;\n t.H = 722;\n t.I = 333;\n t.J = 444;\n t.K = 667;\n t.L = 556;\n t.M = 833;\n t.N = 667;\n t.O = 722;\n t.P = 611;\n t.Q = 722;\n t.R = 611;\n t.S = 500;\n t.T = 556;\n t.U = 722;\n t.V = 611;\n t.W = 833;\n t.X = 611;\n t.Y = 556;\n t.Z = 556;\n t.bracketleft = 389;\n t.backslash = 278;\n t.bracketright = 389;\n t.asciicircum = 422;\n t.underscore = 500;\n t.quoteleft = 333;\n t.a = 500;\n t.b = 500;\n t.c = 444;\n t.d = 500;\n t.e = 444;\n t.f = 278;\n t.g = 500;\n t.h = 500;\n t.i = 278;\n t.j = 278;\n t.k = 444;\n t.l = 278;\n t.m = 722;\n t.n = 500;\n t.o = 500;\n t.p = 500;\n t.q = 500;\n t.r = 389;\n t.s = 389;\n t.t = 278;\n t.u = 500;\n t.v = 444;\n t.w = 667;\n t.x = 444;\n t.y = 444;\n t.z = 389;\n t.braceleft = 400;\n t.bar = 275;\n t.braceright = 400;\n t.asciitilde = 541;\n t.exclamdown = 389;\n t.cent = 500;\n t.sterling = 500;\n t.fraction = 167;\n t.yen = 500;\n t.florin = 500;\n t.section = 500;\n t.currency = 500;\n t.quotesingle = 214;\n t.quotedblleft = 556;\n t.guillemotleft = 500;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 500;\n t.fl = 500;\n t.endash = 500;\n t.dagger = 500;\n t.daggerdbl = 500;\n t.periodcentered = 250;\n t.paragraph = 523;\n t.bullet = 350;\n t.quotesinglbase = 333;\n t.quotedblbase = 556;\n t.quotedblright = 556;\n t.guillemotright = 500;\n t.ellipsis = 889;\n t.perthousand = 1000;\n t.questiondown = 500;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 889;\n t.AE = 889;\n t.ordfeminine = 276;\n t.Lslash = 556;\n t.Oslash = 722;\n t.OE = 944;\n t.ordmasculine = 310;\n t.ae = 667;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 500;\n t.oe = 667;\n t.germandbls = 500;\n t.Idieresis = 333;\n t.eacute = 444;\n t.abreve = 500;\n t.uhungarumlaut = 500;\n t.ecaron = 444;\n t.Ydieresis = 556;\n t.divide = 675;\n t.Yacute = 556;\n t.Acircumflex = 611;\n t.aacute = 500;\n t.Ucircumflex = 722;\n t.yacute = 444;\n t.scommaaccent = 389;\n t.ecircumflex = 444;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 500;\n t.Uacute = 722;\n t.uogonek = 500;\n t.Edieresis = 611;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 760;\n t.Emacron = 611;\n t.ccaron = 444;\n t.aring = 500;\n t.Ncommaaccent = 667;\n t.lacute = 278;\n t.agrave = 500;\n t.Tcommaaccent = 556;\n t.Cacute = 667;\n t.atilde = 500;\n t.Edotaccent = 611;\n t.scaron = 389;\n t.scedilla = 389;\n t.iacute = 278;\n t.lozenge = 471;\n t.Rcaron = 611;\n t.Gcommaaccent = 722;\n t.ucircumflex = 500;\n t.acircumflex = 500;\n t.Amacron = 611;\n t.rcaron = 389;\n t.ccedilla = 444;\n t.Zdotaccent = 556;\n t.Thorn = 611;\n t.Omacron = 722;\n t.Racute = 611;\n t.Sacute = 500;\n t.dcaron = 544;\n t.Umacron = 722;\n t.uring = 500;\n t.threesuperior = 300;\n t.Ograve = 722;\n t.Agrave = 611;\n t.Abreve = 611;\n t.multiply = 675;\n t.uacute = 500;\n t.Tcaron = 556;\n t.partialdiff = 476;\n t.ydieresis = 444;\n t.Nacute = 667;\n t.icircumflex = 278;\n t.Ecircumflex = 611;\n t.adieresis = 500;\n t.edieresis = 444;\n t.cacute = 444;\n t.nacute = 500;\n t.umacron = 500;\n t.Ncaron = 667;\n t.Iacute = 333;\n t.plusminus = 675;\n t.brokenbar = 275;\n t.registered = 760;\n t.Gbreve = 722;\n t.Idotaccent = 333;\n t.summation = 600;\n t.Egrave = 611;\n t.racute = 389;\n t.omacron = 500;\n t.Zacute = 556;\n t.Zcaron = 556;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 667;\n t.lcommaaccent = 278;\n t.tcaron = 300;\n t.eogonek = 444;\n t.Uogonek = 722;\n t.Aacute = 611;\n t.Adieresis = 611;\n t.egrave = 444;\n t.zacute = 389;\n t.iogonek = 278;\n t.Oacute = 722;\n t.oacute = 500;\n t.amacron = 500;\n t.sacute = 389;\n t.idieresis = 278;\n t.Ocircumflex = 722;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 500;\n t.twosuperior = 300;\n t.Odieresis = 722;\n t.mu = 500;\n t.igrave = 278;\n t.ohungarumlaut = 500;\n t.Eogonek = 611;\n t.dcroat = 500;\n t.threequarters = 750;\n t.Scedilla = 500;\n t.lcaron = 300;\n t.Kcommaaccent = 667;\n t.Lacute = 556;\n t.trademark = 980;\n t.edotaccent = 444;\n t.Igrave = 333;\n t.Imacron = 333;\n t.Lcaron = 611;\n t.onehalf = 750;\n t.lessequal = 549;\n t.ocircumflex = 500;\n t.ntilde = 500;\n t.Uhungarumlaut = 722;\n t.Eacute = 611;\n t.emacron = 444;\n t.gbreve = 500;\n t.onequarter = 750;\n t.Scaron = 500;\n t.Scommaaccent = 500;\n t.Ohungarumlaut = 722;\n t.degree = 400;\n t.ograve = 500;\n t.Ccaron = 667;\n t.ugrave = 500;\n t.radical = 453;\n t.Dcaron = 722;\n t.rcommaaccent = 389;\n t.Ntilde = 667;\n t.otilde = 500;\n t.Rcommaaccent = 611;\n t.Lcommaaccent = 556;\n t.Atilde = 611;\n t.Aogonek = 611;\n t.Aring = 611;\n t.Otilde = 722;\n t.zdotaccent = 389;\n t.Ecaron = 611;\n t.Iogonek = 333;\n t.kcommaaccent = 444;\n t.minus = 675;\n t.Icircumflex = 333;\n t.ncaron = 500;\n t.tcommaaccent = 278;\n t.logicalnot = 675;\n t.odieresis = 500;\n t.udieresis = 500;\n t.notequal = 549;\n t.gcommaaccent = 500;\n t.eth = 500;\n t.zcaron = 389;\n t.ncommaaccent = 500;\n t.onesuperior = 300;\n t.imacron = 278;\n t.Euro = 500;\n });\n // eslint-disable-next-line no-shadow\n t.ZapfDingbats = getLookupTableFactory(function (t) {\n t.space = 278;\n t.a1 = 974;\n t.a2 = 961;\n t.a202 = 974;\n t.a3 = 980;\n t.a4 = 719;\n t.a5 = 789;\n t.a119 = 790;\n t.a118 = 791;\n t.a117 = 690;\n t.a11 = 960;\n t.a12 = 939;\n t.a13 = 549;\n t.a14 = 855;\n t.a15 = 911;\n t.a16 = 933;\n t.a105 = 911;\n t.a17 = 945;\n t.a18 = 974;\n t.a19 = 755;\n t.a20 = 846;\n t.a21 = 762;\n t.a22 = 761;\n t.a23 = 571;\n t.a24 = 677;\n t.a25 = 763;\n t.a26 = 760;\n t.a27 = 759;\n t.a28 = 754;\n t.a6 = 494;\n t.a7 = 552;\n t.a8 = 537;\n t.a9 = 577;\n t.a10 = 692;\n t.a29 = 786;\n t.a30 = 788;\n t.a31 = 788;\n t.a32 = 790;\n t.a33 = 793;\n t.a34 = 794;\n t.a35 = 816;\n t.a36 = 823;\n t.a37 = 789;\n t.a38 = 841;\n t.a39 = 823;\n t.a40 = 833;\n t.a41 = 816;\n t.a42 = 831;\n t.a43 = 923;\n t.a44 = 744;\n t.a45 = 723;\n t.a46 = 749;\n t.a47 = 790;\n t.a48 = 792;\n t.a49 = 695;\n t.a50 = 776;\n t.a51 = 768;\n t.a52 = 792;\n t.a53 = 759;\n t.a54 = 707;\n t.a55 = 708;\n t.a56 = 682;\n t.a57 = 701;\n t.a58 = 826;\n t.a59 = 815;\n t.a60 = 789;\n t.a61 = 789;\n t.a62 = 707;\n t.a63 = 687;\n t.a64 = 696;\n t.a65 = 689;\n t.a66 = 786;\n t.a67 = 787;\n t.a68 = 713;\n t.a69 = 791;\n t.a70 = 785;\n t.a71 = 791;\n t.a72 = 873;\n t.a73 = 761;\n t.a74 = 762;\n t.a203 = 762;\n t.a75 = 759;\n t.a204 = 759;\n t.a76 = 892;\n t.a77 = 892;\n t.a78 = 788;\n t.a79 = 784;\n t.a81 = 438;\n t.a82 = 138;\n t.a83 = 277;\n t.a84 = 415;\n t.a97 = 392;\n t.a98 = 392;\n t.a99 = 668;\n t.a100 = 668;\n t.a89 = 390;\n t.a90 = 390;\n t.a93 = 317;\n t.a94 = 317;\n t.a91 = 276;\n t.a92 = 276;\n t.a205 = 509;\n t.a85 = 509;\n t.a206 = 410;\n t.a86 = 410;\n t.a87 = 234;\n t.a88 = 234;\n t.a95 = 334;\n t.a96 = 334;\n t.a101 = 732;\n t.a102 = 544;\n t.a103 = 544;\n t.a104 = 910;\n t.a106 = 667;\n t.a107 = 760;\n t.a108 = 760;\n t.a112 = 776;\n t.a111 = 595;\n t.a110 = 694;\n t.a109 = 626;\n t.a120 = 788;\n t.a121 = 788;\n t.a122 = 788;\n t.a123 = 788;\n t.a124 = 788;\n t.a125 = 788;\n t.a126 = 788;\n t.a127 = 788;\n t.a128 = 788;\n t.a129 = 788;\n t.a130 = 788;\n t.a131 = 788;\n t.a132 = 788;\n t.a133 = 788;\n t.a134 = 788;\n t.a135 = 788;\n t.a136 = 788;\n t.a137 = 788;\n t.a138 = 788;\n t.a139 = 788;\n t.a140 = 788;\n t.a141 = 788;\n t.a142 = 788;\n t.a143 = 788;\n t.a144 = 788;\n t.a145 = 788;\n t.a146 = 788;\n t.a147 = 788;\n t.a148 = 788;\n t.a149 = 788;\n t.a150 = 788;\n t.a151 = 788;\n t.a152 = 788;\n t.a153 = 788;\n t.a154 = 788;\n t.a155 = 788;\n t.a156 = 788;\n t.a157 = 788;\n t.a158 = 788;\n t.a159 = 788;\n t.a160 = 894;\n t.a161 = 838;\n t.a163 = 1016;\n t.a164 = 458;\n t.a196 = 748;\n t.a165 = 924;\n t.a192 = 748;\n t.a166 = 918;\n t.a167 = 927;\n t.a168 = 928;\n t.a169 = 928;\n t.a170 = 834;\n t.a171 = 873;\n t.a172 = 828;\n t.a173 = 924;\n t.a162 = 924;\n t.a174 = 917;\n t.a175 = 930;\n t.a176 = 931;\n t.a177 = 463;\n t.a178 = 883;\n t.a179 = 836;\n t.a193 = 836;\n t.a180 = 867;\n t.a199 = 867;\n t.a181 = 696;\n t.a200 = 696;\n t.a182 = 874;\n t.a201 = 874;\n t.a183 = 760;\n t.a184 = 946;\n t.a197 = 771;\n t.a185 = 865;\n t.a194 = 771;\n t.a198 = 888;\n t.a186 = 967;\n t.a195 = 888;\n t.a187 = 831;\n t.a188 = 873;\n t.a189 = 927;\n t.a190 = 970;\n t.a191 = 918;\n });\n});\n\nconst getFontBasicMetrics = getLookupTableFactory(function (t) {\n t.Courier = {\n ascent: 629,\n descent: -157,\n capHeight: 562,\n xHeight: -426,\n };\n t[\"Courier-Bold\"] = {\n ascent: 629,\n descent: -157,\n capHeight: 562,\n xHeight: 439,\n };\n t[\"Courier-Oblique\"] = {\n ascent: 629,\n descent: -157,\n capHeight: 562,\n xHeight: 426,\n };\n t[\"Courier-BoldOblique\"] = {\n ascent: 629,\n descent: -157,\n capHeight: 562,\n xHeight: 426,\n };\n t.Helvetica = {\n ascent: 718,\n descent: -207,\n capHeight: 718,\n xHeight: 523,\n };\n t[\"Helvetica-Bold\"] = {\n ascent: 718,\n descent: -207,\n capHeight: 718,\n xHeight: 532,\n };\n t[\"Helvetica-Oblique\"] = {\n ascent: 718,\n descent: -207,\n capHeight: 718,\n xHeight: 523,\n };\n t[\"Helvetica-BoldOblique\"] = {\n ascent: 718,\n descent: -207,\n capHeight: 718,\n xHeight: 532,\n };\n t[\"Times-Roman\"] = {\n ascent: 683,\n descent: -217,\n capHeight: 662,\n xHeight: 450,\n };\n t[\"Times-Bold\"] = {\n ascent: 683,\n descent: -217,\n capHeight: 676,\n xHeight: 461,\n };\n t[\"Times-Italic\"] = {\n ascent: 683,\n descent: -217,\n capHeight: 653,\n xHeight: 441,\n };\n t[\"Times-BoldItalic\"] = {\n ascent: 683,\n descent: -217,\n capHeight: 669,\n xHeight: 462,\n };\n t.Symbol = {\n ascent: Math.NaN,\n descent: Math.NaN,\n capHeight: Math.NaN,\n xHeight: Math.NaN,\n };\n t.ZapfDingbats = {\n ascent: Math.NaN,\n descent: Math.NaN,\n capHeight: Math.NaN,\n xHeight: Math.NaN,\n };\n});\n\nexport { getFontBasicMetrics, getMetrics };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst ON_CURVE_POINT = 1 << 0;\nconst X_SHORT_VECTOR = 1 << 1;\nconst Y_SHORT_VECTOR = 1 << 2;\nconst REPEAT_FLAG = 1 << 3;\nconst X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR = 1 << 4;\nconst Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR = 1 << 5;\nconst OVERLAP_SIMPLE = 1 << 6;\n\nconst ARG_1_AND_2_ARE_WORDS = 1 << 0;\nconst ARGS_ARE_XY_VALUES = 1 << 1;\n// const ROUND_XY_TO_GRID = 1 << 2;\nconst WE_HAVE_A_SCALE = 1 << 3;\nconst MORE_COMPONENTS = 1 << 5;\nconst WE_HAVE_AN_X_AND_Y_SCALE = 1 << 6;\nconst WE_HAVE_A_TWO_BY_TWO = 1 << 7;\nconst WE_HAVE_INSTRUCTIONS = 1 << 8;\n// const USE_MY_METRICS = 1 << 9;\n// const OVERLAP_COMPOUND = 1 << 10;\n// const SCALED_COMPONENT_OFFSET = 1 << 11;\n// const UNSCALED_COMPONENT_OFFSET = 1 << 12;\n\n/**\n * GlyfTable object represents a glyf table containing glyph information:\n * - glyph header (xMin, yMin, xMax, yMax);\n * - contours if any;\n * - components if the glyph is a composite.\n *\n * It's possible to re-scale each glyph in order to have a new font which\n * exactly fits an other one: the goal is to be able to build some substitution\n * font for well-known fonts (Myriad, Arial, ...).\n *\n * A full description of glyf table can be found here\n * https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6glyf.html\n */\nclass GlyfTable {\n constructor({ glyfTable, isGlyphLocationsLong, locaTable, numGlyphs }) {\n this.glyphs = [];\n const loca = new DataView(\n locaTable.buffer,\n locaTable.byteOffset,\n locaTable.byteLength\n );\n const glyf = new DataView(\n glyfTable.buffer,\n glyfTable.byteOffset,\n glyfTable.byteLength\n );\n const offsetSize = isGlyphLocationsLong ? 4 : 2;\n let prev = isGlyphLocationsLong ? loca.getUint32(0) : 2 * loca.getUint16(0);\n let pos = 0;\n for (let i = 0; i < numGlyphs; i++) {\n pos += offsetSize;\n const next = isGlyphLocationsLong\n ? loca.getUint32(pos)\n : 2 * loca.getUint16(pos);\n if (next === prev) {\n this.glyphs.push(new Glyph({}));\n continue;\n }\n\n const glyph = Glyph.parse(prev, glyf);\n this.glyphs.push(glyph);\n\n prev = next;\n }\n }\n\n getSize() {\n return this.glyphs.reduce((a, g) => {\n const size = g.getSize();\n // Round to next multiple of 4 if needed.\n return a + ((size + 3) & ~3);\n }, 0);\n }\n\n write() {\n const totalSize = this.getSize();\n const glyfTable = new DataView(new ArrayBuffer(totalSize));\n const isLocationLong = totalSize > /* 0xffff * 2 */ 0x1fffe;\n const offsetSize = isLocationLong ? 4 : 2;\n const locaTable = new DataView(\n new ArrayBuffer((this.glyphs.length + 1) * offsetSize)\n );\n\n if (isLocationLong) {\n locaTable.setUint32(0, 0);\n } else {\n locaTable.setUint16(0, 0);\n }\n\n let pos = 0;\n let locaIndex = 0;\n for (const glyph of this.glyphs) {\n pos += glyph.write(pos, glyfTable);\n // Round to next multiple of 4 if needed.\n pos = (pos + 3) & ~3;\n\n locaIndex += offsetSize;\n if (isLocationLong) {\n locaTable.setUint32(locaIndex, pos);\n } else {\n locaTable.setUint16(locaIndex, pos >> 1);\n }\n }\n\n return {\n isLocationLong,\n loca: new Uint8Array(locaTable.buffer),\n glyf: new Uint8Array(glyfTable.buffer),\n };\n }\n\n scale(factors) {\n for (let i = 0, ii = this.glyphs.length; i < ii; i++) {\n this.glyphs[i].scale(factors[i]);\n }\n }\n}\n\nclass Glyph {\n constructor({ header = null, simple = null, composites = null }) {\n this.header = header;\n this.simple = simple;\n this.composites = composites;\n }\n\n static parse(pos, glyf) {\n const [read, header] = GlyphHeader.parse(pos, glyf);\n pos += read;\n\n if (header.numberOfContours < 0) {\n // Composite glyph.\n const composites = [];\n while (true) {\n const [n, composite] = CompositeGlyph.parse(pos, glyf);\n pos += n;\n composites.push(composite);\n if (!(composite.flags & MORE_COMPONENTS)) {\n break;\n }\n }\n\n return new Glyph({ header, composites });\n }\n\n const simple = SimpleGlyph.parse(pos, glyf, header.numberOfContours);\n\n return new Glyph({ header, simple });\n }\n\n getSize() {\n if (!this.header) {\n return 0;\n }\n const size = this.simple\n ? this.simple.getSize()\n : this.composites.reduce((a, c) => a + c.getSize(), 0);\n return this.header.getSize() + size;\n }\n\n write(pos, buf) {\n if (!this.header) {\n return 0;\n }\n\n const spos = pos;\n pos += this.header.write(pos, buf);\n if (this.simple) {\n pos += this.simple.write(pos, buf);\n } else {\n for (const composite of this.composites) {\n pos += composite.write(pos, buf);\n }\n }\n\n return pos - spos;\n }\n\n scale(factor) {\n if (!this.header) {\n return;\n }\n\n const xMiddle = (this.header.xMin + this.header.xMax) / 2;\n this.header.scale(xMiddle, factor);\n if (this.simple) {\n this.simple.scale(xMiddle, factor);\n } else {\n for (const composite of this.composites) {\n composite.scale(xMiddle, factor);\n }\n }\n }\n}\n\nclass GlyphHeader {\n constructor({ numberOfContours, xMin, yMin, xMax, yMax }) {\n this.numberOfContours = numberOfContours;\n this.xMin = xMin;\n this.yMin = yMin;\n this.xMax = xMax;\n this.yMax = yMax;\n }\n\n static parse(pos, glyf) {\n return [\n 10,\n new GlyphHeader({\n numberOfContours: glyf.getInt16(pos),\n xMin: glyf.getInt16(pos + 2),\n yMin: glyf.getInt16(pos + 4),\n xMax: glyf.getInt16(pos + 6),\n yMax: glyf.getInt16(pos + 8),\n }),\n ];\n }\n\n getSize() {\n return 10;\n }\n\n write(pos, buf) {\n buf.setInt16(pos, this.numberOfContours);\n buf.setInt16(pos + 2, this.xMin);\n buf.setInt16(pos + 4, this.yMin);\n buf.setInt16(pos + 6, this.xMax);\n buf.setInt16(pos + 8, this.yMax);\n\n return 10;\n }\n\n scale(x, factor) {\n this.xMin = Math.round(x + (this.xMin - x) * factor);\n this.xMax = Math.round(x + (this.xMax - x) * factor);\n }\n}\n\nclass Contour {\n constructor({ flags, xCoordinates, yCoordinates }) {\n this.xCoordinates = xCoordinates;\n this.yCoordinates = yCoordinates;\n this.flags = flags;\n }\n}\n\nclass SimpleGlyph {\n constructor({ contours, instructions }) {\n this.contours = contours;\n this.instructions = instructions;\n }\n\n static parse(pos, glyf, numberOfContours) {\n const endPtsOfContours = [];\n for (let i = 0; i < numberOfContours; i++) {\n const endPt = glyf.getUint16(pos);\n pos += 2;\n endPtsOfContours.push(endPt);\n }\n const numberOfPt = endPtsOfContours[numberOfContours - 1] + 1;\n const instructionLength = glyf.getUint16(pos);\n pos += 2;\n const instructions = new Uint8Array(glyf).slice(\n pos,\n pos + instructionLength\n );\n pos += instructionLength;\n\n const flags = [];\n for (let i = 0; i < numberOfPt; pos++, i++) {\n let flag = glyf.getUint8(pos);\n flags.push(flag);\n if (flag & REPEAT_FLAG) {\n const count = glyf.getUint8(++pos);\n flag ^= REPEAT_FLAG;\n for (let m = 0; m < count; m++) {\n flags.push(flag);\n }\n i += count;\n }\n }\n\n const allXCoordinates = [];\n let xCoordinates = [];\n let yCoordinates = [];\n let pointFlags = [];\n const contours = [];\n let endPtsOfContoursIndex = 0;\n let lastCoordinate = 0;\n\n // Get x coordinates.\n for (let i = 0; i < numberOfPt; i++) {\n const flag = flags[i];\n if (flag & X_SHORT_VECTOR) {\n // 8-bits unsigned value.\n const x = glyf.getUint8(pos++);\n lastCoordinate += flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR ? x : -x;\n xCoordinates.push(lastCoordinate);\n } else if (flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR) {\n // IS_SAME.\n xCoordinates.push(lastCoordinate);\n } else {\n lastCoordinate += glyf.getInt16(pos);\n pos += 2;\n xCoordinates.push(lastCoordinate);\n }\n\n if (endPtsOfContours[endPtsOfContoursIndex] === i) {\n // Next entry is the first one of a new contour.\n endPtsOfContoursIndex++;\n allXCoordinates.push(xCoordinates);\n xCoordinates = [];\n }\n }\n\n lastCoordinate = 0;\n endPtsOfContoursIndex = 0;\n for (let i = 0; i < numberOfPt; i++) {\n const flag = flags[i];\n if (flag & Y_SHORT_VECTOR) {\n // 8-bits unsigned value.\n const y = glyf.getUint8(pos++);\n lastCoordinate += flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR ? y : -y;\n yCoordinates.push(lastCoordinate);\n } else if (flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR) {\n // IS_SAME.\n yCoordinates.push(lastCoordinate);\n } else {\n lastCoordinate += glyf.getInt16(pos);\n pos += 2;\n yCoordinates.push(lastCoordinate);\n }\n\n pointFlags.push((flag & ON_CURVE_POINT) | (flag & OVERLAP_SIMPLE));\n\n if (endPtsOfContours[endPtsOfContoursIndex] === i) {\n // Next entry is the first one of a new contour.\n xCoordinates = allXCoordinates[endPtsOfContoursIndex];\n endPtsOfContoursIndex++;\n contours.push(\n new Contour({\n flags: pointFlags,\n xCoordinates,\n yCoordinates,\n })\n );\n yCoordinates = [];\n pointFlags = [];\n }\n }\n\n return new SimpleGlyph({\n contours,\n instructions,\n });\n }\n\n getSize() {\n let size = this.contours.length * 2 + 2 + this.instructions.length;\n let lastX = 0;\n let lastY = 0;\n for (const contour of this.contours) {\n size += contour.flags.length;\n for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {\n const x = contour.xCoordinates[i];\n const y = contour.yCoordinates[i];\n let abs = Math.abs(x - lastX);\n if (abs > 255) {\n size += 2;\n } else if (abs > 0) {\n size += 1;\n }\n lastX = x;\n\n abs = Math.abs(y - lastY);\n if (abs > 255) {\n size += 2;\n } else if (abs > 0) {\n size += 1;\n }\n lastY = y;\n }\n }\n return size;\n }\n\n write(pos, buf) {\n const spos = pos;\n const xCoordinates = [];\n const yCoordinates = [];\n const flags = [];\n let lastX = 0;\n let lastY = 0;\n\n for (const contour of this.contours) {\n for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {\n let flag = contour.flags[i];\n const x = contour.xCoordinates[i];\n let delta = x - lastX;\n if (delta === 0) {\n flag |= X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR;\n xCoordinates.push(0);\n } else {\n const abs = Math.abs(delta);\n if (abs <= 255) {\n flag |=\n delta >= 0\n ? X_SHORT_VECTOR | X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR\n : X_SHORT_VECTOR;\n xCoordinates.push(abs);\n } else {\n xCoordinates.push(delta);\n }\n }\n lastX = x;\n\n const y = contour.yCoordinates[i];\n delta = y - lastY;\n if (delta === 0) {\n flag |= Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR;\n yCoordinates.push(0);\n } else {\n const abs = Math.abs(delta);\n if (abs <= 255) {\n flag |=\n delta >= 0\n ? Y_SHORT_VECTOR | Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR\n : Y_SHORT_VECTOR;\n yCoordinates.push(abs);\n } else {\n yCoordinates.push(delta);\n }\n }\n lastY = y;\n\n flags.push(flag);\n }\n\n // Write endPtsOfContours entry.\n buf.setUint16(pos, xCoordinates.length - 1);\n pos += 2;\n }\n\n // Write instructionLength.\n buf.setUint16(pos, this.instructions.length);\n pos += 2;\n if (this.instructions.length) {\n // Write instructions.\n new Uint8Array(buf.buffer, 0, buf.buffer.byteLength).set(\n this.instructions,\n pos\n );\n pos += this.instructions.length;\n }\n\n // Write flags.\n for (const flag of flags) {\n buf.setUint8(pos++, flag);\n }\n\n // Write xCoordinates.\n for (let i = 0, ii = xCoordinates.length; i < ii; i++) {\n const x = xCoordinates[i];\n const flag = flags[i];\n if (flag & X_SHORT_VECTOR) {\n buf.setUint8(pos++, x);\n } else if (!(flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR)) {\n buf.setInt16(pos, x);\n pos += 2;\n }\n }\n\n // Write yCoordinates.\n for (let i = 0, ii = yCoordinates.length; i < ii; i++) {\n const y = yCoordinates[i];\n const flag = flags[i];\n if (flag & Y_SHORT_VECTOR) {\n buf.setUint8(pos++, y);\n } else if (!(flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR)) {\n buf.setInt16(pos, y);\n pos += 2;\n }\n }\n\n return pos - spos;\n }\n\n scale(x, factor) {\n for (const contour of this.contours) {\n if (contour.xCoordinates.length === 0) {\n continue;\n }\n\n for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {\n contour.xCoordinates[i] = Math.round(\n x + (contour.xCoordinates[i] - x) * factor\n );\n }\n }\n }\n}\n\nclass CompositeGlyph {\n constructor({\n flags,\n glyphIndex,\n argument1,\n argument2,\n transf,\n instructions,\n }) {\n this.flags = flags;\n this.glyphIndex = glyphIndex;\n this.argument1 = argument1;\n this.argument2 = argument2;\n this.transf = transf;\n this.instructions = instructions;\n }\n\n static parse(pos, glyf) {\n const spos = pos;\n const transf = [];\n let flags = glyf.getUint16(pos);\n const glyphIndex = glyf.getUint16(pos + 2);\n pos += 4;\n\n let argument1, argument2;\n if (flags & ARG_1_AND_2_ARE_WORDS) {\n if (flags & ARGS_ARE_XY_VALUES) {\n argument1 = glyf.getInt16(pos);\n argument2 = glyf.getInt16(pos + 2);\n } else {\n argument1 = glyf.getUint16(pos);\n argument2 = glyf.getUint16(pos + 2);\n }\n pos += 4;\n flags ^= ARG_1_AND_2_ARE_WORDS;\n } else {\n if (flags & ARGS_ARE_XY_VALUES) {\n argument1 = glyf.getInt8(pos);\n argument2 = glyf.getInt8(pos + 1);\n } else {\n argument1 = glyf.getUint8(pos);\n argument2 = glyf.getUint8(pos + 1);\n }\n pos += 2;\n }\n\n if (flags & WE_HAVE_A_SCALE) {\n // Single F2.14.\n transf.push(glyf.getUint16(pos));\n pos += 2;\n } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) {\n // Two F2.14.\n transf.push(glyf.getUint16(pos), glyf.getUint16(pos + 2));\n pos += 4;\n } else if (flags & WE_HAVE_A_TWO_BY_TWO) {\n // Four F2.14.\n transf.push(\n glyf.getUint16(pos),\n glyf.getUint16(pos + 2),\n glyf.getUint16(pos + 4),\n glyf.getUint16(pos + 6)\n );\n pos += 8;\n }\n\n let instructions = null;\n if (flags & WE_HAVE_INSTRUCTIONS) {\n const instructionLength = glyf.getUint16(pos);\n pos += 2;\n instructions = new Uint8Array(glyf).slice(pos, pos + instructionLength);\n pos += instructionLength;\n }\n\n return [\n pos - spos,\n new CompositeGlyph({\n flags,\n glyphIndex,\n argument1,\n argument2,\n transf,\n instructions,\n }),\n ];\n }\n\n getSize() {\n let size = 2 + 2 + this.transf.length * 2;\n if (this.flags & WE_HAVE_INSTRUCTIONS) {\n size += 2 + this.instructions.length;\n }\n\n size += 2;\n if (this.flags & 2) {\n // Arguments are signed.\n if (\n !(\n this.argument1 >= -128 &&\n this.argument1 <= 127 &&\n this.argument2 >= -128 &&\n this.argument2 <= 127\n )\n ) {\n size += 2;\n }\n } else {\n if (\n !(\n this.argument1 >= 0 &&\n this.argument1 <= 255 &&\n this.argument2 >= 0 &&\n this.argument2 <= 255\n )\n ) {\n size += 2;\n }\n }\n\n return size;\n }\n\n write(pos, buf) {\n const spos = pos;\n\n if (this.flags & ARGS_ARE_XY_VALUES) {\n // Arguments are signed.\n if (\n !(\n this.argument1 >= -128 &&\n this.argument1 <= 127 &&\n this.argument2 >= -128 &&\n this.argument2 <= 127\n )\n ) {\n this.flags |= ARG_1_AND_2_ARE_WORDS;\n }\n } else {\n if (\n !(\n this.argument1 >= 0 &&\n this.argument1 <= 255 &&\n this.argument2 >= 0 &&\n this.argument2 <= 255\n )\n ) {\n this.flags |= ARG_1_AND_2_ARE_WORDS;\n }\n }\n\n buf.setUint16(pos, this.flags);\n buf.setUint16(pos + 2, this.glyphIndex);\n pos += 4;\n\n if (this.flags & ARG_1_AND_2_ARE_WORDS) {\n if (this.flags & ARGS_ARE_XY_VALUES) {\n buf.setInt16(pos, this.argument1);\n buf.setInt16(pos + 2, this.argument2);\n } else {\n buf.setUint16(pos, this.argument1);\n buf.setUint16(pos + 2, this.argument2);\n }\n pos += 4;\n } else {\n buf.setUint8(pos, this.argument1);\n buf.setUint8(pos + 1, this.argument2);\n pos += 2;\n }\n\n if (this.flags & WE_HAVE_INSTRUCTIONS) {\n buf.setUint16(pos, this.instructions.length);\n pos += 2;\n // Write instructions.\n if (this.instructions.length) {\n new Uint8Array(buf.buffer, 0, buf.buffer.byteLength).set(\n this.instructions,\n pos\n );\n pos += this.instructions.length;\n }\n }\n\n return pos - spos;\n }\n\n scale(x, factor) {}\n}\n\nexport { GlyfTable };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { readUint32 } from \"./core_utils.js\";\nimport { string32 } from \"../shared/util.js\";\n\nfunction writeInt16(dest, offset, num) {\n dest[offset] = (num >> 8) & 0xff;\n dest[offset + 1] = num & 0xff;\n}\n\nfunction writeInt32(dest, offset, num) {\n dest[offset] = (num >> 24) & 0xff;\n dest[offset + 1] = (num >> 16) & 0xff;\n dest[offset + 2] = (num >> 8) & 0xff;\n dest[offset + 3] = num & 0xff;\n}\n\nfunction writeData(dest, offset, data) {\n if (data instanceof Uint8Array) {\n dest.set(data, offset);\n } else if (typeof data === \"string\") {\n for (let i = 0, ii = data.length; i < ii; i++) {\n dest[offset++] = data.charCodeAt(i) & 0xff;\n }\n } else {\n // treating everything else as array\n for (let i = 0, ii = data.length; i < ii; i++) {\n dest[offset++] = data[i] & 0xff;\n }\n }\n}\n\nconst OTF_HEADER_SIZE = 12;\nconst OTF_TABLE_ENTRY_SIZE = 16;\n\nclass OpenTypeFileBuilder {\n constructor(sfnt) {\n this.sfnt = sfnt;\n this.tables = Object.create(null);\n }\n\n static getSearchParams(entriesCount, entrySize) {\n let maxPower2 = 1,\n log2 = 0;\n while ((maxPower2 ^ entriesCount) > maxPower2) {\n maxPower2 <<= 1;\n log2++;\n }\n const searchRange = maxPower2 * entrySize;\n return {\n range: searchRange,\n entry: log2,\n rangeShift: entrySize * entriesCount - searchRange,\n };\n }\n\n toArray() {\n let sfnt = this.sfnt;\n\n // Tables needs to be written by ascendant alphabetic order\n const tables = this.tables;\n const tablesNames = Object.keys(tables);\n tablesNames.sort();\n const numTables = tablesNames.length;\n\n let i, j, jj, table, tableName;\n // layout the tables data\n let offset = OTF_HEADER_SIZE + numTables * OTF_TABLE_ENTRY_SIZE;\n const tableOffsets = [offset];\n for (i = 0; i < numTables; i++) {\n table = tables[tablesNames[i]];\n const paddedLength = ((table.length + 3) & ~3) >>> 0;\n offset += paddedLength;\n tableOffsets.push(offset);\n }\n\n const file = new Uint8Array(offset);\n // write the table data first (mostly for checksum)\n for (i = 0; i < numTables; i++) {\n table = tables[tablesNames[i]];\n writeData(file, tableOffsets[i], table);\n }\n\n // sfnt version (4 bytes)\n if (sfnt === \"true\") {\n // Windows hates the Mac TrueType sfnt version number\n sfnt = string32(0x00010000);\n }\n file[0] = sfnt.charCodeAt(0) & 0xff;\n file[1] = sfnt.charCodeAt(1) & 0xff;\n file[2] = sfnt.charCodeAt(2) & 0xff;\n file[3] = sfnt.charCodeAt(3) & 0xff;\n\n // numTables (2 bytes)\n writeInt16(file, 4, numTables);\n\n const searchParams = OpenTypeFileBuilder.getSearchParams(numTables, 16);\n\n // searchRange (2 bytes)\n writeInt16(file, 6, searchParams.range);\n // entrySelector (2 bytes)\n writeInt16(file, 8, searchParams.entry);\n // rangeShift (2 bytes)\n writeInt16(file, 10, searchParams.rangeShift);\n\n offset = OTF_HEADER_SIZE;\n // writing table entries\n for (i = 0; i < numTables; i++) {\n tableName = tablesNames[i];\n file[offset] = tableName.charCodeAt(0) & 0xff;\n file[offset + 1] = tableName.charCodeAt(1) & 0xff;\n file[offset + 2] = tableName.charCodeAt(2) & 0xff;\n file[offset + 3] = tableName.charCodeAt(3) & 0xff;\n\n // checksum\n let checksum = 0;\n for (j = tableOffsets[i], jj = tableOffsets[i + 1]; j < jj; j += 4) {\n const quad = readUint32(file, j);\n checksum = (checksum + quad) >>> 0;\n }\n writeInt32(file, offset + 4, checksum);\n\n // offset\n writeInt32(file, offset + 8, tableOffsets[i]);\n // length\n writeInt32(file, offset + 12, tables[tableName].length);\n\n offset += OTF_TABLE_ENTRY_SIZE;\n }\n return file;\n }\n\n addTable(tag, data) {\n if (tag in this.tables) {\n throw new Error(\"Table \" + tag + \" already exists\");\n }\n this.tables[tag] = data;\n }\n}\n\nexport { OpenTypeFileBuilder };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n CFF,\n CFFCharset,\n CFFCompiler,\n CFFHeader,\n CFFIndex,\n CFFPrivateDict,\n CFFStandardStrings,\n CFFStrings,\n CFFTopDict,\n} from \"./cff_parser.js\";\nimport { SEAC_ANALYSIS_ENABLED, type1FontGlyphMapping } from \"./fonts_utils.js\";\nimport { isWhiteSpace } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\nimport { Type1Parser } from \"./type1_parser.js\";\nimport { warn } from \"../shared/util.js\";\n\nfunction findBlock(streamBytes, signature, startIndex) {\n const streamBytesLength = streamBytes.length;\n const signatureLength = signature.length;\n const scanLength = streamBytesLength - signatureLength;\n\n let i = startIndex,\n found = false;\n while (i < scanLength) {\n let j = 0;\n while (j < signatureLength && streamBytes[i + j] === signature[j]) {\n j++;\n }\n if (j >= signatureLength) {\n // `signature` found, skip over whitespace.\n i += j;\n while (i < streamBytesLength && isWhiteSpace(streamBytes[i])) {\n i++;\n }\n found = true;\n break;\n }\n i++;\n }\n return {\n found,\n length: i,\n };\n}\n\nfunction getHeaderBlock(stream, suggestedLength) {\n const EEXEC_SIGNATURE = [0x65, 0x65, 0x78, 0x65, 0x63];\n\n const streamStartPos = stream.pos; // Save the initial stream position.\n let headerBytes, headerBytesLength, block;\n try {\n headerBytes = stream.getBytes(suggestedLength);\n headerBytesLength = headerBytes.length;\n } catch (ex) {\n // Ignore errors if the `suggestedLength` is huge enough that a Uint8Array\n // cannot hold the result of `getBytes`, and fallback to simply checking\n // the entire stream (fixes issue3928.pdf).\n }\n\n if (headerBytesLength === suggestedLength) {\n // Most of the time `suggestedLength` is correct, so to speed things up we\n // initially only check the last few bytes to see if the header was found.\n // Otherwise we (potentially) check the entire stream to prevent errors in\n // `Type1Parser` (fixes issue5686.pdf).\n block = findBlock(\n headerBytes,\n EEXEC_SIGNATURE,\n suggestedLength - 2 * EEXEC_SIGNATURE.length\n );\n\n if (block.found && block.length === suggestedLength) {\n return {\n stream: new Stream(headerBytes),\n length: suggestedLength,\n };\n }\n }\n warn('Invalid \"Length1\" property in Type1 font -- trying to recover.');\n stream.pos = streamStartPos; // Reset the stream position.\n\n const SCAN_BLOCK_LENGTH = 2048;\n let actualLength;\n while (true) {\n const scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n block = findBlock(scanBytes, EEXEC_SIGNATURE, 0);\n\n if (block.length === 0) {\n break;\n }\n stream.pos += block.length; // Update the stream position.\n\n if (block.found) {\n actualLength = stream.pos - streamStartPos;\n break;\n }\n }\n stream.pos = streamStartPos; // Reset the stream position.\n\n if (actualLength) {\n return {\n stream: new Stream(stream.getBytes(actualLength)),\n length: actualLength,\n };\n }\n warn('Unable to recover \"Length1\" property in Type1 font -- using as is.');\n return {\n stream: new Stream(stream.getBytes(suggestedLength)),\n length: suggestedLength,\n };\n}\n\nfunction getEexecBlock(stream, suggestedLength) {\n // We should ideally parse the eexec block to ensure that `suggestedLength`\n // is correct, so we don't truncate the block data if it's too small.\n // However, this would also require checking if the fixed-content portion\n // exists (using the 'Length3' property), and ensuring that it's valid.\n //\n // Given that `suggestedLength` almost always is correct, all the validation\n // would require a great deal of unnecessary parsing for most fonts.\n // To save time, we always fetch the entire stream instead, which also avoid\n // issues if `suggestedLength` is huge (see comment in `getHeaderBlock`).\n //\n // NOTE: This means that the function can include the fixed-content portion\n // in the returned eexec block. In practice this does *not* seem to matter,\n // since `Type1Parser_extractFontProgram` will skip over any non-commands.\n const eexecBytes = stream.getBytes();\n return {\n stream: new Stream(eexecBytes),\n length: eexecBytes.length,\n };\n}\n\n/**\n * Type1Font is also a CIDFontType0.\n */\nclass Type1Font {\n constructor(name, file, properties) {\n // Some bad generators embed pfb file as is, we have to strip 6-byte header.\n // Also, length1 and length2 might be off by 6 bytes as well.\n // http://www.math.ubc.ca/~cass/piscript/type1.pdf\n const PFB_HEADER_SIZE = 6;\n let headerBlockLength = properties.length1;\n let eexecBlockLength = properties.length2;\n let pfbHeader = file.peekBytes(PFB_HEADER_SIZE);\n const pfbHeaderPresent = pfbHeader[0] === 0x80 && pfbHeader[1] === 0x01;\n if (pfbHeaderPresent) {\n file.skip(PFB_HEADER_SIZE);\n headerBlockLength =\n (pfbHeader[5] << 24) |\n (pfbHeader[4] << 16) |\n (pfbHeader[3] << 8) |\n pfbHeader[2];\n }\n\n // Get the data block containing glyphs and subrs information\n const headerBlock = getHeaderBlock(file, headerBlockLength);\n const headerBlockParser = new Type1Parser(\n headerBlock.stream,\n false,\n SEAC_ANALYSIS_ENABLED\n );\n headerBlockParser.extractFontHeader(properties);\n\n if (pfbHeaderPresent) {\n pfbHeader = file.getBytes(PFB_HEADER_SIZE);\n eexecBlockLength =\n (pfbHeader[5] << 24) |\n (pfbHeader[4] << 16) |\n (pfbHeader[3] << 8) |\n pfbHeader[2];\n }\n\n // Decrypt the data blocks and retrieve it's content\n const eexecBlock = getEexecBlock(file, eexecBlockLength);\n const eexecBlockParser = new Type1Parser(\n eexecBlock.stream,\n true,\n SEAC_ANALYSIS_ENABLED\n );\n const data = eexecBlockParser.extractFontProgram(properties);\n for (const key in data.properties) {\n properties[key] = data.properties[key];\n }\n\n const charstrings = data.charstrings;\n const type2Charstrings = this.getType2Charstrings(charstrings);\n const subrs = this.getType2Subrs(data.subrs);\n\n this.charstrings = charstrings;\n this.data = this.wrap(\n name,\n type2Charstrings,\n this.charstrings,\n subrs,\n properties\n );\n this.seacs = this.getSeacs(data.charstrings);\n }\n\n get numGlyphs() {\n return this.charstrings.length + 1;\n }\n\n getCharset() {\n const charset = [\".notdef\"];\n const charstrings = this.charstrings;\n for (let glyphId = 0; glyphId < charstrings.length; glyphId++) {\n charset.push(charstrings[glyphId].glyphName);\n }\n return charset;\n }\n\n getGlyphMapping(properties) {\n const charstrings = this.charstrings;\n\n if (properties.composite) {\n const charCodeToGlyphId = Object.create(null);\n // Map CIDs directly to GIDs.\n for (\n let glyphId = 0, charstringsLen = charstrings.length;\n glyphId < charstringsLen;\n glyphId++\n ) {\n const charCode = properties.cMap.charCodeOf(glyphId);\n // Add 1 because glyph 0 is duplicated.\n charCodeToGlyphId[charCode] = glyphId + 1;\n }\n return charCodeToGlyphId;\n }\n\n const glyphNames = [\".notdef\"];\n let builtInEncoding, glyphId;\n for (glyphId = 0; glyphId < charstrings.length; glyphId++) {\n glyphNames.push(charstrings[glyphId].glyphName);\n }\n const encoding = properties.builtInEncoding;\n if (encoding) {\n builtInEncoding = Object.create(null);\n for (const charCode in encoding) {\n glyphId = glyphNames.indexOf(encoding[charCode]);\n if (glyphId >= 0) {\n builtInEncoding[charCode] = glyphId;\n }\n }\n }\n\n return type1FontGlyphMapping(properties, builtInEncoding, glyphNames);\n }\n\n hasGlyphId(id) {\n if (id < 0 || id >= this.numGlyphs) {\n return false;\n }\n if (id === 0) {\n // notdef is always defined.\n return true;\n }\n const glyph = this.charstrings[id - 1];\n return glyph.charstring.length > 0;\n }\n\n getSeacs(charstrings) {\n const seacMap = [];\n for (let i = 0, ii = charstrings.length; i < ii; i++) {\n const charstring = charstrings[i];\n if (charstring.seac) {\n // Offset by 1 for .notdef\n seacMap[i + 1] = charstring.seac;\n }\n }\n return seacMap;\n }\n\n getType2Charstrings(type1Charstrings) {\n const type2Charstrings = [];\n for (let i = 0, ii = type1Charstrings.length; i < ii; i++) {\n type2Charstrings.push(type1Charstrings[i].charstring);\n }\n return type2Charstrings;\n }\n\n getType2Subrs(type1Subrs) {\n let bias = 0;\n const count = type1Subrs.length;\n if (count < 1133) {\n bias = 107;\n } else if (count < 33769) {\n bias = 1131;\n } else {\n bias = 32768;\n }\n\n // Add a bunch of empty subrs to deal with the Type2 bias\n const type2Subrs = [];\n let i;\n for (i = 0; i < bias; i++) {\n type2Subrs.push([0x0b]);\n }\n\n for (i = 0; i < count; i++) {\n type2Subrs.push(type1Subrs[i]);\n }\n\n return type2Subrs;\n }\n\n wrap(name, glyphs, charstrings, subrs, properties) {\n const cff = new CFF();\n cff.header = new CFFHeader(1, 0, 4, 4);\n\n cff.names = [name];\n\n const topDict = new CFFTopDict();\n // CFF strings IDs 0...390 are predefined names, so refering\n // to entries in our own String INDEX starts at SID 391.\n topDict.setByName(\"version\", 391);\n topDict.setByName(\"Notice\", 392);\n topDict.setByName(\"FullName\", 393);\n topDict.setByName(\"FamilyName\", 394);\n topDict.setByName(\"Weight\", 395);\n topDict.setByName(\"Encoding\", null); // placeholder\n topDict.setByName(\"FontMatrix\", properties.fontMatrix);\n topDict.setByName(\"FontBBox\", properties.bbox);\n topDict.setByName(\"charset\", null); // placeholder\n topDict.setByName(\"CharStrings\", null); // placeholder\n topDict.setByName(\"Private\", null); // placeholder\n cff.topDict = topDict;\n\n const strings = new CFFStrings();\n strings.add(\"Version 0.11\"); // Version\n strings.add(\"See original notice\"); // Notice\n strings.add(name); // FullName\n strings.add(name); // FamilyName\n strings.add(\"Medium\"); // Weight\n cff.strings = strings;\n\n cff.globalSubrIndex = new CFFIndex();\n\n const count = glyphs.length;\n const charsetArray = [\".notdef\"];\n let i, ii;\n for (i = 0; i < count; i++) {\n const glyphName = charstrings[i].glyphName;\n const index = CFFStandardStrings.indexOf(glyphName);\n if (index === -1) {\n strings.add(glyphName);\n }\n charsetArray.push(glyphName);\n }\n cff.charset = new CFFCharset(false, 0, charsetArray);\n\n const charStringsIndex = new CFFIndex();\n charStringsIndex.add([0x8b, 0x0e]); // .notdef\n for (i = 0; i < count; i++) {\n charStringsIndex.add(glyphs[i]);\n }\n cff.charStrings = charStringsIndex;\n\n const privateDict = new CFFPrivateDict();\n privateDict.setByName(\"Subrs\", null); // placeholder\n const fields = [\n \"BlueValues\",\n \"OtherBlues\",\n \"FamilyBlues\",\n \"FamilyOtherBlues\",\n \"StemSnapH\",\n \"StemSnapV\",\n \"BlueShift\",\n \"BlueFuzz\",\n \"BlueScale\",\n \"LanguageGroup\",\n \"ExpansionFactor\",\n \"ForceBold\",\n \"StdHW\",\n \"StdVW\",\n ];\n for (i = 0, ii = fields.length; i < ii; i++) {\n const field = fields[i];\n if (!(field in properties.privateData)) {\n continue;\n }\n const value = properties.privateData[field];\n if (Array.isArray(value)) {\n // All of the private dictionary array data in CFF must be stored as\n // \"delta-encoded\" numbers.\n for (let j = value.length - 1; j > 0; j--) {\n value[j] -= value[j - 1]; // ... difference from previous value\n }\n }\n privateDict.setByName(field, value);\n }\n cff.topDict.privateDict = privateDict;\n\n const subrIndex = new CFFIndex();\n for (i = 0, ii = subrs.length; i < ii; i++) {\n subrIndex.add(subrs[i]);\n }\n privateDict.subrsIndex = subrIndex;\n\n const compiler = new CFFCompiler(cff);\n return compiler.compile();\n }\n}\n\nexport { Type1Font };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getEncoding } from \"./encodings.js\";\nimport { isWhiteSpace } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\nimport { warn } from \"../shared/util.js\";\n\n// Hinting is currently disabled due to unknown problems on windows\n// in tracemonkey and various other pdfs with type1 fonts.\nconst HINTING_ENABLED = false;\n\n/*\n * CharStrings are encoded following the the CharString Encoding sequence\n * describe in Chapter 6 of the \"Adobe Type1 Font Format\" specification.\n * The value in a byte indicates a command, a number, or subsequent bytes\n * that are to be interpreted in a special way.\n *\n * CharString Number Encoding:\n * A CharString byte containing the values from 32 through 255 inclusive\n * indicate an integer. These values are decoded in four ranges.\n *\n * 1. A CharString byte containing a value, v, between 32 and 246 inclusive,\n * indicate the integer v - 139. Thus, the integer values from -107 through\n * 107 inclusive may be encoded in single byte.\n *\n * 2. A CharString byte containing a value, v, between 247 and 250 inclusive,\n * indicates an integer involving the next byte, w, according to the formula:\n * [(v - 247) x 256] + w + 108\n *\n * 3. A CharString byte containing a value, v, between 251 and 254 inclusive,\n * indicates an integer involving the next byte, w, according to the formula:\n * -[(v - 251) * 256] - w - 108\n *\n * 4. A CharString containing the value 255 indicates that the next 4 bytes\n * are a two complement signed integer. The first of these bytes contains the\n * highest order bits, the second byte contains the next higher order bits\n * and the fourth byte contain the lowest order bits.\n *\n *\n * CharString Command Encoding:\n * CharStrings commands are encoded in 1 or 2 bytes.\n *\n * Single byte commands are encoded in 1 byte that contains a value between\n * 0 and 31 inclusive.\n * If a command byte contains the value 12, then the value in the next byte\n * indicates a command. This \"escape\" mechanism allows many extra commands\n * to be encoded and this encoding technique helps to minimize the length of\n * the charStrings.\n */\nconst Type1CharString = (function Type1CharStringClosure() {\n const COMMAND_MAP = {\n hstem: [1],\n vstem: [3],\n vmoveto: [4],\n rlineto: [5],\n hlineto: [6],\n vlineto: [7],\n rrcurveto: [8],\n callsubr: [10],\n flex: [12, 35],\n drop: [12, 18],\n endchar: [14],\n rmoveto: [21],\n hmoveto: [22],\n vhcurveto: [30],\n hvcurveto: [31],\n };\n\n // eslint-disable-next-line no-shadow\n class Type1CharString {\n constructor() {\n this.width = 0;\n this.lsb = 0;\n this.flexing = false;\n this.output = [];\n this.stack = [];\n }\n\n convert(encoded, subrs, seacAnalysisEnabled) {\n const count = encoded.length;\n let error = false;\n let wx, sbx, subrNumber;\n for (let i = 0; i < count; i++) {\n let value = encoded[i];\n if (value < 32) {\n if (value === 12) {\n value = (value << 8) + encoded[++i];\n }\n switch (value) {\n case 1: // hstem\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.hstem);\n break;\n case 3: // vstem\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.vstem);\n break;\n case 4: // vmoveto\n if (this.flexing) {\n if (this.stack.length < 1) {\n error = true;\n break;\n }\n // Add the dx for flex and but also swap the values so they are\n // the right order.\n const dy = this.stack.pop();\n this.stack.push(0, dy);\n break;\n }\n error = this.executeCommand(1, COMMAND_MAP.vmoveto);\n break;\n case 5: // rlineto\n error = this.executeCommand(2, COMMAND_MAP.rlineto);\n break;\n case 6: // hlineto\n error = this.executeCommand(1, COMMAND_MAP.hlineto);\n break;\n case 7: // vlineto\n error = this.executeCommand(1, COMMAND_MAP.vlineto);\n break;\n case 8: // rrcurveto\n error = this.executeCommand(6, COMMAND_MAP.rrcurveto);\n break;\n case 9: // closepath\n // closepath is a Type1 command that does not take argument and is\n // useless in Type2 and it can simply be ignored.\n this.stack = [];\n break;\n case 10: // callsubr\n if (this.stack.length < 1) {\n error = true;\n break;\n }\n subrNumber = this.stack.pop();\n if (!subrs[subrNumber]) {\n error = true;\n break;\n }\n error = this.convert(\n subrs[subrNumber],\n subrs,\n seacAnalysisEnabled\n );\n break;\n case 11: // return\n return error;\n case 13: // hsbw\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n // To convert to type2 we have to move the width value to the\n // first part of the charstring and then use hmoveto with lsb.\n wx = this.stack.pop();\n sbx = this.stack.pop();\n this.lsb = sbx;\n this.width = wx;\n this.stack.push(wx, sbx);\n error = this.executeCommand(2, COMMAND_MAP.hmoveto);\n break;\n case 14: // endchar\n this.output.push(COMMAND_MAP.endchar[0]);\n break;\n case 21: // rmoveto\n if (this.flexing) {\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.rmoveto);\n break;\n case 22: // hmoveto\n if (this.flexing) {\n // Add the dy for flex.\n this.stack.push(0);\n break;\n }\n error = this.executeCommand(1, COMMAND_MAP.hmoveto);\n break;\n case 30: // vhcurveto\n error = this.executeCommand(4, COMMAND_MAP.vhcurveto);\n break;\n case 31: // hvcurveto\n error = this.executeCommand(4, COMMAND_MAP.hvcurveto);\n break;\n case (12 << 8) + 0: // dotsection\n // dotsection is a Type1 command to specify some hinting feature\n // for dots that do not take a parameter and it can safely be\n // ignored for Type2.\n this.stack = [];\n break;\n case (12 << 8) + 1: // vstem3\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n // [vh]stem3 are Type1 only and Type2 supports [vh]stem with\n // multiple parameters, so instead of returning [vh]stem3 take a\n // shortcut and return [vhstem] instead.\n error = this.executeCommand(2, COMMAND_MAP.vstem);\n break;\n case (12 << 8) + 2: // hstem3\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n // See vstem3.\n error = this.executeCommand(2, COMMAND_MAP.hstem);\n break;\n case (12 << 8) + 6: // seac\n // seac is like type 2's special endchar but it doesn't use the\n // first argument asb, so remove it.\n if (seacAnalysisEnabled) {\n const asb = this.stack[this.stack.length - 5];\n this.seac = this.stack.splice(-4, 4);\n this.seac[0] += this.lsb - asb;\n error = this.executeCommand(0, COMMAND_MAP.endchar);\n } else {\n error = this.executeCommand(4, COMMAND_MAP.endchar);\n }\n break;\n case (12 << 8) + 7: // sbw\n if (this.stack.length < 4) {\n error = true;\n break;\n }\n // To convert to type2 we have to move the width value to the\n // first part of the charstring and then use rmoveto with\n // (dx, dy). The height argument will not be used for vmtx and\n // vhea tables reconstruction -- ignoring it.\n this.stack.pop(); // wy\n wx = this.stack.pop();\n const sby = this.stack.pop();\n sbx = this.stack.pop();\n this.lsb = sbx;\n this.width = wx;\n this.stack.push(wx, sbx, sby);\n error = this.executeCommand(3, COMMAND_MAP.rmoveto);\n break;\n case (12 << 8) + 12: // div\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n const num2 = this.stack.pop();\n const num1 = this.stack.pop();\n this.stack.push(num1 / num2);\n break;\n case (12 << 8) + 16: // callothersubr\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n subrNumber = this.stack.pop();\n const numArgs = this.stack.pop();\n if (subrNumber === 0 && numArgs === 3) {\n const flexArgs = this.stack.splice(this.stack.length - 17, 17);\n this.stack.push(\n flexArgs[2] + flexArgs[0], // bcp1x + rpx\n flexArgs[3] + flexArgs[1], // bcp1y + rpy\n flexArgs[4], // bcp2x\n flexArgs[5], // bcp2y\n flexArgs[6], // p2x\n flexArgs[7], // p2y\n flexArgs[8], // bcp3x\n flexArgs[9], // bcp3y\n flexArgs[10], // bcp4x\n flexArgs[11], // bcp4y\n flexArgs[12], // p3x\n flexArgs[13], // p3y\n flexArgs[14] // flexDepth\n // 15 = finalx unused by flex\n // 16 = finaly unused by flex\n );\n error = this.executeCommand(13, COMMAND_MAP.flex, true);\n this.flexing = false;\n this.stack.push(flexArgs[15], flexArgs[16]);\n } else if (subrNumber === 1 && numArgs === 0) {\n this.flexing = true;\n }\n break;\n case (12 << 8) + 17: // pop\n // Ignore this since it is only used with othersubr.\n break;\n case (12 << 8) + 33: // setcurrentpoint\n // Ignore for now.\n this.stack = [];\n break;\n default:\n warn('Unknown type 1 charstring command of \"' + value + '\"');\n break;\n }\n if (error) {\n break;\n }\n continue;\n } else if (value <= 246) {\n value -= 139;\n } else if (value <= 250) {\n value = (value - 247) * 256 + encoded[++i] + 108;\n } else if (value <= 254) {\n value = -((value - 251) * 256) - encoded[++i] - 108;\n } else {\n value =\n ((encoded[++i] & 0xff) << 24) |\n ((encoded[++i] & 0xff) << 16) |\n ((encoded[++i] & 0xff) << 8) |\n ((encoded[++i] & 0xff) << 0);\n }\n this.stack.push(value);\n }\n return error;\n }\n\n executeCommand(howManyArgs, command, keepStack) {\n const stackLength = this.stack.length;\n if (howManyArgs > stackLength) {\n return true;\n }\n const start = stackLength - howManyArgs;\n for (let i = start; i < stackLength; i++) {\n let value = this.stack[i];\n if (Number.isInteger(value)) {\n this.output.push(28, (value >> 8) & 0xff, value & 0xff);\n } else {\n // fixed point\n value = (65536 * value) | 0;\n this.output.push(\n 255,\n (value >> 24) & 0xff,\n (value >> 16) & 0xff,\n (value >> 8) & 0xff,\n value & 0xff\n );\n }\n }\n this.output.push.apply(this.output, command);\n if (keepStack) {\n this.stack.splice(start, howManyArgs);\n } else {\n this.stack.length = 0;\n }\n return false;\n }\n }\n\n return Type1CharString;\n})();\n\n/*\n * Type1Parser encapsulate the needed code for parsing a Type1 font\n * program. Some of its logic depends on the Type2 charstrings\n * structure.\n * Note: this doesn't really parse the font since that would require evaluation\n * of PostScript, but it is possible in most cases to extract what we need\n * without a full parse.\n */\nconst Type1Parser = (function Type1ParserClosure() {\n /*\n * Decrypt a Sequence of Ciphertext Bytes to Produce the Original Sequence\n * of Plaintext Bytes. The function took a key as a parameter which can be\n * for decrypting the eexec block of for decoding charStrings.\n */\n const EEXEC_ENCRYPT_KEY = 55665;\n const CHAR_STRS_ENCRYPT_KEY = 4330;\n\n function isHexDigit(code) {\n return (\n (code >= 48 && code <= 57) || // '0'-'9'\n (code >= 65 && code <= 70) || // 'A'-'F'\n (code >= 97 && code <= 102) // 'a'-'f'\n );\n }\n\n function decrypt(data, key, discardNumber) {\n if (discardNumber >= data.length) {\n return new Uint8Array(0);\n }\n const c1 = 52845,\n c2 = 22719;\n let r = key | 0,\n i,\n j;\n for (i = 0; i < discardNumber; i++) {\n r = ((data[i] + r) * c1 + c2) & ((1 << 16) - 1);\n }\n const count = data.length - discardNumber;\n const decrypted = new Uint8Array(count);\n for (i = discardNumber, j = 0; j < count; i++, j++) {\n const value = data[i];\n decrypted[j] = value ^ (r >> 8);\n r = ((value + r) * c1 + c2) & ((1 << 16) - 1);\n }\n return decrypted;\n }\n\n function decryptAscii(data, key, discardNumber) {\n const c1 = 52845,\n c2 = 22719;\n let r = key | 0;\n const count = data.length,\n maybeLength = count >>> 1;\n const decrypted = new Uint8Array(maybeLength);\n let i, j;\n for (i = 0, j = 0; i < count; i++) {\n const digit1 = data[i];\n if (!isHexDigit(digit1)) {\n continue;\n }\n i++;\n let digit2;\n while (i < count && !isHexDigit((digit2 = data[i]))) {\n i++;\n }\n if (i < count) {\n const value = parseInt(String.fromCharCode(digit1, digit2), 16);\n decrypted[j++] = value ^ (r >> 8);\n r = ((value + r) * c1 + c2) & ((1 << 16) - 1);\n }\n }\n return decrypted.slice(discardNumber, j);\n }\n\n function isSpecial(c) {\n return (\n c === /* '/' = */ 0x2f ||\n c === /* '[' = */ 0x5b ||\n c === /* ']' = */ 0x5d ||\n c === /* '{' = */ 0x7b ||\n c === /* '}' = */ 0x7d ||\n c === /* '(' = */ 0x28 ||\n c === /* ')' = */ 0x29\n );\n }\n\n // eslint-disable-next-line no-shadow\n class Type1Parser {\n constructor(stream, encrypted, seacAnalysisEnabled) {\n if (encrypted) {\n const data = stream.getBytes();\n const isBinary = !(\n (isHexDigit(data[0]) || isWhiteSpace(data[0])) &&\n isHexDigit(data[1]) &&\n isHexDigit(data[2]) &&\n isHexDigit(data[3]) &&\n isHexDigit(data[4]) &&\n isHexDigit(data[5]) &&\n isHexDigit(data[6]) &&\n isHexDigit(data[7])\n );\n stream = new Stream(\n isBinary\n ? decrypt(data, EEXEC_ENCRYPT_KEY, 4)\n : decryptAscii(data, EEXEC_ENCRYPT_KEY, 4)\n );\n }\n this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n\n this.stream = stream;\n this.nextChar();\n }\n\n readNumberArray() {\n this.getToken(); // read '[' or '{' (arrays can start with either)\n const array = [];\n while (true) {\n const token = this.getToken();\n if (token === null || token === \"]\" || token === \"}\") {\n break;\n }\n array.push(parseFloat(token || 0));\n }\n return array;\n }\n\n readNumber() {\n const token = this.getToken();\n return parseFloat(token || 0);\n }\n\n readInt() {\n // Use '| 0' to prevent setting a double into length such as the double\n // does not flow into the loop variable.\n const token = this.getToken();\n return parseInt(token || 0, 10) | 0;\n }\n\n readBoolean() {\n const token = this.getToken();\n // Use 1 and 0 since that's what type2 charstrings use.\n return token === \"true\" ? 1 : 0;\n }\n\n nextChar() {\n return (this.currentChar = this.stream.getByte());\n }\n\n prevChar() {\n this.stream.skip(-2);\n return (this.currentChar = this.stream.getByte());\n }\n\n getToken() {\n // Eat whitespace and comments.\n let comment = false;\n let ch = this.currentChar;\n while (true) {\n if (ch === -1) {\n return null;\n }\n\n if (comment) {\n if (ch === 0x0a || ch === 0x0d) {\n comment = false;\n }\n } else if (ch === /* '%' = */ 0x25) {\n comment = true;\n } else if (!isWhiteSpace(ch)) {\n break;\n }\n ch = this.nextChar();\n }\n if (isSpecial(ch)) {\n this.nextChar();\n return String.fromCharCode(ch);\n }\n let token = \"\";\n do {\n token += String.fromCharCode(ch);\n ch = this.nextChar();\n } while (ch >= 0 && !isWhiteSpace(ch) && !isSpecial(ch));\n return token;\n }\n\n readCharStrings(bytes, lenIV) {\n if (lenIV === -1) {\n // This isn't in the spec, but Adobe's tx program handles -1\n // as plain text.\n return bytes;\n }\n return decrypt(bytes, CHAR_STRS_ENCRYPT_KEY, lenIV);\n }\n\n /*\n * Returns an object containing a Subrs array and a CharStrings\n * array extracted from and eexec encrypted block of data\n */\n extractFontProgram(properties) {\n const stream = this.stream;\n\n const subrs = [],\n charstrings = [];\n const privateData = Object.create(null);\n privateData.lenIV = 4;\n const program = {\n subrs: [],\n charstrings: [],\n properties: {\n privateData,\n },\n };\n let token, length, data, lenIV, encoded;\n while ((token = this.getToken()) !== null) {\n if (token !== \"/\") {\n continue;\n }\n token = this.getToken();\n switch (token) {\n case \"CharStrings\":\n // The number immediately following CharStrings must be greater or\n // equal to the number of CharStrings.\n this.getToken();\n this.getToken(); // read in 'dict'\n this.getToken(); // read in 'dup'\n this.getToken(); // read in 'begin'\n while (true) {\n token = this.getToken();\n if (token === null || token === \"end\") {\n break;\n }\n\n if (token !== \"/\") {\n continue;\n }\n const glyph = this.getToken();\n length = this.readInt();\n this.getToken(); // read in 'RD' or '-|'\n data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n lenIV = program.properties.privateData.lenIV;\n encoded = this.readCharStrings(data, lenIV);\n this.nextChar();\n token = this.getToken(); // read in 'ND' or '|-'\n if (token === \"noaccess\") {\n this.getToken(); // read in 'def'\n } else if (token === \"/\") {\n // The expected 'ND' or '|-' token is missing, avoid swallowing\n // the start of the next glyph (fixes issue14462_reduced.pdf).\n this.prevChar();\n }\n charstrings.push({\n glyph,\n encoded,\n });\n }\n break;\n case \"Subrs\":\n this.readInt(); // num\n this.getToken(); // read in 'array'\n while (this.getToken() === \"dup\") {\n const index = this.readInt();\n length = this.readInt();\n this.getToken(); // read in 'RD' or '-|'\n data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n lenIV = program.properties.privateData.lenIV;\n encoded = this.readCharStrings(data, lenIV);\n this.nextChar();\n token = this.getToken(); // read in 'NP' or '|'\n if (token === \"noaccess\") {\n this.getToken(); // read in 'put'\n }\n subrs[index] = encoded;\n }\n break;\n case \"BlueValues\":\n case \"OtherBlues\":\n case \"FamilyBlues\":\n case \"FamilyOtherBlues\":\n const blueArray = this.readNumberArray();\n // *Blue* values may contain invalid data: disables reading of\n // those values when hinting is disabled.\n if (\n blueArray.length > 0 &&\n blueArray.length % 2 === 0 &&\n HINTING_ENABLED\n ) {\n program.properties.privateData[token] = blueArray;\n }\n break;\n case \"StemSnapH\":\n case \"StemSnapV\":\n program.properties.privateData[token] = this.readNumberArray();\n break;\n case \"StdHW\":\n case \"StdVW\":\n program.properties.privateData[token] = this.readNumberArray()[0];\n break;\n case \"BlueShift\":\n case \"lenIV\":\n case \"BlueFuzz\":\n case \"BlueScale\":\n case \"LanguageGroup\":\n case \"ExpansionFactor\":\n program.properties.privateData[token] = this.readNumber();\n break;\n case \"ForceBold\":\n program.properties.privateData[token] = this.readBoolean();\n break;\n }\n }\n\n for (let i = 0; i < charstrings.length; i++) {\n const glyph = charstrings[i].glyph;\n encoded = charstrings[i].encoded;\n const charString = new Type1CharString();\n const error = charString.convert(\n encoded,\n subrs,\n this.seacAnalysisEnabled\n );\n let output = charString.output;\n if (error) {\n // It seems when FreeType encounters an error while evaluating a glyph\n // that it completely ignores the glyph so we'll mimic that behaviour\n // here and put an endchar to make the validator happy.\n output = [14];\n }\n const charStringObject = {\n glyphName: glyph,\n charstring: output,\n width: charString.width,\n lsb: charString.lsb,\n seac: charString.seac,\n };\n if (glyph === \".notdef\") {\n // Make sure .notdef is at index zero (issue #11477).\n program.charstrings.unshift(charStringObject);\n } else {\n program.charstrings.push(charStringObject);\n }\n\n // Attempt to replace missing widths, from the font dictionary /Widths\n // entry, with ones from the font data (fixes issue11150_reduced.pdf).\n if (properties.builtInEncoding) {\n const index = properties.builtInEncoding.indexOf(glyph);\n if (\n index > -1 &&\n properties.widths[index] === undefined &&\n index >= properties.firstChar &&\n index <= properties.lastChar\n ) {\n properties.widths[index] = charString.width;\n }\n }\n }\n\n return program;\n }\n\n extractFontHeader(properties) {\n let token;\n while ((token = this.getToken()) !== null) {\n if (token !== \"/\") {\n continue;\n }\n token = this.getToken();\n switch (token) {\n case \"FontMatrix\":\n const matrix = this.readNumberArray();\n properties.fontMatrix = matrix;\n break;\n case \"Encoding\":\n const encodingArg = this.getToken();\n let encoding;\n if (!/^\\d+$/.test(encodingArg)) {\n // encoding name is specified\n encoding = getEncoding(encodingArg);\n } else {\n encoding = [];\n const size = parseInt(encodingArg, 10) | 0;\n this.getToken(); // read in 'array'\n\n for (let j = 0; j < size; j++) {\n token = this.getToken();\n // skipping till first dup or def (e.g. ignoring for statement)\n while (token !== \"dup\" && token !== \"def\") {\n token = this.getToken();\n if (token === null) {\n return; // invalid header\n }\n }\n if (token === \"def\") {\n break; // read all array data\n }\n const index = this.readInt();\n this.getToken(); // read in '/'\n const glyph = this.getToken();\n encoding[index] = glyph;\n this.getToken(); // read the in 'put'\n }\n }\n properties.builtInEncoding = encoding;\n break;\n case \"FontBBox\":\n const fontBBox = this.readNumberArray();\n // adjusting ascent/descent\n properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n properties.ascentScaled = true;\n break;\n }\n }\n }\n }\n\n return Type1Parser;\n})();\n\nexport { Type1Parser };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n FormatError,\n info,\n shadow,\n unreachable,\n UNSUPPORTED_FEATURES,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { MissingDataException } from \"./core_utils.js\";\n\nconst ShadingType = {\n FUNCTION_BASED: 1,\n AXIAL: 2,\n RADIAL: 3,\n FREE_FORM_MESH: 4,\n LATTICE_FORM_MESH: 5,\n COONS_PATCH_MESH: 6,\n TENSOR_PATCH_MESH: 7,\n};\n\nclass Pattern {\n constructor() {\n unreachable(\"Cannot initialize Pattern.\");\n }\n\n static parseShading(\n shading,\n xref,\n res,\n handler,\n pdfFunctionFactory,\n localColorSpaceCache\n ) {\n const dict = shading instanceof BaseStream ? shading.dict : shading;\n const type = dict.get(\"ShadingType\");\n\n try {\n switch (type) {\n case ShadingType.AXIAL:\n case ShadingType.RADIAL:\n return new RadialAxialShading(\n dict,\n xref,\n res,\n pdfFunctionFactory,\n localColorSpaceCache\n );\n case ShadingType.FREE_FORM_MESH:\n case ShadingType.LATTICE_FORM_MESH:\n case ShadingType.COONS_PATCH_MESH:\n case ShadingType.TENSOR_PATCH_MESH:\n return new MeshShading(\n shading,\n xref,\n res,\n pdfFunctionFactory,\n localColorSpaceCache\n );\n default:\n throw new FormatError(\"Unsupported ShadingType: \" + type);\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.shadingPattern,\n });\n warn(ex);\n return new DummyShading();\n }\n }\n}\n\nclass BaseShading {\n // A small number to offset the first/last color stops so we can insert ones\n // to support extend. Number.MIN_VALUE is too small and breaks the extend.\n static get SMALL_NUMBER() {\n return shadow(this, \"SMALL_NUMBER\", 1e-6);\n }\n\n constructor() {\n if (this.constructor === BaseShading) {\n unreachable(\"Cannot initialize BaseShading.\");\n }\n }\n\n getIR() {\n unreachable(\"Abstract method `getIR` called.\");\n }\n}\n\n// Radial and axial shading have very similar implementations\n// If needed, the implementations can be broken into two classes.\nclass RadialAxialShading extends BaseShading {\n constructor(dict, xref, resources, pdfFunctionFactory, localColorSpaceCache) {\n super();\n this.coordsArr = dict.getArray(\"Coords\");\n this.shadingType = dict.get(\"ShadingType\");\n const cs = ColorSpace.parse({\n cs: dict.getRaw(\"CS\") || dict.getRaw(\"ColorSpace\"),\n xref,\n resources,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n const bbox = dict.getArray(\"BBox\");\n if (Array.isArray(bbox) && bbox.length === 4) {\n this.bbox = Util.normalizeRect(bbox);\n } else {\n this.bbox = null;\n }\n\n let t0 = 0.0,\n t1 = 1.0;\n if (dict.has(\"Domain\")) {\n const domainArr = dict.getArray(\"Domain\");\n t0 = domainArr[0];\n t1 = domainArr[1];\n }\n\n let extendStart = false,\n extendEnd = false;\n if (dict.has(\"Extend\")) {\n const extendArr = dict.getArray(\"Extend\");\n extendStart = extendArr[0];\n extendEnd = extendArr[1];\n }\n\n if (\n this.shadingType === ShadingType.RADIAL &&\n (!extendStart || !extendEnd)\n ) {\n // Radial gradient only currently works if either circle is fully within\n // the other circle.\n const [x1, y1, r1, x2, y2, r2] = this.coordsArr;\n const distance = Math.hypot(x1 - x2, y1 - y2);\n if (r1 <= r2 + distance && r2 <= r1 + distance) {\n warn(\"Unsupported radial gradient.\");\n }\n }\n\n this.extendStart = extendStart;\n this.extendEnd = extendEnd;\n\n const fnObj = dict.getRaw(\"Function\");\n const fn = pdfFunctionFactory.createFromArray(fnObj);\n\n // 10 samples seems good enough for now, but probably won't work\n // if there are sharp color changes. Ideally, we would implement\n // the spec faithfully and add lossless optimizations.\n const NUMBER_OF_SAMPLES = 10;\n const step = (t1 - t0) / NUMBER_OF_SAMPLES;\n\n const colorStops = (this.colorStops = []);\n\n // Protect against bad domains.\n if (t0 >= t1 || step <= 0) {\n // Acrobat doesn't seem to handle these cases so we'll ignore for\n // now.\n info(\"Bad shading domain.\");\n return;\n }\n\n const color = new Float32Array(cs.numComps),\n ratio = new Float32Array(1);\n let rgbColor;\n for (let i = 0; i <= NUMBER_OF_SAMPLES; i++) {\n ratio[0] = t0 + i * step;\n fn(ratio, 0, color, 0);\n rgbColor = cs.getRgb(color, 0);\n const cssColor = Util.makeHexColor(rgbColor[0], rgbColor[1], rgbColor[2]);\n colorStops.push([i / NUMBER_OF_SAMPLES, cssColor]);\n }\n\n let background = \"transparent\";\n if (dict.has(\"Background\")) {\n rgbColor = cs.getRgb(dict.get(\"Background\"), 0);\n background = Util.makeHexColor(rgbColor[0], rgbColor[1], rgbColor[2]);\n }\n\n if (!extendStart) {\n // Insert a color stop at the front and offset the first real color stop\n // so it doesn't conflict with the one we insert.\n colorStops.unshift([0, background]);\n colorStops[1][0] += BaseShading.SMALL_NUMBER;\n }\n if (!extendEnd) {\n // Same idea as above in extendStart but for the end.\n colorStops[colorStops.length - 1][0] -= BaseShading.SMALL_NUMBER;\n colorStops.push([1, background]);\n }\n\n this.colorStops = colorStops;\n }\n\n getIR() {\n const coordsArr = this.coordsArr;\n const shadingType = this.shadingType;\n let type, p0, p1, r0, r1;\n if (shadingType === ShadingType.AXIAL) {\n p0 = [coordsArr[0], coordsArr[1]];\n p1 = [coordsArr[2], coordsArr[3]];\n r0 = null;\n r1 = null;\n type = \"axial\";\n } else if (shadingType === ShadingType.RADIAL) {\n p0 = [coordsArr[0], coordsArr[1]];\n p1 = [coordsArr[3], coordsArr[4]];\n r0 = coordsArr[2];\n r1 = coordsArr[5];\n type = \"radial\";\n } else {\n unreachable(`getPattern type unknown: ${shadingType}`);\n }\n\n return [\"RadialAxial\", type, this.bbox, this.colorStops, p0, p1, r0, r1];\n }\n}\n\n// All mesh shadings. For now, they will be presented as set of the triangles\n// to be drawn on the canvas and rgb color for each vertex.\nclass MeshStreamReader {\n constructor(stream, context) {\n this.stream = stream;\n this.context = context;\n this.buffer = 0;\n this.bufferLength = 0;\n\n const numComps = context.numComps;\n this.tmpCompsBuf = new Float32Array(numComps);\n const csNumComps = context.colorSpace.numComps;\n this.tmpCsCompsBuf = context.colorFn\n ? new Float32Array(csNumComps)\n : this.tmpCompsBuf;\n }\n\n get hasData() {\n if (this.stream.end) {\n return this.stream.pos < this.stream.end;\n }\n if (this.bufferLength > 0) {\n return true;\n }\n const nextByte = this.stream.getByte();\n if (nextByte < 0) {\n return false;\n }\n this.buffer = nextByte;\n this.bufferLength = 8;\n return true;\n }\n\n readBits(n) {\n let buffer = this.buffer;\n let bufferLength = this.bufferLength;\n if (n === 32) {\n if (bufferLength === 0) {\n return (\n ((this.stream.getByte() << 24) |\n (this.stream.getByte() << 16) |\n (this.stream.getByte() << 8) |\n this.stream.getByte()) >>>\n 0\n );\n }\n buffer =\n (buffer << 24) |\n (this.stream.getByte() << 16) |\n (this.stream.getByte() << 8) |\n this.stream.getByte();\n const nextByte = this.stream.getByte();\n this.buffer = nextByte & ((1 << bufferLength) - 1);\n return (\n ((buffer << (8 - bufferLength)) |\n ((nextByte & 0xff) >> bufferLength)) >>>\n 0\n );\n }\n if (n === 8 && bufferLength === 0) {\n return this.stream.getByte();\n }\n while (bufferLength < n) {\n buffer = (buffer << 8) | this.stream.getByte();\n bufferLength += 8;\n }\n bufferLength -= n;\n this.bufferLength = bufferLength;\n this.buffer = buffer & ((1 << bufferLength) - 1);\n return buffer >> bufferLength;\n }\n\n align() {\n this.buffer = 0;\n this.bufferLength = 0;\n }\n\n readFlag() {\n return this.readBits(this.context.bitsPerFlag);\n }\n\n readCoordinate() {\n const bitsPerCoordinate = this.context.bitsPerCoordinate;\n const xi = this.readBits(bitsPerCoordinate);\n const yi = this.readBits(bitsPerCoordinate);\n const decode = this.context.decode;\n const scale =\n bitsPerCoordinate < 32\n ? 1 / ((1 << bitsPerCoordinate) - 1)\n : 2.3283064365386963e-10; // 2 ^ -32\n return [\n xi * scale * (decode[1] - decode[0]) + decode[0],\n yi * scale * (decode[3] - decode[2]) + decode[2],\n ];\n }\n\n readComponents() {\n const numComps = this.context.numComps;\n const bitsPerComponent = this.context.bitsPerComponent;\n const scale =\n bitsPerComponent < 32\n ? 1 / ((1 << bitsPerComponent) - 1)\n : 2.3283064365386963e-10; // 2 ^ -32\n const decode = this.context.decode;\n const components = this.tmpCompsBuf;\n for (let i = 0, j = 4; i < numComps; i++, j += 2) {\n const ci = this.readBits(bitsPerComponent);\n components[i] = ci * scale * (decode[j + 1] - decode[j]) + decode[j];\n }\n const color = this.tmpCsCompsBuf;\n if (this.context.colorFn) {\n this.context.colorFn(components, 0, color, 0);\n }\n return this.context.colorSpace.getRgb(color, 0);\n }\n}\n\nconst getB = (function getBClosure() {\n function buildB(count) {\n const lut = [];\n for (let i = 0; i <= count; i++) {\n const t = i / count,\n t_ = 1 - t;\n lut.push(\n new Float32Array([\n t_ * t_ * t_,\n 3 * t * t_ * t_,\n 3 * t * t * t_,\n t * t * t,\n ])\n );\n }\n return lut;\n }\n const cache = [];\n\n return function (count) {\n if (!cache[count]) {\n cache[count] = buildB(count);\n }\n return cache[count];\n };\n})();\n\nclass MeshShading extends BaseShading {\n static get MIN_SPLIT_PATCH_CHUNKS_AMOUNT() {\n return shadow(this, \"MIN_SPLIT_PATCH_CHUNKS_AMOUNT\", 3);\n }\n\n static get MAX_SPLIT_PATCH_CHUNKS_AMOUNT() {\n return shadow(this, \"MAX_SPLIT_PATCH_CHUNKS_AMOUNT\", 20);\n }\n\n // Count of triangles per entire mesh bounds.\n static get TRIANGLE_DENSITY() {\n return shadow(this, \"TRIANGLE_DENSITY\", 20);\n }\n\n constructor(\n stream,\n xref,\n resources,\n pdfFunctionFactory,\n localColorSpaceCache\n ) {\n super();\n if (!(stream instanceof BaseStream)) {\n throw new FormatError(\"Mesh data is not a stream\");\n }\n const dict = stream.dict;\n this.shadingType = dict.get(\"ShadingType\");\n const bbox = dict.getArray(\"BBox\");\n if (Array.isArray(bbox) && bbox.length === 4) {\n this.bbox = Util.normalizeRect(bbox);\n } else {\n this.bbox = null;\n }\n const cs = ColorSpace.parse({\n cs: dict.getRaw(\"CS\") || dict.getRaw(\"ColorSpace\"),\n xref,\n resources,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n this.background = dict.has(\"Background\")\n ? cs.getRgb(dict.get(\"Background\"), 0)\n : null;\n\n const fnObj = dict.getRaw(\"Function\");\n const fn = fnObj ? pdfFunctionFactory.createFromArray(fnObj) : null;\n\n this.coords = [];\n this.colors = [];\n this.figures = [];\n\n const decodeContext = {\n bitsPerCoordinate: dict.get(\"BitsPerCoordinate\"),\n bitsPerComponent: dict.get(\"BitsPerComponent\"),\n bitsPerFlag: dict.get(\"BitsPerFlag\"),\n decode: dict.getArray(\"Decode\"),\n colorFn: fn,\n colorSpace: cs,\n numComps: fn ? 1 : cs.numComps,\n };\n const reader = new MeshStreamReader(stream, decodeContext);\n\n let patchMesh = false;\n switch (this.shadingType) {\n case ShadingType.FREE_FORM_MESH:\n this._decodeType4Shading(reader);\n break;\n case ShadingType.LATTICE_FORM_MESH:\n const verticesPerRow = dict.get(\"VerticesPerRow\") | 0;\n if (verticesPerRow < 2) {\n throw new FormatError(\"Invalid VerticesPerRow\");\n }\n this._decodeType5Shading(reader, verticesPerRow);\n break;\n case ShadingType.COONS_PATCH_MESH:\n this._decodeType6Shading(reader);\n patchMesh = true;\n break;\n case ShadingType.TENSOR_PATCH_MESH:\n this._decodeType7Shading(reader);\n patchMesh = true;\n break;\n default:\n unreachable(\"Unsupported mesh type.\");\n break;\n }\n\n if (patchMesh) {\n // Dirty bounds calculation, to determine how dense the triangles will be.\n this._updateBounds();\n for (let i = 0, ii = this.figures.length; i < ii; i++) {\n this._buildFigureFromPatch(i);\n }\n }\n // Calculate bounds.\n this._updateBounds();\n\n this._packData();\n }\n\n _decodeType4Shading(reader) {\n const coords = this.coords;\n const colors = this.colors;\n const operators = [];\n const ps = []; // not maintaining cs since that will match ps\n let verticesLeft = 0; // assuming we have all data to start a new triangle\n while (reader.hasData) {\n const f = reader.readFlag();\n const coord = reader.readCoordinate();\n const color = reader.readComponents();\n if (verticesLeft === 0) {\n // ignoring flags if we started a triangle\n if (!(0 <= f && f <= 2)) {\n throw new FormatError(\"Unknown type4 flag\");\n }\n switch (f) {\n case 0:\n verticesLeft = 3;\n break;\n case 1:\n ps.push(ps[ps.length - 2], ps[ps.length - 1]);\n verticesLeft = 1;\n break;\n case 2:\n ps.push(ps[ps.length - 3], ps[ps.length - 1]);\n verticesLeft = 1;\n break;\n }\n operators.push(f);\n }\n ps.push(coords.length);\n coords.push(coord);\n colors.push(color);\n verticesLeft--;\n\n reader.align();\n }\n this.figures.push({\n type: \"triangles\",\n coords: new Int32Array(ps),\n colors: new Int32Array(ps),\n });\n }\n\n _decodeType5Shading(reader, verticesPerRow) {\n const coords = this.coords;\n const colors = this.colors;\n const ps = []; // not maintaining cs since that will match ps\n while (reader.hasData) {\n const coord = reader.readCoordinate();\n const color = reader.readComponents();\n ps.push(coords.length);\n coords.push(coord);\n colors.push(color);\n }\n this.figures.push({\n type: \"lattice\",\n coords: new Int32Array(ps),\n colors: new Int32Array(ps),\n verticesPerRow,\n });\n }\n\n _decodeType6Shading(reader) {\n // A special case of Type 7. The p11, p12, p21, p22 automatically filled\n const coords = this.coords;\n const colors = this.colors;\n const ps = new Int32Array(16); // p00, p10, ..., p30, p01, ..., p33\n const cs = new Int32Array(4); // c00, c30, c03, c33\n while (reader.hasData) {\n const f = reader.readFlag();\n if (!(0 <= f && f <= 3)) {\n throw new FormatError(\"Unknown type6 flag\");\n }\n const pi = coords.length;\n for (let i = 0, ii = f !== 0 ? 8 : 12; i < ii; i++) {\n coords.push(reader.readCoordinate());\n }\n const ci = colors.length;\n for (let i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n colors.push(reader.readComponents());\n }\n let tmp1, tmp2, tmp3, tmp4;\n switch (f) {\n // prettier-ignore\n case 0:\n ps[12] = pi + 3; ps[13] = pi + 4; ps[14] = pi + 5; ps[15] = pi + 6;\n ps[ 8] = pi + 2; /* values for 5, 6, 9, 10 are */ ps[11] = pi + 7;\n ps[ 4] = pi + 1; /* calculated below */ ps[ 7] = pi + 8;\n ps[ 0] = pi; ps[ 1] = pi + 11; ps[ 2] = pi + 10; ps[ 3] = pi + 9;\n cs[2] = ci + 1; cs[3] = ci + 2;\n cs[0] = ci; cs[1] = ci + 3;\n break;\n // prettier-ignore\n case 1:\n tmp1 = ps[12]; tmp2 = ps[13]; tmp3 = ps[14]; tmp4 = ps[15];\n ps[12] = tmp4; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = tmp3; /* values for 5, 6, 9, 10 are */ ps[11] = pi + 3;\n ps[ 4] = tmp2; /* calculated below */ ps[ 7] = pi + 4;\n ps[ 0] = tmp1; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n tmp1 = cs[2]; tmp2 = cs[3];\n cs[2] = tmp2; cs[3] = ci;\n cs[0] = tmp1; cs[1] = ci + 1;\n break;\n // prettier-ignore\n case 2:\n tmp1 = ps[15];\n tmp2 = ps[11];\n ps[12] = ps[3]; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = ps[7]; /* values for 5, 6, 9, 10 are */ ps[11] = pi + 3;\n ps[ 4] = tmp2; /* calculated below */ ps[ 7] = pi + 4;\n ps[ 0] = tmp1; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n tmp1 = cs[3];\n cs[2] = cs[1]; cs[3] = ci;\n cs[0] = tmp1; cs[1] = ci + 1;\n break;\n // prettier-ignore\n case 3:\n ps[12] = ps[0]; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = ps[1]; /* values for 5, 6, 9, 10 are */ ps[11] = pi + 3;\n ps[ 4] = ps[2]; /* calculated below */ ps[ 7] = pi + 4;\n ps[ 0] = ps[3]; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n cs[2] = cs[0]; cs[3] = ci;\n cs[0] = cs[1]; cs[1] = ci + 1;\n break;\n }\n // set p11, p12, p21, p22\n ps[5] = coords.length;\n coords.push([\n (-4 * coords[ps[0]][0] -\n coords[ps[15]][0] +\n 6 * (coords[ps[4]][0] + coords[ps[1]][0]) -\n 2 * (coords[ps[12]][0] + coords[ps[3]][0]) +\n 3 * (coords[ps[13]][0] + coords[ps[7]][0])) /\n 9,\n (-4 * coords[ps[0]][1] -\n coords[ps[15]][1] +\n 6 * (coords[ps[4]][1] + coords[ps[1]][1]) -\n 2 * (coords[ps[12]][1] + coords[ps[3]][1]) +\n 3 * (coords[ps[13]][1] + coords[ps[7]][1])) /\n 9,\n ]);\n ps[6] = coords.length;\n coords.push([\n (-4 * coords[ps[3]][0] -\n coords[ps[12]][0] +\n 6 * (coords[ps[2]][0] + coords[ps[7]][0]) -\n 2 * (coords[ps[0]][0] + coords[ps[15]][0]) +\n 3 * (coords[ps[4]][0] + coords[ps[14]][0])) /\n 9,\n (-4 * coords[ps[3]][1] -\n coords[ps[12]][1] +\n 6 * (coords[ps[2]][1] + coords[ps[7]][1]) -\n 2 * (coords[ps[0]][1] + coords[ps[15]][1]) +\n 3 * (coords[ps[4]][1] + coords[ps[14]][1])) /\n 9,\n ]);\n ps[9] = coords.length;\n coords.push([\n (-4 * coords[ps[12]][0] -\n coords[ps[3]][0] +\n 6 * (coords[ps[8]][0] + coords[ps[13]][0]) -\n 2 * (coords[ps[0]][0] + coords[ps[15]][0]) +\n 3 * (coords[ps[11]][0] + coords[ps[1]][0])) /\n 9,\n (-4 * coords[ps[12]][1] -\n coords[ps[3]][1] +\n 6 * (coords[ps[8]][1] + coords[ps[13]][1]) -\n 2 * (coords[ps[0]][1] + coords[ps[15]][1]) +\n 3 * (coords[ps[11]][1] + coords[ps[1]][1])) /\n 9,\n ]);\n ps[10] = coords.length;\n coords.push([\n (-4 * coords[ps[15]][0] -\n coords[ps[0]][0] +\n 6 * (coords[ps[11]][0] + coords[ps[14]][0]) -\n 2 * (coords[ps[12]][0] + coords[ps[3]][0]) +\n 3 * (coords[ps[2]][0] + coords[ps[8]][0])) /\n 9,\n (-4 * coords[ps[15]][1] -\n coords[ps[0]][1] +\n 6 * (coords[ps[11]][1] + coords[ps[14]][1]) -\n 2 * (coords[ps[12]][1] + coords[ps[3]][1]) +\n 3 * (coords[ps[2]][1] + coords[ps[8]][1])) /\n 9,\n ]);\n this.figures.push({\n type: \"patch\",\n coords: new Int32Array(ps), // making copies of ps and cs\n colors: new Int32Array(cs),\n });\n }\n }\n\n _decodeType7Shading(reader) {\n const coords = this.coords;\n const colors = this.colors;\n const ps = new Int32Array(16); // p00, p10, ..., p30, p01, ..., p33\n const cs = new Int32Array(4); // c00, c30, c03, c33\n while (reader.hasData) {\n const f = reader.readFlag();\n if (!(0 <= f && f <= 3)) {\n throw new FormatError(\"Unknown type7 flag\");\n }\n const pi = coords.length;\n for (let i = 0, ii = f !== 0 ? 12 : 16; i < ii; i++) {\n coords.push(reader.readCoordinate());\n }\n const ci = colors.length;\n for (let i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n colors.push(reader.readComponents());\n }\n let tmp1, tmp2, tmp3, tmp4;\n switch (f) {\n // prettier-ignore\n case 0:\n ps[12] = pi + 3; ps[13] = pi + 4; ps[14] = pi + 5; ps[15] = pi + 6;\n ps[ 8] = pi + 2; ps[ 9] = pi + 13; ps[10] = pi + 14; ps[11] = pi + 7;\n ps[ 4] = pi + 1; ps[ 5] = pi + 12; ps[ 6] = pi + 15; ps[ 7] = pi + 8;\n ps[ 0] = pi; ps[ 1] = pi + 11; ps[ 2] = pi + 10; ps[ 3] = pi + 9;\n cs[2] = ci + 1; cs[3] = ci + 2;\n cs[0] = ci; cs[1] = ci + 3;\n break;\n // prettier-ignore\n case 1:\n tmp1 = ps[12]; tmp2 = ps[13]; tmp3 = ps[14]; tmp4 = ps[15];\n ps[12] = tmp4; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = tmp3; ps[ 9] = pi + 9; ps[10] = pi + 10; ps[11] = pi + 3;\n ps[ 4] = tmp2; ps[ 5] = pi + 8; ps[ 6] = pi + 11; ps[ 7] = pi + 4;\n ps[ 0] = tmp1; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n tmp1 = cs[2]; tmp2 = cs[3];\n cs[2] = tmp2; cs[3] = ci;\n cs[0] = tmp1; cs[1] = ci + 1;\n break;\n // prettier-ignore\n case 2:\n tmp1 = ps[15];\n tmp2 = ps[11];\n ps[12] = ps[3]; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = ps[7]; ps[ 9] = pi + 9; ps[10] = pi + 10; ps[11] = pi + 3;\n ps[ 4] = tmp2; ps[ 5] = pi + 8; ps[ 6] = pi + 11; ps[ 7] = pi + 4;\n ps[ 0] = tmp1; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n tmp1 = cs[3];\n cs[2] = cs[1]; cs[3] = ci;\n cs[0] = tmp1; cs[1] = ci + 1;\n break;\n // prettier-ignore\n case 3:\n ps[12] = ps[0]; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = ps[1]; ps[ 9] = pi + 9; ps[10] = pi + 10; ps[11] = pi + 3;\n ps[ 4] = ps[2]; ps[ 5] = pi + 8; ps[ 6] = pi + 11; ps[ 7] = pi + 4;\n ps[ 0] = ps[3]; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n cs[2] = cs[0]; cs[3] = ci;\n cs[0] = cs[1]; cs[1] = ci + 1;\n break;\n }\n this.figures.push({\n type: \"patch\",\n coords: new Int32Array(ps), // making copies of ps and cs\n colors: new Int32Array(cs),\n });\n }\n }\n\n _buildFigureFromPatch(index) {\n const figure = this.figures[index];\n assert(figure.type === \"patch\", \"Unexpected patch mesh figure\");\n\n const coords = this.coords,\n colors = this.colors;\n const pi = figure.coords;\n const ci = figure.colors;\n\n const figureMinX = Math.min(\n coords[pi[0]][0],\n coords[pi[3]][0],\n coords[pi[12]][0],\n coords[pi[15]][0]\n );\n const figureMinY = Math.min(\n coords[pi[0]][1],\n coords[pi[3]][1],\n coords[pi[12]][1],\n coords[pi[15]][1]\n );\n const figureMaxX = Math.max(\n coords[pi[0]][0],\n coords[pi[3]][0],\n coords[pi[12]][0],\n coords[pi[15]][0]\n );\n const figureMaxY = Math.max(\n coords[pi[0]][1],\n coords[pi[3]][1],\n coords[pi[12]][1],\n coords[pi[15]][1]\n );\n let splitXBy = Math.ceil(\n ((figureMaxX - figureMinX) * MeshShading.TRIANGLE_DENSITY) /\n (this.bounds[2] - this.bounds[0])\n );\n splitXBy = Math.max(\n MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT,\n Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitXBy)\n );\n let splitYBy = Math.ceil(\n ((figureMaxY - figureMinY) * MeshShading.TRIANGLE_DENSITY) /\n (this.bounds[3] - this.bounds[1])\n );\n splitYBy = Math.max(\n MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT,\n Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitYBy)\n );\n\n const verticesPerRow = splitXBy + 1;\n const figureCoords = new Int32Array((splitYBy + 1) * verticesPerRow);\n const figureColors = new Int32Array((splitYBy + 1) * verticesPerRow);\n let k = 0;\n const cl = new Uint8Array(3),\n cr = new Uint8Array(3);\n const c0 = colors[ci[0]],\n c1 = colors[ci[1]],\n c2 = colors[ci[2]],\n c3 = colors[ci[3]];\n const bRow = getB(splitYBy),\n bCol = getB(splitXBy);\n for (let row = 0; row <= splitYBy; row++) {\n cl[0] = ((c0[0] * (splitYBy - row) + c2[0] * row) / splitYBy) | 0;\n cl[1] = ((c0[1] * (splitYBy - row) + c2[1] * row) / splitYBy) | 0;\n cl[2] = ((c0[2] * (splitYBy - row) + c2[2] * row) / splitYBy) | 0;\n\n cr[0] = ((c1[0] * (splitYBy - row) + c3[0] * row) / splitYBy) | 0;\n cr[1] = ((c1[1] * (splitYBy - row) + c3[1] * row) / splitYBy) | 0;\n cr[2] = ((c1[2] * (splitYBy - row) + c3[2] * row) / splitYBy) | 0;\n\n for (let col = 0; col <= splitXBy; col++, k++) {\n if (\n (row === 0 || row === splitYBy) &&\n (col === 0 || col === splitXBy)\n ) {\n continue;\n }\n let x = 0,\n y = 0;\n let q = 0;\n for (let i = 0; i <= 3; i++) {\n for (let j = 0; j <= 3; j++, q++) {\n const m = bRow[row][i] * bCol[col][j];\n x += coords[pi[q]][0] * m;\n y += coords[pi[q]][1] * m;\n }\n }\n figureCoords[k] = coords.length;\n coords.push([x, y]);\n figureColors[k] = colors.length;\n const newColor = new Uint8Array(3);\n newColor[0] = ((cl[0] * (splitXBy - col) + cr[0] * col) / splitXBy) | 0;\n newColor[1] = ((cl[1] * (splitXBy - col) + cr[1] * col) / splitXBy) | 0;\n newColor[2] = ((cl[2] * (splitXBy - col) + cr[2] * col) / splitXBy) | 0;\n colors.push(newColor);\n }\n }\n figureCoords[0] = pi[0];\n figureColors[0] = ci[0];\n figureCoords[splitXBy] = pi[3];\n figureColors[splitXBy] = ci[1];\n figureCoords[verticesPerRow * splitYBy] = pi[12];\n figureColors[verticesPerRow * splitYBy] = ci[2];\n figureCoords[verticesPerRow * splitYBy + splitXBy] = pi[15];\n figureColors[verticesPerRow * splitYBy + splitXBy] = ci[3];\n\n this.figures[index] = {\n type: \"lattice\",\n coords: figureCoords,\n colors: figureColors,\n verticesPerRow,\n };\n }\n\n _updateBounds() {\n let minX = this.coords[0][0],\n minY = this.coords[0][1],\n maxX = minX,\n maxY = minY;\n for (let i = 1, ii = this.coords.length; i < ii; i++) {\n const x = this.coords[i][0],\n y = this.coords[i][1];\n minX = minX > x ? x : minX;\n minY = minY > y ? y : minY;\n maxX = maxX < x ? x : maxX;\n maxY = maxY < y ? y : maxY;\n }\n this.bounds = [minX, minY, maxX, maxY];\n }\n\n _packData() {\n let i, ii, j, jj;\n\n const coords = this.coords;\n const coordsPacked = new Float32Array(coords.length * 2);\n for (i = 0, j = 0, ii = coords.length; i < ii; i++) {\n const xy = coords[i];\n coordsPacked[j++] = xy[0];\n coordsPacked[j++] = xy[1];\n }\n this.coords = coordsPacked;\n\n const colors = this.colors;\n const colorsPacked = new Uint8Array(colors.length * 3);\n for (i = 0, j = 0, ii = colors.length; i < ii; i++) {\n const c = colors[i];\n colorsPacked[j++] = c[0];\n colorsPacked[j++] = c[1];\n colorsPacked[j++] = c[2];\n }\n this.colors = colorsPacked;\n\n const figures = this.figures;\n for (i = 0, ii = figures.length; i < ii; i++) {\n const figure = figures[i],\n ps = figure.coords,\n cs = figure.colors;\n for (j = 0, jj = ps.length; j < jj; j++) {\n ps[j] *= 2;\n cs[j] *= 3;\n }\n }\n }\n\n getIR() {\n return [\n \"Mesh\",\n this.shadingType,\n this.coords,\n this.colors,\n this.figures,\n this.bounds,\n this.bbox,\n this.background,\n ];\n }\n}\n\nclass DummyShading extends BaseShading {\n getIR() {\n return [\"Dummy\"];\n }\n}\n\nfunction getTilingPatternIR(operatorList, dict, color) {\n const matrix = dict.getArray(\"Matrix\");\n const bbox = Util.normalizeRect(dict.getArray(\"BBox\"));\n const xstep = dict.get(\"XStep\");\n const ystep = dict.get(\"YStep\");\n const paintType = dict.get(\"PaintType\");\n const tilingType = dict.get(\"TilingType\");\n\n // Ensure that the pattern has a non-zero width and height, to prevent errors\n // in `pattern_helper.js` (fixes issue8330.pdf).\n if (bbox[2] - bbox[0] === 0 || bbox[3] - bbox[1] === 0) {\n throw new FormatError(`Invalid getTilingPatternIR /BBox array: [${bbox}].`);\n }\n\n return [\n \"TilingPattern\",\n color,\n operatorList,\n matrix,\n bbox,\n xstep,\n ystep,\n paintType,\n tilingType,\n ];\n}\n\nexport { getTilingPatternIR, Pattern };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Dict, Ref } from \"./primitives.js\";\nimport {\n FeatureTest,\n FormatError,\n info,\n shadow,\n unreachable,\n} from \"../shared/util.js\";\nimport { PostScriptLexer, PostScriptParser } from \"./ps_parser.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { LocalFunctionCache } from \"./image_utils.js\";\n\nclass PDFFunctionFactory {\n constructor({ xref, isEvalSupported = true }) {\n this.xref = xref;\n this.isEvalSupported = isEvalSupported !== false;\n }\n\n create(fn) {\n const cachedFunction = this.getCached(fn);\n if (cachedFunction) {\n return cachedFunction;\n }\n const parsedFunction = PDFFunction.parse({\n xref: this.xref,\n isEvalSupported: this.isEvalSupported,\n fn: fn instanceof Ref ? this.xref.fetch(fn) : fn,\n });\n\n // Attempt to cache the parsed Function, by reference.\n this._cache(fn, parsedFunction);\n\n return parsedFunction;\n }\n\n createFromArray(fnObj) {\n const cachedFunction = this.getCached(fnObj);\n if (cachedFunction) {\n return cachedFunction;\n }\n const parsedFunction = PDFFunction.parseArray({\n xref: this.xref,\n isEvalSupported: this.isEvalSupported,\n fnObj: fnObj instanceof Ref ? this.xref.fetch(fnObj) : fnObj,\n });\n\n // Attempt to cache the parsed Function, by reference.\n this._cache(fnObj, parsedFunction);\n\n return parsedFunction;\n }\n\n getCached(cacheKey) {\n let fnRef;\n if (cacheKey instanceof Ref) {\n fnRef = cacheKey;\n } else if (cacheKey instanceof Dict) {\n fnRef = cacheKey.objId;\n } else if (cacheKey instanceof BaseStream) {\n fnRef = cacheKey.dict && cacheKey.dict.objId;\n }\n if (fnRef) {\n const localFunction = this._localFunctionCache.getByRef(fnRef);\n if (localFunction) {\n return localFunction;\n }\n }\n return null;\n }\n\n /**\n * @private\n */\n _cache(cacheKey, parsedFunction) {\n if (!parsedFunction) {\n throw new Error(\n 'PDFFunctionFactory._cache - expected \"parsedFunction\" argument.'\n );\n }\n let fnRef;\n if (cacheKey instanceof Ref) {\n fnRef = cacheKey;\n } else if (cacheKey instanceof Dict) {\n fnRef = cacheKey.objId;\n } else if (cacheKey instanceof BaseStream) {\n fnRef = cacheKey.dict && cacheKey.dict.objId;\n }\n if (fnRef) {\n this._localFunctionCache.set(/* name = */ null, fnRef, parsedFunction);\n }\n }\n\n /**\n * @private\n */\n get _localFunctionCache() {\n return shadow(this, \"_localFunctionCache\", new LocalFunctionCache());\n }\n}\n\nfunction toNumberArray(arr) {\n if (!Array.isArray(arr)) {\n return null;\n }\n const length = arr.length;\n for (let i = 0; i < length; i++) {\n if (typeof arr[i] !== \"number\") {\n // Non-number is found -- convert all items to numbers.\n const result = new Array(length);\n for (let j = 0; j < length; j++) {\n result[j] = +arr[j];\n }\n return result;\n }\n }\n return arr;\n}\n\nclass PDFFunction {\n static getSampleArray(size, outputSize, bps, stream) {\n let i, ii;\n let length = 1;\n for (i = 0, ii = size.length; i < ii; i++) {\n length *= size[i];\n }\n length *= outputSize;\n\n const array = new Array(length);\n let codeSize = 0;\n let codeBuf = 0;\n // 32 is a valid bps so shifting won't work\n const sampleMul = 1.0 / (2.0 ** bps - 1);\n\n const strBytes = stream.getBytes((length * bps + 7) / 8);\n let strIdx = 0;\n for (i = 0; i < length; i++) {\n while (codeSize < bps) {\n codeBuf <<= 8;\n codeBuf |= strBytes[strIdx++];\n codeSize += 8;\n }\n codeSize -= bps;\n array[i] = (codeBuf >> codeSize) * sampleMul;\n codeBuf &= (1 << codeSize) - 1;\n }\n return array;\n }\n\n static parse({ xref, isEvalSupported, fn }) {\n const dict = fn.dict || fn;\n const typeNum = dict.get(\"FunctionType\");\n\n switch (typeNum) {\n case 0:\n return this.constructSampled({ xref, isEvalSupported, fn, dict });\n case 1:\n break;\n case 2:\n return this.constructInterpolated({ xref, isEvalSupported, dict });\n case 3:\n return this.constructStiched({ xref, isEvalSupported, dict });\n case 4:\n return this.constructPostScript({ xref, isEvalSupported, fn, dict });\n }\n throw new FormatError(\"Unknown type of function\");\n }\n\n static parseArray({ xref, isEvalSupported, fnObj }) {\n if (!Array.isArray(fnObj)) {\n // not an array -- parsing as regular function\n return this.parse({ xref, isEvalSupported, fn: fnObj });\n }\n\n const fnArray = [];\n for (let j = 0, jj = fnObj.length; j < jj; j++) {\n fnArray.push(\n this.parse({ xref, isEvalSupported, fn: xref.fetchIfRef(fnObj[j]) })\n );\n }\n return function (src, srcOffset, dest, destOffset) {\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n fnArray[i](src, srcOffset, dest, destOffset + i);\n }\n };\n }\n\n static constructSampled({ xref, isEvalSupported, fn, dict }) {\n function toMultiArray(arr) {\n const inputLength = arr.length;\n const out = [];\n let index = 0;\n for (let i = 0; i < inputLength; i += 2) {\n out[index++] = [arr[i], arr[i + 1]];\n }\n return out;\n }\n // See chapter 3, page 109 of the PDF reference\n function interpolate(x, xmin, xmax, ymin, ymax) {\n return ymin + (x - xmin) * ((ymax - ymin) / (xmax - xmin));\n }\n\n let domain = toNumberArray(dict.getArray(\"Domain\"));\n let range = toNumberArray(dict.getArray(\"Range\"));\n\n if (!domain || !range) {\n throw new FormatError(\"No domain or range\");\n }\n\n const inputSize = domain.length / 2;\n const outputSize = range.length / 2;\n\n domain = toMultiArray(domain);\n range = toMultiArray(range);\n\n const size = toNumberArray(dict.getArray(\"Size\"));\n const bps = dict.get(\"BitsPerSample\");\n const order = dict.get(\"Order\") || 1;\n if (order !== 1) {\n // No description how cubic spline interpolation works in PDF32000:2008\n // As in poppler, ignoring order, linear interpolation may work as good\n info(\"No support for cubic spline interpolation: \" + order);\n }\n\n let encode = toNumberArray(dict.getArray(\"Encode\"));\n if (!encode) {\n encode = [];\n for (let i = 0; i < inputSize; ++i) {\n encode.push([0, size[i] - 1]);\n }\n } else {\n encode = toMultiArray(encode);\n }\n\n let decode = toNumberArray(dict.getArray(\"Decode\"));\n if (!decode) {\n decode = range;\n } else {\n decode = toMultiArray(decode);\n }\n\n const samples = this.getSampleArray(size, outputSize, bps, fn);\n // const mask = 2 ** bps - 1;\n\n return function constructSampledFn(src, srcOffset, dest, destOffset) {\n // See chapter 3, page 110 of the PDF reference.\n\n // Building the cube vertices: its part and sample index\n // http://rjwagner49.com/Mathematics/Interpolation.pdf\n const cubeVertices = 1 << inputSize;\n const cubeN = new Float64Array(cubeVertices);\n const cubeVertex = new Uint32Array(cubeVertices);\n let i, j;\n for (j = 0; j < cubeVertices; j++) {\n cubeN[j] = 1;\n }\n\n let k = outputSize,\n pos = 1;\n // Map x_i to y_j for 0 <= i < m using the sampled function.\n for (i = 0; i < inputSize; ++i) {\n // x_i' = min(max(x_i, Domain_2i), Domain_2i+1)\n const domain_2i = domain[i][0];\n const domain_2i_1 = domain[i][1];\n const xi = Math.min(\n Math.max(src[srcOffset + i], domain_2i),\n domain_2i_1\n );\n\n // e_i = Interpolate(x_i', Domain_2i, Domain_2i+1,\n // Encode_2i, Encode_2i+1)\n let e = interpolate(\n xi,\n domain_2i,\n domain_2i_1,\n encode[i][0],\n encode[i][1]\n );\n\n // e_i' = min(max(e_i, 0), Size_i - 1)\n const size_i = size[i];\n e = Math.min(Math.max(e, 0), size_i - 1);\n\n // Adjusting the cube: N and vertex sample index\n const e0 = e < size_i - 1 ? Math.floor(e) : e - 1; // e1 = e0 + 1;\n const n0 = e0 + 1 - e; // (e1 - e) / (e1 - e0);\n const n1 = e - e0; // (e - e0) / (e1 - e0);\n const offset0 = e0 * k;\n const offset1 = offset0 + k; // e1 * k\n for (j = 0; j < cubeVertices; j++) {\n if (j & pos) {\n cubeN[j] *= n1;\n cubeVertex[j] += offset1;\n } else {\n cubeN[j] *= n0;\n cubeVertex[j] += offset0;\n }\n }\n\n k *= size_i;\n pos <<= 1;\n }\n\n for (j = 0; j < outputSize; ++j) {\n // Sum all cube vertices' samples portions\n let rj = 0;\n for (i = 0; i < cubeVertices; i++) {\n rj += samples[cubeVertex[i] + j] * cubeN[i];\n }\n\n // r_j' = Interpolate(r_j, 0, 2^BitsPerSample - 1,\n // Decode_2j, Decode_2j+1)\n rj = interpolate(rj, 0, 1, decode[j][0], decode[j][1]);\n\n // y_j = min(max(r_j, range_2j), range_2j+1)\n dest[destOffset + j] = Math.min(Math.max(rj, range[j][0]), range[j][1]);\n }\n };\n }\n\n static constructInterpolated({ xref, isEvalSupported, dict }) {\n const c0 = toNumberArray(dict.getArray(\"C0\")) || [0];\n const c1 = toNumberArray(dict.getArray(\"C1\")) || [1];\n const n = dict.get(\"N\");\n\n const diff = [];\n for (let i = 0, ii = c0.length; i < ii; ++i) {\n diff.push(c1[i] - c0[i]);\n }\n const length = diff.length;\n\n return function constructInterpolatedFn(src, srcOffset, dest, destOffset) {\n const x = n === 1 ? src[srcOffset] : src[srcOffset] ** n;\n\n for (let j = 0; j < length; ++j) {\n dest[destOffset + j] = c0[j] + x * diff[j];\n }\n };\n }\n\n static constructStiched({ xref, isEvalSupported, dict }) {\n const domain = toNumberArray(dict.getArray(\"Domain\"));\n\n if (!domain) {\n throw new FormatError(\"No domain\");\n }\n\n const inputSize = domain.length / 2;\n if (inputSize !== 1) {\n throw new FormatError(\"Bad domain for stiched function\");\n }\n\n const fnRefs = dict.get(\"Functions\");\n const fns = [];\n for (let i = 0, ii = fnRefs.length; i < ii; ++i) {\n fns.push(\n this.parse({ xref, isEvalSupported, fn: xref.fetchIfRef(fnRefs[i]) })\n );\n }\n\n const bounds = toNumberArray(dict.getArray(\"Bounds\"));\n const encode = toNumberArray(dict.getArray(\"Encode\"));\n const tmpBuf = new Float32Array(1);\n\n return function constructStichedFn(src, srcOffset, dest, destOffset) {\n const clip = function constructStichedFromIRClip(v, min, max) {\n if (v > max) {\n v = max;\n } else if (v < min) {\n v = min;\n }\n return v;\n };\n\n // clip to domain\n const v = clip(src[srcOffset], domain[0], domain[1]);\n // calculate which bound the value is in\n const length = bounds.length;\n let i;\n for (i = 0; i < length; ++i) {\n if (v < bounds[i]) {\n break;\n }\n }\n\n // encode value into domain of function\n let dmin = domain[0];\n if (i > 0) {\n dmin = bounds[i - 1];\n }\n let dmax = domain[1];\n if (i < bounds.length) {\n dmax = bounds[i];\n }\n\n const rmin = encode[2 * i];\n const rmax = encode[2 * i + 1];\n\n // Prevent the value from becoming NaN as a result\n // of division by zero (fixes issue6113.pdf).\n tmpBuf[0] =\n dmin === dmax\n ? rmin\n : rmin + ((v - dmin) * (rmax - rmin)) / (dmax - dmin);\n\n // call the appropriate function\n fns[i](tmpBuf, 0, dest, destOffset);\n };\n }\n\n static constructPostScript({ xref, isEvalSupported, fn, dict }) {\n const domain = toNumberArray(dict.getArray(\"Domain\"));\n const range = toNumberArray(dict.getArray(\"Range\"));\n\n if (!domain) {\n throw new FormatError(\"No domain.\");\n }\n\n if (!range) {\n throw new FormatError(\"No range.\");\n }\n\n const lexer = new PostScriptLexer(fn);\n const parser = new PostScriptParser(lexer);\n const code = parser.parse();\n\n if (isEvalSupported && FeatureTest.isEvalSupported) {\n const compiled = new PostScriptCompiler().compile(code, domain, range);\n if (compiled) {\n // Compiled function consists of simple expressions such as addition,\n // subtraction, Math.max, and also contains 'var' and 'return'\n // statements. See the generation in the PostScriptCompiler below.\n // eslint-disable-next-line no-new-func\n return new Function(\"src\", \"srcOffset\", \"dest\", \"destOffset\", compiled);\n }\n }\n info(\"Unable to compile PS function\");\n\n const numOutputs = range.length >> 1;\n const numInputs = domain.length >> 1;\n const evaluator = new PostScriptEvaluator(code);\n // Cache the values for a big speed up, the cache size is limited though\n // since the number of possible values can be huge from a PS function.\n const cache = Object.create(null);\n // The MAX_CACHE_SIZE is set to ~4x the maximum number of distinct values\n // seen in our tests.\n const MAX_CACHE_SIZE = 2048 * 4;\n let cache_available = MAX_CACHE_SIZE;\n const tmpBuf = new Float32Array(numInputs);\n\n return function constructPostScriptFn(src, srcOffset, dest, destOffset) {\n let i, value;\n let key = \"\";\n const input = tmpBuf;\n for (i = 0; i < numInputs; i++) {\n value = src[srcOffset + i];\n input[i] = value;\n key += value + \"_\";\n }\n\n const cachedValue = cache[key];\n if (cachedValue !== undefined) {\n dest.set(cachedValue, destOffset);\n return;\n }\n\n const output = new Float32Array(numOutputs);\n const stack = evaluator.execute(input);\n const stackIndex = stack.length - numOutputs;\n for (i = 0; i < numOutputs; i++) {\n value = stack[stackIndex + i];\n let bound = range[i * 2];\n if (value < bound) {\n value = bound;\n } else {\n bound = range[i * 2 + 1];\n if (value > bound) {\n value = bound;\n }\n }\n output[i] = value;\n }\n if (cache_available > 0) {\n cache_available--;\n cache[key] = output;\n }\n dest.set(output, destOffset);\n };\n }\n}\n\nfunction isPDFFunction(v) {\n let fnDict;\n if (typeof v !== \"object\") {\n return false;\n } else if (v instanceof Dict) {\n fnDict = v;\n } else if (v instanceof BaseStream) {\n fnDict = v.dict;\n } else {\n return false;\n }\n return fnDict.has(\"FunctionType\");\n}\n\nclass PostScriptStack {\n static get MAX_STACK_SIZE() {\n return shadow(this, \"MAX_STACK_SIZE\", 100);\n }\n\n constructor(initialStack) {\n this.stack = !initialStack\n ? []\n : Array.prototype.slice.call(initialStack, 0);\n }\n\n push(value) {\n if (this.stack.length >= PostScriptStack.MAX_STACK_SIZE) {\n throw new Error(\"PostScript function stack overflow.\");\n }\n this.stack.push(value);\n }\n\n pop() {\n if (this.stack.length <= 0) {\n throw new Error(\"PostScript function stack underflow.\");\n }\n return this.stack.pop();\n }\n\n copy(n) {\n if (this.stack.length + n >= PostScriptStack.MAX_STACK_SIZE) {\n throw new Error(\"PostScript function stack overflow.\");\n }\n const stack = this.stack;\n for (let i = stack.length - n, j = n - 1; j >= 0; j--, i++) {\n stack.push(stack[i]);\n }\n }\n\n index(n) {\n this.push(this.stack[this.stack.length - n - 1]);\n }\n\n // rotate the last n stack elements p times\n roll(n, p) {\n const stack = this.stack;\n const l = stack.length - n;\n const r = stack.length - 1;\n const c = l + (p - Math.floor(p / n) * n);\n\n for (let i = l, j = r; i < j; i++, j--) {\n const t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n for (let i = l, j = c - 1; i < j; i++, j--) {\n const t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n for (let i = c, j = r; i < j; i++, j--) {\n const t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n }\n}\n\nclass PostScriptEvaluator {\n constructor(operators) {\n this.operators = operators;\n }\n\n execute(initialStack) {\n const stack = new PostScriptStack(initialStack);\n let counter = 0;\n const operators = this.operators;\n const length = operators.length;\n let operator, a, b;\n while (counter < length) {\n operator = operators[counter++];\n if (typeof operator === \"number\") {\n // Operator is really an operand and should be pushed to the stack.\n stack.push(operator);\n continue;\n }\n switch (operator) {\n // non standard ps operators\n case \"jz\": // jump if false\n b = stack.pop();\n a = stack.pop();\n if (!a) {\n counter = b;\n }\n break;\n case \"j\": // jump\n a = stack.pop();\n counter = a;\n break;\n\n // all ps operators in alphabetical order (excluding if/ifelse)\n case \"abs\":\n a = stack.pop();\n stack.push(Math.abs(a));\n break;\n case \"add\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a + b);\n break;\n case \"and\":\n b = stack.pop();\n a = stack.pop();\n if (typeof a === \"boolean\" && typeof b === \"boolean\") {\n stack.push(a && b);\n } else {\n stack.push(a & b);\n }\n break;\n case \"atan\":\n a = stack.pop();\n stack.push(Math.atan(a));\n break;\n case \"bitshift\":\n b = stack.pop();\n a = stack.pop();\n if (a > 0) {\n stack.push(a << b);\n } else {\n stack.push(a >> b);\n }\n break;\n case \"ceiling\":\n a = stack.pop();\n stack.push(Math.ceil(a));\n break;\n case \"copy\":\n a = stack.pop();\n stack.copy(a);\n break;\n case \"cos\":\n a = stack.pop();\n stack.push(Math.cos(a));\n break;\n case \"cvi\":\n a = stack.pop() | 0;\n stack.push(a);\n break;\n case \"cvr\":\n // noop\n break;\n case \"div\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a / b);\n break;\n case \"dup\":\n stack.copy(1);\n break;\n case \"eq\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a === b);\n break;\n case \"exch\":\n stack.roll(2, 1);\n break;\n case \"exp\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a ** b);\n break;\n case \"false\":\n stack.push(false);\n break;\n case \"floor\":\n a = stack.pop();\n stack.push(Math.floor(a));\n break;\n case \"ge\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a >= b);\n break;\n case \"gt\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a > b);\n break;\n case \"idiv\":\n b = stack.pop();\n a = stack.pop();\n stack.push((a / b) | 0);\n break;\n case \"index\":\n a = stack.pop();\n stack.index(a);\n break;\n case \"le\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a <= b);\n break;\n case \"ln\":\n a = stack.pop();\n stack.push(Math.log(a));\n break;\n case \"log\":\n a = stack.pop();\n stack.push(Math.log(a) / Math.LN10);\n break;\n case \"lt\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a < b);\n break;\n case \"mod\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a % b);\n break;\n case \"mul\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a * b);\n break;\n case \"ne\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a !== b);\n break;\n case \"neg\":\n a = stack.pop();\n stack.push(-a);\n break;\n case \"not\":\n a = stack.pop();\n if (typeof a === \"boolean\") {\n stack.push(!a);\n } else {\n stack.push(~a);\n }\n break;\n case \"or\":\n b = stack.pop();\n a = stack.pop();\n if (typeof a === \"boolean\" && typeof b === \"boolean\") {\n stack.push(a || b);\n } else {\n stack.push(a | b);\n }\n break;\n case \"pop\":\n stack.pop();\n break;\n case \"roll\":\n b = stack.pop();\n a = stack.pop();\n stack.roll(a, b);\n break;\n case \"round\":\n a = stack.pop();\n stack.push(Math.round(a));\n break;\n case \"sin\":\n a = stack.pop();\n stack.push(Math.sin(a));\n break;\n case \"sqrt\":\n a = stack.pop();\n stack.push(Math.sqrt(a));\n break;\n case \"sub\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a - b);\n break;\n case \"true\":\n stack.push(true);\n break;\n case \"truncate\":\n a = stack.pop();\n a = a < 0 ? Math.ceil(a) : Math.floor(a);\n stack.push(a);\n break;\n case \"xor\":\n b = stack.pop();\n a = stack.pop();\n if (typeof a === \"boolean\" && typeof b === \"boolean\") {\n stack.push(a !== b);\n } else {\n stack.push(a ^ b);\n }\n break;\n default:\n throw new FormatError(`Unknown operator ${operator}`);\n }\n }\n return stack.stack;\n }\n}\n\n// Most of the PDFs functions consist of simple operations such as:\n// roll, exch, sub, cvr, pop, index, dup, mul, if, gt, add.\n//\n// We can compile most of such programs, and at the same moment, we can\n// optimize some expressions using basic math properties. Keeping track of\n// min/max values will allow us to avoid extra Math.min/Math.max calls.\nconst PostScriptCompiler = (function PostScriptCompilerClosure() {\n class AstNode {\n constructor(type) {\n this.type = type;\n }\n\n visit(visitor) {\n unreachable(\"abstract method\");\n }\n }\n\n class AstArgument extends AstNode {\n constructor(index, min, max) {\n super(\"args\");\n this.index = index;\n this.min = min;\n this.max = max;\n }\n\n visit(visitor) {\n visitor.visitArgument(this);\n }\n }\n\n class AstLiteral extends AstNode {\n constructor(number) {\n super(\"literal\");\n this.number = number;\n this.min = number;\n this.max = number;\n }\n\n visit(visitor) {\n visitor.visitLiteral(this);\n }\n }\n\n class AstBinaryOperation extends AstNode {\n constructor(op, arg1, arg2, min, max) {\n super(\"binary\");\n this.op = op;\n this.arg1 = arg1;\n this.arg2 = arg2;\n this.min = min;\n this.max = max;\n }\n\n visit(visitor) {\n visitor.visitBinaryOperation(this);\n }\n }\n\n class AstMin extends AstNode {\n constructor(arg, max) {\n super(\"max\");\n this.arg = arg;\n this.min = arg.min;\n this.max = max;\n }\n\n visit(visitor) {\n visitor.visitMin(this);\n }\n }\n\n class AstVariable extends AstNode {\n constructor(index, min, max) {\n super(\"var\");\n this.index = index;\n this.min = min;\n this.max = max;\n }\n\n visit(visitor) {\n visitor.visitVariable(this);\n }\n }\n\n class AstVariableDefinition extends AstNode {\n constructor(variable, arg) {\n super(\"definition\");\n this.variable = variable;\n this.arg = arg;\n }\n\n visit(visitor) {\n visitor.visitVariableDefinition(this);\n }\n }\n\n class ExpressionBuilderVisitor {\n constructor() {\n this.parts = [];\n }\n\n visitArgument(arg) {\n this.parts.push(\n \"Math.max(\",\n arg.min,\n \", Math.min(\",\n arg.max,\n \", src[srcOffset + \",\n arg.index,\n \"]))\"\n );\n }\n\n visitVariable(variable) {\n this.parts.push(\"v\", variable.index);\n }\n\n visitLiteral(literal) {\n this.parts.push(literal.number);\n }\n\n visitBinaryOperation(operation) {\n this.parts.push(\"(\");\n operation.arg1.visit(this);\n this.parts.push(\" \", operation.op, \" \");\n operation.arg2.visit(this);\n this.parts.push(\")\");\n }\n\n visitVariableDefinition(definition) {\n this.parts.push(\"var \");\n definition.variable.visit(this);\n this.parts.push(\" = \");\n definition.arg.visit(this);\n this.parts.push(\";\");\n }\n\n visitMin(max) {\n this.parts.push(\"Math.min(\");\n max.arg.visit(this);\n this.parts.push(\", \", max.max, \")\");\n }\n\n toString() {\n return this.parts.join(\"\");\n }\n }\n\n function buildAddOperation(num1, num2) {\n if (num2.type === \"literal\" && num2.number === 0) {\n // optimization: second operand is 0\n return num1;\n }\n if (num1.type === \"literal\" && num1.number === 0) {\n // optimization: first operand is 0\n return num2;\n }\n if (num2.type === \"literal\" && num1.type === \"literal\") {\n // optimization: operands operand are literals\n return new AstLiteral(num1.number + num2.number);\n }\n return new AstBinaryOperation(\n \"+\",\n num1,\n num2,\n num1.min + num2.min,\n num1.max + num2.max\n );\n }\n\n function buildMulOperation(num1, num2) {\n if (num2.type === \"literal\") {\n // optimization: second operands is a literal...\n if (num2.number === 0) {\n return new AstLiteral(0); // and it's 0\n } else if (num2.number === 1) {\n return num1; // and it's 1\n } else if (num1.type === \"literal\") {\n // ... and first operands is a literal too\n return new AstLiteral(num1.number * num2.number);\n }\n }\n if (num1.type === \"literal\") {\n // optimization: first operands is a literal...\n if (num1.number === 0) {\n return new AstLiteral(0); // and it's 0\n } else if (num1.number === 1) {\n return num2; // and it's 1\n }\n }\n const min = Math.min(\n num1.min * num2.min,\n num1.min * num2.max,\n num1.max * num2.min,\n num1.max * num2.max\n );\n const max = Math.max(\n num1.min * num2.min,\n num1.min * num2.max,\n num1.max * num2.min,\n num1.max * num2.max\n );\n return new AstBinaryOperation(\"*\", num1, num2, min, max);\n }\n\n function buildSubOperation(num1, num2) {\n if (num2.type === \"literal\") {\n // optimization: second operands is a literal...\n if (num2.number === 0) {\n return num1; // ... and it's 0\n } else if (num1.type === \"literal\") {\n // ... and first operands is a literal too\n return new AstLiteral(num1.number - num2.number);\n }\n }\n if (\n num2.type === \"binary\" &&\n num2.op === \"-\" &&\n num1.type === \"literal\" &&\n num1.number === 1 &&\n num2.arg1.type === \"literal\" &&\n num2.arg1.number === 1\n ) {\n // optimization for case: 1 - (1 - x)\n return num2.arg2;\n }\n return new AstBinaryOperation(\n \"-\",\n num1,\n num2,\n num1.min - num2.max,\n num1.max - num2.min\n );\n }\n\n function buildMinOperation(num1, max) {\n if (num1.min >= max) {\n // optimization: num1 min value is not less than required max\n return new AstLiteral(max); // just returning max\n } else if (num1.max <= max) {\n // optimization: num1 max value is not greater than required max\n return num1; // just returning an argument\n }\n return new AstMin(num1, max);\n }\n\n // eslint-disable-next-line no-shadow\n class PostScriptCompiler {\n compile(code, domain, range) {\n const stack = [];\n const instructions = [];\n const inputSize = domain.length >> 1,\n outputSize = range.length >> 1;\n let lastRegister = 0;\n let n, j;\n let num1, num2, ast1, ast2, tmpVar, item;\n for (let i = 0; i < inputSize; i++) {\n stack.push(new AstArgument(i, domain[i * 2], domain[i * 2 + 1]));\n }\n\n for (let i = 0, ii = code.length; i < ii; i++) {\n item = code[i];\n if (typeof item === \"number\") {\n stack.push(new AstLiteral(item));\n continue;\n }\n\n switch (item) {\n case \"add\":\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildAddOperation(num1, num2));\n break;\n case \"cvr\":\n if (stack.length < 1) {\n return null;\n }\n break;\n case \"mul\":\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildMulOperation(num1, num2));\n break;\n case \"sub\":\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildSubOperation(num1, num2));\n break;\n case \"exch\":\n if (stack.length < 2) {\n return null;\n }\n ast1 = stack.pop();\n ast2 = stack.pop();\n stack.push(ast1, ast2);\n break;\n case \"pop\":\n if (stack.length < 1) {\n return null;\n }\n stack.pop();\n break;\n case \"index\":\n if (stack.length < 1) {\n return null;\n }\n num1 = stack.pop();\n if (num1.type !== \"literal\") {\n return null;\n }\n n = num1.number;\n if (n < 0 || !Number.isInteger(n) || stack.length < n) {\n return null;\n }\n ast1 = stack[stack.length - n - 1];\n if (ast1.type === \"literal\" || ast1.type === \"var\") {\n stack.push(ast1);\n break;\n }\n tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n stack[stack.length - n - 1] = tmpVar;\n stack.push(tmpVar);\n instructions.push(new AstVariableDefinition(tmpVar, ast1));\n break;\n case \"dup\":\n if (stack.length < 1) {\n return null;\n }\n if (\n typeof code[i + 1] === \"number\" &&\n code[i + 2] === \"gt\" &&\n code[i + 3] === i + 7 &&\n code[i + 4] === \"jz\" &&\n code[i + 5] === \"pop\" &&\n code[i + 6] === code[i + 1]\n ) {\n // special case of the commands sequence for the min operation\n num1 = stack.pop();\n stack.push(buildMinOperation(num1, code[i + 1]));\n i += 6;\n break;\n }\n ast1 = stack[stack.length - 1];\n if (ast1.type === \"literal\" || ast1.type === \"var\") {\n // we don't have to save into intermediate variable a literal or\n // variable.\n stack.push(ast1);\n break;\n }\n tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n stack[stack.length - 1] = tmpVar;\n stack.push(tmpVar);\n instructions.push(new AstVariableDefinition(tmpVar, ast1));\n break;\n case \"roll\":\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n if (num2.type !== \"literal\" || num1.type !== \"literal\") {\n // both roll operands must be numbers\n return null;\n }\n j = num2.number;\n n = num1.number;\n if (\n n <= 0 ||\n !Number.isInteger(n) ||\n !Number.isInteger(j) ||\n stack.length < n\n ) {\n // ... and integers\n return null;\n }\n j = ((j % n) + n) % n;\n if (j === 0) {\n break; // just skipping -- there are nothing to rotate\n }\n Array.prototype.push.apply(\n stack,\n stack.splice(stack.length - n, n - j)\n );\n break;\n default:\n return null; // unsupported operator\n }\n }\n\n if (stack.length !== outputSize) {\n return null;\n }\n\n const result = [];\n for (const instruction of instructions) {\n const statementBuilder = new ExpressionBuilderVisitor();\n instruction.visit(statementBuilder);\n result.push(statementBuilder.toString());\n }\n for (let i = 0, ii = stack.length; i < ii; i++) {\n const expr = stack[i],\n statementBuilder = new ExpressionBuilderVisitor();\n expr.visit(statementBuilder);\n const min = range[i * 2],\n max = range[i * 2 + 1];\n const out = [statementBuilder.toString()];\n if (min > expr.min) {\n out.unshift(\"Math.max(\", min, \", \");\n out.push(\")\");\n }\n if (max < expr.max) {\n out.unshift(\"Math.min(\", max, \", \");\n out.push(\")\");\n }\n out.unshift(\"dest[destOffset + \", i, \"] = \");\n out.push(\";\");\n result.push(out.join(\"\"));\n }\n return result.join(\"\\n\");\n }\n }\n\n return PostScriptCompiler;\n})();\n\nexport {\n isPDFFunction,\n PDFFunctionFactory,\n PostScriptCompiler,\n PostScriptEvaluator,\n};\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FormatError, shadow } from \"../shared/util.js\";\nimport { EOF } from \"./primitives.js\";\nimport { isWhiteSpace } from \"./core_utils.js\";\n\nclass PostScriptParser {\n constructor(lexer) {\n this.lexer = lexer;\n this.operators = [];\n this.token = null;\n this.prev = null;\n }\n\n nextToken() {\n this.prev = this.token;\n this.token = this.lexer.getToken();\n }\n\n accept(type) {\n if (this.token.type === type) {\n this.nextToken();\n return true;\n }\n return false;\n }\n\n expect(type) {\n if (this.accept(type)) {\n return true;\n }\n throw new FormatError(\n `Unexpected symbol: found ${this.token.type} expected ${type}.`\n );\n }\n\n parse() {\n this.nextToken();\n this.expect(PostScriptTokenTypes.LBRACE);\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n return this.operators;\n }\n\n parseBlock() {\n while (true) {\n if (this.accept(PostScriptTokenTypes.NUMBER)) {\n this.operators.push(this.prev.value);\n } else if (this.accept(PostScriptTokenTypes.OPERATOR)) {\n this.operators.push(this.prev.value);\n } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n this.parseCondition();\n } else {\n return;\n }\n }\n }\n\n parseCondition() {\n // Add two place holders that will be updated later\n const conditionLocation = this.operators.length;\n this.operators.push(null, null);\n\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n if (this.accept(PostScriptTokenTypes.IF)) {\n // The true block is right after the 'if' so it just falls through on true\n // else it jumps and skips the true block.\n this.operators[conditionLocation] = this.operators.length;\n this.operators[conditionLocation + 1] = \"jz\";\n } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n const jumpLocation = this.operators.length;\n this.operators.push(null, null);\n const endOfTrue = this.operators.length;\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n this.expect(PostScriptTokenTypes.IFELSE);\n // The jump is added at the end of the true block to skip the false block.\n this.operators[jumpLocation] = this.operators.length;\n this.operators[jumpLocation + 1] = \"j\";\n\n this.operators[conditionLocation] = endOfTrue;\n this.operators[conditionLocation + 1] = \"jz\";\n } else {\n throw new FormatError(\"PS Function: error parsing conditional.\");\n }\n }\n}\n\nconst PostScriptTokenTypes = {\n LBRACE: 0,\n RBRACE: 1,\n NUMBER: 2,\n OPERATOR: 3,\n IF: 4,\n IFELSE: 5,\n};\n\nclass PostScriptToken {\n static get opCache() {\n return shadow(this, \"opCache\", Object.create(null));\n }\n\n constructor(type, value) {\n this.type = type;\n this.value = value;\n }\n\n static getOperator(op) {\n const opValue = PostScriptToken.opCache[op];\n if (opValue) {\n return opValue;\n }\n return (PostScriptToken.opCache[op] = new PostScriptToken(\n PostScriptTokenTypes.OPERATOR,\n op\n ));\n }\n\n static get LBRACE() {\n return shadow(\n this,\n \"LBRACE\",\n new PostScriptToken(PostScriptTokenTypes.LBRACE, \"{\")\n );\n }\n\n static get RBRACE() {\n return shadow(\n this,\n \"RBRACE\",\n new PostScriptToken(PostScriptTokenTypes.RBRACE, \"}\")\n );\n }\n\n static get IF() {\n return shadow(\n this,\n \"IF\",\n new PostScriptToken(PostScriptTokenTypes.IF, \"IF\")\n );\n }\n\n static get IFELSE() {\n return shadow(\n this,\n \"IFELSE\",\n new PostScriptToken(PostScriptTokenTypes.IFELSE, \"IFELSE\")\n );\n }\n}\n\nclass PostScriptLexer {\n constructor(stream) {\n this.stream = stream;\n this.nextChar();\n\n this.strBuf = [];\n }\n\n nextChar() {\n return (this.currentChar = this.stream.getByte());\n }\n\n getToken() {\n let comment = false;\n let ch = this.currentChar;\n\n // skip comments\n while (true) {\n if (ch < 0) {\n return EOF;\n }\n\n if (comment) {\n if (ch === 0x0a || ch === 0x0d) {\n comment = false;\n }\n } else if (ch === /* '%' = */ 0x25) {\n comment = true;\n } else if (!isWhiteSpace(ch)) {\n break;\n }\n ch = this.nextChar();\n }\n switch (ch | 0) {\n case 0x30: // '0'\n case 0x31: // '1'\n case 0x32: // '2'\n case 0x33: // '3'\n case 0x34: // '4'\n case 0x35: // '5'\n case 0x36: // '6'\n case 0x37: // '7'\n case 0x38: // '8'\n case 0x39: // '9'\n case 0x2b: // '+'\n case 0x2d: // '-'\n case 0x2e: // '.'\n return new PostScriptToken(\n PostScriptTokenTypes.NUMBER,\n this.getNumber()\n );\n case 0x7b: // '{'\n this.nextChar();\n return PostScriptToken.LBRACE;\n case 0x7d: // '}'\n this.nextChar();\n return PostScriptToken.RBRACE;\n }\n // operator\n const strBuf = this.strBuf;\n strBuf.length = 0;\n strBuf[0] = String.fromCharCode(ch);\n\n while (\n (ch = this.nextChar()) >= 0 &&\n ((ch >= /* 'A' = */ 0x41 && ch <= /* 'Z' = */ 0x5a) ||\n (ch >= /* 'a' = */ 0x61 && ch <= /* 'z' = */ 0x7a))\n ) {\n strBuf.push(String.fromCharCode(ch));\n }\n const str = strBuf.join(\"\");\n switch (str.toLowerCase()) {\n case \"if\":\n return PostScriptToken.IF;\n case \"ifelse\":\n return PostScriptToken.IFELSE;\n default:\n return PostScriptToken.getOperator(str);\n }\n }\n\n getNumber() {\n let ch = this.currentChar;\n const strBuf = this.strBuf;\n strBuf.length = 0;\n strBuf[0] = String.fromCharCode(ch);\n\n while ((ch = this.nextChar()) >= 0) {\n if (\n (ch >= /* '0' = */ 0x30 && ch <= /* '9' = */ 0x39) ||\n ch === /* '-' = */ 0x2d ||\n ch === /* '.' = */ 0x2e\n ) {\n strBuf.push(String.fromCharCode(ch));\n } else {\n break;\n }\n }\n const value = parseFloat(strBuf.join(\"\"));\n if (isNaN(value)) {\n throw new FormatError(`Invalid floating point number: ${value}`);\n }\n return value;\n }\n}\n\nexport { PostScriptLexer, PostScriptParser };\n","/* Copyright 2019 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, shadow, unreachable, warn } from \"../shared/util.js\";\nimport { RefSetCache } from \"./primitives.js\";\n\nclass BaseLocalCache {\n constructor(options) {\n if (this.constructor === BaseLocalCache) {\n unreachable(\"Cannot initialize BaseLocalCache.\");\n }\n this._onlyRefs = (options && options.onlyRefs) === true;\n\n if (!this._onlyRefs) {\n this._nameRefMap = new Map();\n this._imageMap = new Map();\n }\n this._imageCache = new RefSetCache();\n }\n\n getByName(name) {\n if (this._onlyRefs) {\n unreachable(\"Should not call `getByName` method.\");\n }\n const ref = this._nameRefMap.get(name);\n if (ref) {\n return this.getByRef(ref);\n }\n return this._imageMap.get(name) || null;\n }\n\n getByRef(ref) {\n return this._imageCache.get(ref) || null;\n }\n\n set(name, ref, data) {\n unreachable(\"Abstract method `set` called.\");\n }\n}\n\nclass LocalImageCache extends BaseLocalCache {\n set(name, ref = null, data) {\n if (typeof name !== \"string\") {\n throw new Error('LocalImageCache.set - expected \"name\" argument.');\n }\n if (ref) {\n if (this._imageCache.has(ref)) {\n return;\n }\n this._nameRefMap.set(name, ref);\n this._imageCache.put(ref, data);\n return;\n }\n // name\n if (this._imageMap.has(name)) {\n return;\n }\n this._imageMap.set(name, data);\n }\n}\n\nclass LocalColorSpaceCache extends BaseLocalCache {\n set(name = null, ref = null, data) {\n if (typeof name !== \"string\" && !ref) {\n throw new Error(\n 'LocalColorSpaceCache.set - expected \"name\" and/or \"ref\" argument.'\n );\n }\n if (ref) {\n if (this._imageCache.has(ref)) {\n return;\n }\n if (name !== null) {\n // Optional when `ref` is defined.\n this._nameRefMap.set(name, ref);\n }\n this._imageCache.put(ref, data);\n return;\n }\n // name\n if (this._imageMap.has(name)) {\n return;\n }\n this._imageMap.set(name, data);\n }\n}\n\nclass LocalFunctionCache extends BaseLocalCache {\n constructor(options) {\n super({ onlyRefs: true });\n }\n\n set(name = null, ref, data) {\n if (!ref) {\n throw new Error('LocalFunctionCache.set - expected \"ref\" argument.');\n }\n if (this._imageCache.has(ref)) {\n return;\n }\n this._imageCache.put(ref, data);\n }\n}\n\nclass LocalGStateCache extends BaseLocalCache {\n set(name, ref = null, data) {\n if (typeof name !== \"string\") {\n throw new Error('LocalGStateCache.set - expected \"name\" argument.');\n }\n if (ref) {\n if (this._imageCache.has(ref)) {\n return;\n }\n this._nameRefMap.set(name, ref);\n this._imageCache.put(ref, data);\n return;\n }\n // name\n if (this._imageMap.has(name)) {\n return;\n }\n this._imageMap.set(name, data);\n }\n}\n\nclass LocalTilingPatternCache extends BaseLocalCache {\n constructor(options) {\n super({ onlyRefs: true });\n }\n\n set(name = null, ref, data) {\n if (!ref) {\n throw new Error('LocalTilingPatternCache.set - expected \"ref\" argument.');\n }\n if (this._imageCache.has(ref)) {\n return;\n }\n this._imageCache.put(ref, data);\n }\n}\n\nclass GlobalImageCache {\n static get NUM_PAGES_THRESHOLD() {\n return shadow(this, \"NUM_PAGES_THRESHOLD\", 2);\n }\n\n static get MIN_IMAGES_TO_CACHE() {\n return shadow(this, \"MIN_IMAGES_TO_CACHE\", 10);\n }\n\n static get MAX_BYTE_SIZE() {\n return shadow(this, \"MAX_BYTE_SIZE\", /* Forty megabytes = */ 40e6);\n }\n\n constructor() {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n GlobalImageCache.NUM_PAGES_THRESHOLD > 1,\n \"GlobalImageCache - invalid NUM_PAGES_THRESHOLD constant.\"\n );\n }\n this._refCache = new RefSetCache();\n this._imageCache = new RefSetCache();\n }\n\n get _byteSize() {\n let byteSize = 0;\n for (const imageData of this._imageCache) {\n byteSize += imageData.byteSize;\n }\n return byteSize;\n }\n\n get _cacheLimitReached() {\n if (this._imageCache.size < GlobalImageCache.MIN_IMAGES_TO_CACHE) {\n return false;\n }\n if (this._byteSize < GlobalImageCache.MAX_BYTE_SIZE) {\n return false;\n }\n return true;\n }\n\n shouldCache(ref, pageIndex) {\n const pageIndexSet = this._refCache.get(ref);\n const numPages = pageIndexSet\n ? pageIndexSet.size + (pageIndexSet.has(pageIndex) ? 0 : 1)\n : 1;\n\n if (numPages < GlobalImageCache.NUM_PAGES_THRESHOLD) {\n return false;\n }\n if (!this._imageCache.has(ref) && this._cacheLimitReached) {\n return false;\n }\n return true;\n }\n\n addPageIndex(ref, pageIndex) {\n let pageIndexSet = this._refCache.get(ref);\n if (!pageIndexSet) {\n pageIndexSet = new Set();\n this._refCache.put(ref, pageIndexSet);\n }\n pageIndexSet.add(pageIndex);\n }\n\n /**\n * PLEASE NOTE: Must be called *after* the `setData` method.\n */\n addByteSize(ref, byteSize) {\n const imageData = this._imageCache.get(ref);\n if (!imageData) {\n return; // The image data isn't cached (the limit was reached).\n }\n if (imageData.byteSize) {\n return; // The byte-size has already been set.\n }\n imageData.byteSize = byteSize;\n }\n\n getData(ref, pageIndex) {\n const pageIndexSet = this._refCache.get(ref);\n if (!pageIndexSet) {\n return null;\n }\n if (pageIndexSet.size < GlobalImageCache.NUM_PAGES_THRESHOLD) {\n return null;\n }\n const imageData = this._imageCache.get(ref);\n if (!imageData) {\n return null;\n }\n // Ensure that we keep track of all pages containing the image reference.\n pageIndexSet.add(pageIndex);\n\n return imageData;\n }\n\n setData(ref, data) {\n if (!this._refCache.has(ref)) {\n throw new Error(\n 'GlobalImageCache.setData - expected \"addPageIndex\" to have been called.'\n );\n }\n if (this._imageCache.has(ref)) {\n return;\n }\n if (this._cacheLimitReached) {\n warn(\"GlobalImageCache.setData - cache limit reached.\");\n return;\n }\n this._imageCache.put(ref, data);\n }\n\n clear(onlyData = false) {\n if (!onlyData) {\n this._refCache.clear();\n }\n this._imageCache.clear();\n }\n}\n\nexport {\n GlobalImageCache,\n LocalColorSpaceCache,\n LocalFunctionCache,\n LocalGStateCache,\n LocalImageCache,\n LocalTilingPatternCache,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { warn } from \"../shared/util.js\";\n\n// Character types for symbols from 0000 to 00FF.\n// Source: ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData.txt\n// prettier-ignore\nconst baseTypes = [\n \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"S\", \"B\", \"S\",\n \"WS\", \"B\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\",\n \"BN\", \"BN\", \"BN\", \"BN\", \"B\", \"B\", \"B\", \"S\", \"WS\", \"ON\", \"ON\", \"ET\",\n \"ET\", \"ET\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ES\", \"CS\", \"ES\", \"CS\", \"CS\",\n \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"CS\", \"ON\",\n \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\",\n \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"B\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\",\n \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\",\n \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"CS\", \"ON\", \"ET\",\n \"ET\", \"ET\", \"ET\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"ON\", \"ON\", \"BN\", \"ON\",\n \"ON\", \"ET\", \"ET\", \"EN\", \"EN\", \"ON\", \"L\", \"ON\", \"ON\", \"ON\", \"EN\", \"L\",\n \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\"\n];\n\n// Character types for symbols from 0600 to 06FF.\n// Source: ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData.txt\n// Note that 061D does not exist in the Unicode standard (see\n// http://unicode.org/charts/PDF/U0600.pdf), so we replace it with an\n// empty string and issue a warning if we encounter this character. The\n// empty string is required to properly index the items after it.\n// prettier-ignore\nconst arabicTypes = [\n \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"ON\", \"ON\", \"AL\", \"ET\", \"ET\", \"AL\",\n \"CS\", \"AL\", \"ON\", \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\",\n \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\",\n \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\",\n \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\",\n \"AN\", \"AN\", \"AN\", \"ET\", \"AN\", \"AN\", \"AL\", \"AL\", \"AL\", \"NSM\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AN\",\n \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"NSM\", \"NSM\",\n \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"EN\", \"EN\", \"EN\", \"EN\",\n \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\"\n];\n\nfunction isOdd(i) {\n return (i & 1) !== 0;\n}\n\nfunction isEven(i) {\n return (i & 1) === 0;\n}\n\nfunction findUnequal(arr, start, value) {\n let j, jj;\n for (j = start, jj = arr.length; j < jj; ++j) {\n if (arr[j] !== value) {\n return j;\n }\n }\n return j;\n}\n\nfunction setValues(arr, start, end, value) {\n for (let j = start; j < end; ++j) {\n arr[j] = value;\n }\n}\n\nfunction reverseValues(arr, start, end) {\n for (let i = start, j = end - 1; i < j; ++i, --j) {\n const temp = arr[i];\n arr[i] = arr[j];\n arr[j] = temp;\n }\n}\n\nfunction createBidiText(str, isLTR, vertical = false) {\n let dir = \"ltr\";\n if (vertical) {\n dir = \"ttb\";\n } else if (!isLTR) {\n dir = \"rtl\";\n }\n return { str, dir };\n}\n\n// These are used in bidi(), which is called frequently. We re-use them on\n// each call to avoid unnecessary allocations.\nconst chars = [];\nconst types = [];\n\nfunction bidi(str, startLevel = -1, vertical = false) {\n let isLTR = true;\n const strLength = str.length;\n if (strLength === 0 || vertical) {\n return createBidiText(str, isLTR, vertical);\n }\n\n // Get types and fill arrays\n chars.length = strLength;\n types.length = strLength;\n let numBidi = 0;\n\n let i, ii;\n for (i = 0; i < strLength; ++i) {\n chars[i] = str.charAt(i);\n\n const charCode = str.charCodeAt(i);\n let charType = \"L\";\n if (charCode <= 0x00ff) {\n charType = baseTypes[charCode];\n } else if (0x0590 <= charCode && charCode <= 0x05f4) {\n charType = \"R\";\n } else if (0x0600 <= charCode && charCode <= 0x06ff) {\n charType = arabicTypes[charCode & 0xff];\n if (!charType) {\n warn(\"Bidi: invalid Unicode character \" + charCode.toString(16));\n }\n } else if (0x0700 <= charCode && charCode <= 0x08ac) {\n charType = \"AL\";\n }\n if (charType === \"R\" || charType === \"AL\" || charType === \"AN\") {\n numBidi++;\n }\n types[i] = charType;\n }\n\n // Detect the bidi method\n // - If there are no rtl characters then no bidi needed\n // - If less than 30% chars are rtl then string is primarily ltr,\n // unless the string is very short.\n // - If more than 30% chars are rtl then string is primarily rtl\n if (numBidi === 0) {\n isLTR = true;\n return createBidiText(str, isLTR);\n }\n\n if (startLevel === -1) {\n if (numBidi / strLength < 0.3 && strLength > 4) {\n isLTR = true;\n startLevel = 0;\n } else {\n isLTR = false;\n startLevel = 1;\n }\n }\n\n const levels = [];\n for (i = 0; i < strLength; ++i) {\n levels[i] = startLevel;\n }\n\n /*\n X1-X10: skip most of this, since we are NOT doing the embeddings.\n */\n const e = isOdd(startLevel) ? \"R\" : \"L\";\n const sor = e;\n const eor = sor;\n\n /*\n W1. Examine each non-spacing mark (NSM) in the level run, and change the\n type of the NSM to the type of the previous character. If the NSM is at the\n start of the level run, it will get the type of sor.\n */\n let lastType = sor;\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"NSM\") {\n types[i] = lastType;\n } else {\n lastType = types[i];\n }\n }\n\n /*\n W2. Search backwards from each instance of a European number until the\n first strong type (R, L, AL, or sor) is found. If an AL is found, change\n the type of the European number to Arabic number.\n */\n lastType = sor;\n let t;\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === \"EN\") {\n types[i] = lastType === \"AL\" ? \"AN\" : \"EN\";\n } else if (t === \"R\" || t === \"L\" || t === \"AL\") {\n lastType = t;\n }\n }\n\n /*\n W3. Change all ALs to R.\n */\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === \"AL\") {\n types[i] = \"R\";\n }\n }\n\n /*\n W4. A single European separator between two European numbers changes to a\n European number. A single common separator between two numbers of the same\n type changes to that type:\n */\n for (i = 1; i < strLength - 1; ++i) {\n if (types[i] === \"ES\" && types[i - 1] === \"EN\" && types[i + 1] === \"EN\") {\n types[i] = \"EN\";\n }\n if (\n types[i] === \"CS\" &&\n (types[i - 1] === \"EN\" || types[i - 1] === \"AN\") &&\n types[i + 1] === types[i - 1]\n ) {\n types[i] = types[i - 1];\n }\n }\n\n /*\n W5. A sequence of European terminators adjacent to European numbers changes\n to all European numbers:\n */\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"EN\") {\n // do before\n for (let j = i - 1; j >= 0; --j) {\n if (types[j] !== \"ET\") {\n break;\n }\n types[j] = \"EN\";\n }\n // do after\n for (let j = i + 1; j < strLength; ++j) {\n if (types[j] !== \"ET\") {\n break;\n }\n types[j] = \"EN\";\n }\n }\n }\n\n /*\n W6. Otherwise, separators and terminators change to Other Neutral:\n */\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === \"WS\" || t === \"ES\" || t === \"ET\" || t === \"CS\") {\n types[i] = \"ON\";\n }\n }\n\n /*\n W7. Search backwards from each instance of a European number until the\n first strong type (R, L, or sor) is found. If an L is found, then change\n the type of the European number to L.\n */\n lastType = sor;\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === \"EN\") {\n types[i] = lastType === \"L\" ? \"L\" : \"EN\";\n } else if (t === \"R\" || t === \"L\") {\n lastType = t;\n }\n }\n\n /*\n N1. A sequence of neutrals takes the direction of the surrounding strong\n text if the text on both sides has the same direction. European and Arabic\n numbers are treated as though they were R. Start-of-level-run (sor) and\n end-of-level-run (eor) are used at level run boundaries.\n */\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"ON\") {\n const end = findUnequal(types, i + 1, \"ON\");\n let before = sor;\n if (i > 0) {\n before = types[i - 1];\n }\n\n let after = eor;\n if (end + 1 < strLength) {\n after = types[end + 1];\n }\n if (before !== \"L\") {\n before = \"R\";\n }\n if (after !== \"L\") {\n after = \"R\";\n }\n if (before === after) {\n setValues(types, i, end, before);\n }\n i = end - 1; // reset to end (-1 so next iteration is ok)\n }\n }\n\n /*\n N2. Any remaining neutrals take the embedding direction.\n */\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"ON\") {\n types[i] = e;\n }\n }\n\n /*\n I1. For all characters with an even (left-to-right) embedding direction,\n those of type R go up one level and those of type AN or EN go up two\n levels.\n I2. For all characters with an odd (right-to-left) embedding direction,\n those of type L, EN or AN go up one level.\n */\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (isEven(levels[i])) {\n if (t === \"R\") {\n levels[i] += 1;\n } else if (t === \"AN\" || t === \"EN\") {\n levels[i] += 2;\n }\n } else {\n // isOdd\n if (t === \"L\" || t === \"AN\" || t === \"EN\") {\n levels[i] += 1;\n }\n }\n }\n\n /*\n L1. On each line, reset the embedding level of the following characters to\n the paragraph embedding level:\n\n segment separators,\n paragraph separators,\n any sequence of whitespace characters preceding a segment separator or\n paragraph separator, and any sequence of white space characters at the end\n of the line.\n */\n\n // don't bother as text is only single line\n\n /*\n L2. From the highest level found in the text to the lowest odd level on\n each line, reverse any contiguous sequence of characters that are at that\n level or higher.\n */\n\n // find highest level & lowest odd level\n let highestLevel = -1;\n let lowestOddLevel = 99;\n let level;\n for (i = 0, ii = levels.length; i < ii; ++i) {\n level = levels[i];\n if (highestLevel < level) {\n highestLevel = level;\n }\n if (lowestOddLevel > level && isOdd(level)) {\n lowestOddLevel = level;\n }\n }\n\n // now reverse between those limits\n for (level = highestLevel; level >= lowestOddLevel; --level) {\n // find segments to reverse\n let start = -1;\n for (i = 0, ii = levels.length; i < ii; ++i) {\n if (levels[i] < level) {\n if (start >= 0) {\n reverseValues(chars, start, i);\n start = -1;\n }\n } else if (start < 0) {\n start = i;\n }\n }\n if (start >= 0) {\n reverseValues(chars, start, levels.length);\n }\n }\n\n /*\n L3. Combining marks applied to a right-to-left base character will at this\n point precede their base character. If the rendering engine expects them to\n follow the base characters in the final display process, then the ordering\n of the marks and the base character must be reversed.\n */\n\n // don't bother for now\n\n /*\n L4. A character that possesses the mirrored property as specified by\n Section 4.7, Mirrored, must be depicted by a mirrored glyph if the resolved\n directionality of that character is R.\n */\n\n // don't mirror as characters are already mirrored in the pdf\n\n // Finally, return string\n for (i = 0, ii = chars.length; i < ii; ++i) {\n const ch = chars[i];\n if (ch === \"<\" || ch === \">\") {\n chars[i] = \"\";\n }\n }\n return createBidiText(chars.join(\"\"), isLTR);\n}\n\nexport { bidi };\n","/* Copyright 2014 Opera Software ASA\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n *\n * Based on https://code.google.com/p/smhasher/wiki/MurmurHash3.\n * Hashes roughly 100 KB per millisecond on i7 3.4 GHz.\n */\n\nimport { isArrayBuffer } from \"./util.js\";\n\nconst SEED = 0xc3d2e1f0;\n// Workaround for missing math precision in JS.\nconst MASK_HIGH = 0xffff0000;\nconst MASK_LOW = 0xffff;\n\nclass MurmurHash3_64 {\n constructor(seed) {\n this.h1 = seed ? seed & 0xffffffff : SEED;\n this.h2 = seed ? seed & 0xffffffff : SEED;\n }\n\n update(input) {\n let data, length;\n if (typeof input === \"string\") {\n data = new Uint8Array(input.length * 2);\n length = 0;\n for (let i = 0, ii = input.length; i < ii; i++) {\n const code = input.charCodeAt(i);\n if (code <= 0xff) {\n data[length++] = code;\n } else {\n data[length++] = code >>> 8;\n data[length++] = code & 0xff;\n }\n }\n } else if (isArrayBuffer(input)) {\n data = input.slice();\n length = data.byteLength;\n } else {\n throw new Error(\n \"Wrong data format in MurmurHash3_64_update. \" +\n \"Input must be a string or array.\"\n );\n }\n\n const blockCounts = length >> 2;\n const tailLength = length - blockCounts * 4;\n // We don't care about endianness here.\n const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n let k1 = 0,\n k2 = 0;\n let h1 = this.h1,\n h2 = this.h2;\n const C1 = 0xcc9e2d51,\n C2 = 0x1b873593;\n const C1_LOW = C1 & MASK_LOW,\n C2_LOW = C2 & MASK_LOW;\n\n for (let i = 0; i < blockCounts; i++) {\n if (i & 1) {\n k1 = dataUint32[i];\n k1 = ((k1 * C1) & MASK_HIGH) | ((k1 * C1_LOW) & MASK_LOW);\n k1 = (k1 << 15) | (k1 >>> 17);\n k1 = ((k1 * C2) & MASK_HIGH) | ((k1 * C2_LOW) & MASK_LOW);\n h1 ^= k1;\n h1 = (h1 << 13) | (h1 >>> 19);\n h1 = h1 * 5 + 0xe6546b64;\n } else {\n k2 = dataUint32[i];\n k2 = ((k2 * C1) & MASK_HIGH) | ((k2 * C1_LOW) & MASK_LOW);\n k2 = (k2 << 15) | (k2 >>> 17);\n k2 = ((k2 * C2) & MASK_HIGH) | ((k2 * C2_LOW) & MASK_LOW);\n h2 ^= k2;\n h2 = (h2 << 13) | (h2 >>> 19);\n h2 = h2 * 5 + 0xe6546b64;\n }\n }\n\n k1 = 0;\n\n switch (tailLength) {\n case 3:\n k1 ^= data[blockCounts * 4 + 2] << 16;\n /* falls through */\n case 2:\n k1 ^= data[blockCounts * 4 + 1] << 8;\n /* falls through */\n case 1:\n k1 ^= data[blockCounts * 4];\n /* falls through */\n\n k1 = ((k1 * C1) & MASK_HIGH) | ((k1 * C1_LOW) & MASK_LOW);\n k1 = (k1 << 15) | (k1 >>> 17);\n k1 = ((k1 * C2) & MASK_HIGH) | ((k1 * C2_LOW) & MASK_LOW);\n if (blockCounts & 1) {\n h1 ^= k1;\n } else {\n h2 ^= k1;\n }\n }\n\n this.h1 = h1;\n this.h2 = h2;\n }\n\n hexdigest() {\n let h1 = this.h1,\n h2 = this.h2;\n\n h1 ^= h2 >>> 1;\n h1 = ((h1 * 0xed558ccd) & MASK_HIGH) | ((h1 * 0x8ccd) & MASK_LOW);\n h2 =\n ((h2 * 0xff51afd7) & MASK_HIGH) |\n (((((h2 << 16) | (h1 >>> 16)) * 0xafd7ed55) & MASK_HIGH) >>> 16);\n h1 ^= h2 >>> 1;\n h1 = ((h1 * 0x1a85ec53) & MASK_HIGH) | ((h1 * 0xec53) & MASK_LOW);\n h2 =\n ((h2 * 0xc4ceb9fe) & MASK_HIGH) |\n (((((h2 << 16) | (h1 >>> 16)) * 0xb9fe1a85) & MASK_HIGH) >>> 16);\n h1 ^= h2 >>> 1;\n\n const hex1 = (h1 >>> 0).toString(16),\n hex2 = (h2 >>> 0).toString(16);\n return hex1.padStart(8, \"0\") + hex2.padStart(8, \"0\");\n }\n}\n\nexport { MurmurHash3_64 };\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ImageKind,\n OPS,\n RenderingIntentFlag,\n shadow,\n warn,\n} from \"../shared/util.js\";\n\nfunction addState(parentState, pattern, checkFn, iterateFn, processFn) {\n let state = parentState;\n for (let i = 0, ii = pattern.length - 1; i < ii; i++) {\n const item = pattern[i];\n state = state[item] || (state[item] = []);\n }\n state[pattern[pattern.length - 1]] = {\n checkFn,\n iterateFn,\n processFn,\n };\n}\n\nconst InitialState = [];\n\n// This replaces (save, transform, paintInlineImageXObject, restore)+\n// sequences with one |paintInlineImageXObjectGroup| operation.\naddState(\n InitialState,\n [OPS.save, OPS.transform, OPS.paintInlineImageXObject, OPS.restore],\n null,\n function iterateInlineImageGroup(context, i) {\n const fnArray = context.fnArray;\n const iFirstSave = context.iCurr - 3;\n const pos = (i - iFirstSave) % 4;\n switch (pos) {\n case 0:\n return fnArray[i] === OPS.save;\n case 1:\n return fnArray[i] === OPS.transform;\n case 2:\n return fnArray[i] === OPS.paintInlineImageXObject;\n case 3:\n return fnArray[i] === OPS.restore;\n }\n throw new Error(`iterateInlineImageGroup - invalid pos: ${pos}`);\n },\n function foundInlineImageGroup(context, i) {\n const MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10;\n const MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200;\n const MAX_WIDTH = 1000;\n const IMAGE_PADDING = 1;\n\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const curr = context.iCurr;\n const iFirstSave = curr - 3;\n const iFirstTransform = curr - 2;\n const iFirstPIIXO = curr - 1;\n\n const count = Math.min(\n Math.floor((i - iFirstSave) / 4),\n MAX_IMAGES_IN_INLINE_IMAGES_BLOCK\n );\n if (count < MIN_IMAGES_IN_INLINE_IMAGES_BLOCK) {\n return i - ((i - iFirstSave) % 4);\n }\n\n // assuming that heights of those image is too small (~1 pixel)\n // packing as much as possible by lines\n let maxX = 0;\n const map = [];\n let maxLineHeight = 0;\n let currentX = IMAGE_PADDING,\n currentY = IMAGE_PADDING;\n for (let q = 0; q < count; q++) {\n const transform = argsArray[iFirstTransform + (q << 2)];\n const img = argsArray[iFirstPIIXO + (q << 2)][0];\n if (currentX + img.width > MAX_WIDTH) {\n // starting new line\n maxX = Math.max(maxX, currentX);\n currentY += maxLineHeight + 2 * IMAGE_PADDING;\n currentX = 0;\n maxLineHeight = 0;\n }\n map.push({\n transform,\n x: currentX,\n y: currentY,\n w: img.width,\n h: img.height,\n });\n currentX += img.width + 2 * IMAGE_PADDING;\n maxLineHeight = Math.max(maxLineHeight, img.height);\n }\n const imgWidth = Math.max(maxX, currentX) + IMAGE_PADDING;\n const imgHeight = currentY + maxLineHeight + IMAGE_PADDING;\n const imgData = new Uint8Array(imgWidth * imgHeight * 4);\n const imgRowSize = imgWidth << 2;\n for (let q = 0; q < count; q++) {\n const data = argsArray[iFirstPIIXO + (q << 2)][0].data;\n // Copy image by lines and extends pixels into padding.\n const rowSize = map[q].w << 2;\n let dataOffset = 0;\n let offset = (map[q].x + map[q].y * imgWidth) << 2;\n imgData.set(data.subarray(0, rowSize), offset - imgRowSize);\n for (let k = 0, kk = map[q].h; k < kk; k++) {\n imgData.set(data.subarray(dataOffset, dataOffset + rowSize), offset);\n dataOffset += rowSize;\n offset += imgRowSize;\n }\n imgData.set(data.subarray(dataOffset - rowSize, dataOffset), offset);\n while (offset >= 0) {\n data[offset - 4] = data[offset];\n data[offset - 3] = data[offset + 1];\n data[offset - 2] = data[offset + 2];\n data[offset - 1] = data[offset + 3];\n data[offset + rowSize] = data[offset + rowSize - 4];\n data[offset + rowSize + 1] = data[offset + rowSize - 3];\n data[offset + rowSize + 2] = data[offset + rowSize - 2];\n data[offset + rowSize + 3] = data[offset + rowSize - 1];\n offset -= imgRowSize;\n }\n }\n\n // Replace queue items.\n fnArray.splice(iFirstSave, count * 4, OPS.paintInlineImageXObjectGroup);\n argsArray.splice(iFirstSave, count * 4, [\n {\n width: imgWidth,\n height: imgHeight,\n kind: ImageKind.RGBA_32BPP,\n data: imgData,\n },\n map,\n ]);\n\n return iFirstSave + 1;\n }\n);\n\n// This replaces (save, transform, paintImageMaskXObject, restore)+\n// sequences with one |paintImageMaskXObjectGroup| or one\n// |paintImageMaskXObjectRepeat| operation.\naddState(\n InitialState,\n [OPS.save, OPS.transform, OPS.paintImageMaskXObject, OPS.restore],\n null,\n function iterateImageMaskGroup(context, i) {\n const fnArray = context.fnArray;\n const iFirstSave = context.iCurr - 3;\n const pos = (i - iFirstSave) % 4;\n switch (pos) {\n case 0:\n return fnArray[i] === OPS.save;\n case 1:\n return fnArray[i] === OPS.transform;\n case 2:\n return fnArray[i] === OPS.paintImageMaskXObject;\n case 3:\n return fnArray[i] === OPS.restore;\n }\n throw new Error(`iterateImageMaskGroup - invalid pos: ${pos}`);\n },\n function foundImageMaskGroup(context, i) {\n const MIN_IMAGES_IN_MASKS_BLOCK = 10;\n const MAX_IMAGES_IN_MASKS_BLOCK = 100;\n const MAX_SAME_IMAGES_IN_MASKS_BLOCK = 1000;\n\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const curr = context.iCurr;\n const iFirstSave = curr - 3;\n const iFirstTransform = curr - 2;\n const iFirstPIMXO = curr - 1;\n\n // At this point, i is the index of the first op past the last valid\n // quartet.\n let count = Math.floor((i - iFirstSave) / 4);\n if (count < MIN_IMAGES_IN_MASKS_BLOCK) {\n return i - ((i - iFirstSave) % 4);\n }\n\n let isSameImage = false;\n let iTransform, transformArgs;\n const firstPIMXOArg0 = argsArray[iFirstPIMXO][0];\n const firstTransformArg0 = argsArray[iFirstTransform][0],\n firstTransformArg1 = argsArray[iFirstTransform][1],\n firstTransformArg2 = argsArray[iFirstTransform][2],\n firstTransformArg3 = argsArray[iFirstTransform][3];\n\n if (firstTransformArg1 === firstTransformArg2) {\n isSameImage = true;\n iTransform = iFirstTransform + 4;\n let iPIMXO = iFirstPIMXO + 4;\n for (let q = 1; q < count; q++, iTransform += 4, iPIMXO += 4) {\n transformArgs = argsArray[iTransform];\n if (\n argsArray[iPIMXO][0] !== firstPIMXOArg0 ||\n transformArgs[0] !== firstTransformArg0 ||\n transformArgs[1] !== firstTransformArg1 ||\n transformArgs[2] !== firstTransformArg2 ||\n transformArgs[3] !== firstTransformArg3\n ) {\n if (q < MIN_IMAGES_IN_MASKS_BLOCK) {\n isSameImage = false;\n } else {\n count = q;\n }\n break; // different image or transform\n }\n }\n }\n\n if (isSameImage) {\n count = Math.min(count, MAX_SAME_IMAGES_IN_MASKS_BLOCK);\n const positions = new Float32Array(count * 2);\n iTransform = iFirstTransform;\n for (let q = 0; q < count; q++, iTransform += 4) {\n transformArgs = argsArray[iTransform];\n positions[q << 1] = transformArgs[4];\n positions[(q << 1) + 1] = transformArgs[5];\n }\n\n // Replace queue items.\n fnArray.splice(iFirstSave, count * 4, OPS.paintImageMaskXObjectRepeat);\n argsArray.splice(iFirstSave, count * 4, [\n firstPIMXOArg0,\n firstTransformArg0,\n firstTransformArg1,\n firstTransformArg2,\n firstTransformArg3,\n positions,\n ]);\n } else {\n count = Math.min(count, MAX_IMAGES_IN_MASKS_BLOCK);\n const images = [];\n for (let q = 0; q < count; q++) {\n transformArgs = argsArray[iFirstTransform + (q << 2)];\n const maskParams = argsArray[iFirstPIMXO + (q << 2)][0];\n images.push({\n data: maskParams.data,\n width: maskParams.width,\n height: maskParams.height,\n interpolate: maskParams.interpolate,\n count: maskParams.count,\n transform: transformArgs,\n });\n }\n\n // Replace queue items.\n fnArray.splice(iFirstSave, count * 4, OPS.paintImageMaskXObjectGroup);\n argsArray.splice(iFirstSave, count * 4, [images]);\n }\n\n return iFirstSave + 1;\n }\n);\n\n// This replaces (save, transform, paintImageXObject, restore)+ sequences\n// with one paintImageXObjectRepeat operation, if the |transform| and\n// |paintImageXObjectRepeat| ops are appropriate.\naddState(\n InitialState,\n [OPS.save, OPS.transform, OPS.paintImageXObject, OPS.restore],\n function (context) {\n const argsArray = context.argsArray;\n const iFirstTransform = context.iCurr - 2;\n return (\n argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0\n );\n },\n function iterateImageGroup(context, i) {\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const iFirstSave = context.iCurr - 3;\n const pos = (i - iFirstSave) % 4;\n switch (pos) {\n case 0:\n return fnArray[i] === OPS.save;\n case 1:\n if (fnArray[i] !== OPS.transform) {\n return false;\n }\n const iFirstTransform = context.iCurr - 2;\n const firstTransformArg0 = argsArray[iFirstTransform][0];\n const firstTransformArg3 = argsArray[iFirstTransform][3];\n if (\n argsArray[i][0] !== firstTransformArg0 ||\n argsArray[i][1] !== 0 ||\n argsArray[i][2] !== 0 ||\n argsArray[i][3] !== firstTransformArg3\n ) {\n return false; // transforms don't match\n }\n return true;\n case 2:\n if (fnArray[i] !== OPS.paintImageXObject) {\n return false;\n }\n const iFirstPIXO = context.iCurr - 1;\n const firstPIXOArg0 = argsArray[iFirstPIXO][0];\n if (argsArray[i][0] !== firstPIXOArg0) {\n return false; // images don't match\n }\n return true;\n case 3:\n return fnArray[i] === OPS.restore;\n }\n throw new Error(`iterateImageGroup - invalid pos: ${pos}`);\n },\n function (context, i) {\n const MIN_IMAGES_IN_BLOCK = 3;\n const MAX_IMAGES_IN_BLOCK = 1000;\n\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const curr = context.iCurr;\n const iFirstSave = curr - 3;\n const iFirstTransform = curr - 2;\n const iFirstPIXO = curr - 1;\n const firstPIXOArg0 = argsArray[iFirstPIXO][0];\n const firstTransformArg0 = argsArray[iFirstTransform][0];\n const firstTransformArg3 = argsArray[iFirstTransform][3];\n\n // At this point, i is the index of the first op past the last valid\n // quartet.\n const count = Math.min(\n Math.floor((i - iFirstSave) / 4),\n MAX_IMAGES_IN_BLOCK\n );\n if (count < MIN_IMAGES_IN_BLOCK) {\n return i - ((i - iFirstSave) % 4);\n }\n\n // Extract the (x,y) positions from all of the matching transforms.\n const positions = new Float32Array(count * 2);\n let iTransform = iFirstTransform;\n for (let q = 0; q < count; q++, iTransform += 4) {\n const transformArgs = argsArray[iTransform];\n positions[q << 1] = transformArgs[4];\n positions[(q << 1) + 1] = transformArgs[5];\n }\n\n // Replace queue items.\n const args = [\n firstPIXOArg0,\n firstTransformArg0,\n firstTransformArg3,\n positions,\n ];\n fnArray.splice(iFirstSave, count * 4, OPS.paintImageXObjectRepeat);\n argsArray.splice(iFirstSave, count * 4, args);\n\n return iFirstSave + 1;\n }\n);\n\n// This replaces (beginText, setFont, setTextMatrix, showText, endText)+\n// sequences with (beginText, setFont, (setTextMatrix, showText)+, endText)+\n// sequences, if the font for each one is the same.\naddState(\n InitialState,\n [OPS.beginText, OPS.setFont, OPS.setTextMatrix, OPS.showText, OPS.endText],\n null,\n function iterateShowTextGroup(context, i) {\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const iFirstSave = context.iCurr - 4;\n const pos = (i - iFirstSave) % 5;\n switch (pos) {\n case 0:\n return fnArray[i] === OPS.beginText;\n case 1:\n return fnArray[i] === OPS.setFont;\n case 2:\n return fnArray[i] === OPS.setTextMatrix;\n case 3:\n if (fnArray[i] !== OPS.showText) {\n return false;\n }\n const iFirstSetFont = context.iCurr - 3;\n const firstSetFontArg0 = argsArray[iFirstSetFont][0];\n const firstSetFontArg1 = argsArray[iFirstSetFont][1];\n if (\n argsArray[i][0] !== firstSetFontArg0 ||\n argsArray[i][1] !== firstSetFontArg1\n ) {\n return false; // fonts don't match\n }\n return true;\n case 4:\n return fnArray[i] === OPS.endText;\n }\n throw new Error(`iterateShowTextGroup - invalid pos: ${pos}`);\n },\n function (context, i) {\n const MIN_CHARS_IN_BLOCK = 3;\n const MAX_CHARS_IN_BLOCK = 1000;\n\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const curr = context.iCurr;\n const iFirstBeginText = curr - 4;\n const iFirstSetFont = curr - 3;\n const iFirstSetTextMatrix = curr - 2;\n const iFirstShowText = curr - 1;\n const iFirstEndText = curr;\n const firstSetFontArg0 = argsArray[iFirstSetFont][0];\n const firstSetFontArg1 = argsArray[iFirstSetFont][1];\n\n // At this point, i is the index of the first op past the last valid\n // quintet.\n let count = Math.min(\n Math.floor((i - iFirstBeginText) / 5),\n MAX_CHARS_IN_BLOCK\n );\n if (count < MIN_CHARS_IN_BLOCK) {\n return i - ((i - iFirstBeginText) % 5);\n }\n\n // If the preceding quintet is (, setFont, setTextMatrix,\n // showText, endText), include that as well. (E.g. might be\n // |dependency|.)\n let iFirst = iFirstBeginText;\n if (\n iFirstBeginText >= 4 &&\n fnArray[iFirstBeginText - 4] === fnArray[iFirstSetFont] &&\n fnArray[iFirstBeginText - 3] === fnArray[iFirstSetTextMatrix] &&\n fnArray[iFirstBeginText - 2] === fnArray[iFirstShowText] &&\n fnArray[iFirstBeginText - 1] === fnArray[iFirstEndText] &&\n argsArray[iFirstBeginText - 4][0] === firstSetFontArg0 &&\n argsArray[iFirstBeginText - 4][1] === firstSetFontArg1\n ) {\n count++;\n iFirst -= 5;\n }\n\n // Remove (endText, beginText, setFont) trios.\n let iEndText = iFirst + 4;\n for (let q = 1; q < count; q++) {\n fnArray.splice(iEndText, 3);\n argsArray.splice(iEndText, 3);\n iEndText += 2;\n }\n\n return iEndText + 1;\n }\n);\n\nclass NullOptimizer {\n constructor(queue) {\n this.queue = queue;\n }\n\n _optimize() {}\n\n push(fn, args) {\n this.queue.fnArray.push(fn);\n this.queue.argsArray.push(args);\n this._optimize();\n }\n\n flush() {}\n\n reset() {}\n}\n\nclass QueueOptimizer extends NullOptimizer {\n constructor(queue) {\n super(queue);\n this.state = null;\n this.context = {\n iCurr: 0,\n fnArray: queue.fnArray,\n argsArray: queue.argsArray,\n };\n this.match = null;\n this.lastProcessed = 0;\n }\n\n _optimize() {\n // Process new fnArray item(s) chunk.\n const fnArray = this.queue.fnArray;\n let i = this.lastProcessed,\n ii = fnArray.length;\n let state = this.state;\n let match = this.match;\n if (!state && !match && i + 1 === ii && !InitialState[fnArray[i]]) {\n // Micro-optimization for the common case: last item is not\n // optimizable, just skipping it.\n this.lastProcessed = ii;\n return;\n }\n\n const context = this.context;\n while (i < ii) {\n if (match) {\n // Already find a block of potentially optimizable items, iterating...\n const iterate = (0, match.iterateFn)(context, i);\n if (iterate) {\n i++;\n continue;\n }\n // Found last items for the block, processing...\n i = (0, match.processFn)(context, i + 1);\n ii = fnArray.length;\n match = null;\n state = null;\n if (i >= ii) {\n break;\n }\n }\n // Find the potentially optimizable items.\n state = (state || InitialState)[fnArray[i]];\n if (!state || Array.isArray(state)) {\n i++;\n continue;\n }\n // Found a start of the block based on addState rules.\n context.iCurr = i;\n i++;\n if (state.checkFn && !(0, state.checkFn)(context)) {\n // Check failed, continue search...\n state = null;\n continue;\n }\n match = state;\n state = null;\n }\n this.state = state;\n this.match = match;\n this.lastProcessed = i;\n }\n\n flush() {\n while (this.match) {\n const length = this.queue.fnArray.length;\n this.lastProcessed = (0, this.match.processFn)(this.context, length);\n this.match = null;\n this.state = null;\n // Repeat optimization until all chunks are exhausted.\n this._optimize();\n }\n }\n\n reset() {\n this.state = null;\n this.match = null;\n this.lastProcessed = 0;\n }\n}\n\nclass OperatorList {\n static get CHUNK_SIZE() {\n return shadow(this, \"CHUNK_SIZE\", 1000);\n }\n\n // Close to chunk size.\n static get CHUNK_SIZE_ABOUT() {\n return shadow(this, \"CHUNK_SIZE_ABOUT\", this.CHUNK_SIZE - 5);\n }\n\n constructor(intent = 0, streamSink) {\n this._streamSink = streamSink;\n this.fnArray = [];\n this.argsArray = [];\n if (streamSink && !(intent & RenderingIntentFlag.OPLIST)) {\n this.optimizer = new QueueOptimizer(this);\n } else {\n this.optimizer = new NullOptimizer(this);\n }\n this.dependencies = new Set();\n this._totalLength = 0;\n this.weight = 0;\n this._resolved = streamSink ? null : Promise.resolve();\n }\n\n get length() {\n return this.argsArray.length;\n }\n\n get ready() {\n return this._resolved || this._streamSink.ready;\n }\n\n /**\n * @type {number} The total length of the entire operator list, since\n * `this.length === 0` after flushing.\n */\n get totalLength() {\n return this._totalLength + this.length;\n }\n\n addOp(fn, args) {\n this.optimizer.push(fn, args);\n this.weight++;\n if (this._streamSink) {\n if (this.weight >= OperatorList.CHUNK_SIZE) {\n this.flush();\n } else if (\n this.weight >= OperatorList.CHUNK_SIZE_ABOUT &&\n (fn === OPS.restore || fn === OPS.endText)\n ) {\n // Heuristic to flush on boundary of restore or endText.\n this.flush();\n }\n }\n }\n\n addImageOps(fn, args, optionalContent) {\n if (optionalContent !== undefined) {\n this.addOp(OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n }\n\n this.addOp(fn, args);\n\n if (optionalContent !== undefined) {\n this.addOp(OPS.endMarkedContent, []);\n }\n }\n\n addDependency(dependency) {\n if (this.dependencies.has(dependency)) {\n return;\n }\n this.dependencies.add(dependency);\n this.addOp(OPS.dependency, [dependency]);\n }\n\n addDependencies(dependencies) {\n for (const dependency of dependencies) {\n this.addDependency(dependency);\n }\n }\n\n addOpList(opList) {\n if (!(opList instanceof OperatorList)) {\n warn('addOpList - ignoring invalid \"opList\" parameter.');\n return;\n }\n for (const dependency of opList.dependencies) {\n this.dependencies.add(dependency);\n }\n for (let i = 0, ii = opList.length; i < ii; i++) {\n this.addOp(opList.fnArray[i], opList.argsArray[i]);\n }\n }\n\n getIR() {\n return {\n fnArray: this.fnArray,\n argsArray: this.argsArray,\n length: this.length,\n };\n }\n\n get _transfers() {\n const transfers = [];\n const { fnArray, argsArray, length } = this;\n for (let i = 0; i < length; i++) {\n switch (fnArray[i]) {\n case OPS.paintInlineImageXObject:\n case OPS.paintInlineImageXObjectGroup:\n case OPS.paintImageMaskXObject:\n const arg = argsArray[i][0]; // First parameter in imgData.\n if (\n !arg.cached &&\n arg.data &&\n arg.data.buffer instanceof ArrayBuffer\n ) {\n transfers.push(arg.data.buffer);\n }\n break;\n }\n }\n return transfers;\n }\n\n flush(lastChunk = false) {\n this.optimizer.flush();\n const length = this.length;\n this._totalLength += length;\n\n this._streamSink.enqueue(\n {\n fnArray: this.fnArray,\n argsArray: this.argsArray,\n lastChunk,\n length,\n },\n 1,\n this._transfers\n );\n\n this.dependencies.clear();\n this.fnArray.length = 0;\n this.argsArray.length = 0;\n this.weight = 0;\n this.optimizer.reset();\n }\n}\n\nexport { OperatorList };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n FeatureTest,\n FormatError,\n ImageKind,\n info,\n warn,\n} from \"../shared/util.js\";\nimport { applyMaskImageData } from \"../shared/image_utils.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { JpegStream } from \"./jpeg_stream.js\";\nimport { JpxImage } from \"./jpx.js\";\nimport { Name } from \"./primitives.js\";\n\n/**\n * Decode and clamp a value. The formula is different from the spec because we\n * don't decode to float range [0,1], we decode it in the [0,max] range.\n */\nfunction decodeAndClamp(value, addend, coefficient, max) {\n value = addend + value * coefficient;\n // Clamp the value to the range\n if (value < 0) {\n value = 0;\n } else if (value > max) {\n value = max;\n }\n return value;\n}\n\n/**\n * Resizes an image mask with 1 component.\n * @param {TypedArray} src - The source buffer.\n * @param {number} bpc - Number of bits per component.\n * @param {number} w1 - Original width.\n * @param {number} h1 - Original height.\n * @param {number} w2 - New width.\n * @param {number} h2 - New height.\n * @returns {TypedArray} The resized image mask buffer.\n */\nfunction resizeImageMask(src, bpc, w1, h1, w2, h2) {\n const length = w2 * h2;\n let dest;\n if (bpc <= 8) {\n dest = new Uint8Array(length);\n } else if (bpc <= 16) {\n dest = new Uint16Array(length);\n } else {\n dest = new Uint32Array(length);\n }\n const xRatio = w1 / w2;\n const yRatio = h1 / h2;\n let i,\n j,\n py,\n newIndex = 0,\n oldIndex;\n const xScaled = new Uint16Array(w2);\n const w1Scanline = w1;\n\n for (i = 0; i < w2; i++) {\n xScaled[i] = Math.floor(i * xRatio);\n }\n for (i = 0; i < h2; i++) {\n py = Math.floor(i * yRatio) * w1Scanline;\n for (j = 0; j < w2; j++) {\n oldIndex = py + xScaled[j];\n dest[newIndex++] = src[oldIndex];\n }\n }\n return dest;\n}\n\nclass PDFImage {\n constructor({\n xref,\n res,\n image,\n isInline = false,\n smask = null,\n mask = null,\n isMask = false,\n pdfFunctionFactory,\n localColorSpaceCache,\n }) {\n this.image = image;\n const dict = image.dict;\n\n const filter = dict.get(\"F\", \"Filter\");\n if (filter instanceof Name) {\n switch (filter.name) {\n case \"JPXDecode\":\n const jpxImage = new JpxImage();\n jpxImage.parseImageProperties(image.stream);\n image.stream.reset();\n\n image.width = jpxImage.width;\n image.height = jpxImage.height;\n image.bitsPerComponent = jpxImage.bitsPerComponent;\n image.numComps = jpxImage.componentsCount;\n break;\n case \"JBIG2Decode\":\n image.bitsPerComponent = 1;\n image.numComps = 1;\n break;\n }\n }\n // TODO cache rendered images?\n\n let width = dict.get(\"W\", \"Width\");\n let height = dict.get(\"H\", \"Height\");\n\n if (\n Number.isInteger(image.width) &&\n image.width > 0 &&\n Number.isInteger(image.height) &&\n image.height > 0 &&\n (image.width !== width || image.height !== height)\n ) {\n warn(\n \"PDFImage - using the Width/Height of the image data, \" +\n \"rather than the image dictionary.\"\n );\n width = image.width;\n height = image.height;\n }\n if (width < 1 || height < 1) {\n throw new FormatError(\n `Invalid image width: ${width} or height: ${height}`\n );\n }\n this.width = width;\n this.height = height;\n\n this.interpolate = dict.get(\"I\", \"Interpolate\");\n this.imageMask = dict.get(\"IM\", \"ImageMask\") || false;\n this.matte = dict.get(\"Matte\") || false;\n\n let bitsPerComponent = image.bitsPerComponent;\n if (!bitsPerComponent) {\n bitsPerComponent = dict.get(\"BPC\", \"BitsPerComponent\");\n if (!bitsPerComponent) {\n if (this.imageMask) {\n bitsPerComponent = 1;\n } else {\n throw new FormatError(\n `Bits per component missing in image: ${this.imageMask}`\n );\n }\n }\n }\n this.bpc = bitsPerComponent;\n\n if (!this.imageMask) {\n let colorSpace = dict.getRaw(\"CS\") || dict.getRaw(\"ColorSpace\");\n if (!colorSpace) {\n info(\"JPX images (which do not require color spaces)\");\n switch (image.numComps) {\n case 1:\n colorSpace = Name.get(\"DeviceGray\");\n break;\n case 3:\n colorSpace = Name.get(\"DeviceRGB\");\n break;\n case 4:\n colorSpace = Name.get(\"DeviceCMYK\");\n break;\n default:\n throw new Error(\n `JPX images with ${image.numComps} color components not supported.`\n );\n }\n }\n this.colorSpace = ColorSpace.parse({\n cs: colorSpace,\n xref,\n resources: isInline ? res : null,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n this.numComps = this.colorSpace.numComps;\n }\n\n this.decode = dict.getArray(\"D\", \"Decode\");\n this.needsDecode = false;\n if (\n this.decode &&\n ((this.colorSpace &&\n !this.colorSpace.isDefaultDecode(this.decode, bitsPerComponent)) ||\n (isMask &&\n !ColorSpace.isDefaultDecode(this.decode, /* numComps = */ 1)))\n ) {\n this.needsDecode = true;\n // Do some preprocessing to avoid more math.\n const max = (1 << bitsPerComponent) - 1;\n this.decodeCoefficients = [];\n this.decodeAddends = [];\n const isIndexed = this.colorSpace && this.colorSpace.name === \"Indexed\";\n for (let i = 0, j = 0; i < this.decode.length; i += 2, ++j) {\n const dmin = this.decode[i];\n const dmax = this.decode[i + 1];\n this.decodeCoefficients[j] = isIndexed\n ? (dmax - dmin) / max\n : dmax - dmin;\n this.decodeAddends[j] = isIndexed ? dmin : max * dmin;\n }\n }\n\n if (smask) {\n this.smask = new PDFImage({\n xref,\n res,\n image: smask,\n isInline,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n } else if (mask) {\n if (mask instanceof BaseStream) {\n const maskDict = mask.dict,\n imageMask = maskDict.get(\"IM\", \"ImageMask\");\n if (!imageMask) {\n warn(\"Ignoring /Mask in image without /ImageMask.\");\n } else {\n this.mask = new PDFImage({\n xref,\n res,\n image: mask,\n isInline,\n isMask: true,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n }\n } else {\n // Color key mask (just an array).\n this.mask = mask;\n }\n }\n }\n\n /**\n * Handles processing of image data and returns the Promise that is resolved\n * with a PDFImage when the image is ready to be used.\n */\n static async buildImage({\n xref,\n res,\n image,\n isInline = false,\n pdfFunctionFactory,\n localColorSpaceCache,\n }) {\n const imageData = image;\n let smaskData = null;\n let maskData = null;\n\n const smask = image.dict.get(\"SMask\");\n const mask = image.dict.get(\"Mask\");\n\n if (smask) {\n if (smask instanceof BaseStream) {\n smaskData = smask;\n } else {\n warn(\"Unsupported /SMask format.\");\n }\n } else if (mask) {\n if (mask instanceof BaseStream || Array.isArray(mask)) {\n maskData = mask;\n } else {\n warn(\"Unsupported /Mask format.\");\n }\n }\n\n return new PDFImage({\n xref,\n res,\n image: imageData,\n isInline,\n smask: smaskData,\n mask: maskData,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n }\n\n static createRawMask({\n imgArray,\n width,\n height,\n imageIsFromDecodeStream,\n inverseDecode,\n interpolate,\n }) {\n // |imgArray| might not contain full data for every pixel of the mask, so\n // we need to distinguish between |computedLength| and |actualLength|.\n // In particular, if inverseDecode is true, then the array we return must\n // have a length of |computedLength|.\n\n const computedLength = ((width + 7) >> 3) * height;\n const actualLength = imgArray.byteLength;\n const haveFullData = computedLength === actualLength;\n let data, i;\n\n if (imageIsFromDecodeStream && (!inverseDecode || haveFullData)) {\n // imgArray came from a DecodeStream and its data is in an appropriate\n // form, so we can just transfer it.\n data = imgArray;\n } else if (!inverseDecode) {\n data = new Uint8Array(imgArray);\n } else {\n data = new Uint8Array(computedLength);\n data.set(imgArray);\n data.fill(0xff, actualLength);\n }\n\n // If necessary, invert the original mask data (but not any extra we might\n // have added above). It's safe to modify the array -- whether it's the\n // original or a copy, we're about to transfer it anyway, so nothing else\n // in this thread can be relying on its contents.\n if (inverseDecode) {\n for (i = 0; i < actualLength; i++) {\n data[i] ^= 0xff;\n }\n }\n\n return { data, width, height, interpolate };\n }\n\n static createMask({\n imgArray,\n width,\n height,\n imageIsFromDecodeStream,\n inverseDecode,\n interpolate,\n }) {\n const isSingleOpaquePixel =\n width === 1 &&\n height === 1 &&\n inverseDecode === (imgArray.length === 0 || !!(imgArray[0] & 128));\n\n if (isSingleOpaquePixel) {\n return { isSingleOpaquePixel };\n }\n\n if (FeatureTest.isOffscreenCanvasSupported) {\n const canvas = new OffscreenCanvas(width, height);\n const ctx = canvas.getContext(\"2d\");\n const imgData = ctx.createImageData(width, height);\n applyMaskImageData({\n src: imgArray,\n dest: imgData.data,\n width,\n height,\n inverseDecode,\n });\n\n ctx.putImageData(imgData, 0, 0);\n const bitmap = canvas.transferToImageBitmap();\n\n return {\n data: null,\n width,\n height,\n interpolate,\n bitmap,\n };\n }\n\n // Get the data almost as they're and they'll be decoded\n // just before being drawn.\n return this.createRawMask({\n imgArray,\n width,\n height,\n inverseDecode,\n imageIsFromDecodeStream,\n interpolate,\n });\n }\n\n get drawWidth() {\n return Math.max(\n this.width,\n (this.smask && this.smask.width) || 0,\n (this.mask && this.mask.width) || 0\n );\n }\n\n get drawHeight() {\n return Math.max(\n this.height,\n (this.smask && this.smask.height) || 0,\n (this.mask && this.mask.height) || 0\n );\n }\n\n decodeBuffer(buffer) {\n const bpc = this.bpc;\n const numComps = this.numComps;\n\n const decodeAddends = this.decodeAddends;\n const decodeCoefficients = this.decodeCoefficients;\n const max = (1 << bpc) - 1;\n let i, ii;\n\n if (bpc === 1) {\n // If the buffer needed decode that means it just needs to be inverted.\n for (i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] = +!buffer[i];\n }\n return;\n }\n let index = 0;\n for (i = 0, ii = this.width * this.height; i < ii; i++) {\n for (let j = 0; j < numComps; j++) {\n buffer[index] = decodeAndClamp(\n buffer[index],\n decodeAddends[j],\n decodeCoefficients[j],\n max\n );\n index++;\n }\n }\n }\n\n getComponents(buffer) {\n const bpc = this.bpc;\n\n // This image doesn't require any extra work.\n if (bpc === 8) {\n return buffer;\n }\n\n const width = this.width;\n const height = this.height;\n const numComps = this.numComps;\n\n const length = width * height * numComps;\n let bufferPos = 0;\n let output;\n if (bpc <= 8) {\n output = new Uint8Array(length);\n } else if (bpc <= 16) {\n output = new Uint16Array(length);\n } else {\n output = new Uint32Array(length);\n }\n const rowComps = width * numComps;\n\n const max = (1 << bpc) - 1;\n let i = 0,\n ii,\n buf;\n\n if (bpc === 1) {\n // Optimization for reading 1 bpc images.\n let mask, loop1End, loop2End;\n for (let j = 0; j < height; j++) {\n loop1End = i + (rowComps & ~7);\n loop2End = i + rowComps;\n\n // unroll loop for all full bytes\n while (i < loop1End) {\n buf = buffer[bufferPos++];\n output[i] = (buf >> 7) & 1;\n output[i + 1] = (buf >> 6) & 1;\n output[i + 2] = (buf >> 5) & 1;\n output[i + 3] = (buf >> 4) & 1;\n output[i + 4] = (buf >> 3) & 1;\n output[i + 5] = (buf >> 2) & 1;\n output[i + 6] = (buf >> 1) & 1;\n output[i + 7] = buf & 1;\n i += 8;\n }\n\n // handle remaining bits\n if (i < loop2End) {\n buf = buffer[bufferPos++];\n mask = 128;\n while (i < loop2End) {\n output[i++] = +!!(buf & mask);\n mask >>= 1;\n }\n }\n }\n } else {\n // The general case that handles all other bpc values.\n let bits = 0;\n buf = 0;\n for (i = 0, ii = length; i < ii; ++i) {\n if (i % rowComps === 0) {\n buf = 0;\n bits = 0;\n }\n\n while (bits < bpc) {\n buf = (buf << 8) | buffer[bufferPos++];\n bits += 8;\n }\n\n const remainingBits = bits - bpc;\n let value = buf >> remainingBits;\n if (value < 0) {\n value = 0;\n } else if (value > max) {\n value = max;\n }\n output[i] = value;\n buf &= (1 << remainingBits) - 1;\n bits = remainingBits;\n }\n }\n return output;\n }\n\n fillOpacity(rgbaBuf, width, height, actualHeight, image) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n rgbaBuf instanceof Uint8ClampedArray,\n 'PDFImage.fillOpacity: Unsupported \"rgbaBuf\" type.'\n );\n }\n const smask = this.smask;\n const mask = this.mask;\n let alphaBuf, sw, sh, i, ii, j;\n\n if (smask) {\n sw = smask.width;\n sh = smask.height;\n alphaBuf = new Uint8ClampedArray(sw * sh);\n smask.fillGrayBuffer(alphaBuf);\n if (sw !== width || sh !== height) {\n alphaBuf = resizeImageMask(alphaBuf, smask.bpc, sw, sh, width, height);\n }\n } else if (mask) {\n if (mask instanceof PDFImage) {\n sw = mask.width;\n sh = mask.height;\n alphaBuf = new Uint8ClampedArray(sw * sh);\n mask.numComps = 1;\n mask.fillGrayBuffer(alphaBuf);\n\n // Need to invert values in rgbaBuf\n for (i = 0, ii = sw * sh; i < ii; ++i) {\n alphaBuf[i] = 255 - alphaBuf[i];\n }\n\n if (sw !== width || sh !== height) {\n alphaBuf = resizeImageMask(alphaBuf, mask.bpc, sw, sh, width, height);\n }\n } else if (Array.isArray(mask)) {\n // Color key mask: if any of the components are outside the range\n // then they should be painted.\n alphaBuf = new Uint8ClampedArray(width * height);\n const numComps = this.numComps;\n for (i = 0, ii = width * height; i < ii; ++i) {\n let opacity = 0;\n const imageOffset = i * numComps;\n for (j = 0; j < numComps; ++j) {\n const color = image[imageOffset + j];\n const maskOffset = j * 2;\n if (color < mask[maskOffset] || color > mask[maskOffset + 1]) {\n opacity = 255;\n break;\n }\n }\n alphaBuf[i] = opacity;\n }\n } else {\n throw new FormatError(\"Unknown mask format.\");\n }\n }\n\n if (alphaBuf) {\n for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n rgbaBuf[j] = alphaBuf[i];\n }\n } else {\n // No mask.\n for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n rgbaBuf[j] = 255;\n }\n }\n }\n\n undoPreblend(buffer, width, height) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n buffer instanceof Uint8ClampedArray,\n 'PDFImage.undoPreblend: Unsupported \"buffer\" type.'\n );\n }\n const matte = this.smask && this.smask.matte;\n if (!matte) {\n return;\n }\n const matteRgb = this.colorSpace.getRgb(matte, 0);\n const matteR = matteRgb[0];\n const matteG = matteRgb[1];\n const matteB = matteRgb[2];\n const length = width * height * 4;\n for (let i = 0; i < length; i += 4) {\n const alpha = buffer[i + 3];\n if (alpha === 0) {\n // according formula we have to get Infinity in all components\n // making it white (typical paper color) should be okay\n buffer[i] = 255;\n buffer[i + 1] = 255;\n buffer[i + 2] = 255;\n continue;\n }\n const k = 255 / alpha;\n buffer[i] = (buffer[i] - matteR) * k + matteR;\n buffer[i + 1] = (buffer[i + 1] - matteG) * k + matteG;\n buffer[i + 2] = (buffer[i + 2] - matteB) * k + matteB;\n }\n }\n\n createImageData(forceRGBA = false) {\n const drawWidth = this.drawWidth;\n const drawHeight = this.drawHeight;\n const imgData = {\n width: drawWidth,\n height: drawHeight,\n interpolate: this.interpolate,\n kind: 0,\n data: null,\n // Other fields are filled in below.\n };\n\n const numComps = this.numComps;\n const originalWidth = this.width;\n const originalHeight = this.height;\n const bpc = this.bpc;\n\n // Rows start at byte boundary.\n const rowBytes = (originalWidth * numComps * bpc + 7) >> 3;\n\n if (!forceRGBA) {\n // If it is a 1-bit-per-pixel grayscale (i.e. black-and-white) image\n // without any complications, we pass a same-sized copy to the main\n // thread rather than expanding by 32x to RGBA form. This saves *lots*\n // of memory for many scanned documents. It's also much faster.\n //\n // Similarly, if it is a 24-bit-per pixel RGB image without any\n // complications, we avoid expanding by 1.333x to RGBA form.\n let kind;\n if (this.colorSpace.name === \"DeviceGray\" && bpc === 1) {\n kind = ImageKind.GRAYSCALE_1BPP;\n } else if (\n this.colorSpace.name === \"DeviceRGB\" &&\n bpc === 8 &&\n !this.needsDecode\n ) {\n kind = ImageKind.RGB_24BPP;\n }\n if (\n kind &&\n !this.smask &&\n !this.mask &&\n drawWidth === originalWidth &&\n drawHeight === originalHeight\n ) {\n imgData.kind = kind;\n imgData.data = this.getImageBytes(originalHeight * rowBytes, {});\n\n if (this.needsDecode) {\n // Invert the buffer (which must be grayscale if we reached here).\n assert(\n kind === ImageKind.GRAYSCALE_1BPP,\n \"PDFImage.createImageData: The image must be grayscale.\"\n );\n const buffer = imgData.data;\n for (let i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] ^= 0xff;\n }\n }\n return imgData;\n }\n if (this.image instanceof JpegStream && !this.smask && !this.mask) {\n let imageLength = originalHeight * rowBytes;\n switch (this.colorSpace.name) {\n case \"DeviceGray\":\n // Avoid truncating the image, since `JpegImage.getData`\n // will expand the image data when `forceRGB === true`.\n imageLength *= 3;\n /* falls through */\n case \"DeviceRGB\":\n case \"DeviceCMYK\":\n imgData.kind = ImageKind.RGB_24BPP;\n imgData.data = this.getImageBytes(imageLength, {\n drawWidth,\n drawHeight,\n forceRGB: true,\n });\n return imgData;\n }\n }\n }\n\n const imgArray = this.getImageBytes(originalHeight * rowBytes, {\n internal: true,\n });\n // imgArray can be incomplete (e.g. after CCITT fax encoding).\n const actualHeight =\n 0 | (((imgArray.length / rowBytes) * drawHeight) / originalHeight);\n\n const comps = this.getComponents(imgArray);\n\n // If opacity data is present, use RGBA_32BPP form. Otherwise, use the\n // more compact RGB_24BPP form if allowable.\n let alpha01, maybeUndoPreblend;\n if (!forceRGBA && !this.smask && !this.mask) {\n imgData.kind = ImageKind.RGB_24BPP;\n imgData.data = new Uint8ClampedArray(drawWidth * drawHeight * 3);\n alpha01 = 0;\n maybeUndoPreblend = false;\n } else {\n imgData.kind = ImageKind.RGBA_32BPP;\n imgData.data = new Uint8ClampedArray(drawWidth * drawHeight * 4);\n alpha01 = 1;\n maybeUndoPreblend = true;\n\n // Color key masking (opacity) must be performed before decoding.\n this.fillOpacity(\n imgData.data,\n drawWidth,\n drawHeight,\n actualHeight,\n comps\n );\n }\n\n if (this.needsDecode) {\n this.decodeBuffer(comps);\n }\n this.colorSpace.fillRgb(\n imgData.data,\n originalWidth,\n originalHeight,\n drawWidth,\n drawHeight,\n actualHeight,\n bpc,\n comps,\n alpha01\n );\n if (maybeUndoPreblend) {\n this.undoPreblend(imgData.data, drawWidth, actualHeight);\n }\n\n return imgData;\n }\n\n fillGrayBuffer(buffer) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n buffer instanceof Uint8ClampedArray,\n 'PDFImage.fillGrayBuffer: Unsupported \"buffer\" type.'\n );\n }\n const numComps = this.numComps;\n if (numComps !== 1) {\n throw new FormatError(\n `Reading gray scale from a color image: ${numComps}`\n );\n }\n\n const width = this.width;\n const height = this.height;\n const bpc = this.bpc;\n\n // rows start at byte boundary\n const rowBytes = (width * numComps * bpc + 7) >> 3;\n const imgArray = this.getImageBytes(height * rowBytes, { internal: true });\n\n const comps = this.getComponents(imgArray);\n let i, length;\n\n if (bpc === 1) {\n // inline decoding (= inversion) for 1 bpc images\n length = width * height;\n if (this.needsDecode) {\n // invert and scale to {0, 255}\n for (i = 0; i < length; ++i) {\n buffer[i] = (comps[i] - 1) & 255;\n }\n } else {\n // scale to {0, 255}\n for (i = 0; i < length; ++i) {\n buffer[i] = -comps[i] & 255;\n }\n }\n return;\n }\n\n if (this.needsDecode) {\n this.decodeBuffer(comps);\n }\n length = width * height;\n // we aren't using a colorspace so we need to scale the value\n const scale = 255 / ((1 << bpc) - 1);\n for (i = 0; i < length; ++i) {\n buffer[i] = scale * comps[i];\n }\n }\n\n getImageBytes(\n length,\n { drawWidth, drawHeight, forceRGB = false, internal = false }\n ) {\n this.image.reset();\n this.image.drawWidth = drawWidth || this.width;\n this.image.drawHeight = drawHeight || this.height;\n this.image.forceRGB = !!forceRGB;\n const imageBytes = this.image.getBytes(length);\n\n // If imageBytes came from a DecodeStream, we're safe to transfer it\n // (and thus detach its underlying buffer) because it will constitute\n // the entire DecodeStream's data. But if it came from a Stream, we\n // need to copy it because it'll only be a portion of the Stream's\n // data, and the rest will be read later on.\n if (internal || this.image instanceof DecodeStream) {\n return imageBytes;\n }\n assert(\n imageBytes instanceof Uint8Array,\n 'PDFImage.getImageBytes: Unsupported \"imageBytes\" type.'\n );\n return new Uint8Array(imageBytes);\n }\n}\n\nexport { PDFImage };\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FeatureTest } from \"./util.js\";\n\nfunction applyMaskImageData({\n src,\n srcPos = 0,\n dest,\n destPos = 0,\n width,\n height,\n inverseDecode = false,\n}) {\n const opaque = FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n const [zeroMapping, oneMapping] = !inverseDecode ? [opaque, 0] : [0, opaque];\n const widthInSource = width >> 3;\n const widthRemainder = width & 7;\n const srcLength = src.length;\n dest = new Uint32Array(dest.buffer);\n\n for (let i = 0; i < height; i++) {\n for (const max = srcPos + widthInSource; srcPos < max; srcPos++) {\n const elem = srcPos < srcLength ? src[srcPos] : 255;\n dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping;\n }\n if (widthRemainder === 0) {\n continue;\n }\n const elem = srcPos < srcLength ? src[srcPos++] : 255;\n for (let j = 0; j < widthRemainder; j++) {\n dest[destPos++] = elem & (1 << (7 - j)) ? oneMapping : zeroMapping;\n }\n }\n\n return { srcPos, destPos };\n}\n\nexport { applyMaskImageData };\n","import {\n OPS, Util, IDENTITY_MATRIX\n} from '../shared/util';\nimport {\n StateManager,\n TextState\n} from \"./evaluator\";\nimport {isDict} from \"./primitives\";\n\nvar BoundingBoxesCalculator = (function PartialEvaluatorClosure() {\n function BoundingBoxesCalculator(ignoreCalculations) {\n this.textStateManager = new StateManager(new TextState());\n this.graphicsStateManager = new StateManager(new GraphicsState());\n this.clipping = false;\n this.boundingBoxesStack = new NoMCIDBoundingBoxStack();\n this.boundingBoxes = {};\n this.ignoreCalculations = ignoreCalculations;\n this.operationArray = [];\n this.operationIndex = -1;\n }\n\n BoundingBoxesCalculator.prototype = {\n // Get Top points of rectangle\n // rectangle corners ABCD (clockwise starting with left bottom corner)\n // rectangle base AB: A(x0, y0), B(x1, y1)\n // rectangle height h\n // return CD\n getTopPoints: function BoundingBoxesCalculator_getTopPoints(x0, y0, x1, y1, h) {\n let l = Math.sqrt(Math.pow(x1 - x0, 2) + Math.pow(y1 - y0, 2)); //base length\n if (l === 0) {\n return [x1 + h, y1 + h, x0 + h, y0 + h];\n }\n\n let e = [(x1 - x0) / l, (y1 - y0) / l]; //get unit vector for line connecting A and B\n\n let rotated_e = [-e[1], e[0]]; //rotate unit vector by 90 deg to the left\n let result_vector = [rotated_e[0] * h, rotated_e[1] * h]; //scale unit vactor\n\n return [x1 + result_vector[0], y1 + result_vector[1], x0 + result_vector[0], y0 + result_vector[1]];\n },\n\n getTextBoundingBox: function BoundingBoxesCalculator_getTextBoundingBox(glyphs) {\n let tx = 0;\n let ty = 0;\n //Save previous x value to take it into account while calculating width of marked content\n\n let ctm = this.graphicsStateManager.state.ctm;\n\n let descent = (this.textStateManager.state.font.descent || 0) * this.textStateManager.state.fontSize;\n let ascent = (this.textStateManager.state.font.ascent || 1) * this.textStateManager.state.fontSize;\n let rise = this.textStateManager.state.textRise * this.textStateManager.state.fontSize;\n\n let tx0, ty0, shift, height;\n if (!this.textStateManager.state.font.vertical) {\n //Left Bottom point of text bbox\n //Save before text matrix will be changed with going through glyphs\n [tx0, ty0] = Util.applyTransform([0, descent + rise], this.textStateManager.state.textMatrix);\n //Calculate transformed height and shift to place whole glyph inside of bbox\n shift = [tx0 - this.textStateManager.state.textMatrix[4], ty0 - this.textStateManager.state.textMatrix[5]];\n height = Util.applyTransform([0, ascent - descent], this.textStateManager.state.textMatrix); \n } else {\n [tx0, ty0] = Util.applyTransform([-this.textStateManager.state.fontSize / 2, rise], this.textStateManager.state.textMatrix);\n shift = [tx0 - this.textStateManager.state.textMatrix[4], ty0 - this.textStateManager.state.textMatrix[5]];\n height = Util.applyTransform([ascent - descent, 0], this.textStateManager.state.textMatrix); \n }\n height[0] -= this.textStateManager.state.textMatrix[4];\n height[1] -= this.textStateManager.state.textMatrix[5];\n height = Math.sqrt(height[0] * height[0] + height[1] * height[1]);\n height *= (this.textStateManager.state.textMatrix[0] * this.textStateManager.state.textMatrix[3] < 0) ? -1 : 1;\n\n let glyphsSize = [];\n for (let i = 0; i < glyphs.length; i++) {\n let glyph = glyphs[i];\n if (typeof glyph === \"number\") {\n if (this.textStateManager.state.font.vertical) {\n ty = -glyph / 1000 * this.textStateManager.state.fontSize * this.textStateManager.state.textHScale;\n } else {\n tx = -glyph / 1000 * this.textStateManager.state.fontSize * this.textStateManager.state.textHScale;\n }\n } else {\n let glyphWidth = null;\n if (this.textStateManager.state.font.vertical && glyph.vmetric) {\n glyphWidth = glyph.vmetric[0];\n } else {\n glyphWidth = glyph.width;\n }\n if (!this.textStateManager.state.font.vertical) {\n let w0 = glyphWidth * (this.textStateManager.state.fontMatrix ? this.textStateManager.state.fontMatrix[0] : 1 / 1000);\n tx = (w0 * this.textStateManager.state.fontSize + this.textStateManager.state.charSpacing + (glyph.isSpace ? this.textStateManager.state.wordSpacing : 0)) *\n this.textStateManager.state.textHScale;\n } else {\n let w1 = glyphWidth * (this.textStateManager.state.fontMatrix ? this.textStateManager.state.fontMatrix[0] : 1 / 1000);\n ty = w1 * this.textStateManager.state.fontSize - this.textStateManager.state.charSpacing - (glyph.isSpace ? this.textStateManager.state.wordSpacing : 0);\n }\n }\n let [x, y] = [this.textStateManager.state.textMatrix[4] + shift[0], this.textStateManager.state.textMatrix[5] + shift[1]];\n this.textStateManager.state.translateTextMatrix(tx, -ty);\n if (typeof glyph !== \"number\") {\n glyphsSize.push([x, y, this.textStateManager.state.textMatrix[4] + shift[0], this.textStateManager.state.textMatrix[5] + shift[1]]);\n }\n }\n\n //Right Bottom point is in text matrix after going through glyphs\n let [tx1, ty1] = [this.textStateManager.state.textMatrix[4] + shift[0], this.textStateManager.state.textMatrix[5] + shift[1]];\n //Top point can be calculated from base and height\n let [tx2, ty2, tx3, ty3] = this.getTopPoints(tx0, ty0, tx1, ty1, height);\n glyphsSize = glyphsSize.map(glyphSize => [...glyphSize, ...this.getTopPoints(...glyphSize, height)])\n\n //Apply transform matrix to bbox\n let [x0, y0] = Util.applyTransform([tx0, ty0], ctm);\n let [x1, y1] = Util.applyTransform([tx1, ty1], ctm);\n let [x2, y2] = Util.applyTransform([tx2, ty2], ctm);\n let [x3, y3] = Util.applyTransform([tx3, ty3], ctm);\n glyphsSize = glyphsSize.map(glyphSize => [\n ...Util.applyTransform([glyphSize[0], glyphSize[1]], ctm),\n ...Util.applyTransform([glyphSize[2], glyphSize[3]], ctm),\n ...Util.applyTransform([glyphSize[4], glyphSize[5]], ctm),\n ...Util.applyTransform([glyphSize[6], glyphSize[7]], ctm),\n ]);\n let minX, maxX, minY, maxY;\n let glyphsPos = [];\n glyphsSize.forEach(glyphSize => {\n let xPoints = [...glyphSize].filter((point, index) => index % 2 === 0);\n let yPoints = [...glyphSize].filter((point, index) => index % 2 !== 0);\n minX = Math.min(...xPoints);\n maxX = Math.max(...xPoints);\n\n minY = Math.min(...yPoints);\n maxY = Math.max(...yPoints);\n glyphsPos.push([minX, minY, maxX - minX, maxY - minY]);\n })\n this.operationArray[this.operationIndex] = glyphsPos;\n\n minX = Math.min(x0, x1, x2, x3);\n maxX = Math.max(x0, x1, x2, x3);\n\n minY = Math.min(y0, y1, y2, y3);\n maxY = Math.max(y0, y1, y2, y3);\n\n this.boundingBoxesStack.save(minX, minY, maxX - minX, maxY - minY);\n },\n\n getClippingGraphicsBoundingBox: function BoundingBoxesCalculator_getClippingGraphicsBoundingBox() {\n let state = this.graphicsStateManager.state;\n\n if (state.clip === null) {\n return {\n x: state.x,\n y: state.y,\n w: state.w,\n h: state.h\n };\n }\n\n\n if ((state.x < state.clip.x && state.x + state.w < state.clip.x) ||\n (state.x > state.clip.x + state.clip.w && state.x + state.w > state.clip.x + state.clip.w) ||\n (state.y < state.clip.y && state.y + state.h < state.clip.y) ||\n (state.y > state.clip.y + state.clip.h && state.y + state.h > state.clip.y + state.clip.h)) {\n return null;\n }\n\n return {\n x: Math.max(state.x, state.clip.x),\n y: Math.max(state.y, state.clip.y),\n w: Math.min(state.x + state.w, state.clip.x + state.clip.w) - Math.max(state.x, state.clip.x),\n h: Math.min(state.y + state.h, state.clip.y + state.clip.h) - Math.max(state.y, state.clip.y)\n };\n },\n\n saveGraphicsBoundingBox: function saveGraphicsBoundingBox() {\n let clippingBBox = this.getClippingGraphicsBoundingBox();\n if (clippingBBox === null) {\n return;\n }\n\n let x = clippingBBox.x;\n let y = clippingBBox.y;\n let w = clippingBBox.w;\n let h = clippingBBox.h;\n\n this.graphicsStateManager.state.x = null;\n this.graphicsStateManager.state.y = null;\n this.graphicsStateManager.state.w = null;\n this.graphicsStateManager.state.h = null;\n\n this.boundingBoxesStack.save(x, y, w, h);\n },\n\n getRectBoundingBox: function getRectBoundingBox(x, y, w, h) {\n let state = this.graphicsStateManager.state;\n\n let [x1, y1] = Util.applyTransform([x, y], state.ctm);\n let [x2, y2] = Util.applyTransform([x + w, y], state.ctm);\n let [x3, y3] = Util.applyTransform([x, y + h], state.ctm);\n let [x4, y4] = Util.applyTransform([x + w, y + h], state.ctm);\n\n x = Math.min(x1, x2, x3, x4);\n y = Math.min(y1, y2, y3, y4);\n w = Math.max(x1, x2, x3, x4) - x;\n h = Math.max(y1, y2, y3, y4) - y;\n\n if (state.w === null) {\n state.w = Math.abs(w);\n } else {\n state.w = Math.max(state.x + state.w, x, x + w) -\n Math.min(state.x, x, x + w);\n }\n\n if (state.h === null) {\n state.h = Math.abs(h);\n } else {\n state.h = Math.max(state.y + state.h, y, y + h) -\n Math.min(state.y, y, y + h);\n }\n\n if (state.x === null) {\n state.x = Math.min(x, x + w);\n } else {\n state.x = Math.min(state.x, x, x + w);\n }\n\n if (state.y === null) {\n state.y = Math.min(y, y + h);\n } else {\n state.y = Math.min(state.y, y, y + h);\n }\n },\n\n getLineBoundingBox: function getLineBoundingBox(x, y) {\n let state = this.graphicsStateManager.state;\n\n [x, y] = Util.applyTransform([x, y], state.ctm);\n\n if (state.w === null) {\n state.w = Math.abs(x - state.move_x);\n } else {\n state.w = Math.max(x, state.move_x, state.x + state.w) -\n Math.min(x, state.move_x, state.x);\n }\n\n if (state.h === null) {\n state.h = Math.abs(y - state.move_y);\n } else {\n state.h = Math.max(y, state.move_y, state.y + state.h) -\n Math.min(y, state.move_y, state.y);\n }\n\n if (state.x === null) {\n state.x = Math.min(x, state.move_x);\n } else {\n state.x = Math.min(x, state.move_x, state.x);\n }\n\n if (state.y === null) {\n state.y = Math.min(y, state.move_y);\n } else {\n state.y = Math.min(y, state.move_y, state.y);\n }\n\n //Next line will start from the end of current line\n state.move_x = x;\n state.move_y = y;\n },\n\n getCurve: function getCurve(a, b, c, d) {\n return function curve(t) {\n return Math.pow(1 - t, 3) * a + 3 * t * Math.pow(1 - t, 2) * b + 3 * t * t * (1 - t) * c + t * t * t * d;\n }\n },\n\n //Equate the derivative to zero in order to find local extremum and solve the equation\n getCurveRoots: function getCurveRoots(a, b, c, d) {\n let sqrt;\n let root_1;\n let root_2;\n\n sqrt = Math.pow(6 * a - 12 * b + 6 * c, 2)\n - 4 * (3 * b - 3 * a) * (-3 * a + 9 * b - 9 * c + 3 * d);\n root_1 = null;\n root_2 = null;\n\n //Calculate roots if equation has roots and they are real\n //Equation has infinite(too big) roots if denominator is too small\n if (Math.abs(a + 3 * c - 3 * b - d) > Math.pow(0.1, -10)) {\n if (sqrt >= 0) {\n root_1 = ((-6 * a + 12 * b - 6 * c) + Math.sqrt(sqrt)) / (2 * (-3 * a + 9 * b - 9 * c + 3 * d));\n root_2 = ((-6 * a + 12 * b - 6 * c) - Math.sqrt(sqrt)) / (2 * (-3 * a + 9 * b - 9 * c + 3 * d));\n }\n } else if (sqrt > Math.pow(0.1, -10)) {\n root_1 = (a - b) / (2 * a - 4 * b + 2 * c);\n }\n\n //We are only interested in roots that lay in range from 0 to 1\n //Ignore other ones\n if (root_1 !== null && (root_1 < 0 || root_1 > 1)) {\n root_1 = null;\n }\n if (root_2 !== null && (root_2 < 0 || root_2 > 1)) {\n root_2 = null;\n }\n\n return [root_1, root_2];\n },\n\n getCurveBoundingBox: function getCurveBoundingBox(op, x0, y0, x1, y1, x2, y2, x3, y3) {\n let state = this.graphicsStateManager.state;\n\n if (op !== OPS.curveTo2) {\n [x1, y1] = Util.applyTransform([x1, y1], state.ctm);\n }\n [x2, y2] = Util.applyTransform([x2, y2], state.ctm);\n [x3, y3] = Util.applyTransform([x3, y3], state.ctm);\n\n let curveX = this.getCurve(x0, x1, x2, x3);\n let curveY = this.getCurve(y0, y1, y2, y3);\n\n let [root_1, root_2] = this.getCurveRoots(x0, x1, x2, x3);\n\n let minX = Math.min(x0, x3, root_1 !== null ? curveX(root_1) : Number.MAX_VALUE, root_2 !== null ? curveX(root_2) : Number.MAX_VALUE);\n let maxX = Math.max(x0, x3, root_1 !== null ? curveX(root_1) : Number.MIN_VALUE, root_2 !== null ? curveX(root_2) : Number.MIN_VALUE);\n\n [root_1, root_2] = this.getCurveRoots(y0, y1, y2, y3);\n\n let minY = Math.min(y0, y3, root_1 !== null ? curveY(root_1) : Number.MAX_VALUE, root_2 !== null ? curveY(root_2) : Number.MAX_VALUE);\n let maxY = Math.max(y0, y3, root_1 !== null ? curveY(root_1) : Number.MIN_VALUE, root_2 !== null ? curveY(root_2) : Number.MIN_VALUE);\n\n let x = minX;\n let y = minY;\n let h = maxY - minY;\n let w = maxX - minX;\n\n if (state.w === null) {\n state.w = Math.abs(w);\n } else {\n state.w = Math.max(state.x + state.w, x, x + w) -\n Math.min(state.x, x, x + w);\n }\n\n if (state.h === null) {\n state.h = Math.abs(h);\n } else {\n state.h = Math.max(state.y + state.h, y, y + h) -\n Math.min(state.y, y, y + h);\n }\n\n if (state.x === null) {\n state.x = Math.min(x, x + w);\n } else {\n state.x = Math.min(state.x, x, x + w);\n }\n\n if (state.y === null) {\n state.y = Math.min(y, y + h);\n } else {\n state.y = Math.min(state.y, y, y + h);\n }\n\n state.move_x = x;\n state.move_y = y;\n },\n\n getClip: function getClip() {\n if (this.clipping) {\n let state = this.graphicsStateManager.state;\n if (state.clip === null) {\n state.clip = {\n x: state.x,\n y: state.y,\n w: state.w,\n h: state.h\n };\n } else {\n //Intersection with previous clip\n state.clip = {\n x: Math.max(state.x, state.clip.x),\n y: Math.max(state.y, state.clip.y),\n w: Math.min(state.x + state.w, state.clip.x + state.clip.w) - Math.max(state.x, state.clip.x),\n h: Math.min(state.y + state.h, state.clip.y + state.clip.h) - Math.max(state.y, state.clip.y),\n }\n }\n this.clipping = false;\n }\n },\n\n getNoMCIDBoundingBoxes: function getNoMCIDBoundingBoxes() {\n return this.boundingBoxesStack.get();\n },\n\n getImageBoundingBox: function getImageBoundingBox() {\n let state = this.graphicsStateManager.state;\n let [x0, y0] = Util.applyTransform([0, 0], state.ctm);\n let [x1, y1] = Util.applyTransform([0, 1], state.ctm);\n let [x2, y2] = Util.applyTransform([1, 1], state.ctm);\n let [x3, y3] = Util.applyTransform([1, 0], state.ctm);\n\n state.x = Math.min(x0, x1, x2, x3);\n state.y = Math.min(y0, y1, y2, y3);\n state.w = Math.max(x0, x1, x2, x3) - state.x;\n state.h = Math.max(y0, y1, y2, y3) - state.y;\n },\n\n parseOperator: function BoundingBoxesCalculator_parseOperator(fn, args) {\n if (this.ignoreCalculations) {\n return;\n }\n\n if (fn !== OPS.markPoint && fn !== OPS.markPointProps &&\n fn !== OPS.beginMarkedContent && fn !== OPS.beginMarkedContentProps) {\n this.boundingBoxesStack.inc();\n }\n\n switch (fn | 0) {\n case OPS.restore:\n this.graphicsStateManager.restore();\n this.textStateManager.restore();\n break;\n case OPS.save:\n this.graphicsStateManager.save();\n this.textStateManager.save();\n break;\n case OPS.fill:\n case OPS.eoFill:\n case OPS.eoFillStroke:\n case OPS.fillStroke:\n case OPS.stroke:\n case OPS.closeEOFillStroke:\n case OPS.closeFillStroke:\n case OPS.closeStroke:\n this.getClip();\n this.saveGraphicsBoundingBox();\n break;\n case OPS.endPath:\n this.getClip();\n this.graphicsStateManager.state.clean();\n break;\n case OPS.transform:\n this.graphicsStateManager.state.ctm = Util.transform(this.graphicsStateManager.state.ctm, args);\n break;\n case OPS.clip:\n case OPS.eoClip:\n this.clipping = true;\n break;\n case OPS.setFont:\n this.textStateManager.state.fontSize = args[0];\n this.textStateManager.state.fontMatrix = args[1].font.fontMatrix;\n this.textStateManager.state.font = args[1].font;\n break;\n case OPS.setTextMatrix:\n this.textStateManager.state.setTextMatrix(args[0], args[1], args[2], args[3],\n args[4], args[5]);\n this.textStateManager.state.setTextLineMatrix(args[0], args[1], args[2], args[3],\n args[4], args[5]);\n break;\n case OPS.nextLine:\n this.textStateManager.state.carriageReturn();\n break;\n case OPS.setCharSpacing:\n this.textStateManager.state.charSpacing = args[0];\n break;\n case OPS.setWordSpacing:\n this.textStateManager.state.wordSpacing = args[0];\n break;\n case OPS.setHScale:\n this.textStateManager.state.textHScale = args[0] / 100;\n break;\n case OPS.setLeading:\n this.textStateManager.state.leading = args[0];\n break;\n case OPS.setTextRise:\n this.textStateManager.state.textRise = args[0];\n break;\n case OPS.setLeadingMoveText:\n this.textStateManager.state.leading = -args[1];\n this.textStateManager.state.translateTextLineMatrix(...args);\n this.textStateManager.state.textMatrix = this.textStateManager.state.textLineMatrix.slice();\n break;\n case OPS.moveText:\n this.textStateManager.state.translateTextLineMatrix(args[0], args[1]);\n this.textStateManager.state.textMatrix = this.textStateManager.state.textLineMatrix.slice();\n break;\n case OPS.beginText:\n this.textStateManager.state.textMatrix = IDENTITY_MATRIX.slice();\n this.textStateManager.state.textLineMatrix = IDENTITY_MATRIX.slice();\n break;\n case OPS.moveTo:\n let ctm = this.graphicsStateManager.state.ctm.slice();\n [this.graphicsStateManager.state.move_x, this.graphicsStateManager.state.move_y] = Util.applyTransform(args, ctm);\n break;\n case OPS.lineTo:\n this.getLineBoundingBox(args[0], args[1]);\n break;\n case OPS.curveTo:\n this.getCurveBoundingBox(\n OPS.curveTo,\n this.graphicsStateManager.state.move_x,\n this.graphicsStateManager.state.move_y,\n args[0],\n args[1],\n args[2],\n args[3],\n args[4],\n args[5],\n );\n break;\n case OPS.curveTo2:\n this.getCurveBoundingBox(\n OPS.curveTo2,\n this.graphicsStateManager.state.move_x,\n this.graphicsStateManager.state.move_y,\n this.graphicsStateManager.state.move_x,\n this.graphicsStateManager.state.move_y,\n args[0],\n args[1],\n args[2],\n args[3]\n );\n break;\n case OPS.curveTo3:\n this.getCurveBoundingBox(\n OPS.curveTo3,\n this.graphicsStateManager.state.move_x,\n this.graphicsStateManager.state.move_y,\n args[0],\n args[1],\n args[2],\n args[3],\n args[2],\n args[3]\n );\n break;\n case OPS.rectangle:\n this.getRectBoundingBox(args[0], args[1], args[2], args[3]);\n break;\n case OPS.markPoint:\n case OPS.markPointProps:\n case OPS.beginMarkedContent:\n //Marked content forms the scope\n this.boundingBoxesStack.begin();\n break;\n case OPS.beginMarkedContentProps:\n if (isDict(args[1]) && args[1].has('MCID')) {\n this.boundingBoxesStack.begin(args[1].get('MCID'));\n\n //Clear graphics bounding box to split graphics in different marked content\n this.graphicsStateManager.state.x = null;\n this.graphicsStateManager.state.y = null;\n this.graphicsStateManager.state.w = null;\n this.graphicsStateManager.state.h = null;\n\n } else {\n //Marked content with no MCID still forms the scope\n this.boundingBoxesStack.begin();\n }\n break;\n case OPS.endMarkedContent:\n let boundingBox = this.boundingBoxesStack.end();\n if (boundingBox !== null) {\n this.boundingBoxes[boundingBox.mcid] = {\n x: boundingBox.x,\n y: boundingBox.y,\n width: boundingBox.w,\n height: boundingBox.h\n };\n }\n break;\n case OPS.paintXObject:\n if (args[0] === 'Image') {\n this.getImageBoundingBox();\n this.saveGraphicsBoundingBox();\n }\n break;\n case OPS.showText:\n this.getTextBoundingBox(args[0]);\n break;\n default:\n break;\n }\n },\n\n setFont: function BoundingBoxesCalculator_setFont(translated) {\n this.textStateManager.state.fontMatrix = translated.font.fontMatrix;\n this.textStateManager.state.font = translated.font;\n },\n\n incrementOperation: function BoundingBoxesCalculator_incrementOperation(fn) {\n if (this.ignoreCalculations) {\n return;\n }\n this.operationIndex++;\n }\n };\n\n return BoundingBoxesCalculator;\n})();\n\nvar GraphicsState = (function GraphicsState() {\n function GraphicsState() {\n this.x = null;\n this.y = null;\n this.w = null;\n this.h = null;\n this.move_x = null;\n this.move_y = null;\n this.ctm = IDENTITY_MATRIX.slice();\n this.clip = null;\n }\n\n GraphicsState.prototype = {\n clone: function GraphicsState_clone() {\n var clone = Object.create(this);\n clone.ctm = this.ctm.slice();\n return clone;\n },\n clean: function GraphicsState_clear() {\n this.x = null;\n this.y = null;\n this.w = null;\n this.h = null;\n this.move_x = 0;\n this.move_y = 0;\n //this.ctm = IDENTITY_MATRIX.slice();\n //clip state stays the same\n }\n };\n return GraphicsState;\n})();\n\nvar BoundingBoxStack = (function BoundingBoxStack() {\n function BoundingBoxStack() {\n this.stack = [];\n }\n\n BoundingBoxStack.prototype = {\n begin: function BoundingBoxStack_begin(mcid) {\n this.stack.push({\n x: null,\n y: null,\n w: null,\n h: null,\n mcid: Number.isInteger(mcid) ? mcid : null\n });\n },\n\n save: function BoundingBoxStack_save(x, y, w, h) {\n let current = this.stack[this.stack.length - 1];\n\n if (!current) {\n return;\n }\n\n if (current.w === null) {\n current.w = w;\n } else {\n current.w = Math.max(current.x + current.w, x + w) - Math.min(current.x, x);\n }\n\n if (current.x === null) {\n current.x = x;\n } else {\n current.x = Math.min(current.x, x);\n }\n\n if (current.h === null) {\n current.h = h;\n } else {\n current.h = Math.max(current.y + current.h, y + h) - Math.min(current.y, y);\n }\n\n if (current.y === null) {\n current.y = y;\n } else {\n current.y = Math.min(current.y, y);\n }\n },\n\n end: function BoundingBoxStack_end() {\n let last = this.stack.pop();\n\n if (last.mcid !== null) {\n return last;\n } else {\n this.save(last.x, last.y, last.w, last.h);\n return null;\n }\n },\n\n };\n\n return BoundingBoxStack;\n})();\n\nvar NoMCIDBoundingBoxStack = (function NoMCIDBoundingBoxStack() {\n function NoMCIDBoundingBoxStack() {\n this.boundingBoxesStack = new BoundingBoxStack();\n this.contentCounter = null; \n this.content = {};\n this.pointer = {};\n }\n\n NoMCIDBoundingBoxStack.prototype = {\n begin: function NoMCIDBoundingBoxStack_begin(mcid) {\n if (!this.contentCounter || this.contentCounter.inMarkedContent !== false) {\n this.inc(true);\n } else {\n const newContentItem = { parent: this.pointer, contentItems: [] };\n this.pointer.contentItems.push(newContentItem);\n this.pointer = newContentItem;\n }\n this.boundingBoxesStack.begin(mcid);\n },\n\n save: function NoMCIDBoundingBoxStack_save(x, y, w, h) {\n if (this.pointer.contentItems) {\n this.pointer.contentItems.push({ \n contentItem: { x, y, w, h }\n });\n this.pointer.final = true;\n } else {\n console.log('NoMCIDBoundingBoxStackError:', 'The pointer was in an invalid state, saved data will be lost');\n }\n this.boundingBoxesStack.save(x, y, w, h);\n },\n\n end: function NoMCIDBoundingBoxStack_end() {\n const tempPointer = this.pointer;\n this.pointer = tempPointer.parent || this.content;\n delete tempPointer.parent;\n\n if (this.pointer === this.content) {\n this.contentCounter.inMarkedContent = null;\n this.pointer = {};\n }\n\n return this.boundingBoxesStack.end();\n },\n\n inc: function NoMCIDBoundingBoxStack_inc(isMC = false) {\n if (!this.contentCounter) {\n this.contentCounter = { index: 0, inMarkedContent: !isMC }\n this.content[this.contentCounter.index] = { parent: this.content, contentItems: [] };\n this.pointer = this.content[this.contentCounter.index];\n } else if (\n this.contentCounter.inMarkedContent !== false && isMC || \n !!this.contentCounter.inMarkedContent === isMC && !Object.keys(this.pointer).length\n ) {\n delete this.content[this.contentCounter.index].parent;\n this.contentCounter = { index: this.contentCounter.index + 1, inMarkedContent: !isMC }\n this.content[this.contentCounter.index] = { parent: this.content, contentItems: [] };\n this.pointer = this.content[this.contentCounter.index];\n }\n },\n\n get: function NoMCIDBoundingBoxStack_get() {\n try {\n if (Object.keys(this.content).length && this.contentCounter) {\n this.content[this.contentCounter.index].parent && delete this.content[this.contentCounter.index].parent;\n const result = JSON.parse(JSON.stringify(this.content));\n this.content[this.contentCounter.index].parent = this.content;\n return result;\n }\n return {};\n } catch (err) {\n console.log('NoMCIDBoundingBoxStackError:', err.message || err);\n return {};\n }\n },\n };\n return NoMCIDBoundingBoxStack;\n})();\n\nexport {\n BoundingBoxesCalculator,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n collectActions,\n MissingDataException,\n recoverJsURL,\n toRomanNumerals,\n XRefEntryException,\n} from \"./core_utils.js\";\nimport {\n createValidAbsoluteUrl,\n DocumentActionEventType,\n FormatError,\n info,\n objectSize,\n PermissionFlag,\n shadow,\n stringToPDFString,\n stringToUTF8String,\n warn,\n} from \"../shared/util.js\";\nimport {\n Dict,\n isDict,\n isName,\n isRefsEqual,\n Name,\n Ref,\n RefSet,\n RefSetCache,\n} from \"./primitives.js\";\nimport { NameTree, NumberTree } from \"./name_number_tree.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { clearGlobalCaches } from \"./cleanup_helper.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { FileSpec } from \"./file_spec.js\";\nimport { GlobalImageCache } from \"./image_utils.js\";\nimport { MetadataParser } from \"./metadata_parser.js\";\nimport { StructTreeRoot } from \"./struct_tree.js\";\n\nfunction fetchDestination(dest) {\n if (dest instanceof Dict) {\n dest = dest.get(\"D\");\n }\n return Array.isArray(dest) ? dest : null;\n}\n\nclass Catalog {\n constructor(pdfManager, xref) {\n this.pdfManager = pdfManager;\n this.xref = xref;\n\n this._catDict = xref.getCatalogObj();\n if (!(this._catDict instanceof Dict)) {\n throw new FormatError(\"Catalog object is not a dictionary.\");\n }\n // Given that `XRef.parse` will both fetch *and* validate the /Pages-entry,\n // the following call must always succeed here:\n this.toplevelPagesDict; // eslint-disable-line no-unused-expressions\n\n this._actualNumPages = null;\n\n this.fontCache = new RefSetCache();\n this.builtInCMapCache = new Map();\n this.standardFontDataCache = new Map();\n this.globalImageCache = new GlobalImageCache();\n this.pageKidsCountCache = new RefSetCache();\n this.pageIndexCache = new RefSetCache();\n this.nonBlendModesSet = new RefSet();\n }\n\n get version() {\n const version = this._catDict.get(\"Version\");\n return shadow(\n this,\n \"version\",\n version instanceof Name ? version.name : null\n );\n }\n\n get lang() {\n const lang = this._catDict.get(\"Lang\");\n return shadow(\n this,\n \"lang\",\n typeof lang === \"string\" ? stringToPDFString(lang) : null\n );\n }\n\n /**\n * @type {boolean} `true` for pure XFA documents,\n * `false` for XFA Foreground documents.\n */\n get needsRendering() {\n const needsRendering = this._catDict.get(\"NeedsRendering\");\n return shadow(\n this,\n \"needsRendering\",\n typeof needsRendering === \"boolean\" ? needsRendering : false\n );\n }\n\n get collection() {\n let collection = null;\n try {\n const obj = this._catDict.get(\"Collection\");\n if (obj instanceof Dict && obj.size > 0) {\n collection = obj;\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n info(\"Cannot fetch Collection entry; assuming no collection is present.\");\n }\n return shadow(this, \"collection\", collection);\n }\n\n get acroForm() {\n let acroForm = null;\n try {\n const obj = this._catDict.get(\"AcroForm\");\n if (obj instanceof Dict && obj.size > 0) {\n acroForm = obj;\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n info(\"Cannot fetch AcroForm entry; assuming no forms are present.\");\n }\n return shadow(this, \"acroForm\", acroForm);\n }\n\n get acroFormRef() {\n const value = this._catDict.getRaw(\"AcroForm\");\n return shadow(this, \"acroFormRef\", value instanceof Ref ? value : null);\n }\n\n get metadata() {\n const streamRef = this._catDict.getRaw(\"Metadata\");\n if (!(streamRef instanceof Ref)) {\n return shadow(this, \"metadata\", null);\n }\n\n let metadata = null;\n try {\n const suppressEncryption = !(\n this.xref.encrypt && this.xref.encrypt.encryptMetadata\n );\n const stream = this.xref.fetch(streamRef, suppressEncryption);\n\n if (stream instanceof BaseStream && stream.dict instanceof Dict) {\n const type = stream.dict.get(\"Type\");\n const subtype = stream.dict.get(\"Subtype\");\n\n if (isName(type, \"Metadata\") && isName(subtype, \"XML\")) {\n // XXX: This should examine the charset the XML document defines,\n // however since there are currently no real means to decode arbitrary\n // charsets, let's just hope that the author of the PDF was reasonable\n // enough to stick with the XML default charset, which is UTF-8.\n const data = stringToUTF8String(stream.getString());\n if (data) {\n metadata = new MetadataParser(data).serializable;\n }\n }\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n info(`Skipping invalid Metadata: \"${ex}\".`);\n }\n return shadow(this, \"metadata\", metadata);\n }\n\n get markInfo() {\n let markInfo = null;\n try {\n markInfo = this._readMarkInfo();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Unable to read mark info.\");\n }\n return shadow(this, \"markInfo\", markInfo);\n }\n\n /**\n * @private\n */\n _readMarkInfo() {\n const obj = this._catDict.get(\"MarkInfo\");\n if (!(obj instanceof Dict)) {\n return null;\n }\n\n const markInfo = {\n Marked: false,\n UserProperties: false,\n Suspects: false,\n };\n for (const key in markInfo) {\n const value = obj.get(key);\n if (typeof value === \"boolean\") {\n markInfo[key] = value;\n }\n }\n\n return markInfo;\n }\n\n get structTreeRoot() {\n let structTree = null;\n try {\n structTree = this._readStructTreeRoot();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Unable read to structTreeRoot info.\");\n }\n return shadow(this, \"structTreeRoot\", structTree);\n }\n\n /**\n * @private\n */\n _readStructTreeRoot() {\n const obj = this._catDict.get(\"StructTreeRoot\");\n if (!(obj instanceof Dict)) {\n return null;\n }\n const root = new StructTreeRoot(obj);\n root.init();\n return root;\n }\n\n get toplevelPagesDict() {\n const pagesObj = this._catDict.get(\"Pages\");\n if (!(pagesObj instanceof Dict)) {\n throw new FormatError(\"Invalid top-level pages dictionary.\");\n }\n return shadow(this, \"toplevelPagesDict\", pagesObj);\n }\n\n get documentOutline() {\n let obj = null;\n try {\n obj = this._readDocumentOutline();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Unable to read document outline.\");\n }\n return shadow(this, \"documentOutline\", obj);\n }\n\n /**\n * @private\n */\n _readDocumentOutline() {\n let obj = this._catDict.get(\"Outlines\");\n if (!(obj instanceof Dict)) {\n return null;\n }\n obj = obj.getRaw(\"First\");\n if (!(obj instanceof Ref)) {\n return null;\n }\n\n const root = { items: [] };\n const queue = [{ obj, parent: root }];\n // To avoid recursion, keep track of the already processed items.\n const processed = new RefSet();\n processed.put(obj);\n const xref = this.xref,\n blackColor = new Uint8ClampedArray(3);\n\n while (queue.length > 0) {\n const i = queue.shift();\n const outlineDict = xref.fetchIfRef(i.obj);\n if (outlineDict === null) {\n continue;\n }\n if (!outlineDict.has(\"Title\")) {\n throw new FormatError(\"Invalid outline item encountered.\");\n }\n\n const data = { url: null, dest: null };\n Catalog.parseDestDictionary({\n destDict: outlineDict,\n resultObj: data,\n docBaseUrl: this.pdfManager.docBaseUrl,\n });\n const title = outlineDict.get(\"Title\");\n const flags = outlineDict.get(\"F\") || 0;\n const color = outlineDict.getArray(\"C\");\n const count = outlineDict.get(\"Count\");\n let rgbColor = blackColor;\n\n // We only need to parse the color when it's valid, and non-default.\n if (\n Array.isArray(color) &&\n color.length === 3 &&\n (color[0] !== 0 || color[1] !== 0 || color[2] !== 0)\n ) {\n rgbColor = ColorSpace.singletons.rgb.getRgb(color, 0);\n }\n\n const outlineItem = {\n dest: data.dest,\n url: data.url,\n unsafeUrl: data.unsafeUrl,\n newWindow: data.newWindow,\n title: stringToPDFString(title),\n color: rgbColor,\n count: Number.isInteger(count) ? count : undefined,\n bold: !!(flags & 2),\n italic: !!(flags & 1),\n items: [],\n };\n\n i.parent.items.push(outlineItem);\n obj = outlineDict.getRaw(\"First\");\n if (obj instanceof Ref && !processed.has(obj)) {\n queue.push({ obj, parent: outlineItem });\n processed.put(obj);\n }\n obj = outlineDict.getRaw(\"Next\");\n if (obj instanceof Ref && !processed.has(obj)) {\n queue.push({ obj, parent: i.parent });\n processed.put(obj);\n }\n }\n return root.items.length > 0 ? root.items : null;\n }\n\n get permissions() {\n let permissions = null;\n try {\n permissions = this._readPermissions();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Unable to read permissions.\");\n }\n return shadow(this, \"permissions\", permissions);\n }\n\n /**\n * @private\n */\n _readPermissions() {\n const encrypt = this.xref.trailer.get(\"Encrypt\");\n if (!(encrypt instanceof Dict)) {\n return null;\n }\n\n let flags = encrypt.get(\"P\");\n if (typeof flags !== \"number\") {\n return null;\n }\n\n // PDF integer objects are represented internally in signed 2's complement\n // form. Therefore, convert the signed decimal integer to a signed 2's\n // complement binary integer so we can use regular bitwise operations on it.\n flags += 2 ** 32;\n\n const permissions = [];\n for (const key in PermissionFlag) {\n const value = PermissionFlag[key];\n if (flags & value) {\n permissions.push(value);\n }\n }\n return permissions;\n }\n\n get optionalContentConfig() {\n let config = null;\n try {\n const properties = this._catDict.get(\"OCProperties\");\n if (!properties) {\n return shadow(this, \"optionalContentConfig\", null);\n }\n const defaultConfig = properties.get(\"D\");\n if (!defaultConfig) {\n return shadow(this, \"optionalContentConfig\", null);\n }\n const groupsData = properties.get(\"OCGs\");\n if (!Array.isArray(groupsData)) {\n return shadow(this, \"optionalContentConfig\", null);\n }\n const groups = [];\n const groupRefs = [];\n // Ensure all the optional content groups are valid.\n for (const groupRef of groupsData) {\n if (!(groupRef instanceof Ref)) {\n continue;\n }\n groupRefs.push(groupRef);\n const group = this.xref.fetchIfRef(groupRef);\n groups.push({\n id: groupRef.toString(),\n name:\n typeof group.get(\"Name\") === \"string\"\n ? stringToPDFString(group.get(\"Name\"))\n : null,\n intent:\n typeof group.get(\"Intent\") === \"string\"\n ? stringToPDFString(group.get(\"Intent\"))\n : null,\n });\n }\n config = this._readOptionalContentConfig(defaultConfig, groupRefs);\n config.groups = groups;\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`Unable to read optional content config: ${ex}`);\n }\n return shadow(this, \"optionalContentConfig\", config);\n }\n\n _readOptionalContentConfig(config, contentGroupRefs) {\n function parseOnOff(refs) {\n const onParsed = [];\n if (Array.isArray(refs)) {\n for (const value of refs) {\n if (!(value instanceof Ref)) {\n continue;\n }\n if (contentGroupRefs.includes(value)) {\n onParsed.push(value.toString());\n }\n }\n }\n return onParsed;\n }\n\n function parseOrder(refs, nestedLevels = 0) {\n if (!Array.isArray(refs)) {\n return null;\n }\n const order = [];\n\n for (const value of refs) {\n if (value instanceof Ref && contentGroupRefs.includes(value)) {\n parsedOrderRefs.put(value); // Handle \"hidden\" groups, see below.\n\n order.push(value.toString());\n continue;\n }\n // Handle nested /Order arrays (see e.g. issue 9462 and bug 1240641).\n const nestedOrder = parseNestedOrder(value, nestedLevels);\n if (nestedOrder) {\n order.push(nestedOrder);\n }\n }\n\n if (nestedLevels > 0) {\n return order;\n }\n const hiddenGroups = [];\n for (const groupRef of contentGroupRefs) {\n if (parsedOrderRefs.has(groupRef)) {\n continue;\n }\n hiddenGroups.push(groupRef.toString());\n }\n if (hiddenGroups.length) {\n order.push({ name: null, order: hiddenGroups });\n }\n\n return order;\n }\n\n function parseNestedOrder(ref, nestedLevels) {\n if (++nestedLevels > MAX_NESTED_LEVELS) {\n warn(\"parseNestedOrder - reached MAX_NESTED_LEVELS.\");\n return null;\n }\n const value = xref.fetchIfRef(ref);\n if (!Array.isArray(value)) {\n return null;\n }\n const nestedName = xref.fetchIfRef(value[0]);\n if (typeof nestedName !== \"string\") {\n return null;\n }\n const nestedOrder = parseOrder(value.slice(1), nestedLevels);\n if (!nestedOrder || !nestedOrder.length) {\n return null;\n }\n return { name: stringToPDFString(nestedName), order: nestedOrder };\n }\n\n const xref = this.xref,\n parsedOrderRefs = new RefSet(),\n MAX_NESTED_LEVELS = 10;\n\n return {\n name:\n typeof config.get(\"Name\") === \"string\"\n ? stringToPDFString(config.get(\"Name\"))\n : null,\n creator:\n typeof config.get(\"Creator\") === \"string\"\n ? stringToPDFString(config.get(\"Creator\"))\n : null,\n baseState:\n config.get(\"BaseState\") instanceof Name\n ? config.get(\"BaseState\").name\n : null,\n on: parseOnOff(config.get(\"ON\")),\n off: parseOnOff(config.get(\"OFF\")),\n order: parseOrder(config.get(\"Order\")),\n groups: null,\n };\n }\n\n setActualNumPages(num = null) {\n this._actualNumPages = num;\n }\n\n get hasActualNumPages() {\n return this._actualNumPages !== null;\n }\n\n get _pagesCount() {\n const obj = this.toplevelPagesDict.get(\"Count\");\n if (!Number.isInteger(obj)) {\n throw new FormatError(\n \"Page count in top-level pages dictionary is not an integer.\"\n );\n }\n return shadow(this, \"_pagesCount\", obj);\n }\n\n get numPages() {\n return this.hasActualNumPages ? this._actualNumPages : this._pagesCount;\n }\n\n get destinations() {\n const obj = this._readDests(),\n dests = Object.create(null);\n if (obj instanceof NameTree) {\n for (const [key, value] of obj.getAll()) {\n const dest = fetchDestination(value);\n if (dest) {\n dests[stringToPDFString(key)] = dest;\n }\n }\n } else if (obj instanceof Dict) {\n obj.forEach(function (key, value) {\n const dest = fetchDestination(value);\n if (dest) {\n dests[key] = dest;\n }\n });\n }\n return shadow(this, \"destinations\", dests);\n }\n\n getDestination(id) {\n const obj = this._readDests();\n if (obj instanceof NameTree) {\n const dest = fetchDestination(obj.get(id));\n if (dest) {\n return dest;\n }\n // Fallback to checking the *entire* NameTree, in an attempt to handle\n // corrupt PDF documents with out-of-order NameTrees (fixes issue 10272).\n const allDest = this.destinations[id];\n if (allDest) {\n warn(`Found \"${id}\" at an incorrect position in the NameTree.`);\n return allDest;\n }\n } else if (obj instanceof Dict) {\n const dest = fetchDestination(obj.get(id));\n if (dest) {\n return dest;\n }\n }\n return null;\n }\n\n /**\n * @private\n */\n _readDests() {\n const obj = this._catDict.get(\"Names\");\n if (obj && obj.has(\"Dests\")) {\n return new NameTree(obj.getRaw(\"Dests\"), this.xref);\n } else if (this._catDict.has(\"Dests\")) {\n // Simple destination dictionary.\n return this._catDict.get(\"Dests\");\n }\n return undefined;\n }\n\n get pageLabels() {\n let obj = null;\n try {\n obj = this._readPageLabels();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Unable to read page labels.\");\n }\n return shadow(this, \"pageLabels\", obj);\n }\n\n /**\n * @private\n */\n _readPageLabels() {\n const obj = this._catDict.getRaw(\"PageLabels\");\n if (!obj) {\n return null;\n }\n\n const pageLabels = new Array(this.numPages);\n let style = null,\n prefix = \"\";\n\n const numberTree = new NumberTree(obj, this.xref);\n const nums = numberTree.getAll();\n let currentLabel = \"\",\n currentIndex = 1;\n\n for (let i = 0, ii = this.numPages; i < ii; i++) {\n const labelDict = nums.get(i);\n\n if (labelDict !== undefined) {\n if (!(labelDict instanceof Dict)) {\n throw new FormatError(\"PageLabel is not a dictionary.\");\n }\n\n if (\n labelDict.has(\"Type\") &&\n !isName(labelDict.get(\"Type\"), \"PageLabel\")\n ) {\n throw new FormatError(\"Invalid type in PageLabel dictionary.\");\n }\n\n if (labelDict.has(\"S\")) {\n const s = labelDict.get(\"S\");\n if (!(s instanceof Name)) {\n throw new FormatError(\"Invalid style in PageLabel dictionary.\");\n }\n style = s.name;\n } else {\n style = null;\n }\n\n if (labelDict.has(\"P\")) {\n const p = labelDict.get(\"P\");\n if (typeof p !== \"string\") {\n throw new FormatError(\"Invalid prefix in PageLabel dictionary.\");\n }\n prefix = stringToPDFString(p);\n } else {\n prefix = \"\";\n }\n\n if (labelDict.has(\"St\")) {\n const st = labelDict.get(\"St\");\n if (!(Number.isInteger(st) && st >= 1)) {\n throw new FormatError(\"Invalid start in PageLabel dictionary.\");\n }\n currentIndex = st;\n } else {\n currentIndex = 1;\n }\n }\n\n switch (style) {\n case \"D\":\n currentLabel = currentIndex;\n break;\n case \"R\":\n case \"r\":\n currentLabel = toRomanNumerals(currentIndex, style === \"r\");\n break;\n case \"A\":\n case \"a\":\n const LIMIT = 26; // Use only the characters A-Z, or a-z.\n const A_UPPER_CASE = 0x41,\n A_LOWER_CASE = 0x61;\n\n const baseCharCode = style === \"a\" ? A_LOWER_CASE : A_UPPER_CASE;\n const letterIndex = currentIndex - 1;\n const character = String.fromCharCode(\n baseCharCode + (letterIndex % LIMIT)\n );\n currentLabel = character.repeat(Math.floor(letterIndex / LIMIT) + 1);\n break;\n default:\n if (style) {\n throw new FormatError(\n `Invalid style \"${style}\" in PageLabel dictionary.`\n );\n }\n currentLabel = \"\";\n }\n\n pageLabels[i] = prefix + currentLabel;\n currentIndex++;\n }\n return pageLabels;\n }\n\n get pageLayout() {\n const obj = this._catDict.get(\"PageLayout\");\n // Purposely use a non-standard default value, rather than 'SinglePage', to\n // allow differentiating between `undefined` and /SinglePage since that does\n // affect the Scroll mode (continuous/non-continuous) used in Adobe Reader.\n let pageLayout = \"\";\n\n if (obj instanceof Name) {\n switch (obj.name) {\n case \"SinglePage\":\n case \"OneColumn\":\n case \"TwoColumnLeft\":\n case \"TwoColumnRight\":\n case \"TwoPageLeft\":\n case \"TwoPageRight\":\n pageLayout = obj.name;\n }\n }\n return shadow(this, \"pageLayout\", pageLayout);\n }\n\n get pageMode() {\n const obj = this._catDict.get(\"PageMode\");\n let pageMode = \"UseNone\"; // Default value.\n\n if (obj instanceof Name) {\n switch (obj.name) {\n case \"UseNone\":\n case \"UseOutlines\":\n case \"UseThumbs\":\n case \"FullScreen\":\n case \"UseOC\":\n case \"UseAttachments\":\n pageMode = obj.name;\n }\n }\n return shadow(this, \"pageMode\", pageMode);\n }\n\n get viewerPreferences() {\n const obj = this._catDict.get(\"ViewerPreferences\");\n if (!(obj instanceof Dict)) {\n return shadow(this, \"viewerPreferences\", null);\n }\n let prefs = null;\n\n for (const key of obj.getKeys()) {\n const value = obj.get(key);\n let prefValue;\n\n switch (key) {\n case \"HideToolbar\":\n case \"HideMenubar\":\n case \"HideWindowUI\":\n case \"FitWindow\":\n case \"CenterWindow\":\n case \"DisplayDocTitle\":\n case \"PickTrayByPDFSize\":\n if (typeof value === \"boolean\") {\n prefValue = value;\n }\n break;\n case \"NonFullScreenPageMode\":\n if (value instanceof Name) {\n switch (value.name) {\n case \"UseNone\":\n case \"UseOutlines\":\n case \"UseThumbs\":\n case \"UseOC\":\n prefValue = value.name;\n break;\n default:\n prefValue = \"UseNone\";\n }\n }\n break;\n case \"Direction\":\n if (value instanceof Name) {\n switch (value.name) {\n case \"L2R\":\n case \"R2L\":\n prefValue = value.name;\n break;\n default:\n prefValue = \"L2R\";\n }\n }\n break;\n case \"ViewArea\":\n case \"ViewClip\":\n case \"PrintArea\":\n case \"PrintClip\":\n if (value instanceof Name) {\n switch (value.name) {\n case \"MediaBox\":\n case \"CropBox\":\n case \"BleedBox\":\n case \"TrimBox\":\n case \"ArtBox\":\n prefValue = value.name;\n break;\n default:\n prefValue = \"CropBox\";\n }\n }\n break;\n case \"PrintScaling\":\n if (value instanceof Name) {\n switch (value.name) {\n case \"None\":\n case \"AppDefault\":\n prefValue = value.name;\n break;\n default:\n prefValue = \"AppDefault\";\n }\n }\n break;\n case \"Duplex\":\n if (value instanceof Name) {\n switch (value.name) {\n case \"Simplex\":\n case \"DuplexFlipShortEdge\":\n case \"DuplexFlipLongEdge\":\n prefValue = value.name;\n break;\n default:\n prefValue = \"None\";\n }\n }\n break;\n case \"PrintPageRange\":\n // The number of elements must be even.\n if (Array.isArray(value) && value.length % 2 === 0) {\n const isValid = value.every((page, i, arr) => {\n return (\n Number.isInteger(page) &&\n page > 0 &&\n (i === 0 || page >= arr[i - 1]) &&\n page <= this.numPages\n );\n });\n if (isValid) {\n prefValue = value;\n }\n }\n break;\n case \"NumCopies\":\n if (Number.isInteger(value) && value > 0) {\n prefValue = value;\n }\n break;\n default:\n warn(`Ignoring non-standard key in ViewerPreferences: ${key}.`);\n continue;\n }\n\n if (prefValue === undefined) {\n warn(`Bad value, for key \"${key}\", in ViewerPreferences: ${value}.`);\n continue;\n }\n if (!prefs) {\n prefs = Object.create(null);\n }\n prefs[key] = prefValue;\n }\n return shadow(this, \"viewerPreferences\", prefs);\n }\n\n get openAction() {\n const obj = this._catDict.get(\"OpenAction\");\n const openAction = Object.create(null);\n\n if (obj instanceof Dict) {\n // Convert the OpenAction dictionary into a format that works with\n // `parseDestDictionary`, to avoid having to re-implement those checks.\n const destDict = new Dict(this.xref);\n destDict.set(\"A\", obj);\n\n const resultObj = { url: null, dest: null, action: null };\n Catalog.parseDestDictionary({ destDict, resultObj });\n\n if (Array.isArray(resultObj.dest)) {\n openAction.dest = resultObj.dest;\n } else if (resultObj.action) {\n openAction.action = resultObj.action;\n }\n } else if (Array.isArray(obj)) {\n openAction.dest = obj;\n }\n return shadow(\n this,\n \"openAction\",\n objectSize(openAction) > 0 ? openAction : null\n );\n }\n\n get attachments() {\n const obj = this._catDict.get(\"Names\");\n let attachments = null;\n\n if (obj instanceof Dict && obj.has(\"EmbeddedFiles\")) {\n const nameTree = new NameTree(obj.getRaw(\"EmbeddedFiles\"), this.xref);\n for (const [key, value] of nameTree.getAll()) {\n const fs = new FileSpec(value, this.xref);\n if (!attachments) {\n attachments = Object.create(null);\n }\n attachments[stringToPDFString(key)] = fs.serializable;\n }\n }\n return shadow(this, \"attachments\", attachments);\n }\n\n get xfaImages() {\n const obj = this._catDict.get(\"Names\");\n let xfaImages = null;\n\n if (obj instanceof Dict && obj.has(\"XFAImages\")) {\n const nameTree = new NameTree(obj.getRaw(\"XFAImages\"), this.xref);\n for (const [key, value] of nameTree.getAll()) {\n if (!xfaImages) {\n xfaImages = new Dict(this.xref);\n }\n xfaImages.set(stringToPDFString(key), value);\n }\n }\n return shadow(this, \"xfaImages\", xfaImages);\n }\n\n _collectJavaScript() {\n const obj = this._catDict.get(\"Names\");\n let javaScript = null;\n\n function appendIfJavaScriptDict(name, jsDict) {\n if (!(jsDict instanceof Dict)) {\n return;\n }\n if (!isName(jsDict.get(\"S\"), \"JavaScript\")) {\n return;\n }\n\n let js = jsDict.get(\"JS\");\n if (js instanceof BaseStream) {\n js = js.getString();\n } else if (typeof js !== \"string\") {\n return;\n }\n\n if (javaScript === null) {\n javaScript = new Map();\n }\n javaScript.set(name, stringToPDFString(js));\n }\n\n if (obj instanceof Dict && obj.has(\"JavaScript\")) {\n const nameTree = new NameTree(obj.getRaw(\"JavaScript\"), this.xref);\n for (const [key, value] of nameTree.getAll()) {\n appendIfJavaScriptDict(stringToPDFString(key), value);\n }\n }\n // Append OpenAction \"JavaScript\" actions, if any, to the JavaScript map.\n const openAction = this._catDict.get(\"OpenAction\");\n if (openAction) {\n appendIfJavaScriptDict(\"OpenAction\", openAction);\n }\n\n return javaScript;\n }\n\n get javaScript() {\n const javaScript = this._collectJavaScript();\n return shadow(\n this,\n \"javaScript\",\n javaScript ? [...javaScript.values()] : null\n );\n }\n\n get jsActions() {\n const javaScript = this._collectJavaScript();\n let actions = collectActions(\n this.xref,\n this._catDict,\n DocumentActionEventType\n );\n\n if (javaScript) {\n if (!actions) {\n actions = Object.create(null);\n }\n for (const [key, val] of javaScript) {\n if (key in actions) {\n actions[key].push(val);\n } else {\n actions[key] = [val];\n }\n }\n }\n return shadow(this, \"jsActions\", actions);\n }\n\n async fontFallback(id, handler) {\n const translatedFonts = await Promise.all(this.fontCache);\n\n for (const translatedFont of translatedFonts) {\n if (translatedFont.loadedName === id) {\n translatedFont.fallback(handler);\n return;\n }\n }\n }\n\n async cleanup(manuallyTriggered = false) {\n clearGlobalCaches();\n this.globalImageCache.clear(/* onlyData = */ manuallyTriggered);\n this.pageKidsCountCache.clear();\n this.pageIndexCache.clear();\n this.nonBlendModesSet.clear();\n\n const translatedFonts = await Promise.all(this.fontCache);\n\n for (const { dict } of translatedFonts) {\n delete dict.cacheKey;\n }\n this.fontCache.clear();\n this.builtInCMapCache.clear();\n this.standardFontDataCache.clear();\n }\n\n async getPageDict(pageIndex) {\n const nodesToVisit = [this.toplevelPagesDict];\n const visitedNodes = new RefSet();\n\n const pagesRef = this._catDict.getRaw(\"Pages\");\n if (pagesRef instanceof Ref) {\n visitedNodes.put(pagesRef);\n }\n const xref = this.xref,\n pageKidsCountCache = this.pageKidsCountCache,\n pageIndexCache = this.pageIndexCache;\n let currentPageIndex = 0;\n\n while (nodesToVisit.length) {\n const currentNode = nodesToVisit.pop();\n\n if (currentNode instanceof Ref) {\n const count = pageKidsCountCache.get(currentNode);\n // Skip nodes where the page can't be.\n if (count >= 0 && currentPageIndex + count <= pageIndex) {\n currentPageIndex += count;\n continue;\n }\n // Prevent circular references in the /Pages tree.\n if (visitedNodes.has(currentNode)) {\n throw new FormatError(\"Pages tree contains circular reference.\");\n }\n visitedNodes.put(currentNode);\n\n const obj = await xref.fetchAsync(currentNode);\n if (obj instanceof Dict) {\n let type = obj.getRaw(\"Type\");\n if (type instanceof Ref) {\n type = await xref.fetchAsync(type);\n }\n if (isName(type, \"Page\") || !obj.has(\"Kids\")) {\n // Cache the Page reference, since it can *greatly* improve\n // performance by reducing redundant lookups in long documents\n // where all nodes are found at *one* level of the tree.\n if (!pageKidsCountCache.has(currentNode)) {\n pageKidsCountCache.put(currentNode, 1);\n }\n // Help improve performance of the `getPageIndex` method.\n if (!pageIndexCache.has(currentNode)) {\n pageIndexCache.put(currentNode, currentPageIndex);\n }\n\n if (currentPageIndex === pageIndex) {\n return [obj, currentNode];\n }\n currentPageIndex++;\n continue;\n }\n }\n nodesToVisit.push(obj);\n continue;\n }\n\n // Must be a child page dictionary.\n if (!(currentNode instanceof Dict)) {\n throw new FormatError(\n \"Page dictionary kid reference points to wrong type of object.\"\n );\n }\n const { objId } = currentNode;\n\n let count = currentNode.getRaw(\"Count\");\n if (count instanceof Ref) {\n count = await xref.fetchAsync(count);\n }\n if (Number.isInteger(count) && count >= 0) {\n // Cache the Kids count, since it can reduce redundant lookups in\n // documents where all nodes are found at *one* level of the tree.\n if (objId && !pageKidsCountCache.has(objId)) {\n pageKidsCountCache.put(objId, count);\n }\n\n // Skip nodes where the page can't be.\n if (currentPageIndex + count <= pageIndex) {\n currentPageIndex += count;\n continue;\n }\n }\n\n let kids = currentNode.getRaw(\"Kids\");\n if (kids instanceof Ref) {\n kids = await xref.fetchAsync(kids);\n }\n if (!Array.isArray(kids)) {\n // Prevent errors in corrupt PDF documents that violate the\n // specification by *inlining* Page dicts directly in the Kids\n // array, rather than using indirect objects (fixes issue9540.pdf).\n let type = currentNode.getRaw(\"Type\");\n if (type instanceof Ref) {\n type = await xref.fetchAsync(type);\n }\n if (isName(type, \"Page\") || !currentNode.has(\"Kids\")) {\n if (currentPageIndex === pageIndex) {\n return [currentNode, null];\n }\n currentPageIndex++;\n continue;\n }\n\n throw new FormatError(\"Page dictionary kids object is not an array.\");\n }\n\n // Always check all `Kids` nodes, to avoid getting stuck in an empty\n // node further down in the tree (see issue5644.pdf, issue8088.pdf),\n // and to ensure that we actually find the correct `Page` dict.\n for (let last = kids.length - 1; last >= 0; last--) {\n nodesToVisit.push(kids[last]);\n }\n }\n\n throw new Error(`Page index ${pageIndex} not found.`);\n }\n\n /**\n * Eagerly fetches the entire /Pages-tree; should ONLY be used as a fallback.\n * @returns {Promise}\n */\n async getAllPageDicts(recoveryMode = false) {\n const queue = [{ currentNode: this.toplevelPagesDict, posInKids: 0 }];\n const visitedNodes = new RefSet();\n\n const pagesRef = this._catDict.getRaw(\"Pages\");\n if (pagesRef instanceof Ref) {\n visitedNodes.put(pagesRef);\n }\n const map = new Map(),\n xref = this.xref,\n pageIndexCache = this.pageIndexCache;\n let pageIndex = 0;\n\n function addPageDict(pageDict, pageRef) {\n // Help improve performance of the `getPageIndex` method.\n if (pageRef && !pageIndexCache.has(pageRef)) {\n pageIndexCache.put(pageRef, pageIndex);\n }\n\n map.set(pageIndex++, [pageDict, pageRef]);\n }\n function addPageError(error) {\n if (error instanceof XRefEntryException && !recoveryMode) {\n throw error;\n }\n\n map.set(pageIndex++, [error, null]);\n }\n\n while (queue.length > 0) {\n const queueItem = queue[queue.length - 1];\n const { currentNode, posInKids } = queueItem;\n\n let kids = currentNode.getRaw(\"Kids\");\n if (kids instanceof Ref) {\n try {\n kids = await xref.fetchAsync(kids);\n } catch (ex) {\n addPageError(ex);\n break;\n }\n }\n if (!Array.isArray(kids)) {\n addPageError(\n new FormatError(\"Page dictionary kids object is not an array.\")\n );\n break;\n }\n\n if (posInKids >= kids.length) {\n queue.pop();\n continue;\n }\n\n const kidObj = kids[posInKids];\n let obj;\n if (kidObj instanceof Ref) {\n // Prevent circular references in the /Pages tree.\n if (visitedNodes.has(kidObj)) {\n addPageError(\n new FormatError(\"Pages tree contains circular reference.\")\n );\n break;\n }\n visitedNodes.put(kidObj);\n\n try {\n obj = await xref.fetchAsync(kidObj);\n } catch (ex) {\n addPageError(ex);\n break;\n }\n } else {\n // Prevent errors in corrupt PDF documents that violate the\n // specification by *inlining* Page dicts directly in the Kids\n // array, rather than using indirect objects (see issue9540.pdf).\n obj = kidObj;\n }\n if (!(obj instanceof Dict)) {\n addPageError(\n new FormatError(\n \"Page dictionary kid reference points to wrong type of object.\"\n )\n );\n break;\n }\n\n let type = obj.getRaw(\"Type\");\n if (type instanceof Ref) {\n try {\n type = await xref.fetchAsync(type);\n } catch (ex) {\n addPageError(ex);\n break;\n }\n }\n if (isName(type, \"Page\") || !obj.has(\"Kids\")) {\n addPageDict(obj, kidObj instanceof Ref ? kidObj : null);\n } else {\n queue.push({ currentNode: obj, posInKids: 0 });\n }\n queueItem.posInKids++;\n }\n return map;\n }\n\n getPageIndex(pageRef) {\n const cachedPageIndex = this.pageIndexCache.get(pageRef);\n if (cachedPageIndex !== undefined) {\n return Promise.resolve(cachedPageIndex);\n }\n\n // The page tree nodes have the count of all the leaves below them. To get\n // how many pages are before we just have to walk up the tree and keep\n // adding the count of siblings to the left of the node.\n const xref = this.xref;\n\n function pagesBeforeRef(kidRef) {\n let total = 0,\n parentRef;\n\n return xref\n .fetchAsync(kidRef)\n .then(function (node) {\n if (\n isRefsEqual(kidRef, pageRef) &&\n !isDict(node, \"Page\") &&\n !(node instanceof Dict && !node.has(\"Type\") && node.has(\"Contents\"))\n ) {\n throw new FormatError(\n \"The reference does not point to a /Page dictionary.\"\n );\n }\n if (!node) {\n return null;\n }\n if (!(node instanceof Dict)) {\n throw new FormatError(\"Node must be a dictionary.\");\n }\n parentRef = node.getRaw(\"Parent\");\n return node.getAsync(\"Parent\");\n })\n .then(function (parent) {\n if (!parent) {\n return null;\n }\n if (!(parent instanceof Dict)) {\n throw new FormatError(\"Parent must be a dictionary.\");\n }\n return parent.getAsync(\"Kids\");\n })\n .then(function (kids) {\n if (!kids) {\n return null;\n }\n\n const kidPromises = [];\n let found = false;\n for (let i = 0, ii = kids.length; i < ii; i++) {\n const kid = kids[i];\n if (!(kid instanceof Ref)) {\n throw new FormatError(\"Kid must be a reference.\");\n }\n if (isRefsEqual(kid, kidRef)) {\n found = true;\n break;\n }\n kidPromises.push(\n xref.fetchAsync(kid).then(function (obj) {\n if (!(obj instanceof Dict)) {\n throw new FormatError(\"Kid node must be a dictionary.\");\n }\n if (obj.has(\"Count\")) {\n total += obj.get(\"Count\");\n } else {\n // Page leaf node.\n total++;\n }\n })\n );\n }\n if (!found) {\n throw new FormatError(\"Kid reference not found in parent's kids.\");\n }\n return Promise.all(kidPromises).then(function () {\n return [total, parentRef];\n });\n });\n }\n\n let total = 0;\n const next = ref =>\n pagesBeforeRef(ref).then(args => {\n if (!args) {\n this.pageIndexCache.put(pageRef, total);\n return total;\n }\n const [count, parentRef] = args;\n total += count;\n return next(parentRef);\n });\n\n return next(pageRef);\n }\n\n get baseUrl() {\n const uri = this._catDict.get(\"URI\");\n if (uri instanceof Dict) {\n const base = uri.get(\"Base\");\n if (typeof base === \"string\") {\n const absoluteUrl = createValidAbsoluteUrl(base, null, {\n tryConvertEncoding: true,\n });\n if (absoluteUrl) {\n return shadow(this, \"baseUrl\", absoluteUrl.href);\n }\n }\n }\n return shadow(this, \"baseUrl\", null);\n }\n\n /**\n * @typedef {Object} ParseDestDictionaryParameters\n * @property {Dict} destDict - The dictionary containing the destination.\n * @property {Object} resultObj - The object where the parsed destination\n * properties will be placed.\n * @property {string} [docBaseUrl] - The document base URL that is used when\n * attempting to recover valid absolute URLs from relative ones.\n */\n\n /**\n * Helper function used to parse the contents of destination dictionaries.\n * @param {ParseDestDictionaryParameters} params\n */\n static parseDestDictionary(params) {\n const destDict = params.destDict;\n if (!(destDict instanceof Dict)) {\n warn(\"parseDestDictionary: `destDict` must be a dictionary.\");\n return;\n }\n const resultObj = params.resultObj;\n if (typeof resultObj !== \"object\") {\n warn(\"parseDestDictionary: `resultObj` must be an object.\");\n return;\n }\n const docBaseUrl = params.docBaseUrl || null;\n\n let action = destDict.get(\"A\"),\n url,\n dest;\n if (!(action instanceof Dict)) {\n if (destDict.has(\"Dest\")) {\n // A /Dest entry should *only* contain a Name or an Array, but some bad\n // PDF generators ignore that and treat it as an /A entry.\n action = destDict.get(\"Dest\");\n } else {\n action = destDict.get(\"AA\");\n if (action instanceof Dict) {\n if (action.has(\"D\")) {\n // MouseDown\n action = action.get(\"D\");\n } else if (action.has(\"U\")) {\n // MouseUp\n action = action.get(\"U\");\n }\n }\n }\n }\n\n if (action instanceof Dict) {\n const actionType = action.get(\"S\");\n if (!(actionType instanceof Name)) {\n warn(\"parseDestDictionary: Invalid type in Action dictionary.\");\n return;\n }\n const actionName = actionType.name;\n\n switch (actionName) {\n case \"ResetForm\":\n const flags = action.get(\"Flags\");\n const include = ((typeof flags === \"number\" ? flags : 0) & 1) === 0;\n const fields = [];\n const refs = [];\n for (const obj of action.get(\"Fields\") || []) {\n if (obj instanceof Ref) {\n refs.push(obj.toString());\n } else if (typeof obj === \"string\") {\n fields.push(stringToPDFString(obj));\n }\n }\n resultObj.resetForm = { fields, refs, include };\n break;\n case \"URI\":\n url = action.get(\"URI\");\n if (url instanceof Name) {\n // Some bad PDFs do not put parentheses around relative URLs.\n url = \"/\" + url.name;\n }\n break;\n\n case \"GoTo\":\n dest = action.get(\"D\");\n break;\n\n case \"Launch\":\n // We neither want, nor can, support arbitrary 'Launch' actions.\n // However, in practice they are mostly used for linking to other PDF\n // files, which we thus attempt to support (utilizing `docBaseUrl`).\n /* falls through */\n\n case \"GoToR\":\n const urlDict = action.get(\"F\");\n if (urlDict instanceof Dict) {\n // We assume that we found a FileSpec dictionary\n // and fetch the URL without checking any further.\n url = urlDict.get(\"F\") || null;\n } else if (typeof urlDict === \"string\") {\n url = urlDict;\n }\n\n // NOTE: the destination is relative to the *remote* document.\n let remoteDest = action.get(\"D\");\n if (remoteDest) {\n if (remoteDest instanceof Name) {\n remoteDest = remoteDest.name;\n }\n if (typeof url === \"string\") {\n const baseUrl = url.split(\"#\")[0];\n if (typeof remoteDest === \"string\") {\n url = baseUrl + \"#\" + remoteDest;\n } else if (Array.isArray(remoteDest)) {\n url = baseUrl + \"#\" + JSON.stringify(remoteDest);\n }\n }\n }\n // The 'NewWindow' property, equal to `LinkTarget.BLANK`.\n const newWindow = action.get(\"NewWindow\");\n if (typeof newWindow === \"boolean\") {\n resultObj.newWindow = newWindow;\n }\n break;\n\n case \"Named\":\n const namedAction = action.get(\"N\");\n if (namedAction instanceof Name) {\n resultObj.action = namedAction.name;\n }\n break;\n\n case \"JavaScript\":\n const jsAction = action.get(\"JS\");\n let js;\n\n if (jsAction instanceof BaseStream) {\n js = jsAction.getString();\n } else if (typeof jsAction === \"string\") {\n js = jsAction;\n }\n\n const jsURL = js && recoverJsURL(stringToPDFString(js));\n if (jsURL) {\n url = jsURL.url;\n resultObj.newWindow = jsURL.newWindow;\n break;\n }\n /* falls through */\n default:\n if (actionName === \"JavaScript\" || actionName === \"SubmitForm\") {\n // Don't bother the user with a warning for actions that require\n // scripting support, since those will be handled separately.\n break;\n }\n warn(`parseDestDictionary - unsupported action: \"${actionName}\".`);\n break;\n }\n } else if (destDict.has(\"Dest\")) {\n // Simple destination.\n dest = destDict.get(\"Dest\");\n }\n\n if (typeof url === \"string\") {\n const absoluteUrl = createValidAbsoluteUrl(url, docBaseUrl, {\n addDefaultProtocol: true,\n tryConvertEncoding: true,\n });\n if (absoluteUrl) {\n resultObj.url = absoluteUrl.href;\n }\n resultObj.unsafeUrl = url;\n }\n if (dest) {\n if (dest instanceof Name) {\n dest = dest.name;\n }\n if (typeof dest === \"string\") {\n resultObj.dest = stringToPDFString(dest);\n } else if (Array.isArray(dest)) {\n resultObj.dest = dest;\n }\n }\n }\n}\n\nclass ExtendedCatalog extends Catalog {\n constructor(pdfManager, xref) {\n super(pdfManager, xref);\n\n this.pages = this.getPages(this.toplevelPagesDict.get('Kids'));\n }\n\n _convertStructToObject(struct) {\n if (Array.isArray(struct)) {\n return struct.map(el => this._convertStructToObject(el));\n } else if (isDict(struct)) {\n let result = {};\n struct.getKeys().forEach(key => {\n result[key] = this._convertStructToObject(struct.get(key));\n });\n return result;\n } else if (isName(struct)) {\n return struct.name;\n } else {\n return struct;\n }\n }\n\n get structTreeRoot() {\n const structTreeRoot = this._catDict.get('StructTreeRoot');\n if (!isDict(structTreeRoot)) {\n return null;\n }\n return shadow(this, 'structTreeRoot', structTreeRoot);\n }\n\n getTreeElement(el, page, ref) {\n //update page for current element\n if (isDict(el) && el.has('Pg')) {\n let pageRef = el.getRaw('Pg');\n let newPage = this.pages.findIndex(el => el.num === pageRef.num && el.gen === pageRef.gen);\n newPage = newPage !== -1 ? newPage : null;\n if (newPage !== page) {\n page = newPage;\n }\n }\n\n if (isDict(el) && el.has('K')) {\n return {\n name: el.has('S') ? stringToUTF8String(el.get('S').name) : null,\n children: this.getTreeElement(el.get('K'), page, el.getRaw('K')),\n ref: ref\n }\n }\n\n if (isDict(el) && el.has('Obj')) {\n let obj = el.get('Obj');\n let type = null;\n if (obj.has('Type')) {\n type = obj.get('Type').name;\n }\n if (obj.has('Subtype')) {\n type = obj.get('Subtype').name;\n }\n switch (type){\n case 'Link':\n case 'Annot':\n let rect = obj.get('Rect');\n return {\n rect: [rect[0], rect[1], rect[2], rect[3]],\n pageIndex: page\n };\n default:\n break;\n }\n }\n\n if (Array.isArray(el)) {\n return el.map(subel => {\n if (Number.isInteger(subel)) {\n return {mcid: subel, pageIndex: page};\n } else if (!(subel.hasOwnProperty('num') && subel.hasOwnProperty('gen')) && subel.get('Type') !== 'OBJR') {\n return this.getTreeElement(subel, page);\n } else if (subel.hasOwnProperty('num') && subel.hasOwnProperty('gen')){\n return this.getTreeElement(this.xref.fetch(subel), page, subel);\n }\n })\n }\n\n if (Number.isInteger(el)) {\n return {mcid: el, pageIndex: page};\n }\n\n if (isDict(el) && el.has('Type') && el.get('Type').name === 'MCR') {\n return {mcid: el.get('MCID'), pageIndex: page};\n }\n }\n\n getPages(pages) {\n let pagesArray = [];\n pages.map(kid => {\n if (kid instanceof Ref){\n let kidObj = this.xref.fetch(kid);\n let kidObjType = kidObj.get('Type').name;\n switch (kidObjType) {\n case 'Page':\n pagesArray.push(kid);\n break;\n case 'Pages':\n let array = this.getPages(kidObj.get('Kids'));\n pagesArray = pagesArray.concat(array);\n break;\n default:\n break;\n }\n }\n });\n return pagesArray;\n }\n\n get structureTree() {\n let structureTree = null;\n if (this.structTreeRoot && isDict(this.structTreeRoot) && this.structTreeRoot.has('K')) {\n structureTree = this.getTreeElement(this.structTreeRoot.get('K'), null, this.structTreeRoot.getRaw('K'));\n }\n return shadow(this, 'structureTree', structureTree);\n }\n}\n\nexport { ExtendedCatalog as Catalog };\n\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Dict, RefSet } from \"./primitives.js\";\nimport { FormatError, unreachable, warn } from \"../shared/util.js\";\n\n/**\n * A NameTree/NumberTree is like a Dict but has some advantageous properties,\n * see the specification (7.9.6 and 7.9.7) for additional details.\n * TODO: implement all the Dict functions and make this more efficient.\n */\nclass NameOrNumberTree {\n constructor(root, xref, type) {\n if (this.constructor === NameOrNumberTree) {\n unreachable(\"Cannot initialize NameOrNumberTree.\");\n }\n this.root = root;\n this.xref = xref;\n this._type = type;\n }\n\n getAll() {\n const map = new Map();\n if (!this.root) {\n return map;\n }\n const xref = this.xref;\n // Reading Name/Number tree.\n const processed = new RefSet();\n processed.put(this.root);\n const queue = [this.root];\n while (queue.length > 0) {\n const obj = xref.fetchIfRef(queue.shift());\n if (!(obj instanceof Dict)) {\n continue;\n }\n if (obj.has(\"Kids\")) {\n const kids = obj.get(\"Kids\");\n if (!Array.isArray(kids)) {\n continue;\n }\n for (const kid of kids) {\n if (processed.has(kid)) {\n throw new FormatError(`Duplicate entry in \"${this._type}\" tree.`);\n }\n queue.push(kid);\n processed.put(kid);\n }\n continue;\n }\n const entries = obj.get(this._type);\n if (!Array.isArray(entries)) {\n continue;\n }\n for (let i = 0, ii = entries.length; i < ii; i += 2) {\n map.set(xref.fetchIfRef(entries[i]), xref.fetchIfRef(entries[i + 1]));\n }\n }\n return map;\n }\n\n get(key) {\n if (!this.root) {\n return null;\n }\n const xref = this.xref;\n let kidsOrEntries = xref.fetchIfRef(this.root);\n let loopCount = 0;\n const MAX_LEVELS = 10;\n\n // Perform a binary search to quickly find the entry that\n // contains the key we are looking for.\n while (kidsOrEntries.has(\"Kids\")) {\n if (++loopCount > MAX_LEVELS) {\n warn(`Search depth limit reached for \"${this._type}\" tree.`);\n return null;\n }\n\n const kids = kidsOrEntries.get(\"Kids\");\n if (!Array.isArray(kids)) {\n return null;\n }\n\n let l = 0,\n r = kids.length - 1;\n while (l <= r) {\n const m = (l + r) >> 1;\n const kid = xref.fetchIfRef(kids[m]);\n const limits = kid.get(\"Limits\");\n\n if (key < xref.fetchIfRef(limits[0])) {\n r = m - 1;\n } else if (key > xref.fetchIfRef(limits[1])) {\n l = m + 1;\n } else {\n kidsOrEntries = kid;\n break;\n }\n }\n if (l > r) {\n return null;\n }\n }\n\n // If we get here, then we have found the right entry. Now go through the\n // entries in the dictionary until we find the key we're looking for.\n const entries = kidsOrEntries.get(this._type);\n if (Array.isArray(entries)) {\n // Perform a binary search to reduce the lookup time.\n let l = 0,\n r = entries.length - 2;\n while (l <= r) {\n // Check only even indices (0, 2, 4, ...) because the\n // odd indices contain the actual data.\n const tmp = (l + r) >> 1,\n m = tmp + (tmp & 1);\n const currentKey = xref.fetchIfRef(entries[m]);\n if (key < currentKey) {\n r = m - 2;\n } else if (key > currentKey) {\n l = m + 2;\n } else {\n return xref.fetchIfRef(entries[m + 1]);\n }\n }\n }\n return null;\n }\n}\n\nclass NameTree extends NameOrNumberTree {\n constructor(root, xref) {\n super(root, xref, \"Names\");\n }\n}\n\nclass NumberTree extends NameOrNumberTree {\n constructor(root, xref) {\n super(root, xref, \"Nums\");\n }\n}\n\nexport { NameTree, NumberTree };\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { clearPrimitiveCaches } from \"./primitives.js\";\nimport { clearUnicodeCaches } from \"./unicode.js\";\n\nfunction clearGlobalCaches() {\n clearPrimitiveCaches();\n clearUnicodeCaches();\n}\n\nexport { clearGlobalCaches };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { stringToPDFString, warn } from \"../shared/util.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { Dict } from \"./primitives.js\";\n\nfunction pickPlatformItem(dict) {\n // Look for the filename in this order:\n // UF, F, Unix, Mac, DOS\n if (dict.has(\"UF\")) {\n return dict.get(\"UF\");\n } else if (dict.has(\"F\")) {\n return dict.get(\"F\");\n } else if (dict.has(\"Unix\")) {\n return dict.get(\"Unix\");\n } else if (dict.has(\"Mac\")) {\n return dict.get(\"Mac\");\n } else if (dict.has(\"DOS\")) {\n return dict.get(\"DOS\");\n }\n return null;\n}\n\n/**\n * \"A PDF file can refer to the contents of another file by using a File\n * Specification (PDF 1.1)\", see the spec (7.11) for more details.\n * NOTE: Only embedded files are supported (as part of the attachments support)\n * TODO: support the 'URL' file system (with caching if !/V), portable\n * collections attributes and related files (/RF)\n */\nclass FileSpec {\n constructor(root, xref) {\n if (!(root instanceof Dict)) {\n return;\n }\n this.xref = xref;\n this.root = root;\n if (root.has(\"FS\")) {\n this.fs = root.get(\"FS\");\n }\n this.description = root.has(\"Desc\")\n ? stringToPDFString(root.get(\"Desc\"))\n : \"\";\n if (root.has(\"RF\")) {\n warn(\"Related file specifications are not supported\");\n }\n this.contentAvailable = true;\n if (!root.has(\"EF\")) {\n this.contentAvailable = false;\n warn(\"Non-embedded file specifications are not supported\");\n }\n }\n\n get filename() {\n if (!this._filename && this.root) {\n const filename = pickPlatformItem(this.root) || \"unnamed\";\n this._filename = stringToPDFString(filename)\n .replace(/\\\\\\\\/g, \"\\\\\")\n .replace(/\\\\\\//g, \"/\")\n .replace(/\\\\/g, \"/\");\n }\n return this._filename;\n }\n\n get content() {\n if (!this.contentAvailable) {\n return null;\n }\n if (!this.contentRef && this.root) {\n this.contentRef = pickPlatformItem(this.root.get(\"EF\"));\n }\n let content = null;\n if (this.contentRef) {\n const fileObj = this.xref.fetchIfRef(this.contentRef);\n if (fileObj instanceof BaseStream) {\n content = fileObj.getBytes();\n } else {\n warn(\n \"Embedded file specification points to non-existing/invalid content\"\n );\n }\n } else {\n warn(\"Embedded file specification does not have a content\");\n }\n return content;\n }\n\n get serializable() {\n return {\n filename: this.filename,\n content: this.content,\n };\n }\n}\n\nexport { FileSpec };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SimpleXMLParser } from \"./xml_parser.js\";\n\nclass MetadataParser {\n constructor(data) {\n // Ghostscript may produce invalid metadata, so try to repair that first.\n data = this._repair(data);\n\n // Convert the string to an XML document.\n const parser = new SimpleXMLParser({ lowerCaseName: true });\n const xmlDocument = parser.parseFromString(data);\n\n this._metadataMap = new Map();\n this._data = data;\n\n if (xmlDocument) {\n this._parse(xmlDocument);\n }\n }\n\n _repair(data) {\n // Start by removing any \"junk\" before the first tag (see issue 10395).\n return data\n .replace(/^[^<]+/, \"\")\n .replace(/>\\\\376\\\\377([^<]+)/g, function (all, codes) {\n const bytes = codes\n .replace(/\\\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) {\n return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1);\n })\n .replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) {\n switch (name) {\n case \"amp\":\n return \"&\";\n case \"apos\":\n return \"'\";\n case \"gt\":\n return \">\";\n case \"lt\":\n return \"<\";\n case \"quot\":\n return '\"';\n }\n throw new Error(`_repair: ${name} isn't defined.`);\n });\n\n const charBuf = [];\n for (let i = 0, ii = bytes.length; i < ii; i += 2) {\n const code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);\n if (\n code >= /* Space = */ 32 &&\n code < /* Delete = */ 127 &&\n code !== /* '<' = */ 60 &&\n code !== /* '>' = */ 62 &&\n code !== /* '&' = */ 38\n ) {\n charBuf.push(String.fromCharCode(code));\n } else {\n charBuf.push(\n \"&#x\" + (0x10000 + code).toString(16).substring(1) + \";\"\n );\n }\n }\n return \">\" + charBuf.join(\"\");\n });\n }\n\n _getSequence(entry) {\n const name = entry.nodeName;\n if (name !== \"rdf:bag\" && name !== \"rdf:seq\" && name !== \"rdf:alt\") {\n return null;\n }\n return entry.childNodes.filter(node => node.nodeName === \"rdf:li\");\n }\n\n _parseArray(entry) {\n if (!entry.hasChildNodes()) {\n return;\n }\n // Child must be a Bag (unordered array) or a Seq.\n const [seqNode] = entry.childNodes;\n const sequence = this._getSequence(seqNode) || [];\n\n this._metadataMap.set(\n entry.nodeName,\n sequence.map(node => node.textContent.trim())\n );\n }\n\n _parse(xmlDocument) {\n let rdf = xmlDocument.documentElement;\n\n if (rdf.nodeName !== \"rdf:rdf\") {\n // Wrapped in \n rdf = rdf.firstChild;\n while (rdf && rdf.nodeName !== \"rdf:rdf\") {\n rdf = rdf.nextSibling;\n }\n }\n\n if (!rdf || rdf.nodeName !== \"rdf:rdf\" || !rdf.hasChildNodes()) {\n return;\n }\n\n for (const desc of rdf.childNodes) {\n if (desc.nodeName !== \"rdf:description\") {\n continue;\n }\n\n for (const entry of desc.childNodes) {\n const name = entry.nodeName;\n switch (name) {\n case \"#text\":\n continue;\n case \"dc:creator\":\n case \"dc:subject\":\n this._parseArray(entry);\n continue;\n }\n this._metadataMap.set(name, entry.textContent.trim());\n }\n }\n }\n\n get serializable() {\n return {\n parsedData: this._metadataMap,\n rawData: this._data,\n };\n }\n}\n\nexport { MetadataParser };\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// The code for XMLParserBase copied from\n// https://github.com/mozilla/shumway/blob/16451d8836fa85f4b16eeda8b4bda2fa9e2b22b0/src/avm2/natives/xml.ts\n\nimport { encodeToXmlString } from \"./core_utils.js\";\n\nconst XMLParserErrorCode = {\n NoError: 0,\n EndOfDocument: -1,\n UnterminatedCdat: -2,\n UnterminatedXmlDeclaration: -3,\n UnterminatedDoctypeDeclaration: -4,\n UnterminatedComment: -5,\n MalformedElement: -6,\n OutOfMemory: -7,\n UnterminatedAttributeValue: -8,\n UnterminatedElement: -9,\n ElementNeverBegun: -10,\n};\n\nfunction isWhitespace(s, index) {\n const ch = s[index];\n return ch === \" \" || ch === \"\\n\" || ch === \"\\r\" || ch === \"\\t\";\n}\n\nfunction isWhitespaceString(s) {\n for (let i = 0, ii = s.length; i < ii; i++) {\n if (!isWhitespace(s, i)) {\n return false;\n }\n }\n return true;\n}\n\nclass XMLParserBase {\n _resolveEntities(s) {\n return s.replace(/&([^;]+);/g, (all, entity) => {\n if (entity.substring(0, 2) === \"#x\") {\n return String.fromCodePoint(parseInt(entity.substring(2), 16));\n } else if (entity.substring(0, 1) === \"#\") {\n return String.fromCodePoint(parseInt(entity.substring(1), 10));\n }\n switch (entity) {\n case \"lt\":\n return \"<\";\n case \"gt\":\n return \">\";\n case \"amp\":\n return \"&\";\n case \"quot\":\n return '\"';\n case \"apos\":\n return \"'\";\n }\n return this.onResolveEntity(entity);\n });\n }\n\n _parseContent(s, start) {\n const attributes = [];\n let pos = start;\n\n function skipWs() {\n while (pos < s.length && isWhitespace(s, pos)) {\n ++pos;\n }\n }\n\n while (\n pos < s.length &&\n !isWhitespace(s, pos) &&\n s[pos] !== \">\" &&\n s[pos] !== \"/\"\n ) {\n ++pos;\n }\n const name = s.substring(start, pos);\n skipWs();\n while (\n pos < s.length &&\n s[pos] !== \">\" &&\n s[pos] !== \"/\" &&\n s[pos] !== \"?\"\n ) {\n skipWs();\n let attrName = \"\",\n attrValue = \"\";\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \"=\") {\n attrName += s[pos];\n ++pos;\n }\n skipWs();\n if (s[pos] !== \"=\") {\n return null;\n }\n ++pos;\n skipWs();\n const attrEndChar = s[pos];\n if (attrEndChar !== '\"' && attrEndChar !== \"'\") {\n return null;\n }\n const attrEndIndex = s.indexOf(attrEndChar, ++pos);\n if (attrEndIndex < 0) {\n return null;\n }\n attrValue = s.substring(pos, attrEndIndex);\n attributes.push({\n name: attrName,\n value: this._resolveEntities(attrValue),\n });\n pos = attrEndIndex + 1;\n skipWs();\n }\n return {\n name,\n attributes,\n parsed: pos - start,\n };\n }\n\n _parseProcessingInstruction(s, start) {\n let pos = start;\n\n function skipWs() {\n while (pos < s.length && isWhitespace(s, pos)) {\n ++pos;\n }\n }\n\n while (\n pos < s.length &&\n !isWhitespace(s, pos) &&\n s[pos] !== \">\" &&\n s[pos] !== \"?\" &&\n s[pos] !== \"/\"\n ) {\n ++pos;\n }\n const name = s.substring(start, pos);\n skipWs();\n const attrStart = pos;\n while (pos < s.length && (s[pos] !== \"?\" || s[pos + 1] !== \">\")) {\n ++pos;\n }\n const value = s.substring(attrStart, pos);\n return {\n name,\n value,\n parsed: pos - start,\n };\n }\n\n parseXml(s) {\n let i = 0;\n while (i < s.length) {\n const ch = s[i];\n let j = i;\n if (ch === \"<\") {\n ++j;\n const ch2 = s[j];\n let q;\n switch (ch2) {\n case \"/\":\n ++j;\n q = s.indexOf(\">\", j);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n this.onEndElement(s.substring(j, q));\n j = q + 1;\n break;\n case \"?\":\n ++j;\n const pi = this._parseProcessingInstruction(s, j);\n if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== \"?>\") {\n this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);\n return;\n }\n this.onPi(pi.name, pi.value);\n j += pi.parsed + 2;\n break;\n case \"!\":\n if (s.substring(j + 1, j + 3) === \"--\") {\n q = s.indexOf(\"-->\", j + 3);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedComment);\n return;\n }\n this.onComment(s.substring(j + 3, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === \"[CDATA[\") {\n q = s.indexOf(\"]]>\", j + 8);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedCdat);\n return;\n }\n this.onCdata(s.substring(j + 8, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === \"DOCTYPE\") {\n const q2 = s.indexOf(\"[\", j + 8);\n let complexDoctype = false;\n q = s.indexOf(\">\", j + 8);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n return;\n }\n if (q2 > 0 && q > q2) {\n q = s.indexOf(\"]>\", j + 8);\n if (q < 0) {\n this.onError(\n XMLParserErrorCode.UnterminatedDoctypeDeclaration\n );\n return;\n }\n complexDoctype = true;\n }\n const doctypeContent = s.substring(\n j + 8,\n q + (complexDoctype ? 1 : 0)\n );\n this.onDoctype(doctypeContent);\n j = q + (complexDoctype ? 2 : 1);\n } else {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n break;\n default:\n const content = this._parseContent(s, j);\n if (content === null) {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n let isClosed = false;\n if (\n s.substring(j + content.parsed, j + content.parsed + 2) === \"/>\"\n ) {\n isClosed = true;\n } else if (\n s.substring(j + content.parsed, j + content.parsed + 1) !== \">\"\n ) {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n this.onBeginElement(content.name, content.attributes, isClosed);\n j += content.parsed + (isClosed ? 2 : 1);\n break;\n }\n } else {\n while (j < s.length && s[j] !== \"<\") {\n j++;\n }\n const text = s.substring(i, j);\n this.onText(this._resolveEntities(text));\n }\n i = j;\n }\n }\n\n onResolveEntity(name) {\n return `&${name};`;\n }\n\n onPi(name, value) {}\n\n onComment(text) {}\n\n onCdata(text) {}\n\n onDoctype(doctypeContent) {}\n\n onText(text) {}\n\n onBeginElement(name, attributes, isEmpty) {}\n\n onEndElement(name) {}\n\n onError(code) {}\n}\n\nclass SimpleDOMNode {\n constructor(nodeName, nodeValue) {\n this.nodeName = nodeName;\n this.nodeValue = nodeValue;\n\n Object.defineProperty(this, \"parentNode\", { value: null, writable: true });\n }\n\n get firstChild() {\n return this.childNodes && this.childNodes[0];\n }\n\n get nextSibling() {\n const childNodes = this.parentNode.childNodes;\n if (!childNodes) {\n return undefined;\n }\n const index = childNodes.indexOf(this);\n if (index === -1) {\n return undefined;\n }\n return childNodes[index + 1];\n }\n\n get textContent() {\n if (!this.childNodes) {\n return this.nodeValue || \"\";\n }\n return this.childNodes\n .map(function (child) {\n return child.textContent;\n })\n .join(\"\");\n }\n\n get children() {\n return this.childNodes || [];\n }\n\n hasChildNodes() {\n return this.childNodes && this.childNodes.length > 0;\n }\n\n /**\n * Search a node in the tree with the given path\n * foo.bar[nnn], i.e. find the nnn-th node named\n * bar under a node named foo.\n *\n * @param {Array} paths - an array of objects as\n * returned by {parseXFAPath}.\n * @param {number} pos - the current position in\n * the paths array.\n * @returns {SimpleDOMNode} The node corresponding\n * to the path or null if not found.\n */\n searchNode(paths, pos) {\n if (pos >= paths.length) {\n return this;\n }\n\n const component = paths[pos];\n const stack = [];\n let node = this;\n\n while (true) {\n if (component.name === node.nodeName) {\n if (component.pos === 0) {\n const res = node.searchNode(paths, pos + 1);\n if (res !== null) {\n return res;\n }\n } else if (stack.length === 0) {\n return null;\n } else {\n const [parent] = stack.pop();\n let siblingPos = 0;\n for (const child of parent.childNodes) {\n if (component.name === child.nodeName) {\n if (siblingPos === component.pos) {\n return child.searchNode(paths, pos + 1);\n }\n siblingPos++;\n }\n }\n // We didn't find the correct sibling\n // so just return the first found node\n return node.searchNode(paths, pos + 1);\n }\n }\n\n if (node.childNodes && node.childNodes.length !== 0) {\n stack.push([node, 0]);\n node = node.childNodes[0];\n } else if (stack.length === 0) {\n return null;\n } else {\n while (stack.length !== 0) {\n const [parent, currentPos] = stack.pop();\n const newPos = currentPos + 1;\n if (newPos < parent.childNodes.length) {\n stack.push([parent, newPos]);\n node = parent.childNodes[newPos];\n break;\n }\n }\n if (stack.length === 0) {\n return null;\n }\n }\n }\n }\n\n dump(buffer) {\n if (this.nodeName === \"#text\") {\n buffer.push(encodeToXmlString(this.nodeValue));\n return;\n }\n\n buffer.push(`<${this.nodeName}`);\n if (this.attributes) {\n for (const attribute of this.attributes) {\n buffer.push(\n ` ${attribute.name}=\"${encodeToXmlString(attribute.value)}\"`\n );\n }\n }\n if (this.hasChildNodes()) {\n buffer.push(\">\");\n for (const child of this.childNodes) {\n child.dump(buffer);\n }\n buffer.push(``);\n } else if (this.nodeValue) {\n buffer.push(`>${encodeToXmlString(this.nodeValue)}`);\n } else {\n buffer.push(\"/>\");\n }\n }\n}\n\nclass SimpleXMLParser extends XMLParserBase {\n constructor({ hasAttributes = false, lowerCaseName = false }) {\n super();\n this._currentFragment = null;\n this._stack = null;\n this._errorCode = XMLParserErrorCode.NoError;\n this._hasAttributes = hasAttributes;\n this._lowerCaseName = lowerCaseName;\n }\n\n parseFromString(data) {\n this._currentFragment = [];\n this._stack = [];\n this._errorCode = XMLParserErrorCode.NoError;\n\n this.parseXml(data);\n\n if (this._errorCode !== XMLParserErrorCode.NoError) {\n return undefined; // return undefined on error\n }\n\n // We should only have one root.\n const [documentElement] = this._currentFragment;\n if (!documentElement) {\n return undefined; // Return undefined if no root was found.\n }\n return { documentElement };\n }\n\n onText(text) {\n if (isWhitespaceString(text)) {\n return;\n }\n const node = new SimpleDOMNode(\"#text\", text);\n this._currentFragment.push(node);\n }\n\n onCdata(text) {\n const node = new SimpleDOMNode(\"#text\", text);\n this._currentFragment.push(node);\n }\n\n onBeginElement(name, attributes, isEmpty) {\n if (this._lowerCaseName) {\n name = name.toLowerCase();\n }\n const node = new SimpleDOMNode(name);\n node.childNodes = [];\n if (this._hasAttributes) {\n node.attributes = attributes;\n }\n this._currentFragment.push(node);\n if (isEmpty) {\n return;\n }\n this._stack.push(this._currentFragment);\n this._currentFragment = node.childNodes;\n }\n\n onEndElement(name) {\n this._currentFragment = this._stack.pop() || [];\n const lastElement = this._currentFragment[this._currentFragment.length - 1];\n if (!lastElement) {\n return null;\n }\n for (let i = 0, ii = lastElement.childNodes.length; i < ii; i++) {\n lastElement.childNodes[i].parentNode = lastElement;\n }\n return lastElement;\n }\n\n onError(code) {\n this._errorCode = code;\n }\n}\n\nexport { SimpleDOMNode, SimpleXMLParser, XMLParserBase, XMLParserErrorCode };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Dict, isName, Name, Ref } from \"./primitives.js\";\nimport { stringToPDFString, warn } from \"../shared/util.js\";\nimport { NumberTree } from \"./name_number_tree.js\";\n\nconst MAX_DEPTH = 40;\n\nconst StructElementType = {\n PAGE_CONTENT: \"PAGE_CONTENT\",\n STREAM_CONTENT: \"STREAM_CONTENT\",\n OBJECT: \"OBJECT\",\n ELEMENT: \"ELEMENT\",\n};\n\nclass StructTreeRoot {\n constructor(rootDict) {\n this.dict = rootDict;\n this.roleMap = new Map();\n }\n\n init() {\n this.readRoleMap();\n }\n\n readRoleMap() {\n const roleMapDict = this.dict.get(\"RoleMap\");\n if (!(roleMapDict instanceof Dict)) {\n return;\n }\n roleMapDict.forEach((key, value) => {\n if (!(value instanceof Name)) {\n return;\n }\n this.roleMap.set(key, value.name);\n });\n }\n}\n\n/**\n * Instead of loading the whole tree we load just the page's relevant structure\n * elements, which means we need a wrapper structure to represent the tree.\n */\nclass StructElementNode {\n constructor(tree, dict) {\n this.tree = tree;\n this.dict = dict;\n this.kids = [];\n this.parseKids();\n }\n\n get role() {\n const nameObj = this.dict.get(\"S\");\n const name = nameObj instanceof Name ? nameObj.name : \"\";\n const { root } = this.tree;\n if (root.roleMap.has(name)) {\n return root.roleMap.get(name);\n }\n return name;\n }\n\n parseKids() {\n let pageObjId = null;\n const objRef = this.dict.getRaw(\"Pg\");\n if (objRef instanceof Ref) {\n pageObjId = objRef.toString();\n }\n const kids = this.dict.get(\"K\");\n if (Array.isArray(kids)) {\n for (const kid of kids) {\n const element = this.parseKid(pageObjId, kid);\n if (element) {\n this.kids.push(element);\n }\n }\n } else {\n const element = this.parseKid(pageObjId, kids);\n if (element) {\n this.kids.push(element);\n }\n }\n }\n\n parseKid(pageObjId, kid) {\n // A direct link to content, the integer is an mcid.\n if (Number.isInteger(kid)) {\n if (this.tree.pageDict.objId !== pageObjId) {\n return null;\n }\n\n return new StructElement({\n type: StructElementType.PAGE_CONTENT,\n mcid: kid,\n pageObjId,\n });\n }\n\n // Find the dictionary for the kid.\n let kidDict = null;\n if (kid instanceof Ref) {\n kidDict = this.dict.xref.fetch(kid);\n } else if (kid instanceof Dict) {\n kidDict = kid;\n }\n if (!kidDict) {\n return null;\n }\n const pageRef = kidDict.getRaw(\"Pg\");\n if (pageRef instanceof Ref) {\n pageObjId = pageRef.toString();\n }\n\n const type =\n kidDict.get(\"Type\") instanceof Name ? kidDict.get(\"Type\").name : null;\n if (type === \"MCR\") {\n if (this.tree.pageDict.objId !== pageObjId) {\n return null;\n }\n return new StructElement({\n type: StructElementType.STREAM_CONTENT,\n refObjId:\n kidDict.getRaw(\"Stm\") instanceof Ref\n ? kidDict.getRaw(\"Stm\").toString()\n : null,\n pageObjId,\n mcid: kidDict.get(\"MCID\"),\n });\n }\n\n if (type === \"OBJR\") {\n if (this.tree.pageDict.objId !== pageObjId) {\n return null;\n }\n return new StructElement({\n type: StructElementType.OBJECT,\n refObjId:\n kidDict.getRaw(\"Obj\") instanceof Ref\n ? kidDict.getRaw(\"Obj\").toString()\n : null,\n pageObjId,\n });\n }\n\n return new StructElement({\n type: StructElementType.ELEMENT,\n dict: kidDict,\n });\n }\n}\n\nclass StructElement {\n constructor({\n type,\n dict = null,\n mcid = null,\n pageObjId = null,\n refObjId = null,\n }) {\n this.type = type;\n this.dict = dict;\n this.mcid = mcid;\n this.pageObjId = pageObjId;\n this.refObjId = refObjId;\n this.parentNode = null;\n }\n}\n\nclass StructTreePage {\n constructor(structTreeRoot, pageDict) {\n this.root = structTreeRoot;\n this.rootDict = structTreeRoot ? structTreeRoot.dict : null;\n this.pageDict = pageDict;\n this.nodes = [];\n }\n\n parse() {\n if (!this.root || !this.rootDict) {\n return;\n }\n\n const parentTree = this.rootDict.get(\"ParentTree\");\n if (!parentTree) {\n return;\n }\n const id = this.pageDict.get(\"StructParents\");\n if (!Number.isInteger(id)) {\n return;\n }\n const numberTree = new NumberTree(parentTree, this.rootDict.xref);\n const parentArray = numberTree.get(id);\n if (!Array.isArray(parentArray)) {\n return;\n }\n const map = new Map();\n for (const ref of parentArray) {\n if (ref instanceof Ref) {\n this.addNode(this.rootDict.xref.fetch(ref), map);\n }\n }\n }\n\n addNode(dict, map, level = 0) {\n if (level > MAX_DEPTH) {\n warn(\"StructTree MAX_DEPTH reached.\");\n return null;\n }\n\n if (map.has(dict)) {\n return map.get(dict);\n }\n\n const element = new StructElementNode(this, dict);\n map.set(dict, element);\n\n const parent = dict.get(\"P\");\n\n if (!parent || isName(parent.get(\"Type\"), \"StructTreeRoot\")) {\n if (!this.addTopLevelNode(dict, element)) {\n map.delete(dict);\n }\n return element;\n }\n\n const parentNode = this.addNode(parent, map, level + 1);\n if (!parentNode) {\n return element;\n }\n let save = false;\n for (const kid of parentNode.kids) {\n if (kid.type === StructElementType.ELEMENT && kid.dict === dict) {\n kid.parentNode = element;\n save = true;\n }\n }\n if (!save) {\n map.delete(dict);\n }\n return element;\n }\n\n addTopLevelNode(dict, element) {\n const obj = this.rootDict.get(\"K\");\n if (!obj) {\n return false;\n }\n\n if (obj instanceof Dict) {\n if (obj.objId !== dict.objId) {\n return false;\n }\n this.nodes[0] = element;\n return true;\n }\n\n if (!Array.isArray(obj)) {\n return true;\n }\n let save = false;\n for (let i = 0; i < obj.length; i++) {\n const kidRef = obj[i];\n if (kidRef && kidRef.toString() === dict.objId) {\n this.nodes[i] = element;\n save = true;\n }\n }\n return save;\n }\n\n /**\n * Convert the tree structure into a simplified object literal that can\n * be sent to the main thread.\n * @returns {Object}\n */\n get serializable() {\n function nodeToSerializable(node, parent, level = 0) {\n if (level > MAX_DEPTH) {\n warn(\"StructTree too deep to be fully serialized.\");\n return;\n }\n const obj = Object.create(null);\n obj.role = node.role;\n obj.children = [];\n parent.children.push(obj);\n const alt = node.dict.get(\"Alt\");\n if (typeof alt === \"string\") {\n obj.alt = stringToPDFString(alt);\n }\n const lang = node.dict.get(\"Lang\");\n if (typeof lang === \"string\") {\n obj.lang = stringToPDFString(lang);\n }\n\n for (const kid of node.kids) {\n const kidElement =\n kid.type === StructElementType.ELEMENT ? kid.parentNode : null;\n if (kidElement) {\n nodeToSerializable(kidElement, obj, level + 1);\n continue;\n } else if (\n kid.type === StructElementType.PAGE_CONTENT ||\n kid.type === StructElementType.STREAM_CONTENT\n ) {\n obj.children.push({\n type: \"content\",\n id: `page${kid.pageObjId}_mcid${kid.mcid}`,\n });\n } else if (kid.type === StructElementType.OBJECT) {\n obj.children.push({\n type: \"object\",\n id: kid.refObjId,\n });\n }\n }\n }\n\n const root = Object.create(null);\n root.children = [];\n root.role = \"Root\";\n for (const child of this.nodes) {\n if (!child) {\n continue;\n }\n nodeToSerializable(child, root);\n }\n return root;\n }\n}\n\nexport { StructTreePage, StructTreeRoot };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Dict, Ref, RefSet } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { MissingDataException } from \"./core_utils.js\";\nimport { warn } from \"../shared/util.js\";\n\nfunction mayHaveChildren(value) {\n return (\n value instanceof Ref ||\n value instanceof Dict ||\n value instanceof BaseStream ||\n Array.isArray(value)\n );\n}\n\nfunction addChildren(node, nodesToVisit) {\n if (node instanceof Dict) {\n node = node.getRawValues();\n } else if (node instanceof BaseStream) {\n node = node.dict.getRawValues();\n } else if (!Array.isArray(node)) {\n return;\n }\n for (const rawValue of node) {\n if (mayHaveChildren(rawValue)) {\n nodesToVisit.push(rawValue);\n }\n }\n}\n\n/**\n * A helper for loading missing data in `Dict` graphs. It traverses the graph\n * depth first and queues up any objects that have missing data. Once it has\n * has traversed as many objects that are available it attempts to bundle the\n * missing data requests and then resume from the nodes that weren't ready.\n *\n * NOTE: It provides protection from circular references by keeping track of\n * loaded references. However, you must be careful not to load any graphs\n * that have references to the catalog or other pages since that will cause the\n * entire PDF document object graph to be traversed.\n */\nclass ObjectLoader {\n constructor(dict, keys, xref) {\n this.dict = dict;\n this.keys = keys;\n this.xref = xref;\n this.refSet = null;\n }\n\n async load() {\n // Don't walk the graph if all the data is already loaded.\n if (this.xref.stream.isDataLoaded) {\n return undefined;\n }\n\n const { keys, dict } = this;\n this.refSet = new RefSet();\n // Setup the initial nodes to visit.\n const nodesToVisit = [];\n for (let i = 0, ii = keys.length; i < ii; i++) {\n const rawValue = dict.getRaw(keys[i]);\n // Skip nodes that are guaranteed to be empty.\n if (rawValue !== undefined) {\n nodesToVisit.push(rawValue);\n }\n }\n return this._walk(nodesToVisit);\n }\n\n async _walk(nodesToVisit) {\n const nodesToRevisit = [];\n const pendingRequests = [];\n // DFS walk of the object graph.\n while (nodesToVisit.length) {\n let currentNode = nodesToVisit.pop();\n\n // Only references or chunked streams can cause missing data exceptions.\n if (currentNode instanceof Ref) {\n // Skip nodes that have already been visited.\n if (this.refSet.has(currentNode)) {\n continue;\n }\n try {\n this.refSet.put(currentNode);\n currentNode = this.xref.fetch(currentNode);\n } catch (ex) {\n if (!(ex instanceof MissingDataException)) {\n warn(`ObjectLoader._walk - requesting all data: \"${ex}\".`);\n this.refSet = null;\n\n const { manager } = this.xref.stream;\n return manager.requestAllChunks();\n }\n nodesToRevisit.push(currentNode);\n pendingRequests.push({ begin: ex.begin, end: ex.end });\n }\n }\n if (currentNode instanceof BaseStream) {\n const baseStreams = currentNode.getBaseStreams();\n if (baseStreams) {\n let foundMissingData = false;\n for (const stream of baseStreams) {\n if (stream.isDataLoaded) {\n continue;\n }\n foundMissingData = true;\n pendingRequests.push({ begin: stream.start, end: stream.end });\n }\n if (foundMissingData) {\n nodesToRevisit.push(currentNode);\n }\n }\n }\n\n addChildren(currentNode, nodesToVisit);\n }\n\n if (pendingRequests.length) {\n await this.xref.stream.manager.requestRanges(pendingRequests);\n\n for (const node of nodesToRevisit) {\n // Remove any reference nodes from the current `RefSet` so they\n // aren't skipped when we revist them.\n if (node instanceof Ref) {\n this.refSet.remove(node);\n }\n }\n return this._walk(nodesToRevisit);\n }\n // Everything is loaded.\n this.refSet = null;\n return undefined;\n }\n}\n\nexport { ObjectLoader };\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bytesToString, escapeString, warn } from \"../shared/util.js\";\nimport { Dict, Name, Ref } from \"./primitives.js\";\nimport { escapePDFName, parseXFAPath } from \"./core_utils.js\";\nimport { SimpleDOMNode, SimpleXMLParser } from \"./xml_parser.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { calculateMD5 } from \"./crypto.js\";\n\nfunction writeDict(dict, buffer, transform) {\n buffer.push(\"<<\");\n for (const key of dict.getKeys()) {\n buffer.push(` /${escapePDFName(key)} `);\n writeValue(dict.getRaw(key), buffer, transform);\n }\n buffer.push(\">>\");\n}\n\nfunction writeStream(stream, buffer, transform) {\n writeDict(stream.dict, buffer, transform);\n buffer.push(\" stream\\n\");\n let string = stream.getString();\n if (transform !== null) {\n string = transform.encryptString(string);\n }\n buffer.push(string, \"\\nendstream\\n\");\n}\n\nfunction writeArray(array, buffer, transform) {\n buffer.push(\"[\");\n let first = true;\n for (const val of array) {\n if (!first) {\n buffer.push(\" \");\n } else {\n first = false;\n }\n writeValue(val, buffer, transform);\n }\n buffer.push(\"]\");\n}\n\nfunction numberToString(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n\n const roundedValue = Math.round(value * 100);\n if (roundedValue % 100 === 0) {\n return (roundedValue / 100).toString();\n }\n\n if (roundedValue % 10 === 0) {\n return value.toFixed(1);\n }\n\n return value.toFixed(2);\n}\n\nfunction writeValue(value, buffer, transform) {\n if (value instanceof Name) {\n buffer.push(`/${escapePDFName(value.name)}`);\n } else if (value instanceof Ref) {\n buffer.push(`${value.num} ${value.gen} R`);\n } else if (Array.isArray(value)) {\n writeArray(value, buffer, transform);\n } else if (typeof value === \"string\") {\n if (transform !== null) {\n value = transform.encryptString(value);\n }\n buffer.push(`(${escapeString(value)})`);\n } else if (typeof value === \"number\") {\n buffer.push(numberToString(value));\n } else if (typeof value === \"boolean\") {\n buffer.push(value.toString());\n } else if (value instanceof Dict) {\n writeDict(value, buffer, transform);\n } else if (value instanceof BaseStream) {\n writeStream(value, buffer, transform);\n } else if (value === null) {\n buffer.push(\"null\");\n } else {\n warn(`Unhandled value in writer: ${typeof value}, please file a bug.`);\n }\n}\n\nfunction writeInt(number, size, offset, buffer) {\n for (let i = size + offset - 1; i > offset - 1; i--) {\n buffer[i] = number & 0xff;\n number >>= 8;\n }\n return offset + size;\n}\n\nfunction writeString(string, offset, buffer) {\n for (let i = 0, len = string.length; i < len; i++) {\n buffer[offset + i] = string.charCodeAt(i) & 0xff;\n }\n}\n\nfunction computeMD5(filesize, xrefInfo) {\n const time = Math.floor(Date.now() / 1000);\n const filename = xrefInfo.filename || \"\";\n const md5Buffer = [time.toString(), filename, filesize.toString()];\n let md5BufferLen = md5Buffer.reduce((a, str) => a + str.length, 0);\n for (const value of Object.values(xrefInfo.info)) {\n md5Buffer.push(value);\n md5BufferLen += value.length;\n }\n\n const array = new Uint8Array(md5BufferLen);\n let offset = 0;\n for (const str of md5Buffer) {\n writeString(str, offset, array);\n offset += str.length;\n }\n return bytesToString(calculateMD5(array));\n}\n\nfunction writeXFADataForAcroform(str, newRefs) {\n const xml = new SimpleXMLParser({ hasAttributes: true }).parseFromString(str);\n\n for (const { xfa } of newRefs) {\n if (!xfa) {\n continue;\n }\n const { path, value } = xfa;\n if (!path) {\n continue;\n }\n const node = xml.documentElement.searchNode(parseXFAPath(path), 0);\n if (node) {\n if (Array.isArray(value)) {\n node.childNodes = value.map(val => new SimpleDOMNode(\"value\", val));\n } else {\n node.childNodes = [new SimpleDOMNode(\"#text\", value)];\n }\n } else {\n warn(`Node not found for path: ${path}`);\n }\n }\n const buffer = [];\n xml.documentElement.dump(buffer);\n return buffer.join(\"\");\n}\n\nfunction updateXFA({\n xfaData,\n xfaDatasetsRef,\n hasXfaDatasetsEntry,\n acroFormRef,\n acroForm,\n newRefs,\n xref,\n xrefInfo,\n}) {\n if (xref === null) {\n return;\n }\n\n if (!hasXfaDatasetsEntry) {\n if (!acroFormRef) {\n warn(\"XFA - Cannot save it\");\n return;\n }\n\n // We've a XFA array which doesn't contain a datasets entry.\n // So we'll update the AcroForm dictionary to have an XFA containing\n // the datasets.\n const oldXfa = acroForm.get(\"XFA\");\n const newXfa = oldXfa.slice();\n newXfa.splice(2, 0, \"datasets\");\n newXfa.splice(3, 0, xfaDatasetsRef);\n\n acroForm.set(\"XFA\", newXfa);\n\n const encrypt = xref.encrypt;\n let transform = null;\n if (encrypt) {\n transform = encrypt.createCipherTransform(\n acroFormRef.num,\n acroFormRef.gen\n );\n }\n\n const buffer = [`${acroFormRef.num} ${acroFormRef.gen} obj\\n`];\n writeDict(acroForm, buffer, transform);\n buffer.push(\"\\n\");\n\n acroForm.set(\"XFA\", oldXfa);\n\n newRefs.push({ ref: acroFormRef, data: buffer.join(\"\") });\n }\n\n if (xfaData === null) {\n const datasets = xref.fetchIfRef(xfaDatasetsRef);\n xfaData = writeXFADataForAcroform(datasets.getString(), newRefs);\n }\n\n const encrypt = xref.encrypt;\n if (encrypt) {\n const transform = encrypt.createCipherTransform(\n xfaDatasetsRef.num,\n xfaDatasetsRef.gen\n );\n xfaData = transform.encryptString(xfaData);\n }\n const data =\n `${xfaDatasetsRef.num} ${xfaDatasetsRef.gen} obj\\n` +\n `<< /Type /EmbeddedFile /Length ${xfaData.length}>>\\nstream\\n` +\n xfaData +\n \"\\nendstream\\nendobj\\n\";\n\n newRefs.push({ ref: xfaDatasetsRef, data });\n}\n\nfunction incrementalUpdate({\n originalData,\n xrefInfo,\n newRefs,\n xref = null,\n hasXfa = false,\n xfaDatasetsRef = null,\n hasXfaDatasetsEntry = false,\n acroFormRef = null,\n acroForm = null,\n xfaData = null,\n}) {\n if (hasXfa) {\n updateXFA({\n xfaData,\n xfaDatasetsRef,\n hasXfaDatasetsEntry,\n acroFormRef,\n acroForm,\n newRefs,\n xref,\n xrefInfo,\n });\n }\n\n const newXref = new Dict(null);\n const refForXrefTable = xrefInfo.newRef;\n\n let buffer, baseOffset;\n const lastByte = originalData[originalData.length - 1];\n if (lastByte === /* \\n */ 0x0a || lastByte === /* \\r */ 0x0d) {\n buffer = [];\n baseOffset = originalData.length;\n } else {\n // Avoid to concatenate %%EOF with an object definition\n buffer = [\"\\n\"];\n baseOffset = originalData.length + 1;\n }\n\n newXref.set(\"Size\", refForXrefTable.num + 1);\n newXref.set(\"Prev\", xrefInfo.startXRef);\n newXref.set(\"Type\", Name.get(\"XRef\"));\n\n if (xrefInfo.rootRef !== null) {\n newXref.set(\"Root\", xrefInfo.rootRef);\n }\n if (xrefInfo.infoRef !== null) {\n newXref.set(\"Info\", xrefInfo.infoRef);\n }\n if (xrefInfo.encryptRef !== null) {\n newXref.set(\"Encrypt\", xrefInfo.encryptRef);\n }\n\n // Add a ref for the new xref and sort them\n newRefs.push({ ref: refForXrefTable, data: \"\" });\n newRefs = newRefs.sort((a, b) => {\n // compare the refs\n return a.ref.num - b.ref.num;\n });\n\n const xrefTableData = [[0, 1, 0xffff]];\n const indexes = [0, 1];\n let maxOffset = 0;\n for (const { ref, data } of newRefs) {\n maxOffset = Math.max(maxOffset, baseOffset);\n xrefTableData.push([1, baseOffset, Math.min(ref.gen, 0xffff)]);\n baseOffset += data.length;\n indexes.push(ref.num, 1);\n buffer.push(data);\n }\n\n newXref.set(\"Index\", indexes);\n\n if (Array.isArray(xrefInfo.fileIds) && xrefInfo.fileIds.length > 0) {\n const md5 = computeMD5(baseOffset, xrefInfo);\n newXref.set(\"ID\", [xrefInfo.fileIds[0], md5]);\n }\n\n const offsetSize = Math.ceil(Math.log2(maxOffset) / 8);\n const sizes = [1, offsetSize, 2];\n const structSize = sizes[0] + sizes[1] + sizes[2];\n const tableLength = structSize * xrefTableData.length;\n newXref.set(\"W\", sizes);\n newXref.set(\"Length\", tableLength);\n\n buffer.push(`${refForXrefTable.num} ${refForXrefTable.gen} obj\\n`);\n writeDict(newXref, buffer, null);\n buffer.push(\" stream\\n\");\n\n const bufferLen = buffer.reduce((a, str) => a + str.length, 0);\n const footer = `\\nendstream\\nendobj\\nstartxref\\n${baseOffset}\\n%%EOF\\n`;\n const array = new Uint8Array(\n originalData.length + bufferLen + tableLength + footer.length\n );\n\n // Original data\n array.set(originalData);\n let offset = originalData.length;\n\n // New data\n for (const str of buffer) {\n writeString(str, offset, array);\n offset += str.length;\n }\n\n // New xref table\n for (const [type, objOffset, gen] of xrefTableData) {\n offset = writeInt(type, sizes[0], offset, array);\n offset = writeInt(objOffset, sizes[1], offset, array);\n offset = writeInt(gen, sizes[2], offset, array);\n }\n\n // Add the footer\n writeString(footer, offset, array);\n\n return array;\n}\n\nexport { incrementalUpdate, writeDict };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n bytesToString,\n FormatError,\n isArrayEqual,\n PasswordException,\n PasswordResponses,\n stringToBytes,\n unreachable,\n utf8StringToString,\n warn,\n} from \"../shared/util.js\";\nimport { Dict, isName, Name } from \"./primitives.js\";\nimport { DecryptStream } from \"./decrypt_stream.js\";\n\nclass ARCFourCipher {\n constructor(key) {\n this.a = 0;\n this.b = 0;\n const s = new Uint8Array(256);\n const keyLength = key.length;\n\n for (let i = 0; i < 256; ++i) {\n s[i] = i;\n }\n for (let i = 0, j = 0; i < 256; ++i) {\n const tmp = s[i];\n j = (j + tmp + key[i % keyLength]) & 0xff;\n s[i] = s[j];\n s[j] = tmp;\n }\n this.s = s;\n }\n\n encryptBlock(data) {\n let a = this.a,\n b = this.b;\n const s = this.s;\n const n = data.length;\n const output = new Uint8Array(n);\n for (let i = 0; i < n; ++i) {\n a = (a + 1) & 0xff;\n const tmp = s[a];\n b = (b + tmp) & 0xff;\n const tmp2 = s[b];\n s[a] = tmp2;\n s[b] = tmp;\n output[i] = data[i] ^ s[(tmp + tmp2) & 0xff];\n }\n this.a = a;\n this.b = b;\n return output;\n }\n\n decryptBlock(data) {\n return this.encryptBlock(data);\n }\n\n encrypt(data) {\n return this.encryptBlock(data);\n }\n}\n\nconst calculateMD5 = (function calculateMD5Closure() {\n const r = new Uint8Array([\n 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5,\n 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11,\n 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10,\n 15, 21,\n ]);\n\n const k = new Int32Array([\n -680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426,\n -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162,\n 1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632,\n 643717713, -373897302, -701558691, 38016083, -660478335, -405537848,\n 568446438, -1019803690, -187363961, 1163531501, -1444681467, -51403784,\n 1735328473, -1926607734, -378558, -2022574463, 1839030562, -35309556,\n -1530992060, 1272893353, -155497632, -1094730640, 681279174, -358537222,\n -722521979, 76029189, -640364487, -421815835, 530742520, -995338651,\n -198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606,\n -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649,\n -145523070, -1120210379, 718787259, -343485551,\n ]);\n\n function hash(data, offset, length) {\n let h0 = 1732584193,\n h1 = -271733879,\n h2 = -1732584194,\n h3 = 271733878;\n // pre-processing\n const paddedLength = (length + 72) & ~63; // data + 9 extra bytes\n const padded = new Uint8Array(paddedLength);\n let i, j;\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n padded[i++] = 0x80;\n const n = paddedLength - 8;\n while (i < n) {\n padded[i++] = 0;\n }\n padded[i++] = (length << 3) & 0xff;\n padded[i++] = (length >> 5) & 0xff;\n padded[i++] = (length >> 13) & 0xff;\n padded[i++] = (length >> 21) & 0xff;\n padded[i++] = (length >>> 29) & 0xff;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n const w = new Int32Array(16);\n for (i = 0; i < paddedLength; ) {\n for (j = 0; j < 16; ++j, i += 4) {\n w[j] =\n padded[i] |\n (padded[i + 1] << 8) |\n (padded[i + 2] << 16) |\n (padded[i + 3] << 24);\n }\n let a = h0,\n b = h1,\n c = h2,\n d = h3,\n f,\n g;\n for (j = 0; j < 64; ++j) {\n if (j < 16) {\n f = (b & c) | (~b & d);\n g = j;\n } else if (j < 32) {\n f = (d & b) | (~d & c);\n g = (5 * j + 1) & 15;\n } else if (j < 48) {\n f = b ^ c ^ d;\n g = (3 * j + 5) & 15;\n } else {\n f = c ^ (b | ~d);\n g = (7 * j) & 15;\n }\n const tmp = d,\n rotateArg = (a + f + k[j] + w[g]) | 0,\n rotate = r[j];\n d = c;\n c = b;\n b = (b + ((rotateArg << rotate) | (rotateArg >>> (32 - rotate)))) | 0;\n a = tmp;\n }\n h0 = (h0 + a) | 0;\n h1 = (h1 + b) | 0;\n h2 = (h2 + c) | 0;\n h3 = (h3 + d) | 0;\n }\n // prettier-ignore\n return new Uint8Array([\n h0 & 0xFF, (h0 >> 8) & 0xFF, (h0 >> 16) & 0xFF, (h0 >>> 24) & 0xFF,\n h1 & 0xFF, (h1 >> 8) & 0xFF, (h1 >> 16) & 0xFF, (h1 >>> 24) & 0xFF,\n h2 & 0xFF, (h2 >> 8) & 0xFF, (h2 >> 16) & 0xFF, (h2 >>> 24) & 0xFF,\n h3 & 0xFF, (h3 >> 8) & 0xFF, (h3 >> 16) & 0xFF, (h3 >>> 24) & 0xFF\n ]);\n }\n\n return hash;\n})();\n\nclass Word64 {\n constructor(highInteger, lowInteger) {\n this.high = highInteger | 0;\n this.low = lowInteger | 0;\n }\n\n and(word) {\n this.high &= word.high;\n this.low &= word.low;\n }\n\n xor(word) {\n this.high ^= word.high;\n this.low ^= word.low;\n }\n\n or(word) {\n this.high |= word.high;\n this.low |= word.low;\n }\n\n shiftRight(places) {\n if (places >= 32) {\n this.low = (this.high >>> (places - 32)) | 0;\n this.high = 0;\n } else {\n this.low = (this.low >>> places) | (this.high << (32 - places));\n this.high = (this.high >>> places) | 0;\n }\n }\n\n shiftLeft(places) {\n if (places >= 32) {\n this.high = this.low << (places - 32);\n this.low = 0;\n } else {\n this.high = (this.high << places) | (this.low >>> (32 - places));\n this.low <<= places;\n }\n }\n\n rotateRight(places) {\n let low, high;\n if (places & 32) {\n high = this.low;\n low = this.high;\n } else {\n low = this.low;\n high = this.high;\n }\n places &= 31;\n this.low = (low >>> places) | (high << (32 - places));\n this.high = (high >>> places) | (low << (32 - places));\n }\n\n not() {\n this.high = ~this.high;\n this.low = ~this.low;\n }\n\n add(word) {\n const lowAdd = (this.low >>> 0) + (word.low >>> 0);\n let highAdd = (this.high >>> 0) + (word.high >>> 0);\n if (lowAdd > 0xffffffff) {\n highAdd += 1;\n }\n this.low = lowAdd | 0;\n this.high = highAdd | 0;\n }\n\n copyTo(bytes, offset) {\n bytes[offset] = (this.high >>> 24) & 0xff;\n bytes[offset + 1] = (this.high >> 16) & 0xff;\n bytes[offset + 2] = (this.high >> 8) & 0xff;\n bytes[offset + 3] = this.high & 0xff;\n bytes[offset + 4] = (this.low >>> 24) & 0xff;\n bytes[offset + 5] = (this.low >> 16) & 0xff;\n bytes[offset + 6] = (this.low >> 8) & 0xff;\n bytes[offset + 7] = this.low & 0xff;\n }\n\n assign(word) {\n this.high = word.high;\n this.low = word.low;\n }\n}\n\nconst calculateSHA256 = (function calculateSHA256Closure() {\n function rotr(x, n) {\n return (x >>> n) | (x << (32 - n));\n }\n\n function ch(x, y, z) {\n return (x & y) ^ (~x & z);\n }\n\n function maj(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n }\n\n function sigma(x) {\n return rotr(x, 2) ^ rotr(x, 13) ^ rotr(x, 22);\n }\n\n function sigmaPrime(x) {\n return rotr(x, 6) ^ rotr(x, 11) ^ rotr(x, 25);\n }\n\n function littleSigma(x) {\n return rotr(x, 7) ^ rotr(x, 18) ^ (x >>> 3);\n }\n\n function littleSigmaPrime(x) {\n return rotr(x, 17) ^ rotr(x, 19) ^ (x >>> 10);\n }\n\n const k = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1,\n 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786,\n 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b,\n 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a,\n 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,\n ];\n\n function hash(data, offset, length) {\n // initial hash values\n let h0 = 0x6a09e667,\n h1 = 0xbb67ae85,\n h2 = 0x3c6ef372,\n h3 = 0xa54ff53a,\n h4 = 0x510e527f,\n h5 = 0x9b05688c,\n h6 = 0x1f83d9ab,\n h7 = 0x5be0cd19;\n // pre-processing\n const paddedLength = Math.ceil((length + 9) / 64) * 64;\n const padded = new Uint8Array(paddedLength);\n let i, j;\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n padded[i++] = 0x80;\n const n = paddedLength - 8;\n while (i < n) {\n padded[i++] = 0;\n }\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = (length >>> 29) & 0xff;\n padded[i++] = (length >> 21) & 0xff;\n padded[i++] = (length >> 13) & 0xff;\n padded[i++] = (length >> 5) & 0xff;\n padded[i++] = (length << 3) & 0xff;\n const w = new Uint32Array(64);\n // for each 512 bit block\n for (i = 0; i < paddedLength; ) {\n for (j = 0; j < 16; ++j) {\n w[j] =\n (padded[i] << 24) |\n (padded[i + 1] << 16) |\n (padded[i + 2] << 8) |\n padded[i + 3];\n i += 4;\n }\n\n for (j = 16; j < 64; ++j) {\n w[j] =\n (littleSigmaPrime(w[j - 2]) +\n w[j - 7] +\n littleSigma(w[j - 15]) +\n w[j - 16]) |\n 0;\n }\n let a = h0,\n b = h1,\n c = h2,\n d = h3,\n e = h4,\n f = h5,\n g = h6,\n h = h7,\n t1,\n t2;\n for (j = 0; j < 64; ++j) {\n t1 = h + sigmaPrime(e) + ch(e, f, g) + k[j] + w[j];\n t2 = sigma(a) + maj(a, b, c);\n h = g;\n g = f;\n f = e;\n e = (d + t1) | 0;\n d = c;\n c = b;\n b = a;\n a = (t1 + t2) | 0;\n }\n h0 = (h0 + a) | 0;\n h1 = (h1 + b) | 0;\n h2 = (h2 + c) | 0;\n h3 = (h3 + d) | 0;\n h4 = (h4 + e) | 0;\n h5 = (h5 + f) | 0;\n h6 = (h6 + g) | 0;\n h7 = (h7 + h) | 0;\n }\n // prettier-ignore\n return new Uint8Array([\n (h0 >> 24) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 8) & 0xFF, (h0) & 0xFF,\n (h1 >> 24) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 8) & 0xFF, (h1) & 0xFF,\n (h2 >> 24) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 8) & 0xFF, (h2) & 0xFF,\n (h3 >> 24) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 8) & 0xFF, (h3) & 0xFF,\n (h4 >> 24) & 0xFF, (h4 >> 16) & 0xFF, (h4 >> 8) & 0xFF, (h4) & 0xFF,\n (h5 >> 24) & 0xFF, (h5 >> 16) & 0xFF, (h5 >> 8) & 0xFF, (h5) & 0xFF,\n (h6 >> 24) & 0xFF, (h6 >> 16) & 0xFF, (h6 >> 8) & 0xFF, (h6) & 0xFF,\n (h7 >> 24) & 0xFF, (h7 >> 16) & 0xFF, (h7 >> 8) & 0xFF, (h7) & 0xFF\n ]);\n }\n\n return hash;\n})();\n\nconst calculateSHA512 = (function calculateSHA512Closure() {\n function ch(result, x, y, z, tmp) {\n result.assign(x);\n result.and(y);\n tmp.assign(x);\n tmp.not();\n tmp.and(z);\n result.xor(tmp);\n }\n\n function maj(result, x, y, z, tmp) {\n result.assign(x);\n result.and(y);\n tmp.assign(x);\n tmp.and(z);\n result.xor(tmp);\n tmp.assign(y);\n tmp.and(z);\n result.xor(tmp);\n }\n\n function sigma(result, x, tmp) {\n result.assign(x);\n result.rotateRight(28);\n tmp.assign(x);\n tmp.rotateRight(34);\n result.xor(tmp);\n tmp.assign(x);\n tmp.rotateRight(39);\n result.xor(tmp);\n }\n\n function sigmaPrime(result, x, tmp) {\n result.assign(x);\n result.rotateRight(14);\n tmp.assign(x);\n tmp.rotateRight(18);\n result.xor(tmp);\n tmp.assign(x);\n tmp.rotateRight(41);\n result.xor(tmp);\n }\n\n function littleSigma(result, x, tmp) {\n result.assign(x);\n result.rotateRight(1);\n tmp.assign(x);\n tmp.rotateRight(8);\n result.xor(tmp);\n tmp.assign(x);\n tmp.shiftRight(7);\n result.xor(tmp);\n }\n\n function littleSigmaPrime(result, x, tmp) {\n result.assign(x);\n result.rotateRight(19);\n tmp.assign(x);\n tmp.rotateRight(61);\n result.xor(tmp);\n tmp.assign(x);\n tmp.shiftRight(6);\n result.xor(tmp);\n }\n\n // prettier-ignore\n const k = [\n new Word64(0x428a2f98, 0xd728ae22), new Word64(0x71374491, 0x23ef65cd),\n new Word64(0xb5c0fbcf, 0xec4d3b2f), new Word64(0xe9b5dba5, 0x8189dbbc),\n new Word64(0x3956c25b, 0xf348b538), new Word64(0x59f111f1, 0xb605d019),\n new Word64(0x923f82a4, 0xaf194f9b), new Word64(0xab1c5ed5, 0xda6d8118),\n new Word64(0xd807aa98, 0xa3030242), new Word64(0x12835b01, 0x45706fbe),\n new Word64(0x243185be, 0x4ee4b28c), new Word64(0x550c7dc3, 0xd5ffb4e2),\n new Word64(0x72be5d74, 0xf27b896f), new Word64(0x80deb1fe, 0x3b1696b1),\n new Word64(0x9bdc06a7, 0x25c71235), new Word64(0xc19bf174, 0xcf692694),\n new Word64(0xe49b69c1, 0x9ef14ad2), new Word64(0xefbe4786, 0x384f25e3),\n new Word64(0x0fc19dc6, 0x8b8cd5b5), new Word64(0x240ca1cc, 0x77ac9c65),\n new Word64(0x2de92c6f, 0x592b0275), new Word64(0x4a7484aa, 0x6ea6e483),\n new Word64(0x5cb0a9dc, 0xbd41fbd4), new Word64(0x76f988da, 0x831153b5),\n new Word64(0x983e5152, 0xee66dfab), new Word64(0xa831c66d, 0x2db43210),\n new Word64(0xb00327c8, 0x98fb213f), new Word64(0xbf597fc7, 0xbeef0ee4),\n new Word64(0xc6e00bf3, 0x3da88fc2), new Word64(0xd5a79147, 0x930aa725),\n new Word64(0x06ca6351, 0xe003826f), new Word64(0x14292967, 0x0a0e6e70),\n new Word64(0x27b70a85, 0x46d22ffc), new Word64(0x2e1b2138, 0x5c26c926),\n new Word64(0x4d2c6dfc, 0x5ac42aed), new Word64(0x53380d13, 0x9d95b3df),\n new Word64(0x650a7354, 0x8baf63de), new Word64(0x766a0abb, 0x3c77b2a8),\n new Word64(0x81c2c92e, 0x47edaee6), new Word64(0x92722c85, 0x1482353b),\n new Word64(0xa2bfe8a1, 0x4cf10364), new Word64(0xa81a664b, 0xbc423001),\n new Word64(0xc24b8b70, 0xd0f89791), new Word64(0xc76c51a3, 0x0654be30),\n new Word64(0xd192e819, 0xd6ef5218), new Word64(0xd6990624, 0x5565a910),\n new Word64(0xf40e3585, 0x5771202a), new Word64(0x106aa070, 0x32bbd1b8),\n new Word64(0x19a4c116, 0xb8d2d0c8), new Word64(0x1e376c08, 0x5141ab53),\n new Word64(0x2748774c, 0xdf8eeb99), new Word64(0x34b0bcb5, 0xe19b48a8),\n new Word64(0x391c0cb3, 0xc5c95a63), new Word64(0x4ed8aa4a, 0xe3418acb),\n new Word64(0x5b9cca4f, 0x7763e373), new Word64(0x682e6ff3, 0xd6b2b8a3),\n new Word64(0x748f82ee, 0x5defb2fc), new Word64(0x78a5636f, 0x43172f60),\n new Word64(0x84c87814, 0xa1f0ab72), new Word64(0x8cc70208, 0x1a6439ec),\n new Word64(0x90befffa, 0x23631e28), new Word64(0xa4506ceb, 0xde82bde9),\n new Word64(0xbef9a3f7, 0xb2c67915), new Word64(0xc67178f2, 0xe372532b),\n new Word64(0xca273ece, 0xea26619c), new Word64(0xd186b8c7, 0x21c0c207),\n new Word64(0xeada7dd6, 0xcde0eb1e), new Word64(0xf57d4f7f, 0xee6ed178),\n new Word64(0x06f067aa, 0x72176fba), new Word64(0x0a637dc5, 0xa2c898a6),\n new Word64(0x113f9804, 0xbef90dae), new Word64(0x1b710b35, 0x131c471b),\n new Word64(0x28db77f5, 0x23047d84), new Word64(0x32caab7b, 0x40c72493),\n new Word64(0x3c9ebe0a, 0x15c9bebc), new Word64(0x431d67c4, 0x9c100d4c),\n new Word64(0x4cc5d4be, 0xcb3e42b6), new Word64(0x597f299c, 0xfc657e2a),\n new Word64(0x5fcb6fab, 0x3ad6faec), new Word64(0x6c44198c, 0x4a475817)];\n\n function hash(data, offset, length, mode384 = false) {\n // initial hash values\n let h0, h1, h2, h3, h4, h5, h6, h7;\n if (!mode384) {\n h0 = new Word64(0x6a09e667, 0xf3bcc908);\n h1 = new Word64(0xbb67ae85, 0x84caa73b);\n h2 = new Word64(0x3c6ef372, 0xfe94f82b);\n h3 = new Word64(0xa54ff53a, 0x5f1d36f1);\n h4 = new Word64(0x510e527f, 0xade682d1);\n h5 = new Word64(0x9b05688c, 0x2b3e6c1f);\n h6 = new Word64(0x1f83d9ab, 0xfb41bd6b);\n h7 = new Word64(0x5be0cd19, 0x137e2179);\n } else {\n // SHA384 is exactly the same\n // except with different starting values and a trimmed result\n h0 = new Word64(0xcbbb9d5d, 0xc1059ed8);\n h1 = new Word64(0x629a292a, 0x367cd507);\n h2 = new Word64(0x9159015a, 0x3070dd17);\n h3 = new Word64(0x152fecd8, 0xf70e5939);\n h4 = new Word64(0x67332667, 0xffc00b31);\n h5 = new Word64(0x8eb44a87, 0x68581511);\n h6 = new Word64(0xdb0c2e0d, 0x64f98fa7);\n h7 = new Word64(0x47b5481d, 0xbefa4fa4);\n }\n\n // pre-processing\n const paddedLength = Math.ceil((length + 17) / 128) * 128;\n const padded = new Uint8Array(paddedLength);\n let i, j;\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n padded[i++] = 0x80;\n const n = paddedLength - 16;\n while (i < n) {\n padded[i++] = 0;\n }\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = (length >>> 29) & 0xff;\n padded[i++] = (length >> 21) & 0xff;\n padded[i++] = (length >> 13) & 0xff;\n padded[i++] = (length >> 5) & 0xff;\n padded[i++] = (length << 3) & 0xff;\n\n const w = new Array(80);\n for (i = 0; i < 80; i++) {\n w[i] = new Word64(0, 0);\n }\n let a = new Word64(0, 0),\n b = new Word64(0, 0),\n c = new Word64(0, 0);\n let d = new Word64(0, 0),\n e = new Word64(0, 0),\n f = new Word64(0, 0);\n let g = new Word64(0, 0),\n h = new Word64(0, 0);\n const t1 = new Word64(0, 0),\n t2 = new Word64(0, 0);\n const tmp1 = new Word64(0, 0),\n tmp2 = new Word64(0, 0);\n let tmp3;\n\n // for each 1024 bit block\n for (i = 0; i < paddedLength; ) {\n for (j = 0; j < 16; ++j) {\n w[j].high =\n (padded[i] << 24) |\n (padded[i + 1] << 16) |\n (padded[i + 2] << 8) |\n padded[i + 3];\n w[j].low =\n (padded[i + 4] << 24) |\n (padded[i + 5] << 16) |\n (padded[i + 6] << 8) |\n padded[i + 7];\n i += 8;\n }\n for (j = 16; j < 80; ++j) {\n tmp3 = w[j];\n littleSigmaPrime(tmp3, w[j - 2], tmp2);\n tmp3.add(w[j - 7]);\n littleSigma(tmp1, w[j - 15], tmp2);\n tmp3.add(tmp1);\n tmp3.add(w[j - 16]);\n }\n\n a.assign(h0);\n b.assign(h1);\n c.assign(h2);\n d.assign(h3);\n e.assign(h4);\n f.assign(h5);\n g.assign(h6);\n h.assign(h7);\n for (j = 0; j < 80; ++j) {\n t1.assign(h);\n sigmaPrime(tmp1, e, tmp2);\n t1.add(tmp1);\n ch(tmp1, e, f, g, tmp2);\n t1.add(tmp1);\n t1.add(k[j]);\n t1.add(w[j]);\n\n sigma(t2, a, tmp2);\n maj(tmp1, a, b, c, tmp2);\n t2.add(tmp1);\n\n tmp3 = h;\n h = g;\n g = f;\n f = e;\n d.add(t1);\n e = d;\n d = c;\n c = b;\n b = a;\n tmp3.assign(t1);\n tmp3.add(t2);\n a = tmp3;\n }\n h0.add(a);\n h1.add(b);\n h2.add(c);\n h3.add(d);\n h4.add(e);\n h5.add(f);\n h6.add(g);\n h7.add(h);\n }\n\n let result;\n if (!mode384) {\n result = new Uint8Array(64);\n h0.copyTo(result, 0);\n h1.copyTo(result, 8);\n h2.copyTo(result, 16);\n h3.copyTo(result, 24);\n h4.copyTo(result, 32);\n h5.copyTo(result, 40);\n h6.copyTo(result, 48);\n h7.copyTo(result, 56);\n } else {\n result = new Uint8Array(48);\n h0.copyTo(result, 0);\n h1.copyTo(result, 8);\n h2.copyTo(result, 16);\n h3.copyTo(result, 24);\n h4.copyTo(result, 32);\n h5.copyTo(result, 40);\n }\n return result;\n }\n\n return hash;\n})();\n\nfunction calculateSHA384(data, offset, length) {\n return calculateSHA512(data, offset, length, /* mode384 = */ true);\n}\n\nclass NullCipher {\n decryptBlock(data) {\n return data;\n }\n\n encrypt(data) {\n return data;\n }\n}\n\nclass AESBaseCipher {\n constructor() {\n if (this.constructor === AESBaseCipher) {\n unreachable(\"Cannot initialize AESBaseCipher.\");\n }\n\n this._s = new Uint8Array([\n 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b,\n 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0,\n 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26,\n 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,\n 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2,\n 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0,\n 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed,\n 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf,\n 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f,\n 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5,\n 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec,\n 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,\n 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14,\n 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c,\n 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d,\n 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08,\n 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f,\n 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e,\n 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11,\n 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,\n 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f,\n 0xb0, 0x54, 0xbb, 0x16,\n ]);\n\n this._inv_s = new Uint8Array([\n 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e,\n 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87,\n 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32,\n 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e,\n 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49,\n 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16,\n 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50,\n 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84,\n 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05,\n 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02,\n 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41,\n 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73,\n 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8,\n 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89,\n 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b,\n 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4,\n 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59,\n 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d,\n 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d,\n 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61,\n 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63,\n 0x55, 0x21, 0x0c, 0x7d,\n ]);\n\n this._mix = new Uint32Array([\n 0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927,\n 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45,\n 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb,\n 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381,\n 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf,\n 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66,\n 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28,\n 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012,\n 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec,\n 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e,\n 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd,\n 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7,\n 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89,\n 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b,\n 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815,\n 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f,\n 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa,\n 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8,\n 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36,\n 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c,\n 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742,\n 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea,\n 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4,\n 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e,\n 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360,\n 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502,\n 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87,\n 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd,\n 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3,\n 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621,\n 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f,\n 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55,\n 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26,\n 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844,\n 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba,\n 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480,\n 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce,\n 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67,\n 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929,\n 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713,\n 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed,\n 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f,\n 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3,\n ]);\n\n this._mixCol = new Uint8Array(256);\n for (let i = 0; i < 256; i++) {\n if (i < 128) {\n this._mixCol[i] = i << 1;\n } else {\n this._mixCol[i] = (i << 1) ^ 0x1b;\n }\n }\n\n this.buffer = new Uint8Array(16);\n this.bufferPosition = 0;\n }\n\n _expandKey(cipherKey) {\n unreachable(\"Cannot call `_expandKey` on the base class\");\n }\n\n _decrypt(input, key) {\n let t, u, v;\n const state = new Uint8Array(16);\n state.set(input);\n\n // AddRoundKey\n for (let j = 0, k = this._keySize; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n for (let i = this._cyclesOfRepetition - 1; i >= 1; --i) {\n // InvShiftRows\n t = state[13];\n state[13] = state[9];\n state[9] = state[5];\n state[5] = state[1];\n state[1] = t;\n t = state[14];\n u = state[10];\n state[14] = state[6];\n state[10] = state[2];\n state[6] = t;\n state[2] = u;\n t = state[15];\n u = state[11];\n v = state[7];\n state[15] = state[3];\n state[11] = t;\n state[7] = u;\n state[3] = v;\n // InvSubBytes\n for (let j = 0; j < 16; ++j) {\n state[j] = this._inv_s[state[j]];\n }\n // AddRoundKey\n for (let j = 0, k = i * 16; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n // InvMixColumns\n for (let j = 0; j < 16; j += 4) {\n const s0 = this._mix[state[j]];\n const s1 = this._mix[state[j + 1]];\n const s2 = this._mix[state[j + 2]];\n const s3 = this._mix[state[j + 3]];\n t =\n s0 ^\n (s1 >>> 8) ^\n (s1 << 24) ^\n (s2 >>> 16) ^\n (s2 << 16) ^\n (s3 >>> 24) ^\n (s3 << 8);\n state[j] = (t >>> 24) & 0xff;\n state[j + 1] = (t >> 16) & 0xff;\n state[j + 2] = (t >> 8) & 0xff;\n state[j + 3] = t & 0xff;\n }\n }\n // InvShiftRows\n t = state[13];\n state[13] = state[9];\n state[9] = state[5];\n state[5] = state[1];\n state[1] = t;\n t = state[14];\n u = state[10];\n state[14] = state[6];\n state[10] = state[2];\n state[6] = t;\n state[2] = u;\n t = state[15];\n u = state[11];\n v = state[7];\n state[15] = state[3];\n state[11] = t;\n state[7] = u;\n state[3] = v;\n for (let j = 0; j < 16; ++j) {\n // InvSubBytes\n state[j] = this._inv_s[state[j]];\n // AddRoundKey\n state[j] ^= key[j];\n }\n return state;\n }\n\n _encrypt(input, key) {\n const s = this._s;\n\n let t, u, v;\n const state = new Uint8Array(16);\n state.set(input);\n\n for (let j = 0; j < 16; ++j) {\n // AddRoundKey\n state[j] ^= key[j];\n }\n\n for (let i = 1; i < this._cyclesOfRepetition; i++) {\n // SubBytes\n for (let j = 0; j < 16; ++j) {\n state[j] = s[state[j]];\n }\n // ShiftRows\n v = state[1];\n state[1] = state[5];\n state[5] = state[9];\n state[9] = state[13];\n state[13] = v;\n v = state[2];\n u = state[6];\n state[2] = state[10];\n state[6] = state[14];\n state[10] = v;\n state[14] = u;\n v = state[3];\n u = state[7];\n t = state[11];\n state[3] = state[15];\n state[7] = v;\n state[11] = u;\n state[15] = t;\n // MixColumns\n for (let j = 0; j < 16; j += 4) {\n const s0 = state[j + 0];\n const s1 = state[j + 1];\n const s2 = state[j + 2];\n const s3 = state[j + 3];\n t = s0 ^ s1 ^ s2 ^ s3;\n state[j + 0] ^= t ^ this._mixCol[s0 ^ s1];\n state[j + 1] ^= t ^ this._mixCol[s1 ^ s2];\n state[j + 2] ^= t ^ this._mixCol[s2 ^ s3];\n state[j + 3] ^= t ^ this._mixCol[s3 ^ s0];\n }\n // AddRoundKey\n for (let j = 0, k = i * 16; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n }\n\n // SubBytes\n for (let j = 0; j < 16; ++j) {\n state[j] = s[state[j]];\n }\n // ShiftRows\n v = state[1];\n state[1] = state[5];\n state[5] = state[9];\n state[9] = state[13];\n state[13] = v;\n v = state[2];\n u = state[6];\n state[2] = state[10];\n state[6] = state[14];\n state[10] = v;\n state[14] = u;\n v = state[3];\n u = state[7];\n t = state[11];\n state[3] = state[15];\n state[7] = v;\n state[11] = u;\n state[15] = t;\n // AddRoundKey\n for (let j = 0, k = this._keySize; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n return state;\n }\n\n _decryptBlock2(data, finalize) {\n const sourceLength = data.length;\n let buffer = this.buffer,\n bufferLength = this.bufferPosition;\n const result = [];\n let iv = this.iv;\n\n for (let i = 0; i < sourceLength; ++i) {\n buffer[bufferLength] = data[i];\n ++bufferLength;\n if (bufferLength < 16) {\n continue;\n }\n // buffer is full, decrypting\n const plain = this._decrypt(buffer, this._key);\n // xor-ing the IV vector to get plain text\n for (let j = 0; j < 16; ++j) {\n plain[j] ^= iv[j];\n }\n iv = buffer;\n result.push(plain);\n buffer = new Uint8Array(16);\n bufferLength = 0;\n }\n // saving incomplete buffer\n this.buffer = buffer;\n this.bufferLength = bufferLength;\n this.iv = iv;\n if (result.length === 0) {\n return new Uint8Array(0);\n }\n // combining plain text blocks into one\n let outputLength = 16 * result.length;\n if (finalize) {\n // undo a padding that is described in RFC 2898\n const lastBlock = result[result.length - 1];\n let psLen = lastBlock[15];\n if (psLen <= 16) {\n for (let i = 15, ii = 16 - psLen; i >= ii; --i) {\n if (lastBlock[i] !== psLen) {\n // Invalid padding, assume that the block has no padding.\n psLen = 0;\n break;\n }\n }\n outputLength -= psLen;\n result[result.length - 1] = lastBlock.subarray(0, 16 - psLen);\n }\n }\n const output = new Uint8Array(outputLength);\n for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n output.set(result[i], j);\n }\n return output;\n }\n\n decryptBlock(data, finalize, iv = null) {\n const sourceLength = data.length;\n const buffer = this.buffer;\n let bufferLength = this.bufferPosition;\n // If an IV is not supplied, wait for IV values. They are at the start\n // of the stream.\n if (iv) {\n this.iv = iv;\n } else {\n for (\n let i = 0;\n bufferLength < 16 && i < sourceLength;\n ++i, ++bufferLength\n ) {\n buffer[bufferLength] = data[i];\n }\n if (bufferLength < 16) {\n // Need more data.\n this.bufferLength = bufferLength;\n return new Uint8Array(0);\n }\n this.iv = buffer;\n data = data.subarray(16);\n }\n this.buffer = new Uint8Array(16);\n this.bufferLength = 0;\n // starting decryption\n this.decryptBlock = this._decryptBlock2;\n return this.decryptBlock(data, finalize);\n }\n\n encrypt(data, iv) {\n const sourceLength = data.length;\n let buffer = this.buffer,\n bufferLength = this.bufferPosition;\n const result = [];\n\n if (!iv) {\n iv = new Uint8Array(16);\n }\n for (let i = 0; i < sourceLength; ++i) {\n buffer[bufferLength] = data[i];\n ++bufferLength;\n if (bufferLength < 16) {\n continue;\n }\n\n for (let j = 0; j < 16; ++j) {\n buffer[j] ^= iv[j];\n }\n\n // buffer is full, encrypting\n const cipher = this._encrypt(buffer, this._key);\n iv = cipher;\n result.push(cipher);\n buffer = new Uint8Array(16);\n bufferLength = 0;\n }\n // saving incomplete buffer\n this.buffer = buffer;\n this.bufferLength = bufferLength;\n this.iv = iv;\n if (result.length === 0) {\n return new Uint8Array(0);\n }\n // combining plain text blocks into one\n const outputLength = 16 * result.length;\n const output = new Uint8Array(outputLength);\n for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n output.set(result[i], j);\n }\n return output;\n }\n}\n\nclass AES128Cipher extends AESBaseCipher {\n constructor(key) {\n super();\n\n this._cyclesOfRepetition = 10;\n this._keySize = 160; // bits\n\n this._rcon = new Uint8Array([\n 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c,\n 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a,\n 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd,\n 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a,\n 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,\n 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6,\n 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72,\n 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc,\n 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10,\n 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e,\n 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5,\n 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94,\n 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02,\n 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d,\n 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d,\n 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f,\n 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb,\n 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c,\n 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a,\n 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd,\n 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a,\n 0x74, 0xe8, 0xcb, 0x8d,\n ]);\n\n this._key = this._expandKey(key);\n }\n\n _expandKey(cipherKey) {\n const b = 176;\n const s = this._s;\n const rcon = this._rcon;\n\n const result = new Uint8Array(b);\n result.set(cipherKey);\n\n for (let j = 16, i = 1; j < b; ++i) {\n // RotWord\n let t1 = result[j - 3];\n let t2 = result[j - 2];\n let t3 = result[j - 1];\n let t4 = result[j - 4];\n // SubWord\n t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n // Rcon\n t1 ^= rcon[i];\n for (let n = 0; n < 4; ++n) {\n result[j] = t1 ^= result[j - 16];\n j++;\n result[j] = t2 ^= result[j - 16];\n j++;\n result[j] = t3 ^= result[j - 16];\n j++;\n result[j] = t4 ^= result[j - 16];\n j++;\n }\n }\n return result;\n }\n}\n\nclass AES256Cipher extends AESBaseCipher {\n constructor(key) {\n super();\n\n this._cyclesOfRepetition = 14;\n this._keySize = 224; // bits\n\n this._key = this._expandKey(key);\n }\n\n _expandKey(cipherKey) {\n const b = 240;\n const s = this._s;\n\n const result = new Uint8Array(b);\n result.set(cipherKey);\n\n let r = 1;\n let t1, t2, t3, t4;\n for (let j = 32, i = 1; j < b; ++i) {\n if (j % 32 === 16) {\n t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n } else if (j % 32 === 0) {\n // RotWord\n t1 = result[j - 3];\n t2 = result[j - 2];\n t3 = result[j - 1];\n t4 = result[j - 4];\n // SubWord\n t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n // Rcon\n t1 ^= r;\n if ((r <<= 1) >= 256) {\n r = (r ^ 0x1b) & 0xff;\n }\n }\n\n for (let n = 0; n < 4; ++n) {\n result[j] = t1 ^= result[j - 32];\n j++;\n result[j] = t2 ^= result[j - 32];\n j++;\n result[j] = t3 ^= result[j - 32];\n j++;\n result[j] = t4 ^= result[j - 32];\n j++;\n }\n }\n return result;\n }\n}\n\nclass PDF17 {\n checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) {\n const hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerValidationSalt, password.length);\n hashData.set(userBytes, password.length + ownerValidationSalt.length);\n const result = calculateSHA256(hashData, 0, hashData.length);\n return isArrayEqual(result, ownerPassword);\n }\n\n checkUserPassword(password, userValidationSalt, userPassword) {\n const hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userValidationSalt, password.length);\n const result = calculateSHA256(hashData, 0, hashData.length);\n return isArrayEqual(result, userPassword);\n }\n\n getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n const hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerKeySalt, password.length);\n hashData.set(userBytes, password.length + ownerKeySalt.length);\n const key = calculateSHA256(hashData, 0, hashData.length);\n const cipher = new AES256Cipher(key);\n return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n }\n\n getUserKey(password, userKeySalt, userEncryption) {\n const hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userKeySalt, password.length);\n // `key` is the decryption key for the UE string.\n const key = calculateSHA256(hashData, 0, hashData.length);\n const cipher = new AES256Cipher(key);\n return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n }\n}\n\nconst PDF20 = (function PDF20Closure() {\n function calculatePDF20Hash(password, input, userBytes) {\n // This refers to Algorithm 2.B as defined in ISO 32000-2.\n let k = calculateSHA256(input, 0, input.length).subarray(0, 32);\n let e = [0];\n let i = 0;\n while (i < 64 || e[e.length - 1] > i - 32) {\n const combinedLength = password.length + k.length + userBytes.length,\n combinedArray = new Uint8Array(combinedLength);\n let writeOffset = 0;\n combinedArray.set(password, writeOffset);\n writeOffset += password.length;\n combinedArray.set(k, writeOffset);\n writeOffset += k.length;\n combinedArray.set(userBytes, writeOffset);\n\n const k1 = new Uint8Array(combinedLength * 64);\n for (let j = 0, pos = 0; j < 64; j++, pos += combinedLength) {\n k1.set(combinedArray, pos);\n }\n // AES128 CBC NO PADDING with first 16 bytes of k as the key\n // and the second 16 as the iv.\n const cipher = new AES128Cipher(k.subarray(0, 16));\n e = cipher.encrypt(k1, k.subarray(16, 32));\n // Now we have to take the first 16 bytes of an unsigned big endian\n // integer and compute the remainder modulo 3. That is a fairly large\n // number and JavaScript isn't going to handle that well, so we're using\n // a trick that allows us to perform modulo math byte by byte.\n let remainder = 0;\n for (let z = 0; z < 16; z++) {\n remainder *= 256 % 3;\n remainder %= 3;\n remainder += (e[z] >>> 0) % 3;\n remainder %= 3;\n }\n if (remainder === 0) {\n k = calculateSHA256(e, 0, e.length);\n } else if (remainder === 1) {\n k = calculateSHA384(e, 0, e.length);\n } else if (remainder === 2) {\n k = calculateSHA512(e, 0, e.length);\n }\n i++;\n }\n return k.subarray(0, 32);\n }\n\n // eslint-disable-next-line no-shadow\n class PDF20 {\n hash(password, concatBytes, userBytes) {\n return calculatePDF20Hash(password, concatBytes, userBytes);\n }\n\n checkOwnerPassword(\n password,\n ownerValidationSalt,\n userBytes,\n ownerPassword\n ) {\n const hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerValidationSalt, password.length);\n hashData.set(userBytes, password.length + ownerValidationSalt.length);\n const result = calculatePDF20Hash(password, hashData, userBytes);\n return isArrayEqual(result, ownerPassword);\n }\n\n checkUserPassword(password, userValidationSalt, userPassword) {\n const hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userValidationSalt, password.length);\n const result = calculatePDF20Hash(password, hashData, []);\n return isArrayEqual(result, userPassword);\n }\n\n getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n const hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerKeySalt, password.length);\n hashData.set(userBytes, password.length + ownerKeySalt.length);\n const key = calculatePDF20Hash(password, hashData, userBytes);\n const cipher = new AES256Cipher(key);\n return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n }\n\n getUserKey(password, userKeySalt, userEncryption) {\n const hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userKeySalt, password.length);\n // `key` is the decryption key for the UE string.\n const key = calculatePDF20Hash(password, hashData, []);\n const cipher = new AES256Cipher(key);\n return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n }\n }\n\n return PDF20;\n})();\n\nclass CipherTransform {\n constructor(stringCipherConstructor, streamCipherConstructor) {\n this.StringCipherConstructor = stringCipherConstructor;\n this.StreamCipherConstructor = streamCipherConstructor;\n }\n\n createStream(stream, length) {\n const cipher = new this.StreamCipherConstructor();\n return new DecryptStream(\n stream,\n length,\n function cipherTransformDecryptStream(data, finalize) {\n return cipher.decryptBlock(data, finalize);\n }\n );\n }\n\n decryptString(s) {\n const cipher = new this.StringCipherConstructor();\n let data = stringToBytes(s);\n data = cipher.decryptBlock(data, true);\n return bytesToString(data);\n }\n\n encryptString(s) {\n const cipher = new this.StringCipherConstructor();\n if (cipher instanceof AESBaseCipher) {\n // Append some chars equal to \"16 - (M mod 16)\"\n // where M is the string length (see section 7.6.2 in PDF specification)\n // to have a final string where the length is a multiple of 16.\n // Special note:\n // \"Note that the pad is present when M is evenly divisible by 16;\n // it contains 16 bytes of 0x10.\"\n const strLen = s.length;\n const pad = 16 - (strLen % 16);\n s += String.fromCharCode(pad).repeat(pad);\n\n // Generate an initialization vector\n const iv = new Uint8Array(16);\n if (typeof crypto !== \"undefined\") {\n crypto.getRandomValues(iv);\n } else {\n for (let i = 0; i < 16; i++) {\n iv[i] = Math.floor(256 * Math.random());\n }\n }\n\n let data = stringToBytes(s);\n data = cipher.encrypt(data, iv);\n\n const buf = new Uint8Array(16 + data.length);\n buf.set(iv);\n buf.set(data, 16);\n\n return bytesToString(buf);\n }\n\n let data = stringToBytes(s);\n data = cipher.encrypt(data);\n return bytesToString(data);\n }\n}\n\nconst CipherTransformFactory = (function CipherTransformFactoryClosure() {\n const defaultPasswordBytes = new Uint8Array([\n 0x28, 0xbf, 0x4e, 0x5e, 0x4e, 0x75, 0x8a, 0x41, 0x64, 0x00, 0x4e, 0x56,\n 0xff, 0xfa, 0x01, 0x08, 0x2e, 0x2e, 0x00, 0xb6, 0xd0, 0x68, 0x3e, 0x80,\n 0x2f, 0x0c, 0xa9, 0xfe, 0x64, 0x53, 0x69, 0x7a,\n ]);\n\n function createEncryptionKey20(\n revision,\n password,\n ownerPassword,\n ownerValidationSalt,\n ownerKeySalt,\n uBytes,\n userPassword,\n userValidationSalt,\n userKeySalt,\n ownerEncryption,\n userEncryption,\n perms\n ) {\n if (password) {\n const passwordLength = Math.min(127, password.length);\n password = password.subarray(0, passwordLength);\n } else {\n password = [];\n }\n let pdfAlgorithm;\n if (revision === 6) {\n pdfAlgorithm = new PDF20();\n } else {\n pdfAlgorithm = new PDF17();\n }\n\n if (\n pdfAlgorithm.checkUserPassword(password, userValidationSalt, userPassword)\n ) {\n return pdfAlgorithm.getUserKey(password, userKeySalt, userEncryption);\n } else if (\n password.length &&\n pdfAlgorithm.checkOwnerPassword(\n password,\n ownerValidationSalt,\n uBytes,\n ownerPassword\n )\n ) {\n return pdfAlgorithm.getOwnerKey(\n password,\n ownerKeySalt,\n uBytes,\n ownerEncryption\n );\n }\n\n return null;\n }\n\n function prepareKeyData(\n fileId,\n password,\n ownerPassword,\n userPassword,\n flags,\n revision,\n keyLength,\n encryptMetadata\n ) {\n const hashDataSize = 40 + ownerPassword.length + fileId.length;\n const hashData = new Uint8Array(hashDataSize);\n let i = 0,\n j,\n n;\n if (password) {\n n = Math.min(32, password.length);\n for (; i < n; ++i) {\n hashData[i] = password[i];\n }\n }\n j = 0;\n while (i < 32) {\n hashData[i++] = defaultPasswordBytes[j++];\n }\n // as now the padded password in the hashData[0..i]\n for (j = 0, n = ownerPassword.length; j < n; ++j) {\n hashData[i++] = ownerPassword[j];\n }\n hashData[i++] = flags & 0xff;\n hashData[i++] = (flags >> 8) & 0xff;\n hashData[i++] = (flags >> 16) & 0xff;\n hashData[i++] = (flags >>> 24) & 0xff;\n for (j = 0, n = fileId.length; j < n; ++j) {\n hashData[i++] = fileId[j];\n }\n if (revision >= 4 && !encryptMetadata) {\n hashData[i++] = 0xff;\n hashData[i++] = 0xff;\n hashData[i++] = 0xff;\n hashData[i++] = 0xff;\n }\n let hash = calculateMD5(hashData, 0, i);\n const keyLengthInBytes = keyLength >> 3;\n if (revision >= 3) {\n for (j = 0; j < 50; ++j) {\n hash = calculateMD5(hash, 0, keyLengthInBytes);\n }\n }\n const encryptionKey = hash.subarray(0, keyLengthInBytes);\n let cipher, checkData;\n\n if (revision >= 3) {\n for (i = 0; i < 32; ++i) {\n hashData[i] = defaultPasswordBytes[i];\n }\n for (j = 0, n = fileId.length; j < n; ++j) {\n hashData[i++] = fileId[j];\n }\n cipher = new ARCFourCipher(encryptionKey);\n checkData = cipher.encryptBlock(calculateMD5(hashData, 0, i));\n n = encryptionKey.length;\n const derivedKey = new Uint8Array(n);\n for (j = 1; j <= 19; ++j) {\n for (let k = 0; k < n; ++k) {\n derivedKey[k] = encryptionKey[k] ^ j;\n }\n cipher = new ARCFourCipher(derivedKey);\n checkData = cipher.encryptBlock(checkData);\n }\n for (j = 0, n = checkData.length; j < n; ++j) {\n if (userPassword[j] !== checkData[j]) {\n return null;\n }\n }\n } else {\n cipher = new ARCFourCipher(encryptionKey);\n checkData = cipher.encryptBlock(defaultPasswordBytes);\n for (j = 0, n = checkData.length; j < n; ++j) {\n if (userPassword[j] !== checkData[j]) {\n return null;\n }\n }\n }\n return encryptionKey;\n }\n\n function decodeUserPassword(password, ownerPassword, revision, keyLength) {\n const hashData = new Uint8Array(32);\n let i = 0;\n const n = Math.min(32, password.length);\n for (; i < n; ++i) {\n hashData[i] = password[i];\n }\n let j = 0;\n while (i < 32) {\n hashData[i++] = defaultPasswordBytes[j++];\n }\n let hash = calculateMD5(hashData, 0, i);\n const keyLengthInBytes = keyLength >> 3;\n if (revision >= 3) {\n for (j = 0; j < 50; ++j) {\n hash = calculateMD5(hash, 0, hash.length);\n }\n }\n\n let cipher, userPassword;\n if (revision >= 3) {\n userPassword = ownerPassword;\n const derivedKey = new Uint8Array(keyLengthInBytes);\n for (j = 19; j >= 0; j--) {\n for (let k = 0; k < keyLengthInBytes; ++k) {\n derivedKey[k] = hash[k] ^ j;\n }\n cipher = new ARCFourCipher(derivedKey);\n userPassword = cipher.encryptBlock(userPassword);\n }\n } else {\n cipher = new ARCFourCipher(hash.subarray(0, keyLengthInBytes));\n userPassword = cipher.encryptBlock(ownerPassword);\n }\n return userPassword;\n }\n\n const identityName = Name.get(\"Identity\");\n\n function buildObjectKey(num, gen, encryptionKey, isAes = false) {\n const key = new Uint8Array(encryptionKey.length + 9);\n const n = encryptionKey.length;\n let i;\n for (i = 0; i < n; ++i) {\n key[i] = encryptionKey[i];\n }\n key[i++] = num & 0xff;\n key[i++] = (num >> 8) & 0xff;\n key[i++] = (num >> 16) & 0xff;\n key[i++] = gen & 0xff;\n key[i++] = (gen >> 8) & 0xff;\n if (isAes) {\n key[i++] = 0x73;\n key[i++] = 0x41;\n key[i++] = 0x6c;\n key[i++] = 0x54;\n }\n const hash = calculateMD5(key, 0, i);\n return hash.subarray(0, Math.min(encryptionKey.length + 5, 16));\n }\n\n function buildCipherConstructor(cf, name, num, gen, key) {\n if (!(name instanceof Name)) {\n throw new FormatError(\"Invalid crypt filter name.\");\n }\n const cryptFilter = cf.get(name.name);\n let cfm;\n if (cryptFilter !== null && cryptFilter !== undefined) {\n cfm = cryptFilter.get(\"CFM\");\n }\n if (!cfm || cfm.name === \"None\") {\n return function cipherTransformFactoryBuildCipherConstructorNone() {\n return new NullCipher();\n };\n }\n if (cfm.name === \"V2\") {\n return function cipherTransformFactoryBuildCipherConstructorV2() {\n return new ARCFourCipher(\n buildObjectKey(num, gen, key, /* isAes = */ false)\n );\n };\n }\n if (cfm.name === \"AESV2\") {\n return function cipherTransformFactoryBuildCipherConstructorAESV2() {\n return new AES128Cipher(\n buildObjectKey(num, gen, key, /* isAes = */ true)\n );\n };\n }\n if (cfm.name === \"AESV3\") {\n return function cipherTransformFactoryBuildCipherConstructorAESV3() {\n return new AES256Cipher(key);\n };\n }\n throw new FormatError(\"Unknown crypto method\");\n }\n\n // eslint-disable-next-line no-shadow\n class CipherTransformFactory {\n constructor(dict, fileId, password) {\n const filter = dict.get(\"Filter\");\n if (!isName(filter, \"Standard\")) {\n throw new FormatError(\"unknown encryption method\");\n }\n this.filterName = filter.name;\n this.dict = dict;\n const algorithm = dict.get(\"V\");\n if (\n !Number.isInteger(algorithm) ||\n (algorithm !== 1 &&\n algorithm !== 2 &&\n algorithm !== 4 &&\n algorithm !== 5)\n ) {\n throw new FormatError(\"unsupported encryption algorithm\");\n }\n this.algorithm = algorithm;\n let keyLength = dict.get(\"Length\");\n if (!keyLength) {\n // Spec asks to rely on encryption dictionary's Length entry, however\n // some PDFs don't have it. Trying to recover.\n if (algorithm <= 3) {\n // For 1 and 2 it's fixed to 40-bit, for 3 40-bit is a minimal value.\n keyLength = 40;\n } else {\n // Trying to find default handler -- it usually has Length.\n const cfDict = dict.get(\"CF\");\n const streamCryptoName = dict.get(\"StmF\");\n if (cfDict instanceof Dict && streamCryptoName instanceof Name) {\n cfDict.suppressEncryption = true; // See comment below.\n const handlerDict = cfDict.get(streamCryptoName.name);\n keyLength = (handlerDict && handlerDict.get(\"Length\")) || 128;\n if (keyLength < 40) {\n // Sometimes it's incorrect value of bits, generators specify\n // bytes.\n keyLength <<= 3;\n }\n }\n }\n }\n if (\n !Number.isInteger(keyLength) ||\n keyLength < 40 ||\n keyLength % 8 !== 0\n ) {\n throw new FormatError(\"invalid key length\");\n }\n\n // prepare keys\n const ownerPassword = stringToBytes(dict.get(\"O\")).subarray(0, 32);\n const userPassword = stringToBytes(dict.get(\"U\")).subarray(0, 32);\n const flags = dict.get(\"P\");\n const revision = dict.get(\"R\");\n // meaningful when V is 4 or 5\n const encryptMetadata =\n (algorithm === 4 || algorithm === 5) &&\n dict.get(\"EncryptMetadata\") !== false;\n this.encryptMetadata = encryptMetadata;\n\n const fileIdBytes = stringToBytes(fileId);\n let passwordBytes;\n if (password) {\n if (revision === 6) {\n try {\n password = utf8StringToString(password);\n } catch (ex) {\n warn(\n \"CipherTransformFactory: \" +\n \"Unable to convert UTF8 encoded password.\"\n );\n }\n }\n passwordBytes = stringToBytes(password);\n }\n\n let encryptionKey;\n if (algorithm !== 5) {\n encryptionKey = prepareKeyData(\n fileIdBytes,\n passwordBytes,\n ownerPassword,\n userPassword,\n flags,\n revision,\n keyLength,\n encryptMetadata\n );\n } else {\n const ownerValidationSalt = stringToBytes(dict.get(\"O\")).subarray(\n 32,\n 40\n );\n const ownerKeySalt = stringToBytes(dict.get(\"O\")).subarray(40, 48);\n const uBytes = stringToBytes(dict.get(\"U\")).subarray(0, 48);\n const userValidationSalt = stringToBytes(dict.get(\"U\")).subarray(\n 32,\n 40\n );\n const userKeySalt = stringToBytes(dict.get(\"U\")).subarray(40, 48);\n const ownerEncryption = stringToBytes(dict.get(\"OE\"));\n const userEncryption = stringToBytes(dict.get(\"UE\"));\n const perms = stringToBytes(dict.get(\"Perms\"));\n encryptionKey = createEncryptionKey20(\n revision,\n passwordBytes,\n ownerPassword,\n ownerValidationSalt,\n ownerKeySalt,\n uBytes,\n userPassword,\n userValidationSalt,\n userKeySalt,\n ownerEncryption,\n userEncryption,\n perms\n );\n }\n if (!encryptionKey && !password) {\n throw new PasswordException(\n \"No password given\",\n PasswordResponses.NEED_PASSWORD\n );\n } else if (!encryptionKey && password) {\n // Attempting use the password as an owner password\n const decodedPassword = decodeUserPassword(\n passwordBytes,\n ownerPassword,\n revision,\n keyLength\n );\n encryptionKey = prepareKeyData(\n fileIdBytes,\n decodedPassword,\n ownerPassword,\n userPassword,\n flags,\n revision,\n keyLength,\n encryptMetadata\n );\n }\n\n if (!encryptionKey) {\n throw new PasswordException(\n \"Incorrect Password\",\n PasswordResponses.INCORRECT_PASSWORD\n );\n }\n\n this.encryptionKey = encryptionKey;\n\n if (algorithm >= 4) {\n const cf = dict.get(\"CF\");\n if (cf instanceof Dict) {\n // The 'CF' dictionary itself should not be encrypted, and by setting\n // `suppressEncryption` we can prevent an infinite loop inside of\n // `XRef_fetchUncompressed` if the dictionary contains indirect\n // objects (fixes issue7665.pdf).\n cf.suppressEncryption = true;\n }\n this.cf = cf;\n this.stmf = dict.get(\"StmF\") || identityName;\n this.strf = dict.get(\"StrF\") || identityName;\n this.eff = dict.get(\"EFF\") || this.stmf;\n }\n }\n\n createCipherTransform(num, gen) {\n if (this.algorithm === 4 || this.algorithm === 5) {\n return new CipherTransform(\n buildCipherConstructor(\n this.cf,\n this.stmf,\n num,\n gen,\n this.encryptionKey\n ),\n buildCipherConstructor(\n this.cf,\n this.strf,\n num,\n gen,\n this.encryptionKey\n )\n );\n }\n // algorithms 1 and 2\n const key = buildObjectKey(\n num,\n gen,\n this.encryptionKey,\n /* isAes = */ false\n );\n const cipherConstructor = function buildCipherCipherConstructor() {\n return new ARCFourCipher(key);\n };\n return new CipherTransform(cipherConstructor, cipherConstructor);\n }\n }\n\n return CipherTransformFactory;\n})();\n\nexport {\n AES128Cipher,\n AES256Cipher,\n ARCFourCipher,\n calculateMD5,\n calculateSHA256,\n calculateSHA384,\n calculateSHA512,\n CipherTransformFactory,\n PDF17,\n PDF20,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\n\nconst chunkSize = 512;\n\nclass DecryptStream extends DecodeStream {\n constructor(str, maybeLength, decrypt) {\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n this.decrypt = decrypt;\n this.nextChunk = null;\n this.initialized = false;\n }\n\n readBlock() {\n let chunk;\n if (this.initialized) {\n chunk = this.nextChunk;\n } else {\n chunk = this.str.getBytes(chunkSize);\n this.initialized = true;\n }\n if (!chunk || chunk.length === 0) {\n this.eof = true;\n return;\n }\n this.nextChunk = this.str.getBytes(chunkSize);\n const hasMoreData = this.nextChunk && this.nextChunk.length > 0;\n\n const decrypt = this.decrypt;\n chunk = decrypt(chunk, !hasMoreData);\n\n let bufferLength = this.bufferLength;\n const n = chunk.length,\n buffer = this.ensureBuffer(bufferLength + n);\n for (let i = 0; i < n; i++) {\n buffer[bufferLength++] = chunk[i];\n }\n this.bufferLength = bufferLength;\n }\n}\n\nexport { DecryptStream };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $appendChild,\n $globalData,\n $nodeName,\n $text,\n $toHTML,\n $toPages,\n} from \"./xfa_object.js\";\nimport { Binder } from \"./bind.js\";\nimport { DataHandler } from \"./data.js\";\nimport { FontFinder } from \"./fonts.js\";\nimport { stripQuotes } from \"./utils.js\";\nimport { warn } from \"../../shared/util.js\";\nimport { XFAParser } from \"./parser.js\";\nimport { XhtmlNamespace } from \"./xhtml.js\";\n\nclass XFAFactory {\n constructor(data) {\n try {\n this.root = new XFAParser().parse(XFAFactory._createDocument(data));\n const binder = new Binder(this.root);\n this.form = binder.bind();\n this.dataHandler = new DataHandler(this.root, binder.getData());\n this.form[$globalData].template = this.form;\n } catch (e) {\n warn(`XFA - an error occurred during parsing and binding: ${e}`);\n }\n }\n\n isValid() {\n return this.root && this.form;\n }\n\n /**\n * In order to avoid to block the event loop, the conversion\n * into pages is made asynchronously.\n */\n _createPagesHelper() {\n const iterator = this.form[$toPages]();\n return new Promise((resolve, reject) => {\n const nextIteration = () => {\n try {\n const value = iterator.next();\n if (value.done) {\n resolve(value.value);\n } else {\n setTimeout(nextIteration, 0);\n }\n } catch (e) {\n reject(e);\n }\n };\n setTimeout(nextIteration, 0);\n });\n }\n\n async _createPages() {\n try {\n this.pages = await this._createPagesHelper();\n this.dims = this.pages.children.map(c => {\n const { width, height } = c.attributes.style;\n return [0, 0, parseInt(width), parseInt(height)];\n });\n } catch (e) {\n warn(`XFA - an error occurred during layout: ${e}`);\n }\n }\n\n getBoundingBox(pageIndex) {\n return this.dims[pageIndex];\n }\n\n async getNumPages() {\n if (!this.pages) {\n await this._createPages();\n }\n return this.dims.length;\n }\n\n setImages(images) {\n this.form[$globalData].images = images;\n }\n\n setFonts(fonts) {\n this.form[$globalData].fontFinder = new FontFinder(fonts);\n const missingFonts = [];\n for (let typeface of this.form[$globalData].usedTypefaces) {\n typeface = stripQuotes(typeface);\n const font = this.form[$globalData].fontFinder.find(typeface);\n if (!font) {\n missingFonts.push(typeface);\n }\n }\n\n if (missingFonts.length > 0) {\n return missingFonts;\n }\n\n return null;\n }\n\n appendFonts(fonts, reallyMissingFonts) {\n this.form[$globalData].fontFinder.add(fonts, reallyMissingFonts);\n }\n\n async getPages() {\n if (!this.pages) {\n await this._createPages();\n }\n const pages = this.pages;\n this.pages = null;\n return pages;\n }\n\n serializeData(storage) {\n return this.dataHandler.serialize(storage);\n }\n\n static _createDocument(data) {\n if (!data[\"/xdp:xdp\"]) {\n return data[\"xdp:xdp\"];\n }\n return Object.values(data).join(\"\");\n }\n\n static getRichTextAsHtml(rc) {\n if (!rc || typeof rc !== \"string\") {\n return null;\n }\n\n try {\n let root = new XFAParser(XhtmlNamespace, /* richText */ true).parse(rc);\n if (![\"body\", \"xhtml\"].includes(root[$nodeName])) {\n // No body, so create one.\n const newRoot = XhtmlNamespace.body({});\n newRoot[$appendChild](root);\n root = newRoot;\n }\n\n const result = root[$toHTML]();\n if (!result.success) {\n return null;\n }\n\n const { html } = result;\n const { attributes } = html;\n if (attributes) {\n if (attributes.class) {\n attributes.class = attributes.class.filter(\n attr => !attr.startsWith(\"xfa\")\n );\n }\n attributes.dir = \"auto\";\n }\n\n return { html, str: root[$text]() };\n } catch (e) {\n warn(`XFA - an error occurred during parsing of rich text: ${e}`);\n }\n return null;\n }\n}\n\nexport { XFAFactory };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getInteger, getKeyword, HTMLResult } from \"./utils.js\";\nimport { shadow, utf8StringToString, warn } from \"../../shared/util.js\";\nimport { encodeToXmlString } from \"../core_utils.js\";\nimport { NamespaceIds } from \"./namespaces.js\";\nimport { searchNode } from \"./som.js\";\n\n// We use these symbols to avoid name conflict between tags\n// and properties/methods names.\nconst $acceptWhitespace = Symbol();\nconst $addHTML = Symbol();\nconst $appendChild = Symbol();\nconst $childrenToHTML = Symbol();\nconst $clean = Symbol();\nconst $cleanPage = Symbol();\nconst $cleanup = Symbol();\nconst $clone = Symbol();\nconst $consumed = Symbol();\nconst $content = Symbol(\"content\");\nconst $data = Symbol(\"data\");\nconst $dump = Symbol();\nconst $extra = Symbol(\"extra\");\nconst $finalize = Symbol();\nconst $flushHTML = Symbol();\nconst $getAttributeIt = Symbol();\nconst $getAttributes = Symbol();\nconst $getAvailableSpace = Symbol();\nconst $getChildrenByClass = Symbol();\nconst $getChildrenByName = Symbol();\nconst $getChildrenByNameIt = Symbol();\nconst $getDataValue = Symbol();\nconst $getExtra = Symbol();\nconst $getRealChildrenByNameIt = Symbol();\nconst $getChildren = Symbol();\nconst $getContainedChildren = Symbol();\nconst $getNextPage = Symbol();\nconst $getSubformParent = Symbol();\nconst $getParent = Symbol();\nconst $getTemplateRoot = Symbol();\nconst $globalData = Symbol();\nconst $hasSettableValue = Symbol();\nconst $ids = Symbol();\nconst $indexOf = Symbol();\nconst $insertAt = Symbol();\nconst $isCDATAXml = Symbol();\nconst $isBindable = Symbol();\nconst $isDataValue = Symbol();\nconst $isDescendent = Symbol();\nconst $isNsAgnostic = Symbol();\nconst $isSplittable = Symbol();\nconst $isThereMoreWidth = Symbol();\nconst $isTransparent = Symbol();\nconst $isUsable = Symbol();\nconst $lastAttribute = Symbol();\nconst $namespaceId = Symbol(\"namespaceId\");\nconst $nodeName = Symbol(\"nodeName\");\nconst $nsAttributes = Symbol();\nconst $onChild = Symbol();\nconst $onChildCheck = Symbol();\nconst $onText = Symbol();\nconst $pushGlyphs = Symbol();\nconst $popPara = Symbol();\nconst $pushPara = Symbol();\nconst $removeChild = Symbol();\nconst $root = Symbol(\"root\");\nconst $resolvePrototypes = Symbol();\nconst $searchNode = Symbol();\nconst $setId = Symbol();\nconst $setSetAttributes = Symbol();\nconst $setValue = Symbol();\nconst $tabIndex = Symbol();\nconst $text = Symbol();\nconst $toPages = Symbol();\nconst $toHTML = Symbol();\nconst $toString = Symbol();\nconst $toStyle = Symbol();\nconst $uid = Symbol(\"uid\");\n\nconst _applyPrototype = Symbol();\nconst _attributes = Symbol();\nconst _attributeNames = Symbol();\nconst _children = Symbol(\"_children\");\nconst _cloneAttribute = Symbol();\nconst _dataValue = Symbol();\nconst _defaultValue = Symbol();\nconst _filteredChildrenGenerator = Symbol();\nconst _getPrototype = Symbol();\nconst _getUnsetAttributes = Symbol();\nconst _hasChildren = Symbol();\nconst _max = Symbol();\nconst _options = Symbol();\nconst _parent = Symbol(\"parent\");\nconst _resolvePrototypesHelper = Symbol();\nconst _setAttributes = Symbol();\nconst _validator = Symbol();\n\nlet uid = 0;\n\nconst NS_DATASETS = NamespaceIds.datasets.id;\n\nclass XFAObject {\n constructor(nsId, name, hasChildren = false) {\n this[$namespaceId] = nsId;\n this[$nodeName] = name;\n this[_hasChildren] = hasChildren;\n this[_parent] = null;\n this[_children] = [];\n this[$uid] = `${name}${uid++}`;\n this[$globalData] = null;\n }\n\n [$onChild](child) {\n if (!this[_hasChildren] || !this[$onChildCheck](child)) {\n return false;\n }\n\n const name = child[$nodeName];\n const node = this[name];\n\n if (node instanceof XFAObjectArray) {\n if (node.push(child)) {\n this[$appendChild](child);\n return true;\n }\n } else {\n // IRL it's possible to already have a node.\n // So just replace it with the last version.\n if (node !== null) {\n this[$removeChild](node);\n }\n this[name] = child;\n this[$appendChild](child);\n return true;\n }\n\n let id = \"\";\n if (this.id) {\n id = ` (id: ${this.id})`;\n } else if (this.name) {\n id = ` (name: ${this.name} ${this.h.value})`;\n }\n warn(`XFA - node \"${this[$nodeName]}\"${id} has already enough \"${name}\"!`);\n return false;\n }\n\n [$onChildCheck](child) {\n return (\n this.hasOwnProperty(child[$nodeName]) &&\n child[$namespaceId] === this[$namespaceId]\n );\n }\n\n [$isNsAgnostic]() {\n return false;\n }\n\n [$acceptWhitespace]() {\n return false;\n }\n\n [$isCDATAXml]() {\n return false;\n }\n\n [$isBindable]() {\n return false;\n }\n\n [$popPara]() {\n if (this.para) {\n this[$getTemplateRoot]()[$extra].paraStack.pop();\n }\n }\n\n [$pushPara]() {\n this[$getTemplateRoot]()[$extra].paraStack.push(this.para);\n }\n\n [$setId](ids) {\n if (this.id && this[$namespaceId] === NamespaceIds.template.id) {\n ids.set(this.id, this);\n }\n }\n\n [$getTemplateRoot]() {\n return this[$globalData].template;\n }\n\n [$isSplittable]() {\n return false;\n }\n\n /**\n Return true if this node (typically a container)\n can provide more width during layout.\n The goal is to help to know what a descendant must\n do in case of horizontal overflow.\n */\n [$isThereMoreWidth]() {\n return false;\n }\n\n [$appendChild](child) {\n child[_parent] = this;\n this[_children].push(child);\n if (!child[$globalData] && this[$globalData]) {\n child[$globalData] = this[$globalData];\n }\n }\n\n [$removeChild](child) {\n const i = this[_children].indexOf(child);\n this[_children].splice(i, 1);\n }\n\n [$hasSettableValue]() {\n return this.hasOwnProperty(\"value\");\n }\n\n [$setValue](_) {}\n\n [$onText](_) {}\n\n [$finalize]() {}\n\n [$clean](builder) {\n delete this[_hasChildren];\n if (this[$cleanup]) {\n builder.clean(this[$cleanup]);\n delete this[$cleanup];\n }\n }\n\n [$indexOf](child) {\n return this[_children].indexOf(child);\n }\n\n [$insertAt](i, child) {\n child[_parent] = this;\n this[_children].splice(i, 0, child);\n if (!child[$globalData] && this[$globalData]) {\n child[$globalData] = this[$globalData];\n }\n }\n\n /**\n * If true the element is transparent when searching a node using\n * a SOM expression which means that looking for \"foo.bar\" in\n * <... name=\"foo\"><... name=\"bar\">...\n * is fine because toto and titi are transparent.\n */\n [$isTransparent]() {\n return !this.name;\n }\n\n [$lastAttribute]() {\n return \"\";\n }\n\n [$text]() {\n if (this[_children].length === 0) {\n return this[$content];\n }\n return this[_children].map(c => c[$text]()).join(\"\");\n }\n\n get [_attributeNames]() {\n // Lazily get attributes names\n const proto = Object.getPrototypeOf(this);\n if (!proto._attributes) {\n const attributes = (proto._attributes = new Set());\n for (const name of Object.getOwnPropertyNames(this)) {\n if (\n this[name] === null ||\n this[name] instanceof XFAObject ||\n this[name] instanceof XFAObjectArray\n ) {\n break;\n }\n attributes.add(name);\n }\n }\n return shadow(this, _attributeNames, proto._attributes);\n }\n\n [$isDescendent](parent) {\n let node = this;\n while (node) {\n if (node === parent) {\n return true;\n }\n node = node[$getParent]();\n }\n return false;\n }\n\n [$getParent]() {\n return this[_parent];\n }\n\n [$getSubformParent]() {\n return this[$getParent]();\n }\n\n [$getChildren](name = null) {\n if (!name) {\n return this[_children];\n }\n\n return this[name];\n }\n\n [$dump]() {\n const dumped = Object.create(null);\n if (this[$content]) {\n dumped.$content = this[$content];\n }\n\n for (const name of Object.getOwnPropertyNames(this)) {\n const value = this[name];\n if (value === null) {\n continue;\n }\n if (value instanceof XFAObject) {\n dumped[name] = value[$dump]();\n } else if (value instanceof XFAObjectArray) {\n if (!value.isEmpty()) {\n dumped[name] = value.dump();\n }\n } else {\n dumped[name] = value;\n }\n }\n\n return dumped;\n }\n\n [$toStyle]() {\n return null;\n }\n\n [$toHTML]() {\n return HTMLResult.EMPTY;\n }\n\n *[$getContainedChildren]() {\n // This function is overriden in Subform and SubformSet.\n for (const node of this[$getChildren]()) {\n yield node;\n }\n }\n\n *[_filteredChildrenGenerator](filter, include) {\n for (const node of this[$getContainedChildren]()) {\n if (!filter || include === filter.has(node[$nodeName])) {\n const availableSpace = this[$getAvailableSpace]();\n const res = node[$toHTML](availableSpace);\n if (!res.success) {\n this[$extra].failingNode = node;\n }\n yield res;\n }\n }\n }\n\n [$flushHTML]() {\n return null;\n }\n\n [$addHTML](html, bbox) {\n this[$extra].children.push(html);\n }\n\n [$getAvailableSpace]() {}\n\n [$childrenToHTML]({ filter = null, include = true }) {\n if (!this[$extra].generator) {\n this[$extra].generator = this[_filteredChildrenGenerator](\n filter,\n include\n );\n } else {\n const availableSpace = this[$getAvailableSpace]();\n const res = this[$extra].failingNode[$toHTML](availableSpace);\n if (!res.success) {\n return res;\n }\n if (res.html) {\n this[$addHTML](res.html, res.bbox);\n }\n delete this[$extra].failingNode;\n }\n\n while (true) {\n const gen = this[$extra].generator.next();\n if (gen.done) {\n break;\n }\n const res = gen.value;\n if (!res.success) {\n return res;\n }\n if (res.html) {\n this[$addHTML](res.html, res.bbox);\n }\n }\n\n this[$extra].generator = null;\n\n return HTMLResult.EMPTY;\n }\n\n [$setSetAttributes](attributes) {\n // Just keep set attributes because it can be used in a proto.\n this[_setAttributes] = new Set(Object.keys(attributes));\n }\n\n /**\n * Get attribute names which have been set in the proto but not in this.\n */\n [_getUnsetAttributes](protoAttributes) {\n const allAttr = this[_attributeNames];\n const setAttr = this[_setAttributes];\n return [...protoAttributes].filter(x => allAttr.has(x) && !setAttr.has(x));\n }\n\n /**\n * Update the node with properties coming from a prototype and apply\n * this function recursively to all children.\n */\n [$resolvePrototypes](ids, ancestors = new Set()) {\n for (const child of this[_children]) {\n child[_resolvePrototypesHelper](ids, ancestors);\n }\n }\n\n [_resolvePrototypesHelper](ids, ancestors) {\n const proto = this[_getPrototype](ids, ancestors);\n if (proto) {\n // _applyPrototype will apply $resolvePrototypes with correct ancestors\n // to avoid infinite loop.\n this[_applyPrototype](proto, ids, ancestors);\n } else {\n this[$resolvePrototypes](ids, ancestors);\n }\n }\n\n [_getPrototype](ids, ancestors) {\n const { use, usehref } = this;\n if (!use && !usehref) {\n return null;\n }\n\n let proto = null;\n let somExpression = null;\n let id = null;\n let ref = use;\n\n // If usehref and use are non-empty then use usehref.\n if (usehref) {\n ref = usehref;\n // Href can be one of the following:\n // - #ID\n // - URI#ID\n // - #som(expression)\n // - URI#som(expression)\n // - URI\n // For now we don't handle URI other than \".\" (current document).\n if (usehref.startsWith(\"#som(\") && usehref.endsWith(\")\")) {\n somExpression = usehref.slice(\"#som(\".length, usehref.length - 1);\n } else if (usehref.startsWith(\".#som(\") && usehref.endsWith(\")\")) {\n somExpression = usehref.slice(\".#som(\".length, usehref.length - 1);\n } else if (usehref.startsWith(\"#\")) {\n id = usehref.slice(1);\n } else if (usehref.startsWith(\".#\")) {\n id = usehref.slice(2);\n }\n } else if (use.startsWith(\"#\")) {\n id = use.slice(1);\n } else {\n somExpression = use;\n }\n\n this.use = this.usehref = \"\";\n if (id) {\n proto = ids.get(id);\n } else {\n proto = searchNode(\n ids.get($root),\n this,\n somExpression,\n true /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (proto) {\n proto = proto[0];\n }\n }\n\n if (!proto) {\n warn(`XFA - Invalid prototype reference: ${ref}.`);\n return null;\n }\n\n if (proto[$nodeName] !== this[$nodeName]) {\n warn(\n `XFA - Incompatible prototype: ${proto[$nodeName]} !== ${this[$nodeName]}.`\n );\n return null;\n }\n\n if (ancestors.has(proto)) {\n // We've a cycle so break it.\n warn(`XFA - Cycle detected in prototypes use.`);\n return null;\n }\n\n ancestors.add(proto);\n\n // The prototype can have a \"use\" attribute itself.\n const protoProto = proto[_getPrototype](ids, ancestors);\n if (protoProto) {\n proto[_applyPrototype](protoProto, ids, ancestors);\n }\n\n // The prototype can have a child which itself has a \"use\" property.\n proto[$resolvePrototypes](ids, ancestors);\n\n ancestors.delete(proto);\n\n return proto;\n }\n\n [_applyPrototype](proto, ids, ancestors) {\n if (ancestors.has(proto)) {\n // We've a cycle so break it.\n warn(`XFA - Cycle detected in prototypes use.`);\n return;\n }\n\n if (!this[$content] && proto[$content]) {\n this[$content] = proto[$content];\n }\n\n const newAncestors = new Set(ancestors);\n newAncestors.add(proto);\n\n for (const unsetAttrName of this[_getUnsetAttributes](\n proto[_setAttributes]\n )) {\n this[unsetAttrName] = proto[unsetAttrName];\n if (this[_setAttributes]) {\n this[_setAttributes].add(unsetAttrName);\n }\n }\n\n for (const name of Object.getOwnPropertyNames(this)) {\n if (this[_attributeNames].has(name)) {\n continue;\n }\n const value = this[name];\n const protoValue = proto[name];\n\n if (value instanceof XFAObjectArray) {\n for (const child of value[_children]) {\n child[_resolvePrototypesHelper](ids, ancestors);\n }\n\n for (\n let i = value[_children].length, ii = protoValue[_children].length;\n i < ii;\n i++\n ) {\n const child = proto[_children][i][$clone]();\n if (value.push(child)) {\n child[_parent] = this;\n this[_children].push(child);\n child[_resolvePrototypesHelper](ids, ancestors);\n } else {\n // No need to continue: other nodes will be rejected.\n break;\n }\n }\n continue;\n }\n\n if (value !== null) {\n value[$resolvePrototypes](ids, ancestors);\n if (protoValue) {\n // protoValue must be treated as a prototype for value.\n value[_applyPrototype](protoValue, ids, ancestors);\n }\n continue;\n }\n\n if (protoValue !== null) {\n const child = protoValue[$clone]();\n child[_parent] = this;\n this[name] = child;\n this[_children].push(child);\n child[_resolvePrototypesHelper](ids, ancestors);\n }\n }\n }\n\n static [_cloneAttribute](obj) {\n if (Array.isArray(obj)) {\n return obj.map(x => XFAObject[_cloneAttribute](x));\n }\n if (typeof obj === \"object\" && obj !== null) {\n return Object.assign({}, obj);\n }\n return obj;\n }\n\n [$clone]() {\n const clone = Object.create(Object.getPrototypeOf(this));\n for (const $symbol of Object.getOwnPropertySymbols(this)) {\n try {\n clone[$symbol] = this[$symbol];\n } catch (_) {\n shadow(clone, $symbol, this[$symbol]);\n }\n }\n clone[$uid] = `${clone[$nodeName]}${uid++}`;\n clone[_children] = [];\n\n for (const name of Object.getOwnPropertyNames(this)) {\n if (this[_attributeNames].has(name)) {\n clone[name] = XFAObject[_cloneAttribute](this[name]);\n continue;\n }\n const value = this[name];\n if (value instanceof XFAObjectArray) {\n clone[name] = new XFAObjectArray(value[_max]);\n } else {\n clone[name] = null;\n }\n }\n\n for (const child of this[_children]) {\n const name = child[$nodeName];\n const clonedChild = child[$clone]();\n clone[_children].push(clonedChild);\n clonedChild[_parent] = clone;\n if (clone[name] === null) {\n clone[name] = clonedChild;\n } else {\n clone[name][_children].push(clonedChild);\n }\n }\n\n return clone;\n }\n\n [$getChildren](name = null) {\n if (!name) {\n return this[_children];\n }\n\n return this[_children].filter(c => c[$nodeName] === name);\n }\n\n [$getChildrenByClass](name) {\n return this[name];\n }\n\n [$getChildrenByName](name, allTransparent, first = true) {\n return Array.from(this[$getChildrenByNameIt](name, allTransparent, first));\n }\n\n *[$getChildrenByNameIt](name, allTransparent, first = true) {\n if (name === \"parent\") {\n yield this[_parent];\n return;\n }\n\n for (const child of this[_children]) {\n if (child[$nodeName] === name) {\n yield child;\n }\n\n if (child.name === name) {\n yield child;\n }\n\n if (allTransparent || child[$isTransparent]()) {\n yield* child[$getChildrenByNameIt](name, allTransparent, false);\n }\n }\n\n if (first && this[_attributeNames].has(name)) {\n yield new XFAAttribute(this, name, this[name]);\n }\n }\n}\n\nclass XFAObjectArray {\n constructor(max = Infinity) {\n this[_max] = max;\n this[_children] = [];\n }\n\n push(child) {\n const len = this[_children].length;\n if (len <= this[_max]) {\n this[_children].push(child);\n return true;\n }\n warn(\n `XFA - node \"${child[$nodeName]}\" accepts no more than ${this[_max]} children`\n );\n return false;\n }\n\n isEmpty() {\n return this[_children].length === 0;\n }\n\n dump() {\n return this[_children].length === 1\n ? this[_children][0][$dump]()\n : this[_children].map(x => x[$dump]());\n }\n\n [$clone]() {\n const clone = new XFAObjectArray(this[_max]);\n clone[_children] = this[_children].map(c => c[$clone]());\n return clone;\n }\n\n get children() {\n return this[_children];\n }\n\n clear() {\n this[_children].length = 0;\n }\n}\n\nclass XFAAttribute {\n constructor(node, name, value) {\n this[_parent] = node;\n this[$nodeName] = name;\n this[$content] = value;\n this[$consumed] = false;\n this[$uid] = `attribute${uid++}`;\n }\n\n [$getParent]() {\n return this[_parent];\n }\n\n [$isDataValue]() {\n return true;\n }\n\n [$getDataValue]() {\n return this[$content].trim();\n }\n\n [$setValue](value) {\n value = value.value || \"\";\n this[$content] = value.toString();\n }\n\n [$text]() {\n return this[$content];\n }\n\n [$isDescendent](parent) {\n return this[_parent] === parent || this[_parent][$isDescendent](parent);\n }\n}\n\nclass XmlObject extends XFAObject {\n constructor(nsId, name, attributes = {}) {\n super(nsId, name);\n this[$content] = \"\";\n this[_dataValue] = null;\n if (name !== \"#text\") {\n const map = new Map();\n this[_attributes] = map;\n for (const [attrName, value] of Object.entries(attributes)) {\n map.set(attrName, new XFAAttribute(this, attrName, value));\n }\n if (attributes.hasOwnProperty($nsAttributes)) {\n // XFA attributes.\n const dataNode = attributes[$nsAttributes].xfa.dataNode;\n if (dataNode !== undefined) {\n if (dataNode === \"dataGroup\") {\n this[_dataValue] = false;\n } else if (dataNode === \"dataValue\") {\n this[_dataValue] = true;\n }\n }\n }\n }\n this[$consumed] = false;\n }\n\n [$toString](buf) {\n const tagName = this[$nodeName];\n if (tagName === \"#text\") {\n buf.push(encodeToXmlString(this[$content]));\n return;\n }\n const utf8TagName = utf8StringToString(tagName);\n const prefix = this[$namespaceId] === NS_DATASETS ? \"xfa:\" : \"\";\n buf.push(`<${prefix}${utf8TagName}`);\n for (const [name, value] of this[_attributes].entries()) {\n const utf8Name = utf8StringToString(name);\n buf.push(` ${utf8Name}=\"${encodeToXmlString(value[$content])}\"`);\n }\n if (this[_dataValue] !== null) {\n if (this[_dataValue]) {\n buf.push(` xfa:dataNode=\"dataValue\"`);\n } else {\n buf.push(` xfa:dataNode=\"dataGroup\"`);\n }\n }\n if (!this[$content] && this[_children].length === 0) {\n buf.push(\"/>\");\n return;\n }\n\n buf.push(\">\");\n if (this[$content]) {\n if (typeof this[$content] === \"string\") {\n buf.push(encodeToXmlString(this[$content]));\n } else {\n this[$content][$toString](buf);\n }\n } else {\n for (const child of this[_children]) {\n child[$toString](buf);\n }\n }\n buf.push(``);\n }\n\n [$onChild](child) {\n if (this[$content]) {\n const node = new XmlObject(this[$namespaceId], \"#text\");\n this[$appendChild](node);\n node[$content] = this[$content];\n this[$content] = \"\";\n }\n this[$appendChild](child);\n return true;\n }\n\n [$onText](str) {\n this[$content] += str;\n }\n\n [$finalize]() {\n if (this[$content] && this[_children].length > 0) {\n const node = new XmlObject(this[$namespaceId], \"#text\");\n this[$appendChild](node);\n node[$content] = this[$content];\n delete this[$content];\n }\n }\n\n [$toHTML]() {\n if (this[$nodeName] === \"#text\") {\n return HTMLResult.success({\n name: \"#text\",\n value: this[$content],\n });\n }\n\n return HTMLResult.EMPTY;\n }\n\n [$getChildren](name = null) {\n if (!name) {\n return this[_children];\n }\n\n return this[_children].filter(c => c[$nodeName] === name);\n }\n\n [$getAttributes]() {\n return this[_attributes];\n }\n\n [$getChildrenByClass](name) {\n const value = this[_attributes].get(name);\n if (value !== undefined) {\n return value;\n }\n return this[$getChildren](name);\n }\n\n *[$getChildrenByNameIt](name, allTransparent) {\n const value = this[_attributes].get(name);\n if (value) {\n yield value;\n }\n\n for (const child of this[_children]) {\n if (child[$nodeName] === name) {\n yield child;\n }\n\n if (allTransparent) {\n yield* child[$getChildrenByNameIt](name, allTransparent);\n }\n }\n }\n\n *[$getAttributeIt](name, skipConsumed) {\n const value = this[_attributes].get(name);\n if (value && (!skipConsumed || !value[$consumed])) {\n yield value;\n }\n for (const child of this[_children]) {\n yield* child[$getAttributeIt](name, skipConsumed);\n }\n }\n\n *[$getRealChildrenByNameIt](name, allTransparent, skipConsumed) {\n for (const child of this[_children]) {\n if (child[$nodeName] === name && (!skipConsumed || !child[$consumed])) {\n yield child;\n }\n\n if (allTransparent) {\n yield* child[$getRealChildrenByNameIt](\n name,\n allTransparent,\n skipConsumed\n );\n }\n }\n }\n\n [$isDataValue]() {\n if (this[_dataValue] === null) {\n return (\n this[_children].length === 0 ||\n this[_children][0][$namespaceId] === NamespaceIds.xhtml.id\n );\n }\n return this[_dataValue];\n }\n\n [$getDataValue]() {\n if (this[_dataValue] === null) {\n if (this[_children].length === 0) {\n return this[$content].trim();\n }\n if (this[_children][0][$namespaceId] === NamespaceIds.xhtml.id) {\n return this[_children][0][$text]().trim();\n }\n return null;\n }\n return this[$content].trim();\n }\n\n [$setValue](value) {\n value = value.value || \"\";\n this[$content] = value.toString();\n }\n\n [$dump](hasNS = false) {\n const dumped = Object.create(null);\n if (hasNS) {\n dumped.$ns = this[$namespaceId];\n }\n if (this[$content]) {\n dumped.$content = this[$content];\n }\n dumped.$name = this[$nodeName];\n\n dumped.children = [];\n for (const child of this[_children]) {\n dumped.children.push(child[$dump](hasNS));\n }\n\n dumped.attributes = Object.create(null);\n for (const [name, value] of this[_attributes]) {\n dumped.attributes[name] = value[$content];\n }\n\n return dumped;\n }\n}\n\nclass ContentObject extends XFAObject {\n constructor(nsId, name) {\n super(nsId, name);\n this[$content] = \"\";\n }\n\n [$onText](text) {\n this[$content] += text;\n }\n\n [$finalize]() {}\n}\n\nclass OptionObject extends ContentObject {\n constructor(nsId, name, options) {\n super(nsId, name);\n this[_options] = options;\n }\n\n [$finalize]() {\n this[$content] = getKeyword({\n data: this[$content],\n defaultValue: this[_options][0],\n validate: k => this[_options].includes(k),\n });\n }\n\n [$clean](builder) {\n super[$clean](builder);\n delete this[_options];\n }\n}\n\nclass StringObject extends ContentObject {\n [$finalize]() {\n this[$content] = this[$content].trim();\n }\n}\n\nclass IntegerObject extends ContentObject {\n constructor(nsId, name, defaultValue, validator) {\n super(nsId, name);\n this[_defaultValue] = defaultValue;\n this[_validator] = validator;\n }\n\n [$finalize]() {\n this[$content] = getInteger({\n data: this[$content],\n defaultValue: this[_defaultValue],\n validate: this[_validator],\n });\n }\n\n [$clean](builder) {\n super[$clean](builder);\n delete this[_defaultValue];\n delete this[_validator];\n }\n}\n\nclass Option01 extends IntegerObject {\n constructor(nsId, name) {\n super(nsId, name, 0, n => n === 1);\n }\n}\n\nclass Option10 extends IntegerObject {\n constructor(nsId, name) {\n super(nsId, name, 1, n => n === 0);\n }\n}\n\nexport {\n $acceptWhitespace,\n $addHTML,\n $appendChild,\n $childrenToHTML,\n $clean,\n $cleanPage,\n $cleanup,\n $clone,\n $consumed,\n $content,\n $data,\n $dump,\n $extra,\n $finalize,\n $flushHTML,\n $getAttributeIt,\n $getAttributes,\n $getAvailableSpace,\n $getChildren,\n $getChildrenByClass,\n $getChildrenByName,\n $getChildrenByNameIt,\n $getContainedChildren,\n $getDataValue,\n $getExtra,\n $getNextPage,\n $getParent,\n $getRealChildrenByNameIt,\n $getSubformParent,\n $getTemplateRoot,\n $globalData,\n $hasSettableValue,\n $ids,\n $indexOf,\n $insertAt,\n $isBindable,\n $isCDATAXml,\n $isDataValue,\n $isDescendent,\n $isNsAgnostic,\n $isSplittable,\n $isThereMoreWidth,\n $isTransparent,\n $isUsable,\n $namespaceId,\n $nodeName,\n $nsAttributes,\n $onChild,\n $onChildCheck,\n $onText,\n $popPara,\n $pushGlyphs,\n $pushPara,\n $removeChild,\n $resolvePrototypes,\n $root,\n $searchNode,\n $setId,\n $setSetAttributes,\n $setValue,\n $tabIndex,\n $text,\n $toHTML,\n $toPages,\n $toString,\n $toStyle,\n $uid,\n ContentObject,\n IntegerObject,\n Option01,\n Option10,\n OptionObject,\n StringObject,\n XFAAttribute,\n XFAObject,\n XFAObjectArray,\n XmlObject,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { shadow } from \"../../shared/util.js\";\n\nconst dimConverters = {\n pt: x => x,\n cm: x => (x / 2.54) * 72,\n mm: x => (x / (10 * 2.54)) * 72,\n in: x => x * 72,\n px: x => x,\n};\nconst measurementPattern = /([+-]?\\d+\\.?\\d*)(.*)/;\n\nfunction stripQuotes(str) {\n if (str.startsWith(\"'\") || str.startsWith('\"')) {\n return str.slice(1, str.length - 1);\n }\n return str;\n}\n\nfunction getInteger({ data, defaultValue, validate }) {\n if (!data) {\n return defaultValue;\n }\n data = data.trim();\n const n = parseInt(data, 10);\n if (!isNaN(n) && validate(n)) {\n return n;\n }\n return defaultValue;\n}\n\nfunction getFloat({ data, defaultValue, validate }) {\n if (!data) {\n return defaultValue;\n }\n data = data.trim();\n const n = parseFloat(data);\n if (!isNaN(n) && validate(n)) {\n return n;\n }\n return defaultValue;\n}\n\nfunction getKeyword({ data, defaultValue, validate }) {\n if (!data) {\n return defaultValue;\n }\n data = data.trim();\n if (validate(data)) {\n return data;\n }\n return defaultValue;\n}\n\nfunction getStringOption(data, options) {\n return getKeyword({\n data,\n defaultValue: options[0],\n validate: k => options.includes(k),\n });\n}\n\nfunction getMeasurement(str, def = \"0\") {\n def = def || \"0\";\n if (!str) {\n return getMeasurement(def);\n }\n const match = str.trim().match(measurementPattern);\n if (!match) {\n return getMeasurement(def);\n }\n const [, valueStr, unit] = match;\n const value = parseFloat(valueStr);\n if (isNaN(value)) {\n return getMeasurement(def);\n }\n\n if (value === 0) {\n return 0;\n }\n\n const conv = dimConverters[unit];\n if (conv) {\n return conv(value);\n }\n\n return value;\n}\n\nfunction getRatio(data) {\n if (!data) {\n return { num: 1, den: 1 };\n }\n const ratio = data\n .trim()\n .split(/\\s*:\\s*/)\n .map(x => parseFloat(x))\n .filter(x => !isNaN(x));\n if (ratio.length === 1) {\n ratio.push(1);\n }\n\n if (ratio.length === 0) {\n return { num: 1, den: 1 };\n }\n\n const [num, den] = ratio;\n return { num, den };\n}\n\nfunction getRelevant(data) {\n if (!data) {\n return [];\n }\n return data\n .trim()\n .split(/\\s+/)\n .map(e => {\n return {\n excluded: e[0] === \"-\",\n viewname: e.substring(1),\n };\n });\n}\n\nfunction getColor(data, def = [0, 0, 0]) {\n let [r, g, b] = def;\n if (!data) {\n return { r, g, b };\n }\n const color = data\n .trim()\n .split(/\\s*,\\s*/)\n .map(c => Math.min(Math.max(0, parseInt(c.trim(), 10)), 255))\n .map(c => (isNaN(c) ? 0 : c));\n\n if (color.length < 3) {\n return { r, g, b };\n }\n\n [r, g, b] = color;\n return { r, g, b };\n}\n\nfunction getBBox(data) {\n const def = -1;\n if (!data) {\n return { x: def, y: def, width: def, height: def };\n }\n const bbox = data\n .trim()\n .split(/\\s*,\\s*/)\n .map(m => getMeasurement(m, \"-1\"));\n if (bbox.length < 4 || bbox[2] < 0 || bbox[3] < 0) {\n return { x: def, y: def, width: def, height: def };\n }\n\n const [x, y, width, height] = bbox;\n return { x, y, width, height };\n}\n\nclass HTMLResult {\n static get FAILURE() {\n return shadow(this, \"FAILURE\", new HTMLResult(false, null, null, null));\n }\n\n static get EMPTY() {\n return shadow(this, \"EMPTY\", new HTMLResult(true, null, null, null));\n }\n\n constructor(success, html, bbox, breakNode) {\n this.success = success;\n this.html = html;\n this.bbox = bbox;\n this.breakNode = breakNode;\n }\n\n isBreak() {\n return !!this.breakNode;\n }\n\n static breakNode(node) {\n return new HTMLResult(false, null, null, node);\n }\n\n static success(html, bbox = null) {\n return new HTMLResult(true, html, bbox, null);\n }\n}\n\nexport {\n getBBox,\n getColor,\n getFloat,\n getInteger,\n getKeyword,\n getMeasurement,\n getRatio,\n getRelevant,\n getStringOption,\n HTMLResult,\n stripQuotes,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst $buildXFAObject = Symbol();\n\nconst NamespaceIds = {\n config: {\n id: 0,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xci/\"),\n },\n connectionSet: {\n id: 1,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-connection-set/\"),\n },\n datasets: {\n id: 2,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-data/\"),\n },\n form: {\n id: 3,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-form/\"),\n },\n localeSet: {\n id: 4,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-locale-set/\"),\n },\n pdf: {\n id: 5,\n check: ns => ns === \"http://ns.adobe.com/xdp/pdf/\",\n },\n signature: {\n id: 6,\n check: ns => ns === \"http://www.w3.org/2000/09/xmldsig#\",\n },\n sourceSet: {\n id: 7,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-source-set/\"),\n },\n stylesheet: {\n id: 8,\n check: ns => ns === \"http://www.w3.org/1999/XSL/Transform\",\n },\n template: {\n id: 9,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-template/\"),\n },\n xdc: {\n id: 10,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xdc/\"),\n },\n xdp: {\n id: 11,\n check: ns => ns === \"http://ns.adobe.com/xdp/\",\n },\n xfdf: {\n id: 12,\n check: ns => ns === \"http://ns.adobe.com/xfdf/\",\n },\n xhtml: {\n id: 13,\n check: ns => ns === \"http://www.w3.org/1999/xhtml\",\n },\n xmpmeta: {\n id: 14,\n check: ns => ns === \"http://ns.adobe.com/xmpmeta/\",\n },\n};\n\nexport { $buildXFAObject, NamespaceIds };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $appendChild,\n $getChildren,\n $getChildrenByClass,\n $getChildrenByName,\n $getParent,\n $namespaceId,\n XFAObject,\n XFAObjectArray,\n XmlObject,\n} from \"./xfa_object.js\";\nimport { NamespaceIds } from \"./namespaces.js\";\nimport { warn } from \"../../shared/util.js\";\n\nconst namePattern = /^[^.[]+/;\nconst indexPattern = /^[^\\]]+/;\nconst operators = {\n dot: 0,\n dotDot: 1,\n dotHash: 2,\n dotBracket: 3,\n dotParen: 4,\n};\n\nconst shortcuts = new Map([\n [\"$data\", (root, current) => (root.datasets ? root.datasets.data : root)],\n [\n \"$record\",\n (root, current) =>\n (root.datasets ? root.datasets.data : root)[$getChildren]()[0],\n ],\n [\"$template\", (root, current) => root.template],\n [\"$connectionSet\", (root, current) => root.connectionSet],\n [\"$form\", (root, current) => root.form],\n [\"$layout\", (root, current) => root.layout],\n [\"$host\", (root, current) => root.host],\n [\"$dataWindow\", (root, current) => root.dataWindow],\n [\"$event\", (root, current) => root.event],\n [\"!\", (root, current) => root.datasets],\n [\"$xfa\", (root, current) => root],\n [\"xfa\", (root, current) => root],\n [\"$\", (root, current) => current],\n]);\n\nconst somCache = new WeakMap();\nconst NS_DATASETS = NamespaceIds.datasets.id;\n\nfunction parseIndex(index) {\n index = index.trim();\n if (index === \"*\") {\n return Infinity;\n }\n return parseInt(index, 10) || 0;\n}\n\n// For now expressions containing .[...] or .(...) are not\n// evaluated so don't parse them.\n// TODO: implement that stuff and the remove the noExpr param.\nfunction parseExpression(expr, dotDotAllowed, noExpr = true) {\n let match = expr.match(namePattern);\n if (!match) {\n return null;\n }\n\n let [name] = match;\n const parsed = [\n {\n name,\n cacheName: \".\" + name,\n index: 0,\n js: null,\n formCalc: null,\n operator: operators.dot,\n },\n ];\n\n let pos = name.length;\n\n while (pos < expr.length) {\n const spos = pos;\n const char = expr.charAt(pos++);\n if (char === \"[\") {\n match = expr.slice(pos).match(indexPattern);\n if (!match) {\n warn(\"XFA - Invalid index in SOM expression\");\n return null;\n }\n parsed[parsed.length - 1].index = parseIndex(match[0]);\n pos += match[0].length + 1;\n continue;\n }\n\n let operator;\n switch (expr.charAt(pos)) {\n case \".\":\n if (!dotDotAllowed) {\n return null;\n }\n pos++;\n operator = operators.dotDot;\n break;\n case \"#\":\n pos++;\n operator = operators.dotHash;\n break;\n case \"[\":\n if (noExpr) {\n warn(\n \"XFA - SOM expression contains a FormCalc subexpression which is not supported for now.\"\n );\n return null;\n }\n // TODO: FormCalc expression so need to use the parser\n operator = operators.dotBracket;\n break;\n case \"(\":\n if (noExpr) {\n warn(\n \"XFA - SOM expression contains a JavaScript subexpression which is not supported for now.\"\n );\n return null;\n }\n // TODO:\n // JavaScript expression: should be a boolean operation with a path\n // so maybe we can have our own parser for that stuff or\n // maybe use the formcalc one.\n operator = operators.dotParen;\n break;\n default:\n operator = operators.dot;\n break;\n }\n\n match = expr.slice(pos).match(namePattern);\n if (!match) {\n break;\n }\n\n [name] = match;\n pos += name.length;\n parsed.push({\n name,\n cacheName: expr.slice(spos, pos),\n operator,\n index: 0,\n js: null,\n formCalc: null,\n });\n }\n return parsed;\n}\n\nfunction searchNode(\n root,\n container,\n expr,\n dotDotAllowed = true,\n useCache = true\n) {\n const parsed = parseExpression(expr, dotDotAllowed);\n if (!parsed) {\n return null;\n }\n\n const fn = shortcuts.get(parsed[0].name);\n let i = 0;\n let isQualified;\n if (fn) {\n isQualified = true;\n root = [fn(root, container)];\n i = 1;\n } else {\n isQualified = container === null;\n root = [container || root];\n }\n\n for (let ii = parsed.length; i < ii; i++) {\n const { name, cacheName, operator, index } = parsed[i];\n const nodes = [];\n for (const node of root) {\n if (!(node instanceof XFAObject)) {\n continue;\n }\n\n let children, cached;\n\n if (useCache) {\n cached = somCache.get(node);\n if (!cached) {\n cached = new Map();\n somCache.set(node, cached);\n }\n children = cached.get(cacheName);\n }\n\n if (!children) {\n switch (operator) {\n case operators.dot:\n children = node[$getChildrenByName](name, false);\n break;\n case operators.dotDot:\n children = node[$getChildrenByName](name, true);\n break;\n case operators.dotHash:\n children = node[$getChildrenByClass](name);\n if (children instanceof XFAObjectArray) {\n children = children.children;\n } else {\n children = [children];\n }\n break;\n default:\n break;\n }\n if (useCache) {\n cached.set(cacheName, children);\n }\n }\n\n if (children.length > 0) {\n nodes.push(children);\n }\n }\n\n if (nodes.length === 0 && !isQualified && i === 0) {\n // We've an unqualified expression and we didn't find anything\n // so look at container and siblings of container and so on.\n // http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.364.2157&rep=rep1&type=pdf#page=114\n const parent = container[$getParent]();\n container = parent;\n if (!container) {\n return null;\n }\n i = -1;\n root = [container];\n continue;\n }\n\n if (isFinite(index)) {\n root = nodes.filter(node => index < node.length).map(node => node[index]);\n } else {\n root = nodes.reduce((acc, node) => acc.concat(node), []);\n }\n }\n\n if (root.length === 0) {\n return null;\n }\n\n return root;\n}\n\nfunction createNodes(root, path) {\n let node = null;\n for (const { name, index } of path) {\n for (let i = 0, ii = !isFinite(index) ? 0 : index; i <= ii; i++) {\n const nsId = root[$namespaceId] === NS_DATASETS ? -1 : root[$namespaceId];\n node = new XmlObject(nsId, name);\n root[$appendChild](node);\n }\n\n root = node;\n }\n return node;\n}\n\nfunction createDataNode(root, container, expr) {\n const parsed = parseExpression(expr);\n if (!parsed) {\n return null;\n }\n\n if (parsed.some(x => x.operator === operators.dotDot)) {\n return null;\n }\n\n const fn = shortcuts.get(parsed[0].name);\n let i = 0;\n if (fn) {\n root = fn(root, container);\n i = 1;\n } else {\n root = container || root;\n }\n\n for (let ii = parsed.length; i < ii; i++) {\n const { name, operator, index } = parsed[i];\n if (!isFinite(index)) {\n parsed[i].index = 0;\n return createNodes(root, parsed.slice(i));\n }\n\n let children;\n switch (operator) {\n case operators.dot:\n children = root[$getChildrenByName](name, false);\n break;\n case operators.dotDot:\n children = root[$getChildrenByName](name, true);\n break;\n case operators.dotHash:\n children = root[$getChildrenByClass](name);\n if (children instanceof XFAObjectArray) {\n children = children.children;\n } else {\n children = [children];\n }\n break;\n default:\n break;\n }\n\n if (children.length === 0) {\n return createNodes(root, parsed.slice(i));\n }\n\n if (index < children.length) {\n const child = children[index];\n if (!(child instanceof XFAObject)) {\n warn(`XFA - Cannot create a node.`);\n return null;\n }\n root = child;\n } else {\n parsed[i].index = index - children.length;\n return createNodes(root, parsed.slice(i));\n }\n }\n return null;\n}\n\nexport { createDataNode, searchNode };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $appendChild,\n $clone,\n $consumed,\n $content,\n $data,\n $finalize,\n $getAttributeIt,\n $getChildren,\n $getDataValue,\n $getParent,\n $getRealChildrenByNameIt,\n $hasSettableValue,\n $indexOf,\n $insertAt,\n $isBindable,\n $isDataValue,\n $isDescendent,\n $namespaceId,\n $nodeName,\n $removeChild,\n $setValue,\n $text,\n XFAAttribute,\n XFAObjectArray,\n XmlObject,\n} from \"./xfa_object.js\";\nimport { BindItems, Field, Items, SetProperty, Text } from \"./template.js\";\nimport { createDataNode, searchNode } from \"./som.js\";\nimport { NamespaceIds } from \"./namespaces.js\";\nimport { warn } from \"../../shared/util.js\";\n\nconst NS_DATASETS = NamespaceIds.datasets.id;\n\nfunction createText(content) {\n const node = new Text({});\n node[$content] = content;\n return node;\n}\n\nclass Binder {\n constructor(root) {\n this.root = root;\n this.datasets = root.datasets;\n if (root.datasets && root.datasets.data) {\n this.data = root.datasets.data;\n } else {\n this.data = new XmlObject(NamespaceIds.datasets.id, \"data\");\n }\n this.emptyMerge = this.data[$getChildren]().length === 0;\n\n this.root.form = this.form = root.template[$clone]();\n }\n\n _isConsumeData() {\n return !this.emptyMerge && this._mergeMode;\n }\n\n _isMatchTemplate() {\n return !this._isConsumeData();\n }\n\n bind() {\n this._bindElement(this.form, this.data);\n return this.form;\n }\n\n getData() {\n return this.data;\n }\n\n _bindValue(formNode, data, picture) {\n // Nodes must have the same \"type\": container or value.\n // Here we make the link between form node and\n // data node (through $data property): we'll use it\n // to save form data.\n\n formNode[$data] = data;\n if (formNode[$hasSettableValue]()) {\n if (data[$isDataValue]()) {\n const value = data[$getDataValue]();\n // TODO: use picture.\n formNode[$setValue](createText(value));\n } else if (\n formNode instanceof Field &&\n formNode.ui &&\n formNode.ui.choiceList &&\n formNode.ui.choiceList.open === \"multiSelect\"\n ) {\n const value = data[$getChildren]()\n .map(child => child[$content].trim())\n .join(\"\\n\");\n formNode[$setValue](createText(value));\n } else if (this._isConsumeData()) {\n warn(`XFA - Nodes haven't the same type.`);\n }\n } else if (!data[$isDataValue]() || this._isMatchTemplate()) {\n this._bindElement(formNode, data);\n } else {\n warn(`XFA - Nodes haven't the same type.`);\n }\n }\n\n _findDataByNameToConsume(name, isValue, dataNode, global) {\n if (!name) {\n return null;\n }\n\n // Firstly, we try to find a node with the given name:\n // - in dataNode;\n // - if not found, then in parent;\n // - and if not in found, then in grand-parent.\n let generator, match;\n for (let i = 0; i < 3; i++) {\n generator = dataNode[$getRealChildrenByNameIt](\n name,\n /* allTransparent = */ false,\n /* skipConsumed = */ true\n );\n // Try to find a match of the same kind.\n while (true) {\n match = generator.next().value;\n if (!match) {\n break;\n }\n\n if (isValue === match[$isDataValue]()) {\n return match;\n }\n }\n if (\n dataNode[$namespaceId] === NamespaceIds.datasets.id &&\n dataNode[$nodeName] === \"data\"\n ) {\n break;\n }\n dataNode = dataNode[$getParent]();\n }\n\n if (!global) {\n return null;\n }\n\n // Secondly, if global try to find it just under the root of datasets\n // (which is the location of global variables).\n generator = this.data[$getRealChildrenByNameIt](\n name,\n /* allTransparent = */ true,\n /* skipConsumed = */ false\n );\n\n match = generator.next().value;\n if (match) {\n return match;\n }\n\n // Thirdly, try to find it in attributes.\n generator = this.data[$getAttributeIt](name, /* skipConsumed = */ true);\n match = generator.next().value;\n if (match && match[$isDataValue]()) {\n return match;\n }\n\n return null;\n }\n\n _setProperties(formNode, dataNode) {\n // For example:\n // \n // \n // \n // \n // \n\n if (!formNode.hasOwnProperty(\"setProperty\")) {\n return;\n }\n\n for (const { ref, target, connection } of formNode.setProperty.children) {\n if (connection) {\n // TODO: evaluate if we should implement this feature.\n // Skip for security reasons.\n continue;\n }\n if (!ref) {\n continue;\n }\n\n const nodes = searchNode(\n this.root,\n dataNode,\n ref,\n false /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (!nodes) {\n warn(`XFA - Invalid reference: ${ref}.`);\n continue;\n }\n const [node] = nodes;\n\n if (!node[$isDescendent](this.data)) {\n warn(`XFA - Invalid node: must be a data node.`);\n continue;\n }\n\n const targetNodes = searchNode(\n this.root,\n formNode,\n target,\n false /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (!targetNodes) {\n warn(`XFA - Invalid target: ${target}.`);\n continue;\n }\n const [targetNode] = targetNodes;\n\n if (!targetNode[$isDescendent](formNode)) {\n warn(`XFA - Invalid target: must be a property or subproperty.`);\n continue;\n }\n\n const targetParent = targetNode[$getParent]();\n if (\n targetNode instanceof SetProperty ||\n targetParent instanceof SetProperty\n ) {\n warn(\n `XFA - Invalid target: cannot be a setProperty or one of its properties.`\n );\n continue;\n }\n\n if (\n targetNode instanceof BindItems ||\n targetParent instanceof BindItems\n ) {\n warn(\n `XFA - Invalid target: cannot be a bindItems or one of its properties.`\n );\n continue;\n }\n\n const content = node[$text]();\n const name = targetNode[$nodeName];\n\n if (targetNode instanceof XFAAttribute) {\n const attrs = Object.create(null);\n attrs[name] = content;\n const obj = Reflect.construct(\n Object.getPrototypeOf(targetParent).constructor,\n [attrs]\n );\n targetParent[name] = obj[name];\n continue;\n }\n\n if (!targetNode.hasOwnProperty($content)) {\n warn(`XFA - Invalid node to use in setProperty`);\n continue;\n }\n\n targetNode[$data] = node;\n targetNode[$content] = content;\n targetNode[$finalize]();\n }\n }\n\n _bindItems(formNode, dataNode) {\n // For example:\n // \n // \n // \n // \n\n if (\n !formNode.hasOwnProperty(\"items\") ||\n !formNode.hasOwnProperty(\"bindItems\") ||\n formNode.bindItems.isEmpty()\n ) {\n return;\n }\n\n for (const item of formNode.items.children) {\n formNode[$removeChild](item);\n }\n\n formNode.items.clear();\n\n const labels = new Items({});\n const values = new Items({});\n\n formNode[$appendChild](labels);\n formNode.items.push(labels);\n\n formNode[$appendChild](values);\n formNode.items.push(values);\n\n for (const { ref, labelRef, valueRef, connection } of formNode.bindItems\n .children) {\n if (connection) {\n // TODO: evaluate if we should implement this feature.\n // Skip for security reasons.\n continue;\n }\n if (!ref) {\n continue;\n }\n\n const nodes = searchNode(\n this.root,\n dataNode,\n ref,\n false /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (!nodes) {\n warn(`XFA - Invalid reference: ${ref}.`);\n continue;\n }\n for (const node of nodes) {\n if (!node[$isDescendent](this.datasets)) {\n warn(`XFA - Invalid ref (${ref}): must be a datasets child.`);\n continue;\n }\n\n const labelNodes = searchNode(\n this.root,\n node,\n labelRef,\n true /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (!labelNodes) {\n warn(`XFA - Invalid label: ${labelRef}.`);\n continue;\n }\n const [labelNode] = labelNodes;\n\n if (!labelNode[$isDescendent](this.datasets)) {\n warn(`XFA - Invalid label: must be a datasets child.`);\n continue;\n }\n\n const valueNodes = searchNode(\n this.root,\n node,\n valueRef,\n true /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (!valueNodes) {\n warn(`XFA - Invalid value: ${valueRef}.`);\n continue;\n }\n const [valueNode] = valueNodes;\n\n if (!valueNode[$isDescendent](this.datasets)) {\n warn(`XFA - Invalid value: must be a datasets child.`);\n continue;\n }\n\n const label = createText(labelNode[$text]());\n const value = createText(valueNode[$text]());\n\n labels[$appendChild](label);\n labels.text.push(label);\n\n values[$appendChild](value);\n values.text.push(value);\n }\n }\n }\n\n _bindOccurrences(formNode, matches, picture) {\n // Insert nodes which are not in the template but reflect\n // what we've in data tree.\n\n let baseClone;\n if (matches.length > 1) {\n // Clone before binding to avoid bad state.\n baseClone = formNode[$clone]();\n baseClone[$removeChild](baseClone.occur);\n baseClone.occur = null;\n }\n\n this._bindValue(formNode, matches[0], picture);\n this._setProperties(formNode, matches[0]);\n this._bindItems(formNode, matches[0]);\n\n if (matches.length === 1) {\n return;\n }\n\n const parent = formNode[$getParent]();\n const name = formNode[$nodeName];\n const pos = parent[$indexOf](formNode);\n\n for (let i = 1, ii = matches.length; i < ii; i++) {\n const match = matches[i];\n const clone = baseClone[$clone]();\n parent[name].push(clone);\n parent[$insertAt](pos + i, clone);\n\n this._bindValue(clone, match, picture);\n this._setProperties(clone, match);\n this._bindItems(clone, match);\n }\n }\n\n _createOccurrences(formNode) {\n if (!this.emptyMerge) {\n return;\n }\n\n const { occur } = formNode;\n if (!occur || occur.initial <= 1) {\n return;\n }\n\n const parent = formNode[$getParent]();\n const name = formNode[$nodeName];\n\n if (!(parent[name] instanceof XFAObjectArray)) {\n return;\n }\n\n let currentNumber;\n if (formNode.name) {\n currentNumber = parent[name].children.filter(\n e => e.name === formNode.name\n ).length;\n } else {\n currentNumber = parent[name].children.length;\n }\n\n const pos = parent[$indexOf](formNode) + 1;\n const ii = occur.initial - currentNumber;\n if (ii) {\n const nodeClone = formNode[$clone]();\n nodeClone[$removeChild](nodeClone.occur);\n nodeClone.occur = null;\n parent[name].push(nodeClone);\n parent[$insertAt](pos, nodeClone);\n\n for (let i = 1; i < ii; i++) {\n const clone = nodeClone[$clone]();\n parent[name].push(clone);\n parent[$insertAt](pos + i, clone);\n }\n }\n }\n\n _getOccurInfo(formNode) {\n const { name, occur } = formNode;\n if (!occur || !name) {\n return [1, 1];\n }\n const max = occur.max === -1 ? Infinity : occur.max;\n return [occur.min, max];\n }\n\n _setAndBind(formNode, dataNode) {\n this._setProperties(formNode, dataNode);\n this._bindItems(formNode, dataNode);\n this._bindElement(formNode, dataNode);\n }\n\n _bindElement(formNode, dataNode) {\n // Some nodes can be useless because min=0 so remove them\n // after the loop to avoid bad things.\n\n const uselessNodes = [];\n\n this._createOccurrences(formNode);\n\n for (const child of formNode[$getChildren]()) {\n if (child[$data]) {\n // Already bound.\n continue;\n }\n\n if (this._mergeMode === undefined && child[$nodeName] === \"subform\") {\n this._mergeMode = child.mergeMode === \"consumeData\";\n\n // XFA specs p. 182:\n // The highest-level subform and the data node representing\n // the current record are special; they are always\n // bound even if their names don't match.\n const dataChildren = dataNode[$getChildren]();\n if (dataChildren.length > 0) {\n this._bindOccurrences(child, [dataChildren[0]], null);\n } else if (this.emptyMerge) {\n const nsId =\n dataNode[$namespaceId] === NS_DATASETS\n ? -1\n : dataNode[$namespaceId];\n const dataChild = (child[$data] = new XmlObject(\n nsId,\n child.name || \"root\"\n ));\n dataNode[$appendChild](dataChild);\n this._bindElement(child, dataChild);\n }\n continue;\n }\n\n if (!child[$isBindable]()) {\n // The node cannot contain some new data so there is nothing\n // to create in the data node.\n continue;\n }\n\n let global = false;\n let picture = null;\n let ref = null;\n let match = null;\n if (child.bind) {\n switch (child.bind.match) {\n case \"none\":\n this._setAndBind(child, dataNode);\n continue;\n case \"global\":\n global = true;\n break;\n case \"dataRef\":\n if (!child.bind.ref) {\n warn(`XFA - ref is empty in node ${child[$nodeName]}.`);\n this._setAndBind(child, dataNode);\n continue;\n }\n ref = child.bind.ref;\n break;\n default:\n break;\n }\n if (child.bind.picture) {\n picture = child.bind.picture[$content];\n }\n }\n\n const [min, max] = this._getOccurInfo(child);\n\n if (ref) {\n // Don't use a cache for searching: nodes can change during binding.\n match = searchNode(\n this.root,\n dataNode,\n ref,\n true /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (match === null) {\n // Nothing found: we must create some nodes in data in order\n // to have something to match with the given expression.\n // See http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.364.2157&rep=rep1&type=pdf#page=199\n match = createDataNode(this.data, dataNode, ref);\n if (!match) {\n // For example if the node contains a .(...) then it isn't\n // findable.\n // TODO: remove this when .(...) is implemented.\n continue;\n }\n if (this._isConsumeData()) {\n match[$consumed] = true;\n }\n\n // Don't bind the value in newly created node because it's empty.\n this._setAndBind(child, match);\n continue;\n } else {\n if (this._isConsumeData()) {\n // Filter out consumed nodes.\n match = match.filter(node => !node[$consumed]);\n }\n if (match.length > max) {\n match = match.slice(0, max);\n } else if (match.length === 0) {\n match = null;\n }\n if (match && this._isConsumeData()) {\n match.forEach(node => {\n node[$consumed] = true;\n });\n }\n }\n } else {\n if (!child.name) {\n this._setAndBind(child, dataNode);\n continue;\n }\n if (this._isConsumeData()) {\n // In consumeData mode, search for the next node with the given name.\n // occurs.max gives us the max number of node to match.\n const matches = [];\n while (matches.length < max) {\n const found = this._findDataByNameToConsume(\n child.name,\n child[$hasSettableValue](),\n dataNode,\n global\n );\n\n if (!found) {\n break;\n }\n found[$consumed] = true;\n matches.push(found);\n }\n match = matches.length > 0 ? matches : null;\n } else {\n // If we've an empty merge, there are no reason\n // to make multiple bind so skip consumed nodes.\n match = dataNode[$getRealChildrenByNameIt](\n child.name,\n /* allTransparent = */ false,\n /* skipConsumed = */ this.emptyMerge\n ).next().value;\n if (!match) {\n // If there is no match (no data) and `min === 0` then\n // the container is entirely excluded.\n // https://www.pdfa.org/norm-refs/XFA-3_3.pdf#G12.1428332\n if (min === 0) {\n uselessNodes.push(child);\n continue;\n }\n // We're in matchTemplate mode so create a node in data to reflect\n // what we've in template.\n const nsId =\n dataNode[$namespaceId] === NS_DATASETS\n ? -1\n : dataNode[$namespaceId];\n match = child[$data] = new XmlObject(nsId, child.name);\n if (this.emptyMerge) {\n match[$consumed] = true;\n }\n dataNode[$appendChild](match);\n\n // Don't bind the value in newly created node because it's empty.\n this._setAndBind(child, match);\n continue;\n }\n if (this.emptyMerge) {\n match[$consumed] = true;\n }\n match = [match];\n }\n }\n\n if (match) {\n this._bindOccurrences(child, match, picture);\n } else if (min > 0) {\n this._setAndBind(child, dataNode);\n } else {\n uselessNodes.push(child);\n }\n }\n\n uselessNodes.forEach(node => node[$getParent]()[$removeChild](node));\n }\n}\n\nexport { Binder };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $acceptWhitespace,\n $addHTML,\n $appendChild,\n $childrenToHTML,\n $clean,\n $cleanPage,\n $content,\n $data,\n $extra,\n $finalize,\n $flushHTML,\n $getAvailableSpace,\n $getChildren,\n $getContainedChildren,\n $getExtra,\n $getNextPage,\n $getParent,\n $getSubformParent,\n $getTemplateRoot,\n $globalData,\n $hasSettableValue,\n $ids,\n $isBindable,\n $isCDATAXml,\n $isSplittable,\n $isThereMoreWidth,\n $isTransparent,\n $isUsable,\n $namespaceId,\n $nodeName,\n $onChild,\n $onText,\n $popPara,\n $pushPara,\n $removeChild,\n $searchNode,\n $setSetAttributes,\n $setValue,\n $tabIndex,\n $text,\n $toHTML,\n $toPages,\n $toStyle,\n $uid,\n ContentObject,\n Option01,\n OptionObject,\n StringObject,\n XFAObject,\n XFAObjectArray,\n} from \"./xfa_object.js\";\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n addHTML,\n checkDimensions,\n flushHTML,\n getAvailableSpace,\n} from \"./layout.js\";\nimport {\n computeBbox,\n createWrapper,\n fixDimensions,\n fixTextIndent,\n fixURL,\n isPrintOnly,\n layoutClass,\n layoutNode,\n measureToString,\n setAccess,\n setFontFamily,\n setMinMaxDimensions,\n setPara,\n toStyle,\n} from \"./html_utils.js\";\nimport {\n getBBox,\n getColor,\n getFloat,\n getInteger,\n getKeyword,\n getMeasurement,\n getRatio,\n getRelevant,\n getStringOption,\n HTMLResult,\n} from \"./utils.js\";\nimport { stringToBytes, Util, warn } from \"../../shared/util.js\";\nimport { getMetrics } from \"./fonts.js\";\nimport { recoverJsURL } from \"../core_utils.js\";\nimport { searchNode } from \"./som.js\";\n\nconst TEMPLATE_NS_ID = NamespaceIds.template.id;\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\n\n// In case of lr-tb (and rl-tb) layouts, we try:\n// - to put the container at the end of a line\n// - and if it fails we try on the next line.\n// If both tries failed then it's up to the parent\n// to handle the situation.\nconst MAX_ATTEMPTS_FOR_LRTB_LAYOUT = 2;\n\n// It's possible to have a bug in the layout and so as\n// a consequence we could loop for ever in Template::toHTML()\n// so in order to avoid that (and avoid a OOM crash) we break\n// the loop after having MAX_EMPTY_PAGES empty pages.\nconst MAX_EMPTY_PAGES = 3;\n\n// Default value to start with for the tabIndex property.\nconst DEFAULT_TAB_INDEX = 5000;\n\nconst HEADING_PATTERN = /^H(\\d+)$/;\n\n// Allowed mime types for images\nconst MIMES = new Set([\n \"image/gif\",\n \"image/jpeg\",\n \"image/jpg\",\n \"image/pjpeg\",\n \"image/png\",\n \"image/apng\",\n \"image/x-png\",\n \"image/bmp\",\n \"image/x-ms-bmp\",\n \"image/tiff\",\n \"image/tif\",\n \"application/octet-stream\",\n]);\n\nconst IMAGES_HEADERS = [\n [[0x42, 0x4d], \"image/bmp\"],\n [[0xff, 0xd8, 0xff], \"image/jpeg\"],\n [[0x49, 0x49, 0x2a, 0x00], \"image/tiff\"],\n [[0x4d, 0x4d, 0x00, 0x2a], \"image/tiff\"],\n [[0x47, 0x49, 0x46, 0x38, 0x39, 0x61], \"image/gif\"],\n [[0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a], \"image/png\"],\n];\n\nfunction getBorderDims(node) {\n if (!node || !node.border) {\n return { w: 0, h: 0 };\n }\n\n const borderExtra = node.border[$getExtra]();\n if (!borderExtra) {\n return { w: 0, h: 0 };\n }\n\n return {\n w:\n borderExtra.widths[0] +\n borderExtra.widths[2] +\n borderExtra.insets[0] +\n borderExtra.insets[2],\n h:\n borderExtra.widths[1] +\n borderExtra.widths[3] +\n borderExtra.insets[1] +\n borderExtra.insets[3],\n };\n}\n\nfunction hasMargin(node) {\n return (\n node.margin &&\n (node.margin.topInset ||\n node.margin.rightInset ||\n node.margin.bottomInset ||\n node.margin.leftInset)\n );\n}\n\nfunction _setValue(templateNode, value) {\n if (!templateNode.value) {\n const nodeValue = new Value({});\n templateNode[$appendChild](nodeValue);\n templateNode.value = nodeValue;\n }\n templateNode.value[$setValue](value);\n}\n\nfunction* getContainedChildren(node) {\n for (const child of node[$getChildren]()) {\n if (child instanceof SubformSet) {\n yield* child[$getContainedChildren]();\n continue;\n }\n yield child;\n }\n}\n\nfunction setTabIndex(node) {\n while (node) {\n if (!node.traversal) {\n node[$tabIndex] = node[$getParent]()[$tabIndex];\n return;\n }\n\n if (node[$tabIndex]) {\n return;\n }\n\n let next = null;\n for (const child of node.traversal[$getChildren]()) {\n if (child.operation === \"next\") {\n next = child;\n break;\n }\n }\n\n if (!next || !next.ref) {\n node[$tabIndex] = node[$getParent]()[$tabIndex];\n return;\n }\n\n const root = node[$getTemplateRoot]();\n node[$tabIndex] = ++root[$tabIndex];\n\n const ref = root[$searchNode](next.ref, node);\n if (!ref) {\n return;\n }\n\n node = ref[0];\n }\n}\n\nfunction applyAssist(obj, attributes) {\n const assist = obj.assist;\n if (assist) {\n const assistTitle = assist[$toHTML]();\n if (assistTitle) {\n attributes.title = assistTitle;\n }\n const role = assist.role;\n const match = role.match(HEADING_PATTERN);\n if (match) {\n const ariaRole = \"heading\";\n const ariaLevel = match[1];\n attributes.role = ariaRole;\n attributes[\"aria-level\"] = ariaLevel;\n }\n }\n // XXX: We could end up in a situation where the obj has a heading role and\n // is also a table. For now prioritize the table role.\n if (obj.layout === \"table\") {\n attributes.role = \"table\";\n } else if (obj.layout === \"row\") {\n attributes.role = \"row\";\n } else {\n const parent = obj[$getParent]();\n if (parent.layout === \"row\") {\n if (parent.assist && parent.assist.role === \"TH\") {\n attributes.role = \"columnheader\";\n } else {\n attributes.role = \"cell\";\n }\n }\n }\n}\n\nfunction ariaLabel(obj) {\n if (!obj.assist) {\n return null;\n }\n const assist = obj.assist;\n if (assist.speak && assist.speak[$content] !== \"\") {\n return assist.speak[$content];\n }\n if (assist.toolTip) {\n return assist.toolTip[$content];\n }\n // TODO: support finding the related caption element. See xfa_bug1718037.pdf\n // for an example.\n return null;\n}\n\nfunction valueToHtml(value) {\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n class: [\"xfaRich\"],\n style: Object.create(null),\n },\n children: [\n {\n name: \"span\",\n attributes: {\n style: Object.create(null),\n },\n value,\n },\n ],\n });\n}\n\nfunction setFirstUnsplittable(node) {\n const root = node[$getTemplateRoot]();\n if (root[$extra].firstUnsplittable === null) {\n root[$extra].firstUnsplittable = node;\n root[$extra].noLayoutFailure = true;\n }\n}\n\nfunction unsetFirstUnsplittable(node) {\n const root = node[$getTemplateRoot]();\n if (root[$extra].firstUnsplittable === node) {\n root[$extra].noLayoutFailure = false;\n }\n}\n\nfunction handleBreak(node) {\n if (node[$extra]) {\n return false;\n }\n\n node[$extra] = Object.create(null);\n\n if (node.targetType === \"auto\") {\n return false;\n }\n\n const root = node[$getTemplateRoot]();\n let target = null;\n if (node.target) {\n target = root[$searchNode](node.target, node[$getParent]());\n if (!target) {\n return false;\n }\n target = target[0];\n }\n\n const { currentPageArea, currentContentArea } = root[$extra];\n\n if (node.targetType === \"pageArea\") {\n if (!(target instanceof PageArea)) {\n target = null;\n }\n\n if (node.startNew) {\n node[$extra].target = target || currentPageArea;\n return true;\n } else if (target && target !== currentPageArea) {\n node[$extra].target = target;\n return true;\n }\n\n return false;\n }\n\n if (!(target instanceof ContentArea)) {\n target = null;\n }\n\n const pageArea = target && target[$getParent]();\n\n let index;\n let nextPageArea = pageArea;\n if (node.startNew) {\n // startNew === 1 so we must create a new container (pageArea or\n // contentArea).\n if (target) {\n const contentAreas = pageArea.contentArea.children;\n const indexForCurrent = contentAreas.indexOf(currentContentArea);\n const indexForTarget = contentAreas.indexOf(target);\n if (indexForCurrent !== -1 && indexForCurrent < indexForTarget) {\n // The next container is after the current container so\n // we can stay on the same page.\n nextPageArea = null;\n }\n index = indexForTarget - 1;\n } else {\n index = currentPageArea.contentArea.children.indexOf(currentContentArea);\n }\n } else if (target && target !== currentContentArea) {\n const contentAreas = pageArea.contentArea.children;\n index = contentAreas.indexOf(target) - 1;\n nextPageArea = pageArea === currentPageArea ? null : pageArea;\n } else {\n return false;\n }\n\n node[$extra].target = nextPageArea;\n node[$extra].index = index;\n return true;\n}\n\nfunction handleOverflow(node, extraNode, space) {\n const root = node[$getTemplateRoot]();\n const saved = root[$extra].noLayoutFailure;\n const savedMethod = extraNode[$getSubformParent];\n\n // Replace $getSubformParent to emulate that extraNode is just\n // under node.\n extraNode[$getSubformParent] = () => node;\n\n root[$extra].noLayoutFailure = true;\n const res = extraNode[$toHTML](space);\n node[$addHTML](res.html, res.bbox);\n root[$extra].noLayoutFailure = saved;\n extraNode[$getSubformParent] = savedMethod;\n}\n\nclass AppearanceFilter extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"appearanceFilter\");\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Arc extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"arc\", /* hasChildren = */ true);\n this.circular = getInteger({\n data: attributes.circular,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.hand = getStringOption(attributes.hand, [\"even\", \"left\", \"right\"]);\n this.id = attributes.id || \"\";\n this.startAngle = getFloat({\n data: attributes.startAngle,\n defaultValue: 0,\n validate: x => true,\n });\n this.sweepAngle = getFloat({\n data: attributes.sweepAngle,\n defaultValue: 360,\n validate: x => true,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.edge = null;\n this.fill = null;\n }\n\n [$toHTML]() {\n const edge = this.edge ? this.edge : new Edge({});\n const edgeStyle = edge[$toStyle]();\n const style = Object.create(null);\n if (this.fill && this.fill.presence === \"visible\") {\n Object.assign(style, this.fill[$toStyle]());\n } else {\n style.fill = \"transparent\";\n }\n style.strokeWidth = measureToString(\n edge.presence === \"visible\" ? edge.thickness : 0\n );\n style.stroke = edgeStyle.color;\n let arc;\n const attributes = {\n xmlns: SVG_NS,\n style: {\n width: \"100%\",\n height: \"100%\",\n overflow: \"visible\",\n },\n };\n\n if (this.sweepAngle === 360) {\n arc = {\n name: \"ellipse\",\n attributes: {\n xmlns: SVG_NS,\n cx: \"50%\",\n cy: \"50%\",\n rx: \"50%\",\n ry: \"50%\",\n style,\n },\n };\n } else {\n const startAngle = (this.startAngle * Math.PI) / 180;\n const sweepAngle = (this.sweepAngle * Math.PI) / 180;\n const largeArc = this.sweepAngle > 180 ? 1 : 0;\n const [x1, y1, x2, y2] = [\n 50 * (1 + Math.cos(startAngle)),\n 50 * (1 - Math.sin(startAngle)),\n 50 * (1 + Math.cos(startAngle + sweepAngle)),\n 50 * (1 - Math.sin(startAngle + sweepAngle)),\n ];\n\n arc = {\n name: \"path\",\n attributes: {\n xmlns: SVG_NS,\n d: `M ${x1} ${y1} A 50 50 0 ${largeArc} 0 ${x2} ${y2}`,\n vectorEffect: \"non-scaling-stroke\",\n style,\n },\n };\n\n Object.assign(attributes, {\n viewBox: \"0 0 100 100\",\n preserveAspectRatio: \"none\",\n });\n }\n\n const svg = {\n name: \"svg\",\n children: [arc],\n attributes,\n };\n\n const parent = this[$getParent]()[$getParent]();\n if (hasMargin(parent)) {\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n style: {\n display: \"inline\",\n width: \"100%\",\n height: \"100%\",\n },\n },\n children: [svg],\n });\n }\n\n svg.attributes.style.position = \"absolute\";\n return HTMLResult.success(svg);\n }\n}\n\nclass Area extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"area\", /* hasChildren = */ true);\n this.colSpan = getInteger({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: n => n >= 1 || n === -1,\n });\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.desc = null;\n this.extras = null;\n this.area = new XFAObjectArray();\n this.draw = new XFAObjectArray();\n this.exObject = new XFAObjectArray();\n this.exclGroup = new XFAObjectArray();\n this.field = new XFAObjectArray();\n this.subform = new XFAObjectArray();\n this.subformSet = new XFAObjectArray();\n }\n\n *[$getContainedChildren]() {\n // This function is overriden in order to fake that subforms under\n // this set are in fact under parent subform.\n yield* getContainedChildren(this);\n }\n\n [$isTransparent]() {\n return true;\n }\n\n [$isBindable]() {\n return true;\n }\n\n [$addHTML](html, bbox) {\n const [x, y, w, h] = bbox;\n this[$extra].width = Math.max(this[$extra].width, x + w);\n this[$extra].height = Math.max(this[$extra].height, y + h);\n\n this[$extra].children.push(html);\n }\n\n [$getAvailableSpace]() {\n return this[$extra].availableSpace;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n const style = toStyle(this, \"position\");\n const attributes = {\n style,\n id: this[$uid],\n class: [\"xfaArea\"],\n };\n\n if (isPrintOnly(this)) {\n attributes.class.push(\"xfaPrintOnly\");\n }\n\n if (this.name) {\n attributes.xfaName = this.name;\n }\n\n const children = [];\n this[$extra] = {\n children,\n width: 0,\n height: 0,\n availableSpace,\n };\n\n const result = this[$childrenToHTML]({\n filter: new Set([\n \"area\",\n \"draw\",\n \"field\",\n \"exclGroup\",\n \"subform\",\n \"subformSet\",\n ]),\n include: true,\n });\n\n if (!result.success) {\n if (result.isBreak()) {\n return result;\n }\n // Nothing to propose for the element which doesn't fit the\n // available space.\n delete this[$extra];\n return HTMLResult.FAILURE;\n }\n\n style.width = measureToString(this[$extra].width);\n style.height = measureToString(this[$extra].height);\n\n const html = {\n name: \"div\",\n attributes,\n children,\n };\n\n const bbox = [this.x, this.y, this[$extra].width, this[$extra].height];\n delete this[$extra];\n\n return HTMLResult.success(html, bbox);\n }\n}\n\nclass Assist extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"assist\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.role = attributes.role || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.speak = null;\n this.toolTip = null;\n }\n\n [$toHTML]() {\n return this.toolTip && this.toolTip[$content]\n ? this.toolTip[$content]\n : null;\n }\n}\n\nclass Barcode extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"barcode\", /* hasChildren = */ true);\n this.charEncoding = getKeyword({\n data: attributes.charEncoding\n ? attributes.charEncoding.toLowerCase()\n : \"\",\n defaultValue: \"\",\n validate: k =>\n [\n \"utf-8\",\n \"big-five\",\n \"fontspecific\",\n \"gbk\",\n \"gb-18030\",\n \"gb-2312\",\n \"ksc-5601\",\n \"none\",\n \"shift-jis\",\n \"ucs-2\",\n \"utf-16\",\n ].includes(k) || k.match(/iso-8859-\\d{2}/),\n });\n this.checksum = getStringOption(attributes.checksum, [\n \"none\",\n \"1mod10\",\n \"1mod10_1mod11\",\n \"2mod10\",\n \"auto\",\n ]);\n this.dataColumnCount = getInteger({\n data: attributes.dataColumnCount,\n defaultValue: -1,\n validate: x => x >= 0,\n });\n this.dataLength = getInteger({\n data: attributes.dataLength,\n defaultValue: -1,\n validate: x => x >= 0,\n });\n this.dataPrep = getStringOption(attributes.dataPrep, [\n \"none\",\n \"flateCompress\",\n ]);\n this.dataRowCount = getInteger({\n data: attributes.dataRowCount,\n defaultValue: -1,\n validate: x => x >= 0,\n });\n this.endChar = attributes.endChar || \"\";\n this.errorCorrectionLevel = getInteger({\n data: attributes.errorCorrectionLevel,\n defaultValue: -1,\n validate: x => x >= 0 && x <= 8,\n });\n this.id = attributes.id || \"\";\n this.moduleHeight = getMeasurement(attributes.moduleHeight, \"5mm\");\n this.moduleWidth = getMeasurement(attributes.moduleWidth, \"0.25mm\");\n this.printCheckDigit = getInteger({\n data: attributes.printCheckDigit,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.rowColumnRatio = getRatio(attributes.rowColumnRatio);\n this.startChar = attributes.startChar || \"\";\n this.textLocation = getStringOption(attributes.textLocation, [\n \"below\",\n \"above\",\n \"aboveEmbedded\",\n \"belowEmbedded\",\n \"none\",\n ]);\n this.truncate = getInteger({\n data: attributes.truncate,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.type = getStringOption(\n attributes.type ? attributes.type.toLowerCase() : \"\",\n [\n \"aztec\",\n \"codabar\",\n \"code2of5industrial\",\n \"code2of5interleaved\",\n \"code2of5matrix\",\n \"code2of5standard\",\n \"code3of9\",\n \"code3of9extended\",\n \"code11\",\n \"code49\",\n \"code93\",\n \"code128\",\n \"code128a\",\n \"code128b\",\n \"code128c\",\n \"code128sscc\",\n \"datamatrix\",\n \"ean8\",\n \"ean8add2\",\n \"ean8add5\",\n \"ean13\",\n \"ean13add2\",\n \"ean13add5\",\n \"ean13pwcd\",\n \"fim\",\n \"logmars\",\n \"maxicode\",\n \"msi\",\n \"pdf417\",\n \"pdf417macro\",\n \"plessey\",\n \"postauscust2\",\n \"postauscust3\",\n \"postausreplypaid\",\n \"postausstandard\",\n \"postukrm4scc\",\n \"postusdpbc\",\n \"postusimb\",\n \"postusstandard\",\n \"postus5zip\",\n \"qrcode\",\n \"rfid\",\n \"rss14\",\n \"rss14expanded\",\n \"rss14limited\",\n \"rss14stacked\",\n \"rss14stackedomni\",\n \"rss14truncated\",\n \"telepen\",\n \"ucc128\",\n \"ucc128random\",\n \"ucc128sscc\",\n \"upca\",\n \"upcaadd2\",\n \"upcaadd5\",\n \"upcapwcd\",\n \"upce\",\n \"upceadd2\",\n \"upceadd5\",\n \"upcean2\",\n \"upcean5\",\n \"upsmaxicode\",\n ]\n );\n this.upsMode = getStringOption(attributes.upsMode, [\n \"usCarrier\",\n \"internationalCarrier\",\n \"secureSymbol\",\n \"standardSymbol\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.wideNarrowRatio = getRatio(attributes.wideNarrowRatio);\n this.encrypt = null;\n this.extras = null;\n }\n}\n\nclass Bind extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"bind\", /* hasChildren = */ true);\n this.match = getStringOption(attributes.match, [\n \"once\",\n \"dataRef\",\n \"global\",\n \"none\",\n ]);\n this.ref = attributes.ref || \"\";\n this.picture = null;\n }\n}\n\nclass BindItems extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"bindItems\");\n this.connection = attributes.connection || \"\";\n this.labelRef = attributes.labelRef || \"\";\n this.ref = attributes.ref || \"\";\n this.valueRef = attributes.valueRef || \"\";\n }\n}\n\nclass Bookend extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"bookend\");\n this.id = attributes.id || \"\";\n this.leader = attributes.leader || \"\";\n this.trailer = attributes.trailer || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass BooleanElement extends Option01 {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"boolean\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(this[$content] === 1 ? \"1\" : \"0\");\n }\n}\n\nclass Border extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"border\", /* hasChildren = */ true);\n this.break = getStringOption(attributes.break, [\"close\", \"open\"]);\n this.hand = getStringOption(attributes.hand, [\"even\", \"left\", \"right\"]);\n this.id = attributes.id || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.corner = new XFAObjectArray(4);\n this.edge = new XFAObjectArray(4);\n this.extras = null;\n this.fill = null;\n this.margin = null;\n }\n\n [$getExtra]() {\n if (!this[$extra]) {\n const edges = this.edge.children.slice();\n if (edges.length < 4) {\n const defaultEdge = edges[edges.length - 1] || new Edge({});\n for (let i = edges.length; i < 4; i++) {\n edges.push(defaultEdge);\n }\n }\n\n const widths = edges.map(edge => edge.thickness);\n const insets = [0, 0, 0, 0];\n if (this.margin) {\n insets[0] = this.margin.topInset;\n insets[1] = this.margin.rightInset;\n insets[2] = this.margin.bottomInset;\n insets[3] = this.margin.leftInset;\n }\n this[$extra] = { widths, insets, edges };\n }\n return this[$extra];\n }\n\n [$toStyle]() {\n // TODO: incomplete (hand).\n const { edges } = this[$getExtra]();\n const edgeStyles = edges.map(node => {\n const style = node[$toStyle]();\n style.color = style.color || \"#000000\";\n return style;\n });\n\n const style = Object.create(null);\n if (this.margin) {\n Object.assign(style, this.margin[$toStyle]());\n }\n\n if (this.fill && this.fill.presence === \"visible\") {\n Object.assign(style, this.fill[$toStyle]());\n }\n\n if (this.corner.children.some(node => node.radius !== 0)) {\n const cornerStyles = this.corner.children.map(node => node[$toStyle]());\n if (cornerStyles.length === 2 || cornerStyles.length === 3) {\n const last = cornerStyles[cornerStyles.length - 1];\n for (let i = cornerStyles.length; i < 4; i++) {\n cornerStyles.push(last);\n }\n }\n\n style.borderRadius = cornerStyles.map(s => s.radius).join(\" \");\n }\n\n switch (this.presence) {\n case \"invisible\":\n case \"hidden\":\n style.borderStyle = \"\";\n break;\n case \"inactive\":\n style.borderStyle = \"none\";\n break;\n default:\n style.borderStyle = edgeStyles.map(s => s.style).join(\" \");\n break;\n }\n\n style.borderWidth = edgeStyles.map(s => s.width).join(\" \");\n style.borderColor = edgeStyles.map(s => s.color).join(\" \");\n\n return style;\n }\n}\n\nclass Break extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"break\", /* hasChildren = */ true);\n this.after = getStringOption(attributes.after, [\n \"auto\",\n \"contentArea\",\n \"pageArea\",\n \"pageEven\",\n \"pageOdd\",\n ]);\n this.afterTarget = attributes.afterTarget || \"\";\n this.before = getStringOption(attributes.before, [\n \"auto\",\n \"contentArea\",\n \"pageArea\",\n \"pageEven\",\n \"pageOdd\",\n ]);\n this.beforeTarget = attributes.beforeTarget || \"\";\n this.bookendLeader = attributes.bookendLeader || \"\";\n this.bookendTrailer = attributes.bookendTrailer || \"\";\n this.id = attributes.id || \"\";\n this.overflowLeader = attributes.overflowLeader || \"\";\n this.overflowTarget = attributes.overflowTarget || \"\";\n this.overflowTrailer = attributes.overflowTrailer || \"\";\n this.startNew = getInteger({\n data: attributes.startNew,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n}\n\nclass BreakAfter extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"breakAfter\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.leader = attributes.leader || \"\";\n this.startNew = getInteger({\n data: attributes.startNew,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.target = attributes.target || \"\";\n this.targetType = getStringOption(attributes.targetType, [\n \"auto\",\n \"contentArea\",\n \"pageArea\",\n ]);\n this.trailer = attributes.trailer || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.script = null;\n }\n}\n\nclass BreakBefore extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"breakBefore\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.leader = attributes.leader || \"\";\n this.startNew = getInteger({\n data: attributes.startNew,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.target = attributes.target || \"\";\n this.targetType = getStringOption(attributes.targetType, [\n \"auto\",\n \"contentArea\",\n \"pageArea\",\n ]);\n this.trailer = attributes.trailer || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.script = null;\n }\n\n [$toHTML](availableSpace) {\n this[$extra] = {};\n return HTMLResult.FAILURE;\n }\n}\n\nclass Button extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"button\", /* hasChildren = */ true);\n this.highlight = getStringOption(attributes.highlight, [\n \"inverted\",\n \"none\",\n \"outline\",\n \"push\",\n ]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: highlight.\n\n const parent = this[$getParent]();\n const grandpa = parent[$getParent]();\n const htmlButton = {\n name: \"button\",\n attributes: {\n id: this[$uid],\n class: [\"xfaButton\"],\n style: {},\n },\n children: [],\n };\n\n for (const event of grandpa.event.children) {\n // if (true) break;\n if (event.activity !== \"click\" || !event.script) {\n continue;\n }\n const jsURL = recoverJsURL(event.script[$content]);\n if (!jsURL) {\n continue;\n }\n const href = fixURL(jsURL.url);\n if (!href) {\n continue;\n }\n\n // we've an url so generate a
\n htmlButton.children.push({\n name: \"a\",\n attributes: {\n id: \"link\" + this[$uid],\n href,\n newWindow: jsURL.newWindow,\n class: [\"xfaLink\"],\n style: {},\n },\n children: [],\n });\n }\n\n return HTMLResult.success(htmlButton);\n }\n}\n\nclass Calculate extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"calculate\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.override = getStringOption(attributes.override, [\n \"disabled\",\n \"error\",\n \"ignore\",\n \"warning\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.message = null;\n this.script = null;\n }\n}\n\nclass Caption extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"caption\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.placement = getStringOption(attributes.placement, [\n \"left\",\n \"bottom\",\n \"inline\",\n \"right\",\n \"top\",\n ]);\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.reserve = Math.ceil(getMeasurement(attributes.reserve));\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.font = null;\n this.margin = null;\n this.para = null;\n this.value = null;\n }\n\n [$setValue](value) {\n _setValue(this, value);\n }\n\n [$getExtra](availableSpace) {\n if (!this[$extra]) {\n let { width, height } = availableSpace;\n switch (this.placement) {\n case \"left\":\n case \"right\":\n case \"inline\":\n width = this.reserve <= 0 ? width : this.reserve;\n break;\n case \"top\":\n case \"bottom\":\n height = this.reserve <= 0 ? height : this.reserve;\n break;\n }\n\n this[$extra] = layoutNode(this, { width, height });\n }\n return this[$extra];\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n if (!this.value) {\n return HTMLResult.EMPTY;\n }\n\n this[$pushPara]();\n const value = this.value[$toHTML](availableSpace).html;\n\n if (!value) {\n this[$popPara]();\n return HTMLResult.EMPTY;\n }\n\n const savedReserve = this.reserve;\n if (this.reserve <= 0) {\n const { w, h } = this[$getExtra](availableSpace);\n switch (this.placement) {\n case \"left\":\n case \"right\":\n case \"inline\":\n this.reserve = w;\n break;\n case \"top\":\n case \"bottom\":\n this.reserve = h;\n break;\n }\n }\n\n const children = [];\n if (typeof value === \"string\") {\n children.push({\n name: \"#text\",\n value,\n });\n } else {\n children.push(value);\n }\n\n const style = toStyle(this, \"font\", \"margin\", \"visibility\");\n switch (this.placement) {\n case \"left\":\n case \"right\":\n if (this.reserve > 0) {\n style.width = measureToString(this.reserve);\n }\n break;\n case \"top\":\n case \"bottom\":\n if (this.reserve > 0) {\n style.height = measureToString(this.reserve);\n }\n break;\n }\n\n setPara(this, null, value);\n this[$popPara]();\n\n this.reserve = savedReserve;\n\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n style,\n class: [\"xfaCaption\"],\n },\n children,\n });\n }\n}\n\nclass Certificate extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"certificate\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Certificates extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"certificates\", /* hasChildren = */ true);\n this.credentialServerPolicy = getStringOption(\n attributes.credentialServerPolicy,\n [\"optional\", \"required\"]\n );\n this.id = attributes.id || \"\";\n this.url = attributes.url || \"\";\n this.urlPolicy = attributes.urlPolicy || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.encryption = null;\n this.issuers = null;\n this.keyUsage = null;\n this.oids = null;\n this.signing = null;\n this.subjectDNs = null;\n }\n}\n\nclass CheckButton extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"checkButton\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.mark = getStringOption(attributes.mark, [\n \"default\",\n \"check\",\n \"circle\",\n \"cross\",\n \"diamond\",\n \"square\",\n \"star\",\n ]);\n this.shape = getStringOption(attributes.shape, [\"square\", \"round\"]);\n this.size = getMeasurement(attributes.size, \"10pt\");\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: border, shape and mark.\n\n const style = toStyle(\"margin\");\n const size = measureToString(this.size);\n\n style.width = style.height = size;\n\n let type;\n let className;\n let groupId;\n const field = this[$getParent]()[$getParent]();\n const items =\n (field.items.children.length &&\n field.items.children[0][$toHTML]().html) ||\n [];\n const exportedValue = {\n on: (items[0] !== undefined ? items[0] : \"on\").toString(),\n off: (items[1] !== undefined ? items[1] : \"off\").toString(),\n };\n\n const value = (field.value && field.value[$text]()) || \"off\";\n const checked = value === exportedValue.on || undefined;\n const container = field[$getSubformParent]();\n const fieldId = field[$uid];\n let dataId;\n\n if (container instanceof ExclGroup) {\n groupId = container[$uid];\n type = \"radio\";\n className = \"xfaRadio\";\n dataId = (container[$data] && container[$data][$uid]) || container[$uid];\n } else {\n type = \"checkbox\";\n className = \"xfaCheckbox\";\n dataId = (field[$data] && field[$data][$uid]) || field[$uid];\n }\n\n const input = {\n name: \"input\",\n attributes: {\n class: [className],\n style,\n fieldId,\n dataId,\n type,\n checked,\n xfaOn: exportedValue.on,\n xfaOff: exportedValue.off,\n \"aria-label\": ariaLabel(field),\n },\n };\n\n if (groupId) {\n input.attributes.name = groupId;\n }\n\n return HTMLResult.success({\n name: \"label\",\n attributes: {\n class: [\"xfaLabel\"],\n },\n children: [input],\n });\n }\n}\n\nclass ChoiceList extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"choiceList\", /* hasChildren = */ true);\n this.commitOn = getStringOption(attributes.commitOn, [\"select\", \"exit\"]);\n this.id = attributes.id || \"\";\n this.open = getStringOption(attributes.open, [\n \"userControl\",\n \"always\",\n \"multiSelect\",\n \"onEntry\",\n ]);\n this.textEntry = getInteger({\n data: attributes.textEntry,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n const style = toStyle(this, \"border\", \"margin\");\n const ui = this[$getParent]();\n const field = ui[$getParent]();\n const fontSize = (field.font && field.font.size) || 10;\n const optionStyle = {\n fontSize: `calc(${fontSize}px * var(--zoom-factor))`,\n };\n const children = [];\n\n if (field.items.children.length > 0) {\n const items = field.items;\n let displayedIndex = 0;\n let saveIndex = 0;\n if (items.children.length === 2) {\n displayedIndex = items.children[0].save;\n saveIndex = 1 - displayedIndex;\n }\n const displayed = items.children[displayedIndex][$toHTML]().html;\n const values = items.children[saveIndex][$toHTML]().html;\n\n let selected = false;\n const value = (field.value && field.value[$text]()) || \"\";\n for (let i = 0, ii = displayed.length; i < ii; i++) {\n const option = {\n name: \"option\",\n attributes: {\n value: values[i] || displayed[i],\n style: optionStyle,\n },\n value: displayed[i],\n };\n if (values[i] === value) {\n option.attributes.selected = selected = true;\n }\n children.push(option);\n }\n\n if (!selected) {\n children.splice(0, 0, {\n name: \"option\",\n attributes: {\n hidden: true,\n selected: true,\n },\n value: \" \",\n });\n }\n }\n\n const selectAttributes = {\n class: [\"xfaSelect\"],\n fieldId: field[$uid],\n dataId: (field[$data] && field[$data][$uid]) || field[$uid],\n style,\n \"aria-label\": ariaLabel(field),\n };\n\n if (this.open === \"multiSelect\") {\n selectAttributes.multiple = true;\n }\n\n return HTMLResult.success({\n name: \"label\",\n attributes: {\n class: [\"xfaLabel\"],\n },\n children: [\n {\n name: \"select\",\n children,\n attributes: selectAttributes,\n },\n ],\n });\n }\n}\n\nclass Color extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"color\", /* hasChildren = */ true);\n this.cSpace = getStringOption(attributes.cSpace, [\"SRGB\"]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.value = attributes.value ? getColor(attributes.value) : \"\";\n this.extras = null;\n }\n\n [$hasSettableValue]() {\n return false;\n }\n\n [$toStyle]() {\n return this.value\n ? Util.makeHexColor(this.value.r, this.value.g, this.value.b)\n : null;\n }\n}\n\nclass Comb extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"comb\");\n this.id = attributes.id || \"\";\n this.numberOfCells = getInteger({\n data: attributes.numberOfCells,\n defaultValue: 0,\n validate: x => x >= 0,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Connect extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"connect\", /* hasChildren = */ true);\n this.connection = attributes.connection || \"\";\n this.id = attributes.id || \"\";\n this.ref = attributes.ref || \"\";\n this.usage = getStringOption(attributes.usage, [\n \"exportAndImport\",\n \"exportOnly\",\n \"importOnly\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.picture = null;\n }\n}\n\nclass ContentArea extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"contentArea\", /* hasChildren = */ true);\n this.h = getMeasurement(attributes.h);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = getMeasurement(attributes.w);\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.desc = null;\n this.extras = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n const left = measureToString(this.x);\n const top = measureToString(this.y);\n\n const style = {\n left,\n top,\n width: measureToString(this.w),\n height: measureToString(this.h),\n };\n\n const classNames = [\"xfaContentarea\"];\n\n if (isPrintOnly(this)) {\n classNames.push(\"xfaPrintOnly\");\n }\n\n return HTMLResult.success({\n name: \"div\",\n children: [],\n attributes: {\n style,\n class: classNames,\n id: this[$uid],\n },\n });\n }\n}\n\nclass Corner extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"corner\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.inverted = getInteger({\n data: attributes.inverted,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.join = getStringOption(attributes.join, [\"square\", \"round\"]);\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.radius = getMeasurement(attributes.radius);\n this.stroke = getStringOption(attributes.stroke, [\n \"solid\",\n \"dashDot\",\n \"dashDotDot\",\n \"dashed\",\n \"dotted\",\n \"embossed\",\n \"etched\",\n \"lowered\",\n \"raised\",\n ]);\n this.thickness = getMeasurement(attributes.thickness, \"0.5pt\");\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle]() {\n // In using CSS it's only possible to handle radius\n // (at least with basic css).\n // Is there a real use (interest ?) of all these properties ?\n // Maybe it's possible to implement them using svg and border-image...\n // TODO: implement all the missing properties.\n const style = toStyle(this, \"visibility\");\n style.radius = measureToString(this.join === \"square\" ? 0 : this.radius);\n return style;\n }\n}\n\nclass DateElement extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"date\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n const date = this[$content].trim();\n this[$content] = date ? new Date(date) : null;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(this[$content] ? this[$content].toString() : \"\");\n }\n}\n\nclass DateTime extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"dateTime\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n const date = this[$content].trim();\n this[$content] = date ? new Date(date) : null;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(this[$content] ? this[$content].toString() : \"\");\n }\n}\n\nclass DateTimeEdit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"dateTimeEdit\", /* hasChildren = */ true);\n this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, [\n \"auto\",\n \"off\",\n \"on\",\n ]);\n this.id = attributes.id || \"\";\n this.picker = getStringOption(attributes.picker, [\"host\", \"none\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.comb = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n // When the picker is host we should use type=date for the input\n // but we need to put the buttons outside the text-field.\n const style = toStyle(this, \"border\", \"font\", \"margin\");\n const field = this[$getParent]()[$getParent]();\n const html = {\n name: \"input\",\n attributes: {\n type: \"text\",\n fieldId: field[$uid],\n dataId: (field[$data] && field[$data][$uid]) || field[$uid],\n class: [\"xfaTextfield\"],\n style,\n \"aria-label\": ariaLabel(field),\n },\n };\n\n return HTMLResult.success({\n name: \"label\",\n attributes: {\n class: [\"xfaLabel\"],\n },\n children: [html],\n });\n }\n}\n\nclass Decimal extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"decimal\");\n this.fracDigits = getInteger({\n data: attributes.fracDigits,\n defaultValue: 2,\n validate: x => true,\n });\n this.id = attributes.id || \"\";\n this.leadDigits = getInteger({\n data: attributes.leadDigits,\n defaultValue: -1,\n validate: x => true,\n });\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n const number = parseFloat(this[$content].trim());\n this[$content] = isNaN(number) ? null : number;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(\n this[$content] !== null ? this[$content].toString() : \"\"\n );\n }\n}\n\nclass DefaultUi extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"defaultUi\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n}\n\nclass Desc extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"desc\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.boolean = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.time = new XFAObjectArray();\n }\n}\n\nclass DigestMethod extends OptionObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"digestMethod\", [\n \"\",\n \"SHA1\",\n \"SHA256\",\n \"SHA512\",\n \"RIPEMD160\",\n ]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass DigestMethods extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"digestMethods\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.digestMethod = new XFAObjectArray();\n }\n}\n\nclass Draw extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"draw\", /* hasChildren = */ true);\n this.anchorType = getStringOption(attributes.anchorType, [\n \"topLeft\",\n \"bottomCenter\",\n \"bottomLeft\",\n \"bottomRight\",\n \"middleCenter\",\n \"middleLeft\",\n \"middleRight\",\n \"topCenter\",\n \"topRight\",\n ]);\n this.colSpan = getInteger({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: n => n >= 1 || n === -1,\n });\n this.h = attributes.h ? getMeasurement(attributes.h) : \"\";\n this.hAlign = getStringOption(attributes.hAlign, [\n \"left\",\n \"center\",\n \"justify\",\n \"justifyAll\",\n \"radix\",\n \"right\",\n ]);\n this.id = attributes.id || \"\";\n this.locale = attributes.locale || \"\";\n this.maxH = getMeasurement(attributes.maxH, \"0pt\");\n this.maxW = getMeasurement(attributes.maxW, \"0pt\");\n this.minH = getMeasurement(attributes.minH, \"0pt\");\n this.minW = getMeasurement(attributes.minW, \"0pt\");\n this.name = attributes.name || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.rotate = getInteger({\n data: attributes.rotate,\n defaultValue: 0,\n validate: x => x % 90 === 0,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = attributes.w ? getMeasurement(attributes.w) : \"\";\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.assist = null;\n this.border = null;\n this.caption = null;\n this.desc = null;\n this.extras = null;\n this.font = null;\n this.keep = null;\n this.margin = null;\n this.para = null;\n this.traversal = null;\n this.ui = null;\n this.value = null;\n this.setProperty = new XFAObjectArray();\n }\n\n [$setValue](value) {\n _setValue(this, value);\n }\n\n [$toHTML](availableSpace) {\n setTabIndex(this);\n\n if (this.presence === \"hidden\" || this.presence === \"inactive\") {\n return HTMLResult.EMPTY;\n }\n\n fixDimensions(this);\n this[$pushPara]();\n\n // If at least one dimension is missing and we've a text\n // then we can guess it in laying out the text.\n const savedW = this.w;\n const savedH = this.h;\n const { w, h, isBroken } = layoutNode(this, availableSpace);\n if (w && this.w === \"\") {\n // If the parent layout is lr-tb with a w=100 and we already have a child\n // which takes 90 on the current line.\n // If we have a text with a length (in px) equal to 100 then it'll be\n // splitted into almost 10 chunks: so it won't be nice.\n // So if we've potentially more width to provide in some parent containers\n // let's increase it to give a chance to have a better rendering.\n if (isBroken && this[$getSubformParent]()[$isThereMoreWidth]()) {\n this[$popPara]();\n return HTMLResult.FAILURE;\n }\n\n this.w = w;\n }\n if (h && this.h === \"\") {\n this.h = h;\n }\n\n setFirstUnsplittable(this);\n if (!checkDimensions(this, availableSpace)) {\n this.w = savedW;\n this.h = savedH;\n this[$popPara]();\n return HTMLResult.FAILURE;\n }\n unsetFirstUnsplittable(this);\n\n const style = toStyle(\n this,\n \"font\",\n \"hAlign\",\n \"dimensions\",\n \"position\",\n \"presence\",\n \"rotate\",\n \"anchorType\",\n \"border\",\n \"margin\"\n );\n\n setMinMaxDimensions(this, style);\n\n if (style.margin) {\n style.padding = style.margin;\n delete style.margin;\n }\n\n const classNames = [\"xfaDraw\"];\n if (this.font) {\n classNames.push(\"xfaFont\");\n }\n if (isPrintOnly(this)) {\n classNames.push(\"xfaPrintOnly\");\n }\n\n const attributes = {\n style,\n id: this[$uid],\n class: classNames,\n };\n\n if (this.name) {\n attributes.xfaName = this.name;\n }\n\n const html = {\n name: \"div\",\n attributes,\n children: [],\n };\n\n applyAssist(this, attributes);\n\n const bbox = computeBbox(this, html, availableSpace);\n\n const value = this.value ? this.value[$toHTML](availableSpace).html : null;\n if (value === null) {\n this.w = savedW;\n this.h = savedH;\n this[$popPara]();\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n\n html.children.push(value);\n setPara(this, style, value);\n\n this.w = savedW;\n this.h = savedH;\n\n this[$popPara]();\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n}\n\nclass Edge extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"edge\", /* hasChildren = */ true);\n this.cap = getStringOption(attributes.cap, [\"square\", \"butt\", \"round\"]);\n this.id = attributes.id || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.stroke = getStringOption(attributes.stroke, [\n \"solid\",\n \"dashDot\",\n \"dashDotDot\",\n \"dashed\",\n \"dotted\",\n \"embossed\",\n \"etched\",\n \"lowered\",\n \"raised\",\n ]);\n this.thickness = getMeasurement(attributes.thickness, \"0.5pt\");\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle]() {\n // TODO: dashDot & dashDotDot.\n const style = toStyle(this, \"visibility\");\n Object.assign(style, {\n linecap: this.cap,\n width: measureToString(this.thickness),\n color: this.color ? this.color[$toStyle]() : \"#000000\",\n style: \"\",\n });\n\n if (this.presence !== \"visible\") {\n style.style = \"none\";\n } else {\n switch (this.stroke) {\n case \"solid\":\n style.style = \"solid\";\n break;\n case \"dashDot\":\n style.style = \"dashed\";\n break;\n case \"dashDotDot\":\n style.style = \"dashed\";\n break;\n case \"dashed\":\n style.style = \"dashed\";\n break;\n case \"dotted\":\n style.style = \"dotted\";\n break;\n case \"embossed\":\n style.style = \"ridge\";\n break;\n case \"etched\":\n style.style = \"groove\";\n break;\n case \"lowered\":\n style.style = \"inset\";\n break;\n case \"raised\":\n style.style = \"outset\";\n break;\n }\n }\n return style;\n }\n}\n\nclass Encoding extends OptionObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encoding\", [\n \"adbe.x509.rsa_sha1\",\n \"adbe.pkcs7.detached\",\n \"adbe.pkcs7.sha1\",\n ]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Encodings extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encodings\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.encoding = new XFAObjectArray();\n }\n}\n\nclass Encrypt extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encrypt\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.certificate = null;\n }\n}\n\nclass EncryptData extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encryptData\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.operation = getStringOption(attributes.operation, [\n \"encrypt\",\n \"decrypt\",\n ]);\n this.target = attributes.target || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.filter = null;\n this.manifest = null;\n }\n}\n\nclass Encryption extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encryption\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.certificate = new XFAObjectArray();\n }\n}\n\nclass EncryptionMethod extends OptionObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encryptionMethod\", [\n \"\",\n \"AES256-CBC\",\n \"TRIPLEDES-CBC\",\n \"AES128-CBC\",\n \"AES192-CBC\",\n ]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass EncryptionMethods extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encryptionMethods\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.encryptionMethod = new XFAObjectArray();\n }\n}\n\nclass Event extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"event\", /* hasChildren = */ true);\n this.activity = getStringOption(attributes.activity, [\n \"click\",\n \"change\",\n \"docClose\",\n \"docReady\",\n \"enter\",\n \"exit\",\n \"full\",\n \"indexChange\",\n \"initialize\",\n \"mouseDown\",\n \"mouseEnter\",\n \"mouseExit\",\n \"mouseUp\",\n \"postExecute\",\n \"postOpen\",\n \"postPrint\",\n \"postSave\",\n \"postSign\",\n \"postSubmit\",\n \"preExecute\",\n \"preOpen\",\n \"prePrint\",\n \"preSave\",\n \"preSign\",\n \"preSubmit\",\n \"ready\",\n \"validationState\",\n ]);\n this.id = attributes.id || \"\";\n this.listen = getStringOption(attributes.listen, [\n \"refOnly\",\n \"refAndDescendents\",\n ]);\n this.name = attributes.name || \"\";\n this.ref = attributes.ref || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n\n // One-of properties\n this.encryptData = null;\n this.execute = null;\n this.script = null;\n this.signData = null;\n this.submit = null;\n }\n}\n\nclass ExData extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"exData\");\n this.contentType = attributes.contentType || \"\";\n this.href = attributes.href || \"\";\n this.id = attributes.id || \"\";\n this.maxLength = getInteger({\n data: attributes.maxLength,\n defaultValue: -1,\n validate: x => x >= -1,\n });\n this.name = attributes.name || \"\";\n this.rid = attributes.rid || \"\";\n this.transferEncoding = getStringOption(attributes.transferEncoding, [\n \"none\",\n \"base64\",\n \"package\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$isCDATAXml]() {\n return this.contentType === \"text/html\";\n }\n\n [$onChild](child) {\n if (\n this.contentType === \"text/html\" &&\n child[$namespaceId] === NamespaceIds.xhtml.id\n ) {\n this[$content] = child;\n return true;\n }\n\n if (this.contentType === \"text/xml\") {\n this[$content] = child;\n return true;\n }\n\n return false;\n }\n\n [$toHTML](availableSpace) {\n if (this.contentType !== \"text/html\" || !this[$content]) {\n // TODO: fix other cases.\n return HTMLResult.EMPTY;\n }\n\n return this[$content][$toHTML](availableSpace);\n }\n}\n\nclass ExObject extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"exObject\", /* hasChildren = */ true);\n this.archive = attributes.archive || \"\";\n this.classId = attributes.classId || \"\";\n this.codeBase = attributes.codeBase || \"\";\n this.codeType = attributes.codeType || \"\";\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.boolean = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.exObject = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.time = new XFAObjectArray();\n }\n}\n\nclass ExclGroup extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"exclGroup\", /* hasChildren = */ true);\n this.access = getStringOption(attributes.access, [\n \"open\",\n \"nonInteractive\",\n \"protected\",\n \"readOnly\",\n ]);\n this.accessKey = attributes.accessKey || \"\";\n this.anchorType = getStringOption(attributes.anchorType, [\n \"topLeft\",\n \"bottomCenter\",\n \"bottomLeft\",\n \"bottomRight\",\n \"middleCenter\",\n \"middleLeft\",\n \"middleRight\",\n \"topCenter\",\n \"topRight\",\n ]);\n this.colSpan = getInteger({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: n => n >= 1 || n === -1,\n });\n this.h = attributes.h ? getMeasurement(attributes.h) : \"\";\n this.hAlign = getStringOption(attributes.hAlign, [\n \"left\",\n \"center\",\n \"justify\",\n \"justifyAll\",\n \"radix\",\n \"right\",\n ]);\n this.id = attributes.id || \"\";\n this.layout = getStringOption(attributes.layout, [\n \"position\",\n \"lr-tb\",\n \"rl-row\",\n \"rl-tb\",\n \"row\",\n \"table\",\n \"tb\",\n ]);\n this.maxH = getMeasurement(attributes.maxH, \"0pt\");\n this.maxW = getMeasurement(attributes.maxW, \"0pt\");\n this.minH = getMeasurement(attributes.minH, \"0pt\");\n this.minW = getMeasurement(attributes.minW, \"0pt\");\n this.name = attributes.name || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = attributes.w ? getMeasurement(attributes.w) : \"\";\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.assist = null;\n this.bind = null;\n this.border = null;\n this.calculate = null;\n this.caption = null;\n this.desc = null;\n this.extras = null;\n this.margin = null;\n this.para = null;\n this.traversal = null;\n this.validate = null;\n this.connect = new XFAObjectArray();\n this.event = new XFAObjectArray();\n this.field = new XFAObjectArray();\n this.setProperty = new XFAObjectArray();\n }\n\n [$isBindable]() {\n return true;\n }\n\n [$hasSettableValue]() {\n return true;\n }\n\n [$setValue](value) {\n for (const field of this.field.children) {\n if (!field.value) {\n const nodeValue = new Value({});\n field[$appendChild](nodeValue);\n field.value = nodeValue;\n }\n\n field.value[$setValue](value);\n }\n }\n\n [$isThereMoreWidth]() {\n return (\n (this.layout.endsWith(\"-tb\") &&\n this[$extra].attempt === 0 &&\n this[$extra].numberInLine > 0) ||\n this[$getParent]()[$isThereMoreWidth]()\n );\n }\n\n [$isSplittable]() {\n // We cannot cache the result here because the contentArea\n // can change.\n const parent = this[$getSubformParent]();\n if (!parent[$isSplittable]()) {\n return false;\n }\n\n if (this[$extra]._isSplittable !== undefined) {\n return this[$extra]._isSplittable;\n }\n\n if (this.layout === \"position\" || this.layout.includes(\"row\")) {\n this[$extra]._isSplittable = false;\n return false;\n }\n\n if (\n parent.layout &&\n parent.layout.endsWith(\"-tb\") &&\n parent[$extra].numberInLine !== 0\n ) {\n // See comment in Subform::[$isSplittable] for an explanation.\n return false;\n }\n\n this[$extra]._isSplittable = true;\n return true;\n }\n\n [$flushHTML]() {\n return flushHTML(this);\n }\n\n [$addHTML](html, bbox) {\n addHTML(this, html, bbox);\n }\n\n [$getAvailableSpace]() {\n return getAvailableSpace(this);\n }\n\n [$toHTML](availableSpace) {\n setTabIndex(this);\n if (\n this.presence === \"hidden\" ||\n this.presence === \"inactive\" ||\n this.h === 0 ||\n this.w === 0\n ) {\n return HTMLResult.EMPTY;\n }\n\n fixDimensions(this);\n\n const children = [];\n const attributes = {\n id: this[$uid],\n class: [],\n };\n\n setAccess(this, attributes.class);\n\n if (!this[$extra]) {\n this[$extra] = Object.create(null);\n }\n\n Object.assign(this[$extra], {\n children,\n attributes,\n attempt: 0,\n line: null,\n numberInLine: 0,\n availableSpace: {\n width: Math.min(this.w || Infinity, availableSpace.width),\n height: Math.min(this.h || Infinity, availableSpace.height),\n },\n width: 0,\n height: 0,\n prevHeight: 0,\n currentWidth: 0,\n });\n\n const isSplittable = this[$isSplittable]();\n if (!isSplittable) {\n setFirstUnsplittable(this);\n }\n\n if (!checkDimensions(this, availableSpace)) {\n return HTMLResult.FAILURE;\n }\n const filter = new Set([\"field\"]);\n\n if (this.layout.includes(\"row\")) {\n const columnWidths = this[$getSubformParent]().columnWidths;\n if (Array.isArray(columnWidths) && columnWidths.length > 0) {\n this[$extra].columnWidths = columnWidths;\n this[$extra].currentColumn = 0;\n }\n }\n\n const style = toStyle(\n this,\n \"anchorType\",\n \"dimensions\",\n \"position\",\n \"presence\",\n \"border\",\n \"margin\",\n \"hAlign\"\n );\n const classNames = [\"xfaExclgroup\"];\n const cl = layoutClass(this);\n if (cl) {\n classNames.push(cl);\n }\n\n if (isPrintOnly(this)) {\n classNames.push(\"xfaPrintOnly\");\n }\n\n attributes.style = style;\n attributes.class = classNames;\n\n if (this.name) {\n attributes.xfaName = this.name;\n }\n\n this[$pushPara]();\n const isLrTb = this.layout === \"lr-tb\" || this.layout === \"rl-tb\";\n const maxRun = isLrTb ? MAX_ATTEMPTS_FOR_LRTB_LAYOUT : 1;\n for (; this[$extra].attempt < maxRun; this[$extra].attempt++) {\n if (isLrTb && this[$extra].attempt === MAX_ATTEMPTS_FOR_LRTB_LAYOUT - 1) {\n // If the layout is lr-tb then having attempt equals to\n // MAX_ATTEMPTS_FOR_LRTB_LAYOUT-1 means that we're trying to layout\n // on the next line so this on is empty.\n this[$extra].numberInLine = 0;\n }\n const result = this[$childrenToHTML]({\n filter,\n include: true,\n });\n if (result.success) {\n break;\n }\n if (result.isBreak()) {\n this[$popPara]();\n return result;\n }\n if (\n isLrTb &&\n this[$extra].attempt === 0 &&\n this[$extra].numberInLine === 0 &&\n !this[$getTemplateRoot]()[$extra].noLayoutFailure\n ) {\n // See comment in Subform::[$toHTML].\n this[$extra].attempt = maxRun;\n break;\n }\n }\n\n this[$popPara]();\n\n if (!isSplittable) {\n unsetFirstUnsplittable(this);\n }\n\n if (this[$extra].attempt === maxRun) {\n if (!isSplittable) {\n delete this[$extra];\n }\n return HTMLResult.FAILURE;\n }\n\n let marginH = 0;\n let marginV = 0;\n if (this.margin) {\n marginH = this.margin.leftInset + this.margin.rightInset;\n marginV = this.margin.topInset + this.margin.bottomInset;\n }\n\n const width = Math.max(this[$extra].width + marginH, this.w || 0);\n const height = Math.max(this[$extra].height + marginV, this.h || 0);\n const bbox = [this.x, this.y, width, height];\n\n if (this.w === \"\") {\n style.width = measureToString(width);\n }\n if (this.h === \"\") {\n style.height = measureToString(height);\n }\n\n const html = {\n name: \"div\",\n attributes,\n children,\n };\n\n applyAssist(this, attributes);\n\n delete this[$extra];\n\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n}\n\nclass Execute extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"execute\");\n this.connection = attributes.connection || \"\";\n this.executeType = getStringOption(attributes.executeType, [\n \"import\",\n \"remerge\",\n ]);\n this.id = attributes.id || \"\";\n this.runAt = getStringOption(attributes.runAt, [\n \"client\",\n \"both\",\n \"server\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Extras extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"extras\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.boolean = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.extras = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.time = new XFAObjectArray();\n }\n\n // (Spec) The XFA template grammar defines the extras and desc elements,\n // which can be used to add human-readable or machine-readable\n // data to a template.\n}\n\nclass Field extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"field\", /* hasChildren = */ true);\n this.access = getStringOption(attributes.access, [\n \"open\",\n \"nonInteractive\",\n \"protected\",\n \"readOnly\",\n ]);\n this.accessKey = attributes.accessKey || \"\";\n this.anchorType = getStringOption(attributes.anchorType, [\n \"topLeft\",\n \"bottomCenter\",\n \"bottomLeft\",\n \"bottomRight\",\n \"middleCenter\",\n \"middleLeft\",\n \"middleRight\",\n \"topCenter\",\n \"topRight\",\n ]);\n this.colSpan = getInteger({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: n => n >= 1 || n === -1,\n });\n this.h = attributes.h ? getMeasurement(attributes.h) : \"\";\n this.hAlign = getStringOption(attributes.hAlign, [\n \"left\",\n \"center\",\n \"justify\",\n \"justifyAll\",\n \"radix\",\n \"right\",\n ]);\n this.id = attributes.id || \"\";\n this.locale = attributes.locale || \"\";\n this.maxH = getMeasurement(attributes.maxH, \"0pt\");\n this.maxW = getMeasurement(attributes.maxW, \"0pt\");\n this.minH = getMeasurement(attributes.minH, \"0pt\");\n this.minW = getMeasurement(attributes.minW, \"0pt\");\n this.name = attributes.name || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.rotate = getInteger({\n data: attributes.rotate,\n defaultValue: 0,\n validate: x => x % 90 === 0,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = attributes.w ? getMeasurement(attributes.w) : \"\";\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.assist = null;\n this.bind = null;\n this.border = null;\n this.calculate = null;\n this.caption = null;\n this.desc = null;\n this.extras = null;\n this.font = null;\n this.format = null;\n // For a choice list, one list is used to have display entries\n // and the other for the exported values\n this.items = new XFAObjectArray(2);\n this.keep = null;\n this.margin = null;\n this.para = null;\n this.traversal = null;\n this.ui = null;\n this.validate = null;\n this.value = null;\n this.bindItems = new XFAObjectArray();\n this.connect = new XFAObjectArray();\n this.event = new XFAObjectArray();\n this.setProperty = new XFAObjectArray();\n }\n\n [$isBindable]() {\n return true;\n }\n\n [$setValue](value) {\n _setValue(this, value);\n }\n\n [$toHTML](availableSpace) {\n setTabIndex(this);\n\n if (!this.ui) {\n // It's allowed to not have an ui, specs say:\n // If the UI element contains no children or is not present,\n // the application chooses a default user interface for the\n // container, based on the type of the container's content.\n\n this.ui = new Ui({});\n this.ui[$globalData] = this[$globalData];\n this[$appendChild](this.ui);\n let node;\n\n // The items element can have 2 element max and\n // according to the items specs it's likely a good\n // way to guess the correct ui type.\n switch (this.items.children.length) {\n case 0:\n node = new TextEdit({});\n this.ui.textEdit = node;\n break;\n case 1:\n node = new CheckButton({});\n this.ui.checkButton = node;\n break;\n case 2:\n node = new ChoiceList({});\n this.ui.choiceList = node;\n break;\n }\n this.ui[$appendChild](node);\n }\n\n if (\n !this.ui ||\n this.presence === \"hidden\" ||\n this.presence === \"inactive\" ||\n this.h === 0 ||\n this.w === 0\n ) {\n return HTMLResult.EMPTY;\n }\n\n if (this.caption) {\n // Maybe we already tried to layout this field with\n // another availableSpace, so to avoid to use the cached\n // value just delete it.\n delete this.caption[$extra];\n }\n\n this[$pushPara]();\n\n const caption = this.caption\n ? this.caption[$toHTML](availableSpace).html\n : null;\n const savedW = this.w;\n const savedH = this.h;\n let marginH = 0;\n let marginV = 0;\n if (this.margin) {\n marginH = this.margin.leftInset + this.margin.rightInset;\n marginV = this.margin.topInset + this.margin.bottomInset;\n }\n\n let borderDims = null;\n if (this.w === \"\" || this.h === \"\") {\n let width = null;\n let height = null;\n\n let uiW = 0;\n let uiH = 0;\n if (this.ui.checkButton) {\n uiW = uiH = this.ui.checkButton.size;\n } else {\n const { w, h } = layoutNode(this, availableSpace);\n if (w !== null) {\n uiW = w;\n uiH = h;\n } else {\n uiH = getMetrics(this.font, /* real = */ true).lineNoGap;\n }\n }\n\n borderDims = getBorderDims(this.ui[$getExtra]());\n uiW += borderDims.w;\n uiH += borderDims.h;\n\n if (this.caption) {\n const { w, h, isBroken } = this.caption[$getExtra](availableSpace);\n // See comment in Draw::[$toHTML] to have an explanation\n // about this line.\n if (isBroken && this[$getSubformParent]()[$isThereMoreWidth]()) {\n this[$popPara]();\n return HTMLResult.FAILURE;\n }\n\n width = w;\n height = h;\n\n switch (this.caption.placement) {\n case \"left\":\n case \"right\":\n case \"inline\":\n width += uiW;\n break;\n case \"top\":\n case \"bottom\":\n height += uiH;\n break;\n }\n } else {\n width = uiW;\n height = uiH;\n }\n\n if (width && this.w === \"\") {\n width += marginH;\n this.w = Math.min(\n this.maxW <= 0 ? Infinity : this.maxW,\n this.minW + 1 < width ? width : this.minW\n );\n }\n\n if (height && this.h === \"\") {\n height += marginV;\n this.h = Math.min(\n this.maxH <= 0 ? Infinity : this.maxH,\n this.minH + 1 < height ? height : this.minH\n );\n }\n }\n\n this[$popPara]();\n\n fixDimensions(this);\n\n setFirstUnsplittable(this);\n if (!checkDimensions(this, availableSpace)) {\n this.w = savedW;\n this.h = savedH;\n this[$popPara]();\n return HTMLResult.FAILURE;\n }\n unsetFirstUnsplittable(this);\n\n const style = toStyle(\n this,\n \"font\",\n \"dimensions\",\n \"position\",\n \"rotate\",\n \"anchorType\",\n \"presence\",\n \"margin\",\n \"hAlign\"\n );\n\n setMinMaxDimensions(this, style);\n\n const classNames = [\"xfaField\"];\n // If no font, font properties are inherited.\n if (this.font) {\n classNames.push(\"xfaFont\");\n }\n\n if (isPrintOnly(this)) {\n classNames.push(\"xfaPrintOnly\");\n }\n\n const attributes = {\n style,\n id: this[$uid],\n class: classNames,\n };\n\n if (style.margin) {\n style.padding = style.margin;\n delete style.margin;\n }\n\n setAccess(this, classNames);\n\n if (this.name) {\n attributes.xfaName = this.name;\n }\n\n const children = [];\n const html = {\n name: \"div\",\n attributes,\n children,\n };\n\n applyAssist(this, attributes);\n\n const borderStyle = this.border ? this.border[$toStyle]() : null;\n const bbox = computeBbox(this, html, availableSpace);\n const ui = this.ui[$toHTML]().html;\n if (!ui) {\n Object.assign(style, borderStyle);\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n\n if (this[$tabIndex]) {\n if (ui.children && ui.children[0]) {\n ui.children[0].attributes.tabindex = this[$tabIndex];\n } else {\n ui.attributes.tabindex = this[$tabIndex];\n }\n }\n\n if (!ui.attributes.style) {\n ui.attributes.style = Object.create(null);\n }\n\n let aElement = null;\n\n if (this.ui.button) {\n if (ui.children.length === 1) {\n [aElement] = ui.children.splice(0, 1);\n }\n Object.assign(ui.attributes.style, borderStyle);\n } else {\n Object.assign(style, borderStyle);\n }\n\n children.push(ui);\n\n if (this.value) {\n if (this.ui.imageEdit) {\n ui.children.push(this.value[$toHTML]().html);\n } else if (!this.ui.button) {\n let value = \"\";\n if (this.value.exData) {\n value = this.value.exData[$text]();\n } else if (this.value.text) {\n value = this.value.text[$getExtra]();\n } else {\n const htmlValue = this.value[$toHTML]().html;\n if (htmlValue !== null) {\n value = htmlValue.children[0].value;\n }\n }\n if (this.ui.textEdit && this.value.text && this.value.text.maxChars) {\n ui.children[0].attributes.maxLength = this.value.text.maxChars;\n }\n\n if (value) {\n if (this.ui.numericEdit) {\n value = parseFloat(value);\n value = isNaN(value) ? \"\" : value.toString();\n }\n\n if (ui.children[0].name === \"textarea\") {\n ui.children[0].attributes.textContent = value;\n } else {\n ui.children[0].attributes.value = value;\n }\n }\n }\n }\n\n if (!this.ui.imageEdit && ui.children && ui.children[0] && this.h) {\n borderDims = borderDims || getBorderDims(this.ui[$getExtra]());\n\n let captionHeight = 0;\n if (this.caption && [\"top\", \"bottom\"].includes(this.caption.placement)) {\n captionHeight = this.caption.reserve;\n if (captionHeight <= 0) {\n captionHeight = this.caption[$getExtra](availableSpace).h;\n }\n const inputHeight = this.h - captionHeight - marginV - borderDims.h;\n ui.children[0].attributes.style.height = measureToString(inputHeight);\n } else {\n ui.children[0].attributes.style.height = \"100%\";\n }\n }\n\n if (aElement) {\n ui.children.push(aElement);\n }\n\n if (!caption) {\n if (ui.attributes.class) {\n // Even if no caption this class will help to center the ui.\n ui.attributes.class.push(\"xfaLeft\");\n }\n this.w = savedW;\n this.h = savedH;\n\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n\n if (this.ui.button) {\n if (style.padding) {\n delete style.padding;\n }\n if (caption.name === \"div\") {\n caption.name = \"span\";\n }\n ui.children.push(caption);\n return HTMLResult.success(html, bbox);\n } else if (this.ui.checkButton) {\n caption.attributes.class[0] = \"xfaCaptionForCheckButton\";\n }\n\n if (!ui.attributes.class) {\n ui.attributes.class = [];\n }\n\n ui.children.splice(0, 0, caption);\n\n switch (this.caption.placement) {\n case \"left\":\n ui.attributes.class.push(\"xfaLeft\");\n break;\n case \"right\":\n ui.attributes.class.push(\"xfaRight\");\n break;\n case \"top\":\n ui.attributes.class.push(\"xfaTop\");\n break;\n case \"bottom\":\n ui.attributes.class.push(\"xfaBottom\");\n break;\n case \"inline\":\n // TODO;\n ui.attributes.class.push(\"xfaLeft\");\n break;\n }\n\n this.w = savedW;\n this.h = savedH;\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n}\n\nclass Fill extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"fill\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n\n // One-of properties or none\n this.linear = null;\n this.pattern = null;\n this.radial = null;\n this.solid = null;\n this.stipple = null;\n }\n\n [$toStyle]() {\n const parent = this[$getParent]();\n const grandpa = parent[$getParent]();\n const ggrandpa = grandpa[$getParent]();\n const style = Object.create(null);\n\n // Use for color, i.e. #...\n let propName = \"color\";\n\n // Use for non-color, i.e. gradient, radial-gradient...\n let altPropName = propName;\n\n if (parent instanceof Border) {\n propName = \"background-color\";\n altPropName = \"background\";\n if (ggrandpa instanceof Ui) {\n // The default fill color is white.\n style.backgroundColor = \"white\";\n }\n }\n if (parent instanceof Rectangle || parent instanceof Arc) {\n propName = altPropName = \"fill\";\n style.fill = \"white\";\n }\n\n for (const name of Object.getOwnPropertyNames(this)) {\n if (name === \"extras\" || name === \"color\") {\n continue;\n }\n const obj = this[name];\n if (!(obj instanceof XFAObject)) {\n continue;\n }\n\n const color = obj[$toStyle](this.color);\n if (color) {\n style[color.startsWith(\"#\") ? propName : altPropName] = color;\n }\n return style;\n }\n\n if (this.color && this.color.value) {\n const color = this.color[$toStyle]();\n style[color.startsWith(\"#\") ? propName : altPropName] = color;\n }\n\n return style;\n }\n}\n\nclass Filter extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"filter\", /* hasChildren = */ true);\n this.addRevocationInfo = getStringOption(attributes.addRevocationInfo, [\n \"\",\n \"required\",\n \"optional\",\n \"none\",\n ]);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.version = getInteger({\n data: this.version,\n defaultValue: 5,\n validate: x => x >= 1 && x <= 5,\n });\n this.appearanceFilter = null;\n this.certificates = null;\n this.digestMethods = null;\n this.encodings = null;\n this.encryptionMethods = null;\n this.handler = null;\n this.lockDocument = null;\n this.mdp = null;\n this.reasons = null;\n this.timeStamp = null;\n }\n}\n\nclass Float extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"float\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n const number = parseFloat(this[$content].trim());\n this[$content] = isNaN(number) ? null : number;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(\n this[$content] !== null ? this[$content].toString() : \"\"\n );\n }\n}\n\nclass Font extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"font\", /* hasChildren = */ true);\n this.baselineShift = getMeasurement(attributes.baselineShift);\n this.fontHorizontalScale = getFloat({\n data: attributes.fontHorizontalScale,\n defaultValue: 100,\n validate: x => x >= 0,\n });\n this.fontVerticalScale = getFloat({\n data: attributes.fontVerticalScale,\n defaultValue: 100,\n validate: x => x >= 0,\n });\n this.id = attributes.id || \"\";\n this.kerningMode = getStringOption(attributes.kerningMode, [\n \"none\",\n \"pair\",\n ]);\n this.letterSpacing = getMeasurement(attributes.letterSpacing, \"0\");\n this.lineThrough = getInteger({\n data: attributes.lineThrough,\n defaultValue: 0,\n validate: x => x === 1 || x === 2,\n });\n this.lineThroughPeriod = getStringOption(attributes.lineThroughPeriod, [\n \"all\",\n \"word\",\n ]);\n this.overline = getInteger({\n data: attributes.overline,\n defaultValue: 0,\n validate: x => x === 1 || x === 2,\n });\n this.overlinePeriod = getStringOption(attributes.overlinePeriod, [\n \"all\",\n \"word\",\n ]);\n this.posture = getStringOption(attributes.posture, [\"normal\", \"italic\"]);\n this.size = getMeasurement(attributes.size, \"10pt\");\n this.typeface = attributes.typeface || \"Courier\";\n this.underline = getInteger({\n data: attributes.underline,\n defaultValue: 0,\n validate: x => x === 1 || x === 2,\n });\n this.underlinePeriod = getStringOption(attributes.underlinePeriod, [\n \"all\",\n \"word\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.weight = getStringOption(attributes.weight, [\"normal\", \"bold\"]);\n this.extras = null;\n this.fill = null;\n }\n\n [$clean](builder) {\n super[$clean](builder);\n this[$globalData].usedTypefaces.add(this.typeface);\n }\n\n [$toStyle]() {\n const style = toStyle(this, \"fill\");\n const color = style.color;\n if (color) {\n if (color === \"#000000\") {\n // Default font color.\n delete style.color;\n } else if (!color.startsWith(\"#\")) {\n // We've a gradient which is not possible for a font color\n // so use a workaround.\n style.background = color;\n style.backgroundClip = \"text\";\n style.color = \"transparent\";\n }\n }\n\n if (this.baselineShift) {\n style.verticalAlign = measureToString(this.baselineShift);\n }\n\n // TODO: fontHorizontalScale\n // TODO: fontVerticalScale\n\n style.fontKerning = this.kerningMode === \"none\" ? \"none\" : \"normal\";\n style.letterSpacing = measureToString(this.letterSpacing);\n\n if (this.lineThrough !== 0) {\n style.textDecoration = \"line-through\";\n if (this.lineThrough === 2) {\n style.textDecorationStyle = \"double\";\n }\n }\n\n // TODO: lineThroughPeriod\n\n if (this.overline !== 0) {\n style.textDecoration = \"overline\";\n if (this.overline === 2) {\n style.textDecorationStyle = \"double\";\n }\n }\n\n // TODO: overlinePeriod\n\n style.fontStyle = this.posture;\n style.fontSize = measureToString(0.99 * this.size);\n\n setFontFamily(this, this, this[$globalData].fontFinder, style);\n\n if (this.underline !== 0) {\n style.textDecoration = \"underline\";\n if (this.underline === 2) {\n style.textDecorationStyle = \"double\";\n }\n }\n\n // TODO: underlinePeriod\n\n style.fontWeight = this.weight;\n\n return style;\n }\n}\n\nclass Format extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"format\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.picture = null;\n }\n}\n\nclass Handler extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"handler\");\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Hyphenation extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"hyphenation\");\n this.excludeAllCaps = getInteger({\n data: attributes.excludeAllCaps,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.excludeInitialCap = getInteger({\n data: attributes.excludeInitialCap,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.hyphenate = getInteger({\n data: attributes.hyphenate,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.id = attributes.id || \"\";\n this.pushCharacterCount = getInteger({\n data: attributes.pushCharacterCount,\n defaultValue: 3,\n validate: x => x >= 0,\n });\n this.remainCharacterCount = getInteger({\n data: attributes.remainCharacterCount,\n defaultValue: 3,\n validate: x => x >= 0,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.wordCharacterCount = getInteger({\n data: attributes.wordCharacterCount,\n defaultValue: 7,\n validate: x => x >= 0,\n });\n }\n}\n\nclass Image extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"image\");\n this.aspect = getStringOption(attributes.aspect, [\n \"fit\",\n \"actual\",\n \"height\",\n \"none\",\n \"width\",\n ]);\n this.contentType = attributes.contentType || \"\";\n this.href = attributes.href || \"\";\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.transferEncoding = getStringOption(attributes.transferEncoding, [\n \"base64\",\n \"none\",\n \"package\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$toHTML]() {\n if (this.contentType && !MIMES.has(this.contentType.toLowerCase())) {\n return HTMLResult.EMPTY;\n }\n\n let buffer =\n this[$globalData].images && this[$globalData].images.get(this.href);\n if (!buffer && (this.href || !this[$content])) {\n // In general, we don't get remote data and use what we have\n // in the pdf itself, so no picture for non null href.\n return HTMLResult.EMPTY;\n }\n\n if (!buffer && this.transferEncoding === \"base64\") {\n buffer = stringToBytes(atob(this[$content]));\n }\n\n if (!buffer) {\n return HTMLResult.EMPTY;\n }\n\n if (!this.contentType) {\n for (const [header, type] of IMAGES_HEADERS) {\n if (\n buffer.length > header.length &&\n header.every((x, i) => x === buffer[i])\n ) {\n this.contentType = type;\n break;\n }\n }\n if (!this.contentType) {\n return HTMLResult.EMPTY;\n }\n }\n\n // TODO: Firefox doesn't support natively tiff (and tif) format.\n const blob = new Blob([buffer], { type: this.contentType });\n let style;\n switch (this.aspect) {\n case \"fit\":\n case \"actual\":\n // TODO: check what to do with actual.\n // Normally we should return {auto, auto} for it but\n // it implies some wrong rendering (see xfa_bug1716816.pdf).\n break;\n case \"height\":\n style = {\n height: \"100%\",\n objectFit: \"fill\",\n };\n break;\n case \"none\":\n style = {\n width: \"100%\",\n height: \"100%\",\n objectFit: \"fill\",\n };\n break;\n case \"width\":\n style = {\n width: \"100%\",\n objectFit: \"fill\",\n };\n break;\n }\n const parent = this[$getParent]();\n return HTMLResult.success({\n name: \"img\",\n attributes: {\n class: [\"xfaImage\"],\n style,\n src: URL.createObjectURL(blob),\n alt: parent ? ariaLabel(parent[$getParent]()) : null,\n },\n });\n }\n}\n\nclass ImageEdit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"imageEdit\", /* hasChildren = */ true);\n this.data = getStringOption(attributes.data, [\"link\", \"embed\"]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n if (this.data === \"embed\") {\n return HTMLResult.success({\n name: \"div\",\n children: [],\n attributes: {},\n });\n }\n\n return HTMLResult.EMPTY;\n }\n}\n\nclass Integer extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"integer\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n const number = parseInt(this[$content].trim(), 10);\n this[$content] = isNaN(number) ? null : number;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(\n this[$content] !== null ? this[$content].toString() : \"\"\n );\n }\n}\n\nclass Issuers extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"issuers\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.certificate = new XFAObjectArray();\n }\n}\n\nclass Items extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"items\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.ref = attributes.ref || \"\";\n this.save = getInteger({\n data: attributes.save,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.boolean = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.time = new XFAObjectArray();\n }\n\n [$toHTML]() {\n const output = [];\n for (const child of this[$getChildren]()) {\n output.push(child[$text]());\n }\n return HTMLResult.success(output);\n }\n}\n\nclass Keep extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"keep\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n const options = [\"none\", \"contentArea\", \"pageArea\"];\n this.intact = getStringOption(attributes.intact, options);\n this.next = getStringOption(attributes.next, options);\n this.previous = getStringOption(attributes.previous, options);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n}\n\nclass KeyUsage extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"keyUsage\");\n const options = [\"\", \"yes\", \"no\"];\n this.crlSign = getStringOption(attributes.crlSign, options);\n this.dataEncipherment = getStringOption(\n attributes.dataEncipherment,\n options\n );\n this.decipherOnly = getStringOption(attributes.decipherOnly, options);\n this.digitalSignature = getStringOption(\n attributes.digitalSignature,\n options\n );\n this.encipherOnly = getStringOption(attributes.encipherOnly, options);\n this.id = attributes.id || \"\";\n this.keyAgreement = getStringOption(attributes.keyAgreement, options);\n this.keyCertSign = getStringOption(attributes.keyCertSign, options);\n this.keyEncipherment = getStringOption(attributes.keyEncipherment, options);\n this.nonRepudiation = getStringOption(attributes.nonRepudiation, options);\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Line extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"line\", /* hasChildren = */ true);\n this.hand = getStringOption(attributes.hand, [\"even\", \"left\", \"right\"]);\n this.id = attributes.id || \"\";\n this.slope = getStringOption(attributes.slope, [\"\\\\\", \"/\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.edge = null;\n }\n\n [$toHTML]() {\n const parent = this[$getParent]()[$getParent]();\n const edge = this.edge ? this.edge : new Edge({});\n const edgeStyle = edge[$toStyle]();\n const style = Object.create(null);\n const thickness = edge.presence === \"visible\" ? edge.thickness : 0;\n style.strokeWidth = measureToString(thickness);\n style.stroke = edgeStyle.color;\n let x1, y1, x2, y2;\n let width = \"100%\";\n let height = \"100%\";\n\n if (parent.w <= thickness) {\n [x1, y1, x2, y2] = [\"50%\", 0, \"50%\", \"100%\"];\n width = style.strokeWidth;\n } else if (parent.h <= thickness) {\n [x1, y1, x2, y2] = [0, \"50%\", \"100%\", \"50%\"];\n height = style.strokeWidth;\n } else {\n if (this.slope === \"\\\\\") {\n [x1, y1, x2, y2] = [0, 0, \"100%\", \"100%\"];\n } else {\n [x1, y1, x2, y2] = [0, \"100%\", \"100%\", 0];\n }\n }\n\n const line = {\n name: \"line\",\n attributes: {\n xmlns: SVG_NS,\n x1,\n y1,\n x2,\n y2,\n style,\n },\n };\n\n const svg = {\n name: \"svg\",\n children: [line],\n attributes: {\n xmlns: SVG_NS,\n width,\n height,\n style: {\n overflow: \"visible\",\n },\n },\n };\n\n if (hasMargin(parent)) {\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n style: {\n display: \"inline\",\n width: \"100%\",\n height: \"100%\",\n },\n },\n children: [svg],\n });\n }\n\n svg.attributes.style.position = \"absolute\";\n return HTMLResult.success(svg);\n }\n}\n\nclass Linear extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"linear\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\n \"toRight\",\n \"toBottom\",\n \"toLeft\",\n \"toTop\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle](startColor) {\n startColor = startColor ? startColor[$toStyle]() : \"#FFFFFF\";\n const transf = this.type.replace(/([RBLT])/, \" $1\").toLowerCase();\n const endColor = this.color ? this.color[$toStyle]() : \"#000000\";\n return `linear-gradient(${transf}, ${startColor}, ${endColor})`;\n }\n}\n\nclass LockDocument extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"lockDocument\");\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n this[$content] = getStringOption(this[$content], [\"auto\", \"0\", \"1\"]);\n }\n}\n\nclass Manifest extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"manifest\", /* hasChildren = */ true);\n this.action = getStringOption(attributes.action, [\n \"include\",\n \"all\",\n \"exclude\",\n ]);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.ref = new XFAObjectArray();\n }\n}\n\nclass Margin extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"margin\", /* hasChildren = */ true);\n this.bottomInset = getMeasurement(attributes.bottomInset, \"0\");\n this.id = attributes.id || \"\";\n this.leftInset = getMeasurement(attributes.leftInset, \"0\");\n this.rightInset = getMeasurement(attributes.rightInset, \"0\");\n this.topInset = getMeasurement(attributes.topInset, \"0\");\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n\n [$toStyle]() {\n return {\n margin:\n measureToString(this.topInset) +\n \" \" +\n measureToString(this.rightInset) +\n \" \" +\n measureToString(this.bottomInset) +\n \" \" +\n measureToString(this.leftInset),\n };\n }\n}\n\nclass Mdp extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"mdp\");\n this.id = attributes.id || \"\";\n this.permissions = getInteger({\n data: attributes.permissions,\n defaultValue: 2,\n validate: x => x === 1 || x === 3,\n });\n this.signatureType = getStringOption(attributes.signatureType, [\n \"filler\",\n \"author\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Medium extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"medium\");\n this.id = attributes.id || \"\";\n this.imagingBBox = getBBox(attributes.imagingBBox);\n this.long = getMeasurement(attributes.long);\n this.orientation = getStringOption(attributes.orientation, [\n \"portrait\",\n \"landscape\",\n ]);\n this.short = getMeasurement(attributes.short);\n this.stock = attributes.stock || \"\";\n this.trayIn = getStringOption(attributes.trayIn, [\n \"auto\",\n \"delegate\",\n \"pageFront\",\n ]);\n this.trayOut = getStringOption(attributes.trayOut, [\"auto\", \"delegate\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Message extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"message\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.text = new XFAObjectArray();\n }\n}\n\nclass NumericEdit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"numericEdit\", /* hasChildren = */ true);\n this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, [\n \"auto\",\n \"off\",\n \"on\",\n ]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.comb = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n const style = toStyle(this, \"border\", \"font\", \"margin\");\n const field = this[$getParent]()[$getParent]();\n const html = {\n name: \"input\",\n attributes: {\n type: \"text\",\n fieldId: field[$uid],\n dataId: (field[$data] && field[$data][$uid]) || field[$uid],\n class: [\"xfaTextfield\"],\n style,\n \"aria-label\": ariaLabel(field),\n },\n };\n\n return HTMLResult.success({\n name: \"label\",\n attributes: {\n class: [\"xfaLabel\"],\n },\n children: [html],\n });\n }\n}\n\nclass Occur extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"occur\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.initial =\n attributes.initial !== \"\"\n ? getInteger({\n data: attributes.initial,\n defaultValue: \"\",\n validate: x => true,\n })\n : \"\";\n this.max =\n attributes.max !== \"\"\n ? getInteger({\n data: attributes.max,\n defaultValue: 1,\n validate: x => true,\n })\n : \"\";\n this.min =\n attributes.min !== \"\"\n ? getInteger({\n data: attributes.min,\n defaultValue: 1,\n validate: x => true,\n })\n : \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n\n [$clean]() {\n const parent = this[$getParent]();\n const originalMin = this.min;\n\n if (this.min === \"\") {\n this.min =\n parent instanceof PageArea || parent instanceof PageSet ? 0 : 1;\n }\n if (this.max === \"\") {\n if (originalMin === \"\") {\n this.max =\n parent instanceof PageArea || parent instanceof PageSet ? -1 : 1;\n } else {\n this.max = this.min;\n }\n }\n\n if (this.max !== -1 && this.max < this.min) {\n this.max = this.min;\n }\n\n if (this.initial === \"\") {\n this.initial = parent instanceof Template ? 1 : this.min;\n }\n }\n}\n\nclass Oid extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"oid\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Oids extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"oids\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.oid = new XFAObjectArray();\n }\n}\n\nclass Overflow extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"overflow\");\n this.id = attributes.id || \"\";\n this.leader = attributes.leader || \"\";\n this.target = attributes.target || \"\";\n this.trailer = attributes.trailer || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$getExtra]() {\n if (!this[$extra]) {\n const parent = this[$getParent]();\n const root = this[$getTemplateRoot]();\n const target = root[$searchNode](this.target, parent);\n const leader = root[$searchNode](this.leader, parent);\n const trailer = root[$searchNode](this.trailer, parent);\n this[$extra] = {\n target: (target && target[0]) || null,\n leader: (leader && leader[0]) || null,\n trailer: (trailer && trailer[0]) || null,\n addLeader: false,\n addTrailer: false,\n };\n }\n return this[$extra];\n }\n}\n\nclass PageArea extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"pageArea\", /* hasChildren = */ true);\n this.blankOrNotBlank = getStringOption(attributes.blankOrNotBlank, [\n \"any\",\n \"blank\",\n \"notBlank\",\n ]);\n this.id = attributes.id || \"\";\n this.initialNumber = getInteger({\n data: attributes.initialNumber,\n defaultValue: 1,\n validate: x => true,\n });\n this.name = attributes.name || \"\";\n this.numbered = getInteger({\n data: attributes.numbered,\n defaultValue: 1,\n validate: x => true,\n });\n this.oddOrEven = getStringOption(attributes.oddOrEven, [\n \"any\",\n \"even\",\n \"odd\",\n ]);\n this.pagePosition = getStringOption(attributes.pagePosition, [\n \"any\",\n \"first\",\n \"last\",\n \"only\",\n \"rest\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.desc = null;\n this.extras = null;\n this.medium = null;\n this.occur = null;\n this.area = new XFAObjectArray();\n this.contentArea = new XFAObjectArray();\n this.draw = new XFAObjectArray();\n this.exclGroup = new XFAObjectArray();\n this.field = new XFAObjectArray();\n this.subform = new XFAObjectArray();\n }\n\n [$isUsable]() {\n if (!this[$extra]) {\n this[$extra] = {\n numberOfUse: 0,\n };\n return true;\n }\n return (\n !this.occur ||\n this.occur.max === -1 ||\n this[$extra].numberOfUse < this.occur.max\n );\n }\n\n [$cleanPage]() {\n delete this[$extra];\n }\n\n [$getNextPage]() {\n if (!this[$extra]) {\n this[$extra] = {\n numberOfUse: 0,\n };\n }\n\n const parent = this[$getParent]();\n if (parent.relation === \"orderedOccurrence\") {\n if (this[$isUsable]()) {\n this[$extra].numberOfUse += 1;\n return this;\n }\n }\n\n return parent[$getNextPage]();\n }\n\n [$getAvailableSpace]() {\n return this[$extra].space || { width: 0, height: 0 };\n }\n\n [$toHTML]() {\n // TODO: incomplete.\n if (!this[$extra]) {\n this[$extra] = {\n numberOfUse: 1,\n };\n }\n\n const children = [];\n this[$extra].children = children;\n\n const style = Object.create(null);\n if (this.medium && this.medium.short && this.medium.long) {\n style.width = measureToString(this.medium.short);\n style.height = measureToString(this.medium.long);\n this[$extra].space = {\n width: this.medium.short,\n height: this.medium.long,\n };\n if (this.medium.orientation === \"landscape\") {\n const x = style.width;\n style.width = style.height;\n style.height = x;\n this[$extra].space = {\n width: this.medium.long,\n height: this.medium.short,\n };\n }\n } else {\n warn(\"XFA - No medium specified in pageArea: please file a bug.\");\n }\n\n this[$childrenToHTML]({\n filter: new Set([\"area\", \"draw\", \"field\", \"subform\"]),\n include: true,\n });\n\n // contentarea must be the last container to be sure it is\n // on top of the others.\n this[$childrenToHTML]({\n filter: new Set([\"contentArea\"]),\n include: true,\n });\n\n return HTMLResult.success({\n name: \"div\",\n children,\n attributes: {\n class: [\"xfaPage\"],\n id: this[$uid],\n style,\n xfaName: this.name,\n },\n });\n }\n}\n\nclass PageSet extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"pageSet\", /* hasChildren = */ true);\n this.duplexImposition = getStringOption(attributes.duplexImposition, [\n \"longEdge\",\n \"shortEdge\",\n ]);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.relation = getStringOption(attributes.relation, [\n \"orderedOccurrence\",\n \"duplexPaginated\",\n \"simplexPaginated\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.occur = null;\n this.pageArea = new XFAObjectArray();\n this.pageSet = new XFAObjectArray();\n }\n\n [$cleanPage]() {\n for (const page of this.pageArea.children) {\n page[$cleanPage]();\n }\n for (const page of this.pageSet.children) {\n page[$cleanPage]();\n }\n }\n\n [$isUsable]() {\n return (\n !this.occur ||\n this.occur.max === -1 ||\n this[$extra].numberOfUse < this.occur.max\n );\n }\n\n [$getNextPage]() {\n if (!this[$extra]) {\n this[$extra] = {\n numberOfUse: 1,\n pageIndex: -1,\n pageSetIndex: -1,\n };\n }\n\n if (this.relation === \"orderedOccurrence\") {\n if (this[$extra].pageIndex + 1 < this.pageArea.children.length) {\n this[$extra].pageIndex += 1;\n const pageArea = this.pageArea.children[this[$extra].pageIndex];\n return pageArea[$getNextPage]();\n }\n\n if (this[$extra].pageSetIndex + 1 < this.pageSet.children.length) {\n this[$extra].pageSetIndex += 1;\n return this.pageSet.children[this[$extra].pageSetIndex][$getNextPage]();\n }\n\n if (this[$isUsable]()) {\n this[$extra].numberOfUse += 1;\n this[$extra].pageIndex = -1;\n this[$extra].pageSetIndex = -1;\n return this[$getNextPage]();\n }\n\n const parent = this[$getParent]();\n if (parent instanceof PageSet) {\n return parent[$getNextPage]();\n }\n\n this[$cleanPage]();\n return this[$getNextPage]();\n }\n const pageNumber = this[$getTemplateRoot]()[$extra].pageNumber;\n const parity = pageNumber % 2 === 0 ? \"even\" : \"odd\";\n const position = pageNumber === 0 ? \"first\" : \"rest\";\n\n let page = this.pageArea.children.find(\n p => p.oddOrEven === parity && p.pagePosition === position\n );\n if (page) {\n return page;\n }\n\n page = this.pageArea.children.find(\n p => p.oddOrEven === \"any\" && p.pagePosition === position\n );\n if (page) {\n return page;\n }\n\n page = this.pageArea.children.find(\n p => p.oddOrEven === \"any\" && p.pagePosition === \"any\"\n );\n if (page) {\n return page;\n }\n\n return this.pageArea.children[0];\n }\n}\n\nclass Para extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"para\", /* hasChildren = */ true);\n this.hAlign = getStringOption(attributes.hAlign, [\n \"left\",\n \"center\",\n \"justify\",\n \"justifyAll\",\n \"radix\",\n \"right\",\n ]);\n this.id = attributes.id || \"\";\n this.lineHeight = attributes.lineHeight\n ? getMeasurement(attributes.lineHeight, \"0pt\")\n : \"\";\n this.marginLeft = attributes.marginLeft\n ? getMeasurement(attributes.marginLeft, \"0pt\")\n : \"\";\n this.marginRight = attributes.marginRight\n ? getMeasurement(attributes.marginRight, \"0pt\")\n : \"\";\n this.orphans = getInteger({\n data: attributes.orphans,\n defaultValue: 0,\n validate: x => x >= 0,\n });\n this.preserve = attributes.preserve || \"\";\n this.radixOffset = attributes.radixOffset\n ? getMeasurement(attributes.radixOffset, \"0pt\")\n : \"\";\n this.spaceAbove = attributes.spaceAbove\n ? getMeasurement(attributes.spaceAbove, \"0pt\")\n : \"\";\n this.spaceBelow = attributes.spaceBelow\n ? getMeasurement(attributes.spaceBelow, \"0pt\")\n : \"\";\n this.tabDefault = attributes.tabDefault\n ? getMeasurement(this.tabDefault)\n : \"\";\n this.tabStops = (attributes.tabStops || \"\")\n .trim()\n .split(/\\s+/)\n .map((x, i) => (i % 2 === 1 ? getMeasurement(x) : x));\n this.textIndent = attributes.textIndent\n ? getMeasurement(attributes.textIndent, \"0pt\")\n : \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.vAlign = getStringOption(attributes.vAlign, [\n \"top\",\n \"bottom\",\n \"middle\",\n ]);\n this.widows = getInteger({\n data: attributes.widows,\n defaultValue: 0,\n validate: x => x >= 0,\n });\n this.hyphenation = null;\n }\n\n [$toStyle]() {\n const style = toStyle(this, \"hAlign\");\n if (this.marginLeft !== \"\") {\n style.paddingLeft = measureToString(this.marginLeft);\n }\n if (this.marginRight !== \"\") {\n style.paddingight = measureToString(this.marginRight);\n }\n if (this.spaceAbove !== \"\") {\n style.paddingTop = measureToString(this.spaceAbove);\n }\n if (this.spaceBelow !== \"\") {\n style.paddingBottom = measureToString(this.spaceBelow);\n }\n if (this.textIndent !== \"\") {\n style.textIndent = measureToString(this.textIndent);\n fixTextIndent(style);\n }\n\n if (this.lineHeight > 0) {\n style.lineHeight = measureToString(this.lineHeight);\n }\n\n if (this.tabDefault !== \"\") {\n style.tabSize = measureToString(this.tabDefault);\n }\n\n if (this.tabStops.length > 0) {\n // TODO\n }\n\n if (this.hyphenatation) {\n Object.assign(style, this.hyphenatation[$toStyle]());\n }\n\n return style;\n }\n}\n\nclass PasswordEdit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"passwordEdit\", /* hasChildren = */ true);\n this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, [\n \"auto\",\n \"off\",\n \"on\",\n ]);\n this.id = attributes.id || \"\";\n this.passwordChar = attributes.passwordChar || \"*\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.margin = null;\n }\n}\n\nclass Pattern extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"pattern\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\n \"crossHatch\",\n \"crossDiagonal\",\n \"diagonalLeft\",\n \"diagonalRight\",\n \"horizontal\",\n \"vertical\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle](startColor) {\n startColor = startColor ? startColor[$toStyle]() : \"#FFFFFF\";\n const endColor = this.color ? this.color[$toStyle]() : \"#000000\";\n const width = 5;\n const cmd = \"repeating-linear-gradient\";\n const colors = `${startColor},${startColor} ${width}px,${endColor} ${width}px,${endColor} ${\n 2 * width\n }px`;\n switch (this.type) {\n case \"crossHatch\":\n return `${cmd}(to top,${colors}) ${cmd}(to right,${colors})`;\n case \"crossDiagonal\":\n return `${cmd}(45deg,${colors}) ${cmd}(-45deg,${colors})`;\n case \"diagonalLeft\":\n return `${cmd}(45deg,${colors})`;\n case \"diagonalRight\":\n return `${cmd}(-45deg,${colors})`;\n case \"horizontal\":\n return `${cmd}(to top,${colors})`;\n case \"vertical\":\n return `${cmd}(to right,${colors})`;\n }\n\n return \"\";\n }\n}\n\nclass Picture extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"picture\");\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Proto extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"proto\", /* hasChildren = */ true);\n this.appearanceFilter = new XFAObjectArray();\n this.arc = new XFAObjectArray();\n this.area = new XFAObjectArray();\n this.assist = new XFAObjectArray();\n this.barcode = new XFAObjectArray();\n this.bindItems = new XFAObjectArray();\n this.bookend = new XFAObjectArray();\n this.boolean = new XFAObjectArray();\n this.border = new XFAObjectArray();\n this.break = new XFAObjectArray();\n this.breakAfter = new XFAObjectArray();\n this.breakBefore = new XFAObjectArray();\n this.button = new XFAObjectArray();\n this.calculate = new XFAObjectArray();\n this.caption = new XFAObjectArray();\n this.certificate = new XFAObjectArray();\n this.certificates = new XFAObjectArray();\n this.checkButton = new XFAObjectArray();\n this.choiceList = new XFAObjectArray();\n this.color = new XFAObjectArray();\n this.comb = new XFAObjectArray();\n this.connect = new XFAObjectArray();\n this.contentArea = new XFAObjectArray();\n this.corner = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.dateTimeEdit = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.defaultUi = new XFAObjectArray();\n this.desc = new XFAObjectArray();\n this.digestMethod = new XFAObjectArray();\n this.digestMethods = new XFAObjectArray();\n this.draw = new XFAObjectArray();\n this.edge = new XFAObjectArray();\n this.encoding = new XFAObjectArray();\n this.encodings = new XFAObjectArray();\n this.encrypt = new XFAObjectArray();\n this.encryptData = new XFAObjectArray();\n this.encryption = new XFAObjectArray();\n this.encryptionMethod = new XFAObjectArray();\n this.encryptionMethods = new XFAObjectArray();\n this.event = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.exObject = new XFAObjectArray();\n this.exclGroup = new XFAObjectArray();\n this.execute = new XFAObjectArray();\n this.extras = new XFAObjectArray();\n this.field = new XFAObjectArray();\n this.fill = new XFAObjectArray();\n this.filter = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.font = new XFAObjectArray();\n this.format = new XFAObjectArray();\n this.handler = new XFAObjectArray();\n this.hyphenation = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.imageEdit = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.issuers = new XFAObjectArray();\n this.items = new XFAObjectArray();\n this.keep = new XFAObjectArray();\n this.keyUsage = new XFAObjectArray();\n this.line = new XFAObjectArray();\n this.linear = new XFAObjectArray();\n this.lockDocument = new XFAObjectArray();\n this.manifest = new XFAObjectArray();\n this.margin = new XFAObjectArray();\n this.mdp = new XFAObjectArray();\n this.medium = new XFAObjectArray();\n this.message = new XFAObjectArray();\n this.numericEdit = new XFAObjectArray();\n this.occur = new XFAObjectArray();\n this.oid = new XFAObjectArray();\n this.oids = new XFAObjectArray();\n this.overflow = new XFAObjectArray();\n this.pageArea = new XFAObjectArray();\n this.pageSet = new XFAObjectArray();\n this.para = new XFAObjectArray();\n this.passwordEdit = new XFAObjectArray();\n this.pattern = new XFAObjectArray();\n this.picture = new XFAObjectArray();\n this.radial = new XFAObjectArray();\n this.reason = new XFAObjectArray();\n this.reasons = new XFAObjectArray();\n this.rectangle = new XFAObjectArray();\n this.ref = new XFAObjectArray();\n this.script = new XFAObjectArray();\n this.setProperty = new XFAObjectArray();\n this.signData = new XFAObjectArray();\n this.signature = new XFAObjectArray();\n this.signing = new XFAObjectArray();\n this.solid = new XFAObjectArray();\n this.speak = new XFAObjectArray();\n this.stipple = new XFAObjectArray();\n this.subform = new XFAObjectArray();\n this.subformSet = new XFAObjectArray();\n this.subjectDN = new XFAObjectArray();\n this.subjectDNs = new XFAObjectArray();\n this.submit = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.textEdit = new XFAObjectArray();\n this.time = new XFAObjectArray();\n this.timeStamp = new XFAObjectArray();\n this.toolTip = new XFAObjectArray();\n this.traversal = new XFAObjectArray();\n this.traverse = new XFAObjectArray();\n this.ui = new XFAObjectArray();\n this.validate = new XFAObjectArray();\n this.value = new XFAObjectArray();\n this.variables = new XFAObjectArray();\n }\n}\n\nclass Radial extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"radial\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"toEdge\", \"toCenter\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle](startColor) {\n startColor = startColor ? startColor[$toStyle]() : \"#FFFFFF\";\n const endColor = this.color ? this.color[$toStyle]() : \"#000000\";\n const colors =\n this.type === \"toEdge\"\n ? `${startColor},${endColor}`\n : `${endColor},${startColor}`;\n return `radial-gradient(circle at center, ${colors})`;\n }\n}\n\nclass Reason extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"reason\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Reasons extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"reasons\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.reason = new XFAObjectArray();\n }\n}\n\nclass Rectangle extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"rectangle\", /* hasChildren = */ true);\n this.hand = getStringOption(attributes.hand, [\"even\", \"left\", \"right\"]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.corner = new XFAObjectArray(4);\n this.edge = new XFAObjectArray(4);\n this.fill = null;\n }\n\n [$toHTML]() {\n const edge = this.edge.children.length\n ? this.edge.children[0]\n : new Edge({});\n const edgeStyle = edge[$toStyle]();\n const style = Object.create(null);\n if (this.fill && this.fill.presence === \"visible\") {\n Object.assign(style, this.fill[$toStyle]());\n } else {\n style.fill = \"transparent\";\n }\n style.strokeWidth = measureToString(\n edge.presence === \"visible\" ? edge.thickness : 0\n );\n style.stroke = edgeStyle.color;\n\n const corner = this.corner.children.length\n ? this.corner.children[0]\n : new Corner({});\n const cornerStyle = corner[$toStyle]();\n\n const rect = {\n name: \"rect\",\n attributes: {\n xmlns: SVG_NS,\n width: \"100%\",\n height: \"100%\",\n x: 0,\n y: 0,\n rx: cornerStyle.radius,\n ry: cornerStyle.radius,\n style,\n },\n };\n\n const svg = {\n name: \"svg\",\n children: [rect],\n attributes: {\n xmlns: SVG_NS,\n style: {\n overflow: \"visible\",\n },\n width: \"100%\",\n height: \"100%\",\n },\n };\n\n const parent = this[$getParent]()[$getParent]();\n if (hasMargin(parent)) {\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n style: {\n display: \"inline\",\n width: \"100%\",\n height: \"100%\",\n },\n },\n children: [svg],\n });\n }\n\n svg.attributes.style.position = \"absolute\";\n return HTMLResult.success(svg);\n }\n}\n\nclass RefElement extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"ref\");\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Script extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"script\");\n this.binding = attributes.binding || \"\";\n this.contentType = attributes.contentType || \"\";\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.runAt = getStringOption(attributes.runAt, [\n \"client\",\n \"both\",\n \"server\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass SetProperty extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"setProperty\");\n this.connection = attributes.connection || \"\";\n this.ref = attributes.ref || \"\";\n this.target = attributes.target || \"\";\n }\n}\n\nclass SignData extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"signData\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.operation = getStringOption(attributes.operation, [\n \"sign\",\n \"clear\",\n \"verify\",\n ]);\n this.ref = attributes.ref || \"\";\n this.target = attributes.target || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.filter = null;\n this.manifest = null;\n }\n}\n\nclass Signature extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"signature\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"PDF1.3\", \"PDF1.6\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.filter = null;\n this.manifest = null;\n this.margin = null;\n }\n}\n\nclass Signing extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"signing\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.certificate = new XFAObjectArray();\n }\n}\n\nclass Solid extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"solid\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n\n [$toStyle](startColor) {\n return startColor ? startColor[$toStyle]() : \"#FFFFFF\";\n }\n}\n\nclass Speak extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"speak\");\n this.disable = getInteger({\n data: attributes.disable,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.id = attributes.id || \"\";\n this.priority = getStringOption(attributes.priority, [\n \"custom\",\n \"caption\",\n \"name\",\n \"toolTip\",\n ]);\n this.rid = attributes.rid || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Stipple extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"stipple\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.rate = getInteger({\n data: attributes.rate,\n defaultValue: 50,\n validate: x => x >= 0 && x <= 100,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle](bgColor) {\n const alpha = this.rate / 100;\n return Util.makeHexColor(\n Math.round(bgColor.value.r * (1 - alpha) + this.value.r * alpha),\n Math.round(bgColor.value.g * (1 - alpha) + this.value.g * alpha),\n Math.round(bgColor.value.b * (1 - alpha) + this.value.b * alpha)\n );\n }\n}\n\nclass Subform extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"subform\", /* hasChildren = */ true);\n this.access = getStringOption(attributes.access, [\n \"open\",\n \"nonInteractive\",\n \"protected\",\n \"readOnly\",\n ]);\n this.allowMacro = getInteger({\n data: attributes.allowMacro,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.anchorType = getStringOption(attributes.anchorType, [\n \"topLeft\",\n \"bottomCenter\",\n \"bottomLeft\",\n \"bottomRight\",\n \"middleCenter\",\n \"middleLeft\",\n \"middleRight\",\n \"topCenter\",\n \"topRight\",\n ]);\n this.colSpan = getInteger({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: n => n >= 1 || n === -1,\n });\n this.columnWidths = (attributes.columnWidths || \"\")\n .trim()\n .split(/\\s+/)\n .map(x => (x === \"-1\" ? -1 : getMeasurement(x)));\n this.h = attributes.h ? getMeasurement(attributes.h) : \"\";\n this.hAlign = getStringOption(attributes.hAlign, [\n \"left\",\n \"center\",\n \"justify\",\n \"justifyAll\",\n \"radix\",\n \"right\",\n ]);\n this.id = attributes.id || \"\";\n this.layout = getStringOption(attributes.layout, [\n \"position\",\n \"lr-tb\",\n \"rl-row\",\n \"rl-tb\",\n \"row\",\n \"table\",\n \"tb\",\n ]);\n this.locale = attributes.locale || \"\";\n this.maxH = getMeasurement(attributes.maxH, \"0pt\");\n this.maxW = getMeasurement(attributes.maxW, \"0pt\");\n this.mergeMode = getStringOption(attributes.mergeMode, [\n \"consumeData\",\n \"matchTemplate\",\n ]);\n this.minH = getMeasurement(attributes.minH, \"0pt\");\n this.minW = getMeasurement(attributes.minW, \"0pt\");\n this.name = attributes.name || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.restoreState = getStringOption(attributes.restoreState, [\n \"manual\",\n \"auto\",\n ]);\n this.scope = getStringOption(attributes.scope, [\"name\", \"none\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = attributes.w ? getMeasurement(attributes.w) : \"\";\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.assist = null;\n this.bind = null;\n this.bookend = null;\n this.border = null;\n this.break = null;\n this.calculate = null;\n this.desc = null;\n this.extras = null;\n this.keep = null;\n this.margin = null;\n this.occur = null;\n this.overflow = null;\n this.pageSet = null;\n this.para = null;\n this.traversal = null;\n this.validate = null;\n this.variables = null;\n this.area = new XFAObjectArray();\n this.breakAfter = new XFAObjectArray();\n this.breakBefore = new XFAObjectArray();\n this.connect = new XFAObjectArray();\n this.draw = new XFAObjectArray();\n this.event = new XFAObjectArray();\n this.exObject = new XFAObjectArray();\n this.exclGroup = new XFAObjectArray();\n this.field = new XFAObjectArray();\n this.proto = new XFAObjectArray();\n this.setProperty = new XFAObjectArray();\n this.subform = new XFAObjectArray();\n this.subformSet = new XFAObjectArray();\n }\n\n [$getSubformParent]() {\n const parent = this[$getParent]();\n if (parent instanceof SubformSet) {\n return parent[$getSubformParent]();\n }\n return parent;\n }\n\n [$isBindable]() {\n return true;\n }\n\n [$isThereMoreWidth]() {\n return (\n (this.layout.endsWith(\"-tb\") &&\n this[$extra].attempt === 0 &&\n this[$extra].numberInLine > 0) ||\n this[$getParent]()[$isThereMoreWidth]()\n );\n }\n\n *[$getContainedChildren]() {\n // This function is overriden in order to fake that subforms under\n // this set are in fact under parent subform.\n yield* getContainedChildren(this);\n }\n\n [$flushHTML]() {\n return flushHTML(this);\n }\n\n [$addHTML](html, bbox) {\n addHTML(this, html, bbox);\n }\n\n [$getAvailableSpace]() {\n return getAvailableSpace(this);\n }\n\n [$isSplittable]() {\n // We cannot cache the result here because the contentArea\n // can change.\n const parent = this[$getSubformParent]();\n if (!parent[$isSplittable]()) {\n return false;\n }\n\n if (this[$extra]._isSplittable !== undefined) {\n return this[$extra]._isSplittable;\n }\n\n if (this.layout === \"position\" || this.layout.includes(\"row\")) {\n this[$extra]._isSplittable = false;\n return false;\n }\n\n if (this.keep && this.keep.intact !== \"none\") {\n this[$extra]._isSplittable = false;\n return false;\n }\n\n if (\n parent.layout &&\n parent.layout.endsWith(\"-tb\") &&\n parent[$extra].numberInLine !== 0\n ) {\n // If parent can fit in w=100 and there's already an element which takes\n // 90 then we've 10 for this element. Suppose this element has a tb layout\n // and 5 elements have a width of 7 and the 6th has a width of 20:\n // then this element (and all its content) must move on the next line.\n // If this element is splittable then the first 5 children will stay\n // at the end of the line: we don't want that.\n return false;\n }\n\n this[$extra]._isSplittable = true;\n\n return true;\n }\n\n [$toHTML](availableSpace) {\n setTabIndex(this);\n\n if (this.break) {\n // break element is deprecated so plug it on one of its replacement\n // breakBefore or breakAfter.\n if (this.break.after !== \"auto\" || this.break.afterTarget !== \"\") {\n const node = new BreakAfter({\n targetType: this.break.after,\n target: this.break.afterTarget,\n startNew: this.break.startNew.toString(),\n });\n node[$globalData] = this[$globalData];\n this[$appendChild](node);\n this.breakAfter.push(node);\n }\n\n if (this.break.before !== \"auto\" || this.break.beforeTarget !== \"\") {\n const node = new BreakBefore({\n targetType: this.break.before,\n target: this.break.beforeTarget,\n startNew: this.break.startNew.toString(),\n });\n node[$globalData] = this[$globalData];\n this[$appendChild](node);\n this.breakBefore.push(node);\n }\n\n if (this.break.overflowTarget !== \"\") {\n const node = new Overflow({\n target: this.break.overflowTarget,\n leader: this.break.overflowLeader,\n trailer: this.break.overflowTrailer,\n });\n node[$globalData] = this[$globalData];\n this[$appendChild](node);\n this.overflow.push(node);\n }\n\n this[$removeChild](this.break);\n this.break = null;\n }\n\n if (this.presence === \"hidden\" || this.presence === \"inactive\") {\n return HTMLResult.EMPTY;\n }\n\n if (\n this.breakBefore.children.length > 1 ||\n this.breakAfter.children.length > 1\n ) {\n // Specs are always talking about the breakBefore element\n // and it doesn't really make sense to have several ones.\n warn(\n \"XFA - Several breakBefore or breakAfter in subforms: please file a bug.\"\n );\n }\n\n if (this.breakBefore.children.length >= 1) {\n const breakBefore = this.breakBefore.children[0];\n if (handleBreak(breakBefore)) {\n return HTMLResult.breakNode(breakBefore);\n }\n }\n\n if (this[$extra] && this[$extra].afterBreakAfter) {\n return HTMLResult.EMPTY;\n }\n\n // TODO: incomplete.\n fixDimensions(this);\n const children = [];\n const attributes = {\n id: this[$uid],\n class: [],\n };\n\n setAccess(this, attributes.class);\n\n if (!this[$extra]) {\n this[$extra] = Object.create(null);\n }\n\n Object.assign(this[$extra], {\n children,\n line: null,\n attributes,\n attempt: 0,\n numberInLine: 0,\n availableSpace: {\n width: Math.min(this.w || Infinity, availableSpace.width),\n height: Math.min(this.h || Infinity, availableSpace.height),\n },\n width: 0,\n height: 0,\n prevHeight: 0,\n currentWidth: 0,\n });\n\n const root = this[$getTemplateRoot]();\n const savedNoLayoutFailure = root[$extra].noLayoutFailure;\n\n const isSplittable = this[$isSplittable]();\n if (!isSplittable) {\n setFirstUnsplittable(this);\n }\n\n if (!checkDimensions(this, availableSpace)) {\n return HTMLResult.FAILURE;\n }\n\n const filter = new Set([\n \"area\",\n \"draw\",\n \"exclGroup\",\n \"field\",\n \"subform\",\n \"subformSet\",\n ]);\n\n if (this.layout.includes(\"row\")) {\n const columnWidths = this[$getSubformParent]().columnWidths;\n if (Array.isArray(columnWidths) && columnWidths.length > 0) {\n this[$extra].columnWidths = columnWidths;\n this[$extra].currentColumn = 0;\n }\n }\n\n const style = toStyle(\n this,\n \"anchorType\",\n \"dimensions\",\n \"position\",\n \"presence\",\n \"border\",\n \"margin\",\n \"hAlign\"\n );\n const classNames = [\"xfaSubform\"];\n const cl = layoutClass(this);\n if (cl) {\n classNames.push(cl);\n }\n\n attributes.style = style;\n attributes.class = classNames;\n\n if (this.name) {\n attributes.xfaName = this.name;\n }\n\n if (this.overflow) {\n const overflowExtra = this.overflow[$getExtra]();\n if (overflowExtra.addLeader) {\n overflowExtra.addLeader = false;\n handleOverflow(this, overflowExtra.leader, availableSpace);\n }\n }\n\n this[$pushPara]();\n const isLrTb = this.layout === \"lr-tb\" || this.layout === \"rl-tb\";\n const maxRun = isLrTb ? MAX_ATTEMPTS_FOR_LRTB_LAYOUT : 1;\n for (; this[$extra].attempt < maxRun; this[$extra].attempt++) {\n if (isLrTb && this[$extra].attempt === MAX_ATTEMPTS_FOR_LRTB_LAYOUT - 1) {\n // If the layout is lr-tb then having attempt equals to\n // MAX_ATTEMPTS_FOR_LRTB_LAYOUT-1 means that we're trying to layout\n // on the next line so this on is empty.\n this[$extra].numberInLine = 0;\n }\n const result = this[$childrenToHTML]({\n filter,\n include: true,\n });\n if (result.success) {\n break;\n }\n if (result.isBreak()) {\n this[$popPara]();\n return result;\n }\n if (\n isLrTb &&\n this[$extra].attempt === 0 &&\n this[$extra].numberInLine === 0 &&\n !root[$extra].noLayoutFailure\n ) {\n // We're failing to put the first element on the line so no\n // need to test on the next line.\n // The goal is not only to avoid some useless checks but to avoid\n // bugs too: if a descendant managed to put a node and failed\n // on the next one, going to the next step here will imply to\n // visit the descendant again, clear [$extra].children and restart\n // on the failing node, consequently the first node just disappears\n // because it has never been flushed.\n this[$extra].attempt = maxRun;\n break;\n }\n }\n\n this[$popPara]();\n if (!isSplittable) {\n unsetFirstUnsplittable(this);\n }\n root[$extra].noLayoutFailure = savedNoLayoutFailure;\n\n if (this[$extra].attempt === maxRun) {\n if (this.overflow) {\n this[$getTemplateRoot]()[$extra].overflowNode = this.overflow;\n }\n\n if (!isSplittable) {\n // Since a new try will happen in a new container with maybe\n // new dimensions, we invalidate already layed out components.\n delete this[$extra];\n }\n return HTMLResult.FAILURE;\n }\n\n if (this.overflow) {\n const overflowExtra = this.overflow[$getExtra]();\n if (overflowExtra.addTrailer) {\n overflowExtra.addTrailer = false;\n handleOverflow(this, overflowExtra.trailer, availableSpace);\n }\n }\n\n let marginH = 0;\n let marginV = 0;\n if (this.margin) {\n marginH = this.margin.leftInset + this.margin.rightInset;\n marginV = this.margin.topInset + this.margin.bottomInset;\n }\n\n const width = Math.max(this[$extra].width + marginH, this.w || 0);\n const height = Math.max(this[$extra].height + marginV, this.h || 0);\n const bbox = [this.x, this.y, width, height];\n\n if (this.w === \"\") {\n style.width = measureToString(width);\n }\n if (this.h === \"\") {\n style.height = measureToString(height);\n }\n\n if (\n (style.width === \"0px\" || style.height === \"0px\") &&\n children.length === 0\n ) {\n return HTMLResult.EMPTY;\n }\n\n const html = {\n name: \"div\",\n attributes,\n children,\n };\n\n applyAssist(this, attributes);\n\n const result = HTMLResult.success(createWrapper(this, html), bbox);\n\n if (this.breakAfter.children.length >= 1) {\n const breakAfter = this.breakAfter.children[0];\n if (handleBreak(breakAfter)) {\n this[$extra].afterBreakAfter = result;\n return HTMLResult.breakNode(breakAfter);\n }\n }\n\n delete this[$extra];\n\n return result;\n }\n}\n\nclass SubformSet extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"subformSet\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.relation = getStringOption(attributes.relation, [\n \"ordered\",\n \"choice\",\n \"unordered\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.bookend = null;\n this.break = null;\n this.desc = null;\n this.extras = null;\n this.occur = null;\n this.overflow = null;\n this.breakAfter = new XFAObjectArray();\n this.breakBefore = new XFAObjectArray();\n this.subform = new XFAObjectArray();\n this.subformSet = new XFAObjectArray();\n\n // TODO: need to handle break stuff and relation.\n }\n\n *[$getContainedChildren]() {\n // This function is overriden in order to fake that subforms under\n // this set are in fact under parent subform.\n yield* getContainedChildren(this);\n }\n\n [$getSubformParent]() {\n let parent = this[$getParent]();\n while (!(parent instanceof Subform)) {\n parent = parent[$getParent]();\n }\n return parent;\n }\n\n [$isBindable]() {\n return true;\n }\n}\n\nclass SubjectDN extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"subjectDN\");\n this.delimiter = attributes.delimiter || \",\";\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n this[$content] = new Map(\n this[$content].split(this.delimiter).map(kv => {\n kv = kv.split(\"=\", 2);\n kv[0] = kv[0].trim();\n return kv;\n })\n );\n }\n}\n\nclass SubjectDNs extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"subjectDNs\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.subjectDN = new XFAObjectArray();\n }\n}\n\nclass Submit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"submit\", /* hasChildren = */ true);\n this.embedPDF = getInteger({\n data: attributes.embedPDF,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.format = getStringOption(attributes.format, [\n \"xdp\",\n \"formdata\",\n \"pdf\",\n \"urlencoded\",\n \"xfd\",\n \"xml\",\n ]);\n this.id = attributes.id || \"\";\n this.target = attributes.target || \"\";\n this.textEncoding = getKeyword({\n data: attributes.textEncoding\n ? attributes.textEncoding.toLowerCase()\n : \"\",\n defaultValue: \"\",\n validate: k =>\n [\n \"utf-8\",\n \"big-five\",\n \"fontspecific\",\n \"gbk\",\n \"gb-18030\",\n \"gb-2312\",\n \"ksc-5601\",\n \"none\",\n \"shift-jis\",\n \"ucs-2\",\n \"utf-16\",\n ].includes(k) || k.match(/iso-8859-\\d{2}/),\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.xdpContent = attributes.xdpContent || \"\";\n this.encrypt = null;\n this.encryptData = new XFAObjectArray();\n this.signData = new XFAObjectArray();\n }\n}\n\nclass Template extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"template\", /* hasChildren = */ true);\n this.baseProfile = getStringOption(attributes.baseProfile, [\n \"full\",\n \"interactiveForms\",\n ]);\n this.extras = null;\n\n // Spec is unclear:\n // A container element that describes a single subform capable of\n // enclosing other containers.\n // Can we have more than one subform ?\n this.subform = new XFAObjectArray();\n }\n\n [$finalize]() {\n if (this.subform.children.length === 0) {\n warn(\"XFA - No subforms in template node.\");\n }\n if (this.subform.children.length >= 2) {\n warn(\"XFA - Several subforms in template node: please file a bug.\");\n }\n this[$tabIndex] = DEFAULT_TAB_INDEX;\n }\n\n [$isSplittable]() {\n return true;\n }\n\n [$searchNode](expr, container) {\n if (expr.startsWith(\"#\")) {\n // This is an id.\n return [this[$ids].get(expr.slice(1))];\n }\n return searchNode(this, container, expr, true, true);\n }\n\n /**\n * This function is a generator because the conversion into\n * pages is done asynchronously and we want to save the state\n * of the function where we were in the previous iteration.\n */\n *[$toPages]() {\n if (!this.subform.children.length) {\n return HTMLResult.success({\n name: \"div\",\n children: [],\n });\n }\n this[$extra] = {\n overflowNode: null,\n firstUnsplittable: null,\n currentContentArea: null,\n currentPageArea: null,\n noLayoutFailure: false,\n pageNumber: 1,\n pagePosition: \"first\",\n oddOrEven: \"odd\",\n blankOrNotBlank: \"nonBlank\",\n paraStack: [],\n };\n\n const root = this.subform.children[0];\n root.pageSet[$cleanPage]();\n\n const pageAreas = root.pageSet.pageArea.children;\n const mainHtml = {\n name: \"div\",\n children: [],\n };\n\n let pageArea = null;\n let breakBefore = null;\n let breakBeforeTarget = null;\n if (root.breakBefore.children.length >= 1) {\n breakBefore = root.breakBefore.children[0];\n breakBeforeTarget = breakBefore.target;\n } else if (\n root.subform.children.length >= 1 &&\n root.subform.children[0].breakBefore.children.length >= 1\n ) {\n breakBefore = root.subform.children[0].breakBefore.children[0];\n breakBeforeTarget = breakBefore.target;\n } else if (root.break && root.break.beforeTarget) {\n breakBefore = root.break;\n breakBeforeTarget = breakBefore.beforeTarget;\n } else if (\n root.subform.children.length >= 1 &&\n root.subform.children[0].break &&\n root.subform.children[0].break.beforeTarget\n ) {\n breakBefore = root.subform.children[0].break;\n breakBeforeTarget = breakBefore.beforeTarget;\n }\n\n if (breakBefore) {\n const target = this[$searchNode](\n breakBeforeTarget,\n breakBefore[$getParent]()\n );\n if (target instanceof PageArea) {\n pageArea = target;\n // Consume breakBefore.\n breakBefore[$extra] = {};\n }\n }\n\n if (!pageArea) {\n pageArea = pageAreas[0];\n }\n\n pageArea[$extra] = {\n numberOfUse: 1,\n };\n\n const pageAreaParent = pageArea[$getParent]();\n pageAreaParent[$extra] = {\n numberOfUse: 1,\n pageIndex: pageAreaParent.pageArea.children.indexOf(pageArea),\n pageSetIndex: 0,\n };\n\n let targetPageArea;\n let leader = null;\n let trailer = null;\n let hasSomething = true;\n let hasSomethingCounter = 0;\n let startIndex = 0;\n\n while (true) {\n if (!hasSomething) {\n mainHtml.children.pop();\n // Nothing has been added in the previous page\n if (++hasSomethingCounter === MAX_EMPTY_PAGES) {\n warn(\"XFA - Something goes wrong: please file a bug.\");\n return mainHtml;\n }\n } else {\n hasSomethingCounter = 0;\n }\n\n targetPageArea = null;\n this[$extra].currentPageArea = pageArea;\n const page = pageArea[$toHTML]().html;\n mainHtml.children.push(page);\n\n if (leader) {\n this[$extra].noLayoutFailure = true;\n page.children.push(leader[$toHTML](pageArea[$extra].space).html);\n leader = null;\n }\n\n if (trailer) {\n this[$extra].noLayoutFailure = true;\n page.children.push(trailer[$toHTML](pageArea[$extra].space).html);\n trailer = null;\n }\n\n const contentAreas = pageArea.contentArea.children;\n const htmlContentAreas = page.children.filter(node =>\n node.attributes.class.includes(\"xfaContentarea\")\n );\n\n hasSomething = false;\n this[$extra].firstUnsplittable = null;\n this[$extra].noLayoutFailure = false;\n\n const flush = index => {\n const html = root[$flushHTML]();\n if (html) {\n hasSomething =\n hasSomething || (html.children && html.children.length !== 0);\n htmlContentAreas[index].children.push(html);\n }\n };\n\n for (let i = startIndex, ii = contentAreas.length; i < ii; i++) {\n const contentArea = (this[$extra].currentContentArea = contentAreas[i]);\n const space = { width: contentArea.w, height: contentArea.h };\n startIndex = 0;\n\n if (leader) {\n htmlContentAreas[i].children.push(leader[$toHTML](space).html);\n leader = null;\n }\n\n if (trailer) {\n htmlContentAreas[i].children.push(trailer[$toHTML](space).html);\n trailer = null;\n }\n\n const html = root[$toHTML](space);\n if (html.success) {\n if (html.html) {\n hasSomething =\n hasSomething ||\n (html.html.children && html.html.children.length !== 0);\n htmlContentAreas[i].children.push(html.html);\n } else if (!hasSomething && mainHtml.children.length > 1) {\n mainHtml.children.pop();\n }\n return mainHtml;\n }\n\n if (html.isBreak()) {\n const node = html.breakNode;\n flush(i);\n\n if (node.targetType === \"auto\") {\n continue;\n }\n\n if (node.leader) {\n leader = this[$searchNode](node.leader, node[$getParent]());\n leader = leader ? leader[0] : null;\n }\n\n if (node.trailer) {\n trailer = this[$searchNode](node.trailer, node[$getParent]());\n trailer = trailer ? trailer[0] : null;\n }\n\n if (node.targetType === \"pageArea\") {\n targetPageArea = node[$extra].target;\n i = Infinity;\n } else if (!node[$extra].target) {\n // We stay on the same page.\n i = node[$extra].index;\n } else {\n targetPageArea = node[$extra].target;\n startIndex = node[$extra].index + 1;\n i = Infinity;\n }\n\n continue;\n }\n\n if (this[$extra].overflowNode) {\n const node = this[$extra].overflowNode;\n this[$extra].overflowNode = null;\n\n const overflowExtra = node[$getExtra]();\n const target = overflowExtra.target;\n overflowExtra.addLeader = overflowExtra.leader !== null;\n overflowExtra.addTrailer = overflowExtra.trailer !== null;\n\n flush(i);\n\n const currentIndex = i;\n\n i = Infinity;\n if (target instanceof PageArea) {\n // We must stop the contentAreas filling and go to the next page.\n targetPageArea = target;\n } else if (target instanceof ContentArea) {\n const index = contentAreas.findIndex(e => e === target);\n if (index !== -1) {\n if (index > currentIndex) {\n // In the next loop iteration `i` will be incremented, note the\n // `continue` just below, hence we need to subtract one here.\n i = index - 1;\n } else {\n // The targetted contentArea has already been filled\n // so create a new page.\n startIndex = index;\n }\n } else {\n targetPageArea = target[$getParent]();\n startIndex = targetPageArea.contentArea.children.findIndex(\n e => e === target\n );\n }\n }\n continue;\n }\n\n flush(i);\n }\n\n this[$extra].pageNumber += 1;\n if (targetPageArea) {\n if (targetPageArea[$isUsable]()) {\n targetPageArea[$extra].numberOfUse += 1;\n } else {\n targetPageArea = null;\n }\n }\n pageArea = targetPageArea || pageArea[$getNextPage]();\n yield null;\n }\n }\n}\n\nclass Text extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"text\");\n this.id = attributes.id || \"\";\n this.maxChars = getInteger({\n data: attributes.maxChars,\n defaultValue: 0,\n validate: x => x >= 0,\n });\n this.name = attributes.name || \"\";\n this.rid = attributes.rid || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$acceptWhitespace]() {\n return true;\n }\n\n [$onChild](child) {\n if (child[$namespaceId] === NamespaceIds.xhtml.id) {\n this[$content] = child;\n return true;\n }\n warn(`XFA - Invalid content in Text: ${child[$nodeName]}.`);\n return false;\n }\n\n [$onText](str) {\n if (this[$content] instanceof XFAObject) {\n return;\n }\n super[$onText](str);\n }\n\n [$finalize]() {\n if (typeof this[$content] === \"string\") {\n this[$content] = this[$content].replace(/\\r\\n/g, \"\\n\");\n }\n }\n\n [$getExtra]() {\n if (typeof this[$content] === \"string\") {\n return this[$content]\n .split(/[\\u2029\\u2028\\n]/)\n .reduce((acc, line) => {\n if (line) {\n acc.push(line);\n }\n return acc;\n }, [])\n .join(\"\\n\");\n }\n return this[$content][$text]();\n }\n\n [$toHTML](availableSpace) {\n if (typeof this[$content] === \"string\") {\n // \\u2028 is a line separator.\n // \\u2029 is a paragraph separator.\n const html = valueToHtml(this[$content]).html;\n\n if (this[$content].includes(\"\\u2029\")) {\n // We've plain text containing a paragraph separator\n // so convert it into a set of

.\n html.name = \"div\";\n html.children = [];\n this[$content]\n .split(\"\\u2029\")\n .map(para =>\n // Convert a paragraph into a set of (for lines)\n // separated by
.\n para.split(/[\\u2028\\n]/).reduce((acc, line) => {\n acc.push(\n {\n name: \"span\",\n value: line,\n },\n {\n name: \"br\",\n }\n );\n return acc;\n }, [])\n )\n .forEach(lines => {\n html.children.push({\n name: \"p\",\n children: lines,\n });\n });\n } else if (/[\\u2028\\n]/.test(this[$content])) {\n html.name = \"div\";\n html.children = [];\n // Convert plain text into a set of (for lines)\n // separated by
.\n this[$content].split(/[\\u2028\\n]/).forEach(line => {\n html.children.push(\n {\n name: \"span\",\n value: line,\n },\n {\n name: \"br\",\n }\n );\n });\n }\n\n return HTMLResult.success(html);\n }\n\n return this[$content][$toHTML](availableSpace);\n }\n}\n\nclass TextEdit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"textEdit\", /* hasChildren = */ true);\n this.allowRichText = getInteger({\n data: attributes.allowRichText,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, [\n \"auto\",\n \"off\",\n \"on\",\n ]);\n this.id = attributes.id || \"\";\n this.multiLine = getInteger({\n data: attributes.multiLine,\n defaultValue: \"\",\n validate: x => x === 0 || x === 1,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.vScrollPolicy = getStringOption(attributes.vScrollPolicy, [\n \"auto\",\n \"off\",\n \"on\",\n ]);\n this.border = null;\n this.comb = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n const style = toStyle(this, \"border\", \"font\", \"margin\");\n let html;\n const field = this[$getParent]()[$getParent]();\n if (this.multiLine === \"\") {\n this.multiLine = field instanceof Draw ? 1 : 0;\n }\n if (this.multiLine === 1) {\n html = {\n name: \"textarea\",\n attributes: {\n dataId: (field[$data] && field[$data][$uid]) || field[$uid],\n fieldId: field[$uid],\n class: [\"xfaTextfield\"],\n style,\n \"aria-label\": ariaLabel(field),\n },\n };\n } else {\n html = {\n name: \"input\",\n attributes: {\n type: \"text\",\n dataId: (field[$data] && field[$data][$uid]) || field[$uid],\n fieldId: field[$uid],\n class: [\"xfaTextfield\"],\n style,\n \"aria-label\": ariaLabel(field),\n },\n };\n }\n\n return HTMLResult.success({\n name: \"label\",\n attributes: {\n class: [\"xfaLabel\"],\n },\n children: [html],\n });\n }\n}\n\nclass Time extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"time\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n // TODO: need to handle the string as a time and not as a date.\n const date = this[$content].trim();\n this[$content] = date ? new Date(date) : null;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(this[$content] ? this[$content].toString() : \"\");\n }\n}\n\nclass TimeStamp extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"timeStamp\");\n this.id = attributes.id || \"\";\n this.server = attributes.server || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass ToolTip extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"toolTip\");\n this.id = attributes.id || \"\";\n this.rid = attributes.rid || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Traversal extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"traversal\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.traverse = new XFAObjectArray();\n }\n}\n\nclass Traverse extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"traverse\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.operation = getStringOption(attributes.operation, [\n \"next\",\n \"back\",\n \"down\",\n \"first\",\n \"left\",\n \"right\",\n \"up\",\n ]);\n this.ref = attributes.ref || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.script = null;\n }\n\n get name() {\n // SOM expression: see page 94\n return this.operation;\n }\n\n [$isTransparent]() {\n return false;\n }\n}\n\nclass Ui extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"ui\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.picture = null;\n\n // One-of properties\n this.barcode = null;\n this.button = null;\n this.checkButton = null;\n this.choiceList = null;\n this.dateTimeEdit = null;\n this.defaultUi = null;\n this.imageEdit = null;\n this.numericEdit = null;\n this.passwordEdit = null;\n this.signature = null;\n this.textEdit = null;\n }\n\n [$getExtra]() {\n if (this[$extra] === undefined) {\n for (const name of Object.getOwnPropertyNames(this)) {\n if (name === \"extras\" || name === \"picture\") {\n continue;\n }\n const obj = this[name];\n if (!(obj instanceof XFAObject)) {\n continue;\n }\n\n this[$extra] = obj;\n return obj;\n }\n this[$extra] = null;\n }\n return this[$extra];\n }\n\n [$toHTML](availableSpace) {\n // TODO: picture.\n const obj = this[$getExtra]();\n if (obj) {\n return obj[$toHTML](availableSpace);\n }\n return HTMLResult.EMPTY;\n }\n}\n\nclass Validate extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"validate\", /* hasChildren = */ true);\n this.formatTest = getStringOption(attributes.formatTest, [\n \"warning\",\n \"disabled\",\n \"error\",\n ]);\n this.id = attributes.id || \"\";\n this.nullTest = getStringOption(attributes.nullTest, [\n \"disabled\",\n \"error\",\n \"warning\",\n ]);\n this.scriptTest = getStringOption(attributes.scriptTest, [\n \"error\",\n \"disabled\",\n \"warning\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.message = null;\n this.picture = null;\n this.script = null;\n }\n}\n\nclass Value extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"value\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.override = getInteger({\n data: attributes.override,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n\n // One-of properties\n this.arc = null;\n this.boolean = null;\n this.date = null;\n this.dateTime = null;\n this.decimal = null;\n this.exData = null;\n this.float = null;\n this.image = null;\n this.integer = null;\n this.line = null;\n this.rectangle = null;\n this.text = null;\n this.time = null;\n }\n\n [$setValue](value) {\n const parent = this[$getParent]();\n if (parent instanceof Field) {\n if (parent.ui && parent.ui.imageEdit) {\n if (!this.image) {\n this.image = new Image({});\n this[$appendChild](this.image);\n }\n this.image[$content] = value[$content];\n return;\n }\n }\n\n const valueName = value[$nodeName];\n if (this[valueName] !== null) {\n this[valueName][$content] = value[$content];\n return;\n }\n\n // Reset all the properties.\n for (const name of Object.getOwnPropertyNames(this)) {\n const obj = this[name];\n if (obj instanceof XFAObject) {\n this[name] = null;\n this[$removeChild](obj);\n }\n }\n\n this[value[$nodeName]] = value;\n this[$appendChild](value);\n }\n\n [$text]() {\n if (this.exData) {\n if (typeof this.exData[$content] === \"string\") {\n return this.exData[$content].trim();\n }\n return this.exData[$content][$text]().trim();\n }\n for (const name of Object.getOwnPropertyNames(this)) {\n if (name === \"image\") {\n continue;\n }\n const obj = this[name];\n if (obj instanceof XFAObject) {\n return (obj[$content] || \"\").toString().trim();\n }\n }\n return null;\n }\n\n [$toHTML](availableSpace) {\n for (const name of Object.getOwnPropertyNames(this)) {\n const obj = this[name];\n if (!(obj instanceof XFAObject)) {\n continue;\n }\n\n return obj[$toHTML](availableSpace);\n }\n\n return HTMLResult.EMPTY;\n }\n}\n\nclass Variables extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"variables\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.boolean = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.manifest = new XFAObjectArray();\n this.script = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.time = new XFAObjectArray();\n }\n\n [$isTransparent]() {\n return true;\n }\n}\n\nclass TemplateNamespace {\n static [$buildXFAObject](name, attributes) {\n if (TemplateNamespace.hasOwnProperty(name)) {\n const node = TemplateNamespace[name](attributes);\n node[$setSetAttributes](attributes);\n return node;\n }\n return undefined;\n }\n\n static appearanceFilter(attrs) {\n return new AppearanceFilter(attrs);\n }\n\n static arc(attrs) {\n return new Arc(attrs);\n }\n\n static area(attrs) {\n return new Area(attrs);\n }\n\n static assist(attrs) {\n return new Assist(attrs);\n }\n\n static barcode(attrs) {\n return new Barcode(attrs);\n }\n\n static bind(attrs) {\n return new Bind(attrs);\n }\n\n static bindItems(attrs) {\n return new BindItems(attrs);\n }\n\n static bookend(attrs) {\n return new Bookend(attrs);\n }\n\n static boolean(attrs) {\n return new BooleanElement(attrs);\n }\n\n static border(attrs) {\n return new Border(attrs);\n }\n\n static break(attrs) {\n return new Break(attrs);\n }\n\n static breakAfter(attrs) {\n return new BreakAfter(attrs);\n }\n\n static breakBefore(attrs) {\n return new BreakBefore(attrs);\n }\n\n static button(attrs) {\n return new Button(attrs);\n }\n\n static calculate(attrs) {\n return new Calculate(attrs);\n }\n\n static caption(attrs) {\n return new Caption(attrs);\n }\n\n static certificate(attrs) {\n return new Certificate(attrs);\n }\n\n static certificates(attrs) {\n return new Certificates(attrs);\n }\n\n static checkButton(attrs) {\n return new CheckButton(attrs);\n }\n\n static choiceList(attrs) {\n return new ChoiceList(attrs);\n }\n\n static color(attrs) {\n return new Color(attrs);\n }\n\n static comb(attrs) {\n return new Comb(attrs);\n }\n\n static connect(attrs) {\n return new Connect(attrs);\n }\n\n static contentArea(attrs) {\n return new ContentArea(attrs);\n }\n\n static corner(attrs) {\n return new Corner(attrs);\n }\n\n static date(attrs) {\n return new DateElement(attrs);\n }\n\n static dateTime(attrs) {\n return new DateTime(attrs);\n }\n\n static dateTimeEdit(attrs) {\n return new DateTimeEdit(attrs);\n }\n\n static decimal(attrs) {\n return new Decimal(attrs);\n }\n\n static defaultUi(attrs) {\n return new DefaultUi(attrs);\n }\n\n static desc(attrs) {\n return new Desc(attrs);\n }\n\n static digestMethod(attrs) {\n return new DigestMethod(attrs);\n }\n\n static digestMethods(attrs) {\n return new DigestMethods(attrs);\n }\n\n static draw(attrs) {\n return new Draw(attrs);\n }\n\n static edge(attrs) {\n return new Edge(attrs);\n }\n\n static encoding(attrs) {\n return new Encoding(attrs);\n }\n\n static encodings(attrs) {\n return new Encodings(attrs);\n }\n\n static encrypt(attrs) {\n return new Encrypt(attrs);\n }\n\n static encryptData(attrs) {\n return new EncryptData(attrs);\n }\n\n static encryption(attrs) {\n return new Encryption(attrs);\n }\n\n static encryptionMethod(attrs) {\n return new EncryptionMethod(attrs);\n }\n\n static encryptionMethods(attrs) {\n return new EncryptionMethods(attrs);\n }\n\n static event(attrs) {\n return new Event(attrs);\n }\n\n static exData(attrs) {\n return new ExData(attrs);\n }\n\n static exObject(attrs) {\n return new ExObject(attrs);\n }\n\n static exclGroup(attrs) {\n return new ExclGroup(attrs);\n }\n\n static execute(attrs) {\n return new Execute(attrs);\n }\n\n static extras(attrs) {\n return new Extras(attrs);\n }\n\n static field(attrs) {\n return new Field(attrs);\n }\n\n static fill(attrs) {\n return new Fill(attrs);\n }\n\n static filter(attrs) {\n return new Filter(attrs);\n }\n\n static float(attrs) {\n return new Float(attrs);\n }\n\n static font(attrs) {\n return new Font(attrs);\n }\n\n static format(attrs) {\n return new Format(attrs);\n }\n\n static handler(attrs) {\n return new Handler(attrs);\n }\n\n static hyphenation(attrs) {\n return new Hyphenation(attrs);\n }\n\n static image(attrs) {\n return new Image(attrs);\n }\n\n static imageEdit(attrs) {\n return new ImageEdit(attrs);\n }\n\n static integer(attrs) {\n return new Integer(attrs);\n }\n\n static issuers(attrs) {\n return new Issuers(attrs);\n }\n\n static items(attrs) {\n return new Items(attrs);\n }\n\n static keep(attrs) {\n return new Keep(attrs);\n }\n\n static keyUsage(attrs) {\n return new KeyUsage(attrs);\n }\n\n static line(attrs) {\n return new Line(attrs);\n }\n\n static linear(attrs) {\n return new Linear(attrs);\n }\n\n static lockDocument(attrs) {\n return new LockDocument(attrs);\n }\n\n static manifest(attrs) {\n return new Manifest(attrs);\n }\n\n static margin(attrs) {\n return new Margin(attrs);\n }\n\n static mdp(attrs) {\n return new Mdp(attrs);\n }\n\n static medium(attrs) {\n return new Medium(attrs);\n }\n\n static message(attrs) {\n return new Message(attrs);\n }\n\n static numericEdit(attrs) {\n return new NumericEdit(attrs);\n }\n\n static occur(attrs) {\n return new Occur(attrs);\n }\n\n static oid(attrs) {\n return new Oid(attrs);\n }\n\n static oids(attrs) {\n return new Oids(attrs);\n }\n\n static overflow(attrs) {\n return new Overflow(attrs);\n }\n\n static pageArea(attrs) {\n return new PageArea(attrs);\n }\n\n static pageSet(attrs) {\n return new PageSet(attrs);\n }\n\n static para(attrs) {\n return new Para(attrs);\n }\n\n static passwordEdit(attrs) {\n return new PasswordEdit(attrs);\n }\n\n static pattern(attrs) {\n return new Pattern(attrs);\n }\n\n static picture(attrs) {\n return new Picture(attrs);\n }\n\n static proto(attrs) {\n return new Proto(attrs);\n }\n\n static radial(attrs) {\n return new Radial(attrs);\n }\n\n static reason(attrs) {\n return new Reason(attrs);\n }\n\n static reasons(attrs) {\n return new Reasons(attrs);\n }\n\n static rectangle(attrs) {\n return new Rectangle(attrs);\n }\n\n static ref(attrs) {\n return new RefElement(attrs);\n }\n\n static script(attrs) {\n return new Script(attrs);\n }\n\n static setProperty(attrs) {\n return new SetProperty(attrs);\n }\n\n static signData(attrs) {\n return new SignData(attrs);\n }\n\n static signature(attrs) {\n return new Signature(attrs);\n }\n\n static signing(attrs) {\n return new Signing(attrs);\n }\n\n static solid(attrs) {\n return new Solid(attrs);\n }\n\n static speak(attrs) {\n return new Speak(attrs);\n }\n\n static stipple(attrs) {\n return new Stipple(attrs);\n }\n\n static subform(attrs) {\n return new Subform(attrs);\n }\n\n static subformSet(attrs) {\n return new SubformSet(attrs);\n }\n\n static subjectDN(attrs) {\n return new SubjectDN(attrs);\n }\n\n static subjectDNs(attrs) {\n return new SubjectDNs(attrs);\n }\n\n static submit(attrs) {\n return new Submit(attrs);\n }\n\n static template(attrs) {\n return new Template(attrs);\n }\n\n static text(attrs) {\n return new Text(attrs);\n }\n\n static textEdit(attrs) {\n return new TextEdit(attrs);\n }\n\n static time(attrs) {\n return new Time(attrs);\n }\n\n static timeStamp(attrs) {\n return new TimeStamp(attrs);\n }\n\n static toolTip(attrs) {\n return new ToolTip(attrs);\n }\n\n static traversal(attrs) {\n return new Traversal(attrs);\n }\n\n static traverse(attrs) {\n return new Traverse(attrs);\n }\n\n static ui(attrs) {\n return new Ui(attrs);\n }\n\n static validate(attrs) {\n return new Validate(attrs);\n }\n\n static value(attrs) {\n return new Value(attrs);\n }\n\n static variables(attrs) {\n return new Variables(attrs);\n }\n}\n\nexport {\n BindItems,\n Field,\n Items,\n SetProperty,\n Template,\n TemplateNamespace,\n Text,\n Value,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $extra,\n $flushHTML,\n $getSubformParent,\n $getTemplateRoot,\n $isSplittable,\n $isThereMoreWidth,\n} from \"./xfa_object.js\";\nimport { measureToString } from \"./html_utils.js\";\n\n// Subform and ExclGroup have a layout so they share these functions.\n\n/**\n * How layout works ?\n *\n * A container has an initial space (with a width and a height) to fit in,\n * which means that once all the children have been added then\n * the total width/height must be lower than the given ones in\n * the initial space.\n * So if the container has known dimensions and these ones are ok with the\n * space then continue else we return HTMLResult.FAILURE: it's up to the\n * parent to deal with this failure (e.g. if parent layout is lr-tb and\n * we fail to add a child at end of line (lr) then we try to add it on the\n * next line).\n * And then we run through the children, each child gets its initial space\n * in calling its parent $getAvailableSpace method\n * (see _filteredChildrenGenerator and $childrenToHTML in xfa_object.js)\n * then we try to layout child in its space. If everything is ok then we add\n * the result to its parent through $addHTML which will recompute the available\n * space in parent according to its layout property else we return\n * HTMLResult.Failure.\n * Before a failure some children may have been layed out: they've been saved in\n * [$extra].children and [$extra] has properties generator and failingNode\n * in order to save the state where we were before a failure.\n * This [$extra].children property is useful when a container has to be splited.\n * So if a container is unbreakable, we must delete its [$extra] property before\n * returning.\n */\n\nfunction createLine(node, children) {\n return {\n name: \"div\",\n attributes: {\n class: [node.layout === \"lr-tb\" ? \"xfaLr\" : \"xfaRl\"],\n },\n children,\n };\n}\n\nfunction flushHTML(node) {\n if (!node[$extra]) {\n return null;\n }\n\n const attributes = node[$extra].attributes;\n const html = {\n name: \"div\",\n attributes,\n children: node[$extra].children,\n };\n\n if (node[$extra].failingNode) {\n const htmlFromFailing = node[$extra].failingNode[$flushHTML]();\n if (htmlFromFailing) {\n if (node.layout.endsWith(\"-tb\")) {\n html.children.push(createLine(node, [htmlFromFailing]));\n } else {\n html.children.push(htmlFromFailing);\n }\n }\n }\n\n if (html.children.length === 0) {\n return null;\n }\n\n return html;\n}\n\nfunction addHTML(node, html, bbox) {\n const extra = node[$extra];\n const availableSpace = extra.availableSpace;\n\n const [x, y, w, h] = bbox;\n switch (node.layout) {\n case \"position\": {\n extra.width = Math.max(extra.width, x + w);\n extra.height = Math.max(extra.height, y + h);\n extra.children.push(html);\n break;\n }\n case \"lr-tb\":\n case \"rl-tb\":\n if (!extra.line || extra.attempt === 1) {\n extra.line = createLine(node, []);\n extra.children.push(extra.line);\n extra.numberInLine = 0;\n }\n\n extra.numberInLine += 1;\n extra.line.children.push(html);\n\n if (extra.attempt === 0) {\n // Add the element on the line\n extra.currentWidth += w;\n extra.height = Math.max(extra.height, extra.prevHeight + h);\n } else {\n extra.currentWidth = w;\n extra.prevHeight = extra.height;\n extra.height += h;\n\n // The element has been added on a new line so switch to line mode now.\n extra.attempt = 0;\n }\n extra.width = Math.max(extra.width, extra.currentWidth);\n break;\n case \"rl-row\":\n case \"row\": {\n extra.children.push(html);\n extra.width += w;\n extra.height = Math.max(extra.height, h);\n const height = measureToString(extra.height);\n for (const child of extra.children) {\n child.attributes.style.height = height;\n }\n break;\n }\n case \"table\": {\n extra.width = Math.min(availableSpace.width, Math.max(extra.width, w));\n extra.height += h;\n extra.children.push(html);\n break;\n }\n case \"tb\": {\n // Even if the subform can possibly take all the available width,\n // we must compute the final width as it is in order to be able\n // for example to center the subform within its parent.\n extra.width = Math.min(availableSpace.width, Math.max(extra.width, w));\n extra.height += h;\n extra.children.push(html);\n break;\n }\n }\n}\n\nfunction getAvailableSpace(node) {\n const availableSpace = node[$extra].availableSpace;\n const marginV = node.margin\n ? node.margin.topInset + node.margin.bottomInset\n : 0;\n const marginH = node.margin\n ? node.margin.leftInset + node.margin.rightInset\n : 0;\n\n switch (node.layout) {\n case \"lr-tb\":\n case \"rl-tb\":\n if (node[$extra].attempt === 0) {\n return {\n width: availableSpace.width - marginH - node[$extra].currentWidth,\n height: availableSpace.height - marginV - node[$extra].prevHeight,\n };\n }\n return {\n width: availableSpace.width - marginH,\n height: availableSpace.height - marginV - node[$extra].height,\n };\n case \"rl-row\":\n case \"row\":\n const width = node[$extra].columnWidths\n .slice(node[$extra].currentColumn)\n .reduce((a, x) => a + x);\n return { width, height: availableSpace.height - marginH };\n case \"table\":\n case \"tb\":\n return {\n width: availableSpace.width - marginH,\n height: availableSpace.height - marginV - node[$extra].height,\n };\n case \"position\":\n default:\n return availableSpace;\n }\n}\n\nfunction getTransformedBBox(node) {\n // Take into account rotation and anchor to get the real bounding box.\n let w = node.w === \"\" ? NaN : node.w;\n let h = node.h === \"\" ? NaN : node.h;\n let [centerX, centerY] = [0, 0];\n switch (node.anchorType || \"\") {\n case \"bottomCenter\":\n [centerX, centerY] = [w / 2, h];\n break;\n case \"bottomLeft\":\n [centerX, centerY] = [0, h];\n break;\n case \"bottomRight\":\n [centerX, centerY] = [w, h];\n break;\n case \"middleCenter\":\n [centerX, centerY] = [w / 2, h / 2];\n break;\n case \"middleLeft\":\n [centerX, centerY] = [0, h / 2];\n break;\n case \"middleRight\":\n [centerX, centerY] = [w, h / 2];\n break;\n case \"topCenter\":\n [centerX, centerY] = [w / 2, 0];\n break;\n case \"topRight\":\n [centerX, centerY] = [w, 0];\n break;\n }\n\n let x, y;\n switch (node.rotate || 0) {\n case 0:\n [x, y] = [-centerX, -centerY];\n break;\n case 90:\n [x, y] = [-centerY, centerX];\n [w, h] = [h, -w];\n break;\n case 180:\n [x, y] = [centerX, centerY];\n [w, h] = [-w, -h];\n break;\n case 270:\n [x, y] = [centerY, -centerX];\n [w, h] = [-h, w];\n break;\n }\n\n return [\n node.x + x + Math.min(0, w),\n node.y + y + Math.min(0, h),\n Math.abs(w),\n Math.abs(h),\n ];\n}\n\n/**\n * Returning true means that the node will be layed out\n * else the layout will go to its next step (changing of line\n * in case of lr-tb or changing content area...).\n */\nfunction checkDimensions(node, space) {\n if (node[$getTemplateRoot]()[$extra].firstUnsplittable === null) {\n return true;\n }\n\n if (node.w === 0 || node.h === 0) {\n return true;\n }\n\n const ERROR = 2;\n const parent = node[$getSubformParent]();\n const attempt = (parent[$extra] && parent[$extra].attempt) || 0;\n\n const [, y, w, h] = getTransformedBBox(node);\n switch (parent.layout) {\n case \"lr-tb\":\n case \"rl-tb\":\n if (attempt === 0) {\n // Try to put an element in the line.\n\n if (!node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n if (node.h !== \"\" && Math.round(h - space.height) > ERROR) {\n // Not enough height.\n return false;\n }\n\n if (node.w !== \"\") {\n if (Math.round(w - space.width) <= ERROR) {\n return true;\n }\n if (parent[$extra].numberInLine === 0) {\n return space.height > ERROR;\n }\n\n return false;\n }\n\n return space.width > ERROR;\n }\n\n // No layout failure.\n\n // Put the element on the line but we can fail\n // and then in the second step (next line) we'll accept.\n if (node.w !== \"\") {\n return Math.round(w - space.width) <= ERROR;\n }\n\n return space.width > ERROR;\n }\n\n // Second attempt: try to put the element on the next line.\n\n if (node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n // We cannot fail.\n return true;\n }\n\n if (node.h !== \"\" && Math.round(h - space.height) > ERROR) {\n return false;\n }\n\n if (node.w === \"\" || Math.round(w - space.width) <= ERROR) {\n return space.height > ERROR;\n }\n\n if (parent[$isThereMoreWidth]()) {\n return false;\n }\n\n return space.height > ERROR;\n case \"table\":\n case \"tb\":\n if (node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n return true;\n }\n\n // If the node has a height then check if it's fine with available height.\n // If the node is breakable then we can return true.\n if (node.h !== \"\" && !node[$isSplittable]()) {\n return Math.round(h - space.height) <= ERROR;\n }\n // Else wait and see: this node will be layed out itself\n // in the provided space and maybe a children won't fit.\n\n if (node.w === \"\" || Math.round(w - space.width) <= ERROR) {\n return space.height > ERROR;\n }\n\n if (parent[$isThereMoreWidth]()) {\n return false;\n }\n\n return space.height > ERROR;\n case \"position\":\n if (node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n return true;\n }\n\n if (node.h === \"\" || Math.round(h + y - space.height) <= ERROR) {\n return true;\n }\n\n const area = node[$getTemplateRoot]()[$extra].currentContentArea;\n return h + y > area.h;\n case \"rl-row\":\n case \"row\":\n if (node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n return true;\n }\n\n if (node.h !== \"\") {\n return Math.round(h - space.height) <= ERROR;\n }\n return true;\n default:\n // No layout, so accept everything.\n return true;\n }\n}\n\nexport { addHTML, checkDimensions, flushHTML, getAvailableSpace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $content,\n $extra,\n $getParent,\n $getSubformParent,\n $getTemplateRoot,\n $globalData,\n $nodeName,\n $pushGlyphs,\n $text,\n $toStyle,\n XFAObject,\n} from \"./xfa_object.js\";\nimport { createValidAbsoluteUrl, warn } from \"../../shared/util.js\";\nimport { getMeasurement, stripQuotes } from \"./utils.js\";\nimport { selectFont } from \"./fonts.js\";\nimport { TextMeasure } from \"./text.js\";\n\nfunction measureToString(m) {\n if (typeof m === \"string\") {\n return \"0px\";\n }\n\n return Number.isInteger(m) ? `${m}px` : `${m.toFixed(2)}px`;\n}\n\nconst converters = {\n anchorType(node, style) {\n const parent = node[$getSubformParent]();\n if (!parent || (parent.layout && parent.layout !== \"position\")) {\n // anchorType is only used in a positioned layout.\n return;\n }\n\n if (!(\"transform\" in style)) {\n style.transform = \"\";\n }\n switch (node.anchorType) {\n case \"bottomCenter\":\n style.transform += \"translate(-50%, -100%)\";\n break;\n case \"bottomLeft\":\n style.transform += \"translate(0,-100%)\";\n break;\n case \"bottomRight\":\n style.transform += \"translate(-100%,-100%)\";\n break;\n case \"middleCenter\":\n style.transform += \"translate(-50%,-50%)\";\n break;\n case \"middleLeft\":\n style.transform += \"translate(0,-50%)\";\n break;\n case \"middleRight\":\n style.transform += \"translate(-100%,-50%)\";\n break;\n case \"topCenter\":\n style.transform += \"translate(-50%,0)\";\n break;\n case \"topRight\":\n style.transform += \"translate(-100%,0)\";\n break;\n }\n },\n dimensions(node, style) {\n const parent = node[$getSubformParent]();\n let width = node.w;\n const height = node.h;\n if (parent.layout && parent.layout.includes(\"row\")) {\n const extra = parent[$extra];\n const colSpan = node.colSpan;\n let w;\n if (colSpan === -1) {\n w = extra.columnWidths\n .slice(extra.currentColumn)\n .reduce((a, x) => a + x, 0);\n extra.currentColumn = 0;\n } else {\n w = extra.columnWidths\n .slice(extra.currentColumn, extra.currentColumn + colSpan)\n .reduce((a, x) => a + x, 0);\n extra.currentColumn =\n (extra.currentColumn + node.colSpan) % extra.columnWidths.length;\n }\n\n if (!isNaN(w)) {\n width = node.w = w;\n }\n }\n\n if (width !== \"\") {\n style.width = measureToString(width);\n } else {\n style.width = \"auto\";\n }\n\n if (height !== \"\") {\n style.height = measureToString(height);\n } else {\n style.height = \"auto\";\n }\n },\n position(node, style) {\n const parent = node[$getSubformParent]();\n if (parent && parent.layout && parent.layout !== \"position\") {\n // IRL, we've some x/y in tb layout.\n // Specs say x/y is only used in positioned layout.\n return;\n }\n\n style.position = \"absolute\";\n style.left = measureToString(node.x);\n style.top = measureToString(node.y);\n },\n rotate(node, style) {\n if (node.rotate) {\n if (!(\"transform\" in style)) {\n style.transform = \"\";\n }\n style.transform += `rotate(-${node.rotate}deg)`;\n style.transformOrigin = \"top left\";\n }\n },\n presence(node, style) {\n switch (node.presence) {\n case \"invisible\":\n style.visibility = \"hidden\";\n break;\n case \"hidden\":\n case \"inactive\":\n style.display = \"none\";\n break;\n }\n },\n hAlign(node, style) {\n if (node[$nodeName] === \"para\") {\n switch (node.hAlign) {\n case \"justifyAll\":\n style.textAlign = \"justify-all\";\n break;\n case \"radix\":\n // TODO: implement this correctly !\n style.textAlign = \"left\";\n break;\n default:\n style.textAlign = node.hAlign;\n }\n } else {\n switch (node.hAlign) {\n case \"left\":\n style.alignSelf = \"start\";\n break;\n case \"center\":\n style.alignSelf = \"center\";\n break;\n case \"right\":\n style.alignSelf = \"end\";\n break;\n }\n }\n },\n margin(node, style) {\n if (node.margin) {\n style.margin = node.margin[$toStyle]().margin;\n }\n },\n};\n\nfunction setMinMaxDimensions(node, style) {\n const parent = node[$getSubformParent]();\n if (parent.layout === \"position\") {\n if (node.minW > 0) {\n style.minWidth = measureToString(node.minW);\n }\n if (node.maxW > 0) {\n style.maxWidth = measureToString(node.maxW);\n }\n if (node.minH > 0) {\n style.minHeight = measureToString(node.minH);\n }\n if (node.maxH > 0) {\n style.maxHeight = measureToString(node.maxH);\n }\n }\n}\n\nfunction layoutText(text, xfaFont, margin, lineHeight, fontFinder, width) {\n const measure = new TextMeasure(xfaFont, margin, lineHeight, fontFinder);\n if (typeof text === \"string\") {\n measure.addString(text);\n } else {\n text[$pushGlyphs](measure);\n }\n\n return measure.compute(width);\n}\n\nfunction layoutNode(node, availableSpace) {\n let height = null;\n let width = null;\n let isBroken = false;\n\n if ((!node.w || !node.h) && node.value) {\n let marginH = 0;\n let marginV = 0;\n if (node.margin) {\n marginH = node.margin.leftInset + node.margin.rightInset;\n marginV = node.margin.topInset + node.margin.bottomInset;\n }\n\n let lineHeight = null;\n let margin = null;\n if (node.para) {\n margin = Object.create(null);\n lineHeight = node.para.lineHeight === \"\" ? null : node.para.lineHeight;\n margin.top = node.para.spaceAbove === \"\" ? 0 : node.para.spaceAbove;\n margin.bottom = node.para.spaceBelow === \"\" ? 0 : node.para.spaceBelow;\n margin.left = node.para.marginLeft === \"\" ? 0 : node.para.marginLeft;\n margin.right = node.para.marginRight === \"\" ? 0 : node.para.marginRight;\n }\n\n let font = node.font;\n if (!font) {\n const root = node[$getTemplateRoot]();\n let parent = node[$getParent]();\n while (parent && parent !== root) {\n if (parent.font) {\n font = parent.font;\n break;\n }\n parent = parent[$getParent]();\n }\n }\n\n const maxWidth = (!node.w ? availableSpace.width : node.w) - marginH;\n const fontFinder = node[$globalData].fontFinder;\n if (\n node.value.exData &&\n node.value.exData[$content] &&\n node.value.exData.contentType === \"text/html\"\n ) {\n const res = layoutText(\n node.value.exData[$content],\n font,\n margin,\n lineHeight,\n fontFinder,\n maxWidth\n );\n width = res.width;\n height = res.height;\n isBroken = res.isBroken;\n } else {\n const text = node.value[$text]();\n if (text) {\n const res = layoutText(\n text,\n font,\n margin,\n lineHeight,\n fontFinder,\n maxWidth\n );\n width = res.width;\n height = res.height;\n isBroken = res.isBroken;\n }\n }\n\n if (width !== null && !node.w) {\n width += marginH;\n }\n\n if (height !== null && !node.h) {\n height += marginV;\n }\n }\n return { w: width, h: height, isBroken };\n}\n\nfunction computeBbox(node, html, availableSpace) {\n let bbox;\n if (node.w !== \"\" && node.h !== \"\") {\n bbox = [node.x, node.y, node.w, node.h];\n } else {\n if (!availableSpace) {\n return null;\n }\n let width = node.w;\n if (width === \"\") {\n if (node.maxW === 0) {\n const parent = node[$getSubformParent]();\n if (parent.layout === \"position\" && parent.w !== \"\") {\n width = 0;\n } else {\n width = node.minW;\n }\n } else {\n width = Math.min(node.maxW, availableSpace.width);\n }\n html.attributes.style.width = measureToString(width);\n }\n\n let height = node.h;\n if (height === \"\") {\n if (node.maxH === 0) {\n const parent = node[$getSubformParent]();\n if (parent.layout === \"position\" && parent.h !== \"\") {\n height = 0;\n } else {\n height = node.minH;\n }\n } else {\n height = Math.min(node.maxH, availableSpace.height);\n }\n html.attributes.style.height = measureToString(height);\n }\n\n bbox = [node.x, node.y, width, height];\n }\n return bbox;\n}\n\nfunction fixDimensions(node) {\n const parent = node[$getSubformParent]();\n if (parent.layout && parent.layout.includes(\"row\")) {\n const extra = parent[$extra];\n const colSpan = node.colSpan;\n let width;\n if (colSpan === -1) {\n width = extra.columnWidths\n .slice(extra.currentColumn)\n .reduce((a, w) => a + w, 0);\n } else {\n width = extra.columnWidths\n .slice(extra.currentColumn, extra.currentColumn + colSpan)\n .reduce((a, w) => a + w, 0);\n }\n if (!isNaN(width)) {\n node.w = width;\n }\n }\n\n if (parent.layout && parent.layout !== \"position\") {\n // Useless in this context.\n node.x = node.y = 0;\n }\n\n if (node.layout === \"table\") {\n if (node.w === \"\" && Array.isArray(node.columnWidths)) {\n node.w = node.columnWidths.reduce((a, x) => a + x, 0);\n }\n }\n}\n\nfunction layoutClass(node) {\n switch (node.layout) {\n case \"position\":\n return \"xfaPosition\";\n case \"lr-tb\":\n return \"xfaLrTb\";\n case \"rl-row\":\n return \"xfaRlRow\";\n case \"rl-tb\":\n return \"xfaRlTb\";\n case \"row\":\n return \"xfaRow\";\n case \"table\":\n return \"xfaTable\";\n case \"tb\":\n return \"xfaTb\";\n default:\n return \"xfaPosition\";\n }\n}\n\nfunction toStyle(node, ...names) {\n const style = Object.create(null);\n for (const name of names) {\n const value = node[name];\n if (value === null) {\n continue;\n }\n if (converters.hasOwnProperty(name)) {\n converters[name](node, style);\n continue;\n }\n\n if (value instanceof XFAObject) {\n const newStyle = value[$toStyle]();\n if (newStyle) {\n Object.assign(style, newStyle);\n } else {\n warn(`(DEBUG) - XFA - style for ${name} not implemented yet`);\n }\n }\n }\n return style;\n}\n\nfunction createWrapper(node, html) {\n const { attributes } = html;\n const { style } = attributes;\n\n const wrapper = {\n name: \"div\",\n attributes: {\n class: [\"xfaWrapper\"],\n style: Object.create(null),\n },\n children: [],\n };\n\n attributes.class.push(\"xfaWrapped\");\n\n if (node.border) {\n const { widths, insets } = node.border[$extra];\n let width, height;\n let top = insets[0];\n let left = insets[3];\n const insetsH = insets[0] + insets[2];\n const insetsW = insets[1] + insets[3];\n switch (node.border.hand) {\n case \"even\":\n top -= widths[0] / 2;\n left -= widths[3] / 2;\n width = `calc(100% + ${(widths[1] + widths[3]) / 2 - insetsW}px)`;\n height = `calc(100% + ${(widths[0] + widths[2]) / 2 - insetsH}px)`;\n break;\n case \"left\":\n top -= widths[0];\n left -= widths[3];\n width = `calc(100% + ${widths[1] + widths[3] - insetsW}px)`;\n height = `calc(100% + ${widths[0] + widths[2] - insetsH}px)`;\n break;\n case \"right\":\n width = insetsW ? `calc(100% - ${insetsW}px)` : \"100%\";\n height = insetsH ? `calc(100% - ${insetsH}px)` : \"100%\";\n break;\n }\n const classNames = [\"xfaBorder\"];\n if (isPrintOnly(node.border)) {\n classNames.push(\"xfaPrintOnly\");\n }\n\n const border = {\n name: \"div\",\n attributes: {\n class: classNames,\n style: {\n top: `${top}px`,\n left: `${left}px`,\n width,\n height,\n },\n },\n children: [],\n };\n\n for (const key of [\n \"border\",\n \"borderWidth\",\n \"borderColor\",\n \"borderRadius\",\n \"borderStyle\",\n ]) {\n if (style[key] !== undefined) {\n border.attributes.style[key] = style[key];\n delete style[key];\n }\n }\n wrapper.children.push(border, html);\n } else {\n wrapper.children.push(html);\n }\n\n for (const key of [\n \"background\",\n \"backgroundClip\",\n \"top\",\n \"left\",\n \"width\",\n \"height\",\n \"minWidth\",\n \"minHeight\",\n \"maxWidth\",\n \"maxHeight\",\n \"transform\",\n \"transformOrigin\",\n \"visibility\",\n ]) {\n if (style[key] !== undefined) {\n wrapper.attributes.style[key] = style[key];\n delete style[key];\n }\n }\n\n if (style.position === \"absolute\") {\n wrapper.attributes.style.position = \"absolute\";\n } else {\n wrapper.attributes.style.position = \"relative\";\n }\n delete style.position;\n\n if (style.alignSelf) {\n wrapper.attributes.style.alignSelf = style.alignSelf;\n delete style.alignSelf;\n }\n\n return wrapper;\n}\n\nfunction fixTextIndent(styles) {\n const indent = getMeasurement(styles.textIndent, \"0px\");\n if (indent >= 0) {\n return;\n }\n\n // If indent is negative then it's a hanging indent.\n const align = styles.textAlign === \"right\" ? \"right\" : \"left\";\n const name = \"padding\" + (align === \"left\" ? \"Left\" : \"Right\");\n const padding = getMeasurement(styles[name], \"0px\");\n styles[name] = `${padding - indent}px`;\n}\n\nfunction setAccess(node, classNames) {\n switch (node.access) {\n case \"nonInteractive\":\n classNames.push(\"xfaNonInteractive\");\n break;\n case \"readOnly\":\n classNames.push(\"xfaReadOnly\");\n break;\n case \"protected\":\n classNames.push(\"xfaDisabled\");\n break;\n }\n}\n\nfunction isPrintOnly(node) {\n return (\n node.relevant.length > 0 &&\n !node.relevant[0].excluded &&\n node.relevant[0].viewname === \"print\"\n );\n}\n\nfunction getCurrentPara(node) {\n const stack = node[$getTemplateRoot]()[$extra].paraStack;\n return stack.length ? stack[stack.length - 1] : null;\n}\n\nfunction setPara(node, nodeStyle, value) {\n if (value.attributes.class && value.attributes.class.includes(\"xfaRich\")) {\n if (nodeStyle) {\n if (node.h === \"\") {\n nodeStyle.height = \"auto\";\n }\n if (node.w === \"\") {\n nodeStyle.width = \"auto\";\n }\n }\n\n const para = getCurrentPara(node);\n if (para) {\n // By definition exData are external data so para\n // has no effect on it.\n const valueStyle = value.attributes.style;\n valueStyle.display = \"flex\";\n valueStyle.flexDirection = \"column\";\n switch (para.vAlign) {\n case \"top\":\n valueStyle.justifyContent = \"start\";\n break;\n case \"bottom\":\n valueStyle.justifyContent = \"end\";\n break;\n case \"middle\":\n valueStyle.justifyContent = \"center\";\n break;\n }\n\n const paraStyle = para[$toStyle]();\n for (const [key, val] of Object.entries(paraStyle)) {\n if (!(key in valueStyle)) {\n valueStyle[key] = val;\n }\n }\n }\n }\n}\n\nfunction setFontFamily(xfaFont, node, fontFinder, style) {\n if (!fontFinder) {\n // The font cannot be found in the pdf so use the default one.\n delete style.fontFamily;\n return;\n }\n\n const name = stripQuotes(xfaFont.typeface);\n style.fontFamily = `\"${name}\"`;\n\n const typeface = fontFinder.find(name);\n if (typeface) {\n const { fontFamily } = typeface.regular.cssFontInfo;\n if (fontFamily !== name) {\n style.fontFamily = `\"${fontFamily}\"`;\n }\n\n const para = getCurrentPara(node);\n if (para && para.lineHeight !== \"\") {\n return;\n }\n\n if (style.lineHeight) {\n // Already something so don't overwrite.\n return;\n }\n\n const pdfFont = selectFont(xfaFont, typeface);\n if (pdfFont) {\n style.lineHeight = Math.max(1.2, pdfFont.lineHeight);\n }\n }\n}\n\nfunction fixURL(str) {\n const absoluteUrl = createValidAbsoluteUrl(str, /* baseUrl = */ null, {\n addDefaultProtocol: true,\n tryConvertEncoding: true,\n });\n return absoluteUrl ? absoluteUrl.href : null;\n}\n\nexport {\n computeBbox,\n createWrapper,\n fixDimensions,\n fixTextIndent,\n fixURL,\n isPrintOnly,\n layoutClass,\n layoutNode,\n measureToString,\n setAccess,\n setFontFamily,\n setMinMaxDimensions,\n setPara,\n toStyle,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $globalData } from \"./xfa_object.js\";\nimport { stripQuotes } from \"./utils.js\";\nimport { warn } from \"../../shared/util.js\";\n\nclass FontFinder {\n constructor(pdfFonts) {\n this.fonts = new Map();\n this.cache = new Map();\n this.warned = new Set();\n this.defaultFont = null;\n this.add(pdfFonts);\n }\n\n add(pdfFonts, reallyMissingFonts = null) {\n for (const pdfFont of pdfFonts) {\n this.addPdfFont(pdfFont);\n }\n for (const pdfFont of this.fonts.values()) {\n if (!pdfFont.regular) {\n pdfFont.regular = pdfFont.italic || pdfFont.bold || pdfFont.bolditalic;\n }\n }\n\n if (!reallyMissingFonts || reallyMissingFonts.size === 0) {\n return;\n }\n const myriad = this.fonts.get(\"PdfJS-Fallback-PdfJS-XFA\");\n for (const missing of reallyMissingFonts) {\n this.fonts.set(missing, myriad);\n }\n }\n\n addPdfFont(pdfFont) {\n const cssFontInfo = pdfFont.cssFontInfo;\n const name = cssFontInfo.fontFamily;\n let font = this.fonts.get(name);\n if (!font) {\n font = Object.create(null);\n this.fonts.set(name, font);\n if (!this.defaultFont) {\n this.defaultFont = font;\n }\n }\n let property = \"\";\n const fontWeight = parseFloat(cssFontInfo.fontWeight);\n if (parseFloat(cssFontInfo.italicAngle) !== 0) {\n property = fontWeight >= 700 ? \"bolditalic\" : \"italic\";\n } else if (fontWeight >= 700) {\n property = \"bold\";\n }\n\n if (!property) {\n if (\n pdfFont.name.includes(\"Bold\") ||\n (pdfFont.psName && pdfFont.psName.includes(\"Bold\"))\n ) {\n property = \"bold\";\n }\n if (\n pdfFont.name.includes(\"Italic\") ||\n pdfFont.name.endsWith(\"It\") ||\n (pdfFont.psName &&\n (pdfFont.psName.includes(\"Italic\") || pdfFont.psName.endsWith(\"It\")))\n ) {\n property += \"italic\";\n }\n }\n\n if (!property) {\n property = \"regular\";\n }\n\n font[property] = pdfFont;\n }\n\n getDefault() {\n return this.defaultFont;\n }\n\n find(fontName, mustWarn = true) {\n let font = this.fonts.get(fontName) || this.cache.get(fontName);\n if (font) {\n return font;\n }\n\n const pattern = /,|-|_| |bolditalic|bold|italic|regular|it/gi;\n let name = fontName.replace(pattern, \"\");\n font = this.fonts.get(name);\n if (font) {\n this.cache.set(fontName, font);\n return font;\n }\n name = name.toLowerCase();\n\n const maybe = [];\n for (const [family, pdfFont] of this.fonts.entries()) {\n if (family.replace(pattern, \"\").toLowerCase().startsWith(name)) {\n maybe.push(pdfFont);\n }\n }\n\n if (maybe.length === 0) {\n for (const [, pdfFont] of this.fonts.entries()) {\n if (\n pdfFont.regular.name &&\n pdfFont.regular.name\n .replace(pattern, \"\")\n .toLowerCase()\n .startsWith(name)\n ) {\n maybe.push(pdfFont);\n }\n }\n }\n\n if (maybe.length === 0) {\n name = name.replace(/psmt|mt/gi, \"\");\n for (const [family, pdfFont] of this.fonts.entries()) {\n if (family.replace(pattern, \"\").toLowerCase().startsWith(name)) {\n maybe.push(pdfFont);\n }\n }\n }\n\n if (maybe.length === 0) {\n for (const pdfFont of this.fonts.values()) {\n if (\n pdfFont.regular.name &&\n pdfFont.regular.name\n .replace(pattern, \"\")\n .toLowerCase()\n .startsWith(name)\n ) {\n maybe.push(pdfFont);\n }\n }\n }\n\n if (maybe.length >= 1) {\n if (maybe.length !== 1 && mustWarn) {\n warn(`XFA - Too many choices to guess the correct font: ${fontName}`);\n }\n this.cache.set(fontName, maybe[0]);\n return maybe[0];\n }\n\n if (mustWarn && !this.warned.has(fontName)) {\n this.warned.add(fontName);\n warn(`XFA - Cannot find the font: ${fontName}`);\n }\n return null;\n }\n}\n\nfunction selectFont(xfaFont, typeface) {\n if (xfaFont.posture === \"italic\") {\n if (xfaFont.weight === \"bold\") {\n return typeface.bolditalic;\n }\n return typeface.italic;\n } else if (xfaFont.weight === \"bold\") {\n return typeface.bold;\n }\n\n return typeface.regular;\n}\n\nfunction getMetrics(xfaFont, real = false) {\n let pdfFont = null;\n if (xfaFont) {\n const name = stripQuotes(xfaFont.typeface);\n const typeface = xfaFont[$globalData].fontFinder.find(name);\n pdfFont = selectFont(xfaFont, typeface);\n }\n\n if (!pdfFont) {\n return {\n lineHeight: 12,\n lineGap: 2,\n lineNoGap: 10,\n };\n }\n\n const size = xfaFont.size || 10;\n const lineHeight = pdfFont.lineHeight\n ? Math.max(real ? 0 : 1.2, pdfFont.lineHeight)\n : 1.2;\n const lineGap = pdfFont.lineGap === undefined ? 0.2 : pdfFont.lineGap;\n return {\n lineHeight: lineHeight * size,\n lineGap: lineGap * size,\n lineNoGap: Math.max(1, lineHeight - lineGap) * size,\n };\n}\n\nexport { FontFinder, getMetrics, selectFont };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { selectFont } from \"./fonts.js\";\n\nconst WIDTH_FACTOR = 1.02;\n\nclass FontInfo {\n constructor(xfaFont, margin, lineHeight, fontFinder) {\n this.lineHeight = lineHeight;\n this.paraMargin = margin || {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n };\n\n if (!xfaFont) {\n [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder);\n return;\n }\n\n this.xfaFont = {\n typeface: xfaFont.typeface,\n posture: xfaFont.posture,\n weight: xfaFont.weight,\n size: xfaFont.size,\n letterSpacing: xfaFont.letterSpacing,\n };\n const typeface = fontFinder.find(xfaFont.typeface);\n if (!typeface) {\n [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder);\n return;\n }\n\n this.pdfFont = selectFont(xfaFont, typeface);\n\n if (!this.pdfFont) {\n [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder);\n }\n }\n\n defaultFont(fontFinder) {\n // TODO: Add a default font based on Liberation.\n const font =\n fontFinder.find(\"Helvetica\", false) ||\n fontFinder.find(\"Myriad Pro\", false) ||\n fontFinder.find(\"Arial\", false) ||\n fontFinder.getDefault();\n if (font && font.regular) {\n const pdfFont = font.regular;\n const info = pdfFont.cssFontInfo;\n const xfaFont = {\n typeface: info.fontFamily,\n posture: \"normal\",\n weight: \"normal\",\n size: 10,\n letterSpacing: 0,\n };\n return [pdfFont, xfaFont];\n }\n\n const xfaFont = {\n typeface: \"Courier\",\n posture: \"normal\",\n weight: \"normal\",\n size: 10,\n letterSpacing: 0,\n };\n return [null, xfaFont];\n }\n}\n\nclass FontSelector {\n constructor(\n defaultXfaFont,\n defaultParaMargin,\n defaultLineHeight,\n fontFinder\n ) {\n this.fontFinder = fontFinder;\n this.stack = [\n new FontInfo(\n defaultXfaFont,\n defaultParaMargin,\n defaultLineHeight,\n fontFinder\n ),\n ];\n }\n\n pushData(xfaFont, margin, lineHeight) {\n const lastFont = this.stack[this.stack.length - 1];\n for (const name of [\n \"typeface\",\n \"posture\",\n \"weight\",\n \"size\",\n \"letterSpacing\",\n ]) {\n if (!xfaFont[name]) {\n xfaFont[name] = lastFont.xfaFont[name];\n }\n }\n\n for (const name of [\"top\", \"bottom\", \"left\", \"right\"]) {\n if (isNaN(margin[name])) {\n margin[name] = lastFont.paraMargin[name];\n }\n }\n\n const fontInfo = new FontInfo(\n xfaFont,\n margin,\n lineHeight || lastFont.lineHeight,\n this.fontFinder\n );\n if (!fontInfo.pdfFont) {\n fontInfo.pdfFont = lastFont.pdfFont;\n }\n\n this.stack.push(fontInfo);\n }\n\n popFont() {\n this.stack.pop();\n }\n\n topFont() {\n return this.stack[this.stack.length - 1];\n }\n}\n\n/**\n * Compute a text area dimensions based on font metrics.\n */\nclass TextMeasure {\n constructor(defaultXfaFont, defaultParaMargin, defaultLineHeight, fonts) {\n this.glyphs = [];\n this.fontSelector = new FontSelector(\n defaultXfaFont,\n defaultParaMargin,\n defaultLineHeight,\n fonts\n );\n this.extraHeight = 0;\n }\n\n pushData(xfaFont, margin, lineHeight) {\n this.fontSelector.pushData(xfaFont, margin, lineHeight);\n }\n\n popFont(xfaFont) {\n return this.fontSelector.popFont();\n }\n\n addPara() {\n const lastFont = this.fontSelector.topFont();\n this.extraHeight += lastFont.paraMargin.top + lastFont.paraMargin.bottom;\n }\n\n addString(str) {\n if (!str) {\n return;\n }\n\n const lastFont = this.fontSelector.topFont();\n const fontSize = lastFont.xfaFont.size;\n if (lastFont.pdfFont) {\n const letterSpacing = lastFont.xfaFont.letterSpacing;\n const pdfFont = lastFont.pdfFont;\n const fontLineHeight = pdfFont.lineHeight || 1.2;\n const lineHeight =\n lastFont.lineHeight || Math.max(1.2, fontLineHeight) * fontSize;\n const lineGap = pdfFont.lineGap === undefined ? 0.2 : pdfFont.lineGap;\n const noGap = fontLineHeight - lineGap;\n const firstLineHeight = Math.max(1, noGap) * fontSize;\n const scale = fontSize / 1000;\n const fallbackWidth =\n pdfFont.defaultWidth || pdfFont.charsToGlyphs(\" \")[0].width;\n\n for (const line of str.split(/[\\u2029\\n]/)) {\n const encodedLine = pdfFont.encodeString(line).join(\"\");\n const glyphs = pdfFont.charsToGlyphs(encodedLine);\n\n for (const glyph of glyphs) {\n const width = glyph.width || fallbackWidth;\n this.glyphs.push([\n width * scale + letterSpacing,\n lineHeight,\n firstLineHeight,\n glyph.unicode,\n false,\n ]);\n }\n\n this.glyphs.push([0, 0, 0, \"\\n\", true]);\n }\n this.glyphs.pop();\n return;\n }\n\n // When we have no font in the pdf, just use the font size as default width.\n for (const line of str.split(/[\\u2029\\n]/)) {\n for (const char of line.split(\"\")) {\n this.glyphs.push([fontSize, 1.2 * fontSize, fontSize, char, false]);\n }\n\n this.glyphs.push([0, 0, 0, \"\\n\", true]);\n }\n this.glyphs.pop();\n }\n\n compute(maxWidth) {\n let lastSpacePos = -1,\n lastSpaceWidth = 0,\n width = 0,\n height = 0,\n currentLineWidth = 0,\n currentLineHeight = 0;\n let isBroken = false;\n let isFirstLine = true;\n\n for (let i = 0, ii = this.glyphs.length; i < ii; i++) {\n const [glyphWidth, lineHeight, firstLineHeight, char, isEOL] =\n this.glyphs[i];\n const isSpace = char === \" \";\n const glyphHeight = isFirstLine ? firstLineHeight : lineHeight;\n if (isEOL) {\n width = Math.max(width, currentLineWidth);\n currentLineWidth = 0;\n height += currentLineHeight;\n currentLineHeight = glyphHeight;\n lastSpacePos = -1;\n lastSpaceWidth = 0;\n isFirstLine = false;\n continue;\n }\n\n if (isSpace) {\n if (currentLineWidth + glyphWidth > maxWidth) {\n // We can break here but the space is not taken into account.\n width = Math.max(width, currentLineWidth);\n currentLineWidth = 0;\n height += currentLineHeight;\n currentLineHeight = glyphHeight;\n lastSpacePos = -1;\n lastSpaceWidth = 0;\n isBroken = true;\n isFirstLine = false;\n } else {\n currentLineHeight = Math.max(glyphHeight, currentLineHeight);\n lastSpaceWidth = currentLineWidth;\n currentLineWidth += glyphWidth;\n lastSpacePos = i;\n }\n continue;\n }\n\n if (currentLineWidth + glyphWidth > maxWidth) {\n // We must break to the last white position (if available)\n height += currentLineHeight;\n currentLineHeight = glyphHeight;\n if (lastSpacePos !== -1) {\n i = lastSpacePos;\n width = Math.max(width, lastSpaceWidth);\n currentLineWidth = 0;\n lastSpacePos = -1;\n lastSpaceWidth = 0;\n } else {\n // Just break in the middle of the word\n width = Math.max(width, currentLineWidth);\n currentLineWidth = glyphWidth;\n }\n isBroken = true;\n isFirstLine = false;\n\n continue;\n }\n\n currentLineWidth += glyphWidth;\n currentLineHeight = Math.max(glyphHeight, currentLineHeight);\n }\n\n width = Math.max(width, currentLineWidth);\n height += currentLineHeight + this.extraHeight;\n\n return { width: WIDTH_FACTOR * width, height, isBroken };\n }\n}\n\nexport { TextMeasure };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $getAttributes,\n $getChildren,\n $nodeName,\n $setValue,\n $toString,\n $uid,\n} from \"./xfa_object.js\";\n\nclass DataHandler {\n constructor(root, data) {\n this.data = data;\n this.dataset = root.datasets || null;\n }\n\n serialize(storage) {\n const stack = [[-1, this.data[$getChildren]()]];\n\n while (stack.length > 0) {\n const last = stack[stack.length - 1];\n const [i, children] = last;\n if (i + 1 === children.length) {\n stack.pop();\n continue;\n }\n\n const child = children[++last[0]];\n const storageEntry = storage.get(child[$uid]);\n if (storageEntry) {\n child[$setValue](storageEntry);\n } else {\n const attributes = child[$getAttributes]();\n for (const value of attributes.values()) {\n const entry = storage.get(value[$uid]);\n if (entry) {\n value[$setValue](entry);\n break;\n }\n }\n }\n\n const nodes = child[$getChildren]();\n if (nodes.length > 0) {\n stack.push([-1, nodes]);\n }\n }\n\n const buf = [\n ``,\n ];\n if (this.dataset) {\n // Dump nodes other than data: they can contains for example\n // some data for choice lists.\n for (const child of this.dataset[$getChildren]()) {\n if (child[$nodeName] !== \"data\") {\n child[$toString](buf);\n }\n }\n }\n this.data[$toString](buf);\n buf.push(\"\");\n\n return buf.join(\"\");\n }\n}\n\nexport { DataHandler };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $acceptWhitespace,\n $clean,\n $content,\n $finalize,\n $globalData,\n $isCDATAXml,\n $nsAttributes,\n $onChild,\n $onText,\n $setId,\n} from \"./xfa_object.js\";\nimport { XMLParserBase, XMLParserErrorCode } from \"../xml_parser.js\";\nimport { Builder } from \"./builder.js\";\nimport { warn } from \"../../shared/util.js\";\n\nclass XFAParser extends XMLParserBase {\n constructor(rootNameSpace = null, richText = false) {\n super();\n this._builder = new Builder(rootNameSpace);\n this._stack = [];\n this._globalData = {\n usedTypefaces: new Set(),\n };\n this._ids = new Map();\n this._current = this._builder.buildRoot(this._ids);\n this._errorCode = XMLParserErrorCode.NoError;\n this._whiteRegex = /^\\s+$/;\n this._nbsps = /\\xa0+/g;\n this._richText = richText;\n }\n\n parse(data) {\n this.parseXml(data);\n\n if (this._errorCode !== XMLParserErrorCode.NoError) {\n return undefined;\n }\n\n this._current[$finalize]();\n\n return this._current.element;\n }\n\n onText(text) {\n // Normally by definition a   is unbreakable\n // but in real life Acrobat can break strings on  .\n text = text.replace(this._nbsps, match => match.slice(1) + \" \");\n if (this._richText || this._current[$acceptWhitespace]()) {\n this._current[$onText](text, this._richText);\n return;\n }\n\n if (this._whiteRegex.test(text)) {\n return;\n }\n this._current[$onText](text.trim());\n }\n\n onCdata(text) {\n this._current[$onText](text);\n }\n\n _mkAttributes(attributes, tagName) {\n // Transform attributes into an object and get out\n // namespaces information.\n let namespace = null;\n let prefixes = null;\n const attributeObj = Object.create({});\n for (const { name, value } of attributes) {\n if (name === \"xmlns\") {\n if (!namespace) {\n namespace = value;\n } else {\n warn(`XFA - multiple namespace definition in <${tagName}>`);\n }\n } else if (name.startsWith(\"xmlns:\")) {\n const prefix = name.substring(\"xmlns:\".length);\n if (!prefixes) {\n prefixes = [];\n }\n prefixes.push({ prefix, value });\n } else {\n const i = name.indexOf(\":\");\n if (i === -1) {\n attributeObj[name] = value;\n } else {\n // Attributes can have their own namespace.\n // For example in data, we can have \n let nsAttrs = attributeObj[$nsAttributes];\n if (!nsAttrs) {\n nsAttrs = attributeObj[$nsAttributes] = Object.create(null);\n }\n const [ns, attrName] = [name.slice(0, i), name.slice(i + 1)];\n let attrs = nsAttrs[ns];\n if (!attrs) {\n attrs = nsAttrs[ns] = Object.create(null);\n }\n attrs[attrName] = value;\n }\n }\n }\n\n return [namespace, prefixes, attributeObj];\n }\n\n _getNameAndPrefix(name, nsAgnostic) {\n const i = name.indexOf(\":\");\n if (i === -1) {\n return [name, null];\n }\n return [name.substring(i + 1), nsAgnostic ? \"\" : name.substring(0, i)];\n }\n\n onBeginElement(tagName, attributes, isEmpty) {\n const [namespace, prefixes, attributesObj] = this._mkAttributes(\n attributes,\n tagName\n );\n const [name, nsPrefix] = this._getNameAndPrefix(\n tagName,\n this._builder.isNsAgnostic()\n );\n const node = this._builder.build({\n nsPrefix,\n name,\n attributes: attributesObj,\n namespace,\n prefixes,\n });\n node[$globalData] = this._globalData;\n\n if (isEmpty) {\n // No children: just push the node into its parent.\n node[$finalize]();\n if (this._current[$onChild](node)) {\n node[$setId](this._ids);\n }\n node[$clean](this._builder);\n return;\n }\n\n this._stack.push(this._current);\n this._current = node;\n }\n\n onEndElement(name) {\n const node = this._current;\n if (node[$isCDATAXml]() && typeof node[$content] === \"string\") {\n const parser = new XFAParser();\n parser._globalData = this._globalData;\n const root = parser.parse(node[$content]);\n node[$content] = null;\n node[$onChild](root);\n }\n\n node[$finalize]();\n this._current = this._stack.pop();\n if (this._current[$onChild](node)) {\n node[$setId](this._ids);\n }\n node[$clean](this._builder);\n }\n\n onError(code) {\n this._errorCode = code;\n }\n}\n\nexport { XFAParser };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n $cleanup,\n $finalize,\n $ids,\n $isNsAgnostic,\n $nsAttributes,\n $onChild,\n $resolvePrototypes,\n $root,\n XFAObject,\n} from \"./xfa_object.js\";\nimport { NamespaceSetUp } from \"./setup.js\";\nimport { Template } from \"./template.js\";\nimport { UnknownNamespace } from \"./unknown.js\";\nimport { warn } from \"../../shared/util.js\";\n\nclass Root extends XFAObject {\n constructor(ids) {\n super(-1, \"root\", Object.create(null));\n this.element = null;\n this[$ids] = ids;\n }\n\n [$onChild](child) {\n this.element = child;\n return true;\n }\n\n [$finalize]() {\n super[$finalize]();\n if (this.element.template instanceof Template) {\n // Set the root element in $ids using a symbol in order\n // to avoid conflict with real IDs.\n this[$ids].set($root, this.element);\n\n this.element.template[$resolvePrototypes](this[$ids]);\n this.element.template[$ids] = this[$ids];\n }\n }\n}\n\nclass Empty extends XFAObject {\n constructor() {\n super(-1, \"\", Object.create(null));\n }\n\n [$onChild](_) {\n return false;\n }\n}\n\nclass Builder {\n constructor(rootNameSpace = null) {\n this._namespaceStack = [];\n this._nsAgnosticLevel = 0;\n\n // Each prefix has its own stack\n this._namespacePrefixes = new Map();\n this._namespaces = new Map();\n this._nextNsId = Math.max(\n ...Object.values(NamespaceIds).map(({ id }) => id)\n );\n this._currentNamespace =\n rootNameSpace || new UnknownNamespace(++this._nextNsId);\n }\n\n buildRoot(ids) {\n return new Root(ids);\n }\n\n build({ nsPrefix, name, attributes, namespace, prefixes }) {\n const hasNamespaceDef = namespace !== null;\n if (hasNamespaceDef) {\n // Define the current namespace to use.\n this._namespaceStack.push(this._currentNamespace);\n this._currentNamespace = this._searchNamespace(namespace);\n }\n\n if (prefixes) {\n // The xml node may have namespace prefix definitions\n this._addNamespacePrefix(prefixes);\n }\n\n if (attributes.hasOwnProperty($nsAttributes)) {\n // Only support xfa-data namespace.\n const dataTemplate = NamespaceSetUp.datasets;\n const nsAttrs = attributes[$nsAttributes];\n let xfaAttrs = null;\n for (const [ns, attrs] of Object.entries(nsAttrs)) {\n const nsToUse = this._getNamespaceToUse(ns);\n if (nsToUse === dataTemplate) {\n xfaAttrs = { xfa: attrs };\n break;\n }\n }\n if (xfaAttrs) {\n attributes[$nsAttributes] = xfaAttrs;\n } else {\n delete attributes[$nsAttributes];\n }\n }\n\n const namespaceToUse = this._getNamespaceToUse(nsPrefix);\n const node =\n (namespaceToUse && namespaceToUse[$buildXFAObject](name, attributes)) ||\n new Empty();\n\n if (node[$isNsAgnostic]()) {\n this._nsAgnosticLevel++;\n }\n\n // In case the node has some namespace things,\n // we must pop the different stacks.\n if (hasNamespaceDef || prefixes || node[$isNsAgnostic]()) {\n node[$cleanup] = {\n hasNamespace: hasNamespaceDef,\n prefixes,\n nsAgnostic: node[$isNsAgnostic](),\n };\n }\n\n return node;\n }\n\n isNsAgnostic() {\n return this._nsAgnosticLevel > 0;\n }\n\n _searchNamespace(nsName) {\n let ns = this._namespaces.get(nsName);\n if (ns) {\n return ns;\n }\n for (const [name, { check }] of Object.entries(NamespaceIds)) {\n if (check(nsName)) {\n ns = NamespaceSetUp[name];\n if (ns) {\n this._namespaces.set(nsName, ns);\n return ns;\n }\n // The namespace is known but not handled.\n break;\n }\n }\n\n ns = new UnknownNamespace(++this._nextNsId);\n this._namespaces.set(nsName, ns);\n return ns;\n }\n\n _addNamespacePrefix(prefixes) {\n for (const { prefix, value } of prefixes) {\n const namespace = this._searchNamespace(value);\n let prefixStack = this._namespacePrefixes.get(prefix);\n if (!prefixStack) {\n prefixStack = [];\n this._namespacePrefixes.set(prefix, prefixStack);\n }\n prefixStack.push(namespace);\n }\n }\n\n _getNamespaceToUse(prefix) {\n if (!prefix) {\n return this._currentNamespace;\n }\n const prefixStack = this._namespacePrefixes.get(prefix);\n if (prefixStack && prefixStack.length > 0) {\n return prefixStack[prefixStack.length - 1];\n }\n\n warn(`Unknown namespace prefix: ${prefix}.`);\n return null;\n }\n\n clean(data) {\n const { hasNamespace, prefixes, nsAgnostic } = data;\n if (hasNamespace) {\n this._currentNamespace = this._namespaceStack.pop();\n }\n if (prefixes) {\n prefixes.forEach(({ prefix }) => {\n this._namespacePrefixes.get(prefix).pop();\n });\n }\n if (nsAgnostic) {\n this._nsAgnosticLevel--;\n }\n }\n}\n\nexport { Builder };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ConfigNamespace } from \"./config.js\";\nimport { ConnectionSetNamespace } from \"./connection_set.js\";\nimport { DatasetsNamespace } from \"./datasets.js\";\nimport { LocaleSetNamespace } from \"./locale_set.js\";\nimport { SignatureNamespace } from \"./signature.js\";\nimport { StylesheetNamespace } from \"./stylesheet.js\";\nimport { TemplateNamespace } from \"./template.js\";\nimport { XdpNamespace } from \"./xdp.js\";\nimport { XhtmlNamespace } from \"./xhtml.js\";\n\nconst NamespaceSetUp = {\n config: ConfigNamespace,\n connection: ConnectionSetNamespace,\n datasets: DatasetsNamespace,\n localeSet: LocaleSetNamespace,\n signature: SignatureNamespace,\n stylesheet: StylesheetNamespace,\n template: TemplateNamespace,\n xdp: XdpNamespace,\n xhtml: XhtmlNamespace,\n};\n\nexport { NamespaceSetUp };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n $content,\n $finalize,\n ContentObject,\n IntegerObject,\n Option01,\n Option10,\n OptionObject,\n StringObject,\n XFAObject,\n XFAObjectArray,\n} from \"./xfa_object.js\";\nimport { getInteger, getStringOption } from \"./utils.js\";\nimport { shadow, warn } from \"../../shared/util.js\";\n\nconst CONFIG_NS_ID = NamespaceIds.config.id;\n\nclass Acrobat extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"acrobat\", /* hasChildren = */ true);\n this.acrobat7 = null;\n this.autoSave = null;\n this.common = null;\n this.validate = null;\n this.validateApprovalSignatures = null;\n this.submitUrl = new XFAObjectArray();\n }\n}\n\nclass Acrobat7 extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"acrobat7\", /* hasChildren = */ true);\n this.dynamicRender = null;\n }\n}\n\nclass ADBE_JSConsole extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"ADBE_JSConsole\", [\"delegate\", \"Enable\", \"Disable\"]);\n }\n}\n\nclass ADBE_JSDebugger extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"ADBE_JSDebugger\", [\"delegate\", \"Enable\", \"Disable\"]);\n }\n}\n\nclass AddSilentPrint extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"addSilentPrint\");\n }\n}\n\nclass AddViewerPreferences extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"addViewerPreferences\");\n }\n}\n\nclass AdjustData extends Option10 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"adjustData\");\n }\n}\n\nclass AdobeExtensionLevel extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"adobeExtensionLevel\", 0, n => n >= 1 && n <= 8);\n }\n}\n\nclass Agent extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"agent\", /* hasChildren = */ true);\n this.name = attributes.name ? attributes.name.trim() : \"\";\n this.common = new XFAObjectArray();\n }\n}\n\nclass AlwaysEmbed extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"alwaysEmbed\");\n }\n}\n\nclass Amd extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"amd\");\n }\n}\n\nclass Area extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"area\");\n this.level = getInteger({\n data: attributes.level,\n defaultValue: 0,\n validate: n => n >= 1 && n <= 3,\n });\n this.name = getStringOption(attributes.name, [\n \"\",\n \"barcode\",\n \"coreinit\",\n \"deviceDriver\",\n \"font\",\n \"general\",\n \"layout\",\n \"merge\",\n \"script\",\n \"signature\",\n \"sourceSet\",\n \"templateCache\",\n ]);\n }\n}\n\nclass Attributes extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"attributes\", [\"preserve\", \"delegate\", \"ignore\"]);\n }\n}\n\nclass AutoSave extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"autoSave\", [\"disabled\", \"enabled\"]);\n }\n}\n\nclass Base extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"base\");\n }\n}\n\nclass BatchOutput extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"batchOutput\");\n this.format = getStringOption(attributes.format, [\n \"none\",\n \"concat\",\n \"zip\",\n \"zipCompress\",\n ]);\n }\n}\n\nclass BehaviorOverride extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"behaviorOverride\");\n }\n\n [$finalize]() {\n this[$content] = new Map(\n this[$content]\n .trim()\n .split(/\\s+/)\n .filter(x => x.includes(\":\"))\n .map(x => x.split(\":\", 2))\n );\n }\n}\n\nclass Cache extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"cache\", /* hasChildren = */ true);\n this.templateCache = null;\n }\n}\n\nclass Change extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"change\");\n }\n}\n\nclass Common extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"common\", /* hasChildren = */ true);\n this.data = null;\n this.locale = null;\n this.localeSet = null;\n this.messaging = null;\n this.suppressBanner = null;\n this.template = null;\n this.validationMessaging = null;\n this.versionControl = null;\n this.log = new XFAObjectArray();\n }\n}\n\nclass Compress extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"compress\");\n this.scope = getStringOption(attributes.scope, [\"imageOnly\", \"document\"]);\n }\n}\n\nclass CompressLogicalStructure extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"compressLogicalStructure\");\n }\n}\n\nclass CompressObjectStream extends Option10 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"compressObjectStream\");\n }\n}\n\nclass Compression extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"compression\", /* hasChildren = */ true);\n this.compressLogicalStructure = null;\n this.compressObjectStream = null;\n this.level = null;\n this.type = null;\n }\n}\n\nclass Config extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"config\", /* hasChildren = */ true);\n this.acrobat = null;\n this.present = null;\n this.trace = null;\n this.agent = new XFAObjectArray();\n }\n}\n\nclass Conformance extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"conformance\", [\"A\", \"B\"]);\n }\n}\n\nclass ContentCopy extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"contentCopy\");\n }\n}\n\nclass Copies extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"copies\", 1, n => n >= 1);\n }\n}\n\nclass Creator extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"creator\");\n }\n}\n\nclass CurrentPage extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"currentPage\", 0, n => n >= 0);\n }\n}\n\nclass Data extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"data\", /* hasChildren = */ true);\n this.adjustData = null;\n this.attributes = null;\n this.incrementalLoad = null;\n this.outputXSL = null;\n this.range = null;\n this.record = null;\n this.startNode = null;\n this.uri = null;\n this.window = null;\n this.xsl = null;\n this.excludeNS = new XFAObjectArray();\n this.transform = new XFAObjectArray();\n }\n}\n\nclass Debug extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"debug\", /* hasChildren = */ true);\n this.uri = null;\n }\n}\n\nclass DefaultTypeface extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"defaultTypeface\");\n this.writingScript = getStringOption(attributes.writingScript, [\n \"*\",\n \"Arabic\",\n \"Cyrillic\",\n \"EastEuropeanRoman\",\n \"Greek\",\n \"Hebrew\",\n \"Japanese\",\n \"Korean\",\n \"Roman\",\n \"SimplifiedChinese\",\n \"Thai\",\n \"TraditionalChinese\",\n \"Vietnamese\",\n ]);\n }\n}\n\nclass Destination extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"destination\", [\n \"pdf\",\n \"pcl\",\n \"ps\",\n \"webClient\",\n \"zpl\",\n ]);\n }\n}\n\nclass DocumentAssembly extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"documentAssembly\");\n }\n}\n\nclass Driver extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"driver\", /* hasChildren = */ true);\n this.name = attributes.name ? attributes.name.trim() : \"\";\n this.fontInfo = null;\n this.xdc = null;\n }\n}\n\nclass DuplexOption extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"duplexOption\", [\n \"simplex\",\n \"duplexFlipLongEdge\",\n \"duplexFlipShortEdge\",\n ]);\n }\n}\n\nclass DynamicRender extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"dynamicRender\", [\"forbidden\", \"required\"]);\n }\n}\n\nclass Embed extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"embed\");\n }\n}\n\nclass Encrypt extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"encrypt\");\n }\n}\n\nclass Encryption extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"encryption\", /* hasChildren = */ true);\n this.encrypt = null;\n this.encryptionLevel = null;\n this.permissions = null;\n }\n}\n\nclass EncryptionLevel extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"encryptionLevel\", [\"40bit\", \"128bit\"]);\n }\n}\n\nclass Enforce extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"enforce\");\n }\n}\n\nclass Equate extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"equate\");\n\n this.force = getInteger({\n data: attributes.force,\n defaultValue: 1,\n validate: n => n === 0,\n });\n\n this.from = attributes.from || \"\";\n this.to = attributes.to || \"\";\n }\n}\n\nclass EquateRange extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"equateRange\");\n\n this.from = attributes.from || \"\";\n this.to = attributes.to || \"\";\n this._unicodeRange = attributes.unicodeRange || \"\";\n }\n\n get unicodeRange() {\n const ranges = [];\n const unicodeRegex = /U\\+([0-9a-fA-F]+)/;\n const unicodeRange = this._unicodeRange;\n for (let range of unicodeRange\n .split(\",\")\n .map(x => x.trim())\n .filter(x => !!x)) {\n range = range.split(\"-\", 2).map(x => {\n const found = x.match(unicodeRegex);\n if (!found) {\n return 0;\n }\n return parseInt(found[1], 16);\n });\n if (range.length === 1) {\n range.push(range[0]);\n }\n ranges.push(range);\n }\n return shadow(this, \"unicodeRange\", ranges);\n }\n}\n\nclass Exclude extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"exclude\");\n }\n\n [$finalize]() {\n this[$content] = this[$content]\n .trim()\n .split(/\\s+/)\n .filter(\n x =>\n x &&\n [\n \"calculate\",\n \"close\",\n \"enter\",\n \"exit\",\n \"initialize\",\n \"ready\",\n \"validate\",\n ].includes(x)\n );\n }\n}\n\nclass ExcludeNS extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"excludeNS\");\n }\n}\n\nclass FlipLabel extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"flipLabel\", [\"usePrinterSetting\", \"on\", \"off\"]);\n }\n}\n\nclass FontInfo extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"fontInfo\", /* hasChildren = */ true);\n this.embed = null;\n this.map = null;\n this.subsetBelow = null;\n this.alwaysEmbed = new XFAObjectArray();\n this.defaultTypeface = new XFAObjectArray();\n this.neverEmbed = new XFAObjectArray();\n }\n}\n\nclass FormFieldFilling extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"formFieldFilling\");\n }\n}\n\nclass GroupParent extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"groupParent\");\n }\n}\n\nclass IfEmpty extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"ifEmpty\", [\n \"dataValue\",\n \"dataGroup\",\n \"ignore\",\n \"remove\",\n ]);\n }\n}\n\nclass IncludeXDPContent extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"includeXDPContent\");\n }\n}\n\nclass IncrementalLoad extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"incrementalLoad\", [\"none\", \"forwardOnly\"]);\n }\n}\n\nclass IncrementalMerge extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"incrementalMerge\");\n }\n}\n\nclass Interactive extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"interactive\");\n }\n}\n\nclass Jog extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"jog\", [\"usePrinterSetting\", \"none\", \"pageSet\"]);\n }\n}\n\nclass LabelPrinter extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"labelPrinter\", /* hasChildren = */ true);\n this.name = getStringOption(attributes.name, [\"zpl\", \"dpl\", \"ipl\", \"tcpl\"]);\n this.batchOutput = null;\n this.flipLabel = null;\n this.fontInfo = null;\n this.xdc = null;\n }\n}\n\nclass Layout extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"layout\", [\"paginate\", \"panel\"]);\n }\n}\n\nclass Level extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"level\", 0, n => n > 0);\n }\n}\n\nclass Linearized extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"linearized\");\n }\n}\n\nclass Locale extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"locale\");\n }\n}\n\nclass LocaleSet extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"localeSet\");\n }\n}\n\nclass Log extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"log\", /* hasChildren = */ true);\n this.mode = null;\n this.threshold = null;\n this.to = null;\n this.uri = null;\n }\n}\n\n// Renamed in MapElement to avoid confusion with usual js Map.\nclass MapElement extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"map\", /* hasChildren = */ true);\n this.equate = new XFAObjectArray();\n this.equateRange = new XFAObjectArray();\n }\n}\n\nclass MediumInfo extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"mediumInfo\", /* hasChildren = */ true);\n this.map = null;\n }\n}\n\nclass Message extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"message\", /* hasChildren = */ true);\n this.msgId = null;\n this.severity = null;\n }\n}\n\nclass Messaging extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"messaging\", /* hasChildren = */ true);\n this.message = new XFAObjectArray();\n }\n}\n\nclass Mode extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"mode\", [\"append\", \"overwrite\"]);\n }\n}\n\nclass ModifyAnnots extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"modifyAnnots\");\n }\n}\n\nclass MsgId extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"msgId\", 1, n => n >= 1);\n }\n}\n\nclass NameAttr extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"nameAttr\");\n }\n}\n\nclass NeverEmbed extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"neverEmbed\");\n }\n}\n\nclass NumberOfCopies extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"numberOfCopies\", null, n => n >= 2 && n <= 5);\n }\n}\n\nclass OpenAction extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"openAction\", /* hasChildren = */ true);\n this.destination = null;\n }\n}\n\nclass Output extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"output\", /* hasChildren = */ true);\n this.to = null;\n this.type = null;\n this.uri = null;\n }\n}\n\nclass OutputBin extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"outputBin\");\n }\n}\n\nclass OutputXSL extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"outputXSL\", /* hasChildren = */ true);\n this.uri = null;\n }\n}\n\nclass Overprint extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"overprint\", [\"none\", \"both\", \"draw\", \"field\"]);\n }\n}\n\nclass Packets extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"packets\");\n }\n\n [$finalize]() {\n if (this[$content] === \"*\") {\n return;\n }\n this[$content] = this[$content]\n .trim()\n .split(/\\s+/)\n .filter(x =>\n [\"config\", \"datasets\", \"template\", \"xfdf\", \"xslt\"].includes(x)\n );\n }\n}\n\nclass PageOffset extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pageOffset\");\n this.x = getInteger({\n data: attributes.x,\n defaultValue: \"useXDCSetting\",\n validate: n => true,\n });\n this.y = getInteger({\n data: attributes.y,\n defaultValue: \"useXDCSetting\",\n validate: n => true,\n });\n }\n}\n\nclass PageRange extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pageRange\");\n }\n\n [$finalize]() {\n const numbers = this[$content]\n .trim()\n .split(/\\s+/)\n .map(x => parseInt(x, 10));\n const ranges = [];\n for (let i = 0, ii = numbers.length; i < ii; i += 2) {\n ranges.push(numbers.slice(i, i + 2));\n }\n this[$content] = ranges;\n }\n}\n\nclass Pagination extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pagination\", [\n \"simplex\",\n \"duplexShortEdge\",\n \"duplexLongEdge\",\n ]);\n }\n}\n\nclass PaginationOverride extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"paginationOverride\", [\n \"none\",\n \"forceDuplex\",\n \"forceDuplexLongEdge\",\n \"forceDuplexShortEdge\",\n \"forceSimplex\",\n ]);\n }\n}\n\nclass Part extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"part\", 1, n => false);\n }\n}\n\nclass Pcl extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pcl\", /* hasChildren = */ true);\n this.name = attributes.name || \"\";\n this.batchOutput = null;\n this.fontInfo = null;\n this.jog = null;\n this.mediumInfo = null;\n this.outputBin = null;\n this.pageOffset = null;\n this.staple = null;\n this.xdc = null;\n }\n}\n\nclass Pdf extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pdf\", /* hasChildren = */ true);\n this.name = attributes.name || \"\";\n this.adobeExtensionLevel = null;\n this.batchOutput = null;\n this.compression = null;\n this.creator = null;\n this.encryption = null;\n this.fontInfo = null;\n this.interactive = null;\n this.linearized = null;\n this.openAction = null;\n this.pdfa = null;\n this.producer = null;\n this.renderPolicy = null;\n this.scriptModel = null;\n this.silentPrint = null;\n this.submitFormat = null;\n this.tagged = null;\n this.version = null;\n this.viewerPreferences = null;\n this.xdc = null;\n }\n}\n\nclass Pdfa extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pdfa\", /* hasChildren = */ true);\n this.amd = null;\n this.conformance = null;\n this.includeXDPContent = null;\n this.part = null;\n }\n}\n\nclass Permissions extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"permissions\", /* hasChildren = */ true);\n this.accessibleContent = null;\n this.change = null;\n this.contentCopy = null;\n this.documentAssembly = null;\n this.formFieldFilling = null;\n this.modifyAnnots = null;\n this.plaintextMetadata = null;\n this.print = null;\n this.printHighQuality = null;\n }\n}\n\nclass PickTrayByPDFSize extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pickTrayByPDFSize\");\n }\n}\n\nclass Picture extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"picture\");\n }\n\n // TODO: check the validity of the picture clause.\n // See page 1150 in the spec.\n}\n\nclass PlaintextMetadata extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"plaintextMetadata\");\n }\n}\n\nclass Presence extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"presence\", [\n \"preserve\",\n \"dissolve\",\n \"dissolveStructure\",\n \"ignore\",\n \"remove\",\n ]);\n }\n}\n\nclass Present extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"present\", /* hasChildren = */ true);\n this.behaviorOverride = null;\n this.cache = null;\n this.common = null;\n this.copies = null;\n this.destination = null;\n this.incrementalMerge = null;\n this.layout = null;\n this.output = null;\n this.overprint = null;\n this.pagination = null;\n this.paginationOverride = null;\n this.script = null;\n this.validate = null;\n this.xdp = null;\n this.driver = new XFAObjectArray();\n this.labelPrinter = new XFAObjectArray();\n this.pcl = new XFAObjectArray();\n this.pdf = new XFAObjectArray();\n this.ps = new XFAObjectArray();\n this.submitUrl = new XFAObjectArray();\n this.webClient = new XFAObjectArray();\n this.zpl = new XFAObjectArray();\n }\n}\n\nclass Print extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"print\");\n }\n}\n\nclass PrintHighQuality extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"printHighQuality\");\n }\n}\n\nclass PrintScaling extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"printScaling\", [\"appdefault\", \"noScaling\"]);\n }\n}\n\nclass PrinterName extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"printerName\");\n }\n}\n\nclass Producer extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"producer\");\n }\n}\n\nclass Ps extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"ps\", /* hasChildren = */ true);\n this.name = attributes.name || \"\";\n this.batchOutput = null;\n this.fontInfo = null;\n this.jog = null;\n this.mediumInfo = null;\n this.outputBin = null;\n this.staple = null;\n this.xdc = null;\n }\n}\n\nclass Range extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"range\");\n }\n\n [$finalize]() {\n this[$content] = this[$content]\n .trim()\n .split(/\\s*,\\s*/, 2)\n .map(range => range.split(\"-\").map(x => parseInt(x.trim(), 10)))\n .filter(range => range.every(x => !isNaN(x)))\n .map(range => {\n if (range.length === 1) {\n range.push(range[0]);\n }\n return range;\n });\n }\n}\n\nclass Record extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"record\");\n }\n\n [$finalize]() {\n this[$content] = this[$content].trim();\n const n = parseInt(this[$content], 10);\n if (!isNaN(n) && n >= 0) {\n this[$content] = n;\n }\n }\n}\n\nclass Relevant extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"relevant\");\n }\n\n [$finalize]() {\n this[$content] = this[$content].trim().split(/\\s+/);\n }\n}\n\nclass Rename extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"rename\");\n }\n\n [$finalize]() {\n this[$content] = this[$content].trim();\n // String must be a XFA name: same as XML one except that there\n // is no colon.\n if (\n this[$content].toLowerCase().startsWith(\"xml\") ||\n this[$content].match(new RegExp(\"[\\\\p{L}_][\\\\p{L}\\\\d._\\\\p{M}-]*\", \"u\"))\n ) {\n warn(\"XFA - Rename: invalid XFA name\");\n }\n }\n}\n\nclass RenderPolicy extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"renderPolicy\", [\"server\", \"client\"]);\n }\n}\n\nclass RunScripts extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"runScripts\", [\"both\", \"client\", \"none\", \"server\"]);\n }\n}\n\nclass Script extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"script\", /* hasChildren = */ true);\n this.currentPage = null;\n this.exclude = null;\n this.runScripts = null;\n }\n}\n\nclass ScriptModel extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"scriptModel\", [\"XFA\", \"none\"]);\n }\n}\n\nclass Severity extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"severity\", [\n \"ignore\",\n \"error\",\n \"information\",\n \"trace\",\n \"warning\",\n ]);\n }\n}\n\nclass SilentPrint extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"silentPrint\", /* hasChildren = */ true);\n this.addSilentPrint = null;\n this.printerName = null;\n }\n}\n\nclass Staple extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"staple\");\n this.mode = getStringOption(attributes.mode, [\n \"usePrinterSetting\",\n \"on\",\n \"off\",\n ]);\n }\n}\n\nclass StartNode extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"startNode\");\n }\n}\n\nclass StartPage extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"startPage\", 0, n => true);\n }\n}\n\nclass SubmitFormat extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"submitFormat\", [\n \"html\",\n \"delegate\",\n \"fdf\",\n \"xml\",\n \"pdf\",\n ]);\n }\n}\n\nclass SubmitUrl extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"submitUrl\");\n }\n}\n\nclass SubsetBelow extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"subsetBelow\", 100, n => n >= 0 && n <= 100);\n }\n}\n\nclass SuppressBanner extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"suppressBanner\");\n }\n}\n\nclass Tagged extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"tagged\");\n }\n}\n\nclass Template extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"template\", /* hasChildren = */ true);\n this.base = null;\n this.relevant = null;\n this.startPage = null;\n this.uri = null;\n this.xsl = null;\n }\n}\n\nclass Threshold extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"threshold\", [\n \"trace\",\n \"error\",\n \"information\",\n \"warning\",\n ]);\n }\n}\n\nclass To extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"to\", [\n \"null\",\n \"memory\",\n \"stderr\",\n \"stdout\",\n \"system\",\n \"uri\",\n ]);\n }\n}\n\nclass TemplateCache extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"templateCache\");\n this.maxEntries = getInteger({\n data: attributes.maxEntries,\n defaultValue: 5,\n validate: n => n >= 0,\n });\n }\n}\n\nclass Trace extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"trace\", /* hasChildren = */ true);\n this.area = new XFAObjectArray();\n }\n}\n\nclass Transform extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"transform\", /* hasChildren = */ true);\n this.groupParent = null;\n this.ifEmpty = null;\n this.nameAttr = null;\n this.picture = null;\n this.presence = null;\n this.rename = null;\n this.whitespace = null;\n }\n}\n\nclass Type extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"type\", [\n \"none\",\n \"ascii85\",\n \"asciiHex\",\n \"ccittfax\",\n \"flate\",\n \"lzw\",\n \"runLength\",\n \"native\",\n \"xdp\",\n \"mergedXDP\",\n ]);\n }\n}\n\nclass Uri extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"uri\");\n }\n}\n\nclass Validate extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"validate\", [\n \"preSubmit\",\n \"prePrint\",\n \"preExecute\",\n \"preSave\",\n ]);\n }\n}\n\nclass ValidateApprovalSignatures extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"validateApprovalSignatures\");\n }\n\n [$finalize]() {\n this[$content] = this[$content]\n .trim()\n .split(/\\s+/)\n .filter(x => [\"docReady\", \"postSign\"].includes(x));\n }\n}\n\nclass ValidationMessaging extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"validationMessaging\", [\n \"allMessagesIndividually\",\n \"allMessagesTogether\",\n \"firstMessageOnly\",\n \"noMessages\",\n ]);\n }\n}\n\nclass Version extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"version\", [\"1.7\", \"1.6\", \"1.5\", \"1.4\", \"1.3\", \"1.2\"]);\n }\n}\n\nclass VersionControl extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"VersionControl\");\n this.outputBelow = getStringOption(attributes.outputBelow, [\n \"warn\",\n \"error\",\n \"update\",\n ]);\n this.sourceAbove = getStringOption(attributes.sourceAbove, [\n \"warn\",\n \"error\",\n ]);\n this.sourceBelow = getStringOption(attributes.sourceBelow, [\n \"update\",\n \"maintain\",\n ]);\n }\n}\n\nclass ViewerPreferences extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"viewerPreferences\", /* hasChildren = */ true);\n this.ADBE_JSConsole = null;\n this.ADBE_JSDebugger = null;\n this.addViewerPreferences = null;\n this.duplexOption = null;\n this.enforce = null;\n this.numberOfCopies = null;\n this.pageRange = null;\n this.pickTrayByPDFSize = null;\n this.printScaling = null;\n }\n}\n\nclass WebClient extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"webClient\", /* hasChildren = */ true);\n this.name = attributes.name ? attributes.name.trim() : \"\";\n this.fontInfo = null;\n this.xdc = null;\n }\n}\n\nclass Whitespace extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"whitespace\", [\n \"preserve\",\n \"ltrim\",\n \"normalize\",\n \"rtrim\",\n \"trim\",\n ]);\n }\n}\n\nclass Window extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"window\");\n }\n\n [$finalize]() {\n const pair = this[$content]\n .trim()\n .split(/\\s*,\\s*/, 2)\n .map(x => parseInt(x, 10));\n if (pair.some(x => isNaN(x))) {\n this[$content] = [0, 0];\n return;\n }\n if (pair.length === 1) {\n pair.push(pair[0]);\n }\n this[$content] = pair;\n }\n}\n\nclass Xdc extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"xdc\", /* hasChildren = */ true);\n this.uri = new XFAObjectArray();\n this.xsl = new XFAObjectArray();\n }\n}\n\nclass Xdp extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"xdp\", /* hasChildren = */ true);\n this.packets = null;\n }\n}\n\nclass Xsl extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"xsl\", /* hasChildren = */ true);\n this.debug = null;\n this.uri = null;\n }\n}\n\nclass Zpl extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"zpl\", /* hasChildren = */ true);\n this.name = attributes.name ? attributes.name.trim() : \"\";\n this.batchOutput = null;\n this.flipLabel = null;\n this.fontInfo = null;\n this.xdc = null;\n }\n}\n\nclass ConfigNamespace {\n static [$buildXFAObject](name, attributes) {\n if (ConfigNamespace.hasOwnProperty(name)) {\n return ConfigNamespace[name](attributes);\n }\n return undefined;\n }\n\n static acrobat(attrs) {\n return new Acrobat(attrs);\n }\n\n static acrobat7(attrs) {\n return new Acrobat7(attrs);\n }\n\n static ADBE_JSConsole(attrs) {\n return new ADBE_JSConsole(attrs);\n }\n\n static ADBE_JSDebugger(attrs) {\n return new ADBE_JSDebugger(attrs);\n }\n\n static addSilentPrint(attrs) {\n return new AddSilentPrint(attrs);\n }\n\n static addViewerPreferences(attrs) {\n return new AddViewerPreferences(attrs);\n }\n\n static adjustData(attrs) {\n return new AdjustData(attrs);\n }\n\n static adobeExtensionLevel(attrs) {\n return new AdobeExtensionLevel(attrs);\n }\n\n static agent(attrs) {\n return new Agent(attrs);\n }\n\n static alwaysEmbed(attrs) {\n return new AlwaysEmbed(attrs);\n }\n\n static amd(attrs) {\n return new Amd(attrs);\n }\n\n static area(attrs) {\n return new Area(attrs);\n }\n\n static attributes(attrs) {\n return new Attributes(attrs);\n }\n\n static autoSave(attrs) {\n return new AutoSave(attrs);\n }\n\n static base(attrs) {\n return new Base(attrs);\n }\n\n static batchOutput(attrs) {\n return new BatchOutput(attrs);\n }\n\n static behaviorOverride(attrs) {\n return new BehaviorOverride(attrs);\n }\n\n static cache(attrs) {\n return new Cache(attrs);\n }\n\n static change(attrs) {\n return new Change(attrs);\n }\n\n static common(attrs) {\n return new Common(attrs);\n }\n\n static compress(attrs) {\n return new Compress(attrs);\n }\n\n static compressLogicalStructure(attrs) {\n return new CompressLogicalStructure(attrs);\n }\n\n static compressObjectStream(attrs) {\n return new CompressObjectStream(attrs);\n }\n\n static compression(attrs) {\n return new Compression(attrs);\n }\n\n static config(attrs) {\n return new Config(attrs);\n }\n\n static conformance(attrs) {\n return new Conformance(attrs);\n }\n\n static contentCopy(attrs) {\n return new ContentCopy(attrs);\n }\n\n static copies(attrs) {\n return new Copies(attrs);\n }\n\n static creator(attrs) {\n return new Creator(attrs);\n }\n\n static currentPage(attrs) {\n return new CurrentPage(attrs);\n }\n\n static data(attrs) {\n return new Data(attrs);\n }\n\n static debug(attrs) {\n return new Debug(attrs);\n }\n\n static defaultTypeface(attrs) {\n return new DefaultTypeface(attrs);\n }\n\n static destination(attrs) {\n return new Destination(attrs);\n }\n\n static documentAssembly(attrs) {\n return new DocumentAssembly(attrs);\n }\n\n static driver(attrs) {\n return new Driver(attrs);\n }\n\n static duplexOption(attrs) {\n return new DuplexOption(attrs);\n }\n\n static dynamicRender(attrs) {\n return new DynamicRender(attrs);\n }\n\n static embed(attrs) {\n return new Embed(attrs);\n }\n\n static encrypt(attrs) {\n return new Encrypt(attrs);\n }\n\n static encryption(attrs) {\n return new Encryption(attrs);\n }\n\n static encryptionLevel(attrs) {\n return new EncryptionLevel(attrs);\n }\n\n static enforce(attrs) {\n return new Enforce(attrs);\n }\n\n static equate(attrs) {\n return new Equate(attrs);\n }\n\n static equateRange(attrs) {\n return new EquateRange(attrs);\n }\n\n static exclude(attrs) {\n return new Exclude(attrs);\n }\n\n static excludeNS(attrs) {\n return new ExcludeNS(attrs);\n }\n\n static flipLabel(attrs) {\n return new FlipLabel(attrs);\n }\n\n static fontInfo(attrs) {\n return new FontInfo(attrs);\n }\n\n static formFieldFilling(attrs) {\n return new FormFieldFilling(attrs);\n }\n\n static groupParent(attrs) {\n return new GroupParent(attrs);\n }\n\n static ifEmpty(attrs) {\n return new IfEmpty(attrs);\n }\n\n static includeXDPContent(attrs) {\n return new IncludeXDPContent(attrs);\n }\n\n static incrementalLoad(attrs) {\n return new IncrementalLoad(attrs);\n }\n\n static incrementalMerge(attrs) {\n return new IncrementalMerge(attrs);\n }\n\n static interactive(attrs) {\n return new Interactive(attrs);\n }\n\n static jog(attrs) {\n return new Jog(attrs);\n }\n\n static labelPrinter(attrs) {\n return new LabelPrinter(attrs);\n }\n\n static layout(attrs) {\n return new Layout(attrs);\n }\n\n static level(attrs) {\n return new Level(attrs);\n }\n\n static linearized(attrs) {\n return new Linearized(attrs);\n }\n\n static locale(attrs) {\n return new Locale(attrs);\n }\n\n static localeSet(attrs) {\n return new LocaleSet(attrs);\n }\n\n static log(attrs) {\n return new Log(attrs);\n }\n\n static map(attrs) {\n return new MapElement(attrs);\n }\n\n static mediumInfo(attrs) {\n return new MediumInfo(attrs);\n }\n\n static message(attrs) {\n return new Message(attrs);\n }\n\n static messaging(attrs) {\n return new Messaging(attrs);\n }\n\n static mode(attrs) {\n return new Mode(attrs);\n }\n\n static modifyAnnots(attrs) {\n return new ModifyAnnots(attrs);\n }\n\n static msgId(attrs) {\n return new MsgId(attrs);\n }\n\n static nameAttr(attrs) {\n return new NameAttr(attrs);\n }\n\n static neverEmbed(attrs) {\n return new NeverEmbed(attrs);\n }\n\n static numberOfCopies(attrs) {\n return new NumberOfCopies(attrs);\n }\n\n static openAction(attrs) {\n return new OpenAction(attrs);\n }\n\n static output(attrs) {\n return new Output(attrs);\n }\n\n static outputBin(attrs) {\n return new OutputBin(attrs);\n }\n\n static outputXSL(attrs) {\n return new OutputXSL(attrs);\n }\n\n static overprint(attrs) {\n return new Overprint(attrs);\n }\n\n static packets(attrs) {\n return new Packets(attrs);\n }\n\n static pageOffset(attrs) {\n return new PageOffset(attrs);\n }\n\n static pageRange(attrs) {\n return new PageRange(attrs);\n }\n\n static pagination(attrs) {\n return new Pagination(attrs);\n }\n\n static paginationOverride(attrs) {\n return new PaginationOverride(attrs);\n }\n\n static part(attrs) {\n return new Part(attrs);\n }\n\n static pcl(attrs) {\n return new Pcl(attrs);\n }\n\n static pdf(attrs) {\n return new Pdf(attrs);\n }\n\n static pdfa(attrs) {\n return new Pdfa(attrs);\n }\n\n static permissions(attrs) {\n return new Permissions(attrs);\n }\n\n static pickTrayByPDFSize(attrs) {\n return new PickTrayByPDFSize(attrs);\n }\n\n static picture(attrs) {\n return new Picture(attrs);\n }\n\n static plaintextMetadata(attrs) {\n return new PlaintextMetadata(attrs);\n }\n\n static presence(attrs) {\n return new Presence(attrs);\n }\n\n static present(attrs) {\n return new Present(attrs);\n }\n\n static print(attrs) {\n return new Print(attrs);\n }\n\n static printHighQuality(attrs) {\n return new PrintHighQuality(attrs);\n }\n\n static printScaling(attrs) {\n return new PrintScaling(attrs);\n }\n\n static printerName(attrs) {\n return new PrinterName(attrs);\n }\n\n static producer(attrs) {\n return new Producer(attrs);\n }\n\n static ps(attrs) {\n return new Ps(attrs);\n }\n\n static range(attrs) {\n return new Range(attrs);\n }\n\n static record(attrs) {\n return new Record(attrs);\n }\n\n static relevant(attrs) {\n return new Relevant(attrs);\n }\n\n static rename(attrs) {\n return new Rename(attrs);\n }\n\n static renderPolicy(attrs) {\n return new RenderPolicy(attrs);\n }\n\n static runScripts(attrs) {\n return new RunScripts(attrs);\n }\n\n static script(attrs) {\n return new Script(attrs);\n }\n\n static scriptModel(attrs) {\n return new ScriptModel(attrs);\n }\n\n static severity(attrs) {\n return new Severity(attrs);\n }\n\n static silentPrint(attrs) {\n return new SilentPrint(attrs);\n }\n\n static staple(attrs) {\n return new Staple(attrs);\n }\n\n static startNode(attrs) {\n return new StartNode(attrs);\n }\n\n static startPage(attrs) {\n return new StartPage(attrs);\n }\n\n static submitFormat(attrs) {\n return new SubmitFormat(attrs);\n }\n\n static submitUrl(attrs) {\n return new SubmitUrl(attrs);\n }\n\n static subsetBelow(attrs) {\n return new SubsetBelow(attrs);\n }\n\n static suppressBanner(attrs) {\n return new SuppressBanner(attrs);\n }\n\n static tagged(attrs) {\n return new Tagged(attrs);\n }\n\n static template(attrs) {\n return new Template(attrs);\n }\n\n static templateCache(attrs) {\n return new TemplateCache(attrs);\n }\n\n static threshold(attrs) {\n return new Threshold(attrs);\n }\n\n static to(attrs) {\n return new To(attrs);\n }\n\n static trace(attrs) {\n return new Trace(attrs);\n }\n\n static transform(attrs) {\n return new Transform(attrs);\n }\n\n static type(attrs) {\n return new Type(attrs);\n }\n\n static uri(attrs) {\n return new Uri(attrs);\n }\n\n static validate(attrs) {\n return new Validate(attrs);\n }\n\n static validateApprovalSignatures(attrs) {\n return new ValidateApprovalSignatures(attrs);\n }\n\n static validationMessaging(attrs) {\n return new ValidationMessaging(attrs);\n }\n\n static version(attrs) {\n return new Version(attrs);\n }\n\n static versionControl(attrs) {\n return new VersionControl(attrs);\n }\n\n static viewerPreferences(attrs) {\n return new ViewerPreferences(attrs);\n }\n\n static webClient(attrs) {\n return new WebClient(attrs);\n }\n\n static whitespace(attrs) {\n return new Whitespace(attrs);\n }\n\n static window(attrs) {\n return new Window(attrs);\n }\n\n static xdc(attrs) {\n return new Xdc(attrs);\n }\n\n static xdp(attrs) {\n return new Xdp(attrs);\n }\n\n static xsl(attrs) {\n return new Xsl(attrs);\n }\n\n static zpl(attrs) {\n return new Zpl(attrs);\n }\n}\n\nexport { ConfigNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport { StringObject, XFAObject, XFAObjectArray } from \"./xfa_object.js\";\n\nconst CONNECTION_SET_NS_ID = NamespaceIds.connectionSet.id;\n\nclass ConnectionSet extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"connectionSet\", /* hasChildren = */ true);\n this.wsdlConnection = new XFAObjectArray();\n this.xmlConnection = new XFAObjectArray();\n this.xsdConnection = new XFAObjectArray();\n }\n}\n\nclass EffectiveInputPolicy extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"effectiveInputPolicy\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass EffectiveOutputPolicy extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"effectiveOutputPolicy\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Operation extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"operation\");\n this.id = attributes.id || \"\";\n this.input = attributes.input || \"\";\n this.name = attributes.name || \"\";\n this.output = attributes.output || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass RootElement extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"rootElement\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass SoapAction extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"soapAction\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass SoapAddress extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"soapAddress\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Uri extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"uri\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass WsdlAddress extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"wsdlAddress\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass WsdlConnection extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"wsdlConnection\", /* hasChildren = */ true);\n this.dataDescription = attributes.dataDescription || \"\";\n this.name = attributes.name || \"\";\n this.effectiveInputPolicy = null;\n this.effectiveOutputPolicy = null;\n this.operation = null;\n this.soapAction = null;\n this.soapAddress = null;\n this.wsdlAddress = null;\n }\n}\n\nclass XmlConnection extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"xmlConnection\", /* hasChildren = */ true);\n this.dataDescription = attributes.dataDescription || \"\";\n this.name = attributes.name || \"\";\n this.uri = null;\n }\n}\n\nclass XsdConnection extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"xsdConnection\", /* hasChildren = */ true);\n this.dataDescription = attributes.dataDescription || \"\";\n this.name = attributes.name || \"\";\n this.rootElement = null;\n this.uri = null;\n }\n}\n\nclass ConnectionSetNamespace {\n static [$buildXFAObject](name, attributes) {\n if (ConnectionSetNamespace.hasOwnProperty(name)) {\n return ConnectionSetNamespace[name](attributes);\n }\n return undefined;\n }\n\n static connectionSet(attrs) {\n return new ConnectionSet(attrs);\n }\n\n static effectiveInputPolicy(attrs) {\n return new EffectiveInputPolicy(attrs);\n }\n\n static effectiveOutputPolicy(attrs) {\n return new EffectiveOutputPolicy(attrs);\n }\n\n static operation(attrs) {\n return new Operation(attrs);\n }\n\n static rootElement(attrs) {\n return new RootElement(attrs);\n }\n\n static soapAction(attrs) {\n return new SoapAction(attrs);\n }\n\n static soapAddress(attrs) {\n return new SoapAddress(attrs);\n }\n\n static uri(attrs) {\n return new Uri(attrs);\n }\n\n static wsdlAddress(attrs) {\n return new WsdlAddress(attrs);\n }\n\n static wsdlConnection(attrs) {\n return new WsdlConnection(attrs);\n }\n\n static xmlConnection(attrs) {\n return new XmlConnection(attrs);\n }\n\n static xsdConnection(attrs) {\n return new XsdConnection(attrs);\n }\n}\n\nexport { ConnectionSetNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $appendChild,\n $isNsAgnostic,\n $namespaceId,\n $nodeName,\n $onChild,\n XFAObject,\n XmlObject,\n} from \"./xfa_object.js\";\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\n\nconst DATASETS_NS_ID = NamespaceIds.datasets.id;\n\nclass Data extends XmlObject {\n constructor(attributes) {\n super(DATASETS_NS_ID, \"data\", attributes);\n }\n\n [$isNsAgnostic]() {\n return true;\n }\n}\n\nclass Datasets extends XFAObject {\n constructor(attributes) {\n super(DATASETS_NS_ID, \"datasets\", /* hasChildren = */ true);\n this.data = null;\n this.Signature = null;\n }\n\n [$onChild](child) {\n const name = child[$nodeName];\n if (\n (name === \"data\" && child[$namespaceId] === DATASETS_NS_ID) ||\n (name === \"Signature\" &&\n child[$namespaceId] === NamespaceIds.signature.id)\n ) {\n this[name] = child;\n }\n this[$appendChild](child);\n }\n}\n\nclass DatasetsNamespace {\n static [$buildXFAObject](name, attributes) {\n if (DatasetsNamespace.hasOwnProperty(name)) {\n return DatasetsNamespace[name](attributes);\n }\n return undefined;\n }\n\n static datasets(attributes) {\n return new Datasets(attributes);\n }\n\n static data(attributes) {\n return new Data(attributes);\n }\n}\n\nexport { DatasetsNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n ContentObject,\n StringObject,\n XFAObject,\n XFAObjectArray,\n} from \"./xfa_object.js\";\nimport { getInteger, getStringOption } from \"./utils.js\";\n\nconst LOCALE_SET_NS_ID = NamespaceIds.localeSet.id;\n\nclass CalendarSymbols extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"calendarSymbols\", /* hasChildren = */ true);\n this.name = \"gregorian\";\n this.dayNames = new XFAObjectArray(2);\n this.eraNames = null;\n this.meridiemNames = null;\n this.monthNames = new XFAObjectArray(2);\n }\n}\n\nclass CurrencySymbol extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"currencySymbol\");\n this.name = getStringOption(attributes.name, [\n \"symbol\",\n \"isoname\",\n \"decimal\",\n ]);\n }\n}\n\nclass CurrencySymbols extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"currencySymbols\", /* hasChildren = */ true);\n this.currencySymbol = new XFAObjectArray(3);\n }\n}\n\nclass DatePattern extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"datePattern\");\n this.name = getStringOption(attributes.name, [\n \"full\",\n \"long\",\n \"med\",\n \"short\",\n ]);\n }\n}\n\nclass DatePatterns extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"datePatterns\", /* hasChildren = */ true);\n this.datePattern = new XFAObjectArray(4);\n }\n}\n\nclass DateTimeSymbols extends ContentObject {\n // TODO: spec unclear about the format of the array.\n\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"dateTimeSymbols\");\n }\n}\n\nclass Day extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"day\");\n }\n}\n\nclass DayNames extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"dayNames\", /* hasChildren = */ true);\n this.abbr = getInteger({\n data: attributes.abbr,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.day = new XFAObjectArray(7);\n }\n}\n\nclass Era extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"era\");\n }\n}\n\nclass EraNames extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"eraNames\", /* hasChildren = */ true);\n this.era = new XFAObjectArray(2);\n }\n}\n\nclass Locale extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"locale\", /* hasChildren = */ true);\n this.desc = attributes.desc || \"\";\n this.name = \"isoname\";\n this.calendarSymbols = null;\n this.currencySymbols = null;\n this.datePatterns = null;\n this.dateTimeSymbols = null;\n this.numberPatterns = null;\n this.numberSymbols = null;\n this.timePatterns = null;\n this.typeFaces = null;\n }\n}\n\nclass LocaleSet extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"localeSet\", /* hasChildren = */ true);\n this.locale = new XFAObjectArray();\n }\n}\n\nclass Meridiem extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"meridiem\");\n }\n}\n\nclass MeridiemNames extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"meridiemNames\", /* hasChildren = */ true);\n this.meridiem = new XFAObjectArray(2);\n }\n}\n\nclass Month extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"month\");\n }\n}\n\nclass MonthNames extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"monthNames\", /* hasChildren = */ true);\n this.abbr = getInteger({\n data: attributes.abbr,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.month = new XFAObjectArray(12);\n }\n}\n\nclass NumberPattern extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"numberPattern\");\n this.name = getStringOption(attributes.name, [\n \"full\",\n \"long\",\n \"med\",\n \"short\",\n ]);\n }\n}\n\nclass NumberPatterns extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"numberPatterns\", /* hasChildren = */ true);\n this.numberPattern = new XFAObjectArray(4);\n }\n}\n\nclass NumberSymbol extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"numberSymbol\");\n this.name = getStringOption(attributes.name, [\n \"decimal\",\n \"grouping\",\n \"percent\",\n \"minus\",\n \"zero\",\n ]);\n }\n}\n\nclass NumberSymbols extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"numberSymbols\", /* hasChildren = */ true);\n this.numberSymbol = new XFAObjectArray(5);\n }\n}\n\nclass TimePattern extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"timePattern\");\n this.name = getStringOption(attributes.name, [\n \"full\",\n \"long\",\n \"med\",\n \"short\",\n ]);\n }\n}\n\nclass TimePatterns extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"timePatterns\", /* hasChildren = */ true);\n this.timePattern = new XFAObjectArray(4);\n }\n}\n\nclass TypeFace extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"typeFace\", /* hasChildren = */ true);\n this.name = attributes.name | \"\";\n }\n}\n\nclass TypeFaces extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"typeFaces\", /* hasChildren = */ true);\n this.typeFace = new XFAObjectArray();\n }\n}\n\nclass LocaleSetNamespace {\n static [$buildXFAObject](name, attributes) {\n if (LocaleSetNamespace.hasOwnProperty(name)) {\n return LocaleSetNamespace[name](attributes);\n }\n return undefined;\n }\n\n static calendarSymbols(attrs) {\n return new CalendarSymbols(attrs);\n }\n\n static currencySymbol(attrs) {\n return new CurrencySymbol(attrs);\n }\n\n static currencySymbols(attrs) {\n return new CurrencySymbols(attrs);\n }\n\n static datePattern(attrs) {\n return new DatePattern(attrs);\n }\n\n static datePatterns(attrs) {\n return new DatePatterns(attrs);\n }\n\n static dateTimeSymbols(attrs) {\n return new DateTimeSymbols(attrs);\n }\n\n static day(attrs) {\n return new Day(attrs);\n }\n\n static dayNames(attrs) {\n return new DayNames(attrs);\n }\n\n static era(attrs) {\n return new Era(attrs);\n }\n\n static eraNames(attrs) {\n return new EraNames(attrs);\n }\n\n static locale(attrs) {\n return new Locale(attrs);\n }\n\n static localeSet(attrs) {\n return new LocaleSet(attrs);\n }\n\n static meridiem(attrs) {\n return new Meridiem(attrs);\n }\n\n static meridiemNames(attrs) {\n return new MeridiemNames(attrs);\n }\n\n static month(attrs) {\n return new Month(attrs);\n }\n\n static monthNames(attrs) {\n return new MonthNames(attrs);\n }\n\n static numberPattern(attrs) {\n return new NumberPattern(attrs);\n }\n\n static numberPatterns(attrs) {\n return new NumberPatterns(attrs);\n }\n\n static numberSymbol(attrs) {\n return new NumberSymbol(attrs);\n }\n\n static numberSymbols(attrs) {\n return new NumberSymbols(attrs);\n }\n\n static timePattern(attrs) {\n return new TimePattern(attrs);\n }\n\n static timePatterns(attrs) {\n return new TimePatterns(attrs);\n }\n\n static typeFace(attrs) {\n return new TypeFace(attrs);\n }\n\n static typeFaces(attrs) {\n return new TypeFaces(attrs);\n }\n}\n\nexport { LocaleSetNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport { XFAObject } from \"./xfa_object.js\";\n\nconst SIGNATURE_NS_ID = NamespaceIds.signature.id;\n\nclass Signature extends XFAObject {\n constructor(attributes) {\n super(SIGNATURE_NS_ID, \"signature\", /* hasChildren = */ true);\n }\n}\n\nclass SignatureNamespace {\n static [$buildXFAObject](name, attributes) {\n if (SignatureNamespace.hasOwnProperty(name)) {\n return SignatureNamespace[name](attributes);\n }\n return undefined;\n }\n\n static signature(attributes) {\n return new Signature(attributes);\n }\n}\n\nexport { SignatureNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport { XFAObject } from \"./xfa_object.js\";\n\nconst STYLESHEET_NS_ID = NamespaceIds.stylesheet.id;\n\nclass Stylesheet extends XFAObject {\n constructor(attributes) {\n super(STYLESHEET_NS_ID, \"stylesheet\", /* hasChildren = */ true);\n }\n}\n\nclass StylesheetNamespace {\n static [$buildXFAObject](name, attributes) {\n if (StylesheetNamespace.hasOwnProperty(name)) {\n return StylesheetNamespace[name](attributes);\n }\n return undefined;\n }\n\n static stylesheet(attributes) {\n return new Stylesheet(attributes);\n }\n}\n\nexport { StylesheetNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n $namespaceId,\n $nodeName,\n $onChildCheck,\n XFAObject,\n XFAObjectArray,\n} from \"./xfa_object.js\";\n\nconst XDP_NS_ID = NamespaceIds.xdp.id;\n\nclass Xdp extends XFAObject {\n constructor(attributes) {\n super(XDP_NS_ID, \"xdp\", /* hasChildren = */ true);\n this.uuid = attributes.uuid || \"\";\n this.timeStamp = attributes.timeStamp || \"\";\n this.config = null;\n this.connectionSet = null;\n this.datasets = null;\n this.localeSet = null;\n this.stylesheet = new XFAObjectArray();\n this.template = null;\n }\n\n [$onChildCheck](child) {\n const ns = NamespaceIds[child[$nodeName]];\n return ns && child[$namespaceId] === ns.id;\n }\n}\n\nclass XdpNamespace {\n static [$buildXFAObject](name, attributes) {\n if (XdpNamespace.hasOwnProperty(name)) {\n return XdpNamespace[name](attributes);\n }\n return undefined;\n }\n\n static xdp(attributes) {\n return new Xdp(attributes);\n }\n}\n\nexport { XdpNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $acceptWhitespace,\n $childrenToHTML,\n $clean,\n $content,\n $extra,\n $getChildren,\n $getParent,\n $globalData,\n $nodeName,\n $onText,\n $pushGlyphs,\n $text,\n $toHTML,\n XmlObject,\n} from \"./xfa_object.js\";\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n fixTextIndent,\n fixURL,\n measureToString,\n setFontFamily,\n} from \"./html_utils.js\";\nimport { getMeasurement, HTMLResult, stripQuotes } from \"./utils.js\";\n\nconst XHTML_NS_ID = NamespaceIds.xhtml.id;\nconst $richText = Symbol();\n\nconst VALID_STYLES = new Set([\n \"color\",\n \"font\",\n \"font-family\",\n \"font-size\",\n \"font-stretch\",\n \"font-style\",\n \"font-weight\",\n \"margin\",\n \"margin-bottom\",\n \"margin-left\",\n \"margin-right\",\n \"margin-top\",\n \"letter-spacing\",\n \"line-height\",\n \"orphans\",\n \"page-break-after\",\n \"page-break-before\",\n \"page-break-inside\",\n \"tab-interval\",\n \"tab-stop\",\n \"text-align\",\n \"text-decoration\",\n \"text-indent\",\n \"vertical-align\",\n \"widows\",\n \"kerning-mode\",\n \"xfa-font-horizontal-scale\",\n \"xfa-font-vertical-scale\",\n \"xfa-spacerun\",\n \"xfa-tab-stops\",\n]);\n\nconst StyleMapping = new Map([\n [\"page-break-after\", \"breakAfter\"],\n [\"page-break-before\", \"breakBefore\"],\n [\"page-break-inside\", \"breakInside\"],\n [\"kerning-mode\", value => (value === \"none\" ? \"none\" : \"normal\")],\n [\n \"xfa-font-horizontal-scale\",\n value =>\n `scaleX(${Math.max(0, Math.min(parseInt(value) / 100)).toFixed(2)})`,\n ],\n [\n \"xfa-font-vertical-scale\",\n value =>\n `scaleY(${Math.max(0, Math.min(parseInt(value) / 100)).toFixed(2)})`,\n ],\n [\"xfa-spacerun\", \"\"],\n [\"xfa-tab-stops\", \"\"],\n [\n \"font-size\",\n (value, original) => {\n value = original.fontSize = getMeasurement(value);\n return measureToString(0.99 * value);\n },\n ],\n [\"letter-spacing\", value => measureToString(getMeasurement(value))],\n [\"line-height\", value => measureToString(getMeasurement(value))],\n [\"margin\", value => measureToString(getMeasurement(value))],\n [\"margin-bottom\", value => measureToString(getMeasurement(value))],\n [\"margin-left\", value => measureToString(getMeasurement(value))],\n [\"margin-right\", value => measureToString(getMeasurement(value))],\n [\"margin-top\", value => measureToString(getMeasurement(value))],\n [\"text-indent\", value => measureToString(getMeasurement(value))],\n [\"font-family\", value => value],\n [\"vertical-align\", value => measureToString(getMeasurement(value))],\n]);\n\nconst spacesRegExp = /\\s+/g;\nconst crlfRegExp = /[\\r\\n]+/g;\nconst crlfForRichTextRegExp = /\\r\\n?/g;\n\nfunction mapStyle(styleStr, node, richText) {\n const style = Object.create(null);\n if (!styleStr) {\n return style;\n }\n const original = Object.create(null);\n for (const [key, value] of styleStr.split(\";\").map(s => s.split(\":\", 2))) {\n const mapping = StyleMapping.get(key);\n if (mapping === \"\") {\n continue;\n }\n let newValue = value;\n if (mapping) {\n if (typeof mapping === \"string\") {\n newValue = mapping;\n } else {\n newValue = mapping(value, original);\n }\n }\n if (key.endsWith(\"scale\")) {\n if (style.transform) {\n style.transform = `${style[key]} ${newValue}`;\n } else {\n style.transform = newValue;\n }\n } else {\n style[key.replaceAll(/-([a-zA-Z])/g, (_, x) => x.toUpperCase())] =\n newValue;\n }\n }\n\n if (style.fontFamily) {\n setFontFamily(\n {\n typeface: style.fontFamily,\n weight: style.fontWeight || \"normal\",\n posture: style.fontStyle || \"normal\",\n size: original.fontSize || 0,\n },\n node,\n node[$globalData].fontFinder,\n style\n );\n }\n\n if (\n richText &&\n style.verticalAlign &&\n style.verticalAlign !== \"0px\" &&\n style.fontSize\n ) {\n // A non-zero verticalAlign means that we've a sub/super-script and\n // consequently the font size must be decreased.\n // https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf#G11.2097514\n // And the two following factors to position the scripts have been\n // found here:\n // https://en.wikipedia.org/wiki/Subscript_and_superscript#Desktop_publishing\n const SUB_SUPER_SCRIPT_FACTOR = 0.583;\n const VERTICAL_FACTOR = 0.333;\n const fontSize = getMeasurement(style.fontSize);\n style.fontSize = measureToString(fontSize * SUB_SUPER_SCRIPT_FACTOR);\n style.verticalAlign = measureToString(\n Math.sign(getMeasurement(style.verticalAlign)) *\n fontSize *\n VERTICAL_FACTOR\n );\n }\n\n fixTextIndent(style);\n return style;\n}\n\nfunction checkStyle(node) {\n if (!node.style) {\n return \"\";\n }\n\n // Remove any non-allowed keys.\n return node.style\n .trim()\n .split(/\\s*;\\s*/)\n .filter(s => !!s)\n .map(s => s.split(/\\s*:\\s*/, 2))\n .filter(([key, value]) => {\n if (key === \"font-family\") {\n node[$globalData].usedTypefaces.add(value);\n }\n return VALID_STYLES.has(key);\n })\n .map(kv => kv.join(\":\"))\n .join(\";\");\n}\n\nconst NoWhites = new Set([\"body\", \"html\"]);\n\nclass XhtmlObject extends XmlObject {\n constructor(attributes, name) {\n super(XHTML_NS_ID, name);\n this[$richText] = false;\n this.style = attributes.style || \"\";\n }\n\n [$clean](builder) {\n super[$clean](builder);\n this.style = checkStyle(this);\n }\n\n [$acceptWhitespace]() {\n return !NoWhites.has(this[$nodeName]);\n }\n\n [$onText](str, richText = false) {\n if (!richText) {\n str = str.replace(crlfRegExp, \"\");\n if (!this.style.includes(\"xfa-spacerun:yes\")) {\n str = str.replace(spacesRegExp, \" \");\n }\n } else {\n this[$richText] = true;\n }\n\n if (str) {\n this[$content] += str;\n }\n }\n\n [$pushGlyphs](measure, mustPop = true) {\n const xfaFont = Object.create(null);\n const margin = {\n top: NaN,\n bottom: NaN,\n left: NaN,\n right: NaN,\n };\n let lineHeight = null;\n for (const [key, value] of this.style\n .split(\";\")\n .map(s => s.split(\":\", 2))) {\n switch (key) {\n case \"font-family\":\n xfaFont.typeface = stripQuotes(value);\n break;\n case \"font-size\":\n xfaFont.size = getMeasurement(value);\n break;\n case \"font-weight\":\n xfaFont.weight = value;\n break;\n case \"font-style\":\n xfaFont.posture = value;\n break;\n case \"letter-spacing\":\n xfaFont.letterSpacing = getMeasurement(value);\n break;\n case \"margin\":\n const values = value.split(/ \\t/).map(x => getMeasurement(x));\n switch (values.length) {\n case 1:\n margin.top =\n margin.bottom =\n margin.left =\n margin.right =\n values[0];\n break;\n case 2:\n margin.top = margin.bottom = values[0];\n margin.left = margin.right = values[1];\n break;\n case 3:\n margin.top = values[0];\n margin.bottom = values[2];\n margin.left = margin.right = values[1];\n break;\n case 4:\n margin.top = values[0];\n margin.left = values[1];\n margin.bottom = values[2];\n margin.right = values[3];\n break;\n }\n break;\n case \"margin-top\":\n margin.top = getMeasurement(value);\n break;\n case \"margin-bottom\":\n margin.bottom = getMeasurement(value);\n break;\n case \"margin-left\":\n margin.left = getMeasurement(value);\n break;\n case \"margin-right\":\n margin.right = getMeasurement(value);\n break;\n case \"line-height\":\n lineHeight = getMeasurement(value);\n break;\n }\n }\n\n measure.pushData(xfaFont, margin, lineHeight);\n\n if (this[$content]) {\n measure.addString(this[$content]);\n } else {\n for (const child of this[$getChildren]()) {\n if (child[$nodeName] === \"#text\") {\n measure.addString(child[$content]);\n continue;\n }\n child[$pushGlyphs](measure);\n }\n }\n\n if (mustPop) {\n measure.popFont();\n }\n }\n\n [$toHTML](availableSpace) {\n const children = [];\n this[$extra] = {\n children,\n };\n\n this[$childrenToHTML]({});\n\n if (children.length === 0 && !this[$content]) {\n return HTMLResult.EMPTY;\n }\n\n let value;\n if (this[$richText]) {\n value = this[$content]\n ? this[$content].replace(crlfForRichTextRegExp, \"\\n\")\n : undefined;\n } else {\n value = this[$content] || undefined;\n }\n\n return HTMLResult.success({\n name: this[$nodeName],\n attributes: {\n href: this.href,\n style: mapStyle(this.style, this, this[$richText]),\n },\n children,\n value,\n });\n }\n}\n\nclass A extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"a\");\n this.href = fixURL(attributes.href) || \"\";\n }\n}\n\nclass B extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"b\");\n }\n\n [$pushGlyphs](measure) {\n measure.pushFont({ weight: \"bold\" });\n super[$pushGlyphs](measure);\n measure.popFont();\n }\n}\n\nclass Body extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"body\");\n }\n\n [$toHTML](availableSpace) {\n const res = super[$toHTML](availableSpace);\n const { html } = res;\n if (!html) {\n return HTMLResult.EMPTY;\n }\n html.name = \"div\";\n html.attributes.class = [\"xfaRich\"];\n return res;\n }\n}\n\nclass Br extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"br\");\n }\n\n [$text]() {\n return \"\\n\";\n }\n\n [$pushGlyphs](measure) {\n measure.addString(\"\\n\");\n }\n\n [$toHTML](availableSpace) {\n return HTMLResult.success({\n name: \"br\",\n });\n }\n}\n\nclass Html extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"html\");\n }\n\n [$toHTML](availableSpace) {\n const children = [];\n this[$extra] = {\n children,\n };\n\n this[$childrenToHTML]({});\n if (children.length === 0) {\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n class: [\"xfaRich\"],\n style: {},\n },\n value: this[$content] || \"\",\n });\n }\n\n if (children.length === 1) {\n const child = children[0];\n if (child.attributes && child.attributes.class.includes(\"xfaRich\")) {\n return HTMLResult.success(child);\n }\n }\n\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n class: [\"xfaRich\"],\n style: {},\n },\n children,\n });\n }\n}\n\nclass I extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"i\");\n }\n\n [$pushGlyphs](measure) {\n measure.pushFont({ posture: \"italic\" });\n super[$pushGlyphs](measure);\n measure.popFont();\n }\n}\n\nclass Li extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"li\");\n }\n}\n\nclass Ol extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"ol\");\n }\n}\n\nclass P extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"p\");\n }\n\n [$pushGlyphs](measure) {\n super[$pushGlyphs](measure, /* mustPop = */ false);\n measure.addString(\"\\n\");\n measure.addPara();\n measure.popFont();\n }\n\n [$text]() {\n const siblings = this[$getParent]()[$getChildren]();\n if (siblings[siblings.length - 1] === this) {\n return super[$text]();\n }\n return super[$text]() + \"\\n\";\n }\n}\n\nclass Span extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"span\");\n }\n}\n\nclass Sub extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"sub\");\n }\n}\n\nclass Sup extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"sup\");\n }\n}\n\nclass Ul extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"ul\");\n }\n}\n\nclass XhtmlNamespace {\n static [$buildXFAObject](name, attributes) {\n if (XhtmlNamespace.hasOwnProperty(name)) {\n return XhtmlNamespace[name](attributes);\n }\n return undefined;\n }\n\n static a(attributes) {\n return new A(attributes);\n }\n\n static b(attributes) {\n return new B(attributes);\n }\n\n static body(attributes) {\n return new Body(attributes);\n }\n\n static br(attributes) {\n return new Br(attributes);\n }\n\n static html(attributes) {\n return new Html(attributes);\n }\n\n static i(attributes) {\n return new I(attributes);\n }\n\n static li(attributes) {\n return new Li(attributes);\n }\n\n static ol(attributes) {\n return new Ol(attributes);\n }\n\n static p(attributes) {\n return new P(attributes);\n }\n\n static span(attributes) {\n return new Span(attributes);\n }\n\n static sub(attributes) {\n return new Sub(attributes);\n }\n\n static sup(attributes) {\n return new Sup(attributes);\n }\n\n static ul(attributes) {\n return new Ul(attributes);\n }\n}\n\nexport { XhtmlNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject } from \"./namespaces.js\";\nimport { XmlObject } from \"./xfa_object.js\";\n\nclass UnknownNamespace {\n constructor(nsId) {\n this.namespaceId = nsId;\n }\n\n [$buildXFAObject](name, attributes) {\n return new XmlObject(this.namespaceId, name, attributes);\n }\n}\n\nexport { UnknownNamespace };\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { stringToUTF8String, warn } from \"../shared/util.js\";\nimport { parseXFAPath } from \"./core_utils.js\";\nimport { SimpleXMLParser } from \"./xml_parser.js\";\n\nfunction decodeString(str) {\n try {\n return stringToUTF8String(str);\n } catch (ex) {\n warn(`UTF-8 decoding failed: \"${ex}\".`);\n return str;\n }\n}\n\nclass DatasetXMLParser extends SimpleXMLParser {\n constructor(options) {\n super(options);\n this.node = null;\n }\n\n onEndElement(name) {\n const node = super.onEndElement(name);\n if (node && name === \"xfa:datasets\") {\n this.node = node;\n\n // We don't need anything else, so just kill the parser.\n throw new Error(\"Aborting DatasetXMLParser.\");\n }\n }\n}\n\nclass DatasetReader {\n constructor(data) {\n if (data.datasets) {\n this.node = new SimpleXMLParser({ hasAttributes: true }).parseFromString(\n data.datasets\n ).documentElement;\n } else {\n const parser = new DatasetXMLParser({ hasAttributes: true });\n try {\n parser.parseFromString(data[\"xdp:xdp\"]);\n } catch (_) {}\n this.node = parser.node;\n }\n }\n\n getValue(path) {\n if (!this.node || !path) {\n return \"\";\n }\n const node = this.node.searchNode(parseXFAPath(path), 0);\n\n if (!node) {\n return \"\";\n }\n\n const first = node.firstChild;\n if (first && first.nodeName === \"value\") {\n return node.children.map(child => decodeString(child.textContent));\n }\n\n return decodeString(node.textContent);\n }\n}\n\nexport { DatasetReader };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n bytesToString,\n FormatError,\n info,\n InvalidPDFException,\n warn,\n} from \"../shared/util.js\";\nimport { CIRCULAR_REF, Cmd, Dict, isCmd, Ref, RefSet } from \"./primitives.js\";\nimport {\n DocStats,\n MissingDataException,\n ParserEOFException,\n XRefEntryException,\n XRefParseException,\n} from \"./core_utils.js\";\nimport { Lexer, Parser } from \"./parser.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { CipherTransformFactory } from \"./crypto.js\";\n\nclass XRef {\n constructor(stream, pdfManager) {\n this.stream = stream;\n this.pdfManager = pdfManager;\n this.entries = [];\n this.xrefstms = Object.create(null);\n this._cacheMap = new Map(); // Prepare the XRef cache.\n this._pendingRefs = new RefSet();\n this.stats = new DocStats(pdfManager.msgHandler);\n this._newRefNum = null;\n }\n\n getNewRef() {\n if (this._newRefNum === null) {\n this._newRefNum = this.entries.length;\n }\n return Ref.get(this._newRefNum++, 0);\n }\n\n resetNewRef() {\n this._newRefNum = null;\n }\n\n setStartXRef(startXRef) {\n // Store the starting positions of xref tables as we process them\n // so we can recover from missing data errors\n this.startXRefQueue = [startXRef];\n }\n\n parse(recoveryMode = false) {\n let trailerDict;\n if (!recoveryMode) {\n trailerDict = this.readXRef();\n } else {\n warn(\"Indexing all PDF objects\");\n trailerDict = this.indexObjects();\n }\n trailerDict.assignXref(this);\n this.trailer = trailerDict;\n\n let encrypt;\n try {\n encrypt = trailerDict.get(\"Encrypt\");\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`XRef.parse - Invalid \"Encrypt\" reference: \"${ex}\".`);\n }\n if (encrypt instanceof Dict) {\n const ids = trailerDict.get(\"ID\");\n const fileId = ids && ids.length ? ids[0] : \"\";\n // The 'Encrypt' dictionary itself should not be encrypted, and by\n // setting `suppressEncryption` we can prevent an infinite loop inside\n // of `XRef_fetchUncompressed` if the dictionary contains indirect\n // objects (fixes issue7665.pdf).\n encrypt.suppressEncryption = true;\n this.encrypt = new CipherTransformFactory(\n encrypt,\n fileId,\n this.pdfManager.password\n );\n }\n\n // Get the root dictionary (catalog) object, and do some basic validation.\n let root;\n try {\n root = trailerDict.get(\"Root\");\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`XRef.parse - Invalid \"Root\" reference: \"${ex}\".`);\n }\n if (root instanceof Dict) {\n try {\n const pages = root.get(\"Pages\");\n if (pages instanceof Dict) {\n this.root = root;\n return;\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`XRef.parse - Invalid \"Pages\" reference: \"${ex}\".`);\n }\n }\n\n if (!recoveryMode) {\n throw new XRefParseException();\n }\n // Even recovery failed, there's nothing more we can do here.\n throw new InvalidPDFException(\"Invalid Root reference.\");\n }\n\n processXRefTable(parser) {\n if (!(\"tableState\" in this)) {\n // Stores state of the table as we process it so we can resume\n // from middle of table in case of missing data error\n this.tableState = {\n entryNum: 0,\n streamPos: parser.lexer.stream.pos,\n parserBuf1: parser.buf1,\n parserBuf2: parser.buf2,\n };\n }\n\n const obj = this.readXRefTable(parser);\n\n // Sanity check\n if (!isCmd(obj, \"trailer\")) {\n throw new FormatError(\n \"Invalid XRef table: could not find trailer dictionary\"\n );\n }\n // Read trailer dictionary, e.g.\n // trailer\n // << /Size 22\n // /Root 20R\n // /Info 10R\n // /ID [ <81b14aafa313db63dbd6f981e49f94f4> ]\n // >>\n // The parser goes through the entire stream << ... >> and provides\n // a getter interface for the key-value table\n let dict = parser.getObj();\n\n // The pdflib PDF generator can generate a nested trailer dictionary\n if (!(dict instanceof Dict) && dict.dict) {\n dict = dict.dict;\n }\n if (!(dict instanceof Dict)) {\n throw new FormatError(\n \"Invalid XRef table: could not parse trailer dictionary\"\n );\n }\n delete this.tableState;\n\n return dict;\n }\n\n readXRefTable(parser) {\n // Example of cross-reference table:\n // xref\n // 0 1 <-- subsection header (first obj #, obj count)\n // 0000000000 65535 f <-- actual object (offset, generation #, f/n)\n // 23 2 <-- subsection header ... and so on ...\n // 0000025518 00002 n\n // 0000025635 00000 n\n // trailer\n // ...\n\n const stream = parser.lexer.stream;\n const tableState = this.tableState;\n stream.pos = tableState.streamPos;\n parser.buf1 = tableState.parserBuf1;\n parser.buf2 = tableState.parserBuf2;\n\n // Outer loop is over subsection headers\n let obj;\n\n while (true) {\n if (!(\"firstEntryNum\" in tableState) || !(\"entryCount\" in tableState)) {\n if (isCmd((obj = parser.getObj()), \"trailer\")) {\n break;\n }\n tableState.firstEntryNum = obj;\n tableState.entryCount = parser.getObj();\n }\n\n let first = tableState.firstEntryNum;\n const count = tableState.entryCount;\n if (!Number.isInteger(first) || !Number.isInteger(count)) {\n throw new FormatError(\n \"Invalid XRef table: wrong types in subsection header\"\n );\n }\n // Inner loop is over objects themselves\n for (let i = tableState.entryNum; i < count; i++) {\n tableState.streamPos = stream.pos;\n tableState.entryNum = i;\n tableState.parserBuf1 = parser.buf1;\n tableState.parserBuf2 = parser.buf2;\n\n const entry = {};\n entry.offset = parser.getObj();\n entry.gen = parser.getObj();\n const type = parser.getObj();\n\n if (type instanceof Cmd) {\n switch (type.cmd) {\n case \"f\":\n entry.free = true;\n break;\n case \"n\":\n entry.uncompressed = true;\n break;\n }\n }\n\n // Validate entry obj\n if (\n !Number.isInteger(entry.offset) ||\n !Number.isInteger(entry.gen) ||\n !(entry.free || entry.uncompressed)\n ) {\n throw new FormatError(\n `Invalid entry in XRef subsection: ${first}, ${count}`\n );\n }\n\n // The first xref table entry, i.e. obj 0, should be free. Attempting\n // to adjust an incorrect first obj # (fixes issue 3248 and 7229).\n if (i === 0 && entry.free && first === 1) {\n first = 0;\n }\n\n if (!this.entries[i + first]) {\n this.entries[i + first] = entry;\n }\n }\n\n tableState.entryNum = 0;\n tableState.streamPos = stream.pos;\n tableState.parserBuf1 = parser.buf1;\n tableState.parserBuf2 = parser.buf2;\n delete tableState.firstEntryNum;\n delete tableState.entryCount;\n }\n\n // Sanity check: as per spec, first object must be free\n if (this.entries[0] && !this.entries[0].free) {\n throw new FormatError(\"Invalid XRef table: unexpected first object\");\n }\n return obj;\n }\n\n processXRefStream(stream) {\n if (!(\"streamState\" in this)) {\n // Stores state of the stream as we process it so we can resume\n // from middle of stream in case of missing data error\n const streamParameters = stream.dict;\n const byteWidths = streamParameters.get(\"W\");\n let range = streamParameters.get(\"Index\");\n if (!range) {\n range = [0, streamParameters.get(\"Size\")];\n }\n\n this.streamState = {\n entryRanges: range,\n byteWidths,\n entryNum: 0,\n streamPos: stream.pos,\n };\n }\n this.readXRefStream(stream);\n delete this.streamState;\n\n return stream.dict;\n }\n\n readXRefStream(stream) {\n const streamState = this.streamState;\n stream.pos = streamState.streamPos;\n\n const [typeFieldWidth, offsetFieldWidth, generationFieldWidth] =\n streamState.byteWidths;\n\n const entryRanges = streamState.entryRanges;\n while (entryRanges.length > 0) {\n const [first, n] = entryRanges;\n\n if (!Number.isInteger(first) || !Number.isInteger(n)) {\n throw new FormatError(`Invalid XRef range fields: ${first}, ${n}`);\n }\n if (\n !Number.isInteger(typeFieldWidth) ||\n !Number.isInteger(offsetFieldWidth) ||\n !Number.isInteger(generationFieldWidth)\n ) {\n throw new FormatError(\n `Invalid XRef entry fields length: ${first}, ${n}`\n );\n }\n for (let i = streamState.entryNum; i < n; ++i) {\n streamState.entryNum = i;\n streamState.streamPos = stream.pos;\n\n let type = 0,\n offset = 0,\n generation = 0;\n for (let j = 0; j < typeFieldWidth; ++j) {\n const typeByte = stream.getByte();\n if (typeByte === -1) {\n throw new FormatError(\"Invalid XRef byteWidths 'type'.\");\n }\n type = (type << 8) | typeByte;\n }\n // if type field is absent, its default value is 1\n if (typeFieldWidth === 0) {\n type = 1;\n }\n for (let j = 0; j < offsetFieldWidth; ++j) {\n const offsetByte = stream.getByte();\n if (offsetByte === -1) {\n throw new FormatError(\"Invalid XRef byteWidths 'offset'.\");\n }\n offset = (offset << 8) | offsetByte;\n }\n for (let j = 0; j < generationFieldWidth; ++j) {\n const generationByte = stream.getByte();\n if (generationByte === -1) {\n throw new FormatError(\"Invalid XRef byteWidths 'generation'.\");\n }\n generation = (generation << 8) | generationByte;\n }\n const entry = {};\n entry.offset = offset;\n entry.gen = generation;\n switch (type) {\n case 0:\n entry.free = true;\n break;\n case 1:\n entry.uncompressed = true;\n break;\n case 2:\n break;\n default:\n throw new FormatError(`Invalid XRef entry type: ${type}`);\n }\n if (!this.entries[first + i]) {\n this.entries[first + i] = entry;\n }\n }\n\n streamState.entryNum = 0;\n streamState.streamPos = stream.pos;\n entryRanges.splice(0, 2);\n }\n }\n\n indexObjects() {\n // Simple scan through the PDF content to find objects,\n // trailers and XRef streams.\n const TAB = 0x9,\n LF = 0xa,\n CR = 0xd,\n SPACE = 0x20;\n const PERCENT = 0x25,\n LT = 0x3c;\n\n function readToken(data, offset) {\n let token = \"\",\n ch = data[offset];\n while (ch !== LF && ch !== CR && ch !== LT) {\n if (++offset >= data.length) {\n break;\n }\n token += String.fromCharCode(ch);\n ch = data[offset];\n }\n return token;\n }\n function skipUntil(data, offset, what) {\n const length = what.length,\n dataLength = data.length;\n let skipped = 0;\n // finding byte sequence\n while (offset < dataLength) {\n let i = 0;\n while (i < length && data[offset + i] === what[i]) {\n ++i;\n }\n if (i >= length) {\n break; // sequence found\n }\n offset++;\n skipped++;\n }\n return skipped;\n }\n const objRegExp = /^(\\d+)\\s+(\\d+)\\s+obj\\b/;\n const endobjRegExp = /\\bendobj[\\b\\s]$/;\n const nestedObjRegExp = /\\s+(\\d+\\s+\\d+\\s+obj[\\b\\s<])$/;\n const CHECK_CONTENT_LENGTH = 25;\n\n const trailerBytes = new Uint8Array([116, 114, 97, 105, 108, 101, 114]);\n const startxrefBytes = new Uint8Array([\n 115, 116, 97, 114, 116, 120, 114, 101, 102,\n ]);\n const objBytes = new Uint8Array([111, 98, 106]);\n const xrefBytes = new Uint8Array([47, 88, 82, 101, 102]);\n\n // Clear out any existing entries, since they may be bogus.\n this.entries.length = 0;\n this._cacheMap.clear();\n\n const stream = this.stream;\n stream.pos = 0;\n const buffer = stream.getBytes(),\n length = buffer.length;\n let position = stream.start;\n const trailers = [],\n xrefStms = [];\n while (position < length) {\n let ch = buffer[position];\n if (ch === TAB || ch === LF || ch === CR || ch === SPACE) {\n ++position;\n continue;\n }\n if (ch === PERCENT) {\n // %-comment\n do {\n ++position;\n if (position >= length) {\n break;\n }\n ch = buffer[position];\n } while (ch !== LF && ch !== CR);\n continue;\n }\n const token = readToken(buffer, position);\n let m;\n if (\n token.startsWith(\"xref\") &&\n (token.length === 4 || /\\s/.test(token[4]))\n ) {\n position += skipUntil(buffer, position, trailerBytes);\n trailers.push(position);\n position += skipUntil(buffer, position, startxrefBytes);\n } else if ((m = objRegExp.exec(token))) {\n const num = m[1] | 0,\n gen = m[2] | 0;\n\n let contentLength,\n startPos = position + token.length,\n updateEntries = false;\n if (!this.entries[num]) {\n updateEntries = true;\n } else if (this.entries[num].gen === gen) {\n // Before overwriting an existing entry, ensure that the new one won't\n // cause *immediate* errors when it's accessed (fixes issue13783.pdf).\n try {\n const parser = new Parser({\n lexer: new Lexer(stream.makeSubStream(startPos)),\n });\n parser.getObj();\n updateEntries = true;\n } catch (ex) {\n if (ex instanceof ParserEOFException) {\n warn(`indexObjects -- checking object (${token}): \"${ex}\".`);\n } else {\n // The error may come from the `Parser`-instance being initialized\n // without an `XRef`-instance (we don't have a usable one yet).\n updateEntries = true;\n }\n }\n }\n if (updateEntries) {\n this.entries[num] = {\n offset: position - stream.start,\n gen,\n uncompressed: true,\n };\n }\n\n // Find the next \"obj\" string, rather than \"endobj\", to ensure that\n // we won't skip over a new 'obj' operator in corrupt files where\n // 'endobj' operators are missing (fixes issue9105_reduced.pdf).\n while (startPos < buffer.length) {\n const endPos = startPos + skipUntil(buffer, startPos, objBytes) + 4;\n contentLength = endPos - position;\n\n const checkPos = Math.max(endPos - CHECK_CONTENT_LENGTH, startPos);\n const tokenStr = bytesToString(buffer.subarray(checkPos, endPos));\n\n // Check if the current object ends with an 'endobj' operator.\n if (endobjRegExp.test(tokenStr)) {\n break;\n } else {\n // Check if an \"obj\" occurrence is actually a new object,\n // i.e. the current object is missing the 'endobj' operator.\n const objToken = nestedObjRegExp.exec(tokenStr);\n\n if (objToken && objToken[1]) {\n warn(\n 'indexObjects: Found new \"obj\" inside of another \"obj\", ' +\n 'caused by missing \"endobj\" -- trying to recover.'\n );\n contentLength -= objToken[1].length;\n break;\n }\n }\n startPos = endPos;\n }\n const content = buffer.subarray(position, position + contentLength);\n\n // checking XRef stream suspect\n // (it shall have '/XRef' and next char is not a letter)\n const xrefTagOffset = skipUntil(content, 0, xrefBytes);\n if (xrefTagOffset < contentLength && content[xrefTagOffset + 5] < 64) {\n xrefStms.push(position - stream.start);\n this.xrefstms[position - stream.start] = 1; // Avoid recursion\n }\n\n position += contentLength;\n } else if (\n token.startsWith(\"trailer\") &&\n (token.length === 7 || /\\s/.test(token[7]))\n ) {\n trailers.push(position);\n position += skipUntil(buffer, position, startxrefBytes);\n } else {\n position += token.length + 1;\n }\n }\n // reading XRef streams\n for (let i = 0, ii = xrefStms.length; i < ii; ++i) {\n this.startXRefQueue.push(xrefStms[i]);\n this.readXRef(/* recoveryMode */ true);\n }\n // finding main trailer\n let trailerDict;\n for (let i = 0, ii = trailers.length; i < ii; ++i) {\n stream.pos = trailers[i];\n const parser = new Parser({\n lexer: new Lexer(stream),\n xref: this,\n allowStreams: true,\n recoveryMode: true,\n });\n const obj = parser.getObj();\n if (!isCmd(obj, \"trailer\")) {\n continue;\n }\n // read the trailer dictionary\n const dict = parser.getObj();\n if (!(dict instanceof Dict)) {\n continue;\n }\n // Do some basic validation of the trailer/root dictionary candidate.\n try {\n const rootDict = dict.get(\"Root\");\n if (!(rootDict instanceof Dict)) {\n continue;\n }\n const pagesDict = rootDict.get(\"Pages\");\n if (!(pagesDict instanceof Dict)) {\n continue;\n }\n const pagesCount = pagesDict.get(\"Count\");\n if (!Number.isInteger(pagesCount)) {\n continue;\n }\n // The top-level /Pages dictionary isn't obviously corrupt.\n } catch (ex) {\n continue;\n }\n // taking the first one with 'ID'\n if (dict.has(\"ID\")) {\n return dict;\n }\n // The current dictionary is a candidate, but continue searching.\n trailerDict = dict;\n }\n // No trailer with 'ID', taking last one (if exists).\n if (trailerDict) {\n return trailerDict;\n }\n // No trailer dictionary found, taking the \"top\"-dictionary (if exists).\n if (this.topDict) {\n return this.topDict;\n }\n // nothing helps\n throw new InvalidPDFException(\"Invalid PDF structure.\");\n }\n\n readXRef(recoveryMode = false) {\n const stream = this.stream;\n // Keep track of already parsed XRef tables, to prevent an infinite loop\n // when parsing corrupt PDF files where e.g. the /Prev entries create a\n // circular dependency between tables (fixes bug1393476.pdf).\n const startXRefParsedCache = new Set();\n\n try {\n while (this.startXRefQueue.length) {\n const startXRef = this.startXRefQueue[0];\n\n if (startXRefParsedCache.has(startXRef)) {\n warn(\"readXRef - skipping XRef table since it was already parsed.\");\n this.startXRefQueue.shift();\n continue;\n }\n startXRefParsedCache.add(startXRef);\n\n stream.pos = startXRef + stream.start;\n\n const parser = new Parser({\n lexer: new Lexer(stream),\n xref: this,\n allowStreams: true,\n });\n let obj = parser.getObj();\n let dict;\n\n // Get dictionary\n if (isCmd(obj, \"xref\")) {\n // Parse end-of-file XRef\n dict = this.processXRefTable(parser);\n if (!this.topDict) {\n this.topDict = dict;\n }\n\n // Recursively get other XRefs 'XRefStm', if any\n obj = dict.get(\"XRefStm\");\n if (Number.isInteger(obj)) {\n const pos = obj;\n // ignore previously loaded xref streams\n // (possible infinite recursion)\n if (!(pos in this.xrefstms)) {\n this.xrefstms[pos] = 1;\n this.startXRefQueue.push(pos);\n }\n }\n } else if (Number.isInteger(obj)) {\n // Parse in-stream XRef\n if (\n !Number.isInteger(parser.getObj()) ||\n !isCmd(parser.getObj(), \"obj\") ||\n !((obj = parser.getObj()) instanceof BaseStream)\n ) {\n throw new FormatError(\"Invalid XRef stream\");\n }\n dict = this.processXRefStream(obj);\n if (!this.topDict) {\n this.topDict = dict;\n }\n if (!dict) {\n throw new FormatError(\"Failed to read XRef stream\");\n }\n } else {\n throw new FormatError(\"Invalid XRef stream header\");\n }\n\n // Recursively get previous dictionary, if any\n obj = dict.get(\"Prev\");\n if (Number.isInteger(obj)) {\n this.startXRefQueue.push(obj);\n } else if (obj instanceof Ref) {\n // The spec says Prev must not be a reference, i.e. \"/Prev NNN\"\n // This is a fallback for non-compliant PDFs, i.e. \"/Prev NNN 0 R\"\n this.startXRefQueue.push(obj.num);\n }\n\n this.startXRefQueue.shift();\n }\n\n return this.topDict;\n } catch (e) {\n if (e instanceof MissingDataException) {\n throw e;\n }\n info(\"(while reading XRef): \" + e);\n\n this.startXRefQueue.shift();\n }\n\n if (recoveryMode) {\n return undefined;\n }\n throw new XRefParseException();\n }\n\n getEntry(i) {\n const xrefEntry = this.entries[i];\n if (xrefEntry && !xrefEntry.free && xrefEntry.offset) {\n return xrefEntry;\n }\n return null;\n }\n\n fetchIfRef(obj, suppressEncryption = false) {\n if (obj instanceof Ref) {\n return this.fetch(obj, suppressEncryption);\n }\n return obj;\n }\n\n fetch(ref, suppressEncryption = false) {\n if (!(ref instanceof Ref)) {\n throw new Error(\"ref object is not a reference\");\n }\n const num = ref.num;\n\n // The XRef cache is populated with objects which are obtained through\n // `Parser.getObj`, and indirectly via `Lexer.getObj`. Neither of these\n // methods should ever return `undefined` (note the `assert` calls below).\n const cacheEntry = this._cacheMap.get(num);\n if (cacheEntry !== undefined) {\n // In documents with Object Streams, it's possible that cached `Dict`s\n // have not been assigned an `objId` yet (see e.g. issue3115r.pdf).\n if (cacheEntry instanceof Dict && !cacheEntry.objId) {\n cacheEntry.objId = ref.toString();\n }\n return cacheEntry;\n }\n let xrefEntry = this.getEntry(num);\n\n if (xrefEntry === null) {\n // The referenced entry can be free.\n this._cacheMap.set(num, xrefEntry);\n return xrefEntry;\n }\n // Prevent circular references, in corrupt PDF documents, from hanging the\n // worker-thread. This relies, implicitly, on the parsing being synchronous.\n if (this._pendingRefs.has(ref)) {\n this._pendingRefs.remove(ref);\n\n warn(`Ignoring circular reference: ${ref}.`);\n return CIRCULAR_REF;\n }\n this._pendingRefs.put(ref);\n\n try {\n if (xrefEntry.uncompressed) {\n xrefEntry = this.fetchUncompressed(ref, xrefEntry, suppressEncryption);\n } else {\n xrefEntry = this.fetchCompressed(ref, xrefEntry, suppressEncryption);\n }\n this._pendingRefs.remove(ref);\n } catch (ex) {\n this._pendingRefs.remove(ref);\n throw ex;\n }\n if (xrefEntry instanceof Dict) {\n xrefEntry.objId = ref.toString();\n } else if (xrefEntry instanceof BaseStream) {\n xrefEntry.dict.objId = ref.toString();\n }\n return xrefEntry;\n }\n\n fetchUncompressed(ref, xrefEntry, suppressEncryption = false) {\n const gen = ref.gen;\n let num = ref.num;\n if (xrefEntry.gen !== gen) {\n throw new XRefEntryException(`Inconsistent generation in XRef: ${ref}`);\n }\n const stream = this.stream.makeSubStream(\n xrefEntry.offset + this.stream.start\n );\n const parser = new Parser({\n lexer: new Lexer(stream),\n xref: this,\n allowStreams: true,\n });\n const obj1 = parser.getObj();\n const obj2 = parser.getObj();\n const obj3 = parser.getObj();\n\n if (obj1 !== num || obj2 !== gen || !(obj3 instanceof Cmd)) {\n throw new XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`);\n }\n if (obj3.cmd !== \"obj\") {\n // some bad PDFs use \"obj1234\" and really mean 1234\n if (obj3.cmd.startsWith(\"obj\")) {\n num = parseInt(obj3.cmd.substring(3), 10);\n if (!Number.isNaN(num)) {\n return num;\n }\n }\n throw new XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`);\n }\n if (this.encrypt && !suppressEncryption) {\n xrefEntry = parser.getObj(this.encrypt.createCipherTransform(num, gen));\n } else {\n xrefEntry = parser.getObj();\n }\n if (!(xrefEntry instanceof BaseStream)) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n xrefEntry !== undefined,\n 'fetchUncompressed: The \"xrefEntry\" cannot be undefined.'\n );\n }\n this._cacheMap.set(num, xrefEntry);\n }\n return xrefEntry;\n }\n\n fetchCompressed(ref, xrefEntry, suppressEncryption = false) {\n const tableOffset = xrefEntry.offset;\n const stream = this.fetch(Ref.get(tableOffset, 0));\n if (!(stream instanceof BaseStream)) {\n throw new FormatError(\"bad ObjStm stream\");\n }\n const first = stream.dict.get(\"First\");\n const n = stream.dict.get(\"N\");\n if (!Number.isInteger(first) || !Number.isInteger(n)) {\n throw new FormatError(\"invalid first and n parameters for ObjStm stream\");\n }\n let parser = new Parser({\n lexer: new Lexer(stream),\n xref: this,\n allowStreams: true,\n });\n const nums = new Array(n);\n const offsets = new Array(n);\n // read the object numbers to populate cache\n for (let i = 0; i < n; ++i) {\n const num = parser.getObj();\n if (!Number.isInteger(num)) {\n throw new FormatError(\n `invalid object number in the ObjStm stream: ${num}`\n );\n }\n const offset = parser.getObj();\n if (!Number.isInteger(offset)) {\n throw new FormatError(\n `invalid object offset in the ObjStm stream: ${offset}`\n );\n }\n nums[i] = num;\n offsets[i] = offset;\n }\n\n const start = (stream.start || 0) + first;\n const entries = new Array(n);\n // read stream objects for cache\n for (let i = 0; i < n; ++i) {\n const length = i < n - 1 ? offsets[i + 1] - offsets[i] : undefined;\n if (length < 0) {\n throw new FormatError(\"Invalid offset in the ObjStm stream.\");\n }\n parser = new Parser({\n lexer: new Lexer(\n stream.makeSubStream(start + offsets[i], length, stream.dict)\n ),\n xref: this,\n allowStreams: true,\n });\n\n const obj = parser.getObj();\n entries[i] = obj;\n if (obj instanceof BaseStream) {\n continue;\n }\n const num = nums[i],\n entry = this.entries[num];\n if (entry && entry.offset === tableOffset && entry.gen === i) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n obj !== undefined,\n 'fetchCompressed: The \"obj\" cannot be undefined.'\n );\n }\n this._cacheMap.set(num, obj);\n }\n }\n xrefEntry = entries[xrefEntry.gen];\n if (xrefEntry === undefined) {\n throw new XRefEntryException(`Bad (compressed) XRef entry: ${ref}`);\n }\n return xrefEntry;\n }\n\n async fetchIfRefAsync(obj, suppressEncryption) {\n if (obj instanceof Ref) {\n return this.fetchAsync(obj, suppressEncryption);\n }\n return obj;\n }\n\n async fetchAsync(ref, suppressEncryption) {\n try {\n return this.fetch(ref, suppressEncryption);\n } catch (ex) {\n if (!(ex instanceof MissingDataException)) {\n throw ex;\n }\n await this.pdfManager.requestRange(ex.begin, ex.end);\n return this.fetchAsync(ref, suppressEncryption);\n }\n }\n\n getCatalogObj() {\n return this.root;\n }\n}\n\nexport { XRef };\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AbortException,\n assert,\n createPromiseCapability,\n MissingPDFException,\n PasswordException,\n UnexpectedResponseException,\n UnknownErrorException,\n unreachable,\n} from \"./util.js\";\n\nconst CallbackKind = {\n UNKNOWN: 0,\n DATA: 1,\n ERROR: 2,\n};\n\nconst StreamKind = {\n UNKNOWN: 0,\n CANCEL: 1,\n CANCEL_COMPLETE: 2,\n CLOSE: 3,\n ENQUEUE: 4,\n ERROR: 5,\n PULL: 6,\n PULL_COMPLETE: 7,\n START_COMPLETE: 8,\n};\n\nfunction wrapReason(reason) {\n if (\n !(\n reason instanceof Error ||\n (typeof reason === \"object\" && reason !== null)\n )\n ) {\n unreachable(\n 'wrapReason: Expected \"reason\" to be a (possibly cloned) Error.'\n );\n }\n switch (reason.name) {\n case \"AbortException\":\n return new AbortException(reason.message);\n case \"MissingPDFException\":\n return new MissingPDFException(reason.message);\n case \"PasswordException\":\n return new PasswordException(reason.message, reason.code);\n case \"UnexpectedResponseException\":\n return new UnexpectedResponseException(reason.message, reason.status);\n case \"UnknownErrorException\":\n return new UnknownErrorException(reason.message, reason.details);\n default:\n return new UnknownErrorException(reason.message, reason.toString());\n }\n}\n\nclass MessageHandler {\n constructor(sourceName, targetName, comObj) {\n this.sourceName = sourceName;\n this.targetName = targetName;\n this.comObj = comObj;\n this.callbackId = 1;\n this.streamId = 1;\n this.streamSinks = Object.create(null);\n this.streamControllers = Object.create(null);\n this.callbackCapabilities = Object.create(null);\n this.actionHandler = Object.create(null);\n\n this._onComObjOnMessage = event => {\n const data = event.data;\n if (data.targetName !== this.sourceName) {\n return;\n }\n if (data.stream) {\n this._processStreamMessage(data);\n return;\n }\n if (data.callback) {\n const callbackId = data.callbackId;\n const capability = this.callbackCapabilities[callbackId];\n if (!capability) {\n throw new Error(`Cannot resolve callback ${callbackId}`);\n }\n delete this.callbackCapabilities[callbackId];\n\n if (data.callback === CallbackKind.DATA) {\n capability.resolve(data.data);\n } else if (data.callback === CallbackKind.ERROR) {\n capability.reject(wrapReason(data.reason));\n } else {\n throw new Error(\"Unexpected callback case\");\n }\n return;\n }\n const action = this.actionHandler[data.action];\n if (!action) {\n throw new Error(`Unknown action from worker: ${data.action}`);\n }\n if (data.callbackId) {\n const cbSourceName = this.sourceName;\n const cbTargetName = data.sourceName;\n\n new Promise(function (resolve) {\n resolve(action(data.data));\n }).then(\n function (result) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.DATA,\n callbackId: data.callbackId,\n data: result,\n });\n },\n function (reason) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.ERROR,\n callbackId: data.callbackId,\n reason: wrapReason(reason),\n });\n }\n );\n return;\n }\n if (data.streamId) {\n this._createStreamSink(data);\n return;\n }\n action(data.data);\n };\n comObj.addEventListener(\"message\", this._onComObjOnMessage);\n }\n\n on(actionName, handler) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n typeof handler === \"function\",\n 'MessageHandler.on: Expected \"handler\" to be a function.'\n );\n }\n const ah = this.actionHandler;\n if (ah[actionName]) {\n throw new Error(`There is already an actionName called \"${actionName}\"`);\n }\n ah[actionName] = handler;\n }\n\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * @param {string} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n */\n send(actionName, data, transfers) {\n this.comObj.postMessage(\n {\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data,\n },\n transfers\n );\n }\n\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * Expects that the other side will callback with the response.\n * @param {string} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n * @returns {Promise} Promise to be resolved with response data.\n */\n sendWithPromise(actionName, data, transfers) {\n const callbackId = this.callbackId++;\n const capability = createPromiseCapability();\n this.callbackCapabilities[callbackId] = capability;\n try {\n this.comObj.postMessage(\n {\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n callbackId,\n data,\n },\n transfers\n );\n } catch (ex) {\n capability.reject(ex);\n }\n return capability.promise;\n }\n\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * Expect that the other side will callback to signal 'start_complete'.\n * @param {string} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Object} queueingStrategy - Strategy to signal backpressure based on\n * internal queue.\n * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n * @returns {ReadableStream} ReadableStream to read data in chunks.\n */\n sendWithStream(actionName, data, queueingStrategy, transfers) {\n const streamId = this.streamId++,\n sourceName = this.sourceName,\n targetName = this.targetName,\n comObj = this.comObj;\n\n return new ReadableStream(\n {\n start: controller => {\n const startCapability = createPromiseCapability();\n this.streamControllers[streamId] = {\n controller,\n startCall: startCapability,\n pullCall: null,\n cancelCall: null,\n isClosed: false,\n };\n comObj.postMessage(\n {\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize,\n },\n transfers\n );\n // Return Promise for Async process, to signal success/failure.\n return startCapability.promise;\n },\n\n pull: controller => {\n const pullCapability = createPromiseCapability();\n this.streamControllers[streamId].pullCall = pullCapability;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL,\n streamId,\n desiredSize: controller.desiredSize,\n });\n // Returning Promise will not call \"pull\"\n // again until current pull is resolved.\n return pullCapability.promise;\n },\n\n cancel: reason => {\n assert(reason instanceof Error, \"cancel must have a valid reason\");\n const cancelCapability = createPromiseCapability();\n this.streamControllers[streamId].cancelCall = cancelCapability;\n this.streamControllers[streamId].isClosed = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL,\n streamId,\n reason: wrapReason(reason),\n });\n // Return Promise to signal success or failure.\n return cancelCapability.promise;\n },\n },\n queueingStrategy\n );\n }\n\n /**\n * @private\n */\n _createStreamSink(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const self = this,\n action = this.actionHandler[data.action];\n\n const streamSink = {\n enqueue(chunk, size = 1, transfers) {\n if (this.isCancelled) {\n return;\n }\n const lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n // Enqueue decreases the desiredSize property of sink,\n // so when it changes from positive to negative,\n // set ready as unresolved promise.\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = createPromiseCapability();\n this.ready = this.sinkCapability.promise;\n }\n comObj.postMessage(\n {\n sourceName,\n targetName,\n stream: StreamKind.ENQUEUE,\n streamId,\n chunk,\n },\n transfers\n );\n },\n\n close() {\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CLOSE,\n streamId,\n });\n delete self.streamSinks[streamId];\n },\n\n error(reason) {\n assert(reason instanceof Error, \"error must have a valid reason\");\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ERROR,\n streamId,\n reason: wrapReason(reason),\n });\n },\n\n sinkCapability: createPromiseCapability(),\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: data.desiredSize,\n ready: null,\n };\n\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n\n new Promise(function (resolve) {\n resolve(action(data.data, streamSink));\n }).then(\n function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n success: true,\n });\n },\n function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n reason: wrapReason(reason),\n });\n }\n );\n }\n\n /**\n * @private\n */\n _processStreamMessage(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const streamController = this.streamControllers[streamId],\n streamSink = this.streamSinks[streamId];\n\n switch (data.stream) {\n case StreamKind.START_COMPLETE:\n if (data.success) {\n streamController.startCall.resolve();\n } else {\n streamController.startCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n streamController.pullCall.resolve();\n } else {\n streamController.pullCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL:\n // Ignore any pull after close is called.\n if (!streamSink) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true,\n });\n break;\n }\n // Pull increases the desiredSize property of sink, so when it changes\n // from negative to positive, set ready property as resolved promise.\n if (streamSink.desiredSize <= 0 && data.desiredSize > 0) {\n streamSink.sinkCapability.resolve();\n }\n // Reset desiredSize property of sink on every pull.\n streamSink.desiredSize = data.desiredSize;\n\n new Promise(function (resolve) {\n resolve(streamSink.onPull && streamSink.onPull());\n }).then(\n function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true,\n });\n },\n function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n reason: wrapReason(reason),\n });\n }\n );\n break;\n case StreamKind.ENQUEUE:\n assert(streamController, \"enqueue should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.controller.enqueue(data.chunk);\n break;\n case StreamKind.CLOSE:\n assert(streamController, \"close should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.isClosed = true;\n streamController.controller.close();\n this._deleteStreamController(streamController, streamId);\n break;\n case StreamKind.ERROR:\n assert(streamController, \"error should have stream controller\");\n streamController.controller.error(wrapReason(data.reason));\n this._deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n streamController.cancelCall.resolve();\n } else {\n streamController.cancelCall.reject(wrapReason(data.reason));\n }\n this._deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL:\n if (!streamSink) {\n break;\n }\n\n new Promise(function (resolve) {\n resolve(\n streamSink.onCancel && streamSink.onCancel(wrapReason(data.reason))\n );\n }).then(\n function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n success: true,\n });\n },\n function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n reason: wrapReason(reason),\n });\n }\n );\n streamSink.sinkCapability.reject(wrapReason(data.reason));\n streamSink.isCancelled = true;\n delete this.streamSinks[streamId];\n break;\n default:\n throw new Error(\"Unexpected stream case\");\n }\n }\n\n /**\n * @private\n */\n async _deleteStreamController(streamController, streamId) {\n // Delete the `streamController` only when the start, pull, and cancel\n // capabilities have settled, to prevent `TypeError`s.\n await Promise.allSettled([\n streamController.startCall && streamController.startCall.promise,\n streamController.pullCall && streamController.pullCall.promise,\n streamController.cancelCall && streamController.cancelCall.promise,\n ]);\n delete this.streamControllers[streamId];\n }\n\n destroy() {\n this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n }\n}\n\nexport { MessageHandler };\n","/* Copyright 2019 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert } from \"../shared/util.js\";\n\n/** @implements {IPDFStream} */\nclass PDFWorkerStream {\n constructor(msgHandler) {\n this._msgHandler = msgHandler;\n this._contentLength = null;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n getFullReader() {\n assert(\n !this._fullRequestReader,\n \"PDFWorkerStream.getFullReader can only be called once.\"\n );\n this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler);\n return this._fullRequestReader;\n }\n\n getRangeReader(begin, end) {\n const reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\n\n/** @implements {IPDFStreamReader} */\nclass PDFWorkerStreamReader {\n constructor(msgHandler) {\n this._msgHandler = msgHandler;\n this.onProgress = null;\n\n this._contentLength = null;\n this._isRangeSupported = false;\n this._isStreamingSupported = false;\n\n const readableStream = this._msgHandler.sendWithStream(\"GetReader\");\n this._reader = readableStream.getReader();\n\n this._headersReady = this._msgHandler\n .sendWithPromise(\"ReaderHeadersReady\")\n .then(data => {\n this._isStreamingSupported = data.isStreamingSupported;\n this._isRangeSupported = data.isRangeSupported;\n this._contentLength = data.contentLength;\n });\n }\n\n get headersReady() {\n return this._headersReady;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n async read() {\n const { value, done } = await this._reader.read();\n if (done) {\n return { value: undefined, done: true };\n }\n // `value` is wrapped into Uint8Array, we need to\n // unwrap it to ArrayBuffer for further processing.\n return { value: value.buffer, done: false };\n }\n\n cancel(reason) {\n this._reader.cancel(reason);\n }\n}\n\n/** @implements {IPDFStreamRangeReader} */\nclass PDFWorkerStreamRangeReader {\n constructor(begin, end, msgHandler) {\n this._msgHandler = msgHandler;\n this.onProgress = null;\n\n const readableStream = this._msgHandler.sendWithStream(\"GetRangeReader\", {\n begin,\n end,\n });\n this._reader = readableStream.getReader();\n }\n\n get isStreamingSupported() {\n return false;\n }\n\n async read() {\n const { value, done } = await this._reader.read();\n if (done) {\n return { value: undefined, done: true };\n }\n return { value: value.buffer, done: false };\n }\n\n cancel(reason) {\n this._reader.cancel(reason);\n }\n}\n\nexport { PDFWorkerStream };\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __w_pdfjs_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__w_pdfjs_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__w_pdfjs_require__.o(definition, key) && !__w_pdfjs_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__w_pdfjs_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__w_pdfjs_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WorkerMessageHandler } from \"./core/worker.js\";\n\n/* eslint-disable-next-line no-unused-vars */\nconst pdfjsVersion = PDFJSDev.eval(\"BUNDLE_VERSION\");\n/* eslint-disable-next-line no-unused-vars */\nconst pdfjsBuild = PDFJSDev.eval(\"BUNDLE_BUILD\");\n\nexport { WorkerMessageHandler };\n"],"names":["WorkerTask","constructor","name","terminated","_capability","createPromiseCapability","promise","finish","resolve","terminate","ensureNotTerminated","Error","WorkerMessageHandler","handler","port","testMessageProcessed","on","wphSetupTest","data","send","Uint8Array","wphConfigure","setVerbosityLevel","verbosity","wphSetupDoc","createDocumentHandler","docParams","pdfManager","cancelXHRs","WorkerTasks","getVerbosityLevel","apiVersion","workerVersion","enumerableProperties","property","push","length","join","ReadableStream","partialMsg","isNodeJS","docId","docBaseUrl","workerHandlerName","MessageHandler","startWorkerTask","task","finishWorkerTask","i","indexOf","splice","loadDocument","recoveryMode","ensureDoc","isPureXfa","Promise","all","loadXfaFonts","reason","then","loadXfaImages","numPages","fingerprints","structureTree","htmlForXfa","getPdfManager","evaluatorOptions","enableXfa","pdfManagerCapability","newPdfManager","source","LocalPdfManager","password","ex","reject","pdfStream","cachedChunks","PDFWorkerStream","fullRequest","getFullReader","headersReady","isRangeSupported","disableAutoFetch","isStreamingSupported","NetworkPdfManager","msgHandler","contentLength","rangeChunkSize","sendProgressiveData","loaded","flushChunks","pdfFile","arraysToBytes","warn","readPromise","readChunk","value","done","arrayByteLength","total","Math","max","read","e","cancelAllRequests","setupDoc","onSuccess","doc","pdfInfo","onFailure","PasswordException","code","sendWithPromise","updatePassword","pdfManagerReady","InvalidPDFException","MissingPDFException","UnexpectedResponseException","UnknownErrorException","message","toString","XRefParseException","requestLoadedStream","onLoadedStream","maxImageSize","disableFontFace","ignoreErrors","isEvalSupported","fontExtraProperties","useSystemFonts","cMapUrl","standardFontDataUrl","AbortException","stream","bytes","byteLength","wphSetupGetPage","getPage","pageIndex","page","ensure","rotate","ref","userUnit","view","wphSetupGetPageIndex","pageRef","Ref","get","num","gen","ensureCatalog","wphSetupGetDestinations","wphSetupGetDestination","id","wphSetupGetPageLabels","wphSetupGetPageLayout","wphSetupGetPageMode","wphSetupGetAttachments","wphSetupGetJavaScript","wphSetupGetDocJSActions","wphSetupGetOutline","wphSetupGetMetadata","wphSetupGetMarkInfo","wphSetupGetData","intent","getAnnotationsData","annotationStorage","filename","promises","serializeXfaData","save","acroForm","acroFormRef","xref","startXRef","refs","newRefs","xfaData","filter","x","reduce","a","b","concat","xfa","Dict","xfaDatasetsRef","hasXfaDatasetsEntry","Array","isArray","ii","getNewRef","newXrefInfo","Object","create","trailer","infoObj","xrefInfo","forEach","key","stringToPDFString","rootRef","getRaw","encryptRef","newRef","infoRef","info","fileIds","resetNewRef","incrementalUpdate","originalData","hasXfa","wphSetupRenderPage","sink","start","VerbosityLevel","INFOS","Date","now","getOperatorList","cacheKey","operatorListInfo","close","featureId","UNSUPPORTED_FEATURES","errorOperatorList","error","wphExtractText","extractTextContent","includeMarkedContent","combineTextItems","wphGetStructTree","fontFallback","wphCleanup","cleanup","wphTerminate","waitOn","cleanupPromise","clearGlobalCaches","finished","destroy","wphReady","setup","isMessagePort","maybePort","postMessage","window","self","initializeFromPort","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","RenderingIntentFlag","ANY","DISPLAY","PRINT","ANNOTATIONS_FORMS","ANNOTATIONS_STORAGE","ANNOTATIONS_DISABLE","OPLIST","AnnotationMode","DISABLE","ENABLE","ENABLE_FORMS","ENABLE_STORAGE","PermissionFlag","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","TextRenderingMode","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","ImageKind","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","AnnotationType","TEXT","LINK","FREETEXT","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","STAMP","CARET","INK","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","AnnotationStateModelType","MARKED","REVIEW","AnnotationMarkedState","UNMARKED","AnnotationReviewState","ACCEPTED","REJECTED","CANCELLED","COMPLETED","NONE","AnnotationReplyType","GROUP","REPLY","AnnotationFlag","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","AnnotationFieldFlag","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","AnnotationBorderStyleType","SOLID","DASHED","BEVELED","INSET","AnnotationActionEventType","E","X","D","U","Fo","Bl","PO","PC","PV","PI","K","F","V","C","DocumentActionEventType","WC","WS","DS","WP","DP","PageActionEventType","O","StreamType","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RLX","FontType","TYPE1","TYPE1STANDARD","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","ERRORS","WARNINGS","CMapCompressionType","BINARY","STREAM","OPS","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","boundingBoxes","operationPosition","unknown","forms","javaScript","signatures","smask","shadingPattern","font","errorTilingPattern","errorExtGState","errorXObject","errorFontLoadType3","errorFontState","errorFontMissing","errorFontTranslate","errorColorSpace","errorFontToUnicode","errorFontLoadNative","errorFontBuildPath","errorFontGetPath","errorMarkedContent","errorContentSubStream","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","level","Number","isInteger","msg","console","log","unreachable","assert","cond","_isValidProtocol","url","protocol","createValidAbsoluteUrl","baseUrl","options","addDefaultProtocol","startsWith","dots","match","tryConvertEncoding","stringToUTF8String","absoluteUrl","URL","shadow","obj","prop","defineProperty","enumerable","configurable","writable","BaseException","BaseExceptionClosure","prototype","details","status","FormatError","bytesToString","undefined","MAX_ARGUMENT_COUNT","String","fromCharCode","apply","strBuf","chunkEnd","min","chunk","subarray","stringToBytes","str","charCodeAt","arr","resultLength","pos","item","itemLength","set","string32","objectSize","keys","objectFromMap","map","isLittleEndian","buffer8","view32","Uint32Array","buffer","Function","FeatureTest","OffscreenCanvas","hexNumbers","n","padStart","Util","r","g","minMax","temp","m1","m2","p","m","xt","yt","d","p1","applyTransform","p2","slice","p3","p4","v","transpose","c","first","second","sqrt","sx","sy","rect","rect1","rect2","xLow","xHigh","yLow","yHigh","x0","y0","x1","y1","x2","y2","x3","y3","tvalues","bounds","t","t1","t2","b2ac","sqrtb2ac","abs","j","mt","jlen","PDFStringTranslateTable","encoding","decoder","TextDecoder","fatal","decode","charAt","escapeString","replace","isAscii","test","stringToUTF16BEString","buf","char","decodeURIComponent","escape","utf8StringToString","unescape","encodeURIComponent","isArrayBuffer","isArrayEqual","arr1","arr2","getModificationDate","date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","capability","isSettled","globalThis","_pdfjsCompatibilityChecked","checkNodeBtoa","btoa","chars","Buffer","from","checkNodeAtob","atob","input","checkDOMMatrix","DOMMatrix","__non_webpack_require__","checkPromise","allSettled","require","checkReadableStream","checkStructuredClone","structuredClone","process","versions","nw","electron","type","path","module","exports","$","isPrototypeOf","getPrototypeOf","setPrototypeOf","copyConstructorProperties","createNonEnumerableProperty","createPropertyDescriptor","clearErrorStack","installErrorCause","iterate","normalizeStringArgument","wellKnownSymbol","ERROR_STACK_INSTALLABLE","TO_STRING_TAG","$Error","$AggregateError","AggregateError","errors","arguments","isInstance","AggregateErrorPrototype","that","stack","errorsArray","global","arity","getOwnPropertyDescriptor","f","defineBuiltIn","defineGlobalProperty","isForced","TARGET","target","GLOBAL","STATIC","stat","FORCED","targetProperty","sourceProperty","descriptor","dontCallGetSet","forced","sham","check","it","DESCRIPTORS","call","propertyIsEnumerableModule","toIndexedObject","toPropertyKey","hasOwn","IE8_DOM_DEFINE","$getOwnPropertyDescriptor","P","fails","exec","NATIVE_BIND","bind","hasOwnProperty","$propertyIsEnumerable","propertyIsEnumerable","NASHORN_BUG","bitmap","IndexedObject","requireObjectCoercible","uncurryThis","classof","$Object","split","FunctionPrototype","fn","stringSlice","isNullOrUndefined","$TypeError","TypeError","toPrimitive","isSymbol","argument","isObject","getMethod","ordinaryToPrimitive","TO_PRIMITIVE","pref","exoticToPrim","result","isCallable","documentAll","document","SPECIAL_DOCUMENT_ALL","getBuiltIn","USE_SYMBOL_AS_UID","$Symbol","aFunction","namespace","method","NATIVE_SYMBOL","Symbol","iterator","V8_VERSION","getOwnPropertySymbols","symbol","userAgent","Deno","version","v8","aCallable","func","tryToString","$String","val","valueOf","shared","uid","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","description","IS_PURE","store","mode","copyright","license","SHARED","toObject","postfix","random","createElement","EXISTS","definePropertyModule","object","V8_PROTOTYPE_DEFINE_BUG","anObject","$defineProperty","ENUMERABLE","CONFIGURABLE","WRITABLE","Attributes","current","makeBuiltIn","simple","unsafe","nonConfigurable","nonWritable","CONFIGURABLE_FUNCTION_NAME","inspectSource","InternalStateModule","enforceInternalState","enforce","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","getter","setter","state","getDescriptor","PROPER","something","functionToString","NATIVE_WEAK_MAP","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","has","getterFor","TYPE","wmget","wmhas","wmset","metadata","facade","STATE","ownKeys","getOwnPropertyDescriptorModule","exceptions","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","internalObjectKeys","enumBugKeys","getOwnPropertyNames","names","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","el","fromIndex","index","includes","toIntegerOrInfinity","integer","trunc","number","ceil","floor","toLength","replacement","feature","detection","normalize","POLYFILL","NATIVE","string","toLowerCase","CORRECT_PROTOTYPE_GETTER","IE_PROTO","ObjectPrototype","aPossiblePrototype","CORRECT_SETTER","proto","__proto__","definePropertiesModule","html","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","activeXDocument","write","parentWindow","NullProtoObjectViaIFrame","iframe","JS","iframeDocument","style","display","appendChild","src","contentWindow","open","NullProtoObject","ActiveXObject","domain","Properties","objectKeys","defineProperties","props","TEST","arg","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","dropEntries","prepareStackTrace","cause","isArrayIteratorMethod","getIterator","getIteratorMethod","iteratorClose","Result","stopped","ResultPrototype","iterable","unboundFunction","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","iterFn","next","step","stop","condition","callFn","Iterators","ITERATOR","ArrayPrototype","usingIterator","iteratorMethod","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","tag","callee","kind","innerResult","innerError","$default","addToUnscopables","defineIterator","createIterResultObject","ARRAY_ITERATOR","setInternalState","iterated","values","Arguments","UNSCOPABLES","FunctionName","createIteratorConstructor","setToStringTag","IteratorsCore","PROPER_FUNCTION_NAME","IteratorPrototype","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","getIterationMethod","KIND","defaultIterator","IterablePrototype","entries","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","CurrentIteratorPrototype","methods","KEY","ENUMERABLE_NEXT","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","TAG","IS_NODE","setSpecies","anInstance","speciesConstructor","microtask","hostReportErrors","perform","Queue","NativePromiseConstructor","PromiseConstructorDetection","newPromiseCapabilityModule","PROMISE","FORCED_PROMISE_CONSTRUCTOR","CONSTRUCTOR","NATIVE_PROMISE_REJECTION_EVENT","REJECTION_EVENT","NATIVE_PROMISE_SUBCLASSING","SUBCLASSING","getInternalPromiseState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newPromiseCapability","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","HANDLED","UNHANDLED","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","isThenable","callReaction","reaction","ok","fail","exited","rejection","onHandleUnhandled","enter","exit","notify","isReject","notified","reactions","onUnhandled","event","initEvent","IS_UNHANDLED","isUnhandled","emit","parent","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","add","wrap","SPECIES","CONSTRUCTOR_NAME","Constructor","Prototype","aConstructor","defaultConstructor","S","isConstructor","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","called","arraySlice","validateArgumentsLength","IS_IOS","setImmediate","clear","clearImmediate","Dispatch","MessageChannel","counter","queue","ONREADYSTATECHANGE","location","defer","channel","run","runner","listener","post","host","args","nextTick","port2","port1","onmessage","addEventListener","importScripts","removeChild","setTimeout","Reflect","passed","required","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","flush","head","last","toggle","node","createTextNode","observe","characterData","Pebble","tail","entry","IS_BROWSER","IS_DENO","PromiseRejectionEvent","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","PromiseCapability","$$resolve","$$reject","PROMISE_STATICS_INCORRECT_ITERATION","$promiseResolve","remaining","alreadyCalled","checkCorrectnessOfIteration","SAFE_CLOSING","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","real","race","promiseResolve","PromiseConstructorWrapper","CHECK_WRAPPER","promiseCapability","PROMISE_ANY_ERROR","any","alreadyResolved","alreadyRejected","NON_GENERIC","onFinally","isFunction","STRING_ITERATOR","point","CONVERT_TO_STRING","position","size","codeAt","collection","collectionStrong","init","Map","InternalMetadataModule","inheritIfRequired","common","IS_MAP","IS_WEAK","ADDER","NativeConstructor","NativePrototype","exported","fixMethod","uncurriedNativeMethod","REPLACE","getConstructor","enable","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","setStrong","getOwnPropertyNamesExternalModule","isExtensible","FREEZING","METADATA","setMetadata","objectID","weakData","fastKey","getWeakData","onFreeze","meta","$getOwnPropertyNames","windowNames","getWindowNames","createProperty","$Array","end","k","fin","propertyKey","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","FAILS_ON_PRIMITIVES","ArrayBuffer","preventExtensions","Wrapper","NewTarget","NewTargetPrototype","defineBuiltIns","internalStateGetterFor","define","getEntry","previous","removed","prev","callbackfn","boundFunction","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","Set","getBuiltin","getRegExpFlags","V8","EvalError","RangeError","ReferenceError","SyntaxError","URIError","PerformanceMark","WebAssembly","CompileError","LinkError","RuntimeError","DOMException","MapPrototype","mapHas","mapGet","mapSet","setAdd","thisBooleanValue","thisNumberValue","thisStringValue","thisTimeValue","getTime","PERFORMANCE_MARK","DATA_CLONE_ERROR","TRANSFERRING","checkBasicSemantic","structuredCloneImplementation","set1","set2","checkErrorsCloning","checkNewErrorsCloningSemantic","nativeStructuredClone","FORCED_REPLACEMENT","structuredCloneFromMark","detail","nativeRestrictedStructuredClone","throwUncloneable","throwUnpolyfillable","action","createDataTransfer","dataTransfer","DataTransfer","ClipboardEvent","clipboardData","error2","items","files","structuredCloneInternal","deep","cloned","RegExp","byteOffset","DOMQuad","ImageData","width","height","colorSpace","DataView","setUint8","getUint8","fromPoint","y","z","w","fromRect","fromMatrix","clone","File","PROPER_TRANSFER","transfer","tryToTransfer","rawTransfer","transferredArray","transferred","canvas","context","getContext","transferFromImageBitmap","transferToImageBitmap","regExpFlags","RegExpPrototype","R","flags","hasIndices","ignoreCase","multiline","dotAll","unicode","unicodeSets","sticky","CIRCULAR_REF","EOF","Name","NameClosure","nameCache","nameValue","Cmd","CmdClosure","cmdCache","cmd","cmdValue","nonSerializable","nonSerializableClosure","_map","objId","suppressEncryption","__nonSerializable__","assignXref","newXref","key1","key2","key3","fetch","fetchAsync","getArray","getKeys","getRawValues","callback","emptyDict","dictArray","mergeSubDicts","mergedDict","properties","dict","subDict","RefClosure","refCache","refValue","RefSet","_set","put","remove","RefSetCache","putAlias","aliasRef","isName","isCmd","isDict","isRefsEqual","v1","v2","clearPrimitiveCaches","_clearCache","parseDocBaseUrl","href","BasePdfManager","_docId","_password","catalog","pdfDocument","_docBaseUrl","ensureXRef","manuallyTriggered","requestRange","begin","Stream","PDFDocument","_loadedStreamPromise","pdfNetworkStream","streamManager","ChunkedStreamManager","getStream","MissingDataException","requestAllChunks","onReceiveData","abort","ChunkedStream","chunkSize","manager","_loadedChunks","numChunks","progressiveDataLength","lastSuccessfulEnsureByteChunk","getMissingChunks","chunks","numChunksLoaded","beginChunk","endChunk","curChunk","onReceiveProgressiveData","ensureByte","ensureRange","nextEmptyChunk","hasChunk","getByte","getBytes","strEnd","getByteRange","makeSubStream","ChunkedStreamSubstream","missingChunks","subStream","getBaseStreams","currRequestId","_chunksNeededByRequest","_requestsByChunk","_promisesByRequest","aborted","_loadedStreamCapability","sendRequest","rangeReader","getRangeReader","onProgress","chunkData","_requestChunks","requestId","chunksNeeded","chunksToRequest","requestIds","groupedChunksToRequest","groupChunks","groupedChunk","getBeginChunk","getEndChunk","requestRanges","ranges","range","sort","groupedChunks","prevChunk","isProgressive","isDataLoaded","loadedRequests","lastChunk","onError","err","getLookupTableFactory","initializer","lookup","getArrayLookupTableFactory","ParserEOFException","XRefEntryException","DocStats","_handler","_streamTypes","_fontTypes","_send","streamTypes","fontTypes","addStreamType","addFontType","getInheritableProperty","stopWhenFound","visited","ROMAN_NUMBER_MAP","toRomanNumerals","lowerCase","romanBuf","romanStr","log2","readInt8","offset","readUint16","readUint32","isWhiteSpace","ch","parseXFAPath","positionPattern","component","parseInt","escapePDFName","substring","_collectJS","list","parents","element","js","BaseStream","getString","collectActions","eventType","actions","additionalActionsDicts","additionalActions","actionDict","Action","XMLEntities","encodeToXmlString","codePointAt","entity","toUpperCase","validateCSSFont","cssFontInfo","DEFAULT_CSS_FONT_OBLIQUE","DEFAULT_CSS_FONT_WEIGHT","CSS_FONT_WEIGHT_VALUES","fontFamily","fontWeight","italicAngle","ident","weight","angle","parseFloat","isNaN","recoverJsURL","URL_OPEN_METHODS","regex","jsUrl","newWindow","peekByte","peekedByte","peekBytes","getUint16","b0","b1","getInt32","b2","b3","skip","reset","moveStart","arrayBuffer","StringStream","NullStream","DEFAULT_USER_UNIT","LETTER_SIZE_MEDIABOX","Page","pageDict","globalIdFactory","fontCache","builtInCMapCache","standardFontDataCache","globalImageCache","nonBlendModesSet","xfaFactory","resourcesPromise","idCounters","_localIdFactory","_getInheritableProperty","merge","_getBoundingBox","bbox","box","mediaBox","cropBox","intersect","_onSubStreamError","getContentStream","StreamsSequenceStream","getBoundingBox","partialEvaluator","PartialEvaluator","idFactory","_parsedAnnotations","annotations","newRefsPromises","annotation","mustBePrinted","loadResources","objectLoader","ObjectLoader","resources","load","contentStreamPromise","dataPromises","MCIDBoundingBoxes","positionByOperationIndex","noMCIDBoundingBoxes","pageListPromise","contentStream","opList","OperatorList","transparency","hasBlendModes","operatorList","boundingBoxesByMCID","operationArray","boundingBoxesWithoutMCID","pageOpList","addOp","totalLength","renderForms","intentAny","intentDisplay","intentPrint","opListPromises","mustBeViewed","opLists","addOpList","getTextContent","viewBox","structTreeRoot","structTree","serializable","_parseStructTree","tree","StructTreePage","parse","annotationsData","viewable","printable","annots","parsedAnnotations","annotationPromises","annotationRef","AnnotationFactory","PDF_HEADER_SIGNATURE","STARTXREF_SIGNATURE","ENDOBJ_SIGNATURE","FINGERPRINT_FIRST_BYTES","EMPTY_FINGERPRINT","PDF_HEADER_VERSION_REGEXP","find","signature","limit","backwards","signatureLength","scanBytes","scanLength","signatureEnd","XRef","_pagePromises","_version","_globalIdFactory","Catalog","linearization","Linearization","startXRefLength","found","checkHeader","MAX_PDF_VERSION_LENGTH","parseStartXRef","setStartXRef","hasActualNumPages","getNumPages","_hasOnlyDocumentSignatures","fields","recursionDepth","RECURSION_LIMIT","every","field","fetchIfRef","isSignature","isInvisible","template","datasets","config","connectionSet","localeSet","stylesheet","isEmpty","streams","_xfaStreams","DatasetReader","_","needsRendering","formInfo","hasAcroForm","XFAFactory","isValid","getPages","xfaImagesDict","xfaImages","setImages","getAsync","fontRes","assign","pdfFonts","initialState","fonts","fontName","handleSetFont","missingFonts","setFonts","reallyMissingFonts","missing","getXfaFontName","fontInfo","getXfaFontDict","appendFonts","serializeData","hasFields","hasSignatures","sigFlags","hasOnlyDocumentSignatures","docInfo","PDFFormatVersion","Language","lang","EncryptFilterName","encrypt","filterName","IsLinearized","IsAcroFormPresent","IsXFAPresent","IsCollectionPresent","IsSignaturesPresent","infoDict","customValue","Custom","validate","hexString","hash","hex","idArray","hashOriginal","hashModified","calculateMD5","objectNumberFirst","pageKidsCountCache","pageIndexCache","getPageDict","cachedPromise","pageFirst","_getLinearizationPage","setActualNumPages","getAllPageDicts","pagesTree","reasonAll","_collectFieldObjects","fieldRef","partName","getFieldObject","kids","kid","allFields","fieldPromises","allPromises","catalogJsActions","fieldObjects","some","fieldObject","calculationOrder","ids","ExtendedPDFDocument","getXFAFontMap","factors","MyriadProRegularFactors","baseWidths","LiberationSansRegularWidths","baseMapping","LiberationSansRegularMapping","metrics","MyriadProRegularMetrics","MyriadProBoldFactors","LiberationSansBoldWidths","LiberationSansBoldMapping","MyriadProBoldMetrics","MyriadProItalicFactors","LiberationSansItalicWidths","LiberationSansItalicMapping","MyriadProItalicMetrics","MyriadProBoldItalicFactors","LiberationSansBoldItalicWidths","LiberationSansBoldItalicMapping","MyriadProBoldItalicMetrics","ArialMT","Arial","CalibriRegularFactors","CalibriRegularMetrics","CalibriBoldFactors","CalibriBoldMetrics","CalibriItalicFactors","CalibriItalicMetrics","CalibriBoldItalicFactors","CalibriBoldItalicMetrics","SegoeuiRegularFactors","SegoeuiRegularMetrics","SegoeuiBoldFactors","SegoeuiBoldMetrics","SegoeuiItalicFactors","SegoeuiItalicMetrics","SegoeuiBoldItalicFactors","SegoeuiBoldItalicMetrics","Helvetica","HelveticaRegularFactors","HelveticaRegularMetrics","HelveticaBoldFactors","HelveticaBoldMetrics","HelveticaItalicFactors","HelveticaItalicMetrics","HelveticaBoldItalicFactors","HelveticaBoldItalicMetrics","normalizeFontName","fontMap","getXfaFontWidths","rescaledBaseWidths","currentCode","currentArray","newWidths","charUnicode","unicode1","unicode2","glyphIndex","widths","systemInfo","lineHeight","lineGap","SEAC_ANALYSIS_ENABLED","FontFlags","FixedPitch","Serif","Symbolic","Script","Nonsymbolic","Italic","AllCap","SmallCap","ForceBold","MacStandardGlyphOrdering","getFontType","subtype","isStandardFont","recoverGlyphName","glyphsUnicodeMap","getUnicodeForGlyph","type1FontGlyphMapping","builtInEncoding","glyphNames","charCodeToGlyphId","glyphId","charCode","baseEncoding","isSymbolicFont","isInternalFont","baseEncodingName","getEncoding","StandardEncoding","differences","glyphName","getGlyphsUnicode","standardGlyphName","ExpertEncoding","MacExpertEncoding","MacRomanEncoding","WinAnsiEncoding","SymbolSetEncoding","ZapfDingbatsEncoding","encodingName","getDingbatsGlyphsUnicode","getSpecialPUASymbols","mapSpecialUnicodeValues","nameLen","hexStr","UnicodeRanges","getUnicodeRangeFor","isRTLRangeFor","getNormalizedUnicodes","reverseIfRtl","charsLength","SpecialCharRegExp","CategoryCache","getCharUnicodeCategory","cachedCategory","groups","category","isWhitespace","isZeroWidthDiacritic","isInvisibleFormatMark","clearUnicodeCaches","LINE_FACTOR","collectFields","_getPageIndex","xfaDatasets","createObjId","parameters","LinkAnnotation","TextAnnotation","fieldType","TextWidgetAnnotation","ButtonWidgetAnnotation","ChoiceWidgetAnnotation","SignatureWidgetAnnotation","WidgetAnnotation","PopupAnnotation","FreeTextAnnotation","LineAnnotation","SquareAnnotation","CircleAnnotation","PolylineAnnotation","PolygonAnnotation","CaretAnnotation","InkAnnotation","HighlightAnnotation","UnderlineAnnotation","SquigglyAnnotation","StrikeOutAnnotation","StampAnnotation","FileAttachmentAnnotation","Annotation","fetchIfRefAsync","annotDict","getRgbColor","color","defaultColor","Uint8ClampedArray","rgbColor","ColorSpace","singletons","gray","getRgbItem","rgb","cmyk","getQuadPoints","quadPoints","quadPointsLists","jj","quadPointsList","quadPoint","mX","MX","mY","MY","MAX_VALUE","MIN_VALUE","minX","maxX","minY","maxY","getTransformMatrix","matrix","getAxialAlignedBoundingBox","xRatio","yRatio","params","setTitle","setContents","setModificationDate","setFlags","setRectangle","setColor","setBorderStyle","setAppearance","setBorderAndBackgroundColors","_streams","appearance","annotationFlags","borderStyle","backgroundColor","borderColor","contentsObj","_contents","hasAppearance","modificationDate","hasOwnCanvas","kidIds","fieldName","_constructFieldName","_fallbackFontDict","_hasFlag","flag","_isViewable","_isPrintable","storageEntry","hidden","print","_parseStringHelper","dir","bidi","title","_title","contents","hasFlag","normalizeRect","setLineEndings","lineEndings","mk","AnnotationBorderStyle","dictType","setWidth","setStyle","setDashArray","array","setHorizontalCornerRadius","setVerticalCornerRadius","appearanceStates","normalAppearanceState","as","evaluator","isUsingOwnCanvas","appearanceDict","fallbackFontDict","strokeColor","fillColor","unshift","loopDict","dashArray","horizontalCornerRadius","verticalCornerRadius","maxWidth","maxHeight","forceStyle","allZeros","validNumber","radius","MarkupAnnotation","rawIRT","inReplyTo","rt","replyType","titleObj","creationDate","setCreationDate","hasPopup","richText","getRichTextAsHtml","_setDefaultAppearance","extra","blendMode","strokeAlpha","fillAlpha","pointsCallback","pointsArray","points","formDict","appearanceStreamDict","appearanceStream","gsDict","stateDict","annotationType","fieldValue","_decodeFormValue","defaultFieldValue","_hasValueFromXFA","getValue","alternativeText","defaultAppearance","_defaultAppearance","defaultAppearanceData","parseDefaultAppearance","localResources","acroFormResources","appearanceResources","_fieldResources","mergedResources","fieldFlags","readOnly","hasFieldFlag","formValue","_hasText","_getAppearance","AP","originalTransform","newTransform","createCipherTransform","encryptString","encoder","_getSaveFieldResources","bufferOriginal","writeDict","bufferNew","isPassword","formattedValue","trim","lineCount","multiLine","defaultPadding","hPadding","totalHeight","totalWidth","_getFontData","_computeFontSize","fontSize","descent","vPadding","alignment","textAlignment","_getMultilineAppearance","encodedString","encodeString","comb","_getCombAppearance","renderedText","_renderText","_getTextWidth","text","charsToGlyphs","glyph","roundWithTwoDigits","textWidth","lines","cachedLines","line","encoded","glyphs","positions","getCharPositions","isTooBig","fsize","cache","_splitLine","numberOfLines","round","fontColor","createDefaultAppearance","shift","toFixed","localFont","acroFormFont","subFontDict","subResourcesDict","maximumLength","maxLen","combWidth","renderedComb","padding","scale","lastSpacePosInStringStart","lastSpacePosInStringEnd","lastSpacePos","startChunk","currentWidth","glyphWidth","defaultValue","charLimit","editable","checkedAppearance","uncheckedAppearance","checkBox","radioButton","pushButton","isTooltipOnly","_processCheckBox","_processRadioButton","_processPushButton","exportValue","buttonValue","savedAppearance","_saveCheckbox","_saveRadioButton","parentBuffer","parentTransform","_getDefaultCheckedAppearance","FONT_RATIO","xShift","yShift","customAppearance","normalAppearance","asValue","yes","exportValues","otherYes","fieldParent","fieldParentValue","parseDestDictionary","destDict","resultObj","option","isOptionArray","displayValue","combo","multiSelect","numItems","multipleSelection","exportedValue","valueIndices","lineWidth","numberOfVisibleLines","valuePosition","indexInPage","firstIndex","hpadding","vpadding","DEFAULT_ICON_SIZE","stateModel","parentItem","parentSubtype","parentType","rawParent","parentId","parentRect","parentFlags","lineCoordinates","interiorColor","borderWidth","borderAdjust","controlPointsDistance","tan","xMid","yMid","xOffset","yOffset","vertices","rawVertices","Infinity","vertex","inkLists","rawInkLists","inkList","dy","xEnd","file","FileSpec","DefaultAppearanceEvaluator","operation","savedStatesDepth","EvaluatorPreprocessor","colorCmd","resizeRgbImage","dest","w1","h1","w2","h2","alpha01","COMPONENTS","newIndex","oldIndex","xScaled","Uint16Array","w1Scanline","py","numComps","getRgb","srcOffset","destOffset","getRgbBuffer","count","bits","getOutputLength","inputLength","isPassthrough","isDefaultDecode","decodeMap","bpc","fillRgb","originalWidth","originalHeight","actualHeight","comps","rgbBuf","numComponentColors","needsResizing","allColors","colorMap","destPos","rgbPos","localColorSpaceCache","parsedColorSpace","csName","csRef","localColorSpace","getByRef","getByName","cs","pdfFunctionFactory","_parse","_cache","cachedColorSpace","getCached","PatternCS","colorSpaces","resourcesCS","baseCS","whitePoint","blackPoint","gamma","CalGrayCS","CalRGBCS","alt","altCS","hiVal","IndexedCS","tintFn","AlternateCS","LabCS","DeviceGrayCS","DeviceRgbCS","DeviceCmykCS","base","tmpBuf","Float32Array","baseNumComps","usesZeroToOneRange","baseBuf","scaled","tinted","highVal","outputDelta","lookupPos","q","DeviceCmykCSClosure","convertToRgb","srcScale","CalGrayCSClosure","A","AG","G","L","YW","XW","ZW","XB","YB","ZB","CalRGBCSClosure","BRADFORD_SCALE_MATRIX","BRADFORD_SCALE_INVERSE_MATRIX","SRGB_D65_XYZ_TO_RGB_MATRIX","FLAT_WHITEPOINT_MATRIX","tempNormalizeMatrix","tempConvertMatrix1","tempConvertMatrix2","DECODE_L_CONSTANT","matrixProduct","convertToFlat","sourceWhitePoint","LMS","convertToD65","D65X","D65Y","D65Z","sRGBTransferFunction","adjustToRange","decodeL","compensateBlackPoint","sourceBlackPoint","XYZ_Flat","zeroDecodeL","X_DST","X_SRC","Y_DST","Y_SRC","Z_DST","Z_SRC","X_Scale","X_Offset","Y_Scale","Y_Offset","Z_Scale","Z_Offset","normalizeWhitePointToFlat","XYZ_In","LMS_Flat","normalizeWhitePointToD65","LMS_D65","B","AGR","GR","BGG","GG","CGB","GB","MXA","MXB","MXC","Y","MYA","MYB","MYC","Z","MZA","MZB","MZC","XYZ","XYZ_Black","XYZ_D65","SRGB","LabCSClosure","fn_g","high1","low2","high2","maxVal","Ls","bs","amin","amax","bmin","bmax","M","N","DefaultPartialEvaluatorOptions","freeze","PatternType","TILING","SHADING","TEXT_CHUNK_BATCH_SIZE","deferred","normalizeBlendMode","parsingArray","maybeBM","incrementCachedImageMaskCount","TimeSlotManager","checked","CHECK_TIME_EVERY","endTime","TIME_SLOT_DURATION_MS","parsingType3Font","_fetchBuiltInCMapBound","fetchBuiltInCMap","PDFFunctionFactory","newOptions","newEvaluator","processed","nodes","graphicStates","graphicState","bm","xObjects","xObject","xResources","cachedData","response","statusText","cMapData","compressionType","standardFontNameToFileName","getFontNameToFileMap","xobj","parseMarkedContentProps","optionalContent","group","groupOptions","isolated","knockout","groupSubtype","parseColorSpace","backdrop","_sendImgData","imgData","cacheGlobally","transfers","image","isInline","localImageCache","imageRef","h","imageMask","interpolate","bitStrideLength","imgArray","PDFImage","createRawMask","imageIsFromDecodeStream","DecodeStream","inverseDecode","cached","addImageOps","createMask","isSingleOpaquePixel","addDependency","softMask","mask","SMALL_IMAGE_DIMENSIONS","imageObj","res","_pdfFunctionFactory","createImageData","getDocId","shouldCache","buildImage","addByteSize","addPageIndex","setData","byteSize","handleSMask","stateManager","smaskContent","smaskOptions","transferObj","isPDFFunction","transferFn","transferMap","tmp","buildFormXObject","handleTransferFunction","tr","transferArray","transferMaps","numFns","numEffectfulFns","handleTilingType","pattern","patternDict","localTilingPatternCache","tilingOpList","patternResources","operatorListIR","getIR","tilingPatternIR","getTilingPatternIR","addDependencies","dependencies","fontArgs","fontRef","loadFont","translated","isType3Font","loadType3Data","type3Dependencies","TranslatedFont","loadedName","ErrorFont","handleText","isAddToPathSet","textRenderingMode","fillColorSpace","buildFontPaths","ensureStateFont","gState","localGStateCache","gStateRef","isSimpleGState","gStateObj","gStateKeys","errorFont","type3FontRefs","fontCapability","preEvaluatedFont","preEvaluateFont","fontRefIsRef","fontID","fontAliases","aliasFontRef","createFontId","translateFont","translatedFont","fontType","stats","fontFile3","buildPath","parsingText","lastIndex","fnArray","opArgs","argsArray","parseAsync","parseShading","shading","localShadingPatternCache","Pattern","patternIR","handleColorN","patterns","patternName","pop","rawPattern","localTilingPattern","typeNum","_parseVisibilityExpression","nestingCounter","currentResult","MAX_NESTING","operator","raw","nestedResult","contentProperties","optionalContentType","expression","optionalContentGroups","groupIds","ocg","policy","EvalState","boundingBoxCalculator","BoundingBoxesCalculator","LocalImageCache","LocalColorSpaceCache","LocalGStateCache","LocalTilingPatternCache","xobjs","StateManager","preprocessor","timeSlotManager","closePendingRestoreOPS","promiseBody","ready","isValidName","incrementOperation","localImage","parseOperator","resolveXObject","rejectXObject","globalImage","getData","buildPaintImageXObject","combinedGlyphs","arrLength","arrItem","strokeColorSpace","shadingRes","patternId","localGStateObj","resolveGState","rejectGState","extGState","getNoMCIDBoundingBoxes","seenStyles","TextState","NormalizedUnicodes","textContent","styles","textContentItem","initialized","vertical","prevTransform","textAdvanceScale","spaceInFlowMin","spaceInFlowMax","trackingSpaceMin","negativeSpaceMax","notASpace","hasEOL","twoLastChars","twoLastCharsPos","saveLastChar","nextPos","ret","resetLastChars","TRACKING_SPACE_FACTOR","NOT_A_SPACE_FACTOR","NEGATIVE_SPACE_FACTOR","SPACE_IN_FLOW_MIN_FACTOR","SPACE_IN_FLOW_MAX_FACTOR","showSpacedTextBuffer","emptyXObjectCache","emptyGStateCache","textState","getCurrentTextTransform","tsm","textHScale","textRise","isCharBBox","fontMatrix","glyphHeight","ctm","textMatrix","ensureTextContentItem","fallbackName","ascent","trm","hypot","scaleLineX","textLineMatrix","scaleCtmX","updateAdvanceScale","scaleFactor","runBidiTransform","textChunk","bidiResult","applyInverseRotation","compareWithLastPosition","currentTransform","posX","posY","shiftedX","shiftedY","lastPosX","lastPosY","advanceY","advanceX","textOrientation","sign","appendEOL","flushTextContentItem","addFakeSpaces","buildTextContentItem","extraSpacing","charSpacing","translateTextMatrix","vmetric","scaledDim","wordSpacing","glyphUnicode","transf","enqueueChunk","batch","enqueue","fontNameArg","fontSizeArg","leading","translateTextLineMatrix","carriageReturn","setTextLineMatrix","spaceFactor","elements","currentState","xObjStateManager","sinkWrapper","enqueueInvoked","desiredSize","gStateFont","mcid","getPageObjId","extractDataStructures","baseDict","cidToGidBytes","toUnicodePromise","readToUnicode","toUnicode","composite","cidSystemInfo","registry","ordering","supplement","cidToGidMap","diffEncoding","defaultEncoding","isNonsymbolicFont","hasEncoding","buildToUnicode","builtToUnicode","readCidToGidMap","_simpleFontToUnicode","forceGlyphs","charcode","codeStr","fromCodePoint","hasIncludedToUnicodeMap","fallbackToUnicode","ToUnicodeMap","cMap","builtInCMap","IdentityCMap","ucs2CMapName","CMapFactory","useCMap","ucs2CMap","cid","ucs2","IdentityToUnicodeMap","firstChar","lastChar","cmapObj","cmap","getMap","token","glyphsData","glyphID","extractWidths","glyphsWidths","defaultWidth","glyphsVMetrics","defaultVMetrics","vmetrics","baseFontName","getBaseFontMetrics","buildCharCodeToWidth","isMonospace","firstWidth","isSerifFont","fontNameWoStyle","getSerifFonts","search","monospace","stdFontMap","getStdFontMap","lookupName","Metrics","getMetrics","glyphWidths","widthsByGlyphName","df","MurmurHash3_64","update","diffLength","diffBuf","diffEntry","uint8array","bufferLength","widthsBuf","compositeWidths","subWidthsBuf","hexdigest","getSymbolsFonts","isSimulatedFlags","xHeight","capHeight","standardFontName","getStandardFontName","fetchStandardFontData","newProperties","Font","baseFont","fontNameStr","baseFontStr","fontFile","glyphScaleFactors","subtypeEntry","length1","length2","length3","fixedPitch","scaleFactors","cidEncoding","fontChar","renderer","hasBuiltPath","getPathJs","accent","_evaluatorOptions","type3Loaded","sent","exportData","fallback","glyphCacheValues","type3Evaluator","loadCharProcsPromise","charProcs","fontResources","charProcOperatorList","isEmptyBBox","glyphStream","_removeType3ColorOperators","dummyOperatorList","_bbox","charBBox","gStateKey","stateStack","old","parser","Parser","lexer","Lexer","opMap","nonProcessedArgs","_numInvalidPathOPS","getObj","opSpec","numArgs","argsLength","variableArgs","MAX_INVALID_PATH_OPS","preprocessCommand","getOPMap","J","ri","gs","Q","cm","l","re","s","W","BT","ET","Tc","Tw","Tz","TL","Tf","Tr","Ts","Td","TD","Tm","Tj","TJ","d0","d1","CS","SC","SCN","sc","scn","RG","rg","sh","BI","ID","EI","Do","MP","BMC","BDC","EMC","BX","EX","BM","BD","fa","fal","fals","nu","nul","BUILT_IN_CMAPS","MAX_MAP_RANGE","CMap","codespaceRanges","numCodespaceRanges","addCodespaceRange","low","high","mapCidRange","dstLow","mapBfRange","lastByte","nextCharCode","mapBfRangeToArray","mapOne","dst","contains","charCodeOf","readCharCode","out","nn","codespaceRange","kk","getCharCodeLength","BinaryCMapReader","BinaryCMapReaderClosure","hexToInt","hexToStr","addHex","incHex","MAX_NUM_SIZE","MAX_ENCODED_NUM_SIZE","BinaryCMapStream","readByte","readNumber","readSigned","readHex","readHexNumber","sp","bufferSize","readHexSigned","readString","len","extend","header","sequence","dataSize","ucs2DataSize","subitemsCount","CMapFactoryClosure","strToInt","expectString","expectInt","parseBfChar","parseBfRange","parseCidChar","parseCidRange","parseCodespaceRange","parseWMode","parseCMapName","parseCMap","embeddedUseCMap","extendCMap","createBuiltInCMap","useCodespaceRanges","parsedCMap","isIdentityCMap","MAX_LENGTH_TO_CACHE","MAX_ADLER32_LENGTH","computeAdler32","bytesLength","allowStreams","imageCache","refill","buf1","buf2","tryShift","cipherTransform","makeInlineImage","makeStream","decryptString","findDefaultInlineStreamEnd","I","SPACE","LF","CR","NUL","startPos","maybeEIPos","followingBytes","knownCommands","nextObj","peekObj","endOffset","findDCTDecodeInlineStreamEnd","foundEOI","markerLength","inlineStreamSkipEI","findASCII85DecodeInlineStreamEnd","TILDE","tildePos","maybeEI","findASCIIHexDecodeInlineStreamEnd","dictLength","beginInlineImagePos","filterZero","imageStream","imageBytes","initialStreamPos","dictBytes","cacheEntry","createStream","_findStreamLength","SCAN_BLOCK_LENGTH","skipToNextLine","nextChar","ENDSTREAM_SIGNATURE","actualLength","MAX_TRUNCATION","TRUNCATED_SIGNATURE","maybeLength","makeFilter","filterArray","paramsArray","xrefStats","PredictorStream","FlateStream","earlyChange","LZWStream","JpegStream","JpxStream","Ascii85Stream","AsciiHexStream","CCITTFaxStream","RunLengthStream","Jbig2Stream","specialChars","toHexDigit","_hexStringNumWarn","currentChar","peekChar","getNumber","eNotation","divideBy","baseValue","powerValue","powerValueSign","currentDigit","numParen","charBuffered","getName","previousCh","_hexStringWarn","MAX_HEX_STRING_NUM_WARN","getHexString","isFirstHex","firstDigit","secondDigit","comment","nextCh","knownCommandFound","possibleCommand","streamPos","getInt","linDict","allowZeroValue","getHints","hints","hintsLength","hint","obj1","obj2","obj3","endFirst","mainXRefEntriesOffset","readBlock","TILDA_CHAR","Z_LOWER_CHAR","eof","ensureBuffer","emptyBuffer","maybeMinBufferLength","_rawMinBufferLength","minBufferLength","requested","buffer2","bufEnd","_onError","newLength","baseStreamsBuf","baseStreams","UPSTREAM_BLOCK_SIZE","maxDecodeLength","digit","ccittFaxDecoder","CCITTFaxDecoder","EndOfLine","EncodedByteAlign","Columns","Rows","EndOfBlock","BlackIs1","readNextChar","ccittEOL","ccittEOF","twoDimPass","twoDimHoriz","twoDimVert0","twoDimVertR1","twoDimVertL1","twoDimVertR2","twoDimVertL2","twoDimVertR3","twoDimVertL3","twoDimTable","whiteTable1","whiteTable2","blackTable1","blackTable2","blackTable3","eoline","byteAlign","columns","rows","eoblock","black","codingLine","refLine","codingPos","row","nextLine2D","inputBits","inputBuf","outputBits","rowsDone","code1","_lookBits","_eatBits","refPos","blackPixels","code2","code3","_getTwoDimCode","_addPixels","_getBlackCode","_getWhiteCode","_addPixelsNeg","gotEOL","a1","_findTableCode","table","limitValue","codeLenCodeMap","Int32Array","lengthDecode","distDecode","fixedLitCodeTab","fixedDistCodeTab","cmf","flg","codeSize","codeBuf","getBits","getCode","codes","codeLen","codeVal","generateHuffmanTable","lengths","hdr","blockLen","block","litCodeTable","distCodeTable","numLitCodes","numDistCodes","numCodeLenCodes","codeLenCodeLengths","codeLenCodeTab","codeLengths","bitsLength","bitsOffset","what","repeatLength","dist","jbig2Image","Jbig2Image","globalsStream","globals","parseChunks","dataLength","Jbig2Error","ContextCache","getContexts","Int8Array","DecodingContext","ArithmeticDecoder","decodeInteger","contextCache","procedure","contexts","readBits","bit","readBit","decodeIAID","codeLength","SegmentTypes","CodingTemplates","RefinementTemplates","coding","reference","ReusedContexts","RefinementReusedContexts","decodeBitmapTemplate0","decodingContext","contextLabel","pixel","row1","row2","OLD_PIXEL_MASK","decodeBitmap","mmr","templateIndex","prediction","at","Reader","decodeMMRBitmap","useskip","templateLength","templateX","templateY","changingTemplateEntries","reuseMask","changingEntriesLength","changingTemplateX","changingTemplateY","changingTemplateBit","sbb_left","sbb_top","sbb_right","pseudoPixelContext","ltp","i0","j0","sltp","decodeRefinement","referenceBitmap","offsetX","offsetY","codingTemplate","codingTemplateLength","codingTemplateX","codingTemplateY","referenceTemplate","referenceTemplateLength","referenceTemplateX","referenceTemplateY","referenceWidth","referenceHeight","decodeSymbolDictionary","huffman","refinement","symbols","numberOfNewSymbols","numberOfExportedSymbols","huffmanTables","refinementTemplateIndex","refinementAt","huffmanInput","newSymbols","currentHeight","symbolCodeLength","tableB1","symbolWidths","getStandardTable","deltaHeight","tableDeltaHeight","firstSymbol","deltaWidth","tableDeltaWidth","numberOfInstances","decodeTextRegion","symbolId","rdx","rdy","bitmapSize","tableBitmapSize","collectiveBitmap","readUncompressedBitmap","originalEnd","bitmapEnd","numberOfSymbolsDecoded","xMin","xMax","bitmapWidth","symbolBitmap","exportedSymbols","currentFlag","totalSymbolsLength","runLength","defaultPixelValue","numberOfSymbolInstances","stripSize","inputSymbols","transposed","dsOffset","referenceCorner","combinationOperator","logStripSize","stripT","tableDeltaT","firstS","deltaT","deltaFirstS","tableFirstS","currentS","currentT","symbolIDTable","applyRefinement","symbolWidth","symbolHeight","rdw","rdh","offsetT","offsetS","s2","symbolRow","deltaS","tableDeltaS","decodePatternDictionary","patternWidth","patternHeight","maxPatternIndex","collectiveWidth","patternBitmap","decodeHalftoneRegion","regionWidth","regionHeight","enableSkip","gridWidth","gridHeight","gridOffsetX","gridOffsetY","gridVectorX","gridVectorY","regionBitmap","numberOfPatterns","pattern0","bitsPerValue","grayScaleBitPlanes","mmrInput","mg","ng","patternIndex","patternRow","regionRow","regionX","regionY","readSegmentHeader","segmentHeader","segmentType","typeName","deferredNonRetain","pageAssociationFieldSize","referredFlags","referredToCount","retainBits","referredToSegmentNumberSize","referredTo","pageAssociation","genericRegionInfo","readRegionSegmentInformation","genericRegionSegmentFlags","RegionSegmentInformationFieldLength","genericRegionMmr","searchPatternLength","searchPattern","headerEnd","readSegments","segments","segment","randomAccess","processSegment","visitor","atLength","dictionary","dictionaryFlags","huffmanDHSelector","huffmanDWSelector","bitmapSizeSelector","aggregationInstancesSelector","bitmapCodingContextUsed","bitmapCodingContextRetained","refinementTemplate","textRegion","textRegionSegmentFlags","textRegionHuffmanFlags","huffmanFS","huffmanDS","huffmanDT","huffmanRefinementDW","huffmanRefinementDH","huffmanRefinementDX","huffmanRefinementDY","huffmanRefinementSizeSelector","patternDictionary","patternDictionaryFlags","halftoneRegion","halftoneRegionFlags","genericRegion","pageInfo","resolutionX","resolutionY","pageSegmentFlags","lossless","requiresBuffer","combinationOperatorOverride","callbackName","processSegments","parseJbig2Chunks","SimpleSegmentVisitor","parseJbig2","numberOfPages","currentPageInfo","bitPacked","onPageInformation","rowSize","drawBitmap","regionInfo","mask0","offset0","onImmediateGenericRegion","region","onImmediateLosslessGenericRegion","onSymbolDictionary","currentSegment","referredSegments","getSymbolDictionaryHuffmanTables","customTables","referredSymbols","onImmediateTextRegion","getTextRegionHuffmanTables","onImmediateLosslessTextRegion","onPatternDictionary","onImmediateHalftoneRegion","onImmediateLosslessHalftoneRegion","onTables","decodeTablesSegment","HuffmanLine","lineData","isOOB","rangeLow","prefixLength","rangeLength","prefixCode","isLowerRange","HuffmanTreeNode","children","isLeaf","buildTree","decodeNode","reader","htOffset","HuffmanTable","prefixCodesDone","assignPrefixCodes","rootNode","linesLength","prefixLengthMax","histogram","currentLength","firstCode","currentTemp","lowestValue","highestValue","prefixSizeBits","rangeSizeBits","currentRangeLow","standardTablesCache","currentByte","numBits","getCustomHuffmanTable","currentIndex","numberOfSymbols","runCodesTable","repeatedLength","numberOfRepeats","customIndex","tableAggregateInstances","endOfBlock","lookForEOFLimit","QeTable","qe","nmps","nlps","switchFlag","bp","dataEnd","chigh","clow","byteIn","ct","cx_index","cx_mps","qeTableIcx","qeIcx","jpegOptions","decodeTransform","colorTransform","decodeArr","forceRGB","bitsPerComponent","decodeArrLength","transformNeeded","maxValue","jpegImage","JpegImage","drawWidth","drawHeight","isSourcePDF","JpegError","DNLMarkerError","scanLines","EOIMarkerError","dctZigZag","dctCos1","dctSin1","dctCos3","dctSin3","dctCos6","dctSin6","dctSqrt2","dctSqrt1d2","buildHuffmanTable","getBlockBufferOffset","col","blocksPerLine","decodeScan","frame","components","resetInterval","spectralStart","spectralEnd","successivePrev","successive","parseDNLMarker","mcusPerLine","progressive","startOffset","bitsData","bitsCount","nextByte","maybeScanLines","blockRow","precision","decodeHuffman","receive","receiveAndExtend","decodeBaseline","blockOffset","huffmanTableDC","diff","blockData","pred","rs","huffmanTableAC","decodeDCFirst","decodeDCSuccessive","eobrun","decodeACFirst","successiveACState","successiveACNextValue","decodeACSuccessive","offsetZ","decodeMcu","mcu","mcuRow","mcuCol","blockCol","decodeBlock","componentsLength","decodeFn","fileMarker","mcuExpected","blocksPerColumn","mcusPerColumn","mcuToRead","findNextFileMarker","invalid","marker","quantizeAndInverse","blockBufferOffset","qt","quantizationTable","v0","v3","v4","v5","v6","v7","p0","p5","p6","p7","buildComponentData","computationBuffer","Int16Array","currentPos","maxPos","newPos","currentMarker","newMarker","_decodeTransform","_colorTransform","dnlScanLines","readDataBlock","prepareComponents","samplesPerLine","maxH","maxV","blocksPerLineForMcu","blocksPerColumnForMcu","blocksBufferSize","jfif","adobe","numSOSMarkers","quantizationTables","huffmanTablesAC","huffmanTablesDC","markerLoop","appData","major","minor","densityUnits","xDensity","yDensity","thumbWidth","thumbHeight","thumbData","flags0","flags1","transformCode","quantizationTablesLength","quantizationTablesEnd","quantizationTableSpec","tableData","extended","sofScanLines","componentIds","componentsCount","componentId","qId","quantizationId","huffmanLength","huffmanTableSpec","codeLengthSum","huffmanValues","selectorsCount","componentIndex","tableSpec","successiveApproximation","nextFileMarker","output","scaleX","scaleY","numComponents","_getLinearizedBlockData","componentScaleX","componentScaleY","blocksPerScanline","xScaleBlockOffset","mask3LSB","lastComponentScaleX","_convertYccToRgb","Cb","Cr","_convertYcckToRgb","_convertYcckToCmyk","_convertCmykToRgb","rgbData","grayColor","_isColorConversionNeeded","jpxImage","JpxImage","tileCount","tiles","tileComponents","tileWidth","tileHeight","tileLeft","left","tileTop","top","srcPosition","dataPosition","imgRowSize","tileRowSize","rowBytes","JpxError","SubbandsGainLog2","LL","LH","HL","HH","failOnCorruptedImage","parseCodestream","headerSize","lbox","tbox","jumpDataLength","colorspace","headerType","parseImageProperties","newByte","oldByte","Xsiz","Ysiz","XOsiz","YOsiz","Csiz","doNotRecover","sqcd","spqcds","spqcdSize","scalarExpounded","tile","mainHeader","siz","XTsiz","YTsiz","XTOsiz","YTOsiz","isSigned","XRsiz","YRsiz","calculateComponentDimensions","SIZ","calculateTileGrids","QCC","COC","qcd","noQuantization","guardBits","spqcd","epsilon","mu","SPqcds","QCD","currentTile","qcc","cqcc","cod","scod","entropyCoderWithCustomPrecincts","sopMarkerUsed","ephMarkerUsed","progressionOrder","layersCount","multipleComponentTransform","decompositionLevelsCount","xcb","ycb","blockStyle","selectiveArithmeticCodingBypass","resetContextProbabilities","terminationOnEachCodingPass","verticallyStripe","predictableTermination","segmentationSymbolUsed","reversibleTransformation","precinctsSizes","precinctsSize","PPx","PPy","unsupported","COD","partIndex","partsCount","initializeTile","buildPackets","parseTilePackets","transformComponents","numXtiles","numYtiles","tx0","ty0","tx1","ty1","tileComponent","tcx0","tcy0","tcx1","tcy1","getBlocksDimensions","codOrCoc","codingStyleParameters","xcb_","ycb_","buildPrecincts","resolution","dimensions","precinctWidth","precinctHeight","isZeroRes","resLevel","precinctWidthInSubband","precinctHeightInSubband","numprecinctswide","trx1","trx0","numprecinctshigh","try1","try0","numprecincts","precinctParameters","buildCodeblocks","subband","codeblockWidth","codeblockHeight","cbx0","tbx0","cby0","tby0","cbx1","tbx1","cby1","tby1","codeblocks","precincts","codeblock","precinctNumber","cbx","cby","tbx0_","tby0_","tbx1_","tby1_","pi","pj","subbandType","Lblock","precinct","cbxMin","cbxMax","cbyMin","cbyMax","codeblockParameters","numcodeblockwide","numcodeblockhigh","createPacket","layerNumber","precinctCodeblocks","subbands","LayerResolutionComponentPositionIterator","tileIndex","codingStyleDefaultParameters","maxDecompositionLevelsCount","nextPacket","JpxImage_nextPacket","resolutions","packet","ResolutionLayerComponentPositionIterator","ResolutionPositionComponentLayerIterator","maxNumPrecinctsInLevel","maxNumPrecincts","PositionComponentResolutionLayerIterator","getPrecinctSizesInImageScale","precinctsIterationSizes","px","maxNumHigh","maxNumWide","sizeInImageScale","getPrecinctIndexIfExist","ComponentPositionResolutionLayerIterator","pxIndex","pyIndex","precinctIterationSizes","minWidth","minHeight","startPrecinctRowIndex","sizePerComponent","sizePerResolution","minWidthCurrentComponent","minHeightCurrentComponent","maxNumWideCurrentComponent","maxNumHighCurrentComponent","widthCurrentResolution","heightCurrentResolution","blocksDimensions","bscale","resolutionSubbands","packetsIterator","skipNextBit","skipMarkerIfEqual","skipBytes","alignToByte","readCodingpasses","codeblockColumn","codeblockRow","codeblockIncluded","firstTimeInclusion","valueReady","zeroBitPlanesTree","included","inclusionTree","InclusionTree","TagTree","nextLevel","incrementValue","zeroBitPlanes","codingpasses","codingpassesLog2","codedDataLength","packetItem","copyCoefficients","coefficients","levelWidth","levelHeight","delta","mb","reversible","right","bottom","blockWidth","blockHeight","bitModel","BitModel","currentCodingpassType","dataItem","encodedData","setDecoder","runSignificancePropagationPass","runMagnitudeRefinementPass","runCleanupPass","checkSegmentationSymbol","coefficentsSign","magnitude","coefficentsMagnitude","bitsDecoded","magnitudeCorrection","nb","interleave","levelOffset","transformTile","quantizationParameters","ReversibleTransform","IrreversibleTransform","subbandCoefficients","gainLog2","calculate","resultImages","transformedTiles","tile0","fourComponents","y0items","y1items","y2items","y3items","component0","qcdOrQcc","levelsLength","levels","currentLevel","stopValue","propagateValues","levelIndex","currentValue","BitModelClosure","UNIFORM_CONTEXT","RUNLENGTH_CONTEXT","LLAndLHContextsLabel","HLContextLabel","HHContextLabel","contextLabelTable","coefficientCount","neighborsSignificance","processingFlags","setNeighborsSignificance","column","labels","processedInverseMask","processedMask","firstMagnitudeBitMask","i1","decision","decodeSignBit","contribution","sign0","sign1","significance1","decoded","horizontalContribution","width4","index0","indexNext","significance","oneRowDown","twoRowsDown","threeRowsDown","iNext","indexBase","checkAllEmpty","allEmpty","hasSignificantCoefficent","i2","Transform","u0","ll","j1","j2","hl_lh_hh","llWidth","llHeight","llItems","u","bufferPadding","rowBuffer","numBuffers","colBuffers","currentBuffer","alpha","beta","K_","bitsCached","maxLzwDictionarySize","lzwState","nextCode","dictionaryValues","dictionaryLengths","dictionaryPrevCodes","currentSequence","currentSequenceLength","lastCode","blockSize","decodedSizeDelta","estimatedDecodedSize","prevCode","decodedLength","currentBufferLength","hasPrev","predictor","readBlockTiff","readBlockPng","colors","pixBytes","rawBytes","inbuf","outbuf","inbits","outbits","bytesPerPixel","sum","compArray","bitMask","prevRow","up","upLeft","pa","pb","pc","repeatHeader","PRIVATE_USE_AREAS","PDF_GLYPH_SPACE_UNITS","EXPORT_DATA_PROPERTIES","EXPORT_DATA_EXTRA_PROPERTIES","adjustWidths","adjustToUnicode","amend","amendFallbackToUnicode","Glyph","originalCharCode","operatorListId","isSpace","isInFont","matchesForCache","int16","writeSignedInt16","signedInt16","int32","string16","safeString16","isTrueTypeFile","isTrueTypeCollectionFile","isOpenTypeFile","isType1File","isCFFFile","getFontFileType","fileType","fileSubtype","applyStandardFontGlyphMap","glyphMap","buildToFontChar","toFontChar","convertCidString","shouldThrow","adjustMapping","hasGlyph","newGlyphZeroId","newMap","privateUseAreaIndex","nextAvailableFontCharCode","privateUseOffetEnd","fontCharCode","getRanges","numGlyphs","fontGetRangesSort","codeIndices","createCmapTable","numTables","bmpLength","trailingRangesCount","segCount","searchParams","OpenTypeFileBuilder","getSearchParams","startCount","endCount","idDeltas","idRangeOffsets","glyphsIds","bias","contiguous","startCode","format314","rangeShift","format31012","header31012","validateOS2Table","os2","selection","usWinAscent","createOS2Table","charstrings","override","unitsPerEm","yMax","yMin","ulUnicodeRange1","ulUnicodeRange2","ulUnicodeRange3","ulUnicodeRange4","firstCharIndex","lastCharIndex","ascentScaled","typoAscent","typoDescent","winAscent","winDescent","createPostTable","createPostscriptName","createNameTable","strings","stringsUnicode","strBufUnicode","platforms","encodings","languages","namesRecordCount","nameTable","strOffset","strs","nameRecord","psName","mimetype","missingFile","_charsCache","_glyphCache","baseName","serifFonts","namePart","fallbackToSystemFont","cff","CFFFont","Type1Font","convert","checkAndRepair","isOpenType","seacMap","FontRendererFactory","extraProperties","exportDataProperties","nonStdFontMap","getNonStdFontMap","isMappedToStandardFont","fontBasicMetricsMap","getFontBasicMetrics","bold","italic","isNarrow","remeasure","getGlyphMapForStandardFonts","getSupplementalGlyphMapForArialBlack","getSupplementalGlyphMapForCalibri","unicodeCharCode","VALID_TABLES","readTables","tables","hhea","hmtx","maxp","readTableEntry","checksum","previousPosition","readOpenTypeHeader","ttf","searchRange","entrySelector","readTrueTypeCollectionHeader","ttc","ttcTag","majorVersion","minorVersion","numFonts","offsetTable","dsigTag","dsigLength","dsigOffset","readTrueTypeCollectionData","fontNameParts","fallbackData","potentialHeader","potentialTables","readNameTable","nameEntry","part","readCmapTable","platformId","encodingId","mappings","hasShortCmap","potentialTable","canBreak","useTable","correctlySorted","nextBytes","nextPlatformId","format","subHeaderKeys","maxSubHeaderKey","subHeaderKey","subHeaders","entryCount","idDelta","idRangePos","segIndex","offsetsCount","offsetIndex","rangeOffset","offsets","nGroups","startCharCode","endCharCode","glyphCode","sanitizeMetrics","headTable","dupFirstEntry","caretOffset","numOfMetrics","macStyle","numOfSidebearings","numMissing","sanitizeGlyph","sourceStart","sourceEnd","destStart","hintsValid","glyphProfile","sizeOfInstructions","glyf","contoursCount","flagsCount","endPoint","instructionsStart","instructionsLength","instructionsEnd","coordinatesLength","xLength","yLength","xyLength","repeat","glyphDataLength","sanitizeHead","locaLength","indexToLocFormat","numGlyphsPlusOne","sanitizeGlyphLocations","loca","isGlyphLocationsLong","maxSizeOfInstructions","itemSize","itemDecode","itemEncode","fontItemDecodeLong","fontItemEncodeLong","fontItemDecode","fontItemEncode","numGlyphsOut","locaDataSize","locaData","oldGlyfData","oldGlyfDataLength","newGlyfData","locaEntries","nextOffset","missingGlyphs","writeOffset","simpleGlyph","firstEntryLength","readPostScriptTable","propertiesObj","maxpNumGlyphs","valid","glyphNameIndexes","customNames","stringLength","FORMAT_0_HEADER_LENGTH","numRecords","stringsStart","records","NAME_RECORD_LENGTH","platform","language","record","nameIndex","TTOpsStackDeltas","sanitizeTTProgram","ttContext","funcId","lastEndf","lastDeff","callstack","functionsCalled","tooComplexToFollowFunctions","inFDEF","ifLevel","inELSE","op","functionsUsed","functionsStackDeltas","newStackLength","functionsDefined","stackTop","stackDelta","NaN","foldTTTable","checkInvalidFunctions","maxFunctionDefs","sanitizeTTPrograms","fpgm","prep","cvt","cvtData","ttcData","cffFile","isTrueType","isComposite","GlyfTable","glyfTable","locaTable","isLocationLong","advanceWidth","lsb","maxZones","glyphsInfo","metricsOverride","isCidToGidMapEmpty","cmapTable","cmapPlatformId","cmapEncodingId","cmapMappings","cmapMappingsLength","forcePostTable","unicodeOrCharCode","glyphZeroId","newMapping","CFFParser","duplicateFirstGlyph","compiler","CFFCompiler","compile","namePrototype","builder","tableTag","addTable","toArray","mapping","getGlyphMapping","newCharCodeToGlyphId","hasGlyphId","getCharCodes","charCodes","createCharCode","seacs","charset","getCharset","seac","baseGlyphName","accentGlyphName","baseGlyphId","accentGlyphId","accentOffset","baseFontCharCode","accentFontCharCode","fontFieldsHmtx","cffWidths","charstring","possibleSpaceReplacements","_charToGlyph","widthCode","buffers","currentBuf","hasCurrentBufErrors","getCharCode","charCodeLength","MAX_SUBR_NESTING","CFFStandardStrings","NUM_STANDARD_CFF_STRINGS","CFFParserClosure","CharstringValidationData","stackClearing","stem","resetStack","undefStack","CharstringValidationData12","stackFn","stack_div","seacAnalysisEnabled","CFF","parseHeader","parseIndex","endPos","topDictIndex","stringIndex","globalSubrIndex","topDictParsed","parseDict","topDict","createDict","CFFTopDict","parseNameIndex","parseStringIndex","parsePrivateDict","isCIDFont","hasName","charStringOffset","charStringIndex","fontBBox","fdArrayIndex","dictRaw","fontDict","fdArray","parseCharsets","fdSelect","parseFDSelect","parseEncoding","charStringsAndSeacs","parseCharStrings","charStrings","localSubrIndex","privateDict","subrsIndex","hdrSize","offSize","CFFHeader","parseOperand","parseFloatOperand","operands","cffIndex","CFFIndex","offsetSize","offsetStart","offsetEnd","CFFStrings","Type","cffDict","pair","setByKey","parseCharString","callDepth","stackSize","validationCommand","subrNumber","hasVStems","firstStackClearing","localSubrToUse","privateDictToUse","fdIndex","getFDIndex","nominalWidth","emptyPrivateDictionary","parentDict","CFFPrivateDict","privateOffset","removeByName","privateDictEnd","dictData","subrsOffset","relativeOffset","CFFCharset","CFFCharsetPredefinedTypes","ISO_ADOBE","ISOAdobeCharset","EXPERT","ExpertCharset","EXPERT_SUBSET","ExpertSubsetCharset","predefined","readSupplement","supplementsCount","sid","dataStart","glyphsCount","rangesCount","gid","CFFEncoding","CFFFDSelect","glyphZero","getSID","objects","CFFDict","keyToNameMap","nameToKeyMap","defaults","types","opcodes","order","valueLength","setByName","layout","CFFTopDictClosure","createTables","CFFPrivateDictClosure","CFFOffsetTracker","isTracking","track","setEntryLocation","dataOffset","offset1","offset2","offset3","offset4","CFFCompiler_add","compileHeader","compileNameIndex","xuid","compiled","compileTopDicts","topDictTracker","trackers","compileStringIndex","compileIndex","compileEncoding","compileCharset","compileCharStrings","compileFDSelect","fontDictTrackers","compilePrivateDicts","encodeNumber","encodeInteger","encodeFloat","EncodeFloatRegExp","nibbles","sanitizedName","dicts","removeCidKeys","fontDictTracker","fontDictData","compileDict","privateDictTracker","privateDictData","outputLength","subrs","offsetTracker","compileGlobalSubrIndex","writeByteArray","charStringsIndex","numGlyphsLessNotDef","charsetIndex","numCharsets","warned","compileTypedArray","lastFD","currentFD","numRanges","lastOffset","Courier","ZapfDingbats","ArialNarrow","ArialBlack","CourierNew","CourierNewPSMT","TimesNewRoman","TimesNewRomanPS","TimesNewRomanPSMT","Calibri","CenturyGothic","ComicSansMS","LucidaConsole","NuptialScript","SegoeUISymbol","Wingdings","Albertus","Aldus","Alexandria","Algerian","Antiqua","Apex","Arno","Aster","Aurora","Baskerville","Bell","Bembo","Benguiat","Bodoni","Bookman","Calisto","Calvert","Capitals","Cambria","Cartier","Caslon","Catull","Centaur","Chaparral","Cheltenham","Clarendon","Clearface","Cochin","Colonna","Constantia","Corona","Ecotype","Egyptienne","Elephant","Excelsior","Fairfield","Folkard","Footlight","FreeSerif","Garamond","Gentium","Georgia","Gloucester","Granjon","Heather","Hercules","Hiroshige","Imprint","Janson","Joanna","Korinna","Lexicon","LiberationSerif","Literaturnaya","Lucida","Melior","Memphis","Miller","Minion","Modern","Palatino","Perpetua","Plantin","Playbill","Renault","Requiem","Rockwell","Roman","Sabon","Scala","Seagull","Sistina","Souvenir","STIX","Sylfaen","Times","Trajan","Utopia","Versailles","Wanted","Weiss","Windsor","XITS","Dingbats","_createBuiltInEncoding","charsets","getUint32","getInt16","getInt8","getFloat214","getSubroutineBias","numSubrs","parseCmap","idOffset","parseCff","gsubrs","isCFFCIDFont","parseGlyfTable","lookupCmap","compileGlyf","cmds","quadraticCurveTo","xa","ya","numberOfContours","arg1","arg2","scale01","scale10","subglyph","endPtsOfContours","instructionLength","numberOfPoints","startPoint","contour","compileCharString","charStringCode","bezierCurveTo","stems","stackClean","xb","yb","subrCode","subrsBias","achar","bchar","glyphNameMap","gsubrsBias","NOOP","CompiledFont","compiledGlyphs","compiledCharCodeToGlyphId","compileGlyph","compileGlyphImpl","TrueTypeCompiled","Type2Compiled","cffInfo","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","H","T","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","o","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","Idieresis","eacute","abreve","uhungarumlaut","ecaron","Ydieresis","divide","Yacute","Acircumflex","aacute","Ucircumflex","yacute","scommaaccent","ecircumflex","Uring","Udieresis","aogonek","Uacute","uogonek","Edieresis","Dcroat","commaaccent","Emacron","ccaron","aring","Ncommaaccent","lacute","agrave","Tcommaaccent","Cacute","atilde","Edotaccent","scaron","scedilla","iacute","lozenge","Rcaron","Gcommaaccent","ucircumflex","acircumflex","Amacron","rcaron","ccedilla","Zdotaccent","Thorn","Omacron","Racute","Sacute","dcaron","Umacron","uring","threesuperior","Ograve","Agrave","Abreve","multiply","uacute","Tcaron","partialdiff","ydieresis","Nacute","icircumflex","Ecircumflex","adieresis","edieresis","cacute","nacute","umacron","Ncaron","Iacute","plusminus","brokenbar","registered","Gbreve","Idotaccent","summation","Egrave","racute","omacron","Zacute","Zcaron","greaterequal","Eth","Ccedilla","lcommaaccent","tcaron","eogonek","Uogonek","Aacute","Adieresis","egrave","zacute","iogonek","Oacute","oacute","amacron","sacute","idieresis","Ocircumflex","Ugrave","Delta","thorn","twosuperior","Odieresis","igrave","ohungarumlaut","Eogonek","dcroat","threequarters","Scedilla","lcaron","Kcommaaccent","Lacute","trademark","edotaccent","Igrave","Imacron","Lcaron","onehalf","lessequal","ocircumflex","ntilde","Uhungarumlaut","Eacute","emacron","gbreve","onequarter","Scaron","Scommaaccent","Ohungarumlaut","degree","ograve","Ccaron","ugrave","radical","Dcaron","rcommaaccent","Ntilde","otilde","Rcommaaccent","Lcommaaccent","Atilde","Aogonek","Aring","Otilde","zdotaccent","Ecaron","Iogonek","kcommaaccent","minus","Icircumflex","ncaron","tcommaaccent","logicalnot","odieresis","udieresis","notequal","gcommaaccent","eth","zcaron","ncommaaccent","onesuperior","imacron","Euro","universal","existential","suchthat","asteriskmath","congruent","Alpha","Beta","Chi","Epsilon","Phi","Gamma","Eta","Iota","theta1","Kappa","Lambda","Mu","Nu","Omicron","Pi","Theta","Rho","Sigma","Tau","Upsilon","sigma1","Omega","Xi","Psi","Zeta","therefore","perpendicular","radicalex","chi","phi","eta","iota","phi1","kappa","lambda","omicron","theta","rho","sigma","tau","upsilon","omega1","omega","xi","psi","zeta","similar","Upsilon1","minute","infinity","club","diamond","heart","spade","arrowboth","arrowleft","arrowup","arrowright","arrowdown","proportional","equivalence","approxequal","arrowvertex","arrowhorizex","carriagereturn","aleph","Ifraktur","Rfraktur","weierstrass","circlemultiply","circleplus","emptyset","intersection","union","propersuperset","reflexsuperset","notsubset","propersubset","reflexsubset","notelement","gradient","registerserif","copyrightserif","trademarkserif","product","dotmath","logicaland","logicalor","arrowdblboth","arrowdblleft","arrowdblup","arrowdblright","arrowdbldown","angleleft","registersans","copyrightsans","trademarksans","parenlefttp","parenleftex","parenleftbt","bracketlefttp","bracketleftex","bracketleftbt","bracelefttp","braceleftmid","braceleftbt","braceex","angleright","integral","integraltp","integralex","integralbt","parenrighttp","parenrightex","parenrightbt","bracketrighttp","bracketrightex","bracketrightbt","bracerighttp","bracerightmid","bracerightbt","apple","a2","a202","a3","a4","a5","a119","a118","a117","a11","a12","a13","a14","a15","a16","a105","a17","a18","a19","a20","a21","a22","a23","a24","a25","a26","a27","a28","a6","a7","a8","a9","a10","a29","a30","a31","a32","a33","a34","a35","a36","a37","a38","a39","a40","a41","a42","a43","a44","a45","a46","a47","a48","a49","a50","a51","a52","a53","a54","a55","a56","a57","a58","a59","a60","a61","a62","a63","a64","a65","a66","a67","a68","a69","a70","a71","a72","a73","a74","a203","a75","a204","a76","a77","a78","a79","a81","a82","a83","a84","a97","a98","a99","a100","a89","a90","a93","a94","a91","a92","a205","a85","a206","a86","a87","a88","a95","a96","a101","a102","a103","a104","a106","a107","a108","a112","a111","a110","a109","a120","a121","a122","a123","a124","a125","a126","a127","a128","a129","a130","a131","a132","a133","a134","a135","a136","a137","a138","a139","a140","a141","a142","a143","a144","a145","a146","a147","a148","a149","a150","a151","a152","a153","a154","a155","a156","a157","a158","a159","a160","a161","a163","a164","a196","a165","a192","a166","a167","a168","a169","a170","a171","a172","a173","a162","a174","a175","a176","a177","a178","a179","a193","a180","a199","a181","a200","a182","a201","a183","a184","a197","a185","a194","a198","a186","a195","a187","a188","a189","a190","a191","ON_CURVE_POINT","X_SHORT_VECTOR","Y_SHORT_VECTOR","REPEAT_FLAG","X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR","Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR","OVERLAP_SIMPLE","ARG_1_AND_2_ARE_WORDS","ARGS_ARE_XY_VALUES","WE_HAVE_A_SCALE","MORE_COMPONENTS","WE_HAVE_AN_X_AND_Y_SCALE","WE_HAVE_A_TWO_BY_TWO","WE_HAVE_INSTRUCTIONS","getSize","totalSize","setUint32","setUint16","locaIndex","composites","spos","factor","xMiddle","GlyphHeader","CompositeGlyph","SimpleGlyph","setInt16","Contour","xCoordinates","yCoordinates","contours","instructions","lastX","lastY","endPt","numberOfPt","allXCoordinates","pointFlags","endPtsOfContoursIndex","lastCoordinate","argument1","argument2","writeInt16","writeInt32","writeData","OTF_HEADER_SIZE","OTF_TABLE_ENTRY_SIZE","sfnt","tablesNames","tableName","tableOffsets","paddedLength","quad","entriesCount","entrySize","maxPower2","findBlock","streamBytes","startIndex","streamBytesLength","getHeaderBlock","suggestedLength","EEXEC_SIGNATURE","streamStartPos","headerBytes","headerBytesLength","getEexecBlock","eexecBytes","PFB_HEADER_SIZE","headerBlockLength","eexecBlockLength","pfbHeader","pfbHeaderPresent","headerBlock","headerBlockParser","Type1Parser","extractFontHeader","eexecBlock","eexecBlockParser","extractFontProgram","type2Charstrings","getType2Charstrings","getType2Subrs","getSeacs","charstringsLen","type1Charstrings","type1Subrs","type2Subrs","charsetArray","privateData","subrIndex","HINTING_ENABLED","Type1CharString","Type1CharStringClosure","COMMAND_MAP","hstem","vstem","vmoveto","rlineto","hlineto","vlineto","rrcurveto","callsubr","flex","drop","endchar","rmoveto","hmoveto","vhcurveto","hvcurveto","flexing","wx","sbx","executeCommand","asb","sby","num2","num1","flexArgs","howManyArgs","command","keepStack","stackLength","Type1ParserClosure","EEXEC_ENCRYPT_KEY","CHAR_STRS_ENCRYPT_KEY","isHexDigit","decrypt","discardNumber","c1","c2","decrypted","decryptAscii","digit1","digit2","isSpecial","encrypted","isBinary","readNumberArray","getToken","readInt","readBoolean","prevChar","readCharStrings","lenIV","program","blueArray","charString","charStringObject","encodingArg","ShadingType","FUNCTION_BASED","AXIAL","RADIAL","FREE_FORM_MESH","LATTICE_FORM_MESH","COONS_PATCH_MESH","TENSOR_PATCH_MESH","RadialAxialShading","MeshShading","DummyShading","BaseShading","coordsArr","shadingType","t0","domainArr","extendStart","extendEnd","extendArr","r1","r2","distance","fnObj","createFromArray","NUMBER_OF_SAMPLES","colorStops","ratio","cssColor","makeHexColor","background","SMALL_NUMBER","r0","MeshStreamReader","tmpCompsBuf","csNumComps","tmpCsCompsBuf","colorFn","align","readFlag","bitsPerFlag","readCoordinate","bitsPerCoordinate","yi","readComponents","ci","getB","getBClosure","buildB","lut","t_","coords","figures","decodeContext","patchMesh","_decodeType4Shading","verticesPerRow","_decodeType5Shading","_decodeType6Shading","_decodeType7Shading","_updateBounds","_buildFigureFromPatch","_packData","operators","ps","verticesLeft","hasData","coord","tmp1","tmp2","tmp3","tmp4","figure","figureMinX","figureMinY","figureMaxX","figureMaxY","splitXBy","TRIANGLE_DENSITY","MIN_SPLIT_PATCH_CHUNKS_AMOUNT","MAX_SPLIT_PATCH_CHUNKS_AMOUNT","splitYBy","figureCoords","figureColors","cl","cr","c0","c3","bRow","bCol","newColor","coordsPacked","xy","colorsPacked","xstep","ystep","paintType","tilingType","cachedFunction","parsedFunction","PDFFunction","parseArray","fnRef","localFunction","_localFunctionCache","LocalFunctionCache","toNumberArray","outputSize","bps","sampleMul","strBytes","strIdx","constructSampled","constructInterpolated","constructStiched","constructPostScript","toMultiArray","xmin","xmax","ymin","ymax","inputSize","encode","samples","getSampleArray","constructSampledFn","cubeVertices","cubeN","Float64Array","cubeVertex","domain_2i","domain_2i_1","size_i","e0","n0","n1","rj","constructInterpolatedFn","fnRefs","fns","constructStichedFn","constructStichedFromIRClip","dmin","dmax","rmin","rmax","PostScriptLexer","PostScriptParser","PostScriptCompiler","numOutputs","numInputs","PostScriptEvaluator","MAX_CACHE_SIZE","cache_available","constructPostScriptFn","cachedValue","execute","stackIndex","bound","fnDict","PostScriptStack","initialStack","MAX_STACK_SIZE","copy","roll","atan","cos","LN10","sin","PostScriptCompilerClosure","AstNode","visit","AstArgument","visitArgument","AstLiteral","visitLiteral","AstBinaryOperation","visitBinaryOperation","AstMin","visitMin","AstVariable","visitVariable","AstVariableDefinition","variable","visitVariableDefinition","ExpressionBuilderVisitor","parts","literal","definition","buildAddOperation","buildMulOperation","buildSubOperation","buildMinOperation","lastRegister","ast1","ast2","tmpVar","instruction","statementBuilder","expr","nextToken","accept","expect","PostScriptTokenTypes","LBRACE","parseBlock","RBRACE","NUMBER","OPERATOR","parseCondition","conditionLocation","IF","jumpLocation","endOfTrue","IFELSE","PostScriptToken","opValue","opCache","getOperator","BaseLocalCache","_onlyRefs","onlyRefs","_nameRefMap","_imageMap","_imageCache","GlobalImageCache","_refCache","imageData","MIN_IMAGES_TO_CACHE","_byteSize","MAX_BYTE_SIZE","pageIndexSet","NUM_PAGES_THRESHOLD","_cacheLimitReached","onlyData","baseTypes","arabicTypes","isOdd","isEven","findUnequal","setValues","reverseValues","createBidiText","isLTR","startLevel","strLength","numBidi","charType","sor","eor","lastType","before","after","highestLevel","lowestOddLevel","SEED","MASK_HIGH","MASK_LOW","seed","blockCounts","tailLength","dataUint32","k1","k2","C1","C2","C1_LOW","C2_LOW","hex1","hex2","addState","parentState","checkFn","iterateFn","processFn","InitialState","iterateInlineImageGroup","iFirstSave","iCurr","foundInlineImageGroup","MIN_IMAGES_IN_INLINE_IMAGES_BLOCK","MAX_IMAGES_IN_INLINE_IMAGES_BLOCK","MAX_WIDTH","IMAGE_PADDING","curr","iFirstTransform","iFirstPIIXO","maxLineHeight","currentX","currentY","img","imgWidth","imgHeight","iterateImageMaskGroup","foundImageMaskGroup","MIN_IMAGES_IN_MASKS_BLOCK","MAX_IMAGES_IN_MASKS_BLOCK","MAX_SAME_IMAGES_IN_MASKS_BLOCK","iFirstPIMXO","isSameImage","iTransform","transformArgs","firstPIMXOArg0","firstTransformArg0","firstTransformArg1","firstTransformArg2","firstTransformArg3","iPIMXO","images","maskParams","iterateImageGroup","iFirstPIXO","firstPIXOArg0","MIN_IMAGES_IN_BLOCK","MAX_IMAGES_IN_BLOCK","iterateShowTextGroup","iFirstSetFont","firstSetFontArg0","firstSetFontArg1","MIN_CHARS_IN_BLOCK","MAX_CHARS_IN_BLOCK","iFirstBeginText","iFirstSetTextMatrix","iFirstShowText","iFirstEndText","iFirst","iEndText","NullOptimizer","_optimize","QueueOptimizer","lastProcessed","streamSink","_streamSink","optimizer","_totalLength","_resolved","CHUNK_SIZE","CHUNK_SIZE_ABOUT","_transfers","decodeAndClamp","addend","coefficient","resizeImageMask","isMask","matte","needsDecode","decodeCoefficients","decodeAddends","isIndexed","maskDict","decodeBuffer","getComponents","bufferPos","rowComps","loop1End","loop2End","remainingBits","fillOpacity","rgbaBuf","alphaBuf","sw","fillGrayBuffer","opacity","imageOffset","maskOffset","undoPreblend","matteRgb","matteR","matteG","matteB","forceRGBA","getImageBytes","imageLength","internal","maybeUndoPreblend","smaskData","maskData","computedLength","haveFullData","isOffscreenCanvasSupported","ctx","applyMaskImageData","putImageData","srcPos","opaque","zeroMapping","oneMapping","widthInSource","widthRemainder","srcLength","elem","PartialEvaluatorClosure","ignoreCalculations","textStateManager","graphicsStateManager","GraphicsState","clipping","boundingBoxesStack","NoMCIDBoundingBoxStack","operationIndex","getTopPoints","BoundingBoxesCalculator_getTopPoints","pow","rotated_e","result_vector","getTextBoundingBox","BoundingBoxesCalculator_getTextBoundingBox","tx","ty","rise","glyphsSize","w0","tx2","ty2","tx3","ty3","glyphSize","glyphsPos","xPoints","yPoints","getClippingGraphicsBoundingBox","BoundingBoxesCalculator_getClippingGraphicsBoundingBox","saveGraphicsBoundingBox","clippingBBox","getRectBoundingBox","x4","y4","getLineBoundingBox","move_x","move_y","getCurve","curve","getCurveRoots","root_1","root_2","getCurveBoundingBox","curveX","curveY","getClip","getImageBoundingBox","BoundingBoxesCalculator_parseOperator","inc","clean","boundingBox","BoundingBoxesCalculator_setFont","BoundingBoxesCalculator_incrementOperation","GraphicsState_clone","GraphicsState_clear","BoundingBoxStack","BoundingBoxStack_begin","BoundingBoxStack_save","BoundingBoxStack_end","contentCounter","pointer","NoMCIDBoundingBoxStack_begin","inMarkedContent","newContentItem","contentItems","NoMCIDBoundingBoxStack_save","contentItem","NoMCIDBoundingBoxStack_end","tempPointer","NoMCIDBoundingBoxStack_inc","isMC","NoMCIDBoundingBoxStack_get","JSON","stringify","fetchDestination","_catDict","getCatalogObj","toplevelPagesDict","_actualNumPages","streamRef","encryptMetadata","MetadataParser","markInfo","_readMarkInfo","Marked","UserProperties","Suspects","_readStructTreeRoot","root","StructTreeRoot","pagesObj","_readDocumentOutline","blackColor","outlineDict","outlineItem","unsafeUrl","permissions","_readPermissions","defaultConfig","groupsData","groupRefs","groupRef","_readOptionalContentConfig","contentGroupRefs","parseOnOff","onParsed","parseOrder","nestedLevels","parsedOrderRefs","nestedOrder","parseNestedOrder","hiddenGroups","MAX_NESTED_LEVELS","nestedName","creator","baseState","off","_pagesCount","_readDests","dests","NameTree","getAll","getDestination","allDest","destinations","_readPageLabels","pageLabels","prefix","numberTree","NumberTree","nums","currentLabel","labelDict","st","LIMIT","A_UPPER_CASE","A_LOWER_CASE","baseCharCode","letterIndex","character","pageLayout","pageMode","prefs","prefValue","openAction","attachments","nameTree","fs","_collectJavaScript","appendIfJavaScriptDict","jsDict","translatedFonts","nodesToVisit","visitedNodes","pagesRef","currentPageIndex","currentNode","addPageDict","addPageError","posInKids","queueItem","kidObj","getPageIndex","cachedPageIndex","pagesBeforeRef","kidRef","parentRef","kidPromises","uri","actionType","actionName","include","resetForm","urlDict","remoteDest","namedAction","jsAction","jsURL","ExtendedCatalog","pages","_convertStructToObject","struct","getTreeElement","newPage","findIndex","subel","pagesArray","kidObjType","NameOrNumberTree","_type","kidsOrEntries","loopCount","MAX_LEVELS","limits","currentKey","pickPlatformItem","contentAvailable","_filename","contentRef","fileObj","_repair","SimpleXMLParser","lowerCaseName","xmlDocument","parseFromString","_metadataMap","_data","d2","d3","charBuf","_getSequence","nodeName","childNodes","_parseArray","hasChildNodes","seqNode","rdf","documentElement","firstChild","nextSibling","desc","parsedData","rawData","XMLParserErrorCode","NoError","EndOfDocument","UnterminatedCdat","UnterminatedXmlDeclaration","UnterminatedDoctypeDeclaration","UnterminatedComment","MalformedElement","OutOfMemory","UnterminatedAttributeValue","UnterminatedElement","ElementNeverBegun","isWhitespaceString","XMLParserBase","_resolveEntities","onResolveEntity","_parseContent","attributes","skipWs","attrName","attrValue","attrEndChar","attrEndIndex","parsed","_parseProcessingInstruction","attrStart","parseXml","ch2","onEndElement","onPi","onComment","onCdata","q2","complexDoctype","doctypeContent","onDoctype","isClosed","onBeginElement","onText","SimpleDOMNode","nodeValue","parentNode","child","searchNode","paths","siblingPos","dump","attribute","hasAttributes","_currentFragment","_stack","_errorCode","_hasAttributes","_lowerCaseName","lastElement","MAX_DEPTH","StructElementType","PAGE_CONTENT","STREAM_CONTENT","OBJECT","ELEMENT","rootDict","roleMap","readRoleMap","roleMapDict","StructElementNode","parseKids","nameObj","pageObjId","objRef","parseKid","StructElement","kidDict","refObjId","parentTree","parentArray","addNode","addTopLevelNode","nodeToSerializable","role","kidElement","mayHaveChildren","addChildren","rawValue","refSet","_walk","nodesToRevisit","pendingRequests","foundMissingData","writeValue","writeStream","writeArray","numberToString","roundedValue","writeInt","writeString","computeMD5","filesize","time","md5Buffer","md5BufferLen","writeXFADataForAcroform","xml","updateXFA","oldXfa","newXfa","refForXrefTable","baseOffset","xrefTableData","indexes","maxOffset","md5","sizes","structSize","tableLength","bufferLen","footer","objOffset","ARCFourCipher","keyLength","encryptBlock","decryptBlock","calculateMD5Closure","h0","h3","padded","rotateArg","Word64","highInteger","lowInteger","and","word","xor","or","shiftRight","places","shiftLeft","rotateRight","not","lowAdd","highAdd","copyTo","calculateSHA256","calculateSHA256Closure","rotr","maj","sigmaPrime","littleSigma","littleSigmaPrime","h4","h5","h6","h7","calculateSHA512","calculateSHA512Closure","mode384","calculateSHA384","NullCipher","AESBaseCipher","_s","_inv_s","_mix","_mixCol","bufferPosition","_expandKey","cipherKey","_decrypt","_keySize","_cyclesOfRepetition","s0","s1","s3","_encrypt","_decryptBlock2","finalize","sourceLength","iv","plain","_key","lastBlock","psLen","cipher","AES128Cipher","_rcon","rcon","t3","t4","AES256Cipher","PDF17","checkOwnerPassword","ownerValidationSalt","userBytes","ownerPassword","hashData","checkUserPassword","userValidationSalt","userPassword","getOwnerKey","ownerKeySalt","ownerEncryption","getUserKey","userKeySalt","userEncryption","PDF20","PDF20Closure","calculatePDF20Hash","combinedLength","combinedArray","remainder","concatBytes","CipherTransform","stringCipherConstructor","streamCipherConstructor","StringCipherConstructor","StreamCipherConstructor","DecryptStream","cipherTransformDecryptStream","strLen","pad","crypto","getRandomValues","CipherTransformFactory","CipherTransformFactoryClosure","defaultPasswordBytes","createEncryptionKey20","revision","uBytes","perms","passwordLength","pdfAlgorithm","prepareKeyData","fileId","hashDataSize","keyLengthInBytes","encryptionKey","checkData","derivedKey","decodeUserPassword","identityName","buildObjectKey","isAes","buildCipherConstructor","cf","cryptFilter","cfm","cipherTransformFactoryBuildCipherConstructorNone","cipherTransformFactoryBuildCipherConstructorV2","cipherTransformFactoryBuildCipherConstructorAESV2","cipherTransformFactoryBuildCipherConstructorAESV3","algorithm","cfDict","streamCryptoName","handlerDict","fileIdBytes","passwordBytes","decodedPassword","stmf","strf","eff","cipherConstructor","buildCipherCipherConstructor","nextChunk","hasMoreData","XFAParser","_createDocument","binder","Binder","form","dataHandler","DataHandler","$globalData","_createPagesHelper","$toPages","nextIteration","dims","_createPages","fontFinder","FontFinder","usedTypefaces","typeface","stripQuotes","storage","serialize","rc","XhtmlNamespace","$nodeName","newRoot","body","$appendChild","$toHTML","success","attr","$text","$acceptWhitespace","$addHTML","$childrenToHTML","$clean","$cleanPage","$cleanup","$clone","$consumed","$content","$data","$dump","$extra","$finalize","$flushHTML","$getAttributeIt","$getAttributes","$getAvailableSpace","$getChildrenByClass","$getChildrenByName","$getChildrenByNameIt","$getDataValue","$getExtra","$getRealChildrenByNameIt","$getChildren","$getContainedChildren","$getNextPage","$getSubformParent","$getParent","$getTemplateRoot","$hasSettableValue","$ids","$indexOf","$insertAt","$isCDATAXml","$isBindable","$isDataValue","$isDescendent","$isNsAgnostic","$isSplittable","$isThereMoreWidth","$isTransparent","$isUsable","$lastAttribute","$namespaceId","$nsAttributes","$onChild","$onChildCheck","$onText","$pushGlyphs","$popPara","$pushPara","$removeChild","$root","$resolvePrototypes","$searchNode","$setId","$setSetAttributes","$setValue","$tabIndex","$toString","$toStyle","$uid","_applyPrototype","_attributes","_attributeNames","_children","_cloneAttribute","_dataValue","_defaultValue","_filteredChildrenGenerator","_getPrototype","_getUnsetAttributes","_hasChildren","_max","_options","_parent","_resolvePrototypesHelper","_setAttributes","_validator","NS_DATASETS","NamespaceIds","XFAObject","nsId","hasChildren","XFAObjectArray","para","paraStack","dumped","HTMLResult","EMPTY","availableSpace","failingNode","generator","protoAttributes","allAttr","setAttr","ancestors","use","usehref","somExpression","endsWith","protoProto","newAncestors","unsetAttrName","protoValue","$symbol","clonedChild","allTransparent","XFAAttribute","XmlObject","dataNode","tagName","utf8TagName","utf8Name","skipConsumed","xhtml","hasNS","$ns","$name","ContentObject","OptionObject","getKeyword","StringObject","IntegerObject","validator","getInteger","Option01","Option10","dimConverters","pt","mm","in","measurementPattern","getFloat","getStringOption","getMeasurement","def","valueStr","unit","conv","getRatio","den","getRelevant","excluded","viewname","getColor","getBBox","breakNode","isBreak","$buildXFAObject","ns","pdf","sourceSet","xdc","xdp","xfdf","xmpmeta","namePattern","indexPattern","dot","dotDot","dotHash","dotBracket","dotParen","shortcuts","dataWindow","somCache","parseExpression","dotDotAllowed","noExpr","cacheName","formCalc","container","useCache","isQualified","isFinite","acc","createNodes","createDataNode","createText","Text","emptyMerge","_isConsumeData","_mergeMode","_isMatchTemplate","_bindElement","_bindValue","formNode","picture","Field","ui","choiceList","_findDataByNameToConsume","isValue","_setProperties","setProperty","connection","targetNodes","targetNode","targetParent","SetProperty","BindItems","attrs","_bindItems","bindItems","Items","labelRef","valueRef","labelNodes","labelNode","valueNodes","valueNode","label","_bindOccurrences","matches","baseClone","occur","_createOccurrences","initial","currentNumber","nodeClone","_getOccurInfo","_setAndBind","uselessNodes","mergeMode","dataChildren","dataChild","getContainedChildren","TEMPLATE_NS_ID","SVG_NS","MAX_ATTEMPTS_FOR_LRTB_LAYOUT","MAX_EMPTY_PAGES","DEFAULT_TAB_INDEX","HEADING_PATTERN","MIMES","IMAGES_HEADERS","getBorderDims","border","borderExtra","insets","hasMargin","margin","topInset","rightInset","bottomInset","leftInset","_setValue","templateNode","Value","SubformSet","setTabIndex","traversal","applyAssist","assist","assistTitle","ariaRole","ariaLevel","ariaLabel","speak","toolTip","valueToHtml","class","setFirstUnsplittable","firstUnsplittable","noLayoutFailure","unsetFirstUnsplittable","handleBreak","targetType","currentPageArea","currentContentArea","PageArea","startNew","ContentArea","pageArea","nextPageArea","contentAreas","contentArea","indexForCurrent","indexForTarget","handleOverflow","extraNode","saved","savedMethod","AppearanceFilter","Arc","circular","hand","startAngle","sweepAngle","edge","Edge","edgeStyle","presence","strokeWidth","measureToString","thickness","arc","xmlns","overflow","cx","cy","rx","ry","largeArc","vectorEffect","preserveAspectRatio","svg","Area","colSpan","relevant","extras","area","draw","exObject","exclGroup","subform","subformSet","toStyle","isPrintOnly","xfaName","FAILURE","Assist","Barcode","charEncoding","dataColumnCount","dataPrep","dataRowCount","endChar","errorCorrectionLevel","moduleHeight","moduleWidth","printCheckDigit","rowColumnRatio","startChar","textLocation","truncate","upsMode","wideNarrowRatio","Bind","Bookend","leader","BooleanElement","Border","corner","edges","defaultEdge","edgeStyles","cornerStyles","borderRadius","Break","afterTarget","beforeTarget","bookendLeader","bookendTrailer","overflowLeader","overflowTarget","overflowTrailer","BreakAfter","script","BreakBefore","Button","highlight","grandpa","htmlButton","activity","fixURL","Calculate","Caption","placement","reserve","layoutNode","savedReserve","setPara","Certificate","Certificates","credentialServerPolicy","urlPolicy","encryption","issuers","keyUsage","oids","signing","subjectDNs","CheckButton","mark","shape","className","groupId","fieldId","dataId","ExclGroup","xfaOn","xfaOff","ChoiceList","commitOn","textEntry","optionStyle","displayedIndex","saveIndex","displayed","selected","selectAttributes","multiple","Color","cSpace","Comb","numberOfCells","Connect","usage","classNames","Corner","inverted","DateElement","DateTime","DateTimeEdit","hScrollPolicy","picker","Decimal","fracDigits","leadDigits","DefaultUi","Desc","dateTime","decimal","exData","DigestMethod","DigestMethods","digestMethod","Draw","anchorType","hAlign","locale","maxW","minH","minW","caption","keep","fixDimensions","savedW","savedH","isBroken","checkDimensions","setMinMaxDimensions","computeBbox","createWrapper","cap","linecap","Encoding","Encodings","Encrypt","certificate","EncryptData","manifest","Encryption","EncryptionMethod","EncryptionMethods","encryptionMethod","Event","listen","encryptData","signData","submit","ExData","contentType","maxLength","rid","transferEncoding","ExObject","archive","classId","codeBase","codeType","access","accessKey","connect","attempt","numberInLine","_isSplittable","flushHTML","addHTML","getAvailableSpace","setAccess","prevHeight","isSplittable","columnWidths","currentColumn","layoutClass","isLrTb","maxRun","marginH","marginV","Execute","executeType","runAt","Extras","Ui","TextEdit","textEdit","checkButton","borderDims","uiW","uiH","lineNoGap","tabindex","aElement","button","imageEdit","htmlValue","maxChars","numericEdit","captionHeight","inputHeight","Fill","linear","radial","solid","stipple","ggrandpa","propName","altPropName","Rectangle","Filter","addRevocationInfo","appearanceFilter","certificates","digestMethods","encryptionMethods","lockDocument","mdp","reasons","timeStamp","Float","baselineShift","fontHorizontalScale","fontVerticalScale","kerningMode","letterSpacing","lineThrough","lineThroughPeriod","overline","overlinePeriod","posture","underline","underlinePeriod","backgroundClip","verticalAlign","fontKerning","textDecoration","textDecorationStyle","fontStyle","setFontFamily","Format","Handler","Hyphenation","excludeAllCaps","excludeInitialCap","hyphenate","pushCharacterCount","remainCharacterCount","wordCharacterCount","Image","aspect","blob","Blob","objectFit","createObjectURL","ImageEdit","Integer","Issuers","Keep","intact","KeyUsage","crlSign","dataEncipherment","decipherOnly","digitalSignature","encipherOnly","keyAgreement","keyCertSign","keyEncipherment","nonRepudiation","Line","slope","Linear","startColor","endColor","LockDocument","Manifest","Margin","Mdp","signatureType","Medium","imagingBBox","orientation","stock","trayIn","trayOut","Message","NumericEdit","Occur","originalMin","PageSet","Template","Oid","Oids","oid","Overflow","addLeader","addTrailer","blankOrNotBlank","initialNumber","numbered","oddOrEven","pagePosition","medium","numberOfUse","relation","duplexImposition","pageSet","pageSetIndex","pageNumber","parity","Para","marginLeft","marginRight","orphans","preserve","radixOffset","spaceAbove","spaceBelow","tabDefault","tabStops","textIndent","vAlign","widows","hyphenation","paddingLeft","paddingight","paddingTop","paddingBottom","fixTextIndent","tabSize","hyphenatation","PasswordEdit","passwordChar","Picture","Proto","barcode","bookend","breakAfter","breakBefore","dateTimeEdit","defaultUi","passwordEdit","subjectDN","traverse","variables","Radial","Reason","Reasons","cornerStyle","RefElement","binding","SignData","Signature","Signing","Solid","Speak","disable","priority","Stipple","rate","bgColor","Subform","allowMacro","restoreState","scope","afterBreakAfter","savedNoLayoutFailure","overflowExtra","overflowNode","SubjectDN","delimiter","kv","SubjectDNs","Submit","embedPDF","textEncoding","xdpContent","baseProfile","pageAreas","mainHtml","breakBeforeTarget","pageAreaParent","hasSomething","hasSomethingCounter","targetPageArea","htmlContentAreas","allowRichText","vScrollPolicy","Time","TimeStamp","server","ToolTip","Traversal","Traverse","Validate","formatTest","nullTest","scriptTest","valueName","Variables","TemplateNamespace","createLine","htmlFromFailing","getTransformedBBox","centerX","centerY","ERROR","converters","transformOrigin","visibility","textAlign","alignSelf","layoutText","xfaFont","measure","TextMeasure","addString","compute","newStyle","insetsH","insetsW","indent","getCurrentPara","nodeStyle","valueStyle","flexDirection","justifyContent","paraStyle","regular","pdfFont","selectFont","defaultFont","addPdfFont","bolditalic","myriad","getDefault","mustWarn","maybe","family","WIDTH_FACTOR","FontInfo","paraMargin","FontSelector","defaultXfaFont","defaultParaMargin","defaultLineHeight","pushData","lastFont","popFont","topFont","fontSelector","extraHeight","addPara","fontLineHeight","noGap","firstLineHeight","fallbackWidth","encodedLine","lastSpaceWidth","currentLineWidth","currentLineHeight","isFirstLine","isEOL","dataset","rootNameSpace","_builder","Builder","_globalData","_ids","_current","buildRoot","_whiteRegex","_nbsps","_richText","_mkAttributes","prefixes","attributeObj","nsAttrs","_getNameAndPrefix","nsAgnostic","attributesObj","isNsAgnostic","nsPrefix","build","Root","Empty","_namespaceStack","_nsAgnosticLevel","_namespacePrefixes","_namespaces","_nextNsId","_currentNamespace","UnknownNamespace","hasNamespaceDef","_searchNamespace","_addNamespacePrefix","dataTemplate","NamespaceSetUp","xfaAttrs","nsToUse","_getNamespaceToUse","namespaceToUse","hasNamespace","nsName","prefixStack","ConfigNamespace","ConnectionSetNamespace","DatasetsNamespace","LocaleSetNamespace","SignatureNamespace","StylesheetNamespace","XdpNamespace","CONFIG_NS_ID","Acrobat","acrobat7","autoSave","validateApprovalSignatures","submitUrl","Acrobat7","dynamicRender","ADBE_JSConsole","ADBE_JSDebugger","AddSilentPrint","AddViewerPreferences","AdjustData","AdobeExtensionLevel","Agent","AlwaysEmbed","Amd","AutoSave","Base","BatchOutput","BehaviorOverride","Cache","templateCache","Change","Common","messaging","suppressBanner","validationMessaging","versionControl","Compress","CompressLogicalStructure","CompressObjectStream","Compression","compressLogicalStructure","compressObjectStream","Config","acrobat","present","trace","agent","Conformance","ContentCopy","Copies","Creator","CurrentPage","Data","adjustData","incrementalLoad","outputXSL","startNode","xsl","excludeNS","Debug","DefaultTypeface","writingScript","Destination","DocumentAssembly","Driver","DuplexOption","DynamicRender","Embed","encryptionLevel","EncryptionLevel","Enforce","Equate","force","to","EquateRange","_unicodeRange","unicodeRange","unicodeRegex","Exclude","ExcludeNS","FlipLabel","embed","subsetBelow","alwaysEmbed","defaultTypeface","neverEmbed","FormFieldFilling","GroupParent","IfEmpty","IncludeXDPContent","IncrementalLoad","IncrementalMerge","Interactive","Jog","LabelPrinter","batchOutput","flipLabel","Layout","Level","Linearized","Locale","LocaleSet","Log","threshold","MapElement","equate","equateRange","MediumInfo","msgId","severity","Messaging","Mode","ModifyAnnots","MsgId","NameAttr","NeverEmbed","NumberOfCopies","OpenAction","destination","Output","OutputBin","OutputXSL","Overprint","Packets","PageOffset","PageRange","numbers","Pagination","PaginationOverride","Part","Pcl","jog","mediumInfo","outputBin","pageOffset","staple","Pdf","adobeExtensionLevel","compression","interactive","linearized","pdfa","producer","renderPolicy","scriptModel","silentPrint","submitFormat","tagged","viewerPreferences","Pdfa","amd","conformance","includeXDPContent","Permissions","accessibleContent","change","contentCopy","documentAssembly","formFieldFilling","modifyAnnots","plaintextMetadata","printHighQuality","PickTrayByPDFSize","PlaintextMetadata","Presence","Present","behaviorOverride","copies","incrementalMerge","overprint","pagination","paginationOverride","driver","labelPrinter","pcl","webClient","zpl","Print","PrintHighQuality","PrintScaling","PrinterName","Producer","Ps","Range","Record","Relevant","Rename","RenderPolicy","RunScripts","currentPage","exclude","runScripts","ScriptModel","Severity","SilentPrint","addSilentPrint","printerName","Staple","StartNode","StartPage","SubmitFormat","SubmitUrl","SubsetBelow","SuppressBanner","Tagged","startPage","Threshold","To","TemplateCache","maxEntries","Trace","groupParent","ifEmpty","nameAttr","rename","whitespace","Uri","ValidateApprovalSignatures","ValidationMessaging","Version","VersionControl","outputBelow","sourceAbove","sourceBelow","ViewerPreferences","addViewerPreferences","duplexOption","numberOfCopies","pageRange","pickTrayByPDFSize","printScaling","WebClient","Whitespace","Window","Xdc","Xdp","packets","Xsl","debug","Zpl","CONNECTION_SET_NS_ID","ConnectionSet","wsdlConnection","xmlConnection","xsdConnection","EffectiveInputPolicy","EffectiveOutputPolicy","Operation","RootElement","SoapAction","SoapAddress","WsdlAddress","WsdlConnection","dataDescription","effectiveInputPolicy","effectiveOutputPolicy","soapAction","soapAddress","wsdlAddress","XmlConnection","XsdConnection","rootElement","DATASETS_NS_ID","Datasets","LOCALE_SET_NS_ID","CalendarSymbols","dayNames","eraNames","meridiemNames","monthNames","CurrencySymbol","CurrencySymbols","currencySymbol","DatePattern","DatePatterns","datePattern","DateTimeSymbols","Day","DayNames","abbr","day","Era","EraNames","era","calendarSymbols","currencySymbols","datePatterns","dateTimeSymbols","numberPatterns","numberSymbols","timePatterns","typeFaces","Meridiem","MeridiemNames","meridiem","Month","MonthNames","month","NumberPattern","NumberPatterns","numberPattern","NumberSymbol","NumberSymbols","numberSymbol","TimePattern","TimePatterns","timePattern","TypeFace","TypeFaces","typeFace","SIGNATURE_NS_ID","STYLESHEET_NS_ID","Stylesheet","XDP_NS_ID","uuid","XHTML_NS_ID","$richText","VALID_STYLES","StyleMapping","original","spacesRegExp","crlfRegExp","crlfForRichTextRegExp","mapStyle","styleStr","newValue","replaceAll","SUB_SUPER_SCRIPT_FACTOR","VERTICAL_FACTOR","checkStyle","NoWhites","XhtmlObject","mustPop","pushFont","Body","Br","Html","Li","Ol","siblings","Span","Sub","Sup","Ul","namespaceId","decodeString","DatasetXMLParser","xrefstms","_cacheMap","_pendingRefs","_newRefNum","startXRefQueue","trailerDict","readXRef","indexObjects","processXRefTable","tableState","entryNum","parserBuf1","parserBuf2","readXRefTable","firstEntryNum","free","uncompressed","processXRefStream","streamParameters","byteWidths","streamState","entryRanges","readXRefStream","typeFieldWidth","offsetFieldWidth","generationFieldWidth","generation","typeByte","offsetByte","generationByte","TAB","PERCENT","readToken","skipUntil","skipped","objRegExp","endobjRegExp","nestedObjRegExp","CHECK_CONTENT_LENGTH","trailerBytes","startxrefBytes","objBytes","xrefBytes","trailers","xrefStms","updateEntries","checkPos","tokenStr","objToken","xrefTagOffset","pagesDict","pagesCount","startXRefParsedCache","xrefEntry","fetchUncompressed","fetchCompressed","tableOffset","CallbackKind","DATA","StreamKind","CANCEL","CANCEL_COMPLETE","CLOSE","ENQUEUE","PULL","PULL_COMPLETE","START_COMPLETE","wrapReason","sourceName","targetName","comObj","callbackId","streamId","streamSinks","streamControllers","callbackCapabilities","actionHandler","_onComObjOnMessage","_processStreamMessage","cbSourceName","cbTargetName","_createStreamSink","ah","sendWithStream","queueingStrategy","controller","startCapability","startCall","pullCall","cancelCall","pull","pullCapability","cancel","cancelCapability","isCancelled","lastDesiredSize","sinkCapability","onPull","onCancel","streamController","_deleteStreamController","removeEventListener","_msgHandler","_contentLength","_fullRequestReader","_rangeRequestReaders","PDFWorkerStreamReader","PDFWorkerStreamRangeReader","_isRangeSupported","_isStreamingSupported","readableStream","_reader","getReader","_headersReady","pdfjsVersion","pdfjsBuild"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"pdf.worker.js","mappings":"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EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,IAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,GAAF,IAAS,KAATA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,GAAVA;EACAA,EAAE,IAAF,IAAU,KAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;EACAA,EAAE,IAAF,IAAU,IAAVA;AAhZkC,EAApC;;AAsZA,IAAMsgH,uCAAuC3qF,uCAAsB,UACjE31B,CADiE,EAEjE;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;AAL2C,EAA7C;;AAWA,IAAMugH,oCAAoC5qF,uCAAsB,UAAU31B,CAAV,EAAa;EAC3EA,EAAE,CAAF,IAAO,EAAPA;EACAA,EAAE,CAAF,IAAO,EAAPA;EACAA,EAAE,CAAF,IAAO,GAAPA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,EAAF,IAAQ,EAARA;EACAA,EAAE,EAAF,IAAQ,GAARA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,EAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAAS,GAATA;EACAA,EAAE,GAAF,IAA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","sources":["webpack://pdfjs-dist/build/pdf.worker/webpack/universalModuleDefinition","webpack://pdfjs-dist/build/pdf.worker/src/core/worker.js","webpack://pdfjs-dist/build/pdf.worker/src/shared/util.js","webpack://pdfjs-dist/build/pdf.worker/src/shared/compatibility.js","webpack://pdfjs-dist/build/pdf.worker/src/shared/is_node.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/es/promise/index.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.aggregate-error.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.aggregate-error.constructor.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/export.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/global.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/descriptors.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/fails.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/function-call.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/function-bind-native.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-property-is-enumerable.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/create-property-descriptor.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/to-indexed-object.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/indexed-object.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/function-uncurry-this.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/classof-raw.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/require-object-coercible.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/is-null-or-undefined.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/to-property-key.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/to-primitive.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/is-object.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/is-callable.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/is-symbol.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/get-built-in.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-is-prototype-of.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/use-symbol-as-uid.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/symbol-constructor-detection.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/engine-v8-version.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/engine-user-agent.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/get-method.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/a-callable.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/try-to-string.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/ordinary-to-primitive.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/well-known-symbol.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/shared.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/is-pure.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/shared-store.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/define-global-property.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/has-own-property.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/to-object.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/uid.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/ie8-dom-define.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/document-create-element.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/create-non-enumerable-property.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-define-property.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/an-object.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/define-built-in.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/make-built-in.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/function-name.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/inspect-source.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/internal-state.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/weak-map-basic-detection.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/shared-key.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/hidden-keys.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/copy-constructor-properties.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/own-keys.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-get-own-property-names.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-keys-internal.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/array-includes.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/to-absolute-index.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/to-integer-or-infinity.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/math-trunc.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/length-of-array-like.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/to-length.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/enum-bug-keys.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/is-forced.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-get-prototype-of.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/correct-prototype-getter.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-set-prototype-of.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/a-possible-prototype.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-create.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-define-properties.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-keys.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/html.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/error-stack-clear.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/install-error-cause.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/iterate.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/function-bind-context.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/is-array-iterator-method.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/iterators.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/get-iterator.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/get-iterator-method.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/classof.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/to-string-tag-support.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/iterator-close.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/normalize-string-argument.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/to-string.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/error-stack-installable.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.array.iterator.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/add-to-unscopables.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/iterator-define.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/iterator-create-constructor.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/iterators-core.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/set-to-string-tag.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/create-iter-result-object.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.object.to-string.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-to-string.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.promise.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.promise.constructor.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/engine-is-node.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/set-species.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/an-instance.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/species-constructor.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/a-constructor.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/is-constructor.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/task.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/function-apply.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/array-slice.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/validate-arguments-length.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/engine-is-ios.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/microtask.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/engine-is-ios-pebble.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/engine-is-webos-webkit.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/host-report-errors.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/perform.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/queue.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/promise-native-constructor.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/promise-constructor-detection.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/engine-is-browser.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/engine-is-deno.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/new-promise-capability.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.promise.all.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/promise-statics-incorrect-iteration.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.promise.catch.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.promise.race.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.promise.reject.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.promise.resolve.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/promise-resolve.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.promise.all-settled.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.promise.any.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.promise.finally.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.string.iterator.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/string-multibyte.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/path.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/web/structured-clone.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.map.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.map.constructor.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/collection.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/internal-metadata.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/array-slice-simple.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/create-property.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/object-is-extensible.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/array-buffer-non-extensible.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/freezing.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/inherit-if-required.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/collection-strong.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/define-built-ins.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.set.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/es.set.constructor.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/modules/web.structured-clone.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/regexp-get-flags.js","webpack://pdfjs-dist/build/pdf.worker/node_modules/core-js/internals/regexp-flags.js","webpack://pdfjs-dist/build/pdf.worker/src/core/primitives.js","webpack://pdfjs-dist/build/pdf.worker/src/core/pdf_manager.js","webpack://pdfjs-dist/build/pdf.worker/src/core/chunked_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/core_utils.js","webpack://pdfjs-dist/build/pdf.worker/src/core/base_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/document.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa_fonts.js","webpack://pdfjs-dist/build/pdf.worker/src/core/calibri_factors.js","webpack://pdfjs-dist/build/pdf.worker/src/core/helvetica_factors.js","webpack://pdfjs-dist/build/pdf.worker/src/core/liberationsans_widths.js","webpack://pdfjs-dist/build/pdf.worker/src/core/myriadpro_factors.js","webpack://pdfjs-dist/build/pdf.worker/src/core/segoeui_factors.js","webpack://pdfjs-dist/build/pdf.worker/src/core/fonts_utils.js","webpack://pdfjs-dist/build/pdf.worker/src/core/encodings.js","webpack://pdfjs-dist/build/pdf.worker/src/core/glyphlist.js","webpack://pdfjs-dist/build/pdf.worker/src/core/unicode.js","webpack://pdfjs-dist/build/pdf.worker/src/core/annotation.js","webpack://pdfjs-dist/build/pdf.worker/src/core/default_appearance.js","webpack://pdfjs-dist/build/pdf.worker/src/core/colorspace.js","webpack://pdfjs-dist/build/pdf.worker/src/core/evaluator.js","webpack://pdfjs-dist/build/pdf.worker/src/core/cmap.js","webpack://pdfjs-dist/build/pdf.worker/src/core/parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/ascii_85_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/decode_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/ascii_hex_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/ccitt_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/ccitt.js","webpack://pdfjs-dist/build/pdf.worker/src/core/flate_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jbig2_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jbig2.js","webpack://pdfjs-dist/build/pdf.worker/src/core/arithmetic_decoder.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jpeg_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jpg.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jpx_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/jpx.js","webpack://pdfjs-dist/build/pdf.worker/src/core/lzw_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/predictor_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/run_length_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/fonts.js","webpack://pdfjs-dist/build/pdf.worker/src/core/cff_parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/charsets.js","webpack://pdfjs-dist/build/pdf.worker/src/core/standard_fonts.js","webpack://pdfjs-dist/build/pdf.worker/src/core/to_unicode_map.js","webpack://pdfjs-dist/build/pdf.worker/src/core/cff_font.js","webpack://pdfjs-dist/build/pdf.worker/src/core/font_renderer.js","webpack://pdfjs-dist/build/pdf.worker/src/core/metrics.js","webpack://pdfjs-dist/build/pdf.worker/src/core/glyf.js","webpack://pdfjs-dist/build/pdf.worker/src/core/opentype_file_builder.js","webpack://pdfjs-dist/build/pdf.worker/src/core/type1_font.js","webpack://pdfjs-dist/build/pdf.worker/src/core/type1_parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/pattern.js","webpack://pdfjs-dist/build/pdf.worker/src/core/function.js","webpack://pdfjs-dist/build/pdf.worker/src/core/ps_parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/image_utils.js","webpack://pdfjs-dist/build/pdf.worker/src/core/bidi.js","webpack://pdfjs-dist/build/pdf.worker/src/shared/murmurhash3.js","webpack://pdfjs-dist/build/pdf.worker/src/core/operator_list.js","webpack://pdfjs-dist/build/pdf.worker/src/core/image.js","webpack://pdfjs-dist/build/pdf.worker/src/shared/image_utils.js","webpack://pdfjs-dist/build/pdf.worker/src/core/bounding_boxes.js","webpack://pdfjs-dist/build/pdf.worker/src/core/catalog.js","webpack://pdfjs-dist/build/pdf.worker/src/core/name_number_tree.js","webpack://pdfjs-dist/build/pdf.worker/src/core/cleanup_helper.js","webpack://pdfjs-dist/build/pdf.worker/src/core/file_spec.js","webpack://pdfjs-dist/build/pdf.worker/src/core/metadata_parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xml_parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/struct_tree.js","webpack://pdfjs-dist/build/pdf.worker/src/core/object_loader.js","webpack://pdfjs-dist/build/pdf.worker/src/core/writer.js","webpack://pdfjs-dist/build/pdf.worker/src/core/crypto.js","webpack://pdfjs-dist/build/pdf.worker/src/core/decrypt_stream.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/factory.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/xfa_object.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/utils.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/namespaces.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/som.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/bind.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/template.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/layout.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/html_utils.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/fonts.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/text.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/data.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/parser.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/builder.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/setup.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/config.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/connection_set.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/datasets.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/locale_set.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/signature.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/stylesheet.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/xdp.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/xhtml.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xfa/unknown.js","webpack://pdfjs-dist/build/pdf.worker/src/core/dataset_reader.js","webpack://pdfjs-dist/build/pdf.worker/src/core/xref.js","webpack://pdfjs-dist/build/pdf.worker/src/shared/message_handler.js","webpack://pdfjs-dist/build/pdf.worker/src/core/worker_stream.js","webpack://pdfjs-dist/build/pdf.worker/webpack/bootstrap","webpack://pdfjs-dist/build/pdf.worker/webpack/runtime/define property getters","webpack://pdfjs-dist/build/pdf.worker/webpack/runtime/hasOwnProperty shorthand","webpack://pdfjs-dist/build/pdf.worker/webpack/runtime/make namespace object","webpack://pdfjs-dist/build/pdf.worker/src/pdf.worker.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf.worker\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf.worker\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf.worker\"] = factory();\n})(this, () => {\nreturn ","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AbortException,\n arrayByteLength,\n arraysToBytes,\n createPromiseCapability,\n getVerbosityLevel,\n info,\n InvalidPDFException,\n MissingPDFException,\n PasswordException,\n setVerbosityLevel,\n stringToPDFString,\n UnexpectedResponseException,\n UnknownErrorException,\n UNSUPPORTED_FEATURES,\n VerbosityLevel,\n warn,\n} from \"../shared/util.js\";\nimport { Dict, Ref } from \"./primitives.js\";\nimport { LocalPdfManager, NetworkPdfManager } from \"./pdf_manager.js\";\nimport { clearGlobalCaches } from \"./cleanup_helper.js\";\nimport { incrementalUpdate } from \"./writer.js\";\nimport { isNodeJS } from \"../shared/is_node.js\";\nimport { MessageHandler } from \"../shared/message_handler.js\";\nimport { PDFWorkerStream } from \"./worker_stream.js\";\nimport { XRefParseException } from \"./core_utils.js\";\n\nclass WorkerTask {\n constructor(name) {\n this.name = name;\n this.terminated = false;\n this._capability = createPromiseCapability();\n }\n\n get finished() {\n return this._capability.promise;\n }\n\n finish() {\n this._capability.resolve();\n }\n\n terminate() {\n this.terminated = true;\n }\n\n ensureNotTerminated() {\n if (this.terminated) {\n throw new Error(\"Worker task was terminated\");\n }\n }\n}\n\nclass WorkerMessageHandler {\n static setup(handler, port) {\n let testMessageProcessed = false;\n handler.on(\"test\", function wphSetupTest(data) {\n if (testMessageProcessed) {\n return; // we already processed 'test' message once\n }\n testMessageProcessed = true;\n\n // Ensure that `TypedArray`s can be sent to the worker.\n handler.send(\"test\", data instanceof Uint8Array);\n });\n\n handler.on(\"configure\", function wphConfigure(data) {\n setVerbosityLevel(data.verbosity);\n });\n\n handler.on(\"GetDocRequest\", function wphSetupDoc(data) {\n return WorkerMessageHandler.createDocumentHandler(data, port);\n });\n }\n\n static createDocumentHandler(docParams, port) {\n // This context is actually holds references on pdfManager and handler,\n // until the latter is destroyed.\n let pdfManager;\n let terminated = false;\n let cancelXHRs = null;\n const WorkerTasks = [];\n const verbosity = getVerbosityLevel();\n\n const apiVersion = docParams.apiVersion;\n const workerVersion =\n typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"TESTING\")\n ? PDFJSDev.eval(\"BUNDLE_VERSION\")\n : null;\n if (apiVersion !== workerVersion) {\n throw new Error(\n `The API version \"${apiVersion}\" does not match ` +\n `the Worker version \"${workerVersion}\".`\n );\n }\n\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n // Fail early, and predictably, rather than having (some) fonts fail to\n // load/render with slightly cryptic error messages in environments where\n // the `Array.prototype` has been *incorrectly* extended.\n //\n // PLEASE NOTE: We do *not* want to slow down font parsing by adding\n // `hasOwnProperty` checks all over the code-base.\n const enumerableProperties = [];\n for (const property in []) {\n enumerableProperties.push(property);\n }\n if (enumerableProperties.length) {\n throw new Error(\n \"The `Array.prototype` contains unexpected enumerable properties: \" +\n enumerableProperties.join(\", \") +\n \"; thus breaking e.g. `for...in` iteration of `Array`s.\"\n );\n }\n\n // Ensure that (primarily) Node.js users won't accidentally attempt to use\n // a non-translated/non-polyfilled build of the library, since that would\n // quickly fail anyway because of missing functionality.\n if (typeof ReadableStream === \"undefined\") {\n const partialMsg =\n \"The browser/environment lacks native support for critical \" +\n \"functionality used by the PDF.js library (e.g. `ReadableStream`); \";\n\n if (isNodeJS) {\n throw new Error(partialMsg + \"please use a `legacy`-build instead.\");\n }\n throw new Error(partialMsg + \"please update to a supported browser.\");\n }\n }\n\n const docId = docParams.docId;\n const docBaseUrl = docParams.docBaseUrl;\n const workerHandlerName = docParams.docId + \"_worker\";\n let handler = new MessageHandler(workerHandlerName, docId, port);\n\n function ensureNotTerminated() {\n if (terminated) {\n throw new Error(\"Worker was terminated\");\n }\n }\n\n function startWorkerTask(task) {\n WorkerTasks.push(task);\n }\n\n function finishWorkerTask(task) {\n task.finish();\n const i = WorkerTasks.indexOf(task);\n WorkerTasks.splice(i, 1);\n }\n\n async function loadDocument(recoveryMode) {\n await pdfManager.ensureDoc(\"checkHeader\");\n await pdfManager.ensureDoc(\"parseStartXRef\");\n await pdfManager.ensureDoc(\"parse\", [recoveryMode]);\n\n // Check that at least the first page can be successfully loaded,\n // since otherwise the XRef table is definitely not valid.\n await pdfManager.ensureDoc(\"checkFirstPage\", [recoveryMode]);\n // Check that the last page can be successfully loaded, to ensure that\n // `numPages` is correct, and fallback to walking the entire /Pages-tree.\n await pdfManager.ensureDoc(\"checkLastPage\", [recoveryMode]);\n\n const isPureXfa = await pdfManager.ensureDoc(\"isPureXfa\");\n if (isPureXfa) {\n const task = new WorkerTask(\"loadXfaFonts\");\n startWorkerTask(task);\n await Promise.all([\n pdfManager\n .loadXfaFonts(handler, task)\n .catch(reason => {\n // Ignore errors, to allow the document to load.\n })\n .then(() => finishWorkerTask(task)),\n pdfManager.loadXfaImages(),\n ]);\n }\n\n const [numPages, fingerprints, structureTree] = await Promise.all([\n pdfManager.ensureDoc(\"numPages\"),\n pdfManager.ensureDoc(\"fingerprints\"),\n pdfManager.ensureDoc('structureTree'),\n ]);\n\n // Get htmlForXfa after numPages to avoid to create HTML twice.\n const htmlForXfa = isPureXfa\n ? await pdfManager.ensureDoc(\"htmlForXfa\")\n : null;\n\n return { numPages, fingerprints, htmlForXfa, structureTree };\n }\n\n function getPdfManager(data, evaluatorOptions, enableXfa) {\n const pdfManagerCapability = createPromiseCapability();\n let newPdfManager;\n\n const source = data.source;\n if (source.data) {\n try {\n newPdfManager = new LocalPdfManager(\n docId,\n source.data,\n source.password,\n handler,\n evaluatorOptions,\n enableXfa,\n docBaseUrl\n );\n pdfManagerCapability.resolve(newPdfManager);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n }\n return pdfManagerCapability.promise;\n }\n\n let pdfStream,\n cachedChunks = [];\n try {\n pdfStream = new PDFWorkerStream(handler);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n return pdfManagerCapability.promise;\n }\n\n const fullRequest = pdfStream.getFullReader();\n fullRequest.headersReady\n .then(function () {\n if (!fullRequest.isRangeSupported) {\n return;\n }\n\n // We don't need auto-fetch when streaming is enabled.\n const disableAutoFetch =\n source.disableAutoFetch || fullRequest.isStreamingSupported;\n newPdfManager = new NetworkPdfManager(\n docId,\n pdfStream,\n {\n msgHandler: handler,\n password: source.password,\n length: fullRequest.contentLength,\n disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize,\n },\n evaluatorOptions,\n enableXfa,\n docBaseUrl\n );\n // There may be a chance that `newPdfManager` is not initialized for\n // the first few runs of `readchunk` block of code. Be sure to send\n // all cached chunks, if any, to chunked_stream via pdf_manager.\n for (let i = 0; i < cachedChunks.length; i++) {\n newPdfManager.sendProgressiveData(cachedChunks[i]);\n }\n\n cachedChunks = [];\n pdfManagerCapability.resolve(newPdfManager);\n cancelXHRs = null;\n })\n .catch(function (reason) {\n pdfManagerCapability.reject(reason);\n cancelXHRs = null;\n });\n\n let loaded = 0;\n const flushChunks = function () {\n const pdfFile = arraysToBytes(cachedChunks);\n if (source.length && pdfFile.length !== source.length) {\n warn(\"reported HTTP length is different from actual\");\n }\n // the data is array, instantiating directly from it\n try {\n newPdfManager = new LocalPdfManager(\n docId,\n pdfFile,\n source.password,\n handler,\n evaluatorOptions,\n enableXfa,\n docBaseUrl\n );\n pdfManagerCapability.resolve(newPdfManager);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n }\n cachedChunks = [];\n };\n const readPromise = new Promise(function (resolve, reject) {\n const readChunk = function ({ value, done }) {\n try {\n ensureNotTerminated();\n if (done) {\n if (!newPdfManager) {\n flushChunks();\n }\n cancelXHRs = null;\n return;\n }\n\n loaded += arrayByteLength(value);\n if (!fullRequest.isStreamingSupported) {\n handler.send(\"DocProgress\", {\n loaded,\n total: Math.max(loaded, fullRequest.contentLength || 0),\n });\n }\n\n if (newPdfManager) {\n newPdfManager.sendProgressiveData(value);\n } else {\n cachedChunks.push(value);\n }\n\n fullRequest.read().then(readChunk, reject);\n } catch (e) {\n reject(e);\n }\n };\n fullRequest.read().then(readChunk, reject);\n });\n readPromise.catch(function (e) {\n pdfManagerCapability.reject(e);\n cancelXHRs = null;\n });\n\n cancelXHRs = function (reason) {\n pdfStream.cancelAllRequests(reason);\n };\n\n return pdfManagerCapability.promise;\n }\n\n function setupDoc(data) {\n function onSuccess(doc) {\n ensureNotTerminated();\n handler.send(\"GetDoc\", { pdfInfo: doc });\n }\n\n function onFailure(ex) {\n ensureNotTerminated();\n\n if (ex instanceof PasswordException) {\n const task = new WorkerTask(`PasswordException: response ${ex.code}`);\n startWorkerTask(task);\n\n handler\n .sendWithPromise(\"PasswordRequest\", ex)\n .then(function ({ password }) {\n finishWorkerTask(task);\n pdfManager.updatePassword(password);\n pdfManagerReady();\n })\n .catch(function () {\n finishWorkerTask(task);\n handler.send(\"DocException\", ex);\n });\n } else if (\n ex instanceof InvalidPDFException ||\n ex instanceof MissingPDFException ||\n ex instanceof UnexpectedResponseException ||\n ex instanceof UnknownErrorException\n ) {\n handler.send(\"DocException\", ex);\n } else {\n handler.send(\n \"DocException\",\n new UnknownErrorException(ex.message, ex.toString())\n );\n }\n }\n\n function pdfManagerReady() {\n ensureNotTerminated();\n\n loadDocument(false).then(onSuccess, function (reason) {\n ensureNotTerminated();\n\n // Try again with recoveryMode == true\n if (!(reason instanceof XRefParseException)) {\n onFailure(reason);\n return;\n }\n pdfManager.requestLoadedStream();\n pdfManager.onLoadedStream().then(function () {\n ensureNotTerminated();\n\n loadDocument(true).then(onSuccess, onFailure);\n });\n });\n }\n\n ensureNotTerminated();\n\n const evaluatorOptions = {\n maxImageSize: data.maxImageSize,\n disableFontFace: data.disableFontFace,\n ignoreErrors: data.ignoreErrors,\n isEvalSupported: data.isEvalSupported,\n fontExtraProperties: data.fontExtraProperties,\n useSystemFonts: data.useSystemFonts,\n cMapUrl: data.cMapUrl,\n standardFontDataUrl: data.standardFontDataUrl,\n };\n\n getPdfManager(data, evaluatorOptions, data.enableXfa)\n .then(function (newPdfManager) {\n if (terminated) {\n // We were in a process of setting up the manager, but it got\n // terminated in the middle.\n newPdfManager.terminate(\n new AbortException(\"Worker was terminated.\")\n );\n throw new Error(\"Worker was terminated\");\n }\n pdfManager = newPdfManager;\n\n pdfManager.onLoadedStream().then(function (stream) {\n handler.send(\"DataLoaded\", { length: stream.bytes.byteLength });\n });\n })\n .then(pdfManagerReady, onFailure);\n }\n\n handler.on(\"GetPage\", function wphSetupGetPage(data) {\n return pdfManager.getPage(data.pageIndex).then(function (page) {\n return Promise.all([\n pdfManager.ensure(page, \"rotate\"),\n pdfManager.ensure(page, \"ref\"),\n pdfManager.ensure(page, \"userUnit\"),\n pdfManager.ensure(page, \"view\"),\n ]).then(function ([rotate, ref, userUnit, view]) {\n return {\n rotate,\n ref,\n userUnit,\n view,\n };\n });\n });\n });\n\n handler.on(\"GetPageIndex\", function wphSetupGetPageIndex(data) {\n const pageRef = Ref.get(data.num, data.gen);\n return pdfManager.ensureCatalog(\"getPageIndex\", [pageRef]);\n });\n\n handler.on(\"GetDestinations\", function wphSetupGetDestinations(data) {\n return pdfManager.ensureCatalog(\"destinations\");\n });\n\n handler.on(\"GetDestination\", function wphSetupGetDestination(data) {\n return pdfManager.ensureCatalog(\"getDestination\", [data.id]);\n });\n\n handler.on(\"GetPageLabels\", function wphSetupGetPageLabels(data) {\n return pdfManager.ensureCatalog(\"pageLabels\");\n });\n\n handler.on(\"GetPageLayout\", function wphSetupGetPageLayout(data) {\n return pdfManager.ensureCatalog(\"pageLayout\");\n });\n\n handler.on(\"GetPageMode\", function wphSetupGetPageMode(data) {\n return pdfManager.ensureCatalog(\"pageMode\");\n });\n\n handler.on(\"GetViewerPreferences\", function (data) {\n return pdfManager.ensureCatalog(\"viewerPreferences\");\n });\n\n handler.on(\"GetOpenAction\", function (data) {\n return pdfManager.ensureCatalog(\"openAction\");\n });\n\n handler.on(\"GetAttachments\", function wphSetupGetAttachments(data) {\n return pdfManager.ensureCatalog(\"attachments\");\n });\n\n handler.on(\"GetJavaScript\", function wphSetupGetJavaScript(data) {\n return pdfManager.ensureCatalog(\"javaScript\");\n });\n\n handler.on(\"GetDocJSActions\", function wphSetupGetDocJSActions(data) {\n return pdfManager.ensureCatalog(\"jsActions\");\n });\n\n handler.on(\"GetPageJSActions\", function ({ pageIndex }) {\n return pdfManager.getPage(pageIndex).then(function (page) {\n return pdfManager.ensure(page, \"jsActions\");\n });\n });\n\n handler.on(\"GetOutline\", function wphSetupGetOutline(data) {\n return pdfManager.ensureCatalog(\"documentOutline\");\n });\n\n handler.on(\"GetOptionalContentConfig\", function (data) {\n return pdfManager.ensureCatalog(\"optionalContentConfig\");\n });\n\n handler.on(\"GetPermissions\", function (data) {\n return pdfManager.ensureCatalog(\"permissions\");\n });\n\n handler.on(\"GetMetadata\", function wphSetupGetMetadata(data) {\n return Promise.all([\n pdfManager.ensureDoc(\"documentInfo\"),\n pdfManager.ensureCatalog(\"metadata\"),\n ]);\n });\n\n handler.on(\"GetMarkInfo\", function wphSetupGetMarkInfo(data) {\n return pdfManager.ensureCatalog(\"markInfo\");\n });\n\n handler.on(\"GetData\", function wphSetupGetData(data) {\n pdfManager.requestLoadedStream();\n return pdfManager.onLoadedStream().then(function (stream) {\n return stream.bytes;\n });\n });\n\n handler.on(\"GetAnnotations\", function ({ pageIndex, intent }) {\n return pdfManager.getPage(pageIndex).then(function (page) {\n return page.getAnnotationsData(intent);\n });\n });\n\n handler.on(\"GetFieldObjects\", function (data) {\n return pdfManager.ensureDoc(\"fieldObjects\");\n });\n\n handler.on(\"HasJSActions\", function (data) {\n return pdfManager.ensureDoc(\"hasJSActions\");\n });\n\n handler.on(\"GetCalculationOrderIds\", function (data) {\n return pdfManager.ensureDoc(\"calculationOrderIds\");\n });\n\n handler.on(\n \"SaveDocument\",\n function ({ isPureXfa, numPages, annotationStorage, filename }) {\n pdfManager.requestLoadedStream();\n\n const promises = [\n pdfManager.onLoadedStream(),\n pdfManager.ensureCatalog(\"acroForm\"),\n pdfManager.ensureCatalog(\"acroFormRef\"),\n pdfManager.ensureDoc(\"xref\"),\n pdfManager.ensureDoc(\"startXRef\"),\n ];\n\n if (isPureXfa) {\n promises.push(pdfManager.serializeXfaData(annotationStorage));\n } else {\n for (let pageIndex = 0; pageIndex < numPages; pageIndex++) {\n promises.push(\n pdfManager.getPage(pageIndex).then(function (page) {\n const task = new WorkerTask(`Save: page ${pageIndex}`);\n return page\n .save(handler, task, annotationStorage)\n .finally(function () {\n finishWorkerTask(task);\n });\n })\n );\n }\n }\n\n return Promise.all(promises).then(function ([\n stream,\n acroForm,\n acroFormRef,\n xref,\n startXRef,\n ...refs\n ]) {\n let newRefs = [];\n let xfaData = null;\n if (isPureXfa) {\n xfaData = refs[0];\n if (!xfaData) {\n return stream.bytes;\n }\n } else {\n for (const ref of refs) {\n newRefs = ref\n .filter(x => x !== null)\n .reduce((a, b) => a.concat(b), newRefs);\n }\n\n if (newRefs.length === 0) {\n // No new refs so just return the initial bytes\n return stream.bytes;\n }\n }\n\n const xfa = (acroForm instanceof Dict && acroForm.get(\"XFA\")) || null;\n let xfaDatasetsRef = null;\n let hasXfaDatasetsEntry = false;\n if (Array.isArray(xfa)) {\n for (let i = 0, ii = xfa.length; i < ii; i += 2) {\n if (xfa[i] === \"datasets\") {\n xfaDatasetsRef = xfa[i + 1];\n acroFormRef = null;\n hasXfaDatasetsEntry = true;\n }\n }\n if (xfaDatasetsRef === null) {\n xfaDatasetsRef = xref.getNewRef();\n }\n } else if (xfa) {\n acroFormRef = null;\n // TODO: Support XFA streams.\n warn(\"Unsupported XFA type.\");\n }\n\n let newXrefInfo = Object.create(null);\n if (xref.trailer) {\n // Get string info from Info in order to compute fileId.\n const infoObj = Object.create(null);\n const xrefInfo = xref.trailer.get(\"Info\") || null;\n if (xrefInfo instanceof Dict) {\n xrefInfo.forEach((key, value) => {\n if (typeof value === \"string\") {\n infoObj[key] = stringToPDFString(value);\n }\n });\n }\n\n newXrefInfo = {\n rootRef: xref.trailer.getRaw(\"Root\") || null,\n encryptRef: xref.trailer.getRaw(\"Encrypt\") || null,\n newRef: xref.getNewRef(),\n infoRef: xref.trailer.getRaw(\"Info\") || null,\n info: infoObj,\n fileIds: xref.trailer.get(\"ID\") || null,\n startXRef,\n filename,\n };\n }\n xref.resetNewRef();\n\n return incrementalUpdate({\n originalData: stream.bytes,\n xrefInfo: newXrefInfo,\n newRefs,\n xref,\n hasXfa: !!xfa,\n xfaDatasetsRef,\n hasXfaDatasetsEntry,\n acroFormRef,\n acroForm,\n xfaData,\n });\n });\n }\n );\n\n handler.on(\"GetOperatorList\", function wphSetupRenderPage(data, sink) {\n const pageIndex = data.pageIndex;\n pdfManager.getPage(pageIndex).then(function (page) {\n const task = new WorkerTask(`GetOperatorList: page ${pageIndex}`);\n startWorkerTask(task);\n\n // NOTE: Keep this condition in sync with the `info` helper function.\n const start = verbosity >= VerbosityLevel.INFOS ? Date.now() : 0;\n\n // Pre compile the pdf page and fetch the fonts/images.\n page\n .getOperatorList({\n handler,\n sink,\n task,\n intent: data.intent,\n cacheKey: data.cacheKey,\n annotationStorage: data.annotationStorage,\n })\n .then(\n function (operatorListInfo) {\n finishWorkerTask(task);\n\n if (start) {\n info(\n `page=${pageIndex + 1} - getOperatorList: time=` +\n `${Date.now() - start}ms, len=${operatorListInfo.length}`\n );\n }\n sink.close();\n },\n function (reason) {\n finishWorkerTask(task);\n if (task.terminated) {\n return; // ignoring errors from the terminated thread\n }\n // For compatibility with older behavior, generating unknown\n // unsupported feature notification on errors.\n handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorOperatorList,\n });\n\n sink.error(reason);\n\n // TODO: Should `reason` be re-thrown here (currently that casues\n // \"Uncaught exception: ...\" messages in the console)?\n }\n );\n });\n });\n\n handler.on(\"GetTextContent\", function wphExtractText(data, sink) {\n const pageIndex = data.pageIndex;\n\n pdfManager.getPage(pageIndex).then(function (page) {\n const task = new WorkerTask(\"GetTextContent: page \" + pageIndex);\n startWorkerTask(task);\n\n // NOTE: Keep this condition in sync with the `info` helper function.\n const start = verbosity >= VerbosityLevel.INFOS ? Date.now() : 0;\n\n page\n .extractTextContent({\n handler,\n task,\n sink,\n includeMarkedContent: data.includeMarkedContent,\n combineTextItems: data.combineTextItems,\n })\n .then(\n function () {\n finishWorkerTask(task);\n\n if (start) {\n info(\n `page=${pageIndex + 1} - getTextContent: time=` +\n `${Date.now() - start}ms`\n );\n }\n sink.close();\n },\n function (reason) {\n finishWorkerTask(task);\n if (task.terminated) {\n return; // ignoring errors from the terminated thread\n }\n sink.error(reason);\n\n // TODO: Should `reason` be re-thrown here (currently that casues\n // \"Uncaught exception: ...\" messages in the console)?\n }\n );\n });\n });\n\n handler.on(\"GetStructTree\", function wphGetStructTree(data) {\n return pdfManager.getPage(data.pageIndex).then(function (page) {\n return pdfManager.ensure(page, \"getStructTree\");\n });\n });\n\n handler.on(\"FontFallback\", function (data) {\n return pdfManager.fontFallback(data.id, handler);\n });\n\n handler.on(\"Cleanup\", function wphCleanup(data) {\n return pdfManager.cleanup(/* manuallyTriggered = */ true);\n });\n\n handler.on(\"Terminate\", function wphTerminate(data) {\n terminated = true;\n\n const waitOn = [];\n if (pdfManager) {\n pdfManager.terminate(new AbortException(\"Worker was terminated.\"));\n\n const cleanupPromise = pdfManager.cleanup();\n waitOn.push(cleanupPromise);\n\n pdfManager = null;\n } else {\n clearGlobalCaches();\n }\n if (cancelXHRs) {\n cancelXHRs(new AbortException(\"Worker was terminated.\"));\n }\n\n for (const task of WorkerTasks) {\n waitOn.push(task.finished);\n task.terminate();\n }\n\n return Promise.all(waitOn).then(function () {\n // Notice that even if we destroying handler, resolved response promise\n // must be sent back.\n handler.destroy();\n handler = null;\n });\n });\n\n handler.on(\"Ready\", function wphReady(data) {\n setupDoc(docParams);\n docParams = null; // we don't need docParams anymore -- saving memory.\n });\n return workerHandlerName;\n }\n\n static initializeFromPort(port) {\n const handler = new MessageHandler(\"worker\", \"main\", port);\n WorkerMessageHandler.setup(handler, port);\n handler.send(\"ready\", null);\n }\n}\n\nfunction isMessagePort(maybePort) {\n return (\n typeof maybePort.postMessage === \"function\" && \"onmessage\" in maybePort\n );\n}\n\n// Worker thread (and not Node.js)?\nif (\n typeof window === \"undefined\" &&\n !isNodeJS &&\n typeof self !== \"undefined\" &&\n isMessagePort(self)\n) {\n WorkerMessageHandler.initializeFromPort(self);\n}\n\nexport { WorkerMessageHandler, WorkerTask };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport \"./compatibility.js\";\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\n/**\n * Refer to the `WorkerTransport.getRenderingIntent`-method in the API, to see\n * how these flags are being used:\n * - ANY, DISPLAY, and PRINT are the normal rendering intents, note the\n * `PDFPageProxy.{render, getOperatorList, getAnnotations}`-methods.\n * - ANNOTATIONS_FORMS, ANNOTATIONS_STORAGE, ANNOTATIONS_DISABLE control which\n * annotations are rendered onto the canvas (i.e. by being included in the\n * operatorList), note the `PDFPageProxy.{render, getOperatorList}`-methods\n * and their `annotationMode`-option.\n * - OPLIST is used with the `PDFPageProxy.getOperatorList`-method, note the\n * `OperatorList`-constructor (on the worker-thread).\n */\nconst RenderingIntentFlag = {\n ANY: 0x01,\n DISPLAY: 0x02,\n PRINT: 0x04,\n ANNOTATIONS_FORMS: 0x10,\n ANNOTATIONS_STORAGE: 0x20,\n ANNOTATIONS_DISABLE: 0x40,\n OPLIST: 0x100,\n};\n\nconst AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3,\n};\n\n// Permission flags from Table 22, Section 7.6.3.2 of the PDF specification.\nconst PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800,\n};\n\nconst TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4,\n};\n\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3,\n};\n\nconst AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26,\n};\n\nconst AnnotationStateModelType = {\n MARKED: \"Marked\",\n REVIEW: \"Review\",\n};\n\nconst AnnotationMarkedState = {\n MARKED: \"Marked\",\n UNMARKED: \"Unmarked\",\n};\n\nconst AnnotationReviewState = {\n ACCEPTED: \"Accepted\",\n REJECTED: \"Rejected\",\n CANCELLED: \"Cancelled\",\n COMPLETED: \"Completed\",\n NONE: \"None\",\n};\n\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\",\n};\n\nconst AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200,\n};\n\nconst AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000,\n};\n\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5,\n};\n\nconst AnnotationActionEventType = {\n E: \"Mouse Enter\",\n X: \"Mouse Exit\",\n D: \"Mouse Down\",\n U: \"Mouse Up\",\n Fo: \"Focus\",\n Bl: \"Blur\",\n PO: \"PageOpen\",\n PC: \"PageClose\",\n PV: \"PageVisible\",\n PI: \"PageInvisible\",\n K: \"Keystroke\",\n F: \"Format\",\n V: \"Validate\",\n C: \"Calculate\",\n};\n\nconst DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\",\n};\n\nconst PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\",\n};\n\nconst StreamType = {\n UNKNOWN: \"UNKNOWN\",\n FLATE: \"FLATE\",\n LZW: \"LZW\",\n DCT: \"DCT\",\n JPX: \"JPX\",\n JBIG: \"JBIG\",\n A85: \"A85\",\n AHX: \"AHX\",\n CCF: \"CCF\",\n RLX: \"RLX\", // PDF short name is 'RL', but telemetry requires three chars.\n};\n\nconst FontType = {\n UNKNOWN: \"UNKNOWN\",\n TYPE1: \"TYPE1\",\n TYPE1STANDARD: \"TYPE1STANDARD\",\n TYPE1C: \"TYPE1C\",\n CIDFONTTYPE0: \"CIDFONTTYPE0\",\n CIDFONTTYPE0C: \"CIDFONTTYPE0C\",\n TRUETYPE: \"TRUETYPE\",\n CIDFONTTYPE2: \"CIDFONTTYPE2\",\n TYPE3: \"TYPE3\",\n OPENTYPE: \"OPENTYPE\",\n TYPE0: \"TYPE0\",\n MMTYPE1: \"MMTYPE1\",\n};\n\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5,\n};\n\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2,\n};\n\n// All the possible operations for an operator list.\nconst OPS = {\n // Intentionally start from 1 so it is easy to spot bad operators that will be\n // 0's.\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotations: 78,\n endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n /** @deprecated unused */\n paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91,\n boundingBoxes: 100,\n operationPosition: 101\n};\n\nconst UNSUPPORTED_FEATURES = {\n /** @deprecated unused */\n unknown: \"unknown\",\n forms: \"forms\",\n javaScript: \"javaScript\",\n signatures: \"signatures\",\n smask: \"smask\",\n shadingPattern: \"shadingPattern\",\n /** @deprecated unused */\n font: \"font\",\n errorTilingPattern: \"errorTilingPattern\",\n errorExtGState: \"errorExtGState\",\n errorXObject: \"errorXObject\",\n errorFontLoadType3: \"errorFontLoadType3\",\n errorFontState: \"errorFontState\",\n errorFontMissing: \"errorFontMissing\",\n errorFontTranslate: \"errorFontTranslate\",\n errorColorSpace: \"errorColorSpace\",\n errorOperatorList: \"errorOperatorList\",\n errorFontToUnicode: \"errorFontToUnicode\",\n errorFontLoadNative: \"errorFontLoadNative\",\n errorFontBuildPath: \"errorFontBuildPath\",\n errorFontGetPath: \"errorFontGetPath\",\n errorMarkedContent: \"errorMarkedContent\",\n errorContentSubStream: \"errorContentSubStream\",\n};\n\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2,\n};\n\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\n\nfunction getVerbosityLevel() {\n return verbosity;\n}\n\n// A notice for devs. These are good for things that are helpful to devs, such\n// as warning that Workers were disabled, which is important to devs but not\n// end users.\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\n\n// Non-fatal warnings.\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log(`Warning: ${msg}`);\n }\n}\n\nfunction unreachable(msg) {\n throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\n\n// Checks if URLs use one of the allowed protocols, e.g. to avoid XSS.\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n switch (url.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Attempts to create a valid absolute URL.\n *\n * @param {URL|string} url - An absolute, or relative, URL.\n * @param {URL|string} [baseUrl] - An absolute URL.\n * @param {Object} [options]\n * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n if (!url) {\n return null;\n }\n try {\n if (options && typeof url === \"string\") {\n // Let URLs beginning with \"www.\" default to using the \"http://\" protocol.\n if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n const dots = url.match(/\\./g);\n // Avoid accidentally matching a *relative* URL pointing to a file named\n // e.g. \"www.pdf\" or similar.\n if (dots && dots.length >= 2) {\n url = `http://${url}`;\n }\n }\n\n // According to ISO 32000-1:2008, section 12.6.4.7, URIs should be encoded\n // in 7-bit ASCII. Some bad PDFs use UTF-8 encoding; see bug 1122280.\n if (options.tryConvertEncoding) {\n try {\n url = stringToUTF8String(url);\n } catch (ex) {}\n }\n }\n\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {\n /* `new URL()` will throw on incorrect data. */\n }\n return null;\n}\n\nfunction shadow(obj, prop, value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n prop in obj,\n `shadow: Property \"${prop && prop.toString()}\" not found in object.`\n );\n }\n Object.defineProperty(obj, prop, {\n value,\n enumerable: true,\n configurable: true,\n writable: false,\n });\n return value;\n}\n\n/**\n * @type {any}\n */\nconst BaseException = (function BaseExceptionClosure() {\n // eslint-disable-next-line no-shadow\n function BaseException(message, name) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n this.message = message;\n this.name = name;\n }\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n\n return BaseException;\n})();\n\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg, \"PasswordException\");\n this.code = code;\n }\n}\n\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg, \"UnknownErrorException\");\n this.details = details;\n }\n}\n\nclass InvalidPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"InvalidPDFException\");\n }\n}\n\nclass MissingPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"MissingPDFException\");\n }\n}\n\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg, \"UnexpectedResponseException\");\n this.status = status;\n }\n}\n\n/**\n * Error caused during parsing PDF data.\n */\nclass FormatError extends BaseException {\n constructor(msg) {\n super(msg, \"FormatError\");\n }\n}\n\n/**\n * Error used to indicate task cancellation.\n */\nclass AbortException extends BaseException {\n constructor(msg) {\n super(msg, \"AbortException\");\n }\n}\n\nfunction bytesToString(bytes) {\n if (\n typeof bytes !== \"object\" ||\n bytes === null ||\n bytes.length === undefined\n ) {\n unreachable(\"Invalid argument for bytesToString\");\n }\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n const strBuf = [];\n for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n const chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n if (typeof str !== \"string\") {\n unreachable(\"Invalid argument for stringToBytes\");\n }\n const length = str.length;\n const bytes = new Uint8Array(length);\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n return bytes;\n}\n\n/**\n * Gets length of the array (Array, Uint8Array, or string) in bytes.\n * @param {Array|Uint8Array|string} arr\n * @returns {number}\n */\n// eslint-disable-next-line consistent-return\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n if (arr.byteLength !== undefined) {\n return arr.byteLength;\n }\n unreachable(\"Invalid argument for arrayByteLength\");\n}\n\n/**\n * Combines array items (arrays) into single Uint8Array object.\n * @param {Array|Uint8Array|string>} arr - the array of the arrays\n * (Array, Uint8Array, or string).\n * @returns {Uint8Array}\n */\nfunction arraysToBytes(arr) {\n const length = arr.length;\n // Shortcut: if first and only item is Uint8Array, return it.\n if (length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n let resultLength = 0;\n for (let i = 0; i < length; i++) {\n resultLength += arrayByteLength(arr[i]);\n }\n let pos = 0;\n const data = new Uint8Array(resultLength);\n for (let i = 0; i < length; i++) {\n let item = arr[i];\n if (!(item instanceof Uint8Array)) {\n if (typeof item === \"string\") {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n const itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n return data;\n}\n\nfunction string32(value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n typeof value === \"number\" && Math.abs(value) < 2 ** 32,\n `string32: Unexpected input \"${value}\".`\n );\n }\n return String.fromCharCode(\n (value >> 24) & 0xff,\n (value >> 16) & 0xff,\n (value >> 8) & 0xff,\n value & 0xff\n );\n}\n\nfunction objectSize(obj) {\n return Object.keys(obj).length;\n}\n\n// Ensure that the returned Object has a `null` prototype; hence why\n// `Object.fromEntries(...)` is not used.\nfunction objectFromMap(map) {\n const obj = Object.create(null);\n for (const [key, value] of map) {\n obj[key] = value;\n }\n return obj;\n}\n\n// Checks the endianness of the platform.\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\n\n// Checks if it's possible to eval JS expressions.\nfunction isEvalSupported() {\n try {\n new Function(\"\"); // eslint-disable-line no-new, no-new-func\n return true;\n } catch (e) {\n return false;\n }\n}\n\nclass FeatureTest {\n static get isLittleEndian() {\n return shadow(this, \"isLittleEndian\", isLittleEndian());\n }\n\n static get isEvalSupported() {\n return shadow(this, \"isEvalSupported\", isEvalSupported());\n }\n\n static get isOffscreenCanvasSupported() {\n return shadow(\n this,\n \"isOffscreenCanvasSupported\",\n typeof OffscreenCanvas !== \"undefined\"\n );\n }\n}\n\nconst hexNumbers = [...Array(256).keys()].map(n =>\n n.toString(16).padStart(2, \"0\")\n);\n\nclass Util {\n static makeHexColor(r, g, b) {\n return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n }\n\n // Apply a scaling matrix to some min/max values.\n // If a scaling factor is negative then min and max must be\n // swaped.\n static scaleMinMax(transform, minMax) {\n let temp;\n if (transform[0]) {\n if (transform[0] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[0];\n minMax[1] *= transform[0];\n\n if (transform[3] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[3];\n minMax[3] *= transform[3];\n } else {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n\n if (transform[1] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[1];\n minMax[3] *= transform[1];\n\n if (transform[2] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[2];\n minMax[1] *= transform[2];\n }\n minMax[0] += transform[4];\n minMax[1] += transform[4];\n minMax[2] += transform[5];\n minMax[3] += transform[5];\n }\n\n // Concatenates two transformation matrices together and returns the result.\n static transform(m1, m2) {\n return [\n m1[0] * m2[0] + m1[2] * m2[1],\n m1[1] * m2[0] + m1[3] * m2[1],\n m1[0] * m2[2] + m1[2] * m2[3],\n m1[1] * m2[2] + m1[3] * m2[3],\n m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n m1[1] * m2[4] + m1[3] * m2[5] + m1[5],\n ];\n }\n\n // For 2d affine transforms\n static applyTransform(p, m) {\n const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n }\n\n static applyInverseTransform(p, m) {\n const d = m[0] * m[3] - m[1] * m[2];\n const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n }\n\n // Applies the transform to the rectangle and finds the minimum axially\n // aligned bounding box.\n static getAxialAlignedBoundingBox(r, m) {\n const p1 = Util.applyTransform(r, m);\n const p2 = Util.applyTransform(r.slice(2, 4), m);\n const p3 = Util.applyTransform([r[0], r[3]], m);\n const p4 = Util.applyTransform([r[2], r[1]], m);\n return [\n Math.min(p1[0], p2[0], p3[0], p4[0]),\n Math.min(p1[1], p2[1], p3[1], p4[1]),\n Math.max(p1[0], p2[0], p3[0], p4[0]),\n Math.max(p1[1], p2[1], p3[1], p4[1]),\n ];\n }\n\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [\n m[3] / d,\n -m[1] / d,\n -m[2] / d,\n m[0] / d,\n (m[2] * m[5] - m[4] * m[3]) / d,\n (m[4] * m[1] - m[5] * m[0]) / d,\n ];\n }\n\n // Apply a generic 3d matrix M on a 3-vector v:\n // | a b c | | X |\n // | d e f | x | Y |\n // | g h i | | Z |\n // M is assumed to be serialized as [a,b,c,d,e,f,g,h,i],\n // with v as [X,Y,Z]\n static apply3dTransform(m, v) {\n return [\n m[0] * v[0] + m[1] * v[1] + m[2] * v[2],\n m[3] * v[0] + m[4] * v[1] + m[5] * v[2],\n m[6] * v[0] + m[7] * v[1] + m[8] * v[2],\n ];\n }\n\n // This calculation uses Singular Value Decomposition.\n // The SVD can be represented with formula A = USV. We are interested in the\n // matrix S here because it represents the scale values.\n static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\n\n // Multiply matrix m with its transpose.\n const a = m[0] * transpose[0] + m[1] * transpose[2];\n const b = m[0] * transpose[1] + m[1] * transpose[3];\n const c = m[2] * transpose[0] + m[3] * transpose[2];\n const d = m[2] * transpose[1] + m[3] * transpose[3];\n\n // Solve the second degree polynomial to get roots.\n const first = (a + d) / 2;\n const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n const sx = first + second || 1;\n const sy = first - second || 1;\n\n // Scale values are the square roots of the eigenvalues.\n return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n\n // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)\n // For coordinate systems whose origin lies in the bottom-left, this\n // means normalization to (BL,TR) ordering. For systems with origin in the\n // top-left, this means (TL,BR) ordering.\n static normalizeRect(rect) {\n const r = rect.slice(0); // clone rect\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n }\n\n // Returns a rectangle [x1, y1, x2, y2] corresponding to the\n // intersection of rect1 and rect2. If no intersection, returns 'null'\n // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n static intersect(rect1, rect2) {\n const xLow = Math.max(\n Math.min(rect1[0], rect1[2]),\n Math.min(rect2[0], rect2[2])\n );\n const xHigh = Math.min(\n Math.max(rect1[0], rect1[2]),\n Math.max(rect2[0], rect2[2])\n );\n if (xLow > xHigh) {\n return null;\n }\n const yLow = Math.max(\n Math.min(rect1[1], rect1[3]),\n Math.min(rect2[1], rect2[3])\n );\n const yHigh = Math.min(\n Math.max(rect1[1], rect1[3]),\n Math.max(rect2[1], rect2[3])\n );\n if (yLow > yHigh) {\n return null;\n }\n\n return [xLow, yLow, xHigh, yHigh];\n }\n\n // From https://github.com/adobe-webplatform/Snap.svg/blob/b365287722a72526000ac4bfcf0ce4cac2faa015/src/path.js#L852\n static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n const tvalues = [],\n bounds = [[], []];\n let a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n for (let i = 0; i < 2; ++i) {\n if (i === 0) {\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n } else {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) < 1e-12) {\n continue;\n }\n t = -c / b;\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n continue;\n }\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = Math.sqrt(b2ac);\n if (b2ac < 0) {\n continue;\n }\n t1 = (-b + sqrtb2ac) / (2 * a);\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n t2 = (-b - sqrtb2ac) / (2 * a);\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n let j = tvalues.length,\n mt;\n const jlen = j;\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] =\n mt * mt * mt * x0 +\n 3 * mt * mt * t * x1 +\n 3 * mt * t * t * x2 +\n t * t * t * x3;\n bounds[1][j] =\n mt * mt * mt * y0 +\n 3 * mt * mt * t * y1 +\n 3 * mt * t * t * y2 +\n t * t * t * y3;\n }\n\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n bounds[0].length = bounds[1].length = jlen + 2;\n\n return [\n Math.min(...bounds[0]),\n Math.min(...bounds[1]),\n Math.max(...bounds[0]),\n Math.max(...bounds[1]),\n ];\n }\n}\n\nconst PDFStringTranslateTable = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8,\n 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192,\n 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018,\n 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d,\n 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac,\n];\n\nfunction stringToPDFString(str) {\n if (str[0] >= \"\\xEF\") {\n let encoding;\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n encoding = \"utf-16be\";\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n encoding = \"utf-16le\";\n } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n encoding = \"utf-8\";\n }\n\n if (encoding) {\n try {\n const decoder = new TextDecoder(encoding, { fatal: true });\n const buffer = stringToBytes(str);\n return decoder.decode(buffer);\n } catch (ex) {\n warn(`stringToPDFString: \"${ex}\".`);\n }\n }\n }\n // ISO Latin 1\n const strBuf = [];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n return strBuf.join(\"\");\n}\n\nfunction escapeString(str) {\n // replace \"(\", \")\", \"\\n\", \"\\r\" and \"\\\"\n // by \"\\(\", \"\\)\", \"\\\\n\", \"\\\\r\" and \"\\\\\"\n // in order to write it in a PDF file.\n return str.replace(/([()\\\\\\n\\r])/g, match => {\n if (match === \"\\n\") {\n return \"\\\\n\";\n } else if (match === \"\\r\") {\n return \"\\\\r\";\n }\n return `\\\\${match}`;\n });\n}\n\nfunction isAscii(str) {\n return /^[\\x00-\\x7F]*$/.test(str);\n}\n\nfunction stringToUTF16BEString(str) {\n const buf = [\"\\xFE\\xFF\"];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n buf.push(\n String.fromCharCode((char >> 8) & 0xff),\n String.fromCharCode(char & 0xff)\n );\n }\n return buf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isArrayBuffer(v) {\n return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n for (let i = 0, ii = arr1.length; i < ii; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction getModificationDate(date = new Date()) {\n const buffer = [\n date.getUTCFullYear().toString(),\n (date.getUTCMonth() + 1).toString().padStart(2, \"0\"),\n date.getUTCDate().toString().padStart(2, \"0\"),\n date.getUTCHours().toString().padStart(2, \"0\"),\n date.getUTCMinutes().toString().padStart(2, \"0\"),\n date.getUTCSeconds().toString().padStart(2, \"0\"),\n ];\n\n return buffer.join(\"\");\n}\n\n/**\n * Promise Capability object.\n *\n * @typedef {Object} PromiseCapability\n * @property {Promise} promise - A Promise object.\n * @property {boolean} settled - If the Promise has been fulfilled/rejected.\n * @property {function} resolve - Fulfills the Promise.\n * @property {function} reject - Rejects the Promise.\n */\n\n/**\n * Creates a promise capability object.\n * @alias createPromiseCapability\n *\n * @returns {PromiseCapability}\n */\nfunction createPromiseCapability() {\n const capability = Object.create(null);\n let isSettled = false;\n\n Object.defineProperty(capability, \"settled\", {\n get() {\n return isSettled;\n },\n });\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = function (data) {\n isSettled = true;\n resolve(data);\n };\n capability.reject = function (reason) {\n isSettled = true;\n reject(reason);\n };\n });\n return capability;\n}\n\nexport {\n AbortException,\n AnnotationActionEventType,\n AnnotationBorderStyleType,\n AnnotationFieldFlag,\n AnnotationFlag,\n AnnotationMarkedState,\n AnnotationMode,\n AnnotationReplyType,\n AnnotationReviewState,\n AnnotationStateModelType,\n AnnotationType,\n arrayByteLength,\n arraysToBytes,\n assert,\n BaseException,\n bytesToString,\n CMapCompressionType,\n createPromiseCapability,\n createValidAbsoluteUrl,\n DocumentActionEventType,\n escapeString,\n FeatureTest,\n FONT_IDENTITY_MATRIX,\n FontType,\n FormatError,\n getModificationDate,\n getVerbosityLevel,\n IDENTITY_MATRIX,\n ImageKind,\n info,\n InvalidPDFException,\n isArrayBuffer,\n isArrayEqual,\n isAscii,\n MissingPDFException,\n objectFromMap,\n objectSize,\n OPS,\n PageActionEventType,\n PasswordException,\n PasswordResponses,\n PermissionFlag,\n RenderingIntentFlag,\n setVerbosityLevel,\n shadow,\n StreamType,\n string32,\n stringToBytes,\n stringToPDFString,\n stringToUTF16BEString,\n stringToUTF8String,\n TextRenderingMode,\n UnexpectedResponseException,\n UnknownErrorException,\n unreachable,\n UNSUPPORTED_FEATURES,\n utf8StringToString,\n Util,\n VerbosityLevel,\n warn,\n};\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals __non_webpack_require__ */\n\nimport { isNodeJS } from \"./is_node.js\";\n\n// Skip compatibility checks for modern builds and if we already ran the module.\nif (\n (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"SKIP_BABEL\")) &&\n !globalThis._pdfjsCompatibilityChecked\n) {\n globalThis._pdfjsCompatibilityChecked = true;\n\n // Support: Node.js\n (function checkNodeBtoa() {\n if (globalThis.btoa || !isNodeJS) {\n return;\n }\n globalThis.btoa = function (chars) {\n // eslint-disable-next-line no-undef\n return Buffer.from(chars, \"binary\").toString(\"base64\");\n };\n })();\n\n // Support: Node.js\n (function checkNodeAtob() {\n if (globalThis.atob || !isNodeJS) {\n return;\n }\n globalThis.atob = function (input) {\n // eslint-disable-next-line no-undef\n return Buffer.from(input, \"base64\").toString(\"binary\");\n };\n })();\n\n // Support: Node.js\n (function checkDOMMatrix() {\n if (globalThis.DOMMatrix || !isNodeJS) {\n return;\n }\n globalThis.DOMMatrix = __non_webpack_require__(\n \"dommatrix/dist/dommatrix.js\"\n );\n })();\n\n // Provides support for *recent* additions to the Promise specification,\n // however basic Promise support is assumed to be available natively.\n // Support: Firefox<71, Chrome<76, Safari<13, Node.js<12.9.0\n (function checkPromise() {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n // The current image decoders are synchronous, hence `Promise` shouldn't\n // need to be polyfilled for the IMAGE_DECODERS build target.\n return;\n }\n if (globalThis.Promise.allSettled) {\n return;\n }\n globalThis.Promise = require(\"core-js/es/promise/index.js\");\n })();\n\n // Support: Node.js\n (function checkReadableStream() {\n if (globalThis.ReadableStream || !isNodeJS) {\n return;\n }\n globalThis.ReadableStream = __non_webpack_require__(\n \"web-streams-polyfill/dist/ponyfill.js\"\n ).ReadableStream;\n })();\n\n // Support: Firefox<94, Chrome<98, Safari<15.4, Node.js<17.0.0\n (function checkStructuredClone() {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n // The current image decoders are synchronous, hence `structuredClone`\n // shouldn't need to be polyfilled for the IMAGE_DECODERS build target.\n return;\n }\n if (globalThis.structuredClone) {\n return;\n }\n require(\"core-js/web/structured-clone.js\");\n })();\n}\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals process */\n\n// NW.js / Electron is a browser context, but copies some Node.js objects; see\n// http://docs.nwjs.io/en/latest/For%20Users/Advanced/JavaScript%20Contexts%20in%20NW.js/#access-nodejs-and-nwjs-api-in-browser-context\n// https://www.electronjs.org/docs/api/process#processversionselectron-readonly\n// https://www.electronjs.org/docs/api/process#processtype-readonly\nconst isNodeJS =\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n typeof process === \"object\" &&\n process + \"\" === \"[object process]\" &&\n !process.versions.nw &&\n !(process.versions.electron && process.type && process.type !== \"browser\");\n\nexport { isNodeJS };\n","require('../../modules/es.aggregate-error');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.all-settled');\nrequire('../../modules/es.promise.any');\nrequire('../../modules/es.promise.finally');\nrequire('../../modules/es.string.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Promise;\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.aggregate-error.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar installErrorCause = require('../internals/install-error-cause');\nvar iterate = require('../internals/iterate');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Error = Error;\nvar push = [].push;\n\nvar $AggregateError = function AggregateError(errors, message /* , options */) {\n var options = arguments.length > 2 ? arguments[2] : undefined;\n var isInstance = isPrototypeOf(AggregateErrorPrototype, this);\n var that;\n if (setPrototypeOf) {\n that = setPrototypeOf($Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);\n } else {\n that = isInstance ? this : create(AggregateErrorPrototype);\n createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');\n }\n if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));\n if (ERROR_STACK_INSTALLABLE) createNonEnumerableProperty(that, 'stack', clearErrorStack(that.stack, 1));\n installErrorCause(that, options);\n var errorsArray = [];\n iterate(errors, push, { that: errorsArray });\n createNonEnumerableProperty(that, 'errors', errorsArray);\n return that;\n};\n\nif (setPrototypeOf) setPrototypeOf($AggregateError, $Error);\nelse copyConstructorProperties($AggregateError, $Error, { name: true });\n\nvar AggregateErrorPrototype = $AggregateError.prototype = create($Error.prototype, {\n constructor: createPropertyDescriptor(1, $AggregateError),\n message: createPropertyDescriptor(1, ''),\n name: createPropertyDescriptor(1, 'AggregateError')\n});\n\n// `AggregateError` constructor\n// https://tc39.es/ecma262/#sec-aggregate-error-constructor\n$({ global: true, constructor: true, arity: 2 }, {\n AggregateError: $AggregateError\n});\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es-x/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var isCallable = require('../internals/is-callable');\n\nvar documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar SPECIAL_DOCUMENT_ALL = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = SPECIAL_DOCUMENT_ALL ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.25.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.25.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","module.exports = false;\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es-x/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es-x/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es-x/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es-x/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es-x/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es-x/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es-x/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es-x/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es-x/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String($Error(arg).stack); })('zxcasd');\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n","var isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n if (isObject(options) && 'cause' in options) {\n createNonEnumerableProperty(O, 'cause', options.cause);\n }\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","module.exports = {};\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = Error('a');\n if (!('stack' in error)) return true;\n // eslint-disable-next-line es-x/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n if (kind == 'keys') return createIterResultObject(index, false);\n if (kind == 'values') return createIterResultObject(target[index], false);\n return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es-x/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar location, defer, channel, port;\n\ntry {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n location = global.location;\n} catch (error) { /* empty */ }\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es-x/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // strange IE + webpack dev server bug - use .bind(global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var userAgent = require('../internals/engine-user-agent');\nvar global = require('../internals/global');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n }\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n if (this.head) this.tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n this.head = entry.next;\n if (this.tail === entry) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","var IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es-x/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (error) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: error };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar getBuiltIn = require('../internals/get-built-in');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\nvar PROMISE_ANY_ERROR = 'No one promise resolved';\n\n// `Promise.any` method\n// https://tc39.es/ecma262/#sec-promise.any\n$({ target: 'Promise', stat: true }, {\n any: function any(iterable) {\n var C = this;\n var AggregateError = getBuiltIn('AggregateError');\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var errors = [];\n var counter = 0;\n var remaining = 1;\n var alreadyResolved = false;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyRejected = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyResolved = true;\n resolve(value);\n }, function (error) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyRejected = true;\n errors[index] = error;\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n });\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromiseConstructor && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromisePrototype['finally'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true });\n }\n}\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","require('../modules/es.array.iterator');\nrequire('../modules/es.object.to-string');\nrequire('../modules/es.map');\nrequire('../modules/es.set');\nrequire('../modules/web.structured-clone');\nvar path = require('../internals/path');\n\nmodule.exports = path.structuredClone;\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.map.constructor');\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","/* eslint-disable es-x/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es-x/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es-x/no-object-isextensible, es-x/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-object-isextensible, es-x/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n // return step by kind\n if (kind == 'keys') return createIterResultObject(entry.key, false);\n if (kind == 'values') return createIterResultObject(entry.value, false);\n return createIterResultObject([entry.key, entry.value], false);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.set.constructor');\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var IS_PURE = require('../internals/is-pure');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltin = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar uid = require('../internals/uid');\nvar isCallable = require('../internals/is-callable');\nvar isConstructor = require('../internals/is-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar iterate = require('../internals/iterate');\nvar anObject = require('../internals/an-object');\nvar classof = require('../internals/classof');\nvar hasOwn = require('../internals/has-own-property');\nvar createProperty = require('../internals/create-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\nvar V8 = require('../internals/engine-v8-version');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar Object = global.Object;\nvar Date = global.Date;\nvar Error = global.Error;\nvar EvalError = global.EvalError;\nvar RangeError = global.RangeError;\nvar ReferenceError = global.ReferenceError;\nvar SyntaxError = global.SyntaxError;\nvar TypeError = global.TypeError;\nvar URIError = global.URIError;\nvar PerformanceMark = global.PerformanceMark;\nvar WebAssembly = global.WebAssembly;\nvar CompileError = WebAssembly && WebAssembly.CompileError || Error;\nvar LinkError = WebAssembly && WebAssembly.LinkError || Error;\nvar RuntimeError = WebAssembly && WebAssembly.RuntimeError || Error;\nvar DOMException = getBuiltin('DOMException');\nvar Set = getBuiltin('Set');\nvar Map = getBuiltin('Map');\nvar MapPrototype = Map.prototype;\nvar mapHas = uncurryThis(MapPrototype.has);\nvar mapGet = uncurryThis(MapPrototype.get);\nvar mapSet = uncurryThis(MapPrototype.set);\nvar setAdd = uncurryThis(Set.prototype.add);\nvar objectKeys = getBuiltin('Object', 'keys');\nvar push = uncurryThis([].push);\nvar thisBooleanValue = uncurryThis(true.valueOf);\nvar thisNumberValue = uncurryThis(1.0.valueOf);\nvar thisStringValue = uncurryThis(''.valueOf);\nvar thisTimeValue = uncurryThis(Date.prototype.getTime);\nvar PERFORMANCE_MARK = uid('structuredClone');\nvar DATA_CLONE_ERROR = 'DataCloneError';\nvar TRANSFERRING = 'Transferring';\n\nvar checkBasicSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n var set1 = new global.Set([7]);\n var set2 = structuredCloneImplementation(set1);\n var number = structuredCloneImplementation(Object(7));\n return set2 == set1 || !set2.has(7) || typeof number != 'object' || number != 7;\n }) && structuredCloneImplementation;\n};\n\nvar checkErrorsCloning = function (structuredCloneImplementation, $Error) {\n return !fails(function () {\n var error = new $Error();\n var test = structuredCloneImplementation({ a: error, b: error });\n return !(test && test.a === test.b && test.a instanceof $Error && test.a.stack === error.stack);\n });\n};\n\n// https://github.com/whatwg/html/pull/5749\nvar checkNewErrorsCloningSemantic = function (structuredCloneImplementation) {\n return !fails(function () {\n var test = structuredCloneImplementation(new global.AggregateError([1], PERFORMANCE_MARK, { cause: 3 }));\n return test.name != 'AggregateError' || test.errors[0] != 1 || test.message != PERFORMANCE_MARK || test.cause != 3;\n });\n};\n\n// FF94+, Safari 15.4+, Chrome 98+, NodeJS 17.0+, Deno 1.13+\n// FF<103 and Safari implementations can't clone errors\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1556604\n// FF103 can clone errors, but `.stack` of clone is an empty string\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1778762\n// FF104+ fixed it on usual errors, but not on DOMExceptions\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1777321\n// Chrome <102 returns `null` if cloned object contains multiple references to one error\n// https://bugs.chromium.org/p/v8/issues/detail?id=12542\n// NodeJS implementation can't clone DOMExceptions\n// https://github.com/nodejs/node/issues/41038\n// only FF103+ supports new (html/5749) error cloning semantic\nvar nativeStructuredClone = global.structuredClone;\n\nvar FORCED_REPLACEMENT = IS_PURE\n || !checkErrorsCloning(nativeStructuredClone, Error)\n || !checkErrorsCloning(nativeStructuredClone, DOMException)\n || !checkNewErrorsCloningSemantic(nativeStructuredClone);\n\n// Chrome 82+, Safari 14.1+, Deno 1.11+\n// Chrome 78-81 implementation swaps `.name` and `.message` of cloned `DOMException`\n// Chrome returns `null` if cloned object contains multiple references to one error\n// Safari 14.1 implementation doesn't clone some `RegExp` flags, so requires a workaround\n// Safari implementation can't clone errors\n// Deno 1.2-1.10 implementations too naive\n// NodeJS 16.0+ does not have `PerformanceMark` constructor\n// NodeJS <17.2 structured cloning implementation from `performance.mark` is too naive\n// and can't clone, for example, `RegExp` or some boxed primitives\n// https://github.com/nodejs/node/issues/40840\n// no one of those implementations supports new (html/5749) error cloning semantic\nvar structuredCloneFromMark = !nativeStructuredClone && checkBasicSemantic(function (value) {\n return new PerformanceMark(PERFORMANCE_MARK, { detail: value }).detail;\n});\n\nvar nativeRestrictedStructuredClone = checkBasicSemantic(nativeStructuredClone) || structuredCloneFromMark;\n\nvar throwUncloneable = function (type) {\n throw new DOMException('Uncloneable type: ' + type, DATA_CLONE_ERROR);\n};\n\nvar throwUnpolyfillable = function (type, action) {\n throw new DOMException((action || 'Cloning') + ' of ' + type + ' cannot be properly polyfilled in this engine', DATA_CLONE_ERROR);\n};\n\nvar createDataTransfer = function () {\n var dataTransfer;\n try {\n dataTransfer = new global.DataTransfer();\n } catch (error) {\n try {\n dataTransfer = new global.ClipboardEvent('').clipboardData;\n } catch (error2) { /* empty */ }\n }\n return dataTransfer && dataTransfer.items && dataTransfer.files ? dataTransfer : null;\n};\n\nvar structuredCloneInternal = function (value, map) {\n if (isSymbol(value)) throwUncloneable('Symbol');\n if (!isObject(value)) return value;\n // effectively preserves circular references\n if (map) {\n if (mapHas(map, value)) return mapGet(map, value);\n } else map = new Map();\n\n var type = classof(value);\n var deep = false;\n var C, name, cloned, dataTransfer, i, length, keys, key, source, target;\n\n switch (type) {\n case 'Array':\n cloned = [];\n deep = true;\n break;\n case 'Object':\n cloned = {};\n deep = true;\n break;\n case 'Map':\n cloned = new Map();\n deep = true;\n break;\n case 'Set':\n cloned = new Set();\n deep = true;\n break;\n case 'RegExp':\n // in this block because of a Safari 14.1 bug\n // old FF does not clone regexes passed to the constructor, so get the source and flags directly\n cloned = new RegExp(value.source, getRegExpFlags(value));\n break;\n case 'Error':\n name = value.name;\n switch (name) {\n case 'AggregateError':\n cloned = getBuiltin('AggregateError')([]);\n break;\n case 'EvalError':\n cloned = EvalError();\n break;\n case 'RangeError':\n cloned = RangeError();\n break;\n case 'ReferenceError':\n cloned = ReferenceError();\n break;\n case 'SyntaxError':\n cloned = SyntaxError();\n break;\n case 'TypeError':\n cloned = TypeError();\n break;\n case 'URIError':\n cloned = URIError();\n break;\n case 'CompileError':\n cloned = CompileError();\n break;\n case 'LinkError':\n cloned = LinkError();\n break;\n case 'RuntimeError':\n cloned = RuntimeError();\n break;\n default:\n cloned = Error();\n }\n deep = true;\n break;\n case 'DOMException':\n cloned = new DOMException(value.message, value.name);\n deep = true;\n break;\n case 'DataView':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'BigInt64Array':\n case 'BigUint64Array':\n C = global[type];\n // in some old engines like Safari 9, typeof C is 'object'\n // on Uint8ClampedArray or some other constructors\n if (!isObject(C)) throwUnpolyfillable(type);\n cloned = new C(\n // this is safe, since arraybuffer cannot have circular references\n structuredCloneInternal(value.buffer, map),\n value.byteOffset,\n type === 'DataView' ? value.byteLength : value.length\n );\n break;\n case 'DOMQuad':\n try {\n cloned = new DOMQuad(\n structuredCloneInternal(value.p1, map),\n structuredCloneInternal(value.p2, map),\n structuredCloneInternal(value.p3, map),\n structuredCloneInternal(value.p4, map)\n );\n } catch (error) {\n if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else throwUnpolyfillable(type);\n }\n break;\n case 'FileList':\n dataTransfer = createDataTransfer();\n if (dataTransfer) {\n for (i = 0, length = lengthOfArrayLike(value); i < length; i++) {\n dataTransfer.items.add(structuredCloneInternal(value[i], map));\n }\n cloned = dataTransfer.files;\n } else if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else throwUnpolyfillable(type);\n break;\n case 'ImageData':\n // Safari 9 ImageData is a constructor, but typeof ImageData is 'object'\n try {\n cloned = new ImageData(\n structuredCloneInternal(value.data, map),\n value.width,\n value.height,\n { colorSpace: value.colorSpace }\n );\n } catch (error) {\n if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else throwUnpolyfillable(type);\n } break;\n default:\n if (nativeRestrictedStructuredClone) {\n cloned = nativeRestrictedStructuredClone(value);\n } else switch (type) {\n case 'BigInt':\n // can be a 3rd party polyfill\n cloned = Object(value.valueOf());\n break;\n case 'Boolean':\n cloned = Object(thisBooleanValue(value));\n break;\n case 'Number':\n cloned = Object(thisNumberValue(value));\n break;\n case 'String':\n cloned = Object(thisStringValue(value));\n break;\n case 'Date':\n cloned = new Date(thisTimeValue(value));\n break;\n case 'ArrayBuffer':\n C = global.DataView;\n // `ArrayBuffer#slice` is not available in IE10\n // `ArrayBuffer#slice` and `DataView` are not available in old FF\n if (!C && typeof value.slice != 'function') throwUnpolyfillable(type);\n // detached buffers throws in `DataView` and `.slice`\n try {\n if (typeof value.slice == 'function') {\n cloned = value.slice(0);\n } else {\n length = value.byteLength;\n cloned = new ArrayBuffer(length);\n source = new C(value);\n target = new C(cloned);\n for (i = 0; i < length; i++) {\n target.setUint8(i, source.getUint8(i));\n }\n }\n } catch (error) {\n throw new DOMException('ArrayBuffer is detached', DATA_CLONE_ERROR);\n } break;\n case 'SharedArrayBuffer':\n // SharedArrayBuffer should use shared memory, we can't polyfill it, so return the original\n cloned = value;\n break;\n case 'Blob':\n try {\n cloned = value.slice(0, value.size, value.type);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMPoint':\n case 'DOMPointReadOnly':\n C = global[type];\n try {\n cloned = C.fromPoint\n ? C.fromPoint(value)\n : new C(value.x, value.y, value.z, value.w);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMRect':\n case 'DOMRectReadOnly':\n C = global[type];\n try {\n cloned = C.fromRect\n ? C.fromRect(value)\n : new C(value.x, value.y, value.width, value.height);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'DOMMatrix':\n case 'DOMMatrixReadOnly':\n C = global[type];\n try {\n cloned = C.fromMatrix\n ? C.fromMatrix(value)\n : new C(value);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'AudioData':\n case 'VideoFrame':\n if (!isCallable(value.clone)) throwUnpolyfillable(type);\n try {\n cloned = value.clone();\n } catch (error) {\n throwUncloneable(type);\n } break;\n case 'File':\n try {\n cloned = new File([value], value.name, value);\n } catch (error) {\n throwUnpolyfillable(type);\n } break;\n case 'CryptoKey':\n case 'GPUCompilationMessage':\n case 'GPUCompilationInfo':\n case 'ImageBitmap':\n case 'RTCCertificate':\n case 'WebAssembly.Module':\n throwUnpolyfillable(type);\n // break omitted\n default:\n throwUncloneable(type);\n }\n }\n\n mapSet(map, value, cloned);\n\n if (deep) switch (type) {\n case 'Array':\n case 'Object':\n keys = objectKeys(value);\n for (i = 0, length = lengthOfArrayLike(keys); i < length; i++) {\n key = keys[i];\n createProperty(cloned, key, structuredCloneInternal(value[key], map));\n } break;\n case 'Map':\n value.forEach(function (v, k) {\n mapSet(cloned, structuredCloneInternal(k, map), structuredCloneInternal(v, map));\n });\n break;\n case 'Set':\n value.forEach(function (v) {\n setAdd(cloned, structuredCloneInternal(v, map));\n });\n break;\n case 'Error':\n createNonEnumerableProperty(cloned, 'message', structuredCloneInternal(value.message, map));\n if (hasOwn(value, 'cause')) {\n createNonEnumerableProperty(cloned, 'cause', structuredCloneInternal(value.cause, map));\n }\n if (name == 'AggregateError') {\n cloned.errors = structuredCloneInternal(value.errors, map);\n } // break omitted\n case 'DOMException':\n if (ERROR_STACK_INSTALLABLE) {\n createNonEnumerableProperty(cloned, 'stack', structuredCloneInternal(value.stack, map));\n }\n }\n\n return cloned;\n};\n\nvar PROPER_TRANSFER = nativeStructuredClone && !fails(function () {\n // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if ((IS_DENO && V8 > 92) || (IS_NODE && V8 > 94) || (IS_BROWSER && V8 > 97)) return false;\n var buffer = new ArrayBuffer(8);\n var clone = nativeStructuredClone(buffer, { transfer: [buffer] });\n return buffer.byteLength != 0 || clone.byteLength != 8;\n});\n\nvar tryToTransfer = function (rawTransfer, map) {\n if (!isObject(rawTransfer)) throw TypeError('Transfer option cannot be converted to a sequence');\n\n var transfer = [];\n\n iterate(rawTransfer, function (value) {\n push(transfer, anObject(value));\n });\n\n var i = 0;\n var length = lengthOfArrayLike(transfer);\n var value, type, C, transferredArray, transferred, canvas, context;\n\n if (PROPER_TRANSFER) {\n transferredArray = nativeStructuredClone(transfer, { transfer: transfer });\n while (i < length) mapSet(map, transfer[i], transferredArray[i++]);\n } else while (i < length) {\n value = transfer[i++];\n if (mapHas(map, value)) throw new DOMException('Duplicate transferable', DATA_CLONE_ERROR);\n\n type = classof(value);\n\n switch (type) {\n case 'ImageBitmap':\n C = global.OffscreenCanvas;\n if (!isConstructor(C)) throwUnpolyfillable(type, TRANSFERRING);\n try {\n canvas = new C(value.width, value.height);\n context = canvas.getContext('bitmaprenderer');\n context.transferFromImageBitmap(value);\n transferred = canvas.transferToImageBitmap();\n } catch (error) { /* empty */ }\n break;\n case 'AudioData':\n case 'VideoFrame':\n if (!isCallable(value.clone) || !isCallable(value.close)) throwUnpolyfillable(type, TRANSFERRING);\n try {\n transferred = value.clone();\n value.close();\n } catch (error) { /* empty */ }\n break;\n case 'ArrayBuffer':\n case 'MessagePort':\n case 'OffscreenCanvas':\n case 'ReadableStream':\n case 'TransformStream':\n case 'WritableStream':\n throwUnpolyfillable(type, TRANSFERRING);\n }\n\n if (transferred === undefined) throw new DOMException('This object cannot be transferred: ' + type, DATA_CLONE_ERROR);\n mapSet(map, value, transferred);\n }\n};\n\n$({ global: true, enumerable: true, sham: !PROPER_TRANSFER, forced: FORCED_REPLACEMENT }, {\n structuredClone: function structuredClone(value /* , { transfer } */) {\n var options = validateArgumentsLength(arguments.length, 1) > 1 && !isNullOrUndefined(arguments[1]) ? anObject(arguments[1]) : undefined;\n var transfer = options ? options.transfer : undefined;\n var map;\n\n if (transfer !== undefined) {\n map = new Map();\n tryToTransfer(transfer, map);\n }\n\n return structuredCloneInternal(value, map);\n }\n});\n","var call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, shadow, unreachable } from \"../shared/util.js\";\n\nconst CIRCULAR_REF = Symbol(\"CIRCULAR_REF\");\nconst EOF = Symbol(\"EOF\");\n\nconst Name = (function NameClosure() {\n let nameCache = Object.create(null);\n\n // eslint-disable-next-line no-shadow\n class Name {\n constructor(name) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n typeof name !== \"string\"\n ) {\n unreachable('Name: The \"name\" must be a string.');\n }\n this.name = name;\n }\n\n static get(name) {\n const nameValue = nameCache[name];\n // eslint-disable-next-line no-restricted-syntax\n return nameValue ? nameValue : (nameCache[name] = new Name(name));\n }\n\n static _clearCache() {\n nameCache = Object.create(null);\n }\n }\n\n return Name;\n})();\n\nconst Cmd = (function CmdClosure() {\n let cmdCache = Object.create(null);\n\n // eslint-disable-next-line no-shadow\n class Cmd {\n constructor(cmd) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n typeof cmd !== \"string\"\n ) {\n unreachable('Cmd: The \"cmd\" must be a string.');\n }\n this.cmd = cmd;\n }\n\n static get(cmd) {\n const cmdValue = cmdCache[cmd];\n // eslint-disable-next-line no-restricted-syntax\n return cmdValue ? cmdValue : (cmdCache[cmd] = new Cmd(cmd));\n }\n\n static _clearCache() {\n cmdCache = Object.create(null);\n }\n }\n\n return Cmd;\n})();\n\nconst nonSerializable = function nonSerializableClosure() {\n return nonSerializable; // Creating closure on some variable.\n};\n\nclass Dict {\n constructor(xref = null) {\n // Map should only be used internally, use functions below to access.\n this._map = Object.create(null);\n this.xref = xref;\n this.objId = null;\n this.suppressEncryption = false;\n this.__nonSerializable__ = nonSerializable; // Disable cloning of the Dict.\n }\n\n assignXref(newXref) {\n this.xref = newXref;\n }\n\n get size() {\n return Object.keys(this._map).length;\n }\n\n // Automatically dereferences Ref objects.\n get(key1, key2, key3) {\n let value = this._map[key1];\n if (value === undefined && key2 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key2.length < key1.length\n ) {\n unreachable(\"Dict.get: Expected keys to be ordered by length.\");\n }\n value = this._map[key2];\n if (value === undefined && key3 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key3.length < key2.length\n ) {\n unreachable(\"Dict.get: Expected keys to be ordered by length.\");\n }\n value = this._map[key3];\n }\n }\n if (value instanceof Ref && this.xref) {\n return this.xref.fetch(value, this.suppressEncryption);\n }\n return value;\n }\n\n // Same as get(), but returns a promise and uses fetchIfRefAsync().\n async getAsync(key1, key2, key3) {\n let value = this._map[key1];\n if (value === undefined && key2 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key2.length < key1.length\n ) {\n unreachable(\"Dict.getAsync: Expected keys to be ordered by length.\");\n }\n value = this._map[key2];\n if (value === undefined && key3 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key3.length < key2.length\n ) {\n unreachable(\"Dict.getAsync: Expected keys to be ordered by length.\");\n }\n value = this._map[key3];\n }\n }\n if (value instanceof Ref && this.xref) {\n return this.xref.fetchAsync(value, this.suppressEncryption);\n }\n return value;\n }\n\n // Same as get(), but dereferences all elements if the result is an Array.\n getArray(key1, key2, key3) {\n let value = this._map[key1];\n if (value === undefined && key2 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key2.length < key1.length\n ) {\n unreachable(\"Dict.getArray: Expected keys to be ordered by length.\");\n }\n value = this._map[key2];\n if (value === undefined && key3 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n key3.length < key2.length\n ) {\n unreachable(\"Dict.getArray: Expected keys to be ordered by length.\");\n }\n value = this._map[key3];\n }\n }\n if (value instanceof Ref && this.xref) {\n value = this.xref.fetch(value, this.suppressEncryption);\n }\n\n if (Array.isArray(value)) {\n value = value.slice(); // Ensure that we don't modify the Dict data.\n for (let i = 0, ii = value.length; i < ii; i++) {\n if (value[i] instanceof Ref && this.xref) {\n value[i] = this.xref.fetch(value[i], this.suppressEncryption);\n }\n }\n }\n return value;\n }\n\n // No dereferencing.\n getRaw(key) {\n return this._map[key];\n }\n\n getKeys() {\n return Object.keys(this._map);\n }\n\n // No dereferencing.\n getRawValues() {\n return Object.values(this._map);\n }\n\n set(key, value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n if (typeof key !== \"string\") {\n unreachable('Dict.set: The \"key\" must be a string.');\n } else if (value === undefined) {\n unreachable('Dict.set: The \"value\" cannot be undefined.');\n }\n }\n this._map[key] = value;\n }\n\n has(key) {\n return this._map[key] !== undefined;\n }\n\n forEach(callback) {\n for (const key in this._map) {\n callback(key, this.get(key));\n }\n }\n\n static get empty() {\n const emptyDict = new Dict(null);\n\n emptyDict.set = (key, value) => {\n unreachable(\"Should not call `set` on the empty dictionary.\");\n };\n return shadow(this, \"empty\", emptyDict);\n }\n\n static merge({ xref, dictArray, mergeSubDicts = false }) {\n const mergedDict = new Dict(xref),\n properties = new Map();\n\n for (const dict of dictArray) {\n if (!(dict instanceof Dict)) {\n continue;\n }\n for (const [key, value] of Object.entries(dict._map)) {\n let property = properties.get(key);\n if (property === undefined) {\n property = [];\n properties.set(key, property);\n } else if (!mergeSubDicts || !(value instanceof Dict)) {\n // Ignore additional entries, if either:\n // - This is a \"shallow\" merge, where only the first element matters.\n // - The value is *not* a `Dict`, since other types cannot be merged.\n continue;\n }\n property.push(value);\n }\n }\n for (const [name, values] of properties) {\n if (values.length === 1 || !(values[0] instanceof Dict)) {\n mergedDict._map[name] = values[0];\n continue;\n }\n const subDict = new Dict(xref);\n\n for (const dict of values) {\n for (const [key, value] of Object.entries(dict._map)) {\n if (subDict._map[key] === undefined) {\n subDict._map[key] = value;\n }\n }\n }\n if (subDict.size > 0) {\n mergedDict._map[name] = subDict;\n }\n }\n properties.clear();\n\n return mergedDict.size > 0 ? mergedDict : Dict.empty;\n }\n}\n\nconst Ref = (function RefClosure() {\n let refCache = Object.create(null);\n\n // eslint-disable-next-line no-shadow\n class Ref {\n constructor(num, gen) {\n this.num = num;\n this.gen = gen;\n }\n\n toString() {\n // This function is hot, so we make the string as compact as possible.\n // |this.gen| is almost always zero, so we treat that case specially.\n if (this.gen === 0) {\n return `${this.num}R`;\n }\n return `${this.num}R${this.gen}`;\n }\n\n static get(num, gen) {\n const key = gen === 0 ? `${num}R` : `${num}R${gen}`;\n const refValue = refCache[key];\n // eslint-disable-next-line no-restricted-syntax\n return refValue ? refValue : (refCache[key] = new Ref(num, gen));\n }\n\n static _clearCache() {\n refCache = Object.create(null);\n }\n }\n\n return Ref;\n})();\n\n// The reference is identified by number and generation.\n// This structure stores only one instance of the reference.\nclass RefSet {\n constructor(parent = null) {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n parent &&\n !(parent instanceof RefSet)\n ) {\n unreachable('RefSet: Invalid \"parent\" value.');\n }\n this._set = new Set(parent && parent._set);\n }\n\n has(ref) {\n return this._set.has(ref.toString());\n }\n\n put(ref) {\n this._set.add(ref.toString());\n }\n\n remove(ref) {\n this._set.delete(ref.toString());\n }\n\n [Symbol.iterator]() {\n return this._set.values();\n }\n\n clear() {\n this._set.clear();\n }\n}\n\nclass RefSetCache {\n constructor() {\n this._map = new Map();\n }\n\n get size() {\n return this._map.size;\n }\n\n get(ref) {\n return this._map.get(ref.toString());\n }\n\n has(ref) {\n return this._map.has(ref.toString());\n }\n\n put(ref, obj) {\n this._map.set(ref.toString(), obj);\n }\n\n putAlias(ref, aliasRef) {\n this._map.set(ref.toString(), this.get(aliasRef));\n }\n\n [Symbol.iterator]() {\n return this._map.values();\n }\n\n clear() {\n this._map.clear();\n }\n}\n\nfunction isName(v, name) {\n return v instanceof Name && (name === undefined || v.name === name);\n}\n\nfunction isCmd(v, cmd) {\n return v instanceof Cmd && (cmd === undefined || v.cmd === cmd);\n}\n\nfunction isDict(v, type) {\n return (\n v instanceof Dict && (type === undefined || isName(v.get(\"Type\"), type))\n );\n}\n\nfunction isRefsEqual(v1, v2) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n v1 instanceof Ref && v2 instanceof Ref,\n \"isRefsEqual: Both parameters should be `Ref`s.\"\n );\n }\n return v1.num === v2.num && v1.gen === v2.gen;\n}\n\nfunction clearPrimitiveCaches() {\n Cmd._clearCache();\n Name._clearCache();\n Ref._clearCache();\n}\n\nexport {\n CIRCULAR_REF,\n clearPrimitiveCaches,\n Cmd,\n Dict,\n EOF,\n isCmd,\n isDict,\n isName,\n isRefsEqual,\n Name,\n Ref,\n RefSet,\n RefSetCache,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n createValidAbsoluteUrl,\n shadow,\n unreachable,\n warn,\n} from \"../shared/util.js\";\nimport { ChunkedStreamManager } from \"./chunked_stream.js\";\nimport { MissingDataException } from \"./core_utils.js\";\nimport { PDFDocument } from \"./document.js\";\nimport { Stream } from \"./stream.js\";\n\nfunction parseDocBaseUrl(url) {\n if (url) {\n const absoluteUrl = createValidAbsoluteUrl(url);\n if (absoluteUrl) {\n return absoluteUrl.href;\n }\n warn(`Invalid absolute docBaseUrl: \"${url}\".`);\n }\n return null;\n}\n\nclass BasePdfManager {\n constructor() {\n if (this.constructor === BasePdfManager) {\n unreachable(\"Cannot initialize BasePdfManager.\");\n }\n }\n\n get docId() {\n return this._docId;\n }\n\n get password() {\n return this._password;\n }\n\n get docBaseUrl() {\n const catalog = this.pdfDocument.catalog;\n return shadow(this, \"docBaseUrl\", catalog.baseUrl || this._docBaseUrl);\n }\n\n onLoadedStream() {\n unreachable(\"Abstract method `onLoadedStream` called\");\n }\n\n ensureDoc(prop, args) {\n return this.ensure(this.pdfDocument, prop, args);\n }\n\n ensureXRef(prop, args) {\n return this.ensure(this.pdfDocument.xref, prop, args);\n }\n\n ensureCatalog(prop, args) {\n return this.ensure(this.pdfDocument.catalog, prop, args);\n }\n\n getPage(pageIndex) {\n return this.pdfDocument.getPage(pageIndex);\n }\n\n fontFallback(id, handler) {\n return this.pdfDocument.fontFallback(id, handler);\n }\n\n loadXfaFonts(handler, task) {\n return this.pdfDocument.loadXfaFonts(handler, task);\n }\n\n loadXfaImages() {\n return this.pdfDocument.loadXfaImages();\n }\n\n serializeXfaData(annotationStorage) {\n return this.pdfDocument.serializeXfaData(annotationStorage);\n }\n\n cleanup(manuallyTriggered = false) {\n return this.pdfDocument.cleanup(manuallyTriggered);\n }\n\n async ensure(obj, prop, args) {\n unreachable(\"Abstract method `ensure` called\");\n }\n\n requestRange(begin, end) {\n unreachable(\"Abstract method `requestRange` called\");\n }\n\n requestLoadedStream() {\n unreachable(\"Abstract method `requestLoadedStream` called\");\n }\n\n sendProgressiveData(chunk) {\n unreachable(\"Abstract method `sendProgressiveData` called\");\n }\n\n updatePassword(password) {\n this._password = password;\n }\n\n terminate(reason) {\n unreachable(\"Abstract method `terminate` called\");\n }\n}\n\nclass LocalPdfManager extends BasePdfManager {\n constructor(\n docId,\n data,\n password,\n msgHandler,\n evaluatorOptions,\n enableXfa,\n docBaseUrl\n ) {\n super();\n\n this._docId = docId;\n this._password = password;\n this._docBaseUrl = parseDocBaseUrl(docBaseUrl);\n this.msgHandler = msgHandler;\n this.evaluatorOptions = evaluatorOptions;\n this.enableXfa = enableXfa;\n\n const stream = new Stream(data);\n this.pdfDocument = new PDFDocument(this, stream);\n this._loadedStreamPromise = Promise.resolve(stream);\n }\n\n async ensure(obj, prop, args) {\n const value = obj[prop];\n if (typeof value === \"function\") {\n return value.apply(obj, args);\n }\n return value;\n }\n\n requestRange(begin, end) {\n return Promise.resolve();\n }\n\n requestLoadedStream() {}\n\n onLoadedStream() {\n return this._loadedStreamPromise;\n }\n\n terminate(reason) {}\n}\n\nclass NetworkPdfManager extends BasePdfManager {\n constructor(\n docId,\n pdfNetworkStream,\n args,\n evaluatorOptions,\n enableXfa,\n docBaseUrl\n ) {\n super();\n\n this._docId = docId;\n this._password = args.password;\n this._docBaseUrl = parseDocBaseUrl(docBaseUrl);\n this.msgHandler = args.msgHandler;\n this.evaluatorOptions = evaluatorOptions;\n this.enableXfa = enableXfa;\n\n this.streamManager = new ChunkedStreamManager(pdfNetworkStream, {\n msgHandler: args.msgHandler,\n length: args.length,\n disableAutoFetch: args.disableAutoFetch,\n rangeChunkSize: args.rangeChunkSize,\n });\n this.pdfDocument = new PDFDocument(this, this.streamManager.getStream());\n }\n\n async ensure(obj, prop, args) {\n try {\n const value = obj[prop];\n if (typeof value === \"function\") {\n return value.apply(obj, args);\n }\n return value;\n } catch (ex) {\n if (!(ex instanceof MissingDataException)) {\n throw ex;\n }\n await this.requestRange(ex.begin, ex.end);\n return this.ensure(obj, prop, args);\n }\n }\n\n requestRange(begin, end) {\n return this.streamManager.requestRange(begin, end);\n }\n\n requestLoadedStream() {\n this.streamManager.requestAllChunks();\n }\n\n sendProgressiveData(chunk) {\n this.streamManager.onReceiveData({ chunk });\n }\n\n onLoadedStream() {\n return this.streamManager.onLoadedStream();\n }\n\n terminate(reason) {\n this.streamManager.abort(reason);\n }\n}\n\nexport { LocalPdfManager, NetworkPdfManager };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n arrayByteLength,\n arraysToBytes,\n createPromiseCapability,\n} from \"../shared/util.js\";\nimport { MissingDataException } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\n\nclass ChunkedStream extends Stream {\n constructor(length, chunkSize, manager) {\n super(\n /* arrayBuffer = */ new Uint8Array(length),\n /* start = */ 0,\n /* length = */ length,\n /* dict = */ null\n );\n\n this.chunkSize = chunkSize;\n this._loadedChunks = new Set();\n this.numChunks = Math.ceil(length / chunkSize);\n this.manager = manager;\n this.progressiveDataLength = 0;\n this.lastSuccessfulEnsureByteChunk = -1; // Single-entry cache\n }\n\n // If a particular stream does not implement one or more of these methods,\n // an error should be thrown.\n getMissingChunks() {\n const chunks = [];\n for (let chunk = 0, n = this.numChunks; chunk < n; ++chunk) {\n if (!this._loadedChunks.has(chunk)) {\n chunks.push(chunk);\n }\n }\n return chunks;\n }\n\n get numChunksLoaded() {\n return this._loadedChunks.size;\n }\n\n get isDataLoaded() {\n return this.numChunksLoaded === this.numChunks;\n }\n\n onReceiveData(begin, chunk) {\n const chunkSize = this.chunkSize;\n if (begin % chunkSize !== 0) {\n throw new Error(`Bad begin offset: ${begin}`);\n }\n\n // Using `this.length` is inaccurate here since `this.start` can be moved\n // (see the `moveStart` method).\n const end = begin + chunk.byteLength;\n if (end % chunkSize !== 0 && end !== this.bytes.length) {\n throw new Error(`Bad end offset: ${end}`);\n }\n\n this.bytes.set(new Uint8Array(chunk), begin);\n const beginChunk = Math.floor(begin / chunkSize);\n const endChunk = Math.floor((end - 1) / chunkSize) + 1;\n\n for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n // Since a value can only occur *once* in a `Set`, there's no need to\n // manually check `Set.prototype.has()` before adding the value here.\n this._loadedChunks.add(curChunk);\n }\n }\n\n onReceiveProgressiveData(data) {\n let position = this.progressiveDataLength;\n const beginChunk = Math.floor(position / this.chunkSize);\n\n this.bytes.set(new Uint8Array(data), position);\n position += data.byteLength;\n this.progressiveDataLength = position;\n const endChunk =\n position >= this.end\n ? this.numChunks\n : Math.floor(position / this.chunkSize);\n\n for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n // Since a value can only occur *once* in a `Set`, there's no need to\n // manually check `Set.prototype.has()` before adding the value here.\n this._loadedChunks.add(curChunk);\n }\n }\n\n ensureByte(pos) {\n if (pos < this.progressiveDataLength) {\n return;\n }\n\n const chunk = Math.floor(pos / this.chunkSize);\n if (chunk > this.numChunks) {\n return;\n }\n if (chunk === this.lastSuccessfulEnsureByteChunk) {\n return;\n }\n\n if (!this._loadedChunks.has(chunk)) {\n throw new MissingDataException(pos, pos + 1);\n }\n this.lastSuccessfulEnsureByteChunk = chunk;\n }\n\n ensureRange(begin, end) {\n if (begin >= end) {\n return;\n }\n if (end <= this.progressiveDataLength) {\n return;\n }\n\n const beginChunk = Math.floor(begin / this.chunkSize);\n if (beginChunk > this.numChunks) {\n return;\n }\n const endChunk = Math.min(\n Math.floor((end - 1) / this.chunkSize) + 1,\n this.numChunks\n );\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!this._loadedChunks.has(chunk)) {\n throw new MissingDataException(begin, end);\n }\n }\n }\n\n nextEmptyChunk(beginChunk) {\n const numChunks = this.numChunks;\n for (let i = 0; i < numChunks; ++i) {\n const chunk = (beginChunk + i) % numChunks; // Wrap around to beginning.\n if (!this._loadedChunks.has(chunk)) {\n return chunk;\n }\n }\n return null;\n }\n\n hasChunk(chunk) {\n return this._loadedChunks.has(chunk);\n }\n\n getByte() {\n const pos = this.pos;\n if (pos >= this.end) {\n return -1;\n }\n if (pos >= this.progressiveDataLength) {\n this.ensureByte(pos);\n }\n return this.bytes[this.pos++];\n }\n\n getBytes(length) {\n const bytes = this.bytes;\n const pos = this.pos;\n const strEnd = this.end;\n\n if (!length) {\n if (strEnd > this.progressiveDataLength) {\n this.ensureRange(pos, strEnd);\n }\n return bytes.subarray(pos, strEnd);\n }\n\n let end = pos + length;\n if (end > strEnd) {\n end = strEnd;\n }\n if (end > this.progressiveDataLength) {\n this.ensureRange(pos, end);\n }\n\n this.pos = end;\n return bytes.subarray(pos, end);\n }\n\n getByteRange(begin, end) {\n if (begin < 0) {\n begin = 0;\n }\n if (end > this.end) {\n end = this.end;\n }\n if (end > this.progressiveDataLength) {\n this.ensureRange(begin, end);\n }\n return this.bytes.subarray(begin, end);\n }\n\n makeSubStream(start, length, dict = null) {\n if (length) {\n if (start + length > this.progressiveDataLength) {\n this.ensureRange(start, start + length);\n }\n } else {\n // When the `length` is undefined you do *not*, under any circumstances,\n // want to fallback on calling `this.ensureRange(start, this.end)` since\n // that would force the *entire* PDF file to be loaded, thus completely\n // breaking the whole purpose of using streaming and/or range requests.\n //\n // However, not doing any checking here could very easily lead to wasted\n // time/resources during e.g. parsing, since `MissingDataException`s will\n // require data to be re-parsed, which we attempt to minimize by at least\n // checking that the *beginning* of the data is available here.\n if (start >= this.progressiveDataLength) {\n this.ensureByte(start);\n }\n }\n\n function ChunkedStreamSubstream() {}\n ChunkedStreamSubstream.prototype = Object.create(this);\n ChunkedStreamSubstream.prototype.getMissingChunks = function () {\n const chunkSize = this.chunkSize;\n const beginChunk = Math.floor(this.start / chunkSize);\n const endChunk = Math.floor((this.end - 1) / chunkSize) + 1;\n const missingChunks = [];\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!this._loadedChunks.has(chunk)) {\n missingChunks.push(chunk);\n }\n }\n return missingChunks;\n };\n Object.defineProperty(ChunkedStreamSubstream.prototype, \"isDataLoaded\", {\n get() {\n if (this.numChunksLoaded === this.numChunks) {\n return true;\n }\n return this.getMissingChunks().length === 0;\n },\n configurable: true,\n });\n\n const subStream = new ChunkedStreamSubstream();\n subStream.pos = subStream.start = start;\n subStream.end = start + length || this.end;\n subStream.dict = dict;\n return subStream;\n }\n\n getBaseStreams() {\n return [this];\n }\n}\n\nclass ChunkedStreamManager {\n constructor(pdfNetworkStream, args) {\n this.length = args.length;\n this.chunkSize = args.rangeChunkSize;\n this.stream = new ChunkedStream(this.length, this.chunkSize, this);\n this.pdfNetworkStream = pdfNetworkStream;\n this.disableAutoFetch = args.disableAutoFetch;\n this.msgHandler = args.msgHandler;\n\n this.currRequestId = 0;\n\n this._chunksNeededByRequest = new Map();\n this._requestsByChunk = new Map();\n this._promisesByRequest = new Map();\n this.progressiveDataLength = 0;\n this.aborted = false;\n\n this._loadedStreamCapability = createPromiseCapability();\n }\n\n onLoadedStream() {\n return this._loadedStreamCapability.promise;\n }\n\n sendRequest(begin, end) {\n const rangeReader = this.pdfNetworkStream.getRangeReader(begin, end);\n if (!rangeReader.isStreamingSupported) {\n rangeReader.onProgress = this.onProgress.bind(this);\n }\n\n let chunks = [],\n loaded = 0;\n return new Promise((resolve, reject) => {\n const readChunk = chunk => {\n try {\n if (!chunk.done) {\n const data = chunk.value;\n chunks.push(data);\n loaded += arrayByteLength(data);\n if (rangeReader.isStreamingSupported) {\n this.onProgress({ loaded });\n }\n rangeReader.read().then(readChunk, reject);\n return;\n }\n const chunkData = arraysToBytes(chunks);\n chunks = null;\n resolve(chunkData);\n } catch (e) {\n reject(e);\n }\n };\n rangeReader.read().then(readChunk, reject);\n }).then(data => {\n if (this.aborted) {\n return; // Ignoring any data after abort.\n }\n this.onReceiveData({ chunk: data, begin });\n });\n }\n\n /**\n * Get all the chunks that are not yet loaded and group them into\n * contiguous ranges to load in as few requests as possible.\n */\n requestAllChunks() {\n const missingChunks = this.stream.getMissingChunks();\n this._requestChunks(missingChunks);\n return this._loadedStreamCapability.promise;\n }\n\n _requestChunks(chunks) {\n const requestId = this.currRequestId++;\n\n const chunksNeeded = new Set();\n this._chunksNeededByRequest.set(requestId, chunksNeeded);\n for (const chunk of chunks) {\n if (!this.stream.hasChunk(chunk)) {\n chunksNeeded.add(chunk);\n }\n }\n\n if (chunksNeeded.size === 0) {\n return Promise.resolve();\n }\n\n const capability = createPromiseCapability();\n this._promisesByRequest.set(requestId, capability);\n\n const chunksToRequest = [];\n for (const chunk of chunksNeeded) {\n let requestIds = this._requestsByChunk.get(chunk);\n if (!requestIds) {\n requestIds = [];\n this._requestsByChunk.set(chunk, requestIds);\n\n chunksToRequest.push(chunk);\n }\n requestIds.push(requestId);\n }\n\n if (chunksToRequest.length > 0) {\n const groupedChunksToRequest = this.groupChunks(chunksToRequest);\n for (const groupedChunk of groupedChunksToRequest) {\n const begin = groupedChunk.beginChunk * this.chunkSize;\n const end = Math.min(\n groupedChunk.endChunk * this.chunkSize,\n this.length\n );\n this.sendRequest(begin, end).catch(capability.reject);\n }\n }\n\n return capability.promise.catch(reason => {\n if (this.aborted) {\n return; // Ignoring any pending requests after abort.\n }\n throw reason;\n });\n }\n\n getStream() {\n return this.stream;\n }\n\n /**\n * Loads any chunks in the requested range that are not yet loaded.\n */\n requestRange(begin, end) {\n end = Math.min(end, this.length);\n\n const beginChunk = this.getBeginChunk(begin);\n const endChunk = this.getEndChunk(end);\n\n const chunks = [];\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n chunks.push(chunk);\n }\n return this._requestChunks(chunks);\n }\n\n requestRanges(ranges = []) {\n const chunksToRequest = [];\n for (const range of ranges) {\n const beginChunk = this.getBeginChunk(range.begin);\n const endChunk = this.getEndChunk(range.end);\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!chunksToRequest.includes(chunk)) {\n chunksToRequest.push(chunk);\n }\n }\n }\n\n chunksToRequest.sort(function (a, b) {\n return a - b;\n });\n return this._requestChunks(chunksToRequest);\n }\n\n /**\n * Groups a sorted array of chunks into as few contiguous larger\n * chunks as possible.\n */\n groupChunks(chunks) {\n const groupedChunks = [];\n let beginChunk = -1;\n let prevChunk = -1;\n\n for (let i = 0, ii = chunks.length; i < ii; ++i) {\n const chunk = chunks[i];\n if (beginChunk < 0) {\n beginChunk = chunk;\n }\n\n if (prevChunk >= 0 && prevChunk + 1 !== chunk) {\n groupedChunks.push({ beginChunk, endChunk: prevChunk + 1 });\n beginChunk = chunk;\n }\n if (i + 1 === chunks.length) {\n groupedChunks.push({ beginChunk, endChunk: chunk + 1 });\n }\n\n prevChunk = chunk;\n }\n return groupedChunks;\n }\n\n onProgress(args) {\n this.msgHandler.send(\"DocProgress\", {\n loaded: this.stream.numChunksLoaded * this.chunkSize + args.loaded,\n total: this.length,\n });\n }\n\n onReceiveData(args) {\n const chunk = args.chunk;\n const isProgressive = args.begin === undefined;\n const begin = isProgressive ? this.progressiveDataLength : args.begin;\n const end = begin + chunk.byteLength;\n\n const beginChunk = Math.floor(begin / this.chunkSize);\n const endChunk =\n end < this.length\n ? Math.floor(end / this.chunkSize)\n : Math.ceil(end / this.chunkSize);\n\n if (isProgressive) {\n this.stream.onReceiveProgressiveData(chunk);\n this.progressiveDataLength = end;\n } else {\n this.stream.onReceiveData(begin, chunk);\n }\n\n if (this.stream.isDataLoaded) {\n this._loadedStreamCapability.resolve(this.stream);\n }\n\n const loadedRequests = [];\n for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n // The server might return more chunks than requested.\n const requestIds = this._requestsByChunk.get(curChunk);\n if (!requestIds) {\n continue;\n }\n this._requestsByChunk.delete(curChunk);\n\n for (const requestId of requestIds) {\n const chunksNeeded = this._chunksNeededByRequest.get(requestId);\n if (chunksNeeded.has(curChunk)) {\n chunksNeeded.delete(curChunk);\n }\n\n if (chunksNeeded.size > 0) {\n continue;\n }\n loadedRequests.push(requestId);\n }\n }\n\n // If there are no pending requests, automatically fetch the next\n // unfetched chunk of the PDF file.\n if (!this.disableAutoFetch && this._requestsByChunk.size === 0) {\n let nextEmptyChunk;\n if (this.stream.numChunksLoaded === 1) {\n // This is a special optimization so that after fetching the first\n // chunk, rather than fetching the second chunk, we fetch the last\n // chunk.\n const lastChunk = this.stream.numChunks - 1;\n if (!this.stream.hasChunk(lastChunk)) {\n nextEmptyChunk = lastChunk;\n }\n } else {\n nextEmptyChunk = this.stream.nextEmptyChunk(endChunk);\n }\n if (Number.isInteger(nextEmptyChunk)) {\n this._requestChunks([nextEmptyChunk]);\n }\n }\n\n for (const requestId of loadedRequests) {\n const capability = this._promisesByRequest.get(requestId);\n this._promisesByRequest.delete(requestId);\n capability.resolve();\n }\n\n this.msgHandler.send(\"DocProgress\", {\n loaded: this.stream.numChunksLoaded * this.chunkSize,\n total: this.length,\n });\n }\n\n onError(err) {\n this._loadedStreamCapability.reject(err);\n }\n\n getBeginChunk(begin) {\n return Math.floor(begin / this.chunkSize);\n }\n\n getEndChunk(end) {\n return Math.floor((end - 1) / this.chunkSize) + 1;\n }\n\n abort(reason) {\n this.aborted = true;\n if (this.pdfNetworkStream) {\n this.pdfNetworkStream.cancelAllRequests(reason);\n }\n for (const capability of this._promisesByRequest.values()) {\n capability.reject(reason);\n }\n }\n}\n\nexport { ChunkedStream, ChunkedStreamManager };\n","/* Copyright 2019 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n BaseException,\n FontType,\n objectSize,\n StreamType,\n stringToPDFString,\n warn,\n} from \"../shared/util.js\";\nimport { Dict, isName, Ref, RefSet } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\n\nfunction getLookupTableFactory(initializer) {\n let lookup;\n return function () {\n if (initializer) {\n lookup = Object.create(null);\n initializer(lookup);\n initializer = null;\n }\n return lookup;\n };\n}\n\nfunction getArrayLookupTableFactory(initializer) {\n let lookup;\n return function () {\n if (initializer) {\n let arr = initializer();\n initializer = null;\n lookup = Object.create(null);\n for (let i = 0, ii = arr.length; i < ii; i += 2) {\n lookup[arr[i]] = arr[i + 1];\n }\n arr = null;\n }\n return lookup;\n };\n}\n\nclass MissingDataException extends BaseException {\n constructor(begin, end) {\n super(`Missing data [${begin}, ${end})`, \"MissingDataException\");\n this.begin = begin;\n this.end = end;\n }\n}\n\nclass ParserEOFException extends BaseException {\n constructor(msg) {\n super(msg, \"ParserEOFException\");\n }\n}\n\nclass XRefEntryException extends BaseException {\n constructor(msg) {\n super(msg, \"XRefEntryException\");\n }\n}\n\nclass XRefParseException extends BaseException {\n constructor(msg) {\n super(msg, \"XRefParseException\");\n }\n}\n\nclass DocStats {\n constructor(handler) {\n this._handler = handler;\n\n this._streamTypes = new Set();\n this._fontTypes = new Set();\n }\n\n _send() {\n const streamTypes = Object.create(null),\n fontTypes = Object.create(null);\n for (const type of this._streamTypes) {\n streamTypes[type] = true;\n }\n for (const type of this._fontTypes) {\n fontTypes[type] = true;\n }\n this._handler.send(\"DocStats\", { streamTypes, fontTypes });\n }\n\n addStreamType(type) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(StreamType[type] === type, 'addStreamType: Invalid \"type\" value.');\n }\n if (this._streamTypes.has(type)) {\n return;\n }\n this._streamTypes.add(type);\n this._send();\n }\n\n addFontType(type) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(FontType[type] === type, 'addFontType: Invalid \"type\" value.');\n }\n if (this._fontTypes.has(type)) {\n return;\n }\n this._fontTypes.add(type);\n this._send();\n }\n}\n\n/**\n * Get the value of an inheritable property.\n *\n * If the PDF specification explicitly lists a property in a dictionary as\n * inheritable, then the value of the property may be present in the dictionary\n * itself or in one or more parents of the dictionary.\n *\n * If the key is not found in the tree, `undefined` is returned. Otherwise,\n * the value for the key is returned or, if `stopWhenFound` is `false`, a list\n * of values is returned.\n *\n * @param {Dict} dict - Dictionary from where to start the traversal.\n * @param {string} key - The key of the property to find the value for.\n * @param {boolean} getArray - Whether or not the value should be fetched as an\n * array. The default value is `false`.\n * @param {boolean} stopWhenFound - Whether or not to stop the traversal when\n * the key is found. If set to `false`, we always walk up the entire parent\n * chain, for example to be able to find `\\Resources` placed on multiple\n * levels of the tree. The default value is `true`.\n */\nfunction getInheritableProperty({\n dict,\n key,\n getArray = false,\n stopWhenFound = true,\n}) {\n let values;\n const visited = new RefSet();\n\n while (dict instanceof Dict && !(dict.objId && visited.has(dict.objId))) {\n if (dict.objId) {\n visited.put(dict.objId);\n }\n const value = getArray ? dict.getArray(key) : dict.get(key);\n if (value !== undefined) {\n if (stopWhenFound) {\n return value;\n }\n if (!values) {\n values = [];\n }\n values.push(value);\n }\n dict = dict.get(\"Parent\");\n }\n return values;\n}\n\n// prettier-ignore\nconst ROMAN_NUMBER_MAP = [\n \"\", \"C\", \"CC\", \"CCC\", \"CD\", \"D\", \"DC\", \"DCC\", \"DCCC\", \"CM\",\n \"\", \"X\", \"XX\", \"XXX\", \"XL\", \"L\", \"LX\", \"LXX\", \"LXXX\", \"XC\",\n \"\", \"I\", \"II\", \"III\", \"IV\", \"V\", \"VI\", \"VII\", \"VIII\", \"IX\"\n];\n\n/**\n * Converts positive integers to (upper case) Roman numerals.\n * @param {number} number - The number that should be converted.\n * @param {boolean} lowerCase - Indicates if the result should be converted\n * to lower case letters. The default value is `false`.\n * @returns {string} The resulting Roman number.\n */\nfunction toRomanNumerals(number, lowerCase = false) {\n assert(\n Number.isInteger(number) && number > 0,\n \"The number should be a positive integer.\"\n );\n const romanBuf = [];\n let pos;\n // Thousands\n while (number >= 1000) {\n number -= 1000;\n romanBuf.push(\"M\");\n }\n // Hundreds\n pos = (number / 100) | 0;\n number %= 100;\n romanBuf.push(ROMAN_NUMBER_MAP[pos]);\n // Tens\n pos = (number / 10) | 0;\n number %= 10;\n romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);\n // Ones\n romanBuf.push(ROMAN_NUMBER_MAP[20 + number]); // eslint-disable-line unicorn/no-array-push-push\n\n const romanStr = romanBuf.join(\"\");\n return lowerCase ? romanStr.toLowerCase() : romanStr;\n}\n\n// Calculate the base 2 logarithm of the number `x`. This differs from the\n// native function in the sense that it returns the ceiling value and that it\n// returns 0 instead of `Infinity`/`NaN` for `x` values smaller than/equal to 0.\nfunction log2(x) {\n if (x <= 0) {\n return 0;\n }\n return Math.ceil(Math.log2(x));\n}\n\nfunction readInt8(data, offset) {\n return (data[offset] << 24) >> 24;\n}\n\nfunction readUint16(data, offset) {\n return (data[offset] << 8) | data[offset + 1];\n}\n\nfunction readUint32(data, offset) {\n return (\n ((data[offset] << 24) |\n (data[offset + 1] << 16) |\n (data[offset + 2] << 8) |\n data[offset + 3]) >>>\n 0\n );\n}\n\n// Checks if ch is one of the following characters: SPACE, TAB, CR or LF.\nfunction isWhiteSpace(ch) {\n return ch === 0x20 || ch === 0x09 || ch === 0x0d || ch === 0x0a;\n}\n\n/**\n * AcroForm field names use an array like notation to refer to\n * repeated XFA elements e.g. foo.bar[nnn].\n * see: XFA Spec Chapter 3 - Repeated Elements\n *\n * @param {string} path - XFA path name.\n * @returns {Array} - Array of Objects with the name and pos of\n * each part of the path.\n */\nfunction parseXFAPath(path) {\n const positionPattern = /(.+)\\[(\\d+)\\]$/;\n return path.split(\".\").map(component => {\n const m = component.match(positionPattern);\n if (m) {\n return { name: m[1], pos: parseInt(m[2], 10) };\n }\n return { name: component, pos: 0 };\n });\n}\n\nfunction escapePDFName(str) {\n const buffer = [];\n let start = 0;\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n // Whitespace or delimiters aren't regular chars, so escape them.\n if (\n char < 0x21 ||\n char > 0x7e ||\n char === 0x23 /* # */ ||\n char === 0x28 /* ( */ ||\n char === 0x29 /* ) */ ||\n char === 0x3c /* < */ ||\n char === 0x3e /* > */ ||\n char === 0x5b /* [ */ ||\n char === 0x5d /* ] */ ||\n char === 0x7b /* { */ ||\n char === 0x7d /* } */ ||\n char === 0x2f /* / */ ||\n char === 0x25 /* % */\n ) {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n buffer.push(`#${char.toString(16)}`);\n start = i + 1;\n }\n }\n\n if (buffer.length === 0) {\n return str;\n }\n\n if (start < str.length) {\n buffer.push(str.substring(start, str.length));\n }\n\n return buffer.join(\"\");\n}\n\nfunction _collectJS(entry, xref, list, parents) {\n if (!entry) {\n return;\n }\n\n let parent = null;\n if (entry instanceof Ref) {\n if (parents.has(entry)) {\n // If we've already found entry then we've a cycle.\n return;\n }\n parent = entry;\n parents.put(parent);\n entry = xref.fetch(entry);\n }\n if (Array.isArray(entry)) {\n for (const element of entry) {\n _collectJS(element, xref, list, parents);\n }\n } else if (entry instanceof Dict) {\n if (isName(entry.get(\"S\"), \"JavaScript\")) {\n const js = entry.get(\"JS\");\n let code;\n if (js instanceof BaseStream) {\n code = js.getString();\n } else if (typeof js === \"string\") {\n code = js;\n }\n code = code && stringToPDFString(code);\n if (code) {\n list.push(code);\n }\n }\n _collectJS(entry.getRaw(\"Next\"), xref, list, parents);\n }\n\n if (parent) {\n parents.remove(parent);\n }\n}\n\nfunction collectActions(xref, dict, eventType) {\n const actions = Object.create(null);\n const additionalActionsDicts = getInheritableProperty({\n dict,\n key: \"AA\",\n stopWhenFound: false,\n });\n if (additionalActionsDicts) {\n // additionalActionsDicts contains dicts from ancestors\n // as they're found in the tree from bottom to top.\n // So the dicts are visited in reverse order to guarantee\n // that actions from elder ancestors will be overwritten\n // by ones from younger ancestors.\n for (let i = additionalActionsDicts.length - 1; i >= 0; i--) {\n const additionalActions = additionalActionsDicts[i];\n if (!(additionalActions instanceof Dict)) {\n continue;\n }\n for (const key of additionalActions.getKeys()) {\n const action = eventType[key];\n if (!action) {\n continue;\n }\n const actionDict = additionalActions.getRaw(key);\n const parents = new RefSet();\n const list = [];\n _collectJS(actionDict, xref, list, parents);\n if (list.length > 0) {\n actions[action] = list;\n }\n }\n }\n }\n // Collect the Action if any (we may have one on pushbutton).\n if (dict.has(\"A\")) {\n const actionDict = dict.get(\"A\");\n const parents = new RefSet();\n const list = [];\n _collectJS(actionDict, xref, list, parents);\n if (list.length > 0) {\n actions.Action = list;\n }\n }\n return objectSize(actions) > 0 ? actions : null;\n}\n\nconst XMLEntities = {\n /* < */ 0x3c: \"<\",\n /* > */ 0x3e: \">\",\n /* & */ 0x26: \"&\",\n /* \" */ 0x22: \""\",\n /* ' */ 0x27: \"'\",\n};\n\nfunction encodeToXmlString(str) {\n const buffer = [];\n let start = 0;\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.codePointAt(i);\n if (0x20 <= char && char <= 0x7e) {\n // ascii\n const entity = XMLEntities[char];\n if (entity) {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n buffer.push(entity);\n start = i + 1;\n }\n } else {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n buffer.push(`&#x${char.toString(16).toUpperCase()};`);\n if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) {\n // char is represented by two u16\n i++;\n }\n start = i + 1;\n }\n }\n\n if (buffer.length === 0) {\n return str;\n }\n if (start < str.length) {\n buffer.push(str.substring(start, str.length));\n }\n return buffer.join(\"\");\n}\n\nfunction validateCSSFont(cssFontInfo) {\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/font-style.\n const DEFAULT_CSS_FONT_OBLIQUE = \"14\";\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight.\n const DEFAULT_CSS_FONT_WEIGHT = \"400\";\n const CSS_FONT_WEIGHT_VALUES = new Set([\n \"100\",\n \"200\",\n \"300\",\n \"400\",\n \"500\",\n \"600\",\n \"700\",\n \"800\",\n \"900\",\n \"1000\",\n \"normal\",\n \"bold\",\n \"bolder\",\n \"lighter\",\n ]);\n\n const { fontFamily, fontWeight, italicAngle } = cssFontInfo;\n\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/string.\n if (/^\".*\"$/.test(fontFamily)) {\n if (/[^\\\\]\"/.test(fontFamily.slice(1, fontFamily.length - 1))) {\n warn(`XFA - FontFamily contains some unescaped \": ${fontFamily}.`);\n return false;\n }\n } else if (/^'.*'$/.test(fontFamily)) {\n if (/[^\\\\]'/.test(fontFamily.slice(1, fontFamily.length - 1))) {\n warn(`XFA - FontFamily contains some unescaped ': ${fontFamily}.`);\n return false;\n }\n } else {\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/custom-ident.\n for (const ident of fontFamily.split(/[ \\t]+/)) {\n if (/^(\\d|(-(\\d|-)))/.test(ident) || !/^[\\w-\\\\]+$/.test(ident)) {\n warn(\n `XFA - FontFamily contains some invalid : ${fontFamily}.`\n );\n return false;\n }\n }\n }\n\n const weight = fontWeight ? fontWeight.toString() : \"\";\n cssFontInfo.fontWeight = CSS_FONT_WEIGHT_VALUES.has(weight)\n ? weight\n : DEFAULT_CSS_FONT_WEIGHT;\n\n const angle = parseFloat(italicAngle);\n cssFontInfo.italicAngle =\n isNaN(angle) || angle < -90 || angle > 90\n ? DEFAULT_CSS_FONT_OBLIQUE\n : italicAngle.toString();\n\n return true;\n}\n\nfunction recoverJsURL(str) {\n // Attempt to recover valid URLs from `JS` entries with certain\n // white-listed formats:\n // - window.open('http://example.com')\n // - app.launchURL('http://example.com', true)\n // - xfa.host.gotoURL('http://example.com')\n const URL_OPEN_METHODS = [\"app.launchURL\", \"window.open\", \"xfa.host.gotoURL\"];\n const regex = new RegExp(\n \"^\\\\s*(\" +\n URL_OPEN_METHODS.join(\"|\").split(\".\").join(\"\\\\.\") +\n \")\\\\((?:'|\\\")([^'\\\"]*)(?:'|\\\")(?:,\\\\s*(\\\\w+)\\\\)|\\\\))\",\n \"i\"\n );\n\n const jsUrl = regex.exec(str);\n if (jsUrl && jsUrl[2]) {\n const url = jsUrl[2];\n let newWindow = false;\n\n if (jsUrl[3] === \"true\" && jsUrl[1] === \"app.launchURL\") {\n newWindow = true;\n }\n return { url, newWindow };\n }\n\n return null;\n}\n\nexport {\n collectActions,\n DocStats,\n encodeToXmlString,\n escapePDFName,\n getArrayLookupTableFactory,\n getInheritableProperty,\n getLookupTableFactory,\n isWhiteSpace,\n log2,\n MissingDataException,\n ParserEOFException,\n parseXFAPath,\n readInt8,\n readUint16,\n readUint32,\n recoverJsURL,\n toRomanNumerals,\n validateCSSFont,\n XRefEntryException,\n XRefParseException,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bytesToString, shadow, unreachable } from \"../shared/util.js\";\n\nclass BaseStream {\n constructor() {\n if (this.constructor === BaseStream) {\n unreachable(\"Cannot initialize BaseStream.\");\n }\n }\n\n // eslint-disable-next-line getter-return\n get length() {\n unreachable(\"Abstract getter `length` accessed\");\n }\n\n // eslint-disable-next-line getter-return\n get isEmpty() {\n unreachable(\"Abstract getter `isEmpty` accessed\");\n }\n\n get isDataLoaded() {\n return shadow(this, \"isDataLoaded\", true);\n }\n\n getByte() {\n unreachable(\"Abstract method `getByte` called\");\n }\n\n getBytes(length) {\n unreachable(\"Abstract method `getBytes` called\");\n }\n\n peekByte() {\n const peekedByte = this.getByte();\n if (peekedByte !== -1) {\n this.pos--;\n }\n return peekedByte;\n }\n\n peekBytes(length) {\n const bytes = this.getBytes(length);\n this.pos -= bytes.length;\n return bytes;\n }\n\n getUint16() {\n const b0 = this.getByte();\n const b1 = this.getByte();\n if (b0 === -1 || b1 === -1) {\n return -1;\n }\n return (b0 << 8) + b1;\n }\n\n getInt32() {\n const b0 = this.getByte();\n const b1 = this.getByte();\n const b2 = this.getByte();\n const b3 = this.getByte();\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n }\n\n getByteRange(begin, end) {\n unreachable(\"Abstract method `getByteRange` called\");\n }\n\n getString(length) {\n return bytesToString(this.getBytes(length));\n }\n\n skip(n) {\n this.pos += n || 1;\n }\n\n reset() {\n unreachable(\"Abstract method `reset` called\");\n }\n\n moveStart() {\n unreachable(\"Abstract method `moveStart` called\");\n }\n\n makeSubStream(start, length, dict = null) {\n unreachable(\"Abstract method `makeSubStream` called\");\n }\n\n /**\n * @returns {Array | null}\n */\n getBaseStreams() {\n return null;\n }\n}\n\nexport { BaseStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseStream } from \"./base_stream.js\";\nimport { stringToBytes } from \"../shared/util.js\";\n\nclass Stream extends BaseStream {\n constructor(arrayBuffer, start, length, dict) {\n super();\n\n this.bytes =\n arrayBuffer instanceof Uint8Array\n ? arrayBuffer\n : new Uint8Array(arrayBuffer);\n this.start = start || 0;\n this.pos = this.start;\n this.end = start + length || this.bytes.length;\n this.dict = dict;\n }\n\n get length() {\n return this.end - this.start;\n }\n\n get isEmpty() {\n return this.length === 0;\n }\n\n getByte() {\n if (this.pos >= this.end) {\n return -1;\n }\n return this.bytes[this.pos++];\n }\n\n getBytes(length) {\n const bytes = this.bytes;\n const pos = this.pos;\n const strEnd = this.end;\n\n if (!length) {\n return bytes.subarray(pos, strEnd);\n }\n let end = pos + length;\n if (end > strEnd) {\n end = strEnd;\n }\n this.pos = end;\n return bytes.subarray(pos, end);\n }\n\n getByteRange(begin, end) {\n if (begin < 0) {\n begin = 0;\n }\n if (end > this.end) {\n end = this.end;\n }\n return this.bytes.subarray(begin, end);\n }\n\n reset() {\n this.pos = this.start;\n }\n\n moveStart() {\n this.start = this.pos;\n }\n\n makeSubStream(start, length, dict = null) {\n return new Stream(this.bytes.buffer, start, length, dict);\n }\n}\n\nclass StringStream extends Stream {\n constructor(str) {\n super(stringToBytes(str));\n }\n}\n\nclass NullStream extends Stream {\n constructor() {\n super(new Uint8Array(0));\n }\n}\n\nexport { NullStream, Stream, StringStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n FormatError,\n info,\n InvalidPDFException,\n isArrayEqual,\n OPS,\n PageActionEventType,\n RenderingIntentFlag,\n shadow,\n stringToBytes,\n stringToPDFString,\n stringToUTF8String,\n unreachable,\n UNSUPPORTED_FEATURES,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport {\n collectActions,\n getInheritableProperty,\n isWhiteSpace,\n MissingDataException,\n validateCSSFont,\n XRefEntryException,\n XRefParseException,\n} from \"./core_utils.js\";\nimport { Dict, isName, Name, Ref } from \"./primitives.js\";\nimport { getXfaFontDict, getXfaFontName } from \"./xfa_fonts.js\";\nimport { AnnotationFactory } from \"./annotation.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { calculateMD5 } from \"./crypto.js\";\nimport { Catalog } from \"./catalog.js\";\nimport { clearGlobalCaches } from \"./cleanup_helper.js\";\nimport { DatasetReader } from \"./dataset_reader.js\";\nimport { Linearization } from \"./parser.js\";\nimport { NullStream } from \"./stream.js\";\nimport { ObjectLoader } from \"./object_loader.js\";\nimport { OperatorList } from \"./operator_list.js\";\nimport { PartialEvaluator } from \"./evaluator.js\";\nimport { StreamsSequenceStream } from \"./decode_stream.js\";\nimport { StructTreePage } from \"./struct_tree.js\";\nimport { XFAFactory } from \"./xfa/factory.js\";\nimport { XRef } from \"./xref.js\";\n\nconst DEFAULT_USER_UNIT = 1.0;\nconst LETTER_SIZE_MEDIABOX = [0, 0, 612, 792];\n\nclass Page {\n constructor({\n pdfManager,\n xref,\n pageIndex,\n pageDict,\n ref,\n globalIdFactory,\n fontCache,\n builtInCMapCache,\n standardFontDataCache,\n globalImageCache,\n nonBlendModesSet,\n xfaFactory,\n }) {\n this.pdfManager = pdfManager;\n this.pageIndex = pageIndex;\n this.pageDict = pageDict;\n this.xref = xref;\n this.ref = ref;\n this.fontCache = fontCache;\n this.builtInCMapCache = builtInCMapCache;\n this.standardFontDataCache = standardFontDataCache;\n this.globalImageCache = globalImageCache;\n this.nonBlendModesSet = nonBlendModesSet;\n this.evaluatorOptions = pdfManager.evaluatorOptions;\n this.resourcesPromise = null;\n this.xfaFactory = xfaFactory;\n\n const idCounters = {\n obj: 0,\n };\n this._localIdFactory = class extends globalIdFactory {\n static createObjId() {\n return `p${pageIndex}_${++idCounters.obj}`;\n }\n\n static getPageObjId() {\n return `page${ref.toString()}`;\n }\n };\n }\n\n /**\n * @private\n */\n _getInheritableProperty(key, getArray = false) {\n const value = getInheritableProperty({\n dict: this.pageDict,\n key,\n getArray,\n stopWhenFound: false,\n });\n if (!Array.isArray(value)) {\n return value;\n }\n if (value.length === 1 || !(value[0] instanceof Dict)) {\n return value[0];\n }\n return Dict.merge({ xref: this.xref, dictArray: value });\n }\n\n get content() {\n return this.pageDict.getArray(\"Contents\");\n }\n\n get resources() {\n // For robustness: The spec states that a \\Resources entry has to be\n // present, but can be empty. Some documents still omit it; in this case\n // we return an empty dictionary.\n return shadow(\n this,\n \"resources\",\n this._getInheritableProperty(\"Resources\") || Dict.empty\n );\n }\n\n _getBoundingBox(name) {\n if (this.xfaData) {\n return this.xfaData.bbox;\n }\n\n const box = this._getInheritableProperty(name, /* getArray = */ true);\n\n if (Array.isArray(box) && box.length === 4) {\n if (box[2] - box[0] !== 0 && box[3] - box[1] !== 0) {\n return box;\n }\n warn(`Empty /${name} entry.`);\n }\n return null;\n }\n\n get mediaBox() {\n // Reset invalid media box to letter size.\n return shadow(\n this,\n \"mediaBox\",\n this._getBoundingBox(\"MediaBox\") || LETTER_SIZE_MEDIABOX\n );\n }\n\n get cropBox() {\n // Reset invalid crop box to media box.\n return shadow(\n this,\n \"cropBox\",\n this._getBoundingBox(\"CropBox\") || this.mediaBox\n );\n }\n\n get userUnit() {\n let obj = this.pageDict.get(\"UserUnit\");\n if (typeof obj !== \"number\" || obj <= 0) {\n obj = DEFAULT_USER_UNIT;\n }\n return shadow(this, \"userUnit\", obj);\n }\n\n get view() {\n // From the spec, 6th ed., p.963:\n // \"The crop, bleed, trim, and art boxes should not ordinarily\n // extend beyond the boundaries of the media box. If they do, they are\n // effectively reduced to their intersection with the media box.\"\n const { cropBox, mediaBox } = this;\n let view;\n if (cropBox === mediaBox || isArrayEqual(cropBox, mediaBox)) {\n view = mediaBox;\n } else {\n const box = Util.intersect(cropBox, mediaBox);\n if (box && box[2] - box[0] !== 0 && box[3] - box[1] !== 0) {\n view = box;\n } else {\n warn(\"Empty /CropBox and /MediaBox intersection.\");\n }\n }\n return shadow(this, \"view\", view || mediaBox);\n }\n\n get rotate() {\n let rotate = this._getInheritableProperty(\"Rotate\") || 0;\n\n // Normalize rotation so it's a multiple of 90 and between 0 and 270.\n if (rotate % 90 !== 0) {\n rotate = 0;\n } else if (rotate >= 360) {\n rotate %= 360;\n } else if (rotate < 0) {\n // The spec doesn't cover negatives. Assume it's counterclockwise\n // rotation. The following is the other implementation of modulo.\n rotate = ((rotate % 360) + 360) % 360;\n }\n return shadow(this, \"rotate\", rotate);\n }\n\n /**\n * @private\n */\n _onSubStreamError(handler, reason, objId) {\n if (this.evaluatorOptions.ignoreErrors) {\n // Error(s) when reading one of the /Contents sub-streams -- sending\n // unsupported feature notification and allow parsing to continue.\n handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorContentSubStream,\n });\n warn(`getContentStream - ignoring sub-stream (${objId}): \"${reason}\".`);\n return;\n }\n throw reason;\n }\n\n /**\n * @returns {Promise}\n */\n getContentStream(handler) {\n return this.pdfManager.ensure(this, \"content\").then(content => {\n if (content instanceof BaseStream) {\n return content;\n }\n if (Array.isArray(content)) {\n return new StreamsSequenceStream(\n content,\n this._onSubStreamError.bind(this, handler)\n );\n }\n // Replace non-existent page content with empty content.\n return new NullStream();\n });\n }\n\n get xfaData() {\n return shadow(\n this,\n \"xfaData\",\n this.xfaFactory\n ? { bbox: this.xfaFactory.getBoundingBox(this.pageIndex) }\n : null\n );\n }\n\n save(handler, task, annotationStorage) {\n const partialEvaluator = new PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: this.pageIndex,\n idFactory: this._localIdFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n standardFontDataCache: this.standardFontDataCache,\n globalImageCache: this.globalImageCache,\n options: this.evaluatorOptions,\n });\n\n // Fetch the page's annotations and save the content\n // in case of interactive form fields.\n return this._parsedAnnotations.then(function (annotations) {\n const newRefsPromises = [];\n for (const annotation of annotations) {\n if (!annotation.mustBePrinted(annotationStorage)) {\n continue;\n }\n newRefsPromises.push(\n annotation\n .save(partialEvaluator, task, annotationStorage)\n .catch(function (reason) {\n warn(\n \"save - ignoring annotation data during \" +\n `\"${task.name}\" task: \"${reason}\".`\n );\n return null;\n })\n );\n }\n\n return Promise.all(newRefsPromises);\n });\n }\n\n loadResources(keys) {\n if (!this.resourcesPromise) {\n // TODO: add async `_getInheritableProperty` and remove this.\n this.resourcesPromise = this.pdfManager.ensure(this, \"resources\");\n }\n return this.resourcesPromise.then(() => {\n const objectLoader = new ObjectLoader(this.resources, keys, this.xref);\n return objectLoader.load();\n });\n }\n\n getOperatorList({\n handler,\n sink,\n task,\n intent,\n cacheKey,\n annotationStorage = null,\n }) {\n const contentStreamPromise = this.getContentStream(handler);\n const resourcesPromise = this.loadResources([\n \"ColorSpace\",\n \"ExtGState\",\n \"Font\",\n \"Pattern\",\n \"Properties\",\n \"Shading\",\n \"XObject\",\n ]);\n\n const partialEvaluator = new PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: this.pageIndex,\n idFactory: this._localIdFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n standardFontDataCache: this.standardFontDataCache,\n globalImageCache: this.globalImageCache,\n options: this.evaluatorOptions,\n });\n\n const dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n let MCIDBoundingBoxes, positionByOperationIndex, noMCIDBoundingBoxes;\n const pageListPromise = dataPromises.then(([contentStream]) => {\n const opList = new OperatorList(intent, sink);\n\n handler.send(\"StartRenderPage\", {\n transparency: partialEvaluator.hasBlendModes(\n this.resources,\n this.nonBlendModesSet\n ),\n pageIndex: this.pageIndex,\n cacheKey,\n });\n\n return partialEvaluator\n .getOperatorList({\n stream: contentStream,\n task,\n resources: this.resources,\n operatorList: opList,\n intent\n })\n .then(function ([boundingBoxesByMCID, operationArray, boundingBoxesWithoutMCID]) {\n MCIDBoundingBoxes = boundingBoxesByMCID;\n positionByOperationIndex = operationArray;\n noMCIDBoundingBoxes = boundingBoxesWithoutMCID;\n return opList;\n });\n });\n\n // Fetch the page's annotations and add their operator lists to the\n // page's operator list to render them.\n return Promise.all([pageListPromise, this._parsedAnnotations]).then(\n function ([pageOpList, annotations]) {\n if (\n annotations.length === 0 ||\n intent & RenderingIntentFlag.ANNOTATIONS_DISABLE\n ) {\n if (intent & RenderingIntentFlag.OPLIST) {\n pageOpList.addOp(OPS.operationPosition, positionByOperationIndex);\n pageOpList.addOp(OPS.boundingBoxes, [MCIDBoundingBoxes, noMCIDBoundingBoxes]);\n }\n pageOpList.flush(true);\n return { length: pageOpList.totalLength };\n }\n const renderForms = !!(intent & RenderingIntentFlag.ANNOTATIONS_FORMS),\n intentAny = !!(intent & RenderingIntentFlag.ANY),\n intentDisplay = !!(intent & RenderingIntentFlag.DISPLAY),\n intentPrint = !!(intent & RenderingIntentFlag.PRINT);\n\n // Collect the operator list promises for the annotations. Each promise\n // is resolved with the complete operator list for a single annotation.\n const opListPromises = [];\n for (const annotation of annotations) {\n if (\n intentAny ||\n (intentDisplay && annotation.mustBeViewed(annotationStorage)) ||\n (intentPrint && annotation.mustBePrinted(annotationStorage)) ||\n intent & RenderingIntentFlag.OPLIST\n ) {\n opListPromises.push(\n annotation\n .getOperatorList(\n partialEvaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n )\n .catch(function (reason) {\n warn(\n \"getOperatorList - ignoring annotation data during \" +\n `\"${task.name}\" task: \"${reason}\".`\n );\n return null;\n })\n );\n }\n }\n\n return Promise.all(opListPromises).then(function (opLists) {\n pageOpList.addOp(OPS.beginAnnotations, []);\n for (const opList of opLists) {\n pageOpList.addOpList(opList);\n }\n pageOpList.addOp(OPS.endAnnotations, []);\n if (intent & RenderingIntentFlag.OPLIST) { \n pageOpList.addOp(OPS.save, [MCIDBoundingBoxes, noMCIDBoundingBoxes]);\n }\n pageOpList.flush(true);\n return { length: pageOpList.totalLength };\n });\n }\n );\n }\n\n extractTextContent({\n handler,\n task,\n includeMarkedContent,\n sink,\n combineTextItems,\n }) {\n const contentStreamPromise = this.getContentStream(handler);\n const resourcesPromise = this.loadResources([\n \"ExtGState\",\n \"Font\",\n \"Properties\",\n \"XObject\",\n ]);\n\n const dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n return dataPromises.then(([contentStream]) => {\n const partialEvaluator = new PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: this.pageIndex,\n idFactory: this._localIdFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n standardFontDataCache: this.standardFontDataCache,\n globalImageCache: this.globalImageCache,\n options: this.evaluatorOptions,\n });\n\n return partialEvaluator.getTextContent({\n stream: contentStream,\n task,\n resources: this.resources,\n includeMarkedContent,\n combineTextItems,\n sink,\n viewBox: this.view,\n });\n });\n }\n\n async getStructTree() {\n const structTreeRoot = await this.pdfManager.ensureCatalog(\n \"structTreeRoot\"\n );\n if (!structTreeRoot) {\n return null;\n }\n const structTree = await this.pdfManager.ensure(this, \"_parseStructTree\", [\n structTreeRoot,\n ]);\n return structTree.serializable;\n }\n\n /**\n * @private\n */\n _parseStructTree(structTreeRoot) {\n const tree = new StructTreePage(structTreeRoot, this.pageDict);\n tree.parse();\n return tree;\n }\n\n getAnnotationsData(intent) {\n return this._parsedAnnotations.then(function (annotations) {\n const annotationsData = [];\n\n if (annotations.length === 0) {\n return annotationsData;\n }\n const intentAny = !!(intent & RenderingIntentFlag.ANY),\n intentDisplay = !!(intent & RenderingIntentFlag.DISPLAY),\n intentPrint = !!(intent & RenderingIntentFlag.PRINT);\n\n for (const annotation of annotations) {\n // Get the annotation even if it's hidden because\n // JS can change its display.\n if (\n intentAny ||\n (intentDisplay && annotation.viewable) ||\n (intentPrint && annotation.printable) ||\n intent & RenderingIntentFlag.OPLIST\n ) {\n annotationsData.push(annotation.data);\n }\n }\n return annotationsData;\n });\n }\n\n get annotations() {\n const annots = this._getInheritableProperty(\"Annots\");\n return shadow(this, \"annotations\", Array.isArray(annots) ? annots : []);\n }\n\n get _parsedAnnotations() {\n const parsedAnnotations = this.pdfManager\n .ensure(this, \"annotations\")\n .then(() => {\n const annotationPromises = [];\n for (const annotationRef of this.annotations) {\n annotationPromises.push(\n AnnotationFactory.create(\n this.xref,\n annotationRef,\n this.pdfManager,\n this._localIdFactory,\n /* collectFields */ false\n ).catch(function (reason) {\n warn(`_parsedAnnotations: \"${reason}\".`);\n return null;\n })\n );\n }\n\n return Promise.all(annotationPromises).then(function (annotations) {\n return annotations.filter(annotation => !!annotation);\n });\n });\n\n return shadow(this, \"_parsedAnnotations\", parsedAnnotations);\n }\n\n get jsActions() {\n const actions = collectActions(\n this.xref,\n this.pageDict,\n PageActionEventType\n );\n return shadow(this, \"jsActions\", actions);\n }\n}\n\nconst PDF_HEADER_SIGNATURE = new Uint8Array([0x25, 0x50, 0x44, 0x46, 0x2d]);\nconst STARTXREF_SIGNATURE = new Uint8Array([\n 0x73, 0x74, 0x61, 0x72, 0x74, 0x78, 0x72, 0x65, 0x66,\n]);\nconst ENDOBJ_SIGNATURE = new Uint8Array([0x65, 0x6e, 0x64, 0x6f, 0x62, 0x6a]);\n\nconst FINGERPRINT_FIRST_BYTES = 1024;\nconst EMPTY_FINGERPRINT =\n \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\";\n\nconst PDF_HEADER_VERSION_REGEXP = /^[1-9]\\.\\d$/;\n\nfunction find(stream, signature, limit = 1024, backwards = false) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(limit > 0, 'The \"limit\" must be a positive integer.');\n }\n const signatureLength = signature.length;\n\n const scanBytes = stream.peekBytes(limit);\n const scanLength = scanBytes.length - signatureLength;\n\n if (scanLength <= 0) {\n return false;\n }\n if (backwards) {\n const signatureEnd = signatureLength - 1;\n\n let pos = scanBytes.length - 1;\n while (pos >= signatureEnd) {\n let j = 0;\n while (\n j < signatureLength &&\n scanBytes[pos - j] === signature[signatureEnd - j]\n ) {\n j++;\n }\n if (j >= signatureLength) {\n // `signature` found.\n stream.pos += pos - signatureEnd;\n return true;\n }\n pos--;\n }\n } else {\n // forwards\n let pos = 0;\n while (pos <= scanLength) {\n let j = 0;\n while (j < signatureLength && scanBytes[pos + j] === signature[j]) {\n j++;\n }\n if (j >= signatureLength) {\n // `signature` found.\n stream.pos += pos;\n return true;\n }\n pos++;\n }\n }\n return false;\n}\n\n/**\n * The `PDFDocument` class holds all the (worker-thread) data of the PDF file.\n */\nclass PDFDocument {\n constructor(pdfManager, stream) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n stream instanceof BaseStream,\n 'PDFDocument: Invalid \"stream\" argument.'\n );\n }\n if (stream.length <= 0) {\n throw new InvalidPDFException(\n \"The PDF file is empty, i.e. its size is zero bytes.\"\n );\n }\n\n this.pdfManager = pdfManager;\n this.stream = stream;\n this.xref = new XRef(stream, pdfManager);\n this._pagePromises = new Map();\n this._version = null;\n\n const idCounters = {\n font: 0,\n };\n this._globalIdFactory = class {\n static getDocId() {\n return `g_${pdfManager.docId}`;\n }\n\n static createFontId() {\n return `f${++idCounters.font}`;\n }\n\n static createObjId() {\n unreachable(\"Abstract method `createObjId` called.\");\n }\n\n static getPageObjId() {\n unreachable(\"Abstract method `getPageObjId` called.\");\n }\n };\n }\n\n parse(recoveryMode) {\n this.xref.parse(recoveryMode);\n this.catalog = new Catalog(this.pdfManager, this.xref);\n\n // The `checkHeader` method is called before this method and parses the\n // version from the header. The specification states in section 7.5.2\n // that the version from the catalog, if present, should overwrite the\n // version from the header.\n if (this.catalog.version) {\n this._version = this.catalog.version;\n }\n }\n\n get linearization() {\n let linearization = null;\n try {\n linearization = Linearization.create(this.stream);\n } catch (err) {\n if (err instanceof MissingDataException) {\n throw err;\n }\n info(err);\n }\n return shadow(this, \"linearization\", linearization);\n }\n\n get startXRef() {\n const stream = this.stream;\n let startXRef = 0;\n\n if (this.linearization) {\n // Find the end of the first object.\n stream.reset();\n if (find(stream, ENDOBJ_SIGNATURE)) {\n startXRef = stream.pos + 6 - stream.start;\n }\n } else {\n // Find `startxref` by checking backwards from the end of the file.\n const step = 1024;\n const startXRefLength = STARTXREF_SIGNATURE.length;\n let found = false,\n pos = stream.end;\n\n while (!found && pos > 0) {\n pos -= step - startXRefLength;\n if (pos < 0) {\n pos = 0;\n }\n stream.pos = pos;\n found = find(stream, STARTXREF_SIGNATURE, step, true);\n }\n\n if (found) {\n stream.skip(9);\n let ch;\n do {\n ch = stream.getByte();\n } while (isWhiteSpace(ch));\n let str = \"\";\n while (ch >= /* Space = */ 0x20 && ch <= /* '9' = */ 0x39) {\n str += String.fromCharCode(ch);\n ch = stream.getByte();\n }\n startXRef = parseInt(str, 10);\n if (isNaN(startXRef)) {\n startXRef = 0;\n }\n }\n }\n return shadow(this, \"startXRef\", startXRef);\n }\n\n // Find the header, get the PDF format version and setup the\n // stream to start from the header.\n checkHeader() {\n const stream = this.stream;\n stream.reset();\n\n if (!find(stream, PDF_HEADER_SIGNATURE)) {\n // May not be a PDF file, but don't throw an error and let\n // parsing continue.\n return;\n }\n stream.moveStart();\n\n // Read the PDF format version.\n const MAX_PDF_VERSION_LENGTH = 12;\n let version = \"\",\n ch;\n while ((ch = stream.getByte()) > /* Space = */ 0x20) {\n if (version.length >= MAX_PDF_VERSION_LENGTH) {\n break;\n }\n version += String.fromCharCode(ch);\n }\n if (!this._version) {\n // Remove the \"%PDF-\" prefix.\n this._version = version.substring(5);\n }\n }\n\n parseStartXRef() {\n this.xref.setStartXRef(this.startXRef);\n }\n\n get numPages() {\n let num = 0;\n if (this.catalog.hasActualNumPages) {\n num = this.catalog.numPages;\n } else if (this.xfaFactory) {\n // num is a Promise.\n num = this.xfaFactory.getNumPages();\n } else if (this.linearization) {\n num = this.linearization.numPages;\n } else {\n num = this.catalog.numPages;\n }\n return shadow(this, \"numPages\", num);\n }\n\n /**\n * @private\n */\n _hasOnlyDocumentSignatures(fields, recursionDepth = 0) {\n const RECURSION_LIMIT = 10;\n\n if (!Array.isArray(fields)) {\n return false;\n }\n return fields.every(field => {\n field = this.xref.fetchIfRef(field);\n if (!(field instanceof Dict)) {\n return false;\n }\n if (field.has(\"Kids\")) {\n if (++recursionDepth > RECURSION_LIMIT) {\n warn(\"_hasOnlyDocumentSignatures: maximum recursion depth reached\");\n return false;\n }\n return this._hasOnlyDocumentSignatures(\n field.get(\"Kids\"),\n recursionDepth\n );\n }\n const isSignature = isName(field.get(\"FT\"), \"Sig\");\n const rectangle = field.get(\"Rect\");\n const isInvisible =\n Array.isArray(rectangle) && rectangle.every(value => value === 0);\n return isSignature && isInvisible;\n });\n }\n\n get _xfaStreams() {\n const acroForm = this.catalog.acroForm;\n if (!acroForm) {\n return null;\n }\n\n const xfa = acroForm.get(\"XFA\");\n const entries = {\n \"xdp:xdp\": \"\",\n template: \"\",\n datasets: \"\",\n config: \"\",\n connectionSet: \"\",\n localeSet: \"\",\n stylesheet: \"\",\n \"/xdp:xdp\": \"\",\n };\n if (xfa instanceof BaseStream && !xfa.isEmpty) {\n entries[\"xdp:xdp\"] = xfa;\n return entries;\n }\n\n if (!Array.isArray(xfa) || xfa.length === 0) {\n return null;\n }\n\n for (let i = 0, ii = xfa.length; i < ii; i += 2) {\n let name;\n if (i === 0) {\n name = \"xdp:xdp\";\n } else if (i === ii - 2) {\n name = \"/xdp:xdp\";\n } else {\n name = xfa[i];\n }\n\n if (!entries.hasOwnProperty(name)) {\n continue;\n }\n const data = this.xref.fetchIfRef(xfa[i + 1]);\n if (!(data instanceof BaseStream) || data.isEmpty) {\n continue;\n }\n entries[name] = data;\n }\n return entries;\n }\n\n get xfaDatasets() {\n const streams = this._xfaStreams;\n if (!streams) {\n return shadow(this, \"xfaDatasets\", null);\n }\n for (const key of [\"datasets\", \"xdp:xdp\"]) {\n const stream = streams[key];\n if (!stream) {\n continue;\n }\n try {\n const str = stringToUTF8String(stream.getString());\n const data = { [key]: str };\n return shadow(this, \"xfaDatasets\", new DatasetReader(data));\n } catch (_) {\n warn(\"XFA - Invalid utf-8 string.\");\n break;\n }\n }\n return shadow(this, \"xfaDatasets\", null);\n }\n\n get xfaData() {\n const streams = this._xfaStreams;\n if (!streams) {\n return null;\n }\n const data = Object.create(null);\n for (const [key, stream] of Object.entries(streams)) {\n if (!stream) {\n continue;\n }\n try {\n data[key] = stringToUTF8String(stream.getString());\n } catch (_) {\n warn(\"XFA - Invalid utf-8 string.\");\n return null;\n }\n }\n return data;\n }\n\n get xfaFactory() {\n let data;\n if (\n this.pdfManager.enableXfa &&\n this.catalog.needsRendering &&\n this.formInfo.hasXfa &&\n !this.formInfo.hasAcroForm\n ) {\n data = this.xfaData;\n }\n return shadow(this, \"xfaFactory\", data ? new XFAFactory(data) : null);\n }\n\n get isPureXfa() {\n return this.xfaFactory ? this.xfaFactory.isValid() : false;\n }\n\n get htmlForXfa() {\n return this.xfaFactory ? this.xfaFactory.getPages() : null;\n }\n\n async loadXfaImages() {\n const xfaImagesDict = await this.pdfManager.ensureCatalog(\"xfaImages\");\n if (!xfaImagesDict) {\n return;\n }\n\n const keys = xfaImagesDict.getKeys();\n const objectLoader = new ObjectLoader(xfaImagesDict, keys, this.xref);\n await objectLoader.load();\n\n const xfaImages = new Map();\n for (const key of keys) {\n const stream = xfaImagesDict.get(key);\n if (stream instanceof BaseStream) {\n xfaImages.set(key, stream.getBytes());\n }\n }\n\n this.xfaFactory.setImages(xfaImages);\n }\n\n async loadXfaFonts(handler, task) {\n const acroForm = await this.pdfManager.ensureCatalog(\"acroForm\");\n if (!acroForm) {\n return;\n }\n const resources = await acroForm.getAsync(\"DR\");\n if (!(resources instanceof Dict)) {\n return;\n }\n const objectLoader = new ObjectLoader(resources, [\"Font\"], this.xref);\n await objectLoader.load();\n\n const fontRes = resources.get(\"Font\");\n if (!(fontRes instanceof Dict)) {\n return;\n }\n\n const options = Object.assign(\n Object.create(null),\n this.pdfManager.evaluatorOptions\n );\n options.useSystemFonts = false;\n\n const partialEvaluator = new PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: -1,\n idFactory: this._globalIdFactory,\n fontCache: this.catalog.fontCache,\n builtInCMapCache: this.catalog.builtInCMapCache,\n standardFontDataCache: this.catalog.standardFontDataCache,\n options,\n });\n const operatorList = new OperatorList();\n const pdfFonts = [];\n const initialState = {\n get font() {\n return pdfFonts[pdfFonts.length - 1];\n },\n set font(font) {\n pdfFonts.push(font);\n },\n clone() {\n return this;\n },\n };\n\n const fonts = new Map();\n fontRes.forEach((fontName, font) => {\n fonts.set(fontName, font);\n });\n const promises = [];\n\n for (const [fontName, font] of fonts) {\n const descriptor = font.get(\"FontDescriptor\");\n if (!(descriptor instanceof Dict)) {\n continue;\n }\n let fontFamily = descriptor.get(\"FontFamily\");\n // For example, \"Wingdings 3\" is not a valid font name in the css specs.\n fontFamily = fontFamily.replace(/[ ]+(\\d)/g, \"$1\");\n const fontWeight = descriptor.get(\"FontWeight\");\n\n // Angle is expressed in degrees counterclockwise in PDF\n // when it's clockwise in CSS\n // (see https://drafts.csswg.org/css-fonts-4/#valdef-font-style-oblique-angle)\n const italicAngle = -descriptor.get(\"ItalicAngle\");\n const cssFontInfo = { fontFamily, fontWeight, italicAngle };\n\n if (!validateCSSFont(cssFontInfo)) {\n continue;\n }\n promises.push(\n partialEvaluator\n .handleSetFont(\n resources,\n [Name.get(fontName), 1],\n /* fontRef = */ null,\n operatorList,\n task,\n initialState,\n /* fallbackFontDict = */ null,\n /* cssFontInfo = */ cssFontInfo\n )\n .catch(function (reason) {\n warn(`loadXfaFonts: \"${reason}\".`);\n return null;\n })\n );\n }\n\n await Promise.all(promises);\n const missingFonts = this.xfaFactory.setFonts(pdfFonts);\n\n if (!missingFonts) {\n return;\n }\n\n options.ignoreErrors = true;\n promises.length = 0;\n pdfFonts.length = 0;\n\n const reallyMissingFonts = new Set();\n for (const missing of missingFonts) {\n if (!getXfaFontName(`${missing}-Regular`)) {\n // No substitution available: we'll fallback on Myriad.\n reallyMissingFonts.add(missing);\n }\n }\n\n if (reallyMissingFonts.size) {\n missingFonts.push(\"PdfJS-Fallback\");\n }\n\n for (const missing of missingFonts) {\n if (reallyMissingFonts.has(missing)) {\n continue;\n }\n for (const fontInfo of [\n { name: \"Regular\", fontWeight: 400, italicAngle: 0 },\n { name: \"Bold\", fontWeight: 700, italicAngle: 0 },\n { name: \"Italic\", fontWeight: 400, italicAngle: 12 },\n { name: \"BoldItalic\", fontWeight: 700, italicAngle: 12 },\n ]) {\n const name = `${missing}-${fontInfo.name}`;\n const dict = getXfaFontDict(name);\n\n promises.push(\n partialEvaluator\n .handleSetFont(\n resources,\n [Name.get(name), 1],\n /* fontRef = */ null,\n operatorList,\n task,\n initialState,\n /* fallbackFontDict = */ dict,\n /* cssFontInfo = */ {\n fontFamily: missing,\n fontWeight: fontInfo.fontWeight,\n italicAngle: fontInfo.italicAngle,\n }\n )\n .catch(function (reason) {\n warn(`loadXfaFonts: \"${reason}\".`);\n return null;\n })\n );\n }\n }\n\n await Promise.all(promises);\n this.xfaFactory.appendFonts(pdfFonts, reallyMissingFonts);\n }\n\n async serializeXfaData(annotationStorage) {\n return this.xfaFactory\n ? this.xfaFactory.serializeData(annotationStorage)\n : null;\n }\n\n get formInfo() {\n const formInfo = {\n hasFields: false,\n hasAcroForm: false,\n hasXfa: false,\n hasSignatures: false,\n };\n const acroForm = this.catalog.acroForm;\n if (!acroForm) {\n return shadow(this, \"formInfo\", formInfo);\n }\n\n try {\n const fields = acroForm.get(\"Fields\");\n const hasFields = Array.isArray(fields) && fields.length > 0;\n formInfo.hasFields = hasFields; // Used by the `fieldObjects` getter.\n\n // The document contains XFA data if the `XFA` entry is a non-empty\n // array or stream.\n const xfa = acroForm.get(\"XFA\");\n formInfo.hasXfa =\n (Array.isArray(xfa) && xfa.length > 0) ||\n (xfa instanceof BaseStream && !xfa.isEmpty);\n\n // The document contains AcroForm data if the `Fields` entry is a\n // non-empty array and it doesn't consist of only document signatures.\n // This second check is required for files that don't actually contain\n // AcroForm data (only XFA data), but that use the `Fields` entry to\n // store (invisible) document signatures. This can be detected using\n // the first bit of the `SigFlags` integer (see Table 219 in the\n // specification).\n const sigFlags = acroForm.get(\"SigFlags\");\n const hasSignatures = !!(sigFlags & 0x1);\n const hasOnlyDocumentSignatures =\n hasSignatures && this._hasOnlyDocumentSignatures(fields);\n formInfo.hasAcroForm = hasFields && !hasOnlyDocumentSignatures;\n formInfo.hasSignatures = hasSignatures;\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`Cannot fetch form information: \"${ex}\".`);\n }\n return shadow(this, \"formInfo\", formInfo);\n }\n\n get documentInfo() {\n let version = this._version;\n if (\n typeof version !== \"string\" ||\n !PDF_HEADER_VERSION_REGEXP.test(version)\n ) {\n warn(`Invalid PDF header version number: ${version}`);\n version = null;\n }\n\n const docInfo = {\n PDFFormatVersion: version,\n Language: this.catalog.lang,\n EncryptFilterName: this.xref.encrypt\n ? this.xref.encrypt.filterName\n : null,\n IsLinearized: !!this.linearization,\n IsAcroFormPresent: this.formInfo.hasAcroForm,\n IsXFAPresent: this.formInfo.hasXfa,\n IsCollectionPresent: !!this.catalog.collection,\n IsSignaturesPresent: this.formInfo.hasSignatures,\n };\n\n let infoDict;\n try {\n infoDict = this.xref.trailer.get(\"Info\");\n } catch (err) {\n if (err instanceof MissingDataException) {\n throw err;\n }\n info(\"The document information dictionary is invalid.\");\n }\n if (!(infoDict instanceof Dict)) {\n return shadow(this, \"documentInfo\", docInfo);\n }\n\n for (const key of infoDict.getKeys()) {\n const value = infoDict.get(key);\n\n switch (key) {\n case \"Title\":\n case \"Author\":\n case \"Subject\":\n case \"Keywords\":\n case \"Creator\":\n case \"Producer\":\n case \"CreationDate\":\n case \"ModDate\":\n if (typeof value === \"string\") {\n docInfo[key] = stringToPDFString(value);\n continue;\n }\n break;\n case \"Trapped\":\n if (value instanceof Name) {\n docInfo[key] = value;\n continue;\n }\n break;\n default:\n // For custom values, only accept white-listed types to prevent\n // errors that would occur when trying to send non-serializable\n // objects to the main-thread (for example `Dict` or `Stream`).\n let customValue;\n switch (typeof value) {\n case \"string\":\n customValue = stringToPDFString(value);\n break;\n case \"number\":\n case \"boolean\":\n customValue = value;\n break;\n default:\n if (value instanceof Name) {\n customValue = value;\n }\n break;\n }\n\n if (customValue === undefined) {\n warn(`Bad value, for custom key \"${key}\", in Info: ${value}.`);\n continue;\n }\n if (!docInfo.Custom) {\n docInfo.Custom = Object.create(null);\n }\n docInfo.Custom[key] = customValue;\n continue;\n }\n warn(`Bad value, for key \"${key}\", in Info: ${value}.`);\n }\n return shadow(this, \"documentInfo\", docInfo);\n }\n\n get fingerprints() {\n function validate(data) {\n return (\n typeof data === \"string\" &&\n data.length > 0 &&\n data !== EMPTY_FINGERPRINT\n );\n }\n\n function hexString(hash) {\n const buf = [];\n for (let i = 0, ii = hash.length; i < ii; i++) {\n const hex = hash[i].toString(16);\n buf.push(hex.padStart(2, \"0\"));\n }\n return buf.join(\"\");\n }\n\n const idArray = this.xref.trailer.get(\"ID\");\n let hashOriginal, hashModified;\n if (Array.isArray(idArray) && validate(idArray[0])) {\n hashOriginal = stringToBytes(idArray[0]);\n\n if (idArray[1] !== idArray[0] && validate(idArray[1])) {\n hashModified = stringToBytes(idArray[1]);\n }\n } else {\n hashOriginal = calculateMD5(\n this.stream.getByteRange(0, FINGERPRINT_FIRST_BYTES),\n 0,\n FINGERPRINT_FIRST_BYTES\n );\n }\n\n return shadow(this, \"fingerprints\", [\n hexString(hashOriginal),\n hashModified ? hexString(hashModified) : null,\n ]);\n }\n\n async _getLinearizationPage(pageIndex) {\n const { catalog, linearization, xref } = this;\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n linearization && linearization.pageFirst === pageIndex,\n \"_getLinearizationPage - invalid pageIndex argument.\"\n );\n }\n\n const ref = Ref.get(linearization.objectNumberFirst, 0);\n try {\n const obj = await xref.fetchAsync(ref);\n // Ensure that the object that was found is actually a Page dictionary.\n if (obj instanceof Dict) {\n let type = obj.getRaw(\"Type\");\n if (type instanceof Ref) {\n type = await xref.fetchAsync(type);\n }\n if (isName(type, \"Page\") || (!obj.has(\"Type\") && !obj.has(\"Kids\"))) {\n if (!catalog.pageKidsCountCache.has(ref)) {\n catalog.pageKidsCountCache.put(ref, 1); // Cache the Page reference.\n }\n // Help improve performance of the `Catalog.getPageIndex` method.\n if (!catalog.pageIndexCache.has(ref)) {\n catalog.pageIndexCache.put(ref, 0);\n }\n\n return [obj, ref];\n }\n }\n throw new FormatError(\n \"The Linearization dictionary doesn't point to a valid Page dictionary.\"\n );\n } catch (reason) {\n warn(`_getLinearizationPage: \"${reason.message}\".`);\n return catalog.getPageDict(pageIndex);\n }\n }\n\n getPage(pageIndex) {\n const cachedPromise = this._pagePromises.get(pageIndex);\n if (cachedPromise) {\n return cachedPromise;\n }\n const { catalog, linearization, xfaFactory } = this;\n\n let promise;\n if (xfaFactory) {\n promise = Promise.resolve([Dict.empty, null]);\n } else if (linearization && linearization.pageFirst === pageIndex) {\n promise = this._getLinearizationPage(pageIndex);\n } else {\n promise = catalog.getPageDict(pageIndex);\n }\n promise = promise.then(([pageDict, ref]) => {\n return new Page({\n pdfManager: this.pdfManager,\n xref: this.xref,\n pageIndex,\n pageDict,\n ref,\n globalIdFactory: this._globalIdFactory,\n fontCache: catalog.fontCache,\n builtInCMapCache: catalog.builtInCMapCache,\n standardFontDataCache: catalog.standardFontDataCache,\n globalImageCache: catalog.globalImageCache,\n nonBlendModesSet: catalog.nonBlendModesSet,\n xfaFactory,\n });\n });\n\n this._pagePromises.set(pageIndex, promise);\n return promise;\n }\n\n async checkFirstPage(recoveryMode = false) {\n if (recoveryMode) {\n return;\n }\n try {\n await this.getPage(0);\n } catch (reason) {\n if (reason instanceof XRefEntryException) {\n // Clear out the various caches to ensure that we haven't stored any\n // inconsistent and/or incorrect state, since that could easily break\n // subsequent `this.getPage` calls.\n this._pagePromises.delete(0);\n await this.cleanup();\n\n throw new XRefParseException();\n }\n }\n }\n\n async checkLastPage(recoveryMode = false) {\n const { catalog, pdfManager } = this;\n\n catalog.setActualNumPages(); // Ensure that it's always reset.\n let numPages;\n\n try {\n await Promise.all([\n pdfManager.ensureDoc(\"xfaFactory\"),\n pdfManager.ensureDoc(\"linearization\"),\n pdfManager.ensureCatalog(\"numPages\"),\n ]);\n\n if (this.xfaFactory) {\n return; // The Page count is always calculated for XFA-documents.\n } else if (this.linearization) {\n numPages = this.linearization.numPages;\n } else {\n numPages = catalog.numPages;\n }\n\n if (!Number.isInteger(numPages)) {\n throw new FormatError(\"Page count is not an integer.\");\n } else if (numPages <= 1) {\n return;\n }\n await this.getPage(numPages - 1);\n } catch (reason) {\n // Clear out the various caches to ensure that we haven't stored any\n // inconsistent and/or incorrect state, since that could easily break\n // subsequent `this.getPage` calls.\n this._pagePromises.delete(numPages - 1);\n await this.cleanup();\n\n if (reason instanceof XRefEntryException && !recoveryMode) {\n throw new XRefParseException();\n }\n warn(`checkLastPage - invalid /Pages tree /Count: ${numPages}.`);\n\n let pagesTree;\n try {\n pagesTree = await catalog.getAllPageDicts(recoveryMode);\n } catch (reasonAll) {\n if (reasonAll instanceof XRefEntryException && !recoveryMode) {\n throw new XRefParseException();\n }\n catalog.setActualNumPages(1);\n return;\n }\n\n for (const [pageIndex, [pageDict, ref]] of pagesTree) {\n let promise;\n if (pageDict instanceof Error) {\n promise = Promise.reject(pageDict);\n\n // Prevent \"uncaught exception: Object\"-messages in the console.\n promise.catch(() => {});\n } else {\n promise = Promise.resolve(\n new Page({\n pdfManager,\n xref: this.xref,\n pageIndex,\n pageDict,\n ref,\n globalIdFactory: this._globalIdFactory,\n fontCache: catalog.fontCache,\n builtInCMapCache: catalog.builtInCMapCache,\n standardFontDataCache: catalog.standardFontDataCache,\n globalImageCache: catalog.globalImageCache,\n nonBlendModesSet: catalog.nonBlendModesSet,\n xfaFactory: null,\n })\n );\n }\n\n this._pagePromises.set(pageIndex, promise);\n }\n catalog.setActualNumPages(pagesTree.size);\n }\n }\n\n fontFallback(id, handler) {\n return this.catalog.fontFallback(id, handler);\n }\n\n async cleanup(manuallyTriggered = false) {\n return this.catalog\n ? this.catalog.cleanup(manuallyTriggered)\n : clearGlobalCaches();\n }\n\n /**\n * @private\n */\n _collectFieldObjects(name, fieldRef, promises) {\n const field = this.xref.fetchIfRef(fieldRef);\n if (field.has(\"T\")) {\n const partName = stringToPDFString(field.get(\"T\"));\n if (name === \"\") {\n name = partName;\n } else {\n name = `${name}.${partName}`;\n }\n }\n\n if (!promises.has(name)) {\n promises.set(name, []);\n }\n promises.get(name).push(\n AnnotationFactory.create(\n this.xref,\n fieldRef,\n this.pdfManager,\n this._localIdFactory,\n /* collectFields */ true\n )\n .then(annotation => annotation && annotation.getFieldObject())\n .catch(function (reason) {\n warn(`_collectFieldObjects: \"${reason}\".`);\n return null;\n })\n );\n\n if (field.has(\"Kids\")) {\n const kids = field.get(\"Kids\");\n for (const kid of kids) {\n this._collectFieldObjects(name, kid, promises);\n }\n }\n }\n\n get fieldObjects() {\n if (!this.formInfo.hasFields) {\n return shadow(this, \"fieldObjects\", Promise.resolve(null));\n }\n\n const allFields = Object.create(null);\n const fieldPromises = new Map();\n for (const fieldRef of this.catalog.acroForm.get(\"Fields\")) {\n this._collectFieldObjects(\"\", fieldRef, fieldPromises);\n }\n\n const allPromises = [];\n for (const [name, promises] of fieldPromises) {\n allPromises.push(\n Promise.all(promises).then(fields => {\n fields = fields.filter(field => !!field);\n if (fields.length > 0) {\n allFields[name] = fields;\n }\n })\n );\n }\n\n return shadow(\n this,\n \"fieldObjects\",\n Promise.all(allPromises).then(() => allFields)\n );\n }\n\n get hasJSActions() {\n const promise = this.pdfManager.ensureDoc(\"_parseHasJSActions\");\n return shadow(this, \"hasJSActions\", promise);\n }\n\n /**\n * @private\n */\n async _parseHasJSActions() {\n const [catalogJsActions, fieldObjects] = await Promise.all([\n this.pdfManager.ensureCatalog(\"jsActions\"),\n this.pdfManager.ensureDoc(\"fieldObjects\"),\n ]);\n\n if (catalogJsActions) {\n return true;\n }\n if (fieldObjects) {\n return Object.values(fieldObjects).some(fieldObject =>\n fieldObject.some(object => object.actions !== null)\n );\n }\n return false;\n }\n\n get calculationOrderIds() {\n const acroForm = this.catalog.acroForm;\n if (!acroForm || !acroForm.has(\"CO\")) {\n return shadow(this, \"calculationOrderIds\", null);\n }\n\n const calculationOrder = acroForm.get(\"CO\");\n if (!Array.isArray(calculationOrder) || calculationOrder.length === 0) {\n return shadow(this, \"calculationOrderIds\", null);\n }\n\n const ids = [];\n for (const id of calculationOrder) {\n if (id instanceof Ref) {\n ids.push(id.toString());\n }\n }\n if (ids.length === 0) {\n return shadow(this, \"calculationOrderIds\", null);\n }\n return shadow(this, \"calculationOrderIds\", ids);\n }\n}\n\nclass ExtendedPDFDocument extends PDFDocument{\n constructor(pdfManager, arg) {\n super(pdfManager, arg);\n }\n\n get structureTree() {\n return shadow(this, 'structureTree', this.catalog.structureTree);\n }\n}\n\nexport {\n Page,\n ExtendedPDFDocument as PDFDocument,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n CalibriBoldFactors,\n CalibriBoldItalicFactors,\n CalibriBoldItalicMetrics,\n CalibriBoldMetrics,\n CalibriItalicFactors,\n CalibriItalicMetrics,\n CalibriRegularFactors,\n CalibriRegularMetrics,\n} from \"./calibri_factors.js\";\nimport { Dict, Name } from \"./primitives.js\";\nimport {\n HelveticaBoldFactors,\n HelveticaBoldItalicFactors,\n HelveticaBoldItalicMetrics,\n HelveticaBoldMetrics,\n HelveticaItalicFactors,\n HelveticaItalicMetrics,\n HelveticaRegularFactors,\n HelveticaRegularMetrics,\n} from \"./helvetica_factors.js\";\nimport {\n LiberationSansBoldItalicMapping,\n LiberationSansBoldItalicWidths,\n LiberationSansBoldMapping,\n LiberationSansBoldWidths,\n LiberationSansItalicMapping,\n LiberationSansItalicWidths,\n LiberationSansRegularMapping,\n LiberationSansRegularWidths,\n} from \"./liberationsans_widths.js\";\nimport {\n MyriadProBoldFactors,\n MyriadProBoldItalicFactors,\n MyriadProBoldItalicMetrics,\n MyriadProBoldMetrics,\n MyriadProItalicFactors,\n MyriadProItalicMetrics,\n MyriadProRegularFactors,\n MyriadProRegularMetrics,\n} from \"./myriadpro_factors.js\";\nimport {\n SegoeuiBoldFactors,\n SegoeuiBoldItalicFactors,\n SegoeuiBoldItalicMetrics,\n SegoeuiBoldMetrics,\n SegoeuiItalicFactors,\n SegoeuiItalicMetrics,\n SegoeuiRegularFactors,\n SegoeuiRegularMetrics,\n} from \"./segoeui_factors.js\";\nimport { getLookupTableFactory } from \"./core_utils.js\";\nimport { normalizeFontName } from \"./fonts_utils.js\";\n\nconst getXFAFontMap = getLookupTableFactory(function (t) {\n t[\"MyriadPro-Regular\"] = t[\"PdfJS-Fallback-Regular\"] = {\n name: \"LiberationSans-Regular\",\n factors: MyriadProRegularFactors,\n baseWidths: LiberationSansRegularWidths,\n baseMapping: LiberationSansRegularMapping,\n metrics: MyriadProRegularMetrics,\n };\n t[\"MyriadPro-Bold\"] = t[\"PdfJS-Fallback-Bold\"] = {\n name: \"LiberationSans-Bold\",\n factors: MyriadProBoldFactors,\n baseWidths: LiberationSansBoldWidths,\n baseMapping: LiberationSansBoldMapping,\n metrics: MyriadProBoldMetrics,\n };\n t[\"MyriadPro-It\"] =\n t[\"MyriadPro-Italic\"] =\n t[\"PdfJS-Fallback-Italic\"] =\n {\n name: \"LiberationSans-Italic\",\n factors: MyriadProItalicFactors,\n baseWidths: LiberationSansItalicWidths,\n baseMapping: LiberationSansItalicMapping,\n metrics: MyriadProItalicMetrics,\n };\n t[\"MyriadPro-BoldIt\"] =\n t[\"MyriadPro-BoldItalic\"] =\n t[\"PdfJS-Fallback-BoldItalic\"] =\n {\n name: \"LiberationSans-BoldItalic\",\n factors: MyriadProBoldItalicFactors,\n baseWidths: LiberationSansBoldItalicWidths,\n baseMapping: LiberationSansBoldItalicMapping,\n metrics: MyriadProBoldItalicMetrics,\n };\n t.ArialMT =\n t.Arial =\n t[\"Arial-Regular\"] =\n {\n name: \"LiberationSans-Regular\",\n baseWidths: LiberationSansRegularWidths,\n baseMapping: LiberationSansRegularMapping,\n };\n t[\"Arial-BoldMT\"] = t[\"Arial-Bold\"] = {\n name: \"LiberationSans-Bold\",\n baseWidths: LiberationSansBoldWidths,\n baseMapping: LiberationSansBoldMapping,\n };\n t[\"Arial-ItalicMT\"] = t[\"Arial-Italic\"] = {\n name: \"LiberationSans-Italic\",\n baseWidths: LiberationSansItalicWidths,\n baseMapping: LiberationSansItalicMapping,\n };\n t[\"Arial-BoldItalicMT\"] = t[\"Arial-BoldItalic\"] = {\n name: \"LiberationSans-BoldItalic\",\n baseWidths: LiberationSansBoldItalicWidths,\n baseMapping: LiberationSansBoldItalicMapping,\n };\n t[\"Calibri-Regular\"] = {\n name: \"LiberationSans-Regular\",\n factors: CalibriRegularFactors,\n baseWidths: LiberationSansRegularWidths,\n baseMapping: LiberationSansRegularMapping,\n metrics: CalibriRegularMetrics,\n };\n t[\"Calibri-Bold\"] = {\n name: \"LiberationSans-Bold\",\n factors: CalibriBoldFactors,\n baseWidths: LiberationSansBoldWidths,\n baseMapping: LiberationSansBoldMapping,\n metrics: CalibriBoldMetrics,\n };\n t[\"Calibri-Italic\"] = {\n name: \"LiberationSans-Italic\",\n factors: CalibriItalicFactors,\n baseWidths: LiberationSansItalicWidths,\n baseMapping: LiberationSansItalicMapping,\n metrics: CalibriItalicMetrics,\n };\n t[\"Calibri-BoldItalic\"] = {\n name: \"LiberationSans-BoldItalic\",\n factors: CalibriBoldItalicFactors,\n baseWidths: LiberationSansBoldItalicWidths,\n baseMapping: LiberationSansBoldItalicMapping,\n metrics: CalibriBoldItalicMetrics,\n };\n t[\"Segoeui-Regular\"] = {\n name: \"LiberationSans-Regular\",\n factors: SegoeuiRegularFactors,\n baseWidths: LiberationSansRegularWidths,\n baseMapping: LiberationSansRegularMapping,\n metrics: SegoeuiRegularMetrics,\n };\n t[\"Segoeui-Bold\"] = {\n name: \"LiberationSans-Bold\",\n factors: SegoeuiBoldFactors,\n baseWidths: LiberationSansBoldWidths,\n baseMapping: LiberationSansBoldMapping,\n metrics: SegoeuiBoldMetrics,\n };\n t[\"Segoeui-Italic\"] = {\n name: \"LiberationSans-Italic\",\n factors: SegoeuiItalicFactors,\n baseWidths: LiberationSansItalicWidths,\n baseMapping: LiberationSansItalicMapping,\n metrics: SegoeuiItalicMetrics,\n };\n t[\"Segoeui-BoldItalic\"] = {\n name: \"LiberationSans-BoldItalic\",\n factors: SegoeuiBoldItalicFactors,\n baseWidths: LiberationSansBoldItalicWidths,\n baseMapping: LiberationSansBoldItalicMapping,\n metrics: SegoeuiBoldItalicMetrics,\n };\n t[\"Helvetica-Regular\"] = t.Helvetica = {\n name: \"LiberationSans-Regular\",\n factors: HelveticaRegularFactors,\n baseWidths: LiberationSansRegularWidths,\n baseMapping: LiberationSansRegularMapping,\n metrics: HelveticaRegularMetrics,\n };\n t[\"Helvetica-Bold\"] = {\n name: \"LiberationSans-Bold\",\n factors: HelveticaBoldFactors,\n baseWidths: LiberationSansBoldWidths,\n baseMapping: LiberationSansBoldMapping,\n metrics: HelveticaBoldMetrics,\n };\n t[\"Helvetica-Italic\"] = {\n name: \"LiberationSans-Italic\",\n factors: HelveticaItalicFactors,\n baseWidths: LiberationSansItalicWidths,\n baseMapping: LiberationSansItalicMapping,\n metrics: HelveticaItalicMetrics,\n };\n t[\"Helvetica-BoldItalic\"] = {\n name: \"LiberationSans-BoldItalic\",\n factors: HelveticaBoldItalicFactors,\n baseWidths: LiberationSansBoldItalicWidths,\n baseMapping: LiberationSansBoldItalicMapping,\n metrics: HelveticaBoldItalicMetrics,\n };\n});\n\nfunction getXfaFontName(name) {\n const fontName = normalizeFontName(name);\n const fontMap = getXFAFontMap();\n return fontMap[fontName];\n}\n\nfunction getXfaFontWidths(name) {\n const info = getXfaFontName(name);\n if (!info) {\n return null;\n }\n\n const { baseWidths, baseMapping, factors } = info;\n let rescaledBaseWidths;\n if (!factors) {\n rescaledBaseWidths = baseWidths;\n } else {\n rescaledBaseWidths = baseWidths.map((w, i) => w * factors[i]);\n }\n\n let currentCode = -2;\n let currentArray;\n\n // Widths array for composite font is:\n // CharCode1 [10, 20, 30] ...\n // which means:\n // - CharCode1 has a width equal to 10\n // - CharCode1+1 has a width equal to 20\n // - CharCode1+2 has a width equal to 30\n //\n // The baseMapping array contains a map for glyph index to unicode.\n // So from baseMapping we'll get sorted unicodes and their positions\n // (i.e. glyph indices) and then we put widths in an array for the\n // the consecutive unicodes.\n const newWidths = [];\n for (const [unicode, glyphIndex] of baseMapping\n .map(\n (charUnicode, index) => [\n charUnicode,\n index,\n ] /* collect unicode and glyph index */\n )\n .sort(\n ([unicode1], [unicode2]) =>\n unicode1 - unicode2 /* order by unicode only */\n )) {\n if (unicode === -1) {\n continue;\n }\n\n if (unicode === currentCode + 1) {\n currentArray.push(rescaledBaseWidths[glyphIndex]);\n currentCode += 1;\n } else {\n currentCode = unicode;\n currentArray = [rescaledBaseWidths[glyphIndex]];\n newWidths.push(unicode, currentArray);\n }\n }\n\n return newWidths;\n}\n\nfunction getXfaFontDict(name) {\n const widths = getXfaFontWidths(name);\n const dict = new Dict(null);\n dict.set(\"BaseFont\", Name.get(name));\n dict.set(\"Type\", Name.get(\"Font\"));\n dict.set(\"Subtype\", Name.get(\"CIDFontType2\"));\n dict.set(\"Encoding\", Name.get(\"Identity-H\"));\n dict.set(\"CIDToGIDMap\", Name.get(\"Identity\"));\n dict.set(\"W\", widths);\n dict.set(\"FirstChar\", widths[0]);\n dict.set(\n \"LastChar\",\n widths[widths.length - 2] + widths[widths.length - 1].length - 1\n );\n const descriptor = new Dict(null);\n dict.set(\"FontDescriptor\", descriptor);\n const systemInfo = new Dict(null);\n systemInfo.set(\"Ordering\", \"Identity\");\n systemInfo.set(\"Registry\", \"Adobe\");\n systemInfo.set(\"Supplement\", 0);\n dict.set(\"CIDSystemInfo\", systemInfo);\n\n return dict;\n}\n\nexport { getXfaFontDict, getXfaFontName };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Factors to rescale LiberationSans-Bold.ttf to have the same\n// metrics as calibrib.ttf.\nconst CalibriBoldFactors = [\n 1.3877, 1, 1, 1, 0.97801, 0.92482, 0.89552, 0.91133, 0.81988, 0.97566,\n 0.98152, 0.93548, 0.93548, 1.2798, 0.85284, 0.92794, 1, 0.96134, 1.54657,\n 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133,\n 0.91133, 0.91133, 0.82845, 0.82845, 0.85284, 0.85284, 0.85284, 0.75859,\n 0.92138, 0.83908, 0.7762, 0.73293, 0.87289, 0.73133, 0.7514, 0.81921, 0.87356,\n 0.95958, 0.59526, 0.75727, 0.69225, 1.04924, 0.9121, 0.86943, 0.79795,\n 0.88198, 0.77958, 0.70864, 0.81055, 0.90399, 0.88653, 0.96017, 0.82577,\n 0.77892, 0.78257, 0.97507, 1.54657, 0.97507, 0.85284, 0.89552, 0.90176,\n 0.88762, 0.8785, 0.75241, 0.8785, 0.90518, 0.95015, 0.77618, 0.8785, 0.88401,\n 0.91916, 0.86304, 0.88401, 0.91488, 0.8785, 0.8801, 0.8785, 0.8785, 0.91343,\n 0.7173, 1.04106, 0.8785, 0.85075, 0.95794, 0.82616, 0.85162, 0.79492, 0.88331,\n 1.69808, 0.88331, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133,\n 1.7801, 0.89552, 1.24487, 1.13254, 1.12401, 0.96839, 0.85284, 0.68787,\n 0.70645, 0.85592, 0.90747, 1.01466, 1.0088, 0.90323, 1, 1.07463, 1, 0.91056,\n 0.75806, 1.19118, 0.96839, 0.78864, 0.82845, 0.84133, 0.75859, 0.83908,\n 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.77539, 0.73293, 0.73133,\n 0.73133, 0.73133, 0.73133, 0.95958, 0.95958, 0.95958, 0.95958, 0.88506,\n 0.9121, 0.86943, 0.86943, 0.86943, 0.86943, 0.86943, 0.85284, 0.87508,\n 0.90399, 0.90399, 0.90399, 0.90399, 0.77892, 0.79795, 0.90807, 0.88762,\n 0.88762, 0.88762, 0.88762, 0.88762, 0.88762, 0.8715, 0.75241, 0.90518,\n 0.90518, 0.90518, 0.90518, 0.88401, 0.88401, 0.88401, 0.88401, 0.8785, 0.8785,\n 0.8801, 0.8801, 0.8801, 0.8801, 0.8801, 0.90747, 0.89049, 0.8785, 0.8785,\n 0.8785, 0.8785, 0.85162, 0.8785, 0.85162, 0.83908, 0.88762, 0.83908, 0.88762,\n 0.83908, 0.88762, 0.73293, 0.75241, 0.73293, 0.75241, 0.73293, 0.75241,\n 0.73293, 0.75241, 0.87289, 0.83016, 0.88506, 0.93125, 0.73133, 0.90518,\n 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518,\n 0.81921, 0.77618, 0.81921, 0.77618, 0.81921, 0.77618, 1, 1, 0.87356, 0.8785,\n 0.91075, 0.89608, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401,\n 0.95958, 0.88401, 0.95958, 0.88401, 0.76229, 0.90167, 0.59526, 0.91916, 1, 1,\n 0.86304, 0.69225, 0.88401, 1, 1, 0.70424, 0.79468, 0.91926, 0.88175, 0.70823,\n 0.94903, 0.9121, 0.8785, 1, 1, 0.9121, 0.8785, 0.87802, 0.88656, 0.8785,\n 0.86943, 0.8801, 0.86943, 0.8801, 0.86943, 0.8801, 0.87402, 0.89291, 0.77958,\n 0.91343, 1, 1, 0.77958, 0.91343, 0.70864, 0.7173, 0.70864, 0.7173, 0.70864,\n 0.7173, 0.70864, 0.7173, 1, 1, 0.81055, 0.75841, 0.81055, 1.06452, 0.90399,\n 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785,\n 0.90399, 0.8785, 0.96017, 0.95794, 0.77892, 0.85162, 0.77892, 0.78257,\n 0.79492, 0.78257, 0.79492, 0.78257, 0.79492, 0.9297, 0.56892, 0.83908,\n 0.88762, 0.77539, 0.8715, 0.87508, 0.89049, 1, 1, 0.81055, 1.04106, 1.20528,\n 1.20528, 1, 1.15543, 0.70674, 0.98387, 0.94721, 1.33431, 1.45894, 0.95161,\n 1.06303, 0.83908, 0.80352, 0.57184, 0.6965, 0.56289, 0.82001, 0.56029,\n 0.81235, 1.02988, 0.83908, 0.7762, 0.68156, 0.80367, 0.73133, 0.78257,\n 0.87356, 0.86943, 0.95958, 0.75727, 0.89019, 1.04924, 0.9121, 0.7648, 0.86943,\n 0.87356, 0.79795, 0.78275, 0.81055, 0.77892, 0.9762, 0.82577, 0.99819,\n 0.84896, 0.95958, 0.77892, 0.96108, 1.01407, 0.89049, 1.02988, 0.94211,\n 0.96108, 0.8936, 0.84021, 0.87842, 0.96399, 0.79109, 0.89049, 1.00813,\n 1.02988, 0.86077, 0.87445, 0.92099, 0.84723, 0.86513, 0.8801, 0.75638,\n 0.85714, 0.78216, 0.79586, 0.87965, 0.94211, 0.97747, 0.78287, 0.97926,\n 0.84971, 1.02988, 0.94211, 0.8801, 0.94211, 0.84971, 0.73133, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 0.90264, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 0.90518, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90548, 1, 1, 1, 1, 1, 1,\n 0.96017, 0.95794, 0.96017, 0.95794, 0.96017, 0.95794, 0.77892, 0.85162, 1, 1,\n 0.89552, 0.90527, 1, 0.90363, 0.92794, 0.92794, 0.92794, 0.92794, 0.87012,\n 0.87012, 0.87012, 0.89552, 0.89552, 1.42259, 0.71143, 1.06152, 1, 1, 1.03372,\n 1.03372, 0.97171, 1.4956, 2.2807, 0.93835, 0.83406, 0.91133, 0.84107, 0.91133,\n 1, 1, 1, 0.72021, 1, 1.23108, 0.83489, 0.88525, 0.88525, 0.81499, 0.90527,\n 1.81055, 0.90527, 1.81055, 1.31006, 1.53711, 0.94434, 1.08696, 1, 0.95018,\n 0.77192, 0.85284, 0.90747, 1.17534, 0.69825, 0.9716, 1.37077, 0.90747,\n 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572,\n 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.08004, 0.91027, 1, 1, 1,\n 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90727, 0.90727, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst CalibriBoldMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };\n\n// Factors to rescale LiberationSans-BoldItalic.ttf to have the same\n// metrics as calibriz.ttf.\nconst CalibriBoldItalicFactors = [\n 1.3877, 1, 1, 1, 0.97801, 0.92482, 0.89552, 0.91133, 0.81988, 0.97566,\n 0.98152, 0.93548, 0.93548, 1.2798, 0.85284, 0.92794, 1, 0.96134, 1.56239,\n 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133,\n 0.91133, 0.91133, 0.82845, 0.82845, 0.85284, 0.85284, 0.85284, 0.75859,\n 0.92138, 0.83908, 0.7762, 0.71805, 0.87289, 0.73133, 0.7514, 0.81921, 0.87356,\n 0.95958, 0.59526, 0.75727, 0.69225, 1.04924, 0.90872, 0.85938, 0.79795,\n 0.87068, 0.77958, 0.69766, 0.81055, 0.90399, 0.88653, 0.96068, 0.82577,\n 0.77892, 0.78257, 0.97507, 1.529, 0.97507, 0.85284, 0.89552, 0.90176, 0.94908,\n 0.86411, 0.74012, 0.86411, 0.88323, 0.95015, 0.86411, 0.86331, 0.88401,\n 0.91916, 0.86304, 0.88401, 0.9039, 0.86331, 0.86331, 0.86411, 0.86411,\n 0.90464, 0.70852, 1.04106, 0.86331, 0.84372, 0.95794, 0.82616, 0.84548,\n 0.79492, 0.88331, 1.69808, 0.88331, 0.85284, 0.97801, 0.89552, 0.91133,\n 0.89552, 0.91133, 1.7801, 0.89552, 1.24487, 1.13254, 1.19129, 0.96839,\n 0.85284, 0.68787, 0.70645, 0.85592, 0.90747, 1.01466, 1.0088, 0.90323, 1,\n 1.07463, 1, 0.91056, 0.75806, 1.19118, 0.96839, 0.78864, 0.82845, 0.84133,\n 0.75859, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.77539,\n 0.71805, 0.73133, 0.73133, 0.73133, 0.73133, 0.95958, 0.95958, 0.95958,\n 0.95958, 0.88506, 0.90872, 0.85938, 0.85938, 0.85938, 0.85938, 0.85938,\n 0.85284, 0.87068, 0.90399, 0.90399, 0.90399, 0.90399, 0.77892, 0.79795,\n 0.90807, 0.94908, 0.94908, 0.94908, 0.94908, 0.94908, 0.94908, 0.85887,\n 0.74012, 0.88323, 0.88323, 0.88323, 0.88323, 0.88401, 0.88401, 0.88401,\n 0.88401, 0.8785, 0.86331, 0.86331, 0.86331, 0.86331, 0.86331, 0.86331,\n 0.90747, 0.89049, 0.86331, 0.86331, 0.86331, 0.86331, 0.84548, 0.86411,\n 0.84548, 0.83908, 0.94908, 0.83908, 0.94908, 0.83908, 0.94908, 0.71805,\n 0.74012, 0.71805, 0.74012, 0.71805, 0.74012, 0.71805, 0.74012, 0.87289,\n 0.79538, 0.88506, 0.92726, 0.73133, 0.88323, 0.73133, 0.88323, 0.73133,\n 0.88323, 0.73133, 0.88323, 0.73133, 0.88323, 0.81921, 0.86411, 0.81921,\n 0.86411, 0.81921, 0.86411, 1, 1, 0.87356, 0.86331, 0.91075, 0.8777, 0.95958,\n 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958,\n 0.88401, 0.76467, 0.90167, 0.59526, 0.91916, 1, 1, 0.86304, 0.69225, 0.88401,\n 1, 1, 0.70424, 0.77312, 0.91926, 0.88175, 0.70823, 0.94903, 0.90872, 0.86331,\n 1, 1, 0.90872, 0.86331, 0.86906, 0.88116, 0.86331, 0.85938, 0.86331, 0.85938,\n 0.86331, 0.85938, 0.86331, 0.87402, 0.86549, 0.77958, 0.90464, 1, 1, 0.77958,\n 0.90464, 0.69766, 0.70852, 0.69766, 0.70852, 0.69766, 0.70852, 0.69766,\n 0.70852, 1, 1, 0.81055, 0.75841, 0.81055, 1.06452, 0.90399, 0.86331, 0.90399,\n 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399,\n 0.86331, 0.96068, 0.95794, 0.77892, 0.84548, 0.77892, 0.78257, 0.79492,\n 0.78257, 0.79492, 0.78257, 0.79492, 0.9297, 0.56892, 0.83908, 0.94908,\n 0.77539, 0.85887, 0.87068, 0.89049, 1, 1, 0.81055, 1.04106, 1.20528, 1.20528,\n 1, 1.15543, 0.70088, 0.98387, 0.94721, 1.33431, 1.45894, 0.95161, 1.48387,\n 0.83908, 0.80352, 0.57118, 0.6965, 0.56347, 0.79179, 0.55853, 0.80346,\n 1.02988, 0.83908, 0.7762, 0.67174, 0.86036, 0.73133, 0.78257, 0.87356,\n 0.86441, 0.95958, 0.75727, 0.89019, 1.04924, 0.90872, 0.74889, 0.85938,\n 0.87891, 0.79795, 0.7957, 0.81055, 0.77892, 0.97447, 0.82577, 0.97466,\n 0.87179, 0.95958, 0.77892, 0.94252, 0.95612, 0.8753, 1.02988, 0.92733,\n 0.94252, 0.87411, 0.84021, 0.8728, 0.95612, 0.74081, 0.8753, 1.02189, 1.02988,\n 0.84814, 0.87445, 0.91822, 0.84723, 0.85668, 0.86331, 0.81344, 0.87581,\n 0.76422, 0.82046, 0.96057, 0.92733, 0.99375, 0.78022, 0.95452, 0.86015,\n 1.02988, 0.92733, 0.86331, 0.92733, 0.86015, 0.73133, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 0.90631, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.88323, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.85174, 1, 1, 1, 1, 1, 1, 0.96068, 0.95794,\n 0.96068, 0.95794, 0.96068, 0.95794, 0.77892, 0.84548, 1, 1, 0.89552, 0.90527,\n 1, 0.90363, 0.92794, 0.92794, 0.92794, 0.89807, 0.87012, 0.87012, 0.87012,\n 0.89552, 0.89552, 1.42259, 0.71094, 1.06152, 1, 1, 1.03372, 1.03372, 0.97171,\n 1.4956, 2.2807, 0.92972, 0.83406, 0.91133, 0.83326, 0.91133, 1, 1, 1, 0.72021,\n 1, 1.23108, 0.83489, 0.88525, 0.88525, 0.81499, 0.90616, 1.81055, 0.90527,\n 1.81055, 1.3107, 1.53711, 0.94434, 1.08696, 1, 0.95018, 0.77192, 0.85284,\n 0.90747, 1.17534, 0.69825, 0.9716, 1.37077, 0.90747, 0.90747, 0.85356,\n 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572,\n 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.08004, 0.91027, 1, 1, 1, 0.99862, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90727, 0.90727, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst CalibriBoldItalicMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };\n\n// Factors to rescale LiberationSans-Italic.ttf to have the same\n// metrics as calibrii.ttf.\nconst CalibriItalicFactors = [\n 1.3877, 1, 1, 1, 1.17223, 1.1293, 0.89552, 0.91133, 0.80395, 1.02269, 1.15601,\n 0.91056, 0.91056, 1.2798, 0.85284, 0.89807, 1, 0.90861, 1.39543, 0.91133,\n 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133,\n 0.91133, 0.96309, 0.96309, 0.85284, 0.85284, 0.85284, 0.83319, 0.88071,\n 0.8675, 0.81552, 0.72346, 0.85193, 0.73206, 0.7522, 0.81105, 0.86275, 0.90685,\n 0.6377, 0.77892, 0.75593, 1.02638, 0.89249, 0.84118, 0.77452, 0.85374,\n 0.75186, 0.67789, 0.79776, 0.88844, 0.85066, 0.94309, 0.77818, 0.7306,\n 0.76659, 1.10369, 1.38313, 1.10369, 1.06139, 0.89552, 0.8739, 0.9245, 0.9245,\n 0.83203, 0.9245, 0.85865, 1.09842, 0.9245, 0.9245, 1.03297, 1.07692, 0.90918,\n 1.03297, 0.94959, 0.9245, 0.92274, 0.9245, 0.9245, 1.02933, 0.77832, 1.20562,\n 0.9245, 0.8916, 0.98986, 0.86621, 0.89453, 0.79004, 0.94152, 1.77256, 0.94152,\n 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.91729, 0.89552,\n 1.17889, 1.13254, 1.16359, 0.92098, 0.85284, 0.68787, 0.71353, 0.84737,\n 0.90747, 1.0088, 1.0044, 0.87683, 1, 1.09091, 1, 0.92229, 0.739, 1.15642,\n 0.92098, 0.76288, 0.80504, 0.80972, 0.75859, 0.8675, 0.8675, 0.8675, 0.8675,\n 0.8675, 0.8675, 0.76318, 0.72346, 0.73206, 0.73206, 0.73206, 0.73206, 0.90685,\n 0.90685, 0.90685, 0.90685, 0.86477, 0.89249, 0.84118, 0.84118, 0.84118,\n 0.84118, 0.84118, 0.85284, 0.84557, 0.88844, 0.88844, 0.88844, 0.88844,\n 0.7306, 0.77452, 0.86331, 0.9245, 0.9245, 0.9245, 0.9245, 0.9245, 0.9245,\n 0.84843, 0.83203, 0.85865, 0.85865, 0.85865, 0.85865, 0.82601, 0.82601,\n 0.82601, 0.82601, 0.94469, 0.9245, 0.92274, 0.92274, 0.92274, 0.92274,\n 0.92274, 0.90747, 0.86651, 0.9245, 0.9245, 0.9245, 0.9245, 0.89453, 0.9245,\n 0.89453, 0.8675, 0.9245, 0.8675, 0.9245, 0.8675, 0.9245, 0.72346, 0.83203,\n 0.72346, 0.83203, 0.72346, 0.83203, 0.72346, 0.83203, 0.85193, 0.8875,\n 0.86477, 0.99034, 0.73206, 0.85865, 0.73206, 0.85865, 0.73206, 0.85865,\n 0.73206, 0.85865, 0.73206, 0.85865, 0.81105, 0.9245, 0.81105, 0.9245, 0.81105,\n 0.9245, 1, 1, 0.86275, 0.9245, 0.90872, 0.93591, 0.90685, 0.82601, 0.90685,\n 0.82601, 0.90685, 0.82601, 0.90685, 1.03297, 0.90685, 0.82601, 0.77896,\n 1.05611, 0.6377, 1.07692, 1, 1, 0.90918, 0.75593, 1.03297, 1, 1, 0.76032,\n 0.9375, 0.98156, 0.93407, 0.77261, 1.11429, 0.89249, 0.9245, 1, 1, 0.89249,\n 0.9245, 0.92534, 0.86698, 0.9245, 0.84118, 0.92274, 0.84118, 0.92274, 0.84118,\n 0.92274, 0.8667, 0.86291, 0.75186, 1.02933, 1, 1, 0.75186, 1.02933, 0.67789,\n 0.77832, 0.67789, 0.77832, 0.67789, 0.77832, 0.67789, 0.77832, 1, 1, 0.79776,\n 0.97655, 0.79776, 1.23023, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245,\n 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.94309, 0.98986, 0.7306,\n 0.89453, 0.7306, 0.76659, 0.79004, 0.76659, 0.79004, 0.76659, 0.79004,\n 1.09231, 0.54873, 0.8675, 0.9245, 0.76318, 0.84843, 0.84557, 0.86651, 1, 1,\n 0.79776, 1.20562, 1.18622, 1.18622, 1, 1.1437, 0.67009, 0.96334, 0.93695,\n 1.35191, 1.40909, 0.95161, 1.48387, 0.8675, 0.90861, 0.6192, 0.7363, 0.64824,\n 0.82411, 0.56321, 0.85696, 1.23516, 0.8675, 0.81552, 0.7286, 0.84134, 0.73206,\n 0.76659, 0.86275, 0.84369, 0.90685, 0.77892, 0.85871, 1.02638, 0.89249,\n 0.75828, 0.84118, 0.85984, 0.77452, 0.76466, 0.79776, 0.7306, 0.90782,\n 0.77818, 0.903, 0.87291, 0.90685, 0.7306, 0.99058, 1.03667, 0.94635, 1.23516,\n 0.9849, 0.99058, 0.92393, 0.8916, 0.942, 1.03667, 0.75026, 0.94635, 1.0297,\n 1.23516, 0.90918, 0.94048, 0.98217, 0.89746, 0.84153, 0.92274, 0.82507,\n 0.88832, 0.84438, 0.88178, 1.03525, 0.9849, 1.00225, 0.78086, 0.97248,\n 0.89404, 1.23516, 0.9849, 0.92274, 0.9849, 0.89404, 0.73206, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 0.89693, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.85865,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90933, 1, 1, 1, 1, 1, 1, 0.94309,\n 0.98986, 0.94309, 0.98986, 0.94309, 0.98986, 0.7306, 0.89453, 1, 1, 0.89552,\n 0.90527, 1, 0.90186, 1.12308, 1.12308, 1.12308, 1.12308, 1.2566, 1.2566,\n 1.2566, 0.89552, 0.89552, 1.42259, 0.68994, 1.03809, 1, 1, 1.0176, 1.0176,\n 1.11523, 1.4956, 2.01462, 0.97858, 0.82616, 0.91133, 0.83437, 0.91133, 1, 1,\n 1, 0.70508, 1, 1.23108, 0.79801, 0.84426, 0.84426, 0.774, 0.90572, 1.81055,\n 0.90749, 1.81055, 1.28809, 1.55469, 0.94434, 1.07806, 1, 0.97094, 0.7589,\n 0.85284, 0.90747, 1.19658, 0.69825, 0.97622, 1.33512, 0.90747, 0.90747,\n 0.85284, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8,\n 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.0336, 0.91027, 1, 1, 1,\n 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05859, 1.05859, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst CalibriItalicMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };\n\n// Factors to rescale LiberationSans-Regular.ttf to have the same\n// metrics as calibri.ttf.\nconst CalibriRegularFactors = [\n 1.3877, 1, 1, 1, 1.17223, 1.1293, 0.89552, 0.91133, 0.80395, 1.02269, 1.15601,\n 0.91056, 0.91056, 1.2798, 0.85284, 0.89807, 1, 0.90861, 1.39016, 0.91133,\n 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133,\n 0.91133, 0.96309, 0.96309, 0.85284, 0.85284, 0.85284, 0.83319, 0.88071,\n 0.8675, 0.81552, 0.73834, 0.85193, 0.73206, 0.7522, 0.81105, 0.86275, 0.90685,\n 0.6377, 0.77892, 0.75593, 1.02638, 0.89385, 0.85122, 0.77452, 0.86503,\n 0.75186, 0.68887, 0.79776, 0.88844, 0.85066, 0.94258, 0.77818, 0.7306,\n 0.76659, 1.10369, 1.39016, 1.10369, 1.06139, 0.89552, 0.8739, 0.86128,\n 0.94469, 0.8457, 0.94469, 0.89464, 1.09842, 0.84636, 0.94469, 1.03297,\n 1.07692, 0.90918, 1.03297, 0.95897, 0.94469, 0.9482, 0.94469, 0.94469,\n 1.04692, 0.78223, 1.20562, 0.94469, 0.90332, 0.98986, 0.86621, 0.90527,\n 0.79004, 0.94152, 1.77256, 0.94152, 0.85284, 0.97801, 0.89552, 0.91133,\n 0.89552, 0.91133, 1.91729, 0.89552, 1.17889, 1.13254, 1.08707, 0.92098,\n 0.85284, 0.68787, 0.71353, 0.84737, 0.90747, 1.0088, 1.0044, 0.87683, 1,\n 1.09091, 1, 0.92229, 0.739, 1.15642, 0.92098, 0.76288, 0.80504, 0.80972,\n 0.75859, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.76318, 0.73834,\n 0.73206, 0.73206, 0.73206, 0.73206, 0.90685, 0.90685, 0.90685, 0.90685,\n 0.86477, 0.89385, 0.85122, 0.85122, 0.85122, 0.85122, 0.85122, 0.85284,\n 0.85311, 0.88844, 0.88844, 0.88844, 0.88844, 0.7306, 0.77452, 0.86331,\n 0.86128, 0.86128, 0.86128, 0.86128, 0.86128, 0.86128, 0.8693, 0.8457, 0.89464,\n 0.89464, 0.89464, 0.89464, 0.82601, 0.82601, 0.82601, 0.82601, 0.94469,\n 0.94469, 0.9482, 0.9482, 0.9482, 0.9482, 0.9482, 0.90747, 0.86651, 0.94469,\n 0.94469, 0.94469, 0.94469, 0.90527, 0.94469, 0.90527, 0.8675, 0.86128, 0.8675,\n 0.86128, 0.8675, 0.86128, 0.73834, 0.8457, 0.73834, 0.8457, 0.73834, 0.8457,\n 0.73834, 0.8457, 0.85193, 0.92454, 0.86477, 0.9921, 0.73206, 0.89464, 0.73206,\n 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.81105,\n 0.84636, 0.81105, 0.84636, 0.81105, 0.84636, 1, 1, 0.86275, 0.94469, 0.90872,\n 0.95786, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685,\n 1.03297, 0.90685, 0.82601, 0.77741, 1.05611, 0.6377, 1.07692, 1, 1, 0.90918,\n 0.75593, 1.03297, 1, 1, 0.76032, 0.90452, 0.98156, 1.11842, 0.77261, 1.11429,\n 0.89385, 0.94469, 1, 1, 0.89385, 0.94469, 0.95877, 0.86901, 0.94469, 0.85122,\n 0.9482, 0.85122, 0.9482, 0.85122, 0.9482, 0.8667, 0.90016, 0.75186, 1.04692,\n 1, 1, 0.75186, 1.04692, 0.68887, 0.78223, 0.68887, 0.78223, 0.68887, 0.78223,\n 0.68887, 0.78223, 1, 1, 0.79776, 0.92188, 0.79776, 1.23023, 0.88844, 0.94469,\n 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469,\n 0.88844, 0.94469, 0.94258, 0.98986, 0.7306, 0.90527, 0.7306, 0.76659, 0.79004,\n 0.76659, 0.79004, 0.76659, 0.79004, 1.09231, 0.54873, 0.8675, 0.86128,\n 0.76318, 0.8693, 0.85311, 0.86651, 1, 1, 0.79776, 1.20562, 1.18622, 1.18622,\n 1, 1.1437, 0.67742, 0.96334, 0.93695, 1.35191, 1.40909, 0.95161, 1.48387,\n 0.86686, 0.90861, 0.62267, 0.74359, 0.65649, 0.85498, 0.56963, 0.88254,\n 1.23516, 0.8675, 0.81552, 0.75443, 0.84503, 0.73206, 0.76659, 0.86275,\n 0.85122, 0.90685, 0.77892, 0.85746, 1.02638, 0.89385, 0.75657, 0.85122,\n 0.86275, 0.77452, 0.74171, 0.79776, 0.7306, 0.95165, 0.77818, 0.89772,\n 0.88831, 0.90685, 0.7306, 0.98142, 1.02191, 0.96576, 1.23516, 0.99018,\n 0.98142, 0.9236, 0.89258, 0.94035, 1.02191, 0.78848, 0.96576, 0.9561, 1.23516,\n 0.90918, 0.92578, 0.95424, 0.89746, 0.83969, 0.9482, 0.80113, 0.89442,\n 0.85208, 0.86155, 0.98022, 0.99018, 1.00452, 0.81209, 0.99247, 0.89181,\n 1.23516, 0.99018, 0.9482, 0.99018, 0.89181, 0.73206, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 0.88844, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89464, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.96766, 1, 1, 1, 1, 1, 1, 0.94258, 0.98986,\n 0.94258, 0.98986, 0.94258, 0.98986, 0.7306, 0.90527, 1, 1, 0.89552, 0.90527,\n 1, 0.90186, 1.12308, 1.12308, 1.12308, 1.12308, 1.2566, 1.2566, 1.2566,\n 0.89552, 0.89552, 1.42259, 0.69043, 1.03809, 1, 1, 1.0176, 1.0176, 1.11523,\n 1.4956, 2.01462, 0.99331, 0.82616, 0.91133, 0.84286, 0.91133, 1, 1, 1,\n 0.70508, 1, 1.23108, 0.79801, 0.84426, 0.84426, 0.774, 0.90527, 1.81055,\n 0.90527, 1.81055, 1.28809, 1.55469, 0.94434, 1.07806, 1, 0.97094, 0.7589,\n 0.85284, 0.90747, 1.19658, 0.69825, 0.97622, 1.33512, 0.90747, 0.90747,\n 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8,\n 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.0336, 0.91027, 1, 1, 1,\n 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05859, 1.05859, 1, 1, 1,\n 1.07185, 0.99413, 0.96334, 1.08065, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst CalibriRegularMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };\n\nexport {\n CalibriBoldFactors,\n CalibriBoldItalicFactors,\n CalibriBoldItalicMetrics,\n CalibriBoldMetrics,\n CalibriItalicFactors,\n CalibriItalicMetrics,\n CalibriRegularFactors,\n CalibriRegularMetrics,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Factors to rescale LiberationSans-Bold.ttf to have the same\n// metrics as NimbusSans-Bold.otf.\nconst HelveticaBoldFactors = [\n 0.76116, 1, 1, 1.0006, 0.99998, 0.99974, 0.99973, 0.99973, 0.99982, 0.99977,\n 1.00087, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99998, 1, 1.00003, 1.00003, 1.00003, 1.00026, 0.9999,\n 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977,\n 1.0006, 0.99973, 0.99977, 1.00026, 0.99999, 0.99977, 1.00022, 1.00001,\n 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001,\n 1.00001, 1.00026, 0.99998, 1.0006, 0.99998, 1.00003, 0.99973, 0.99998,\n 0.99973, 1.00026, 0.99973, 1.00026, 0.99973, 0.99998, 1.00026, 1.00026,\n 1.0006, 1.0006, 0.99973, 1.0006, 0.99982, 1.00026, 1.00026, 1.00026, 1.00026,\n 0.99959, 0.99973, 0.99998, 1.00026, 0.99973, 1.00022, 0.99973, 0.99973, 1,\n 0.99959, 1.00077, 0.99959, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973,\n 0.99973, 1.00077, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003,\n 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.99973, 1.0006,\n 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 0.99977,\n 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 1, 0.99977, 1.00001, 1.00001,\n 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022,\n 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977,\n 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99982, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.00026, 1.00026, 1.00026, 1.00026,\n 1.00026, 1.00026, 1.00026, 1.06409, 1.00026, 1.00026, 1.00026, 1.00026,\n 1.00026, 0.99973, 1.00026, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 1.03374, 0.99977, 1.00026, 1.00001, 0.99973,\n 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973,\n 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,\n 0.99977, 1.00026, 0.99977, 1.00026, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006,\n 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.00042, 0.99973, 0.99973, 1.0006,\n 0.99977, 0.99973, 0.99973, 1.00026, 1.0006, 1.00026, 1.0006, 1.00026, 1.03828,\n 1.00026, 0.99999, 1.00026, 1.0006, 0.99977, 1.00026, 0.99977, 1.00026,\n 0.99977, 1.00026, 0.9993, 0.9998, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,\n 1.00022, 1.00026, 1, 1.00016, 0.99977, 0.99959, 0.99977, 0.99959, 0.99977,\n 0.99959, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,\n 0.99973, 1.00026, 0.99998, 1.00026, 0.8121, 1.00026, 0.99998, 0.99977,\n 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977,\n 1.00026, 0.99977, 1.00026, 1.00016, 1.00022, 1.00001, 0.99973, 1.00001,\n 1.00026, 1, 1.00026, 1, 1.00026, 1, 1.0006, 0.99973, 0.99977, 0.99973, 1,\n 0.99982, 1.00022, 1.00026, 1.00001, 0.99973, 1.00026, 0.99998, 0.99998,\n 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,\n 0.99998, 1.00034, 0.99977, 1, 0.99997, 1.00026, 1.00078, 1.00036, 0.99973,\n 1.00013, 1.0006, 0.99977, 0.99977, 0.99988, 0.85148, 1.00001, 1.00026,\n 0.99977, 1.00022, 1.0006, 0.99977, 1.00001, 0.99999, 0.99977, 1.00069,\n 1.00022, 0.99977, 1.00001, 0.99984, 1.00026, 1.00001, 1.00024, 1.00001,\n 0.9999, 1, 1.0006, 1.00001, 1.00041, 0.99962, 1.00026, 1.0006, 0.99995,\n 1.00041, 0.99942, 0.99973, 0.99927, 1.00082, 0.99902, 1.00026, 1.00087,\n 1.0006, 1.00069, 0.99973, 0.99867, 0.99973, 0.9993, 1.00026, 1.00049, 1.00056,\n 1, 0.99988, 0.99935, 0.99995, 0.99954, 1.00055, 0.99945, 1.00032, 1.0006,\n 0.99995, 1.00026, 0.99995, 1.00032, 1.00001, 1.00008, 0.99971, 1.00019,\n 0.9994, 1.00001, 1.0006, 1.00044, 0.99973, 1.00023, 1.00047, 1, 0.99942,\n 0.99561, 0.99989, 1.00035, 0.99977, 1.00035, 0.99977, 1.00019, 0.99944,\n 1.00001, 1.00021, 0.99926, 1.00035, 1.00035, 0.99942, 1.00048, 0.99999,\n 0.99977, 1.00022, 1.00035, 1.00001, 0.99977, 1.00026, 0.99989, 1.00057,\n 1.00001, 0.99936, 1.00052, 1.00012, 0.99996, 1.00043, 1, 1.00035, 0.9994,\n 0.99976, 1.00035, 0.99973, 1.00052, 1.00041, 1.00119, 1.00037, 0.99973,\n 1.00002, 0.99986, 1.00041, 1.00041, 0.99902, 0.9996, 1.00034, 0.99999,\n 1.00026, 0.99999, 1.00026, 0.99973, 1.00052, 0.99973, 1, 0.99973, 1.00041,\n 1.00075, 0.9994, 1.0003, 0.99999, 1, 1.00041, 0.99955, 1, 0.99915, 0.99973,\n 0.99973, 1.00026, 1.00119, 0.99955, 0.99973, 1.0006, 0.99911, 1.0006, 1.00026,\n 0.99972, 1.00026, 0.99902, 1.00041, 0.99973, 0.99999, 1, 1, 1.00038, 1.0005,\n 1.00016, 1.00022, 1.00016, 1.00022, 1.00016, 1.00022, 1.00001, 0.99973, 1, 1,\n 0.99973, 1, 1, 0.99955, 1.0006, 1.0006, 1.0006, 1.0006, 1, 1, 1, 0.99973,\n 0.99973, 0.99972, 1, 1, 1.00106, 0.99999, 0.99998, 0.99998, 0.99999, 0.99998,\n 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973, 0.99971, 1.00047, 1.00023, 1,\n 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1, 1, 1, 1, 1, 1, 1,\n 0.99972, 1, 1.20985, 1.39713, 1.00003, 1.00031, 1.00015, 1, 0.99561, 1.00027,\n 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999,\n 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625,\n 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.99972,\n 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1,\n 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998,\n 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst HelveticaBoldMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-BoldItalic.ttf to have the same\n// metrics as NimbusSans-BoldItalic.otf.\nconst HelveticaBoldItalicFactors = [\n 0.76116, 1, 1, 1.0006, 0.99998, 0.99974, 0.99973, 0.99973, 0.99982, 0.99977,\n 1.00087, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99998, 1, 1.00003, 1.00003, 1.00003, 1.00026, 0.9999,\n 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977,\n 1.0006, 0.99973, 0.99977, 1.00026, 0.99999, 0.99977, 1.00022, 1.00001,\n 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001,\n 1.00001, 1.00026, 0.99998, 1.0006, 0.99998, 1.00003, 0.99973, 0.99998,\n 0.99973, 1.00026, 0.99973, 1.00026, 0.99973, 0.99998, 1.00026, 1.00026,\n 1.0006, 1.0006, 0.99973, 1.0006, 0.99982, 1.00026, 1.00026, 1.00026, 1.00026,\n 0.99959, 0.99973, 0.99998, 1.00026, 0.99973, 1.00022, 0.99973, 0.99973, 1,\n 0.99959, 1.00077, 0.99959, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973,\n 0.99973, 1.00077, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003,\n 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.99973, 1.0006,\n 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 0.99977,\n 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 1, 0.99977, 1.00001, 1.00001,\n 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022,\n 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977,\n 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99982, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.00026, 1.00026, 1.00026, 1.00026,\n 1.00026, 1.00026, 1.00026, 1.06409, 1.00026, 1.00026, 1.00026, 1.00026,\n 1.00026, 0.99973, 1.00026, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 1.0044, 0.99977, 1.00026, 1.00001, 0.99973,\n 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973,\n 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,\n 0.99977, 1.00026, 0.99977, 1.00026, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006,\n 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99971, 0.99973, 0.99973, 1.0006,\n 0.99977, 0.99973, 0.99973, 1.00026, 1.0006, 1.00026, 1.0006, 1.00026, 1.01011,\n 1.00026, 0.99999, 1.00026, 1.0006, 0.99977, 1.00026, 0.99977, 1.00026,\n 0.99977, 1.00026, 0.9993, 0.9998, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,\n 1.00022, 1.00026, 1, 1.00016, 0.99977, 0.99959, 0.99977, 0.99959, 0.99977,\n 0.99959, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,\n 0.99973, 1.00026, 0.99998, 1.00026, 0.8121, 1.00026, 0.99998, 0.99977,\n 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977,\n 1.00026, 0.99977, 1.00026, 1.00016, 1.00022, 1.00001, 0.99973, 1.00001,\n 1.00026, 1, 1.00026, 1, 1.00026, 1, 1.0006, 0.99973, 0.99977, 0.99973, 1,\n 0.99982, 1.00022, 1.00026, 1.00001, 0.99973, 1.00026, 0.99998, 0.99998,\n 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,\n 0.99998, 0.99998, 0.99977, 1, 1, 1.00026, 0.99969, 0.99972, 0.99981, 0.9998,\n 1.0006, 0.99977, 0.99977, 1.00022, 0.91155, 1.00001, 1.00026, 0.99977,\n 1.00022, 1.0006, 0.99977, 1.00001, 0.99999, 0.99977, 0.99966, 1.00022,\n 1.00032, 1.00001, 0.99944, 1.00026, 1.00001, 0.99968, 1.00001, 1.00047, 1,\n 1.0006, 1.00001, 0.99981, 1.00101, 1.00026, 1.0006, 0.99948, 0.99981, 1.00064,\n 0.99973, 0.99942, 1.00101, 1.00061, 1.00026, 1.00069, 1.0006, 1.00014,\n 0.99973, 1.01322, 0.99973, 1.00065, 1.00026, 1.00012, 0.99923, 1, 1.00064,\n 1.00076, 0.99948, 1.00055, 1.00063, 1.00007, 0.99943, 1.0006, 0.99948,\n 1.00026, 0.99948, 0.99943, 1.00001, 1.00001, 1.00029, 1.00038, 1.00035,\n 1.00001, 1.0006, 1.0006, 0.99973, 0.99978, 1.00001, 1.00057, 0.99989, 0.99967,\n 0.99964, 0.99967, 0.99977, 0.99999, 0.99977, 1.00038, 0.99977, 1.00001,\n 0.99973, 1.00066, 0.99967, 0.99967, 1.00041, 0.99998, 0.99999, 0.99977,\n 1.00022, 0.99967, 1.00001, 0.99977, 1.00026, 0.99964, 1.00031, 1.00001,\n 0.99999, 0.99999, 1, 1.00023, 1, 1, 0.99999, 1.00035, 1.00001, 0.99999,\n 0.99973, 0.99977, 0.99999, 1.00058, 0.99973, 0.99973, 0.99955, 0.9995,\n 1.00026, 1.00026, 1.00032, 0.99989, 1.00034, 0.99999, 1.00026, 1.00026,\n 1.00026, 0.99973, 0.45998, 0.99973, 1.00026, 0.99973, 1.00001, 0.99999,\n 0.99982, 0.99994, 0.99996, 1, 1.00042, 1.00044, 1.00029, 1.00023, 0.99973,\n 0.99973, 1.00026, 0.99949, 1.00002, 0.99973, 1.0006, 1.0006, 1.0006, 0.99975,\n 1.00026, 1.00026, 1.00032, 0.98685, 0.99973, 1.00026, 1, 1, 0.99966, 1.00044,\n 1.00016, 1.00022, 1.00016, 1.00022, 1.00016, 1.00022, 1.00001, 0.99973, 1, 1,\n 0.99973, 1, 1, 0.99955, 1.0006, 1.0006, 1.0006, 1.0006, 1, 1, 1, 0.99973,\n 0.99973, 0.99972, 1, 1, 1.00106, 0.99999, 0.99998, 0.99998, 0.99999, 0.99998,\n 1.66475, 1, 0.99973, 0.99973, 1, 0.99973, 0.99971, 0.99978, 1, 1, 0.99991,\n 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1.00098, 1, 1, 1, 1.00049, 1, 1,\n 0.99972, 1, 1.20985, 1.39713, 1.00003, 1.00031, 1.00015, 1, 0.99561, 1.00027,\n 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999,\n 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625,\n 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.99972,\n 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1,\n 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998,\n 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst HelveticaBoldItalicMetrics = { lineHeight: 1.35, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-Italic.ttf to have the same\n// metrics as NimbusSans-Italic.otf.\nconst HelveticaItalicFactors = [\n 0.76116, 1, 1, 1.0006, 1.0006, 1.00006, 0.99973, 0.99973, 0.99982, 1.00001,\n 1.00043, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 1.0006, 1, 1.00003, 1.00003, 1.00003, 0.99973, 0.99987,\n 1.00001, 1.00001, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977,\n 1.0006, 1, 1.00001, 0.99973, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022,\n 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001,\n 1.00026, 1.0006, 1.0006, 1.0006, 0.99949, 0.99973, 0.99998, 0.99973, 0.99973,\n 1, 0.99973, 0.99973, 1.0006, 0.99973, 0.99973, 0.99924, 0.99924, 1, 0.99924,\n 0.99999, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.0006, 0.99973, 1,\n 0.99977, 1, 1, 1, 1.00005, 1.0009, 1.00005, 1.00003, 0.99998, 0.99973,\n 0.99973, 0.99973, 0.99973, 1.0009, 0.99973, 0.99998, 1.00025, 0.99968,\n 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1,\n 0.9998, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002,\n 1.00026, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1, 0.99977,\n 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977,\n 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022,\n 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 1, 0.99973, 0.99973,\n 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99973, 1.06409, 1.00026, 0.99973, 0.99973,\n 0.99973, 0.99973, 1, 0.99973, 1, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,\n 0.99973, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1.0288,\n 0.99977, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973,\n 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973,\n 1.00022, 0.99973, 1.00022, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99924, 1.0006,\n 1.0006, 0.99946, 1.00034, 1, 0.99924, 1.00001, 1, 1, 0.99973, 0.99924,\n 0.99973, 0.99924, 0.99973, 1.06311, 0.99973, 1.00024, 0.99973, 0.99924,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.00041, 0.9998,\n 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1, 1.00016,\n 0.99977, 0.99998, 0.99977, 0.99998, 0.99977, 0.99998, 1.00001, 1, 1.00001, 1,\n 1.00001, 1, 1.00001, 1, 1.00026, 1.0006, 1.00026, 0.89547, 1.00026, 1.0006,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 0.99973, 1.00016, 0.99977, 1.00001, 1, 1.00001,\n 1.00026, 1, 1.00026, 1, 1.00026, 1, 0.99924, 0.99973, 1.00001, 0.99973, 1,\n 0.99982, 1.00022, 1.00026, 1.00001, 1, 1.00026, 1.0006, 0.99998, 0.99998,\n 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,\n 0.99998, 1.00001, 1, 1.00054, 0.99977, 1.00084, 1.00007, 0.99973, 1.00013,\n 0.99924, 1.00001, 1.00001, 0.99945, 0.91221, 1.00001, 1.00026, 0.99977,\n 1.00022, 1.0006, 1.00001, 1.00001, 0.99999, 0.99977, 0.99933, 1.00022,\n 1.00054, 1.00001, 1.00065, 1.00026, 1.00001, 1.0001, 1.00001, 1.00052, 1,\n 1.0006, 1.00001, 0.99945, 0.99897, 0.99968, 0.99924, 1.00036, 0.99945,\n 0.99949, 1, 1.0006, 0.99897, 0.99918, 0.99968, 0.99911, 0.99924, 1, 0.99962,\n 1.01487, 1, 1.0005, 0.99973, 1.00012, 1.00043, 1, 0.99995, 0.99994, 1.00036,\n 0.99947, 1.00019, 1.00063, 1.00025, 0.99924, 1.00036, 0.99973, 1.00036,\n 1.00025, 1.00001, 1.00001, 1.00027, 1.0001, 1.00068, 1.00001, 1.0006, 1.0006,\n 1, 1.00008, 0.99957, 0.99972, 0.9994, 0.99954, 0.99975, 1.00051, 1.00001,\n 1.00019, 1.00001, 1.0001, 0.99986, 1.00001, 1.00001, 1.00038, 0.99954,\n 0.99954, 0.9994, 1.00066, 0.99999, 0.99977, 1.00022, 1.00054, 1.00001,\n 0.99977, 1.00026, 0.99975, 1.0001, 1.00001, 0.99993, 0.9995, 0.99955, 1.00016,\n 0.99978, 0.99974, 1.00019, 1.00022, 0.99955, 1.00053, 0.99973, 1.00089,\n 1.00005, 0.99967, 1.00048, 0.99973, 1.00002, 1.00034, 0.99973, 0.99973,\n 0.99964, 1.00006, 1.00066, 0.99947, 0.99973, 0.98894, 0.99973, 1, 0.44898, 1,\n 0.99946, 1, 1.00039, 1.00082, 0.99991, 0.99991, 0.99985, 1.00022, 1.00023,\n 1.00061, 1.00006, 0.99966, 0.99973, 0.99973, 0.99973, 1.00019, 1.0008, 1,\n 0.99924, 0.99924, 0.99924, 0.99983, 1.00044, 0.99973, 0.99964, 0.98332, 1,\n 0.99973, 1, 1, 0.99962, 0.99895, 1.00016, 0.99977, 1.00016, 0.99977, 1.00016,\n 0.99977, 1.00001, 1, 1, 1, 0.99973, 1, 1, 0.99955, 0.99924, 0.99924, 0.99924,\n 0.99924, 0.99998, 0.99998, 0.99998, 0.99973, 0.99973, 0.99972, 1, 1, 1.00267,\n 0.99999, 0.99998, 0.99998, 1, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023,\n 0.99973, 1.00423, 0.99925, 0.99999, 1, 0.99991, 0.99984, 1.00002, 1.00002,\n 1.00002, 1.00002, 1.00049, 1, 1.00245, 1, 1, 1, 1, 0.96329, 1, 1.20985,\n 1.39713, 1.00003, 0.8254, 1.00015, 1, 1.00035, 1.00027, 1.00031, 1.00031,\n 1.00003, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861,\n 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.95317, 0.99999, 0.99999,\n 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962,\n 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst HelveticaItalicMetrics = { lineHeight: 1.35, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-Regular.ttf to have the same\n// metrics as NimbusSans-Regular.otf.\nconst HelveticaRegularFactors = [\n 0.76116, 1, 1, 1.0006, 1.0006, 1.00006, 0.99973, 0.99973, 0.99982, 1.00001,\n 1.00043, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 1.0006, 1, 1.00003, 1.00003, 1.00003, 0.99973, 0.99987,\n 1.00001, 1.00001, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977,\n 1.0006, 1, 1.00001, 0.99973, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022,\n 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001,\n 1.00026, 1.0006, 1.0006, 1.0006, 0.99949, 0.99973, 0.99998, 0.99973, 0.99973,\n 1, 0.99973, 0.99973, 1.0006, 0.99973, 0.99973, 0.99924, 0.99924, 1, 0.99924,\n 0.99999, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.0006, 0.99973, 1,\n 0.99977, 1, 1, 1, 1.00005, 1.0009, 1.00005, 1.00003, 0.99998, 0.99973,\n 0.99973, 0.99973, 0.99973, 1.0009, 0.99973, 0.99998, 1.00025, 0.99968,\n 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1,\n 0.9998, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002,\n 1.00026, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1, 0.99977,\n 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977,\n 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022,\n 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 1, 0.99973, 0.99973,\n 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99973, 1.06409, 1.00026, 0.99973, 0.99973,\n 0.99973, 0.99973, 1, 0.99973, 1, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,\n 0.99973, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1.04596,\n 0.99977, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973,\n 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973,\n 1.00022, 0.99973, 1.00022, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99924, 1.0006,\n 1.0006, 1.00019, 1.00034, 1, 0.99924, 1.00001, 1, 1, 0.99973, 0.99924,\n 0.99973, 0.99924, 0.99973, 1.02572, 0.99973, 1.00005, 0.99973, 0.99924,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99999, 0.9998,\n 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1, 1.00016,\n 0.99977, 0.99998, 0.99977, 0.99998, 0.99977, 0.99998, 1.00001, 1, 1.00001, 1,\n 1.00001, 1, 1.00001, 1, 1.00026, 1.0006, 1.00026, 0.84533, 1.00026, 1.0006,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 0.99973, 1.00016, 0.99977, 1.00001, 1, 1.00001,\n 1.00026, 1, 1.00026, 1, 1.00026, 1, 0.99924, 0.99973, 1.00001, 0.99973, 1,\n 0.99982, 1.00022, 1.00026, 1.00001, 1, 1.00026, 1.0006, 0.99998, 0.99998,\n 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,\n 0.99998, 0.99928, 1, 0.99977, 1.00013, 1.00055, 0.99947, 0.99945, 0.99941,\n 0.99924, 1.00001, 1.00001, 1.0004, 0.91621, 1.00001, 1.00026, 0.99977,\n 1.00022, 1.0006, 1.00001, 1.00005, 0.99999, 0.99977, 1.00015, 1.00022,\n 0.99977, 1.00001, 0.99973, 1.00026, 1.00001, 1.00019, 1.00001, 0.99946, 1,\n 1.0006, 1.00001, 0.99978, 1.00045, 0.99973, 0.99924, 1.00023, 0.99978,\n 0.99966, 1, 1.00065, 1.00045, 1.00019, 0.99973, 0.99973, 0.99924, 1, 1,\n 0.96499, 1, 1.00055, 0.99973, 1.00008, 1.00027, 1, 0.9997, 0.99995, 1.00023,\n 0.99933, 1.00019, 1.00015, 1.00031, 0.99924, 1.00023, 0.99973, 1.00023,\n 1.00031, 1.00001, 0.99928, 1.00029, 1.00092, 1.00035, 1.00001, 1.0006, 1.0006,\n 1, 0.99988, 0.99975, 1, 1.00082, 0.99561, 0.9996, 1.00035, 1.00001, 0.99962,\n 1.00001, 1.00092, 0.99964, 1.00001, 0.99963, 0.99999, 1.00035, 1.00035,\n 1.00082, 0.99962, 0.99999, 0.99977, 1.00022, 1.00035, 1.00001, 0.99977,\n 1.00026, 0.9996, 0.99967, 1.00001, 1.00034, 1.00074, 1.00054, 1.00053,\n 1.00063, 0.99971, 0.99962, 1.00035, 0.99975, 0.99977, 0.99973, 1.00043,\n 0.99953, 1.0007, 0.99915, 0.99973, 1.00008, 0.99892, 1.00073, 1.00073,\n 1.00114, 0.99915, 1.00073, 0.99955, 0.99973, 1.00092, 0.99973, 1, 0.99998, 1,\n 1.0003, 1, 1.00043, 1.00001, 0.99969, 1.0003, 1, 1.00035, 1.00001, 0.9995, 1,\n 1.00092, 0.99973, 0.99973, 0.99973, 1.0007, 0.9995, 1, 0.99924, 1.0006,\n 0.99924, 0.99972, 1.00062, 0.99973, 1.00114, 1.00073, 1, 0.99955, 1, 1,\n 1.00047, 0.99968, 1.00016, 0.99977, 1.00016, 0.99977, 1.00016, 0.99977,\n 1.00001, 1, 1, 1, 0.99973, 1, 1, 0.99955, 0.99924, 0.99924, 0.99924, 0.99924,\n 0.99998, 0.99998, 0.99998, 0.99973, 0.99973, 0.99972, 1, 1, 1.00267, 0.99999,\n 0.99998, 0.99998, 1, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973,\n 0.99971, 0.99925, 1.00023, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002,\n 1.00002, 1, 1, 1, 1, 1, 1, 1, 0.96329, 1, 1.20985, 1.39713, 1.00003, 0.8254,\n 1.00015, 1, 1.00035, 1.00027, 1.00031, 1.00031, 0.99915, 1.00031, 1.00031,\n 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026,\n 1.00026, 1.00026, 0.95317, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1,\n 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst HelveticaRegularMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\nexport {\n HelveticaBoldFactors,\n HelveticaBoldItalicFactors,\n HelveticaBoldItalicMetrics,\n HelveticaBoldMetrics,\n HelveticaItalicFactors,\n HelveticaItalicMetrics,\n HelveticaRegularFactors,\n HelveticaRegularMetrics,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Widths of glyphs in LiberationSans-Bold.ttf.\nconst LiberationSansBoldWidths = [\n 365, 0, 333, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278,\n 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333,\n 584, 584, 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556,\n 722, 611, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667,\n 611, 333, 278, 333, 584, 556, 333, 556, 611, 556, 611, 556, 333, 611, 611,\n 278, 278, 556, 278, 889, 611, 611, 611, 611, 389, 556, 333, 611, 556, 778,\n 556, 556, 500, 389, 280, 389, 584, 333, 556, 556, 556, 556, 280, 556, 333,\n 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 556, 278, 333,\n 333, 365, 556, 834, 834, 834, 611, 722, 722, 722, 722, 722, 722, 1000, 722,\n 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778,\n 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556,\n 889, 556, 556, 556, 556, 556, 278, 278, 278, 278, 611, 611, 611, 611, 611,\n 611, 611, 549, 611, 611, 611, 611, 611, 556, 611, 556, 722, 556, 722, 556,\n 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 719, 722, 611, 667,\n 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 611, 778, 611, 778, 611,\n 778, 611, 722, 611, 722, 611, 278, 278, 278, 278, 278, 278, 278, 278, 278,\n 278, 785, 556, 556, 278, 722, 556, 556, 611, 278, 611, 278, 611, 385, 611,\n 479, 611, 278, 722, 611, 722, 611, 722, 611, 708, 723, 611, 778, 611, 778,\n 611, 778, 611, 1000, 944, 722, 389, 722, 389, 722, 389, 667, 556, 667, 556,\n 667, 556, 667, 556, 611, 333, 611, 479, 611, 333, 722, 611, 722, 611, 722,\n 611, 722, 611, 722, 611, 722, 611, 944, 778, 667, 556, 667, 611, 500, 611,\n 500, 611, 500, 278, 556, 722, 556, 1000, 889, 778, 611, 667, 556, 611, 333,\n 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 465, 722, 333, 853, 906,\n 474, 825, 927, 838, 278, 722, 722, 601, 719, 667, 611, 722, 778, 278, 722,\n 667, 833, 722, 644, 778, 722, 667, 600, 611, 667, 821, 667, 809, 802, 278,\n 667, 615, 451, 611, 278, 582, 615, 610, 556, 606, 475, 460, 611, 541, 278,\n 558, 556, 612, 556, 445, 611, 766, 619, 520, 684, 446, 582, 715, 576, 753,\n 845, 278, 582, 611, 582, 845, 667, 669, 885, 567, 711, 667, 278, 276, 556,\n 1094, 1062, 875, 610, 722, 622, 719, 722, 719, 722, 567, 712, 667, 904, 626,\n 719, 719, 610, 702, 833, 722, 778, 719, 667, 722, 611, 622, 854, 667, 730,\n 703, 1005, 1019, 870, 979, 719, 711, 1031, 719, 556, 618, 615, 417, 635, 556,\n 709, 497, 615, 615, 500, 635, 740, 604, 611, 604, 611, 556, 490, 556, 875,\n 556, 615, 581, 833, 844, 729, 854, 615, 552, 854, 583, 556, 556, 611, 417,\n 552, 556, 278, 281, 278, 969, 906, 611, 500, 615, 556, 604, 778, 611, 487,\n 447, 944, 778, 944, 778, 944, 778, 667, 556, 333, 333, 556, 1000, 1000, 552,\n 278, 278, 278, 278, 500, 500, 500, 556, 556, 350, 1000, 1000, 240, 479, 333,\n 333, 604, 333, 167, 396, 556, 556, 1094, 556, 885, 489, 1115, 1000, 768, 600,\n 834, 834, 834, 834, 1000, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713,\n 584, 549, 713, 979, 722, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604,\n 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604,\n 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750,\n 611, 611, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 333, 333, 333,\n 333, 333, 333, 333, 333,\n];\n\n// Char code of glyphs in LiberationSans-Bold.ttf.\nconst LiberationSansBoldMapping = [\n -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,\n 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,\n 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,\n 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,\n 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167,\n 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,\n 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,\n 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,\n 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,\n 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,\n 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,\n 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,\n 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,\n 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,\n 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,\n 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,\n 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,\n 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,\n 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,\n 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538,\n 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904,\n 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,\n 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937,\n 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,\n 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967,\n 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030,\n 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,\n 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,\n 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,\n 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,\n 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,\n 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108,\n 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139,\n 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211,\n 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226,\n 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359,\n 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,\n 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735,\n 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474,\n 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555,\n 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568,\n 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600,\n 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650,\n 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792,\n 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n\n// Widths of glyphs in LiberationSans-BoldItalic.ttf.\nconst LiberationSansBoldItalicWidths = [\n 365, 0, 333, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278,\n 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333,\n 584, 584, 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556,\n 722, 611, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667,\n 611, 333, 278, 333, 584, 556, 333, 556, 611, 556, 611, 556, 333, 611, 611,\n 278, 278, 556, 278, 889, 611, 611, 611, 611, 389, 556, 333, 611, 556, 778,\n 556, 556, 500, 389, 280, 389, 584, 333, 556, 556, 556, 556, 280, 556, 333,\n 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 556, 278, 333,\n 333, 365, 556, 834, 834, 834, 611, 722, 722, 722, 722, 722, 722, 1000, 722,\n 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778,\n 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556,\n 889, 556, 556, 556, 556, 556, 278, 278, 278, 278, 611, 611, 611, 611, 611,\n 611, 611, 549, 611, 611, 611, 611, 611, 556, 611, 556, 722, 556, 722, 556,\n 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 740, 722, 611, 667,\n 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 611, 778, 611, 778, 611,\n 778, 611, 722, 611, 722, 611, 278, 278, 278, 278, 278, 278, 278, 278, 278,\n 278, 782, 556, 556, 278, 722, 556, 556, 611, 278, 611, 278, 611, 396, 611,\n 479, 611, 278, 722, 611, 722, 611, 722, 611, 708, 723, 611, 778, 611, 778,\n 611, 778, 611, 1000, 944, 722, 389, 722, 389, 722, 389, 667, 556, 667, 556,\n 667, 556, 667, 556, 611, 333, 611, 479, 611, 333, 722, 611, 722, 611, 722,\n 611, 722, 611, 722, 611, 722, 611, 944, 778, 667, 556, 667, 611, 500, 611,\n 500, 611, 500, 278, 556, 722, 556, 1000, 889, 778, 611, 667, 556, 611, 333,\n 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 722, 333, 854, 906,\n 473, 844, 930, 847, 278, 722, 722, 610, 671, 667, 611, 722, 778, 278, 722,\n 667, 833, 722, 657, 778, 718, 667, 590, 611, 667, 822, 667, 829, 781, 278,\n 667, 620, 479, 611, 278, 591, 620, 621, 556, 610, 479, 492, 611, 558, 278,\n 566, 556, 603, 556, 450, 611, 712, 605, 532, 664, 409, 591, 704, 578, 773,\n 834, 278, 591, 611, 591, 834, 667, 667, 886, 614, 719, 667, 278, 278, 556,\n 1094, 1042, 854, 622, 719, 677, 719, 722, 708, 722, 614, 722, 667, 927, 643,\n 719, 719, 615, 687, 833, 722, 778, 719, 667, 722, 611, 677, 781, 667, 729,\n 708, 979, 989, 854, 1000, 708, 719, 1042, 729, 556, 619, 604, 534, 618, 556,\n 736, 510, 611, 611, 507, 622, 740, 604, 611, 611, 611, 556, 889, 556, 885,\n 556, 646, 583, 889, 935, 707, 854, 594, 552, 865, 589, 556, 556, 611, 469,\n 563, 556, 278, 278, 278, 969, 906, 611, 507, 619, 556, 611, 778, 611, 575,\n 467, 944, 778, 944, 778, 944, 778, 667, 556, 333, 333, 556, 1000, 1000, 552,\n 278, 278, 278, 278, 500, 500, 500, 556, 556, 350, 1000, 1000, 240, 479, 333,\n 333, 604, 333, 167, 396, 556, 556, 1104, 556, 885, 516, 1146, 1000, 768, 600,\n 834, 834, 834, 834, 999, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713,\n 584, 549, 713, 979, 722, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604,\n 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604,\n 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750,\n 611, 611, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 333, 333, 333,\n 333, 333, 333, 333, 333,\n];\n\n// Char code of glyphs in LiberationSans-BoldItalic.ttf.\nconst LiberationSansBoldItalicMapping = [\n -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,\n 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,\n 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,\n 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,\n 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167,\n 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,\n 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,\n 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,\n 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,\n 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,\n 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,\n 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,\n 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,\n 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,\n 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,\n 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,\n 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,\n 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,\n 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,\n 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538,\n 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904,\n 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,\n 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937,\n 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,\n 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967,\n 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030,\n 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,\n 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,\n 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,\n 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,\n 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,\n 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108,\n 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139,\n 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211,\n 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226,\n 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359,\n 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,\n 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735,\n 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474,\n 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555,\n 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568,\n 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600,\n 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650,\n 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792,\n 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n\n// Widths of glyphs in LiberationSans-Italic.ttf.\nconst LiberationSansItalicWidths = [\n 365, 0, 333, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278,\n 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278,\n 584, 584, 584, 556, 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500,\n 667, 556, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667,\n 611, 278, 278, 278, 469, 556, 333, 556, 556, 500, 556, 556, 278, 556, 556,\n 222, 222, 500, 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722,\n 500, 500, 500, 334, 260, 334, 584, 333, 556, 556, 556, 556, 260, 556, 333,\n 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 537, 278, 333,\n 333, 365, 556, 834, 834, 834, 611, 667, 667, 667, 667, 667, 667, 1000, 722,\n 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778,\n 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556,\n 889, 500, 556, 556, 556, 556, 278, 278, 278, 278, 556, 556, 556, 556, 556,\n 556, 556, 549, 611, 556, 556, 556, 556, 500, 556, 500, 667, 556, 667, 556,\n 667, 556, 722, 500, 722, 500, 722, 500, 722, 500, 722, 625, 722, 556, 667,\n 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 556, 778, 556, 778, 556,\n 778, 556, 722, 556, 722, 556, 278, 278, 278, 278, 278, 278, 278, 222, 278,\n 278, 733, 444, 500, 222, 667, 500, 500, 556, 222, 556, 222, 556, 281, 556,\n 400, 556, 222, 722, 556, 722, 556, 722, 556, 615, 723, 556, 778, 556, 778,\n 556, 778, 556, 1000, 944, 722, 333, 722, 333, 722, 333, 667, 500, 667, 500,\n 667, 500, 667, 500, 611, 278, 611, 354, 611, 278, 722, 556, 722, 556, 722,\n 556, 722, 556, 722, 556, 722, 556, 944, 722, 667, 500, 667, 611, 500, 611,\n 500, 611, 500, 222, 556, 667, 556, 1000, 889, 778, 611, 667, 500, 611, 278,\n 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 667, 278, 789, 846,\n 389, 794, 865, 775, 222, 667, 667, 570, 671, 667, 611, 722, 778, 278, 667,\n 667, 833, 722, 648, 778, 725, 667, 600, 611, 667, 837, 667, 831, 761, 278,\n 667, 570, 439, 555, 222, 550, 570, 571, 500, 556, 439, 463, 555, 542, 222,\n 500, 492, 548, 500, 447, 556, 670, 573, 486, 603, 374, 550, 652, 546, 728,\n 779, 222, 550, 556, 550, 779, 667, 667, 843, 544, 708, 667, 278, 278, 500,\n 1066, 982, 844, 589, 715, 639, 724, 667, 651, 667, 544, 704, 667, 917, 614,\n 715, 715, 589, 686, 833, 722, 778, 725, 667, 722, 611, 639, 795, 667, 727,\n 673, 920, 923, 805, 886, 651, 694, 1022, 682, 556, 562, 522, 493, 553, 556,\n 688, 465, 556, 556, 472, 564, 686, 550, 556, 556, 556, 500, 833, 500, 835,\n 500, 572, 518, 830, 851, 621, 736, 526, 492, 752, 534, 556, 556, 556, 378,\n 496, 500, 222, 222, 222, 910, 828, 556, 472, 565, 500, 556, 778, 556, 492,\n 339, 944, 722, 944, 722, 944, 722, 667, 500, 333, 333, 556, 1000, 1000, 552,\n 222, 222, 222, 222, 333, 333, 333, 556, 556, 350, 1000, 1000, 188, 354, 333,\n 333, 500, 333, 167, 365, 556, 556, 1094, 556, 885, 323, 1083, 1000, 768, 600,\n 834, 834, 834, 834, 1000, 500, 998, 500, 1000, 500, 500, 494, 612, 823, 713,\n 584, 549, 713, 979, 719, 274, 549, 549, 584, 549, 549, 604, 584, 604, 604,\n 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604,\n 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750,\n 500, 500, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 294, 294, 324,\n 324, 316, 328, 398, 285,\n];\n\n// Char code of glyphs in LiberationSans-Italic.ttf.\nconst LiberationSansItalicMapping = [\n -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,\n 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,\n 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,\n 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,\n 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167,\n 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,\n 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,\n 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,\n 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,\n 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,\n 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,\n 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,\n 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,\n 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,\n 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,\n 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,\n 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,\n 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,\n 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,\n 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538,\n 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904,\n 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,\n 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937,\n 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,\n 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967,\n 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030,\n 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,\n 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,\n 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,\n 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,\n 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,\n 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108,\n 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139,\n 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211,\n 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226,\n 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359,\n 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,\n 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735,\n 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474,\n 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555,\n 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568,\n 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600,\n 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650,\n 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792,\n 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n\n// Widths of glyphs in LiberationSans-Regular.ttf.\nconst LiberationSansRegularWidths = [\n 365, 0, 333, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278,\n 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278,\n 584, 584, 584, 556, 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500,\n 667, 556, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667,\n 611, 278, 278, 278, 469, 556, 333, 556, 556, 500, 556, 556, 278, 556, 556,\n 222, 222, 500, 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722,\n 500, 500, 500, 334, 260, 334, 584, 333, 556, 556, 556, 556, 260, 556, 333,\n 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 537, 278, 333,\n 333, 365, 556, 834, 834, 834, 611, 667, 667, 667, 667, 667, 667, 1000, 722,\n 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778,\n 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556,\n 889, 500, 556, 556, 556, 556, 278, 278, 278, 278, 556, 556, 556, 556, 556,\n 556, 556, 549, 611, 556, 556, 556, 556, 500, 556, 500, 667, 556, 667, 556,\n 667, 556, 722, 500, 722, 500, 722, 500, 722, 500, 722, 615, 722, 556, 667,\n 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 556, 778, 556, 778, 556,\n 778, 556, 722, 556, 722, 556, 278, 278, 278, 278, 278, 278, 278, 222, 278,\n 278, 735, 444, 500, 222, 667, 500, 500, 556, 222, 556, 222, 556, 292, 556,\n 334, 556, 222, 722, 556, 722, 556, 722, 556, 604, 723, 556, 778, 556, 778,\n 556, 778, 556, 1000, 944, 722, 333, 722, 333, 722, 333, 667, 500, 667, 500,\n 667, 500, 667, 500, 611, 278, 611, 375, 611, 278, 722, 556, 722, 556, 722,\n 556, 722, 556, 722, 556, 722, 556, 944, 722, 667, 500, 667, 611, 500, 611,\n 500, 611, 500, 222, 556, 667, 556, 1000, 889, 778, 611, 667, 500, 611, 278,\n 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 667, 278, 784, 838,\n 384, 774, 855, 752, 222, 667, 667, 551, 668, 667, 611, 722, 778, 278, 667,\n 668, 833, 722, 650, 778, 722, 667, 618, 611, 667, 798, 667, 835, 748, 278,\n 667, 578, 446, 556, 222, 547, 578, 575, 500, 557, 446, 441, 556, 556, 222,\n 500, 500, 576, 500, 448, 556, 690, 569, 482, 617, 395, 547, 648, 525, 713,\n 781, 222, 547, 556, 547, 781, 667, 667, 865, 542, 719, 667, 278, 278, 500,\n 1057, 1010, 854, 583, 722, 635, 719, 667, 656, 667, 542, 677, 667, 923, 604,\n 719, 719, 583, 656, 833, 722, 778, 719, 667, 722, 611, 635, 760, 667, 740,\n 667, 917, 938, 792, 885, 656, 719, 1010, 722, 556, 573, 531, 365, 583, 556,\n 669, 458, 559, 559, 438, 583, 688, 552, 556, 542, 556, 500, 458, 500, 823,\n 500, 573, 521, 802, 823, 625, 719, 521, 510, 750, 542, 556, 556, 556, 365,\n 510, 500, 222, 278, 222, 906, 812, 556, 438, 559, 500, 552, 778, 556, 489,\n 411, 944, 722, 944, 722, 944, 722, 667, 500, 333, 333, 556, 1000, 1000, 552,\n 222, 222, 222, 222, 333, 333, 333, 556, 556, 350, 1000, 1000, 188, 354, 333,\n 333, 500, 333, 167, 365, 556, 556, 1094, 556, 885, 323, 1073, 1000, 768, 600,\n 834, 834, 834, 834, 1000, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713,\n 584, 549, 713, 979, 719, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604,\n 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604,\n 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750,\n 500, 500, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 294, 294, 324,\n 324, 316, 328, 398, 285,\n];\n\n// Char code of glyphs in LiberationSans-Regular.ttf.\nconst LiberationSansRegularMapping = [\n -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,\n 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,\n 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,\n 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,\n 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167,\n 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,\n 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,\n 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,\n 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,\n 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,\n 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,\n 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,\n 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,\n 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,\n 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,\n 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,\n 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,\n 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,\n 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,\n 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538,\n 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904,\n 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,\n 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937,\n 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,\n 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967,\n 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030,\n 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,\n 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,\n 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,\n 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,\n 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,\n 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108,\n 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139,\n 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211,\n 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226,\n 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359,\n 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,\n 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735,\n 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474,\n 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555,\n 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568,\n 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600,\n 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650,\n 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792,\n 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n\nexport {\n LiberationSansBoldItalicMapping,\n LiberationSansBoldItalicWidths,\n LiberationSansBoldMapping,\n LiberationSansBoldWidths,\n LiberationSansItalicMapping,\n LiberationSansItalicWidths,\n LiberationSansRegularMapping,\n LiberationSansRegularWidths,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Factors to rescale LiberationSans-Bold.ttf to have the same\n// metrics as MyriadPro-Bold.otf.\nconst MyriadProBoldFactors = [\n 1.36898, 1, 1, 0.72706, 0.80479, 0.83734, 0.98894, 0.99793, 0.9897, 0.93884,\n 0.86209, 0.94292, 0.94292, 1.16661, 1.02058, 0.93582, 0.96694, 0.93582,\n 1.19137, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793,\n 0.99793, 0.99793, 0.99793, 0.78076, 0.78076, 1.02058, 1.02058, 1.02058,\n 0.72851, 0.78966, 0.90838, 0.83637, 0.82391, 0.96376, 0.80061, 0.86275,\n 0.8768, 0.95407, 1.0258, 0.73901, 0.85022, 0.83655, 1.0156, 0.95546, 0.92179,\n 0.87107, 0.92179, 0.82114, 0.8096, 0.89713, 0.94438, 0.95353, 0.94083,\n 0.91905, 0.90406, 0.9446, 0.94292, 1.18777, 0.94292, 1.02058, 0.89903,\n 0.90088, 0.94938, 0.97898, 0.81093, 0.97571, 0.94938, 1.024, 0.9577, 0.95933,\n 0.98621, 1.0474, 0.97455, 0.98981, 0.9672, 0.95933, 0.9446, 0.97898, 0.97407,\n 0.97646, 0.78036, 1.10208, 0.95442, 0.95298, 0.97579, 0.9332, 0.94039, 0.938,\n 0.80687, 1.01149, 0.80687, 1.02058, 0.80479, 0.99793, 0.99793, 0.99793,\n 0.99793, 1.01149, 1.00872, 0.90088, 0.91882, 1.0213, 0.8361, 1.02058, 0.62295,\n 0.54324, 0.89022, 1.08595, 1, 1, 0.90088, 1, 0.97455, 0.93582, 0.90088, 1,\n 1.05686, 0.8361, 0.99642, 0.99642, 0.99642, 0.72851, 0.90838, 0.90838,\n 0.90838, 0.90838, 0.90838, 0.90838, 0.868, 0.82391, 0.80061, 0.80061, 0.80061,\n 0.80061, 1.0258, 1.0258, 1.0258, 1.0258, 0.97484, 0.95546, 0.92179, 0.92179,\n 0.92179, 0.92179, 0.92179, 1.02058, 0.92179, 0.94438, 0.94438, 0.94438,\n 0.94438, 0.90406, 0.86958, 0.98225, 0.94938, 0.94938, 0.94938, 0.94938,\n 0.94938, 0.94938, 0.9031, 0.81093, 0.94938, 0.94938, 0.94938, 0.94938,\n 0.98621, 0.98621, 0.98621, 0.98621, 0.93969, 0.95933, 0.9446, 0.9446, 0.9446,\n 0.9446, 0.9446, 1.08595, 0.9446, 0.95442, 0.95442, 0.95442, 0.95442, 0.94039,\n 0.97898, 0.94039, 0.90838, 0.94938, 0.90838, 0.94938, 0.90838, 0.94938,\n 0.82391, 0.81093, 0.82391, 0.81093, 0.82391, 0.81093, 0.82391, 0.81093,\n 0.96376, 0.84313, 0.97484, 0.97571, 0.80061, 0.94938, 0.80061, 0.94938,\n 0.80061, 0.94938, 0.80061, 0.94938, 0.80061, 0.94938, 0.8768, 0.9577, 0.8768,\n 0.9577, 0.8768, 0.9577, 1, 1, 0.95407, 0.95933, 0.97069, 0.95933, 1.0258,\n 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621,\n 0.887, 1.01591, 0.73901, 1.0474, 1, 1, 0.97455, 0.83655, 0.98981, 1, 1,\n 0.83655, 0.73977, 0.83655, 0.73903, 0.84638, 1.033, 0.95546, 0.95933, 1, 1,\n 0.95546, 0.95933, 0.8271, 0.95417, 0.95933, 0.92179, 0.9446, 0.92179, 0.9446,\n 0.92179, 0.9446, 0.936, 0.91964, 0.82114, 0.97646, 1, 1, 0.82114, 0.97646,\n 0.8096, 0.78036, 0.8096, 0.78036, 1, 1, 0.8096, 0.78036, 1, 1, 0.89713,\n 0.77452, 0.89713, 1.10208, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438,\n 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94083,\n 0.97579, 0.90406, 0.94039, 0.90406, 0.9446, 0.938, 0.9446, 0.938, 0.9446,\n 0.938, 1, 0.99793, 0.90838, 0.94938, 0.868, 0.9031, 0.92179, 0.9446, 1, 1,\n 0.89713, 1.10208, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088,\n 0.90088, 0.90088, 0.90088, 0.90989, 0.9358, 0.91945, 0.83181, 0.75261,\n 0.87992, 0.82976, 0.96034, 0.83689, 0.97268, 1.0078, 0.90838, 0.83637, 0.8019,\n 0.90157, 0.80061, 0.9446, 0.95407, 0.92436, 1.0258, 0.85022, 0.97153, 1.0156,\n 0.95546, 0.89192, 0.92179, 0.92361, 0.87107, 0.96318, 0.89713, 0.93704,\n 0.95638, 0.91905, 0.91709, 0.92796, 1.0258, 0.93704, 0.94836, 1.0373, 0.95933,\n 1.0078, 0.95871, 0.94836, 0.96174, 0.92601, 0.9498, 0.98607, 0.95776, 0.95933,\n 1.05453, 1.0078, 0.98275, 0.9314, 0.95617, 0.91701, 1.05993, 0.9446, 0.78367,\n 0.9553, 1, 0.86832, 1.0128, 0.95871, 0.99394, 0.87548, 0.96361, 0.86774,\n 1.0078, 0.95871, 0.9446, 0.95871, 0.86774, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.94083, 0.97579, 0.94083, 0.97579, 0.94083,\n 0.97579, 0.90406, 0.94039, 0.96694, 1, 0.89903, 1, 1, 1, 0.93582, 0.93582,\n 0.93582, 1, 0.908, 0.908, 0.918, 0.94219, 0.94219, 0.96544, 1, 1.285, 1, 1,\n 0.81079, 0.81079, 1, 1, 0.74854, 1, 1, 1, 1, 0.99793, 1, 1, 1, 0.65, 1,\n 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.17173, 1, 0.80535, 0.76169,\n 1.02058, 1.0732, 1.05486, 1, 1, 1.30692, 1.08595, 1.08595, 1, 1.08595,\n 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.16161, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst MyriadProBoldMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-BoldItalic.ttf to have the same\n// metrics as MyriadPro-BoldIt.otf.\nconst MyriadProBoldItalicFactors = [\n 1.36898, 1, 1, 0.66227, 0.80779, 0.81625, 0.97276, 0.97276, 0.97733, 0.92222,\n 0.83266, 0.94292, 0.94292, 1.16148, 1.02058, 0.93582, 0.96694, 0.93582,\n 1.17337, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276,\n 0.97276, 0.97276, 0.97276, 0.78076, 0.78076, 1.02058, 1.02058, 1.02058,\n 0.71541, 0.76813, 0.85576, 0.80591, 0.80729, 0.94299, 0.77512, 0.83655,\n 0.86523, 0.92222, 0.98621, 0.71743, 0.81698, 0.79726, 0.98558, 0.92222,\n 0.90637, 0.83809, 0.90637, 0.80729, 0.76463, 0.86275, 0.90699, 0.91605,\n 0.9154, 0.85308, 0.85458, 0.90531, 0.94292, 1.21296, 0.94292, 1.02058,\n 0.89903, 1.18616, 0.99613, 0.91677, 0.78216, 0.91677, 0.90083, 0.98796,\n 0.9135, 0.92168, 0.95381, 0.98981, 0.95298, 0.95381, 0.93459, 0.92168,\n 0.91513, 0.92004, 0.91677, 0.95077, 0.748, 1.04502, 0.91677, 0.92061, 0.94236,\n 0.89544, 0.89364, 0.9, 0.80687, 0.8578, 0.80687, 1.02058, 0.80779, 0.97276,\n 0.97276, 0.97276, 0.97276, 0.8578, 0.99973, 1.18616, 0.91339, 1.08074,\n 0.82891, 1.02058, 0.55509, 0.71526, 0.89022, 1.08595, 1, 1, 1.18616, 1,\n 0.96736, 0.93582, 1.18616, 1, 1.04864, 0.82711, 0.99043, 0.99043, 0.99043,\n 0.71541, 0.85576, 0.85576, 0.85576, 0.85576, 0.85576, 0.85576, 0.845, 0.80729,\n 0.77512, 0.77512, 0.77512, 0.77512, 0.98621, 0.98621, 0.98621, 0.98621,\n 0.95961, 0.92222, 0.90637, 0.90637, 0.90637, 0.90637, 0.90637, 1.02058,\n 0.90251, 0.90699, 0.90699, 0.90699, 0.90699, 0.85458, 0.83659, 0.94951,\n 0.99613, 0.99613, 0.99613, 0.99613, 0.99613, 0.99613, 0.85811, 0.78216,\n 0.90083, 0.90083, 0.90083, 0.90083, 0.95381, 0.95381, 0.95381, 0.95381,\n 0.9135, 0.92168, 0.91513, 0.91513, 0.91513, 0.91513, 0.91513, 1.08595,\n 0.91677, 0.91677, 0.91677, 0.91677, 0.91677, 0.89364, 0.92332, 0.89364,\n 0.85576, 0.99613, 0.85576, 0.99613, 0.85576, 0.99613, 0.80729, 0.78216,\n 0.80729, 0.78216, 0.80729, 0.78216, 0.80729, 0.78216, 0.94299, 0.76783,\n 0.95961, 0.91677, 0.77512, 0.90083, 0.77512, 0.90083, 0.77512, 0.90083,\n 0.77512, 0.90083, 0.77512, 0.90083, 0.86523, 0.9135, 0.86523, 0.9135, 0.86523,\n 0.9135, 1, 1, 0.92222, 0.92168, 0.92222, 0.92168, 0.98621, 0.95381, 0.98621,\n 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.86036,\n 0.97096, 0.71743, 0.98981, 1, 1, 0.95298, 0.79726, 0.95381, 1, 1, 0.79726,\n 0.6894, 0.79726, 0.74321, 0.81691, 1.0006, 0.92222, 0.92168, 1, 1, 0.92222,\n 0.92168, 0.79464, 0.92098, 0.92168, 0.90637, 0.91513, 0.90637, 0.91513,\n 0.90637, 0.91513, 0.909, 0.87514, 0.80729, 0.95077, 1, 1, 0.80729, 0.95077,\n 0.76463, 0.748, 0.76463, 0.748, 1, 1, 0.76463, 0.748, 1, 1, 0.86275, 0.72651,\n 0.86275, 1.04502, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677,\n 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.9154, 0.94236,\n 0.85458, 0.89364, 0.85458, 0.90531, 0.9, 0.90531, 0.9, 0.90531, 0.9, 1,\n 0.97276, 0.85576, 0.99613, 0.845, 0.85811, 0.90251, 0.91677, 1, 1, 0.86275,\n 1.04502, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616,\n 1.18616, 1.18616, 1.00899, 1.30628, 0.85576, 0.80178, 0.66862, 0.7927,\n 0.69323, 0.88127, 0.72459, 0.89711, 0.95381, 0.85576, 0.80591, 0.7805,\n 0.94729, 0.77512, 0.90531, 0.92222, 0.90637, 0.98621, 0.81698, 0.92655,\n 0.98558, 0.92222, 0.85359, 0.90637, 0.90976, 0.83809, 0.94523, 0.86275,\n 0.83509, 0.93157, 0.85308, 0.83392, 0.92346, 0.98621, 0.83509, 0.92886,\n 0.91324, 0.92168, 0.95381, 0.90646, 0.92886, 0.90557, 0.86847, 0.90276,\n 0.91324, 0.86842, 0.92168, 0.99531, 0.95381, 0.9224, 0.85408, 0.92699,\n 0.86847, 1.0051, 0.91513, 0.80487, 0.93481, 1, 0.88159, 1.05214, 0.90646,\n 0.97355, 0.81539, 0.89398, 0.85923, 0.95381, 0.90646, 0.91513, 0.90646,\n 0.85923, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 0.9154, 0.94236, 0.9154, 0.94236, 0.9154, 0.94236, 0.85458, 0.89364, 0.96694,\n 1, 0.89903, 1, 1, 1, 0.91782, 0.91782, 0.91782, 1, 0.896, 0.896, 0.896,\n 0.9332, 0.9332, 0.95973, 1, 1.26, 1, 1, 0.80479, 0.80178, 1, 1, 0.85633, 1, 1,\n 1, 1, 0.97276, 1, 1, 1, 0.698, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1.14542, 1, 0.79199, 0.78694, 1.02058, 1.03493, 1.05486, 1, 1, 1.23026,\n 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.20006, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst MyriadProBoldItalicMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-Italic.ttf to have the same\n// metrics as MyriadPro-It.otf.\nconst MyriadProItalicFactors = [\n 1.36898, 1, 1, 0.65507, 0.84943, 0.85639, 0.88465, 0.88465, 0.86936, 0.88307,\n 0.86948, 0.85283, 0.85283, 1.06383, 1.02058, 0.75945, 0.9219, 0.75945,\n 1.17337, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465,\n 0.88465, 0.88465, 0.88465, 0.75945, 0.75945, 1.02058, 1.02058, 1.02058,\n 0.69046, 0.70926, 0.85158, 0.77812, 0.76852, 0.89591, 0.70466, 0.76125,\n 0.80094, 0.86822, 0.83864, 0.728, 0.77212, 0.79475, 0.93637, 0.87514, 0.8588,\n 0.76013, 0.8588, 0.72421, 0.69866, 0.77598, 0.85991, 0.80811, 0.87832,\n 0.78112, 0.77512, 0.8562, 1.0222, 1.18417, 1.0222, 1.27014, 0.89903, 1.15012,\n 0.93859, 0.94399, 0.846, 0.94399, 0.81453, 1.0186, 0.94219, 0.96017, 1.03075,\n 1.02175, 0.912, 1.03075, 0.96998, 0.96017, 0.93859, 0.94399, 0.94399, 0.95493,\n 0.746, 1.12658, 0.94578, 0.91, 0.979, 0.882, 0.882, 0.83, 0.85034, 0.83537,\n 0.85034, 1.02058, 0.70869, 0.88465, 0.88465, 0.88465, 0.88465, 0.83537,\n 0.90083, 1.15012, 0.9161, 0.94565, 0.73541, 1.02058, 0.53609, 0.69353,\n 0.79519, 1.08595, 1, 1, 1.15012, 1, 0.91974, 0.75945, 1.15012, 1, 0.9446,\n 0.73361, 0.9005, 0.9005, 0.9005, 0.62864, 0.85158, 0.85158, 0.85158, 0.85158,\n 0.85158, 0.85158, 0.773, 0.76852, 0.70466, 0.70466, 0.70466, 0.70466, 0.83864,\n 0.83864, 0.83864, 0.83864, 0.90561, 0.87514, 0.8588, 0.8588, 0.8588, 0.8588,\n 0.8588, 1.02058, 0.85751, 0.85991, 0.85991, 0.85991, 0.85991, 0.77512,\n 0.76013, 0.88075, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859,\n 0.8075, 0.846, 0.81453, 0.81453, 0.81453, 0.81453, 0.82424, 0.82424, 0.82424,\n 0.82424, 0.9278, 0.96017, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859,\n 1.08595, 0.8562, 0.94578, 0.94578, 0.94578, 0.94578, 0.882, 0.94578, 0.882,\n 0.85158, 0.93859, 0.85158, 0.93859, 0.85158, 0.93859, 0.76852, 0.846, 0.76852,\n 0.846, 0.76852, 0.846, 0.76852, 0.846, 0.89591, 0.8544, 0.90561, 0.94399,\n 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453,\n 0.70466, 0.81453, 0.80094, 0.94219, 0.80094, 0.94219, 0.80094, 0.94219, 1, 1,\n 0.86822, 0.96017, 0.86822, 0.96017, 0.83864, 0.82424, 0.83864, 0.82424,\n 0.83864, 0.82424, 0.83864, 1.03075, 0.83864, 0.82424, 0.81402, 1.02738, 0.728,\n 1.02175, 1, 1, 0.912, 0.79475, 1.03075, 1, 1, 0.79475, 0.83911, 0.79475,\n 0.66266, 0.80553, 1.06676, 0.87514, 0.96017, 1, 1, 0.87514, 0.96017, 0.86865,\n 0.87396, 0.96017, 0.8588, 0.93859, 0.8588, 0.93859, 0.8588, 0.93859, 0.867,\n 0.84759, 0.72421, 0.95493, 1, 1, 0.72421, 0.95493, 0.69866, 0.746, 0.69866,\n 0.746, 1, 1, 0.69866, 0.746, 1, 1, 0.77598, 0.88417, 0.77598, 1.12658,\n 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578,\n 0.85991, 0.94578, 0.85991, 0.94578, 0.87832, 0.979, 0.77512, 0.882, 0.77512,\n 0.8562, 0.83, 0.8562, 0.83, 0.8562, 0.83, 1, 0.88465, 0.85158, 0.93859, 0.773,\n 0.8075, 0.85751, 0.8562, 1, 1, 0.77598, 1.12658, 1.15012, 1.15012, 1.15012,\n 1.15012, 1.15012, 1.15313, 1.15012, 1.15012, 1.15012, 1.08106, 1.03901,\n 0.85158, 0.77025, 0.62264, 0.7646, 0.65351, 0.86026, 0.69461, 0.89947,\n 1.03075, 0.85158, 0.77812, 0.76449, 0.88836, 0.70466, 0.8562, 0.86822, 0.8588,\n 0.83864, 0.77212, 0.85308, 0.93637, 0.87514, 0.82352, 0.8588, 0.85701,\n 0.76013, 0.89058, 0.77598, 0.8156, 0.82565, 0.78112, 0.77899, 0.89386,\n 0.83864, 0.8156, 0.9486, 0.92388, 0.96186, 1.03075, 0.91123, 0.9486, 0.93298,\n 0.878, 0.93942, 0.92388, 0.84596, 0.96186, 0.95119, 1.03075, 0.922, 0.88787,\n 0.95829, 0.88, 0.93559, 0.93859, 0.78815, 0.93758, 1, 0.89217, 1.03737,\n 0.91123, 0.93969, 0.77487, 0.85769, 0.86799, 1.03075, 0.91123, 0.93859,\n 0.91123, 0.86799, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 0.87832, 0.979, 0.87832, 0.979, 0.87832, 0.979, 0.77512, 0.882, 0.9219,\n 1, 0.89903, 1, 1, 1, 0.87321, 0.87321, 0.87321, 1, 1.027, 1.027, 1.027,\n 0.86847, 0.86847, 0.79121, 1, 1.124, 1, 1, 0.73572, 0.73572, 1, 1, 0.85034, 1,\n 1, 1, 1, 0.88465, 1, 1, 1, 0.669, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1.04828, 1, 0.74948, 0.75187, 1.02058, 0.98391, 1.02119, 1, 1, 1.06233,\n 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05233, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst MyriadProItalicMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-Regular.ttf to have the same\n// metrics as MyriadPro-Regular.otf.\nconst MyriadProRegularFactors = [\n 1.36898, 1, 1, 0.76305, 0.82784, 0.94935, 0.89364, 0.92241, 0.89073, 0.90706,\n 0.98472, 0.85283, 0.85283, 1.0664, 1.02058, 0.74505, 0.9219, 0.74505, 1.23456,\n 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241,\n 0.92241, 0.92241, 0.74505, 0.74505, 1.02058, 1.02058, 1.02058, 0.73002,\n 0.72601, 0.91755, 0.8126, 0.80314, 0.92222, 0.73764, 0.79726, 0.83051,\n 0.90284, 0.86023, 0.74, 0.8126, 0.84869, 0.96518, 0.91115, 0.8858, 0.79761,\n 0.8858, 0.74498, 0.73914, 0.81363, 0.89591, 0.83659, 0.89633, 0.85608, 0.8111,\n 0.90531, 1.0222, 1.22736, 1.0222, 1.27014, 0.89903, 0.90088, 0.86667, 1.0231,\n 0.896, 1.01411, 0.90083, 1.05099, 1.00512, 0.99793, 1.05326, 1.09377, 0.938,\n 1.06226, 1.00119, 0.99793, 0.98714, 1.0231, 1.01231, 0.98196, 0.792, 1.19137,\n 0.99074, 0.962, 1.01915, 0.926, 0.942, 0.856, 0.85034, 0.92006, 0.85034,\n 1.02058, 0.69067, 0.92241, 0.92241, 0.92241, 0.92241, 0.92006, 0.9332,\n 0.90088, 0.91882, 0.93484, 0.75339, 1.02058, 0.56866, 0.54324, 0.79519,\n 1.08595, 1, 1, 0.90088, 1, 0.95325, 0.74505, 0.90088, 1, 0.97198, 0.75339,\n 0.91009, 0.91009, 0.91009, 0.66466, 0.91755, 0.91755, 0.91755, 0.91755,\n 0.91755, 0.91755, 0.788, 0.80314, 0.73764, 0.73764, 0.73764, 0.73764, 0.86023,\n 0.86023, 0.86023, 0.86023, 0.92915, 0.91115, 0.8858, 0.8858, 0.8858, 0.8858,\n 0.8858, 1.02058, 0.8858, 0.89591, 0.89591, 0.89591, 0.89591, 0.8111, 0.79611,\n 0.89713, 0.86667, 0.86667, 0.86667, 0.86667, 0.86667, 0.86667, 0.86936, 0.896,\n 0.90083, 0.90083, 0.90083, 0.90083, 0.84224, 0.84224, 0.84224, 0.84224,\n 0.97276, 0.99793, 0.98714, 0.98714, 0.98714, 0.98714, 0.98714, 1.08595,\n 0.89876, 0.99074, 0.99074, 0.99074, 0.99074, 0.942, 1.0231, 0.942, 0.91755,\n 0.86667, 0.91755, 0.86667, 0.91755, 0.86667, 0.80314, 0.896, 0.80314, 0.896,\n 0.80314, 0.896, 0.80314, 0.896, 0.92222, 0.93372, 0.92915, 1.01411, 0.73764,\n 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764,\n 0.90083, 0.83051, 1.00512, 0.83051, 1.00512, 0.83051, 1.00512, 1, 1, 0.90284,\n 0.99793, 0.90976, 0.99793, 0.86023, 0.84224, 0.86023, 0.84224, 0.86023,\n 0.84224, 0.86023, 1.05326, 0.86023, 0.84224, 0.82873, 1.07469, 0.74, 1.09377,\n 1, 1, 0.938, 0.84869, 1.06226, 1, 1, 0.84869, 0.83704, 0.84869, 0.81441,\n 0.85588, 1.08927, 0.91115, 0.99793, 1, 1, 0.91115, 0.99793, 0.91887, 0.90991,\n 0.99793, 0.8858, 0.98714, 0.8858, 0.98714, 0.8858, 0.98714, 0.894, 0.91434,\n 0.74498, 0.98196, 1, 1, 0.74498, 0.98196, 0.73914, 0.792, 0.73914, 0.792, 1,\n 1, 0.73914, 0.792, 1, 1, 0.81363, 0.904, 0.81363, 1.19137, 0.89591, 0.99074,\n 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074,\n 0.89591, 0.99074, 0.89633, 1.01915, 0.8111, 0.942, 0.8111, 0.90531, 0.856,\n 0.90531, 0.856, 0.90531, 0.856, 1, 0.92241, 0.91755, 0.86667, 0.788, 0.86936,\n 0.8858, 0.89876, 1, 1, 0.81363, 1.19137, 0.90088, 0.90088, 0.90088, 0.90088,\n 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90388, 1.03901, 0.92138,\n 0.78105, 0.7154, 0.86169, 0.80513, 0.94007, 0.82528, 0.98612, 1.06226,\n 0.91755, 0.8126, 0.81884, 0.92819, 0.73764, 0.90531, 0.90284, 0.8858, 0.86023,\n 0.8126, 0.91172, 0.96518, 0.91115, 0.83089, 0.8858, 0.87791, 0.79761, 0.89297,\n 0.81363, 0.88157, 0.89992, 0.85608, 0.81992, 0.94307, 0.86023, 0.88157,\n 0.95308, 0.98699, 0.99793, 1.06226, 0.95817, 0.95308, 0.97358, 0.928, 0.98088,\n 0.98699, 0.92761, 0.99793, 0.96017, 1.06226, 0.986, 0.944, 0.95978, 0.938,\n 0.96705, 0.98714, 0.80442, 0.98972, 1, 0.89762, 1.04552, 0.95817, 0.99007,\n 0.87064, 0.91879, 0.88888, 1.06226, 0.95817, 0.98714, 0.95817, 0.88888, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89633, 1.01915,\n 0.89633, 1.01915, 0.89633, 1.01915, 0.8111, 0.942, 0.9219, 1, 0.89903, 1, 1,\n 1, 0.93173, 0.93173, 0.93173, 1, 1.06304, 1.06304, 1.06904, 0.89903, 0.89903,\n 0.80549, 1, 1.156, 1, 1, 0.76575, 0.76575, 1, 1, 0.72458, 1, 1, 1, 1, 0.92241,\n 1, 1, 1, 0.619, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.07257, 1,\n 0.74705, 0.71119, 1.02058, 1.024, 1.02119, 1, 1, 1.1536, 1.08595, 1.08595, 1,\n 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05638, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1,\n];\nconst MyriadProRegularMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\nexport {\n MyriadProBoldFactors,\n MyriadProBoldItalicFactors,\n MyriadProBoldItalicMetrics,\n MyriadProBoldMetrics,\n MyriadProItalicFactors,\n MyriadProItalicMetrics,\n MyriadProRegularFactors,\n MyriadProRegularMetrics,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Factors to rescale LiberationSans-Bold.ttf to have the same\n// metrics as segoeuib.ttf.\nconst SegoeuiBoldFactors = [\n 1.76738, 1, 1, 0.99297, 0.9824, 1.04016, 1.06497, 1.03424, 0.97529, 1.17647,\n 1.23203, 1.1085, 1.1085, 1.16939, 1.2107, 0.9754, 1.21408, 0.9754, 1.59578,\n 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424,\n 1.03424, 1.03424, 0.81378, 0.81378, 1.2107, 1.2107, 1.2107, 0.71703, 0.97847,\n 0.97363, 0.88776, 0.8641, 1.02096, 0.79795, 0.85132, 0.914, 1.06085, 1.1406,\n 0.8007, 0.89858, 0.83693, 1.14889, 1.09398, 0.97489, 0.92094, 0.97489,\n 0.90399, 0.84041, 0.95923, 1.00135, 1, 1.06467, 0.98243, 0.90996, 0.99361,\n 1.1085, 1.56942, 1.1085, 1.2107, 0.74627, 0.94282, 0.96752, 1.01519, 0.86304,\n 1.01359, 0.97278, 1.15103, 1.01359, 0.98561, 1.02285, 1.02285, 1.00527,\n 1.02285, 1.0302, 0.99041, 1.0008, 1.01519, 1.01359, 1.02258, 0.79104, 1.16862,\n 0.99041, 0.97454, 1.02511, 0.99298, 0.96752, 0.95801, 0.94856, 1.16579,\n 0.94856, 1.2107, 0.9824, 1.03424, 1.03424, 1, 1.03424, 1.16579, 0.8727,\n 1.3871, 1.18622, 1.10818, 1.04478, 1.2107, 1.18622, 0.75155, 0.94994, 1.28826,\n 1.21408, 1.21408, 0.91056, 1, 0.91572, 0.9754, 0.64663, 1.18328, 1.24866,\n 1.04478, 1.14169, 1.15749, 1.17389, 0.71703, 0.97363, 0.97363, 0.97363,\n 0.97363, 0.97363, 0.97363, 0.93506, 0.8641, 0.79795, 0.79795, 0.79795,\n 0.79795, 1.1406, 1.1406, 1.1406, 1.1406, 1.02096, 1.09398, 0.97426, 0.97426,\n 0.97426, 0.97426, 0.97426, 1.2107, 0.97489, 1.00135, 1.00135, 1.00135,\n 1.00135, 0.90996, 0.92094, 1.02798, 0.96752, 0.96752, 0.96752, 0.96752,\n 0.96752, 0.96752, 0.93136, 0.86304, 0.97278, 0.97278, 0.97278, 0.97278,\n 1.02285, 1.02285, 1.02285, 1.02285, 0.97122, 0.99041, 1, 1, 1, 1, 1, 1.28826,\n 1.0008, 0.99041, 0.99041, 0.99041, 0.99041, 0.96752, 1.01519, 0.96752,\n 0.97363, 0.96752, 0.97363, 0.96752, 0.97363, 0.96752, 0.8641, 0.86304, 0.8641,\n 0.86304, 0.8641, 0.86304, 0.8641, 0.86304, 1.02096, 1.03057, 1.02096, 1.03517,\n 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278,\n 0.79795, 0.97278, 0.914, 1.01359, 0.914, 1.01359, 0.914, 1.01359, 1, 1,\n 1.06085, 0.98561, 1.06085, 1.00879, 1.1406, 1.02285, 1.1406, 1.02285, 1.1406,\n 1.02285, 1.1406, 1.02285, 1.1406, 1.02285, 0.97138, 1.08692, 0.8007, 1.02285,\n 1, 1, 1.00527, 0.83693, 1.02285, 1, 1, 0.83693, 0.9455, 0.83693, 0.90418,\n 0.83693, 1.13005, 1.09398, 0.99041, 1, 1, 1.09398, 0.99041, 0.96692, 1.09251,\n 0.99041, 0.97489, 1.0008, 0.97489, 1.0008, 0.97489, 1.0008, 0.93994, 0.97931,\n 0.90399, 1.02258, 1, 1, 0.90399, 1.02258, 0.84041, 0.79104, 0.84041, 0.79104,\n 0.84041, 0.79104, 0.84041, 0.79104, 1, 1, 0.95923, 1.07034, 0.95923, 1.16862,\n 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041,\n 1.00135, 0.99041, 1.00135, 0.99041, 1.06467, 1.02511, 0.90996, 0.96752,\n 0.90996, 0.99361, 0.95801, 0.99361, 0.95801, 0.99361, 0.95801, 1.07733,\n 1.03424, 0.97363, 0.96752, 0.93506, 0.93136, 0.97489, 1.0008, 1, 1, 0.95923,\n 1.16862, 1.15103, 1.15103, 1.01173, 1.03959, 0.75953, 0.81378, 0.79912,\n 1.15103, 1.21994, 0.95161, 0.87815, 1.01149, 0.81525, 0.7676, 0.98167,\n 1.01134, 1.02546, 0.84097, 1.03089, 1.18102, 0.97363, 0.88776, 0.85134,\n 0.97826, 0.79795, 0.99361, 1.06085, 0.97489, 1.1406, 0.89858, 1.0388, 1.14889,\n 1.09398, 0.86039, 0.97489, 1.0595, 0.92094, 0.94793, 0.95923, 0.90996,\n 0.99346, 0.98243, 1.02112, 0.95493, 1.1406, 0.90996, 1.03574, 1.02597, 1.0008,\n 1.18102, 1.06628, 1.03574, 1.0192, 1.01932, 1.00886, 0.97531, 1.0106, 1.0008,\n 1.13189, 1.18102, 1.02277, 0.98683, 1.0016, 0.99561, 1.07237, 1.0008, 0.90434,\n 0.99921, 0.93803, 0.8965, 1.23085, 1.06628, 1.04983, 0.96268, 1.0499, 0.98439,\n 1.18102, 1.06628, 1.0008, 1.06628, 0.98439, 0.79795, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1.09466, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.97278, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.02065, 1, 1, 1, 1, 1, 1, 1.06467, 1.02511,\n 1.06467, 1.02511, 1.06467, 1.02511, 0.90996, 0.96752, 1, 1.21408, 0.89903, 1,\n 1, 0.75155, 1.04394, 1.04394, 1.04394, 1.04394, 0.98633, 0.98633, 0.98633,\n 0.73047, 0.73047, 1.20642, 0.91211, 1.25635, 1.222, 1.02956, 1.03372, 1.03372,\n 0.96039, 1.24633, 1, 1.12454, 0.93503, 1.03424, 1.19687, 1.03424, 1, 1, 1,\n 0.771, 1, 1, 1.15749, 1.15749, 1.15749, 1.10948, 0.86279, 0.94434, 0.86279,\n 0.94434, 0.86182, 1, 1, 1.16897, 1, 0.96085, 0.90137, 1.2107, 1.18416,\n 1.13973, 0.69825, 0.9716, 2.10339, 1.29004, 1.29004, 1.21172, 1.29004,\n 1.29004, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025,\n 1.18874, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886,\n 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.09193, 1.09193, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst SegoeuiBoldMetrics = { lineHeight: 1.33008, lineGap: 0 };\n\n// Factors to rescale LiberationSans-BoldItalic.ttf to have the same\n// metrics as segoeuiz.ttf.\nconst SegoeuiBoldItalicFactors = [\n 1.76738, 1, 1, 0.98946, 1.03959, 1.04016, 1.02809, 1.036, 0.97639, 1.10953,\n 1.23203, 1.11144, 1.11144, 1.16939, 1.21237, 0.9754, 1.21261, 0.9754, 1.59754,\n 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 0.81378,\n 0.81378, 1.21237, 1.21237, 1.21237, 0.73541, 0.97847, 0.97363, 0.89723,\n 0.87897, 1.0426, 0.79429, 0.85292, 0.91149, 1.05815, 1.1406, 0.79631, 0.90128,\n 0.83853, 1.04396, 1.10615, 0.97552, 0.94436, 0.97552, 0.88641, 0.80527,\n 0.96083, 1.00135, 1, 1.06777, 0.9817, 0.91142, 0.99361, 1.11144, 1.57293,\n 1.11144, 1.21237, 0.74627, 1.31818, 1.06585, 0.97042, 0.83055, 0.97042,\n 0.93503, 1.1261, 0.97042, 0.97922, 1.14236, 0.94552, 1.01054, 1.14236,\n 1.02471, 0.97922, 0.94165, 0.97042, 0.97042, 1.0276, 0.78929, 1.1261, 0.97922,\n 0.95874, 1.02197, 0.98507, 0.96752, 0.97168, 0.95107, 1.16579, 0.95107,\n 1.21237, 1.03959, 1.036, 1.036, 1, 1.036, 1.16579, 0.87357, 1.31818, 1.18754,\n 1.26781, 1.05356, 1.21237, 1.18622, 0.79487, 0.94994, 1.29004, 1.24047,\n 1.24047, 1.31818, 1, 0.91484, 0.9754, 1.31818, 1.1349, 1.24866, 1.05356,\n 1.13934, 1.15574, 1.17389, 0.73541, 0.97363, 0.97363, 0.97363, 0.97363,\n 0.97363, 0.97363, 0.94385, 0.87897, 0.79429, 0.79429, 0.79429, 0.79429,\n 1.1406, 1.1406, 1.1406, 1.1406, 1.0426, 1.10615, 0.97552, 0.97552, 0.97552,\n 0.97552, 0.97552, 1.21237, 0.97552, 1.00135, 1.00135, 1.00135, 1.00135,\n 0.91142, 0.94436, 0.98721, 1.06585, 1.06585, 1.06585, 1.06585, 1.06585,\n 1.06585, 0.96705, 0.83055, 0.93503, 0.93503, 0.93503, 0.93503, 1.14236,\n 1.14236, 1.14236, 1.14236, 0.93125, 0.97922, 0.94165, 0.94165, 0.94165,\n 0.94165, 0.94165, 1.29004, 0.94165, 0.97922, 0.97922, 0.97922, 0.97922,\n 0.96752, 0.97042, 0.96752, 0.97363, 1.06585, 0.97363, 1.06585, 0.97363,\n 1.06585, 0.87897, 0.83055, 0.87897, 0.83055, 0.87897, 0.83055, 0.87897,\n 0.83055, 1.0426, 1.0033, 1.0426, 0.97042, 0.79429, 0.93503, 0.79429, 0.93503,\n 0.79429, 0.93503, 0.79429, 0.93503, 0.79429, 0.93503, 0.91149, 0.97042,\n 0.91149, 0.97042, 0.91149, 0.97042, 1, 1, 1.05815, 0.97922, 1.05815, 0.97922,\n 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406,\n 1.14236, 0.97441, 1.04302, 0.79631, 1.01582, 1, 1, 1.01054, 0.83853, 1.14236,\n 1, 1, 0.83853, 1.09125, 0.83853, 0.90418, 0.83853, 1.19508, 1.10615, 0.97922,\n 1, 1, 1.10615, 0.97922, 1.01034, 1.10466, 0.97922, 0.97552, 0.94165, 0.97552,\n 0.94165, 0.97552, 0.94165, 0.91602, 0.91981, 0.88641, 1.0276, 1, 1, 0.88641,\n 1.0276, 0.80527, 0.78929, 0.80527, 0.78929, 0.80527, 0.78929, 0.80527,\n 0.78929, 1, 1, 0.96083, 1.05403, 0.95923, 1.16862, 1.00135, 0.97922, 1.00135,\n 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135,\n 0.97922, 1.06777, 1.02197, 0.91142, 0.96752, 0.91142, 0.99361, 0.97168,\n 0.99361, 0.97168, 0.99361, 0.97168, 1.23199, 1.036, 0.97363, 1.06585, 0.94385,\n 0.96705, 0.97552, 0.94165, 1, 1, 0.96083, 1.1261, 1.31818, 1.31818, 1.31818,\n 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 0.95161, 1.27126,\n 1.00811, 0.83284, 0.77702, 0.99137, 0.95253, 1.0347, 0.86142, 1.07205,\n 1.14236, 0.97363, 0.89723, 0.86869, 1.09818, 0.79429, 0.99361, 1.05815,\n 0.97552, 1.1406, 0.90128, 1.06662, 1.04396, 1.10615, 0.84918, 0.97552,\n 1.04694, 0.94436, 0.98015, 0.96083, 0.91142, 1.00356, 0.9817, 1.01945,\n 0.98999, 1.1406, 0.91142, 1.04961, 0.9898, 1.00639, 1.14236, 1.07514, 1.04961,\n 0.99607, 1.02897, 1.008, 0.9898, 0.95134, 1.00639, 1.11121, 1.14236, 1.00518,\n 0.97981, 1.02186, 1, 1.08578, 0.94165, 0.99314, 0.98387, 0.93028, 0.93377,\n 1.35125, 1.07514, 1.10687, 0.93491, 1.04232, 1.00351, 1.14236, 1.07514,\n 0.94165, 1.07514, 1.00351, 0.79429, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1.09097, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.93503, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 0.96609, 1, 1, 1, 1, 1, 1, 1.06777, 1.02197, 1.06777,\n 1.02197, 1.06777, 1.02197, 0.91142, 0.96752, 1, 1.21261, 0.89903, 1, 1,\n 0.75155, 1.04745, 1.04745, 1.04745, 1.04394, 0.98633, 0.98633, 0.98633,\n 0.72959, 0.72959, 1.20502, 0.91406, 1.26514, 1.222, 1.02956, 1.03372, 1.03372,\n 0.96039, 1.24633, 1, 1.09125, 0.93327, 1.03336, 1.16541, 1.036, 1, 1, 1,\n 0.771, 1, 1, 1.15574, 1.15574, 1.15574, 1.15574, 0.86364, 0.94434, 0.86279,\n 0.94434, 0.86224, 1, 1, 1.16798, 1, 0.96085, 0.90068, 1.21237, 1.18416,\n 1.13904, 0.69825, 0.9716, 2.10339, 1.29004, 1.29004, 1.21339, 1.29004,\n 1.29004, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025,\n 1.18775, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886,\n 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.13269, 1.13269, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst SegoeuiBoldItalicMetrics = { lineHeight: 1.33008, lineGap: 0 };\n\n// Factors to rescale LiberationSans-Italic.ttf to have the same\n// metrics as segoeuii.ttf.\nconst SegoeuiItalicFactors = [\n 1.76738, 1, 1, 0.98946, 1.14763, 1.05365, 1.06234, 0.96927, 0.92586, 1.15373,\n 1.18414, 0.91349, 0.91349, 1.07403, 1.17308, 0.78383, 1.20088, 0.78383,\n 1.42531, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927,\n 0.96927, 0.96927, 0.96927, 0.78383, 0.78383, 1.17308, 1.17308, 1.17308,\n 0.77349, 0.94565, 0.94729, 0.85944, 0.88506, 0.9858, 0.74817, 0.80016,\n 0.88449, 0.98039, 0.95782, 0.69238, 0.89898, 0.83231, 0.98183, 1.03989,\n 0.96924, 0.86237, 0.96924, 0.80595, 0.74524, 0.86091, 0.95402, 0.94143,\n 0.98448, 0.8858, 0.83089, 0.93285, 1.0949, 1.39016, 1.0949, 1.45994, 0.74627,\n 1.04839, 0.97454, 0.97454, 0.87207, 0.97454, 0.87533, 1.06151, 0.97454,\n 1.00176, 1.16484, 1.08132, 0.98047, 1.16484, 1.02989, 1.01054, 0.96225,\n 0.97454, 0.97454, 1.06598, 0.79004, 1.16344, 1.00351, 0.94629, 0.9973,\n 0.91016, 0.96777, 0.9043, 0.91082, 0.92481, 0.91082, 1.17308, 0.95748,\n 0.96927, 0.96927, 1, 0.96927, 0.92481, 0.80597, 1.04839, 1.23393, 1.1781,\n 0.9245, 1.17308, 1.20808, 0.63218, 0.94261, 1.24822, 1.09971, 1.09971,\n 1.04839, 1, 0.85273, 0.78032, 1.04839, 1.09971, 1.22326, 0.9245, 1.09836,\n 1.13525, 1.15222, 0.70424, 0.94729, 0.94729, 0.94729, 0.94729, 0.94729,\n 0.94729, 0.85498, 0.88506, 0.74817, 0.74817, 0.74817, 0.74817, 0.95782,\n 0.95782, 0.95782, 0.95782, 0.9858, 1.03989, 0.96924, 0.96924, 0.96924,\n 0.96924, 0.96924, 1.17308, 0.96924, 0.95402, 0.95402, 0.95402, 0.95402,\n 0.83089, 0.86237, 0.88409, 0.97454, 0.97454, 0.97454, 0.97454, 0.97454,\n 0.97454, 0.92916, 0.87207, 0.87533, 0.87533, 0.87533, 0.87533, 0.93146,\n 0.93146, 0.93146, 0.93146, 0.93854, 1.01054, 0.96225, 0.96225, 0.96225,\n 0.96225, 0.96225, 1.24822, 0.8761, 1.00351, 1.00351, 1.00351, 1.00351,\n 0.96777, 0.97454, 0.96777, 0.94729, 0.97454, 0.94729, 0.97454, 0.94729,\n 0.97454, 0.88506, 0.87207, 0.88506, 0.87207, 0.88506, 0.87207, 0.88506,\n 0.87207, 0.9858, 0.95391, 0.9858, 0.97454, 0.74817, 0.87533, 0.74817, 0.87533,\n 0.74817, 0.87533, 0.74817, 0.87533, 0.74817, 0.87533, 0.88449, 0.97454,\n 0.88449, 0.97454, 0.88449, 0.97454, 1, 1, 0.98039, 1.00176, 0.98039, 1.00176,\n 0.95782, 0.93146, 0.95782, 0.93146, 0.95782, 0.93146, 0.95782, 1.16484,\n 0.95782, 0.93146, 0.84421, 1.12761, 0.69238, 1.08132, 1, 1, 0.98047, 0.83231,\n 1.16484, 1, 1, 0.84723, 1.04861, 0.84723, 0.78755, 0.83231, 1.23736, 1.03989,\n 1.01054, 1, 1, 1.03989, 1.01054, 0.9857, 1.03849, 1.01054, 0.96924, 0.96225,\n 0.96924, 0.96225, 0.96924, 0.96225, 0.92383, 0.90171, 0.80595, 1.06598, 1, 1,\n 0.80595, 1.06598, 0.74524, 0.79004, 0.74524, 0.79004, 0.74524, 0.79004,\n 0.74524, 0.79004, 1, 1, 0.86091, 1.02759, 0.85771, 1.16344, 0.95402, 1.00351,\n 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351,\n 0.95402, 1.00351, 0.98448, 0.9973, 0.83089, 0.96777, 0.83089, 0.93285, 0.9043,\n 0.93285, 0.9043, 0.93285, 0.9043, 1.31868, 0.96927, 0.94729, 0.97454, 0.85498,\n 0.92916, 0.96924, 0.8761, 1, 1, 0.86091, 1.16344, 1.04839, 1.04839, 1.04839,\n 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 0.81965, 0.81965,\n 0.94729, 0.78032, 0.71022, 0.90883, 0.84171, 0.99877, 0.77596, 1.05734, 1.2,\n 0.94729, 0.85944, 0.82791, 0.9607, 0.74817, 0.93285, 0.98039, 0.96924,\n 0.95782, 0.89898, 0.98316, 0.98183, 1.03989, 0.78614, 0.96924, 0.97642,\n 0.86237, 0.86075, 0.86091, 0.83089, 0.90082, 0.8858, 0.97296, 1.01284,\n 0.95782, 0.83089, 1.0976, 1.04, 1.03342, 1.2, 1.0675, 1.0976, 0.98205,\n 1.03809, 1.05097, 1.04, 0.95364, 1.03342, 1.05401, 1.2, 1.02148, 1.0119,\n 1.04724, 1.0127, 1.02732, 0.96225, 0.8965, 0.97783, 0.93574, 0.94818, 1.30679,\n 1.0675, 1.11826, 0.99821, 1.0557, 1.0326, 1.2, 1.0675, 0.96225, 1.0675,\n 1.0326, 0.74817, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.03754, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.87533, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 0.98705, 1, 1, 1, 1, 1, 1, 0.98448, 0.9973, 0.98448, 0.9973, 0.98448, 0.9973,\n 0.83089, 0.96777, 1, 1.20088, 0.89903, 1, 1, 0.75155, 0.94945, 0.94945,\n 0.94945, 0.94945, 1.12317, 1.12317, 1.12317, 0.67603, 0.67603, 1.15621,\n 0.73584, 1.21191, 1.22135, 1.06483, 0.94868, 0.94868, 0.95996, 1.24633, 1,\n 1.07497, 0.87709, 0.96927, 1.01473, 0.96927, 1, 1, 1, 0.77295, 1, 1, 1.09836,\n 1.09836, 1.09836, 1.01522, 0.86321, 0.94434, 0.8649, 0.94434, 0.86182, 1, 1,\n 1.083, 1, 0.91578, 0.86438, 1.17308, 1.18416, 1.14589, 0.69825, 0.97622,\n 1.96791, 1.24822, 1.24822, 1.17308, 1.24822, 1.24822, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862,\n 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.17984, 1.42603, 1, 1.42603,\n 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1,\n 1.10742, 1.10742, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst SegoeuiItalicMetrics = { lineHeight: 1.33008, lineGap: 0 };\n\n// Factors to rescale LiberationSans-Regular.ttf to have the same\n// metrics as segoeui.ttf.\nconst SegoeuiRegularFactors = [\n 1.76738, 1, 1, 0.98594, 1.02285, 1.10454, 1.06234, 0.96927, 0.92037, 1.19985,\n 1.2046, 0.90616, 0.90616, 1.07152, 1.1714, 0.78032, 1.20088, 0.78032, 1.40246,\n 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927,\n 0.96927, 0.96927, 0.78032, 0.78032, 1.1714, 1.1714, 1.1714, 0.80597, 0.94084,\n 0.96706, 0.85944, 0.85734, 0.97093, 0.75842, 0.79936, 0.88198, 0.9831,\n 0.95782, 0.71387, 0.86969, 0.84636, 1.07796, 1.03584, 0.96924, 0.83968,\n 0.96924, 0.82826, 0.79649, 0.85771, 0.95132, 0.93119, 0.98965, 0.88433,\n 0.8287, 0.93365, 1.08612, 1.3638, 1.08612, 1.45786, 0.74627, 0.80499, 0.91484,\n 1.05707, 0.92383, 1.05882, 0.9403, 1.12654, 1.05882, 1.01756, 1.09011,\n 1.09011, 0.99414, 1.09011, 1.034, 1.01756, 1.05356, 1.05707, 1.05882, 1.04399,\n 0.84863, 1.21968, 1.01756, 0.95801, 1.00068, 0.91797, 0.96777, 0.9043,\n 0.90351, 0.92105, 0.90351, 1.1714, 0.85337, 0.96927, 0.96927, 0.99912,\n 0.96927, 0.92105, 0.80597, 1.2434, 1.20808, 1.05937, 0.90957, 1.1714, 1.20808,\n 0.75155, 0.94261, 1.24644, 1.09971, 1.09971, 0.84751, 1, 0.85273, 0.78032,\n 0.61584, 1.05425, 1.17914, 0.90957, 1.08665, 1.11593, 1.14169, 0.73381,\n 0.96706, 0.96706, 0.96706, 0.96706, 0.96706, 0.96706, 0.86035, 0.85734,\n 0.75842, 0.75842, 0.75842, 0.75842, 0.95782, 0.95782, 0.95782, 0.95782,\n 0.97093, 1.03584, 0.96924, 0.96924, 0.96924, 0.96924, 0.96924, 1.1714,\n 0.96924, 0.95132, 0.95132, 0.95132, 0.95132, 0.8287, 0.83968, 0.89049,\n 0.91484, 0.91484, 0.91484, 0.91484, 0.91484, 0.91484, 0.93575, 0.92383,\n 0.9403, 0.9403, 0.9403, 0.9403, 0.8717, 0.8717, 0.8717, 0.8717, 1.00527,\n 1.01756, 1.05356, 1.05356, 1.05356, 1.05356, 1.05356, 1.24644, 0.95923,\n 1.01756, 1.01756, 1.01756, 1.01756, 0.96777, 1.05707, 0.96777, 0.96706,\n 0.91484, 0.96706, 0.91484, 0.96706, 0.91484, 0.85734, 0.92383, 0.85734,\n 0.92383, 0.85734, 0.92383, 0.85734, 0.92383, 0.97093, 1.0969, 0.97093,\n 1.05882, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403,\n 0.75842, 0.9403, 0.88198, 1.05882, 0.88198, 1.05882, 0.88198, 1.05882, 1, 1,\n 0.9831, 1.01756, 0.9831, 1.01756, 0.95782, 0.8717, 0.95782, 0.8717, 0.95782,\n 0.8717, 0.95782, 1.09011, 0.95782, 0.8717, 0.84784, 1.11551, 0.71387, 1.09011,\n 1, 1, 0.99414, 0.84636, 1.09011, 1, 1, 0.84636, 1.0536, 0.84636, 0.94298,\n 0.84636, 1.23297, 1.03584, 1.01756, 1, 1, 1.03584, 1.01756, 1.00323, 1.03444,\n 1.01756, 0.96924, 1.05356, 0.96924, 1.05356, 0.96924, 1.05356, 0.93066,\n 0.98293, 0.82826, 1.04399, 1, 1, 0.82826, 1.04399, 0.79649, 0.84863, 0.79649,\n 0.84863, 0.79649, 0.84863, 0.79649, 0.84863, 1, 1, 0.85771, 1.17318, 0.85771,\n 1.21968, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132,\n 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.98965, 1.00068, 0.8287,\n 0.96777, 0.8287, 0.93365, 0.9043, 0.93365, 0.9043, 0.93365, 0.9043, 1.08571,\n 0.96927, 0.96706, 0.91484, 0.86035, 0.93575, 0.96924, 0.95923, 1, 1, 0.85771,\n 1.21968, 1.11437, 1.11437, 0.93109, 0.91202, 0.60411, 0.84164, 0.55572,\n 1.01173, 0.97361, 0.81818, 0.81818, 0.96635, 0.78032, 0.72727, 0.92366,\n 0.98601, 1.03405, 0.77968, 1.09799, 1.2, 0.96706, 0.85944, 0.85638, 0.96491,\n 0.75842, 0.93365, 0.9831, 0.96924, 0.95782, 0.86969, 0.94152, 1.07796,\n 1.03584, 0.78437, 0.96924, 0.98715, 0.83968, 0.83491, 0.85771, 0.8287,\n 0.94492, 0.88433, 0.9287, 1.0098, 0.95782, 0.8287, 1.0625, 0.98248, 1.03424,\n 1.2, 1.01071, 1.0625, 0.95246, 1.03809, 1.04912, 0.98248, 1.00221, 1.03424,\n 1.05443, 1.2, 1.04785, 0.99609, 1.00169, 1.05176, 0.99346, 1.05356, 0.9087,\n 1.03004, 0.95542, 0.93117, 1.23362, 1.01071, 1.07831, 1.02512, 1.05205,\n 1.03502, 1.2, 1.01071, 1.05356, 1.01071, 1.03502, 0.75842, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1.03719, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.9403,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.04021, 1, 1, 1, 1, 1, 1, 0.98965,\n 1.00068, 0.98965, 1.00068, 0.98965, 1.00068, 0.8287, 0.96777, 1, 1.20088,\n 0.89903, 1, 1, 0.75155, 1.03077, 1.03077, 1.03077, 1.03077, 1.13196, 1.13196,\n 1.13196, 0.67428, 0.67428, 1.16039, 0.73291, 1.20996, 1.22135, 1.06483,\n 0.94868, 0.94868, 0.95996, 1.24633, 1, 1.07497, 0.87796, 0.96927, 1.01518,\n 0.96927, 1, 1, 1, 0.77295, 1, 1, 1.10539, 1.10539, 1.11358, 1.06967, 0.86279,\n 0.94434, 0.86279, 0.94434, 0.86182, 1, 1, 1.083, 1, 0.91578, 0.86507, 1.1714,\n 1.18416, 1.14589, 0.69825, 0.97622, 1.9697, 1.24822, 1.24822, 1.17238,\n 1.24822, 1.24822, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025,\n 0.87025, 1.18083, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1,\n 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.10938, 1.10938, 1, 1, 1,\n 1.05425, 1.09971, 1.09971, 1.09971, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst SegoeuiRegularMetrics = { lineHeight: 1.33008, lineGap: 0 };\n\nexport {\n SegoeuiBoldFactors,\n SegoeuiBoldItalicFactors,\n SegoeuiBoldItalicMetrics,\n SegoeuiBoldMetrics,\n SegoeuiItalicFactors,\n SegoeuiItalicMetrics,\n SegoeuiRegularFactors,\n SegoeuiRegularMetrics,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FontType, info } from \"../shared/util.js\";\nimport { getEncoding, StandardEncoding } from \"./encodings.js\";\nimport { getGlyphsUnicode } from \"./glyphlist.js\";\nimport { getUnicodeForGlyph } from \"./unicode.js\";\n\n// Accented characters have issues on Windows and Linux. When this flag is\n// enabled glyphs that use seac and seac style endchar operators are truncated\n// and we instead just store the glyph id's of the base glyph and its accent to\n// be drawn individually.\n// Linux (freetype) requires that when a seac style endchar is used\n// that the charset must be a predefined one, however we build a\n// custom one. Windows just refuses to draw glyphs with seac operators.\nconst SEAC_ANALYSIS_ENABLED = true;\n\nconst FontFlags = {\n FixedPitch: 1,\n Serif: 2,\n Symbolic: 4,\n Script: 8,\n Nonsymbolic: 32,\n Italic: 64,\n AllCap: 65536,\n SmallCap: 131072,\n ForceBold: 262144,\n};\n\n// prettier-ignore\nconst MacStandardGlyphOrdering = [\n \".notdef\", \".null\", \"nonmarkingreturn\", \"space\", \"exclam\", \"quotedbl\",\n \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quotesingle\", \"parenleft\",\n \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\",\n \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\",\n \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\",\n \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\",\n \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\",\n \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\",\n \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\",\n \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\",\n \"asciitilde\", \"Adieresis\", \"Aring\", \"Ccedilla\", \"Eacute\", \"Ntilde\",\n \"Odieresis\", \"Udieresis\", \"aacute\", \"agrave\", \"acircumflex\", \"adieresis\",\n \"atilde\", \"aring\", \"ccedilla\", \"eacute\", \"egrave\", \"ecircumflex\", \"edieresis\",\n \"iacute\", \"igrave\", \"icircumflex\", \"idieresis\", \"ntilde\", \"oacute\", \"ograve\",\n \"ocircumflex\", \"odieresis\", \"otilde\", \"uacute\", \"ugrave\", \"ucircumflex\",\n \"udieresis\", \"dagger\", \"degree\", \"cent\", \"sterling\", \"section\", \"bullet\",\n \"paragraph\", \"germandbls\", \"registered\", \"copyright\", \"trademark\", \"acute\",\n \"dieresis\", \"notequal\", \"AE\", \"Oslash\", \"infinity\", \"plusminus\", \"lessequal\",\n \"greaterequal\", \"yen\", \"mu\", \"partialdiff\", \"summation\", \"product\", \"pi\",\n \"integral\", \"ordfeminine\", \"ordmasculine\", \"Omega\", \"ae\", \"oslash\",\n \"questiondown\", \"exclamdown\", \"logicalnot\", \"radical\", \"florin\",\n \"approxequal\", \"Delta\", \"guillemotleft\", \"guillemotright\", \"ellipsis\",\n \"nonbreakingspace\", \"Agrave\", \"Atilde\", \"Otilde\", \"OE\", \"oe\", \"endash\",\n \"emdash\", \"quotedblleft\", \"quotedblright\", \"quoteleft\", \"quoteright\",\n \"divide\", \"lozenge\", \"ydieresis\", \"Ydieresis\", \"fraction\", \"currency\",\n \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"daggerdbl\", \"periodcentered\",\n \"quotesinglbase\", \"quotedblbase\", \"perthousand\", \"Acircumflex\",\n \"Ecircumflex\", \"Aacute\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\",\n \"Idieresis\", \"Igrave\", \"Oacute\", \"Ocircumflex\", \"apple\", \"Ograve\", \"Uacute\",\n \"Ucircumflex\", \"Ugrave\", \"dotlessi\", \"circumflex\", \"tilde\", \"macron\",\n \"breve\", \"dotaccent\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\",\n \"Lslash\", \"lslash\", \"Scaron\", \"scaron\", \"Zcaron\", \"zcaron\", \"brokenbar\",\n \"Eth\", \"eth\", \"Yacute\", \"yacute\", \"Thorn\", \"thorn\", \"minus\", \"multiply\",\n \"onesuperior\", \"twosuperior\", \"threesuperior\", \"onehalf\", \"onequarter\",\n \"threequarters\", \"franc\", \"Gbreve\", \"gbreve\", \"Idotaccent\", \"Scedilla\",\n \"scedilla\", \"Cacute\", \"cacute\", \"Ccaron\", \"ccaron\", \"dcroat\"];\n\nfunction getFontType(type, subtype, isStandardFont = false) {\n switch (type) {\n case \"Type1\":\n if (isStandardFont) {\n return FontType.TYPE1STANDARD;\n }\n return subtype === \"Type1C\" ? FontType.TYPE1C : FontType.TYPE1;\n case \"CIDFontType0\":\n return subtype === \"CIDFontType0C\"\n ? FontType.CIDFONTTYPE0C\n : FontType.CIDFONTTYPE0;\n case \"OpenType\":\n return FontType.OPENTYPE;\n case \"TrueType\":\n return FontType.TRUETYPE;\n case \"CIDFontType2\":\n return FontType.CIDFONTTYPE2;\n case \"MMType1\":\n return FontType.MMTYPE1;\n case \"Type0\":\n return FontType.TYPE0;\n default:\n return FontType.UNKNOWN;\n }\n}\n\n// Some bad PDF generators, e.g. Scribus PDF, include glyph names\n// in a 'uniXXXX' format -- attempting to recover proper ones.\nfunction recoverGlyphName(name, glyphsUnicodeMap) {\n if (glyphsUnicodeMap[name] !== undefined) {\n return name;\n }\n // The glyph name is non-standard, trying to recover.\n const unicode = getUnicodeForGlyph(name, glyphsUnicodeMap);\n if (unicode !== -1) {\n for (const key in glyphsUnicodeMap) {\n if (glyphsUnicodeMap[key] === unicode) {\n return key;\n }\n }\n }\n info(\"Unable to recover a standard glyph name for: \" + name);\n return name;\n}\n\n/**\n * Shared logic for building a char code to glyph id mapping for Type1 and\n * simple CFF fonts. See section 9.6.6.2 of the spec.\n * @param {Object} properties Font properties object.\n * @param {Object} builtInEncoding The encoding contained within the actual font\n * data.\n * @param {Array} glyphNames Array of glyph names where the index is the\n * glyph ID.\n * @returns {Object} A char code to glyph ID map.\n */\nfunction type1FontGlyphMapping(properties, builtInEncoding, glyphNames) {\n const charCodeToGlyphId = Object.create(null);\n let glyphId, charCode, baseEncoding;\n const isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n\n if (properties.isInternalFont) {\n baseEncoding = builtInEncoding;\n for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0; // notdef\n }\n }\n } else if (properties.baseEncodingName) {\n // If a valid base encoding name was used, the mapping is initialized with\n // that.\n baseEncoding = getEncoding(properties.baseEncodingName);\n for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0; // notdef\n }\n }\n } else if (isSymbolicFont) {\n // For a symbolic font the encoding should be the fonts built-in encoding.\n for (charCode in builtInEncoding) {\n charCodeToGlyphId[charCode] = builtInEncoding[charCode];\n }\n } else {\n // For non-symbolic fonts that don't have a base encoding the standard\n // encoding should be used.\n baseEncoding = StandardEncoding;\n for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0; // notdef\n }\n }\n }\n\n // Lastly, merge in the differences.\n const differences = properties.differences;\n let glyphsUnicodeMap;\n if (differences) {\n for (charCode in differences) {\n const glyphName = differences[charCode];\n glyphId = glyphNames.indexOf(glyphName);\n\n if (glyphId === -1) {\n if (!glyphsUnicodeMap) {\n glyphsUnicodeMap = getGlyphsUnicode();\n }\n const standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap);\n if (standardGlyphName !== glyphName) {\n glyphId = glyphNames.indexOf(standardGlyphName);\n }\n }\n if (glyphId >= 0) {\n charCodeToGlyphId[charCode] = glyphId;\n } else {\n charCodeToGlyphId[charCode] = 0; // notdef\n }\n }\n }\n return charCodeToGlyphId;\n}\n\nfunction normalizeFontName(name) {\n return name.replace(/[,_]/g, \"-\").replace(/\\s/g, \"\");\n}\n\nexport {\n FontFlags,\n getFontType,\n MacStandardGlyphOrdering,\n normalizeFontName,\n recoverGlyphName,\n SEAC_ANALYSIS_ENABLED,\n type1FontGlyphMapping,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// prettier-ignore\nconst ExpertEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"\", \"dollaroldstyle\",\n \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\",\n \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\",\n \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\",\n \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\",\n \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"colon\",\n \"semicolon\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\",\n \"questionsmall\", \"\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\",\n \"esuperior\", \"\", \"\", \"\", \"isuperior\", \"\", \"\", \"lsuperior\", \"msuperior\",\n \"nsuperior\", \"osuperior\", \"\", \"\", \"rsuperior\", \"ssuperior\", \"tsuperior\",\n \"\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"\",\n \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\",\n \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\",\n \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\",\n \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\",\n \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\",\n \"onefitted\", \"rupiah\", \"Tildesmall\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\",\n \"\", \"\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\",\n \"Caronsmall\", \"\", \"Dotaccentsmall\", \"\", \"\", \"Macronsmall\", \"\", \"\",\n \"figuredash\", \"hypheninferior\", \"\", \"\", \"Ogoneksmall\", \"Ringsmall\",\n \"Cedillasmall\", \"\", \"\", \"\", \"onequarter\", \"onehalf\", \"threequarters\",\n \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n \"seveneighths\", \"onethird\", \"twothirds\", \"\", \"\", \"zerosuperior\",\n \"onesuperior\", \"twosuperior\", \"threesuperior\", \"foursuperior\",\n \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\",\n \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\",\n \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\",\n \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\",\n \"dollarinferior\", \"periodinferior\", \"commainferior\", \"Agravesmall\",\n \"Aacutesmall\", \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\",\n \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\",\n \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\",\n \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\",\n \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\",\n \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\",\n \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\",\n \"Ydieresissmall\"];\n\n// prettier-ignore\nconst MacExpertEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"centoldstyle\",\n \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\",\n \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\",\n \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\",\n \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\",\n \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\",\n \"nineoldstyle\", \"colon\", \"semicolon\", \"\", \"threequartersemdash\", \"\",\n \"questionsmall\", \"\", \"\", \"\", \"\", \"Ethsmall\", \"\", \"\", \"onequarter\",\n \"onehalf\", \"threequarters\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n \"seveneighths\", \"onethird\", \"twothirds\", \"\", \"\", \"\", \"\", \"\", \"\", \"ff\",\n \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"\", \"parenrightinferior\",\n \"Circumflexsmall\", \"hypheninferior\", \"Gravesmall\", \"Asmall\", \"Bsmall\",\n \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\",\n \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\",\n \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\",\n \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\",\n \"Tildesmall\", \"\", \"\", \"asuperior\", \"centsuperior\", \"\", \"\", \"\", \"\",\n \"Aacutesmall\", \"Agravesmall\", \"Acircumflexsmall\", \"Adieresissmall\",\n \"Atildesmall\", \"Aringsmall\", \"Ccedillasmall\", \"Eacutesmall\", \"Egravesmall\",\n \"Ecircumflexsmall\", \"Edieresissmall\", \"Iacutesmall\", \"Igravesmall\",\n \"Icircumflexsmall\", \"Idieresissmall\", \"Ntildesmall\", \"Oacutesmall\",\n \"Ogravesmall\", \"Ocircumflexsmall\", \"Odieresissmall\", \"Otildesmall\",\n \"Uacutesmall\", \"Ugravesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"\",\n \"eightsuperior\", \"fourinferior\", \"threeinferior\", \"sixinferior\",\n \"eightinferior\", \"seveninferior\", \"Scaronsmall\", \"\", \"centinferior\",\n \"twoinferior\", \"\", \"Dieresissmall\", \"\", \"Caronsmall\", \"osuperior\",\n \"fiveinferior\", \"\", \"commainferior\", \"periodinferior\", \"Yacutesmall\", \"\",\n \"dollarinferior\", \"\", \"\", \"Thornsmall\", \"\", \"nineinferior\", \"zeroinferior\",\n \"Zcaronsmall\", \"AEsmall\", \"Oslashsmall\", \"questiondownsmall\",\n \"oneinferior\", \"Lslashsmall\", \"\", \"\", \"\", \"\", \"\", \"\", \"Cedillasmall\", \"\",\n \"\", \"\", \"\", \"\", \"OEsmall\", \"figuredash\", \"hyphensuperior\", \"\", \"\", \"\", \"\",\n \"exclamdownsmall\", \"\", \"Ydieresissmall\", \"\", \"onesuperior\", \"twosuperior\",\n \"threesuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\",\n \"sevensuperior\", \"ninesuperior\", \"zerosuperior\", \"\", \"esuperior\",\n \"rsuperior\", \"tsuperior\", \"\", \"\", \"isuperior\", \"ssuperior\", \"dsuperior\",\n \"\", \"\", \"\", \"\", \"\", \"lsuperior\", \"Ogoneksmall\", \"Brevesmall\",\n \"Macronsmall\", \"bsuperior\", \"nsuperior\", \"msuperior\", \"commasuperior\",\n \"periodsuperior\", \"Dotaccentsmall\", \"Ringsmall\", \"\", \"\", \"\", \"\"];\n\n// prettier-ignore\nconst MacRomanEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\",\n \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\",\n \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\",\n \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\",\n \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\",\n \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\",\n \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\",\n \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\",\n \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\",\n \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"\",\n \"Adieresis\", \"Aring\", \"Ccedilla\", \"Eacute\", \"Ntilde\", \"Odieresis\",\n \"Udieresis\", \"aacute\", \"agrave\", \"acircumflex\", \"adieresis\", \"atilde\",\n \"aring\", \"ccedilla\", \"eacute\", \"egrave\", \"ecircumflex\", \"edieresis\",\n \"iacute\", \"igrave\", \"icircumflex\", \"idieresis\", \"ntilde\", \"oacute\",\n \"ograve\", \"ocircumflex\", \"odieresis\", \"otilde\", \"uacute\", \"ugrave\",\n \"ucircumflex\", \"udieresis\", \"dagger\", \"degree\", \"cent\", \"sterling\",\n \"section\", \"bullet\", \"paragraph\", \"germandbls\", \"registered\", \"copyright\",\n \"trademark\", \"acute\", \"dieresis\", \"notequal\", \"AE\", \"Oslash\", \"infinity\",\n \"plusminus\", \"lessequal\", \"greaterequal\", \"yen\", \"mu\", \"partialdiff\",\n \"summation\", \"product\", \"pi\", \"integral\", \"ordfeminine\", \"ordmasculine\",\n \"Omega\", \"ae\", \"oslash\", \"questiondown\", \"exclamdown\", \"logicalnot\",\n \"radical\", \"florin\", \"approxequal\", \"Delta\", \"guillemotleft\",\n \"guillemotright\", \"ellipsis\", \"space\", \"Agrave\", \"Atilde\", \"Otilde\", \"OE\",\n \"oe\", \"endash\", \"emdash\", \"quotedblleft\", \"quotedblright\", \"quoteleft\",\n \"quoteright\", \"divide\", \"lozenge\", \"ydieresis\", \"Ydieresis\", \"fraction\",\n \"currency\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"daggerdbl\",\n \"periodcentered\", \"quotesinglbase\", \"quotedblbase\", \"perthousand\",\n \"Acircumflex\", \"Ecircumflex\", \"Aacute\", \"Edieresis\", \"Egrave\", \"Iacute\",\n \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Oacute\", \"Ocircumflex\", \"apple\",\n \"Ograve\", \"Uacute\", \"Ucircumflex\", \"Ugrave\", \"dotlessi\", \"circumflex\",\n \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"ring\", \"cedilla\", \"hungarumlaut\",\n \"ogonek\", \"caron\"];\n\n// prettier-ignore\nconst StandardEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\",\n \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\",\n \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\",\n \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\",\n \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\",\n \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\",\n \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\",\n \"asciicircum\", \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\",\n \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\",\n \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"exclamdown\",\n \"cent\", \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\",\n \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\",\n \"guilsinglright\", \"fi\", \"fl\", \"\", \"endash\", \"dagger\", \"daggerdbl\",\n \"periodcentered\", \"\", \"paragraph\", \"bullet\", \"quotesinglbase\",\n \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\",\n \"perthousand\", \"\", \"questiondown\", \"\", \"grave\", \"acute\", \"circumflex\",\n \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"\", \"ring\", \"cedilla\",\n \"\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"AE\", \"\", \"ordfeminine\", \"\", \"\",\n \"\", \"\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"\", \"\", \"\", \"\", \"\", \"ae\",\n \"\", \"\", \"\", \"dotlessi\", \"\", \"\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"\",\n \"\", \"\", \"\"];\n\n// prettier-ignore\nconst WinAnsiEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\",\n \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\",\n \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\",\n \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\",\n \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\",\n \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\",\n \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\",\n \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\",\n \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\",\n \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\",\n \"bullet\", \"Euro\", \"bullet\", \"quotesinglbase\", \"florin\", \"quotedblbase\",\n \"ellipsis\", \"dagger\", \"daggerdbl\", \"circumflex\", \"perthousand\", \"Scaron\",\n \"guilsinglleft\", \"OE\", \"bullet\", \"Zcaron\", \"bullet\", \"bullet\", \"quoteleft\",\n \"quoteright\", \"quotedblleft\", \"quotedblright\", \"bullet\", \"endash\",\n \"emdash\", \"tilde\", \"trademark\", \"scaron\", \"guilsinglright\", \"oe\", \"bullet\",\n \"zcaron\", \"Ydieresis\", \"space\", \"exclamdown\", \"cent\", \"sterling\",\n \"currency\", \"yen\", \"brokenbar\", \"section\", \"dieresis\", \"copyright\",\n \"ordfeminine\", \"guillemotleft\", \"logicalnot\", \"hyphen\", \"registered\",\n \"macron\", \"degree\", \"plusminus\", \"twosuperior\", \"threesuperior\", \"acute\",\n \"mu\", \"paragraph\", \"periodcentered\", \"cedilla\", \"onesuperior\",\n \"ordmasculine\", \"guillemotright\", \"onequarter\", \"onehalf\", \"threequarters\",\n \"questiondown\", \"Agrave\", \"Aacute\", \"Acircumflex\", \"Atilde\", \"Adieresis\",\n \"Aring\", \"AE\", \"Ccedilla\", \"Egrave\", \"Eacute\", \"Ecircumflex\", \"Edieresis\",\n \"Igrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Eth\", \"Ntilde\", \"Ograve\",\n \"Oacute\", \"Ocircumflex\", \"Otilde\", \"Odieresis\", \"multiply\", \"Oslash\",\n \"Ugrave\", \"Uacute\", \"Ucircumflex\", \"Udieresis\", \"Yacute\", \"Thorn\",\n \"germandbls\", \"agrave\", \"aacute\", \"acircumflex\", \"atilde\", \"adieresis\",\n \"aring\", \"ae\", \"ccedilla\", \"egrave\", \"eacute\", \"ecircumflex\", \"edieresis\",\n \"igrave\", \"iacute\", \"icircumflex\", \"idieresis\", \"eth\", \"ntilde\", \"ograve\",\n \"oacute\", \"ocircumflex\", \"otilde\", \"odieresis\", \"divide\", \"oslash\",\n \"ugrave\", \"uacute\", \"ucircumflex\", \"udieresis\", \"yacute\", \"thorn\",\n \"ydieresis\"];\n\n// prettier-ignore\nconst SymbolSetEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclam\", \"universal\", \"numbersign\", \"existential\", \"percent\",\n \"ampersand\", \"suchthat\", \"parenleft\", \"parenright\", \"asteriskmath\", \"plus\",\n \"comma\", \"minus\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\",\n \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\",\n \"equal\", \"greater\", \"question\", \"congruent\", \"Alpha\", \"Beta\", \"Chi\",\n \"Delta\", \"Epsilon\", \"Phi\", \"Gamma\", \"Eta\", \"Iota\", \"theta1\", \"Kappa\",\n \"Lambda\", \"Mu\", \"Nu\", \"Omicron\", \"Pi\", \"Theta\", \"Rho\", \"Sigma\", \"Tau\",\n \"Upsilon\", \"sigma1\", \"Omega\", \"Xi\", \"Psi\", \"Zeta\", \"bracketleft\",\n \"therefore\", \"bracketright\", \"perpendicular\", \"underscore\", \"radicalex\",\n \"alpha\", \"beta\", \"chi\", \"delta\", \"epsilon\", \"phi\", \"gamma\", \"eta\", \"iota\",\n \"phi1\", \"kappa\", \"lambda\", \"mu\", \"nu\", \"omicron\", \"pi\", \"theta\", \"rho\",\n \"sigma\", \"tau\", \"upsilon\", \"omega1\", \"omega\", \"xi\", \"psi\", \"zeta\",\n \"braceleft\", \"bar\", \"braceright\", \"similar\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"Euro\", \"Upsilon1\", \"minute\", \"lessequal\",\n \"fraction\", \"infinity\", \"florin\", \"club\", \"diamond\", \"heart\", \"spade\",\n \"arrowboth\", \"arrowleft\", \"arrowup\", \"arrowright\", \"arrowdown\", \"degree\",\n \"plusminus\", \"second\", \"greaterequal\", \"multiply\", \"proportional\",\n \"partialdiff\", \"bullet\", \"divide\", \"notequal\", \"equivalence\",\n \"approxequal\", \"ellipsis\", \"arrowvertex\", \"arrowhorizex\", \"carriagereturn\",\n \"aleph\", \"Ifraktur\", \"Rfraktur\", \"weierstrass\", \"circlemultiply\",\n \"circleplus\", \"emptyset\", \"intersection\", \"union\", \"propersuperset\",\n \"reflexsuperset\", \"notsubset\", \"propersubset\", \"reflexsubset\", \"element\",\n \"notelement\", \"angle\", \"gradient\", \"registerserif\", \"copyrightserif\",\n \"trademarkserif\", \"product\", \"radical\", \"dotmath\", \"logicalnot\",\n \"logicaland\", \"logicalor\", \"arrowdblboth\", \"arrowdblleft\", \"arrowdblup\",\n \"arrowdblright\", \"arrowdbldown\", \"lozenge\", \"angleleft\", \"registersans\",\n \"copyrightsans\", \"trademarksans\", \"summation\", \"parenlefttp\",\n \"parenleftex\", \"parenleftbt\", \"bracketlefttp\", \"bracketleftex\",\n \"bracketleftbt\", \"bracelefttp\", \"braceleftmid\", \"braceleftbt\", \"braceex\",\n \"\", \"angleright\", \"integral\", \"integraltp\", \"integralex\", \"integralbt\",\n \"parenrighttp\", \"parenrightex\", \"parenrightbt\", \"bracketrighttp\",\n \"bracketrightex\", \"bracketrightbt\", \"bracerighttp\", \"bracerightmid\",\n \"bracerightbt\", \"\"];\n\n// prettier-ignore\nconst ZapfDingbatsEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"a1\", \"a2\", \"a202\", \"a3\", \"a4\", \"a5\", \"a119\", \"a118\", \"a117\",\n \"a11\", \"a12\", \"a13\", \"a14\", \"a15\", \"a16\", \"a105\", \"a17\", \"a18\", \"a19\",\n \"a20\", \"a21\", \"a22\", \"a23\", \"a24\", \"a25\", \"a26\", \"a27\", \"a28\", \"a6\", \"a7\",\n \"a8\", \"a9\", \"a10\", \"a29\", \"a30\", \"a31\", \"a32\", \"a33\", \"a34\", \"a35\", \"a36\",\n \"a37\", \"a38\", \"a39\", \"a40\", \"a41\", \"a42\", \"a43\", \"a44\", \"a45\", \"a46\",\n \"a47\", \"a48\", \"a49\", \"a50\", \"a51\", \"a52\", \"a53\", \"a54\", \"a55\", \"a56\",\n \"a57\", \"a58\", \"a59\", \"a60\", \"a61\", \"a62\", \"a63\", \"a64\", \"a65\", \"a66\",\n \"a67\", \"a68\", \"a69\", \"a70\", \"a71\", \"a72\", \"a73\", \"a74\", \"a203\", \"a75\",\n \"a204\", \"a76\", \"a77\", \"a78\", \"a79\", \"a81\", \"a82\", \"a83\", \"a84\", \"a97\",\n \"a98\", \"a99\", \"a100\", \"\", \"a89\", \"a90\", \"a93\", \"a94\", \"a91\", \"a92\", \"a205\",\n \"a85\", \"a206\", \"a86\", \"a87\", \"a88\", \"a95\", \"a96\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"a101\", \"a102\", \"a103\",\n \"a104\", \"a106\", \"a107\", \"a108\", \"a112\", \"a111\", \"a110\", \"a109\", \"a120\",\n \"a121\", \"a122\", \"a123\", \"a124\", \"a125\", \"a126\", \"a127\", \"a128\", \"a129\",\n \"a130\", \"a131\", \"a132\", \"a133\", \"a134\", \"a135\", \"a136\", \"a137\", \"a138\",\n \"a139\", \"a140\", \"a141\", \"a142\", \"a143\", \"a144\", \"a145\", \"a146\", \"a147\",\n \"a148\", \"a149\", \"a150\", \"a151\", \"a152\", \"a153\", \"a154\", \"a155\", \"a156\",\n \"a157\", \"a158\", \"a159\", \"a160\", \"a161\", \"a163\", \"a164\", \"a196\", \"a165\",\n \"a192\", \"a166\", \"a167\", \"a168\", \"a169\", \"a170\", \"a171\", \"a172\", \"a173\",\n \"a162\", \"a174\", \"a175\", \"a176\", \"a177\", \"a178\", \"a179\", \"a193\", \"a180\",\n \"a199\", \"a181\", \"a200\", \"a182\", \"\", \"a201\", \"a183\", \"a184\", \"a197\", \"a185\",\n \"a194\", \"a198\", \"a186\", \"a195\", \"a187\", \"a188\", \"a189\", \"a190\", \"a191\", \"\"];\n\nfunction getEncoding(encodingName) {\n switch (encodingName) {\n case \"WinAnsiEncoding\":\n return WinAnsiEncoding;\n case \"StandardEncoding\":\n return StandardEncoding;\n case \"MacRomanEncoding\":\n return MacRomanEncoding;\n case \"SymbolSetEncoding\":\n return SymbolSetEncoding;\n case \"ZapfDingbatsEncoding\":\n return ZapfDingbatsEncoding;\n case \"ExpertEncoding\":\n return ExpertEncoding;\n case \"MacExpertEncoding\":\n return MacExpertEncoding;\n default:\n return null;\n }\n}\n\nexport {\n ExpertEncoding,\n getEncoding,\n MacRomanEncoding,\n StandardEncoding,\n SymbolSetEncoding,\n WinAnsiEncoding,\n ZapfDingbatsEncoding,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* no-babel-preset */\n\nimport { getArrayLookupTableFactory } from \"./core_utils.js\";\n\nconst getGlyphsUnicode = getArrayLookupTableFactory(function () {\n // prettier-ignore\n return [\n \"A\", 0x0041,\n \"AE\", 0x00c6,\n \"AEacute\", 0x01fc,\n \"AEmacron\", 0x01e2,\n \"AEsmall\", 0xf7e6,\n \"Aacute\", 0x00c1,\n \"Aacutesmall\", 0xf7e1,\n \"Abreve\", 0x0102,\n \"Abreveacute\", 0x1eae,\n \"Abrevecyrillic\", 0x04d0,\n \"Abrevedotbelow\", 0x1eb6,\n \"Abrevegrave\", 0x1eb0,\n \"Abrevehookabove\", 0x1eb2,\n \"Abrevetilde\", 0x1eb4,\n \"Acaron\", 0x01cd,\n \"Acircle\", 0x24b6,\n \"Acircumflex\", 0x00c2,\n \"Acircumflexacute\", 0x1ea4,\n \"Acircumflexdotbelow\", 0x1eac,\n \"Acircumflexgrave\", 0x1ea6,\n \"Acircumflexhookabove\", 0x1ea8,\n \"Acircumflexsmall\", 0xf7e2,\n \"Acircumflextilde\", 0x1eaa,\n \"Acute\", 0xf6c9,\n \"Acutesmall\", 0xf7b4,\n \"Acyrillic\", 0x0410,\n \"Adblgrave\", 0x0200,\n \"Adieresis\", 0x00c4,\n \"Adieresiscyrillic\", 0x04d2,\n \"Adieresismacron\", 0x01de,\n \"Adieresissmall\", 0xf7e4,\n \"Adotbelow\", 0x1ea0,\n \"Adotmacron\", 0x01e0,\n \"Agrave\", 0x00c0,\n \"Agravesmall\", 0xf7e0,\n \"Ahookabove\", 0x1ea2,\n \"Aiecyrillic\", 0x04d4,\n \"Ainvertedbreve\", 0x0202,\n \"Alpha\", 0x0391,\n \"Alphatonos\", 0x0386,\n \"Amacron\", 0x0100,\n \"Amonospace\", 0xff21,\n \"Aogonek\", 0x0104,\n \"Aring\", 0x00c5,\n \"Aringacute\", 0x01fa,\n \"Aringbelow\", 0x1e00,\n \"Aringsmall\", 0xf7e5,\n \"Asmall\", 0xf761,\n \"Atilde\", 0x00c3,\n \"Atildesmall\", 0xf7e3,\n \"Aybarmenian\", 0x0531,\n \"B\", 0x0042,\n \"Bcircle\", 0x24b7,\n \"Bdotaccent\", 0x1e02,\n \"Bdotbelow\", 0x1e04,\n \"Becyrillic\", 0x0411,\n \"Benarmenian\", 0x0532,\n \"Beta\", 0x0392,\n \"Bhook\", 0x0181,\n \"Blinebelow\", 0x1e06,\n \"Bmonospace\", 0xff22,\n \"Brevesmall\", 0xf6f4,\n \"Bsmall\", 0xf762,\n \"Btopbar\", 0x0182,\n \"C\", 0x0043,\n \"Caarmenian\", 0x053e,\n \"Cacute\", 0x0106,\n \"Caron\", 0xf6ca,\n \"Caronsmall\", 0xf6f5,\n \"Ccaron\", 0x010c,\n \"Ccedilla\", 0x00c7,\n \"Ccedillaacute\", 0x1e08,\n \"Ccedillasmall\", 0xf7e7,\n \"Ccircle\", 0x24b8,\n \"Ccircumflex\", 0x0108,\n \"Cdot\", 0x010a,\n \"Cdotaccent\", 0x010a,\n \"Cedillasmall\", 0xf7b8,\n \"Chaarmenian\", 0x0549,\n \"Cheabkhasiancyrillic\", 0x04bc,\n \"Checyrillic\", 0x0427,\n \"Chedescenderabkhasiancyrillic\", 0x04be,\n \"Chedescendercyrillic\", 0x04b6,\n \"Chedieresiscyrillic\", 0x04f4,\n \"Cheharmenian\", 0x0543,\n \"Chekhakassiancyrillic\", 0x04cb,\n \"Cheverticalstrokecyrillic\", 0x04b8,\n \"Chi\", 0x03a7,\n \"Chook\", 0x0187,\n \"Circumflexsmall\", 0xf6f6,\n \"Cmonospace\", 0xff23,\n \"Coarmenian\", 0x0551,\n \"Csmall\", 0xf763,\n \"D\", 0x0044,\n \"DZ\", 0x01f1,\n \"DZcaron\", 0x01c4,\n \"Daarmenian\", 0x0534,\n \"Dafrican\", 0x0189,\n \"Dcaron\", 0x010e,\n \"Dcedilla\", 0x1e10,\n \"Dcircle\", 0x24b9,\n \"Dcircumflexbelow\", 0x1e12,\n \"Dcroat\", 0x0110,\n \"Ddotaccent\", 0x1e0a,\n \"Ddotbelow\", 0x1e0c,\n \"Decyrillic\", 0x0414,\n \"Deicoptic\", 0x03ee,\n \"Delta\", 0x2206,\n \"Deltagreek\", 0x0394,\n \"Dhook\", 0x018a,\n \"Dieresis\", 0xf6cb,\n \"DieresisAcute\", 0xf6cc,\n \"DieresisGrave\", 0xf6cd,\n \"Dieresissmall\", 0xf7a8,\n \"Digammagreek\", 0x03dc,\n \"Djecyrillic\", 0x0402,\n \"Dlinebelow\", 0x1e0e,\n \"Dmonospace\", 0xff24,\n \"Dotaccentsmall\", 0xf6f7,\n \"Dslash\", 0x0110,\n \"Dsmall\", 0xf764,\n \"Dtopbar\", 0x018b,\n \"Dz\", 0x01f2,\n \"Dzcaron\", 0x01c5,\n \"Dzeabkhasiancyrillic\", 0x04e0,\n \"Dzecyrillic\", 0x0405,\n \"Dzhecyrillic\", 0x040f,\n \"E\", 0x0045,\n \"Eacute\", 0x00c9,\n \"Eacutesmall\", 0xf7e9,\n \"Ebreve\", 0x0114,\n \"Ecaron\", 0x011a,\n \"Ecedillabreve\", 0x1e1c,\n \"Echarmenian\", 0x0535,\n \"Ecircle\", 0x24ba,\n \"Ecircumflex\", 0x00ca,\n \"Ecircumflexacute\", 0x1ebe,\n \"Ecircumflexbelow\", 0x1e18,\n \"Ecircumflexdotbelow\", 0x1ec6,\n \"Ecircumflexgrave\", 0x1ec0,\n \"Ecircumflexhookabove\", 0x1ec2,\n \"Ecircumflexsmall\", 0xf7ea,\n \"Ecircumflextilde\", 0x1ec4,\n \"Ecyrillic\", 0x0404,\n \"Edblgrave\", 0x0204,\n \"Edieresis\", 0x00cb,\n \"Edieresissmall\", 0xf7eb,\n \"Edot\", 0x0116,\n \"Edotaccent\", 0x0116,\n \"Edotbelow\", 0x1eb8,\n \"Efcyrillic\", 0x0424,\n \"Egrave\", 0x00c8,\n \"Egravesmall\", 0xf7e8,\n \"Eharmenian\", 0x0537,\n \"Ehookabove\", 0x1eba,\n \"Eightroman\", 0x2167,\n \"Einvertedbreve\", 0x0206,\n \"Eiotifiedcyrillic\", 0x0464,\n \"Elcyrillic\", 0x041b,\n \"Elevenroman\", 0x216a,\n \"Emacron\", 0x0112,\n \"Emacronacute\", 0x1e16,\n \"Emacrongrave\", 0x1e14,\n \"Emcyrillic\", 0x041c,\n \"Emonospace\", 0xff25,\n \"Encyrillic\", 0x041d,\n \"Endescendercyrillic\", 0x04a2,\n \"Eng\", 0x014a,\n \"Enghecyrillic\", 0x04a4,\n \"Enhookcyrillic\", 0x04c7,\n \"Eogonek\", 0x0118,\n \"Eopen\", 0x0190,\n \"Epsilon\", 0x0395,\n \"Epsilontonos\", 0x0388,\n \"Ercyrillic\", 0x0420,\n \"Ereversed\", 0x018e,\n \"Ereversedcyrillic\", 0x042d,\n \"Escyrillic\", 0x0421,\n \"Esdescendercyrillic\", 0x04aa,\n \"Esh\", 0x01a9,\n \"Esmall\", 0xf765,\n \"Eta\", 0x0397,\n \"Etarmenian\", 0x0538,\n \"Etatonos\", 0x0389,\n \"Eth\", 0x00d0,\n \"Ethsmall\", 0xf7f0,\n \"Etilde\", 0x1ebc,\n \"Etildebelow\", 0x1e1a,\n \"Euro\", 0x20ac,\n \"Ezh\", 0x01b7,\n \"Ezhcaron\", 0x01ee,\n \"Ezhreversed\", 0x01b8,\n \"F\", 0x0046,\n \"Fcircle\", 0x24bb,\n \"Fdotaccent\", 0x1e1e,\n \"Feharmenian\", 0x0556,\n \"Feicoptic\", 0x03e4,\n \"Fhook\", 0x0191,\n \"Fitacyrillic\", 0x0472,\n \"Fiveroman\", 0x2164,\n \"Fmonospace\", 0xff26,\n \"Fourroman\", 0x2163,\n \"Fsmall\", 0xf766,\n \"G\", 0x0047,\n \"GBsquare\", 0x3387,\n \"Gacute\", 0x01f4,\n \"Gamma\", 0x0393,\n \"Gammaafrican\", 0x0194,\n \"Gangiacoptic\", 0x03ea,\n \"Gbreve\", 0x011e,\n \"Gcaron\", 0x01e6,\n \"Gcedilla\", 0x0122,\n \"Gcircle\", 0x24bc,\n \"Gcircumflex\", 0x011c,\n \"Gcommaaccent\", 0x0122,\n \"Gdot\", 0x0120,\n \"Gdotaccent\", 0x0120,\n \"Gecyrillic\", 0x0413,\n \"Ghadarmenian\", 0x0542,\n \"Ghemiddlehookcyrillic\", 0x0494,\n \"Ghestrokecyrillic\", 0x0492,\n \"Gheupturncyrillic\", 0x0490,\n \"Ghook\", 0x0193,\n \"Gimarmenian\", 0x0533,\n \"Gjecyrillic\", 0x0403,\n \"Gmacron\", 0x1e20,\n \"Gmonospace\", 0xff27,\n \"Grave\", 0xf6ce,\n \"Gravesmall\", 0xf760,\n \"Gsmall\", 0xf767,\n \"Gsmallhook\", 0x029b,\n \"Gstroke\", 0x01e4,\n \"H\", 0x0048,\n \"H18533\", 0x25cf,\n \"H18543\", 0x25aa,\n \"H18551\", 0x25ab,\n \"H22073\", 0x25a1,\n \"HPsquare\", 0x33cb,\n \"Haabkhasiancyrillic\", 0x04a8,\n \"Hadescendercyrillic\", 0x04b2,\n \"Hardsigncyrillic\", 0x042a,\n \"Hbar\", 0x0126,\n \"Hbrevebelow\", 0x1e2a,\n \"Hcedilla\", 0x1e28,\n \"Hcircle\", 0x24bd,\n \"Hcircumflex\", 0x0124,\n \"Hdieresis\", 0x1e26,\n \"Hdotaccent\", 0x1e22,\n \"Hdotbelow\", 0x1e24,\n \"Hmonospace\", 0xff28,\n \"Hoarmenian\", 0x0540,\n \"Horicoptic\", 0x03e8,\n \"Hsmall\", 0xf768,\n \"Hungarumlaut\", 0xf6cf,\n \"Hungarumlautsmall\", 0xf6f8,\n \"Hzsquare\", 0x3390,\n \"I\", 0x0049,\n \"IAcyrillic\", 0x042f,\n \"IJ\", 0x0132,\n \"IUcyrillic\", 0x042e,\n \"Iacute\", 0x00cd,\n \"Iacutesmall\", 0xf7ed,\n \"Ibreve\", 0x012c,\n \"Icaron\", 0x01cf,\n \"Icircle\", 0x24be,\n \"Icircumflex\", 0x00ce,\n \"Icircumflexsmall\", 0xf7ee,\n \"Icyrillic\", 0x0406,\n \"Idblgrave\", 0x0208,\n \"Idieresis\", 0x00cf,\n \"Idieresisacute\", 0x1e2e,\n \"Idieresiscyrillic\", 0x04e4,\n \"Idieresissmall\", 0xf7ef,\n \"Idot\", 0x0130,\n \"Idotaccent\", 0x0130,\n \"Idotbelow\", 0x1eca,\n \"Iebrevecyrillic\", 0x04d6,\n \"Iecyrillic\", 0x0415,\n \"Ifraktur\", 0x2111,\n \"Igrave\", 0x00cc,\n \"Igravesmall\", 0xf7ec,\n \"Ihookabove\", 0x1ec8,\n \"Iicyrillic\", 0x0418,\n \"Iinvertedbreve\", 0x020a,\n \"Iishortcyrillic\", 0x0419,\n \"Imacron\", 0x012a,\n \"Imacroncyrillic\", 0x04e2,\n \"Imonospace\", 0xff29,\n \"Iniarmenian\", 0x053b,\n \"Iocyrillic\", 0x0401,\n \"Iogonek\", 0x012e,\n \"Iota\", 0x0399,\n \"Iotaafrican\", 0x0196,\n \"Iotadieresis\", 0x03aa,\n \"Iotatonos\", 0x038a,\n \"Ismall\", 0xf769,\n \"Istroke\", 0x0197,\n \"Itilde\", 0x0128,\n \"Itildebelow\", 0x1e2c,\n \"Izhitsacyrillic\", 0x0474,\n \"Izhitsadblgravecyrillic\", 0x0476,\n \"J\", 0x004a,\n \"Jaarmenian\", 0x0541,\n \"Jcircle\", 0x24bf,\n \"Jcircumflex\", 0x0134,\n \"Jecyrillic\", 0x0408,\n \"Jheharmenian\", 0x054b,\n \"Jmonospace\", 0xff2a,\n \"Jsmall\", 0xf76a,\n \"K\", 0x004b,\n \"KBsquare\", 0x3385,\n \"KKsquare\", 0x33cd,\n \"Kabashkircyrillic\", 0x04a0,\n \"Kacute\", 0x1e30,\n \"Kacyrillic\", 0x041a,\n \"Kadescendercyrillic\", 0x049a,\n \"Kahookcyrillic\", 0x04c3,\n \"Kappa\", 0x039a,\n \"Kastrokecyrillic\", 0x049e,\n \"Kaverticalstrokecyrillic\", 0x049c,\n \"Kcaron\", 0x01e8,\n \"Kcedilla\", 0x0136,\n \"Kcircle\", 0x24c0,\n \"Kcommaaccent\", 0x0136,\n \"Kdotbelow\", 0x1e32,\n \"Keharmenian\", 0x0554,\n \"Kenarmenian\", 0x053f,\n \"Khacyrillic\", 0x0425,\n \"Kheicoptic\", 0x03e6,\n \"Khook\", 0x0198,\n \"Kjecyrillic\", 0x040c,\n \"Klinebelow\", 0x1e34,\n \"Kmonospace\", 0xff2b,\n \"Koppacyrillic\", 0x0480,\n \"Koppagreek\", 0x03de,\n \"Ksicyrillic\", 0x046e,\n \"Ksmall\", 0xf76b,\n \"L\", 0x004c,\n \"LJ\", 0x01c7,\n \"LL\", 0xf6bf,\n \"Lacute\", 0x0139,\n \"Lambda\", 0x039b,\n \"Lcaron\", 0x013d,\n \"Lcedilla\", 0x013b,\n \"Lcircle\", 0x24c1,\n \"Lcircumflexbelow\", 0x1e3c,\n \"Lcommaaccent\", 0x013b,\n \"Ldot\", 0x013f,\n \"Ldotaccent\", 0x013f,\n \"Ldotbelow\", 0x1e36,\n \"Ldotbelowmacron\", 0x1e38,\n \"Liwnarmenian\", 0x053c,\n \"Lj\", 0x01c8,\n \"Ljecyrillic\", 0x0409,\n \"Llinebelow\", 0x1e3a,\n \"Lmonospace\", 0xff2c,\n \"Lslash\", 0x0141,\n \"Lslashsmall\", 0xf6f9,\n \"Lsmall\", 0xf76c,\n \"M\", 0x004d,\n \"MBsquare\", 0x3386,\n \"Macron\", 0xf6d0,\n \"Macronsmall\", 0xf7af,\n \"Macute\", 0x1e3e,\n \"Mcircle\", 0x24c2,\n \"Mdotaccent\", 0x1e40,\n \"Mdotbelow\", 0x1e42,\n \"Menarmenian\", 0x0544,\n \"Mmonospace\", 0xff2d,\n \"Msmall\", 0xf76d,\n \"Mturned\", 0x019c,\n \"Mu\", 0x039c,\n \"N\", 0x004e,\n \"NJ\", 0x01ca,\n \"Nacute\", 0x0143,\n \"Ncaron\", 0x0147,\n \"Ncedilla\", 0x0145,\n \"Ncircle\", 0x24c3,\n \"Ncircumflexbelow\", 0x1e4a,\n \"Ncommaaccent\", 0x0145,\n \"Ndotaccent\", 0x1e44,\n \"Ndotbelow\", 0x1e46,\n \"Nhookleft\", 0x019d,\n \"Nineroman\", 0x2168,\n \"Nj\", 0x01cb,\n \"Njecyrillic\", 0x040a,\n \"Nlinebelow\", 0x1e48,\n \"Nmonospace\", 0xff2e,\n \"Nowarmenian\", 0x0546,\n \"Nsmall\", 0xf76e,\n \"Ntilde\", 0x00d1,\n \"Ntildesmall\", 0xf7f1,\n \"Nu\", 0x039d,\n \"O\", 0x004f,\n \"OE\", 0x0152,\n \"OEsmall\", 0xf6fa,\n \"Oacute\", 0x00d3,\n \"Oacutesmall\", 0xf7f3,\n \"Obarredcyrillic\", 0x04e8,\n \"Obarreddieresiscyrillic\", 0x04ea,\n \"Obreve\", 0x014e,\n \"Ocaron\", 0x01d1,\n \"Ocenteredtilde\", 0x019f,\n \"Ocircle\", 0x24c4,\n \"Ocircumflex\", 0x00d4,\n \"Ocircumflexacute\", 0x1ed0,\n \"Ocircumflexdotbelow\", 0x1ed8,\n \"Ocircumflexgrave\", 0x1ed2,\n \"Ocircumflexhookabove\", 0x1ed4,\n \"Ocircumflexsmall\", 0xf7f4,\n \"Ocircumflextilde\", 0x1ed6,\n \"Ocyrillic\", 0x041e,\n \"Odblacute\", 0x0150,\n \"Odblgrave\", 0x020c,\n \"Odieresis\", 0x00d6,\n \"Odieresiscyrillic\", 0x04e6,\n \"Odieresissmall\", 0xf7f6,\n \"Odotbelow\", 0x1ecc,\n \"Ogoneksmall\", 0xf6fb,\n \"Ograve\", 0x00d2,\n \"Ogravesmall\", 0xf7f2,\n \"Oharmenian\", 0x0555,\n \"Ohm\", 0x2126,\n \"Ohookabove\", 0x1ece,\n \"Ohorn\", 0x01a0,\n \"Ohornacute\", 0x1eda,\n \"Ohorndotbelow\", 0x1ee2,\n \"Ohorngrave\", 0x1edc,\n \"Ohornhookabove\", 0x1ede,\n \"Ohorntilde\", 0x1ee0,\n \"Ohungarumlaut\", 0x0150,\n \"Oi\", 0x01a2,\n \"Oinvertedbreve\", 0x020e,\n \"Omacron\", 0x014c,\n \"Omacronacute\", 0x1e52,\n \"Omacrongrave\", 0x1e50,\n \"Omega\", 0x2126,\n \"Omegacyrillic\", 0x0460,\n \"Omegagreek\", 0x03a9,\n \"Omegaroundcyrillic\", 0x047a,\n \"Omegatitlocyrillic\", 0x047c,\n \"Omegatonos\", 0x038f,\n \"Omicron\", 0x039f,\n \"Omicrontonos\", 0x038c,\n \"Omonospace\", 0xff2f,\n \"Oneroman\", 0x2160,\n \"Oogonek\", 0x01ea,\n \"Oogonekmacron\", 0x01ec,\n \"Oopen\", 0x0186,\n \"Oslash\", 0x00d8,\n \"Oslashacute\", 0x01fe,\n \"Oslashsmall\", 0xf7f8,\n \"Osmall\", 0xf76f,\n \"Ostrokeacute\", 0x01fe,\n \"Otcyrillic\", 0x047e,\n \"Otilde\", 0x00d5,\n \"Otildeacute\", 0x1e4c,\n \"Otildedieresis\", 0x1e4e,\n \"Otildesmall\", 0xf7f5,\n \"P\", 0x0050,\n \"Pacute\", 0x1e54,\n \"Pcircle\", 0x24c5,\n \"Pdotaccent\", 0x1e56,\n \"Pecyrillic\", 0x041f,\n \"Peharmenian\", 0x054a,\n \"Pemiddlehookcyrillic\", 0x04a6,\n \"Phi\", 0x03a6,\n \"Phook\", 0x01a4,\n \"Pi\", 0x03a0,\n \"Piwrarmenian\", 0x0553,\n \"Pmonospace\", 0xff30,\n \"Psi\", 0x03a8,\n \"Psicyrillic\", 0x0470,\n \"Psmall\", 0xf770,\n \"Q\", 0x0051,\n \"Qcircle\", 0x24c6,\n \"Qmonospace\", 0xff31,\n \"Qsmall\", 0xf771,\n \"R\", 0x0052,\n \"Raarmenian\", 0x054c,\n \"Racute\", 0x0154,\n \"Rcaron\", 0x0158,\n \"Rcedilla\", 0x0156,\n \"Rcircle\", 0x24c7,\n \"Rcommaaccent\", 0x0156,\n \"Rdblgrave\", 0x0210,\n \"Rdotaccent\", 0x1e58,\n \"Rdotbelow\", 0x1e5a,\n \"Rdotbelowmacron\", 0x1e5c,\n \"Reharmenian\", 0x0550,\n \"Rfraktur\", 0x211c,\n \"Rho\", 0x03a1,\n \"Ringsmall\", 0xf6fc,\n \"Rinvertedbreve\", 0x0212,\n \"Rlinebelow\", 0x1e5e,\n \"Rmonospace\", 0xff32,\n \"Rsmall\", 0xf772,\n \"Rsmallinverted\", 0x0281,\n \"Rsmallinvertedsuperior\", 0x02b6,\n \"S\", 0x0053,\n \"SF010000\", 0x250c,\n \"SF020000\", 0x2514,\n \"SF030000\", 0x2510,\n \"SF040000\", 0x2518,\n \"SF050000\", 0x253c,\n \"SF060000\", 0x252c,\n \"SF070000\", 0x2534,\n \"SF080000\", 0x251c,\n \"SF090000\", 0x2524,\n \"SF100000\", 0x2500,\n \"SF110000\", 0x2502,\n \"SF190000\", 0x2561,\n \"SF200000\", 0x2562,\n \"SF210000\", 0x2556,\n \"SF220000\", 0x2555,\n \"SF230000\", 0x2563,\n \"SF240000\", 0x2551,\n \"SF250000\", 0x2557,\n \"SF260000\", 0x255d,\n \"SF270000\", 0x255c,\n \"SF280000\", 0x255b,\n \"SF360000\", 0x255e,\n \"SF370000\", 0x255f,\n \"SF380000\", 0x255a,\n \"SF390000\", 0x2554,\n \"SF400000\", 0x2569,\n \"SF410000\", 0x2566,\n \"SF420000\", 0x2560,\n \"SF430000\", 0x2550,\n \"SF440000\", 0x256c,\n \"SF450000\", 0x2567,\n \"SF460000\", 0x2568,\n \"SF470000\", 0x2564,\n \"SF480000\", 0x2565,\n \"SF490000\", 0x2559,\n \"SF500000\", 0x2558,\n \"SF510000\", 0x2552,\n \"SF520000\", 0x2553,\n \"SF530000\", 0x256b,\n \"SF540000\", 0x256a,\n \"Sacute\", 0x015a,\n \"Sacutedotaccent\", 0x1e64,\n \"Sampigreek\", 0x03e0,\n \"Scaron\", 0x0160,\n \"Scarondotaccent\", 0x1e66,\n \"Scaronsmall\", 0xf6fd,\n \"Scedilla\", 0x015e,\n \"Schwa\", 0x018f,\n \"Schwacyrillic\", 0x04d8,\n \"Schwadieresiscyrillic\", 0x04da,\n \"Scircle\", 0x24c8,\n \"Scircumflex\", 0x015c,\n \"Scommaaccent\", 0x0218,\n \"Sdotaccent\", 0x1e60,\n \"Sdotbelow\", 0x1e62,\n \"Sdotbelowdotaccent\", 0x1e68,\n \"Seharmenian\", 0x054d,\n \"Sevenroman\", 0x2166,\n \"Shaarmenian\", 0x0547,\n \"Shacyrillic\", 0x0428,\n \"Shchacyrillic\", 0x0429,\n \"Sheicoptic\", 0x03e2,\n \"Shhacyrillic\", 0x04ba,\n \"Shimacoptic\", 0x03ec,\n \"Sigma\", 0x03a3,\n \"Sixroman\", 0x2165,\n \"Smonospace\", 0xff33,\n \"Softsigncyrillic\", 0x042c,\n \"Ssmall\", 0xf773,\n \"Stigmagreek\", 0x03da,\n \"T\", 0x0054,\n \"Tau\", 0x03a4,\n \"Tbar\", 0x0166,\n \"Tcaron\", 0x0164,\n \"Tcedilla\", 0x0162,\n \"Tcircle\", 0x24c9,\n \"Tcircumflexbelow\", 0x1e70,\n \"Tcommaaccent\", 0x0162,\n \"Tdotaccent\", 0x1e6a,\n \"Tdotbelow\", 0x1e6c,\n \"Tecyrillic\", 0x0422,\n \"Tedescendercyrillic\", 0x04ac,\n \"Tenroman\", 0x2169,\n \"Tetsecyrillic\", 0x04b4,\n \"Theta\", 0x0398,\n \"Thook\", 0x01ac,\n \"Thorn\", 0x00de,\n \"Thornsmall\", 0xf7fe,\n \"Threeroman\", 0x2162,\n \"Tildesmall\", 0xf6fe,\n \"Tiwnarmenian\", 0x054f,\n \"Tlinebelow\", 0x1e6e,\n \"Tmonospace\", 0xff34,\n \"Toarmenian\", 0x0539,\n \"Tonefive\", 0x01bc,\n \"Tonesix\", 0x0184,\n \"Tonetwo\", 0x01a7,\n \"Tretroflexhook\", 0x01ae,\n \"Tsecyrillic\", 0x0426,\n \"Tshecyrillic\", 0x040b,\n \"Tsmall\", 0xf774,\n \"Twelveroman\", 0x216b,\n \"Tworoman\", 0x2161,\n \"U\", 0x0055,\n \"Uacute\", 0x00da,\n \"Uacutesmall\", 0xf7fa,\n \"Ubreve\", 0x016c,\n \"Ucaron\", 0x01d3,\n \"Ucircle\", 0x24ca,\n \"Ucircumflex\", 0x00db,\n \"Ucircumflexbelow\", 0x1e76,\n \"Ucircumflexsmall\", 0xf7fb,\n \"Ucyrillic\", 0x0423,\n \"Udblacute\", 0x0170,\n \"Udblgrave\", 0x0214,\n \"Udieresis\", 0x00dc,\n \"Udieresisacute\", 0x01d7,\n \"Udieresisbelow\", 0x1e72,\n \"Udieresiscaron\", 0x01d9,\n \"Udieresiscyrillic\", 0x04f0,\n \"Udieresisgrave\", 0x01db,\n \"Udieresismacron\", 0x01d5,\n \"Udieresissmall\", 0xf7fc,\n \"Udotbelow\", 0x1ee4,\n \"Ugrave\", 0x00d9,\n \"Ugravesmall\", 0xf7f9,\n \"Uhookabove\", 0x1ee6,\n \"Uhorn\", 0x01af,\n \"Uhornacute\", 0x1ee8,\n \"Uhorndotbelow\", 0x1ef0,\n \"Uhorngrave\", 0x1eea,\n \"Uhornhookabove\", 0x1eec,\n \"Uhorntilde\", 0x1eee,\n \"Uhungarumlaut\", 0x0170,\n \"Uhungarumlautcyrillic\", 0x04f2,\n \"Uinvertedbreve\", 0x0216,\n \"Ukcyrillic\", 0x0478,\n \"Umacron\", 0x016a,\n \"Umacroncyrillic\", 0x04ee,\n \"Umacrondieresis\", 0x1e7a,\n \"Umonospace\", 0xff35,\n \"Uogonek\", 0x0172,\n \"Upsilon\", 0x03a5,\n \"Upsilon1\", 0x03d2,\n \"Upsilonacutehooksymbolgreek\", 0x03d3,\n \"Upsilonafrican\", 0x01b1,\n \"Upsilondieresis\", 0x03ab,\n \"Upsilondieresishooksymbolgreek\", 0x03d4,\n \"Upsilonhooksymbol\", 0x03d2,\n \"Upsilontonos\", 0x038e,\n \"Uring\", 0x016e,\n \"Ushortcyrillic\", 0x040e,\n \"Usmall\", 0xf775,\n \"Ustraightcyrillic\", 0x04ae,\n \"Ustraightstrokecyrillic\", 0x04b0,\n \"Utilde\", 0x0168,\n \"Utildeacute\", 0x1e78,\n \"Utildebelow\", 0x1e74,\n \"V\", 0x0056,\n \"Vcircle\", 0x24cb,\n \"Vdotbelow\", 0x1e7e,\n \"Vecyrillic\", 0x0412,\n \"Vewarmenian\", 0x054e,\n \"Vhook\", 0x01b2,\n \"Vmonospace\", 0xff36,\n \"Voarmenian\", 0x0548,\n \"Vsmall\", 0xf776,\n \"Vtilde\", 0x1e7c,\n \"W\", 0x0057,\n \"Wacute\", 0x1e82,\n \"Wcircle\", 0x24cc,\n \"Wcircumflex\", 0x0174,\n \"Wdieresis\", 0x1e84,\n \"Wdotaccent\", 0x1e86,\n \"Wdotbelow\", 0x1e88,\n \"Wgrave\", 0x1e80,\n \"Wmonospace\", 0xff37,\n \"Wsmall\", 0xf777,\n \"X\", 0x0058,\n \"Xcircle\", 0x24cd,\n \"Xdieresis\", 0x1e8c,\n \"Xdotaccent\", 0x1e8a,\n \"Xeharmenian\", 0x053d,\n \"Xi\", 0x039e,\n \"Xmonospace\", 0xff38,\n \"Xsmall\", 0xf778,\n \"Y\", 0x0059,\n \"Yacute\", 0x00dd,\n \"Yacutesmall\", 0xf7fd,\n \"Yatcyrillic\", 0x0462,\n \"Ycircle\", 0x24ce,\n \"Ycircumflex\", 0x0176,\n \"Ydieresis\", 0x0178,\n \"Ydieresissmall\", 0xf7ff,\n \"Ydotaccent\", 0x1e8e,\n \"Ydotbelow\", 0x1ef4,\n \"Yericyrillic\", 0x042b,\n \"Yerudieresiscyrillic\", 0x04f8,\n \"Ygrave\", 0x1ef2,\n \"Yhook\", 0x01b3,\n \"Yhookabove\", 0x1ef6,\n \"Yiarmenian\", 0x0545,\n \"Yicyrillic\", 0x0407,\n \"Yiwnarmenian\", 0x0552,\n \"Ymonospace\", 0xff39,\n \"Ysmall\", 0xf779,\n \"Ytilde\", 0x1ef8,\n \"Yusbigcyrillic\", 0x046a,\n \"Yusbigiotifiedcyrillic\", 0x046c,\n \"Yuslittlecyrillic\", 0x0466,\n \"Yuslittleiotifiedcyrillic\", 0x0468,\n \"Z\", 0x005a,\n \"Zaarmenian\", 0x0536,\n \"Zacute\", 0x0179,\n \"Zcaron\", 0x017d,\n \"Zcaronsmall\", 0xf6ff,\n \"Zcircle\", 0x24cf,\n \"Zcircumflex\", 0x1e90,\n \"Zdot\", 0x017b,\n \"Zdotaccent\", 0x017b,\n \"Zdotbelow\", 0x1e92,\n \"Zecyrillic\", 0x0417,\n \"Zedescendercyrillic\", 0x0498,\n \"Zedieresiscyrillic\", 0x04de,\n \"Zeta\", 0x0396,\n \"Zhearmenian\", 0x053a,\n \"Zhebrevecyrillic\", 0x04c1,\n \"Zhecyrillic\", 0x0416,\n \"Zhedescendercyrillic\", 0x0496,\n \"Zhedieresiscyrillic\", 0x04dc,\n \"Zlinebelow\", 0x1e94,\n \"Zmonospace\", 0xff3a,\n \"Zsmall\", 0xf77a,\n \"Zstroke\", 0x01b5,\n \"a\", 0x0061,\n \"aabengali\", 0x0986,\n \"aacute\", 0x00e1,\n \"aadeva\", 0x0906,\n \"aagujarati\", 0x0a86,\n \"aagurmukhi\", 0x0a06,\n \"aamatragurmukhi\", 0x0a3e,\n \"aarusquare\", 0x3303,\n \"aavowelsignbengali\", 0x09be,\n \"aavowelsigndeva\", 0x093e,\n \"aavowelsigngujarati\", 0x0abe,\n \"abbreviationmarkarmenian\", 0x055f,\n \"abbreviationsigndeva\", 0x0970,\n \"abengali\", 0x0985,\n \"abopomofo\", 0x311a,\n \"abreve\", 0x0103,\n \"abreveacute\", 0x1eaf,\n \"abrevecyrillic\", 0x04d1,\n \"abrevedotbelow\", 0x1eb7,\n \"abrevegrave\", 0x1eb1,\n \"abrevehookabove\", 0x1eb3,\n \"abrevetilde\", 0x1eb5,\n \"acaron\", 0x01ce,\n \"acircle\", 0x24d0,\n \"acircumflex\", 0x00e2,\n \"acircumflexacute\", 0x1ea5,\n \"acircumflexdotbelow\", 0x1ead,\n \"acircumflexgrave\", 0x1ea7,\n \"acircumflexhookabove\", 0x1ea9,\n \"acircumflextilde\", 0x1eab,\n \"acute\", 0x00b4,\n \"acutebelowcmb\", 0x0317,\n \"acutecmb\", 0x0301,\n \"acutecomb\", 0x0301,\n \"acutedeva\", 0x0954,\n \"acutelowmod\", 0x02cf,\n \"acutetonecmb\", 0x0341,\n \"acyrillic\", 0x0430,\n \"adblgrave\", 0x0201,\n \"addakgurmukhi\", 0x0a71,\n \"adeva\", 0x0905,\n \"adieresis\", 0x00e4,\n \"adieresiscyrillic\", 0x04d3,\n \"adieresismacron\", 0x01df,\n \"adotbelow\", 0x1ea1,\n \"adotmacron\", 0x01e1,\n \"ae\", 0x00e6,\n \"aeacute\", 0x01fd,\n \"aekorean\", 0x3150,\n \"aemacron\", 0x01e3,\n \"afii00208\", 0x2015,\n \"afii08941\", 0x20a4,\n \"afii10017\", 0x0410,\n \"afii10018\", 0x0411,\n \"afii10019\", 0x0412,\n \"afii10020\", 0x0413,\n \"afii10021\", 0x0414,\n \"afii10022\", 0x0415,\n \"afii10023\", 0x0401,\n \"afii10024\", 0x0416,\n \"afii10025\", 0x0417,\n \"afii10026\", 0x0418,\n \"afii10027\", 0x0419,\n \"afii10028\", 0x041a,\n \"afii10029\", 0x041b,\n \"afii10030\", 0x041c,\n \"afii10031\", 0x041d,\n \"afii10032\", 0x041e,\n \"afii10033\", 0x041f,\n \"afii10034\", 0x0420,\n \"afii10035\", 0x0421,\n \"afii10036\", 0x0422,\n \"afii10037\", 0x0423,\n \"afii10038\", 0x0424,\n \"afii10039\", 0x0425,\n \"afii10040\", 0x0426,\n \"afii10041\", 0x0427,\n \"afii10042\", 0x0428,\n \"afii10043\", 0x0429,\n \"afii10044\", 0x042a,\n \"afii10045\", 0x042b,\n \"afii10046\", 0x042c,\n \"afii10047\", 0x042d,\n \"afii10048\", 0x042e,\n \"afii10049\", 0x042f,\n \"afii10050\", 0x0490,\n \"afii10051\", 0x0402,\n \"afii10052\", 0x0403,\n \"afii10053\", 0x0404,\n \"afii10054\", 0x0405,\n \"afii10055\", 0x0406,\n \"afii10056\", 0x0407,\n \"afii10057\", 0x0408,\n \"afii10058\", 0x0409,\n \"afii10059\", 0x040a,\n \"afii10060\", 0x040b,\n \"afii10061\", 0x040c,\n \"afii10062\", 0x040e,\n \"afii10063\", 0xf6c4,\n \"afii10064\", 0xf6c5,\n \"afii10065\", 0x0430,\n \"afii10066\", 0x0431,\n \"afii10067\", 0x0432,\n \"afii10068\", 0x0433,\n \"afii10069\", 0x0434,\n \"afii10070\", 0x0435,\n \"afii10071\", 0x0451,\n \"afii10072\", 0x0436,\n \"afii10073\", 0x0437,\n \"afii10074\", 0x0438,\n \"afii10075\", 0x0439,\n \"afii10076\", 0x043a,\n \"afii10077\", 0x043b,\n \"afii10078\", 0x043c,\n \"afii10079\", 0x043d,\n \"afii10080\", 0x043e,\n \"afii10081\", 0x043f,\n \"afii10082\", 0x0440,\n \"afii10083\", 0x0441,\n \"afii10084\", 0x0442,\n \"afii10085\", 0x0443,\n \"afii10086\", 0x0444,\n \"afii10087\", 0x0445,\n \"afii10088\", 0x0446,\n \"afii10089\", 0x0447,\n \"afii10090\", 0x0448,\n \"afii10091\", 0x0449,\n \"afii10092\", 0x044a,\n \"afii10093\", 0x044b,\n \"afii10094\", 0x044c,\n \"afii10095\", 0x044d,\n \"afii10096\", 0x044e,\n \"afii10097\", 0x044f,\n \"afii10098\", 0x0491,\n \"afii10099\", 0x0452,\n \"afii10100\", 0x0453,\n \"afii10101\", 0x0454,\n \"afii10102\", 0x0455,\n \"afii10103\", 0x0456,\n \"afii10104\", 0x0457,\n \"afii10105\", 0x0458,\n \"afii10106\", 0x0459,\n \"afii10107\", 0x045a,\n \"afii10108\", 0x045b,\n \"afii10109\", 0x045c,\n \"afii10110\", 0x045e,\n \"afii10145\", 0x040f,\n \"afii10146\", 0x0462,\n \"afii10147\", 0x0472,\n \"afii10148\", 0x0474,\n \"afii10192\", 0xf6c6,\n \"afii10193\", 0x045f,\n \"afii10194\", 0x0463,\n \"afii10195\", 0x0473,\n \"afii10196\", 0x0475,\n \"afii10831\", 0xf6c7,\n \"afii10832\", 0xf6c8,\n \"afii10846\", 0x04d9,\n \"afii299\", 0x200e,\n \"afii300\", 0x200f,\n \"afii301\", 0x200d,\n \"afii57381\", 0x066a,\n \"afii57388\", 0x060c,\n \"afii57392\", 0x0660,\n \"afii57393\", 0x0661,\n \"afii57394\", 0x0662,\n \"afii57395\", 0x0663,\n \"afii57396\", 0x0664,\n \"afii57397\", 0x0665,\n \"afii57398\", 0x0666,\n \"afii57399\", 0x0667,\n \"afii57400\", 0x0668,\n \"afii57401\", 0x0669,\n \"afii57403\", 0x061b,\n \"afii57407\", 0x061f,\n \"afii57409\", 0x0621,\n \"afii57410\", 0x0622,\n \"afii57411\", 0x0623,\n \"afii57412\", 0x0624,\n \"afii57413\", 0x0625,\n \"afii57414\", 0x0626,\n \"afii57415\", 0x0627,\n \"afii57416\", 0x0628,\n \"afii57417\", 0x0629,\n \"afii57418\", 0x062a,\n \"afii57419\", 0x062b,\n \"afii57420\", 0x062c,\n \"afii57421\", 0x062d,\n \"afii57422\", 0x062e,\n \"afii57423\", 0x062f,\n \"afii57424\", 0x0630,\n \"afii57425\", 0x0631,\n \"afii57426\", 0x0632,\n \"afii57427\", 0x0633,\n \"afii57428\", 0x0634,\n \"afii57429\", 0x0635,\n \"afii57430\", 0x0636,\n \"afii57431\", 0x0637,\n \"afii57432\", 0x0638,\n \"afii57433\", 0x0639,\n \"afii57434\", 0x063a,\n \"afii57440\", 0x0640,\n \"afii57441\", 0x0641,\n \"afii57442\", 0x0642,\n \"afii57443\", 0x0643,\n \"afii57444\", 0x0644,\n \"afii57445\", 0x0645,\n \"afii57446\", 0x0646,\n \"afii57448\", 0x0648,\n \"afii57449\", 0x0649,\n \"afii57450\", 0x064a,\n \"afii57451\", 0x064b,\n \"afii57452\", 0x064c,\n \"afii57453\", 0x064d,\n \"afii57454\", 0x064e,\n \"afii57455\", 0x064f,\n \"afii57456\", 0x0650,\n \"afii57457\", 0x0651,\n \"afii57458\", 0x0652,\n \"afii57470\", 0x0647,\n \"afii57505\", 0x06a4,\n \"afii57506\", 0x067e,\n \"afii57507\", 0x0686,\n \"afii57508\", 0x0698,\n \"afii57509\", 0x06af,\n \"afii57511\", 0x0679,\n \"afii57512\", 0x0688,\n \"afii57513\", 0x0691,\n \"afii57514\", 0x06ba,\n \"afii57519\", 0x06d2,\n \"afii57534\", 0x06d5,\n \"afii57636\", 0x20aa,\n \"afii57645\", 0x05be,\n \"afii57658\", 0x05c3,\n \"afii57664\", 0x05d0,\n \"afii57665\", 0x05d1,\n \"afii57666\", 0x05d2,\n \"afii57667\", 0x05d3,\n \"afii57668\", 0x05d4,\n \"afii57669\", 0x05d5,\n \"afii57670\", 0x05d6,\n \"afii57671\", 0x05d7,\n \"afii57672\", 0x05d8,\n \"afii57673\", 0x05d9,\n \"afii57674\", 0x05da,\n \"afii57675\", 0x05db,\n \"afii57676\", 0x05dc,\n \"afii57677\", 0x05dd,\n \"afii57678\", 0x05de,\n \"afii57679\", 0x05df,\n \"afii57680\", 0x05e0,\n \"afii57681\", 0x05e1,\n \"afii57682\", 0x05e2,\n \"afii57683\", 0x05e3,\n \"afii57684\", 0x05e4,\n \"afii57685\", 0x05e5,\n \"afii57686\", 0x05e6,\n \"afii57687\", 0x05e7,\n \"afii57688\", 0x05e8,\n \"afii57689\", 0x05e9,\n \"afii57690\", 0x05ea,\n \"afii57694\", 0xfb2a,\n \"afii57695\", 0xfb2b,\n \"afii57700\", 0xfb4b,\n \"afii57705\", 0xfb1f,\n \"afii57716\", 0x05f0,\n \"afii57717\", 0x05f1,\n \"afii57718\", 0x05f2,\n \"afii57723\", 0xfb35,\n \"afii57793\", 0x05b4,\n \"afii57794\", 0x05b5,\n \"afii57795\", 0x05b6,\n \"afii57796\", 0x05bb,\n \"afii57797\", 0x05b8,\n \"afii57798\", 0x05b7,\n \"afii57799\", 0x05b0,\n \"afii57800\", 0x05b2,\n \"afii57801\", 0x05b1,\n \"afii57802\", 0x05b3,\n \"afii57803\", 0x05c2,\n \"afii57804\", 0x05c1,\n \"afii57806\", 0x05b9,\n \"afii57807\", 0x05bc,\n \"afii57839\", 0x05bd,\n \"afii57841\", 0x05bf,\n \"afii57842\", 0x05c0,\n \"afii57929\", 0x02bc,\n \"afii61248\", 0x2105,\n \"afii61289\", 0x2113,\n \"afii61352\", 0x2116,\n \"afii61573\", 0x202c,\n \"afii61574\", 0x202d,\n \"afii61575\", 0x202e,\n \"afii61664\", 0x200c,\n \"afii63167\", 0x066d,\n \"afii64937\", 0x02bd,\n \"agrave\", 0x00e0,\n \"agujarati\", 0x0a85,\n \"agurmukhi\", 0x0a05,\n \"ahiragana\", 0x3042,\n \"ahookabove\", 0x1ea3,\n \"aibengali\", 0x0990,\n \"aibopomofo\", 0x311e,\n \"aideva\", 0x0910,\n \"aiecyrillic\", 0x04d5,\n \"aigujarati\", 0x0a90,\n \"aigurmukhi\", 0x0a10,\n \"aimatragurmukhi\", 0x0a48,\n \"ainarabic\", 0x0639,\n \"ainfinalarabic\", 0xfeca,\n \"aininitialarabic\", 0xfecb,\n \"ainmedialarabic\", 0xfecc,\n \"ainvertedbreve\", 0x0203,\n \"aivowelsignbengali\", 0x09c8,\n \"aivowelsigndeva\", 0x0948,\n \"aivowelsigngujarati\", 0x0ac8,\n \"akatakana\", 0x30a2,\n \"akatakanahalfwidth\", 0xff71,\n \"akorean\", 0x314f,\n \"alef\", 0x05d0,\n \"alefarabic\", 0x0627,\n \"alefdageshhebrew\", 0xfb30,\n \"aleffinalarabic\", 0xfe8e,\n \"alefhamzaabovearabic\", 0x0623,\n \"alefhamzaabovefinalarabic\", 0xfe84,\n \"alefhamzabelowarabic\", 0x0625,\n \"alefhamzabelowfinalarabic\", 0xfe88,\n \"alefhebrew\", 0x05d0,\n \"aleflamedhebrew\", 0xfb4f,\n \"alefmaddaabovearabic\", 0x0622,\n \"alefmaddaabovefinalarabic\", 0xfe82,\n \"alefmaksuraarabic\", 0x0649,\n \"alefmaksurafinalarabic\", 0xfef0,\n \"alefmaksurainitialarabic\", 0xfef3,\n \"alefmaksuramedialarabic\", 0xfef4,\n \"alefpatahhebrew\", 0xfb2e,\n \"alefqamatshebrew\", 0xfb2f,\n \"aleph\", 0x2135,\n \"allequal\", 0x224c,\n \"alpha\", 0x03b1,\n \"alphatonos\", 0x03ac,\n \"amacron\", 0x0101,\n \"amonospace\", 0xff41,\n \"ampersand\", 0x0026,\n \"ampersandmonospace\", 0xff06,\n \"ampersandsmall\", 0xf726,\n \"amsquare\", 0x33c2,\n \"anbopomofo\", 0x3122,\n \"angbopomofo\", 0x3124,\n \"angbracketleft\", 0x3008, // Glyph is missing from Adobe's original list.\n \"angbracketright\", 0x3009, // Glyph is missing from Adobe's original list.\n \"angkhankhuthai\", 0x0e5a,\n \"angle\", 0x2220,\n \"anglebracketleft\", 0x3008,\n \"anglebracketleftvertical\", 0xfe3f,\n \"anglebracketright\", 0x3009,\n \"anglebracketrightvertical\", 0xfe40,\n \"angleleft\", 0x2329,\n \"angleright\", 0x232a,\n \"angstrom\", 0x212b,\n \"anoteleia\", 0x0387,\n \"anudattadeva\", 0x0952,\n \"anusvarabengali\", 0x0982,\n \"anusvaradeva\", 0x0902,\n \"anusvaragujarati\", 0x0a82,\n \"aogonek\", 0x0105,\n \"apaatosquare\", 0x3300,\n \"aparen\", 0x249c,\n \"apostrophearmenian\", 0x055a,\n \"apostrophemod\", 0x02bc,\n \"apple\", 0xf8ff,\n \"approaches\", 0x2250,\n \"approxequal\", 0x2248,\n \"approxequalorimage\", 0x2252,\n \"approximatelyequal\", 0x2245,\n \"araeaekorean\", 0x318e,\n \"araeakorean\", 0x318d,\n \"arc\", 0x2312,\n \"arighthalfring\", 0x1e9a,\n \"aring\", 0x00e5,\n \"aringacute\", 0x01fb,\n \"aringbelow\", 0x1e01,\n \"arrowboth\", 0x2194,\n \"arrowdashdown\", 0x21e3,\n \"arrowdashleft\", 0x21e0,\n \"arrowdashright\", 0x21e2,\n \"arrowdashup\", 0x21e1,\n \"arrowdblboth\", 0x21d4,\n \"arrowdbldown\", 0x21d3,\n \"arrowdblleft\", 0x21d0,\n \"arrowdblright\", 0x21d2,\n \"arrowdblup\", 0x21d1,\n \"arrowdown\", 0x2193,\n \"arrowdownleft\", 0x2199,\n \"arrowdownright\", 0x2198,\n \"arrowdownwhite\", 0x21e9,\n \"arrowheaddownmod\", 0x02c5,\n \"arrowheadleftmod\", 0x02c2,\n \"arrowheadrightmod\", 0x02c3,\n \"arrowheadupmod\", 0x02c4,\n \"arrowhorizex\", 0xf8e7,\n \"arrowleft\", 0x2190,\n \"arrowleftdbl\", 0x21d0,\n \"arrowleftdblstroke\", 0x21cd,\n \"arrowleftoverright\", 0x21c6,\n \"arrowleftwhite\", 0x21e6,\n \"arrowright\", 0x2192,\n \"arrowrightdblstroke\", 0x21cf,\n \"arrowrightheavy\", 0x279e,\n \"arrowrightoverleft\", 0x21c4,\n \"arrowrightwhite\", 0x21e8,\n \"arrowtableft\", 0x21e4,\n \"arrowtabright\", 0x21e5,\n \"arrowup\", 0x2191,\n \"arrowupdn\", 0x2195,\n \"arrowupdnbse\", 0x21a8,\n \"arrowupdownbase\", 0x21a8,\n \"arrowupleft\", 0x2196,\n \"arrowupleftofdown\", 0x21c5,\n \"arrowupright\", 0x2197,\n \"arrowupwhite\", 0x21e7,\n \"arrowvertex\", 0xf8e6,\n \"asciicircum\", 0x005e,\n \"asciicircummonospace\", 0xff3e,\n \"asciitilde\", 0x007e,\n \"asciitildemonospace\", 0xff5e,\n \"ascript\", 0x0251,\n \"ascriptturned\", 0x0252,\n \"asmallhiragana\", 0x3041,\n \"asmallkatakana\", 0x30a1,\n \"asmallkatakanahalfwidth\", 0xff67,\n \"asterisk\", 0x002a,\n \"asteriskaltonearabic\", 0x066d,\n \"asteriskarabic\", 0x066d,\n \"asteriskmath\", 0x2217,\n \"asteriskmonospace\", 0xff0a,\n \"asterisksmall\", 0xfe61,\n \"asterism\", 0x2042,\n \"asuperior\", 0xf6e9,\n \"asymptoticallyequal\", 0x2243,\n \"at\", 0x0040,\n \"atilde\", 0x00e3,\n \"atmonospace\", 0xff20,\n \"atsmall\", 0xfe6b,\n \"aturned\", 0x0250,\n \"aubengali\", 0x0994,\n \"aubopomofo\", 0x3120,\n \"audeva\", 0x0914,\n \"augujarati\", 0x0a94,\n \"augurmukhi\", 0x0a14,\n \"aulengthmarkbengali\", 0x09d7,\n \"aumatragurmukhi\", 0x0a4c,\n \"auvowelsignbengali\", 0x09cc,\n \"auvowelsigndeva\", 0x094c,\n \"auvowelsigngujarati\", 0x0acc,\n \"avagrahadeva\", 0x093d,\n \"aybarmenian\", 0x0561,\n \"ayin\", 0x05e2,\n \"ayinaltonehebrew\", 0xfb20,\n \"ayinhebrew\", 0x05e2,\n \"b\", 0x0062,\n \"babengali\", 0x09ac,\n \"backslash\", 0x005c,\n \"backslashmonospace\", 0xff3c,\n \"badeva\", 0x092c,\n \"bagujarati\", 0x0aac,\n \"bagurmukhi\", 0x0a2c,\n \"bahiragana\", 0x3070,\n \"bahtthai\", 0x0e3f,\n \"bakatakana\", 0x30d0,\n \"bar\", 0x007c,\n \"barmonospace\", 0xff5c,\n \"bbopomofo\", 0x3105,\n \"bcircle\", 0x24d1,\n \"bdotaccent\", 0x1e03,\n \"bdotbelow\", 0x1e05,\n \"beamedsixteenthnotes\", 0x266c,\n \"because\", 0x2235,\n \"becyrillic\", 0x0431,\n \"beharabic\", 0x0628,\n \"behfinalarabic\", 0xfe90,\n \"behinitialarabic\", 0xfe91,\n \"behiragana\", 0x3079,\n \"behmedialarabic\", 0xfe92,\n \"behmeeminitialarabic\", 0xfc9f,\n \"behmeemisolatedarabic\", 0xfc08,\n \"behnoonfinalarabic\", 0xfc6d,\n \"bekatakana\", 0x30d9,\n \"benarmenian\", 0x0562,\n \"bet\", 0x05d1,\n \"beta\", 0x03b2,\n \"betasymbolgreek\", 0x03d0,\n \"betdagesh\", 0xfb31,\n \"betdageshhebrew\", 0xfb31,\n \"bethebrew\", 0x05d1,\n \"betrafehebrew\", 0xfb4c,\n \"bhabengali\", 0x09ad,\n \"bhadeva\", 0x092d,\n \"bhagujarati\", 0x0aad,\n \"bhagurmukhi\", 0x0a2d,\n \"bhook\", 0x0253,\n \"bihiragana\", 0x3073,\n \"bikatakana\", 0x30d3,\n \"bilabialclick\", 0x0298,\n \"bindigurmukhi\", 0x0a02,\n \"birusquare\", 0x3331,\n \"blackcircle\", 0x25cf,\n \"blackdiamond\", 0x25c6,\n \"blackdownpointingtriangle\", 0x25bc,\n \"blackleftpointingpointer\", 0x25c4,\n \"blackleftpointingtriangle\", 0x25c0,\n \"blacklenticularbracketleft\", 0x3010,\n \"blacklenticularbracketleftvertical\", 0xfe3b,\n \"blacklenticularbracketright\", 0x3011,\n \"blacklenticularbracketrightvertical\", 0xfe3c,\n \"blacklowerlefttriangle\", 0x25e3,\n \"blacklowerrighttriangle\", 0x25e2,\n \"blackrectangle\", 0x25ac,\n \"blackrightpointingpointer\", 0x25ba,\n \"blackrightpointingtriangle\", 0x25b6,\n \"blacksmallsquare\", 0x25aa,\n \"blacksmilingface\", 0x263b,\n \"blacksquare\", 0x25a0,\n \"blackstar\", 0x2605,\n \"blackupperlefttriangle\", 0x25e4,\n \"blackupperrighttriangle\", 0x25e5,\n \"blackuppointingsmalltriangle\", 0x25b4,\n \"blackuppointingtriangle\", 0x25b2,\n \"blank\", 0x2423,\n \"blinebelow\", 0x1e07,\n \"block\", 0x2588,\n \"bmonospace\", 0xff42,\n \"bobaimaithai\", 0x0e1a,\n \"bohiragana\", 0x307c,\n \"bokatakana\", 0x30dc,\n \"bparen\", 0x249d,\n \"bqsquare\", 0x33c3,\n \"braceex\", 0xf8f4,\n \"braceleft\", 0x007b,\n \"braceleftbt\", 0xf8f3,\n \"braceleftmid\", 0xf8f2,\n \"braceleftmonospace\", 0xff5b,\n \"braceleftsmall\", 0xfe5b,\n \"bracelefttp\", 0xf8f1,\n \"braceleftvertical\", 0xfe37,\n \"braceright\", 0x007d,\n \"bracerightbt\", 0xf8fe,\n \"bracerightmid\", 0xf8fd,\n \"bracerightmonospace\", 0xff5d,\n \"bracerightsmall\", 0xfe5c,\n \"bracerighttp\", 0xf8fc,\n \"bracerightvertical\", 0xfe38,\n \"bracketleft\", 0x005b,\n \"bracketleftbt\", 0xf8f0,\n \"bracketleftex\", 0xf8ef,\n \"bracketleftmonospace\", 0xff3b,\n \"bracketlefttp\", 0xf8ee,\n \"bracketright\", 0x005d,\n \"bracketrightbt\", 0xf8fb,\n \"bracketrightex\", 0xf8fa,\n \"bracketrightmonospace\", 0xff3d,\n \"bracketrighttp\", 0xf8f9,\n \"breve\", 0x02d8,\n \"brevebelowcmb\", 0x032e,\n \"brevecmb\", 0x0306,\n \"breveinvertedbelowcmb\", 0x032f,\n \"breveinvertedcmb\", 0x0311,\n \"breveinverteddoublecmb\", 0x0361,\n \"bridgebelowcmb\", 0x032a,\n \"bridgeinvertedbelowcmb\", 0x033a,\n \"brokenbar\", 0x00a6,\n \"bstroke\", 0x0180,\n \"bsuperior\", 0xf6ea,\n \"btopbar\", 0x0183,\n \"buhiragana\", 0x3076,\n \"bukatakana\", 0x30d6,\n \"bullet\", 0x2022,\n \"bulletinverse\", 0x25d8,\n \"bulletoperator\", 0x2219,\n \"bullseye\", 0x25ce,\n \"c\", 0x0063,\n \"caarmenian\", 0x056e,\n \"cabengali\", 0x099a,\n \"cacute\", 0x0107,\n \"cadeva\", 0x091a,\n \"cagujarati\", 0x0a9a,\n \"cagurmukhi\", 0x0a1a,\n \"calsquare\", 0x3388,\n \"candrabindubengali\", 0x0981,\n \"candrabinducmb\", 0x0310,\n \"candrabindudeva\", 0x0901,\n \"candrabindugujarati\", 0x0a81,\n \"capslock\", 0x21ea,\n \"careof\", 0x2105,\n \"caron\", 0x02c7,\n \"caronbelowcmb\", 0x032c,\n \"caroncmb\", 0x030c,\n \"carriagereturn\", 0x21b5,\n \"cbopomofo\", 0x3118,\n \"ccaron\", 0x010d,\n \"ccedilla\", 0x00e7,\n \"ccedillaacute\", 0x1e09,\n \"ccircle\", 0x24d2,\n \"ccircumflex\", 0x0109,\n \"ccurl\", 0x0255,\n \"cdot\", 0x010b,\n \"cdotaccent\", 0x010b,\n \"cdsquare\", 0x33c5,\n \"cedilla\", 0x00b8,\n \"cedillacmb\", 0x0327,\n \"cent\", 0x00a2,\n \"centigrade\", 0x2103,\n \"centinferior\", 0xf6df,\n \"centmonospace\", 0xffe0,\n \"centoldstyle\", 0xf7a2,\n \"centsuperior\", 0xf6e0,\n \"chaarmenian\", 0x0579,\n \"chabengali\", 0x099b,\n \"chadeva\", 0x091b,\n \"chagujarati\", 0x0a9b,\n \"chagurmukhi\", 0x0a1b,\n \"chbopomofo\", 0x3114,\n \"cheabkhasiancyrillic\", 0x04bd,\n \"checkmark\", 0x2713,\n \"checyrillic\", 0x0447,\n \"chedescenderabkhasiancyrillic\", 0x04bf,\n \"chedescendercyrillic\", 0x04b7,\n \"chedieresiscyrillic\", 0x04f5,\n \"cheharmenian\", 0x0573,\n \"chekhakassiancyrillic\", 0x04cc,\n \"cheverticalstrokecyrillic\", 0x04b9,\n \"chi\", 0x03c7,\n \"chieuchacirclekorean\", 0x3277,\n \"chieuchaparenkorean\", 0x3217,\n \"chieuchcirclekorean\", 0x3269,\n \"chieuchkorean\", 0x314a,\n \"chieuchparenkorean\", 0x3209,\n \"chochangthai\", 0x0e0a,\n \"chochanthai\", 0x0e08,\n \"chochingthai\", 0x0e09,\n \"chochoethai\", 0x0e0c,\n \"chook\", 0x0188,\n \"cieucacirclekorean\", 0x3276,\n \"cieucaparenkorean\", 0x3216,\n \"cieuccirclekorean\", 0x3268,\n \"cieuckorean\", 0x3148,\n \"cieucparenkorean\", 0x3208,\n \"cieucuparenkorean\", 0x321c,\n \"circle\", 0x25cb,\n \"circlecopyrt\", 0x00a9, // Glyph is missing from Adobe's original list.\n \"circlemultiply\", 0x2297,\n \"circleot\", 0x2299,\n \"circleplus\", 0x2295,\n \"circlepostalmark\", 0x3036,\n \"circlewithlefthalfblack\", 0x25d0,\n \"circlewithrighthalfblack\", 0x25d1,\n \"circumflex\", 0x02c6,\n \"circumflexbelowcmb\", 0x032d,\n \"circumflexcmb\", 0x0302,\n \"clear\", 0x2327,\n \"clickalveolar\", 0x01c2,\n \"clickdental\", 0x01c0,\n \"clicklateral\", 0x01c1,\n \"clickretroflex\", 0x01c3,\n \"club\", 0x2663,\n \"clubsuitblack\", 0x2663,\n \"clubsuitwhite\", 0x2667,\n \"cmcubedsquare\", 0x33a4,\n \"cmonospace\", 0xff43,\n \"cmsquaredsquare\", 0x33a0,\n \"coarmenian\", 0x0581,\n \"colon\", 0x003a,\n \"colonmonetary\", 0x20a1,\n \"colonmonospace\", 0xff1a,\n \"colonsign\", 0x20a1,\n \"colonsmall\", 0xfe55,\n \"colontriangularhalfmod\", 0x02d1,\n \"colontriangularmod\", 0x02d0,\n \"comma\", 0x002c,\n \"commaabovecmb\", 0x0313,\n \"commaaboverightcmb\", 0x0315,\n \"commaaccent\", 0xf6c3,\n \"commaarabic\", 0x060c,\n \"commaarmenian\", 0x055d,\n \"commainferior\", 0xf6e1,\n \"commamonospace\", 0xff0c,\n \"commareversedabovecmb\", 0x0314,\n \"commareversedmod\", 0x02bd,\n \"commasmall\", 0xfe50,\n \"commasuperior\", 0xf6e2,\n \"commaturnedabovecmb\", 0x0312,\n \"commaturnedmod\", 0x02bb,\n \"compass\", 0x263c,\n \"congruent\", 0x2245,\n \"contourintegral\", 0x222e,\n \"control\", 0x2303,\n \"controlACK\", 0x0006,\n \"controlBEL\", 0x0007,\n \"controlBS\", 0x0008,\n \"controlCAN\", 0x0018,\n \"controlCR\", 0x000d,\n \"controlDC1\", 0x0011,\n \"controlDC2\", 0x0012,\n \"controlDC3\", 0x0013,\n \"controlDC4\", 0x0014,\n \"controlDEL\", 0x007f,\n \"controlDLE\", 0x0010,\n \"controlEM\", 0x0019,\n \"controlENQ\", 0x0005,\n \"controlEOT\", 0x0004,\n \"controlESC\", 0x001b,\n \"controlETB\", 0x0017,\n \"controlETX\", 0x0003,\n \"controlFF\", 0x000c,\n \"controlFS\", 0x001c,\n \"controlGS\", 0x001d,\n \"controlHT\", 0x0009,\n \"controlLF\", 0x000a,\n \"controlNAK\", 0x0015,\n \"controlNULL\", 0x0000, // Glyph is missing from Adobe's original list.\n \"controlRS\", 0x001e,\n \"controlSI\", 0x000f,\n \"controlSO\", 0x000e,\n \"controlSOT\", 0x0002,\n \"controlSTX\", 0x0001,\n \"controlSUB\", 0x001a,\n \"controlSYN\", 0x0016,\n \"controlUS\", 0x001f,\n \"controlVT\", 0x000b,\n \"copyright\", 0x00a9,\n \"copyrightsans\", 0xf8e9,\n \"copyrightserif\", 0xf6d9,\n \"cornerbracketleft\", 0x300c,\n \"cornerbracketlefthalfwidth\", 0xff62,\n \"cornerbracketleftvertical\", 0xfe41,\n \"cornerbracketright\", 0x300d,\n \"cornerbracketrighthalfwidth\", 0xff63,\n \"cornerbracketrightvertical\", 0xfe42,\n \"corporationsquare\", 0x337f,\n \"cosquare\", 0x33c7,\n \"coverkgsquare\", 0x33c6,\n \"cparen\", 0x249e,\n \"cruzeiro\", 0x20a2,\n \"cstretched\", 0x0297,\n \"curlyand\", 0x22cf,\n \"curlyor\", 0x22ce,\n \"currency\", 0x00a4,\n \"cyrBreve\", 0xf6d1,\n \"cyrFlex\", 0xf6d2,\n \"cyrbreve\", 0xf6d4,\n \"cyrflex\", 0xf6d5,\n \"d\", 0x0064,\n \"daarmenian\", 0x0564,\n \"dabengali\", 0x09a6,\n \"dadarabic\", 0x0636,\n \"dadeva\", 0x0926,\n \"dadfinalarabic\", 0xfebe,\n \"dadinitialarabic\", 0xfebf,\n \"dadmedialarabic\", 0xfec0,\n \"dagesh\", 0x05bc,\n \"dageshhebrew\", 0x05bc,\n \"dagger\", 0x2020,\n \"daggerdbl\", 0x2021,\n \"dagujarati\", 0x0aa6,\n \"dagurmukhi\", 0x0a26,\n \"dahiragana\", 0x3060,\n \"dakatakana\", 0x30c0,\n \"dalarabic\", 0x062f,\n \"dalet\", 0x05d3,\n \"daletdagesh\", 0xfb33,\n \"daletdageshhebrew\", 0xfb33,\n \"dalethebrew\", 0x05d3,\n \"dalfinalarabic\", 0xfeaa,\n \"dammaarabic\", 0x064f,\n \"dammalowarabic\", 0x064f,\n \"dammatanaltonearabic\", 0x064c,\n \"dammatanarabic\", 0x064c,\n \"danda\", 0x0964,\n \"dargahebrew\", 0x05a7,\n \"dargalefthebrew\", 0x05a7,\n \"dasiapneumatacyrilliccmb\", 0x0485,\n \"dblGrave\", 0xf6d3,\n \"dblanglebracketleft\", 0x300a,\n \"dblanglebracketleftvertical\", 0xfe3d,\n \"dblanglebracketright\", 0x300b,\n \"dblanglebracketrightvertical\", 0xfe3e,\n \"dblarchinvertedbelowcmb\", 0x032b,\n \"dblarrowleft\", 0x21d4,\n \"dblarrowright\", 0x21d2,\n \"dbldanda\", 0x0965,\n \"dblgrave\", 0xf6d6,\n \"dblgravecmb\", 0x030f,\n \"dblintegral\", 0x222c,\n \"dbllowline\", 0x2017,\n \"dbllowlinecmb\", 0x0333,\n \"dbloverlinecmb\", 0x033f,\n \"dblprimemod\", 0x02ba,\n \"dblverticalbar\", 0x2016,\n \"dblverticallineabovecmb\", 0x030e,\n \"dbopomofo\", 0x3109,\n \"dbsquare\", 0x33c8,\n \"dcaron\", 0x010f,\n \"dcedilla\", 0x1e11,\n \"dcircle\", 0x24d3,\n \"dcircumflexbelow\", 0x1e13,\n \"dcroat\", 0x0111,\n \"ddabengali\", 0x09a1,\n \"ddadeva\", 0x0921,\n \"ddagujarati\", 0x0aa1,\n \"ddagurmukhi\", 0x0a21,\n \"ddalarabic\", 0x0688,\n \"ddalfinalarabic\", 0xfb89,\n \"dddhadeva\", 0x095c,\n \"ddhabengali\", 0x09a2,\n \"ddhadeva\", 0x0922,\n \"ddhagujarati\", 0x0aa2,\n \"ddhagurmukhi\", 0x0a22,\n \"ddotaccent\", 0x1e0b,\n \"ddotbelow\", 0x1e0d,\n \"decimalseparatorarabic\", 0x066b,\n \"decimalseparatorpersian\", 0x066b,\n \"decyrillic\", 0x0434,\n \"degree\", 0x00b0,\n \"dehihebrew\", 0x05ad,\n \"dehiragana\", 0x3067,\n \"deicoptic\", 0x03ef,\n \"dekatakana\", 0x30c7,\n \"deleteleft\", 0x232b,\n \"deleteright\", 0x2326,\n \"delta\", 0x03b4,\n \"deltaturned\", 0x018d,\n \"denominatorminusonenumeratorbengali\", 0x09f8,\n \"dezh\", 0x02a4,\n \"dhabengali\", 0x09a7,\n \"dhadeva\", 0x0927,\n \"dhagujarati\", 0x0aa7,\n \"dhagurmukhi\", 0x0a27,\n \"dhook\", 0x0257,\n \"dialytikatonos\", 0x0385,\n \"dialytikatonoscmb\", 0x0344,\n \"diamond\", 0x2666,\n \"diamondsuitwhite\", 0x2662,\n \"dieresis\", 0x00a8,\n \"dieresisacute\", 0xf6d7,\n \"dieresisbelowcmb\", 0x0324,\n \"dieresiscmb\", 0x0308,\n \"dieresisgrave\", 0xf6d8,\n \"dieresistonos\", 0x0385,\n \"dihiragana\", 0x3062,\n \"dikatakana\", 0x30c2,\n \"dittomark\", 0x3003,\n \"divide\", 0x00f7,\n \"divides\", 0x2223,\n \"divisionslash\", 0x2215,\n \"djecyrillic\", 0x0452,\n \"dkshade\", 0x2593,\n \"dlinebelow\", 0x1e0f,\n \"dlsquare\", 0x3397,\n \"dmacron\", 0x0111,\n \"dmonospace\", 0xff44,\n \"dnblock\", 0x2584,\n \"dochadathai\", 0x0e0e,\n \"dodekthai\", 0x0e14,\n \"dohiragana\", 0x3069,\n \"dokatakana\", 0x30c9,\n \"dollar\", 0x0024,\n \"dollarinferior\", 0xf6e3,\n \"dollarmonospace\", 0xff04,\n \"dollaroldstyle\", 0xf724,\n \"dollarsmall\", 0xfe69,\n \"dollarsuperior\", 0xf6e4,\n \"dong\", 0x20ab,\n \"dorusquare\", 0x3326,\n \"dotaccent\", 0x02d9,\n \"dotaccentcmb\", 0x0307,\n \"dotbelowcmb\", 0x0323,\n \"dotbelowcomb\", 0x0323,\n \"dotkatakana\", 0x30fb,\n \"dotlessi\", 0x0131,\n \"dotlessj\", 0xf6be,\n \"dotlessjstrokehook\", 0x0284,\n \"dotmath\", 0x22c5,\n \"dottedcircle\", 0x25cc,\n \"doubleyodpatah\", 0xfb1f,\n \"doubleyodpatahhebrew\", 0xfb1f,\n \"downtackbelowcmb\", 0x031e,\n \"downtackmod\", 0x02d5,\n \"dparen\", 0x249f,\n \"dsuperior\", 0xf6eb,\n \"dtail\", 0x0256,\n \"dtopbar\", 0x018c,\n \"duhiragana\", 0x3065,\n \"dukatakana\", 0x30c5,\n \"dz\", 0x01f3,\n \"dzaltone\", 0x02a3,\n \"dzcaron\", 0x01c6,\n \"dzcurl\", 0x02a5,\n \"dzeabkhasiancyrillic\", 0x04e1,\n \"dzecyrillic\", 0x0455,\n \"dzhecyrillic\", 0x045f,\n \"e\", 0x0065,\n \"eacute\", 0x00e9,\n \"earth\", 0x2641,\n \"ebengali\", 0x098f,\n \"ebopomofo\", 0x311c,\n \"ebreve\", 0x0115,\n \"ecandradeva\", 0x090d,\n \"ecandragujarati\", 0x0a8d,\n \"ecandravowelsigndeva\", 0x0945,\n \"ecandravowelsigngujarati\", 0x0ac5,\n \"ecaron\", 0x011b,\n \"ecedillabreve\", 0x1e1d,\n \"echarmenian\", 0x0565,\n \"echyiwnarmenian\", 0x0587,\n \"ecircle\", 0x24d4,\n \"ecircumflex\", 0x00ea,\n \"ecircumflexacute\", 0x1ebf,\n \"ecircumflexbelow\", 0x1e19,\n \"ecircumflexdotbelow\", 0x1ec7,\n \"ecircumflexgrave\", 0x1ec1,\n \"ecircumflexhookabove\", 0x1ec3,\n \"ecircumflextilde\", 0x1ec5,\n \"ecyrillic\", 0x0454,\n \"edblgrave\", 0x0205,\n \"edeva\", 0x090f,\n \"edieresis\", 0x00eb,\n \"edot\", 0x0117,\n \"edotaccent\", 0x0117,\n \"edotbelow\", 0x1eb9,\n \"eegurmukhi\", 0x0a0f,\n \"eematragurmukhi\", 0x0a47,\n \"efcyrillic\", 0x0444,\n \"egrave\", 0x00e8,\n \"egujarati\", 0x0a8f,\n \"eharmenian\", 0x0567,\n \"ehbopomofo\", 0x311d,\n \"ehiragana\", 0x3048,\n \"ehookabove\", 0x1ebb,\n \"eibopomofo\", 0x311f,\n \"eight\", 0x0038,\n \"eightarabic\", 0x0668,\n \"eightbengali\", 0x09ee,\n \"eightcircle\", 0x2467,\n \"eightcircleinversesansserif\", 0x2791,\n \"eightdeva\", 0x096e,\n \"eighteencircle\", 0x2471,\n \"eighteenparen\", 0x2485,\n \"eighteenperiod\", 0x2499,\n \"eightgujarati\", 0x0aee,\n \"eightgurmukhi\", 0x0a6e,\n \"eighthackarabic\", 0x0668,\n \"eighthangzhou\", 0x3028,\n \"eighthnotebeamed\", 0x266b,\n \"eightideographicparen\", 0x3227,\n \"eightinferior\", 0x2088,\n \"eightmonospace\", 0xff18,\n \"eightoldstyle\", 0xf738,\n \"eightparen\", 0x247b,\n \"eightperiod\", 0x248f,\n \"eightpersian\", 0x06f8,\n \"eightroman\", 0x2177,\n \"eightsuperior\", 0x2078,\n \"eightthai\", 0x0e58,\n \"einvertedbreve\", 0x0207,\n \"eiotifiedcyrillic\", 0x0465,\n \"ekatakana\", 0x30a8,\n \"ekatakanahalfwidth\", 0xff74,\n \"ekonkargurmukhi\", 0x0a74,\n \"ekorean\", 0x3154,\n \"elcyrillic\", 0x043b,\n \"element\", 0x2208,\n \"elevencircle\", 0x246a,\n \"elevenparen\", 0x247e,\n \"elevenperiod\", 0x2492,\n \"elevenroman\", 0x217a,\n \"ellipsis\", 0x2026,\n \"ellipsisvertical\", 0x22ee,\n \"emacron\", 0x0113,\n \"emacronacute\", 0x1e17,\n \"emacrongrave\", 0x1e15,\n \"emcyrillic\", 0x043c,\n \"emdash\", 0x2014,\n \"emdashvertical\", 0xfe31,\n \"emonospace\", 0xff45,\n \"emphasismarkarmenian\", 0x055b,\n \"emptyset\", 0x2205,\n \"enbopomofo\", 0x3123,\n \"encyrillic\", 0x043d,\n \"endash\", 0x2013,\n \"endashvertical\", 0xfe32,\n \"endescendercyrillic\", 0x04a3,\n \"eng\", 0x014b,\n \"engbopomofo\", 0x3125,\n \"enghecyrillic\", 0x04a5,\n \"enhookcyrillic\", 0x04c8,\n \"enspace\", 0x2002,\n \"eogonek\", 0x0119,\n \"eokorean\", 0x3153,\n \"eopen\", 0x025b,\n \"eopenclosed\", 0x029a,\n \"eopenreversed\", 0x025c,\n \"eopenreversedclosed\", 0x025e,\n \"eopenreversedhook\", 0x025d,\n \"eparen\", 0x24a0,\n \"epsilon\", 0x03b5,\n \"epsilontonos\", 0x03ad,\n \"equal\", 0x003d,\n \"equalmonospace\", 0xff1d,\n \"equalsmall\", 0xfe66,\n \"equalsuperior\", 0x207c,\n \"equivalence\", 0x2261,\n \"erbopomofo\", 0x3126,\n \"ercyrillic\", 0x0440,\n \"ereversed\", 0x0258,\n \"ereversedcyrillic\", 0x044d,\n \"escyrillic\", 0x0441,\n \"esdescendercyrillic\", 0x04ab,\n \"esh\", 0x0283,\n \"eshcurl\", 0x0286,\n \"eshortdeva\", 0x090e,\n \"eshortvowelsigndeva\", 0x0946,\n \"eshreversedloop\", 0x01aa,\n \"eshsquatreversed\", 0x0285,\n \"esmallhiragana\", 0x3047,\n \"esmallkatakana\", 0x30a7,\n \"esmallkatakanahalfwidth\", 0xff6a,\n \"estimated\", 0x212e,\n \"esuperior\", 0xf6ec,\n \"eta\", 0x03b7,\n \"etarmenian\", 0x0568,\n \"etatonos\", 0x03ae,\n \"eth\", 0x00f0,\n \"etilde\", 0x1ebd,\n \"etildebelow\", 0x1e1b,\n \"etnahtafoukhhebrew\", 0x0591,\n \"etnahtafoukhlefthebrew\", 0x0591,\n \"etnahtahebrew\", 0x0591,\n \"etnahtalefthebrew\", 0x0591,\n \"eturned\", 0x01dd,\n \"eukorean\", 0x3161,\n \"euro\", 0x20ac,\n \"evowelsignbengali\", 0x09c7,\n \"evowelsigndeva\", 0x0947,\n \"evowelsigngujarati\", 0x0ac7,\n \"exclam\", 0x0021,\n \"exclamarmenian\", 0x055c,\n \"exclamdbl\", 0x203c,\n \"exclamdown\", 0x00a1,\n \"exclamdownsmall\", 0xf7a1,\n \"exclammonospace\", 0xff01,\n \"exclamsmall\", 0xf721,\n \"existential\", 0x2203,\n \"ezh\", 0x0292,\n \"ezhcaron\", 0x01ef,\n \"ezhcurl\", 0x0293,\n \"ezhreversed\", 0x01b9,\n \"ezhtail\", 0x01ba,\n \"f\", 0x0066,\n \"fadeva\", 0x095e,\n \"fagurmukhi\", 0x0a5e,\n \"fahrenheit\", 0x2109,\n \"fathaarabic\", 0x064e,\n \"fathalowarabic\", 0x064e,\n \"fathatanarabic\", 0x064b,\n \"fbopomofo\", 0x3108,\n \"fcircle\", 0x24d5,\n \"fdotaccent\", 0x1e1f,\n \"feharabic\", 0x0641,\n \"feharmenian\", 0x0586,\n \"fehfinalarabic\", 0xfed2,\n \"fehinitialarabic\", 0xfed3,\n \"fehmedialarabic\", 0xfed4,\n \"feicoptic\", 0x03e5,\n \"female\", 0x2640,\n \"ff\", 0xfb00,\n \"f_f\", 0xfb00, // Fixes issue 11016.\n \"ffi\", 0xfb03,\n \"ffl\", 0xfb04,\n \"fi\", 0xfb01,\n \"fifteencircle\", 0x246e,\n \"fifteenparen\", 0x2482,\n \"fifteenperiod\", 0x2496,\n \"figuredash\", 0x2012,\n \"filledbox\", 0x25a0,\n \"filledrect\", 0x25ac,\n \"finalkaf\", 0x05da,\n \"finalkafdagesh\", 0xfb3a,\n \"finalkafdageshhebrew\", 0xfb3a,\n \"finalkafhebrew\", 0x05da,\n \"finalmem\", 0x05dd,\n \"finalmemhebrew\", 0x05dd,\n \"finalnun\", 0x05df,\n \"finalnunhebrew\", 0x05df,\n \"finalpe\", 0x05e3,\n \"finalpehebrew\", 0x05e3,\n \"finaltsadi\", 0x05e5,\n \"finaltsadihebrew\", 0x05e5,\n \"firsttonechinese\", 0x02c9,\n \"fisheye\", 0x25c9,\n \"fitacyrillic\", 0x0473,\n \"five\", 0x0035,\n \"fivearabic\", 0x0665,\n \"fivebengali\", 0x09eb,\n \"fivecircle\", 0x2464,\n \"fivecircleinversesansserif\", 0x278e,\n \"fivedeva\", 0x096b,\n \"fiveeighths\", 0x215d,\n \"fivegujarati\", 0x0aeb,\n \"fivegurmukhi\", 0x0a6b,\n \"fivehackarabic\", 0x0665,\n \"fivehangzhou\", 0x3025,\n \"fiveideographicparen\", 0x3224,\n \"fiveinferior\", 0x2085,\n \"fivemonospace\", 0xff15,\n \"fiveoldstyle\", 0xf735,\n \"fiveparen\", 0x2478,\n \"fiveperiod\", 0x248c,\n \"fivepersian\", 0x06f5,\n \"fiveroman\", 0x2174,\n \"fivesuperior\", 0x2075,\n \"fivethai\", 0x0e55,\n \"fl\", 0xfb02,\n \"florin\", 0x0192,\n \"fmonospace\", 0xff46,\n \"fmsquare\", 0x3399,\n \"fofanthai\", 0x0e1f,\n \"fofathai\", 0x0e1d,\n \"fongmanthai\", 0x0e4f,\n \"forall\", 0x2200,\n \"four\", 0x0034,\n \"fourarabic\", 0x0664,\n \"fourbengali\", 0x09ea,\n \"fourcircle\", 0x2463,\n \"fourcircleinversesansserif\", 0x278d,\n \"fourdeva\", 0x096a,\n \"fourgujarati\", 0x0aea,\n \"fourgurmukhi\", 0x0a6a,\n \"fourhackarabic\", 0x0664,\n \"fourhangzhou\", 0x3024,\n \"fourideographicparen\", 0x3223,\n \"fourinferior\", 0x2084,\n \"fourmonospace\", 0xff14,\n \"fournumeratorbengali\", 0x09f7,\n \"fouroldstyle\", 0xf734,\n \"fourparen\", 0x2477,\n \"fourperiod\", 0x248b,\n \"fourpersian\", 0x06f4,\n \"fourroman\", 0x2173,\n \"foursuperior\", 0x2074,\n \"fourteencircle\", 0x246d,\n \"fourteenparen\", 0x2481,\n \"fourteenperiod\", 0x2495,\n \"fourthai\", 0x0e54,\n \"fourthtonechinese\", 0x02cb,\n \"fparen\", 0x24a1,\n \"fraction\", 0x2044,\n \"franc\", 0x20a3,\n \"g\", 0x0067,\n \"gabengali\", 0x0997,\n \"gacute\", 0x01f5,\n \"gadeva\", 0x0917,\n \"gafarabic\", 0x06af,\n \"gaffinalarabic\", 0xfb93,\n \"gafinitialarabic\", 0xfb94,\n \"gafmedialarabic\", 0xfb95,\n \"gagujarati\", 0x0a97,\n \"gagurmukhi\", 0x0a17,\n \"gahiragana\", 0x304c,\n \"gakatakana\", 0x30ac,\n \"gamma\", 0x03b3,\n \"gammalatinsmall\", 0x0263,\n \"gammasuperior\", 0x02e0,\n \"gangiacoptic\", 0x03eb,\n \"gbopomofo\", 0x310d,\n \"gbreve\", 0x011f,\n \"gcaron\", 0x01e7,\n \"gcedilla\", 0x0123,\n \"gcircle\", 0x24d6,\n \"gcircumflex\", 0x011d,\n \"gcommaaccent\", 0x0123,\n \"gdot\", 0x0121,\n \"gdotaccent\", 0x0121,\n \"gecyrillic\", 0x0433,\n \"gehiragana\", 0x3052,\n \"gekatakana\", 0x30b2,\n \"geometricallyequal\", 0x2251,\n \"gereshaccenthebrew\", 0x059c,\n \"gereshhebrew\", 0x05f3,\n \"gereshmuqdamhebrew\", 0x059d,\n \"germandbls\", 0x00df,\n \"gershayimaccenthebrew\", 0x059e,\n \"gershayimhebrew\", 0x05f4,\n \"getamark\", 0x3013,\n \"ghabengali\", 0x0998,\n \"ghadarmenian\", 0x0572,\n \"ghadeva\", 0x0918,\n \"ghagujarati\", 0x0a98,\n \"ghagurmukhi\", 0x0a18,\n \"ghainarabic\", 0x063a,\n \"ghainfinalarabic\", 0xfece,\n \"ghaininitialarabic\", 0xfecf,\n \"ghainmedialarabic\", 0xfed0,\n \"ghemiddlehookcyrillic\", 0x0495,\n \"ghestrokecyrillic\", 0x0493,\n \"gheupturncyrillic\", 0x0491,\n \"ghhadeva\", 0x095a,\n \"ghhagurmukhi\", 0x0a5a,\n \"ghook\", 0x0260,\n \"ghzsquare\", 0x3393,\n \"gihiragana\", 0x304e,\n \"gikatakana\", 0x30ae,\n \"gimarmenian\", 0x0563,\n \"gimel\", 0x05d2,\n \"gimeldagesh\", 0xfb32,\n \"gimeldageshhebrew\", 0xfb32,\n \"gimelhebrew\", 0x05d2,\n \"gjecyrillic\", 0x0453,\n \"glottalinvertedstroke\", 0x01be,\n \"glottalstop\", 0x0294,\n \"glottalstopinverted\", 0x0296,\n \"glottalstopmod\", 0x02c0,\n \"glottalstopreversed\", 0x0295,\n \"glottalstopreversedmod\", 0x02c1,\n \"glottalstopreversedsuperior\", 0x02e4,\n \"glottalstopstroke\", 0x02a1,\n \"glottalstopstrokereversed\", 0x02a2,\n \"gmacron\", 0x1e21,\n \"gmonospace\", 0xff47,\n \"gohiragana\", 0x3054,\n \"gokatakana\", 0x30b4,\n \"gparen\", 0x24a2,\n \"gpasquare\", 0x33ac,\n \"gradient\", 0x2207,\n \"grave\", 0x0060,\n \"gravebelowcmb\", 0x0316,\n \"gravecmb\", 0x0300,\n \"gravecomb\", 0x0300,\n \"gravedeva\", 0x0953,\n \"gravelowmod\", 0x02ce,\n \"gravemonospace\", 0xff40,\n \"gravetonecmb\", 0x0340,\n \"greater\", 0x003e,\n \"greaterequal\", 0x2265,\n \"greaterequalorless\", 0x22db,\n \"greatermonospace\", 0xff1e,\n \"greaterorequivalent\", 0x2273,\n \"greaterorless\", 0x2277,\n \"greateroverequal\", 0x2267,\n \"greatersmall\", 0xfe65,\n \"gscript\", 0x0261,\n \"gstroke\", 0x01e5,\n \"guhiragana\", 0x3050,\n \"guillemotleft\", 0x00ab,\n \"guillemotright\", 0x00bb,\n \"guilsinglleft\", 0x2039,\n \"guilsinglright\", 0x203a,\n \"gukatakana\", 0x30b0,\n \"guramusquare\", 0x3318,\n \"gysquare\", 0x33c9,\n \"h\", 0x0068,\n \"haabkhasiancyrillic\", 0x04a9,\n \"haaltonearabic\", 0x06c1,\n \"habengali\", 0x09b9,\n \"hadescendercyrillic\", 0x04b3,\n \"hadeva\", 0x0939,\n \"hagujarati\", 0x0ab9,\n \"hagurmukhi\", 0x0a39,\n \"haharabic\", 0x062d,\n \"hahfinalarabic\", 0xfea2,\n \"hahinitialarabic\", 0xfea3,\n \"hahiragana\", 0x306f,\n \"hahmedialarabic\", 0xfea4,\n \"haitusquare\", 0x332a,\n \"hakatakana\", 0x30cf,\n \"hakatakanahalfwidth\", 0xff8a,\n \"halantgurmukhi\", 0x0a4d,\n \"hamzaarabic\", 0x0621,\n \"hamzalowarabic\", 0x0621,\n \"hangulfiller\", 0x3164,\n \"hardsigncyrillic\", 0x044a,\n \"harpoonleftbarbup\", 0x21bc,\n \"harpoonrightbarbup\", 0x21c0,\n \"hasquare\", 0x33ca,\n \"hatafpatah\", 0x05b2,\n \"hatafpatah16\", 0x05b2,\n \"hatafpatah23\", 0x05b2,\n \"hatafpatah2f\", 0x05b2,\n \"hatafpatahhebrew\", 0x05b2,\n \"hatafpatahnarrowhebrew\", 0x05b2,\n \"hatafpatahquarterhebrew\", 0x05b2,\n \"hatafpatahwidehebrew\", 0x05b2,\n \"hatafqamats\", 0x05b3,\n \"hatafqamats1b\", 0x05b3,\n \"hatafqamats28\", 0x05b3,\n \"hatafqamats34\", 0x05b3,\n \"hatafqamatshebrew\", 0x05b3,\n \"hatafqamatsnarrowhebrew\", 0x05b3,\n \"hatafqamatsquarterhebrew\", 0x05b3,\n \"hatafqamatswidehebrew\", 0x05b3,\n \"hatafsegol\", 0x05b1,\n \"hatafsegol17\", 0x05b1,\n \"hatafsegol24\", 0x05b1,\n \"hatafsegol30\", 0x05b1,\n \"hatafsegolhebrew\", 0x05b1,\n \"hatafsegolnarrowhebrew\", 0x05b1,\n \"hatafsegolquarterhebrew\", 0x05b1,\n \"hatafsegolwidehebrew\", 0x05b1,\n \"hbar\", 0x0127,\n \"hbopomofo\", 0x310f,\n \"hbrevebelow\", 0x1e2b,\n \"hcedilla\", 0x1e29,\n \"hcircle\", 0x24d7,\n \"hcircumflex\", 0x0125,\n \"hdieresis\", 0x1e27,\n \"hdotaccent\", 0x1e23,\n \"hdotbelow\", 0x1e25,\n \"he\", 0x05d4,\n \"heart\", 0x2665,\n \"heartsuitblack\", 0x2665,\n \"heartsuitwhite\", 0x2661,\n \"hedagesh\", 0xfb34,\n \"hedageshhebrew\", 0xfb34,\n \"hehaltonearabic\", 0x06c1,\n \"heharabic\", 0x0647,\n \"hehebrew\", 0x05d4,\n \"hehfinalaltonearabic\", 0xfba7,\n \"hehfinalalttwoarabic\", 0xfeea,\n \"hehfinalarabic\", 0xfeea,\n \"hehhamzaabovefinalarabic\", 0xfba5,\n \"hehhamzaaboveisolatedarabic\", 0xfba4,\n \"hehinitialaltonearabic\", 0xfba8,\n \"hehinitialarabic\", 0xfeeb,\n \"hehiragana\", 0x3078,\n \"hehmedialaltonearabic\", 0xfba9,\n \"hehmedialarabic\", 0xfeec,\n \"heiseierasquare\", 0x337b,\n \"hekatakana\", 0x30d8,\n \"hekatakanahalfwidth\", 0xff8d,\n \"hekutaarusquare\", 0x3336,\n \"henghook\", 0x0267,\n \"herutusquare\", 0x3339,\n \"het\", 0x05d7,\n \"hethebrew\", 0x05d7,\n \"hhook\", 0x0266,\n \"hhooksuperior\", 0x02b1,\n \"hieuhacirclekorean\", 0x327b,\n \"hieuhaparenkorean\", 0x321b,\n \"hieuhcirclekorean\", 0x326d,\n \"hieuhkorean\", 0x314e,\n \"hieuhparenkorean\", 0x320d,\n \"hihiragana\", 0x3072,\n \"hikatakana\", 0x30d2,\n \"hikatakanahalfwidth\", 0xff8b,\n \"hiriq\", 0x05b4,\n \"hiriq14\", 0x05b4,\n \"hiriq21\", 0x05b4,\n \"hiriq2d\", 0x05b4,\n \"hiriqhebrew\", 0x05b4,\n \"hiriqnarrowhebrew\", 0x05b4,\n \"hiriqquarterhebrew\", 0x05b4,\n \"hiriqwidehebrew\", 0x05b4,\n \"hlinebelow\", 0x1e96,\n \"hmonospace\", 0xff48,\n \"hoarmenian\", 0x0570,\n \"hohipthai\", 0x0e2b,\n \"hohiragana\", 0x307b,\n \"hokatakana\", 0x30db,\n \"hokatakanahalfwidth\", 0xff8e,\n \"holam\", 0x05b9,\n \"holam19\", 0x05b9,\n \"holam26\", 0x05b9,\n \"holam32\", 0x05b9,\n \"holamhebrew\", 0x05b9,\n \"holamnarrowhebrew\", 0x05b9,\n \"holamquarterhebrew\", 0x05b9,\n \"holamwidehebrew\", 0x05b9,\n \"honokhukthai\", 0x0e2e,\n \"hookabovecomb\", 0x0309,\n \"hookcmb\", 0x0309,\n \"hookpalatalizedbelowcmb\", 0x0321,\n \"hookretroflexbelowcmb\", 0x0322,\n \"hoonsquare\", 0x3342,\n \"horicoptic\", 0x03e9,\n \"horizontalbar\", 0x2015,\n \"horncmb\", 0x031b,\n \"hotsprings\", 0x2668,\n \"house\", 0x2302,\n \"hparen\", 0x24a3,\n \"hsuperior\", 0x02b0,\n \"hturned\", 0x0265,\n \"huhiragana\", 0x3075,\n \"huiitosquare\", 0x3333,\n \"hukatakana\", 0x30d5,\n \"hukatakanahalfwidth\", 0xff8c,\n \"hungarumlaut\", 0x02dd,\n \"hungarumlautcmb\", 0x030b,\n \"hv\", 0x0195,\n \"hyphen\", 0x002d,\n \"hypheninferior\", 0xf6e5,\n \"hyphenmonospace\", 0xff0d,\n \"hyphensmall\", 0xfe63,\n \"hyphensuperior\", 0xf6e6,\n \"hyphentwo\", 0x2010,\n \"i\", 0x0069,\n \"iacute\", 0x00ed,\n \"iacyrillic\", 0x044f,\n \"ibengali\", 0x0987,\n \"ibopomofo\", 0x3127,\n \"ibreve\", 0x012d,\n \"icaron\", 0x01d0,\n \"icircle\", 0x24d8,\n \"icircumflex\", 0x00ee,\n \"icyrillic\", 0x0456,\n \"idblgrave\", 0x0209,\n \"ideographearthcircle\", 0x328f,\n \"ideographfirecircle\", 0x328b,\n \"ideographicallianceparen\", 0x323f,\n \"ideographiccallparen\", 0x323a,\n \"ideographiccentrecircle\", 0x32a5,\n \"ideographicclose\", 0x3006,\n \"ideographiccomma\", 0x3001,\n \"ideographiccommaleft\", 0xff64,\n \"ideographiccongratulationparen\", 0x3237,\n \"ideographiccorrectcircle\", 0x32a3,\n \"ideographicearthparen\", 0x322f,\n \"ideographicenterpriseparen\", 0x323d,\n \"ideographicexcellentcircle\", 0x329d,\n \"ideographicfestivalparen\", 0x3240,\n \"ideographicfinancialcircle\", 0x3296,\n \"ideographicfinancialparen\", 0x3236,\n \"ideographicfireparen\", 0x322b,\n \"ideographichaveparen\", 0x3232,\n \"ideographichighcircle\", 0x32a4,\n \"ideographiciterationmark\", 0x3005,\n \"ideographiclaborcircle\", 0x3298,\n \"ideographiclaborparen\", 0x3238,\n \"ideographicleftcircle\", 0x32a7,\n \"ideographiclowcircle\", 0x32a6,\n \"ideographicmedicinecircle\", 0x32a9,\n \"ideographicmetalparen\", 0x322e,\n \"ideographicmoonparen\", 0x322a,\n \"ideographicnameparen\", 0x3234,\n \"ideographicperiod\", 0x3002,\n \"ideographicprintcircle\", 0x329e,\n \"ideographicreachparen\", 0x3243,\n \"ideographicrepresentparen\", 0x3239,\n \"ideographicresourceparen\", 0x323e,\n \"ideographicrightcircle\", 0x32a8,\n \"ideographicsecretcircle\", 0x3299,\n \"ideographicselfparen\", 0x3242,\n \"ideographicsocietyparen\", 0x3233,\n \"ideographicspace\", 0x3000,\n \"ideographicspecialparen\", 0x3235,\n \"ideographicstockparen\", 0x3231,\n \"ideographicstudyparen\", 0x323b,\n \"ideographicsunparen\", 0x3230,\n \"ideographicsuperviseparen\", 0x323c,\n \"ideographicwaterparen\", 0x322c,\n \"ideographicwoodparen\", 0x322d,\n \"ideographiczero\", 0x3007,\n \"ideographmetalcircle\", 0x328e,\n \"ideographmooncircle\", 0x328a,\n \"ideographnamecircle\", 0x3294,\n \"ideographsuncircle\", 0x3290,\n \"ideographwatercircle\", 0x328c,\n \"ideographwoodcircle\", 0x328d,\n \"ideva\", 0x0907,\n \"idieresis\", 0x00ef,\n \"idieresisacute\", 0x1e2f,\n \"idieresiscyrillic\", 0x04e5,\n \"idotbelow\", 0x1ecb,\n \"iebrevecyrillic\", 0x04d7,\n \"iecyrillic\", 0x0435,\n \"ieungacirclekorean\", 0x3275,\n \"ieungaparenkorean\", 0x3215,\n \"ieungcirclekorean\", 0x3267,\n \"ieungkorean\", 0x3147,\n \"ieungparenkorean\", 0x3207,\n \"igrave\", 0x00ec,\n \"igujarati\", 0x0a87,\n \"igurmukhi\", 0x0a07,\n \"ihiragana\", 0x3044,\n \"ihookabove\", 0x1ec9,\n \"iibengali\", 0x0988,\n \"iicyrillic\", 0x0438,\n \"iideva\", 0x0908,\n \"iigujarati\", 0x0a88,\n \"iigurmukhi\", 0x0a08,\n \"iimatragurmukhi\", 0x0a40,\n \"iinvertedbreve\", 0x020b,\n \"iishortcyrillic\", 0x0439,\n \"iivowelsignbengali\", 0x09c0,\n \"iivowelsigndeva\", 0x0940,\n \"iivowelsigngujarati\", 0x0ac0,\n \"ij\", 0x0133,\n \"ikatakana\", 0x30a4,\n \"ikatakanahalfwidth\", 0xff72,\n \"ikorean\", 0x3163,\n \"ilde\", 0x02dc,\n \"iluyhebrew\", 0x05ac,\n \"imacron\", 0x012b,\n \"imacroncyrillic\", 0x04e3,\n \"imageorapproximatelyequal\", 0x2253,\n \"imatragurmukhi\", 0x0a3f,\n \"imonospace\", 0xff49,\n \"increment\", 0x2206,\n \"infinity\", 0x221e,\n \"iniarmenian\", 0x056b,\n \"integral\", 0x222b,\n \"integralbottom\", 0x2321,\n \"integralbt\", 0x2321,\n \"integralex\", 0xf8f5,\n \"integraltop\", 0x2320,\n \"integraltp\", 0x2320,\n \"intersection\", 0x2229,\n \"intisquare\", 0x3305,\n \"invbullet\", 0x25d8,\n \"invcircle\", 0x25d9,\n \"invsmileface\", 0x263b,\n \"iocyrillic\", 0x0451,\n \"iogonek\", 0x012f,\n \"iota\", 0x03b9,\n \"iotadieresis\", 0x03ca,\n \"iotadieresistonos\", 0x0390,\n \"iotalatin\", 0x0269,\n \"iotatonos\", 0x03af,\n \"iparen\", 0x24a4,\n \"irigurmukhi\", 0x0a72,\n \"ismallhiragana\", 0x3043,\n \"ismallkatakana\", 0x30a3,\n \"ismallkatakanahalfwidth\", 0xff68,\n \"issharbengali\", 0x09fa,\n \"istroke\", 0x0268,\n \"isuperior\", 0xf6ed,\n \"iterationhiragana\", 0x309d,\n \"iterationkatakana\", 0x30fd,\n \"itilde\", 0x0129,\n \"itildebelow\", 0x1e2d,\n \"iubopomofo\", 0x3129,\n \"iucyrillic\", 0x044e,\n \"ivowelsignbengali\", 0x09bf,\n \"ivowelsigndeva\", 0x093f,\n \"ivowelsigngujarati\", 0x0abf,\n \"izhitsacyrillic\", 0x0475,\n \"izhitsadblgravecyrillic\", 0x0477,\n \"j\", 0x006a,\n \"jaarmenian\", 0x0571,\n \"jabengali\", 0x099c,\n \"jadeva\", 0x091c,\n \"jagujarati\", 0x0a9c,\n \"jagurmukhi\", 0x0a1c,\n \"jbopomofo\", 0x3110,\n \"jcaron\", 0x01f0,\n \"jcircle\", 0x24d9,\n \"jcircumflex\", 0x0135,\n \"jcrossedtail\", 0x029d,\n \"jdotlessstroke\", 0x025f,\n \"jecyrillic\", 0x0458,\n \"jeemarabic\", 0x062c,\n \"jeemfinalarabic\", 0xfe9e,\n \"jeeminitialarabic\", 0xfe9f,\n \"jeemmedialarabic\", 0xfea0,\n \"jeharabic\", 0x0698,\n \"jehfinalarabic\", 0xfb8b,\n \"jhabengali\", 0x099d,\n \"jhadeva\", 0x091d,\n \"jhagujarati\", 0x0a9d,\n \"jhagurmukhi\", 0x0a1d,\n \"jheharmenian\", 0x057b,\n \"jis\", 0x3004,\n \"jmonospace\", 0xff4a,\n \"jparen\", 0x24a5,\n \"jsuperior\", 0x02b2,\n \"k\", 0x006b,\n \"kabashkircyrillic\", 0x04a1,\n \"kabengali\", 0x0995,\n \"kacute\", 0x1e31,\n \"kacyrillic\", 0x043a,\n \"kadescendercyrillic\", 0x049b,\n \"kadeva\", 0x0915,\n \"kaf\", 0x05db,\n \"kafarabic\", 0x0643,\n \"kafdagesh\", 0xfb3b,\n \"kafdageshhebrew\", 0xfb3b,\n \"kaffinalarabic\", 0xfeda,\n \"kafhebrew\", 0x05db,\n \"kafinitialarabic\", 0xfedb,\n \"kafmedialarabic\", 0xfedc,\n \"kafrafehebrew\", 0xfb4d,\n \"kagujarati\", 0x0a95,\n \"kagurmukhi\", 0x0a15,\n \"kahiragana\", 0x304b,\n \"kahookcyrillic\", 0x04c4,\n \"kakatakana\", 0x30ab,\n \"kakatakanahalfwidth\", 0xff76,\n \"kappa\", 0x03ba,\n \"kappasymbolgreek\", 0x03f0,\n \"kapyeounmieumkorean\", 0x3171,\n \"kapyeounphieuphkorean\", 0x3184,\n \"kapyeounpieupkorean\", 0x3178,\n \"kapyeounssangpieupkorean\", 0x3179,\n \"karoriisquare\", 0x330d,\n \"kashidaautoarabic\", 0x0640,\n \"kashidaautonosidebearingarabic\", 0x0640,\n \"kasmallkatakana\", 0x30f5,\n \"kasquare\", 0x3384,\n \"kasraarabic\", 0x0650,\n \"kasratanarabic\", 0x064d,\n \"kastrokecyrillic\", 0x049f,\n \"katahiraprolongmarkhalfwidth\", 0xff70,\n \"kaverticalstrokecyrillic\", 0x049d,\n \"kbopomofo\", 0x310e,\n \"kcalsquare\", 0x3389,\n \"kcaron\", 0x01e9,\n \"kcedilla\", 0x0137,\n \"kcircle\", 0x24da,\n \"kcommaaccent\", 0x0137,\n \"kdotbelow\", 0x1e33,\n \"keharmenian\", 0x0584,\n \"kehiragana\", 0x3051,\n \"kekatakana\", 0x30b1,\n \"kekatakanahalfwidth\", 0xff79,\n \"kenarmenian\", 0x056f,\n \"kesmallkatakana\", 0x30f6,\n \"kgreenlandic\", 0x0138,\n \"khabengali\", 0x0996,\n \"khacyrillic\", 0x0445,\n \"khadeva\", 0x0916,\n \"khagujarati\", 0x0a96,\n \"khagurmukhi\", 0x0a16,\n \"khaharabic\", 0x062e,\n \"khahfinalarabic\", 0xfea6,\n \"khahinitialarabic\", 0xfea7,\n \"khahmedialarabic\", 0xfea8,\n \"kheicoptic\", 0x03e7,\n \"khhadeva\", 0x0959,\n \"khhagurmukhi\", 0x0a59,\n \"khieukhacirclekorean\", 0x3278,\n \"khieukhaparenkorean\", 0x3218,\n \"khieukhcirclekorean\", 0x326a,\n \"khieukhkorean\", 0x314b,\n \"khieukhparenkorean\", 0x320a,\n \"khokhaithai\", 0x0e02,\n \"khokhonthai\", 0x0e05,\n \"khokhuatthai\", 0x0e03,\n \"khokhwaithai\", 0x0e04,\n \"khomutthai\", 0x0e5b,\n \"khook\", 0x0199,\n \"khorakhangthai\", 0x0e06,\n \"khzsquare\", 0x3391,\n \"kihiragana\", 0x304d,\n \"kikatakana\", 0x30ad,\n \"kikatakanahalfwidth\", 0xff77,\n \"kiroguramusquare\", 0x3315,\n \"kiromeetorusquare\", 0x3316,\n \"kirosquare\", 0x3314,\n \"kiyeokacirclekorean\", 0x326e,\n \"kiyeokaparenkorean\", 0x320e,\n \"kiyeokcirclekorean\", 0x3260,\n \"kiyeokkorean\", 0x3131,\n \"kiyeokparenkorean\", 0x3200,\n \"kiyeoksioskorean\", 0x3133,\n \"kjecyrillic\", 0x045c,\n \"klinebelow\", 0x1e35,\n \"klsquare\", 0x3398,\n \"kmcubedsquare\", 0x33a6,\n \"kmonospace\", 0xff4b,\n \"kmsquaredsquare\", 0x33a2,\n \"kohiragana\", 0x3053,\n \"kohmsquare\", 0x33c0,\n \"kokaithai\", 0x0e01,\n \"kokatakana\", 0x30b3,\n \"kokatakanahalfwidth\", 0xff7a,\n \"kooposquare\", 0x331e,\n \"koppacyrillic\", 0x0481,\n \"koreanstandardsymbol\", 0x327f,\n \"koroniscmb\", 0x0343,\n \"kparen\", 0x24a6,\n \"kpasquare\", 0x33aa,\n \"ksicyrillic\", 0x046f,\n \"ktsquare\", 0x33cf,\n \"kturned\", 0x029e,\n \"kuhiragana\", 0x304f,\n \"kukatakana\", 0x30af,\n \"kukatakanahalfwidth\", 0xff78,\n \"kvsquare\", 0x33b8,\n \"kwsquare\", 0x33be,\n \"l\", 0x006c,\n \"labengali\", 0x09b2,\n \"lacute\", 0x013a,\n \"ladeva\", 0x0932,\n \"lagujarati\", 0x0ab2,\n \"lagurmukhi\", 0x0a32,\n \"lakkhangyaothai\", 0x0e45,\n \"lamaleffinalarabic\", 0xfefc,\n \"lamalefhamzaabovefinalarabic\", 0xfef8,\n \"lamalefhamzaaboveisolatedarabic\", 0xfef7,\n \"lamalefhamzabelowfinalarabic\", 0xfefa,\n \"lamalefhamzabelowisolatedarabic\", 0xfef9,\n \"lamalefisolatedarabic\", 0xfefb,\n \"lamalefmaddaabovefinalarabic\", 0xfef6,\n \"lamalefmaddaaboveisolatedarabic\", 0xfef5,\n \"lamarabic\", 0x0644,\n \"lambda\", 0x03bb,\n \"lambdastroke\", 0x019b,\n \"lamed\", 0x05dc,\n \"lameddagesh\", 0xfb3c,\n \"lameddageshhebrew\", 0xfb3c,\n \"lamedhebrew\", 0x05dc,\n \"lamfinalarabic\", 0xfede,\n \"lamhahinitialarabic\", 0xfcca,\n \"laminitialarabic\", 0xfedf,\n \"lamjeeminitialarabic\", 0xfcc9,\n \"lamkhahinitialarabic\", 0xfccb,\n \"lamlamhehisolatedarabic\", 0xfdf2,\n \"lammedialarabic\", 0xfee0,\n \"lammeemhahinitialarabic\", 0xfd88,\n \"lammeeminitialarabic\", 0xfccc,\n \"largecircle\", 0x25ef,\n \"lbar\", 0x019a,\n \"lbelt\", 0x026c,\n \"lbopomofo\", 0x310c,\n \"lcaron\", 0x013e,\n \"lcedilla\", 0x013c,\n \"lcircle\", 0x24db,\n \"lcircumflexbelow\", 0x1e3d,\n \"lcommaaccent\", 0x013c,\n \"ldot\", 0x0140,\n \"ldotaccent\", 0x0140,\n \"ldotbelow\", 0x1e37,\n \"ldotbelowmacron\", 0x1e39,\n \"leftangleabovecmb\", 0x031a,\n \"lefttackbelowcmb\", 0x0318,\n \"less\", 0x003c,\n \"lessequal\", 0x2264,\n \"lessequalorgreater\", 0x22da,\n \"lessmonospace\", 0xff1c,\n \"lessorequivalent\", 0x2272,\n \"lessorgreater\", 0x2276,\n \"lessoverequal\", 0x2266,\n \"lesssmall\", 0xfe64,\n \"lezh\", 0x026e,\n \"lfblock\", 0x258c,\n \"lhookretroflex\", 0x026d,\n \"lira\", 0x20a4,\n \"liwnarmenian\", 0x056c,\n \"lj\", 0x01c9,\n \"ljecyrillic\", 0x0459,\n \"ll\", 0xf6c0,\n \"lladeva\", 0x0933,\n \"llagujarati\", 0x0ab3,\n \"llinebelow\", 0x1e3b,\n \"llladeva\", 0x0934,\n \"llvocalicbengali\", 0x09e1,\n \"llvocalicdeva\", 0x0961,\n \"llvocalicvowelsignbengali\", 0x09e3,\n \"llvocalicvowelsigndeva\", 0x0963,\n \"lmiddletilde\", 0x026b,\n \"lmonospace\", 0xff4c,\n \"lmsquare\", 0x33d0,\n \"lochulathai\", 0x0e2c,\n \"logicaland\", 0x2227,\n \"logicalnot\", 0x00ac,\n \"logicalnotreversed\", 0x2310,\n \"logicalor\", 0x2228,\n \"lolingthai\", 0x0e25,\n \"longs\", 0x017f,\n \"lowlinecenterline\", 0xfe4e,\n \"lowlinecmb\", 0x0332,\n \"lowlinedashed\", 0xfe4d,\n \"lozenge\", 0x25ca,\n \"lparen\", 0x24a7,\n \"lslash\", 0x0142,\n \"lsquare\", 0x2113,\n \"lsuperior\", 0xf6ee,\n \"ltshade\", 0x2591,\n \"luthai\", 0x0e26,\n \"lvocalicbengali\", 0x098c,\n \"lvocalicdeva\", 0x090c,\n \"lvocalicvowelsignbengali\", 0x09e2,\n \"lvocalicvowelsigndeva\", 0x0962,\n \"lxsquare\", 0x33d3,\n \"m\", 0x006d,\n \"mabengali\", 0x09ae,\n \"macron\", 0x00af,\n \"macronbelowcmb\", 0x0331,\n \"macroncmb\", 0x0304,\n \"macronlowmod\", 0x02cd,\n \"macronmonospace\", 0xffe3,\n \"macute\", 0x1e3f,\n \"madeva\", 0x092e,\n \"magujarati\", 0x0aae,\n \"magurmukhi\", 0x0a2e,\n \"mahapakhhebrew\", 0x05a4,\n \"mahapakhlefthebrew\", 0x05a4,\n \"mahiragana\", 0x307e,\n \"maichattawalowleftthai\", 0xf895,\n \"maichattawalowrightthai\", 0xf894,\n \"maichattawathai\", 0x0e4b,\n \"maichattawaupperleftthai\", 0xf893,\n \"maieklowleftthai\", 0xf88c,\n \"maieklowrightthai\", 0xf88b,\n \"maiekthai\", 0x0e48,\n \"maiekupperleftthai\", 0xf88a,\n \"maihanakatleftthai\", 0xf884,\n \"maihanakatthai\", 0x0e31,\n \"maitaikhuleftthai\", 0xf889,\n \"maitaikhuthai\", 0x0e47,\n \"maitholowleftthai\", 0xf88f,\n \"maitholowrightthai\", 0xf88e,\n \"maithothai\", 0x0e49,\n \"maithoupperleftthai\", 0xf88d,\n \"maitrilowleftthai\", 0xf892,\n \"maitrilowrightthai\", 0xf891,\n \"maitrithai\", 0x0e4a,\n \"maitriupperleftthai\", 0xf890,\n \"maiyamokthai\", 0x0e46,\n \"makatakana\", 0x30de,\n \"makatakanahalfwidth\", 0xff8f,\n \"male\", 0x2642,\n \"mansyonsquare\", 0x3347,\n \"maqafhebrew\", 0x05be,\n \"mars\", 0x2642,\n \"masoracirclehebrew\", 0x05af,\n \"masquare\", 0x3383,\n \"mbopomofo\", 0x3107,\n \"mbsquare\", 0x33d4,\n \"mcircle\", 0x24dc,\n \"mcubedsquare\", 0x33a5,\n \"mdotaccent\", 0x1e41,\n \"mdotbelow\", 0x1e43,\n \"meemarabic\", 0x0645,\n \"meemfinalarabic\", 0xfee2,\n \"meeminitialarabic\", 0xfee3,\n \"meemmedialarabic\", 0xfee4,\n \"meemmeeminitialarabic\", 0xfcd1,\n \"meemmeemisolatedarabic\", 0xfc48,\n \"meetorusquare\", 0x334d,\n \"mehiragana\", 0x3081,\n \"meizierasquare\", 0x337e,\n \"mekatakana\", 0x30e1,\n \"mekatakanahalfwidth\", 0xff92,\n \"mem\", 0x05de,\n \"memdagesh\", 0xfb3e,\n \"memdageshhebrew\", 0xfb3e,\n \"memhebrew\", 0x05de,\n \"menarmenian\", 0x0574,\n \"merkhahebrew\", 0x05a5,\n \"merkhakefulahebrew\", 0x05a6,\n \"merkhakefulalefthebrew\", 0x05a6,\n \"merkhalefthebrew\", 0x05a5,\n \"mhook\", 0x0271,\n \"mhzsquare\", 0x3392,\n \"middledotkatakanahalfwidth\", 0xff65,\n \"middot\", 0x00b7,\n \"mieumacirclekorean\", 0x3272,\n \"mieumaparenkorean\", 0x3212,\n \"mieumcirclekorean\", 0x3264,\n \"mieumkorean\", 0x3141,\n \"mieumpansioskorean\", 0x3170,\n \"mieumparenkorean\", 0x3204,\n \"mieumpieupkorean\", 0x316e,\n \"mieumsioskorean\", 0x316f,\n \"mihiragana\", 0x307f,\n \"mikatakana\", 0x30df,\n \"mikatakanahalfwidth\", 0xff90,\n \"minus\", 0x2212,\n \"minusbelowcmb\", 0x0320,\n \"minuscircle\", 0x2296,\n \"minusmod\", 0x02d7,\n \"minusplus\", 0x2213,\n \"minute\", 0x2032,\n \"miribaarusquare\", 0x334a,\n \"mirisquare\", 0x3349,\n \"mlonglegturned\", 0x0270,\n \"mlsquare\", 0x3396,\n \"mmcubedsquare\", 0x33a3,\n \"mmonospace\", 0xff4d,\n \"mmsquaredsquare\", 0x339f,\n \"mohiragana\", 0x3082,\n \"mohmsquare\", 0x33c1,\n \"mokatakana\", 0x30e2,\n \"mokatakanahalfwidth\", 0xff93,\n \"molsquare\", 0x33d6,\n \"momathai\", 0x0e21,\n \"moverssquare\", 0x33a7,\n \"moverssquaredsquare\", 0x33a8,\n \"mparen\", 0x24a8,\n \"mpasquare\", 0x33ab,\n \"mssquare\", 0x33b3,\n \"msuperior\", 0xf6ef,\n \"mturned\", 0x026f,\n \"mu\", 0x00b5,\n \"mu1\", 0x00b5,\n \"muasquare\", 0x3382,\n \"muchgreater\", 0x226b,\n \"muchless\", 0x226a,\n \"mufsquare\", 0x338c,\n \"mugreek\", 0x03bc,\n \"mugsquare\", 0x338d,\n \"muhiragana\", 0x3080,\n \"mukatakana\", 0x30e0,\n \"mukatakanahalfwidth\", 0xff91,\n \"mulsquare\", 0x3395,\n \"multiply\", 0x00d7,\n \"mumsquare\", 0x339b,\n \"munahhebrew\", 0x05a3,\n \"munahlefthebrew\", 0x05a3,\n \"musicalnote\", 0x266a,\n \"musicalnotedbl\", 0x266b,\n \"musicflatsign\", 0x266d,\n \"musicsharpsign\", 0x266f,\n \"mussquare\", 0x33b2,\n \"muvsquare\", 0x33b6,\n \"muwsquare\", 0x33bc,\n \"mvmegasquare\", 0x33b9,\n \"mvsquare\", 0x33b7,\n \"mwmegasquare\", 0x33bf,\n \"mwsquare\", 0x33bd,\n \"n\", 0x006e,\n \"nabengali\", 0x09a8,\n \"nabla\", 0x2207,\n \"nacute\", 0x0144,\n \"nadeva\", 0x0928,\n \"nagujarati\", 0x0aa8,\n \"nagurmukhi\", 0x0a28,\n \"nahiragana\", 0x306a,\n \"nakatakana\", 0x30ca,\n \"nakatakanahalfwidth\", 0xff85,\n \"napostrophe\", 0x0149,\n \"nasquare\", 0x3381,\n \"nbopomofo\", 0x310b,\n \"nbspace\", 0x00a0,\n \"ncaron\", 0x0148,\n \"ncedilla\", 0x0146,\n \"ncircle\", 0x24dd,\n \"ncircumflexbelow\", 0x1e4b,\n \"ncommaaccent\", 0x0146,\n \"ndotaccent\", 0x1e45,\n \"ndotbelow\", 0x1e47,\n \"nehiragana\", 0x306d,\n \"nekatakana\", 0x30cd,\n \"nekatakanahalfwidth\", 0xff88,\n \"newsheqelsign\", 0x20aa,\n \"nfsquare\", 0x338b,\n \"ngabengali\", 0x0999,\n \"ngadeva\", 0x0919,\n \"ngagujarati\", 0x0a99,\n \"ngagurmukhi\", 0x0a19,\n \"ngonguthai\", 0x0e07,\n \"nhiragana\", 0x3093,\n \"nhookleft\", 0x0272,\n \"nhookretroflex\", 0x0273,\n \"nieunacirclekorean\", 0x326f,\n \"nieunaparenkorean\", 0x320f,\n \"nieuncieuckorean\", 0x3135,\n \"nieuncirclekorean\", 0x3261,\n \"nieunhieuhkorean\", 0x3136,\n \"nieunkorean\", 0x3134,\n \"nieunpansioskorean\", 0x3168,\n \"nieunparenkorean\", 0x3201,\n \"nieunsioskorean\", 0x3167,\n \"nieuntikeutkorean\", 0x3166,\n \"nihiragana\", 0x306b,\n \"nikatakana\", 0x30cb,\n \"nikatakanahalfwidth\", 0xff86,\n \"nikhahitleftthai\", 0xf899,\n \"nikhahitthai\", 0x0e4d,\n \"nine\", 0x0039,\n \"ninearabic\", 0x0669,\n \"ninebengali\", 0x09ef,\n \"ninecircle\", 0x2468,\n \"ninecircleinversesansserif\", 0x2792,\n \"ninedeva\", 0x096f,\n \"ninegujarati\", 0x0aef,\n \"ninegurmukhi\", 0x0a6f,\n \"ninehackarabic\", 0x0669,\n \"ninehangzhou\", 0x3029,\n \"nineideographicparen\", 0x3228,\n \"nineinferior\", 0x2089,\n \"ninemonospace\", 0xff19,\n \"nineoldstyle\", 0xf739,\n \"nineparen\", 0x247c,\n \"nineperiod\", 0x2490,\n \"ninepersian\", 0x06f9,\n \"nineroman\", 0x2178,\n \"ninesuperior\", 0x2079,\n \"nineteencircle\", 0x2472,\n \"nineteenparen\", 0x2486,\n \"nineteenperiod\", 0x249a,\n \"ninethai\", 0x0e59,\n \"nj\", 0x01cc,\n \"njecyrillic\", 0x045a,\n \"nkatakana\", 0x30f3,\n \"nkatakanahalfwidth\", 0xff9d,\n \"nlegrightlong\", 0x019e,\n \"nlinebelow\", 0x1e49,\n \"nmonospace\", 0xff4e,\n \"nmsquare\", 0x339a,\n \"nnabengali\", 0x09a3,\n \"nnadeva\", 0x0923,\n \"nnagujarati\", 0x0aa3,\n \"nnagurmukhi\", 0x0a23,\n \"nnnadeva\", 0x0929,\n \"nohiragana\", 0x306e,\n \"nokatakana\", 0x30ce,\n \"nokatakanahalfwidth\", 0xff89,\n \"nonbreakingspace\", 0x00a0,\n \"nonenthai\", 0x0e13,\n \"nonuthai\", 0x0e19,\n \"noonarabic\", 0x0646,\n \"noonfinalarabic\", 0xfee6,\n \"noonghunnaarabic\", 0x06ba,\n \"noonghunnafinalarabic\", 0xfb9f,\n \"nooninitialarabic\", 0xfee7,\n \"noonjeeminitialarabic\", 0xfcd2,\n \"noonjeemisolatedarabic\", 0xfc4b,\n \"noonmedialarabic\", 0xfee8,\n \"noonmeeminitialarabic\", 0xfcd5,\n \"noonmeemisolatedarabic\", 0xfc4e,\n \"noonnoonfinalarabic\", 0xfc8d,\n \"notcontains\", 0x220c,\n \"notelement\", 0x2209,\n \"notelementof\", 0x2209,\n \"notequal\", 0x2260,\n \"notgreater\", 0x226f,\n \"notgreaternorequal\", 0x2271,\n \"notgreaternorless\", 0x2279,\n \"notidentical\", 0x2262,\n \"notless\", 0x226e,\n \"notlessnorequal\", 0x2270,\n \"notparallel\", 0x2226,\n \"notprecedes\", 0x2280,\n \"notsubset\", 0x2284,\n \"notsucceeds\", 0x2281,\n \"notsuperset\", 0x2285,\n \"nowarmenian\", 0x0576,\n \"nparen\", 0x24a9,\n \"nssquare\", 0x33b1,\n \"nsuperior\", 0x207f,\n \"ntilde\", 0x00f1,\n \"nu\", 0x03bd,\n \"nuhiragana\", 0x306c,\n \"nukatakana\", 0x30cc,\n \"nukatakanahalfwidth\", 0xff87,\n \"nuktabengali\", 0x09bc,\n \"nuktadeva\", 0x093c,\n \"nuktagujarati\", 0x0abc,\n \"nuktagurmukhi\", 0x0a3c,\n \"numbersign\", 0x0023,\n \"numbersignmonospace\", 0xff03,\n \"numbersignsmall\", 0xfe5f,\n \"numeralsigngreek\", 0x0374,\n \"numeralsignlowergreek\", 0x0375,\n \"numero\", 0x2116,\n \"nun\", 0x05e0,\n \"nundagesh\", 0xfb40,\n \"nundageshhebrew\", 0xfb40,\n \"nunhebrew\", 0x05e0,\n \"nvsquare\", 0x33b5,\n \"nwsquare\", 0x33bb,\n \"nyabengali\", 0x099e,\n \"nyadeva\", 0x091e,\n \"nyagujarati\", 0x0a9e,\n \"nyagurmukhi\", 0x0a1e,\n \"o\", 0x006f,\n \"oacute\", 0x00f3,\n \"oangthai\", 0x0e2d,\n \"obarred\", 0x0275,\n \"obarredcyrillic\", 0x04e9,\n \"obarreddieresiscyrillic\", 0x04eb,\n \"obengali\", 0x0993,\n \"obopomofo\", 0x311b,\n \"obreve\", 0x014f,\n \"ocandradeva\", 0x0911,\n \"ocandragujarati\", 0x0a91,\n \"ocandravowelsigndeva\", 0x0949,\n \"ocandravowelsigngujarati\", 0x0ac9,\n \"ocaron\", 0x01d2,\n \"ocircle\", 0x24de,\n \"ocircumflex\", 0x00f4,\n \"ocircumflexacute\", 0x1ed1,\n \"ocircumflexdotbelow\", 0x1ed9,\n \"ocircumflexgrave\", 0x1ed3,\n \"ocircumflexhookabove\", 0x1ed5,\n \"ocircumflextilde\", 0x1ed7,\n \"ocyrillic\", 0x043e,\n \"odblacute\", 0x0151,\n \"odblgrave\", 0x020d,\n \"odeva\", 0x0913,\n \"odieresis\", 0x00f6,\n \"odieresiscyrillic\", 0x04e7,\n \"odotbelow\", 0x1ecd,\n \"oe\", 0x0153,\n \"oekorean\", 0x315a,\n \"ogonek\", 0x02db,\n \"ogonekcmb\", 0x0328,\n \"ograve\", 0x00f2,\n \"ogujarati\", 0x0a93,\n \"oharmenian\", 0x0585,\n \"ohiragana\", 0x304a,\n \"ohookabove\", 0x1ecf,\n \"ohorn\", 0x01a1,\n \"ohornacute\", 0x1edb,\n \"ohorndotbelow\", 0x1ee3,\n \"ohorngrave\", 0x1edd,\n \"ohornhookabove\", 0x1edf,\n \"ohorntilde\", 0x1ee1,\n \"ohungarumlaut\", 0x0151,\n \"oi\", 0x01a3,\n \"oinvertedbreve\", 0x020f,\n \"okatakana\", 0x30aa,\n \"okatakanahalfwidth\", 0xff75,\n \"okorean\", 0x3157,\n \"olehebrew\", 0x05ab,\n \"omacron\", 0x014d,\n \"omacronacute\", 0x1e53,\n \"omacrongrave\", 0x1e51,\n \"omdeva\", 0x0950,\n \"omega\", 0x03c9,\n \"omega1\", 0x03d6,\n \"omegacyrillic\", 0x0461,\n \"omegalatinclosed\", 0x0277,\n \"omegaroundcyrillic\", 0x047b,\n \"omegatitlocyrillic\", 0x047d,\n \"omegatonos\", 0x03ce,\n \"omgujarati\", 0x0ad0,\n \"omicron\", 0x03bf,\n \"omicrontonos\", 0x03cc,\n \"omonospace\", 0xff4f,\n \"one\", 0x0031,\n \"onearabic\", 0x0661,\n \"onebengali\", 0x09e7,\n \"onecircle\", 0x2460,\n \"onecircleinversesansserif\", 0x278a,\n \"onedeva\", 0x0967,\n \"onedotenleader\", 0x2024,\n \"oneeighth\", 0x215b,\n \"onefitted\", 0xf6dc,\n \"onegujarati\", 0x0ae7,\n \"onegurmukhi\", 0x0a67,\n \"onehackarabic\", 0x0661,\n \"onehalf\", 0x00bd,\n \"onehangzhou\", 0x3021,\n \"oneideographicparen\", 0x3220,\n \"oneinferior\", 0x2081,\n \"onemonospace\", 0xff11,\n \"onenumeratorbengali\", 0x09f4,\n \"oneoldstyle\", 0xf731,\n \"oneparen\", 0x2474,\n \"oneperiod\", 0x2488,\n \"onepersian\", 0x06f1,\n \"onequarter\", 0x00bc,\n \"oneroman\", 0x2170,\n \"onesuperior\", 0x00b9,\n \"onethai\", 0x0e51,\n \"onethird\", 0x2153,\n \"oogonek\", 0x01eb,\n \"oogonekmacron\", 0x01ed,\n \"oogurmukhi\", 0x0a13,\n \"oomatragurmukhi\", 0x0a4b,\n \"oopen\", 0x0254,\n \"oparen\", 0x24aa,\n \"openbullet\", 0x25e6,\n \"option\", 0x2325,\n \"ordfeminine\", 0x00aa,\n \"ordmasculine\", 0x00ba,\n \"orthogonal\", 0x221f,\n \"oshortdeva\", 0x0912,\n \"oshortvowelsigndeva\", 0x094a,\n \"oslash\", 0x00f8,\n \"oslashacute\", 0x01ff,\n \"osmallhiragana\", 0x3049,\n \"osmallkatakana\", 0x30a9,\n \"osmallkatakanahalfwidth\", 0xff6b,\n \"ostrokeacute\", 0x01ff,\n \"osuperior\", 0xf6f0,\n \"otcyrillic\", 0x047f,\n \"otilde\", 0x00f5,\n \"otildeacute\", 0x1e4d,\n \"otildedieresis\", 0x1e4f,\n \"oubopomofo\", 0x3121,\n \"overline\", 0x203e,\n \"overlinecenterline\", 0xfe4a,\n \"overlinecmb\", 0x0305,\n \"overlinedashed\", 0xfe49,\n \"overlinedblwavy\", 0xfe4c,\n \"overlinewavy\", 0xfe4b,\n \"overscore\", 0x00af,\n \"ovowelsignbengali\", 0x09cb,\n \"ovowelsigndeva\", 0x094b,\n \"ovowelsigngujarati\", 0x0acb,\n \"p\", 0x0070,\n \"paampssquare\", 0x3380,\n \"paasentosquare\", 0x332b,\n \"pabengali\", 0x09aa,\n \"pacute\", 0x1e55,\n \"padeva\", 0x092a,\n \"pagedown\", 0x21df,\n \"pageup\", 0x21de,\n \"pagujarati\", 0x0aaa,\n \"pagurmukhi\", 0x0a2a,\n \"pahiragana\", 0x3071,\n \"paiyannoithai\", 0x0e2f,\n \"pakatakana\", 0x30d1,\n \"palatalizationcyrilliccmb\", 0x0484,\n \"palochkacyrillic\", 0x04c0,\n \"pansioskorean\", 0x317f,\n \"paragraph\", 0x00b6,\n \"parallel\", 0x2225,\n \"parenleft\", 0x0028,\n \"parenleftaltonearabic\", 0xfd3e,\n \"parenleftbt\", 0xf8ed,\n \"parenleftex\", 0xf8ec,\n \"parenleftinferior\", 0x208d,\n \"parenleftmonospace\", 0xff08,\n \"parenleftsmall\", 0xfe59,\n \"parenleftsuperior\", 0x207d,\n \"parenlefttp\", 0xf8eb,\n \"parenleftvertical\", 0xfe35,\n \"parenright\", 0x0029,\n \"parenrightaltonearabic\", 0xfd3f,\n \"parenrightbt\", 0xf8f8,\n \"parenrightex\", 0xf8f7,\n \"parenrightinferior\", 0x208e,\n \"parenrightmonospace\", 0xff09,\n \"parenrightsmall\", 0xfe5a,\n \"parenrightsuperior\", 0x207e,\n \"parenrighttp\", 0xf8f6,\n \"parenrightvertical\", 0xfe36,\n \"partialdiff\", 0x2202,\n \"paseqhebrew\", 0x05c0,\n \"pashtahebrew\", 0x0599,\n \"pasquare\", 0x33a9,\n \"patah\", 0x05b7,\n \"patah11\", 0x05b7,\n \"patah1d\", 0x05b7,\n \"patah2a\", 0x05b7,\n \"patahhebrew\", 0x05b7,\n \"patahnarrowhebrew\", 0x05b7,\n \"patahquarterhebrew\", 0x05b7,\n \"patahwidehebrew\", 0x05b7,\n \"pazerhebrew\", 0x05a1,\n \"pbopomofo\", 0x3106,\n \"pcircle\", 0x24df,\n \"pdotaccent\", 0x1e57,\n \"pe\", 0x05e4,\n \"pecyrillic\", 0x043f,\n \"pedagesh\", 0xfb44,\n \"pedageshhebrew\", 0xfb44,\n \"peezisquare\", 0x333b,\n \"pefinaldageshhebrew\", 0xfb43,\n \"peharabic\", 0x067e,\n \"peharmenian\", 0x057a,\n \"pehebrew\", 0x05e4,\n \"pehfinalarabic\", 0xfb57,\n \"pehinitialarabic\", 0xfb58,\n \"pehiragana\", 0x307a,\n \"pehmedialarabic\", 0xfb59,\n \"pekatakana\", 0x30da,\n \"pemiddlehookcyrillic\", 0x04a7,\n \"perafehebrew\", 0xfb4e,\n \"percent\", 0x0025,\n \"percentarabic\", 0x066a,\n \"percentmonospace\", 0xff05,\n \"percentsmall\", 0xfe6a,\n \"period\", 0x002e,\n \"periodarmenian\", 0x0589,\n \"periodcentered\", 0x00b7,\n \"periodhalfwidth\", 0xff61,\n \"periodinferior\", 0xf6e7,\n \"periodmonospace\", 0xff0e,\n \"periodsmall\", 0xfe52,\n \"periodsuperior\", 0xf6e8,\n \"perispomenigreekcmb\", 0x0342,\n \"perpendicular\", 0x22a5,\n \"perthousand\", 0x2030,\n \"peseta\", 0x20a7,\n \"pfsquare\", 0x338a,\n \"phabengali\", 0x09ab,\n \"phadeva\", 0x092b,\n \"phagujarati\", 0x0aab,\n \"phagurmukhi\", 0x0a2b,\n \"phi\", 0x03c6,\n \"phi1\", 0x03d5,\n \"phieuphacirclekorean\", 0x327a,\n \"phieuphaparenkorean\", 0x321a,\n \"phieuphcirclekorean\", 0x326c,\n \"phieuphkorean\", 0x314d,\n \"phieuphparenkorean\", 0x320c,\n \"philatin\", 0x0278,\n \"phinthuthai\", 0x0e3a,\n \"phisymbolgreek\", 0x03d5,\n \"phook\", 0x01a5,\n \"phophanthai\", 0x0e1e,\n \"phophungthai\", 0x0e1c,\n \"phosamphaothai\", 0x0e20,\n \"pi\", 0x03c0,\n \"pieupacirclekorean\", 0x3273,\n \"pieupaparenkorean\", 0x3213,\n \"pieupcieuckorean\", 0x3176,\n \"pieupcirclekorean\", 0x3265,\n \"pieupkiyeokkorean\", 0x3172,\n \"pieupkorean\", 0x3142,\n \"pieupparenkorean\", 0x3205,\n \"pieupsioskiyeokkorean\", 0x3174,\n \"pieupsioskorean\", 0x3144,\n \"pieupsiostikeutkorean\", 0x3175,\n \"pieupthieuthkorean\", 0x3177,\n \"pieuptikeutkorean\", 0x3173,\n \"pihiragana\", 0x3074,\n \"pikatakana\", 0x30d4,\n \"pisymbolgreek\", 0x03d6,\n \"piwrarmenian\", 0x0583,\n \"plus\", 0x002b,\n \"plusbelowcmb\", 0x031f,\n \"pluscircle\", 0x2295,\n \"plusminus\", 0x00b1,\n \"plusmod\", 0x02d6,\n \"plusmonospace\", 0xff0b,\n \"plussmall\", 0xfe62,\n \"plussuperior\", 0x207a,\n \"pmonospace\", 0xff50,\n \"pmsquare\", 0x33d8,\n \"pohiragana\", 0x307d,\n \"pointingindexdownwhite\", 0x261f,\n \"pointingindexleftwhite\", 0x261c,\n \"pointingindexrightwhite\", 0x261e,\n \"pointingindexupwhite\", 0x261d,\n \"pokatakana\", 0x30dd,\n \"poplathai\", 0x0e1b,\n \"postalmark\", 0x3012,\n \"postalmarkface\", 0x3020,\n \"pparen\", 0x24ab,\n \"precedes\", 0x227a,\n \"prescription\", 0x211e,\n \"primemod\", 0x02b9,\n \"primereversed\", 0x2035,\n \"product\", 0x220f,\n \"projective\", 0x2305,\n \"prolongedkana\", 0x30fc,\n \"propellor\", 0x2318,\n \"propersubset\", 0x2282,\n \"propersuperset\", 0x2283,\n \"proportion\", 0x2237,\n \"proportional\", 0x221d,\n \"psi\", 0x03c8,\n \"psicyrillic\", 0x0471,\n \"psilipneumatacyrilliccmb\", 0x0486,\n \"pssquare\", 0x33b0,\n \"puhiragana\", 0x3077,\n \"pukatakana\", 0x30d7,\n \"pvsquare\", 0x33b4,\n \"pwsquare\", 0x33ba,\n \"q\", 0x0071,\n \"qadeva\", 0x0958,\n \"qadmahebrew\", 0x05a8,\n \"qafarabic\", 0x0642,\n \"qaffinalarabic\", 0xfed6,\n \"qafinitialarabic\", 0xfed7,\n \"qafmedialarabic\", 0xfed8,\n \"qamats\", 0x05b8,\n \"qamats10\", 0x05b8,\n \"qamats1a\", 0x05b8,\n \"qamats1c\", 0x05b8,\n \"qamats27\", 0x05b8,\n \"qamats29\", 0x05b8,\n \"qamats33\", 0x05b8,\n \"qamatsde\", 0x05b8,\n \"qamatshebrew\", 0x05b8,\n \"qamatsnarrowhebrew\", 0x05b8,\n \"qamatsqatanhebrew\", 0x05b8,\n \"qamatsqatannarrowhebrew\", 0x05b8,\n \"qamatsqatanquarterhebrew\", 0x05b8,\n \"qamatsqatanwidehebrew\", 0x05b8,\n \"qamatsquarterhebrew\", 0x05b8,\n \"qamatswidehebrew\", 0x05b8,\n \"qarneyparahebrew\", 0x059f,\n \"qbopomofo\", 0x3111,\n \"qcircle\", 0x24e0,\n \"qhook\", 0x02a0,\n \"qmonospace\", 0xff51,\n \"qof\", 0x05e7,\n \"qofdagesh\", 0xfb47,\n \"qofdageshhebrew\", 0xfb47,\n \"qofhebrew\", 0x05e7,\n \"qparen\", 0x24ac,\n \"quarternote\", 0x2669,\n \"qubuts\", 0x05bb,\n \"qubuts18\", 0x05bb,\n \"qubuts25\", 0x05bb,\n \"qubuts31\", 0x05bb,\n \"qubutshebrew\", 0x05bb,\n \"qubutsnarrowhebrew\", 0x05bb,\n \"qubutsquarterhebrew\", 0x05bb,\n \"qubutswidehebrew\", 0x05bb,\n \"question\", 0x003f,\n \"questionarabic\", 0x061f,\n \"questionarmenian\", 0x055e,\n \"questiondown\", 0x00bf,\n \"questiondownsmall\", 0xf7bf,\n \"questiongreek\", 0x037e,\n \"questionmonospace\", 0xff1f,\n \"questionsmall\", 0xf73f,\n \"quotedbl\", 0x0022,\n \"quotedblbase\", 0x201e,\n \"quotedblleft\", 0x201c,\n \"quotedblmonospace\", 0xff02,\n \"quotedblprime\", 0x301e,\n \"quotedblprimereversed\", 0x301d,\n \"quotedblright\", 0x201d,\n \"quoteleft\", 0x2018,\n \"quoteleftreversed\", 0x201b,\n \"quotereversed\", 0x201b,\n \"quoteright\", 0x2019,\n \"quoterightn\", 0x0149,\n \"quotesinglbase\", 0x201a,\n \"quotesingle\", 0x0027,\n \"quotesinglemonospace\", 0xff07,\n \"r\", 0x0072,\n \"raarmenian\", 0x057c,\n \"rabengali\", 0x09b0,\n \"racute\", 0x0155,\n \"radeva\", 0x0930,\n \"radical\", 0x221a,\n \"radicalex\", 0xf8e5,\n \"radoverssquare\", 0x33ae,\n \"radoverssquaredsquare\", 0x33af,\n \"radsquare\", 0x33ad,\n \"rafe\", 0x05bf,\n \"rafehebrew\", 0x05bf,\n \"ragujarati\", 0x0ab0,\n \"ragurmukhi\", 0x0a30,\n \"rahiragana\", 0x3089,\n \"rakatakana\", 0x30e9,\n \"rakatakanahalfwidth\", 0xff97,\n \"ralowerdiagonalbengali\", 0x09f1,\n \"ramiddlediagonalbengali\", 0x09f0,\n \"ramshorn\", 0x0264,\n \"ratio\", 0x2236,\n \"rbopomofo\", 0x3116,\n \"rcaron\", 0x0159,\n \"rcedilla\", 0x0157,\n \"rcircle\", 0x24e1,\n \"rcommaaccent\", 0x0157,\n \"rdblgrave\", 0x0211,\n \"rdotaccent\", 0x1e59,\n \"rdotbelow\", 0x1e5b,\n \"rdotbelowmacron\", 0x1e5d,\n \"referencemark\", 0x203b,\n \"reflexsubset\", 0x2286,\n \"reflexsuperset\", 0x2287,\n \"registered\", 0x00ae,\n \"registersans\", 0xf8e8,\n \"registerserif\", 0xf6da,\n \"reharabic\", 0x0631,\n \"reharmenian\", 0x0580,\n \"rehfinalarabic\", 0xfeae,\n \"rehiragana\", 0x308c,\n \"rekatakana\", 0x30ec,\n \"rekatakanahalfwidth\", 0xff9a,\n \"resh\", 0x05e8,\n \"reshdageshhebrew\", 0xfb48,\n \"reshhebrew\", 0x05e8,\n \"reversedtilde\", 0x223d,\n \"reviahebrew\", 0x0597,\n \"reviamugrashhebrew\", 0x0597,\n \"revlogicalnot\", 0x2310,\n \"rfishhook\", 0x027e,\n \"rfishhookreversed\", 0x027f,\n \"rhabengali\", 0x09dd,\n \"rhadeva\", 0x095d,\n \"rho\", 0x03c1,\n \"rhook\", 0x027d,\n \"rhookturned\", 0x027b,\n \"rhookturnedsuperior\", 0x02b5,\n \"rhosymbolgreek\", 0x03f1,\n \"rhotichookmod\", 0x02de,\n \"rieulacirclekorean\", 0x3271,\n \"rieulaparenkorean\", 0x3211,\n \"rieulcirclekorean\", 0x3263,\n \"rieulhieuhkorean\", 0x3140,\n \"rieulkiyeokkorean\", 0x313a,\n \"rieulkiyeoksioskorean\", 0x3169,\n \"rieulkorean\", 0x3139,\n \"rieulmieumkorean\", 0x313b,\n \"rieulpansioskorean\", 0x316c,\n \"rieulparenkorean\", 0x3203,\n \"rieulphieuphkorean\", 0x313f,\n \"rieulpieupkorean\", 0x313c,\n \"rieulpieupsioskorean\", 0x316b,\n \"rieulsioskorean\", 0x313d,\n \"rieulthieuthkorean\", 0x313e,\n \"rieultikeutkorean\", 0x316a,\n \"rieulyeorinhieuhkorean\", 0x316d,\n \"rightangle\", 0x221f,\n \"righttackbelowcmb\", 0x0319,\n \"righttriangle\", 0x22bf,\n \"rihiragana\", 0x308a,\n \"rikatakana\", 0x30ea,\n \"rikatakanahalfwidth\", 0xff98,\n \"ring\", 0x02da,\n \"ringbelowcmb\", 0x0325,\n \"ringcmb\", 0x030a,\n \"ringhalfleft\", 0x02bf,\n \"ringhalfleftarmenian\", 0x0559,\n \"ringhalfleftbelowcmb\", 0x031c,\n \"ringhalfleftcentered\", 0x02d3,\n \"ringhalfright\", 0x02be,\n \"ringhalfrightbelowcmb\", 0x0339,\n \"ringhalfrightcentered\", 0x02d2,\n \"rinvertedbreve\", 0x0213,\n \"rittorusquare\", 0x3351,\n \"rlinebelow\", 0x1e5f,\n \"rlongleg\", 0x027c,\n \"rlonglegturned\", 0x027a,\n \"rmonospace\", 0xff52,\n \"rohiragana\", 0x308d,\n \"rokatakana\", 0x30ed,\n \"rokatakanahalfwidth\", 0xff9b,\n \"roruathai\", 0x0e23,\n \"rparen\", 0x24ad,\n \"rrabengali\", 0x09dc,\n \"rradeva\", 0x0931,\n \"rragurmukhi\", 0x0a5c,\n \"rreharabic\", 0x0691,\n \"rrehfinalarabic\", 0xfb8d,\n \"rrvocalicbengali\", 0x09e0,\n \"rrvocalicdeva\", 0x0960,\n \"rrvocalicgujarati\", 0x0ae0,\n \"rrvocalicvowelsignbengali\", 0x09c4,\n \"rrvocalicvowelsigndeva\", 0x0944,\n \"rrvocalicvowelsigngujarati\", 0x0ac4,\n \"rsuperior\", 0xf6f1,\n \"rtblock\", 0x2590,\n \"rturned\", 0x0279,\n \"rturnedsuperior\", 0x02b4,\n \"ruhiragana\", 0x308b,\n \"rukatakana\", 0x30eb,\n \"rukatakanahalfwidth\", 0xff99,\n \"rupeemarkbengali\", 0x09f2,\n \"rupeesignbengali\", 0x09f3,\n \"rupiah\", 0xf6dd,\n \"ruthai\", 0x0e24,\n \"rvocalicbengali\", 0x098b,\n \"rvocalicdeva\", 0x090b,\n \"rvocalicgujarati\", 0x0a8b,\n \"rvocalicvowelsignbengali\", 0x09c3,\n \"rvocalicvowelsigndeva\", 0x0943,\n \"rvocalicvowelsigngujarati\", 0x0ac3,\n \"s\", 0x0073,\n \"sabengali\", 0x09b8,\n \"sacute\", 0x015b,\n \"sacutedotaccent\", 0x1e65,\n \"sadarabic\", 0x0635,\n \"sadeva\", 0x0938,\n \"sadfinalarabic\", 0xfeba,\n \"sadinitialarabic\", 0xfebb,\n \"sadmedialarabic\", 0xfebc,\n \"sagujarati\", 0x0ab8,\n \"sagurmukhi\", 0x0a38,\n \"sahiragana\", 0x3055,\n \"sakatakana\", 0x30b5,\n \"sakatakanahalfwidth\", 0xff7b,\n \"sallallahoualayhewasallamarabic\", 0xfdfa,\n \"samekh\", 0x05e1,\n \"samekhdagesh\", 0xfb41,\n \"samekhdageshhebrew\", 0xfb41,\n \"samekhhebrew\", 0x05e1,\n \"saraaathai\", 0x0e32,\n \"saraaethai\", 0x0e41,\n \"saraaimaimalaithai\", 0x0e44,\n \"saraaimaimuanthai\", 0x0e43,\n \"saraamthai\", 0x0e33,\n \"saraathai\", 0x0e30,\n \"saraethai\", 0x0e40,\n \"saraiileftthai\", 0xf886,\n \"saraiithai\", 0x0e35,\n \"saraileftthai\", 0xf885,\n \"saraithai\", 0x0e34,\n \"saraothai\", 0x0e42,\n \"saraueeleftthai\", 0xf888,\n \"saraueethai\", 0x0e37,\n \"saraueleftthai\", 0xf887,\n \"sarauethai\", 0x0e36,\n \"sarauthai\", 0x0e38,\n \"sarauuthai\", 0x0e39,\n \"sbopomofo\", 0x3119,\n \"scaron\", 0x0161,\n \"scarondotaccent\", 0x1e67,\n \"scedilla\", 0x015f,\n \"schwa\", 0x0259,\n \"schwacyrillic\", 0x04d9,\n \"schwadieresiscyrillic\", 0x04db,\n \"schwahook\", 0x025a,\n \"scircle\", 0x24e2,\n \"scircumflex\", 0x015d,\n \"scommaaccent\", 0x0219,\n \"sdotaccent\", 0x1e61,\n \"sdotbelow\", 0x1e63,\n \"sdotbelowdotaccent\", 0x1e69,\n \"seagullbelowcmb\", 0x033c,\n \"second\", 0x2033,\n \"secondtonechinese\", 0x02ca,\n \"section\", 0x00a7,\n \"seenarabic\", 0x0633,\n \"seenfinalarabic\", 0xfeb2,\n \"seeninitialarabic\", 0xfeb3,\n \"seenmedialarabic\", 0xfeb4,\n \"segol\", 0x05b6,\n \"segol13\", 0x05b6,\n \"segol1f\", 0x05b6,\n \"segol2c\", 0x05b6,\n \"segolhebrew\", 0x05b6,\n \"segolnarrowhebrew\", 0x05b6,\n \"segolquarterhebrew\", 0x05b6,\n \"segoltahebrew\", 0x0592,\n \"segolwidehebrew\", 0x05b6,\n \"seharmenian\", 0x057d,\n \"sehiragana\", 0x305b,\n \"sekatakana\", 0x30bb,\n \"sekatakanahalfwidth\", 0xff7e,\n \"semicolon\", 0x003b,\n \"semicolonarabic\", 0x061b,\n \"semicolonmonospace\", 0xff1b,\n \"semicolonsmall\", 0xfe54,\n \"semivoicedmarkkana\", 0x309c,\n \"semivoicedmarkkanahalfwidth\", 0xff9f,\n \"sentisquare\", 0x3322,\n \"sentosquare\", 0x3323,\n \"seven\", 0x0037,\n \"sevenarabic\", 0x0667,\n \"sevenbengali\", 0x09ed,\n \"sevencircle\", 0x2466,\n \"sevencircleinversesansserif\", 0x2790,\n \"sevendeva\", 0x096d,\n \"seveneighths\", 0x215e,\n \"sevengujarati\", 0x0aed,\n \"sevengurmukhi\", 0x0a6d,\n \"sevenhackarabic\", 0x0667,\n \"sevenhangzhou\", 0x3027,\n \"sevenideographicparen\", 0x3226,\n \"seveninferior\", 0x2087,\n \"sevenmonospace\", 0xff17,\n \"sevenoldstyle\", 0xf737,\n \"sevenparen\", 0x247a,\n \"sevenperiod\", 0x248e,\n \"sevenpersian\", 0x06f7,\n \"sevenroman\", 0x2176,\n \"sevensuperior\", 0x2077,\n \"seventeencircle\", 0x2470,\n \"seventeenparen\", 0x2484,\n \"seventeenperiod\", 0x2498,\n \"seventhai\", 0x0e57,\n \"sfthyphen\", 0x00ad,\n \"shaarmenian\", 0x0577,\n \"shabengali\", 0x09b6,\n \"shacyrillic\", 0x0448,\n \"shaddaarabic\", 0x0651,\n \"shaddadammaarabic\", 0xfc61,\n \"shaddadammatanarabic\", 0xfc5e,\n \"shaddafathaarabic\", 0xfc60,\n \"shaddakasraarabic\", 0xfc62,\n \"shaddakasratanarabic\", 0xfc5f,\n \"shade\", 0x2592,\n \"shadedark\", 0x2593,\n \"shadelight\", 0x2591,\n \"shademedium\", 0x2592,\n \"shadeva\", 0x0936,\n \"shagujarati\", 0x0ab6,\n \"shagurmukhi\", 0x0a36,\n \"shalshelethebrew\", 0x0593,\n \"shbopomofo\", 0x3115,\n \"shchacyrillic\", 0x0449,\n \"sheenarabic\", 0x0634,\n \"sheenfinalarabic\", 0xfeb6,\n \"sheeninitialarabic\", 0xfeb7,\n \"sheenmedialarabic\", 0xfeb8,\n \"sheicoptic\", 0x03e3,\n \"sheqel\", 0x20aa,\n \"sheqelhebrew\", 0x20aa,\n \"sheva\", 0x05b0,\n \"sheva115\", 0x05b0,\n \"sheva15\", 0x05b0,\n \"sheva22\", 0x05b0,\n \"sheva2e\", 0x05b0,\n \"shevahebrew\", 0x05b0,\n \"shevanarrowhebrew\", 0x05b0,\n \"shevaquarterhebrew\", 0x05b0,\n \"shevawidehebrew\", 0x05b0,\n \"shhacyrillic\", 0x04bb,\n \"shimacoptic\", 0x03ed,\n \"shin\", 0x05e9,\n \"shindagesh\", 0xfb49,\n \"shindageshhebrew\", 0xfb49,\n \"shindageshshindot\", 0xfb2c,\n \"shindageshshindothebrew\", 0xfb2c,\n \"shindageshsindot\", 0xfb2d,\n \"shindageshsindothebrew\", 0xfb2d,\n \"shindothebrew\", 0x05c1,\n \"shinhebrew\", 0x05e9,\n \"shinshindot\", 0xfb2a,\n \"shinshindothebrew\", 0xfb2a,\n \"shinsindot\", 0xfb2b,\n \"shinsindothebrew\", 0xfb2b,\n \"shook\", 0x0282,\n \"sigma\", 0x03c3,\n \"sigma1\", 0x03c2,\n \"sigmafinal\", 0x03c2,\n \"sigmalunatesymbolgreek\", 0x03f2,\n \"sihiragana\", 0x3057,\n \"sikatakana\", 0x30b7,\n \"sikatakanahalfwidth\", 0xff7c,\n \"siluqhebrew\", 0x05bd,\n \"siluqlefthebrew\", 0x05bd,\n \"similar\", 0x223c,\n \"sindothebrew\", 0x05c2,\n \"siosacirclekorean\", 0x3274,\n \"siosaparenkorean\", 0x3214,\n \"sioscieuckorean\", 0x317e,\n \"sioscirclekorean\", 0x3266,\n \"sioskiyeokkorean\", 0x317a,\n \"sioskorean\", 0x3145,\n \"siosnieunkorean\", 0x317b,\n \"siosparenkorean\", 0x3206,\n \"siospieupkorean\", 0x317d,\n \"siostikeutkorean\", 0x317c,\n \"six\", 0x0036,\n \"sixarabic\", 0x0666,\n \"sixbengali\", 0x09ec,\n \"sixcircle\", 0x2465,\n \"sixcircleinversesansserif\", 0x278f,\n \"sixdeva\", 0x096c,\n \"sixgujarati\", 0x0aec,\n \"sixgurmukhi\", 0x0a6c,\n \"sixhackarabic\", 0x0666,\n \"sixhangzhou\", 0x3026,\n \"sixideographicparen\", 0x3225,\n \"sixinferior\", 0x2086,\n \"sixmonospace\", 0xff16,\n \"sixoldstyle\", 0xf736,\n \"sixparen\", 0x2479,\n \"sixperiod\", 0x248d,\n \"sixpersian\", 0x06f6,\n \"sixroman\", 0x2175,\n \"sixsuperior\", 0x2076,\n \"sixteencircle\", 0x246f,\n \"sixteencurrencydenominatorbengali\", 0x09f9,\n \"sixteenparen\", 0x2483,\n \"sixteenperiod\", 0x2497,\n \"sixthai\", 0x0e56,\n \"slash\", 0x002f,\n \"slashmonospace\", 0xff0f,\n \"slong\", 0x017f,\n \"slongdotaccent\", 0x1e9b,\n \"smileface\", 0x263a,\n \"smonospace\", 0xff53,\n \"sofpasuqhebrew\", 0x05c3,\n \"softhyphen\", 0x00ad,\n \"softsigncyrillic\", 0x044c,\n \"sohiragana\", 0x305d,\n \"sokatakana\", 0x30bd,\n \"sokatakanahalfwidth\", 0xff7f,\n \"soliduslongoverlaycmb\", 0x0338,\n \"solidusshortoverlaycmb\", 0x0337,\n \"sorusithai\", 0x0e29,\n \"sosalathai\", 0x0e28,\n \"sosothai\", 0x0e0b,\n \"sosuathai\", 0x0e2a,\n \"space\", 0x0020,\n \"spacehackarabic\", 0x0020,\n \"spade\", 0x2660,\n \"spadesuitblack\", 0x2660,\n \"spadesuitwhite\", 0x2664,\n \"sparen\", 0x24ae,\n \"squarebelowcmb\", 0x033b,\n \"squarecc\", 0x33c4,\n \"squarecm\", 0x339d,\n \"squarediagonalcrosshatchfill\", 0x25a9,\n \"squarehorizontalfill\", 0x25a4,\n \"squarekg\", 0x338f,\n \"squarekm\", 0x339e,\n \"squarekmcapital\", 0x33ce,\n \"squareln\", 0x33d1,\n \"squarelog\", 0x33d2,\n \"squaremg\", 0x338e,\n \"squaremil\", 0x33d5,\n \"squaremm\", 0x339c,\n \"squaremsquared\", 0x33a1,\n \"squareorthogonalcrosshatchfill\", 0x25a6,\n \"squareupperlefttolowerrightfill\", 0x25a7,\n \"squareupperrighttolowerleftfill\", 0x25a8,\n \"squareverticalfill\", 0x25a5,\n \"squarewhitewithsmallblack\", 0x25a3,\n \"srsquare\", 0x33db,\n \"ssabengali\", 0x09b7,\n \"ssadeva\", 0x0937,\n \"ssagujarati\", 0x0ab7,\n \"ssangcieuckorean\", 0x3149,\n \"ssanghieuhkorean\", 0x3185,\n \"ssangieungkorean\", 0x3180,\n \"ssangkiyeokkorean\", 0x3132,\n \"ssangnieunkorean\", 0x3165,\n \"ssangpieupkorean\", 0x3143,\n \"ssangsioskorean\", 0x3146,\n \"ssangtikeutkorean\", 0x3138,\n \"ssuperior\", 0xf6f2,\n \"sterling\", 0x00a3,\n \"sterlingmonospace\", 0xffe1,\n \"strokelongoverlaycmb\", 0x0336,\n \"strokeshortoverlaycmb\", 0x0335,\n \"subset\", 0x2282,\n \"subsetnotequal\", 0x228a,\n \"subsetorequal\", 0x2286,\n \"succeeds\", 0x227b,\n \"suchthat\", 0x220b,\n \"suhiragana\", 0x3059,\n \"sukatakana\", 0x30b9,\n \"sukatakanahalfwidth\", 0xff7d,\n \"sukunarabic\", 0x0652,\n \"summation\", 0x2211,\n \"sun\", 0x263c,\n \"superset\", 0x2283,\n \"supersetnotequal\", 0x228b,\n \"supersetorequal\", 0x2287,\n \"svsquare\", 0x33dc,\n \"syouwaerasquare\", 0x337c,\n \"t\", 0x0074,\n \"tabengali\", 0x09a4,\n \"tackdown\", 0x22a4,\n \"tackleft\", 0x22a3,\n \"tadeva\", 0x0924,\n \"tagujarati\", 0x0aa4,\n \"tagurmukhi\", 0x0a24,\n \"taharabic\", 0x0637,\n \"tahfinalarabic\", 0xfec2,\n \"tahinitialarabic\", 0xfec3,\n \"tahiragana\", 0x305f,\n \"tahmedialarabic\", 0xfec4,\n \"taisyouerasquare\", 0x337d,\n \"takatakana\", 0x30bf,\n \"takatakanahalfwidth\", 0xff80,\n \"tatweelarabic\", 0x0640,\n \"tau\", 0x03c4,\n \"tav\", 0x05ea,\n \"tavdages\", 0xfb4a,\n \"tavdagesh\", 0xfb4a,\n \"tavdageshhebrew\", 0xfb4a,\n \"tavhebrew\", 0x05ea,\n \"tbar\", 0x0167,\n \"tbopomofo\", 0x310a,\n \"tcaron\", 0x0165,\n \"tccurl\", 0x02a8,\n \"tcedilla\", 0x0163,\n \"tcheharabic\", 0x0686,\n \"tchehfinalarabic\", 0xfb7b,\n \"tchehinitialarabic\", 0xfb7c,\n \"tchehmedialarabic\", 0xfb7d,\n \"tcircle\", 0x24e3,\n \"tcircumflexbelow\", 0x1e71,\n \"tcommaaccent\", 0x0163,\n \"tdieresis\", 0x1e97,\n \"tdotaccent\", 0x1e6b,\n \"tdotbelow\", 0x1e6d,\n \"tecyrillic\", 0x0442,\n \"tedescendercyrillic\", 0x04ad,\n \"teharabic\", 0x062a,\n \"tehfinalarabic\", 0xfe96,\n \"tehhahinitialarabic\", 0xfca2,\n \"tehhahisolatedarabic\", 0xfc0c,\n \"tehinitialarabic\", 0xfe97,\n \"tehiragana\", 0x3066,\n \"tehjeeminitialarabic\", 0xfca1,\n \"tehjeemisolatedarabic\", 0xfc0b,\n \"tehmarbutaarabic\", 0x0629,\n \"tehmarbutafinalarabic\", 0xfe94,\n \"tehmedialarabic\", 0xfe98,\n \"tehmeeminitialarabic\", 0xfca4,\n \"tehmeemisolatedarabic\", 0xfc0e,\n \"tehnoonfinalarabic\", 0xfc73,\n \"tekatakana\", 0x30c6,\n \"tekatakanahalfwidth\", 0xff83,\n \"telephone\", 0x2121,\n \"telephoneblack\", 0x260e,\n \"telishagedolahebrew\", 0x05a0,\n \"telishaqetanahebrew\", 0x05a9,\n \"tencircle\", 0x2469,\n \"tenideographicparen\", 0x3229,\n \"tenparen\", 0x247d,\n \"tenperiod\", 0x2491,\n \"tenroman\", 0x2179,\n \"tesh\", 0x02a7,\n \"tet\", 0x05d8,\n \"tetdagesh\", 0xfb38,\n \"tetdageshhebrew\", 0xfb38,\n \"tethebrew\", 0x05d8,\n \"tetsecyrillic\", 0x04b5,\n \"tevirhebrew\", 0x059b,\n \"tevirlefthebrew\", 0x059b,\n \"thabengali\", 0x09a5,\n \"thadeva\", 0x0925,\n \"thagujarati\", 0x0aa5,\n \"thagurmukhi\", 0x0a25,\n \"thalarabic\", 0x0630,\n \"thalfinalarabic\", 0xfeac,\n \"thanthakhatlowleftthai\", 0xf898,\n \"thanthakhatlowrightthai\", 0xf897,\n \"thanthakhatthai\", 0x0e4c,\n \"thanthakhatupperleftthai\", 0xf896,\n \"theharabic\", 0x062b,\n \"thehfinalarabic\", 0xfe9a,\n \"thehinitialarabic\", 0xfe9b,\n \"thehmedialarabic\", 0xfe9c,\n \"thereexists\", 0x2203,\n \"therefore\", 0x2234,\n \"theta\", 0x03b8,\n \"theta1\", 0x03d1,\n \"thetasymbolgreek\", 0x03d1,\n \"thieuthacirclekorean\", 0x3279,\n \"thieuthaparenkorean\", 0x3219,\n \"thieuthcirclekorean\", 0x326b,\n \"thieuthkorean\", 0x314c,\n \"thieuthparenkorean\", 0x320b,\n \"thirteencircle\", 0x246c,\n \"thirteenparen\", 0x2480,\n \"thirteenperiod\", 0x2494,\n \"thonangmonthothai\", 0x0e11,\n \"thook\", 0x01ad,\n \"thophuthaothai\", 0x0e12,\n \"thorn\", 0x00fe,\n \"thothahanthai\", 0x0e17,\n \"thothanthai\", 0x0e10,\n \"thothongthai\", 0x0e18,\n \"thothungthai\", 0x0e16,\n \"thousandcyrillic\", 0x0482,\n \"thousandsseparatorarabic\", 0x066c,\n \"thousandsseparatorpersian\", 0x066c,\n \"three\", 0x0033,\n \"threearabic\", 0x0663,\n \"threebengali\", 0x09e9,\n \"threecircle\", 0x2462,\n \"threecircleinversesansserif\", 0x278c,\n \"threedeva\", 0x0969,\n \"threeeighths\", 0x215c,\n \"threegujarati\", 0x0ae9,\n \"threegurmukhi\", 0x0a69,\n \"threehackarabic\", 0x0663,\n \"threehangzhou\", 0x3023,\n \"threeideographicparen\", 0x3222,\n \"threeinferior\", 0x2083,\n \"threemonospace\", 0xff13,\n \"threenumeratorbengali\", 0x09f6,\n \"threeoldstyle\", 0xf733,\n \"threeparen\", 0x2476,\n \"threeperiod\", 0x248a,\n \"threepersian\", 0x06f3,\n \"threequarters\", 0x00be,\n \"threequartersemdash\", 0xf6de,\n \"threeroman\", 0x2172,\n \"threesuperior\", 0x00b3,\n \"threethai\", 0x0e53,\n \"thzsquare\", 0x3394,\n \"tihiragana\", 0x3061,\n \"tikatakana\", 0x30c1,\n \"tikatakanahalfwidth\", 0xff81,\n \"tikeutacirclekorean\", 0x3270,\n \"tikeutaparenkorean\", 0x3210,\n \"tikeutcirclekorean\", 0x3262,\n \"tikeutkorean\", 0x3137,\n \"tikeutparenkorean\", 0x3202,\n \"tilde\", 0x02dc,\n \"tildebelowcmb\", 0x0330,\n \"tildecmb\", 0x0303,\n \"tildecomb\", 0x0303,\n \"tildedoublecmb\", 0x0360,\n \"tildeoperator\", 0x223c,\n \"tildeoverlaycmb\", 0x0334,\n \"tildeverticalcmb\", 0x033e,\n \"timescircle\", 0x2297,\n \"tipehahebrew\", 0x0596,\n \"tipehalefthebrew\", 0x0596,\n \"tippigurmukhi\", 0x0a70,\n \"titlocyrilliccmb\", 0x0483,\n \"tiwnarmenian\", 0x057f,\n \"tlinebelow\", 0x1e6f,\n \"tmonospace\", 0xff54,\n \"toarmenian\", 0x0569,\n \"tohiragana\", 0x3068,\n \"tokatakana\", 0x30c8,\n \"tokatakanahalfwidth\", 0xff84,\n \"tonebarextrahighmod\", 0x02e5,\n \"tonebarextralowmod\", 0x02e9,\n \"tonebarhighmod\", 0x02e6,\n \"tonebarlowmod\", 0x02e8,\n \"tonebarmidmod\", 0x02e7,\n \"tonefive\", 0x01bd,\n \"tonesix\", 0x0185,\n \"tonetwo\", 0x01a8,\n \"tonos\", 0x0384,\n \"tonsquare\", 0x3327,\n \"topatakthai\", 0x0e0f,\n \"tortoiseshellbracketleft\", 0x3014,\n \"tortoiseshellbracketleftsmall\", 0xfe5d,\n \"tortoiseshellbracketleftvertical\", 0xfe39,\n \"tortoiseshellbracketright\", 0x3015,\n \"tortoiseshellbracketrightsmall\", 0xfe5e,\n \"tortoiseshellbracketrightvertical\", 0xfe3a,\n \"totaothai\", 0x0e15,\n \"tpalatalhook\", 0x01ab,\n \"tparen\", 0x24af,\n \"trademark\", 0x2122,\n \"trademarksans\", 0xf8ea,\n \"trademarkserif\", 0xf6db,\n \"tretroflexhook\", 0x0288,\n \"triagdn\", 0x25bc,\n \"triaglf\", 0x25c4,\n \"triagrt\", 0x25ba,\n \"triagup\", 0x25b2,\n \"ts\", 0x02a6,\n \"tsadi\", 0x05e6,\n \"tsadidagesh\", 0xfb46,\n \"tsadidageshhebrew\", 0xfb46,\n \"tsadihebrew\", 0x05e6,\n \"tsecyrillic\", 0x0446,\n \"tsere\", 0x05b5,\n \"tsere12\", 0x05b5,\n \"tsere1e\", 0x05b5,\n \"tsere2b\", 0x05b5,\n \"tserehebrew\", 0x05b5,\n \"tserenarrowhebrew\", 0x05b5,\n \"tserequarterhebrew\", 0x05b5,\n \"tserewidehebrew\", 0x05b5,\n \"tshecyrillic\", 0x045b,\n \"tsuperior\", 0xf6f3,\n \"ttabengali\", 0x099f,\n \"ttadeva\", 0x091f,\n \"ttagujarati\", 0x0a9f,\n \"ttagurmukhi\", 0x0a1f,\n \"tteharabic\", 0x0679,\n \"ttehfinalarabic\", 0xfb67,\n \"ttehinitialarabic\", 0xfb68,\n \"ttehmedialarabic\", 0xfb69,\n \"tthabengali\", 0x09a0,\n \"tthadeva\", 0x0920,\n \"tthagujarati\", 0x0aa0,\n \"tthagurmukhi\", 0x0a20,\n \"tturned\", 0x0287,\n \"tuhiragana\", 0x3064,\n \"tukatakana\", 0x30c4,\n \"tukatakanahalfwidth\", 0xff82,\n \"tusmallhiragana\", 0x3063,\n \"tusmallkatakana\", 0x30c3,\n \"tusmallkatakanahalfwidth\", 0xff6f,\n \"twelvecircle\", 0x246b,\n \"twelveparen\", 0x247f,\n \"twelveperiod\", 0x2493,\n \"twelveroman\", 0x217b,\n \"twentycircle\", 0x2473,\n \"twentyhangzhou\", 0x5344,\n \"twentyparen\", 0x2487,\n \"twentyperiod\", 0x249b,\n \"two\", 0x0032,\n \"twoarabic\", 0x0662,\n \"twobengali\", 0x09e8,\n \"twocircle\", 0x2461,\n \"twocircleinversesansserif\", 0x278b,\n \"twodeva\", 0x0968,\n \"twodotenleader\", 0x2025,\n \"twodotleader\", 0x2025,\n \"twodotleadervertical\", 0xfe30,\n \"twogujarati\", 0x0ae8,\n \"twogurmukhi\", 0x0a68,\n \"twohackarabic\", 0x0662,\n \"twohangzhou\", 0x3022,\n \"twoideographicparen\", 0x3221,\n \"twoinferior\", 0x2082,\n \"twomonospace\", 0xff12,\n \"twonumeratorbengali\", 0x09f5,\n \"twooldstyle\", 0xf732,\n \"twoparen\", 0x2475,\n \"twoperiod\", 0x2489,\n \"twopersian\", 0x06f2,\n \"tworoman\", 0x2171,\n \"twostroke\", 0x01bb,\n \"twosuperior\", 0x00b2,\n \"twothai\", 0x0e52,\n \"twothirds\", 0x2154,\n \"u\", 0x0075,\n \"uacute\", 0x00fa,\n \"ubar\", 0x0289,\n \"ubengali\", 0x0989,\n \"ubopomofo\", 0x3128,\n \"ubreve\", 0x016d,\n \"ucaron\", 0x01d4,\n \"ucircle\", 0x24e4,\n \"ucircumflex\", 0x00fb,\n \"ucircumflexbelow\", 0x1e77,\n \"ucyrillic\", 0x0443,\n \"udattadeva\", 0x0951,\n \"udblacute\", 0x0171,\n \"udblgrave\", 0x0215,\n \"udeva\", 0x0909,\n \"udieresis\", 0x00fc,\n \"udieresisacute\", 0x01d8,\n \"udieresisbelow\", 0x1e73,\n \"udieresiscaron\", 0x01da,\n \"udieresiscyrillic\", 0x04f1,\n \"udieresisgrave\", 0x01dc,\n \"udieresismacron\", 0x01d6,\n \"udotbelow\", 0x1ee5,\n \"ugrave\", 0x00f9,\n \"ugujarati\", 0x0a89,\n \"ugurmukhi\", 0x0a09,\n \"uhiragana\", 0x3046,\n \"uhookabove\", 0x1ee7,\n \"uhorn\", 0x01b0,\n \"uhornacute\", 0x1ee9,\n \"uhorndotbelow\", 0x1ef1,\n \"uhorngrave\", 0x1eeb,\n \"uhornhookabove\", 0x1eed,\n \"uhorntilde\", 0x1eef,\n \"uhungarumlaut\", 0x0171,\n \"uhungarumlautcyrillic\", 0x04f3,\n \"uinvertedbreve\", 0x0217,\n \"ukatakana\", 0x30a6,\n \"ukatakanahalfwidth\", 0xff73,\n \"ukcyrillic\", 0x0479,\n \"ukorean\", 0x315c,\n \"umacron\", 0x016b,\n \"umacroncyrillic\", 0x04ef,\n \"umacrondieresis\", 0x1e7b,\n \"umatragurmukhi\", 0x0a41,\n \"umonospace\", 0xff55,\n \"underscore\", 0x005f,\n \"underscoredbl\", 0x2017,\n \"underscoremonospace\", 0xff3f,\n \"underscorevertical\", 0xfe33,\n \"underscorewavy\", 0xfe4f,\n \"union\", 0x222a,\n \"universal\", 0x2200,\n \"uogonek\", 0x0173,\n \"uparen\", 0x24b0,\n \"upblock\", 0x2580,\n \"upperdothebrew\", 0x05c4,\n \"upsilon\", 0x03c5,\n \"upsilondieresis\", 0x03cb,\n \"upsilondieresistonos\", 0x03b0,\n \"upsilonlatin\", 0x028a,\n \"upsilontonos\", 0x03cd,\n \"uptackbelowcmb\", 0x031d,\n \"uptackmod\", 0x02d4,\n \"uragurmukhi\", 0x0a73,\n \"uring\", 0x016f,\n \"ushortcyrillic\", 0x045e,\n \"usmallhiragana\", 0x3045,\n \"usmallkatakana\", 0x30a5,\n \"usmallkatakanahalfwidth\", 0xff69,\n \"ustraightcyrillic\", 0x04af,\n \"ustraightstrokecyrillic\", 0x04b1,\n \"utilde\", 0x0169,\n \"utildeacute\", 0x1e79,\n \"utildebelow\", 0x1e75,\n \"uubengali\", 0x098a,\n \"uudeva\", 0x090a,\n \"uugujarati\", 0x0a8a,\n \"uugurmukhi\", 0x0a0a,\n \"uumatragurmukhi\", 0x0a42,\n \"uuvowelsignbengali\", 0x09c2,\n \"uuvowelsigndeva\", 0x0942,\n \"uuvowelsigngujarati\", 0x0ac2,\n \"uvowelsignbengali\", 0x09c1,\n \"uvowelsigndeva\", 0x0941,\n \"uvowelsigngujarati\", 0x0ac1,\n \"v\", 0x0076,\n \"vadeva\", 0x0935,\n \"vagujarati\", 0x0ab5,\n \"vagurmukhi\", 0x0a35,\n \"vakatakana\", 0x30f7,\n \"vav\", 0x05d5,\n \"vavdagesh\", 0xfb35,\n \"vavdagesh65\", 0xfb35,\n \"vavdageshhebrew\", 0xfb35,\n \"vavhebrew\", 0x05d5,\n \"vavholam\", 0xfb4b,\n \"vavholamhebrew\", 0xfb4b,\n \"vavvavhebrew\", 0x05f0,\n \"vavyodhebrew\", 0x05f1,\n \"vcircle\", 0x24e5,\n \"vdotbelow\", 0x1e7f,\n \"vecyrillic\", 0x0432,\n \"veharabic\", 0x06a4,\n \"vehfinalarabic\", 0xfb6b,\n \"vehinitialarabic\", 0xfb6c,\n \"vehmedialarabic\", 0xfb6d,\n \"vekatakana\", 0x30f9,\n \"venus\", 0x2640,\n \"verticalbar\", 0x007c,\n \"verticallineabovecmb\", 0x030d,\n \"verticallinebelowcmb\", 0x0329,\n \"verticallinelowmod\", 0x02cc,\n \"verticallinemod\", 0x02c8,\n \"vewarmenian\", 0x057e,\n \"vhook\", 0x028b,\n \"vikatakana\", 0x30f8,\n \"viramabengali\", 0x09cd,\n \"viramadeva\", 0x094d,\n \"viramagujarati\", 0x0acd,\n \"visargabengali\", 0x0983,\n \"visargadeva\", 0x0903,\n \"visargagujarati\", 0x0a83,\n \"vmonospace\", 0xff56,\n \"voarmenian\", 0x0578,\n \"voicediterationhiragana\", 0x309e,\n \"voicediterationkatakana\", 0x30fe,\n \"voicedmarkkana\", 0x309b,\n \"voicedmarkkanahalfwidth\", 0xff9e,\n \"vokatakana\", 0x30fa,\n \"vparen\", 0x24b1,\n \"vtilde\", 0x1e7d,\n \"vturned\", 0x028c,\n \"vuhiragana\", 0x3094,\n \"vukatakana\", 0x30f4,\n \"w\", 0x0077,\n \"wacute\", 0x1e83,\n \"waekorean\", 0x3159,\n \"wahiragana\", 0x308f,\n \"wakatakana\", 0x30ef,\n \"wakatakanahalfwidth\", 0xff9c,\n \"wakorean\", 0x3158,\n \"wasmallhiragana\", 0x308e,\n \"wasmallkatakana\", 0x30ee,\n \"wattosquare\", 0x3357,\n \"wavedash\", 0x301c,\n \"wavyunderscorevertical\", 0xfe34,\n \"wawarabic\", 0x0648,\n \"wawfinalarabic\", 0xfeee,\n \"wawhamzaabovearabic\", 0x0624,\n \"wawhamzaabovefinalarabic\", 0xfe86,\n \"wbsquare\", 0x33dd,\n \"wcircle\", 0x24e6,\n \"wcircumflex\", 0x0175,\n \"wdieresis\", 0x1e85,\n \"wdotaccent\", 0x1e87,\n \"wdotbelow\", 0x1e89,\n \"wehiragana\", 0x3091,\n \"weierstrass\", 0x2118,\n \"wekatakana\", 0x30f1,\n \"wekorean\", 0x315e,\n \"weokorean\", 0x315d,\n \"wgrave\", 0x1e81,\n \"whitebullet\", 0x25e6,\n \"whitecircle\", 0x25cb,\n \"whitecircleinverse\", 0x25d9,\n \"whitecornerbracketleft\", 0x300e,\n \"whitecornerbracketleftvertical\", 0xfe43,\n \"whitecornerbracketright\", 0x300f,\n \"whitecornerbracketrightvertical\", 0xfe44,\n \"whitediamond\", 0x25c7,\n \"whitediamondcontainingblacksmalldiamond\", 0x25c8,\n \"whitedownpointingsmalltriangle\", 0x25bf,\n \"whitedownpointingtriangle\", 0x25bd,\n \"whiteleftpointingsmalltriangle\", 0x25c3,\n \"whiteleftpointingtriangle\", 0x25c1,\n \"whitelenticularbracketleft\", 0x3016,\n \"whitelenticularbracketright\", 0x3017,\n \"whiterightpointingsmalltriangle\", 0x25b9,\n \"whiterightpointingtriangle\", 0x25b7,\n \"whitesmallsquare\", 0x25ab,\n \"whitesmilingface\", 0x263a,\n \"whitesquare\", 0x25a1,\n \"whitestar\", 0x2606,\n \"whitetelephone\", 0x260f,\n \"whitetortoiseshellbracketleft\", 0x3018,\n \"whitetortoiseshellbracketright\", 0x3019,\n \"whiteuppointingsmalltriangle\", 0x25b5,\n \"whiteuppointingtriangle\", 0x25b3,\n \"wihiragana\", 0x3090,\n \"wikatakana\", 0x30f0,\n \"wikorean\", 0x315f,\n \"wmonospace\", 0xff57,\n \"wohiragana\", 0x3092,\n \"wokatakana\", 0x30f2,\n \"wokatakanahalfwidth\", 0xff66,\n \"won\", 0x20a9,\n \"wonmonospace\", 0xffe6,\n \"wowaenthai\", 0x0e27,\n \"wparen\", 0x24b2,\n \"wring\", 0x1e98,\n \"wsuperior\", 0x02b7,\n \"wturned\", 0x028d,\n \"wynn\", 0x01bf,\n \"x\", 0x0078,\n \"xabovecmb\", 0x033d,\n \"xbopomofo\", 0x3112,\n \"xcircle\", 0x24e7,\n \"xdieresis\", 0x1e8d,\n \"xdotaccent\", 0x1e8b,\n \"xeharmenian\", 0x056d,\n \"xi\", 0x03be,\n \"xmonospace\", 0xff58,\n \"xparen\", 0x24b3,\n \"xsuperior\", 0x02e3,\n \"y\", 0x0079,\n \"yaadosquare\", 0x334e,\n \"yabengali\", 0x09af,\n \"yacute\", 0x00fd,\n \"yadeva\", 0x092f,\n \"yaekorean\", 0x3152,\n \"yagujarati\", 0x0aaf,\n \"yagurmukhi\", 0x0a2f,\n \"yahiragana\", 0x3084,\n \"yakatakana\", 0x30e4,\n \"yakatakanahalfwidth\", 0xff94,\n \"yakorean\", 0x3151,\n \"yamakkanthai\", 0x0e4e,\n \"yasmallhiragana\", 0x3083,\n \"yasmallkatakana\", 0x30e3,\n \"yasmallkatakanahalfwidth\", 0xff6c,\n \"yatcyrillic\", 0x0463,\n \"ycircle\", 0x24e8,\n \"ycircumflex\", 0x0177,\n \"ydieresis\", 0x00ff,\n \"ydotaccent\", 0x1e8f,\n \"ydotbelow\", 0x1ef5,\n \"yeharabic\", 0x064a,\n \"yehbarreearabic\", 0x06d2,\n \"yehbarreefinalarabic\", 0xfbaf,\n \"yehfinalarabic\", 0xfef2,\n \"yehhamzaabovearabic\", 0x0626,\n \"yehhamzaabovefinalarabic\", 0xfe8a,\n \"yehhamzaaboveinitialarabic\", 0xfe8b,\n \"yehhamzaabovemedialarabic\", 0xfe8c,\n \"yehinitialarabic\", 0xfef3,\n \"yehmedialarabic\", 0xfef4,\n \"yehmeeminitialarabic\", 0xfcdd,\n \"yehmeemisolatedarabic\", 0xfc58,\n \"yehnoonfinalarabic\", 0xfc94,\n \"yehthreedotsbelowarabic\", 0x06d1,\n \"yekorean\", 0x3156,\n \"yen\", 0x00a5,\n \"yenmonospace\", 0xffe5,\n \"yeokorean\", 0x3155,\n \"yeorinhieuhkorean\", 0x3186,\n \"yerahbenyomohebrew\", 0x05aa,\n \"yerahbenyomolefthebrew\", 0x05aa,\n \"yericyrillic\", 0x044b,\n \"yerudieresiscyrillic\", 0x04f9,\n \"yesieungkorean\", 0x3181,\n \"yesieungpansioskorean\", 0x3183,\n \"yesieungsioskorean\", 0x3182,\n \"yetivhebrew\", 0x059a,\n \"ygrave\", 0x1ef3,\n \"yhook\", 0x01b4,\n \"yhookabove\", 0x1ef7,\n \"yiarmenian\", 0x0575,\n \"yicyrillic\", 0x0457,\n \"yikorean\", 0x3162,\n \"yinyang\", 0x262f,\n \"yiwnarmenian\", 0x0582,\n \"ymonospace\", 0xff59,\n \"yod\", 0x05d9,\n \"yoddagesh\", 0xfb39,\n \"yoddageshhebrew\", 0xfb39,\n \"yodhebrew\", 0x05d9,\n \"yodyodhebrew\", 0x05f2,\n \"yodyodpatahhebrew\", 0xfb1f,\n \"yohiragana\", 0x3088,\n \"yoikorean\", 0x3189,\n \"yokatakana\", 0x30e8,\n \"yokatakanahalfwidth\", 0xff96,\n \"yokorean\", 0x315b,\n \"yosmallhiragana\", 0x3087,\n \"yosmallkatakana\", 0x30e7,\n \"yosmallkatakanahalfwidth\", 0xff6e,\n \"yotgreek\", 0x03f3,\n \"yoyaekorean\", 0x3188,\n \"yoyakorean\", 0x3187,\n \"yoyakthai\", 0x0e22,\n \"yoyingthai\", 0x0e0d,\n \"yparen\", 0x24b4,\n \"ypogegrammeni\", 0x037a,\n \"ypogegrammenigreekcmb\", 0x0345,\n \"yr\", 0x01a6,\n \"yring\", 0x1e99,\n \"ysuperior\", 0x02b8,\n \"ytilde\", 0x1ef9,\n \"yturned\", 0x028e,\n \"yuhiragana\", 0x3086,\n \"yuikorean\", 0x318c,\n \"yukatakana\", 0x30e6,\n \"yukatakanahalfwidth\", 0xff95,\n \"yukorean\", 0x3160,\n \"yusbigcyrillic\", 0x046b,\n \"yusbigiotifiedcyrillic\", 0x046d,\n \"yuslittlecyrillic\", 0x0467,\n \"yuslittleiotifiedcyrillic\", 0x0469,\n \"yusmallhiragana\", 0x3085,\n \"yusmallkatakana\", 0x30e5,\n \"yusmallkatakanahalfwidth\", 0xff6d,\n \"yuyekorean\", 0x318b,\n \"yuyeokorean\", 0x318a,\n \"yyabengali\", 0x09df,\n \"yyadeva\", 0x095f,\n \"z\", 0x007a,\n \"zaarmenian\", 0x0566,\n \"zacute\", 0x017a,\n \"zadeva\", 0x095b,\n \"zagurmukhi\", 0x0a5b,\n \"zaharabic\", 0x0638,\n \"zahfinalarabic\", 0xfec6,\n \"zahinitialarabic\", 0xfec7,\n \"zahiragana\", 0x3056,\n \"zahmedialarabic\", 0xfec8,\n \"zainarabic\", 0x0632,\n \"zainfinalarabic\", 0xfeb0,\n \"zakatakana\", 0x30b6,\n \"zaqefgadolhebrew\", 0x0595,\n \"zaqefqatanhebrew\", 0x0594,\n \"zarqahebrew\", 0x0598,\n \"zayin\", 0x05d6,\n \"zayindagesh\", 0xfb36,\n \"zayindageshhebrew\", 0xfb36,\n \"zayinhebrew\", 0x05d6,\n \"zbopomofo\", 0x3117,\n \"zcaron\", 0x017e,\n \"zcircle\", 0x24e9,\n \"zcircumflex\", 0x1e91,\n \"zcurl\", 0x0291,\n \"zdot\", 0x017c,\n \"zdotaccent\", 0x017c,\n \"zdotbelow\", 0x1e93,\n \"zecyrillic\", 0x0437,\n \"zedescendercyrillic\", 0x0499,\n \"zedieresiscyrillic\", 0x04df,\n \"zehiragana\", 0x305c,\n \"zekatakana\", 0x30bc,\n \"zero\", 0x0030,\n \"zeroarabic\", 0x0660,\n \"zerobengali\", 0x09e6,\n \"zerodeva\", 0x0966,\n \"zerogujarati\", 0x0ae6,\n \"zerogurmukhi\", 0x0a66,\n \"zerohackarabic\", 0x0660,\n \"zeroinferior\", 0x2080,\n \"zeromonospace\", 0xff10,\n \"zerooldstyle\", 0xf730,\n \"zeropersian\", 0x06f0,\n \"zerosuperior\", 0x2070,\n \"zerothai\", 0x0e50,\n \"zerowidthjoiner\", 0xfeff,\n \"zerowidthnonjoiner\", 0x200c,\n \"zerowidthspace\", 0x200b,\n \"zeta\", 0x03b6,\n \"zhbopomofo\", 0x3113,\n \"zhearmenian\", 0x056a,\n \"zhebrevecyrillic\", 0x04c2,\n \"zhecyrillic\", 0x0436,\n \"zhedescendercyrillic\", 0x0497,\n \"zhedieresiscyrillic\", 0x04dd,\n \"zihiragana\", 0x3058,\n \"zikatakana\", 0x30b8,\n \"zinorhebrew\", 0x05ae,\n \"zlinebelow\", 0x1e95,\n \"zmonospace\", 0xff5a,\n \"zohiragana\", 0x305e,\n \"zokatakana\", 0x30be,\n \"zparen\", 0x24b5,\n \"zretroflexhook\", 0x0290,\n \"zstroke\", 0x01b6,\n \"zuhiragana\", 0x305a,\n \"zukatakana\", 0x30ba,\n \".notdef\", 0x0000,\n\n // TeX-specific glyph names.\n \"angbracketleftbig\", 0x2329,\n \"angbracketleftBig\", 0x2329,\n \"angbracketleftbigg\", 0x2329,\n \"angbracketleftBigg\", 0x2329,\n \"angbracketrightBig\", 0x232a,\n \"angbracketrightbig\", 0x232a,\n \"angbracketrightBigg\", 0x232a,\n \"angbracketrightbigg\", 0x232a,\n \"arrowhookleft\", 0x21aa,\n \"arrowhookright\", 0x21a9,\n \"arrowlefttophalf\", 0x21bc,\n \"arrowleftbothalf\", 0x21bd,\n \"arrownortheast\", 0x2197,\n \"arrownorthwest\", 0x2196,\n \"arrowrighttophalf\", 0x21c0,\n \"arrowrightbothalf\", 0x21c1,\n \"arrowsoutheast\", 0x2198,\n \"arrowsouthwest\", 0x2199,\n \"backslashbig\", 0x2216,\n \"backslashBig\", 0x2216,\n \"backslashBigg\", 0x2216,\n \"backslashbigg\", 0x2216,\n \"bardbl\", 0x2016,\n \"bracehtipdownleft\", 0xfe37,\n \"bracehtipdownright\", 0xfe37,\n \"bracehtipupleft\", 0xfe38,\n \"bracehtipupright\", 0xfe38,\n \"braceleftBig\", 0x007b,\n \"braceleftbig\", 0x007b,\n \"braceleftbigg\", 0x007b,\n \"braceleftBigg\", 0x007b,\n \"bracerightBig\", 0x007d,\n \"bracerightbig\", 0x007d,\n \"bracerightbigg\", 0x007d,\n \"bracerightBigg\", 0x007d,\n \"bracketleftbig\", 0x005b,\n \"bracketleftBig\", 0x005b,\n \"bracketleftbigg\", 0x005b,\n \"bracketleftBigg\", 0x005b,\n \"bracketrightBig\", 0x005d,\n \"bracketrightbig\", 0x005d,\n \"bracketrightbigg\", 0x005d,\n \"bracketrightBigg\", 0x005d,\n \"ceilingleftbig\", 0x2308,\n \"ceilingleftBig\", 0x2308,\n \"ceilingleftBigg\", 0x2308,\n \"ceilingleftbigg\", 0x2308,\n \"ceilingrightbig\", 0x2309,\n \"ceilingrightBig\", 0x2309,\n \"ceilingrightbigg\", 0x2309,\n \"ceilingrightBigg\", 0x2309,\n \"circledotdisplay\", 0x2299,\n \"circledottext\", 0x2299,\n \"circlemultiplydisplay\", 0x2297,\n \"circlemultiplytext\", 0x2297,\n \"circleplusdisplay\", 0x2295,\n \"circleplustext\", 0x2295,\n \"contintegraldisplay\", 0x222e,\n \"contintegraltext\", 0x222e,\n \"coproductdisplay\", 0x2210,\n \"coproducttext\", 0x2210,\n \"floorleftBig\", 0x230a,\n \"floorleftbig\", 0x230a,\n \"floorleftbigg\", 0x230a,\n \"floorleftBigg\", 0x230a,\n \"floorrightbig\", 0x230b,\n \"floorrightBig\", 0x230b,\n \"floorrightBigg\", 0x230b,\n \"floorrightbigg\", 0x230b,\n \"hatwide\", 0x0302,\n \"hatwider\", 0x0302,\n \"hatwidest\", 0x0302,\n \"intercal\", 0x1d40,\n \"integraldisplay\", 0x222b,\n \"integraltext\", 0x222b,\n \"intersectiondisplay\", 0x22c2,\n \"intersectiontext\", 0x22c2,\n \"logicalanddisplay\", 0x2227,\n \"logicalandtext\", 0x2227,\n \"logicalordisplay\", 0x2228,\n \"logicalortext\", 0x2228,\n \"parenleftBig\", 0x0028,\n \"parenleftbig\", 0x0028,\n \"parenleftBigg\", 0x0028,\n \"parenleftbigg\", 0x0028,\n \"parenrightBig\", 0x0029,\n \"parenrightbig\", 0x0029,\n \"parenrightBigg\", 0x0029,\n \"parenrightbigg\", 0x0029,\n \"prime\", 0x2032,\n \"productdisplay\", 0x220f,\n \"producttext\", 0x220f,\n \"radicalbig\", 0x221a,\n \"radicalBig\", 0x221a,\n \"radicalBigg\", 0x221a,\n \"radicalbigg\", 0x221a,\n \"radicalbt\", 0x221a,\n \"radicaltp\", 0x221a,\n \"radicalvertex\", 0x221a,\n \"slashbig\", 0x002f,\n \"slashBig\", 0x002f,\n \"slashBigg\", 0x002f,\n \"slashbigg\", 0x002f,\n \"summationdisplay\", 0x2211,\n \"summationtext\", 0x2211,\n \"tildewide\", 0x02dc,\n \"tildewider\", 0x02dc,\n \"tildewidest\", 0x02dc,\n \"uniondisplay\", 0x22c3,\n \"unionmultidisplay\", 0x228e,\n \"unionmultitext\", 0x228e,\n \"unionsqdisplay\", 0x2294,\n \"unionsqtext\", 0x2294,\n \"uniontext\", 0x22c3,\n \"vextenddouble\", 0x2225,\n \"vextendsingle\", 0x2223,\n ];\n});\n\nconst getDingbatsGlyphsUnicode = getArrayLookupTableFactory(function () {\n // prettier-ignore\n return [\n \"space\", 0x0020,\n \"a1\", 0x2701,\n \"a2\", 0x2702,\n \"a202\", 0x2703,\n \"a3\", 0x2704,\n \"a4\", 0x260e,\n \"a5\", 0x2706,\n \"a119\", 0x2707,\n \"a118\", 0x2708,\n \"a117\", 0x2709,\n \"a11\", 0x261b,\n \"a12\", 0x261e,\n \"a13\", 0x270c,\n \"a14\", 0x270d,\n \"a15\", 0x270e,\n \"a16\", 0x270f,\n \"a105\", 0x2710,\n \"a17\", 0x2711,\n \"a18\", 0x2712,\n \"a19\", 0x2713,\n \"a20\", 0x2714,\n \"a21\", 0x2715,\n \"a22\", 0x2716,\n \"a23\", 0x2717,\n \"a24\", 0x2718,\n \"a25\", 0x2719,\n \"a26\", 0x271a,\n \"a27\", 0x271b,\n \"a28\", 0x271c,\n \"a6\", 0x271d,\n \"a7\", 0x271e,\n \"a8\", 0x271f,\n \"a9\", 0x2720,\n \"a10\", 0x2721,\n \"a29\", 0x2722,\n \"a30\", 0x2723,\n \"a31\", 0x2724,\n \"a32\", 0x2725,\n \"a33\", 0x2726,\n \"a34\", 0x2727,\n \"a35\", 0x2605,\n \"a36\", 0x2729,\n \"a37\", 0x272a,\n \"a38\", 0x272b,\n \"a39\", 0x272c,\n \"a40\", 0x272d,\n \"a41\", 0x272e,\n \"a42\", 0x272f,\n \"a43\", 0x2730,\n \"a44\", 0x2731,\n \"a45\", 0x2732,\n \"a46\", 0x2733,\n \"a47\", 0x2734,\n \"a48\", 0x2735,\n \"a49\", 0x2736,\n \"a50\", 0x2737,\n \"a51\", 0x2738,\n \"a52\", 0x2739,\n \"a53\", 0x273a,\n \"a54\", 0x273b,\n \"a55\", 0x273c,\n \"a56\", 0x273d,\n \"a57\", 0x273e,\n \"a58\", 0x273f,\n \"a59\", 0x2740,\n \"a60\", 0x2741,\n \"a61\", 0x2742,\n \"a62\", 0x2743,\n \"a63\", 0x2744,\n \"a64\", 0x2745,\n \"a65\", 0x2746,\n \"a66\", 0x2747,\n \"a67\", 0x2748,\n \"a68\", 0x2749,\n \"a69\", 0x274a,\n \"a70\", 0x274b,\n \"a71\", 0x25cf,\n \"a72\", 0x274d,\n \"a73\", 0x25a0,\n \"a74\", 0x274f,\n \"a203\", 0x2750,\n \"a75\", 0x2751,\n \"a204\", 0x2752,\n \"a76\", 0x25b2,\n \"a77\", 0x25bc,\n \"a78\", 0x25c6,\n \"a79\", 0x2756,\n \"a81\", 0x25d7,\n \"a82\", 0x2758,\n \"a83\", 0x2759,\n \"a84\", 0x275a,\n \"a97\", 0x275b,\n \"a98\", 0x275c,\n \"a99\", 0x275d,\n \"a100\", 0x275e,\n \"a101\", 0x2761,\n \"a102\", 0x2762,\n \"a103\", 0x2763,\n \"a104\", 0x2764,\n \"a106\", 0x2765,\n \"a107\", 0x2766,\n \"a108\", 0x2767,\n \"a112\", 0x2663,\n \"a111\", 0x2666,\n \"a110\", 0x2665,\n \"a109\", 0x2660,\n \"a120\", 0x2460,\n \"a121\", 0x2461,\n \"a122\", 0x2462,\n \"a123\", 0x2463,\n \"a124\", 0x2464,\n \"a125\", 0x2465,\n \"a126\", 0x2466,\n \"a127\", 0x2467,\n \"a128\", 0x2468,\n \"a129\", 0x2469,\n \"a130\", 0x2776,\n \"a131\", 0x2777,\n \"a132\", 0x2778,\n \"a133\", 0x2779,\n \"a134\", 0x277a,\n \"a135\", 0x277b,\n \"a136\", 0x277c,\n \"a137\", 0x277d,\n \"a138\", 0x277e,\n \"a139\", 0x277f,\n \"a140\", 0x2780,\n \"a141\", 0x2781,\n \"a142\", 0x2782,\n \"a143\", 0x2783,\n \"a144\", 0x2784,\n \"a145\", 0x2785,\n \"a146\", 0x2786,\n \"a147\", 0x2787,\n \"a148\", 0x2788,\n \"a149\", 0x2789,\n \"a150\", 0x278a,\n \"a151\", 0x278b,\n \"a152\", 0x278c,\n \"a153\", 0x278d,\n \"a154\", 0x278e,\n \"a155\", 0x278f,\n \"a156\", 0x2790,\n \"a157\", 0x2791,\n \"a158\", 0x2792,\n \"a159\", 0x2793,\n \"a160\", 0x2794,\n \"a161\", 0x2192,\n \"a163\", 0x2194,\n \"a164\", 0x2195,\n \"a196\", 0x2798,\n \"a165\", 0x2799,\n \"a192\", 0x279a,\n \"a166\", 0x279b,\n \"a167\", 0x279c,\n \"a168\", 0x279d,\n \"a169\", 0x279e,\n \"a170\", 0x279f,\n \"a171\", 0x27a0,\n \"a172\", 0x27a1,\n \"a173\", 0x27a2,\n \"a162\", 0x27a3,\n \"a174\", 0x27a4,\n \"a175\", 0x27a5,\n \"a176\", 0x27a6,\n \"a177\", 0x27a7,\n \"a178\", 0x27a8,\n \"a179\", 0x27a9,\n \"a193\", 0x27aa,\n \"a180\", 0x27ab,\n \"a199\", 0x27ac,\n \"a181\", 0x27ad,\n \"a200\", 0x27ae,\n \"a182\", 0x27af,\n \"a201\", 0x27b1,\n \"a183\", 0x27b2,\n \"a184\", 0x27b3,\n \"a197\", 0x27b4,\n \"a185\", 0x27b5,\n \"a194\", 0x27b6,\n \"a198\", 0x27b7,\n \"a186\", 0x27b8,\n \"a195\", 0x27b9,\n \"a187\", 0x27ba,\n \"a188\", 0x27bb,\n \"a189\", 0x27bc,\n \"a190\", 0x27bd,\n \"a191\", 0x27be,\n \"a89\", 0x2768, // 0xF8D7\n \"a90\", 0x2769, // 0xF8D8\n \"a93\", 0x276a, // 0xF8D9\n \"a94\", 0x276b, // 0xF8DA\n \"a91\", 0x276c, // 0xF8DB\n \"a92\", 0x276d, // 0xF8DC\n \"a205\", 0x276e, // 0xF8DD\n \"a85\", 0x276f, // 0xF8DE\n \"a206\", 0x2770, // 0xF8DF\n \"a86\", 0x2771, // 0xF8E0\n \"a87\", 0x2772, // 0xF8E1\n \"a88\", 0x2773, // 0xF8E2\n \"a95\", 0x2774, // 0xF8E3\n \"a96\", 0x2775, // 0xF8E4\n \".notdef\", 0x0000,\n ];\n});\n\nexport { getDingbatsGlyphsUnicode, getGlyphsUnicode };\n","/* Copyright 2016 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* no-babel-preset */\n\nimport {\n getArrayLookupTableFactory,\n getLookupTableFactory,\n} from \"./core_utils.js\";\n\n// Some characters, e.g. copyrightserif, are mapped to the private use area\n// and might not be displayed using standard fonts. Mapping/hacking well-known\n// chars to the similar equivalents in the normal characters range.\nconst getSpecialPUASymbols = getLookupTableFactory(function (t) {\n t[63721] = 0x00a9; // copyrightsans (0xF8E9) => copyright\n t[63193] = 0x00a9; // copyrightserif (0xF6D9) => copyright\n t[63720] = 0x00ae; // registersans (0xF8E8) => registered\n t[63194] = 0x00ae; // registerserif (0xF6DA) => registered\n t[63722] = 0x2122; // trademarksans (0xF8EA) => trademark\n t[63195] = 0x2122; // trademarkserif (0xF6DB) => trademark\n t[63729] = 0x23a7; // bracelefttp (0xF8F1)\n t[63730] = 0x23a8; // braceleftmid (0xF8F2)\n t[63731] = 0x23a9; // braceleftbt (0xF8F3)\n t[63740] = 0x23ab; // bracerighttp (0xF8FC)\n t[63741] = 0x23ac; // bracerightmid (0xF8FD)\n t[63742] = 0x23ad; // bracerightbt (0xF8FE)\n t[63726] = 0x23a1; // bracketlefttp (0xF8EE)\n t[63727] = 0x23a2; // bracketleftex (0xF8EF)\n t[63728] = 0x23a3; // bracketleftbt (0xF8F0)\n t[63737] = 0x23a4; // bracketrighttp (0xF8F9)\n t[63738] = 0x23a5; // bracketrightex (0xF8FA)\n t[63739] = 0x23a6; // bracketrightbt (0xF8FB)\n t[63723] = 0x239b; // parenlefttp (0xF8EB)\n t[63724] = 0x239c; // parenleftex (0xF8EC)\n t[63725] = 0x239d; // parenleftbt (0xF8ED)\n t[63734] = 0x239e; // parenrighttp (0xF8F6)\n t[63735] = 0x239f; // parenrightex (0xF8F7)\n t[63736] = 0x23a0; // parenrightbt (0xF8F8)\n});\n\nfunction mapSpecialUnicodeValues(code) {\n if (code >= 0xfff0 && code <= 0xffff) {\n // Specials unicode block.\n return 0;\n } else if (code >= 0xf600 && code <= 0xf8ff) {\n return getSpecialPUASymbols()[code] || code;\n } else if (code === /* softhyphen = */ 0x00ad) {\n return 0x002d; // hyphen\n }\n return code;\n}\n\nfunction getUnicodeForGlyph(name, glyphsUnicodeMap) {\n let unicode = glyphsUnicodeMap[name];\n if (unicode !== undefined) {\n return unicode;\n }\n if (!name) {\n return -1;\n }\n // Try to recover valid Unicode values from 'uniXXXX'/'uXXXX{XX}' glyphs.\n if (name[0] === \"u\") {\n const nameLen = name.length;\n let hexStr;\n\n if (nameLen === 7 && name[1] === \"n\" && name[2] === \"i\") {\n // 'uniXXXX'\n hexStr = name.substring(3);\n } else if (nameLen >= 5 && nameLen <= 7) {\n // 'uXXXX{XX}'\n hexStr = name.substring(1);\n } else {\n return -1;\n }\n // Check for upper-case hexadecimal characters, to avoid false positives.\n if (hexStr === hexStr.toUpperCase()) {\n unicode = parseInt(hexStr, 16);\n if (unicode >= 0) {\n return unicode;\n }\n }\n }\n return -1;\n}\n\nconst UnicodeRanges = [\n { begin: 0x0000, end: 0x007f }, // Basic Latin\n { begin: 0x0080, end: 0x00ff }, // Latin-1 Supplement\n { begin: 0x0100, end: 0x017f }, // Latin Extended-A\n { begin: 0x0180, end: 0x024f }, // Latin Extended-B\n { begin: 0x0250, end: 0x02af }, // IPA Extensions\n { begin: 0x02b0, end: 0x02ff }, // Spacing Modifier Letters\n { begin: 0x0300, end: 0x036f }, // Combining Diacritical Marks\n { begin: 0x0370, end: 0x03ff }, // Greek and Coptic\n { begin: 0x2c80, end: 0x2cff }, // Coptic\n { begin: 0x0400, end: 0x04ff }, // Cyrillic\n { begin: 0x0530, end: 0x058f }, // Armenian\n { begin: 0x0590, end: 0x05ff }, // Hebrew\n { begin: 0xa500, end: 0xa63f }, // Vai\n { begin: 0x0600, end: 0x06ff }, // Arabic\n { begin: 0x07c0, end: 0x07ff }, // NKo\n { begin: 0x0900, end: 0x097f }, // Devanagari\n { begin: 0x0980, end: 0x09ff }, // Bengali\n { begin: 0x0a00, end: 0x0a7f }, // Gurmukhi\n { begin: 0x0a80, end: 0x0aff }, // Gujarati\n { begin: 0x0b00, end: 0x0b7f }, // Oriya\n { begin: 0x0b80, end: 0x0bff }, // Tamil\n { begin: 0x0c00, end: 0x0c7f }, // Telugu\n { begin: 0x0c80, end: 0x0cff }, // Kannada\n { begin: 0x0d00, end: 0x0d7f }, // Malayalam\n { begin: 0x0e00, end: 0x0e7f }, // Thai\n { begin: 0x0e80, end: 0x0eff }, // Lao\n { begin: 0x10a0, end: 0x10ff }, // Georgian\n { begin: 0x1b00, end: 0x1b7f }, // Balinese\n { begin: 0x1100, end: 0x11ff }, // Hangul Jamo\n { begin: 0x1e00, end: 0x1eff }, // Latin Extended Additional\n { begin: 0x1f00, end: 0x1fff }, // Greek Extended\n { begin: 0x2000, end: 0x206f }, // General Punctuation\n { begin: 0x2070, end: 0x209f }, // Superscripts And Subscripts\n { begin: 0x20a0, end: 0x20cf }, // Currency Symbol\n { begin: 0x20d0, end: 0x20ff }, // Combining Diacritical Marks\n { begin: 0x2100, end: 0x214f }, // Letterlike Symbols\n { begin: 0x2150, end: 0x218f }, // Number Forms\n { begin: 0x2190, end: 0x21ff }, // Arrows\n { begin: 0x2200, end: 0x22ff }, // Mathematical Operators\n { begin: 0x2300, end: 0x23ff }, // Miscellaneous Technical\n { begin: 0x2400, end: 0x243f }, // Control Pictures\n { begin: 0x2440, end: 0x245f }, // Optical Character Recognition\n { begin: 0x2460, end: 0x24ff }, // Enclosed Alphanumerics\n { begin: 0x2500, end: 0x257f }, // Box Drawing\n { begin: 0x2580, end: 0x259f }, // Block Elements\n { begin: 0x25a0, end: 0x25ff }, // Geometric Shapes\n { begin: 0x2600, end: 0x26ff }, // Miscellaneous Symbols\n { begin: 0x2700, end: 0x27bf }, // Dingbats\n { begin: 0x3000, end: 0x303f }, // CJK Symbols And Punctuation\n { begin: 0x3040, end: 0x309f }, // Hiragana\n { begin: 0x30a0, end: 0x30ff }, // Katakana\n { begin: 0x3100, end: 0x312f }, // Bopomofo\n { begin: 0x3130, end: 0x318f }, // Hangul Compatibility Jamo\n { begin: 0xa840, end: 0xa87f }, // Phags-pa\n { begin: 0x3200, end: 0x32ff }, // Enclosed CJK Letters And Months\n { begin: 0x3300, end: 0x33ff }, // CJK Compatibility\n { begin: 0xac00, end: 0xd7af }, // Hangul Syllables\n { begin: 0xd800, end: 0xdfff }, // Non-Plane 0 *\n { begin: 0x10900, end: 0x1091f }, // Phoenicia\n { begin: 0x4e00, end: 0x9fff }, // CJK Unified Ideographs\n { begin: 0xe000, end: 0xf8ff }, // Private Use Area (plane 0)\n { begin: 0x31c0, end: 0x31ef }, // CJK Strokes\n { begin: 0xfb00, end: 0xfb4f }, // Alphabetic Presentation Forms\n { begin: 0xfb50, end: 0xfdff }, // Arabic Presentation Forms-A\n { begin: 0xfe20, end: 0xfe2f }, // Combining Half Marks\n { begin: 0xfe10, end: 0xfe1f }, // Vertical Forms\n { begin: 0xfe50, end: 0xfe6f }, // Small Form Variants\n { begin: 0xfe70, end: 0xfeff }, // Arabic Presentation Forms-B\n { begin: 0xff00, end: 0xffef }, // Halfwidth And Fullwidth Forms\n { begin: 0xfff0, end: 0xffff }, // Specials\n { begin: 0x0f00, end: 0x0fff }, // Tibetan\n { begin: 0x0700, end: 0x074f }, // Syriac\n { begin: 0x0780, end: 0x07bf }, // Thaana\n { begin: 0x0d80, end: 0x0dff }, // Sinhala\n { begin: 0x1000, end: 0x109f }, // Myanmar\n { begin: 0x1200, end: 0x137f }, // Ethiopic\n { begin: 0x13a0, end: 0x13ff }, // Cherokee\n { begin: 0x1400, end: 0x167f }, // Unified Canadian Aboriginal Syllabics\n { begin: 0x1680, end: 0x169f }, // Ogham\n { begin: 0x16a0, end: 0x16ff }, // Runic\n { begin: 0x1780, end: 0x17ff }, // Khmer\n { begin: 0x1800, end: 0x18af }, // Mongolian\n { begin: 0x2800, end: 0x28ff }, // Braille Patterns\n { begin: 0xa000, end: 0xa48f }, // Yi Syllables\n { begin: 0x1700, end: 0x171f }, // Tagalog\n { begin: 0x10300, end: 0x1032f }, // Old Italic\n { begin: 0x10330, end: 0x1034f }, // Gothic\n { begin: 0x10400, end: 0x1044f }, // Deseret\n { begin: 0x1d000, end: 0x1d0ff }, // Byzantine Musical Symbols\n { begin: 0x1d400, end: 0x1d7ff }, // Mathematical Alphanumeric Symbols\n { begin: 0xff000, end: 0xffffd }, // Private Use (plane 15)\n { begin: 0xfe00, end: 0xfe0f }, // Variation Selectors\n { begin: 0xe0000, end: 0xe007f }, // Tags\n { begin: 0x1900, end: 0x194f }, // Limbu\n { begin: 0x1950, end: 0x197f }, // Tai Le\n { begin: 0x1980, end: 0x19df }, // New Tai Lue\n { begin: 0x1a00, end: 0x1a1f }, // Buginese\n { begin: 0x2c00, end: 0x2c5f }, // Glagolitic\n { begin: 0x2d30, end: 0x2d7f }, // Tifinagh\n { begin: 0x4dc0, end: 0x4dff }, // Yijing Hexagram Symbols\n { begin: 0xa800, end: 0xa82f }, // Syloti Nagri\n { begin: 0x10000, end: 0x1007f }, // Linear B Syllabary\n { begin: 0x10140, end: 0x1018f }, // Ancient Greek Numbers\n { begin: 0x10380, end: 0x1039f }, // Ugaritic\n { begin: 0x103a0, end: 0x103df }, // Old Persian\n { begin: 0x10450, end: 0x1047f }, // Shavian\n { begin: 0x10480, end: 0x104af }, // Osmanya\n { begin: 0x10800, end: 0x1083f }, // Cypriot Syllabary\n { begin: 0x10a00, end: 0x10a5f }, // Kharoshthi\n { begin: 0x1d300, end: 0x1d35f }, // Tai Xuan Jing Symbols\n { begin: 0x12000, end: 0x123ff }, // Cuneiform\n { begin: 0x1d360, end: 0x1d37f }, // Counting Rod Numerals\n { begin: 0x1b80, end: 0x1bbf }, // Sundanese\n { begin: 0x1c00, end: 0x1c4f }, // Lepcha\n { begin: 0x1c50, end: 0x1c7f }, // Ol Chiki\n { begin: 0xa880, end: 0xa8df }, // Saurashtra\n { begin: 0xa900, end: 0xa92f }, // Kayah Li\n { begin: 0xa930, end: 0xa95f }, // Rejang\n { begin: 0xaa00, end: 0xaa5f }, // Cham\n { begin: 0x10190, end: 0x101cf }, // Ancient Symbols\n { begin: 0x101d0, end: 0x101ff }, // Phaistos Disc\n { begin: 0x102a0, end: 0x102df }, // Carian\n { begin: 0x1f030, end: 0x1f09f }, // Domino Tiles\n];\n\nfunction getUnicodeRangeFor(value) {\n for (let i = 0, ii = UnicodeRanges.length; i < ii; i++) {\n const range = UnicodeRanges[i];\n if (value >= range.begin && value < range.end) {\n return i;\n }\n }\n return -1;\n}\n\nfunction isRTLRangeFor(value) {\n let range = UnicodeRanges[13];\n if (value >= range.begin && value < range.end) {\n return true;\n }\n range = UnicodeRanges[11];\n if (value >= range.begin && value < range.end) {\n return true;\n }\n return false;\n}\n\n// The normalization table is obtained by filtering the Unicode characters\n// database with entries.\nconst getNormalizedUnicodes = getArrayLookupTableFactory(function () {\n // prettier-ignore\n return [\n \"\\u00A8\", \"\\u0020\\u0308\",\n \"\\u00AF\", \"\\u0020\\u0304\",\n \"\\u00B4\", \"\\u0020\\u0301\",\n \"\\u00B5\", \"\\u03BC\",\n \"\\u00B8\", \"\\u0020\\u0327\",\n \"\\u0132\", \"\\u0049\\u004A\",\n \"\\u0133\", \"\\u0069\\u006A\",\n \"\\u013F\", \"\\u004C\\u00B7\",\n \"\\u0140\", \"\\u006C\\u00B7\",\n \"\\u0149\", \"\\u02BC\\u006E\",\n \"\\u017F\", \"\\u0073\",\n \"\\u01C4\", \"\\u0044\\u017D\",\n \"\\u01C5\", \"\\u0044\\u017E\",\n \"\\u01C6\", \"\\u0064\\u017E\",\n \"\\u01C7\", \"\\u004C\\u004A\",\n \"\\u01C8\", \"\\u004C\\u006A\",\n \"\\u01C9\", \"\\u006C\\u006A\",\n \"\\u01CA\", \"\\u004E\\u004A\",\n \"\\u01CB\", \"\\u004E\\u006A\",\n \"\\u01CC\", \"\\u006E\\u006A\",\n \"\\u01F1\", \"\\u0044\\u005A\",\n \"\\u01F2\", \"\\u0044\\u007A\",\n \"\\u01F3\", \"\\u0064\\u007A\",\n \"\\u02D8\", \"\\u0020\\u0306\",\n \"\\u02D9\", \"\\u0020\\u0307\",\n \"\\u02DA\", \"\\u0020\\u030A\",\n \"\\u02DB\", \"\\u0020\\u0328\",\n \"\\u02DC\", \"\\u0020\\u0303\",\n \"\\u02DD\", \"\\u0020\\u030B\",\n \"\\u037A\", \"\\u0020\\u0345\",\n \"\\u0384\", \"\\u0020\\u0301\",\n \"\\u03D0\", \"\\u03B2\",\n \"\\u03D1\", \"\\u03B8\",\n \"\\u03D2\", \"\\u03A5\",\n \"\\u03D5\", \"\\u03C6\",\n \"\\u03D6\", \"\\u03C0\",\n \"\\u03F0\", \"\\u03BA\",\n \"\\u03F1\", \"\\u03C1\",\n \"\\u03F2\", \"\\u03C2\",\n \"\\u03F4\", \"\\u0398\",\n \"\\u03F5\", \"\\u03B5\",\n \"\\u03F9\", \"\\u03A3\",\n \"\\u0587\", \"\\u0565\\u0582\",\n \"\\u0675\", \"\\u0627\\u0674\",\n \"\\u0676\", \"\\u0648\\u0674\",\n \"\\u0677\", \"\\u06C7\\u0674\",\n \"\\u0678\", \"\\u064A\\u0674\",\n \"\\u0E33\", \"\\u0E4D\\u0E32\",\n \"\\u0EB3\", \"\\u0ECD\\u0EB2\",\n \"\\u0EDC\", \"\\u0EAB\\u0E99\",\n \"\\u0EDD\", \"\\u0EAB\\u0EA1\",\n \"\\u0F77\", \"\\u0FB2\\u0F81\",\n \"\\u0F79\", \"\\u0FB3\\u0F81\",\n \"\\u1E9A\", \"\\u0061\\u02BE\",\n \"\\u1FBD\", \"\\u0020\\u0313\",\n \"\\u1FBF\", \"\\u0020\\u0313\",\n \"\\u1FC0\", \"\\u0020\\u0342\",\n \"\\u1FFE\", \"\\u0020\\u0314\",\n \"\\u2002\", \"\\u0020\",\n \"\\u2003\", \"\\u0020\",\n \"\\u2004\", \"\\u0020\",\n \"\\u2005\", \"\\u0020\",\n \"\\u2006\", \"\\u0020\",\n \"\\u2008\", \"\\u0020\",\n \"\\u2009\", \"\\u0020\",\n \"\\u200A\", \"\\u0020\",\n \"\\u2017\", \"\\u0020\\u0333\",\n \"\\u2024\", \"\\u002E\",\n \"\\u2025\", \"\\u002E\\u002E\",\n \"\\u2026\", \"\\u002E\\u002E\\u002E\",\n \"\\u2033\", \"\\u2032\\u2032\",\n \"\\u2034\", \"\\u2032\\u2032\\u2032\",\n \"\\u2036\", \"\\u2035\\u2035\",\n \"\\u2037\", \"\\u2035\\u2035\\u2035\",\n \"\\u203C\", \"\\u0021\\u0021\",\n \"\\u203E\", \"\\u0020\\u0305\",\n \"\\u2047\", \"\\u003F\\u003F\",\n \"\\u2048\", \"\\u003F\\u0021\",\n \"\\u2049\", \"\\u0021\\u003F\",\n \"\\u2057\", \"\\u2032\\u2032\\u2032\\u2032\",\n \"\\u205F\", \"\\u0020\",\n \"\\u20A8\", \"\\u0052\\u0073\",\n \"\\u2100\", \"\\u0061\\u002F\\u0063\",\n \"\\u2101\", \"\\u0061\\u002F\\u0073\",\n \"\\u2103\", \"\\u00B0\\u0043\",\n \"\\u2105\", \"\\u0063\\u002F\\u006F\",\n \"\\u2106\", \"\\u0063\\u002F\\u0075\",\n \"\\u2107\", \"\\u0190\",\n \"\\u2109\", \"\\u00B0\\u0046\",\n \"\\u2116\", \"\\u004E\\u006F\",\n \"\\u2121\", \"\\u0054\\u0045\\u004C\",\n \"\\u2135\", \"\\u05D0\",\n \"\\u2136\", \"\\u05D1\",\n \"\\u2137\", \"\\u05D2\",\n \"\\u2138\", \"\\u05D3\",\n \"\\u213B\", \"\\u0046\\u0041\\u0058\",\n \"\\u2160\", \"\\u0049\",\n \"\\u2161\", \"\\u0049\\u0049\",\n \"\\u2162\", \"\\u0049\\u0049\\u0049\",\n \"\\u2163\", \"\\u0049\\u0056\",\n \"\\u2164\", \"\\u0056\",\n \"\\u2165\", \"\\u0056\\u0049\",\n \"\\u2166\", \"\\u0056\\u0049\\u0049\",\n \"\\u2167\", \"\\u0056\\u0049\\u0049\\u0049\",\n \"\\u2168\", \"\\u0049\\u0058\",\n \"\\u2169\", \"\\u0058\",\n \"\\u216A\", \"\\u0058\\u0049\",\n \"\\u216B\", \"\\u0058\\u0049\\u0049\",\n \"\\u216C\", \"\\u004C\",\n \"\\u216D\", \"\\u0043\",\n \"\\u216E\", \"\\u0044\",\n \"\\u216F\", \"\\u004D\",\n \"\\u2170\", \"\\u0069\",\n \"\\u2171\", \"\\u0069\\u0069\",\n \"\\u2172\", \"\\u0069\\u0069\\u0069\",\n \"\\u2173\", \"\\u0069\\u0076\",\n \"\\u2174\", \"\\u0076\",\n \"\\u2175\", \"\\u0076\\u0069\",\n \"\\u2176\", \"\\u0076\\u0069\\u0069\",\n \"\\u2177\", \"\\u0076\\u0069\\u0069\\u0069\",\n \"\\u2178\", \"\\u0069\\u0078\",\n \"\\u2179\", \"\\u0078\",\n \"\\u217A\", \"\\u0078\\u0069\",\n \"\\u217B\", \"\\u0078\\u0069\\u0069\",\n \"\\u217C\", \"\\u006C\",\n \"\\u217D\", \"\\u0063\",\n \"\\u217E\", \"\\u0064\",\n \"\\u217F\", \"\\u006D\",\n \"\\u222C\", \"\\u222B\\u222B\",\n \"\\u222D\", \"\\u222B\\u222B\\u222B\",\n \"\\u222F\", \"\\u222E\\u222E\",\n \"\\u2230\", \"\\u222E\\u222E\\u222E\",\n \"\\u2474\", \"\\u0028\\u0031\\u0029\",\n \"\\u2475\", \"\\u0028\\u0032\\u0029\",\n \"\\u2476\", \"\\u0028\\u0033\\u0029\",\n \"\\u2477\", \"\\u0028\\u0034\\u0029\",\n \"\\u2478\", \"\\u0028\\u0035\\u0029\",\n \"\\u2479\", \"\\u0028\\u0036\\u0029\",\n \"\\u247A\", \"\\u0028\\u0037\\u0029\",\n \"\\u247B\", \"\\u0028\\u0038\\u0029\",\n \"\\u247C\", \"\\u0028\\u0039\\u0029\",\n \"\\u247D\", \"\\u0028\\u0031\\u0030\\u0029\",\n \"\\u247E\", \"\\u0028\\u0031\\u0031\\u0029\",\n \"\\u247F\", \"\\u0028\\u0031\\u0032\\u0029\",\n \"\\u2480\", \"\\u0028\\u0031\\u0033\\u0029\",\n \"\\u2481\", \"\\u0028\\u0031\\u0034\\u0029\",\n \"\\u2482\", \"\\u0028\\u0031\\u0035\\u0029\",\n \"\\u2483\", \"\\u0028\\u0031\\u0036\\u0029\",\n \"\\u2484\", \"\\u0028\\u0031\\u0037\\u0029\",\n \"\\u2485\", \"\\u0028\\u0031\\u0038\\u0029\",\n \"\\u2486\", \"\\u0028\\u0031\\u0039\\u0029\",\n \"\\u2487\", \"\\u0028\\u0032\\u0030\\u0029\",\n \"\\u2488\", \"\\u0031\\u002E\",\n \"\\u2489\", \"\\u0032\\u002E\",\n \"\\u248A\", \"\\u0033\\u002E\",\n \"\\u248B\", \"\\u0034\\u002E\",\n \"\\u248C\", \"\\u0035\\u002E\",\n \"\\u248D\", \"\\u0036\\u002E\",\n \"\\u248E\", \"\\u0037\\u002E\",\n \"\\u248F\", \"\\u0038\\u002E\",\n \"\\u2490\", \"\\u0039\\u002E\",\n \"\\u2491\", \"\\u0031\\u0030\\u002E\",\n \"\\u2492\", \"\\u0031\\u0031\\u002E\",\n \"\\u2493\", \"\\u0031\\u0032\\u002E\",\n \"\\u2494\", \"\\u0031\\u0033\\u002E\",\n \"\\u2495\", \"\\u0031\\u0034\\u002E\",\n \"\\u2496\", \"\\u0031\\u0035\\u002E\",\n \"\\u2497\", \"\\u0031\\u0036\\u002E\",\n \"\\u2498\", \"\\u0031\\u0037\\u002E\",\n \"\\u2499\", \"\\u0031\\u0038\\u002E\",\n \"\\u249A\", \"\\u0031\\u0039\\u002E\",\n \"\\u249B\", \"\\u0032\\u0030\\u002E\",\n \"\\u249C\", \"\\u0028\\u0061\\u0029\",\n \"\\u249D\", \"\\u0028\\u0062\\u0029\",\n \"\\u249E\", \"\\u0028\\u0063\\u0029\",\n \"\\u249F\", \"\\u0028\\u0064\\u0029\",\n \"\\u24A0\", \"\\u0028\\u0065\\u0029\",\n \"\\u24A1\", \"\\u0028\\u0066\\u0029\",\n \"\\u24A2\", \"\\u0028\\u0067\\u0029\",\n \"\\u24A3\", \"\\u0028\\u0068\\u0029\",\n \"\\u24A4\", \"\\u0028\\u0069\\u0029\",\n \"\\u24A5\", \"\\u0028\\u006A\\u0029\",\n \"\\u24A6\", \"\\u0028\\u006B\\u0029\",\n \"\\u24A7\", \"\\u0028\\u006C\\u0029\",\n \"\\u24A8\", \"\\u0028\\u006D\\u0029\",\n \"\\u24A9\", \"\\u0028\\u006E\\u0029\",\n \"\\u24AA\", \"\\u0028\\u006F\\u0029\",\n \"\\u24AB\", \"\\u0028\\u0070\\u0029\",\n \"\\u24AC\", \"\\u0028\\u0071\\u0029\",\n \"\\u24AD\", \"\\u0028\\u0072\\u0029\",\n \"\\u24AE\", \"\\u0028\\u0073\\u0029\",\n \"\\u24AF\", \"\\u0028\\u0074\\u0029\",\n \"\\u24B0\", \"\\u0028\\u0075\\u0029\",\n \"\\u24B1\", \"\\u0028\\u0076\\u0029\",\n \"\\u24B2\", \"\\u0028\\u0077\\u0029\",\n \"\\u24B3\", \"\\u0028\\u0078\\u0029\",\n \"\\u24B4\", \"\\u0028\\u0079\\u0029\",\n \"\\u24B5\", \"\\u0028\\u007A\\u0029\",\n \"\\u2A0C\", \"\\u222B\\u222B\\u222B\\u222B\",\n \"\\u2A74\", \"\\u003A\\u003A\\u003D\",\n \"\\u2A75\", \"\\u003D\\u003D\",\n \"\\u2A76\", \"\\u003D\\u003D\\u003D\",\n \"\\u2E9F\", \"\\u6BCD\",\n \"\\u2EF3\", \"\\u9F9F\",\n \"\\u2F00\", \"\\u4E00\",\n \"\\u2F01\", \"\\u4E28\",\n \"\\u2F02\", \"\\u4E36\",\n \"\\u2F03\", \"\\u4E3F\",\n \"\\u2F04\", \"\\u4E59\",\n \"\\u2F05\", \"\\u4E85\",\n \"\\u2F06\", \"\\u4E8C\",\n \"\\u2F07\", \"\\u4EA0\",\n \"\\u2F08\", \"\\u4EBA\",\n \"\\u2F09\", \"\\u513F\",\n \"\\u2F0A\", \"\\u5165\",\n \"\\u2F0B\", \"\\u516B\",\n \"\\u2F0C\", \"\\u5182\",\n \"\\u2F0D\", \"\\u5196\",\n \"\\u2F0E\", \"\\u51AB\",\n \"\\u2F0F\", \"\\u51E0\",\n \"\\u2F10\", \"\\u51F5\",\n \"\\u2F11\", \"\\u5200\",\n \"\\u2F12\", \"\\u529B\",\n \"\\u2F13\", \"\\u52F9\",\n \"\\u2F14\", \"\\u5315\",\n \"\\u2F15\", \"\\u531A\",\n \"\\u2F16\", \"\\u5338\",\n \"\\u2F17\", \"\\u5341\",\n \"\\u2F18\", \"\\u535C\",\n \"\\u2F19\", \"\\u5369\",\n \"\\u2F1A\", \"\\u5382\",\n \"\\u2F1B\", \"\\u53B6\",\n \"\\u2F1C\", \"\\u53C8\",\n \"\\u2F1D\", \"\\u53E3\",\n \"\\u2F1E\", \"\\u56D7\",\n \"\\u2F1F\", \"\\u571F\",\n \"\\u2F20\", \"\\u58EB\",\n \"\\u2F21\", \"\\u5902\",\n \"\\u2F22\", \"\\u590A\",\n \"\\u2F23\", \"\\u5915\",\n \"\\u2F24\", \"\\u5927\",\n \"\\u2F25\", \"\\u5973\",\n \"\\u2F26\", \"\\u5B50\",\n \"\\u2F27\", \"\\u5B80\",\n \"\\u2F28\", \"\\u5BF8\",\n \"\\u2F29\", \"\\u5C0F\",\n \"\\u2F2A\", \"\\u5C22\",\n \"\\u2F2B\", \"\\u5C38\",\n \"\\u2F2C\", \"\\u5C6E\",\n \"\\u2F2D\", \"\\u5C71\",\n \"\\u2F2E\", \"\\u5DDB\",\n \"\\u2F2F\", \"\\u5DE5\",\n \"\\u2F30\", \"\\u5DF1\",\n \"\\u2F31\", \"\\u5DFE\",\n \"\\u2F32\", \"\\u5E72\",\n \"\\u2F33\", \"\\u5E7A\",\n \"\\u2F34\", \"\\u5E7F\",\n \"\\u2F35\", \"\\u5EF4\",\n \"\\u2F36\", \"\\u5EFE\",\n \"\\u2F37\", \"\\u5F0B\",\n \"\\u2F38\", \"\\u5F13\",\n \"\\u2F39\", \"\\u5F50\",\n \"\\u2F3A\", \"\\u5F61\",\n \"\\u2F3B\", \"\\u5F73\",\n \"\\u2F3C\", \"\\u5FC3\",\n \"\\u2F3D\", \"\\u6208\",\n \"\\u2F3E\", \"\\u6236\",\n \"\\u2F3F\", \"\\u624B\",\n \"\\u2F40\", \"\\u652F\",\n \"\\u2F41\", \"\\u6534\",\n \"\\u2F42\", \"\\u6587\",\n \"\\u2F43\", \"\\u6597\",\n \"\\u2F44\", \"\\u65A4\",\n \"\\u2F45\", \"\\u65B9\",\n \"\\u2F46\", \"\\u65E0\",\n \"\\u2F47\", \"\\u65E5\",\n \"\\u2F48\", \"\\u66F0\",\n \"\\u2F49\", \"\\u6708\",\n \"\\u2F4A\", \"\\u6728\",\n \"\\u2F4B\", \"\\u6B20\",\n \"\\u2F4C\", \"\\u6B62\",\n \"\\u2F4D\", \"\\u6B79\",\n \"\\u2F4E\", \"\\u6BB3\",\n \"\\u2F4F\", \"\\u6BCB\",\n \"\\u2F50\", \"\\u6BD4\",\n \"\\u2F51\", \"\\u6BDB\",\n \"\\u2F52\", \"\\u6C0F\",\n \"\\u2F53\", \"\\u6C14\",\n \"\\u2F54\", \"\\u6C34\",\n \"\\u2F55\", \"\\u706B\",\n \"\\u2F56\", \"\\u722A\",\n \"\\u2F57\", \"\\u7236\",\n \"\\u2F58\", \"\\u723B\",\n \"\\u2F59\", \"\\u723F\",\n \"\\u2F5A\", \"\\u7247\",\n \"\\u2F5B\", \"\\u7259\",\n \"\\u2F5C\", \"\\u725B\",\n \"\\u2F5D\", \"\\u72AC\",\n \"\\u2F5E\", \"\\u7384\",\n \"\\u2F5F\", \"\\u7389\",\n \"\\u2F60\", \"\\u74DC\",\n \"\\u2F61\", \"\\u74E6\",\n \"\\u2F62\", \"\\u7518\",\n \"\\u2F63\", \"\\u751F\",\n \"\\u2F64\", \"\\u7528\",\n \"\\u2F65\", \"\\u7530\",\n \"\\u2F66\", \"\\u758B\",\n \"\\u2F67\", \"\\u7592\",\n \"\\u2F68\", \"\\u7676\",\n \"\\u2F69\", \"\\u767D\",\n \"\\u2F6A\", \"\\u76AE\",\n \"\\u2F6B\", \"\\u76BF\",\n \"\\u2F6C\", \"\\u76EE\",\n \"\\u2F6D\", \"\\u77DB\",\n \"\\u2F6E\", \"\\u77E2\",\n \"\\u2F6F\", \"\\u77F3\",\n \"\\u2F70\", \"\\u793A\",\n \"\\u2F71\", \"\\u79B8\",\n \"\\u2F72\", \"\\u79BE\",\n \"\\u2F73\", \"\\u7A74\",\n \"\\u2F74\", \"\\u7ACB\",\n \"\\u2F75\", \"\\u7AF9\",\n \"\\u2F76\", \"\\u7C73\",\n \"\\u2F77\", \"\\u7CF8\",\n \"\\u2F78\", \"\\u7F36\",\n \"\\u2F79\", \"\\u7F51\",\n \"\\u2F7A\", \"\\u7F8A\",\n \"\\u2F7B\", \"\\u7FBD\",\n \"\\u2F7C\", \"\\u8001\",\n \"\\u2F7D\", \"\\u800C\",\n \"\\u2F7E\", \"\\u8012\",\n \"\\u2F7F\", \"\\u8033\",\n \"\\u2F80\", \"\\u807F\",\n \"\\u2F81\", \"\\u8089\",\n \"\\u2F82\", \"\\u81E3\",\n \"\\u2F83\", \"\\u81EA\",\n \"\\u2F84\", \"\\u81F3\",\n \"\\u2F85\", \"\\u81FC\",\n \"\\u2F86\", \"\\u820C\",\n \"\\u2F87\", \"\\u821B\",\n \"\\u2F88\", \"\\u821F\",\n \"\\u2F89\", \"\\u826E\",\n \"\\u2F8A\", \"\\u8272\",\n \"\\u2F8B\", \"\\u8278\",\n \"\\u2F8C\", \"\\u864D\",\n \"\\u2F8D\", \"\\u866B\",\n \"\\u2F8E\", \"\\u8840\",\n \"\\u2F8F\", \"\\u884C\",\n \"\\u2F90\", \"\\u8863\",\n \"\\u2F91\", \"\\u897E\",\n \"\\u2F92\", \"\\u898B\",\n \"\\u2F93\", \"\\u89D2\",\n \"\\u2F94\", \"\\u8A00\",\n \"\\u2F95\", \"\\u8C37\",\n \"\\u2F96\", \"\\u8C46\",\n \"\\u2F97\", \"\\u8C55\",\n \"\\u2F98\", \"\\u8C78\",\n \"\\u2F99\", \"\\u8C9D\",\n \"\\u2F9A\", \"\\u8D64\",\n \"\\u2F9B\", \"\\u8D70\",\n \"\\u2F9C\", \"\\u8DB3\",\n \"\\u2F9D\", \"\\u8EAB\",\n \"\\u2F9E\", \"\\u8ECA\",\n \"\\u2F9F\", \"\\u8F9B\",\n \"\\u2FA0\", \"\\u8FB0\",\n \"\\u2FA1\", \"\\u8FB5\",\n \"\\u2FA2\", \"\\u9091\",\n \"\\u2FA3\", \"\\u9149\",\n \"\\u2FA4\", \"\\u91C6\",\n \"\\u2FA5\", \"\\u91CC\",\n \"\\u2FA6\", \"\\u91D1\",\n \"\\u2FA7\", \"\\u9577\",\n \"\\u2FA8\", \"\\u9580\",\n \"\\u2FA9\", \"\\u961C\",\n \"\\u2FAA\", \"\\u96B6\",\n \"\\u2FAB\", \"\\u96B9\",\n \"\\u2FAC\", \"\\u96E8\",\n \"\\u2FAD\", \"\\u9751\",\n \"\\u2FAE\", \"\\u975E\",\n \"\\u2FAF\", \"\\u9762\",\n \"\\u2FB0\", \"\\u9769\",\n \"\\u2FB1\", \"\\u97CB\",\n \"\\u2FB2\", \"\\u97ED\",\n \"\\u2FB3\", \"\\u97F3\",\n \"\\u2FB4\", \"\\u9801\",\n \"\\u2FB5\", \"\\u98A8\",\n \"\\u2FB6\", \"\\u98DB\",\n \"\\u2FB7\", \"\\u98DF\",\n \"\\u2FB8\", \"\\u9996\",\n \"\\u2FB9\", \"\\u9999\",\n \"\\u2FBA\", \"\\u99AC\",\n \"\\u2FBB\", \"\\u9AA8\",\n \"\\u2FBC\", \"\\u9AD8\",\n \"\\u2FBD\", \"\\u9ADF\",\n \"\\u2FBE\", \"\\u9B25\",\n \"\\u2FBF\", \"\\u9B2F\",\n \"\\u2FC0\", \"\\u9B32\",\n \"\\u2FC1\", \"\\u9B3C\",\n \"\\u2FC2\", \"\\u9B5A\",\n \"\\u2FC3\", \"\\u9CE5\",\n \"\\u2FC4\", \"\\u9E75\",\n \"\\u2FC5\", \"\\u9E7F\",\n \"\\u2FC6\", \"\\u9EA5\",\n \"\\u2FC7\", \"\\u9EBB\",\n \"\\u2FC8\", \"\\u9EC3\",\n \"\\u2FC9\", \"\\u9ECD\",\n \"\\u2FCA\", \"\\u9ED1\",\n \"\\u2FCB\", \"\\u9EF9\",\n \"\\u2FCC\", \"\\u9EFD\",\n \"\\u2FCD\", \"\\u9F0E\",\n \"\\u2FCE\", \"\\u9F13\",\n \"\\u2FCF\", \"\\u9F20\",\n \"\\u2FD0\", \"\\u9F3B\",\n \"\\u2FD1\", \"\\u9F4A\",\n \"\\u2FD2\", \"\\u9F52\",\n \"\\u2FD3\", \"\\u9F8D\",\n \"\\u2FD4\", \"\\u9F9C\",\n \"\\u2FD5\", \"\\u9FA0\",\n \"\\u3036\", \"\\u3012\",\n \"\\u3038\", \"\\u5341\",\n \"\\u3039\", \"\\u5344\",\n \"\\u303A\", \"\\u5345\",\n \"\\u309B\", \"\\u0020\\u3099\",\n \"\\u309C\", \"\\u0020\\u309A\",\n \"\\u3131\", \"\\u1100\",\n \"\\u3132\", \"\\u1101\",\n \"\\u3133\", \"\\u11AA\",\n \"\\u3134\", \"\\u1102\",\n \"\\u3135\", \"\\u11AC\",\n \"\\u3136\", \"\\u11AD\",\n \"\\u3137\", \"\\u1103\",\n \"\\u3138\", \"\\u1104\",\n \"\\u3139\", \"\\u1105\",\n \"\\u313A\", \"\\u11B0\",\n \"\\u313B\", \"\\u11B1\",\n \"\\u313C\", \"\\u11B2\",\n \"\\u313D\", \"\\u11B3\",\n \"\\u313E\", \"\\u11B4\",\n \"\\u313F\", \"\\u11B5\",\n \"\\u3140\", \"\\u111A\",\n \"\\u3141\", \"\\u1106\",\n \"\\u3142\", \"\\u1107\",\n \"\\u3143\", \"\\u1108\",\n \"\\u3144\", \"\\u1121\",\n \"\\u3145\", \"\\u1109\",\n \"\\u3146\", \"\\u110A\",\n \"\\u3147\", \"\\u110B\",\n \"\\u3148\", \"\\u110C\",\n \"\\u3149\", \"\\u110D\",\n \"\\u314A\", \"\\u110E\",\n \"\\u314B\", \"\\u110F\",\n \"\\u314C\", \"\\u1110\",\n \"\\u314D\", \"\\u1111\",\n \"\\u314E\", \"\\u1112\",\n \"\\u314F\", \"\\u1161\",\n \"\\u3150\", \"\\u1162\",\n \"\\u3151\", \"\\u1163\",\n \"\\u3152\", \"\\u1164\",\n \"\\u3153\", \"\\u1165\",\n \"\\u3154\", \"\\u1166\",\n \"\\u3155\", \"\\u1167\",\n \"\\u3156\", \"\\u1168\",\n \"\\u3157\", \"\\u1169\",\n \"\\u3158\", \"\\u116A\",\n \"\\u3159\", \"\\u116B\",\n \"\\u315A\", \"\\u116C\",\n \"\\u315B\", \"\\u116D\",\n \"\\u315C\", \"\\u116E\",\n \"\\u315D\", \"\\u116F\",\n \"\\u315E\", \"\\u1170\",\n \"\\u315F\", \"\\u1171\",\n \"\\u3160\", \"\\u1172\",\n \"\\u3161\", \"\\u1173\",\n \"\\u3162\", \"\\u1174\",\n \"\\u3163\", \"\\u1175\",\n \"\\u3164\", \"\\u1160\",\n \"\\u3165\", \"\\u1114\",\n \"\\u3166\", \"\\u1115\",\n \"\\u3167\", \"\\u11C7\",\n \"\\u3168\", \"\\u11C8\",\n \"\\u3169\", \"\\u11CC\",\n \"\\u316A\", \"\\u11CE\",\n \"\\u316B\", \"\\u11D3\",\n \"\\u316C\", \"\\u11D7\",\n \"\\u316D\", \"\\u11D9\",\n \"\\u316E\", \"\\u111C\",\n \"\\u316F\", \"\\u11DD\",\n \"\\u3170\", \"\\u11DF\",\n \"\\u3171\", \"\\u111D\",\n \"\\u3172\", \"\\u111E\",\n \"\\u3173\", \"\\u1120\",\n \"\\u3174\", \"\\u1122\",\n \"\\u3175\", \"\\u1123\",\n \"\\u3176\", \"\\u1127\",\n \"\\u3177\", \"\\u1129\",\n \"\\u3178\", \"\\u112B\",\n \"\\u3179\", \"\\u112C\",\n \"\\u317A\", \"\\u112D\",\n \"\\u317B\", \"\\u112E\",\n \"\\u317C\", \"\\u112F\",\n \"\\u317D\", \"\\u1132\",\n \"\\u317E\", \"\\u1136\",\n \"\\u317F\", \"\\u1140\",\n \"\\u3180\", \"\\u1147\",\n \"\\u3181\", \"\\u114C\",\n \"\\u3182\", \"\\u11F1\",\n \"\\u3183\", \"\\u11F2\",\n \"\\u3184\", \"\\u1157\",\n \"\\u3185\", \"\\u1158\",\n \"\\u3186\", \"\\u1159\",\n \"\\u3187\", \"\\u1184\",\n \"\\u3188\", \"\\u1185\",\n \"\\u3189\", \"\\u1188\",\n \"\\u318A\", \"\\u1191\",\n \"\\u318B\", \"\\u1192\",\n \"\\u318C\", \"\\u1194\",\n \"\\u318D\", \"\\u119E\",\n \"\\u318E\", \"\\u11A1\",\n \"\\u3200\", \"\\u0028\\u1100\\u0029\",\n \"\\u3201\", \"\\u0028\\u1102\\u0029\",\n \"\\u3202\", \"\\u0028\\u1103\\u0029\",\n \"\\u3203\", \"\\u0028\\u1105\\u0029\",\n \"\\u3204\", \"\\u0028\\u1106\\u0029\",\n \"\\u3205\", \"\\u0028\\u1107\\u0029\",\n \"\\u3206\", \"\\u0028\\u1109\\u0029\",\n \"\\u3207\", \"\\u0028\\u110B\\u0029\",\n \"\\u3208\", \"\\u0028\\u110C\\u0029\",\n \"\\u3209\", \"\\u0028\\u110E\\u0029\",\n \"\\u320A\", \"\\u0028\\u110F\\u0029\",\n \"\\u320B\", \"\\u0028\\u1110\\u0029\",\n \"\\u320C\", \"\\u0028\\u1111\\u0029\",\n \"\\u320D\", \"\\u0028\\u1112\\u0029\",\n \"\\u320E\", \"\\u0028\\u1100\\u1161\\u0029\",\n \"\\u320F\", \"\\u0028\\u1102\\u1161\\u0029\",\n \"\\u3210\", \"\\u0028\\u1103\\u1161\\u0029\",\n \"\\u3211\", \"\\u0028\\u1105\\u1161\\u0029\",\n \"\\u3212\", \"\\u0028\\u1106\\u1161\\u0029\",\n \"\\u3213\", \"\\u0028\\u1107\\u1161\\u0029\",\n \"\\u3214\", \"\\u0028\\u1109\\u1161\\u0029\",\n \"\\u3215\", \"\\u0028\\u110B\\u1161\\u0029\",\n \"\\u3216\", \"\\u0028\\u110C\\u1161\\u0029\",\n \"\\u3217\", \"\\u0028\\u110E\\u1161\\u0029\",\n \"\\u3218\", \"\\u0028\\u110F\\u1161\\u0029\",\n \"\\u3219\", \"\\u0028\\u1110\\u1161\\u0029\",\n \"\\u321A\", \"\\u0028\\u1111\\u1161\\u0029\",\n \"\\u321B\", \"\\u0028\\u1112\\u1161\\u0029\",\n \"\\u321C\", \"\\u0028\\u110C\\u116E\\u0029\",\n \"\\u321D\", \"\\u0028\\u110B\\u1169\\u110C\\u1165\\u11AB\\u0029\",\n \"\\u321E\", \"\\u0028\\u110B\\u1169\\u1112\\u116E\\u0029\",\n \"\\u3220\", \"\\u0028\\u4E00\\u0029\",\n \"\\u3221\", \"\\u0028\\u4E8C\\u0029\",\n \"\\u3222\", \"\\u0028\\u4E09\\u0029\",\n \"\\u3223\", \"\\u0028\\u56DB\\u0029\",\n \"\\u3224\", \"\\u0028\\u4E94\\u0029\",\n \"\\u3225\", \"\\u0028\\u516D\\u0029\",\n \"\\u3226\", \"\\u0028\\u4E03\\u0029\",\n \"\\u3227\", \"\\u0028\\u516B\\u0029\",\n \"\\u3228\", \"\\u0028\\u4E5D\\u0029\",\n \"\\u3229\", \"\\u0028\\u5341\\u0029\",\n \"\\u322A\", \"\\u0028\\u6708\\u0029\",\n \"\\u322B\", \"\\u0028\\u706B\\u0029\",\n \"\\u322C\", \"\\u0028\\u6C34\\u0029\",\n \"\\u322D\", \"\\u0028\\u6728\\u0029\",\n \"\\u322E\", \"\\u0028\\u91D1\\u0029\",\n \"\\u322F\", \"\\u0028\\u571F\\u0029\",\n \"\\u3230\", \"\\u0028\\u65E5\\u0029\",\n \"\\u3231\", \"\\u0028\\u682A\\u0029\",\n \"\\u3232\", \"\\u0028\\u6709\\u0029\",\n \"\\u3233\", \"\\u0028\\u793E\\u0029\",\n \"\\u3234\", \"\\u0028\\u540D\\u0029\",\n \"\\u3235\", \"\\u0028\\u7279\\u0029\",\n \"\\u3236\", \"\\u0028\\u8CA1\\u0029\",\n \"\\u3237\", \"\\u0028\\u795D\\u0029\",\n \"\\u3238\", \"\\u0028\\u52B4\\u0029\",\n \"\\u3239\", \"\\u0028\\u4EE3\\u0029\",\n \"\\u323A\", \"\\u0028\\u547C\\u0029\",\n \"\\u323B\", \"\\u0028\\u5B66\\u0029\",\n \"\\u323C\", \"\\u0028\\u76E3\\u0029\",\n \"\\u323D\", \"\\u0028\\u4F01\\u0029\",\n \"\\u323E\", \"\\u0028\\u8CC7\\u0029\",\n \"\\u323F\", \"\\u0028\\u5354\\u0029\",\n \"\\u3240\", \"\\u0028\\u796D\\u0029\",\n \"\\u3241\", \"\\u0028\\u4F11\\u0029\",\n \"\\u3242\", \"\\u0028\\u81EA\\u0029\",\n \"\\u3243\", \"\\u0028\\u81F3\\u0029\",\n \"\\u32C0\", \"\\u0031\\u6708\",\n \"\\u32C1\", \"\\u0032\\u6708\",\n \"\\u32C2\", \"\\u0033\\u6708\",\n \"\\u32C3\", \"\\u0034\\u6708\",\n \"\\u32C4\", \"\\u0035\\u6708\",\n \"\\u32C5\", \"\\u0036\\u6708\",\n \"\\u32C6\", \"\\u0037\\u6708\",\n \"\\u32C7\", \"\\u0038\\u6708\",\n \"\\u32C8\", \"\\u0039\\u6708\",\n \"\\u32C9\", \"\\u0031\\u0030\\u6708\",\n \"\\u32CA\", \"\\u0031\\u0031\\u6708\",\n \"\\u32CB\", \"\\u0031\\u0032\\u6708\",\n \"\\u3358\", \"\\u0030\\u70B9\",\n \"\\u3359\", \"\\u0031\\u70B9\",\n \"\\u335A\", \"\\u0032\\u70B9\",\n \"\\u335B\", \"\\u0033\\u70B9\",\n \"\\u335C\", \"\\u0034\\u70B9\",\n \"\\u335D\", \"\\u0035\\u70B9\",\n \"\\u335E\", \"\\u0036\\u70B9\",\n \"\\u335F\", \"\\u0037\\u70B9\",\n \"\\u3360\", \"\\u0038\\u70B9\",\n \"\\u3361\", \"\\u0039\\u70B9\",\n \"\\u3362\", \"\\u0031\\u0030\\u70B9\",\n \"\\u3363\", \"\\u0031\\u0031\\u70B9\",\n \"\\u3364\", \"\\u0031\\u0032\\u70B9\",\n \"\\u3365\", \"\\u0031\\u0033\\u70B9\",\n \"\\u3366\", \"\\u0031\\u0034\\u70B9\",\n \"\\u3367\", \"\\u0031\\u0035\\u70B9\",\n \"\\u3368\", \"\\u0031\\u0036\\u70B9\",\n \"\\u3369\", \"\\u0031\\u0037\\u70B9\",\n \"\\u336A\", \"\\u0031\\u0038\\u70B9\",\n \"\\u336B\", \"\\u0031\\u0039\\u70B9\",\n \"\\u336C\", \"\\u0032\\u0030\\u70B9\",\n \"\\u336D\", \"\\u0032\\u0031\\u70B9\",\n \"\\u336E\", \"\\u0032\\u0032\\u70B9\",\n \"\\u336F\", \"\\u0032\\u0033\\u70B9\",\n \"\\u3370\", \"\\u0032\\u0034\\u70B9\",\n \"\\u33E0\", \"\\u0031\\u65E5\",\n \"\\u33E1\", \"\\u0032\\u65E5\",\n \"\\u33E2\", \"\\u0033\\u65E5\",\n \"\\u33E3\", \"\\u0034\\u65E5\",\n \"\\u33E4\", \"\\u0035\\u65E5\",\n \"\\u33E5\", \"\\u0036\\u65E5\",\n \"\\u33E6\", \"\\u0037\\u65E5\",\n \"\\u33E7\", \"\\u0038\\u65E5\",\n \"\\u33E8\", \"\\u0039\\u65E5\",\n \"\\u33E9\", \"\\u0031\\u0030\\u65E5\",\n \"\\u33EA\", \"\\u0031\\u0031\\u65E5\",\n \"\\u33EB\", \"\\u0031\\u0032\\u65E5\",\n \"\\u33EC\", \"\\u0031\\u0033\\u65E5\",\n \"\\u33ED\", \"\\u0031\\u0034\\u65E5\",\n \"\\u33EE\", \"\\u0031\\u0035\\u65E5\",\n \"\\u33EF\", \"\\u0031\\u0036\\u65E5\",\n \"\\u33F0\", \"\\u0031\\u0037\\u65E5\",\n \"\\u33F1\", \"\\u0031\\u0038\\u65E5\",\n \"\\u33F2\", \"\\u0031\\u0039\\u65E5\",\n \"\\u33F3\", \"\\u0032\\u0030\\u65E5\",\n \"\\u33F4\", \"\\u0032\\u0031\\u65E5\",\n \"\\u33F5\", \"\\u0032\\u0032\\u65E5\",\n \"\\u33F6\", \"\\u0032\\u0033\\u65E5\",\n \"\\u33F7\", \"\\u0032\\u0034\\u65E5\",\n \"\\u33F8\", \"\\u0032\\u0035\\u65E5\",\n \"\\u33F9\", \"\\u0032\\u0036\\u65E5\",\n \"\\u33FA\", \"\\u0032\\u0037\\u65E5\",\n \"\\u33FB\", \"\\u0032\\u0038\\u65E5\",\n \"\\u33FC\", \"\\u0032\\u0039\\u65E5\",\n \"\\u33FD\", \"\\u0033\\u0030\\u65E5\",\n \"\\u33FE\", \"\\u0033\\u0031\\u65E5\",\n \"\\uFB00\", \"\\u0066\\u0066\",\n \"\\uFB01\", \"\\u0066\\u0069\",\n \"\\uFB02\", \"\\u0066\\u006C\",\n \"\\uFB03\", \"\\u0066\\u0066\\u0069\",\n \"\\uFB04\", \"\\u0066\\u0066\\u006C\",\n \"\\uFB05\", \"\\u017F\\u0074\",\n \"\\uFB06\", \"\\u0073\\u0074\",\n \"\\uFB13\", \"\\u0574\\u0576\",\n \"\\uFB14\", \"\\u0574\\u0565\",\n \"\\uFB15\", \"\\u0574\\u056B\",\n \"\\uFB16\", \"\\u057E\\u0576\",\n \"\\uFB17\", \"\\u0574\\u056D\",\n \"\\uFB4F\", \"\\u05D0\\u05DC\",\n \"\\uFB50\", \"\\u0671\",\n \"\\uFB51\", \"\\u0671\",\n \"\\uFB52\", \"\\u067B\",\n \"\\uFB53\", \"\\u067B\",\n \"\\uFB54\", \"\\u067B\",\n \"\\uFB55\", \"\\u067B\",\n \"\\uFB56\", \"\\u067E\",\n \"\\uFB57\", \"\\u067E\",\n \"\\uFB58\", \"\\u067E\",\n \"\\uFB59\", \"\\u067E\",\n \"\\uFB5A\", \"\\u0680\",\n \"\\uFB5B\", \"\\u0680\",\n \"\\uFB5C\", \"\\u0680\",\n \"\\uFB5D\", \"\\u0680\",\n \"\\uFB5E\", \"\\u067A\",\n \"\\uFB5F\", \"\\u067A\",\n \"\\uFB60\", \"\\u067A\",\n \"\\uFB61\", \"\\u067A\",\n \"\\uFB62\", \"\\u067F\",\n \"\\uFB63\", \"\\u067F\",\n \"\\uFB64\", \"\\u067F\",\n \"\\uFB65\", \"\\u067F\",\n \"\\uFB66\", \"\\u0679\",\n \"\\uFB67\", \"\\u0679\",\n \"\\uFB68\", \"\\u0679\",\n \"\\uFB69\", \"\\u0679\",\n \"\\uFB6A\", \"\\u06A4\",\n \"\\uFB6B\", \"\\u06A4\",\n \"\\uFB6C\", \"\\u06A4\",\n \"\\uFB6D\", \"\\u06A4\",\n \"\\uFB6E\", \"\\u06A6\",\n \"\\uFB6F\", \"\\u06A6\",\n \"\\uFB70\", \"\\u06A6\",\n \"\\uFB71\", \"\\u06A6\",\n \"\\uFB72\", \"\\u0684\",\n \"\\uFB73\", \"\\u0684\",\n \"\\uFB74\", \"\\u0684\",\n \"\\uFB75\", \"\\u0684\",\n \"\\uFB76\", \"\\u0683\",\n \"\\uFB77\", \"\\u0683\",\n \"\\uFB78\", \"\\u0683\",\n \"\\uFB79\", \"\\u0683\",\n \"\\uFB7A\", \"\\u0686\",\n \"\\uFB7B\", \"\\u0686\",\n \"\\uFB7C\", \"\\u0686\",\n \"\\uFB7D\", \"\\u0686\",\n \"\\uFB7E\", \"\\u0687\",\n \"\\uFB7F\", \"\\u0687\",\n \"\\uFB80\", \"\\u0687\",\n \"\\uFB81\", \"\\u0687\",\n \"\\uFB82\", \"\\u068D\",\n \"\\uFB83\", \"\\u068D\",\n \"\\uFB84\", \"\\u068C\",\n \"\\uFB85\", \"\\u068C\",\n \"\\uFB86\", \"\\u068E\",\n \"\\uFB87\", \"\\u068E\",\n \"\\uFB88\", \"\\u0688\",\n \"\\uFB89\", \"\\u0688\",\n \"\\uFB8A\", \"\\u0698\",\n \"\\uFB8B\", \"\\u0698\",\n \"\\uFB8C\", \"\\u0691\",\n \"\\uFB8D\", \"\\u0691\",\n \"\\uFB8E\", \"\\u06A9\",\n \"\\uFB8F\", \"\\u06A9\",\n \"\\uFB90\", \"\\u06A9\",\n \"\\uFB91\", \"\\u06A9\",\n \"\\uFB92\", \"\\u06AF\",\n \"\\uFB93\", \"\\u06AF\",\n \"\\uFB94\", \"\\u06AF\",\n \"\\uFB95\", \"\\u06AF\",\n \"\\uFB96\", \"\\u06B3\",\n \"\\uFB97\", \"\\u06B3\",\n \"\\uFB98\", \"\\u06B3\",\n \"\\uFB99\", \"\\u06B3\",\n \"\\uFB9A\", \"\\u06B1\",\n \"\\uFB9B\", \"\\u06B1\",\n \"\\uFB9C\", \"\\u06B1\",\n \"\\uFB9D\", \"\\u06B1\",\n \"\\uFB9E\", \"\\u06BA\",\n \"\\uFB9F\", \"\\u06BA\",\n \"\\uFBA0\", \"\\u06BB\",\n \"\\uFBA1\", \"\\u06BB\",\n \"\\uFBA2\", \"\\u06BB\",\n \"\\uFBA3\", \"\\u06BB\",\n \"\\uFBA4\", \"\\u06C0\",\n \"\\uFBA5\", \"\\u06C0\",\n \"\\uFBA6\", \"\\u06C1\",\n \"\\uFBA7\", \"\\u06C1\",\n \"\\uFBA8\", \"\\u06C1\",\n \"\\uFBA9\", \"\\u06C1\",\n \"\\uFBAA\", \"\\u06BE\",\n \"\\uFBAB\", \"\\u06BE\",\n \"\\uFBAC\", \"\\u06BE\",\n \"\\uFBAD\", \"\\u06BE\",\n \"\\uFBAE\", \"\\u06D2\",\n \"\\uFBAF\", \"\\u06D2\",\n \"\\uFBB0\", \"\\u06D3\",\n \"\\uFBB1\", \"\\u06D3\",\n \"\\uFBD3\", \"\\u06AD\",\n \"\\uFBD4\", \"\\u06AD\",\n \"\\uFBD5\", \"\\u06AD\",\n \"\\uFBD6\", \"\\u06AD\",\n \"\\uFBD7\", \"\\u06C7\",\n \"\\uFBD8\", \"\\u06C7\",\n \"\\uFBD9\", \"\\u06C6\",\n \"\\uFBDA\", \"\\u06C6\",\n \"\\uFBDB\", \"\\u06C8\",\n \"\\uFBDC\", \"\\u06C8\",\n \"\\uFBDD\", \"\\u0677\",\n \"\\uFBDE\", \"\\u06CB\",\n \"\\uFBDF\", \"\\u06CB\",\n \"\\uFBE0\", \"\\u06C5\",\n \"\\uFBE1\", \"\\u06C5\",\n \"\\uFBE2\", \"\\u06C9\",\n \"\\uFBE3\", \"\\u06C9\",\n \"\\uFBE4\", \"\\u06D0\",\n \"\\uFBE5\", \"\\u06D0\",\n \"\\uFBE6\", \"\\u06D0\",\n \"\\uFBE7\", \"\\u06D0\",\n \"\\uFBE8\", \"\\u0649\",\n \"\\uFBE9\", \"\\u0649\",\n \"\\uFBEA\", \"\\u0626\\u0627\",\n \"\\uFBEB\", \"\\u0626\\u0627\",\n \"\\uFBEC\", \"\\u0626\\u06D5\",\n \"\\uFBED\", \"\\u0626\\u06D5\",\n \"\\uFBEE\", \"\\u0626\\u0648\",\n \"\\uFBEF\", \"\\u0626\\u0648\",\n \"\\uFBF0\", \"\\u0626\\u06C7\",\n \"\\uFBF1\", \"\\u0626\\u06C7\",\n \"\\uFBF2\", \"\\u0626\\u06C6\",\n \"\\uFBF3\", \"\\u0626\\u06C6\",\n \"\\uFBF4\", \"\\u0626\\u06C8\",\n \"\\uFBF5\", \"\\u0626\\u06C8\",\n \"\\uFBF6\", \"\\u0626\\u06D0\",\n \"\\uFBF7\", \"\\u0626\\u06D0\",\n \"\\uFBF8\", \"\\u0626\\u06D0\",\n \"\\uFBF9\", \"\\u0626\\u0649\",\n \"\\uFBFA\", \"\\u0626\\u0649\",\n \"\\uFBFB\", \"\\u0626\\u0649\",\n \"\\uFBFC\", \"\\u06CC\",\n \"\\uFBFD\", \"\\u06CC\",\n \"\\uFBFE\", \"\\u06CC\",\n \"\\uFBFF\", \"\\u06CC\",\n \"\\uFC00\", \"\\u0626\\u062C\",\n \"\\uFC01\", \"\\u0626\\u062D\",\n \"\\uFC02\", \"\\u0626\\u0645\",\n \"\\uFC03\", \"\\u0626\\u0649\",\n \"\\uFC04\", \"\\u0626\\u064A\",\n \"\\uFC05\", \"\\u0628\\u062C\",\n \"\\uFC06\", \"\\u0628\\u062D\",\n \"\\uFC07\", \"\\u0628\\u062E\",\n \"\\uFC08\", \"\\u0628\\u0645\",\n \"\\uFC09\", \"\\u0628\\u0649\",\n \"\\uFC0A\", \"\\u0628\\u064A\",\n \"\\uFC0B\", \"\\u062A\\u062C\",\n \"\\uFC0C\", \"\\u062A\\u062D\",\n \"\\uFC0D\", \"\\u062A\\u062E\",\n \"\\uFC0E\", \"\\u062A\\u0645\",\n \"\\uFC0F\", \"\\u062A\\u0649\",\n \"\\uFC10\", \"\\u062A\\u064A\",\n \"\\uFC11\", \"\\u062B\\u062C\",\n \"\\uFC12\", \"\\u062B\\u0645\",\n \"\\uFC13\", \"\\u062B\\u0649\",\n \"\\uFC14\", \"\\u062B\\u064A\",\n \"\\uFC15\", \"\\u062C\\u062D\",\n \"\\uFC16\", \"\\u062C\\u0645\",\n \"\\uFC17\", \"\\u062D\\u062C\",\n \"\\uFC18\", \"\\u062D\\u0645\",\n \"\\uFC19\", \"\\u062E\\u062C\",\n \"\\uFC1A\", \"\\u062E\\u062D\",\n \"\\uFC1B\", \"\\u062E\\u0645\",\n \"\\uFC1C\", \"\\u0633\\u062C\",\n \"\\uFC1D\", \"\\u0633\\u062D\",\n \"\\uFC1E\", \"\\u0633\\u062E\",\n \"\\uFC1F\", \"\\u0633\\u0645\",\n \"\\uFC20\", \"\\u0635\\u062D\",\n \"\\uFC21\", \"\\u0635\\u0645\",\n \"\\uFC22\", \"\\u0636\\u062C\",\n \"\\uFC23\", \"\\u0636\\u062D\",\n \"\\uFC24\", \"\\u0636\\u062E\",\n \"\\uFC25\", \"\\u0636\\u0645\",\n \"\\uFC26\", \"\\u0637\\u062D\",\n \"\\uFC27\", \"\\u0637\\u0645\",\n \"\\uFC28\", \"\\u0638\\u0645\",\n \"\\uFC29\", \"\\u0639\\u062C\",\n \"\\uFC2A\", \"\\u0639\\u0645\",\n \"\\uFC2B\", \"\\u063A\\u062C\",\n \"\\uFC2C\", \"\\u063A\\u0645\",\n \"\\uFC2D\", \"\\u0641\\u062C\",\n \"\\uFC2E\", \"\\u0641\\u062D\",\n \"\\uFC2F\", \"\\u0641\\u062E\",\n \"\\uFC30\", \"\\u0641\\u0645\",\n \"\\uFC31\", \"\\u0641\\u0649\",\n \"\\uFC32\", \"\\u0641\\u064A\",\n \"\\uFC33\", \"\\u0642\\u062D\",\n \"\\uFC34\", \"\\u0642\\u0645\",\n \"\\uFC35\", \"\\u0642\\u0649\",\n \"\\uFC36\", \"\\u0642\\u064A\",\n \"\\uFC37\", \"\\u0643\\u0627\",\n \"\\uFC38\", \"\\u0643\\u062C\",\n \"\\uFC39\", \"\\u0643\\u062D\",\n \"\\uFC3A\", \"\\u0643\\u062E\",\n \"\\uFC3B\", \"\\u0643\\u0644\",\n \"\\uFC3C\", \"\\u0643\\u0645\",\n \"\\uFC3D\", \"\\u0643\\u0649\",\n \"\\uFC3E\", \"\\u0643\\u064A\",\n \"\\uFC3F\", \"\\u0644\\u062C\",\n \"\\uFC40\", \"\\u0644\\u062D\",\n \"\\uFC41\", \"\\u0644\\u062E\",\n \"\\uFC42\", \"\\u0644\\u0645\",\n \"\\uFC43\", \"\\u0644\\u0649\",\n \"\\uFC44\", \"\\u0644\\u064A\",\n \"\\uFC45\", \"\\u0645\\u062C\",\n \"\\uFC46\", \"\\u0645\\u062D\",\n \"\\uFC47\", \"\\u0645\\u062E\",\n \"\\uFC48\", \"\\u0645\\u0645\",\n \"\\uFC49\", \"\\u0645\\u0649\",\n \"\\uFC4A\", \"\\u0645\\u064A\",\n \"\\uFC4B\", \"\\u0646\\u062C\",\n \"\\uFC4C\", \"\\u0646\\u062D\",\n \"\\uFC4D\", \"\\u0646\\u062E\",\n \"\\uFC4E\", \"\\u0646\\u0645\",\n \"\\uFC4F\", \"\\u0646\\u0649\",\n \"\\uFC50\", \"\\u0646\\u064A\",\n \"\\uFC51\", \"\\u0647\\u062C\",\n \"\\uFC52\", \"\\u0647\\u0645\",\n \"\\uFC53\", \"\\u0647\\u0649\",\n \"\\uFC54\", \"\\u0647\\u064A\",\n \"\\uFC55\", \"\\u064A\\u062C\",\n \"\\uFC56\", \"\\u064A\\u062D\",\n \"\\uFC57\", \"\\u064A\\u062E\",\n \"\\uFC58\", \"\\u064A\\u0645\",\n \"\\uFC59\", \"\\u064A\\u0649\",\n \"\\uFC5A\", \"\\u064A\\u064A\",\n \"\\uFC5B\", \"\\u0630\\u0670\",\n \"\\uFC5C\", \"\\u0631\\u0670\",\n \"\\uFC5D\", \"\\u0649\\u0670\",\n \"\\uFC5E\", \"\\u0020\\u064C\\u0651\",\n \"\\uFC5F\", \"\\u0020\\u064D\\u0651\",\n \"\\uFC60\", \"\\u0020\\u064E\\u0651\",\n \"\\uFC61\", \"\\u0020\\u064F\\u0651\",\n \"\\uFC62\", \"\\u0020\\u0650\\u0651\",\n \"\\uFC63\", \"\\u0020\\u0651\\u0670\",\n \"\\uFC64\", \"\\u0626\\u0631\",\n \"\\uFC65\", \"\\u0626\\u0632\",\n \"\\uFC66\", \"\\u0626\\u0645\",\n \"\\uFC67\", \"\\u0626\\u0646\",\n \"\\uFC68\", \"\\u0626\\u0649\",\n \"\\uFC69\", \"\\u0626\\u064A\",\n \"\\uFC6A\", \"\\u0628\\u0631\",\n \"\\uFC6B\", \"\\u0628\\u0632\",\n \"\\uFC6C\", \"\\u0628\\u0645\",\n \"\\uFC6D\", \"\\u0628\\u0646\",\n \"\\uFC6E\", \"\\u0628\\u0649\",\n \"\\uFC6F\", \"\\u0628\\u064A\",\n \"\\uFC70\", \"\\u062A\\u0631\",\n \"\\uFC71\", \"\\u062A\\u0632\",\n \"\\uFC72\", \"\\u062A\\u0645\",\n \"\\uFC73\", \"\\u062A\\u0646\",\n \"\\uFC74\", \"\\u062A\\u0649\",\n \"\\uFC75\", \"\\u062A\\u064A\",\n \"\\uFC76\", \"\\u062B\\u0631\",\n \"\\uFC77\", \"\\u062B\\u0632\",\n \"\\uFC78\", \"\\u062B\\u0645\",\n \"\\uFC79\", \"\\u062B\\u0646\",\n \"\\uFC7A\", \"\\u062B\\u0649\",\n \"\\uFC7B\", \"\\u062B\\u064A\",\n \"\\uFC7C\", \"\\u0641\\u0649\",\n \"\\uFC7D\", \"\\u0641\\u064A\",\n \"\\uFC7E\", \"\\u0642\\u0649\",\n \"\\uFC7F\", \"\\u0642\\u064A\",\n \"\\uFC80\", \"\\u0643\\u0627\",\n \"\\uFC81\", \"\\u0643\\u0644\",\n \"\\uFC82\", \"\\u0643\\u0645\",\n \"\\uFC83\", \"\\u0643\\u0649\",\n \"\\uFC84\", \"\\u0643\\u064A\",\n \"\\uFC85\", \"\\u0644\\u0645\",\n \"\\uFC86\", \"\\u0644\\u0649\",\n \"\\uFC87\", \"\\u0644\\u064A\",\n \"\\uFC88\", \"\\u0645\\u0627\",\n \"\\uFC89\", \"\\u0645\\u0645\",\n \"\\uFC8A\", \"\\u0646\\u0631\",\n \"\\uFC8B\", \"\\u0646\\u0632\",\n \"\\uFC8C\", \"\\u0646\\u0645\",\n \"\\uFC8D\", \"\\u0646\\u0646\",\n \"\\uFC8E\", \"\\u0646\\u0649\",\n \"\\uFC8F\", \"\\u0646\\u064A\",\n \"\\uFC90\", \"\\u0649\\u0670\",\n \"\\uFC91\", \"\\u064A\\u0631\",\n \"\\uFC92\", \"\\u064A\\u0632\",\n \"\\uFC93\", \"\\u064A\\u0645\",\n \"\\uFC94\", \"\\u064A\\u0646\",\n \"\\uFC95\", \"\\u064A\\u0649\",\n \"\\uFC96\", \"\\u064A\\u064A\",\n \"\\uFC97\", \"\\u0626\\u062C\",\n \"\\uFC98\", \"\\u0626\\u062D\",\n \"\\uFC99\", \"\\u0626\\u062E\",\n \"\\uFC9A\", \"\\u0626\\u0645\",\n \"\\uFC9B\", \"\\u0626\\u0647\",\n \"\\uFC9C\", \"\\u0628\\u062C\",\n \"\\uFC9D\", \"\\u0628\\u062D\",\n \"\\uFC9E\", \"\\u0628\\u062E\",\n \"\\uFC9F\", \"\\u0628\\u0645\",\n \"\\uFCA0\", \"\\u0628\\u0647\",\n \"\\uFCA1\", \"\\u062A\\u062C\",\n \"\\uFCA2\", \"\\u062A\\u062D\",\n \"\\uFCA3\", \"\\u062A\\u062E\",\n \"\\uFCA4\", \"\\u062A\\u0645\",\n \"\\uFCA5\", \"\\u062A\\u0647\",\n \"\\uFCA6\", \"\\u062B\\u0645\",\n \"\\uFCA7\", \"\\u062C\\u062D\",\n \"\\uFCA8\", \"\\u062C\\u0645\",\n \"\\uFCA9\", \"\\u062D\\u062C\",\n \"\\uFCAA\", \"\\u062D\\u0645\",\n \"\\uFCAB\", \"\\u062E\\u062C\",\n \"\\uFCAC\", \"\\u062E\\u0645\",\n \"\\uFCAD\", \"\\u0633\\u062C\",\n \"\\uFCAE\", \"\\u0633\\u062D\",\n \"\\uFCAF\", \"\\u0633\\u062E\",\n \"\\uFCB0\", \"\\u0633\\u0645\",\n \"\\uFCB1\", \"\\u0635\\u062D\",\n \"\\uFCB2\", \"\\u0635\\u062E\",\n \"\\uFCB3\", \"\\u0635\\u0645\",\n \"\\uFCB4\", \"\\u0636\\u062C\",\n \"\\uFCB5\", \"\\u0636\\u062D\",\n \"\\uFCB6\", \"\\u0636\\u062E\",\n \"\\uFCB7\", \"\\u0636\\u0645\",\n \"\\uFCB8\", \"\\u0637\\u062D\",\n \"\\uFCB9\", \"\\u0638\\u0645\",\n \"\\uFCBA\", \"\\u0639\\u062C\",\n \"\\uFCBB\", \"\\u0639\\u0645\",\n \"\\uFCBC\", \"\\u063A\\u062C\",\n \"\\uFCBD\", \"\\u063A\\u0645\",\n \"\\uFCBE\", \"\\u0641\\u062C\",\n \"\\uFCBF\", \"\\u0641\\u062D\",\n \"\\uFCC0\", \"\\u0641\\u062E\",\n \"\\uFCC1\", \"\\u0641\\u0645\",\n \"\\uFCC2\", \"\\u0642\\u062D\",\n \"\\uFCC3\", \"\\u0642\\u0645\",\n \"\\uFCC4\", \"\\u0643\\u062C\",\n \"\\uFCC5\", \"\\u0643\\u062D\",\n \"\\uFCC6\", \"\\u0643\\u062E\",\n \"\\uFCC7\", \"\\u0643\\u0644\",\n \"\\uFCC8\", \"\\u0643\\u0645\",\n \"\\uFCC9\", \"\\u0644\\u062C\",\n \"\\uFCCA\", \"\\u0644\\u062D\",\n \"\\uFCCB\", \"\\u0644\\u062E\",\n \"\\uFCCC\", \"\\u0644\\u0645\",\n \"\\uFCCD\", \"\\u0644\\u0647\",\n \"\\uFCCE\", \"\\u0645\\u062C\",\n \"\\uFCCF\", \"\\u0645\\u062D\",\n \"\\uFCD0\", \"\\u0645\\u062E\",\n \"\\uFCD1\", \"\\u0645\\u0645\",\n \"\\uFCD2\", \"\\u0646\\u062C\",\n \"\\uFCD3\", \"\\u0646\\u062D\",\n \"\\uFCD4\", \"\\u0646\\u062E\",\n \"\\uFCD5\", \"\\u0646\\u0645\",\n \"\\uFCD6\", \"\\u0646\\u0647\",\n \"\\uFCD7\", \"\\u0647\\u062C\",\n \"\\uFCD8\", \"\\u0647\\u0645\",\n \"\\uFCD9\", \"\\u0647\\u0670\",\n \"\\uFCDA\", \"\\u064A\\u062C\",\n \"\\uFCDB\", \"\\u064A\\u062D\",\n \"\\uFCDC\", \"\\u064A\\u062E\",\n \"\\uFCDD\", \"\\u064A\\u0645\",\n \"\\uFCDE\", \"\\u064A\\u0647\",\n \"\\uFCDF\", \"\\u0626\\u0645\",\n \"\\uFCE0\", \"\\u0626\\u0647\",\n \"\\uFCE1\", \"\\u0628\\u0645\",\n \"\\uFCE2\", \"\\u0628\\u0647\",\n \"\\uFCE3\", \"\\u062A\\u0645\",\n \"\\uFCE4\", \"\\u062A\\u0647\",\n \"\\uFCE5\", \"\\u062B\\u0645\",\n \"\\uFCE6\", \"\\u062B\\u0647\",\n \"\\uFCE7\", \"\\u0633\\u0645\",\n \"\\uFCE8\", \"\\u0633\\u0647\",\n \"\\uFCE9\", \"\\u0634\\u0645\",\n \"\\uFCEA\", \"\\u0634\\u0647\",\n \"\\uFCEB\", \"\\u0643\\u0644\",\n \"\\uFCEC\", \"\\u0643\\u0645\",\n \"\\uFCED\", \"\\u0644\\u0645\",\n \"\\uFCEE\", \"\\u0646\\u0645\",\n \"\\uFCEF\", \"\\u0646\\u0647\",\n \"\\uFCF0\", \"\\u064A\\u0645\",\n \"\\uFCF1\", \"\\u064A\\u0647\",\n \"\\uFCF2\", \"\\u0640\\u064E\\u0651\",\n \"\\uFCF3\", \"\\u0640\\u064F\\u0651\",\n \"\\uFCF4\", \"\\u0640\\u0650\\u0651\",\n \"\\uFCF5\", \"\\u0637\\u0649\",\n \"\\uFCF6\", \"\\u0637\\u064A\",\n \"\\uFCF7\", \"\\u0639\\u0649\",\n \"\\uFCF8\", \"\\u0639\\u064A\",\n \"\\uFCF9\", \"\\u063A\\u0649\",\n \"\\uFCFA\", \"\\u063A\\u064A\",\n \"\\uFCFB\", \"\\u0633\\u0649\",\n \"\\uFCFC\", \"\\u0633\\u064A\",\n \"\\uFCFD\", \"\\u0634\\u0649\",\n \"\\uFCFE\", \"\\u0634\\u064A\",\n \"\\uFCFF\", \"\\u062D\\u0649\",\n \"\\uFD00\", \"\\u062D\\u064A\",\n \"\\uFD01\", \"\\u062C\\u0649\",\n \"\\uFD02\", \"\\u062C\\u064A\",\n \"\\uFD03\", \"\\u062E\\u0649\",\n \"\\uFD04\", \"\\u062E\\u064A\",\n \"\\uFD05\", \"\\u0635\\u0649\",\n \"\\uFD06\", \"\\u0635\\u064A\",\n \"\\uFD07\", \"\\u0636\\u0649\",\n \"\\uFD08\", \"\\u0636\\u064A\",\n \"\\uFD09\", \"\\u0634\\u062C\",\n \"\\uFD0A\", \"\\u0634\\u062D\",\n \"\\uFD0B\", \"\\u0634\\u062E\",\n \"\\uFD0C\", \"\\u0634\\u0645\",\n \"\\uFD0D\", \"\\u0634\\u0631\",\n \"\\uFD0E\", \"\\u0633\\u0631\",\n \"\\uFD0F\", \"\\u0635\\u0631\",\n \"\\uFD10\", \"\\u0636\\u0631\",\n \"\\uFD11\", \"\\u0637\\u0649\",\n \"\\uFD12\", \"\\u0637\\u064A\",\n \"\\uFD13\", \"\\u0639\\u0649\",\n \"\\uFD14\", \"\\u0639\\u064A\",\n \"\\uFD15\", \"\\u063A\\u0649\",\n \"\\uFD16\", \"\\u063A\\u064A\",\n \"\\uFD17\", \"\\u0633\\u0649\",\n \"\\uFD18\", \"\\u0633\\u064A\",\n \"\\uFD19\", \"\\u0634\\u0649\",\n \"\\uFD1A\", \"\\u0634\\u064A\",\n \"\\uFD1B\", \"\\u062D\\u0649\",\n \"\\uFD1C\", \"\\u062D\\u064A\",\n \"\\uFD1D\", \"\\u062C\\u0649\",\n \"\\uFD1E\", \"\\u062C\\u064A\",\n \"\\uFD1F\", \"\\u062E\\u0649\",\n \"\\uFD20\", \"\\u062E\\u064A\",\n \"\\uFD21\", \"\\u0635\\u0649\",\n \"\\uFD22\", \"\\u0635\\u064A\",\n \"\\uFD23\", \"\\u0636\\u0649\",\n \"\\uFD24\", \"\\u0636\\u064A\",\n \"\\uFD25\", \"\\u0634\\u062C\",\n \"\\uFD26\", \"\\u0634\\u062D\",\n \"\\uFD27\", \"\\u0634\\u062E\",\n \"\\uFD28\", \"\\u0634\\u0645\",\n \"\\uFD29\", \"\\u0634\\u0631\",\n \"\\uFD2A\", \"\\u0633\\u0631\",\n \"\\uFD2B\", \"\\u0635\\u0631\",\n \"\\uFD2C\", \"\\u0636\\u0631\",\n \"\\uFD2D\", \"\\u0634\\u062C\",\n \"\\uFD2E\", \"\\u0634\\u062D\",\n \"\\uFD2F\", \"\\u0634\\u062E\",\n \"\\uFD30\", \"\\u0634\\u0645\",\n \"\\uFD31\", \"\\u0633\\u0647\",\n \"\\uFD32\", \"\\u0634\\u0647\",\n \"\\uFD33\", \"\\u0637\\u0645\",\n \"\\uFD34\", \"\\u0633\\u062C\",\n \"\\uFD35\", \"\\u0633\\u062D\",\n \"\\uFD36\", \"\\u0633\\u062E\",\n \"\\uFD37\", \"\\u0634\\u062C\",\n \"\\uFD38\", \"\\u0634\\u062D\",\n \"\\uFD39\", \"\\u0634\\u062E\",\n \"\\uFD3A\", \"\\u0637\\u0645\",\n \"\\uFD3B\", \"\\u0638\\u0645\",\n \"\\uFD3C\", \"\\u0627\\u064B\",\n \"\\uFD3D\", \"\\u0627\\u064B\",\n \"\\uFD50\", \"\\u062A\\u062C\\u0645\",\n \"\\uFD51\", \"\\u062A\\u062D\\u062C\",\n \"\\uFD52\", \"\\u062A\\u062D\\u062C\",\n \"\\uFD53\", \"\\u062A\\u062D\\u0645\",\n \"\\uFD54\", \"\\u062A\\u062E\\u0645\",\n \"\\uFD55\", \"\\u062A\\u0645\\u062C\",\n \"\\uFD56\", \"\\u062A\\u0645\\u062D\",\n \"\\uFD57\", \"\\u062A\\u0645\\u062E\",\n \"\\uFD58\", \"\\u062C\\u0645\\u062D\",\n \"\\uFD59\", \"\\u062C\\u0645\\u062D\",\n \"\\uFD5A\", \"\\u062D\\u0645\\u064A\",\n \"\\uFD5B\", \"\\u062D\\u0645\\u0649\",\n \"\\uFD5C\", \"\\u0633\\u062D\\u062C\",\n \"\\uFD5D\", \"\\u0633\\u062C\\u062D\",\n \"\\uFD5E\", \"\\u0633\\u062C\\u0649\",\n \"\\uFD5F\", \"\\u0633\\u0645\\u062D\",\n \"\\uFD60\", \"\\u0633\\u0645\\u062D\",\n \"\\uFD61\", \"\\u0633\\u0645\\u062C\",\n \"\\uFD62\", \"\\u0633\\u0645\\u0645\",\n \"\\uFD63\", \"\\u0633\\u0645\\u0645\",\n \"\\uFD64\", \"\\u0635\\u062D\\u062D\",\n \"\\uFD65\", \"\\u0635\\u062D\\u062D\",\n \"\\uFD66\", \"\\u0635\\u0645\\u0645\",\n \"\\uFD67\", \"\\u0634\\u062D\\u0645\",\n \"\\uFD68\", \"\\u0634\\u062D\\u0645\",\n \"\\uFD69\", \"\\u0634\\u062C\\u064A\",\n \"\\uFD6A\", \"\\u0634\\u0645\\u062E\",\n \"\\uFD6B\", \"\\u0634\\u0645\\u062E\",\n \"\\uFD6C\", \"\\u0634\\u0645\\u0645\",\n \"\\uFD6D\", \"\\u0634\\u0645\\u0645\",\n \"\\uFD6E\", \"\\u0636\\u062D\\u0649\",\n \"\\uFD6F\", \"\\u0636\\u062E\\u0645\",\n \"\\uFD70\", \"\\u0636\\u062E\\u0645\",\n \"\\uFD71\", \"\\u0637\\u0645\\u062D\",\n \"\\uFD72\", \"\\u0637\\u0645\\u062D\",\n \"\\uFD73\", \"\\u0637\\u0645\\u0645\",\n \"\\uFD74\", \"\\u0637\\u0645\\u064A\",\n \"\\uFD75\", \"\\u0639\\u062C\\u0645\",\n \"\\uFD76\", \"\\u0639\\u0645\\u0645\",\n \"\\uFD77\", \"\\u0639\\u0645\\u0645\",\n \"\\uFD78\", \"\\u0639\\u0645\\u0649\",\n \"\\uFD79\", \"\\u063A\\u0645\\u0645\",\n \"\\uFD7A\", \"\\u063A\\u0645\\u064A\",\n \"\\uFD7B\", \"\\u063A\\u0645\\u0649\",\n \"\\uFD7C\", \"\\u0641\\u062E\\u0645\",\n \"\\uFD7D\", \"\\u0641\\u062E\\u0645\",\n \"\\uFD7E\", \"\\u0642\\u0645\\u062D\",\n \"\\uFD7F\", \"\\u0642\\u0645\\u0645\",\n \"\\uFD80\", \"\\u0644\\u062D\\u0645\",\n \"\\uFD81\", \"\\u0644\\u062D\\u064A\",\n \"\\uFD82\", \"\\u0644\\u062D\\u0649\",\n \"\\uFD83\", \"\\u0644\\u062C\\u062C\",\n \"\\uFD84\", \"\\u0644\\u062C\\u062C\",\n \"\\uFD85\", \"\\u0644\\u062E\\u0645\",\n \"\\uFD86\", \"\\u0644\\u062E\\u0645\",\n \"\\uFD87\", \"\\u0644\\u0645\\u062D\",\n \"\\uFD88\", \"\\u0644\\u0645\\u062D\",\n \"\\uFD89\", \"\\u0645\\u062D\\u062C\",\n \"\\uFD8A\", \"\\u0645\\u062D\\u0645\",\n \"\\uFD8B\", \"\\u0645\\u062D\\u064A\",\n \"\\uFD8C\", \"\\u0645\\u062C\\u062D\",\n \"\\uFD8D\", \"\\u0645\\u062C\\u0645\",\n \"\\uFD8E\", \"\\u0645\\u062E\\u062C\",\n \"\\uFD8F\", \"\\u0645\\u062E\\u0645\",\n \"\\uFD92\", \"\\u0645\\u062C\\u062E\",\n \"\\uFD93\", \"\\u0647\\u0645\\u062C\",\n \"\\uFD94\", \"\\u0647\\u0645\\u0645\",\n \"\\uFD95\", \"\\u0646\\u062D\\u0645\",\n \"\\uFD96\", \"\\u0646\\u062D\\u0649\",\n \"\\uFD97\", \"\\u0646\\u062C\\u0645\",\n \"\\uFD98\", \"\\u0646\\u062C\\u0645\",\n \"\\uFD99\", \"\\u0646\\u062C\\u0649\",\n \"\\uFD9A\", \"\\u0646\\u0645\\u064A\",\n \"\\uFD9B\", \"\\u0646\\u0645\\u0649\",\n \"\\uFD9C\", \"\\u064A\\u0645\\u0645\",\n \"\\uFD9D\", \"\\u064A\\u0645\\u0645\",\n \"\\uFD9E\", \"\\u0628\\u062E\\u064A\",\n \"\\uFD9F\", \"\\u062A\\u062C\\u064A\",\n \"\\uFDA0\", \"\\u062A\\u062C\\u0649\",\n \"\\uFDA1\", \"\\u062A\\u062E\\u064A\",\n \"\\uFDA2\", \"\\u062A\\u062E\\u0649\",\n \"\\uFDA3\", \"\\u062A\\u0645\\u064A\",\n \"\\uFDA4\", \"\\u062A\\u0645\\u0649\",\n \"\\uFDA5\", \"\\u062C\\u0645\\u064A\",\n \"\\uFDA6\", \"\\u062C\\u062D\\u0649\",\n \"\\uFDA7\", \"\\u062C\\u0645\\u0649\",\n \"\\uFDA8\", \"\\u0633\\u062E\\u0649\",\n \"\\uFDA9\", \"\\u0635\\u062D\\u064A\",\n \"\\uFDAA\", \"\\u0634\\u062D\\u064A\",\n \"\\uFDAB\", \"\\u0636\\u062D\\u064A\",\n \"\\uFDAC\", \"\\u0644\\u062C\\u064A\",\n \"\\uFDAD\", \"\\u0644\\u0645\\u064A\",\n \"\\uFDAE\", \"\\u064A\\u062D\\u064A\",\n \"\\uFDAF\", \"\\u064A\\u062C\\u064A\",\n \"\\uFDB0\", \"\\u064A\\u0645\\u064A\",\n \"\\uFDB1\", \"\\u0645\\u0645\\u064A\",\n \"\\uFDB2\", \"\\u0642\\u0645\\u064A\",\n \"\\uFDB3\", \"\\u0646\\u062D\\u064A\",\n \"\\uFDB4\", \"\\u0642\\u0645\\u062D\",\n \"\\uFDB5\", \"\\u0644\\u062D\\u0645\",\n \"\\uFDB6\", \"\\u0639\\u0645\\u064A\",\n \"\\uFDB7\", \"\\u0643\\u0645\\u064A\",\n \"\\uFDB8\", \"\\u0646\\u062C\\u062D\",\n \"\\uFDB9\", \"\\u0645\\u062E\\u064A\",\n \"\\uFDBA\", \"\\u0644\\u062C\\u0645\",\n \"\\uFDBB\", \"\\u0643\\u0645\\u0645\",\n \"\\uFDBC\", \"\\u0644\\u062C\\u0645\",\n \"\\uFDBD\", \"\\u0646\\u062C\\u062D\",\n \"\\uFDBE\", \"\\u062C\\u062D\\u064A\",\n \"\\uFDBF\", \"\\u062D\\u062C\\u064A\",\n \"\\uFDC0\", \"\\u0645\\u062C\\u064A\",\n \"\\uFDC1\", \"\\u0641\\u0645\\u064A\",\n \"\\uFDC2\", \"\\u0628\\u062D\\u064A\",\n \"\\uFDC3\", \"\\u0643\\u0645\\u0645\",\n \"\\uFDC4\", \"\\u0639\\u062C\\u0645\",\n \"\\uFDC5\", \"\\u0635\\u0645\\u0645\",\n \"\\uFDC6\", \"\\u0633\\u062E\\u064A\",\n \"\\uFDC7\", \"\\u0646\\u062C\\u064A\",\n \"\\uFE49\", \"\\u203E\",\n \"\\uFE4A\", \"\\u203E\",\n \"\\uFE4B\", \"\\u203E\",\n \"\\uFE4C\", \"\\u203E\",\n \"\\uFE4D\", \"\\u005F\",\n \"\\uFE4E\", \"\\u005F\",\n \"\\uFE4F\", \"\\u005F\",\n \"\\uFE80\", \"\\u0621\",\n \"\\uFE81\", \"\\u0622\",\n \"\\uFE82\", \"\\u0622\",\n \"\\uFE83\", \"\\u0623\",\n \"\\uFE84\", \"\\u0623\",\n \"\\uFE85\", \"\\u0624\",\n \"\\uFE86\", \"\\u0624\",\n \"\\uFE87\", \"\\u0625\",\n \"\\uFE88\", \"\\u0625\",\n \"\\uFE89\", \"\\u0626\",\n \"\\uFE8A\", \"\\u0626\",\n \"\\uFE8B\", \"\\u0626\",\n \"\\uFE8C\", \"\\u0626\",\n \"\\uFE8D\", \"\\u0627\",\n \"\\uFE8E\", \"\\u0627\",\n \"\\uFE8F\", \"\\u0628\",\n \"\\uFE90\", \"\\u0628\",\n \"\\uFE91\", \"\\u0628\",\n \"\\uFE92\", \"\\u0628\",\n \"\\uFE93\", \"\\u0629\",\n \"\\uFE94\", \"\\u0629\",\n \"\\uFE95\", \"\\u062A\",\n \"\\uFE96\", \"\\u062A\",\n \"\\uFE97\", \"\\u062A\",\n \"\\uFE98\", \"\\u062A\",\n \"\\uFE99\", \"\\u062B\",\n \"\\uFE9A\", \"\\u062B\",\n \"\\uFE9B\", \"\\u062B\",\n \"\\uFE9C\", \"\\u062B\",\n \"\\uFE9D\", \"\\u062C\",\n \"\\uFE9E\", \"\\u062C\",\n \"\\uFE9F\", \"\\u062C\",\n \"\\uFEA0\", \"\\u062C\",\n \"\\uFEA1\", \"\\u062D\",\n \"\\uFEA2\", \"\\u062D\",\n \"\\uFEA3\", \"\\u062D\",\n \"\\uFEA4\", \"\\u062D\",\n \"\\uFEA5\", \"\\u062E\",\n \"\\uFEA6\", \"\\u062E\",\n \"\\uFEA7\", \"\\u062E\",\n \"\\uFEA8\", \"\\u062E\",\n \"\\uFEA9\", \"\\u062F\",\n \"\\uFEAA\", \"\\u062F\",\n \"\\uFEAB\", \"\\u0630\",\n \"\\uFEAC\", \"\\u0630\",\n \"\\uFEAD\", \"\\u0631\",\n \"\\uFEAE\", \"\\u0631\",\n \"\\uFEAF\", \"\\u0632\",\n \"\\uFEB0\", \"\\u0632\",\n \"\\uFEB1\", \"\\u0633\",\n \"\\uFEB2\", \"\\u0633\",\n \"\\uFEB3\", \"\\u0633\",\n \"\\uFEB4\", \"\\u0633\",\n \"\\uFEB5\", \"\\u0634\",\n \"\\uFEB6\", \"\\u0634\",\n \"\\uFEB7\", \"\\u0634\",\n \"\\uFEB8\", \"\\u0634\",\n \"\\uFEB9\", \"\\u0635\",\n \"\\uFEBA\", \"\\u0635\",\n \"\\uFEBB\", \"\\u0635\",\n \"\\uFEBC\", \"\\u0635\",\n \"\\uFEBD\", \"\\u0636\",\n \"\\uFEBE\", \"\\u0636\",\n \"\\uFEBF\", \"\\u0636\",\n \"\\uFEC0\", \"\\u0636\",\n \"\\uFEC1\", \"\\u0637\",\n \"\\uFEC2\", \"\\u0637\",\n \"\\uFEC3\", \"\\u0637\",\n \"\\uFEC4\", \"\\u0637\",\n \"\\uFEC5\", \"\\u0638\",\n \"\\uFEC6\", \"\\u0638\",\n \"\\uFEC7\", \"\\u0638\",\n \"\\uFEC8\", \"\\u0638\",\n \"\\uFEC9\", \"\\u0639\",\n \"\\uFECA\", \"\\u0639\",\n \"\\uFECB\", \"\\u0639\",\n \"\\uFECC\", \"\\u0639\",\n \"\\uFECD\", \"\\u063A\",\n \"\\uFECE\", \"\\u063A\",\n \"\\uFECF\", \"\\u063A\",\n \"\\uFED0\", \"\\u063A\",\n \"\\uFED1\", \"\\u0641\",\n \"\\uFED2\", \"\\u0641\",\n \"\\uFED3\", \"\\u0641\",\n \"\\uFED4\", \"\\u0641\",\n \"\\uFED5\", \"\\u0642\",\n \"\\uFED6\", \"\\u0642\",\n \"\\uFED7\", \"\\u0642\",\n \"\\uFED8\", \"\\u0642\",\n \"\\uFED9\", \"\\u0643\",\n \"\\uFEDA\", \"\\u0643\",\n \"\\uFEDB\", \"\\u0643\",\n \"\\uFEDC\", \"\\u0643\",\n \"\\uFEDD\", \"\\u0644\",\n \"\\uFEDE\", \"\\u0644\",\n \"\\uFEDF\", \"\\u0644\",\n \"\\uFEE0\", \"\\u0644\",\n \"\\uFEE1\", \"\\u0645\",\n \"\\uFEE2\", \"\\u0645\",\n \"\\uFEE3\", \"\\u0645\",\n \"\\uFEE4\", \"\\u0645\",\n \"\\uFEE5\", \"\\u0646\",\n \"\\uFEE6\", \"\\u0646\",\n \"\\uFEE7\", \"\\u0646\",\n \"\\uFEE8\", \"\\u0646\",\n \"\\uFEE9\", \"\\u0647\",\n \"\\uFEEA\", \"\\u0647\",\n \"\\uFEEB\", \"\\u0647\",\n \"\\uFEEC\", \"\\u0647\",\n \"\\uFEED\", \"\\u0648\",\n \"\\uFEEE\", \"\\u0648\",\n \"\\uFEEF\", \"\\u0649\",\n \"\\uFEF0\", \"\\u0649\",\n \"\\uFEF1\", \"\\u064A\",\n \"\\uFEF2\", \"\\u064A\",\n \"\\uFEF3\", \"\\u064A\",\n \"\\uFEF4\", \"\\u064A\",\n \"\\uFEF5\", \"\\u0644\\u0622\",\n \"\\uFEF6\", \"\\u0644\\u0622\",\n \"\\uFEF7\", \"\\u0644\\u0623\",\n \"\\uFEF8\", \"\\u0644\\u0623\",\n \"\\uFEF9\", \"\\u0644\\u0625\",\n \"\\uFEFA\", \"\\u0644\\u0625\",\n \"\\uFEFB\", \"\\u0644\\u0627\",\n \"\\uFEFC\", \"\\u0644\\u0627\",\n ];\n});\n\nfunction reverseIfRtl(chars) {\n const charsLength = chars.length;\n // Reverse an arabic ligature.\n if (charsLength <= 1 || !isRTLRangeFor(chars.charCodeAt(0))) {\n return chars;\n }\n const buf = [];\n for (let ii = charsLength - 1; ii >= 0; ii--) {\n buf.push(chars[ii]);\n }\n return buf.join(\"\");\n}\n\nconst SpecialCharRegExp = new RegExp(\"^(\\\\s)|(\\\\p{Mn})|(\\\\p{Cf})$\", \"u\");\nconst CategoryCache = new Map();\n\nfunction getCharUnicodeCategory(char) {\n const cachedCategory = CategoryCache.get(char);\n if (cachedCategory) {\n return cachedCategory;\n }\n const groups = char.match(SpecialCharRegExp);\n const category = {\n isWhitespace: !!(groups && groups[1]),\n isZeroWidthDiacritic: !!(groups && groups[2]),\n isInvisibleFormatMark: !!(groups && groups[3]),\n };\n CategoryCache.set(char, category);\n return category;\n}\n\nfunction clearUnicodeCaches() {\n CategoryCache.clear();\n}\n\nexport {\n clearUnicodeCaches,\n getCharUnicodeCategory,\n getNormalizedUnicodes,\n getUnicodeForGlyph,\n getUnicodeRangeFor,\n mapSpecialUnicodeValues,\n reverseIfRtl,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AnnotationActionEventType,\n AnnotationBorderStyleType,\n AnnotationFieldFlag,\n AnnotationFlag,\n AnnotationReplyType,\n AnnotationType,\n assert,\n escapeString,\n getModificationDate,\n isAscii,\n OPS,\n RenderingIntentFlag,\n shadow,\n stringToPDFString,\n stringToUTF16BEString,\n unreachable,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport { collectActions, getInheritableProperty } from \"./core_utils.js\";\nimport {\n createDefaultAppearance,\n parseDefaultAppearance,\n} from \"./default_appearance.js\";\nimport { Dict, isName, Name, Ref, RefSet } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { bidi } from \"./bidi.js\";\nimport { Catalog } from \"./catalog.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { FileSpec } from \"./file_spec.js\";\nimport { ObjectLoader } from \"./object_loader.js\";\nimport { OperatorList } from \"./operator_list.js\";\nimport { StringStream } from \"./stream.js\";\nimport { writeDict } from \"./writer.js\";\nimport { XFAFactory } from \"./xfa/factory.js\";\n\n// Represent the percentage of the height of a single-line field over\n// the font size.\n// Acrobat seems to use this value.\nconst LINE_FACTOR = 1.35;\n\nclass AnnotationFactory {\n /**\n * Create an `Annotation` object of the correct type for the given reference\n * to an annotation dictionary. This yields a promise that is resolved when\n * the `Annotation` object is constructed.\n *\n * @param {XRef} xref\n * @param {Object} ref\n * @param {PDFManager} pdfManager\n * @param {Object} idFactory\n * @param {boolean} collectFields\n * @returns {Promise} A promise that is resolved with an {Annotation}\n * instance.\n */\n static create(xref, ref, pdfManager, idFactory, collectFields) {\n return Promise.all([\n pdfManager.ensureCatalog(\"acroForm\"),\n // Only necessary to prevent the `pdfManager.docBaseUrl`-getter, used\n // with certain Annotations, from throwing and thus breaking parsing:\n pdfManager.ensureCatalog(\"baseUrl\"),\n pdfManager.ensureDoc(\"xfaDatasets\"),\n collectFields ? this._getPageIndex(xref, ref, pdfManager) : -1,\n ]).then(([acroForm, baseUrl, xfaDatasets, pageIndex]) =>\n pdfManager.ensure(this, \"_create\", [\n xref,\n ref,\n pdfManager,\n idFactory,\n acroForm,\n xfaDatasets,\n collectFields,\n pageIndex,\n ])\n );\n }\n\n /**\n * @private\n */\n static _create(\n xref,\n ref,\n pdfManager,\n idFactory,\n acroForm,\n xfaDatasets,\n collectFields,\n pageIndex = -1\n ) {\n const dict = xref.fetchIfRef(ref);\n if (!(dict instanceof Dict)) {\n return undefined;\n }\n\n const id =\n ref instanceof Ref ? ref.toString() : `annot_${idFactory.createObjId()}`;\n\n // Determine the annotation's subtype.\n let subtype = dict.get(\"Subtype\");\n subtype = subtype instanceof Name ? subtype.name : null;\n\n // Return the right annotation object based on the subtype and field type.\n const parameters = {\n xref,\n ref,\n dict,\n subtype,\n id,\n pdfManager,\n acroForm: acroForm instanceof Dict ? acroForm : Dict.empty,\n xfaDatasets,\n collectFields,\n pageIndex,\n };\n\n switch (subtype) {\n case \"Link\":\n return new LinkAnnotation(parameters);\n\n case \"Text\":\n return new TextAnnotation(parameters);\n\n case \"Widget\":\n let fieldType = getInheritableProperty({ dict, key: \"FT\" });\n fieldType = fieldType instanceof Name ? fieldType.name : null;\n\n switch (fieldType) {\n case \"Tx\":\n return new TextWidgetAnnotation(parameters);\n case \"Btn\":\n return new ButtonWidgetAnnotation(parameters);\n case \"Ch\":\n return new ChoiceWidgetAnnotation(parameters);\n case \"Sig\":\n return new SignatureWidgetAnnotation(parameters);\n }\n warn(\n `Unimplemented widget field type \"${fieldType}\", ` +\n \"falling back to base field type.\"\n );\n return new WidgetAnnotation(parameters);\n\n case \"Popup\":\n return new PopupAnnotation(parameters);\n\n case \"FreeText\":\n return new FreeTextAnnotation(parameters);\n\n case \"Line\":\n return new LineAnnotation(parameters);\n\n case \"Square\":\n return new SquareAnnotation(parameters);\n\n case \"Circle\":\n return new CircleAnnotation(parameters);\n\n case \"PolyLine\":\n return new PolylineAnnotation(parameters);\n\n case \"Polygon\":\n return new PolygonAnnotation(parameters);\n\n case \"Caret\":\n return new CaretAnnotation(parameters);\n\n case \"Ink\":\n return new InkAnnotation(parameters);\n\n case \"Highlight\":\n return new HighlightAnnotation(parameters);\n\n case \"Underline\":\n return new UnderlineAnnotation(parameters);\n\n case \"Squiggly\":\n return new SquigglyAnnotation(parameters);\n\n case \"StrikeOut\":\n return new StrikeOutAnnotation(parameters);\n\n case \"Stamp\":\n return new StampAnnotation(parameters);\n\n case \"FileAttachment\":\n return new FileAttachmentAnnotation(parameters);\n\n default:\n if (!collectFields) {\n if (!subtype) {\n warn(\"Annotation is missing the required /Subtype.\");\n } else {\n warn(\n `Unimplemented annotation type \"${subtype}\", ` +\n \"falling back to base annotation.\"\n );\n }\n }\n return new Annotation(parameters);\n }\n }\n\n static async _getPageIndex(xref, ref, pdfManager) {\n try {\n const annotDict = await xref.fetchIfRefAsync(ref);\n if (!(annotDict instanceof Dict)) {\n return -1;\n }\n const pageRef = annotDict.getRaw(\"P\");\n if (!(pageRef instanceof Ref)) {\n return -1;\n }\n const pageIndex = await pdfManager.ensureCatalog(\"getPageIndex\", [\n pageRef,\n ]);\n return pageIndex;\n } catch (ex) {\n warn(`_getPageIndex: \"${ex}\".`);\n return -1;\n }\n }\n}\n\nfunction getRgbColor(color, defaultColor = new Uint8ClampedArray(3)) {\n if (!Array.isArray(color)) {\n return defaultColor;\n }\n\n const rgbColor = defaultColor || new Uint8ClampedArray(3);\n switch (color.length) {\n case 0: // Transparent, which we indicate with a null value\n return null;\n\n case 1: // Convert grayscale to RGB\n ColorSpace.singletons.gray.getRgbItem(color, 0, rgbColor, 0);\n return rgbColor;\n\n case 3: // Convert RGB percentages to RGB\n ColorSpace.singletons.rgb.getRgbItem(color, 0, rgbColor, 0);\n return rgbColor;\n\n case 4: // Convert CMYK to RGB\n ColorSpace.singletons.cmyk.getRgbItem(color, 0, rgbColor, 0);\n return rgbColor;\n\n default:\n return defaultColor;\n }\n}\n\nfunction getQuadPoints(dict, rect) {\n if (!dict.has(\"QuadPoints\")) {\n return null;\n }\n\n // The region is described as a number of quadrilaterals.\n // Each quadrilateral must consist of eight coordinates.\n const quadPoints = dict.getArray(\"QuadPoints\");\n if (\n !Array.isArray(quadPoints) ||\n quadPoints.length === 0 ||\n quadPoints.length % 8 > 0\n ) {\n return null;\n }\n\n const quadPointsLists = [];\n for (let i = 0, ii = quadPoints.length / 8; i < ii; i++) {\n // Each series of eight numbers represents the coordinates for one\n // quadrilateral in the order [x1, y1, x2, y2, x3, y3, x4, y4].\n // Convert this to an array of objects with x and y coordinates.\n quadPointsLists.push([]);\n for (let j = i * 8, jj = i * 8 + 8; j < jj; j += 2) {\n const x = quadPoints[j];\n const y = quadPoints[j + 1];\n\n // The quadpoints should be ignored if any coordinate in the array\n // lies outside the region specified by the rectangle. The rectangle\n // can be `null` for markup annotations since their rectangle may be\n // incorrect (fixes bug 1538111).\n if (\n rect !== null &&\n (x < rect[0] || x > rect[2] || y < rect[1] || y > rect[3])\n ) {\n return null;\n }\n quadPointsLists[i].push({ x, y });\n }\n }\n\n // The PDF specification states in section 12.5.6.10 (figure 64) that the\n // order of the quadpoints should be bottom left, bottom right, top right\n // and top left. However, in practice PDF files use a different order,\n // namely bottom left, bottom right, top left and top right (this is also\n // mentioned on https://github.com/highkite/pdfAnnotate#QuadPoints), so\n // this is the actual order we should work with. However, the situation is\n // even worse since Adobe's own applications and other applications violate\n // the specification and create annotations with other orders, namely top\n // left, top right, bottom left and bottom right or even top left, top right,\n // bottom right and bottom left. To avoid inconsistency and broken rendering,\n // we normalize all lists to put the quadpoints in the same standard order\n // (see https://stackoverflow.com/a/10729881).\n return quadPointsLists.map(quadPointsList => {\n const [minX, maxX, minY, maxY] = quadPointsList.reduce(\n ([mX, MX, mY, MY], quadPoint) => [\n Math.min(mX, quadPoint.x),\n Math.max(MX, quadPoint.x),\n Math.min(mY, quadPoint.y),\n Math.max(MY, quadPoint.y),\n ],\n [Number.MAX_VALUE, Number.MIN_VALUE, Number.MAX_VALUE, Number.MIN_VALUE]\n );\n return [\n { x: minX, y: maxY },\n { x: maxX, y: maxY },\n { x: minX, y: minY },\n { x: maxX, y: minY },\n ];\n });\n}\n\nfunction getTransformMatrix(rect, bbox, matrix) {\n // 12.5.5: Algorithm: Appearance streams\n const [minX, minY, maxX, maxY] = Util.getAxialAlignedBoundingBox(\n bbox,\n matrix\n );\n if (minX === maxX || minY === maxY) {\n // From real-life file, bbox was [0, 0, 0, 0]. In this case,\n // just apply the transform for rect\n return [1, 0, 0, 1, rect[0], rect[1]];\n }\n\n const xRatio = (rect[2] - rect[0]) / (maxX - minX);\n const yRatio = (rect[3] - rect[1]) / (maxY - minY);\n return [\n xRatio,\n 0,\n 0,\n yRatio,\n rect[0] - minX * xRatio,\n rect[1] - minY * yRatio,\n ];\n}\n\nclass Annotation {\n constructor(params) {\n const dict = params.dict;\n\n this.setTitle(dict.get(\"T\"));\n this.setContents(dict.get(\"Contents\"));\n this.setModificationDate(dict.get(\"M\"));\n this.setFlags(dict.get(\"F\"));\n this.setRectangle(dict.getArray(\"Rect\"));\n this.setColor(dict.getArray(\"C\"));\n this.setBorderStyle(dict);\n this.setAppearance(dict);\n this.setBorderAndBackgroundColors(dict.get(\"MK\"));\n\n this._streams = [];\n if (this.appearance) {\n this._streams.push(this.appearance);\n }\n\n // Expose public properties using a data object.\n this.data = {\n annotationFlags: this.flags,\n borderStyle: this.borderStyle,\n color: this.color,\n backgroundColor: this.backgroundColor,\n borderColor: this.borderColor,\n contentsObj: this._contents,\n hasAppearance: !!this.appearance,\n id: params.id,\n modificationDate: this.modificationDate,\n rect: this.rectangle,\n subtype: params.subtype,\n hasOwnCanvas: false,\n };\n\n if (params.collectFields) {\n // Fields can act as container for other fields and have\n // some actions even if no Annotation inherit from them.\n // Those fields can be referenced by CO (calculation order).\n const kids = dict.get(\"Kids\");\n if (Array.isArray(kids)) {\n const kidIds = [];\n for (const kid of kids) {\n if (kid instanceof Ref) {\n kidIds.push(kid.toString());\n }\n }\n if (kidIds.length !== 0) {\n this.data.kidIds = kidIds;\n }\n }\n\n this.data.actions = collectActions(\n params.xref,\n dict,\n AnnotationActionEventType\n );\n this.data.fieldName = this._constructFieldName(dict);\n this.data.pageIndex = params.pageIndex;\n }\n\n this._fallbackFontDict = null;\n }\n\n /**\n * @private\n */\n _hasFlag(flags, flag) {\n return !!(flags & flag);\n }\n\n /**\n * @private\n */\n _isViewable(flags) {\n return (\n !this._hasFlag(flags, AnnotationFlag.INVISIBLE) &&\n !this._hasFlag(flags, AnnotationFlag.NOVIEW)\n );\n }\n\n /**\n * @private\n */\n _isPrintable(flags) {\n return (\n this._hasFlag(flags, AnnotationFlag.PRINT) &&\n !this._hasFlag(flags, AnnotationFlag.INVISIBLE)\n );\n }\n\n /**\n * Check if the annotation must be displayed by taking into account\n * the value found in the annotationStorage which may have been set\n * through JS.\n *\n * @public\n * @memberof Annotation\n * @param {AnnotationStorage} [annotationStorage] - Storage for annotation\n */\n mustBeViewed(annotationStorage) {\n const storageEntry =\n annotationStorage && annotationStorage.get(this.data.id);\n if (storageEntry && storageEntry.hidden !== undefined) {\n return !storageEntry.hidden;\n }\n return this.viewable && !this._hasFlag(this.flags, AnnotationFlag.HIDDEN);\n }\n\n /**\n * Check if the annotation must be printed by taking into account\n * the value found in the annotationStorage which may have been set\n * through JS.\n *\n * @public\n * @memberof Annotation\n * @param {AnnotationStorage} [annotationStorage] - Storage for annotation\n */\n mustBePrinted(annotationStorage) {\n const storageEntry =\n annotationStorage && annotationStorage.get(this.data.id);\n if (storageEntry && storageEntry.print !== undefined) {\n return storageEntry.print;\n }\n return this.printable;\n }\n\n /**\n * @type {boolean}\n */\n get viewable() {\n if (this.data.quadPoints === null) {\n return false;\n }\n if (this.flags === 0) {\n return true;\n }\n return this._isViewable(this.flags);\n }\n\n /**\n * @type {boolean}\n */\n get printable() {\n if (this.data.quadPoints === null) {\n return false;\n }\n if (this.flags === 0) {\n return false;\n }\n return this._isPrintable(this.flags);\n }\n\n /**\n * @private\n */\n _parseStringHelper(data) {\n const str = typeof data === \"string\" ? stringToPDFString(data) : \"\";\n const dir = str && bidi(str).dir === \"rtl\" ? \"rtl\" : \"ltr\";\n\n return { str, dir };\n }\n\n /**\n * Set the title.\n *\n * @param {string} title - The title of the annotation, used e.g. with\n * PopupAnnotations.\n */\n setTitle(title) {\n this._title = this._parseStringHelper(title);\n }\n\n /**\n * Set the contents.\n *\n * @param {string} contents - Text to display for the annotation or, if the\n * type of annotation does not display text, a\n * description of the annotation's contents\n */\n setContents(contents) {\n this._contents = this._parseStringHelper(contents);\n }\n\n /**\n * Set the modification date.\n *\n * @public\n * @memberof Annotation\n * @param {string} modificationDate - PDF date string that indicates when the\n * annotation was last modified\n */\n setModificationDate(modificationDate) {\n this.modificationDate =\n typeof modificationDate === \"string\" ? modificationDate : null;\n }\n\n /**\n * Set the flags.\n *\n * @public\n * @memberof Annotation\n * @param {number} flags - Unsigned 32-bit integer specifying annotation\n * characteristics\n * @see {@link shared/util.js}\n */\n setFlags(flags) {\n this.flags = Number.isInteger(flags) && flags > 0 ? flags : 0;\n }\n\n /**\n * Check if a provided flag is set.\n *\n * @public\n * @memberof Annotation\n * @param {number} flag - Hexadecimal representation for an annotation\n * characteristic\n * @returns {boolean}\n * @see {@link shared/util.js}\n */\n hasFlag(flag) {\n return this._hasFlag(this.flags, flag);\n }\n\n /**\n * Set the rectangle.\n *\n * @public\n * @memberof Annotation\n * @param {Array} rectangle - The rectangle array with exactly four entries\n */\n setRectangle(rectangle) {\n if (Array.isArray(rectangle) && rectangle.length === 4) {\n this.rectangle = Util.normalizeRect(rectangle);\n } else {\n this.rectangle = [0, 0, 0, 0];\n }\n }\n\n /**\n * Set the color and take care of color space conversion.\n * The default value is black, in RGB color space.\n *\n * @public\n * @memberof Annotation\n * @param {Array} color - The color array containing either 0\n * (transparent), 1 (grayscale), 3 (RGB) or\n * 4 (CMYK) elements\n */\n setColor(color) {\n this.color = getRgbColor(color);\n }\n\n /**\n * Set the line endings; should only be used with specific annotation types.\n * @param {Array} lineEndings - The line endings array.\n */\n setLineEndings(lineEndings) {\n this.lineEndings = [\"None\", \"None\"]; // The default values.\n\n if (Array.isArray(lineEndings) && lineEndings.length === 2) {\n for (let i = 0; i < 2; i++) {\n const obj = lineEndings[i];\n\n if (obj instanceof Name) {\n switch (obj.name) {\n case \"None\":\n continue;\n case \"Square\":\n case \"Circle\":\n case \"Diamond\":\n case \"OpenArrow\":\n case \"ClosedArrow\":\n case \"Butt\":\n case \"ROpenArrow\":\n case \"RClosedArrow\":\n case \"Slash\":\n this.lineEndings[i] = obj.name;\n continue;\n }\n }\n warn(`Ignoring invalid lineEnding: ${obj}`);\n }\n }\n }\n\n /**\n * Set the color for background and border if any.\n * The default values are transparent.\n *\n * @public\n * @memberof Annotation\n * @param {Dict} mk - The MK dictionary\n */\n setBorderAndBackgroundColors(mk) {\n if (mk instanceof Dict) {\n this.borderColor = getRgbColor(mk.getArray(\"BC\"), null);\n this.backgroundColor = getRgbColor(mk.getArray(\"BG\"), null);\n } else {\n this.borderColor = this.backgroundColor = null;\n }\n }\n\n /**\n * Set the border style (as AnnotationBorderStyle object).\n *\n * @public\n * @memberof Annotation\n * @param {Dict} borderStyle - The border style dictionary\n */\n setBorderStyle(borderStyle) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(this.rectangle, \"setRectangle must have been called previously.\");\n }\n\n this.borderStyle = new AnnotationBorderStyle();\n if (!(borderStyle instanceof Dict)) {\n return;\n }\n if (borderStyle.has(\"BS\")) {\n const dict = borderStyle.get(\"BS\");\n const dictType = dict.get(\"Type\");\n\n if (!dictType || isName(dictType, \"Border\")) {\n this.borderStyle.setWidth(dict.get(\"W\"), this.rectangle);\n this.borderStyle.setStyle(dict.get(\"S\"));\n this.borderStyle.setDashArray(dict.getArray(\"D\"));\n }\n } else if (borderStyle.has(\"Border\")) {\n const array = borderStyle.getArray(\"Border\");\n if (Array.isArray(array) && array.length >= 3) {\n this.borderStyle.setHorizontalCornerRadius(array[0]);\n this.borderStyle.setVerticalCornerRadius(array[1]);\n this.borderStyle.setWidth(array[2], this.rectangle);\n\n if (array.length === 4) {\n // Dash array available\n this.borderStyle.setDashArray(array[3], /* forceStyle = */ true);\n }\n }\n } else {\n // There are no border entries in the dictionary. According to the\n // specification, we should draw a solid border of width 1 in that\n // case, but Adobe Reader did not implement that part of the\n // specification and instead draws no border at all, so we do the same.\n // See also https://github.com/mozilla/pdf.js/issues/6179.\n this.borderStyle.setWidth(0);\n }\n }\n\n /**\n * Set the (normal) appearance.\n *\n * @public\n * @memberof Annotation\n * @param {Dict} dict - The annotation's data dictionary\n */\n setAppearance(dict) {\n this.appearance = null;\n\n const appearanceStates = dict.get(\"AP\");\n if (!(appearanceStates instanceof Dict)) {\n return;\n }\n\n // In case the normal appearance is a stream, then it is used directly.\n const normalAppearanceState = appearanceStates.get(\"N\");\n if (normalAppearanceState instanceof BaseStream) {\n this.appearance = normalAppearanceState;\n return;\n }\n if (!(normalAppearanceState instanceof Dict)) {\n return;\n }\n\n // In case the normal appearance is a dictionary, the `AS` entry provides\n // the key of the stream in this dictionary.\n const as = dict.get(\"AS\");\n if (!(as instanceof Name) || !normalAppearanceState.has(as.name)) {\n return;\n }\n this.appearance = normalAppearanceState.get(as.name);\n }\n\n loadResources(keys, appearance) {\n return appearance.dict.getAsync(\"Resources\").then(resources => {\n if (!resources) {\n return undefined;\n }\n\n const objectLoader = new ObjectLoader(resources, keys, resources.xref);\n return objectLoader.load().then(function () {\n return resources;\n });\n });\n }\n\n getOperatorList(evaluator, task, intent, renderForms, annotationStorage) {\n const data = this.data;\n let appearance = this.appearance;\n const isUsingOwnCanvas =\n data.hasOwnCanvas && intent & RenderingIntentFlag.DISPLAY;\n if (!appearance) {\n if (!isUsingOwnCanvas) {\n return Promise.resolve(new OperatorList());\n }\n appearance = new StringStream(\"\");\n appearance.dict = new Dict();\n }\n\n const appearanceDict = appearance.dict;\n const resourcesPromise = this.loadResources(\n [\"ExtGState\", \"ColorSpace\", \"Pattern\", \"Shading\", \"XObject\", \"Font\"],\n appearance\n );\n const bbox = appearanceDict.getArray(\"BBox\") || [0, 0, 1, 1];\n const matrix = appearanceDict.getArray(\"Matrix\") || [1, 0, 0, 1, 0, 0];\n const transform = getTransformMatrix(data.rect, bbox, matrix);\n\n return resourcesPromise.then(resources => {\n const opList = new OperatorList();\n opList.addOp(OPS.beginAnnotation, [\n data.id,\n data.rect,\n transform,\n matrix,\n isUsingOwnCanvas,\n ]);\n\n return evaluator\n .getOperatorList({\n stream: appearance,\n task,\n resources,\n operatorList: opList,\n fallbackFontDict: this._fallbackFontDict,\n })\n .then(() => {\n opList.addOp(OPS.endAnnotation, []);\n this.reset();\n return opList;\n });\n });\n }\n\n async save(evaluator, task, annotationStorage) {\n return null;\n }\n\n /**\n * Get field data for usage in JS sandbox.\n *\n * Field object is defined here:\n * https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/js_api_reference.pdf#page=16\n *\n * @public\n * @memberof Annotation\n * @returns {Object | null}\n */\n getFieldObject() {\n if (this.data.kidIds) {\n return {\n id: this.data.id,\n actions: this.data.actions,\n name: this.data.fieldName,\n strokeColor: this.data.borderColor,\n fillColor: this.data.backgroundColor,\n type: \"\",\n kidIds: this.data.kidIds,\n page: this.data.pageIndex,\n };\n }\n return null;\n }\n\n /**\n * Reset the annotation.\n *\n * This involves resetting the various streams that are either cached on the\n * annotation instance or created during its construction.\n *\n * @public\n * @memberof Annotation\n */\n reset() {\n if (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")) &&\n this.appearance &&\n !this._streams.includes(this.appearance)\n ) {\n unreachable(\"The appearance stream should always be reset.\");\n }\n\n for (const stream of this._streams) {\n stream.reset();\n }\n }\n\n /**\n * Construct the (fully qualified) field name from the (partial) field\n * names of the field and its ancestors.\n *\n * @private\n * @memberof Annotation\n * @param {Dict} dict - Complete widget annotation dictionary\n * @returns {string}\n */\n _constructFieldName(dict) {\n // Both the `Parent` and `T` fields are optional. While at least one of\n // them should be provided, bad PDF generators may fail to do so.\n if (!dict.has(\"T\") && !dict.has(\"Parent\")) {\n warn(\"Unknown field name, falling back to empty field name.\");\n return \"\";\n }\n\n // If no parent exists, the partial and fully qualified names are equal.\n if (!dict.has(\"Parent\")) {\n return stringToPDFString(dict.get(\"T\"));\n }\n\n // Form the fully qualified field name by appending the partial name to\n // the parent's fully qualified name, separated by a period.\n const fieldName = [];\n if (dict.has(\"T\")) {\n fieldName.unshift(stringToPDFString(dict.get(\"T\")));\n }\n\n let loopDict = dict;\n const visited = new RefSet();\n if (dict.objId) {\n visited.put(dict.objId);\n }\n while (loopDict.has(\"Parent\")) {\n loopDict = loopDict.get(\"Parent\");\n if (\n !(loopDict instanceof Dict) ||\n (loopDict.objId && visited.has(loopDict.objId))\n ) {\n // Even though it is not allowed according to the PDF specification,\n // bad PDF generators may provide a `Parent` entry that is not a\n // dictionary, but `null` for example (issue 8143).\n //\n // If parent has been already visited, it means that we're\n // in an infinite loop.\n break;\n }\n if (loopDict.objId) {\n visited.put(loopDict.objId);\n }\n\n if (loopDict.has(\"T\")) {\n fieldName.unshift(stringToPDFString(loopDict.get(\"T\")));\n }\n }\n return fieldName.join(\".\");\n }\n}\n\n/**\n * Contains all data regarding an annotation's border style.\n */\nclass AnnotationBorderStyle {\n constructor() {\n this.width = 1;\n this.style = AnnotationBorderStyleType.SOLID;\n this.dashArray = [3];\n this.horizontalCornerRadius = 0;\n this.verticalCornerRadius = 0;\n }\n\n /**\n * Set the width.\n *\n * @public\n * @memberof AnnotationBorderStyle\n * @param {number} width - The width.\n * @param {Array} rect - The annotation `Rect` entry.\n */\n setWidth(width, rect = [0, 0, 0, 0]) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n Array.isArray(rect) && rect.length === 4,\n \"A valid `rect` parameter must be provided.\"\n );\n }\n\n // Some corrupt PDF generators may provide the width as a `Name`,\n // rather than as a number (fixes issue 10385).\n if (width instanceof Name) {\n this.width = 0; // This is consistent with the behaviour in Adobe Reader.\n return;\n }\n if (typeof width === \"number\") {\n if (width > 0) {\n const maxWidth = (rect[2] - rect[0]) / 2;\n const maxHeight = (rect[3] - rect[1]) / 2;\n\n // Ignore large `width`s, since they lead to the Annotation overflowing\n // the size set by the `Rect` entry thus causing the `annotationLayer`\n // to render it over the surrounding document (fixes bug1552113.pdf).\n if (\n maxWidth > 0 &&\n maxHeight > 0 &&\n (width > maxWidth || width > maxHeight)\n ) {\n warn(`AnnotationBorderStyle.setWidth - ignoring width: ${width}`);\n width = 1;\n }\n }\n this.width = width;\n }\n }\n\n /**\n * Set the style.\n *\n * @public\n * @memberof AnnotationBorderStyle\n * @param {Name} style - The annotation style.\n * @see {@link shared/util.js}\n */\n setStyle(style) {\n if (!(style instanceof Name)) {\n return;\n }\n switch (style.name) {\n case \"S\":\n this.style = AnnotationBorderStyleType.SOLID;\n break;\n\n case \"D\":\n this.style = AnnotationBorderStyleType.DASHED;\n break;\n\n case \"B\":\n this.style = AnnotationBorderStyleType.BEVELED;\n break;\n\n case \"I\":\n this.style = AnnotationBorderStyleType.INSET;\n break;\n\n case \"U\":\n this.style = AnnotationBorderStyleType.UNDERLINE;\n break;\n\n default:\n break;\n }\n }\n\n /**\n * Set the dash array.\n *\n * @public\n * @memberof AnnotationBorderStyle\n * @param {Array} dashArray - The dash array with at least one element\n * @param {boolean} [forceStyle]\n */\n setDashArray(dashArray, forceStyle = false) {\n // We validate the dash array, but we do not use it because CSS does not\n // allow us to change spacing of dashes. For more information, visit\n // http://www.w3.org/TR/css3-background/#the-border-style.\n if (Array.isArray(dashArray) && dashArray.length > 0) {\n // According to the PDF specification: the elements in `dashArray`\n // shall be numbers that are nonnegative and not all equal to zero.\n let isValid = true;\n let allZeros = true;\n for (const element of dashArray) {\n const validNumber = +element >= 0;\n if (!validNumber) {\n isValid = false;\n break;\n } else if (element > 0) {\n allZeros = false;\n }\n }\n if (isValid && !allZeros) {\n this.dashArray = dashArray;\n\n if (forceStyle) {\n // Even though we cannot use the dash array in the display layer,\n // at least ensure that we use the correct border-style.\n this.setStyle(Name.get(\"D\"));\n }\n } else {\n this.width = 0; // Adobe behavior when the array is invalid.\n }\n } else if (dashArray) {\n this.width = 0; // Adobe behavior when the array is invalid.\n }\n }\n\n /**\n * Set the horizontal corner radius (from a Border dictionary).\n *\n * @public\n * @memberof AnnotationBorderStyle\n * @param {number} radius - The horizontal corner radius.\n */\n setHorizontalCornerRadius(radius) {\n if (Number.isInteger(radius)) {\n this.horizontalCornerRadius = radius;\n }\n }\n\n /**\n * Set the vertical corner radius (from a Border dictionary).\n *\n * @public\n * @memberof AnnotationBorderStyle\n * @param {number} radius - The vertical corner radius.\n */\n setVerticalCornerRadius(radius) {\n if (Number.isInteger(radius)) {\n this.verticalCornerRadius = radius;\n }\n }\n}\n\nclass MarkupAnnotation extends Annotation {\n constructor(parameters) {\n super(parameters);\n\n const dict = parameters.dict;\n\n if (dict.has(\"IRT\")) {\n const rawIRT = dict.getRaw(\"IRT\");\n this.data.inReplyTo = rawIRT instanceof Ref ? rawIRT.toString() : null;\n\n const rt = dict.get(\"RT\");\n this.data.replyType =\n rt instanceof Name ? rt.name : AnnotationReplyType.REPLY;\n }\n\n if (this.data.replyType === AnnotationReplyType.GROUP) {\n // Subordinate annotations in a group should inherit\n // the group attributes from the primary annotation.\n const parent = dict.get(\"IRT\");\n\n this.setTitle(parent.get(\"T\"));\n this.data.titleObj = this._title;\n\n this.setContents(parent.get(\"Contents\"));\n this.data.contentsObj = this._contents;\n\n if (!parent.has(\"CreationDate\")) {\n this.data.creationDate = null;\n } else {\n this.setCreationDate(parent.get(\"CreationDate\"));\n this.data.creationDate = this.creationDate;\n }\n\n if (!parent.has(\"M\")) {\n this.data.modificationDate = null;\n } else {\n this.setModificationDate(parent.get(\"M\"));\n this.data.modificationDate = this.modificationDate;\n }\n\n this.data.hasPopup = parent.has(\"Popup\");\n\n if (!parent.has(\"C\")) {\n // Fall back to the default background color.\n this.data.color = null;\n } else {\n this.setColor(parent.getArray(\"C\"));\n this.data.color = this.color;\n }\n } else {\n this.data.titleObj = this._title;\n\n this.setCreationDate(dict.get(\"CreationDate\"));\n this.data.creationDate = this.creationDate;\n\n this.data.hasPopup = dict.has(\"Popup\");\n\n if (!dict.has(\"C\")) {\n // Fall back to the default background color.\n this.data.color = null;\n }\n }\n\n if (dict.has(\"RC\")) {\n this.data.richText = XFAFactory.getRichTextAsHtml(dict.get(\"RC\"));\n }\n }\n\n /**\n * Set the creation date.\n *\n * @public\n * @memberof MarkupAnnotation\n * @param {string} creationDate - PDF date string that indicates when the\n * annotation was originally created\n */\n setCreationDate(creationDate) {\n this.creationDate = typeof creationDate === \"string\" ? creationDate : null;\n }\n\n _setDefaultAppearance({\n xref,\n extra,\n strokeColor,\n fillColor,\n blendMode,\n strokeAlpha,\n fillAlpha,\n pointsCallback,\n }) {\n let minX = Number.MAX_VALUE;\n let minY = Number.MAX_VALUE;\n let maxX = Number.MIN_VALUE;\n let maxY = Number.MIN_VALUE;\n\n const buffer = [\"q\"];\n if (extra) {\n buffer.push(extra);\n }\n if (strokeColor) {\n buffer.push(`${strokeColor[0]} ${strokeColor[1]} ${strokeColor[2]} RG`);\n }\n if (fillColor) {\n buffer.push(`${fillColor[0]} ${fillColor[1]} ${fillColor[2]} rg`);\n }\n\n let pointsArray = this.data.quadPoints;\n if (!pointsArray) {\n // If there are no quadpoints, the rectangle should be used instead.\n // Convert the rectangle definition to a points array similar to how the\n // quadpoints are defined.\n pointsArray = [\n [\n { x: this.rectangle[0], y: this.rectangle[3] },\n { x: this.rectangle[2], y: this.rectangle[3] },\n { x: this.rectangle[0], y: this.rectangle[1] },\n { x: this.rectangle[2], y: this.rectangle[1] },\n ],\n ];\n }\n\n for (const points of pointsArray) {\n const [mX, MX, mY, MY] = pointsCallback(buffer, points);\n minX = Math.min(minX, mX);\n maxX = Math.max(maxX, MX);\n minY = Math.min(minY, mY);\n maxY = Math.max(maxY, MY);\n }\n buffer.push(\"Q\");\n\n const formDict = new Dict(xref);\n const appearanceStreamDict = new Dict(xref);\n appearanceStreamDict.set(\"Subtype\", Name.get(\"Form\"));\n\n const appearanceStream = new StringStream(buffer.join(\" \"));\n appearanceStream.dict = appearanceStreamDict;\n formDict.set(\"Fm0\", appearanceStream);\n\n const gsDict = new Dict(xref);\n if (blendMode) {\n gsDict.set(\"BM\", Name.get(blendMode));\n }\n if (typeof strokeAlpha === \"number\") {\n gsDict.set(\"CA\", strokeAlpha);\n }\n if (typeof fillAlpha === \"number\") {\n gsDict.set(\"ca\", fillAlpha);\n }\n\n const stateDict = new Dict(xref);\n stateDict.set(\"GS0\", gsDict);\n\n const resources = new Dict(xref);\n resources.set(\"ExtGState\", stateDict);\n resources.set(\"XObject\", formDict);\n\n const appearanceDict = new Dict(xref);\n appearanceDict.set(\"Resources\", resources);\n const bbox = (this.data.rect = [minX, minY, maxX, maxY]);\n appearanceDict.set(\"BBox\", bbox);\n\n this.appearance = new StringStream(\"/GS0 gs /Fm0 Do\");\n this.appearance.dict = appearanceDict;\n\n // This method is only called if there is no appearance for the annotation,\n // so `this.appearance` is not pushed yet in the `Annotation` constructor.\n this._streams.push(this.appearance, appearanceStream);\n }\n}\n\nclass WidgetAnnotation extends Annotation {\n constructor(params) {\n super(params);\n\n const dict = params.dict;\n const data = this.data;\n this.ref = params.ref;\n\n data.annotationType = AnnotationType.WIDGET;\n if (data.fieldName === undefined) {\n data.fieldName = this._constructFieldName(dict);\n }\n if (data.actions === undefined) {\n data.actions = collectActions(\n params.xref,\n dict,\n AnnotationActionEventType\n );\n }\n\n let fieldValue = getInheritableProperty({\n dict,\n key: \"V\",\n getArray: true,\n });\n data.fieldValue = this._decodeFormValue(fieldValue);\n\n const defaultFieldValue = getInheritableProperty({\n dict,\n key: \"DV\",\n getArray: true,\n });\n data.defaultFieldValue = this._decodeFormValue(defaultFieldValue);\n\n if (fieldValue === undefined && params.xfaDatasets) {\n // Try to figure out if we have something in the xfa dataset.\n const path = this._title.str;\n if (path) {\n this._hasValueFromXFA = true;\n data.fieldValue = fieldValue = params.xfaDatasets.getValue(path);\n }\n }\n\n // When no \"V\" entry exists, let the fieldValue fallback to the \"DV\" entry\n // (fixes issue13823.pdf).\n if (fieldValue === undefined && data.defaultFieldValue !== null) {\n data.fieldValue = data.defaultFieldValue;\n }\n\n data.alternativeText = stringToPDFString(dict.get(\"TU\") || \"\");\n\n const defaultAppearance =\n getInheritableProperty({ dict, key: \"DA\" }) || params.acroForm.get(\"DA\");\n this._defaultAppearance =\n typeof defaultAppearance === \"string\" ? defaultAppearance : \"\";\n data.defaultAppearanceData = parseDefaultAppearance(\n this._defaultAppearance\n );\n\n const fieldType = getInheritableProperty({ dict, key: \"FT\" });\n data.fieldType = fieldType instanceof Name ? fieldType.name : null;\n\n const localResources = getInheritableProperty({ dict, key: \"DR\" });\n const acroFormResources = params.acroForm.get(\"DR\");\n const appearanceResources =\n this.appearance && this.appearance.dict.get(\"Resources\");\n\n this._fieldResources = {\n localResources,\n acroFormResources,\n appearanceResources,\n mergedResources: Dict.merge({\n xref: params.xref,\n dictArray: [localResources, appearanceResources, acroFormResources],\n mergeSubDicts: true,\n }),\n };\n\n data.fieldFlags = getInheritableProperty({ dict, key: \"Ff\" });\n if (!Number.isInteger(data.fieldFlags) || data.fieldFlags < 0) {\n data.fieldFlags = 0;\n }\n\n data.readOnly = this.hasFieldFlag(AnnotationFieldFlag.READONLY);\n data.hidden = this._hasFlag(data.annotationFlags, AnnotationFlag.HIDDEN);\n }\n\n /**\n * Decode the given form value.\n *\n * @private\n * @memberof WidgetAnnotation\n * @param {Array|Name|string} formValue - The (possibly encoded)\n * form value.\n * @returns {Array|string|null}\n */\n _decodeFormValue(formValue) {\n if (Array.isArray(formValue)) {\n return formValue\n .filter(item => typeof item === \"string\")\n .map(item => stringToPDFString(item));\n } else if (formValue instanceof Name) {\n return stringToPDFString(formValue.name);\n } else if (typeof formValue === \"string\") {\n return stringToPDFString(formValue);\n }\n return null;\n }\n\n /**\n * Check if a provided field flag is set.\n *\n * @public\n * @memberof WidgetAnnotation\n * @param {number} flag - Hexadecimal representation for an annotation\n * field characteristic\n * @returns {boolean}\n * @see {@link shared/util.js}\n */\n hasFieldFlag(flag) {\n return !!(this.data.fieldFlags & flag);\n }\n\n getOperatorList(evaluator, task, intent, renderForms, annotationStorage) {\n // Do not render form elements on the canvas when interactive forms are\n // enabled. The display layer is responsible for rendering them instead.\n if (renderForms && !(this instanceof SignatureWidgetAnnotation)) {\n return Promise.resolve(new OperatorList());\n }\n\n if (!this._hasText) {\n return super.getOperatorList(\n evaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n );\n }\n\n return this._getAppearance(evaluator, task, annotationStorage).then(\n content => {\n if (this.appearance && content === null) {\n return super.getOperatorList(\n evaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n );\n }\n\n const operatorList = new OperatorList();\n\n // Even if there is an appearance stream, ignore it. This is the\n // behaviour used by Adobe Reader.\n if (!this._defaultAppearance || content === null) {\n return operatorList;\n }\n\n const matrix = [1, 0, 0, 1, 0, 0];\n const bbox = [\n 0,\n 0,\n this.data.rect[2] - this.data.rect[0],\n this.data.rect[3] - this.data.rect[1],\n ];\n\n const transform = getTransformMatrix(this.data.rect, bbox, matrix);\n operatorList.addOp(OPS.beginAnnotation, [\n this.data.id,\n this.data.rect,\n transform,\n matrix,\n ]);\n\n const stream = new StringStream(content);\n return evaluator\n .getOperatorList({\n stream,\n task,\n resources: this._fieldResources.mergedResources,\n operatorList,\n })\n .then(function () {\n operatorList.addOp(OPS.endAnnotation, []);\n return operatorList;\n });\n }\n );\n }\n\n async save(evaluator, task, annotationStorage) {\n const storageEntry = annotationStorage\n ? annotationStorage.get(this.data.id)\n : undefined;\n let value = storageEntry && storageEntry.value;\n if (value === this.data.fieldValue || value === undefined) {\n if (!this._hasValueFromXFA) {\n return null;\n }\n value = value || this.data.fieldValue;\n }\n\n // Value can be an array (with choice list and multiple selections)\n if (\n !this._hasValueFromXFA &&\n Array.isArray(value) &&\n Array.isArray(this.data.fieldValue) &&\n value.length === this.data.fieldValue.length &&\n value.every((x, i) => x === this.data.fieldValue[i])\n ) {\n return null;\n }\n\n let appearance = await this._getAppearance(\n evaluator,\n task,\n annotationStorage\n );\n if (appearance === null) {\n return null;\n }\n const { xref } = evaluator;\n\n const dict = xref.fetchIfRef(this.ref);\n if (!(dict instanceof Dict)) {\n return null;\n }\n\n const bbox = [\n 0,\n 0,\n this.data.rect[2] - this.data.rect[0],\n this.data.rect[3] - this.data.rect[1],\n ];\n\n const xfa = {\n path: stringToPDFString(dict.get(\"T\") || \"\"),\n value,\n };\n\n const newRef = xref.getNewRef();\n const AP = new Dict(xref);\n AP.set(\"N\", newRef);\n\n const encrypt = xref.encrypt;\n let originalTransform = null;\n let newTransform = null;\n if (encrypt) {\n originalTransform = encrypt.createCipherTransform(\n this.ref.num,\n this.ref.gen\n );\n newTransform = encrypt.createCipherTransform(newRef.num, newRef.gen);\n appearance = newTransform.encryptString(appearance);\n }\n\n const encoder = val => (isAscii(val) ? val : stringToUTF16BEString(val));\n dict.set(\"V\", Array.isArray(value) ? value.map(encoder) : encoder(value));\n dict.set(\"AP\", AP);\n dict.set(\"M\", `D:${getModificationDate()}`);\n\n const appearanceDict = new Dict(xref);\n appearanceDict.set(\"Length\", appearance.length);\n appearanceDict.set(\"Subtype\", Name.get(\"Form\"));\n appearanceDict.set(\"Resources\", this._getSaveFieldResources(xref));\n appearanceDict.set(\"BBox\", bbox);\n\n const bufferOriginal = [`${this.ref.num} ${this.ref.gen} obj\\n`];\n writeDict(dict, bufferOriginal, originalTransform);\n bufferOriginal.push(\"\\nendobj\\n\");\n\n const bufferNew = [`${newRef.num} ${newRef.gen} obj\\n`];\n writeDict(appearanceDict, bufferNew, newTransform);\n bufferNew.push(\" stream\\n\", appearance, \"\\nendstream\\nendobj\\n\");\n\n return [\n // data for the original object\n // V field changed + reference for new AP\n { ref: this.ref, data: bufferOriginal.join(\"\"), xfa },\n // data for the new AP\n { ref: newRef, data: bufferNew.join(\"\"), xfa: null },\n ];\n }\n\n async _getAppearance(evaluator, task, annotationStorage) {\n const isPassword = this.hasFieldFlag(AnnotationFieldFlag.PASSWORD);\n if (isPassword) {\n return null;\n }\n const storageEntry = annotationStorage\n ? annotationStorage.get(this.data.id)\n : undefined;\n let value =\n storageEntry && (storageEntry.formattedValue || storageEntry.value);\n if (value === undefined) {\n if (!this._hasValueFromXFA || this.appearance) {\n // The annotation hasn't been rendered so use the appearance.\n return null;\n }\n // The annotation has its value in XFA datasets but not in the V field.\n value = this.data.fieldValue;\n if (!value) {\n return \"\";\n }\n }\n\n assert(typeof value === \"string\", \"Expected `value` to be a string.\");\n\n value = value.trim();\n\n if (value === \"\") {\n // the field is empty: nothing to render\n return \"\";\n }\n\n let lineCount = -1;\n if (this.data.multiLine) {\n lineCount = value.split(/\\r\\n|\\r|\\n/).length;\n }\n\n const defaultPadding = 2;\n const hPadding = defaultPadding;\n const totalHeight = this.data.rect[3] - this.data.rect[1];\n const totalWidth = this.data.rect[2] - this.data.rect[0];\n\n if (!this._defaultAppearance) {\n // The DA is required and must be a string.\n // If there is no font named Helvetica in the resource dictionary,\n // the evaluator will fall back to a default font.\n // Doing so prevents exceptions and allows saving/printing\n // the file as expected.\n this.data.defaultAppearanceData = parseDefaultAppearance(\n (this._defaultAppearance = \"/Helvetica 0 Tf 0 g\")\n );\n }\n\n const font = await this._getFontData(evaluator, task);\n const [defaultAppearance, fontSize] = this._computeFontSize(\n totalHeight - defaultPadding,\n totalWidth - 2 * hPadding,\n value,\n font,\n lineCount\n );\n\n let descent = font.descent;\n if (isNaN(descent)) {\n descent = 0;\n }\n\n const vPadding = defaultPadding + Math.abs(descent) * fontSize;\n const alignment = this.data.textAlignment;\n\n if (this.data.multiLine) {\n return this._getMultilineAppearance(\n defaultAppearance,\n value,\n font,\n fontSize,\n totalWidth,\n totalHeight,\n alignment,\n hPadding,\n vPadding\n );\n }\n\n // TODO: need to handle chars which are not in the font.\n const encodedString = font.encodeString(value).join(\"\");\n\n if (this.data.comb) {\n return this._getCombAppearance(\n defaultAppearance,\n font,\n encodedString,\n totalWidth,\n hPadding,\n vPadding\n );\n }\n\n if (alignment === 0 || alignment > 2) {\n // Left alignment: nothing to do\n return (\n \"/Tx BMC q BT \" +\n defaultAppearance +\n ` 1 0 0 1 ${hPadding} ${vPadding} Tm (${escapeString(\n encodedString\n )}) Tj` +\n \" ET Q EMC\"\n );\n }\n\n const renderedText = this._renderText(\n encodedString,\n font,\n fontSize,\n totalWidth,\n alignment,\n hPadding,\n vPadding\n );\n return (\n \"/Tx BMC q BT \" +\n defaultAppearance +\n ` 1 0 0 1 0 0 Tm ${renderedText}` +\n \" ET Q EMC\"\n );\n }\n\n async _getFontData(evaluator, task) {\n const operatorList = new OperatorList();\n const initialState = {\n font: null,\n clone() {\n return this;\n },\n };\n\n const { fontName, fontSize } = this.data.defaultAppearanceData;\n await evaluator.handleSetFont(\n this._fieldResources.mergedResources,\n [fontName && Name.get(fontName), fontSize],\n /* fontRef = */ null,\n operatorList,\n task,\n initialState,\n /* fallbackFontDict = */ null\n );\n\n return initialState.font;\n }\n\n _getTextWidth(text, font) {\n return (\n font\n .charsToGlyphs(text)\n .reduce((width, glyph) => width + glyph.width, 0) / 1000\n );\n }\n\n _computeFontSize(height, width, text, font, lineCount) {\n let { fontSize } = this.data.defaultAppearanceData;\n if (!fontSize) {\n // A zero value for size means that the font shall be auto-sized:\n // its size shall be computed as a function of the height of the\n // annotation rectangle (see 12.7.3.3).\n\n const roundWithTwoDigits = x => Math.floor(x * 100) / 100;\n\n if (lineCount === -1) {\n const textWidth = this._getTextWidth(text, font);\n fontSize = roundWithTwoDigits(\n Math.min(height / LINE_FACTOR, width / textWidth)\n );\n } else {\n const lines = text.split(/\\r\\n?|\\n/);\n const cachedLines = [];\n for (const line of lines) {\n const encoded = font.encodeString(line).join(\"\");\n const glyphs = font.charsToGlyphs(encoded);\n const positions = font.getCharPositions(encoded);\n cachedLines.push({\n line: encoded,\n glyphs,\n positions,\n });\n }\n\n const isTooBig = fsize => {\n // Return true when the text doesn't fit the given height.\n let totalHeight = 0;\n for (const cache of cachedLines) {\n const chunks = this._splitLine(null, font, fsize, width, cache);\n totalHeight += chunks.length * fsize;\n if (totalHeight > height) {\n return true;\n }\n }\n return false;\n };\n\n // Hard to guess how many lines there are.\n // The field may have been sized to have 10 lines\n // and the user entered only 1 so if we get font size from\n // height and number of lines then we'll get something too big.\n // So we compute a fake number of lines based on height and\n // a font size equal to 12 (this is the default font size in\n // Acrobat).\n // Then we'll adjust font size to what we have really.\n fontSize = 12;\n let lineHeight = fontSize * LINE_FACTOR;\n let numberOfLines = Math.round(height / lineHeight);\n numberOfLines = Math.max(numberOfLines, lineCount);\n\n while (true) {\n lineHeight = height / numberOfLines;\n fontSize = roundWithTwoDigits(lineHeight / LINE_FACTOR);\n\n if (isTooBig(fontSize)) {\n numberOfLines++;\n continue;\n }\n\n break;\n }\n }\n\n const { fontName, fontColor } = this.data.defaultAppearanceData;\n this._defaultAppearance = createDefaultAppearance({\n fontSize,\n fontName,\n fontColor,\n });\n }\n return [this._defaultAppearance, fontSize];\n }\n\n _renderText(text, font, fontSize, totalWidth, alignment, hPadding, vPadding) {\n let shift;\n if (alignment === 1) {\n // Center\n const width = this._getTextWidth(text, font) * fontSize;\n shift = (totalWidth - width) / 2;\n } else if (alignment === 2) {\n // Right\n const width = this._getTextWidth(text, font) * fontSize;\n shift = totalWidth - width - hPadding;\n } else {\n shift = hPadding;\n }\n shift = shift.toFixed(2);\n vPadding = vPadding.toFixed(2);\n\n return `${shift} ${vPadding} Td (${escapeString(text)}) Tj`;\n }\n\n /**\n * @private\n */\n _getSaveFieldResources(xref) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n this.data.defaultAppearanceData,\n \"Expected `_defaultAppearanceData` to have been set.\"\n );\n }\n const { localResources, appearanceResources, acroFormResources } =\n this._fieldResources;\n\n const fontName =\n this.data.defaultAppearanceData &&\n this.data.defaultAppearanceData.fontName;\n if (!fontName) {\n return localResources || Dict.empty;\n }\n\n for (const resources of [localResources, appearanceResources]) {\n if (resources instanceof Dict) {\n const localFont = resources.get(\"Font\");\n if (localFont instanceof Dict && localFont.has(fontName)) {\n return resources;\n }\n }\n }\n if (acroFormResources instanceof Dict) {\n const acroFormFont = acroFormResources.get(\"Font\");\n if (acroFormFont instanceof Dict && acroFormFont.has(fontName)) {\n const subFontDict = new Dict(xref);\n subFontDict.set(fontName, acroFormFont.getRaw(fontName));\n\n const subResourcesDict = new Dict(xref);\n subResourcesDict.set(\"Font\", subFontDict);\n\n return Dict.merge({\n xref,\n dictArray: [subResourcesDict, localResources],\n mergeSubDicts: true,\n });\n }\n }\n return localResources || Dict.empty;\n }\n\n getFieldObject() {\n return null;\n }\n}\n\nclass TextWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n\n this._hasText = true;\n\n const dict = params.dict;\n\n // The field value is always a string.\n if (typeof this.data.fieldValue !== \"string\") {\n this.data.fieldValue = \"\";\n }\n\n // Determine the alignment of text in the field.\n let alignment = getInheritableProperty({ dict, key: \"Q\" });\n if (!Number.isInteger(alignment) || alignment < 0 || alignment > 2) {\n alignment = null;\n }\n this.data.textAlignment = alignment;\n\n // Determine the maximum length of text in the field.\n let maximumLength = getInheritableProperty({ dict, key: \"MaxLen\" });\n if (!Number.isInteger(maximumLength) || maximumLength < 0) {\n maximumLength = null;\n }\n this.data.maxLen = maximumLength;\n\n // Process field flags for the display layer.\n this.data.multiLine = this.hasFieldFlag(AnnotationFieldFlag.MULTILINE);\n this.data.comb =\n this.hasFieldFlag(AnnotationFieldFlag.COMB) &&\n !this.hasFieldFlag(AnnotationFieldFlag.MULTILINE) &&\n !this.hasFieldFlag(AnnotationFieldFlag.PASSWORD) &&\n !this.hasFieldFlag(AnnotationFieldFlag.FILESELECT) &&\n this.data.maxLen !== null;\n }\n\n _getCombAppearance(defaultAppearance, font, text, width, hPadding, vPadding) {\n const combWidth = (width / this.data.maxLen).toFixed(2);\n const buf = [];\n const positions = font.getCharPositions(text);\n for (const [start, end] of positions) {\n buf.push(`(${escapeString(text.substring(start, end))}) Tj`);\n }\n\n const renderedComb = buf.join(` ${combWidth} 0 Td `);\n return (\n \"/Tx BMC q BT \" +\n defaultAppearance +\n ` 1 0 0 1 ${hPadding} ${vPadding} Tm ${renderedComb}` +\n \" ET Q EMC\"\n );\n }\n\n _getMultilineAppearance(\n defaultAppearance,\n text,\n font,\n fontSize,\n width,\n height,\n alignment,\n hPadding,\n vPadding\n ) {\n const lines = text.split(/\\r\\n?|\\n/);\n const buf = [];\n const totalWidth = width - 2 * hPadding;\n for (const line of lines) {\n const chunks = this._splitLine(line, font, fontSize, totalWidth);\n for (const chunk of chunks) {\n const padding = buf.length === 0 ? hPadding : 0;\n buf.push(\n this._renderText(\n chunk,\n font,\n fontSize,\n width,\n alignment,\n padding,\n -fontSize // <0 because a line is below the previous one\n )\n );\n }\n }\n\n const renderedText = buf.join(\"\\n\");\n return (\n \"/Tx BMC q BT \" +\n defaultAppearance +\n ` 1 0 0 1 0 ${height} Tm ${renderedText}` +\n \" ET Q EMC\"\n );\n }\n\n _splitLine(line, font, fontSize, width, cache = {}) {\n // TODO: need to handle chars which are not in the font.\n line = cache.line || font.encodeString(line).join(\"\");\n\n const glyphs = cache.glyphs || font.charsToGlyphs(line);\n\n if (glyphs.length <= 1) {\n // Nothing to split\n return [line];\n }\n\n const positions = cache.positions || font.getCharPositions(line);\n const scale = fontSize / 1000;\n const chunks = [];\n\n let lastSpacePosInStringStart = -1,\n lastSpacePosInStringEnd = -1,\n lastSpacePos = -1,\n startChunk = 0,\n currentWidth = 0;\n\n for (let i = 0, ii = glyphs.length; i < ii; i++) {\n const [start, end] = positions[i];\n const glyph = glyphs[i];\n const glyphWidth = glyph.width * scale;\n if (glyph.unicode === \" \") {\n if (currentWidth + glyphWidth > width) {\n // We can break here\n chunks.push(line.substring(startChunk, start));\n startChunk = start;\n currentWidth = glyphWidth;\n lastSpacePosInStringStart = -1;\n lastSpacePos = -1;\n } else {\n currentWidth += glyphWidth;\n lastSpacePosInStringStart = start;\n lastSpacePosInStringEnd = end;\n lastSpacePos = i;\n }\n } else {\n if (currentWidth + glyphWidth > width) {\n // We must break to the last white position (if available)\n if (lastSpacePosInStringStart !== -1) {\n chunks.push(line.substring(startChunk, lastSpacePosInStringEnd));\n startChunk = lastSpacePosInStringEnd;\n i = lastSpacePos + 1;\n lastSpacePosInStringStart = -1;\n currentWidth = 0;\n } else {\n // Just break in the middle of the word\n chunks.push(line.substring(startChunk, start));\n startChunk = start;\n currentWidth = glyphWidth;\n }\n } else {\n currentWidth += glyphWidth;\n }\n }\n }\n\n if (startChunk < line.length) {\n chunks.push(line.substring(startChunk, line.length));\n }\n\n return chunks;\n }\n\n getFieldObject() {\n return {\n id: this.data.id,\n value: this.data.fieldValue,\n defaultValue: this.data.defaultFieldValue || \"\",\n multiline: this.data.multiLine,\n password: this.hasFieldFlag(AnnotationFieldFlag.PASSWORD),\n charLimit: this.data.maxLen,\n comb: this.data.comb,\n editable: !this.data.readOnly,\n hidden: this.data.hidden,\n name: this.data.fieldName,\n rect: this.data.rect,\n actions: this.data.actions,\n page: this.data.pageIndex,\n strokeColor: this.data.borderColor,\n fillColor: this.data.backgroundColor,\n type: \"text\",\n };\n }\n}\n\nclass ButtonWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n\n this.checkedAppearance = null;\n this.uncheckedAppearance = null;\n\n this.data.checkBox =\n !this.hasFieldFlag(AnnotationFieldFlag.RADIO) &&\n !this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON);\n this.data.radioButton =\n this.hasFieldFlag(AnnotationFieldFlag.RADIO) &&\n !this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON);\n this.data.pushButton = this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON);\n this.data.isTooltipOnly = false;\n\n if (this.data.checkBox) {\n this._processCheckBox(params);\n } else if (this.data.radioButton) {\n this._processRadioButton(params);\n } else if (this.data.pushButton) {\n this.data.hasOwnCanvas = true;\n this._processPushButton(params);\n } else {\n warn(\"Invalid field flags for button widget annotation\");\n }\n }\n\n async getOperatorList(\n evaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n ) {\n if (this.data.pushButton) {\n return super.getOperatorList(\n evaluator,\n task,\n intent,\n false, // we use normalAppearance to render the button\n annotationStorage\n );\n }\n\n let value = null;\n if (annotationStorage) {\n const storageEntry = annotationStorage.get(this.data.id);\n value = storageEntry ? storageEntry.value : null;\n }\n\n if (value === null) {\n // Nothing in the annotationStorage.\n if (this.appearance) {\n // But we've a default appearance so use it.\n return super.getOperatorList(\n evaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n );\n }\n\n // There is no default appearance so use the one derived\n // from the field value.\n if (this.data.checkBox) {\n value = this.data.fieldValue === this.data.exportValue;\n } else {\n value = this.data.fieldValue === this.data.buttonValue;\n }\n }\n\n const appearance = value\n ? this.checkedAppearance\n : this.uncheckedAppearance;\n if (appearance) {\n const savedAppearance = this.appearance;\n this.appearance = appearance;\n const operatorList = super.getOperatorList(\n evaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n );\n this.appearance = savedAppearance;\n return operatorList;\n }\n\n // No appearance\n return new OperatorList();\n }\n\n async save(evaluator, task, annotationStorage) {\n if (this.data.checkBox) {\n return this._saveCheckbox(evaluator, task, annotationStorage);\n }\n\n if (this.data.radioButton) {\n return this._saveRadioButton(evaluator, task, annotationStorage);\n }\n\n // Nothing to save\n return null;\n }\n\n async _saveCheckbox(evaluator, task, annotationStorage) {\n if (!annotationStorage) {\n return null;\n }\n const storageEntry = annotationStorage.get(this.data.id);\n const value = storageEntry && storageEntry.value;\n if (value === undefined) {\n return null;\n }\n\n const defaultValue = this.data.fieldValue === this.data.exportValue;\n if (defaultValue === value) {\n return null;\n }\n\n const dict = evaluator.xref.fetchIfRef(this.ref);\n if (!(dict instanceof Dict)) {\n return null;\n }\n\n const xfa = {\n path: stringToPDFString(dict.get(\"T\") || \"\"),\n value: value ? this.data.exportValue : \"\",\n };\n\n const name = Name.get(value ? this.data.exportValue : \"Off\");\n dict.set(\"V\", name);\n dict.set(\"AS\", name);\n dict.set(\"M\", `D:${getModificationDate()}`);\n\n const encrypt = evaluator.xref.encrypt;\n let originalTransform = null;\n if (encrypt) {\n originalTransform = encrypt.createCipherTransform(\n this.ref.num,\n this.ref.gen\n );\n }\n\n const buffer = [`${this.ref.num} ${this.ref.gen} obj\\n`];\n writeDict(dict, buffer, originalTransform);\n buffer.push(\"\\nendobj\\n\");\n\n return [{ ref: this.ref, data: buffer.join(\"\"), xfa }];\n }\n\n async _saveRadioButton(evaluator, task, annotationStorage) {\n if (!annotationStorage) {\n return null;\n }\n const storageEntry = annotationStorage.get(this.data.id);\n const value = storageEntry && storageEntry.value;\n if (value === undefined) {\n return null;\n }\n\n const defaultValue = this.data.fieldValue === this.data.buttonValue;\n if (defaultValue === value) {\n return null;\n }\n\n const dict = evaluator.xref.fetchIfRef(this.ref);\n if (!(dict instanceof Dict)) {\n return null;\n }\n\n const xfa = {\n path: stringToPDFString(dict.get(\"T\") || \"\"),\n value: value ? this.data.buttonValue : \"\",\n };\n\n const name = Name.get(value ? this.data.buttonValue : \"Off\");\n let parentBuffer = null;\n const encrypt = evaluator.xref.encrypt;\n\n if (value) {\n if (this.parent instanceof Ref) {\n const parent = evaluator.xref.fetch(this.parent);\n let parentTransform = null;\n if (encrypt) {\n parentTransform = encrypt.createCipherTransform(\n this.parent.num,\n this.parent.gen\n );\n }\n parent.set(\"V\", name);\n parentBuffer = [`${this.parent.num} ${this.parent.gen} obj\\n`];\n writeDict(parent, parentBuffer, parentTransform);\n parentBuffer.push(\"\\nendobj\\n\");\n } else if (this.parent instanceof Dict) {\n this.parent.set(\"V\", name);\n }\n }\n\n dict.set(\"AS\", name);\n dict.set(\"M\", `D:${getModificationDate()}`);\n\n let originalTransform = null;\n if (encrypt) {\n originalTransform = encrypt.createCipherTransform(\n this.ref.num,\n this.ref.gen\n );\n }\n\n const buffer = [`${this.ref.num} ${this.ref.gen} obj\\n`];\n writeDict(dict, buffer, originalTransform);\n buffer.push(\"\\nendobj\\n\");\n\n const newRefs = [{ ref: this.ref, data: buffer.join(\"\"), xfa }];\n if (parentBuffer !== null) {\n newRefs.push({\n ref: this.parent,\n data: parentBuffer.join(\"\"),\n xfa: null,\n });\n }\n\n return newRefs;\n }\n\n _getDefaultCheckedAppearance(params, type) {\n const width = this.data.rect[2] - this.data.rect[0];\n const height = this.data.rect[3] - this.data.rect[1];\n const bbox = [0, 0, width, height];\n\n // Ratio used to have a mark slightly smaller than the bbox.\n const FONT_RATIO = 0.8;\n const fontSize = Math.min(width, height) * FONT_RATIO;\n\n // Char Metrics\n // Widths came from widths for ZapfDingbats.\n // Heights are guessed with Fontforge and FoxitDingbats.pfb.\n let metrics, char;\n if (type === \"check\") {\n // Char 33 (2713 in unicode)\n metrics = {\n width: 0.755 * fontSize,\n height: 0.705 * fontSize,\n };\n char = \"\\x33\";\n } else if (type === \"disc\") {\n // Char 6C (25CF in unicode)\n metrics = {\n width: 0.791 * fontSize,\n height: 0.705 * fontSize,\n };\n char = \"\\x6C\";\n } else {\n unreachable(`_getDefaultCheckedAppearance - unsupported type: ${type}`);\n }\n\n // Values to center the glyph in the bbox.\n const xShift = (width - metrics.width) / 2;\n const yShift = (height - metrics.height) / 2;\n\n const appearance = `q BT /PdfJsZaDb ${fontSize} Tf 0 g ${xShift} ${yShift} Td (${char}) Tj ET Q`;\n\n const appearanceStreamDict = new Dict(params.xref);\n appearanceStreamDict.set(\"FormType\", 1);\n appearanceStreamDict.set(\"Subtype\", Name.get(\"Form\"));\n appearanceStreamDict.set(\"Type\", Name.get(\"XObject\"));\n appearanceStreamDict.set(\"BBox\", bbox);\n appearanceStreamDict.set(\"Matrix\", [1, 0, 0, 1, 0, 0]);\n appearanceStreamDict.set(\"Length\", appearance.length);\n\n const resources = new Dict(params.xref);\n const font = new Dict(params.xref);\n font.set(\"PdfJsZaDb\", this.fallbackFontDict);\n resources.set(\"Font\", font);\n\n appearanceStreamDict.set(\"Resources\", resources);\n\n this.checkedAppearance = new StringStream(appearance);\n this.checkedAppearance.dict = appearanceStreamDict;\n\n this._streams.push(this.checkedAppearance);\n }\n\n _processCheckBox(params) {\n const customAppearance = params.dict.get(\"AP\");\n if (!(customAppearance instanceof Dict)) {\n return;\n }\n\n const normalAppearance = customAppearance.get(\"N\");\n if (!(normalAppearance instanceof Dict)) {\n return;\n }\n\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=1722036.\n // If we've an AS and a V then take AS.\n const asValue = this._decodeFormValue(params.dict.get(\"AS\"));\n if (typeof asValue === \"string\") {\n this.data.fieldValue = asValue;\n }\n\n const yes =\n this.data.fieldValue !== null && this.data.fieldValue !== \"Off\"\n ? this.data.fieldValue\n : \"Yes\";\n\n const exportValues = normalAppearance.getKeys();\n if (exportValues.length === 0) {\n exportValues.push(\"Off\", yes);\n } else if (exportValues.length === 1) {\n if (exportValues[0] === \"Off\") {\n exportValues.push(yes);\n } else {\n exportValues.unshift(\"Off\");\n }\n } else if (exportValues.includes(yes)) {\n exportValues.length = 0;\n exportValues.push(\"Off\", yes);\n } else {\n const otherYes = exportValues.find(v => v !== \"Off\");\n exportValues.length = 0;\n exportValues.push(\"Off\", otherYes);\n }\n\n // Don't use a \"V\" entry pointing to a non-existent appearance state,\n // see e.g. bug1720411.pdf where it's an *empty* Name-instance.\n if (!exportValues.includes(this.data.fieldValue)) {\n this.data.fieldValue = \"Off\";\n }\n\n this.data.exportValue = exportValues[1];\n\n this.checkedAppearance =\n normalAppearance.get(this.data.exportValue) || null;\n this.uncheckedAppearance = normalAppearance.get(\"Off\") || null;\n\n if (this.checkedAppearance) {\n this._streams.push(this.checkedAppearance);\n } else {\n this._getDefaultCheckedAppearance(params, \"check\");\n }\n if (this.uncheckedAppearance) {\n this._streams.push(this.uncheckedAppearance);\n }\n this._fallbackFontDict = this.fallbackFontDict;\n }\n\n _processRadioButton(params) {\n this.data.fieldValue = this.data.buttonValue = null;\n\n // The parent field's `V` entry holds a `Name` object with the appearance\n // state of whichever child field is currently in the \"on\" state.\n const fieldParent = params.dict.get(\"Parent\");\n if (fieldParent instanceof Dict) {\n this.parent = params.dict.getRaw(\"Parent\");\n const fieldParentValue = fieldParent.get(\"V\");\n if (fieldParentValue instanceof Name) {\n this.data.fieldValue = this._decodeFormValue(fieldParentValue);\n }\n }\n\n // The button's value corresponds to its appearance state.\n const appearanceStates = params.dict.get(\"AP\");\n if (!(appearanceStates instanceof Dict)) {\n return;\n }\n const normalAppearance = appearanceStates.get(\"N\");\n if (!(normalAppearance instanceof Dict)) {\n return;\n }\n for (const key of normalAppearance.getKeys()) {\n if (key !== \"Off\") {\n this.data.buttonValue = this._decodeFormValue(key);\n break;\n }\n }\n\n this.checkedAppearance =\n normalAppearance.get(this.data.buttonValue) || null;\n this.uncheckedAppearance = normalAppearance.get(\"Off\") || null;\n\n if (this.checkedAppearance) {\n this._streams.push(this.checkedAppearance);\n } else {\n this._getDefaultCheckedAppearance(params, \"disc\");\n }\n if (this.uncheckedAppearance) {\n this._streams.push(this.uncheckedAppearance);\n }\n this._fallbackFontDict = this.fallbackFontDict;\n }\n\n _processPushButton(params) {\n if (\n !params.dict.has(\"A\") &&\n !params.dict.has(\"AA\") &&\n !this.data.alternativeText\n ) {\n warn(\"Push buttons without action dictionaries are not supported\");\n return;\n }\n\n this.data.isTooltipOnly = !params.dict.has(\"A\") && !params.dict.has(\"AA\");\n\n Catalog.parseDestDictionary({\n destDict: params.dict,\n resultObj: this.data,\n docBaseUrl: params.pdfManager.docBaseUrl,\n });\n }\n\n getFieldObject() {\n let type = \"button\";\n let exportValues;\n if (this.data.checkBox) {\n type = \"checkbox\";\n exportValues = this.data.exportValue;\n } else if (this.data.radioButton) {\n type = \"radiobutton\";\n exportValues = this.data.buttonValue;\n }\n return {\n id: this.data.id,\n value: this.data.fieldValue || \"Off\",\n defaultValue: this.data.defaultFieldValue,\n exportValues,\n editable: !this.data.readOnly,\n name: this.data.fieldName,\n rect: this.data.rect,\n hidden: this.data.hidden,\n actions: this.data.actions,\n page: this.data.pageIndex,\n strokeColor: this.data.borderColor,\n fillColor: this.data.backgroundColor,\n type,\n };\n }\n\n get fallbackFontDict() {\n const dict = new Dict();\n dict.set(\"BaseFont\", Name.get(\"ZapfDingbats\"));\n dict.set(\"Type\", Name.get(\"FallbackType\"));\n dict.set(\"Subtype\", Name.get(\"FallbackType\"));\n dict.set(\"Encoding\", Name.get(\"ZapfDingbatsEncoding\"));\n\n return shadow(this, \"fallbackFontDict\", dict);\n }\n}\n\nclass ChoiceWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n\n // Determine the options. The options array may consist of strings or\n // arrays. If the array consists of arrays, then the first element of\n // each array is the export value and the second element of each array is\n // the display value. If the array consists of strings, then these\n // represent both the export and display value. In this case, we convert\n // it to an array of arrays as well for convenience in the display layer.\n // Note that the specification does not state that the `Opt` field is\n // inheritable, but in practice PDF generators do make annotations\n // inherit the options from a parent annotation (issue 8094).\n this.data.options = [];\n\n const options = getInheritableProperty({ dict: params.dict, key: \"Opt\" });\n if (Array.isArray(options)) {\n const xref = params.xref;\n for (let i = 0, ii = options.length; i < ii; i++) {\n const option = xref.fetchIfRef(options[i]);\n const isOptionArray = Array.isArray(option);\n\n this.data.options[i] = {\n exportValue: this._decodeFormValue(\n isOptionArray ? xref.fetchIfRef(option[0]) : option\n ),\n displayValue: this._decodeFormValue(\n isOptionArray ? xref.fetchIfRef(option[1]) : option\n ),\n };\n }\n }\n\n // The field value can be `null` if no item is selected, a string if one\n // item is selected or an array of strings if multiple items are selected.\n // For consistency in the API and convenience in the display layer, we\n // always make the field value an array with zero, one or multiple items.\n if (typeof this.data.fieldValue === \"string\") {\n this.data.fieldValue = [this.data.fieldValue];\n } else if (!this.data.fieldValue) {\n this.data.fieldValue = [];\n }\n\n // Process field flags for the display layer.\n this.data.combo = this.hasFieldFlag(AnnotationFieldFlag.COMBO);\n this.data.multiSelect = this.hasFieldFlag(AnnotationFieldFlag.MULTISELECT);\n this._hasText = true;\n }\n\n getFieldObject() {\n const type = this.data.combo ? \"combobox\" : \"listbox\";\n const value =\n this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : null;\n return {\n id: this.data.id,\n value,\n defaultValue: this.data.defaultFieldValue,\n editable: !this.data.readOnly,\n name: this.data.fieldName,\n rect: this.data.rect,\n numItems: this.data.fieldValue.length,\n multipleSelection: this.data.multiSelect,\n hidden: this.data.hidden,\n actions: this.data.actions,\n items: this.data.options,\n page: this.data.pageIndex,\n strokeColor: this.data.borderColor,\n fillColor: this.data.backgroundColor,\n type,\n };\n }\n\n async _getAppearance(evaluator, task, annotationStorage) {\n if (this.data.combo) {\n return super._getAppearance(evaluator, task, annotationStorage);\n }\n\n if (!annotationStorage) {\n return null;\n }\n const storageEntry = annotationStorage.get(this.data.id);\n let exportedValue = storageEntry && storageEntry.value;\n if (exportedValue === undefined) {\n // The annotation hasn't been rendered so use the appearance\n return null;\n }\n\n if (!Array.isArray(exportedValue)) {\n exportedValue = [exportedValue];\n }\n\n const defaultPadding = 2;\n const hPadding = defaultPadding;\n const totalHeight = this.data.rect[3] - this.data.rect[1];\n const totalWidth = this.data.rect[2] - this.data.rect[0];\n const lineCount = this.data.options.length;\n const valueIndices = [];\n for (let i = 0; i < lineCount; i++) {\n const { exportValue } = this.data.options[i];\n if (exportedValue.includes(exportValue)) {\n valueIndices.push(i);\n }\n }\n\n if (!this._defaultAppearance) {\n // The DA is required and must be a string.\n // If there is no font named Helvetica in the resource dictionary,\n // the evaluator will fall back to a default font.\n // Doing so prevents exceptions and allows saving/printing\n // the file as expected.\n this.data.defaultAppearanceData = parseDefaultAppearance(\n (this._defaultAppearance = \"/Helvetica 0 Tf 0 g\")\n );\n }\n\n const font = await this._getFontData(evaluator, task);\n\n let defaultAppearance;\n let { fontSize } = this.data.defaultAppearanceData;\n if (!fontSize) {\n const lineHeight = (totalHeight - defaultPadding) / lineCount;\n let lineWidth = -1;\n let value;\n for (const { displayValue } of this.data.options) {\n const width = this._getTextWidth(displayValue);\n if (width > lineWidth) {\n lineWidth = width;\n value = displayValue;\n }\n }\n\n [defaultAppearance, fontSize] = this._computeFontSize(\n lineHeight,\n totalWidth - 2 * hPadding,\n value,\n font,\n -1\n );\n } else {\n defaultAppearance = this._defaultAppearance;\n }\n\n const lineHeight = fontSize * LINE_FACTOR;\n const vPadding = (lineHeight - fontSize) / 2;\n const numberOfVisibleLines = Math.floor(totalHeight / lineHeight);\n\n let firstIndex;\n if (valueIndices.length === 1) {\n const valuePosition = valueIndices[0];\n const indexInPage = valuePosition % numberOfVisibleLines;\n firstIndex = valuePosition - indexInPage;\n } else {\n // If nothing is selected (valueIndice.length === 0), we render\n // from the first element.\n firstIndex = valueIndices.length ? valueIndices[0] : 0;\n }\n const end = Math.min(firstIndex + numberOfVisibleLines + 1, lineCount);\n\n const buf = [\"/Tx BMC q\", `1 1 ${totalWidth} ${totalHeight} re W n`];\n\n if (valueIndices.length) {\n // This value has been copied/pasted from annotation-choice-widget.pdf.\n // It corresponds to rgb(153, 193, 218).\n buf.push(\"0.600006 0.756866 0.854904 rg\");\n\n // Highlight the lines in filling a blue rectangle at the selected\n // positions.\n for (const index of valueIndices) {\n if (firstIndex <= index && index < end) {\n buf.push(\n `1 ${\n totalHeight - (index - firstIndex + 1) * lineHeight\n } ${totalWidth} ${lineHeight} re f`\n );\n }\n }\n }\n buf.push(\"BT\", defaultAppearance, `1 0 0 1 0 ${totalHeight} Tm`);\n\n for (let i = firstIndex; i < end; i++) {\n const { displayValue } = this.data.options[i];\n const hpadding = i === firstIndex ? hPadding : 0;\n const vpadding = i === firstIndex ? vPadding : 0;\n buf.push(\n this._renderText(\n displayValue,\n font,\n fontSize,\n totalWidth,\n 0,\n hpadding,\n -lineHeight + vpadding\n )\n );\n }\n\n buf.push(\"ET Q EMC\");\n\n return buf.join(\"\\n\");\n }\n}\n\nclass SignatureWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n\n // Unset the fieldValue since it's (most likely) a `Dict` which is\n // non-serializable and will thus cause errors when sending annotations\n // to the main-thread (issue 10347).\n this.data.fieldValue = null;\n }\n\n getFieldObject() {\n return {\n id: this.data.id,\n value: null,\n page: this.data.pageIndex,\n type: \"signature\",\n };\n }\n}\n\nclass TextAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n const DEFAULT_ICON_SIZE = 22; // px\n\n super(parameters);\n\n const dict = parameters.dict;\n this.data.annotationType = AnnotationType.TEXT;\n\n if (this.data.hasAppearance) {\n this.data.name = \"NoIcon\";\n } else {\n this.data.rect[1] = this.data.rect[3] - DEFAULT_ICON_SIZE;\n this.data.rect[2] = this.data.rect[0] + DEFAULT_ICON_SIZE;\n this.data.name = dict.has(\"Name\") ? dict.get(\"Name\").name : \"Note\";\n }\n\n if (dict.has(\"State\")) {\n this.data.state = dict.get(\"State\") || null;\n this.data.stateModel = dict.get(\"StateModel\") || null;\n } else {\n this.data.state = null;\n this.data.stateModel = null;\n }\n }\n}\n\nclass LinkAnnotation extends Annotation {\n constructor(params) {\n super(params);\n\n this.data.annotationType = AnnotationType.LINK;\n\n const quadPoints = getQuadPoints(params.dict, this.rectangle);\n if (quadPoints) {\n this.data.quadPoints = quadPoints;\n }\n\n Catalog.parseDestDictionary({\n destDict: params.dict,\n resultObj: this.data,\n docBaseUrl: params.pdfManager.docBaseUrl,\n });\n }\n}\n\nclass PopupAnnotation extends Annotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.POPUP;\n\n let parentItem = parameters.dict.get(\"Parent\");\n if (!parentItem) {\n warn(\"Popup annotation has a missing or invalid parent annotation.\");\n return;\n }\n\n const parentSubtype = parentItem.get(\"Subtype\");\n this.data.parentType =\n parentSubtype instanceof Name ? parentSubtype.name : null;\n const rawParent = parameters.dict.getRaw(\"Parent\");\n this.data.parentId = rawParent instanceof Ref ? rawParent.toString() : null;\n\n const parentRect = parentItem.getArray(\"Rect\");\n if (Array.isArray(parentRect) && parentRect.length === 4) {\n this.data.parentRect = Util.normalizeRect(parentRect);\n } else {\n this.data.parentRect = [0, 0, 0, 0];\n }\n\n const rt = parentItem.get(\"RT\");\n if (isName(rt, AnnotationReplyType.GROUP)) {\n // Subordinate annotations in a group should inherit\n // the group attributes from the primary annotation.\n parentItem = parentItem.get(\"IRT\");\n }\n\n if (!parentItem.has(\"M\")) {\n this.data.modificationDate = null;\n } else {\n this.setModificationDate(parentItem.get(\"M\"));\n this.data.modificationDate = this.modificationDate;\n }\n\n if (!parentItem.has(\"C\")) {\n // Fall back to the default background color.\n this.data.color = null;\n } else {\n this.setColor(parentItem.getArray(\"C\"));\n this.data.color = this.color;\n }\n\n // If the Popup annotation is not viewable, but the parent annotation is,\n // that is most likely a bug. Fallback to inherit the flags from the parent\n // annotation (this is consistent with the behaviour in Adobe Reader).\n if (!this.viewable) {\n const parentFlags = parentItem.get(\"F\");\n if (this._isViewable(parentFlags)) {\n this.setFlags(parentFlags);\n }\n }\n\n this.setTitle(parentItem.get(\"T\"));\n this.data.titleObj = this._title;\n\n this.setContents(parentItem.get(\"Contents\"));\n this.data.contentsObj = this._contents;\n\n if (parentItem.has(\"RC\")) {\n this.data.richText = XFAFactory.getRichTextAsHtml(parentItem.get(\"RC\"));\n }\n }\n}\n\nclass FreeTextAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.FREETEXT;\n }\n}\n\nclass LineAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n const { dict } = parameters;\n this.data.annotationType = AnnotationType.LINE;\n\n const lineCoordinates = dict.getArray(\"L\");\n this.data.lineCoordinates = Util.normalizeRect(lineCoordinates);\n\n this.setLineEndings(dict.getArray(\"LE\"));\n this.data.lineEndings = this.lineEndings;\n\n if (!this.appearance) {\n // The default stroke color is black.\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = dict.get(\"CA\");\n\n // The default fill color is transparent. Setting the fill colour is\n // necessary if/when we want to add support for non-default line endings.\n let fillColor = null,\n interiorColor = dict.getArray(\"IC\");\n if (interiorColor) {\n interiorColor = getRgbColor(interiorColor, null);\n fillColor = interiorColor\n ? Array.from(interiorColor).map(c => c / 255)\n : null;\n }\n const fillAlpha = fillColor ? strokeAlpha : null;\n\n const borderWidth = this.borderStyle.width || 1,\n borderAdjust = 2 * borderWidth;\n\n // If the /Rect-entry is empty/wrong, create a fallback rectangle so that\n // we get similar rendering/highlighting behaviour as in Adobe Reader.\n const bbox = [\n this.data.lineCoordinates[0] - borderAdjust,\n this.data.lineCoordinates[1] - borderAdjust,\n this.data.lineCoordinates[2] + borderAdjust,\n this.data.lineCoordinates[3] + borderAdjust,\n ];\n if (!Util.intersect(this.rectangle, bbox)) {\n this.rectangle = bbox;\n }\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: `${borderWidth} w`,\n strokeColor,\n fillColor,\n strokeAlpha,\n fillAlpha,\n pointsCallback: (buffer, points) => {\n buffer.push(\n `${lineCoordinates[0]} ${lineCoordinates[1]} m`,\n `${lineCoordinates[2]} ${lineCoordinates[3]} l`,\n \"S\"\n );\n return [\n points[0].x - borderWidth,\n points[1].x + borderWidth,\n points[3].y - borderWidth,\n points[1].y + borderWidth,\n ];\n },\n });\n }\n }\n}\n\nclass SquareAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.SQUARE;\n\n if (!this.appearance) {\n // The default stroke color is black.\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = parameters.dict.get(\"CA\");\n\n // The default fill color is transparent.\n let fillColor = null,\n interiorColor = parameters.dict.getArray(\"IC\");\n if (interiorColor) {\n interiorColor = getRgbColor(interiorColor, null);\n fillColor = interiorColor\n ? Array.from(interiorColor).map(c => c / 255)\n : null;\n }\n const fillAlpha = fillColor ? strokeAlpha : null;\n\n if (this.borderStyle.width === 0 && !fillColor) {\n // Prevent rendering a \"hairline\" border (fixes issue14164.pdf).\n return;\n }\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: `${this.borderStyle.width} w`,\n strokeColor,\n fillColor,\n strokeAlpha,\n fillAlpha,\n pointsCallback: (buffer, points) => {\n const x = points[2].x + this.borderStyle.width / 2;\n const y = points[2].y + this.borderStyle.width / 2;\n const width = points[3].x - points[2].x - this.borderStyle.width;\n const height = points[1].y - points[3].y - this.borderStyle.width;\n buffer.push(`${x} ${y} ${width} ${height} re`);\n if (fillColor) {\n buffer.push(\"B\");\n } else {\n buffer.push(\"S\");\n }\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n }\n}\n\nclass CircleAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.CIRCLE;\n\n if (!this.appearance) {\n // The default stroke color is black.\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = parameters.dict.get(\"CA\");\n\n // The default fill color is transparent.\n let fillColor = null;\n let interiorColor = parameters.dict.getArray(\"IC\");\n if (interiorColor) {\n interiorColor = getRgbColor(interiorColor, null);\n fillColor = interiorColor\n ? Array.from(interiorColor).map(c => c / 255)\n : null;\n }\n const fillAlpha = fillColor ? strokeAlpha : null;\n\n if (this.borderStyle.width === 0 && !fillColor) {\n // Prevent rendering a \"hairline\" border (fixes issue14164.pdf).\n return;\n }\n\n // Circles are approximated by Bézier curves with four segments since\n // there is no circle primitive in the PDF specification. For the control\n // points distance, see https://stackoverflow.com/a/27863181.\n const controlPointsDistance = (4 / 3) * Math.tan(Math.PI / (2 * 4));\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: `${this.borderStyle.width} w`,\n strokeColor,\n fillColor,\n strokeAlpha,\n fillAlpha,\n pointsCallback: (buffer, points) => {\n const x0 = points[0].x + this.borderStyle.width / 2;\n const y0 = points[0].y - this.borderStyle.width / 2;\n const x1 = points[3].x - this.borderStyle.width / 2;\n const y1 = points[3].y + this.borderStyle.width / 2;\n const xMid = x0 + (x1 - x0) / 2;\n const yMid = y0 + (y1 - y0) / 2;\n const xOffset = ((x1 - x0) / 2) * controlPointsDistance;\n const yOffset = ((y1 - y0) / 2) * controlPointsDistance;\n\n buffer.push(\n `${xMid} ${y1} m`,\n `${xMid + xOffset} ${y1} ${x1} ${yMid + yOffset} ${x1} ${yMid} c`,\n `${x1} ${yMid - yOffset} ${xMid + xOffset} ${y0} ${xMid} ${y0} c`,\n `${xMid - xOffset} ${y0} ${x0} ${yMid - yOffset} ${x0} ${yMid} c`,\n `${x0} ${yMid + yOffset} ${xMid - xOffset} ${y1} ${xMid} ${y1} c`,\n \"h\"\n );\n if (fillColor) {\n buffer.push(\"B\");\n } else {\n buffer.push(\"S\");\n }\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n }\n}\n\nclass PolylineAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n const { dict } = parameters;\n this.data.annotationType = AnnotationType.POLYLINE;\n this.data.vertices = [];\n\n if (!(this instanceof PolygonAnnotation)) {\n // Only meaningful for polyline annotations.\n this.setLineEndings(dict.getArray(\"LE\"));\n this.data.lineEndings = this.lineEndings;\n }\n\n // The vertices array is an array of numbers representing the alternating\n // horizontal and vertical coordinates, respectively, of each vertex.\n // Convert this to an array of objects with x and y coordinates.\n const rawVertices = dict.getArray(\"Vertices\");\n if (!Array.isArray(rawVertices)) {\n return;\n }\n for (let i = 0, ii = rawVertices.length; i < ii; i += 2) {\n this.data.vertices.push({\n x: rawVertices[i],\n y: rawVertices[i + 1],\n });\n }\n\n if (!this.appearance) {\n // The default stroke color is black.\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = dict.get(\"CA\");\n\n const borderWidth = this.borderStyle.width || 1,\n borderAdjust = 2 * borderWidth;\n\n // If the /Rect-entry is empty/wrong, create a fallback rectangle so that\n // we get similar rendering/highlighting behaviour as in Adobe Reader.\n const bbox = [Infinity, Infinity, -Infinity, -Infinity];\n for (const vertex of this.data.vertices) {\n bbox[0] = Math.min(bbox[0], vertex.x - borderAdjust);\n bbox[1] = Math.min(bbox[1], vertex.y - borderAdjust);\n bbox[2] = Math.max(bbox[2], vertex.x + borderAdjust);\n bbox[3] = Math.max(bbox[3], vertex.y + borderAdjust);\n }\n if (!Util.intersect(this.rectangle, bbox)) {\n this.rectangle = bbox;\n }\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: `${borderWidth} w`,\n strokeColor,\n strokeAlpha,\n pointsCallback: (buffer, points) => {\n const vertices = this.data.vertices;\n for (let i = 0, ii = vertices.length; i < ii; i++) {\n buffer.push(\n `${vertices[i].x} ${vertices[i].y} ${i === 0 ? \"m\" : \"l\"}`\n );\n }\n buffer.push(\"S\");\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n }\n}\n\nclass PolygonAnnotation extends PolylineAnnotation {\n constructor(parameters) {\n // Polygons are specific forms of polylines, so reuse their logic.\n super(parameters);\n\n this.data.annotationType = AnnotationType.POLYGON;\n }\n}\n\nclass CaretAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.CARET;\n }\n}\n\nclass InkAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.INK;\n this.data.inkLists = [];\n\n const rawInkLists = parameters.dict.getArray(\"InkList\");\n if (!Array.isArray(rawInkLists)) {\n return;\n }\n const xref = parameters.xref;\n for (let i = 0, ii = rawInkLists.length; i < ii; ++i) {\n // The raw ink lists array contains arrays of numbers representing\n // the alternating horizontal and vertical coordinates, respectively,\n // of each vertex. Convert this to an array of objects with x and y\n // coordinates.\n this.data.inkLists.push([]);\n for (let j = 0, jj = rawInkLists[i].length; j < jj; j += 2) {\n this.data.inkLists[i].push({\n x: xref.fetchIfRef(rawInkLists[i][j]),\n y: xref.fetchIfRef(rawInkLists[i][j + 1]),\n });\n }\n }\n\n if (!this.appearance) {\n // The default stroke color is black.\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = parameters.dict.get(\"CA\");\n\n const borderWidth = this.borderStyle.width || 1,\n borderAdjust = 2 * borderWidth;\n\n // If the /Rect-entry is empty/wrong, create a fallback rectangle so that\n // we get similar rendering/highlighting behaviour as in Adobe Reader.\n const bbox = [Infinity, Infinity, -Infinity, -Infinity];\n for (const inkLists of this.data.inkLists) {\n for (const vertex of inkLists) {\n bbox[0] = Math.min(bbox[0], vertex.x - borderAdjust);\n bbox[1] = Math.min(bbox[1], vertex.y - borderAdjust);\n bbox[2] = Math.max(bbox[2], vertex.x + borderAdjust);\n bbox[3] = Math.max(bbox[3], vertex.y + borderAdjust);\n }\n }\n if (!Util.intersect(this.rectangle, bbox)) {\n this.rectangle = bbox;\n }\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: `${borderWidth} w`,\n strokeColor,\n strokeAlpha,\n pointsCallback: (buffer, points) => {\n // According to the specification, see \"12.5.6.13 Ink Annotations\":\n // When drawn, the points shall be connected by straight lines or\n // curves in an implementation-dependent way.\n // In order to simplify things, we utilize straight lines for now.\n for (const inkList of this.data.inkLists) {\n for (let i = 0, ii = inkList.length; i < ii; i++) {\n buffer.push(\n `${inkList[i].x} ${inkList[i].y} ${i === 0 ? \"m\" : \"l\"}`\n );\n }\n buffer.push(\"S\");\n }\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n }\n}\n\nclass HighlightAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.HIGHLIGHT;\n const quadPoints = (this.data.quadPoints = getQuadPoints(\n parameters.dict,\n null\n ));\n if (quadPoints) {\n const resources =\n this.appearance && this.appearance.dict.get(\"Resources\");\n\n if (!this.appearance || !(resources && resources.has(\"ExtGState\"))) {\n if (this.appearance) {\n // Workaround for cases where there's no /ExtGState-entry directly\n // available, e.g. when the appearance stream contains a /XObject of\n // the /Form-type, since that causes the highlighting to completely\n // obscure the PDF content below it (fixes issue13242.pdf).\n warn(\"HighlightAnnotation - ignoring built-in appearance stream.\");\n }\n // Default color is yellow in Acrobat Reader\n const fillColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [1, 1, 0];\n const fillAlpha = parameters.dict.get(\"CA\");\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n fillColor,\n blendMode: \"Multiply\",\n fillAlpha,\n pointsCallback: (buffer, points) => {\n buffer.push(\n `${points[0].x} ${points[0].y} m`,\n `${points[1].x} ${points[1].y} l`,\n `${points[3].x} ${points[3].y} l`,\n `${points[2].x} ${points[2].y} l`,\n \"f\"\n );\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n } else {\n this.data.hasPopup = false;\n }\n }\n}\n\nclass UnderlineAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.UNDERLINE;\n const quadPoints = (this.data.quadPoints = getQuadPoints(\n parameters.dict,\n null\n ));\n if (quadPoints) {\n if (!this.appearance) {\n // Default color is black\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = parameters.dict.get(\"CA\");\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: \"[] 0 d 1 w\",\n strokeColor,\n strokeAlpha,\n pointsCallback: (buffer, points) => {\n buffer.push(\n `${points[2].x} ${points[2].y} m`,\n `${points[3].x} ${points[3].y} l`,\n \"S\"\n );\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n } else {\n this.data.hasPopup = false;\n }\n }\n}\n\nclass SquigglyAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.SQUIGGLY;\n\n const quadPoints = (this.data.quadPoints = getQuadPoints(\n parameters.dict,\n null\n ));\n if (quadPoints) {\n if (!this.appearance) {\n // Default color is black\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = parameters.dict.get(\"CA\");\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: \"[] 0 d 1 w\",\n strokeColor,\n strokeAlpha,\n pointsCallback: (buffer, points) => {\n const dy = (points[0].y - points[2].y) / 6;\n let shift = dy;\n let x = points[2].x;\n const y = points[2].y;\n const xEnd = points[3].x;\n buffer.push(`${x} ${y + shift} m`);\n do {\n x += 2;\n shift = shift === 0 ? dy : 0;\n buffer.push(`${x} ${y + shift} l`);\n } while (x < xEnd);\n buffer.push(\"S\");\n return [points[2].x, xEnd, y - 2 * dy, y + 2 * dy];\n },\n });\n }\n } else {\n this.data.hasPopup = false;\n }\n }\n}\n\nclass StrikeOutAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.STRIKEOUT;\n\n const quadPoints = (this.data.quadPoints = getQuadPoints(\n parameters.dict,\n null\n ));\n if (quadPoints) {\n if (!this.appearance) {\n // Default color is black\n const strokeColor = this.color\n ? Array.from(this.color).map(c => c / 255)\n : [0, 0, 0];\n const strokeAlpha = parameters.dict.get(\"CA\");\n\n this._setDefaultAppearance({\n xref: parameters.xref,\n extra: \"[] 0 d 1 w\",\n strokeColor,\n strokeAlpha,\n pointsCallback: (buffer, points) => {\n buffer.push(\n `${(points[0].x + points[2].x) / 2} ` +\n `${(points[0].y + points[2].y) / 2} m`,\n `${(points[1].x + points[3].x) / 2} ` +\n `${(points[1].y + points[3].y) / 2} l`,\n \"S\"\n );\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n } else {\n this.data.hasPopup = false;\n }\n }\n}\n\nclass StampAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n this.data.annotationType = AnnotationType.STAMP;\n }\n}\n\nclass FileAttachmentAnnotation extends MarkupAnnotation {\n constructor(parameters) {\n super(parameters);\n\n const file = new FileSpec(parameters.dict.get(\"FS\"), parameters.xref);\n\n this.data.annotationType = AnnotationType.FILEATTACHMENT;\n this.data.file = file.serializable;\n }\n}\n\nexport {\n Annotation,\n AnnotationBorderStyle,\n AnnotationFactory,\n getQuadPoints,\n MarkupAnnotation,\n};\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { OPS, warn } from \"../shared/util.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { escapePDFName } from \"./core_utils.js\";\nimport { EvaluatorPreprocessor } from \"./evaluator.js\";\nimport { Name } from \"./primitives.js\";\nimport { StringStream } from \"./stream.js\";\n\nclass DefaultAppearanceEvaluator extends EvaluatorPreprocessor {\n constructor(str) {\n super(new StringStream(str));\n }\n\n parse() {\n const operation = {\n fn: 0,\n args: [],\n };\n const result = {\n fontSize: 0,\n fontName: \"\",\n fontColor: /* black = */ new Uint8ClampedArray(3),\n };\n\n try {\n while (true) {\n operation.args.length = 0; // Ensure that `args` it's always reset.\n\n if (!this.read(operation)) {\n break;\n }\n if (this.savedStatesDepth !== 0) {\n continue; // Don't get info in save/restore sections.\n }\n const { fn, args } = operation;\n\n switch (fn | 0) {\n case OPS.setFont:\n const [fontName, fontSize] = args;\n if (fontName instanceof Name) {\n result.fontName = fontName.name;\n }\n if (typeof fontSize === \"number\" && fontSize > 0) {\n result.fontSize = fontSize;\n }\n break;\n case OPS.setFillRGBColor:\n ColorSpace.singletons.rgb.getRgbItem(args, 0, result.fontColor, 0);\n break;\n case OPS.setFillGray:\n ColorSpace.singletons.gray.getRgbItem(args, 0, result.fontColor, 0);\n break;\n case OPS.setFillColorSpace:\n ColorSpace.singletons.cmyk.getRgbItem(args, 0, result.fontColor, 0);\n break;\n }\n }\n } catch (reason) {\n warn(`parseDefaultAppearance - ignoring errors: \"${reason}\".`);\n }\n\n return result;\n }\n}\n\n// Parse DA to extract font and color information.\nfunction parseDefaultAppearance(str) {\n return new DefaultAppearanceEvaluator(str).parse();\n}\n\n// Create default appearance string from some information.\nfunction createDefaultAppearance({ fontSize, fontName, fontColor }) {\n let colorCmd;\n if (fontColor.every(c => c === 0)) {\n colorCmd = \"0 g\";\n } else {\n colorCmd =\n Array.from(fontColor)\n .map(c => (c / 255).toFixed(2))\n .join(\" \") + \" rg\";\n }\n return `/${escapePDFName(fontName)} ${fontSize} Tf ${colorCmd}`;\n}\n\nexport { createDefaultAppearance, parseDefaultAppearance };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n FormatError,\n info,\n shadow,\n unreachable,\n warn,\n} from \"../shared/util.js\";\nimport { Dict, Name, Ref } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { MissingDataException } from \"./core_utils.js\";\n\n/**\n * Resizes an RGB image with 3 components.\n * @param {TypedArray} src - The source buffer.\n * @param {TypedArray} dest - The destination buffer.\n * @param {number} w1 - Original width.\n * @param {number} h1 - Original height.\n * @param {number} w2 - New width.\n * @param {number} h2 - New height.\n * @param {number} alpha01 - Size reserved for the alpha channel.\n */\nfunction resizeRgbImage(src, dest, w1, h1, w2, h2, alpha01) {\n const COMPONENTS = 3;\n alpha01 = alpha01 !== 1 ? 0 : alpha01;\n const xRatio = w1 / w2;\n const yRatio = h1 / h2;\n let newIndex = 0,\n oldIndex;\n const xScaled = new Uint16Array(w2);\n const w1Scanline = w1 * COMPONENTS;\n\n for (let i = 0; i < w2; i++) {\n xScaled[i] = Math.floor(i * xRatio) * COMPONENTS;\n }\n for (let i = 0; i < h2; i++) {\n const py = Math.floor(i * yRatio) * w1Scanline;\n for (let j = 0; j < w2; j++) {\n oldIndex = py + xScaled[j];\n dest[newIndex++] = src[oldIndex++];\n dest[newIndex++] = src[oldIndex++];\n dest[newIndex++] = src[oldIndex++];\n newIndex += alpha01;\n }\n }\n}\n\nclass ColorSpace {\n constructor(name, numComps) {\n if (this.constructor === ColorSpace) {\n unreachable(\"Cannot initialize ColorSpace.\");\n }\n this.name = name;\n this.numComps = numComps;\n }\n\n /**\n * Converts the color value to the RGB color. The color components are\n * located in the src array starting from the srcOffset. Returns the array\n * of the rgb components, each value ranging from [0,255].\n */\n getRgb(src, srcOffset) {\n const rgb = new Uint8ClampedArray(3);\n this.getRgbItem(src, srcOffset, rgb, 0);\n return rgb;\n }\n\n /**\n * Converts the color value to the RGB color, similar to the getRgb method.\n * The result placed into the dest array starting from the destOffset.\n */\n getRgbItem(src, srcOffset, dest, destOffset) {\n unreachable(\"Should not call ColorSpace.getRgbItem\");\n }\n\n /**\n * Converts the specified number of the color values to the RGB colors.\n * The colors are located in the src array starting from the srcOffset.\n * The result is placed into the dest array starting from the destOffset.\n * The src array items shall be in [0,2^bits) range, the dest array items\n * will be in [0,255] range. alpha01 indicates how many alpha components\n * there are in the dest array; it will be either 0 (RGB array) or 1 (RGBA\n * array).\n */\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n unreachable(\"Should not call ColorSpace.getRgbBuffer\");\n }\n\n /**\n * Determines the number of bytes required to store the result of the\n * conversion done by the getRgbBuffer method. As in getRgbBuffer,\n * |alpha01| is either 0 (RGB output) or 1 (RGBA output).\n */\n getOutputLength(inputLength, alpha01) {\n unreachable(\"Should not call ColorSpace.getOutputLength\");\n }\n\n /**\n * Returns true if source data will be equal the result/output data.\n */\n isPassthrough(bits) {\n return false;\n }\n\n /**\n * Refer to the static `ColorSpace.isDefaultDecode` method below.\n */\n isDefaultDecode(decodeMap, bpc) {\n return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n }\n\n /**\n * Fills in the RGB colors in the destination buffer. alpha01 indicates\n * how many alpha components there are in the dest array; it will be either\n * 0 (RGB array) or 1 (RGBA array).\n */\n fillRgb(\n dest,\n originalWidth,\n originalHeight,\n width,\n height,\n actualHeight,\n bpc,\n comps,\n alpha01\n ) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'ColorSpace.fillRgb: Unsupported \"dest\" type.'\n );\n }\n const count = originalWidth * originalHeight;\n let rgbBuf = null;\n const numComponentColors = 1 << bpc;\n const needsResizing = originalHeight !== height || originalWidth !== width;\n\n if (this.isPassthrough(bpc)) {\n rgbBuf = comps;\n } else if (\n this.numComps === 1 &&\n count > numComponentColors &&\n this.name !== \"DeviceGray\" &&\n this.name !== \"DeviceRGB\"\n ) {\n // Optimization: create a color map when there is just one component and\n // we are converting more colors than the size of the color map. We\n // don't build the map if the colorspace is gray or rgb since those\n // methods are faster than building a map. This mainly offers big speed\n // ups for indexed and alternate colorspaces.\n //\n // TODO it may be worth while to cache the color map. While running\n // testing I never hit a cache so I will leave that out for now (perhaps\n // we are reparsing colorspaces too much?).\n const allColors =\n bpc <= 8\n ? new Uint8Array(numComponentColors)\n : new Uint16Array(numComponentColors);\n for (let i = 0; i < numComponentColors; i++) {\n allColors[i] = i;\n }\n const colorMap = new Uint8ClampedArray(numComponentColors * 3);\n this.getRgbBuffer(\n allColors,\n 0,\n numComponentColors,\n colorMap,\n 0,\n bpc,\n /* alpha01 = */ 0\n );\n\n if (!needsResizing) {\n // Fill in the RGB values directly into |dest|.\n let destPos = 0;\n for (let i = 0; i < count; ++i) {\n const key = comps[i] * 3;\n dest[destPos++] = colorMap[key];\n dest[destPos++] = colorMap[key + 1];\n dest[destPos++] = colorMap[key + 2];\n destPos += alpha01;\n }\n } else {\n rgbBuf = new Uint8Array(count * 3);\n let rgbPos = 0;\n for (let i = 0; i < count; ++i) {\n const key = comps[i] * 3;\n rgbBuf[rgbPos++] = colorMap[key];\n rgbBuf[rgbPos++] = colorMap[key + 1];\n rgbBuf[rgbPos++] = colorMap[key + 2];\n }\n }\n } else {\n if (!needsResizing) {\n // Fill in the RGB values directly into |dest|.\n this.getRgbBuffer(\n comps,\n 0,\n width * actualHeight,\n dest,\n 0,\n bpc,\n alpha01\n );\n } else {\n rgbBuf = new Uint8ClampedArray(count * 3);\n this.getRgbBuffer(comps, 0, count, rgbBuf, 0, bpc, /* alpha01 = */ 0);\n }\n }\n\n if (rgbBuf) {\n if (needsResizing) {\n resizeRgbImage(\n rgbBuf,\n dest,\n originalWidth,\n originalHeight,\n width,\n height,\n alpha01\n );\n } else {\n let destPos = 0,\n rgbPos = 0;\n for (let i = 0, ii = width * actualHeight; i < ii; i++) {\n dest[destPos++] = rgbBuf[rgbPos++];\n dest[destPos++] = rgbBuf[rgbPos++];\n dest[destPos++] = rgbBuf[rgbPos++];\n destPos += alpha01;\n }\n }\n }\n }\n\n /**\n * True if the colorspace has components in the default range of [0, 1].\n * This should be true for all colorspaces except for lab color spaces\n * which are [0,100], [-128, 127], [-128, 127].\n */\n get usesZeroToOneRange() {\n return shadow(this, \"usesZeroToOneRange\", true);\n }\n\n /**\n * @private\n */\n static _cache(cacheKey, xref, localColorSpaceCache, parsedColorSpace) {\n if (!localColorSpaceCache) {\n throw new Error(\n 'ColorSpace._cache - expected \"localColorSpaceCache\" argument.'\n );\n }\n if (!parsedColorSpace) {\n throw new Error(\n 'ColorSpace._cache - expected \"parsedColorSpace\" argument.'\n );\n }\n let csName, csRef;\n if (cacheKey instanceof Ref) {\n csRef = cacheKey;\n\n // If parsing succeeded, we know that this call cannot throw.\n cacheKey = xref.fetch(cacheKey);\n }\n if (cacheKey instanceof Name) {\n csName = cacheKey.name;\n }\n if (csName || csRef) {\n localColorSpaceCache.set(csName, csRef, parsedColorSpace);\n }\n }\n\n static getCached(cacheKey, xref, localColorSpaceCache) {\n if (!localColorSpaceCache) {\n throw new Error(\n 'ColorSpace.getCached - expected \"localColorSpaceCache\" argument.'\n );\n }\n if (cacheKey instanceof Ref) {\n const localColorSpace = localColorSpaceCache.getByRef(cacheKey);\n if (localColorSpace) {\n return localColorSpace;\n }\n\n try {\n cacheKey = xref.fetch(cacheKey);\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n // Any errors should be handled during parsing, rather than here.\n }\n }\n if (cacheKey instanceof Name) {\n const localColorSpace = localColorSpaceCache.getByName(cacheKey.name);\n if (localColorSpace) {\n return localColorSpace;\n }\n }\n return null;\n }\n\n static async parseAsync({\n cs,\n xref,\n resources = null,\n pdfFunctionFactory,\n localColorSpaceCache,\n }) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n !this.getCached(cs, xref, localColorSpaceCache),\n \"Expected `ColorSpace.getCached` to have been manually checked \" +\n \"before calling `ColorSpace.parseAsync`.\"\n );\n }\n const parsedColorSpace = this._parse(\n cs,\n xref,\n resources,\n pdfFunctionFactory\n );\n\n // Attempt to cache the parsed ColorSpace, by name and/or reference.\n this._cache(cs, xref, localColorSpaceCache, parsedColorSpace);\n\n return parsedColorSpace;\n }\n\n static parse({\n cs,\n xref,\n resources = null,\n pdfFunctionFactory,\n localColorSpaceCache,\n }) {\n const cachedColorSpace = this.getCached(cs, xref, localColorSpaceCache);\n if (cachedColorSpace) {\n return cachedColorSpace;\n }\n const parsedColorSpace = this._parse(\n cs,\n xref,\n resources,\n pdfFunctionFactory\n );\n\n // Attempt to cache the parsed ColorSpace, by name and/or reference.\n this._cache(cs, xref, localColorSpaceCache, parsedColorSpace);\n\n return parsedColorSpace;\n }\n\n /**\n * @private\n */\n static _parse(cs, xref, resources = null, pdfFunctionFactory) {\n cs = xref.fetchIfRef(cs);\n if (cs instanceof Name) {\n switch (cs.name) {\n case \"G\":\n case \"DeviceGray\":\n return this.singletons.gray;\n case \"RGB\":\n case \"DeviceRGB\":\n return this.singletons.rgb;\n case \"CMYK\":\n case \"DeviceCMYK\":\n return this.singletons.cmyk;\n case \"Pattern\":\n return new PatternCS(/* baseCS = */ null);\n default:\n if (resources instanceof Dict) {\n const colorSpaces = resources.get(\"ColorSpace\");\n if (colorSpaces instanceof Dict) {\n const resourcesCS = colorSpaces.get(cs.name);\n if (resourcesCS) {\n if (resourcesCS instanceof Name) {\n return this._parse(\n resourcesCS,\n xref,\n resources,\n pdfFunctionFactory\n );\n }\n cs = resourcesCS;\n break;\n }\n }\n }\n throw new FormatError(`Unrecognized ColorSpace: ${cs.name}`);\n }\n }\n if (Array.isArray(cs)) {\n const mode = xref.fetchIfRef(cs[0]).name;\n let params, numComps, baseCS, whitePoint, blackPoint, gamma;\n\n switch (mode) {\n case \"G\":\n case \"DeviceGray\":\n return this.singletons.gray;\n case \"RGB\":\n case \"DeviceRGB\":\n return this.singletons.rgb;\n case \"CMYK\":\n case \"DeviceCMYK\":\n return this.singletons.cmyk;\n case \"CalGray\":\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray(\"WhitePoint\");\n blackPoint = params.getArray(\"BlackPoint\");\n gamma = params.get(\"Gamma\");\n return new CalGrayCS(whitePoint, blackPoint, gamma);\n case \"CalRGB\":\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray(\"WhitePoint\");\n blackPoint = params.getArray(\"BlackPoint\");\n gamma = params.getArray(\"Gamma\");\n const matrix = params.getArray(\"Matrix\");\n return new CalRGBCS(whitePoint, blackPoint, gamma, matrix);\n case \"ICCBased\":\n const stream = xref.fetchIfRef(cs[1]);\n const dict = stream.dict;\n numComps = dict.get(\"N\");\n const alt = dict.get(\"Alternate\");\n if (alt) {\n const altCS = this._parse(alt, xref, resources, pdfFunctionFactory);\n // Ensure that the number of components are correct,\n // and also (indirectly) that it is not a PatternCS.\n if (altCS.numComps === numComps) {\n return altCS;\n }\n warn(\"ICCBased color space: Ignoring incorrect /Alternate entry.\");\n }\n if (numComps === 1) {\n return this.singletons.gray;\n } else if (numComps === 3) {\n return this.singletons.rgb;\n } else if (numComps === 4) {\n return this.singletons.cmyk;\n }\n break;\n case \"Pattern\":\n baseCS = cs[1] || null;\n if (baseCS) {\n baseCS = this._parse(baseCS, xref, resources, pdfFunctionFactory);\n }\n return new PatternCS(baseCS);\n case \"I\":\n case \"Indexed\":\n baseCS = this._parse(cs[1], xref, resources, pdfFunctionFactory);\n const hiVal = xref.fetchIfRef(cs[2]) + 1;\n const lookup = xref.fetchIfRef(cs[3]);\n return new IndexedCS(baseCS, hiVal, lookup);\n case \"Separation\":\n case \"DeviceN\":\n const name = xref.fetchIfRef(cs[1]);\n numComps = Array.isArray(name) ? name.length : 1;\n baseCS = this._parse(cs[2], xref, resources, pdfFunctionFactory);\n const tintFn = pdfFunctionFactory.create(cs[3]);\n return new AlternateCS(numComps, baseCS, tintFn);\n case \"Lab\":\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray(\"WhitePoint\");\n blackPoint = params.getArray(\"BlackPoint\");\n const range = params.getArray(\"Range\");\n return new LabCS(whitePoint, blackPoint, range);\n default:\n throw new FormatError(`Unimplemented ColorSpace object: ${mode}`);\n }\n }\n throw new FormatError(`Unrecognized ColorSpace object: ${cs}`);\n }\n\n /**\n * Checks if a decode map matches the default decode map for a color space.\n * This handles the general decode maps where there are two values per\n * component, e.g. [0, 1, 0, 1, 0, 1] for a RGB color.\n * This does not handle Lab, Indexed, or Pattern decode maps since they are\n * slightly different.\n * @param {Array} decode - Decode map (usually from an image).\n * @param {number} numComps - Number of components the color space has.\n */\n static isDefaultDecode(decode, numComps) {\n if (!Array.isArray(decode)) {\n return true;\n }\n if (numComps * 2 !== decode.length) {\n warn(\"The decode map is not the correct length\");\n return true;\n }\n for (let i = 0, ii = decode.length; i < ii; i += 2) {\n if (decode[i] !== 0 || decode[i + 1] !== 1) {\n return false;\n }\n }\n return true;\n }\n\n static get singletons() {\n return shadow(this, \"singletons\", {\n get gray() {\n return shadow(this, \"gray\", new DeviceGrayCS());\n },\n get rgb() {\n return shadow(this, \"rgb\", new DeviceRgbCS());\n },\n get cmyk() {\n return shadow(this, \"cmyk\", new DeviceCmykCS());\n },\n });\n }\n}\n\n/**\n * Alternate color space handles both Separation and DeviceN color spaces. A\n * Separation color space is actually just a DeviceN with one color component.\n * Both color spaces use a tinting function to convert colors to a base color\n * space.\n *\n * The default color is `new Float32Array(new Array(numComps).fill(1))`.\n */\nclass AlternateCS extends ColorSpace {\n constructor(numComps, base, tintFn) {\n super(\"Alternate\", numComps);\n this.base = base;\n this.tintFn = tintFn;\n this.tmpBuf = new Float32Array(base.numComps);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'AlternateCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n const tmpBuf = this.tmpBuf;\n this.tintFn(src, srcOffset, tmpBuf, 0);\n this.base.getRgbItem(tmpBuf, 0, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'AlternateCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const tintFn = this.tintFn;\n const base = this.base;\n const scale = 1 / ((1 << bits) - 1);\n const baseNumComps = base.numComps;\n const usesZeroToOneRange = base.usesZeroToOneRange;\n const isPassthrough =\n (base.isPassthrough(8) || !usesZeroToOneRange) && alpha01 === 0;\n let pos = isPassthrough ? destOffset : 0;\n const baseBuf = isPassthrough\n ? dest\n : new Uint8ClampedArray(baseNumComps * count);\n const numComps = this.numComps;\n\n const scaled = new Float32Array(numComps);\n const tinted = new Float32Array(baseNumComps);\n let i, j;\n\n for (i = 0; i < count; i++) {\n for (j = 0; j < numComps; j++) {\n scaled[j] = src[srcOffset++] * scale;\n }\n tintFn(scaled, 0, tinted, 0);\n if (usesZeroToOneRange) {\n for (j = 0; j < baseNumComps; j++) {\n baseBuf[pos++] = tinted[j] * 255;\n }\n } else {\n base.getRgbItem(tinted, 0, baseBuf, pos);\n pos += baseNumComps;\n }\n }\n\n if (!isPassthrough) {\n base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8, alpha01);\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return this.base.getOutputLength(\n (inputLength * this.base.numComps) / this.numComps,\n alpha01\n );\n }\n}\n\nclass PatternCS extends ColorSpace {\n constructor(baseCS) {\n super(\"Pattern\", null);\n this.base = baseCS;\n }\n\n isDefaultDecode(decodeMap, bpc) {\n unreachable(\"Should not call PatternCS.isDefaultDecode\");\n }\n}\n\n/**\n * The default color is `new Uint8Array([0])`.\n */\nclass IndexedCS extends ColorSpace {\n constructor(base, highVal, lookup) {\n super(\"Indexed\", 1);\n this.base = base;\n this.highVal = highVal;\n\n const length = base.numComps * highVal;\n this.lookup = new Uint8Array(length);\n\n if (lookup instanceof BaseStream) {\n const bytes = lookup.getBytes(length);\n this.lookup.set(bytes);\n } else if (typeof lookup === \"string\") {\n for (let i = 0; i < length; ++i) {\n this.lookup[i] = lookup.charCodeAt(i) & 0xff;\n }\n } else {\n throw new FormatError(`IndexedCS - unrecognized lookup table: ${lookup}`);\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'IndexedCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n const numComps = this.base.numComps;\n const start = src[srcOffset] * numComps;\n this.base.getRgbBuffer(this.lookup, start, 1, dest, destOffset, 8, 0);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'IndexedCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const base = this.base;\n const numComps = base.numComps;\n const outputDelta = base.getOutputLength(numComps, alpha01);\n const lookup = this.lookup;\n\n for (let i = 0; i < count; ++i) {\n const lookupPos = src[srcOffset++] * numComps;\n base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8, alpha01);\n destOffset += outputDelta;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return this.base.getOutputLength(inputLength * this.base.numComps, alpha01);\n }\n\n isDefaultDecode(decodeMap, bpc) {\n if (!Array.isArray(decodeMap)) {\n return true;\n }\n if (decodeMap.length !== 2) {\n warn(\"Decode map length is not correct\");\n return true;\n }\n if (!Number.isInteger(bpc) || bpc < 1) {\n warn(\"Bits per component is not correct\");\n return true;\n }\n return decodeMap[0] === 0 && decodeMap[1] === (1 << bpc) - 1;\n }\n}\n\n/**\n * The default color is `new Float32Array([0])`.\n */\nclass DeviceGrayCS extends ColorSpace {\n constructor() {\n super(\"DeviceGray\", 1);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceGrayCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n const c = src[srcOffset] * 255;\n dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c;\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceGrayCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const scale = 255 / ((1 << bits) - 1);\n let j = srcOffset,\n q = destOffset;\n for (let i = 0; i < count; ++i) {\n const c = scale * src[j++];\n dest[q++] = c;\n dest[q++] = c;\n dest[q++] = c;\n q += alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01);\n }\n}\n\n/**\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nclass DeviceRgbCS extends ColorSpace {\n constructor() {\n super(\"DeviceRGB\", 3);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceRgbCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n dest[destOffset] = src[srcOffset] * 255;\n dest[destOffset + 1] = src[srcOffset + 1] * 255;\n dest[destOffset + 2] = src[srcOffset + 2] * 255;\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceRgbCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n if (bits === 8 && alpha01 === 0) {\n dest.set(src.subarray(srcOffset, srcOffset + count * 3), destOffset);\n return;\n }\n const scale = 255 / ((1 << bits) - 1);\n let j = srcOffset,\n q = destOffset;\n for (let i = 0; i < count; ++i) {\n dest[q++] = scale * src[j++];\n dest[q++] = scale * src[j++];\n dest[q++] = scale * src[j++];\n q += alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength * (3 + alpha01)) / 3) | 0;\n }\n\n isPassthrough(bits) {\n return bits === 8;\n }\n}\n\n/**\n * The default color is `new Float32Array([0, 0, 0, 1])`.\n */\nconst DeviceCmykCS = (function DeviceCmykCSClosure() {\n // The coefficients below was found using numerical analysis: the method of\n // steepest descent for the sum((f_i - color_value_i)^2) for r/g/b colors,\n // where color_value is the tabular value from the table of sampled RGB colors\n // from CMYK US Web Coated (SWOP) colorspace, and f_i is the corresponding\n // CMYK color conversion using the estimation below:\n // f(A, B,.. N) = Acc+Bcm+Ccy+Dck+c+Fmm+Gmy+Hmk+Im+Jyy+Kyk+Ly+Mkk+Nk+255\n function convertToRgb(src, srcOffset, srcScale, dest, destOffset) {\n const c = src[srcOffset] * srcScale;\n const m = src[srcOffset + 1] * srcScale;\n const y = src[srcOffset + 2] * srcScale;\n const k = src[srcOffset + 3] * srcScale;\n\n dest[destOffset] =\n 255 +\n c *\n (-4.387332384609988 * c +\n 54.48615194189176 * m +\n 18.82290502165302 * y +\n 212.25662451639585 * k +\n -285.2331026137004) +\n m *\n (1.7149763477362134 * m -\n 5.6096736904047315 * y +\n -17.873870861415444 * k -\n 5.497006427196366) +\n y *\n (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) +\n k * (-21.86122147463605 * k - 189.48180835922747);\n\n dest[destOffset + 1] =\n 255 +\n c *\n (8.841041422036149 * c +\n 60.118027045597366 * m +\n 6.871425592049007 * y +\n 31.159100130055922 * k +\n -79.2970844816548) +\n m *\n (-15.310361306967817 * m +\n 17.575251261109482 * y +\n 131.35250912493976 * k -\n 190.9453302588951) +\n y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) +\n k * (-20.737325471181034 * k - 187.80453709719578);\n\n dest[destOffset + 2] =\n 255 +\n c *\n (0.8842522430003296 * c +\n 8.078677503112928 * m +\n 30.89978309703729 * y -\n 0.23883238689178934 * k +\n -14.183576799673286) +\n m *\n (10.49593273432072 * m +\n 63.02378494754052 * y +\n 50.606957656360734 * k -\n 112.23884253719248) +\n y *\n (0.03296041114873217 * y +\n 115.60384449646641 * k +\n -193.58209356861505) +\n k * (-22.33816807309886 * k - 180.12613974708367);\n }\n\n // eslint-disable-next-line no-shadow\n class DeviceCmykCS extends ColorSpace {\n constructor() {\n super(\"DeviceCMYK\", 4);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceCmykCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n convertToRgb(src, srcOffset, 1, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceCmykCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const scale = 1 / ((1 << bits) - 1);\n for (let i = 0; i < count; i++) {\n convertToRgb(src, srcOffset, scale, dest, destOffset);\n srcOffset += 4;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength / 4) * (3 + alpha01)) | 0;\n }\n }\n return DeviceCmykCS;\n})();\n\n/**\n * CalGrayCS: Based on \"PDF Reference, Sixth Ed\", p.245\n *\n * The default color is `new Float32Array([0])`.\n */\nconst CalGrayCS = (function CalGrayCSClosure() {\n function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n // A represents a gray component of a calibrated gray space.\n // A <---> AG in the spec\n const A = src[srcOffset] * scale;\n const AG = A ** cs.G;\n\n // Computes L as per spec. ( = cs.YW * AG )\n // Except if other than default BlackPoint values are used.\n const L = cs.YW * AG;\n // http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html, Ch 4.\n // Convert values to rgb range [0, 255].\n const val = Math.max(295.8 * L ** 0.3333333333333333 - 40.8, 0);\n dest[destOffset] = val;\n dest[destOffset + 1] = val;\n dest[destOffset + 2] = val;\n }\n\n // eslint-disable-next-line no-shadow\n class CalGrayCS extends ColorSpace {\n constructor(whitePoint, blackPoint, gamma) {\n super(\"CalGray\", 1);\n\n if (!whitePoint) {\n throw new FormatError(\n \"WhitePoint missing - required for color space CalGray\"\n );\n }\n blackPoint = blackPoint || [0, 0, 0];\n gamma = gamma || 1;\n\n // Translate arguments to spec variables.\n this.XW = whitePoint[0];\n this.YW = whitePoint[1];\n this.ZW = whitePoint[2];\n\n this.XB = blackPoint[0];\n this.YB = blackPoint[1];\n this.ZB = blackPoint[2];\n\n this.G = gamma;\n\n // Validate variables as per spec.\n if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n throw new FormatError(\n `Invalid WhitePoint components for ${this.name}` +\n \", no fallback available\"\n );\n }\n\n if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n info(`Invalid BlackPoint for ${this.name}, falling back to default.`);\n this.XB = this.YB = this.ZB = 0;\n }\n\n if (this.XB !== 0 || this.YB !== 0 || this.ZB !== 0) {\n warn(\n `${this.name}, BlackPoint: XB: ${this.XB}, YB: ${this.YB}, ` +\n `ZB: ${this.ZB}, only default values are supported.`\n );\n }\n\n if (this.G < 1) {\n info(\n `Invalid Gamma: ${this.G} for ${this.name}, ` +\n \"falling back to default.\"\n );\n this.G = 1;\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'CalGrayCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'CalGrayCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const scale = 1 / ((1 << bits) - 1);\n\n for (let i = 0; i < count; ++i) {\n convertToRgb(this, src, srcOffset, dest, destOffset, scale);\n srcOffset += 1;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01);\n }\n }\n return CalGrayCS;\n})();\n\n/**\n * CalRGBCS: Based on \"PDF Reference, Sixth Ed\", p.247\n *\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nconst CalRGBCS = (function CalRGBCSClosure() {\n // See http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html for these\n // matrices.\n // prettier-ignore\n const BRADFORD_SCALE_MATRIX = new Float32Array([\n 0.8951, 0.2664, -0.1614,\n -0.7502, 1.7135, 0.0367,\n 0.0389, -0.0685, 1.0296]);\n\n // prettier-ignore\n const BRADFORD_SCALE_INVERSE_MATRIX = new Float32Array([\n 0.9869929, -0.1470543, 0.1599627,\n 0.4323053, 0.5183603, 0.0492912,\n -0.0085287, 0.0400428, 0.9684867]);\n\n // See http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html.\n // prettier-ignore\n const SRGB_D65_XYZ_TO_RGB_MATRIX = new Float32Array([\n 3.2404542, -1.5371385, -0.4985314,\n -0.9692660, 1.8760108, 0.0415560,\n 0.0556434, -0.2040259, 1.0572252]);\n\n const FLAT_WHITEPOINT_MATRIX = new Float32Array([1, 1, 1]);\n\n const tempNormalizeMatrix = new Float32Array(3);\n const tempConvertMatrix1 = new Float32Array(3);\n const tempConvertMatrix2 = new Float32Array(3);\n\n const DECODE_L_CONSTANT = ((8 + 16) / 116) ** 3 / 8.0;\n\n function matrixProduct(a, b, result) {\n result[0] = a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n result[1] = a[3] * b[0] + a[4] * b[1] + a[5] * b[2];\n result[2] = a[6] * b[0] + a[7] * b[1] + a[8] * b[2];\n }\n\n function convertToFlat(sourceWhitePoint, LMS, result) {\n result[0] = (LMS[0] * 1) / sourceWhitePoint[0];\n result[1] = (LMS[1] * 1) / sourceWhitePoint[1];\n result[2] = (LMS[2] * 1) / sourceWhitePoint[2];\n }\n\n function convertToD65(sourceWhitePoint, LMS, result) {\n const D65X = 0.95047;\n const D65Y = 1;\n const D65Z = 1.08883;\n\n result[0] = (LMS[0] * D65X) / sourceWhitePoint[0];\n result[1] = (LMS[1] * D65Y) / sourceWhitePoint[1];\n result[2] = (LMS[2] * D65Z) / sourceWhitePoint[2];\n }\n\n function sRGBTransferFunction(color) {\n // See http://en.wikipedia.org/wiki/SRGB.\n if (color <= 0.0031308) {\n return adjustToRange(0, 1, 12.92 * color);\n }\n // Optimization:\n // If color is close enough to 1, skip calling the following transform\n // since calling Math.pow is expensive. If color is larger than\n // the threshold, the final result is larger than 254.5 since\n // ((1 + 0.055) * 0.99554525 ** (1 / 2.4) - 0.055) * 255 ===\n // 254.50000003134699\n if (color >= 0.99554525) {\n return 1;\n }\n return adjustToRange(0, 1, (1 + 0.055) * color ** (1 / 2.4) - 0.055);\n }\n\n function adjustToRange(min, max, value) {\n return Math.max(min, Math.min(max, value));\n }\n\n function decodeL(L) {\n if (L < 0) {\n return -decodeL(-L);\n }\n if (L > 8.0) {\n return ((L + 16) / 116) ** 3;\n }\n return L * DECODE_L_CONSTANT;\n }\n\n function compensateBlackPoint(sourceBlackPoint, XYZ_Flat, result) {\n // In case the blackPoint is already the default blackPoint then there is\n // no need to do compensation.\n if (\n sourceBlackPoint[0] === 0 &&\n sourceBlackPoint[1] === 0 &&\n sourceBlackPoint[2] === 0\n ) {\n result[0] = XYZ_Flat[0];\n result[1] = XYZ_Flat[1];\n result[2] = XYZ_Flat[2];\n return;\n }\n\n // For the blackPoint calculation details, please see\n // http://www.adobe.com/content/dam/Adobe/en/devnet/photoshop/sdk/\n // AdobeBPC.pdf.\n // The destination blackPoint is the default blackPoint [0, 0, 0].\n const zeroDecodeL = decodeL(0);\n\n const X_DST = zeroDecodeL;\n const X_SRC = decodeL(sourceBlackPoint[0]);\n\n const Y_DST = zeroDecodeL;\n const Y_SRC = decodeL(sourceBlackPoint[1]);\n\n const Z_DST = zeroDecodeL;\n const Z_SRC = decodeL(sourceBlackPoint[2]);\n\n const X_Scale = (1 - X_DST) / (1 - X_SRC);\n const X_Offset = 1 - X_Scale;\n\n const Y_Scale = (1 - Y_DST) / (1 - Y_SRC);\n const Y_Offset = 1 - Y_Scale;\n\n const Z_Scale = (1 - Z_DST) / (1 - Z_SRC);\n const Z_Offset = 1 - Z_Scale;\n\n result[0] = XYZ_Flat[0] * X_Scale + X_Offset;\n result[1] = XYZ_Flat[1] * Y_Scale + Y_Offset;\n result[2] = XYZ_Flat[2] * Z_Scale + Z_Offset;\n }\n\n function normalizeWhitePointToFlat(sourceWhitePoint, XYZ_In, result) {\n // In case the whitePoint is already flat then there is no need to do\n // normalization.\n if (sourceWhitePoint[0] === 1 && sourceWhitePoint[2] === 1) {\n result[0] = XYZ_In[0];\n result[1] = XYZ_In[1];\n result[2] = XYZ_In[2];\n return;\n }\n\n const LMS = result;\n matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n\n const LMS_Flat = tempNormalizeMatrix;\n convertToFlat(sourceWhitePoint, LMS, LMS_Flat);\n\n matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_Flat, result);\n }\n\n function normalizeWhitePointToD65(sourceWhitePoint, XYZ_In, result) {\n const LMS = result;\n matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n\n const LMS_D65 = tempNormalizeMatrix;\n convertToD65(sourceWhitePoint, LMS, LMS_D65);\n\n matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_D65, result);\n }\n\n function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n // A, B and C represent a red, green and blue components of a calibrated\n // rgb space.\n const A = adjustToRange(0, 1, src[srcOffset] * scale);\n const B = adjustToRange(0, 1, src[srcOffset + 1] * scale);\n const C = adjustToRange(0, 1, src[srcOffset + 2] * scale);\n\n // A <---> AGR in the spec\n // B <---> BGG in the spec\n // C <---> CGB in the spec\n const AGR = A === 1 ? 1 : A ** cs.GR;\n const BGG = B === 1 ? 1 : B ** cs.GG;\n const CGB = C === 1 ? 1 : C ** cs.GB;\n\n // Computes intermediate variables L, M, N as per spec.\n // To decode X, Y, Z values map L, M, N directly to them.\n const X = cs.MXA * AGR + cs.MXB * BGG + cs.MXC * CGB;\n const Y = cs.MYA * AGR + cs.MYB * BGG + cs.MYC * CGB;\n const Z = cs.MZA * AGR + cs.MZB * BGG + cs.MZC * CGB;\n\n // The following calculations are based on this document:\n // http://www.adobe.com/content/dam/Adobe/en/devnet/photoshop/sdk/\n // AdobeBPC.pdf.\n const XYZ = tempConvertMatrix1;\n XYZ[0] = X;\n XYZ[1] = Y;\n XYZ[2] = Z;\n const XYZ_Flat = tempConvertMatrix2;\n\n normalizeWhitePointToFlat(cs.whitePoint, XYZ, XYZ_Flat);\n\n const XYZ_Black = tempConvertMatrix1;\n compensateBlackPoint(cs.blackPoint, XYZ_Flat, XYZ_Black);\n\n const XYZ_D65 = tempConvertMatrix2;\n normalizeWhitePointToD65(FLAT_WHITEPOINT_MATRIX, XYZ_Black, XYZ_D65);\n\n const SRGB = tempConvertMatrix1;\n matrixProduct(SRGB_D65_XYZ_TO_RGB_MATRIX, XYZ_D65, SRGB);\n\n // Convert the values to rgb range [0, 255].\n dest[destOffset] = sRGBTransferFunction(SRGB[0]) * 255;\n dest[destOffset + 1] = sRGBTransferFunction(SRGB[1]) * 255;\n dest[destOffset + 2] = sRGBTransferFunction(SRGB[2]) * 255;\n }\n\n // eslint-disable-next-line no-shadow\n class CalRGBCS extends ColorSpace {\n constructor(whitePoint, blackPoint, gamma, matrix) {\n super(\"CalRGB\", 3);\n\n if (!whitePoint) {\n throw new FormatError(\n \"WhitePoint missing - required for color space CalRGB\"\n );\n }\n blackPoint = blackPoint || new Float32Array(3);\n gamma = gamma || new Float32Array([1, 1, 1]);\n matrix = matrix || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);\n\n // Translate arguments to spec variables.\n const XW = whitePoint[0];\n const YW = whitePoint[1];\n const ZW = whitePoint[2];\n this.whitePoint = whitePoint;\n\n const XB = blackPoint[0];\n const YB = blackPoint[1];\n const ZB = blackPoint[2];\n this.blackPoint = blackPoint;\n\n this.GR = gamma[0];\n this.GG = gamma[1];\n this.GB = gamma[2];\n\n this.MXA = matrix[0];\n this.MYA = matrix[1];\n this.MZA = matrix[2];\n this.MXB = matrix[3];\n this.MYB = matrix[4];\n this.MZB = matrix[5];\n this.MXC = matrix[6];\n this.MYC = matrix[7];\n this.MZC = matrix[8];\n\n // Validate variables as per spec.\n if (XW < 0 || ZW < 0 || YW !== 1) {\n throw new FormatError(\n `Invalid WhitePoint components for ${this.name}` +\n \", no fallback available\"\n );\n }\n\n if (XB < 0 || YB < 0 || ZB < 0) {\n info(\n `Invalid BlackPoint for ${this.name} [${XB}, ${YB}, ${ZB}], ` +\n \"falling back to default.\"\n );\n this.blackPoint = new Float32Array(3);\n }\n\n if (this.GR < 0 || this.GG < 0 || this.GB < 0) {\n info(\n `Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ` +\n `${this.name}, falling back to default.`\n );\n this.GR = this.GG = this.GB = 1;\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'CalRGBCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'CalRGBCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const scale = 1 / ((1 << bits) - 1);\n\n for (let i = 0; i < count; ++i) {\n convertToRgb(this, src, srcOffset, dest, destOffset, scale);\n srcOffset += 3;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength * (3 + alpha01)) / 3) | 0;\n }\n }\n return CalRGBCS;\n})();\n\n/**\n * LabCS: Based on \"PDF Reference, Sixth Ed\", p.250\n *\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nconst LabCS = (function LabCSClosure() {\n // Function g(x) from spec\n function fn_g(x) {\n let result;\n if (x >= 6 / 29) {\n result = x ** 3;\n } else {\n result = (108 / 841) * (x - 4 / 29);\n }\n return result;\n }\n\n function decode(value, high1, low2, high2) {\n return low2 + (value * (high2 - low2)) / high1;\n }\n\n // If decoding is needed maxVal should be 2^bits per component - 1.\n function convertToRgb(cs, src, srcOffset, maxVal, dest, destOffset) {\n // XXX: Lab input is in the range of [0, 100], [amin, amax], [bmin, bmax]\n // not the usual [0, 1]. If a command like setFillColor is used the src\n // values will already be within the correct range. However, if we are\n // converting an image we have to map the values to the correct range given\n // above.\n // Ls,as,bs <---> L*,a*,b* in the spec\n let Ls = src[srcOffset];\n let as = src[srcOffset + 1];\n let bs = src[srcOffset + 2];\n if (maxVal !== false) {\n Ls = decode(Ls, maxVal, 0, 100);\n as = decode(as, maxVal, cs.amin, cs.amax);\n bs = decode(bs, maxVal, cs.bmin, cs.bmax);\n }\n\n // Adjust limits of 'as' and 'bs'\n if (as > cs.amax) {\n as = cs.amax;\n } else if (as < cs.amin) {\n as = cs.amin;\n }\n if (bs > cs.bmax) {\n bs = cs.bmax;\n } else if (bs < cs.bmin) {\n bs = cs.bmin;\n }\n\n // Computes intermediate variables X,Y,Z as per spec\n const M = (Ls + 16) / 116;\n const L = M + as / 500;\n const N = M - bs / 200;\n\n const X = cs.XW * fn_g(L);\n const Y = cs.YW * fn_g(M);\n const Z = cs.ZW * fn_g(N);\n\n let r, g, b;\n // Using different conversions for D50 and D65 white points,\n // per http://www.color.org/srgb.pdf\n if (cs.ZW < 1) {\n // Assuming D50 (X=0.9642, Y=1.00, Z=0.8249)\n r = X * 3.1339 + Y * -1.617 + Z * -0.4906;\n g = X * -0.9785 + Y * 1.916 + Z * 0.0333;\n b = X * 0.072 + Y * -0.229 + Z * 1.4057;\n } else {\n // Assuming D65 (X=0.9505, Y=1.00, Z=1.0888)\n r = X * 3.2406 + Y * -1.5372 + Z * -0.4986;\n g = X * -0.9689 + Y * 1.8758 + Z * 0.0415;\n b = X * 0.0557 + Y * -0.204 + Z * 1.057;\n }\n // Convert the color values to the [0,255] range (clamping is automatic).\n dest[destOffset] = Math.sqrt(r) * 255;\n dest[destOffset + 1] = Math.sqrt(g) * 255;\n dest[destOffset + 2] = Math.sqrt(b) * 255;\n }\n\n // eslint-disable-next-line no-shadow\n class LabCS extends ColorSpace {\n constructor(whitePoint, blackPoint, range) {\n super(\"Lab\", 3);\n\n if (!whitePoint) {\n throw new FormatError(\n \"WhitePoint missing - required for color space Lab\"\n );\n }\n blackPoint = blackPoint || [0, 0, 0];\n range = range || [-100, 100, -100, 100];\n\n // Translate args to spec variables\n this.XW = whitePoint[0];\n this.YW = whitePoint[1];\n this.ZW = whitePoint[2];\n this.amin = range[0];\n this.amax = range[1];\n this.bmin = range[2];\n this.bmax = range[3];\n\n // These are here just for completeness - the spec doesn't offer any\n // formulas that use BlackPoint in Lab\n this.XB = blackPoint[0];\n this.YB = blackPoint[1];\n this.ZB = blackPoint[2];\n\n // Validate vars as per spec\n if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n throw new FormatError(\n \"Invalid WhitePoint components, no fallback available\"\n );\n }\n\n if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n info(\"Invalid BlackPoint, falling back to default\");\n this.XB = this.YB = this.ZB = 0;\n }\n\n if (this.amin > this.amax || this.bmin > this.bmax) {\n info(\"Invalid Range, falling back to defaults\");\n this.amin = -100;\n this.amax = 100;\n this.bmin = -100;\n this.bmax = 100;\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'LabCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n convertToRgb(this, src, srcOffset, false, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'LabCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const maxVal = (1 << bits) - 1;\n for (let i = 0; i < count; i++) {\n convertToRgb(this, src, srcOffset, maxVal, dest, destOffset);\n srcOffset += 3;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength * (3 + alpha01)) / 3) | 0;\n }\n\n isDefaultDecode(decodeMap, bpc) {\n // XXX: Decoding is handled with the lab conversion because of the strange\n // ranges that are used.\n return true;\n }\n\n get usesZeroToOneRange() {\n return shadow(this, \"usesZeroToOneRange\", false);\n }\n }\n return LabCS;\n})();\n\nexport { ColorSpace };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable no-var */\n\nimport {\n AbortException,\n assert,\n CMapCompressionType,\n createPromiseCapability,\n FONT_IDENTITY_MATRIX,\n FormatError,\n IDENTITY_MATRIX,\n info,\n isArrayEqual,\n OPS,\n RenderingIntentFlag,\n shadow,\n stringToPDFString,\n TextRenderingMode,\n UNSUPPORTED_FEATURES,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport { CMapFactory, IdentityCMap } from \"./cmap.js\";\nimport { Cmd, Dict, EOF, isName, Name, Ref, RefSet } from \"./primitives.js\";\nimport { ErrorFont, Font } from \"./fonts.js\";\nimport { FontFlags, getFontType } from \"./fonts_utils.js\";\nimport {\n getEncoding,\n MacRomanEncoding,\n StandardEncoding,\n SymbolSetEncoding,\n WinAnsiEncoding,\n ZapfDingbatsEncoding,\n} from \"./encodings.js\";\nimport {\n getFontNameToFileMap,\n getSerifFonts,\n getStandardFontName,\n getStdFontMap,\n getSymbolsFonts,\n} from \"./standard_fonts.js\";\nimport {\n getNormalizedUnicodes,\n getUnicodeForGlyph,\n reverseIfRtl,\n} from \"./unicode.js\";\nimport { getTilingPatternIR, Pattern } from \"./pattern.js\";\nimport { getXfaFontDict, getXfaFontName } from \"./xfa_fonts.js\";\nimport { IdentityToUnicodeMap, ToUnicodeMap } from \"./to_unicode_map.js\";\nimport { isPDFFunction, PDFFunctionFactory } from \"./function.js\";\nimport { Lexer, Parser } from \"./parser.js\";\nimport {\n LocalColorSpaceCache,\n LocalGStateCache,\n LocalImageCache,\n LocalTilingPatternCache,\n} from \"./image_utils.js\";\nimport { NullStream, Stream } from \"./stream.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { bidi } from \"./bidi.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { getGlyphsUnicode } from \"./glyphlist.js\";\nimport { getLookupTableFactory } from \"./core_utils.js\";\nimport { getMetrics } from \"./metrics.js\";\nimport { MurmurHash3_64 } from \"../shared/murmurhash3.js\";\nimport { OperatorList } from \"./operator_list.js\";\nimport { PDFImage } from \"./image.js\";\nimport {BoundingBoxesCalculator} from \"./bounding_boxes\";\n\nconst DefaultPartialEvaluatorOptions = Object.freeze({\n maxImageSize: -1,\n disableFontFace: false,\n ignoreErrors: false,\n isEvalSupported: true,\n fontExtraProperties: false,\n useSystemFonts: true,\n cMapUrl: null,\n standardFontDataUrl: null,\n});\n\nconst PatternType = {\n TILING: 1,\n SHADING: 2,\n};\n\n// Optionally avoid sending individual, or very few, text chunks to reduce\n// `postMessage` overhead with ReadableStream (see issue 13962).\n//\n// PLEASE NOTE: This value should *not* be too large (it's used as a lower limit\n// in `enqueueChunk`), since that would cause streaming of textContent to become\n// essentially useless in practice by sending all (or most) chunks at once.\n// Also, a too large value would (indirectly) affect the main-thread `textLayer`\n// building negatively by forcing all textContent to be handled at once, which\n// could easily end up hurting *overall* performance (e.g. rendering as well).\nconst TEXT_CHUNK_BATCH_SIZE = 10;\n\nconst deferred = Promise.resolve();\n\n// Convert PDF blend mode names to HTML5 blend mode names.\nfunction normalizeBlendMode(value, parsingArray = false) {\n if (Array.isArray(value)) {\n // Use the first *supported* BM value in the Array (fixes issue11279.pdf).\n for (let i = 0, ii = value.length; i < ii; i++) {\n const maybeBM = normalizeBlendMode(value[i], /* parsingArray = */ true);\n if (maybeBM) {\n return maybeBM;\n }\n }\n warn(`Unsupported blend mode Array: ${value}`);\n return \"source-over\";\n }\n\n if (!(value instanceof Name)) {\n if (parsingArray) {\n return null;\n }\n return \"source-over\";\n }\n switch (value.name) {\n case \"Normal\":\n case \"Compatible\":\n return \"source-over\";\n case \"Multiply\":\n return \"multiply\";\n case \"Screen\":\n return \"screen\";\n case \"Overlay\":\n return \"overlay\";\n case \"Darken\":\n return \"darken\";\n case \"Lighten\":\n return \"lighten\";\n case \"ColorDodge\":\n return \"color-dodge\";\n case \"ColorBurn\":\n return \"color-burn\";\n case \"HardLight\":\n return \"hard-light\";\n case \"SoftLight\":\n return \"soft-light\";\n case \"Difference\":\n return \"difference\";\n case \"Exclusion\":\n return \"exclusion\";\n case \"Hue\":\n return \"hue\";\n case \"Saturation\":\n return \"saturation\";\n case \"Color\":\n return \"color\";\n case \"Luminosity\":\n return \"luminosity\";\n }\n if (parsingArray) {\n return null;\n }\n warn(`Unsupported blend mode: ${value.name}`);\n return \"source-over\";\n}\n\nfunction incrementCachedImageMaskCount(data) {\n if (\n data.fn === OPS.paintImageMaskXObject &&\n data.args[0] &&\n data.args[0].count > 0\n ) {\n data.args[0].count++;\n }\n}\n\n// Trying to minimize Date.now() usage and check every 100 time.\nclass TimeSlotManager {\n static get TIME_SLOT_DURATION_MS() {\n return shadow(this, \"TIME_SLOT_DURATION_MS\", 20);\n }\n\n static get CHECK_TIME_EVERY() {\n return shadow(this, \"CHECK_TIME_EVERY\", 100);\n }\n\n constructor() {\n this.reset();\n }\n\n check() {\n if (++this.checked < TimeSlotManager.CHECK_TIME_EVERY) {\n return false;\n }\n this.checked = 0;\n return this.endTime <= Date.now();\n }\n\n reset() {\n this.endTime = Date.now() + TimeSlotManager.TIME_SLOT_DURATION_MS;\n this.checked = 0;\n }\n}\n\nclass PartialEvaluator {\n constructor({\n xref,\n handler,\n pageIndex,\n idFactory,\n fontCache,\n builtInCMapCache,\n standardFontDataCache,\n globalImageCache,\n options = null,\n }) {\n this.xref = xref;\n this.handler = handler;\n this.pageIndex = pageIndex;\n this.idFactory = idFactory;\n this.fontCache = fontCache;\n this.builtInCMapCache = builtInCMapCache;\n this.standardFontDataCache = standardFontDataCache;\n this.globalImageCache = globalImageCache;\n this.options = options || DefaultPartialEvaluatorOptions;\n this.parsingType3Font = false;\n\n this._fetchBuiltInCMapBound = this.fetchBuiltInCMap.bind(this);\n }\n\n /**\n * Since Functions are only cached (locally) by reference, we can share one\n * `PDFFunctionFactory` instance within this `PartialEvaluator` instance.\n */\n get _pdfFunctionFactory() {\n const pdfFunctionFactory = new PDFFunctionFactory({\n xref: this.xref,\n isEvalSupported: this.options.isEvalSupported,\n });\n return shadow(this, \"_pdfFunctionFactory\", pdfFunctionFactory);\n }\n\n clone(newOptions = null) {\n const newEvaluator = Object.create(this);\n newEvaluator.options = Object.assign(\n Object.create(null),\n this.options,\n newOptions\n );\n return newEvaluator;\n }\n\n hasBlendModes(resources, nonBlendModesSet) {\n if (!(resources instanceof Dict)) {\n return false;\n }\n if (resources.objId && nonBlendModesSet.has(resources.objId)) {\n return false;\n }\n\n const processed = new RefSet(nonBlendModesSet);\n if (resources.objId) {\n processed.put(resources.objId);\n }\n\n const nodes = [resources],\n xref = this.xref;\n while (nodes.length) {\n const node = nodes.shift();\n // First check the current resources for blend modes.\n const graphicStates = node.get(\"ExtGState\");\n if (graphicStates instanceof Dict) {\n for (let graphicState of graphicStates.getRawValues()) {\n if (graphicState instanceof Ref) {\n if (processed.has(graphicState)) {\n continue; // The ExtGState has already been processed.\n }\n try {\n graphicState = xref.fetch(graphicState);\n } catch (ex) {\n // Avoid parsing a corrupt ExtGState more than once.\n processed.put(graphicState);\n\n info(`hasBlendModes - ignoring ExtGState: \"${ex}\".`);\n continue;\n }\n }\n if (!(graphicState instanceof Dict)) {\n continue;\n }\n if (graphicState.objId) {\n processed.put(graphicState.objId);\n }\n\n const bm = graphicState.get(\"BM\");\n if (bm instanceof Name) {\n if (bm.name !== \"Normal\") {\n return true;\n }\n continue;\n }\n if (bm !== undefined && Array.isArray(bm)) {\n for (const element of bm) {\n if (element instanceof Name && element.name !== \"Normal\") {\n return true;\n }\n }\n }\n }\n }\n // Descend into the XObjects to look for more resources and blend modes.\n const xObjects = node.get(\"XObject\");\n if (!(xObjects instanceof Dict)) {\n continue;\n }\n for (let xObject of xObjects.getRawValues()) {\n if (xObject instanceof Ref) {\n if (processed.has(xObject)) {\n // The XObject has already been processed, and by avoiding a\n // redundant `xref.fetch` we can *significantly* reduce the load\n // time for badly generated PDF files (fixes issue6961.pdf).\n continue;\n }\n try {\n xObject = xref.fetch(xObject);\n } catch (ex) {\n // Avoid parsing a corrupt XObject more than once.\n processed.put(xObject);\n\n info(`hasBlendModes - ignoring XObject: \"${ex}\".`);\n continue;\n }\n }\n if (!(xObject instanceof BaseStream)) {\n continue;\n }\n if (xObject.dict.objId) {\n processed.put(xObject.dict.objId);\n }\n const xResources = xObject.dict.get(\"Resources\");\n if (!(xResources instanceof Dict)) {\n continue;\n }\n // Checking objId to detect an infinite loop.\n if (xResources.objId && processed.has(xResources.objId)) {\n continue;\n }\n\n nodes.push(xResources);\n if (xResources.objId) {\n processed.put(xResources.objId);\n }\n }\n }\n\n // When no blend modes exist, there's no need re-fetch/re-parse any of the\n // processed `Ref`s again for subsequent pages. This helps reduce redundant\n // `XRef.fetch` calls for some documents (e.g. issue6961.pdf).\n for (const ref of processed) {\n nonBlendModesSet.put(ref);\n }\n return false;\n }\n\n async fetchBuiltInCMap(name) {\n const cachedData = this.builtInCMapCache.get(name);\n if (cachedData) {\n return cachedData;\n }\n let data;\n\n if (this.options.cMapUrl !== null) {\n // Only compressed CMaps are (currently) supported here.\n const url = `${this.options.cMapUrl}${name}.bcmap`;\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(\n `fetchBuiltInCMap: failed to fetch file \"${url}\" with \"${response.statusText}\".`\n );\n }\n data = {\n cMapData: new Uint8Array(await response.arrayBuffer()),\n compressionType: CMapCompressionType.BINARY,\n };\n } else {\n // Get the data on the main-thread instead.\n data = await this.handler.sendWithPromise(\"FetchBuiltInCMap\", { name });\n }\n\n if (data.compressionType !== CMapCompressionType.NONE) {\n // Given the size of uncompressed CMaps, only cache compressed ones.\n this.builtInCMapCache.set(name, data);\n }\n return data;\n }\n\n async fetchStandardFontData(name) {\n const cachedData = this.standardFontDataCache.get(name);\n if (cachedData) {\n return new Stream(cachedData);\n }\n\n // The symbol fonts are not consistent across platforms, always load the\n // standard font data for them.\n if (\n this.options.useSystemFonts &&\n name !== \"Symbol\" &&\n name !== \"ZapfDingbats\"\n ) {\n return null;\n }\n\n const standardFontNameToFileName = getFontNameToFileMap(),\n filename = standardFontNameToFileName[name];\n let data;\n\n if (this.options.standardFontDataUrl !== null) {\n const url = `${this.options.standardFontDataUrl}${filename}`;\n const response = await fetch(url);\n if (!response.ok) {\n warn(\n `fetchStandardFontData: failed to fetch file \"${url}\" with \"${response.statusText}\".`\n );\n } else {\n data = await response.arrayBuffer();\n }\n } else {\n // Get the data on the main-thread instead.\n try {\n data = await this.handler.sendWithPromise(\"FetchStandardFontData\", {\n filename,\n });\n } catch (e) {\n warn(\n `fetchStandardFontData: failed to fetch file \"${filename}\" with \"${e}\".`\n );\n }\n }\n\n if (!data) {\n return null;\n }\n // Cache the \"raw\" standard font data, to avoid fetching it repeatedly\n // (see e.g. issue 11399).\n this.standardFontDataCache.set(name, data);\n\n return new Stream(data);\n }\n\n async buildFormXObject(\n resources,\n xobj,\n smask,\n operatorList,\n task,\n initialState,\n localColorSpaceCache\n ) {\n const dict = xobj.dict;\n const matrix = dict.getArray(\"Matrix\");\n let bbox = dict.getArray(\"BBox\");\n if (Array.isArray(bbox) && bbox.length === 4) {\n bbox = Util.normalizeRect(bbox);\n } else {\n bbox = null;\n }\n\n let optionalContent, groupOptions;\n if (dict.has(\"OC\")) {\n optionalContent = await this.parseMarkedContentProps(\n dict.get(\"OC\"),\n resources\n );\n }\n if (optionalContent !== undefined) {\n operatorList.addOp(OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n }\n const group = dict.get(\"Group\");\n if (group) {\n groupOptions = {\n matrix,\n bbox,\n smask,\n isolated: false,\n knockout: false,\n };\n\n const groupSubtype = group.get(\"S\");\n let colorSpace = null;\n if (isName(groupSubtype, \"Transparency\")) {\n groupOptions.isolated = group.get(\"I\") || false;\n groupOptions.knockout = group.get(\"K\") || false;\n if (group.has(\"CS\")) {\n const cs = group.getRaw(\"CS\");\n\n const cachedColorSpace = ColorSpace.getCached(\n cs,\n this.xref,\n localColorSpaceCache\n );\n if (cachedColorSpace) {\n colorSpace = cachedColorSpace;\n } else {\n colorSpace = await this.parseColorSpace({\n cs,\n resources,\n localColorSpaceCache,\n });\n }\n }\n }\n\n if (smask && smask.backdrop) {\n colorSpace = colorSpace || ColorSpace.singletons.rgb;\n smask.backdrop = colorSpace.getRgb(smask.backdrop, 0);\n }\n\n operatorList.addOp(OPS.beginGroup, [groupOptions]);\n }\n\n // If it's a group, a new canvas will be created that is the size of the\n // bounding box and translated to the correct position so we don't need to\n // apply the bounding box to it.\n const args = group ? [matrix, null] : [matrix, bbox];\n operatorList.addOp(OPS.paintFormXObjectBegin, args);\n\n return this.getOperatorList({\n stream: xobj,\n task,\n resources: dict.get(\"Resources\") || resources,\n operatorList,\n initialState,\n }).then(function () {\n operatorList.addOp(OPS.paintFormXObjectEnd, []);\n\n if (group) {\n operatorList.addOp(OPS.endGroup, [groupOptions]);\n }\n\n if (optionalContent !== undefined) {\n operatorList.addOp(OPS.endMarkedContent, []);\n }\n });\n }\n\n _sendImgData(objId, imgData, cacheGlobally = false) {\n const transfers = imgData ? [imgData.bitmap || imgData.data.buffer] : null;\n\n if (this.parsingType3Font || cacheGlobally) {\n return this.handler.send(\n \"commonobj\",\n [objId, \"Image\", imgData],\n transfers\n );\n }\n return this.handler.send(\n \"obj\",\n [objId, this.pageIndex, \"Image\", imgData],\n transfers\n );\n }\n\n async buildPaintImageXObject({\n resources,\n image,\n isInline = false,\n operatorList,\n cacheKey,\n localImageCache,\n localColorSpaceCache,\n }) {\n const dict = image.dict;\n const imageRef = dict.objId;\n const w = dict.get(\"W\", \"Width\");\n const h = dict.get(\"H\", \"Height\");\n\n if (!(w && typeof w === \"number\") || !(h && typeof h === \"number\")) {\n warn(\"Image dimensions are missing, or not numbers.\");\n return;\n }\n const maxImageSize = this.options.maxImageSize;\n if (maxImageSize !== -1 && w * h > maxImageSize) {\n const msg = \"Image exceeded maximum allowed size and was removed.\";\n\n if (this.options.ignoreErrors) {\n warn(msg);\n return;\n }\n throw new Error(msg);\n }\n\n let optionalContent;\n if (dict.has(\"OC\")) {\n optionalContent = await this.parseMarkedContentProps(\n dict.get(\"OC\"),\n resources\n );\n }\n\n const imageMask = dict.get(\"IM\", \"ImageMask\") || false;\n let imgData, args;\n if (imageMask) {\n // This depends on a tmpCanvas being filled with the\n // current fillStyle, such that processing the pixel\n // data can't be done here. Instead of creating a\n // complete PDFImage, only read the information needed\n // for later.\n const interpolate = dict.get(\"I\", \"Interpolate\");\n const bitStrideLength = (w + 7) >> 3;\n const imgArray = image.getBytes(bitStrideLength * h);\n const decode = dict.getArray(\"D\", \"Decode\");\n\n if (this.parsingType3Font) {\n imgData = PDFImage.createRawMask({\n imgArray,\n width: w,\n height: h,\n imageIsFromDecodeStream: image instanceof DecodeStream,\n inverseDecode: !!decode && decode[0] > 0,\n interpolate,\n });\n\n imgData.cached = !!cacheKey;\n args = [imgData];\n\n operatorList.addImageOps(\n OPS.paintImageMaskXObject,\n args,\n optionalContent\n );\n\n if (cacheKey) {\n localImageCache.set(cacheKey, imageRef, {\n fn: OPS.paintImageMaskXObject,\n args,\n optionalContent,\n });\n }\n return;\n }\n\n imgData = PDFImage.createMask({\n imgArray,\n width: w,\n height: h,\n imageIsFromDecodeStream: image instanceof DecodeStream,\n inverseDecode: !!decode && decode[0] > 0,\n interpolate,\n });\n\n if (imgData.isSingleOpaquePixel) {\n // Handles special case of mainly LaTeX documents which use image\n // masks to draw lines with the current fill style.\n operatorList.addImageOps(\n OPS.paintSolidColorImageMask,\n [],\n optionalContent\n );\n\n if (cacheKey) {\n localImageCache.set(cacheKey, imageRef, {\n fn: OPS.paintSolidColorImageMask,\n args: [],\n optionalContent,\n });\n }\n return;\n }\n\n const objId = `mask_${this.idFactory.createObjId()}`;\n operatorList.addDependency(objId);\n this._sendImgData(objId, imgData);\n\n args = [\n {\n data: objId,\n width: imgData.width,\n height: imgData.height,\n interpolate: imgData.interpolate,\n count: 1,\n },\n ];\n operatorList.addImageOps(\n OPS.paintImageMaskXObject,\n args,\n optionalContent\n );\n\n if (cacheKey) {\n localImageCache.set(cacheKey, imageRef, {\n fn: OPS.paintImageMaskXObject,\n args,\n optionalContent,\n });\n }\n return;\n }\n\n const softMask = dict.get(\"SM\", \"SMask\") || false;\n const mask = dict.get(\"Mask\") || false;\n\n const SMALL_IMAGE_DIMENSIONS = 200;\n // Inlining small images into the queue as RGB data\n if (isInline && !softMask && !mask && w + h < SMALL_IMAGE_DIMENSIONS) {\n const imageObj = new PDFImage({\n xref: this.xref,\n res: resources,\n image,\n isInline,\n pdfFunctionFactory: this._pdfFunctionFactory,\n localColorSpaceCache,\n });\n // We force the use of RGBA_32BPP images here, because we can't handle\n // any other kind.\n imgData = imageObj.createImageData(/* forceRGBA = */ true);\n operatorList.addImageOps(\n OPS.paintInlineImageXObject,\n [imgData],\n optionalContent\n );\n return;\n }\n\n // If there is no imageMask, create the PDFImage and a lot\n // of image processing can be done here.\n let objId = `img_${this.idFactory.createObjId()}`,\n cacheGlobally = false;\n\n if (this.parsingType3Font) {\n objId = `${this.idFactory.getDocId()}_type3_${objId}`;\n } else if (imageRef) {\n cacheGlobally = this.globalImageCache.shouldCache(\n imageRef,\n this.pageIndex\n );\n\n if (cacheGlobally) {\n objId = `${this.idFactory.getDocId()}_${objId}`;\n }\n }\n\n // Ensure that the dependency is added before the image is decoded.\n operatorList.addDependency(objId);\n args = [objId, w, h];\n\n PDFImage.buildImage({\n xref: this.xref,\n res: resources,\n image,\n isInline,\n pdfFunctionFactory: this._pdfFunctionFactory,\n localColorSpaceCache,\n })\n .then(imageObj => {\n imgData = imageObj.createImageData(/* forceRGBA = */ false);\n\n if (cacheKey && imageRef && cacheGlobally) {\n this.globalImageCache.addByteSize(imageRef, imgData.data.length);\n }\n return this._sendImgData(objId, imgData, cacheGlobally);\n })\n .catch(reason => {\n warn(`Unable to decode image \"${objId}\": \"${reason}\".`);\n\n return this._sendImgData(objId, /* imgData = */ null, cacheGlobally);\n });\n\n operatorList.addImageOps(OPS.paintImageXObject, args, optionalContent);\n\n if (cacheKey) {\n localImageCache.set(cacheKey, imageRef, {\n fn: OPS.paintImageXObject,\n args,\n optionalContent,\n });\n\n if (imageRef) {\n assert(!isInline, \"Cannot cache an inline image globally.\");\n this.globalImageCache.addPageIndex(imageRef, this.pageIndex);\n\n if (cacheGlobally) {\n this.globalImageCache.setData(imageRef, {\n objId,\n fn: OPS.paintImageXObject,\n args,\n optionalContent,\n byteSize: 0, // Temporary entry, note `addByteSize` above.\n });\n }\n }\n }\n }\n\n handleSMask(\n smask,\n resources,\n operatorList,\n task,\n stateManager,\n localColorSpaceCache\n ) {\n const smaskContent = smask.get(\"G\");\n const smaskOptions = {\n subtype: smask.get(\"S\").name,\n backdrop: smask.get(\"BC\"),\n };\n\n // The SMask might have a alpha/luminosity value transfer function --\n // we will build a map of integer values in range 0..255 to be fast.\n const transferObj = smask.get(\"TR\");\n if (isPDFFunction(transferObj)) {\n const transferFn = this._pdfFunctionFactory.create(transferObj);\n const transferMap = new Uint8Array(256);\n const tmp = new Float32Array(1);\n for (let i = 0; i < 256; i++) {\n tmp[0] = i / 255;\n transferFn(tmp, 0, tmp, 0);\n transferMap[i] = (tmp[0] * 255) | 0;\n }\n smaskOptions.transferMap = transferMap;\n }\n\n return this.buildFormXObject(\n resources,\n smaskContent,\n smaskOptions,\n operatorList,\n task,\n stateManager.state.clone(),\n localColorSpaceCache\n );\n }\n\n handleTransferFunction(tr) {\n let transferArray;\n if (Array.isArray(tr)) {\n transferArray = tr;\n } else if (isPDFFunction(tr)) {\n transferArray = [tr];\n } else {\n return null; // Not a valid transfer function entry.\n }\n\n const transferMaps = [];\n let numFns = 0,\n numEffectfulFns = 0;\n for (const entry of transferArray) {\n const transferObj = this.xref.fetchIfRef(entry);\n numFns++;\n\n if (isName(transferObj, \"Identity\")) {\n transferMaps.push(null);\n continue;\n } else if (!isPDFFunction(transferObj)) {\n return null; // Not a valid transfer function object.\n }\n\n const transferFn = this._pdfFunctionFactory.create(transferObj);\n const transferMap = new Uint8Array(256),\n tmp = new Float32Array(1);\n for (let j = 0; j < 256; j++) {\n tmp[0] = j / 255;\n transferFn(tmp, 0, tmp, 0);\n transferMap[j] = (tmp[0] * 255) | 0;\n }\n transferMaps.push(transferMap);\n numEffectfulFns++;\n }\n\n if (!(numFns === 1 || numFns === 4)) {\n return null; // Only 1 or 4 functions are supported, by the specification.\n }\n if (numEffectfulFns === 0) {\n return null; // Only /Identity transfer functions found, which are no-ops.\n }\n return transferMaps;\n }\n\n handleTilingType(\n fn,\n color,\n resources,\n pattern,\n patternDict,\n operatorList,\n task,\n localTilingPatternCache\n ) {\n // Create an IR of the pattern code.\n const tilingOpList = new OperatorList();\n // Merge the available resources, to prevent issues when the patternDict\n // is missing some /Resources entries (fixes issue6541.pdf).\n const patternResources = Dict.merge({\n xref: this.xref,\n dictArray: [patternDict.get(\"Resources\"), resources],\n });\n\n return this.getOperatorList({\n stream: pattern,\n task,\n resources: patternResources,\n operatorList: tilingOpList,\n })\n .then(function () {\n const operatorListIR = tilingOpList.getIR();\n const tilingPatternIR = getTilingPatternIR(\n operatorListIR,\n patternDict,\n color\n );\n // Add the dependencies to the parent operator list so they are\n // resolved before the sub operator list is executed synchronously.\n operatorList.addDependencies(tilingOpList.dependencies);\n operatorList.addOp(fn, tilingPatternIR);\n\n if (patternDict.objId) {\n localTilingPatternCache.set(/* name = */ null, patternDict.objId, {\n operatorListIR,\n dict: patternDict,\n });\n }\n })\n .catch(reason => {\n if (reason instanceof AbortException) {\n return;\n }\n if (this.options.ignoreErrors) {\n // Error(s) in the TilingPattern -- sending unsupported feature\n // notification and allow rendering to continue.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorTilingPattern,\n });\n warn(`handleTilingType - ignoring pattern: \"${reason}\".`);\n return;\n }\n throw reason;\n });\n }\n\n handleSetFont(\n resources,\n fontArgs,\n fontRef,\n operatorList,\n task,\n state,\n fallbackFontDict = null,\n cssFontInfo = null\n ) {\n const fontName =\n fontArgs && fontArgs[0] instanceof Name ? fontArgs[0].name : null;\n\n return this.loadFont(\n fontName,\n fontRef,\n resources,\n fallbackFontDict,\n cssFontInfo\n )\n .then(translated => {\n if (!translated.font.isType3Font) {\n return translated;\n }\n return translated\n .loadType3Data(this, resources, task)\n .then(function () {\n // Add the dependencies to the parent operatorList so they are\n // resolved before Type3 operatorLists are executed synchronously.\n operatorList.addDependencies(translated.type3Dependencies);\n\n return translated;\n })\n .catch(reason => {\n // Error in the font data -- sending unsupported feature\n // notification.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorFontLoadType3,\n });\n return new TranslatedFont({\n loadedName: \"g_font_error\",\n font: new ErrorFont(`Type3 font load error: ${reason}`),\n dict: translated.font,\n evaluatorOptions: this.options,\n });\n });\n })\n .then(translated => {\n state.font = translated.font;\n translated.send(this.handler);\n return translated;\n });\n }\n\n handleText(chars, state) {\n const font = state.font;\n const glyphs = font.charsToGlyphs(chars);\n\n if (font.data) {\n const isAddToPathSet = !!(\n state.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG\n );\n if (\n isAddToPathSet ||\n state.fillColorSpace.name === \"Pattern\" ||\n font.disableFontFace ||\n this.options.disableFontFace\n ) {\n PartialEvaluator.buildFontPaths(\n font,\n glyphs,\n this.handler,\n this.options\n );\n }\n }\n return glyphs;\n }\n\n ensureStateFont(state) {\n if (state.font) {\n return;\n }\n const reason = new FormatError(\n \"Missing setFont (Tf) operator before text rendering operator.\"\n );\n\n if (this.options.ignoreErrors) {\n // Missing setFont operator before text rendering operator -- sending\n // unsupported feature notification and allow rendering to continue.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorFontState,\n });\n warn(`ensureStateFont: \"${reason}\".`);\n return;\n }\n throw reason;\n }\n\n async setGState({\n resources,\n gState,\n operatorList,\n cacheKey,\n task,\n stateManager,\n localGStateCache,\n localColorSpaceCache,\n }) {\n const gStateRef = gState.objId;\n let isSimpleGState = true;\n // This array holds the converted/processed state data.\n const gStateObj = [];\n const gStateKeys = gState.getKeys();\n let promise = Promise.resolve();\n for (let i = 0, ii = gStateKeys.length; i < ii; i++) {\n const key = gStateKeys[i];\n const value = gState.get(key);\n switch (key) {\n case \"Type\":\n break;\n case \"LW\":\n case \"LC\":\n case \"LJ\":\n case \"ML\":\n case \"D\":\n case \"RI\":\n case \"FL\":\n case \"CA\":\n case \"ca\":\n gStateObj.push([key, value]);\n break;\n case \"Font\":\n isSimpleGState = false;\n\n promise = promise.then(() => {\n return this.handleSetFont(\n resources,\n null,\n value[0],\n operatorList,\n task,\n stateManager.state\n ).then(function (translated) {\n operatorList.addDependency(translated.loadedName);\n gStateObj.push([key, [translated.loadedName, value[1]]]);\n });\n });\n break;\n case \"BM\":\n gStateObj.push([key, normalizeBlendMode(value)]);\n break;\n case \"SMask\":\n if (isName(value, \"None\")) {\n gStateObj.push([key, false]);\n break;\n }\n if (value instanceof Dict) {\n isSimpleGState = false;\n\n promise = promise.then(() => {\n return this.handleSMask(\n value,\n resources,\n operatorList,\n task,\n stateManager,\n localColorSpaceCache\n );\n });\n gStateObj.push([key, true]);\n } else {\n warn(\"Unsupported SMask type\");\n }\n break;\n case \"TR\":\n const transferMaps = this.handleTransferFunction(value);\n gStateObj.push([key, transferMaps]);\n break;\n // Only generate info log messages for the following since\n // they are unlikely to have a big impact on the rendering.\n case \"OP\":\n case \"op\":\n case \"OPM\":\n case \"BG\":\n case \"BG2\":\n case \"UCR\":\n case \"UCR2\":\n case \"TR2\":\n case \"HT\":\n case \"SM\":\n case \"SA\":\n case \"AIS\":\n case \"TK\":\n // TODO implement these operators.\n info(\"graphic state operator \" + key);\n break;\n default:\n info(\"Unknown graphic state operator \" + key);\n break;\n }\n }\n return promise.then(function () {\n if (gStateObj.length > 0) {\n operatorList.addOp(OPS.setGState, [gStateObj]);\n }\n\n if (isSimpleGState) {\n localGStateCache.set(cacheKey, gStateRef, gStateObj);\n }\n });\n }\n\n loadFont(\n fontName,\n font,\n resources,\n fallbackFontDict = null,\n cssFontInfo = null\n ) {\n const errorFont = async () => {\n return new TranslatedFont({\n loadedName: \"g_font_error\",\n font: new ErrorFont(`Font \"${fontName}\" is not available.`),\n dict: font,\n evaluatorOptions: this.options,\n });\n };\n\n const xref = this.xref;\n let fontRef;\n if (font) {\n // Loading by ref.\n if (!(font instanceof Ref)) {\n throw new FormatError('The \"font\" object should be a reference.');\n }\n fontRef = font;\n } else {\n // Loading by name.\n const fontRes = resources.get(\"Font\");\n if (fontRes) {\n fontRef = fontRes.getRaw(fontName);\n }\n }\n if (!fontRef) {\n const partialMsg = `Font \"${\n fontName || (font && font.toString())\n }\" is not available`;\n\n if (!this.options.ignoreErrors && !this.parsingType3Font) {\n warn(`${partialMsg}.`);\n return errorFont();\n }\n // Font not found -- sending unsupported feature notification.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorFontMissing,\n });\n warn(`${partialMsg} -- attempting to fallback to a default font.`);\n\n // Falling back to a default font to avoid completely broken rendering,\n // but note that there're no guarantees that things will look \"correct\".\n if (fallbackFontDict) {\n fontRef = fallbackFontDict;\n } else {\n fontRef = PartialEvaluator.fallbackFontDict;\n }\n }\n\n if (this.parsingType3Font && this.type3FontRefs.has(fontRef)) {\n return errorFont();\n }\n\n if (this.fontCache.has(fontRef)) {\n return this.fontCache.get(fontRef);\n }\n\n font = xref.fetchIfRef(fontRef);\n if (!(font instanceof Dict)) {\n return errorFont();\n }\n\n // We are holding `font.cacheKey` references only for `fontRef`s that\n // are not actually `Ref`s, but rather `Dict`s. See explanation below.\n if (font.cacheKey && this.fontCache.has(font.cacheKey)) {\n return this.fontCache.get(font.cacheKey);\n }\n\n const fontCapability = createPromiseCapability();\n\n let preEvaluatedFont;\n try {\n preEvaluatedFont = this.preEvaluateFont(font);\n preEvaluatedFont.cssFontInfo = cssFontInfo;\n } catch (reason) {\n warn(`loadFont - preEvaluateFont failed: \"${reason}\".`);\n return errorFont();\n }\n const { descriptor, hash } = preEvaluatedFont;\n\n const fontRefIsRef = fontRef instanceof Ref;\n let fontID;\n if (fontRefIsRef) {\n fontID = `f${fontRef.toString()}`;\n }\n\n if (hash && descriptor instanceof Dict) {\n if (!descriptor.fontAliases) {\n descriptor.fontAliases = Object.create(null);\n }\n const fontAliases = descriptor.fontAliases;\n\n if (fontAliases[hash]) {\n const aliasFontRef = fontAliases[hash].aliasRef;\n if (fontRefIsRef && aliasFontRef && this.fontCache.has(aliasFontRef)) {\n this.fontCache.putAlias(fontRef, aliasFontRef);\n return this.fontCache.get(fontRef);\n }\n } else {\n fontAliases[hash] = {\n fontID: this.idFactory.createFontId(),\n };\n }\n\n if (fontRefIsRef) {\n fontAliases[hash].aliasRef = fontRef;\n }\n fontID = fontAliases[hash].fontID;\n }\n\n // Workaround for bad PDF generators that reference fonts incorrectly,\n // where `fontRef` is a `Dict` rather than a `Ref` (fixes bug946506.pdf).\n // In this case we cannot put the font into `this.fontCache` (which is\n // a `RefSetCache`), since it's not possible to use a `Dict` as a key.\n //\n // However, if we don't cache the font it's not possible to remove it\n // when `cleanup` is triggered from the API, which causes issues on\n // subsequent rendering operations (see issue7403.pdf) and would force us\n // to unnecessarily load the same fonts over and over.\n //\n // Instead, we cheat a bit by using a modified `fontID` as a key in\n // `this.fontCache`, to allow the font to be cached.\n // NOTE: This works because `RefSetCache` calls `toString()` on provided\n // keys. Also, since `fontRef` is used when getting cached fonts,\n // we'll not accidentally match fonts cached with the `fontID`.\n if (fontRefIsRef) {\n this.fontCache.put(fontRef, fontCapability.promise);\n } else {\n if (!fontID) {\n fontID = this.idFactory.createFontId();\n }\n font.cacheKey = `cacheKey_${fontID}`;\n this.fontCache.put(font.cacheKey, fontCapability.promise);\n }\n assert(\n fontID && fontID.startsWith(\"f\"),\n 'The \"fontID\" must be (correctly) defined.'\n );\n\n // Keep track of each font we translated so the caller can\n // load them asynchronously before calling display on a page.\n font.loadedName = `${this.idFactory.getDocId()}_${fontID}`;\n\n this.translateFont(preEvaluatedFont)\n .then(translatedFont => {\n if (translatedFont.fontType !== undefined) {\n xref.stats.addFontType(translatedFont.fontType);\n }\n\n fontCapability.resolve(\n new TranslatedFont({\n loadedName: font.loadedName,\n font: translatedFont,\n dict: font,\n evaluatorOptions: this.options,\n })\n );\n })\n .catch(reason => {\n // TODO fontCapability.reject?\n // Error in the font data -- sending unsupported feature notification.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorFontTranslate,\n });\n warn(`loadFont - translateFont failed: \"${reason}\".`);\n\n try {\n // error, but it's still nice to have font type reported\n const fontFile3 = descriptor && descriptor.get(\"FontFile3\");\n const subtype = fontFile3 && fontFile3.get(\"Subtype\");\n const fontType = getFontType(\n preEvaluatedFont.type,\n subtype && subtype.name\n );\n if (fontType !== undefined) {\n xref.stats.addFontType(fontType);\n }\n } catch (ex) {}\n\n fontCapability.resolve(\n new TranslatedFont({\n loadedName: font.loadedName,\n font: new ErrorFont(\n reason instanceof Error ? reason.message : reason\n ),\n dict: font,\n evaluatorOptions: this.options,\n })\n );\n });\n return fontCapability.promise;\n }\n\n buildPath(operatorList, fn, args, parsingText = false) {\n const lastIndex = operatorList.length - 1;\n if (!args) {\n args = [];\n }\n let minMax;\n if (\n lastIndex < 0 ||\n operatorList.fnArray[lastIndex] !== OPS.constructPath\n ) {\n // Handle corrupt PDF documents that contains path operators inside of\n // text objects, which may shift subsequent text, by enclosing the path\n // operator in save/restore operators (fixes issue10542_reduced.pdf).\n //\n // Note that this will effectively disable the optimization in the\n // `else` branch below, but given that this type of corruption is\n // *extremely* rare that shouldn't really matter much in practice.\n if (parsingText) {\n warn(`Encountered path operator \"${fn}\" inside of a text object.`);\n operatorList.addOp(OPS.save, null);\n }\n\n minMax = [Infinity, -Infinity, Infinity, -Infinity];\n operatorList.addOp(OPS.constructPath, [[fn], args, minMax]);\n\n if (parsingText) {\n operatorList.addOp(OPS.restore, null);\n }\n } else {\n const opArgs = operatorList.argsArray[lastIndex];\n opArgs[0].push(fn);\n Array.prototype.push.apply(opArgs[1], args);\n minMax = opArgs[2];\n }\n\n // Compute min/max in the worker instead of the main thread.\n // If the current matrix (when drawing) is a scaling one\n // then min/max can be easily computed in using those values.\n // Only rectangle, lineTo and moveTo are handled here since\n // Bezier stuff requires to have the starting point.\n switch (fn) {\n case OPS.rectangle:\n minMax[0] = Math.min(minMax[0], args[0], args[0] + args[2]);\n minMax[1] = Math.max(minMax[1], args[0], args[0] + args[2]);\n minMax[2] = Math.min(minMax[2], args[1], args[1] + args[3]);\n minMax[3] = Math.max(minMax[3], args[1], args[1] + args[3]);\n break;\n case OPS.moveTo:\n case OPS.lineTo:\n minMax[0] = Math.min(minMax[0], args[0]);\n minMax[1] = Math.max(minMax[1], args[0]);\n minMax[2] = Math.min(minMax[2], args[1]);\n minMax[3] = Math.max(minMax[3], args[1]);\n break;\n }\n }\n\n parseColorSpace({ cs, resources, localColorSpaceCache }) {\n return ColorSpace.parseAsync({\n cs,\n xref: this.xref,\n resources,\n pdfFunctionFactory: this._pdfFunctionFactory,\n localColorSpaceCache,\n }).catch(reason => {\n if (reason instanceof AbortException) {\n return null;\n }\n if (this.options.ignoreErrors) {\n // Error(s) in the ColorSpace -- sending unsupported feature\n // notification and allow rendering to continue.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorColorSpace,\n });\n warn(`parseColorSpace - ignoring ColorSpace: \"${reason}\".`);\n return null;\n }\n throw reason;\n });\n }\n\n parseShading({\n shading,\n resources,\n localColorSpaceCache,\n localShadingPatternCache,\n }) {\n // Shadings and patterns may be referenced by the same name but the resource\n // dictionary could be different so we can't use the name for the cache key.\n let id = localShadingPatternCache.get(shading);\n if (!id) {\n var shadingFill = Pattern.parseShading(\n shading,\n this.xref,\n resources,\n this.handler,\n this._pdfFunctionFactory,\n localColorSpaceCache\n );\n const patternIR = shadingFill.getIR();\n id = `pattern_${this.idFactory.createObjId()}`;\n localShadingPatternCache.set(shading, id);\n this.handler.send(\"obj\", [id, this.pageIndex, \"Pattern\", patternIR]);\n }\n return id;\n }\n\n handleColorN(\n operatorList,\n fn,\n args,\n cs,\n patterns,\n resources,\n task,\n localColorSpaceCache,\n localTilingPatternCache,\n localShadingPatternCache\n ) {\n // compile tiling patterns\n const patternName = args.pop();\n // SCN/scn applies patterns along with normal colors\n if (patternName instanceof Name) {\n const rawPattern = patterns.getRaw(patternName.name);\n\n const localTilingPattern =\n rawPattern instanceof Ref &&\n localTilingPatternCache.getByRef(rawPattern);\n if (localTilingPattern) {\n try {\n const color = cs.base ? cs.base.getRgb(args, 0) : null;\n const tilingPatternIR = getTilingPatternIR(\n localTilingPattern.operatorListIR,\n localTilingPattern.dict,\n color\n );\n operatorList.addOp(fn, tilingPatternIR);\n return undefined;\n } catch (ex) {\n // Handle any errors during normal TilingPattern parsing.\n }\n }\n\n const pattern = this.xref.fetchIfRef(rawPattern);\n if (pattern) {\n const dict = pattern instanceof BaseStream ? pattern.dict : pattern;\n const typeNum = dict.get(\"PatternType\");\n\n if (typeNum === PatternType.TILING) {\n const color = cs.base ? cs.base.getRgb(args, 0) : null;\n return this.handleTilingType(\n fn,\n color,\n resources,\n pattern,\n dict,\n operatorList,\n task,\n localTilingPatternCache\n );\n } else if (typeNum === PatternType.SHADING) {\n const shading = dict.get(\"Shading\");\n const matrix = dict.getArray(\"Matrix\");\n const objId = this.parseShading({\n shading,\n resources,\n localColorSpaceCache,\n localShadingPatternCache,\n });\n operatorList.addOp(fn, [\"Shading\", objId, matrix]);\n return undefined;\n }\n throw new FormatError(`Unknown PatternType: ${typeNum}`);\n }\n }\n throw new FormatError(`Unknown PatternName: ${patternName}`);\n }\n\n _parseVisibilityExpression(array, nestingCounter, currentResult) {\n const MAX_NESTING = 10;\n if (++nestingCounter > MAX_NESTING) {\n warn(\"Visibility expression is too deeply nested\");\n return;\n }\n const length = array.length;\n const operator = this.xref.fetchIfRef(array[0]);\n if (length < 2 || !(operator instanceof Name)) {\n warn(\"Invalid visibility expression\");\n return;\n }\n switch (operator.name) {\n case \"And\":\n case \"Or\":\n case \"Not\":\n currentResult.push(operator.name);\n break;\n default:\n warn(`Invalid operator ${operator.name} in visibility expression`);\n return;\n }\n for (let i = 1; i < length; i++) {\n const raw = array[i];\n const object = this.xref.fetchIfRef(raw);\n if (Array.isArray(object)) {\n const nestedResult = [];\n currentResult.push(nestedResult);\n // Recursively parse a subarray.\n this._parseVisibilityExpression(object, nestingCounter, nestedResult);\n } else if (raw instanceof Ref) {\n // Reference to an OCG dictionary.\n currentResult.push(raw.toString());\n }\n }\n }\n\n async parseMarkedContentProps(contentProperties, resources) {\n let optionalContent;\n if (contentProperties instanceof Name) {\n const properties = resources.get(\"Properties\");\n optionalContent = properties.get(contentProperties.name);\n } else if (contentProperties instanceof Dict) {\n optionalContent = contentProperties;\n } else {\n throw new FormatError(\"Optional content properties malformed.\");\n }\n\n const optionalContentType = optionalContent.get(\"Type\").name;\n if (optionalContentType === \"OCG\") {\n return {\n type: optionalContentType,\n id: optionalContent.objId,\n };\n } else if (optionalContentType === \"OCMD\") {\n const expression = optionalContent.get(\"VE\");\n if (Array.isArray(expression)) {\n const result = [];\n this._parseVisibilityExpression(expression, 0, result);\n if (result.length > 0) {\n return {\n type: \"OCMD\",\n expression: result,\n };\n }\n }\n\n const optionalContentGroups = optionalContent.get(\"OCGs\");\n if (\n Array.isArray(optionalContentGroups) ||\n optionalContentGroups instanceof Dict\n ) {\n const groupIds = [];\n if (Array.isArray(optionalContentGroups)) {\n for (const ocg of optionalContentGroups) {\n groupIds.push(ocg.toString());\n }\n } else {\n // Dictionary, just use the obj id.\n groupIds.push(optionalContentGroups.objId);\n }\n\n return {\n type: optionalContentType,\n ids: groupIds,\n policy:\n optionalContent.get(\"P\") instanceof Name\n ? optionalContent.get(\"P\").name\n : null,\n expression: null,\n };\n } else if (optionalContentGroups instanceof Ref) {\n return {\n type: optionalContentType,\n id: optionalContentGroups.toString(),\n };\n }\n }\n return null;\n }\n\n getOperatorList({\n stream,\n task,\n resources,\n operatorList,\n initialState = null,\n fallbackFontDict = null,\n intent,\n }) {\n // Ensure that `resources`/`initialState` is correctly initialized,\n // even if the provided parameter is e.g. `null`.\n resources = resources || Dict.empty;\n initialState = initialState || new EvalState();\n\n if (!operatorList) {\n throw new Error('getOperatorList: missing \"operatorList\" parameter');\n }\n\n var boundingBoxCalculator = new BoundingBoxesCalculator(!(intent & RenderingIntentFlag.OPLIST));\n var self = this;\n var xref = this.xref;\n let parsingText = false;\n const localImageCache = new LocalImageCache();\n const localColorSpaceCache = new LocalColorSpaceCache();\n const localGStateCache = new LocalGStateCache();\n const localTilingPatternCache = new LocalTilingPatternCache();\n const localShadingPatternCache = new Map();\n\n const xobjs = resources.get(\"XObject\") || Dict.empty;\n const patterns = resources.get(\"Pattern\") || Dict.empty;\n const stateManager = new StateManager(initialState);\n const preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n const timeSlotManager = new TimeSlotManager();\n\n function closePendingRestoreOPS(argument) {\n for (let i = 0, ii = preprocessor.savedStatesDepth; i < ii; i++) {\n operatorList.addOp(OPS.restore, []);\n }\n }\n\n return new Promise(function promiseBody(resolve, reject) {\n const next = function (promise) {\n Promise.all([promise, operatorList.ready]).then(function () {\n try {\n promiseBody(resolve, reject);\n } catch (ex) {\n reject(ex);\n }\n }, reject);\n };\n task.ensureNotTerminated();\n timeSlotManager.reset();\n\n const operation = {};\n let stop, i, ii, cs, name, isValidName;\n while (!(stop = timeSlotManager.check())) {\n // The arguments parsed by read() are used beyond this loop, so we\n // cannot reuse the same array on each iteration. Therefore we pass\n // in |null| as the initial value (see the comment on\n // EvaluatorPreprocessor_read() for why).\n operation.args = null;\n if (!preprocessor.read(operation)) {\n break;\n }\n let args = operation.args;\n let fn = operation.fn;\n boundingBoxCalculator.incrementOperation(fn);\n\n switch (fn | 0) {\n case OPS.paintXObject:\n // eagerly compile XForm objects\n isValidName = args[0] instanceof Name;\n name = args[0].name;\n\n if (isValidName) {\n const localImage = localImageCache.getByName(name);\n if (localImage) {\n boundingBoxCalculator.parseOperator(OPS.paintXObject, [\"Image\"]);\n operatorList.addImageOps(\n localImage.fn,\n localImage.args,\n localImage.optionalContent\n );\n\n incrementCachedImageMaskCount(localImage);\n args = null;\n continue;\n }\n }\n\n next(\n new Promise(function (resolveXObject, rejectXObject) {\n if (!isValidName) {\n throw new FormatError(\"XObject must be referred to by name.\");\n }\n\n let xobj = xobjs.getRaw(name);\n if (xobj instanceof Ref) {\n const localImage = localImageCache.getByRef(xobj);\n if (localImage) {\n boundingBoxCalculator.parseOperator(OPS.paintXObject, [\"Image\"]);\n operatorList.addImageOps(\n localImage.fn,\n localImage.args,\n localImage.optionalContent\n );\n\n incrementCachedImageMaskCount(localImage);\n resolveXObject();\n return;\n }\n\n const globalImage = self.globalImageCache.getData(\n xobj,\n self.pageIndex\n );\n if (globalImage) {\n boundingBoxCalculator.parseOperator(OPS.paintXObject, [\"Image\"]);\n operatorList.addDependency(globalImage.objId);\n operatorList.addImageOps(\n globalImage.fn,\n globalImage.args,\n globalImage.optionalContent\n );\n\n resolveXObject();\n return;\n }\n\n xobj = xref.fetch(xobj);\n }\n\n if (!(xobj instanceof BaseStream)) {\n throw new FormatError(\"XObject should be a stream\");\n }\n\n const type = xobj.dict.get(\"Subtype\");\n if (!(type instanceof Name)) {\n throw new FormatError(\"XObject should have a Name subtype\");\n }\n\n if (type.name === \"Form\") {\n stateManager.save();\n self\n .buildFormXObject(\n resources,\n xobj,\n null,\n operatorList,\n task,\n stateManager.state.clone(),\n localColorSpaceCache\n )\n .then(function () {\n stateManager.restore();\n resolveXObject();\n }, rejectXObject);\n return;\n } else if (type.name === \"Image\") {\n boundingBoxCalculator.parseOperator(OPS.paintXObject, [type.name]);\n self\n .buildPaintImageXObject({\n resources,\n image: xobj,\n operatorList,\n cacheKey: name,\n localImageCache,\n localColorSpaceCache,\n })\n .then(resolveXObject, rejectXObject);\n return;\n } else if (type.name === \"PS\") {\n // PostScript XObjects are unused when viewing documents.\n // See section 4.7.1 of Adobe's PDF reference.\n info(\"Ignored XObject subtype PS\");\n } else {\n throw new FormatError(\n `Unhandled XObject subtype ${type.name}`\n );\n }\n resolveXObject();\n }).catch(function (reason) {\n if (reason instanceof AbortException) {\n return;\n }\n if (self.options.ignoreErrors) {\n // Error(s) in the XObject -- sending unsupported feature\n // notification and allow rendering to continue.\n self.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorXObject,\n });\n warn(`getOperatorList - ignoring XObject: \"${reason}\".`);\n return;\n }\n throw reason;\n })\n );\n return;\n case OPS.setFont:\n var fontSize = args[1];\n // eagerly collect all fonts\n next(\n self\n .handleSetFont(\n resources,\n args,\n null,\n operatorList,\n task,\n stateManager.state,\n fallbackFontDict\n )\n .then(function (translated) { \n boundingBoxCalculator.parseOperator(OPS.setFont, [fontSize, translated]);\n operatorList.addDependency(translated.loadedName);\n operatorList.addOp(OPS.setFont, [translated.loadedName, fontSize]);\n })\n );\n return;\n case OPS.beginText:\n parsingText = true;\n break;\n case OPS.endText:\n parsingText = false;\n break;\n case OPS.endInlineImage:\n var cacheKey = args[0].cacheKey;\n if (cacheKey) {\n const localImage = localImageCache.getByName(cacheKey);\n if (localImage) {\n operatorList.addImageOps(\n localImage.fn,\n localImage.args,\n localImage.optionalContent\n );\n\n incrementCachedImageMaskCount(localImage);\n args = null;\n continue;\n }\n }\n next(\n self.buildPaintImageXObject({\n resources,\n image: args[0],\n isInline: true,\n operatorList,\n cacheKey,\n localImageCache,\n localColorSpaceCache,\n })\n );\n boundingBoxCalculator.parseOperator(fn, args);\n return;\n case OPS.showText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n args[0] = self.handleText(args[0], stateManager.state);\n break;\n case OPS.showSpacedText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n var arr = args[0];\n var combinedGlyphs = [];\n var arrLength = arr.length;\n var state = stateManager.state;\n for (i = 0; i < arrLength; ++i) {\n const arrItem = arr[i];\n if (typeof arrItem === \"string\") {\n Array.prototype.push.apply(\n combinedGlyphs,\n self.handleText(arrItem, state)\n );\n } else if (typeof arrItem === \"number\") {\n combinedGlyphs.push(arrItem);\n }\n }\n args[0] = combinedGlyphs;\n fn = OPS.showText;\n break;\n case OPS.nextLineShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n operatorList.addOp(OPS.nextLine);\n boundingBoxCalculator.parseOperator(OPS.nextLine);\n args[0] = self.handleText(args[0], stateManager.state);\n fn = OPS.showText;\n break;\n case OPS.nextLineSetSpacingShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n operatorList.addOp(OPS.nextLine);\n operatorList.addOp(OPS.setWordSpacing, [args.shift()]);\n operatorList.addOp(OPS.setCharSpacing, [args.shift()]);\n boundingBoxCalculator.parseOperator(OPS.nextLine);\n boundingBoxCalculator.parseOperator(OPS.setWordSpacing, [args.shift()]);\n boundingBoxCalculator.parseOperator(OPS.setCharSpacing, [args.shift()]);\n args[0] = self.handleText(args[0], stateManager.state);\n fn = OPS.showText;\n break;\n case OPS.setTextRenderingMode:\n stateManager.state.textRenderingMode = args[0];\n break;\n\n case OPS.setFillColorSpace: {\n const cachedColorSpace = ColorSpace.getCached(\n args[0],\n xref,\n localColorSpaceCache\n );\n if (cachedColorSpace) {\n stateManager.state.fillColorSpace = cachedColorSpace;\n continue;\n }\n\n next(\n self\n .parseColorSpace({\n cs: args[0],\n resources,\n localColorSpaceCache,\n })\n .then(function (colorSpace) {\n boundingBoxCalculator.parseOperator(fn, args);\n if (colorSpace) {\n stateManager.state.fillColorSpace = colorSpace;\n }\n })\n );\n return;\n }\n case OPS.setStrokeColorSpace: {\n const cachedColorSpace = ColorSpace.getCached(\n args[0],\n xref,\n localColorSpaceCache\n );\n if (cachedColorSpace) {\n stateManager.state.strokeColorSpace = cachedColorSpace;\n continue;\n }\n\n next(\n self\n .parseColorSpace({\n cs: args[0],\n resources,\n localColorSpaceCache,\n })\n .then(function (colorSpace) {\n boundingBoxCalculator.parseOperator(fn, args);\n if (colorSpace) {\n stateManager.state.strokeColorSpace = colorSpace;\n }\n })\n );\n return;\n }\n case OPS.setFillColor:\n cs = stateManager.state.fillColorSpace;\n args = cs.getRgb(args, 0);\n fn = OPS.setFillRGBColor;\n break;\n case OPS.setStrokeColor:\n cs = stateManager.state.strokeColorSpace;\n args = cs.getRgb(args, 0);\n fn = OPS.setStrokeRGBColor;\n break;\n case OPS.setFillGray:\n stateManager.state.fillColorSpace = ColorSpace.singletons.gray;\n args = ColorSpace.singletons.gray.getRgb(args, 0);\n fn = OPS.setFillRGBColor;\n break;\n case OPS.setStrokeGray:\n stateManager.state.strokeColorSpace = ColorSpace.singletons.gray;\n args = ColorSpace.singletons.gray.getRgb(args, 0);\n fn = OPS.setStrokeRGBColor;\n break;\n case OPS.setFillCMYKColor:\n stateManager.state.fillColorSpace = ColorSpace.singletons.cmyk;\n args = ColorSpace.singletons.cmyk.getRgb(args, 0);\n fn = OPS.setFillRGBColor;\n break;\n case OPS.setStrokeCMYKColor:\n stateManager.state.strokeColorSpace = ColorSpace.singletons.cmyk;\n args = ColorSpace.singletons.cmyk.getRgb(args, 0);\n fn = OPS.setStrokeRGBColor;\n break;\n case OPS.setFillRGBColor:\n stateManager.state.fillColorSpace = ColorSpace.singletons.rgb;\n args = ColorSpace.singletons.rgb.getRgb(args, 0);\n break;\n case OPS.setStrokeRGBColor:\n stateManager.state.strokeColorSpace = ColorSpace.singletons.rgb;\n args = ColorSpace.singletons.rgb.getRgb(args, 0);\n break;\n case OPS.setFillColorN:\n cs = stateManager.state.fillColorSpace;\n if (cs.name === \"Pattern\") {\n next(\n self.handleColorN(\n operatorList,\n OPS.setFillColorN,\n args,\n cs,\n patterns,\n resources,\n task,\n localColorSpaceCache,\n localTilingPatternCache,\n localShadingPatternCache\n )\n );\n return;\n }\n args = cs.getRgb(args, 0);\n fn = OPS.setFillRGBColor;\n break;\n case OPS.setStrokeColorN:\n cs = stateManager.state.strokeColorSpace;\n if (cs.name === \"Pattern\") {\n next(\n self.handleColorN(\n operatorList,\n OPS.setStrokeColorN,\n args,\n cs,\n patterns,\n resources,\n task,\n localColorSpaceCache,\n localTilingPatternCache,\n localShadingPatternCache\n )\n );\n return;\n }\n args = cs.getRgb(args, 0);\n fn = OPS.setStrokeRGBColor;\n break;\n\n case OPS.shadingFill:\n var shadingRes = resources.get(\"Shading\");\n if (!shadingRes) {\n throw new FormatError(\"No shading resource found\");\n }\n\n var shading = shadingRes.get(args[0].name);\n if (!shading) {\n throw new FormatError(\"No shading object found\");\n }\n const patternId = self.parseShading({\n shading,\n resources,\n localColorSpaceCache,\n localShadingPatternCache,\n });\n args = [patternId];\n fn = OPS.shadingFill;\n break;\n case OPS.setGState:\n isValidName = args[0] instanceof Name;\n name = args[0].name;\n\n if (isValidName) {\n const localGStateObj = localGStateCache.getByName(name);\n if (localGStateObj) {\n if (localGStateObj.length > 0) {\n operatorList.addOp(OPS.setGState, [localGStateObj]);\n }\n args = null;\n continue;\n }\n }\n\n next(\n new Promise(function (resolveGState, rejectGState) {\n if (!isValidName) {\n throw new FormatError(\"GState must be referred to by name.\");\n }\n\n const extGState = resources.get(\"ExtGState\");\n if (!(extGState instanceof Dict)) {\n throw new FormatError(\"ExtGState should be a dictionary.\");\n }\n\n const gState = extGState.get(name);\n // TODO: Attempt to lookup cached GStates by reference as well,\n // if and only if there are PDF documents where doing so\n // would significantly improve performance.\n if (!(gState instanceof Dict)) {\n throw new FormatError(\"GState should be a dictionary.\");\n }\n\n self\n .setGState({\n resources,\n gState,\n operatorList,\n cacheKey: name,\n task,\n stateManager,\n localGStateCache,\n localColorSpaceCache,\n })\n .then(resolveGState, rejectGState);\n }).catch(function (reason) {\n if (reason instanceof AbortException) {\n return;\n }\n if (self.options.ignoreErrors) {\n // Error(s) in the ExtGState -- sending unsupported feature\n // notification and allow parsing/rendering to continue.\n self.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorExtGState,\n });\n warn(`getOperatorList - ignoring ExtGState: \"${reason}\".`);\n return;\n }\n throw reason;\n })\n );\n boundingBoxCalculator.parseOperator(fn, args);\n return;\n case OPS.moveTo:\n case OPS.lineTo:\n case OPS.curveTo:\n case OPS.curveTo2:\n case OPS.curveTo3:\n case OPS.closePath:\n case OPS.rectangle:\n self.buildPath(operatorList, fn, args, parsingText);\n boundingBoxCalculator.parseOperator(fn, args);\n continue;\n case OPS.markPoint:\n case OPS.markPointProps:\n case OPS.beginCompat:\n case OPS.endCompat:\n // Ignore operators where the corresponding handlers are known to\n // be no-op in CanvasGraphics (display/canvas.js). This prevents\n // serialization errors and is also a bit more efficient.\n // We could also try to serialize all objects in a general way,\n // e.g. as done in https://github.com/mozilla/pdf.js/pull/6266,\n // but doing so is meaningless without knowing the semantics.\n continue;\n case OPS.beginMarkedContentProps:\n boundingBoxCalculator.parseOperator(fn, args);\n if (!(args[0] instanceof Name)) {\n warn(`Expected name for beginMarkedContentProps arg0=${args[0]}`);\n continue;\n }\n if (args[0].name === \"OC\") {\n next(\n self\n .parseMarkedContentProps(args[1], resources)\n .then(data => {\n operatorList.addOp(OPS.beginMarkedContentProps, [\n \"OC\",\n data,\n ]);\n })\n .catch(reason => {\n if (reason instanceof AbortException) {\n return;\n }\n if (self.options.ignoreErrors) {\n self.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorMarkedContent,\n });\n warn(\n `getOperatorList - ignoring beginMarkedContentProps: \"${reason}\".`\n );\n return;\n }\n throw reason;\n })\n );\n return;\n }\n // Other marked content types aren't supported yet.\n args = [\n args[0].name,\n args[1] instanceof Dict ? args[1].get(\"MCID\") : null,\n ];\n\n break;\n case OPS.beginMarkedContent:\n case OPS.endMarkedContent:\n boundingBoxCalculator.parseOperator(fn, args);\n default:\n // Note: Ignore the operator if it has `Dict` arguments, since\n // those are non-serializable, otherwise postMessage will throw\n // \"An object could not be cloned.\".\n if (args !== null) {\n for (i = 0, ii = args.length; i < ii; i++) {\n if (args[i] instanceof Dict) {\n break;\n }\n }\n if (i < ii) {\n warn(\"getOperatorList - ignoring operator: \" + fn);\n continue;\n }\n }\n }\n boundingBoxCalculator.parseOperator(fn, args);\n operatorList.addOp(fn, args);\n }\n if (stop) {\n next(deferred);\n return;\n }\n // Some PDFs don't close all restores inside object/form.\n // Closing those for them.\n closePendingRestoreOPS();\n // Add extra data about marked content and glyphs position as last elements\n // of operator list with corresponding custom functions 'operationPosition'(100)\n // and 'boundingBoxes'(101), because it won't affect on\n // the process of rendering\n resolve([boundingBoxCalculator.boundingBoxes, boundingBoxCalculator.operationArray, boundingBoxCalculator.getNoMCIDBoundingBoxes()]);\n }).catch(reason => {\n if (reason instanceof AbortException) {\n return;\n }\n if (this.options.ignoreErrors) {\n // Error(s) in the OperatorList -- sending unsupported feature\n // notification and allow rendering to continue.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorOperatorList,\n });\n warn(\n `getOperatorList - ignoring errors during \"${task.name}\" ` +\n `task: \"${reason}\".`\n );\n\n closePendingRestoreOPS();\n return;\n }\n throw reason;\n });\n }\n\n getTextContent({\n stream,\n task,\n resources,\n stateManager = null,\n combineTextItems = false,\n includeMarkedContent = false,\n sink,\n seenStyles = new Set(),\n viewBox,\n }) {\n // Ensure that `resources`/`stateManager` is correctly initialized,\n // even if the provided parameter is e.g. `null`.\n resources = resources || Dict.empty;\n stateManager = stateManager || new StateManager(new TextState());\n\n const NormalizedUnicodes = getNormalizedUnicodes();\n\n const textContent = {\n items: [],\n styles: Object.create(null),\n };\n const textContentItem = {\n initialized: false,\n str: [],\n totalWidth: 0,\n totalHeight: 0,\n width: 0,\n height: 0,\n vertical: false,\n prevTransform: null,\n textAdvanceScale: 0,\n spaceInFlowMin: 0,\n spaceInFlowMax: 0,\n trackingSpaceMin: Infinity,\n negativeSpaceMax: -Infinity,\n notASpace: -Infinity,\n transform: null,\n fontName: null,\n hasEOL: false,\n };\n\n // Use a circular buffer (length === 2) to save the last chars in the\n // text stream.\n // This implementation of the circular buffer is using a fixed array\n // and the position of the next element:\n // function addElement(x) {\n // buffer[pos] = x;\n // pos = (pos + 1) % buffer.length;\n // }\n // It's a way faster than:\n // function addElement(x) {\n // buffer.push(x);\n // buffer.shift();\n // }\n //\n // It's useful to know when we need to add a whitespace in the\n // text chunk.\n const twoLastChars = [\" \", \" \"];\n let twoLastCharsPos = 0;\n\n /**\n * Save the last char.\n * @param {string} char\n * @returns {boolean} true when the two last chars before adding the new one\n * are a non-whitespace followed by a whitespace.\n */\n function saveLastChar(char) {\n const nextPos = (twoLastCharsPos + 1) % 2;\n const ret =\n twoLastChars[twoLastCharsPos] !== \" \" && twoLastChars[nextPos] === \" \";\n twoLastChars[twoLastCharsPos] = char;\n twoLastCharsPos = nextPos;\n\n return ret;\n }\n\n function resetLastChars() {\n twoLastChars[0] = twoLastChars[1] = \" \";\n twoLastCharsPos = 0;\n }\n\n // Used in addFakeSpaces.\n\n // A white <= fontSize * TRACKING_SPACE_FACTOR is a tracking space\n // so it doesn't count as a space.\n const TRACKING_SPACE_FACTOR = 0.1;\n\n // When a white <= fontSize * NOT_A_SPACE_FACTOR, there is no space\n // even if one is present in the text stream.\n const NOT_A_SPACE_FACTOR = 0.03;\n\n // A negative white < fontSize * NEGATIVE_SPACE_FACTOR induces\n // a break (a new chunk of text is created).\n // It doesn't change anything when the text is copied but\n // it improves potential mismatch between text layer and canvas.\n const NEGATIVE_SPACE_FACTOR = -0.2;\n\n // A white with a width in [fontSize * MIN_FACTOR; fontSize * MAX_FACTOR]\n // is a space which will be inserted in the current flow of words.\n // If the width is outside of this range then the flow is broken\n // (which means a new span in the text layer).\n // It's useful to adjust the best as possible the span in the layer\n // to what is displayed in the canvas.\n const SPACE_IN_FLOW_MIN_FACTOR = 0.1;\n const SPACE_IN_FLOW_MAX_FACTOR = 0.6;\n\n const self = this;\n const xref = this.xref;\n const showSpacedTextBuffer = [];\n\n // The xobj is parsed iff it's needed, e.g. if there is a `DO` cmd.\n let xobjs = null;\n const emptyXObjectCache = new LocalImageCache();\n const emptyGStateCache = new LocalGStateCache();\n\n const preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n\n let textState;\n\n function getCurrentTextTransform() {\n // 9.4.4 Text Space Details\n const font = textState.font;\n const tsm = [\n textState.fontSize * textState.textHScale,\n 0,\n 0,\n textState.fontSize,\n 0,\n textState.textRise,\n ];\n\n if (\n font.isType3Font &&\n (textState.fontSize <= 1 || font.isCharBBox) &&\n !isArrayEqual(textState.fontMatrix, FONT_IDENTITY_MATRIX)\n ) {\n const glyphHeight = font.bbox[3] - font.bbox[1];\n if (glyphHeight > 0) {\n tsm[3] *= glyphHeight * textState.fontMatrix[3];\n }\n }\n\n return Util.transform(\n textState.ctm,\n Util.transform(textState.textMatrix, tsm)\n );\n }\n\n function ensureTextContentItem() {\n if (textContentItem.initialized) {\n return textContentItem;\n }\n const font = textState.font,\n loadedName = font.loadedName;\n if (!seenStyles.has(loadedName)) {\n seenStyles.add(loadedName);\n\n textContent.styles[loadedName] = {\n fontFamily: font.fallbackName,\n ascent: font.ascent,\n descent: font.descent,\n vertical: font.vertical,\n };\n }\n textContentItem.fontName = loadedName;\n\n const trm = (textContentItem.transform = getCurrentTextTransform());\n if (!font.vertical) {\n textContentItem.width = textContentItem.totalWidth = 0;\n textContentItem.height = textContentItem.totalHeight = Math.hypot(\n trm[2],\n trm[3]\n );\n textContentItem.vertical = false;\n } else {\n textContentItem.width = textContentItem.totalWidth = Math.hypot(\n trm[0],\n trm[1]\n );\n textContentItem.height = textContentItem.totalHeight = 0;\n textContentItem.vertical = true;\n }\n\n const scaleLineX = Math.hypot(\n textState.textLineMatrix[0],\n textState.textLineMatrix[1]\n );\n const scaleCtmX = Math.hypot(textState.ctm[0], textState.ctm[1]);\n textContentItem.textAdvanceScale = scaleCtmX * scaleLineX;\n\n textContentItem.trackingSpaceMin =\n textState.fontSize * TRACKING_SPACE_FACTOR;\n textContentItem.notASpace = textState.fontSize * NOT_A_SPACE_FACTOR;\n textContentItem.negativeSpaceMax =\n textState.fontSize * NEGATIVE_SPACE_FACTOR;\n textContentItem.spaceInFlowMin =\n textState.fontSize * SPACE_IN_FLOW_MIN_FACTOR;\n textContentItem.spaceInFlowMax =\n textState.fontSize * SPACE_IN_FLOW_MAX_FACTOR;\n\n textContentItem.hasEOL = false;\n\n textContentItem.initialized = true;\n return textContentItem;\n }\n\n function updateAdvanceScale() {\n if (!textContentItem.initialized) {\n return;\n }\n\n const scaleLineX = Math.hypot(\n textState.textLineMatrix[0],\n textState.textLineMatrix[1]\n );\n const scaleCtmX = Math.hypot(textState.ctm[0], textState.ctm[1]);\n const scaleFactor = scaleCtmX * scaleLineX;\n if (scaleFactor === textContentItem.textAdvanceScale) {\n return;\n }\n\n if (!textContentItem.vertical) {\n textContentItem.totalWidth +=\n textContentItem.width * textContentItem.textAdvanceScale;\n textContentItem.width = 0;\n } else {\n textContentItem.totalHeight +=\n textContentItem.height * textContentItem.textAdvanceScale;\n textContentItem.height = 0;\n }\n\n textContentItem.textAdvanceScale = scaleFactor;\n }\n\n function runBidiTransform(textChunk) {\n const text = textChunk.str.join(\"\");\n const bidiResult = bidi(text, -1, textChunk.vertical);\n return {\n str: bidiResult.str,\n dir: bidiResult.dir,\n width: Math.abs(textChunk.totalWidth),\n height: Math.abs(textChunk.totalHeight),\n transform: textChunk.transform,\n fontName: textChunk.fontName,\n hasEOL: textChunk.hasEOL,\n };\n }\n\n function handleSetFont(fontName, fontRef) {\n return self\n .loadFont(fontName, fontRef, resources)\n .then(function (translated) {\n if (!translated.font.isType3Font) {\n return translated;\n }\n return translated\n .loadType3Data(self, resources, task)\n .catch(function () {\n // Ignore Type3-parsing errors, since we only use `loadType3Data`\n // here to ensure that we'll always obtain a useful /FontBBox.\n })\n .then(function () {\n return translated;\n });\n })\n .then(function (translated) {\n textState.font = translated.font;\n textState.fontMatrix =\n translated.font.fontMatrix || FONT_IDENTITY_MATRIX;\n });\n }\n\n function applyInverseRotation(x, y, matrix) {\n const scale = Math.hypot(matrix[0], matrix[1]);\n return [\n (matrix[0] * x + matrix[1] * y) / scale,\n (matrix[2] * x + matrix[3] * y) / scale,\n ];\n }\n\n function compareWithLastPosition() {\n const currentTransform = getCurrentTextTransform();\n let posX = currentTransform[4];\n let posY = currentTransform[5];\n\n const shiftedX = posX - viewBox[0];\n const shiftedY = posY - viewBox[1];\n\n if (\n shiftedX < 0 ||\n shiftedX > viewBox[2] ||\n shiftedY < 0 ||\n shiftedY > viewBox[3]\n ) {\n return false;\n }\n\n if (\n !combineTextItems ||\n !textState.font ||\n !textContentItem.prevTransform\n ) {\n return true;\n }\n\n let lastPosX = textContentItem.prevTransform[4];\n let lastPosY = textContentItem.prevTransform[5];\n\n if (lastPosX === posX && lastPosY === posY) {\n return true;\n }\n\n let rotate = -1;\n // Take into account the rotation is the current transform.\n if (\n currentTransform[0] &&\n currentTransform[1] === 0 &&\n currentTransform[2] === 0\n ) {\n rotate = currentTransform[0] > 0 ? 0 : 180;\n } else if (\n currentTransform[1] &&\n currentTransform[0] === 0 &&\n currentTransform[3] === 0\n ) {\n rotate = currentTransform[1] > 0 ? 90 : 270;\n }\n\n switch (rotate) {\n case 0:\n break;\n case 90:\n [posX, posY] = [posY, posX];\n [lastPosX, lastPosY] = [lastPosY, lastPosX];\n break;\n case 180:\n [posX, posY, lastPosX, lastPosY] = [\n -posX,\n -posY,\n -lastPosX,\n -lastPosY,\n ];\n break;\n case 270:\n [posX, posY] = [-posY, -posX];\n [lastPosX, lastPosY] = [-lastPosY, -lastPosX];\n break;\n default:\n // This is not a 0, 90, 180, 270 rotation so:\n // - remove the scale factor from the matrix to get a rotation matrix\n // - apply the inverse (which is the transposed) to the positions\n // and we can then compare positions of the glyphes to detect\n // a whitespace.\n [posX, posY] = applyInverseRotation(posX, posY, currentTransform);\n [lastPosX, lastPosY] = applyInverseRotation(\n lastPosX,\n lastPosY,\n textContentItem.prevTransform\n );\n }\n\n if (textState.font.vertical) {\n const advanceY = (lastPosY - posY) / textContentItem.textAdvanceScale;\n const advanceX = posX - lastPosX;\n\n // When the total height of the current chunk is negative\n // then we're writing from bottom to top.\n const textOrientation = Math.sign(textContentItem.height);\n if (advanceY < textOrientation * textContentItem.negativeSpaceMax) {\n if (\n Math.abs(advanceX) >\n 0.5 * textContentItem.width /* not the same column */\n ) {\n appendEOL();\n return true;\n }\n\n resetLastChars();\n flushTextContentItem();\n return true;\n }\n\n if (Math.abs(advanceX) > textContentItem.width) {\n appendEOL();\n return true;\n }\n\n if (advanceY <= textOrientation * textContentItem.notASpace) {\n // The real spacing between 2 consecutive chars is thin enough to be\n // considered a non-space.\n resetLastChars();\n }\n\n if (advanceY <= textOrientation * textContentItem.trackingSpaceMin) {\n textContentItem.height += advanceY;\n } else if (\n !addFakeSpaces(\n advanceY,\n textContentItem.prevTransform,\n textOrientation\n )\n ) {\n if (textContentItem.str.length === 0) {\n resetLastChars();\n textContent.items.push({\n str: \" \",\n dir: \"ltr\",\n width: 0,\n height: Math.abs(advanceY),\n transform: textContentItem.prevTransform,\n fontName: textContentItem.fontName,\n hasEOL: false,\n });\n } else {\n textContentItem.height += advanceY;\n }\n }\n\n return true;\n }\n\n const advanceX = (posX - lastPosX) / textContentItem.textAdvanceScale;\n const advanceY = posY - lastPosY;\n\n // When the total width of the current chunk is negative\n // then we're writing from right to left.\n const textOrientation = Math.sign(textContentItem.width);\n if (advanceX < textOrientation * textContentItem.negativeSpaceMax) {\n if (\n Math.abs(advanceY) >\n 0.5 * textContentItem.height /* not the same line */\n ) {\n appendEOL();\n return true;\n }\n\n // We're moving back so in case the last char was a whitespace\n // we cancel it: it doesn't make sense to insert it.\n resetLastChars();\n flushTextContentItem();\n return true;\n }\n\n if (Math.abs(advanceY) > textContentItem.height) {\n appendEOL();\n return true;\n }\n\n if (advanceX <= textOrientation * textContentItem.notASpace) {\n // The real spacing between 2 consecutive chars is thin enough to be\n // considered a non-space.\n resetLastChars();\n }\n\n if (advanceX <= textOrientation * textContentItem.trackingSpaceMin) {\n textContentItem.width += advanceX;\n } else if (\n !addFakeSpaces(advanceX, textContentItem.prevTransform, textOrientation)\n ) {\n if (textContentItem.str.length === 0) {\n resetLastChars();\n textContent.items.push({\n str: \" \",\n dir: \"ltr\",\n width: Math.abs(advanceX),\n height: 0,\n transform: textContentItem.prevTransform,\n fontName: textContentItem.fontName,\n hasEOL: false,\n });\n } else {\n textContentItem.width += advanceX;\n }\n }\n\n return true;\n }\n\n function buildTextContentItem({ chars, extraSpacing }) {\n const font = textState.font;\n if (!chars) {\n // Just move according to the space we have.\n const charSpacing = textState.charSpacing + extraSpacing;\n if (charSpacing) {\n if (!font.vertical) {\n textState.translateTextMatrix(\n charSpacing * textState.textHScale,\n 0\n );\n } else {\n textState.translateTextMatrix(0, -charSpacing);\n }\n }\n\n return;\n }\n\n const glyphs = font.charsToGlyphs(chars);\n const scale = textState.fontMatrix[0] * textState.fontSize;\n\n for (let i = 0, ii = glyphs.length; i < ii; i++) {\n const glyph = glyphs[i];\n if (glyph.isInvisibleFormatMark) {\n continue;\n }\n let charSpacing =\n textState.charSpacing + (i + 1 === ii ? extraSpacing : 0);\n\n let glyphWidth = glyph.width;\n if (font.vertical) {\n glyphWidth = glyph.vmetric ? glyph.vmetric[0] : -glyphWidth;\n }\n let scaledDim = glyphWidth * scale;\n\n if (glyph.isWhitespace) {\n // Don't push a \" \" in the textContentItem\n // (except when it's between two non-spaces chars),\n // it will be done (if required) in next call to\n // compareWithLastPosition.\n // This way we can merge real spaces and spaces due to cursor moves.\n if (!font.vertical) {\n charSpacing += scaledDim + textState.wordSpacing;\n textState.translateTextMatrix(\n charSpacing * textState.textHScale,\n 0\n );\n } else {\n charSpacing += -scaledDim + textState.wordSpacing;\n textState.translateTextMatrix(0, -charSpacing);\n }\n saveLastChar(\" \");\n continue;\n }\n\n if (!compareWithLastPosition()) {\n // The glyph is not in page so just skip it.\n continue;\n }\n\n // Must be called after compareWithLastPosition because\n // the textContentItem could have been flushed.\n const textChunk = ensureTextContentItem();\n if (glyph.isZeroWidthDiacritic) {\n scaledDim = 0;\n }\n\n if (!font.vertical) {\n scaledDim *= textState.textHScale;\n textState.translateTextMatrix(scaledDim, 0);\n textChunk.width += scaledDim;\n } else {\n textState.translateTextMatrix(0, scaledDim);\n scaledDim = Math.abs(scaledDim);\n textChunk.height += scaledDim;\n }\n\n if (scaledDim) {\n // Save the position of the last visible character.\n textChunk.prevTransform = getCurrentTextTransform();\n }\n\n let glyphUnicode = glyph.unicode;\n glyphUnicode = NormalizedUnicodes[glyphUnicode] || glyphUnicode;\n glyphUnicode = reverseIfRtl(glyphUnicode);\n if (saveLastChar(glyphUnicode)) {\n // The two last chars are a non-whitespace followed by a whitespace\n // and then this non-whitespace, so we insert a whitespace here.\n // Replaces all whitespaces with standard spaces (0x20), to avoid\n // alignment issues between the textLayer and the canvas if the text\n // contains e.g. tabs (fixes issue6612.pdf).\n textChunk.str.push(\" \");\n }\n textChunk.str.push(glyphUnicode);\n\n if (charSpacing) {\n if (!font.vertical) {\n textState.translateTextMatrix(\n charSpacing * textState.textHScale,\n 0\n );\n } else {\n textState.translateTextMatrix(0, -charSpacing);\n }\n }\n }\n }\n\n function appendEOL() {\n resetLastChars();\n if (textContentItem.initialized) {\n textContentItem.hasEOL = true;\n flushTextContentItem();\n } else {\n textContent.items.push({\n str: \"\",\n dir: \"ltr\",\n width: 0,\n height: 0,\n transform: getCurrentTextTransform(),\n fontName: textState.font.loadedName,\n hasEOL: true,\n });\n }\n }\n\n function addFakeSpaces(width, transf, textOrientation) {\n if (\n textOrientation * textContentItem.spaceInFlowMin <= width &&\n width <= textOrientation * textContentItem.spaceInFlowMax\n ) {\n if (textContentItem.initialized) {\n resetLastChars();\n textContentItem.str.push(\" \");\n }\n return false;\n }\n\n const fontName = textContentItem.fontName;\n\n let height = 0;\n if (textContentItem.vertical) {\n height = width;\n width = 0;\n }\n\n flushTextContentItem();\n resetLastChars();\n textContent.items.push({\n str: \" \",\n // TODO: check if using the orientation from last chunk is\n // better or not.\n dir: \"ltr\",\n width: Math.abs(width),\n height: Math.abs(height),\n transform: transf || getCurrentTextTransform(),\n fontName,\n hasEOL: false,\n });\n\n return true;\n }\n\n function flushTextContentItem() {\n if (!textContentItem.initialized || !textContentItem.str) {\n return;\n }\n\n // Do final text scaling.\n if (!textContentItem.vertical) {\n textContentItem.totalWidth +=\n textContentItem.width * textContentItem.textAdvanceScale;\n } else {\n textContentItem.totalHeight +=\n textContentItem.height * textContentItem.textAdvanceScale;\n }\n\n textContent.items.push(runBidiTransform(textContentItem));\n textContentItem.initialized = false;\n textContentItem.str.length = 0;\n }\n\n function enqueueChunk(batch = false) {\n const length = textContent.items.length;\n if (length === 0) {\n return;\n }\n if (batch && length < TEXT_CHUNK_BATCH_SIZE) {\n return;\n }\n sink.enqueue(textContent, length);\n textContent.items = [];\n textContent.styles = Object.create(null);\n }\n\n const timeSlotManager = new TimeSlotManager();\n\n return new Promise(function promiseBody(resolve, reject) {\n const next = function (promise) {\n enqueueChunk(/* batch = */ true);\n Promise.all([promise, sink.ready]).then(function () {\n try {\n promiseBody(resolve, reject);\n } catch (ex) {\n reject(ex);\n }\n }, reject);\n };\n task.ensureNotTerminated();\n timeSlotManager.reset();\n\n const operation = {};\n let stop,\n args = [];\n while (!(stop = timeSlotManager.check())) {\n // The arguments parsed by read() are not used beyond this loop, so\n // we can reuse the same array on every iteration, thus avoiding\n // unnecessary allocations.\n args.length = 0;\n operation.args = args;\n if (!preprocessor.read(operation)) {\n break;\n }\n textState = stateManager.state;\n const fn = operation.fn;\n args = operation.args;\n\n switch (fn | 0) {\n case OPS.setFont:\n // Optimization to ignore multiple identical Tf commands.\n var fontNameArg = args[0].name,\n fontSizeArg = args[1];\n if (\n textState.font &&\n fontNameArg === textState.fontName &&\n fontSizeArg === textState.fontSize\n ) {\n break;\n }\n\n flushTextContentItem();\n textState.fontName = fontNameArg;\n textState.fontSize = fontSizeArg;\n next(handleSetFont(fontNameArg, null));\n return;\n case OPS.setTextRise:\n textState.textRise = args[0];\n break;\n case OPS.setHScale:\n textState.textHScale = args[0] / 100;\n break;\n case OPS.setLeading:\n textState.leading = args[0];\n break;\n case OPS.moveText:\n textState.translateTextLineMatrix(args[0], args[1]);\n textState.textMatrix = textState.textLineMatrix.slice();\n break;\n case OPS.setLeadingMoveText:\n textState.leading = -args[1];\n textState.translateTextLineMatrix(args[0], args[1]);\n textState.textMatrix = textState.textLineMatrix.slice();\n break;\n case OPS.nextLine:\n textState.carriageReturn();\n break;\n case OPS.setTextMatrix:\n textState.setTextMatrix(\n args[0],\n args[1],\n args[2],\n args[3],\n args[4],\n args[5]\n );\n textState.setTextLineMatrix(\n args[0],\n args[1],\n args[2],\n args[3],\n args[4],\n args[5]\n );\n updateAdvanceScale();\n break;\n case OPS.setCharSpacing:\n textState.charSpacing = args[0];\n break;\n case OPS.setWordSpacing:\n textState.wordSpacing = args[0];\n break;\n case OPS.beginText:\n textState.textMatrix = IDENTITY_MATRIX.slice();\n textState.textLineMatrix = IDENTITY_MATRIX.slice();\n break;\n case OPS.showSpacedText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n const spaceFactor =\n ((textState.font.vertical ? 1 : -1) * textState.fontSize) / 1000;\n const elements = args[0];\n for (let i = 0, ii = elements.length; i < ii - 1; i++) {\n const item = elements[i];\n if (typeof item === \"string\") {\n showSpacedTextBuffer.push(item);\n } else if (typeof item === \"number\" && item !== 0) {\n // PDF Specification 5.3.2 states:\n // The number is expressed in thousandths of a unit of text\n // space.\n // This amount is subtracted from the current horizontal or\n // vertical coordinate, depending on the writing mode.\n // In the default coordinate system, a positive adjustment\n // has the effect of moving the next glyph painted either to\n // the left or down by the given amount.\n const str = showSpacedTextBuffer.join(\"\");\n showSpacedTextBuffer.length = 0;\n buildTextContentItem({\n chars: str,\n extraSpacing: item * spaceFactor,\n });\n }\n }\n\n const item = elements[elements.length - 1];\n if (typeof item === \"string\") {\n showSpacedTextBuffer.push(item);\n }\n\n if (showSpacedTextBuffer.length > 0) {\n const str = showSpacedTextBuffer.join(\"\");\n showSpacedTextBuffer.length = 0;\n buildTextContentItem({\n chars: str,\n extraSpacing: 0,\n });\n }\n break;\n case OPS.showText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n buildTextContentItem({\n chars: args[0],\n extraSpacing: 0,\n });\n break;\n case OPS.nextLineShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n textState.carriageReturn();\n buildTextContentItem({\n chars: args[0],\n extraSpacing: 0,\n });\n break;\n case OPS.nextLineSetSpacingShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n textState.wordSpacing = args[0];\n textState.charSpacing = args[1];\n textState.carriageReturn();\n buildTextContentItem({\n chars: args[2],\n extraSpacing: 0,\n });\n break;\n case OPS.paintXObject:\n flushTextContentItem();\n if (!xobjs) {\n xobjs = resources.get(\"XObject\") || Dict.empty;\n }\n\n var isValidName = args[0] instanceof Name;\n var name = args[0].name;\n\n if (isValidName && emptyXObjectCache.getByName(name)) {\n break;\n }\n\n next(\n new Promise(function (resolveXObject, rejectXObject) {\n if (!isValidName) {\n throw new FormatError(\"XObject must be referred to by name.\");\n }\n\n let xobj = xobjs.getRaw(name);\n if (xobj instanceof Ref) {\n if (emptyXObjectCache.getByRef(xobj)) {\n resolveXObject();\n return;\n }\n\n const globalImage = self.globalImageCache.getData(\n xobj,\n self.pageIndex\n );\n if (globalImage) {\n resolveXObject();\n return;\n }\n\n xobj = xref.fetch(xobj);\n }\n\n if (!(xobj instanceof BaseStream)) {\n throw new FormatError(\"XObject should be a stream\");\n }\n\n const type = xobj.dict.get(\"Subtype\");\n if (!(type instanceof Name)) {\n throw new FormatError(\"XObject should have a Name subtype\");\n }\n\n if (type.name !== \"Form\") {\n emptyXObjectCache.set(name, xobj.dict.objId, true);\n\n resolveXObject();\n return;\n }\n\n // Use a new `StateManager` to prevent incorrect positioning\n // of textItems *after* the Form XObject, since errors in the\n // data can otherwise prevent `restore` operators from\n // executing.\n // NOTE: Only an issue when `options.ignoreErrors === true`.\n const currentState = stateManager.state.clone();\n const xObjStateManager = new StateManager(currentState);\n\n const matrix = xobj.dict.getArray(\"Matrix\");\n if (Array.isArray(matrix) && matrix.length === 6) {\n xObjStateManager.transform(matrix);\n }\n\n // Enqueue the `textContent` chunk before parsing the /Form\n // XObject.\n enqueueChunk();\n const sinkWrapper = {\n enqueueInvoked: false,\n\n enqueue(chunk, size) {\n this.enqueueInvoked = true;\n sink.enqueue(chunk, size);\n },\n\n get desiredSize() {\n return sink.desiredSize;\n },\n\n get ready() {\n return sink.ready;\n },\n };\n\n self\n .getTextContent({\n stream: xobj,\n task,\n resources: xobj.dict.get(\"Resources\") || resources,\n stateManager: xObjStateManager,\n combineTextItems,\n includeMarkedContent,\n sink: sinkWrapper,\n seenStyles,\n viewBox,\n })\n .then(function () {\n if (!sinkWrapper.enqueueInvoked) {\n emptyXObjectCache.set(name, xobj.dict.objId, true);\n }\n resolveXObject();\n }, rejectXObject);\n }).catch(function (reason) {\n if (reason instanceof AbortException) {\n return;\n }\n if (self.options.ignoreErrors) {\n // Error(s) in the XObject -- allow text-extraction to\n // continue.\n warn(`getTextContent - ignoring XObject: \"${reason}\".`);\n return;\n }\n throw reason;\n })\n );\n return;\n case OPS.setGState:\n isValidName = args[0] instanceof Name;\n name = args[0].name;\n\n if (isValidName && emptyGStateCache.getByName(name)) {\n break;\n }\n\n next(\n new Promise(function (resolveGState, rejectGState) {\n if (!isValidName) {\n throw new FormatError(\"GState must be referred to by name.\");\n }\n\n const extGState = resources.get(\"ExtGState\");\n if (!(extGState instanceof Dict)) {\n throw new FormatError(\"ExtGState should be a dictionary.\");\n }\n\n const gState = extGState.get(name);\n // TODO: Attempt to lookup cached GStates by reference as well,\n // if and only if there are PDF documents where doing so\n // would significantly improve performance.\n if (!(gState instanceof Dict)) {\n throw new FormatError(\"GState should be a dictionary.\");\n }\n\n const gStateFont = gState.get(\"Font\");\n if (!gStateFont) {\n emptyGStateCache.set(name, gState.objId, true);\n\n resolveGState();\n return;\n }\n flushTextContentItem();\n\n textState.fontName = null;\n textState.fontSize = gStateFont[1];\n handleSetFont(null, gStateFont[0]).then(\n resolveGState,\n rejectGState\n );\n }).catch(function (reason) {\n if (reason instanceof AbortException) {\n return;\n }\n if (self.options.ignoreErrors) {\n // Error(s) in the ExtGState -- allow text-extraction to\n // continue.\n warn(`getTextContent - ignoring ExtGState: \"${reason}\".`);\n return;\n }\n throw reason;\n })\n );\n return;\n case OPS.beginMarkedContent:\n if (includeMarkedContent) {\n textContent.items.push({\n type: \"beginMarkedContent\",\n tag: args[0] instanceof Name ? args[0].name : null,\n });\n }\n break;\n case OPS.beginMarkedContentProps:\n if (includeMarkedContent) {\n flushTextContentItem();\n let mcid = null;\n if (args[1] instanceof Dict) {\n mcid = args[1].get(\"MCID\");\n }\n textContent.items.push({\n type: \"beginMarkedContentProps\",\n id: Number.isInteger(mcid)\n ? `${self.idFactory.getPageObjId()}_mcid${mcid}`\n : null,\n tag: args[0] instanceof Name ? args[0].name : null,\n });\n }\n break;\n case OPS.endMarkedContent:\n if (includeMarkedContent) {\n flushTextContentItem();\n textContent.items.push({\n type: \"endMarkedContent\",\n });\n }\n break;\n } // switch\n if (textContent.items.length >= sink.desiredSize) {\n // Wait for ready, if we reach highWaterMark.\n stop = true;\n break;\n }\n } // while\n if (stop) {\n next(deferred);\n return;\n }\n flushTextContentItem();\n enqueueChunk();\n resolve();\n }).catch(reason => {\n if (reason instanceof AbortException) {\n return;\n }\n if (this.options.ignoreErrors) {\n // Error(s) in the TextContent -- allow text-extraction to continue.\n warn(\n `getTextContent - ignoring errors during \"${task.name}\" ` +\n `task: \"${reason}\".`\n );\n\n flushTextContentItem();\n enqueueChunk();\n return;\n }\n throw reason;\n });\n }\n\n extractDataStructures(dict, baseDict, properties) {\n const xref = this.xref;\n let cidToGidBytes;\n // 9.10.2\n const toUnicodePromise = this.readToUnicode(\n properties.toUnicode || dict.get(\"ToUnicode\") || baseDict.get(\"ToUnicode\")\n );\n\n if (properties.composite) {\n // CIDSystemInfo helps to match CID to glyphs\n const cidSystemInfo = dict.get(\"CIDSystemInfo\");\n if (cidSystemInfo instanceof Dict) {\n properties.cidSystemInfo = {\n registry: stringToPDFString(cidSystemInfo.get(\"Registry\")),\n ordering: stringToPDFString(cidSystemInfo.get(\"Ordering\")),\n supplement: cidSystemInfo.get(\"Supplement\"),\n };\n }\n\n const cidToGidMap = dict.get(\"CIDToGIDMap\");\n if (cidToGidMap instanceof BaseStream) {\n cidToGidBytes = cidToGidMap.getBytes();\n }\n }\n\n // Based on 9.6.6 of the spec the encoding can come from multiple places\n // and depends on the font type. The base encoding and differences are\n // read here, but the encoding that is actually used is chosen during\n // glyph mapping in the font.\n // TODO: Loading the built in encoding in the font would allow the\n // differences to be merged in here not require us to hold on to it.\n const differences = [];\n let baseEncodingName = null;\n let encoding;\n if (dict.has(\"Encoding\")) {\n encoding = dict.get(\"Encoding\");\n if (encoding instanceof Dict) {\n baseEncodingName = encoding.get(\"BaseEncoding\");\n baseEncodingName =\n baseEncodingName instanceof Name ? baseEncodingName.name : null;\n // Load the differences between the base and original\n if (encoding.has(\"Differences\")) {\n const diffEncoding = encoding.get(\"Differences\");\n let index = 0;\n for (let j = 0, jj = diffEncoding.length; j < jj; j++) {\n const data = xref.fetchIfRef(diffEncoding[j]);\n if (typeof data === \"number\") {\n index = data;\n } else if (data instanceof Name) {\n differences[index++] = data.name;\n } else {\n throw new FormatError(\n `Invalid entry in 'Differences' array: ${data}`\n );\n }\n }\n }\n } else if (encoding instanceof Name) {\n baseEncodingName = encoding.name;\n } else {\n const msg = \"Encoding is not a Name nor a Dict\";\n\n if (!this.options.ignoreErrors) {\n throw new FormatError(msg);\n }\n warn(msg);\n }\n // According to table 114 if the encoding is a named encoding it must be\n // one of these predefined encodings.\n if (\n baseEncodingName !== \"MacRomanEncoding\" &&\n baseEncodingName !== \"MacExpertEncoding\" &&\n baseEncodingName !== \"WinAnsiEncoding\"\n ) {\n baseEncodingName = null;\n }\n }\n\n if (baseEncodingName) {\n properties.defaultEncoding = getEncoding(baseEncodingName);\n } else {\n const isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n const isNonsymbolicFont = !!(properties.flags & FontFlags.Nonsymbolic);\n // According to \"Table 114\" in section \"9.6.6.1 General\" (under\n // \"9.6.6 Character Encoding\") of the PDF specification, a Nonsymbolic\n // font should use the `StandardEncoding` if no encoding is specified.\n encoding = StandardEncoding;\n if (properties.type === \"TrueType\" && !isNonsymbolicFont) {\n encoding = WinAnsiEncoding;\n }\n // The Symbolic attribute can be misused for regular fonts\n // Heuristic: we have to check if the font is a standard one also\n if (isSymbolicFont) {\n encoding = MacRomanEncoding;\n if (!properties.file || properties.isInternalFont) {\n if (/Symbol/i.test(properties.name)) {\n encoding = SymbolSetEncoding;\n } else if (/Dingbats|Wingdings/i.test(properties.name)) {\n encoding = ZapfDingbatsEncoding;\n }\n }\n }\n properties.defaultEncoding = encoding;\n }\n\n properties.differences = differences;\n properties.baseEncodingName = baseEncodingName;\n properties.hasEncoding = !!baseEncodingName || differences.length > 0;\n properties.dict = dict;\n return toUnicodePromise\n .then(readToUnicode => {\n properties.toUnicode = readToUnicode;\n return this.buildToUnicode(properties);\n })\n .then(builtToUnicode => {\n properties.toUnicode = builtToUnicode;\n if (cidToGidBytes) {\n properties.cidToGidMap = this.readCidToGidMap(\n cidToGidBytes,\n builtToUnicode\n );\n }\n return properties;\n });\n }\n\n /**\n * @returns {Array}\n * @private\n */\n _simpleFontToUnicode(properties, forceGlyphs = false) {\n assert(!properties.composite, \"Must be a simple font.\");\n\n const toUnicode = [];\n const encoding = properties.defaultEncoding.slice();\n const baseEncodingName = properties.baseEncodingName;\n // Merge in the differences array.\n const differences = properties.differences;\n for (const charcode in differences) {\n const glyphName = differences[charcode];\n if (glyphName === \".notdef\") {\n // Skip .notdef to prevent rendering errors, e.g. boxes appearing\n // where there should be spaces (fixes issue5256.pdf).\n continue;\n }\n encoding[charcode] = glyphName;\n }\n const glyphsUnicodeMap = getGlyphsUnicode();\n for (const charcode in encoding) {\n // a) Map the character code to a character name.\n let glyphName = encoding[charcode];\n // b) Look up the character name in the Adobe Glyph List (see the\n // Bibliography) to obtain the corresponding Unicode value.\n if (glyphName === \"\") {\n continue;\n } else if (glyphsUnicodeMap[glyphName] === undefined) {\n // (undocumented) c) Few heuristics to recognize unknown glyphs\n // NOTE: Adobe Reader does not do this step, but OSX Preview does\n let code = 0;\n switch (glyphName[0]) {\n case \"G\": // Gxx glyph\n if (glyphName.length === 3) {\n code = parseInt(glyphName.substring(1), 16);\n }\n break;\n case \"g\": // g00xx glyph\n if (glyphName.length === 5) {\n code = parseInt(glyphName.substring(1), 16);\n }\n break;\n case \"C\": // Cdd{d} glyph\n case \"c\": // cdd{d} glyph\n if (glyphName.length >= 3 && glyphName.length <= 4) {\n const codeStr = glyphName.substring(1);\n\n if (forceGlyphs) {\n code = parseInt(codeStr, 16);\n break;\n }\n // Normally the Cdd{d}/cdd{d} glyphName format will contain\n // regular, i.e. base 10, charCodes (see issue4550.pdf)...\n code = +codeStr;\n\n // ... however some PDF generators violate that assumption by\n // containing glyph, i.e. base 16, codes instead.\n // In that case we need to re-parse the *entire* encoding to\n // prevent broken text-selection (fixes issue9655_reduced.pdf).\n if (\n Number.isNaN(code) &&\n Number.isInteger(parseInt(codeStr, 16))\n ) {\n return this._simpleFontToUnicode(\n properties,\n /* forceGlyphs */ true\n );\n }\n }\n break;\n default: // 'uniXXXX'/'uXXXX{XX}' glyphs\n const unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap);\n if (unicode !== -1) {\n code = unicode;\n }\n }\n if (code > 0 && code <= 0x10ffff && Number.isInteger(code)) {\n // If `baseEncodingName` is one the predefined encodings, and `code`\n // equals `charcode`, using the glyph defined in the baseEncoding\n // seems to yield a better `toUnicode` mapping (fixes issue 5070).\n if (baseEncodingName && code === +charcode) {\n const baseEncoding = getEncoding(baseEncodingName);\n if (baseEncoding && (glyphName = baseEncoding[charcode])) {\n toUnicode[charcode] = String.fromCharCode(\n glyphsUnicodeMap[glyphName]\n );\n continue;\n }\n }\n toUnicode[charcode] = String.fromCodePoint(code);\n }\n continue;\n }\n toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]);\n }\n return toUnicode;\n }\n\n /**\n * Builds a char code to unicode map based on section 9.10 of the spec.\n * @param {Object} properties Font properties object.\n * @returns {Promise} A Promise that is resolved with a\n * {ToUnicodeMap|IdentityToUnicodeMap} object.\n */\n async buildToUnicode(properties) {\n properties.hasIncludedToUnicodeMap =\n !!properties.toUnicode && properties.toUnicode.length > 0;\n\n // Section 9.10.2 Mapping Character Codes to Unicode Values\n if (properties.hasIncludedToUnicodeMap) {\n // Some fonts contain incomplete ToUnicode data, causing issues with\n // text-extraction. For simple fonts, containing encoding information,\n // use a fallback ToUnicode map to improve this (fixes issue8229.pdf).\n if (!properties.composite && properties.hasEncoding) {\n properties.fallbackToUnicode = this._simpleFontToUnicode(properties);\n }\n return properties.toUnicode;\n }\n\n // According to the spec if the font is a simple font we should only map\n // to unicode if the base encoding is MacRoman, MacExpert, or WinAnsi or\n // the differences array only contains adobe standard or symbol set names,\n // in pratice it seems better to always try to create a toUnicode map\n // based of the default encoding.\n if (!properties.composite /* is simple font */) {\n return new ToUnicodeMap(this._simpleFontToUnicode(properties));\n }\n\n // If the font is a composite font that uses one of the predefined CMaps\n // listed in Table 118 (except Identity–H and Identity–V) or whose\n // descendant CIDFont uses the Adobe-GB1, Adobe-CNS1, Adobe-Japan1, or\n // Adobe-Korea1 character collection:\n if (\n properties.composite &&\n ((properties.cMap.builtInCMap &&\n !(properties.cMap instanceof IdentityCMap)) ||\n (properties.cidSystemInfo.registry === \"Adobe\" &&\n (properties.cidSystemInfo.ordering === \"GB1\" ||\n properties.cidSystemInfo.ordering === \"CNS1\" ||\n properties.cidSystemInfo.ordering === \"Japan1\" ||\n properties.cidSystemInfo.ordering === \"Korea1\")))\n ) {\n // Then:\n // a) Map the character code to a character identifier (CID) according\n // to the font’s CMap.\n // b) Obtain the registry and ordering of the character collection used\n // by the font’s CMap (for example, Adobe and Japan1) from its\n // CIDSystemInfo dictionary.\n const { registry, ordering } = properties.cidSystemInfo;\n // c) Construct a second CMap name by concatenating the registry and\n // ordering obtained in step (b) in the format registry–ordering–UCS2\n // (for example, Adobe–Japan1–UCS2).\n const ucs2CMapName = Name.get(`${registry}-${ordering}-UCS2`);\n // d) Obtain the CMap with the name constructed in step (c) (available\n // from the ASN Web site; see the Bibliography).\n const ucs2CMap = await CMapFactory.create({\n encoding: ucs2CMapName,\n fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n useCMap: null,\n });\n const toUnicode = [];\n properties.cMap.forEach(function (charcode, cid) {\n if (cid > 0xffff) {\n throw new FormatError(\"Max size of CID is 65,535\");\n }\n // e) Map the CID obtained in step (a) according to the CMap\n // obtained in step (d), producing a Unicode value.\n const ucs2 = ucs2CMap.lookup(cid);\n if (ucs2) {\n toUnicode[charcode] = String.fromCharCode(\n (ucs2.charCodeAt(0) << 8) + ucs2.charCodeAt(1)\n );\n }\n });\n return new ToUnicodeMap(toUnicode);\n }\n\n // The viewer's choice, just use an identity map.\n return new IdentityToUnicodeMap(properties.firstChar, properties.lastChar);\n }\n\n readToUnicode(cmapObj) {\n if (!cmapObj) {\n return Promise.resolve(null);\n }\n if (cmapObj instanceof Name) {\n return CMapFactory.create({\n encoding: cmapObj,\n fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n useCMap: null,\n }).then(function (cmap) {\n if (cmap instanceof IdentityCMap) {\n return new IdentityToUnicodeMap(0, 0xffff);\n }\n return new ToUnicodeMap(cmap.getMap());\n });\n } else if (cmapObj instanceof BaseStream) {\n return CMapFactory.create({\n encoding: cmapObj,\n fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n useCMap: null,\n }).then(\n function (cmap) {\n if (cmap instanceof IdentityCMap) {\n return new IdentityToUnicodeMap(0, 0xffff);\n }\n const map = new Array(cmap.length);\n // Convert UTF-16BE\n // NOTE: cmap can be a sparse array, so use forEach instead of\n // `for(;;)` to iterate over all keys.\n cmap.forEach(function (charCode, token) {\n // Some cmaps contain *only* CID characters (fixes issue9367.pdf).\n if (typeof token === \"number\") {\n map[charCode] = String.fromCodePoint(token);\n return;\n }\n const str = [];\n for (let k = 0; k < token.length; k += 2) {\n const w1 = (token.charCodeAt(k) << 8) | token.charCodeAt(k + 1);\n if ((w1 & 0xf800) !== 0xd800) {\n // w1 < 0xD800 || w1 > 0xDFFF\n str.push(w1);\n continue;\n }\n k += 2;\n const w2 = (token.charCodeAt(k) << 8) | token.charCodeAt(k + 1);\n str.push(((w1 & 0x3ff) << 10) + (w2 & 0x3ff) + 0x10000);\n }\n map[charCode] = String.fromCodePoint.apply(String, str);\n });\n return new ToUnicodeMap(map);\n },\n reason => {\n if (reason instanceof AbortException) {\n return null;\n }\n if (this.options.ignoreErrors) {\n // Error in the ToUnicode data -- sending unsupported feature\n // notification and allow font parsing to continue.\n this.handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorFontToUnicode,\n });\n warn(`readToUnicode - ignoring ToUnicode data: \"${reason}\".`);\n return null;\n }\n throw reason;\n }\n );\n }\n return Promise.resolve(null);\n }\n\n readCidToGidMap(glyphsData, toUnicode) {\n // Extract the encoding from the CIDToGIDMap\n\n // Set encoding 0 to later verify the font has an encoding\n const result = [];\n for (let j = 0, jj = glyphsData.length; j < jj; j++) {\n const glyphID = (glyphsData[j++] << 8) | glyphsData[j];\n const code = j >> 1;\n if (glyphID === 0 && !toUnicode.has(code)) {\n continue;\n }\n result[code] = glyphID;\n }\n return result;\n }\n\n extractWidths(dict, descriptor, properties) {\n const xref = this.xref;\n let glyphsWidths = [];\n let defaultWidth = 0;\n const glyphsVMetrics = [];\n let defaultVMetrics;\n let i, ii, j, jj, start, code, widths;\n if (properties.composite) {\n defaultWidth = dict.has(\"DW\") ? dict.get(\"DW\") : 1000;\n\n widths = dict.get(\"W\");\n if (widths) {\n for (i = 0, ii = widths.length; i < ii; i++) {\n start = xref.fetchIfRef(widths[i++]);\n code = xref.fetchIfRef(widths[i]);\n if (Array.isArray(code)) {\n for (j = 0, jj = code.length; j < jj; j++) {\n glyphsWidths[start++] = xref.fetchIfRef(code[j]);\n }\n } else {\n const width = xref.fetchIfRef(widths[++i]);\n for (j = start; j <= code; j++) {\n glyphsWidths[j] = width;\n }\n }\n }\n }\n\n if (properties.vertical) {\n let vmetrics = dict.getArray(\"DW2\") || [880, -1000];\n defaultVMetrics = [vmetrics[1], defaultWidth * 0.5, vmetrics[0]];\n vmetrics = dict.get(\"W2\");\n if (vmetrics) {\n for (i = 0, ii = vmetrics.length; i < ii; i++) {\n start = xref.fetchIfRef(vmetrics[i++]);\n code = xref.fetchIfRef(vmetrics[i]);\n if (Array.isArray(code)) {\n for (j = 0, jj = code.length; j < jj; j++) {\n glyphsVMetrics[start++] = [\n xref.fetchIfRef(code[j++]),\n xref.fetchIfRef(code[j++]),\n xref.fetchIfRef(code[j]),\n ];\n }\n } else {\n const vmetric = [\n xref.fetchIfRef(vmetrics[++i]),\n xref.fetchIfRef(vmetrics[++i]),\n xref.fetchIfRef(vmetrics[++i]),\n ];\n for (j = start; j <= code; j++) {\n glyphsVMetrics[j] = vmetric;\n }\n }\n }\n }\n }\n } else {\n const firstChar = properties.firstChar;\n widths = dict.get(\"Widths\");\n if (widths) {\n j = firstChar;\n for (i = 0, ii = widths.length; i < ii; i++) {\n glyphsWidths[j++] = xref.fetchIfRef(widths[i]);\n }\n defaultWidth = parseFloat(descriptor.get(\"MissingWidth\")) || 0;\n } else {\n // Trying get the BaseFont metrics (see comment above).\n const baseFontName = dict.get(\"BaseFont\");\n if (baseFontName instanceof Name) {\n const metrics = this.getBaseFontMetrics(baseFontName.name);\n\n glyphsWidths = this.buildCharCodeToWidth(metrics.widths, properties);\n defaultWidth = metrics.defaultWidth;\n }\n }\n }\n\n // Heuristic: detection of monospace font by checking all non-zero widths\n let isMonospace = true;\n let firstWidth = defaultWidth;\n for (const glyph in glyphsWidths) {\n const glyphWidth = glyphsWidths[glyph];\n if (!glyphWidth) {\n continue;\n }\n if (!firstWidth) {\n firstWidth = glyphWidth;\n continue;\n }\n if (firstWidth !== glyphWidth) {\n isMonospace = false;\n break;\n }\n }\n if (isMonospace) {\n properties.flags |= FontFlags.FixedPitch;\n }\n\n properties.defaultWidth = defaultWidth;\n properties.widths = glyphsWidths;\n properties.defaultVMetrics = defaultVMetrics;\n properties.vmetrics = glyphsVMetrics;\n }\n\n isSerifFont(baseFontName) {\n // Simulating descriptor flags attribute\n const fontNameWoStyle = baseFontName.split(\"-\")[0];\n return (\n fontNameWoStyle in getSerifFonts() ||\n fontNameWoStyle.search(/serif/gi) !== -1\n );\n }\n\n getBaseFontMetrics(name) {\n let defaultWidth = 0;\n let widths = Object.create(null);\n let monospace = false;\n const stdFontMap = getStdFontMap();\n let lookupName = stdFontMap[name] || name;\n const Metrics = getMetrics();\n\n if (!(lookupName in Metrics)) {\n // Use default fonts for looking up font metrics if the passed\n // font is not a base font\n if (this.isSerifFont(name)) {\n lookupName = \"Times-Roman\";\n } else {\n lookupName = \"Helvetica\";\n }\n }\n const glyphWidths = Metrics[lookupName];\n\n if (typeof glyphWidths === \"number\") {\n defaultWidth = glyphWidths;\n monospace = true;\n } else {\n widths = glyphWidths(); // expand lazy widths array\n }\n\n return {\n defaultWidth,\n monospace,\n widths,\n };\n }\n\n buildCharCodeToWidth(widthsByGlyphName, properties) {\n const widths = Object.create(null);\n const differences = properties.differences;\n const encoding = properties.defaultEncoding;\n for (let charCode = 0; charCode < 256; charCode++) {\n if (charCode in differences && widthsByGlyphName[differences[charCode]]) {\n widths[charCode] = widthsByGlyphName[differences[charCode]];\n continue;\n }\n if (charCode in encoding && widthsByGlyphName[encoding[charCode]]) {\n widths[charCode] = widthsByGlyphName[encoding[charCode]];\n continue;\n }\n }\n return widths;\n }\n\n preEvaluateFont(dict) {\n const baseDict = dict;\n let type = dict.get(\"Subtype\");\n if (!(type instanceof Name)) {\n throw new FormatError(\"invalid font Subtype\");\n }\n\n let composite = false;\n let hash, toUnicode;\n if (type.name === \"Type0\") {\n // If font is a composite\n // - get the descendant font\n // - set the type according to the descendant font\n // - get the FontDescriptor from the descendant font\n const df = dict.get(\"DescendantFonts\");\n if (!df) {\n throw new FormatError(\"Descendant fonts are not specified\");\n }\n dict = Array.isArray(df) ? this.xref.fetchIfRef(df[0]) : df;\n\n if (!(dict instanceof Dict)) {\n throw new FormatError(\"Descendant font is not a dictionary.\");\n }\n type = dict.get(\"Subtype\");\n if (!(type instanceof Name)) {\n throw new FormatError(\"invalid font Subtype\");\n }\n composite = true;\n }\n\n const firstChar = dict.get(\"FirstChar\") || 0,\n lastChar = dict.get(\"LastChar\") || (composite ? 0xffff : 0xff);\n const descriptor = dict.get(\"FontDescriptor\");\n if (descriptor) {\n hash = new MurmurHash3_64();\n\n const encoding = baseDict.getRaw(\"Encoding\");\n if (encoding instanceof Name) {\n hash.update(encoding.name);\n } else if (encoding instanceof Ref) {\n hash.update(encoding.toString());\n } else if (encoding instanceof Dict) {\n for (const entry of encoding.getRawValues()) {\n if (entry instanceof Name) {\n hash.update(entry.name);\n } else if (entry instanceof Ref) {\n hash.update(entry.toString());\n } else if (Array.isArray(entry)) {\n // 'Differences' array (fixes bug1157493.pdf).\n const diffLength = entry.length,\n diffBuf = new Array(diffLength);\n\n for (let j = 0; j < diffLength; j++) {\n const diffEntry = entry[j];\n if (diffEntry instanceof Name) {\n diffBuf[j] = diffEntry.name;\n } else if (\n typeof diffEntry === \"number\" ||\n diffEntry instanceof Ref\n ) {\n diffBuf[j] = diffEntry.toString();\n }\n }\n hash.update(diffBuf.join());\n }\n }\n }\n\n hash.update(`${firstChar}-${lastChar}`); // Fixes issue10665_reduced.pdf\n\n toUnicode = dict.get(\"ToUnicode\") || baseDict.get(\"ToUnicode\");\n if (toUnicode instanceof BaseStream) {\n const stream = toUnicode.str || toUnicode;\n const uint8array = stream.buffer\n ? new Uint8Array(stream.buffer.buffer, 0, stream.bufferLength)\n : new Uint8Array(\n stream.bytes.buffer,\n stream.start,\n stream.end - stream.start\n );\n hash.update(uint8array);\n } else if (toUnicode instanceof Name) {\n hash.update(toUnicode.name);\n }\n\n const widths = dict.get(\"Widths\") || baseDict.get(\"Widths\");\n if (Array.isArray(widths)) {\n const widthsBuf = [];\n for (const entry of widths) {\n if (typeof entry === \"number\" || entry instanceof Ref) {\n widthsBuf.push(entry.toString());\n }\n }\n hash.update(widthsBuf.join());\n }\n\n if (composite) {\n hash.update(\"compositeFont\");\n\n const compositeWidths = dict.get(\"W\") || baseDict.get(\"W\");\n if (Array.isArray(compositeWidths)) {\n const widthsBuf = [];\n for (const entry of compositeWidths) {\n if (typeof entry === \"number\" || entry instanceof Ref) {\n widthsBuf.push(entry.toString());\n } else if (Array.isArray(entry)) {\n const subWidthsBuf = [];\n for (const element of entry) {\n if (typeof element === \"number\" || element instanceof Ref) {\n subWidthsBuf.push(element.toString());\n }\n }\n widthsBuf.push(`[${subWidthsBuf.join()}]`);\n }\n }\n hash.update(widthsBuf.join());\n }\n\n const cidToGidMap =\n dict.getRaw(\"CIDToGIDMap\") || baseDict.getRaw(\"CIDToGIDMap\");\n if (cidToGidMap instanceof Name) {\n hash.update(cidToGidMap.name);\n } else if (cidToGidMap instanceof Ref) {\n hash.update(cidToGidMap.toString());\n } else if (cidToGidMap instanceof BaseStream) {\n hash.update(cidToGidMap.peekBytes());\n }\n }\n }\n\n return {\n descriptor,\n dict,\n baseDict,\n composite,\n type: type.name,\n firstChar,\n lastChar,\n toUnicode,\n hash: hash ? hash.hexdigest() : \"\",\n };\n }\n\n async translateFont({\n descriptor,\n dict,\n baseDict,\n composite,\n type,\n firstChar,\n lastChar,\n toUnicode,\n cssFontInfo,\n }) {\n const isType3Font = type === \"Type3\";\n let properties;\n\n if (!descriptor) {\n if (isType3Font) {\n // FontDescriptor is only required for Type3 fonts when the document\n // is a tagged pdf. Create a barbebones one to get by.\n descriptor = new Dict(null);\n descriptor.set(\"FontName\", Name.get(type));\n descriptor.set(\"FontBBox\", dict.getArray(\"FontBBox\") || [0, 0, 0, 0]);\n } else {\n // Before PDF 1.5 if the font was one of the base 14 fonts, having a\n // FontDescriptor was not required.\n // This case is here for compatibility.\n let baseFontName = dict.get(\"BaseFont\");\n if (!(baseFontName instanceof Name)) {\n throw new FormatError(\"Base font is not specified\");\n }\n\n // Using base font name as a font name.\n baseFontName = baseFontName.name.replace(/[,_]/g, \"-\");\n const metrics = this.getBaseFontMetrics(baseFontName);\n\n // Simulating descriptor flags attribute\n const fontNameWoStyle = baseFontName.split(\"-\")[0];\n const flags =\n (this.isSerifFont(fontNameWoStyle) ? FontFlags.Serif : 0) |\n (metrics.monospace ? FontFlags.FixedPitch : 0) |\n (getSymbolsFonts()[fontNameWoStyle]\n ? FontFlags.Symbolic\n : FontFlags.Nonsymbolic);\n\n properties = {\n type,\n name: baseFontName,\n loadedName: baseDict.loadedName,\n widths: metrics.widths,\n defaultWidth: metrics.defaultWidth,\n isSimulatedFlags: true,\n flags,\n firstChar,\n lastChar,\n toUnicode,\n xHeight: 0,\n capHeight: 0,\n italicAngle: 0,\n isType3Font,\n };\n const widths = dict.get(\"Widths\");\n\n const standardFontName = getStandardFontName(baseFontName);\n let file = null;\n if (standardFontName) {\n properties.isStandardFont = true;\n file = await this.fetchStandardFontData(standardFontName);\n properties.isInternalFont = !!file;\n }\n return this.extractDataStructures(dict, dict, properties).then(\n newProperties => {\n if (widths) {\n const glyphWidths = [];\n let j = firstChar;\n for (let i = 0, ii = widths.length; i < ii; i++) {\n glyphWidths[j++] = this.xref.fetchIfRef(widths[i]);\n }\n newProperties.widths = glyphWidths;\n } else {\n newProperties.widths = this.buildCharCodeToWidth(\n metrics.widths,\n newProperties\n );\n }\n return new Font(baseFontName, file, newProperties);\n }\n );\n }\n }\n\n // According to the spec if 'FontDescriptor' is declared, 'FirstChar',\n // 'LastChar' and 'Widths' should exist too, but some PDF encoders seem\n // to ignore this rule when a variant of a standard font is used.\n // TODO Fill the width array depending on which of the base font this is\n // a variant.\n\n let fontName = descriptor.get(\"FontName\");\n let baseFont = dict.get(\"BaseFont\");\n // Some bad PDFs have a string as the font name.\n if (typeof fontName === \"string\") {\n fontName = Name.get(fontName);\n }\n if (typeof baseFont === \"string\") {\n baseFont = Name.get(baseFont);\n }\n\n if (!isType3Font) {\n const fontNameStr = fontName && fontName.name;\n const baseFontStr = baseFont && baseFont.name;\n if (fontNameStr !== baseFontStr) {\n info(\n `The FontDescriptor's FontName is \"${fontNameStr}\" but ` +\n `should be the same as the Font's BaseFont \"${baseFontStr}\".`\n );\n // Workaround for cases where e.g. fontNameStr = 'Arial' and\n // baseFontStr = 'Arial,Bold' (needed when no font file is embedded).\n if (fontNameStr && baseFontStr && baseFontStr.startsWith(fontNameStr)) {\n fontName = baseFont;\n }\n }\n }\n fontName = fontName || baseFont;\n\n if (!(fontName instanceof Name)) {\n throw new FormatError(\"invalid font name\");\n }\n\n let fontFile, subtype, length1, length2, length3;\n try {\n fontFile = descriptor.get(\"FontFile\", \"FontFile2\", \"FontFile3\");\n } catch (ex) {\n if (!this.options.ignoreErrors) {\n throw ex;\n }\n warn(`translateFont - fetching \"${fontName.name}\" font file: \"${ex}\".`);\n fontFile = new NullStream();\n }\n let isStandardFont = false;\n let isInternalFont = false;\n let glyphScaleFactors = null;\n if (fontFile) {\n if (fontFile.dict) {\n const subtypeEntry = fontFile.dict.get(\"Subtype\");\n if (subtypeEntry instanceof Name) {\n subtype = subtypeEntry.name;\n }\n length1 = fontFile.dict.get(\"Length1\");\n length2 = fontFile.dict.get(\"Length2\");\n length3 = fontFile.dict.get(\"Length3\");\n }\n } else if (cssFontInfo) {\n // We've a missing XFA font.\n const standardFontName = getXfaFontName(fontName.name);\n if (standardFontName) {\n cssFontInfo.fontFamily = `${cssFontInfo.fontFamily}-PdfJS-XFA`;\n cssFontInfo.metrics = standardFontName.metrics || null;\n glyphScaleFactors = standardFontName.factors || null;\n fontFile = await this.fetchStandardFontData(standardFontName.name);\n isInternalFont = !!fontFile;\n\n // We're using a substitution font but for example widths (if any)\n // are related to the glyph positions in the font.\n // So we overwrite everything here to be sure that widths are\n // correct.\n baseDict = dict = getXfaFontDict(fontName.name);\n composite = true;\n }\n } else if (!isType3Font) {\n const standardFontName = getStandardFontName(fontName.name);\n if (standardFontName) {\n isStandardFont = true;\n fontFile = await this.fetchStandardFontData(standardFontName);\n isInternalFont = !!fontFile;\n }\n }\n\n properties = {\n type,\n name: fontName.name,\n subtype,\n file: fontFile,\n length1,\n length2,\n length3,\n isStandardFont,\n isInternalFont,\n loadedName: baseDict.loadedName,\n composite,\n fixedPitch: false,\n fontMatrix: dict.getArray(\"FontMatrix\") || FONT_IDENTITY_MATRIX,\n firstChar,\n lastChar,\n toUnicode,\n bbox: descriptor.getArray(\"FontBBox\") || dict.getArray(\"FontBBox\"),\n ascent: descriptor.get(\"Ascent\"),\n descent: descriptor.get(\"Descent\"),\n xHeight: descriptor.get(\"XHeight\") || 0,\n capHeight: descriptor.get(\"CapHeight\") || 0,\n flags: descriptor.get(\"Flags\"),\n italicAngle: descriptor.get(\"ItalicAngle\") || 0,\n isType3Font,\n cssFontInfo,\n scaleFactors: glyphScaleFactors,\n };\n\n if (composite) {\n const cidEncoding = baseDict.get(\"Encoding\");\n if (cidEncoding instanceof Name) {\n properties.cidEncoding = cidEncoding.name;\n }\n const cMap = await CMapFactory.create({\n encoding: cidEncoding,\n fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n useCMap: null,\n });\n properties.cMap = cMap;\n properties.vertical = properties.cMap.vertical;\n }\n\n return this.extractDataStructures(dict, baseDict, properties).then(\n newProperties => {\n this.extractWidths(dict, descriptor, newProperties);\n\n return new Font(fontName.name, fontFile, newProperties);\n }\n );\n }\n\n static buildFontPaths(font, glyphs, handler, evaluatorOptions) {\n function buildPath(fontChar) {\n const glyphName = `${font.loadedName}_path_${fontChar}`;\n try {\n if (font.renderer.hasBuiltPath(fontChar)) {\n return;\n }\n handler.send(\"commonobj\", [\n glyphName,\n \"FontPath\",\n font.renderer.getPathJs(fontChar),\n ]);\n } catch (reason) {\n if (evaluatorOptions.ignoreErrors) {\n // Error in the font data -- sending unsupported feature notification\n // and allow glyph path building to continue.\n handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.errorFontBuildPath,\n });\n warn(`buildFontPaths - ignoring ${glyphName} glyph: \"${reason}\".`);\n return;\n }\n throw reason;\n }\n }\n\n for (const glyph of glyphs) {\n buildPath(glyph.fontChar);\n\n // If the glyph has an accent we need to build a path for its\n // fontChar too, otherwise CanvasGraphics_paintChar will fail.\n const accent = glyph.accent;\n if (accent && accent.fontChar) {\n buildPath(accent.fontChar);\n }\n }\n }\n\n static get fallbackFontDict() {\n const dict = new Dict();\n dict.set(\"BaseFont\", Name.get(\"PDFJS-FallbackFont\"));\n dict.set(\"Type\", Name.get(\"FallbackType\"));\n dict.set(\"Subtype\", Name.get(\"FallbackType\"));\n dict.set(\"Encoding\", Name.get(\"WinAnsiEncoding\"));\n\n return shadow(this, \"fallbackFontDict\", dict);\n }\n}\n\nclass TranslatedFont {\n constructor({ loadedName, font, dict, evaluatorOptions }) {\n this.loadedName = loadedName;\n this.font = font;\n this.dict = dict;\n this._evaluatorOptions = evaluatorOptions || DefaultPartialEvaluatorOptions;\n this.type3Loaded = null;\n this.type3Dependencies = font.isType3Font ? new Set() : null;\n this.sent = false;\n }\n\n send(handler) {\n if (this.sent) {\n return;\n }\n this.sent = true;\n\n handler.send(\"commonobj\", [\n this.loadedName,\n \"Font\",\n this.font.exportData(this._evaluatorOptions.fontExtraProperties),\n ]);\n }\n\n fallback(handler) {\n if (!this.font.data) {\n return;\n }\n // When font loading failed, fall back to the built-in font renderer.\n this.font.disableFontFace = true;\n // An arbitrary number of text rendering operators could have been\n // encountered between the point in time when the 'Font' message was sent\n // to the main-thread, and the point in time when the 'FontFallback'\n // message was received on the worker-thread.\n // To ensure that all 'FontPath's are available on the main-thread, when\n // font loading failed, attempt to resend *all* previously parsed glyphs.\n PartialEvaluator.buildFontPaths(\n this.font,\n /* glyphs = */ this.font.glyphCacheValues,\n handler,\n this._evaluatorOptions\n );\n }\n\n loadType3Data(evaluator, resources, task) {\n if (this.type3Loaded) {\n return this.type3Loaded;\n }\n if (!this.font.isType3Font) {\n throw new Error(\"Must be a Type3 font.\");\n }\n // When parsing Type3 glyphs, always ignore them if there are errors.\n // Compared to the parsing of e.g. an entire page, it doesn't really\n // make sense to only be able to render a Type3 glyph partially.\n const type3Evaluator = evaluator.clone({ ignoreErrors: false });\n type3Evaluator.parsingType3Font = true;\n // Prevent circular references in Type3 fonts.\n const type3FontRefs = new RefSet(evaluator.type3FontRefs);\n if (this.dict.objId && !type3FontRefs.has(this.dict.objId)) {\n type3FontRefs.put(this.dict.objId);\n }\n type3Evaluator.type3FontRefs = type3FontRefs;\n\n const translatedFont = this.font,\n type3Dependencies = this.type3Dependencies;\n let loadCharProcsPromise = Promise.resolve();\n const charProcs = this.dict.get(\"CharProcs\");\n const fontResources = this.dict.get(\"Resources\") || resources;\n const charProcOperatorList = Object.create(null);\n\n const isEmptyBBox =\n !translatedFont.bbox || isArrayEqual(translatedFont.bbox, [0, 0, 0, 0]);\n\n for (const key of charProcs.getKeys()) {\n loadCharProcsPromise = loadCharProcsPromise.then(() => {\n const glyphStream = charProcs.get(key);\n const operatorList = new OperatorList();\n return type3Evaluator\n .getOperatorList({\n stream: glyphStream,\n task,\n resources: fontResources,\n operatorList,\n })\n .then(() => {\n // According to the PDF specification, section \"9.6.5 Type 3 Fonts\"\n // and \"Table 113\":\n // \"A glyph description that begins with the d1 operator should\n // not execute any operators that set the colour (or other\n // colour-related parameters) in the graphics state;\n // any use of such operators shall be ignored.\"\n if (operatorList.fnArray[0] === OPS.setCharWidthAndBounds) {\n this._removeType3ColorOperators(operatorList, isEmptyBBox);\n }\n charProcOperatorList[key] = operatorList.getIR();\n\n for (const dependency of operatorList.dependencies) {\n type3Dependencies.add(dependency);\n }\n })\n .catch(function (reason) {\n warn(`Type3 font resource \"${key}\" is not available.`);\n const dummyOperatorList = new OperatorList();\n charProcOperatorList[key] = dummyOperatorList.getIR();\n });\n });\n }\n this.type3Loaded = loadCharProcsPromise.then(() => {\n translatedFont.charProcOperatorList = charProcOperatorList;\n if (this._bbox) {\n translatedFont.isCharBBox = true;\n translatedFont.bbox = this._bbox;\n }\n });\n return this.type3Loaded;\n }\n\n /**\n * @private\n */\n _removeType3ColorOperators(operatorList, isEmptyBBox = false) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n operatorList.fnArray[0] === OPS.setCharWidthAndBounds,\n \"Type3 glyph shall start with the d1 operator.\"\n );\n }\n if (isEmptyBBox) {\n if (!this._bbox) {\n this._bbox = [Infinity, Infinity, -Infinity, -Infinity];\n }\n const charBBox = Util.normalizeRect(operatorList.argsArray[0].slice(2));\n\n this._bbox[0] = Math.min(this._bbox[0], charBBox[0]);\n this._bbox[1] = Math.min(this._bbox[1], charBBox[1]);\n this._bbox[2] = Math.max(this._bbox[2], charBBox[2]);\n this._bbox[3] = Math.max(this._bbox[3], charBBox[3]);\n }\n let i = 1,\n ii = operatorList.length;\n while (i < ii) {\n switch (operatorList.fnArray[i]) {\n case OPS.setStrokeColorSpace:\n case OPS.setFillColorSpace:\n case OPS.setStrokeColor:\n case OPS.setStrokeColorN:\n case OPS.setFillColor:\n case OPS.setFillColorN:\n case OPS.setStrokeGray:\n case OPS.setFillGray:\n case OPS.setStrokeRGBColor:\n case OPS.setFillRGBColor:\n case OPS.setStrokeCMYKColor:\n case OPS.setFillCMYKColor:\n case OPS.shadingFill:\n case OPS.setRenderingIntent:\n operatorList.fnArray.splice(i, 1);\n operatorList.argsArray.splice(i, 1);\n ii--;\n continue;\n\n case OPS.setGState:\n const [gStateObj] = operatorList.argsArray[i];\n let j = 0,\n jj = gStateObj.length;\n while (j < jj) {\n const [gStateKey] = gStateObj[j];\n switch (gStateKey) {\n case \"TR\":\n case \"TR2\":\n case \"HT\":\n case \"BG\":\n case \"BG2\":\n case \"UCR\":\n case \"UCR2\":\n gStateObj.splice(j, 1);\n jj--;\n continue;\n }\n j++;\n }\n break;\n }\n i++;\n }\n }\n}\n\nclass StateManager {\n constructor(initialState = new EvalState()) {\n this.state = initialState;\n this.stateStack = [];\n }\n\n save() {\n const old = this.state;\n this.stateStack.push(this.state);\n this.state = old.clone();\n }\n\n restore() {\n const prev = this.stateStack.pop();\n if (prev) {\n this.state = prev;\n }\n }\n\n transform(args) {\n this.state.ctm = Util.transform(this.state.ctm, args);\n }\n}\n\nclass TextState {\n constructor() {\n this.ctm = new Float32Array(IDENTITY_MATRIX);\n this.fontName = null;\n this.fontSize = 0;\n this.font = null;\n this.fontMatrix = FONT_IDENTITY_MATRIX.slice();\n this.textMatrix = IDENTITY_MATRIX.slice();\n this.textLineMatrix = IDENTITY_MATRIX.slice();\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.leading = 0;\n this.textHScale = 1;\n this.textRise = 0;\n }\n\n setTextMatrix(a, b, c, d, e, f) {\n const m = this.textMatrix;\n m[0] = a;\n m[1] = b;\n m[2] = c;\n m[3] = d;\n m[4] = e;\n m[5] = f;\n }\n\n setTextLineMatrix(a, b, c, d, e, f) {\n const m = this.textLineMatrix;\n m[0] = a;\n m[1] = b;\n m[2] = c;\n m[3] = d;\n m[4] = e;\n m[5] = f;\n }\n\n translateTextMatrix(x, y) {\n const m = this.textMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n }\n\n translateTextLineMatrix(x, y) {\n const m = this.textLineMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n }\n\n carriageReturn() {\n this.translateTextLineMatrix(0, -this.leading);\n this.textMatrix = this.textLineMatrix.slice();\n }\n\n clone() {\n const clone = Object.create(this);\n clone.textMatrix = this.textMatrix ? this.textMatrix.slice() : IDENTITY_MATRIX.slice();\n clone.textLineMatrix = this.textLineMatrix ? this.textLineMatrix.slice() : IDENTITY_MATRIX.slice();\n clone.fontMatrix = this.fontMatrix ? this.fontMatrix.slice() : FONT_IDENTITY_MATRIX.slice();\n return clone;\n }\n}\n\nclass EvalState {\n constructor() {\n this.ctm = new Float32Array(IDENTITY_MATRIX);\n this.font = null;\n this.textRenderingMode = TextRenderingMode.FILL;\n this.fillColorSpace = ColorSpace.singletons.gray;\n this.strokeColorSpace = ColorSpace.singletons.gray;\n }\n\n clone() {\n return Object.create(this);\n }\n}\n\nclass EvaluatorPreprocessor {\n static get opMap() {\n // Specifies properties for each command\n //\n // If variableArgs === true: [0, `numArgs`] expected\n // If variableArgs === false: exactly `numArgs` expected\n const getOPMap = getLookupTableFactory(function (t) {\n // Graphic state\n t.w = { id: OPS.setLineWidth, numArgs: 1, variableArgs: false };\n t.J = { id: OPS.setLineCap, numArgs: 1, variableArgs: false };\n t.j = { id: OPS.setLineJoin, numArgs: 1, variableArgs: false };\n t.M = { id: OPS.setMiterLimit, numArgs: 1, variableArgs: false };\n t.d = { id: OPS.setDash, numArgs: 2, variableArgs: false };\n t.ri = { id: OPS.setRenderingIntent, numArgs: 1, variableArgs: false };\n t.i = { id: OPS.setFlatness, numArgs: 1, variableArgs: false };\n t.gs = { id: OPS.setGState, numArgs: 1, variableArgs: false };\n t.q = { id: OPS.save, numArgs: 0, variableArgs: false };\n t.Q = { id: OPS.restore, numArgs: 0, variableArgs: false };\n t.cm = { id: OPS.transform, numArgs: 6, variableArgs: false };\n\n // Path\n t.m = { id: OPS.moveTo, numArgs: 2, variableArgs: false };\n t.l = { id: OPS.lineTo, numArgs: 2, variableArgs: false };\n t.c = { id: OPS.curveTo, numArgs: 6, variableArgs: false };\n t.v = { id: OPS.curveTo2, numArgs: 4, variableArgs: false };\n t.y = { id: OPS.curveTo3, numArgs: 4, variableArgs: false };\n t.h = { id: OPS.closePath, numArgs: 0, variableArgs: false };\n t.re = { id: OPS.rectangle, numArgs: 4, variableArgs: false };\n t.S = { id: OPS.stroke, numArgs: 0, variableArgs: false };\n t.s = { id: OPS.closeStroke, numArgs: 0, variableArgs: false };\n t.f = { id: OPS.fill, numArgs: 0, variableArgs: false };\n t.F = { id: OPS.fill, numArgs: 0, variableArgs: false };\n t[\"f*\"] = { id: OPS.eoFill, numArgs: 0, variableArgs: false };\n t.B = { id: OPS.fillStroke, numArgs: 0, variableArgs: false };\n t[\"B*\"] = { id: OPS.eoFillStroke, numArgs: 0, variableArgs: false };\n t.b = { id: OPS.closeFillStroke, numArgs: 0, variableArgs: false };\n t[\"b*\"] = { id: OPS.closeEOFillStroke, numArgs: 0, variableArgs: false };\n t.n = { id: OPS.endPath, numArgs: 0, variableArgs: false };\n\n // Clipping\n t.W = { id: OPS.clip, numArgs: 0, variableArgs: false };\n t[\"W*\"] = { id: OPS.eoClip, numArgs: 0, variableArgs: false };\n\n // Text\n t.BT = { id: OPS.beginText, numArgs: 0, variableArgs: false };\n t.ET = { id: OPS.endText, numArgs: 0, variableArgs: false };\n t.Tc = { id: OPS.setCharSpacing, numArgs: 1, variableArgs: false };\n t.Tw = { id: OPS.setWordSpacing, numArgs: 1, variableArgs: false };\n t.Tz = { id: OPS.setHScale, numArgs: 1, variableArgs: false };\n t.TL = { id: OPS.setLeading, numArgs: 1, variableArgs: false };\n t.Tf = { id: OPS.setFont, numArgs: 2, variableArgs: false };\n t.Tr = { id: OPS.setTextRenderingMode, numArgs: 1, variableArgs: false };\n t.Ts = { id: OPS.setTextRise, numArgs: 1, variableArgs: false };\n t.Td = { id: OPS.moveText, numArgs: 2, variableArgs: false };\n t.TD = { id: OPS.setLeadingMoveText, numArgs: 2, variableArgs: false };\n t.Tm = { id: OPS.setTextMatrix, numArgs: 6, variableArgs: false };\n t[\"T*\"] = { id: OPS.nextLine, numArgs: 0, variableArgs: false };\n t.Tj = { id: OPS.showText, numArgs: 1, variableArgs: false };\n t.TJ = { id: OPS.showSpacedText, numArgs: 1, variableArgs: false };\n t[\"'\"] = { id: OPS.nextLineShowText, numArgs: 1, variableArgs: false };\n t['\"'] = {\n id: OPS.nextLineSetSpacingShowText,\n numArgs: 3,\n variableArgs: false,\n };\n\n // Type3 fonts\n t.d0 = { id: OPS.setCharWidth, numArgs: 2, variableArgs: false };\n t.d1 = {\n id: OPS.setCharWidthAndBounds,\n numArgs: 6,\n variableArgs: false,\n };\n\n // Color\n t.CS = { id: OPS.setStrokeColorSpace, numArgs: 1, variableArgs: false };\n t.cs = { id: OPS.setFillColorSpace, numArgs: 1, variableArgs: false };\n t.SC = { id: OPS.setStrokeColor, numArgs: 4, variableArgs: true };\n t.SCN = { id: OPS.setStrokeColorN, numArgs: 33, variableArgs: true };\n t.sc = { id: OPS.setFillColor, numArgs: 4, variableArgs: true };\n t.scn = { id: OPS.setFillColorN, numArgs: 33, variableArgs: true };\n t.G = { id: OPS.setStrokeGray, numArgs: 1, variableArgs: false };\n t.g = { id: OPS.setFillGray, numArgs: 1, variableArgs: false };\n t.RG = { id: OPS.setStrokeRGBColor, numArgs: 3, variableArgs: false };\n t.rg = { id: OPS.setFillRGBColor, numArgs: 3, variableArgs: false };\n t.K = { id: OPS.setStrokeCMYKColor, numArgs: 4, variableArgs: false };\n t.k = { id: OPS.setFillCMYKColor, numArgs: 4, variableArgs: false };\n\n // Shading\n t.sh = { id: OPS.shadingFill, numArgs: 1, variableArgs: false };\n\n // Images\n t.BI = { id: OPS.beginInlineImage, numArgs: 0, variableArgs: false };\n t.ID = { id: OPS.beginImageData, numArgs: 0, variableArgs: false };\n t.EI = { id: OPS.endInlineImage, numArgs: 1, variableArgs: false };\n\n // XObjects\n t.Do = { id: OPS.paintXObject, numArgs: 1, variableArgs: false };\n t.MP = { id: OPS.markPoint, numArgs: 1, variableArgs: false };\n t.DP = { id: OPS.markPointProps, numArgs: 2, variableArgs: false };\n t.BMC = { id: OPS.beginMarkedContent, numArgs: 1, variableArgs: false };\n t.BDC = {\n id: OPS.beginMarkedContentProps,\n numArgs: 2,\n variableArgs: false,\n };\n t.EMC = { id: OPS.endMarkedContent, numArgs: 0, variableArgs: false };\n\n // Compatibility\n t.BX = { id: OPS.beginCompat, numArgs: 0, variableArgs: false };\n t.EX = { id: OPS.endCompat, numArgs: 0, variableArgs: false };\n\n // (reserved partial commands for the lexer)\n t.BM = null;\n t.BD = null;\n t.true = null;\n t.fa = null;\n t.fal = null;\n t.fals = null;\n t.false = null;\n t.nu = null;\n t.nul = null;\n t.null = null;\n });\n\n return shadow(this, \"opMap\", getOPMap());\n }\n\n static get MAX_INVALID_PATH_OPS() {\n return shadow(this, \"MAX_INVALID_PATH_OPS\", 10);\n }\n\n constructor(stream, xref, stateManager = new StateManager()) {\n // TODO(mduan): pass array of knownCommands rather than this.opMap\n // dictionary\n this.parser = new Parser({\n lexer: new Lexer(stream, EvaluatorPreprocessor.opMap),\n xref,\n });\n this.stateManager = stateManager;\n this.nonProcessedArgs = [];\n this._numInvalidPathOPS = 0;\n }\n\n get savedStatesDepth() {\n return this.stateManager.stateStack.length;\n }\n\n // |operation| is an object with two fields:\n //\n // - |fn| is an out param.\n //\n // - |args| is an inout param. On entry, it should have one of two values.\n //\n // - An empty array. This indicates that the caller is providing the\n // array in which the args will be stored in. The caller should use\n // this value if it can reuse a single array for each call to read().\n //\n // - |null|. This indicates that the caller needs this function to create\n // the array in which any args are stored in. If there are zero args,\n // this function will leave |operation.args| as |null| (thus avoiding\n // allocations that would occur if we used an empty array to represent\n // zero arguments). Otherwise, it will replace |null| with a new array\n // containing the arguments. The caller should use this value if it\n // cannot reuse an array for each call to read().\n //\n // These two modes are present because this function is very hot and so\n // avoiding allocations where possible is worthwhile.\n //\n read(operation) {\n let args = operation.args;\n while (true) {\n const obj = this.parser.getObj();\n if (obj instanceof Cmd) {\n const cmd = obj.cmd;\n // Check that the command is valid\n const opSpec = EvaluatorPreprocessor.opMap[cmd];\n if (!opSpec) {\n warn(`Unknown command \"${cmd}\".`);\n continue;\n }\n\n const fn = opSpec.id;\n const numArgs = opSpec.numArgs;\n let argsLength = args !== null ? args.length : 0;\n\n if (!opSpec.variableArgs) {\n // Postscript commands can be nested, e.g. /F2 /GS2 gs 5.711 Tf\n if (argsLength !== numArgs) {\n const nonProcessedArgs = this.nonProcessedArgs;\n while (argsLength > numArgs) {\n nonProcessedArgs.push(args.shift());\n argsLength--;\n }\n while (argsLength < numArgs && nonProcessedArgs.length !== 0) {\n if (args === null) {\n args = [];\n }\n args.unshift(nonProcessedArgs.pop());\n argsLength++;\n }\n }\n\n if (argsLength < numArgs) {\n const partialMsg =\n `command ${cmd}: expected ${numArgs} args, ` +\n `but received ${argsLength} args.`;\n\n // Incomplete path operators, in particular, can result in fairly\n // chaotic rendering artifacts. Hence the following heuristics is\n // used to error, rather than just warn, once a number of invalid\n // path operators have been encountered (fixes bug1443140.pdf).\n if (\n fn >= OPS.moveTo &&\n fn <= OPS.endPath && // Path operator\n ++this._numInvalidPathOPS >\n EvaluatorPreprocessor.MAX_INVALID_PATH_OPS\n ) {\n throw new FormatError(`Invalid ${partialMsg}`);\n }\n // If we receive too few arguments, it's not possible to execute\n // the command, hence we skip the command.\n warn(`Skipping ${partialMsg}`);\n if (args !== null) {\n args.length = 0;\n }\n continue;\n }\n } else if (argsLength > numArgs) {\n info(\n `Command ${cmd}: expected [0, ${numArgs}] args, ` +\n `but received ${argsLength} args.`\n );\n }\n\n // TODO figure out how to type-check vararg functions\n this.preprocessCommand(fn, args);\n\n operation.fn = fn;\n operation.args = args;\n return true;\n }\n if (obj === EOF) {\n return false; // no more commands\n }\n // argument\n if (obj !== null) {\n if (args === null) {\n args = [];\n }\n args.push(obj);\n if (args.length > 33) {\n throw new FormatError(\"Too many arguments\");\n }\n }\n }\n }\n\n preprocessCommand(fn, args) {\n switch (fn | 0) {\n case OPS.save:\n this.stateManager.save();\n break;\n case OPS.restore:\n this.stateManager.restore();\n break;\n case OPS.transform:\n this.stateManager.transform(args);\n break;\n }\n }\n}\n\nexport { EvaluatorPreprocessor, PartialEvaluator, StateManager, TextState };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n CMapCompressionType,\n FormatError,\n unreachable,\n warn,\n} from \"../shared/util.js\";\nimport { Cmd, EOF, isCmd, Name } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { Lexer } from \"./parser.js\";\nimport { MissingDataException } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\n\nconst BUILT_IN_CMAPS = [\n // << Start unicode maps.\n \"Adobe-GB1-UCS2\",\n \"Adobe-CNS1-UCS2\",\n \"Adobe-Japan1-UCS2\",\n \"Adobe-Korea1-UCS2\",\n // >> End unicode maps.\n \"78-EUC-H\",\n \"78-EUC-V\",\n \"78-H\",\n \"78-RKSJ-H\",\n \"78-RKSJ-V\",\n \"78-V\",\n \"78ms-RKSJ-H\",\n \"78ms-RKSJ-V\",\n \"83pv-RKSJ-H\",\n \"90ms-RKSJ-H\",\n \"90ms-RKSJ-V\",\n \"90msp-RKSJ-H\",\n \"90msp-RKSJ-V\",\n \"90pv-RKSJ-H\",\n \"90pv-RKSJ-V\",\n \"Add-H\",\n \"Add-RKSJ-H\",\n \"Add-RKSJ-V\",\n \"Add-V\",\n \"Adobe-CNS1-0\",\n \"Adobe-CNS1-1\",\n \"Adobe-CNS1-2\",\n \"Adobe-CNS1-3\",\n \"Adobe-CNS1-4\",\n \"Adobe-CNS1-5\",\n \"Adobe-CNS1-6\",\n \"Adobe-GB1-0\",\n \"Adobe-GB1-1\",\n \"Adobe-GB1-2\",\n \"Adobe-GB1-3\",\n \"Adobe-GB1-4\",\n \"Adobe-GB1-5\",\n \"Adobe-Japan1-0\",\n \"Adobe-Japan1-1\",\n \"Adobe-Japan1-2\",\n \"Adobe-Japan1-3\",\n \"Adobe-Japan1-4\",\n \"Adobe-Japan1-5\",\n \"Adobe-Japan1-6\",\n \"Adobe-Korea1-0\",\n \"Adobe-Korea1-1\",\n \"Adobe-Korea1-2\",\n \"B5-H\",\n \"B5-V\",\n \"B5pc-H\",\n \"B5pc-V\",\n \"CNS-EUC-H\",\n \"CNS-EUC-V\",\n \"CNS1-H\",\n \"CNS1-V\",\n \"CNS2-H\",\n \"CNS2-V\",\n \"ETHK-B5-H\",\n \"ETHK-B5-V\",\n \"ETen-B5-H\",\n \"ETen-B5-V\",\n \"ETenms-B5-H\",\n \"ETenms-B5-V\",\n \"EUC-H\",\n \"EUC-V\",\n \"Ext-H\",\n \"Ext-RKSJ-H\",\n \"Ext-RKSJ-V\",\n \"Ext-V\",\n \"GB-EUC-H\",\n \"GB-EUC-V\",\n \"GB-H\",\n \"GB-V\",\n \"GBK-EUC-H\",\n \"GBK-EUC-V\",\n \"GBK2K-H\",\n \"GBK2K-V\",\n \"GBKp-EUC-H\",\n \"GBKp-EUC-V\",\n \"GBT-EUC-H\",\n \"GBT-EUC-V\",\n \"GBT-H\",\n \"GBT-V\",\n \"GBTpc-EUC-H\",\n \"GBTpc-EUC-V\",\n \"GBpc-EUC-H\",\n \"GBpc-EUC-V\",\n \"H\",\n \"HKdla-B5-H\",\n \"HKdla-B5-V\",\n \"HKdlb-B5-H\",\n \"HKdlb-B5-V\",\n \"HKgccs-B5-H\",\n \"HKgccs-B5-V\",\n \"HKm314-B5-H\",\n \"HKm314-B5-V\",\n \"HKm471-B5-H\",\n \"HKm471-B5-V\",\n \"HKscs-B5-H\",\n \"HKscs-B5-V\",\n \"Hankaku\",\n \"Hiragana\",\n \"KSC-EUC-H\",\n \"KSC-EUC-V\",\n \"KSC-H\",\n \"KSC-Johab-H\",\n \"KSC-Johab-V\",\n \"KSC-V\",\n \"KSCms-UHC-H\",\n \"KSCms-UHC-HW-H\",\n \"KSCms-UHC-HW-V\",\n \"KSCms-UHC-V\",\n \"KSCpc-EUC-H\",\n \"KSCpc-EUC-V\",\n \"Katakana\",\n \"NWP-H\",\n \"NWP-V\",\n \"RKSJ-H\",\n \"RKSJ-V\",\n \"Roman\",\n \"UniCNS-UCS2-H\",\n \"UniCNS-UCS2-V\",\n \"UniCNS-UTF16-H\",\n \"UniCNS-UTF16-V\",\n \"UniCNS-UTF32-H\",\n \"UniCNS-UTF32-V\",\n \"UniCNS-UTF8-H\",\n \"UniCNS-UTF8-V\",\n \"UniGB-UCS2-H\",\n \"UniGB-UCS2-V\",\n \"UniGB-UTF16-H\",\n \"UniGB-UTF16-V\",\n \"UniGB-UTF32-H\",\n \"UniGB-UTF32-V\",\n \"UniGB-UTF8-H\",\n \"UniGB-UTF8-V\",\n \"UniJIS-UCS2-H\",\n \"UniJIS-UCS2-HW-H\",\n \"UniJIS-UCS2-HW-V\",\n \"UniJIS-UCS2-V\",\n \"UniJIS-UTF16-H\",\n \"UniJIS-UTF16-V\",\n \"UniJIS-UTF32-H\",\n \"UniJIS-UTF32-V\",\n \"UniJIS-UTF8-H\",\n \"UniJIS-UTF8-V\",\n \"UniJIS2004-UTF16-H\",\n \"UniJIS2004-UTF16-V\",\n \"UniJIS2004-UTF32-H\",\n \"UniJIS2004-UTF32-V\",\n \"UniJIS2004-UTF8-H\",\n \"UniJIS2004-UTF8-V\",\n \"UniJISPro-UCS2-HW-V\",\n \"UniJISPro-UCS2-V\",\n \"UniJISPro-UTF8-V\",\n \"UniJISX0213-UTF32-H\",\n \"UniJISX0213-UTF32-V\",\n \"UniJISX02132004-UTF32-H\",\n \"UniJISX02132004-UTF32-V\",\n \"UniKS-UCS2-H\",\n \"UniKS-UCS2-V\",\n \"UniKS-UTF16-H\",\n \"UniKS-UTF16-V\",\n \"UniKS-UTF32-H\",\n \"UniKS-UTF32-V\",\n \"UniKS-UTF8-H\",\n \"UniKS-UTF8-V\",\n \"V\",\n \"WP-Symbol\",\n];\n\n// Heuristic to avoid hanging the worker-thread for CMap data with ridiculously\n// large ranges, such as e.g. 0xFFFFFFFF (fixes issue11922_reduced.pdf).\nconst MAX_MAP_RANGE = 2 ** 24 - 1; // = 0xFFFFFF\n\n// CMap, not to be confused with TrueType's cmap.\nclass CMap {\n constructor(builtInCMap = false) {\n // Codespace ranges are stored as follows:\n // [[1BytePairs], [2BytePairs], [3BytePairs], [4BytePairs]]\n // where nBytePairs are ranges e.g. [low1, high1, low2, high2, ...]\n this.codespaceRanges = [[], [], [], []];\n this.numCodespaceRanges = 0;\n // Map entries have one of two forms.\n // - cid chars are 16-bit unsigned integers, stored as integers.\n // - bf chars are variable-length byte sequences, stored as strings, with\n // one byte per character.\n this._map = [];\n this.name = \"\";\n this.vertical = false;\n this.useCMap = null;\n this.builtInCMap = builtInCMap;\n }\n\n addCodespaceRange(n, low, high) {\n this.codespaceRanges[n - 1].push(low, high);\n this.numCodespaceRanges++;\n }\n\n mapCidRange(low, high, dstLow) {\n if (high - low > MAX_MAP_RANGE) {\n throw new Error(\"mapCidRange - ignoring data above MAX_MAP_RANGE.\");\n }\n while (low <= high) {\n this._map[low++] = dstLow++;\n }\n }\n\n mapBfRange(low, high, dstLow) {\n if (high - low > MAX_MAP_RANGE) {\n throw new Error(\"mapBfRange - ignoring data above MAX_MAP_RANGE.\");\n }\n const lastByte = dstLow.length - 1;\n while (low <= high) {\n this._map[low++] = dstLow;\n // Only the last byte has to be incremented (in the normal case).\n const nextCharCode = dstLow.charCodeAt(lastByte) + 1;\n if (nextCharCode > 0xff) {\n dstLow =\n dstLow.substring(0, lastByte - 1) +\n String.fromCharCode(dstLow.charCodeAt(lastByte - 1) + 1) +\n \"\\x00\";\n continue;\n }\n dstLow =\n dstLow.substring(0, lastByte) + String.fromCharCode(nextCharCode);\n }\n }\n\n mapBfRangeToArray(low, high, array) {\n if (high - low > MAX_MAP_RANGE) {\n throw new Error(\"mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.\");\n }\n const ii = array.length;\n let i = 0;\n while (low <= high && i < ii) {\n this._map[low] = array[i++];\n ++low;\n }\n }\n\n // This is used for both bf and cid chars.\n mapOne(src, dst) {\n this._map[src] = dst;\n }\n\n lookup(code) {\n return this._map[code];\n }\n\n contains(code) {\n return this._map[code] !== undefined;\n }\n\n forEach(callback) {\n // Most maps have fewer than 65536 entries, and for those we use normal\n // array iteration. But really sparse tables are possible -- e.g. with\n // indices in the *billions*. For such tables we use for..in, which isn't\n // ideal because it stringifies the indices for all present elements, but\n // it does avoid iterating over every undefined entry.\n const map = this._map;\n const length = map.length;\n if (length <= 0x10000) {\n for (let i = 0; i < length; i++) {\n if (map[i] !== undefined) {\n callback(i, map[i]);\n }\n }\n } else {\n for (const i in map) {\n callback(i, map[i]);\n }\n }\n }\n\n charCodeOf(value) {\n // `Array.prototype.indexOf` is *extremely* inefficient for arrays which\n // are both very sparse and very large (see issue8372.pdf).\n const map = this._map;\n if (map.length <= 0x10000) {\n return map.indexOf(value);\n }\n for (const charCode in map) {\n if (map[charCode] === value) {\n return charCode | 0;\n }\n }\n return -1;\n }\n\n getMap() {\n return this._map;\n }\n\n readCharCode(str, offset, out) {\n let c = 0;\n const codespaceRanges = this.codespaceRanges;\n // 9.7.6.2 CMap Mapping\n // The code length is at most 4.\n for (let n = 0, nn = codespaceRanges.length; n < nn; n++) {\n c = ((c << 8) | str.charCodeAt(offset + n)) >>> 0;\n // Check each codespace range to see if it falls within.\n const codespaceRange = codespaceRanges[n];\n for (let k = 0, kk = codespaceRange.length; k < kk; ) {\n const low = codespaceRange[k++];\n const high = codespaceRange[k++];\n if (c >= low && c <= high) {\n out.charcode = c;\n out.length = n + 1;\n return;\n }\n }\n }\n out.charcode = 0;\n out.length = 1;\n }\n\n getCharCodeLength(charCode) {\n const codespaceRanges = this.codespaceRanges;\n for (let n = 0, nn = codespaceRanges.length; n < nn; n++) {\n // Check each codespace range to see if it falls within.\n const codespaceRange = codespaceRanges[n];\n for (let k = 0, kk = codespaceRange.length; k < kk; ) {\n const low = codespaceRange[k++];\n const high = codespaceRange[k++];\n if (charCode >= low && charCode <= high) {\n return n + 1;\n }\n }\n }\n return 1;\n }\n\n get length() {\n return this._map.length;\n }\n\n get isIdentityCMap() {\n if (!(this.name === \"Identity-H\" || this.name === \"Identity-V\")) {\n return false;\n }\n if (this._map.length !== 0x10000) {\n return false;\n }\n for (let i = 0; i < 0x10000; i++) {\n if (this._map[i] !== i) {\n return false;\n }\n }\n return true;\n }\n}\n\n// A special case of CMap, where the _map array implicitly has a length of\n// 65536 and each element is equal to its index.\nclass IdentityCMap extends CMap {\n constructor(vertical, n) {\n super();\n\n this.vertical = vertical;\n this.addCodespaceRange(n, 0, 0xffff);\n }\n\n mapCidRange(low, high, dstLow) {\n unreachable(\"should not call mapCidRange\");\n }\n\n mapBfRange(low, high, dstLow) {\n unreachable(\"should not call mapBfRange\");\n }\n\n mapBfRangeToArray(low, high, array) {\n unreachable(\"should not call mapBfRangeToArray\");\n }\n\n mapOne(src, dst) {\n unreachable(\"should not call mapCidOne\");\n }\n\n lookup(code) {\n return Number.isInteger(code) && code <= 0xffff ? code : undefined;\n }\n\n contains(code) {\n return Number.isInteger(code) && code <= 0xffff;\n }\n\n forEach(callback) {\n for (let i = 0; i <= 0xffff; i++) {\n callback(i, i);\n }\n }\n\n charCodeOf(value) {\n return Number.isInteger(value) && value <= 0xffff ? value : -1;\n }\n\n getMap() {\n // Sometimes identity maps must be instantiated, but it's rare.\n const map = new Array(0x10000);\n for (let i = 0; i <= 0xffff; i++) {\n map[i] = i;\n }\n return map;\n }\n\n get length() {\n return 0x10000;\n }\n\n // eslint-disable-next-line getter-return\n get isIdentityCMap() {\n unreachable(\"should not access .isIdentityCMap\");\n }\n}\n\nconst BinaryCMapReader = (function BinaryCMapReaderClosure() {\n function hexToInt(a, size) {\n let n = 0;\n for (let i = 0; i <= size; i++) {\n n = (n << 8) | a[i];\n }\n return n >>> 0;\n }\n\n function hexToStr(a, size) {\n // This code is hot. Special-case some common values to avoid creating an\n // object with subarray().\n if (size === 1) {\n return String.fromCharCode(a[0], a[1]);\n }\n if (size === 3) {\n return String.fromCharCode(a[0], a[1], a[2], a[3]);\n }\n return String.fromCharCode.apply(null, a.subarray(0, size + 1));\n }\n\n function addHex(a, b, size) {\n let c = 0;\n for (let i = size; i >= 0; i--) {\n c += a[i] + b[i];\n a[i] = c & 255;\n c >>= 8;\n }\n }\n\n function incHex(a, size) {\n let c = 1;\n for (let i = size; i >= 0 && c > 0; i--) {\n c += a[i];\n a[i] = c & 255;\n c >>= 8;\n }\n }\n\n const MAX_NUM_SIZE = 16;\n const MAX_ENCODED_NUM_SIZE = 19; // ceil(MAX_NUM_SIZE * 7 / 8)\n\n class BinaryCMapStream {\n constructor(data) {\n this.buffer = data;\n this.pos = 0;\n this.end = data.length;\n this.tmpBuf = new Uint8Array(MAX_ENCODED_NUM_SIZE);\n }\n\n readByte() {\n if (this.pos >= this.end) {\n return -1;\n }\n return this.buffer[this.pos++];\n }\n\n readNumber() {\n let n = 0;\n let last;\n do {\n const b = this.readByte();\n if (b < 0) {\n throw new FormatError(\"unexpected EOF in bcmap\");\n }\n last = !(b & 0x80);\n n = (n << 7) | (b & 0x7f);\n } while (!last);\n return n;\n }\n\n readSigned() {\n const n = this.readNumber();\n return n & 1 ? ~(n >>> 1) : n >>> 1;\n }\n\n readHex(num, size) {\n num.set(this.buffer.subarray(this.pos, this.pos + size + 1));\n this.pos += size + 1;\n }\n\n readHexNumber(num, size) {\n let last;\n const stack = this.tmpBuf;\n let sp = 0;\n do {\n const b = this.readByte();\n if (b < 0) {\n throw new FormatError(\"unexpected EOF in bcmap\");\n }\n last = !(b & 0x80);\n stack[sp++] = b & 0x7f;\n } while (!last);\n let i = size,\n buffer = 0,\n bufferSize = 0;\n while (i >= 0) {\n while (bufferSize < 8 && stack.length > 0) {\n buffer |= stack[--sp] << bufferSize;\n bufferSize += 7;\n }\n num[i] = buffer & 255;\n i--;\n buffer >>= 8;\n bufferSize -= 8;\n }\n }\n\n readHexSigned(num, size) {\n this.readHexNumber(num, size);\n const sign = num[size] & 1 ? 255 : 0;\n let c = 0;\n for (let i = 0; i <= size; i++) {\n c = ((c & 1) << 8) | num[i];\n num[i] = (c >> 1) ^ sign;\n }\n }\n\n readString() {\n const len = this.readNumber();\n let s = \"\";\n for (let i = 0; i < len; i++) {\n s += String.fromCharCode(this.readNumber());\n }\n return s;\n }\n }\n\n // eslint-disable-next-line no-shadow\n class BinaryCMapReader {\n async process(data, cMap, extend) {\n const stream = new BinaryCMapStream(data);\n const header = stream.readByte();\n cMap.vertical = !!(header & 1);\n\n let useCMap = null;\n const start = new Uint8Array(MAX_NUM_SIZE);\n const end = new Uint8Array(MAX_NUM_SIZE);\n const char = new Uint8Array(MAX_NUM_SIZE);\n const charCode = new Uint8Array(MAX_NUM_SIZE);\n const tmp = new Uint8Array(MAX_NUM_SIZE);\n let code;\n\n let b;\n while ((b = stream.readByte()) >= 0) {\n const type = b >> 5;\n if (type === 7) {\n // metadata, e.g. comment or usecmap\n switch (b & 0x1f) {\n case 0:\n stream.readString(); // skipping comment\n break;\n case 1:\n useCMap = stream.readString();\n break;\n }\n continue;\n }\n const sequence = !!(b & 0x10);\n const dataSize = b & 15;\n\n if (dataSize + 1 > MAX_NUM_SIZE) {\n throw new Error(\"BinaryCMapReader.process: Invalid dataSize.\");\n }\n\n const ucs2DataSize = 1;\n const subitemsCount = stream.readNumber();\n switch (type) {\n case 0: // codespacerange\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n cMap.addCodespaceRange(\n dataSize + 1,\n hexToInt(start, dataSize),\n hexToInt(end, dataSize)\n );\n for (let i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n cMap.addCodespaceRange(\n dataSize + 1,\n hexToInt(start, dataSize),\n hexToInt(end, dataSize)\n );\n }\n break;\n case 1: // notdefrange\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n stream.readNumber(); // code\n // undefined range, skipping\n for (let i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n stream.readNumber(); // code\n // nop\n }\n break;\n case 2: // cidchar\n stream.readHex(char, dataSize);\n code = stream.readNumber();\n cMap.mapOne(hexToInt(char, dataSize), code);\n for (let i = 1; i < subitemsCount; i++) {\n incHex(char, dataSize);\n if (!sequence) {\n stream.readHexNumber(tmp, dataSize);\n addHex(char, tmp, dataSize);\n }\n code = stream.readSigned() + (code + 1);\n cMap.mapOne(hexToInt(char, dataSize), code);\n }\n break;\n case 3: // cidrange\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n code = stream.readNumber();\n cMap.mapCidRange(\n hexToInt(start, dataSize),\n hexToInt(end, dataSize),\n code\n );\n for (let i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n if (!sequence) {\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n } else {\n start.set(end);\n }\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n code = stream.readNumber();\n cMap.mapCidRange(\n hexToInt(start, dataSize),\n hexToInt(end, dataSize),\n code\n );\n }\n break;\n case 4: // bfchar\n stream.readHex(char, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapOne(\n hexToInt(char, ucs2DataSize),\n hexToStr(charCode, dataSize)\n );\n for (let i = 1; i < subitemsCount; i++) {\n incHex(char, ucs2DataSize);\n if (!sequence) {\n stream.readHexNumber(tmp, ucs2DataSize);\n addHex(char, tmp, ucs2DataSize);\n }\n incHex(charCode, dataSize);\n stream.readHexSigned(tmp, dataSize);\n addHex(charCode, tmp, dataSize);\n cMap.mapOne(\n hexToInt(char, ucs2DataSize),\n hexToStr(charCode, dataSize)\n );\n }\n break;\n case 5: // bfrange\n stream.readHex(start, ucs2DataSize);\n stream.readHexNumber(end, ucs2DataSize);\n addHex(end, start, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapBfRange(\n hexToInt(start, ucs2DataSize),\n hexToInt(end, ucs2DataSize),\n hexToStr(charCode, dataSize)\n );\n for (let i = 1; i < subitemsCount; i++) {\n incHex(end, ucs2DataSize);\n if (!sequence) {\n stream.readHexNumber(start, ucs2DataSize);\n addHex(start, end, ucs2DataSize);\n } else {\n start.set(end);\n }\n stream.readHexNumber(end, ucs2DataSize);\n addHex(end, start, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapBfRange(\n hexToInt(start, ucs2DataSize),\n hexToInt(end, ucs2DataSize),\n hexToStr(charCode, dataSize)\n );\n }\n break;\n default:\n throw new Error(`BinaryCMapReader.process - unknown type: ${type}`);\n }\n }\n\n if (useCMap) {\n return extend(useCMap);\n }\n return cMap;\n }\n }\n\n return BinaryCMapReader;\n})();\n\nconst CMapFactory = (function CMapFactoryClosure() {\n function strToInt(str) {\n let a = 0;\n for (let i = 0; i < str.length; i++) {\n a = (a << 8) | str.charCodeAt(i);\n }\n return a >>> 0;\n }\n\n function expectString(obj) {\n if (typeof obj !== \"string\") {\n throw new FormatError(\"Malformed CMap: expected string.\");\n }\n }\n\n function expectInt(obj) {\n if (!Number.isInteger(obj)) {\n throw new FormatError(\"Malformed CMap: expected int.\");\n }\n }\n\n function parseBfChar(cMap, lexer) {\n while (true) {\n let obj = lexer.getObj();\n if (obj === EOF) {\n break;\n }\n if (isCmd(obj, \"endbfchar\")) {\n return;\n }\n expectString(obj);\n const src = strToInt(obj);\n obj = lexer.getObj();\n // TODO are /dstName used?\n expectString(obj);\n const dst = obj;\n cMap.mapOne(src, dst);\n }\n }\n\n function parseBfRange(cMap, lexer) {\n while (true) {\n let obj = lexer.getObj();\n if (obj === EOF) {\n break;\n }\n if (isCmd(obj, \"endbfrange\")) {\n return;\n }\n expectString(obj);\n const low = strToInt(obj);\n obj = lexer.getObj();\n expectString(obj);\n const high = strToInt(obj);\n obj = lexer.getObj();\n if (Number.isInteger(obj) || typeof obj === \"string\") {\n const dstLow = Number.isInteger(obj) ? String.fromCharCode(obj) : obj;\n cMap.mapBfRange(low, high, dstLow);\n } else if (isCmd(obj, \"[\")) {\n obj = lexer.getObj();\n const array = [];\n while (!isCmd(obj, \"]\") && obj !== EOF) {\n array.push(obj);\n obj = lexer.getObj();\n }\n cMap.mapBfRangeToArray(low, high, array);\n } else {\n break;\n }\n }\n throw new FormatError(\"Invalid bf range.\");\n }\n\n function parseCidChar(cMap, lexer) {\n while (true) {\n let obj = lexer.getObj();\n if (obj === EOF) {\n break;\n }\n if (isCmd(obj, \"endcidchar\")) {\n return;\n }\n expectString(obj);\n const src = strToInt(obj);\n obj = lexer.getObj();\n expectInt(obj);\n const dst = obj;\n cMap.mapOne(src, dst);\n }\n }\n\n function parseCidRange(cMap, lexer) {\n while (true) {\n let obj = lexer.getObj();\n if (obj === EOF) {\n break;\n }\n if (isCmd(obj, \"endcidrange\")) {\n return;\n }\n expectString(obj);\n const low = strToInt(obj);\n obj = lexer.getObj();\n expectString(obj);\n const high = strToInt(obj);\n obj = lexer.getObj();\n expectInt(obj);\n const dstLow = obj;\n cMap.mapCidRange(low, high, dstLow);\n }\n }\n\n function parseCodespaceRange(cMap, lexer) {\n while (true) {\n let obj = lexer.getObj();\n if (obj === EOF) {\n break;\n }\n if (isCmd(obj, \"endcodespacerange\")) {\n return;\n }\n if (typeof obj !== \"string\") {\n break;\n }\n const low = strToInt(obj);\n obj = lexer.getObj();\n if (typeof obj !== \"string\") {\n break;\n }\n const high = strToInt(obj);\n cMap.addCodespaceRange(obj.length, low, high);\n }\n throw new FormatError(\"Invalid codespace range.\");\n }\n\n function parseWMode(cMap, lexer) {\n const obj = lexer.getObj();\n if (Number.isInteger(obj)) {\n cMap.vertical = !!obj;\n }\n }\n\n function parseCMapName(cMap, lexer) {\n const obj = lexer.getObj();\n if (obj instanceof Name) {\n cMap.name = obj.name;\n }\n }\n\n async function parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap) {\n let previous, embeddedUseCMap;\n objLoop: while (true) {\n try {\n const obj = lexer.getObj();\n if (obj === EOF) {\n break;\n } else if (obj instanceof Name) {\n if (obj.name === \"WMode\") {\n parseWMode(cMap, lexer);\n } else if (obj.name === \"CMapName\") {\n parseCMapName(cMap, lexer);\n }\n previous = obj;\n } else if (obj instanceof Cmd) {\n switch (obj.cmd) {\n case \"endcmap\":\n break objLoop;\n case \"usecmap\":\n if (previous instanceof Name) {\n embeddedUseCMap = previous.name;\n }\n break;\n case \"begincodespacerange\":\n parseCodespaceRange(cMap, lexer);\n break;\n case \"beginbfchar\":\n parseBfChar(cMap, lexer);\n break;\n case \"begincidchar\":\n parseCidChar(cMap, lexer);\n break;\n case \"beginbfrange\":\n parseBfRange(cMap, lexer);\n break;\n case \"begincidrange\":\n parseCidRange(cMap, lexer);\n break;\n }\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Invalid cMap data: \" + ex);\n continue;\n }\n }\n\n if (!useCMap && embeddedUseCMap) {\n // Load the useCMap definition from the file only if there wasn't one\n // specified.\n useCMap = embeddedUseCMap;\n }\n if (useCMap) {\n return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n }\n return cMap;\n }\n\n async function extendCMap(cMap, fetchBuiltInCMap, useCMap) {\n cMap.useCMap = await createBuiltInCMap(useCMap, fetchBuiltInCMap);\n // If there aren't any code space ranges defined clone all the parent ones\n // into this cMap.\n if (cMap.numCodespaceRanges === 0) {\n const useCodespaceRanges = cMap.useCMap.codespaceRanges;\n for (let i = 0; i < useCodespaceRanges.length; i++) {\n cMap.codespaceRanges[i] = useCodespaceRanges[i].slice();\n }\n cMap.numCodespaceRanges = cMap.useCMap.numCodespaceRanges;\n }\n // Merge the map into the current one, making sure not to override\n // any previously defined entries.\n cMap.useCMap.forEach(function (key, value) {\n if (!cMap.contains(key)) {\n cMap.mapOne(key, cMap.useCMap.lookup(key));\n }\n });\n\n return cMap;\n }\n\n async function createBuiltInCMap(name, fetchBuiltInCMap) {\n if (name === \"Identity-H\") {\n return new IdentityCMap(false, 2);\n } else if (name === \"Identity-V\") {\n return new IdentityCMap(true, 2);\n }\n if (!BUILT_IN_CMAPS.includes(name)) {\n throw new Error(\"Unknown CMap name: \" + name);\n }\n if (!fetchBuiltInCMap) {\n throw new Error(\"Built-in CMap parameters are not provided.\");\n }\n\n const { cMapData, compressionType } = await fetchBuiltInCMap(name);\n const cMap = new CMap(true);\n\n if (compressionType === CMapCompressionType.BINARY) {\n return new BinaryCMapReader().process(cMapData, cMap, useCMap => {\n return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n });\n }\n if (compressionType === CMapCompressionType.NONE) {\n const lexer = new Lexer(new Stream(cMapData));\n return parseCMap(cMap, lexer, fetchBuiltInCMap, null);\n }\n throw new Error(\n \"TODO: Only BINARY/NONE CMap compression is currently supported.\"\n );\n }\n\n return {\n async create(params) {\n const encoding = params.encoding;\n const fetchBuiltInCMap = params.fetchBuiltInCMap;\n const useCMap = params.useCMap;\n\n if (encoding instanceof Name) {\n return createBuiltInCMap(encoding.name, fetchBuiltInCMap);\n } else if (encoding instanceof BaseStream) {\n const parsedCMap = await parseCMap(\n /* cMap = */ new CMap(),\n /* lexer = */ new Lexer(encoding),\n fetchBuiltInCMap,\n useCMap\n );\n\n if (parsedCMap.isIdentityCMap) {\n return createBuiltInCMap(parsedCMap.name, fetchBuiltInCMap);\n }\n return parsedCMap;\n }\n throw new Error(\"Encoding required.\");\n },\n };\n})();\n\nexport { CMap, CMapFactory, IdentityCMap };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n bytesToString,\n FormatError,\n info,\n StreamType,\n warn,\n} from \"../shared/util.js\";\nimport { Cmd, Dict, EOF, isCmd, Name, Ref } from \"./primitives.js\";\nimport {\n isWhiteSpace,\n MissingDataException,\n ParserEOFException,\n} from \"./core_utils.js\";\nimport { Ascii85Stream } from \"./ascii_85_stream.js\";\nimport { AsciiHexStream } from \"./ascii_hex_stream.js\";\nimport { CCITTFaxStream } from \"./ccitt_stream.js\";\nimport { FlateStream } from \"./flate_stream.js\";\nimport { Jbig2Stream } from \"./jbig2_stream.js\";\nimport { JpegStream } from \"./jpeg_stream.js\";\nimport { JpxStream } from \"./jpx_stream.js\";\nimport { LZWStream } from \"./lzw_stream.js\";\nimport { NullStream } from \"./stream.js\";\nimport { PredictorStream } from \"./predictor_stream.js\";\nimport { RunLengthStream } from \"./run_length_stream.js\";\n\nconst MAX_LENGTH_TO_CACHE = 1000;\nconst MAX_ADLER32_LENGTH = 5552;\n\nfunction computeAdler32(bytes) {\n const bytesLength = bytes.length;\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n bytesLength < MAX_ADLER32_LENGTH,\n 'computeAdler32: Unsupported \"bytes\" length.'\n );\n }\n let a = 1,\n b = 0;\n for (let i = 0; i < bytesLength; ++i) {\n // No modulo required in the loop if `bytesLength < 5552`.\n a += bytes[i] & 0xff;\n b += a;\n }\n return (b % 65521 << 16) | a % 65521;\n}\n\nclass Parser {\n constructor({ lexer, xref, allowStreams = false, recoveryMode = false }) {\n this.lexer = lexer;\n this.xref = xref;\n this.allowStreams = allowStreams;\n this.recoveryMode = recoveryMode;\n\n this.imageCache = Object.create(null);\n this.refill();\n }\n\n refill() {\n this.buf1 = this.lexer.getObj();\n this.buf2 = this.lexer.getObj();\n }\n\n shift() {\n if (this.buf2 instanceof Cmd && this.buf2.cmd === \"ID\") {\n this.buf1 = this.buf2;\n this.buf2 = null;\n } else {\n this.buf1 = this.buf2;\n this.buf2 = this.lexer.getObj();\n }\n }\n\n tryShift() {\n try {\n this.shift();\n return true;\n } catch (e) {\n if (e instanceof MissingDataException) {\n throw e;\n }\n // Upon failure, the caller should reset this.lexer.pos to a known good\n // state and call this.shift() twice to reset the buffers.\n return false;\n }\n }\n\n getObj(cipherTransform = null) {\n const buf1 = this.buf1;\n this.shift();\n\n if (buf1 instanceof Cmd) {\n switch (buf1.cmd) {\n case \"BI\": // inline image\n return this.makeInlineImage(cipherTransform);\n case \"[\": // array\n const array = [];\n while (!isCmd(this.buf1, \"]\") && this.buf1 !== EOF) {\n array.push(this.getObj(cipherTransform));\n }\n if (this.buf1 === EOF) {\n if (this.recoveryMode) {\n return array;\n }\n throw new ParserEOFException(\"End of file inside array.\");\n }\n this.shift();\n return array;\n case \"<<\": // dictionary or stream\n const dict = new Dict(this.xref);\n while (!isCmd(this.buf1, \">>\") && this.buf1 !== EOF) {\n if (!(this.buf1 instanceof Name)) {\n info(\"Malformed dictionary: key must be a name object\");\n this.shift();\n continue;\n }\n\n const key = this.buf1.name;\n this.shift();\n if (this.buf1 === EOF) {\n break;\n }\n dict.set(key, this.getObj(cipherTransform));\n }\n if (this.buf1 === EOF) {\n if (this.recoveryMode) {\n return dict;\n }\n throw new ParserEOFException(\"End of file inside dictionary.\");\n }\n\n // Stream objects are not allowed inside content streams or\n // object streams.\n if (isCmd(this.buf2, \"stream\")) {\n return this.allowStreams\n ? this.makeStream(dict, cipherTransform)\n : dict;\n }\n this.shift();\n return dict;\n default: // simple object\n return buf1;\n }\n }\n\n if (Number.isInteger(buf1)) {\n // indirect reference or integer\n if (Number.isInteger(this.buf1) && isCmd(this.buf2, \"R\")) {\n const ref = Ref.get(buf1, this.buf1);\n this.shift();\n this.shift();\n return ref;\n }\n return buf1;\n }\n\n if (typeof buf1 === \"string\") {\n if (cipherTransform) {\n return cipherTransform.decryptString(buf1);\n }\n return buf1;\n }\n\n // simple object\n return buf1;\n }\n\n /**\n * Find the end of the stream by searching for the /EI\\s/.\n * @returns {number} The inline stream length.\n */\n findDefaultInlineStreamEnd(stream) {\n const E = 0x45,\n I = 0x49,\n SPACE = 0x20,\n LF = 0xa,\n CR = 0xd,\n NUL = 0x0;\n const lexer = this.lexer,\n startPos = stream.pos,\n n = 10;\n let state = 0,\n ch,\n maybeEIPos;\n while ((ch = stream.getByte()) !== -1) {\n if (state === 0) {\n state = ch === E ? 1 : 0;\n } else if (state === 1) {\n state = ch === I ? 2 : 0;\n } else {\n assert(state === 2, \"findDefaultInlineStreamEnd - invalid state.\");\n if (ch === SPACE || ch === LF || ch === CR) {\n maybeEIPos = stream.pos;\n // Let's check that the next `n` bytes are ASCII... just to be sure.\n const followingBytes = stream.peekBytes(n);\n for (let i = 0, ii = followingBytes.length; i < ii; i++) {\n ch = followingBytes[i];\n if (ch === NUL && followingBytes[i + 1] !== NUL) {\n // NUL bytes are not supposed to occur *outside* of inline\n // images, but some PDF generators violate that assumption,\n // thus breaking the EI detection heuristics used below.\n //\n // However, we can't unconditionally treat NUL bytes as \"ASCII\",\n // since that *could* result in inline images being truncated.\n //\n // To attempt to address this, we'll still treat any *sequence*\n // of NUL bytes as non-ASCII, but for a *single* NUL byte we'll\n // continue checking the `followingBytes` (fixes issue8823.pdf).\n continue;\n }\n if (ch !== LF && ch !== CR && (ch < SPACE || ch > 0x7f)) {\n // Not a LF, CR, SPACE or any visible ASCII character, i.e.\n // it's binary stuff. Resetting the state.\n state = 0;\n break;\n }\n }\n\n if (state !== 2) {\n continue;\n }\n // Check that the \"EI\" sequence isn't part of the image data, since\n // that would cause the image to be truncated (fixes issue11124.pdf).\n if (lexer.knownCommands) {\n const nextObj = lexer.peekObj();\n if (nextObj instanceof Cmd && !lexer.knownCommands[nextObj.cmd]) {\n // Not a valid command, i.e. the inline image data *itself*\n // contains an \"EI\" sequence. Resetting the state.\n state = 0;\n }\n } else {\n warn(\n \"findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.\"\n );\n }\n\n if (state === 2) {\n break; // Finished!\n }\n } else {\n state = 0;\n }\n }\n }\n\n if (ch === -1) {\n warn(\n \"findDefaultInlineStreamEnd: \" +\n \"Reached the end of the stream without finding a valid EI marker\"\n );\n if (maybeEIPos) {\n warn('... trying to recover by using the last \"EI\" occurrence.');\n stream.skip(-(stream.pos - maybeEIPos)); // Reset the stream position.\n }\n }\n\n let endOffset = 4;\n stream.skip(-endOffset); // Set the stream position to just before \"EI\".\n ch = stream.peekByte();\n stream.skip(endOffset); // ... and remember to reset the stream position.\n\n // Ensure that we don't accidentally truncate the inline image, when the\n // data is immediately followed by the \"EI\" marker (fixes issue10388.pdf).\n if (!isWhiteSpace(ch)) {\n endOffset--;\n }\n return stream.pos - endOffset - startPos;\n }\n\n /**\n * Find the EOI (end-of-image) marker 0xFFD9 of the stream.\n * @returns {number} The inline stream length.\n */\n findDCTDecodeInlineStreamEnd(stream) {\n const startPos = stream.pos;\n let foundEOI = false,\n b,\n markerLength;\n while ((b = stream.getByte()) !== -1) {\n if (b !== 0xff) {\n // Not a valid marker.\n continue;\n }\n switch (stream.getByte()) {\n case 0x00: // Byte stuffing.\n // 0xFF00 appears to be a very common byte sequence in JPEG images.\n break;\n\n case 0xff: // Fill byte.\n // Avoid skipping a valid marker, resetting the stream position.\n stream.skip(-1);\n break;\n\n case 0xd9: // EOI\n foundEOI = true;\n break;\n\n case 0xc0: // SOF0\n case 0xc1: // SOF1\n case 0xc2: // SOF2\n case 0xc3: // SOF3\n /* falls through */\n case 0xc5: // SOF5\n case 0xc6: // SOF6\n case 0xc7: // SOF7\n /* falls through */\n case 0xc9: // SOF9\n case 0xca: // SOF10\n case 0xcb: // SOF11\n /* falls through */\n case 0xcd: // SOF13\n case 0xce: // SOF14\n case 0xcf: // SOF15\n /* falls through */\n case 0xc4: // DHT\n case 0xcc: // DAC\n /* falls through */\n case 0xda: // SOS\n case 0xdb: // DQT\n case 0xdc: // DNL\n case 0xdd: // DRI\n case 0xde: // DHP\n case 0xdf: // EXP\n /* falls through */\n case 0xe0: // APP0\n case 0xe1: // APP1\n case 0xe2: // APP2\n case 0xe3: // APP3\n case 0xe4: // APP4\n case 0xe5: // APP5\n case 0xe6: // APP6\n case 0xe7: // APP7\n case 0xe8: // APP8\n case 0xe9: // APP9\n case 0xea: // APP10\n case 0xeb: // APP11\n case 0xec: // APP12\n case 0xed: // APP13\n case 0xee: // APP14\n case 0xef: // APP15\n /* falls through */\n case 0xfe: // COM\n // The marker should be followed by the length of the segment.\n markerLength = stream.getUint16();\n if (markerLength > 2) {\n // |markerLength| contains the byte length of the marker segment,\n // including its own length (2 bytes) and excluding the marker.\n stream.skip(markerLength - 2); // Jump to the next marker.\n } else {\n // The marker length is invalid, resetting the stream position.\n stream.skip(-2);\n }\n break;\n }\n if (foundEOI) {\n break;\n }\n }\n const length = stream.pos - startPos;\n if (b === -1) {\n warn(\n \"Inline DCTDecode image stream: \" +\n \"EOI marker not found, searching for /EI/ instead.\"\n );\n stream.skip(-length); // Reset the stream position.\n return this.findDefaultInlineStreamEnd(stream);\n }\n this.inlineStreamSkipEI(stream);\n return length;\n }\n\n /**\n * Find the EOD (end-of-data) marker '~>' (i.e. TILDE + GT) of the stream.\n * @returns {number} The inline stream length.\n */\n findASCII85DecodeInlineStreamEnd(stream) {\n const TILDE = 0x7e,\n GT = 0x3e;\n const startPos = stream.pos;\n let ch;\n while ((ch = stream.getByte()) !== -1) {\n if (ch === TILDE) {\n const tildePos = stream.pos;\n\n ch = stream.peekByte();\n // Handle corrupt PDF documents which contains whitespace \"inside\" of\n // the EOD marker (fixes issue10614.pdf).\n while (isWhiteSpace(ch)) {\n stream.skip();\n ch = stream.peekByte();\n }\n if (ch === GT) {\n stream.skip();\n break;\n }\n // Handle corrupt PDF documents which contains truncated EOD markers,\n // where the '>' character is missing (fixes issue11385.pdf).\n if (stream.pos > tildePos) {\n const maybeEI = stream.peekBytes(2);\n if (maybeEI[0] === /* E = */ 0x45 && maybeEI[1] === /* I = */ 0x49) {\n break;\n }\n }\n }\n }\n const length = stream.pos - startPos;\n if (ch === -1) {\n warn(\n \"Inline ASCII85Decode image stream: \" +\n \"EOD marker not found, searching for /EI/ instead.\"\n );\n stream.skip(-length); // Reset the stream position.\n return this.findDefaultInlineStreamEnd(stream);\n }\n this.inlineStreamSkipEI(stream);\n return length;\n }\n\n /**\n * Find the EOD (end-of-data) marker '>' (i.e. GT) of the stream.\n * @returns {number} The inline stream length.\n */\n findASCIIHexDecodeInlineStreamEnd(stream) {\n const GT = 0x3e;\n const startPos = stream.pos;\n let ch;\n while ((ch = stream.getByte()) !== -1) {\n if (ch === GT) {\n break;\n }\n }\n const length = stream.pos - startPos;\n if (ch === -1) {\n warn(\n \"Inline ASCIIHexDecode image stream: \" +\n \"EOD marker not found, searching for /EI/ instead.\"\n );\n stream.skip(-length); // Reset the stream position.\n return this.findDefaultInlineStreamEnd(stream);\n }\n this.inlineStreamSkipEI(stream);\n return length;\n }\n\n /**\n * Skip over the /EI/ for streams where we search for an EOD marker.\n */\n inlineStreamSkipEI(stream) {\n const E = 0x45,\n I = 0x49;\n let state = 0,\n ch;\n while ((ch = stream.getByte()) !== -1) {\n if (state === 0) {\n state = ch === E ? 1 : 0;\n } else if (state === 1) {\n state = ch === I ? 2 : 0;\n } else if (state === 2) {\n break;\n }\n }\n }\n\n makeInlineImage(cipherTransform) {\n const lexer = this.lexer;\n const stream = lexer.stream;\n\n // Parse dictionary.\n const dict = new Dict(this.xref);\n let dictLength;\n while (!isCmd(this.buf1, \"ID\") && this.buf1 !== EOF) {\n if (!(this.buf1 instanceof Name)) {\n throw new FormatError(\"Dictionary key must be a name object\");\n }\n const key = this.buf1.name;\n this.shift();\n if (this.buf1 === EOF) {\n break;\n }\n dict.set(key, this.getObj(cipherTransform));\n }\n if (lexer.beginInlineImagePos !== -1) {\n dictLength = stream.pos - lexer.beginInlineImagePos;\n }\n\n // Extract the name of the first (i.e. the current) image filter.\n const filter = dict.get(\"F\", \"Filter\");\n let filterName;\n if (filter instanceof Name) {\n filterName = filter.name;\n } else if (Array.isArray(filter)) {\n const filterZero = this.xref.fetchIfRef(filter[0]);\n if (filterZero instanceof Name) {\n filterName = filterZero.name;\n }\n }\n\n // Parse image stream.\n const startPos = stream.pos;\n let length;\n switch (filterName) {\n case \"DCT\":\n case \"DCTDecode\":\n length = this.findDCTDecodeInlineStreamEnd(stream);\n break;\n case \"A85\":\n case \"ASCII85Decode\":\n length = this.findASCII85DecodeInlineStreamEnd(stream);\n break;\n case \"AHx\":\n case \"ASCIIHexDecode\":\n length = this.findASCIIHexDecodeInlineStreamEnd(stream);\n break;\n default:\n length = this.findDefaultInlineStreamEnd(stream);\n }\n let imageStream = stream.makeSubStream(startPos, length, dict);\n\n // Cache all images below the MAX_LENGTH_TO_CACHE threshold by their\n // adler32 checksum.\n let cacheKey;\n if (length < MAX_LENGTH_TO_CACHE && dictLength < MAX_ADLER32_LENGTH) {\n const imageBytes = imageStream.getBytes();\n imageStream.reset();\n\n const initialStreamPos = stream.pos;\n // Set the stream position to the beginning of the dictionary data...\n stream.pos = lexer.beginInlineImagePos;\n // ... and fetch the bytes of the *entire* dictionary.\n const dictBytes = stream.getBytes(dictLength);\n // Finally, don't forget to reset the stream position.\n stream.pos = initialStreamPos;\n\n cacheKey = computeAdler32(imageBytes) + \"_\" + computeAdler32(dictBytes);\n\n const cacheEntry = this.imageCache[cacheKey];\n if (cacheEntry !== undefined) {\n this.buf2 = Cmd.get(\"EI\");\n this.shift();\n\n cacheEntry.reset();\n return cacheEntry;\n }\n }\n\n if (cipherTransform) {\n imageStream = cipherTransform.createStream(imageStream, length);\n }\n\n imageStream = this.filter(imageStream, dict, length);\n imageStream.dict = dict;\n if (cacheKey !== undefined) {\n imageStream.cacheKey = `inline_${length}_${cacheKey}`;\n this.imageCache[cacheKey] = imageStream;\n }\n\n this.buf2 = Cmd.get(\"EI\");\n this.shift();\n\n return imageStream;\n }\n\n _findStreamLength(startPos, signature) {\n const { stream } = this.lexer;\n stream.pos = startPos;\n\n const SCAN_BLOCK_LENGTH = 2048;\n const signatureLength = signature.length;\n\n while (stream.pos < stream.end) {\n const scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n const scanLength = scanBytes.length - signatureLength;\n\n if (scanLength <= 0) {\n break;\n }\n let pos = 0;\n while (pos < scanLength) {\n let j = 0;\n while (j < signatureLength && scanBytes[pos + j] === signature[j]) {\n j++;\n }\n if (j >= signatureLength) {\n // `signature` found.\n stream.pos += pos;\n return stream.pos - startPos;\n }\n pos++;\n }\n stream.pos += scanLength;\n }\n return -1;\n }\n\n makeStream(dict, cipherTransform) {\n const lexer = this.lexer;\n let stream = lexer.stream;\n\n // Get the stream's start position.\n lexer.skipToNextLine();\n const startPos = stream.pos - 1;\n\n // Get the length.\n let length = dict.get(\"Length\");\n if (!Number.isInteger(length)) {\n info(`Bad length \"${length && length.toString()}\" in stream.`);\n length = 0;\n }\n\n // Skip over the stream data.\n stream.pos = startPos + length;\n lexer.nextChar();\n\n // Shift '>>' and check whether the new object marks the end of the stream.\n if (this.tryShift() && isCmd(this.buf2, \"endstream\")) {\n this.shift(); // 'stream'\n } else {\n // Bad stream length, scanning for endstream command.\n const ENDSTREAM_SIGNATURE = new Uint8Array([\n 0x65, 0x6e, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d,\n ]);\n let actualLength = this._findStreamLength(startPos, ENDSTREAM_SIGNATURE);\n if (actualLength < 0) {\n // Only allow limited truncation of the endstream signature,\n // to prevent false positives.\n const MAX_TRUNCATION = 1;\n // Check if the PDF generator included truncated endstream commands,\n // such as e.g. \"endstrea\" (fixes issue10004.pdf).\n for (let i = 1; i <= MAX_TRUNCATION; i++) {\n const end = ENDSTREAM_SIGNATURE.length - i;\n const TRUNCATED_SIGNATURE = ENDSTREAM_SIGNATURE.slice(0, end);\n\n const maybeLength = this._findStreamLength(\n startPos,\n TRUNCATED_SIGNATURE\n );\n if (maybeLength >= 0) {\n // Ensure that the byte immediately following the truncated\n // endstream command is a space, to prevent false positives.\n const lastByte = stream.peekBytes(end + 1)[end];\n if (!isWhiteSpace(lastByte)) {\n break;\n }\n info(\n `Found \"${bytesToString(TRUNCATED_SIGNATURE)}\" when ` +\n \"searching for endstream command.\"\n );\n actualLength = maybeLength;\n break;\n }\n }\n\n if (actualLength < 0) {\n throw new FormatError(\"Missing endstream command.\");\n }\n }\n length = actualLength;\n\n lexer.nextChar();\n this.shift();\n this.shift();\n }\n this.shift(); // 'endstream'\n\n stream = stream.makeSubStream(startPos, length, dict);\n if (cipherTransform) {\n stream = cipherTransform.createStream(stream, length);\n }\n stream = this.filter(stream, dict, length);\n stream.dict = dict;\n return stream;\n }\n\n filter(stream, dict, length) {\n let filter = dict.get(\"F\", \"Filter\");\n let params = dict.get(\"DP\", \"DecodeParms\");\n\n if (filter instanceof Name) {\n if (Array.isArray(params)) {\n warn(\"/DecodeParms should not be an Array, when /Filter is a Name.\");\n }\n return this.makeFilter(stream, filter.name, length, params);\n }\n\n let maybeLength = length;\n if (Array.isArray(filter)) {\n const filterArray = filter;\n const paramsArray = params;\n for (let i = 0, ii = filterArray.length; i < ii; ++i) {\n filter = this.xref.fetchIfRef(filterArray[i]);\n if (!(filter instanceof Name)) {\n throw new FormatError(`Bad filter name \"${filter}\"`);\n }\n\n params = null;\n if (Array.isArray(paramsArray) && i in paramsArray) {\n params = this.xref.fetchIfRef(paramsArray[i]);\n }\n stream = this.makeFilter(stream, filter.name, maybeLength, params);\n // After the first stream the `length` variable is invalid.\n maybeLength = null;\n }\n }\n return stream;\n }\n\n makeFilter(stream, name, maybeLength, params) {\n // Since the 'Length' entry in the stream dictionary can be completely\n // wrong, e.g. zero for non-empty streams, only skip parsing the stream\n // when we can be absolutely certain that it actually is empty.\n if (maybeLength === 0) {\n warn(`Empty \"${name}\" stream.`);\n return new NullStream();\n }\n const xrefStats = this.xref.stats;\n\n try {\n switch (name) {\n case \"Fl\":\n case \"FlateDecode\":\n xrefStats.addStreamType(StreamType.FLATE);\n if (params) {\n return new PredictorStream(\n new FlateStream(stream, maybeLength),\n maybeLength,\n params\n );\n }\n return new FlateStream(stream, maybeLength);\n case \"LZW\":\n case \"LZWDecode\":\n xrefStats.addStreamType(StreamType.LZW);\n let earlyChange = 1;\n if (params) {\n if (params.has(\"EarlyChange\")) {\n earlyChange = params.get(\"EarlyChange\");\n }\n return new PredictorStream(\n new LZWStream(stream, maybeLength, earlyChange),\n maybeLength,\n params\n );\n }\n return new LZWStream(stream, maybeLength, earlyChange);\n case \"DCT\":\n case \"DCTDecode\":\n xrefStats.addStreamType(StreamType.DCT);\n return new JpegStream(stream, maybeLength, params);\n case \"JPX\":\n case \"JPXDecode\":\n xrefStats.addStreamType(StreamType.JPX);\n return new JpxStream(stream, maybeLength, params);\n case \"A85\":\n case \"ASCII85Decode\":\n xrefStats.addStreamType(StreamType.A85);\n return new Ascii85Stream(stream, maybeLength);\n case \"AHx\":\n case \"ASCIIHexDecode\":\n xrefStats.addStreamType(StreamType.AHX);\n return new AsciiHexStream(stream, maybeLength);\n case \"CCF\":\n case \"CCITTFaxDecode\":\n xrefStats.addStreamType(StreamType.CCF);\n return new CCITTFaxStream(stream, maybeLength, params);\n case \"RL\":\n case \"RunLengthDecode\":\n xrefStats.addStreamType(StreamType.RLX);\n return new RunLengthStream(stream, maybeLength);\n case \"JBIG2Decode\":\n xrefStats.addStreamType(StreamType.JBIG);\n return new Jbig2Stream(stream, maybeLength, params);\n }\n warn(`Filter \"${name}\" is not supported.`);\n return stream;\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`Invalid stream: \"${ex}\"`);\n return new NullStream();\n }\n }\n}\n\n// A '1' in this array means the character is white space. A '1' or\n// '2' means the character ends a name or command.\n// prettier-ignore\nconst specialChars = [\n 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, // 0x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x\n 1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, // 2x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, // 3x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 4x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, // 5x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 6x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, // 7x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 8x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 9x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // ax\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // bx\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // cx\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // dx\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // ex\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 // fx\n];\n\nfunction toHexDigit(ch) {\n if (ch >= /* '0' = */ 0x30 && ch /* '9' = */ <= 0x39) {\n return ch & 0x0f;\n }\n if (\n (ch >= /* 'A' = */ 0x41 && ch <= /* 'F' = */ 0x46) ||\n (ch >= /* 'a' = */ 0x61 && ch <= /* 'f' = */ 0x66)\n ) {\n return (ch & 0x0f) + 9;\n }\n return -1;\n}\n\nclass Lexer {\n constructor(stream, knownCommands = null) {\n this.stream = stream;\n this.nextChar();\n\n // While lexing, we build up many strings one char at a time. Using += for\n // this can result in lots of garbage strings. It's better to build an\n // array of single-char strings and then join() them together at the end.\n // And reusing a single array (i.e. |this.strBuf|) over and over for this\n // purpose uses less memory than using a new array for each string.\n this.strBuf = [];\n\n // The PDFs might have \"glued\" commands with other commands, operands or\n // literals, e.g. \"q1\". The knownCommands is a dictionary of the valid\n // commands and their prefixes. The prefixes are built the following way:\n // if there a command that is a prefix of the other valid command or\n // literal (e.g. 'f' and 'false') the following prefixes must be included,\n // 'fa', 'fal', 'fals'. The prefixes are not needed, if the command has no\n // other commands or literals as a prefix. The knowCommands is optional.\n this.knownCommands = knownCommands;\n\n this._hexStringNumWarn = 0;\n this.beginInlineImagePos = -1;\n }\n\n nextChar() {\n return (this.currentChar = this.stream.getByte());\n }\n\n peekChar() {\n return this.stream.peekByte();\n }\n\n getNumber() {\n let ch = this.currentChar;\n let eNotation = false;\n let divideBy = 0; // Different from 0 if it's a floating point value.\n let sign = 0;\n\n if (ch === /* '-' = */ 0x2d) {\n sign = -1;\n ch = this.nextChar();\n\n if (ch === /* '-' = */ 0x2d) {\n // Ignore double negative (this is consistent with Adobe Reader).\n ch = this.nextChar();\n }\n } else if (ch === /* '+' = */ 0x2b) {\n sign = 1;\n ch = this.nextChar();\n }\n if (ch === /* LF = */ 0x0a || ch === /* CR = */ 0x0d) {\n // Ignore line-breaks (this is consistent with Adobe Reader).\n do {\n ch = this.nextChar();\n } while (ch === 0x0a || ch === 0x0d);\n }\n if (ch === /* '.' = */ 0x2e) {\n divideBy = 10;\n ch = this.nextChar();\n }\n if (ch < /* '0' = */ 0x30 || ch > /* '9' = */ 0x39) {\n if (isWhiteSpace(ch) || ch === /* EOF = */ -1) {\n // This is consistent with Adobe Reader (fixes issue9252.pdf).\n if (divideBy === 10 && sign === 0) {\n warn(\"Lexer.getNumber - treating a single decimal point as zero.\");\n return 0;\n }\n // This is consistent with Adobe Reader (fixes bug1753983.pdf).\n if (divideBy === 0 && sign === -1) {\n warn(\"Lexer.getNumber - treating a single minus sign as zero.\");\n return 0;\n }\n }\n throw new FormatError(\n `Invalid number: ${String.fromCharCode(ch)} (charCode ${ch})`\n );\n }\n\n sign = sign || 1;\n let baseValue = ch - 0x30; // '0'\n let powerValue = 0;\n let powerValueSign = 1;\n\n while ((ch = this.nextChar()) >= 0) {\n if (ch >= /* '0' = */ 0x30 && ch <= /* '9' = */ 0x39) {\n const currentDigit = ch - 0x30; // '0'\n if (eNotation) {\n // We are after an 'e' or 'E'.\n powerValue = powerValue * 10 + currentDigit;\n } else {\n if (divideBy !== 0) {\n // We are after a point.\n divideBy *= 10;\n }\n baseValue = baseValue * 10 + currentDigit;\n }\n } else if (ch === /* '.' = */ 0x2e) {\n if (divideBy === 0) {\n divideBy = 1;\n } else {\n // A number can have only one dot.\n break;\n }\n } else if (ch === /* '-' = */ 0x2d) {\n // Ignore minus signs in the middle of numbers to match\n // Adobe's behavior.\n warn(\"Badly formatted number: minus sign in the middle\");\n } else if (ch === /* 'E' = */ 0x45 || ch === /* 'e' = */ 0x65) {\n // 'E' can be either a scientific notation or the beginning of a new\n // operator.\n ch = this.peekChar();\n if (ch === /* '+' = */ 0x2b || ch === /* '-' = */ 0x2d) {\n powerValueSign = ch === 0x2d ? -1 : 1;\n this.nextChar(); // Consume the sign character.\n } else if (ch < /* '0' = */ 0x30 || ch > /* '9' = */ 0x39) {\n // The 'E' must be the beginning of a new operator.\n break;\n }\n eNotation = true;\n } else {\n // The last character doesn't belong to us.\n break;\n }\n }\n\n if (divideBy !== 0) {\n baseValue /= divideBy;\n }\n if (eNotation) {\n baseValue *= 10 ** (powerValueSign * powerValue);\n }\n return sign * baseValue;\n }\n\n getString() {\n let numParen = 1;\n let done = false;\n const strBuf = this.strBuf;\n strBuf.length = 0;\n\n let ch = this.nextChar();\n while (true) {\n let charBuffered = false;\n switch (ch | 0) {\n case -1:\n warn(\"Unterminated string\");\n done = true;\n break;\n case 0x28: // '('\n ++numParen;\n strBuf.push(\"(\");\n break;\n case 0x29: // ')'\n if (--numParen === 0) {\n this.nextChar(); // consume strings ')'\n done = true;\n } else {\n strBuf.push(\")\");\n }\n break;\n case 0x5c: // '\\\\'\n ch = this.nextChar();\n switch (ch) {\n case -1:\n warn(\"Unterminated string\");\n done = true;\n break;\n case 0x6e: // 'n'\n strBuf.push(\"\\n\");\n break;\n case 0x72: // 'r'\n strBuf.push(\"\\r\");\n break;\n case 0x74: // 't'\n strBuf.push(\"\\t\");\n break;\n case 0x62: // 'b'\n strBuf.push(\"\\b\");\n break;\n case 0x66: // 'f'\n strBuf.push(\"\\f\");\n break;\n case 0x5c: // '\\'\n case 0x28: // '('\n case 0x29: // ')'\n strBuf.push(String.fromCharCode(ch));\n break;\n case 0x30: // '0'\n case 0x31: // '1'\n case 0x32: // '2'\n case 0x33: // '3'\n case 0x34: // '4'\n case 0x35: // '5'\n case 0x36: // '6'\n case 0x37: // '7'\n let x = ch & 0x0f;\n ch = this.nextChar();\n charBuffered = true;\n if (ch >= /* '0' = */ 0x30 && ch <= /* '7' = */ 0x37) {\n x = (x << 3) + (ch & 0x0f);\n ch = this.nextChar();\n if (ch >= /* '0' = */ 0x30 && ch /* '7' = */ <= 0x37) {\n charBuffered = false;\n x = (x << 3) + (ch & 0x0f);\n }\n }\n strBuf.push(String.fromCharCode(x));\n break;\n case 0x0d: // CR\n if (this.peekChar() === /* LF = */ 0x0a) {\n this.nextChar();\n }\n break;\n case 0x0a: // LF\n break;\n default:\n strBuf.push(String.fromCharCode(ch));\n break;\n }\n break;\n default:\n strBuf.push(String.fromCharCode(ch));\n break;\n }\n if (done) {\n break;\n }\n if (!charBuffered) {\n ch = this.nextChar();\n }\n }\n return strBuf.join(\"\");\n }\n\n getName() {\n let ch, previousCh;\n const strBuf = this.strBuf;\n strBuf.length = 0;\n\n while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n if (ch === /* '#' = */ 0x23) {\n ch = this.nextChar();\n if (specialChars[ch]) {\n warn(\n \"Lexer_getName: \" +\n \"NUMBER SIGN (#) should be followed by a hexadecimal number.\"\n );\n strBuf.push(\"#\");\n break;\n }\n const x = toHexDigit(ch);\n if (x !== -1) {\n previousCh = ch;\n ch = this.nextChar();\n const x2 = toHexDigit(ch);\n if (x2 === -1) {\n warn(\n `Lexer_getName: Illegal digit (${String.fromCharCode(ch)}) ` +\n \"in hexadecimal number.\"\n );\n strBuf.push(\"#\", String.fromCharCode(previousCh));\n if (specialChars[ch]) {\n break;\n }\n strBuf.push(String.fromCharCode(ch));\n continue;\n }\n strBuf.push(String.fromCharCode((x << 4) | x2));\n } else {\n strBuf.push(\"#\", String.fromCharCode(ch));\n }\n } else {\n strBuf.push(String.fromCharCode(ch));\n }\n }\n if (strBuf.length > 127) {\n warn(`Name token is longer than allowed by the spec: ${strBuf.length}`);\n }\n return Name.get(strBuf.join(\"\"));\n }\n\n /**\n * @private\n */\n _hexStringWarn(ch) {\n const MAX_HEX_STRING_NUM_WARN = 5;\n\n if (this._hexStringNumWarn++ === MAX_HEX_STRING_NUM_WARN) {\n warn(\"getHexString - ignoring additional invalid characters.\");\n return;\n }\n if (this._hexStringNumWarn > MAX_HEX_STRING_NUM_WARN) {\n // Limit the number of warning messages printed for a `this.getHexString`\n // invocation, since corrupt PDF documents may otherwise spam the console\n // enough to affect general performance negatively.\n return;\n }\n warn(`getHexString - ignoring invalid character: ${ch}`);\n }\n\n getHexString() {\n const strBuf = this.strBuf;\n strBuf.length = 0;\n let ch = this.currentChar;\n let isFirstHex = true;\n let firstDigit, secondDigit;\n this._hexStringNumWarn = 0;\n\n while (true) {\n if (ch < 0) {\n warn(\"Unterminated hex string\");\n break;\n } else if (ch === /* '>' = */ 0x3e) {\n this.nextChar();\n break;\n } else if (specialChars[ch] === 1) {\n ch = this.nextChar();\n continue;\n } else {\n if (isFirstHex) {\n firstDigit = toHexDigit(ch);\n if (firstDigit === -1) {\n this._hexStringWarn(ch);\n ch = this.nextChar();\n continue;\n }\n } else {\n secondDigit = toHexDigit(ch);\n if (secondDigit === -1) {\n this._hexStringWarn(ch);\n ch = this.nextChar();\n continue;\n }\n strBuf.push(String.fromCharCode((firstDigit << 4) | secondDigit));\n }\n isFirstHex = !isFirstHex;\n ch = this.nextChar();\n }\n }\n return strBuf.join(\"\");\n }\n\n getObj() {\n // Skip whitespace and comments.\n let comment = false;\n let ch = this.currentChar;\n while (true) {\n if (ch < 0) {\n return EOF;\n }\n if (comment) {\n if (ch === /* LF = */ 0x0a || ch === /* CR = */ 0x0d) {\n comment = false;\n }\n } else if (ch === /* '%' = */ 0x25) {\n comment = true;\n } else if (specialChars[ch] !== 1) {\n break;\n }\n ch = this.nextChar();\n }\n\n // Start reading a token.\n switch (ch | 0) {\n case 0x30: // '0'\n case 0x31: // '1'\n case 0x32: // '2'\n case 0x33: // '3'\n case 0x34: // '4'\n case 0x35: // '5'\n case 0x36: // '6'\n case 0x37: // '7'\n case 0x38: // '8'\n case 0x39: // '9'\n case 0x2b: // '+'\n case 0x2d: // '-'\n case 0x2e: // '.'\n return this.getNumber();\n case 0x28: // '('\n return this.getString();\n case 0x2f: // '/'\n return this.getName();\n // array punctuation\n case 0x5b: // '['\n this.nextChar();\n return Cmd.get(\"[\");\n case 0x5d: // ']'\n this.nextChar();\n return Cmd.get(\"]\");\n // hex string or dict punctuation\n case 0x3c: // '<'\n ch = this.nextChar();\n if (ch === 0x3c) {\n // dict punctuation\n this.nextChar();\n return Cmd.get(\"<<\");\n }\n return this.getHexString();\n // dict punctuation\n case 0x3e: // '>'\n ch = this.nextChar();\n if (ch === 0x3e) {\n this.nextChar();\n return Cmd.get(\">>\");\n }\n return Cmd.get(\">\");\n case 0x7b: // '{'\n this.nextChar();\n return Cmd.get(\"{\");\n case 0x7d: // '}'\n this.nextChar();\n return Cmd.get(\"}\");\n case 0x29: // ')'\n // Consume the current character in order to avoid permanently hanging\n // the worker thread if `Lexer.getObj` is called from within a loop\n // containing try-catch statements, since we would otherwise attempt\n // to parse the *same* character over and over (fixes issue8061.pdf).\n this.nextChar();\n throw new FormatError(`Illegal character: ${ch}`);\n }\n\n // Start reading a command.\n let str = String.fromCharCode(ch);\n // A valid command cannot start with a non-visible ASCII character,\n // and the next character may be (the start of) a valid command.\n if (ch < 0x20 || ch > 0x7f) {\n const nextCh = this.peekChar();\n if (nextCh >= 0x20 && nextCh <= 0x7f) {\n this.nextChar();\n return Cmd.get(str);\n }\n }\n const knownCommands = this.knownCommands;\n let knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n // Stop if a known command is found and next character does not make\n // the string a command.\n const possibleCommand = str + String.fromCharCode(ch);\n if (knownCommandFound && knownCommands[possibleCommand] === undefined) {\n break;\n }\n if (str.length === 128) {\n throw new FormatError(`Command token too long: ${str.length}`);\n }\n str = possibleCommand;\n knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n }\n if (str === \"true\") {\n return true;\n }\n if (str === \"false\") {\n return false;\n }\n if (str === \"null\") {\n return null;\n }\n\n if (str === \"BI\") {\n // Keep track of the current stream position, since it's needed in order\n // to correctly cache inline images; see `Parser.makeInlineImage`.\n this.beginInlineImagePos = this.stream.pos;\n }\n\n return Cmd.get(str);\n }\n\n peekObj() {\n const streamPos = this.stream.pos,\n currentChar = this.currentChar,\n beginInlineImagePos = this.beginInlineImagePos;\n\n let nextObj;\n try {\n nextObj = this.getObj();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`peekObj: ${ex}`);\n }\n // Ensure that we reset *all* relevant `Lexer`-instance state.\n this.stream.pos = streamPos;\n this.currentChar = currentChar;\n this.beginInlineImagePos = beginInlineImagePos;\n\n return nextObj;\n }\n\n skipToNextLine() {\n let ch = this.currentChar;\n while (ch >= 0) {\n if (ch === /* CR = */ 0x0d) {\n ch = this.nextChar();\n if (ch === /* LF = */ 0x0a) {\n this.nextChar();\n }\n break;\n } else if (ch === /* LF = */ 0x0a) {\n this.nextChar();\n break;\n }\n ch = this.nextChar();\n }\n }\n}\n\nclass Linearization {\n static create(stream) {\n function getInt(linDict, name, allowZeroValue = false) {\n const obj = linDict.get(name);\n if (Number.isInteger(obj) && (allowZeroValue ? obj >= 0 : obj > 0)) {\n return obj;\n }\n throw new Error(\n `The \"${name}\" parameter in the linearization ` +\n \"dictionary is invalid.\"\n );\n }\n\n function getHints(linDict) {\n const hints = linDict.get(\"H\");\n let hintsLength;\n\n if (\n Array.isArray(hints) &&\n ((hintsLength = hints.length) === 2 || hintsLength === 4)\n ) {\n for (let index = 0; index < hintsLength; index++) {\n const hint = hints[index];\n if (!(Number.isInteger(hint) && hint > 0)) {\n throw new Error(\n `Hint (${index}) in the linearization dictionary is invalid.`\n );\n }\n }\n return hints;\n }\n throw new Error(\"Hint array in the linearization dictionary is invalid.\");\n }\n\n const parser = new Parser({\n lexer: new Lexer(stream),\n xref: null,\n });\n const obj1 = parser.getObj();\n const obj2 = parser.getObj();\n const obj3 = parser.getObj();\n const linDict = parser.getObj();\n let obj, length;\n if (\n !(\n Number.isInteger(obj1) &&\n Number.isInteger(obj2) &&\n isCmd(obj3, \"obj\") &&\n linDict instanceof Dict &&\n typeof (obj = linDict.get(\"Linearized\")) === \"number\" &&\n obj > 0\n )\n ) {\n return null; // No valid linearization dictionary found.\n } else if ((length = getInt(linDict, \"L\")) !== stream.length) {\n throw new Error(\n 'The \"L\" parameter in the linearization dictionary ' +\n \"does not equal the stream length.\"\n );\n }\n return {\n length,\n hints: getHints(linDict),\n objectNumberFirst: getInt(linDict, \"O\"),\n endFirst: getInt(linDict, \"E\"),\n numPages: getInt(linDict, \"N\"),\n mainXRefEntriesOffset: getInt(linDict, \"T\"),\n pageFirst: linDict.has(\"P\")\n ? getInt(linDict, \"P\", /* allowZeroValue = */ true)\n : 0,\n };\n }\n}\n\nexport { Lexer, Linearization, Parser };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { isWhiteSpace } from \"./core_utils.js\";\n\nclass Ascii85Stream extends DecodeStream {\n constructor(str, maybeLength) {\n // Most streams increase in size when decoded, but Ascii85 streams\n // typically shrink by ~20%.\n if (maybeLength) {\n maybeLength *= 0.8;\n }\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n this.input = new Uint8Array(5);\n }\n\n readBlock() {\n const TILDA_CHAR = 0x7e; // '~'\n const Z_LOWER_CHAR = 0x7a; // 'z'\n const EOF = -1;\n\n const str = this.str;\n\n let c = str.getByte();\n while (isWhiteSpace(c)) {\n c = str.getByte();\n }\n\n if (c === EOF || c === TILDA_CHAR) {\n this.eof = true;\n return;\n }\n\n const bufferLength = this.bufferLength;\n let buffer, i;\n\n // special code for z\n if (c === Z_LOWER_CHAR) {\n buffer = this.ensureBuffer(bufferLength + 4);\n for (i = 0; i < 4; ++i) {\n buffer[bufferLength + i] = 0;\n }\n this.bufferLength += 4;\n } else {\n const input = this.input;\n input[0] = c;\n for (i = 1; i < 5; ++i) {\n c = str.getByte();\n while (isWhiteSpace(c)) {\n c = str.getByte();\n }\n\n input[i] = c;\n\n if (c === EOF || c === TILDA_CHAR) {\n break;\n }\n }\n buffer = this.ensureBuffer(bufferLength + i - 1);\n this.bufferLength += i - 1;\n\n // partial ending;\n if (i < 5) {\n for (; i < 5; ++i) {\n input[i] = 0x21 + 84;\n }\n this.eof = true;\n }\n let t = 0;\n for (i = 0; i < 5; ++i) {\n t = t * 85 + (input[i] - 0x21);\n }\n\n for (i = 3; i >= 0; --i) {\n buffer[bufferLength + i] = t & 0xff;\n t >>= 8;\n }\n }\n }\n}\n\nexport { Ascii85Stream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseStream } from \"./base_stream.js\";\nimport { Stream } from \"./stream.js\";\n\n// Lots of DecodeStreams are created whose buffers are never used. For these\n// we share a single empty buffer. This is (a) space-efficient and (b) avoids\n// having special cases that would be required if we used |null| for an empty\n// buffer.\nconst emptyBuffer = new Uint8Array(0);\n\n// Super class for the decoding streams.\nclass DecodeStream extends BaseStream {\n constructor(maybeMinBufferLength) {\n super();\n this._rawMinBufferLength = maybeMinBufferLength || 0;\n\n this.pos = 0;\n this.bufferLength = 0;\n this.eof = false;\n this.buffer = emptyBuffer;\n this.minBufferLength = 512;\n if (maybeMinBufferLength) {\n // Compute the first power of two that is as big as maybeMinBufferLength.\n while (this.minBufferLength < maybeMinBufferLength) {\n this.minBufferLength *= 2;\n }\n }\n }\n\n get isEmpty() {\n while (!this.eof && this.bufferLength === 0) {\n this.readBlock();\n }\n return this.bufferLength === 0;\n }\n\n ensureBuffer(requested) {\n const buffer = this.buffer;\n if (requested <= buffer.byteLength) {\n return buffer;\n }\n let size = this.minBufferLength;\n while (size < requested) {\n size *= 2;\n }\n const buffer2 = new Uint8Array(size);\n buffer2.set(buffer);\n return (this.buffer = buffer2);\n }\n\n getByte() {\n const pos = this.pos;\n while (this.bufferLength <= pos) {\n if (this.eof) {\n return -1;\n }\n this.readBlock();\n }\n return this.buffer[this.pos++];\n }\n\n getBytes(length) {\n const pos = this.pos;\n let end;\n\n if (length) {\n this.ensureBuffer(pos + length);\n end = pos + length;\n\n while (!this.eof && this.bufferLength < end) {\n this.readBlock();\n }\n const bufEnd = this.bufferLength;\n if (end > bufEnd) {\n end = bufEnd;\n }\n } else {\n while (!this.eof) {\n this.readBlock();\n }\n end = this.bufferLength;\n }\n\n this.pos = end;\n return this.buffer.subarray(pos, end);\n }\n\n reset() {\n this.pos = 0;\n }\n\n makeSubStream(start, length, dict = null) {\n if (length === undefined) {\n while (!this.eof) {\n this.readBlock();\n }\n } else {\n const end = start + length;\n while (this.bufferLength <= end && !this.eof) {\n this.readBlock();\n }\n }\n return new Stream(this.buffer, start, length, dict);\n }\n\n getBaseStreams() {\n return this.str ? this.str.getBaseStreams() : null;\n }\n}\n\nclass StreamsSequenceStream extends DecodeStream {\n constructor(streams, onError = null) {\n let maybeLength = 0;\n for (const stream of streams) {\n maybeLength +=\n stream instanceof DecodeStream\n ? stream._rawMinBufferLength\n : stream.length;\n }\n super(maybeLength);\n\n this.streams = streams;\n this._onError = onError;\n }\n\n readBlock() {\n const streams = this.streams;\n if (streams.length === 0) {\n this.eof = true;\n return;\n }\n const stream = streams.shift();\n let chunk;\n try {\n chunk = stream.getBytes();\n } catch (reason) {\n if (this._onError) {\n this._onError(reason, stream.dict && stream.dict.objId);\n return;\n }\n throw reason;\n }\n const bufferLength = this.bufferLength;\n const newLength = bufferLength + chunk.length;\n const buffer = this.ensureBuffer(newLength);\n buffer.set(chunk, bufferLength);\n this.bufferLength = newLength;\n }\n\n getBaseStreams() {\n const baseStreamsBuf = [];\n for (const stream of this.streams) {\n const baseStreams = stream.getBaseStreams();\n if (baseStreams) {\n baseStreamsBuf.push(...baseStreams);\n }\n }\n return baseStreamsBuf.length > 0 ? baseStreamsBuf : null;\n }\n}\n\nexport { DecodeStream, StreamsSequenceStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\n\nclass AsciiHexStream extends DecodeStream {\n constructor(str, maybeLength) {\n // Most streams increase in size when decoded, but AsciiHex streams shrink\n // by 50%.\n if (maybeLength) {\n maybeLength *= 0.5;\n }\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n\n this.firstDigit = -1;\n }\n\n readBlock() {\n const UPSTREAM_BLOCK_SIZE = 8000;\n const bytes = this.str.getBytes(UPSTREAM_BLOCK_SIZE);\n if (!bytes.length) {\n this.eof = true;\n return;\n }\n\n const maxDecodeLength = (bytes.length + 1) >> 1;\n const buffer = this.ensureBuffer(this.bufferLength + maxDecodeLength);\n let bufferLength = this.bufferLength;\n\n let firstDigit = this.firstDigit;\n for (const ch of bytes) {\n let digit;\n if (ch >= /* '0' = */ 0x30 && ch <= /* '9' = */ 0x39) {\n digit = ch & 0x0f;\n } else if (\n (ch >= /* 'A' = */ 0x41 && ch <= /* 'Z' = */ 0x46) ||\n (ch >= /* 'a' = */ 0x61 && ch <= /* 'z' = */ 0x66)\n ) {\n digit = (ch & 0x0f) + 9;\n } else if (ch === /* '>' = */ 0x3e) {\n this.eof = true;\n break;\n } else {\n // Probably whitespace, ignoring.\n continue;\n }\n if (firstDigit < 0) {\n firstDigit = digit;\n } else {\n buffer[bufferLength++] = (firstDigit << 4) | digit;\n firstDigit = -1;\n }\n }\n if (firstDigit >= 0 && this.eof) {\n // incomplete byte\n buffer[bufferLength++] = firstDigit << 4;\n firstDigit = -1;\n }\n this.firstDigit = firstDigit;\n this.bufferLength = bufferLength;\n }\n}\n\nexport { AsciiHexStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CCITTFaxDecoder } from \"./ccitt.js\";\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { Dict } from \"./primitives.js\";\n\nclass CCITTFaxStream extends DecodeStream {\n constructor(str, maybeLength, params) {\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n\n if (!(params instanceof Dict)) {\n params = Dict.empty;\n }\n\n const source = {\n next() {\n return str.getByte();\n },\n };\n this.ccittFaxDecoder = new CCITTFaxDecoder(source, {\n K: params.get(\"K\"),\n EndOfLine: params.get(\"EndOfLine\"),\n EncodedByteAlign: params.get(\"EncodedByteAlign\"),\n Columns: params.get(\"Columns\"),\n Rows: params.get(\"Rows\"),\n EndOfBlock: params.get(\"EndOfBlock\"),\n BlackIs1: params.get(\"BlackIs1\"),\n });\n }\n\n readBlock() {\n while (!this.eof) {\n const c = this.ccittFaxDecoder.readNextChar();\n if (c === -1) {\n this.eof = true;\n return;\n }\n this.ensureBuffer(this.bufferLength + 1);\n this.buffer[this.bufferLength++] = c;\n }\n }\n}\n\nexport { CCITTFaxStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Copyright 1996-2003 Glyph & Cog, LLC\n *\n * The CCITT stream implementation contained in this file is a JavaScript port\n * of XPDF's implementation, made available under the Apache 2.0 open source\n * license.\n */\n\nimport { FormatError, info } from \"../shared/util.js\";\n\n/**\n * @typedef {Object} CCITTFaxDecoderSource\n * @property {function} next - Method that return one byte of data for decoding,\n * or -1 when EOF is reached.\n */\n\nconst ccittEOL = -2;\nconst ccittEOF = -1;\nconst twoDimPass = 0;\nconst twoDimHoriz = 1;\nconst twoDimVert0 = 2;\nconst twoDimVertR1 = 3;\nconst twoDimVertL1 = 4;\nconst twoDimVertR2 = 5;\nconst twoDimVertL2 = 6;\nconst twoDimVertR3 = 7;\nconst twoDimVertL3 = 8;\n\n// prettier-ignore\nconst twoDimTable = [\n [-1, -1], [-1, -1], // 000000x\n [7, twoDimVertL3], // 0000010\n [7, twoDimVertR3], // 0000011\n [6, twoDimVertL2], [6, twoDimVertL2], // 000010x\n [6, twoDimVertR2], [6, twoDimVertR2], // 000011x\n [4, twoDimPass], [4, twoDimPass], // 0001xxx\n [4, twoDimPass], [4, twoDimPass],\n [4, twoDimPass], [4, twoDimPass],\n [4, twoDimPass], [4, twoDimPass],\n [3, twoDimHoriz], [3, twoDimHoriz], // 001xxxx\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimVertL1], [3, twoDimVertL1], // 010xxxx\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertR1], [3, twoDimVertR1], // 011xxxx\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [1, twoDimVert0], [1, twoDimVert0], // 1xxxxxx\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0]\n];\n\n// prettier-ignore\nconst whiteTable1 = [\n [-1, -1], // 00000\n [12, ccittEOL], // 00001\n [-1, -1], [-1, -1], // 0001x\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 001xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 010xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 011xx\n [11, 1792], [11, 1792], // 1000x\n [12, 1984], // 10010\n [12, 2048], // 10011\n [12, 2112], // 10100\n [12, 2176], // 10101\n [12, 2240], // 10110\n [12, 2304], // 10111\n [11, 1856], [11, 1856], // 1100x\n [11, 1920], [11, 1920], // 1101x\n [12, 2368], // 11100\n [12, 2432], // 11101\n [12, 2496], // 11110\n [12, 2560] // 11111\n];\n\n// prettier-ignore\nconst whiteTable2 = [\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 0000000xx\n [8, 29], [8, 29], // 00000010x\n [8, 30], [8, 30], // 00000011x\n [8, 45], [8, 45], // 00000100x\n [8, 46], [8, 46], // 00000101x\n [7, 22], [7, 22], [7, 22], [7, 22], // 0000011xx\n [7, 23], [7, 23], [7, 23], [7, 23], // 0000100xx\n [8, 47], [8, 47], // 00001010x\n [8, 48], [8, 48], // 00001011x\n [6, 13], [6, 13], [6, 13], [6, 13], // 000011xxx\n [6, 13], [6, 13], [6, 13], [6, 13],\n [7, 20], [7, 20], [7, 20], [7, 20], // 0001000xx\n [8, 33], [8, 33], // 00010010x\n [8, 34], [8, 34], // 00010011x\n [8, 35], [8, 35], // 00010100x\n [8, 36], [8, 36], // 00010101x\n [8, 37], [8, 37], // 00010110x\n [8, 38], [8, 38], // 00010111x\n [7, 19], [7, 19], [7, 19], [7, 19], // 0001100xx\n [8, 31], [8, 31], // 00011010x\n [8, 32], [8, 32], // 00011011x\n [6, 1], [6, 1], [6, 1], [6, 1], // 000111xxx\n [6, 1], [6, 1], [6, 1], [6, 1],\n [6, 12], [6, 12], [6, 12], [6, 12], // 001000xxx\n [6, 12], [6, 12], [6, 12], [6, 12],\n [8, 53], [8, 53], // 00100100x\n [8, 54], [8, 54], // 00100101x\n [7, 26], [7, 26], [7, 26], [7, 26], // 0010011xx\n [8, 39], [8, 39], // 00101000x\n [8, 40], [8, 40], // 00101001x\n [8, 41], [8, 41], // 00101010x\n [8, 42], [8, 42], // 00101011x\n [8, 43], [8, 43], // 00101100x\n [8, 44], [8, 44], // 00101101x\n [7, 21], [7, 21], [7, 21], [7, 21], // 0010111xx\n [7, 28], [7, 28], [7, 28], [7, 28], // 0011000xx\n [8, 61], [8, 61], // 00110010x\n [8, 62], [8, 62], // 00110011x\n [8, 63], [8, 63], // 00110100x\n [8, 0], [8, 0], // 00110101x\n [8, 320], [8, 320], // 00110110x\n [8, 384], [8, 384], // 00110111x\n [5, 10], [5, 10], [5, 10], [5, 10], // 00111xxxx\n [5, 10], [5, 10], [5, 10], [5, 10],\n [5, 10], [5, 10], [5, 10], [5, 10],\n [5, 10], [5, 10], [5, 10], [5, 10],\n [5, 11], [5, 11], [5, 11], [5, 11], // 01000xxxx\n [5, 11], [5, 11], [5, 11], [5, 11],\n [5, 11], [5, 11], [5, 11], [5, 11],\n [5, 11], [5, 11], [5, 11], [5, 11],\n [7, 27], [7, 27], [7, 27], [7, 27], // 0100100xx\n [8, 59], [8, 59], // 01001010x\n [8, 60], [8, 60], // 01001011x\n [9, 1472], // 010011000\n [9, 1536], // 010011001\n [9, 1600], // 010011010\n [9, 1728], // 010011011\n [7, 18], [7, 18], [7, 18], [7, 18], // 0100111xx\n [7, 24], [7, 24], [7, 24], [7, 24], // 0101000xx\n [8, 49], [8, 49], // 01010010x\n [8, 50], [8, 50], // 01010011x\n [8, 51], [8, 51], // 01010100x\n [8, 52], [8, 52], // 01010101x\n [7, 25], [7, 25], [7, 25], [7, 25], // 0101011xx\n [8, 55], [8, 55], // 01011000x\n [8, 56], [8, 56], // 01011001x\n [8, 57], [8, 57], // 01011010x\n [8, 58], [8, 58], // 01011011x\n [6, 192], [6, 192], [6, 192], [6, 192], // 010111xxx\n [6, 192], [6, 192], [6, 192], [6, 192],\n [6, 1664], [6, 1664], [6, 1664], [6, 1664], // 011000xxx\n [6, 1664], [6, 1664], [6, 1664], [6, 1664],\n [8, 448], [8, 448], // 01100100x\n [8, 512], [8, 512], // 01100101x\n [9, 704], // 011001100\n [9, 768], // 011001101\n [8, 640], [8, 640], // 01100111x\n [8, 576], [8, 576], // 01101000x\n [9, 832], // 011010010\n [9, 896], // 011010011\n [9, 960], // 011010100\n [9, 1024], // 011010101\n [9, 1088], // 011010110\n [9, 1152], // 011010111\n [9, 1216], // 011011000\n [9, 1280], // 011011001\n [9, 1344], // 011011010\n [9, 1408], // 011011011\n [7, 256], [7, 256], [7, 256], [7, 256], // 0110111xx\n [4, 2], [4, 2], [4, 2], [4, 2], // 0111xxxxx\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 3], [4, 3], [4, 3], [4, 3], // 1000xxxxx\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [5, 128], [5, 128], [5, 128], [5, 128], // 10010xxxx\n [5, 128], [5, 128], [5, 128], [5, 128],\n [5, 128], [5, 128], [5, 128], [5, 128],\n [5, 128], [5, 128], [5, 128], [5, 128],\n [5, 8], [5, 8], [5, 8], [5, 8], // 10011xxxx\n [5, 8], [5, 8], [5, 8], [5, 8],\n [5, 8], [5, 8], [5, 8], [5, 8],\n [5, 8], [5, 8], [5, 8], [5, 8],\n [5, 9], [5, 9], [5, 9], [5, 9], // 10100xxxx\n [5, 9], [5, 9], [5, 9], [5, 9],\n [5, 9], [5, 9], [5, 9], [5, 9],\n [5, 9], [5, 9], [5, 9], [5, 9],\n [6, 16], [6, 16], [6, 16], [6, 16], // 101010xxx\n [6, 16], [6, 16], [6, 16], [6, 16],\n [6, 17], [6, 17], [6, 17], [6, 17], // 101011xxx\n [6, 17], [6, 17], [6, 17], [6, 17],\n [4, 4], [4, 4], [4, 4], [4, 4], // 1011xxxxx\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 5], [4, 5], [4, 5], [4, 5], // 1100xxxxx\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [6, 14], [6, 14], [6, 14], [6, 14], // 110100xxx\n [6, 14], [6, 14], [6, 14], [6, 14],\n [6, 15], [6, 15], [6, 15], [6, 15], // 110101xxx\n [6, 15], [6, 15], [6, 15], [6, 15],\n [5, 64], [5, 64], [5, 64], [5, 64], // 11011xxxx\n [5, 64], [5, 64], [5, 64], [5, 64],\n [5, 64], [5, 64], [5, 64], [5, 64],\n [5, 64], [5, 64], [5, 64], [5, 64],\n [4, 6], [4, 6], [4, 6], [4, 6], // 1110xxxxx\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 7], [4, 7], [4, 7], [4, 7], // 1111xxxxx\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7]\n];\n\n// prettier-ignore\nconst blackTable1 = [\n [-1, -1], [-1, -1], // 000000000000x\n [12, ccittEOL], [12, ccittEOL], // 000000000001x\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000001xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000010xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000011xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000100xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000101xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000110xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000111xx\n [11, 1792], [11, 1792], [11, 1792], [11, 1792], // 00000001000xx\n [12, 1984], [12, 1984], // 000000010010x\n [12, 2048], [12, 2048], // 000000010011x\n [12, 2112], [12, 2112], // 000000010100x\n [12, 2176], [12, 2176], // 000000010101x\n [12, 2240], [12, 2240], // 000000010110x\n [12, 2304], [12, 2304], // 000000010111x\n [11, 1856], [11, 1856], [11, 1856], [11, 1856], // 00000001100xx\n [11, 1920], [11, 1920], [11, 1920], [11, 1920], // 00000001101xx\n [12, 2368], [12, 2368], // 000000011100x\n [12, 2432], [12, 2432], // 000000011101x\n [12, 2496], [12, 2496], // 000000011110x\n [12, 2560], [12, 2560], // 000000011111x\n [10, 18], [10, 18], [10, 18], [10, 18], // 0000001000xxx\n [10, 18], [10, 18], [10, 18], [10, 18],\n [12, 52], [12, 52], // 000000100100x\n [13, 640], // 0000001001010\n [13, 704], // 0000001001011\n [13, 768], // 0000001001100\n [13, 832], // 0000001001101\n [12, 55], [12, 55], // 000000100111x\n [12, 56], [12, 56], // 000000101000x\n [13, 1280], // 0000001010010\n [13, 1344], // 0000001010011\n [13, 1408], // 0000001010100\n [13, 1472], // 0000001010101\n [12, 59], [12, 59], // 000000101011x\n [12, 60], [12, 60], // 000000101100x\n [13, 1536], // 0000001011010\n [13, 1600], // 0000001011011\n [11, 24], [11, 24], [11, 24], [11, 24], // 00000010111xx\n [11, 25], [11, 25], [11, 25], [11, 25], // 00000011000xx\n [13, 1664], // 0000001100100\n [13, 1728], // 0000001100101\n [12, 320], [12, 320], // 000000110011x\n [12, 384], [12, 384], // 000000110100x\n [12, 448], [12, 448], // 000000110101x\n [13, 512], // 0000001101100\n [13, 576], // 0000001101101\n [12, 53], [12, 53], // 000000110111x\n [12, 54], [12, 54], // 000000111000x\n [13, 896], // 0000001110010\n [13, 960], // 0000001110011\n [13, 1024], // 0000001110100\n [13, 1088], // 0000001110101\n [13, 1152], // 0000001110110\n [13, 1216], // 0000001110111\n [10, 64], [10, 64], [10, 64], [10, 64], // 0000001111xxx\n [10, 64], [10, 64], [10, 64], [10, 64]\n];\n\n// prettier-ignore\nconst blackTable2 = [\n [8, 13], [8, 13], [8, 13], [8, 13], // 00000100xxxx\n [8, 13], [8, 13], [8, 13], [8, 13],\n [8, 13], [8, 13], [8, 13], [8, 13],\n [8, 13], [8, 13], [8, 13], [8, 13],\n [11, 23], [11, 23], // 00000101000x\n [12, 50], // 000001010010\n [12, 51], // 000001010011\n [12, 44], // 000001010100\n [12, 45], // 000001010101\n [12, 46], // 000001010110\n [12, 47], // 000001010111\n [12, 57], // 000001011000\n [12, 58], // 000001011001\n [12, 61], // 000001011010\n [12, 256], // 000001011011\n [10, 16], [10, 16], [10, 16], [10, 16], // 0000010111xx\n [10, 17], [10, 17], [10, 17], [10, 17], // 0000011000xx\n [12, 48], // 000001100100\n [12, 49], // 000001100101\n [12, 62], // 000001100110\n [12, 63], // 000001100111\n [12, 30], // 000001101000\n [12, 31], // 000001101001\n [12, 32], // 000001101010\n [12, 33], // 000001101011\n [12, 40], // 000001101100\n [12, 41], // 000001101101\n [11, 22], [11, 22], // 00000110111x\n [8, 14], [8, 14], [8, 14], [8, 14], // 00000111xxxx\n [8, 14], [8, 14], [8, 14], [8, 14],\n [8, 14], [8, 14], [8, 14], [8, 14],\n [8, 14], [8, 14], [8, 14], [8, 14],\n [7, 10], [7, 10], [7, 10], [7, 10], // 0000100xxxxx\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 11], [7, 11], [7, 11], [7, 11], // 0000101xxxxx\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [9, 15], [9, 15], [9, 15], [9, 15], // 000011000xxx\n [9, 15], [9, 15], [9, 15], [9, 15],\n [12, 128], // 000011001000\n [12, 192], // 000011001001\n [12, 26], // 000011001010\n [12, 27], // 000011001011\n [12, 28], // 000011001100\n [12, 29], // 000011001101\n [11, 19], [11, 19], // 00001100111x\n [11, 20], [11, 20], // 00001101000x\n [12, 34], // 000011010010\n [12, 35], // 000011010011\n [12, 36], // 000011010100\n [12, 37], // 000011010101\n [12, 38], // 000011010110\n [12, 39], // 000011010111\n [11, 21], [11, 21], // 00001101100x\n [12, 42], // 000011011010\n [12, 43], // 000011011011\n [10, 0], [10, 0], [10, 0], [10, 0], // 0000110111xx\n [7, 12], [7, 12], [7, 12], [7, 12], // 0000111xxxxx\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12]\n];\n\n// prettier-ignore\nconst blackTable3 = [\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 0000xx\n [6, 9], // 000100\n [6, 8], // 000101\n [5, 7], [5, 7], // 00011x\n [4, 6], [4, 6], [4, 6], [4, 6], // 0010xx\n [4, 5], [4, 5], [4, 5], [4, 5], // 0011xx\n [3, 1], [3, 1], [3, 1], [3, 1], // 010xxx\n [3, 1], [3, 1], [3, 1], [3, 1],\n [3, 4], [3, 4], [3, 4], [3, 4], // 011xxx\n [3, 4], [3, 4], [3, 4], [3, 4],\n [2, 3], [2, 3], [2, 3], [2, 3], // 10xxxx\n [2, 3], [2, 3], [2, 3], [2, 3],\n [2, 3], [2, 3], [2, 3], [2, 3],\n [2, 3], [2, 3], [2, 3], [2, 3],\n [2, 2], [2, 2], [2, 2], [2, 2], // 11xxxx\n [2, 2], [2, 2], [2, 2], [2, 2],\n [2, 2], [2, 2], [2, 2], [2, 2],\n [2, 2], [2, 2], [2, 2], [2, 2]\n];\n\n/**\n * @param {CCITTFaxDecoderSource} source - The data which should be decoded.\n * @param {Object} [options] - Decoding options.\n */\nclass CCITTFaxDecoder {\n constructor(source, options = {}) {\n if (!source || typeof source.next !== \"function\") {\n throw new Error('CCITTFaxDecoder - invalid \"source\" parameter.');\n }\n this.source = source;\n this.eof = false;\n\n this.encoding = options.K || 0;\n this.eoline = options.EndOfLine || false;\n this.byteAlign = options.EncodedByteAlign || false;\n this.columns = options.Columns || 1728;\n this.rows = options.Rows || 0;\n let eoblock = options.EndOfBlock;\n if (eoblock === null || eoblock === undefined) {\n eoblock = true;\n }\n this.eoblock = eoblock;\n this.black = options.BlackIs1 || false;\n\n this.codingLine = new Uint32Array(this.columns + 1);\n this.refLine = new Uint32Array(this.columns + 2);\n\n this.codingLine[0] = this.columns;\n this.codingPos = 0;\n\n this.row = 0;\n this.nextLine2D = this.encoding < 0;\n this.inputBits = 0;\n this.inputBuf = 0;\n this.outputBits = 0;\n this.rowsDone = false;\n\n let code1;\n while ((code1 = this._lookBits(12)) === 0) {\n this._eatBits(1);\n }\n if (code1 === 1) {\n this._eatBits(12);\n }\n if (this.encoding > 0) {\n this.nextLine2D = !this._lookBits(1);\n this._eatBits(1);\n }\n }\n\n readNextChar() {\n if (this.eof) {\n return -1;\n }\n const refLine = this.refLine;\n const codingLine = this.codingLine;\n const columns = this.columns;\n\n let refPos, blackPixels, bits, i;\n\n if (this.outputBits === 0) {\n if (this.rowsDone) {\n this.eof = true;\n }\n if (this.eof) {\n return -1;\n }\n this.err = false;\n\n let code1, code2, code3;\n if (this.nextLine2D) {\n for (i = 0; codingLine[i] < columns; ++i) {\n refLine[i] = codingLine[i];\n }\n refLine[i++] = columns;\n refLine[i] = columns;\n codingLine[0] = 0;\n this.codingPos = 0;\n refPos = 0;\n blackPixels = 0;\n\n while (codingLine[this.codingPos] < columns) {\n code1 = this._getTwoDimCode();\n switch (code1) {\n case twoDimPass:\n this._addPixels(refLine[refPos + 1], blackPixels);\n if (refLine[refPos + 1] < columns) {\n refPos += 2;\n }\n break;\n case twoDimHoriz:\n code1 = code2 = 0;\n if (blackPixels) {\n do {\n code1 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n do {\n code2 += code3 = this._getWhiteCode();\n } while (code3 >= 64);\n } else {\n do {\n code1 += code3 = this._getWhiteCode();\n } while (code3 >= 64);\n do {\n code2 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n }\n this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n if (codingLine[this.codingPos] < columns) {\n this._addPixels(\n codingLine[this.codingPos] + code2,\n blackPixels ^ 1\n );\n }\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n break;\n case twoDimVertR3:\n this._addPixels(refLine[refPos] + 3, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertR2:\n this._addPixels(refLine[refPos] + 2, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertR1:\n this._addPixels(refLine[refPos] + 1, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVert0:\n this._addPixels(refLine[refPos], blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL3:\n this._addPixelsNeg(refLine[refPos] - 3, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL2:\n this._addPixelsNeg(refLine[refPos] - 2, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL1:\n this._addPixelsNeg(refLine[refPos] - 1, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case ccittEOF:\n this._addPixels(columns, 0);\n this.eof = true;\n break;\n default:\n info(\"bad 2d code\");\n this._addPixels(columns, 0);\n this.err = true;\n }\n }\n } else {\n codingLine[0] = 0;\n this.codingPos = 0;\n blackPixels = 0;\n while (codingLine[this.codingPos] < columns) {\n code1 = 0;\n if (blackPixels) {\n do {\n code1 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n } else {\n do {\n code1 += code3 = this._getWhiteCode();\n } while (code3 >= 64);\n }\n this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n blackPixels ^= 1;\n }\n }\n\n let gotEOL = false;\n\n if (this.byteAlign) {\n this.inputBits &= ~7;\n }\n\n if (!this.eoblock && this.row === this.rows - 1) {\n this.rowsDone = true;\n } else {\n code1 = this._lookBits(12);\n if (this.eoline) {\n while (code1 !== ccittEOF && code1 !== 1) {\n this._eatBits(1);\n code1 = this._lookBits(12);\n }\n } else {\n while (code1 === 0) {\n this._eatBits(1);\n code1 = this._lookBits(12);\n }\n }\n if (code1 === 1) {\n this._eatBits(12);\n gotEOL = true;\n } else if (code1 === ccittEOF) {\n this.eof = true;\n }\n }\n\n if (!this.eof && this.encoding > 0 && !this.rowsDone) {\n this.nextLine2D = !this._lookBits(1);\n this._eatBits(1);\n }\n\n if (this.eoblock && gotEOL && this.byteAlign) {\n code1 = this._lookBits(12);\n if (code1 === 1) {\n this._eatBits(12);\n if (this.encoding > 0) {\n this._lookBits(1);\n this._eatBits(1);\n }\n if (this.encoding >= 0) {\n for (i = 0; i < 4; ++i) {\n code1 = this._lookBits(12);\n if (code1 !== 1) {\n info(\"bad rtc code: \" + code1);\n }\n this._eatBits(12);\n if (this.encoding > 0) {\n this._lookBits(1);\n this._eatBits(1);\n }\n }\n }\n this.eof = true;\n }\n } else if (this.err && this.eoline) {\n while (true) {\n code1 = this._lookBits(13);\n if (code1 === ccittEOF) {\n this.eof = true;\n return -1;\n }\n if (code1 >> 1 === 1) {\n break;\n }\n this._eatBits(1);\n }\n this._eatBits(12);\n if (this.encoding > 0) {\n this._eatBits(1);\n this.nextLine2D = !(code1 & 1);\n }\n }\n\n if (codingLine[0] > 0) {\n this.outputBits = codingLine[(this.codingPos = 0)];\n } else {\n this.outputBits = codingLine[(this.codingPos = 1)];\n }\n this.row++;\n }\n\n let c;\n if (this.outputBits >= 8) {\n c = this.codingPos & 1 ? 0 : 0xff;\n this.outputBits -= 8;\n if (this.outputBits === 0 && codingLine[this.codingPos] < columns) {\n this.codingPos++;\n this.outputBits =\n codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n }\n } else {\n bits = 8;\n c = 0;\n do {\n if (typeof this.outputBits !== \"number\") {\n throw new FormatError(\n 'Invalid /CCITTFaxDecode data, \"outputBits\" must be a number.'\n );\n }\n\n if (this.outputBits > bits) {\n c <<= bits;\n if (!(this.codingPos & 1)) {\n c |= 0xff >> (8 - bits);\n }\n this.outputBits -= bits;\n bits = 0;\n } else {\n c <<= this.outputBits;\n if (!(this.codingPos & 1)) {\n c |= 0xff >> (8 - this.outputBits);\n }\n bits -= this.outputBits;\n this.outputBits = 0;\n if (codingLine[this.codingPos] < columns) {\n this.codingPos++;\n this.outputBits =\n codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n } else if (bits > 0) {\n c <<= bits;\n bits = 0;\n }\n }\n } while (bits);\n }\n if (this.black) {\n c ^= 0xff;\n }\n return c;\n }\n\n /**\n * @private\n */\n _addPixels(a1, blackPixels) {\n const codingLine = this.codingLine;\n let codingPos = this.codingPos;\n\n if (a1 > codingLine[codingPos]) {\n if (a1 > this.columns) {\n info(\"row is wrong length\");\n this.err = true;\n a1 = this.columns;\n }\n if ((codingPos & 1) ^ blackPixels) {\n ++codingPos;\n }\n\n codingLine[codingPos] = a1;\n }\n this.codingPos = codingPos;\n }\n\n /**\n * @private\n */\n _addPixelsNeg(a1, blackPixels) {\n const codingLine = this.codingLine;\n let codingPos = this.codingPos;\n\n if (a1 > codingLine[codingPos]) {\n if (a1 > this.columns) {\n info(\"row is wrong length\");\n this.err = true;\n a1 = this.columns;\n }\n if ((codingPos & 1) ^ blackPixels) {\n ++codingPos;\n }\n\n codingLine[codingPos] = a1;\n } else if (a1 < codingLine[codingPos]) {\n if (a1 < 0) {\n info(\"invalid code\");\n this.err = true;\n a1 = 0;\n }\n while (codingPos > 0 && a1 < codingLine[codingPos - 1]) {\n --codingPos;\n }\n codingLine[codingPos] = a1;\n }\n\n this.codingPos = codingPos;\n }\n\n /**\n * This function returns the code found from the table.\n * The start and end parameters set the boundaries for searching the table.\n * The limit parameter is optional. Function returns an array with three\n * values. The first array element indicates whether a valid code is being\n * returned. The second array element is the actual code. The third array\n * element indicates whether EOF was reached.\n * @private\n */\n _findTableCode(start, end, table, limit) {\n const limitValue = limit || 0;\n for (let i = start; i <= end; ++i) {\n let code = this._lookBits(i);\n if (code === ccittEOF) {\n return [true, 1, false];\n }\n if (i < end) {\n code <<= end - i;\n }\n if (!limitValue || code >= limitValue) {\n const p = table[code - limitValue];\n if (p[0] === i) {\n this._eatBits(i);\n return [true, p[1], true];\n }\n }\n }\n return [false, 0, false];\n }\n\n /**\n * @private\n */\n _getTwoDimCode() {\n let code = 0;\n let p;\n if (this.eoblock) {\n code = this._lookBits(7);\n p = twoDimTable[code];\n if (p && p[0] > 0) {\n this._eatBits(p[0]);\n return p[1];\n }\n } else {\n const result = this._findTableCode(1, 7, twoDimTable);\n if (result[0] && result[2]) {\n return result[1];\n }\n }\n info(\"Bad two dim code\");\n return ccittEOF;\n }\n\n /**\n * @private\n */\n _getWhiteCode() {\n let code = 0;\n let p;\n if (this.eoblock) {\n code = this._lookBits(12);\n if (code === ccittEOF) {\n return 1;\n }\n\n if (code >> 5 === 0) {\n p = whiteTable1[code];\n } else {\n p = whiteTable2[code >> 3];\n }\n\n if (p[0] > 0) {\n this._eatBits(p[0]);\n return p[1];\n }\n } else {\n let result = this._findTableCode(1, 9, whiteTable2);\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(11, 12, whiteTable1);\n if (result[0]) {\n return result[1];\n }\n }\n info(\"bad white code\");\n this._eatBits(1);\n return 1;\n }\n\n /**\n * @private\n */\n _getBlackCode() {\n let code, p;\n if (this.eoblock) {\n code = this._lookBits(13);\n if (code === ccittEOF) {\n return 1;\n }\n if (code >> 7 === 0) {\n p = blackTable1[code];\n } else if (code >> 9 === 0 && code >> 7 !== 0) {\n p = blackTable2[(code >> 1) - 64];\n } else {\n p = blackTable3[code >> 7];\n }\n\n if (p[0] > 0) {\n this._eatBits(p[0]);\n return p[1];\n }\n } else {\n let result = this._findTableCode(2, 6, blackTable3);\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(7, 12, blackTable2, 64);\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(10, 13, blackTable1);\n if (result[0]) {\n return result[1];\n }\n }\n info(\"bad black code\");\n this._eatBits(1);\n return 1;\n }\n\n /**\n * @private\n */\n _lookBits(n) {\n let c;\n while (this.inputBits < n) {\n if ((c = this.source.next()) === -1) {\n if (this.inputBits === 0) {\n return ccittEOF;\n }\n return (this.inputBuf << (n - this.inputBits)) & (0xffff >> (16 - n));\n }\n this.inputBuf = (this.inputBuf << 8) | c;\n this.inputBits += 8;\n }\n return (this.inputBuf >> (this.inputBits - n)) & (0xffff >> (16 - n));\n }\n\n /**\n * @private\n */\n _eatBits(n) {\n if ((this.inputBits -= n) < 0) {\n this.inputBits = 0;\n }\n }\n}\n\nexport { CCITTFaxDecoder };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Copyright 1996-2003 Glyph & Cog, LLC\n *\n * The flate stream implementation contained in this file is a JavaScript port\n * of XPDF's implementation, made available under the Apache 2.0 open source\n * license.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { FormatError } from \"../shared/util.js\";\n\nconst codeLenCodeMap = new Int32Array([\n 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15,\n]);\n\nconst lengthDecode = new Int32Array([\n 0x00003, 0x00004, 0x00005, 0x00006, 0x00007, 0x00008, 0x00009, 0x0000a,\n 0x1000b, 0x1000d, 0x1000f, 0x10011, 0x20013, 0x20017, 0x2001b, 0x2001f,\n 0x30023, 0x3002b, 0x30033, 0x3003b, 0x40043, 0x40053, 0x40063, 0x40073,\n 0x50083, 0x500a3, 0x500c3, 0x500e3, 0x00102, 0x00102, 0x00102,\n]);\n\nconst distDecode = new Int32Array([\n 0x00001, 0x00002, 0x00003, 0x00004, 0x10005, 0x10007, 0x20009, 0x2000d,\n 0x30011, 0x30019, 0x40021, 0x40031, 0x50041, 0x50061, 0x60081, 0x600c1,\n 0x70101, 0x70181, 0x80201, 0x80301, 0x90401, 0x90601, 0xa0801, 0xa0c01,\n 0xb1001, 0xb1801, 0xc2001, 0xc3001, 0xd4001, 0xd6001,\n]);\n\nconst fixedLitCodeTab = [\n new Int32Array([\n 0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c0,\n 0x70108, 0x80060, 0x80020, 0x900a0, 0x80000, 0x80080, 0x80040, 0x900e0,\n 0x70104, 0x80058, 0x80018, 0x90090, 0x70114, 0x80078, 0x80038, 0x900d0,\n 0x7010c, 0x80068, 0x80028, 0x900b0, 0x80008, 0x80088, 0x80048, 0x900f0,\n 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c8,\n 0x7010a, 0x80064, 0x80024, 0x900a8, 0x80004, 0x80084, 0x80044, 0x900e8,\n 0x70106, 0x8005c, 0x8001c, 0x90098, 0x70116, 0x8007c, 0x8003c, 0x900d8,\n 0x7010e, 0x8006c, 0x8002c, 0x900b8, 0x8000c, 0x8008c, 0x8004c, 0x900f8,\n 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c4,\n 0x70109, 0x80062, 0x80022, 0x900a4, 0x80002, 0x80082, 0x80042, 0x900e4,\n 0x70105, 0x8005a, 0x8001a, 0x90094, 0x70115, 0x8007a, 0x8003a, 0x900d4,\n 0x7010d, 0x8006a, 0x8002a, 0x900b4, 0x8000a, 0x8008a, 0x8004a, 0x900f4,\n 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cc,\n 0x7010b, 0x80066, 0x80026, 0x900ac, 0x80006, 0x80086, 0x80046, 0x900ec,\n 0x70107, 0x8005e, 0x8001e, 0x9009c, 0x70117, 0x8007e, 0x8003e, 0x900dc,\n 0x7010f, 0x8006e, 0x8002e, 0x900bc, 0x8000e, 0x8008e, 0x8004e, 0x900fc,\n 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c2,\n 0x70108, 0x80061, 0x80021, 0x900a2, 0x80001, 0x80081, 0x80041, 0x900e2,\n 0x70104, 0x80059, 0x80019, 0x90092, 0x70114, 0x80079, 0x80039, 0x900d2,\n 0x7010c, 0x80069, 0x80029, 0x900b2, 0x80009, 0x80089, 0x80049, 0x900f2,\n 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900ca,\n 0x7010a, 0x80065, 0x80025, 0x900aa, 0x80005, 0x80085, 0x80045, 0x900ea,\n 0x70106, 0x8005d, 0x8001d, 0x9009a, 0x70116, 0x8007d, 0x8003d, 0x900da,\n 0x7010e, 0x8006d, 0x8002d, 0x900ba, 0x8000d, 0x8008d, 0x8004d, 0x900fa,\n 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c6,\n 0x70109, 0x80063, 0x80023, 0x900a6, 0x80003, 0x80083, 0x80043, 0x900e6,\n 0x70105, 0x8005b, 0x8001b, 0x90096, 0x70115, 0x8007b, 0x8003b, 0x900d6,\n 0x7010d, 0x8006b, 0x8002b, 0x900b6, 0x8000b, 0x8008b, 0x8004b, 0x900f6,\n 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900ce,\n 0x7010b, 0x80067, 0x80027, 0x900ae, 0x80007, 0x80087, 0x80047, 0x900ee,\n 0x70107, 0x8005f, 0x8001f, 0x9009e, 0x70117, 0x8007f, 0x8003f, 0x900de,\n 0x7010f, 0x8006f, 0x8002f, 0x900be, 0x8000f, 0x8008f, 0x8004f, 0x900fe,\n 0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c1,\n 0x70108, 0x80060, 0x80020, 0x900a1, 0x80000, 0x80080, 0x80040, 0x900e1,\n 0x70104, 0x80058, 0x80018, 0x90091, 0x70114, 0x80078, 0x80038, 0x900d1,\n 0x7010c, 0x80068, 0x80028, 0x900b1, 0x80008, 0x80088, 0x80048, 0x900f1,\n 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c9,\n 0x7010a, 0x80064, 0x80024, 0x900a9, 0x80004, 0x80084, 0x80044, 0x900e9,\n 0x70106, 0x8005c, 0x8001c, 0x90099, 0x70116, 0x8007c, 0x8003c, 0x900d9,\n 0x7010e, 0x8006c, 0x8002c, 0x900b9, 0x8000c, 0x8008c, 0x8004c, 0x900f9,\n 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c5,\n 0x70109, 0x80062, 0x80022, 0x900a5, 0x80002, 0x80082, 0x80042, 0x900e5,\n 0x70105, 0x8005a, 0x8001a, 0x90095, 0x70115, 0x8007a, 0x8003a, 0x900d5,\n 0x7010d, 0x8006a, 0x8002a, 0x900b5, 0x8000a, 0x8008a, 0x8004a, 0x900f5,\n 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cd,\n 0x7010b, 0x80066, 0x80026, 0x900ad, 0x80006, 0x80086, 0x80046, 0x900ed,\n 0x70107, 0x8005e, 0x8001e, 0x9009d, 0x70117, 0x8007e, 0x8003e, 0x900dd,\n 0x7010f, 0x8006e, 0x8002e, 0x900bd, 0x8000e, 0x8008e, 0x8004e, 0x900fd,\n 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c3,\n 0x70108, 0x80061, 0x80021, 0x900a3, 0x80001, 0x80081, 0x80041, 0x900e3,\n 0x70104, 0x80059, 0x80019, 0x90093, 0x70114, 0x80079, 0x80039, 0x900d3,\n 0x7010c, 0x80069, 0x80029, 0x900b3, 0x80009, 0x80089, 0x80049, 0x900f3,\n 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900cb,\n 0x7010a, 0x80065, 0x80025, 0x900ab, 0x80005, 0x80085, 0x80045, 0x900eb,\n 0x70106, 0x8005d, 0x8001d, 0x9009b, 0x70116, 0x8007d, 0x8003d, 0x900db,\n 0x7010e, 0x8006d, 0x8002d, 0x900bb, 0x8000d, 0x8008d, 0x8004d, 0x900fb,\n 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c7,\n 0x70109, 0x80063, 0x80023, 0x900a7, 0x80003, 0x80083, 0x80043, 0x900e7,\n 0x70105, 0x8005b, 0x8001b, 0x90097, 0x70115, 0x8007b, 0x8003b, 0x900d7,\n 0x7010d, 0x8006b, 0x8002b, 0x900b7, 0x8000b, 0x8008b, 0x8004b, 0x900f7,\n 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900cf,\n 0x7010b, 0x80067, 0x80027, 0x900af, 0x80007, 0x80087, 0x80047, 0x900ef,\n 0x70107, 0x8005f, 0x8001f, 0x9009f, 0x70117, 0x8007f, 0x8003f, 0x900df,\n 0x7010f, 0x8006f, 0x8002f, 0x900bf, 0x8000f, 0x8008f, 0x8004f, 0x900ff,\n ]),\n 9,\n];\n\nconst fixedDistCodeTab = [\n new Int32Array([\n 0x50000, 0x50010, 0x50008, 0x50018, 0x50004, 0x50014, 0x5000c, 0x5001c,\n 0x50002, 0x50012, 0x5000a, 0x5001a, 0x50006, 0x50016, 0x5000e, 0x00000,\n 0x50001, 0x50011, 0x50009, 0x50019, 0x50005, 0x50015, 0x5000d, 0x5001d,\n 0x50003, 0x50013, 0x5000b, 0x5001b, 0x50007, 0x50017, 0x5000f, 0x00000,\n ]),\n 5,\n];\n\nclass FlateStream extends DecodeStream {\n constructor(str, maybeLength) {\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n\n const cmf = str.getByte();\n const flg = str.getByte();\n if (cmf === -1 || flg === -1) {\n throw new FormatError(`Invalid header in flate stream: ${cmf}, ${flg}`);\n }\n if ((cmf & 0x0f) !== 0x08) {\n throw new FormatError(\n `Unknown compression method in flate stream: ${cmf}, ${flg}`\n );\n }\n if (((cmf << 8) + flg) % 31 !== 0) {\n throw new FormatError(`Bad FCHECK in flate stream: ${cmf}, ${flg}`);\n }\n if (flg & 0x20) {\n throw new FormatError(`FDICT bit set in flate stream: ${cmf}, ${flg}`);\n }\n\n this.codeSize = 0;\n this.codeBuf = 0;\n }\n\n getBits(bits) {\n const str = this.str;\n let codeSize = this.codeSize;\n let codeBuf = this.codeBuf;\n\n let b;\n while (codeSize < bits) {\n if ((b = str.getByte()) === -1) {\n throw new FormatError(\"Bad encoding in flate stream\");\n }\n codeBuf |= b << codeSize;\n codeSize += 8;\n }\n b = codeBuf & ((1 << bits) - 1);\n this.codeBuf = codeBuf >> bits;\n this.codeSize = codeSize -= bits;\n\n return b;\n }\n\n getCode(table) {\n const str = this.str;\n const codes = table[0];\n const maxLen = table[1];\n let codeSize = this.codeSize;\n let codeBuf = this.codeBuf;\n\n let b;\n while (codeSize < maxLen) {\n if ((b = str.getByte()) === -1) {\n // premature end of stream. code might however still be valid.\n // codeSize < codeLen check below guards against incomplete codeVal.\n break;\n }\n codeBuf |= b << codeSize;\n codeSize += 8;\n }\n const code = codes[codeBuf & ((1 << maxLen) - 1)];\n const codeLen = code >> 16;\n const codeVal = code & 0xffff;\n if (codeLen < 1 || codeSize < codeLen) {\n throw new FormatError(\"Bad encoding in flate stream\");\n }\n this.codeBuf = codeBuf >> codeLen;\n this.codeSize = codeSize - codeLen;\n return codeVal;\n }\n\n generateHuffmanTable(lengths) {\n const n = lengths.length;\n\n // find max code length\n let maxLen = 0;\n let i;\n for (i = 0; i < n; ++i) {\n if (lengths[i] > maxLen) {\n maxLen = lengths[i];\n }\n }\n\n // build the table\n const size = 1 << maxLen;\n const codes = new Int32Array(size);\n for (\n let len = 1, code = 0, skip = 2;\n len <= maxLen;\n ++len, code <<= 1, skip <<= 1\n ) {\n for (let val = 0; val < n; ++val) {\n if (lengths[val] === len) {\n // bit-reverse the code\n let code2 = 0;\n let t = code;\n for (i = 0; i < len; ++i) {\n code2 = (code2 << 1) | (t & 1);\n t >>= 1;\n }\n\n // fill the table entries\n for (i = code2; i < size; i += skip) {\n codes[i] = (len << 16) | val;\n }\n ++code;\n }\n }\n }\n\n return [codes, maxLen];\n }\n\n readBlock() {\n let buffer, len;\n const str = this.str;\n // read block header\n let hdr = this.getBits(3);\n if (hdr & 1) {\n this.eof = true;\n }\n hdr >>= 1;\n\n if (hdr === 0) {\n // uncompressed block\n let b;\n\n if ((b = str.getByte()) === -1) {\n throw new FormatError(\"Bad block header in flate stream\");\n }\n let blockLen = b;\n if ((b = str.getByte()) === -1) {\n throw new FormatError(\"Bad block header in flate stream\");\n }\n blockLen |= b << 8;\n if ((b = str.getByte()) === -1) {\n throw new FormatError(\"Bad block header in flate stream\");\n }\n let check = b;\n if ((b = str.getByte()) === -1) {\n throw new FormatError(\"Bad block header in flate stream\");\n }\n check |= b << 8;\n if (check !== (~blockLen & 0xffff) && (blockLen !== 0 || check !== 0)) {\n // Ignoring error for bad \"empty\" block (see issue 1277)\n throw new FormatError(\"Bad uncompressed block length in flate stream\");\n }\n\n this.codeBuf = 0;\n this.codeSize = 0;\n\n const bufferLength = this.bufferLength,\n end = bufferLength + blockLen;\n buffer = this.ensureBuffer(end);\n this.bufferLength = end;\n\n if (blockLen === 0) {\n if (str.peekByte() === -1) {\n this.eof = true;\n }\n } else {\n const block = str.getBytes(blockLen);\n buffer.set(block, bufferLength);\n if (block.length < blockLen) {\n this.eof = true;\n }\n }\n return;\n }\n\n let litCodeTable;\n let distCodeTable;\n if (hdr === 1) {\n // compressed block, fixed codes\n litCodeTable = fixedLitCodeTab;\n distCodeTable = fixedDistCodeTab;\n } else if (hdr === 2) {\n // compressed block, dynamic codes\n const numLitCodes = this.getBits(5) + 257;\n const numDistCodes = this.getBits(5) + 1;\n const numCodeLenCodes = this.getBits(4) + 4;\n\n // build the code lengths code table\n const codeLenCodeLengths = new Uint8Array(codeLenCodeMap.length);\n\n let i;\n for (i = 0; i < numCodeLenCodes; ++i) {\n codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3);\n }\n const codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths);\n\n // build the literal and distance code tables\n len = 0;\n i = 0;\n const codes = numLitCodes + numDistCodes;\n const codeLengths = new Uint8Array(codes);\n let bitsLength, bitsOffset, what;\n while (i < codes) {\n const code = this.getCode(codeLenCodeTab);\n if (code === 16) {\n bitsLength = 2;\n bitsOffset = 3;\n what = len;\n } else if (code === 17) {\n bitsLength = 3;\n bitsOffset = 3;\n what = len = 0;\n } else if (code === 18) {\n bitsLength = 7;\n bitsOffset = 11;\n what = len = 0;\n } else {\n codeLengths[i++] = len = code;\n continue;\n }\n\n let repeatLength = this.getBits(bitsLength) + bitsOffset;\n while (repeatLength-- > 0) {\n codeLengths[i++] = what;\n }\n }\n\n litCodeTable = this.generateHuffmanTable(\n codeLengths.subarray(0, numLitCodes)\n );\n distCodeTable = this.generateHuffmanTable(\n codeLengths.subarray(numLitCodes, codes)\n );\n } else {\n throw new FormatError(\"Unknown block type in flate stream\");\n }\n\n buffer = this.buffer;\n let limit = buffer ? buffer.length : 0;\n let pos = this.bufferLength;\n while (true) {\n let code1 = this.getCode(litCodeTable);\n if (code1 < 256) {\n if (pos + 1 >= limit) {\n buffer = this.ensureBuffer(pos + 1);\n limit = buffer.length;\n }\n buffer[pos++] = code1;\n continue;\n }\n if (code1 === 256) {\n this.bufferLength = pos;\n return;\n }\n code1 -= 257;\n code1 = lengthDecode[code1];\n let code2 = code1 >> 16;\n if (code2 > 0) {\n code2 = this.getBits(code2);\n }\n len = (code1 & 0xffff) + code2;\n code1 = this.getCode(distCodeTable);\n code1 = distDecode[code1];\n code2 = code1 >> 16;\n if (code2 > 0) {\n code2 = this.getBits(code2);\n }\n const dist = (code1 & 0xffff) + code2;\n if (pos + len >= limit) {\n buffer = this.ensureBuffer(pos + len);\n limit = buffer.length;\n }\n for (let k = 0; k < len; ++k, ++pos) {\n buffer[pos] = buffer[pos - dist];\n }\n }\n }\n}\n\nexport { FlateStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseStream } from \"./base_stream.js\";\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { Dict } from \"./primitives.js\";\nimport { Jbig2Image } from \"./jbig2.js\";\nimport { shadow } from \"../shared/util.js\";\n\n/**\n * For JBIG2's we use a library to decode these images and\n * the stream behaves like all the other DecodeStreams.\n */\nclass Jbig2Stream extends DecodeStream {\n constructor(stream, maybeLength, params) {\n super(maybeLength);\n\n this.stream = stream;\n this.dict = stream.dict;\n this.maybeLength = maybeLength;\n this.params = params;\n }\n\n get bytes() {\n // If `this.maybeLength` is null, we'll get the entire stream.\n return shadow(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n }\n\n ensureBuffer(requested) {\n // No-op, since `this.readBlock` will always parse the entire image and\n // directly insert all of its data into `this.buffer`.\n }\n\n readBlock() {\n if (this.eof) {\n return;\n }\n const jbig2Image = new Jbig2Image();\n\n const chunks = [];\n if (this.params instanceof Dict) {\n const globalsStream = this.params.get(\"JBIG2Globals\");\n if (globalsStream instanceof BaseStream) {\n const globals = globalsStream.getBytes();\n chunks.push({ data: globals, start: 0, end: globals.length });\n }\n }\n chunks.push({ data: this.bytes, start: 0, end: this.bytes.length });\n const data = jbig2Image.parseChunks(chunks);\n const dataLength = data.length;\n\n // JBIG2 had black as 1 and white as 0, inverting the colors\n for (let i = 0; i < dataLength; i++) {\n data[i] ^= 0xff;\n }\n this.buffer = data;\n this.bufferLength = dataLength;\n this.eof = true;\n }\n}\n\nexport { Jbig2Stream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseException, shadow } from \"../shared/util.js\";\nimport { log2, readInt8, readUint16, readUint32 } from \"./core_utils.js\";\nimport { ArithmeticDecoder } from \"./arithmetic_decoder.js\";\nimport { CCITTFaxDecoder } from \"./ccitt.js\";\n\nclass Jbig2Error extends BaseException {\n constructor(msg) {\n super(`JBIG2 error: ${msg}`, \"Jbig2Error\");\n }\n}\n\n// Utility data structures\nclass ContextCache {\n getContexts(id) {\n if (id in this) {\n return this[id];\n }\n return (this[id] = new Int8Array(1 << 16));\n }\n}\n\nclass DecodingContext {\n constructor(data, start, end) {\n this.data = data;\n this.start = start;\n this.end = end;\n }\n\n get decoder() {\n const decoder = new ArithmeticDecoder(this.data, this.start, this.end);\n return shadow(this, \"decoder\", decoder);\n }\n\n get contextCache() {\n const cache = new ContextCache();\n return shadow(this, \"contextCache\", cache);\n }\n}\n\n// Annex A. Arithmetic Integer Decoding Procedure\n// A.2 Procedure for decoding values\nfunction decodeInteger(contextCache, procedure, decoder) {\n const contexts = contextCache.getContexts(procedure);\n let prev = 1;\n\n function readBits(length) {\n let v = 0;\n for (let i = 0; i < length; i++) {\n const bit = decoder.readBit(contexts, prev);\n prev = prev < 256 ? (prev << 1) | bit : (((prev << 1) | bit) & 511) | 256;\n v = (v << 1) | bit;\n }\n return v >>> 0;\n }\n\n const sign = readBits(1);\n // prettier-ignore\n /* eslint-disable no-nested-ternary */\n const value = readBits(1) ?\n (readBits(1) ?\n (readBits(1) ?\n (readBits(1) ?\n (readBits(1) ?\n (readBits(32) + 4436) :\n readBits(12) + 340) :\n readBits(8) + 84) :\n readBits(6) + 20) :\n readBits(4) + 4) :\n readBits(2);\n /* eslint-enable no-nested-ternary */\n if (sign === 0) {\n return value;\n } else if (value > 0) {\n return -value;\n }\n return null;\n}\n\n// A.3 The IAID decoding procedure\nfunction decodeIAID(contextCache, decoder, codeLength) {\n const contexts = contextCache.getContexts(\"IAID\");\n\n let prev = 1;\n for (let i = 0; i < codeLength; i++) {\n const bit = decoder.readBit(contexts, prev);\n prev = (prev << 1) | bit;\n }\n if (codeLength < 31) {\n return prev & ((1 << codeLength) - 1);\n }\n return prev & 0x7fffffff;\n}\n\n// 7.3 Segment types\nconst SegmentTypes = [\n \"SymbolDictionary\",\n null,\n null,\n null,\n \"IntermediateTextRegion\",\n null,\n \"ImmediateTextRegion\",\n \"ImmediateLosslessTextRegion\",\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n \"PatternDictionary\",\n null,\n null,\n null,\n \"IntermediateHalftoneRegion\",\n null,\n \"ImmediateHalftoneRegion\",\n \"ImmediateLosslessHalftoneRegion\",\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n \"IntermediateGenericRegion\",\n null,\n \"ImmediateGenericRegion\",\n \"ImmediateLosslessGenericRegion\",\n \"IntermediateGenericRefinementRegion\",\n null,\n \"ImmediateGenericRefinementRegion\",\n \"ImmediateLosslessGenericRefinementRegion\",\n null,\n null,\n null,\n null,\n \"PageInformation\",\n \"EndOfPage\",\n \"EndOfStripe\",\n \"EndOfFile\",\n \"Profiles\",\n \"Tables\",\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n \"Extension\",\n];\n\nconst CodingTemplates = [\n [\n { x: -1, y: -2 },\n { x: 0, y: -2 },\n { x: 1, y: -2 },\n { x: -2, y: -1 },\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: 2, y: -1 },\n { x: -4, y: 0 },\n { x: -3, y: 0 },\n { x: -2, y: 0 },\n { x: -1, y: 0 },\n ],\n [\n { x: -1, y: -2 },\n { x: 0, y: -2 },\n { x: 1, y: -2 },\n { x: 2, y: -2 },\n { x: -2, y: -1 },\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: 2, y: -1 },\n { x: -3, y: 0 },\n { x: -2, y: 0 },\n { x: -1, y: 0 },\n ],\n [\n { x: -1, y: -2 },\n { x: 0, y: -2 },\n { x: 1, y: -2 },\n { x: -2, y: -1 },\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -2, y: 0 },\n { x: -1, y: 0 },\n ],\n [\n { x: -3, y: -1 },\n { x: -2, y: -1 },\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -4, y: 0 },\n { x: -3, y: 0 },\n { x: -2, y: 0 },\n { x: -1, y: 0 },\n ],\n];\n\nconst RefinementTemplates = [\n {\n coding: [\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -1, y: 0 },\n ],\n reference: [\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -1, y: 0 },\n { x: 0, y: 0 },\n { x: 1, y: 0 },\n { x: -1, y: 1 },\n { x: 0, y: 1 },\n { x: 1, y: 1 },\n ],\n },\n {\n coding: [\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -1, y: 0 },\n ],\n reference: [\n { x: 0, y: -1 },\n { x: -1, y: 0 },\n { x: 0, y: 0 },\n { x: 1, y: 0 },\n { x: 0, y: 1 },\n { x: 1, y: 1 },\n ],\n },\n];\n\n// See 6.2.5.7 Decoding the bitmap.\nconst ReusedContexts = [\n 0x9b25, // 10011 0110010 0101\n 0x0795, // 0011 110010 101\n 0x00e5, // 001 11001 01\n 0x0195, // 011001 0101\n];\n\nconst RefinementReusedContexts = [\n 0x0020, // '000' + '0' (coding) + '00010000' + '0' (reference)\n 0x0008, // '0000' + '001000'\n];\n\nfunction decodeBitmapTemplate0(width, height, decodingContext) {\n const decoder = decodingContext.decoder;\n const contexts = decodingContext.contextCache.getContexts(\"GB\");\n const bitmap = [];\n let contextLabel, i, j, pixel, row, row1, row2;\n\n // ...ooooo....\n // ..ooooooo... Context template for current pixel (X)\n // .ooooX...... (concatenate values of 'o'-pixels to get contextLabel)\n const OLD_PIXEL_MASK = 0x7bf7; // 01111 0111111 0111\n\n for (i = 0; i < height; i++) {\n row = bitmap[i] = new Uint8Array(width);\n row1 = i < 1 ? row : bitmap[i - 1];\n row2 = i < 2 ? row : bitmap[i - 2];\n\n // At the beginning of each row:\n // Fill contextLabel with pixels that are above/right of (X)\n contextLabel =\n (row2[0] << 13) |\n (row2[1] << 12) |\n (row2[2] << 11) |\n (row1[0] << 7) |\n (row1[1] << 6) |\n (row1[2] << 5) |\n (row1[3] << 4);\n\n for (j = 0; j < width; j++) {\n row[j] = pixel = decoder.readBit(contexts, contextLabel);\n\n // At each pixel: Clear contextLabel pixels that are shifted\n // out of the context, then add new ones.\n contextLabel =\n ((contextLabel & OLD_PIXEL_MASK) << 1) |\n (j + 3 < width ? row2[j + 3] << 11 : 0) |\n (j + 4 < width ? row1[j + 4] << 4 : 0) |\n pixel;\n }\n }\n\n return bitmap;\n}\n\n// 6.2 Generic Region Decoding Procedure\nfunction decodeBitmap(\n mmr,\n width,\n height,\n templateIndex,\n prediction,\n skip,\n at,\n decodingContext\n) {\n if (mmr) {\n const input = new Reader(\n decodingContext.data,\n decodingContext.start,\n decodingContext.end\n );\n return decodeMMRBitmap(input, width, height, false);\n }\n\n // Use optimized version for the most common case\n if (\n templateIndex === 0 &&\n !skip &&\n !prediction &&\n at.length === 4 &&\n at[0].x === 3 &&\n at[0].y === -1 &&\n at[1].x === -3 &&\n at[1].y === -1 &&\n at[2].x === 2 &&\n at[2].y === -2 &&\n at[3].x === -2 &&\n at[3].y === -2\n ) {\n return decodeBitmapTemplate0(width, height, decodingContext);\n }\n\n const useskip = !!skip;\n const template = CodingTemplates[templateIndex].concat(at);\n\n // Sorting is non-standard, and it is not required. But sorting increases\n // the number of template bits that can be reused from the previous\n // contextLabel in the main loop.\n template.sort(function (a, b) {\n return a.y - b.y || a.x - b.x;\n });\n\n const templateLength = template.length;\n const templateX = new Int8Array(templateLength);\n const templateY = new Int8Array(templateLength);\n const changingTemplateEntries = [];\n let reuseMask = 0,\n minX = 0,\n maxX = 0,\n minY = 0;\n let c, k;\n\n for (k = 0; k < templateLength; k++) {\n templateX[k] = template[k].x;\n templateY[k] = template[k].y;\n minX = Math.min(minX, template[k].x);\n maxX = Math.max(maxX, template[k].x);\n minY = Math.min(minY, template[k].y);\n // Check if the template pixel appears in two consecutive context labels,\n // so it can be reused. Otherwise, we add it to the list of changing\n // template entries.\n if (\n k < templateLength - 1 &&\n template[k].y === template[k + 1].y &&\n template[k].x === template[k + 1].x - 1\n ) {\n reuseMask |= 1 << (templateLength - 1 - k);\n } else {\n changingTemplateEntries.push(k);\n }\n }\n const changingEntriesLength = changingTemplateEntries.length;\n\n const changingTemplateX = new Int8Array(changingEntriesLength);\n const changingTemplateY = new Int8Array(changingEntriesLength);\n const changingTemplateBit = new Uint16Array(changingEntriesLength);\n for (c = 0; c < changingEntriesLength; c++) {\n k = changingTemplateEntries[c];\n changingTemplateX[c] = template[k].x;\n changingTemplateY[c] = template[k].y;\n changingTemplateBit[c] = 1 << (templateLength - 1 - k);\n }\n\n // Get the safe bounding box edges from the width, height, minX, maxX, minY\n const sbb_left = -minX;\n const sbb_top = -minY;\n const sbb_right = width - maxX;\n\n const pseudoPixelContext = ReusedContexts[templateIndex];\n let row = new Uint8Array(width);\n const bitmap = [];\n\n const decoder = decodingContext.decoder;\n const contexts = decodingContext.contextCache.getContexts(\"GB\");\n\n let ltp = 0,\n j,\n i0,\n j0,\n contextLabel = 0,\n bit,\n shift;\n for (let i = 0; i < height; i++) {\n if (prediction) {\n const sltp = decoder.readBit(contexts, pseudoPixelContext);\n ltp ^= sltp;\n if (ltp) {\n bitmap.push(row); // duplicate previous row\n continue;\n }\n }\n row = new Uint8Array(row);\n bitmap.push(row);\n for (j = 0; j < width; j++) {\n if (useskip && skip[i][j]) {\n row[j] = 0;\n continue;\n }\n // Are we in the middle of a scanline, so we can reuse contextLabel\n // bits?\n if (j >= sbb_left && j < sbb_right && i >= sbb_top) {\n // If yes, we can just shift the bits that are reusable and only\n // fetch the remaining ones.\n contextLabel = (contextLabel << 1) & reuseMask;\n for (k = 0; k < changingEntriesLength; k++) {\n i0 = i + changingTemplateY[k];\n j0 = j + changingTemplateX[k];\n bit = bitmap[i0][j0];\n if (bit) {\n bit = changingTemplateBit[k];\n contextLabel |= bit;\n }\n }\n } else {\n // compute the contextLabel from scratch\n contextLabel = 0;\n shift = templateLength - 1;\n for (k = 0; k < templateLength; k++, shift--) {\n j0 = j + templateX[k];\n if (j0 >= 0 && j0 < width) {\n i0 = i + templateY[k];\n if (i0 >= 0) {\n bit = bitmap[i0][j0];\n if (bit) {\n contextLabel |= bit << shift;\n }\n }\n }\n }\n }\n const pixel = decoder.readBit(contexts, contextLabel);\n row[j] = pixel;\n }\n }\n return bitmap;\n}\n\n// 6.3.2 Generic Refinement Region Decoding Procedure\nfunction decodeRefinement(\n width,\n height,\n templateIndex,\n referenceBitmap,\n offsetX,\n offsetY,\n prediction,\n at,\n decodingContext\n) {\n let codingTemplate = RefinementTemplates[templateIndex].coding;\n if (templateIndex === 0) {\n codingTemplate = codingTemplate.concat([at[0]]);\n }\n const codingTemplateLength = codingTemplate.length;\n const codingTemplateX = new Int32Array(codingTemplateLength);\n const codingTemplateY = new Int32Array(codingTemplateLength);\n let k;\n for (k = 0; k < codingTemplateLength; k++) {\n codingTemplateX[k] = codingTemplate[k].x;\n codingTemplateY[k] = codingTemplate[k].y;\n }\n\n let referenceTemplate = RefinementTemplates[templateIndex].reference;\n if (templateIndex === 0) {\n referenceTemplate = referenceTemplate.concat([at[1]]);\n }\n const referenceTemplateLength = referenceTemplate.length;\n const referenceTemplateX = new Int32Array(referenceTemplateLength);\n const referenceTemplateY = new Int32Array(referenceTemplateLength);\n for (k = 0; k < referenceTemplateLength; k++) {\n referenceTemplateX[k] = referenceTemplate[k].x;\n referenceTemplateY[k] = referenceTemplate[k].y;\n }\n const referenceWidth = referenceBitmap[0].length;\n const referenceHeight = referenceBitmap.length;\n\n const pseudoPixelContext = RefinementReusedContexts[templateIndex];\n const bitmap = [];\n\n const decoder = decodingContext.decoder;\n const contexts = decodingContext.contextCache.getContexts(\"GR\");\n\n let ltp = 0;\n for (let i = 0; i < height; i++) {\n if (prediction) {\n const sltp = decoder.readBit(contexts, pseudoPixelContext);\n ltp ^= sltp;\n if (ltp) {\n throw new Jbig2Error(\"prediction is not supported\");\n }\n }\n const row = new Uint8Array(width);\n bitmap.push(row);\n for (let j = 0; j < width; j++) {\n let i0, j0;\n let contextLabel = 0;\n for (k = 0; k < codingTemplateLength; k++) {\n i0 = i + codingTemplateY[k];\n j0 = j + codingTemplateX[k];\n if (i0 < 0 || j0 < 0 || j0 >= width) {\n contextLabel <<= 1; // out of bound pixel\n } else {\n contextLabel = (contextLabel << 1) | bitmap[i0][j0];\n }\n }\n for (k = 0; k < referenceTemplateLength; k++) {\n i0 = i + referenceTemplateY[k] - offsetY;\n j0 = j + referenceTemplateX[k] - offsetX;\n if (i0 < 0 || i0 >= referenceHeight || j0 < 0 || j0 >= referenceWidth) {\n contextLabel <<= 1; // out of bound pixel\n } else {\n contextLabel = (contextLabel << 1) | referenceBitmap[i0][j0];\n }\n }\n const pixel = decoder.readBit(contexts, contextLabel);\n row[j] = pixel;\n }\n }\n\n return bitmap;\n}\n\n// 6.5.5 Decoding the symbol dictionary\nfunction decodeSymbolDictionary(\n huffman,\n refinement,\n symbols,\n numberOfNewSymbols,\n numberOfExportedSymbols,\n huffmanTables,\n templateIndex,\n at,\n refinementTemplateIndex,\n refinementAt,\n decodingContext,\n huffmanInput\n) {\n if (huffman && refinement) {\n throw new Jbig2Error(\"symbol refinement with Huffman is not supported\");\n }\n\n const newSymbols = [];\n let currentHeight = 0;\n let symbolCodeLength = log2(symbols.length + numberOfNewSymbols);\n\n const decoder = decodingContext.decoder;\n const contextCache = decodingContext.contextCache;\n let tableB1, symbolWidths;\n if (huffman) {\n tableB1 = getStandardTable(1); // standard table B.1\n symbolWidths = [];\n symbolCodeLength = Math.max(symbolCodeLength, 1); // 6.5.8.2.3\n }\n\n while (newSymbols.length < numberOfNewSymbols) {\n const deltaHeight = huffman\n ? huffmanTables.tableDeltaHeight.decode(huffmanInput)\n : decodeInteger(contextCache, \"IADH\", decoder); // 6.5.6\n currentHeight += deltaHeight;\n let currentWidth = 0,\n totalWidth = 0;\n const firstSymbol = huffman ? symbolWidths.length : 0;\n while (true) {\n const deltaWidth = huffman\n ? huffmanTables.tableDeltaWidth.decode(huffmanInput)\n : decodeInteger(contextCache, \"IADW\", decoder); // 6.5.7\n if (deltaWidth === null) {\n break; // OOB\n }\n currentWidth += deltaWidth;\n totalWidth += currentWidth;\n let bitmap;\n if (refinement) {\n // 6.5.8.2 Refinement/aggregate-coded symbol bitmap\n const numberOfInstances = decodeInteger(contextCache, \"IAAI\", decoder);\n if (numberOfInstances > 1) {\n bitmap = decodeTextRegion(\n huffman,\n refinement,\n currentWidth,\n currentHeight,\n 0,\n numberOfInstances,\n 1, // strip size\n symbols.concat(newSymbols),\n symbolCodeLength,\n 0, // transposed\n 0, // ds offset\n 1, // top left 7.4.3.1.1\n 0, // OR operator\n huffmanTables,\n refinementTemplateIndex,\n refinementAt,\n decodingContext,\n 0,\n huffmanInput\n );\n } else {\n const symbolId = decodeIAID(contextCache, decoder, symbolCodeLength);\n const rdx = decodeInteger(contextCache, \"IARDX\", decoder); // 6.4.11.3\n const rdy = decodeInteger(contextCache, \"IARDY\", decoder); // 6.4.11.4\n const symbol =\n symbolId < symbols.length\n ? symbols[symbolId]\n : newSymbols[symbolId - symbols.length];\n bitmap = decodeRefinement(\n currentWidth,\n currentHeight,\n refinementTemplateIndex,\n symbol,\n rdx,\n rdy,\n false,\n refinementAt,\n decodingContext\n );\n }\n newSymbols.push(bitmap);\n } else if (huffman) {\n // Store only symbol width and decode a collective bitmap when the\n // height class is done.\n symbolWidths.push(currentWidth);\n } else {\n // 6.5.8.1 Direct-coded symbol bitmap\n bitmap = decodeBitmap(\n false,\n currentWidth,\n currentHeight,\n templateIndex,\n false,\n null,\n at,\n decodingContext\n );\n newSymbols.push(bitmap);\n }\n }\n if (huffman && !refinement) {\n // 6.5.9 Height class collective bitmap\n const bitmapSize = huffmanTables.tableBitmapSize.decode(huffmanInput);\n huffmanInput.byteAlign();\n let collectiveBitmap;\n if (bitmapSize === 0) {\n // Uncompressed collective bitmap\n collectiveBitmap = readUncompressedBitmap(\n huffmanInput,\n totalWidth,\n currentHeight\n );\n } else {\n // MMR collective bitmap\n const originalEnd = huffmanInput.end;\n const bitmapEnd = huffmanInput.position + bitmapSize;\n huffmanInput.end = bitmapEnd;\n collectiveBitmap = decodeMMRBitmap(\n huffmanInput,\n totalWidth,\n currentHeight,\n false\n );\n huffmanInput.end = originalEnd;\n huffmanInput.position = bitmapEnd;\n }\n const numberOfSymbolsDecoded = symbolWidths.length;\n if (firstSymbol === numberOfSymbolsDecoded - 1) {\n // collectiveBitmap is a single symbol.\n newSymbols.push(collectiveBitmap);\n } else {\n // Divide collectiveBitmap into symbols.\n let i,\n y,\n xMin = 0,\n xMax,\n bitmapWidth,\n symbolBitmap;\n for (i = firstSymbol; i < numberOfSymbolsDecoded; i++) {\n bitmapWidth = symbolWidths[i];\n xMax = xMin + bitmapWidth;\n symbolBitmap = [];\n for (y = 0; y < currentHeight; y++) {\n symbolBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n }\n newSymbols.push(symbolBitmap);\n xMin = xMax;\n }\n }\n }\n }\n\n // 6.5.10 Exported symbols\n const exportedSymbols = [],\n flags = [];\n let currentFlag = false,\n i,\n ii;\n const totalSymbolsLength = symbols.length + numberOfNewSymbols;\n while (flags.length < totalSymbolsLength) {\n let runLength = huffman\n ? tableB1.decode(huffmanInput)\n : decodeInteger(contextCache, \"IAEX\", decoder);\n while (runLength--) {\n flags.push(currentFlag);\n }\n currentFlag = !currentFlag;\n }\n for (i = 0, ii = symbols.length; i < ii; i++) {\n if (flags[i]) {\n exportedSymbols.push(symbols[i]);\n }\n }\n for (let j = 0; j < numberOfNewSymbols; i++, j++) {\n if (flags[i]) {\n exportedSymbols.push(newSymbols[j]);\n }\n }\n return exportedSymbols;\n}\n\nfunction decodeTextRegion(\n huffman,\n refinement,\n width,\n height,\n defaultPixelValue,\n numberOfSymbolInstances,\n stripSize,\n inputSymbols,\n symbolCodeLength,\n transposed,\n dsOffset,\n referenceCorner,\n combinationOperator,\n huffmanTables,\n refinementTemplateIndex,\n refinementAt,\n decodingContext,\n logStripSize,\n huffmanInput\n) {\n if (huffman && refinement) {\n throw new Jbig2Error(\"refinement with Huffman is not supported\");\n }\n\n // Prepare bitmap\n const bitmap = [];\n let i, row;\n for (i = 0; i < height; i++) {\n row = new Uint8Array(width);\n if (defaultPixelValue) {\n for (let j = 0; j < width; j++) {\n row[j] = defaultPixelValue;\n }\n }\n bitmap.push(row);\n }\n\n const decoder = decodingContext.decoder;\n const contextCache = decodingContext.contextCache;\n\n let stripT = huffman\n ? -huffmanTables.tableDeltaT.decode(huffmanInput)\n : -decodeInteger(contextCache, \"IADT\", decoder); // 6.4.6\n let firstS = 0;\n i = 0;\n while (i < numberOfSymbolInstances) {\n const deltaT = huffman\n ? huffmanTables.tableDeltaT.decode(huffmanInput)\n : decodeInteger(contextCache, \"IADT\", decoder); // 6.4.6\n stripT += deltaT;\n\n const deltaFirstS = huffman\n ? huffmanTables.tableFirstS.decode(huffmanInput)\n : decodeInteger(contextCache, \"IAFS\", decoder); // 6.4.7\n firstS += deltaFirstS;\n let currentS = firstS;\n do {\n let currentT = 0; // 6.4.9\n if (stripSize > 1) {\n currentT = huffman\n ? huffmanInput.readBits(logStripSize)\n : decodeInteger(contextCache, \"IAIT\", decoder);\n }\n const t = stripSize * stripT + currentT;\n const symbolId = huffman\n ? huffmanTables.symbolIDTable.decode(huffmanInput)\n : decodeIAID(contextCache, decoder, symbolCodeLength);\n const applyRefinement =\n refinement &&\n (huffman\n ? huffmanInput.readBit()\n : decodeInteger(contextCache, \"IARI\", decoder));\n let symbolBitmap = inputSymbols[symbolId];\n let symbolWidth = symbolBitmap[0].length;\n let symbolHeight = symbolBitmap.length;\n if (applyRefinement) {\n const rdw = decodeInteger(contextCache, \"IARDW\", decoder); // 6.4.11.1\n const rdh = decodeInteger(contextCache, \"IARDH\", decoder); // 6.4.11.2\n const rdx = decodeInteger(contextCache, \"IARDX\", decoder); // 6.4.11.3\n const rdy = decodeInteger(contextCache, \"IARDY\", decoder); // 6.4.11.4\n symbolWidth += rdw;\n symbolHeight += rdh;\n symbolBitmap = decodeRefinement(\n symbolWidth,\n symbolHeight,\n refinementTemplateIndex,\n symbolBitmap,\n (rdw >> 1) + rdx,\n (rdh >> 1) + rdy,\n false,\n refinementAt,\n decodingContext\n );\n }\n const offsetT = t - (referenceCorner & 1 ? 0 : symbolHeight - 1);\n const offsetS = currentS - (referenceCorner & 2 ? symbolWidth - 1 : 0);\n let s2, t2, symbolRow;\n if (transposed) {\n // Place Symbol Bitmap from T1,S1\n for (s2 = 0; s2 < symbolHeight; s2++) {\n row = bitmap[offsetS + s2];\n if (!row) {\n continue;\n }\n symbolRow = symbolBitmap[s2];\n // To ignore Parts of Symbol bitmap which goes\n // outside bitmap region\n const maxWidth = Math.min(width - offsetT, symbolWidth);\n switch (combinationOperator) {\n case 0: // OR\n for (t2 = 0; t2 < maxWidth; t2++) {\n row[offsetT + t2] |= symbolRow[t2];\n }\n break;\n case 2: // XOR\n for (t2 = 0; t2 < maxWidth; t2++) {\n row[offsetT + t2] ^= symbolRow[t2];\n }\n break;\n default:\n throw new Jbig2Error(\n `operator ${combinationOperator} is not supported`\n );\n }\n }\n currentS += symbolHeight - 1;\n } else {\n for (t2 = 0; t2 < symbolHeight; t2++) {\n row = bitmap[offsetT + t2];\n if (!row) {\n continue;\n }\n symbolRow = symbolBitmap[t2];\n switch (combinationOperator) {\n case 0: // OR\n for (s2 = 0; s2 < symbolWidth; s2++) {\n row[offsetS + s2] |= symbolRow[s2];\n }\n break;\n case 2: // XOR\n for (s2 = 0; s2 < symbolWidth; s2++) {\n row[offsetS + s2] ^= symbolRow[s2];\n }\n break;\n default:\n throw new Jbig2Error(\n `operator ${combinationOperator} is not supported`\n );\n }\n }\n currentS += symbolWidth - 1;\n }\n i++;\n const deltaS = huffman\n ? huffmanTables.tableDeltaS.decode(huffmanInput)\n : decodeInteger(contextCache, \"IADS\", decoder); // 6.4.8\n if (deltaS === null) {\n break; // OOB\n }\n currentS += deltaS + dsOffset;\n } while (true);\n }\n return bitmap;\n}\n\nfunction decodePatternDictionary(\n mmr,\n patternWidth,\n patternHeight,\n maxPatternIndex,\n template,\n decodingContext\n) {\n const at = [];\n if (!mmr) {\n at.push({\n x: -patternWidth,\n y: 0,\n });\n if (template === 0) {\n at.push(\n {\n x: -3,\n y: -1,\n },\n {\n x: 2,\n y: -2,\n },\n {\n x: -2,\n y: -2,\n }\n );\n }\n }\n const collectiveWidth = (maxPatternIndex + 1) * patternWidth;\n const collectiveBitmap = decodeBitmap(\n mmr,\n collectiveWidth,\n patternHeight,\n template,\n false,\n null,\n at,\n decodingContext\n );\n // Divide collective bitmap into patterns.\n const patterns = [];\n for (let i = 0; i <= maxPatternIndex; i++) {\n const patternBitmap = [];\n const xMin = patternWidth * i;\n const xMax = xMin + patternWidth;\n for (let y = 0; y < patternHeight; y++) {\n patternBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n }\n patterns.push(patternBitmap);\n }\n return patterns;\n}\n\nfunction decodeHalftoneRegion(\n mmr,\n patterns,\n template,\n regionWidth,\n regionHeight,\n defaultPixelValue,\n enableSkip,\n combinationOperator,\n gridWidth,\n gridHeight,\n gridOffsetX,\n gridOffsetY,\n gridVectorX,\n gridVectorY,\n decodingContext\n) {\n const skip = null;\n if (enableSkip) {\n throw new Jbig2Error(\"skip is not supported\");\n }\n if (combinationOperator !== 0) {\n throw new Jbig2Error(\n `operator \"${combinationOperator}\" is not supported in halftone region`\n );\n }\n\n // Prepare bitmap.\n const regionBitmap = [];\n let i, j, row;\n for (i = 0; i < regionHeight; i++) {\n row = new Uint8Array(regionWidth);\n if (defaultPixelValue) {\n for (j = 0; j < regionWidth; j++) {\n row[j] = defaultPixelValue;\n }\n }\n regionBitmap.push(row);\n }\n\n const numberOfPatterns = patterns.length;\n const pattern0 = patterns[0];\n const patternWidth = pattern0[0].length,\n patternHeight = pattern0.length;\n const bitsPerValue = log2(numberOfPatterns);\n const at = [];\n if (!mmr) {\n at.push({\n x: template <= 1 ? 3 : 2,\n y: -1,\n });\n if (template === 0) {\n at.push(\n {\n x: -3,\n y: -1,\n },\n {\n x: 2,\n y: -2,\n },\n {\n x: -2,\n y: -2,\n }\n );\n }\n }\n // Annex C. Gray-scale Image Decoding Procedure.\n const grayScaleBitPlanes = [];\n let mmrInput, bitmap;\n if (mmr) {\n // MMR bit planes are in one continuous stream. Only EOFB codes indicate\n // the end of each bitmap, so EOFBs must be decoded.\n mmrInput = new Reader(\n decodingContext.data,\n decodingContext.start,\n decodingContext.end\n );\n }\n for (i = bitsPerValue - 1; i >= 0; i--) {\n if (mmr) {\n bitmap = decodeMMRBitmap(mmrInput, gridWidth, gridHeight, true);\n } else {\n bitmap = decodeBitmap(\n false,\n gridWidth,\n gridHeight,\n template,\n false,\n skip,\n at,\n decodingContext\n );\n }\n grayScaleBitPlanes[i] = bitmap;\n }\n // 6.6.5.2 Rendering the patterns.\n let mg, ng, bit, patternIndex, patternBitmap, x, y, patternRow, regionRow;\n for (mg = 0; mg < gridHeight; mg++) {\n for (ng = 0; ng < gridWidth; ng++) {\n bit = 0;\n patternIndex = 0;\n for (j = bitsPerValue - 1; j >= 0; j--) {\n bit ^= grayScaleBitPlanes[j][mg][ng]; // Gray decoding\n patternIndex |= bit << j;\n }\n patternBitmap = patterns[patternIndex];\n x = (gridOffsetX + mg * gridVectorY + ng * gridVectorX) >> 8;\n y = (gridOffsetY + mg * gridVectorX - ng * gridVectorY) >> 8;\n // Draw patternBitmap at (x, y).\n if (\n x >= 0 &&\n x + patternWidth <= regionWidth &&\n y >= 0 &&\n y + patternHeight <= regionHeight\n ) {\n for (i = 0; i < patternHeight; i++) {\n regionRow = regionBitmap[y + i];\n patternRow = patternBitmap[i];\n for (j = 0; j < patternWidth; j++) {\n regionRow[x + j] |= patternRow[j];\n }\n }\n } else {\n let regionX, regionY;\n for (i = 0; i < patternHeight; i++) {\n regionY = y + i;\n if (regionY < 0 || regionY >= regionHeight) {\n continue;\n }\n regionRow = regionBitmap[regionY];\n patternRow = patternBitmap[i];\n for (j = 0; j < patternWidth; j++) {\n regionX = x + j;\n if (regionX >= 0 && regionX < regionWidth) {\n regionRow[regionX] |= patternRow[j];\n }\n }\n }\n }\n }\n }\n return regionBitmap;\n}\n\nfunction readSegmentHeader(data, start) {\n const segmentHeader = {};\n segmentHeader.number = readUint32(data, start);\n const flags = data[start + 4];\n const segmentType = flags & 0x3f;\n if (!SegmentTypes[segmentType]) {\n throw new Jbig2Error(\"invalid segment type: \" + segmentType);\n }\n segmentHeader.type = segmentType;\n segmentHeader.typeName = SegmentTypes[segmentType];\n segmentHeader.deferredNonRetain = !!(flags & 0x80);\n\n const pageAssociationFieldSize = !!(flags & 0x40);\n const referredFlags = data[start + 5];\n let referredToCount = (referredFlags >> 5) & 7;\n const retainBits = [referredFlags & 31];\n let position = start + 6;\n if (referredFlags === 7) {\n referredToCount = readUint32(data, position - 1) & 0x1fffffff;\n position += 3;\n let bytes = (referredToCount + 7) >> 3;\n retainBits[0] = data[position++];\n while (--bytes > 0) {\n retainBits.push(data[position++]);\n }\n } else if (referredFlags === 5 || referredFlags === 6) {\n throw new Jbig2Error(\"invalid referred-to flags\");\n }\n\n segmentHeader.retainBits = retainBits;\n\n let referredToSegmentNumberSize = 4;\n if (segmentHeader.number <= 256) {\n referredToSegmentNumberSize = 1;\n } else if (segmentHeader.number <= 65536) {\n referredToSegmentNumberSize = 2;\n }\n const referredTo = [];\n let i, ii;\n for (i = 0; i < referredToCount; i++) {\n let number;\n if (referredToSegmentNumberSize === 1) {\n number = data[position];\n } else if (referredToSegmentNumberSize === 2) {\n number = readUint16(data, position);\n } else {\n number = readUint32(data, position);\n }\n referredTo.push(number);\n position += referredToSegmentNumberSize;\n }\n segmentHeader.referredTo = referredTo;\n if (!pageAssociationFieldSize) {\n segmentHeader.pageAssociation = data[position++];\n } else {\n segmentHeader.pageAssociation = readUint32(data, position);\n position += 4;\n }\n segmentHeader.length = readUint32(data, position);\n position += 4;\n\n if (segmentHeader.length === 0xffffffff) {\n // 7.2.7 Segment data length, unknown segment length\n if (segmentType === 38) {\n // ImmediateGenericRegion\n const genericRegionInfo = readRegionSegmentInformation(data, position);\n const genericRegionSegmentFlags =\n data[position + RegionSegmentInformationFieldLength];\n const genericRegionMmr = !!(genericRegionSegmentFlags & 1);\n // searching for the segment end\n const searchPatternLength = 6;\n const searchPattern = new Uint8Array(searchPatternLength);\n if (!genericRegionMmr) {\n searchPattern[0] = 0xff;\n searchPattern[1] = 0xac;\n }\n searchPattern[2] = (genericRegionInfo.height >>> 24) & 0xff;\n searchPattern[3] = (genericRegionInfo.height >> 16) & 0xff;\n searchPattern[4] = (genericRegionInfo.height >> 8) & 0xff;\n searchPattern[5] = genericRegionInfo.height & 0xff;\n for (i = position, ii = data.length; i < ii; i++) {\n let j = 0;\n while (j < searchPatternLength && searchPattern[j] === data[i + j]) {\n j++;\n }\n if (j === searchPatternLength) {\n segmentHeader.length = i + searchPatternLength;\n break;\n }\n }\n if (segmentHeader.length === 0xffffffff) {\n throw new Jbig2Error(\"segment end was not found\");\n }\n } else {\n throw new Jbig2Error(\"invalid unknown segment length\");\n }\n }\n segmentHeader.headerEnd = position;\n return segmentHeader;\n}\n\nfunction readSegments(header, data, start, end) {\n const segments = [];\n let position = start;\n while (position < end) {\n const segmentHeader = readSegmentHeader(data, position);\n position = segmentHeader.headerEnd;\n const segment = {\n header: segmentHeader,\n data,\n };\n if (!header.randomAccess) {\n segment.start = position;\n position += segmentHeader.length;\n segment.end = position;\n }\n segments.push(segment);\n if (segmentHeader.type === 51) {\n break; // end of file is found\n }\n }\n if (header.randomAccess) {\n for (let i = 0, ii = segments.length; i < ii; i++) {\n segments[i].start = position;\n position += segments[i].header.length;\n segments[i].end = position;\n }\n }\n return segments;\n}\n\n// 7.4.1 Region segment information field\nfunction readRegionSegmentInformation(data, start) {\n return {\n width: readUint32(data, start),\n height: readUint32(data, start + 4),\n x: readUint32(data, start + 8),\n y: readUint32(data, start + 12),\n combinationOperator: data[start + 16] & 7,\n };\n}\nconst RegionSegmentInformationFieldLength = 17;\n\nfunction processSegment(segment, visitor) {\n const header = segment.header;\n\n const data = segment.data,\n end = segment.end;\n let position = segment.start;\n let args, at, i, atLength;\n switch (header.type) {\n case 0: // SymbolDictionary\n // 7.4.2 Symbol dictionary segment syntax\n const dictionary = {};\n const dictionaryFlags = readUint16(data, position); // 7.4.2.1.1\n dictionary.huffman = !!(dictionaryFlags & 1);\n dictionary.refinement = !!(dictionaryFlags & 2);\n dictionary.huffmanDHSelector = (dictionaryFlags >> 2) & 3;\n dictionary.huffmanDWSelector = (dictionaryFlags >> 4) & 3;\n dictionary.bitmapSizeSelector = (dictionaryFlags >> 6) & 1;\n dictionary.aggregationInstancesSelector = (dictionaryFlags >> 7) & 1;\n dictionary.bitmapCodingContextUsed = !!(dictionaryFlags & 256);\n dictionary.bitmapCodingContextRetained = !!(dictionaryFlags & 512);\n dictionary.template = (dictionaryFlags >> 10) & 3;\n dictionary.refinementTemplate = (dictionaryFlags >> 12) & 1;\n position += 2;\n if (!dictionary.huffman) {\n atLength = dictionary.template === 0 ? 4 : 1;\n at = [];\n for (i = 0; i < atLength; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n dictionary.at = at;\n }\n if (dictionary.refinement && !dictionary.refinementTemplate) {\n at = [];\n for (i = 0; i < 2; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n dictionary.refinementAt = at;\n }\n dictionary.numberOfExportedSymbols = readUint32(data, position);\n position += 4;\n dictionary.numberOfNewSymbols = readUint32(data, position);\n position += 4;\n args = [\n dictionary,\n header.number,\n header.referredTo,\n data,\n position,\n end,\n ];\n break;\n case 6: // ImmediateTextRegion\n case 7: // ImmediateLosslessTextRegion\n const textRegion = {};\n textRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n const textRegionSegmentFlags = readUint16(data, position);\n position += 2;\n textRegion.huffman = !!(textRegionSegmentFlags & 1);\n textRegion.refinement = !!(textRegionSegmentFlags & 2);\n textRegion.logStripSize = (textRegionSegmentFlags >> 2) & 3;\n textRegion.stripSize = 1 << textRegion.logStripSize;\n textRegion.referenceCorner = (textRegionSegmentFlags >> 4) & 3;\n textRegion.transposed = !!(textRegionSegmentFlags & 64);\n textRegion.combinationOperator = (textRegionSegmentFlags >> 7) & 3;\n textRegion.defaultPixelValue = (textRegionSegmentFlags >> 9) & 1;\n textRegion.dsOffset = (textRegionSegmentFlags << 17) >> 27;\n textRegion.refinementTemplate = (textRegionSegmentFlags >> 15) & 1;\n if (textRegion.huffman) {\n const textRegionHuffmanFlags = readUint16(data, position);\n position += 2;\n textRegion.huffmanFS = textRegionHuffmanFlags & 3;\n textRegion.huffmanDS = (textRegionHuffmanFlags >> 2) & 3;\n textRegion.huffmanDT = (textRegionHuffmanFlags >> 4) & 3;\n textRegion.huffmanRefinementDW = (textRegionHuffmanFlags >> 6) & 3;\n textRegion.huffmanRefinementDH = (textRegionHuffmanFlags >> 8) & 3;\n textRegion.huffmanRefinementDX = (textRegionHuffmanFlags >> 10) & 3;\n textRegion.huffmanRefinementDY = (textRegionHuffmanFlags >> 12) & 3;\n textRegion.huffmanRefinementSizeSelector = !!(\n textRegionHuffmanFlags & 0x4000\n );\n }\n if (textRegion.refinement && !textRegion.refinementTemplate) {\n at = [];\n for (i = 0; i < 2; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n textRegion.refinementAt = at;\n }\n textRegion.numberOfSymbolInstances = readUint32(data, position);\n position += 4;\n args = [textRegion, header.referredTo, data, position, end];\n break;\n case 16: // PatternDictionary\n // 7.4.4. Pattern dictionary segment syntax\n const patternDictionary = {};\n const patternDictionaryFlags = data[position++];\n patternDictionary.mmr = !!(patternDictionaryFlags & 1);\n patternDictionary.template = (patternDictionaryFlags >> 1) & 3;\n patternDictionary.patternWidth = data[position++];\n patternDictionary.patternHeight = data[position++];\n patternDictionary.maxPatternIndex = readUint32(data, position);\n position += 4;\n args = [patternDictionary, header.number, data, position, end];\n break;\n case 22: // ImmediateHalftoneRegion\n case 23: // ImmediateLosslessHalftoneRegion\n // 7.4.5 Halftone region segment syntax\n const halftoneRegion = {};\n halftoneRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n const halftoneRegionFlags = data[position++];\n halftoneRegion.mmr = !!(halftoneRegionFlags & 1);\n halftoneRegion.template = (halftoneRegionFlags >> 1) & 3;\n halftoneRegion.enableSkip = !!(halftoneRegionFlags & 8);\n halftoneRegion.combinationOperator = (halftoneRegionFlags >> 4) & 7;\n halftoneRegion.defaultPixelValue = (halftoneRegionFlags >> 7) & 1;\n halftoneRegion.gridWidth = readUint32(data, position);\n position += 4;\n halftoneRegion.gridHeight = readUint32(data, position);\n position += 4;\n halftoneRegion.gridOffsetX = readUint32(data, position) & 0xffffffff;\n position += 4;\n halftoneRegion.gridOffsetY = readUint32(data, position) & 0xffffffff;\n position += 4;\n halftoneRegion.gridVectorX = readUint16(data, position);\n position += 2;\n halftoneRegion.gridVectorY = readUint16(data, position);\n position += 2;\n args = [halftoneRegion, header.referredTo, data, position, end];\n break;\n case 38: // ImmediateGenericRegion\n case 39: // ImmediateLosslessGenericRegion\n const genericRegion = {};\n genericRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n const genericRegionSegmentFlags = data[position++];\n genericRegion.mmr = !!(genericRegionSegmentFlags & 1);\n genericRegion.template = (genericRegionSegmentFlags >> 1) & 3;\n genericRegion.prediction = !!(genericRegionSegmentFlags & 8);\n if (!genericRegion.mmr) {\n atLength = genericRegion.template === 0 ? 4 : 1;\n at = [];\n for (i = 0; i < atLength; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n genericRegion.at = at;\n }\n args = [genericRegion, data, position, end];\n break;\n case 48: // PageInformation\n const pageInfo = {\n width: readUint32(data, position),\n height: readUint32(data, position + 4),\n resolutionX: readUint32(data, position + 8),\n resolutionY: readUint32(data, position + 12),\n };\n if (pageInfo.height === 0xffffffff) {\n delete pageInfo.height;\n }\n const pageSegmentFlags = data[position + 16];\n readUint16(data, position + 17); // pageStripingInformation\n pageInfo.lossless = !!(pageSegmentFlags & 1);\n pageInfo.refinement = !!(pageSegmentFlags & 2);\n pageInfo.defaultPixelValue = (pageSegmentFlags >> 2) & 1;\n pageInfo.combinationOperator = (pageSegmentFlags >> 3) & 3;\n pageInfo.requiresBuffer = !!(pageSegmentFlags & 32);\n pageInfo.combinationOperatorOverride = !!(pageSegmentFlags & 64);\n args = [pageInfo];\n break;\n case 49: // EndOfPage\n break;\n case 50: // EndOfStripe\n break;\n case 51: // EndOfFile\n break;\n case 53: // Tables\n args = [header.number, data, position, end];\n break;\n case 62: // 7.4.15 defines 2 extension types which\n // are comments and can be ignored.\n break;\n default:\n throw new Jbig2Error(\n `segment type ${header.typeName}(${header.type})` +\n \" is not implemented\"\n );\n }\n const callbackName = \"on\" + header.typeName;\n if (callbackName in visitor) {\n visitor[callbackName].apply(visitor, args);\n }\n}\n\nfunction processSegments(segments, visitor) {\n for (let i = 0, ii = segments.length; i < ii; i++) {\n processSegment(segments[i], visitor);\n }\n}\n\nfunction parseJbig2Chunks(chunks) {\n const visitor = new SimpleSegmentVisitor();\n for (let i = 0, ii = chunks.length; i < ii; i++) {\n const chunk = chunks[i];\n const segments = readSegments({}, chunk.data, chunk.start, chunk.end);\n processSegments(segments, visitor);\n }\n return visitor.buffer;\n}\n\nfunction parseJbig2(data) {\n const end = data.length;\n let position = 0;\n\n if (\n data[position] !== 0x97 ||\n data[position + 1] !== 0x4a ||\n data[position + 2] !== 0x42 ||\n data[position + 3] !== 0x32 ||\n data[position + 4] !== 0x0d ||\n data[position + 5] !== 0x0a ||\n data[position + 6] !== 0x1a ||\n data[position + 7] !== 0x0a\n ) {\n throw new Jbig2Error(\"parseJbig2 - invalid header.\");\n }\n\n const header = Object.create(null);\n position += 8;\n const flags = data[position++];\n header.randomAccess = !(flags & 1);\n if (!(flags & 2)) {\n header.numberOfPages = readUint32(data, position);\n position += 4;\n }\n\n const segments = readSegments(header, data, position, end);\n const visitor = new SimpleSegmentVisitor();\n processSegments(segments, visitor);\n\n const { width, height } = visitor.currentPageInfo;\n const bitPacked = visitor.buffer;\n const imgData = new Uint8ClampedArray(width * height);\n let q = 0,\n k = 0;\n for (let i = 0; i < height; i++) {\n let mask = 0,\n buffer;\n for (let j = 0; j < width; j++) {\n if (!mask) {\n mask = 128;\n buffer = bitPacked[k++];\n }\n imgData[q++] = buffer & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n\n return { imgData, width, height };\n}\n\nclass SimpleSegmentVisitor {\n onPageInformation(info) {\n this.currentPageInfo = info;\n const rowSize = (info.width + 7) >> 3;\n const buffer = new Uint8ClampedArray(rowSize * info.height);\n // The contents of ArrayBuffers are initialized to 0.\n // Fill the buffer with 0xFF only if info.defaultPixelValue is set\n if (info.defaultPixelValue) {\n buffer.fill(0xff);\n }\n this.buffer = buffer;\n }\n\n drawBitmap(regionInfo, bitmap) {\n const pageInfo = this.currentPageInfo;\n const width = regionInfo.width,\n height = regionInfo.height;\n const rowSize = (pageInfo.width + 7) >> 3;\n const combinationOperator = pageInfo.combinationOperatorOverride\n ? regionInfo.combinationOperator\n : pageInfo.combinationOperator;\n const buffer = this.buffer;\n const mask0 = 128 >> (regionInfo.x & 7);\n let offset0 = regionInfo.y * rowSize + (regionInfo.x >> 3);\n let i, j, mask, offset;\n switch (combinationOperator) {\n case 0: // OR\n for (i = 0; i < height; i++) {\n mask = mask0;\n offset = offset0;\n for (j = 0; j < width; j++) {\n if (bitmap[i][j]) {\n buffer[offset] |= mask;\n }\n mask >>= 1;\n if (!mask) {\n mask = 128;\n offset++;\n }\n }\n offset0 += rowSize;\n }\n break;\n case 2: // XOR\n for (i = 0; i < height; i++) {\n mask = mask0;\n offset = offset0;\n for (j = 0; j < width; j++) {\n if (bitmap[i][j]) {\n buffer[offset] ^= mask;\n }\n mask >>= 1;\n if (!mask) {\n mask = 128;\n offset++;\n }\n }\n offset0 += rowSize;\n }\n break;\n default:\n throw new Jbig2Error(\n `operator ${combinationOperator} is not supported`\n );\n }\n }\n\n onImmediateGenericRegion(region, data, start, end) {\n const regionInfo = region.info;\n const decodingContext = new DecodingContext(data, start, end);\n const bitmap = decodeBitmap(\n region.mmr,\n regionInfo.width,\n regionInfo.height,\n region.template,\n region.prediction,\n null,\n region.at,\n decodingContext\n );\n this.drawBitmap(regionInfo, bitmap);\n }\n\n onImmediateLosslessGenericRegion() {\n this.onImmediateGenericRegion.apply(this, arguments);\n }\n\n onSymbolDictionary(\n dictionary,\n currentSegment,\n referredSegments,\n data,\n start,\n end\n ) {\n let huffmanTables, huffmanInput;\n if (dictionary.huffman) {\n huffmanTables = getSymbolDictionaryHuffmanTables(\n dictionary,\n referredSegments,\n this.customTables\n );\n huffmanInput = new Reader(data, start, end);\n }\n\n // Combines exported symbols from all referred segments\n let symbols = this.symbols;\n if (!symbols) {\n this.symbols = symbols = {};\n }\n\n let inputSymbols = [];\n for (let i = 0, ii = referredSegments.length; i < ii; i++) {\n const referredSymbols = symbols[referredSegments[i]];\n // referredSymbols is undefined when we have a reference to a Tables\n // segment instead of a SymbolDictionary.\n if (referredSymbols) {\n inputSymbols = inputSymbols.concat(referredSymbols);\n }\n }\n\n const decodingContext = new DecodingContext(data, start, end);\n symbols[currentSegment] = decodeSymbolDictionary(\n dictionary.huffman,\n dictionary.refinement,\n inputSymbols,\n dictionary.numberOfNewSymbols,\n dictionary.numberOfExportedSymbols,\n huffmanTables,\n dictionary.template,\n dictionary.at,\n dictionary.refinementTemplate,\n dictionary.refinementAt,\n decodingContext,\n huffmanInput\n );\n }\n\n onImmediateTextRegion(region, referredSegments, data, start, end) {\n const regionInfo = region.info;\n let huffmanTables, huffmanInput;\n\n // Combines exported symbols from all referred segments\n const symbols = this.symbols;\n let inputSymbols = [];\n for (let i = 0, ii = referredSegments.length; i < ii; i++) {\n const referredSymbols = symbols[referredSegments[i]];\n // referredSymbols is undefined when we have a reference to a Tables\n // segment instead of a SymbolDictionary.\n if (referredSymbols) {\n inputSymbols = inputSymbols.concat(referredSymbols);\n }\n }\n const symbolCodeLength = log2(inputSymbols.length);\n if (region.huffman) {\n huffmanInput = new Reader(data, start, end);\n huffmanTables = getTextRegionHuffmanTables(\n region,\n referredSegments,\n this.customTables,\n inputSymbols.length,\n huffmanInput\n );\n }\n\n const decodingContext = new DecodingContext(data, start, end);\n const bitmap = decodeTextRegion(\n region.huffman,\n region.refinement,\n regionInfo.width,\n regionInfo.height,\n region.defaultPixelValue,\n region.numberOfSymbolInstances,\n region.stripSize,\n inputSymbols,\n symbolCodeLength,\n region.transposed,\n region.dsOffset,\n region.referenceCorner,\n region.combinationOperator,\n huffmanTables,\n region.refinementTemplate,\n region.refinementAt,\n decodingContext,\n region.logStripSize,\n huffmanInput\n );\n this.drawBitmap(regionInfo, bitmap);\n }\n\n onImmediateLosslessTextRegion() {\n this.onImmediateTextRegion.apply(this, arguments);\n }\n\n onPatternDictionary(dictionary, currentSegment, data, start, end) {\n let patterns = this.patterns;\n if (!patterns) {\n this.patterns = patterns = {};\n }\n const decodingContext = new DecodingContext(data, start, end);\n patterns[currentSegment] = decodePatternDictionary(\n dictionary.mmr,\n dictionary.patternWidth,\n dictionary.patternHeight,\n dictionary.maxPatternIndex,\n dictionary.template,\n decodingContext\n );\n }\n\n onImmediateHalftoneRegion(region, referredSegments, data, start, end) {\n // HalftoneRegion refers to exactly one PatternDictionary.\n const patterns = this.patterns[referredSegments[0]];\n const regionInfo = region.info;\n const decodingContext = new DecodingContext(data, start, end);\n const bitmap = decodeHalftoneRegion(\n region.mmr,\n patterns,\n region.template,\n regionInfo.width,\n regionInfo.height,\n region.defaultPixelValue,\n region.enableSkip,\n region.combinationOperator,\n region.gridWidth,\n region.gridHeight,\n region.gridOffsetX,\n region.gridOffsetY,\n region.gridVectorX,\n region.gridVectorY,\n decodingContext\n );\n this.drawBitmap(regionInfo, bitmap);\n }\n\n onImmediateLosslessHalftoneRegion() {\n this.onImmediateHalftoneRegion.apply(this, arguments);\n }\n\n onTables(currentSegment, data, start, end) {\n let customTables = this.customTables;\n if (!customTables) {\n this.customTables = customTables = {};\n }\n customTables[currentSegment] = decodeTablesSegment(data, start, end);\n }\n}\n\nclass HuffmanLine {\n constructor(lineData) {\n if (lineData.length === 2) {\n // OOB line.\n this.isOOB = true;\n this.rangeLow = 0;\n this.prefixLength = lineData[0];\n this.rangeLength = 0;\n this.prefixCode = lineData[1];\n this.isLowerRange = false;\n } else {\n // Normal, upper range or lower range line.\n // Upper range lines are processed like normal lines.\n this.isOOB = false;\n this.rangeLow = lineData[0];\n this.prefixLength = lineData[1];\n this.rangeLength = lineData[2];\n this.prefixCode = lineData[3];\n this.isLowerRange = lineData[4] === \"lower\";\n }\n }\n}\n\nclass HuffmanTreeNode {\n constructor(line) {\n this.children = [];\n if (line) {\n // Leaf node\n this.isLeaf = true;\n this.rangeLength = line.rangeLength;\n this.rangeLow = line.rangeLow;\n this.isLowerRange = line.isLowerRange;\n this.isOOB = line.isOOB;\n } else {\n // Intermediate or root node\n this.isLeaf = false;\n }\n }\n\n buildTree(line, shift) {\n const bit = (line.prefixCode >> shift) & 1;\n if (shift <= 0) {\n // Create a leaf node.\n this.children[bit] = new HuffmanTreeNode(line);\n } else {\n // Create an intermediate node and continue recursively.\n let node = this.children[bit];\n if (!node) {\n this.children[bit] = node = new HuffmanTreeNode(null);\n }\n node.buildTree(line, shift - 1);\n }\n }\n\n decodeNode(reader) {\n if (this.isLeaf) {\n if (this.isOOB) {\n return null;\n }\n const htOffset = reader.readBits(this.rangeLength);\n return this.rangeLow + (this.isLowerRange ? -htOffset : htOffset);\n }\n const node = this.children[reader.readBit()];\n if (!node) {\n throw new Jbig2Error(\"invalid Huffman data\");\n }\n return node.decodeNode(reader);\n }\n}\n\nclass HuffmanTable {\n constructor(lines, prefixCodesDone) {\n if (!prefixCodesDone) {\n this.assignPrefixCodes(lines);\n }\n // Create Huffman tree.\n this.rootNode = new HuffmanTreeNode(null);\n for (let i = 0, ii = lines.length; i < ii; i++) {\n const line = lines[i];\n if (line.prefixLength > 0) {\n this.rootNode.buildTree(line, line.prefixLength - 1);\n }\n }\n }\n\n decode(reader) {\n return this.rootNode.decodeNode(reader);\n }\n\n assignPrefixCodes(lines) {\n // Annex B.3 Assigning the prefix codes.\n const linesLength = lines.length;\n let prefixLengthMax = 0;\n for (let i = 0; i < linesLength; i++) {\n prefixLengthMax = Math.max(prefixLengthMax, lines[i].prefixLength);\n }\n\n const histogram = new Uint32Array(prefixLengthMax + 1);\n for (let i = 0; i < linesLength; i++) {\n histogram[lines[i].prefixLength]++;\n }\n let currentLength = 1,\n firstCode = 0,\n currentCode,\n currentTemp,\n line;\n histogram[0] = 0;\n\n while (currentLength <= prefixLengthMax) {\n firstCode = (firstCode + histogram[currentLength - 1]) << 1;\n currentCode = firstCode;\n currentTemp = 0;\n while (currentTemp < linesLength) {\n line = lines[currentTemp];\n if (line.prefixLength === currentLength) {\n line.prefixCode = currentCode;\n currentCode++;\n }\n currentTemp++;\n }\n currentLength++;\n }\n }\n}\n\nfunction decodeTablesSegment(data, start, end) {\n // Decodes a Tables segment, i.e., a custom Huffman table.\n // Annex B.2 Code table structure.\n const flags = data[start];\n const lowestValue = readUint32(data, start + 1) & 0xffffffff;\n const highestValue = readUint32(data, start + 5) & 0xffffffff;\n const reader = new Reader(data, start + 9, end);\n\n const prefixSizeBits = ((flags >> 1) & 7) + 1;\n const rangeSizeBits = ((flags >> 4) & 7) + 1;\n const lines = [];\n let prefixLength,\n rangeLength,\n currentRangeLow = lowestValue;\n\n // Normal table lines\n do {\n prefixLength = reader.readBits(prefixSizeBits);\n rangeLength = reader.readBits(rangeSizeBits);\n lines.push(\n new HuffmanLine([currentRangeLow, prefixLength, rangeLength, 0])\n );\n currentRangeLow += 1 << rangeLength;\n } while (currentRangeLow < highestValue);\n\n // Lower range table line\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([lowestValue - 1, prefixLength, 32, 0, \"lower\"]));\n\n // Upper range table line\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([highestValue, prefixLength, 32, 0]));\n\n if (flags & 1) {\n // Out-of-band table line\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([prefixLength, 0]));\n }\n\n return new HuffmanTable(lines, false);\n}\n\nconst standardTablesCache = {};\n\nfunction getStandardTable(number) {\n // Annex B.5 Standard Huffman tables.\n let table = standardTablesCache[number];\n if (table) {\n return table;\n }\n let lines;\n switch (number) {\n case 1:\n lines = [\n [0, 1, 4, 0x0],\n [16, 2, 8, 0x2],\n [272, 3, 16, 0x6],\n [65808, 3, 32, 0x7], // upper\n ];\n break;\n case 2:\n lines = [\n [0, 1, 0, 0x0],\n [1, 2, 0, 0x2],\n [2, 3, 0, 0x6],\n [3, 4, 3, 0xe],\n [11, 5, 6, 0x1e],\n [75, 6, 32, 0x3e], // upper\n [6, 0x3f], // OOB\n ];\n break;\n case 3:\n lines = [\n [-256, 8, 8, 0xfe],\n [0, 1, 0, 0x0],\n [1, 2, 0, 0x2],\n [2, 3, 0, 0x6],\n [3, 4, 3, 0xe],\n [11, 5, 6, 0x1e],\n [-257, 8, 32, 0xff, \"lower\"],\n [75, 7, 32, 0x7e], // upper\n [6, 0x3e], // OOB\n ];\n break;\n case 4:\n lines = [\n [1, 1, 0, 0x0],\n [2, 2, 0, 0x2],\n [3, 3, 0, 0x6],\n [4, 4, 3, 0xe],\n [12, 5, 6, 0x1e],\n [76, 5, 32, 0x1f], // upper\n ];\n break;\n case 5:\n lines = [\n [-255, 7, 8, 0x7e],\n [1, 1, 0, 0x0],\n [2, 2, 0, 0x2],\n [3, 3, 0, 0x6],\n [4, 4, 3, 0xe],\n [12, 5, 6, 0x1e],\n [-256, 7, 32, 0x7f, \"lower\"],\n [76, 6, 32, 0x3e], // upper\n ];\n break;\n case 6:\n lines = [\n [-2048, 5, 10, 0x1c],\n [-1024, 4, 9, 0x8],\n [-512, 4, 8, 0x9],\n [-256, 4, 7, 0xa],\n [-128, 5, 6, 0x1d],\n [-64, 5, 5, 0x1e],\n [-32, 4, 5, 0xb],\n [0, 2, 7, 0x0],\n [128, 3, 7, 0x2],\n [256, 3, 8, 0x3],\n [512, 4, 9, 0xc],\n [1024, 4, 10, 0xd],\n [-2049, 6, 32, 0x3e, \"lower\"],\n [2048, 6, 32, 0x3f], // upper\n ];\n break;\n case 7:\n lines = [\n [-1024, 4, 9, 0x8],\n [-512, 3, 8, 0x0],\n [-256, 4, 7, 0x9],\n [-128, 5, 6, 0x1a],\n [-64, 5, 5, 0x1b],\n [-32, 4, 5, 0xa],\n [0, 4, 5, 0xb],\n [32, 5, 5, 0x1c],\n [64, 5, 6, 0x1d],\n [128, 4, 7, 0xc],\n [256, 3, 8, 0x1],\n [512, 3, 9, 0x2],\n [1024, 3, 10, 0x3],\n [-1025, 5, 32, 0x1e, \"lower\"],\n [2048, 5, 32, 0x1f], // upper\n ];\n break;\n case 8:\n lines = [\n [-15, 8, 3, 0xfc],\n [-7, 9, 1, 0x1fc],\n [-5, 8, 1, 0xfd],\n [-3, 9, 0, 0x1fd],\n [-2, 7, 0, 0x7c],\n [-1, 4, 0, 0xa],\n [0, 2, 1, 0x0],\n [2, 5, 0, 0x1a],\n [3, 6, 0, 0x3a],\n [4, 3, 4, 0x4],\n [20, 6, 1, 0x3b],\n [22, 4, 4, 0xb],\n [38, 4, 5, 0xc],\n [70, 5, 6, 0x1b],\n [134, 5, 7, 0x1c],\n [262, 6, 7, 0x3c],\n [390, 7, 8, 0x7d],\n [646, 6, 10, 0x3d],\n [-16, 9, 32, 0x1fe, \"lower\"],\n [1670, 9, 32, 0x1ff], // upper\n [2, 0x1], // OOB\n ];\n break;\n case 9:\n lines = [\n [-31, 8, 4, 0xfc],\n [-15, 9, 2, 0x1fc],\n [-11, 8, 2, 0xfd],\n [-7, 9, 1, 0x1fd],\n [-5, 7, 1, 0x7c],\n [-3, 4, 1, 0xa],\n [-1, 3, 1, 0x2],\n [1, 3, 1, 0x3],\n [3, 5, 1, 0x1a],\n [5, 6, 1, 0x3a],\n [7, 3, 5, 0x4],\n [39, 6, 2, 0x3b],\n [43, 4, 5, 0xb],\n [75, 4, 6, 0xc],\n [139, 5, 7, 0x1b],\n [267, 5, 8, 0x1c],\n [523, 6, 8, 0x3c],\n [779, 7, 9, 0x7d],\n [1291, 6, 11, 0x3d],\n [-32, 9, 32, 0x1fe, \"lower\"],\n [3339, 9, 32, 0x1ff], // upper\n [2, 0x0], // OOB\n ];\n break;\n case 10:\n lines = [\n [-21, 7, 4, 0x7a],\n [-5, 8, 0, 0xfc],\n [-4, 7, 0, 0x7b],\n [-3, 5, 0, 0x18],\n [-2, 2, 2, 0x0],\n [2, 5, 0, 0x19],\n [3, 6, 0, 0x36],\n [4, 7, 0, 0x7c],\n [5, 8, 0, 0xfd],\n [6, 2, 6, 0x1],\n [70, 5, 5, 0x1a],\n [102, 6, 5, 0x37],\n [134, 6, 6, 0x38],\n [198, 6, 7, 0x39],\n [326, 6, 8, 0x3a],\n [582, 6, 9, 0x3b],\n [1094, 6, 10, 0x3c],\n [2118, 7, 11, 0x7d],\n [-22, 8, 32, 0xfe, \"lower\"],\n [4166, 8, 32, 0xff], // upper\n [2, 0x2], // OOB\n ];\n break;\n case 11:\n lines = [\n [1, 1, 0, 0x0],\n [2, 2, 1, 0x2],\n [4, 4, 0, 0xc],\n [5, 4, 1, 0xd],\n [7, 5, 1, 0x1c],\n [9, 5, 2, 0x1d],\n [13, 6, 2, 0x3c],\n [17, 7, 2, 0x7a],\n [21, 7, 3, 0x7b],\n [29, 7, 4, 0x7c],\n [45, 7, 5, 0x7d],\n [77, 7, 6, 0x7e],\n [141, 7, 32, 0x7f], // upper\n ];\n break;\n case 12:\n lines = [\n [1, 1, 0, 0x0],\n [2, 2, 0, 0x2],\n [3, 3, 1, 0x6],\n [5, 5, 0, 0x1c],\n [6, 5, 1, 0x1d],\n [8, 6, 1, 0x3c],\n [10, 7, 0, 0x7a],\n [11, 7, 1, 0x7b],\n [13, 7, 2, 0x7c],\n [17, 7, 3, 0x7d],\n [25, 7, 4, 0x7e],\n [41, 8, 5, 0xfe],\n [73, 8, 32, 0xff], // upper\n ];\n break;\n case 13:\n lines = [\n [1, 1, 0, 0x0],\n [2, 3, 0, 0x4],\n [3, 4, 0, 0xc],\n [4, 5, 0, 0x1c],\n [5, 4, 1, 0xd],\n [7, 3, 3, 0x5],\n [15, 6, 1, 0x3a],\n [17, 6, 2, 0x3b],\n [21, 6, 3, 0x3c],\n [29, 6, 4, 0x3d],\n [45, 6, 5, 0x3e],\n [77, 7, 6, 0x7e],\n [141, 7, 32, 0x7f], // upper\n ];\n break;\n case 14:\n lines = [\n [-2, 3, 0, 0x4],\n [-1, 3, 0, 0x5],\n [0, 1, 0, 0x0],\n [1, 3, 0, 0x6],\n [2, 3, 0, 0x7],\n ];\n break;\n case 15:\n lines = [\n [-24, 7, 4, 0x7c],\n [-8, 6, 2, 0x3c],\n [-4, 5, 1, 0x1c],\n [-2, 4, 0, 0xc],\n [-1, 3, 0, 0x4],\n [0, 1, 0, 0x0],\n [1, 3, 0, 0x5],\n [2, 4, 0, 0xd],\n [3, 5, 1, 0x1d],\n [5, 6, 2, 0x3d],\n [9, 7, 4, 0x7d],\n [-25, 7, 32, 0x7e, \"lower\"],\n [25, 7, 32, 0x7f], // upper\n ];\n break;\n default:\n throw new Jbig2Error(`standard table B.${number} does not exist`);\n }\n\n for (let i = 0, ii = lines.length; i < ii; i++) {\n lines[i] = new HuffmanLine(lines[i]);\n }\n table = new HuffmanTable(lines, true);\n standardTablesCache[number] = table;\n return table;\n}\n\nclass Reader {\n constructor(data, start, end) {\n this.data = data;\n this.start = start;\n this.end = end;\n this.position = start;\n this.shift = -1;\n this.currentByte = 0;\n }\n\n readBit() {\n if (this.shift < 0) {\n if (this.position >= this.end) {\n throw new Jbig2Error(\"end of data while reading bit\");\n }\n this.currentByte = this.data[this.position++];\n this.shift = 7;\n }\n const bit = (this.currentByte >> this.shift) & 1;\n this.shift--;\n return bit;\n }\n\n readBits(numBits) {\n let result = 0,\n i;\n for (i = numBits - 1; i >= 0; i--) {\n result |= this.readBit() << i;\n }\n return result;\n }\n\n byteAlign() {\n this.shift = -1;\n }\n\n next() {\n if (this.position >= this.end) {\n return -1;\n }\n return this.data[this.position++];\n }\n}\n\nfunction getCustomHuffmanTable(index, referredTo, customTables) {\n // Returns a Tables segment that has been earlier decoded.\n // See 7.4.2.1.6 (symbol dictionary) or 7.4.3.1.6 (text region).\n let currentIndex = 0;\n for (let i = 0, ii = referredTo.length; i < ii; i++) {\n const table = customTables[referredTo[i]];\n if (table) {\n if (index === currentIndex) {\n return table;\n }\n currentIndex++;\n }\n }\n throw new Jbig2Error(\"can't find custom Huffman table\");\n}\n\nfunction getTextRegionHuffmanTables(\n textRegion,\n referredTo,\n customTables,\n numberOfSymbols,\n reader\n) {\n // 7.4.3.1.7 Symbol ID Huffman table decoding\n\n // Read code lengths for RUNCODEs 0...34.\n const codes = [];\n for (let i = 0; i <= 34; i++) {\n const codeLength = reader.readBits(4);\n codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n }\n // Assign Huffman codes for RUNCODEs.\n const runCodesTable = new HuffmanTable(codes, false);\n\n // Read a Huffman code using the assignment above.\n // Interpret the RUNCODE codes and the additional bits (if any).\n codes.length = 0;\n for (let i = 0; i < numberOfSymbols; ) {\n const codeLength = runCodesTable.decode(reader);\n if (codeLength >= 32) {\n let repeatedLength, numberOfRepeats, j;\n switch (codeLength) {\n case 32:\n if (i === 0) {\n throw new Jbig2Error(\"no previous value in symbol ID table\");\n }\n numberOfRepeats = reader.readBits(2) + 3;\n repeatedLength = codes[i - 1].prefixLength;\n break;\n case 33:\n numberOfRepeats = reader.readBits(3) + 3;\n repeatedLength = 0;\n break;\n case 34:\n numberOfRepeats = reader.readBits(7) + 11;\n repeatedLength = 0;\n break;\n default:\n throw new Jbig2Error(\"invalid code length in symbol ID table\");\n }\n for (j = 0; j < numberOfRepeats; j++) {\n codes.push(new HuffmanLine([i, repeatedLength, 0, 0]));\n i++;\n }\n } else {\n codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n i++;\n }\n }\n reader.byteAlign();\n const symbolIDTable = new HuffmanTable(codes, false);\n\n // 7.4.3.1.6 Text region segment Huffman table selection\n\n let customIndex = 0,\n tableFirstS,\n tableDeltaS,\n tableDeltaT;\n\n switch (textRegion.huffmanFS) {\n case 0:\n case 1:\n tableFirstS = getStandardTable(textRegion.huffmanFS + 6);\n break;\n case 3:\n tableFirstS = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman FS selector\");\n }\n\n switch (textRegion.huffmanDS) {\n case 0:\n case 1:\n case 2:\n tableDeltaS = getStandardTable(textRegion.huffmanDS + 8);\n break;\n case 3:\n tableDeltaS = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman DS selector\");\n }\n\n switch (textRegion.huffmanDT) {\n case 0:\n case 1:\n case 2:\n tableDeltaT = getStandardTable(textRegion.huffmanDT + 11);\n break;\n case 3:\n tableDeltaT = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman DT selector\");\n }\n\n if (textRegion.refinement) {\n // Load tables RDW, RDH, RDX and RDY.\n throw new Jbig2Error(\"refinement with Huffman is not supported\");\n }\n\n return {\n symbolIDTable,\n tableFirstS,\n tableDeltaS,\n tableDeltaT,\n };\n}\n\nfunction getSymbolDictionaryHuffmanTables(\n dictionary,\n referredTo,\n customTables\n) {\n // 7.4.2.1.6 Symbol dictionary segment Huffman table selection\n\n let customIndex = 0,\n tableDeltaHeight,\n tableDeltaWidth;\n switch (dictionary.huffmanDHSelector) {\n case 0:\n case 1:\n tableDeltaHeight = getStandardTable(dictionary.huffmanDHSelector + 4);\n break;\n case 3:\n tableDeltaHeight = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman DH selector\");\n }\n\n switch (dictionary.huffmanDWSelector) {\n case 0:\n case 1:\n tableDeltaWidth = getStandardTable(dictionary.huffmanDWSelector + 2);\n break;\n case 3:\n tableDeltaWidth = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman DW selector\");\n }\n\n let tableBitmapSize, tableAggregateInstances;\n if (dictionary.bitmapSizeSelector) {\n tableBitmapSize = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n } else {\n tableBitmapSize = getStandardTable(1);\n }\n\n if (dictionary.aggregationInstancesSelector) {\n tableAggregateInstances = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n } else {\n tableAggregateInstances = getStandardTable(1);\n }\n\n return {\n tableDeltaHeight,\n tableDeltaWidth,\n tableBitmapSize,\n tableAggregateInstances,\n };\n}\n\nfunction readUncompressedBitmap(reader, width, height) {\n const bitmap = [];\n for (let y = 0; y < height; y++) {\n const row = new Uint8Array(width);\n bitmap.push(row);\n for (let x = 0; x < width; x++) {\n row[x] = reader.readBit();\n }\n reader.byteAlign();\n }\n return bitmap;\n}\n\nfunction decodeMMRBitmap(input, width, height, endOfBlock) {\n // MMR is the same compression algorithm as the PDF filter\n // CCITTFaxDecode with /K -1.\n const params = {\n K: -1,\n Columns: width,\n Rows: height,\n BlackIs1: true,\n EndOfBlock: endOfBlock,\n };\n const decoder = new CCITTFaxDecoder(input, params);\n const bitmap = [];\n let currentByte,\n eof = false;\n\n for (let y = 0; y < height; y++) {\n const row = new Uint8Array(width);\n bitmap.push(row);\n let shift = -1;\n for (let x = 0; x < width; x++) {\n if (shift < 0) {\n currentByte = decoder.readNextChar();\n if (currentByte === -1) {\n // Set the rest of the bits to zero.\n currentByte = 0;\n eof = true;\n }\n shift = 7;\n }\n row[x] = (currentByte >> shift) & 1;\n shift--;\n }\n }\n\n if (endOfBlock && !eof) {\n // Read until EOFB has been consumed.\n const lookForEOFLimit = 5;\n for (let i = 0; i < lookForEOFLimit; i++) {\n if (decoder.readNextChar() === -1) {\n break;\n }\n }\n }\n\n return bitmap;\n}\n\nclass Jbig2Image {\n parseChunks(chunks) {\n return parseJbig2Chunks(chunks);\n }\n\n parse(data) {\n const { imgData, width, height } = parseJbig2(data);\n this.width = width;\n this.height = height;\n return imgData;\n }\n}\n\nexport { Jbig2Image };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Table C-2\nconst QeTable = [\n { qe: 0x5601, nmps: 1, nlps: 1, switchFlag: 1 },\n { qe: 0x3401, nmps: 2, nlps: 6, switchFlag: 0 },\n { qe: 0x1801, nmps: 3, nlps: 9, switchFlag: 0 },\n { qe: 0x0ac1, nmps: 4, nlps: 12, switchFlag: 0 },\n { qe: 0x0521, nmps: 5, nlps: 29, switchFlag: 0 },\n { qe: 0x0221, nmps: 38, nlps: 33, switchFlag: 0 },\n { qe: 0x5601, nmps: 7, nlps: 6, switchFlag: 1 },\n { qe: 0x5401, nmps: 8, nlps: 14, switchFlag: 0 },\n { qe: 0x4801, nmps: 9, nlps: 14, switchFlag: 0 },\n { qe: 0x3801, nmps: 10, nlps: 14, switchFlag: 0 },\n { qe: 0x3001, nmps: 11, nlps: 17, switchFlag: 0 },\n { qe: 0x2401, nmps: 12, nlps: 18, switchFlag: 0 },\n { qe: 0x1c01, nmps: 13, nlps: 20, switchFlag: 0 },\n { qe: 0x1601, nmps: 29, nlps: 21, switchFlag: 0 },\n { qe: 0x5601, nmps: 15, nlps: 14, switchFlag: 1 },\n { qe: 0x5401, nmps: 16, nlps: 14, switchFlag: 0 },\n { qe: 0x5101, nmps: 17, nlps: 15, switchFlag: 0 },\n { qe: 0x4801, nmps: 18, nlps: 16, switchFlag: 0 },\n { qe: 0x3801, nmps: 19, nlps: 17, switchFlag: 0 },\n { qe: 0x3401, nmps: 20, nlps: 18, switchFlag: 0 },\n { qe: 0x3001, nmps: 21, nlps: 19, switchFlag: 0 },\n { qe: 0x2801, nmps: 22, nlps: 19, switchFlag: 0 },\n { qe: 0x2401, nmps: 23, nlps: 20, switchFlag: 0 },\n { qe: 0x2201, nmps: 24, nlps: 21, switchFlag: 0 },\n { qe: 0x1c01, nmps: 25, nlps: 22, switchFlag: 0 },\n { qe: 0x1801, nmps: 26, nlps: 23, switchFlag: 0 },\n { qe: 0x1601, nmps: 27, nlps: 24, switchFlag: 0 },\n { qe: 0x1401, nmps: 28, nlps: 25, switchFlag: 0 },\n { qe: 0x1201, nmps: 29, nlps: 26, switchFlag: 0 },\n { qe: 0x1101, nmps: 30, nlps: 27, switchFlag: 0 },\n { qe: 0x0ac1, nmps: 31, nlps: 28, switchFlag: 0 },\n { qe: 0x09c1, nmps: 32, nlps: 29, switchFlag: 0 },\n { qe: 0x08a1, nmps: 33, nlps: 30, switchFlag: 0 },\n { qe: 0x0521, nmps: 34, nlps: 31, switchFlag: 0 },\n { qe: 0x0441, nmps: 35, nlps: 32, switchFlag: 0 },\n { qe: 0x02a1, nmps: 36, nlps: 33, switchFlag: 0 },\n { qe: 0x0221, nmps: 37, nlps: 34, switchFlag: 0 },\n { qe: 0x0141, nmps: 38, nlps: 35, switchFlag: 0 },\n { qe: 0x0111, nmps: 39, nlps: 36, switchFlag: 0 },\n { qe: 0x0085, nmps: 40, nlps: 37, switchFlag: 0 },\n { qe: 0x0049, nmps: 41, nlps: 38, switchFlag: 0 },\n { qe: 0x0025, nmps: 42, nlps: 39, switchFlag: 0 },\n { qe: 0x0015, nmps: 43, nlps: 40, switchFlag: 0 },\n { qe: 0x0009, nmps: 44, nlps: 41, switchFlag: 0 },\n { qe: 0x0005, nmps: 45, nlps: 42, switchFlag: 0 },\n { qe: 0x0001, nmps: 45, nlps: 43, switchFlag: 0 },\n { qe: 0x5601, nmps: 46, nlps: 46, switchFlag: 0 },\n];\n\n/**\n * This class implements the QM Coder decoding as defined in\n * JPEG 2000 Part I Final Committee Draft Version 1.0\n * Annex C.3 Arithmetic decoding procedure\n * available at http://www.jpeg.org/public/fcd15444-1.pdf\n *\n * The arithmetic decoder is used in conjunction with context models to decode\n * JPEG2000 and JBIG2 streams.\n */\nclass ArithmeticDecoder {\n // C.3.5 Initialisation of the decoder (INITDEC)\n constructor(data, start, end) {\n this.data = data;\n this.bp = start;\n this.dataEnd = end;\n\n this.chigh = data[start];\n this.clow = 0;\n\n this.byteIn();\n\n this.chigh = ((this.chigh << 7) & 0xffff) | ((this.clow >> 9) & 0x7f);\n this.clow = (this.clow << 7) & 0xffff;\n this.ct -= 7;\n this.a = 0x8000;\n }\n\n // C.3.4 Compressed data input (BYTEIN)\n byteIn() {\n const data = this.data;\n let bp = this.bp;\n\n if (data[bp] === 0xff) {\n if (data[bp + 1] > 0x8f) {\n this.clow += 0xff00;\n this.ct = 8;\n } else {\n bp++;\n this.clow += data[bp] << 9;\n this.ct = 7;\n this.bp = bp;\n }\n } else {\n bp++;\n this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xff00;\n this.ct = 8;\n this.bp = bp;\n }\n if (this.clow > 0xffff) {\n this.chigh += this.clow >> 16;\n this.clow &= 0xffff;\n }\n }\n\n // C.3.2 Decoding a decision (DECODE)\n readBit(contexts, pos) {\n // Contexts are packed into 1 byte:\n // highest 7 bits carry cx.index, lowest bit carries cx.mps\n let cx_index = contexts[pos] >> 1,\n cx_mps = contexts[pos] & 1;\n const qeTableIcx = QeTable[cx_index];\n const qeIcx = qeTableIcx.qe;\n let d;\n let a = this.a - qeIcx;\n\n if (this.chigh < qeIcx) {\n // exchangeLps\n if (a < qeIcx) {\n a = qeIcx;\n d = cx_mps;\n cx_index = qeTableIcx.nmps;\n } else {\n a = qeIcx;\n d = 1 ^ cx_mps;\n if (qeTableIcx.switchFlag === 1) {\n cx_mps = d;\n }\n cx_index = qeTableIcx.nlps;\n }\n } else {\n this.chigh -= qeIcx;\n if ((a & 0x8000) !== 0) {\n this.a = a;\n return cx_mps;\n }\n // exchangeMps\n if (a < qeIcx) {\n d = 1 ^ cx_mps;\n if (qeTableIcx.switchFlag === 1) {\n cx_mps = d;\n }\n cx_index = qeTableIcx.nlps;\n } else {\n d = cx_mps;\n cx_index = qeTableIcx.nmps;\n }\n }\n // C.3.3 renormD;\n do {\n if (this.ct === 0) {\n this.byteIn();\n }\n\n a <<= 1;\n this.chigh = ((this.chigh << 1) & 0xffff) | ((this.clow >> 15) & 1);\n this.clow = (this.clow << 1) & 0xffff;\n this.ct--;\n } while ((a & 0x8000) === 0);\n this.a = a;\n\n contexts[pos] = (cx_index << 1) | cx_mps;\n return d;\n }\n}\n\nexport { ArithmeticDecoder };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { Dict } from \"./primitives.js\";\nimport { JpegImage } from \"./jpg.js\";\nimport { shadow } from \"../shared/util.js\";\n\n/**\n * For JPEG's we use a library to decode these images and the stream behaves\n * like all the other DecodeStreams.\n */\nclass JpegStream extends DecodeStream {\n constructor(stream, maybeLength, params) {\n // Some images may contain 'junk' before the SOI (start-of-image) marker.\n // Note: this seems to mainly affect inline images.\n let ch;\n while ((ch = stream.getByte()) !== -1) {\n // Find the first byte of the SOI marker (0xFFD8).\n if (ch === 0xff) {\n stream.skip(-1); // Reset the stream position to the SOI.\n break;\n }\n }\n super(maybeLength);\n\n this.stream = stream;\n this.dict = stream.dict;\n this.maybeLength = maybeLength;\n this.params = params;\n }\n\n get bytes() {\n // If `this.maybeLength` is null, we'll get the entire stream.\n return shadow(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n }\n\n ensureBuffer(requested) {\n // No-op, since `this.readBlock` will always parse the entire image and\n // directly insert all of its data into `this.buffer`.\n }\n\n readBlock() {\n if (this.eof) {\n return;\n }\n const jpegOptions = {\n decodeTransform: undefined,\n colorTransform: undefined,\n };\n\n // Checking if values need to be transformed before conversion.\n const decodeArr = this.dict.getArray(\"D\", \"Decode\");\n if (this.forceRGB && Array.isArray(decodeArr)) {\n const bitsPerComponent = this.dict.get(\"BPC\", \"BitsPerComponent\") || 8;\n const decodeArrLength = decodeArr.length;\n const transform = new Int32Array(decodeArrLength);\n let transformNeeded = false;\n const maxValue = (1 << bitsPerComponent) - 1;\n for (let i = 0; i < decodeArrLength; i += 2) {\n transform[i] = ((decodeArr[i + 1] - decodeArr[i]) * 256) | 0;\n transform[i + 1] = (decodeArr[i] * maxValue) | 0;\n if (transform[i] !== 256 || transform[i + 1] !== 0) {\n transformNeeded = true;\n }\n }\n if (transformNeeded) {\n jpegOptions.decodeTransform = transform;\n }\n }\n // Fetching the 'ColorTransform' entry, if it exists.\n if (this.params instanceof Dict) {\n const colorTransform = this.params.get(\"ColorTransform\");\n if (Number.isInteger(colorTransform)) {\n jpegOptions.colorTransform = colorTransform;\n }\n }\n const jpegImage = new JpegImage(jpegOptions);\n\n jpegImage.parse(this.bytes);\n const data = jpegImage.getData({\n width: this.drawWidth,\n height: this.drawHeight,\n forceRGB: this.forceRGB,\n isSourcePDF: true,\n });\n this.buffer = data;\n this.bufferLength = data.length;\n this.eof = true;\n }\n}\n\nexport { JpegStream };\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, BaseException, warn } from \"../shared/util.js\";\nimport { readUint16 } from \"./core_utils.js\";\n\nclass JpegError extends BaseException {\n constructor(msg) {\n super(`JPEG error: ${msg}`, \"JpegError\");\n }\n}\n\nclass DNLMarkerError extends BaseException {\n constructor(message, scanLines) {\n super(message, \"DNLMarkerError\");\n this.scanLines = scanLines;\n }\n}\n\nclass EOIMarkerError extends BaseException {\n constructor(msg) {\n super(msg, \"EOIMarkerError\");\n }\n}\n\n/**\n * This code was forked from https://github.com/notmasteryet/jpgjs.\n * The original version was created by GitHub user notmasteryet.\n *\n * - The JPEG specification can be found in the ITU CCITT Recommendation T.81\n * (www.w3.org/Graphics/JPEG/itu-t81.pdf)\n * - The JFIF specification can be found in the JPEG File Interchange Format\n * (www.w3.org/Graphics/JPEG/jfif3.pdf)\n * - The Adobe Application-Specific JPEG markers in the\n * Supporting the DCT Filters in PostScript Level 2, Technical Note #5116\n * (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf)\n */\n\n// prettier-ignore\nconst dctZigZag = new Uint8Array([\n 0,\n 1, 8,\n 16, 9, 2,\n 3, 10, 17, 24,\n 32, 25, 18, 11, 4,\n 5, 12, 19, 26, 33, 40,\n 48, 41, 34, 27, 20, 13, 6,\n 7, 14, 21, 28, 35, 42, 49, 56,\n 57, 50, 43, 36, 29, 22, 15,\n 23, 30, 37, 44, 51, 58,\n 59, 52, 45, 38, 31,\n 39, 46, 53, 60,\n 61, 54, 47,\n 55, 62,\n 63\n]);\n\nconst dctCos1 = 4017; // cos(pi/16)\nconst dctSin1 = 799; // sin(pi/16)\nconst dctCos3 = 3406; // cos(3*pi/16)\nconst dctSin3 = 2276; // sin(3*pi/16)\nconst dctCos6 = 1567; // cos(6*pi/16)\nconst dctSin6 = 3784; // sin(6*pi/16)\nconst dctSqrt2 = 5793; // sqrt(2)\nconst dctSqrt1d2 = 2896; // sqrt(2) / 2\n\nfunction buildHuffmanTable(codeLengths, values) {\n let k = 0,\n i,\n j,\n length = 16;\n while (length > 0 && !codeLengths[length - 1]) {\n length--;\n }\n const code = [{ children: [], index: 0 }];\n let p = code[0],\n q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push((q = { children: [], index: 0 }));\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n // p here points to last code\n code.push((q = { children: [], index: 0 }));\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n}\n\nfunction getBlockBufferOffset(component, row, col) {\n return 64 * ((component.blocksPerLine + 1) * row + col);\n}\n\nfunction decodeScan(\n data,\n offset,\n frame,\n components,\n resetInterval,\n spectralStart,\n spectralEnd,\n successivePrev,\n successive,\n parseDNLMarker = false\n) {\n const mcusPerLine = frame.mcusPerLine;\n const progressive = frame.progressive;\n\n const startOffset = offset;\n let bitsData = 0,\n bitsCount = 0;\n\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return (bitsData >> bitsCount) & 1;\n }\n bitsData = data[offset++];\n if (bitsData === 0xff) {\n const nextByte = data[offset++];\n if (nextByte) {\n if (nextByte === /* DNL = */ 0xdc && parseDNLMarker) {\n offset += 2; // Skip marker length.\n\n const scanLines = readUint16(data, offset);\n offset += 2;\n if (scanLines > 0 && scanLines !== frame.scanLines) {\n throw new DNLMarkerError(\n \"Found DNL marker (0xFFDC) while parsing scan data\",\n scanLines\n );\n }\n } else if (nextByte === /* EOI = */ 0xd9) {\n if (parseDNLMarker) {\n // NOTE: only 8-bit JPEG images are supported in this decoder.\n const maybeScanLines = blockRow * (frame.precision === 8 ? 8 : 0);\n // Heuristic to attempt to handle corrupt JPEG images with too\n // large `scanLines` parameter, by falling back to the currently\n // parsed number of scanLines when it's at least (approximately)\n // one order of magnitude smaller than expected (fixes\n // issue10880.pdf and issue10989.pdf).\n if (\n maybeScanLines > 0 &&\n Math.round(frame.scanLines / maybeScanLines) >= 10\n ) {\n throw new DNLMarkerError(\n \"Found EOI marker (0xFFD9) while parsing scan data, \" +\n \"possibly caused by incorrect `scanLines` parameter\",\n maybeScanLines\n );\n }\n }\n throw new EOIMarkerError(\n \"Found EOI marker (0xFFD9) while parsing scan data\"\n );\n }\n throw new JpegError(\n `unexpected marker ${((bitsData << 8) | nextByte).toString(16)}`\n );\n }\n // unstuff 0\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n\n function decodeHuffman(tree) {\n let node = tree;\n while (true) {\n node = node[readBit()];\n switch (typeof node) {\n case \"number\":\n return node;\n case \"object\":\n continue;\n }\n throw new JpegError(\"invalid huffman sequence\");\n }\n }\n\n function receive(length) {\n let n = 0;\n while (length > 0) {\n n = (n << 1) | readBit();\n length--;\n }\n return n;\n }\n\n function receiveAndExtend(length) {\n if (length === 1) {\n return readBit() === 1 ? 1 : -1;\n }\n const n = receive(length);\n if (n >= 1 << (length - 1)) {\n return n;\n }\n return n + (-1 << length) + 1;\n }\n\n function decodeBaseline(component, blockOffset) {\n const t = decodeHuffman(component.huffmanTableDC);\n const diff = t === 0 ? 0 : receiveAndExtend(t);\n component.blockData[blockOffset] = component.pred += diff;\n let k = 1;\n while (k < 64) {\n const rs = decodeHuffman(component.huffmanTableAC);\n const s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n const z = dctZigZag[k];\n component.blockData[blockOffset + z] = receiveAndExtend(s);\n k++;\n }\n }\n\n function decodeDCFirst(component, blockOffset) {\n const t = decodeHuffman(component.huffmanTableDC);\n const diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n component.blockData[blockOffset] = component.pred += diff;\n }\n\n function decodeDCSuccessive(component, blockOffset) {\n component.blockData[blockOffset] |= readBit() << successive;\n }\n\n let eobrun = 0;\n function decodeACFirst(component, blockOffset) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n let k = spectralStart;\n const e = spectralEnd;\n while (k <= e) {\n const rs = decodeHuffman(component.huffmanTableAC);\n const s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n const z = dctZigZag[k];\n component.blockData[blockOffset + z] =\n receiveAndExtend(s) * (1 << successive);\n k++;\n }\n }\n\n let successiveACState = 0,\n successiveACNextValue;\n function decodeACSuccessive(component, blockOffset) {\n let k = spectralStart;\n const e = spectralEnd;\n let r = 0;\n let s;\n let rs;\n while (k <= e) {\n const offsetZ = blockOffset + dctZigZag[k];\n const sign = component.blockData[offsetZ] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0: // initial state\n rs = decodeHuffman(component.huffmanTableAC);\n s = rs & 15;\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1) {\n throw new JpegError(\"invalid ACn encoding\");\n }\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1: // skipping r zero items\n case 2:\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n } else {\n r--;\n if (r === 0) {\n successiveACState = successiveACState === 2 ? 3 : 0;\n }\n }\n break;\n case 3: // set value for a zero item\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n } else {\n component.blockData[offsetZ] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4: // eob\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n }\n break;\n }\n k++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0) {\n successiveACState = 0;\n }\n }\n }\n\n let blockRow = 0;\n function decodeMcu(component, decode, mcu, row, col) {\n const mcuRow = (mcu / mcusPerLine) | 0;\n const mcuCol = mcu % mcusPerLine;\n blockRow = mcuRow * component.v + row;\n const blockCol = mcuCol * component.h + col;\n const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, blockOffset);\n }\n\n function decodeBlock(component, decode, mcu) {\n blockRow = (mcu / component.blocksPerLine) | 0;\n const blockCol = mcu % component.blocksPerLine;\n const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, blockOffset);\n }\n\n const componentsLength = components.length;\n let component, i, j, k, n;\n let decodeFn;\n if (progressive) {\n if (spectralStart === 0) {\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n } else {\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n }\n } else {\n decodeFn = decodeBaseline;\n }\n\n let mcu = 0,\n fileMarker;\n let mcuExpected;\n if (componentsLength === 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n\n let h, v;\n while (mcu <= mcuExpected) {\n // reset interval stuff\n const mcuToRead = resetInterval\n ? Math.min(mcuExpected - mcu, resetInterval)\n : mcuExpected;\n\n // The `mcuToRead === 0` case should only occur when all of the expected\n // MCU data has been already parsed, i.e. when `mcu === mcuExpected`, but\n // some corrupt JPEG images contain more data than intended and we thus\n // want to skip over any extra RSTx markers below (fixes issue11794.pdf).\n if (mcuToRead > 0) {\n for (i = 0; i < componentsLength; i++) {\n components[i].pred = 0;\n }\n eobrun = 0;\n\n if (componentsLength === 1) {\n component = components[0];\n for (n = 0; n < mcuToRead; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < mcuToRead; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n }\n }\n }\n\n // find marker\n bitsCount = 0;\n fileMarker = findNextFileMarker(data, offset);\n if (!fileMarker) {\n break; // Reached the end of the image data without finding any marker.\n }\n if (fileMarker.invalid) {\n // Some bad images seem to pad Scan blocks with e.g. zero bytes, skip\n // past those to attempt to find a valid marker (fixes issue4090.pdf).\n const partialMsg = mcuToRead > 0 ? \"unexpected\" : \"excessive\";\n warn(\n `decodeScan - ${partialMsg} MCU data, current marker is: ${fileMarker.invalid}`\n );\n offset = fileMarker.offset;\n }\n if (fileMarker.marker >= 0xffd0 && fileMarker.marker <= 0xffd7) {\n // RSTx\n offset += 2;\n } else {\n break;\n }\n }\n\n return offset - startOffset;\n}\n\n// A port of poppler's IDCT method which in turn is taken from:\n// Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz,\n// 'Practical Fast 1-D DCT Algorithms with 11 Multiplications',\n// IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989,\n// 988-991.\nfunction quantizeAndInverse(component, blockBufferOffset, p) {\n const qt = component.quantizationTable,\n blockData = component.blockData;\n let v0, v1, v2, v3, v4, v5, v6, v7;\n let p0, p1, p2, p3, p4, p5, p6, p7;\n let t;\n\n if (!qt) {\n throw new JpegError(\"missing required Quantization Table.\");\n }\n\n // inverse DCT on rows\n for (let row = 0; row < 64; row += 8) {\n // gather block data\n p0 = blockData[blockBufferOffset + row];\n p1 = blockData[blockBufferOffset + row + 1];\n p2 = blockData[blockBufferOffset + row + 2];\n p3 = blockData[blockBufferOffset + row + 3];\n p4 = blockData[blockBufferOffset + row + 4];\n p5 = blockData[blockBufferOffset + row + 5];\n p6 = blockData[blockBufferOffset + row + 6];\n p7 = blockData[blockBufferOffset + row + 7];\n\n // dequant p0\n p0 *= qt[row];\n\n // check for all-zero AC coefficients\n if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = (dctSqrt2 * p0 + 512) >> 10;\n p[row] = t;\n p[row + 1] = t;\n p[row + 2] = t;\n p[row + 3] = t;\n p[row + 4] = t;\n p[row + 5] = t;\n p[row + 6] = t;\n p[row + 7] = t;\n continue;\n }\n // dequant p1 ... p7\n p1 *= qt[row + 1];\n p2 *= qt[row + 2];\n p3 *= qt[row + 3];\n p4 *= qt[row + 4];\n p5 *= qt[row + 5];\n p6 *= qt[row + 6];\n p7 *= qt[row + 7];\n\n // stage 4\n v0 = (dctSqrt2 * p0 + 128) >> 8;\n v1 = (dctSqrt2 * p4 + 128) >> 8;\n v2 = p2;\n v3 = p6;\n v4 = (dctSqrt1d2 * (p1 - p7) + 128) >> 8;\n v7 = (dctSqrt1d2 * (p1 + p7) + 128) >> 8;\n v5 = p3 << 4;\n v6 = p5 << 4;\n\n // stage 3\n v0 = (v0 + v1 + 1) >> 1;\n v1 = v0 - v1;\n t = (v2 * dctSin6 + v3 * dctCos6 + 128) >> 8;\n v2 = (v2 * dctCos6 - v3 * dctSin6 + 128) >> 8;\n v3 = t;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = v4 - v6;\n v7 = (v7 + v5 + 1) >> 1;\n v5 = v7 - v5;\n\n // stage 2\n v0 = (v0 + v3 + 1) >> 1;\n v3 = v0 - v3;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = v1 - v2;\n t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n v7 = t;\n t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p[row] = v0 + v7;\n p[row + 7] = v0 - v7;\n p[row + 1] = v1 + v6;\n p[row + 6] = v1 - v6;\n p[row + 2] = v2 + v5;\n p[row + 5] = v2 - v5;\n p[row + 3] = v3 + v4;\n p[row + 4] = v3 - v4;\n }\n\n // inverse DCT on columns\n for (let col = 0; col < 8; ++col) {\n p0 = p[col];\n p1 = p[col + 8];\n p2 = p[col + 16];\n p3 = p[col + 24];\n p4 = p[col + 32];\n p5 = p[col + 40];\n p6 = p[col + 48];\n p7 = p[col + 56];\n\n // check for all-zero AC coefficients\n if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = (dctSqrt2 * p0 + 8192) >> 14;\n // Convert to 8-bit.\n if (t < -2040) {\n t = 0;\n } else if (t >= 2024) {\n t = 255;\n } else {\n t = (t + 2056) >> 4;\n }\n blockData[blockBufferOffset + col] = t;\n blockData[blockBufferOffset + col + 8] = t;\n blockData[blockBufferOffset + col + 16] = t;\n blockData[blockBufferOffset + col + 24] = t;\n blockData[blockBufferOffset + col + 32] = t;\n blockData[blockBufferOffset + col + 40] = t;\n blockData[blockBufferOffset + col + 48] = t;\n blockData[blockBufferOffset + col + 56] = t;\n continue;\n }\n\n // stage 4\n v0 = (dctSqrt2 * p0 + 2048) >> 12;\n v1 = (dctSqrt2 * p4 + 2048) >> 12;\n v2 = p2;\n v3 = p6;\n v4 = (dctSqrt1d2 * (p1 - p7) + 2048) >> 12;\n v7 = (dctSqrt1d2 * (p1 + p7) + 2048) >> 12;\n v5 = p3;\n v6 = p5;\n\n // stage 3\n // Shift v0 by 128.5 << 5 here, so we don't need to shift p0...p7 when\n // converting to UInt8 range later.\n v0 = ((v0 + v1 + 1) >> 1) + 4112;\n v1 = v0 - v1;\n t = (v2 * dctSin6 + v3 * dctCos6 + 2048) >> 12;\n v2 = (v2 * dctCos6 - v3 * dctSin6 + 2048) >> 12;\n v3 = t;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = v4 - v6;\n v7 = (v7 + v5 + 1) >> 1;\n v5 = v7 - v5;\n\n // stage 2\n v0 = (v0 + v3 + 1) >> 1;\n v3 = v0 - v3;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = v1 - v2;\n t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n v7 = t;\n t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p0 = v0 + v7;\n p7 = v0 - v7;\n p1 = v1 + v6;\n p6 = v1 - v6;\n p2 = v2 + v5;\n p5 = v2 - v5;\n p3 = v3 + v4;\n p4 = v3 - v4;\n\n // Convert to 8-bit integers.\n if (p0 < 16) {\n p0 = 0;\n } else if (p0 >= 4080) {\n p0 = 255;\n } else {\n p0 >>= 4;\n }\n if (p1 < 16) {\n p1 = 0;\n } else if (p1 >= 4080) {\n p1 = 255;\n } else {\n p1 >>= 4;\n }\n if (p2 < 16) {\n p2 = 0;\n } else if (p2 >= 4080) {\n p2 = 255;\n } else {\n p2 >>= 4;\n }\n if (p3 < 16) {\n p3 = 0;\n } else if (p3 >= 4080) {\n p3 = 255;\n } else {\n p3 >>= 4;\n }\n if (p4 < 16) {\n p4 = 0;\n } else if (p4 >= 4080) {\n p4 = 255;\n } else {\n p4 >>= 4;\n }\n if (p5 < 16) {\n p5 = 0;\n } else if (p5 >= 4080) {\n p5 = 255;\n } else {\n p5 >>= 4;\n }\n if (p6 < 16) {\n p6 = 0;\n } else if (p6 >= 4080) {\n p6 = 255;\n } else {\n p6 >>= 4;\n }\n if (p7 < 16) {\n p7 = 0;\n } else if (p7 >= 4080) {\n p7 = 255;\n } else {\n p7 >>= 4;\n }\n\n // store block data\n blockData[blockBufferOffset + col] = p0;\n blockData[blockBufferOffset + col + 8] = p1;\n blockData[blockBufferOffset + col + 16] = p2;\n blockData[blockBufferOffset + col + 24] = p3;\n blockData[blockBufferOffset + col + 32] = p4;\n blockData[blockBufferOffset + col + 40] = p5;\n blockData[blockBufferOffset + col + 48] = p6;\n blockData[blockBufferOffset + col + 56] = p7;\n }\n}\n\nfunction buildComponentData(frame, component) {\n const blocksPerLine = component.blocksPerLine;\n const blocksPerColumn = component.blocksPerColumn;\n const computationBuffer = new Int16Array(64);\n\n for (let blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n for (let blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n const offset = getBlockBufferOffset(component, blockRow, blockCol);\n quantizeAndInverse(component, offset, computationBuffer);\n }\n }\n return component.blockData;\n}\n\nfunction findNextFileMarker(data, currentPos, startPos = currentPos) {\n const maxPos = data.length - 1;\n let newPos = startPos < currentPos ? startPos : currentPos;\n\n if (currentPos >= maxPos) {\n return null; // Don't attempt to read non-existent data and just return.\n }\n const currentMarker = readUint16(data, currentPos);\n if (currentMarker >= 0xffc0 && currentMarker <= 0xfffe) {\n return {\n invalid: null,\n marker: currentMarker,\n offset: currentPos,\n };\n }\n let newMarker = readUint16(data, newPos);\n while (!(newMarker >= 0xffc0 && newMarker <= 0xfffe)) {\n if (++newPos >= maxPos) {\n return null; // Don't attempt to read non-existent data and just return.\n }\n newMarker = readUint16(data, newPos);\n }\n return {\n invalid: currentMarker.toString(16),\n marker: newMarker,\n offset: newPos,\n };\n}\n\nclass JpegImage {\n constructor({ decodeTransform = null, colorTransform = -1 } = {}) {\n this._decodeTransform = decodeTransform;\n this._colorTransform = colorTransform;\n }\n\n parse(data, { dnlScanLines = null } = {}) {\n function readDataBlock() {\n const length = readUint16(data, offset);\n offset += 2;\n let endOffset = offset + length - 2;\n\n const fileMarker = findNextFileMarker(data, endOffset, offset);\n if (fileMarker && fileMarker.invalid) {\n warn(\n \"readDataBlock - incorrect length, current marker is: \" +\n fileMarker.invalid\n );\n endOffset = fileMarker.offset;\n }\n\n const array = data.subarray(offset, endOffset);\n offset += array.length;\n return array;\n }\n\n function prepareComponents(frame) {\n const mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);\n const mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);\n for (let i = 0, ii = frame.components.length; i < ii; i++) {\n const component = frame.components[i];\n const blocksPerLine = Math.ceil(\n (Math.ceil(frame.samplesPerLine / 8) * component.h) / frame.maxH\n );\n const blocksPerColumn = Math.ceil(\n (Math.ceil(frame.scanLines / 8) * component.v) / frame.maxV\n );\n const blocksPerLineForMcu = mcusPerLine * component.h;\n const blocksPerColumnForMcu = mcusPerColumn * component.v;\n\n const blocksBufferSize =\n 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1);\n component.blockData = new Int16Array(blocksBufferSize);\n component.blocksPerLine = blocksPerLine;\n component.blocksPerColumn = blocksPerColumn;\n }\n frame.mcusPerLine = mcusPerLine;\n frame.mcusPerColumn = mcusPerColumn;\n }\n\n let offset = 0;\n let jfif = null;\n let adobe = null;\n let frame, resetInterval;\n let numSOSMarkers = 0;\n const quantizationTables = [];\n const huffmanTablesAC = [],\n huffmanTablesDC = [];\n\n let fileMarker = readUint16(data, offset);\n offset += 2;\n if (fileMarker !== /* SOI (Start of Image) = */ 0xffd8) {\n throw new JpegError(\"SOI not found\");\n }\n fileMarker = readUint16(data, offset);\n offset += 2;\n\n markerLoop: while (fileMarker !== /* EOI (End of Image) = */ 0xffd9) {\n let i, j, l;\n switch (fileMarker) {\n case 0xffe0: // APP0 (Application Specific)\n case 0xffe1: // APP1\n case 0xffe2: // APP2\n case 0xffe3: // APP3\n case 0xffe4: // APP4\n case 0xffe5: // APP5\n case 0xffe6: // APP6\n case 0xffe7: // APP7\n case 0xffe8: // APP8\n case 0xffe9: // APP9\n case 0xffea: // APP10\n case 0xffeb: // APP11\n case 0xffec: // APP12\n case 0xffed: // APP13\n case 0xffee: // APP14\n case 0xffef: // APP15\n case 0xfffe: // COM (Comment)\n const appData = readDataBlock();\n\n if (fileMarker === 0xffe0) {\n // 'JFIF\\x00'\n if (\n appData[0] === 0x4a &&\n appData[1] === 0x46 &&\n appData[2] === 0x49 &&\n appData[3] === 0x46 &&\n appData[4] === 0\n ) {\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: (appData[8] << 8) | appData[9],\n yDensity: (appData[10] << 8) | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(\n 14,\n 14 + 3 * appData[12] * appData[13]\n ),\n };\n }\n }\n // TODO APP1 - Exif\n if (fileMarker === 0xffee) {\n // 'Adobe'\n if (\n appData[0] === 0x41 &&\n appData[1] === 0x64 &&\n appData[2] === 0x6f &&\n appData[3] === 0x62 &&\n appData[4] === 0x65\n ) {\n adobe = {\n version: (appData[5] << 8) | appData[6],\n flags0: (appData[7] << 8) | appData[8],\n flags1: (appData[9] << 8) | appData[10],\n transformCode: appData[11],\n };\n }\n }\n break;\n\n case 0xffdb: // DQT (Define Quantization Tables)\n const quantizationTablesLength = readUint16(data, offset);\n offset += 2;\n const quantizationTablesEnd = quantizationTablesLength + offset - 2;\n let z;\n while (offset < quantizationTablesEnd) {\n const quantizationTableSpec = data[offset++];\n const tableData = new Uint16Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n // 8 bit values\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n // 16 bit values\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = readUint16(data, offset);\n offset += 2;\n }\n } else {\n throw new JpegError(\"DQT - invalid table spec\");\n }\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n\n case 0xffc0: // SOF0 (Start of Frame, Baseline DCT)\n case 0xffc1: // SOF1 (Start of Frame, Extended DCT)\n case 0xffc2: // SOF2 (Start of Frame, Progressive DCT)\n if (frame) {\n throw new JpegError(\"Only single frame JPEGs supported\");\n }\n offset += 2; // Skip marker length.\n\n frame = {};\n frame.extended = fileMarker === 0xffc1;\n frame.progressive = fileMarker === 0xffc2;\n frame.precision = data[offset++];\n const sofScanLines = readUint16(data, offset);\n offset += 2;\n frame.scanLines = dnlScanLines || sofScanLines;\n frame.samplesPerLine = readUint16(data, offset);\n offset += 2;\n frame.components = [];\n frame.componentIds = {};\n const componentsCount = data[offset++];\n let maxH = 0,\n maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n const componentId = data[offset];\n const h = data[offset + 1] >> 4;\n const v = data[offset + 1] & 15;\n if (maxH < h) {\n maxH = h;\n }\n if (maxV < v) {\n maxV = v;\n }\n const qId = data[offset + 2];\n l = frame.components.push({\n h,\n v,\n quantizationId: qId,\n quantizationTable: null, // See comment below.\n });\n frame.componentIds[componentId] = l - 1;\n offset += 3;\n }\n frame.maxH = maxH;\n frame.maxV = maxV;\n prepareComponents(frame);\n break;\n\n case 0xffc4: // DHT (Define Huffman Tables)\n const huffmanLength = readUint16(data, offset);\n offset += 2;\n for (i = 2; i < huffmanLength; ) {\n const huffmanTableSpec = data[offset++];\n const codeLengths = new Uint8Array(16);\n let codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n const huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++) {\n huffmanValues[j] = data[offset];\n }\n i += 17 + codeLengthSum;\n\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[\n huffmanTableSpec & 15\n ] = buildHuffmanTable(codeLengths, huffmanValues);\n }\n break;\n\n case 0xffdd: // DRI (Define Restart Interval)\n offset += 2; // Skip marker length.\n\n resetInterval = readUint16(data, offset);\n offset += 2;\n break;\n\n case 0xffda: // SOS (Start of Scan)\n // A DNL marker (0xFFDC), if it exists, is only allowed at the end\n // of the first scan segment and may only occur once in an image.\n // Furthermore, to prevent an infinite loop, do *not* attempt to\n // parse DNL markers during re-parsing of the JPEG scan data.\n const parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines;\n\n offset += 2; // Skip marker length.\n\n const selectorsCount = data[offset++],\n components = [];\n for (i = 0; i < selectorsCount; i++) {\n const index = data[offset++];\n const componentIndex = frame.componentIds[index];\n const component = frame.components[componentIndex];\n component.index = index;\n const tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n const spectralStart = data[offset++],\n spectralEnd = data[offset++],\n successiveApproximation = data[offset++];\n try {\n const processed = decodeScan(\n data,\n offset,\n frame,\n components,\n resetInterval,\n spectralStart,\n spectralEnd,\n successiveApproximation >> 4,\n successiveApproximation & 15,\n parseDNLMarker\n );\n offset += processed;\n } catch (ex) {\n if (ex instanceof DNLMarkerError) {\n warn(`${ex.message} -- attempting to re-parse the JPEG image.`);\n return this.parse(data, { dnlScanLines: ex.scanLines });\n } else if (ex instanceof EOIMarkerError) {\n warn(`${ex.message} -- ignoring the rest of the image data.`);\n break markerLoop;\n }\n throw ex;\n }\n break;\n\n case 0xffdc: // DNL (Define Number of Lines)\n // Ignore the marker, since it's being handled in `decodeScan`.\n offset += 4;\n break;\n\n case 0xffff: // Fill bytes\n if (data[offset] !== 0xff) {\n // Avoid skipping a valid marker.\n offset--;\n }\n break;\n\n default:\n // Could be incorrect encoding -- the last 0xFF byte of the previous\n // block could have been eaten by the encoder, hence we fallback to\n // `startPos = offset - 3` when looking for the next valid marker.\n const nextFileMarker = findNextFileMarker(\n data,\n /* currentPos = */ offset - 2,\n /* startPos = */ offset - 3\n );\n if (nextFileMarker && nextFileMarker.invalid) {\n warn(\n \"JpegImage.parse - unexpected data, current marker is: \" +\n nextFileMarker.invalid\n );\n offset = nextFileMarker.offset;\n break;\n }\n if (!nextFileMarker || offset >= data.length - 1) {\n warn(\n \"JpegImage.parse - reached the end of the image data \" +\n \"without finding an EOI marker (0xFFD9).\"\n );\n break markerLoop;\n }\n throw new JpegError(\n \"JpegImage.parse - unknown marker: \" + fileMarker.toString(16)\n );\n }\n fileMarker = readUint16(data, offset);\n offset += 2;\n }\n\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (let i = 0, ii = frame.components.length; i < ii; i++) {\n const component = frame.components[i];\n\n // Prevent errors when DQT markers are placed after SOF{n} markers,\n // by assigning the `quantizationTable` entry after the entire image\n // has been parsed (fixes issue7406.pdf).\n const quantizationTable = quantizationTables[component.quantizationId];\n if (quantizationTable) {\n component.quantizationTable = quantizationTable;\n }\n\n this.components.push({\n index: component.index,\n output: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV,\n blocksPerLine: component.blocksPerLine,\n blocksPerColumn: component.blocksPerColumn,\n });\n }\n this.numComponents = this.components.length;\n return undefined;\n }\n\n _getLinearizedBlockData(width, height, isSourcePDF = false) {\n const scaleX = this.width / width,\n scaleY = this.height / height;\n\n let component, componentScaleX, componentScaleY, blocksPerScanline;\n let x, y, i, j, k;\n let index;\n let offset = 0;\n let output;\n const numComponents = this.components.length;\n const dataLength = width * height * numComponents;\n const data = new Uint8ClampedArray(dataLength);\n const xScaleBlockOffset = new Uint32Array(width);\n const mask3LSB = 0xfffffff8; // used to clear the 3 LSBs\n let lastComponentScaleX;\n\n for (i = 0; i < numComponents; i++) {\n component = this.components[i];\n componentScaleX = component.scaleX * scaleX;\n componentScaleY = component.scaleY * scaleY;\n offset = i;\n output = component.output;\n blocksPerScanline = (component.blocksPerLine + 1) << 3;\n // Precalculate the `xScaleBlockOffset`. Since it doesn't depend on the\n // component data, that's only necessary when `componentScaleX` changes.\n if (componentScaleX !== lastComponentScaleX) {\n for (x = 0; x < width; x++) {\n j = 0 | (x * componentScaleX);\n xScaleBlockOffset[x] = ((j & mask3LSB) << 3) | (j & 7);\n }\n lastComponentScaleX = componentScaleX;\n }\n // linearize the blocks of the component\n for (y = 0; y < height; y++) {\n j = 0 | (y * componentScaleY);\n index = (blocksPerScanline * (j & mask3LSB)) | ((j & 7) << 3);\n for (x = 0; x < width; x++) {\n data[offset] = output[index + xScaleBlockOffset[x]];\n offset += numComponents;\n }\n }\n }\n\n // decodeTransform contains pairs of multiplier (-256..256) and additive\n let transform = this._decodeTransform;\n\n // In PDF files, JPEG images with CMYK colour spaces are usually inverted\n // (this can be observed by extracting the raw image data).\n // Since the conversion algorithms (see below) were written primarily for\n // the PDF use-cases, attempting to use `JpegImage` to parse standalone\n // JPEG (CMYK) images may thus result in inverted images (see issue 9513).\n //\n // Unfortunately it's not (always) possible to tell, from the image data\n // alone, if it needs to be inverted. Thus in an attempt to provide better\n // out-of-box behaviour when `JpegImage` is used standalone, default to\n // inverting JPEG (CMYK) images if and only if the image data does *not*\n // come from a PDF file and no `decodeTransform` was passed by the user.\n if (!isSourcePDF && numComponents === 4 && !transform) {\n transform = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255]);\n }\n\n if (transform) {\n for (i = 0; i < dataLength; ) {\n for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) {\n data[i] = ((data[i] * transform[k]) >> 8) + transform[k + 1];\n }\n }\n }\n return data;\n }\n\n get _isColorConversionNeeded() {\n if (this.adobe) {\n // The adobe transform marker overrides any previous setting.\n return !!this.adobe.transformCode;\n }\n if (this.numComponents === 3) {\n if (this._colorTransform === 0) {\n // If the Adobe transform marker is not present and the image\n // dictionary has a 'ColorTransform' entry, explicitly set to `0`,\n // then the colours should *not* be transformed.\n return false;\n } else if (\n this.components[0].index === /* \"R\" = */ 0x52 &&\n this.components[1].index === /* \"G\" = */ 0x47 &&\n this.components[2].index === /* \"B\" = */ 0x42\n ) {\n // If the three components are indexed as RGB in ASCII\n // then the colours should *not* be transformed.\n return false;\n }\n return true;\n }\n // `this.numComponents !== 3`\n if (this._colorTransform === 1) {\n // If the Adobe transform marker is not present and the image\n // dictionary has a 'ColorTransform' entry, explicitly set to `1`,\n // then the colours should be transformed.\n return true;\n }\n return false;\n }\n\n _convertYccToRgb(data) {\n let Y, Cb, Cr;\n for (let i = 0, length = data.length; i < length; i += 3) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n data[i] = Y - 179.456 + 1.402 * Cr;\n data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n data[i + 2] = Y - 226.816 + 1.772 * Cb;\n }\n return data;\n }\n\n _convertYcckToRgb(data) {\n let Y, Cb, Cr, k;\n let offset = 0;\n for (let i = 0, length = data.length; i < length; i += 4) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n k = data[i + 3];\n\n data[offset++] =\n -122.67195406894 +\n Cb *\n (-6.60635669420364e-5 * Cb +\n 0.000437130475926232 * Cr -\n 5.4080610064599e-5 * Y +\n 0.00048449797120281 * k -\n 0.154362151871126) +\n Cr *\n (-0.000957964378445773 * Cr +\n 0.000817076911346625 * Y -\n 0.00477271405408747 * k +\n 1.53380253221734) +\n Y *\n (0.000961250184130688 * Y -\n 0.00266257332283933 * k +\n 0.48357088451265) +\n k * (-0.000336197177618394 * k + 0.484791561490776);\n\n data[offset++] =\n 107.268039397724 +\n Cb *\n (2.19927104525741e-5 * Cb -\n 0.000640992018297945 * Cr +\n 0.000659397001245577 * Y +\n 0.000426105652938837 * k -\n 0.176491792462875) +\n Cr *\n (-0.000778269941513683 * Cr +\n 0.00130872261408275 * Y +\n 0.000770482631801132 * k -\n 0.151051492775562) +\n Y *\n (0.00126935368114843 * Y -\n 0.00265090189010898 * k +\n 0.25802910206845) +\n k * (-0.000318913117588328 * k - 0.213742400323665);\n\n data[offset++] =\n -20.810012546947 +\n Cb *\n (-0.000570115196973677 * Cb -\n 2.63409051004589e-5 * Cr +\n 0.0020741088115012 * Y -\n 0.00288260236853442 * k +\n 0.814272968359295) +\n Cr *\n (-1.53496057440975e-5 * Cr -\n 0.000132689043961446 * Y +\n 0.000560833691242812 * k -\n 0.195152027534049) +\n Y *\n (0.00174418132927582 * Y -\n 0.00255243321439347 * k +\n 0.116935020465145) +\n k * (-0.000343531996510555 * k + 0.24165260232407);\n }\n // Ensure that only the converted RGB data is returned.\n return data.subarray(0, offset);\n }\n\n _convertYcckToCmyk(data) {\n let Y, Cb, Cr;\n for (let i = 0, length = data.length; i < length; i += 4) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n data[i] = 434.456 - Y - 1.402 * Cr;\n data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr;\n data[i + 2] = 481.816 - Y - 1.772 * Cb;\n // K in data[i + 3] is unchanged\n }\n return data;\n }\n\n _convertCmykToRgb(data) {\n let c, m, y, k;\n let offset = 0;\n for (let i = 0, length = data.length; i < length; i += 4) {\n c = data[i];\n m = data[i + 1];\n y = data[i + 2];\n k = data[i + 3];\n\n data[offset++] =\n 255 +\n c *\n (-0.00006747147073602441 * c +\n 0.0008379262121013727 * m +\n 0.0002894718188643294 * y +\n 0.003264231057537806 * k -\n 1.1185611867203937) +\n m *\n (0.000026374107616089405 * m -\n 0.00008626949158638572 * y -\n 0.0002748769067499491 * k -\n 0.02155688794978967) +\n y *\n (-0.00003878099212869363 * y -\n 0.0003267808279485286 * k +\n 0.0686742238595345) -\n k * (0.0003361971776183937 * k + 0.7430659151342254);\n\n data[offset++] =\n 255 +\n c *\n (0.00013596372813588848 * c +\n 0.000924537132573585 * m +\n 0.00010567359618683593 * y +\n 0.0004791864687436512 * k -\n 0.3109689587515875) +\n m *\n (-0.00023545346108370344 * m +\n 0.0002702845253534714 * y +\n 0.0020200308977307156 * k -\n 0.7488052167015494) +\n y *\n (0.00006834815998235662 * y +\n 0.00015168452363460973 * k -\n 0.09751927774728933) -\n k * (0.0003189131175883281 * k + 0.7364883807733168);\n\n data[offset++] =\n 255 +\n c *\n (0.000013598650411385307 * c +\n 0.00012423956175490851 * m +\n 0.0004751985097583589 * y -\n 0.0000036729317476630422 * k -\n 0.05562186980264034) +\n m *\n (0.00016141380598724676 * m +\n 0.0009692239130725186 * y +\n 0.0007782692450036253 * k -\n 0.44015232367526463) +\n y *\n (5.068882914068769e-7 * y +\n 0.0017778369011375071 * k -\n 0.7591454649749609) -\n k * (0.0003435319965105553 * k + 0.7063770186160144);\n }\n // Ensure that only the converted RGB data is returned.\n return data.subarray(0, offset);\n }\n\n getData({ width, height, forceRGB = false, isSourcePDF = false }) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n isSourcePDF === true,\n 'JpegImage.getData: Unexpected \"isSourcePDF\" value for PDF files.'\n );\n }\n if (this.numComponents > 4) {\n throw new JpegError(\"Unsupported color mode\");\n }\n // Type of data: Uint8ClampedArray(width * height * numComponents)\n const data = this._getLinearizedBlockData(width, height, isSourcePDF);\n\n if (this.numComponents === 1 && forceRGB) {\n const dataLength = data.length;\n const rgbData = new Uint8ClampedArray(dataLength * 3);\n let offset = 0;\n for (let i = 0; i < dataLength; i++) {\n const grayColor = data[i];\n rgbData[offset++] = grayColor;\n rgbData[offset++] = grayColor;\n rgbData[offset++] = grayColor;\n }\n return rgbData;\n } else if (this.numComponents === 3 && this._isColorConversionNeeded) {\n return this._convertYccToRgb(data);\n } else if (this.numComponents === 4) {\n if (this._isColorConversionNeeded) {\n if (forceRGB) {\n return this._convertYcckToRgb(data);\n }\n return this._convertYcckToCmyk(data);\n } else if (forceRGB) {\n return this._convertCmykToRgb(data);\n }\n }\n return data;\n }\n}\n\nexport { JpegImage };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { JpxImage } from \"./jpx.js\";\nimport { shadow } from \"../shared/util.js\";\n\n/**\n * For JPEG 2000's we use a library to decode these images and\n * the stream behaves like all the other DecodeStreams.\n */\nclass JpxStream extends DecodeStream {\n constructor(stream, maybeLength, params) {\n super(maybeLength);\n\n this.stream = stream;\n this.dict = stream.dict;\n this.maybeLength = maybeLength;\n this.params = params;\n }\n\n get bytes() {\n // If `this.maybeLength` is null, we'll get the entire stream.\n return shadow(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n }\n\n ensureBuffer(requested) {\n // No-op, since `this.readBlock` will always parse the entire image and\n // directly insert all of its data into `this.buffer`.\n }\n\n readBlock() {\n if (this.eof) {\n return;\n }\n const jpxImage = new JpxImage();\n jpxImage.parse(this.bytes);\n\n const width = jpxImage.width;\n const height = jpxImage.height;\n const componentsCount = jpxImage.componentsCount;\n const tileCount = jpxImage.tiles.length;\n if (tileCount === 1) {\n this.buffer = jpxImage.tiles[0].items;\n } else {\n const data = new Uint8ClampedArray(width * height * componentsCount);\n\n for (let k = 0; k < tileCount; k++) {\n const tileComponents = jpxImage.tiles[k];\n const tileWidth = tileComponents.width;\n const tileHeight = tileComponents.height;\n const tileLeft = tileComponents.left;\n const tileTop = tileComponents.top;\n\n const src = tileComponents.items;\n let srcPosition = 0;\n let dataPosition = (width * tileTop + tileLeft) * componentsCount;\n const imgRowSize = width * componentsCount;\n const tileRowSize = tileWidth * componentsCount;\n\n for (let j = 0; j < tileHeight; j++) {\n const rowBytes = src.subarray(srcPosition, srcPosition + tileRowSize);\n data.set(rowBytes, dataPosition);\n srcPosition += tileRowSize;\n dataPosition += imgRowSize;\n }\n }\n this.buffer = data;\n }\n this.bufferLength = this.buffer.length;\n this.eof = true;\n }\n}\n\nexport { JpxStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseException, info, unreachable, warn } from \"../shared/util.js\";\nimport { log2, readUint16, readUint32 } from \"./core_utils.js\";\nimport { ArithmeticDecoder } from \"./arithmetic_decoder.js\";\n\nclass JpxError extends BaseException {\n constructor(msg) {\n super(`JPX error: ${msg}`, \"JpxError\");\n }\n}\n\n// Table E.1\nconst SubbandsGainLog2 = {\n LL: 0,\n LH: 1,\n HL: 1,\n HH: 2,\n};\n\nclass JpxImage {\n constructor() {\n this.failOnCorruptedImage = false;\n }\n\n parse(data) {\n const head = readUint16(data, 0);\n // No box header, immediate start of codestream (SOC)\n if (head === 0xff4f) {\n this.parseCodestream(data, 0, data.length);\n return;\n }\n\n const length = data.length;\n let position = 0;\n while (position < length) {\n let headerSize = 8;\n let lbox = readUint32(data, position);\n const tbox = readUint32(data, position + 4);\n position += headerSize;\n if (lbox === 1) {\n // XLBox: read UInt64 according to spec.\n // JavaScript's int precision of 53 bit should be sufficient here.\n lbox =\n readUint32(data, position) * 4294967296 +\n readUint32(data, position + 4);\n position += 8;\n headerSize += 8;\n }\n if (lbox === 0) {\n lbox = length - position + headerSize;\n }\n if (lbox < headerSize) {\n throw new JpxError(\"Invalid box field size\");\n }\n const dataLength = lbox - headerSize;\n let jumpDataLength = true;\n switch (tbox) {\n case 0x6a703268: // 'jp2h'\n jumpDataLength = false; // parsing child boxes\n break;\n case 0x636f6c72: // 'colr'\n // Colorspaces are not used, the CS from the PDF is used.\n const method = data[position];\n if (method === 1) {\n // enumerated colorspace\n const colorspace = readUint32(data, position + 3);\n switch (colorspace) {\n case 16: // this indicates a sRGB colorspace\n case 17: // this indicates a grayscale colorspace\n case 18: // this indicates a YUV colorspace\n break;\n default:\n warn(\"Unknown colorspace \" + colorspace);\n break;\n }\n } else if (method === 2) {\n info(\"ICC profile not supported\");\n }\n break;\n case 0x6a703263: // 'jp2c'\n this.parseCodestream(data, position, position + dataLength);\n break;\n case 0x6a502020: // 'jP\\024\\024'\n if (readUint32(data, position) !== 0x0d0a870a) {\n warn(\"Invalid JP2 signature\");\n }\n break;\n // The following header types are valid but currently not used:\n case 0x6a501a1a: // 'jP\\032\\032'\n case 0x66747970: // 'ftyp'\n case 0x72726571: // 'rreq'\n case 0x72657320: // 'res '\n case 0x69686472: // 'ihdr'\n break;\n default:\n const headerType = String.fromCharCode(\n (tbox >> 24) & 0xff,\n (tbox >> 16) & 0xff,\n (tbox >> 8) & 0xff,\n tbox & 0xff\n );\n warn(`Unsupported header type ${tbox} (${headerType}).`);\n break;\n }\n if (jumpDataLength) {\n position += dataLength;\n }\n }\n }\n\n parseImageProperties(stream) {\n let newByte = stream.getByte();\n while (newByte >= 0) {\n const oldByte = newByte;\n newByte = stream.getByte();\n const code = (oldByte << 8) | newByte;\n // Image and tile size (SIZ)\n if (code === 0xff51) {\n stream.skip(4);\n const Xsiz = stream.getInt32() >>> 0; // Byte 4\n const Ysiz = stream.getInt32() >>> 0; // Byte 8\n const XOsiz = stream.getInt32() >>> 0; // Byte 12\n const YOsiz = stream.getInt32() >>> 0; // Byte 16\n stream.skip(16);\n const Csiz = stream.getUint16(); // Byte 36\n this.width = Xsiz - XOsiz;\n this.height = Ysiz - YOsiz;\n this.componentsCount = Csiz;\n // Results are always returned as `Uint8ClampedArray`s.\n this.bitsPerComponent = 8;\n return;\n }\n }\n throw new JpxError(\"No size marker found in JPX stream\");\n }\n\n parseCodestream(data, start, end) {\n const context = {};\n let doNotRecover = false;\n try {\n let position = start;\n while (position + 1 < end) {\n const code = readUint16(data, position);\n position += 2;\n\n let length = 0,\n j,\n sqcd,\n spqcds,\n spqcdSize,\n scalarExpounded,\n tile;\n switch (code) {\n case 0xff4f: // Start of codestream (SOC)\n context.mainHeader = true;\n break;\n case 0xffd9: // End of codestream (EOC)\n break;\n case 0xff51: // Image and tile size (SIZ)\n length = readUint16(data, position);\n const siz = {};\n siz.Xsiz = readUint32(data, position + 4);\n siz.Ysiz = readUint32(data, position + 8);\n siz.XOsiz = readUint32(data, position + 12);\n siz.YOsiz = readUint32(data, position + 16);\n siz.XTsiz = readUint32(data, position + 20);\n siz.YTsiz = readUint32(data, position + 24);\n siz.XTOsiz = readUint32(data, position + 28);\n siz.YTOsiz = readUint32(data, position + 32);\n const componentsCount = readUint16(data, position + 36);\n siz.Csiz = componentsCount;\n const components = [];\n j = position + 38;\n for (let i = 0; i < componentsCount; i++) {\n const component = {\n precision: (data[j] & 0x7f) + 1,\n isSigned: !!(data[j] & 0x80),\n XRsiz: data[j + 1],\n YRsiz: data[j + 2],\n };\n j += 3;\n calculateComponentDimensions(component, siz);\n components.push(component);\n }\n context.SIZ = siz;\n context.components = components;\n calculateTileGrids(context, components);\n context.QCC = [];\n context.COC = [];\n break;\n case 0xff5c: // Quantization default (QCD)\n length = readUint16(data, position);\n const qcd = {};\n j = position + 2;\n sqcd = data[j++];\n switch (sqcd & 0x1f) {\n case 0:\n spqcdSize = 8;\n scalarExpounded = true;\n break;\n case 1:\n spqcdSize = 16;\n scalarExpounded = false;\n break;\n case 2:\n spqcdSize = 16;\n scalarExpounded = true;\n break;\n default:\n throw new Error(\"Invalid SQcd value \" + sqcd);\n }\n qcd.noQuantization = spqcdSize === 8;\n qcd.scalarExpounded = scalarExpounded;\n qcd.guardBits = sqcd >> 5;\n spqcds = [];\n while (j < length + position) {\n const spqcd = {};\n if (spqcdSize === 8) {\n spqcd.epsilon = data[j++] >> 3;\n spqcd.mu = 0;\n } else {\n spqcd.epsilon = data[j] >> 3;\n spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1];\n j += 2;\n }\n spqcds.push(spqcd);\n }\n qcd.SPqcds = spqcds;\n if (context.mainHeader) {\n context.QCD = qcd;\n } else {\n context.currentTile.QCD = qcd;\n context.currentTile.QCC = [];\n }\n break;\n case 0xff5d: // Quantization component (QCC)\n length = readUint16(data, position);\n const qcc = {};\n j = position + 2;\n let cqcc;\n if (context.SIZ.Csiz < 257) {\n cqcc = data[j++];\n } else {\n cqcc = readUint16(data, j);\n j += 2;\n }\n sqcd = data[j++];\n switch (sqcd & 0x1f) {\n case 0:\n spqcdSize = 8;\n scalarExpounded = true;\n break;\n case 1:\n spqcdSize = 16;\n scalarExpounded = false;\n break;\n case 2:\n spqcdSize = 16;\n scalarExpounded = true;\n break;\n default:\n throw new Error(\"Invalid SQcd value \" + sqcd);\n }\n qcc.noQuantization = spqcdSize === 8;\n qcc.scalarExpounded = scalarExpounded;\n qcc.guardBits = sqcd >> 5;\n spqcds = [];\n while (j < length + position) {\n const spqcd = {};\n if (spqcdSize === 8) {\n spqcd.epsilon = data[j++] >> 3;\n spqcd.mu = 0;\n } else {\n spqcd.epsilon = data[j] >> 3;\n spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1];\n j += 2;\n }\n spqcds.push(spqcd);\n }\n qcc.SPqcds = spqcds;\n if (context.mainHeader) {\n context.QCC[cqcc] = qcc;\n } else {\n context.currentTile.QCC[cqcc] = qcc;\n }\n break;\n case 0xff52: // Coding style default (COD)\n length = readUint16(data, position);\n const cod = {};\n j = position + 2;\n const scod = data[j++];\n cod.entropyCoderWithCustomPrecincts = !!(scod & 1);\n cod.sopMarkerUsed = !!(scod & 2);\n cod.ephMarkerUsed = !!(scod & 4);\n cod.progressionOrder = data[j++];\n cod.layersCount = readUint16(data, j);\n j += 2;\n cod.multipleComponentTransform = data[j++];\n\n cod.decompositionLevelsCount = data[j++];\n cod.xcb = (data[j++] & 0xf) + 2;\n cod.ycb = (data[j++] & 0xf) + 2;\n const blockStyle = data[j++];\n cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1);\n cod.resetContextProbabilities = !!(blockStyle & 2);\n cod.terminationOnEachCodingPass = !!(blockStyle & 4);\n cod.verticallyStripe = !!(blockStyle & 8);\n cod.predictableTermination = !!(blockStyle & 16);\n cod.segmentationSymbolUsed = !!(blockStyle & 32);\n cod.reversibleTransformation = data[j++];\n if (cod.entropyCoderWithCustomPrecincts) {\n const precinctsSizes = [];\n while (j < length + position) {\n const precinctsSize = data[j++];\n precinctsSizes.push({\n PPx: precinctsSize & 0xf,\n PPy: precinctsSize >> 4,\n });\n }\n cod.precinctsSizes = precinctsSizes;\n }\n const unsupported = [];\n if (cod.selectiveArithmeticCodingBypass) {\n unsupported.push(\"selectiveArithmeticCodingBypass\");\n }\n if (cod.terminationOnEachCodingPass) {\n unsupported.push(\"terminationOnEachCodingPass\");\n }\n if (cod.verticallyStripe) {\n unsupported.push(\"verticallyStripe\");\n }\n if (cod.predictableTermination) {\n unsupported.push(\"predictableTermination\");\n }\n if (unsupported.length > 0) {\n doNotRecover = true;\n warn(`JPX: Unsupported COD options (${unsupported.join(\", \")}).`);\n }\n if (context.mainHeader) {\n context.COD = cod;\n } else {\n context.currentTile.COD = cod;\n context.currentTile.COC = [];\n }\n break;\n case 0xff90: // Start of tile-part (SOT)\n length = readUint16(data, position);\n tile = {};\n tile.index = readUint16(data, position + 2);\n tile.length = readUint32(data, position + 4);\n tile.dataEnd = tile.length + position - 2;\n tile.partIndex = data[position + 8];\n tile.partsCount = data[position + 9];\n\n context.mainHeader = false;\n if (tile.partIndex === 0) {\n // reset component specific settings\n tile.COD = context.COD;\n tile.COC = context.COC.slice(0); // clone of the global COC\n tile.QCD = context.QCD;\n tile.QCC = context.QCC.slice(0); // clone of the global COC\n }\n context.currentTile = tile;\n break;\n case 0xff93: // Start of data (SOD)\n tile = context.currentTile;\n if (tile.partIndex === 0) {\n initializeTile(context, tile.index);\n buildPackets(context);\n }\n\n // moving to the end of the data\n length = tile.dataEnd - position;\n parseTilePackets(context, data, position, length);\n break;\n case 0xff53: // Coding style component (COC)\n warn(\"JPX: Codestream code 0xFF53 (COC) is not implemented.\");\n /* falls through */\n case 0xff55: // Tile-part lengths, main header (TLM)\n case 0xff57: // Packet length, main header (PLM)\n case 0xff58: // Packet length, tile-part header (PLT)\n case 0xff64: // Comment (COM)\n length = readUint16(data, position);\n // skipping content\n break;\n default:\n throw new Error(\"Unknown codestream code: \" + code.toString(16));\n }\n position += length;\n }\n } catch (e) {\n if (doNotRecover || this.failOnCorruptedImage) {\n throw new JpxError(e.message);\n } else {\n warn(`JPX: Trying to recover from: \"${e.message}\".`);\n }\n }\n this.tiles = transformComponents(context);\n this.width = context.SIZ.Xsiz - context.SIZ.XOsiz;\n this.height = context.SIZ.Ysiz - context.SIZ.YOsiz;\n this.componentsCount = context.SIZ.Csiz;\n }\n}\n\nfunction calculateComponentDimensions(component, siz) {\n // Section B.2 Component mapping\n component.x0 = Math.ceil(siz.XOsiz / component.XRsiz);\n component.x1 = Math.ceil(siz.Xsiz / component.XRsiz);\n component.y0 = Math.ceil(siz.YOsiz / component.YRsiz);\n component.y1 = Math.ceil(siz.Ysiz / component.YRsiz);\n component.width = component.x1 - component.x0;\n component.height = component.y1 - component.y0;\n}\nfunction calculateTileGrids(context, components) {\n const siz = context.SIZ;\n // Section B.3 Division into tile and tile-components\n const tiles = [];\n let tile;\n const numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz);\n const numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz);\n for (let q = 0; q < numYtiles; q++) {\n for (let p = 0; p < numXtiles; p++) {\n tile = {};\n tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz);\n tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz);\n tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz);\n tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz);\n tile.width = tile.tx1 - tile.tx0;\n tile.height = tile.ty1 - tile.ty0;\n tile.components = [];\n tiles.push(tile);\n }\n }\n context.tiles = tiles;\n\n const componentsCount = siz.Csiz;\n for (let i = 0, ii = componentsCount; i < ii; i++) {\n const component = components[i];\n for (let j = 0, jj = tiles.length; j < jj; j++) {\n const tileComponent = {};\n tile = tiles[j];\n tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz);\n tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz);\n tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz);\n tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz);\n tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0;\n tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0;\n tile.components[i] = tileComponent;\n }\n }\n}\nfunction getBlocksDimensions(context, component, r) {\n const codOrCoc = component.codingStyleParameters;\n const result = {};\n if (!codOrCoc.entropyCoderWithCustomPrecincts) {\n result.PPx = 15;\n result.PPy = 15;\n } else {\n result.PPx = codOrCoc.precinctsSizes[r].PPx;\n result.PPy = codOrCoc.precinctsSizes[r].PPy;\n }\n // calculate codeblock size as described in section B.7\n result.xcb_ =\n r > 0\n ? Math.min(codOrCoc.xcb, result.PPx - 1)\n : Math.min(codOrCoc.xcb, result.PPx);\n result.ycb_ =\n r > 0\n ? Math.min(codOrCoc.ycb, result.PPy - 1)\n : Math.min(codOrCoc.ycb, result.PPy);\n return result;\n}\nfunction buildPrecincts(context, resolution, dimensions) {\n // Section B.6 Division resolution to precincts\n const precinctWidth = 1 << dimensions.PPx;\n const precinctHeight = 1 << dimensions.PPy;\n // Jasper introduces codeblock groups for mapping each subband codeblocks\n // to precincts. Precinct partition divides a resolution according to width\n // and height parameters. The subband that belongs to the resolution level\n // has a different size than the level, unless it is the zero resolution.\n\n // From Jasper documentation: jpeg2000.pdf, section K: Tier-2 coding:\n // The precinct partitioning for a particular subband is derived from a\n // partitioning of its parent LL band (i.e., the LL band at the next higher\n // resolution level)... The LL band associated with each resolution level is\n // divided into precincts... Each of the resulting precinct regions is then\n // mapped into its child subbands (if any) at the next lower resolution\n // level. This is accomplished by using the coordinate transformation\n // (u, v) = (ceil(x/2), ceil(y/2)) where (x, y) and (u, v) are the\n // coordinates of a point in the LL band and child subband, respectively.\n const isZeroRes = resolution.resLevel === 0;\n const precinctWidthInSubband = 1 << (dimensions.PPx + (isZeroRes ? 0 : -1));\n const precinctHeightInSubband = 1 << (dimensions.PPy + (isZeroRes ? 0 : -1));\n const numprecinctswide =\n resolution.trx1 > resolution.trx0\n ? Math.ceil(resolution.trx1 / precinctWidth) -\n Math.floor(resolution.trx0 / precinctWidth)\n : 0;\n const numprecinctshigh =\n resolution.try1 > resolution.try0\n ? Math.ceil(resolution.try1 / precinctHeight) -\n Math.floor(resolution.try0 / precinctHeight)\n : 0;\n const numprecincts = numprecinctswide * numprecinctshigh;\n\n resolution.precinctParameters = {\n precinctWidth,\n precinctHeight,\n numprecinctswide,\n numprecinctshigh,\n numprecincts,\n precinctWidthInSubband,\n precinctHeightInSubband,\n };\n}\nfunction buildCodeblocks(context, subband, dimensions) {\n // Section B.7 Division sub-band into code-blocks\n const xcb_ = dimensions.xcb_;\n const ycb_ = dimensions.ycb_;\n const codeblockWidth = 1 << xcb_;\n const codeblockHeight = 1 << ycb_;\n const cbx0 = subband.tbx0 >> xcb_;\n const cby0 = subband.tby0 >> ycb_;\n const cbx1 = (subband.tbx1 + codeblockWidth - 1) >> xcb_;\n const cby1 = (subband.tby1 + codeblockHeight - 1) >> ycb_;\n const precinctParameters = subband.resolution.precinctParameters;\n const codeblocks = [];\n const precincts = [];\n let i, j, codeblock, precinctNumber;\n for (j = cby0; j < cby1; j++) {\n for (i = cbx0; i < cbx1; i++) {\n codeblock = {\n cbx: i,\n cby: j,\n tbx0: codeblockWidth * i,\n tby0: codeblockHeight * j,\n tbx1: codeblockWidth * (i + 1),\n tby1: codeblockHeight * (j + 1),\n };\n\n codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0);\n codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0);\n codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1);\n codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1);\n\n // Calculate precinct number for this codeblock, codeblock position\n // should be relative to its subband, use actual dimension and position\n // See comment about codeblock group width and height\n const pi = Math.floor(\n (codeblock.tbx0_ - subband.tbx0) /\n precinctParameters.precinctWidthInSubband\n );\n const pj = Math.floor(\n (codeblock.tby0_ - subband.tby0) /\n precinctParameters.precinctHeightInSubband\n );\n precinctNumber = pi + pj * precinctParameters.numprecinctswide;\n\n codeblock.precinctNumber = precinctNumber;\n codeblock.subbandType = subband.type;\n codeblock.Lblock = 3;\n\n if (\n codeblock.tbx1_ <= codeblock.tbx0_ ||\n codeblock.tby1_ <= codeblock.tby0_\n ) {\n continue;\n }\n codeblocks.push(codeblock);\n // building precinct for the sub-band\n let precinct = precincts[precinctNumber];\n if (precinct !== undefined) {\n if (i < precinct.cbxMin) {\n precinct.cbxMin = i;\n } else if (i > precinct.cbxMax) {\n precinct.cbxMax = i;\n }\n if (j < precinct.cbyMin) {\n precinct.cbxMin = j;\n } else if (j > precinct.cbyMax) {\n precinct.cbyMax = j;\n }\n } else {\n precincts[precinctNumber] = precinct = {\n cbxMin: i,\n cbyMin: j,\n cbxMax: i,\n cbyMax: j,\n };\n }\n codeblock.precinct = precinct;\n }\n }\n subband.codeblockParameters = {\n codeblockWidth: xcb_,\n codeblockHeight: ycb_,\n numcodeblockwide: cbx1 - cbx0 + 1,\n numcodeblockhigh: cby1 - cby0 + 1,\n };\n subband.codeblocks = codeblocks;\n subband.precincts = precincts;\n}\nfunction createPacket(resolution, precinctNumber, layerNumber) {\n const precinctCodeblocks = [];\n // Section B.10.8 Order of info in packet\n const subbands = resolution.subbands;\n // sub-bands already ordered in 'LL', 'HL', 'LH', and 'HH' sequence\n for (let i = 0, ii = subbands.length; i < ii; i++) {\n const subband = subbands[i];\n const codeblocks = subband.codeblocks;\n for (let j = 0, jj = codeblocks.length; j < jj; j++) {\n const codeblock = codeblocks[j];\n if (codeblock.precinctNumber !== precinctNumber) {\n continue;\n }\n precinctCodeblocks.push(codeblock);\n }\n }\n return {\n layerNumber,\n codeblocks: precinctCodeblocks,\n };\n}\nfunction LayerResolutionComponentPositionIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n let maxDecompositionLevelsCount = 0;\n for (let q = 0; q < componentsCount; q++) {\n maxDecompositionLevelsCount = Math.max(\n maxDecompositionLevelsCount,\n tile.components[q].codingStyleParameters.decompositionLevelsCount\n );\n }\n\n let l = 0,\n r = 0,\n i = 0,\n k = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.1 Layer-resolution-component-position\n for (; l < layersCount; l++) {\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; i < componentsCount; i++) {\n const component = tile.components[i];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n\n const resolution = component.resolutions[r];\n const numprecincts = resolution.precinctParameters.numprecincts;\n for (; k < numprecincts; ) {\n const packet = createPacket(resolution, k, l);\n k++;\n return packet;\n }\n k = 0;\n }\n i = 0;\n }\n r = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction ResolutionLayerComponentPositionIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n let maxDecompositionLevelsCount = 0;\n for (let q = 0; q < componentsCount; q++) {\n maxDecompositionLevelsCount = Math.max(\n maxDecompositionLevelsCount,\n tile.components[q].codingStyleParameters.decompositionLevelsCount\n );\n }\n\n let r = 0,\n l = 0,\n i = 0,\n k = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.2 Resolution-layer-component-position\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; l < layersCount; l++) {\n for (; i < componentsCount; i++) {\n const component = tile.components[i];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n\n const resolution = component.resolutions[r];\n const numprecincts = resolution.precinctParameters.numprecincts;\n for (; k < numprecincts; ) {\n const packet = createPacket(resolution, k, l);\n k++;\n return packet;\n }\n k = 0;\n }\n i = 0;\n }\n l = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction ResolutionPositionComponentLayerIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n let l, r, c, p;\n let maxDecompositionLevelsCount = 0;\n for (c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n maxDecompositionLevelsCount = Math.max(\n maxDecompositionLevelsCount,\n component.codingStyleParameters.decompositionLevelsCount\n );\n }\n const maxNumPrecinctsInLevel = new Int32Array(\n maxDecompositionLevelsCount + 1\n );\n for (r = 0; r <= maxDecompositionLevelsCount; ++r) {\n let maxNumPrecincts = 0;\n for (c = 0; c < componentsCount; ++c) {\n const resolutions = tile.components[c].resolutions;\n if (r < resolutions.length) {\n maxNumPrecincts = Math.max(\n maxNumPrecincts,\n resolutions[r].precinctParameters.numprecincts\n );\n }\n }\n maxNumPrecinctsInLevel[r] = maxNumPrecincts;\n }\n l = 0;\n r = 0;\n c = 0;\n p = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.3 Resolution-position-component-layer\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; p < maxNumPrecinctsInLevel[r]; p++) {\n for (; c < componentsCount; c++) {\n const component = tile.components[c];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n const resolution = component.resolutions[r];\n const numprecincts = resolution.precinctParameters.numprecincts;\n if (p >= numprecincts) {\n continue;\n }\n for (; l < layersCount; ) {\n const packet = createPacket(resolution, p, l);\n l++;\n return packet;\n }\n l = 0;\n }\n c = 0;\n }\n p = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction PositionComponentResolutionLayerIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n const precinctsSizes = getPrecinctSizesInImageScale(tile);\n const precinctsIterationSizes = precinctsSizes;\n let l = 0,\n r = 0,\n c = 0,\n px = 0,\n py = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.4 Position-component-resolution-layer\n for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n for (; px < precinctsIterationSizes.maxNumWide; px++) {\n for (; c < componentsCount; c++) {\n const component = tile.components[c];\n const decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n for (; r <= decompositionLevelsCount; r++) {\n const resolution = component.resolutions[r];\n const sizeInImageScale =\n precinctsSizes.components[c].resolutions[r];\n const k = getPrecinctIndexIfExist(\n px,\n py,\n sizeInImageScale,\n precinctsIterationSizes,\n resolution\n );\n if (k === null) {\n continue;\n }\n for (; l < layersCount; ) {\n const packet = createPacket(resolution, k, l);\n l++;\n return packet;\n }\n l = 0;\n }\n r = 0;\n }\n c = 0;\n }\n px = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction ComponentPositionResolutionLayerIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n const precinctsSizes = getPrecinctSizesInImageScale(tile);\n let l = 0,\n r = 0,\n c = 0,\n px = 0,\n py = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.5 Component-position-resolution-layer\n for (; c < componentsCount; ++c) {\n const component = tile.components[c];\n const precinctsIterationSizes = precinctsSizes.components[c];\n const decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n for (; px < precinctsIterationSizes.maxNumWide; px++) {\n for (; r <= decompositionLevelsCount; r++) {\n const resolution = component.resolutions[r];\n const sizeInImageScale = precinctsIterationSizes.resolutions[r];\n const k = getPrecinctIndexIfExist(\n px,\n py,\n sizeInImageScale,\n precinctsIterationSizes,\n resolution\n );\n if (k === null) {\n continue;\n }\n for (; l < layersCount; ) {\n const packet = createPacket(resolution, k, l);\n l++;\n return packet;\n }\n l = 0;\n }\n r = 0;\n }\n px = 0;\n }\n py = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction getPrecinctIndexIfExist(\n pxIndex,\n pyIndex,\n sizeInImageScale,\n precinctIterationSizes,\n resolution\n) {\n const posX = pxIndex * precinctIterationSizes.minWidth;\n const posY = pyIndex * precinctIterationSizes.minHeight;\n if (\n posX % sizeInImageScale.width !== 0 ||\n posY % sizeInImageScale.height !== 0\n ) {\n return null;\n }\n const startPrecinctRowIndex =\n (posY / sizeInImageScale.width) *\n resolution.precinctParameters.numprecinctswide;\n return posX / sizeInImageScale.height + startPrecinctRowIndex;\n}\nfunction getPrecinctSizesInImageScale(tile) {\n const componentsCount = tile.components.length;\n let minWidth = Number.MAX_VALUE;\n let minHeight = Number.MAX_VALUE;\n let maxNumWide = 0;\n let maxNumHigh = 0;\n const sizePerComponent = new Array(componentsCount);\n for (let c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n const decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n const sizePerResolution = new Array(decompositionLevelsCount + 1);\n let minWidthCurrentComponent = Number.MAX_VALUE;\n let minHeightCurrentComponent = Number.MAX_VALUE;\n let maxNumWideCurrentComponent = 0;\n let maxNumHighCurrentComponent = 0;\n let scale = 1;\n for (let r = decompositionLevelsCount; r >= 0; --r) {\n const resolution = component.resolutions[r];\n const widthCurrentResolution =\n scale * resolution.precinctParameters.precinctWidth;\n const heightCurrentResolution =\n scale * resolution.precinctParameters.precinctHeight;\n minWidthCurrentComponent = Math.min(\n minWidthCurrentComponent,\n widthCurrentResolution\n );\n minHeightCurrentComponent = Math.min(\n minHeightCurrentComponent,\n heightCurrentResolution\n );\n maxNumWideCurrentComponent = Math.max(\n maxNumWideCurrentComponent,\n resolution.precinctParameters.numprecinctswide\n );\n maxNumHighCurrentComponent = Math.max(\n maxNumHighCurrentComponent,\n resolution.precinctParameters.numprecinctshigh\n );\n sizePerResolution[r] = {\n width: widthCurrentResolution,\n height: heightCurrentResolution,\n };\n scale <<= 1;\n }\n minWidth = Math.min(minWidth, minWidthCurrentComponent);\n minHeight = Math.min(minHeight, minHeightCurrentComponent);\n maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent);\n maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent);\n sizePerComponent[c] = {\n resolutions: sizePerResolution,\n minWidth: minWidthCurrentComponent,\n minHeight: minHeightCurrentComponent,\n maxNumWide: maxNumWideCurrentComponent,\n maxNumHigh: maxNumHighCurrentComponent,\n };\n }\n return {\n components: sizePerComponent,\n minWidth,\n minHeight,\n maxNumWide,\n maxNumHigh,\n };\n}\nfunction buildPackets(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const componentsCount = siz.Csiz;\n // Creating resolutions and sub-bands for each component\n for (let c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n const decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n // Section B.5 Resolution levels and sub-bands\n const resolutions = [];\n const subbands = [];\n for (let r = 0; r <= decompositionLevelsCount; r++) {\n const blocksDimensions = getBlocksDimensions(context, component, r);\n const resolution = {};\n const scale = 1 << (decompositionLevelsCount - r);\n resolution.trx0 = Math.ceil(component.tcx0 / scale);\n resolution.try0 = Math.ceil(component.tcy0 / scale);\n resolution.trx1 = Math.ceil(component.tcx1 / scale);\n resolution.try1 = Math.ceil(component.tcy1 / scale);\n resolution.resLevel = r;\n buildPrecincts(context, resolution, blocksDimensions);\n resolutions.push(resolution);\n\n let subband;\n if (r === 0) {\n // one sub-band (LL) with last decomposition\n subband = {};\n subband.type = \"LL\";\n subband.tbx0 = Math.ceil(component.tcx0 / scale);\n subband.tby0 = Math.ceil(component.tcy0 / scale);\n subband.tbx1 = Math.ceil(component.tcx1 / scale);\n subband.tby1 = Math.ceil(component.tcy1 / scale);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolution.subbands = [subband];\n } else {\n const bscale = 1 << (decompositionLevelsCount - r + 1);\n const resolutionSubbands = [];\n // three sub-bands (HL, LH and HH) with rest of decompositions\n subband = {};\n subband.type = \"HL\";\n subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n subband.tby0 = Math.ceil(component.tcy0 / bscale);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n subband.tby1 = Math.ceil(component.tcy1 / bscale);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n\n subband = {};\n subband.type = \"LH\";\n subband.tbx0 = Math.ceil(component.tcx0 / bscale);\n subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale);\n subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n\n subband = {};\n subband.type = \"HH\";\n subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n\n resolution.subbands = resolutionSubbands;\n }\n }\n component.resolutions = resolutions;\n component.subbands = subbands;\n }\n // Generate the packets sequence\n const progressionOrder = tile.codingStyleDefaultParameters.progressionOrder;\n switch (progressionOrder) {\n case 0:\n tile.packetsIterator = new LayerResolutionComponentPositionIterator(\n context\n );\n break;\n case 1:\n tile.packetsIterator = new ResolutionLayerComponentPositionIterator(\n context\n );\n break;\n case 2:\n tile.packetsIterator = new ResolutionPositionComponentLayerIterator(\n context\n );\n break;\n case 3:\n tile.packetsIterator = new PositionComponentResolutionLayerIterator(\n context\n );\n break;\n case 4:\n tile.packetsIterator = new ComponentPositionResolutionLayerIterator(\n context\n );\n break;\n default:\n throw new JpxError(`Unsupported progression order ${progressionOrder}`);\n }\n}\nfunction parseTilePackets(context, data, offset, dataLength) {\n let position = 0;\n let buffer,\n bufferSize = 0,\n skipNextBit = false;\n function readBits(count) {\n while (bufferSize < count) {\n const b = data[offset + position];\n position++;\n if (skipNextBit) {\n buffer = (buffer << 7) | b;\n bufferSize += 7;\n skipNextBit = false;\n } else {\n buffer = (buffer << 8) | b;\n bufferSize += 8;\n }\n if (b === 0xff) {\n skipNextBit = true;\n }\n }\n bufferSize -= count;\n return (buffer >>> bufferSize) & ((1 << count) - 1);\n }\n function skipMarkerIfEqual(value) {\n if (\n data[offset + position - 1] === 0xff &&\n data[offset + position] === value\n ) {\n skipBytes(1);\n return true;\n } else if (\n data[offset + position] === 0xff &&\n data[offset + position + 1] === value\n ) {\n skipBytes(2);\n return true;\n }\n return false;\n }\n function skipBytes(count) {\n position += count;\n }\n function alignToByte() {\n bufferSize = 0;\n if (skipNextBit) {\n position++;\n skipNextBit = false;\n }\n }\n function readCodingpasses() {\n if (readBits(1) === 0) {\n return 1;\n }\n if (readBits(1) === 0) {\n return 2;\n }\n let value = readBits(2);\n if (value < 3) {\n return value + 3;\n }\n value = readBits(5);\n if (value < 31) {\n return value + 6;\n }\n value = readBits(7);\n return value + 37;\n }\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const sopMarkerUsed = context.COD.sopMarkerUsed;\n const ephMarkerUsed = context.COD.ephMarkerUsed;\n const packetsIterator = tile.packetsIterator;\n while (position < dataLength) {\n alignToByte();\n if (sopMarkerUsed && skipMarkerIfEqual(0x91)) {\n // Skip also marker segment length and packet sequence ID\n skipBytes(4);\n }\n const packet = packetsIterator.nextPacket();\n if (!readBits(1)) {\n continue;\n }\n const layerNumber = packet.layerNumber,\n queue = [];\n let codeblock;\n for (let i = 0, ii = packet.codeblocks.length; i < ii; i++) {\n codeblock = packet.codeblocks[i];\n let precinct = codeblock.precinct;\n const codeblockColumn = codeblock.cbx - precinct.cbxMin;\n const codeblockRow = codeblock.cby - precinct.cbyMin;\n let codeblockIncluded = false;\n let firstTimeInclusion = false;\n let valueReady, zeroBitPlanesTree;\n if (codeblock.included !== undefined) {\n codeblockIncluded = !!readBits(1);\n } else {\n // reading inclusion tree\n precinct = codeblock.precinct;\n let inclusionTree;\n if (precinct.inclusionTree !== undefined) {\n inclusionTree = precinct.inclusionTree;\n } else {\n // building inclusion and zero bit-planes trees\n const width = precinct.cbxMax - precinct.cbxMin + 1;\n const height = precinct.cbyMax - precinct.cbyMin + 1;\n inclusionTree = new InclusionTree(width, height, layerNumber);\n zeroBitPlanesTree = new TagTree(width, height);\n precinct.inclusionTree = inclusionTree;\n precinct.zeroBitPlanesTree = zeroBitPlanesTree;\n for (let l = 0; l < layerNumber; l++) {\n if (readBits(1) !== 0) {\n throw new JpxError(\"Invalid tag tree\");\n }\n }\n }\n\n if (inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber)) {\n while (true) {\n if (readBits(1)) {\n valueReady = !inclusionTree.nextLevel();\n if (valueReady) {\n codeblock.included = true;\n codeblockIncluded = firstTimeInclusion = true;\n break;\n }\n } else {\n inclusionTree.incrementValue(layerNumber);\n break;\n }\n }\n }\n }\n if (!codeblockIncluded) {\n continue;\n }\n if (firstTimeInclusion) {\n zeroBitPlanesTree = precinct.zeroBitPlanesTree;\n zeroBitPlanesTree.reset(codeblockColumn, codeblockRow);\n while (true) {\n if (readBits(1)) {\n valueReady = !zeroBitPlanesTree.nextLevel();\n if (valueReady) {\n break;\n }\n } else {\n zeroBitPlanesTree.incrementValue();\n }\n }\n codeblock.zeroBitPlanes = zeroBitPlanesTree.value;\n }\n const codingpasses = readCodingpasses();\n while (readBits(1)) {\n codeblock.Lblock++;\n }\n const codingpassesLog2 = log2(codingpasses);\n // rounding down log2\n const bits =\n (codingpasses < 1 << codingpassesLog2\n ? codingpassesLog2 - 1\n : codingpassesLog2) + codeblock.Lblock;\n const codedDataLength = readBits(bits);\n queue.push({\n codeblock,\n codingpasses,\n dataLength: codedDataLength,\n });\n }\n alignToByte();\n if (ephMarkerUsed) {\n skipMarkerIfEqual(0x92);\n }\n while (queue.length > 0) {\n const packetItem = queue.shift();\n codeblock = packetItem.codeblock;\n if (codeblock.data === undefined) {\n codeblock.data = [];\n }\n codeblock.data.push({\n data,\n start: offset + position,\n end: offset + position + packetItem.dataLength,\n codingpasses: packetItem.codingpasses,\n });\n position += packetItem.dataLength;\n }\n }\n return position;\n}\nfunction copyCoefficients(\n coefficients,\n levelWidth,\n levelHeight,\n subband,\n delta,\n mb,\n reversible,\n segmentationSymbolUsed,\n resetContextProbabilities\n) {\n const x0 = subband.tbx0;\n const y0 = subband.tby0;\n const width = subband.tbx1 - subband.tbx0;\n const codeblocks = subband.codeblocks;\n const right = subband.type.charAt(0) === \"H\" ? 1 : 0;\n const bottom = subband.type.charAt(1) === \"H\" ? levelWidth : 0;\n\n for (let i = 0, ii = codeblocks.length; i < ii; ++i) {\n const codeblock = codeblocks[i];\n const blockWidth = codeblock.tbx1_ - codeblock.tbx0_;\n const blockHeight = codeblock.tby1_ - codeblock.tby0_;\n if (blockWidth === 0 || blockHeight === 0) {\n continue;\n }\n if (codeblock.data === undefined) {\n continue;\n }\n\n const bitModel = new BitModel(\n blockWidth,\n blockHeight,\n codeblock.subbandType,\n codeblock.zeroBitPlanes,\n mb\n );\n let currentCodingpassType = 2; // first bit plane starts from cleanup\n\n // collect data\n const data = codeblock.data;\n let totalLength = 0,\n codingpasses = 0;\n let j, jj, dataItem;\n for (j = 0, jj = data.length; j < jj; j++) {\n dataItem = data[j];\n totalLength += dataItem.end - dataItem.start;\n codingpasses += dataItem.codingpasses;\n }\n const encodedData = new Uint8Array(totalLength);\n let position = 0;\n for (j = 0, jj = data.length; j < jj; j++) {\n dataItem = data[j];\n const chunk = dataItem.data.subarray(dataItem.start, dataItem.end);\n encodedData.set(chunk, position);\n position += chunk.length;\n }\n // decoding the item\n const decoder = new ArithmeticDecoder(encodedData, 0, totalLength);\n bitModel.setDecoder(decoder);\n\n for (j = 0; j < codingpasses; j++) {\n switch (currentCodingpassType) {\n case 0:\n bitModel.runSignificancePropagationPass();\n break;\n case 1:\n bitModel.runMagnitudeRefinementPass();\n break;\n case 2:\n bitModel.runCleanupPass();\n if (segmentationSymbolUsed) {\n bitModel.checkSegmentationSymbol();\n }\n break;\n }\n\n if (resetContextProbabilities) {\n bitModel.reset();\n }\n\n currentCodingpassType = (currentCodingpassType + 1) % 3;\n }\n\n let offset = codeblock.tbx0_ - x0 + (codeblock.tby0_ - y0) * width;\n const sign = bitModel.coefficentsSign;\n const magnitude = bitModel.coefficentsMagnitude;\n const bitsDecoded = bitModel.bitsDecoded;\n const magnitudeCorrection = reversible ? 0 : 0.5;\n let k, n, nb;\n position = 0;\n // Do the interleaving of Section F.3.3 here, so we do not need\n // to copy later. LL level is not interleaved, just copied.\n const interleave = subband.type !== \"LL\";\n for (j = 0; j < blockHeight; j++) {\n const row = (offset / width) | 0; // row in the non-interleaved subband\n const levelOffset = 2 * row * (levelWidth - width) + right + bottom;\n for (k = 0; k < blockWidth; k++) {\n n = magnitude[position];\n if (n !== 0) {\n n = (n + magnitudeCorrection) * delta;\n if (sign[position] !== 0) {\n n = -n;\n }\n nb = bitsDecoded[position];\n const pos = interleave ? levelOffset + (offset << 1) : offset;\n if (reversible && nb >= mb) {\n coefficients[pos] = n;\n } else {\n coefficients[pos] = n * (1 << (mb - nb));\n }\n }\n offset++;\n position++;\n }\n offset += width - blockWidth;\n }\n }\n}\nfunction transformTile(context, tile, c) {\n const component = tile.components[c];\n const codingStyleParameters = component.codingStyleParameters;\n const quantizationParameters = component.quantizationParameters;\n const decompositionLevelsCount =\n codingStyleParameters.decompositionLevelsCount;\n const spqcds = quantizationParameters.SPqcds;\n const scalarExpounded = quantizationParameters.scalarExpounded;\n const guardBits = quantizationParameters.guardBits;\n const segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed;\n const resetContextProbabilities =\n codingStyleParameters.resetContextProbabilities;\n const precision = context.components[c].precision;\n\n const reversible = codingStyleParameters.reversibleTransformation;\n const transform = reversible\n ? new ReversibleTransform()\n : new IrreversibleTransform();\n\n const subbandCoefficients = [];\n let b = 0;\n for (let i = 0; i <= decompositionLevelsCount; i++) {\n const resolution = component.resolutions[i];\n\n const width = resolution.trx1 - resolution.trx0;\n const height = resolution.try1 - resolution.try0;\n // Allocate space for the whole sublevel.\n const coefficients = new Float32Array(width * height);\n\n for (let j = 0, jj = resolution.subbands.length; j < jj; j++) {\n let mu, epsilon;\n if (!scalarExpounded) {\n // formula E-5\n mu = spqcds[0].mu;\n epsilon = spqcds[0].epsilon + (i > 0 ? 1 - i : 0);\n } else {\n mu = spqcds[b].mu;\n epsilon = spqcds[b].epsilon;\n b++;\n }\n\n const subband = resolution.subbands[j];\n const gainLog2 = SubbandsGainLog2[subband.type];\n\n // calculate quantization coefficient (Section E.1.1.1)\n const delta = reversible\n ? 1\n : 2 ** (precision + gainLog2 - epsilon) * (1 + mu / 2048);\n const mb = guardBits + epsilon - 1;\n\n // In the first resolution level, copyCoefficients will fill the\n // whole array with coefficients. In the succeeding passes,\n // copyCoefficients will consecutively fill in the values that belong\n // to the interleaved positions of the HL, LH, and HH coefficients.\n // The LL coefficients will then be interleaved in Transform.iterate().\n copyCoefficients(\n coefficients,\n width,\n height,\n subband,\n delta,\n mb,\n reversible,\n segmentationSymbolUsed,\n resetContextProbabilities\n );\n }\n subbandCoefficients.push({\n width,\n height,\n items: coefficients,\n });\n }\n\n const result = transform.calculate(\n subbandCoefficients,\n component.tcx0,\n component.tcy0\n );\n return {\n left: component.tcx0,\n top: component.tcy0,\n width: result.width,\n height: result.height,\n items: result.items,\n };\n}\nfunction transformComponents(context) {\n const siz = context.SIZ;\n const components = context.components;\n const componentsCount = siz.Csiz;\n const resultImages = [];\n for (let i = 0, ii = context.tiles.length; i < ii; i++) {\n const tile = context.tiles[i];\n const transformedTiles = [];\n for (let c = 0; c < componentsCount; c++) {\n transformedTiles[c] = transformTile(context, tile, c);\n }\n const tile0 = transformedTiles[0];\n const out = new Uint8ClampedArray(tile0.items.length * componentsCount);\n const result = {\n left: tile0.left,\n top: tile0.top,\n width: tile0.width,\n height: tile0.height,\n items: out,\n };\n\n // Section G.2.2 Inverse multi component transform\n let shift, offset;\n let pos = 0,\n j,\n jj,\n y0,\n y1,\n y2;\n if (tile.codingStyleDefaultParameters.multipleComponentTransform) {\n const fourComponents = componentsCount === 4;\n const y0items = transformedTiles[0].items;\n const y1items = transformedTiles[1].items;\n const y2items = transformedTiles[2].items;\n const y3items = fourComponents ? transformedTiles[3].items : null;\n\n // HACK: The multiple component transform formulas below assume that\n // all components have the same precision. With this in mind, we\n // compute shift and offset only once.\n shift = components[0].precision - 8;\n offset = (128 << shift) + 0.5;\n\n const component0 = tile.components[0];\n const alpha01 = componentsCount - 3;\n jj = y0items.length;\n if (!component0.codingStyleParameters.reversibleTransformation) {\n // inverse irreversible multiple component transform\n for (j = 0; j < jj; j++, pos += alpha01) {\n y0 = y0items[j] + offset;\n y1 = y1items[j];\n y2 = y2items[j];\n out[pos++] = (y0 + 1.402 * y2) >> shift;\n out[pos++] = (y0 - 0.34413 * y1 - 0.71414 * y2) >> shift;\n out[pos++] = (y0 + 1.772 * y1) >> shift;\n }\n } else {\n // inverse reversible multiple component transform\n for (j = 0; j < jj; j++, pos += alpha01) {\n y0 = y0items[j] + offset;\n y1 = y1items[j];\n y2 = y2items[j];\n const g = y0 - ((y2 + y1) >> 2);\n\n out[pos++] = (g + y2) >> shift;\n out[pos++] = g >> shift;\n out[pos++] = (g + y1) >> shift;\n }\n }\n if (fourComponents) {\n for (j = 0, pos = 3; j < jj; j++, pos += 4) {\n out[pos] = (y3items[j] + offset) >> shift;\n }\n }\n } else {\n // no multi-component transform\n for (let c = 0; c < componentsCount; c++) {\n const items = transformedTiles[c].items;\n shift = components[c].precision - 8;\n offset = (128 << shift) + 0.5;\n for (pos = c, j = 0, jj = items.length; j < jj; j++) {\n out[pos] = (items[j] + offset) >> shift;\n pos += componentsCount;\n }\n }\n }\n resultImages.push(result);\n }\n return resultImages;\n}\nfunction initializeTile(context, tileIndex) {\n const siz = context.SIZ;\n const componentsCount = siz.Csiz;\n const tile = context.tiles[tileIndex];\n for (let c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n const qcdOrQcc =\n context.currentTile.QCC[c] !== undefined\n ? context.currentTile.QCC[c]\n : context.currentTile.QCD;\n component.quantizationParameters = qcdOrQcc;\n const codOrCoc =\n context.currentTile.COC[c] !== undefined\n ? context.currentTile.COC[c]\n : context.currentTile.COD;\n component.codingStyleParameters = codOrCoc;\n }\n tile.codingStyleDefaultParameters = context.currentTile.COD;\n}\n\n// Section B.10.2 Tag trees\nclass TagTree {\n constructor(width, height) {\n const levelsLength = log2(Math.max(width, height)) + 1;\n this.levels = [];\n for (let i = 0; i < levelsLength; i++) {\n const level = {\n width,\n height,\n items: [],\n };\n this.levels.push(level);\n width = Math.ceil(width / 2);\n height = Math.ceil(height / 2);\n }\n }\n\n reset(i, j) {\n let currentLevel = 0,\n value = 0,\n level;\n while (currentLevel < this.levels.length) {\n level = this.levels[currentLevel];\n const index = i + j * level.width;\n if (level.items[index] !== undefined) {\n value = level.items[index];\n break;\n }\n level.index = index;\n i >>= 1;\n j >>= 1;\n currentLevel++;\n }\n currentLevel--;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n this.currentLevel = currentLevel;\n delete this.value;\n }\n\n incrementValue() {\n const level = this.levels[this.currentLevel];\n level.items[level.index]++;\n }\n\n nextLevel() {\n let currentLevel = this.currentLevel;\n let level = this.levels[currentLevel];\n const value = level.items[level.index];\n currentLevel--;\n if (currentLevel < 0) {\n this.value = value;\n return false;\n }\n\n this.currentLevel = currentLevel;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n return true;\n }\n}\n\nclass InclusionTree {\n constructor(width, height, defaultValue) {\n const levelsLength = log2(Math.max(width, height)) + 1;\n this.levels = [];\n for (let i = 0; i < levelsLength; i++) {\n const items = new Uint8Array(width * height);\n for (let j = 0, jj = items.length; j < jj; j++) {\n items[j] = defaultValue;\n }\n\n const level = {\n width,\n height,\n items,\n };\n this.levels.push(level);\n\n width = Math.ceil(width / 2);\n height = Math.ceil(height / 2);\n }\n }\n\n reset(i, j, stopValue) {\n let currentLevel = 0;\n while (currentLevel < this.levels.length) {\n const level = this.levels[currentLevel];\n const index = i + j * level.width;\n level.index = index;\n const value = level.items[index];\n\n if (value === 0xff) {\n break;\n }\n\n if (value > stopValue) {\n this.currentLevel = currentLevel;\n // already know about this one, propagating the value to top levels\n this.propagateValues();\n return false;\n }\n\n i >>= 1;\n j >>= 1;\n currentLevel++;\n }\n this.currentLevel = currentLevel - 1;\n return true;\n }\n\n incrementValue(stopValue) {\n const level = this.levels[this.currentLevel];\n level.items[level.index] = stopValue + 1;\n this.propagateValues();\n }\n\n propagateValues() {\n let levelIndex = this.currentLevel;\n let level = this.levels[levelIndex];\n const currentValue = level.items[level.index];\n while (--levelIndex >= 0) {\n level = this.levels[levelIndex];\n level.items[level.index] = currentValue;\n }\n }\n\n nextLevel() {\n let currentLevel = this.currentLevel;\n let level = this.levels[currentLevel];\n const value = level.items[level.index];\n level.items[level.index] = 0xff;\n currentLevel--;\n if (currentLevel < 0) {\n return false;\n }\n\n this.currentLevel = currentLevel;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n return true;\n }\n}\n\n// Section D. Coefficient bit modeling\nconst BitModel = (function BitModelClosure() {\n const UNIFORM_CONTEXT = 17;\n const RUNLENGTH_CONTEXT = 18;\n // Table D-1\n // The index is binary presentation: 0dddvvhh, ddd - sum of Di (0..4),\n // vv - sum of Vi (0..2), and hh - sum of Hi (0..2)\n const LLAndLHContextsLabel = new Uint8Array([\n 0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4,\n 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6,\n 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8,\n ]);\n const HLContextLabel = new Uint8Array([\n 0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8,\n 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3,\n 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8,\n ]);\n const HHContextLabel = new Uint8Array([\n 0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5,\n 5, 5, 0, 0, 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8,\n 8, 0, 8, 8, 8, 0, 8, 8, 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8,\n ]);\n\n // eslint-disable-next-line no-shadow\n class BitModel {\n constructor(width, height, subband, zeroBitPlanes, mb) {\n this.width = width;\n this.height = height;\n\n let contextLabelTable;\n if (subband === \"HH\") {\n contextLabelTable = HHContextLabel;\n } else if (subband === \"HL\") {\n contextLabelTable = HLContextLabel;\n } else {\n contextLabelTable = LLAndLHContextsLabel;\n }\n this.contextLabelTable = contextLabelTable;\n\n const coefficientCount = width * height;\n\n // coefficients outside the encoding region treated as insignificant\n // add border state cells for significanceState\n this.neighborsSignificance = new Uint8Array(coefficientCount);\n this.coefficentsSign = new Uint8Array(coefficientCount);\n let coefficentsMagnitude;\n if (mb > 14) {\n coefficentsMagnitude = new Uint32Array(coefficientCount);\n } else if (mb > 6) {\n coefficentsMagnitude = new Uint16Array(coefficientCount);\n } else {\n coefficentsMagnitude = new Uint8Array(coefficientCount);\n }\n this.coefficentsMagnitude = coefficentsMagnitude;\n this.processingFlags = new Uint8Array(coefficientCount);\n\n const bitsDecoded = new Uint8Array(coefficientCount);\n if (zeroBitPlanes !== 0) {\n for (let i = 0; i < coefficientCount; i++) {\n bitsDecoded[i] = zeroBitPlanes;\n }\n }\n this.bitsDecoded = bitsDecoded;\n\n this.reset();\n }\n\n setDecoder(decoder) {\n this.decoder = decoder;\n }\n\n reset() {\n // We have 17 contexts that are accessed via context labels,\n // plus the uniform and runlength context.\n this.contexts = new Int8Array(19);\n\n // Contexts are packed into 1 byte:\n // highest 7 bits carry the index, lowest bit carries mps\n this.contexts[0] = (4 << 1) | 0;\n this.contexts[UNIFORM_CONTEXT] = (46 << 1) | 0;\n this.contexts[RUNLENGTH_CONTEXT] = (3 << 1) | 0;\n }\n\n setNeighborsSignificance(row, column, index) {\n const neighborsSignificance = this.neighborsSignificance;\n const width = this.width,\n height = this.height;\n const left = column > 0;\n const right = column + 1 < width;\n let i;\n\n if (row > 0) {\n i = index - width;\n if (left) {\n neighborsSignificance[i - 1] += 0x10;\n }\n if (right) {\n neighborsSignificance[i + 1] += 0x10;\n }\n neighborsSignificance[i] += 0x04;\n }\n\n if (row + 1 < height) {\n i = index + width;\n if (left) {\n neighborsSignificance[i - 1] += 0x10;\n }\n if (right) {\n neighborsSignificance[i + 1] += 0x10;\n }\n neighborsSignificance[i] += 0x04;\n }\n\n if (left) {\n neighborsSignificance[index - 1] += 0x01;\n }\n if (right) {\n neighborsSignificance[index + 1] += 0x01;\n }\n neighborsSignificance[index] |= 0x80;\n }\n\n runSignificancePropagationPass() {\n const decoder = this.decoder;\n const width = this.width,\n height = this.height;\n const coefficentsMagnitude = this.coefficentsMagnitude;\n const coefficentsSign = this.coefficentsSign;\n const neighborsSignificance = this.neighborsSignificance;\n const processingFlags = this.processingFlags;\n const contexts = this.contexts;\n const labels = this.contextLabelTable;\n const bitsDecoded = this.bitsDecoded;\n const processedInverseMask = ~1;\n const processedMask = 1;\n const firstMagnitudeBitMask = 2;\n\n for (let i0 = 0; i0 < height; i0 += 4) {\n for (let j = 0; j < width; j++) {\n let index = i0 * width + j;\n for (let i1 = 0; i1 < 4; i1++, index += width) {\n const i = i0 + i1;\n if (i >= height) {\n break;\n }\n // clear processed flag first\n processingFlags[index] &= processedInverseMask;\n\n if (coefficentsMagnitude[index] || !neighborsSignificance[index]) {\n continue;\n }\n\n const contextLabel = labels[neighborsSignificance[index]];\n const decision = decoder.readBit(contexts, contextLabel);\n if (decision) {\n const sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n }\n bitsDecoded[index]++;\n processingFlags[index] |= processedMask;\n }\n }\n }\n }\n\n decodeSignBit(row, column, index) {\n const width = this.width,\n height = this.height;\n const coefficentsMagnitude = this.coefficentsMagnitude;\n const coefficentsSign = this.coefficentsSign;\n let contribution, sign0, sign1, significance1;\n let contextLabel, decoded;\n\n // calculate horizontal contribution\n significance1 = column > 0 && coefficentsMagnitude[index - 1] !== 0;\n if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) {\n sign1 = coefficentsSign[index + 1];\n if (significance1) {\n sign0 = coefficentsSign[index - 1];\n contribution = 1 - sign1 - sign0;\n } else {\n contribution = 1 - sign1 - sign1;\n }\n } else if (significance1) {\n sign0 = coefficentsSign[index - 1];\n contribution = 1 - sign0 - sign0;\n } else {\n contribution = 0;\n }\n const horizontalContribution = 3 * contribution;\n\n // calculate vertical contribution and combine with the horizontal\n significance1 = row > 0 && coefficentsMagnitude[index - width] !== 0;\n if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) {\n sign1 = coefficentsSign[index + width];\n if (significance1) {\n sign0 = coefficentsSign[index - width];\n contribution = 1 - sign1 - sign0 + horizontalContribution;\n } else {\n contribution = 1 - sign1 - sign1 + horizontalContribution;\n }\n } else if (significance1) {\n sign0 = coefficentsSign[index - width];\n contribution = 1 - sign0 - sign0 + horizontalContribution;\n } else {\n contribution = horizontalContribution;\n }\n\n if (contribution >= 0) {\n contextLabel = 9 + contribution;\n decoded = this.decoder.readBit(this.contexts, contextLabel);\n } else {\n contextLabel = 9 - contribution;\n decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1;\n }\n return decoded;\n }\n\n runMagnitudeRefinementPass() {\n const decoder = this.decoder;\n const width = this.width,\n height = this.height;\n const coefficentsMagnitude = this.coefficentsMagnitude;\n const neighborsSignificance = this.neighborsSignificance;\n const contexts = this.contexts;\n const bitsDecoded = this.bitsDecoded;\n const processingFlags = this.processingFlags;\n const processedMask = 1;\n const firstMagnitudeBitMask = 2;\n const length = width * height;\n const width4 = width * 4;\n\n for (let index0 = 0, indexNext; index0 < length; index0 = indexNext) {\n indexNext = Math.min(length, index0 + width4);\n for (let j = 0; j < width; j++) {\n for (let index = index0 + j; index < indexNext; index += width) {\n // significant but not those that have just become\n if (\n !coefficentsMagnitude[index] ||\n (processingFlags[index] & processedMask) !== 0\n ) {\n continue;\n }\n\n let contextLabel = 16;\n if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) {\n processingFlags[index] ^= firstMagnitudeBitMask;\n // first refinement\n const significance = neighborsSignificance[index] & 127;\n contextLabel = significance === 0 ? 15 : 14;\n }\n\n const bit = decoder.readBit(contexts, contextLabel);\n coefficentsMagnitude[index] =\n (coefficentsMagnitude[index] << 1) | bit;\n bitsDecoded[index]++;\n processingFlags[index] |= processedMask;\n }\n }\n }\n }\n\n runCleanupPass() {\n const decoder = this.decoder;\n const width = this.width,\n height = this.height;\n const neighborsSignificance = this.neighborsSignificance;\n const coefficentsMagnitude = this.coefficentsMagnitude;\n const coefficentsSign = this.coefficentsSign;\n const contexts = this.contexts;\n const labels = this.contextLabelTable;\n const bitsDecoded = this.bitsDecoded;\n const processingFlags = this.processingFlags;\n const processedMask = 1;\n const firstMagnitudeBitMask = 2;\n const oneRowDown = width;\n const twoRowsDown = width * 2;\n const threeRowsDown = width * 3;\n let iNext;\n for (let i0 = 0; i0 < height; i0 = iNext) {\n iNext = Math.min(i0 + 4, height);\n const indexBase = i0 * width;\n const checkAllEmpty = i0 + 3 < height;\n for (let j = 0; j < width; j++) {\n const index0 = indexBase + j;\n // using the property: labels[neighborsSignificance[index]] === 0\n // when neighborsSignificance[index] === 0\n const allEmpty =\n checkAllEmpty &&\n processingFlags[index0] === 0 &&\n processingFlags[index0 + oneRowDown] === 0 &&\n processingFlags[index0 + twoRowsDown] === 0 &&\n processingFlags[index0 + threeRowsDown] === 0 &&\n neighborsSignificance[index0] === 0 &&\n neighborsSignificance[index0 + oneRowDown] === 0 &&\n neighborsSignificance[index0 + twoRowsDown] === 0 &&\n neighborsSignificance[index0 + threeRowsDown] === 0;\n let i1 = 0,\n index = index0;\n let i = i0,\n sign;\n if (allEmpty) {\n const hasSignificantCoefficent = decoder.readBit(\n contexts,\n RUNLENGTH_CONTEXT\n );\n if (!hasSignificantCoefficent) {\n bitsDecoded[index0]++;\n bitsDecoded[index0 + oneRowDown]++;\n bitsDecoded[index0 + twoRowsDown]++;\n bitsDecoded[index0 + threeRowsDown]++;\n continue; // next column\n }\n i1 =\n (decoder.readBit(contexts, UNIFORM_CONTEXT) << 1) |\n decoder.readBit(contexts, UNIFORM_CONTEXT);\n if (i1 !== 0) {\n i = i0 + i1;\n index += i1 * width;\n }\n\n sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n\n index = index0;\n for (let i2 = i0; i2 <= i; i2++, index += width) {\n bitsDecoded[index]++;\n }\n\n i1++;\n }\n for (i = i0 + i1; i < iNext; i++, index += width) {\n if (\n coefficentsMagnitude[index] ||\n (processingFlags[index] & processedMask) !== 0\n ) {\n continue;\n }\n\n const contextLabel = labels[neighborsSignificance[index]];\n const decision = decoder.readBit(contexts, contextLabel);\n if (decision === 1) {\n sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n }\n bitsDecoded[index]++;\n }\n }\n }\n }\n\n checkSegmentationSymbol() {\n const decoder = this.decoder;\n const contexts = this.contexts;\n const symbol =\n (decoder.readBit(contexts, UNIFORM_CONTEXT) << 3) |\n (decoder.readBit(contexts, UNIFORM_CONTEXT) << 2) |\n (decoder.readBit(contexts, UNIFORM_CONTEXT) << 1) |\n decoder.readBit(contexts, UNIFORM_CONTEXT);\n if (symbol !== 0xa) {\n throw new JpxError(\"Invalid segmentation symbol\");\n }\n }\n }\n\n return BitModel;\n})();\n\n// Section F, Discrete wavelet transformation\nclass Transform {\n constructor() {\n if (this.constructor === Transform) {\n unreachable(\"Cannot initialize Transform.\");\n }\n }\n\n calculate(subbands, u0, v0) {\n let ll = subbands[0];\n for (let i = 1, ii = subbands.length; i < ii; i++) {\n ll = this.iterate(ll, subbands[i], u0, v0);\n }\n return ll;\n }\n\n extend(buffer, offset, size) {\n // Section F.3.7 extending... using max extension of 4\n let i1 = offset - 1,\n j1 = offset + 1;\n let i2 = offset + size - 2,\n j2 = offset + size;\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1] = buffer[j1];\n buffer[j2] = buffer[i2];\n }\n\n filter(x, offset, length) {\n unreachable(\"Abstract method `filter` called\");\n }\n\n iterate(ll, hl_lh_hh, u0, v0) {\n const llWidth = ll.width,\n llHeight = ll.height;\n let llItems = ll.items;\n const width = hl_lh_hh.width;\n const height = hl_lh_hh.height;\n const items = hl_lh_hh.items;\n let i, j, k, l, u, v;\n\n // Interleave LL according to Section F.3.3\n for (k = 0, i = 0; i < llHeight; i++) {\n l = i * 2 * width;\n for (j = 0; j < llWidth; j++, k++, l += 2) {\n items[l] = llItems[k];\n }\n }\n // The LL band is not needed anymore.\n llItems = ll.items = null;\n\n const bufferPadding = 4;\n const rowBuffer = new Float32Array(width + 2 * bufferPadding);\n\n // Section F.3.4 HOR_SR\n if (width === 1) {\n // if width = 1, when u0 even keep items as is, when odd divide by 2\n if ((u0 & 1) !== 0) {\n for (v = 0, k = 0; v < height; v++, k += width) {\n items[k] *= 0.5;\n }\n }\n } else {\n for (v = 0, k = 0; v < height; v++, k += width) {\n rowBuffer.set(items.subarray(k, k + width), bufferPadding);\n\n this.extend(rowBuffer, bufferPadding, width);\n this.filter(rowBuffer, bufferPadding, width);\n\n items.set(rowBuffer.subarray(bufferPadding, bufferPadding + width), k);\n }\n }\n\n // Accesses to the items array can take long, because it may not fit into\n // CPU cache and has to be fetched from main memory. Since subsequent\n // accesses to the items array are not local when reading columns, we\n // have a cache miss every time. To reduce cache misses, get up to\n // 'numBuffers' items at a time and store them into the individual\n // buffers. The colBuffers should be small enough to fit into CPU cache.\n let numBuffers = 16;\n const colBuffers = [];\n for (i = 0; i < numBuffers; i++) {\n colBuffers.push(new Float32Array(height + 2 * bufferPadding));\n }\n let b,\n currentBuffer = 0;\n ll = bufferPadding + height;\n\n // Section F.3.5 VER_SR\n if (height === 1) {\n // if height = 1, when v0 even keep items as is, when odd divide by 2\n if ((v0 & 1) !== 0) {\n for (u = 0; u < width; u++) {\n items[u] *= 0.5;\n }\n }\n } else {\n for (u = 0; u < width; u++) {\n // if we ran out of buffers, copy several image columns at once\n if (currentBuffer === 0) {\n numBuffers = Math.min(width - u, numBuffers);\n for (k = u, l = bufferPadding; l < ll; k += width, l++) {\n for (b = 0; b < numBuffers; b++) {\n colBuffers[b][l] = items[k + b];\n }\n }\n currentBuffer = numBuffers;\n }\n\n currentBuffer--;\n const buffer = colBuffers[currentBuffer];\n this.extend(buffer, bufferPadding, height);\n this.filter(buffer, bufferPadding, height);\n\n // If this is last buffer in this group of buffers, flush all buffers.\n if (currentBuffer === 0) {\n k = u - numBuffers + 1;\n for (l = bufferPadding; l < ll; k += width, l++) {\n for (b = 0; b < numBuffers; b++) {\n items[k + b] = colBuffers[b][l];\n }\n }\n }\n }\n }\n\n return { width, height, items };\n }\n}\n\n// Section 3.8.2 Irreversible 9-7 filter\nclass IrreversibleTransform extends Transform {\n filter(x, offset, length) {\n const len = length >> 1;\n offset |= 0;\n let j, n, current, next;\n\n const alpha = -1.586134342059924;\n const beta = -0.052980118572961;\n const gamma = 0.882911075530934;\n const delta = 0.443506852043971;\n const K = 1.230174104914001;\n const K_ = 1 / K;\n\n // step 1 is combined with step 3\n\n // step 2\n j = offset - 3;\n for (n = len + 4; n--; j += 2) {\n x[j] *= K_;\n }\n\n // step 1 & 3\n j = offset - 2;\n current = delta * x[j - 1];\n for (n = len + 3; n--; j += 2) {\n next = delta * x[j + 1];\n x[j] = K * x[j] - current - next;\n if (n--) {\n j += 2;\n current = delta * x[j + 1];\n x[j] = K * x[j] - current - next;\n } else {\n break;\n }\n }\n\n // step 4\n j = offset - 1;\n current = gamma * x[j - 1];\n for (n = len + 2; n--; j += 2) {\n next = gamma * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = gamma * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n\n // step 5\n j = offset;\n current = beta * x[j - 1];\n for (n = len + 1; n--; j += 2) {\n next = beta * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = beta * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n\n // step 6\n if (len !== 0) {\n j = offset + 1;\n current = alpha * x[j - 1];\n for (n = len; n--; j += 2) {\n next = alpha * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = alpha * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n }\n }\n}\n\n// Section 3.8.1 Reversible 5-3 filter\nclass ReversibleTransform extends Transform {\n filter(x, offset, length) {\n const len = length >> 1;\n offset |= 0;\n let j, n;\n\n for (j = offset, n = len + 1; n--; j += 2) {\n x[j] -= (x[j - 1] + x[j + 1] + 2) >> 2;\n }\n\n for (j = offset + 1, n = len; n--; j += 2) {\n x[j] += (x[j - 1] + x[j + 1]) >> 1;\n }\n }\n}\n\nexport { JpxImage };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\n\nclass LZWStream extends DecodeStream {\n constructor(str, maybeLength, earlyChange) {\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n this.cachedData = 0;\n this.bitsCached = 0;\n\n const maxLzwDictionarySize = 4096;\n const lzwState = {\n earlyChange,\n codeLength: 9,\n nextCode: 258,\n dictionaryValues: new Uint8Array(maxLzwDictionarySize),\n dictionaryLengths: new Uint16Array(maxLzwDictionarySize),\n dictionaryPrevCodes: new Uint16Array(maxLzwDictionarySize),\n currentSequence: new Uint8Array(maxLzwDictionarySize),\n currentSequenceLength: 0,\n };\n for (let i = 0; i < 256; ++i) {\n lzwState.dictionaryValues[i] = i;\n lzwState.dictionaryLengths[i] = 1;\n }\n this.lzwState = lzwState;\n }\n\n readBits(n) {\n let bitsCached = this.bitsCached;\n let cachedData = this.cachedData;\n while (bitsCached < n) {\n const c = this.str.getByte();\n if (c === -1) {\n this.eof = true;\n return null;\n }\n cachedData = (cachedData << 8) | c;\n bitsCached += 8;\n }\n this.bitsCached = bitsCached -= n;\n this.cachedData = cachedData;\n this.lastCode = null;\n return (cachedData >>> bitsCached) & ((1 << n) - 1);\n }\n\n readBlock() {\n const blockSize = 512,\n decodedSizeDelta = blockSize;\n let estimatedDecodedSize = blockSize * 2;\n let i, j, q;\n\n const lzwState = this.lzwState;\n if (!lzwState) {\n return; // eof was found\n }\n\n const earlyChange = lzwState.earlyChange;\n let nextCode = lzwState.nextCode;\n const dictionaryValues = lzwState.dictionaryValues;\n const dictionaryLengths = lzwState.dictionaryLengths;\n const dictionaryPrevCodes = lzwState.dictionaryPrevCodes;\n let codeLength = lzwState.codeLength;\n let prevCode = lzwState.prevCode;\n const currentSequence = lzwState.currentSequence;\n let currentSequenceLength = lzwState.currentSequenceLength;\n\n let decodedLength = 0;\n let currentBufferLength = this.bufferLength;\n let buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n\n for (i = 0; i < blockSize; i++) {\n const code = this.readBits(codeLength);\n const hasPrev = currentSequenceLength > 0;\n if (code < 256) {\n currentSequence[0] = code;\n currentSequenceLength = 1;\n } else if (code >= 258) {\n if (code < nextCode) {\n currentSequenceLength = dictionaryLengths[code];\n for (j = currentSequenceLength - 1, q = code; j >= 0; j--) {\n currentSequence[j] = dictionaryValues[q];\n q = dictionaryPrevCodes[q];\n }\n } else {\n currentSequence[currentSequenceLength++] = currentSequence[0];\n }\n } else if (code === 256) {\n codeLength = 9;\n nextCode = 258;\n currentSequenceLength = 0;\n continue;\n } else {\n this.eof = true;\n delete this.lzwState;\n break;\n }\n\n if (hasPrev) {\n dictionaryPrevCodes[nextCode] = prevCode;\n dictionaryLengths[nextCode] = dictionaryLengths[prevCode] + 1;\n dictionaryValues[nextCode] = currentSequence[0];\n nextCode++;\n codeLength =\n (nextCode + earlyChange) & (nextCode + earlyChange - 1)\n ? codeLength\n : Math.min(\n Math.log(nextCode + earlyChange) / 0.6931471805599453 + 1,\n 12\n ) | 0;\n }\n prevCode = code;\n\n decodedLength += currentSequenceLength;\n if (estimatedDecodedSize < decodedLength) {\n do {\n estimatedDecodedSize += decodedSizeDelta;\n } while (estimatedDecodedSize < decodedLength);\n buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n }\n for (j = 0; j < currentSequenceLength; j++) {\n buffer[currentBufferLength++] = currentSequence[j];\n }\n }\n lzwState.nextCode = nextCode;\n lzwState.codeLength = codeLength;\n lzwState.prevCode = prevCode;\n lzwState.currentSequenceLength = currentSequenceLength;\n\n this.bufferLength = currentBufferLength;\n }\n}\n\nexport { LZWStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { Dict } from \"./primitives.js\";\nimport { FormatError } from \"../shared/util.js\";\n\nclass PredictorStream extends DecodeStream {\n constructor(str, maybeLength, params) {\n super(maybeLength);\n\n if (!(params instanceof Dict)) {\n return str; // no prediction\n }\n const predictor = (this.predictor = params.get(\"Predictor\") || 1);\n\n if (predictor <= 1) {\n return str; // no prediction\n }\n if (predictor !== 2 && (predictor < 10 || predictor > 15)) {\n throw new FormatError(`Unsupported predictor: ${predictor}`);\n }\n\n if (predictor === 2) {\n this.readBlock = this.readBlockTiff;\n } else {\n this.readBlock = this.readBlockPng;\n }\n\n this.str = str;\n this.dict = str.dict;\n\n const colors = (this.colors = params.get(\"Colors\") || 1);\n const bits = (this.bits = params.get(\"BPC\", \"BitsPerComponent\") || 8);\n const columns = (this.columns = params.get(\"Columns\") || 1);\n\n this.pixBytes = (colors * bits + 7) >> 3;\n this.rowBytes = (columns * colors * bits + 7) >> 3;\n\n return this;\n }\n\n readBlockTiff() {\n const rowBytes = this.rowBytes;\n\n const bufferLength = this.bufferLength;\n const buffer = this.ensureBuffer(bufferLength + rowBytes);\n\n const bits = this.bits;\n const colors = this.colors;\n\n const rawBytes = this.str.getBytes(rowBytes);\n this.eof = !rawBytes.length;\n if (this.eof) {\n return;\n }\n\n let inbuf = 0,\n outbuf = 0;\n let inbits = 0,\n outbits = 0;\n let pos = bufferLength;\n let i;\n\n if (bits === 1 && colors === 1) {\n // Optimized version of the loop in the \"else\"-branch\n // for 1 bit-per-component and 1 color TIFF images.\n for (i = 0; i < rowBytes; ++i) {\n let c = rawBytes[i] ^ inbuf;\n c ^= c >> 1;\n c ^= c >> 2;\n c ^= c >> 4;\n inbuf = (c & 1) << 7;\n buffer[pos++] = c;\n }\n } else if (bits === 8) {\n for (i = 0; i < colors; ++i) {\n buffer[pos++] = rawBytes[i];\n }\n for (; i < rowBytes; ++i) {\n buffer[pos] = buffer[pos - colors] + rawBytes[i];\n pos++;\n }\n } else if (bits === 16) {\n const bytesPerPixel = colors * 2;\n for (i = 0; i < bytesPerPixel; ++i) {\n buffer[pos++] = rawBytes[i];\n }\n for (; i < rowBytes; i += 2) {\n const sum =\n ((rawBytes[i] & 0xff) << 8) +\n (rawBytes[i + 1] & 0xff) +\n ((buffer[pos - bytesPerPixel] & 0xff) << 8) +\n (buffer[pos - bytesPerPixel + 1] & 0xff);\n buffer[pos++] = (sum >> 8) & 0xff;\n buffer[pos++] = sum & 0xff;\n }\n } else {\n const compArray = new Uint8Array(colors + 1);\n const bitMask = (1 << bits) - 1;\n let j = 0,\n k = bufferLength;\n const columns = this.columns;\n for (i = 0; i < columns; ++i) {\n for (let kk = 0; kk < colors; ++kk) {\n if (inbits < bits) {\n inbuf = (inbuf << 8) | (rawBytes[j++] & 0xff);\n inbits += 8;\n }\n compArray[kk] =\n (compArray[kk] + (inbuf >> (inbits - bits))) & bitMask;\n inbits -= bits;\n outbuf = (outbuf << bits) | compArray[kk];\n outbits += bits;\n if (outbits >= 8) {\n buffer[k++] = (outbuf >> (outbits - 8)) & 0xff;\n outbits -= 8;\n }\n }\n }\n if (outbits > 0) {\n buffer[k++] =\n (outbuf << (8 - outbits)) + (inbuf & ((1 << (8 - outbits)) - 1));\n }\n }\n this.bufferLength += rowBytes;\n }\n\n readBlockPng() {\n const rowBytes = this.rowBytes;\n const pixBytes = this.pixBytes;\n\n const predictor = this.str.getByte();\n const rawBytes = this.str.getBytes(rowBytes);\n this.eof = !rawBytes.length;\n if (this.eof) {\n return;\n }\n\n const bufferLength = this.bufferLength;\n const buffer = this.ensureBuffer(bufferLength + rowBytes);\n\n let prevRow = buffer.subarray(bufferLength - rowBytes, bufferLength);\n if (prevRow.length === 0) {\n prevRow = new Uint8Array(rowBytes);\n }\n\n let i,\n j = bufferLength,\n up,\n c;\n switch (predictor) {\n case 0:\n for (i = 0; i < rowBytes; ++i) {\n buffer[j++] = rawBytes[i];\n }\n break;\n case 1:\n for (i = 0; i < pixBytes; ++i) {\n buffer[j++] = rawBytes[i];\n }\n for (; i < rowBytes; ++i) {\n buffer[j] = (buffer[j - pixBytes] + rawBytes[i]) & 0xff;\n j++;\n }\n break;\n case 2:\n for (i = 0; i < rowBytes; ++i) {\n buffer[j++] = (prevRow[i] + rawBytes[i]) & 0xff;\n }\n break;\n case 3:\n for (i = 0; i < pixBytes; ++i) {\n buffer[j++] = (prevRow[i] >> 1) + rawBytes[i];\n }\n for (; i < rowBytes; ++i) {\n buffer[j] =\n (((prevRow[i] + buffer[j - pixBytes]) >> 1) + rawBytes[i]) & 0xff;\n j++;\n }\n break;\n case 4:\n // we need to save the up left pixels values. the simplest way\n // is to create a new buffer\n for (i = 0; i < pixBytes; ++i) {\n up = prevRow[i];\n c = rawBytes[i];\n buffer[j++] = up + c;\n }\n for (; i < rowBytes; ++i) {\n up = prevRow[i];\n const upLeft = prevRow[i - pixBytes];\n const left = buffer[j - pixBytes];\n const p = left + up - upLeft;\n\n let pa = p - left;\n if (pa < 0) {\n pa = -pa;\n }\n let pb = p - up;\n if (pb < 0) {\n pb = -pb;\n }\n let pc = p - upLeft;\n if (pc < 0) {\n pc = -pc;\n }\n\n c = rawBytes[i];\n if (pa <= pb && pa <= pc) {\n buffer[j++] = left + c;\n } else if (pb <= pc) {\n buffer[j++] = up + c;\n } else {\n buffer[j++] = upLeft + c;\n }\n }\n break;\n default:\n throw new FormatError(`Unsupported predictor: ${predictor}`);\n }\n this.bufferLength += rowBytes;\n }\n}\n\nexport { PredictorStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\n\nclass RunLengthStream extends DecodeStream {\n constructor(str, maybeLength) {\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n }\n\n readBlock() {\n // The repeatHeader has following format. The first byte defines type of run\n // and amount of bytes to repeat/copy: n = 0 through 127 - copy next n bytes\n // (in addition to the second byte from the header), n = 129 through 255 -\n // duplicate the second byte from the header (257 - n) times, n = 128 - end.\n const repeatHeader = this.str.getBytes(2);\n if (!repeatHeader || repeatHeader.length < 2 || repeatHeader[0] === 128) {\n this.eof = true;\n return;\n }\n\n let buffer;\n let bufferLength = this.bufferLength;\n let n = repeatHeader[0];\n if (n < 128) {\n // copy n bytes\n buffer = this.ensureBuffer(bufferLength + n + 1);\n buffer[bufferLength++] = repeatHeader[1];\n if (n > 0) {\n const source = this.str.getBytes(n);\n buffer.set(source, bufferLength);\n bufferLength += n;\n }\n } else {\n n = 257 - n;\n const b = repeatHeader[1];\n buffer = this.ensureBuffer(bufferLength + n + 1);\n for (let i = 0; i < n; i++) {\n buffer[bufferLength++] = b;\n }\n }\n this.bufferLength = bufferLength;\n }\n}\n\nexport { RunLengthStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n bytesToString,\n FONT_IDENTITY_MATRIX,\n FontType,\n FormatError,\n info,\n shadow,\n string32,\n warn,\n} from \"../shared/util.js\";\nimport { CFFCompiler, CFFParser } from \"./cff_parser.js\";\nimport {\n FontFlags,\n getFontType,\n MacStandardGlyphOrdering,\n normalizeFontName,\n recoverGlyphName,\n SEAC_ANALYSIS_ENABLED,\n} from \"./fonts_utils.js\";\nimport {\n getCharUnicodeCategory,\n getUnicodeForGlyph,\n getUnicodeRangeFor,\n mapSpecialUnicodeValues,\n} from \"./unicode.js\";\nimport { getDingbatsGlyphsUnicode, getGlyphsUnicode } from \"./glyphlist.js\";\nimport {\n getEncoding,\n MacRomanEncoding,\n StandardEncoding,\n SymbolSetEncoding,\n ZapfDingbatsEncoding,\n} from \"./encodings.js\";\nimport {\n getGlyphMapForStandardFonts,\n getNonStdFontMap,\n getSerifFonts,\n getStdFontMap,\n getSupplementalGlyphMapForArialBlack,\n getSupplementalGlyphMapForCalibri,\n} from \"./standard_fonts.js\";\nimport { IdentityToUnicodeMap, ToUnicodeMap } from \"./to_unicode_map.js\";\nimport { CFFFont } from \"./cff_font.js\";\nimport { FontRendererFactory } from \"./font_renderer.js\";\nimport { getFontBasicMetrics } from \"./metrics.js\";\nimport { GlyfTable } from \"./glyf.js\";\nimport { IdentityCMap } from \"./cmap.js\";\nimport { OpenTypeFileBuilder } from \"./opentype_file_builder.js\";\nimport { readUint32 } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\nimport { Type1Font } from \"./type1_font.js\";\n\n// Unicode Private Use Areas:\nconst PRIVATE_USE_AREAS = [\n [0xe000, 0xf8ff], // BMP (0)\n [0x100000, 0x10fffd], // PUP (16)\n];\n\n// PDF Glyph Space Units are one Thousandth of a TextSpace Unit\n// except for Type 3 fonts\nconst PDF_GLYPH_SPACE_UNITS = 1000;\n\nconst EXPORT_DATA_PROPERTIES = [\n \"ascent\",\n \"bbox\",\n \"black\",\n \"bold\",\n \"charProcOperatorList\",\n \"composite\",\n \"cssFontInfo\",\n \"data\",\n \"defaultVMetrics\",\n \"defaultWidth\",\n \"descent\",\n \"fallbackName\",\n \"fontMatrix\",\n \"fontType\",\n \"isType3Font\",\n \"italic\",\n \"loadedName\",\n \"mimetype\",\n \"missingFile\",\n \"name\",\n \"remeasure\",\n \"subtype\",\n \"type\",\n \"vertical\",\n];\n\nconst EXPORT_DATA_EXTRA_PROPERTIES = [\n \"cMap\",\n \"defaultEncoding\",\n \"differences\",\n \"isMonospace\",\n \"isSerifFont\",\n \"isSymbolicFont\",\n \"seacMap\",\n \"toFontChar\",\n \"toUnicode\",\n \"vmetrics\",\n \"widths\",\n];\n\nfunction adjustWidths(properties) {\n if (!properties.fontMatrix) {\n return;\n }\n if (properties.fontMatrix[0] === FONT_IDENTITY_MATRIX[0]) {\n return;\n }\n // adjusting width to fontMatrix scale\n const scale = 0.001 / properties.fontMatrix[0];\n const glyphsWidths = properties.widths;\n for (const glyph in glyphsWidths) {\n glyphsWidths[glyph] *= scale;\n }\n properties.defaultWidth *= scale;\n}\n\nfunction adjustToUnicode(properties, builtInEncoding) {\n if (properties.isInternalFont) {\n return;\n }\n if (builtInEncoding === properties.defaultEncoding) {\n return; // No point in trying to adjust `toUnicode` if the encodings match.\n }\n if (properties.toUnicode instanceof IdentityToUnicodeMap) {\n return;\n }\n const toUnicode = [],\n glyphsUnicodeMap = getGlyphsUnicode();\n for (const charCode in builtInEncoding) {\n if (properties.hasIncludedToUnicodeMap) {\n if (properties.toUnicode.has(charCode)) {\n continue; // The font dictionary has a `ToUnicode` entry.\n }\n } else if (properties.hasEncoding) {\n if (\n properties.differences.length === 0 ||\n properties.differences[charCode] !== undefined\n ) {\n continue; // The font dictionary has an `Encoding`/`Differences` entry.\n }\n }\n const glyphName = builtInEncoding[charCode];\n const unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap);\n if (unicode !== -1) {\n toUnicode[charCode] = String.fromCharCode(unicode);\n }\n }\n if (toUnicode.length > 0) {\n properties.toUnicode.amend(toUnicode);\n }\n}\n\n/**\n * NOTE: This function should only be called at the *end* of font-parsing,\n * after e.g. `adjustToUnicode` has run, to prevent any issues.\n */\nfunction amendFallbackToUnicode(properties) {\n if (!properties.fallbackToUnicode) {\n return;\n }\n if (properties.toUnicode instanceof IdentityToUnicodeMap) {\n return;\n }\n const toUnicode = [];\n for (const charCode in properties.fallbackToUnicode) {\n if (properties.toUnicode.has(charCode)) {\n continue; // The font dictionary has a `ToUnicode` entry.\n }\n toUnicode[charCode] = properties.fallbackToUnicode[charCode];\n }\n if (toUnicode.length > 0) {\n properties.toUnicode.amend(toUnicode);\n }\n}\n\nclass Glyph {\n constructor(\n originalCharCode,\n fontChar,\n unicode,\n accent,\n width,\n vmetric,\n operatorListId,\n isSpace,\n isInFont\n ) {\n this.originalCharCode = originalCharCode;\n this.fontChar = fontChar;\n this.unicode = unicode;\n this.accent = accent;\n this.width = width;\n this.vmetric = vmetric;\n this.operatorListId = operatorListId;\n this.isSpace = isSpace;\n this.isInFont = isInFont;\n\n const category = getCharUnicodeCategory(unicode);\n this.isWhitespace = category.isWhitespace;\n this.isZeroWidthDiacritic = category.isZeroWidthDiacritic;\n this.isInvisibleFormatMark = category.isInvisibleFormatMark;\n }\n\n matchesForCache(\n originalCharCode,\n fontChar,\n unicode,\n accent,\n width,\n vmetric,\n operatorListId,\n isSpace,\n isInFont\n ) {\n return (\n this.originalCharCode === originalCharCode &&\n this.fontChar === fontChar &&\n this.unicode === unicode &&\n this.accent === accent &&\n this.width === width &&\n this.vmetric === vmetric &&\n this.operatorListId === operatorListId &&\n this.isSpace === isSpace &&\n this.isInFont === isInFont\n );\n }\n}\n\nfunction int16(b0, b1) {\n return (b0 << 8) + b1;\n}\n\nfunction writeSignedInt16(bytes, index, value) {\n bytes[index + 1] = value;\n bytes[index] = value >>> 8;\n}\n\nfunction signedInt16(b0, b1) {\n const value = (b0 << 8) + b1;\n return value & (1 << 15) ? value - 0x10000 : value;\n}\n\nfunction int32(b0, b1, b2, b3) {\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n}\n\nfunction string16(value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n typeof value === \"number\" && Math.abs(value) < 2 ** 16,\n `string16: Unexpected input \"${value}\".`\n );\n }\n return String.fromCharCode((value >> 8) & 0xff, value & 0xff);\n}\n\nfunction safeString16(value) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n typeof value === \"number\" && !Number.isNaN(value),\n `safeString16: Unexpected input \"${value}\".`\n );\n }\n // clamp value to the 16-bit int range\n if (value > 0x7fff) {\n value = 0x7fff;\n } else if (value < -0x8000) {\n value = -0x8000;\n }\n return String.fromCharCode((value >> 8) & 0xff, value & 0xff);\n}\n\nfunction isTrueTypeFile(file) {\n const header = file.peekBytes(4);\n return (\n readUint32(header, 0) === 0x00010000 || bytesToString(header) === \"true\"\n );\n}\n\nfunction isTrueTypeCollectionFile(file) {\n const header = file.peekBytes(4);\n return bytesToString(header) === \"ttcf\";\n}\n\nfunction isOpenTypeFile(file) {\n const header = file.peekBytes(4);\n return bytesToString(header) === \"OTTO\";\n}\n\nfunction isType1File(file) {\n const header = file.peekBytes(2);\n // All Type1 font programs must begin with the comment '%!' (0x25 + 0x21).\n if (header[0] === 0x25 && header[1] === 0x21) {\n return true;\n }\n // ... obviously some fonts violate that part of the specification,\n // please refer to the comment in |Type1Font| below (pfb file header).\n if (header[0] === 0x80 && header[1] === 0x01) {\n return true;\n }\n return false;\n}\n\n/**\n * Compared to other font formats, the header in CFF files is not constant\n * but contains version numbers. To reduce the possibility of misclassifying\n * font files as CFF, it's recommended to check for other font formats first.\n */\nfunction isCFFFile(file) {\n const header = file.peekBytes(4);\n if (\n /* major version, [1, 255] */ header[0] >= 1 &&\n /* minor version, [0, 255]; header[1] */\n /* header size, [0, 255]; header[2] */\n /* offset(0) size, [1, 4] */ header[3] >= 1 &&\n header[3] <= 4\n ) {\n return true;\n }\n return false;\n}\n\nfunction getFontFileType(file, { type, subtype, composite }) {\n let fileType, fileSubtype;\n\n if (isTrueTypeFile(file) || isTrueTypeCollectionFile(file)) {\n if (composite) {\n fileType = \"CIDFontType2\";\n } else {\n fileType = \"TrueType\";\n }\n } else if (isOpenTypeFile(file)) {\n if (composite) {\n fileType = \"CIDFontType2\";\n } else {\n fileType = \"OpenType\";\n }\n } else if (isType1File(file)) {\n if (composite) {\n fileType = \"CIDFontType0\";\n } else {\n fileType = type === \"MMType1\" ? \"MMType1\" : \"Type1\";\n }\n } else if (isCFFFile(file)) {\n if (composite) {\n fileType = \"CIDFontType0\";\n fileSubtype = \"CIDFontType0C\";\n } else {\n fileType = type === \"MMType1\" ? \"MMType1\" : \"Type1\";\n fileSubtype = \"Type1C\";\n }\n } else {\n warn(\"getFontFileType: Unable to detect correct font file Type/Subtype.\");\n fileType = type;\n fileSubtype = subtype;\n }\n\n return [fileType, fileSubtype];\n}\n\nfunction applyStandardFontGlyphMap(map, glyphMap) {\n for (const charCode in glyphMap) {\n map[+charCode] = glyphMap[charCode];\n }\n}\n\nfunction buildToFontChar(encoding, glyphsUnicodeMap, differences) {\n const toFontChar = [];\n let unicode;\n for (let i = 0, ii = encoding.length; i < ii; i++) {\n unicode = getUnicodeForGlyph(encoding[i], glyphsUnicodeMap);\n if (unicode !== -1) {\n toFontChar[i] = unicode;\n }\n }\n for (const charCode in differences) {\n unicode = getUnicodeForGlyph(differences[charCode], glyphsUnicodeMap);\n if (unicode !== -1) {\n toFontChar[+charCode] = unicode;\n }\n }\n return toFontChar;\n}\n\nfunction convertCidString(charCode, cid, shouldThrow = false) {\n switch (cid.length) {\n case 1:\n return cid.charCodeAt(0);\n case 2:\n return (cid.charCodeAt(0) << 8) | cid.charCodeAt(1);\n }\n const msg = `Unsupported CID string (charCode ${charCode}): \"${cid}\".`;\n if (shouldThrow) {\n throw new FormatError(msg);\n }\n warn(msg);\n return cid;\n}\n\n/**\n * Rebuilds the char code to glyph ID map by moving all char codes to the\n * private use area. This is done to avoid issues with various problematic\n * unicode areas where either a glyph won't be drawn or is deformed by a\n * shaper.\n * @returns {Object} Two properties:\n * 'toFontChar' - maps original char codes(the value that will be read\n * from commands such as show text) to the char codes that will be used in the\n * font that we build\n * 'charCodeToGlyphId' - maps the new font char codes to glyph ids\n */\nfunction adjustMapping(charCodeToGlyphId, hasGlyph, newGlyphZeroId) {\n const newMap = Object.create(null);\n const toFontChar = [];\n let privateUseAreaIndex = 0;\n let nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n let privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n for (let originalCharCode in charCodeToGlyphId) {\n originalCharCode |= 0;\n let glyphId = charCodeToGlyphId[originalCharCode];\n // For missing glyphs don't create the mappings so the glyph isn't\n // drawn.\n if (!hasGlyph(glyphId)) {\n continue;\n }\n if (nextAvailableFontCharCode > privateUseOffetEnd) {\n privateUseAreaIndex++;\n if (privateUseAreaIndex >= PRIVATE_USE_AREAS.length) {\n warn(\"Ran out of space in font private use area.\");\n break;\n }\n nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n }\n const fontCharCode = nextAvailableFontCharCode++;\n if (glyphId === 0) {\n glyphId = newGlyphZeroId;\n }\n\n newMap[fontCharCode] = glyphId;\n toFontChar[originalCharCode] = fontCharCode;\n }\n return {\n toFontChar,\n charCodeToGlyphId: newMap,\n nextAvailableFontCharCode,\n };\n}\n\nfunction getRanges(glyphs, numGlyphs) {\n // Array.sort() sorts by characters, not numerically, so convert to an\n // array of characters.\n const codes = [];\n for (const charCode in glyphs) {\n // Remove an invalid glyph ID mappings to make OTS happy.\n if (glyphs[charCode] >= numGlyphs) {\n continue;\n }\n codes.push({ fontCharCode: charCode | 0, glyphId: glyphs[charCode] });\n }\n // Some fonts have zero glyphs and are used only for text selection, but\n // there needs to be at least one to build a valid cmap table.\n if (codes.length === 0) {\n codes.push({ fontCharCode: 0, glyphId: 0 });\n }\n codes.sort(function fontGetRangesSort(a, b) {\n return a.fontCharCode - b.fontCharCode;\n });\n\n // Split the sorted codes into ranges.\n const ranges = [];\n const length = codes.length;\n for (let n = 0; n < length; ) {\n const start = codes[n].fontCharCode;\n const codeIndices = [codes[n].glyphId];\n ++n;\n let end = start;\n while (n < length && end + 1 === codes[n].fontCharCode) {\n codeIndices.push(codes[n].glyphId);\n ++end;\n ++n;\n if (end === 0xffff) {\n break;\n }\n }\n ranges.push([start, end, codeIndices]);\n }\n\n return ranges;\n}\n\nfunction createCmapTable(glyphs, numGlyphs) {\n const ranges = getRanges(glyphs, numGlyphs);\n const numTables = ranges[ranges.length - 1][1] > 0xffff ? 2 : 1;\n let cmap =\n \"\\x00\\x00\" + // version\n string16(numTables) + // numTables\n \"\\x00\\x03\" + // platformID\n \"\\x00\\x01\" + // encodingID\n string32(4 + numTables * 8); // start of the table record\n\n let i, ii, j, jj;\n for (i = ranges.length - 1; i >= 0; --i) {\n if (ranges[i][0] <= 0xffff) {\n break;\n }\n }\n const bmpLength = i + 1;\n\n if (ranges[i][0] < 0xffff && ranges[i][1] === 0xffff) {\n ranges[i][1] = 0xfffe;\n }\n const trailingRangesCount = ranges[i][1] < 0xffff ? 1 : 0;\n const segCount = bmpLength + trailingRangesCount;\n const searchParams = OpenTypeFileBuilder.getSearchParams(segCount, 2);\n\n // Fill up the 4 parallel arrays describing the segments.\n let startCount = \"\";\n let endCount = \"\";\n let idDeltas = \"\";\n let idRangeOffsets = \"\";\n let glyphsIds = \"\";\n let bias = 0;\n\n let range, start, end, codes;\n for (i = 0, ii = bmpLength; i < ii; i++) {\n range = ranges[i];\n start = range[0];\n end = range[1];\n startCount += string16(start);\n endCount += string16(end);\n codes = range[2];\n let contiguous = true;\n for (j = 1, jj = codes.length; j < jj; ++j) {\n if (codes[j] !== codes[j - 1] + 1) {\n contiguous = false;\n break;\n }\n }\n if (!contiguous) {\n const offset = (segCount - i) * 2 + bias * 2;\n bias += end - start + 1;\n\n idDeltas += string16(0);\n idRangeOffsets += string16(offset);\n\n for (j = 0, jj = codes.length; j < jj; ++j) {\n glyphsIds += string16(codes[j]);\n }\n } else {\n const startCode = codes[0];\n\n idDeltas += string16((startCode - start) & 0xffff);\n idRangeOffsets += string16(0);\n }\n }\n\n if (trailingRangesCount > 0) {\n endCount += \"\\xFF\\xFF\";\n startCount += \"\\xFF\\xFF\";\n idDeltas += \"\\x00\\x01\";\n idRangeOffsets += \"\\x00\\x00\";\n }\n\n const format314 =\n \"\\x00\\x00\" + // language\n string16(2 * segCount) +\n string16(searchParams.range) +\n string16(searchParams.entry) +\n string16(searchParams.rangeShift) +\n endCount +\n \"\\x00\\x00\" +\n startCount +\n idDeltas +\n idRangeOffsets +\n glyphsIds;\n\n let format31012 = \"\";\n let header31012 = \"\";\n if (numTables > 1) {\n cmap +=\n \"\\x00\\x03\" + // platformID\n \"\\x00\\x0A\" + // encodingID\n string32(4 + numTables * 8 + 4 + format314.length); // start of the table record\n format31012 = \"\";\n for (i = 0, ii = ranges.length; i < ii; i++) {\n range = ranges[i];\n start = range[0];\n codes = range[2];\n let code = codes[0];\n for (j = 1, jj = codes.length; j < jj; ++j) {\n if (codes[j] !== codes[j - 1] + 1) {\n end = range[0] + j - 1;\n format31012 +=\n string32(start) + // startCharCode\n string32(end) + // endCharCode\n string32(code); // startGlyphID\n start = end + 1;\n code = codes[j];\n }\n }\n format31012 +=\n string32(start) + // startCharCode\n string32(range[1]) + // endCharCode\n string32(code); // startGlyphID\n }\n header31012 =\n \"\\x00\\x0C\" + // format\n \"\\x00\\x00\" + // reserved\n string32(format31012.length + 16) + // length\n \"\\x00\\x00\\x00\\x00\" + // language\n string32(format31012.length / 12); // nGroups\n }\n\n return (\n cmap +\n \"\\x00\\x04\" + // format\n string16(format314.length + 4) + // length\n format314 +\n header31012 +\n format31012\n );\n}\n\nfunction validateOS2Table(os2, file) {\n file.pos = (file.start || 0) + os2.offset;\n const version = file.getUint16();\n // TODO verify all OS/2 tables fields, but currently we validate only those\n // that give us issues\n file.skip(60); // skipping type, misc sizes, panose, unicode ranges\n const selection = file.getUint16();\n if (version < 4 && selection & 0x0300) {\n return false;\n }\n const firstChar = file.getUint16();\n const lastChar = file.getUint16();\n if (firstChar > lastChar) {\n return false;\n }\n file.skip(6); // skipping sTypoAscender/Descender/LineGap\n const usWinAscent = file.getUint16();\n if (usWinAscent === 0) {\n // makes font unreadable by windows\n return false;\n }\n\n // OS/2 appears to be valid, resetting some fields\n os2.data[8] = os2.data[9] = 0; // IE rejects fonts if fsType != 0\n return true;\n}\n\nfunction createOS2Table(properties, charstrings, override) {\n override = override || {\n unitsPerEm: 0,\n yMax: 0,\n yMin: 0,\n ascent: 0,\n descent: 0,\n };\n\n let ulUnicodeRange1 = 0;\n let ulUnicodeRange2 = 0;\n let ulUnicodeRange3 = 0;\n let ulUnicodeRange4 = 0;\n\n let firstCharIndex = null;\n let lastCharIndex = 0;\n\n if (charstrings) {\n for (let code in charstrings) {\n code |= 0;\n if (firstCharIndex > code || !firstCharIndex) {\n firstCharIndex = code;\n }\n if (lastCharIndex < code) {\n lastCharIndex = code;\n }\n\n const position = getUnicodeRangeFor(code);\n if (position < 32) {\n ulUnicodeRange1 |= 1 << position;\n } else if (position < 64) {\n ulUnicodeRange2 |= 1 << (position - 32);\n } else if (position < 96) {\n ulUnicodeRange3 |= 1 << (position - 64);\n } else if (position < 123) {\n ulUnicodeRange4 |= 1 << (position - 96);\n } else {\n throw new FormatError(\n \"Unicode ranges Bits > 123 are reserved for internal usage\"\n );\n }\n }\n if (lastCharIndex > 0xffff) {\n // OS2 only supports a 16 bit int. The spec says if supplementary\n // characters are used the field should just be set to 0xFFFF.\n lastCharIndex = 0xffff;\n }\n } else {\n // TODO\n firstCharIndex = 0;\n lastCharIndex = 255;\n }\n\n const bbox = properties.bbox || [0, 0, 0, 0];\n const unitsPerEm =\n override.unitsPerEm ||\n 1 / (properties.fontMatrix || FONT_IDENTITY_MATRIX)[0];\n\n // if the font units differ to the PDF glyph space units\n // then scale up the values\n const scale = properties.ascentScaled\n ? 1.0\n : unitsPerEm / PDF_GLYPH_SPACE_UNITS;\n\n const typoAscent =\n override.ascent || Math.round(scale * (properties.ascent || bbox[3]));\n let typoDescent =\n override.descent || Math.round(scale * (properties.descent || bbox[1]));\n if (typoDescent > 0 && properties.descent > 0 && bbox[1] < 0) {\n typoDescent = -typoDescent; // fixing incorrect descent\n }\n const winAscent = override.yMax || typoAscent;\n const winDescent = -override.yMin || -typoDescent;\n\n return (\n \"\\x00\\x03\" + // version\n \"\\x02\\x24\" + // xAvgCharWidth\n \"\\x01\\xF4\" + // usWeightClass\n \"\\x00\\x05\" + // usWidthClass\n \"\\x00\\x00\" + // fstype (0 to let the font loads via font-face on IE)\n \"\\x02\\x8A\" + // ySubscriptXSize\n \"\\x02\\xBB\" + // ySubscriptYSize\n \"\\x00\\x00\" + // ySubscriptXOffset\n \"\\x00\\x8C\" + // ySubscriptYOffset\n \"\\x02\\x8A\" + // ySuperScriptXSize\n \"\\x02\\xBB\" + // ySuperScriptYSize\n \"\\x00\\x00\" + // ySuperScriptXOffset\n \"\\x01\\xDF\" + // ySuperScriptYOffset\n \"\\x00\\x31\" + // yStrikeOutSize\n \"\\x01\\x02\" + // yStrikeOutPosition\n \"\\x00\\x00\" + // sFamilyClass\n \"\\x00\\x00\\x06\" +\n String.fromCharCode(properties.fixedPitch ? 0x09 : 0x00) +\n \"\\x00\\x00\\x00\\x00\\x00\\x00\" + // Panose\n string32(ulUnicodeRange1) + // ulUnicodeRange1 (Bits 0-31)\n string32(ulUnicodeRange2) + // ulUnicodeRange2 (Bits 32-63)\n string32(ulUnicodeRange3) + // ulUnicodeRange3 (Bits 64-95)\n string32(ulUnicodeRange4) + // ulUnicodeRange4 (Bits 96-127)\n \"\\x2A\\x32\\x31\\x2A\" + // achVendID\n string16(properties.italicAngle ? 1 : 0) + // fsSelection\n string16(firstCharIndex || properties.firstChar) + // usFirstCharIndex\n string16(lastCharIndex || properties.lastChar) + // usLastCharIndex\n string16(typoAscent) + // sTypoAscender\n string16(typoDescent) + // sTypoDescender\n \"\\x00\\x64\" + // sTypoLineGap (7%-10% of the unitsPerEM value)\n string16(winAscent) + // usWinAscent\n string16(winDescent) + // usWinDescent\n \"\\x00\\x00\\x00\\x00\" + // ulCodePageRange1 (Bits 0-31)\n \"\\x00\\x00\\x00\\x00\" + // ulCodePageRange2 (Bits 32-63)\n string16(properties.xHeight) + // sxHeight\n string16(properties.capHeight) + // sCapHeight\n string16(0) + // usDefaultChar\n string16(firstCharIndex || properties.firstChar) + // usBreakChar\n \"\\x00\\x03\"\n ); // usMaxContext\n}\n\nfunction createPostTable(properties) {\n const angle = Math.floor(properties.italicAngle * 2 ** 16);\n return (\n \"\\x00\\x03\\x00\\x00\" + // Version number\n string32(angle) + // italicAngle\n \"\\x00\\x00\" + // underlinePosition\n \"\\x00\\x00\" + // underlineThickness\n string32(properties.fixedPitch ? 1 : 0) + // isFixedPitch\n \"\\x00\\x00\\x00\\x00\" + // minMemType42\n \"\\x00\\x00\\x00\\x00\" + // maxMemType42\n \"\\x00\\x00\\x00\\x00\" + // minMemType1\n \"\\x00\\x00\\x00\\x00\"\n ); // maxMemType1\n}\n\nfunction createPostscriptName(name) {\n // See https://docs.microsoft.com/en-us/typography/opentype/spec/recom#name.\n return name.replace(/[^\\x21-\\x7E]|[[\\](){}<>/%]/g, \"\").slice(0, 63);\n}\n\nfunction createNameTable(name, proto) {\n if (!proto) {\n proto = [[], []]; // no strings and unicode strings\n }\n\n const strings = [\n proto[0][0] || \"Original licence\", // 0.Copyright\n proto[0][1] || name, // 1.Font family\n proto[0][2] || \"Unknown\", // 2.Font subfamily (font weight)\n proto[0][3] || \"uniqueID\", // 3.Unique ID\n proto[0][4] || name, // 4.Full font name\n proto[0][5] || \"Version 0.11\", // 5.Version\n proto[0][6] || createPostscriptName(name), // 6.Postscript name\n proto[0][7] || \"Unknown\", // 7.Trademark\n proto[0][8] || \"Unknown\", // 8.Manufacturer\n proto[0][9] || \"Unknown\", // 9.Designer\n ];\n\n // Mac want 1-byte per character strings while Windows want\n // 2-bytes per character, so duplicate the names table\n const stringsUnicode = [];\n let i, ii, j, jj, str;\n for (i = 0, ii = strings.length; i < ii; i++) {\n str = proto[1][i] || strings[i];\n\n const strBufUnicode = [];\n for (j = 0, jj = str.length; j < jj; j++) {\n strBufUnicode.push(string16(str.charCodeAt(j)));\n }\n stringsUnicode.push(strBufUnicode.join(\"\"));\n }\n\n const names = [strings, stringsUnicode];\n const platforms = [\"\\x00\\x01\", \"\\x00\\x03\"];\n const encodings = [\"\\x00\\x00\", \"\\x00\\x01\"];\n const languages = [\"\\x00\\x00\", \"\\x04\\x09\"];\n\n const namesRecordCount = strings.length * platforms.length;\n let nameTable =\n \"\\x00\\x00\" + // format\n string16(namesRecordCount) + // Number of names Record\n string16(namesRecordCount * 12 + 6); // Storage\n\n // Build the name records field\n let strOffset = 0;\n for (i = 0, ii = platforms.length; i < ii; i++) {\n const strs = names[i];\n for (j = 0, jj = strs.length; j < jj; j++) {\n str = strs[j];\n const nameRecord =\n platforms[i] + // platform ID\n encodings[i] + // encoding ID\n languages[i] + // language ID\n string16(j) + // name ID\n string16(str.length) +\n string16(strOffset);\n nameTable += nameRecord;\n strOffset += str.length;\n }\n }\n\n nameTable += strings.join(\"\") + stringsUnicode.join(\"\");\n return nameTable;\n}\n\n/**\n * 'Font' is the class the outside world should use, it encapsulate all the font\n * decoding logics whatever type it is (assuming the font type is supported).\n */\nclass Font {\n constructor(name, file, properties) {\n this.name = name;\n this.psName = null;\n this.mimetype = null;\n this.disableFontFace = false;\n\n this.loadedName = properties.loadedName;\n this.isType3Font = properties.isType3Font;\n this.missingFile = false;\n this.cssFontInfo = properties.cssFontInfo;\n\n this._charsCache = Object.create(null);\n this._glyphCache = Object.create(null);\n\n let isSerifFont = !!(properties.flags & FontFlags.Serif);\n // Fallback to checking the font name, in order to improve text-selection,\n // since the /Flags-entry is often wrong (fixes issue13845.pdf).\n if (!isSerifFont && !properties.isSimulatedFlags) {\n const baseName = name.replace(/[,_]/g, \"-\").split(\"-\")[0],\n serifFonts = getSerifFonts();\n for (const namePart of baseName.split(\"+\")) {\n if (serifFonts[namePart]) {\n isSerifFont = true;\n break;\n }\n }\n }\n this.isSerifFont = isSerifFont;\n\n this.isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n this.isMonospace = !!(properties.flags & FontFlags.FixedPitch);\n\n let type = properties.type;\n let subtype = properties.subtype;\n this.type = type;\n this.subtype = subtype;\n\n let fallbackName = \"sans-serif\";\n if (this.isMonospace) {\n fallbackName = \"monospace\";\n } else if (this.isSerifFont) {\n fallbackName = \"serif\";\n }\n this.fallbackName = fallbackName;\n\n this.differences = properties.differences;\n this.widths = properties.widths;\n this.defaultWidth = properties.defaultWidth;\n this.composite = properties.composite;\n this.cMap = properties.cMap;\n this.capHeight = properties.capHeight / PDF_GLYPH_SPACE_UNITS;\n this.ascent = properties.ascent / PDF_GLYPH_SPACE_UNITS;\n this.descent = properties.descent / PDF_GLYPH_SPACE_UNITS;\n this.lineHeight = this.ascent - this.descent;\n this.fontMatrix = properties.fontMatrix;\n this.bbox = properties.bbox;\n this.defaultEncoding = properties.defaultEncoding;\n\n this.toUnicode = properties.toUnicode;\n this.toFontChar = [];\n\n if (properties.type === \"Type3\") {\n for (let charCode = 0; charCode < 256; charCode++) {\n this.toFontChar[charCode] =\n this.differences[charCode] || properties.defaultEncoding[charCode];\n }\n this.fontType = FontType.TYPE3;\n return;\n }\n\n this.cidEncoding = properties.cidEncoding || \"\";\n this.vertical = !!properties.vertical;\n if (this.vertical) {\n this.vmetrics = properties.vmetrics;\n this.defaultVMetrics = properties.defaultVMetrics;\n }\n\n if (!file || file.isEmpty) {\n if (file) {\n // Some bad PDF generators will include empty font files,\n // attempting to recover by assuming that no file exists.\n warn('Font file is empty in \"' + name + '\" (' + this.loadedName + \")\");\n }\n this.fallbackToSystemFont(properties);\n return;\n }\n\n // Parse the font file to determine the correct type/subtype, rather than\n // relying on the (often incorrect) data in the font dictionary; (see e.g.\n // issue6782.pdf, issue7598.pdf, and issue9949.pdf).\n [type, subtype] = getFontFileType(file, properties);\n\n if (type !== this.type || subtype !== this.subtype) {\n info(\n \"Inconsistent font file Type/SubType, expected: \" +\n `${this.type}/${this.subtype} but found: ${type}/${subtype}.`\n );\n }\n\n let data;\n try {\n switch (type) {\n case \"MMType1\":\n info(\"MMType1 font (\" + name + \"), falling back to Type1.\");\n /* falls through */\n case \"Type1\":\n case \"CIDFontType0\":\n this.mimetype = \"font/opentype\";\n\n const cff =\n subtype === \"Type1C\" || subtype === \"CIDFontType0C\"\n ? new CFFFont(file, properties)\n : new Type1Font(name, file, properties);\n\n adjustWidths(properties);\n\n // Wrap the CFF data inside an OTF font file\n data = this.convert(name, cff, properties);\n break;\n\n case \"OpenType\":\n case \"TrueType\":\n case \"CIDFontType2\":\n this.mimetype = \"font/opentype\";\n\n // Repair the TrueType file. It is can be damaged in the point of\n // view of the sanitizer\n data = this.checkAndRepair(name, file, properties);\n if (this.isOpenType) {\n adjustWidths(properties);\n\n type = \"OpenType\";\n }\n break;\n\n default:\n throw new FormatError(`Font ${type} is not supported`);\n }\n } catch (e) {\n warn(e);\n this.fallbackToSystemFont(properties);\n return;\n }\n\n amendFallbackToUnicode(properties);\n this.data = data;\n this.fontType = getFontType(type, subtype, properties.isStandardFont);\n\n // Transfer some properties again that could change during font conversion\n this.fontMatrix = properties.fontMatrix;\n this.widths = properties.widths;\n this.defaultWidth = properties.defaultWidth;\n this.toUnicode = properties.toUnicode;\n this.seacMap = properties.seacMap;\n }\n\n get renderer() {\n const renderer = FontRendererFactory.create(this, SEAC_ANALYSIS_ENABLED);\n return shadow(this, \"renderer\", renderer);\n }\n\n exportData(extraProperties = false) {\n const exportDataProperties = extraProperties\n ? [...EXPORT_DATA_PROPERTIES, ...EXPORT_DATA_EXTRA_PROPERTIES]\n : EXPORT_DATA_PROPERTIES;\n\n const data = Object.create(null);\n let property, value;\n for (property of exportDataProperties) {\n value = this[property];\n // Ignore properties that haven't been explicitly set.\n if (value !== undefined) {\n data[property] = value;\n }\n }\n return data;\n }\n\n fallbackToSystemFont(properties) {\n this.missingFile = true;\n // The file data is not specified. Trying to fix the font name\n // to be used with the canvas.font.\n const name = this.name;\n const type = this.type;\n const subtype = this.subtype;\n let fontName = normalizeFontName(name);\n const stdFontMap = getStdFontMap(),\n nonStdFontMap = getNonStdFontMap();\n const isStandardFont = !!stdFontMap[fontName];\n const isMappedToStandardFont = !!(\n nonStdFontMap[fontName] && stdFontMap[nonStdFontMap[fontName]]\n );\n\n fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName;\n\n const fontBasicMetricsMap = getFontBasicMetrics();\n const metrics = fontBasicMetricsMap[fontName];\n if (metrics) {\n if (isNaN(this.ascent)) {\n this.ascent = metrics.ascent / PDF_GLYPH_SPACE_UNITS;\n }\n if (isNaN(this.descent)) {\n this.descent = metrics.descent / PDF_GLYPH_SPACE_UNITS;\n }\n if (isNaN(this.capHeight)) {\n this.capHeight = metrics.capHeight / PDF_GLYPH_SPACE_UNITS;\n }\n }\n\n this.bold = fontName.search(/bold/gi) !== -1;\n this.italic =\n fontName.search(/oblique/gi) !== -1 || fontName.search(/italic/gi) !== -1;\n\n // Use 'name' instead of 'fontName' here because the original\n // name ArialBlack for example will be replaced by Helvetica.\n this.black = name.search(/Black/g) !== -1;\n\n // Use 'name' instead of 'fontName' here because the original\n // name ArialNarrow for example will be replaced by Helvetica.\n const isNarrow = name.search(/Narrow/g) !== -1;\n\n // if at least one width is present, remeasure all chars when exists\n this.remeasure =\n (!isStandardFont || isNarrow) && Object.keys(this.widths).length > 0;\n if (\n (isStandardFont || isMappedToStandardFont) &&\n type === \"CIDFontType2\" &&\n this.cidEncoding.startsWith(\"Identity-\")\n ) {\n const cidToGidMap = properties.cidToGidMap;\n // Standard fonts might be embedded as CID font without glyph mapping.\n // Building one based on GlyphMapForStandardFonts.\n const map = [];\n applyStandardFontGlyphMap(map, getGlyphMapForStandardFonts());\n\n if (/Arial-?Black/i.test(name)) {\n applyStandardFontGlyphMap(map, getSupplementalGlyphMapForArialBlack());\n } else if (/Calibri/i.test(name)) {\n applyStandardFontGlyphMap(map, getSupplementalGlyphMapForCalibri());\n }\n\n // Always update the glyph mapping with the `cidToGidMap` when it exists\n // (fixes issue12418_reduced.pdf).\n if (cidToGidMap) {\n for (const charCode in map) {\n const cid = map[charCode];\n if (cidToGidMap[cid] !== undefined) {\n map[+charCode] = cidToGidMap[cid];\n }\n }\n // When the /CIDToGIDMap is \"incomplete\", fallback to the included\n // /ToUnicode-map regardless of its encoding (fixes issue11915.pdf).\n if (\n cidToGidMap.length !== this.toUnicode.length &&\n properties.hasIncludedToUnicodeMap &&\n this.toUnicode instanceof IdentityToUnicodeMap\n ) {\n this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n const cid = map[charCode];\n if (cidToGidMap[cid] === undefined) {\n map[+charCode] = unicodeCharCode;\n }\n });\n }\n }\n\n if (!(this.toUnicode instanceof IdentityToUnicodeMap)) {\n this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n map[+charCode] = unicodeCharCode;\n });\n }\n this.toFontChar = map;\n this.toUnicode = new ToUnicodeMap(map);\n } else if (/Symbol/i.test(fontName)) {\n this.toFontChar = buildToFontChar(\n SymbolSetEncoding,\n getGlyphsUnicode(),\n this.differences\n );\n } else if (/Dingbats/i.test(fontName)) {\n if (/Wingdings/i.test(name)) {\n warn(\"Non-embedded Wingdings font, falling back to ZapfDingbats.\");\n }\n this.toFontChar = buildToFontChar(\n ZapfDingbatsEncoding,\n getDingbatsGlyphsUnicode(),\n this.differences\n );\n } else if (isStandardFont) {\n const map = buildToFontChar(\n this.defaultEncoding,\n getGlyphsUnicode(),\n this.differences\n );\n\n if (\n type === \"CIDFontType2\" &&\n !this.cidEncoding.startsWith(\"Identity-\") &&\n !(this.toUnicode instanceof IdentityToUnicodeMap)\n ) {\n this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n map[+charCode] = unicodeCharCode;\n });\n }\n this.toFontChar = map;\n } else {\n const glyphsUnicodeMap = getGlyphsUnicode();\n const map = [];\n this.toUnicode.forEach((charCode, unicodeCharCode) => {\n if (!this.composite) {\n const glyphName =\n this.differences[charCode] || this.defaultEncoding[charCode];\n const unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap);\n if (unicode !== -1) {\n unicodeCharCode = unicode;\n }\n }\n map[+charCode] = unicodeCharCode;\n });\n\n // Attempt to improve the glyph mapping for (some) composite fonts that\n // appear to lack meaningful ToUnicode data.\n if (this.composite && this.toUnicode instanceof IdentityToUnicodeMap) {\n if (/Verdana/i.test(name)) {\n // Fixes issue11242_reduced.pdf\n applyStandardFontGlyphMap(map, getGlyphMapForStandardFonts());\n }\n }\n this.toFontChar = map;\n }\n\n amendFallbackToUnicode(properties);\n this.loadedName = fontName.split(\"-\")[0];\n this.fontType = getFontType(type, subtype, properties.isStandardFont);\n }\n\n checkAndRepair(name, font, properties) {\n const VALID_TABLES = [\n \"OS/2\",\n \"cmap\",\n \"head\",\n \"hhea\",\n \"hmtx\",\n \"maxp\",\n \"name\",\n \"post\",\n \"loca\",\n \"glyf\",\n \"fpgm\",\n \"prep\",\n \"cvt \",\n \"CFF \",\n ];\n\n function readTables(file, numTables) {\n const tables = Object.create(null);\n tables[\"OS/2\"] = null;\n tables.cmap = null;\n tables.head = null;\n tables.hhea = null;\n tables.hmtx = null;\n tables.maxp = null;\n tables.name = null;\n tables.post = null;\n\n for (let i = 0; i < numTables; i++) {\n const table = readTableEntry(file);\n if (!VALID_TABLES.includes(table.tag)) {\n continue; // skipping table if it's not a required or optional table\n }\n if (table.length === 0) {\n continue; // skipping empty tables\n }\n tables[table.tag] = table;\n }\n return tables;\n }\n\n function readTableEntry(file) {\n const tag = file.getString(4);\n\n const checksum = file.getInt32() >>> 0;\n const offset = file.getInt32() >>> 0;\n const length = file.getInt32() >>> 0;\n\n // Read the table associated data\n const previousPosition = file.pos;\n file.pos = file.start ? file.start : 0;\n file.skip(offset);\n const data = file.getBytes(length);\n file.pos = previousPosition;\n\n if (tag === \"head\") {\n // clearing checksum adjustment\n data[8] = data[9] = data[10] = data[11] = 0;\n data[17] |= 0x20; // Set font optimized for cleartype flag.\n }\n\n return {\n tag,\n checksum,\n length,\n offset,\n data,\n };\n }\n\n function readOpenTypeHeader(ttf) {\n return {\n version: ttf.getString(4),\n numTables: ttf.getUint16(),\n searchRange: ttf.getUint16(),\n entrySelector: ttf.getUint16(),\n rangeShift: ttf.getUint16(),\n };\n }\n\n function readTrueTypeCollectionHeader(ttc) {\n const ttcTag = ttc.getString(4);\n assert(ttcTag === \"ttcf\", \"Must be a TrueType Collection font.\");\n\n const majorVersion = ttc.getUint16();\n const minorVersion = ttc.getUint16();\n const numFonts = ttc.getInt32() >>> 0;\n const offsetTable = [];\n for (let i = 0; i < numFonts; i++) {\n offsetTable.push(ttc.getInt32() >>> 0);\n }\n\n const header = {\n ttcTag,\n majorVersion,\n minorVersion,\n numFonts,\n offsetTable,\n };\n switch (majorVersion) {\n case 1:\n return header;\n case 2:\n header.dsigTag = ttc.getInt32() >>> 0;\n header.dsigLength = ttc.getInt32() >>> 0;\n header.dsigOffset = ttc.getInt32() >>> 0;\n return header;\n }\n throw new FormatError(\n `Invalid TrueType Collection majorVersion: ${majorVersion}.`\n );\n }\n\n function readTrueTypeCollectionData(ttc, fontName) {\n const { numFonts, offsetTable } = readTrueTypeCollectionHeader(ttc);\n const fontNameParts = fontName.split(\"+\");\n let fallbackData;\n\n for (let i = 0; i < numFonts; i++) {\n ttc.pos = (ttc.start || 0) + offsetTable[i];\n const potentialHeader = readOpenTypeHeader(ttc);\n const potentialTables = readTables(ttc, potentialHeader.numTables);\n\n if (!potentialTables.name) {\n throw new FormatError(\n 'TrueType Collection font must contain a \"name\" table.'\n );\n }\n const nameTable = readNameTable(potentialTables.name);\n\n for (let j = 0, jj = nameTable.length; j < jj; j++) {\n for (let k = 0, kk = nameTable[j].length; k < kk; k++) {\n const nameEntry =\n nameTable[j][k] && nameTable[j][k].replace(/\\s/g, \"\");\n if (!nameEntry) {\n continue;\n }\n if (nameEntry === fontName) {\n return {\n header: potentialHeader,\n tables: potentialTables,\n };\n }\n if (fontNameParts.length < 2) {\n continue;\n }\n for (const part of fontNameParts) {\n if (nameEntry === part) {\n fallbackData = {\n name: part,\n header: potentialHeader,\n tables: potentialTables,\n };\n }\n }\n }\n }\n }\n if (fallbackData) {\n warn(\n `TrueType Collection does not contain \"${fontName}\" font, ` +\n `falling back to \"${fallbackData.name}\" font instead.`\n );\n return {\n header: fallbackData.header,\n tables: fallbackData.tables,\n };\n }\n throw new FormatError(\n `TrueType Collection does not contain \"${fontName}\" font.`\n );\n }\n\n /**\n * Read the appropriate subtable from the cmap according to 9.6.6.4 from\n * PDF spec\n */\n function readCmapTable(cmap, file, isSymbolicFont, hasEncoding) {\n if (!cmap) {\n warn(\"No cmap table available.\");\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false,\n };\n }\n let segment;\n let start = (file.start ? file.start : 0) + cmap.offset;\n file.pos = start;\n\n file.skip(2); // version\n const numTables = file.getUint16();\n\n let potentialTable;\n let canBreak = false;\n // There's an order of preference in terms of which cmap subtable to\n // use:\n // - non-symbolic fonts the preference is a 3,1 table then a 1,0 table\n // - symbolic fonts the preference is a 3,0 table then a 1,0 table\n // The following takes advantage of the fact that the tables are sorted\n // to work.\n for (let i = 0; i < numTables; i++) {\n const platformId = file.getUint16();\n const encodingId = file.getUint16();\n const offset = file.getInt32() >>> 0;\n let useTable = false;\n\n // Sometimes there are multiple of the same type of table. Default\n // to choosing the first table and skip the rest.\n if (\n potentialTable &&\n potentialTable.platformId === platformId &&\n potentialTable.encodingId === encodingId\n ) {\n continue;\n }\n\n if (\n platformId === 0 &&\n (encodingId === /* Unicode Default */ 0 ||\n encodingId === /* Unicode 1.1 */ 1 ||\n encodingId === /* Unicode BMP */ 3)\n ) {\n useTable = true;\n // Continue the loop since there still may be a higher priority\n // table.\n } else if (platformId === 1 && encodingId === 0) {\n useTable = true;\n // Continue the loop since there still may be a higher priority\n // table.\n } else if (\n platformId === 3 &&\n encodingId === 1 &&\n (hasEncoding || !potentialTable)\n ) {\n useTable = true;\n if (!isSymbolicFont) {\n canBreak = true;\n }\n } else if (isSymbolicFont && platformId === 3 && encodingId === 0) {\n useTable = true;\n\n let correctlySorted = true;\n if (i < numTables - 1) {\n const nextBytes = file.peekBytes(2),\n nextPlatformId = int16(nextBytes[0], nextBytes[1]);\n if (nextPlatformId < platformId) {\n correctlySorted = false;\n }\n }\n if (correctlySorted) {\n canBreak = true;\n }\n }\n\n if (useTable) {\n potentialTable = {\n platformId,\n encodingId,\n offset,\n };\n }\n if (canBreak) {\n break;\n }\n }\n\n if (potentialTable) {\n file.pos = start + potentialTable.offset;\n }\n if (!potentialTable || file.peekByte() === -1) {\n warn(\"Could not find a preferred cmap table.\");\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false,\n };\n }\n\n const format = file.getUint16();\n let hasShortCmap = false;\n const mappings = [];\n let j, glyphId;\n\n // TODO(mack): refactor this cmap subtable reading logic out\n if (format === 0) {\n file.skip(2 + 2); // length + language\n\n for (j = 0; j < 256; j++) {\n const index = file.getByte();\n if (!index) {\n continue;\n }\n mappings.push({\n charCode: j,\n glyphId: index,\n });\n }\n hasShortCmap = true;\n } else if (format === 2) {\n file.skip(2 + 2); // length + language\n\n const subHeaderKeys = [];\n let maxSubHeaderKey = 0;\n // Read subHeaderKeys. If subHeaderKeys[i] === 0, then i is a\n // single-byte character. Otherwise, i is the first byte of a\n // multi-byte character, and the value is 8*index into\n // subHeaders.\n for (let i = 0; i < 256; i++) {\n const subHeaderKey = file.getUint16() >> 3;\n subHeaderKeys.push(subHeaderKey);\n maxSubHeaderKey = Math.max(subHeaderKey, maxSubHeaderKey);\n }\n // Read subHeaders. The number of entries is determined\n // dynamically based on the subHeaderKeys found above.\n const subHeaders = [];\n for (let i = 0; i <= maxSubHeaderKey; i++) {\n subHeaders.push({\n firstCode: file.getUint16(),\n entryCount: file.getUint16(),\n idDelta: signedInt16(file.getByte(), file.getByte()),\n idRangePos: file.pos + file.getUint16(),\n });\n }\n for (let i = 0; i < 256; i++) {\n if (subHeaderKeys[i] === 0) {\n // i is a single-byte code.\n file.pos = subHeaders[0].idRangePos + 2 * i;\n glyphId = file.getUint16();\n mappings.push({\n charCode: i,\n glyphId,\n });\n } else {\n // i is the first byte of a two-byte code.\n const s = subHeaders[subHeaderKeys[i]];\n for (j = 0; j < s.entryCount; j++) {\n const charCode = (i << 8) + j + s.firstCode;\n file.pos = s.idRangePos + 2 * j;\n glyphId = file.getUint16();\n if (glyphId !== 0) {\n glyphId = (glyphId + s.idDelta) % 65536;\n }\n mappings.push({\n charCode,\n glyphId,\n });\n }\n }\n }\n } else if (format === 4) {\n file.skip(2 + 2); // length + language\n\n // re-creating the table in format 4 since the encoding\n // might be changed\n const segCount = file.getUint16() >> 1;\n file.skip(6); // skipping range fields\n const segments = [];\n let segIndex;\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments.push({ end: file.getUint16() });\n }\n file.skip(2);\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments[segIndex].start = file.getUint16();\n }\n\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments[segIndex].delta = file.getUint16();\n }\n\n let offsetsCount = 0,\n offsetIndex;\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segment = segments[segIndex];\n const rangeOffset = file.getUint16();\n if (!rangeOffset) {\n segment.offsetIndex = -1;\n continue;\n }\n\n offsetIndex = (rangeOffset >> 1) - (segCount - segIndex);\n segment.offsetIndex = offsetIndex;\n offsetsCount = Math.max(\n offsetsCount,\n offsetIndex + segment.end - segment.start + 1\n );\n }\n\n const offsets = [];\n for (j = 0; j < offsetsCount; j++) {\n offsets.push(file.getUint16());\n }\n\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segment = segments[segIndex];\n start = segment.start;\n const end = segment.end;\n const delta = segment.delta;\n offsetIndex = segment.offsetIndex;\n\n for (j = start; j <= end; j++) {\n if (j === 0xffff) {\n continue;\n }\n\n glyphId = offsetIndex < 0 ? j : offsets[offsetIndex + j - start];\n glyphId = (glyphId + delta) & 0xffff;\n mappings.push({\n charCode: j,\n glyphId,\n });\n }\n }\n } else if (format === 6) {\n file.skip(2 + 2); // length + language\n\n // Format 6 is a 2-bytes dense mapping, which means the font data\n // lives glue together even if they are pretty far in the unicode\n // table. (This looks weird, so I can have missed something), this\n // works on Linux but seems to fails on Mac so let's rewrite the\n // cmap table to a 3-1-4 style\n const firstCode = file.getUint16();\n const entryCount = file.getUint16();\n\n for (j = 0; j < entryCount; j++) {\n glyphId = file.getUint16();\n const charCode = firstCode + j;\n\n mappings.push({\n charCode,\n glyphId,\n });\n }\n } else if (format === 12) {\n file.skip(2 + 4 + 4); // reserved + length + language\n\n const nGroups = file.getInt32() >>> 0;\n for (j = 0; j < nGroups; j++) {\n const startCharCode = file.getInt32() >>> 0;\n const endCharCode = file.getInt32() >>> 0;\n let glyphCode = file.getInt32() >>> 0;\n\n for (\n let charCode = startCharCode;\n charCode <= endCharCode;\n charCode++\n ) {\n mappings.push({\n charCode,\n glyphId: glyphCode++,\n });\n }\n }\n } else {\n warn(\"cmap table has unsupported format: \" + format);\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false,\n };\n }\n\n // removing duplicate entries\n mappings.sort(function (a, b) {\n return a.charCode - b.charCode;\n });\n for (let i = 1; i < mappings.length; i++) {\n if (mappings[i - 1].charCode === mappings[i].charCode) {\n mappings.splice(i, 1);\n i--;\n }\n }\n\n return {\n platformId: potentialTable.platformId,\n encodingId: potentialTable.encodingId,\n mappings,\n hasShortCmap,\n };\n }\n\n function sanitizeMetrics(\n file,\n header,\n metrics,\n headTable,\n numGlyphs,\n dupFirstEntry\n ) {\n if (!header) {\n if (metrics) {\n metrics.data = null;\n }\n return;\n }\n\n file.pos = (file.start ? file.start : 0) + header.offset;\n file.pos += 4; // version\n file.pos += 2; // ascent\n file.pos += 2; // descent\n file.pos += 2; // linegap\n file.pos += 2; // adv_width_max\n file.pos += 2; // min_sb1\n file.pos += 2; // min_sb2\n file.pos += 2; // max_extent\n file.pos += 2; // caret_slope_rise\n file.pos += 2; // caret_slope_run\n const caretOffset = file.getUint16();\n file.pos += 8; // reserved\n file.pos += 2; // format\n let numOfMetrics = file.getUint16();\n\n if (caretOffset !== 0) {\n const macStyle = int16(headTable.data[44], headTable.data[45]);\n if (!(macStyle & 2)) {\n // Suppress OTS warnings about the `caretOffset` in the hhea-table.\n header.data[22] = 0;\n header.data[23] = 0;\n }\n }\n\n if (numOfMetrics > numGlyphs) {\n info(\n `The numOfMetrics (${numOfMetrics}) should not be ` +\n `greater than the numGlyphs (${numGlyphs}).`\n );\n // Reduce numOfMetrics if it is greater than numGlyphs\n numOfMetrics = numGlyphs;\n header.data[34] = (numOfMetrics & 0xff00) >> 8;\n header.data[35] = numOfMetrics & 0x00ff;\n }\n\n const numOfSidebearings = numGlyphs - numOfMetrics;\n const numMissing =\n numOfSidebearings - ((metrics.length - numOfMetrics * 4) >> 1);\n\n if (numMissing > 0) {\n // For each missing glyph, we set both the width and lsb to 0 (zero).\n // Since we need to add two properties for each glyph, this explains\n // the use of |numMissing * 2| when initializing the typed array.\n const entries = new Uint8Array(metrics.length + numMissing * 2);\n entries.set(metrics.data);\n if (dupFirstEntry) {\n // Set the sidebearing value of the duplicated glyph.\n entries[metrics.length] = metrics.data[2];\n entries[metrics.length + 1] = metrics.data[3];\n }\n metrics.data = entries;\n }\n }\n\n function sanitizeGlyph(\n source,\n sourceStart,\n sourceEnd,\n dest,\n destStart,\n hintsValid\n ) {\n const glyphProfile = {\n length: 0,\n sizeOfInstructions: 0,\n };\n if (sourceEnd - sourceStart <= 12) {\n // glyph with data less than 12 is invalid one\n return glyphProfile;\n }\n const glyf = source.subarray(sourceStart, sourceEnd);\n let contoursCount = signedInt16(glyf[0], glyf[1]);\n if (contoursCount < 0) {\n // OTS doesn't like contour count to be less than -1.\n contoursCount = -1;\n writeSignedInt16(glyf, 0, contoursCount);\n // complex glyph, writing as is\n dest.set(glyf, destStart);\n glyphProfile.length = glyf.length;\n return glyphProfile;\n }\n\n let i,\n j = 10,\n flagsCount = 0;\n for (i = 0; i < contoursCount; i++) {\n const endPoint = (glyf[j] << 8) | glyf[j + 1];\n flagsCount = endPoint + 1;\n j += 2;\n }\n // skipping instructions\n const instructionsStart = j;\n const instructionsLength = (glyf[j] << 8) | glyf[j + 1];\n glyphProfile.sizeOfInstructions = instructionsLength;\n j += 2 + instructionsLength;\n const instructionsEnd = j;\n // validating flags\n let coordinatesLength = 0;\n for (i = 0; i < flagsCount; i++) {\n const flag = glyf[j++];\n if (flag & 0xc0) {\n // reserved flags must be zero, cleaning up\n glyf[j - 1] = flag & 0x3f;\n }\n let xLength = 2;\n if (flag & 2) {\n xLength = 1;\n } else if (flag & 16) {\n xLength = 0;\n }\n let yLength = 2;\n if (flag & 4) {\n yLength = 1;\n } else if (flag & 32) {\n yLength = 0;\n }\n const xyLength = xLength + yLength;\n coordinatesLength += xyLength;\n if (flag & 8) {\n const repeat = glyf[j++];\n i += repeat;\n coordinatesLength += repeat * xyLength;\n }\n }\n // glyph without coordinates will be rejected\n if (coordinatesLength === 0) {\n return glyphProfile;\n }\n let glyphDataLength = j + coordinatesLength;\n if (glyphDataLength > glyf.length) {\n // not enough data for coordinates\n return glyphProfile;\n }\n if (!hintsValid && instructionsLength > 0) {\n dest.set(glyf.subarray(0, instructionsStart), destStart);\n dest.set([0, 0], destStart + instructionsStart);\n dest.set(\n glyf.subarray(instructionsEnd, glyphDataLength),\n destStart + instructionsStart + 2\n );\n glyphDataLength -= instructionsLength;\n if (glyf.length - glyphDataLength > 3) {\n glyphDataLength = (glyphDataLength + 3) & ~3;\n }\n glyphProfile.length = glyphDataLength;\n return glyphProfile;\n }\n if (glyf.length - glyphDataLength > 3) {\n // truncating and aligning to 4 bytes the long glyph data\n glyphDataLength = (glyphDataLength + 3) & ~3;\n dest.set(glyf.subarray(0, glyphDataLength), destStart);\n glyphProfile.length = glyphDataLength;\n return glyphProfile;\n }\n // glyph data is fine\n dest.set(glyf, destStart);\n glyphProfile.length = glyf.length;\n return glyphProfile;\n }\n\n function sanitizeHead(head, numGlyphs, locaLength) {\n const data = head.data;\n\n // Validate version:\n // Should always be 0x00010000\n const version = int32(data[0], data[1], data[2], data[3]);\n if (version >> 16 !== 1) {\n info(\"Attempting to fix invalid version in head table: \" + version);\n data[0] = 0;\n data[1] = 1;\n data[2] = 0;\n data[3] = 0;\n }\n\n const indexToLocFormat = int16(data[50], data[51]);\n if (indexToLocFormat < 0 || indexToLocFormat > 1) {\n info(\n \"Attempting to fix invalid indexToLocFormat in head table: \" +\n indexToLocFormat\n );\n\n // The value of indexToLocFormat should be 0 if the loca table\n // consists of short offsets, and should be 1 if the loca table\n // consists of long offsets.\n //\n // The number of entries in the loca table should be numGlyphs + 1.\n //\n // Using this information, we can work backwards to deduce if the\n // size of each offset in the loca table, and thus figure out the\n // appropriate value for indexToLocFormat.\n\n const numGlyphsPlusOne = numGlyphs + 1;\n if (locaLength === numGlyphsPlusOne << 1) {\n // 0x0000 indicates the loca table consists of short offsets\n data[50] = 0;\n data[51] = 0;\n } else if (locaLength === numGlyphsPlusOne << 2) {\n // 0x0001 indicates the loca table consists of long offsets\n data[50] = 0;\n data[51] = 1;\n } else {\n throw new FormatError(\n \"Could not fix indexToLocFormat: \" + indexToLocFormat\n );\n }\n }\n }\n\n function sanitizeGlyphLocations(\n loca,\n glyf,\n numGlyphs,\n isGlyphLocationsLong,\n hintsValid,\n dupFirstEntry,\n maxSizeOfInstructions\n ) {\n let itemSize, itemDecode, itemEncode;\n if (isGlyphLocationsLong) {\n itemSize = 4;\n itemDecode = function fontItemDecodeLong(data, offset) {\n return (\n (data[offset] << 24) |\n (data[offset + 1] << 16) |\n (data[offset + 2] << 8) |\n data[offset + 3]\n );\n };\n itemEncode = function fontItemEncodeLong(data, offset, value) {\n data[offset] = (value >>> 24) & 0xff;\n data[offset + 1] = (value >> 16) & 0xff;\n data[offset + 2] = (value >> 8) & 0xff;\n data[offset + 3] = value & 0xff;\n };\n } else {\n itemSize = 2;\n itemDecode = function fontItemDecode(data, offset) {\n return (data[offset] << 9) | (data[offset + 1] << 1);\n };\n itemEncode = function fontItemEncode(data, offset, value) {\n data[offset] = (value >> 9) & 0xff;\n data[offset + 1] = (value >> 1) & 0xff;\n };\n }\n // The first glyph is duplicated.\n const numGlyphsOut = dupFirstEntry ? numGlyphs + 1 : numGlyphs;\n const locaDataSize = itemSize * (1 + numGlyphsOut);\n // Resize loca table to account for duplicated glyph.\n const locaData = new Uint8Array(locaDataSize);\n locaData.set(loca.data.subarray(0, locaDataSize));\n loca.data = locaData;\n // removing the invalid glyphs\n const oldGlyfData = glyf.data;\n const oldGlyfDataLength = oldGlyfData.length;\n const newGlyfData = new Uint8Array(oldGlyfDataLength);\n\n // The spec says the offsets should be in ascending order, however\n // this is not true for some fonts or they use the offset of 0 to mark a\n // glyph as missing. OTS requires the offsets to be in order and not to\n // be zero, so we must sort and rebuild the loca table and potentially\n // re-arrange the glyf data.\n let i, j;\n const locaEntries = [];\n // There are numGlyphs + 1 loca table entries.\n for (i = 0, j = 0; i < numGlyphs + 1; i++, j += itemSize) {\n let offset = itemDecode(locaData, j);\n if (offset > oldGlyfDataLength) {\n offset = oldGlyfDataLength;\n }\n locaEntries.push({\n index: i,\n offset,\n endOffset: 0,\n });\n }\n locaEntries.sort((a, b) => {\n return a.offset - b.offset;\n });\n // Now the offsets are sorted, calculate the end offset of each glyph.\n // The last loca entry's endOffset is not calculated since it's the end\n // of the data and will be stored on the previous entry's endOffset.\n for (i = 0; i < numGlyphs; i++) {\n locaEntries[i].endOffset = locaEntries[i + 1].offset;\n }\n // Re-sort so glyphs aren't out of order.\n locaEntries.sort((a, b) => {\n return a.index - b.index;\n });\n // Calculate the endOffset of the \"first\" glyph correctly when there are\n // *multiple* empty ones at the start of the data (fixes issue14618.pdf).\n for (i = 0; i < numGlyphs; i++) {\n const { offset, endOffset } = locaEntries[i];\n if (offset !== 0 || endOffset !== 0) {\n break;\n }\n const nextOffset = locaEntries[i + 1].offset;\n if (nextOffset === 0) {\n continue;\n }\n locaEntries[i].endOffset = nextOffset;\n break;\n }\n\n const missingGlyphs = Object.create(null);\n let writeOffset = 0;\n itemEncode(locaData, 0, writeOffset);\n for (i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) {\n const glyphProfile = sanitizeGlyph(\n oldGlyfData,\n locaEntries[i].offset,\n locaEntries[i].endOffset,\n newGlyfData,\n writeOffset,\n hintsValid\n );\n const newLength = glyphProfile.length;\n if (newLength === 0) {\n missingGlyphs[i] = true;\n }\n if (glyphProfile.sizeOfInstructions > maxSizeOfInstructions) {\n maxSizeOfInstructions = glyphProfile.sizeOfInstructions;\n }\n writeOffset += newLength;\n itemEncode(locaData, j, writeOffset);\n }\n\n if (writeOffset === 0) {\n // glyf table cannot be empty -- redoing the glyf and loca tables\n // to have single glyph with one point\n const simpleGlyph = new Uint8Array([\n 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0,\n ]);\n for (i = 0, j = itemSize; i < numGlyphsOut; i++, j += itemSize) {\n itemEncode(locaData, j, simpleGlyph.length);\n }\n glyf.data = simpleGlyph;\n } else if (dupFirstEntry) {\n // Browsers will not display a glyph at position 0. Typically glyph 0\n // is notdef, but a number of fonts put a valid glyph there so it must\n // be duplicated and appended.\n const firstEntryLength = itemDecode(locaData, itemSize);\n if (newGlyfData.length > firstEntryLength + writeOffset) {\n glyf.data = newGlyfData.subarray(0, firstEntryLength + writeOffset);\n } else {\n glyf.data = new Uint8Array(firstEntryLength + writeOffset);\n glyf.data.set(newGlyfData.subarray(0, writeOffset));\n }\n glyf.data.set(newGlyfData.subarray(0, firstEntryLength), writeOffset);\n itemEncode(\n loca.data,\n locaData.length - itemSize,\n writeOffset + firstEntryLength\n );\n } else {\n glyf.data = newGlyfData.subarray(0, writeOffset);\n }\n return {\n missingGlyphs,\n maxSizeOfInstructions,\n };\n }\n\n function readPostScriptTable(post, propertiesObj, maxpNumGlyphs) {\n const start = (font.start ? font.start : 0) + post.offset;\n font.pos = start;\n\n const length = post.length,\n end = start + length;\n const version = font.getInt32();\n // skip rest to the tables\n font.skip(28);\n\n let glyphNames;\n let valid = true;\n let i;\n\n switch (version) {\n case 0x00010000:\n glyphNames = MacStandardGlyphOrdering;\n break;\n case 0x00020000:\n const numGlyphs = font.getUint16();\n if (numGlyphs !== maxpNumGlyphs) {\n valid = false;\n break;\n }\n const glyphNameIndexes = [];\n for (i = 0; i < numGlyphs; ++i) {\n const index = font.getUint16();\n if (index >= 32768) {\n valid = false;\n break;\n }\n glyphNameIndexes.push(index);\n }\n if (!valid) {\n break;\n }\n const customNames = [],\n strBuf = [];\n while (font.pos < end) {\n const stringLength = font.getByte();\n strBuf.length = stringLength;\n for (i = 0; i < stringLength; ++i) {\n strBuf[i] = String.fromCharCode(font.getByte());\n }\n customNames.push(strBuf.join(\"\"));\n }\n glyphNames = [];\n for (i = 0; i < numGlyphs; ++i) {\n const j = glyphNameIndexes[i];\n if (j < 258) {\n glyphNames.push(MacStandardGlyphOrdering[j]);\n continue;\n }\n glyphNames.push(customNames[j - 258]);\n }\n break;\n case 0x00030000:\n break;\n default:\n warn(\"Unknown/unsupported post table version \" + version);\n valid = false;\n if (propertiesObj.defaultEncoding) {\n glyphNames = propertiesObj.defaultEncoding;\n }\n break;\n }\n propertiesObj.glyphNames = glyphNames;\n return valid;\n }\n\n function readNameTable(nameTable) {\n const start = (font.start ? font.start : 0) + nameTable.offset;\n font.pos = start;\n\n const names = [[], []];\n const length = nameTable.length,\n end = start + length;\n const format = font.getUint16();\n const FORMAT_0_HEADER_LENGTH = 6;\n if (format !== 0 || length < FORMAT_0_HEADER_LENGTH) {\n // unsupported name table format or table \"too\" small\n return names;\n }\n const numRecords = font.getUint16();\n const stringsStart = font.getUint16();\n const records = [];\n const NAME_RECORD_LENGTH = 12;\n let i, ii;\n\n for (i = 0; i < numRecords && font.pos + NAME_RECORD_LENGTH <= end; i++) {\n const r = {\n platform: font.getUint16(),\n encoding: font.getUint16(),\n language: font.getUint16(),\n name: font.getUint16(),\n length: font.getUint16(),\n offset: font.getUint16(),\n };\n // using only Macintosh and Windows platform/encoding names\n if (\n (r.platform === 1 && r.encoding === 0 && r.language === 0) ||\n (r.platform === 3 && r.encoding === 1 && r.language === 0x409)\n ) {\n records.push(r);\n }\n }\n for (i = 0, ii = records.length; i < ii; i++) {\n const record = records[i];\n if (record.length <= 0) {\n continue; // Nothing to process, ignoring.\n }\n const pos = start + stringsStart + record.offset;\n if (pos + record.length > end) {\n continue; // outside of name table, ignoring\n }\n font.pos = pos;\n const nameIndex = record.name;\n if (record.encoding) {\n // unicode\n let str = \"\";\n for (let j = 0, jj = record.length; j < jj; j += 2) {\n str += String.fromCharCode(font.getUint16());\n }\n names[1][nameIndex] = str;\n } else {\n names[0][nameIndex] = font.getString(record.length);\n }\n }\n return names;\n }\n\n // prettier-ignore\n const TTOpsStackDeltas = [\n 0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, 0, 0, -2, -5,\n -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1,\n 1, -1, -999, 0, 1, 0, -1, -2, 0, -1, -2, -1, -1, 0, -1, -1,\n 0, 0, -999, -999, -1, -1, -1, -1, -2, -999, -2, -2, -999, 0, -2, -2,\n 0, 0, -2, 0, -2, 0, 0, 0, -2, -1, -1, 1, 1, 0, 0, -1,\n -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, 0, -999, -1, -1,\n -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n -2, -999, -999, -999, -999, -999, -1, -1, -2, -2, 0, 0, 0, 0, -1, -1,\n -999, -2, -2, 0, 0, -1, -2, -2, 0, 0, 0, -1, -1, -1, -2];\n // 0xC0-DF == -1 and 0xE0-FF == -2\n\n function sanitizeTTProgram(table, ttContext) {\n let data = table.data;\n let i = 0,\n j,\n n,\n b,\n funcId,\n pc,\n lastEndf = 0,\n lastDeff = 0;\n const stack = [];\n const callstack = [];\n const functionsCalled = [];\n let tooComplexToFollowFunctions = ttContext.tooComplexToFollowFunctions;\n let inFDEF = false,\n ifLevel = 0,\n inELSE = 0;\n for (let ii = data.length; i < ii; ) {\n const op = data[i++];\n // The TrueType instruction set docs can be found at\n // https://developer.apple.com/fonts/TTRefMan/RM05/Chap5.html\n if (op === 0x40) {\n // NPUSHB - pushes n bytes\n n = data[i++];\n if (inFDEF || inELSE) {\n i += n;\n } else {\n for (j = 0; j < n; j++) {\n stack.push(data[i++]);\n }\n }\n } else if (op === 0x41) {\n // NPUSHW - pushes n words\n n = data[i++];\n if (inFDEF || inELSE) {\n i += n * 2;\n } else {\n for (j = 0; j < n; j++) {\n b = data[i++];\n stack.push((b << 8) | data[i++]);\n }\n }\n } else if ((op & 0xf8) === 0xb0) {\n // PUSHB - pushes bytes\n n = op - 0xb0 + 1;\n if (inFDEF || inELSE) {\n i += n;\n } else {\n for (j = 0; j < n; j++) {\n stack.push(data[i++]);\n }\n }\n } else if ((op & 0xf8) === 0xb8) {\n // PUSHW - pushes words\n n = op - 0xb8 + 1;\n if (inFDEF || inELSE) {\n i += n * 2;\n } else {\n for (j = 0; j < n; j++) {\n b = data[i++];\n stack.push((b << 8) | data[i++]);\n }\n }\n } else if (op === 0x2b && !tooComplexToFollowFunctions) {\n // CALL\n if (!inFDEF && !inELSE) {\n // collecting information about which functions are used\n funcId = stack[stack.length - 1];\n if (isNaN(funcId)) {\n info(\"TT: CALL empty stack (or invalid entry).\");\n } else {\n ttContext.functionsUsed[funcId] = true;\n if (funcId in ttContext.functionsStackDeltas) {\n const newStackLength =\n stack.length + ttContext.functionsStackDeltas[funcId];\n if (newStackLength < 0) {\n warn(\"TT: CALL invalid functions stack delta.\");\n ttContext.hintsValid = false;\n return;\n }\n stack.length = newStackLength;\n } else if (\n funcId in ttContext.functionsDefined &&\n !functionsCalled.includes(funcId)\n ) {\n callstack.push({ data, i, stackTop: stack.length - 1 });\n functionsCalled.push(funcId);\n pc = ttContext.functionsDefined[funcId];\n if (!pc) {\n warn(\"TT: CALL non-existent function\");\n ttContext.hintsValid = false;\n return;\n }\n data = pc.data;\n i = pc.i;\n }\n }\n }\n } else if (op === 0x2c && !tooComplexToFollowFunctions) {\n // FDEF\n if (inFDEF || inELSE) {\n warn(\"TT: nested FDEFs not allowed\");\n tooComplexToFollowFunctions = true;\n }\n inFDEF = true;\n // collecting information about which functions are defined\n lastDeff = i;\n funcId = stack.pop();\n ttContext.functionsDefined[funcId] = { data, i };\n } else if (op === 0x2d) {\n // ENDF - end of function\n if (inFDEF) {\n inFDEF = false;\n lastEndf = i;\n } else {\n pc = callstack.pop();\n if (!pc) {\n warn(\"TT: ENDF bad stack\");\n ttContext.hintsValid = false;\n return;\n }\n funcId = functionsCalled.pop();\n data = pc.data;\n i = pc.i;\n ttContext.functionsStackDeltas[funcId] = stack.length - pc.stackTop;\n }\n } else if (op === 0x89) {\n // IDEF - instruction definition\n if (inFDEF || inELSE) {\n warn(\"TT: nested IDEFs not allowed\");\n tooComplexToFollowFunctions = true;\n }\n inFDEF = true;\n // recording it as a function to track ENDF\n lastDeff = i;\n } else if (op === 0x58) {\n // IF\n ++ifLevel;\n } else if (op === 0x1b) {\n // ELSE\n inELSE = ifLevel;\n } else if (op === 0x59) {\n // EIF\n if (inELSE === ifLevel) {\n inELSE = 0;\n }\n --ifLevel;\n } else if (op === 0x1c) {\n // JMPR\n if (!inFDEF && !inELSE) {\n const offset = stack[stack.length - 1];\n // only jumping forward to prevent infinite loop\n if (offset > 0) {\n i += offset - 1;\n }\n }\n }\n // Adjusting stack not extactly, but just enough to get function id\n if (!inFDEF && !inELSE) {\n let stackDelta = 0;\n if (op <= 0x8e) {\n stackDelta = TTOpsStackDeltas[op];\n } else if (op >= 0xc0 && op <= 0xdf) {\n stackDelta = -1;\n } else if (op >= 0xe0) {\n stackDelta = -2;\n }\n if (op >= 0x71 && op <= 0x75) {\n n = stack.pop();\n if (!isNaN(n)) {\n stackDelta = -n * 2;\n }\n }\n while (stackDelta < 0 && stack.length > 0) {\n stack.pop();\n stackDelta++;\n }\n while (stackDelta > 0) {\n stack.push(NaN); // pushing any number into stack\n stackDelta--;\n }\n }\n }\n ttContext.tooComplexToFollowFunctions = tooComplexToFollowFunctions;\n const content = [data];\n if (i > data.length) {\n content.push(new Uint8Array(i - data.length));\n }\n if (lastDeff > lastEndf) {\n warn(\"TT: complementing a missing function tail\");\n // new function definition started, but not finished\n // complete function by [CLEAR, ENDF]\n content.push(new Uint8Array([0x22, 0x2d]));\n }\n foldTTTable(table, content);\n }\n\n function checkInvalidFunctions(ttContext, maxFunctionDefs) {\n if (ttContext.tooComplexToFollowFunctions) {\n return;\n }\n if (ttContext.functionsDefined.length > maxFunctionDefs) {\n warn(\"TT: more functions defined than expected\");\n ttContext.hintsValid = false;\n return;\n }\n for (let j = 0, jj = ttContext.functionsUsed.length; j < jj; j++) {\n if (j > maxFunctionDefs) {\n warn(\"TT: invalid function id: \" + j);\n ttContext.hintsValid = false;\n return;\n }\n if (ttContext.functionsUsed[j] && !ttContext.functionsDefined[j]) {\n warn(\"TT: undefined function: \" + j);\n ttContext.hintsValid = false;\n return;\n }\n }\n }\n\n function foldTTTable(table, content) {\n if (content.length > 1) {\n // concatenating the content items\n let newLength = 0;\n let j, jj;\n for (j = 0, jj = content.length; j < jj; j++) {\n newLength += content[j].length;\n }\n newLength = (newLength + 3) & ~3;\n const result = new Uint8Array(newLength);\n let pos = 0;\n for (j = 0, jj = content.length; j < jj; j++) {\n result.set(content[j], pos);\n pos += content[j].length;\n }\n table.data = result;\n table.length = newLength;\n }\n }\n\n function sanitizeTTPrograms(fpgm, prep, cvt, maxFunctionDefs) {\n const ttContext = {\n functionsDefined: [],\n functionsUsed: [],\n functionsStackDeltas: [],\n tooComplexToFollowFunctions: false,\n hintsValid: true,\n };\n if (fpgm) {\n sanitizeTTProgram(fpgm, ttContext);\n }\n if (prep) {\n sanitizeTTProgram(prep, ttContext);\n }\n if (fpgm) {\n checkInvalidFunctions(ttContext, maxFunctionDefs);\n }\n if (cvt && cvt.length & 1) {\n const cvtData = new Uint8Array(cvt.length + 1);\n cvtData.set(cvt.data);\n cvt.data = cvtData;\n }\n return ttContext.hintsValid;\n }\n\n // The following steps modify the original font data, making copy\n font = new Stream(new Uint8Array(font.getBytes()));\n\n let header, tables;\n if (isTrueTypeCollectionFile(font)) {\n const ttcData = readTrueTypeCollectionData(font, this.name);\n header = ttcData.header;\n tables = ttcData.tables;\n } else {\n header = readOpenTypeHeader(font);\n tables = readTables(font, header.numTables);\n }\n let cff, cffFile;\n\n const isTrueType = !tables[\"CFF \"];\n if (!isTrueType) {\n const isComposite =\n properties.composite &&\n ((properties.cidToGidMap || []).length > 0 ||\n !(properties.cMap instanceof IdentityCMap));\n // OpenType font (skip composite fonts with non-default glyph mapping).\n if (\n (header.version === \"OTTO\" && !isComposite) ||\n !tables.head ||\n !tables.hhea ||\n !tables.maxp ||\n !tables.post\n ) {\n // No major tables: throwing everything at `CFFFont`.\n cffFile = new Stream(tables[\"CFF \"].data);\n cff = new CFFFont(cffFile, properties);\n\n adjustWidths(properties);\n\n return this.convert(name, cff, properties);\n }\n\n delete tables.glyf;\n delete tables.loca;\n delete tables.fpgm;\n delete tables.prep;\n delete tables[\"cvt \"];\n this.isOpenType = true;\n } else {\n if (!tables.loca) {\n throw new FormatError('Required \"loca\" table is not found');\n }\n if (!tables.glyf) {\n warn('Required \"glyf\" table is not found -- trying to recover.');\n // Note: We use `sanitizeGlyphLocations` to add dummy glyf data below.\n tables.glyf = {\n tag: \"glyf\",\n data: new Uint8Array(0),\n };\n }\n this.isOpenType = false;\n }\n\n if (!tables.maxp) {\n throw new FormatError('Required \"maxp\" table is not found');\n }\n\n font.pos = (font.start || 0) + tables.maxp.offset;\n const version = font.getInt32();\n const numGlyphs = font.getUint16();\n\n if (\n properties.scaleFactors &&\n properties.scaleFactors.length === numGlyphs &&\n isTrueType\n ) {\n const { scaleFactors } = properties;\n const isGlyphLocationsLong = int16(\n tables.head.data[50],\n tables.head.data[51]\n );\n\n const glyphs = new GlyfTable({\n glyfTable: tables.glyf.data,\n isGlyphLocationsLong,\n locaTable: tables.loca.data,\n numGlyphs,\n });\n glyphs.scale(scaleFactors);\n\n const { glyf, loca, isLocationLong } = glyphs.write();\n tables.glyf.data = glyf;\n tables.loca.data = loca;\n\n if (isLocationLong !== !!isGlyphLocationsLong) {\n tables.head.data[50] = 0;\n tables.head.data[51] = isLocationLong ? 1 : 0;\n }\n\n const metrics = tables.hmtx.data;\n\n for (let i = 0; i < numGlyphs; i++) {\n const j = 4 * i;\n const advanceWidth = Math.round(\n scaleFactors[i] * int16(metrics[j], metrics[j + 1])\n );\n metrics[j] = (advanceWidth >> 8) & 0xff;\n metrics[j + 1] = advanceWidth & 0xff;\n const lsb = Math.round(\n scaleFactors[i] * signedInt16(metrics[j + 2], metrics[j + 3])\n );\n writeSignedInt16(metrics, j + 2, lsb);\n }\n }\n\n // Glyph 0 is duplicated and appended.\n let numGlyphsOut = numGlyphs + 1;\n let dupFirstEntry = true;\n if (numGlyphsOut > 0xffff) {\n dupFirstEntry = false;\n numGlyphsOut = numGlyphs;\n warn(\"Not enough space in glyfs to duplicate first glyph.\");\n }\n let maxFunctionDefs = 0;\n let maxSizeOfInstructions = 0;\n if (version >= 0x00010000 && tables.maxp.length >= 22) {\n // maxZones can be invalid\n font.pos += 8;\n const maxZones = font.getUint16();\n if (maxZones > 2) {\n // reset to 2 if font has invalid maxZones\n tables.maxp.data[14] = 0;\n tables.maxp.data[15] = 2;\n }\n font.pos += 4;\n maxFunctionDefs = font.getUint16();\n font.pos += 4;\n maxSizeOfInstructions = font.getUint16();\n }\n\n tables.maxp.data[4] = numGlyphsOut >> 8;\n tables.maxp.data[5] = numGlyphsOut & 255;\n\n const hintsValid = sanitizeTTPrograms(\n tables.fpgm,\n tables.prep,\n tables[\"cvt \"],\n maxFunctionDefs\n );\n if (!hintsValid) {\n delete tables.fpgm;\n delete tables.prep;\n delete tables[\"cvt \"];\n }\n\n // Ensure the hmtx table contains the advance width and\n // sidebearings information for numGlyphs in the maxp table\n sanitizeMetrics(\n font,\n tables.hhea,\n tables.hmtx,\n tables.head,\n numGlyphsOut,\n dupFirstEntry\n );\n\n if (!tables.head) {\n throw new FormatError('Required \"head\" table is not found');\n }\n\n sanitizeHead(tables.head, numGlyphs, isTrueType ? tables.loca.length : 0);\n\n let missingGlyphs = Object.create(null);\n if (isTrueType) {\n const isGlyphLocationsLong = int16(\n tables.head.data[50],\n tables.head.data[51]\n );\n const glyphsInfo = sanitizeGlyphLocations(\n tables.loca,\n tables.glyf,\n numGlyphs,\n isGlyphLocationsLong,\n hintsValid,\n dupFirstEntry,\n maxSizeOfInstructions\n );\n missingGlyphs = glyphsInfo.missingGlyphs;\n\n // Some fonts have incorrect maxSizeOfInstructions values, so we use\n // the computed value instead.\n if (version >= 0x00010000 && tables.maxp.length >= 22) {\n tables.maxp.data[26] = glyphsInfo.maxSizeOfInstructions >> 8;\n tables.maxp.data[27] = glyphsInfo.maxSizeOfInstructions & 255;\n }\n }\n if (!tables.hhea) {\n throw new FormatError('Required \"hhea\" table is not found');\n }\n\n // Sanitizer reduces the glyph advanceWidth to the maxAdvanceWidth\n // Sometimes it's 0. That needs to be fixed\n if (tables.hhea.data[10] === 0 && tables.hhea.data[11] === 0) {\n tables.hhea.data[10] = 0xff;\n tables.hhea.data[11] = 0xff;\n }\n\n // Extract some more font properties from the OpenType head and\n // hhea tables; yMin and descent value are always negative.\n const metricsOverride = {\n unitsPerEm: int16(tables.head.data[18], tables.head.data[19]),\n yMax: int16(tables.head.data[42], tables.head.data[43]),\n yMin: signedInt16(tables.head.data[38], tables.head.data[39]),\n ascent: signedInt16(tables.hhea.data[4], tables.hhea.data[5]),\n descent: signedInt16(tables.hhea.data[6], tables.hhea.data[7]),\n lineGap: signedInt16(tables.hhea.data[8], tables.hhea.data[9]),\n };\n\n // PDF FontDescriptor metrics lie -- using data from actual font.\n this.ascent = metricsOverride.ascent / metricsOverride.unitsPerEm;\n this.descent = metricsOverride.descent / metricsOverride.unitsPerEm;\n this.lineGap = metricsOverride.lineGap / metricsOverride.unitsPerEm;\n\n if (this.cssFontInfo && this.cssFontInfo.lineHeight) {\n this.lineHeight = this.cssFontInfo.metrics.lineHeight;\n this.lineGap = this.cssFontInfo.metrics.lineGap;\n } else {\n this.lineHeight = this.ascent - this.descent + this.lineGap;\n }\n\n // The 'post' table has glyphs names.\n if (tables.post) {\n readPostScriptTable(tables.post, properties, numGlyphs);\n }\n\n // The original 'post' table is not needed, replace it.\n tables.post = {\n tag: \"post\",\n data: createPostTable(properties),\n };\n\n const charCodeToGlyphId = [];\n\n // Helper function to try to skip mapping of empty glyphs.\n function hasGlyph(glyphId) {\n return !missingGlyphs[glyphId];\n }\n\n if (properties.composite) {\n const cidToGidMap = properties.cidToGidMap || [];\n const isCidToGidMapEmpty = cidToGidMap.length === 0;\n\n properties.cMap.forEach(function (charCode, cid) {\n if (typeof cid === \"string\") {\n cid = convertCidString(charCode, cid, /* shouldThrow = */ true);\n }\n if (cid > 0xffff) {\n throw new FormatError(\"Max size of CID is 65,535\");\n }\n let glyphId = -1;\n if (isCidToGidMapEmpty) {\n glyphId = cid;\n } else if (cidToGidMap[cid] !== undefined) {\n glyphId = cidToGidMap[cid];\n }\n\n if (glyphId >= 0 && glyphId < numGlyphs && hasGlyph(glyphId)) {\n charCodeToGlyphId[charCode] = glyphId;\n }\n });\n } else {\n // Most of the following logic in this code branch is based on the\n // 9.6.6.4 of the PDF spec.\n const cmapTable = readCmapTable(\n tables.cmap,\n font,\n this.isSymbolicFont,\n properties.hasEncoding\n );\n const cmapPlatformId = cmapTable.platformId;\n const cmapEncodingId = cmapTable.encodingId;\n const cmapMappings = cmapTable.mappings;\n const cmapMappingsLength = cmapMappings.length;\n let baseEncoding = [],\n forcePostTable = false;\n if (\n properties.hasEncoding &&\n (properties.baseEncodingName === \"MacRomanEncoding\" ||\n properties.baseEncodingName === \"WinAnsiEncoding\")\n ) {\n baseEncoding = getEncoding(properties.baseEncodingName);\n }\n\n // If the font has an encoding and is not symbolic then follow the rules\n // in section 9.6.6.4 of the spec on how to map 3,1 and 1,0 cmaps.\n if (\n properties.hasEncoding &&\n !this.isSymbolicFont &&\n ((cmapPlatformId === 3 && cmapEncodingId === 1) ||\n (cmapPlatformId === 1 && cmapEncodingId === 0))\n ) {\n const glyphsUnicodeMap = getGlyphsUnicode();\n for (let charCode = 0; charCode < 256; charCode++) {\n let glyphName;\n if (this.differences[charCode] !== undefined) {\n glyphName = this.differences[charCode];\n } else if (baseEncoding.length && baseEncoding[charCode] !== \"\") {\n glyphName = baseEncoding[charCode];\n } else {\n glyphName = StandardEncoding[charCode];\n }\n if (!glyphName) {\n continue;\n }\n // Ensure that non-standard glyph names are resolved to valid ones.\n const standardGlyphName = recoverGlyphName(\n glyphName,\n glyphsUnicodeMap\n );\n\n let unicodeOrCharCode;\n if (cmapPlatformId === 3 && cmapEncodingId === 1) {\n unicodeOrCharCode = glyphsUnicodeMap[standardGlyphName];\n } else if (cmapPlatformId === 1 && cmapEncodingId === 0) {\n // TODO: the encoding needs to be updated with mac os table.\n unicodeOrCharCode = MacRomanEncoding.indexOf(standardGlyphName);\n }\n\n if (unicodeOrCharCode === undefined) {\n // Not a valid glyph name, fallback to using the /ToUnicode map\n // when no post-table exists (fixes issue13316_reduced.pdf).\n if (\n !properties.glyphNames &&\n properties.hasIncludedToUnicodeMap &&\n !(this.toUnicode instanceof IdentityToUnicodeMap)\n ) {\n const unicode = this.toUnicode.get(charCode);\n if (unicode) {\n unicodeOrCharCode = unicode.codePointAt(0);\n }\n }\n\n if (unicodeOrCharCode === undefined) {\n continue; // No valid glyph mapping found.\n }\n }\n\n for (let i = 0; i < cmapMappingsLength; ++i) {\n if (cmapMappings[i].charCode !== unicodeOrCharCode) {\n continue;\n }\n charCodeToGlyphId[charCode] = cmapMappings[i].glyphId;\n break;\n }\n }\n } else if (cmapPlatformId === 0) {\n // Default Unicode semantics, use the charcodes as is.\n for (let i = 0; i < cmapMappingsLength; ++i) {\n charCodeToGlyphId[cmapMappings[i].charCode] = cmapMappings[i].glyphId;\n }\n // Always prefer the BaseEncoding/Differences arrays, when they exist\n // (fixes issue13433.pdf).\n forcePostTable = true;\n } else {\n // When there is only a (1, 0) cmap table, the char code is a single\n // byte and it is used directly as the char code.\n\n // When a (3, 0) cmap table is present, it is used instead but the\n // spec has special rules for char codes in the range of 0xF000 to\n // 0xF0FF and it says the (3, 0) table should map the values from\n // the (1, 0) table by prepending 0xF0 to the char codes. To reverse\n // this, the upper bits of the char code are cleared, but only for the\n // special range since some PDFs have char codes outside of this range\n // (e.g. 0x2013) which when masked would overwrite other values in the\n // cmap.\n for (let i = 0; i < cmapMappingsLength; ++i) {\n let charCode = cmapMappings[i].charCode;\n if (\n cmapPlatformId === 3 &&\n charCode >= 0xf000 &&\n charCode <= 0xf0ff\n ) {\n charCode &= 0xff;\n }\n charCodeToGlyphId[charCode] = cmapMappings[i].glyphId;\n }\n }\n\n // Last, try to map any missing charcodes using the post table.\n if (\n properties.glyphNames &&\n (baseEncoding.length || this.differences.length)\n ) {\n for (let i = 0; i < 256; ++i) {\n if (!forcePostTable && charCodeToGlyphId[i] !== undefined) {\n continue;\n }\n const glyphName = this.differences[i] || baseEncoding[i];\n if (!glyphName) {\n continue;\n }\n const glyphId = properties.glyphNames.indexOf(glyphName);\n if (glyphId > 0 && hasGlyph(glyphId)) {\n charCodeToGlyphId[i] = glyphId;\n }\n }\n }\n }\n\n if (charCodeToGlyphId.length === 0) {\n // defines at least one glyph\n charCodeToGlyphId[0] = 0;\n }\n\n // Typically glyph 0 is duplicated and the mapping must be updated, but if\n // there isn't enough room to duplicate, the glyph id is left the same. In\n // this case, glyph 0 may not work correctly, but that is better than\n // having the whole font fail.\n let glyphZeroId = numGlyphsOut - 1;\n if (!dupFirstEntry) {\n glyphZeroId = 0;\n }\n\n // When `cssFontInfo` is set, the font is used to render text in the HTML\n // view (e.g. with Xfa) so nothing must be moved in the private use area.\n if (!properties.cssFontInfo) {\n // Converting glyphs and ids into font's cmap table\n const newMapping = adjustMapping(\n charCodeToGlyphId,\n hasGlyph,\n glyphZeroId\n );\n this.toFontChar = newMapping.toFontChar;\n tables.cmap = {\n tag: \"cmap\",\n data: createCmapTable(newMapping.charCodeToGlyphId, numGlyphsOut),\n };\n\n if (!tables[\"OS/2\"] || !validateOS2Table(tables[\"OS/2\"], font)) {\n tables[\"OS/2\"] = {\n tag: \"OS/2\",\n data: createOS2Table(\n properties,\n newMapping.charCodeToGlyphId,\n metricsOverride\n ),\n };\n }\n }\n\n if (!isTrueType) {\n try {\n // Trying to repair CFF file\n cffFile = new Stream(tables[\"CFF \"].data);\n const parser = new CFFParser(\n cffFile,\n properties,\n SEAC_ANALYSIS_ENABLED\n );\n cff = parser.parse();\n cff.duplicateFirstGlyph();\n const compiler = new CFFCompiler(cff);\n tables[\"CFF \"].data = compiler.compile();\n } catch (e) {\n warn(\"Failed to compile font \" + properties.loadedName);\n }\n }\n\n // Re-creating 'name' table\n if (!tables.name) {\n tables.name = {\n tag: \"name\",\n data: createNameTable(this.name),\n };\n } else {\n // ... using existing 'name' table as prototype\n const namePrototype = readNameTable(tables.name);\n tables.name.data = createNameTable(name, namePrototype);\n this.psName = namePrototype[0][6] || null;\n }\n\n const builder = new OpenTypeFileBuilder(header.version);\n for (const tableTag in tables) {\n builder.addTable(tableTag, tables[tableTag].data);\n }\n return builder.toArray();\n }\n\n convert(fontName, font, properties) {\n // TODO: Check the charstring widths to determine this.\n properties.fixedPitch = false;\n\n if (properties.builtInEncoding) {\n // For Type1 fonts that do not include either `ToUnicode` or `Encoding`\n // data, attempt to use the `builtInEncoding` to improve text selection.\n adjustToUnicode(properties, properties.builtInEncoding);\n }\n\n // Type 1 fonts have a notdef inserted at the beginning, so glyph 0\n // becomes glyph 1. In a CFF font glyph 0 is appended to the end of the\n // char strings.\n let glyphZeroId = 1;\n if (font instanceof CFFFont) {\n glyphZeroId = font.numGlyphs - 1;\n }\n const mapping = font.getGlyphMapping(properties);\n let newMapping = null;\n let newCharCodeToGlyphId = mapping;\n\n // When `cssFontInfo` is set, the font is used to render text in the HTML\n // view (e.g. with Xfa) so nothing must be moved in the private use area.\n if (!properties.cssFontInfo) {\n newMapping = adjustMapping(\n mapping,\n font.hasGlyphId.bind(font),\n glyphZeroId\n );\n this.toFontChar = newMapping.toFontChar;\n newCharCodeToGlyphId = newMapping.charCodeToGlyphId;\n }\n const numGlyphs = font.numGlyphs;\n\n function getCharCodes(charCodeToGlyphId, glyphId) {\n let charCodes = null;\n for (const charCode in charCodeToGlyphId) {\n if (glyphId === charCodeToGlyphId[charCode]) {\n if (!charCodes) {\n charCodes = [];\n }\n charCodes.push(charCode | 0);\n }\n }\n return charCodes;\n }\n\n function createCharCode(charCodeToGlyphId, glyphId) {\n for (const charCode in charCodeToGlyphId) {\n if (glyphId === charCodeToGlyphId[charCode]) {\n return charCode | 0;\n }\n }\n newMapping.charCodeToGlyphId[newMapping.nextAvailableFontCharCode] =\n glyphId;\n return newMapping.nextAvailableFontCharCode++;\n }\n\n const seacs = font.seacs;\n if (newMapping && SEAC_ANALYSIS_ENABLED && seacs && seacs.length) {\n const matrix = properties.fontMatrix || FONT_IDENTITY_MATRIX;\n const charset = font.getCharset();\n const seacMap = Object.create(null);\n for (let glyphId in seacs) {\n glyphId |= 0;\n const seac = seacs[glyphId];\n const baseGlyphName = StandardEncoding[seac[2]];\n const accentGlyphName = StandardEncoding[seac[3]];\n const baseGlyphId = charset.indexOf(baseGlyphName);\n const accentGlyphId = charset.indexOf(accentGlyphName);\n if (baseGlyphId < 0 || accentGlyphId < 0) {\n continue;\n }\n const accentOffset = {\n x: seac[0] * matrix[0] + seac[1] * matrix[2] + matrix[4],\n y: seac[0] * matrix[1] + seac[1] * matrix[3] + matrix[5],\n };\n\n const charCodes = getCharCodes(mapping, glyphId);\n if (!charCodes) {\n // There's no point in mapping it if the char code was never mapped\n // to begin with.\n continue;\n }\n for (let i = 0, ii = charCodes.length; i < ii; i++) {\n const charCode = charCodes[i];\n // Find a fontCharCode that maps to the base and accent glyphs.\n // If one doesn't exists, create it.\n const charCodeToGlyphId = newMapping.charCodeToGlyphId;\n const baseFontCharCode = createCharCode(\n charCodeToGlyphId,\n baseGlyphId\n );\n const accentFontCharCode = createCharCode(\n charCodeToGlyphId,\n accentGlyphId\n );\n seacMap[charCode] = {\n baseFontCharCode,\n accentFontCharCode,\n accentOffset,\n };\n }\n }\n properties.seacMap = seacMap;\n }\n\n const unitsPerEm = 1 / (properties.fontMatrix || FONT_IDENTITY_MATRIX)[0];\n\n const builder = new OpenTypeFileBuilder(\"\\x4F\\x54\\x54\\x4F\");\n // PostScript Font Program\n builder.addTable(\"CFF \", font.data);\n // OS/2 and Windows Specific metrics\n builder.addTable(\"OS/2\", createOS2Table(properties, newCharCodeToGlyphId));\n // Character to glyphs mapping\n builder.addTable(\"cmap\", createCmapTable(newCharCodeToGlyphId, numGlyphs));\n // Font header\n builder.addTable(\n \"head\",\n \"\\x00\\x01\\x00\\x00\" + // Version number\n \"\\x00\\x00\\x10\\x00\" + // fontRevision\n \"\\x00\\x00\\x00\\x00\" + // checksumAdjustement\n \"\\x5F\\x0F\\x3C\\xF5\" + // magicNumber\n \"\\x00\\x00\" + // Flags\n safeString16(unitsPerEm) + // unitsPerEM\n \"\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27\" + // creation date\n \"\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27\" + // modifification date\n \"\\x00\\x00\" + // xMin\n safeString16(properties.descent) + // yMin\n \"\\x0F\\xFF\" + // xMax\n safeString16(properties.ascent) + // yMax\n string16(properties.italicAngle ? 2 : 0) + // macStyle\n \"\\x00\\x11\" + // lowestRecPPEM\n \"\\x00\\x00\" + // fontDirectionHint\n \"\\x00\\x00\" + // indexToLocFormat\n \"\\x00\\x00\"\n ); // glyphDataFormat\n\n // Horizontal header\n builder.addTable(\n \"hhea\",\n \"\\x00\\x01\\x00\\x00\" + // Version number\n safeString16(properties.ascent) + // Typographic Ascent\n safeString16(properties.descent) + // Typographic Descent\n \"\\x00\\x00\" + // Line Gap\n \"\\xFF\\xFF\" + // advanceWidthMax\n \"\\x00\\x00\" + // minLeftSidebearing\n \"\\x00\\x00\" + // minRightSidebearing\n \"\\x00\\x00\" + // xMaxExtent\n safeString16(properties.capHeight) + // caretSlopeRise\n safeString16(Math.tan(properties.italicAngle) * properties.xHeight) + // caretSlopeRun\n \"\\x00\\x00\" + // caretOffset\n \"\\x00\\x00\" + // -reserved-\n \"\\x00\\x00\" + // -reserved-\n \"\\x00\\x00\" + // -reserved-\n \"\\x00\\x00\" + // -reserved-\n \"\\x00\\x00\" + // metricDataFormat\n string16(numGlyphs)\n ); // Number of HMetrics\n\n // Horizontal metrics\n builder.addTable(\n \"hmtx\",\n (function fontFieldsHmtx() {\n const charstrings = font.charstrings;\n const cffWidths = font.cff ? font.cff.widths : null;\n let hmtx = \"\\x00\\x00\\x00\\x00\"; // Fake .notdef\n for (let i = 1, ii = numGlyphs; i < ii; i++) {\n let width = 0;\n if (charstrings) {\n const charstring = charstrings[i - 1];\n width = \"width\" in charstring ? charstring.width : 0;\n } else if (cffWidths) {\n width = Math.ceil(cffWidths[i] || 0);\n }\n hmtx += string16(width) + string16(0);\n }\n return hmtx;\n })()\n );\n\n // Maximum profile\n builder.addTable(\n \"maxp\",\n \"\\x00\\x00\\x50\\x00\" + string16(numGlyphs) // Version number\n ); // Num of glyphs\n\n // Naming tables\n builder.addTable(\"name\", createNameTable(fontName));\n\n // PostScript information\n builder.addTable(\"post\", createPostTable(properties));\n\n return builder.toArray();\n }\n\n get spaceWidth() {\n // trying to estimate space character width\n const possibleSpaceReplacements = [\"space\", \"minus\", \"one\", \"i\", \"I\"];\n let width;\n for (let i = 0, ii = possibleSpaceReplacements.length; i < ii; i++) {\n const glyphName = possibleSpaceReplacements[i];\n // if possible, getting width by glyph name\n if (glyphName in this.widths) {\n width = this.widths[glyphName];\n break;\n }\n const glyphsUnicodeMap = getGlyphsUnicode();\n const glyphUnicode = glyphsUnicodeMap[glyphName];\n // finding the charcode via unicodeToCID map\n let charcode = 0;\n if (this.composite && this.cMap.contains(glyphUnicode)) {\n charcode = this.cMap.lookup(glyphUnicode);\n\n if (typeof charcode === \"string\") {\n charcode = convertCidString(glyphUnicode, charcode);\n }\n }\n // ... via toUnicode map\n if (!charcode && this.toUnicode) {\n charcode = this.toUnicode.charCodeOf(glyphUnicode);\n }\n // setting it to unicode if negative or undefined\n if (charcode <= 0) {\n charcode = glyphUnicode;\n }\n // trying to get width via charcode\n width = this.widths[charcode];\n if (width) {\n break; // the non-zero width found\n }\n }\n width = width || this.defaultWidth;\n return shadow(this, \"spaceWidth\", width);\n }\n\n /**\n * @private\n */\n _charToGlyph(charcode, isSpace = false) {\n let fontCharCode, width, operatorListId;\n\n let widthCode = charcode;\n if (this.cMap && this.cMap.contains(charcode)) {\n widthCode = this.cMap.lookup(charcode);\n\n if (typeof widthCode === \"string\") {\n widthCode = convertCidString(charcode, widthCode);\n }\n }\n width = this.widths[widthCode];\n if (typeof width !== \"number\") {\n width = this.defaultWidth;\n }\n const vmetric = this.vmetrics && this.vmetrics[widthCode];\n\n let unicode = this.toUnicode.get(charcode) || charcode;\n if (typeof unicode === \"number\") {\n unicode = String.fromCharCode(unicode);\n }\n\n let isInFont = this.toFontChar[charcode] !== undefined;\n // First try the toFontChar map, if it's not there then try falling\n // back to the char code.\n fontCharCode = this.toFontChar[charcode] || charcode;\n if (this.missingFile) {\n const glyphName =\n this.differences[charcode] || this.defaultEncoding[charcode];\n if (\n (glyphName === \".notdef\" || glyphName === \"\") &&\n this.type === \"Type1\"\n ) {\n // .notdef glyphs should be invisible in non-embedded Type1 fonts, so\n // replace them with spaces.\n fontCharCode = 0x20;\n }\n fontCharCode = mapSpecialUnicodeValues(fontCharCode);\n }\n\n if (this.isType3Font) {\n // Font char code in this case is actually a glyph name.\n operatorListId = fontCharCode;\n }\n\n let accent = null;\n if (this.seacMap && this.seacMap[charcode]) {\n isInFont = true;\n const seac = this.seacMap[charcode];\n fontCharCode = seac.baseFontCharCode;\n accent = {\n fontChar: String.fromCodePoint(seac.accentFontCharCode),\n offset: seac.accentOffset,\n };\n }\n\n let fontChar = \"\";\n if (typeof fontCharCode === \"number\") {\n if (fontCharCode <= 0x10ffff) {\n fontChar = String.fromCodePoint(fontCharCode);\n } else {\n warn(`charToGlyph - invalid fontCharCode: ${fontCharCode}`);\n }\n }\n\n let glyph = this._glyphCache[charcode];\n if (\n !glyph ||\n !glyph.matchesForCache(\n charcode,\n fontChar,\n unicode,\n accent,\n width,\n vmetric,\n operatorListId,\n isSpace,\n isInFont\n )\n ) {\n glyph = new Glyph(\n charcode,\n fontChar,\n unicode,\n accent,\n width,\n vmetric,\n operatorListId,\n isSpace,\n isInFont\n );\n this._glyphCache[charcode] = glyph;\n }\n return glyph;\n }\n\n charsToGlyphs(chars) {\n // If we translated this string before, just grab it from the cache.\n let glyphs = this._charsCache[chars];\n if (glyphs) {\n return glyphs;\n }\n glyphs = [];\n\n if (this.cMap) {\n // Composite fonts have multi-byte strings, convert the string from\n // single-byte to multi-byte.\n const c = Object.create(null),\n ii = chars.length;\n let i = 0;\n while (i < ii) {\n this.cMap.readCharCode(chars, i, c);\n const { charcode, length } = c;\n i += length;\n // Space is char with code 0x20 and length 1 in multiple-byte codes.\n const glyph = this._charToGlyph(\n charcode,\n length === 1 && chars.charCodeAt(i - 1) === 0x20\n );\n glyphs.push(glyph);\n }\n } else {\n for (let i = 0, ii = chars.length; i < ii; ++i) {\n const charcode = chars.charCodeAt(i);\n const glyph = this._charToGlyph(charcode, charcode === 0x20);\n glyphs.push(glyph);\n }\n }\n\n // Enter the translated string into the cache.\n return (this._charsCache[chars] = glyphs);\n }\n\n /**\n * Chars can have different sizes (depends on the encoding).\n * @param {String} a string encoded with font encoding.\n * @returns {Array>} the positions of each char in the string.\n */\n getCharPositions(chars) {\n // This function doesn't use a cache because\n // it's called only when saving or printing.\n const positions = [];\n\n if (this.cMap) {\n const c = Object.create(null);\n let i = 0;\n while (i < chars.length) {\n this.cMap.readCharCode(chars, i, c);\n const length = c.length;\n positions.push([i, i + length]);\n i += length;\n }\n } else {\n for (let i = 0, ii = chars.length; i < ii; ++i) {\n positions.push([i, i + 1]);\n }\n }\n\n return positions;\n }\n\n get glyphCacheValues() {\n return Object.values(this._glyphCache);\n }\n\n /**\n * Encode a js string using font encoding.\n * The resulting array contains an encoded string at even positions\n * (can be empty) and a non-encoded one at odd positions.\n * @param {String} a js string.\n * @returns {Array} an array of encoded strings or non-encoded ones.\n */\n encodeString(str) {\n const buffers = [];\n const currentBuf = [];\n\n // buffers will contain: encoded, non-encoded, encoded, ...\n // currentBuf is pushed in buffers each time there is a change.\n // So when buffers.length is odd then the last string is an encoded one\n // and currentBuf contains non-encoded chars.\n const hasCurrentBufErrors = () => buffers.length % 2 === 1;\n\n const getCharCode =\n this.toUnicode instanceof IdentityToUnicodeMap\n ? unicode => this.toUnicode.charCodeOf(unicode)\n : unicode => this.toUnicode.charCodeOf(String.fromCodePoint(unicode));\n\n for (let i = 0, ii = str.length; i < ii; i++) {\n const unicode = str.codePointAt(i);\n if (unicode > 0xd7ff && (unicode < 0xe000 || unicode > 0xfffd)) {\n // unicode is represented by two uint16\n i++;\n }\n if (this.toUnicode) {\n const charCode = getCharCode(unicode);\n if (charCode !== -1) {\n if (hasCurrentBufErrors()) {\n buffers.push(currentBuf.join(\"\"));\n currentBuf.length = 0;\n }\n const charCodeLength = this.cMap\n ? this.cMap.getCharCodeLength(charCode)\n : 1;\n for (let j = charCodeLength - 1; j >= 0; j--) {\n currentBuf.push(String.fromCharCode((charCode >> (8 * j)) & 0xff));\n }\n continue;\n }\n }\n\n // unicode can't be encoded\n if (!hasCurrentBufErrors()) {\n buffers.push(currentBuf.join(\"\"));\n currentBuf.length = 0;\n }\n currentBuf.push(String.fromCodePoint(unicode));\n }\n\n buffers.push(currentBuf.join(\"\"));\n\n return buffers;\n }\n}\n\nclass ErrorFont {\n constructor(error) {\n this.error = error;\n this.loadedName = \"g_font_error\";\n this.missingFile = true;\n }\n\n charsToGlyphs() {\n return [];\n }\n\n encodeString(chars) {\n return [chars];\n }\n\n exportData(extraProperties = false) {\n return { error: this.error };\n }\n}\n\nexport { ErrorFont, Font };\n","/* Copyright 2016 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n bytesToString,\n FormatError,\n info,\n shadow,\n stringToBytes,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport {\n ExpertCharset,\n ExpertSubsetCharset,\n ISOAdobeCharset,\n} from \"./charsets.js\";\nimport { ExpertEncoding, StandardEncoding } from \"./encodings.js\";\n\n// Maximum subroutine call depth of type 2 charstrings. Matches OTS.\nconst MAX_SUBR_NESTING = 10;\n\n/**\n * The CFF class takes a Type1 file and wrap it into a\n * 'Compact Font Format' which itself embed Type2 charstrings.\n */\n// prettier-ignore\nconst CFFStandardStrings = [\n \".notdef\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\",\n \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\",\n \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\",\n \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\",\n \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\",\n \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\",\n \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\",\n \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\",\n \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\",\n \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"exclamdown\", \"cent\",\n \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\",\n \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\",\n \"guilsinglright\", \"fi\", \"fl\", \"endash\", \"dagger\", \"daggerdbl\",\n \"periodcentered\", \"paragraph\", \"bullet\", \"quotesinglbase\", \"quotedblbase\",\n \"quotedblright\", \"guillemotright\", \"ellipsis\", \"perthousand\", \"questiondown\",\n \"grave\", \"acute\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\",\n \"dieresis\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\",\n \"AE\", \"ordfeminine\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"ae\",\n \"dotlessi\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"onesuperior\",\n \"logicalnot\", \"mu\", \"trademark\", \"Eth\", \"onehalf\", \"plusminus\", \"Thorn\",\n \"onequarter\", \"divide\", \"brokenbar\", \"degree\", \"thorn\", \"threequarters\",\n \"twosuperior\", \"registered\", \"minus\", \"eth\", \"multiply\", \"threesuperior\",\n \"copyright\", \"Aacute\", \"Acircumflex\", \"Adieresis\", \"Agrave\", \"Aring\",\n \"Atilde\", \"Ccedilla\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Egrave\",\n \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Ntilde\", \"Oacute\",\n \"Ocircumflex\", \"Odieresis\", \"Ograve\", \"Otilde\", \"Scaron\", \"Uacute\",\n \"Ucircumflex\", \"Udieresis\", \"Ugrave\", \"Yacute\", \"Ydieresis\", \"Zcaron\",\n \"aacute\", \"acircumflex\", \"adieresis\", \"agrave\", \"aring\", \"atilde\",\n \"ccedilla\", \"eacute\", \"ecircumflex\", \"edieresis\", \"egrave\", \"iacute\",\n \"icircumflex\", \"idieresis\", \"igrave\", \"ntilde\", \"oacute\", \"ocircumflex\",\n \"odieresis\", \"ograve\", \"otilde\", \"scaron\", \"uacute\", \"ucircumflex\",\n \"udieresis\", \"ugrave\", \"yacute\", \"ydieresis\", \"zcaron\", \"exclamsmall\",\n \"Hungarumlautsmall\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\",\n \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\",\n \"onedotenleader\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\",\n \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\",\n \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"commasuperior\",\n \"threequartersemdash\", \"periodsuperior\", \"questionsmall\", \"asuperior\",\n \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\",\n \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\",\n \"tsuperior\", \"ff\", \"ffi\", \"ffl\", \"parenleftinferior\", \"parenrightinferior\",\n \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\", \"Asmall\", \"Bsmall\",\n \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\",\n \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\",\n \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\",\n \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\",\n \"Tildesmall\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\",\n \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\", \"Caronsmall\",\n \"Dotaccentsmall\", \"Macronsmall\", \"figuredash\", \"hypheninferior\",\n \"Ogoneksmall\", \"Ringsmall\", \"Cedillasmall\", \"questiondownsmall\", \"oneeighth\",\n \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\",\n \"zerosuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\",\n \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\",\n \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\",\n \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\",\n \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\",\n \"commainferior\", \"Agravesmall\", \"Aacutesmall\", \"Acircumflexsmall\",\n \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\",\n \"Egravesmall\", \"Eacutesmall\", \"Ecircumflexsmall\", \"Edieresissmall\",\n \"Igravesmall\", \"Iacutesmall\", \"Icircumflexsmall\", \"Idieresissmall\",\n \"Ethsmall\", \"Ntildesmall\", \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\",\n \"Otildesmall\", \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\",\n \"Uacutesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\",\n \"Thornsmall\", \"Ydieresissmall\", \"001.000\", \"001.001\", \"001.002\", \"001.003\",\n \"Black\", \"Bold\", \"Book\", \"Light\", \"Medium\", \"Regular\", \"Roman\", \"Semibold\"\n];\n\nconst NUM_STANDARD_CFF_STRINGS = 391;\n\nconst CFFParser = (function CFFParserClosure() {\n const CharstringValidationData = [\n null,\n { id: \"hstem\", min: 2, stackClearing: true, stem: true },\n null,\n { id: \"vstem\", min: 2, stackClearing: true, stem: true },\n { id: \"vmoveto\", min: 1, stackClearing: true },\n { id: \"rlineto\", min: 2, resetStack: true },\n { id: \"hlineto\", min: 1, resetStack: true },\n { id: \"vlineto\", min: 1, resetStack: true },\n { id: \"rrcurveto\", min: 6, resetStack: true },\n null,\n { id: \"callsubr\", min: 1, undefStack: true },\n { id: \"return\", min: 0, undefStack: true },\n null, // 12\n null,\n { id: \"endchar\", min: 0, stackClearing: true },\n null,\n null,\n null,\n { id: \"hstemhm\", min: 2, stackClearing: true, stem: true },\n { id: \"hintmask\", min: 0, stackClearing: true },\n { id: \"cntrmask\", min: 0, stackClearing: true },\n { id: \"rmoveto\", min: 2, stackClearing: true },\n { id: \"hmoveto\", min: 1, stackClearing: true },\n { id: \"vstemhm\", min: 2, stackClearing: true, stem: true },\n { id: \"rcurveline\", min: 8, resetStack: true },\n { id: \"rlinecurve\", min: 8, resetStack: true },\n { id: \"vvcurveto\", min: 4, resetStack: true },\n { id: \"hhcurveto\", min: 4, resetStack: true },\n null, // shortint\n { id: \"callgsubr\", min: 1, undefStack: true },\n { id: \"vhcurveto\", min: 4, resetStack: true },\n { id: \"hvcurveto\", min: 4, resetStack: true },\n ];\n const CharstringValidationData12 = [\n null,\n null,\n null,\n { id: \"and\", min: 2, stackDelta: -1 },\n { id: \"or\", min: 2, stackDelta: -1 },\n { id: \"not\", min: 1, stackDelta: 0 },\n null,\n null,\n null,\n { id: \"abs\", min: 1, stackDelta: 0 },\n {\n id: \"add\",\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] + stack[index - 1];\n },\n },\n {\n id: \"sub\",\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] - stack[index - 1];\n },\n },\n {\n id: \"div\",\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] / stack[index - 1];\n },\n },\n null,\n {\n id: \"neg\",\n min: 1,\n stackDelta: 0,\n stackFn: function stack_div(stack, index) {\n stack[index - 1] = -stack[index - 1];\n },\n },\n { id: \"eq\", min: 2, stackDelta: -1 },\n null,\n null,\n { id: \"drop\", min: 1, stackDelta: -1 },\n null,\n { id: \"put\", min: 2, stackDelta: -2 },\n { id: \"get\", min: 1, stackDelta: 0 },\n { id: \"ifelse\", min: 4, stackDelta: -3 },\n { id: \"random\", min: 0, stackDelta: 1 },\n {\n id: \"mul\",\n min: 2,\n stackDelta: -1,\n stackFn: function stack_div(stack, index) {\n stack[index - 2] = stack[index - 2] * stack[index - 1];\n },\n },\n null,\n { id: \"sqrt\", min: 1, stackDelta: 0 },\n { id: \"dup\", min: 1, stackDelta: 1 },\n { id: \"exch\", min: 2, stackDelta: 0 },\n { id: \"index\", min: 2, stackDelta: 0 },\n { id: \"roll\", min: 3, stackDelta: -2 },\n null,\n null,\n null,\n { id: \"hflex\", min: 7, resetStack: true },\n { id: \"flex\", min: 13, resetStack: true },\n { id: \"hflex1\", min: 9, resetStack: true },\n { id: \"flex1\", min: 11, resetStack: true },\n ];\n\n // eslint-disable-next-line no-shadow\n class CFFParser {\n constructor(file, properties, seacAnalysisEnabled) {\n this.bytes = file.getBytes();\n this.properties = properties;\n this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n }\n\n parse() {\n const properties = this.properties;\n const cff = new CFF();\n this.cff = cff;\n\n // The first five sections must be in order, all the others are reached\n // via offsets contained in one of the below.\n const header = this.parseHeader();\n const nameIndex = this.parseIndex(header.endPos);\n const topDictIndex = this.parseIndex(nameIndex.endPos);\n const stringIndex = this.parseIndex(topDictIndex.endPos);\n const globalSubrIndex = this.parseIndex(stringIndex.endPos);\n\n const topDictParsed = this.parseDict(topDictIndex.obj.get(0));\n const topDict = this.createDict(CFFTopDict, topDictParsed, cff.strings);\n\n cff.header = header.obj;\n cff.names = this.parseNameIndex(nameIndex.obj);\n cff.strings = this.parseStringIndex(stringIndex.obj);\n cff.topDict = topDict;\n cff.globalSubrIndex = globalSubrIndex.obj;\n\n this.parsePrivateDict(cff.topDict);\n\n cff.isCIDFont = topDict.hasName(\"ROS\");\n\n const charStringOffset = topDict.getByName(\"CharStrings\");\n const charStringIndex = this.parseIndex(charStringOffset).obj;\n\n const fontMatrix = topDict.getByName(\"FontMatrix\");\n if (fontMatrix) {\n properties.fontMatrix = fontMatrix;\n }\n\n const fontBBox = topDict.getByName(\"FontBBox\");\n if (fontBBox) {\n // adjusting ascent/descent\n properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n properties.ascentScaled = true;\n }\n\n let charset, encoding;\n if (cff.isCIDFont) {\n const fdArrayIndex = this.parseIndex(topDict.getByName(\"FDArray\")).obj;\n for (let i = 0, ii = fdArrayIndex.count; i < ii; ++i) {\n const dictRaw = fdArrayIndex.get(i);\n const fontDict = this.createDict(\n CFFTopDict,\n this.parseDict(dictRaw),\n cff.strings\n );\n this.parsePrivateDict(fontDict);\n cff.fdArray.push(fontDict);\n }\n // cid fonts don't have an encoding\n encoding = null;\n charset = this.parseCharsets(\n topDict.getByName(\"charset\"),\n charStringIndex.count,\n cff.strings,\n true\n );\n cff.fdSelect = this.parseFDSelect(\n topDict.getByName(\"FDSelect\"),\n charStringIndex.count\n );\n } else {\n charset = this.parseCharsets(\n topDict.getByName(\"charset\"),\n charStringIndex.count,\n cff.strings,\n false\n );\n encoding = this.parseEncoding(\n topDict.getByName(\"Encoding\"),\n properties,\n cff.strings,\n charset.charset\n );\n }\n\n cff.charset = charset;\n cff.encoding = encoding;\n\n const charStringsAndSeacs = this.parseCharStrings({\n charStrings: charStringIndex,\n localSubrIndex: topDict.privateDict.subrsIndex,\n globalSubrIndex: globalSubrIndex.obj,\n fdSelect: cff.fdSelect,\n fdArray: cff.fdArray,\n privateDict: topDict.privateDict,\n });\n cff.charStrings = charStringsAndSeacs.charStrings;\n cff.seacs = charStringsAndSeacs.seacs;\n cff.widths = charStringsAndSeacs.widths;\n\n return cff;\n }\n\n parseHeader() {\n let bytes = this.bytes;\n const bytesLength = bytes.length;\n let offset = 0;\n\n // Prevent an infinite loop, by checking that the offset is within the\n // bounds of the bytes array. Necessary in empty, or invalid, font files.\n while (offset < bytesLength && bytes[offset] !== 1) {\n ++offset;\n }\n if (offset >= bytesLength) {\n throw new FormatError(\"Invalid CFF header\");\n }\n if (offset !== 0) {\n info(\"cff data is shifted\");\n bytes = bytes.subarray(offset);\n this.bytes = bytes;\n }\n const major = bytes[0];\n const minor = bytes[1];\n const hdrSize = bytes[2];\n const offSize = bytes[3];\n const header = new CFFHeader(major, minor, hdrSize, offSize);\n return { obj: header, endPos: hdrSize };\n }\n\n parseDict(dict) {\n let pos = 0;\n\n function parseOperand() {\n let value = dict[pos++];\n if (value === 30) {\n return parseFloatOperand();\n } else if (value === 28) {\n value = dict[pos++];\n value = ((value << 24) | (dict[pos++] << 16)) >> 16;\n return value;\n } else if (value === 29) {\n value = dict[pos++];\n value = (value << 8) | dict[pos++];\n value = (value << 8) | dict[pos++];\n value = (value << 8) | dict[pos++];\n return value;\n } else if (value >= 32 && value <= 246) {\n return value - 139;\n } else if (value >= 247 && value <= 250) {\n return (value - 247) * 256 + dict[pos++] + 108;\n } else if (value >= 251 && value <= 254) {\n return -((value - 251) * 256) - dict[pos++] - 108;\n }\n warn('CFFParser_parseDict: \"' + value + '\" is a reserved command.');\n return NaN;\n }\n\n function parseFloatOperand() {\n let str = \"\";\n const eof = 15;\n // prettier-ignore\n const lookup = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\",\n \"9\", \".\", \"E\", \"E-\", null, \"-\"];\n const length = dict.length;\n while (pos < length) {\n const b = dict[pos++];\n const b1 = b >> 4;\n const b2 = b & 15;\n\n if (b1 === eof) {\n break;\n }\n str += lookup[b1];\n\n if (b2 === eof) {\n break;\n }\n str += lookup[b2];\n }\n return parseFloat(str);\n }\n\n let operands = [];\n const entries = [];\n\n pos = 0;\n const end = dict.length;\n while (pos < end) {\n let b = dict[pos];\n if (b <= 21) {\n if (b === 12) {\n b = (b << 8) | dict[++pos];\n }\n entries.push([b, operands]);\n operands = [];\n ++pos;\n } else {\n operands.push(parseOperand());\n }\n }\n return entries;\n }\n\n parseIndex(pos) {\n const cffIndex = new CFFIndex();\n const bytes = this.bytes;\n const count = (bytes[pos++] << 8) | bytes[pos++];\n const offsets = [];\n let end = pos;\n let i, ii;\n\n if (count !== 0) {\n const offsetSize = bytes[pos++];\n // add 1 for offset to determine size of last object\n const startPos = pos + (count + 1) * offsetSize - 1;\n\n for (i = 0, ii = count + 1; i < ii; ++i) {\n let offset = 0;\n for (let j = 0; j < offsetSize; ++j) {\n offset <<= 8;\n offset += bytes[pos++];\n }\n offsets.push(startPos + offset);\n }\n end = offsets[count];\n }\n for (i = 0, ii = offsets.length - 1; i < ii; ++i) {\n const offsetStart = offsets[i];\n const offsetEnd = offsets[i + 1];\n cffIndex.add(bytes.subarray(offsetStart, offsetEnd));\n }\n return { obj: cffIndex, endPos: end };\n }\n\n parseNameIndex(index) {\n const names = [];\n for (let i = 0, ii = index.count; i < ii; ++i) {\n const name = index.get(i);\n names.push(bytesToString(name));\n }\n return names;\n }\n\n parseStringIndex(index) {\n const strings = new CFFStrings();\n for (let i = 0, ii = index.count; i < ii; ++i) {\n const data = index.get(i);\n strings.add(bytesToString(data));\n }\n return strings;\n }\n\n createDict(Type, dict, strings) {\n const cffDict = new Type(strings);\n for (let i = 0, ii = dict.length; i < ii; ++i) {\n const pair = dict[i];\n const key = pair[0];\n const value = pair[1];\n cffDict.setByKey(key, value);\n }\n return cffDict;\n }\n\n parseCharString(state, data, localSubrIndex, globalSubrIndex) {\n if (!data || state.callDepth > MAX_SUBR_NESTING) {\n return false;\n }\n let stackSize = state.stackSize;\n const stack = state.stack;\n\n const length = data.length;\n\n for (let j = 0; j < length; ) {\n const value = data[j++];\n let validationCommand = null;\n if (value === 12) {\n const q = data[j++];\n if (q === 0) {\n // The CFF specification state that the 'dotsection' command\n // (12, 0) is deprecated and treated as a no-op, but all Type2\n // charstrings processors should support them. Unfortunately\n // the font sanitizer don't. As a workaround the sequence (12, 0)\n // is replaced by a useless (0, hmoveto).\n data[j - 2] = 139;\n data[j - 1] = 22;\n stackSize = 0;\n } else {\n validationCommand = CharstringValidationData12[q];\n }\n } else if (value === 28) {\n // number (16 bit)\n stack[stackSize] = ((data[j] << 24) | (data[j + 1] << 16)) >> 16;\n j += 2;\n stackSize++;\n } else if (value === 14) {\n if (stackSize >= 4) {\n stackSize -= 4;\n if (this.seacAnalysisEnabled) {\n state.seac = stack.slice(stackSize, stackSize + 4);\n return false;\n }\n }\n validationCommand = CharstringValidationData[value];\n } else if (value >= 32 && value <= 246) {\n // number\n stack[stackSize] = value - 139;\n stackSize++;\n } else if (value >= 247 && value <= 254) {\n // number (+1 bytes)\n stack[stackSize] =\n value < 251\n ? ((value - 247) << 8) + data[j] + 108\n : -((value - 251) << 8) - data[j] - 108;\n j++;\n stackSize++;\n } else if (value === 255) {\n // number (32 bit)\n stack[stackSize] =\n ((data[j] << 24) |\n (data[j + 1] << 16) |\n (data[j + 2] << 8) |\n data[j + 3]) /\n 65536;\n j += 4;\n stackSize++;\n } else if (value === 19 || value === 20) {\n state.hints += stackSize >> 1;\n // skipping right amount of hints flag data\n j += (state.hints + 7) >> 3;\n stackSize %= 2;\n validationCommand = CharstringValidationData[value];\n } else if (value === 10 || value === 29) {\n let subrsIndex;\n if (value === 10) {\n subrsIndex = localSubrIndex;\n } else {\n subrsIndex = globalSubrIndex;\n }\n if (!subrsIndex) {\n validationCommand = CharstringValidationData[value];\n warn(\"Missing subrsIndex for \" + validationCommand.id);\n return false;\n }\n let bias = 32768;\n if (subrsIndex.count < 1240) {\n bias = 107;\n } else if (subrsIndex.count < 33900) {\n bias = 1131;\n }\n const subrNumber = stack[--stackSize] + bias;\n if (\n subrNumber < 0 ||\n subrNumber >= subrsIndex.count ||\n isNaN(subrNumber)\n ) {\n validationCommand = CharstringValidationData[value];\n warn(\"Out of bounds subrIndex for \" + validationCommand.id);\n return false;\n }\n state.stackSize = stackSize;\n state.callDepth++;\n const valid = this.parseCharString(\n state,\n subrsIndex.get(subrNumber),\n localSubrIndex,\n globalSubrIndex\n );\n if (!valid) {\n return false;\n }\n state.callDepth--;\n stackSize = state.stackSize;\n continue;\n } else if (value === 11) {\n state.stackSize = stackSize;\n return true;\n } else if (value === 0 && j === data.length) {\n // Operator 0 is not used according to the current spec and\n // it's the last char and consequently it's likely a terminator.\n // So just replace it by endchar command to make OTS happy.\n data[j - 1] = 14;\n validationCommand = CharstringValidationData[14];\n } else {\n validationCommand = CharstringValidationData[value];\n }\n if (validationCommand) {\n if (validationCommand.stem) {\n state.hints += stackSize >> 1;\n if (value === 3 || value === 23) {\n // vstem or vstemhm.\n state.hasVStems = true;\n } else if (state.hasVStems && (value === 1 || value === 18)) {\n // Some browsers don't draw glyphs that specify vstems before\n // hstems. As a workaround, replace hstem (1) and hstemhm (18)\n // with a pointless vstem (3) or vstemhm (23).\n warn(\"CFF stem hints are in wrong order\");\n data[j - 1] = value === 1 ? 3 : 23;\n }\n }\n if (\"min\" in validationCommand) {\n if (!state.undefStack && stackSize < validationCommand.min) {\n warn(\n \"Not enough parameters for \" +\n validationCommand.id +\n \"; actual: \" +\n stackSize +\n \", expected: \" +\n validationCommand.min\n );\n\n if (stackSize === 0) {\n // Just \"fix\" the outline in replacing command by a endchar:\n // it could lead to wrong rendering of some glyphs or not.\n // For example, the pdf in #6132 is well-rendered.\n data[j - 1] = 14;\n return true;\n }\n return false;\n }\n }\n if (state.firstStackClearing && validationCommand.stackClearing) {\n state.firstStackClearing = false;\n // the optional character width can be found before the first\n // stack-clearing command arguments\n stackSize -= validationCommand.min;\n if (stackSize >= 2 && validationCommand.stem) {\n // there are even amount of arguments for stem commands\n stackSize %= 2;\n } else if (stackSize > 1) {\n warn(\"Found too many parameters for stack-clearing command\");\n }\n if (stackSize > 0) {\n // Width can be any number since its the difference\n // from nominalWidthX.\n state.width = stack[stackSize - 1];\n }\n }\n if (\"stackDelta\" in validationCommand) {\n if (\"stackFn\" in validationCommand) {\n validationCommand.stackFn(stack, stackSize);\n }\n stackSize += validationCommand.stackDelta;\n } else if (validationCommand.stackClearing) {\n stackSize = 0;\n } else if (validationCommand.resetStack) {\n stackSize = 0;\n state.undefStack = false;\n } else if (validationCommand.undefStack) {\n stackSize = 0;\n state.undefStack = true;\n state.firstStackClearing = false;\n }\n }\n }\n state.stackSize = stackSize;\n return true;\n }\n\n parseCharStrings({\n charStrings,\n localSubrIndex,\n globalSubrIndex,\n fdSelect,\n fdArray,\n privateDict,\n }) {\n const seacs = [];\n const widths = [];\n const count = charStrings.count;\n for (let i = 0; i < count; i++) {\n const charstring = charStrings.get(i);\n const state = {\n callDepth: 0,\n stackSize: 0,\n stack: [],\n undefStack: true,\n hints: 0,\n firstStackClearing: true,\n seac: null,\n width: null,\n hasVStems: false,\n };\n let valid = true;\n let localSubrToUse = null;\n let privateDictToUse = privateDict;\n if (fdSelect && fdArray.length) {\n const fdIndex = fdSelect.getFDIndex(i);\n if (fdIndex === -1) {\n warn(\"Glyph index is not in fd select.\");\n valid = false;\n }\n if (fdIndex >= fdArray.length) {\n warn(\"Invalid fd index for glyph index.\");\n valid = false;\n }\n if (valid) {\n privateDictToUse = fdArray[fdIndex].privateDict;\n localSubrToUse = privateDictToUse.subrsIndex;\n }\n } else if (localSubrIndex) {\n localSubrToUse = localSubrIndex;\n }\n if (valid) {\n valid = this.parseCharString(\n state,\n charstring,\n localSubrToUse,\n globalSubrIndex\n );\n }\n if (state.width !== null) {\n const nominalWidth = privateDictToUse.getByName(\"nominalWidthX\");\n widths[i] = nominalWidth + state.width;\n } else {\n const defaultWidth = privateDictToUse.getByName(\"defaultWidthX\");\n widths[i] = defaultWidth;\n }\n if (state.seac !== null) {\n seacs[i] = state.seac;\n }\n if (!valid) {\n // resetting invalid charstring to single 'endchar'\n charStrings.set(i, new Uint8Array([14]));\n }\n }\n return { charStrings, seacs, widths };\n }\n\n emptyPrivateDictionary(parentDict) {\n const privateDict = this.createDict(\n CFFPrivateDict,\n [],\n parentDict.strings\n );\n parentDict.setByKey(18, [0, 0]);\n parentDict.privateDict = privateDict;\n }\n\n parsePrivateDict(parentDict) {\n // no private dict, do nothing\n if (!parentDict.hasName(\"Private\")) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n const privateOffset = parentDict.getByName(\"Private\");\n // make sure the params are formatted correctly\n if (!Array.isArray(privateOffset) || privateOffset.length !== 2) {\n parentDict.removeByName(\"Private\");\n return;\n }\n const size = privateOffset[0];\n const offset = privateOffset[1];\n // remove empty dicts or ones that refer to invalid location\n if (size === 0 || offset >= this.bytes.length) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n\n const privateDictEnd = offset + size;\n const dictData = this.bytes.subarray(offset, privateDictEnd);\n const dict = this.parseDict(dictData);\n const privateDict = this.createDict(\n CFFPrivateDict,\n dict,\n parentDict.strings\n );\n parentDict.privateDict = privateDict;\n\n // Parse the Subrs index also since it's relative to the private dict.\n if (!privateDict.getByName(\"Subrs\")) {\n return;\n }\n const subrsOffset = privateDict.getByName(\"Subrs\");\n const relativeOffset = offset + subrsOffset;\n // Validate the offset.\n if (subrsOffset === 0 || relativeOffset >= this.bytes.length) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n const subrsIndex = this.parseIndex(relativeOffset);\n privateDict.subrsIndex = subrsIndex.obj;\n }\n\n parseCharsets(pos, length, strings, cid) {\n if (pos === 0) {\n return new CFFCharset(\n true,\n CFFCharsetPredefinedTypes.ISO_ADOBE,\n ISOAdobeCharset\n );\n } else if (pos === 1) {\n return new CFFCharset(\n true,\n CFFCharsetPredefinedTypes.EXPERT,\n ExpertCharset\n );\n } else if (pos === 2) {\n return new CFFCharset(\n true,\n CFFCharsetPredefinedTypes.EXPERT_SUBSET,\n ExpertSubsetCharset\n );\n }\n\n const bytes = this.bytes;\n const start = pos;\n const format = bytes[pos++];\n const charset = [cid ? 0 : \".notdef\"];\n let id, count, i;\n\n // subtract 1 for the .notdef glyph\n length -= 1;\n\n switch (format) {\n case 0:\n for (i = 0; i < length; i++) {\n id = (bytes[pos++] << 8) | bytes[pos++];\n charset.push(cid ? id : strings.get(id));\n }\n break;\n case 1:\n while (charset.length <= length) {\n id = (bytes[pos++] << 8) | bytes[pos++];\n count = bytes[pos++];\n for (i = 0; i <= count; i++) {\n charset.push(cid ? id++ : strings.get(id++));\n }\n }\n break;\n case 2:\n while (charset.length <= length) {\n id = (bytes[pos++] << 8) | bytes[pos++];\n count = (bytes[pos++] << 8) | bytes[pos++];\n for (i = 0; i <= count; i++) {\n charset.push(cid ? id++ : strings.get(id++));\n }\n }\n break;\n default:\n throw new FormatError(\"Unknown charset format\");\n }\n // Raw won't be needed if we actually compile the charset.\n const end = pos;\n const raw = bytes.subarray(start, end);\n\n return new CFFCharset(false, format, charset, raw);\n }\n\n parseEncoding(pos, properties, strings, charset) {\n const encoding = Object.create(null);\n const bytes = this.bytes;\n let predefined = false;\n let format, i, ii;\n let raw = null;\n\n function readSupplement() {\n const supplementsCount = bytes[pos++];\n for (i = 0; i < supplementsCount; i++) {\n const code = bytes[pos++];\n const sid = (bytes[pos++] << 8) + (bytes[pos++] & 0xff);\n encoding[code] = charset.indexOf(strings.get(sid));\n }\n }\n\n if (pos === 0 || pos === 1) {\n predefined = true;\n format = pos;\n const baseEncoding = pos ? ExpertEncoding : StandardEncoding;\n for (i = 0, ii = charset.length; i < ii; i++) {\n const index = baseEncoding.indexOf(charset[i]);\n if (index !== -1) {\n encoding[index] = i;\n }\n }\n } else {\n const dataStart = pos;\n format = bytes[pos++];\n switch (format & 0x7f) {\n case 0:\n const glyphsCount = bytes[pos++];\n for (i = 1; i <= glyphsCount; i++) {\n encoding[bytes[pos++]] = i;\n }\n break;\n\n case 1:\n const rangesCount = bytes[pos++];\n let gid = 1;\n for (i = 0; i < rangesCount; i++) {\n const start = bytes[pos++];\n const left = bytes[pos++];\n for (let j = start; j <= start + left; j++) {\n encoding[j] = gid++;\n }\n }\n break;\n\n default:\n throw new FormatError(`Unknown encoding format: ${format} in CFF`);\n }\n const dataEnd = pos;\n if (format & 0x80) {\n // hasSupplement\n // The font sanitizer does not support CFF encoding with a\n // supplement, since the encoding is not really used to map\n // between gid to glyph, let's overwrite what is declared in\n // the top dictionary to let the sanitizer think the font use\n // StandardEncoding, that's a lie but that's ok.\n bytes[dataStart] &= 0x7f;\n readSupplement();\n }\n raw = bytes.subarray(dataStart, dataEnd);\n }\n format &= 0x7f;\n return new CFFEncoding(predefined, format, encoding, raw);\n }\n\n parseFDSelect(pos, length) {\n const bytes = this.bytes;\n const format = bytes[pos++];\n const fdSelect = [];\n let i;\n\n switch (format) {\n case 0:\n for (i = 0; i < length; ++i) {\n const id = bytes[pos++];\n fdSelect.push(id);\n }\n break;\n case 3:\n const rangesCount = (bytes[pos++] << 8) | bytes[pos++];\n for (i = 0; i < rangesCount; ++i) {\n let first = (bytes[pos++] << 8) | bytes[pos++];\n if (i === 0 && first !== 0) {\n warn(\n \"parseFDSelect: The first range must have a first GID of 0\" +\n \" -- trying to recover.\"\n );\n first = 0;\n }\n const fdIndex = bytes[pos++];\n const next = (bytes[pos] << 8) | bytes[pos + 1];\n for (let j = first; j < next; ++j) {\n fdSelect.push(fdIndex);\n }\n }\n // Advance past the sentinel(next).\n pos += 2;\n break;\n default:\n throw new FormatError(`parseFDSelect: Unknown format \"${format}\".`);\n }\n if (fdSelect.length !== length) {\n throw new FormatError(\"parseFDSelect: Invalid font data.\");\n }\n\n return new CFFFDSelect(format, fdSelect);\n }\n }\n return CFFParser;\n})();\n\n// Compact Font Format\nclass CFF {\n constructor() {\n this.header = null;\n this.names = [];\n this.topDict = null;\n this.strings = new CFFStrings();\n this.globalSubrIndex = null;\n\n // The following could really be per font, but since we only have one font\n // store them here.\n this.encoding = null;\n this.charset = null;\n this.charStrings = null;\n this.fdArray = [];\n this.fdSelect = null;\n\n this.isCIDFont = false;\n }\n\n duplicateFirstGlyph() {\n // Browsers will not display a glyph at position 0. Typically glyph 0 is\n // notdef, but a number of fonts put a valid glyph there so it must be\n // duplicated and appended.\n if (this.charStrings.count >= 65535) {\n warn(\"Not enough space in charstrings to duplicate first glyph.\");\n return;\n }\n const glyphZero = this.charStrings.get(0);\n this.charStrings.add(glyphZero);\n if (this.isCIDFont) {\n this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0]);\n }\n }\n\n hasGlyphId(id) {\n if (id < 0 || id >= this.charStrings.count) {\n return false;\n }\n const glyph = this.charStrings.get(id);\n return glyph.length > 0;\n }\n}\n\nclass CFFHeader {\n constructor(major, minor, hdrSize, offSize) {\n this.major = major;\n this.minor = minor;\n this.hdrSize = hdrSize;\n this.offSize = offSize;\n }\n}\n\nclass CFFStrings {\n constructor() {\n this.strings = [];\n }\n\n get(index) {\n if (index >= 0 && index <= NUM_STANDARD_CFF_STRINGS - 1) {\n return CFFStandardStrings[index];\n }\n if (index - NUM_STANDARD_CFF_STRINGS <= this.strings.length) {\n return this.strings[index - NUM_STANDARD_CFF_STRINGS];\n }\n return CFFStandardStrings[0];\n }\n\n getSID(str) {\n let index = CFFStandardStrings.indexOf(str);\n if (index !== -1) {\n return index;\n }\n index = this.strings.indexOf(str);\n if (index !== -1) {\n return index + NUM_STANDARD_CFF_STRINGS;\n }\n return -1;\n }\n\n add(value) {\n this.strings.push(value);\n }\n\n get count() {\n return this.strings.length;\n }\n}\n\nclass CFFIndex {\n constructor() {\n this.objects = [];\n this.length = 0;\n }\n\n add(data) {\n this.length += data.length;\n this.objects.push(data);\n }\n\n set(index, data) {\n this.length += data.length - this.objects[index].length;\n this.objects[index] = data;\n }\n\n get(index) {\n return this.objects[index];\n }\n\n get count() {\n return this.objects.length;\n }\n}\n\nclass CFFDict {\n constructor(tables, strings) {\n this.keyToNameMap = tables.keyToNameMap;\n this.nameToKeyMap = tables.nameToKeyMap;\n this.defaults = tables.defaults;\n this.types = tables.types;\n this.opcodes = tables.opcodes;\n this.order = tables.order;\n this.strings = strings;\n this.values = Object.create(null);\n }\n\n // value should always be an array\n setByKey(key, value) {\n if (!(key in this.keyToNameMap)) {\n return false;\n }\n const valueLength = value.length;\n // ignore empty values\n if (valueLength === 0) {\n return true;\n }\n // Ignore invalid values (fixes bug1068432.pdf and bug1308536.pdf).\n for (let i = 0; i < valueLength; i++) {\n if (isNaN(value[i])) {\n warn('Invalid CFFDict value: \"' + value + '\" for key \"' + key + '\".');\n return true;\n }\n }\n const type = this.types[key];\n // remove the array wrapping these types of values\n if (type === \"num\" || type === \"sid\" || type === \"offset\") {\n value = value[0];\n }\n this.values[key] = value;\n return true;\n }\n\n setByName(name, value) {\n if (!(name in this.nameToKeyMap)) {\n throw new FormatError(`Invalid dictionary name \"${name}\"`);\n }\n this.values[this.nameToKeyMap[name]] = value;\n }\n\n hasName(name) {\n return this.nameToKeyMap[name] in this.values;\n }\n\n getByName(name) {\n if (!(name in this.nameToKeyMap)) {\n throw new FormatError(`Invalid dictionary name ${name}\"`);\n }\n const key = this.nameToKeyMap[name];\n if (!(key in this.values)) {\n return this.defaults[key];\n }\n return this.values[key];\n }\n\n removeByName(name) {\n delete this.values[this.nameToKeyMap[name]];\n }\n\n static createTables(layout) {\n const tables = {\n keyToNameMap: {},\n nameToKeyMap: {},\n defaults: {},\n types: {},\n opcodes: {},\n order: [],\n };\n for (let i = 0, ii = layout.length; i < ii; ++i) {\n const entry = layout[i];\n const key = Array.isArray(entry[0])\n ? (entry[0][0] << 8) + entry[0][1]\n : entry[0];\n tables.keyToNameMap[key] = entry[1];\n tables.nameToKeyMap[entry[1]] = key;\n tables.types[key] = entry[2];\n tables.defaults[key] = entry[3];\n tables.opcodes[key] = Array.isArray(entry[0]) ? entry[0] : [entry[0]];\n tables.order.push(key);\n }\n return tables;\n }\n}\n\nconst CFFTopDict = (function CFFTopDictClosure() {\n const layout = [\n [[12, 30], \"ROS\", [\"sid\", \"sid\", \"num\"], null],\n [[12, 20], \"SyntheticBase\", \"num\", null],\n [0, \"version\", \"sid\", null],\n [1, \"Notice\", \"sid\", null],\n [[12, 0], \"Copyright\", \"sid\", null],\n [2, \"FullName\", \"sid\", null],\n [3, \"FamilyName\", \"sid\", null],\n [4, \"Weight\", \"sid\", null],\n [[12, 1], \"isFixedPitch\", \"num\", 0],\n [[12, 2], \"ItalicAngle\", \"num\", 0],\n [[12, 3], \"UnderlinePosition\", \"num\", -100],\n [[12, 4], \"UnderlineThickness\", \"num\", 50],\n [[12, 5], \"PaintType\", \"num\", 0],\n [[12, 6], \"CharstringType\", \"num\", 2],\n // prettier-ignore\n [[12, 7], \"FontMatrix\", [\"num\", \"num\", \"num\", \"num\", \"num\", \"num\"],\n [0.001, 0, 0, 0.001, 0, 0]],\n [13, \"UniqueID\", \"num\", null],\n [5, \"FontBBox\", [\"num\", \"num\", \"num\", \"num\"], [0, 0, 0, 0]],\n [[12, 8], \"StrokeWidth\", \"num\", 0],\n [14, \"XUID\", \"array\", null],\n [15, \"charset\", \"offset\", 0],\n [16, \"Encoding\", \"offset\", 0],\n [17, \"CharStrings\", \"offset\", 0],\n [18, \"Private\", [\"offset\", \"offset\"], null],\n [[12, 21], \"PostScript\", \"sid\", null],\n [[12, 22], \"BaseFontName\", \"sid\", null],\n [[12, 23], \"BaseFontBlend\", \"delta\", null],\n [[12, 31], \"CIDFontVersion\", \"num\", 0],\n [[12, 32], \"CIDFontRevision\", \"num\", 0],\n [[12, 33], \"CIDFontType\", \"num\", 0],\n [[12, 34], \"CIDCount\", \"num\", 8720],\n [[12, 35], \"UIDBase\", \"num\", null],\n // XXX: CID Fonts on DirectWrite 6.1 only seem to work if FDSelect comes\n // before FDArray.\n [[12, 37], \"FDSelect\", \"offset\", null],\n [[12, 36], \"FDArray\", \"offset\", null],\n [[12, 38], \"FontName\", \"sid\", null],\n ];\n let tables = null;\n\n // eslint-disable-next-line no-shadow\n class CFFTopDict extends CFFDict {\n constructor(strings) {\n if (tables === null) {\n tables = CFFDict.createTables(layout);\n }\n super(tables, strings);\n this.privateDict = null;\n }\n }\n return CFFTopDict;\n})();\n\nconst CFFPrivateDict = (function CFFPrivateDictClosure() {\n const layout = [\n [6, \"BlueValues\", \"delta\", null],\n [7, \"OtherBlues\", \"delta\", null],\n [8, \"FamilyBlues\", \"delta\", null],\n [9, \"FamilyOtherBlues\", \"delta\", null],\n [[12, 9], \"BlueScale\", \"num\", 0.039625],\n [[12, 10], \"BlueShift\", \"num\", 7],\n [[12, 11], \"BlueFuzz\", \"num\", 1],\n [10, \"StdHW\", \"num\", null],\n [11, \"StdVW\", \"num\", null],\n [[12, 12], \"StemSnapH\", \"delta\", null],\n [[12, 13], \"StemSnapV\", \"delta\", null],\n [[12, 14], \"ForceBold\", \"num\", 0],\n [[12, 17], \"LanguageGroup\", \"num\", 0],\n [[12, 18], \"ExpansionFactor\", \"num\", 0.06],\n [[12, 19], \"initialRandomSeed\", \"num\", 0],\n [20, \"defaultWidthX\", \"num\", 0],\n [21, \"nominalWidthX\", \"num\", 0],\n [19, \"Subrs\", \"offset\", null],\n ];\n let tables = null;\n\n // eslint-disable-next-line no-shadow\n class CFFPrivateDict extends CFFDict {\n constructor(strings) {\n if (tables === null) {\n tables = CFFDict.createTables(layout);\n }\n super(tables, strings);\n this.subrsIndex = null;\n }\n }\n return CFFPrivateDict;\n})();\n\nconst CFFCharsetPredefinedTypes = {\n ISO_ADOBE: 0,\n EXPERT: 1,\n EXPERT_SUBSET: 2,\n};\n\nclass CFFCharset {\n constructor(predefined, format, charset, raw) {\n this.predefined = predefined;\n this.format = format;\n this.charset = charset;\n this.raw = raw;\n }\n}\n\nclass CFFEncoding {\n constructor(predefined, format, encoding, raw) {\n this.predefined = predefined;\n this.format = format;\n this.encoding = encoding;\n this.raw = raw;\n }\n}\n\nclass CFFFDSelect {\n constructor(format, fdSelect) {\n this.format = format;\n this.fdSelect = fdSelect;\n }\n\n getFDIndex(glyphIndex) {\n if (glyphIndex < 0 || glyphIndex >= this.fdSelect.length) {\n return -1;\n }\n return this.fdSelect[glyphIndex];\n }\n}\n\n// Helper class to keep track of where an offset is within the data and helps\n// filling in that offset once it's known.\nclass CFFOffsetTracker {\n constructor() {\n this.offsets = Object.create(null);\n }\n\n isTracking(key) {\n return key in this.offsets;\n }\n\n track(key, location) {\n if (key in this.offsets) {\n throw new FormatError(`Already tracking location of ${key}`);\n }\n this.offsets[key] = location;\n }\n\n offset(value) {\n for (const key in this.offsets) {\n this.offsets[key] += value;\n }\n }\n\n setEntryLocation(key, values, output) {\n if (!(key in this.offsets)) {\n throw new FormatError(`Not tracking location of ${key}`);\n }\n const data = output.data;\n const dataOffset = this.offsets[key];\n const size = 5;\n for (let i = 0, ii = values.length; i < ii; ++i) {\n const offset0 = i * size + dataOffset;\n const offset1 = offset0 + 1;\n const offset2 = offset0 + 2;\n const offset3 = offset0 + 3;\n const offset4 = offset0 + 4;\n // It's easy to screw up offsets so perform this sanity check.\n if (\n data[offset0] !== 0x1d ||\n data[offset1] !== 0 ||\n data[offset2] !== 0 ||\n data[offset3] !== 0 ||\n data[offset4] !== 0\n ) {\n throw new FormatError(\"writing to an offset that is not empty\");\n }\n const value = values[i];\n data[offset0] = 0x1d;\n data[offset1] = (value >> 24) & 0xff;\n data[offset2] = (value >> 16) & 0xff;\n data[offset3] = (value >> 8) & 0xff;\n data[offset4] = value & 0xff;\n }\n }\n}\n\n// Takes a CFF and converts it to the binary representation.\nclass CFFCompiler {\n constructor(cff) {\n this.cff = cff;\n }\n\n compile() {\n const cff = this.cff;\n const output = {\n data: [],\n length: 0,\n add: function CFFCompiler_add(data) {\n this.data = this.data.concat(data);\n this.length = this.data.length;\n },\n };\n\n // Compile the five entries that must be in order.\n const header = this.compileHeader(cff.header);\n output.add(header);\n\n const nameIndex = this.compileNameIndex(cff.names);\n output.add(nameIndex);\n\n if (cff.isCIDFont) {\n // The spec is unclear on how font matrices should relate to each other\n // when there is one in the main top dict and the sub top dicts.\n // Windows handles this differently than linux and osx so we have to\n // normalize to work on all.\n // Rules based off of some mailing list discussions:\n // - If main font has a matrix and subfont doesn't, use the main matrix.\n // - If no main font matrix and there is a subfont matrix, use the\n // subfont matrix.\n // - If both have matrices, concat together.\n // - If neither have matrices, use default.\n // To make this work on all platforms we move the top matrix into each\n // sub top dict and concat if necessary.\n if (cff.topDict.hasName(\"FontMatrix\")) {\n const base = cff.topDict.getByName(\"FontMatrix\");\n cff.topDict.removeByName(\"FontMatrix\");\n for (let i = 0, ii = cff.fdArray.length; i < ii; i++) {\n const subDict = cff.fdArray[i];\n let matrix = base.slice(0);\n if (subDict.hasName(\"FontMatrix\")) {\n matrix = Util.transform(matrix, subDict.getByName(\"FontMatrix\"));\n }\n subDict.setByName(\"FontMatrix\", matrix);\n }\n }\n }\n\n const xuid = cff.topDict.getByName(\"XUID\");\n if (xuid && xuid.length > 16) {\n // Length of XUID array must not be greater than 16 (issue #12399).\n cff.topDict.removeByName(\"XUID\");\n }\n\n cff.topDict.setByName(\"charset\", 0);\n let compiled = this.compileTopDicts(\n [cff.topDict],\n output.length,\n cff.isCIDFont\n );\n output.add(compiled.output);\n const topDictTracker = compiled.trackers[0];\n\n const stringIndex = this.compileStringIndex(cff.strings.strings);\n output.add(stringIndex);\n\n const globalSubrIndex = this.compileIndex(cff.globalSubrIndex);\n output.add(globalSubrIndex);\n\n // Now start on the other entries that have no specific order.\n if (cff.encoding && cff.topDict.hasName(\"Encoding\")) {\n if (cff.encoding.predefined) {\n topDictTracker.setEntryLocation(\n \"Encoding\",\n [cff.encoding.format],\n output\n );\n } else {\n const encoding = this.compileEncoding(cff.encoding);\n topDictTracker.setEntryLocation(\"Encoding\", [output.length], output);\n output.add(encoding);\n }\n }\n const charset = this.compileCharset(\n cff.charset,\n cff.charStrings.count,\n cff.strings,\n cff.isCIDFont\n );\n topDictTracker.setEntryLocation(\"charset\", [output.length], output);\n output.add(charset);\n\n const charStrings = this.compileCharStrings(cff.charStrings);\n topDictTracker.setEntryLocation(\"CharStrings\", [output.length], output);\n output.add(charStrings);\n\n if (cff.isCIDFont) {\n // For some reason FDSelect must be in front of FDArray on windows. OSX\n // and linux don't seem to care.\n topDictTracker.setEntryLocation(\"FDSelect\", [output.length], output);\n const fdSelect = this.compileFDSelect(cff.fdSelect);\n output.add(fdSelect);\n // It is unclear if the sub font dictionary can have CID related\n // dictionary keys, but the sanitizer doesn't like them so remove them.\n compiled = this.compileTopDicts(cff.fdArray, output.length, true);\n topDictTracker.setEntryLocation(\"FDArray\", [output.length], output);\n output.add(compiled.output);\n const fontDictTrackers = compiled.trackers;\n\n this.compilePrivateDicts(cff.fdArray, fontDictTrackers, output);\n }\n\n this.compilePrivateDicts([cff.topDict], [topDictTracker], output);\n\n // If the font data ends with INDEX whose object data is zero-length,\n // the sanitizer will bail out. Add a dummy byte to avoid that.\n output.add([0]);\n\n return output.data;\n }\n\n encodeNumber(value) {\n if (Number.isInteger(value)) {\n return this.encodeInteger(value);\n }\n return this.encodeFloat(value);\n }\n\n static get EncodeFloatRegExp() {\n return shadow(\n this,\n \"EncodeFloatRegExp\",\n /\\.(\\d*?)(?:9{5,20}|0{5,20})\\d{0,2}(?:e(.+)|$)/\n );\n }\n\n encodeFloat(num) {\n let value = num.toString();\n\n // Rounding inaccurate doubles.\n const m = CFFCompiler.EncodeFloatRegExp.exec(value);\n if (m) {\n const epsilon = parseFloat(\"1e\" + ((m[2] ? +m[2] : 0) + m[1].length));\n value = (Math.round(num * epsilon) / epsilon).toString();\n }\n\n let nibbles = \"\";\n let i, ii;\n for (i = 0, ii = value.length; i < ii; ++i) {\n const a = value[i];\n if (a === \"e\") {\n nibbles += value[++i] === \"-\" ? \"c\" : \"b\";\n } else if (a === \".\") {\n nibbles += \"a\";\n } else if (a === \"-\") {\n nibbles += \"e\";\n } else {\n nibbles += a;\n }\n }\n nibbles += nibbles.length & 1 ? \"f\" : \"ff\";\n const out = [30];\n for (i = 0, ii = nibbles.length; i < ii; i += 2) {\n out.push(parseInt(nibbles.substring(i, i + 2), 16));\n }\n return out;\n }\n\n encodeInteger(value) {\n let code;\n if (value >= -107 && value <= 107) {\n code = [value + 139];\n } else if (value >= 108 && value <= 1131) {\n value -= 108;\n code = [(value >> 8) + 247, value & 0xff];\n } else if (value >= -1131 && value <= -108) {\n value = -value - 108;\n code = [(value >> 8) + 251, value & 0xff];\n } else if (value >= -32768 && value <= 32767) {\n code = [0x1c, (value >> 8) & 0xff, value & 0xff];\n } else {\n code = [\n 0x1d,\n (value >> 24) & 0xff,\n (value >> 16) & 0xff,\n (value >> 8) & 0xff,\n value & 0xff,\n ];\n }\n return code;\n }\n\n compileHeader(header) {\n // `header.hdrSize` can be any value but we only write 4 values\n // so header size is 4 (prevents OTS from rejecting the font).\n return [header.major, header.minor, 4, header.offSize];\n }\n\n compileNameIndex(names) {\n const nameIndex = new CFFIndex();\n for (let i = 0, ii = names.length; i < ii; ++i) {\n const name = names[i];\n // OTS doesn't allow names to be over 127 characters.\n const length = Math.min(name.length, 127);\n let sanitizedName = new Array(length);\n for (let j = 0; j < length; j++) {\n // OTS requires chars to be between a range and not certain other\n // chars.\n let char = name[j];\n if (\n char < \"!\" ||\n char > \"~\" ||\n char === \"[\" ||\n char === \"]\" ||\n char === \"(\" ||\n char === \")\" ||\n char === \"{\" ||\n char === \"}\" ||\n char === \"<\" ||\n char === \">\" ||\n char === \"/\" ||\n char === \"%\"\n ) {\n char = \"_\";\n }\n sanitizedName[j] = char;\n }\n sanitizedName = sanitizedName.join(\"\");\n\n if (sanitizedName === \"\") {\n sanitizedName = \"Bad_Font_Name\";\n }\n nameIndex.add(stringToBytes(sanitizedName));\n }\n return this.compileIndex(nameIndex);\n }\n\n compileTopDicts(dicts, length, removeCidKeys) {\n const fontDictTrackers = [];\n let fdArrayIndex = new CFFIndex();\n for (let i = 0, ii = dicts.length; i < ii; ++i) {\n const fontDict = dicts[i];\n if (removeCidKeys) {\n fontDict.removeByName(\"CIDFontVersion\");\n fontDict.removeByName(\"CIDFontRevision\");\n fontDict.removeByName(\"CIDFontType\");\n fontDict.removeByName(\"CIDCount\");\n fontDict.removeByName(\"UIDBase\");\n }\n const fontDictTracker = new CFFOffsetTracker();\n const fontDictData = this.compileDict(fontDict, fontDictTracker);\n fontDictTrackers.push(fontDictTracker);\n fdArrayIndex.add(fontDictData);\n fontDictTracker.offset(length);\n }\n fdArrayIndex = this.compileIndex(fdArrayIndex, fontDictTrackers);\n return {\n trackers: fontDictTrackers,\n output: fdArrayIndex,\n };\n }\n\n compilePrivateDicts(dicts, trackers, output) {\n for (let i = 0, ii = dicts.length; i < ii; ++i) {\n const fontDict = dicts[i];\n const privateDict = fontDict.privateDict;\n if (!privateDict || !fontDict.hasName(\"Private\")) {\n throw new FormatError(\"There must be a private dictionary.\");\n }\n const privateDictTracker = new CFFOffsetTracker();\n const privateDictData = this.compileDict(privateDict, privateDictTracker);\n\n let outputLength = output.length;\n privateDictTracker.offset(outputLength);\n if (!privateDictData.length) {\n // The private dictionary was empty, set the output length to zero to\n // ensure the offset length isn't out of bounds in the eyes of the\n // sanitizer.\n outputLength = 0;\n }\n\n trackers[i].setEntryLocation(\n \"Private\",\n [privateDictData.length, outputLength],\n output\n );\n output.add(privateDictData);\n\n if (privateDict.subrsIndex && privateDict.hasName(\"Subrs\")) {\n const subrs = this.compileIndex(privateDict.subrsIndex);\n privateDictTracker.setEntryLocation(\n \"Subrs\",\n [privateDictData.length],\n output\n );\n output.add(subrs);\n }\n }\n }\n\n compileDict(dict, offsetTracker) {\n let out = [];\n // The dictionary keys must be in a certain order.\n const order = dict.order;\n for (let i = 0; i < order.length; ++i) {\n const key = order[i];\n if (!(key in dict.values)) {\n continue;\n }\n let values = dict.values[key];\n let types = dict.types[key];\n if (!Array.isArray(types)) {\n types = [types];\n }\n if (!Array.isArray(values)) {\n values = [values];\n }\n\n // Remove any empty dict values.\n if (values.length === 0) {\n continue;\n }\n\n for (let j = 0, jj = types.length; j < jj; ++j) {\n const type = types[j];\n const value = values[j];\n switch (type) {\n case \"num\":\n case \"sid\":\n out = out.concat(this.encodeNumber(value));\n break;\n case \"offset\":\n // For offsets we just insert a 32bit integer so we don't have to\n // deal with figuring out the length of the offset when it gets\n // replaced later on by the compiler.\n const name = dict.keyToNameMap[key];\n // Some offsets have the offset and the length, so just record the\n // position of the first one.\n if (!offsetTracker.isTracking(name)) {\n offsetTracker.track(name, out.length);\n }\n out = out.concat([0x1d, 0, 0, 0, 0]);\n break;\n case \"array\":\n case \"delta\":\n out = out.concat(this.encodeNumber(value));\n for (let k = 1, kk = values.length; k < kk; ++k) {\n out = out.concat(this.encodeNumber(values[k]));\n }\n break;\n default:\n throw new FormatError(`Unknown data type of ${type}`);\n }\n }\n out = out.concat(dict.opcodes[key]);\n }\n return out;\n }\n\n compileStringIndex(strings) {\n const stringIndex = new CFFIndex();\n for (let i = 0, ii = strings.length; i < ii; ++i) {\n stringIndex.add(stringToBytes(strings[i]));\n }\n return this.compileIndex(stringIndex);\n }\n\n compileGlobalSubrIndex() {\n const globalSubrIndex = this.cff.globalSubrIndex;\n this.out.writeByteArray(this.compileIndex(globalSubrIndex));\n }\n\n compileCharStrings(charStrings) {\n const charStringsIndex = new CFFIndex();\n for (let i = 0; i < charStrings.count; i++) {\n const glyph = charStrings.get(i);\n // If the CharString outline is empty, replace it with .notdef to\n // prevent OTS from rejecting the font (fixes bug1252420.pdf).\n if (glyph.length === 0) {\n charStringsIndex.add(new Uint8Array([0x8b, 0x0e]));\n continue;\n }\n charStringsIndex.add(glyph);\n }\n return this.compileIndex(charStringsIndex);\n }\n\n compileCharset(charset, numGlyphs, strings, isCIDFont) {\n // Freetype requires the number of charset strings be correct and MacOS\n // requires a valid mapping for printing.\n let out;\n const numGlyphsLessNotDef = numGlyphs - 1;\n if (isCIDFont) {\n // In a CID font, the charset is a mapping of CIDs not SIDs so just\n // create an identity mapping.\n out = new Uint8Array([\n 2, // format\n 0, // first CID upper byte\n 0, // first CID lower byte\n (numGlyphsLessNotDef >> 8) & 0xff,\n numGlyphsLessNotDef & 0xff,\n ]);\n } else {\n const length = 1 + numGlyphsLessNotDef * 2;\n out = new Uint8Array(length);\n out[0] = 0; // format 0\n let charsetIndex = 0;\n const numCharsets = charset.charset.length;\n let warned = false;\n for (let i = 1; i < out.length; i += 2) {\n let sid = 0;\n if (charsetIndex < numCharsets) {\n const name = charset.charset[charsetIndex++];\n sid = strings.getSID(name);\n if (sid === -1) {\n sid = 0;\n if (!warned) {\n warned = true;\n warn(`Couldn't find ${name} in CFF strings`);\n }\n }\n }\n out[i] = (sid >> 8) & 0xff;\n out[i + 1] = sid & 0xff;\n }\n }\n return this.compileTypedArray(out);\n }\n\n compileEncoding(encoding) {\n return this.compileTypedArray(encoding.raw);\n }\n\n compileFDSelect(fdSelect) {\n const format = fdSelect.format;\n let out, i;\n switch (format) {\n case 0:\n out = new Uint8Array(1 + fdSelect.fdSelect.length);\n out[0] = format;\n for (i = 0; i < fdSelect.fdSelect.length; i++) {\n out[i + 1] = fdSelect.fdSelect[i];\n }\n break;\n case 3:\n const start = 0;\n let lastFD = fdSelect.fdSelect[0];\n const ranges = [\n format,\n 0, // nRanges place holder\n 0, // nRanges place holder\n (start >> 8) & 0xff,\n start & 0xff,\n lastFD,\n ];\n for (i = 1; i < fdSelect.fdSelect.length; i++) {\n const currentFD = fdSelect.fdSelect[i];\n if (currentFD !== lastFD) {\n ranges.push((i >> 8) & 0xff, i & 0xff, currentFD);\n lastFD = currentFD;\n }\n }\n // 3 bytes are pushed for every range and there are 3 header bytes.\n const numRanges = (ranges.length - 3) / 3;\n ranges[1] = (numRanges >> 8) & 0xff;\n ranges[2] = numRanges & 0xff;\n // sentinel\n ranges.push((i >> 8) & 0xff, i & 0xff);\n out = new Uint8Array(ranges);\n break;\n }\n return this.compileTypedArray(out);\n }\n\n compileTypedArray(data) {\n const out = [];\n for (let i = 0, ii = data.length; i < ii; ++i) {\n out[i] = data[i];\n }\n return out;\n }\n\n compileIndex(index, trackers = []) {\n const objects = index.objects;\n // First 2 bytes contains the number of objects contained into this index\n const count = objects.length;\n\n // If there is no object, just create an index. This technically\n // should just be [0, 0] but OTS has an issue with that.\n if (count === 0) {\n return [0, 0, 0];\n }\n\n const data = [(count >> 8) & 0xff, count & 0xff];\n\n let lastOffset = 1,\n i;\n for (i = 0; i < count; ++i) {\n lastOffset += objects[i].length;\n }\n\n let offsetSize;\n if (lastOffset < 0x100) {\n offsetSize = 1;\n } else if (lastOffset < 0x10000) {\n offsetSize = 2;\n } else if (lastOffset < 0x1000000) {\n offsetSize = 3;\n } else {\n offsetSize = 4;\n }\n\n // Next byte contains the offset size use to reference object in the file\n data.push(offsetSize);\n\n // Add another offset after this one because we need a new offset\n let relativeOffset = 1;\n for (i = 0; i < count + 1; i++) {\n if (offsetSize === 1) {\n data.push(relativeOffset & 0xff);\n } else if (offsetSize === 2) {\n data.push((relativeOffset >> 8) & 0xff, relativeOffset & 0xff);\n } else if (offsetSize === 3) {\n data.push(\n (relativeOffset >> 16) & 0xff,\n (relativeOffset >> 8) & 0xff,\n relativeOffset & 0xff\n );\n } else {\n data.push(\n (relativeOffset >>> 24) & 0xff,\n (relativeOffset >> 16) & 0xff,\n (relativeOffset >> 8) & 0xff,\n relativeOffset & 0xff\n );\n }\n\n if (objects[i]) {\n relativeOffset += objects[i].length;\n }\n }\n\n for (i = 0; i < count; i++) {\n // Notify the tracker where the object will be offset in the data.\n if (trackers[i]) {\n trackers[i].offset(data.length);\n }\n for (let j = 0, jj = objects[i].length; j < jj; j++) {\n data.push(objects[i][j]);\n }\n }\n return data;\n }\n}\n\nexport {\n CFF,\n CFFCharset,\n CFFCompiler,\n CFFFDSelect,\n CFFHeader,\n CFFIndex,\n CFFParser,\n CFFPrivateDict,\n CFFStandardStrings,\n CFFStrings,\n CFFTopDict,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// prettier-ignore\nconst ISOAdobeCharset = [\n \".notdef\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\",\n \"percent\", \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\",\n \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\",\n \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\",\n \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\",\n \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\",\n \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\",\n \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\",\n \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\",\n \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\",\n \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"exclamdown\", \"cent\",\n \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\",\n \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\",\n \"guilsinglright\", \"fi\", \"fl\", \"endash\", \"dagger\", \"daggerdbl\",\n \"periodcentered\", \"paragraph\", \"bullet\", \"quotesinglbase\",\n \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\",\n \"perthousand\", \"questiondown\", \"grave\", \"acute\", \"circumflex\", \"tilde\",\n \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"ring\", \"cedilla\",\n \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"AE\", \"ordfeminine\",\n \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"ae\", \"dotlessi\", \"lslash\",\n \"oslash\", \"oe\", \"germandbls\", \"onesuperior\", \"logicalnot\", \"mu\",\n \"trademark\", \"Eth\", \"onehalf\", \"plusminus\", \"Thorn\", \"onequarter\",\n \"divide\", \"brokenbar\", \"degree\", \"thorn\", \"threequarters\", \"twosuperior\",\n \"registered\", \"minus\", \"eth\", \"multiply\", \"threesuperior\", \"copyright\",\n \"Aacute\", \"Acircumflex\", \"Adieresis\", \"Agrave\", \"Aring\", \"Atilde\",\n \"Ccedilla\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Egrave\", \"Iacute\",\n \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Ntilde\", \"Oacute\", \"Ocircumflex\",\n \"Odieresis\", \"Ograve\", \"Otilde\", \"Scaron\", \"Uacute\", \"Ucircumflex\",\n \"Udieresis\", \"Ugrave\", \"Yacute\", \"Ydieresis\", \"Zcaron\", \"aacute\",\n \"acircumflex\", \"adieresis\", \"agrave\", \"aring\", \"atilde\", \"ccedilla\",\n \"eacute\", \"ecircumflex\", \"edieresis\", \"egrave\", \"iacute\", \"icircumflex\",\n \"idieresis\", \"igrave\", \"ntilde\", \"oacute\", \"ocircumflex\", \"odieresis\",\n \"ograve\", \"otilde\", \"scaron\", \"uacute\", \"ucircumflex\", \"udieresis\",\n \"ugrave\", \"yacute\", \"ydieresis\", \"zcaron\"\n];\n\n// prettier-ignore\nconst ExpertCharset = [\n \".notdef\", \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"dollaroldstyle\",\n \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\",\n \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\",\n \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\",\n \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\",\n \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\",\n \"colon\", \"semicolon\", \"commasuperior\", \"threequartersemdash\",\n \"periodsuperior\", \"questionsmall\", \"asuperior\", \"bsuperior\",\n \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\",\n \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\",\n \"tsuperior\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\",\n \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\",\n \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\",\n \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\",\n \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\",\n \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\",\n \"onefitted\", \"rupiah\", \"Tildesmall\", \"exclamdownsmall\", \"centoldstyle\",\n \"Lslashsmall\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\",\n \"Brevesmall\", \"Caronsmall\", \"Dotaccentsmall\", \"Macronsmall\",\n \"figuredash\", \"hypheninferior\", \"Ogoneksmall\", \"Ringsmall\",\n \"Cedillasmall\", \"onequarter\", \"onehalf\", \"threequarters\",\n \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"onesuperior\",\n \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\",\n \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\",\n \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\",\n \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\",\n \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\",\n \"periodinferior\", \"commainferior\", \"Agravesmall\", \"Aacutesmall\",\n \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\",\n \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\",\n \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\",\n \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\",\n \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\",\n \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\",\n \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\",\n \"Ydieresissmall\"\n];\n\n// prettier-ignore\nconst ExpertSubsetCharset = [\n \".notdef\", \"space\", \"dollaroldstyle\", \"dollarsuperior\",\n \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\",\n \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\",\n \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\",\n \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\",\n \"eightoldstyle\", \"nineoldstyle\", \"colon\", \"semicolon\", \"commasuperior\",\n \"threequartersemdash\", \"periodsuperior\", \"asuperior\", \"bsuperior\",\n \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\",\n \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\",\n \"tsuperior\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\",\n \"parenrightinferior\", \"hyphensuperior\", \"colonmonetary\", \"onefitted\",\n \"rupiah\", \"centoldstyle\", \"figuredash\", \"hypheninferior\", \"onequarter\",\n \"onehalf\", \"threequarters\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"onesuperior\",\n \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\",\n \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\",\n \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\",\n \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\",\n \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\",\n \"periodinferior\", \"commainferior\"\n];\n\nexport { ExpertCharset, ExpertSubsetCharset, ISOAdobeCharset };\n","/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getLookupTableFactory } from \"./core_utils.js\";\nimport { normalizeFontName } from \"./fonts_utils.js\";\n\n/**\n * Hold a map of decoded fonts and of the standard fourteen Type1\n * fonts and their acronyms.\n */\nconst getStdFontMap = getLookupTableFactory(function (t) {\n // The standard 14 fonts:\n t[\"Times-Roman\"] = \"Times-Roman\";\n t.Helvetica = \"Helvetica\";\n t.Courier = \"Courier\";\n t.Symbol = \"Symbol\";\n t[\"Times-Bold\"] = \"Times-Bold\";\n t[\"Helvetica-Bold\"] = \"Helvetica-Bold\";\n t[\"Courier-Bold\"] = \"Courier-Bold\";\n t.ZapfDingbats = \"ZapfDingbats\";\n t[\"Times-Italic\"] = \"Times-Italic\";\n t[\"Helvetica-Oblique\"] = \"Helvetica-Oblique\";\n t[\"Courier-Oblique\"] = \"Courier-Oblique\";\n t[\"Times-BoldItalic\"] = \"Times-BoldItalic\";\n t[\"Helvetica-BoldOblique\"] = \"Helvetica-BoldOblique\";\n t[\"Courier-BoldOblique\"] = \"Courier-BoldOblique\";\n\n // Extra mappings\n t.ArialNarrow = \"Helvetica\";\n t[\"ArialNarrow-Bold\"] = \"Helvetica-Bold\";\n t[\"ArialNarrow-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"ArialNarrow-Italic\"] = \"Helvetica-Oblique\";\n t.ArialBlack = \"Helvetica\";\n t[\"ArialBlack-Bold\"] = \"Helvetica-Bold\";\n t[\"ArialBlack-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"ArialBlack-Italic\"] = \"Helvetica-Oblique\";\n t[\"Arial-Black\"] = \"Helvetica\";\n t[\"Arial-Black-Bold\"] = \"Helvetica-Bold\";\n t[\"Arial-Black-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Arial-Black-Italic\"] = \"Helvetica-Oblique\";\n t.Arial = \"Helvetica\";\n t[\"Arial-Bold\"] = \"Helvetica-Bold\";\n t[\"Arial-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Arial-Italic\"] = \"Helvetica-Oblique\";\n t[\"Arial-BoldItalicMT\"] = \"Helvetica-BoldOblique\";\n t[\"Arial-BoldMT\"] = \"Helvetica-Bold\";\n t[\"Arial-ItalicMT\"] = \"Helvetica-Oblique\";\n t.ArialMT = \"Helvetica\";\n t[\"Courier-BoldItalic\"] = \"Courier-BoldOblique\";\n t[\"Courier-Italic\"] = \"Courier-Oblique\";\n t.CourierNew = \"Courier\";\n t[\"CourierNew-Bold\"] = \"Courier-Bold\";\n t[\"CourierNew-BoldItalic\"] = \"Courier-BoldOblique\";\n t[\"CourierNew-Italic\"] = \"Courier-Oblique\";\n t[\"CourierNewPS-BoldItalicMT\"] = \"Courier-BoldOblique\";\n t[\"CourierNewPS-BoldMT\"] = \"Courier-Bold\";\n t[\"CourierNewPS-ItalicMT\"] = \"Courier-Oblique\";\n t.CourierNewPSMT = \"Courier\";\n t[\"Helvetica-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Helvetica-Italic\"] = \"Helvetica-Oblique\";\n t[\"Symbol-Bold\"] = \"Symbol\";\n t[\"Symbol-BoldItalic\"] = \"Symbol\";\n t[\"Symbol-Italic\"] = \"Symbol\";\n t.TimesNewRoman = \"Times-Roman\";\n t[\"TimesNewRoman-Bold\"] = \"Times-Bold\";\n t[\"TimesNewRoman-BoldItalic\"] = \"Times-BoldItalic\";\n t[\"TimesNewRoman-Italic\"] = \"Times-Italic\";\n t.TimesNewRomanPS = \"Times-Roman\";\n t[\"TimesNewRomanPS-Bold\"] = \"Times-Bold\";\n t[\"TimesNewRomanPS-BoldItalic\"] = \"Times-BoldItalic\";\n t[\"TimesNewRomanPS-BoldItalicMT\"] = \"Times-BoldItalic\";\n t[\"TimesNewRomanPS-BoldMT\"] = \"Times-Bold\";\n t[\"TimesNewRomanPS-Italic\"] = \"Times-Italic\";\n t[\"TimesNewRomanPS-ItalicMT\"] = \"Times-Italic\";\n t.TimesNewRomanPSMT = \"Times-Roman\";\n t[\"TimesNewRomanPSMT-Bold\"] = \"Times-Bold\";\n t[\"TimesNewRomanPSMT-BoldItalic\"] = \"Times-BoldItalic\";\n t[\"TimesNewRomanPSMT-Italic\"] = \"Times-Italic\";\n});\n\n// Contains mapping for standard fonts and xfa fonts.\nconst getFontNameToFileMap = getLookupTableFactory(function (t) {\n t.Courier = \"FoxitFixed.pfb\";\n t[\"Courier-Bold\"] = \"FoxitFixedBold.pfb\";\n t[\"Courier-BoldOblique\"] = \"FoxitFixedBoldItalic.pfb\";\n t[\"Courier-Oblique\"] = \"FoxitFixedItalic.pfb\";\n t.Helvetica = \"FoxitSans.pfb\";\n t[\"Helvetica-Bold\"] = \"FoxitSansBold.pfb\";\n t[\"Helvetica-BoldOblique\"] = \"FoxitSansBoldItalic.pfb\";\n t[\"Helvetica-Oblique\"] = \"FoxitSansItalic.pfb\";\n t[\"Times-Roman\"] = \"FoxitSerif.pfb\";\n t[\"Times-Bold\"] = \"FoxitSerifBold.pfb\";\n t[\"Times-BoldItalic\"] = \"FoxitSerifBoldItalic.pfb\";\n t[\"Times-Italic\"] = \"FoxitSerifItalic.pfb\";\n t.Symbol = \"FoxitSymbol.pfb\";\n t.ZapfDingbats = \"FoxitDingbats.pfb\";\n t[\"LiberationSans-Regular\"] = \"LiberationSans-Regular.ttf\";\n t[\"LiberationSans-Bold\"] = \"LiberationSans-Bold.ttf\";\n t[\"LiberationSans-Italic\"] = \"LiberationSans-Italic.ttf\";\n t[\"LiberationSans-BoldItalic\"] = \"LiberationSans-BoldItalic.ttf\";\n});\n\n/**\n * Holds the map of the non-standard fonts that might be included as\n * a standard fonts without glyph data.\n */\nconst getNonStdFontMap = getLookupTableFactory(function (t) {\n t.Calibri = \"Helvetica\";\n t[\"Calibri-Bold\"] = \"Helvetica-Bold\";\n t[\"Calibri-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Calibri-Italic\"] = \"Helvetica-Oblique\";\n t.CenturyGothic = \"Helvetica\";\n t[\"CenturyGothic-Bold\"] = \"Helvetica-Bold\";\n t[\"CenturyGothic-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"CenturyGothic-Italic\"] = \"Helvetica-Oblique\";\n t.ComicSansMS = \"Comic Sans MS\";\n t[\"ComicSansMS-Bold\"] = \"Comic Sans MS-Bold\";\n t[\"ComicSansMS-BoldItalic\"] = \"Comic Sans MS-BoldItalic\";\n t[\"ComicSansMS-Italic\"] = \"Comic Sans MS-Italic\";\n t[\"ItcSymbol-Bold\"] = \"Helvetica-Bold\";\n t[\"ItcSymbol-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"ItcSymbol-Book\"] = \"Helvetica\";\n t[\"ItcSymbol-BookItalic\"] = \"Helvetica-Oblique\";\n t[\"ItcSymbol-Medium\"] = \"Helvetica\";\n t[\"ItcSymbol-MediumItalic\"] = \"Helvetica-Oblique\";\n t.LucidaConsole = \"Courier\";\n t[\"LucidaConsole-Bold\"] = \"Courier-Bold\";\n t[\"LucidaConsole-BoldItalic\"] = \"Courier-BoldOblique\";\n t[\"LucidaConsole-Italic\"] = \"Courier-Oblique\";\n t[\"LucidaSans-Demi\"] = \"Helvetica-Bold\";\n t[\"MS-Gothic\"] = \"MS Gothic\";\n t[\"MS-Gothic-Bold\"] = \"MS Gothic-Bold\";\n t[\"MS-Gothic-BoldItalic\"] = \"MS Gothic-BoldItalic\";\n t[\"MS-Gothic-Italic\"] = \"MS Gothic-Italic\";\n t[\"MS-Mincho\"] = \"MS Mincho\";\n t[\"MS-Mincho-Bold\"] = \"MS Mincho-Bold\";\n t[\"MS-Mincho-BoldItalic\"] = \"MS Mincho-BoldItalic\";\n t[\"MS-Mincho-Italic\"] = \"MS Mincho-Italic\";\n t[\"MS-PGothic\"] = \"MS PGothic\";\n t[\"MS-PGothic-Bold\"] = \"MS PGothic-Bold\";\n t[\"MS-PGothic-BoldItalic\"] = \"MS PGothic-BoldItalic\";\n t[\"MS-PGothic-Italic\"] = \"MS PGothic-Italic\";\n t[\"MS-PMincho\"] = \"MS PMincho\";\n t[\"MS-PMincho-Bold\"] = \"MS PMincho-Bold\";\n t[\"MS-PMincho-BoldItalic\"] = \"MS PMincho-BoldItalic\";\n t[\"MS-PMincho-Italic\"] = \"MS PMincho-Italic\";\n t.NuptialScript = \"Times-Italic\";\n t.SegoeUISymbol = \"Helvetica\";\n t.Wingdings = \"ZapfDingbats\";\n t[\"Wingdings-Regular\"] = \"ZapfDingbats\";\n});\n\nconst getSerifFonts = getLookupTableFactory(function (t) {\n t[\"Adobe Jenson\"] = true;\n t[\"Adobe Text\"] = true;\n t.Albertus = true;\n t.Aldus = true;\n t.Alexandria = true;\n t.Algerian = true;\n t[\"American Typewriter\"] = true;\n t.Antiqua = true;\n t.Apex = true;\n t.Arno = true;\n t.Aster = true;\n t.Aurora = true;\n t.Baskerville = true;\n t.Bell = true;\n t.Bembo = true;\n t[\"Bembo Schoolbook\"] = true;\n t.Benguiat = true;\n t[\"Berkeley Old Style\"] = true;\n t[\"Bernhard Modern\"] = true;\n t[\"Berthold City\"] = true;\n t.Bodoni = true;\n t[\"Bauer Bodoni\"] = true;\n t[\"Book Antiqua\"] = true;\n t.Bookman = true;\n t[\"Bordeaux Roman\"] = true;\n t[\"Californian FB\"] = true;\n t.Calisto = true;\n t.Calvert = true;\n t.Capitals = true;\n t.Cambria = true;\n t.Cartier = true;\n t.Caslon = true;\n t.Catull = true;\n t.Centaur = true;\n t[\"Century Old Style\"] = true;\n t[\"Century Schoolbook\"] = true;\n t.Chaparral = true;\n t[\"Charis SIL\"] = true;\n t.Cheltenham = true;\n t[\"Cholla Slab\"] = true;\n t.Clarendon = true;\n t.Clearface = true;\n t.Cochin = true;\n t.Colonna = true;\n t[\"Computer Modern\"] = true;\n t[\"Concrete Roman\"] = true;\n t.Constantia = true;\n t[\"Cooper Black\"] = true;\n t.Corona = true;\n t.Ecotype = true;\n t.Egyptienne = true;\n t.Elephant = true;\n t.Excelsior = true;\n t.Fairfield = true;\n t[\"FF Scala\"] = true;\n t.Folkard = true;\n t.Footlight = true;\n t.FreeSerif = true;\n t[\"Friz Quadrata\"] = true;\n t.Garamond = true;\n t.Gentium = true;\n t.Georgia = true;\n t.Gloucester = true;\n t[\"Goudy Old Style\"] = true;\n t[\"Goudy Schoolbook\"] = true;\n t[\"Goudy Pro Font\"] = true;\n t.Granjon = true;\n t[\"Guardian Egyptian\"] = true;\n t.Heather = true;\n t.Hercules = true;\n t[\"High Tower Text\"] = true;\n t.Hiroshige = true;\n t[\"Hoefler Text\"] = true;\n t[\"Humana Serif\"] = true;\n t.Imprint = true;\n t[\"Ionic No. 5\"] = true;\n t.Janson = true;\n t.Joanna = true;\n t.Korinna = true;\n t.Lexicon = true;\n t.LiberationSerif = true;\n t[\"Liberation Serif\"] = true;\n t[\"Linux Libertine\"] = true;\n t.Literaturnaya = true;\n t.Lucida = true;\n t[\"Lucida Bright\"] = true;\n t.Melior = true;\n t.Memphis = true;\n t.Miller = true;\n t.Minion = true;\n t.Modern = true;\n t[\"Mona Lisa\"] = true;\n t[\"Mrs Eaves\"] = true;\n t[\"MS Serif\"] = true;\n t[\"Museo Slab\"] = true;\n t[\"New York\"] = true;\n t[\"Nimbus Roman\"] = true;\n t[\"NPS Rawlinson Roadway\"] = true;\n t.NuptialScript = true;\n t.Palatino = true;\n t.Perpetua = true;\n t.Plantin = true;\n t[\"Plantin Schoolbook\"] = true;\n t.Playbill = true;\n t[\"Poor Richard\"] = true;\n t[\"Rawlinson Roadway\"] = true;\n t.Renault = true;\n t.Requiem = true;\n t.Rockwell = true;\n t.Roman = true;\n t[\"Rotis Serif\"] = true;\n t.Sabon = true;\n t.Scala = true;\n t.Seagull = true;\n t.Sistina = true;\n t.Souvenir = true;\n t.STIX = true;\n t[\"Stone Informal\"] = true;\n t[\"Stone Serif\"] = true;\n t.Sylfaen = true;\n t.Times = true;\n t.Trajan = true;\n t[\"Trinité\"] = true;\n t[\"Trump Mediaeval\"] = true;\n t.Utopia = true;\n t[\"Vale Type\"] = true;\n t[\"Bitstream Vera\"] = true;\n t[\"Vera Serif\"] = true;\n t.Versailles = true;\n t.Wanted = true;\n t.Weiss = true;\n t[\"Wide Latin\"] = true;\n t.Windsor = true;\n t.XITS = true;\n});\n\nconst getSymbolsFonts = getLookupTableFactory(function (t) {\n t.Dingbats = true;\n t.Symbol = true;\n t.ZapfDingbats = true;\n});\n\n// Glyph map for well-known standard fonts. Sometimes Ghostscript uses CID\n// fonts, but does not embed the CID to GID mapping. The mapping is incomplete\n// for all glyphs, but common for some set of the standard fonts.\nconst getGlyphMapForStandardFonts = getLookupTableFactory(function (t) {\n t[2] = 10;\n t[3] = 32;\n t[4] = 33;\n t[5] = 34;\n t[6] = 35;\n t[7] = 36;\n t[8] = 37;\n t[9] = 38;\n t[10] = 39;\n t[11] = 40;\n t[12] = 41;\n t[13] = 42;\n t[14] = 43;\n t[15] = 44;\n t[16] = 45;\n t[17] = 46;\n t[18] = 47;\n t[19] = 48;\n t[20] = 49;\n t[21] = 50;\n t[22] = 51;\n t[23] = 52;\n t[24] = 53;\n t[25] = 54;\n t[26] = 55;\n t[27] = 56;\n t[28] = 57;\n t[29] = 58;\n t[30] = 894;\n t[31] = 60;\n t[32] = 61;\n t[33] = 62;\n t[34] = 63;\n t[35] = 64;\n t[36] = 65;\n t[37] = 66;\n t[38] = 67;\n t[39] = 68;\n t[40] = 69;\n t[41] = 70;\n t[42] = 71;\n t[43] = 72;\n t[44] = 73;\n t[45] = 74;\n t[46] = 75;\n t[47] = 76;\n t[48] = 77;\n t[49] = 78;\n t[50] = 79;\n t[51] = 80;\n t[52] = 81;\n t[53] = 82;\n t[54] = 83;\n t[55] = 84;\n t[56] = 85;\n t[57] = 86;\n t[58] = 87;\n t[59] = 88;\n t[60] = 89;\n t[61] = 90;\n t[62] = 91;\n t[63] = 92;\n t[64] = 93;\n t[65] = 94;\n t[66] = 95;\n t[67] = 96;\n t[68] = 97;\n t[69] = 98;\n t[70] = 99;\n t[71] = 100;\n t[72] = 101;\n t[73] = 102;\n t[74] = 103;\n t[75] = 104;\n t[76] = 105;\n t[77] = 106;\n t[78] = 107;\n t[79] = 108;\n t[80] = 109;\n t[81] = 110;\n t[82] = 111;\n t[83] = 112;\n t[84] = 113;\n t[85] = 114;\n t[86] = 115;\n t[87] = 116;\n t[88] = 117;\n t[89] = 118;\n t[90] = 119;\n t[91] = 120;\n t[92] = 121;\n t[93] = 122;\n t[94] = 123;\n t[95] = 124;\n t[96] = 125;\n t[97] = 126;\n t[98] = 196;\n t[99] = 197;\n t[100] = 199;\n t[101] = 201;\n t[102] = 209;\n t[103] = 214;\n t[104] = 220;\n t[105] = 225;\n t[106] = 224;\n t[107] = 226;\n t[108] = 228;\n t[109] = 227;\n t[110] = 229;\n t[111] = 231;\n t[112] = 233;\n t[113] = 232;\n t[114] = 234;\n t[115] = 235;\n t[116] = 237;\n t[117] = 236;\n t[118] = 238;\n t[119] = 239;\n t[120] = 241;\n t[121] = 243;\n t[122] = 242;\n t[123] = 244;\n t[124] = 246;\n t[125] = 245;\n t[126] = 250;\n t[127] = 249;\n t[128] = 251;\n t[129] = 252;\n t[130] = 8224;\n t[131] = 176;\n t[132] = 162;\n t[133] = 163;\n t[134] = 167;\n t[135] = 8226;\n t[136] = 182;\n t[137] = 223;\n t[138] = 174;\n t[139] = 169;\n t[140] = 8482;\n t[141] = 180;\n t[142] = 168;\n t[143] = 8800;\n t[144] = 198;\n t[145] = 216;\n t[146] = 8734;\n t[147] = 177;\n t[148] = 8804;\n t[149] = 8805;\n t[150] = 165;\n t[151] = 181;\n t[152] = 8706;\n t[153] = 8721;\n t[154] = 8719;\n t[156] = 8747;\n t[157] = 170;\n t[158] = 186;\n t[159] = 8486;\n t[160] = 230;\n t[161] = 248;\n t[162] = 191;\n t[163] = 161;\n t[164] = 172;\n t[165] = 8730;\n t[166] = 402;\n t[167] = 8776;\n t[168] = 8710;\n t[169] = 171;\n t[170] = 187;\n t[171] = 8230;\n t[200] = 193;\n t[203] = 205;\n t[210] = 218;\n t[223] = 711;\n t[224] = 321;\n t[225] = 322;\n t[226] = 352;\n t[227] = 353;\n t[228] = 381;\n t[229] = 382;\n t[233] = 221;\n t[234] = 253;\n t[252] = 263;\n t[253] = 268;\n t[254] = 269;\n t[258] = 258;\n t[260] = 260;\n t[261] = 261;\n t[265] = 280;\n t[266] = 281;\n t[267] = 282;\n t[268] = 283;\n t[269] = 313;\n t[275] = 323;\n t[276] = 324;\n t[278] = 328;\n t[283] = 344;\n t[284] = 345;\n t[285] = 346;\n t[286] = 347;\n t[292] = 367;\n t[295] = 377;\n t[296] = 378;\n t[298] = 380;\n t[305] = 963;\n t[306] = 964;\n t[307] = 966;\n t[308] = 8215;\n t[309] = 8252;\n t[310] = 8319;\n t[311] = 8359;\n t[312] = 8592;\n t[313] = 8593;\n t[337] = 9552;\n t[493] = 1039;\n t[494] = 1040;\n t[705] = 1524;\n t[706] = 8362;\n t[710] = 64288;\n t[711] = 64298;\n t[759] = 1617;\n t[761] = 1776;\n t[763] = 1778;\n t[775] = 1652;\n t[777] = 1764;\n t[778] = 1780;\n t[779] = 1781;\n t[780] = 1782;\n t[782] = 771;\n t[783] = 64726;\n t[786] = 8363;\n t[788] = 8532;\n t[790] = 768;\n t[791] = 769;\n t[792] = 768;\n t[795] = 803;\n t[797] = 64336;\n t[798] = 64337;\n t[799] = 64342;\n t[800] = 64343;\n t[801] = 64344;\n t[802] = 64345;\n t[803] = 64362;\n t[804] = 64363;\n t[805] = 64364;\n t[2424] = 7821;\n t[2425] = 7822;\n t[2426] = 7823;\n t[2427] = 7824;\n t[2428] = 7825;\n t[2429] = 7826;\n t[2430] = 7827;\n t[2433] = 7682;\n t[2678] = 8045;\n t[2679] = 8046;\n t[2830] = 1552;\n t[2838] = 686;\n t[2840] = 751;\n t[2842] = 753;\n t[2843] = 754;\n t[2844] = 755;\n t[2846] = 757;\n t[2856] = 767;\n t[2857] = 848;\n t[2858] = 849;\n t[2862] = 853;\n t[2863] = 854;\n t[2864] = 855;\n t[2865] = 861;\n t[2866] = 862;\n t[2906] = 7460;\n t[2908] = 7462;\n t[2909] = 7463;\n t[2910] = 7464;\n t[2912] = 7466;\n t[2913] = 7467;\n t[2914] = 7468;\n t[2916] = 7470;\n t[2917] = 7471;\n t[2918] = 7472;\n t[2920] = 7474;\n t[2921] = 7475;\n t[2922] = 7476;\n t[2924] = 7478;\n t[2925] = 7479;\n t[2926] = 7480;\n t[2928] = 7482;\n t[2929] = 7483;\n t[2930] = 7484;\n t[2932] = 7486;\n t[2933] = 7487;\n t[2934] = 7488;\n t[2936] = 7490;\n t[2937] = 7491;\n t[2938] = 7492;\n t[2940] = 7494;\n t[2941] = 7495;\n t[2942] = 7496;\n t[2944] = 7498;\n t[2946] = 7500;\n t[2948] = 7502;\n t[2950] = 7504;\n t[2951] = 7505;\n t[2952] = 7506;\n t[2954] = 7508;\n t[2955] = 7509;\n t[2956] = 7510;\n t[2958] = 7512;\n t[2959] = 7513;\n t[2960] = 7514;\n t[2962] = 7516;\n t[2963] = 7517;\n t[2964] = 7518;\n t[2966] = 7520;\n t[2967] = 7521;\n t[2968] = 7522;\n t[2970] = 7524;\n t[2971] = 7525;\n t[2972] = 7526;\n t[2974] = 7528;\n t[2975] = 7529;\n t[2976] = 7530;\n t[2978] = 1537;\n t[2979] = 1538;\n t[2980] = 1539;\n t[2982] = 1549;\n t[2983] = 1551;\n t[2984] = 1552;\n t[2986] = 1554;\n t[2987] = 1555;\n t[2988] = 1556;\n t[2990] = 1623;\n t[2991] = 1624;\n t[2995] = 1775;\n t[2999] = 1791;\n t[3002] = 64290;\n t[3003] = 64291;\n t[3004] = 64292;\n t[3006] = 64294;\n t[3007] = 64295;\n t[3008] = 64296;\n t[3011] = 1900;\n t[3014] = 8223;\n t[3015] = 8244;\n t[3017] = 7532;\n t[3018] = 7533;\n t[3019] = 7534;\n t[3075] = 7590;\n t[3076] = 7591;\n t[3079] = 7594;\n t[3080] = 7595;\n t[3083] = 7598;\n t[3084] = 7599;\n t[3087] = 7602;\n t[3088] = 7603;\n t[3091] = 7606;\n t[3092] = 7607;\n t[3095] = 7610;\n t[3096] = 7611;\n t[3099] = 7614;\n t[3100] = 7615;\n t[3103] = 7618;\n t[3104] = 7619;\n t[3107] = 8337;\n t[3108] = 8338;\n t[3116] = 1884;\n t[3119] = 1885;\n t[3120] = 1885;\n t[3123] = 1886;\n t[3124] = 1886;\n t[3127] = 1887;\n t[3128] = 1887;\n t[3131] = 1888;\n t[3132] = 1888;\n t[3135] = 1889;\n t[3136] = 1889;\n t[3139] = 1890;\n t[3140] = 1890;\n t[3143] = 1891;\n t[3144] = 1891;\n t[3147] = 1892;\n t[3148] = 1892;\n t[3153] = 580;\n t[3154] = 581;\n t[3157] = 584;\n t[3158] = 585;\n t[3161] = 588;\n t[3162] = 589;\n t[3165] = 891;\n t[3166] = 892;\n t[3169] = 1274;\n t[3170] = 1275;\n t[3173] = 1278;\n t[3174] = 1279;\n t[3181] = 7622;\n t[3182] = 7623;\n t[3282] = 11799;\n t[3316] = 578;\n t[3379] = 42785;\n t[3393] = 1159;\n t[3416] = 8377;\n});\n\n// The glyph map for ArialBlack differs slightly from the glyph map used for\n// other well-known standard fonts. Hence we use this (incomplete) CID to GID\n// mapping to adjust the glyph map for non-embedded ArialBlack fonts.\nconst getSupplementalGlyphMapForArialBlack = getLookupTableFactory(function (\n t\n) {\n t[227] = 322;\n t[264] = 261;\n t[291] = 346;\n});\n\n// The glyph map for Calibri (a Windows font) differs from the glyph map used\n// in the standard fonts. Hence we use this (incomplete) CID to GID mapping to\n// adjust the glyph map for non-embedded Calibri fonts.\nconst getSupplementalGlyphMapForCalibri = getLookupTableFactory(function (t) {\n t[1] = 32;\n t[4] = 65;\n t[6] = 193;\n t[17] = 66;\n t[18] = 67;\n t[21] = 268;\n t[24] = 68;\n t[28] = 69;\n t[30] = 201;\n t[32] = 282;\n t[38] = 70;\n t[39] = 71;\n t[44] = 72;\n t[47] = 73;\n t[49] = 205;\n t[58] = 74;\n t[60] = 75;\n t[62] = 76;\n t[68] = 77;\n t[69] = 78;\n t[75] = 79;\n t[87] = 80;\n t[89] = 81;\n t[90] = 82;\n t[92] = 344;\n t[94] = 83;\n t[97] = 352;\n t[100] = 84;\n t[104] = 85;\n t[115] = 86;\n t[116] = 87;\n t[121] = 88;\n t[122] = 89;\n t[124] = 221;\n t[127] = 90;\n t[129] = 381;\n t[258] = 97;\n t[260] = 225;\n t[268] = 261;\n t[271] = 98;\n t[272] = 99;\n t[273] = 263;\n t[275] = 269;\n t[282] = 100;\n t[286] = 101;\n t[288] = 233;\n t[290] = 283;\n t[295] = 281;\n t[296] = 102;\n t[336] = 103;\n t[346] = 104;\n t[349] = 105;\n t[351] = 237;\n t[361] = 106;\n t[364] = 107;\n t[367] = 108;\n t[371] = 322;\n t[373] = 109;\n t[374] = 110;\n t[381] = 111;\n t[383] = 243;\n t[393] = 112;\n t[395] = 113;\n t[396] = 114;\n t[398] = 345;\n t[400] = 115;\n t[401] = 347;\n t[403] = 353;\n t[410] = 116;\n t[437] = 117;\n t[448] = 118;\n t[449] = 119;\n t[454] = 120;\n t[455] = 121;\n t[457] = 253;\n t[460] = 122;\n t[462] = 382;\n t[463] = 380;\n t[853] = 44;\n t[855] = 58;\n t[856] = 46;\n t[876] = 47;\n t[878] = 45;\n t[882] = 45;\n t[894] = 40;\n t[895] = 41;\n t[896] = 91;\n t[897] = 93;\n t[923] = 64;\n t[1004] = 48;\n t[1005] = 49;\n t[1006] = 50;\n t[1007] = 51;\n t[1008] = 52;\n t[1009] = 53;\n t[1010] = 54;\n t[1011] = 55;\n t[1012] = 56;\n t[1013] = 57;\n t[1081] = 37;\n t[1085] = 43;\n t[1086] = 45;\n});\n\nfunction getStandardFontName(name) {\n const fontName = normalizeFontName(name);\n const stdFontMap = getStdFontMap();\n return stdFontMap[fontName];\n}\n\nexport {\n getFontNameToFileMap,\n getGlyphMapForStandardFonts,\n getNonStdFontMap,\n getSerifFonts,\n getStandardFontName,\n getStdFontMap,\n getSupplementalGlyphMapForArialBlack,\n getSupplementalGlyphMapForCalibri,\n getSymbolsFonts,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { unreachable } from \"../shared/util.js\";\n\nclass ToUnicodeMap {\n constructor(cmap = []) {\n // The elements of this._map can be integers or strings, depending on how\n // `cmap` was created.\n this._map = cmap;\n }\n\n get length() {\n return this._map.length;\n }\n\n forEach(callback) {\n for (const charCode in this._map) {\n callback(charCode, this._map[charCode].charCodeAt(0));\n }\n }\n\n has(i) {\n return this._map[i] !== undefined;\n }\n\n get(i) {\n return this._map[i];\n }\n\n charCodeOf(value) {\n // `Array.prototype.indexOf` is *extremely* inefficient for arrays which\n // are both very sparse and very large (see issue8372.pdf).\n const map = this._map;\n if (map.length <= 0x10000) {\n return map.indexOf(value);\n }\n for (const charCode in map) {\n if (map[charCode] === value) {\n return charCode | 0;\n }\n }\n return -1;\n }\n\n amend(map) {\n for (const charCode in map) {\n this._map[charCode] = map[charCode];\n }\n }\n}\n\nclass IdentityToUnicodeMap {\n constructor(firstChar, lastChar) {\n this.firstChar = firstChar;\n this.lastChar = lastChar;\n }\n\n get length() {\n return this.lastChar + 1 - this.firstChar;\n }\n\n forEach(callback) {\n for (let i = this.firstChar, ii = this.lastChar; i <= ii; i++) {\n callback(i, i);\n }\n }\n\n has(i) {\n return this.firstChar <= i && i <= this.lastChar;\n }\n\n get(i) {\n if (this.firstChar <= i && i <= this.lastChar) {\n return String.fromCharCode(i);\n }\n return undefined;\n }\n\n charCodeOf(v) {\n return Number.isInteger(v) && v >= this.firstChar && v <= this.lastChar\n ? v\n : -1;\n }\n\n amend(map) {\n unreachable(\"Should not call amend()\");\n }\n}\n\nexport { IdentityToUnicodeMap, ToUnicodeMap };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CFFCompiler, CFFParser } from \"./cff_parser.js\";\nimport { SEAC_ANALYSIS_ENABLED, type1FontGlyphMapping } from \"./fonts_utils.js\";\nimport { warn } from \"../shared/util.js\";\n\nclass CFFFont {\n constructor(file, properties) {\n this.properties = properties;\n\n const parser = new CFFParser(file, properties, SEAC_ANALYSIS_ENABLED);\n this.cff = parser.parse();\n this.cff.duplicateFirstGlyph();\n const compiler = new CFFCompiler(this.cff);\n this.seacs = this.cff.seacs;\n try {\n this.data = compiler.compile();\n } catch (e) {\n warn(\"Failed to compile font \" + properties.loadedName);\n // There may have just been an issue with the compiler, set the data\n // anyway and hope the font loaded.\n this.data = file;\n }\n this._createBuiltInEncoding();\n }\n\n get numGlyphs() {\n return this.cff.charStrings.count;\n }\n\n getCharset() {\n return this.cff.charset.charset;\n }\n\n getGlyphMapping() {\n const cff = this.cff;\n const properties = this.properties;\n const charsets = cff.charset.charset;\n let charCodeToGlyphId;\n let glyphId;\n\n if (properties.composite) {\n charCodeToGlyphId = Object.create(null);\n let charCode;\n if (cff.isCIDFont) {\n // If the font is actually a CID font then we should use the charset\n // to map CIDs to GIDs.\n for (glyphId = 0; glyphId < charsets.length; glyphId++) {\n const cid = charsets[glyphId];\n charCode = properties.cMap.charCodeOf(cid);\n charCodeToGlyphId[charCode] = glyphId;\n }\n } else {\n // If it is NOT actually a CID font then CIDs should be mapped\n // directly to GIDs.\n for (glyphId = 0; glyphId < cff.charStrings.count; glyphId++) {\n charCode = properties.cMap.charCodeOf(glyphId);\n charCodeToGlyphId[charCode] = glyphId;\n }\n }\n return charCodeToGlyphId;\n }\n\n let encoding = cff.encoding ? cff.encoding.encoding : null;\n if (properties.isInternalFont) {\n encoding = properties.defaultEncoding;\n }\n charCodeToGlyphId = type1FontGlyphMapping(properties, encoding, charsets);\n return charCodeToGlyphId;\n }\n\n hasGlyphId(id) {\n return this.cff.hasGlyphId(id);\n }\n\n /**\n * @private\n */\n _createBuiltInEncoding() {\n const { charset, encoding } = this.cff;\n if (!charset || !encoding) {\n return;\n }\n const charsets = charset.charset,\n encodings = encoding.encoding;\n const map = [];\n\n for (const charCode in encodings) {\n const glyphId = encodings[charCode];\n if (glyphId >= 0) {\n const glyphName = charsets[glyphId];\n if (glyphName) {\n map[charCode] = glyphName;\n }\n }\n }\n if (map.length > 0) {\n this.properties.builtInEncoding = map;\n }\n }\n}\n\nexport { CFFFont };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n bytesToString,\n FONT_IDENTITY_MATRIX,\n FormatError,\n unreachable,\n warn,\n} from \"../shared/util.js\";\nimport { CFFParser } from \"./cff_parser.js\";\nimport { getGlyphsUnicode } from \"./glyphlist.js\";\nimport { StandardEncoding } from \"./encodings.js\";\nimport { Stream } from \"./stream.js\";\n\n// TODO: use DataView and its methods.\n\nfunction getUint32(data, offset) {\n return (\n ((data[offset] << 24) |\n (data[offset + 1] << 16) |\n (data[offset + 2] << 8) |\n data[offset + 3]) >>>\n 0\n );\n}\n\nfunction getUint16(data, offset) {\n return (data[offset] << 8) | data[offset + 1];\n}\n\nfunction getInt16(data, offset) {\n return ((data[offset] << 24) | (data[offset + 1] << 16)) >> 16;\n}\n\nfunction getInt8(data, offset) {\n return (data[offset] << 24) >> 24;\n}\n\nfunction getFloat214(data, offset) {\n return getInt16(data, offset) / 16384;\n}\n\nfunction getSubroutineBias(subrs) {\n const numSubrs = subrs.length;\n let bias = 32768;\n if (numSubrs < 1240) {\n bias = 107;\n } else if (numSubrs < 33900) {\n bias = 1131;\n }\n return bias;\n}\n\nfunction parseCmap(data, start, end) {\n const offset =\n getUint16(data, start + 2) === 1\n ? getUint32(data, start + 8)\n : getUint32(data, start + 16);\n const format = getUint16(data, start + offset);\n let ranges, p, i;\n if (format === 4) {\n getUint16(data, start + offset + 2); // length\n const segCount = getUint16(data, start + offset + 6) >> 1;\n p = start + offset + 14;\n ranges = [];\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i] = { end: getUint16(data, p) };\n }\n p += 2;\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i].start = getUint16(data, p);\n }\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i].idDelta = getUint16(data, p);\n }\n for (i = 0; i < segCount; i++, p += 2) {\n let idOffset = getUint16(data, p);\n if (idOffset === 0) {\n continue;\n }\n ranges[i].ids = [];\n for (let j = 0, jj = ranges[i].end - ranges[i].start + 1; j < jj; j++) {\n ranges[i].ids[j] = getUint16(data, p + idOffset);\n idOffset += 2;\n }\n }\n return ranges;\n } else if (format === 12) {\n const groups = getUint32(data, start + offset + 12);\n p = start + offset + 16;\n ranges = [];\n for (i = 0; i < groups; i++) {\n start = getUint32(data, p);\n ranges.push({\n start,\n end: getUint32(data, p + 4),\n idDelta: getUint32(data, p + 8) - start,\n });\n p += 12;\n }\n return ranges;\n }\n throw new FormatError(`unsupported cmap: ${format}`);\n}\n\nfunction parseCff(data, start, end, seacAnalysisEnabled) {\n const properties = {};\n const parser = new CFFParser(\n new Stream(data, start, end - start),\n properties,\n seacAnalysisEnabled\n );\n const cff = parser.parse();\n return {\n glyphs: cff.charStrings.objects,\n subrs:\n cff.topDict.privateDict &&\n cff.topDict.privateDict.subrsIndex &&\n cff.topDict.privateDict.subrsIndex.objects,\n gsubrs: cff.globalSubrIndex && cff.globalSubrIndex.objects,\n isCFFCIDFont: cff.isCIDFont,\n fdSelect: cff.fdSelect,\n fdArray: cff.fdArray,\n };\n}\n\nfunction parseGlyfTable(glyf, loca, isGlyphLocationsLong) {\n let itemSize, itemDecode;\n if (isGlyphLocationsLong) {\n itemSize = 4;\n itemDecode = getUint32;\n } else {\n itemSize = 2;\n itemDecode = (data, offset) => 2 * getUint16(data, offset);\n }\n const glyphs = [];\n let startOffset = itemDecode(loca, 0);\n for (let j = itemSize; j < loca.length; j += itemSize) {\n const endOffset = itemDecode(loca, j);\n glyphs.push(glyf.subarray(startOffset, endOffset));\n startOffset = endOffset;\n }\n return glyphs;\n}\n\nfunction lookupCmap(ranges, unicode) {\n const code = unicode.codePointAt(0);\n let gid = 0,\n l = 0,\n r = ranges.length - 1;\n while (l < r) {\n const c = (l + r + 1) >> 1;\n if (code < ranges[c].start) {\n r = c - 1;\n } else {\n l = c;\n }\n }\n if (ranges[l].start <= code && code <= ranges[l].end) {\n gid =\n (ranges[l].idDelta +\n (ranges[l].ids ? ranges[l].ids[code - ranges[l].start] : code)) &\n 0xffff;\n }\n return {\n charCode: code,\n glyphId: gid,\n };\n}\n\nfunction compileGlyf(code, cmds, font) {\n function moveTo(x, y) {\n cmds.push({ cmd: \"moveTo\", args: [x, y] });\n }\n function lineTo(x, y) {\n cmds.push({ cmd: \"lineTo\", args: [x, y] });\n }\n function quadraticCurveTo(xa, ya, x, y) {\n cmds.push({ cmd: \"quadraticCurveTo\", args: [xa, ya, x, y] });\n }\n\n let i = 0;\n const numberOfContours = getInt16(code, i);\n let flags;\n let x = 0,\n y = 0;\n i += 10;\n if (numberOfContours < 0) {\n // composite glyph\n do {\n flags = getUint16(code, i);\n const glyphIndex = getUint16(code, i + 2);\n i += 4;\n let arg1, arg2;\n if (flags & 0x01) {\n if (flags & 0x02) {\n arg1 = getInt16(code, i);\n arg2 = getInt16(code, i + 2);\n } else {\n arg1 = getUint16(code, i);\n arg2 = getUint16(code, i + 2);\n }\n i += 4;\n } else {\n if (flags & 0x02) {\n arg1 = getInt8(code, i++);\n arg2 = getInt8(code, i++);\n } else {\n arg1 = code[i++];\n arg2 = code[i++];\n }\n }\n if (flags & 0x02) {\n x = arg1;\n y = arg2;\n } else {\n x = 0;\n y = 0;\n }\n let scaleX = 1,\n scaleY = 1,\n scale01 = 0,\n scale10 = 0;\n if (flags & 0x08) {\n scaleX = scaleY = getFloat214(code, i);\n i += 2;\n } else if (flags & 0x40) {\n scaleX = getFloat214(code, i);\n scaleY = getFloat214(code, i + 2);\n i += 4;\n } else if (flags & 0x80) {\n scaleX = getFloat214(code, i);\n scale01 = getFloat214(code, i + 2);\n scale10 = getFloat214(code, i + 4);\n scaleY = getFloat214(code, i + 6);\n i += 8;\n }\n const subglyph = font.glyphs[glyphIndex];\n if (subglyph) {\n // TODO: the transform should be applied only if there is a scale:\n // https://github.com/freetype/freetype/blob/edd4fedc5427cf1cf1f4b045e53ff91eb282e9d4/src/truetype/ttgload.c#L1205\n cmds.push(\n { cmd: \"save\" },\n {\n cmd: \"transform\",\n args: [scaleX, scale01, scale10, scaleY, x, y],\n }\n );\n\n if (!(flags & 0x02)) {\n // TODO: we must use arg1 and arg2 to make something similar to:\n // https://github.com/freetype/freetype/blob/edd4fedc5427cf1cf1f4b045e53ff91eb282e9d4/src/truetype/ttgload.c#L1209\n }\n compileGlyf(subglyph, cmds, font);\n cmds.push({ cmd: \"restore\" });\n }\n } while (flags & 0x20);\n } else {\n // simple glyph\n const endPtsOfContours = [];\n let j, jj;\n for (j = 0; j < numberOfContours; j++) {\n endPtsOfContours.push(getUint16(code, i));\n i += 2;\n }\n const instructionLength = getUint16(code, i);\n i += 2 + instructionLength; // skipping the instructions\n const numberOfPoints = endPtsOfContours[endPtsOfContours.length - 1] + 1;\n const points = [];\n while (points.length < numberOfPoints) {\n flags = code[i++];\n let repeat = 1;\n if (flags & 0x08) {\n repeat += code[i++];\n }\n while (repeat-- > 0) {\n points.push({ flags });\n }\n }\n for (j = 0; j < numberOfPoints; j++) {\n switch (points[j].flags & 0x12) {\n case 0x00:\n x += getInt16(code, i);\n i += 2;\n break;\n case 0x02:\n x -= code[i++];\n break;\n case 0x12:\n x += code[i++];\n break;\n }\n points[j].x = x;\n }\n for (j = 0; j < numberOfPoints; j++) {\n switch (points[j].flags & 0x24) {\n case 0x00:\n y += getInt16(code, i);\n i += 2;\n break;\n case 0x04:\n y -= code[i++];\n break;\n case 0x24:\n y += code[i++];\n break;\n }\n points[j].y = y;\n }\n\n let startPoint = 0;\n for (i = 0; i < numberOfContours; i++) {\n const endPoint = endPtsOfContours[i];\n // contours might have implicit points, which is located in the middle\n // between two neighboring off-curve points\n const contour = points.slice(startPoint, endPoint + 1);\n if (contour[0].flags & 1) {\n contour.push(contour[0]); // using start point at the contour end\n } else if (contour[contour.length - 1].flags & 1) {\n // first is off-curve point, trying to use one from the end\n contour.unshift(contour[contour.length - 1]);\n } else {\n // start and end are off-curve points, creating implicit one\n const p = {\n flags: 1,\n x: (contour[0].x + contour[contour.length - 1].x) / 2,\n y: (contour[0].y + contour[contour.length - 1].y) / 2,\n };\n contour.unshift(p);\n contour.push(p);\n }\n moveTo(contour[0].x, contour[0].y);\n for (j = 1, jj = contour.length; j < jj; j++) {\n if (contour[j].flags & 1) {\n lineTo(contour[j].x, contour[j].y);\n } else if (contour[j + 1].flags & 1) {\n quadraticCurveTo(\n contour[j].x,\n contour[j].y,\n contour[j + 1].x,\n contour[j + 1].y\n );\n j++;\n } else {\n quadraticCurveTo(\n contour[j].x,\n contour[j].y,\n (contour[j].x + contour[j + 1].x) / 2,\n (contour[j].y + contour[j + 1].y) / 2\n );\n }\n }\n startPoint = endPoint + 1;\n }\n }\n}\n\nfunction compileCharString(charStringCode, cmds, font, glyphId) {\n function moveTo(x, y) {\n cmds.push({ cmd: \"moveTo\", args: [x, y] });\n }\n function lineTo(x, y) {\n cmds.push({ cmd: \"lineTo\", args: [x, y] });\n }\n function bezierCurveTo(x1, y1, x2, y2, x, y) {\n cmds.push({ cmd: \"bezierCurveTo\", args: [x1, y1, x2, y2, x, y] });\n }\n\n const stack = [];\n let x = 0,\n y = 0;\n let stems = 0;\n\n function parse(code) {\n let i = 0;\n while (i < code.length) {\n let stackClean = false;\n let v = code[i++];\n let xa, xb, ya, yb, y1, y2, y3, n, subrCode;\n switch (v) {\n case 1: // hstem\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 3: // vstem\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 4: // vmoveto\n y += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n case 5: // rlineto\n while (stack.length > 0) {\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n }\n break;\n case 6: // hlineto\n while (stack.length > 0) {\n x += stack.shift();\n lineTo(x, y);\n if (stack.length === 0) {\n break;\n }\n y += stack.shift();\n lineTo(x, y);\n }\n break;\n case 7: // vlineto\n while (stack.length > 0) {\n y += stack.shift();\n lineTo(x, y);\n if (stack.length === 0) {\n break;\n }\n x += stack.shift();\n lineTo(x, y);\n }\n break;\n case 8: // rrcurveto\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 10: // callsubr\n n = stack.pop();\n subrCode = null;\n if (font.isCFFCIDFont) {\n const fdIndex = font.fdSelect.getFDIndex(glyphId);\n if (fdIndex >= 0 && fdIndex < font.fdArray.length) {\n const fontDict = font.fdArray[fdIndex];\n let subrs;\n if (fontDict.privateDict && fontDict.privateDict.subrsIndex) {\n subrs = fontDict.privateDict.subrsIndex.objects;\n }\n if (subrs) {\n // Add subroutine bias.\n n += getSubroutineBias(subrs);\n subrCode = subrs[n];\n }\n } else {\n warn(\"Invalid fd index for glyph index.\");\n }\n } else {\n subrCode = font.subrs[n + font.subrsBias];\n }\n if (subrCode) {\n parse(subrCode);\n }\n break;\n case 11: // return\n return;\n case 12:\n v = code[i++];\n switch (v) {\n case 34: // flex\n xa = x + stack.shift();\n xb = xa + stack.shift();\n y1 = y + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y, xb, y1, x, y1);\n xa = x + stack.shift();\n xb = xa + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y1, xb, y, x, y);\n break;\n case 35: // flex\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n stack.pop(); // fd\n break;\n case 36: // hflex1\n xa = x + stack.shift();\n y1 = y + stack.shift();\n xb = xa + stack.shift();\n y2 = y1 + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y1, xb, y2, x, y2);\n xa = x + stack.shift();\n xb = xa + stack.shift();\n y3 = y2 + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y2, xb, y3, x, y);\n break;\n case 37: // flex1\n const x0 = x,\n y0 = y;\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb;\n y = yb;\n if (Math.abs(x - x0) > Math.abs(y - y0)) {\n x += stack.shift();\n } else {\n y += stack.shift();\n }\n bezierCurveTo(xa, ya, xb, yb, x, y);\n break;\n default:\n throw new FormatError(`unknown operator: 12 ${v}`);\n }\n break;\n case 14: // endchar\n if (stack.length >= 4) {\n const achar = stack.pop();\n const bchar = stack.pop();\n y = stack.pop();\n x = stack.pop();\n cmds.push({ cmd: \"save\" }, { cmd: \"translate\", args: [x, y] });\n let cmap = lookupCmap(\n font.cmap,\n String.fromCharCode(font.glyphNameMap[StandardEncoding[achar]])\n );\n compileCharString(\n font.glyphs[cmap.glyphId],\n cmds,\n font,\n cmap.glyphId\n );\n cmds.push({ cmd: \"restore\" });\n\n cmap = lookupCmap(\n font.cmap,\n String.fromCharCode(font.glyphNameMap[StandardEncoding[bchar]])\n );\n compileCharString(\n font.glyphs[cmap.glyphId],\n cmds,\n font,\n cmap.glyphId\n );\n }\n return;\n case 18: // hstemhm\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 19: // hintmask\n stems += stack.length >> 1;\n i += (stems + 7) >> 3;\n stackClean = true;\n break;\n case 20: // cntrmask\n stems += stack.length >> 1;\n i += (stems + 7) >> 3;\n stackClean = true;\n break;\n case 21: // rmoveto\n y += stack.pop();\n x += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n case 22: // hmoveto\n x += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n case 23: // vstemhm\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 24: // rcurveline\n while (stack.length > 2) {\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n break;\n case 25: // rlinecurve\n while (stack.length > 6) {\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n }\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n break;\n case 26: // vvcurveto\n if (stack.length % 2) {\n x += stack.shift();\n }\n while (stack.length > 0) {\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb;\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 27: // hhcurveto\n if (stack.length % 2) {\n y += stack.shift();\n }\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb;\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 28:\n stack.push(((code[i] << 24) | (code[i + 1] << 16)) >> 16);\n i += 2;\n break;\n case 29: // callgsubr\n n = stack.pop() + font.gsubrsBias;\n subrCode = font.gsubrs[n];\n if (subrCode) {\n parse(subrCode);\n }\n break;\n case 30: // vhcurveto\n while (stack.length > 0) {\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n if (stack.length === 0) {\n break;\n }\n\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n y = yb + stack.shift();\n x = xb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 31: // hvcurveto\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n y = yb + stack.shift();\n x = xb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n if (stack.length === 0) {\n break;\n }\n\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n default:\n if (v < 32) {\n throw new FormatError(`unknown operator: ${v}`);\n }\n if (v < 247) {\n stack.push(v - 139);\n } else if (v < 251) {\n stack.push((v - 247) * 256 + code[i++] + 108);\n } else if (v < 255) {\n stack.push(-(v - 251) * 256 - code[i++] - 108);\n } else {\n stack.push(\n ((code[i] << 24) |\n (code[i + 1] << 16) |\n (code[i + 2] << 8) |\n code[i + 3]) /\n 65536\n );\n i += 4;\n }\n break;\n }\n if (stackClean) {\n stack.length = 0;\n }\n }\n }\n parse(charStringCode);\n}\n\nconst NOOP = [];\n\nclass CompiledFont {\n constructor(fontMatrix) {\n if (this.constructor === CompiledFont) {\n unreachable(\"Cannot initialize CompiledFont.\");\n }\n this.fontMatrix = fontMatrix;\n\n this.compiledGlyphs = Object.create(null);\n this.compiledCharCodeToGlyphId = Object.create(null);\n }\n\n getPathJs(unicode) {\n const { charCode, glyphId } = lookupCmap(this.cmap, unicode);\n let fn = this.compiledGlyphs[glyphId];\n if (!fn) {\n try {\n fn = this.compileGlyph(this.glyphs[glyphId], glyphId);\n this.compiledGlyphs[glyphId] = fn;\n } catch (ex) {\n // Avoid attempting to re-compile a corrupt glyph.\n this.compiledGlyphs[glyphId] = NOOP;\n\n if (this.compiledCharCodeToGlyphId[charCode] === undefined) {\n this.compiledCharCodeToGlyphId[charCode] = glyphId;\n }\n throw ex;\n }\n }\n if (this.compiledCharCodeToGlyphId[charCode] === undefined) {\n this.compiledCharCodeToGlyphId[charCode] = glyphId;\n }\n return fn;\n }\n\n compileGlyph(code, glyphId) {\n if (!code || code.length === 0 || code[0] === 14) {\n return NOOP;\n }\n\n let fontMatrix = this.fontMatrix;\n if (this.isCFFCIDFont) {\n // Top DICT's FontMatrix can be ignored because CFFCompiler always\n // removes it and copies to FDArray DICTs.\n const fdIndex = this.fdSelect.getFDIndex(glyphId);\n if (fdIndex >= 0 && fdIndex < this.fdArray.length) {\n const fontDict = this.fdArray[fdIndex];\n fontMatrix = fontDict.getByName(\"FontMatrix\") || FONT_IDENTITY_MATRIX;\n } else {\n warn(\"Invalid fd index for glyph index.\");\n }\n }\n\n const cmds = [\n { cmd: \"save\" },\n { cmd: \"transform\", args: fontMatrix.slice() },\n { cmd: \"scale\", args: [\"size\", \"-size\"] },\n ];\n this.compileGlyphImpl(code, cmds, glyphId);\n\n cmds.push({ cmd: \"restore\" });\n\n return cmds;\n }\n\n compileGlyphImpl() {\n unreachable(\"Children classes should implement this.\");\n }\n\n hasBuiltPath(unicode) {\n const { charCode, glyphId } = lookupCmap(this.cmap, unicode);\n return (\n this.compiledGlyphs[glyphId] !== undefined &&\n this.compiledCharCodeToGlyphId[charCode] !== undefined\n );\n }\n}\n\nclass TrueTypeCompiled extends CompiledFont {\n constructor(glyphs, cmap, fontMatrix) {\n super(fontMatrix || [0.000488, 0, 0, 0.000488, 0, 0]);\n\n this.glyphs = glyphs;\n this.cmap = cmap;\n }\n\n compileGlyphImpl(code, cmds) {\n compileGlyf(code, cmds, this);\n }\n}\n\nclass Type2Compiled extends CompiledFont {\n constructor(cffInfo, cmap, fontMatrix, glyphNameMap) {\n super(fontMatrix || [0.001, 0, 0, 0.001, 0, 0]);\n\n this.glyphs = cffInfo.glyphs;\n this.gsubrs = cffInfo.gsubrs || [];\n this.subrs = cffInfo.subrs || [];\n this.cmap = cmap;\n this.glyphNameMap = glyphNameMap || getGlyphsUnicode();\n\n this.gsubrsBias = getSubroutineBias(this.gsubrs);\n this.subrsBias = getSubroutineBias(this.subrs);\n\n this.isCFFCIDFont = cffInfo.isCFFCIDFont;\n this.fdSelect = cffInfo.fdSelect;\n this.fdArray = cffInfo.fdArray;\n }\n\n compileGlyphImpl(code, cmds, glyphId) {\n compileCharString(code, cmds, this, glyphId);\n }\n}\n\nclass FontRendererFactory {\n static create(font, seacAnalysisEnabled) {\n const data = new Uint8Array(font.data);\n let cmap, glyf, loca, cff, indexToLocFormat, unitsPerEm;\n const numTables = getUint16(data, 4);\n for (let i = 0, p = 12; i < numTables; i++, p += 16) {\n const tag = bytesToString(data.subarray(p, p + 4));\n const offset = getUint32(data, p + 8);\n const length = getUint32(data, p + 12);\n switch (tag) {\n case \"cmap\":\n cmap = parseCmap(data, offset, offset + length);\n break;\n case \"glyf\":\n glyf = data.subarray(offset, offset + length);\n break;\n case \"loca\":\n loca = data.subarray(offset, offset + length);\n break;\n case \"head\":\n unitsPerEm = getUint16(data, offset + 18);\n indexToLocFormat = getUint16(data, offset + 50);\n break;\n case \"CFF \":\n cff = parseCff(data, offset, offset + length, seacAnalysisEnabled);\n break;\n }\n }\n\n if (glyf) {\n const fontMatrix = !unitsPerEm\n ? font.fontMatrix\n : [1 / unitsPerEm, 0, 0, 1 / unitsPerEm, 0, 0];\n return new TrueTypeCompiled(\n parseGlyfTable(glyf, loca, indexToLocFormat),\n cmap,\n fontMatrix\n );\n }\n return new Type2Compiled(cff, cmap, font.fontMatrix, font.glyphNameMap);\n }\n}\n\nexport { FontRendererFactory };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getLookupTableFactory } from \"./core_utils.js\";\n\n// The Metrics object contains glyph widths (in glyph space units).\n// As per PDF spec, for most fonts (Type 3 being an exception) a glyph\n// space unit corresponds to 1/1000th of text space unit.\nconst getMetrics = getLookupTableFactory(function (t) {\n t.Courier = 600;\n t[\"Courier-Bold\"] = 600;\n t[\"Courier-BoldOblique\"] = 600;\n t[\"Courier-Oblique\"] = 600;\n // eslint-disable-next-line no-shadow\n t.Helvetica = getLookupTableFactory(function (t) {\n t.space = 278;\n t.exclam = 278;\n t.quotedbl = 355;\n t.numbersign = 556;\n t.dollar = 556;\n t.percent = 889;\n t.ampersand = 667;\n t.quoteright = 222;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 389;\n t.plus = 584;\n t.comma = 278;\n t.hyphen = 333;\n t.period = 278;\n t.slash = 278;\n t.zero = 556;\n t.one = 556;\n t.two = 556;\n t.three = 556;\n t.four = 556;\n t.five = 556;\n t.six = 556;\n t.seven = 556;\n t.eight = 556;\n t.nine = 556;\n t.colon = 278;\n t.semicolon = 278;\n t.less = 584;\n t.equal = 584;\n t.greater = 584;\n t.question = 556;\n t.at = 1015;\n t.A = 667;\n t.B = 667;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 722;\n t.I = 278;\n t.J = 500;\n t.K = 667;\n t.L = 556;\n t.M = 833;\n t.N = 722;\n t.O = 778;\n t.P = 667;\n t.Q = 778;\n t.R = 722;\n t.S = 667;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 944;\n t.X = 667;\n t.Y = 667;\n t.Z = 611;\n t.bracketleft = 278;\n t.backslash = 278;\n t.bracketright = 278;\n t.asciicircum = 469;\n t.underscore = 556;\n t.quoteleft = 222;\n t.a = 556;\n t.b = 556;\n t.c = 500;\n t.d = 556;\n t.e = 556;\n t.f = 278;\n t.g = 556;\n t.h = 556;\n t.i = 222;\n t.j = 222;\n t.k = 500;\n t.l = 222;\n t.m = 833;\n t.n = 556;\n t.o = 556;\n t.p = 556;\n t.q = 556;\n t.r = 333;\n t.s = 500;\n t.t = 278;\n t.u = 556;\n t.v = 500;\n t.w = 722;\n t.x = 500;\n t.y = 500;\n t.z = 500;\n t.braceleft = 334;\n t.bar = 260;\n t.braceright = 334;\n t.asciitilde = 584;\n t.exclamdown = 333;\n t.cent = 556;\n t.sterling = 556;\n t.fraction = 167;\n t.yen = 556;\n t.florin = 556;\n t.section = 556;\n t.currency = 556;\n t.quotesingle = 191;\n t.quotedblleft = 333;\n t.guillemotleft = 556;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 500;\n t.fl = 500;\n t.endash = 556;\n t.dagger = 556;\n t.daggerdbl = 556;\n t.periodcentered = 278;\n t.paragraph = 537;\n t.bullet = 350;\n t.quotesinglbase = 222;\n t.quotedblbase = 333;\n t.quotedblright = 333;\n t.guillemotright = 556;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 611;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 370;\n t.Lslash = 556;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 365;\n t.ae = 889;\n t.dotlessi = 278;\n t.lslash = 222;\n t.oslash = 611;\n t.oe = 944;\n t.germandbls = 611;\n t.Idieresis = 278;\n t.eacute = 556;\n t.abreve = 556;\n t.uhungarumlaut = 556;\n t.ecaron = 556;\n t.Ydieresis = 667;\n t.divide = 584;\n t.Yacute = 667;\n t.Acircumflex = 667;\n t.aacute = 556;\n t.Ucircumflex = 722;\n t.yacute = 500;\n t.scommaaccent = 500;\n t.ecircumflex = 556;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 556;\n t.Uacute = 722;\n t.uogonek = 556;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 737;\n t.Emacron = 667;\n t.ccaron = 500;\n t.aring = 556;\n t.Ncommaaccent = 722;\n t.lacute = 222;\n t.agrave = 556;\n t.Tcommaaccent = 611;\n t.Cacute = 722;\n t.atilde = 556;\n t.Edotaccent = 667;\n t.scaron = 500;\n t.scedilla = 500;\n t.iacute = 278;\n t.lozenge = 471;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 556;\n t.acircumflex = 556;\n t.Amacron = 667;\n t.rcaron = 333;\n t.ccedilla = 500;\n t.Zdotaccent = 611;\n t.Thorn = 667;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 667;\n t.dcaron = 643;\n t.Umacron = 722;\n t.uring = 556;\n t.threesuperior = 333;\n t.Ograve = 778;\n t.Agrave = 667;\n t.Abreve = 667;\n t.multiply = 584;\n t.uacute = 556;\n t.Tcaron = 611;\n t.partialdiff = 476;\n t.ydieresis = 500;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 556;\n t.edieresis = 556;\n t.cacute = 500;\n t.nacute = 556;\n t.umacron = 556;\n t.Ncaron = 722;\n t.Iacute = 278;\n t.plusminus = 584;\n t.brokenbar = 260;\n t.registered = 737;\n t.Gbreve = 778;\n t.Idotaccent = 278;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 333;\n t.omacron = 556;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 222;\n t.tcaron = 317;\n t.eogonek = 556;\n t.Uogonek = 722;\n t.Aacute = 667;\n t.Adieresis = 667;\n t.egrave = 556;\n t.zacute = 500;\n t.iogonek = 222;\n t.Oacute = 778;\n t.oacute = 556;\n t.amacron = 556;\n t.sacute = 500;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 556;\n t.twosuperior = 333;\n t.Odieresis = 778;\n t.mu = 556;\n t.igrave = 278;\n t.ohungarumlaut = 556;\n t.Eogonek = 667;\n t.dcroat = 556;\n t.threequarters = 834;\n t.Scedilla = 667;\n t.lcaron = 299;\n t.Kcommaaccent = 667;\n t.Lacute = 556;\n t.trademark = 1000;\n t.edotaccent = 556;\n t.Igrave = 278;\n t.Imacron = 278;\n t.Lcaron = 556;\n t.onehalf = 834;\n t.lessequal = 549;\n t.ocircumflex = 556;\n t.ntilde = 556;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 556;\n t.gbreve = 556;\n t.onequarter = 834;\n t.Scaron = 667;\n t.Scommaaccent = 667;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 556;\n t.Ccaron = 722;\n t.ugrave = 556;\n t.radical = 453;\n t.Dcaron = 722;\n t.rcommaaccent = 333;\n t.Ntilde = 722;\n t.otilde = 556;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 556;\n t.Atilde = 667;\n t.Aogonek = 667;\n t.Aring = 667;\n t.Otilde = 778;\n t.zdotaccent = 500;\n t.Ecaron = 667;\n t.Iogonek = 278;\n t.kcommaaccent = 500;\n t.minus = 584;\n t.Icircumflex = 278;\n t.ncaron = 556;\n t.tcommaaccent = 278;\n t.logicalnot = 584;\n t.odieresis = 556;\n t.udieresis = 556;\n t.notequal = 549;\n t.gcommaaccent = 556;\n t.eth = 556;\n t.zcaron = 500;\n t.ncommaaccent = 556;\n t.onesuperior = 333;\n t.imacron = 278;\n t.Euro = 556;\n });\n // eslint-disable-next-line no-shadow\n t[\"Helvetica-Bold\"] = getLookupTableFactory(function (t) {\n t.space = 278;\n t.exclam = 333;\n t.quotedbl = 474;\n t.numbersign = 556;\n t.dollar = 556;\n t.percent = 889;\n t.ampersand = 722;\n t.quoteright = 278;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 389;\n t.plus = 584;\n t.comma = 278;\n t.hyphen = 333;\n t.period = 278;\n t.slash = 278;\n t.zero = 556;\n t.one = 556;\n t.two = 556;\n t.three = 556;\n t.four = 556;\n t.five = 556;\n t.six = 556;\n t.seven = 556;\n t.eight = 556;\n t.nine = 556;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 584;\n t.equal = 584;\n t.greater = 584;\n t.question = 611;\n t.at = 975;\n t.A = 722;\n t.B = 722;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 722;\n t.I = 278;\n t.J = 556;\n t.K = 722;\n t.L = 611;\n t.M = 833;\n t.N = 722;\n t.O = 778;\n t.P = 667;\n t.Q = 778;\n t.R = 722;\n t.S = 667;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 944;\n t.X = 667;\n t.Y = 667;\n t.Z = 611;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 584;\n t.underscore = 556;\n t.quoteleft = 278;\n t.a = 556;\n t.b = 611;\n t.c = 556;\n t.d = 611;\n t.e = 556;\n t.f = 333;\n t.g = 611;\n t.h = 611;\n t.i = 278;\n t.j = 278;\n t.k = 556;\n t.l = 278;\n t.m = 889;\n t.n = 611;\n t.o = 611;\n t.p = 611;\n t.q = 611;\n t.r = 389;\n t.s = 556;\n t.t = 333;\n t.u = 611;\n t.v = 556;\n t.w = 778;\n t.x = 556;\n t.y = 556;\n t.z = 500;\n t.braceleft = 389;\n t.bar = 280;\n t.braceright = 389;\n t.asciitilde = 584;\n t.exclamdown = 333;\n t.cent = 556;\n t.sterling = 556;\n t.fraction = 167;\n t.yen = 556;\n t.florin = 556;\n t.section = 556;\n t.currency = 556;\n t.quotesingle = 238;\n t.quotedblleft = 500;\n t.guillemotleft = 556;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 611;\n t.fl = 611;\n t.endash = 556;\n t.dagger = 556;\n t.daggerdbl = 556;\n t.periodcentered = 278;\n t.paragraph = 556;\n t.bullet = 350;\n t.quotesinglbase = 278;\n t.quotedblbase = 500;\n t.quotedblright = 500;\n t.guillemotright = 556;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 611;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 370;\n t.Lslash = 611;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 365;\n t.ae = 889;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 611;\n t.oe = 944;\n t.germandbls = 611;\n t.Idieresis = 278;\n t.eacute = 556;\n t.abreve = 556;\n t.uhungarumlaut = 611;\n t.ecaron = 556;\n t.Ydieresis = 667;\n t.divide = 584;\n t.Yacute = 667;\n t.Acircumflex = 722;\n t.aacute = 556;\n t.Ucircumflex = 722;\n t.yacute = 556;\n t.scommaaccent = 556;\n t.ecircumflex = 556;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 556;\n t.Uacute = 722;\n t.uogonek = 611;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 737;\n t.Emacron = 667;\n t.ccaron = 556;\n t.aring = 556;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 556;\n t.Tcommaaccent = 611;\n t.Cacute = 722;\n t.atilde = 556;\n t.Edotaccent = 667;\n t.scaron = 556;\n t.scedilla = 556;\n t.iacute = 278;\n t.lozenge = 494;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 611;\n t.acircumflex = 556;\n t.Amacron = 722;\n t.rcaron = 389;\n t.ccedilla = 556;\n t.Zdotaccent = 611;\n t.Thorn = 667;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 667;\n t.dcaron = 743;\n t.Umacron = 722;\n t.uring = 611;\n t.threesuperior = 333;\n t.Ograve = 778;\n t.Agrave = 722;\n t.Abreve = 722;\n t.multiply = 584;\n t.uacute = 611;\n t.Tcaron = 611;\n t.partialdiff = 494;\n t.ydieresis = 556;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 556;\n t.edieresis = 556;\n t.cacute = 556;\n t.nacute = 611;\n t.umacron = 611;\n t.Ncaron = 722;\n t.Iacute = 278;\n t.plusminus = 584;\n t.brokenbar = 280;\n t.registered = 737;\n t.Gbreve = 778;\n t.Idotaccent = 278;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 389;\n t.omacron = 611;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 278;\n t.tcaron = 389;\n t.eogonek = 556;\n t.Uogonek = 722;\n t.Aacute = 722;\n t.Adieresis = 722;\n t.egrave = 556;\n t.zacute = 500;\n t.iogonek = 278;\n t.Oacute = 778;\n t.oacute = 611;\n t.amacron = 556;\n t.sacute = 556;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 611;\n t.twosuperior = 333;\n t.Odieresis = 778;\n t.mu = 611;\n t.igrave = 278;\n t.ohungarumlaut = 611;\n t.Eogonek = 667;\n t.dcroat = 611;\n t.threequarters = 834;\n t.Scedilla = 667;\n t.lcaron = 400;\n t.Kcommaaccent = 722;\n t.Lacute = 611;\n t.trademark = 1000;\n t.edotaccent = 556;\n t.Igrave = 278;\n t.Imacron = 278;\n t.Lcaron = 611;\n t.onehalf = 834;\n t.lessequal = 549;\n t.ocircumflex = 611;\n t.ntilde = 611;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 556;\n t.gbreve = 611;\n t.onequarter = 834;\n t.Scaron = 667;\n t.Scommaaccent = 667;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 611;\n t.Ccaron = 722;\n t.ugrave = 611;\n t.radical = 549;\n t.Dcaron = 722;\n t.rcommaaccent = 389;\n t.Ntilde = 722;\n t.otilde = 611;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 611;\n t.Atilde = 722;\n t.Aogonek = 722;\n t.Aring = 722;\n t.Otilde = 778;\n t.zdotaccent = 500;\n t.Ecaron = 667;\n t.Iogonek = 278;\n t.kcommaaccent = 556;\n t.minus = 584;\n t.Icircumflex = 278;\n t.ncaron = 611;\n t.tcommaaccent = 333;\n t.logicalnot = 584;\n t.odieresis = 611;\n t.udieresis = 611;\n t.notequal = 549;\n t.gcommaaccent = 611;\n t.eth = 611;\n t.zcaron = 500;\n t.ncommaaccent = 611;\n t.onesuperior = 333;\n t.imacron = 278;\n t.Euro = 556;\n });\n // eslint-disable-next-line no-shadow\n t[\"Helvetica-BoldOblique\"] = getLookupTableFactory(function (t) {\n t.space = 278;\n t.exclam = 333;\n t.quotedbl = 474;\n t.numbersign = 556;\n t.dollar = 556;\n t.percent = 889;\n t.ampersand = 722;\n t.quoteright = 278;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 389;\n t.plus = 584;\n t.comma = 278;\n t.hyphen = 333;\n t.period = 278;\n t.slash = 278;\n t.zero = 556;\n t.one = 556;\n t.two = 556;\n t.three = 556;\n t.four = 556;\n t.five = 556;\n t.six = 556;\n t.seven = 556;\n t.eight = 556;\n t.nine = 556;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 584;\n t.equal = 584;\n t.greater = 584;\n t.question = 611;\n t.at = 975;\n t.A = 722;\n t.B = 722;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 722;\n t.I = 278;\n t.J = 556;\n t.K = 722;\n t.L = 611;\n t.M = 833;\n t.N = 722;\n t.O = 778;\n t.P = 667;\n t.Q = 778;\n t.R = 722;\n t.S = 667;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 944;\n t.X = 667;\n t.Y = 667;\n t.Z = 611;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 584;\n t.underscore = 556;\n t.quoteleft = 278;\n t.a = 556;\n t.b = 611;\n t.c = 556;\n t.d = 611;\n t.e = 556;\n t.f = 333;\n t.g = 611;\n t.h = 611;\n t.i = 278;\n t.j = 278;\n t.k = 556;\n t.l = 278;\n t.m = 889;\n t.n = 611;\n t.o = 611;\n t.p = 611;\n t.q = 611;\n t.r = 389;\n t.s = 556;\n t.t = 333;\n t.u = 611;\n t.v = 556;\n t.w = 778;\n t.x = 556;\n t.y = 556;\n t.z = 500;\n t.braceleft = 389;\n t.bar = 280;\n t.braceright = 389;\n t.asciitilde = 584;\n t.exclamdown = 333;\n t.cent = 556;\n t.sterling = 556;\n t.fraction = 167;\n t.yen = 556;\n t.florin = 556;\n t.section = 556;\n t.currency = 556;\n t.quotesingle = 238;\n t.quotedblleft = 500;\n t.guillemotleft = 556;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 611;\n t.fl = 611;\n t.endash = 556;\n t.dagger = 556;\n t.daggerdbl = 556;\n t.periodcentered = 278;\n t.paragraph = 556;\n t.bullet = 350;\n t.quotesinglbase = 278;\n t.quotedblbase = 500;\n t.quotedblright = 500;\n t.guillemotright = 556;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 611;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 370;\n t.Lslash = 611;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 365;\n t.ae = 889;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 611;\n t.oe = 944;\n t.germandbls = 611;\n t.Idieresis = 278;\n t.eacute = 556;\n t.abreve = 556;\n t.uhungarumlaut = 611;\n t.ecaron = 556;\n t.Ydieresis = 667;\n t.divide = 584;\n t.Yacute = 667;\n t.Acircumflex = 722;\n t.aacute = 556;\n t.Ucircumflex = 722;\n t.yacute = 556;\n t.scommaaccent = 556;\n t.ecircumflex = 556;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 556;\n t.Uacute = 722;\n t.uogonek = 611;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 737;\n t.Emacron = 667;\n t.ccaron = 556;\n t.aring = 556;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 556;\n t.Tcommaaccent = 611;\n t.Cacute = 722;\n t.atilde = 556;\n t.Edotaccent = 667;\n t.scaron = 556;\n t.scedilla = 556;\n t.iacute = 278;\n t.lozenge = 494;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 611;\n t.acircumflex = 556;\n t.Amacron = 722;\n t.rcaron = 389;\n t.ccedilla = 556;\n t.Zdotaccent = 611;\n t.Thorn = 667;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 667;\n t.dcaron = 743;\n t.Umacron = 722;\n t.uring = 611;\n t.threesuperior = 333;\n t.Ograve = 778;\n t.Agrave = 722;\n t.Abreve = 722;\n t.multiply = 584;\n t.uacute = 611;\n t.Tcaron = 611;\n t.partialdiff = 494;\n t.ydieresis = 556;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 556;\n t.edieresis = 556;\n t.cacute = 556;\n t.nacute = 611;\n t.umacron = 611;\n t.Ncaron = 722;\n t.Iacute = 278;\n t.plusminus = 584;\n t.brokenbar = 280;\n t.registered = 737;\n t.Gbreve = 778;\n t.Idotaccent = 278;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 389;\n t.omacron = 611;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 278;\n t.tcaron = 389;\n t.eogonek = 556;\n t.Uogonek = 722;\n t.Aacute = 722;\n t.Adieresis = 722;\n t.egrave = 556;\n t.zacute = 500;\n t.iogonek = 278;\n t.Oacute = 778;\n t.oacute = 611;\n t.amacron = 556;\n t.sacute = 556;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 611;\n t.twosuperior = 333;\n t.Odieresis = 778;\n t.mu = 611;\n t.igrave = 278;\n t.ohungarumlaut = 611;\n t.Eogonek = 667;\n t.dcroat = 611;\n t.threequarters = 834;\n t.Scedilla = 667;\n t.lcaron = 400;\n t.Kcommaaccent = 722;\n t.Lacute = 611;\n t.trademark = 1000;\n t.edotaccent = 556;\n t.Igrave = 278;\n t.Imacron = 278;\n t.Lcaron = 611;\n t.onehalf = 834;\n t.lessequal = 549;\n t.ocircumflex = 611;\n t.ntilde = 611;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 556;\n t.gbreve = 611;\n t.onequarter = 834;\n t.Scaron = 667;\n t.Scommaaccent = 667;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 611;\n t.Ccaron = 722;\n t.ugrave = 611;\n t.radical = 549;\n t.Dcaron = 722;\n t.rcommaaccent = 389;\n t.Ntilde = 722;\n t.otilde = 611;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 611;\n t.Atilde = 722;\n t.Aogonek = 722;\n t.Aring = 722;\n t.Otilde = 778;\n t.zdotaccent = 500;\n t.Ecaron = 667;\n t.Iogonek = 278;\n t.kcommaaccent = 556;\n t.minus = 584;\n t.Icircumflex = 278;\n t.ncaron = 611;\n t.tcommaaccent = 333;\n t.logicalnot = 584;\n t.odieresis = 611;\n t.udieresis = 611;\n t.notequal = 549;\n t.gcommaaccent = 611;\n t.eth = 611;\n t.zcaron = 500;\n t.ncommaaccent = 611;\n t.onesuperior = 333;\n t.imacron = 278;\n t.Euro = 556;\n });\n // eslint-disable-next-line no-shadow\n t[\"Helvetica-Oblique\"] = getLookupTableFactory(function (t) {\n t.space = 278;\n t.exclam = 278;\n t.quotedbl = 355;\n t.numbersign = 556;\n t.dollar = 556;\n t.percent = 889;\n t.ampersand = 667;\n t.quoteright = 222;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 389;\n t.plus = 584;\n t.comma = 278;\n t.hyphen = 333;\n t.period = 278;\n t.slash = 278;\n t.zero = 556;\n t.one = 556;\n t.two = 556;\n t.three = 556;\n t.four = 556;\n t.five = 556;\n t.six = 556;\n t.seven = 556;\n t.eight = 556;\n t.nine = 556;\n t.colon = 278;\n t.semicolon = 278;\n t.less = 584;\n t.equal = 584;\n t.greater = 584;\n t.question = 556;\n t.at = 1015;\n t.A = 667;\n t.B = 667;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 722;\n t.I = 278;\n t.J = 500;\n t.K = 667;\n t.L = 556;\n t.M = 833;\n t.N = 722;\n t.O = 778;\n t.P = 667;\n t.Q = 778;\n t.R = 722;\n t.S = 667;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 944;\n t.X = 667;\n t.Y = 667;\n t.Z = 611;\n t.bracketleft = 278;\n t.backslash = 278;\n t.bracketright = 278;\n t.asciicircum = 469;\n t.underscore = 556;\n t.quoteleft = 222;\n t.a = 556;\n t.b = 556;\n t.c = 500;\n t.d = 556;\n t.e = 556;\n t.f = 278;\n t.g = 556;\n t.h = 556;\n t.i = 222;\n t.j = 222;\n t.k = 500;\n t.l = 222;\n t.m = 833;\n t.n = 556;\n t.o = 556;\n t.p = 556;\n t.q = 556;\n t.r = 333;\n t.s = 500;\n t.t = 278;\n t.u = 556;\n t.v = 500;\n t.w = 722;\n t.x = 500;\n t.y = 500;\n t.z = 500;\n t.braceleft = 334;\n t.bar = 260;\n t.braceright = 334;\n t.asciitilde = 584;\n t.exclamdown = 333;\n t.cent = 556;\n t.sterling = 556;\n t.fraction = 167;\n t.yen = 556;\n t.florin = 556;\n t.section = 556;\n t.currency = 556;\n t.quotesingle = 191;\n t.quotedblleft = 333;\n t.guillemotleft = 556;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 500;\n t.fl = 500;\n t.endash = 556;\n t.dagger = 556;\n t.daggerdbl = 556;\n t.periodcentered = 278;\n t.paragraph = 537;\n t.bullet = 350;\n t.quotesinglbase = 222;\n t.quotedblbase = 333;\n t.quotedblright = 333;\n t.guillemotright = 556;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 611;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 370;\n t.Lslash = 556;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 365;\n t.ae = 889;\n t.dotlessi = 278;\n t.lslash = 222;\n t.oslash = 611;\n t.oe = 944;\n t.germandbls = 611;\n t.Idieresis = 278;\n t.eacute = 556;\n t.abreve = 556;\n t.uhungarumlaut = 556;\n t.ecaron = 556;\n t.Ydieresis = 667;\n t.divide = 584;\n t.Yacute = 667;\n t.Acircumflex = 667;\n t.aacute = 556;\n t.Ucircumflex = 722;\n t.yacute = 500;\n t.scommaaccent = 500;\n t.ecircumflex = 556;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 556;\n t.Uacute = 722;\n t.uogonek = 556;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 737;\n t.Emacron = 667;\n t.ccaron = 500;\n t.aring = 556;\n t.Ncommaaccent = 722;\n t.lacute = 222;\n t.agrave = 556;\n t.Tcommaaccent = 611;\n t.Cacute = 722;\n t.atilde = 556;\n t.Edotaccent = 667;\n t.scaron = 500;\n t.scedilla = 500;\n t.iacute = 278;\n t.lozenge = 471;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 556;\n t.acircumflex = 556;\n t.Amacron = 667;\n t.rcaron = 333;\n t.ccedilla = 500;\n t.Zdotaccent = 611;\n t.Thorn = 667;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 667;\n t.dcaron = 643;\n t.Umacron = 722;\n t.uring = 556;\n t.threesuperior = 333;\n t.Ograve = 778;\n t.Agrave = 667;\n t.Abreve = 667;\n t.multiply = 584;\n t.uacute = 556;\n t.Tcaron = 611;\n t.partialdiff = 476;\n t.ydieresis = 500;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 556;\n t.edieresis = 556;\n t.cacute = 500;\n t.nacute = 556;\n t.umacron = 556;\n t.Ncaron = 722;\n t.Iacute = 278;\n t.plusminus = 584;\n t.brokenbar = 260;\n t.registered = 737;\n t.Gbreve = 778;\n t.Idotaccent = 278;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 333;\n t.omacron = 556;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 222;\n t.tcaron = 317;\n t.eogonek = 556;\n t.Uogonek = 722;\n t.Aacute = 667;\n t.Adieresis = 667;\n t.egrave = 556;\n t.zacute = 500;\n t.iogonek = 222;\n t.Oacute = 778;\n t.oacute = 556;\n t.amacron = 556;\n t.sacute = 500;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 556;\n t.twosuperior = 333;\n t.Odieresis = 778;\n t.mu = 556;\n t.igrave = 278;\n t.ohungarumlaut = 556;\n t.Eogonek = 667;\n t.dcroat = 556;\n t.threequarters = 834;\n t.Scedilla = 667;\n t.lcaron = 299;\n t.Kcommaaccent = 667;\n t.Lacute = 556;\n t.trademark = 1000;\n t.edotaccent = 556;\n t.Igrave = 278;\n t.Imacron = 278;\n t.Lcaron = 556;\n t.onehalf = 834;\n t.lessequal = 549;\n t.ocircumflex = 556;\n t.ntilde = 556;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 556;\n t.gbreve = 556;\n t.onequarter = 834;\n t.Scaron = 667;\n t.Scommaaccent = 667;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 556;\n t.Ccaron = 722;\n t.ugrave = 556;\n t.radical = 453;\n t.Dcaron = 722;\n t.rcommaaccent = 333;\n t.Ntilde = 722;\n t.otilde = 556;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 556;\n t.Atilde = 667;\n t.Aogonek = 667;\n t.Aring = 667;\n t.Otilde = 778;\n t.zdotaccent = 500;\n t.Ecaron = 667;\n t.Iogonek = 278;\n t.kcommaaccent = 500;\n t.minus = 584;\n t.Icircumflex = 278;\n t.ncaron = 556;\n t.tcommaaccent = 278;\n t.logicalnot = 584;\n t.odieresis = 556;\n t.udieresis = 556;\n t.notequal = 549;\n t.gcommaaccent = 556;\n t.eth = 556;\n t.zcaron = 500;\n t.ncommaaccent = 556;\n t.onesuperior = 333;\n t.imacron = 278;\n t.Euro = 556;\n });\n // eslint-disable-next-line no-shadow\n t.Symbol = getLookupTableFactory(function (t) {\n t.space = 250;\n t.exclam = 333;\n t.universal = 713;\n t.numbersign = 500;\n t.existential = 549;\n t.percent = 833;\n t.ampersand = 778;\n t.suchthat = 439;\n t.parenleft = 333;\n t.parenright = 333;\n t.asteriskmath = 500;\n t.plus = 549;\n t.comma = 250;\n t.minus = 549;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 278;\n t.semicolon = 278;\n t.less = 549;\n t.equal = 549;\n t.greater = 549;\n t.question = 444;\n t.congruent = 549;\n t.Alpha = 722;\n t.Beta = 667;\n t.Chi = 722;\n t.Delta = 612;\n t.Epsilon = 611;\n t.Phi = 763;\n t.Gamma = 603;\n t.Eta = 722;\n t.Iota = 333;\n t.theta1 = 631;\n t.Kappa = 722;\n t.Lambda = 686;\n t.Mu = 889;\n t.Nu = 722;\n t.Omicron = 722;\n t.Pi = 768;\n t.Theta = 741;\n t.Rho = 556;\n t.Sigma = 592;\n t.Tau = 611;\n t.Upsilon = 690;\n t.sigma1 = 439;\n t.Omega = 768;\n t.Xi = 645;\n t.Psi = 795;\n t.Zeta = 611;\n t.bracketleft = 333;\n t.therefore = 863;\n t.bracketright = 333;\n t.perpendicular = 658;\n t.underscore = 500;\n t.radicalex = 500;\n t.alpha = 631;\n t.beta = 549;\n t.chi = 549;\n t.delta = 494;\n t.epsilon = 439;\n t.phi = 521;\n t.gamma = 411;\n t.eta = 603;\n t.iota = 329;\n t.phi1 = 603;\n t.kappa = 549;\n t.lambda = 549;\n t.mu = 576;\n t.nu = 521;\n t.omicron = 549;\n t.pi = 549;\n t.theta = 521;\n t.rho = 549;\n t.sigma = 603;\n t.tau = 439;\n t.upsilon = 576;\n t.omega1 = 713;\n t.omega = 686;\n t.xi = 493;\n t.psi = 686;\n t.zeta = 494;\n t.braceleft = 480;\n t.bar = 200;\n t.braceright = 480;\n t.similar = 549;\n t.Euro = 750;\n t.Upsilon1 = 620;\n t.minute = 247;\n t.lessequal = 549;\n t.fraction = 167;\n t.infinity = 713;\n t.florin = 500;\n t.club = 753;\n t.diamond = 753;\n t.heart = 753;\n t.spade = 753;\n t.arrowboth = 1042;\n t.arrowleft = 987;\n t.arrowup = 603;\n t.arrowright = 987;\n t.arrowdown = 603;\n t.degree = 400;\n t.plusminus = 549;\n t.second = 411;\n t.greaterequal = 549;\n t.multiply = 549;\n t.proportional = 713;\n t.partialdiff = 494;\n t.bullet = 460;\n t.divide = 549;\n t.notequal = 549;\n t.equivalence = 549;\n t.approxequal = 549;\n t.ellipsis = 1000;\n t.arrowvertex = 603;\n t.arrowhorizex = 1000;\n t.carriagereturn = 658;\n t.aleph = 823;\n t.Ifraktur = 686;\n t.Rfraktur = 795;\n t.weierstrass = 987;\n t.circlemultiply = 768;\n t.circleplus = 768;\n t.emptyset = 823;\n t.intersection = 768;\n t.union = 768;\n t.propersuperset = 713;\n t.reflexsuperset = 713;\n t.notsubset = 713;\n t.propersubset = 713;\n t.reflexsubset = 713;\n t.element = 713;\n t.notelement = 713;\n t.angle = 768;\n t.gradient = 713;\n t.registerserif = 790;\n t.copyrightserif = 790;\n t.trademarkserif = 890;\n t.product = 823;\n t.radical = 549;\n t.dotmath = 250;\n t.logicalnot = 713;\n t.logicaland = 603;\n t.logicalor = 603;\n t.arrowdblboth = 1042;\n t.arrowdblleft = 987;\n t.arrowdblup = 603;\n t.arrowdblright = 987;\n t.arrowdbldown = 603;\n t.lozenge = 494;\n t.angleleft = 329;\n t.registersans = 790;\n t.copyrightsans = 790;\n t.trademarksans = 786;\n t.summation = 713;\n t.parenlefttp = 384;\n t.parenleftex = 384;\n t.parenleftbt = 384;\n t.bracketlefttp = 384;\n t.bracketleftex = 384;\n t.bracketleftbt = 384;\n t.bracelefttp = 494;\n t.braceleftmid = 494;\n t.braceleftbt = 494;\n t.braceex = 494;\n t.angleright = 329;\n t.integral = 274;\n t.integraltp = 686;\n t.integralex = 686;\n t.integralbt = 686;\n t.parenrighttp = 384;\n t.parenrightex = 384;\n t.parenrightbt = 384;\n t.bracketrighttp = 384;\n t.bracketrightex = 384;\n t.bracketrightbt = 384;\n t.bracerighttp = 494;\n t.bracerightmid = 494;\n t.bracerightbt = 494;\n t.apple = 790;\n });\n // eslint-disable-next-line no-shadow\n t[\"Times-Roman\"] = getLookupTableFactory(function (t) {\n t.space = 250;\n t.exclam = 333;\n t.quotedbl = 408;\n t.numbersign = 500;\n t.dollar = 500;\n t.percent = 833;\n t.ampersand = 778;\n t.quoteright = 333;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 500;\n t.plus = 564;\n t.comma = 250;\n t.hyphen = 333;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 278;\n t.semicolon = 278;\n t.less = 564;\n t.equal = 564;\n t.greater = 564;\n t.question = 444;\n t.at = 921;\n t.A = 722;\n t.B = 667;\n t.C = 667;\n t.D = 722;\n t.E = 611;\n t.F = 556;\n t.G = 722;\n t.H = 722;\n t.I = 333;\n t.J = 389;\n t.K = 722;\n t.L = 611;\n t.M = 889;\n t.N = 722;\n t.O = 722;\n t.P = 556;\n t.Q = 722;\n t.R = 667;\n t.S = 556;\n t.T = 611;\n t.U = 722;\n t.V = 722;\n t.W = 944;\n t.X = 722;\n t.Y = 722;\n t.Z = 611;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 469;\n t.underscore = 500;\n t.quoteleft = 333;\n t.a = 444;\n t.b = 500;\n t.c = 444;\n t.d = 500;\n t.e = 444;\n t.f = 333;\n t.g = 500;\n t.h = 500;\n t.i = 278;\n t.j = 278;\n t.k = 500;\n t.l = 278;\n t.m = 778;\n t.n = 500;\n t.o = 500;\n t.p = 500;\n t.q = 500;\n t.r = 333;\n t.s = 389;\n t.t = 278;\n t.u = 500;\n t.v = 500;\n t.w = 722;\n t.x = 500;\n t.y = 500;\n t.z = 444;\n t.braceleft = 480;\n t.bar = 200;\n t.braceright = 480;\n t.asciitilde = 541;\n t.exclamdown = 333;\n t.cent = 500;\n t.sterling = 500;\n t.fraction = 167;\n t.yen = 500;\n t.florin = 500;\n t.section = 500;\n t.currency = 500;\n t.quotesingle = 180;\n t.quotedblleft = 444;\n t.guillemotleft = 500;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 556;\n t.fl = 556;\n t.endash = 500;\n t.dagger = 500;\n t.daggerdbl = 500;\n t.periodcentered = 250;\n t.paragraph = 453;\n t.bullet = 350;\n t.quotesinglbase = 333;\n t.quotedblbase = 444;\n t.quotedblright = 444;\n t.guillemotright = 500;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 444;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 889;\n t.ordfeminine = 276;\n t.Lslash = 611;\n t.Oslash = 722;\n t.OE = 889;\n t.ordmasculine = 310;\n t.ae = 667;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 500;\n t.oe = 722;\n t.germandbls = 500;\n t.Idieresis = 333;\n t.eacute = 444;\n t.abreve = 444;\n t.uhungarumlaut = 500;\n t.ecaron = 444;\n t.Ydieresis = 722;\n t.divide = 564;\n t.Yacute = 722;\n t.Acircumflex = 722;\n t.aacute = 444;\n t.Ucircumflex = 722;\n t.yacute = 500;\n t.scommaaccent = 389;\n t.ecircumflex = 444;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 444;\n t.Uacute = 722;\n t.uogonek = 500;\n t.Edieresis = 611;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 760;\n t.Emacron = 611;\n t.ccaron = 444;\n t.aring = 444;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 444;\n t.Tcommaaccent = 611;\n t.Cacute = 667;\n t.atilde = 444;\n t.Edotaccent = 611;\n t.scaron = 389;\n t.scedilla = 389;\n t.iacute = 278;\n t.lozenge = 471;\n t.Rcaron = 667;\n t.Gcommaaccent = 722;\n t.ucircumflex = 500;\n t.acircumflex = 444;\n t.Amacron = 722;\n t.rcaron = 333;\n t.ccedilla = 444;\n t.Zdotaccent = 611;\n t.Thorn = 556;\n t.Omacron = 722;\n t.Racute = 667;\n t.Sacute = 556;\n t.dcaron = 588;\n t.Umacron = 722;\n t.uring = 500;\n t.threesuperior = 300;\n t.Ograve = 722;\n t.Agrave = 722;\n t.Abreve = 722;\n t.multiply = 564;\n t.uacute = 500;\n t.Tcaron = 611;\n t.partialdiff = 476;\n t.ydieresis = 500;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 611;\n t.adieresis = 444;\n t.edieresis = 444;\n t.cacute = 444;\n t.nacute = 500;\n t.umacron = 500;\n t.Ncaron = 722;\n t.Iacute = 333;\n t.plusminus = 564;\n t.brokenbar = 200;\n t.registered = 760;\n t.Gbreve = 722;\n t.Idotaccent = 333;\n t.summation = 600;\n t.Egrave = 611;\n t.racute = 333;\n t.omacron = 500;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 667;\n t.lcommaaccent = 278;\n t.tcaron = 326;\n t.eogonek = 444;\n t.Uogonek = 722;\n t.Aacute = 722;\n t.Adieresis = 722;\n t.egrave = 444;\n t.zacute = 444;\n t.iogonek = 278;\n t.Oacute = 722;\n t.oacute = 500;\n t.amacron = 444;\n t.sacute = 389;\n t.idieresis = 278;\n t.Ocircumflex = 722;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 500;\n t.twosuperior = 300;\n t.Odieresis = 722;\n t.mu = 500;\n t.igrave = 278;\n t.ohungarumlaut = 500;\n t.Eogonek = 611;\n t.dcroat = 500;\n t.threequarters = 750;\n t.Scedilla = 556;\n t.lcaron = 344;\n t.Kcommaaccent = 722;\n t.Lacute = 611;\n t.trademark = 980;\n t.edotaccent = 444;\n t.Igrave = 333;\n t.Imacron = 333;\n t.Lcaron = 611;\n t.onehalf = 750;\n t.lessequal = 549;\n t.ocircumflex = 500;\n t.ntilde = 500;\n t.Uhungarumlaut = 722;\n t.Eacute = 611;\n t.emacron = 444;\n t.gbreve = 500;\n t.onequarter = 750;\n t.Scaron = 556;\n t.Scommaaccent = 556;\n t.Ohungarumlaut = 722;\n t.degree = 400;\n t.ograve = 500;\n t.Ccaron = 667;\n t.ugrave = 500;\n t.radical = 453;\n t.Dcaron = 722;\n t.rcommaaccent = 333;\n t.Ntilde = 722;\n t.otilde = 500;\n t.Rcommaaccent = 667;\n t.Lcommaaccent = 611;\n t.Atilde = 722;\n t.Aogonek = 722;\n t.Aring = 722;\n t.Otilde = 722;\n t.zdotaccent = 444;\n t.Ecaron = 611;\n t.Iogonek = 333;\n t.kcommaaccent = 500;\n t.minus = 564;\n t.Icircumflex = 333;\n t.ncaron = 500;\n t.tcommaaccent = 278;\n t.logicalnot = 564;\n t.odieresis = 500;\n t.udieresis = 500;\n t.notequal = 549;\n t.gcommaaccent = 500;\n t.eth = 500;\n t.zcaron = 444;\n t.ncommaaccent = 500;\n t.onesuperior = 300;\n t.imacron = 278;\n t.Euro = 500;\n });\n // eslint-disable-next-line no-shadow\n t[\"Times-Bold\"] = getLookupTableFactory(function (t) {\n t.space = 250;\n t.exclam = 333;\n t.quotedbl = 555;\n t.numbersign = 500;\n t.dollar = 500;\n t.percent = 1000;\n t.ampersand = 833;\n t.quoteright = 333;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 500;\n t.plus = 570;\n t.comma = 250;\n t.hyphen = 333;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 570;\n t.equal = 570;\n t.greater = 570;\n t.question = 500;\n t.at = 930;\n t.A = 722;\n t.B = 667;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 778;\n t.I = 389;\n t.J = 500;\n t.K = 778;\n t.L = 667;\n t.M = 944;\n t.N = 722;\n t.O = 778;\n t.P = 611;\n t.Q = 778;\n t.R = 722;\n t.S = 556;\n t.T = 667;\n t.U = 722;\n t.V = 722;\n t.W = 1000;\n t.X = 722;\n t.Y = 722;\n t.Z = 667;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 581;\n t.underscore = 500;\n t.quoteleft = 333;\n t.a = 500;\n t.b = 556;\n t.c = 444;\n t.d = 556;\n t.e = 444;\n t.f = 333;\n t.g = 500;\n t.h = 556;\n t.i = 278;\n t.j = 333;\n t.k = 556;\n t.l = 278;\n t.m = 833;\n t.n = 556;\n t.o = 500;\n t.p = 556;\n t.q = 556;\n t.r = 444;\n t.s = 389;\n t.t = 333;\n t.u = 556;\n t.v = 500;\n t.w = 722;\n t.x = 500;\n t.y = 500;\n t.z = 444;\n t.braceleft = 394;\n t.bar = 220;\n t.braceright = 394;\n t.asciitilde = 520;\n t.exclamdown = 333;\n t.cent = 500;\n t.sterling = 500;\n t.fraction = 167;\n t.yen = 500;\n t.florin = 500;\n t.section = 500;\n t.currency = 500;\n t.quotesingle = 278;\n t.quotedblleft = 500;\n t.guillemotleft = 500;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 556;\n t.fl = 556;\n t.endash = 500;\n t.dagger = 500;\n t.daggerdbl = 500;\n t.periodcentered = 250;\n t.paragraph = 540;\n t.bullet = 350;\n t.quotesinglbase = 333;\n t.quotedblbase = 500;\n t.quotedblright = 500;\n t.guillemotright = 500;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 500;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 300;\n t.Lslash = 667;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 330;\n t.ae = 722;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 500;\n t.oe = 722;\n t.germandbls = 556;\n t.Idieresis = 389;\n t.eacute = 444;\n t.abreve = 500;\n t.uhungarumlaut = 556;\n t.ecaron = 444;\n t.Ydieresis = 722;\n t.divide = 570;\n t.Yacute = 722;\n t.Acircumflex = 722;\n t.aacute = 500;\n t.Ucircumflex = 722;\n t.yacute = 500;\n t.scommaaccent = 389;\n t.ecircumflex = 444;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 500;\n t.Uacute = 722;\n t.uogonek = 556;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 747;\n t.Emacron = 667;\n t.ccaron = 444;\n t.aring = 500;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 500;\n t.Tcommaaccent = 667;\n t.Cacute = 722;\n t.atilde = 500;\n t.Edotaccent = 667;\n t.scaron = 389;\n t.scedilla = 389;\n t.iacute = 278;\n t.lozenge = 494;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 556;\n t.acircumflex = 500;\n t.Amacron = 722;\n t.rcaron = 444;\n t.ccedilla = 444;\n t.Zdotaccent = 667;\n t.Thorn = 611;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 556;\n t.dcaron = 672;\n t.Umacron = 722;\n t.uring = 556;\n t.threesuperior = 300;\n t.Ograve = 778;\n t.Agrave = 722;\n t.Abreve = 722;\n t.multiply = 570;\n t.uacute = 556;\n t.Tcaron = 667;\n t.partialdiff = 494;\n t.ydieresis = 500;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 500;\n t.edieresis = 444;\n t.cacute = 444;\n t.nacute = 556;\n t.umacron = 556;\n t.Ncaron = 722;\n t.Iacute = 389;\n t.plusminus = 570;\n t.brokenbar = 220;\n t.registered = 747;\n t.Gbreve = 778;\n t.Idotaccent = 389;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 444;\n t.omacron = 500;\n t.Zacute = 667;\n t.Zcaron = 667;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 278;\n t.tcaron = 416;\n t.eogonek = 444;\n t.Uogonek = 722;\n t.Aacute = 722;\n t.Adieresis = 722;\n t.egrave = 444;\n t.zacute = 444;\n t.iogonek = 278;\n t.Oacute = 778;\n t.oacute = 500;\n t.amacron = 500;\n t.sacute = 389;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 556;\n t.twosuperior = 300;\n t.Odieresis = 778;\n t.mu = 556;\n t.igrave = 278;\n t.ohungarumlaut = 500;\n t.Eogonek = 667;\n t.dcroat = 556;\n t.threequarters = 750;\n t.Scedilla = 556;\n t.lcaron = 394;\n t.Kcommaaccent = 778;\n t.Lacute = 667;\n t.trademark = 1000;\n t.edotaccent = 444;\n t.Igrave = 389;\n t.Imacron = 389;\n t.Lcaron = 667;\n t.onehalf = 750;\n t.lessequal = 549;\n t.ocircumflex = 500;\n t.ntilde = 556;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 444;\n t.gbreve = 500;\n t.onequarter = 750;\n t.Scaron = 556;\n t.Scommaaccent = 556;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 500;\n t.Ccaron = 722;\n t.ugrave = 556;\n t.radical = 549;\n t.Dcaron = 722;\n t.rcommaaccent = 444;\n t.Ntilde = 722;\n t.otilde = 500;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 667;\n t.Atilde = 722;\n t.Aogonek = 722;\n t.Aring = 722;\n t.Otilde = 778;\n t.zdotaccent = 444;\n t.Ecaron = 667;\n t.Iogonek = 389;\n t.kcommaaccent = 556;\n t.minus = 570;\n t.Icircumflex = 389;\n t.ncaron = 556;\n t.tcommaaccent = 333;\n t.logicalnot = 570;\n t.odieresis = 500;\n t.udieresis = 556;\n t.notequal = 549;\n t.gcommaaccent = 500;\n t.eth = 500;\n t.zcaron = 444;\n t.ncommaaccent = 556;\n t.onesuperior = 300;\n t.imacron = 278;\n t.Euro = 500;\n });\n // eslint-disable-next-line no-shadow\n t[\"Times-BoldItalic\"] = getLookupTableFactory(function (t) {\n t.space = 250;\n t.exclam = 389;\n t.quotedbl = 555;\n t.numbersign = 500;\n t.dollar = 500;\n t.percent = 833;\n t.ampersand = 778;\n t.quoteright = 333;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 500;\n t.plus = 570;\n t.comma = 250;\n t.hyphen = 333;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 570;\n t.equal = 570;\n t.greater = 570;\n t.question = 500;\n t.at = 832;\n t.A = 667;\n t.B = 667;\n t.C = 667;\n t.D = 722;\n t.E = 667;\n t.F = 667;\n t.G = 722;\n t.H = 778;\n t.I = 389;\n t.J = 500;\n t.K = 667;\n t.L = 611;\n t.M = 889;\n t.N = 722;\n t.O = 722;\n t.P = 611;\n t.Q = 722;\n t.R = 667;\n t.S = 556;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 889;\n t.X = 667;\n t.Y = 611;\n t.Z = 611;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 570;\n t.underscore = 500;\n t.quoteleft = 333;\n t.a = 500;\n t.b = 500;\n t.c = 444;\n t.d = 500;\n t.e = 444;\n t.f = 333;\n t.g = 500;\n t.h = 556;\n t.i = 278;\n t.j = 278;\n t.k = 500;\n t.l = 278;\n t.m = 778;\n t.n = 556;\n t.o = 500;\n t.p = 500;\n t.q = 500;\n t.r = 389;\n t.s = 389;\n t.t = 278;\n t.u = 556;\n t.v = 444;\n t.w = 667;\n t.x = 500;\n t.y = 444;\n t.z = 389;\n t.braceleft = 348;\n t.bar = 220;\n t.braceright = 348;\n t.asciitilde = 570;\n t.exclamdown = 389;\n t.cent = 500;\n t.sterling = 500;\n t.fraction = 167;\n t.yen = 500;\n t.florin = 500;\n t.section = 500;\n t.currency = 500;\n t.quotesingle = 278;\n t.quotedblleft = 500;\n t.guillemotleft = 500;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 556;\n t.fl = 556;\n t.endash = 500;\n t.dagger = 500;\n t.daggerdbl = 500;\n t.periodcentered = 250;\n t.paragraph = 500;\n t.bullet = 350;\n t.quotesinglbase = 333;\n t.quotedblbase = 500;\n t.quotedblright = 500;\n t.guillemotright = 500;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 500;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 944;\n t.ordfeminine = 266;\n t.Lslash = 611;\n t.Oslash = 722;\n t.OE = 944;\n t.ordmasculine = 300;\n t.ae = 722;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 500;\n t.oe = 722;\n t.germandbls = 500;\n t.Idieresis = 389;\n t.eacute = 444;\n t.abreve = 500;\n t.uhungarumlaut = 556;\n t.ecaron = 444;\n t.Ydieresis = 611;\n t.divide = 570;\n t.Yacute = 611;\n t.Acircumflex = 667;\n t.aacute = 500;\n t.Ucircumflex = 722;\n t.yacute = 444;\n t.scommaaccent = 389;\n t.ecircumflex = 444;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 500;\n t.Uacute = 722;\n t.uogonek = 556;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 747;\n t.Emacron = 667;\n t.ccaron = 444;\n t.aring = 500;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 500;\n t.Tcommaaccent = 611;\n t.Cacute = 667;\n t.atilde = 500;\n t.Edotaccent = 667;\n t.scaron = 389;\n t.scedilla = 389;\n t.iacute = 278;\n t.lozenge = 494;\n t.Rcaron = 667;\n t.Gcommaaccent = 722;\n t.ucircumflex = 556;\n t.acircumflex = 500;\n t.Amacron = 667;\n t.rcaron = 389;\n t.ccedilla = 444;\n t.Zdotaccent = 611;\n t.Thorn = 611;\n t.Omacron = 722;\n t.Racute = 667;\n t.Sacute = 556;\n t.dcaron = 608;\n t.Umacron = 722;\n t.uring = 556;\n t.threesuperior = 300;\n t.Ograve = 722;\n t.Agrave = 667;\n t.Abreve = 667;\n t.multiply = 570;\n t.uacute = 556;\n t.Tcaron = 611;\n t.partialdiff = 494;\n t.ydieresis = 444;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 500;\n t.edieresis = 444;\n t.cacute = 444;\n t.nacute = 556;\n t.umacron = 556;\n t.Ncaron = 722;\n t.Iacute = 389;\n t.plusminus = 570;\n t.brokenbar = 220;\n t.registered = 747;\n t.Gbreve = 722;\n t.Idotaccent = 389;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 389;\n t.omacron = 500;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 667;\n t.lcommaaccent = 278;\n t.tcaron = 366;\n t.eogonek = 444;\n t.Uogonek = 722;\n t.Aacute = 667;\n t.Adieresis = 667;\n t.egrave = 444;\n t.zacute = 389;\n t.iogonek = 278;\n t.Oacute = 722;\n t.oacute = 500;\n t.amacron = 500;\n t.sacute = 389;\n t.idieresis = 278;\n t.Ocircumflex = 722;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 500;\n t.twosuperior = 300;\n t.Odieresis = 722;\n t.mu = 576;\n t.igrave = 278;\n t.ohungarumlaut = 500;\n t.Eogonek = 667;\n t.dcroat = 500;\n t.threequarters = 750;\n t.Scedilla = 556;\n t.lcaron = 382;\n t.Kcommaaccent = 667;\n t.Lacute = 611;\n t.trademark = 1000;\n t.edotaccent = 444;\n t.Igrave = 389;\n t.Imacron = 389;\n t.Lcaron = 611;\n t.onehalf = 750;\n t.lessequal = 549;\n t.ocircumflex = 500;\n t.ntilde = 556;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 444;\n t.gbreve = 500;\n t.onequarter = 750;\n t.Scaron = 556;\n t.Scommaaccent = 556;\n t.Ohungarumlaut = 722;\n t.degree = 400;\n t.ograve = 500;\n t.Ccaron = 667;\n t.ugrave = 556;\n t.radical = 549;\n t.Dcaron = 722;\n t.rcommaaccent = 389;\n t.Ntilde = 722;\n t.otilde = 500;\n t.Rcommaaccent = 667;\n t.Lcommaaccent = 611;\n t.Atilde = 667;\n t.Aogonek = 667;\n t.Aring = 667;\n t.Otilde = 722;\n t.zdotaccent = 389;\n t.Ecaron = 667;\n t.Iogonek = 389;\n t.kcommaaccent = 500;\n t.minus = 606;\n t.Icircumflex = 389;\n t.ncaron = 556;\n t.tcommaaccent = 278;\n t.logicalnot = 606;\n t.odieresis = 500;\n t.udieresis = 556;\n t.notequal = 549;\n t.gcommaaccent = 500;\n t.eth = 500;\n t.zcaron = 389;\n t.ncommaaccent = 556;\n t.onesuperior = 300;\n t.imacron = 278;\n t.Euro = 500;\n });\n // eslint-disable-next-line no-shadow\n t[\"Times-Italic\"] = getLookupTableFactory(function (t) {\n t.space = 250;\n t.exclam = 333;\n t.quotedbl = 420;\n t.numbersign = 500;\n t.dollar = 500;\n t.percent = 833;\n t.ampersand = 778;\n t.quoteright = 333;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 500;\n t.plus = 675;\n t.comma = 250;\n t.hyphen = 333;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 675;\n t.equal = 675;\n t.greater = 675;\n t.question = 500;\n t.at = 920;\n t.A = 611;\n t.B = 611;\n t.C = 667;\n t.D = 722;\n t.E = 611;\n t.F = 611;\n t.G = 722;\n t.H = 722;\n t.I = 333;\n t.J = 444;\n t.K = 667;\n t.L = 556;\n t.M = 833;\n t.N = 667;\n t.O = 722;\n t.P = 611;\n t.Q = 722;\n t.R = 611;\n t.S = 500;\n t.T = 556;\n t.U = 722;\n t.V = 611;\n t.W = 833;\n t.X = 611;\n t.Y = 556;\n t.Z = 556;\n t.bracketleft = 389;\n t.backslash = 278;\n t.bracketright = 389;\n t.asciicircum = 422;\n t.underscore = 500;\n t.quoteleft = 333;\n t.a = 500;\n t.b = 500;\n t.c = 444;\n t.d = 500;\n t.e = 444;\n t.f = 278;\n t.g = 500;\n t.h = 500;\n t.i = 278;\n t.j = 278;\n t.k = 444;\n t.l = 278;\n t.m = 722;\n t.n = 500;\n t.o = 500;\n t.p = 500;\n t.q = 500;\n t.r = 389;\n t.s = 389;\n t.t = 278;\n t.u = 500;\n t.v = 444;\n t.w = 667;\n t.x = 444;\n t.y = 444;\n t.z = 389;\n t.braceleft = 400;\n t.bar = 275;\n t.braceright = 400;\n t.asciitilde = 541;\n t.exclamdown = 389;\n t.cent = 500;\n t.sterling = 500;\n t.fraction = 167;\n t.yen = 500;\n t.florin = 500;\n t.section = 500;\n t.currency = 500;\n t.quotesingle = 214;\n t.quotedblleft = 556;\n t.guillemotleft = 500;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 500;\n t.fl = 500;\n t.endash = 500;\n t.dagger = 500;\n t.daggerdbl = 500;\n t.periodcentered = 250;\n t.paragraph = 523;\n t.bullet = 350;\n t.quotesinglbase = 333;\n t.quotedblbase = 556;\n t.quotedblright = 556;\n t.guillemotright = 500;\n t.ellipsis = 889;\n t.perthousand = 1000;\n t.questiondown = 500;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 889;\n t.AE = 889;\n t.ordfeminine = 276;\n t.Lslash = 556;\n t.Oslash = 722;\n t.OE = 944;\n t.ordmasculine = 310;\n t.ae = 667;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 500;\n t.oe = 667;\n t.germandbls = 500;\n t.Idieresis = 333;\n t.eacute = 444;\n t.abreve = 500;\n t.uhungarumlaut = 500;\n t.ecaron = 444;\n t.Ydieresis = 556;\n t.divide = 675;\n t.Yacute = 556;\n t.Acircumflex = 611;\n t.aacute = 500;\n t.Ucircumflex = 722;\n t.yacute = 444;\n t.scommaaccent = 389;\n t.ecircumflex = 444;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 500;\n t.Uacute = 722;\n t.uogonek = 500;\n t.Edieresis = 611;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 760;\n t.Emacron = 611;\n t.ccaron = 444;\n t.aring = 500;\n t.Ncommaaccent = 667;\n t.lacute = 278;\n t.agrave = 500;\n t.Tcommaaccent = 556;\n t.Cacute = 667;\n t.atilde = 500;\n t.Edotaccent = 611;\n t.scaron = 389;\n t.scedilla = 389;\n t.iacute = 278;\n t.lozenge = 471;\n t.Rcaron = 611;\n t.Gcommaaccent = 722;\n t.ucircumflex = 500;\n t.acircumflex = 500;\n t.Amacron = 611;\n t.rcaron = 389;\n t.ccedilla = 444;\n t.Zdotaccent = 556;\n t.Thorn = 611;\n t.Omacron = 722;\n t.Racute = 611;\n t.Sacute = 500;\n t.dcaron = 544;\n t.Umacron = 722;\n t.uring = 500;\n t.threesuperior = 300;\n t.Ograve = 722;\n t.Agrave = 611;\n t.Abreve = 611;\n t.multiply = 675;\n t.uacute = 500;\n t.Tcaron = 556;\n t.partialdiff = 476;\n t.ydieresis = 444;\n t.Nacute = 667;\n t.icircumflex = 278;\n t.Ecircumflex = 611;\n t.adieresis = 500;\n t.edieresis = 444;\n t.cacute = 444;\n t.nacute = 500;\n t.umacron = 500;\n t.Ncaron = 667;\n t.Iacute = 333;\n t.plusminus = 675;\n t.brokenbar = 275;\n t.registered = 760;\n t.Gbreve = 722;\n t.Idotaccent = 333;\n t.summation = 600;\n t.Egrave = 611;\n t.racute = 389;\n t.omacron = 500;\n t.Zacute = 556;\n t.Zcaron = 556;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 667;\n t.lcommaaccent = 278;\n t.tcaron = 300;\n t.eogonek = 444;\n t.Uogonek = 722;\n t.Aacute = 611;\n t.Adieresis = 611;\n t.egrave = 444;\n t.zacute = 389;\n t.iogonek = 278;\n t.Oacute = 722;\n t.oacute = 500;\n t.amacron = 500;\n t.sacute = 389;\n t.idieresis = 278;\n t.Ocircumflex = 722;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 500;\n t.twosuperior = 300;\n t.Odieresis = 722;\n t.mu = 500;\n t.igrave = 278;\n t.ohungarumlaut = 500;\n t.Eogonek = 611;\n t.dcroat = 500;\n t.threequarters = 750;\n t.Scedilla = 500;\n t.lcaron = 300;\n t.Kcommaaccent = 667;\n t.Lacute = 556;\n t.trademark = 980;\n t.edotaccent = 444;\n t.Igrave = 333;\n t.Imacron = 333;\n t.Lcaron = 611;\n t.onehalf = 750;\n t.lessequal = 549;\n t.ocircumflex = 500;\n t.ntilde = 500;\n t.Uhungarumlaut = 722;\n t.Eacute = 611;\n t.emacron = 444;\n t.gbreve = 500;\n t.onequarter = 750;\n t.Scaron = 500;\n t.Scommaaccent = 500;\n t.Ohungarumlaut = 722;\n t.degree = 400;\n t.ograve = 500;\n t.Ccaron = 667;\n t.ugrave = 500;\n t.radical = 453;\n t.Dcaron = 722;\n t.rcommaaccent = 389;\n t.Ntilde = 667;\n t.otilde = 500;\n t.Rcommaaccent = 611;\n t.Lcommaaccent = 556;\n t.Atilde = 611;\n t.Aogonek = 611;\n t.Aring = 611;\n t.Otilde = 722;\n t.zdotaccent = 389;\n t.Ecaron = 611;\n t.Iogonek = 333;\n t.kcommaaccent = 444;\n t.minus = 675;\n t.Icircumflex = 333;\n t.ncaron = 500;\n t.tcommaaccent = 278;\n t.logicalnot = 675;\n t.odieresis = 500;\n t.udieresis = 500;\n t.notequal = 549;\n t.gcommaaccent = 500;\n t.eth = 500;\n t.zcaron = 389;\n t.ncommaaccent = 500;\n t.onesuperior = 300;\n t.imacron = 278;\n t.Euro = 500;\n });\n // eslint-disable-next-line no-shadow\n t.ZapfDingbats = getLookupTableFactory(function (t) {\n t.space = 278;\n t.a1 = 974;\n t.a2 = 961;\n t.a202 = 974;\n t.a3 = 980;\n t.a4 = 719;\n t.a5 = 789;\n t.a119 = 790;\n t.a118 = 791;\n t.a117 = 690;\n t.a11 = 960;\n t.a12 = 939;\n t.a13 = 549;\n t.a14 = 855;\n t.a15 = 911;\n t.a16 = 933;\n t.a105 = 911;\n t.a17 = 945;\n t.a18 = 974;\n t.a19 = 755;\n t.a20 = 846;\n t.a21 = 762;\n t.a22 = 761;\n t.a23 = 571;\n t.a24 = 677;\n t.a25 = 763;\n t.a26 = 760;\n t.a27 = 759;\n t.a28 = 754;\n t.a6 = 494;\n t.a7 = 552;\n t.a8 = 537;\n t.a9 = 577;\n t.a10 = 692;\n t.a29 = 786;\n t.a30 = 788;\n t.a31 = 788;\n t.a32 = 790;\n t.a33 = 793;\n t.a34 = 794;\n t.a35 = 816;\n t.a36 = 823;\n t.a37 = 789;\n t.a38 = 841;\n t.a39 = 823;\n t.a40 = 833;\n t.a41 = 816;\n t.a42 = 831;\n t.a43 = 923;\n t.a44 = 744;\n t.a45 = 723;\n t.a46 = 749;\n t.a47 = 790;\n t.a48 = 792;\n t.a49 = 695;\n t.a50 = 776;\n t.a51 = 768;\n t.a52 = 792;\n t.a53 = 759;\n t.a54 = 707;\n t.a55 = 708;\n t.a56 = 682;\n t.a57 = 701;\n t.a58 = 826;\n t.a59 = 815;\n t.a60 = 789;\n t.a61 = 789;\n t.a62 = 707;\n t.a63 = 687;\n t.a64 = 696;\n t.a65 = 689;\n t.a66 = 786;\n t.a67 = 787;\n t.a68 = 713;\n t.a69 = 791;\n t.a70 = 785;\n t.a71 = 791;\n t.a72 = 873;\n t.a73 = 761;\n t.a74 = 762;\n t.a203 = 762;\n t.a75 = 759;\n t.a204 = 759;\n t.a76 = 892;\n t.a77 = 892;\n t.a78 = 788;\n t.a79 = 784;\n t.a81 = 438;\n t.a82 = 138;\n t.a83 = 277;\n t.a84 = 415;\n t.a97 = 392;\n t.a98 = 392;\n t.a99 = 668;\n t.a100 = 668;\n t.a89 = 390;\n t.a90 = 390;\n t.a93 = 317;\n t.a94 = 317;\n t.a91 = 276;\n t.a92 = 276;\n t.a205 = 509;\n t.a85 = 509;\n t.a206 = 410;\n t.a86 = 410;\n t.a87 = 234;\n t.a88 = 234;\n t.a95 = 334;\n t.a96 = 334;\n t.a101 = 732;\n t.a102 = 544;\n t.a103 = 544;\n t.a104 = 910;\n t.a106 = 667;\n t.a107 = 760;\n t.a108 = 760;\n t.a112 = 776;\n t.a111 = 595;\n t.a110 = 694;\n t.a109 = 626;\n t.a120 = 788;\n t.a121 = 788;\n t.a122 = 788;\n t.a123 = 788;\n t.a124 = 788;\n t.a125 = 788;\n t.a126 = 788;\n t.a127 = 788;\n t.a128 = 788;\n t.a129 = 788;\n t.a130 = 788;\n t.a131 = 788;\n t.a132 = 788;\n t.a133 = 788;\n t.a134 = 788;\n t.a135 = 788;\n t.a136 = 788;\n t.a137 = 788;\n t.a138 = 788;\n t.a139 = 788;\n t.a140 = 788;\n t.a141 = 788;\n t.a142 = 788;\n t.a143 = 788;\n t.a144 = 788;\n t.a145 = 788;\n t.a146 = 788;\n t.a147 = 788;\n t.a148 = 788;\n t.a149 = 788;\n t.a150 = 788;\n t.a151 = 788;\n t.a152 = 788;\n t.a153 = 788;\n t.a154 = 788;\n t.a155 = 788;\n t.a156 = 788;\n t.a157 = 788;\n t.a158 = 788;\n t.a159 = 788;\n t.a160 = 894;\n t.a161 = 838;\n t.a163 = 1016;\n t.a164 = 458;\n t.a196 = 748;\n t.a165 = 924;\n t.a192 = 748;\n t.a166 = 918;\n t.a167 = 927;\n t.a168 = 928;\n t.a169 = 928;\n t.a170 = 834;\n t.a171 = 873;\n t.a172 = 828;\n t.a173 = 924;\n t.a162 = 924;\n t.a174 = 917;\n t.a175 = 930;\n t.a176 = 931;\n t.a177 = 463;\n t.a178 = 883;\n t.a179 = 836;\n t.a193 = 836;\n t.a180 = 867;\n t.a199 = 867;\n t.a181 = 696;\n t.a200 = 696;\n t.a182 = 874;\n t.a201 = 874;\n t.a183 = 760;\n t.a184 = 946;\n t.a197 = 771;\n t.a185 = 865;\n t.a194 = 771;\n t.a198 = 888;\n t.a186 = 967;\n t.a195 = 888;\n t.a187 = 831;\n t.a188 = 873;\n t.a189 = 927;\n t.a190 = 970;\n t.a191 = 918;\n });\n});\n\nconst getFontBasicMetrics = getLookupTableFactory(function (t) {\n t.Courier = {\n ascent: 629,\n descent: -157,\n capHeight: 562,\n xHeight: -426,\n };\n t[\"Courier-Bold\"] = {\n ascent: 629,\n descent: -157,\n capHeight: 562,\n xHeight: 439,\n };\n t[\"Courier-Oblique\"] = {\n ascent: 629,\n descent: -157,\n capHeight: 562,\n xHeight: 426,\n };\n t[\"Courier-BoldOblique\"] = {\n ascent: 629,\n descent: -157,\n capHeight: 562,\n xHeight: 426,\n };\n t.Helvetica = {\n ascent: 718,\n descent: -207,\n capHeight: 718,\n xHeight: 523,\n };\n t[\"Helvetica-Bold\"] = {\n ascent: 718,\n descent: -207,\n capHeight: 718,\n xHeight: 532,\n };\n t[\"Helvetica-Oblique\"] = {\n ascent: 718,\n descent: -207,\n capHeight: 718,\n xHeight: 523,\n };\n t[\"Helvetica-BoldOblique\"] = {\n ascent: 718,\n descent: -207,\n capHeight: 718,\n xHeight: 532,\n };\n t[\"Times-Roman\"] = {\n ascent: 683,\n descent: -217,\n capHeight: 662,\n xHeight: 450,\n };\n t[\"Times-Bold\"] = {\n ascent: 683,\n descent: -217,\n capHeight: 676,\n xHeight: 461,\n };\n t[\"Times-Italic\"] = {\n ascent: 683,\n descent: -217,\n capHeight: 653,\n xHeight: 441,\n };\n t[\"Times-BoldItalic\"] = {\n ascent: 683,\n descent: -217,\n capHeight: 669,\n xHeight: 462,\n };\n t.Symbol = {\n ascent: Math.NaN,\n descent: Math.NaN,\n capHeight: Math.NaN,\n xHeight: Math.NaN,\n };\n t.ZapfDingbats = {\n ascent: Math.NaN,\n descent: Math.NaN,\n capHeight: Math.NaN,\n xHeight: Math.NaN,\n };\n});\n\nexport { getFontBasicMetrics, getMetrics };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst ON_CURVE_POINT = 1 << 0;\nconst X_SHORT_VECTOR = 1 << 1;\nconst Y_SHORT_VECTOR = 1 << 2;\nconst REPEAT_FLAG = 1 << 3;\nconst X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR = 1 << 4;\nconst Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR = 1 << 5;\nconst OVERLAP_SIMPLE = 1 << 6;\n\nconst ARG_1_AND_2_ARE_WORDS = 1 << 0;\nconst ARGS_ARE_XY_VALUES = 1 << 1;\n// const ROUND_XY_TO_GRID = 1 << 2;\nconst WE_HAVE_A_SCALE = 1 << 3;\nconst MORE_COMPONENTS = 1 << 5;\nconst WE_HAVE_AN_X_AND_Y_SCALE = 1 << 6;\nconst WE_HAVE_A_TWO_BY_TWO = 1 << 7;\nconst WE_HAVE_INSTRUCTIONS = 1 << 8;\n// const USE_MY_METRICS = 1 << 9;\n// const OVERLAP_COMPOUND = 1 << 10;\n// const SCALED_COMPONENT_OFFSET = 1 << 11;\n// const UNSCALED_COMPONENT_OFFSET = 1 << 12;\n\n/**\n * GlyfTable object represents a glyf table containing glyph information:\n * - glyph header (xMin, yMin, xMax, yMax);\n * - contours if any;\n * - components if the glyph is a composite.\n *\n * It's possible to re-scale each glyph in order to have a new font which\n * exactly fits an other one: the goal is to be able to build some substitution\n * font for well-known fonts (Myriad, Arial, ...).\n *\n * A full description of glyf table can be found here\n * https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6glyf.html\n */\nclass GlyfTable {\n constructor({ glyfTable, isGlyphLocationsLong, locaTable, numGlyphs }) {\n this.glyphs = [];\n const loca = new DataView(\n locaTable.buffer,\n locaTable.byteOffset,\n locaTable.byteLength\n );\n const glyf = new DataView(\n glyfTable.buffer,\n glyfTable.byteOffset,\n glyfTable.byteLength\n );\n const offsetSize = isGlyphLocationsLong ? 4 : 2;\n let prev = isGlyphLocationsLong ? loca.getUint32(0) : 2 * loca.getUint16(0);\n let pos = 0;\n for (let i = 0; i < numGlyphs; i++) {\n pos += offsetSize;\n const next = isGlyphLocationsLong\n ? loca.getUint32(pos)\n : 2 * loca.getUint16(pos);\n if (next === prev) {\n this.glyphs.push(new Glyph({}));\n continue;\n }\n\n const glyph = Glyph.parse(prev, glyf);\n this.glyphs.push(glyph);\n\n prev = next;\n }\n }\n\n getSize() {\n return this.glyphs.reduce((a, g) => {\n const size = g.getSize();\n // Round to next multiple of 4 if needed.\n return a + ((size + 3) & ~3);\n }, 0);\n }\n\n write() {\n const totalSize = this.getSize();\n const glyfTable = new DataView(new ArrayBuffer(totalSize));\n const isLocationLong = totalSize > /* 0xffff * 2 */ 0x1fffe;\n const offsetSize = isLocationLong ? 4 : 2;\n const locaTable = new DataView(\n new ArrayBuffer((this.glyphs.length + 1) * offsetSize)\n );\n\n if (isLocationLong) {\n locaTable.setUint32(0, 0);\n } else {\n locaTable.setUint16(0, 0);\n }\n\n let pos = 0;\n let locaIndex = 0;\n for (const glyph of this.glyphs) {\n pos += glyph.write(pos, glyfTable);\n // Round to next multiple of 4 if needed.\n pos = (pos + 3) & ~3;\n\n locaIndex += offsetSize;\n if (isLocationLong) {\n locaTable.setUint32(locaIndex, pos);\n } else {\n locaTable.setUint16(locaIndex, pos >> 1);\n }\n }\n\n return {\n isLocationLong,\n loca: new Uint8Array(locaTable.buffer),\n glyf: new Uint8Array(glyfTable.buffer),\n };\n }\n\n scale(factors) {\n for (let i = 0, ii = this.glyphs.length; i < ii; i++) {\n this.glyphs[i].scale(factors[i]);\n }\n }\n}\n\nclass Glyph {\n constructor({ header = null, simple = null, composites = null }) {\n this.header = header;\n this.simple = simple;\n this.composites = composites;\n }\n\n static parse(pos, glyf) {\n const [read, header] = GlyphHeader.parse(pos, glyf);\n pos += read;\n\n if (header.numberOfContours < 0) {\n // Composite glyph.\n const composites = [];\n while (true) {\n const [n, composite] = CompositeGlyph.parse(pos, glyf);\n pos += n;\n composites.push(composite);\n if (!(composite.flags & MORE_COMPONENTS)) {\n break;\n }\n }\n\n return new Glyph({ header, composites });\n }\n\n const simple = SimpleGlyph.parse(pos, glyf, header.numberOfContours);\n\n return new Glyph({ header, simple });\n }\n\n getSize() {\n if (!this.header) {\n return 0;\n }\n const size = this.simple\n ? this.simple.getSize()\n : this.composites.reduce((a, c) => a + c.getSize(), 0);\n return this.header.getSize() + size;\n }\n\n write(pos, buf) {\n if (!this.header) {\n return 0;\n }\n\n const spos = pos;\n pos += this.header.write(pos, buf);\n if (this.simple) {\n pos += this.simple.write(pos, buf);\n } else {\n for (const composite of this.composites) {\n pos += composite.write(pos, buf);\n }\n }\n\n return pos - spos;\n }\n\n scale(factor) {\n if (!this.header) {\n return;\n }\n\n const xMiddle = (this.header.xMin + this.header.xMax) / 2;\n this.header.scale(xMiddle, factor);\n if (this.simple) {\n this.simple.scale(xMiddle, factor);\n } else {\n for (const composite of this.composites) {\n composite.scale(xMiddle, factor);\n }\n }\n }\n}\n\nclass GlyphHeader {\n constructor({ numberOfContours, xMin, yMin, xMax, yMax }) {\n this.numberOfContours = numberOfContours;\n this.xMin = xMin;\n this.yMin = yMin;\n this.xMax = xMax;\n this.yMax = yMax;\n }\n\n static parse(pos, glyf) {\n return [\n 10,\n new GlyphHeader({\n numberOfContours: glyf.getInt16(pos),\n xMin: glyf.getInt16(pos + 2),\n yMin: glyf.getInt16(pos + 4),\n xMax: glyf.getInt16(pos + 6),\n yMax: glyf.getInt16(pos + 8),\n }),\n ];\n }\n\n getSize() {\n return 10;\n }\n\n write(pos, buf) {\n buf.setInt16(pos, this.numberOfContours);\n buf.setInt16(pos + 2, this.xMin);\n buf.setInt16(pos + 4, this.yMin);\n buf.setInt16(pos + 6, this.xMax);\n buf.setInt16(pos + 8, this.yMax);\n\n return 10;\n }\n\n scale(x, factor) {\n this.xMin = Math.round(x + (this.xMin - x) * factor);\n this.xMax = Math.round(x + (this.xMax - x) * factor);\n }\n}\n\nclass Contour {\n constructor({ flags, xCoordinates, yCoordinates }) {\n this.xCoordinates = xCoordinates;\n this.yCoordinates = yCoordinates;\n this.flags = flags;\n }\n}\n\nclass SimpleGlyph {\n constructor({ contours, instructions }) {\n this.contours = contours;\n this.instructions = instructions;\n }\n\n static parse(pos, glyf, numberOfContours) {\n const endPtsOfContours = [];\n for (let i = 0; i < numberOfContours; i++) {\n const endPt = glyf.getUint16(pos);\n pos += 2;\n endPtsOfContours.push(endPt);\n }\n const numberOfPt = endPtsOfContours[numberOfContours - 1] + 1;\n const instructionLength = glyf.getUint16(pos);\n pos += 2;\n const instructions = new Uint8Array(glyf).slice(\n pos,\n pos + instructionLength\n );\n pos += instructionLength;\n\n const flags = [];\n for (let i = 0; i < numberOfPt; pos++, i++) {\n let flag = glyf.getUint8(pos);\n flags.push(flag);\n if (flag & REPEAT_FLAG) {\n const count = glyf.getUint8(++pos);\n flag ^= REPEAT_FLAG;\n for (let m = 0; m < count; m++) {\n flags.push(flag);\n }\n i += count;\n }\n }\n\n const allXCoordinates = [];\n let xCoordinates = [];\n let yCoordinates = [];\n let pointFlags = [];\n const contours = [];\n let endPtsOfContoursIndex = 0;\n let lastCoordinate = 0;\n\n // Get x coordinates.\n for (let i = 0; i < numberOfPt; i++) {\n const flag = flags[i];\n if (flag & X_SHORT_VECTOR) {\n // 8-bits unsigned value.\n const x = glyf.getUint8(pos++);\n lastCoordinate += flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR ? x : -x;\n xCoordinates.push(lastCoordinate);\n } else if (flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR) {\n // IS_SAME.\n xCoordinates.push(lastCoordinate);\n } else {\n lastCoordinate += glyf.getInt16(pos);\n pos += 2;\n xCoordinates.push(lastCoordinate);\n }\n\n if (endPtsOfContours[endPtsOfContoursIndex] === i) {\n // Next entry is the first one of a new contour.\n endPtsOfContoursIndex++;\n allXCoordinates.push(xCoordinates);\n xCoordinates = [];\n }\n }\n\n lastCoordinate = 0;\n endPtsOfContoursIndex = 0;\n for (let i = 0; i < numberOfPt; i++) {\n const flag = flags[i];\n if (flag & Y_SHORT_VECTOR) {\n // 8-bits unsigned value.\n const y = glyf.getUint8(pos++);\n lastCoordinate += flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR ? y : -y;\n yCoordinates.push(lastCoordinate);\n } else if (flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR) {\n // IS_SAME.\n yCoordinates.push(lastCoordinate);\n } else {\n lastCoordinate += glyf.getInt16(pos);\n pos += 2;\n yCoordinates.push(lastCoordinate);\n }\n\n pointFlags.push((flag & ON_CURVE_POINT) | (flag & OVERLAP_SIMPLE));\n\n if (endPtsOfContours[endPtsOfContoursIndex] === i) {\n // Next entry is the first one of a new contour.\n xCoordinates = allXCoordinates[endPtsOfContoursIndex];\n endPtsOfContoursIndex++;\n contours.push(\n new Contour({\n flags: pointFlags,\n xCoordinates,\n yCoordinates,\n })\n );\n yCoordinates = [];\n pointFlags = [];\n }\n }\n\n return new SimpleGlyph({\n contours,\n instructions,\n });\n }\n\n getSize() {\n let size = this.contours.length * 2 + 2 + this.instructions.length;\n let lastX = 0;\n let lastY = 0;\n for (const contour of this.contours) {\n size += contour.flags.length;\n for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {\n const x = contour.xCoordinates[i];\n const y = contour.yCoordinates[i];\n let abs = Math.abs(x - lastX);\n if (abs > 255) {\n size += 2;\n } else if (abs > 0) {\n size += 1;\n }\n lastX = x;\n\n abs = Math.abs(y - lastY);\n if (abs > 255) {\n size += 2;\n } else if (abs > 0) {\n size += 1;\n }\n lastY = y;\n }\n }\n return size;\n }\n\n write(pos, buf) {\n const spos = pos;\n const xCoordinates = [];\n const yCoordinates = [];\n const flags = [];\n let lastX = 0;\n let lastY = 0;\n\n for (const contour of this.contours) {\n for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {\n let flag = contour.flags[i];\n const x = contour.xCoordinates[i];\n let delta = x - lastX;\n if (delta === 0) {\n flag |= X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR;\n xCoordinates.push(0);\n } else {\n const abs = Math.abs(delta);\n if (abs <= 255) {\n flag |=\n delta >= 0\n ? X_SHORT_VECTOR | X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR\n : X_SHORT_VECTOR;\n xCoordinates.push(abs);\n } else {\n xCoordinates.push(delta);\n }\n }\n lastX = x;\n\n const y = contour.yCoordinates[i];\n delta = y - lastY;\n if (delta === 0) {\n flag |= Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR;\n yCoordinates.push(0);\n } else {\n const abs = Math.abs(delta);\n if (abs <= 255) {\n flag |=\n delta >= 0\n ? Y_SHORT_VECTOR | Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR\n : Y_SHORT_VECTOR;\n yCoordinates.push(abs);\n } else {\n yCoordinates.push(delta);\n }\n }\n lastY = y;\n\n flags.push(flag);\n }\n\n // Write endPtsOfContours entry.\n buf.setUint16(pos, xCoordinates.length - 1);\n pos += 2;\n }\n\n // Write instructionLength.\n buf.setUint16(pos, this.instructions.length);\n pos += 2;\n if (this.instructions.length) {\n // Write instructions.\n new Uint8Array(buf.buffer, 0, buf.buffer.byteLength).set(\n this.instructions,\n pos\n );\n pos += this.instructions.length;\n }\n\n // Write flags.\n for (const flag of flags) {\n buf.setUint8(pos++, flag);\n }\n\n // Write xCoordinates.\n for (let i = 0, ii = xCoordinates.length; i < ii; i++) {\n const x = xCoordinates[i];\n const flag = flags[i];\n if (flag & X_SHORT_VECTOR) {\n buf.setUint8(pos++, x);\n } else if (!(flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR)) {\n buf.setInt16(pos, x);\n pos += 2;\n }\n }\n\n // Write yCoordinates.\n for (let i = 0, ii = yCoordinates.length; i < ii; i++) {\n const y = yCoordinates[i];\n const flag = flags[i];\n if (flag & Y_SHORT_VECTOR) {\n buf.setUint8(pos++, y);\n } else if (!(flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR)) {\n buf.setInt16(pos, y);\n pos += 2;\n }\n }\n\n return pos - spos;\n }\n\n scale(x, factor) {\n for (const contour of this.contours) {\n if (contour.xCoordinates.length === 0) {\n continue;\n }\n\n for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {\n contour.xCoordinates[i] = Math.round(\n x + (contour.xCoordinates[i] - x) * factor\n );\n }\n }\n }\n}\n\nclass CompositeGlyph {\n constructor({\n flags,\n glyphIndex,\n argument1,\n argument2,\n transf,\n instructions,\n }) {\n this.flags = flags;\n this.glyphIndex = glyphIndex;\n this.argument1 = argument1;\n this.argument2 = argument2;\n this.transf = transf;\n this.instructions = instructions;\n }\n\n static parse(pos, glyf) {\n const spos = pos;\n const transf = [];\n let flags = glyf.getUint16(pos);\n const glyphIndex = glyf.getUint16(pos + 2);\n pos += 4;\n\n let argument1, argument2;\n if (flags & ARG_1_AND_2_ARE_WORDS) {\n if (flags & ARGS_ARE_XY_VALUES) {\n argument1 = glyf.getInt16(pos);\n argument2 = glyf.getInt16(pos + 2);\n } else {\n argument1 = glyf.getUint16(pos);\n argument2 = glyf.getUint16(pos + 2);\n }\n pos += 4;\n flags ^= ARG_1_AND_2_ARE_WORDS;\n } else {\n if (flags & ARGS_ARE_XY_VALUES) {\n argument1 = glyf.getInt8(pos);\n argument2 = glyf.getInt8(pos + 1);\n } else {\n argument1 = glyf.getUint8(pos);\n argument2 = glyf.getUint8(pos + 1);\n }\n pos += 2;\n }\n\n if (flags & WE_HAVE_A_SCALE) {\n // Single F2.14.\n transf.push(glyf.getUint16(pos));\n pos += 2;\n } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) {\n // Two F2.14.\n transf.push(glyf.getUint16(pos), glyf.getUint16(pos + 2));\n pos += 4;\n } else if (flags & WE_HAVE_A_TWO_BY_TWO) {\n // Four F2.14.\n transf.push(\n glyf.getUint16(pos),\n glyf.getUint16(pos + 2),\n glyf.getUint16(pos + 4),\n glyf.getUint16(pos + 6)\n );\n pos += 8;\n }\n\n let instructions = null;\n if (flags & WE_HAVE_INSTRUCTIONS) {\n const instructionLength = glyf.getUint16(pos);\n pos += 2;\n instructions = new Uint8Array(glyf).slice(pos, pos + instructionLength);\n pos += instructionLength;\n }\n\n return [\n pos - spos,\n new CompositeGlyph({\n flags,\n glyphIndex,\n argument1,\n argument2,\n transf,\n instructions,\n }),\n ];\n }\n\n getSize() {\n let size = 2 + 2 + this.transf.length * 2;\n if (this.flags & WE_HAVE_INSTRUCTIONS) {\n size += 2 + this.instructions.length;\n }\n\n size += 2;\n if (this.flags & 2) {\n // Arguments are signed.\n if (\n !(\n this.argument1 >= -128 &&\n this.argument1 <= 127 &&\n this.argument2 >= -128 &&\n this.argument2 <= 127\n )\n ) {\n size += 2;\n }\n } else {\n if (\n !(\n this.argument1 >= 0 &&\n this.argument1 <= 255 &&\n this.argument2 >= 0 &&\n this.argument2 <= 255\n )\n ) {\n size += 2;\n }\n }\n\n return size;\n }\n\n write(pos, buf) {\n const spos = pos;\n\n if (this.flags & ARGS_ARE_XY_VALUES) {\n // Arguments are signed.\n if (\n !(\n this.argument1 >= -128 &&\n this.argument1 <= 127 &&\n this.argument2 >= -128 &&\n this.argument2 <= 127\n )\n ) {\n this.flags |= ARG_1_AND_2_ARE_WORDS;\n }\n } else {\n if (\n !(\n this.argument1 >= 0 &&\n this.argument1 <= 255 &&\n this.argument2 >= 0 &&\n this.argument2 <= 255\n )\n ) {\n this.flags |= ARG_1_AND_2_ARE_WORDS;\n }\n }\n\n buf.setUint16(pos, this.flags);\n buf.setUint16(pos + 2, this.glyphIndex);\n pos += 4;\n\n if (this.flags & ARG_1_AND_2_ARE_WORDS) {\n if (this.flags & ARGS_ARE_XY_VALUES) {\n buf.setInt16(pos, this.argument1);\n buf.setInt16(pos + 2, this.argument2);\n } else {\n buf.setUint16(pos, this.argument1);\n buf.setUint16(pos + 2, this.argument2);\n }\n pos += 4;\n } else {\n buf.setUint8(pos, this.argument1);\n buf.setUint8(pos + 1, this.argument2);\n pos += 2;\n }\n\n if (this.flags & WE_HAVE_INSTRUCTIONS) {\n buf.setUint16(pos, this.instructions.length);\n pos += 2;\n // Write instructions.\n if (this.instructions.length) {\n new Uint8Array(buf.buffer, 0, buf.buffer.byteLength).set(\n this.instructions,\n pos\n );\n pos += this.instructions.length;\n }\n }\n\n return pos - spos;\n }\n\n scale(x, factor) {}\n}\n\nexport { GlyfTable };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { readUint32 } from \"./core_utils.js\";\nimport { string32 } from \"../shared/util.js\";\n\nfunction writeInt16(dest, offset, num) {\n dest[offset] = (num >> 8) & 0xff;\n dest[offset + 1] = num & 0xff;\n}\n\nfunction writeInt32(dest, offset, num) {\n dest[offset] = (num >> 24) & 0xff;\n dest[offset + 1] = (num >> 16) & 0xff;\n dest[offset + 2] = (num >> 8) & 0xff;\n dest[offset + 3] = num & 0xff;\n}\n\nfunction writeData(dest, offset, data) {\n if (data instanceof Uint8Array) {\n dest.set(data, offset);\n } else if (typeof data === \"string\") {\n for (let i = 0, ii = data.length; i < ii; i++) {\n dest[offset++] = data.charCodeAt(i) & 0xff;\n }\n } else {\n // treating everything else as array\n for (let i = 0, ii = data.length; i < ii; i++) {\n dest[offset++] = data[i] & 0xff;\n }\n }\n}\n\nconst OTF_HEADER_SIZE = 12;\nconst OTF_TABLE_ENTRY_SIZE = 16;\n\nclass OpenTypeFileBuilder {\n constructor(sfnt) {\n this.sfnt = sfnt;\n this.tables = Object.create(null);\n }\n\n static getSearchParams(entriesCount, entrySize) {\n let maxPower2 = 1,\n log2 = 0;\n while ((maxPower2 ^ entriesCount) > maxPower2) {\n maxPower2 <<= 1;\n log2++;\n }\n const searchRange = maxPower2 * entrySize;\n return {\n range: searchRange,\n entry: log2,\n rangeShift: entrySize * entriesCount - searchRange,\n };\n }\n\n toArray() {\n let sfnt = this.sfnt;\n\n // Tables needs to be written by ascendant alphabetic order\n const tables = this.tables;\n const tablesNames = Object.keys(tables);\n tablesNames.sort();\n const numTables = tablesNames.length;\n\n let i, j, jj, table, tableName;\n // layout the tables data\n let offset = OTF_HEADER_SIZE + numTables * OTF_TABLE_ENTRY_SIZE;\n const tableOffsets = [offset];\n for (i = 0; i < numTables; i++) {\n table = tables[tablesNames[i]];\n const paddedLength = ((table.length + 3) & ~3) >>> 0;\n offset += paddedLength;\n tableOffsets.push(offset);\n }\n\n const file = new Uint8Array(offset);\n // write the table data first (mostly for checksum)\n for (i = 0; i < numTables; i++) {\n table = tables[tablesNames[i]];\n writeData(file, tableOffsets[i], table);\n }\n\n // sfnt version (4 bytes)\n if (sfnt === \"true\") {\n // Windows hates the Mac TrueType sfnt version number\n sfnt = string32(0x00010000);\n }\n file[0] = sfnt.charCodeAt(0) & 0xff;\n file[1] = sfnt.charCodeAt(1) & 0xff;\n file[2] = sfnt.charCodeAt(2) & 0xff;\n file[3] = sfnt.charCodeAt(3) & 0xff;\n\n // numTables (2 bytes)\n writeInt16(file, 4, numTables);\n\n const searchParams = OpenTypeFileBuilder.getSearchParams(numTables, 16);\n\n // searchRange (2 bytes)\n writeInt16(file, 6, searchParams.range);\n // entrySelector (2 bytes)\n writeInt16(file, 8, searchParams.entry);\n // rangeShift (2 bytes)\n writeInt16(file, 10, searchParams.rangeShift);\n\n offset = OTF_HEADER_SIZE;\n // writing table entries\n for (i = 0; i < numTables; i++) {\n tableName = tablesNames[i];\n file[offset] = tableName.charCodeAt(0) & 0xff;\n file[offset + 1] = tableName.charCodeAt(1) & 0xff;\n file[offset + 2] = tableName.charCodeAt(2) & 0xff;\n file[offset + 3] = tableName.charCodeAt(3) & 0xff;\n\n // checksum\n let checksum = 0;\n for (j = tableOffsets[i], jj = tableOffsets[i + 1]; j < jj; j += 4) {\n const quad = readUint32(file, j);\n checksum = (checksum + quad) >>> 0;\n }\n writeInt32(file, offset + 4, checksum);\n\n // offset\n writeInt32(file, offset + 8, tableOffsets[i]);\n // length\n writeInt32(file, offset + 12, tables[tableName].length);\n\n offset += OTF_TABLE_ENTRY_SIZE;\n }\n return file;\n }\n\n addTable(tag, data) {\n if (tag in this.tables) {\n throw new Error(\"Table \" + tag + \" already exists\");\n }\n this.tables[tag] = data;\n }\n}\n\nexport { OpenTypeFileBuilder };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n CFF,\n CFFCharset,\n CFFCompiler,\n CFFHeader,\n CFFIndex,\n CFFPrivateDict,\n CFFStandardStrings,\n CFFStrings,\n CFFTopDict,\n} from \"./cff_parser.js\";\nimport { SEAC_ANALYSIS_ENABLED, type1FontGlyphMapping } from \"./fonts_utils.js\";\nimport { isWhiteSpace } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\nimport { Type1Parser } from \"./type1_parser.js\";\nimport { warn } from \"../shared/util.js\";\n\nfunction findBlock(streamBytes, signature, startIndex) {\n const streamBytesLength = streamBytes.length;\n const signatureLength = signature.length;\n const scanLength = streamBytesLength - signatureLength;\n\n let i = startIndex,\n found = false;\n while (i < scanLength) {\n let j = 0;\n while (j < signatureLength && streamBytes[i + j] === signature[j]) {\n j++;\n }\n if (j >= signatureLength) {\n // `signature` found, skip over whitespace.\n i += j;\n while (i < streamBytesLength && isWhiteSpace(streamBytes[i])) {\n i++;\n }\n found = true;\n break;\n }\n i++;\n }\n return {\n found,\n length: i,\n };\n}\n\nfunction getHeaderBlock(stream, suggestedLength) {\n const EEXEC_SIGNATURE = [0x65, 0x65, 0x78, 0x65, 0x63];\n\n const streamStartPos = stream.pos; // Save the initial stream position.\n let headerBytes, headerBytesLength, block;\n try {\n headerBytes = stream.getBytes(suggestedLength);\n headerBytesLength = headerBytes.length;\n } catch (ex) {\n // Ignore errors if the `suggestedLength` is huge enough that a Uint8Array\n // cannot hold the result of `getBytes`, and fallback to simply checking\n // the entire stream (fixes issue3928.pdf).\n }\n\n if (headerBytesLength === suggestedLength) {\n // Most of the time `suggestedLength` is correct, so to speed things up we\n // initially only check the last few bytes to see if the header was found.\n // Otherwise we (potentially) check the entire stream to prevent errors in\n // `Type1Parser` (fixes issue5686.pdf).\n block = findBlock(\n headerBytes,\n EEXEC_SIGNATURE,\n suggestedLength - 2 * EEXEC_SIGNATURE.length\n );\n\n if (block.found && block.length === suggestedLength) {\n return {\n stream: new Stream(headerBytes),\n length: suggestedLength,\n };\n }\n }\n warn('Invalid \"Length1\" property in Type1 font -- trying to recover.');\n stream.pos = streamStartPos; // Reset the stream position.\n\n const SCAN_BLOCK_LENGTH = 2048;\n let actualLength;\n while (true) {\n const scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n block = findBlock(scanBytes, EEXEC_SIGNATURE, 0);\n\n if (block.length === 0) {\n break;\n }\n stream.pos += block.length; // Update the stream position.\n\n if (block.found) {\n actualLength = stream.pos - streamStartPos;\n break;\n }\n }\n stream.pos = streamStartPos; // Reset the stream position.\n\n if (actualLength) {\n return {\n stream: new Stream(stream.getBytes(actualLength)),\n length: actualLength,\n };\n }\n warn('Unable to recover \"Length1\" property in Type1 font -- using as is.');\n return {\n stream: new Stream(stream.getBytes(suggestedLength)),\n length: suggestedLength,\n };\n}\n\nfunction getEexecBlock(stream, suggestedLength) {\n // We should ideally parse the eexec block to ensure that `suggestedLength`\n // is correct, so we don't truncate the block data if it's too small.\n // However, this would also require checking if the fixed-content portion\n // exists (using the 'Length3' property), and ensuring that it's valid.\n //\n // Given that `suggestedLength` almost always is correct, all the validation\n // would require a great deal of unnecessary parsing for most fonts.\n // To save time, we always fetch the entire stream instead, which also avoid\n // issues if `suggestedLength` is huge (see comment in `getHeaderBlock`).\n //\n // NOTE: This means that the function can include the fixed-content portion\n // in the returned eexec block. In practice this does *not* seem to matter,\n // since `Type1Parser_extractFontProgram` will skip over any non-commands.\n const eexecBytes = stream.getBytes();\n return {\n stream: new Stream(eexecBytes),\n length: eexecBytes.length,\n };\n}\n\n/**\n * Type1Font is also a CIDFontType0.\n */\nclass Type1Font {\n constructor(name, file, properties) {\n // Some bad generators embed pfb file as is, we have to strip 6-byte header.\n // Also, length1 and length2 might be off by 6 bytes as well.\n // http://www.math.ubc.ca/~cass/piscript/type1.pdf\n const PFB_HEADER_SIZE = 6;\n let headerBlockLength = properties.length1;\n let eexecBlockLength = properties.length2;\n let pfbHeader = file.peekBytes(PFB_HEADER_SIZE);\n const pfbHeaderPresent = pfbHeader[0] === 0x80 && pfbHeader[1] === 0x01;\n if (pfbHeaderPresent) {\n file.skip(PFB_HEADER_SIZE);\n headerBlockLength =\n (pfbHeader[5] << 24) |\n (pfbHeader[4] << 16) |\n (pfbHeader[3] << 8) |\n pfbHeader[2];\n }\n\n // Get the data block containing glyphs and subrs information\n const headerBlock = getHeaderBlock(file, headerBlockLength);\n const headerBlockParser = new Type1Parser(\n headerBlock.stream,\n false,\n SEAC_ANALYSIS_ENABLED\n );\n headerBlockParser.extractFontHeader(properties);\n\n if (pfbHeaderPresent) {\n pfbHeader = file.getBytes(PFB_HEADER_SIZE);\n eexecBlockLength =\n (pfbHeader[5] << 24) |\n (pfbHeader[4] << 16) |\n (pfbHeader[3] << 8) |\n pfbHeader[2];\n }\n\n // Decrypt the data blocks and retrieve it's content\n const eexecBlock = getEexecBlock(file, eexecBlockLength);\n const eexecBlockParser = new Type1Parser(\n eexecBlock.stream,\n true,\n SEAC_ANALYSIS_ENABLED\n );\n const data = eexecBlockParser.extractFontProgram(properties);\n for (const key in data.properties) {\n properties[key] = data.properties[key];\n }\n\n const charstrings = data.charstrings;\n const type2Charstrings = this.getType2Charstrings(charstrings);\n const subrs = this.getType2Subrs(data.subrs);\n\n this.charstrings = charstrings;\n this.data = this.wrap(\n name,\n type2Charstrings,\n this.charstrings,\n subrs,\n properties\n );\n this.seacs = this.getSeacs(data.charstrings);\n }\n\n get numGlyphs() {\n return this.charstrings.length + 1;\n }\n\n getCharset() {\n const charset = [\".notdef\"];\n const charstrings = this.charstrings;\n for (let glyphId = 0; glyphId < charstrings.length; glyphId++) {\n charset.push(charstrings[glyphId].glyphName);\n }\n return charset;\n }\n\n getGlyphMapping(properties) {\n const charstrings = this.charstrings;\n\n if (properties.composite) {\n const charCodeToGlyphId = Object.create(null);\n // Map CIDs directly to GIDs.\n for (\n let glyphId = 0, charstringsLen = charstrings.length;\n glyphId < charstringsLen;\n glyphId++\n ) {\n const charCode = properties.cMap.charCodeOf(glyphId);\n // Add 1 because glyph 0 is duplicated.\n charCodeToGlyphId[charCode] = glyphId + 1;\n }\n return charCodeToGlyphId;\n }\n\n const glyphNames = [\".notdef\"];\n let builtInEncoding, glyphId;\n for (glyphId = 0; glyphId < charstrings.length; glyphId++) {\n glyphNames.push(charstrings[glyphId].glyphName);\n }\n const encoding = properties.builtInEncoding;\n if (encoding) {\n builtInEncoding = Object.create(null);\n for (const charCode in encoding) {\n glyphId = glyphNames.indexOf(encoding[charCode]);\n if (glyphId >= 0) {\n builtInEncoding[charCode] = glyphId;\n }\n }\n }\n\n return type1FontGlyphMapping(properties, builtInEncoding, glyphNames);\n }\n\n hasGlyphId(id) {\n if (id < 0 || id >= this.numGlyphs) {\n return false;\n }\n if (id === 0) {\n // notdef is always defined.\n return true;\n }\n const glyph = this.charstrings[id - 1];\n return glyph.charstring.length > 0;\n }\n\n getSeacs(charstrings) {\n const seacMap = [];\n for (let i = 0, ii = charstrings.length; i < ii; i++) {\n const charstring = charstrings[i];\n if (charstring.seac) {\n // Offset by 1 for .notdef\n seacMap[i + 1] = charstring.seac;\n }\n }\n return seacMap;\n }\n\n getType2Charstrings(type1Charstrings) {\n const type2Charstrings = [];\n for (let i = 0, ii = type1Charstrings.length; i < ii; i++) {\n type2Charstrings.push(type1Charstrings[i].charstring);\n }\n return type2Charstrings;\n }\n\n getType2Subrs(type1Subrs) {\n let bias = 0;\n const count = type1Subrs.length;\n if (count < 1133) {\n bias = 107;\n } else if (count < 33769) {\n bias = 1131;\n } else {\n bias = 32768;\n }\n\n // Add a bunch of empty subrs to deal with the Type2 bias\n const type2Subrs = [];\n let i;\n for (i = 0; i < bias; i++) {\n type2Subrs.push([0x0b]);\n }\n\n for (i = 0; i < count; i++) {\n type2Subrs.push(type1Subrs[i]);\n }\n\n return type2Subrs;\n }\n\n wrap(name, glyphs, charstrings, subrs, properties) {\n const cff = new CFF();\n cff.header = new CFFHeader(1, 0, 4, 4);\n\n cff.names = [name];\n\n const topDict = new CFFTopDict();\n // CFF strings IDs 0...390 are predefined names, so refering\n // to entries in our own String INDEX starts at SID 391.\n topDict.setByName(\"version\", 391);\n topDict.setByName(\"Notice\", 392);\n topDict.setByName(\"FullName\", 393);\n topDict.setByName(\"FamilyName\", 394);\n topDict.setByName(\"Weight\", 395);\n topDict.setByName(\"Encoding\", null); // placeholder\n topDict.setByName(\"FontMatrix\", properties.fontMatrix);\n topDict.setByName(\"FontBBox\", properties.bbox);\n topDict.setByName(\"charset\", null); // placeholder\n topDict.setByName(\"CharStrings\", null); // placeholder\n topDict.setByName(\"Private\", null); // placeholder\n cff.topDict = topDict;\n\n const strings = new CFFStrings();\n strings.add(\"Version 0.11\"); // Version\n strings.add(\"See original notice\"); // Notice\n strings.add(name); // FullName\n strings.add(name); // FamilyName\n strings.add(\"Medium\"); // Weight\n cff.strings = strings;\n\n cff.globalSubrIndex = new CFFIndex();\n\n const count = glyphs.length;\n const charsetArray = [\".notdef\"];\n let i, ii;\n for (i = 0; i < count; i++) {\n const glyphName = charstrings[i].glyphName;\n const index = CFFStandardStrings.indexOf(glyphName);\n if (index === -1) {\n strings.add(glyphName);\n }\n charsetArray.push(glyphName);\n }\n cff.charset = new CFFCharset(false, 0, charsetArray);\n\n const charStringsIndex = new CFFIndex();\n charStringsIndex.add([0x8b, 0x0e]); // .notdef\n for (i = 0; i < count; i++) {\n charStringsIndex.add(glyphs[i]);\n }\n cff.charStrings = charStringsIndex;\n\n const privateDict = new CFFPrivateDict();\n privateDict.setByName(\"Subrs\", null); // placeholder\n const fields = [\n \"BlueValues\",\n \"OtherBlues\",\n \"FamilyBlues\",\n \"FamilyOtherBlues\",\n \"StemSnapH\",\n \"StemSnapV\",\n \"BlueShift\",\n \"BlueFuzz\",\n \"BlueScale\",\n \"LanguageGroup\",\n \"ExpansionFactor\",\n \"ForceBold\",\n \"StdHW\",\n \"StdVW\",\n ];\n for (i = 0, ii = fields.length; i < ii; i++) {\n const field = fields[i];\n if (!(field in properties.privateData)) {\n continue;\n }\n const value = properties.privateData[field];\n if (Array.isArray(value)) {\n // All of the private dictionary array data in CFF must be stored as\n // \"delta-encoded\" numbers.\n for (let j = value.length - 1; j > 0; j--) {\n value[j] -= value[j - 1]; // ... difference from previous value\n }\n }\n privateDict.setByName(field, value);\n }\n cff.topDict.privateDict = privateDict;\n\n const subrIndex = new CFFIndex();\n for (i = 0, ii = subrs.length; i < ii; i++) {\n subrIndex.add(subrs[i]);\n }\n privateDict.subrsIndex = subrIndex;\n\n const compiler = new CFFCompiler(cff);\n return compiler.compile();\n }\n}\n\nexport { Type1Font };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getEncoding } from \"./encodings.js\";\nimport { isWhiteSpace } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\nimport { warn } from \"../shared/util.js\";\n\n// Hinting is currently disabled due to unknown problems on windows\n// in tracemonkey and various other pdfs with type1 fonts.\nconst HINTING_ENABLED = false;\n\n/*\n * CharStrings are encoded following the the CharString Encoding sequence\n * describe in Chapter 6 of the \"Adobe Type1 Font Format\" specification.\n * The value in a byte indicates a command, a number, or subsequent bytes\n * that are to be interpreted in a special way.\n *\n * CharString Number Encoding:\n * A CharString byte containing the values from 32 through 255 inclusive\n * indicate an integer. These values are decoded in four ranges.\n *\n * 1. A CharString byte containing a value, v, between 32 and 246 inclusive,\n * indicate the integer v - 139. Thus, the integer values from -107 through\n * 107 inclusive may be encoded in single byte.\n *\n * 2. A CharString byte containing a value, v, between 247 and 250 inclusive,\n * indicates an integer involving the next byte, w, according to the formula:\n * [(v - 247) x 256] + w + 108\n *\n * 3. A CharString byte containing a value, v, between 251 and 254 inclusive,\n * indicates an integer involving the next byte, w, according to the formula:\n * -[(v - 251) * 256] - w - 108\n *\n * 4. A CharString containing the value 255 indicates that the next 4 bytes\n * are a two complement signed integer. The first of these bytes contains the\n * highest order bits, the second byte contains the next higher order bits\n * and the fourth byte contain the lowest order bits.\n *\n *\n * CharString Command Encoding:\n * CharStrings commands are encoded in 1 or 2 bytes.\n *\n * Single byte commands are encoded in 1 byte that contains a value between\n * 0 and 31 inclusive.\n * If a command byte contains the value 12, then the value in the next byte\n * indicates a command. This \"escape\" mechanism allows many extra commands\n * to be encoded and this encoding technique helps to minimize the length of\n * the charStrings.\n */\nconst Type1CharString = (function Type1CharStringClosure() {\n const COMMAND_MAP = {\n hstem: [1],\n vstem: [3],\n vmoveto: [4],\n rlineto: [5],\n hlineto: [6],\n vlineto: [7],\n rrcurveto: [8],\n callsubr: [10],\n flex: [12, 35],\n drop: [12, 18],\n endchar: [14],\n rmoveto: [21],\n hmoveto: [22],\n vhcurveto: [30],\n hvcurveto: [31],\n };\n\n // eslint-disable-next-line no-shadow\n class Type1CharString {\n constructor() {\n this.width = 0;\n this.lsb = 0;\n this.flexing = false;\n this.output = [];\n this.stack = [];\n }\n\n convert(encoded, subrs, seacAnalysisEnabled) {\n const count = encoded.length;\n let error = false;\n let wx, sbx, subrNumber;\n for (let i = 0; i < count; i++) {\n let value = encoded[i];\n if (value < 32) {\n if (value === 12) {\n value = (value << 8) + encoded[++i];\n }\n switch (value) {\n case 1: // hstem\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.hstem);\n break;\n case 3: // vstem\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.vstem);\n break;\n case 4: // vmoveto\n if (this.flexing) {\n if (this.stack.length < 1) {\n error = true;\n break;\n }\n // Add the dx for flex and but also swap the values so they are\n // the right order.\n const dy = this.stack.pop();\n this.stack.push(0, dy);\n break;\n }\n error = this.executeCommand(1, COMMAND_MAP.vmoveto);\n break;\n case 5: // rlineto\n error = this.executeCommand(2, COMMAND_MAP.rlineto);\n break;\n case 6: // hlineto\n error = this.executeCommand(1, COMMAND_MAP.hlineto);\n break;\n case 7: // vlineto\n error = this.executeCommand(1, COMMAND_MAP.vlineto);\n break;\n case 8: // rrcurveto\n error = this.executeCommand(6, COMMAND_MAP.rrcurveto);\n break;\n case 9: // closepath\n // closepath is a Type1 command that does not take argument and is\n // useless in Type2 and it can simply be ignored.\n this.stack = [];\n break;\n case 10: // callsubr\n if (this.stack.length < 1) {\n error = true;\n break;\n }\n subrNumber = this.stack.pop();\n if (!subrs[subrNumber]) {\n error = true;\n break;\n }\n error = this.convert(\n subrs[subrNumber],\n subrs,\n seacAnalysisEnabled\n );\n break;\n case 11: // return\n return error;\n case 13: // hsbw\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n // To convert to type2 we have to move the width value to the\n // first part of the charstring and then use hmoveto with lsb.\n wx = this.stack.pop();\n sbx = this.stack.pop();\n this.lsb = sbx;\n this.width = wx;\n this.stack.push(wx, sbx);\n error = this.executeCommand(2, COMMAND_MAP.hmoveto);\n break;\n case 14: // endchar\n this.output.push(COMMAND_MAP.endchar[0]);\n break;\n case 21: // rmoveto\n if (this.flexing) {\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.rmoveto);\n break;\n case 22: // hmoveto\n if (this.flexing) {\n // Add the dy for flex.\n this.stack.push(0);\n break;\n }\n error = this.executeCommand(1, COMMAND_MAP.hmoveto);\n break;\n case 30: // vhcurveto\n error = this.executeCommand(4, COMMAND_MAP.vhcurveto);\n break;\n case 31: // hvcurveto\n error = this.executeCommand(4, COMMAND_MAP.hvcurveto);\n break;\n case (12 << 8) + 0: // dotsection\n // dotsection is a Type1 command to specify some hinting feature\n // for dots that do not take a parameter and it can safely be\n // ignored for Type2.\n this.stack = [];\n break;\n case (12 << 8) + 1: // vstem3\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n // [vh]stem3 are Type1 only and Type2 supports [vh]stem with\n // multiple parameters, so instead of returning [vh]stem3 take a\n // shortcut and return [vhstem] instead.\n error = this.executeCommand(2, COMMAND_MAP.vstem);\n break;\n case (12 << 8) + 2: // hstem3\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n // See vstem3.\n error = this.executeCommand(2, COMMAND_MAP.hstem);\n break;\n case (12 << 8) + 6: // seac\n // seac is like type 2's special endchar but it doesn't use the\n // first argument asb, so remove it.\n if (seacAnalysisEnabled) {\n const asb = this.stack[this.stack.length - 5];\n this.seac = this.stack.splice(-4, 4);\n this.seac[0] += this.lsb - asb;\n error = this.executeCommand(0, COMMAND_MAP.endchar);\n } else {\n error = this.executeCommand(4, COMMAND_MAP.endchar);\n }\n break;\n case (12 << 8) + 7: // sbw\n if (this.stack.length < 4) {\n error = true;\n break;\n }\n // To convert to type2 we have to move the width value to the\n // first part of the charstring and then use rmoveto with\n // (dx, dy). The height argument will not be used for vmtx and\n // vhea tables reconstruction -- ignoring it.\n this.stack.pop(); // wy\n wx = this.stack.pop();\n const sby = this.stack.pop();\n sbx = this.stack.pop();\n this.lsb = sbx;\n this.width = wx;\n this.stack.push(wx, sbx, sby);\n error = this.executeCommand(3, COMMAND_MAP.rmoveto);\n break;\n case (12 << 8) + 12: // div\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n const num2 = this.stack.pop();\n const num1 = this.stack.pop();\n this.stack.push(num1 / num2);\n break;\n case (12 << 8) + 16: // callothersubr\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n subrNumber = this.stack.pop();\n const numArgs = this.stack.pop();\n if (subrNumber === 0 && numArgs === 3) {\n const flexArgs = this.stack.splice(this.stack.length - 17, 17);\n this.stack.push(\n flexArgs[2] + flexArgs[0], // bcp1x + rpx\n flexArgs[3] + flexArgs[1], // bcp1y + rpy\n flexArgs[4], // bcp2x\n flexArgs[5], // bcp2y\n flexArgs[6], // p2x\n flexArgs[7], // p2y\n flexArgs[8], // bcp3x\n flexArgs[9], // bcp3y\n flexArgs[10], // bcp4x\n flexArgs[11], // bcp4y\n flexArgs[12], // p3x\n flexArgs[13], // p3y\n flexArgs[14] // flexDepth\n // 15 = finalx unused by flex\n // 16 = finaly unused by flex\n );\n error = this.executeCommand(13, COMMAND_MAP.flex, true);\n this.flexing = false;\n this.stack.push(flexArgs[15], flexArgs[16]);\n } else if (subrNumber === 1 && numArgs === 0) {\n this.flexing = true;\n }\n break;\n case (12 << 8) + 17: // pop\n // Ignore this since it is only used with othersubr.\n break;\n case (12 << 8) + 33: // setcurrentpoint\n // Ignore for now.\n this.stack = [];\n break;\n default:\n warn('Unknown type 1 charstring command of \"' + value + '\"');\n break;\n }\n if (error) {\n break;\n }\n continue;\n } else if (value <= 246) {\n value -= 139;\n } else if (value <= 250) {\n value = (value - 247) * 256 + encoded[++i] + 108;\n } else if (value <= 254) {\n value = -((value - 251) * 256) - encoded[++i] - 108;\n } else {\n value =\n ((encoded[++i] & 0xff) << 24) |\n ((encoded[++i] & 0xff) << 16) |\n ((encoded[++i] & 0xff) << 8) |\n ((encoded[++i] & 0xff) << 0);\n }\n this.stack.push(value);\n }\n return error;\n }\n\n executeCommand(howManyArgs, command, keepStack) {\n const stackLength = this.stack.length;\n if (howManyArgs > stackLength) {\n return true;\n }\n const start = stackLength - howManyArgs;\n for (let i = start; i < stackLength; i++) {\n let value = this.stack[i];\n if (Number.isInteger(value)) {\n this.output.push(28, (value >> 8) & 0xff, value & 0xff);\n } else {\n // fixed point\n value = (65536 * value) | 0;\n this.output.push(\n 255,\n (value >> 24) & 0xff,\n (value >> 16) & 0xff,\n (value >> 8) & 0xff,\n value & 0xff\n );\n }\n }\n this.output.push.apply(this.output, command);\n if (keepStack) {\n this.stack.splice(start, howManyArgs);\n } else {\n this.stack.length = 0;\n }\n return false;\n }\n }\n\n return Type1CharString;\n})();\n\n/*\n * Type1Parser encapsulate the needed code for parsing a Type1 font\n * program. Some of its logic depends on the Type2 charstrings\n * structure.\n * Note: this doesn't really parse the font since that would require evaluation\n * of PostScript, but it is possible in most cases to extract what we need\n * without a full parse.\n */\nconst Type1Parser = (function Type1ParserClosure() {\n /*\n * Decrypt a Sequence of Ciphertext Bytes to Produce the Original Sequence\n * of Plaintext Bytes. The function took a key as a parameter which can be\n * for decrypting the eexec block of for decoding charStrings.\n */\n const EEXEC_ENCRYPT_KEY = 55665;\n const CHAR_STRS_ENCRYPT_KEY = 4330;\n\n function isHexDigit(code) {\n return (\n (code >= 48 && code <= 57) || // '0'-'9'\n (code >= 65 && code <= 70) || // 'A'-'F'\n (code >= 97 && code <= 102) // 'a'-'f'\n );\n }\n\n function decrypt(data, key, discardNumber) {\n if (discardNumber >= data.length) {\n return new Uint8Array(0);\n }\n const c1 = 52845,\n c2 = 22719;\n let r = key | 0,\n i,\n j;\n for (i = 0; i < discardNumber; i++) {\n r = ((data[i] + r) * c1 + c2) & ((1 << 16) - 1);\n }\n const count = data.length - discardNumber;\n const decrypted = new Uint8Array(count);\n for (i = discardNumber, j = 0; j < count; i++, j++) {\n const value = data[i];\n decrypted[j] = value ^ (r >> 8);\n r = ((value + r) * c1 + c2) & ((1 << 16) - 1);\n }\n return decrypted;\n }\n\n function decryptAscii(data, key, discardNumber) {\n const c1 = 52845,\n c2 = 22719;\n let r = key | 0;\n const count = data.length,\n maybeLength = count >>> 1;\n const decrypted = new Uint8Array(maybeLength);\n let i, j;\n for (i = 0, j = 0; i < count; i++) {\n const digit1 = data[i];\n if (!isHexDigit(digit1)) {\n continue;\n }\n i++;\n let digit2;\n while (i < count && !isHexDigit((digit2 = data[i]))) {\n i++;\n }\n if (i < count) {\n const value = parseInt(String.fromCharCode(digit1, digit2), 16);\n decrypted[j++] = value ^ (r >> 8);\n r = ((value + r) * c1 + c2) & ((1 << 16) - 1);\n }\n }\n return decrypted.slice(discardNumber, j);\n }\n\n function isSpecial(c) {\n return (\n c === /* '/' = */ 0x2f ||\n c === /* '[' = */ 0x5b ||\n c === /* ']' = */ 0x5d ||\n c === /* '{' = */ 0x7b ||\n c === /* '}' = */ 0x7d ||\n c === /* '(' = */ 0x28 ||\n c === /* ')' = */ 0x29\n );\n }\n\n // eslint-disable-next-line no-shadow\n class Type1Parser {\n constructor(stream, encrypted, seacAnalysisEnabled) {\n if (encrypted) {\n const data = stream.getBytes();\n const isBinary = !(\n (isHexDigit(data[0]) || isWhiteSpace(data[0])) &&\n isHexDigit(data[1]) &&\n isHexDigit(data[2]) &&\n isHexDigit(data[3]) &&\n isHexDigit(data[4]) &&\n isHexDigit(data[5]) &&\n isHexDigit(data[6]) &&\n isHexDigit(data[7])\n );\n stream = new Stream(\n isBinary\n ? decrypt(data, EEXEC_ENCRYPT_KEY, 4)\n : decryptAscii(data, EEXEC_ENCRYPT_KEY, 4)\n );\n }\n this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n\n this.stream = stream;\n this.nextChar();\n }\n\n readNumberArray() {\n this.getToken(); // read '[' or '{' (arrays can start with either)\n const array = [];\n while (true) {\n const token = this.getToken();\n if (token === null || token === \"]\" || token === \"}\") {\n break;\n }\n array.push(parseFloat(token || 0));\n }\n return array;\n }\n\n readNumber() {\n const token = this.getToken();\n return parseFloat(token || 0);\n }\n\n readInt() {\n // Use '| 0' to prevent setting a double into length such as the double\n // does not flow into the loop variable.\n const token = this.getToken();\n return parseInt(token || 0, 10) | 0;\n }\n\n readBoolean() {\n const token = this.getToken();\n // Use 1 and 0 since that's what type2 charstrings use.\n return token === \"true\" ? 1 : 0;\n }\n\n nextChar() {\n return (this.currentChar = this.stream.getByte());\n }\n\n prevChar() {\n this.stream.skip(-2);\n return (this.currentChar = this.stream.getByte());\n }\n\n getToken() {\n // Eat whitespace and comments.\n let comment = false;\n let ch = this.currentChar;\n while (true) {\n if (ch === -1) {\n return null;\n }\n\n if (comment) {\n if (ch === 0x0a || ch === 0x0d) {\n comment = false;\n }\n } else if (ch === /* '%' = */ 0x25) {\n comment = true;\n } else if (!isWhiteSpace(ch)) {\n break;\n }\n ch = this.nextChar();\n }\n if (isSpecial(ch)) {\n this.nextChar();\n return String.fromCharCode(ch);\n }\n let token = \"\";\n do {\n token += String.fromCharCode(ch);\n ch = this.nextChar();\n } while (ch >= 0 && !isWhiteSpace(ch) && !isSpecial(ch));\n return token;\n }\n\n readCharStrings(bytes, lenIV) {\n if (lenIV === -1) {\n // This isn't in the spec, but Adobe's tx program handles -1\n // as plain text.\n return bytes;\n }\n return decrypt(bytes, CHAR_STRS_ENCRYPT_KEY, lenIV);\n }\n\n /*\n * Returns an object containing a Subrs array and a CharStrings\n * array extracted from and eexec encrypted block of data\n */\n extractFontProgram(properties) {\n const stream = this.stream;\n\n const subrs = [],\n charstrings = [];\n const privateData = Object.create(null);\n privateData.lenIV = 4;\n const program = {\n subrs: [],\n charstrings: [],\n properties: {\n privateData,\n },\n };\n let token, length, data, lenIV, encoded;\n while ((token = this.getToken()) !== null) {\n if (token !== \"/\") {\n continue;\n }\n token = this.getToken();\n switch (token) {\n case \"CharStrings\":\n // The number immediately following CharStrings must be greater or\n // equal to the number of CharStrings.\n this.getToken();\n this.getToken(); // read in 'dict'\n this.getToken(); // read in 'dup'\n this.getToken(); // read in 'begin'\n while (true) {\n token = this.getToken();\n if (token === null || token === \"end\") {\n break;\n }\n\n if (token !== \"/\") {\n continue;\n }\n const glyph = this.getToken();\n length = this.readInt();\n this.getToken(); // read in 'RD' or '-|'\n data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n lenIV = program.properties.privateData.lenIV;\n encoded = this.readCharStrings(data, lenIV);\n this.nextChar();\n token = this.getToken(); // read in 'ND' or '|-'\n if (token === \"noaccess\") {\n this.getToken(); // read in 'def'\n } else if (token === \"/\") {\n // The expected 'ND' or '|-' token is missing, avoid swallowing\n // the start of the next glyph (fixes issue14462_reduced.pdf).\n this.prevChar();\n }\n charstrings.push({\n glyph,\n encoded,\n });\n }\n break;\n case \"Subrs\":\n this.readInt(); // num\n this.getToken(); // read in 'array'\n while (this.getToken() === \"dup\") {\n const index = this.readInt();\n length = this.readInt();\n this.getToken(); // read in 'RD' or '-|'\n data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n lenIV = program.properties.privateData.lenIV;\n encoded = this.readCharStrings(data, lenIV);\n this.nextChar();\n token = this.getToken(); // read in 'NP' or '|'\n if (token === \"noaccess\") {\n this.getToken(); // read in 'put'\n }\n subrs[index] = encoded;\n }\n break;\n case \"BlueValues\":\n case \"OtherBlues\":\n case \"FamilyBlues\":\n case \"FamilyOtherBlues\":\n const blueArray = this.readNumberArray();\n // *Blue* values may contain invalid data: disables reading of\n // those values when hinting is disabled.\n if (\n blueArray.length > 0 &&\n blueArray.length % 2 === 0 &&\n HINTING_ENABLED\n ) {\n program.properties.privateData[token] = blueArray;\n }\n break;\n case \"StemSnapH\":\n case \"StemSnapV\":\n program.properties.privateData[token] = this.readNumberArray();\n break;\n case \"StdHW\":\n case \"StdVW\":\n program.properties.privateData[token] = this.readNumberArray()[0];\n break;\n case \"BlueShift\":\n case \"lenIV\":\n case \"BlueFuzz\":\n case \"BlueScale\":\n case \"LanguageGroup\":\n case \"ExpansionFactor\":\n program.properties.privateData[token] = this.readNumber();\n break;\n case \"ForceBold\":\n program.properties.privateData[token] = this.readBoolean();\n break;\n }\n }\n\n for (let i = 0; i < charstrings.length; i++) {\n const glyph = charstrings[i].glyph;\n encoded = charstrings[i].encoded;\n const charString = new Type1CharString();\n const error = charString.convert(\n encoded,\n subrs,\n this.seacAnalysisEnabled\n );\n let output = charString.output;\n if (error) {\n // It seems when FreeType encounters an error while evaluating a glyph\n // that it completely ignores the glyph so we'll mimic that behaviour\n // here and put an endchar to make the validator happy.\n output = [14];\n }\n const charStringObject = {\n glyphName: glyph,\n charstring: output,\n width: charString.width,\n lsb: charString.lsb,\n seac: charString.seac,\n };\n if (glyph === \".notdef\") {\n // Make sure .notdef is at index zero (issue #11477).\n program.charstrings.unshift(charStringObject);\n } else {\n program.charstrings.push(charStringObject);\n }\n\n // Attempt to replace missing widths, from the font dictionary /Widths\n // entry, with ones from the font data (fixes issue11150_reduced.pdf).\n if (properties.builtInEncoding) {\n const index = properties.builtInEncoding.indexOf(glyph);\n if (\n index > -1 &&\n properties.widths[index] === undefined &&\n index >= properties.firstChar &&\n index <= properties.lastChar\n ) {\n properties.widths[index] = charString.width;\n }\n }\n }\n\n return program;\n }\n\n extractFontHeader(properties) {\n let token;\n while ((token = this.getToken()) !== null) {\n if (token !== \"/\") {\n continue;\n }\n token = this.getToken();\n switch (token) {\n case \"FontMatrix\":\n const matrix = this.readNumberArray();\n properties.fontMatrix = matrix;\n break;\n case \"Encoding\":\n const encodingArg = this.getToken();\n let encoding;\n if (!/^\\d+$/.test(encodingArg)) {\n // encoding name is specified\n encoding = getEncoding(encodingArg);\n } else {\n encoding = [];\n const size = parseInt(encodingArg, 10) | 0;\n this.getToken(); // read in 'array'\n\n for (let j = 0; j < size; j++) {\n token = this.getToken();\n // skipping till first dup or def (e.g. ignoring for statement)\n while (token !== \"dup\" && token !== \"def\") {\n token = this.getToken();\n if (token === null) {\n return; // invalid header\n }\n }\n if (token === \"def\") {\n break; // read all array data\n }\n const index = this.readInt();\n this.getToken(); // read in '/'\n const glyph = this.getToken();\n encoding[index] = glyph;\n this.getToken(); // read the in 'put'\n }\n }\n properties.builtInEncoding = encoding;\n break;\n case \"FontBBox\":\n const fontBBox = this.readNumberArray();\n // adjusting ascent/descent\n properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n properties.ascentScaled = true;\n break;\n }\n }\n }\n }\n\n return Type1Parser;\n})();\n\nexport { Type1Parser };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n FormatError,\n info,\n shadow,\n unreachable,\n UNSUPPORTED_FEATURES,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { MissingDataException } from \"./core_utils.js\";\n\nconst ShadingType = {\n FUNCTION_BASED: 1,\n AXIAL: 2,\n RADIAL: 3,\n FREE_FORM_MESH: 4,\n LATTICE_FORM_MESH: 5,\n COONS_PATCH_MESH: 6,\n TENSOR_PATCH_MESH: 7,\n};\n\nclass Pattern {\n constructor() {\n unreachable(\"Cannot initialize Pattern.\");\n }\n\n static parseShading(\n shading,\n xref,\n res,\n handler,\n pdfFunctionFactory,\n localColorSpaceCache\n ) {\n const dict = shading instanceof BaseStream ? shading.dict : shading;\n const type = dict.get(\"ShadingType\");\n\n try {\n switch (type) {\n case ShadingType.AXIAL:\n case ShadingType.RADIAL:\n return new RadialAxialShading(\n dict,\n xref,\n res,\n pdfFunctionFactory,\n localColorSpaceCache\n );\n case ShadingType.FREE_FORM_MESH:\n case ShadingType.LATTICE_FORM_MESH:\n case ShadingType.COONS_PATCH_MESH:\n case ShadingType.TENSOR_PATCH_MESH:\n return new MeshShading(\n shading,\n xref,\n res,\n pdfFunctionFactory,\n localColorSpaceCache\n );\n default:\n throw new FormatError(\"Unsupported ShadingType: \" + type);\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n handler.send(\"UnsupportedFeature\", {\n featureId: UNSUPPORTED_FEATURES.shadingPattern,\n });\n warn(ex);\n return new DummyShading();\n }\n }\n}\n\nclass BaseShading {\n // A small number to offset the first/last color stops so we can insert ones\n // to support extend. Number.MIN_VALUE is too small and breaks the extend.\n static get SMALL_NUMBER() {\n return shadow(this, \"SMALL_NUMBER\", 1e-6);\n }\n\n constructor() {\n if (this.constructor === BaseShading) {\n unreachable(\"Cannot initialize BaseShading.\");\n }\n }\n\n getIR() {\n unreachable(\"Abstract method `getIR` called.\");\n }\n}\n\n// Radial and axial shading have very similar implementations\n// If needed, the implementations can be broken into two classes.\nclass RadialAxialShading extends BaseShading {\n constructor(dict, xref, resources, pdfFunctionFactory, localColorSpaceCache) {\n super();\n this.coordsArr = dict.getArray(\"Coords\");\n this.shadingType = dict.get(\"ShadingType\");\n const cs = ColorSpace.parse({\n cs: dict.getRaw(\"CS\") || dict.getRaw(\"ColorSpace\"),\n xref,\n resources,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n const bbox = dict.getArray(\"BBox\");\n if (Array.isArray(bbox) && bbox.length === 4) {\n this.bbox = Util.normalizeRect(bbox);\n } else {\n this.bbox = null;\n }\n\n let t0 = 0.0,\n t1 = 1.0;\n if (dict.has(\"Domain\")) {\n const domainArr = dict.getArray(\"Domain\");\n t0 = domainArr[0];\n t1 = domainArr[1];\n }\n\n let extendStart = false,\n extendEnd = false;\n if (dict.has(\"Extend\")) {\n const extendArr = dict.getArray(\"Extend\");\n extendStart = extendArr[0];\n extendEnd = extendArr[1];\n }\n\n if (\n this.shadingType === ShadingType.RADIAL &&\n (!extendStart || !extendEnd)\n ) {\n // Radial gradient only currently works if either circle is fully within\n // the other circle.\n const [x1, y1, r1, x2, y2, r2] = this.coordsArr;\n const distance = Math.hypot(x1 - x2, y1 - y2);\n if (r1 <= r2 + distance && r2 <= r1 + distance) {\n warn(\"Unsupported radial gradient.\");\n }\n }\n\n this.extendStart = extendStart;\n this.extendEnd = extendEnd;\n\n const fnObj = dict.getRaw(\"Function\");\n const fn = pdfFunctionFactory.createFromArray(fnObj);\n\n // 10 samples seems good enough for now, but probably won't work\n // if there are sharp color changes. Ideally, we would implement\n // the spec faithfully and add lossless optimizations.\n const NUMBER_OF_SAMPLES = 10;\n const step = (t1 - t0) / NUMBER_OF_SAMPLES;\n\n const colorStops = (this.colorStops = []);\n\n // Protect against bad domains.\n if (t0 >= t1 || step <= 0) {\n // Acrobat doesn't seem to handle these cases so we'll ignore for\n // now.\n info(\"Bad shading domain.\");\n return;\n }\n\n const color = new Float32Array(cs.numComps),\n ratio = new Float32Array(1);\n let rgbColor;\n for (let i = 0; i <= NUMBER_OF_SAMPLES; i++) {\n ratio[0] = t0 + i * step;\n fn(ratio, 0, color, 0);\n rgbColor = cs.getRgb(color, 0);\n const cssColor = Util.makeHexColor(rgbColor[0], rgbColor[1], rgbColor[2]);\n colorStops.push([i / NUMBER_OF_SAMPLES, cssColor]);\n }\n\n let background = \"transparent\";\n if (dict.has(\"Background\")) {\n rgbColor = cs.getRgb(dict.get(\"Background\"), 0);\n background = Util.makeHexColor(rgbColor[0], rgbColor[1], rgbColor[2]);\n }\n\n if (!extendStart) {\n // Insert a color stop at the front and offset the first real color stop\n // so it doesn't conflict with the one we insert.\n colorStops.unshift([0, background]);\n colorStops[1][0] += BaseShading.SMALL_NUMBER;\n }\n if (!extendEnd) {\n // Same idea as above in extendStart but for the end.\n colorStops[colorStops.length - 1][0] -= BaseShading.SMALL_NUMBER;\n colorStops.push([1, background]);\n }\n\n this.colorStops = colorStops;\n }\n\n getIR() {\n const coordsArr = this.coordsArr;\n const shadingType = this.shadingType;\n let type, p0, p1, r0, r1;\n if (shadingType === ShadingType.AXIAL) {\n p0 = [coordsArr[0], coordsArr[1]];\n p1 = [coordsArr[2], coordsArr[3]];\n r0 = null;\n r1 = null;\n type = \"axial\";\n } else if (shadingType === ShadingType.RADIAL) {\n p0 = [coordsArr[0], coordsArr[1]];\n p1 = [coordsArr[3], coordsArr[4]];\n r0 = coordsArr[2];\n r1 = coordsArr[5];\n type = \"radial\";\n } else {\n unreachable(`getPattern type unknown: ${shadingType}`);\n }\n\n return [\"RadialAxial\", type, this.bbox, this.colorStops, p0, p1, r0, r1];\n }\n}\n\n// All mesh shadings. For now, they will be presented as set of the triangles\n// to be drawn on the canvas and rgb color for each vertex.\nclass MeshStreamReader {\n constructor(stream, context) {\n this.stream = stream;\n this.context = context;\n this.buffer = 0;\n this.bufferLength = 0;\n\n const numComps = context.numComps;\n this.tmpCompsBuf = new Float32Array(numComps);\n const csNumComps = context.colorSpace.numComps;\n this.tmpCsCompsBuf = context.colorFn\n ? new Float32Array(csNumComps)\n : this.tmpCompsBuf;\n }\n\n get hasData() {\n if (this.stream.end) {\n return this.stream.pos < this.stream.end;\n }\n if (this.bufferLength > 0) {\n return true;\n }\n const nextByte = this.stream.getByte();\n if (nextByte < 0) {\n return false;\n }\n this.buffer = nextByte;\n this.bufferLength = 8;\n return true;\n }\n\n readBits(n) {\n let buffer = this.buffer;\n let bufferLength = this.bufferLength;\n if (n === 32) {\n if (bufferLength === 0) {\n return (\n ((this.stream.getByte() << 24) |\n (this.stream.getByte() << 16) |\n (this.stream.getByte() << 8) |\n this.stream.getByte()) >>>\n 0\n );\n }\n buffer =\n (buffer << 24) |\n (this.stream.getByte() << 16) |\n (this.stream.getByte() << 8) |\n this.stream.getByte();\n const nextByte = this.stream.getByte();\n this.buffer = nextByte & ((1 << bufferLength) - 1);\n return (\n ((buffer << (8 - bufferLength)) |\n ((nextByte & 0xff) >> bufferLength)) >>>\n 0\n );\n }\n if (n === 8 && bufferLength === 0) {\n return this.stream.getByte();\n }\n while (bufferLength < n) {\n buffer = (buffer << 8) | this.stream.getByte();\n bufferLength += 8;\n }\n bufferLength -= n;\n this.bufferLength = bufferLength;\n this.buffer = buffer & ((1 << bufferLength) - 1);\n return buffer >> bufferLength;\n }\n\n align() {\n this.buffer = 0;\n this.bufferLength = 0;\n }\n\n readFlag() {\n return this.readBits(this.context.bitsPerFlag);\n }\n\n readCoordinate() {\n const bitsPerCoordinate = this.context.bitsPerCoordinate;\n const xi = this.readBits(bitsPerCoordinate);\n const yi = this.readBits(bitsPerCoordinate);\n const decode = this.context.decode;\n const scale =\n bitsPerCoordinate < 32\n ? 1 / ((1 << bitsPerCoordinate) - 1)\n : 2.3283064365386963e-10; // 2 ^ -32\n return [\n xi * scale * (decode[1] - decode[0]) + decode[0],\n yi * scale * (decode[3] - decode[2]) + decode[2],\n ];\n }\n\n readComponents() {\n const numComps = this.context.numComps;\n const bitsPerComponent = this.context.bitsPerComponent;\n const scale =\n bitsPerComponent < 32\n ? 1 / ((1 << bitsPerComponent) - 1)\n : 2.3283064365386963e-10; // 2 ^ -32\n const decode = this.context.decode;\n const components = this.tmpCompsBuf;\n for (let i = 0, j = 4; i < numComps; i++, j += 2) {\n const ci = this.readBits(bitsPerComponent);\n components[i] = ci * scale * (decode[j + 1] - decode[j]) + decode[j];\n }\n const color = this.tmpCsCompsBuf;\n if (this.context.colorFn) {\n this.context.colorFn(components, 0, color, 0);\n }\n return this.context.colorSpace.getRgb(color, 0);\n }\n}\n\nconst getB = (function getBClosure() {\n function buildB(count) {\n const lut = [];\n for (let i = 0; i <= count; i++) {\n const t = i / count,\n t_ = 1 - t;\n lut.push(\n new Float32Array([\n t_ * t_ * t_,\n 3 * t * t_ * t_,\n 3 * t * t * t_,\n t * t * t,\n ])\n );\n }\n return lut;\n }\n const cache = [];\n\n return function (count) {\n if (!cache[count]) {\n cache[count] = buildB(count);\n }\n return cache[count];\n };\n})();\n\nclass MeshShading extends BaseShading {\n static get MIN_SPLIT_PATCH_CHUNKS_AMOUNT() {\n return shadow(this, \"MIN_SPLIT_PATCH_CHUNKS_AMOUNT\", 3);\n }\n\n static get MAX_SPLIT_PATCH_CHUNKS_AMOUNT() {\n return shadow(this, \"MAX_SPLIT_PATCH_CHUNKS_AMOUNT\", 20);\n }\n\n // Count of triangles per entire mesh bounds.\n static get TRIANGLE_DENSITY() {\n return shadow(this, \"TRIANGLE_DENSITY\", 20);\n }\n\n constructor(\n stream,\n xref,\n resources,\n pdfFunctionFactory,\n localColorSpaceCache\n ) {\n super();\n if (!(stream instanceof BaseStream)) {\n throw new FormatError(\"Mesh data is not a stream\");\n }\n const dict = stream.dict;\n this.shadingType = dict.get(\"ShadingType\");\n const bbox = dict.getArray(\"BBox\");\n if (Array.isArray(bbox) && bbox.length === 4) {\n this.bbox = Util.normalizeRect(bbox);\n } else {\n this.bbox = null;\n }\n const cs = ColorSpace.parse({\n cs: dict.getRaw(\"CS\") || dict.getRaw(\"ColorSpace\"),\n xref,\n resources,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n this.background = dict.has(\"Background\")\n ? cs.getRgb(dict.get(\"Background\"), 0)\n : null;\n\n const fnObj = dict.getRaw(\"Function\");\n const fn = fnObj ? pdfFunctionFactory.createFromArray(fnObj) : null;\n\n this.coords = [];\n this.colors = [];\n this.figures = [];\n\n const decodeContext = {\n bitsPerCoordinate: dict.get(\"BitsPerCoordinate\"),\n bitsPerComponent: dict.get(\"BitsPerComponent\"),\n bitsPerFlag: dict.get(\"BitsPerFlag\"),\n decode: dict.getArray(\"Decode\"),\n colorFn: fn,\n colorSpace: cs,\n numComps: fn ? 1 : cs.numComps,\n };\n const reader = new MeshStreamReader(stream, decodeContext);\n\n let patchMesh = false;\n switch (this.shadingType) {\n case ShadingType.FREE_FORM_MESH:\n this._decodeType4Shading(reader);\n break;\n case ShadingType.LATTICE_FORM_MESH:\n const verticesPerRow = dict.get(\"VerticesPerRow\") | 0;\n if (verticesPerRow < 2) {\n throw new FormatError(\"Invalid VerticesPerRow\");\n }\n this._decodeType5Shading(reader, verticesPerRow);\n break;\n case ShadingType.COONS_PATCH_MESH:\n this._decodeType6Shading(reader);\n patchMesh = true;\n break;\n case ShadingType.TENSOR_PATCH_MESH:\n this._decodeType7Shading(reader);\n patchMesh = true;\n break;\n default:\n unreachable(\"Unsupported mesh type.\");\n break;\n }\n\n if (patchMesh) {\n // Dirty bounds calculation, to determine how dense the triangles will be.\n this._updateBounds();\n for (let i = 0, ii = this.figures.length; i < ii; i++) {\n this._buildFigureFromPatch(i);\n }\n }\n // Calculate bounds.\n this._updateBounds();\n\n this._packData();\n }\n\n _decodeType4Shading(reader) {\n const coords = this.coords;\n const colors = this.colors;\n const operators = [];\n const ps = []; // not maintaining cs since that will match ps\n let verticesLeft = 0; // assuming we have all data to start a new triangle\n while (reader.hasData) {\n const f = reader.readFlag();\n const coord = reader.readCoordinate();\n const color = reader.readComponents();\n if (verticesLeft === 0) {\n // ignoring flags if we started a triangle\n if (!(0 <= f && f <= 2)) {\n throw new FormatError(\"Unknown type4 flag\");\n }\n switch (f) {\n case 0:\n verticesLeft = 3;\n break;\n case 1:\n ps.push(ps[ps.length - 2], ps[ps.length - 1]);\n verticesLeft = 1;\n break;\n case 2:\n ps.push(ps[ps.length - 3], ps[ps.length - 1]);\n verticesLeft = 1;\n break;\n }\n operators.push(f);\n }\n ps.push(coords.length);\n coords.push(coord);\n colors.push(color);\n verticesLeft--;\n\n reader.align();\n }\n this.figures.push({\n type: \"triangles\",\n coords: new Int32Array(ps),\n colors: new Int32Array(ps),\n });\n }\n\n _decodeType5Shading(reader, verticesPerRow) {\n const coords = this.coords;\n const colors = this.colors;\n const ps = []; // not maintaining cs since that will match ps\n while (reader.hasData) {\n const coord = reader.readCoordinate();\n const color = reader.readComponents();\n ps.push(coords.length);\n coords.push(coord);\n colors.push(color);\n }\n this.figures.push({\n type: \"lattice\",\n coords: new Int32Array(ps),\n colors: new Int32Array(ps),\n verticesPerRow,\n });\n }\n\n _decodeType6Shading(reader) {\n // A special case of Type 7. The p11, p12, p21, p22 automatically filled\n const coords = this.coords;\n const colors = this.colors;\n const ps = new Int32Array(16); // p00, p10, ..., p30, p01, ..., p33\n const cs = new Int32Array(4); // c00, c30, c03, c33\n while (reader.hasData) {\n const f = reader.readFlag();\n if (!(0 <= f && f <= 3)) {\n throw new FormatError(\"Unknown type6 flag\");\n }\n const pi = coords.length;\n for (let i = 0, ii = f !== 0 ? 8 : 12; i < ii; i++) {\n coords.push(reader.readCoordinate());\n }\n const ci = colors.length;\n for (let i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n colors.push(reader.readComponents());\n }\n let tmp1, tmp2, tmp3, tmp4;\n switch (f) {\n // prettier-ignore\n case 0:\n ps[12] = pi + 3; ps[13] = pi + 4; ps[14] = pi + 5; ps[15] = pi + 6;\n ps[ 8] = pi + 2; /* values for 5, 6, 9, 10 are */ ps[11] = pi + 7;\n ps[ 4] = pi + 1; /* calculated below */ ps[ 7] = pi + 8;\n ps[ 0] = pi; ps[ 1] = pi + 11; ps[ 2] = pi + 10; ps[ 3] = pi + 9;\n cs[2] = ci + 1; cs[3] = ci + 2;\n cs[0] = ci; cs[1] = ci + 3;\n break;\n // prettier-ignore\n case 1:\n tmp1 = ps[12]; tmp2 = ps[13]; tmp3 = ps[14]; tmp4 = ps[15];\n ps[12] = tmp4; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = tmp3; /* values for 5, 6, 9, 10 are */ ps[11] = pi + 3;\n ps[ 4] = tmp2; /* calculated below */ ps[ 7] = pi + 4;\n ps[ 0] = tmp1; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n tmp1 = cs[2]; tmp2 = cs[3];\n cs[2] = tmp2; cs[3] = ci;\n cs[0] = tmp1; cs[1] = ci + 1;\n break;\n // prettier-ignore\n case 2:\n tmp1 = ps[15];\n tmp2 = ps[11];\n ps[12] = ps[3]; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = ps[7]; /* values for 5, 6, 9, 10 are */ ps[11] = pi + 3;\n ps[ 4] = tmp2; /* calculated below */ ps[ 7] = pi + 4;\n ps[ 0] = tmp1; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n tmp1 = cs[3];\n cs[2] = cs[1]; cs[3] = ci;\n cs[0] = tmp1; cs[1] = ci + 1;\n break;\n // prettier-ignore\n case 3:\n ps[12] = ps[0]; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = ps[1]; /* values for 5, 6, 9, 10 are */ ps[11] = pi + 3;\n ps[ 4] = ps[2]; /* calculated below */ ps[ 7] = pi + 4;\n ps[ 0] = ps[3]; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n cs[2] = cs[0]; cs[3] = ci;\n cs[0] = cs[1]; cs[1] = ci + 1;\n break;\n }\n // set p11, p12, p21, p22\n ps[5] = coords.length;\n coords.push([\n (-4 * coords[ps[0]][0] -\n coords[ps[15]][0] +\n 6 * (coords[ps[4]][0] + coords[ps[1]][0]) -\n 2 * (coords[ps[12]][0] + coords[ps[3]][0]) +\n 3 * (coords[ps[13]][0] + coords[ps[7]][0])) /\n 9,\n (-4 * coords[ps[0]][1] -\n coords[ps[15]][1] +\n 6 * (coords[ps[4]][1] + coords[ps[1]][1]) -\n 2 * (coords[ps[12]][1] + coords[ps[3]][1]) +\n 3 * (coords[ps[13]][1] + coords[ps[7]][1])) /\n 9,\n ]);\n ps[6] = coords.length;\n coords.push([\n (-4 * coords[ps[3]][0] -\n coords[ps[12]][0] +\n 6 * (coords[ps[2]][0] + coords[ps[7]][0]) -\n 2 * (coords[ps[0]][0] + coords[ps[15]][0]) +\n 3 * (coords[ps[4]][0] + coords[ps[14]][0])) /\n 9,\n (-4 * coords[ps[3]][1] -\n coords[ps[12]][1] +\n 6 * (coords[ps[2]][1] + coords[ps[7]][1]) -\n 2 * (coords[ps[0]][1] + coords[ps[15]][1]) +\n 3 * (coords[ps[4]][1] + coords[ps[14]][1])) /\n 9,\n ]);\n ps[9] = coords.length;\n coords.push([\n (-4 * coords[ps[12]][0] -\n coords[ps[3]][0] +\n 6 * (coords[ps[8]][0] + coords[ps[13]][0]) -\n 2 * (coords[ps[0]][0] + coords[ps[15]][0]) +\n 3 * (coords[ps[11]][0] + coords[ps[1]][0])) /\n 9,\n (-4 * coords[ps[12]][1] -\n coords[ps[3]][1] +\n 6 * (coords[ps[8]][1] + coords[ps[13]][1]) -\n 2 * (coords[ps[0]][1] + coords[ps[15]][1]) +\n 3 * (coords[ps[11]][1] + coords[ps[1]][1])) /\n 9,\n ]);\n ps[10] = coords.length;\n coords.push([\n (-4 * coords[ps[15]][0] -\n coords[ps[0]][0] +\n 6 * (coords[ps[11]][0] + coords[ps[14]][0]) -\n 2 * (coords[ps[12]][0] + coords[ps[3]][0]) +\n 3 * (coords[ps[2]][0] + coords[ps[8]][0])) /\n 9,\n (-4 * coords[ps[15]][1] -\n coords[ps[0]][1] +\n 6 * (coords[ps[11]][1] + coords[ps[14]][1]) -\n 2 * (coords[ps[12]][1] + coords[ps[3]][1]) +\n 3 * (coords[ps[2]][1] + coords[ps[8]][1])) /\n 9,\n ]);\n this.figures.push({\n type: \"patch\",\n coords: new Int32Array(ps), // making copies of ps and cs\n colors: new Int32Array(cs),\n });\n }\n }\n\n _decodeType7Shading(reader) {\n const coords = this.coords;\n const colors = this.colors;\n const ps = new Int32Array(16); // p00, p10, ..., p30, p01, ..., p33\n const cs = new Int32Array(4); // c00, c30, c03, c33\n while (reader.hasData) {\n const f = reader.readFlag();\n if (!(0 <= f && f <= 3)) {\n throw new FormatError(\"Unknown type7 flag\");\n }\n const pi = coords.length;\n for (let i = 0, ii = f !== 0 ? 12 : 16; i < ii; i++) {\n coords.push(reader.readCoordinate());\n }\n const ci = colors.length;\n for (let i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n colors.push(reader.readComponents());\n }\n let tmp1, tmp2, tmp3, tmp4;\n switch (f) {\n // prettier-ignore\n case 0:\n ps[12] = pi + 3; ps[13] = pi + 4; ps[14] = pi + 5; ps[15] = pi + 6;\n ps[ 8] = pi + 2; ps[ 9] = pi + 13; ps[10] = pi + 14; ps[11] = pi + 7;\n ps[ 4] = pi + 1; ps[ 5] = pi + 12; ps[ 6] = pi + 15; ps[ 7] = pi + 8;\n ps[ 0] = pi; ps[ 1] = pi + 11; ps[ 2] = pi + 10; ps[ 3] = pi + 9;\n cs[2] = ci + 1; cs[3] = ci + 2;\n cs[0] = ci; cs[1] = ci + 3;\n break;\n // prettier-ignore\n case 1:\n tmp1 = ps[12]; tmp2 = ps[13]; tmp3 = ps[14]; tmp4 = ps[15];\n ps[12] = tmp4; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = tmp3; ps[ 9] = pi + 9; ps[10] = pi + 10; ps[11] = pi + 3;\n ps[ 4] = tmp2; ps[ 5] = pi + 8; ps[ 6] = pi + 11; ps[ 7] = pi + 4;\n ps[ 0] = tmp1; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n tmp1 = cs[2]; tmp2 = cs[3];\n cs[2] = tmp2; cs[3] = ci;\n cs[0] = tmp1; cs[1] = ci + 1;\n break;\n // prettier-ignore\n case 2:\n tmp1 = ps[15];\n tmp2 = ps[11];\n ps[12] = ps[3]; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = ps[7]; ps[ 9] = pi + 9; ps[10] = pi + 10; ps[11] = pi + 3;\n ps[ 4] = tmp2; ps[ 5] = pi + 8; ps[ 6] = pi + 11; ps[ 7] = pi + 4;\n ps[ 0] = tmp1; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n tmp1 = cs[3];\n cs[2] = cs[1]; cs[3] = ci;\n cs[0] = tmp1; cs[1] = ci + 1;\n break;\n // prettier-ignore\n case 3:\n ps[12] = ps[0]; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = ps[1]; ps[ 9] = pi + 9; ps[10] = pi + 10; ps[11] = pi + 3;\n ps[ 4] = ps[2]; ps[ 5] = pi + 8; ps[ 6] = pi + 11; ps[ 7] = pi + 4;\n ps[ 0] = ps[3]; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n cs[2] = cs[0]; cs[3] = ci;\n cs[0] = cs[1]; cs[1] = ci + 1;\n break;\n }\n this.figures.push({\n type: \"patch\",\n coords: new Int32Array(ps), // making copies of ps and cs\n colors: new Int32Array(cs),\n });\n }\n }\n\n _buildFigureFromPatch(index) {\n const figure = this.figures[index];\n assert(figure.type === \"patch\", \"Unexpected patch mesh figure\");\n\n const coords = this.coords,\n colors = this.colors;\n const pi = figure.coords;\n const ci = figure.colors;\n\n const figureMinX = Math.min(\n coords[pi[0]][0],\n coords[pi[3]][0],\n coords[pi[12]][0],\n coords[pi[15]][0]\n );\n const figureMinY = Math.min(\n coords[pi[0]][1],\n coords[pi[3]][1],\n coords[pi[12]][1],\n coords[pi[15]][1]\n );\n const figureMaxX = Math.max(\n coords[pi[0]][0],\n coords[pi[3]][0],\n coords[pi[12]][0],\n coords[pi[15]][0]\n );\n const figureMaxY = Math.max(\n coords[pi[0]][1],\n coords[pi[3]][1],\n coords[pi[12]][1],\n coords[pi[15]][1]\n );\n let splitXBy = Math.ceil(\n ((figureMaxX - figureMinX) * MeshShading.TRIANGLE_DENSITY) /\n (this.bounds[2] - this.bounds[0])\n );\n splitXBy = Math.max(\n MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT,\n Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitXBy)\n );\n let splitYBy = Math.ceil(\n ((figureMaxY - figureMinY) * MeshShading.TRIANGLE_DENSITY) /\n (this.bounds[3] - this.bounds[1])\n );\n splitYBy = Math.max(\n MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT,\n Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitYBy)\n );\n\n const verticesPerRow = splitXBy + 1;\n const figureCoords = new Int32Array((splitYBy + 1) * verticesPerRow);\n const figureColors = new Int32Array((splitYBy + 1) * verticesPerRow);\n let k = 0;\n const cl = new Uint8Array(3),\n cr = new Uint8Array(3);\n const c0 = colors[ci[0]],\n c1 = colors[ci[1]],\n c2 = colors[ci[2]],\n c3 = colors[ci[3]];\n const bRow = getB(splitYBy),\n bCol = getB(splitXBy);\n for (let row = 0; row <= splitYBy; row++) {\n cl[0] = ((c0[0] * (splitYBy - row) + c2[0] * row) / splitYBy) | 0;\n cl[1] = ((c0[1] * (splitYBy - row) + c2[1] * row) / splitYBy) | 0;\n cl[2] = ((c0[2] * (splitYBy - row) + c2[2] * row) / splitYBy) | 0;\n\n cr[0] = ((c1[0] * (splitYBy - row) + c3[0] * row) / splitYBy) | 0;\n cr[1] = ((c1[1] * (splitYBy - row) + c3[1] * row) / splitYBy) | 0;\n cr[2] = ((c1[2] * (splitYBy - row) + c3[2] * row) / splitYBy) | 0;\n\n for (let col = 0; col <= splitXBy; col++, k++) {\n if (\n (row === 0 || row === splitYBy) &&\n (col === 0 || col === splitXBy)\n ) {\n continue;\n }\n let x = 0,\n y = 0;\n let q = 0;\n for (let i = 0; i <= 3; i++) {\n for (let j = 0; j <= 3; j++, q++) {\n const m = bRow[row][i] * bCol[col][j];\n x += coords[pi[q]][0] * m;\n y += coords[pi[q]][1] * m;\n }\n }\n figureCoords[k] = coords.length;\n coords.push([x, y]);\n figureColors[k] = colors.length;\n const newColor = new Uint8Array(3);\n newColor[0] = ((cl[0] * (splitXBy - col) + cr[0] * col) / splitXBy) | 0;\n newColor[1] = ((cl[1] * (splitXBy - col) + cr[1] * col) / splitXBy) | 0;\n newColor[2] = ((cl[2] * (splitXBy - col) + cr[2] * col) / splitXBy) | 0;\n colors.push(newColor);\n }\n }\n figureCoords[0] = pi[0];\n figureColors[0] = ci[0];\n figureCoords[splitXBy] = pi[3];\n figureColors[splitXBy] = ci[1];\n figureCoords[verticesPerRow * splitYBy] = pi[12];\n figureColors[verticesPerRow * splitYBy] = ci[2];\n figureCoords[verticesPerRow * splitYBy + splitXBy] = pi[15];\n figureColors[verticesPerRow * splitYBy + splitXBy] = ci[3];\n\n this.figures[index] = {\n type: \"lattice\",\n coords: figureCoords,\n colors: figureColors,\n verticesPerRow,\n };\n }\n\n _updateBounds() {\n let minX = this.coords[0][0],\n minY = this.coords[0][1],\n maxX = minX,\n maxY = minY;\n for (let i = 1, ii = this.coords.length; i < ii; i++) {\n const x = this.coords[i][0],\n y = this.coords[i][1];\n minX = minX > x ? x : minX;\n minY = minY > y ? y : minY;\n maxX = maxX < x ? x : maxX;\n maxY = maxY < y ? y : maxY;\n }\n this.bounds = [minX, minY, maxX, maxY];\n }\n\n _packData() {\n let i, ii, j, jj;\n\n const coords = this.coords;\n const coordsPacked = new Float32Array(coords.length * 2);\n for (i = 0, j = 0, ii = coords.length; i < ii; i++) {\n const xy = coords[i];\n coordsPacked[j++] = xy[0];\n coordsPacked[j++] = xy[1];\n }\n this.coords = coordsPacked;\n\n const colors = this.colors;\n const colorsPacked = new Uint8Array(colors.length * 3);\n for (i = 0, j = 0, ii = colors.length; i < ii; i++) {\n const c = colors[i];\n colorsPacked[j++] = c[0];\n colorsPacked[j++] = c[1];\n colorsPacked[j++] = c[2];\n }\n this.colors = colorsPacked;\n\n const figures = this.figures;\n for (i = 0, ii = figures.length; i < ii; i++) {\n const figure = figures[i],\n ps = figure.coords,\n cs = figure.colors;\n for (j = 0, jj = ps.length; j < jj; j++) {\n ps[j] *= 2;\n cs[j] *= 3;\n }\n }\n }\n\n getIR() {\n return [\n \"Mesh\",\n this.shadingType,\n this.coords,\n this.colors,\n this.figures,\n this.bounds,\n this.bbox,\n this.background,\n ];\n }\n}\n\nclass DummyShading extends BaseShading {\n getIR() {\n return [\"Dummy\"];\n }\n}\n\nfunction getTilingPatternIR(operatorList, dict, color) {\n const matrix = dict.getArray(\"Matrix\");\n const bbox = Util.normalizeRect(dict.getArray(\"BBox\"));\n const xstep = dict.get(\"XStep\");\n const ystep = dict.get(\"YStep\");\n const paintType = dict.get(\"PaintType\");\n const tilingType = dict.get(\"TilingType\");\n\n // Ensure that the pattern has a non-zero width and height, to prevent errors\n // in `pattern_helper.js` (fixes issue8330.pdf).\n if (bbox[2] - bbox[0] === 0 || bbox[3] - bbox[1] === 0) {\n throw new FormatError(`Invalid getTilingPatternIR /BBox array: [${bbox}].`);\n }\n\n return [\n \"TilingPattern\",\n color,\n operatorList,\n matrix,\n bbox,\n xstep,\n ystep,\n paintType,\n tilingType,\n ];\n}\n\nexport { getTilingPatternIR, Pattern };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Dict, Ref } from \"./primitives.js\";\nimport {\n FeatureTest,\n FormatError,\n info,\n shadow,\n unreachable,\n} from \"../shared/util.js\";\nimport { PostScriptLexer, PostScriptParser } from \"./ps_parser.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { LocalFunctionCache } from \"./image_utils.js\";\n\nclass PDFFunctionFactory {\n constructor({ xref, isEvalSupported = true }) {\n this.xref = xref;\n this.isEvalSupported = isEvalSupported !== false;\n }\n\n create(fn) {\n const cachedFunction = this.getCached(fn);\n if (cachedFunction) {\n return cachedFunction;\n }\n const parsedFunction = PDFFunction.parse({\n xref: this.xref,\n isEvalSupported: this.isEvalSupported,\n fn: fn instanceof Ref ? this.xref.fetch(fn) : fn,\n });\n\n // Attempt to cache the parsed Function, by reference.\n this._cache(fn, parsedFunction);\n\n return parsedFunction;\n }\n\n createFromArray(fnObj) {\n const cachedFunction = this.getCached(fnObj);\n if (cachedFunction) {\n return cachedFunction;\n }\n const parsedFunction = PDFFunction.parseArray({\n xref: this.xref,\n isEvalSupported: this.isEvalSupported,\n fnObj: fnObj instanceof Ref ? this.xref.fetch(fnObj) : fnObj,\n });\n\n // Attempt to cache the parsed Function, by reference.\n this._cache(fnObj, parsedFunction);\n\n return parsedFunction;\n }\n\n getCached(cacheKey) {\n let fnRef;\n if (cacheKey instanceof Ref) {\n fnRef = cacheKey;\n } else if (cacheKey instanceof Dict) {\n fnRef = cacheKey.objId;\n } else if (cacheKey instanceof BaseStream) {\n fnRef = cacheKey.dict && cacheKey.dict.objId;\n }\n if (fnRef) {\n const localFunction = this._localFunctionCache.getByRef(fnRef);\n if (localFunction) {\n return localFunction;\n }\n }\n return null;\n }\n\n /**\n * @private\n */\n _cache(cacheKey, parsedFunction) {\n if (!parsedFunction) {\n throw new Error(\n 'PDFFunctionFactory._cache - expected \"parsedFunction\" argument.'\n );\n }\n let fnRef;\n if (cacheKey instanceof Ref) {\n fnRef = cacheKey;\n } else if (cacheKey instanceof Dict) {\n fnRef = cacheKey.objId;\n } else if (cacheKey instanceof BaseStream) {\n fnRef = cacheKey.dict && cacheKey.dict.objId;\n }\n if (fnRef) {\n this._localFunctionCache.set(/* name = */ null, fnRef, parsedFunction);\n }\n }\n\n /**\n * @private\n */\n get _localFunctionCache() {\n return shadow(this, \"_localFunctionCache\", new LocalFunctionCache());\n }\n}\n\nfunction toNumberArray(arr) {\n if (!Array.isArray(arr)) {\n return null;\n }\n const length = arr.length;\n for (let i = 0; i < length; i++) {\n if (typeof arr[i] !== \"number\") {\n // Non-number is found -- convert all items to numbers.\n const result = new Array(length);\n for (let j = 0; j < length; j++) {\n result[j] = +arr[j];\n }\n return result;\n }\n }\n return arr;\n}\n\nclass PDFFunction {\n static getSampleArray(size, outputSize, bps, stream) {\n let i, ii;\n let length = 1;\n for (i = 0, ii = size.length; i < ii; i++) {\n length *= size[i];\n }\n length *= outputSize;\n\n const array = new Array(length);\n let codeSize = 0;\n let codeBuf = 0;\n // 32 is a valid bps so shifting won't work\n const sampleMul = 1.0 / (2.0 ** bps - 1);\n\n const strBytes = stream.getBytes((length * bps + 7) / 8);\n let strIdx = 0;\n for (i = 0; i < length; i++) {\n while (codeSize < bps) {\n codeBuf <<= 8;\n codeBuf |= strBytes[strIdx++];\n codeSize += 8;\n }\n codeSize -= bps;\n array[i] = (codeBuf >> codeSize) * sampleMul;\n codeBuf &= (1 << codeSize) - 1;\n }\n return array;\n }\n\n static parse({ xref, isEvalSupported, fn }) {\n const dict = fn.dict || fn;\n const typeNum = dict.get(\"FunctionType\");\n\n switch (typeNum) {\n case 0:\n return this.constructSampled({ xref, isEvalSupported, fn, dict });\n case 1:\n break;\n case 2:\n return this.constructInterpolated({ xref, isEvalSupported, dict });\n case 3:\n return this.constructStiched({ xref, isEvalSupported, dict });\n case 4:\n return this.constructPostScript({ xref, isEvalSupported, fn, dict });\n }\n throw new FormatError(\"Unknown type of function\");\n }\n\n static parseArray({ xref, isEvalSupported, fnObj }) {\n if (!Array.isArray(fnObj)) {\n // not an array -- parsing as regular function\n return this.parse({ xref, isEvalSupported, fn: fnObj });\n }\n\n const fnArray = [];\n for (let j = 0, jj = fnObj.length; j < jj; j++) {\n fnArray.push(\n this.parse({ xref, isEvalSupported, fn: xref.fetchIfRef(fnObj[j]) })\n );\n }\n return function (src, srcOffset, dest, destOffset) {\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n fnArray[i](src, srcOffset, dest, destOffset + i);\n }\n };\n }\n\n static constructSampled({ xref, isEvalSupported, fn, dict }) {\n function toMultiArray(arr) {\n const inputLength = arr.length;\n const out = [];\n let index = 0;\n for (let i = 0; i < inputLength; i += 2) {\n out[index++] = [arr[i], arr[i + 1]];\n }\n return out;\n }\n // See chapter 3, page 109 of the PDF reference\n function interpolate(x, xmin, xmax, ymin, ymax) {\n return ymin + (x - xmin) * ((ymax - ymin) / (xmax - xmin));\n }\n\n let domain = toNumberArray(dict.getArray(\"Domain\"));\n let range = toNumberArray(dict.getArray(\"Range\"));\n\n if (!domain || !range) {\n throw new FormatError(\"No domain or range\");\n }\n\n const inputSize = domain.length / 2;\n const outputSize = range.length / 2;\n\n domain = toMultiArray(domain);\n range = toMultiArray(range);\n\n const size = toNumberArray(dict.getArray(\"Size\"));\n const bps = dict.get(\"BitsPerSample\");\n const order = dict.get(\"Order\") || 1;\n if (order !== 1) {\n // No description how cubic spline interpolation works in PDF32000:2008\n // As in poppler, ignoring order, linear interpolation may work as good\n info(\"No support for cubic spline interpolation: \" + order);\n }\n\n let encode = toNumberArray(dict.getArray(\"Encode\"));\n if (!encode) {\n encode = [];\n for (let i = 0; i < inputSize; ++i) {\n encode.push([0, size[i] - 1]);\n }\n } else {\n encode = toMultiArray(encode);\n }\n\n let decode = toNumberArray(dict.getArray(\"Decode\"));\n if (!decode) {\n decode = range;\n } else {\n decode = toMultiArray(decode);\n }\n\n const samples = this.getSampleArray(size, outputSize, bps, fn);\n // const mask = 2 ** bps - 1;\n\n return function constructSampledFn(src, srcOffset, dest, destOffset) {\n // See chapter 3, page 110 of the PDF reference.\n\n // Building the cube vertices: its part and sample index\n // http://rjwagner49.com/Mathematics/Interpolation.pdf\n const cubeVertices = 1 << inputSize;\n const cubeN = new Float64Array(cubeVertices);\n const cubeVertex = new Uint32Array(cubeVertices);\n let i, j;\n for (j = 0; j < cubeVertices; j++) {\n cubeN[j] = 1;\n }\n\n let k = outputSize,\n pos = 1;\n // Map x_i to y_j for 0 <= i < m using the sampled function.\n for (i = 0; i < inputSize; ++i) {\n // x_i' = min(max(x_i, Domain_2i), Domain_2i+1)\n const domain_2i = domain[i][0];\n const domain_2i_1 = domain[i][1];\n const xi = Math.min(\n Math.max(src[srcOffset + i], domain_2i),\n domain_2i_1\n );\n\n // e_i = Interpolate(x_i', Domain_2i, Domain_2i+1,\n // Encode_2i, Encode_2i+1)\n let e = interpolate(\n xi,\n domain_2i,\n domain_2i_1,\n encode[i][0],\n encode[i][1]\n );\n\n // e_i' = min(max(e_i, 0), Size_i - 1)\n const size_i = size[i];\n e = Math.min(Math.max(e, 0), size_i - 1);\n\n // Adjusting the cube: N and vertex sample index\n const e0 = e < size_i - 1 ? Math.floor(e) : e - 1; // e1 = e0 + 1;\n const n0 = e0 + 1 - e; // (e1 - e) / (e1 - e0);\n const n1 = e - e0; // (e - e0) / (e1 - e0);\n const offset0 = e0 * k;\n const offset1 = offset0 + k; // e1 * k\n for (j = 0; j < cubeVertices; j++) {\n if (j & pos) {\n cubeN[j] *= n1;\n cubeVertex[j] += offset1;\n } else {\n cubeN[j] *= n0;\n cubeVertex[j] += offset0;\n }\n }\n\n k *= size_i;\n pos <<= 1;\n }\n\n for (j = 0; j < outputSize; ++j) {\n // Sum all cube vertices' samples portions\n let rj = 0;\n for (i = 0; i < cubeVertices; i++) {\n rj += samples[cubeVertex[i] + j] * cubeN[i];\n }\n\n // r_j' = Interpolate(r_j, 0, 2^BitsPerSample - 1,\n // Decode_2j, Decode_2j+1)\n rj = interpolate(rj, 0, 1, decode[j][0], decode[j][1]);\n\n // y_j = min(max(r_j, range_2j), range_2j+1)\n dest[destOffset + j] = Math.min(Math.max(rj, range[j][0]), range[j][1]);\n }\n };\n }\n\n static constructInterpolated({ xref, isEvalSupported, dict }) {\n const c0 = toNumberArray(dict.getArray(\"C0\")) || [0];\n const c1 = toNumberArray(dict.getArray(\"C1\")) || [1];\n const n = dict.get(\"N\");\n\n const diff = [];\n for (let i = 0, ii = c0.length; i < ii; ++i) {\n diff.push(c1[i] - c0[i]);\n }\n const length = diff.length;\n\n return function constructInterpolatedFn(src, srcOffset, dest, destOffset) {\n const x = n === 1 ? src[srcOffset] : src[srcOffset] ** n;\n\n for (let j = 0; j < length; ++j) {\n dest[destOffset + j] = c0[j] + x * diff[j];\n }\n };\n }\n\n static constructStiched({ xref, isEvalSupported, dict }) {\n const domain = toNumberArray(dict.getArray(\"Domain\"));\n\n if (!domain) {\n throw new FormatError(\"No domain\");\n }\n\n const inputSize = domain.length / 2;\n if (inputSize !== 1) {\n throw new FormatError(\"Bad domain for stiched function\");\n }\n\n const fnRefs = dict.get(\"Functions\");\n const fns = [];\n for (let i = 0, ii = fnRefs.length; i < ii; ++i) {\n fns.push(\n this.parse({ xref, isEvalSupported, fn: xref.fetchIfRef(fnRefs[i]) })\n );\n }\n\n const bounds = toNumberArray(dict.getArray(\"Bounds\"));\n const encode = toNumberArray(dict.getArray(\"Encode\"));\n const tmpBuf = new Float32Array(1);\n\n return function constructStichedFn(src, srcOffset, dest, destOffset) {\n const clip = function constructStichedFromIRClip(v, min, max) {\n if (v > max) {\n v = max;\n } else if (v < min) {\n v = min;\n }\n return v;\n };\n\n // clip to domain\n const v = clip(src[srcOffset], domain[0], domain[1]);\n // calculate which bound the value is in\n const length = bounds.length;\n let i;\n for (i = 0; i < length; ++i) {\n if (v < bounds[i]) {\n break;\n }\n }\n\n // encode value into domain of function\n let dmin = domain[0];\n if (i > 0) {\n dmin = bounds[i - 1];\n }\n let dmax = domain[1];\n if (i < bounds.length) {\n dmax = bounds[i];\n }\n\n const rmin = encode[2 * i];\n const rmax = encode[2 * i + 1];\n\n // Prevent the value from becoming NaN as a result\n // of division by zero (fixes issue6113.pdf).\n tmpBuf[0] =\n dmin === dmax\n ? rmin\n : rmin + ((v - dmin) * (rmax - rmin)) / (dmax - dmin);\n\n // call the appropriate function\n fns[i](tmpBuf, 0, dest, destOffset);\n };\n }\n\n static constructPostScript({ xref, isEvalSupported, fn, dict }) {\n const domain = toNumberArray(dict.getArray(\"Domain\"));\n const range = toNumberArray(dict.getArray(\"Range\"));\n\n if (!domain) {\n throw new FormatError(\"No domain.\");\n }\n\n if (!range) {\n throw new FormatError(\"No range.\");\n }\n\n const lexer = new PostScriptLexer(fn);\n const parser = new PostScriptParser(lexer);\n const code = parser.parse();\n\n if (isEvalSupported && FeatureTest.isEvalSupported) {\n const compiled = new PostScriptCompiler().compile(code, domain, range);\n if (compiled) {\n // Compiled function consists of simple expressions such as addition,\n // subtraction, Math.max, and also contains 'var' and 'return'\n // statements. See the generation in the PostScriptCompiler below.\n // eslint-disable-next-line no-new-func\n return new Function(\"src\", \"srcOffset\", \"dest\", \"destOffset\", compiled);\n }\n }\n info(\"Unable to compile PS function\");\n\n const numOutputs = range.length >> 1;\n const numInputs = domain.length >> 1;\n const evaluator = new PostScriptEvaluator(code);\n // Cache the values for a big speed up, the cache size is limited though\n // since the number of possible values can be huge from a PS function.\n const cache = Object.create(null);\n // The MAX_CACHE_SIZE is set to ~4x the maximum number of distinct values\n // seen in our tests.\n const MAX_CACHE_SIZE = 2048 * 4;\n let cache_available = MAX_CACHE_SIZE;\n const tmpBuf = new Float32Array(numInputs);\n\n return function constructPostScriptFn(src, srcOffset, dest, destOffset) {\n let i, value;\n let key = \"\";\n const input = tmpBuf;\n for (i = 0; i < numInputs; i++) {\n value = src[srcOffset + i];\n input[i] = value;\n key += value + \"_\";\n }\n\n const cachedValue = cache[key];\n if (cachedValue !== undefined) {\n dest.set(cachedValue, destOffset);\n return;\n }\n\n const output = new Float32Array(numOutputs);\n const stack = evaluator.execute(input);\n const stackIndex = stack.length - numOutputs;\n for (i = 0; i < numOutputs; i++) {\n value = stack[stackIndex + i];\n let bound = range[i * 2];\n if (value < bound) {\n value = bound;\n } else {\n bound = range[i * 2 + 1];\n if (value > bound) {\n value = bound;\n }\n }\n output[i] = value;\n }\n if (cache_available > 0) {\n cache_available--;\n cache[key] = output;\n }\n dest.set(output, destOffset);\n };\n }\n}\n\nfunction isPDFFunction(v) {\n let fnDict;\n if (typeof v !== \"object\") {\n return false;\n } else if (v instanceof Dict) {\n fnDict = v;\n } else if (v instanceof BaseStream) {\n fnDict = v.dict;\n } else {\n return false;\n }\n return fnDict.has(\"FunctionType\");\n}\n\nclass PostScriptStack {\n static get MAX_STACK_SIZE() {\n return shadow(this, \"MAX_STACK_SIZE\", 100);\n }\n\n constructor(initialStack) {\n this.stack = !initialStack\n ? []\n : Array.prototype.slice.call(initialStack, 0);\n }\n\n push(value) {\n if (this.stack.length >= PostScriptStack.MAX_STACK_SIZE) {\n throw new Error(\"PostScript function stack overflow.\");\n }\n this.stack.push(value);\n }\n\n pop() {\n if (this.stack.length <= 0) {\n throw new Error(\"PostScript function stack underflow.\");\n }\n return this.stack.pop();\n }\n\n copy(n) {\n if (this.stack.length + n >= PostScriptStack.MAX_STACK_SIZE) {\n throw new Error(\"PostScript function stack overflow.\");\n }\n const stack = this.stack;\n for (let i = stack.length - n, j = n - 1; j >= 0; j--, i++) {\n stack.push(stack[i]);\n }\n }\n\n index(n) {\n this.push(this.stack[this.stack.length - n - 1]);\n }\n\n // rotate the last n stack elements p times\n roll(n, p) {\n const stack = this.stack;\n const l = stack.length - n;\n const r = stack.length - 1;\n const c = l + (p - Math.floor(p / n) * n);\n\n for (let i = l, j = r; i < j; i++, j--) {\n const t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n for (let i = l, j = c - 1; i < j; i++, j--) {\n const t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n for (let i = c, j = r; i < j; i++, j--) {\n const t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n }\n}\n\nclass PostScriptEvaluator {\n constructor(operators) {\n this.operators = operators;\n }\n\n execute(initialStack) {\n const stack = new PostScriptStack(initialStack);\n let counter = 0;\n const operators = this.operators;\n const length = operators.length;\n let operator, a, b;\n while (counter < length) {\n operator = operators[counter++];\n if (typeof operator === \"number\") {\n // Operator is really an operand and should be pushed to the stack.\n stack.push(operator);\n continue;\n }\n switch (operator) {\n // non standard ps operators\n case \"jz\": // jump if false\n b = stack.pop();\n a = stack.pop();\n if (!a) {\n counter = b;\n }\n break;\n case \"j\": // jump\n a = stack.pop();\n counter = a;\n break;\n\n // all ps operators in alphabetical order (excluding if/ifelse)\n case \"abs\":\n a = stack.pop();\n stack.push(Math.abs(a));\n break;\n case \"add\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a + b);\n break;\n case \"and\":\n b = stack.pop();\n a = stack.pop();\n if (typeof a === \"boolean\" && typeof b === \"boolean\") {\n stack.push(a && b);\n } else {\n stack.push(a & b);\n }\n break;\n case \"atan\":\n a = stack.pop();\n stack.push(Math.atan(a));\n break;\n case \"bitshift\":\n b = stack.pop();\n a = stack.pop();\n if (a > 0) {\n stack.push(a << b);\n } else {\n stack.push(a >> b);\n }\n break;\n case \"ceiling\":\n a = stack.pop();\n stack.push(Math.ceil(a));\n break;\n case \"copy\":\n a = stack.pop();\n stack.copy(a);\n break;\n case \"cos\":\n a = stack.pop();\n stack.push(Math.cos(a));\n break;\n case \"cvi\":\n a = stack.pop() | 0;\n stack.push(a);\n break;\n case \"cvr\":\n // noop\n break;\n case \"div\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a / b);\n break;\n case \"dup\":\n stack.copy(1);\n break;\n case \"eq\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a === b);\n break;\n case \"exch\":\n stack.roll(2, 1);\n break;\n case \"exp\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a ** b);\n break;\n case \"false\":\n stack.push(false);\n break;\n case \"floor\":\n a = stack.pop();\n stack.push(Math.floor(a));\n break;\n case \"ge\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a >= b);\n break;\n case \"gt\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a > b);\n break;\n case \"idiv\":\n b = stack.pop();\n a = stack.pop();\n stack.push((a / b) | 0);\n break;\n case \"index\":\n a = stack.pop();\n stack.index(a);\n break;\n case \"le\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a <= b);\n break;\n case \"ln\":\n a = stack.pop();\n stack.push(Math.log(a));\n break;\n case \"log\":\n a = stack.pop();\n stack.push(Math.log(a) / Math.LN10);\n break;\n case \"lt\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a < b);\n break;\n case \"mod\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a % b);\n break;\n case \"mul\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a * b);\n break;\n case \"ne\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a !== b);\n break;\n case \"neg\":\n a = stack.pop();\n stack.push(-a);\n break;\n case \"not\":\n a = stack.pop();\n if (typeof a === \"boolean\") {\n stack.push(!a);\n } else {\n stack.push(~a);\n }\n break;\n case \"or\":\n b = stack.pop();\n a = stack.pop();\n if (typeof a === \"boolean\" && typeof b === \"boolean\") {\n stack.push(a || b);\n } else {\n stack.push(a | b);\n }\n break;\n case \"pop\":\n stack.pop();\n break;\n case \"roll\":\n b = stack.pop();\n a = stack.pop();\n stack.roll(a, b);\n break;\n case \"round\":\n a = stack.pop();\n stack.push(Math.round(a));\n break;\n case \"sin\":\n a = stack.pop();\n stack.push(Math.sin(a));\n break;\n case \"sqrt\":\n a = stack.pop();\n stack.push(Math.sqrt(a));\n break;\n case \"sub\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a - b);\n break;\n case \"true\":\n stack.push(true);\n break;\n case \"truncate\":\n a = stack.pop();\n a = a < 0 ? Math.ceil(a) : Math.floor(a);\n stack.push(a);\n break;\n case \"xor\":\n b = stack.pop();\n a = stack.pop();\n if (typeof a === \"boolean\" && typeof b === \"boolean\") {\n stack.push(a !== b);\n } else {\n stack.push(a ^ b);\n }\n break;\n default:\n throw new FormatError(`Unknown operator ${operator}`);\n }\n }\n return stack.stack;\n }\n}\n\n// Most of the PDFs functions consist of simple operations such as:\n// roll, exch, sub, cvr, pop, index, dup, mul, if, gt, add.\n//\n// We can compile most of such programs, and at the same moment, we can\n// optimize some expressions using basic math properties. Keeping track of\n// min/max values will allow us to avoid extra Math.min/Math.max calls.\nconst PostScriptCompiler = (function PostScriptCompilerClosure() {\n class AstNode {\n constructor(type) {\n this.type = type;\n }\n\n visit(visitor) {\n unreachable(\"abstract method\");\n }\n }\n\n class AstArgument extends AstNode {\n constructor(index, min, max) {\n super(\"args\");\n this.index = index;\n this.min = min;\n this.max = max;\n }\n\n visit(visitor) {\n visitor.visitArgument(this);\n }\n }\n\n class AstLiteral extends AstNode {\n constructor(number) {\n super(\"literal\");\n this.number = number;\n this.min = number;\n this.max = number;\n }\n\n visit(visitor) {\n visitor.visitLiteral(this);\n }\n }\n\n class AstBinaryOperation extends AstNode {\n constructor(op, arg1, arg2, min, max) {\n super(\"binary\");\n this.op = op;\n this.arg1 = arg1;\n this.arg2 = arg2;\n this.min = min;\n this.max = max;\n }\n\n visit(visitor) {\n visitor.visitBinaryOperation(this);\n }\n }\n\n class AstMin extends AstNode {\n constructor(arg, max) {\n super(\"max\");\n this.arg = arg;\n this.min = arg.min;\n this.max = max;\n }\n\n visit(visitor) {\n visitor.visitMin(this);\n }\n }\n\n class AstVariable extends AstNode {\n constructor(index, min, max) {\n super(\"var\");\n this.index = index;\n this.min = min;\n this.max = max;\n }\n\n visit(visitor) {\n visitor.visitVariable(this);\n }\n }\n\n class AstVariableDefinition extends AstNode {\n constructor(variable, arg) {\n super(\"definition\");\n this.variable = variable;\n this.arg = arg;\n }\n\n visit(visitor) {\n visitor.visitVariableDefinition(this);\n }\n }\n\n class ExpressionBuilderVisitor {\n constructor() {\n this.parts = [];\n }\n\n visitArgument(arg) {\n this.parts.push(\n \"Math.max(\",\n arg.min,\n \", Math.min(\",\n arg.max,\n \", src[srcOffset + \",\n arg.index,\n \"]))\"\n );\n }\n\n visitVariable(variable) {\n this.parts.push(\"v\", variable.index);\n }\n\n visitLiteral(literal) {\n this.parts.push(literal.number);\n }\n\n visitBinaryOperation(operation) {\n this.parts.push(\"(\");\n operation.arg1.visit(this);\n this.parts.push(\" \", operation.op, \" \");\n operation.arg2.visit(this);\n this.parts.push(\")\");\n }\n\n visitVariableDefinition(definition) {\n this.parts.push(\"var \");\n definition.variable.visit(this);\n this.parts.push(\" = \");\n definition.arg.visit(this);\n this.parts.push(\";\");\n }\n\n visitMin(max) {\n this.parts.push(\"Math.min(\");\n max.arg.visit(this);\n this.parts.push(\", \", max.max, \")\");\n }\n\n toString() {\n return this.parts.join(\"\");\n }\n }\n\n function buildAddOperation(num1, num2) {\n if (num2.type === \"literal\" && num2.number === 0) {\n // optimization: second operand is 0\n return num1;\n }\n if (num1.type === \"literal\" && num1.number === 0) {\n // optimization: first operand is 0\n return num2;\n }\n if (num2.type === \"literal\" && num1.type === \"literal\") {\n // optimization: operands operand are literals\n return new AstLiteral(num1.number + num2.number);\n }\n return new AstBinaryOperation(\n \"+\",\n num1,\n num2,\n num1.min + num2.min,\n num1.max + num2.max\n );\n }\n\n function buildMulOperation(num1, num2) {\n if (num2.type === \"literal\") {\n // optimization: second operands is a literal...\n if (num2.number === 0) {\n return new AstLiteral(0); // and it's 0\n } else if (num2.number === 1) {\n return num1; // and it's 1\n } else if (num1.type === \"literal\") {\n // ... and first operands is a literal too\n return new AstLiteral(num1.number * num2.number);\n }\n }\n if (num1.type === \"literal\") {\n // optimization: first operands is a literal...\n if (num1.number === 0) {\n return new AstLiteral(0); // and it's 0\n } else if (num1.number === 1) {\n return num2; // and it's 1\n }\n }\n const min = Math.min(\n num1.min * num2.min,\n num1.min * num2.max,\n num1.max * num2.min,\n num1.max * num2.max\n );\n const max = Math.max(\n num1.min * num2.min,\n num1.min * num2.max,\n num1.max * num2.min,\n num1.max * num2.max\n );\n return new AstBinaryOperation(\"*\", num1, num2, min, max);\n }\n\n function buildSubOperation(num1, num2) {\n if (num2.type === \"literal\") {\n // optimization: second operands is a literal...\n if (num2.number === 0) {\n return num1; // ... and it's 0\n } else if (num1.type === \"literal\") {\n // ... and first operands is a literal too\n return new AstLiteral(num1.number - num2.number);\n }\n }\n if (\n num2.type === \"binary\" &&\n num2.op === \"-\" &&\n num1.type === \"literal\" &&\n num1.number === 1 &&\n num2.arg1.type === \"literal\" &&\n num2.arg1.number === 1\n ) {\n // optimization for case: 1 - (1 - x)\n return num2.arg2;\n }\n return new AstBinaryOperation(\n \"-\",\n num1,\n num2,\n num1.min - num2.max,\n num1.max - num2.min\n );\n }\n\n function buildMinOperation(num1, max) {\n if (num1.min >= max) {\n // optimization: num1 min value is not less than required max\n return new AstLiteral(max); // just returning max\n } else if (num1.max <= max) {\n // optimization: num1 max value is not greater than required max\n return num1; // just returning an argument\n }\n return new AstMin(num1, max);\n }\n\n // eslint-disable-next-line no-shadow\n class PostScriptCompiler {\n compile(code, domain, range) {\n const stack = [];\n const instructions = [];\n const inputSize = domain.length >> 1,\n outputSize = range.length >> 1;\n let lastRegister = 0;\n let n, j;\n let num1, num2, ast1, ast2, tmpVar, item;\n for (let i = 0; i < inputSize; i++) {\n stack.push(new AstArgument(i, domain[i * 2], domain[i * 2 + 1]));\n }\n\n for (let i = 0, ii = code.length; i < ii; i++) {\n item = code[i];\n if (typeof item === \"number\") {\n stack.push(new AstLiteral(item));\n continue;\n }\n\n switch (item) {\n case \"add\":\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildAddOperation(num1, num2));\n break;\n case \"cvr\":\n if (stack.length < 1) {\n return null;\n }\n break;\n case \"mul\":\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildMulOperation(num1, num2));\n break;\n case \"sub\":\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildSubOperation(num1, num2));\n break;\n case \"exch\":\n if (stack.length < 2) {\n return null;\n }\n ast1 = stack.pop();\n ast2 = stack.pop();\n stack.push(ast1, ast2);\n break;\n case \"pop\":\n if (stack.length < 1) {\n return null;\n }\n stack.pop();\n break;\n case \"index\":\n if (stack.length < 1) {\n return null;\n }\n num1 = stack.pop();\n if (num1.type !== \"literal\") {\n return null;\n }\n n = num1.number;\n if (n < 0 || !Number.isInteger(n) || stack.length < n) {\n return null;\n }\n ast1 = stack[stack.length - n - 1];\n if (ast1.type === \"literal\" || ast1.type === \"var\") {\n stack.push(ast1);\n break;\n }\n tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n stack[stack.length - n - 1] = tmpVar;\n stack.push(tmpVar);\n instructions.push(new AstVariableDefinition(tmpVar, ast1));\n break;\n case \"dup\":\n if (stack.length < 1) {\n return null;\n }\n if (\n typeof code[i + 1] === \"number\" &&\n code[i + 2] === \"gt\" &&\n code[i + 3] === i + 7 &&\n code[i + 4] === \"jz\" &&\n code[i + 5] === \"pop\" &&\n code[i + 6] === code[i + 1]\n ) {\n // special case of the commands sequence for the min operation\n num1 = stack.pop();\n stack.push(buildMinOperation(num1, code[i + 1]));\n i += 6;\n break;\n }\n ast1 = stack[stack.length - 1];\n if (ast1.type === \"literal\" || ast1.type === \"var\") {\n // we don't have to save into intermediate variable a literal or\n // variable.\n stack.push(ast1);\n break;\n }\n tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n stack[stack.length - 1] = tmpVar;\n stack.push(tmpVar);\n instructions.push(new AstVariableDefinition(tmpVar, ast1));\n break;\n case \"roll\":\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n if (num2.type !== \"literal\" || num1.type !== \"literal\") {\n // both roll operands must be numbers\n return null;\n }\n j = num2.number;\n n = num1.number;\n if (\n n <= 0 ||\n !Number.isInteger(n) ||\n !Number.isInteger(j) ||\n stack.length < n\n ) {\n // ... and integers\n return null;\n }\n j = ((j % n) + n) % n;\n if (j === 0) {\n break; // just skipping -- there are nothing to rotate\n }\n Array.prototype.push.apply(\n stack,\n stack.splice(stack.length - n, n - j)\n );\n break;\n default:\n return null; // unsupported operator\n }\n }\n\n if (stack.length !== outputSize) {\n return null;\n }\n\n const result = [];\n for (const instruction of instructions) {\n const statementBuilder = new ExpressionBuilderVisitor();\n instruction.visit(statementBuilder);\n result.push(statementBuilder.toString());\n }\n for (let i = 0, ii = stack.length; i < ii; i++) {\n const expr = stack[i],\n statementBuilder = new ExpressionBuilderVisitor();\n expr.visit(statementBuilder);\n const min = range[i * 2],\n max = range[i * 2 + 1];\n const out = [statementBuilder.toString()];\n if (min > expr.min) {\n out.unshift(\"Math.max(\", min, \", \");\n out.push(\")\");\n }\n if (max < expr.max) {\n out.unshift(\"Math.min(\", max, \", \");\n out.push(\")\");\n }\n out.unshift(\"dest[destOffset + \", i, \"] = \");\n out.push(\";\");\n result.push(out.join(\"\"));\n }\n return result.join(\"\\n\");\n }\n }\n\n return PostScriptCompiler;\n})();\n\nexport {\n isPDFFunction,\n PDFFunctionFactory,\n PostScriptCompiler,\n PostScriptEvaluator,\n};\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FormatError, shadow } from \"../shared/util.js\";\nimport { EOF } from \"./primitives.js\";\nimport { isWhiteSpace } from \"./core_utils.js\";\n\nclass PostScriptParser {\n constructor(lexer) {\n this.lexer = lexer;\n this.operators = [];\n this.token = null;\n this.prev = null;\n }\n\n nextToken() {\n this.prev = this.token;\n this.token = this.lexer.getToken();\n }\n\n accept(type) {\n if (this.token.type === type) {\n this.nextToken();\n return true;\n }\n return false;\n }\n\n expect(type) {\n if (this.accept(type)) {\n return true;\n }\n throw new FormatError(\n `Unexpected symbol: found ${this.token.type} expected ${type}.`\n );\n }\n\n parse() {\n this.nextToken();\n this.expect(PostScriptTokenTypes.LBRACE);\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n return this.operators;\n }\n\n parseBlock() {\n while (true) {\n if (this.accept(PostScriptTokenTypes.NUMBER)) {\n this.operators.push(this.prev.value);\n } else if (this.accept(PostScriptTokenTypes.OPERATOR)) {\n this.operators.push(this.prev.value);\n } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n this.parseCondition();\n } else {\n return;\n }\n }\n }\n\n parseCondition() {\n // Add two place holders that will be updated later\n const conditionLocation = this.operators.length;\n this.operators.push(null, null);\n\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n if (this.accept(PostScriptTokenTypes.IF)) {\n // The true block is right after the 'if' so it just falls through on true\n // else it jumps and skips the true block.\n this.operators[conditionLocation] = this.operators.length;\n this.operators[conditionLocation + 1] = \"jz\";\n } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n const jumpLocation = this.operators.length;\n this.operators.push(null, null);\n const endOfTrue = this.operators.length;\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n this.expect(PostScriptTokenTypes.IFELSE);\n // The jump is added at the end of the true block to skip the false block.\n this.operators[jumpLocation] = this.operators.length;\n this.operators[jumpLocation + 1] = \"j\";\n\n this.operators[conditionLocation] = endOfTrue;\n this.operators[conditionLocation + 1] = \"jz\";\n } else {\n throw new FormatError(\"PS Function: error parsing conditional.\");\n }\n }\n}\n\nconst PostScriptTokenTypes = {\n LBRACE: 0,\n RBRACE: 1,\n NUMBER: 2,\n OPERATOR: 3,\n IF: 4,\n IFELSE: 5,\n};\n\nclass PostScriptToken {\n static get opCache() {\n return shadow(this, \"opCache\", Object.create(null));\n }\n\n constructor(type, value) {\n this.type = type;\n this.value = value;\n }\n\n static getOperator(op) {\n const opValue = PostScriptToken.opCache[op];\n if (opValue) {\n return opValue;\n }\n return (PostScriptToken.opCache[op] = new PostScriptToken(\n PostScriptTokenTypes.OPERATOR,\n op\n ));\n }\n\n static get LBRACE() {\n return shadow(\n this,\n \"LBRACE\",\n new PostScriptToken(PostScriptTokenTypes.LBRACE, \"{\")\n );\n }\n\n static get RBRACE() {\n return shadow(\n this,\n \"RBRACE\",\n new PostScriptToken(PostScriptTokenTypes.RBRACE, \"}\")\n );\n }\n\n static get IF() {\n return shadow(\n this,\n \"IF\",\n new PostScriptToken(PostScriptTokenTypes.IF, \"IF\")\n );\n }\n\n static get IFELSE() {\n return shadow(\n this,\n \"IFELSE\",\n new PostScriptToken(PostScriptTokenTypes.IFELSE, \"IFELSE\")\n );\n }\n}\n\nclass PostScriptLexer {\n constructor(stream) {\n this.stream = stream;\n this.nextChar();\n\n this.strBuf = [];\n }\n\n nextChar() {\n return (this.currentChar = this.stream.getByte());\n }\n\n getToken() {\n let comment = false;\n let ch = this.currentChar;\n\n // skip comments\n while (true) {\n if (ch < 0) {\n return EOF;\n }\n\n if (comment) {\n if (ch === 0x0a || ch === 0x0d) {\n comment = false;\n }\n } else if (ch === /* '%' = */ 0x25) {\n comment = true;\n } else if (!isWhiteSpace(ch)) {\n break;\n }\n ch = this.nextChar();\n }\n switch (ch | 0) {\n case 0x30: // '0'\n case 0x31: // '1'\n case 0x32: // '2'\n case 0x33: // '3'\n case 0x34: // '4'\n case 0x35: // '5'\n case 0x36: // '6'\n case 0x37: // '7'\n case 0x38: // '8'\n case 0x39: // '9'\n case 0x2b: // '+'\n case 0x2d: // '-'\n case 0x2e: // '.'\n return new PostScriptToken(\n PostScriptTokenTypes.NUMBER,\n this.getNumber()\n );\n case 0x7b: // '{'\n this.nextChar();\n return PostScriptToken.LBRACE;\n case 0x7d: // '}'\n this.nextChar();\n return PostScriptToken.RBRACE;\n }\n // operator\n const strBuf = this.strBuf;\n strBuf.length = 0;\n strBuf[0] = String.fromCharCode(ch);\n\n while (\n (ch = this.nextChar()) >= 0 &&\n ((ch >= /* 'A' = */ 0x41 && ch <= /* 'Z' = */ 0x5a) ||\n (ch >= /* 'a' = */ 0x61 && ch <= /* 'z' = */ 0x7a))\n ) {\n strBuf.push(String.fromCharCode(ch));\n }\n const str = strBuf.join(\"\");\n switch (str.toLowerCase()) {\n case \"if\":\n return PostScriptToken.IF;\n case \"ifelse\":\n return PostScriptToken.IFELSE;\n default:\n return PostScriptToken.getOperator(str);\n }\n }\n\n getNumber() {\n let ch = this.currentChar;\n const strBuf = this.strBuf;\n strBuf.length = 0;\n strBuf[0] = String.fromCharCode(ch);\n\n while ((ch = this.nextChar()) >= 0) {\n if (\n (ch >= /* '0' = */ 0x30 && ch <= /* '9' = */ 0x39) ||\n ch === /* '-' = */ 0x2d ||\n ch === /* '.' = */ 0x2e\n ) {\n strBuf.push(String.fromCharCode(ch));\n } else {\n break;\n }\n }\n const value = parseFloat(strBuf.join(\"\"));\n if (isNaN(value)) {\n throw new FormatError(`Invalid floating point number: ${value}`);\n }\n return value;\n }\n}\n\nexport { PostScriptLexer, PostScriptParser };\n","/* Copyright 2019 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, shadow, unreachable, warn } from \"../shared/util.js\";\nimport { RefSetCache } from \"./primitives.js\";\n\nclass BaseLocalCache {\n constructor(options) {\n if (this.constructor === BaseLocalCache) {\n unreachable(\"Cannot initialize BaseLocalCache.\");\n }\n this._onlyRefs = (options && options.onlyRefs) === true;\n\n if (!this._onlyRefs) {\n this._nameRefMap = new Map();\n this._imageMap = new Map();\n }\n this._imageCache = new RefSetCache();\n }\n\n getByName(name) {\n if (this._onlyRefs) {\n unreachable(\"Should not call `getByName` method.\");\n }\n const ref = this._nameRefMap.get(name);\n if (ref) {\n return this.getByRef(ref);\n }\n return this._imageMap.get(name) || null;\n }\n\n getByRef(ref) {\n return this._imageCache.get(ref) || null;\n }\n\n set(name, ref, data) {\n unreachable(\"Abstract method `set` called.\");\n }\n}\n\nclass LocalImageCache extends BaseLocalCache {\n set(name, ref = null, data) {\n if (typeof name !== \"string\") {\n throw new Error('LocalImageCache.set - expected \"name\" argument.');\n }\n if (ref) {\n if (this._imageCache.has(ref)) {\n return;\n }\n this._nameRefMap.set(name, ref);\n this._imageCache.put(ref, data);\n return;\n }\n // name\n if (this._imageMap.has(name)) {\n return;\n }\n this._imageMap.set(name, data);\n }\n}\n\nclass LocalColorSpaceCache extends BaseLocalCache {\n set(name = null, ref = null, data) {\n if (typeof name !== \"string\" && !ref) {\n throw new Error(\n 'LocalColorSpaceCache.set - expected \"name\" and/or \"ref\" argument.'\n );\n }\n if (ref) {\n if (this._imageCache.has(ref)) {\n return;\n }\n if (name !== null) {\n // Optional when `ref` is defined.\n this._nameRefMap.set(name, ref);\n }\n this._imageCache.put(ref, data);\n return;\n }\n // name\n if (this._imageMap.has(name)) {\n return;\n }\n this._imageMap.set(name, data);\n }\n}\n\nclass LocalFunctionCache extends BaseLocalCache {\n constructor(options) {\n super({ onlyRefs: true });\n }\n\n set(name = null, ref, data) {\n if (!ref) {\n throw new Error('LocalFunctionCache.set - expected \"ref\" argument.');\n }\n if (this._imageCache.has(ref)) {\n return;\n }\n this._imageCache.put(ref, data);\n }\n}\n\nclass LocalGStateCache extends BaseLocalCache {\n set(name, ref = null, data) {\n if (typeof name !== \"string\") {\n throw new Error('LocalGStateCache.set - expected \"name\" argument.');\n }\n if (ref) {\n if (this._imageCache.has(ref)) {\n return;\n }\n this._nameRefMap.set(name, ref);\n this._imageCache.put(ref, data);\n return;\n }\n // name\n if (this._imageMap.has(name)) {\n return;\n }\n this._imageMap.set(name, data);\n }\n}\n\nclass LocalTilingPatternCache extends BaseLocalCache {\n constructor(options) {\n super({ onlyRefs: true });\n }\n\n set(name = null, ref, data) {\n if (!ref) {\n throw new Error('LocalTilingPatternCache.set - expected \"ref\" argument.');\n }\n if (this._imageCache.has(ref)) {\n return;\n }\n this._imageCache.put(ref, data);\n }\n}\n\nclass GlobalImageCache {\n static get NUM_PAGES_THRESHOLD() {\n return shadow(this, \"NUM_PAGES_THRESHOLD\", 2);\n }\n\n static get MIN_IMAGES_TO_CACHE() {\n return shadow(this, \"MIN_IMAGES_TO_CACHE\", 10);\n }\n\n static get MAX_BYTE_SIZE() {\n return shadow(this, \"MAX_BYTE_SIZE\", /* Forty megabytes = */ 40e6);\n }\n\n constructor() {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n GlobalImageCache.NUM_PAGES_THRESHOLD > 1,\n \"GlobalImageCache - invalid NUM_PAGES_THRESHOLD constant.\"\n );\n }\n this._refCache = new RefSetCache();\n this._imageCache = new RefSetCache();\n }\n\n get _byteSize() {\n let byteSize = 0;\n for (const imageData of this._imageCache) {\n byteSize += imageData.byteSize;\n }\n return byteSize;\n }\n\n get _cacheLimitReached() {\n if (this._imageCache.size < GlobalImageCache.MIN_IMAGES_TO_CACHE) {\n return false;\n }\n if (this._byteSize < GlobalImageCache.MAX_BYTE_SIZE) {\n return false;\n }\n return true;\n }\n\n shouldCache(ref, pageIndex) {\n const pageIndexSet = this._refCache.get(ref);\n const numPages = pageIndexSet\n ? pageIndexSet.size + (pageIndexSet.has(pageIndex) ? 0 : 1)\n : 1;\n\n if (numPages < GlobalImageCache.NUM_PAGES_THRESHOLD) {\n return false;\n }\n if (!this._imageCache.has(ref) && this._cacheLimitReached) {\n return false;\n }\n return true;\n }\n\n addPageIndex(ref, pageIndex) {\n let pageIndexSet = this._refCache.get(ref);\n if (!pageIndexSet) {\n pageIndexSet = new Set();\n this._refCache.put(ref, pageIndexSet);\n }\n pageIndexSet.add(pageIndex);\n }\n\n /**\n * PLEASE NOTE: Must be called *after* the `setData` method.\n */\n addByteSize(ref, byteSize) {\n const imageData = this._imageCache.get(ref);\n if (!imageData) {\n return; // The image data isn't cached (the limit was reached).\n }\n if (imageData.byteSize) {\n return; // The byte-size has already been set.\n }\n imageData.byteSize = byteSize;\n }\n\n getData(ref, pageIndex) {\n const pageIndexSet = this._refCache.get(ref);\n if (!pageIndexSet) {\n return null;\n }\n if (pageIndexSet.size < GlobalImageCache.NUM_PAGES_THRESHOLD) {\n return null;\n }\n const imageData = this._imageCache.get(ref);\n if (!imageData) {\n return null;\n }\n // Ensure that we keep track of all pages containing the image reference.\n pageIndexSet.add(pageIndex);\n\n return imageData;\n }\n\n setData(ref, data) {\n if (!this._refCache.has(ref)) {\n throw new Error(\n 'GlobalImageCache.setData - expected \"addPageIndex\" to have been called.'\n );\n }\n if (this._imageCache.has(ref)) {\n return;\n }\n if (this._cacheLimitReached) {\n warn(\"GlobalImageCache.setData - cache limit reached.\");\n return;\n }\n this._imageCache.put(ref, data);\n }\n\n clear(onlyData = false) {\n if (!onlyData) {\n this._refCache.clear();\n }\n this._imageCache.clear();\n }\n}\n\nexport {\n GlobalImageCache,\n LocalColorSpaceCache,\n LocalFunctionCache,\n LocalGStateCache,\n LocalImageCache,\n LocalTilingPatternCache,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { warn } from \"../shared/util.js\";\n\n// Character types for symbols from 0000 to 00FF.\n// Source: ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData.txt\n// prettier-ignore\nconst baseTypes = [\n \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"S\", \"B\", \"S\",\n \"WS\", \"B\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\",\n \"BN\", \"BN\", \"BN\", \"BN\", \"B\", \"B\", \"B\", \"S\", \"WS\", \"ON\", \"ON\", \"ET\",\n \"ET\", \"ET\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ES\", \"CS\", \"ES\", \"CS\", \"CS\",\n \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"CS\", \"ON\",\n \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\",\n \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"B\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\",\n \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\",\n \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"CS\", \"ON\", \"ET\",\n \"ET\", \"ET\", \"ET\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"ON\", \"ON\", \"BN\", \"ON\",\n \"ON\", \"ET\", \"ET\", \"EN\", \"EN\", \"ON\", \"L\", \"ON\", \"ON\", \"ON\", \"EN\", \"L\",\n \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\"\n];\n\n// Character types for symbols from 0600 to 06FF.\n// Source: ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData.txt\n// Note that 061D does not exist in the Unicode standard (see\n// http://unicode.org/charts/PDF/U0600.pdf), so we replace it with an\n// empty string and issue a warning if we encounter this character. The\n// empty string is required to properly index the items after it.\n// prettier-ignore\nconst arabicTypes = [\n \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"ON\", \"ON\", \"AL\", \"ET\", \"ET\", \"AL\",\n \"CS\", \"AL\", \"ON\", \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\",\n \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\",\n \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\",\n \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\",\n \"AN\", \"AN\", \"AN\", \"ET\", \"AN\", \"AN\", \"AL\", \"AL\", \"AL\", \"NSM\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AN\",\n \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"NSM\", \"NSM\",\n \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"EN\", \"EN\", \"EN\", \"EN\",\n \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\"\n];\n\nfunction isOdd(i) {\n return (i & 1) !== 0;\n}\n\nfunction isEven(i) {\n return (i & 1) === 0;\n}\n\nfunction findUnequal(arr, start, value) {\n let j, jj;\n for (j = start, jj = arr.length; j < jj; ++j) {\n if (arr[j] !== value) {\n return j;\n }\n }\n return j;\n}\n\nfunction setValues(arr, start, end, value) {\n for (let j = start; j < end; ++j) {\n arr[j] = value;\n }\n}\n\nfunction reverseValues(arr, start, end) {\n for (let i = start, j = end - 1; i < j; ++i, --j) {\n const temp = arr[i];\n arr[i] = arr[j];\n arr[j] = temp;\n }\n}\n\nfunction createBidiText(str, isLTR, vertical = false) {\n let dir = \"ltr\";\n if (vertical) {\n dir = \"ttb\";\n } else if (!isLTR) {\n dir = \"rtl\";\n }\n return { str, dir };\n}\n\n// These are used in bidi(), which is called frequently. We re-use them on\n// each call to avoid unnecessary allocations.\nconst chars = [];\nconst types = [];\n\nfunction bidi(str, startLevel = -1, vertical = false) {\n let isLTR = true;\n const strLength = str.length;\n if (strLength === 0 || vertical) {\n return createBidiText(str, isLTR, vertical);\n }\n\n // Get types and fill arrays\n chars.length = strLength;\n types.length = strLength;\n let numBidi = 0;\n\n let i, ii;\n for (i = 0; i < strLength; ++i) {\n chars[i] = str.charAt(i);\n\n const charCode = str.charCodeAt(i);\n let charType = \"L\";\n if (charCode <= 0x00ff) {\n charType = baseTypes[charCode];\n } else if (0x0590 <= charCode && charCode <= 0x05f4) {\n charType = \"R\";\n } else if (0x0600 <= charCode && charCode <= 0x06ff) {\n charType = arabicTypes[charCode & 0xff];\n if (!charType) {\n warn(\"Bidi: invalid Unicode character \" + charCode.toString(16));\n }\n } else if (0x0700 <= charCode && charCode <= 0x08ac) {\n charType = \"AL\";\n }\n if (charType === \"R\" || charType === \"AL\" || charType === \"AN\") {\n numBidi++;\n }\n types[i] = charType;\n }\n\n // Detect the bidi method\n // - If there are no rtl characters then no bidi needed\n // - If less than 30% chars are rtl then string is primarily ltr,\n // unless the string is very short.\n // - If more than 30% chars are rtl then string is primarily rtl\n if (numBidi === 0) {\n isLTR = true;\n return createBidiText(str, isLTR);\n }\n\n if (startLevel === -1) {\n if (numBidi / strLength < 0.3 && strLength > 4) {\n isLTR = true;\n startLevel = 0;\n } else {\n isLTR = false;\n startLevel = 1;\n }\n }\n\n const levels = [];\n for (i = 0; i < strLength; ++i) {\n levels[i] = startLevel;\n }\n\n /*\n X1-X10: skip most of this, since we are NOT doing the embeddings.\n */\n const e = isOdd(startLevel) ? \"R\" : \"L\";\n const sor = e;\n const eor = sor;\n\n /*\n W1. Examine each non-spacing mark (NSM) in the level run, and change the\n type of the NSM to the type of the previous character. If the NSM is at the\n start of the level run, it will get the type of sor.\n */\n let lastType = sor;\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"NSM\") {\n types[i] = lastType;\n } else {\n lastType = types[i];\n }\n }\n\n /*\n W2. Search backwards from each instance of a European number until the\n first strong type (R, L, AL, or sor) is found. If an AL is found, change\n the type of the European number to Arabic number.\n */\n lastType = sor;\n let t;\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === \"EN\") {\n types[i] = lastType === \"AL\" ? \"AN\" : \"EN\";\n } else if (t === \"R\" || t === \"L\" || t === \"AL\") {\n lastType = t;\n }\n }\n\n /*\n W3. Change all ALs to R.\n */\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === \"AL\") {\n types[i] = \"R\";\n }\n }\n\n /*\n W4. A single European separator between two European numbers changes to a\n European number. A single common separator between two numbers of the same\n type changes to that type:\n */\n for (i = 1; i < strLength - 1; ++i) {\n if (types[i] === \"ES\" && types[i - 1] === \"EN\" && types[i + 1] === \"EN\") {\n types[i] = \"EN\";\n }\n if (\n types[i] === \"CS\" &&\n (types[i - 1] === \"EN\" || types[i - 1] === \"AN\") &&\n types[i + 1] === types[i - 1]\n ) {\n types[i] = types[i - 1];\n }\n }\n\n /*\n W5. A sequence of European terminators adjacent to European numbers changes\n to all European numbers:\n */\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"EN\") {\n // do before\n for (let j = i - 1; j >= 0; --j) {\n if (types[j] !== \"ET\") {\n break;\n }\n types[j] = \"EN\";\n }\n // do after\n for (let j = i + 1; j < strLength; ++j) {\n if (types[j] !== \"ET\") {\n break;\n }\n types[j] = \"EN\";\n }\n }\n }\n\n /*\n W6. Otherwise, separators and terminators change to Other Neutral:\n */\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === \"WS\" || t === \"ES\" || t === \"ET\" || t === \"CS\") {\n types[i] = \"ON\";\n }\n }\n\n /*\n W7. Search backwards from each instance of a European number until the\n first strong type (R, L, or sor) is found. If an L is found, then change\n the type of the European number to L.\n */\n lastType = sor;\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === \"EN\") {\n types[i] = lastType === \"L\" ? \"L\" : \"EN\";\n } else if (t === \"R\" || t === \"L\") {\n lastType = t;\n }\n }\n\n /*\n N1. A sequence of neutrals takes the direction of the surrounding strong\n text if the text on both sides has the same direction. European and Arabic\n numbers are treated as though they were R. Start-of-level-run (sor) and\n end-of-level-run (eor) are used at level run boundaries.\n */\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"ON\") {\n const end = findUnequal(types, i + 1, \"ON\");\n let before = sor;\n if (i > 0) {\n before = types[i - 1];\n }\n\n let after = eor;\n if (end + 1 < strLength) {\n after = types[end + 1];\n }\n if (before !== \"L\") {\n before = \"R\";\n }\n if (after !== \"L\") {\n after = \"R\";\n }\n if (before === after) {\n setValues(types, i, end, before);\n }\n i = end - 1; // reset to end (-1 so next iteration is ok)\n }\n }\n\n /*\n N2. Any remaining neutrals take the embedding direction.\n */\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"ON\") {\n types[i] = e;\n }\n }\n\n /*\n I1. For all characters with an even (left-to-right) embedding direction,\n those of type R go up one level and those of type AN or EN go up two\n levels.\n I2. For all characters with an odd (right-to-left) embedding direction,\n those of type L, EN or AN go up one level.\n */\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (isEven(levels[i])) {\n if (t === \"R\") {\n levels[i] += 1;\n } else if (t === \"AN\" || t === \"EN\") {\n levels[i] += 2;\n }\n } else {\n // isOdd\n if (t === \"L\" || t === \"AN\" || t === \"EN\") {\n levels[i] += 1;\n }\n }\n }\n\n /*\n L1. On each line, reset the embedding level of the following characters to\n the paragraph embedding level:\n\n segment separators,\n paragraph separators,\n any sequence of whitespace characters preceding a segment separator or\n paragraph separator, and any sequence of white space characters at the end\n of the line.\n */\n\n // don't bother as text is only single line\n\n /*\n L2. From the highest level found in the text to the lowest odd level on\n each line, reverse any contiguous sequence of characters that are at that\n level or higher.\n */\n\n // find highest level & lowest odd level\n let highestLevel = -1;\n let lowestOddLevel = 99;\n let level;\n for (i = 0, ii = levels.length; i < ii; ++i) {\n level = levels[i];\n if (highestLevel < level) {\n highestLevel = level;\n }\n if (lowestOddLevel > level && isOdd(level)) {\n lowestOddLevel = level;\n }\n }\n\n // now reverse between those limits\n for (level = highestLevel; level >= lowestOddLevel; --level) {\n // find segments to reverse\n let start = -1;\n for (i = 0, ii = levels.length; i < ii; ++i) {\n if (levels[i] < level) {\n if (start >= 0) {\n reverseValues(chars, start, i);\n start = -1;\n }\n } else if (start < 0) {\n start = i;\n }\n }\n if (start >= 0) {\n reverseValues(chars, start, levels.length);\n }\n }\n\n /*\n L3. Combining marks applied to a right-to-left base character will at this\n point precede their base character. If the rendering engine expects them to\n follow the base characters in the final display process, then the ordering\n of the marks and the base character must be reversed.\n */\n\n // don't bother for now\n\n /*\n L4. A character that possesses the mirrored property as specified by\n Section 4.7, Mirrored, must be depicted by a mirrored glyph if the resolved\n directionality of that character is R.\n */\n\n // don't mirror as characters are already mirrored in the pdf\n\n // Finally, return string\n for (i = 0, ii = chars.length; i < ii; ++i) {\n const ch = chars[i];\n if (ch === \"<\" || ch === \">\") {\n chars[i] = \"\";\n }\n }\n return createBidiText(chars.join(\"\"), isLTR);\n}\n\nexport { bidi };\n","/* Copyright 2014 Opera Software ASA\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n *\n * Based on https://code.google.com/p/smhasher/wiki/MurmurHash3.\n * Hashes roughly 100 KB per millisecond on i7 3.4 GHz.\n */\n\nimport { isArrayBuffer } from \"./util.js\";\n\nconst SEED = 0xc3d2e1f0;\n// Workaround for missing math precision in JS.\nconst MASK_HIGH = 0xffff0000;\nconst MASK_LOW = 0xffff;\n\nclass MurmurHash3_64 {\n constructor(seed) {\n this.h1 = seed ? seed & 0xffffffff : SEED;\n this.h2 = seed ? seed & 0xffffffff : SEED;\n }\n\n update(input) {\n let data, length;\n if (typeof input === \"string\") {\n data = new Uint8Array(input.length * 2);\n length = 0;\n for (let i = 0, ii = input.length; i < ii; i++) {\n const code = input.charCodeAt(i);\n if (code <= 0xff) {\n data[length++] = code;\n } else {\n data[length++] = code >>> 8;\n data[length++] = code & 0xff;\n }\n }\n } else if (isArrayBuffer(input)) {\n data = input.slice();\n length = data.byteLength;\n } else {\n throw new Error(\n \"Wrong data format in MurmurHash3_64_update. \" +\n \"Input must be a string or array.\"\n );\n }\n\n const blockCounts = length >> 2;\n const tailLength = length - blockCounts * 4;\n // We don't care about endianness here.\n const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n let k1 = 0,\n k2 = 0;\n let h1 = this.h1,\n h2 = this.h2;\n const C1 = 0xcc9e2d51,\n C2 = 0x1b873593;\n const C1_LOW = C1 & MASK_LOW,\n C2_LOW = C2 & MASK_LOW;\n\n for (let i = 0; i < blockCounts; i++) {\n if (i & 1) {\n k1 = dataUint32[i];\n k1 = ((k1 * C1) & MASK_HIGH) | ((k1 * C1_LOW) & MASK_LOW);\n k1 = (k1 << 15) | (k1 >>> 17);\n k1 = ((k1 * C2) & MASK_HIGH) | ((k1 * C2_LOW) & MASK_LOW);\n h1 ^= k1;\n h1 = (h1 << 13) | (h1 >>> 19);\n h1 = h1 * 5 + 0xe6546b64;\n } else {\n k2 = dataUint32[i];\n k2 = ((k2 * C1) & MASK_HIGH) | ((k2 * C1_LOW) & MASK_LOW);\n k2 = (k2 << 15) | (k2 >>> 17);\n k2 = ((k2 * C2) & MASK_HIGH) | ((k2 * C2_LOW) & MASK_LOW);\n h2 ^= k2;\n h2 = (h2 << 13) | (h2 >>> 19);\n h2 = h2 * 5 + 0xe6546b64;\n }\n }\n\n k1 = 0;\n\n switch (tailLength) {\n case 3:\n k1 ^= data[blockCounts * 4 + 2] << 16;\n /* falls through */\n case 2:\n k1 ^= data[blockCounts * 4 + 1] << 8;\n /* falls through */\n case 1:\n k1 ^= data[blockCounts * 4];\n /* falls through */\n\n k1 = ((k1 * C1) & MASK_HIGH) | ((k1 * C1_LOW) & MASK_LOW);\n k1 = (k1 << 15) | (k1 >>> 17);\n k1 = ((k1 * C2) & MASK_HIGH) | ((k1 * C2_LOW) & MASK_LOW);\n if (blockCounts & 1) {\n h1 ^= k1;\n } else {\n h2 ^= k1;\n }\n }\n\n this.h1 = h1;\n this.h2 = h2;\n }\n\n hexdigest() {\n let h1 = this.h1,\n h2 = this.h2;\n\n h1 ^= h2 >>> 1;\n h1 = ((h1 * 0xed558ccd) & MASK_HIGH) | ((h1 * 0x8ccd) & MASK_LOW);\n h2 =\n ((h2 * 0xff51afd7) & MASK_HIGH) |\n (((((h2 << 16) | (h1 >>> 16)) * 0xafd7ed55) & MASK_HIGH) >>> 16);\n h1 ^= h2 >>> 1;\n h1 = ((h1 * 0x1a85ec53) & MASK_HIGH) | ((h1 * 0xec53) & MASK_LOW);\n h2 =\n ((h2 * 0xc4ceb9fe) & MASK_HIGH) |\n (((((h2 << 16) | (h1 >>> 16)) * 0xb9fe1a85) & MASK_HIGH) >>> 16);\n h1 ^= h2 >>> 1;\n\n const hex1 = (h1 >>> 0).toString(16),\n hex2 = (h2 >>> 0).toString(16);\n return hex1.padStart(8, \"0\") + hex2.padStart(8, \"0\");\n }\n}\n\nexport { MurmurHash3_64 };\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ImageKind,\n OPS,\n RenderingIntentFlag,\n shadow,\n warn,\n} from \"../shared/util.js\";\n\nfunction addState(parentState, pattern, checkFn, iterateFn, processFn) {\n let state = parentState;\n for (let i = 0, ii = pattern.length - 1; i < ii; i++) {\n const item = pattern[i];\n state = state[item] || (state[item] = []);\n }\n state[pattern[pattern.length - 1]] = {\n checkFn,\n iterateFn,\n processFn,\n };\n}\n\nconst InitialState = [];\n\n// This replaces (save, transform, paintInlineImageXObject, restore)+\n// sequences with one |paintInlineImageXObjectGroup| operation.\naddState(\n InitialState,\n [OPS.save, OPS.transform, OPS.paintInlineImageXObject, OPS.restore],\n null,\n function iterateInlineImageGroup(context, i) {\n const fnArray = context.fnArray;\n const iFirstSave = context.iCurr - 3;\n const pos = (i - iFirstSave) % 4;\n switch (pos) {\n case 0:\n return fnArray[i] === OPS.save;\n case 1:\n return fnArray[i] === OPS.transform;\n case 2:\n return fnArray[i] === OPS.paintInlineImageXObject;\n case 3:\n return fnArray[i] === OPS.restore;\n }\n throw new Error(`iterateInlineImageGroup - invalid pos: ${pos}`);\n },\n function foundInlineImageGroup(context, i) {\n const MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10;\n const MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200;\n const MAX_WIDTH = 1000;\n const IMAGE_PADDING = 1;\n\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const curr = context.iCurr;\n const iFirstSave = curr - 3;\n const iFirstTransform = curr - 2;\n const iFirstPIIXO = curr - 1;\n\n const count = Math.min(\n Math.floor((i - iFirstSave) / 4),\n MAX_IMAGES_IN_INLINE_IMAGES_BLOCK\n );\n if (count < MIN_IMAGES_IN_INLINE_IMAGES_BLOCK) {\n return i - ((i - iFirstSave) % 4);\n }\n\n // assuming that heights of those image is too small (~1 pixel)\n // packing as much as possible by lines\n let maxX = 0;\n const map = [];\n let maxLineHeight = 0;\n let currentX = IMAGE_PADDING,\n currentY = IMAGE_PADDING;\n for (let q = 0; q < count; q++) {\n const transform = argsArray[iFirstTransform + (q << 2)];\n const img = argsArray[iFirstPIIXO + (q << 2)][0];\n if (currentX + img.width > MAX_WIDTH) {\n // starting new line\n maxX = Math.max(maxX, currentX);\n currentY += maxLineHeight + 2 * IMAGE_PADDING;\n currentX = 0;\n maxLineHeight = 0;\n }\n map.push({\n transform,\n x: currentX,\n y: currentY,\n w: img.width,\n h: img.height,\n });\n currentX += img.width + 2 * IMAGE_PADDING;\n maxLineHeight = Math.max(maxLineHeight, img.height);\n }\n const imgWidth = Math.max(maxX, currentX) + IMAGE_PADDING;\n const imgHeight = currentY + maxLineHeight + IMAGE_PADDING;\n const imgData = new Uint8Array(imgWidth * imgHeight * 4);\n const imgRowSize = imgWidth << 2;\n for (let q = 0; q < count; q++) {\n const data = argsArray[iFirstPIIXO + (q << 2)][0].data;\n // Copy image by lines and extends pixels into padding.\n const rowSize = map[q].w << 2;\n let dataOffset = 0;\n let offset = (map[q].x + map[q].y * imgWidth) << 2;\n imgData.set(data.subarray(0, rowSize), offset - imgRowSize);\n for (let k = 0, kk = map[q].h; k < kk; k++) {\n imgData.set(data.subarray(dataOffset, dataOffset + rowSize), offset);\n dataOffset += rowSize;\n offset += imgRowSize;\n }\n imgData.set(data.subarray(dataOffset - rowSize, dataOffset), offset);\n while (offset >= 0) {\n data[offset - 4] = data[offset];\n data[offset - 3] = data[offset + 1];\n data[offset - 2] = data[offset + 2];\n data[offset - 1] = data[offset + 3];\n data[offset + rowSize] = data[offset + rowSize - 4];\n data[offset + rowSize + 1] = data[offset + rowSize - 3];\n data[offset + rowSize + 2] = data[offset + rowSize - 2];\n data[offset + rowSize + 3] = data[offset + rowSize - 1];\n offset -= imgRowSize;\n }\n }\n\n // Replace queue items.\n fnArray.splice(iFirstSave, count * 4, OPS.paintInlineImageXObjectGroup);\n argsArray.splice(iFirstSave, count * 4, [\n {\n width: imgWidth,\n height: imgHeight,\n kind: ImageKind.RGBA_32BPP,\n data: imgData,\n },\n map,\n ]);\n\n return iFirstSave + 1;\n }\n);\n\n// This replaces (save, transform, paintImageMaskXObject, restore)+\n// sequences with one |paintImageMaskXObjectGroup| or one\n// |paintImageMaskXObjectRepeat| operation.\naddState(\n InitialState,\n [OPS.save, OPS.transform, OPS.paintImageMaskXObject, OPS.restore],\n null,\n function iterateImageMaskGroup(context, i) {\n const fnArray = context.fnArray;\n const iFirstSave = context.iCurr - 3;\n const pos = (i - iFirstSave) % 4;\n switch (pos) {\n case 0:\n return fnArray[i] === OPS.save;\n case 1:\n return fnArray[i] === OPS.transform;\n case 2:\n return fnArray[i] === OPS.paintImageMaskXObject;\n case 3:\n return fnArray[i] === OPS.restore;\n }\n throw new Error(`iterateImageMaskGroup - invalid pos: ${pos}`);\n },\n function foundImageMaskGroup(context, i) {\n const MIN_IMAGES_IN_MASKS_BLOCK = 10;\n const MAX_IMAGES_IN_MASKS_BLOCK = 100;\n const MAX_SAME_IMAGES_IN_MASKS_BLOCK = 1000;\n\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const curr = context.iCurr;\n const iFirstSave = curr - 3;\n const iFirstTransform = curr - 2;\n const iFirstPIMXO = curr - 1;\n\n // At this point, i is the index of the first op past the last valid\n // quartet.\n let count = Math.floor((i - iFirstSave) / 4);\n if (count < MIN_IMAGES_IN_MASKS_BLOCK) {\n return i - ((i - iFirstSave) % 4);\n }\n\n let isSameImage = false;\n let iTransform, transformArgs;\n const firstPIMXOArg0 = argsArray[iFirstPIMXO][0];\n const firstTransformArg0 = argsArray[iFirstTransform][0],\n firstTransformArg1 = argsArray[iFirstTransform][1],\n firstTransformArg2 = argsArray[iFirstTransform][2],\n firstTransformArg3 = argsArray[iFirstTransform][3];\n\n if (firstTransformArg1 === firstTransformArg2) {\n isSameImage = true;\n iTransform = iFirstTransform + 4;\n let iPIMXO = iFirstPIMXO + 4;\n for (let q = 1; q < count; q++, iTransform += 4, iPIMXO += 4) {\n transformArgs = argsArray[iTransform];\n if (\n argsArray[iPIMXO][0] !== firstPIMXOArg0 ||\n transformArgs[0] !== firstTransformArg0 ||\n transformArgs[1] !== firstTransformArg1 ||\n transformArgs[2] !== firstTransformArg2 ||\n transformArgs[3] !== firstTransformArg3\n ) {\n if (q < MIN_IMAGES_IN_MASKS_BLOCK) {\n isSameImage = false;\n } else {\n count = q;\n }\n break; // different image or transform\n }\n }\n }\n\n if (isSameImage) {\n count = Math.min(count, MAX_SAME_IMAGES_IN_MASKS_BLOCK);\n const positions = new Float32Array(count * 2);\n iTransform = iFirstTransform;\n for (let q = 0; q < count; q++, iTransform += 4) {\n transformArgs = argsArray[iTransform];\n positions[q << 1] = transformArgs[4];\n positions[(q << 1) + 1] = transformArgs[5];\n }\n\n // Replace queue items.\n fnArray.splice(iFirstSave, count * 4, OPS.paintImageMaskXObjectRepeat);\n argsArray.splice(iFirstSave, count * 4, [\n firstPIMXOArg0,\n firstTransformArg0,\n firstTransformArg1,\n firstTransformArg2,\n firstTransformArg3,\n positions,\n ]);\n } else {\n count = Math.min(count, MAX_IMAGES_IN_MASKS_BLOCK);\n const images = [];\n for (let q = 0; q < count; q++) {\n transformArgs = argsArray[iFirstTransform + (q << 2)];\n const maskParams = argsArray[iFirstPIMXO + (q << 2)][0];\n images.push({\n data: maskParams.data,\n width: maskParams.width,\n height: maskParams.height,\n interpolate: maskParams.interpolate,\n count: maskParams.count,\n transform: transformArgs,\n });\n }\n\n // Replace queue items.\n fnArray.splice(iFirstSave, count * 4, OPS.paintImageMaskXObjectGroup);\n argsArray.splice(iFirstSave, count * 4, [images]);\n }\n\n return iFirstSave + 1;\n }\n);\n\n// This replaces (save, transform, paintImageXObject, restore)+ sequences\n// with one paintImageXObjectRepeat operation, if the |transform| and\n// |paintImageXObjectRepeat| ops are appropriate.\naddState(\n InitialState,\n [OPS.save, OPS.transform, OPS.paintImageXObject, OPS.restore],\n function (context) {\n const argsArray = context.argsArray;\n const iFirstTransform = context.iCurr - 2;\n return (\n argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0\n );\n },\n function iterateImageGroup(context, i) {\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const iFirstSave = context.iCurr - 3;\n const pos = (i - iFirstSave) % 4;\n switch (pos) {\n case 0:\n return fnArray[i] === OPS.save;\n case 1:\n if (fnArray[i] !== OPS.transform) {\n return false;\n }\n const iFirstTransform = context.iCurr - 2;\n const firstTransformArg0 = argsArray[iFirstTransform][0];\n const firstTransformArg3 = argsArray[iFirstTransform][3];\n if (\n argsArray[i][0] !== firstTransformArg0 ||\n argsArray[i][1] !== 0 ||\n argsArray[i][2] !== 0 ||\n argsArray[i][3] !== firstTransformArg3\n ) {\n return false; // transforms don't match\n }\n return true;\n case 2:\n if (fnArray[i] !== OPS.paintImageXObject) {\n return false;\n }\n const iFirstPIXO = context.iCurr - 1;\n const firstPIXOArg0 = argsArray[iFirstPIXO][0];\n if (argsArray[i][0] !== firstPIXOArg0) {\n return false; // images don't match\n }\n return true;\n case 3:\n return fnArray[i] === OPS.restore;\n }\n throw new Error(`iterateImageGroup - invalid pos: ${pos}`);\n },\n function (context, i) {\n const MIN_IMAGES_IN_BLOCK = 3;\n const MAX_IMAGES_IN_BLOCK = 1000;\n\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const curr = context.iCurr;\n const iFirstSave = curr - 3;\n const iFirstTransform = curr - 2;\n const iFirstPIXO = curr - 1;\n const firstPIXOArg0 = argsArray[iFirstPIXO][0];\n const firstTransformArg0 = argsArray[iFirstTransform][0];\n const firstTransformArg3 = argsArray[iFirstTransform][3];\n\n // At this point, i is the index of the first op past the last valid\n // quartet.\n const count = Math.min(\n Math.floor((i - iFirstSave) / 4),\n MAX_IMAGES_IN_BLOCK\n );\n if (count < MIN_IMAGES_IN_BLOCK) {\n return i - ((i - iFirstSave) % 4);\n }\n\n // Extract the (x,y) positions from all of the matching transforms.\n const positions = new Float32Array(count * 2);\n let iTransform = iFirstTransform;\n for (let q = 0; q < count; q++, iTransform += 4) {\n const transformArgs = argsArray[iTransform];\n positions[q << 1] = transformArgs[4];\n positions[(q << 1) + 1] = transformArgs[5];\n }\n\n // Replace queue items.\n const args = [\n firstPIXOArg0,\n firstTransformArg0,\n firstTransformArg3,\n positions,\n ];\n fnArray.splice(iFirstSave, count * 4, OPS.paintImageXObjectRepeat);\n argsArray.splice(iFirstSave, count * 4, args);\n\n return iFirstSave + 1;\n }\n);\n\n// This replaces (beginText, setFont, setTextMatrix, showText, endText)+\n// sequences with (beginText, setFont, (setTextMatrix, showText)+, endText)+\n// sequences, if the font for each one is the same.\naddState(\n InitialState,\n [OPS.beginText, OPS.setFont, OPS.setTextMatrix, OPS.showText, OPS.endText],\n null,\n function iterateShowTextGroup(context, i) {\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const iFirstSave = context.iCurr - 4;\n const pos = (i - iFirstSave) % 5;\n switch (pos) {\n case 0:\n return fnArray[i] === OPS.beginText;\n case 1:\n return fnArray[i] === OPS.setFont;\n case 2:\n return fnArray[i] === OPS.setTextMatrix;\n case 3:\n if (fnArray[i] !== OPS.showText) {\n return false;\n }\n const iFirstSetFont = context.iCurr - 3;\n const firstSetFontArg0 = argsArray[iFirstSetFont][0];\n const firstSetFontArg1 = argsArray[iFirstSetFont][1];\n if (\n argsArray[i][0] !== firstSetFontArg0 ||\n argsArray[i][1] !== firstSetFontArg1\n ) {\n return false; // fonts don't match\n }\n return true;\n case 4:\n return fnArray[i] === OPS.endText;\n }\n throw new Error(`iterateShowTextGroup - invalid pos: ${pos}`);\n },\n function (context, i) {\n const MIN_CHARS_IN_BLOCK = 3;\n const MAX_CHARS_IN_BLOCK = 1000;\n\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const curr = context.iCurr;\n const iFirstBeginText = curr - 4;\n const iFirstSetFont = curr - 3;\n const iFirstSetTextMatrix = curr - 2;\n const iFirstShowText = curr - 1;\n const iFirstEndText = curr;\n const firstSetFontArg0 = argsArray[iFirstSetFont][0];\n const firstSetFontArg1 = argsArray[iFirstSetFont][1];\n\n // At this point, i is the index of the first op past the last valid\n // quintet.\n let count = Math.min(\n Math.floor((i - iFirstBeginText) / 5),\n MAX_CHARS_IN_BLOCK\n );\n if (count < MIN_CHARS_IN_BLOCK) {\n return i - ((i - iFirstBeginText) % 5);\n }\n\n // If the preceding quintet is (, setFont, setTextMatrix,\n // showText, endText), include that as well. (E.g. might be\n // |dependency|.)\n let iFirst = iFirstBeginText;\n if (\n iFirstBeginText >= 4 &&\n fnArray[iFirstBeginText - 4] === fnArray[iFirstSetFont] &&\n fnArray[iFirstBeginText - 3] === fnArray[iFirstSetTextMatrix] &&\n fnArray[iFirstBeginText - 2] === fnArray[iFirstShowText] &&\n fnArray[iFirstBeginText - 1] === fnArray[iFirstEndText] &&\n argsArray[iFirstBeginText - 4][0] === firstSetFontArg0 &&\n argsArray[iFirstBeginText - 4][1] === firstSetFontArg1\n ) {\n count++;\n iFirst -= 5;\n }\n\n // Remove (endText, beginText, setFont) trios.\n let iEndText = iFirst + 4;\n for (let q = 1; q < count; q++) {\n fnArray.splice(iEndText, 3);\n argsArray.splice(iEndText, 3);\n iEndText += 2;\n }\n\n return iEndText + 1;\n }\n);\n\nclass NullOptimizer {\n constructor(queue) {\n this.queue = queue;\n }\n\n _optimize() {}\n\n push(fn, args) {\n this.queue.fnArray.push(fn);\n this.queue.argsArray.push(args);\n this._optimize();\n }\n\n flush() {}\n\n reset() {}\n}\n\nclass QueueOptimizer extends NullOptimizer {\n constructor(queue) {\n super(queue);\n this.state = null;\n this.context = {\n iCurr: 0,\n fnArray: queue.fnArray,\n argsArray: queue.argsArray,\n };\n this.match = null;\n this.lastProcessed = 0;\n }\n\n _optimize() {\n // Process new fnArray item(s) chunk.\n const fnArray = this.queue.fnArray;\n let i = this.lastProcessed,\n ii = fnArray.length;\n let state = this.state;\n let match = this.match;\n if (!state && !match && i + 1 === ii && !InitialState[fnArray[i]]) {\n // Micro-optimization for the common case: last item is not\n // optimizable, just skipping it.\n this.lastProcessed = ii;\n return;\n }\n\n const context = this.context;\n while (i < ii) {\n if (match) {\n // Already find a block of potentially optimizable items, iterating...\n const iterate = (0, match.iterateFn)(context, i);\n if (iterate) {\n i++;\n continue;\n }\n // Found last items for the block, processing...\n i = (0, match.processFn)(context, i + 1);\n ii = fnArray.length;\n match = null;\n state = null;\n if (i >= ii) {\n break;\n }\n }\n // Find the potentially optimizable items.\n state = (state || InitialState)[fnArray[i]];\n if (!state || Array.isArray(state)) {\n i++;\n continue;\n }\n // Found a start of the block based on addState rules.\n context.iCurr = i;\n i++;\n if (state.checkFn && !(0, state.checkFn)(context)) {\n // Check failed, continue search...\n state = null;\n continue;\n }\n match = state;\n state = null;\n }\n this.state = state;\n this.match = match;\n this.lastProcessed = i;\n }\n\n flush() {\n while (this.match) {\n const length = this.queue.fnArray.length;\n this.lastProcessed = (0, this.match.processFn)(this.context, length);\n this.match = null;\n this.state = null;\n // Repeat optimization until all chunks are exhausted.\n this._optimize();\n }\n }\n\n reset() {\n this.state = null;\n this.match = null;\n this.lastProcessed = 0;\n }\n}\n\nclass OperatorList {\n static get CHUNK_SIZE() {\n return shadow(this, \"CHUNK_SIZE\", 1000);\n }\n\n // Close to chunk size.\n static get CHUNK_SIZE_ABOUT() {\n return shadow(this, \"CHUNK_SIZE_ABOUT\", this.CHUNK_SIZE - 5);\n }\n\n constructor(intent = 0, streamSink) {\n this._streamSink = streamSink;\n this.fnArray = [];\n this.argsArray = [];\n if (streamSink && !(intent & RenderingIntentFlag.OPLIST)) {\n this.optimizer = new QueueOptimizer(this);\n } else {\n this.optimizer = new NullOptimizer(this);\n }\n this.dependencies = new Set();\n this._totalLength = 0;\n this.weight = 0;\n this._resolved = streamSink ? null : Promise.resolve();\n }\n\n get length() {\n return this.argsArray.length;\n }\n\n get ready() {\n return this._resolved || this._streamSink.ready;\n }\n\n /**\n * @type {number} The total length of the entire operator list, since\n * `this.length === 0` after flushing.\n */\n get totalLength() {\n return this._totalLength + this.length;\n }\n\n addOp(fn, args) {\n this.optimizer.push(fn, args);\n this.weight++;\n if (this._streamSink) {\n if (this.weight >= OperatorList.CHUNK_SIZE) {\n this.flush();\n } else if (\n this.weight >= OperatorList.CHUNK_SIZE_ABOUT &&\n (fn === OPS.restore || fn === OPS.endText)\n ) {\n // Heuristic to flush on boundary of restore or endText.\n this.flush();\n }\n }\n }\n\n addImageOps(fn, args, optionalContent) {\n if (optionalContent !== undefined) {\n this.addOp(OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n }\n\n this.addOp(fn, args);\n\n if (optionalContent !== undefined) {\n this.addOp(OPS.endMarkedContent, []);\n }\n }\n\n addDependency(dependency) {\n if (this.dependencies.has(dependency)) {\n return;\n }\n this.dependencies.add(dependency);\n this.addOp(OPS.dependency, [dependency]);\n }\n\n addDependencies(dependencies) {\n for (const dependency of dependencies) {\n this.addDependency(dependency);\n }\n }\n\n addOpList(opList) {\n if (!(opList instanceof OperatorList)) {\n warn('addOpList - ignoring invalid \"opList\" parameter.');\n return;\n }\n for (const dependency of opList.dependencies) {\n this.dependencies.add(dependency);\n }\n for (let i = 0, ii = opList.length; i < ii; i++) {\n this.addOp(opList.fnArray[i], opList.argsArray[i]);\n }\n }\n\n getIR() {\n return {\n fnArray: this.fnArray,\n argsArray: this.argsArray,\n length: this.length,\n };\n }\n\n get _transfers() {\n const transfers = [];\n const { fnArray, argsArray, length } = this;\n for (let i = 0; i < length; i++) {\n switch (fnArray[i]) {\n case OPS.paintInlineImageXObject:\n case OPS.paintInlineImageXObjectGroup:\n case OPS.paintImageMaskXObject:\n const arg = argsArray[i][0]; // First parameter in imgData.\n if (\n !arg.cached &&\n arg.data &&\n arg.data.buffer instanceof ArrayBuffer\n ) {\n transfers.push(arg.data.buffer);\n }\n break;\n }\n }\n return transfers;\n }\n\n flush(lastChunk = false) {\n this.optimizer.flush();\n const length = this.length;\n this._totalLength += length;\n\n this._streamSink.enqueue(\n {\n fnArray: this.fnArray,\n argsArray: this.argsArray,\n lastChunk,\n length,\n },\n 1,\n this._transfers\n );\n\n this.dependencies.clear();\n this.fnArray.length = 0;\n this.argsArray.length = 0;\n this.weight = 0;\n this.optimizer.reset();\n }\n}\n\nexport { OperatorList };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n FeatureTest,\n FormatError,\n ImageKind,\n info,\n warn,\n} from \"../shared/util.js\";\nimport { applyMaskImageData } from \"../shared/image_utils.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { JpegStream } from \"./jpeg_stream.js\";\nimport { JpxImage } from \"./jpx.js\";\nimport { Name } from \"./primitives.js\";\n\n/**\n * Decode and clamp a value. The formula is different from the spec because we\n * don't decode to float range [0,1], we decode it in the [0,max] range.\n */\nfunction decodeAndClamp(value, addend, coefficient, max) {\n value = addend + value * coefficient;\n // Clamp the value to the range\n if (value < 0) {\n value = 0;\n } else if (value > max) {\n value = max;\n }\n return value;\n}\n\n/**\n * Resizes an image mask with 1 component.\n * @param {TypedArray} src - The source buffer.\n * @param {number} bpc - Number of bits per component.\n * @param {number} w1 - Original width.\n * @param {number} h1 - Original height.\n * @param {number} w2 - New width.\n * @param {number} h2 - New height.\n * @returns {TypedArray} The resized image mask buffer.\n */\nfunction resizeImageMask(src, bpc, w1, h1, w2, h2) {\n const length = w2 * h2;\n let dest;\n if (bpc <= 8) {\n dest = new Uint8Array(length);\n } else if (bpc <= 16) {\n dest = new Uint16Array(length);\n } else {\n dest = new Uint32Array(length);\n }\n const xRatio = w1 / w2;\n const yRatio = h1 / h2;\n let i,\n j,\n py,\n newIndex = 0,\n oldIndex;\n const xScaled = new Uint16Array(w2);\n const w1Scanline = w1;\n\n for (i = 0; i < w2; i++) {\n xScaled[i] = Math.floor(i * xRatio);\n }\n for (i = 0; i < h2; i++) {\n py = Math.floor(i * yRatio) * w1Scanline;\n for (j = 0; j < w2; j++) {\n oldIndex = py + xScaled[j];\n dest[newIndex++] = src[oldIndex];\n }\n }\n return dest;\n}\n\nclass PDFImage {\n constructor({\n xref,\n res,\n image,\n isInline = false,\n smask = null,\n mask = null,\n isMask = false,\n pdfFunctionFactory,\n localColorSpaceCache,\n }) {\n this.image = image;\n const dict = image.dict;\n\n const filter = dict.get(\"F\", \"Filter\");\n if (filter instanceof Name) {\n switch (filter.name) {\n case \"JPXDecode\":\n const jpxImage = new JpxImage();\n jpxImage.parseImageProperties(image.stream);\n image.stream.reset();\n\n image.width = jpxImage.width;\n image.height = jpxImage.height;\n image.bitsPerComponent = jpxImage.bitsPerComponent;\n image.numComps = jpxImage.componentsCount;\n break;\n case \"JBIG2Decode\":\n image.bitsPerComponent = 1;\n image.numComps = 1;\n break;\n }\n }\n // TODO cache rendered images?\n\n let width = dict.get(\"W\", \"Width\");\n let height = dict.get(\"H\", \"Height\");\n\n if (\n Number.isInteger(image.width) &&\n image.width > 0 &&\n Number.isInteger(image.height) &&\n image.height > 0 &&\n (image.width !== width || image.height !== height)\n ) {\n warn(\n \"PDFImage - using the Width/Height of the image data, \" +\n \"rather than the image dictionary.\"\n );\n width = image.width;\n height = image.height;\n }\n if (width < 1 || height < 1) {\n throw new FormatError(\n `Invalid image width: ${width} or height: ${height}`\n );\n }\n this.width = width;\n this.height = height;\n\n this.interpolate = dict.get(\"I\", \"Interpolate\");\n this.imageMask = dict.get(\"IM\", \"ImageMask\") || false;\n this.matte = dict.get(\"Matte\") || false;\n\n let bitsPerComponent = image.bitsPerComponent;\n if (!bitsPerComponent) {\n bitsPerComponent = dict.get(\"BPC\", \"BitsPerComponent\");\n if (!bitsPerComponent) {\n if (this.imageMask) {\n bitsPerComponent = 1;\n } else {\n throw new FormatError(\n `Bits per component missing in image: ${this.imageMask}`\n );\n }\n }\n }\n this.bpc = bitsPerComponent;\n\n if (!this.imageMask) {\n let colorSpace = dict.getRaw(\"CS\") || dict.getRaw(\"ColorSpace\");\n if (!colorSpace) {\n info(\"JPX images (which do not require color spaces)\");\n switch (image.numComps) {\n case 1:\n colorSpace = Name.get(\"DeviceGray\");\n break;\n case 3:\n colorSpace = Name.get(\"DeviceRGB\");\n break;\n case 4:\n colorSpace = Name.get(\"DeviceCMYK\");\n break;\n default:\n throw new Error(\n `JPX images with ${image.numComps} color components not supported.`\n );\n }\n }\n this.colorSpace = ColorSpace.parse({\n cs: colorSpace,\n xref,\n resources: isInline ? res : null,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n this.numComps = this.colorSpace.numComps;\n }\n\n this.decode = dict.getArray(\"D\", \"Decode\");\n this.needsDecode = false;\n if (\n this.decode &&\n ((this.colorSpace &&\n !this.colorSpace.isDefaultDecode(this.decode, bitsPerComponent)) ||\n (isMask &&\n !ColorSpace.isDefaultDecode(this.decode, /* numComps = */ 1)))\n ) {\n this.needsDecode = true;\n // Do some preprocessing to avoid more math.\n const max = (1 << bitsPerComponent) - 1;\n this.decodeCoefficients = [];\n this.decodeAddends = [];\n const isIndexed = this.colorSpace && this.colorSpace.name === \"Indexed\";\n for (let i = 0, j = 0; i < this.decode.length; i += 2, ++j) {\n const dmin = this.decode[i];\n const dmax = this.decode[i + 1];\n this.decodeCoefficients[j] = isIndexed\n ? (dmax - dmin) / max\n : dmax - dmin;\n this.decodeAddends[j] = isIndexed ? dmin : max * dmin;\n }\n }\n\n if (smask) {\n this.smask = new PDFImage({\n xref,\n res,\n image: smask,\n isInline,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n } else if (mask) {\n if (mask instanceof BaseStream) {\n const maskDict = mask.dict,\n imageMask = maskDict.get(\"IM\", \"ImageMask\");\n if (!imageMask) {\n warn(\"Ignoring /Mask in image without /ImageMask.\");\n } else {\n this.mask = new PDFImage({\n xref,\n res,\n image: mask,\n isInline,\n isMask: true,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n }\n } else {\n // Color key mask (just an array).\n this.mask = mask;\n }\n }\n }\n\n /**\n * Handles processing of image data and returns the Promise that is resolved\n * with a PDFImage when the image is ready to be used.\n */\n static async buildImage({\n xref,\n res,\n image,\n isInline = false,\n pdfFunctionFactory,\n localColorSpaceCache,\n }) {\n const imageData = image;\n let smaskData = null;\n let maskData = null;\n\n const smask = image.dict.get(\"SMask\");\n const mask = image.dict.get(\"Mask\");\n\n if (smask) {\n if (smask instanceof BaseStream) {\n smaskData = smask;\n } else {\n warn(\"Unsupported /SMask format.\");\n }\n } else if (mask) {\n if (mask instanceof BaseStream || Array.isArray(mask)) {\n maskData = mask;\n } else {\n warn(\"Unsupported /Mask format.\");\n }\n }\n\n return new PDFImage({\n xref,\n res,\n image: imageData,\n isInline,\n smask: smaskData,\n mask: maskData,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n }\n\n static createRawMask({\n imgArray,\n width,\n height,\n imageIsFromDecodeStream,\n inverseDecode,\n interpolate,\n }) {\n // |imgArray| might not contain full data for every pixel of the mask, so\n // we need to distinguish between |computedLength| and |actualLength|.\n // In particular, if inverseDecode is true, then the array we return must\n // have a length of |computedLength|.\n\n const computedLength = ((width + 7) >> 3) * height;\n const actualLength = imgArray.byteLength;\n const haveFullData = computedLength === actualLength;\n let data, i;\n\n if (imageIsFromDecodeStream && (!inverseDecode || haveFullData)) {\n // imgArray came from a DecodeStream and its data is in an appropriate\n // form, so we can just transfer it.\n data = imgArray;\n } else if (!inverseDecode) {\n data = new Uint8Array(imgArray);\n } else {\n data = new Uint8Array(computedLength);\n data.set(imgArray);\n data.fill(0xff, actualLength);\n }\n\n // If necessary, invert the original mask data (but not any extra we might\n // have added above). It's safe to modify the array -- whether it's the\n // original or a copy, we're about to transfer it anyway, so nothing else\n // in this thread can be relying on its contents.\n if (inverseDecode) {\n for (i = 0; i < actualLength; i++) {\n data[i] ^= 0xff;\n }\n }\n\n return { data, width, height, interpolate };\n }\n\n static createMask({\n imgArray,\n width,\n height,\n imageIsFromDecodeStream,\n inverseDecode,\n interpolate,\n }) {\n const isSingleOpaquePixel =\n width === 1 &&\n height === 1 &&\n inverseDecode === (imgArray.length === 0 || !!(imgArray[0] & 128));\n\n if (isSingleOpaquePixel) {\n return { isSingleOpaquePixel };\n }\n\n if (FeatureTest.isOffscreenCanvasSupported) {\n const canvas = new OffscreenCanvas(width, height);\n const ctx = canvas.getContext(\"2d\");\n const imgData = ctx.createImageData(width, height);\n applyMaskImageData({\n src: imgArray,\n dest: imgData.data,\n width,\n height,\n inverseDecode,\n });\n\n ctx.putImageData(imgData, 0, 0);\n const bitmap = canvas.transferToImageBitmap();\n\n return {\n data: null,\n width,\n height,\n interpolate,\n bitmap,\n };\n }\n\n // Get the data almost as they're and they'll be decoded\n // just before being drawn.\n return this.createRawMask({\n imgArray,\n width,\n height,\n inverseDecode,\n imageIsFromDecodeStream,\n interpolate,\n });\n }\n\n get drawWidth() {\n return Math.max(\n this.width,\n (this.smask && this.smask.width) || 0,\n (this.mask && this.mask.width) || 0\n );\n }\n\n get drawHeight() {\n return Math.max(\n this.height,\n (this.smask && this.smask.height) || 0,\n (this.mask && this.mask.height) || 0\n );\n }\n\n decodeBuffer(buffer) {\n const bpc = this.bpc;\n const numComps = this.numComps;\n\n const decodeAddends = this.decodeAddends;\n const decodeCoefficients = this.decodeCoefficients;\n const max = (1 << bpc) - 1;\n let i, ii;\n\n if (bpc === 1) {\n // If the buffer needed decode that means it just needs to be inverted.\n for (i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] = +!buffer[i];\n }\n return;\n }\n let index = 0;\n for (i = 0, ii = this.width * this.height; i < ii; i++) {\n for (let j = 0; j < numComps; j++) {\n buffer[index] = decodeAndClamp(\n buffer[index],\n decodeAddends[j],\n decodeCoefficients[j],\n max\n );\n index++;\n }\n }\n }\n\n getComponents(buffer) {\n const bpc = this.bpc;\n\n // This image doesn't require any extra work.\n if (bpc === 8) {\n return buffer;\n }\n\n const width = this.width;\n const height = this.height;\n const numComps = this.numComps;\n\n const length = width * height * numComps;\n let bufferPos = 0;\n let output;\n if (bpc <= 8) {\n output = new Uint8Array(length);\n } else if (bpc <= 16) {\n output = new Uint16Array(length);\n } else {\n output = new Uint32Array(length);\n }\n const rowComps = width * numComps;\n\n const max = (1 << bpc) - 1;\n let i = 0,\n ii,\n buf;\n\n if (bpc === 1) {\n // Optimization for reading 1 bpc images.\n let mask, loop1End, loop2End;\n for (let j = 0; j < height; j++) {\n loop1End = i + (rowComps & ~7);\n loop2End = i + rowComps;\n\n // unroll loop for all full bytes\n while (i < loop1End) {\n buf = buffer[bufferPos++];\n output[i] = (buf >> 7) & 1;\n output[i + 1] = (buf >> 6) & 1;\n output[i + 2] = (buf >> 5) & 1;\n output[i + 3] = (buf >> 4) & 1;\n output[i + 4] = (buf >> 3) & 1;\n output[i + 5] = (buf >> 2) & 1;\n output[i + 6] = (buf >> 1) & 1;\n output[i + 7] = buf & 1;\n i += 8;\n }\n\n // handle remaining bits\n if (i < loop2End) {\n buf = buffer[bufferPos++];\n mask = 128;\n while (i < loop2End) {\n output[i++] = +!!(buf & mask);\n mask >>= 1;\n }\n }\n }\n } else {\n // The general case that handles all other bpc values.\n let bits = 0;\n buf = 0;\n for (i = 0, ii = length; i < ii; ++i) {\n if (i % rowComps === 0) {\n buf = 0;\n bits = 0;\n }\n\n while (bits < bpc) {\n buf = (buf << 8) | buffer[bufferPos++];\n bits += 8;\n }\n\n const remainingBits = bits - bpc;\n let value = buf >> remainingBits;\n if (value < 0) {\n value = 0;\n } else if (value > max) {\n value = max;\n }\n output[i] = value;\n buf &= (1 << remainingBits) - 1;\n bits = remainingBits;\n }\n }\n return output;\n }\n\n fillOpacity(rgbaBuf, width, height, actualHeight, image) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n rgbaBuf instanceof Uint8ClampedArray,\n 'PDFImage.fillOpacity: Unsupported \"rgbaBuf\" type.'\n );\n }\n const smask = this.smask;\n const mask = this.mask;\n let alphaBuf, sw, sh, i, ii, j;\n\n if (smask) {\n sw = smask.width;\n sh = smask.height;\n alphaBuf = new Uint8ClampedArray(sw * sh);\n smask.fillGrayBuffer(alphaBuf);\n if (sw !== width || sh !== height) {\n alphaBuf = resizeImageMask(alphaBuf, smask.bpc, sw, sh, width, height);\n }\n } else if (mask) {\n if (mask instanceof PDFImage) {\n sw = mask.width;\n sh = mask.height;\n alphaBuf = new Uint8ClampedArray(sw * sh);\n mask.numComps = 1;\n mask.fillGrayBuffer(alphaBuf);\n\n // Need to invert values in rgbaBuf\n for (i = 0, ii = sw * sh; i < ii; ++i) {\n alphaBuf[i] = 255 - alphaBuf[i];\n }\n\n if (sw !== width || sh !== height) {\n alphaBuf = resizeImageMask(alphaBuf, mask.bpc, sw, sh, width, height);\n }\n } else if (Array.isArray(mask)) {\n // Color key mask: if any of the components are outside the range\n // then they should be painted.\n alphaBuf = new Uint8ClampedArray(width * height);\n const numComps = this.numComps;\n for (i = 0, ii = width * height; i < ii; ++i) {\n let opacity = 0;\n const imageOffset = i * numComps;\n for (j = 0; j < numComps; ++j) {\n const color = image[imageOffset + j];\n const maskOffset = j * 2;\n if (color < mask[maskOffset] || color > mask[maskOffset + 1]) {\n opacity = 255;\n break;\n }\n }\n alphaBuf[i] = opacity;\n }\n } else {\n throw new FormatError(\"Unknown mask format.\");\n }\n }\n\n if (alphaBuf) {\n for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n rgbaBuf[j] = alphaBuf[i];\n }\n } else {\n // No mask.\n for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n rgbaBuf[j] = 255;\n }\n }\n }\n\n undoPreblend(buffer, width, height) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n buffer instanceof Uint8ClampedArray,\n 'PDFImage.undoPreblend: Unsupported \"buffer\" type.'\n );\n }\n const matte = this.smask && this.smask.matte;\n if (!matte) {\n return;\n }\n const matteRgb = this.colorSpace.getRgb(matte, 0);\n const matteR = matteRgb[0];\n const matteG = matteRgb[1];\n const matteB = matteRgb[2];\n const length = width * height * 4;\n for (let i = 0; i < length; i += 4) {\n const alpha = buffer[i + 3];\n if (alpha === 0) {\n // according formula we have to get Infinity in all components\n // making it white (typical paper color) should be okay\n buffer[i] = 255;\n buffer[i + 1] = 255;\n buffer[i + 2] = 255;\n continue;\n }\n const k = 255 / alpha;\n buffer[i] = (buffer[i] - matteR) * k + matteR;\n buffer[i + 1] = (buffer[i + 1] - matteG) * k + matteG;\n buffer[i + 2] = (buffer[i + 2] - matteB) * k + matteB;\n }\n }\n\n createImageData(forceRGBA = false) {\n const drawWidth = this.drawWidth;\n const drawHeight = this.drawHeight;\n const imgData = {\n width: drawWidth,\n height: drawHeight,\n interpolate: this.interpolate,\n kind: 0,\n data: null,\n // Other fields are filled in below.\n };\n\n const numComps = this.numComps;\n const originalWidth = this.width;\n const originalHeight = this.height;\n const bpc = this.bpc;\n\n // Rows start at byte boundary.\n const rowBytes = (originalWidth * numComps * bpc + 7) >> 3;\n\n if (!forceRGBA) {\n // If it is a 1-bit-per-pixel grayscale (i.e. black-and-white) image\n // without any complications, we pass a same-sized copy to the main\n // thread rather than expanding by 32x to RGBA form. This saves *lots*\n // of memory for many scanned documents. It's also much faster.\n //\n // Similarly, if it is a 24-bit-per pixel RGB image without any\n // complications, we avoid expanding by 1.333x to RGBA form.\n let kind;\n if (this.colorSpace.name === \"DeviceGray\" && bpc === 1) {\n kind = ImageKind.GRAYSCALE_1BPP;\n } else if (\n this.colorSpace.name === \"DeviceRGB\" &&\n bpc === 8 &&\n !this.needsDecode\n ) {\n kind = ImageKind.RGB_24BPP;\n }\n if (\n kind &&\n !this.smask &&\n !this.mask &&\n drawWidth === originalWidth &&\n drawHeight === originalHeight\n ) {\n imgData.kind = kind;\n imgData.data = this.getImageBytes(originalHeight * rowBytes, {});\n\n if (this.needsDecode) {\n // Invert the buffer (which must be grayscale if we reached here).\n assert(\n kind === ImageKind.GRAYSCALE_1BPP,\n \"PDFImage.createImageData: The image must be grayscale.\"\n );\n const buffer = imgData.data;\n for (let i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] ^= 0xff;\n }\n }\n return imgData;\n }\n if (this.image instanceof JpegStream && !this.smask && !this.mask) {\n let imageLength = originalHeight * rowBytes;\n switch (this.colorSpace.name) {\n case \"DeviceGray\":\n // Avoid truncating the image, since `JpegImage.getData`\n // will expand the image data when `forceRGB === true`.\n imageLength *= 3;\n /* falls through */\n case \"DeviceRGB\":\n case \"DeviceCMYK\":\n imgData.kind = ImageKind.RGB_24BPP;\n imgData.data = this.getImageBytes(imageLength, {\n drawWidth,\n drawHeight,\n forceRGB: true,\n });\n return imgData;\n }\n }\n }\n\n const imgArray = this.getImageBytes(originalHeight * rowBytes, {\n internal: true,\n });\n // imgArray can be incomplete (e.g. after CCITT fax encoding).\n const actualHeight =\n 0 | (((imgArray.length / rowBytes) * drawHeight) / originalHeight);\n\n const comps = this.getComponents(imgArray);\n\n // If opacity data is present, use RGBA_32BPP form. Otherwise, use the\n // more compact RGB_24BPP form if allowable.\n let alpha01, maybeUndoPreblend;\n if (!forceRGBA && !this.smask && !this.mask) {\n imgData.kind = ImageKind.RGB_24BPP;\n imgData.data = new Uint8ClampedArray(drawWidth * drawHeight * 3);\n alpha01 = 0;\n maybeUndoPreblend = false;\n } else {\n imgData.kind = ImageKind.RGBA_32BPP;\n imgData.data = new Uint8ClampedArray(drawWidth * drawHeight * 4);\n alpha01 = 1;\n maybeUndoPreblend = true;\n\n // Color key masking (opacity) must be performed before decoding.\n this.fillOpacity(\n imgData.data,\n drawWidth,\n drawHeight,\n actualHeight,\n comps\n );\n }\n\n if (this.needsDecode) {\n this.decodeBuffer(comps);\n }\n this.colorSpace.fillRgb(\n imgData.data,\n originalWidth,\n originalHeight,\n drawWidth,\n drawHeight,\n actualHeight,\n bpc,\n comps,\n alpha01\n );\n if (maybeUndoPreblend) {\n this.undoPreblend(imgData.data, drawWidth, actualHeight);\n }\n\n return imgData;\n }\n\n fillGrayBuffer(buffer) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n buffer instanceof Uint8ClampedArray,\n 'PDFImage.fillGrayBuffer: Unsupported \"buffer\" type.'\n );\n }\n const numComps = this.numComps;\n if (numComps !== 1) {\n throw new FormatError(\n `Reading gray scale from a color image: ${numComps}`\n );\n }\n\n const width = this.width;\n const height = this.height;\n const bpc = this.bpc;\n\n // rows start at byte boundary\n const rowBytes = (width * numComps * bpc + 7) >> 3;\n const imgArray = this.getImageBytes(height * rowBytes, { internal: true });\n\n const comps = this.getComponents(imgArray);\n let i, length;\n\n if (bpc === 1) {\n // inline decoding (= inversion) for 1 bpc images\n length = width * height;\n if (this.needsDecode) {\n // invert and scale to {0, 255}\n for (i = 0; i < length; ++i) {\n buffer[i] = (comps[i] - 1) & 255;\n }\n } else {\n // scale to {0, 255}\n for (i = 0; i < length; ++i) {\n buffer[i] = -comps[i] & 255;\n }\n }\n return;\n }\n\n if (this.needsDecode) {\n this.decodeBuffer(comps);\n }\n length = width * height;\n // we aren't using a colorspace so we need to scale the value\n const scale = 255 / ((1 << bpc) - 1);\n for (i = 0; i < length; ++i) {\n buffer[i] = scale * comps[i];\n }\n }\n\n getImageBytes(\n length,\n { drawWidth, drawHeight, forceRGB = false, internal = false }\n ) {\n this.image.reset();\n this.image.drawWidth = drawWidth || this.width;\n this.image.drawHeight = drawHeight || this.height;\n this.image.forceRGB = !!forceRGB;\n const imageBytes = this.image.getBytes(length);\n\n // If imageBytes came from a DecodeStream, we're safe to transfer it\n // (and thus detach its underlying buffer) because it will constitute\n // the entire DecodeStream's data. But if it came from a Stream, we\n // need to copy it because it'll only be a portion of the Stream's\n // data, and the rest will be read later on.\n if (internal || this.image instanceof DecodeStream) {\n return imageBytes;\n }\n assert(\n imageBytes instanceof Uint8Array,\n 'PDFImage.getImageBytes: Unsupported \"imageBytes\" type.'\n );\n return new Uint8Array(imageBytes);\n }\n}\n\nexport { PDFImage };\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FeatureTest } from \"./util.js\";\n\nfunction applyMaskImageData({\n src,\n srcPos = 0,\n dest,\n destPos = 0,\n width,\n height,\n inverseDecode = false,\n}) {\n const opaque = FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n const [zeroMapping, oneMapping] = !inverseDecode ? [opaque, 0] : [0, opaque];\n const widthInSource = width >> 3;\n const widthRemainder = width & 7;\n const srcLength = src.length;\n dest = new Uint32Array(dest.buffer);\n\n for (let i = 0; i < height; i++) {\n for (const max = srcPos + widthInSource; srcPos < max; srcPos++) {\n const elem = srcPos < srcLength ? src[srcPos] : 255;\n dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping;\n }\n if (widthRemainder === 0) {\n continue;\n }\n const elem = srcPos < srcLength ? src[srcPos++] : 255;\n for (let j = 0; j < widthRemainder; j++) {\n dest[destPos++] = elem & (1 << (7 - j)) ? oneMapping : zeroMapping;\n }\n }\n\n return { srcPos, destPos };\n}\n\nexport { applyMaskImageData };\n","import {\n OPS, Util, IDENTITY_MATRIX\n} from '../shared/util';\nimport {\n StateManager,\n TextState\n} from \"./evaluator\";\nimport {isDict} from \"./primitives\";\n\nvar BoundingBoxesCalculator = (function PartialEvaluatorClosure() {\n function BoundingBoxesCalculator(ignoreCalculations) {\n this.textStateManager = new StateManager(new TextState());\n this.graphicsStateManager = new StateManager(new GraphicsState());\n this.clipping = false;\n this.boundingBoxesStack = new NoMCIDBoundingBoxStack();\n this.boundingBoxes = {};\n this.ignoreCalculations = ignoreCalculations;\n this.operationArray = [];\n this.operationIndex = -1;\n }\n\n BoundingBoxesCalculator.prototype = {\n // Get Top points of rectangle\n // rectangle corners ABCD (clockwise starting with left bottom corner)\n // rectangle base AB: A(x0, y0), B(x1, y1)\n // rectangle height h\n // return CD\n getTopPoints: function BoundingBoxesCalculator_getTopPoints(x0, y0, x1, y1, h) {\n let l = Math.sqrt(Math.pow(x1 - x0, 2) + Math.pow(y1 - y0, 2)); //base length\n if (l === 0) {\n return [x1 + h, y1 + h, x0 + h, y0 + h];\n }\n\n let e = [(x1 - x0) / l, (y1 - y0) / l]; //get unit vector for line connecting A and B\n\n let rotated_e = [-e[1], e[0]]; //rotate unit vector by 90 deg to the left\n let result_vector = [rotated_e[0] * h, rotated_e[1] * h]; //scale unit vactor\n\n return [x1 + result_vector[0], y1 + result_vector[1], x0 + result_vector[0], y0 + result_vector[1]];\n },\n\n getTextBoundingBox: function BoundingBoxesCalculator_getTextBoundingBox(glyphs) {\n let tx = 0;\n let ty = 0;\n //Save previous x value to take it into account while calculating width of marked content\n\n let ctm = this.graphicsStateManager.state.ctm;\n\n let descent = (this.textStateManager.state.font.descent || 0) * this.textStateManager.state.fontSize;\n let ascent = (this.textStateManager.state.font.ascent || 1) * this.textStateManager.state.fontSize;\n let rise = this.textStateManager.state.textRise * this.textStateManager.state.fontSize;\n\n let tx0, ty0, shift, height;\n if (!this.textStateManager.state.font.vertical) {\n //Left Bottom point of text bbox\n //Save before text matrix will be changed with going through glyphs\n [tx0, ty0] = Util.applyTransform([0, descent + rise], this.textStateManager.state.textMatrix);\n //Calculate transformed height and shift to place whole glyph inside of bbox\n shift = [tx0 - this.textStateManager.state.textMatrix[4], ty0 - this.textStateManager.state.textMatrix[5]];\n height = Util.applyTransform([0, ascent - descent], this.textStateManager.state.textMatrix); \n } else {\n [tx0, ty0] = Util.applyTransform([-this.textStateManager.state.fontSize / 2, rise], this.textStateManager.state.textMatrix);\n shift = [tx0 - this.textStateManager.state.textMatrix[4], ty0 - this.textStateManager.state.textMatrix[5]];\n height = Util.applyTransform([ascent - descent, 0], this.textStateManager.state.textMatrix); \n }\n height[0] -= this.textStateManager.state.textMatrix[4];\n height[1] -= this.textStateManager.state.textMatrix[5];\n height = Math.sqrt(height[0] * height[0] + height[1] * height[1]);\n height *= (this.textStateManager.state.textMatrix[0] * this.textStateManager.state.textMatrix[3] < 0) ? -1 : 1;\n\n let glyphsSize = [];\n for (let i = 0; i < glyphs.length; i++) {\n let glyph = glyphs[i];\n if (typeof glyph === \"number\") {\n if (this.textStateManager.state.font.vertical) {\n ty = -glyph / 1000 * this.textStateManager.state.fontSize * this.textStateManager.state.textHScale;\n } else {\n tx = -glyph / 1000 * this.textStateManager.state.fontSize * this.textStateManager.state.textHScale;\n }\n } else {\n let glyphWidth = null;\n if (this.textStateManager.state.font.vertical && glyph.vmetric) {\n glyphWidth = glyph.vmetric[0];\n } else {\n glyphWidth = glyph.width;\n }\n if (!this.textStateManager.state.font.vertical) {\n let w0 = glyphWidth * (this.textStateManager.state.fontMatrix ? this.textStateManager.state.fontMatrix[0] : 1 / 1000);\n tx = (w0 * this.textStateManager.state.fontSize + this.textStateManager.state.charSpacing + (glyph.isSpace ? this.textStateManager.state.wordSpacing : 0)) *\n this.textStateManager.state.textHScale;\n } else {\n let w1 = glyphWidth * (this.textStateManager.state.fontMatrix ? this.textStateManager.state.fontMatrix[0] : 1 / 1000);\n ty = w1 * this.textStateManager.state.fontSize - this.textStateManager.state.charSpacing - (glyph.isSpace ? this.textStateManager.state.wordSpacing : 0);\n }\n }\n let [x, y] = [this.textStateManager.state.textMatrix[4] + shift[0], this.textStateManager.state.textMatrix[5] + shift[1]];\n this.textStateManager.state.translateTextMatrix(tx, -ty);\n if (typeof glyph !== \"number\") {\n glyphsSize.push([x, y, this.textStateManager.state.textMatrix[4] + shift[0], this.textStateManager.state.textMatrix[5] + shift[1]]);\n }\n }\n\n //Right Bottom point is in text matrix after going through glyphs\n let [tx1, ty1] = [this.textStateManager.state.textMatrix[4] + shift[0], this.textStateManager.state.textMatrix[5] + shift[1]];\n //Top point can be calculated from base and height\n let [tx2, ty2, tx3, ty3] = this.getTopPoints(tx0, ty0, tx1, ty1, height);\n glyphsSize = glyphsSize.map(glyphSize => [...glyphSize, ...this.getTopPoints(...glyphSize, height)])\n\n //Apply transform matrix to bbox\n let [x0, y0] = Util.applyTransform([tx0, ty0], ctm);\n let [x1, y1] = Util.applyTransform([tx1, ty1], ctm);\n let [x2, y2] = Util.applyTransform([tx2, ty2], ctm);\n let [x3, y3] = Util.applyTransform([tx3, ty3], ctm);\n glyphsSize = glyphsSize.map(glyphSize => [\n ...Util.applyTransform([glyphSize[0], glyphSize[1]], ctm),\n ...Util.applyTransform([glyphSize[2], glyphSize[3]], ctm),\n ...Util.applyTransform([glyphSize[4], glyphSize[5]], ctm),\n ...Util.applyTransform([glyphSize[6], glyphSize[7]], ctm),\n ]);\n let minX, maxX, minY, maxY;\n let glyphsPos = [];\n glyphsSize.forEach(glyphSize => {\n let xPoints = [...glyphSize].filter((point, index) => index % 2 === 0);\n let yPoints = [...glyphSize].filter((point, index) => index % 2 !== 0);\n minX = Math.min(...xPoints);\n maxX = Math.max(...xPoints);\n\n minY = Math.min(...yPoints);\n maxY = Math.max(...yPoints);\n glyphsPos.push([minX, minY, maxX - minX, maxY - minY]);\n })\n this.operationArray[this.operationIndex] = glyphsPos;\n\n minX = Math.min(x0, x1, x2, x3);\n maxX = Math.max(x0, x1, x2, x3);\n\n minY = Math.min(y0, y1, y2, y3);\n maxY = Math.max(y0, y1, y2, y3);\n\n this.boundingBoxesStack.save(minX, minY, maxX - minX, maxY - minY);\n },\n\n getClippingGraphicsBoundingBox: function BoundingBoxesCalculator_getClippingGraphicsBoundingBox() {\n let state = this.graphicsStateManager.state;\n\n if (state.clip === null) {\n return {\n x: state.x,\n y: state.y,\n w: state.w,\n h: state.h\n };\n }\n\n\n if ((state.x < state.clip.x && state.x + state.w < state.clip.x) ||\n (state.x > state.clip.x + state.clip.w && state.x + state.w > state.clip.x + state.clip.w) ||\n (state.y < state.clip.y && state.y + state.h < state.clip.y) ||\n (state.y > state.clip.y + state.clip.h && state.y + state.h > state.clip.y + state.clip.h)) {\n return null;\n }\n\n return {\n x: Math.max(state.x, state.clip.x),\n y: Math.max(state.y, state.clip.y),\n w: Math.min(state.x + state.w, state.clip.x + state.clip.w) - Math.max(state.x, state.clip.x),\n h: Math.min(state.y + state.h, state.clip.y + state.clip.h) - Math.max(state.y, state.clip.y)\n };\n },\n\n saveGraphicsBoundingBox: function saveGraphicsBoundingBox() {\n let clippingBBox = this.getClippingGraphicsBoundingBox();\n if (clippingBBox === null) {\n return;\n }\n\n let x = clippingBBox.x;\n let y = clippingBBox.y;\n let w = clippingBBox.w;\n let h = clippingBBox.h;\n\n this.graphicsStateManager.state.x = null;\n this.graphicsStateManager.state.y = null;\n this.graphicsStateManager.state.w = null;\n this.graphicsStateManager.state.h = null;\n\n this.boundingBoxesStack.save(x, y, w, h);\n },\n\n getRectBoundingBox: function getRectBoundingBox(x, y, w, h) {\n let state = this.graphicsStateManager.state;\n\n let [x1, y1] = Util.applyTransform([x, y], state.ctm);\n let [x2, y2] = Util.applyTransform([x + w, y], state.ctm);\n let [x3, y3] = Util.applyTransform([x, y + h], state.ctm);\n let [x4, y4] = Util.applyTransform([x + w, y + h], state.ctm);\n\n x = Math.min(x1, x2, x3, x4);\n y = Math.min(y1, y2, y3, y4);\n w = Math.max(x1, x2, x3, x4) - x;\n h = Math.max(y1, y2, y3, y4) - y;\n\n if (state.w === null) {\n state.w = Math.abs(w);\n } else {\n state.w = Math.max(state.x + state.w, x, x + w) -\n Math.min(state.x, x, x + w);\n }\n\n if (state.h === null) {\n state.h = Math.abs(h);\n } else {\n state.h = Math.max(state.y + state.h, y, y + h) -\n Math.min(state.y, y, y + h);\n }\n\n if (state.x === null) {\n state.x = Math.min(x, x + w);\n } else {\n state.x = Math.min(state.x, x, x + w);\n }\n\n if (state.y === null) {\n state.y = Math.min(y, y + h);\n } else {\n state.y = Math.min(state.y, y, y + h);\n }\n },\n\n getLineBoundingBox: function getLineBoundingBox(x, y) {\n let state = this.graphicsStateManager.state;\n\n [x, y] = Util.applyTransform([x, y], state.ctm);\n\n if (state.w === null) {\n state.w = Math.abs(x - state.move_x);\n } else {\n state.w = Math.max(x, state.move_x, state.x + state.w) -\n Math.min(x, state.move_x, state.x);\n }\n\n if (state.h === null) {\n state.h = Math.abs(y - state.move_y);\n } else {\n state.h = Math.max(y, state.move_y, state.y + state.h) -\n Math.min(y, state.move_y, state.y);\n }\n\n if (state.x === null) {\n state.x = Math.min(x, state.move_x);\n } else {\n state.x = Math.min(x, state.move_x, state.x);\n }\n\n if (state.y === null) {\n state.y = Math.min(y, state.move_y);\n } else {\n state.y = Math.min(y, state.move_y, state.y);\n }\n\n //Next line will start from the end of current line\n state.move_x = x;\n state.move_y = y;\n },\n\n getCurve: function getCurve(a, b, c, d) {\n return function curve(t) {\n return Math.pow(1 - t, 3) * a + 3 * t * Math.pow(1 - t, 2) * b + 3 * t * t * (1 - t) * c + t * t * t * d;\n }\n },\n\n //Equate the derivative to zero in order to find local extremum and solve the equation\n getCurveRoots: function getCurveRoots(a, b, c, d) {\n let sqrt;\n let root_1;\n let root_2;\n\n sqrt = Math.pow(6 * a - 12 * b + 6 * c, 2)\n - 4 * (3 * b - 3 * a) * (-3 * a + 9 * b - 9 * c + 3 * d);\n root_1 = null;\n root_2 = null;\n\n //Calculate roots if equation has roots and they are real\n //Equation has infinite(too big) roots if denominator is too small\n if (Math.abs(a + 3 * c - 3 * b - d) > Math.pow(0.1, -10)) {\n if (sqrt >= 0) {\n root_1 = ((-6 * a + 12 * b - 6 * c) + Math.sqrt(sqrt)) / (2 * (-3 * a + 9 * b - 9 * c + 3 * d));\n root_2 = ((-6 * a + 12 * b - 6 * c) - Math.sqrt(sqrt)) / (2 * (-3 * a + 9 * b - 9 * c + 3 * d));\n }\n } else if (sqrt > Math.pow(0.1, -10)) {\n root_1 = (a - b) / (2 * a - 4 * b + 2 * c);\n }\n\n //We are only interested in roots that lay in range from 0 to 1\n //Ignore other ones\n if (root_1 !== null && (root_1 < 0 || root_1 > 1)) {\n root_1 = null;\n }\n if (root_2 !== null && (root_2 < 0 || root_2 > 1)) {\n root_2 = null;\n }\n\n return [root_1, root_2];\n },\n\n getCurveBoundingBox: function getCurveBoundingBox(op, x0, y0, x1, y1, x2, y2, x3, y3) {\n let state = this.graphicsStateManager.state;\n\n if (op !== OPS.curveTo2) {\n [x1, y1] = Util.applyTransform([x1, y1], state.ctm);\n }\n [x2, y2] = Util.applyTransform([x2, y2], state.ctm);\n [x3, y3] = Util.applyTransform([x3, y3], state.ctm);\n\n let curveX = this.getCurve(x0, x1, x2, x3);\n let curveY = this.getCurve(y0, y1, y2, y3);\n\n let [root_1, root_2] = this.getCurveRoots(x0, x1, x2, x3);\n\n let minX = Math.min(x0, x3, root_1 !== null ? curveX(root_1) : Number.MAX_VALUE, root_2 !== null ? curveX(root_2) : Number.MAX_VALUE);\n let maxX = Math.max(x0, x3, root_1 !== null ? curveX(root_1) : Number.MIN_VALUE, root_2 !== null ? curveX(root_2) : Number.MIN_VALUE);\n\n [root_1, root_2] = this.getCurveRoots(y0, y1, y2, y3);\n\n let minY = Math.min(y0, y3, root_1 !== null ? curveY(root_1) : Number.MAX_VALUE, root_2 !== null ? curveY(root_2) : Number.MAX_VALUE);\n let maxY = Math.max(y0, y3, root_1 !== null ? curveY(root_1) : Number.MIN_VALUE, root_2 !== null ? curveY(root_2) : Number.MIN_VALUE);\n\n let x = minX;\n let y = minY;\n let h = maxY - minY;\n let w = maxX - minX;\n\n if (state.w === null) {\n state.w = Math.abs(w);\n } else {\n state.w = Math.max(state.x + state.w, x, x + w) -\n Math.min(state.x, x, x + w);\n }\n\n if (state.h === null) {\n state.h = Math.abs(h);\n } else {\n state.h = Math.max(state.y + state.h, y, y + h) -\n Math.min(state.y, y, y + h);\n }\n\n if (state.x === null) {\n state.x = Math.min(x, x + w);\n } else {\n state.x = Math.min(state.x, x, x + w);\n }\n\n if (state.y === null) {\n state.y = Math.min(y, y + h);\n } else {\n state.y = Math.min(state.y, y, y + h);\n }\n\n state.move_x = x;\n state.move_y = y;\n },\n\n getClip: function getClip() {\n if (this.clipping) {\n let state = this.graphicsStateManager.state;\n if (state.clip === null) {\n state.clip = {\n x: state.x,\n y: state.y,\n w: state.w,\n h: state.h\n };\n } else {\n //Intersection with previous clip\n state.clip = {\n x: Math.max(state.x, state.clip.x),\n y: Math.max(state.y, state.clip.y),\n w: Math.min(state.x + state.w, state.clip.x + state.clip.w) - Math.max(state.x, state.clip.x),\n h: Math.min(state.y + state.h, state.clip.y + state.clip.h) - Math.max(state.y, state.clip.y),\n }\n }\n this.clipping = false;\n }\n },\n\n getNoMCIDBoundingBoxes: function getNoMCIDBoundingBoxes() {\n return this.boundingBoxesStack.get();\n },\n\n getImageBoundingBox: function getImageBoundingBox() {\n let state = this.graphicsStateManager.state;\n let [x0, y0] = Util.applyTransform([0, 0], state.ctm);\n let [x1, y1] = Util.applyTransform([0, 1], state.ctm);\n let [x2, y2] = Util.applyTransform([1, 1], state.ctm);\n let [x3, y3] = Util.applyTransform([1, 0], state.ctm);\n\n state.x = Math.min(x0, x1, x2, x3);\n state.y = Math.min(y0, y1, y2, y3);\n state.w = Math.max(x0, x1, x2, x3) - state.x;\n state.h = Math.max(y0, y1, y2, y3) - state.y;\n },\n\n parseOperator: function BoundingBoxesCalculator_parseOperator(fn, args) {\n if (this.ignoreCalculations) {\n return;\n }\n\n if (fn !== OPS.markPoint && fn !== OPS.markPointProps &&\n fn !== OPS.beginMarkedContent && fn !== OPS.beginMarkedContentProps) {\n this.boundingBoxesStack.inc();\n }\n\n switch (fn | 0) {\n case OPS.restore:\n this.graphicsStateManager.restore();\n this.textStateManager.restore();\n break;\n case OPS.save:\n this.graphicsStateManager.save();\n this.textStateManager.save();\n break;\n case OPS.fill:\n case OPS.eoFill:\n case OPS.eoFillStroke:\n case OPS.fillStroke:\n case OPS.stroke:\n case OPS.closeEOFillStroke:\n case OPS.closeFillStroke:\n case OPS.closeStroke:\n this.getClip();\n this.saveGraphicsBoundingBox();\n break;\n case OPS.endPath:\n this.getClip();\n this.graphicsStateManager.state.clean();\n break;\n case OPS.transform:\n this.graphicsStateManager.state.ctm = Util.transform(this.graphicsStateManager.state.ctm, args);\n break;\n case OPS.clip:\n case OPS.eoClip:\n this.clipping = true;\n break;\n case OPS.setFont:\n this.textStateManager.state.fontSize = args[0];\n this.textStateManager.state.fontMatrix = args[1].font.fontMatrix;\n this.textStateManager.state.font = args[1].font;\n break;\n case OPS.setTextMatrix:\n this.textStateManager.state.setTextMatrix(args[0], args[1], args[2], args[3],\n args[4], args[5]);\n this.textStateManager.state.setTextLineMatrix(args[0], args[1], args[2], args[3],\n args[4], args[5]);\n break;\n case OPS.nextLine:\n this.textStateManager.state.carriageReturn();\n break;\n case OPS.setCharSpacing:\n this.textStateManager.state.charSpacing = args[0];\n break;\n case OPS.setWordSpacing:\n this.textStateManager.state.wordSpacing = args[0];\n break;\n case OPS.setHScale:\n this.textStateManager.state.textHScale = args[0] / 100;\n break;\n case OPS.setLeading:\n this.textStateManager.state.leading = args[0];\n break;\n case OPS.setTextRise:\n this.textStateManager.state.textRise = args[0];\n break;\n case OPS.setLeadingMoveText:\n this.textStateManager.state.leading = -args[1];\n this.textStateManager.state.translateTextLineMatrix(...args);\n this.textStateManager.state.textMatrix = this.textStateManager.state.textLineMatrix.slice();\n break;\n case OPS.moveText:\n this.textStateManager.state.translateTextLineMatrix(args[0], args[1]);\n this.textStateManager.state.textMatrix = this.textStateManager.state.textLineMatrix.slice();\n break;\n case OPS.beginText:\n this.textStateManager.state.textMatrix = IDENTITY_MATRIX.slice();\n this.textStateManager.state.textLineMatrix = IDENTITY_MATRIX.slice();\n break;\n case OPS.moveTo:\n let ctm = this.graphicsStateManager.state.ctm.slice();\n [this.graphicsStateManager.state.move_x, this.graphicsStateManager.state.move_y] = Util.applyTransform(args, ctm);\n break;\n case OPS.lineTo:\n this.getLineBoundingBox(args[0], args[1]);\n break;\n case OPS.curveTo:\n this.getCurveBoundingBox(\n OPS.curveTo,\n this.graphicsStateManager.state.move_x,\n this.graphicsStateManager.state.move_y,\n args[0],\n args[1],\n args[2],\n args[3],\n args[4],\n args[5],\n );\n break;\n case OPS.curveTo2:\n this.getCurveBoundingBox(\n OPS.curveTo2,\n this.graphicsStateManager.state.move_x,\n this.graphicsStateManager.state.move_y,\n this.graphicsStateManager.state.move_x,\n this.graphicsStateManager.state.move_y,\n args[0],\n args[1],\n args[2],\n args[3]\n );\n break;\n case OPS.curveTo3:\n this.getCurveBoundingBox(\n OPS.curveTo3,\n this.graphicsStateManager.state.move_x,\n this.graphicsStateManager.state.move_y,\n args[0],\n args[1],\n args[2],\n args[3],\n args[2],\n args[3]\n );\n break;\n case OPS.rectangle:\n this.getRectBoundingBox(args[0], args[1], args[2], args[3]);\n break;\n case OPS.markPoint:\n case OPS.markPointProps:\n case OPS.beginMarkedContent:\n //Marked content forms the scope\n this.boundingBoxesStack.begin();\n break;\n case OPS.beginMarkedContentProps:\n if (isDict(args[1]) && args[1].has('MCID')) {\n this.boundingBoxesStack.begin(args[1].get('MCID'));\n\n //Clear graphics bounding box to split graphics in different marked content\n this.graphicsStateManager.state.x = null;\n this.graphicsStateManager.state.y = null;\n this.graphicsStateManager.state.w = null;\n this.graphicsStateManager.state.h = null;\n\n } else {\n //Marked content with no MCID still forms the scope\n this.boundingBoxesStack.begin();\n }\n break;\n case OPS.endMarkedContent:\n let boundingBox = this.boundingBoxesStack.end();\n if (boundingBox !== null) {\n this.boundingBoxes[boundingBox.mcid] = {\n x: boundingBox.x,\n y: boundingBox.y,\n width: boundingBox.w,\n height: boundingBox.h\n };\n }\n break;\n case OPS.paintXObject:\n if (args[0] === 'Image') {\n this.getImageBoundingBox();\n this.saveGraphicsBoundingBox();\n }\n break;\n case OPS.showText:\n this.getTextBoundingBox(args[0]);\n break;\n default:\n break;\n }\n },\n\n setFont: function BoundingBoxesCalculator_setFont(translated) {\n this.textStateManager.state.fontMatrix = translated.font.fontMatrix;\n this.textStateManager.state.font = translated.font;\n },\n\n incrementOperation: function BoundingBoxesCalculator_incrementOperation(fn) {\n if (this.ignoreCalculations) {\n return;\n }\n this.operationIndex++;\n }\n };\n\n return BoundingBoxesCalculator;\n})();\n\nvar GraphicsState = (function GraphicsState() {\n function GraphicsState() {\n this.x = null;\n this.y = null;\n this.w = null;\n this.h = null;\n this.move_x = null;\n this.move_y = null;\n this.ctm = IDENTITY_MATRIX.slice();\n this.clip = null;\n }\n\n GraphicsState.prototype = {\n clone: function GraphicsState_clone() {\n var clone = Object.create(this);\n clone.ctm = this.ctm.slice();\n return clone;\n },\n clean: function GraphicsState_clear() {\n this.x = null;\n this.y = null;\n this.w = null;\n this.h = null;\n this.move_x = 0;\n this.move_y = 0;\n //this.ctm = IDENTITY_MATRIX.slice();\n //clip state stays the same\n }\n };\n return GraphicsState;\n})();\n\nvar BoundingBoxStack = (function BoundingBoxStack() {\n function BoundingBoxStack() {\n this.stack = [];\n }\n\n BoundingBoxStack.prototype = {\n begin: function BoundingBoxStack_begin(mcid) {\n this.stack.push({\n x: null,\n y: null,\n w: null,\n h: null,\n mcid: Number.isInteger(mcid) ? mcid : null\n });\n },\n\n save: function BoundingBoxStack_save(x, y, w, h) {\n let current = this.stack[this.stack.length - 1];\n\n if (!current) {\n return;\n }\n\n if (current.w === null) {\n current.w = w;\n } else {\n current.w = Math.max(current.x + current.w, x + w) - Math.min(current.x, x);\n }\n\n if (current.x === null) {\n current.x = x;\n } else {\n current.x = Math.min(current.x, x);\n }\n\n if (current.h === null) {\n current.h = h;\n } else {\n current.h = Math.max(current.y + current.h, y + h) - Math.min(current.y, y);\n }\n\n if (current.y === null) {\n current.y = y;\n } else {\n current.y = Math.min(current.y, y);\n }\n },\n\n end: function BoundingBoxStack_end() {\n let last = this.stack.pop();\n\n if (!last) {\n return null;\n }\n\n if (last.mcid !== null) {\n return last;\n } else {\n this.save(last.x, last.y, last.w, last.h);\n return null;\n }\n },\n\n };\n\n return BoundingBoxStack;\n})();\n\nvar NoMCIDBoundingBoxStack = (function NoMCIDBoundingBoxStack() {\n function NoMCIDBoundingBoxStack() {\n this.boundingBoxesStack = new BoundingBoxStack();\n this.contentCounter = null; \n this.content = {};\n this.pointer = {};\n }\n\n NoMCIDBoundingBoxStack.prototype = {\n begin: function NoMCIDBoundingBoxStack_begin(mcid) {\n if (!this.contentCounter || this.contentCounter.inMarkedContent !== false) {\n this.inc(true);\n } else {\n const newContentItem = { parent: this.pointer, contentItems: [] };\n this.pointer.contentItems.push(newContentItem);\n this.pointer = newContentItem;\n }\n this.boundingBoxesStack.begin(mcid);\n },\n\n save: function NoMCIDBoundingBoxStack_save(x, y, w, h) {\n if (this.pointer.contentItems) {\n this.pointer.contentItems.push({ \n contentItem: { x, y, w, h }\n });\n this.pointer.final = true;\n } else {\n console.log('NoMCIDBoundingBoxStackError:', 'The pointer was in an invalid state, saved data will be lost');\n }\n this.boundingBoxesStack.save(x, y, w, h);\n },\n\n end: function NoMCIDBoundingBoxStack_end() {\n const tempPointer = this.pointer;\n this.pointer = tempPointer.parent || this.content;\n delete tempPointer.parent;\n\n if (this.pointer === this.content) {\n this.contentCounter.inMarkedContent = null;\n this.pointer = {};\n }\n\n return this.boundingBoxesStack.end();\n },\n\n inc: function NoMCIDBoundingBoxStack_inc(isMC = false) {\n if (!this.contentCounter) {\n this.contentCounter = { index: 0, inMarkedContent: !isMC }\n this.content[this.contentCounter.index] = { parent: this.content, contentItems: [] };\n this.pointer = this.content[this.contentCounter.index];\n } else if (\n this.contentCounter.inMarkedContent !== false && isMC || \n !!this.contentCounter.inMarkedContent === isMC && !Object.keys(this.pointer).length\n ) {\n delete this.content[this.contentCounter.index].parent;\n this.contentCounter = { index: this.contentCounter.index + 1, inMarkedContent: !isMC }\n this.content[this.contentCounter.index] = { parent: this.content, contentItems: [] };\n this.pointer = this.content[this.contentCounter.index];\n }\n },\n\n get: function NoMCIDBoundingBoxStack_get() {\n try {\n if (Object.keys(this.content).length && this.contentCounter) {\n this.content[this.contentCounter.index].parent && delete this.content[this.contentCounter.index].parent;\n const result = JSON.parse(JSON.stringify(this.content));\n this.content[this.contentCounter.index].parent = this.content;\n return result;\n }\n return {};\n } catch (err) {\n console.log('NoMCIDBoundingBoxStackError:', err.message || err);\n return {};\n }\n },\n };\n return NoMCIDBoundingBoxStack;\n})();\n\nexport {\n BoundingBoxesCalculator,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n collectActions,\n MissingDataException,\n recoverJsURL,\n toRomanNumerals,\n XRefEntryException,\n} from \"./core_utils.js\";\nimport {\n createValidAbsoluteUrl,\n DocumentActionEventType,\n FormatError,\n info,\n objectSize,\n PermissionFlag,\n shadow,\n stringToPDFString,\n stringToUTF8String,\n warn,\n} from \"../shared/util.js\";\nimport {\n Dict,\n isDict,\n isName,\n isRefsEqual,\n Name,\n Ref,\n RefSet,\n RefSetCache,\n} from \"./primitives.js\";\nimport { NameTree, NumberTree } from \"./name_number_tree.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { clearGlobalCaches } from \"./cleanup_helper.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { FileSpec } from \"./file_spec.js\";\nimport { GlobalImageCache } from \"./image_utils.js\";\nimport { MetadataParser } from \"./metadata_parser.js\";\nimport { StructTreeRoot } from \"./struct_tree.js\";\n\nfunction fetchDestination(dest) {\n if (dest instanceof Dict) {\n dest = dest.get(\"D\");\n }\n return Array.isArray(dest) ? dest : null;\n}\n\nclass Catalog {\n constructor(pdfManager, xref) {\n this.pdfManager = pdfManager;\n this.xref = xref;\n\n this._catDict = xref.getCatalogObj();\n if (!(this._catDict instanceof Dict)) {\n throw new FormatError(\"Catalog object is not a dictionary.\");\n }\n // Given that `XRef.parse` will both fetch *and* validate the /Pages-entry,\n // the following call must always succeed here:\n this.toplevelPagesDict; // eslint-disable-line no-unused-expressions\n\n this._actualNumPages = null;\n\n this.fontCache = new RefSetCache();\n this.builtInCMapCache = new Map();\n this.standardFontDataCache = new Map();\n this.globalImageCache = new GlobalImageCache();\n this.pageKidsCountCache = new RefSetCache();\n this.pageIndexCache = new RefSetCache();\n this.nonBlendModesSet = new RefSet();\n }\n\n get version() {\n const version = this._catDict.get(\"Version\");\n return shadow(\n this,\n \"version\",\n version instanceof Name ? version.name : null\n );\n }\n\n get lang() {\n const lang = this._catDict.get(\"Lang\");\n return shadow(\n this,\n \"lang\",\n typeof lang === \"string\" ? stringToPDFString(lang) : null\n );\n }\n\n /**\n * @type {boolean} `true` for pure XFA documents,\n * `false` for XFA Foreground documents.\n */\n get needsRendering() {\n const needsRendering = this._catDict.get(\"NeedsRendering\");\n return shadow(\n this,\n \"needsRendering\",\n typeof needsRendering === \"boolean\" ? needsRendering : false\n );\n }\n\n get collection() {\n let collection = null;\n try {\n const obj = this._catDict.get(\"Collection\");\n if (obj instanceof Dict && obj.size > 0) {\n collection = obj;\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n info(\"Cannot fetch Collection entry; assuming no collection is present.\");\n }\n return shadow(this, \"collection\", collection);\n }\n\n get acroForm() {\n let acroForm = null;\n try {\n const obj = this._catDict.get(\"AcroForm\");\n if (obj instanceof Dict && obj.size > 0) {\n acroForm = obj;\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n info(\"Cannot fetch AcroForm entry; assuming no forms are present.\");\n }\n return shadow(this, \"acroForm\", acroForm);\n }\n\n get acroFormRef() {\n const value = this._catDict.getRaw(\"AcroForm\");\n return shadow(this, \"acroFormRef\", value instanceof Ref ? value : null);\n }\n\n get metadata() {\n const streamRef = this._catDict.getRaw(\"Metadata\");\n if (!(streamRef instanceof Ref)) {\n return shadow(this, \"metadata\", null);\n }\n\n let metadata = null;\n try {\n const suppressEncryption = !(\n this.xref.encrypt && this.xref.encrypt.encryptMetadata\n );\n const stream = this.xref.fetch(streamRef, suppressEncryption);\n\n if (stream instanceof BaseStream && stream.dict instanceof Dict) {\n const type = stream.dict.get(\"Type\");\n const subtype = stream.dict.get(\"Subtype\");\n\n if (isName(type, \"Metadata\") && isName(subtype, \"XML\")) {\n // XXX: This should examine the charset the XML document defines,\n // however since there are currently no real means to decode arbitrary\n // charsets, let's just hope that the author of the PDF was reasonable\n // enough to stick with the XML default charset, which is UTF-8.\n const data = stringToUTF8String(stream.getString());\n if (data) {\n metadata = new MetadataParser(data).serializable;\n }\n }\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n info(`Skipping invalid Metadata: \"${ex}\".`);\n }\n return shadow(this, \"metadata\", metadata);\n }\n\n get markInfo() {\n let markInfo = null;\n try {\n markInfo = this._readMarkInfo();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Unable to read mark info.\");\n }\n return shadow(this, \"markInfo\", markInfo);\n }\n\n /**\n * @private\n */\n _readMarkInfo() {\n const obj = this._catDict.get(\"MarkInfo\");\n if (!(obj instanceof Dict)) {\n return null;\n }\n\n const markInfo = {\n Marked: false,\n UserProperties: false,\n Suspects: false,\n };\n for (const key in markInfo) {\n const value = obj.get(key);\n if (typeof value === \"boolean\") {\n markInfo[key] = value;\n }\n }\n\n return markInfo;\n }\n\n get structTreeRoot() {\n let structTree = null;\n try {\n structTree = this._readStructTreeRoot();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Unable read to structTreeRoot info.\");\n }\n return shadow(this, \"structTreeRoot\", structTree);\n }\n\n /**\n * @private\n */\n _readStructTreeRoot() {\n const obj = this._catDict.get(\"StructTreeRoot\");\n if (!(obj instanceof Dict)) {\n return null;\n }\n const root = new StructTreeRoot(obj);\n root.init();\n return root;\n }\n\n get toplevelPagesDict() {\n const pagesObj = this._catDict.get(\"Pages\");\n if (!(pagesObj instanceof Dict)) {\n throw new FormatError(\"Invalid top-level pages dictionary.\");\n }\n return shadow(this, \"toplevelPagesDict\", pagesObj);\n }\n\n get documentOutline() {\n let obj = null;\n try {\n obj = this._readDocumentOutline();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Unable to read document outline.\");\n }\n return shadow(this, \"documentOutline\", obj);\n }\n\n /**\n * @private\n */\n _readDocumentOutline() {\n let obj = this._catDict.get(\"Outlines\");\n if (!(obj instanceof Dict)) {\n return null;\n }\n obj = obj.getRaw(\"First\");\n if (!(obj instanceof Ref)) {\n return null;\n }\n\n const root = { items: [] };\n const queue = [{ obj, parent: root }];\n // To avoid recursion, keep track of the already processed items.\n const processed = new RefSet();\n processed.put(obj);\n const xref = this.xref,\n blackColor = new Uint8ClampedArray(3);\n\n while (queue.length > 0) {\n const i = queue.shift();\n const outlineDict = xref.fetchIfRef(i.obj);\n if (outlineDict === null) {\n continue;\n }\n if (!outlineDict.has(\"Title\")) {\n throw new FormatError(\"Invalid outline item encountered.\");\n }\n\n const data = { url: null, dest: null };\n Catalog.parseDestDictionary({\n destDict: outlineDict,\n resultObj: data,\n docBaseUrl: this.pdfManager.docBaseUrl,\n });\n const title = outlineDict.get(\"Title\");\n const flags = outlineDict.get(\"F\") || 0;\n const color = outlineDict.getArray(\"C\");\n const count = outlineDict.get(\"Count\");\n let rgbColor = blackColor;\n\n // We only need to parse the color when it's valid, and non-default.\n if (\n Array.isArray(color) &&\n color.length === 3 &&\n (color[0] !== 0 || color[1] !== 0 || color[2] !== 0)\n ) {\n rgbColor = ColorSpace.singletons.rgb.getRgb(color, 0);\n }\n\n const outlineItem = {\n dest: data.dest,\n url: data.url,\n unsafeUrl: data.unsafeUrl,\n newWindow: data.newWindow,\n title: stringToPDFString(title),\n color: rgbColor,\n count: Number.isInteger(count) ? count : undefined,\n bold: !!(flags & 2),\n italic: !!(flags & 1),\n items: [],\n };\n\n i.parent.items.push(outlineItem);\n obj = outlineDict.getRaw(\"First\");\n if (obj instanceof Ref && !processed.has(obj)) {\n queue.push({ obj, parent: outlineItem });\n processed.put(obj);\n }\n obj = outlineDict.getRaw(\"Next\");\n if (obj instanceof Ref && !processed.has(obj)) {\n queue.push({ obj, parent: i.parent });\n processed.put(obj);\n }\n }\n return root.items.length > 0 ? root.items : null;\n }\n\n get permissions() {\n let permissions = null;\n try {\n permissions = this._readPermissions();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Unable to read permissions.\");\n }\n return shadow(this, \"permissions\", permissions);\n }\n\n /**\n * @private\n */\n _readPermissions() {\n const encrypt = this.xref.trailer.get(\"Encrypt\");\n if (!(encrypt instanceof Dict)) {\n return null;\n }\n\n let flags = encrypt.get(\"P\");\n if (typeof flags !== \"number\") {\n return null;\n }\n\n // PDF integer objects are represented internally in signed 2's complement\n // form. Therefore, convert the signed decimal integer to a signed 2's\n // complement binary integer so we can use regular bitwise operations on it.\n flags += 2 ** 32;\n\n const permissions = [];\n for (const key in PermissionFlag) {\n const value = PermissionFlag[key];\n if (flags & value) {\n permissions.push(value);\n }\n }\n return permissions;\n }\n\n get optionalContentConfig() {\n let config = null;\n try {\n const properties = this._catDict.get(\"OCProperties\");\n if (!properties) {\n return shadow(this, \"optionalContentConfig\", null);\n }\n const defaultConfig = properties.get(\"D\");\n if (!defaultConfig) {\n return shadow(this, \"optionalContentConfig\", null);\n }\n const groupsData = properties.get(\"OCGs\");\n if (!Array.isArray(groupsData)) {\n return shadow(this, \"optionalContentConfig\", null);\n }\n const groups = [];\n const groupRefs = [];\n // Ensure all the optional content groups are valid.\n for (const groupRef of groupsData) {\n if (!(groupRef instanceof Ref)) {\n continue;\n }\n groupRefs.push(groupRef);\n const group = this.xref.fetchIfRef(groupRef);\n groups.push({\n id: groupRef.toString(),\n name:\n typeof group.get(\"Name\") === \"string\"\n ? stringToPDFString(group.get(\"Name\"))\n : null,\n intent:\n typeof group.get(\"Intent\") === \"string\"\n ? stringToPDFString(group.get(\"Intent\"))\n : null,\n });\n }\n config = this._readOptionalContentConfig(defaultConfig, groupRefs);\n config.groups = groups;\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`Unable to read optional content config: ${ex}`);\n }\n return shadow(this, \"optionalContentConfig\", config);\n }\n\n _readOptionalContentConfig(config, contentGroupRefs) {\n function parseOnOff(refs) {\n const onParsed = [];\n if (Array.isArray(refs)) {\n for (const value of refs) {\n if (!(value instanceof Ref)) {\n continue;\n }\n if (contentGroupRefs.includes(value)) {\n onParsed.push(value.toString());\n }\n }\n }\n return onParsed;\n }\n\n function parseOrder(refs, nestedLevels = 0) {\n if (!Array.isArray(refs)) {\n return null;\n }\n const order = [];\n\n for (const value of refs) {\n if (value instanceof Ref && contentGroupRefs.includes(value)) {\n parsedOrderRefs.put(value); // Handle \"hidden\" groups, see below.\n\n order.push(value.toString());\n continue;\n }\n // Handle nested /Order arrays (see e.g. issue 9462 and bug 1240641).\n const nestedOrder = parseNestedOrder(value, nestedLevels);\n if (nestedOrder) {\n order.push(nestedOrder);\n }\n }\n\n if (nestedLevels > 0) {\n return order;\n }\n const hiddenGroups = [];\n for (const groupRef of contentGroupRefs) {\n if (parsedOrderRefs.has(groupRef)) {\n continue;\n }\n hiddenGroups.push(groupRef.toString());\n }\n if (hiddenGroups.length) {\n order.push({ name: null, order: hiddenGroups });\n }\n\n return order;\n }\n\n function parseNestedOrder(ref, nestedLevels) {\n if (++nestedLevels > MAX_NESTED_LEVELS) {\n warn(\"parseNestedOrder - reached MAX_NESTED_LEVELS.\");\n return null;\n }\n const value = xref.fetchIfRef(ref);\n if (!Array.isArray(value)) {\n return null;\n }\n const nestedName = xref.fetchIfRef(value[0]);\n if (typeof nestedName !== \"string\") {\n return null;\n }\n const nestedOrder = parseOrder(value.slice(1), nestedLevels);\n if (!nestedOrder || !nestedOrder.length) {\n return null;\n }\n return { name: stringToPDFString(nestedName), order: nestedOrder };\n }\n\n const xref = this.xref,\n parsedOrderRefs = new RefSet(),\n MAX_NESTED_LEVELS = 10;\n\n return {\n name:\n typeof config.get(\"Name\") === \"string\"\n ? stringToPDFString(config.get(\"Name\"))\n : null,\n creator:\n typeof config.get(\"Creator\") === \"string\"\n ? stringToPDFString(config.get(\"Creator\"))\n : null,\n baseState:\n config.get(\"BaseState\") instanceof Name\n ? config.get(\"BaseState\").name\n : null,\n on: parseOnOff(config.get(\"ON\")),\n off: parseOnOff(config.get(\"OFF\")),\n order: parseOrder(config.get(\"Order\")),\n groups: null,\n };\n }\n\n setActualNumPages(num = null) {\n this._actualNumPages = num;\n }\n\n get hasActualNumPages() {\n return this._actualNumPages !== null;\n }\n\n get _pagesCount() {\n const obj = this.toplevelPagesDict.get(\"Count\");\n if (!Number.isInteger(obj)) {\n throw new FormatError(\n \"Page count in top-level pages dictionary is not an integer.\"\n );\n }\n return shadow(this, \"_pagesCount\", obj);\n }\n\n get numPages() {\n return this.hasActualNumPages ? this._actualNumPages : this._pagesCount;\n }\n\n get destinations() {\n const obj = this._readDests(),\n dests = Object.create(null);\n if (obj instanceof NameTree) {\n for (const [key, value] of obj.getAll()) {\n const dest = fetchDestination(value);\n if (dest) {\n dests[stringToPDFString(key)] = dest;\n }\n }\n } else if (obj instanceof Dict) {\n obj.forEach(function (key, value) {\n const dest = fetchDestination(value);\n if (dest) {\n dests[key] = dest;\n }\n });\n }\n return shadow(this, \"destinations\", dests);\n }\n\n getDestination(id) {\n const obj = this._readDests();\n if (obj instanceof NameTree) {\n const dest = fetchDestination(obj.get(id));\n if (dest) {\n return dest;\n }\n // Fallback to checking the *entire* NameTree, in an attempt to handle\n // corrupt PDF documents with out-of-order NameTrees (fixes issue 10272).\n const allDest = this.destinations[id];\n if (allDest) {\n warn(`Found \"${id}\" at an incorrect position in the NameTree.`);\n return allDest;\n }\n } else if (obj instanceof Dict) {\n const dest = fetchDestination(obj.get(id));\n if (dest) {\n return dest;\n }\n }\n return null;\n }\n\n /**\n * @private\n */\n _readDests() {\n const obj = this._catDict.get(\"Names\");\n if (obj && obj.has(\"Dests\")) {\n return new NameTree(obj.getRaw(\"Dests\"), this.xref);\n } else if (this._catDict.has(\"Dests\")) {\n // Simple destination dictionary.\n return this._catDict.get(\"Dests\");\n }\n return undefined;\n }\n\n get pageLabels() {\n let obj = null;\n try {\n obj = this._readPageLabels();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Unable to read page labels.\");\n }\n return shadow(this, \"pageLabels\", obj);\n }\n\n /**\n * @private\n */\n _readPageLabels() {\n const obj = this._catDict.getRaw(\"PageLabels\");\n if (!obj) {\n return null;\n }\n\n const pageLabels = new Array(this.numPages);\n let style = null,\n prefix = \"\";\n\n const numberTree = new NumberTree(obj, this.xref);\n const nums = numberTree.getAll();\n let currentLabel = \"\",\n currentIndex = 1;\n\n for (let i = 0, ii = this.numPages; i < ii; i++) {\n const labelDict = nums.get(i);\n\n if (labelDict !== undefined) {\n if (!(labelDict instanceof Dict)) {\n throw new FormatError(\"PageLabel is not a dictionary.\");\n }\n\n if (\n labelDict.has(\"Type\") &&\n !isName(labelDict.get(\"Type\"), \"PageLabel\")\n ) {\n throw new FormatError(\"Invalid type in PageLabel dictionary.\");\n }\n\n if (labelDict.has(\"S\")) {\n const s = labelDict.get(\"S\");\n if (!(s instanceof Name)) {\n throw new FormatError(\"Invalid style in PageLabel dictionary.\");\n }\n style = s.name;\n } else {\n style = null;\n }\n\n if (labelDict.has(\"P\")) {\n const p = labelDict.get(\"P\");\n if (typeof p !== \"string\") {\n throw new FormatError(\"Invalid prefix in PageLabel dictionary.\");\n }\n prefix = stringToPDFString(p);\n } else {\n prefix = \"\";\n }\n\n if (labelDict.has(\"St\")) {\n const st = labelDict.get(\"St\");\n if (!(Number.isInteger(st) && st >= 1)) {\n throw new FormatError(\"Invalid start in PageLabel dictionary.\");\n }\n currentIndex = st;\n } else {\n currentIndex = 1;\n }\n }\n\n switch (style) {\n case \"D\":\n currentLabel = currentIndex;\n break;\n case \"R\":\n case \"r\":\n currentLabel = toRomanNumerals(currentIndex, style === \"r\");\n break;\n case \"A\":\n case \"a\":\n const LIMIT = 26; // Use only the characters A-Z, or a-z.\n const A_UPPER_CASE = 0x41,\n A_LOWER_CASE = 0x61;\n\n const baseCharCode = style === \"a\" ? A_LOWER_CASE : A_UPPER_CASE;\n const letterIndex = currentIndex - 1;\n const character = String.fromCharCode(\n baseCharCode + (letterIndex % LIMIT)\n );\n currentLabel = character.repeat(Math.floor(letterIndex / LIMIT) + 1);\n break;\n default:\n if (style) {\n throw new FormatError(\n `Invalid style \"${style}\" in PageLabel dictionary.`\n );\n }\n currentLabel = \"\";\n }\n\n pageLabels[i] = prefix + currentLabel;\n currentIndex++;\n }\n return pageLabels;\n }\n\n get pageLayout() {\n const obj = this._catDict.get(\"PageLayout\");\n // Purposely use a non-standard default value, rather than 'SinglePage', to\n // allow differentiating between `undefined` and /SinglePage since that does\n // affect the Scroll mode (continuous/non-continuous) used in Adobe Reader.\n let pageLayout = \"\";\n\n if (obj instanceof Name) {\n switch (obj.name) {\n case \"SinglePage\":\n case \"OneColumn\":\n case \"TwoColumnLeft\":\n case \"TwoColumnRight\":\n case \"TwoPageLeft\":\n case \"TwoPageRight\":\n pageLayout = obj.name;\n }\n }\n return shadow(this, \"pageLayout\", pageLayout);\n }\n\n get pageMode() {\n const obj = this._catDict.get(\"PageMode\");\n let pageMode = \"UseNone\"; // Default value.\n\n if (obj instanceof Name) {\n switch (obj.name) {\n case \"UseNone\":\n case \"UseOutlines\":\n case \"UseThumbs\":\n case \"FullScreen\":\n case \"UseOC\":\n case \"UseAttachments\":\n pageMode = obj.name;\n }\n }\n return shadow(this, \"pageMode\", pageMode);\n }\n\n get viewerPreferences() {\n const obj = this._catDict.get(\"ViewerPreferences\");\n if (!(obj instanceof Dict)) {\n return shadow(this, \"viewerPreferences\", null);\n }\n let prefs = null;\n\n for (const key of obj.getKeys()) {\n const value = obj.get(key);\n let prefValue;\n\n switch (key) {\n case \"HideToolbar\":\n case \"HideMenubar\":\n case \"HideWindowUI\":\n case \"FitWindow\":\n case \"CenterWindow\":\n case \"DisplayDocTitle\":\n case \"PickTrayByPDFSize\":\n if (typeof value === \"boolean\") {\n prefValue = value;\n }\n break;\n case \"NonFullScreenPageMode\":\n if (value instanceof Name) {\n switch (value.name) {\n case \"UseNone\":\n case \"UseOutlines\":\n case \"UseThumbs\":\n case \"UseOC\":\n prefValue = value.name;\n break;\n default:\n prefValue = \"UseNone\";\n }\n }\n break;\n case \"Direction\":\n if (value instanceof Name) {\n switch (value.name) {\n case \"L2R\":\n case \"R2L\":\n prefValue = value.name;\n break;\n default:\n prefValue = \"L2R\";\n }\n }\n break;\n case \"ViewArea\":\n case \"ViewClip\":\n case \"PrintArea\":\n case \"PrintClip\":\n if (value instanceof Name) {\n switch (value.name) {\n case \"MediaBox\":\n case \"CropBox\":\n case \"BleedBox\":\n case \"TrimBox\":\n case \"ArtBox\":\n prefValue = value.name;\n break;\n default:\n prefValue = \"CropBox\";\n }\n }\n break;\n case \"PrintScaling\":\n if (value instanceof Name) {\n switch (value.name) {\n case \"None\":\n case \"AppDefault\":\n prefValue = value.name;\n break;\n default:\n prefValue = \"AppDefault\";\n }\n }\n break;\n case \"Duplex\":\n if (value instanceof Name) {\n switch (value.name) {\n case \"Simplex\":\n case \"DuplexFlipShortEdge\":\n case \"DuplexFlipLongEdge\":\n prefValue = value.name;\n break;\n default:\n prefValue = \"None\";\n }\n }\n break;\n case \"PrintPageRange\":\n // The number of elements must be even.\n if (Array.isArray(value) && value.length % 2 === 0) {\n const isValid = value.every((page, i, arr) => {\n return (\n Number.isInteger(page) &&\n page > 0 &&\n (i === 0 || page >= arr[i - 1]) &&\n page <= this.numPages\n );\n });\n if (isValid) {\n prefValue = value;\n }\n }\n break;\n case \"NumCopies\":\n if (Number.isInteger(value) && value > 0) {\n prefValue = value;\n }\n break;\n default:\n warn(`Ignoring non-standard key in ViewerPreferences: ${key}.`);\n continue;\n }\n\n if (prefValue === undefined) {\n warn(`Bad value, for key \"${key}\", in ViewerPreferences: ${value}.`);\n continue;\n }\n if (!prefs) {\n prefs = Object.create(null);\n }\n prefs[key] = prefValue;\n }\n return shadow(this, \"viewerPreferences\", prefs);\n }\n\n get openAction() {\n const obj = this._catDict.get(\"OpenAction\");\n const openAction = Object.create(null);\n\n if (obj instanceof Dict) {\n // Convert the OpenAction dictionary into a format that works with\n // `parseDestDictionary`, to avoid having to re-implement those checks.\n const destDict = new Dict(this.xref);\n destDict.set(\"A\", obj);\n\n const resultObj = { url: null, dest: null, action: null };\n Catalog.parseDestDictionary({ destDict, resultObj });\n\n if (Array.isArray(resultObj.dest)) {\n openAction.dest = resultObj.dest;\n } else if (resultObj.action) {\n openAction.action = resultObj.action;\n }\n } else if (Array.isArray(obj)) {\n openAction.dest = obj;\n }\n return shadow(\n this,\n \"openAction\",\n objectSize(openAction) > 0 ? openAction : null\n );\n }\n\n get attachments() {\n const obj = this._catDict.get(\"Names\");\n let attachments = null;\n\n if (obj instanceof Dict && obj.has(\"EmbeddedFiles\")) {\n const nameTree = new NameTree(obj.getRaw(\"EmbeddedFiles\"), this.xref);\n for (const [key, value] of nameTree.getAll()) {\n const fs = new FileSpec(value, this.xref);\n if (!attachments) {\n attachments = Object.create(null);\n }\n attachments[stringToPDFString(key)] = fs.serializable;\n }\n }\n return shadow(this, \"attachments\", attachments);\n }\n\n get xfaImages() {\n const obj = this._catDict.get(\"Names\");\n let xfaImages = null;\n\n if (obj instanceof Dict && obj.has(\"XFAImages\")) {\n const nameTree = new NameTree(obj.getRaw(\"XFAImages\"), this.xref);\n for (const [key, value] of nameTree.getAll()) {\n if (!xfaImages) {\n xfaImages = new Dict(this.xref);\n }\n xfaImages.set(stringToPDFString(key), value);\n }\n }\n return shadow(this, \"xfaImages\", xfaImages);\n }\n\n _collectJavaScript() {\n const obj = this._catDict.get(\"Names\");\n let javaScript = null;\n\n function appendIfJavaScriptDict(name, jsDict) {\n if (!(jsDict instanceof Dict)) {\n return;\n }\n if (!isName(jsDict.get(\"S\"), \"JavaScript\")) {\n return;\n }\n\n let js = jsDict.get(\"JS\");\n if (js instanceof BaseStream) {\n js = js.getString();\n } else if (typeof js !== \"string\") {\n return;\n }\n\n if (javaScript === null) {\n javaScript = new Map();\n }\n javaScript.set(name, stringToPDFString(js));\n }\n\n if (obj instanceof Dict && obj.has(\"JavaScript\")) {\n const nameTree = new NameTree(obj.getRaw(\"JavaScript\"), this.xref);\n for (const [key, value] of nameTree.getAll()) {\n appendIfJavaScriptDict(stringToPDFString(key), value);\n }\n }\n // Append OpenAction \"JavaScript\" actions, if any, to the JavaScript map.\n const openAction = this._catDict.get(\"OpenAction\");\n if (openAction) {\n appendIfJavaScriptDict(\"OpenAction\", openAction);\n }\n\n return javaScript;\n }\n\n get javaScript() {\n const javaScript = this._collectJavaScript();\n return shadow(\n this,\n \"javaScript\",\n javaScript ? [...javaScript.values()] : null\n );\n }\n\n get jsActions() {\n const javaScript = this._collectJavaScript();\n let actions = collectActions(\n this.xref,\n this._catDict,\n DocumentActionEventType\n );\n\n if (javaScript) {\n if (!actions) {\n actions = Object.create(null);\n }\n for (const [key, val] of javaScript) {\n if (key in actions) {\n actions[key].push(val);\n } else {\n actions[key] = [val];\n }\n }\n }\n return shadow(this, \"jsActions\", actions);\n }\n\n async fontFallback(id, handler) {\n const translatedFonts = await Promise.all(this.fontCache);\n\n for (const translatedFont of translatedFonts) {\n if (translatedFont.loadedName === id) {\n translatedFont.fallback(handler);\n return;\n }\n }\n }\n\n async cleanup(manuallyTriggered = false) {\n clearGlobalCaches();\n this.globalImageCache.clear(/* onlyData = */ manuallyTriggered);\n this.pageKidsCountCache.clear();\n this.pageIndexCache.clear();\n this.nonBlendModesSet.clear();\n\n const translatedFonts = await Promise.all(this.fontCache);\n\n for (const { dict } of translatedFonts) {\n delete dict.cacheKey;\n }\n this.fontCache.clear();\n this.builtInCMapCache.clear();\n this.standardFontDataCache.clear();\n }\n\n async getPageDict(pageIndex) {\n const nodesToVisit = [this.toplevelPagesDict];\n const visitedNodes = new RefSet();\n\n const pagesRef = this._catDict.getRaw(\"Pages\");\n if (pagesRef instanceof Ref) {\n visitedNodes.put(pagesRef);\n }\n const xref = this.xref,\n pageKidsCountCache = this.pageKidsCountCache,\n pageIndexCache = this.pageIndexCache;\n let currentPageIndex = 0;\n\n while (nodesToVisit.length) {\n const currentNode = nodesToVisit.pop();\n\n if (currentNode instanceof Ref) {\n const count = pageKidsCountCache.get(currentNode);\n // Skip nodes where the page can't be.\n if (count >= 0 && currentPageIndex + count <= pageIndex) {\n currentPageIndex += count;\n continue;\n }\n // Prevent circular references in the /Pages tree.\n if (visitedNodes.has(currentNode)) {\n throw new FormatError(\"Pages tree contains circular reference.\");\n }\n visitedNodes.put(currentNode);\n\n const obj = await xref.fetchAsync(currentNode);\n if (obj instanceof Dict) {\n let type = obj.getRaw(\"Type\");\n if (type instanceof Ref) {\n type = await xref.fetchAsync(type);\n }\n if (isName(type, \"Page\") || !obj.has(\"Kids\")) {\n // Cache the Page reference, since it can *greatly* improve\n // performance by reducing redundant lookups in long documents\n // where all nodes are found at *one* level of the tree.\n if (!pageKidsCountCache.has(currentNode)) {\n pageKidsCountCache.put(currentNode, 1);\n }\n // Help improve performance of the `getPageIndex` method.\n if (!pageIndexCache.has(currentNode)) {\n pageIndexCache.put(currentNode, currentPageIndex);\n }\n\n if (currentPageIndex === pageIndex) {\n return [obj, currentNode];\n }\n currentPageIndex++;\n continue;\n }\n }\n nodesToVisit.push(obj);\n continue;\n }\n\n // Must be a child page dictionary.\n if (!(currentNode instanceof Dict)) {\n throw new FormatError(\n \"Page dictionary kid reference points to wrong type of object.\"\n );\n }\n const { objId } = currentNode;\n\n let count = currentNode.getRaw(\"Count\");\n if (count instanceof Ref) {\n count = await xref.fetchAsync(count);\n }\n if (Number.isInteger(count) && count >= 0) {\n // Cache the Kids count, since it can reduce redundant lookups in\n // documents where all nodes are found at *one* level of the tree.\n if (objId && !pageKidsCountCache.has(objId)) {\n pageKidsCountCache.put(objId, count);\n }\n\n // Skip nodes where the page can't be.\n if (currentPageIndex + count <= pageIndex) {\n currentPageIndex += count;\n continue;\n }\n }\n\n let kids = currentNode.getRaw(\"Kids\");\n if (kids instanceof Ref) {\n kids = await xref.fetchAsync(kids);\n }\n if (!Array.isArray(kids)) {\n // Prevent errors in corrupt PDF documents that violate the\n // specification by *inlining* Page dicts directly in the Kids\n // array, rather than using indirect objects (fixes issue9540.pdf).\n let type = currentNode.getRaw(\"Type\");\n if (type instanceof Ref) {\n type = await xref.fetchAsync(type);\n }\n if (isName(type, \"Page\") || !currentNode.has(\"Kids\")) {\n if (currentPageIndex === pageIndex) {\n return [currentNode, null];\n }\n currentPageIndex++;\n continue;\n }\n\n throw new FormatError(\"Page dictionary kids object is not an array.\");\n }\n\n // Always check all `Kids` nodes, to avoid getting stuck in an empty\n // node further down in the tree (see issue5644.pdf, issue8088.pdf),\n // and to ensure that we actually find the correct `Page` dict.\n for (let last = kids.length - 1; last >= 0; last--) {\n nodesToVisit.push(kids[last]);\n }\n }\n\n throw new Error(`Page index ${pageIndex} not found.`);\n }\n\n /**\n * Eagerly fetches the entire /Pages-tree; should ONLY be used as a fallback.\n * @returns {Promise}\n */\n async getAllPageDicts(recoveryMode = false) {\n const queue = [{ currentNode: this.toplevelPagesDict, posInKids: 0 }];\n const visitedNodes = new RefSet();\n\n const pagesRef = this._catDict.getRaw(\"Pages\");\n if (pagesRef instanceof Ref) {\n visitedNodes.put(pagesRef);\n }\n const map = new Map(),\n xref = this.xref,\n pageIndexCache = this.pageIndexCache;\n let pageIndex = 0;\n\n function addPageDict(pageDict, pageRef) {\n // Help improve performance of the `getPageIndex` method.\n if (pageRef && !pageIndexCache.has(pageRef)) {\n pageIndexCache.put(pageRef, pageIndex);\n }\n\n map.set(pageIndex++, [pageDict, pageRef]);\n }\n function addPageError(error) {\n if (error instanceof XRefEntryException && !recoveryMode) {\n throw error;\n }\n\n map.set(pageIndex++, [error, null]);\n }\n\n while (queue.length > 0) {\n const queueItem = queue[queue.length - 1];\n const { currentNode, posInKids } = queueItem;\n\n let kids = currentNode.getRaw(\"Kids\");\n if (kids instanceof Ref) {\n try {\n kids = await xref.fetchAsync(kids);\n } catch (ex) {\n addPageError(ex);\n break;\n }\n }\n if (!Array.isArray(kids)) {\n addPageError(\n new FormatError(\"Page dictionary kids object is not an array.\")\n );\n break;\n }\n\n if (posInKids >= kids.length) {\n queue.pop();\n continue;\n }\n\n const kidObj = kids[posInKids];\n let obj;\n if (kidObj instanceof Ref) {\n // Prevent circular references in the /Pages tree.\n if (visitedNodes.has(kidObj)) {\n addPageError(\n new FormatError(\"Pages tree contains circular reference.\")\n );\n break;\n }\n visitedNodes.put(kidObj);\n\n try {\n obj = await xref.fetchAsync(kidObj);\n } catch (ex) {\n addPageError(ex);\n break;\n }\n } else {\n // Prevent errors in corrupt PDF documents that violate the\n // specification by *inlining* Page dicts directly in the Kids\n // array, rather than using indirect objects (see issue9540.pdf).\n obj = kidObj;\n }\n if (!(obj instanceof Dict)) {\n addPageError(\n new FormatError(\n \"Page dictionary kid reference points to wrong type of object.\"\n )\n );\n break;\n }\n\n let type = obj.getRaw(\"Type\");\n if (type instanceof Ref) {\n try {\n type = await xref.fetchAsync(type);\n } catch (ex) {\n addPageError(ex);\n break;\n }\n }\n if (isName(type, \"Page\") || !obj.has(\"Kids\")) {\n addPageDict(obj, kidObj instanceof Ref ? kidObj : null);\n } else {\n queue.push({ currentNode: obj, posInKids: 0 });\n }\n queueItem.posInKids++;\n }\n return map;\n }\n\n getPageIndex(pageRef) {\n const cachedPageIndex = this.pageIndexCache.get(pageRef);\n if (cachedPageIndex !== undefined) {\n return Promise.resolve(cachedPageIndex);\n }\n\n // The page tree nodes have the count of all the leaves below them. To get\n // how many pages are before we just have to walk up the tree and keep\n // adding the count of siblings to the left of the node.\n const xref = this.xref;\n\n function pagesBeforeRef(kidRef) {\n let total = 0,\n parentRef;\n\n return xref\n .fetchAsync(kidRef)\n .then(function (node) {\n if (\n isRefsEqual(kidRef, pageRef) &&\n !isDict(node, \"Page\") &&\n !(node instanceof Dict && !node.has(\"Type\") && node.has(\"Contents\"))\n ) {\n throw new FormatError(\n \"The reference does not point to a /Page dictionary.\"\n );\n }\n if (!node) {\n return null;\n }\n if (!(node instanceof Dict)) {\n throw new FormatError(\"Node must be a dictionary.\");\n }\n parentRef = node.getRaw(\"Parent\");\n return node.getAsync(\"Parent\");\n })\n .then(function (parent) {\n if (!parent) {\n return null;\n }\n if (!(parent instanceof Dict)) {\n throw new FormatError(\"Parent must be a dictionary.\");\n }\n return parent.getAsync(\"Kids\");\n })\n .then(function (kids) {\n if (!kids) {\n return null;\n }\n\n const kidPromises = [];\n let found = false;\n for (let i = 0, ii = kids.length; i < ii; i++) {\n const kid = kids[i];\n if (!(kid instanceof Ref)) {\n throw new FormatError(\"Kid must be a reference.\");\n }\n if (isRefsEqual(kid, kidRef)) {\n found = true;\n break;\n }\n kidPromises.push(\n xref.fetchAsync(kid).then(function (obj) {\n if (!(obj instanceof Dict)) {\n throw new FormatError(\"Kid node must be a dictionary.\");\n }\n if (obj.has(\"Count\")) {\n total += obj.get(\"Count\");\n } else {\n // Page leaf node.\n total++;\n }\n })\n );\n }\n if (!found) {\n throw new FormatError(\"Kid reference not found in parent's kids.\");\n }\n return Promise.all(kidPromises).then(function () {\n return [total, parentRef];\n });\n });\n }\n\n let total = 0;\n const next = ref =>\n pagesBeforeRef(ref).then(args => {\n if (!args) {\n this.pageIndexCache.put(pageRef, total);\n return total;\n }\n const [count, parentRef] = args;\n total += count;\n return next(parentRef);\n });\n\n return next(pageRef);\n }\n\n get baseUrl() {\n const uri = this._catDict.get(\"URI\");\n if (uri instanceof Dict) {\n const base = uri.get(\"Base\");\n if (typeof base === \"string\") {\n const absoluteUrl = createValidAbsoluteUrl(base, null, {\n tryConvertEncoding: true,\n });\n if (absoluteUrl) {\n return shadow(this, \"baseUrl\", absoluteUrl.href);\n }\n }\n }\n return shadow(this, \"baseUrl\", null);\n }\n\n /**\n * @typedef {Object} ParseDestDictionaryParameters\n * @property {Dict} destDict - The dictionary containing the destination.\n * @property {Object} resultObj - The object where the parsed destination\n * properties will be placed.\n * @property {string} [docBaseUrl] - The document base URL that is used when\n * attempting to recover valid absolute URLs from relative ones.\n */\n\n /**\n * Helper function used to parse the contents of destination dictionaries.\n * @param {ParseDestDictionaryParameters} params\n */\n static parseDestDictionary(params) {\n const destDict = params.destDict;\n if (!(destDict instanceof Dict)) {\n warn(\"parseDestDictionary: `destDict` must be a dictionary.\");\n return;\n }\n const resultObj = params.resultObj;\n if (typeof resultObj !== \"object\") {\n warn(\"parseDestDictionary: `resultObj` must be an object.\");\n return;\n }\n const docBaseUrl = params.docBaseUrl || null;\n\n let action = destDict.get(\"A\"),\n url,\n dest;\n if (!(action instanceof Dict)) {\n if (destDict.has(\"Dest\")) {\n // A /Dest entry should *only* contain a Name or an Array, but some bad\n // PDF generators ignore that and treat it as an /A entry.\n action = destDict.get(\"Dest\");\n } else {\n action = destDict.get(\"AA\");\n if (action instanceof Dict) {\n if (action.has(\"D\")) {\n // MouseDown\n action = action.get(\"D\");\n } else if (action.has(\"U\")) {\n // MouseUp\n action = action.get(\"U\");\n }\n }\n }\n }\n\n if (action instanceof Dict) {\n const actionType = action.get(\"S\");\n if (!(actionType instanceof Name)) {\n warn(\"parseDestDictionary: Invalid type in Action dictionary.\");\n return;\n }\n const actionName = actionType.name;\n\n switch (actionName) {\n case \"ResetForm\":\n const flags = action.get(\"Flags\");\n const include = ((typeof flags === \"number\" ? flags : 0) & 1) === 0;\n const fields = [];\n const refs = [];\n for (const obj of action.get(\"Fields\") || []) {\n if (obj instanceof Ref) {\n refs.push(obj.toString());\n } else if (typeof obj === \"string\") {\n fields.push(stringToPDFString(obj));\n }\n }\n resultObj.resetForm = { fields, refs, include };\n break;\n case \"URI\":\n url = action.get(\"URI\");\n if (url instanceof Name) {\n // Some bad PDFs do not put parentheses around relative URLs.\n url = \"/\" + url.name;\n }\n break;\n\n case \"GoTo\":\n dest = action.get(\"D\");\n break;\n\n case \"Launch\":\n // We neither want, nor can, support arbitrary 'Launch' actions.\n // However, in practice they are mostly used for linking to other PDF\n // files, which we thus attempt to support (utilizing `docBaseUrl`).\n /* falls through */\n\n case \"GoToR\":\n const urlDict = action.get(\"F\");\n if (urlDict instanceof Dict) {\n // We assume that we found a FileSpec dictionary\n // and fetch the URL without checking any further.\n url = urlDict.get(\"F\") || null;\n } else if (typeof urlDict === \"string\") {\n url = urlDict;\n }\n\n // NOTE: the destination is relative to the *remote* document.\n let remoteDest = action.get(\"D\");\n if (remoteDest) {\n if (remoteDest instanceof Name) {\n remoteDest = remoteDest.name;\n }\n if (typeof url === \"string\") {\n const baseUrl = url.split(\"#\")[0];\n if (typeof remoteDest === \"string\") {\n url = baseUrl + \"#\" + remoteDest;\n } else if (Array.isArray(remoteDest)) {\n url = baseUrl + \"#\" + JSON.stringify(remoteDest);\n }\n }\n }\n // The 'NewWindow' property, equal to `LinkTarget.BLANK`.\n const newWindow = action.get(\"NewWindow\");\n if (typeof newWindow === \"boolean\") {\n resultObj.newWindow = newWindow;\n }\n break;\n\n case \"Named\":\n const namedAction = action.get(\"N\");\n if (namedAction instanceof Name) {\n resultObj.action = namedAction.name;\n }\n break;\n\n case \"JavaScript\":\n const jsAction = action.get(\"JS\");\n let js;\n\n if (jsAction instanceof BaseStream) {\n js = jsAction.getString();\n } else if (typeof jsAction === \"string\") {\n js = jsAction;\n }\n\n const jsURL = js && recoverJsURL(stringToPDFString(js));\n if (jsURL) {\n url = jsURL.url;\n resultObj.newWindow = jsURL.newWindow;\n break;\n }\n /* falls through */\n default:\n if (actionName === \"JavaScript\" || actionName === \"SubmitForm\") {\n // Don't bother the user with a warning for actions that require\n // scripting support, since those will be handled separately.\n break;\n }\n warn(`parseDestDictionary - unsupported action: \"${actionName}\".`);\n break;\n }\n } else if (destDict.has(\"Dest\")) {\n // Simple destination.\n dest = destDict.get(\"Dest\");\n }\n\n if (typeof url === \"string\") {\n const absoluteUrl = createValidAbsoluteUrl(url, docBaseUrl, {\n addDefaultProtocol: true,\n tryConvertEncoding: true,\n });\n if (absoluteUrl) {\n resultObj.url = absoluteUrl.href;\n }\n resultObj.unsafeUrl = url;\n }\n if (dest) {\n if (dest instanceof Name) {\n dest = dest.name;\n }\n if (typeof dest === \"string\") {\n resultObj.dest = stringToPDFString(dest);\n } else if (Array.isArray(dest)) {\n resultObj.dest = dest;\n }\n }\n }\n}\n\nclass ExtendedCatalog extends Catalog {\n constructor(pdfManager, xref) {\n super(pdfManager, xref);\n\n this.pages = this.getPages(this.toplevelPagesDict.get('Kids'));\n }\n\n _convertStructToObject(struct) {\n if (Array.isArray(struct)) {\n return struct.map(el => this._convertStructToObject(el));\n } else if (isDict(struct)) {\n let result = {};\n struct.getKeys().forEach(key => {\n result[key] = this._convertStructToObject(struct.get(key));\n });\n return result;\n } else if (isName(struct)) {\n return struct.name;\n } else {\n return struct;\n }\n }\n\n get structTreeRoot() {\n const structTreeRoot = this._catDict.get('StructTreeRoot');\n if (!isDict(structTreeRoot)) {\n return null;\n }\n return shadow(this, 'structTreeRoot', structTreeRoot);\n }\n\n getTreeElement(el, page, ref) {\n //update page for current element\n if (isDict(el) && el.has('Pg')) {\n let pageRef = el.getRaw('Pg');\n let newPage = this.pages.findIndex(el => el.num === pageRef.num && el.gen === pageRef.gen);\n newPage = newPage !== -1 ? newPage : null;\n if (newPage !== page) {\n page = newPage;\n }\n }\n\n if (isDict(el) && el.has('K')) {\n return {\n name: el.has('S') ? stringToUTF8String(el.get('S').name) : null,\n children: this.getTreeElement(el.get('K'), page, el.getRaw('K')),\n ref: ref\n }\n }\n\n if (isDict(el) && el.has('Obj')) {\n let obj = el.get('Obj');\n let type = null;\n if (obj.has('Type')) {\n type = obj.get('Type').name;\n }\n if (obj.has('Subtype')) {\n type = obj.get('Subtype').name;\n }\n switch (type){\n case 'Link':\n case 'Annot':\n let rect = obj.get('Rect');\n return {\n rect: [rect[0], rect[1], rect[2], rect[3]],\n pageIndex: page\n };\n default:\n break;\n }\n }\n\n if (Array.isArray(el)) {\n return el.map(subel => {\n if (Number.isInteger(subel)) {\n return {mcid: subel, pageIndex: page};\n } else if (!(subel.hasOwnProperty('num') && subel.hasOwnProperty('gen')) && subel.get('Type') !== 'OBJR') {\n return this.getTreeElement(subel, page);\n } else if (subel.hasOwnProperty('num') && subel.hasOwnProperty('gen')){\n return this.getTreeElement(this.xref.fetch(subel), page, subel);\n }\n })\n }\n\n if (Number.isInteger(el)) {\n return {mcid: el, pageIndex: page};\n }\n\n if (isDict(el) && el.has('Type') && el.get('Type').name === 'MCR') {\n return {mcid: el.get('MCID'), pageIndex: page};\n }\n }\n\n getPages(pages) {\n let pagesArray = [];\n pages.map(kid => {\n if (kid instanceof Ref){\n let kidObj = this.xref.fetch(kid);\n let kidObjType = kidObj.get('Type').name;\n switch (kidObjType) {\n case 'Page':\n pagesArray.push(kid);\n break;\n case 'Pages':\n let array = this.getPages(kidObj.get('Kids'));\n pagesArray = pagesArray.concat(array);\n break;\n default:\n break;\n }\n }\n });\n return pagesArray;\n }\n\n get structureTree() {\n let structureTree = null;\n if (this.structTreeRoot && isDict(this.structTreeRoot) && this.structTreeRoot.has('K')) {\n structureTree = this.getTreeElement(this.structTreeRoot.get('K'), null, this.structTreeRoot.getRaw('K'));\n }\n return shadow(this, 'structureTree', structureTree);\n }\n}\n\nexport { ExtendedCatalog as Catalog };\n\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Dict, RefSet } from \"./primitives.js\";\nimport { FormatError, unreachable, warn } from \"../shared/util.js\";\n\n/**\n * A NameTree/NumberTree is like a Dict but has some advantageous properties,\n * see the specification (7.9.6 and 7.9.7) for additional details.\n * TODO: implement all the Dict functions and make this more efficient.\n */\nclass NameOrNumberTree {\n constructor(root, xref, type) {\n if (this.constructor === NameOrNumberTree) {\n unreachable(\"Cannot initialize NameOrNumberTree.\");\n }\n this.root = root;\n this.xref = xref;\n this._type = type;\n }\n\n getAll() {\n const map = new Map();\n if (!this.root) {\n return map;\n }\n const xref = this.xref;\n // Reading Name/Number tree.\n const processed = new RefSet();\n processed.put(this.root);\n const queue = [this.root];\n while (queue.length > 0) {\n const obj = xref.fetchIfRef(queue.shift());\n if (!(obj instanceof Dict)) {\n continue;\n }\n if (obj.has(\"Kids\")) {\n const kids = obj.get(\"Kids\");\n if (!Array.isArray(kids)) {\n continue;\n }\n for (const kid of kids) {\n if (processed.has(kid)) {\n throw new FormatError(`Duplicate entry in \"${this._type}\" tree.`);\n }\n queue.push(kid);\n processed.put(kid);\n }\n continue;\n }\n const entries = obj.get(this._type);\n if (!Array.isArray(entries)) {\n continue;\n }\n for (let i = 0, ii = entries.length; i < ii; i += 2) {\n map.set(xref.fetchIfRef(entries[i]), xref.fetchIfRef(entries[i + 1]));\n }\n }\n return map;\n }\n\n get(key) {\n if (!this.root) {\n return null;\n }\n const xref = this.xref;\n let kidsOrEntries = xref.fetchIfRef(this.root);\n let loopCount = 0;\n const MAX_LEVELS = 10;\n\n // Perform a binary search to quickly find the entry that\n // contains the key we are looking for.\n while (kidsOrEntries.has(\"Kids\")) {\n if (++loopCount > MAX_LEVELS) {\n warn(`Search depth limit reached for \"${this._type}\" tree.`);\n return null;\n }\n\n const kids = kidsOrEntries.get(\"Kids\");\n if (!Array.isArray(kids)) {\n return null;\n }\n\n let l = 0,\n r = kids.length - 1;\n while (l <= r) {\n const m = (l + r) >> 1;\n const kid = xref.fetchIfRef(kids[m]);\n const limits = kid.get(\"Limits\");\n\n if (key < xref.fetchIfRef(limits[0])) {\n r = m - 1;\n } else if (key > xref.fetchIfRef(limits[1])) {\n l = m + 1;\n } else {\n kidsOrEntries = kid;\n break;\n }\n }\n if (l > r) {\n return null;\n }\n }\n\n // If we get here, then we have found the right entry. Now go through the\n // entries in the dictionary until we find the key we're looking for.\n const entries = kidsOrEntries.get(this._type);\n if (Array.isArray(entries)) {\n // Perform a binary search to reduce the lookup time.\n let l = 0,\n r = entries.length - 2;\n while (l <= r) {\n // Check only even indices (0, 2, 4, ...) because the\n // odd indices contain the actual data.\n const tmp = (l + r) >> 1,\n m = tmp + (tmp & 1);\n const currentKey = xref.fetchIfRef(entries[m]);\n if (key < currentKey) {\n r = m - 2;\n } else if (key > currentKey) {\n l = m + 2;\n } else {\n return xref.fetchIfRef(entries[m + 1]);\n }\n }\n }\n return null;\n }\n}\n\nclass NameTree extends NameOrNumberTree {\n constructor(root, xref) {\n super(root, xref, \"Names\");\n }\n}\n\nclass NumberTree extends NameOrNumberTree {\n constructor(root, xref) {\n super(root, xref, \"Nums\");\n }\n}\n\nexport { NameTree, NumberTree };\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { clearPrimitiveCaches } from \"./primitives.js\";\nimport { clearUnicodeCaches } from \"./unicode.js\";\n\nfunction clearGlobalCaches() {\n clearPrimitiveCaches();\n clearUnicodeCaches();\n}\n\nexport { clearGlobalCaches };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { stringToPDFString, warn } from \"../shared/util.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { Dict } from \"./primitives.js\";\n\nfunction pickPlatformItem(dict) {\n // Look for the filename in this order:\n // UF, F, Unix, Mac, DOS\n if (dict.has(\"UF\")) {\n return dict.get(\"UF\");\n } else if (dict.has(\"F\")) {\n return dict.get(\"F\");\n } else if (dict.has(\"Unix\")) {\n return dict.get(\"Unix\");\n } else if (dict.has(\"Mac\")) {\n return dict.get(\"Mac\");\n } else if (dict.has(\"DOS\")) {\n return dict.get(\"DOS\");\n }\n return null;\n}\n\n/**\n * \"A PDF file can refer to the contents of another file by using a File\n * Specification (PDF 1.1)\", see the spec (7.11) for more details.\n * NOTE: Only embedded files are supported (as part of the attachments support)\n * TODO: support the 'URL' file system (with caching if !/V), portable\n * collections attributes and related files (/RF)\n */\nclass FileSpec {\n constructor(root, xref) {\n if (!(root instanceof Dict)) {\n return;\n }\n this.xref = xref;\n this.root = root;\n if (root.has(\"FS\")) {\n this.fs = root.get(\"FS\");\n }\n this.description = root.has(\"Desc\")\n ? stringToPDFString(root.get(\"Desc\"))\n : \"\";\n if (root.has(\"RF\")) {\n warn(\"Related file specifications are not supported\");\n }\n this.contentAvailable = true;\n if (!root.has(\"EF\")) {\n this.contentAvailable = false;\n warn(\"Non-embedded file specifications are not supported\");\n }\n }\n\n get filename() {\n if (!this._filename && this.root) {\n const filename = pickPlatformItem(this.root) || \"unnamed\";\n this._filename = stringToPDFString(filename)\n .replace(/\\\\\\\\/g, \"\\\\\")\n .replace(/\\\\\\//g, \"/\")\n .replace(/\\\\/g, \"/\");\n }\n return this._filename;\n }\n\n get content() {\n if (!this.contentAvailable) {\n return null;\n }\n if (!this.contentRef && this.root) {\n this.contentRef = pickPlatformItem(this.root.get(\"EF\"));\n }\n let content = null;\n if (this.contentRef) {\n const fileObj = this.xref.fetchIfRef(this.contentRef);\n if (fileObj instanceof BaseStream) {\n content = fileObj.getBytes();\n } else {\n warn(\n \"Embedded file specification points to non-existing/invalid content\"\n );\n }\n } else {\n warn(\"Embedded file specification does not have a content\");\n }\n return content;\n }\n\n get serializable() {\n return {\n filename: this.filename,\n content: this.content,\n };\n }\n}\n\nexport { FileSpec };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SimpleXMLParser } from \"./xml_parser.js\";\n\nclass MetadataParser {\n constructor(data) {\n // Ghostscript may produce invalid metadata, so try to repair that first.\n data = this._repair(data);\n\n // Convert the string to an XML document.\n const parser = new SimpleXMLParser({ lowerCaseName: true });\n const xmlDocument = parser.parseFromString(data);\n\n this._metadataMap = new Map();\n this._data = data;\n\n if (xmlDocument) {\n this._parse(xmlDocument);\n }\n }\n\n _repair(data) {\n // Start by removing any \"junk\" before the first tag (see issue 10395).\n return data\n .replace(/^[^<]+/, \"\")\n .replace(/>\\\\376\\\\377([^<]+)/g, function (all, codes) {\n const bytes = codes\n .replace(/\\\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) {\n return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1);\n })\n .replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) {\n switch (name) {\n case \"amp\":\n return \"&\";\n case \"apos\":\n return \"'\";\n case \"gt\":\n return \">\";\n case \"lt\":\n return \"<\";\n case \"quot\":\n return '\"';\n }\n throw new Error(`_repair: ${name} isn't defined.`);\n });\n\n const charBuf = [];\n for (let i = 0, ii = bytes.length; i < ii; i += 2) {\n const code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);\n if (\n code >= /* Space = */ 32 &&\n code < /* Delete = */ 127 &&\n code !== /* '<' = */ 60 &&\n code !== /* '>' = */ 62 &&\n code !== /* '&' = */ 38\n ) {\n charBuf.push(String.fromCharCode(code));\n } else {\n charBuf.push(\n \"&#x\" + (0x10000 + code).toString(16).substring(1) + \";\"\n );\n }\n }\n return \">\" + charBuf.join(\"\");\n });\n }\n\n _getSequence(entry) {\n const name = entry.nodeName;\n if (name !== \"rdf:bag\" && name !== \"rdf:seq\" && name !== \"rdf:alt\") {\n return null;\n }\n return entry.childNodes.filter(node => node.nodeName === \"rdf:li\");\n }\n\n _parseArray(entry) {\n if (!entry.hasChildNodes()) {\n return;\n }\n // Child must be a Bag (unordered array) or a Seq.\n const [seqNode] = entry.childNodes;\n const sequence = this._getSequence(seqNode) || [];\n\n this._metadataMap.set(\n entry.nodeName,\n sequence.map(node => node.textContent.trim())\n );\n }\n\n _parse(xmlDocument) {\n let rdf = xmlDocument.documentElement;\n\n if (rdf.nodeName !== \"rdf:rdf\") {\n // Wrapped in \n rdf = rdf.firstChild;\n while (rdf && rdf.nodeName !== \"rdf:rdf\") {\n rdf = rdf.nextSibling;\n }\n }\n\n if (!rdf || rdf.nodeName !== \"rdf:rdf\" || !rdf.hasChildNodes()) {\n return;\n }\n\n for (const desc of rdf.childNodes) {\n if (desc.nodeName !== \"rdf:description\") {\n continue;\n }\n\n for (const entry of desc.childNodes) {\n const name = entry.nodeName;\n switch (name) {\n case \"#text\":\n continue;\n case \"dc:creator\":\n case \"dc:subject\":\n this._parseArray(entry);\n continue;\n }\n this._metadataMap.set(name, entry.textContent.trim());\n }\n }\n }\n\n get serializable() {\n return {\n parsedData: this._metadataMap,\n rawData: this._data,\n };\n }\n}\n\nexport { MetadataParser };\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// The code for XMLParserBase copied from\n// https://github.com/mozilla/shumway/blob/16451d8836fa85f4b16eeda8b4bda2fa9e2b22b0/src/avm2/natives/xml.ts\n\nimport { encodeToXmlString } from \"./core_utils.js\";\n\nconst XMLParserErrorCode = {\n NoError: 0,\n EndOfDocument: -1,\n UnterminatedCdat: -2,\n UnterminatedXmlDeclaration: -3,\n UnterminatedDoctypeDeclaration: -4,\n UnterminatedComment: -5,\n MalformedElement: -6,\n OutOfMemory: -7,\n UnterminatedAttributeValue: -8,\n UnterminatedElement: -9,\n ElementNeverBegun: -10,\n};\n\nfunction isWhitespace(s, index) {\n const ch = s[index];\n return ch === \" \" || ch === \"\\n\" || ch === \"\\r\" || ch === \"\\t\";\n}\n\nfunction isWhitespaceString(s) {\n for (let i = 0, ii = s.length; i < ii; i++) {\n if (!isWhitespace(s, i)) {\n return false;\n }\n }\n return true;\n}\n\nclass XMLParserBase {\n _resolveEntities(s) {\n return s.replace(/&([^;]+);/g, (all, entity) => {\n if (entity.substring(0, 2) === \"#x\") {\n return String.fromCodePoint(parseInt(entity.substring(2), 16));\n } else if (entity.substring(0, 1) === \"#\") {\n return String.fromCodePoint(parseInt(entity.substring(1), 10));\n }\n switch (entity) {\n case \"lt\":\n return \"<\";\n case \"gt\":\n return \">\";\n case \"amp\":\n return \"&\";\n case \"quot\":\n return '\"';\n case \"apos\":\n return \"'\";\n }\n return this.onResolveEntity(entity);\n });\n }\n\n _parseContent(s, start) {\n const attributes = [];\n let pos = start;\n\n function skipWs() {\n while (pos < s.length && isWhitespace(s, pos)) {\n ++pos;\n }\n }\n\n while (\n pos < s.length &&\n !isWhitespace(s, pos) &&\n s[pos] !== \">\" &&\n s[pos] !== \"/\"\n ) {\n ++pos;\n }\n const name = s.substring(start, pos);\n skipWs();\n while (\n pos < s.length &&\n s[pos] !== \">\" &&\n s[pos] !== \"/\" &&\n s[pos] !== \"?\"\n ) {\n skipWs();\n let attrName = \"\",\n attrValue = \"\";\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \"=\") {\n attrName += s[pos];\n ++pos;\n }\n skipWs();\n if (s[pos] !== \"=\") {\n return null;\n }\n ++pos;\n skipWs();\n const attrEndChar = s[pos];\n if (attrEndChar !== '\"' && attrEndChar !== \"'\") {\n return null;\n }\n const attrEndIndex = s.indexOf(attrEndChar, ++pos);\n if (attrEndIndex < 0) {\n return null;\n }\n attrValue = s.substring(pos, attrEndIndex);\n attributes.push({\n name: attrName,\n value: this._resolveEntities(attrValue),\n });\n pos = attrEndIndex + 1;\n skipWs();\n }\n return {\n name,\n attributes,\n parsed: pos - start,\n };\n }\n\n _parseProcessingInstruction(s, start) {\n let pos = start;\n\n function skipWs() {\n while (pos < s.length && isWhitespace(s, pos)) {\n ++pos;\n }\n }\n\n while (\n pos < s.length &&\n !isWhitespace(s, pos) &&\n s[pos] !== \">\" &&\n s[pos] !== \"?\" &&\n s[pos] !== \"/\"\n ) {\n ++pos;\n }\n const name = s.substring(start, pos);\n skipWs();\n const attrStart = pos;\n while (pos < s.length && (s[pos] !== \"?\" || s[pos + 1] !== \">\")) {\n ++pos;\n }\n const value = s.substring(attrStart, pos);\n return {\n name,\n value,\n parsed: pos - start,\n };\n }\n\n parseXml(s) {\n let i = 0;\n while (i < s.length) {\n const ch = s[i];\n let j = i;\n if (ch === \"<\") {\n ++j;\n const ch2 = s[j];\n let q;\n switch (ch2) {\n case \"/\":\n ++j;\n q = s.indexOf(\">\", j);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n this.onEndElement(s.substring(j, q));\n j = q + 1;\n break;\n case \"?\":\n ++j;\n const pi = this._parseProcessingInstruction(s, j);\n if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== \"?>\") {\n this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);\n return;\n }\n this.onPi(pi.name, pi.value);\n j += pi.parsed + 2;\n break;\n case \"!\":\n if (s.substring(j + 1, j + 3) === \"--\") {\n q = s.indexOf(\"-->\", j + 3);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedComment);\n return;\n }\n this.onComment(s.substring(j + 3, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === \"[CDATA[\") {\n q = s.indexOf(\"]]>\", j + 8);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedCdat);\n return;\n }\n this.onCdata(s.substring(j + 8, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === \"DOCTYPE\") {\n const q2 = s.indexOf(\"[\", j + 8);\n let complexDoctype = false;\n q = s.indexOf(\">\", j + 8);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n return;\n }\n if (q2 > 0 && q > q2) {\n q = s.indexOf(\"]>\", j + 8);\n if (q < 0) {\n this.onError(\n XMLParserErrorCode.UnterminatedDoctypeDeclaration\n );\n return;\n }\n complexDoctype = true;\n }\n const doctypeContent = s.substring(\n j + 8,\n q + (complexDoctype ? 1 : 0)\n );\n this.onDoctype(doctypeContent);\n j = q + (complexDoctype ? 2 : 1);\n } else {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n break;\n default:\n const content = this._parseContent(s, j);\n if (content === null) {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n let isClosed = false;\n if (\n s.substring(j + content.parsed, j + content.parsed + 2) === \"/>\"\n ) {\n isClosed = true;\n } else if (\n s.substring(j + content.parsed, j + content.parsed + 1) !== \">\"\n ) {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n this.onBeginElement(content.name, content.attributes, isClosed);\n j += content.parsed + (isClosed ? 2 : 1);\n break;\n }\n } else {\n while (j < s.length && s[j] !== \"<\") {\n j++;\n }\n const text = s.substring(i, j);\n this.onText(this._resolveEntities(text));\n }\n i = j;\n }\n }\n\n onResolveEntity(name) {\n return `&${name};`;\n }\n\n onPi(name, value) {}\n\n onComment(text) {}\n\n onCdata(text) {}\n\n onDoctype(doctypeContent) {}\n\n onText(text) {}\n\n onBeginElement(name, attributes, isEmpty) {}\n\n onEndElement(name) {}\n\n onError(code) {}\n}\n\nclass SimpleDOMNode {\n constructor(nodeName, nodeValue) {\n this.nodeName = nodeName;\n this.nodeValue = nodeValue;\n\n Object.defineProperty(this, \"parentNode\", { value: null, writable: true });\n }\n\n get firstChild() {\n return this.childNodes && this.childNodes[0];\n }\n\n get nextSibling() {\n const childNodes = this.parentNode.childNodes;\n if (!childNodes) {\n return undefined;\n }\n const index = childNodes.indexOf(this);\n if (index === -1) {\n return undefined;\n }\n return childNodes[index + 1];\n }\n\n get textContent() {\n if (!this.childNodes) {\n return this.nodeValue || \"\";\n }\n return this.childNodes\n .map(function (child) {\n return child.textContent;\n })\n .join(\"\");\n }\n\n get children() {\n return this.childNodes || [];\n }\n\n hasChildNodes() {\n return this.childNodes && this.childNodes.length > 0;\n }\n\n /**\n * Search a node in the tree with the given path\n * foo.bar[nnn], i.e. find the nnn-th node named\n * bar under a node named foo.\n *\n * @param {Array} paths - an array of objects as\n * returned by {parseXFAPath}.\n * @param {number} pos - the current position in\n * the paths array.\n * @returns {SimpleDOMNode} The node corresponding\n * to the path or null if not found.\n */\n searchNode(paths, pos) {\n if (pos >= paths.length) {\n return this;\n }\n\n const component = paths[pos];\n const stack = [];\n let node = this;\n\n while (true) {\n if (component.name === node.nodeName) {\n if (component.pos === 0) {\n const res = node.searchNode(paths, pos + 1);\n if (res !== null) {\n return res;\n }\n } else if (stack.length === 0) {\n return null;\n } else {\n const [parent] = stack.pop();\n let siblingPos = 0;\n for (const child of parent.childNodes) {\n if (component.name === child.nodeName) {\n if (siblingPos === component.pos) {\n return child.searchNode(paths, pos + 1);\n }\n siblingPos++;\n }\n }\n // We didn't find the correct sibling\n // so just return the first found node\n return node.searchNode(paths, pos + 1);\n }\n }\n\n if (node.childNodes && node.childNodes.length !== 0) {\n stack.push([node, 0]);\n node = node.childNodes[0];\n } else if (stack.length === 0) {\n return null;\n } else {\n while (stack.length !== 0) {\n const [parent, currentPos] = stack.pop();\n const newPos = currentPos + 1;\n if (newPos < parent.childNodes.length) {\n stack.push([parent, newPos]);\n node = parent.childNodes[newPos];\n break;\n }\n }\n if (stack.length === 0) {\n return null;\n }\n }\n }\n }\n\n dump(buffer) {\n if (this.nodeName === \"#text\") {\n buffer.push(encodeToXmlString(this.nodeValue));\n return;\n }\n\n buffer.push(`<${this.nodeName}`);\n if (this.attributes) {\n for (const attribute of this.attributes) {\n buffer.push(\n ` ${attribute.name}=\"${encodeToXmlString(attribute.value)}\"`\n );\n }\n }\n if (this.hasChildNodes()) {\n buffer.push(\">\");\n for (const child of this.childNodes) {\n child.dump(buffer);\n }\n buffer.push(``);\n } else if (this.nodeValue) {\n buffer.push(`>${encodeToXmlString(this.nodeValue)}`);\n } else {\n buffer.push(\"/>\");\n }\n }\n}\n\nclass SimpleXMLParser extends XMLParserBase {\n constructor({ hasAttributes = false, lowerCaseName = false }) {\n super();\n this._currentFragment = null;\n this._stack = null;\n this._errorCode = XMLParserErrorCode.NoError;\n this._hasAttributes = hasAttributes;\n this._lowerCaseName = lowerCaseName;\n }\n\n parseFromString(data) {\n this._currentFragment = [];\n this._stack = [];\n this._errorCode = XMLParserErrorCode.NoError;\n\n this.parseXml(data);\n\n if (this._errorCode !== XMLParserErrorCode.NoError) {\n return undefined; // return undefined on error\n }\n\n // We should only have one root.\n const [documentElement] = this._currentFragment;\n if (!documentElement) {\n return undefined; // Return undefined if no root was found.\n }\n return { documentElement };\n }\n\n onText(text) {\n if (isWhitespaceString(text)) {\n return;\n }\n const node = new SimpleDOMNode(\"#text\", text);\n this._currentFragment.push(node);\n }\n\n onCdata(text) {\n const node = new SimpleDOMNode(\"#text\", text);\n this._currentFragment.push(node);\n }\n\n onBeginElement(name, attributes, isEmpty) {\n if (this._lowerCaseName) {\n name = name.toLowerCase();\n }\n const node = new SimpleDOMNode(name);\n node.childNodes = [];\n if (this._hasAttributes) {\n node.attributes = attributes;\n }\n this._currentFragment.push(node);\n if (isEmpty) {\n return;\n }\n this._stack.push(this._currentFragment);\n this._currentFragment = node.childNodes;\n }\n\n onEndElement(name) {\n this._currentFragment = this._stack.pop() || [];\n const lastElement = this._currentFragment[this._currentFragment.length - 1];\n if (!lastElement) {\n return null;\n }\n for (let i = 0, ii = lastElement.childNodes.length; i < ii; i++) {\n lastElement.childNodes[i].parentNode = lastElement;\n }\n return lastElement;\n }\n\n onError(code) {\n this._errorCode = code;\n }\n}\n\nexport { SimpleDOMNode, SimpleXMLParser, XMLParserBase, XMLParserErrorCode };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Dict, isName, Name, Ref } from \"./primitives.js\";\nimport { stringToPDFString, warn } from \"../shared/util.js\";\nimport { NumberTree } from \"./name_number_tree.js\";\n\nconst MAX_DEPTH = 40;\n\nconst StructElementType = {\n PAGE_CONTENT: \"PAGE_CONTENT\",\n STREAM_CONTENT: \"STREAM_CONTENT\",\n OBJECT: \"OBJECT\",\n ELEMENT: \"ELEMENT\",\n};\n\nclass StructTreeRoot {\n constructor(rootDict) {\n this.dict = rootDict;\n this.roleMap = new Map();\n }\n\n init() {\n this.readRoleMap();\n }\n\n readRoleMap() {\n const roleMapDict = this.dict.get(\"RoleMap\");\n if (!(roleMapDict instanceof Dict)) {\n return;\n }\n roleMapDict.forEach((key, value) => {\n if (!(value instanceof Name)) {\n return;\n }\n this.roleMap.set(key, value.name);\n });\n }\n}\n\n/**\n * Instead of loading the whole tree we load just the page's relevant structure\n * elements, which means we need a wrapper structure to represent the tree.\n */\nclass StructElementNode {\n constructor(tree, dict) {\n this.tree = tree;\n this.dict = dict;\n this.kids = [];\n this.parseKids();\n }\n\n get role() {\n const nameObj = this.dict.get(\"S\");\n const name = nameObj instanceof Name ? nameObj.name : \"\";\n const { root } = this.tree;\n if (root.roleMap.has(name)) {\n return root.roleMap.get(name);\n }\n return name;\n }\n\n parseKids() {\n let pageObjId = null;\n const objRef = this.dict.getRaw(\"Pg\");\n if (objRef instanceof Ref) {\n pageObjId = objRef.toString();\n }\n const kids = this.dict.get(\"K\");\n if (Array.isArray(kids)) {\n for (const kid of kids) {\n const element = this.parseKid(pageObjId, kid);\n if (element) {\n this.kids.push(element);\n }\n }\n } else {\n const element = this.parseKid(pageObjId, kids);\n if (element) {\n this.kids.push(element);\n }\n }\n }\n\n parseKid(pageObjId, kid) {\n // A direct link to content, the integer is an mcid.\n if (Number.isInteger(kid)) {\n if (this.tree.pageDict.objId !== pageObjId) {\n return null;\n }\n\n return new StructElement({\n type: StructElementType.PAGE_CONTENT,\n mcid: kid,\n pageObjId,\n });\n }\n\n // Find the dictionary for the kid.\n let kidDict = null;\n if (kid instanceof Ref) {\n kidDict = this.dict.xref.fetch(kid);\n } else if (kid instanceof Dict) {\n kidDict = kid;\n }\n if (!kidDict) {\n return null;\n }\n const pageRef = kidDict.getRaw(\"Pg\");\n if (pageRef instanceof Ref) {\n pageObjId = pageRef.toString();\n }\n\n const type =\n kidDict.get(\"Type\") instanceof Name ? kidDict.get(\"Type\").name : null;\n if (type === \"MCR\") {\n if (this.tree.pageDict.objId !== pageObjId) {\n return null;\n }\n return new StructElement({\n type: StructElementType.STREAM_CONTENT,\n refObjId:\n kidDict.getRaw(\"Stm\") instanceof Ref\n ? kidDict.getRaw(\"Stm\").toString()\n : null,\n pageObjId,\n mcid: kidDict.get(\"MCID\"),\n });\n }\n\n if (type === \"OBJR\") {\n if (this.tree.pageDict.objId !== pageObjId) {\n return null;\n }\n return new StructElement({\n type: StructElementType.OBJECT,\n refObjId:\n kidDict.getRaw(\"Obj\") instanceof Ref\n ? kidDict.getRaw(\"Obj\").toString()\n : null,\n pageObjId,\n });\n }\n\n return new StructElement({\n type: StructElementType.ELEMENT,\n dict: kidDict,\n });\n }\n}\n\nclass StructElement {\n constructor({\n type,\n dict = null,\n mcid = null,\n pageObjId = null,\n refObjId = null,\n }) {\n this.type = type;\n this.dict = dict;\n this.mcid = mcid;\n this.pageObjId = pageObjId;\n this.refObjId = refObjId;\n this.parentNode = null;\n }\n}\n\nclass StructTreePage {\n constructor(structTreeRoot, pageDict) {\n this.root = structTreeRoot;\n this.rootDict = structTreeRoot ? structTreeRoot.dict : null;\n this.pageDict = pageDict;\n this.nodes = [];\n }\n\n parse() {\n if (!this.root || !this.rootDict) {\n return;\n }\n\n const parentTree = this.rootDict.get(\"ParentTree\");\n if (!parentTree) {\n return;\n }\n const id = this.pageDict.get(\"StructParents\");\n if (!Number.isInteger(id)) {\n return;\n }\n const numberTree = new NumberTree(parentTree, this.rootDict.xref);\n const parentArray = numberTree.get(id);\n if (!Array.isArray(parentArray)) {\n return;\n }\n const map = new Map();\n for (const ref of parentArray) {\n if (ref instanceof Ref) {\n this.addNode(this.rootDict.xref.fetch(ref), map);\n }\n }\n }\n\n addNode(dict, map, level = 0) {\n if (level > MAX_DEPTH) {\n warn(\"StructTree MAX_DEPTH reached.\");\n return null;\n }\n\n if (map.has(dict)) {\n return map.get(dict);\n }\n\n const element = new StructElementNode(this, dict);\n map.set(dict, element);\n\n const parent = dict.get(\"P\");\n\n if (!parent || isName(parent.get(\"Type\"), \"StructTreeRoot\")) {\n if (!this.addTopLevelNode(dict, element)) {\n map.delete(dict);\n }\n return element;\n }\n\n const parentNode = this.addNode(parent, map, level + 1);\n if (!parentNode) {\n return element;\n }\n let save = false;\n for (const kid of parentNode.kids) {\n if (kid.type === StructElementType.ELEMENT && kid.dict === dict) {\n kid.parentNode = element;\n save = true;\n }\n }\n if (!save) {\n map.delete(dict);\n }\n return element;\n }\n\n addTopLevelNode(dict, element) {\n const obj = this.rootDict.get(\"K\");\n if (!obj) {\n return false;\n }\n\n if (obj instanceof Dict) {\n if (obj.objId !== dict.objId) {\n return false;\n }\n this.nodes[0] = element;\n return true;\n }\n\n if (!Array.isArray(obj)) {\n return true;\n }\n let save = false;\n for (let i = 0; i < obj.length; i++) {\n const kidRef = obj[i];\n if (kidRef && kidRef.toString() === dict.objId) {\n this.nodes[i] = element;\n save = true;\n }\n }\n return save;\n }\n\n /**\n * Convert the tree structure into a simplified object literal that can\n * be sent to the main thread.\n * @returns {Object}\n */\n get serializable() {\n function nodeToSerializable(node, parent, level = 0) {\n if (level > MAX_DEPTH) {\n warn(\"StructTree too deep to be fully serialized.\");\n return;\n }\n const obj = Object.create(null);\n obj.role = node.role;\n obj.children = [];\n parent.children.push(obj);\n const alt = node.dict.get(\"Alt\");\n if (typeof alt === \"string\") {\n obj.alt = stringToPDFString(alt);\n }\n const lang = node.dict.get(\"Lang\");\n if (typeof lang === \"string\") {\n obj.lang = stringToPDFString(lang);\n }\n\n for (const kid of node.kids) {\n const kidElement =\n kid.type === StructElementType.ELEMENT ? kid.parentNode : null;\n if (kidElement) {\n nodeToSerializable(kidElement, obj, level + 1);\n continue;\n } else if (\n kid.type === StructElementType.PAGE_CONTENT ||\n kid.type === StructElementType.STREAM_CONTENT\n ) {\n obj.children.push({\n type: \"content\",\n id: `page${kid.pageObjId}_mcid${kid.mcid}`,\n });\n } else if (kid.type === StructElementType.OBJECT) {\n obj.children.push({\n type: \"object\",\n id: kid.refObjId,\n });\n }\n }\n }\n\n const root = Object.create(null);\n root.children = [];\n root.role = \"Root\";\n for (const child of this.nodes) {\n if (!child) {\n continue;\n }\n nodeToSerializable(child, root);\n }\n return root;\n }\n}\n\nexport { StructTreePage, StructTreeRoot };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Dict, Ref, RefSet } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { MissingDataException } from \"./core_utils.js\";\nimport { warn } from \"../shared/util.js\";\n\nfunction mayHaveChildren(value) {\n return (\n value instanceof Ref ||\n value instanceof Dict ||\n value instanceof BaseStream ||\n Array.isArray(value)\n );\n}\n\nfunction addChildren(node, nodesToVisit) {\n if (node instanceof Dict) {\n node = node.getRawValues();\n } else if (node instanceof BaseStream) {\n node = node.dict.getRawValues();\n } else if (!Array.isArray(node)) {\n return;\n }\n for (const rawValue of node) {\n if (mayHaveChildren(rawValue)) {\n nodesToVisit.push(rawValue);\n }\n }\n}\n\n/**\n * A helper for loading missing data in `Dict` graphs. It traverses the graph\n * depth first and queues up any objects that have missing data. Once it has\n * has traversed as many objects that are available it attempts to bundle the\n * missing data requests and then resume from the nodes that weren't ready.\n *\n * NOTE: It provides protection from circular references by keeping track of\n * loaded references. However, you must be careful not to load any graphs\n * that have references to the catalog or other pages since that will cause the\n * entire PDF document object graph to be traversed.\n */\nclass ObjectLoader {\n constructor(dict, keys, xref) {\n this.dict = dict;\n this.keys = keys;\n this.xref = xref;\n this.refSet = null;\n }\n\n async load() {\n // Don't walk the graph if all the data is already loaded.\n if (this.xref.stream.isDataLoaded) {\n return undefined;\n }\n\n const { keys, dict } = this;\n this.refSet = new RefSet();\n // Setup the initial nodes to visit.\n const nodesToVisit = [];\n for (let i = 0, ii = keys.length; i < ii; i++) {\n const rawValue = dict.getRaw(keys[i]);\n // Skip nodes that are guaranteed to be empty.\n if (rawValue !== undefined) {\n nodesToVisit.push(rawValue);\n }\n }\n return this._walk(nodesToVisit);\n }\n\n async _walk(nodesToVisit) {\n const nodesToRevisit = [];\n const pendingRequests = [];\n // DFS walk of the object graph.\n while (nodesToVisit.length) {\n let currentNode = nodesToVisit.pop();\n\n // Only references or chunked streams can cause missing data exceptions.\n if (currentNode instanceof Ref) {\n // Skip nodes that have already been visited.\n if (this.refSet.has(currentNode)) {\n continue;\n }\n try {\n this.refSet.put(currentNode);\n currentNode = this.xref.fetch(currentNode);\n } catch (ex) {\n if (!(ex instanceof MissingDataException)) {\n warn(`ObjectLoader._walk - requesting all data: \"${ex}\".`);\n this.refSet = null;\n\n const { manager } = this.xref.stream;\n return manager.requestAllChunks();\n }\n nodesToRevisit.push(currentNode);\n pendingRequests.push({ begin: ex.begin, end: ex.end });\n }\n }\n if (currentNode instanceof BaseStream) {\n const baseStreams = currentNode.getBaseStreams();\n if (baseStreams) {\n let foundMissingData = false;\n for (const stream of baseStreams) {\n if (stream.isDataLoaded) {\n continue;\n }\n foundMissingData = true;\n pendingRequests.push({ begin: stream.start, end: stream.end });\n }\n if (foundMissingData) {\n nodesToRevisit.push(currentNode);\n }\n }\n }\n\n addChildren(currentNode, nodesToVisit);\n }\n\n if (pendingRequests.length) {\n await this.xref.stream.manager.requestRanges(pendingRequests);\n\n for (const node of nodesToRevisit) {\n // Remove any reference nodes from the current `RefSet` so they\n // aren't skipped when we revist them.\n if (node instanceof Ref) {\n this.refSet.remove(node);\n }\n }\n return this._walk(nodesToRevisit);\n }\n // Everything is loaded.\n this.refSet = null;\n return undefined;\n }\n}\n\nexport { ObjectLoader };\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bytesToString, escapeString, warn } from \"../shared/util.js\";\nimport { Dict, Name, Ref } from \"./primitives.js\";\nimport { escapePDFName, parseXFAPath } from \"./core_utils.js\";\nimport { SimpleDOMNode, SimpleXMLParser } from \"./xml_parser.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { calculateMD5 } from \"./crypto.js\";\n\nfunction writeDict(dict, buffer, transform) {\n buffer.push(\"<<\");\n for (const key of dict.getKeys()) {\n buffer.push(` /${escapePDFName(key)} `);\n writeValue(dict.getRaw(key), buffer, transform);\n }\n buffer.push(\">>\");\n}\n\nfunction writeStream(stream, buffer, transform) {\n writeDict(stream.dict, buffer, transform);\n buffer.push(\" stream\\n\");\n let string = stream.getString();\n if (transform !== null) {\n string = transform.encryptString(string);\n }\n buffer.push(string, \"\\nendstream\\n\");\n}\n\nfunction writeArray(array, buffer, transform) {\n buffer.push(\"[\");\n let first = true;\n for (const val of array) {\n if (!first) {\n buffer.push(\" \");\n } else {\n first = false;\n }\n writeValue(val, buffer, transform);\n }\n buffer.push(\"]\");\n}\n\nfunction numberToString(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n\n const roundedValue = Math.round(value * 100);\n if (roundedValue % 100 === 0) {\n return (roundedValue / 100).toString();\n }\n\n if (roundedValue % 10 === 0) {\n return value.toFixed(1);\n }\n\n return value.toFixed(2);\n}\n\nfunction writeValue(value, buffer, transform) {\n if (value instanceof Name) {\n buffer.push(`/${escapePDFName(value.name)}`);\n } else if (value instanceof Ref) {\n buffer.push(`${value.num} ${value.gen} R`);\n } else if (Array.isArray(value)) {\n writeArray(value, buffer, transform);\n } else if (typeof value === \"string\") {\n if (transform !== null) {\n value = transform.encryptString(value);\n }\n buffer.push(`(${escapeString(value)})`);\n } else if (typeof value === \"number\") {\n buffer.push(numberToString(value));\n } else if (typeof value === \"boolean\") {\n buffer.push(value.toString());\n } else if (value instanceof Dict) {\n writeDict(value, buffer, transform);\n } else if (value instanceof BaseStream) {\n writeStream(value, buffer, transform);\n } else if (value === null) {\n buffer.push(\"null\");\n } else {\n warn(`Unhandled value in writer: ${typeof value}, please file a bug.`);\n }\n}\n\nfunction writeInt(number, size, offset, buffer) {\n for (let i = size + offset - 1; i > offset - 1; i--) {\n buffer[i] = number & 0xff;\n number >>= 8;\n }\n return offset + size;\n}\n\nfunction writeString(string, offset, buffer) {\n for (let i = 0, len = string.length; i < len; i++) {\n buffer[offset + i] = string.charCodeAt(i) & 0xff;\n }\n}\n\nfunction computeMD5(filesize, xrefInfo) {\n const time = Math.floor(Date.now() / 1000);\n const filename = xrefInfo.filename || \"\";\n const md5Buffer = [time.toString(), filename, filesize.toString()];\n let md5BufferLen = md5Buffer.reduce((a, str) => a + str.length, 0);\n for (const value of Object.values(xrefInfo.info)) {\n md5Buffer.push(value);\n md5BufferLen += value.length;\n }\n\n const array = new Uint8Array(md5BufferLen);\n let offset = 0;\n for (const str of md5Buffer) {\n writeString(str, offset, array);\n offset += str.length;\n }\n return bytesToString(calculateMD5(array));\n}\n\nfunction writeXFADataForAcroform(str, newRefs) {\n const xml = new SimpleXMLParser({ hasAttributes: true }).parseFromString(str);\n\n for (const { xfa } of newRefs) {\n if (!xfa) {\n continue;\n }\n const { path, value } = xfa;\n if (!path) {\n continue;\n }\n const node = xml.documentElement.searchNode(parseXFAPath(path), 0);\n if (node) {\n if (Array.isArray(value)) {\n node.childNodes = value.map(val => new SimpleDOMNode(\"value\", val));\n } else {\n node.childNodes = [new SimpleDOMNode(\"#text\", value)];\n }\n } else {\n warn(`Node not found for path: ${path}`);\n }\n }\n const buffer = [];\n xml.documentElement.dump(buffer);\n return buffer.join(\"\");\n}\n\nfunction updateXFA({\n xfaData,\n xfaDatasetsRef,\n hasXfaDatasetsEntry,\n acroFormRef,\n acroForm,\n newRefs,\n xref,\n xrefInfo,\n}) {\n if (xref === null) {\n return;\n }\n\n if (!hasXfaDatasetsEntry) {\n if (!acroFormRef) {\n warn(\"XFA - Cannot save it\");\n return;\n }\n\n // We've a XFA array which doesn't contain a datasets entry.\n // So we'll update the AcroForm dictionary to have an XFA containing\n // the datasets.\n const oldXfa = acroForm.get(\"XFA\");\n const newXfa = oldXfa.slice();\n newXfa.splice(2, 0, \"datasets\");\n newXfa.splice(3, 0, xfaDatasetsRef);\n\n acroForm.set(\"XFA\", newXfa);\n\n const encrypt = xref.encrypt;\n let transform = null;\n if (encrypt) {\n transform = encrypt.createCipherTransform(\n acroFormRef.num,\n acroFormRef.gen\n );\n }\n\n const buffer = [`${acroFormRef.num} ${acroFormRef.gen} obj\\n`];\n writeDict(acroForm, buffer, transform);\n buffer.push(\"\\n\");\n\n acroForm.set(\"XFA\", oldXfa);\n\n newRefs.push({ ref: acroFormRef, data: buffer.join(\"\") });\n }\n\n if (xfaData === null) {\n const datasets = xref.fetchIfRef(xfaDatasetsRef);\n xfaData = writeXFADataForAcroform(datasets.getString(), newRefs);\n }\n\n const encrypt = xref.encrypt;\n if (encrypt) {\n const transform = encrypt.createCipherTransform(\n xfaDatasetsRef.num,\n xfaDatasetsRef.gen\n );\n xfaData = transform.encryptString(xfaData);\n }\n const data =\n `${xfaDatasetsRef.num} ${xfaDatasetsRef.gen} obj\\n` +\n `<< /Type /EmbeddedFile /Length ${xfaData.length}>>\\nstream\\n` +\n xfaData +\n \"\\nendstream\\nendobj\\n\";\n\n newRefs.push({ ref: xfaDatasetsRef, data });\n}\n\nfunction incrementalUpdate({\n originalData,\n xrefInfo,\n newRefs,\n xref = null,\n hasXfa = false,\n xfaDatasetsRef = null,\n hasXfaDatasetsEntry = false,\n acroFormRef = null,\n acroForm = null,\n xfaData = null,\n}) {\n if (hasXfa) {\n updateXFA({\n xfaData,\n xfaDatasetsRef,\n hasXfaDatasetsEntry,\n acroFormRef,\n acroForm,\n newRefs,\n xref,\n xrefInfo,\n });\n }\n\n const newXref = new Dict(null);\n const refForXrefTable = xrefInfo.newRef;\n\n let buffer, baseOffset;\n const lastByte = originalData[originalData.length - 1];\n if (lastByte === /* \\n */ 0x0a || lastByte === /* \\r */ 0x0d) {\n buffer = [];\n baseOffset = originalData.length;\n } else {\n // Avoid to concatenate %%EOF with an object definition\n buffer = [\"\\n\"];\n baseOffset = originalData.length + 1;\n }\n\n newXref.set(\"Size\", refForXrefTable.num + 1);\n newXref.set(\"Prev\", xrefInfo.startXRef);\n newXref.set(\"Type\", Name.get(\"XRef\"));\n\n if (xrefInfo.rootRef !== null) {\n newXref.set(\"Root\", xrefInfo.rootRef);\n }\n if (xrefInfo.infoRef !== null) {\n newXref.set(\"Info\", xrefInfo.infoRef);\n }\n if (xrefInfo.encryptRef !== null) {\n newXref.set(\"Encrypt\", xrefInfo.encryptRef);\n }\n\n // Add a ref for the new xref and sort them\n newRefs.push({ ref: refForXrefTable, data: \"\" });\n newRefs = newRefs.sort((a, b) => {\n // compare the refs\n return a.ref.num - b.ref.num;\n });\n\n const xrefTableData = [[0, 1, 0xffff]];\n const indexes = [0, 1];\n let maxOffset = 0;\n for (const { ref, data } of newRefs) {\n maxOffset = Math.max(maxOffset, baseOffset);\n xrefTableData.push([1, baseOffset, Math.min(ref.gen, 0xffff)]);\n baseOffset += data.length;\n indexes.push(ref.num, 1);\n buffer.push(data);\n }\n\n newXref.set(\"Index\", indexes);\n\n if (Array.isArray(xrefInfo.fileIds) && xrefInfo.fileIds.length > 0) {\n const md5 = computeMD5(baseOffset, xrefInfo);\n newXref.set(\"ID\", [xrefInfo.fileIds[0], md5]);\n }\n\n const offsetSize = Math.ceil(Math.log2(maxOffset) / 8);\n const sizes = [1, offsetSize, 2];\n const structSize = sizes[0] + sizes[1] + sizes[2];\n const tableLength = structSize * xrefTableData.length;\n newXref.set(\"W\", sizes);\n newXref.set(\"Length\", tableLength);\n\n buffer.push(`${refForXrefTable.num} ${refForXrefTable.gen} obj\\n`);\n writeDict(newXref, buffer, null);\n buffer.push(\" stream\\n\");\n\n const bufferLen = buffer.reduce((a, str) => a + str.length, 0);\n const footer = `\\nendstream\\nendobj\\nstartxref\\n${baseOffset}\\n%%EOF\\n`;\n const array = new Uint8Array(\n originalData.length + bufferLen + tableLength + footer.length\n );\n\n // Original data\n array.set(originalData);\n let offset = originalData.length;\n\n // New data\n for (const str of buffer) {\n writeString(str, offset, array);\n offset += str.length;\n }\n\n // New xref table\n for (const [type, objOffset, gen] of xrefTableData) {\n offset = writeInt(type, sizes[0], offset, array);\n offset = writeInt(objOffset, sizes[1], offset, array);\n offset = writeInt(gen, sizes[2], offset, array);\n }\n\n // Add the footer\n writeString(footer, offset, array);\n\n return array;\n}\n\nexport { incrementalUpdate, writeDict };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n bytesToString,\n FormatError,\n isArrayEqual,\n PasswordException,\n PasswordResponses,\n stringToBytes,\n unreachable,\n utf8StringToString,\n warn,\n} from \"../shared/util.js\";\nimport { Dict, isName, Name } from \"./primitives.js\";\nimport { DecryptStream } from \"./decrypt_stream.js\";\n\nclass ARCFourCipher {\n constructor(key) {\n this.a = 0;\n this.b = 0;\n const s = new Uint8Array(256);\n const keyLength = key.length;\n\n for (let i = 0; i < 256; ++i) {\n s[i] = i;\n }\n for (let i = 0, j = 0; i < 256; ++i) {\n const tmp = s[i];\n j = (j + tmp + key[i % keyLength]) & 0xff;\n s[i] = s[j];\n s[j] = tmp;\n }\n this.s = s;\n }\n\n encryptBlock(data) {\n let a = this.a,\n b = this.b;\n const s = this.s;\n const n = data.length;\n const output = new Uint8Array(n);\n for (let i = 0; i < n; ++i) {\n a = (a + 1) & 0xff;\n const tmp = s[a];\n b = (b + tmp) & 0xff;\n const tmp2 = s[b];\n s[a] = tmp2;\n s[b] = tmp;\n output[i] = data[i] ^ s[(tmp + tmp2) & 0xff];\n }\n this.a = a;\n this.b = b;\n return output;\n }\n\n decryptBlock(data) {\n return this.encryptBlock(data);\n }\n\n encrypt(data) {\n return this.encryptBlock(data);\n }\n}\n\nconst calculateMD5 = (function calculateMD5Closure() {\n const r = new Uint8Array([\n 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5,\n 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11,\n 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10,\n 15, 21,\n ]);\n\n const k = new Int32Array([\n -680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426,\n -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162,\n 1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632,\n 643717713, -373897302, -701558691, 38016083, -660478335, -405537848,\n 568446438, -1019803690, -187363961, 1163531501, -1444681467, -51403784,\n 1735328473, -1926607734, -378558, -2022574463, 1839030562, -35309556,\n -1530992060, 1272893353, -155497632, -1094730640, 681279174, -358537222,\n -722521979, 76029189, -640364487, -421815835, 530742520, -995338651,\n -198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606,\n -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649,\n -145523070, -1120210379, 718787259, -343485551,\n ]);\n\n function hash(data, offset, length) {\n let h0 = 1732584193,\n h1 = -271733879,\n h2 = -1732584194,\n h3 = 271733878;\n // pre-processing\n const paddedLength = (length + 72) & ~63; // data + 9 extra bytes\n const padded = new Uint8Array(paddedLength);\n let i, j;\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n padded[i++] = 0x80;\n const n = paddedLength - 8;\n while (i < n) {\n padded[i++] = 0;\n }\n padded[i++] = (length << 3) & 0xff;\n padded[i++] = (length >> 5) & 0xff;\n padded[i++] = (length >> 13) & 0xff;\n padded[i++] = (length >> 21) & 0xff;\n padded[i++] = (length >>> 29) & 0xff;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n const w = new Int32Array(16);\n for (i = 0; i < paddedLength; ) {\n for (j = 0; j < 16; ++j, i += 4) {\n w[j] =\n padded[i] |\n (padded[i + 1] << 8) |\n (padded[i + 2] << 16) |\n (padded[i + 3] << 24);\n }\n let a = h0,\n b = h1,\n c = h2,\n d = h3,\n f,\n g;\n for (j = 0; j < 64; ++j) {\n if (j < 16) {\n f = (b & c) | (~b & d);\n g = j;\n } else if (j < 32) {\n f = (d & b) | (~d & c);\n g = (5 * j + 1) & 15;\n } else if (j < 48) {\n f = b ^ c ^ d;\n g = (3 * j + 5) & 15;\n } else {\n f = c ^ (b | ~d);\n g = (7 * j) & 15;\n }\n const tmp = d,\n rotateArg = (a + f + k[j] + w[g]) | 0,\n rotate = r[j];\n d = c;\n c = b;\n b = (b + ((rotateArg << rotate) | (rotateArg >>> (32 - rotate)))) | 0;\n a = tmp;\n }\n h0 = (h0 + a) | 0;\n h1 = (h1 + b) | 0;\n h2 = (h2 + c) | 0;\n h3 = (h3 + d) | 0;\n }\n // prettier-ignore\n return new Uint8Array([\n h0 & 0xFF, (h0 >> 8) & 0xFF, (h0 >> 16) & 0xFF, (h0 >>> 24) & 0xFF,\n h1 & 0xFF, (h1 >> 8) & 0xFF, (h1 >> 16) & 0xFF, (h1 >>> 24) & 0xFF,\n h2 & 0xFF, (h2 >> 8) & 0xFF, (h2 >> 16) & 0xFF, (h2 >>> 24) & 0xFF,\n h3 & 0xFF, (h3 >> 8) & 0xFF, (h3 >> 16) & 0xFF, (h3 >>> 24) & 0xFF\n ]);\n }\n\n return hash;\n})();\n\nclass Word64 {\n constructor(highInteger, lowInteger) {\n this.high = highInteger | 0;\n this.low = lowInteger | 0;\n }\n\n and(word) {\n this.high &= word.high;\n this.low &= word.low;\n }\n\n xor(word) {\n this.high ^= word.high;\n this.low ^= word.low;\n }\n\n or(word) {\n this.high |= word.high;\n this.low |= word.low;\n }\n\n shiftRight(places) {\n if (places >= 32) {\n this.low = (this.high >>> (places - 32)) | 0;\n this.high = 0;\n } else {\n this.low = (this.low >>> places) | (this.high << (32 - places));\n this.high = (this.high >>> places) | 0;\n }\n }\n\n shiftLeft(places) {\n if (places >= 32) {\n this.high = this.low << (places - 32);\n this.low = 0;\n } else {\n this.high = (this.high << places) | (this.low >>> (32 - places));\n this.low <<= places;\n }\n }\n\n rotateRight(places) {\n let low, high;\n if (places & 32) {\n high = this.low;\n low = this.high;\n } else {\n low = this.low;\n high = this.high;\n }\n places &= 31;\n this.low = (low >>> places) | (high << (32 - places));\n this.high = (high >>> places) | (low << (32 - places));\n }\n\n not() {\n this.high = ~this.high;\n this.low = ~this.low;\n }\n\n add(word) {\n const lowAdd = (this.low >>> 0) + (word.low >>> 0);\n let highAdd = (this.high >>> 0) + (word.high >>> 0);\n if (lowAdd > 0xffffffff) {\n highAdd += 1;\n }\n this.low = lowAdd | 0;\n this.high = highAdd | 0;\n }\n\n copyTo(bytes, offset) {\n bytes[offset] = (this.high >>> 24) & 0xff;\n bytes[offset + 1] = (this.high >> 16) & 0xff;\n bytes[offset + 2] = (this.high >> 8) & 0xff;\n bytes[offset + 3] = this.high & 0xff;\n bytes[offset + 4] = (this.low >>> 24) & 0xff;\n bytes[offset + 5] = (this.low >> 16) & 0xff;\n bytes[offset + 6] = (this.low >> 8) & 0xff;\n bytes[offset + 7] = this.low & 0xff;\n }\n\n assign(word) {\n this.high = word.high;\n this.low = word.low;\n }\n}\n\nconst calculateSHA256 = (function calculateSHA256Closure() {\n function rotr(x, n) {\n return (x >>> n) | (x << (32 - n));\n }\n\n function ch(x, y, z) {\n return (x & y) ^ (~x & z);\n }\n\n function maj(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n }\n\n function sigma(x) {\n return rotr(x, 2) ^ rotr(x, 13) ^ rotr(x, 22);\n }\n\n function sigmaPrime(x) {\n return rotr(x, 6) ^ rotr(x, 11) ^ rotr(x, 25);\n }\n\n function littleSigma(x) {\n return rotr(x, 7) ^ rotr(x, 18) ^ (x >>> 3);\n }\n\n function littleSigmaPrime(x) {\n return rotr(x, 17) ^ rotr(x, 19) ^ (x >>> 10);\n }\n\n const k = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1,\n 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786,\n 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b,\n 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a,\n 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,\n ];\n\n function hash(data, offset, length) {\n // initial hash values\n let h0 = 0x6a09e667,\n h1 = 0xbb67ae85,\n h2 = 0x3c6ef372,\n h3 = 0xa54ff53a,\n h4 = 0x510e527f,\n h5 = 0x9b05688c,\n h6 = 0x1f83d9ab,\n h7 = 0x5be0cd19;\n // pre-processing\n const paddedLength = Math.ceil((length + 9) / 64) * 64;\n const padded = new Uint8Array(paddedLength);\n let i, j;\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n padded[i++] = 0x80;\n const n = paddedLength - 8;\n while (i < n) {\n padded[i++] = 0;\n }\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = (length >>> 29) & 0xff;\n padded[i++] = (length >> 21) & 0xff;\n padded[i++] = (length >> 13) & 0xff;\n padded[i++] = (length >> 5) & 0xff;\n padded[i++] = (length << 3) & 0xff;\n const w = new Uint32Array(64);\n // for each 512 bit block\n for (i = 0; i < paddedLength; ) {\n for (j = 0; j < 16; ++j) {\n w[j] =\n (padded[i] << 24) |\n (padded[i + 1] << 16) |\n (padded[i + 2] << 8) |\n padded[i + 3];\n i += 4;\n }\n\n for (j = 16; j < 64; ++j) {\n w[j] =\n (littleSigmaPrime(w[j - 2]) +\n w[j - 7] +\n littleSigma(w[j - 15]) +\n w[j - 16]) |\n 0;\n }\n let a = h0,\n b = h1,\n c = h2,\n d = h3,\n e = h4,\n f = h5,\n g = h6,\n h = h7,\n t1,\n t2;\n for (j = 0; j < 64; ++j) {\n t1 = h + sigmaPrime(e) + ch(e, f, g) + k[j] + w[j];\n t2 = sigma(a) + maj(a, b, c);\n h = g;\n g = f;\n f = e;\n e = (d + t1) | 0;\n d = c;\n c = b;\n b = a;\n a = (t1 + t2) | 0;\n }\n h0 = (h0 + a) | 0;\n h1 = (h1 + b) | 0;\n h2 = (h2 + c) | 0;\n h3 = (h3 + d) | 0;\n h4 = (h4 + e) | 0;\n h5 = (h5 + f) | 0;\n h6 = (h6 + g) | 0;\n h7 = (h7 + h) | 0;\n }\n // prettier-ignore\n return new Uint8Array([\n (h0 >> 24) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 8) & 0xFF, (h0) & 0xFF,\n (h1 >> 24) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 8) & 0xFF, (h1) & 0xFF,\n (h2 >> 24) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 8) & 0xFF, (h2) & 0xFF,\n (h3 >> 24) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 8) & 0xFF, (h3) & 0xFF,\n (h4 >> 24) & 0xFF, (h4 >> 16) & 0xFF, (h4 >> 8) & 0xFF, (h4) & 0xFF,\n (h5 >> 24) & 0xFF, (h5 >> 16) & 0xFF, (h5 >> 8) & 0xFF, (h5) & 0xFF,\n (h6 >> 24) & 0xFF, (h6 >> 16) & 0xFF, (h6 >> 8) & 0xFF, (h6) & 0xFF,\n (h7 >> 24) & 0xFF, (h7 >> 16) & 0xFF, (h7 >> 8) & 0xFF, (h7) & 0xFF\n ]);\n }\n\n return hash;\n})();\n\nconst calculateSHA512 = (function calculateSHA512Closure() {\n function ch(result, x, y, z, tmp) {\n result.assign(x);\n result.and(y);\n tmp.assign(x);\n tmp.not();\n tmp.and(z);\n result.xor(tmp);\n }\n\n function maj(result, x, y, z, tmp) {\n result.assign(x);\n result.and(y);\n tmp.assign(x);\n tmp.and(z);\n result.xor(tmp);\n tmp.assign(y);\n tmp.and(z);\n result.xor(tmp);\n }\n\n function sigma(result, x, tmp) {\n result.assign(x);\n result.rotateRight(28);\n tmp.assign(x);\n tmp.rotateRight(34);\n result.xor(tmp);\n tmp.assign(x);\n tmp.rotateRight(39);\n result.xor(tmp);\n }\n\n function sigmaPrime(result, x, tmp) {\n result.assign(x);\n result.rotateRight(14);\n tmp.assign(x);\n tmp.rotateRight(18);\n result.xor(tmp);\n tmp.assign(x);\n tmp.rotateRight(41);\n result.xor(tmp);\n }\n\n function littleSigma(result, x, tmp) {\n result.assign(x);\n result.rotateRight(1);\n tmp.assign(x);\n tmp.rotateRight(8);\n result.xor(tmp);\n tmp.assign(x);\n tmp.shiftRight(7);\n result.xor(tmp);\n }\n\n function littleSigmaPrime(result, x, tmp) {\n result.assign(x);\n result.rotateRight(19);\n tmp.assign(x);\n tmp.rotateRight(61);\n result.xor(tmp);\n tmp.assign(x);\n tmp.shiftRight(6);\n result.xor(tmp);\n }\n\n // prettier-ignore\n const k = [\n new Word64(0x428a2f98, 0xd728ae22), new Word64(0x71374491, 0x23ef65cd),\n new Word64(0xb5c0fbcf, 0xec4d3b2f), new Word64(0xe9b5dba5, 0x8189dbbc),\n new Word64(0x3956c25b, 0xf348b538), new Word64(0x59f111f1, 0xb605d019),\n new Word64(0x923f82a4, 0xaf194f9b), new Word64(0xab1c5ed5, 0xda6d8118),\n new Word64(0xd807aa98, 0xa3030242), new Word64(0x12835b01, 0x45706fbe),\n new Word64(0x243185be, 0x4ee4b28c), new Word64(0x550c7dc3, 0xd5ffb4e2),\n new Word64(0x72be5d74, 0xf27b896f), new Word64(0x80deb1fe, 0x3b1696b1),\n new Word64(0x9bdc06a7, 0x25c71235), new Word64(0xc19bf174, 0xcf692694),\n new Word64(0xe49b69c1, 0x9ef14ad2), new Word64(0xefbe4786, 0x384f25e3),\n new Word64(0x0fc19dc6, 0x8b8cd5b5), new Word64(0x240ca1cc, 0x77ac9c65),\n new Word64(0x2de92c6f, 0x592b0275), new Word64(0x4a7484aa, 0x6ea6e483),\n new Word64(0x5cb0a9dc, 0xbd41fbd4), new Word64(0x76f988da, 0x831153b5),\n new Word64(0x983e5152, 0xee66dfab), new Word64(0xa831c66d, 0x2db43210),\n new Word64(0xb00327c8, 0x98fb213f), new Word64(0xbf597fc7, 0xbeef0ee4),\n new Word64(0xc6e00bf3, 0x3da88fc2), new Word64(0xd5a79147, 0x930aa725),\n new Word64(0x06ca6351, 0xe003826f), new Word64(0x14292967, 0x0a0e6e70),\n new Word64(0x27b70a85, 0x46d22ffc), new Word64(0x2e1b2138, 0x5c26c926),\n new Word64(0x4d2c6dfc, 0x5ac42aed), new Word64(0x53380d13, 0x9d95b3df),\n new Word64(0x650a7354, 0x8baf63de), new Word64(0x766a0abb, 0x3c77b2a8),\n new Word64(0x81c2c92e, 0x47edaee6), new Word64(0x92722c85, 0x1482353b),\n new Word64(0xa2bfe8a1, 0x4cf10364), new Word64(0xa81a664b, 0xbc423001),\n new Word64(0xc24b8b70, 0xd0f89791), new Word64(0xc76c51a3, 0x0654be30),\n new Word64(0xd192e819, 0xd6ef5218), new Word64(0xd6990624, 0x5565a910),\n new Word64(0xf40e3585, 0x5771202a), new Word64(0x106aa070, 0x32bbd1b8),\n new Word64(0x19a4c116, 0xb8d2d0c8), new Word64(0x1e376c08, 0x5141ab53),\n new Word64(0x2748774c, 0xdf8eeb99), new Word64(0x34b0bcb5, 0xe19b48a8),\n new Word64(0x391c0cb3, 0xc5c95a63), new Word64(0x4ed8aa4a, 0xe3418acb),\n new Word64(0x5b9cca4f, 0x7763e373), new Word64(0x682e6ff3, 0xd6b2b8a3),\n new Word64(0x748f82ee, 0x5defb2fc), new Word64(0x78a5636f, 0x43172f60),\n new Word64(0x84c87814, 0xa1f0ab72), new Word64(0x8cc70208, 0x1a6439ec),\n new Word64(0x90befffa, 0x23631e28), new Word64(0xa4506ceb, 0xde82bde9),\n new Word64(0xbef9a3f7, 0xb2c67915), new Word64(0xc67178f2, 0xe372532b),\n new Word64(0xca273ece, 0xea26619c), new Word64(0xd186b8c7, 0x21c0c207),\n new Word64(0xeada7dd6, 0xcde0eb1e), new Word64(0xf57d4f7f, 0xee6ed178),\n new Word64(0x06f067aa, 0x72176fba), new Word64(0x0a637dc5, 0xa2c898a6),\n new Word64(0x113f9804, 0xbef90dae), new Word64(0x1b710b35, 0x131c471b),\n new Word64(0x28db77f5, 0x23047d84), new Word64(0x32caab7b, 0x40c72493),\n new Word64(0x3c9ebe0a, 0x15c9bebc), new Word64(0x431d67c4, 0x9c100d4c),\n new Word64(0x4cc5d4be, 0xcb3e42b6), new Word64(0x597f299c, 0xfc657e2a),\n new Word64(0x5fcb6fab, 0x3ad6faec), new Word64(0x6c44198c, 0x4a475817)];\n\n function hash(data, offset, length, mode384 = false) {\n // initial hash values\n let h0, h1, h2, h3, h4, h5, h6, h7;\n if (!mode384) {\n h0 = new Word64(0x6a09e667, 0xf3bcc908);\n h1 = new Word64(0xbb67ae85, 0x84caa73b);\n h2 = new Word64(0x3c6ef372, 0xfe94f82b);\n h3 = new Word64(0xa54ff53a, 0x5f1d36f1);\n h4 = new Word64(0x510e527f, 0xade682d1);\n h5 = new Word64(0x9b05688c, 0x2b3e6c1f);\n h6 = new Word64(0x1f83d9ab, 0xfb41bd6b);\n h7 = new Word64(0x5be0cd19, 0x137e2179);\n } else {\n // SHA384 is exactly the same\n // except with different starting values and a trimmed result\n h0 = new Word64(0xcbbb9d5d, 0xc1059ed8);\n h1 = new Word64(0x629a292a, 0x367cd507);\n h2 = new Word64(0x9159015a, 0x3070dd17);\n h3 = new Word64(0x152fecd8, 0xf70e5939);\n h4 = new Word64(0x67332667, 0xffc00b31);\n h5 = new Word64(0x8eb44a87, 0x68581511);\n h6 = new Word64(0xdb0c2e0d, 0x64f98fa7);\n h7 = new Word64(0x47b5481d, 0xbefa4fa4);\n }\n\n // pre-processing\n const paddedLength = Math.ceil((length + 17) / 128) * 128;\n const padded = new Uint8Array(paddedLength);\n let i, j;\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n padded[i++] = 0x80;\n const n = paddedLength - 16;\n while (i < n) {\n padded[i++] = 0;\n }\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = (length >>> 29) & 0xff;\n padded[i++] = (length >> 21) & 0xff;\n padded[i++] = (length >> 13) & 0xff;\n padded[i++] = (length >> 5) & 0xff;\n padded[i++] = (length << 3) & 0xff;\n\n const w = new Array(80);\n for (i = 0; i < 80; i++) {\n w[i] = new Word64(0, 0);\n }\n let a = new Word64(0, 0),\n b = new Word64(0, 0),\n c = new Word64(0, 0);\n let d = new Word64(0, 0),\n e = new Word64(0, 0),\n f = new Word64(0, 0);\n let g = new Word64(0, 0),\n h = new Word64(0, 0);\n const t1 = new Word64(0, 0),\n t2 = new Word64(0, 0);\n const tmp1 = new Word64(0, 0),\n tmp2 = new Word64(0, 0);\n let tmp3;\n\n // for each 1024 bit block\n for (i = 0; i < paddedLength; ) {\n for (j = 0; j < 16; ++j) {\n w[j].high =\n (padded[i] << 24) |\n (padded[i + 1] << 16) |\n (padded[i + 2] << 8) |\n padded[i + 3];\n w[j].low =\n (padded[i + 4] << 24) |\n (padded[i + 5] << 16) |\n (padded[i + 6] << 8) |\n padded[i + 7];\n i += 8;\n }\n for (j = 16; j < 80; ++j) {\n tmp3 = w[j];\n littleSigmaPrime(tmp3, w[j - 2], tmp2);\n tmp3.add(w[j - 7]);\n littleSigma(tmp1, w[j - 15], tmp2);\n tmp3.add(tmp1);\n tmp3.add(w[j - 16]);\n }\n\n a.assign(h0);\n b.assign(h1);\n c.assign(h2);\n d.assign(h3);\n e.assign(h4);\n f.assign(h5);\n g.assign(h6);\n h.assign(h7);\n for (j = 0; j < 80; ++j) {\n t1.assign(h);\n sigmaPrime(tmp1, e, tmp2);\n t1.add(tmp1);\n ch(tmp1, e, f, g, tmp2);\n t1.add(tmp1);\n t1.add(k[j]);\n t1.add(w[j]);\n\n sigma(t2, a, tmp2);\n maj(tmp1, a, b, c, tmp2);\n t2.add(tmp1);\n\n tmp3 = h;\n h = g;\n g = f;\n f = e;\n d.add(t1);\n e = d;\n d = c;\n c = b;\n b = a;\n tmp3.assign(t1);\n tmp3.add(t2);\n a = tmp3;\n }\n h0.add(a);\n h1.add(b);\n h2.add(c);\n h3.add(d);\n h4.add(e);\n h5.add(f);\n h6.add(g);\n h7.add(h);\n }\n\n let result;\n if (!mode384) {\n result = new Uint8Array(64);\n h0.copyTo(result, 0);\n h1.copyTo(result, 8);\n h2.copyTo(result, 16);\n h3.copyTo(result, 24);\n h4.copyTo(result, 32);\n h5.copyTo(result, 40);\n h6.copyTo(result, 48);\n h7.copyTo(result, 56);\n } else {\n result = new Uint8Array(48);\n h0.copyTo(result, 0);\n h1.copyTo(result, 8);\n h2.copyTo(result, 16);\n h3.copyTo(result, 24);\n h4.copyTo(result, 32);\n h5.copyTo(result, 40);\n }\n return result;\n }\n\n return hash;\n})();\n\nfunction calculateSHA384(data, offset, length) {\n return calculateSHA512(data, offset, length, /* mode384 = */ true);\n}\n\nclass NullCipher {\n decryptBlock(data) {\n return data;\n }\n\n encrypt(data) {\n return data;\n }\n}\n\nclass AESBaseCipher {\n constructor() {\n if (this.constructor === AESBaseCipher) {\n unreachable(\"Cannot initialize AESBaseCipher.\");\n }\n\n this._s = new Uint8Array([\n 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b,\n 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0,\n 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26,\n 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,\n 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2,\n 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0,\n 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed,\n 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf,\n 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f,\n 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5,\n 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec,\n 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,\n 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14,\n 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c,\n 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d,\n 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08,\n 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f,\n 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e,\n 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11,\n 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,\n 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f,\n 0xb0, 0x54, 0xbb, 0x16,\n ]);\n\n this._inv_s = new Uint8Array([\n 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e,\n 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87,\n 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32,\n 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e,\n 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49,\n 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16,\n 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50,\n 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84,\n 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05,\n 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02,\n 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41,\n 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73,\n 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8,\n 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89,\n 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b,\n 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4,\n 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59,\n 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d,\n 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d,\n 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61,\n 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63,\n 0x55, 0x21, 0x0c, 0x7d,\n ]);\n\n this._mix = new Uint32Array([\n 0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927,\n 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45,\n 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb,\n 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381,\n 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf,\n 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66,\n 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28,\n 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012,\n 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec,\n 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e,\n 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd,\n 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7,\n 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89,\n 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b,\n 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815,\n 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f,\n 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa,\n 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8,\n 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36,\n 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c,\n 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742,\n 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea,\n 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4,\n 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e,\n 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360,\n 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502,\n 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87,\n 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd,\n 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3,\n 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621,\n 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f,\n 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55,\n 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26,\n 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844,\n 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba,\n 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480,\n 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce,\n 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67,\n 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929,\n 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713,\n 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed,\n 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f,\n 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3,\n ]);\n\n this._mixCol = new Uint8Array(256);\n for (let i = 0; i < 256; i++) {\n if (i < 128) {\n this._mixCol[i] = i << 1;\n } else {\n this._mixCol[i] = (i << 1) ^ 0x1b;\n }\n }\n\n this.buffer = new Uint8Array(16);\n this.bufferPosition = 0;\n }\n\n _expandKey(cipherKey) {\n unreachable(\"Cannot call `_expandKey` on the base class\");\n }\n\n _decrypt(input, key) {\n let t, u, v;\n const state = new Uint8Array(16);\n state.set(input);\n\n // AddRoundKey\n for (let j = 0, k = this._keySize; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n for (let i = this._cyclesOfRepetition - 1; i >= 1; --i) {\n // InvShiftRows\n t = state[13];\n state[13] = state[9];\n state[9] = state[5];\n state[5] = state[1];\n state[1] = t;\n t = state[14];\n u = state[10];\n state[14] = state[6];\n state[10] = state[2];\n state[6] = t;\n state[2] = u;\n t = state[15];\n u = state[11];\n v = state[7];\n state[15] = state[3];\n state[11] = t;\n state[7] = u;\n state[3] = v;\n // InvSubBytes\n for (let j = 0; j < 16; ++j) {\n state[j] = this._inv_s[state[j]];\n }\n // AddRoundKey\n for (let j = 0, k = i * 16; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n // InvMixColumns\n for (let j = 0; j < 16; j += 4) {\n const s0 = this._mix[state[j]];\n const s1 = this._mix[state[j + 1]];\n const s2 = this._mix[state[j + 2]];\n const s3 = this._mix[state[j + 3]];\n t =\n s0 ^\n (s1 >>> 8) ^\n (s1 << 24) ^\n (s2 >>> 16) ^\n (s2 << 16) ^\n (s3 >>> 24) ^\n (s3 << 8);\n state[j] = (t >>> 24) & 0xff;\n state[j + 1] = (t >> 16) & 0xff;\n state[j + 2] = (t >> 8) & 0xff;\n state[j + 3] = t & 0xff;\n }\n }\n // InvShiftRows\n t = state[13];\n state[13] = state[9];\n state[9] = state[5];\n state[5] = state[1];\n state[1] = t;\n t = state[14];\n u = state[10];\n state[14] = state[6];\n state[10] = state[2];\n state[6] = t;\n state[2] = u;\n t = state[15];\n u = state[11];\n v = state[7];\n state[15] = state[3];\n state[11] = t;\n state[7] = u;\n state[3] = v;\n for (let j = 0; j < 16; ++j) {\n // InvSubBytes\n state[j] = this._inv_s[state[j]];\n // AddRoundKey\n state[j] ^= key[j];\n }\n return state;\n }\n\n _encrypt(input, key) {\n const s = this._s;\n\n let t, u, v;\n const state = new Uint8Array(16);\n state.set(input);\n\n for (let j = 0; j < 16; ++j) {\n // AddRoundKey\n state[j] ^= key[j];\n }\n\n for (let i = 1; i < this._cyclesOfRepetition; i++) {\n // SubBytes\n for (let j = 0; j < 16; ++j) {\n state[j] = s[state[j]];\n }\n // ShiftRows\n v = state[1];\n state[1] = state[5];\n state[5] = state[9];\n state[9] = state[13];\n state[13] = v;\n v = state[2];\n u = state[6];\n state[2] = state[10];\n state[6] = state[14];\n state[10] = v;\n state[14] = u;\n v = state[3];\n u = state[7];\n t = state[11];\n state[3] = state[15];\n state[7] = v;\n state[11] = u;\n state[15] = t;\n // MixColumns\n for (let j = 0; j < 16; j += 4) {\n const s0 = state[j + 0];\n const s1 = state[j + 1];\n const s2 = state[j + 2];\n const s3 = state[j + 3];\n t = s0 ^ s1 ^ s2 ^ s3;\n state[j + 0] ^= t ^ this._mixCol[s0 ^ s1];\n state[j + 1] ^= t ^ this._mixCol[s1 ^ s2];\n state[j + 2] ^= t ^ this._mixCol[s2 ^ s3];\n state[j + 3] ^= t ^ this._mixCol[s3 ^ s0];\n }\n // AddRoundKey\n for (let j = 0, k = i * 16; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n }\n\n // SubBytes\n for (let j = 0; j < 16; ++j) {\n state[j] = s[state[j]];\n }\n // ShiftRows\n v = state[1];\n state[1] = state[5];\n state[5] = state[9];\n state[9] = state[13];\n state[13] = v;\n v = state[2];\n u = state[6];\n state[2] = state[10];\n state[6] = state[14];\n state[10] = v;\n state[14] = u;\n v = state[3];\n u = state[7];\n t = state[11];\n state[3] = state[15];\n state[7] = v;\n state[11] = u;\n state[15] = t;\n // AddRoundKey\n for (let j = 0, k = this._keySize; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n return state;\n }\n\n _decryptBlock2(data, finalize) {\n const sourceLength = data.length;\n let buffer = this.buffer,\n bufferLength = this.bufferPosition;\n const result = [];\n let iv = this.iv;\n\n for (let i = 0; i < sourceLength; ++i) {\n buffer[bufferLength] = data[i];\n ++bufferLength;\n if (bufferLength < 16) {\n continue;\n }\n // buffer is full, decrypting\n const plain = this._decrypt(buffer, this._key);\n // xor-ing the IV vector to get plain text\n for (let j = 0; j < 16; ++j) {\n plain[j] ^= iv[j];\n }\n iv = buffer;\n result.push(plain);\n buffer = new Uint8Array(16);\n bufferLength = 0;\n }\n // saving incomplete buffer\n this.buffer = buffer;\n this.bufferLength = bufferLength;\n this.iv = iv;\n if (result.length === 0) {\n return new Uint8Array(0);\n }\n // combining plain text blocks into one\n let outputLength = 16 * result.length;\n if (finalize) {\n // undo a padding that is described in RFC 2898\n const lastBlock = result[result.length - 1];\n let psLen = lastBlock[15];\n if (psLen <= 16) {\n for (let i = 15, ii = 16 - psLen; i >= ii; --i) {\n if (lastBlock[i] !== psLen) {\n // Invalid padding, assume that the block has no padding.\n psLen = 0;\n break;\n }\n }\n outputLength -= psLen;\n result[result.length - 1] = lastBlock.subarray(0, 16 - psLen);\n }\n }\n const output = new Uint8Array(outputLength);\n for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n output.set(result[i], j);\n }\n return output;\n }\n\n decryptBlock(data, finalize, iv = null) {\n const sourceLength = data.length;\n const buffer = this.buffer;\n let bufferLength = this.bufferPosition;\n // If an IV is not supplied, wait for IV values. They are at the start\n // of the stream.\n if (iv) {\n this.iv = iv;\n } else {\n for (\n let i = 0;\n bufferLength < 16 && i < sourceLength;\n ++i, ++bufferLength\n ) {\n buffer[bufferLength] = data[i];\n }\n if (bufferLength < 16) {\n // Need more data.\n this.bufferLength = bufferLength;\n return new Uint8Array(0);\n }\n this.iv = buffer;\n data = data.subarray(16);\n }\n this.buffer = new Uint8Array(16);\n this.bufferLength = 0;\n // starting decryption\n this.decryptBlock = this._decryptBlock2;\n return this.decryptBlock(data, finalize);\n }\n\n encrypt(data, iv) {\n const sourceLength = data.length;\n let buffer = this.buffer,\n bufferLength = this.bufferPosition;\n const result = [];\n\n if (!iv) {\n iv = new Uint8Array(16);\n }\n for (let i = 0; i < sourceLength; ++i) {\n buffer[bufferLength] = data[i];\n ++bufferLength;\n if (bufferLength < 16) {\n continue;\n }\n\n for (let j = 0; j < 16; ++j) {\n buffer[j] ^= iv[j];\n }\n\n // buffer is full, encrypting\n const cipher = this._encrypt(buffer, this._key);\n iv = cipher;\n result.push(cipher);\n buffer = new Uint8Array(16);\n bufferLength = 0;\n }\n // saving incomplete buffer\n this.buffer = buffer;\n this.bufferLength = bufferLength;\n this.iv = iv;\n if (result.length === 0) {\n return new Uint8Array(0);\n }\n // combining plain text blocks into one\n const outputLength = 16 * result.length;\n const output = new Uint8Array(outputLength);\n for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n output.set(result[i], j);\n }\n return output;\n }\n}\n\nclass AES128Cipher extends AESBaseCipher {\n constructor(key) {\n super();\n\n this._cyclesOfRepetition = 10;\n this._keySize = 160; // bits\n\n this._rcon = new Uint8Array([\n 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c,\n 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a,\n 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd,\n 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a,\n 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,\n 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6,\n 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72,\n 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc,\n 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10,\n 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e,\n 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5,\n 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94,\n 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02,\n 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d,\n 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d,\n 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f,\n 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb,\n 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c,\n 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a,\n 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd,\n 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a,\n 0x74, 0xe8, 0xcb, 0x8d,\n ]);\n\n this._key = this._expandKey(key);\n }\n\n _expandKey(cipherKey) {\n const b = 176;\n const s = this._s;\n const rcon = this._rcon;\n\n const result = new Uint8Array(b);\n result.set(cipherKey);\n\n for (let j = 16, i = 1; j < b; ++i) {\n // RotWord\n let t1 = result[j - 3];\n let t2 = result[j - 2];\n let t3 = result[j - 1];\n let t4 = result[j - 4];\n // SubWord\n t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n // Rcon\n t1 ^= rcon[i];\n for (let n = 0; n < 4; ++n) {\n result[j] = t1 ^= result[j - 16];\n j++;\n result[j] = t2 ^= result[j - 16];\n j++;\n result[j] = t3 ^= result[j - 16];\n j++;\n result[j] = t4 ^= result[j - 16];\n j++;\n }\n }\n return result;\n }\n}\n\nclass AES256Cipher extends AESBaseCipher {\n constructor(key) {\n super();\n\n this._cyclesOfRepetition = 14;\n this._keySize = 224; // bits\n\n this._key = this._expandKey(key);\n }\n\n _expandKey(cipherKey) {\n const b = 240;\n const s = this._s;\n\n const result = new Uint8Array(b);\n result.set(cipherKey);\n\n let r = 1;\n let t1, t2, t3, t4;\n for (let j = 32, i = 1; j < b; ++i) {\n if (j % 32 === 16) {\n t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n } else if (j % 32 === 0) {\n // RotWord\n t1 = result[j - 3];\n t2 = result[j - 2];\n t3 = result[j - 1];\n t4 = result[j - 4];\n // SubWord\n t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n // Rcon\n t1 ^= r;\n if ((r <<= 1) >= 256) {\n r = (r ^ 0x1b) & 0xff;\n }\n }\n\n for (let n = 0; n < 4; ++n) {\n result[j] = t1 ^= result[j - 32];\n j++;\n result[j] = t2 ^= result[j - 32];\n j++;\n result[j] = t3 ^= result[j - 32];\n j++;\n result[j] = t4 ^= result[j - 32];\n j++;\n }\n }\n return result;\n }\n}\n\nclass PDF17 {\n checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) {\n const hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerValidationSalt, password.length);\n hashData.set(userBytes, password.length + ownerValidationSalt.length);\n const result = calculateSHA256(hashData, 0, hashData.length);\n return isArrayEqual(result, ownerPassword);\n }\n\n checkUserPassword(password, userValidationSalt, userPassword) {\n const hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userValidationSalt, password.length);\n const result = calculateSHA256(hashData, 0, hashData.length);\n return isArrayEqual(result, userPassword);\n }\n\n getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n const hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerKeySalt, password.length);\n hashData.set(userBytes, password.length + ownerKeySalt.length);\n const key = calculateSHA256(hashData, 0, hashData.length);\n const cipher = new AES256Cipher(key);\n return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n }\n\n getUserKey(password, userKeySalt, userEncryption) {\n const hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userKeySalt, password.length);\n // `key` is the decryption key for the UE string.\n const key = calculateSHA256(hashData, 0, hashData.length);\n const cipher = new AES256Cipher(key);\n return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n }\n}\n\nconst PDF20 = (function PDF20Closure() {\n function calculatePDF20Hash(password, input, userBytes) {\n // This refers to Algorithm 2.B as defined in ISO 32000-2.\n let k = calculateSHA256(input, 0, input.length).subarray(0, 32);\n let e = [0];\n let i = 0;\n while (i < 64 || e[e.length - 1] > i - 32) {\n const combinedLength = password.length + k.length + userBytes.length,\n combinedArray = new Uint8Array(combinedLength);\n let writeOffset = 0;\n combinedArray.set(password, writeOffset);\n writeOffset += password.length;\n combinedArray.set(k, writeOffset);\n writeOffset += k.length;\n combinedArray.set(userBytes, writeOffset);\n\n const k1 = new Uint8Array(combinedLength * 64);\n for (let j = 0, pos = 0; j < 64; j++, pos += combinedLength) {\n k1.set(combinedArray, pos);\n }\n // AES128 CBC NO PADDING with first 16 bytes of k as the key\n // and the second 16 as the iv.\n const cipher = new AES128Cipher(k.subarray(0, 16));\n e = cipher.encrypt(k1, k.subarray(16, 32));\n // Now we have to take the first 16 bytes of an unsigned big endian\n // integer and compute the remainder modulo 3. That is a fairly large\n // number and JavaScript isn't going to handle that well, so we're using\n // a trick that allows us to perform modulo math byte by byte.\n let remainder = 0;\n for (let z = 0; z < 16; z++) {\n remainder *= 256 % 3;\n remainder %= 3;\n remainder += (e[z] >>> 0) % 3;\n remainder %= 3;\n }\n if (remainder === 0) {\n k = calculateSHA256(e, 0, e.length);\n } else if (remainder === 1) {\n k = calculateSHA384(e, 0, e.length);\n } else if (remainder === 2) {\n k = calculateSHA512(e, 0, e.length);\n }\n i++;\n }\n return k.subarray(0, 32);\n }\n\n // eslint-disable-next-line no-shadow\n class PDF20 {\n hash(password, concatBytes, userBytes) {\n return calculatePDF20Hash(password, concatBytes, userBytes);\n }\n\n checkOwnerPassword(\n password,\n ownerValidationSalt,\n userBytes,\n ownerPassword\n ) {\n const hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerValidationSalt, password.length);\n hashData.set(userBytes, password.length + ownerValidationSalt.length);\n const result = calculatePDF20Hash(password, hashData, userBytes);\n return isArrayEqual(result, ownerPassword);\n }\n\n checkUserPassword(password, userValidationSalt, userPassword) {\n const hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userValidationSalt, password.length);\n const result = calculatePDF20Hash(password, hashData, []);\n return isArrayEqual(result, userPassword);\n }\n\n getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n const hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerKeySalt, password.length);\n hashData.set(userBytes, password.length + ownerKeySalt.length);\n const key = calculatePDF20Hash(password, hashData, userBytes);\n const cipher = new AES256Cipher(key);\n return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n }\n\n getUserKey(password, userKeySalt, userEncryption) {\n const hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userKeySalt, password.length);\n // `key` is the decryption key for the UE string.\n const key = calculatePDF20Hash(password, hashData, []);\n const cipher = new AES256Cipher(key);\n return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n }\n }\n\n return PDF20;\n})();\n\nclass CipherTransform {\n constructor(stringCipherConstructor, streamCipherConstructor) {\n this.StringCipherConstructor = stringCipherConstructor;\n this.StreamCipherConstructor = streamCipherConstructor;\n }\n\n createStream(stream, length) {\n const cipher = new this.StreamCipherConstructor();\n return new DecryptStream(\n stream,\n length,\n function cipherTransformDecryptStream(data, finalize) {\n return cipher.decryptBlock(data, finalize);\n }\n );\n }\n\n decryptString(s) {\n const cipher = new this.StringCipherConstructor();\n let data = stringToBytes(s);\n data = cipher.decryptBlock(data, true);\n return bytesToString(data);\n }\n\n encryptString(s) {\n const cipher = new this.StringCipherConstructor();\n if (cipher instanceof AESBaseCipher) {\n // Append some chars equal to \"16 - (M mod 16)\"\n // where M is the string length (see section 7.6.2 in PDF specification)\n // to have a final string where the length is a multiple of 16.\n // Special note:\n // \"Note that the pad is present when M is evenly divisible by 16;\n // it contains 16 bytes of 0x10.\"\n const strLen = s.length;\n const pad = 16 - (strLen % 16);\n s += String.fromCharCode(pad).repeat(pad);\n\n // Generate an initialization vector\n const iv = new Uint8Array(16);\n if (typeof crypto !== \"undefined\") {\n crypto.getRandomValues(iv);\n } else {\n for (let i = 0; i < 16; i++) {\n iv[i] = Math.floor(256 * Math.random());\n }\n }\n\n let data = stringToBytes(s);\n data = cipher.encrypt(data, iv);\n\n const buf = new Uint8Array(16 + data.length);\n buf.set(iv);\n buf.set(data, 16);\n\n return bytesToString(buf);\n }\n\n let data = stringToBytes(s);\n data = cipher.encrypt(data);\n return bytesToString(data);\n }\n}\n\nconst CipherTransformFactory = (function CipherTransformFactoryClosure() {\n const defaultPasswordBytes = new Uint8Array([\n 0x28, 0xbf, 0x4e, 0x5e, 0x4e, 0x75, 0x8a, 0x41, 0x64, 0x00, 0x4e, 0x56,\n 0xff, 0xfa, 0x01, 0x08, 0x2e, 0x2e, 0x00, 0xb6, 0xd0, 0x68, 0x3e, 0x80,\n 0x2f, 0x0c, 0xa9, 0xfe, 0x64, 0x53, 0x69, 0x7a,\n ]);\n\n function createEncryptionKey20(\n revision,\n password,\n ownerPassword,\n ownerValidationSalt,\n ownerKeySalt,\n uBytes,\n userPassword,\n userValidationSalt,\n userKeySalt,\n ownerEncryption,\n userEncryption,\n perms\n ) {\n if (password) {\n const passwordLength = Math.min(127, password.length);\n password = password.subarray(0, passwordLength);\n } else {\n password = [];\n }\n let pdfAlgorithm;\n if (revision === 6) {\n pdfAlgorithm = new PDF20();\n } else {\n pdfAlgorithm = new PDF17();\n }\n\n if (\n pdfAlgorithm.checkUserPassword(password, userValidationSalt, userPassword)\n ) {\n return pdfAlgorithm.getUserKey(password, userKeySalt, userEncryption);\n } else if (\n password.length &&\n pdfAlgorithm.checkOwnerPassword(\n password,\n ownerValidationSalt,\n uBytes,\n ownerPassword\n )\n ) {\n return pdfAlgorithm.getOwnerKey(\n password,\n ownerKeySalt,\n uBytes,\n ownerEncryption\n );\n }\n\n return null;\n }\n\n function prepareKeyData(\n fileId,\n password,\n ownerPassword,\n userPassword,\n flags,\n revision,\n keyLength,\n encryptMetadata\n ) {\n const hashDataSize = 40 + ownerPassword.length + fileId.length;\n const hashData = new Uint8Array(hashDataSize);\n let i = 0,\n j,\n n;\n if (password) {\n n = Math.min(32, password.length);\n for (; i < n; ++i) {\n hashData[i] = password[i];\n }\n }\n j = 0;\n while (i < 32) {\n hashData[i++] = defaultPasswordBytes[j++];\n }\n // as now the padded password in the hashData[0..i]\n for (j = 0, n = ownerPassword.length; j < n; ++j) {\n hashData[i++] = ownerPassword[j];\n }\n hashData[i++] = flags & 0xff;\n hashData[i++] = (flags >> 8) & 0xff;\n hashData[i++] = (flags >> 16) & 0xff;\n hashData[i++] = (flags >>> 24) & 0xff;\n for (j = 0, n = fileId.length; j < n; ++j) {\n hashData[i++] = fileId[j];\n }\n if (revision >= 4 && !encryptMetadata) {\n hashData[i++] = 0xff;\n hashData[i++] = 0xff;\n hashData[i++] = 0xff;\n hashData[i++] = 0xff;\n }\n let hash = calculateMD5(hashData, 0, i);\n const keyLengthInBytes = keyLength >> 3;\n if (revision >= 3) {\n for (j = 0; j < 50; ++j) {\n hash = calculateMD5(hash, 0, keyLengthInBytes);\n }\n }\n const encryptionKey = hash.subarray(0, keyLengthInBytes);\n let cipher, checkData;\n\n if (revision >= 3) {\n for (i = 0; i < 32; ++i) {\n hashData[i] = defaultPasswordBytes[i];\n }\n for (j = 0, n = fileId.length; j < n; ++j) {\n hashData[i++] = fileId[j];\n }\n cipher = new ARCFourCipher(encryptionKey);\n checkData = cipher.encryptBlock(calculateMD5(hashData, 0, i));\n n = encryptionKey.length;\n const derivedKey = new Uint8Array(n);\n for (j = 1; j <= 19; ++j) {\n for (let k = 0; k < n; ++k) {\n derivedKey[k] = encryptionKey[k] ^ j;\n }\n cipher = new ARCFourCipher(derivedKey);\n checkData = cipher.encryptBlock(checkData);\n }\n for (j = 0, n = checkData.length; j < n; ++j) {\n if (userPassword[j] !== checkData[j]) {\n return null;\n }\n }\n } else {\n cipher = new ARCFourCipher(encryptionKey);\n checkData = cipher.encryptBlock(defaultPasswordBytes);\n for (j = 0, n = checkData.length; j < n; ++j) {\n if (userPassword[j] !== checkData[j]) {\n return null;\n }\n }\n }\n return encryptionKey;\n }\n\n function decodeUserPassword(password, ownerPassword, revision, keyLength) {\n const hashData = new Uint8Array(32);\n let i = 0;\n const n = Math.min(32, password.length);\n for (; i < n; ++i) {\n hashData[i] = password[i];\n }\n let j = 0;\n while (i < 32) {\n hashData[i++] = defaultPasswordBytes[j++];\n }\n let hash = calculateMD5(hashData, 0, i);\n const keyLengthInBytes = keyLength >> 3;\n if (revision >= 3) {\n for (j = 0; j < 50; ++j) {\n hash = calculateMD5(hash, 0, hash.length);\n }\n }\n\n let cipher, userPassword;\n if (revision >= 3) {\n userPassword = ownerPassword;\n const derivedKey = new Uint8Array(keyLengthInBytes);\n for (j = 19; j >= 0; j--) {\n for (let k = 0; k < keyLengthInBytes; ++k) {\n derivedKey[k] = hash[k] ^ j;\n }\n cipher = new ARCFourCipher(derivedKey);\n userPassword = cipher.encryptBlock(userPassword);\n }\n } else {\n cipher = new ARCFourCipher(hash.subarray(0, keyLengthInBytes));\n userPassword = cipher.encryptBlock(ownerPassword);\n }\n return userPassword;\n }\n\n const identityName = Name.get(\"Identity\");\n\n function buildObjectKey(num, gen, encryptionKey, isAes = false) {\n const key = new Uint8Array(encryptionKey.length + 9);\n const n = encryptionKey.length;\n let i;\n for (i = 0; i < n; ++i) {\n key[i] = encryptionKey[i];\n }\n key[i++] = num & 0xff;\n key[i++] = (num >> 8) & 0xff;\n key[i++] = (num >> 16) & 0xff;\n key[i++] = gen & 0xff;\n key[i++] = (gen >> 8) & 0xff;\n if (isAes) {\n key[i++] = 0x73;\n key[i++] = 0x41;\n key[i++] = 0x6c;\n key[i++] = 0x54;\n }\n const hash = calculateMD5(key, 0, i);\n return hash.subarray(0, Math.min(encryptionKey.length + 5, 16));\n }\n\n function buildCipherConstructor(cf, name, num, gen, key) {\n if (!(name instanceof Name)) {\n throw new FormatError(\"Invalid crypt filter name.\");\n }\n const cryptFilter = cf.get(name.name);\n let cfm;\n if (cryptFilter !== null && cryptFilter !== undefined) {\n cfm = cryptFilter.get(\"CFM\");\n }\n if (!cfm || cfm.name === \"None\") {\n return function cipherTransformFactoryBuildCipherConstructorNone() {\n return new NullCipher();\n };\n }\n if (cfm.name === \"V2\") {\n return function cipherTransformFactoryBuildCipherConstructorV2() {\n return new ARCFourCipher(\n buildObjectKey(num, gen, key, /* isAes = */ false)\n );\n };\n }\n if (cfm.name === \"AESV2\") {\n return function cipherTransformFactoryBuildCipherConstructorAESV2() {\n return new AES128Cipher(\n buildObjectKey(num, gen, key, /* isAes = */ true)\n );\n };\n }\n if (cfm.name === \"AESV3\") {\n return function cipherTransformFactoryBuildCipherConstructorAESV3() {\n return new AES256Cipher(key);\n };\n }\n throw new FormatError(\"Unknown crypto method\");\n }\n\n // eslint-disable-next-line no-shadow\n class CipherTransformFactory {\n constructor(dict, fileId, password) {\n const filter = dict.get(\"Filter\");\n if (!isName(filter, \"Standard\")) {\n throw new FormatError(\"unknown encryption method\");\n }\n this.filterName = filter.name;\n this.dict = dict;\n const algorithm = dict.get(\"V\");\n if (\n !Number.isInteger(algorithm) ||\n (algorithm !== 1 &&\n algorithm !== 2 &&\n algorithm !== 4 &&\n algorithm !== 5)\n ) {\n throw new FormatError(\"unsupported encryption algorithm\");\n }\n this.algorithm = algorithm;\n let keyLength = dict.get(\"Length\");\n if (!keyLength) {\n // Spec asks to rely on encryption dictionary's Length entry, however\n // some PDFs don't have it. Trying to recover.\n if (algorithm <= 3) {\n // For 1 and 2 it's fixed to 40-bit, for 3 40-bit is a minimal value.\n keyLength = 40;\n } else {\n // Trying to find default handler -- it usually has Length.\n const cfDict = dict.get(\"CF\");\n const streamCryptoName = dict.get(\"StmF\");\n if (cfDict instanceof Dict && streamCryptoName instanceof Name) {\n cfDict.suppressEncryption = true; // See comment below.\n const handlerDict = cfDict.get(streamCryptoName.name);\n keyLength = (handlerDict && handlerDict.get(\"Length\")) || 128;\n if (keyLength < 40) {\n // Sometimes it's incorrect value of bits, generators specify\n // bytes.\n keyLength <<= 3;\n }\n }\n }\n }\n if (\n !Number.isInteger(keyLength) ||\n keyLength < 40 ||\n keyLength % 8 !== 0\n ) {\n throw new FormatError(\"invalid key length\");\n }\n\n // prepare keys\n const ownerPassword = stringToBytes(dict.get(\"O\")).subarray(0, 32);\n const userPassword = stringToBytes(dict.get(\"U\")).subarray(0, 32);\n const flags = dict.get(\"P\");\n const revision = dict.get(\"R\");\n // meaningful when V is 4 or 5\n const encryptMetadata =\n (algorithm === 4 || algorithm === 5) &&\n dict.get(\"EncryptMetadata\") !== false;\n this.encryptMetadata = encryptMetadata;\n\n const fileIdBytes = stringToBytes(fileId);\n let passwordBytes;\n if (password) {\n if (revision === 6) {\n try {\n password = utf8StringToString(password);\n } catch (ex) {\n warn(\n \"CipherTransformFactory: \" +\n \"Unable to convert UTF8 encoded password.\"\n );\n }\n }\n passwordBytes = stringToBytes(password);\n }\n\n let encryptionKey;\n if (algorithm !== 5) {\n encryptionKey = prepareKeyData(\n fileIdBytes,\n passwordBytes,\n ownerPassword,\n userPassword,\n flags,\n revision,\n keyLength,\n encryptMetadata\n );\n } else {\n const ownerValidationSalt = stringToBytes(dict.get(\"O\")).subarray(\n 32,\n 40\n );\n const ownerKeySalt = stringToBytes(dict.get(\"O\")).subarray(40, 48);\n const uBytes = stringToBytes(dict.get(\"U\")).subarray(0, 48);\n const userValidationSalt = stringToBytes(dict.get(\"U\")).subarray(\n 32,\n 40\n );\n const userKeySalt = stringToBytes(dict.get(\"U\")).subarray(40, 48);\n const ownerEncryption = stringToBytes(dict.get(\"OE\"));\n const userEncryption = stringToBytes(dict.get(\"UE\"));\n const perms = stringToBytes(dict.get(\"Perms\"));\n encryptionKey = createEncryptionKey20(\n revision,\n passwordBytes,\n ownerPassword,\n ownerValidationSalt,\n ownerKeySalt,\n uBytes,\n userPassword,\n userValidationSalt,\n userKeySalt,\n ownerEncryption,\n userEncryption,\n perms\n );\n }\n if (!encryptionKey && !password) {\n throw new PasswordException(\n \"No password given\",\n PasswordResponses.NEED_PASSWORD\n );\n } else if (!encryptionKey && password) {\n // Attempting use the password as an owner password\n const decodedPassword = decodeUserPassword(\n passwordBytes,\n ownerPassword,\n revision,\n keyLength\n );\n encryptionKey = prepareKeyData(\n fileIdBytes,\n decodedPassword,\n ownerPassword,\n userPassword,\n flags,\n revision,\n keyLength,\n encryptMetadata\n );\n }\n\n if (!encryptionKey) {\n throw new PasswordException(\n \"Incorrect Password\",\n PasswordResponses.INCORRECT_PASSWORD\n );\n }\n\n this.encryptionKey = encryptionKey;\n\n if (algorithm >= 4) {\n const cf = dict.get(\"CF\");\n if (cf instanceof Dict) {\n // The 'CF' dictionary itself should not be encrypted, and by setting\n // `suppressEncryption` we can prevent an infinite loop inside of\n // `XRef_fetchUncompressed` if the dictionary contains indirect\n // objects (fixes issue7665.pdf).\n cf.suppressEncryption = true;\n }\n this.cf = cf;\n this.stmf = dict.get(\"StmF\") || identityName;\n this.strf = dict.get(\"StrF\") || identityName;\n this.eff = dict.get(\"EFF\") || this.stmf;\n }\n }\n\n createCipherTransform(num, gen) {\n if (this.algorithm === 4 || this.algorithm === 5) {\n return new CipherTransform(\n buildCipherConstructor(\n this.cf,\n this.stmf,\n num,\n gen,\n this.encryptionKey\n ),\n buildCipherConstructor(\n this.cf,\n this.strf,\n num,\n gen,\n this.encryptionKey\n )\n );\n }\n // algorithms 1 and 2\n const key = buildObjectKey(\n num,\n gen,\n this.encryptionKey,\n /* isAes = */ false\n );\n const cipherConstructor = function buildCipherCipherConstructor() {\n return new ARCFourCipher(key);\n };\n return new CipherTransform(cipherConstructor, cipherConstructor);\n }\n }\n\n return CipherTransformFactory;\n})();\n\nexport {\n AES128Cipher,\n AES256Cipher,\n ARCFourCipher,\n calculateMD5,\n calculateSHA256,\n calculateSHA384,\n calculateSHA512,\n CipherTransformFactory,\n PDF17,\n PDF20,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\n\nconst chunkSize = 512;\n\nclass DecryptStream extends DecodeStream {\n constructor(str, maybeLength, decrypt) {\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n this.decrypt = decrypt;\n this.nextChunk = null;\n this.initialized = false;\n }\n\n readBlock() {\n let chunk;\n if (this.initialized) {\n chunk = this.nextChunk;\n } else {\n chunk = this.str.getBytes(chunkSize);\n this.initialized = true;\n }\n if (!chunk || chunk.length === 0) {\n this.eof = true;\n return;\n }\n this.nextChunk = this.str.getBytes(chunkSize);\n const hasMoreData = this.nextChunk && this.nextChunk.length > 0;\n\n const decrypt = this.decrypt;\n chunk = decrypt(chunk, !hasMoreData);\n\n let bufferLength = this.bufferLength;\n const n = chunk.length,\n buffer = this.ensureBuffer(bufferLength + n);\n for (let i = 0; i < n; i++) {\n buffer[bufferLength++] = chunk[i];\n }\n this.bufferLength = bufferLength;\n }\n}\n\nexport { DecryptStream };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $appendChild,\n $globalData,\n $nodeName,\n $text,\n $toHTML,\n $toPages,\n} from \"./xfa_object.js\";\nimport { Binder } from \"./bind.js\";\nimport { DataHandler } from \"./data.js\";\nimport { FontFinder } from \"./fonts.js\";\nimport { stripQuotes } from \"./utils.js\";\nimport { warn } from \"../../shared/util.js\";\nimport { XFAParser } from \"./parser.js\";\nimport { XhtmlNamespace } from \"./xhtml.js\";\n\nclass XFAFactory {\n constructor(data) {\n try {\n this.root = new XFAParser().parse(XFAFactory._createDocument(data));\n const binder = new Binder(this.root);\n this.form = binder.bind();\n this.dataHandler = new DataHandler(this.root, binder.getData());\n this.form[$globalData].template = this.form;\n } catch (e) {\n warn(`XFA - an error occurred during parsing and binding: ${e}`);\n }\n }\n\n isValid() {\n return this.root && this.form;\n }\n\n /**\n * In order to avoid to block the event loop, the conversion\n * into pages is made asynchronously.\n */\n _createPagesHelper() {\n const iterator = this.form[$toPages]();\n return new Promise((resolve, reject) => {\n const nextIteration = () => {\n try {\n const value = iterator.next();\n if (value.done) {\n resolve(value.value);\n } else {\n setTimeout(nextIteration, 0);\n }\n } catch (e) {\n reject(e);\n }\n };\n setTimeout(nextIteration, 0);\n });\n }\n\n async _createPages() {\n try {\n this.pages = await this._createPagesHelper();\n this.dims = this.pages.children.map(c => {\n const { width, height } = c.attributes.style;\n return [0, 0, parseInt(width), parseInt(height)];\n });\n } catch (e) {\n warn(`XFA - an error occurred during layout: ${e}`);\n }\n }\n\n getBoundingBox(pageIndex) {\n return this.dims[pageIndex];\n }\n\n async getNumPages() {\n if (!this.pages) {\n await this._createPages();\n }\n return this.dims.length;\n }\n\n setImages(images) {\n this.form[$globalData].images = images;\n }\n\n setFonts(fonts) {\n this.form[$globalData].fontFinder = new FontFinder(fonts);\n const missingFonts = [];\n for (let typeface of this.form[$globalData].usedTypefaces) {\n typeface = stripQuotes(typeface);\n const font = this.form[$globalData].fontFinder.find(typeface);\n if (!font) {\n missingFonts.push(typeface);\n }\n }\n\n if (missingFonts.length > 0) {\n return missingFonts;\n }\n\n return null;\n }\n\n appendFonts(fonts, reallyMissingFonts) {\n this.form[$globalData].fontFinder.add(fonts, reallyMissingFonts);\n }\n\n async getPages() {\n if (!this.pages) {\n await this._createPages();\n }\n const pages = this.pages;\n this.pages = null;\n return pages;\n }\n\n serializeData(storage) {\n return this.dataHandler.serialize(storage);\n }\n\n static _createDocument(data) {\n if (!data[\"/xdp:xdp\"]) {\n return data[\"xdp:xdp\"];\n }\n return Object.values(data).join(\"\");\n }\n\n static getRichTextAsHtml(rc) {\n if (!rc || typeof rc !== \"string\") {\n return null;\n }\n\n try {\n let root = new XFAParser(XhtmlNamespace, /* richText */ true).parse(rc);\n if (![\"body\", \"xhtml\"].includes(root[$nodeName])) {\n // No body, so create one.\n const newRoot = XhtmlNamespace.body({});\n newRoot[$appendChild](root);\n root = newRoot;\n }\n\n const result = root[$toHTML]();\n if (!result.success) {\n return null;\n }\n\n const { html } = result;\n const { attributes } = html;\n if (attributes) {\n if (attributes.class) {\n attributes.class = attributes.class.filter(\n attr => !attr.startsWith(\"xfa\")\n );\n }\n attributes.dir = \"auto\";\n }\n\n return { html, str: root[$text]() };\n } catch (e) {\n warn(`XFA - an error occurred during parsing of rich text: ${e}`);\n }\n return null;\n }\n}\n\nexport { XFAFactory };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getInteger, getKeyword, HTMLResult } from \"./utils.js\";\nimport { shadow, utf8StringToString, warn } from \"../../shared/util.js\";\nimport { encodeToXmlString } from \"../core_utils.js\";\nimport { NamespaceIds } from \"./namespaces.js\";\nimport { searchNode } from \"./som.js\";\n\n// We use these symbols to avoid name conflict between tags\n// and properties/methods names.\nconst $acceptWhitespace = Symbol();\nconst $addHTML = Symbol();\nconst $appendChild = Symbol();\nconst $childrenToHTML = Symbol();\nconst $clean = Symbol();\nconst $cleanPage = Symbol();\nconst $cleanup = Symbol();\nconst $clone = Symbol();\nconst $consumed = Symbol();\nconst $content = Symbol(\"content\");\nconst $data = Symbol(\"data\");\nconst $dump = Symbol();\nconst $extra = Symbol(\"extra\");\nconst $finalize = Symbol();\nconst $flushHTML = Symbol();\nconst $getAttributeIt = Symbol();\nconst $getAttributes = Symbol();\nconst $getAvailableSpace = Symbol();\nconst $getChildrenByClass = Symbol();\nconst $getChildrenByName = Symbol();\nconst $getChildrenByNameIt = Symbol();\nconst $getDataValue = Symbol();\nconst $getExtra = Symbol();\nconst $getRealChildrenByNameIt = Symbol();\nconst $getChildren = Symbol();\nconst $getContainedChildren = Symbol();\nconst $getNextPage = Symbol();\nconst $getSubformParent = Symbol();\nconst $getParent = Symbol();\nconst $getTemplateRoot = Symbol();\nconst $globalData = Symbol();\nconst $hasSettableValue = Symbol();\nconst $ids = Symbol();\nconst $indexOf = Symbol();\nconst $insertAt = Symbol();\nconst $isCDATAXml = Symbol();\nconst $isBindable = Symbol();\nconst $isDataValue = Symbol();\nconst $isDescendent = Symbol();\nconst $isNsAgnostic = Symbol();\nconst $isSplittable = Symbol();\nconst $isThereMoreWidth = Symbol();\nconst $isTransparent = Symbol();\nconst $isUsable = Symbol();\nconst $lastAttribute = Symbol();\nconst $namespaceId = Symbol(\"namespaceId\");\nconst $nodeName = Symbol(\"nodeName\");\nconst $nsAttributes = Symbol();\nconst $onChild = Symbol();\nconst $onChildCheck = Symbol();\nconst $onText = Symbol();\nconst $pushGlyphs = Symbol();\nconst $popPara = Symbol();\nconst $pushPara = Symbol();\nconst $removeChild = Symbol();\nconst $root = Symbol(\"root\");\nconst $resolvePrototypes = Symbol();\nconst $searchNode = Symbol();\nconst $setId = Symbol();\nconst $setSetAttributes = Symbol();\nconst $setValue = Symbol();\nconst $tabIndex = Symbol();\nconst $text = Symbol();\nconst $toPages = Symbol();\nconst $toHTML = Symbol();\nconst $toString = Symbol();\nconst $toStyle = Symbol();\nconst $uid = Symbol(\"uid\");\n\nconst _applyPrototype = Symbol();\nconst _attributes = Symbol();\nconst _attributeNames = Symbol();\nconst _children = Symbol(\"_children\");\nconst _cloneAttribute = Symbol();\nconst _dataValue = Symbol();\nconst _defaultValue = Symbol();\nconst _filteredChildrenGenerator = Symbol();\nconst _getPrototype = Symbol();\nconst _getUnsetAttributes = Symbol();\nconst _hasChildren = Symbol();\nconst _max = Symbol();\nconst _options = Symbol();\nconst _parent = Symbol(\"parent\");\nconst _resolvePrototypesHelper = Symbol();\nconst _setAttributes = Symbol();\nconst _validator = Symbol();\n\nlet uid = 0;\n\nconst NS_DATASETS = NamespaceIds.datasets.id;\n\nclass XFAObject {\n constructor(nsId, name, hasChildren = false) {\n this[$namespaceId] = nsId;\n this[$nodeName] = name;\n this[_hasChildren] = hasChildren;\n this[_parent] = null;\n this[_children] = [];\n this[$uid] = `${name}${uid++}`;\n this[$globalData] = null;\n }\n\n [$onChild](child) {\n if (!this[_hasChildren] || !this[$onChildCheck](child)) {\n return false;\n }\n\n const name = child[$nodeName];\n const node = this[name];\n\n if (node instanceof XFAObjectArray) {\n if (node.push(child)) {\n this[$appendChild](child);\n return true;\n }\n } else {\n // IRL it's possible to already have a node.\n // So just replace it with the last version.\n if (node !== null) {\n this[$removeChild](node);\n }\n this[name] = child;\n this[$appendChild](child);\n return true;\n }\n\n let id = \"\";\n if (this.id) {\n id = ` (id: ${this.id})`;\n } else if (this.name) {\n id = ` (name: ${this.name} ${this.h.value})`;\n }\n warn(`XFA - node \"${this[$nodeName]}\"${id} has already enough \"${name}\"!`);\n return false;\n }\n\n [$onChildCheck](child) {\n return (\n this.hasOwnProperty(child[$nodeName]) &&\n child[$namespaceId] === this[$namespaceId]\n );\n }\n\n [$isNsAgnostic]() {\n return false;\n }\n\n [$acceptWhitespace]() {\n return false;\n }\n\n [$isCDATAXml]() {\n return false;\n }\n\n [$isBindable]() {\n return false;\n }\n\n [$popPara]() {\n if (this.para) {\n this[$getTemplateRoot]()[$extra].paraStack.pop();\n }\n }\n\n [$pushPara]() {\n this[$getTemplateRoot]()[$extra].paraStack.push(this.para);\n }\n\n [$setId](ids) {\n if (this.id && this[$namespaceId] === NamespaceIds.template.id) {\n ids.set(this.id, this);\n }\n }\n\n [$getTemplateRoot]() {\n return this[$globalData].template;\n }\n\n [$isSplittable]() {\n return false;\n }\n\n /**\n Return true if this node (typically a container)\n can provide more width during layout.\n The goal is to help to know what a descendant must\n do in case of horizontal overflow.\n */\n [$isThereMoreWidth]() {\n return false;\n }\n\n [$appendChild](child) {\n child[_parent] = this;\n this[_children].push(child);\n if (!child[$globalData] && this[$globalData]) {\n child[$globalData] = this[$globalData];\n }\n }\n\n [$removeChild](child) {\n const i = this[_children].indexOf(child);\n this[_children].splice(i, 1);\n }\n\n [$hasSettableValue]() {\n return this.hasOwnProperty(\"value\");\n }\n\n [$setValue](_) {}\n\n [$onText](_) {}\n\n [$finalize]() {}\n\n [$clean](builder) {\n delete this[_hasChildren];\n if (this[$cleanup]) {\n builder.clean(this[$cleanup]);\n delete this[$cleanup];\n }\n }\n\n [$indexOf](child) {\n return this[_children].indexOf(child);\n }\n\n [$insertAt](i, child) {\n child[_parent] = this;\n this[_children].splice(i, 0, child);\n if (!child[$globalData] && this[$globalData]) {\n child[$globalData] = this[$globalData];\n }\n }\n\n /**\n * If true the element is transparent when searching a node using\n * a SOM expression which means that looking for \"foo.bar\" in\n * <... name=\"foo\"><... name=\"bar\">...\n * is fine because toto and titi are transparent.\n */\n [$isTransparent]() {\n return !this.name;\n }\n\n [$lastAttribute]() {\n return \"\";\n }\n\n [$text]() {\n if (this[_children].length === 0) {\n return this[$content];\n }\n return this[_children].map(c => c[$text]()).join(\"\");\n }\n\n get [_attributeNames]() {\n // Lazily get attributes names\n const proto = Object.getPrototypeOf(this);\n if (!proto._attributes) {\n const attributes = (proto._attributes = new Set());\n for (const name of Object.getOwnPropertyNames(this)) {\n if (\n this[name] === null ||\n this[name] instanceof XFAObject ||\n this[name] instanceof XFAObjectArray\n ) {\n break;\n }\n attributes.add(name);\n }\n }\n return shadow(this, _attributeNames, proto._attributes);\n }\n\n [$isDescendent](parent) {\n let node = this;\n while (node) {\n if (node === parent) {\n return true;\n }\n node = node[$getParent]();\n }\n return false;\n }\n\n [$getParent]() {\n return this[_parent];\n }\n\n [$getSubformParent]() {\n return this[$getParent]();\n }\n\n [$getChildren](name = null) {\n if (!name) {\n return this[_children];\n }\n\n return this[name];\n }\n\n [$dump]() {\n const dumped = Object.create(null);\n if (this[$content]) {\n dumped.$content = this[$content];\n }\n\n for (const name of Object.getOwnPropertyNames(this)) {\n const value = this[name];\n if (value === null) {\n continue;\n }\n if (value instanceof XFAObject) {\n dumped[name] = value[$dump]();\n } else if (value instanceof XFAObjectArray) {\n if (!value.isEmpty()) {\n dumped[name] = value.dump();\n }\n } else {\n dumped[name] = value;\n }\n }\n\n return dumped;\n }\n\n [$toStyle]() {\n return null;\n }\n\n [$toHTML]() {\n return HTMLResult.EMPTY;\n }\n\n *[$getContainedChildren]() {\n // This function is overriden in Subform and SubformSet.\n for (const node of this[$getChildren]()) {\n yield node;\n }\n }\n\n *[_filteredChildrenGenerator](filter, include) {\n for (const node of this[$getContainedChildren]()) {\n if (!filter || include === filter.has(node[$nodeName])) {\n const availableSpace = this[$getAvailableSpace]();\n const res = node[$toHTML](availableSpace);\n if (!res.success) {\n this[$extra].failingNode = node;\n }\n yield res;\n }\n }\n }\n\n [$flushHTML]() {\n return null;\n }\n\n [$addHTML](html, bbox) {\n this[$extra].children.push(html);\n }\n\n [$getAvailableSpace]() {}\n\n [$childrenToHTML]({ filter = null, include = true }) {\n if (!this[$extra].generator) {\n this[$extra].generator = this[_filteredChildrenGenerator](\n filter,\n include\n );\n } else {\n const availableSpace = this[$getAvailableSpace]();\n const res = this[$extra].failingNode[$toHTML](availableSpace);\n if (!res.success) {\n return res;\n }\n if (res.html) {\n this[$addHTML](res.html, res.bbox);\n }\n delete this[$extra].failingNode;\n }\n\n while (true) {\n const gen = this[$extra].generator.next();\n if (gen.done) {\n break;\n }\n const res = gen.value;\n if (!res.success) {\n return res;\n }\n if (res.html) {\n this[$addHTML](res.html, res.bbox);\n }\n }\n\n this[$extra].generator = null;\n\n return HTMLResult.EMPTY;\n }\n\n [$setSetAttributes](attributes) {\n // Just keep set attributes because it can be used in a proto.\n this[_setAttributes] = new Set(Object.keys(attributes));\n }\n\n /**\n * Get attribute names which have been set in the proto but not in this.\n */\n [_getUnsetAttributes](protoAttributes) {\n const allAttr = this[_attributeNames];\n const setAttr = this[_setAttributes];\n return [...protoAttributes].filter(x => allAttr.has(x) && !setAttr.has(x));\n }\n\n /**\n * Update the node with properties coming from a prototype and apply\n * this function recursively to all children.\n */\n [$resolvePrototypes](ids, ancestors = new Set()) {\n for (const child of this[_children]) {\n child[_resolvePrototypesHelper](ids, ancestors);\n }\n }\n\n [_resolvePrototypesHelper](ids, ancestors) {\n const proto = this[_getPrototype](ids, ancestors);\n if (proto) {\n // _applyPrototype will apply $resolvePrototypes with correct ancestors\n // to avoid infinite loop.\n this[_applyPrototype](proto, ids, ancestors);\n } else {\n this[$resolvePrototypes](ids, ancestors);\n }\n }\n\n [_getPrototype](ids, ancestors) {\n const { use, usehref } = this;\n if (!use && !usehref) {\n return null;\n }\n\n let proto = null;\n let somExpression = null;\n let id = null;\n let ref = use;\n\n // If usehref and use are non-empty then use usehref.\n if (usehref) {\n ref = usehref;\n // Href can be one of the following:\n // - #ID\n // - URI#ID\n // - #som(expression)\n // - URI#som(expression)\n // - URI\n // For now we don't handle URI other than \".\" (current document).\n if (usehref.startsWith(\"#som(\") && usehref.endsWith(\")\")) {\n somExpression = usehref.slice(\"#som(\".length, usehref.length - 1);\n } else if (usehref.startsWith(\".#som(\") && usehref.endsWith(\")\")) {\n somExpression = usehref.slice(\".#som(\".length, usehref.length - 1);\n } else if (usehref.startsWith(\"#\")) {\n id = usehref.slice(1);\n } else if (usehref.startsWith(\".#\")) {\n id = usehref.slice(2);\n }\n } else if (use.startsWith(\"#\")) {\n id = use.slice(1);\n } else {\n somExpression = use;\n }\n\n this.use = this.usehref = \"\";\n if (id) {\n proto = ids.get(id);\n } else {\n proto = searchNode(\n ids.get($root),\n this,\n somExpression,\n true /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (proto) {\n proto = proto[0];\n }\n }\n\n if (!proto) {\n warn(`XFA - Invalid prototype reference: ${ref}.`);\n return null;\n }\n\n if (proto[$nodeName] !== this[$nodeName]) {\n warn(\n `XFA - Incompatible prototype: ${proto[$nodeName]} !== ${this[$nodeName]}.`\n );\n return null;\n }\n\n if (ancestors.has(proto)) {\n // We've a cycle so break it.\n warn(`XFA - Cycle detected in prototypes use.`);\n return null;\n }\n\n ancestors.add(proto);\n\n // The prototype can have a \"use\" attribute itself.\n const protoProto = proto[_getPrototype](ids, ancestors);\n if (protoProto) {\n proto[_applyPrototype](protoProto, ids, ancestors);\n }\n\n // The prototype can have a child which itself has a \"use\" property.\n proto[$resolvePrototypes](ids, ancestors);\n\n ancestors.delete(proto);\n\n return proto;\n }\n\n [_applyPrototype](proto, ids, ancestors) {\n if (ancestors.has(proto)) {\n // We've a cycle so break it.\n warn(`XFA - Cycle detected in prototypes use.`);\n return;\n }\n\n if (!this[$content] && proto[$content]) {\n this[$content] = proto[$content];\n }\n\n const newAncestors = new Set(ancestors);\n newAncestors.add(proto);\n\n for (const unsetAttrName of this[_getUnsetAttributes](\n proto[_setAttributes]\n )) {\n this[unsetAttrName] = proto[unsetAttrName];\n if (this[_setAttributes]) {\n this[_setAttributes].add(unsetAttrName);\n }\n }\n\n for (const name of Object.getOwnPropertyNames(this)) {\n if (this[_attributeNames].has(name)) {\n continue;\n }\n const value = this[name];\n const protoValue = proto[name];\n\n if (value instanceof XFAObjectArray) {\n for (const child of value[_children]) {\n child[_resolvePrototypesHelper](ids, ancestors);\n }\n\n for (\n let i = value[_children].length, ii = protoValue[_children].length;\n i < ii;\n i++\n ) {\n const child = proto[_children][i][$clone]();\n if (value.push(child)) {\n child[_parent] = this;\n this[_children].push(child);\n child[_resolvePrototypesHelper](ids, ancestors);\n } else {\n // No need to continue: other nodes will be rejected.\n break;\n }\n }\n continue;\n }\n\n if (value !== null) {\n value[$resolvePrototypes](ids, ancestors);\n if (protoValue) {\n // protoValue must be treated as a prototype for value.\n value[_applyPrototype](protoValue, ids, ancestors);\n }\n continue;\n }\n\n if (protoValue !== null) {\n const child = protoValue[$clone]();\n child[_parent] = this;\n this[name] = child;\n this[_children].push(child);\n child[_resolvePrototypesHelper](ids, ancestors);\n }\n }\n }\n\n static [_cloneAttribute](obj) {\n if (Array.isArray(obj)) {\n return obj.map(x => XFAObject[_cloneAttribute](x));\n }\n if (typeof obj === \"object\" && obj !== null) {\n return Object.assign({}, obj);\n }\n return obj;\n }\n\n [$clone]() {\n const clone = Object.create(Object.getPrototypeOf(this));\n for (const $symbol of Object.getOwnPropertySymbols(this)) {\n try {\n clone[$symbol] = this[$symbol];\n } catch (_) {\n shadow(clone, $symbol, this[$symbol]);\n }\n }\n clone[$uid] = `${clone[$nodeName]}${uid++}`;\n clone[_children] = [];\n\n for (const name of Object.getOwnPropertyNames(this)) {\n if (this[_attributeNames].has(name)) {\n clone[name] = XFAObject[_cloneAttribute](this[name]);\n continue;\n }\n const value = this[name];\n if (value instanceof XFAObjectArray) {\n clone[name] = new XFAObjectArray(value[_max]);\n } else {\n clone[name] = null;\n }\n }\n\n for (const child of this[_children]) {\n const name = child[$nodeName];\n const clonedChild = child[$clone]();\n clone[_children].push(clonedChild);\n clonedChild[_parent] = clone;\n if (clone[name] === null) {\n clone[name] = clonedChild;\n } else {\n clone[name][_children].push(clonedChild);\n }\n }\n\n return clone;\n }\n\n [$getChildren](name = null) {\n if (!name) {\n return this[_children];\n }\n\n return this[_children].filter(c => c[$nodeName] === name);\n }\n\n [$getChildrenByClass](name) {\n return this[name];\n }\n\n [$getChildrenByName](name, allTransparent, first = true) {\n return Array.from(this[$getChildrenByNameIt](name, allTransparent, first));\n }\n\n *[$getChildrenByNameIt](name, allTransparent, first = true) {\n if (name === \"parent\") {\n yield this[_parent];\n return;\n }\n\n for (const child of this[_children]) {\n if (child[$nodeName] === name) {\n yield child;\n }\n\n if (child.name === name) {\n yield child;\n }\n\n if (allTransparent || child[$isTransparent]()) {\n yield* child[$getChildrenByNameIt](name, allTransparent, false);\n }\n }\n\n if (first && this[_attributeNames].has(name)) {\n yield new XFAAttribute(this, name, this[name]);\n }\n }\n}\n\nclass XFAObjectArray {\n constructor(max = Infinity) {\n this[_max] = max;\n this[_children] = [];\n }\n\n push(child) {\n const len = this[_children].length;\n if (len <= this[_max]) {\n this[_children].push(child);\n return true;\n }\n warn(\n `XFA - node \"${child[$nodeName]}\" accepts no more than ${this[_max]} children`\n );\n return false;\n }\n\n isEmpty() {\n return this[_children].length === 0;\n }\n\n dump() {\n return this[_children].length === 1\n ? this[_children][0][$dump]()\n : this[_children].map(x => x[$dump]());\n }\n\n [$clone]() {\n const clone = new XFAObjectArray(this[_max]);\n clone[_children] = this[_children].map(c => c[$clone]());\n return clone;\n }\n\n get children() {\n return this[_children];\n }\n\n clear() {\n this[_children].length = 0;\n }\n}\n\nclass XFAAttribute {\n constructor(node, name, value) {\n this[_parent] = node;\n this[$nodeName] = name;\n this[$content] = value;\n this[$consumed] = false;\n this[$uid] = `attribute${uid++}`;\n }\n\n [$getParent]() {\n return this[_parent];\n }\n\n [$isDataValue]() {\n return true;\n }\n\n [$getDataValue]() {\n return this[$content].trim();\n }\n\n [$setValue](value) {\n value = value.value || \"\";\n this[$content] = value.toString();\n }\n\n [$text]() {\n return this[$content];\n }\n\n [$isDescendent](parent) {\n return this[_parent] === parent || this[_parent][$isDescendent](parent);\n }\n}\n\nclass XmlObject extends XFAObject {\n constructor(nsId, name, attributes = {}) {\n super(nsId, name);\n this[$content] = \"\";\n this[_dataValue] = null;\n if (name !== \"#text\") {\n const map = new Map();\n this[_attributes] = map;\n for (const [attrName, value] of Object.entries(attributes)) {\n map.set(attrName, new XFAAttribute(this, attrName, value));\n }\n if (attributes.hasOwnProperty($nsAttributes)) {\n // XFA attributes.\n const dataNode = attributes[$nsAttributes].xfa.dataNode;\n if (dataNode !== undefined) {\n if (dataNode === \"dataGroup\") {\n this[_dataValue] = false;\n } else if (dataNode === \"dataValue\") {\n this[_dataValue] = true;\n }\n }\n }\n }\n this[$consumed] = false;\n }\n\n [$toString](buf) {\n const tagName = this[$nodeName];\n if (tagName === \"#text\") {\n buf.push(encodeToXmlString(this[$content]));\n return;\n }\n const utf8TagName = utf8StringToString(tagName);\n const prefix = this[$namespaceId] === NS_DATASETS ? \"xfa:\" : \"\";\n buf.push(`<${prefix}${utf8TagName}`);\n for (const [name, value] of this[_attributes].entries()) {\n const utf8Name = utf8StringToString(name);\n buf.push(` ${utf8Name}=\"${encodeToXmlString(value[$content])}\"`);\n }\n if (this[_dataValue] !== null) {\n if (this[_dataValue]) {\n buf.push(` xfa:dataNode=\"dataValue\"`);\n } else {\n buf.push(` xfa:dataNode=\"dataGroup\"`);\n }\n }\n if (!this[$content] && this[_children].length === 0) {\n buf.push(\"/>\");\n return;\n }\n\n buf.push(\">\");\n if (this[$content]) {\n if (typeof this[$content] === \"string\") {\n buf.push(encodeToXmlString(this[$content]));\n } else {\n this[$content][$toString](buf);\n }\n } else {\n for (const child of this[_children]) {\n child[$toString](buf);\n }\n }\n buf.push(``);\n }\n\n [$onChild](child) {\n if (this[$content]) {\n const node = new XmlObject(this[$namespaceId], \"#text\");\n this[$appendChild](node);\n node[$content] = this[$content];\n this[$content] = \"\";\n }\n this[$appendChild](child);\n return true;\n }\n\n [$onText](str) {\n this[$content] += str;\n }\n\n [$finalize]() {\n if (this[$content] && this[_children].length > 0) {\n const node = new XmlObject(this[$namespaceId], \"#text\");\n this[$appendChild](node);\n node[$content] = this[$content];\n delete this[$content];\n }\n }\n\n [$toHTML]() {\n if (this[$nodeName] === \"#text\") {\n return HTMLResult.success({\n name: \"#text\",\n value: this[$content],\n });\n }\n\n return HTMLResult.EMPTY;\n }\n\n [$getChildren](name = null) {\n if (!name) {\n return this[_children];\n }\n\n return this[_children].filter(c => c[$nodeName] === name);\n }\n\n [$getAttributes]() {\n return this[_attributes];\n }\n\n [$getChildrenByClass](name) {\n const value = this[_attributes].get(name);\n if (value !== undefined) {\n return value;\n }\n return this[$getChildren](name);\n }\n\n *[$getChildrenByNameIt](name, allTransparent) {\n const value = this[_attributes].get(name);\n if (value) {\n yield value;\n }\n\n for (const child of this[_children]) {\n if (child[$nodeName] === name) {\n yield child;\n }\n\n if (allTransparent) {\n yield* child[$getChildrenByNameIt](name, allTransparent);\n }\n }\n }\n\n *[$getAttributeIt](name, skipConsumed) {\n const value = this[_attributes].get(name);\n if (value && (!skipConsumed || !value[$consumed])) {\n yield value;\n }\n for (const child of this[_children]) {\n yield* child[$getAttributeIt](name, skipConsumed);\n }\n }\n\n *[$getRealChildrenByNameIt](name, allTransparent, skipConsumed) {\n for (const child of this[_children]) {\n if (child[$nodeName] === name && (!skipConsumed || !child[$consumed])) {\n yield child;\n }\n\n if (allTransparent) {\n yield* child[$getRealChildrenByNameIt](\n name,\n allTransparent,\n skipConsumed\n );\n }\n }\n }\n\n [$isDataValue]() {\n if (this[_dataValue] === null) {\n return (\n this[_children].length === 0 ||\n this[_children][0][$namespaceId] === NamespaceIds.xhtml.id\n );\n }\n return this[_dataValue];\n }\n\n [$getDataValue]() {\n if (this[_dataValue] === null) {\n if (this[_children].length === 0) {\n return this[$content].trim();\n }\n if (this[_children][0][$namespaceId] === NamespaceIds.xhtml.id) {\n return this[_children][0][$text]().trim();\n }\n return null;\n }\n return this[$content].trim();\n }\n\n [$setValue](value) {\n value = value.value || \"\";\n this[$content] = value.toString();\n }\n\n [$dump](hasNS = false) {\n const dumped = Object.create(null);\n if (hasNS) {\n dumped.$ns = this[$namespaceId];\n }\n if (this[$content]) {\n dumped.$content = this[$content];\n }\n dumped.$name = this[$nodeName];\n\n dumped.children = [];\n for (const child of this[_children]) {\n dumped.children.push(child[$dump](hasNS));\n }\n\n dumped.attributes = Object.create(null);\n for (const [name, value] of this[_attributes]) {\n dumped.attributes[name] = value[$content];\n }\n\n return dumped;\n }\n}\n\nclass ContentObject extends XFAObject {\n constructor(nsId, name) {\n super(nsId, name);\n this[$content] = \"\";\n }\n\n [$onText](text) {\n this[$content] += text;\n }\n\n [$finalize]() {}\n}\n\nclass OptionObject extends ContentObject {\n constructor(nsId, name, options) {\n super(nsId, name);\n this[_options] = options;\n }\n\n [$finalize]() {\n this[$content] = getKeyword({\n data: this[$content],\n defaultValue: this[_options][0],\n validate: k => this[_options].includes(k),\n });\n }\n\n [$clean](builder) {\n super[$clean](builder);\n delete this[_options];\n }\n}\n\nclass StringObject extends ContentObject {\n [$finalize]() {\n this[$content] = this[$content].trim();\n }\n}\n\nclass IntegerObject extends ContentObject {\n constructor(nsId, name, defaultValue, validator) {\n super(nsId, name);\n this[_defaultValue] = defaultValue;\n this[_validator] = validator;\n }\n\n [$finalize]() {\n this[$content] = getInteger({\n data: this[$content],\n defaultValue: this[_defaultValue],\n validate: this[_validator],\n });\n }\n\n [$clean](builder) {\n super[$clean](builder);\n delete this[_defaultValue];\n delete this[_validator];\n }\n}\n\nclass Option01 extends IntegerObject {\n constructor(nsId, name) {\n super(nsId, name, 0, n => n === 1);\n }\n}\n\nclass Option10 extends IntegerObject {\n constructor(nsId, name) {\n super(nsId, name, 1, n => n === 0);\n }\n}\n\nexport {\n $acceptWhitespace,\n $addHTML,\n $appendChild,\n $childrenToHTML,\n $clean,\n $cleanPage,\n $cleanup,\n $clone,\n $consumed,\n $content,\n $data,\n $dump,\n $extra,\n $finalize,\n $flushHTML,\n $getAttributeIt,\n $getAttributes,\n $getAvailableSpace,\n $getChildren,\n $getChildrenByClass,\n $getChildrenByName,\n $getChildrenByNameIt,\n $getContainedChildren,\n $getDataValue,\n $getExtra,\n $getNextPage,\n $getParent,\n $getRealChildrenByNameIt,\n $getSubformParent,\n $getTemplateRoot,\n $globalData,\n $hasSettableValue,\n $ids,\n $indexOf,\n $insertAt,\n $isBindable,\n $isCDATAXml,\n $isDataValue,\n $isDescendent,\n $isNsAgnostic,\n $isSplittable,\n $isThereMoreWidth,\n $isTransparent,\n $isUsable,\n $namespaceId,\n $nodeName,\n $nsAttributes,\n $onChild,\n $onChildCheck,\n $onText,\n $popPara,\n $pushGlyphs,\n $pushPara,\n $removeChild,\n $resolvePrototypes,\n $root,\n $searchNode,\n $setId,\n $setSetAttributes,\n $setValue,\n $tabIndex,\n $text,\n $toHTML,\n $toPages,\n $toString,\n $toStyle,\n $uid,\n ContentObject,\n IntegerObject,\n Option01,\n Option10,\n OptionObject,\n StringObject,\n XFAAttribute,\n XFAObject,\n XFAObjectArray,\n XmlObject,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { shadow } from \"../../shared/util.js\";\n\nconst dimConverters = {\n pt: x => x,\n cm: x => (x / 2.54) * 72,\n mm: x => (x / (10 * 2.54)) * 72,\n in: x => x * 72,\n px: x => x,\n};\nconst measurementPattern = /([+-]?\\d+\\.?\\d*)(.*)/;\n\nfunction stripQuotes(str) {\n if (str.startsWith(\"'\") || str.startsWith('\"')) {\n return str.slice(1, str.length - 1);\n }\n return str;\n}\n\nfunction getInteger({ data, defaultValue, validate }) {\n if (!data) {\n return defaultValue;\n }\n data = data.trim();\n const n = parseInt(data, 10);\n if (!isNaN(n) && validate(n)) {\n return n;\n }\n return defaultValue;\n}\n\nfunction getFloat({ data, defaultValue, validate }) {\n if (!data) {\n return defaultValue;\n }\n data = data.trim();\n const n = parseFloat(data);\n if (!isNaN(n) && validate(n)) {\n return n;\n }\n return defaultValue;\n}\n\nfunction getKeyword({ data, defaultValue, validate }) {\n if (!data) {\n return defaultValue;\n }\n data = data.trim();\n if (validate(data)) {\n return data;\n }\n return defaultValue;\n}\n\nfunction getStringOption(data, options) {\n return getKeyword({\n data,\n defaultValue: options[0],\n validate: k => options.includes(k),\n });\n}\n\nfunction getMeasurement(str, def = \"0\") {\n def = def || \"0\";\n if (!str) {\n return getMeasurement(def);\n }\n const match = str.trim().match(measurementPattern);\n if (!match) {\n return getMeasurement(def);\n }\n const [, valueStr, unit] = match;\n const value = parseFloat(valueStr);\n if (isNaN(value)) {\n return getMeasurement(def);\n }\n\n if (value === 0) {\n return 0;\n }\n\n const conv = dimConverters[unit];\n if (conv) {\n return conv(value);\n }\n\n return value;\n}\n\nfunction getRatio(data) {\n if (!data) {\n return { num: 1, den: 1 };\n }\n const ratio = data\n .trim()\n .split(/\\s*:\\s*/)\n .map(x => parseFloat(x))\n .filter(x => !isNaN(x));\n if (ratio.length === 1) {\n ratio.push(1);\n }\n\n if (ratio.length === 0) {\n return { num: 1, den: 1 };\n }\n\n const [num, den] = ratio;\n return { num, den };\n}\n\nfunction getRelevant(data) {\n if (!data) {\n return [];\n }\n return data\n .trim()\n .split(/\\s+/)\n .map(e => {\n return {\n excluded: e[0] === \"-\",\n viewname: e.substring(1),\n };\n });\n}\n\nfunction getColor(data, def = [0, 0, 0]) {\n let [r, g, b] = def;\n if (!data) {\n return { r, g, b };\n }\n const color = data\n .trim()\n .split(/\\s*,\\s*/)\n .map(c => Math.min(Math.max(0, parseInt(c.trim(), 10)), 255))\n .map(c => (isNaN(c) ? 0 : c));\n\n if (color.length < 3) {\n return { r, g, b };\n }\n\n [r, g, b] = color;\n return { r, g, b };\n}\n\nfunction getBBox(data) {\n const def = -1;\n if (!data) {\n return { x: def, y: def, width: def, height: def };\n }\n const bbox = data\n .trim()\n .split(/\\s*,\\s*/)\n .map(m => getMeasurement(m, \"-1\"));\n if (bbox.length < 4 || bbox[2] < 0 || bbox[3] < 0) {\n return { x: def, y: def, width: def, height: def };\n }\n\n const [x, y, width, height] = bbox;\n return { x, y, width, height };\n}\n\nclass HTMLResult {\n static get FAILURE() {\n return shadow(this, \"FAILURE\", new HTMLResult(false, null, null, null));\n }\n\n static get EMPTY() {\n return shadow(this, \"EMPTY\", new HTMLResult(true, null, null, null));\n }\n\n constructor(success, html, bbox, breakNode) {\n this.success = success;\n this.html = html;\n this.bbox = bbox;\n this.breakNode = breakNode;\n }\n\n isBreak() {\n return !!this.breakNode;\n }\n\n static breakNode(node) {\n return new HTMLResult(false, null, null, node);\n }\n\n static success(html, bbox = null) {\n return new HTMLResult(true, html, bbox, null);\n }\n}\n\nexport {\n getBBox,\n getColor,\n getFloat,\n getInteger,\n getKeyword,\n getMeasurement,\n getRatio,\n getRelevant,\n getStringOption,\n HTMLResult,\n stripQuotes,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst $buildXFAObject = Symbol();\n\nconst NamespaceIds = {\n config: {\n id: 0,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xci/\"),\n },\n connectionSet: {\n id: 1,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-connection-set/\"),\n },\n datasets: {\n id: 2,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-data/\"),\n },\n form: {\n id: 3,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-form/\"),\n },\n localeSet: {\n id: 4,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-locale-set/\"),\n },\n pdf: {\n id: 5,\n check: ns => ns === \"http://ns.adobe.com/xdp/pdf/\",\n },\n signature: {\n id: 6,\n check: ns => ns === \"http://www.w3.org/2000/09/xmldsig#\",\n },\n sourceSet: {\n id: 7,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-source-set/\"),\n },\n stylesheet: {\n id: 8,\n check: ns => ns === \"http://www.w3.org/1999/XSL/Transform\",\n },\n template: {\n id: 9,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-template/\"),\n },\n xdc: {\n id: 10,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xdc/\"),\n },\n xdp: {\n id: 11,\n check: ns => ns === \"http://ns.adobe.com/xdp/\",\n },\n xfdf: {\n id: 12,\n check: ns => ns === \"http://ns.adobe.com/xfdf/\",\n },\n xhtml: {\n id: 13,\n check: ns => ns === \"http://www.w3.org/1999/xhtml\",\n },\n xmpmeta: {\n id: 14,\n check: ns => ns === \"http://ns.adobe.com/xmpmeta/\",\n },\n};\n\nexport { $buildXFAObject, NamespaceIds };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $appendChild,\n $getChildren,\n $getChildrenByClass,\n $getChildrenByName,\n $getParent,\n $namespaceId,\n XFAObject,\n XFAObjectArray,\n XmlObject,\n} from \"./xfa_object.js\";\nimport { NamespaceIds } from \"./namespaces.js\";\nimport { warn } from \"../../shared/util.js\";\n\nconst namePattern = /^[^.[]+/;\nconst indexPattern = /^[^\\]]+/;\nconst operators = {\n dot: 0,\n dotDot: 1,\n dotHash: 2,\n dotBracket: 3,\n dotParen: 4,\n};\n\nconst shortcuts = new Map([\n [\"$data\", (root, current) => (root.datasets ? root.datasets.data : root)],\n [\n \"$record\",\n (root, current) =>\n (root.datasets ? root.datasets.data : root)[$getChildren]()[0],\n ],\n [\"$template\", (root, current) => root.template],\n [\"$connectionSet\", (root, current) => root.connectionSet],\n [\"$form\", (root, current) => root.form],\n [\"$layout\", (root, current) => root.layout],\n [\"$host\", (root, current) => root.host],\n [\"$dataWindow\", (root, current) => root.dataWindow],\n [\"$event\", (root, current) => root.event],\n [\"!\", (root, current) => root.datasets],\n [\"$xfa\", (root, current) => root],\n [\"xfa\", (root, current) => root],\n [\"$\", (root, current) => current],\n]);\n\nconst somCache = new WeakMap();\nconst NS_DATASETS = NamespaceIds.datasets.id;\n\nfunction parseIndex(index) {\n index = index.trim();\n if (index === \"*\") {\n return Infinity;\n }\n return parseInt(index, 10) || 0;\n}\n\n// For now expressions containing .[...] or .(...) are not\n// evaluated so don't parse them.\n// TODO: implement that stuff and the remove the noExpr param.\nfunction parseExpression(expr, dotDotAllowed, noExpr = true) {\n let match = expr.match(namePattern);\n if (!match) {\n return null;\n }\n\n let [name] = match;\n const parsed = [\n {\n name,\n cacheName: \".\" + name,\n index: 0,\n js: null,\n formCalc: null,\n operator: operators.dot,\n },\n ];\n\n let pos = name.length;\n\n while (pos < expr.length) {\n const spos = pos;\n const char = expr.charAt(pos++);\n if (char === \"[\") {\n match = expr.slice(pos).match(indexPattern);\n if (!match) {\n warn(\"XFA - Invalid index in SOM expression\");\n return null;\n }\n parsed[parsed.length - 1].index = parseIndex(match[0]);\n pos += match[0].length + 1;\n continue;\n }\n\n let operator;\n switch (expr.charAt(pos)) {\n case \".\":\n if (!dotDotAllowed) {\n return null;\n }\n pos++;\n operator = operators.dotDot;\n break;\n case \"#\":\n pos++;\n operator = operators.dotHash;\n break;\n case \"[\":\n if (noExpr) {\n warn(\n \"XFA - SOM expression contains a FormCalc subexpression which is not supported for now.\"\n );\n return null;\n }\n // TODO: FormCalc expression so need to use the parser\n operator = operators.dotBracket;\n break;\n case \"(\":\n if (noExpr) {\n warn(\n \"XFA - SOM expression contains a JavaScript subexpression which is not supported for now.\"\n );\n return null;\n }\n // TODO:\n // JavaScript expression: should be a boolean operation with a path\n // so maybe we can have our own parser for that stuff or\n // maybe use the formcalc one.\n operator = operators.dotParen;\n break;\n default:\n operator = operators.dot;\n break;\n }\n\n match = expr.slice(pos).match(namePattern);\n if (!match) {\n break;\n }\n\n [name] = match;\n pos += name.length;\n parsed.push({\n name,\n cacheName: expr.slice(spos, pos),\n operator,\n index: 0,\n js: null,\n formCalc: null,\n });\n }\n return parsed;\n}\n\nfunction searchNode(\n root,\n container,\n expr,\n dotDotAllowed = true,\n useCache = true\n) {\n const parsed = parseExpression(expr, dotDotAllowed);\n if (!parsed) {\n return null;\n }\n\n const fn = shortcuts.get(parsed[0].name);\n let i = 0;\n let isQualified;\n if (fn) {\n isQualified = true;\n root = [fn(root, container)];\n i = 1;\n } else {\n isQualified = container === null;\n root = [container || root];\n }\n\n for (let ii = parsed.length; i < ii; i++) {\n const { name, cacheName, operator, index } = parsed[i];\n const nodes = [];\n for (const node of root) {\n if (!(node instanceof XFAObject)) {\n continue;\n }\n\n let children, cached;\n\n if (useCache) {\n cached = somCache.get(node);\n if (!cached) {\n cached = new Map();\n somCache.set(node, cached);\n }\n children = cached.get(cacheName);\n }\n\n if (!children) {\n switch (operator) {\n case operators.dot:\n children = node[$getChildrenByName](name, false);\n break;\n case operators.dotDot:\n children = node[$getChildrenByName](name, true);\n break;\n case operators.dotHash:\n children = node[$getChildrenByClass](name);\n if (children instanceof XFAObjectArray) {\n children = children.children;\n } else {\n children = [children];\n }\n break;\n default:\n break;\n }\n if (useCache) {\n cached.set(cacheName, children);\n }\n }\n\n if (children.length > 0) {\n nodes.push(children);\n }\n }\n\n if (nodes.length === 0 && !isQualified && i === 0) {\n // We've an unqualified expression and we didn't find anything\n // so look at container and siblings of container and so on.\n // http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.364.2157&rep=rep1&type=pdf#page=114\n const parent = container[$getParent]();\n container = parent;\n if (!container) {\n return null;\n }\n i = -1;\n root = [container];\n continue;\n }\n\n if (isFinite(index)) {\n root = nodes.filter(node => index < node.length).map(node => node[index]);\n } else {\n root = nodes.reduce((acc, node) => acc.concat(node), []);\n }\n }\n\n if (root.length === 0) {\n return null;\n }\n\n return root;\n}\n\nfunction createNodes(root, path) {\n let node = null;\n for (const { name, index } of path) {\n for (let i = 0, ii = !isFinite(index) ? 0 : index; i <= ii; i++) {\n const nsId = root[$namespaceId] === NS_DATASETS ? -1 : root[$namespaceId];\n node = new XmlObject(nsId, name);\n root[$appendChild](node);\n }\n\n root = node;\n }\n return node;\n}\n\nfunction createDataNode(root, container, expr) {\n const parsed = parseExpression(expr);\n if (!parsed) {\n return null;\n }\n\n if (parsed.some(x => x.operator === operators.dotDot)) {\n return null;\n }\n\n const fn = shortcuts.get(parsed[0].name);\n let i = 0;\n if (fn) {\n root = fn(root, container);\n i = 1;\n } else {\n root = container || root;\n }\n\n for (let ii = parsed.length; i < ii; i++) {\n const { name, operator, index } = parsed[i];\n if (!isFinite(index)) {\n parsed[i].index = 0;\n return createNodes(root, parsed.slice(i));\n }\n\n let children;\n switch (operator) {\n case operators.dot:\n children = root[$getChildrenByName](name, false);\n break;\n case operators.dotDot:\n children = root[$getChildrenByName](name, true);\n break;\n case operators.dotHash:\n children = root[$getChildrenByClass](name);\n if (children instanceof XFAObjectArray) {\n children = children.children;\n } else {\n children = [children];\n }\n break;\n default:\n break;\n }\n\n if (children.length === 0) {\n return createNodes(root, parsed.slice(i));\n }\n\n if (index < children.length) {\n const child = children[index];\n if (!(child instanceof XFAObject)) {\n warn(`XFA - Cannot create a node.`);\n return null;\n }\n root = child;\n } else {\n parsed[i].index = index - children.length;\n return createNodes(root, parsed.slice(i));\n }\n }\n return null;\n}\n\nexport { createDataNode, searchNode };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $appendChild,\n $clone,\n $consumed,\n $content,\n $data,\n $finalize,\n $getAttributeIt,\n $getChildren,\n $getDataValue,\n $getParent,\n $getRealChildrenByNameIt,\n $hasSettableValue,\n $indexOf,\n $insertAt,\n $isBindable,\n $isDataValue,\n $isDescendent,\n $namespaceId,\n $nodeName,\n $removeChild,\n $setValue,\n $text,\n XFAAttribute,\n XFAObjectArray,\n XmlObject,\n} from \"./xfa_object.js\";\nimport { BindItems, Field, Items, SetProperty, Text } from \"./template.js\";\nimport { createDataNode, searchNode } from \"./som.js\";\nimport { NamespaceIds } from \"./namespaces.js\";\nimport { warn } from \"../../shared/util.js\";\n\nconst NS_DATASETS = NamespaceIds.datasets.id;\n\nfunction createText(content) {\n const node = new Text({});\n node[$content] = content;\n return node;\n}\n\nclass Binder {\n constructor(root) {\n this.root = root;\n this.datasets = root.datasets;\n if (root.datasets && root.datasets.data) {\n this.data = root.datasets.data;\n } else {\n this.data = new XmlObject(NamespaceIds.datasets.id, \"data\");\n }\n this.emptyMerge = this.data[$getChildren]().length === 0;\n\n this.root.form = this.form = root.template[$clone]();\n }\n\n _isConsumeData() {\n return !this.emptyMerge && this._mergeMode;\n }\n\n _isMatchTemplate() {\n return !this._isConsumeData();\n }\n\n bind() {\n this._bindElement(this.form, this.data);\n return this.form;\n }\n\n getData() {\n return this.data;\n }\n\n _bindValue(formNode, data, picture) {\n // Nodes must have the same \"type\": container or value.\n // Here we make the link between form node and\n // data node (through $data property): we'll use it\n // to save form data.\n\n formNode[$data] = data;\n if (formNode[$hasSettableValue]()) {\n if (data[$isDataValue]()) {\n const value = data[$getDataValue]();\n // TODO: use picture.\n formNode[$setValue](createText(value));\n } else if (\n formNode instanceof Field &&\n formNode.ui &&\n formNode.ui.choiceList &&\n formNode.ui.choiceList.open === \"multiSelect\"\n ) {\n const value = data[$getChildren]()\n .map(child => child[$content].trim())\n .join(\"\\n\");\n formNode[$setValue](createText(value));\n } else if (this._isConsumeData()) {\n warn(`XFA - Nodes haven't the same type.`);\n }\n } else if (!data[$isDataValue]() || this._isMatchTemplate()) {\n this._bindElement(formNode, data);\n } else {\n warn(`XFA - Nodes haven't the same type.`);\n }\n }\n\n _findDataByNameToConsume(name, isValue, dataNode, global) {\n if (!name) {\n return null;\n }\n\n // Firstly, we try to find a node with the given name:\n // - in dataNode;\n // - if not found, then in parent;\n // - and if not in found, then in grand-parent.\n let generator, match;\n for (let i = 0; i < 3; i++) {\n generator = dataNode[$getRealChildrenByNameIt](\n name,\n /* allTransparent = */ false,\n /* skipConsumed = */ true\n );\n // Try to find a match of the same kind.\n while (true) {\n match = generator.next().value;\n if (!match) {\n break;\n }\n\n if (isValue === match[$isDataValue]()) {\n return match;\n }\n }\n if (\n dataNode[$namespaceId] === NamespaceIds.datasets.id &&\n dataNode[$nodeName] === \"data\"\n ) {\n break;\n }\n dataNode = dataNode[$getParent]();\n }\n\n if (!global) {\n return null;\n }\n\n // Secondly, if global try to find it just under the root of datasets\n // (which is the location of global variables).\n generator = this.data[$getRealChildrenByNameIt](\n name,\n /* allTransparent = */ true,\n /* skipConsumed = */ false\n );\n\n match = generator.next().value;\n if (match) {\n return match;\n }\n\n // Thirdly, try to find it in attributes.\n generator = this.data[$getAttributeIt](name, /* skipConsumed = */ true);\n match = generator.next().value;\n if (match && match[$isDataValue]()) {\n return match;\n }\n\n return null;\n }\n\n _setProperties(formNode, dataNode) {\n // For example:\n // \n // \n // \n // \n // \n\n if (!formNode.hasOwnProperty(\"setProperty\")) {\n return;\n }\n\n for (const { ref, target, connection } of formNode.setProperty.children) {\n if (connection) {\n // TODO: evaluate if we should implement this feature.\n // Skip for security reasons.\n continue;\n }\n if (!ref) {\n continue;\n }\n\n const nodes = searchNode(\n this.root,\n dataNode,\n ref,\n false /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (!nodes) {\n warn(`XFA - Invalid reference: ${ref}.`);\n continue;\n }\n const [node] = nodes;\n\n if (!node[$isDescendent](this.data)) {\n warn(`XFA - Invalid node: must be a data node.`);\n continue;\n }\n\n const targetNodes = searchNode(\n this.root,\n formNode,\n target,\n false /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (!targetNodes) {\n warn(`XFA - Invalid target: ${target}.`);\n continue;\n }\n const [targetNode] = targetNodes;\n\n if (!targetNode[$isDescendent](formNode)) {\n warn(`XFA - Invalid target: must be a property or subproperty.`);\n continue;\n }\n\n const targetParent = targetNode[$getParent]();\n if (\n targetNode instanceof SetProperty ||\n targetParent instanceof SetProperty\n ) {\n warn(\n `XFA - Invalid target: cannot be a setProperty or one of its properties.`\n );\n continue;\n }\n\n if (\n targetNode instanceof BindItems ||\n targetParent instanceof BindItems\n ) {\n warn(\n `XFA - Invalid target: cannot be a bindItems or one of its properties.`\n );\n continue;\n }\n\n const content = node[$text]();\n const name = targetNode[$nodeName];\n\n if (targetNode instanceof XFAAttribute) {\n const attrs = Object.create(null);\n attrs[name] = content;\n const obj = Reflect.construct(\n Object.getPrototypeOf(targetParent).constructor,\n [attrs]\n );\n targetParent[name] = obj[name];\n continue;\n }\n\n if (!targetNode.hasOwnProperty($content)) {\n warn(`XFA - Invalid node to use in setProperty`);\n continue;\n }\n\n targetNode[$data] = node;\n targetNode[$content] = content;\n targetNode[$finalize]();\n }\n }\n\n _bindItems(formNode, dataNode) {\n // For example:\n // \n // \n // \n // \n\n if (\n !formNode.hasOwnProperty(\"items\") ||\n !formNode.hasOwnProperty(\"bindItems\") ||\n formNode.bindItems.isEmpty()\n ) {\n return;\n }\n\n for (const item of formNode.items.children) {\n formNode[$removeChild](item);\n }\n\n formNode.items.clear();\n\n const labels = new Items({});\n const values = new Items({});\n\n formNode[$appendChild](labels);\n formNode.items.push(labels);\n\n formNode[$appendChild](values);\n formNode.items.push(values);\n\n for (const { ref, labelRef, valueRef, connection } of formNode.bindItems\n .children) {\n if (connection) {\n // TODO: evaluate if we should implement this feature.\n // Skip for security reasons.\n continue;\n }\n if (!ref) {\n continue;\n }\n\n const nodes = searchNode(\n this.root,\n dataNode,\n ref,\n false /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (!nodes) {\n warn(`XFA - Invalid reference: ${ref}.`);\n continue;\n }\n for (const node of nodes) {\n if (!node[$isDescendent](this.datasets)) {\n warn(`XFA - Invalid ref (${ref}): must be a datasets child.`);\n continue;\n }\n\n const labelNodes = searchNode(\n this.root,\n node,\n labelRef,\n true /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (!labelNodes) {\n warn(`XFA - Invalid label: ${labelRef}.`);\n continue;\n }\n const [labelNode] = labelNodes;\n\n if (!labelNode[$isDescendent](this.datasets)) {\n warn(`XFA - Invalid label: must be a datasets child.`);\n continue;\n }\n\n const valueNodes = searchNode(\n this.root,\n node,\n valueRef,\n true /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (!valueNodes) {\n warn(`XFA - Invalid value: ${valueRef}.`);\n continue;\n }\n const [valueNode] = valueNodes;\n\n if (!valueNode[$isDescendent](this.datasets)) {\n warn(`XFA - Invalid value: must be a datasets child.`);\n continue;\n }\n\n const label = createText(labelNode[$text]());\n const value = createText(valueNode[$text]());\n\n labels[$appendChild](label);\n labels.text.push(label);\n\n values[$appendChild](value);\n values.text.push(value);\n }\n }\n }\n\n _bindOccurrences(formNode, matches, picture) {\n // Insert nodes which are not in the template but reflect\n // what we've in data tree.\n\n let baseClone;\n if (matches.length > 1) {\n // Clone before binding to avoid bad state.\n baseClone = formNode[$clone]();\n baseClone[$removeChild](baseClone.occur);\n baseClone.occur = null;\n }\n\n this._bindValue(formNode, matches[0], picture);\n this._setProperties(formNode, matches[0]);\n this._bindItems(formNode, matches[0]);\n\n if (matches.length === 1) {\n return;\n }\n\n const parent = formNode[$getParent]();\n const name = formNode[$nodeName];\n const pos = parent[$indexOf](formNode);\n\n for (let i = 1, ii = matches.length; i < ii; i++) {\n const match = matches[i];\n const clone = baseClone[$clone]();\n parent[name].push(clone);\n parent[$insertAt](pos + i, clone);\n\n this._bindValue(clone, match, picture);\n this._setProperties(clone, match);\n this._bindItems(clone, match);\n }\n }\n\n _createOccurrences(formNode) {\n if (!this.emptyMerge) {\n return;\n }\n\n const { occur } = formNode;\n if (!occur || occur.initial <= 1) {\n return;\n }\n\n const parent = formNode[$getParent]();\n const name = formNode[$nodeName];\n\n if (!(parent[name] instanceof XFAObjectArray)) {\n return;\n }\n\n let currentNumber;\n if (formNode.name) {\n currentNumber = parent[name].children.filter(\n e => e.name === formNode.name\n ).length;\n } else {\n currentNumber = parent[name].children.length;\n }\n\n const pos = parent[$indexOf](formNode) + 1;\n const ii = occur.initial - currentNumber;\n if (ii) {\n const nodeClone = formNode[$clone]();\n nodeClone[$removeChild](nodeClone.occur);\n nodeClone.occur = null;\n parent[name].push(nodeClone);\n parent[$insertAt](pos, nodeClone);\n\n for (let i = 1; i < ii; i++) {\n const clone = nodeClone[$clone]();\n parent[name].push(clone);\n parent[$insertAt](pos + i, clone);\n }\n }\n }\n\n _getOccurInfo(formNode) {\n const { name, occur } = formNode;\n if (!occur || !name) {\n return [1, 1];\n }\n const max = occur.max === -1 ? Infinity : occur.max;\n return [occur.min, max];\n }\n\n _setAndBind(formNode, dataNode) {\n this._setProperties(formNode, dataNode);\n this._bindItems(formNode, dataNode);\n this._bindElement(formNode, dataNode);\n }\n\n _bindElement(formNode, dataNode) {\n // Some nodes can be useless because min=0 so remove them\n // after the loop to avoid bad things.\n\n const uselessNodes = [];\n\n this._createOccurrences(formNode);\n\n for (const child of formNode[$getChildren]()) {\n if (child[$data]) {\n // Already bound.\n continue;\n }\n\n if (this._mergeMode === undefined && child[$nodeName] === \"subform\") {\n this._mergeMode = child.mergeMode === \"consumeData\";\n\n // XFA specs p. 182:\n // The highest-level subform and the data node representing\n // the current record are special; they are always\n // bound even if their names don't match.\n const dataChildren = dataNode[$getChildren]();\n if (dataChildren.length > 0) {\n this._bindOccurrences(child, [dataChildren[0]], null);\n } else if (this.emptyMerge) {\n const nsId =\n dataNode[$namespaceId] === NS_DATASETS\n ? -1\n : dataNode[$namespaceId];\n const dataChild = (child[$data] = new XmlObject(\n nsId,\n child.name || \"root\"\n ));\n dataNode[$appendChild](dataChild);\n this._bindElement(child, dataChild);\n }\n continue;\n }\n\n if (!child[$isBindable]()) {\n // The node cannot contain some new data so there is nothing\n // to create in the data node.\n continue;\n }\n\n let global = false;\n let picture = null;\n let ref = null;\n let match = null;\n if (child.bind) {\n switch (child.bind.match) {\n case \"none\":\n this._setAndBind(child, dataNode);\n continue;\n case \"global\":\n global = true;\n break;\n case \"dataRef\":\n if (!child.bind.ref) {\n warn(`XFA - ref is empty in node ${child[$nodeName]}.`);\n this._setAndBind(child, dataNode);\n continue;\n }\n ref = child.bind.ref;\n break;\n default:\n break;\n }\n if (child.bind.picture) {\n picture = child.bind.picture[$content];\n }\n }\n\n const [min, max] = this._getOccurInfo(child);\n\n if (ref) {\n // Don't use a cache for searching: nodes can change during binding.\n match = searchNode(\n this.root,\n dataNode,\n ref,\n true /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (match === null) {\n // Nothing found: we must create some nodes in data in order\n // to have something to match with the given expression.\n // See http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.364.2157&rep=rep1&type=pdf#page=199\n match = createDataNode(this.data, dataNode, ref);\n if (!match) {\n // For example if the node contains a .(...) then it isn't\n // findable.\n // TODO: remove this when .(...) is implemented.\n continue;\n }\n if (this._isConsumeData()) {\n match[$consumed] = true;\n }\n\n // Don't bind the value in newly created node because it's empty.\n this._setAndBind(child, match);\n continue;\n } else {\n if (this._isConsumeData()) {\n // Filter out consumed nodes.\n match = match.filter(node => !node[$consumed]);\n }\n if (match.length > max) {\n match = match.slice(0, max);\n } else if (match.length === 0) {\n match = null;\n }\n if (match && this._isConsumeData()) {\n match.forEach(node => {\n node[$consumed] = true;\n });\n }\n }\n } else {\n if (!child.name) {\n this._setAndBind(child, dataNode);\n continue;\n }\n if (this._isConsumeData()) {\n // In consumeData mode, search for the next node with the given name.\n // occurs.max gives us the max number of node to match.\n const matches = [];\n while (matches.length < max) {\n const found = this._findDataByNameToConsume(\n child.name,\n child[$hasSettableValue](),\n dataNode,\n global\n );\n\n if (!found) {\n break;\n }\n found[$consumed] = true;\n matches.push(found);\n }\n match = matches.length > 0 ? matches : null;\n } else {\n // If we've an empty merge, there are no reason\n // to make multiple bind so skip consumed nodes.\n match = dataNode[$getRealChildrenByNameIt](\n child.name,\n /* allTransparent = */ false,\n /* skipConsumed = */ this.emptyMerge\n ).next().value;\n if (!match) {\n // If there is no match (no data) and `min === 0` then\n // the container is entirely excluded.\n // https://www.pdfa.org/norm-refs/XFA-3_3.pdf#G12.1428332\n if (min === 0) {\n uselessNodes.push(child);\n continue;\n }\n // We're in matchTemplate mode so create a node in data to reflect\n // what we've in template.\n const nsId =\n dataNode[$namespaceId] === NS_DATASETS\n ? -1\n : dataNode[$namespaceId];\n match = child[$data] = new XmlObject(nsId, child.name);\n if (this.emptyMerge) {\n match[$consumed] = true;\n }\n dataNode[$appendChild](match);\n\n // Don't bind the value in newly created node because it's empty.\n this._setAndBind(child, match);\n continue;\n }\n if (this.emptyMerge) {\n match[$consumed] = true;\n }\n match = [match];\n }\n }\n\n if (match) {\n this._bindOccurrences(child, match, picture);\n } else if (min > 0) {\n this._setAndBind(child, dataNode);\n } else {\n uselessNodes.push(child);\n }\n }\n\n uselessNodes.forEach(node => node[$getParent]()[$removeChild](node));\n }\n}\n\nexport { Binder };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $acceptWhitespace,\n $addHTML,\n $appendChild,\n $childrenToHTML,\n $clean,\n $cleanPage,\n $content,\n $data,\n $extra,\n $finalize,\n $flushHTML,\n $getAvailableSpace,\n $getChildren,\n $getContainedChildren,\n $getExtra,\n $getNextPage,\n $getParent,\n $getSubformParent,\n $getTemplateRoot,\n $globalData,\n $hasSettableValue,\n $ids,\n $isBindable,\n $isCDATAXml,\n $isSplittable,\n $isThereMoreWidth,\n $isTransparent,\n $isUsable,\n $namespaceId,\n $nodeName,\n $onChild,\n $onText,\n $popPara,\n $pushPara,\n $removeChild,\n $searchNode,\n $setSetAttributes,\n $setValue,\n $tabIndex,\n $text,\n $toHTML,\n $toPages,\n $toStyle,\n $uid,\n ContentObject,\n Option01,\n OptionObject,\n StringObject,\n XFAObject,\n XFAObjectArray,\n} from \"./xfa_object.js\";\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n addHTML,\n checkDimensions,\n flushHTML,\n getAvailableSpace,\n} from \"./layout.js\";\nimport {\n computeBbox,\n createWrapper,\n fixDimensions,\n fixTextIndent,\n fixURL,\n isPrintOnly,\n layoutClass,\n layoutNode,\n measureToString,\n setAccess,\n setFontFamily,\n setMinMaxDimensions,\n setPara,\n toStyle,\n} from \"./html_utils.js\";\nimport {\n getBBox,\n getColor,\n getFloat,\n getInteger,\n getKeyword,\n getMeasurement,\n getRatio,\n getRelevant,\n getStringOption,\n HTMLResult,\n} from \"./utils.js\";\nimport { stringToBytes, Util, warn } from \"../../shared/util.js\";\nimport { getMetrics } from \"./fonts.js\";\nimport { recoverJsURL } from \"../core_utils.js\";\nimport { searchNode } from \"./som.js\";\n\nconst TEMPLATE_NS_ID = NamespaceIds.template.id;\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\n\n// In case of lr-tb (and rl-tb) layouts, we try:\n// - to put the container at the end of a line\n// - and if it fails we try on the next line.\n// If both tries failed then it's up to the parent\n// to handle the situation.\nconst MAX_ATTEMPTS_FOR_LRTB_LAYOUT = 2;\n\n// It's possible to have a bug in the layout and so as\n// a consequence we could loop for ever in Template::toHTML()\n// so in order to avoid that (and avoid a OOM crash) we break\n// the loop after having MAX_EMPTY_PAGES empty pages.\nconst MAX_EMPTY_PAGES = 3;\n\n// Default value to start with for the tabIndex property.\nconst DEFAULT_TAB_INDEX = 5000;\n\nconst HEADING_PATTERN = /^H(\\d+)$/;\n\n// Allowed mime types for images\nconst MIMES = new Set([\n \"image/gif\",\n \"image/jpeg\",\n \"image/jpg\",\n \"image/pjpeg\",\n \"image/png\",\n \"image/apng\",\n \"image/x-png\",\n \"image/bmp\",\n \"image/x-ms-bmp\",\n \"image/tiff\",\n \"image/tif\",\n \"application/octet-stream\",\n]);\n\nconst IMAGES_HEADERS = [\n [[0x42, 0x4d], \"image/bmp\"],\n [[0xff, 0xd8, 0xff], \"image/jpeg\"],\n [[0x49, 0x49, 0x2a, 0x00], \"image/tiff\"],\n [[0x4d, 0x4d, 0x00, 0x2a], \"image/tiff\"],\n [[0x47, 0x49, 0x46, 0x38, 0x39, 0x61], \"image/gif\"],\n [[0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a], \"image/png\"],\n];\n\nfunction getBorderDims(node) {\n if (!node || !node.border) {\n return { w: 0, h: 0 };\n }\n\n const borderExtra = node.border[$getExtra]();\n if (!borderExtra) {\n return { w: 0, h: 0 };\n }\n\n return {\n w:\n borderExtra.widths[0] +\n borderExtra.widths[2] +\n borderExtra.insets[0] +\n borderExtra.insets[2],\n h:\n borderExtra.widths[1] +\n borderExtra.widths[3] +\n borderExtra.insets[1] +\n borderExtra.insets[3],\n };\n}\n\nfunction hasMargin(node) {\n return (\n node.margin &&\n (node.margin.topInset ||\n node.margin.rightInset ||\n node.margin.bottomInset ||\n node.margin.leftInset)\n );\n}\n\nfunction _setValue(templateNode, value) {\n if (!templateNode.value) {\n const nodeValue = new Value({});\n templateNode[$appendChild](nodeValue);\n templateNode.value = nodeValue;\n }\n templateNode.value[$setValue](value);\n}\n\nfunction* getContainedChildren(node) {\n for (const child of node[$getChildren]()) {\n if (child instanceof SubformSet) {\n yield* child[$getContainedChildren]();\n continue;\n }\n yield child;\n }\n}\n\nfunction setTabIndex(node) {\n while (node) {\n if (!node.traversal) {\n node[$tabIndex] = node[$getParent]()[$tabIndex];\n return;\n }\n\n if (node[$tabIndex]) {\n return;\n }\n\n let next = null;\n for (const child of node.traversal[$getChildren]()) {\n if (child.operation === \"next\") {\n next = child;\n break;\n }\n }\n\n if (!next || !next.ref) {\n node[$tabIndex] = node[$getParent]()[$tabIndex];\n return;\n }\n\n const root = node[$getTemplateRoot]();\n node[$tabIndex] = ++root[$tabIndex];\n\n const ref = root[$searchNode](next.ref, node);\n if (!ref) {\n return;\n }\n\n node = ref[0];\n }\n}\n\nfunction applyAssist(obj, attributes) {\n const assist = obj.assist;\n if (assist) {\n const assistTitle = assist[$toHTML]();\n if (assistTitle) {\n attributes.title = assistTitle;\n }\n const role = assist.role;\n const match = role.match(HEADING_PATTERN);\n if (match) {\n const ariaRole = \"heading\";\n const ariaLevel = match[1];\n attributes.role = ariaRole;\n attributes[\"aria-level\"] = ariaLevel;\n }\n }\n // XXX: We could end up in a situation where the obj has a heading role and\n // is also a table. For now prioritize the table role.\n if (obj.layout === \"table\") {\n attributes.role = \"table\";\n } else if (obj.layout === \"row\") {\n attributes.role = \"row\";\n } else {\n const parent = obj[$getParent]();\n if (parent.layout === \"row\") {\n if (parent.assist && parent.assist.role === \"TH\") {\n attributes.role = \"columnheader\";\n } else {\n attributes.role = \"cell\";\n }\n }\n }\n}\n\nfunction ariaLabel(obj) {\n if (!obj.assist) {\n return null;\n }\n const assist = obj.assist;\n if (assist.speak && assist.speak[$content] !== \"\") {\n return assist.speak[$content];\n }\n if (assist.toolTip) {\n return assist.toolTip[$content];\n }\n // TODO: support finding the related caption element. See xfa_bug1718037.pdf\n // for an example.\n return null;\n}\n\nfunction valueToHtml(value) {\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n class: [\"xfaRich\"],\n style: Object.create(null),\n },\n children: [\n {\n name: \"span\",\n attributes: {\n style: Object.create(null),\n },\n value,\n },\n ],\n });\n}\n\nfunction setFirstUnsplittable(node) {\n const root = node[$getTemplateRoot]();\n if (root[$extra].firstUnsplittable === null) {\n root[$extra].firstUnsplittable = node;\n root[$extra].noLayoutFailure = true;\n }\n}\n\nfunction unsetFirstUnsplittable(node) {\n const root = node[$getTemplateRoot]();\n if (root[$extra].firstUnsplittable === node) {\n root[$extra].noLayoutFailure = false;\n }\n}\n\nfunction handleBreak(node) {\n if (node[$extra]) {\n return false;\n }\n\n node[$extra] = Object.create(null);\n\n if (node.targetType === \"auto\") {\n return false;\n }\n\n const root = node[$getTemplateRoot]();\n let target = null;\n if (node.target) {\n target = root[$searchNode](node.target, node[$getParent]());\n if (!target) {\n return false;\n }\n target = target[0];\n }\n\n const { currentPageArea, currentContentArea } = root[$extra];\n\n if (node.targetType === \"pageArea\") {\n if (!(target instanceof PageArea)) {\n target = null;\n }\n\n if (node.startNew) {\n node[$extra].target = target || currentPageArea;\n return true;\n } else if (target && target !== currentPageArea) {\n node[$extra].target = target;\n return true;\n }\n\n return false;\n }\n\n if (!(target instanceof ContentArea)) {\n target = null;\n }\n\n const pageArea = target && target[$getParent]();\n\n let index;\n let nextPageArea = pageArea;\n if (node.startNew) {\n // startNew === 1 so we must create a new container (pageArea or\n // contentArea).\n if (target) {\n const contentAreas = pageArea.contentArea.children;\n const indexForCurrent = contentAreas.indexOf(currentContentArea);\n const indexForTarget = contentAreas.indexOf(target);\n if (indexForCurrent !== -1 && indexForCurrent < indexForTarget) {\n // The next container is after the current container so\n // we can stay on the same page.\n nextPageArea = null;\n }\n index = indexForTarget - 1;\n } else {\n index = currentPageArea.contentArea.children.indexOf(currentContentArea);\n }\n } else if (target && target !== currentContentArea) {\n const contentAreas = pageArea.contentArea.children;\n index = contentAreas.indexOf(target) - 1;\n nextPageArea = pageArea === currentPageArea ? null : pageArea;\n } else {\n return false;\n }\n\n node[$extra].target = nextPageArea;\n node[$extra].index = index;\n return true;\n}\n\nfunction handleOverflow(node, extraNode, space) {\n const root = node[$getTemplateRoot]();\n const saved = root[$extra].noLayoutFailure;\n const savedMethod = extraNode[$getSubformParent];\n\n // Replace $getSubformParent to emulate that extraNode is just\n // under node.\n extraNode[$getSubformParent] = () => node;\n\n root[$extra].noLayoutFailure = true;\n const res = extraNode[$toHTML](space);\n node[$addHTML](res.html, res.bbox);\n root[$extra].noLayoutFailure = saved;\n extraNode[$getSubformParent] = savedMethod;\n}\n\nclass AppearanceFilter extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"appearanceFilter\");\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Arc extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"arc\", /* hasChildren = */ true);\n this.circular = getInteger({\n data: attributes.circular,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.hand = getStringOption(attributes.hand, [\"even\", \"left\", \"right\"]);\n this.id = attributes.id || \"\";\n this.startAngle = getFloat({\n data: attributes.startAngle,\n defaultValue: 0,\n validate: x => true,\n });\n this.sweepAngle = getFloat({\n data: attributes.sweepAngle,\n defaultValue: 360,\n validate: x => true,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.edge = null;\n this.fill = null;\n }\n\n [$toHTML]() {\n const edge = this.edge ? this.edge : new Edge({});\n const edgeStyle = edge[$toStyle]();\n const style = Object.create(null);\n if (this.fill && this.fill.presence === \"visible\") {\n Object.assign(style, this.fill[$toStyle]());\n } else {\n style.fill = \"transparent\";\n }\n style.strokeWidth = measureToString(\n edge.presence === \"visible\" ? edge.thickness : 0\n );\n style.stroke = edgeStyle.color;\n let arc;\n const attributes = {\n xmlns: SVG_NS,\n style: {\n width: \"100%\",\n height: \"100%\",\n overflow: \"visible\",\n },\n };\n\n if (this.sweepAngle === 360) {\n arc = {\n name: \"ellipse\",\n attributes: {\n xmlns: SVG_NS,\n cx: \"50%\",\n cy: \"50%\",\n rx: \"50%\",\n ry: \"50%\",\n style,\n },\n };\n } else {\n const startAngle = (this.startAngle * Math.PI) / 180;\n const sweepAngle = (this.sweepAngle * Math.PI) / 180;\n const largeArc = this.sweepAngle > 180 ? 1 : 0;\n const [x1, y1, x2, y2] = [\n 50 * (1 + Math.cos(startAngle)),\n 50 * (1 - Math.sin(startAngle)),\n 50 * (1 + Math.cos(startAngle + sweepAngle)),\n 50 * (1 - Math.sin(startAngle + sweepAngle)),\n ];\n\n arc = {\n name: \"path\",\n attributes: {\n xmlns: SVG_NS,\n d: `M ${x1} ${y1} A 50 50 0 ${largeArc} 0 ${x2} ${y2}`,\n vectorEffect: \"non-scaling-stroke\",\n style,\n },\n };\n\n Object.assign(attributes, {\n viewBox: \"0 0 100 100\",\n preserveAspectRatio: \"none\",\n });\n }\n\n const svg = {\n name: \"svg\",\n children: [arc],\n attributes,\n };\n\n const parent = this[$getParent]()[$getParent]();\n if (hasMargin(parent)) {\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n style: {\n display: \"inline\",\n width: \"100%\",\n height: \"100%\",\n },\n },\n children: [svg],\n });\n }\n\n svg.attributes.style.position = \"absolute\";\n return HTMLResult.success(svg);\n }\n}\n\nclass Area extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"area\", /* hasChildren = */ true);\n this.colSpan = getInteger({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: n => n >= 1 || n === -1,\n });\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.desc = null;\n this.extras = null;\n this.area = new XFAObjectArray();\n this.draw = new XFAObjectArray();\n this.exObject = new XFAObjectArray();\n this.exclGroup = new XFAObjectArray();\n this.field = new XFAObjectArray();\n this.subform = new XFAObjectArray();\n this.subformSet = new XFAObjectArray();\n }\n\n *[$getContainedChildren]() {\n // This function is overriden in order to fake that subforms under\n // this set are in fact under parent subform.\n yield* getContainedChildren(this);\n }\n\n [$isTransparent]() {\n return true;\n }\n\n [$isBindable]() {\n return true;\n }\n\n [$addHTML](html, bbox) {\n const [x, y, w, h] = bbox;\n this[$extra].width = Math.max(this[$extra].width, x + w);\n this[$extra].height = Math.max(this[$extra].height, y + h);\n\n this[$extra].children.push(html);\n }\n\n [$getAvailableSpace]() {\n return this[$extra].availableSpace;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n const style = toStyle(this, \"position\");\n const attributes = {\n style,\n id: this[$uid],\n class: [\"xfaArea\"],\n };\n\n if (isPrintOnly(this)) {\n attributes.class.push(\"xfaPrintOnly\");\n }\n\n if (this.name) {\n attributes.xfaName = this.name;\n }\n\n const children = [];\n this[$extra] = {\n children,\n width: 0,\n height: 0,\n availableSpace,\n };\n\n const result = this[$childrenToHTML]({\n filter: new Set([\n \"area\",\n \"draw\",\n \"field\",\n \"exclGroup\",\n \"subform\",\n \"subformSet\",\n ]),\n include: true,\n });\n\n if (!result.success) {\n if (result.isBreak()) {\n return result;\n }\n // Nothing to propose for the element which doesn't fit the\n // available space.\n delete this[$extra];\n return HTMLResult.FAILURE;\n }\n\n style.width = measureToString(this[$extra].width);\n style.height = measureToString(this[$extra].height);\n\n const html = {\n name: \"div\",\n attributes,\n children,\n };\n\n const bbox = [this.x, this.y, this[$extra].width, this[$extra].height];\n delete this[$extra];\n\n return HTMLResult.success(html, bbox);\n }\n}\n\nclass Assist extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"assist\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.role = attributes.role || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.speak = null;\n this.toolTip = null;\n }\n\n [$toHTML]() {\n return this.toolTip && this.toolTip[$content]\n ? this.toolTip[$content]\n : null;\n }\n}\n\nclass Barcode extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"barcode\", /* hasChildren = */ true);\n this.charEncoding = getKeyword({\n data: attributes.charEncoding\n ? attributes.charEncoding.toLowerCase()\n : \"\",\n defaultValue: \"\",\n validate: k =>\n [\n \"utf-8\",\n \"big-five\",\n \"fontspecific\",\n \"gbk\",\n \"gb-18030\",\n \"gb-2312\",\n \"ksc-5601\",\n \"none\",\n \"shift-jis\",\n \"ucs-2\",\n \"utf-16\",\n ].includes(k) || k.match(/iso-8859-\\d{2}/),\n });\n this.checksum = getStringOption(attributes.checksum, [\n \"none\",\n \"1mod10\",\n \"1mod10_1mod11\",\n \"2mod10\",\n \"auto\",\n ]);\n this.dataColumnCount = getInteger({\n data: attributes.dataColumnCount,\n defaultValue: -1,\n validate: x => x >= 0,\n });\n this.dataLength = getInteger({\n data: attributes.dataLength,\n defaultValue: -1,\n validate: x => x >= 0,\n });\n this.dataPrep = getStringOption(attributes.dataPrep, [\n \"none\",\n \"flateCompress\",\n ]);\n this.dataRowCount = getInteger({\n data: attributes.dataRowCount,\n defaultValue: -1,\n validate: x => x >= 0,\n });\n this.endChar = attributes.endChar || \"\";\n this.errorCorrectionLevel = getInteger({\n data: attributes.errorCorrectionLevel,\n defaultValue: -1,\n validate: x => x >= 0 && x <= 8,\n });\n this.id = attributes.id || \"\";\n this.moduleHeight = getMeasurement(attributes.moduleHeight, \"5mm\");\n this.moduleWidth = getMeasurement(attributes.moduleWidth, \"0.25mm\");\n this.printCheckDigit = getInteger({\n data: attributes.printCheckDigit,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.rowColumnRatio = getRatio(attributes.rowColumnRatio);\n this.startChar = attributes.startChar || \"\";\n this.textLocation = getStringOption(attributes.textLocation, [\n \"below\",\n \"above\",\n \"aboveEmbedded\",\n \"belowEmbedded\",\n \"none\",\n ]);\n this.truncate = getInteger({\n data: attributes.truncate,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.type = getStringOption(\n attributes.type ? attributes.type.toLowerCase() : \"\",\n [\n \"aztec\",\n \"codabar\",\n \"code2of5industrial\",\n \"code2of5interleaved\",\n \"code2of5matrix\",\n \"code2of5standard\",\n \"code3of9\",\n \"code3of9extended\",\n \"code11\",\n \"code49\",\n \"code93\",\n \"code128\",\n \"code128a\",\n \"code128b\",\n \"code128c\",\n \"code128sscc\",\n \"datamatrix\",\n \"ean8\",\n \"ean8add2\",\n \"ean8add5\",\n \"ean13\",\n \"ean13add2\",\n \"ean13add5\",\n \"ean13pwcd\",\n \"fim\",\n \"logmars\",\n \"maxicode\",\n \"msi\",\n \"pdf417\",\n \"pdf417macro\",\n \"plessey\",\n \"postauscust2\",\n \"postauscust3\",\n \"postausreplypaid\",\n \"postausstandard\",\n \"postukrm4scc\",\n \"postusdpbc\",\n \"postusimb\",\n \"postusstandard\",\n \"postus5zip\",\n \"qrcode\",\n \"rfid\",\n \"rss14\",\n \"rss14expanded\",\n \"rss14limited\",\n \"rss14stacked\",\n \"rss14stackedomni\",\n \"rss14truncated\",\n \"telepen\",\n \"ucc128\",\n \"ucc128random\",\n \"ucc128sscc\",\n \"upca\",\n \"upcaadd2\",\n \"upcaadd5\",\n \"upcapwcd\",\n \"upce\",\n \"upceadd2\",\n \"upceadd5\",\n \"upcean2\",\n \"upcean5\",\n \"upsmaxicode\",\n ]\n );\n this.upsMode = getStringOption(attributes.upsMode, [\n \"usCarrier\",\n \"internationalCarrier\",\n \"secureSymbol\",\n \"standardSymbol\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.wideNarrowRatio = getRatio(attributes.wideNarrowRatio);\n this.encrypt = null;\n this.extras = null;\n }\n}\n\nclass Bind extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"bind\", /* hasChildren = */ true);\n this.match = getStringOption(attributes.match, [\n \"once\",\n \"dataRef\",\n \"global\",\n \"none\",\n ]);\n this.ref = attributes.ref || \"\";\n this.picture = null;\n }\n}\n\nclass BindItems extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"bindItems\");\n this.connection = attributes.connection || \"\";\n this.labelRef = attributes.labelRef || \"\";\n this.ref = attributes.ref || \"\";\n this.valueRef = attributes.valueRef || \"\";\n }\n}\n\nclass Bookend extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"bookend\");\n this.id = attributes.id || \"\";\n this.leader = attributes.leader || \"\";\n this.trailer = attributes.trailer || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass BooleanElement extends Option01 {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"boolean\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(this[$content] === 1 ? \"1\" : \"0\");\n }\n}\n\nclass Border extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"border\", /* hasChildren = */ true);\n this.break = getStringOption(attributes.break, [\"close\", \"open\"]);\n this.hand = getStringOption(attributes.hand, [\"even\", \"left\", \"right\"]);\n this.id = attributes.id || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.corner = new XFAObjectArray(4);\n this.edge = new XFAObjectArray(4);\n this.extras = null;\n this.fill = null;\n this.margin = null;\n }\n\n [$getExtra]() {\n if (!this[$extra]) {\n const edges = this.edge.children.slice();\n if (edges.length < 4) {\n const defaultEdge = edges[edges.length - 1] || new Edge({});\n for (let i = edges.length; i < 4; i++) {\n edges.push(defaultEdge);\n }\n }\n\n const widths = edges.map(edge => edge.thickness);\n const insets = [0, 0, 0, 0];\n if (this.margin) {\n insets[0] = this.margin.topInset;\n insets[1] = this.margin.rightInset;\n insets[2] = this.margin.bottomInset;\n insets[3] = this.margin.leftInset;\n }\n this[$extra] = { widths, insets, edges };\n }\n return this[$extra];\n }\n\n [$toStyle]() {\n // TODO: incomplete (hand).\n const { edges } = this[$getExtra]();\n const edgeStyles = edges.map(node => {\n const style = node[$toStyle]();\n style.color = style.color || \"#000000\";\n return style;\n });\n\n const style = Object.create(null);\n if (this.margin) {\n Object.assign(style, this.margin[$toStyle]());\n }\n\n if (this.fill && this.fill.presence === \"visible\") {\n Object.assign(style, this.fill[$toStyle]());\n }\n\n if (this.corner.children.some(node => node.radius !== 0)) {\n const cornerStyles = this.corner.children.map(node => node[$toStyle]());\n if (cornerStyles.length === 2 || cornerStyles.length === 3) {\n const last = cornerStyles[cornerStyles.length - 1];\n for (let i = cornerStyles.length; i < 4; i++) {\n cornerStyles.push(last);\n }\n }\n\n style.borderRadius = cornerStyles.map(s => s.radius).join(\" \");\n }\n\n switch (this.presence) {\n case \"invisible\":\n case \"hidden\":\n style.borderStyle = \"\";\n break;\n case \"inactive\":\n style.borderStyle = \"none\";\n break;\n default:\n style.borderStyle = edgeStyles.map(s => s.style).join(\" \");\n break;\n }\n\n style.borderWidth = edgeStyles.map(s => s.width).join(\" \");\n style.borderColor = edgeStyles.map(s => s.color).join(\" \");\n\n return style;\n }\n}\n\nclass Break extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"break\", /* hasChildren = */ true);\n this.after = getStringOption(attributes.after, [\n \"auto\",\n \"contentArea\",\n \"pageArea\",\n \"pageEven\",\n \"pageOdd\",\n ]);\n this.afterTarget = attributes.afterTarget || \"\";\n this.before = getStringOption(attributes.before, [\n \"auto\",\n \"contentArea\",\n \"pageArea\",\n \"pageEven\",\n \"pageOdd\",\n ]);\n this.beforeTarget = attributes.beforeTarget || \"\";\n this.bookendLeader = attributes.bookendLeader || \"\";\n this.bookendTrailer = attributes.bookendTrailer || \"\";\n this.id = attributes.id || \"\";\n this.overflowLeader = attributes.overflowLeader || \"\";\n this.overflowTarget = attributes.overflowTarget || \"\";\n this.overflowTrailer = attributes.overflowTrailer || \"\";\n this.startNew = getInteger({\n data: attributes.startNew,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n}\n\nclass BreakAfter extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"breakAfter\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.leader = attributes.leader || \"\";\n this.startNew = getInteger({\n data: attributes.startNew,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.target = attributes.target || \"\";\n this.targetType = getStringOption(attributes.targetType, [\n \"auto\",\n \"contentArea\",\n \"pageArea\",\n ]);\n this.trailer = attributes.trailer || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.script = null;\n }\n}\n\nclass BreakBefore extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"breakBefore\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.leader = attributes.leader || \"\";\n this.startNew = getInteger({\n data: attributes.startNew,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.target = attributes.target || \"\";\n this.targetType = getStringOption(attributes.targetType, [\n \"auto\",\n \"contentArea\",\n \"pageArea\",\n ]);\n this.trailer = attributes.trailer || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.script = null;\n }\n\n [$toHTML](availableSpace) {\n this[$extra] = {};\n return HTMLResult.FAILURE;\n }\n}\n\nclass Button extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"button\", /* hasChildren = */ true);\n this.highlight = getStringOption(attributes.highlight, [\n \"inverted\",\n \"none\",\n \"outline\",\n \"push\",\n ]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: highlight.\n\n const parent = this[$getParent]();\n const grandpa = parent[$getParent]();\n const htmlButton = {\n name: \"button\",\n attributes: {\n id: this[$uid],\n class: [\"xfaButton\"],\n style: {},\n },\n children: [],\n };\n\n for (const event of grandpa.event.children) {\n // if (true) break;\n if (event.activity !== \"click\" || !event.script) {\n continue;\n }\n const jsURL = recoverJsURL(event.script[$content]);\n if (!jsURL) {\n continue;\n }\n const href = fixURL(jsURL.url);\n if (!href) {\n continue;\n }\n\n // we've an url so generate a
\n htmlButton.children.push({\n name: \"a\",\n attributes: {\n id: \"link\" + this[$uid],\n href,\n newWindow: jsURL.newWindow,\n class: [\"xfaLink\"],\n style: {},\n },\n children: [],\n });\n }\n\n return HTMLResult.success(htmlButton);\n }\n}\n\nclass Calculate extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"calculate\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.override = getStringOption(attributes.override, [\n \"disabled\",\n \"error\",\n \"ignore\",\n \"warning\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.message = null;\n this.script = null;\n }\n}\n\nclass Caption extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"caption\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.placement = getStringOption(attributes.placement, [\n \"left\",\n \"bottom\",\n \"inline\",\n \"right\",\n \"top\",\n ]);\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.reserve = Math.ceil(getMeasurement(attributes.reserve));\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.font = null;\n this.margin = null;\n this.para = null;\n this.value = null;\n }\n\n [$setValue](value) {\n _setValue(this, value);\n }\n\n [$getExtra](availableSpace) {\n if (!this[$extra]) {\n let { width, height } = availableSpace;\n switch (this.placement) {\n case \"left\":\n case \"right\":\n case \"inline\":\n width = this.reserve <= 0 ? width : this.reserve;\n break;\n case \"top\":\n case \"bottom\":\n height = this.reserve <= 0 ? height : this.reserve;\n break;\n }\n\n this[$extra] = layoutNode(this, { width, height });\n }\n return this[$extra];\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n if (!this.value) {\n return HTMLResult.EMPTY;\n }\n\n this[$pushPara]();\n const value = this.value[$toHTML](availableSpace).html;\n\n if (!value) {\n this[$popPara]();\n return HTMLResult.EMPTY;\n }\n\n const savedReserve = this.reserve;\n if (this.reserve <= 0) {\n const { w, h } = this[$getExtra](availableSpace);\n switch (this.placement) {\n case \"left\":\n case \"right\":\n case \"inline\":\n this.reserve = w;\n break;\n case \"top\":\n case \"bottom\":\n this.reserve = h;\n break;\n }\n }\n\n const children = [];\n if (typeof value === \"string\") {\n children.push({\n name: \"#text\",\n value,\n });\n } else {\n children.push(value);\n }\n\n const style = toStyle(this, \"font\", \"margin\", \"visibility\");\n switch (this.placement) {\n case \"left\":\n case \"right\":\n if (this.reserve > 0) {\n style.width = measureToString(this.reserve);\n }\n break;\n case \"top\":\n case \"bottom\":\n if (this.reserve > 0) {\n style.height = measureToString(this.reserve);\n }\n break;\n }\n\n setPara(this, null, value);\n this[$popPara]();\n\n this.reserve = savedReserve;\n\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n style,\n class: [\"xfaCaption\"],\n },\n children,\n });\n }\n}\n\nclass Certificate extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"certificate\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Certificates extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"certificates\", /* hasChildren = */ true);\n this.credentialServerPolicy = getStringOption(\n attributes.credentialServerPolicy,\n [\"optional\", \"required\"]\n );\n this.id = attributes.id || \"\";\n this.url = attributes.url || \"\";\n this.urlPolicy = attributes.urlPolicy || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.encryption = null;\n this.issuers = null;\n this.keyUsage = null;\n this.oids = null;\n this.signing = null;\n this.subjectDNs = null;\n }\n}\n\nclass CheckButton extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"checkButton\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.mark = getStringOption(attributes.mark, [\n \"default\",\n \"check\",\n \"circle\",\n \"cross\",\n \"diamond\",\n \"square\",\n \"star\",\n ]);\n this.shape = getStringOption(attributes.shape, [\"square\", \"round\"]);\n this.size = getMeasurement(attributes.size, \"10pt\");\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: border, shape and mark.\n\n const style = toStyle(\"margin\");\n const size = measureToString(this.size);\n\n style.width = style.height = size;\n\n let type;\n let className;\n let groupId;\n const field = this[$getParent]()[$getParent]();\n const items =\n (field.items.children.length &&\n field.items.children[0][$toHTML]().html) ||\n [];\n const exportedValue = {\n on: (items[0] !== undefined ? items[0] : \"on\").toString(),\n off: (items[1] !== undefined ? items[1] : \"off\").toString(),\n };\n\n const value = (field.value && field.value[$text]()) || \"off\";\n const checked = value === exportedValue.on || undefined;\n const container = field[$getSubformParent]();\n const fieldId = field[$uid];\n let dataId;\n\n if (container instanceof ExclGroup) {\n groupId = container[$uid];\n type = \"radio\";\n className = \"xfaRadio\";\n dataId = (container[$data] && container[$data][$uid]) || container[$uid];\n } else {\n type = \"checkbox\";\n className = \"xfaCheckbox\";\n dataId = (field[$data] && field[$data][$uid]) || field[$uid];\n }\n\n const input = {\n name: \"input\",\n attributes: {\n class: [className],\n style,\n fieldId,\n dataId,\n type,\n checked,\n xfaOn: exportedValue.on,\n xfaOff: exportedValue.off,\n \"aria-label\": ariaLabel(field),\n },\n };\n\n if (groupId) {\n input.attributes.name = groupId;\n }\n\n return HTMLResult.success({\n name: \"label\",\n attributes: {\n class: [\"xfaLabel\"],\n },\n children: [input],\n });\n }\n}\n\nclass ChoiceList extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"choiceList\", /* hasChildren = */ true);\n this.commitOn = getStringOption(attributes.commitOn, [\"select\", \"exit\"]);\n this.id = attributes.id || \"\";\n this.open = getStringOption(attributes.open, [\n \"userControl\",\n \"always\",\n \"multiSelect\",\n \"onEntry\",\n ]);\n this.textEntry = getInteger({\n data: attributes.textEntry,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n const style = toStyle(this, \"border\", \"margin\");\n const ui = this[$getParent]();\n const field = ui[$getParent]();\n const fontSize = (field.font && field.font.size) || 10;\n const optionStyle = {\n fontSize: `calc(${fontSize}px * var(--zoom-factor))`,\n };\n const children = [];\n\n if (field.items.children.length > 0) {\n const items = field.items;\n let displayedIndex = 0;\n let saveIndex = 0;\n if (items.children.length === 2) {\n displayedIndex = items.children[0].save;\n saveIndex = 1 - displayedIndex;\n }\n const displayed = items.children[displayedIndex][$toHTML]().html;\n const values = items.children[saveIndex][$toHTML]().html;\n\n let selected = false;\n const value = (field.value && field.value[$text]()) || \"\";\n for (let i = 0, ii = displayed.length; i < ii; i++) {\n const option = {\n name: \"option\",\n attributes: {\n value: values[i] || displayed[i],\n style: optionStyle,\n },\n value: displayed[i],\n };\n if (values[i] === value) {\n option.attributes.selected = selected = true;\n }\n children.push(option);\n }\n\n if (!selected) {\n children.splice(0, 0, {\n name: \"option\",\n attributes: {\n hidden: true,\n selected: true,\n },\n value: \" \",\n });\n }\n }\n\n const selectAttributes = {\n class: [\"xfaSelect\"],\n fieldId: field[$uid],\n dataId: (field[$data] && field[$data][$uid]) || field[$uid],\n style,\n \"aria-label\": ariaLabel(field),\n };\n\n if (this.open === \"multiSelect\") {\n selectAttributes.multiple = true;\n }\n\n return HTMLResult.success({\n name: \"label\",\n attributes: {\n class: [\"xfaLabel\"],\n },\n children: [\n {\n name: \"select\",\n children,\n attributes: selectAttributes,\n },\n ],\n });\n }\n}\n\nclass Color extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"color\", /* hasChildren = */ true);\n this.cSpace = getStringOption(attributes.cSpace, [\"SRGB\"]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.value = attributes.value ? getColor(attributes.value) : \"\";\n this.extras = null;\n }\n\n [$hasSettableValue]() {\n return false;\n }\n\n [$toStyle]() {\n return this.value\n ? Util.makeHexColor(this.value.r, this.value.g, this.value.b)\n : null;\n }\n}\n\nclass Comb extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"comb\");\n this.id = attributes.id || \"\";\n this.numberOfCells = getInteger({\n data: attributes.numberOfCells,\n defaultValue: 0,\n validate: x => x >= 0,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Connect extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"connect\", /* hasChildren = */ true);\n this.connection = attributes.connection || \"\";\n this.id = attributes.id || \"\";\n this.ref = attributes.ref || \"\";\n this.usage = getStringOption(attributes.usage, [\n \"exportAndImport\",\n \"exportOnly\",\n \"importOnly\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.picture = null;\n }\n}\n\nclass ContentArea extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"contentArea\", /* hasChildren = */ true);\n this.h = getMeasurement(attributes.h);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = getMeasurement(attributes.w);\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.desc = null;\n this.extras = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n const left = measureToString(this.x);\n const top = measureToString(this.y);\n\n const style = {\n left,\n top,\n width: measureToString(this.w),\n height: measureToString(this.h),\n };\n\n const classNames = [\"xfaContentarea\"];\n\n if (isPrintOnly(this)) {\n classNames.push(\"xfaPrintOnly\");\n }\n\n return HTMLResult.success({\n name: \"div\",\n children: [],\n attributes: {\n style,\n class: classNames,\n id: this[$uid],\n },\n });\n }\n}\n\nclass Corner extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"corner\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.inverted = getInteger({\n data: attributes.inverted,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.join = getStringOption(attributes.join, [\"square\", \"round\"]);\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.radius = getMeasurement(attributes.radius);\n this.stroke = getStringOption(attributes.stroke, [\n \"solid\",\n \"dashDot\",\n \"dashDotDot\",\n \"dashed\",\n \"dotted\",\n \"embossed\",\n \"etched\",\n \"lowered\",\n \"raised\",\n ]);\n this.thickness = getMeasurement(attributes.thickness, \"0.5pt\");\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle]() {\n // In using CSS it's only possible to handle radius\n // (at least with basic css).\n // Is there a real use (interest ?) of all these properties ?\n // Maybe it's possible to implement them using svg and border-image...\n // TODO: implement all the missing properties.\n const style = toStyle(this, \"visibility\");\n style.radius = measureToString(this.join === \"square\" ? 0 : this.radius);\n return style;\n }\n}\n\nclass DateElement extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"date\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n const date = this[$content].trim();\n this[$content] = date ? new Date(date) : null;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(this[$content] ? this[$content].toString() : \"\");\n }\n}\n\nclass DateTime extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"dateTime\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n const date = this[$content].trim();\n this[$content] = date ? new Date(date) : null;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(this[$content] ? this[$content].toString() : \"\");\n }\n}\n\nclass DateTimeEdit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"dateTimeEdit\", /* hasChildren = */ true);\n this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, [\n \"auto\",\n \"off\",\n \"on\",\n ]);\n this.id = attributes.id || \"\";\n this.picker = getStringOption(attributes.picker, [\"host\", \"none\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.comb = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n // When the picker is host we should use type=date for the input\n // but we need to put the buttons outside the text-field.\n const style = toStyle(this, \"border\", \"font\", \"margin\");\n const field = this[$getParent]()[$getParent]();\n const html = {\n name: \"input\",\n attributes: {\n type: \"text\",\n fieldId: field[$uid],\n dataId: (field[$data] && field[$data][$uid]) || field[$uid],\n class: [\"xfaTextfield\"],\n style,\n \"aria-label\": ariaLabel(field),\n },\n };\n\n return HTMLResult.success({\n name: \"label\",\n attributes: {\n class: [\"xfaLabel\"],\n },\n children: [html],\n });\n }\n}\n\nclass Decimal extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"decimal\");\n this.fracDigits = getInteger({\n data: attributes.fracDigits,\n defaultValue: 2,\n validate: x => true,\n });\n this.id = attributes.id || \"\";\n this.leadDigits = getInteger({\n data: attributes.leadDigits,\n defaultValue: -1,\n validate: x => true,\n });\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n const number = parseFloat(this[$content].trim());\n this[$content] = isNaN(number) ? null : number;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(\n this[$content] !== null ? this[$content].toString() : \"\"\n );\n }\n}\n\nclass DefaultUi extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"defaultUi\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n}\n\nclass Desc extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"desc\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.boolean = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.time = new XFAObjectArray();\n }\n}\n\nclass DigestMethod extends OptionObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"digestMethod\", [\n \"\",\n \"SHA1\",\n \"SHA256\",\n \"SHA512\",\n \"RIPEMD160\",\n ]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass DigestMethods extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"digestMethods\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.digestMethod = new XFAObjectArray();\n }\n}\n\nclass Draw extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"draw\", /* hasChildren = */ true);\n this.anchorType = getStringOption(attributes.anchorType, [\n \"topLeft\",\n \"bottomCenter\",\n \"bottomLeft\",\n \"bottomRight\",\n \"middleCenter\",\n \"middleLeft\",\n \"middleRight\",\n \"topCenter\",\n \"topRight\",\n ]);\n this.colSpan = getInteger({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: n => n >= 1 || n === -1,\n });\n this.h = attributes.h ? getMeasurement(attributes.h) : \"\";\n this.hAlign = getStringOption(attributes.hAlign, [\n \"left\",\n \"center\",\n \"justify\",\n \"justifyAll\",\n \"radix\",\n \"right\",\n ]);\n this.id = attributes.id || \"\";\n this.locale = attributes.locale || \"\";\n this.maxH = getMeasurement(attributes.maxH, \"0pt\");\n this.maxW = getMeasurement(attributes.maxW, \"0pt\");\n this.minH = getMeasurement(attributes.minH, \"0pt\");\n this.minW = getMeasurement(attributes.minW, \"0pt\");\n this.name = attributes.name || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.rotate = getInteger({\n data: attributes.rotate,\n defaultValue: 0,\n validate: x => x % 90 === 0,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = attributes.w ? getMeasurement(attributes.w) : \"\";\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.assist = null;\n this.border = null;\n this.caption = null;\n this.desc = null;\n this.extras = null;\n this.font = null;\n this.keep = null;\n this.margin = null;\n this.para = null;\n this.traversal = null;\n this.ui = null;\n this.value = null;\n this.setProperty = new XFAObjectArray();\n }\n\n [$setValue](value) {\n _setValue(this, value);\n }\n\n [$toHTML](availableSpace) {\n setTabIndex(this);\n\n if (this.presence === \"hidden\" || this.presence === \"inactive\") {\n return HTMLResult.EMPTY;\n }\n\n fixDimensions(this);\n this[$pushPara]();\n\n // If at least one dimension is missing and we've a text\n // then we can guess it in laying out the text.\n const savedW = this.w;\n const savedH = this.h;\n const { w, h, isBroken } = layoutNode(this, availableSpace);\n if (w && this.w === \"\") {\n // If the parent layout is lr-tb with a w=100 and we already have a child\n // which takes 90 on the current line.\n // If we have a text with a length (in px) equal to 100 then it'll be\n // splitted into almost 10 chunks: so it won't be nice.\n // So if we've potentially more width to provide in some parent containers\n // let's increase it to give a chance to have a better rendering.\n if (isBroken && this[$getSubformParent]()[$isThereMoreWidth]()) {\n this[$popPara]();\n return HTMLResult.FAILURE;\n }\n\n this.w = w;\n }\n if (h && this.h === \"\") {\n this.h = h;\n }\n\n setFirstUnsplittable(this);\n if (!checkDimensions(this, availableSpace)) {\n this.w = savedW;\n this.h = savedH;\n this[$popPara]();\n return HTMLResult.FAILURE;\n }\n unsetFirstUnsplittable(this);\n\n const style = toStyle(\n this,\n \"font\",\n \"hAlign\",\n \"dimensions\",\n \"position\",\n \"presence\",\n \"rotate\",\n \"anchorType\",\n \"border\",\n \"margin\"\n );\n\n setMinMaxDimensions(this, style);\n\n if (style.margin) {\n style.padding = style.margin;\n delete style.margin;\n }\n\n const classNames = [\"xfaDraw\"];\n if (this.font) {\n classNames.push(\"xfaFont\");\n }\n if (isPrintOnly(this)) {\n classNames.push(\"xfaPrintOnly\");\n }\n\n const attributes = {\n style,\n id: this[$uid],\n class: classNames,\n };\n\n if (this.name) {\n attributes.xfaName = this.name;\n }\n\n const html = {\n name: \"div\",\n attributes,\n children: [],\n };\n\n applyAssist(this, attributes);\n\n const bbox = computeBbox(this, html, availableSpace);\n\n const value = this.value ? this.value[$toHTML](availableSpace).html : null;\n if (value === null) {\n this.w = savedW;\n this.h = savedH;\n this[$popPara]();\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n\n html.children.push(value);\n setPara(this, style, value);\n\n this.w = savedW;\n this.h = savedH;\n\n this[$popPara]();\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n}\n\nclass Edge extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"edge\", /* hasChildren = */ true);\n this.cap = getStringOption(attributes.cap, [\"square\", \"butt\", \"round\"]);\n this.id = attributes.id || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.stroke = getStringOption(attributes.stroke, [\n \"solid\",\n \"dashDot\",\n \"dashDotDot\",\n \"dashed\",\n \"dotted\",\n \"embossed\",\n \"etched\",\n \"lowered\",\n \"raised\",\n ]);\n this.thickness = getMeasurement(attributes.thickness, \"0.5pt\");\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle]() {\n // TODO: dashDot & dashDotDot.\n const style = toStyle(this, \"visibility\");\n Object.assign(style, {\n linecap: this.cap,\n width: measureToString(this.thickness),\n color: this.color ? this.color[$toStyle]() : \"#000000\",\n style: \"\",\n });\n\n if (this.presence !== \"visible\") {\n style.style = \"none\";\n } else {\n switch (this.stroke) {\n case \"solid\":\n style.style = \"solid\";\n break;\n case \"dashDot\":\n style.style = \"dashed\";\n break;\n case \"dashDotDot\":\n style.style = \"dashed\";\n break;\n case \"dashed\":\n style.style = \"dashed\";\n break;\n case \"dotted\":\n style.style = \"dotted\";\n break;\n case \"embossed\":\n style.style = \"ridge\";\n break;\n case \"etched\":\n style.style = \"groove\";\n break;\n case \"lowered\":\n style.style = \"inset\";\n break;\n case \"raised\":\n style.style = \"outset\";\n break;\n }\n }\n return style;\n }\n}\n\nclass Encoding extends OptionObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encoding\", [\n \"adbe.x509.rsa_sha1\",\n \"adbe.pkcs7.detached\",\n \"adbe.pkcs7.sha1\",\n ]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Encodings extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encodings\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.encoding = new XFAObjectArray();\n }\n}\n\nclass Encrypt extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encrypt\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.certificate = null;\n }\n}\n\nclass EncryptData extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encryptData\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.operation = getStringOption(attributes.operation, [\n \"encrypt\",\n \"decrypt\",\n ]);\n this.target = attributes.target || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.filter = null;\n this.manifest = null;\n }\n}\n\nclass Encryption extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encryption\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.certificate = new XFAObjectArray();\n }\n}\n\nclass EncryptionMethod extends OptionObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encryptionMethod\", [\n \"\",\n \"AES256-CBC\",\n \"TRIPLEDES-CBC\",\n \"AES128-CBC\",\n \"AES192-CBC\",\n ]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass EncryptionMethods extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encryptionMethods\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.encryptionMethod = new XFAObjectArray();\n }\n}\n\nclass Event extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"event\", /* hasChildren = */ true);\n this.activity = getStringOption(attributes.activity, [\n \"click\",\n \"change\",\n \"docClose\",\n \"docReady\",\n \"enter\",\n \"exit\",\n \"full\",\n \"indexChange\",\n \"initialize\",\n \"mouseDown\",\n \"mouseEnter\",\n \"mouseExit\",\n \"mouseUp\",\n \"postExecute\",\n \"postOpen\",\n \"postPrint\",\n \"postSave\",\n \"postSign\",\n \"postSubmit\",\n \"preExecute\",\n \"preOpen\",\n \"prePrint\",\n \"preSave\",\n \"preSign\",\n \"preSubmit\",\n \"ready\",\n \"validationState\",\n ]);\n this.id = attributes.id || \"\";\n this.listen = getStringOption(attributes.listen, [\n \"refOnly\",\n \"refAndDescendents\",\n ]);\n this.name = attributes.name || \"\";\n this.ref = attributes.ref || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n\n // One-of properties\n this.encryptData = null;\n this.execute = null;\n this.script = null;\n this.signData = null;\n this.submit = null;\n }\n}\n\nclass ExData extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"exData\");\n this.contentType = attributes.contentType || \"\";\n this.href = attributes.href || \"\";\n this.id = attributes.id || \"\";\n this.maxLength = getInteger({\n data: attributes.maxLength,\n defaultValue: -1,\n validate: x => x >= -1,\n });\n this.name = attributes.name || \"\";\n this.rid = attributes.rid || \"\";\n this.transferEncoding = getStringOption(attributes.transferEncoding, [\n \"none\",\n \"base64\",\n \"package\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$isCDATAXml]() {\n return this.contentType === \"text/html\";\n }\n\n [$onChild](child) {\n if (\n this.contentType === \"text/html\" &&\n child[$namespaceId] === NamespaceIds.xhtml.id\n ) {\n this[$content] = child;\n return true;\n }\n\n if (this.contentType === \"text/xml\") {\n this[$content] = child;\n return true;\n }\n\n return false;\n }\n\n [$toHTML](availableSpace) {\n if (this.contentType !== \"text/html\" || !this[$content]) {\n // TODO: fix other cases.\n return HTMLResult.EMPTY;\n }\n\n return this[$content][$toHTML](availableSpace);\n }\n}\n\nclass ExObject extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"exObject\", /* hasChildren = */ true);\n this.archive = attributes.archive || \"\";\n this.classId = attributes.classId || \"\";\n this.codeBase = attributes.codeBase || \"\";\n this.codeType = attributes.codeType || \"\";\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.boolean = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.exObject = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.time = new XFAObjectArray();\n }\n}\n\nclass ExclGroup extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"exclGroup\", /* hasChildren = */ true);\n this.access = getStringOption(attributes.access, [\n \"open\",\n \"nonInteractive\",\n \"protected\",\n \"readOnly\",\n ]);\n this.accessKey = attributes.accessKey || \"\";\n this.anchorType = getStringOption(attributes.anchorType, [\n \"topLeft\",\n \"bottomCenter\",\n \"bottomLeft\",\n \"bottomRight\",\n \"middleCenter\",\n \"middleLeft\",\n \"middleRight\",\n \"topCenter\",\n \"topRight\",\n ]);\n this.colSpan = getInteger({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: n => n >= 1 || n === -1,\n });\n this.h = attributes.h ? getMeasurement(attributes.h) : \"\";\n this.hAlign = getStringOption(attributes.hAlign, [\n \"left\",\n \"center\",\n \"justify\",\n \"justifyAll\",\n \"radix\",\n \"right\",\n ]);\n this.id = attributes.id || \"\";\n this.layout = getStringOption(attributes.layout, [\n \"position\",\n \"lr-tb\",\n \"rl-row\",\n \"rl-tb\",\n \"row\",\n \"table\",\n \"tb\",\n ]);\n this.maxH = getMeasurement(attributes.maxH, \"0pt\");\n this.maxW = getMeasurement(attributes.maxW, \"0pt\");\n this.minH = getMeasurement(attributes.minH, \"0pt\");\n this.minW = getMeasurement(attributes.minW, \"0pt\");\n this.name = attributes.name || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = attributes.w ? getMeasurement(attributes.w) : \"\";\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.assist = null;\n this.bind = null;\n this.border = null;\n this.calculate = null;\n this.caption = null;\n this.desc = null;\n this.extras = null;\n this.margin = null;\n this.para = null;\n this.traversal = null;\n this.validate = null;\n this.connect = new XFAObjectArray();\n this.event = new XFAObjectArray();\n this.field = new XFAObjectArray();\n this.setProperty = new XFAObjectArray();\n }\n\n [$isBindable]() {\n return true;\n }\n\n [$hasSettableValue]() {\n return true;\n }\n\n [$setValue](value) {\n for (const field of this.field.children) {\n if (!field.value) {\n const nodeValue = new Value({});\n field[$appendChild](nodeValue);\n field.value = nodeValue;\n }\n\n field.value[$setValue](value);\n }\n }\n\n [$isThereMoreWidth]() {\n return (\n (this.layout.endsWith(\"-tb\") &&\n this[$extra].attempt === 0 &&\n this[$extra].numberInLine > 0) ||\n this[$getParent]()[$isThereMoreWidth]()\n );\n }\n\n [$isSplittable]() {\n // We cannot cache the result here because the contentArea\n // can change.\n const parent = this[$getSubformParent]();\n if (!parent[$isSplittable]()) {\n return false;\n }\n\n if (this[$extra]._isSplittable !== undefined) {\n return this[$extra]._isSplittable;\n }\n\n if (this.layout === \"position\" || this.layout.includes(\"row\")) {\n this[$extra]._isSplittable = false;\n return false;\n }\n\n if (\n parent.layout &&\n parent.layout.endsWith(\"-tb\") &&\n parent[$extra].numberInLine !== 0\n ) {\n // See comment in Subform::[$isSplittable] for an explanation.\n return false;\n }\n\n this[$extra]._isSplittable = true;\n return true;\n }\n\n [$flushHTML]() {\n return flushHTML(this);\n }\n\n [$addHTML](html, bbox) {\n addHTML(this, html, bbox);\n }\n\n [$getAvailableSpace]() {\n return getAvailableSpace(this);\n }\n\n [$toHTML](availableSpace) {\n setTabIndex(this);\n if (\n this.presence === \"hidden\" ||\n this.presence === \"inactive\" ||\n this.h === 0 ||\n this.w === 0\n ) {\n return HTMLResult.EMPTY;\n }\n\n fixDimensions(this);\n\n const children = [];\n const attributes = {\n id: this[$uid],\n class: [],\n };\n\n setAccess(this, attributes.class);\n\n if (!this[$extra]) {\n this[$extra] = Object.create(null);\n }\n\n Object.assign(this[$extra], {\n children,\n attributes,\n attempt: 0,\n line: null,\n numberInLine: 0,\n availableSpace: {\n width: Math.min(this.w || Infinity, availableSpace.width),\n height: Math.min(this.h || Infinity, availableSpace.height),\n },\n width: 0,\n height: 0,\n prevHeight: 0,\n currentWidth: 0,\n });\n\n const isSplittable = this[$isSplittable]();\n if (!isSplittable) {\n setFirstUnsplittable(this);\n }\n\n if (!checkDimensions(this, availableSpace)) {\n return HTMLResult.FAILURE;\n }\n const filter = new Set([\"field\"]);\n\n if (this.layout.includes(\"row\")) {\n const columnWidths = this[$getSubformParent]().columnWidths;\n if (Array.isArray(columnWidths) && columnWidths.length > 0) {\n this[$extra].columnWidths = columnWidths;\n this[$extra].currentColumn = 0;\n }\n }\n\n const style = toStyle(\n this,\n \"anchorType\",\n \"dimensions\",\n \"position\",\n \"presence\",\n \"border\",\n \"margin\",\n \"hAlign\"\n );\n const classNames = [\"xfaExclgroup\"];\n const cl = layoutClass(this);\n if (cl) {\n classNames.push(cl);\n }\n\n if (isPrintOnly(this)) {\n classNames.push(\"xfaPrintOnly\");\n }\n\n attributes.style = style;\n attributes.class = classNames;\n\n if (this.name) {\n attributes.xfaName = this.name;\n }\n\n this[$pushPara]();\n const isLrTb = this.layout === \"lr-tb\" || this.layout === \"rl-tb\";\n const maxRun = isLrTb ? MAX_ATTEMPTS_FOR_LRTB_LAYOUT : 1;\n for (; this[$extra].attempt < maxRun; this[$extra].attempt++) {\n if (isLrTb && this[$extra].attempt === MAX_ATTEMPTS_FOR_LRTB_LAYOUT - 1) {\n // If the layout is lr-tb then having attempt equals to\n // MAX_ATTEMPTS_FOR_LRTB_LAYOUT-1 means that we're trying to layout\n // on the next line so this on is empty.\n this[$extra].numberInLine = 0;\n }\n const result = this[$childrenToHTML]({\n filter,\n include: true,\n });\n if (result.success) {\n break;\n }\n if (result.isBreak()) {\n this[$popPara]();\n return result;\n }\n if (\n isLrTb &&\n this[$extra].attempt === 0 &&\n this[$extra].numberInLine === 0 &&\n !this[$getTemplateRoot]()[$extra].noLayoutFailure\n ) {\n // See comment in Subform::[$toHTML].\n this[$extra].attempt = maxRun;\n break;\n }\n }\n\n this[$popPara]();\n\n if (!isSplittable) {\n unsetFirstUnsplittable(this);\n }\n\n if (this[$extra].attempt === maxRun) {\n if (!isSplittable) {\n delete this[$extra];\n }\n return HTMLResult.FAILURE;\n }\n\n let marginH = 0;\n let marginV = 0;\n if (this.margin) {\n marginH = this.margin.leftInset + this.margin.rightInset;\n marginV = this.margin.topInset + this.margin.bottomInset;\n }\n\n const width = Math.max(this[$extra].width + marginH, this.w || 0);\n const height = Math.max(this[$extra].height + marginV, this.h || 0);\n const bbox = [this.x, this.y, width, height];\n\n if (this.w === \"\") {\n style.width = measureToString(width);\n }\n if (this.h === \"\") {\n style.height = measureToString(height);\n }\n\n const html = {\n name: \"div\",\n attributes,\n children,\n };\n\n applyAssist(this, attributes);\n\n delete this[$extra];\n\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n}\n\nclass Execute extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"execute\");\n this.connection = attributes.connection || \"\";\n this.executeType = getStringOption(attributes.executeType, [\n \"import\",\n \"remerge\",\n ]);\n this.id = attributes.id || \"\";\n this.runAt = getStringOption(attributes.runAt, [\n \"client\",\n \"both\",\n \"server\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Extras extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"extras\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.boolean = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.extras = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.time = new XFAObjectArray();\n }\n\n // (Spec) The XFA template grammar defines the extras and desc elements,\n // which can be used to add human-readable or machine-readable\n // data to a template.\n}\n\nclass Field extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"field\", /* hasChildren = */ true);\n this.access = getStringOption(attributes.access, [\n \"open\",\n \"nonInteractive\",\n \"protected\",\n \"readOnly\",\n ]);\n this.accessKey = attributes.accessKey || \"\";\n this.anchorType = getStringOption(attributes.anchorType, [\n \"topLeft\",\n \"bottomCenter\",\n \"bottomLeft\",\n \"bottomRight\",\n \"middleCenter\",\n \"middleLeft\",\n \"middleRight\",\n \"topCenter\",\n \"topRight\",\n ]);\n this.colSpan = getInteger({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: n => n >= 1 || n === -1,\n });\n this.h = attributes.h ? getMeasurement(attributes.h) : \"\";\n this.hAlign = getStringOption(attributes.hAlign, [\n \"left\",\n \"center\",\n \"justify\",\n \"justifyAll\",\n \"radix\",\n \"right\",\n ]);\n this.id = attributes.id || \"\";\n this.locale = attributes.locale || \"\";\n this.maxH = getMeasurement(attributes.maxH, \"0pt\");\n this.maxW = getMeasurement(attributes.maxW, \"0pt\");\n this.minH = getMeasurement(attributes.minH, \"0pt\");\n this.minW = getMeasurement(attributes.minW, \"0pt\");\n this.name = attributes.name || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.rotate = getInteger({\n data: attributes.rotate,\n defaultValue: 0,\n validate: x => x % 90 === 0,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = attributes.w ? getMeasurement(attributes.w) : \"\";\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.assist = null;\n this.bind = null;\n this.border = null;\n this.calculate = null;\n this.caption = null;\n this.desc = null;\n this.extras = null;\n this.font = null;\n this.format = null;\n // For a choice list, one list is used to have display entries\n // and the other for the exported values\n this.items = new XFAObjectArray(2);\n this.keep = null;\n this.margin = null;\n this.para = null;\n this.traversal = null;\n this.ui = null;\n this.validate = null;\n this.value = null;\n this.bindItems = new XFAObjectArray();\n this.connect = new XFAObjectArray();\n this.event = new XFAObjectArray();\n this.setProperty = new XFAObjectArray();\n }\n\n [$isBindable]() {\n return true;\n }\n\n [$setValue](value) {\n _setValue(this, value);\n }\n\n [$toHTML](availableSpace) {\n setTabIndex(this);\n\n if (!this.ui) {\n // It's allowed to not have an ui, specs say:\n // If the UI element contains no children or is not present,\n // the application chooses a default user interface for the\n // container, based on the type of the container's content.\n\n this.ui = new Ui({});\n this.ui[$globalData] = this[$globalData];\n this[$appendChild](this.ui);\n let node;\n\n // The items element can have 2 element max and\n // according to the items specs it's likely a good\n // way to guess the correct ui type.\n switch (this.items.children.length) {\n case 0:\n node = new TextEdit({});\n this.ui.textEdit = node;\n break;\n case 1:\n node = new CheckButton({});\n this.ui.checkButton = node;\n break;\n case 2:\n node = new ChoiceList({});\n this.ui.choiceList = node;\n break;\n }\n this.ui[$appendChild](node);\n }\n\n if (\n !this.ui ||\n this.presence === \"hidden\" ||\n this.presence === \"inactive\" ||\n this.h === 0 ||\n this.w === 0\n ) {\n return HTMLResult.EMPTY;\n }\n\n if (this.caption) {\n // Maybe we already tried to layout this field with\n // another availableSpace, so to avoid to use the cached\n // value just delete it.\n delete this.caption[$extra];\n }\n\n this[$pushPara]();\n\n const caption = this.caption\n ? this.caption[$toHTML](availableSpace).html\n : null;\n const savedW = this.w;\n const savedH = this.h;\n let marginH = 0;\n let marginV = 0;\n if (this.margin) {\n marginH = this.margin.leftInset + this.margin.rightInset;\n marginV = this.margin.topInset + this.margin.bottomInset;\n }\n\n let borderDims = null;\n if (this.w === \"\" || this.h === \"\") {\n let width = null;\n let height = null;\n\n let uiW = 0;\n let uiH = 0;\n if (this.ui.checkButton) {\n uiW = uiH = this.ui.checkButton.size;\n } else {\n const { w, h } = layoutNode(this, availableSpace);\n if (w !== null) {\n uiW = w;\n uiH = h;\n } else {\n uiH = getMetrics(this.font, /* real = */ true).lineNoGap;\n }\n }\n\n borderDims = getBorderDims(this.ui[$getExtra]());\n uiW += borderDims.w;\n uiH += borderDims.h;\n\n if (this.caption) {\n const { w, h, isBroken } = this.caption[$getExtra](availableSpace);\n // See comment in Draw::[$toHTML] to have an explanation\n // about this line.\n if (isBroken && this[$getSubformParent]()[$isThereMoreWidth]()) {\n this[$popPara]();\n return HTMLResult.FAILURE;\n }\n\n width = w;\n height = h;\n\n switch (this.caption.placement) {\n case \"left\":\n case \"right\":\n case \"inline\":\n width += uiW;\n break;\n case \"top\":\n case \"bottom\":\n height += uiH;\n break;\n }\n } else {\n width = uiW;\n height = uiH;\n }\n\n if (width && this.w === \"\") {\n width += marginH;\n this.w = Math.min(\n this.maxW <= 0 ? Infinity : this.maxW,\n this.minW + 1 < width ? width : this.minW\n );\n }\n\n if (height && this.h === \"\") {\n height += marginV;\n this.h = Math.min(\n this.maxH <= 0 ? Infinity : this.maxH,\n this.minH + 1 < height ? height : this.minH\n );\n }\n }\n\n this[$popPara]();\n\n fixDimensions(this);\n\n setFirstUnsplittable(this);\n if (!checkDimensions(this, availableSpace)) {\n this.w = savedW;\n this.h = savedH;\n this[$popPara]();\n return HTMLResult.FAILURE;\n }\n unsetFirstUnsplittable(this);\n\n const style = toStyle(\n this,\n \"font\",\n \"dimensions\",\n \"position\",\n \"rotate\",\n \"anchorType\",\n \"presence\",\n \"margin\",\n \"hAlign\"\n );\n\n setMinMaxDimensions(this, style);\n\n const classNames = [\"xfaField\"];\n // If no font, font properties are inherited.\n if (this.font) {\n classNames.push(\"xfaFont\");\n }\n\n if (isPrintOnly(this)) {\n classNames.push(\"xfaPrintOnly\");\n }\n\n const attributes = {\n style,\n id: this[$uid],\n class: classNames,\n };\n\n if (style.margin) {\n style.padding = style.margin;\n delete style.margin;\n }\n\n setAccess(this, classNames);\n\n if (this.name) {\n attributes.xfaName = this.name;\n }\n\n const children = [];\n const html = {\n name: \"div\",\n attributes,\n children,\n };\n\n applyAssist(this, attributes);\n\n const borderStyle = this.border ? this.border[$toStyle]() : null;\n const bbox = computeBbox(this, html, availableSpace);\n const ui = this.ui[$toHTML]().html;\n if (!ui) {\n Object.assign(style, borderStyle);\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n\n if (this[$tabIndex]) {\n if (ui.children && ui.children[0]) {\n ui.children[0].attributes.tabindex = this[$tabIndex];\n } else {\n ui.attributes.tabindex = this[$tabIndex];\n }\n }\n\n if (!ui.attributes.style) {\n ui.attributes.style = Object.create(null);\n }\n\n let aElement = null;\n\n if (this.ui.button) {\n if (ui.children.length === 1) {\n [aElement] = ui.children.splice(0, 1);\n }\n Object.assign(ui.attributes.style, borderStyle);\n } else {\n Object.assign(style, borderStyle);\n }\n\n children.push(ui);\n\n if (this.value) {\n if (this.ui.imageEdit) {\n ui.children.push(this.value[$toHTML]().html);\n } else if (!this.ui.button) {\n let value = \"\";\n if (this.value.exData) {\n value = this.value.exData[$text]();\n } else if (this.value.text) {\n value = this.value.text[$getExtra]();\n } else {\n const htmlValue = this.value[$toHTML]().html;\n if (htmlValue !== null) {\n value = htmlValue.children[0].value;\n }\n }\n if (this.ui.textEdit && this.value.text && this.value.text.maxChars) {\n ui.children[0].attributes.maxLength = this.value.text.maxChars;\n }\n\n if (value) {\n if (this.ui.numericEdit) {\n value = parseFloat(value);\n value = isNaN(value) ? \"\" : value.toString();\n }\n\n if (ui.children[0].name === \"textarea\") {\n ui.children[0].attributes.textContent = value;\n } else {\n ui.children[0].attributes.value = value;\n }\n }\n }\n }\n\n if (!this.ui.imageEdit && ui.children && ui.children[0] && this.h) {\n borderDims = borderDims || getBorderDims(this.ui[$getExtra]());\n\n let captionHeight = 0;\n if (this.caption && [\"top\", \"bottom\"].includes(this.caption.placement)) {\n captionHeight = this.caption.reserve;\n if (captionHeight <= 0) {\n captionHeight = this.caption[$getExtra](availableSpace).h;\n }\n const inputHeight = this.h - captionHeight - marginV - borderDims.h;\n ui.children[0].attributes.style.height = measureToString(inputHeight);\n } else {\n ui.children[0].attributes.style.height = \"100%\";\n }\n }\n\n if (aElement) {\n ui.children.push(aElement);\n }\n\n if (!caption) {\n if (ui.attributes.class) {\n // Even if no caption this class will help to center the ui.\n ui.attributes.class.push(\"xfaLeft\");\n }\n this.w = savedW;\n this.h = savedH;\n\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n\n if (this.ui.button) {\n if (style.padding) {\n delete style.padding;\n }\n if (caption.name === \"div\") {\n caption.name = \"span\";\n }\n ui.children.push(caption);\n return HTMLResult.success(html, bbox);\n } else if (this.ui.checkButton) {\n caption.attributes.class[0] = \"xfaCaptionForCheckButton\";\n }\n\n if (!ui.attributes.class) {\n ui.attributes.class = [];\n }\n\n ui.children.splice(0, 0, caption);\n\n switch (this.caption.placement) {\n case \"left\":\n ui.attributes.class.push(\"xfaLeft\");\n break;\n case \"right\":\n ui.attributes.class.push(\"xfaRight\");\n break;\n case \"top\":\n ui.attributes.class.push(\"xfaTop\");\n break;\n case \"bottom\":\n ui.attributes.class.push(\"xfaBottom\");\n break;\n case \"inline\":\n // TODO;\n ui.attributes.class.push(\"xfaLeft\");\n break;\n }\n\n this.w = savedW;\n this.h = savedH;\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n}\n\nclass Fill extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"fill\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n\n // One-of properties or none\n this.linear = null;\n this.pattern = null;\n this.radial = null;\n this.solid = null;\n this.stipple = null;\n }\n\n [$toStyle]() {\n const parent = this[$getParent]();\n const grandpa = parent[$getParent]();\n const ggrandpa = grandpa[$getParent]();\n const style = Object.create(null);\n\n // Use for color, i.e. #...\n let propName = \"color\";\n\n // Use for non-color, i.e. gradient, radial-gradient...\n let altPropName = propName;\n\n if (parent instanceof Border) {\n propName = \"background-color\";\n altPropName = \"background\";\n if (ggrandpa instanceof Ui) {\n // The default fill color is white.\n style.backgroundColor = \"white\";\n }\n }\n if (parent instanceof Rectangle || parent instanceof Arc) {\n propName = altPropName = \"fill\";\n style.fill = \"white\";\n }\n\n for (const name of Object.getOwnPropertyNames(this)) {\n if (name === \"extras\" || name === \"color\") {\n continue;\n }\n const obj = this[name];\n if (!(obj instanceof XFAObject)) {\n continue;\n }\n\n const color = obj[$toStyle](this.color);\n if (color) {\n style[color.startsWith(\"#\") ? propName : altPropName] = color;\n }\n return style;\n }\n\n if (this.color && this.color.value) {\n const color = this.color[$toStyle]();\n style[color.startsWith(\"#\") ? propName : altPropName] = color;\n }\n\n return style;\n }\n}\n\nclass Filter extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"filter\", /* hasChildren = */ true);\n this.addRevocationInfo = getStringOption(attributes.addRevocationInfo, [\n \"\",\n \"required\",\n \"optional\",\n \"none\",\n ]);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.version = getInteger({\n data: this.version,\n defaultValue: 5,\n validate: x => x >= 1 && x <= 5,\n });\n this.appearanceFilter = null;\n this.certificates = null;\n this.digestMethods = null;\n this.encodings = null;\n this.encryptionMethods = null;\n this.handler = null;\n this.lockDocument = null;\n this.mdp = null;\n this.reasons = null;\n this.timeStamp = null;\n }\n}\n\nclass Float extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"float\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n const number = parseFloat(this[$content].trim());\n this[$content] = isNaN(number) ? null : number;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(\n this[$content] !== null ? this[$content].toString() : \"\"\n );\n }\n}\n\nclass Font extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"font\", /* hasChildren = */ true);\n this.baselineShift = getMeasurement(attributes.baselineShift);\n this.fontHorizontalScale = getFloat({\n data: attributes.fontHorizontalScale,\n defaultValue: 100,\n validate: x => x >= 0,\n });\n this.fontVerticalScale = getFloat({\n data: attributes.fontVerticalScale,\n defaultValue: 100,\n validate: x => x >= 0,\n });\n this.id = attributes.id || \"\";\n this.kerningMode = getStringOption(attributes.kerningMode, [\n \"none\",\n \"pair\",\n ]);\n this.letterSpacing = getMeasurement(attributes.letterSpacing, \"0\");\n this.lineThrough = getInteger({\n data: attributes.lineThrough,\n defaultValue: 0,\n validate: x => x === 1 || x === 2,\n });\n this.lineThroughPeriod = getStringOption(attributes.lineThroughPeriod, [\n \"all\",\n \"word\",\n ]);\n this.overline = getInteger({\n data: attributes.overline,\n defaultValue: 0,\n validate: x => x === 1 || x === 2,\n });\n this.overlinePeriod = getStringOption(attributes.overlinePeriod, [\n \"all\",\n \"word\",\n ]);\n this.posture = getStringOption(attributes.posture, [\"normal\", \"italic\"]);\n this.size = getMeasurement(attributes.size, \"10pt\");\n this.typeface = attributes.typeface || \"Courier\";\n this.underline = getInteger({\n data: attributes.underline,\n defaultValue: 0,\n validate: x => x === 1 || x === 2,\n });\n this.underlinePeriod = getStringOption(attributes.underlinePeriod, [\n \"all\",\n \"word\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.weight = getStringOption(attributes.weight, [\"normal\", \"bold\"]);\n this.extras = null;\n this.fill = null;\n }\n\n [$clean](builder) {\n super[$clean](builder);\n this[$globalData].usedTypefaces.add(this.typeface);\n }\n\n [$toStyle]() {\n const style = toStyle(this, \"fill\");\n const color = style.color;\n if (color) {\n if (color === \"#000000\") {\n // Default font color.\n delete style.color;\n } else if (!color.startsWith(\"#\")) {\n // We've a gradient which is not possible for a font color\n // so use a workaround.\n style.background = color;\n style.backgroundClip = \"text\";\n style.color = \"transparent\";\n }\n }\n\n if (this.baselineShift) {\n style.verticalAlign = measureToString(this.baselineShift);\n }\n\n // TODO: fontHorizontalScale\n // TODO: fontVerticalScale\n\n style.fontKerning = this.kerningMode === \"none\" ? \"none\" : \"normal\";\n style.letterSpacing = measureToString(this.letterSpacing);\n\n if (this.lineThrough !== 0) {\n style.textDecoration = \"line-through\";\n if (this.lineThrough === 2) {\n style.textDecorationStyle = \"double\";\n }\n }\n\n // TODO: lineThroughPeriod\n\n if (this.overline !== 0) {\n style.textDecoration = \"overline\";\n if (this.overline === 2) {\n style.textDecorationStyle = \"double\";\n }\n }\n\n // TODO: overlinePeriod\n\n style.fontStyle = this.posture;\n style.fontSize = measureToString(0.99 * this.size);\n\n setFontFamily(this, this, this[$globalData].fontFinder, style);\n\n if (this.underline !== 0) {\n style.textDecoration = \"underline\";\n if (this.underline === 2) {\n style.textDecorationStyle = \"double\";\n }\n }\n\n // TODO: underlinePeriod\n\n style.fontWeight = this.weight;\n\n return style;\n }\n}\n\nclass Format extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"format\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.picture = null;\n }\n}\n\nclass Handler extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"handler\");\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Hyphenation extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"hyphenation\");\n this.excludeAllCaps = getInteger({\n data: attributes.excludeAllCaps,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.excludeInitialCap = getInteger({\n data: attributes.excludeInitialCap,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.hyphenate = getInteger({\n data: attributes.hyphenate,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.id = attributes.id || \"\";\n this.pushCharacterCount = getInteger({\n data: attributes.pushCharacterCount,\n defaultValue: 3,\n validate: x => x >= 0,\n });\n this.remainCharacterCount = getInteger({\n data: attributes.remainCharacterCount,\n defaultValue: 3,\n validate: x => x >= 0,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.wordCharacterCount = getInteger({\n data: attributes.wordCharacterCount,\n defaultValue: 7,\n validate: x => x >= 0,\n });\n }\n}\n\nclass Image extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"image\");\n this.aspect = getStringOption(attributes.aspect, [\n \"fit\",\n \"actual\",\n \"height\",\n \"none\",\n \"width\",\n ]);\n this.contentType = attributes.contentType || \"\";\n this.href = attributes.href || \"\";\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.transferEncoding = getStringOption(attributes.transferEncoding, [\n \"base64\",\n \"none\",\n \"package\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$toHTML]() {\n if (this.contentType && !MIMES.has(this.contentType.toLowerCase())) {\n return HTMLResult.EMPTY;\n }\n\n let buffer =\n this[$globalData].images && this[$globalData].images.get(this.href);\n if (!buffer && (this.href || !this[$content])) {\n // In general, we don't get remote data and use what we have\n // in the pdf itself, so no picture for non null href.\n return HTMLResult.EMPTY;\n }\n\n if (!buffer && this.transferEncoding === \"base64\") {\n buffer = stringToBytes(atob(this[$content]));\n }\n\n if (!buffer) {\n return HTMLResult.EMPTY;\n }\n\n if (!this.contentType) {\n for (const [header, type] of IMAGES_HEADERS) {\n if (\n buffer.length > header.length &&\n header.every((x, i) => x === buffer[i])\n ) {\n this.contentType = type;\n break;\n }\n }\n if (!this.contentType) {\n return HTMLResult.EMPTY;\n }\n }\n\n // TODO: Firefox doesn't support natively tiff (and tif) format.\n const blob = new Blob([buffer], { type: this.contentType });\n let style;\n switch (this.aspect) {\n case \"fit\":\n case \"actual\":\n // TODO: check what to do with actual.\n // Normally we should return {auto, auto} for it but\n // it implies some wrong rendering (see xfa_bug1716816.pdf).\n break;\n case \"height\":\n style = {\n height: \"100%\",\n objectFit: \"fill\",\n };\n break;\n case \"none\":\n style = {\n width: \"100%\",\n height: \"100%\",\n objectFit: \"fill\",\n };\n break;\n case \"width\":\n style = {\n width: \"100%\",\n objectFit: \"fill\",\n };\n break;\n }\n const parent = this[$getParent]();\n return HTMLResult.success({\n name: \"img\",\n attributes: {\n class: [\"xfaImage\"],\n style,\n src: URL.createObjectURL(blob),\n alt: parent ? ariaLabel(parent[$getParent]()) : null,\n },\n });\n }\n}\n\nclass ImageEdit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"imageEdit\", /* hasChildren = */ true);\n this.data = getStringOption(attributes.data, [\"link\", \"embed\"]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n if (this.data === \"embed\") {\n return HTMLResult.success({\n name: \"div\",\n children: [],\n attributes: {},\n });\n }\n\n return HTMLResult.EMPTY;\n }\n}\n\nclass Integer extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"integer\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n const number = parseInt(this[$content].trim(), 10);\n this[$content] = isNaN(number) ? null : number;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(\n this[$content] !== null ? this[$content].toString() : \"\"\n );\n }\n}\n\nclass Issuers extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"issuers\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.certificate = new XFAObjectArray();\n }\n}\n\nclass Items extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"items\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.ref = attributes.ref || \"\";\n this.save = getInteger({\n data: attributes.save,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.boolean = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.time = new XFAObjectArray();\n }\n\n [$toHTML]() {\n const output = [];\n for (const child of this[$getChildren]()) {\n output.push(child[$text]());\n }\n return HTMLResult.success(output);\n }\n}\n\nclass Keep extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"keep\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n const options = [\"none\", \"contentArea\", \"pageArea\"];\n this.intact = getStringOption(attributes.intact, options);\n this.next = getStringOption(attributes.next, options);\n this.previous = getStringOption(attributes.previous, options);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n}\n\nclass KeyUsage extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"keyUsage\");\n const options = [\"\", \"yes\", \"no\"];\n this.crlSign = getStringOption(attributes.crlSign, options);\n this.dataEncipherment = getStringOption(\n attributes.dataEncipherment,\n options\n );\n this.decipherOnly = getStringOption(attributes.decipherOnly, options);\n this.digitalSignature = getStringOption(\n attributes.digitalSignature,\n options\n );\n this.encipherOnly = getStringOption(attributes.encipherOnly, options);\n this.id = attributes.id || \"\";\n this.keyAgreement = getStringOption(attributes.keyAgreement, options);\n this.keyCertSign = getStringOption(attributes.keyCertSign, options);\n this.keyEncipherment = getStringOption(attributes.keyEncipherment, options);\n this.nonRepudiation = getStringOption(attributes.nonRepudiation, options);\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Line extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"line\", /* hasChildren = */ true);\n this.hand = getStringOption(attributes.hand, [\"even\", \"left\", \"right\"]);\n this.id = attributes.id || \"\";\n this.slope = getStringOption(attributes.slope, [\"\\\\\", \"/\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.edge = null;\n }\n\n [$toHTML]() {\n const parent = this[$getParent]()[$getParent]();\n const edge = this.edge ? this.edge : new Edge({});\n const edgeStyle = edge[$toStyle]();\n const style = Object.create(null);\n const thickness = edge.presence === \"visible\" ? edge.thickness : 0;\n style.strokeWidth = measureToString(thickness);\n style.stroke = edgeStyle.color;\n let x1, y1, x2, y2;\n let width = \"100%\";\n let height = \"100%\";\n\n if (parent.w <= thickness) {\n [x1, y1, x2, y2] = [\"50%\", 0, \"50%\", \"100%\"];\n width = style.strokeWidth;\n } else if (parent.h <= thickness) {\n [x1, y1, x2, y2] = [0, \"50%\", \"100%\", \"50%\"];\n height = style.strokeWidth;\n } else {\n if (this.slope === \"\\\\\") {\n [x1, y1, x2, y2] = [0, 0, \"100%\", \"100%\"];\n } else {\n [x1, y1, x2, y2] = [0, \"100%\", \"100%\", 0];\n }\n }\n\n const line = {\n name: \"line\",\n attributes: {\n xmlns: SVG_NS,\n x1,\n y1,\n x2,\n y2,\n style,\n },\n };\n\n const svg = {\n name: \"svg\",\n children: [line],\n attributes: {\n xmlns: SVG_NS,\n width,\n height,\n style: {\n overflow: \"visible\",\n },\n },\n };\n\n if (hasMargin(parent)) {\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n style: {\n display: \"inline\",\n width: \"100%\",\n height: \"100%\",\n },\n },\n children: [svg],\n });\n }\n\n svg.attributes.style.position = \"absolute\";\n return HTMLResult.success(svg);\n }\n}\n\nclass Linear extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"linear\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\n \"toRight\",\n \"toBottom\",\n \"toLeft\",\n \"toTop\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle](startColor) {\n startColor = startColor ? startColor[$toStyle]() : \"#FFFFFF\";\n const transf = this.type.replace(/([RBLT])/, \" $1\").toLowerCase();\n const endColor = this.color ? this.color[$toStyle]() : \"#000000\";\n return `linear-gradient(${transf}, ${startColor}, ${endColor})`;\n }\n}\n\nclass LockDocument extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"lockDocument\");\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n this[$content] = getStringOption(this[$content], [\"auto\", \"0\", \"1\"]);\n }\n}\n\nclass Manifest extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"manifest\", /* hasChildren = */ true);\n this.action = getStringOption(attributes.action, [\n \"include\",\n \"all\",\n \"exclude\",\n ]);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.ref = new XFAObjectArray();\n }\n}\n\nclass Margin extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"margin\", /* hasChildren = */ true);\n this.bottomInset = getMeasurement(attributes.bottomInset, \"0\");\n this.id = attributes.id || \"\";\n this.leftInset = getMeasurement(attributes.leftInset, \"0\");\n this.rightInset = getMeasurement(attributes.rightInset, \"0\");\n this.topInset = getMeasurement(attributes.topInset, \"0\");\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n\n [$toStyle]() {\n return {\n margin:\n measureToString(this.topInset) +\n \" \" +\n measureToString(this.rightInset) +\n \" \" +\n measureToString(this.bottomInset) +\n \" \" +\n measureToString(this.leftInset),\n };\n }\n}\n\nclass Mdp extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"mdp\");\n this.id = attributes.id || \"\";\n this.permissions = getInteger({\n data: attributes.permissions,\n defaultValue: 2,\n validate: x => x === 1 || x === 3,\n });\n this.signatureType = getStringOption(attributes.signatureType, [\n \"filler\",\n \"author\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Medium extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"medium\");\n this.id = attributes.id || \"\";\n this.imagingBBox = getBBox(attributes.imagingBBox);\n this.long = getMeasurement(attributes.long);\n this.orientation = getStringOption(attributes.orientation, [\n \"portrait\",\n \"landscape\",\n ]);\n this.short = getMeasurement(attributes.short);\n this.stock = attributes.stock || \"\";\n this.trayIn = getStringOption(attributes.trayIn, [\n \"auto\",\n \"delegate\",\n \"pageFront\",\n ]);\n this.trayOut = getStringOption(attributes.trayOut, [\"auto\", \"delegate\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Message extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"message\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.text = new XFAObjectArray();\n }\n}\n\nclass NumericEdit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"numericEdit\", /* hasChildren = */ true);\n this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, [\n \"auto\",\n \"off\",\n \"on\",\n ]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.comb = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n const style = toStyle(this, \"border\", \"font\", \"margin\");\n const field = this[$getParent]()[$getParent]();\n const html = {\n name: \"input\",\n attributes: {\n type: \"text\",\n fieldId: field[$uid],\n dataId: (field[$data] && field[$data][$uid]) || field[$uid],\n class: [\"xfaTextfield\"],\n style,\n \"aria-label\": ariaLabel(field),\n },\n };\n\n return HTMLResult.success({\n name: \"label\",\n attributes: {\n class: [\"xfaLabel\"],\n },\n children: [html],\n });\n }\n}\n\nclass Occur extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"occur\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.initial =\n attributes.initial !== \"\"\n ? getInteger({\n data: attributes.initial,\n defaultValue: \"\",\n validate: x => true,\n })\n : \"\";\n this.max =\n attributes.max !== \"\"\n ? getInteger({\n data: attributes.max,\n defaultValue: 1,\n validate: x => true,\n })\n : \"\";\n this.min =\n attributes.min !== \"\"\n ? getInteger({\n data: attributes.min,\n defaultValue: 1,\n validate: x => true,\n })\n : \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n\n [$clean]() {\n const parent = this[$getParent]();\n const originalMin = this.min;\n\n if (this.min === \"\") {\n this.min =\n parent instanceof PageArea || parent instanceof PageSet ? 0 : 1;\n }\n if (this.max === \"\") {\n if (originalMin === \"\") {\n this.max =\n parent instanceof PageArea || parent instanceof PageSet ? -1 : 1;\n } else {\n this.max = this.min;\n }\n }\n\n if (this.max !== -1 && this.max < this.min) {\n this.max = this.min;\n }\n\n if (this.initial === \"\") {\n this.initial = parent instanceof Template ? 1 : this.min;\n }\n }\n}\n\nclass Oid extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"oid\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Oids extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"oids\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.oid = new XFAObjectArray();\n }\n}\n\nclass Overflow extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"overflow\");\n this.id = attributes.id || \"\";\n this.leader = attributes.leader || \"\";\n this.target = attributes.target || \"\";\n this.trailer = attributes.trailer || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$getExtra]() {\n if (!this[$extra]) {\n const parent = this[$getParent]();\n const root = this[$getTemplateRoot]();\n const target = root[$searchNode](this.target, parent);\n const leader = root[$searchNode](this.leader, parent);\n const trailer = root[$searchNode](this.trailer, parent);\n this[$extra] = {\n target: (target && target[0]) || null,\n leader: (leader && leader[0]) || null,\n trailer: (trailer && trailer[0]) || null,\n addLeader: false,\n addTrailer: false,\n };\n }\n return this[$extra];\n }\n}\n\nclass PageArea extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"pageArea\", /* hasChildren = */ true);\n this.blankOrNotBlank = getStringOption(attributes.blankOrNotBlank, [\n \"any\",\n \"blank\",\n \"notBlank\",\n ]);\n this.id = attributes.id || \"\";\n this.initialNumber = getInteger({\n data: attributes.initialNumber,\n defaultValue: 1,\n validate: x => true,\n });\n this.name = attributes.name || \"\";\n this.numbered = getInteger({\n data: attributes.numbered,\n defaultValue: 1,\n validate: x => true,\n });\n this.oddOrEven = getStringOption(attributes.oddOrEven, [\n \"any\",\n \"even\",\n \"odd\",\n ]);\n this.pagePosition = getStringOption(attributes.pagePosition, [\n \"any\",\n \"first\",\n \"last\",\n \"only\",\n \"rest\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.desc = null;\n this.extras = null;\n this.medium = null;\n this.occur = null;\n this.area = new XFAObjectArray();\n this.contentArea = new XFAObjectArray();\n this.draw = new XFAObjectArray();\n this.exclGroup = new XFAObjectArray();\n this.field = new XFAObjectArray();\n this.subform = new XFAObjectArray();\n }\n\n [$isUsable]() {\n if (!this[$extra]) {\n this[$extra] = {\n numberOfUse: 0,\n };\n return true;\n }\n return (\n !this.occur ||\n this.occur.max === -1 ||\n this[$extra].numberOfUse < this.occur.max\n );\n }\n\n [$cleanPage]() {\n delete this[$extra];\n }\n\n [$getNextPage]() {\n if (!this[$extra]) {\n this[$extra] = {\n numberOfUse: 0,\n };\n }\n\n const parent = this[$getParent]();\n if (parent.relation === \"orderedOccurrence\") {\n if (this[$isUsable]()) {\n this[$extra].numberOfUse += 1;\n return this;\n }\n }\n\n return parent[$getNextPage]();\n }\n\n [$getAvailableSpace]() {\n return this[$extra].space || { width: 0, height: 0 };\n }\n\n [$toHTML]() {\n // TODO: incomplete.\n if (!this[$extra]) {\n this[$extra] = {\n numberOfUse: 1,\n };\n }\n\n const children = [];\n this[$extra].children = children;\n\n const style = Object.create(null);\n if (this.medium && this.medium.short && this.medium.long) {\n style.width = measureToString(this.medium.short);\n style.height = measureToString(this.medium.long);\n this[$extra].space = {\n width: this.medium.short,\n height: this.medium.long,\n };\n if (this.medium.orientation === \"landscape\") {\n const x = style.width;\n style.width = style.height;\n style.height = x;\n this[$extra].space = {\n width: this.medium.long,\n height: this.medium.short,\n };\n }\n } else {\n warn(\"XFA - No medium specified in pageArea: please file a bug.\");\n }\n\n this[$childrenToHTML]({\n filter: new Set([\"area\", \"draw\", \"field\", \"subform\"]),\n include: true,\n });\n\n // contentarea must be the last container to be sure it is\n // on top of the others.\n this[$childrenToHTML]({\n filter: new Set([\"contentArea\"]),\n include: true,\n });\n\n return HTMLResult.success({\n name: \"div\",\n children,\n attributes: {\n class: [\"xfaPage\"],\n id: this[$uid],\n style,\n xfaName: this.name,\n },\n });\n }\n}\n\nclass PageSet extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"pageSet\", /* hasChildren = */ true);\n this.duplexImposition = getStringOption(attributes.duplexImposition, [\n \"longEdge\",\n \"shortEdge\",\n ]);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.relation = getStringOption(attributes.relation, [\n \"orderedOccurrence\",\n \"duplexPaginated\",\n \"simplexPaginated\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.occur = null;\n this.pageArea = new XFAObjectArray();\n this.pageSet = new XFAObjectArray();\n }\n\n [$cleanPage]() {\n for (const page of this.pageArea.children) {\n page[$cleanPage]();\n }\n for (const page of this.pageSet.children) {\n page[$cleanPage]();\n }\n }\n\n [$isUsable]() {\n return (\n !this.occur ||\n this.occur.max === -1 ||\n this[$extra].numberOfUse < this.occur.max\n );\n }\n\n [$getNextPage]() {\n if (!this[$extra]) {\n this[$extra] = {\n numberOfUse: 1,\n pageIndex: -1,\n pageSetIndex: -1,\n };\n }\n\n if (this.relation === \"orderedOccurrence\") {\n if (this[$extra].pageIndex + 1 < this.pageArea.children.length) {\n this[$extra].pageIndex += 1;\n const pageArea = this.pageArea.children[this[$extra].pageIndex];\n return pageArea[$getNextPage]();\n }\n\n if (this[$extra].pageSetIndex + 1 < this.pageSet.children.length) {\n this[$extra].pageSetIndex += 1;\n return this.pageSet.children[this[$extra].pageSetIndex][$getNextPage]();\n }\n\n if (this[$isUsable]()) {\n this[$extra].numberOfUse += 1;\n this[$extra].pageIndex = -1;\n this[$extra].pageSetIndex = -1;\n return this[$getNextPage]();\n }\n\n const parent = this[$getParent]();\n if (parent instanceof PageSet) {\n return parent[$getNextPage]();\n }\n\n this[$cleanPage]();\n return this[$getNextPage]();\n }\n const pageNumber = this[$getTemplateRoot]()[$extra].pageNumber;\n const parity = pageNumber % 2 === 0 ? \"even\" : \"odd\";\n const position = pageNumber === 0 ? \"first\" : \"rest\";\n\n let page = this.pageArea.children.find(\n p => p.oddOrEven === parity && p.pagePosition === position\n );\n if (page) {\n return page;\n }\n\n page = this.pageArea.children.find(\n p => p.oddOrEven === \"any\" && p.pagePosition === position\n );\n if (page) {\n return page;\n }\n\n page = this.pageArea.children.find(\n p => p.oddOrEven === \"any\" && p.pagePosition === \"any\"\n );\n if (page) {\n return page;\n }\n\n return this.pageArea.children[0];\n }\n}\n\nclass Para extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"para\", /* hasChildren = */ true);\n this.hAlign = getStringOption(attributes.hAlign, [\n \"left\",\n \"center\",\n \"justify\",\n \"justifyAll\",\n \"radix\",\n \"right\",\n ]);\n this.id = attributes.id || \"\";\n this.lineHeight = attributes.lineHeight\n ? getMeasurement(attributes.lineHeight, \"0pt\")\n : \"\";\n this.marginLeft = attributes.marginLeft\n ? getMeasurement(attributes.marginLeft, \"0pt\")\n : \"\";\n this.marginRight = attributes.marginRight\n ? getMeasurement(attributes.marginRight, \"0pt\")\n : \"\";\n this.orphans = getInteger({\n data: attributes.orphans,\n defaultValue: 0,\n validate: x => x >= 0,\n });\n this.preserve = attributes.preserve || \"\";\n this.radixOffset = attributes.radixOffset\n ? getMeasurement(attributes.radixOffset, \"0pt\")\n : \"\";\n this.spaceAbove = attributes.spaceAbove\n ? getMeasurement(attributes.spaceAbove, \"0pt\")\n : \"\";\n this.spaceBelow = attributes.spaceBelow\n ? getMeasurement(attributes.spaceBelow, \"0pt\")\n : \"\";\n this.tabDefault = attributes.tabDefault\n ? getMeasurement(this.tabDefault)\n : \"\";\n this.tabStops = (attributes.tabStops || \"\")\n .trim()\n .split(/\\s+/)\n .map((x, i) => (i % 2 === 1 ? getMeasurement(x) : x));\n this.textIndent = attributes.textIndent\n ? getMeasurement(attributes.textIndent, \"0pt\")\n : \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.vAlign = getStringOption(attributes.vAlign, [\n \"top\",\n \"bottom\",\n \"middle\",\n ]);\n this.widows = getInteger({\n data: attributes.widows,\n defaultValue: 0,\n validate: x => x >= 0,\n });\n this.hyphenation = null;\n }\n\n [$toStyle]() {\n const style = toStyle(this, \"hAlign\");\n if (this.marginLeft !== \"\") {\n style.paddingLeft = measureToString(this.marginLeft);\n }\n if (this.marginRight !== \"\") {\n style.paddingight = measureToString(this.marginRight);\n }\n if (this.spaceAbove !== \"\") {\n style.paddingTop = measureToString(this.spaceAbove);\n }\n if (this.spaceBelow !== \"\") {\n style.paddingBottom = measureToString(this.spaceBelow);\n }\n if (this.textIndent !== \"\") {\n style.textIndent = measureToString(this.textIndent);\n fixTextIndent(style);\n }\n\n if (this.lineHeight > 0) {\n style.lineHeight = measureToString(this.lineHeight);\n }\n\n if (this.tabDefault !== \"\") {\n style.tabSize = measureToString(this.tabDefault);\n }\n\n if (this.tabStops.length > 0) {\n // TODO\n }\n\n if (this.hyphenatation) {\n Object.assign(style, this.hyphenatation[$toStyle]());\n }\n\n return style;\n }\n}\n\nclass PasswordEdit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"passwordEdit\", /* hasChildren = */ true);\n this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, [\n \"auto\",\n \"off\",\n \"on\",\n ]);\n this.id = attributes.id || \"\";\n this.passwordChar = attributes.passwordChar || \"*\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.margin = null;\n }\n}\n\nclass Pattern extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"pattern\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\n \"crossHatch\",\n \"crossDiagonal\",\n \"diagonalLeft\",\n \"diagonalRight\",\n \"horizontal\",\n \"vertical\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle](startColor) {\n startColor = startColor ? startColor[$toStyle]() : \"#FFFFFF\";\n const endColor = this.color ? this.color[$toStyle]() : \"#000000\";\n const width = 5;\n const cmd = \"repeating-linear-gradient\";\n const colors = `${startColor},${startColor} ${width}px,${endColor} ${width}px,${endColor} ${\n 2 * width\n }px`;\n switch (this.type) {\n case \"crossHatch\":\n return `${cmd}(to top,${colors}) ${cmd}(to right,${colors})`;\n case \"crossDiagonal\":\n return `${cmd}(45deg,${colors}) ${cmd}(-45deg,${colors})`;\n case \"diagonalLeft\":\n return `${cmd}(45deg,${colors})`;\n case \"diagonalRight\":\n return `${cmd}(-45deg,${colors})`;\n case \"horizontal\":\n return `${cmd}(to top,${colors})`;\n case \"vertical\":\n return `${cmd}(to right,${colors})`;\n }\n\n return \"\";\n }\n}\n\nclass Picture extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"picture\");\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Proto extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"proto\", /* hasChildren = */ true);\n this.appearanceFilter = new XFAObjectArray();\n this.arc = new XFAObjectArray();\n this.area = new XFAObjectArray();\n this.assist = new XFAObjectArray();\n this.barcode = new XFAObjectArray();\n this.bindItems = new XFAObjectArray();\n this.bookend = new XFAObjectArray();\n this.boolean = new XFAObjectArray();\n this.border = new XFAObjectArray();\n this.break = new XFAObjectArray();\n this.breakAfter = new XFAObjectArray();\n this.breakBefore = new XFAObjectArray();\n this.button = new XFAObjectArray();\n this.calculate = new XFAObjectArray();\n this.caption = new XFAObjectArray();\n this.certificate = new XFAObjectArray();\n this.certificates = new XFAObjectArray();\n this.checkButton = new XFAObjectArray();\n this.choiceList = new XFAObjectArray();\n this.color = new XFAObjectArray();\n this.comb = new XFAObjectArray();\n this.connect = new XFAObjectArray();\n this.contentArea = new XFAObjectArray();\n this.corner = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.dateTimeEdit = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.defaultUi = new XFAObjectArray();\n this.desc = new XFAObjectArray();\n this.digestMethod = new XFAObjectArray();\n this.digestMethods = new XFAObjectArray();\n this.draw = new XFAObjectArray();\n this.edge = new XFAObjectArray();\n this.encoding = new XFAObjectArray();\n this.encodings = new XFAObjectArray();\n this.encrypt = new XFAObjectArray();\n this.encryptData = new XFAObjectArray();\n this.encryption = new XFAObjectArray();\n this.encryptionMethod = new XFAObjectArray();\n this.encryptionMethods = new XFAObjectArray();\n this.event = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.exObject = new XFAObjectArray();\n this.exclGroup = new XFAObjectArray();\n this.execute = new XFAObjectArray();\n this.extras = new XFAObjectArray();\n this.field = new XFAObjectArray();\n this.fill = new XFAObjectArray();\n this.filter = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.font = new XFAObjectArray();\n this.format = new XFAObjectArray();\n this.handler = new XFAObjectArray();\n this.hyphenation = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.imageEdit = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.issuers = new XFAObjectArray();\n this.items = new XFAObjectArray();\n this.keep = new XFAObjectArray();\n this.keyUsage = new XFAObjectArray();\n this.line = new XFAObjectArray();\n this.linear = new XFAObjectArray();\n this.lockDocument = new XFAObjectArray();\n this.manifest = new XFAObjectArray();\n this.margin = new XFAObjectArray();\n this.mdp = new XFAObjectArray();\n this.medium = new XFAObjectArray();\n this.message = new XFAObjectArray();\n this.numericEdit = new XFAObjectArray();\n this.occur = new XFAObjectArray();\n this.oid = new XFAObjectArray();\n this.oids = new XFAObjectArray();\n this.overflow = new XFAObjectArray();\n this.pageArea = new XFAObjectArray();\n this.pageSet = new XFAObjectArray();\n this.para = new XFAObjectArray();\n this.passwordEdit = new XFAObjectArray();\n this.pattern = new XFAObjectArray();\n this.picture = new XFAObjectArray();\n this.radial = new XFAObjectArray();\n this.reason = new XFAObjectArray();\n this.reasons = new XFAObjectArray();\n this.rectangle = new XFAObjectArray();\n this.ref = new XFAObjectArray();\n this.script = new XFAObjectArray();\n this.setProperty = new XFAObjectArray();\n this.signData = new XFAObjectArray();\n this.signature = new XFAObjectArray();\n this.signing = new XFAObjectArray();\n this.solid = new XFAObjectArray();\n this.speak = new XFAObjectArray();\n this.stipple = new XFAObjectArray();\n this.subform = new XFAObjectArray();\n this.subformSet = new XFAObjectArray();\n this.subjectDN = new XFAObjectArray();\n this.subjectDNs = new XFAObjectArray();\n this.submit = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.textEdit = new XFAObjectArray();\n this.time = new XFAObjectArray();\n this.timeStamp = new XFAObjectArray();\n this.toolTip = new XFAObjectArray();\n this.traversal = new XFAObjectArray();\n this.traverse = new XFAObjectArray();\n this.ui = new XFAObjectArray();\n this.validate = new XFAObjectArray();\n this.value = new XFAObjectArray();\n this.variables = new XFAObjectArray();\n }\n}\n\nclass Radial extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"radial\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"toEdge\", \"toCenter\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle](startColor) {\n startColor = startColor ? startColor[$toStyle]() : \"#FFFFFF\";\n const endColor = this.color ? this.color[$toStyle]() : \"#000000\";\n const colors =\n this.type === \"toEdge\"\n ? `${startColor},${endColor}`\n : `${endColor},${startColor}`;\n return `radial-gradient(circle at center, ${colors})`;\n }\n}\n\nclass Reason extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"reason\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Reasons extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"reasons\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.reason = new XFAObjectArray();\n }\n}\n\nclass Rectangle extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"rectangle\", /* hasChildren = */ true);\n this.hand = getStringOption(attributes.hand, [\"even\", \"left\", \"right\"]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.corner = new XFAObjectArray(4);\n this.edge = new XFAObjectArray(4);\n this.fill = null;\n }\n\n [$toHTML]() {\n const edge = this.edge.children.length\n ? this.edge.children[0]\n : new Edge({});\n const edgeStyle = edge[$toStyle]();\n const style = Object.create(null);\n if (this.fill && this.fill.presence === \"visible\") {\n Object.assign(style, this.fill[$toStyle]());\n } else {\n style.fill = \"transparent\";\n }\n style.strokeWidth = measureToString(\n edge.presence === \"visible\" ? edge.thickness : 0\n );\n style.stroke = edgeStyle.color;\n\n const corner = this.corner.children.length\n ? this.corner.children[0]\n : new Corner({});\n const cornerStyle = corner[$toStyle]();\n\n const rect = {\n name: \"rect\",\n attributes: {\n xmlns: SVG_NS,\n width: \"100%\",\n height: \"100%\",\n x: 0,\n y: 0,\n rx: cornerStyle.radius,\n ry: cornerStyle.radius,\n style,\n },\n };\n\n const svg = {\n name: \"svg\",\n children: [rect],\n attributes: {\n xmlns: SVG_NS,\n style: {\n overflow: \"visible\",\n },\n width: \"100%\",\n height: \"100%\",\n },\n };\n\n const parent = this[$getParent]()[$getParent]();\n if (hasMargin(parent)) {\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n style: {\n display: \"inline\",\n width: \"100%\",\n height: \"100%\",\n },\n },\n children: [svg],\n });\n }\n\n svg.attributes.style.position = \"absolute\";\n return HTMLResult.success(svg);\n }\n}\n\nclass RefElement extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"ref\");\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Script extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"script\");\n this.binding = attributes.binding || \"\";\n this.contentType = attributes.contentType || \"\";\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.runAt = getStringOption(attributes.runAt, [\n \"client\",\n \"both\",\n \"server\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass SetProperty extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"setProperty\");\n this.connection = attributes.connection || \"\";\n this.ref = attributes.ref || \"\";\n this.target = attributes.target || \"\";\n }\n}\n\nclass SignData extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"signData\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.operation = getStringOption(attributes.operation, [\n \"sign\",\n \"clear\",\n \"verify\",\n ]);\n this.ref = attributes.ref || \"\";\n this.target = attributes.target || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.filter = null;\n this.manifest = null;\n }\n}\n\nclass Signature extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"signature\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"PDF1.3\", \"PDF1.6\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.filter = null;\n this.manifest = null;\n this.margin = null;\n }\n}\n\nclass Signing extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"signing\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.certificate = new XFAObjectArray();\n }\n}\n\nclass Solid extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"solid\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n\n [$toStyle](startColor) {\n return startColor ? startColor[$toStyle]() : \"#FFFFFF\";\n }\n}\n\nclass Speak extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"speak\");\n this.disable = getInteger({\n data: attributes.disable,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.id = attributes.id || \"\";\n this.priority = getStringOption(attributes.priority, [\n \"custom\",\n \"caption\",\n \"name\",\n \"toolTip\",\n ]);\n this.rid = attributes.rid || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Stipple extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"stipple\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.rate = getInteger({\n data: attributes.rate,\n defaultValue: 50,\n validate: x => x >= 0 && x <= 100,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle](bgColor) {\n const alpha = this.rate / 100;\n return Util.makeHexColor(\n Math.round(bgColor.value.r * (1 - alpha) + this.value.r * alpha),\n Math.round(bgColor.value.g * (1 - alpha) + this.value.g * alpha),\n Math.round(bgColor.value.b * (1 - alpha) + this.value.b * alpha)\n );\n }\n}\n\nclass Subform extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"subform\", /* hasChildren = */ true);\n this.access = getStringOption(attributes.access, [\n \"open\",\n \"nonInteractive\",\n \"protected\",\n \"readOnly\",\n ]);\n this.allowMacro = getInteger({\n data: attributes.allowMacro,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.anchorType = getStringOption(attributes.anchorType, [\n \"topLeft\",\n \"bottomCenter\",\n \"bottomLeft\",\n \"bottomRight\",\n \"middleCenter\",\n \"middleLeft\",\n \"middleRight\",\n \"topCenter\",\n \"topRight\",\n ]);\n this.colSpan = getInteger({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: n => n >= 1 || n === -1,\n });\n this.columnWidths = (attributes.columnWidths || \"\")\n .trim()\n .split(/\\s+/)\n .map(x => (x === \"-1\" ? -1 : getMeasurement(x)));\n this.h = attributes.h ? getMeasurement(attributes.h) : \"\";\n this.hAlign = getStringOption(attributes.hAlign, [\n \"left\",\n \"center\",\n \"justify\",\n \"justifyAll\",\n \"radix\",\n \"right\",\n ]);\n this.id = attributes.id || \"\";\n this.layout = getStringOption(attributes.layout, [\n \"position\",\n \"lr-tb\",\n \"rl-row\",\n \"rl-tb\",\n \"row\",\n \"table\",\n \"tb\",\n ]);\n this.locale = attributes.locale || \"\";\n this.maxH = getMeasurement(attributes.maxH, \"0pt\");\n this.maxW = getMeasurement(attributes.maxW, \"0pt\");\n this.mergeMode = getStringOption(attributes.mergeMode, [\n \"consumeData\",\n \"matchTemplate\",\n ]);\n this.minH = getMeasurement(attributes.minH, \"0pt\");\n this.minW = getMeasurement(attributes.minW, \"0pt\");\n this.name = attributes.name || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.restoreState = getStringOption(attributes.restoreState, [\n \"manual\",\n \"auto\",\n ]);\n this.scope = getStringOption(attributes.scope, [\"name\", \"none\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = attributes.w ? getMeasurement(attributes.w) : \"\";\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.assist = null;\n this.bind = null;\n this.bookend = null;\n this.border = null;\n this.break = null;\n this.calculate = null;\n this.desc = null;\n this.extras = null;\n this.keep = null;\n this.margin = null;\n this.occur = null;\n this.overflow = null;\n this.pageSet = null;\n this.para = null;\n this.traversal = null;\n this.validate = null;\n this.variables = null;\n this.area = new XFAObjectArray();\n this.breakAfter = new XFAObjectArray();\n this.breakBefore = new XFAObjectArray();\n this.connect = new XFAObjectArray();\n this.draw = new XFAObjectArray();\n this.event = new XFAObjectArray();\n this.exObject = new XFAObjectArray();\n this.exclGroup = new XFAObjectArray();\n this.field = new XFAObjectArray();\n this.proto = new XFAObjectArray();\n this.setProperty = new XFAObjectArray();\n this.subform = new XFAObjectArray();\n this.subformSet = new XFAObjectArray();\n }\n\n [$getSubformParent]() {\n const parent = this[$getParent]();\n if (parent instanceof SubformSet) {\n return parent[$getSubformParent]();\n }\n return parent;\n }\n\n [$isBindable]() {\n return true;\n }\n\n [$isThereMoreWidth]() {\n return (\n (this.layout.endsWith(\"-tb\") &&\n this[$extra].attempt === 0 &&\n this[$extra].numberInLine > 0) ||\n this[$getParent]()[$isThereMoreWidth]()\n );\n }\n\n *[$getContainedChildren]() {\n // This function is overriden in order to fake that subforms under\n // this set are in fact under parent subform.\n yield* getContainedChildren(this);\n }\n\n [$flushHTML]() {\n return flushHTML(this);\n }\n\n [$addHTML](html, bbox) {\n addHTML(this, html, bbox);\n }\n\n [$getAvailableSpace]() {\n return getAvailableSpace(this);\n }\n\n [$isSplittable]() {\n // We cannot cache the result here because the contentArea\n // can change.\n const parent = this[$getSubformParent]();\n if (!parent[$isSplittable]()) {\n return false;\n }\n\n if (this[$extra]._isSplittable !== undefined) {\n return this[$extra]._isSplittable;\n }\n\n if (this.layout === \"position\" || this.layout.includes(\"row\")) {\n this[$extra]._isSplittable = false;\n return false;\n }\n\n if (this.keep && this.keep.intact !== \"none\") {\n this[$extra]._isSplittable = false;\n return false;\n }\n\n if (\n parent.layout &&\n parent.layout.endsWith(\"-tb\") &&\n parent[$extra].numberInLine !== 0\n ) {\n // If parent can fit in w=100 and there's already an element which takes\n // 90 then we've 10 for this element. Suppose this element has a tb layout\n // and 5 elements have a width of 7 and the 6th has a width of 20:\n // then this element (and all its content) must move on the next line.\n // If this element is splittable then the first 5 children will stay\n // at the end of the line: we don't want that.\n return false;\n }\n\n this[$extra]._isSplittable = true;\n\n return true;\n }\n\n [$toHTML](availableSpace) {\n setTabIndex(this);\n\n if (this.break) {\n // break element is deprecated so plug it on one of its replacement\n // breakBefore or breakAfter.\n if (this.break.after !== \"auto\" || this.break.afterTarget !== \"\") {\n const node = new BreakAfter({\n targetType: this.break.after,\n target: this.break.afterTarget,\n startNew: this.break.startNew.toString(),\n });\n node[$globalData] = this[$globalData];\n this[$appendChild](node);\n this.breakAfter.push(node);\n }\n\n if (this.break.before !== \"auto\" || this.break.beforeTarget !== \"\") {\n const node = new BreakBefore({\n targetType: this.break.before,\n target: this.break.beforeTarget,\n startNew: this.break.startNew.toString(),\n });\n node[$globalData] = this[$globalData];\n this[$appendChild](node);\n this.breakBefore.push(node);\n }\n\n if (this.break.overflowTarget !== \"\") {\n const node = new Overflow({\n target: this.break.overflowTarget,\n leader: this.break.overflowLeader,\n trailer: this.break.overflowTrailer,\n });\n node[$globalData] = this[$globalData];\n this[$appendChild](node);\n this.overflow.push(node);\n }\n\n this[$removeChild](this.break);\n this.break = null;\n }\n\n if (this.presence === \"hidden\" || this.presence === \"inactive\") {\n return HTMLResult.EMPTY;\n }\n\n if (\n this.breakBefore.children.length > 1 ||\n this.breakAfter.children.length > 1\n ) {\n // Specs are always talking about the breakBefore element\n // and it doesn't really make sense to have several ones.\n warn(\n \"XFA - Several breakBefore or breakAfter in subforms: please file a bug.\"\n );\n }\n\n if (this.breakBefore.children.length >= 1) {\n const breakBefore = this.breakBefore.children[0];\n if (handleBreak(breakBefore)) {\n return HTMLResult.breakNode(breakBefore);\n }\n }\n\n if (this[$extra] && this[$extra].afterBreakAfter) {\n return HTMLResult.EMPTY;\n }\n\n // TODO: incomplete.\n fixDimensions(this);\n const children = [];\n const attributes = {\n id: this[$uid],\n class: [],\n };\n\n setAccess(this, attributes.class);\n\n if (!this[$extra]) {\n this[$extra] = Object.create(null);\n }\n\n Object.assign(this[$extra], {\n children,\n line: null,\n attributes,\n attempt: 0,\n numberInLine: 0,\n availableSpace: {\n width: Math.min(this.w || Infinity, availableSpace.width),\n height: Math.min(this.h || Infinity, availableSpace.height),\n },\n width: 0,\n height: 0,\n prevHeight: 0,\n currentWidth: 0,\n });\n\n const root = this[$getTemplateRoot]();\n const savedNoLayoutFailure = root[$extra].noLayoutFailure;\n\n const isSplittable = this[$isSplittable]();\n if (!isSplittable) {\n setFirstUnsplittable(this);\n }\n\n if (!checkDimensions(this, availableSpace)) {\n return HTMLResult.FAILURE;\n }\n\n const filter = new Set([\n \"area\",\n \"draw\",\n \"exclGroup\",\n \"field\",\n \"subform\",\n \"subformSet\",\n ]);\n\n if (this.layout.includes(\"row\")) {\n const columnWidths = this[$getSubformParent]().columnWidths;\n if (Array.isArray(columnWidths) && columnWidths.length > 0) {\n this[$extra].columnWidths = columnWidths;\n this[$extra].currentColumn = 0;\n }\n }\n\n const style = toStyle(\n this,\n \"anchorType\",\n \"dimensions\",\n \"position\",\n \"presence\",\n \"border\",\n \"margin\",\n \"hAlign\"\n );\n const classNames = [\"xfaSubform\"];\n const cl = layoutClass(this);\n if (cl) {\n classNames.push(cl);\n }\n\n attributes.style = style;\n attributes.class = classNames;\n\n if (this.name) {\n attributes.xfaName = this.name;\n }\n\n if (this.overflow) {\n const overflowExtra = this.overflow[$getExtra]();\n if (overflowExtra.addLeader) {\n overflowExtra.addLeader = false;\n handleOverflow(this, overflowExtra.leader, availableSpace);\n }\n }\n\n this[$pushPara]();\n const isLrTb = this.layout === \"lr-tb\" || this.layout === \"rl-tb\";\n const maxRun = isLrTb ? MAX_ATTEMPTS_FOR_LRTB_LAYOUT : 1;\n for (; this[$extra].attempt < maxRun; this[$extra].attempt++) {\n if (isLrTb && this[$extra].attempt === MAX_ATTEMPTS_FOR_LRTB_LAYOUT - 1) {\n // If the layout is lr-tb then having attempt equals to\n // MAX_ATTEMPTS_FOR_LRTB_LAYOUT-1 means that we're trying to layout\n // on the next line so this on is empty.\n this[$extra].numberInLine = 0;\n }\n const result = this[$childrenToHTML]({\n filter,\n include: true,\n });\n if (result.success) {\n break;\n }\n if (result.isBreak()) {\n this[$popPara]();\n return result;\n }\n if (\n isLrTb &&\n this[$extra].attempt === 0 &&\n this[$extra].numberInLine === 0 &&\n !root[$extra].noLayoutFailure\n ) {\n // We're failing to put the first element on the line so no\n // need to test on the next line.\n // The goal is not only to avoid some useless checks but to avoid\n // bugs too: if a descendant managed to put a node and failed\n // on the next one, going to the next step here will imply to\n // visit the descendant again, clear [$extra].children and restart\n // on the failing node, consequently the first node just disappears\n // because it has never been flushed.\n this[$extra].attempt = maxRun;\n break;\n }\n }\n\n this[$popPara]();\n if (!isSplittable) {\n unsetFirstUnsplittable(this);\n }\n root[$extra].noLayoutFailure = savedNoLayoutFailure;\n\n if (this[$extra].attempt === maxRun) {\n if (this.overflow) {\n this[$getTemplateRoot]()[$extra].overflowNode = this.overflow;\n }\n\n if (!isSplittable) {\n // Since a new try will happen in a new container with maybe\n // new dimensions, we invalidate already layed out components.\n delete this[$extra];\n }\n return HTMLResult.FAILURE;\n }\n\n if (this.overflow) {\n const overflowExtra = this.overflow[$getExtra]();\n if (overflowExtra.addTrailer) {\n overflowExtra.addTrailer = false;\n handleOverflow(this, overflowExtra.trailer, availableSpace);\n }\n }\n\n let marginH = 0;\n let marginV = 0;\n if (this.margin) {\n marginH = this.margin.leftInset + this.margin.rightInset;\n marginV = this.margin.topInset + this.margin.bottomInset;\n }\n\n const width = Math.max(this[$extra].width + marginH, this.w || 0);\n const height = Math.max(this[$extra].height + marginV, this.h || 0);\n const bbox = [this.x, this.y, width, height];\n\n if (this.w === \"\") {\n style.width = measureToString(width);\n }\n if (this.h === \"\") {\n style.height = measureToString(height);\n }\n\n if (\n (style.width === \"0px\" || style.height === \"0px\") &&\n children.length === 0\n ) {\n return HTMLResult.EMPTY;\n }\n\n const html = {\n name: \"div\",\n attributes,\n children,\n };\n\n applyAssist(this, attributes);\n\n const result = HTMLResult.success(createWrapper(this, html), bbox);\n\n if (this.breakAfter.children.length >= 1) {\n const breakAfter = this.breakAfter.children[0];\n if (handleBreak(breakAfter)) {\n this[$extra].afterBreakAfter = result;\n return HTMLResult.breakNode(breakAfter);\n }\n }\n\n delete this[$extra];\n\n return result;\n }\n}\n\nclass SubformSet extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"subformSet\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.relation = getStringOption(attributes.relation, [\n \"ordered\",\n \"choice\",\n \"unordered\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.bookend = null;\n this.break = null;\n this.desc = null;\n this.extras = null;\n this.occur = null;\n this.overflow = null;\n this.breakAfter = new XFAObjectArray();\n this.breakBefore = new XFAObjectArray();\n this.subform = new XFAObjectArray();\n this.subformSet = new XFAObjectArray();\n\n // TODO: need to handle break stuff and relation.\n }\n\n *[$getContainedChildren]() {\n // This function is overriden in order to fake that subforms under\n // this set are in fact under parent subform.\n yield* getContainedChildren(this);\n }\n\n [$getSubformParent]() {\n let parent = this[$getParent]();\n while (!(parent instanceof Subform)) {\n parent = parent[$getParent]();\n }\n return parent;\n }\n\n [$isBindable]() {\n return true;\n }\n}\n\nclass SubjectDN extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"subjectDN\");\n this.delimiter = attributes.delimiter || \",\";\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n this[$content] = new Map(\n this[$content].split(this.delimiter).map(kv => {\n kv = kv.split(\"=\", 2);\n kv[0] = kv[0].trim();\n return kv;\n })\n );\n }\n}\n\nclass SubjectDNs extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"subjectDNs\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.subjectDN = new XFAObjectArray();\n }\n}\n\nclass Submit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"submit\", /* hasChildren = */ true);\n this.embedPDF = getInteger({\n data: attributes.embedPDF,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.format = getStringOption(attributes.format, [\n \"xdp\",\n \"formdata\",\n \"pdf\",\n \"urlencoded\",\n \"xfd\",\n \"xml\",\n ]);\n this.id = attributes.id || \"\";\n this.target = attributes.target || \"\";\n this.textEncoding = getKeyword({\n data: attributes.textEncoding\n ? attributes.textEncoding.toLowerCase()\n : \"\",\n defaultValue: \"\",\n validate: k =>\n [\n \"utf-8\",\n \"big-five\",\n \"fontspecific\",\n \"gbk\",\n \"gb-18030\",\n \"gb-2312\",\n \"ksc-5601\",\n \"none\",\n \"shift-jis\",\n \"ucs-2\",\n \"utf-16\",\n ].includes(k) || k.match(/iso-8859-\\d{2}/),\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.xdpContent = attributes.xdpContent || \"\";\n this.encrypt = null;\n this.encryptData = new XFAObjectArray();\n this.signData = new XFAObjectArray();\n }\n}\n\nclass Template extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"template\", /* hasChildren = */ true);\n this.baseProfile = getStringOption(attributes.baseProfile, [\n \"full\",\n \"interactiveForms\",\n ]);\n this.extras = null;\n\n // Spec is unclear:\n // A container element that describes a single subform capable of\n // enclosing other containers.\n // Can we have more than one subform ?\n this.subform = new XFAObjectArray();\n }\n\n [$finalize]() {\n if (this.subform.children.length === 0) {\n warn(\"XFA - No subforms in template node.\");\n }\n if (this.subform.children.length >= 2) {\n warn(\"XFA - Several subforms in template node: please file a bug.\");\n }\n this[$tabIndex] = DEFAULT_TAB_INDEX;\n }\n\n [$isSplittable]() {\n return true;\n }\n\n [$searchNode](expr, container) {\n if (expr.startsWith(\"#\")) {\n // This is an id.\n return [this[$ids].get(expr.slice(1))];\n }\n return searchNode(this, container, expr, true, true);\n }\n\n /**\n * This function is a generator because the conversion into\n * pages is done asynchronously and we want to save the state\n * of the function where we were in the previous iteration.\n */\n *[$toPages]() {\n if (!this.subform.children.length) {\n return HTMLResult.success({\n name: \"div\",\n children: [],\n });\n }\n this[$extra] = {\n overflowNode: null,\n firstUnsplittable: null,\n currentContentArea: null,\n currentPageArea: null,\n noLayoutFailure: false,\n pageNumber: 1,\n pagePosition: \"first\",\n oddOrEven: \"odd\",\n blankOrNotBlank: \"nonBlank\",\n paraStack: [],\n };\n\n const root = this.subform.children[0];\n root.pageSet[$cleanPage]();\n\n const pageAreas = root.pageSet.pageArea.children;\n const mainHtml = {\n name: \"div\",\n children: [],\n };\n\n let pageArea = null;\n let breakBefore = null;\n let breakBeforeTarget = null;\n if (root.breakBefore.children.length >= 1) {\n breakBefore = root.breakBefore.children[0];\n breakBeforeTarget = breakBefore.target;\n } else if (\n root.subform.children.length >= 1 &&\n root.subform.children[0].breakBefore.children.length >= 1\n ) {\n breakBefore = root.subform.children[0].breakBefore.children[0];\n breakBeforeTarget = breakBefore.target;\n } else if (root.break && root.break.beforeTarget) {\n breakBefore = root.break;\n breakBeforeTarget = breakBefore.beforeTarget;\n } else if (\n root.subform.children.length >= 1 &&\n root.subform.children[0].break &&\n root.subform.children[0].break.beforeTarget\n ) {\n breakBefore = root.subform.children[0].break;\n breakBeforeTarget = breakBefore.beforeTarget;\n }\n\n if (breakBefore) {\n const target = this[$searchNode](\n breakBeforeTarget,\n breakBefore[$getParent]()\n );\n if (target instanceof PageArea) {\n pageArea = target;\n // Consume breakBefore.\n breakBefore[$extra] = {};\n }\n }\n\n if (!pageArea) {\n pageArea = pageAreas[0];\n }\n\n pageArea[$extra] = {\n numberOfUse: 1,\n };\n\n const pageAreaParent = pageArea[$getParent]();\n pageAreaParent[$extra] = {\n numberOfUse: 1,\n pageIndex: pageAreaParent.pageArea.children.indexOf(pageArea),\n pageSetIndex: 0,\n };\n\n let targetPageArea;\n let leader = null;\n let trailer = null;\n let hasSomething = true;\n let hasSomethingCounter = 0;\n let startIndex = 0;\n\n while (true) {\n if (!hasSomething) {\n mainHtml.children.pop();\n // Nothing has been added in the previous page\n if (++hasSomethingCounter === MAX_EMPTY_PAGES) {\n warn(\"XFA - Something goes wrong: please file a bug.\");\n return mainHtml;\n }\n } else {\n hasSomethingCounter = 0;\n }\n\n targetPageArea = null;\n this[$extra].currentPageArea = pageArea;\n const page = pageArea[$toHTML]().html;\n mainHtml.children.push(page);\n\n if (leader) {\n this[$extra].noLayoutFailure = true;\n page.children.push(leader[$toHTML](pageArea[$extra].space).html);\n leader = null;\n }\n\n if (trailer) {\n this[$extra].noLayoutFailure = true;\n page.children.push(trailer[$toHTML](pageArea[$extra].space).html);\n trailer = null;\n }\n\n const contentAreas = pageArea.contentArea.children;\n const htmlContentAreas = page.children.filter(node =>\n node.attributes.class.includes(\"xfaContentarea\")\n );\n\n hasSomething = false;\n this[$extra].firstUnsplittable = null;\n this[$extra].noLayoutFailure = false;\n\n const flush = index => {\n const html = root[$flushHTML]();\n if (html) {\n hasSomething =\n hasSomething || (html.children && html.children.length !== 0);\n htmlContentAreas[index].children.push(html);\n }\n };\n\n for (let i = startIndex, ii = contentAreas.length; i < ii; i++) {\n const contentArea = (this[$extra].currentContentArea = contentAreas[i]);\n const space = { width: contentArea.w, height: contentArea.h };\n startIndex = 0;\n\n if (leader) {\n htmlContentAreas[i].children.push(leader[$toHTML](space).html);\n leader = null;\n }\n\n if (trailer) {\n htmlContentAreas[i].children.push(trailer[$toHTML](space).html);\n trailer = null;\n }\n\n const html = root[$toHTML](space);\n if (html.success) {\n if (html.html) {\n hasSomething =\n hasSomething ||\n (html.html.children && html.html.children.length !== 0);\n htmlContentAreas[i].children.push(html.html);\n } else if (!hasSomething && mainHtml.children.length > 1) {\n mainHtml.children.pop();\n }\n return mainHtml;\n }\n\n if (html.isBreak()) {\n const node = html.breakNode;\n flush(i);\n\n if (node.targetType === \"auto\") {\n continue;\n }\n\n if (node.leader) {\n leader = this[$searchNode](node.leader, node[$getParent]());\n leader = leader ? leader[0] : null;\n }\n\n if (node.trailer) {\n trailer = this[$searchNode](node.trailer, node[$getParent]());\n trailer = trailer ? trailer[0] : null;\n }\n\n if (node.targetType === \"pageArea\") {\n targetPageArea = node[$extra].target;\n i = Infinity;\n } else if (!node[$extra].target) {\n // We stay on the same page.\n i = node[$extra].index;\n } else {\n targetPageArea = node[$extra].target;\n startIndex = node[$extra].index + 1;\n i = Infinity;\n }\n\n continue;\n }\n\n if (this[$extra].overflowNode) {\n const node = this[$extra].overflowNode;\n this[$extra].overflowNode = null;\n\n const overflowExtra = node[$getExtra]();\n const target = overflowExtra.target;\n overflowExtra.addLeader = overflowExtra.leader !== null;\n overflowExtra.addTrailer = overflowExtra.trailer !== null;\n\n flush(i);\n\n const currentIndex = i;\n\n i = Infinity;\n if (target instanceof PageArea) {\n // We must stop the contentAreas filling and go to the next page.\n targetPageArea = target;\n } else if (target instanceof ContentArea) {\n const index = contentAreas.findIndex(e => e === target);\n if (index !== -1) {\n if (index > currentIndex) {\n // In the next loop iteration `i` will be incremented, note the\n // `continue` just below, hence we need to subtract one here.\n i = index - 1;\n } else {\n // The targetted contentArea has already been filled\n // so create a new page.\n startIndex = index;\n }\n } else {\n targetPageArea = target[$getParent]();\n startIndex = targetPageArea.contentArea.children.findIndex(\n e => e === target\n );\n }\n }\n continue;\n }\n\n flush(i);\n }\n\n this[$extra].pageNumber += 1;\n if (targetPageArea) {\n if (targetPageArea[$isUsable]()) {\n targetPageArea[$extra].numberOfUse += 1;\n } else {\n targetPageArea = null;\n }\n }\n pageArea = targetPageArea || pageArea[$getNextPage]();\n yield null;\n }\n }\n}\n\nclass Text extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"text\");\n this.id = attributes.id || \"\";\n this.maxChars = getInteger({\n data: attributes.maxChars,\n defaultValue: 0,\n validate: x => x >= 0,\n });\n this.name = attributes.name || \"\";\n this.rid = attributes.rid || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$acceptWhitespace]() {\n return true;\n }\n\n [$onChild](child) {\n if (child[$namespaceId] === NamespaceIds.xhtml.id) {\n this[$content] = child;\n return true;\n }\n warn(`XFA - Invalid content in Text: ${child[$nodeName]}.`);\n return false;\n }\n\n [$onText](str) {\n if (this[$content] instanceof XFAObject) {\n return;\n }\n super[$onText](str);\n }\n\n [$finalize]() {\n if (typeof this[$content] === \"string\") {\n this[$content] = this[$content].replace(/\\r\\n/g, \"\\n\");\n }\n }\n\n [$getExtra]() {\n if (typeof this[$content] === \"string\") {\n return this[$content]\n .split(/[\\u2029\\u2028\\n]/)\n .reduce((acc, line) => {\n if (line) {\n acc.push(line);\n }\n return acc;\n }, [])\n .join(\"\\n\");\n }\n return this[$content][$text]();\n }\n\n [$toHTML](availableSpace) {\n if (typeof this[$content] === \"string\") {\n // \\u2028 is a line separator.\n // \\u2029 is a paragraph separator.\n const html = valueToHtml(this[$content]).html;\n\n if (this[$content].includes(\"\\u2029\")) {\n // We've plain text containing a paragraph separator\n // so convert it into a set of

.\n html.name = \"div\";\n html.children = [];\n this[$content]\n .split(\"\\u2029\")\n .map(para =>\n // Convert a paragraph into a set of (for lines)\n // separated by
.\n para.split(/[\\u2028\\n]/).reduce((acc, line) => {\n acc.push(\n {\n name: \"span\",\n value: line,\n },\n {\n name: \"br\",\n }\n );\n return acc;\n }, [])\n )\n .forEach(lines => {\n html.children.push({\n name: \"p\",\n children: lines,\n });\n });\n } else if (/[\\u2028\\n]/.test(this[$content])) {\n html.name = \"div\";\n html.children = [];\n // Convert plain text into a set of (for lines)\n // separated by
.\n this[$content].split(/[\\u2028\\n]/).forEach(line => {\n html.children.push(\n {\n name: \"span\",\n value: line,\n },\n {\n name: \"br\",\n }\n );\n });\n }\n\n return HTMLResult.success(html);\n }\n\n return this[$content][$toHTML](availableSpace);\n }\n}\n\nclass TextEdit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"textEdit\", /* hasChildren = */ true);\n this.allowRichText = getInteger({\n data: attributes.allowRichText,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, [\n \"auto\",\n \"off\",\n \"on\",\n ]);\n this.id = attributes.id || \"\";\n this.multiLine = getInteger({\n data: attributes.multiLine,\n defaultValue: \"\",\n validate: x => x === 0 || x === 1,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.vScrollPolicy = getStringOption(attributes.vScrollPolicy, [\n \"auto\",\n \"off\",\n \"on\",\n ]);\n this.border = null;\n this.comb = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n const style = toStyle(this, \"border\", \"font\", \"margin\");\n let html;\n const field = this[$getParent]()[$getParent]();\n if (this.multiLine === \"\") {\n this.multiLine = field instanceof Draw ? 1 : 0;\n }\n if (this.multiLine === 1) {\n html = {\n name: \"textarea\",\n attributes: {\n dataId: (field[$data] && field[$data][$uid]) || field[$uid],\n fieldId: field[$uid],\n class: [\"xfaTextfield\"],\n style,\n \"aria-label\": ariaLabel(field),\n },\n };\n } else {\n html = {\n name: \"input\",\n attributes: {\n type: \"text\",\n dataId: (field[$data] && field[$data][$uid]) || field[$uid],\n fieldId: field[$uid],\n class: [\"xfaTextfield\"],\n style,\n \"aria-label\": ariaLabel(field),\n },\n };\n }\n\n return HTMLResult.success({\n name: \"label\",\n attributes: {\n class: [\"xfaLabel\"],\n },\n children: [html],\n });\n }\n}\n\nclass Time extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"time\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n // TODO: need to handle the string as a time and not as a date.\n const date = this[$content].trim();\n this[$content] = date ? new Date(date) : null;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(this[$content] ? this[$content].toString() : \"\");\n }\n}\n\nclass TimeStamp extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"timeStamp\");\n this.id = attributes.id || \"\";\n this.server = attributes.server || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass ToolTip extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"toolTip\");\n this.id = attributes.id || \"\";\n this.rid = attributes.rid || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Traversal extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"traversal\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.traverse = new XFAObjectArray();\n }\n}\n\nclass Traverse extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"traverse\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.operation = getStringOption(attributes.operation, [\n \"next\",\n \"back\",\n \"down\",\n \"first\",\n \"left\",\n \"right\",\n \"up\",\n ]);\n this.ref = attributes.ref || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.script = null;\n }\n\n get name() {\n // SOM expression: see page 94\n return this.operation;\n }\n\n [$isTransparent]() {\n return false;\n }\n}\n\nclass Ui extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"ui\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.picture = null;\n\n // One-of properties\n this.barcode = null;\n this.button = null;\n this.checkButton = null;\n this.choiceList = null;\n this.dateTimeEdit = null;\n this.defaultUi = null;\n this.imageEdit = null;\n this.numericEdit = null;\n this.passwordEdit = null;\n this.signature = null;\n this.textEdit = null;\n }\n\n [$getExtra]() {\n if (this[$extra] === undefined) {\n for (const name of Object.getOwnPropertyNames(this)) {\n if (name === \"extras\" || name === \"picture\") {\n continue;\n }\n const obj = this[name];\n if (!(obj instanceof XFAObject)) {\n continue;\n }\n\n this[$extra] = obj;\n return obj;\n }\n this[$extra] = null;\n }\n return this[$extra];\n }\n\n [$toHTML](availableSpace) {\n // TODO: picture.\n const obj = this[$getExtra]();\n if (obj) {\n return obj[$toHTML](availableSpace);\n }\n return HTMLResult.EMPTY;\n }\n}\n\nclass Validate extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"validate\", /* hasChildren = */ true);\n this.formatTest = getStringOption(attributes.formatTest, [\n \"warning\",\n \"disabled\",\n \"error\",\n ]);\n this.id = attributes.id || \"\";\n this.nullTest = getStringOption(attributes.nullTest, [\n \"disabled\",\n \"error\",\n \"warning\",\n ]);\n this.scriptTest = getStringOption(attributes.scriptTest, [\n \"error\",\n \"disabled\",\n \"warning\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.message = null;\n this.picture = null;\n this.script = null;\n }\n}\n\nclass Value extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"value\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.override = getInteger({\n data: attributes.override,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n\n // One-of properties\n this.arc = null;\n this.boolean = null;\n this.date = null;\n this.dateTime = null;\n this.decimal = null;\n this.exData = null;\n this.float = null;\n this.image = null;\n this.integer = null;\n this.line = null;\n this.rectangle = null;\n this.text = null;\n this.time = null;\n }\n\n [$setValue](value) {\n const parent = this[$getParent]();\n if (parent instanceof Field) {\n if (parent.ui && parent.ui.imageEdit) {\n if (!this.image) {\n this.image = new Image({});\n this[$appendChild](this.image);\n }\n this.image[$content] = value[$content];\n return;\n }\n }\n\n const valueName = value[$nodeName];\n if (this[valueName] !== null) {\n this[valueName][$content] = value[$content];\n return;\n }\n\n // Reset all the properties.\n for (const name of Object.getOwnPropertyNames(this)) {\n const obj = this[name];\n if (obj instanceof XFAObject) {\n this[name] = null;\n this[$removeChild](obj);\n }\n }\n\n this[value[$nodeName]] = value;\n this[$appendChild](value);\n }\n\n [$text]() {\n if (this.exData) {\n if (typeof this.exData[$content] === \"string\") {\n return this.exData[$content].trim();\n }\n return this.exData[$content][$text]().trim();\n }\n for (const name of Object.getOwnPropertyNames(this)) {\n if (name === \"image\") {\n continue;\n }\n const obj = this[name];\n if (obj instanceof XFAObject) {\n return (obj[$content] || \"\").toString().trim();\n }\n }\n return null;\n }\n\n [$toHTML](availableSpace) {\n for (const name of Object.getOwnPropertyNames(this)) {\n const obj = this[name];\n if (!(obj instanceof XFAObject)) {\n continue;\n }\n\n return obj[$toHTML](availableSpace);\n }\n\n return HTMLResult.EMPTY;\n }\n}\n\nclass Variables extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"variables\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.boolean = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.manifest = new XFAObjectArray();\n this.script = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.time = new XFAObjectArray();\n }\n\n [$isTransparent]() {\n return true;\n }\n}\n\nclass TemplateNamespace {\n static [$buildXFAObject](name, attributes) {\n if (TemplateNamespace.hasOwnProperty(name)) {\n const node = TemplateNamespace[name](attributes);\n node[$setSetAttributes](attributes);\n return node;\n }\n return undefined;\n }\n\n static appearanceFilter(attrs) {\n return new AppearanceFilter(attrs);\n }\n\n static arc(attrs) {\n return new Arc(attrs);\n }\n\n static area(attrs) {\n return new Area(attrs);\n }\n\n static assist(attrs) {\n return new Assist(attrs);\n }\n\n static barcode(attrs) {\n return new Barcode(attrs);\n }\n\n static bind(attrs) {\n return new Bind(attrs);\n }\n\n static bindItems(attrs) {\n return new BindItems(attrs);\n }\n\n static bookend(attrs) {\n return new Bookend(attrs);\n }\n\n static boolean(attrs) {\n return new BooleanElement(attrs);\n }\n\n static border(attrs) {\n return new Border(attrs);\n }\n\n static break(attrs) {\n return new Break(attrs);\n }\n\n static breakAfter(attrs) {\n return new BreakAfter(attrs);\n }\n\n static breakBefore(attrs) {\n return new BreakBefore(attrs);\n }\n\n static button(attrs) {\n return new Button(attrs);\n }\n\n static calculate(attrs) {\n return new Calculate(attrs);\n }\n\n static caption(attrs) {\n return new Caption(attrs);\n }\n\n static certificate(attrs) {\n return new Certificate(attrs);\n }\n\n static certificates(attrs) {\n return new Certificates(attrs);\n }\n\n static checkButton(attrs) {\n return new CheckButton(attrs);\n }\n\n static choiceList(attrs) {\n return new ChoiceList(attrs);\n }\n\n static color(attrs) {\n return new Color(attrs);\n }\n\n static comb(attrs) {\n return new Comb(attrs);\n }\n\n static connect(attrs) {\n return new Connect(attrs);\n }\n\n static contentArea(attrs) {\n return new ContentArea(attrs);\n }\n\n static corner(attrs) {\n return new Corner(attrs);\n }\n\n static date(attrs) {\n return new DateElement(attrs);\n }\n\n static dateTime(attrs) {\n return new DateTime(attrs);\n }\n\n static dateTimeEdit(attrs) {\n return new DateTimeEdit(attrs);\n }\n\n static decimal(attrs) {\n return new Decimal(attrs);\n }\n\n static defaultUi(attrs) {\n return new DefaultUi(attrs);\n }\n\n static desc(attrs) {\n return new Desc(attrs);\n }\n\n static digestMethod(attrs) {\n return new DigestMethod(attrs);\n }\n\n static digestMethods(attrs) {\n return new DigestMethods(attrs);\n }\n\n static draw(attrs) {\n return new Draw(attrs);\n }\n\n static edge(attrs) {\n return new Edge(attrs);\n }\n\n static encoding(attrs) {\n return new Encoding(attrs);\n }\n\n static encodings(attrs) {\n return new Encodings(attrs);\n }\n\n static encrypt(attrs) {\n return new Encrypt(attrs);\n }\n\n static encryptData(attrs) {\n return new EncryptData(attrs);\n }\n\n static encryption(attrs) {\n return new Encryption(attrs);\n }\n\n static encryptionMethod(attrs) {\n return new EncryptionMethod(attrs);\n }\n\n static encryptionMethods(attrs) {\n return new EncryptionMethods(attrs);\n }\n\n static event(attrs) {\n return new Event(attrs);\n }\n\n static exData(attrs) {\n return new ExData(attrs);\n }\n\n static exObject(attrs) {\n return new ExObject(attrs);\n }\n\n static exclGroup(attrs) {\n return new ExclGroup(attrs);\n }\n\n static execute(attrs) {\n return new Execute(attrs);\n }\n\n static extras(attrs) {\n return new Extras(attrs);\n }\n\n static field(attrs) {\n return new Field(attrs);\n }\n\n static fill(attrs) {\n return new Fill(attrs);\n }\n\n static filter(attrs) {\n return new Filter(attrs);\n }\n\n static float(attrs) {\n return new Float(attrs);\n }\n\n static font(attrs) {\n return new Font(attrs);\n }\n\n static format(attrs) {\n return new Format(attrs);\n }\n\n static handler(attrs) {\n return new Handler(attrs);\n }\n\n static hyphenation(attrs) {\n return new Hyphenation(attrs);\n }\n\n static image(attrs) {\n return new Image(attrs);\n }\n\n static imageEdit(attrs) {\n return new ImageEdit(attrs);\n }\n\n static integer(attrs) {\n return new Integer(attrs);\n }\n\n static issuers(attrs) {\n return new Issuers(attrs);\n }\n\n static items(attrs) {\n return new Items(attrs);\n }\n\n static keep(attrs) {\n return new Keep(attrs);\n }\n\n static keyUsage(attrs) {\n return new KeyUsage(attrs);\n }\n\n static line(attrs) {\n return new Line(attrs);\n }\n\n static linear(attrs) {\n return new Linear(attrs);\n }\n\n static lockDocument(attrs) {\n return new LockDocument(attrs);\n }\n\n static manifest(attrs) {\n return new Manifest(attrs);\n }\n\n static margin(attrs) {\n return new Margin(attrs);\n }\n\n static mdp(attrs) {\n return new Mdp(attrs);\n }\n\n static medium(attrs) {\n return new Medium(attrs);\n }\n\n static message(attrs) {\n return new Message(attrs);\n }\n\n static numericEdit(attrs) {\n return new NumericEdit(attrs);\n }\n\n static occur(attrs) {\n return new Occur(attrs);\n }\n\n static oid(attrs) {\n return new Oid(attrs);\n }\n\n static oids(attrs) {\n return new Oids(attrs);\n }\n\n static overflow(attrs) {\n return new Overflow(attrs);\n }\n\n static pageArea(attrs) {\n return new PageArea(attrs);\n }\n\n static pageSet(attrs) {\n return new PageSet(attrs);\n }\n\n static para(attrs) {\n return new Para(attrs);\n }\n\n static passwordEdit(attrs) {\n return new PasswordEdit(attrs);\n }\n\n static pattern(attrs) {\n return new Pattern(attrs);\n }\n\n static picture(attrs) {\n return new Picture(attrs);\n }\n\n static proto(attrs) {\n return new Proto(attrs);\n }\n\n static radial(attrs) {\n return new Radial(attrs);\n }\n\n static reason(attrs) {\n return new Reason(attrs);\n }\n\n static reasons(attrs) {\n return new Reasons(attrs);\n }\n\n static rectangle(attrs) {\n return new Rectangle(attrs);\n }\n\n static ref(attrs) {\n return new RefElement(attrs);\n }\n\n static script(attrs) {\n return new Script(attrs);\n }\n\n static setProperty(attrs) {\n return new SetProperty(attrs);\n }\n\n static signData(attrs) {\n return new SignData(attrs);\n }\n\n static signature(attrs) {\n return new Signature(attrs);\n }\n\n static signing(attrs) {\n return new Signing(attrs);\n }\n\n static solid(attrs) {\n return new Solid(attrs);\n }\n\n static speak(attrs) {\n return new Speak(attrs);\n }\n\n static stipple(attrs) {\n return new Stipple(attrs);\n }\n\n static subform(attrs) {\n return new Subform(attrs);\n }\n\n static subformSet(attrs) {\n return new SubformSet(attrs);\n }\n\n static subjectDN(attrs) {\n return new SubjectDN(attrs);\n }\n\n static subjectDNs(attrs) {\n return new SubjectDNs(attrs);\n }\n\n static submit(attrs) {\n return new Submit(attrs);\n }\n\n static template(attrs) {\n return new Template(attrs);\n }\n\n static text(attrs) {\n return new Text(attrs);\n }\n\n static textEdit(attrs) {\n return new TextEdit(attrs);\n }\n\n static time(attrs) {\n return new Time(attrs);\n }\n\n static timeStamp(attrs) {\n return new TimeStamp(attrs);\n }\n\n static toolTip(attrs) {\n return new ToolTip(attrs);\n }\n\n static traversal(attrs) {\n return new Traversal(attrs);\n }\n\n static traverse(attrs) {\n return new Traverse(attrs);\n }\n\n static ui(attrs) {\n return new Ui(attrs);\n }\n\n static validate(attrs) {\n return new Validate(attrs);\n }\n\n static value(attrs) {\n return new Value(attrs);\n }\n\n static variables(attrs) {\n return new Variables(attrs);\n }\n}\n\nexport {\n BindItems,\n Field,\n Items,\n SetProperty,\n Template,\n TemplateNamespace,\n Text,\n Value,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $extra,\n $flushHTML,\n $getSubformParent,\n $getTemplateRoot,\n $isSplittable,\n $isThereMoreWidth,\n} from \"./xfa_object.js\";\nimport { measureToString } from \"./html_utils.js\";\n\n// Subform and ExclGroup have a layout so they share these functions.\n\n/**\n * How layout works ?\n *\n * A container has an initial space (with a width and a height) to fit in,\n * which means that once all the children have been added then\n * the total width/height must be lower than the given ones in\n * the initial space.\n * So if the container has known dimensions and these ones are ok with the\n * space then continue else we return HTMLResult.FAILURE: it's up to the\n * parent to deal with this failure (e.g. if parent layout is lr-tb and\n * we fail to add a child at end of line (lr) then we try to add it on the\n * next line).\n * And then we run through the children, each child gets its initial space\n * in calling its parent $getAvailableSpace method\n * (see _filteredChildrenGenerator and $childrenToHTML in xfa_object.js)\n * then we try to layout child in its space. If everything is ok then we add\n * the result to its parent through $addHTML which will recompute the available\n * space in parent according to its layout property else we return\n * HTMLResult.Failure.\n * Before a failure some children may have been layed out: they've been saved in\n * [$extra].children and [$extra] has properties generator and failingNode\n * in order to save the state where we were before a failure.\n * This [$extra].children property is useful when a container has to be splited.\n * So if a container is unbreakable, we must delete its [$extra] property before\n * returning.\n */\n\nfunction createLine(node, children) {\n return {\n name: \"div\",\n attributes: {\n class: [node.layout === \"lr-tb\" ? \"xfaLr\" : \"xfaRl\"],\n },\n children,\n };\n}\n\nfunction flushHTML(node) {\n if (!node[$extra]) {\n return null;\n }\n\n const attributes = node[$extra].attributes;\n const html = {\n name: \"div\",\n attributes,\n children: node[$extra].children,\n };\n\n if (node[$extra].failingNode) {\n const htmlFromFailing = node[$extra].failingNode[$flushHTML]();\n if (htmlFromFailing) {\n if (node.layout.endsWith(\"-tb\")) {\n html.children.push(createLine(node, [htmlFromFailing]));\n } else {\n html.children.push(htmlFromFailing);\n }\n }\n }\n\n if (html.children.length === 0) {\n return null;\n }\n\n return html;\n}\n\nfunction addHTML(node, html, bbox) {\n const extra = node[$extra];\n const availableSpace = extra.availableSpace;\n\n const [x, y, w, h] = bbox;\n switch (node.layout) {\n case \"position\": {\n extra.width = Math.max(extra.width, x + w);\n extra.height = Math.max(extra.height, y + h);\n extra.children.push(html);\n break;\n }\n case \"lr-tb\":\n case \"rl-tb\":\n if (!extra.line || extra.attempt === 1) {\n extra.line = createLine(node, []);\n extra.children.push(extra.line);\n extra.numberInLine = 0;\n }\n\n extra.numberInLine += 1;\n extra.line.children.push(html);\n\n if (extra.attempt === 0) {\n // Add the element on the line\n extra.currentWidth += w;\n extra.height = Math.max(extra.height, extra.prevHeight + h);\n } else {\n extra.currentWidth = w;\n extra.prevHeight = extra.height;\n extra.height += h;\n\n // The element has been added on a new line so switch to line mode now.\n extra.attempt = 0;\n }\n extra.width = Math.max(extra.width, extra.currentWidth);\n break;\n case \"rl-row\":\n case \"row\": {\n extra.children.push(html);\n extra.width += w;\n extra.height = Math.max(extra.height, h);\n const height = measureToString(extra.height);\n for (const child of extra.children) {\n child.attributes.style.height = height;\n }\n break;\n }\n case \"table\": {\n extra.width = Math.min(availableSpace.width, Math.max(extra.width, w));\n extra.height += h;\n extra.children.push(html);\n break;\n }\n case \"tb\": {\n // Even if the subform can possibly take all the available width,\n // we must compute the final width as it is in order to be able\n // for example to center the subform within its parent.\n extra.width = Math.min(availableSpace.width, Math.max(extra.width, w));\n extra.height += h;\n extra.children.push(html);\n break;\n }\n }\n}\n\nfunction getAvailableSpace(node) {\n const availableSpace = node[$extra].availableSpace;\n const marginV = node.margin\n ? node.margin.topInset + node.margin.bottomInset\n : 0;\n const marginH = node.margin\n ? node.margin.leftInset + node.margin.rightInset\n : 0;\n\n switch (node.layout) {\n case \"lr-tb\":\n case \"rl-tb\":\n if (node[$extra].attempt === 0) {\n return {\n width: availableSpace.width - marginH - node[$extra].currentWidth,\n height: availableSpace.height - marginV - node[$extra].prevHeight,\n };\n }\n return {\n width: availableSpace.width - marginH,\n height: availableSpace.height - marginV - node[$extra].height,\n };\n case \"rl-row\":\n case \"row\":\n const width = node[$extra].columnWidths\n .slice(node[$extra].currentColumn)\n .reduce((a, x) => a + x);\n return { width, height: availableSpace.height - marginH };\n case \"table\":\n case \"tb\":\n return {\n width: availableSpace.width - marginH,\n height: availableSpace.height - marginV - node[$extra].height,\n };\n case \"position\":\n default:\n return availableSpace;\n }\n}\n\nfunction getTransformedBBox(node) {\n // Take into account rotation and anchor to get the real bounding box.\n let w = node.w === \"\" ? NaN : node.w;\n let h = node.h === \"\" ? NaN : node.h;\n let [centerX, centerY] = [0, 0];\n switch (node.anchorType || \"\") {\n case \"bottomCenter\":\n [centerX, centerY] = [w / 2, h];\n break;\n case \"bottomLeft\":\n [centerX, centerY] = [0, h];\n break;\n case \"bottomRight\":\n [centerX, centerY] = [w, h];\n break;\n case \"middleCenter\":\n [centerX, centerY] = [w / 2, h / 2];\n break;\n case \"middleLeft\":\n [centerX, centerY] = [0, h / 2];\n break;\n case \"middleRight\":\n [centerX, centerY] = [w, h / 2];\n break;\n case \"topCenter\":\n [centerX, centerY] = [w / 2, 0];\n break;\n case \"topRight\":\n [centerX, centerY] = [w, 0];\n break;\n }\n\n let x, y;\n switch (node.rotate || 0) {\n case 0:\n [x, y] = [-centerX, -centerY];\n break;\n case 90:\n [x, y] = [-centerY, centerX];\n [w, h] = [h, -w];\n break;\n case 180:\n [x, y] = [centerX, centerY];\n [w, h] = [-w, -h];\n break;\n case 270:\n [x, y] = [centerY, -centerX];\n [w, h] = [-h, w];\n break;\n }\n\n return [\n node.x + x + Math.min(0, w),\n node.y + y + Math.min(0, h),\n Math.abs(w),\n Math.abs(h),\n ];\n}\n\n/**\n * Returning true means that the node will be layed out\n * else the layout will go to its next step (changing of line\n * in case of lr-tb or changing content area...).\n */\nfunction checkDimensions(node, space) {\n if (node[$getTemplateRoot]()[$extra].firstUnsplittable === null) {\n return true;\n }\n\n if (node.w === 0 || node.h === 0) {\n return true;\n }\n\n const ERROR = 2;\n const parent = node[$getSubformParent]();\n const attempt = (parent[$extra] && parent[$extra].attempt) || 0;\n\n const [, y, w, h] = getTransformedBBox(node);\n switch (parent.layout) {\n case \"lr-tb\":\n case \"rl-tb\":\n if (attempt === 0) {\n // Try to put an element in the line.\n\n if (!node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n if (node.h !== \"\" && Math.round(h - space.height) > ERROR) {\n // Not enough height.\n return false;\n }\n\n if (node.w !== \"\") {\n if (Math.round(w - space.width) <= ERROR) {\n return true;\n }\n if (parent[$extra].numberInLine === 0) {\n return space.height > ERROR;\n }\n\n return false;\n }\n\n return space.width > ERROR;\n }\n\n // No layout failure.\n\n // Put the element on the line but we can fail\n // and then in the second step (next line) we'll accept.\n if (node.w !== \"\") {\n return Math.round(w - space.width) <= ERROR;\n }\n\n return space.width > ERROR;\n }\n\n // Second attempt: try to put the element on the next line.\n\n if (node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n // We cannot fail.\n return true;\n }\n\n if (node.h !== \"\" && Math.round(h - space.height) > ERROR) {\n return false;\n }\n\n if (node.w === \"\" || Math.round(w - space.width) <= ERROR) {\n return space.height > ERROR;\n }\n\n if (parent[$isThereMoreWidth]()) {\n return false;\n }\n\n return space.height > ERROR;\n case \"table\":\n case \"tb\":\n if (node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n return true;\n }\n\n // If the node has a height then check if it's fine with available height.\n // If the node is breakable then we can return true.\n if (node.h !== \"\" && !node[$isSplittable]()) {\n return Math.round(h - space.height) <= ERROR;\n }\n // Else wait and see: this node will be layed out itself\n // in the provided space and maybe a children won't fit.\n\n if (node.w === \"\" || Math.round(w - space.width) <= ERROR) {\n return space.height > ERROR;\n }\n\n if (parent[$isThereMoreWidth]()) {\n return false;\n }\n\n return space.height > ERROR;\n case \"position\":\n if (node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n return true;\n }\n\n if (node.h === \"\" || Math.round(h + y - space.height) <= ERROR) {\n return true;\n }\n\n const area = node[$getTemplateRoot]()[$extra].currentContentArea;\n return h + y > area.h;\n case \"rl-row\":\n case \"row\":\n if (node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n return true;\n }\n\n if (node.h !== \"\") {\n return Math.round(h - space.height) <= ERROR;\n }\n return true;\n default:\n // No layout, so accept everything.\n return true;\n }\n}\n\nexport { addHTML, checkDimensions, flushHTML, getAvailableSpace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $content,\n $extra,\n $getParent,\n $getSubformParent,\n $getTemplateRoot,\n $globalData,\n $nodeName,\n $pushGlyphs,\n $text,\n $toStyle,\n XFAObject,\n} from \"./xfa_object.js\";\nimport { createValidAbsoluteUrl, warn } from \"../../shared/util.js\";\nimport { getMeasurement, stripQuotes } from \"./utils.js\";\nimport { selectFont } from \"./fonts.js\";\nimport { TextMeasure } from \"./text.js\";\n\nfunction measureToString(m) {\n if (typeof m === \"string\") {\n return \"0px\";\n }\n\n return Number.isInteger(m) ? `${m}px` : `${m.toFixed(2)}px`;\n}\n\nconst converters = {\n anchorType(node, style) {\n const parent = node[$getSubformParent]();\n if (!parent || (parent.layout && parent.layout !== \"position\")) {\n // anchorType is only used in a positioned layout.\n return;\n }\n\n if (!(\"transform\" in style)) {\n style.transform = \"\";\n }\n switch (node.anchorType) {\n case \"bottomCenter\":\n style.transform += \"translate(-50%, -100%)\";\n break;\n case \"bottomLeft\":\n style.transform += \"translate(0,-100%)\";\n break;\n case \"bottomRight\":\n style.transform += \"translate(-100%,-100%)\";\n break;\n case \"middleCenter\":\n style.transform += \"translate(-50%,-50%)\";\n break;\n case \"middleLeft\":\n style.transform += \"translate(0,-50%)\";\n break;\n case \"middleRight\":\n style.transform += \"translate(-100%,-50%)\";\n break;\n case \"topCenter\":\n style.transform += \"translate(-50%,0)\";\n break;\n case \"topRight\":\n style.transform += \"translate(-100%,0)\";\n break;\n }\n },\n dimensions(node, style) {\n const parent = node[$getSubformParent]();\n let width = node.w;\n const height = node.h;\n if (parent.layout && parent.layout.includes(\"row\")) {\n const extra = parent[$extra];\n const colSpan = node.colSpan;\n let w;\n if (colSpan === -1) {\n w = extra.columnWidths\n .slice(extra.currentColumn)\n .reduce((a, x) => a + x, 0);\n extra.currentColumn = 0;\n } else {\n w = extra.columnWidths\n .slice(extra.currentColumn, extra.currentColumn + colSpan)\n .reduce((a, x) => a + x, 0);\n extra.currentColumn =\n (extra.currentColumn + node.colSpan) % extra.columnWidths.length;\n }\n\n if (!isNaN(w)) {\n width = node.w = w;\n }\n }\n\n if (width !== \"\") {\n style.width = measureToString(width);\n } else {\n style.width = \"auto\";\n }\n\n if (height !== \"\") {\n style.height = measureToString(height);\n } else {\n style.height = \"auto\";\n }\n },\n position(node, style) {\n const parent = node[$getSubformParent]();\n if (parent && parent.layout && parent.layout !== \"position\") {\n // IRL, we've some x/y in tb layout.\n // Specs say x/y is only used in positioned layout.\n return;\n }\n\n style.position = \"absolute\";\n style.left = measureToString(node.x);\n style.top = measureToString(node.y);\n },\n rotate(node, style) {\n if (node.rotate) {\n if (!(\"transform\" in style)) {\n style.transform = \"\";\n }\n style.transform += `rotate(-${node.rotate}deg)`;\n style.transformOrigin = \"top left\";\n }\n },\n presence(node, style) {\n switch (node.presence) {\n case \"invisible\":\n style.visibility = \"hidden\";\n break;\n case \"hidden\":\n case \"inactive\":\n style.display = \"none\";\n break;\n }\n },\n hAlign(node, style) {\n if (node[$nodeName] === \"para\") {\n switch (node.hAlign) {\n case \"justifyAll\":\n style.textAlign = \"justify-all\";\n break;\n case \"radix\":\n // TODO: implement this correctly !\n style.textAlign = \"left\";\n break;\n default:\n style.textAlign = node.hAlign;\n }\n } else {\n switch (node.hAlign) {\n case \"left\":\n style.alignSelf = \"start\";\n break;\n case \"center\":\n style.alignSelf = \"center\";\n break;\n case \"right\":\n style.alignSelf = \"end\";\n break;\n }\n }\n },\n margin(node, style) {\n if (node.margin) {\n style.margin = node.margin[$toStyle]().margin;\n }\n },\n};\n\nfunction setMinMaxDimensions(node, style) {\n const parent = node[$getSubformParent]();\n if (parent.layout === \"position\") {\n if (node.minW > 0) {\n style.minWidth = measureToString(node.minW);\n }\n if (node.maxW > 0) {\n style.maxWidth = measureToString(node.maxW);\n }\n if (node.minH > 0) {\n style.minHeight = measureToString(node.minH);\n }\n if (node.maxH > 0) {\n style.maxHeight = measureToString(node.maxH);\n }\n }\n}\n\nfunction layoutText(text, xfaFont, margin, lineHeight, fontFinder, width) {\n const measure = new TextMeasure(xfaFont, margin, lineHeight, fontFinder);\n if (typeof text === \"string\") {\n measure.addString(text);\n } else {\n text[$pushGlyphs](measure);\n }\n\n return measure.compute(width);\n}\n\nfunction layoutNode(node, availableSpace) {\n let height = null;\n let width = null;\n let isBroken = false;\n\n if ((!node.w || !node.h) && node.value) {\n let marginH = 0;\n let marginV = 0;\n if (node.margin) {\n marginH = node.margin.leftInset + node.margin.rightInset;\n marginV = node.margin.topInset + node.margin.bottomInset;\n }\n\n let lineHeight = null;\n let margin = null;\n if (node.para) {\n margin = Object.create(null);\n lineHeight = node.para.lineHeight === \"\" ? null : node.para.lineHeight;\n margin.top = node.para.spaceAbove === \"\" ? 0 : node.para.spaceAbove;\n margin.bottom = node.para.spaceBelow === \"\" ? 0 : node.para.spaceBelow;\n margin.left = node.para.marginLeft === \"\" ? 0 : node.para.marginLeft;\n margin.right = node.para.marginRight === \"\" ? 0 : node.para.marginRight;\n }\n\n let font = node.font;\n if (!font) {\n const root = node[$getTemplateRoot]();\n let parent = node[$getParent]();\n while (parent && parent !== root) {\n if (parent.font) {\n font = parent.font;\n break;\n }\n parent = parent[$getParent]();\n }\n }\n\n const maxWidth = (!node.w ? availableSpace.width : node.w) - marginH;\n const fontFinder = node[$globalData].fontFinder;\n if (\n node.value.exData &&\n node.value.exData[$content] &&\n node.value.exData.contentType === \"text/html\"\n ) {\n const res = layoutText(\n node.value.exData[$content],\n font,\n margin,\n lineHeight,\n fontFinder,\n maxWidth\n );\n width = res.width;\n height = res.height;\n isBroken = res.isBroken;\n } else {\n const text = node.value[$text]();\n if (text) {\n const res = layoutText(\n text,\n font,\n margin,\n lineHeight,\n fontFinder,\n maxWidth\n );\n width = res.width;\n height = res.height;\n isBroken = res.isBroken;\n }\n }\n\n if (width !== null && !node.w) {\n width += marginH;\n }\n\n if (height !== null && !node.h) {\n height += marginV;\n }\n }\n return { w: width, h: height, isBroken };\n}\n\nfunction computeBbox(node, html, availableSpace) {\n let bbox;\n if (node.w !== \"\" && node.h !== \"\") {\n bbox = [node.x, node.y, node.w, node.h];\n } else {\n if (!availableSpace) {\n return null;\n }\n let width = node.w;\n if (width === \"\") {\n if (node.maxW === 0) {\n const parent = node[$getSubformParent]();\n if (parent.layout === \"position\" && parent.w !== \"\") {\n width = 0;\n } else {\n width = node.minW;\n }\n } else {\n width = Math.min(node.maxW, availableSpace.width);\n }\n html.attributes.style.width = measureToString(width);\n }\n\n let height = node.h;\n if (height === \"\") {\n if (node.maxH === 0) {\n const parent = node[$getSubformParent]();\n if (parent.layout === \"position\" && parent.h !== \"\") {\n height = 0;\n } else {\n height = node.minH;\n }\n } else {\n height = Math.min(node.maxH, availableSpace.height);\n }\n html.attributes.style.height = measureToString(height);\n }\n\n bbox = [node.x, node.y, width, height];\n }\n return bbox;\n}\n\nfunction fixDimensions(node) {\n const parent = node[$getSubformParent]();\n if (parent.layout && parent.layout.includes(\"row\")) {\n const extra = parent[$extra];\n const colSpan = node.colSpan;\n let width;\n if (colSpan === -1) {\n width = extra.columnWidths\n .slice(extra.currentColumn)\n .reduce((a, w) => a + w, 0);\n } else {\n width = extra.columnWidths\n .slice(extra.currentColumn, extra.currentColumn + colSpan)\n .reduce((a, w) => a + w, 0);\n }\n if (!isNaN(width)) {\n node.w = width;\n }\n }\n\n if (parent.layout && parent.layout !== \"position\") {\n // Useless in this context.\n node.x = node.y = 0;\n }\n\n if (node.layout === \"table\") {\n if (node.w === \"\" && Array.isArray(node.columnWidths)) {\n node.w = node.columnWidths.reduce((a, x) => a + x, 0);\n }\n }\n}\n\nfunction layoutClass(node) {\n switch (node.layout) {\n case \"position\":\n return \"xfaPosition\";\n case \"lr-tb\":\n return \"xfaLrTb\";\n case \"rl-row\":\n return \"xfaRlRow\";\n case \"rl-tb\":\n return \"xfaRlTb\";\n case \"row\":\n return \"xfaRow\";\n case \"table\":\n return \"xfaTable\";\n case \"tb\":\n return \"xfaTb\";\n default:\n return \"xfaPosition\";\n }\n}\n\nfunction toStyle(node, ...names) {\n const style = Object.create(null);\n for (const name of names) {\n const value = node[name];\n if (value === null) {\n continue;\n }\n if (converters.hasOwnProperty(name)) {\n converters[name](node, style);\n continue;\n }\n\n if (value instanceof XFAObject) {\n const newStyle = value[$toStyle]();\n if (newStyle) {\n Object.assign(style, newStyle);\n } else {\n warn(`(DEBUG) - XFA - style for ${name} not implemented yet`);\n }\n }\n }\n return style;\n}\n\nfunction createWrapper(node, html) {\n const { attributes } = html;\n const { style } = attributes;\n\n const wrapper = {\n name: \"div\",\n attributes: {\n class: [\"xfaWrapper\"],\n style: Object.create(null),\n },\n children: [],\n };\n\n attributes.class.push(\"xfaWrapped\");\n\n if (node.border) {\n const { widths, insets } = node.border[$extra];\n let width, height;\n let top = insets[0];\n let left = insets[3];\n const insetsH = insets[0] + insets[2];\n const insetsW = insets[1] + insets[3];\n switch (node.border.hand) {\n case \"even\":\n top -= widths[0] / 2;\n left -= widths[3] / 2;\n width = `calc(100% + ${(widths[1] + widths[3]) / 2 - insetsW}px)`;\n height = `calc(100% + ${(widths[0] + widths[2]) / 2 - insetsH}px)`;\n break;\n case \"left\":\n top -= widths[0];\n left -= widths[3];\n width = `calc(100% + ${widths[1] + widths[3] - insetsW}px)`;\n height = `calc(100% + ${widths[0] + widths[2] - insetsH}px)`;\n break;\n case \"right\":\n width = insetsW ? `calc(100% - ${insetsW}px)` : \"100%\";\n height = insetsH ? `calc(100% - ${insetsH}px)` : \"100%\";\n break;\n }\n const classNames = [\"xfaBorder\"];\n if (isPrintOnly(node.border)) {\n classNames.push(\"xfaPrintOnly\");\n }\n\n const border = {\n name: \"div\",\n attributes: {\n class: classNames,\n style: {\n top: `${top}px`,\n left: `${left}px`,\n width,\n height,\n },\n },\n children: [],\n };\n\n for (const key of [\n \"border\",\n \"borderWidth\",\n \"borderColor\",\n \"borderRadius\",\n \"borderStyle\",\n ]) {\n if (style[key] !== undefined) {\n border.attributes.style[key] = style[key];\n delete style[key];\n }\n }\n wrapper.children.push(border, html);\n } else {\n wrapper.children.push(html);\n }\n\n for (const key of [\n \"background\",\n \"backgroundClip\",\n \"top\",\n \"left\",\n \"width\",\n \"height\",\n \"minWidth\",\n \"minHeight\",\n \"maxWidth\",\n \"maxHeight\",\n \"transform\",\n \"transformOrigin\",\n \"visibility\",\n ]) {\n if (style[key] !== undefined) {\n wrapper.attributes.style[key] = style[key];\n delete style[key];\n }\n }\n\n if (style.position === \"absolute\") {\n wrapper.attributes.style.position = \"absolute\";\n } else {\n wrapper.attributes.style.position = \"relative\";\n }\n delete style.position;\n\n if (style.alignSelf) {\n wrapper.attributes.style.alignSelf = style.alignSelf;\n delete style.alignSelf;\n }\n\n return wrapper;\n}\n\nfunction fixTextIndent(styles) {\n const indent = getMeasurement(styles.textIndent, \"0px\");\n if (indent >= 0) {\n return;\n }\n\n // If indent is negative then it's a hanging indent.\n const align = styles.textAlign === \"right\" ? \"right\" : \"left\";\n const name = \"padding\" + (align === \"left\" ? \"Left\" : \"Right\");\n const padding = getMeasurement(styles[name], \"0px\");\n styles[name] = `${padding - indent}px`;\n}\n\nfunction setAccess(node, classNames) {\n switch (node.access) {\n case \"nonInteractive\":\n classNames.push(\"xfaNonInteractive\");\n break;\n case \"readOnly\":\n classNames.push(\"xfaReadOnly\");\n break;\n case \"protected\":\n classNames.push(\"xfaDisabled\");\n break;\n }\n}\n\nfunction isPrintOnly(node) {\n return (\n node.relevant.length > 0 &&\n !node.relevant[0].excluded &&\n node.relevant[0].viewname === \"print\"\n );\n}\n\nfunction getCurrentPara(node) {\n const stack = node[$getTemplateRoot]()[$extra].paraStack;\n return stack.length ? stack[stack.length - 1] : null;\n}\n\nfunction setPara(node, nodeStyle, value) {\n if (value.attributes.class && value.attributes.class.includes(\"xfaRich\")) {\n if (nodeStyle) {\n if (node.h === \"\") {\n nodeStyle.height = \"auto\";\n }\n if (node.w === \"\") {\n nodeStyle.width = \"auto\";\n }\n }\n\n const para = getCurrentPara(node);\n if (para) {\n // By definition exData are external data so para\n // has no effect on it.\n const valueStyle = value.attributes.style;\n valueStyle.display = \"flex\";\n valueStyle.flexDirection = \"column\";\n switch (para.vAlign) {\n case \"top\":\n valueStyle.justifyContent = \"start\";\n break;\n case \"bottom\":\n valueStyle.justifyContent = \"end\";\n break;\n case \"middle\":\n valueStyle.justifyContent = \"center\";\n break;\n }\n\n const paraStyle = para[$toStyle]();\n for (const [key, val] of Object.entries(paraStyle)) {\n if (!(key in valueStyle)) {\n valueStyle[key] = val;\n }\n }\n }\n }\n}\n\nfunction setFontFamily(xfaFont, node, fontFinder, style) {\n if (!fontFinder) {\n // The font cannot be found in the pdf so use the default one.\n delete style.fontFamily;\n return;\n }\n\n const name = stripQuotes(xfaFont.typeface);\n style.fontFamily = `\"${name}\"`;\n\n const typeface = fontFinder.find(name);\n if (typeface) {\n const { fontFamily } = typeface.regular.cssFontInfo;\n if (fontFamily !== name) {\n style.fontFamily = `\"${fontFamily}\"`;\n }\n\n const para = getCurrentPara(node);\n if (para && para.lineHeight !== \"\") {\n return;\n }\n\n if (style.lineHeight) {\n // Already something so don't overwrite.\n return;\n }\n\n const pdfFont = selectFont(xfaFont, typeface);\n if (pdfFont) {\n style.lineHeight = Math.max(1.2, pdfFont.lineHeight);\n }\n }\n}\n\nfunction fixURL(str) {\n const absoluteUrl = createValidAbsoluteUrl(str, /* baseUrl = */ null, {\n addDefaultProtocol: true,\n tryConvertEncoding: true,\n });\n return absoluteUrl ? absoluteUrl.href : null;\n}\n\nexport {\n computeBbox,\n createWrapper,\n fixDimensions,\n fixTextIndent,\n fixURL,\n isPrintOnly,\n layoutClass,\n layoutNode,\n measureToString,\n setAccess,\n setFontFamily,\n setMinMaxDimensions,\n setPara,\n toStyle,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $globalData } from \"./xfa_object.js\";\nimport { stripQuotes } from \"./utils.js\";\nimport { warn } from \"../../shared/util.js\";\n\nclass FontFinder {\n constructor(pdfFonts) {\n this.fonts = new Map();\n this.cache = new Map();\n this.warned = new Set();\n this.defaultFont = null;\n this.add(pdfFonts);\n }\n\n add(pdfFonts, reallyMissingFonts = null) {\n for (const pdfFont of pdfFonts) {\n this.addPdfFont(pdfFont);\n }\n for (const pdfFont of this.fonts.values()) {\n if (!pdfFont.regular) {\n pdfFont.regular = pdfFont.italic || pdfFont.bold || pdfFont.bolditalic;\n }\n }\n\n if (!reallyMissingFonts || reallyMissingFonts.size === 0) {\n return;\n }\n const myriad = this.fonts.get(\"PdfJS-Fallback-PdfJS-XFA\");\n for (const missing of reallyMissingFonts) {\n this.fonts.set(missing, myriad);\n }\n }\n\n addPdfFont(pdfFont) {\n const cssFontInfo = pdfFont.cssFontInfo;\n const name = cssFontInfo.fontFamily;\n let font = this.fonts.get(name);\n if (!font) {\n font = Object.create(null);\n this.fonts.set(name, font);\n if (!this.defaultFont) {\n this.defaultFont = font;\n }\n }\n let property = \"\";\n const fontWeight = parseFloat(cssFontInfo.fontWeight);\n if (parseFloat(cssFontInfo.italicAngle) !== 0) {\n property = fontWeight >= 700 ? \"bolditalic\" : \"italic\";\n } else if (fontWeight >= 700) {\n property = \"bold\";\n }\n\n if (!property) {\n if (\n pdfFont.name.includes(\"Bold\") ||\n (pdfFont.psName && pdfFont.psName.includes(\"Bold\"))\n ) {\n property = \"bold\";\n }\n if (\n pdfFont.name.includes(\"Italic\") ||\n pdfFont.name.endsWith(\"It\") ||\n (pdfFont.psName &&\n (pdfFont.psName.includes(\"Italic\") || pdfFont.psName.endsWith(\"It\")))\n ) {\n property += \"italic\";\n }\n }\n\n if (!property) {\n property = \"regular\";\n }\n\n font[property] = pdfFont;\n }\n\n getDefault() {\n return this.defaultFont;\n }\n\n find(fontName, mustWarn = true) {\n let font = this.fonts.get(fontName) || this.cache.get(fontName);\n if (font) {\n return font;\n }\n\n const pattern = /,|-|_| |bolditalic|bold|italic|regular|it/gi;\n let name = fontName.replace(pattern, \"\");\n font = this.fonts.get(name);\n if (font) {\n this.cache.set(fontName, font);\n return font;\n }\n name = name.toLowerCase();\n\n const maybe = [];\n for (const [family, pdfFont] of this.fonts.entries()) {\n if (family.replace(pattern, \"\").toLowerCase().startsWith(name)) {\n maybe.push(pdfFont);\n }\n }\n\n if (maybe.length === 0) {\n for (const [, pdfFont] of this.fonts.entries()) {\n if (\n pdfFont.regular.name &&\n pdfFont.regular.name\n .replace(pattern, \"\")\n .toLowerCase()\n .startsWith(name)\n ) {\n maybe.push(pdfFont);\n }\n }\n }\n\n if (maybe.length === 0) {\n name = name.replace(/psmt|mt/gi, \"\");\n for (const [family, pdfFont] of this.fonts.entries()) {\n if (family.replace(pattern, \"\").toLowerCase().startsWith(name)) {\n maybe.push(pdfFont);\n }\n }\n }\n\n if (maybe.length === 0) {\n for (const pdfFont of this.fonts.values()) {\n if (\n pdfFont.regular.name &&\n pdfFont.regular.name\n .replace(pattern, \"\")\n .toLowerCase()\n .startsWith(name)\n ) {\n maybe.push(pdfFont);\n }\n }\n }\n\n if (maybe.length >= 1) {\n if (maybe.length !== 1 && mustWarn) {\n warn(`XFA - Too many choices to guess the correct font: ${fontName}`);\n }\n this.cache.set(fontName, maybe[0]);\n return maybe[0];\n }\n\n if (mustWarn && !this.warned.has(fontName)) {\n this.warned.add(fontName);\n warn(`XFA - Cannot find the font: ${fontName}`);\n }\n return null;\n }\n}\n\nfunction selectFont(xfaFont, typeface) {\n if (xfaFont.posture === \"italic\") {\n if (xfaFont.weight === \"bold\") {\n return typeface.bolditalic;\n }\n return typeface.italic;\n } else if (xfaFont.weight === \"bold\") {\n return typeface.bold;\n }\n\n return typeface.regular;\n}\n\nfunction getMetrics(xfaFont, real = false) {\n let pdfFont = null;\n if (xfaFont) {\n const name = stripQuotes(xfaFont.typeface);\n const typeface = xfaFont[$globalData].fontFinder.find(name);\n pdfFont = selectFont(xfaFont, typeface);\n }\n\n if (!pdfFont) {\n return {\n lineHeight: 12,\n lineGap: 2,\n lineNoGap: 10,\n };\n }\n\n const size = xfaFont.size || 10;\n const lineHeight = pdfFont.lineHeight\n ? Math.max(real ? 0 : 1.2, pdfFont.lineHeight)\n : 1.2;\n const lineGap = pdfFont.lineGap === undefined ? 0.2 : pdfFont.lineGap;\n return {\n lineHeight: lineHeight * size,\n lineGap: lineGap * size,\n lineNoGap: Math.max(1, lineHeight - lineGap) * size,\n };\n}\n\nexport { FontFinder, getMetrics, selectFont };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { selectFont } from \"./fonts.js\";\n\nconst WIDTH_FACTOR = 1.02;\n\nclass FontInfo {\n constructor(xfaFont, margin, lineHeight, fontFinder) {\n this.lineHeight = lineHeight;\n this.paraMargin = margin || {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n };\n\n if (!xfaFont) {\n [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder);\n return;\n }\n\n this.xfaFont = {\n typeface: xfaFont.typeface,\n posture: xfaFont.posture,\n weight: xfaFont.weight,\n size: xfaFont.size,\n letterSpacing: xfaFont.letterSpacing,\n };\n const typeface = fontFinder.find(xfaFont.typeface);\n if (!typeface) {\n [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder);\n return;\n }\n\n this.pdfFont = selectFont(xfaFont, typeface);\n\n if (!this.pdfFont) {\n [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder);\n }\n }\n\n defaultFont(fontFinder) {\n // TODO: Add a default font based on Liberation.\n const font =\n fontFinder.find(\"Helvetica\", false) ||\n fontFinder.find(\"Myriad Pro\", false) ||\n fontFinder.find(\"Arial\", false) ||\n fontFinder.getDefault();\n if (font && font.regular) {\n const pdfFont = font.regular;\n const info = pdfFont.cssFontInfo;\n const xfaFont = {\n typeface: info.fontFamily,\n posture: \"normal\",\n weight: \"normal\",\n size: 10,\n letterSpacing: 0,\n };\n return [pdfFont, xfaFont];\n }\n\n const xfaFont = {\n typeface: \"Courier\",\n posture: \"normal\",\n weight: \"normal\",\n size: 10,\n letterSpacing: 0,\n };\n return [null, xfaFont];\n }\n}\n\nclass FontSelector {\n constructor(\n defaultXfaFont,\n defaultParaMargin,\n defaultLineHeight,\n fontFinder\n ) {\n this.fontFinder = fontFinder;\n this.stack = [\n new FontInfo(\n defaultXfaFont,\n defaultParaMargin,\n defaultLineHeight,\n fontFinder\n ),\n ];\n }\n\n pushData(xfaFont, margin, lineHeight) {\n const lastFont = this.stack[this.stack.length - 1];\n for (const name of [\n \"typeface\",\n \"posture\",\n \"weight\",\n \"size\",\n \"letterSpacing\",\n ]) {\n if (!xfaFont[name]) {\n xfaFont[name] = lastFont.xfaFont[name];\n }\n }\n\n for (const name of [\"top\", \"bottom\", \"left\", \"right\"]) {\n if (isNaN(margin[name])) {\n margin[name] = lastFont.paraMargin[name];\n }\n }\n\n const fontInfo = new FontInfo(\n xfaFont,\n margin,\n lineHeight || lastFont.lineHeight,\n this.fontFinder\n );\n if (!fontInfo.pdfFont) {\n fontInfo.pdfFont = lastFont.pdfFont;\n }\n\n this.stack.push(fontInfo);\n }\n\n popFont() {\n this.stack.pop();\n }\n\n topFont() {\n return this.stack[this.stack.length - 1];\n }\n}\n\n/**\n * Compute a text area dimensions based on font metrics.\n */\nclass TextMeasure {\n constructor(defaultXfaFont, defaultParaMargin, defaultLineHeight, fonts) {\n this.glyphs = [];\n this.fontSelector = new FontSelector(\n defaultXfaFont,\n defaultParaMargin,\n defaultLineHeight,\n fonts\n );\n this.extraHeight = 0;\n }\n\n pushData(xfaFont, margin, lineHeight) {\n this.fontSelector.pushData(xfaFont, margin, lineHeight);\n }\n\n popFont(xfaFont) {\n return this.fontSelector.popFont();\n }\n\n addPara() {\n const lastFont = this.fontSelector.topFont();\n this.extraHeight += lastFont.paraMargin.top + lastFont.paraMargin.bottom;\n }\n\n addString(str) {\n if (!str) {\n return;\n }\n\n const lastFont = this.fontSelector.topFont();\n const fontSize = lastFont.xfaFont.size;\n if (lastFont.pdfFont) {\n const letterSpacing = lastFont.xfaFont.letterSpacing;\n const pdfFont = lastFont.pdfFont;\n const fontLineHeight = pdfFont.lineHeight || 1.2;\n const lineHeight =\n lastFont.lineHeight || Math.max(1.2, fontLineHeight) * fontSize;\n const lineGap = pdfFont.lineGap === undefined ? 0.2 : pdfFont.lineGap;\n const noGap = fontLineHeight - lineGap;\n const firstLineHeight = Math.max(1, noGap) * fontSize;\n const scale = fontSize / 1000;\n const fallbackWidth =\n pdfFont.defaultWidth || pdfFont.charsToGlyphs(\" \")[0].width;\n\n for (const line of str.split(/[\\u2029\\n]/)) {\n const encodedLine = pdfFont.encodeString(line).join(\"\");\n const glyphs = pdfFont.charsToGlyphs(encodedLine);\n\n for (const glyph of glyphs) {\n const width = glyph.width || fallbackWidth;\n this.glyphs.push([\n width * scale + letterSpacing,\n lineHeight,\n firstLineHeight,\n glyph.unicode,\n false,\n ]);\n }\n\n this.glyphs.push([0, 0, 0, \"\\n\", true]);\n }\n this.glyphs.pop();\n return;\n }\n\n // When we have no font in the pdf, just use the font size as default width.\n for (const line of str.split(/[\\u2029\\n]/)) {\n for (const char of line.split(\"\")) {\n this.glyphs.push([fontSize, 1.2 * fontSize, fontSize, char, false]);\n }\n\n this.glyphs.push([0, 0, 0, \"\\n\", true]);\n }\n this.glyphs.pop();\n }\n\n compute(maxWidth) {\n let lastSpacePos = -1,\n lastSpaceWidth = 0,\n width = 0,\n height = 0,\n currentLineWidth = 0,\n currentLineHeight = 0;\n let isBroken = false;\n let isFirstLine = true;\n\n for (let i = 0, ii = this.glyphs.length; i < ii; i++) {\n const [glyphWidth, lineHeight, firstLineHeight, char, isEOL] =\n this.glyphs[i];\n const isSpace = char === \" \";\n const glyphHeight = isFirstLine ? firstLineHeight : lineHeight;\n if (isEOL) {\n width = Math.max(width, currentLineWidth);\n currentLineWidth = 0;\n height += currentLineHeight;\n currentLineHeight = glyphHeight;\n lastSpacePos = -1;\n lastSpaceWidth = 0;\n isFirstLine = false;\n continue;\n }\n\n if (isSpace) {\n if (currentLineWidth + glyphWidth > maxWidth) {\n // We can break here but the space is not taken into account.\n width = Math.max(width, currentLineWidth);\n currentLineWidth = 0;\n height += currentLineHeight;\n currentLineHeight = glyphHeight;\n lastSpacePos = -1;\n lastSpaceWidth = 0;\n isBroken = true;\n isFirstLine = false;\n } else {\n currentLineHeight = Math.max(glyphHeight, currentLineHeight);\n lastSpaceWidth = currentLineWidth;\n currentLineWidth += glyphWidth;\n lastSpacePos = i;\n }\n continue;\n }\n\n if (currentLineWidth + glyphWidth > maxWidth) {\n // We must break to the last white position (if available)\n height += currentLineHeight;\n currentLineHeight = glyphHeight;\n if (lastSpacePos !== -1) {\n i = lastSpacePos;\n width = Math.max(width, lastSpaceWidth);\n currentLineWidth = 0;\n lastSpacePos = -1;\n lastSpaceWidth = 0;\n } else {\n // Just break in the middle of the word\n width = Math.max(width, currentLineWidth);\n currentLineWidth = glyphWidth;\n }\n isBroken = true;\n isFirstLine = false;\n\n continue;\n }\n\n currentLineWidth += glyphWidth;\n currentLineHeight = Math.max(glyphHeight, currentLineHeight);\n }\n\n width = Math.max(width, currentLineWidth);\n height += currentLineHeight + this.extraHeight;\n\n return { width: WIDTH_FACTOR * width, height, isBroken };\n }\n}\n\nexport { TextMeasure };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $getAttributes,\n $getChildren,\n $nodeName,\n $setValue,\n $toString,\n $uid,\n} from \"./xfa_object.js\";\n\nclass DataHandler {\n constructor(root, data) {\n this.data = data;\n this.dataset = root.datasets || null;\n }\n\n serialize(storage) {\n const stack = [[-1, this.data[$getChildren]()]];\n\n while (stack.length > 0) {\n const last = stack[stack.length - 1];\n const [i, children] = last;\n if (i + 1 === children.length) {\n stack.pop();\n continue;\n }\n\n const child = children[++last[0]];\n const storageEntry = storage.get(child[$uid]);\n if (storageEntry) {\n child[$setValue](storageEntry);\n } else {\n const attributes = child[$getAttributes]();\n for (const value of attributes.values()) {\n const entry = storage.get(value[$uid]);\n if (entry) {\n value[$setValue](entry);\n break;\n }\n }\n }\n\n const nodes = child[$getChildren]();\n if (nodes.length > 0) {\n stack.push([-1, nodes]);\n }\n }\n\n const buf = [\n ``,\n ];\n if (this.dataset) {\n // Dump nodes other than data: they can contains for example\n // some data for choice lists.\n for (const child of this.dataset[$getChildren]()) {\n if (child[$nodeName] !== \"data\") {\n child[$toString](buf);\n }\n }\n }\n this.data[$toString](buf);\n buf.push(\"\");\n\n return buf.join(\"\");\n }\n}\n\nexport { DataHandler };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $acceptWhitespace,\n $clean,\n $content,\n $finalize,\n $globalData,\n $isCDATAXml,\n $nsAttributes,\n $onChild,\n $onText,\n $setId,\n} from \"./xfa_object.js\";\nimport { XMLParserBase, XMLParserErrorCode } from \"../xml_parser.js\";\nimport { Builder } from \"./builder.js\";\nimport { warn } from \"../../shared/util.js\";\n\nclass XFAParser extends XMLParserBase {\n constructor(rootNameSpace = null, richText = false) {\n super();\n this._builder = new Builder(rootNameSpace);\n this._stack = [];\n this._globalData = {\n usedTypefaces: new Set(),\n };\n this._ids = new Map();\n this._current = this._builder.buildRoot(this._ids);\n this._errorCode = XMLParserErrorCode.NoError;\n this._whiteRegex = /^\\s+$/;\n this._nbsps = /\\xa0+/g;\n this._richText = richText;\n }\n\n parse(data) {\n this.parseXml(data);\n\n if (this._errorCode !== XMLParserErrorCode.NoError) {\n return undefined;\n }\n\n this._current[$finalize]();\n\n return this._current.element;\n }\n\n onText(text) {\n // Normally by definition a   is unbreakable\n // but in real life Acrobat can break strings on  .\n text = text.replace(this._nbsps, match => match.slice(1) + \" \");\n if (this._richText || this._current[$acceptWhitespace]()) {\n this._current[$onText](text, this._richText);\n return;\n }\n\n if (this._whiteRegex.test(text)) {\n return;\n }\n this._current[$onText](text.trim());\n }\n\n onCdata(text) {\n this._current[$onText](text);\n }\n\n _mkAttributes(attributes, tagName) {\n // Transform attributes into an object and get out\n // namespaces information.\n let namespace = null;\n let prefixes = null;\n const attributeObj = Object.create({});\n for (const { name, value } of attributes) {\n if (name === \"xmlns\") {\n if (!namespace) {\n namespace = value;\n } else {\n warn(`XFA - multiple namespace definition in <${tagName}>`);\n }\n } else if (name.startsWith(\"xmlns:\")) {\n const prefix = name.substring(\"xmlns:\".length);\n if (!prefixes) {\n prefixes = [];\n }\n prefixes.push({ prefix, value });\n } else {\n const i = name.indexOf(\":\");\n if (i === -1) {\n attributeObj[name] = value;\n } else {\n // Attributes can have their own namespace.\n // For example in data, we can have \n let nsAttrs = attributeObj[$nsAttributes];\n if (!nsAttrs) {\n nsAttrs = attributeObj[$nsAttributes] = Object.create(null);\n }\n const [ns, attrName] = [name.slice(0, i), name.slice(i + 1)];\n let attrs = nsAttrs[ns];\n if (!attrs) {\n attrs = nsAttrs[ns] = Object.create(null);\n }\n attrs[attrName] = value;\n }\n }\n }\n\n return [namespace, prefixes, attributeObj];\n }\n\n _getNameAndPrefix(name, nsAgnostic) {\n const i = name.indexOf(\":\");\n if (i === -1) {\n return [name, null];\n }\n return [name.substring(i + 1), nsAgnostic ? \"\" : name.substring(0, i)];\n }\n\n onBeginElement(tagName, attributes, isEmpty) {\n const [namespace, prefixes, attributesObj] = this._mkAttributes(\n attributes,\n tagName\n );\n const [name, nsPrefix] = this._getNameAndPrefix(\n tagName,\n this._builder.isNsAgnostic()\n );\n const node = this._builder.build({\n nsPrefix,\n name,\n attributes: attributesObj,\n namespace,\n prefixes,\n });\n node[$globalData] = this._globalData;\n\n if (isEmpty) {\n // No children: just push the node into its parent.\n node[$finalize]();\n if (this._current[$onChild](node)) {\n node[$setId](this._ids);\n }\n node[$clean](this._builder);\n return;\n }\n\n this._stack.push(this._current);\n this._current = node;\n }\n\n onEndElement(name) {\n const node = this._current;\n if (node[$isCDATAXml]() && typeof node[$content] === \"string\") {\n const parser = new XFAParser();\n parser._globalData = this._globalData;\n const root = parser.parse(node[$content]);\n node[$content] = null;\n node[$onChild](root);\n }\n\n node[$finalize]();\n this._current = this._stack.pop();\n if (this._current[$onChild](node)) {\n node[$setId](this._ids);\n }\n node[$clean](this._builder);\n }\n\n onError(code) {\n this._errorCode = code;\n }\n}\n\nexport { XFAParser };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n $cleanup,\n $finalize,\n $ids,\n $isNsAgnostic,\n $nsAttributes,\n $onChild,\n $resolvePrototypes,\n $root,\n XFAObject,\n} from \"./xfa_object.js\";\nimport { NamespaceSetUp } from \"./setup.js\";\nimport { Template } from \"./template.js\";\nimport { UnknownNamespace } from \"./unknown.js\";\nimport { warn } from \"../../shared/util.js\";\n\nclass Root extends XFAObject {\n constructor(ids) {\n super(-1, \"root\", Object.create(null));\n this.element = null;\n this[$ids] = ids;\n }\n\n [$onChild](child) {\n this.element = child;\n return true;\n }\n\n [$finalize]() {\n super[$finalize]();\n if (this.element.template instanceof Template) {\n // Set the root element in $ids using a symbol in order\n // to avoid conflict with real IDs.\n this[$ids].set($root, this.element);\n\n this.element.template[$resolvePrototypes](this[$ids]);\n this.element.template[$ids] = this[$ids];\n }\n }\n}\n\nclass Empty extends XFAObject {\n constructor() {\n super(-1, \"\", Object.create(null));\n }\n\n [$onChild](_) {\n return false;\n }\n}\n\nclass Builder {\n constructor(rootNameSpace = null) {\n this._namespaceStack = [];\n this._nsAgnosticLevel = 0;\n\n // Each prefix has its own stack\n this._namespacePrefixes = new Map();\n this._namespaces = new Map();\n this._nextNsId = Math.max(\n ...Object.values(NamespaceIds).map(({ id }) => id)\n );\n this._currentNamespace =\n rootNameSpace || new UnknownNamespace(++this._nextNsId);\n }\n\n buildRoot(ids) {\n return new Root(ids);\n }\n\n build({ nsPrefix, name, attributes, namespace, prefixes }) {\n const hasNamespaceDef = namespace !== null;\n if (hasNamespaceDef) {\n // Define the current namespace to use.\n this._namespaceStack.push(this._currentNamespace);\n this._currentNamespace = this._searchNamespace(namespace);\n }\n\n if (prefixes) {\n // The xml node may have namespace prefix definitions\n this._addNamespacePrefix(prefixes);\n }\n\n if (attributes.hasOwnProperty($nsAttributes)) {\n // Only support xfa-data namespace.\n const dataTemplate = NamespaceSetUp.datasets;\n const nsAttrs = attributes[$nsAttributes];\n let xfaAttrs = null;\n for (const [ns, attrs] of Object.entries(nsAttrs)) {\n const nsToUse = this._getNamespaceToUse(ns);\n if (nsToUse === dataTemplate) {\n xfaAttrs = { xfa: attrs };\n break;\n }\n }\n if (xfaAttrs) {\n attributes[$nsAttributes] = xfaAttrs;\n } else {\n delete attributes[$nsAttributes];\n }\n }\n\n const namespaceToUse = this._getNamespaceToUse(nsPrefix);\n const node =\n (namespaceToUse && namespaceToUse[$buildXFAObject](name, attributes)) ||\n new Empty();\n\n if (node[$isNsAgnostic]()) {\n this._nsAgnosticLevel++;\n }\n\n // In case the node has some namespace things,\n // we must pop the different stacks.\n if (hasNamespaceDef || prefixes || node[$isNsAgnostic]()) {\n node[$cleanup] = {\n hasNamespace: hasNamespaceDef,\n prefixes,\n nsAgnostic: node[$isNsAgnostic](),\n };\n }\n\n return node;\n }\n\n isNsAgnostic() {\n return this._nsAgnosticLevel > 0;\n }\n\n _searchNamespace(nsName) {\n let ns = this._namespaces.get(nsName);\n if (ns) {\n return ns;\n }\n for (const [name, { check }] of Object.entries(NamespaceIds)) {\n if (check(nsName)) {\n ns = NamespaceSetUp[name];\n if (ns) {\n this._namespaces.set(nsName, ns);\n return ns;\n }\n // The namespace is known but not handled.\n break;\n }\n }\n\n ns = new UnknownNamespace(++this._nextNsId);\n this._namespaces.set(nsName, ns);\n return ns;\n }\n\n _addNamespacePrefix(prefixes) {\n for (const { prefix, value } of prefixes) {\n const namespace = this._searchNamespace(value);\n let prefixStack = this._namespacePrefixes.get(prefix);\n if (!prefixStack) {\n prefixStack = [];\n this._namespacePrefixes.set(prefix, prefixStack);\n }\n prefixStack.push(namespace);\n }\n }\n\n _getNamespaceToUse(prefix) {\n if (!prefix) {\n return this._currentNamespace;\n }\n const prefixStack = this._namespacePrefixes.get(prefix);\n if (prefixStack && prefixStack.length > 0) {\n return prefixStack[prefixStack.length - 1];\n }\n\n warn(`Unknown namespace prefix: ${prefix}.`);\n return null;\n }\n\n clean(data) {\n const { hasNamespace, prefixes, nsAgnostic } = data;\n if (hasNamespace) {\n this._currentNamespace = this._namespaceStack.pop();\n }\n if (prefixes) {\n prefixes.forEach(({ prefix }) => {\n this._namespacePrefixes.get(prefix).pop();\n });\n }\n if (nsAgnostic) {\n this._nsAgnosticLevel--;\n }\n }\n}\n\nexport { Builder };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ConfigNamespace } from \"./config.js\";\nimport { ConnectionSetNamespace } from \"./connection_set.js\";\nimport { DatasetsNamespace } from \"./datasets.js\";\nimport { LocaleSetNamespace } from \"./locale_set.js\";\nimport { SignatureNamespace } from \"./signature.js\";\nimport { StylesheetNamespace } from \"./stylesheet.js\";\nimport { TemplateNamespace } from \"./template.js\";\nimport { XdpNamespace } from \"./xdp.js\";\nimport { XhtmlNamespace } from \"./xhtml.js\";\n\nconst NamespaceSetUp = {\n config: ConfigNamespace,\n connection: ConnectionSetNamespace,\n datasets: DatasetsNamespace,\n localeSet: LocaleSetNamespace,\n signature: SignatureNamespace,\n stylesheet: StylesheetNamespace,\n template: TemplateNamespace,\n xdp: XdpNamespace,\n xhtml: XhtmlNamespace,\n};\n\nexport { NamespaceSetUp };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n $content,\n $finalize,\n ContentObject,\n IntegerObject,\n Option01,\n Option10,\n OptionObject,\n StringObject,\n XFAObject,\n XFAObjectArray,\n} from \"./xfa_object.js\";\nimport { getInteger, getStringOption } from \"./utils.js\";\nimport { shadow, warn } from \"../../shared/util.js\";\n\nconst CONFIG_NS_ID = NamespaceIds.config.id;\n\nclass Acrobat extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"acrobat\", /* hasChildren = */ true);\n this.acrobat7 = null;\n this.autoSave = null;\n this.common = null;\n this.validate = null;\n this.validateApprovalSignatures = null;\n this.submitUrl = new XFAObjectArray();\n }\n}\n\nclass Acrobat7 extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"acrobat7\", /* hasChildren = */ true);\n this.dynamicRender = null;\n }\n}\n\nclass ADBE_JSConsole extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"ADBE_JSConsole\", [\"delegate\", \"Enable\", \"Disable\"]);\n }\n}\n\nclass ADBE_JSDebugger extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"ADBE_JSDebugger\", [\"delegate\", \"Enable\", \"Disable\"]);\n }\n}\n\nclass AddSilentPrint extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"addSilentPrint\");\n }\n}\n\nclass AddViewerPreferences extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"addViewerPreferences\");\n }\n}\n\nclass AdjustData extends Option10 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"adjustData\");\n }\n}\n\nclass AdobeExtensionLevel extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"adobeExtensionLevel\", 0, n => n >= 1 && n <= 8);\n }\n}\n\nclass Agent extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"agent\", /* hasChildren = */ true);\n this.name = attributes.name ? attributes.name.trim() : \"\";\n this.common = new XFAObjectArray();\n }\n}\n\nclass AlwaysEmbed extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"alwaysEmbed\");\n }\n}\n\nclass Amd extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"amd\");\n }\n}\n\nclass Area extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"area\");\n this.level = getInteger({\n data: attributes.level,\n defaultValue: 0,\n validate: n => n >= 1 && n <= 3,\n });\n this.name = getStringOption(attributes.name, [\n \"\",\n \"barcode\",\n \"coreinit\",\n \"deviceDriver\",\n \"font\",\n \"general\",\n \"layout\",\n \"merge\",\n \"script\",\n \"signature\",\n \"sourceSet\",\n \"templateCache\",\n ]);\n }\n}\n\nclass Attributes extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"attributes\", [\"preserve\", \"delegate\", \"ignore\"]);\n }\n}\n\nclass AutoSave extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"autoSave\", [\"disabled\", \"enabled\"]);\n }\n}\n\nclass Base extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"base\");\n }\n}\n\nclass BatchOutput extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"batchOutput\");\n this.format = getStringOption(attributes.format, [\n \"none\",\n \"concat\",\n \"zip\",\n \"zipCompress\",\n ]);\n }\n}\n\nclass BehaviorOverride extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"behaviorOverride\");\n }\n\n [$finalize]() {\n this[$content] = new Map(\n this[$content]\n .trim()\n .split(/\\s+/)\n .filter(x => x.includes(\":\"))\n .map(x => x.split(\":\", 2))\n );\n }\n}\n\nclass Cache extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"cache\", /* hasChildren = */ true);\n this.templateCache = null;\n }\n}\n\nclass Change extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"change\");\n }\n}\n\nclass Common extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"common\", /* hasChildren = */ true);\n this.data = null;\n this.locale = null;\n this.localeSet = null;\n this.messaging = null;\n this.suppressBanner = null;\n this.template = null;\n this.validationMessaging = null;\n this.versionControl = null;\n this.log = new XFAObjectArray();\n }\n}\n\nclass Compress extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"compress\");\n this.scope = getStringOption(attributes.scope, [\"imageOnly\", \"document\"]);\n }\n}\n\nclass CompressLogicalStructure extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"compressLogicalStructure\");\n }\n}\n\nclass CompressObjectStream extends Option10 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"compressObjectStream\");\n }\n}\n\nclass Compression extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"compression\", /* hasChildren = */ true);\n this.compressLogicalStructure = null;\n this.compressObjectStream = null;\n this.level = null;\n this.type = null;\n }\n}\n\nclass Config extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"config\", /* hasChildren = */ true);\n this.acrobat = null;\n this.present = null;\n this.trace = null;\n this.agent = new XFAObjectArray();\n }\n}\n\nclass Conformance extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"conformance\", [\"A\", \"B\"]);\n }\n}\n\nclass ContentCopy extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"contentCopy\");\n }\n}\n\nclass Copies extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"copies\", 1, n => n >= 1);\n }\n}\n\nclass Creator extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"creator\");\n }\n}\n\nclass CurrentPage extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"currentPage\", 0, n => n >= 0);\n }\n}\n\nclass Data extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"data\", /* hasChildren = */ true);\n this.adjustData = null;\n this.attributes = null;\n this.incrementalLoad = null;\n this.outputXSL = null;\n this.range = null;\n this.record = null;\n this.startNode = null;\n this.uri = null;\n this.window = null;\n this.xsl = null;\n this.excludeNS = new XFAObjectArray();\n this.transform = new XFAObjectArray();\n }\n}\n\nclass Debug extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"debug\", /* hasChildren = */ true);\n this.uri = null;\n }\n}\n\nclass DefaultTypeface extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"defaultTypeface\");\n this.writingScript = getStringOption(attributes.writingScript, [\n \"*\",\n \"Arabic\",\n \"Cyrillic\",\n \"EastEuropeanRoman\",\n \"Greek\",\n \"Hebrew\",\n \"Japanese\",\n \"Korean\",\n \"Roman\",\n \"SimplifiedChinese\",\n \"Thai\",\n \"TraditionalChinese\",\n \"Vietnamese\",\n ]);\n }\n}\n\nclass Destination extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"destination\", [\n \"pdf\",\n \"pcl\",\n \"ps\",\n \"webClient\",\n \"zpl\",\n ]);\n }\n}\n\nclass DocumentAssembly extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"documentAssembly\");\n }\n}\n\nclass Driver extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"driver\", /* hasChildren = */ true);\n this.name = attributes.name ? attributes.name.trim() : \"\";\n this.fontInfo = null;\n this.xdc = null;\n }\n}\n\nclass DuplexOption extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"duplexOption\", [\n \"simplex\",\n \"duplexFlipLongEdge\",\n \"duplexFlipShortEdge\",\n ]);\n }\n}\n\nclass DynamicRender extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"dynamicRender\", [\"forbidden\", \"required\"]);\n }\n}\n\nclass Embed extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"embed\");\n }\n}\n\nclass Encrypt extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"encrypt\");\n }\n}\n\nclass Encryption extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"encryption\", /* hasChildren = */ true);\n this.encrypt = null;\n this.encryptionLevel = null;\n this.permissions = null;\n }\n}\n\nclass EncryptionLevel extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"encryptionLevel\", [\"40bit\", \"128bit\"]);\n }\n}\n\nclass Enforce extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"enforce\");\n }\n}\n\nclass Equate extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"equate\");\n\n this.force = getInteger({\n data: attributes.force,\n defaultValue: 1,\n validate: n => n === 0,\n });\n\n this.from = attributes.from || \"\";\n this.to = attributes.to || \"\";\n }\n}\n\nclass EquateRange extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"equateRange\");\n\n this.from = attributes.from || \"\";\n this.to = attributes.to || \"\";\n this._unicodeRange = attributes.unicodeRange || \"\";\n }\n\n get unicodeRange() {\n const ranges = [];\n const unicodeRegex = /U\\+([0-9a-fA-F]+)/;\n const unicodeRange = this._unicodeRange;\n for (let range of unicodeRange\n .split(\",\")\n .map(x => x.trim())\n .filter(x => !!x)) {\n range = range.split(\"-\", 2).map(x => {\n const found = x.match(unicodeRegex);\n if (!found) {\n return 0;\n }\n return parseInt(found[1], 16);\n });\n if (range.length === 1) {\n range.push(range[0]);\n }\n ranges.push(range);\n }\n return shadow(this, \"unicodeRange\", ranges);\n }\n}\n\nclass Exclude extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"exclude\");\n }\n\n [$finalize]() {\n this[$content] = this[$content]\n .trim()\n .split(/\\s+/)\n .filter(\n x =>\n x &&\n [\n \"calculate\",\n \"close\",\n \"enter\",\n \"exit\",\n \"initialize\",\n \"ready\",\n \"validate\",\n ].includes(x)\n );\n }\n}\n\nclass ExcludeNS extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"excludeNS\");\n }\n}\n\nclass FlipLabel extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"flipLabel\", [\"usePrinterSetting\", \"on\", \"off\"]);\n }\n}\n\nclass FontInfo extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"fontInfo\", /* hasChildren = */ true);\n this.embed = null;\n this.map = null;\n this.subsetBelow = null;\n this.alwaysEmbed = new XFAObjectArray();\n this.defaultTypeface = new XFAObjectArray();\n this.neverEmbed = new XFAObjectArray();\n }\n}\n\nclass FormFieldFilling extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"formFieldFilling\");\n }\n}\n\nclass GroupParent extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"groupParent\");\n }\n}\n\nclass IfEmpty extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"ifEmpty\", [\n \"dataValue\",\n \"dataGroup\",\n \"ignore\",\n \"remove\",\n ]);\n }\n}\n\nclass IncludeXDPContent extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"includeXDPContent\");\n }\n}\n\nclass IncrementalLoad extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"incrementalLoad\", [\"none\", \"forwardOnly\"]);\n }\n}\n\nclass IncrementalMerge extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"incrementalMerge\");\n }\n}\n\nclass Interactive extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"interactive\");\n }\n}\n\nclass Jog extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"jog\", [\"usePrinterSetting\", \"none\", \"pageSet\"]);\n }\n}\n\nclass LabelPrinter extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"labelPrinter\", /* hasChildren = */ true);\n this.name = getStringOption(attributes.name, [\"zpl\", \"dpl\", \"ipl\", \"tcpl\"]);\n this.batchOutput = null;\n this.flipLabel = null;\n this.fontInfo = null;\n this.xdc = null;\n }\n}\n\nclass Layout extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"layout\", [\"paginate\", \"panel\"]);\n }\n}\n\nclass Level extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"level\", 0, n => n > 0);\n }\n}\n\nclass Linearized extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"linearized\");\n }\n}\n\nclass Locale extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"locale\");\n }\n}\n\nclass LocaleSet extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"localeSet\");\n }\n}\n\nclass Log extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"log\", /* hasChildren = */ true);\n this.mode = null;\n this.threshold = null;\n this.to = null;\n this.uri = null;\n }\n}\n\n// Renamed in MapElement to avoid confusion with usual js Map.\nclass MapElement extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"map\", /* hasChildren = */ true);\n this.equate = new XFAObjectArray();\n this.equateRange = new XFAObjectArray();\n }\n}\n\nclass MediumInfo extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"mediumInfo\", /* hasChildren = */ true);\n this.map = null;\n }\n}\n\nclass Message extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"message\", /* hasChildren = */ true);\n this.msgId = null;\n this.severity = null;\n }\n}\n\nclass Messaging extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"messaging\", /* hasChildren = */ true);\n this.message = new XFAObjectArray();\n }\n}\n\nclass Mode extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"mode\", [\"append\", \"overwrite\"]);\n }\n}\n\nclass ModifyAnnots extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"modifyAnnots\");\n }\n}\n\nclass MsgId extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"msgId\", 1, n => n >= 1);\n }\n}\n\nclass NameAttr extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"nameAttr\");\n }\n}\n\nclass NeverEmbed extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"neverEmbed\");\n }\n}\n\nclass NumberOfCopies extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"numberOfCopies\", null, n => n >= 2 && n <= 5);\n }\n}\n\nclass OpenAction extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"openAction\", /* hasChildren = */ true);\n this.destination = null;\n }\n}\n\nclass Output extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"output\", /* hasChildren = */ true);\n this.to = null;\n this.type = null;\n this.uri = null;\n }\n}\n\nclass OutputBin extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"outputBin\");\n }\n}\n\nclass OutputXSL extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"outputXSL\", /* hasChildren = */ true);\n this.uri = null;\n }\n}\n\nclass Overprint extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"overprint\", [\"none\", \"both\", \"draw\", \"field\"]);\n }\n}\n\nclass Packets extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"packets\");\n }\n\n [$finalize]() {\n if (this[$content] === \"*\") {\n return;\n }\n this[$content] = this[$content]\n .trim()\n .split(/\\s+/)\n .filter(x =>\n [\"config\", \"datasets\", \"template\", \"xfdf\", \"xslt\"].includes(x)\n );\n }\n}\n\nclass PageOffset extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pageOffset\");\n this.x = getInteger({\n data: attributes.x,\n defaultValue: \"useXDCSetting\",\n validate: n => true,\n });\n this.y = getInteger({\n data: attributes.y,\n defaultValue: \"useXDCSetting\",\n validate: n => true,\n });\n }\n}\n\nclass PageRange extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pageRange\");\n }\n\n [$finalize]() {\n const numbers = this[$content]\n .trim()\n .split(/\\s+/)\n .map(x => parseInt(x, 10));\n const ranges = [];\n for (let i = 0, ii = numbers.length; i < ii; i += 2) {\n ranges.push(numbers.slice(i, i + 2));\n }\n this[$content] = ranges;\n }\n}\n\nclass Pagination extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pagination\", [\n \"simplex\",\n \"duplexShortEdge\",\n \"duplexLongEdge\",\n ]);\n }\n}\n\nclass PaginationOverride extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"paginationOverride\", [\n \"none\",\n \"forceDuplex\",\n \"forceDuplexLongEdge\",\n \"forceDuplexShortEdge\",\n \"forceSimplex\",\n ]);\n }\n}\n\nclass Part extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"part\", 1, n => false);\n }\n}\n\nclass Pcl extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pcl\", /* hasChildren = */ true);\n this.name = attributes.name || \"\";\n this.batchOutput = null;\n this.fontInfo = null;\n this.jog = null;\n this.mediumInfo = null;\n this.outputBin = null;\n this.pageOffset = null;\n this.staple = null;\n this.xdc = null;\n }\n}\n\nclass Pdf extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pdf\", /* hasChildren = */ true);\n this.name = attributes.name || \"\";\n this.adobeExtensionLevel = null;\n this.batchOutput = null;\n this.compression = null;\n this.creator = null;\n this.encryption = null;\n this.fontInfo = null;\n this.interactive = null;\n this.linearized = null;\n this.openAction = null;\n this.pdfa = null;\n this.producer = null;\n this.renderPolicy = null;\n this.scriptModel = null;\n this.silentPrint = null;\n this.submitFormat = null;\n this.tagged = null;\n this.version = null;\n this.viewerPreferences = null;\n this.xdc = null;\n }\n}\n\nclass Pdfa extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pdfa\", /* hasChildren = */ true);\n this.amd = null;\n this.conformance = null;\n this.includeXDPContent = null;\n this.part = null;\n }\n}\n\nclass Permissions extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"permissions\", /* hasChildren = */ true);\n this.accessibleContent = null;\n this.change = null;\n this.contentCopy = null;\n this.documentAssembly = null;\n this.formFieldFilling = null;\n this.modifyAnnots = null;\n this.plaintextMetadata = null;\n this.print = null;\n this.printHighQuality = null;\n }\n}\n\nclass PickTrayByPDFSize extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pickTrayByPDFSize\");\n }\n}\n\nclass Picture extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"picture\");\n }\n\n // TODO: check the validity of the picture clause.\n // See page 1150 in the spec.\n}\n\nclass PlaintextMetadata extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"plaintextMetadata\");\n }\n}\n\nclass Presence extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"presence\", [\n \"preserve\",\n \"dissolve\",\n \"dissolveStructure\",\n \"ignore\",\n \"remove\",\n ]);\n }\n}\n\nclass Present extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"present\", /* hasChildren = */ true);\n this.behaviorOverride = null;\n this.cache = null;\n this.common = null;\n this.copies = null;\n this.destination = null;\n this.incrementalMerge = null;\n this.layout = null;\n this.output = null;\n this.overprint = null;\n this.pagination = null;\n this.paginationOverride = null;\n this.script = null;\n this.validate = null;\n this.xdp = null;\n this.driver = new XFAObjectArray();\n this.labelPrinter = new XFAObjectArray();\n this.pcl = new XFAObjectArray();\n this.pdf = new XFAObjectArray();\n this.ps = new XFAObjectArray();\n this.submitUrl = new XFAObjectArray();\n this.webClient = new XFAObjectArray();\n this.zpl = new XFAObjectArray();\n }\n}\n\nclass Print extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"print\");\n }\n}\n\nclass PrintHighQuality extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"printHighQuality\");\n }\n}\n\nclass PrintScaling extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"printScaling\", [\"appdefault\", \"noScaling\"]);\n }\n}\n\nclass PrinterName extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"printerName\");\n }\n}\n\nclass Producer extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"producer\");\n }\n}\n\nclass Ps extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"ps\", /* hasChildren = */ true);\n this.name = attributes.name || \"\";\n this.batchOutput = null;\n this.fontInfo = null;\n this.jog = null;\n this.mediumInfo = null;\n this.outputBin = null;\n this.staple = null;\n this.xdc = null;\n }\n}\n\nclass Range extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"range\");\n }\n\n [$finalize]() {\n this[$content] = this[$content]\n .trim()\n .split(/\\s*,\\s*/, 2)\n .map(range => range.split(\"-\").map(x => parseInt(x.trim(), 10)))\n .filter(range => range.every(x => !isNaN(x)))\n .map(range => {\n if (range.length === 1) {\n range.push(range[0]);\n }\n return range;\n });\n }\n}\n\nclass Record extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"record\");\n }\n\n [$finalize]() {\n this[$content] = this[$content].trim();\n const n = parseInt(this[$content], 10);\n if (!isNaN(n) && n >= 0) {\n this[$content] = n;\n }\n }\n}\n\nclass Relevant extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"relevant\");\n }\n\n [$finalize]() {\n this[$content] = this[$content].trim().split(/\\s+/);\n }\n}\n\nclass Rename extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"rename\");\n }\n\n [$finalize]() {\n this[$content] = this[$content].trim();\n // String must be a XFA name: same as XML one except that there\n // is no colon.\n if (\n this[$content].toLowerCase().startsWith(\"xml\") ||\n this[$content].match(new RegExp(\"[\\\\p{L}_][\\\\p{L}\\\\d._\\\\p{M}-]*\", \"u\"))\n ) {\n warn(\"XFA - Rename: invalid XFA name\");\n }\n }\n}\n\nclass RenderPolicy extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"renderPolicy\", [\"server\", \"client\"]);\n }\n}\n\nclass RunScripts extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"runScripts\", [\"both\", \"client\", \"none\", \"server\"]);\n }\n}\n\nclass Script extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"script\", /* hasChildren = */ true);\n this.currentPage = null;\n this.exclude = null;\n this.runScripts = null;\n }\n}\n\nclass ScriptModel extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"scriptModel\", [\"XFA\", \"none\"]);\n }\n}\n\nclass Severity extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"severity\", [\n \"ignore\",\n \"error\",\n \"information\",\n \"trace\",\n \"warning\",\n ]);\n }\n}\n\nclass SilentPrint extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"silentPrint\", /* hasChildren = */ true);\n this.addSilentPrint = null;\n this.printerName = null;\n }\n}\n\nclass Staple extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"staple\");\n this.mode = getStringOption(attributes.mode, [\n \"usePrinterSetting\",\n \"on\",\n \"off\",\n ]);\n }\n}\n\nclass StartNode extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"startNode\");\n }\n}\n\nclass StartPage extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"startPage\", 0, n => true);\n }\n}\n\nclass SubmitFormat extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"submitFormat\", [\n \"html\",\n \"delegate\",\n \"fdf\",\n \"xml\",\n \"pdf\",\n ]);\n }\n}\n\nclass SubmitUrl extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"submitUrl\");\n }\n}\n\nclass SubsetBelow extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"subsetBelow\", 100, n => n >= 0 && n <= 100);\n }\n}\n\nclass SuppressBanner extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"suppressBanner\");\n }\n}\n\nclass Tagged extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"tagged\");\n }\n}\n\nclass Template extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"template\", /* hasChildren = */ true);\n this.base = null;\n this.relevant = null;\n this.startPage = null;\n this.uri = null;\n this.xsl = null;\n }\n}\n\nclass Threshold extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"threshold\", [\n \"trace\",\n \"error\",\n \"information\",\n \"warning\",\n ]);\n }\n}\n\nclass To extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"to\", [\n \"null\",\n \"memory\",\n \"stderr\",\n \"stdout\",\n \"system\",\n \"uri\",\n ]);\n }\n}\n\nclass TemplateCache extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"templateCache\");\n this.maxEntries = getInteger({\n data: attributes.maxEntries,\n defaultValue: 5,\n validate: n => n >= 0,\n });\n }\n}\n\nclass Trace extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"trace\", /* hasChildren = */ true);\n this.area = new XFAObjectArray();\n }\n}\n\nclass Transform extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"transform\", /* hasChildren = */ true);\n this.groupParent = null;\n this.ifEmpty = null;\n this.nameAttr = null;\n this.picture = null;\n this.presence = null;\n this.rename = null;\n this.whitespace = null;\n }\n}\n\nclass Type extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"type\", [\n \"none\",\n \"ascii85\",\n \"asciiHex\",\n \"ccittfax\",\n \"flate\",\n \"lzw\",\n \"runLength\",\n \"native\",\n \"xdp\",\n \"mergedXDP\",\n ]);\n }\n}\n\nclass Uri extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"uri\");\n }\n}\n\nclass Validate extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"validate\", [\n \"preSubmit\",\n \"prePrint\",\n \"preExecute\",\n \"preSave\",\n ]);\n }\n}\n\nclass ValidateApprovalSignatures extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"validateApprovalSignatures\");\n }\n\n [$finalize]() {\n this[$content] = this[$content]\n .trim()\n .split(/\\s+/)\n .filter(x => [\"docReady\", \"postSign\"].includes(x));\n }\n}\n\nclass ValidationMessaging extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"validationMessaging\", [\n \"allMessagesIndividually\",\n \"allMessagesTogether\",\n \"firstMessageOnly\",\n \"noMessages\",\n ]);\n }\n}\n\nclass Version extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"version\", [\"1.7\", \"1.6\", \"1.5\", \"1.4\", \"1.3\", \"1.2\"]);\n }\n}\n\nclass VersionControl extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"VersionControl\");\n this.outputBelow = getStringOption(attributes.outputBelow, [\n \"warn\",\n \"error\",\n \"update\",\n ]);\n this.sourceAbove = getStringOption(attributes.sourceAbove, [\n \"warn\",\n \"error\",\n ]);\n this.sourceBelow = getStringOption(attributes.sourceBelow, [\n \"update\",\n \"maintain\",\n ]);\n }\n}\n\nclass ViewerPreferences extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"viewerPreferences\", /* hasChildren = */ true);\n this.ADBE_JSConsole = null;\n this.ADBE_JSDebugger = null;\n this.addViewerPreferences = null;\n this.duplexOption = null;\n this.enforce = null;\n this.numberOfCopies = null;\n this.pageRange = null;\n this.pickTrayByPDFSize = null;\n this.printScaling = null;\n }\n}\n\nclass WebClient extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"webClient\", /* hasChildren = */ true);\n this.name = attributes.name ? attributes.name.trim() : \"\";\n this.fontInfo = null;\n this.xdc = null;\n }\n}\n\nclass Whitespace extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"whitespace\", [\n \"preserve\",\n \"ltrim\",\n \"normalize\",\n \"rtrim\",\n \"trim\",\n ]);\n }\n}\n\nclass Window extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"window\");\n }\n\n [$finalize]() {\n const pair = this[$content]\n .trim()\n .split(/\\s*,\\s*/, 2)\n .map(x => parseInt(x, 10));\n if (pair.some(x => isNaN(x))) {\n this[$content] = [0, 0];\n return;\n }\n if (pair.length === 1) {\n pair.push(pair[0]);\n }\n this[$content] = pair;\n }\n}\n\nclass Xdc extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"xdc\", /* hasChildren = */ true);\n this.uri = new XFAObjectArray();\n this.xsl = new XFAObjectArray();\n }\n}\n\nclass Xdp extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"xdp\", /* hasChildren = */ true);\n this.packets = null;\n }\n}\n\nclass Xsl extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"xsl\", /* hasChildren = */ true);\n this.debug = null;\n this.uri = null;\n }\n}\n\nclass Zpl extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"zpl\", /* hasChildren = */ true);\n this.name = attributes.name ? attributes.name.trim() : \"\";\n this.batchOutput = null;\n this.flipLabel = null;\n this.fontInfo = null;\n this.xdc = null;\n }\n}\n\nclass ConfigNamespace {\n static [$buildXFAObject](name, attributes) {\n if (ConfigNamespace.hasOwnProperty(name)) {\n return ConfigNamespace[name](attributes);\n }\n return undefined;\n }\n\n static acrobat(attrs) {\n return new Acrobat(attrs);\n }\n\n static acrobat7(attrs) {\n return new Acrobat7(attrs);\n }\n\n static ADBE_JSConsole(attrs) {\n return new ADBE_JSConsole(attrs);\n }\n\n static ADBE_JSDebugger(attrs) {\n return new ADBE_JSDebugger(attrs);\n }\n\n static addSilentPrint(attrs) {\n return new AddSilentPrint(attrs);\n }\n\n static addViewerPreferences(attrs) {\n return new AddViewerPreferences(attrs);\n }\n\n static adjustData(attrs) {\n return new AdjustData(attrs);\n }\n\n static adobeExtensionLevel(attrs) {\n return new AdobeExtensionLevel(attrs);\n }\n\n static agent(attrs) {\n return new Agent(attrs);\n }\n\n static alwaysEmbed(attrs) {\n return new AlwaysEmbed(attrs);\n }\n\n static amd(attrs) {\n return new Amd(attrs);\n }\n\n static area(attrs) {\n return new Area(attrs);\n }\n\n static attributes(attrs) {\n return new Attributes(attrs);\n }\n\n static autoSave(attrs) {\n return new AutoSave(attrs);\n }\n\n static base(attrs) {\n return new Base(attrs);\n }\n\n static batchOutput(attrs) {\n return new BatchOutput(attrs);\n }\n\n static behaviorOverride(attrs) {\n return new BehaviorOverride(attrs);\n }\n\n static cache(attrs) {\n return new Cache(attrs);\n }\n\n static change(attrs) {\n return new Change(attrs);\n }\n\n static common(attrs) {\n return new Common(attrs);\n }\n\n static compress(attrs) {\n return new Compress(attrs);\n }\n\n static compressLogicalStructure(attrs) {\n return new CompressLogicalStructure(attrs);\n }\n\n static compressObjectStream(attrs) {\n return new CompressObjectStream(attrs);\n }\n\n static compression(attrs) {\n return new Compression(attrs);\n }\n\n static config(attrs) {\n return new Config(attrs);\n }\n\n static conformance(attrs) {\n return new Conformance(attrs);\n }\n\n static contentCopy(attrs) {\n return new ContentCopy(attrs);\n }\n\n static copies(attrs) {\n return new Copies(attrs);\n }\n\n static creator(attrs) {\n return new Creator(attrs);\n }\n\n static currentPage(attrs) {\n return new CurrentPage(attrs);\n }\n\n static data(attrs) {\n return new Data(attrs);\n }\n\n static debug(attrs) {\n return new Debug(attrs);\n }\n\n static defaultTypeface(attrs) {\n return new DefaultTypeface(attrs);\n }\n\n static destination(attrs) {\n return new Destination(attrs);\n }\n\n static documentAssembly(attrs) {\n return new DocumentAssembly(attrs);\n }\n\n static driver(attrs) {\n return new Driver(attrs);\n }\n\n static duplexOption(attrs) {\n return new DuplexOption(attrs);\n }\n\n static dynamicRender(attrs) {\n return new DynamicRender(attrs);\n }\n\n static embed(attrs) {\n return new Embed(attrs);\n }\n\n static encrypt(attrs) {\n return new Encrypt(attrs);\n }\n\n static encryption(attrs) {\n return new Encryption(attrs);\n }\n\n static encryptionLevel(attrs) {\n return new EncryptionLevel(attrs);\n }\n\n static enforce(attrs) {\n return new Enforce(attrs);\n }\n\n static equate(attrs) {\n return new Equate(attrs);\n }\n\n static equateRange(attrs) {\n return new EquateRange(attrs);\n }\n\n static exclude(attrs) {\n return new Exclude(attrs);\n }\n\n static excludeNS(attrs) {\n return new ExcludeNS(attrs);\n }\n\n static flipLabel(attrs) {\n return new FlipLabel(attrs);\n }\n\n static fontInfo(attrs) {\n return new FontInfo(attrs);\n }\n\n static formFieldFilling(attrs) {\n return new FormFieldFilling(attrs);\n }\n\n static groupParent(attrs) {\n return new GroupParent(attrs);\n }\n\n static ifEmpty(attrs) {\n return new IfEmpty(attrs);\n }\n\n static includeXDPContent(attrs) {\n return new IncludeXDPContent(attrs);\n }\n\n static incrementalLoad(attrs) {\n return new IncrementalLoad(attrs);\n }\n\n static incrementalMerge(attrs) {\n return new IncrementalMerge(attrs);\n }\n\n static interactive(attrs) {\n return new Interactive(attrs);\n }\n\n static jog(attrs) {\n return new Jog(attrs);\n }\n\n static labelPrinter(attrs) {\n return new LabelPrinter(attrs);\n }\n\n static layout(attrs) {\n return new Layout(attrs);\n }\n\n static level(attrs) {\n return new Level(attrs);\n }\n\n static linearized(attrs) {\n return new Linearized(attrs);\n }\n\n static locale(attrs) {\n return new Locale(attrs);\n }\n\n static localeSet(attrs) {\n return new LocaleSet(attrs);\n }\n\n static log(attrs) {\n return new Log(attrs);\n }\n\n static map(attrs) {\n return new MapElement(attrs);\n }\n\n static mediumInfo(attrs) {\n return new MediumInfo(attrs);\n }\n\n static message(attrs) {\n return new Message(attrs);\n }\n\n static messaging(attrs) {\n return new Messaging(attrs);\n }\n\n static mode(attrs) {\n return new Mode(attrs);\n }\n\n static modifyAnnots(attrs) {\n return new ModifyAnnots(attrs);\n }\n\n static msgId(attrs) {\n return new MsgId(attrs);\n }\n\n static nameAttr(attrs) {\n return new NameAttr(attrs);\n }\n\n static neverEmbed(attrs) {\n return new NeverEmbed(attrs);\n }\n\n static numberOfCopies(attrs) {\n return new NumberOfCopies(attrs);\n }\n\n static openAction(attrs) {\n return new OpenAction(attrs);\n }\n\n static output(attrs) {\n return new Output(attrs);\n }\n\n static outputBin(attrs) {\n return new OutputBin(attrs);\n }\n\n static outputXSL(attrs) {\n return new OutputXSL(attrs);\n }\n\n static overprint(attrs) {\n return new Overprint(attrs);\n }\n\n static packets(attrs) {\n return new Packets(attrs);\n }\n\n static pageOffset(attrs) {\n return new PageOffset(attrs);\n }\n\n static pageRange(attrs) {\n return new PageRange(attrs);\n }\n\n static pagination(attrs) {\n return new Pagination(attrs);\n }\n\n static paginationOverride(attrs) {\n return new PaginationOverride(attrs);\n }\n\n static part(attrs) {\n return new Part(attrs);\n }\n\n static pcl(attrs) {\n return new Pcl(attrs);\n }\n\n static pdf(attrs) {\n return new Pdf(attrs);\n }\n\n static pdfa(attrs) {\n return new Pdfa(attrs);\n }\n\n static permissions(attrs) {\n return new Permissions(attrs);\n }\n\n static pickTrayByPDFSize(attrs) {\n return new PickTrayByPDFSize(attrs);\n }\n\n static picture(attrs) {\n return new Picture(attrs);\n }\n\n static plaintextMetadata(attrs) {\n return new PlaintextMetadata(attrs);\n }\n\n static presence(attrs) {\n return new Presence(attrs);\n }\n\n static present(attrs) {\n return new Present(attrs);\n }\n\n static print(attrs) {\n return new Print(attrs);\n }\n\n static printHighQuality(attrs) {\n return new PrintHighQuality(attrs);\n }\n\n static printScaling(attrs) {\n return new PrintScaling(attrs);\n }\n\n static printerName(attrs) {\n return new PrinterName(attrs);\n }\n\n static producer(attrs) {\n return new Producer(attrs);\n }\n\n static ps(attrs) {\n return new Ps(attrs);\n }\n\n static range(attrs) {\n return new Range(attrs);\n }\n\n static record(attrs) {\n return new Record(attrs);\n }\n\n static relevant(attrs) {\n return new Relevant(attrs);\n }\n\n static rename(attrs) {\n return new Rename(attrs);\n }\n\n static renderPolicy(attrs) {\n return new RenderPolicy(attrs);\n }\n\n static runScripts(attrs) {\n return new RunScripts(attrs);\n }\n\n static script(attrs) {\n return new Script(attrs);\n }\n\n static scriptModel(attrs) {\n return new ScriptModel(attrs);\n }\n\n static severity(attrs) {\n return new Severity(attrs);\n }\n\n static silentPrint(attrs) {\n return new SilentPrint(attrs);\n }\n\n static staple(attrs) {\n return new Staple(attrs);\n }\n\n static startNode(attrs) {\n return new StartNode(attrs);\n }\n\n static startPage(attrs) {\n return new StartPage(attrs);\n }\n\n static submitFormat(attrs) {\n return new SubmitFormat(attrs);\n }\n\n static submitUrl(attrs) {\n return new SubmitUrl(attrs);\n }\n\n static subsetBelow(attrs) {\n return new SubsetBelow(attrs);\n }\n\n static suppressBanner(attrs) {\n return new SuppressBanner(attrs);\n }\n\n static tagged(attrs) {\n return new Tagged(attrs);\n }\n\n static template(attrs) {\n return new Template(attrs);\n }\n\n static templateCache(attrs) {\n return new TemplateCache(attrs);\n }\n\n static threshold(attrs) {\n return new Threshold(attrs);\n }\n\n static to(attrs) {\n return new To(attrs);\n }\n\n static trace(attrs) {\n return new Trace(attrs);\n }\n\n static transform(attrs) {\n return new Transform(attrs);\n }\n\n static type(attrs) {\n return new Type(attrs);\n }\n\n static uri(attrs) {\n return new Uri(attrs);\n }\n\n static validate(attrs) {\n return new Validate(attrs);\n }\n\n static validateApprovalSignatures(attrs) {\n return new ValidateApprovalSignatures(attrs);\n }\n\n static validationMessaging(attrs) {\n return new ValidationMessaging(attrs);\n }\n\n static version(attrs) {\n return new Version(attrs);\n }\n\n static versionControl(attrs) {\n return new VersionControl(attrs);\n }\n\n static viewerPreferences(attrs) {\n return new ViewerPreferences(attrs);\n }\n\n static webClient(attrs) {\n return new WebClient(attrs);\n }\n\n static whitespace(attrs) {\n return new Whitespace(attrs);\n }\n\n static window(attrs) {\n return new Window(attrs);\n }\n\n static xdc(attrs) {\n return new Xdc(attrs);\n }\n\n static xdp(attrs) {\n return new Xdp(attrs);\n }\n\n static xsl(attrs) {\n return new Xsl(attrs);\n }\n\n static zpl(attrs) {\n return new Zpl(attrs);\n }\n}\n\nexport { ConfigNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport { StringObject, XFAObject, XFAObjectArray } from \"./xfa_object.js\";\n\nconst CONNECTION_SET_NS_ID = NamespaceIds.connectionSet.id;\n\nclass ConnectionSet extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"connectionSet\", /* hasChildren = */ true);\n this.wsdlConnection = new XFAObjectArray();\n this.xmlConnection = new XFAObjectArray();\n this.xsdConnection = new XFAObjectArray();\n }\n}\n\nclass EffectiveInputPolicy extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"effectiveInputPolicy\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass EffectiveOutputPolicy extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"effectiveOutputPolicy\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Operation extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"operation\");\n this.id = attributes.id || \"\";\n this.input = attributes.input || \"\";\n this.name = attributes.name || \"\";\n this.output = attributes.output || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass RootElement extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"rootElement\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass SoapAction extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"soapAction\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass SoapAddress extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"soapAddress\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Uri extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"uri\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass WsdlAddress extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"wsdlAddress\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass WsdlConnection extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"wsdlConnection\", /* hasChildren = */ true);\n this.dataDescription = attributes.dataDescription || \"\";\n this.name = attributes.name || \"\";\n this.effectiveInputPolicy = null;\n this.effectiveOutputPolicy = null;\n this.operation = null;\n this.soapAction = null;\n this.soapAddress = null;\n this.wsdlAddress = null;\n }\n}\n\nclass XmlConnection extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"xmlConnection\", /* hasChildren = */ true);\n this.dataDescription = attributes.dataDescription || \"\";\n this.name = attributes.name || \"\";\n this.uri = null;\n }\n}\n\nclass XsdConnection extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"xsdConnection\", /* hasChildren = */ true);\n this.dataDescription = attributes.dataDescription || \"\";\n this.name = attributes.name || \"\";\n this.rootElement = null;\n this.uri = null;\n }\n}\n\nclass ConnectionSetNamespace {\n static [$buildXFAObject](name, attributes) {\n if (ConnectionSetNamespace.hasOwnProperty(name)) {\n return ConnectionSetNamespace[name](attributes);\n }\n return undefined;\n }\n\n static connectionSet(attrs) {\n return new ConnectionSet(attrs);\n }\n\n static effectiveInputPolicy(attrs) {\n return new EffectiveInputPolicy(attrs);\n }\n\n static effectiveOutputPolicy(attrs) {\n return new EffectiveOutputPolicy(attrs);\n }\n\n static operation(attrs) {\n return new Operation(attrs);\n }\n\n static rootElement(attrs) {\n return new RootElement(attrs);\n }\n\n static soapAction(attrs) {\n return new SoapAction(attrs);\n }\n\n static soapAddress(attrs) {\n return new SoapAddress(attrs);\n }\n\n static uri(attrs) {\n return new Uri(attrs);\n }\n\n static wsdlAddress(attrs) {\n return new WsdlAddress(attrs);\n }\n\n static wsdlConnection(attrs) {\n return new WsdlConnection(attrs);\n }\n\n static xmlConnection(attrs) {\n return new XmlConnection(attrs);\n }\n\n static xsdConnection(attrs) {\n return new XsdConnection(attrs);\n }\n}\n\nexport { ConnectionSetNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $appendChild,\n $isNsAgnostic,\n $namespaceId,\n $nodeName,\n $onChild,\n XFAObject,\n XmlObject,\n} from \"./xfa_object.js\";\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\n\nconst DATASETS_NS_ID = NamespaceIds.datasets.id;\n\nclass Data extends XmlObject {\n constructor(attributes) {\n super(DATASETS_NS_ID, \"data\", attributes);\n }\n\n [$isNsAgnostic]() {\n return true;\n }\n}\n\nclass Datasets extends XFAObject {\n constructor(attributes) {\n super(DATASETS_NS_ID, \"datasets\", /* hasChildren = */ true);\n this.data = null;\n this.Signature = null;\n }\n\n [$onChild](child) {\n const name = child[$nodeName];\n if (\n (name === \"data\" && child[$namespaceId] === DATASETS_NS_ID) ||\n (name === \"Signature\" &&\n child[$namespaceId] === NamespaceIds.signature.id)\n ) {\n this[name] = child;\n }\n this[$appendChild](child);\n }\n}\n\nclass DatasetsNamespace {\n static [$buildXFAObject](name, attributes) {\n if (DatasetsNamespace.hasOwnProperty(name)) {\n return DatasetsNamespace[name](attributes);\n }\n return undefined;\n }\n\n static datasets(attributes) {\n return new Datasets(attributes);\n }\n\n static data(attributes) {\n return new Data(attributes);\n }\n}\n\nexport { DatasetsNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n ContentObject,\n StringObject,\n XFAObject,\n XFAObjectArray,\n} from \"./xfa_object.js\";\nimport { getInteger, getStringOption } from \"./utils.js\";\n\nconst LOCALE_SET_NS_ID = NamespaceIds.localeSet.id;\n\nclass CalendarSymbols extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"calendarSymbols\", /* hasChildren = */ true);\n this.name = \"gregorian\";\n this.dayNames = new XFAObjectArray(2);\n this.eraNames = null;\n this.meridiemNames = null;\n this.monthNames = new XFAObjectArray(2);\n }\n}\n\nclass CurrencySymbol extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"currencySymbol\");\n this.name = getStringOption(attributes.name, [\n \"symbol\",\n \"isoname\",\n \"decimal\",\n ]);\n }\n}\n\nclass CurrencySymbols extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"currencySymbols\", /* hasChildren = */ true);\n this.currencySymbol = new XFAObjectArray(3);\n }\n}\n\nclass DatePattern extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"datePattern\");\n this.name = getStringOption(attributes.name, [\n \"full\",\n \"long\",\n \"med\",\n \"short\",\n ]);\n }\n}\n\nclass DatePatterns extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"datePatterns\", /* hasChildren = */ true);\n this.datePattern = new XFAObjectArray(4);\n }\n}\n\nclass DateTimeSymbols extends ContentObject {\n // TODO: spec unclear about the format of the array.\n\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"dateTimeSymbols\");\n }\n}\n\nclass Day extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"day\");\n }\n}\n\nclass DayNames extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"dayNames\", /* hasChildren = */ true);\n this.abbr = getInteger({\n data: attributes.abbr,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.day = new XFAObjectArray(7);\n }\n}\n\nclass Era extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"era\");\n }\n}\n\nclass EraNames extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"eraNames\", /* hasChildren = */ true);\n this.era = new XFAObjectArray(2);\n }\n}\n\nclass Locale extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"locale\", /* hasChildren = */ true);\n this.desc = attributes.desc || \"\";\n this.name = \"isoname\";\n this.calendarSymbols = null;\n this.currencySymbols = null;\n this.datePatterns = null;\n this.dateTimeSymbols = null;\n this.numberPatterns = null;\n this.numberSymbols = null;\n this.timePatterns = null;\n this.typeFaces = null;\n }\n}\n\nclass LocaleSet extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"localeSet\", /* hasChildren = */ true);\n this.locale = new XFAObjectArray();\n }\n}\n\nclass Meridiem extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"meridiem\");\n }\n}\n\nclass MeridiemNames extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"meridiemNames\", /* hasChildren = */ true);\n this.meridiem = new XFAObjectArray(2);\n }\n}\n\nclass Month extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"month\");\n }\n}\n\nclass MonthNames extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"monthNames\", /* hasChildren = */ true);\n this.abbr = getInteger({\n data: attributes.abbr,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.month = new XFAObjectArray(12);\n }\n}\n\nclass NumberPattern extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"numberPattern\");\n this.name = getStringOption(attributes.name, [\n \"full\",\n \"long\",\n \"med\",\n \"short\",\n ]);\n }\n}\n\nclass NumberPatterns extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"numberPatterns\", /* hasChildren = */ true);\n this.numberPattern = new XFAObjectArray(4);\n }\n}\n\nclass NumberSymbol extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"numberSymbol\");\n this.name = getStringOption(attributes.name, [\n \"decimal\",\n \"grouping\",\n \"percent\",\n \"minus\",\n \"zero\",\n ]);\n }\n}\n\nclass NumberSymbols extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"numberSymbols\", /* hasChildren = */ true);\n this.numberSymbol = new XFAObjectArray(5);\n }\n}\n\nclass TimePattern extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"timePattern\");\n this.name = getStringOption(attributes.name, [\n \"full\",\n \"long\",\n \"med\",\n \"short\",\n ]);\n }\n}\n\nclass TimePatterns extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"timePatterns\", /* hasChildren = */ true);\n this.timePattern = new XFAObjectArray(4);\n }\n}\n\nclass TypeFace extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"typeFace\", /* hasChildren = */ true);\n this.name = attributes.name | \"\";\n }\n}\n\nclass TypeFaces extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"typeFaces\", /* hasChildren = */ true);\n this.typeFace = new XFAObjectArray();\n }\n}\n\nclass LocaleSetNamespace {\n static [$buildXFAObject](name, attributes) {\n if (LocaleSetNamespace.hasOwnProperty(name)) {\n return LocaleSetNamespace[name](attributes);\n }\n return undefined;\n }\n\n static calendarSymbols(attrs) {\n return new CalendarSymbols(attrs);\n }\n\n static currencySymbol(attrs) {\n return new CurrencySymbol(attrs);\n }\n\n static currencySymbols(attrs) {\n return new CurrencySymbols(attrs);\n }\n\n static datePattern(attrs) {\n return new DatePattern(attrs);\n }\n\n static datePatterns(attrs) {\n return new DatePatterns(attrs);\n }\n\n static dateTimeSymbols(attrs) {\n return new DateTimeSymbols(attrs);\n }\n\n static day(attrs) {\n return new Day(attrs);\n }\n\n static dayNames(attrs) {\n return new DayNames(attrs);\n }\n\n static era(attrs) {\n return new Era(attrs);\n }\n\n static eraNames(attrs) {\n return new EraNames(attrs);\n }\n\n static locale(attrs) {\n return new Locale(attrs);\n }\n\n static localeSet(attrs) {\n return new LocaleSet(attrs);\n }\n\n static meridiem(attrs) {\n return new Meridiem(attrs);\n }\n\n static meridiemNames(attrs) {\n return new MeridiemNames(attrs);\n }\n\n static month(attrs) {\n return new Month(attrs);\n }\n\n static monthNames(attrs) {\n return new MonthNames(attrs);\n }\n\n static numberPattern(attrs) {\n return new NumberPattern(attrs);\n }\n\n static numberPatterns(attrs) {\n return new NumberPatterns(attrs);\n }\n\n static numberSymbol(attrs) {\n return new NumberSymbol(attrs);\n }\n\n static numberSymbols(attrs) {\n return new NumberSymbols(attrs);\n }\n\n static timePattern(attrs) {\n return new TimePattern(attrs);\n }\n\n static timePatterns(attrs) {\n return new TimePatterns(attrs);\n }\n\n static typeFace(attrs) {\n return new TypeFace(attrs);\n }\n\n static typeFaces(attrs) {\n return new TypeFaces(attrs);\n }\n}\n\nexport { LocaleSetNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport { XFAObject } from \"./xfa_object.js\";\n\nconst SIGNATURE_NS_ID = NamespaceIds.signature.id;\n\nclass Signature extends XFAObject {\n constructor(attributes) {\n super(SIGNATURE_NS_ID, \"signature\", /* hasChildren = */ true);\n }\n}\n\nclass SignatureNamespace {\n static [$buildXFAObject](name, attributes) {\n if (SignatureNamespace.hasOwnProperty(name)) {\n return SignatureNamespace[name](attributes);\n }\n return undefined;\n }\n\n static signature(attributes) {\n return new Signature(attributes);\n }\n}\n\nexport { SignatureNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport { XFAObject } from \"./xfa_object.js\";\n\nconst STYLESHEET_NS_ID = NamespaceIds.stylesheet.id;\n\nclass Stylesheet extends XFAObject {\n constructor(attributes) {\n super(STYLESHEET_NS_ID, \"stylesheet\", /* hasChildren = */ true);\n }\n}\n\nclass StylesheetNamespace {\n static [$buildXFAObject](name, attributes) {\n if (StylesheetNamespace.hasOwnProperty(name)) {\n return StylesheetNamespace[name](attributes);\n }\n return undefined;\n }\n\n static stylesheet(attributes) {\n return new Stylesheet(attributes);\n }\n}\n\nexport { StylesheetNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n $namespaceId,\n $nodeName,\n $onChildCheck,\n XFAObject,\n XFAObjectArray,\n} from \"./xfa_object.js\";\n\nconst XDP_NS_ID = NamespaceIds.xdp.id;\n\nclass Xdp extends XFAObject {\n constructor(attributes) {\n super(XDP_NS_ID, \"xdp\", /* hasChildren = */ true);\n this.uuid = attributes.uuid || \"\";\n this.timeStamp = attributes.timeStamp || \"\";\n this.config = null;\n this.connectionSet = null;\n this.datasets = null;\n this.localeSet = null;\n this.stylesheet = new XFAObjectArray();\n this.template = null;\n }\n\n [$onChildCheck](child) {\n const ns = NamespaceIds[child[$nodeName]];\n return ns && child[$namespaceId] === ns.id;\n }\n}\n\nclass XdpNamespace {\n static [$buildXFAObject](name, attributes) {\n if (XdpNamespace.hasOwnProperty(name)) {\n return XdpNamespace[name](attributes);\n }\n return undefined;\n }\n\n static xdp(attributes) {\n return new Xdp(attributes);\n }\n}\n\nexport { XdpNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $acceptWhitespace,\n $childrenToHTML,\n $clean,\n $content,\n $extra,\n $getChildren,\n $getParent,\n $globalData,\n $nodeName,\n $onText,\n $pushGlyphs,\n $text,\n $toHTML,\n XmlObject,\n} from \"./xfa_object.js\";\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n fixTextIndent,\n fixURL,\n measureToString,\n setFontFamily,\n} from \"./html_utils.js\";\nimport { getMeasurement, HTMLResult, stripQuotes } from \"./utils.js\";\n\nconst XHTML_NS_ID = NamespaceIds.xhtml.id;\nconst $richText = Symbol();\n\nconst VALID_STYLES = new Set([\n \"color\",\n \"font\",\n \"font-family\",\n \"font-size\",\n \"font-stretch\",\n \"font-style\",\n \"font-weight\",\n \"margin\",\n \"margin-bottom\",\n \"margin-left\",\n \"margin-right\",\n \"margin-top\",\n \"letter-spacing\",\n \"line-height\",\n \"orphans\",\n \"page-break-after\",\n \"page-break-before\",\n \"page-break-inside\",\n \"tab-interval\",\n \"tab-stop\",\n \"text-align\",\n \"text-decoration\",\n \"text-indent\",\n \"vertical-align\",\n \"widows\",\n \"kerning-mode\",\n \"xfa-font-horizontal-scale\",\n \"xfa-font-vertical-scale\",\n \"xfa-spacerun\",\n \"xfa-tab-stops\",\n]);\n\nconst StyleMapping = new Map([\n [\"page-break-after\", \"breakAfter\"],\n [\"page-break-before\", \"breakBefore\"],\n [\"page-break-inside\", \"breakInside\"],\n [\"kerning-mode\", value => (value === \"none\" ? \"none\" : \"normal\")],\n [\n \"xfa-font-horizontal-scale\",\n value =>\n `scaleX(${Math.max(0, Math.min(parseInt(value) / 100)).toFixed(2)})`,\n ],\n [\n \"xfa-font-vertical-scale\",\n value =>\n `scaleY(${Math.max(0, Math.min(parseInt(value) / 100)).toFixed(2)})`,\n ],\n [\"xfa-spacerun\", \"\"],\n [\"xfa-tab-stops\", \"\"],\n [\n \"font-size\",\n (value, original) => {\n value = original.fontSize = getMeasurement(value);\n return measureToString(0.99 * value);\n },\n ],\n [\"letter-spacing\", value => measureToString(getMeasurement(value))],\n [\"line-height\", value => measureToString(getMeasurement(value))],\n [\"margin\", value => measureToString(getMeasurement(value))],\n [\"margin-bottom\", value => measureToString(getMeasurement(value))],\n [\"margin-left\", value => measureToString(getMeasurement(value))],\n [\"margin-right\", value => measureToString(getMeasurement(value))],\n [\"margin-top\", value => measureToString(getMeasurement(value))],\n [\"text-indent\", value => measureToString(getMeasurement(value))],\n [\"font-family\", value => value],\n [\"vertical-align\", value => measureToString(getMeasurement(value))],\n]);\n\nconst spacesRegExp = /\\s+/g;\nconst crlfRegExp = /[\\r\\n]+/g;\nconst crlfForRichTextRegExp = /\\r\\n?/g;\n\nfunction mapStyle(styleStr, node, richText) {\n const style = Object.create(null);\n if (!styleStr) {\n return style;\n }\n const original = Object.create(null);\n for (const [key, value] of styleStr.split(\";\").map(s => s.split(\":\", 2))) {\n const mapping = StyleMapping.get(key);\n if (mapping === \"\") {\n continue;\n }\n let newValue = value;\n if (mapping) {\n if (typeof mapping === \"string\") {\n newValue = mapping;\n } else {\n newValue = mapping(value, original);\n }\n }\n if (key.endsWith(\"scale\")) {\n if (style.transform) {\n style.transform = `${style[key]} ${newValue}`;\n } else {\n style.transform = newValue;\n }\n } else {\n style[key.replaceAll(/-([a-zA-Z])/g, (_, x) => x.toUpperCase())] =\n newValue;\n }\n }\n\n if (style.fontFamily) {\n setFontFamily(\n {\n typeface: style.fontFamily,\n weight: style.fontWeight || \"normal\",\n posture: style.fontStyle || \"normal\",\n size: original.fontSize || 0,\n },\n node,\n node[$globalData].fontFinder,\n style\n );\n }\n\n if (\n richText &&\n style.verticalAlign &&\n style.verticalAlign !== \"0px\" &&\n style.fontSize\n ) {\n // A non-zero verticalAlign means that we've a sub/super-script and\n // consequently the font size must be decreased.\n // https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf#G11.2097514\n // And the two following factors to position the scripts have been\n // found here:\n // https://en.wikipedia.org/wiki/Subscript_and_superscript#Desktop_publishing\n const SUB_SUPER_SCRIPT_FACTOR = 0.583;\n const VERTICAL_FACTOR = 0.333;\n const fontSize = getMeasurement(style.fontSize);\n style.fontSize = measureToString(fontSize * SUB_SUPER_SCRIPT_FACTOR);\n style.verticalAlign = measureToString(\n Math.sign(getMeasurement(style.verticalAlign)) *\n fontSize *\n VERTICAL_FACTOR\n );\n }\n\n fixTextIndent(style);\n return style;\n}\n\nfunction checkStyle(node) {\n if (!node.style) {\n return \"\";\n }\n\n // Remove any non-allowed keys.\n return node.style\n .trim()\n .split(/\\s*;\\s*/)\n .filter(s => !!s)\n .map(s => s.split(/\\s*:\\s*/, 2))\n .filter(([key, value]) => {\n if (key === \"font-family\") {\n node[$globalData].usedTypefaces.add(value);\n }\n return VALID_STYLES.has(key);\n })\n .map(kv => kv.join(\":\"))\n .join(\";\");\n}\n\nconst NoWhites = new Set([\"body\", \"html\"]);\n\nclass XhtmlObject extends XmlObject {\n constructor(attributes, name) {\n super(XHTML_NS_ID, name);\n this[$richText] = false;\n this.style = attributes.style || \"\";\n }\n\n [$clean](builder) {\n super[$clean](builder);\n this.style = checkStyle(this);\n }\n\n [$acceptWhitespace]() {\n return !NoWhites.has(this[$nodeName]);\n }\n\n [$onText](str, richText = false) {\n if (!richText) {\n str = str.replace(crlfRegExp, \"\");\n if (!this.style.includes(\"xfa-spacerun:yes\")) {\n str = str.replace(spacesRegExp, \" \");\n }\n } else {\n this[$richText] = true;\n }\n\n if (str) {\n this[$content] += str;\n }\n }\n\n [$pushGlyphs](measure, mustPop = true) {\n const xfaFont = Object.create(null);\n const margin = {\n top: NaN,\n bottom: NaN,\n left: NaN,\n right: NaN,\n };\n let lineHeight = null;\n for (const [key, value] of this.style\n .split(\";\")\n .map(s => s.split(\":\", 2))) {\n switch (key) {\n case \"font-family\":\n xfaFont.typeface = stripQuotes(value);\n break;\n case \"font-size\":\n xfaFont.size = getMeasurement(value);\n break;\n case \"font-weight\":\n xfaFont.weight = value;\n break;\n case \"font-style\":\n xfaFont.posture = value;\n break;\n case \"letter-spacing\":\n xfaFont.letterSpacing = getMeasurement(value);\n break;\n case \"margin\":\n const values = value.split(/ \\t/).map(x => getMeasurement(x));\n switch (values.length) {\n case 1:\n margin.top =\n margin.bottom =\n margin.left =\n margin.right =\n values[0];\n break;\n case 2:\n margin.top = margin.bottom = values[0];\n margin.left = margin.right = values[1];\n break;\n case 3:\n margin.top = values[0];\n margin.bottom = values[2];\n margin.left = margin.right = values[1];\n break;\n case 4:\n margin.top = values[0];\n margin.left = values[1];\n margin.bottom = values[2];\n margin.right = values[3];\n break;\n }\n break;\n case \"margin-top\":\n margin.top = getMeasurement(value);\n break;\n case \"margin-bottom\":\n margin.bottom = getMeasurement(value);\n break;\n case \"margin-left\":\n margin.left = getMeasurement(value);\n break;\n case \"margin-right\":\n margin.right = getMeasurement(value);\n break;\n case \"line-height\":\n lineHeight = getMeasurement(value);\n break;\n }\n }\n\n measure.pushData(xfaFont, margin, lineHeight);\n\n if (this[$content]) {\n measure.addString(this[$content]);\n } else {\n for (const child of this[$getChildren]()) {\n if (child[$nodeName] === \"#text\") {\n measure.addString(child[$content]);\n continue;\n }\n child[$pushGlyphs](measure);\n }\n }\n\n if (mustPop) {\n measure.popFont();\n }\n }\n\n [$toHTML](availableSpace) {\n const children = [];\n this[$extra] = {\n children,\n };\n\n this[$childrenToHTML]({});\n\n if (children.length === 0 && !this[$content]) {\n return HTMLResult.EMPTY;\n }\n\n let value;\n if (this[$richText]) {\n value = this[$content]\n ? this[$content].replace(crlfForRichTextRegExp, \"\\n\")\n : undefined;\n } else {\n value = this[$content] || undefined;\n }\n\n return HTMLResult.success({\n name: this[$nodeName],\n attributes: {\n href: this.href,\n style: mapStyle(this.style, this, this[$richText]),\n },\n children,\n value,\n });\n }\n}\n\nclass A extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"a\");\n this.href = fixURL(attributes.href) || \"\";\n }\n}\n\nclass B extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"b\");\n }\n\n [$pushGlyphs](measure) {\n measure.pushFont({ weight: \"bold\" });\n super[$pushGlyphs](measure);\n measure.popFont();\n }\n}\n\nclass Body extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"body\");\n }\n\n [$toHTML](availableSpace) {\n const res = super[$toHTML](availableSpace);\n const { html } = res;\n if (!html) {\n return HTMLResult.EMPTY;\n }\n html.name = \"div\";\n html.attributes.class = [\"xfaRich\"];\n return res;\n }\n}\n\nclass Br extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"br\");\n }\n\n [$text]() {\n return \"\\n\";\n }\n\n [$pushGlyphs](measure) {\n measure.addString(\"\\n\");\n }\n\n [$toHTML](availableSpace) {\n return HTMLResult.success({\n name: \"br\",\n });\n }\n}\n\nclass Html extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"html\");\n }\n\n [$toHTML](availableSpace) {\n const children = [];\n this[$extra] = {\n children,\n };\n\n this[$childrenToHTML]({});\n if (children.length === 0) {\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n class: [\"xfaRich\"],\n style: {},\n },\n value: this[$content] || \"\",\n });\n }\n\n if (children.length === 1) {\n const child = children[0];\n if (child.attributes && child.attributes.class.includes(\"xfaRich\")) {\n return HTMLResult.success(child);\n }\n }\n\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n class: [\"xfaRich\"],\n style: {},\n },\n children,\n });\n }\n}\n\nclass I extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"i\");\n }\n\n [$pushGlyphs](measure) {\n measure.pushFont({ posture: \"italic\" });\n super[$pushGlyphs](measure);\n measure.popFont();\n }\n}\n\nclass Li extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"li\");\n }\n}\n\nclass Ol extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"ol\");\n }\n}\n\nclass P extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"p\");\n }\n\n [$pushGlyphs](measure) {\n super[$pushGlyphs](measure, /* mustPop = */ false);\n measure.addString(\"\\n\");\n measure.addPara();\n measure.popFont();\n }\n\n [$text]() {\n const siblings = this[$getParent]()[$getChildren]();\n if (siblings[siblings.length - 1] === this) {\n return super[$text]();\n }\n return super[$text]() + \"\\n\";\n }\n}\n\nclass Span extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"span\");\n }\n}\n\nclass Sub extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"sub\");\n }\n}\n\nclass Sup extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"sup\");\n }\n}\n\nclass Ul extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"ul\");\n }\n}\n\nclass XhtmlNamespace {\n static [$buildXFAObject](name, attributes) {\n if (XhtmlNamespace.hasOwnProperty(name)) {\n return XhtmlNamespace[name](attributes);\n }\n return undefined;\n }\n\n static a(attributes) {\n return new A(attributes);\n }\n\n static b(attributes) {\n return new B(attributes);\n }\n\n static body(attributes) {\n return new Body(attributes);\n }\n\n static br(attributes) {\n return new Br(attributes);\n }\n\n static html(attributes) {\n return new Html(attributes);\n }\n\n static i(attributes) {\n return new I(attributes);\n }\n\n static li(attributes) {\n return new Li(attributes);\n }\n\n static ol(attributes) {\n return new Ol(attributes);\n }\n\n static p(attributes) {\n return new P(attributes);\n }\n\n static span(attributes) {\n return new Span(attributes);\n }\n\n static sub(attributes) {\n return new Sub(attributes);\n }\n\n static sup(attributes) {\n return new Sup(attributes);\n }\n\n static ul(attributes) {\n return new Ul(attributes);\n }\n}\n\nexport { XhtmlNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject } from \"./namespaces.js\";\nimport { XmlObject } from \"./xfa_object.js\";\n\nclass UnknownNamespace {\n constructor(nsId) {\n this.namespaceId = nsId;\n }\n\n [$buildXFAObject](name, attributes) {\n return new XmlObject(this.namespaceId, name, attributes);\n }\n}\n\nexport { UnknownNamespace };\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { stringToUTF8String, warn } from \"../shared/util.js\";\nimport { parseXFAPath } from \"./core_utils.js\";\nimport { SimpleXMLParser } from \"./xml_parser.js\";\n\nfunction decodeString(str) {\n try {\n return stringToUTF8String(str);\n } catch (ex) {\n warn(`UTF-8 decoding failed: \"${ex}\".`);\n return str;\n }\n}\n\nclass DatasetXMLParser extends SimpleXMLParser {\n constructor(options) {\n super(options);\n this.node = null;\n }\n\n onEndElement(name) {\n const node = super.onEndElement(name);\n if (node && name === \"xfa:datasets\") {\n this.node = node;\n\n // We don't need anything else, so just kill the parser.\n throw new Error(\"Aborting DatasetXMLParser.\");\n }\n }\n}\n\nclass DatasetReader {\n constructor(data) {\n if (data.datasets) {\n this.node = new SimpleXMLParser({ hasAttributes: true }).parseFromString(\n data.datasets\n ).documentElement;\n } else {\n const parser = new DatasetXMLParser({ hasAttributes: true });\n try {\n parser.parseFromString(data[\"xdp:xdp\"]);\n } catch (_) {}\n this.node = parser.node;\n }\n }\n\n getValue(path) {\n if (!this.node || !path) {\n return \"\";\n }\n const node = this.node.searchNode(parseXFAPath(path), 0);\n\n if (!node) {\n return \"\";\n }\n\n const first = node.firstChild;\n if (first && first.nodeName === \"value\") {\n return node.children.map(child => decodeString(child.textContent));\n }\n\n return decodeString(node.textContent);\n }\n}\n\nexport { DatasetReader };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n bytesToString,\n FormatError,\n info,\n InvalidPDFException,\n warn,\n} from \"../shared/util.js\";\nimport { CIRCULAR_REF, Cmd, Dict, isCmd, Ref, RefSet } from \"./primitives.js\";\nimport {\n DocStats,\n MissingDataException,\n ParserEOFException,\n XRefEntryException,\n XRefParseException,\n} from \"./core_utils.js\";\nimport { Lexer, Parser } from \"./parser.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { CipherTransformFactory } from \"./crypto.js\";\n\nclass XRef {\n constructor(stream, pdfManager) {\n this.stream = stream;\n this.pdfManager = pdfManager;\n this.entries = [];\n this.xrefstms = Object.create(null);\n this._cacheMap = new Map(); // Prepare the XRef cache.\n this._pendingRefs = new RefSet();\n this.stats = new DocStats(pdfManager.msgHandler);\n this._newRefNum = null;\n }\n\n getNewRef() {\n if (this._newRefNum === null) {\n this._newRefNum = this.entries.length;\n }\n return Ref.get(this._newRefNum++, 0);\n }\n\n resetNewRef() {\n this._newRefNum = null;\n }\n\n setStartXRef(startXRef) {\n // Store the starting positions of xref tables as we process them\n // so we can recover from missing data errors\n this.startXRefQueue = [startXRef];\n }\n\n parse(recoveryMode = false) {\n let trailerDict;\n if (!recoveryMode) {\n trailerDict = this.readXRef();\n } else {\n warn(\"Indexing all PDF objects\");\n trailerDict = this.indexObjects();\n }\n trailerDict.assignXref(this);\n this.trailer = trailerDict;\n\n let encrypt;\n try {\n encrypt = trailerDict.get(\"Encrypt\");\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`XRef.parse - Invalid \"Encrypt\" reference: \"${ex}\".`);\n }\n if (encrypt instanceof Dict) {\n const ids = trailerDict.get(\"ID\");\n const fileId = ids && ids.length ? ids[0] : \"\";\n // The 'Encrypt' dictionary itself should not be encrypted, and by\n // setting `suppressEncryption` we can prevent an infinite loop inside\n // of `XRef_fetchUncompressed` if the dictionary contains indirect\n // objects (fixes issue7665.pdf).\n encrypt.suppressEncryption = true;\n this.encrypt = new CipherTransformFactory(\n encrypt,\n fileId,\n this.pdfManager.password\n );\n }\n\n // Get the root dictionary (catalog) object, and do some basic validation.\n let root;\n try {\n root = trailerDict.get(\"Root\");\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`XRef.parse - Invalid \"Root\" reference: \"${ex}\".`);\n }\n if (root instanceof Dict) {\n try {\n const pages = root.get(\"Pages\");\n if (pages instanceof Dict) {\n this.root = root;\n return;\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`XRef.parse - Invalid \"Pages\" reference: \"${ex}\".`);\n }\n }\n\n if (!recoveryMode) {\n throw new XRefParseException();\n }\n // Even recovery failed, there's nothing more we can do here.\n throw new InvalidPDFException(\"Invalid Root reference.\");\n }\n\n processXRefTable(parser) {\n if (!(\"tableState\" in this)) {\n // Stores state of the table as we process it so we can resume\n // from middle of table in case of missing data error\n this.tableState = {\n entryNum: 0,\n streamPos: parser.lexer.stream.pos,\n parserBuf1: parser.buf1,\n parserBuf2: parser.buf2,\n };\n }\n\n const obj = this.readXRefTable(parser);\n\n // Sanity check\n if (!isCmd(obj, \"trailer\")) {\n throw new FormatError(\n \"Invalid XRef table: could not find trailer dictionary\"\n );\n }\n // Read trailer dictionary, e.g.\n // trailer\n // << /Size 22\n // /Root 20R\n // /Info 10R\n // /ID [ <81b14aafa313db63dbd6f981e49f94f4> ]\n // >>\n // The parser goes through the entire stream << ... >> and provides\n // a getter interface for the key-value table\n let dict = parser.getObj();\n\n // The pdflib PDF generator can generate a nested trailer dictionary\n if (!(dict instanceof Dict) && dict.dict) {\n dict = dict.dict;\n }\n if (!(dict instanceof Dict)) {\n throw new FormatError(\n \"Invalid XRef table: could not parse trailer dictionary\"\n );\n }\n delete this.tableState;\n\n return dict;\n }\n\n readXRefTable(parser) {\n // Example of cross-reference table:\n // xref\n // 0 1 <-- subsection header (first obj #, obj count)\n // 0000000000 65535 f <-- actual object (offset, generation #, f/n)\n // 23 2 <-- subsection header ... and so on ...\n // 0000025518 00002 n\n // 0000025635 00000 n\n // trailer\n // ...\n\n const stream = parser.lexer.stream;\n const tableState = this.tableState;\n stream.pos = tableState.streamPos;\n parser.buf1 = tableState.parserBuf1;\n parser.buf2 = tableState.parserBuf2;\n\n // Outer loop is over subsection headers\n let obj;\n\n while (true) {\n if (!(\"firstEntryNum\" in tableState) || !(\"entryCount\" in tableState)) {\n if (isCmd((obj = parser.getObj()), \"trailer\")) {\n break;\n }\n tableState.firstEntryNum = obj;\n tableState.entryCount = parser.getObj();\n }\n\n let first = tableState.firstEntryNum;\n const count = tableState.entryCount;\n if (!Number.isInteger(first) || !Number.isInteger(count)) {\n throw new FormatError(\n \"Invalid XRef table: wrong types in subsection header\"\n );\n }\n // Inner loop is over objects themselves\n for (let i = tableState.entryNum; i < count; i++) {\n tableState.streamPos = stream.pos;\n tableState.entryNum = i;\n tableState.parserBuf1 = parser.buf1;\n tableState.parserBuf2 = parser.buf2;\n\n const entry = {};\n entry.offset = parser.getObj();\n entry.gen = parser.getObj();\n const type = parser.getObj();\n\n if (type instanceof Cmd) {\n switch (type.cmd) {\n case \"f\":\n entry.free = true;\n break;\n case \"n\":\n entry.uncompressed = true;\n break;\n }\n }\n\n // Validate entry obj\n if (\n !Number.isInteger(entry.offset) ||\n !Number.isInteger(entry.gen) ||\n !(entry.free || entry.uncompressed)\n ) {\n throw new FormatError(\n `Invalid entry in XRef subsection: ${first}, ${count}`\n );\n }\n\n // The first xref table entry, i.e. obj 0, should be free. Attempting\n // to adjust an incorrect first obj # (fixes issue 3248 and 7229).\n if (i === 0 && entry.free && first === 1) {\n first = 0;\n }\n\n if (!this.entries[i + first]) {\n this.entries[i + first] = entry;\n }\n }\n\n tableState.entryNum = 0;\n tableState.streamPos = stream.pos;\n tableState.parserBuf1 = parser.buf1;\n tableState.parserBuf2 = parser.buf2;\n delete tableState.firstEntryNum;\n delete tableState.entryCount;\n }\n\n // Sanity check: as per spec, first object must be free\n if (this.entries[0] && !this.entries[0].free) {\n throw new FormatError(\"Invalid XRef table: unexpected first object\");\n }\n return obj;\n }\n\n processXRefStream(stream) {\n if (!(\"streamState\" in this)) {\n // Stores state of the stream as we process it so we can resume\n // from middle of stream in case of missing data error\n const streamParameters = stream.dict;\n const byteWidths = streamParameters.get(\"W\");\n let range = streamParameters.get(\"Index\");\n if (!range) {\n range = [0, streamParameters.get(\"Size\")];\n }\n\n this.streamState = {\n entryRanges: range,\n byteWidths,\n entryNum: 0,\n streamPos: stream.pos,\n };\n }\n this.readXRefStream(stream);\n delete this.streamState;\n\n return stream.dict;\n }\n\n readXRefStream(stream) {\n const streamState = this.streamState;\n stream.pos = streamState.streamPos;\n\n const [typeFieldWidth, offsetFieldWidth, generationFieldWidth] =\n streamState.byteWidths;\n\n const entryRanges = streamState.entryRanges;\n while (entryRanges.length > 0) {\n const [first, n] = entryRanges;\n\n if (!Number.isInteger(first) || !Number.isInteger(n)) {\n throw new FormatError(`Invalid XRef range fields: ${first}, ${n}`);\n }\n if (\n !Number.isInteger(typeFieldWidth) ||\n !Number.isInteger(offsetFieldWidth) ||\n !Number.isInteger(generationFieldWidth)\n ) {\n throw new FormatError(\n `Invalid XRef entry fields length: ${first}, ${n}`\n );\n }\n for (let i = streamState.entryNum; i < n; ++i) {\n streamState.entryNum = i;\n streamState.streamPos = stream.pos;\n\n let type = 0,\n offset = 0,\n generation = 0;\n for (let j = 0; j < typeFieldWidth; ++j) {\n const typeByte = stream.getByte();\n if (typeByte === -1) {\n throw new FormatError(\"Invalid XRef byteWidths 'type'.\");\n }\n type = (type << 8) | typeByte;\n }\n // if type field is absent, its default value is 1\n if (typeFieldWidth === 0) {\n type = 1;\n }\n for (let j = 0; j < offsetFieldWidth; ++j) {\n const offsetByte = stream.getByte();\n if (offsetByte === -1) {\n throw new FormatError(\"Invalid XRef byteWidths 'offset'.\");\n }\n offset = (offset << 8) | offsetByte;\n }\n for (let j = 0; j < generationFieldWidth; ++j) {\n const generationByte = stream.getByte();\n if (generationByte === -1) {\n throw new FormatError(\"Invalid XRef byteWidths 'generation'.\");\n }\n generation = (generation << 8) | generationByte;\n }\n const entry = {};\n entry.offset = offset;\n entry.gen = generation;\n switch (type) {\n case 0:\n entry.free = true;\n break;\n case 1:\n entry.uncompressed = true;\n break;\n case 2:\n break;\n default:\n throw new FormatError(`Invalid XRef entry type: ${type}`);\n }\n if (!this.entries[first + i]) {\n this.entries[first + i] = entry;\n }\n }\n\n streamState.entryNum = 0;\n streamState.streamPos = stream.pos;\n entryRanges.splice(0, 2);\n }\n }\n\n indexObjects() {\n // Simple scan through the PDF content to find objects,\n // trailers and XRef streams.\n const TAB = 0x9,\n LF = 0xa,\n CR = 0xd,\n SPACE = 0x20;\n const PERCENT = 0x25,\n LT = 0x3c;\n\n function readToken(data, offset) {\n let token = \"\",\n ch = data[offset];\n while (ch !== LF && ch !== CR && ch !== LT) {\n if (++offset >= data.length) {\n break;\n }\n token += String.fromCharCode(ch);\n ch = data[offset];\n }\n return token;\n }\n function skipUntil(data, offset, what) {\n const length = what.length,\n dataLength = data.length;\n let skipped = 0;\n // finding byte sequence\n while (offset < dataLength) {\n let i = 0;\n while (i < length && data[offset + i] === what[i]) {\n ++i;\n }\n if (i >= length) {\n break; // sequence found\n }\n offset++;\n skipped++;\n }\n return skipped;\n }\n const objRegExp = /^(\\d+)\\s+(\\d+)\\s+obj\\b/;\n const endobjRegExp = /\\bendobj[\\b\\s]$/;\n const nestedObjRegExp = /\\s+(\\d+\\s+\\d+\\s+obj[\\b\\s<])$/;\n const CHECK_CONTENT_LENGTH = 25;\n\n const trailerBytes = new Uint8Array([116, 114, 97, 105, 108, 101, 114]);\n const startxrefBytes = new Uint8Array([\n 115, 116, 97, 114, 116, 120, 114, 101, 102,\n ]);\n const objBytes = new Uint8Array([111, 98, 106]);\n const xrefBytes = new Uint8Array([47, 88, 82, 101, 102]);\n\n // Clear out any existing entries, since they may be bogus.\n this.entries.length = 0;\n this._cacheMap.clear();\n\n const stream = this.stream;\n stream.pos = 0;\n const buffer = stream.getBytes(),\n length = buffer.length;\n let position = stream.start;\n const trailers = [],\n xrefStms = [];\n while (position < length) {\n let ch = buffer[position];\n if (ch === TAB || ch === LF || ch === CR || ch === SPACE) {\n ++position;\n continue;\n }\n if (ch === PERCENT) {\n // %-comment\n do {\n ++position;\n if (position >= length) {\n break;\n }\n ch = buffer[position];\n } while (ch !== LF && ch !== CR);\n continue;\n }\n const token = readToken(buffer, position);\n let m;\n if (\n token.startsWith(\"xref\") &&\n (token.length === 4 || /\\s/.test(token[4]))\n ) {\n position += skipUntil(buffer, position, trailerBytes);\n trailers.push(position);\n position += skipUntil(buffer, position, startxrefBytes);\n } else if ((m = objRegExp.exec(token))) {\n const num = m[1] | 0,\n gen = m[2] | 0;\n\n let contentLength,\n startPos = position + token.length,\n updateEntries = false;\n if (!this.entries[num]) {\n updateEntries = true;\n } else if (this.entries[num].gen === gen) {\n // Before overwriting an existing entry, ensure that the new one won't\n // cause *immediate* errors when it's accessed (fixes issue13783.pdf).\n try {\n const parser = new Parser({\n lexer: new Lexer(stream.makeSubStream(startPos)),\n });\n parser.getObj();\n updateEntries = true;\n } catch (ex) {\n if (ex instanceof ParserEOFException) {\n warn(`indexObjects -- checking object (${token}): \"${ex}\".`);\n } else {\n // The error may come from the `Parser`-instance being initialized\n // without an `XRef`-instance (we don't have a usable one yet).\n updateEntries = true;\n }\n }\n }\n if (updateEntries) {\n this.entries[num] = {\n offset: position - stream.start,\n gen,\n uncompressed: true,\n };\n }\n\n // Find the next \"obj\" string, rather than \"endobj\", to ensure that\n // we won't skip over a new 'obj' operator in corrupt files where\n // 'endobj' operators are missing (fixes issue9105_reduced.pdf).\n while (startPos < buffer.length) {\n const endPos = startPos + skipUntil(buffer, startPos, objBytes) + 4;\n contentLength = endPos - position;\n\n const checkPos = Math.max(endPos - CHECK_CONTENT_LENGTH, startPos);\n const tokenStr = bytesToString(buffer.subarray(checkPos, endPos));\n\n // Check if the current object ends with an 'endobj' operator.\n if (endobjRegExp.test(tokenStr)) {\n break;\n } else {\n // Check if an \"obj\" occurrence is actually a new object,\n // i.e. the current object is missing the 'endobj' operator.\n const objToken = nestedObjRegExp.exec(tokenStr);\n\n if (objToken && objToken[1]) {\n warn(\n 'indexObjects: Found new \"obj\" inside of another \"obj\", ' +\n 'caused by missing \"endobj\" -- trying to recover.'\n );\n contentLength -= objToken[1].length;\n break;\n }\n }\n startPos = endPos;\n }\n const content = buffer.subarray(position, position + contentLength);\n\n // checking XRef stream suspect\n // (it shall have '/XRef' and next char is not a letter)\n const xrefTagOffset = skipUntil(content, 0, xrefBytes);\n if (xrefTagOffset < contentLength && content[xrefTagOffset + 5] < 64) {\n xrefStms.push(position - stream.start);\n this.xrefstms[position - stream.start] = 1; // Avoid recursion\n }\n\n position += contentLength;\n } else if (\n token.startsWith(\"trailer\") &&\n (token.length === 7 || /\\s/.test(token[7]))\n ) {\n trailers.push(position);\n position += skipUntil(buffer, position, startxrefBytes);\n } else {\n position += token.length + 1;\n }\n }\n // reading XRef streams\n for (let i = 0, ii = xrefStms.length; i < ii; ++i) {\n this.startXRefQueue.push(xrefStms[i]);\n this.readXRef(/* recoveryMode */ true);\n }\n // finding main trailer\n let trailerDict;\n for (let i = 0, ii = trailers.length; i < ii; ++i) {\n stream.pos = trailers[i];\n const parser = new Parser({\n lexer: new Lexer(stream),\n xref: this,\n allowStreams: true,\n recoveryMode: true,\n });\n const obj = parser.getObj();\n if (!isCmd(obj, \"trailer\")) {\n continue;\n }\n // read the trailer dictionary\n const dict = parser.getObj();\n if (!(dict instanceof Dict)) {\n continue;\n }\n // Do some basic validation of the trailer/root dictionary candidate.\n try {\n const rootDict = dict.get(\"Root\");\n if (!(rootDict instanceof Dict)) {\n continue;\n }\n const pagesDict = rootDict.get(\"Pages\");\n if (!(pagesDict instanceof Dict)) {\n continue;\n }\n const pagesCount = pagesDict.get(\"Count\");\n if (!Number.isInteger(pagesCount)) {\n continue;\n }\n // The top-level /Pages dictionary isn't obviously corrupt.\n } catch (ex) {\n continue;\n }\n // taking the first one with 'ID'\n if (dict.has(\"ID\")) {\n return dict;\n }\n // The current dictionary is a candidate, but continue searching.\n trailerDict = dict;\n }\n // No trailer with 'ID', taking last one (if exists).\n if (trailerDict) {\n return trailerDict;\n }\n // No trailer dictionary found, taking the \"top\"-dictionary (if exists).\n if (this.topDict) {\n return this.topDict;\n }\n // nothing helps\n throw new InvalidPDFException(\"Invalid PDF structure.\");\n }\n\n readXRef(recoveryMode = false) {\n const stream = this.stream;\n // Keep track of already parsed XRef tables, to prevent an infinite loop\n // when parsing corrupt PDF files where e.g. the /Prev entries create a\n // circular dependency between tables (fixes bug1393476.pdf).\n const startXRefParsedCache = new Set();\n\n try {\n while (this.startXRefQueue.length) {\n const startXRef = this.startXRefQueue[0];\n\n if (startXRefParsedCache.has(startXRef)) {\n warn(\"readXRef - skipping XRef table since it was already parsed.\");\n this.startXRefQueue.shift();\n continue;\n }\n startXRefParsedCache.add(startXRef);\n\n stream.pos = startXRef + stream.start;\n\n const parser = new Parser({\n lexer: new Lexer(stream),\n xref: this,\n allowStreams: true,\n });\n let obj = parser.getObj();\n let dict;\n\n // Get dictionary\n if (isCmd(obj, \"xref\")) {\n // Parse end-of-file XRef\n dict = this.processXRefTable(parser);\n if (!this.topDict) {\n this.topDict = dict;\n }\n\n // Recursively get other XRefs 'XRefStm', if any\n obj = dict.get(\"XRefStm\");\n if (Number.isInteger(obj)) {\n const pos = obj;\n // ignore previously loaded xref streams\n // (possible infinite recursion)\n if (!(pos in this.xrefstms)) {\n this.xrefstms[pos] = 1;\n this.startXRefQueue.push(pos);\n }\n }\n } else if (Number.isInteger(obj)) {\n // Parse in-stream XRef\n if (\n !Number.isInteger(parser.getObj()) ||\n !isCmd(parser.getObj(), \"obj\") ||\n !((obj = parser.getObj()) instanceof BaseStream)\n ) {\n throw new FormatError(\"Invalid XRef stream\");\n }\n dict = this.processXRefStream(obj);\n if (!this.topDict) {\n this.topDict = dict;\n }\n if (!dict) {\n throw new FormatError(\"Failed to read XRef stream\");\n }\n } else {\n throw new FormatError(\"Invalid XRef stream header\");\n }\n\n // Recursively get previous dictionary, if any\n obj = dict.get(\"Prev\");\n if (Number.isInteger(obj)) {\n this.startXRefQueue.push(obj);\n } else if (obj instanceof Ref) {\n // The spec says Prev must not be a reference, i.e. \"/Prev NNN\"\n // This is a fallback for non-compliant PDFs, i.e. \"/Prev NNN 0 R\"\n this.startXRefQueue.push(obj.num);\n }\n\n this.startXRefQueue.shift();\n }\n\n return this.topDict;\n } catch (e) {\n if (e instanceof MissingDataException) {\n throw e;\n }\n info(\"(while reading XRef): \" + e);\n\n this.startXRefQueue.shift();\n }\n\n if (recoveryMode) {\n return undefined;\n }\n throw new XRefParseException();\n }\n\n getEntry(i) {\n const xrefEntry = this.entries[i];\n if (xrefEntry && !xrefEntry.free && xrefEntry.offset) {\n return xrefEntry;\n }\n return null;\n }\n\n fetchIfRef(obj, suppressEncryption = false) {\n if (obj instanceof Ref) {\n return this.fetch(obj, suppressEncryption);\n }\n return obj;\n }\n\n fetch(ref, suppressEncryption = false) {\n if (!(ref instanceof Ref)) {\n throw new Error(\"ref object is not a reference\");\n }\n const num = ref.num;\n\n // The XRef cache is populated with objects which are obtained through\n // `Parser.getObj`, and indirectly via `Lexer.getObj`. Neither of these\n // methods should ever return `undefined` (note the `assert` calls below).\n const cacheEntry = this._cacheMap.get(num);\n if (cacheEntry !== undefined) {\n // In documents with Object Streams, it's possible that cached `Dict`s\n // have not been assigned an `objId` yet (see e.g. issue3115r.pdf).\n if (cacheEntry instanceof Dict && !cacheEntry.objId) {\n cacheEntry.objId = ref.toString();\n }\n return cacheEntry;\n }\n let xrefEntry = this.getEntry(num);\n\n if (xrefEntry === null) {\n // The referenced entry can be free.\n this._cacheMap.set(num, xrefEntry);\n return xrefEntry;\n }\n // Prevent circular references, in corrupt PDF documents, from hanging the\n // worker-thread. This relies, implicitly, on the parsing being synchronous.\n if (this._pendingRefs.has(ref)) {\n this._pendingRefs.remove(ref);\n\n warn(`Ignoring circular reference: ${ref}.`);\n return CIRCULAR_REF;\n }\n this._pendingRefs.put(ref);\n\n try {\n if (xrefEntry.uncompressed) {\n xrefEntry = this.fetchUncompressed(ref, xrefEntry, suppressEncryption);\n } else {\n xrefEntry = this.fetchCompressed(ref, xrefEntry, suppressEncryption);\n }\n this._pendingRefs.remove(ref);\n } catch (ex) {\n this._pendingRefs.remove(ref);\n throw ex;\n }\n if (xrefEntry instanceof Dict) {\n xrefEntry.objId = ref.toString();\n } else if (xrefEntry instanceof BaseStream) {\n xrefEntry.dict.objId = ref.toString();\n }\n return xrefEntry;\n }\n\n fetchUncompressed(ref, xrefEntry, suppressEncryption = false) {\n const gen = ref.gen;\n let num = ref.num;\n if (xrefEntry.gen !== gen) {\n throw new XRefEntryException(`Inconsistent generation in XRef: ${ref}`);\n }\n const stream = this.stream.makeSubStream(\n xrefEntry.offset + this.stream.start\n );\n const parser = new Parser({\n lexer: new Lexer(stream),\n xref: this,\n allowStreams: true,\n });\n const obj1 = parser.getObj();\n const obj2 = parser.getObj();\n const obj3 = parser.getObj();\n\n if (obj1 !== num || obj2 !== gen || !(obj3 instanceof Cmd)) {\n throw new XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`);\n }\n if (obj3.cmd !== \"obj\") {\n // some bad PDFs use \"obj1234\" and really mean 1234\n if (obj3.cmd.startsWith(\"obj\")) {\n num = parseInt(obj3.cmd.substring(3), 10);\n if (!Number.isNaN(num)) {\n return num;\n }\n }\n throw new XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`);\n }\n if (this.encrypt && !suppressEncryption) {\n xrefEntry = parser.getObj(this.encrypt.createCipherTransform(num, gen));\n } else {\n xrefEntry = parser.getObj();\n }\n if (!(xrefEntry instanceof BaseStream)) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n xrefEntry !== undefined,\n 'fetchUncompressed: The \"xrefEntry\" cannot be undefined.'\n );\n }\n this._cacheMap.set(num, xrefEntry);\n }\n return xrefEntry;\n }\n\n fetchCompressed(ref, xrefEntry, suppressEncryption = false) {\n const tableOffset = xrefEntry.offset;\n const stream = this.fetch(Ref.get(tableOffset, 0));\n if (!(stream instanceof BaseStream)) {\n throw new FormatError(\"bad ObjStm stream\");\n }\n const first = stream.dict.get(\"First\");\n const n = stream.dict.get(\"N\");\n if (!Number.isInteger(first) || !Number.isInteger(n)) {\n throw new FormatError(\"invalid first and n parameters for ObjStm stream\");\n }\n let parser = new Parser({\n lexer: new Lexer(stream),\n xref: this,\n allowStreams: true,\n });\n const nums = new Array(n);\n const offsets = new Array(n);\n // read the object numbers to populate cache\n for (let i = 0; i < n; ++i) {\n const num = parser.getObj();\n if (!Number.isInteger(num)) {\n throw new FormatError(\n `invalid object number in the ObjStm stream: ${num}`\n );\n }\n const offset = parser.getObj();\n if (!Number.isInteger(offset)) {\n throw new FormatError(\n `invalid object offset in the ObjStm stream: ${offset}`\n );\n }\n nums[i] = num;\n offsets[i] = offset;\n }\n\n const start = (stream.start || 0) + first;\n const entries = new Array(n);\n // read stream objects for cache\n for (let i = 0; i < n; ++i) {\n const length = i < n - 1 ? offsets[i + 1] - offsets[i] : undefined;\n if (length < 0) {\n throw new FormatError(\"Invalid offset in the ObjStm stream.\");\n }\n parser = new Parser({\n lexer: new Lexer(\n stream.makeSubStream(start + offsets[i], length, stream.dict)\n ),\n xref: this,\n allowStreams: true,\n });\n\n const obj = parser.getObj();\n entries[i] = obj;\n if (obj instanceof BaseStream) {\n continue;\n }\n const num = nums[i],\n entry = this.entries[num];\n if (entry && entry.offset === tableOffset && entry.gen === i) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n obj !== undefined,\n 'fetchCompressed: The \"obj\" cannot be undefined.'\n );\n }\n this._cacheMap.set(num, obj);\n }\n }\n xrefEntry = entries[xrefEntry.gen];\n if (xrefEntry === undefined) {\n throw new XRefEntryException(`Bad (compressed) XRef entry: ${ref}`);\n }\n return xrefEntry;\n }\n\n async fetchIfRefAsync(obj, suppressEncryption) {\n if (obj instanceof Ref) {\n return this.fetchAsync(obj, suppressEncryption);\n }\n return obj;\n }\n\n async fetchAsync(ref, suppressEncryption) {\n try {\n return this.fetch(ref, suppressEncryption);\n } catch (ex) {\n if (!(ex instanceof MissingDataException)) {\n throw ex;\n }\n await this.pdfManager.requestRange(ex.begin, ex.end);\n return this.fetchAsync(ref, suppressEncryption);\n }\n }\n\n getCatalogObj() {\n return this.root;\n }\n}\n\nexport { XRef };\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AbortException,\n assert,\n createPromiseCapability,\n MissingPDFException,\n PasswordException,\n UnexpectedResponseException,\n UnknownErrorException,\n unreachable,\n} from \"./util.js\";\n\nconst CallbackKind = {\n UNKNOWN: 0,\n DATA: 1,\n ERROR: 2,\n};\n\nconst StreamKind = {\n UNKNOWN: 0,\n CANCEL: 1,\n CANCEL_COMPLETE: 2,\n CLOSE: 3,\n ENQUEUE: 4,\n ERROR: 5,\n PULL: 6,\n PULL_COMPLETE: 7,\n START_COMPLETE: 8,\n};\n\nfunction wrapReason(reason) {\n if (\n !(\n reason instanceof Error ||\n (typeof reason === \"object\" && reason !== null)\n )\n ) {\n unreachable(\n 'wrapReason: Expected \"reason\" to be a (possibly cloned) Error.'\n );\n }\n switch (reason.name) {\n case \"AbortException\":\n return new AbortException(reason.message);\n case \"MissingPDFException\":\n return new MissingPDFException(reason.message);\n case \"PasswordException\":\n return new PasswordException(reason.message, reason.code);\n case \"UnexpectedResponseException\":\n return new UnexpectedResponseException(reason.message, reason.status);\n case \"UnknownErrorException\":\n return new UnknownErrorException(reason.message, reason.details);\n default:\n return new UnknownErrorException(reason.message, reason.toString());\n }\n}\n\nclass MessageHandler {\n constructor(sourceName, targetName, comObj) {\n this.sourceName = sourceName;\n this.targetName = targetName;\n this.comObj = comObj;\n this.callbackId = 1;\n this.streamId = 1;\n this.streamSinks = Object.create(null);\n this.streamControllers = Object.create(null);\n this.callbackCapabilities = Object.create(null);\n this.actionHandler = Object.create(null);\n\n this._onComObjOnMessage = event => {\n const data = event.data;\n if (data.targetName !== this.sourceName) {\n return;\n }\n if (data.stream) {\n this._processStreamMessage(data);\n return;\n }\n if (data.callback) {\n const callbackId = data.callbackId;\n const capability = this.callbackCapabilities[callbackId];\n if (!capability) {\n throw new Error(`Cannot resolve callback ${callbackId}`);\n }\n delete this.callbackCapabilities[callbackId];\n\n if (data.callback === CallbackKind.DATA) {\n capability.resolve(data.data);\n } else if (data.callback === CallbackKind.ERROR) {\n capability.reject(wrapReason(data.reason));\n } else {\n throw new Error(\"Unexpected callback case\");\n }\n return;\n }\n const action = this.actionHandler[data.action];\n if (!action) {\n throw new Error(`Unknown action from worker: ${data.action}`);\n }\n if (data.callbackId) {\n const cbSourceName = this.sourceName;\n const cbTargetName = data.sourceName;\n\n new Promise(function (resolve) {\n resolve(action(data.data));\n }).then(\n function (result) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.DATA,\n callbackId: data.callbackId,\n data: result,\n });\n },\n function (reason) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.ERROR,\n callbackId: data.callbackId,\n reason: wrapReason(reason),\n });\n }\n );\n return;\n }\n if (data.streamId) {\n this._createStreamSink(data);\n return;\n }\n action(data.data);\n };\n comObj.addEventListener(\"message\", this._onComObjOnMessage);\n }\n\n on(actionName, handler) {\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!PRODUCTION || TESTING\")\n ) {\n assert(\n typeof handler === \"function\",\n 'MessageHandler.on: Expected \"handler\" to be a function.'\n );\n }\n const ah = this.actionHandler;\n if (ah[actionName]) {\n throw new Error(`There is already an actionName called \"${actionName}\"`);\n }\n ah[actionName] = handler;\n }\n\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * @param {string} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n */\n send(actionName, data, transfers) {\n this.comObj.postMessage(\n {\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data,\n },\n transfers\n );\n }\n\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * Expects that the other side will callback with the response.\n * @param {string} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n * @returns {Promise} Promise to be resolved with response data.\n */\n sendWithPromise(actionName, data, transfers) {\n const callbackId = this.callbackId++;\n const capability = createPromiseCapability();\n this.callbackCapabilities[callbackId] = capability;\n try {\n this.comObj.postMessage(\n {\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n callbackId,\n data,\n },\n transfers\n );\n } catch (ex) {\n capability.reject(ex);\n }\n return capability.promise;\n }\n\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * Expect that the other side will callback to signal 'start_complete'.\n * @param {string} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Object} queueingStrategy - Strategy to signal backpressure based on\n * internal queue.\n * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n * @returns {ReadableStream} ReadableStream to read data in chunks.\n */\n sendWithStream(actionName, data, queueingStrategy, transfers) {\n const streamId = this.streamId++,\n sourceName = this.sourceName,\n targetName = this.targetName,\n comObj = this.comObj;\n\n return new ReadableStream(\n {\n start: controller => {\n const startCapability = createPromiseCapability();\n this.streamControllers[streamId] = {\n controller,\n startCall: startCapability,\n pullCall: null,\n cancelCall: null,\n isClosed: false,\n };\n comObj.postMessage(\n {\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize,\n },\n transfers\n );\n // Return Promise for Async process, to signal success/failure.\n return startCapability.promise;\n },\n\n pull: controller => {\n const pullCapability = createPromiseCapability();\n this.streamControllers[streamId].pullCall = pullCapability;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL,\n streamId,\n desiredSize: controller.desiredSize,\n });\n // Returning Promise will not call \"pull\"\n // again until current pull is resolved.\n return pullCapability.promise;\n },\n\n cancel: reason => {\n assert(reason instanceof Error, \"cancel must have a valid reason\");\n const cancelCapability = createPromiseCapability();\n this.streamControllers[streamId].cancelCall = cancelCapability;\n this.streamControllers[streamId].isClosed = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL,\n streamId,\n reason: wrapReason(reason),\n });\n // Return Promise to signal success or failure.\n return cancelCapability.promise;\n },\n },\n queueingStrategy\n );\n }\n\n /**\n * @private\n */\n _createStreamSink(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const self = this,\n action = this.actionHandler[data.action];\n\n const streamSink = {\n enqueue(chunk, size = 1, transfers) {\n if (this.isCancelled) {\n return;\n }\n const lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n // Enqueue decreases the desiredSize property of sink,\n // so when it changes from positive to negative,\n // set ready as unresolved promise.\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = createPromiseCapability();\n this.ready = this.sinkCapability.promise;\n }\n comObj.postMessage(\n {\n sourceName,\n targetName,\n stream: StreamKind.ENQUEUE,\n streamId,\n chunk,\n },\n transfers\n );\n },\n\n close() {\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CLOSE,\n streamId,\n });\n delete self.streamSinks[streamId];\n },\n\n error(reason) {\n assert(reason instanceof Error, \"error must have a valid reason\");\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ERROR,\n streamId,\n reason: wrapReason(reason),\n });\n },\n\n sinkCapability: createPromiseCapability(),\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: data.desiredSize,\n ready: null,\n };\n\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n\n new Promise(function (resolve) {\n resolve(action(data.data, streamSink));\n }).then(\n function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n success: true,\n });\n },\n function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n reason: wrapReason(reason),\n });\n }\n );\n }\n\n /**\n * @private\n */\n _processStreamMessage(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const streamController = this.streamControllers[streamId],\n streamSink = this.streamSinks[streamId];\n\n switch (data.stream) {\n case StreamKind.START_COMPLETE:\n if (data.success) {\n streamController.startCall.resolve();\n } else {\n streamController.startCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n streamController.pullCall.resolve();\n } else {\n streamController.pullCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL:\n // Ignore any pull after close is called.\n if (!streamSink) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true,\n });\n break;\n }\n // Pull increases the desiredSize property of sink, so when it changes\n // from negative to positive, set ready property as resolved promise.\n if (streamSink.desiredSize <= 0 && data.desiredSize > 0) {\n streamSink.sinkCapability.resolve();\n }\n // Reset desiredSize property of sink on every pull.\n streamSink.desiredSize = data.desiredSize;\n\n new Promise(function (resolve) {\n resolve(streamSink.onPull && streamSink.onPull());\n }).then(\n function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true,\n });\n },\n function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n reason: wrapReason(reason),\n });\n }\n );\n break;\n case StreamKind.ENQUEUE:\n assert(streamController, \"enqueue should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.controller.enqueue(data.chunk);\n break;\n case StreamKind.CLOSE:\n assert(streamController, \"close should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.isClosed = true;\n streamController.controller.close();\n this._deleteStreamController(streamController, streamId);\n break;\n case StreamKind.ERROR:\n assert(streamController, \"error should have stream controller\");\n streamController.controller.error(wrapReason(data.reason));\n this._deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n streamController.cancelCall.resolve();\n } else {\n streamController.cancelCall.reject(wrapReason(data.reason));\n }\n this._deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL:\n if (!streamSink) {\n break;\n }\n\n new Promise(function (resolve) {\n resolve(\n streamSink.onCancel && streamSink.onCancel(wrapReason(data.reason))\n );\n }).then(\n function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n success: true,\n });\n },\n function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n reason: wrapReason(reason),\n });\n }\n );\n streamSink.sinkCapability.reject(wrapReason(data.reason));\n streamSink.isCancelled = true;\n delete this.streamSinks[streamId];\n break;\n default:\n throw new Error(\"Unexpected stream case\");\n }\n }\n\n /**\n * @private\n */\n async _deleteStreamController(streamController, streamId) {\n // Delete the `streamController` only when the start, pull, and cancel\n // capabilities have settled, to prevent `TypeError`s.\n await Promise.allSettled([\n streamController.startCall && streamController.startCall.promise,\n streamController.pullCall && streamController.pullCall.promise,\n streamController.cancelCall && streamController.cancelCall.promise,\n ]);\n delete this.streamControllers[streamId];\n }\n\n destroy() {\n this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n }\n}\n\nexport { MessageHandler };\n","/* Copyright 2019 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert } from \"../shared/util.js\";\n\n/** @implements {IPDFStream} */\nclass PDFWorkerStream {\n constructor(msgHandler) {\n this._msgHandler = msgHandler;\n this._contentLength = null;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n getFullReader() {\n assert(\n !this._fullRequestReader,\n \"PDFWorkerStream.getFullReader can only be called once.\"\n );\n this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler);\n return this._fullRequestReader;\n }\n\n getRangeReader(begin, end) {\n const reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\n\n/** @implements {IPDFStreamReader} */\nclass PDFWorkerStreamReader {\n constructor(msgHandler) {\n this._msgHandler = msgHandler;\n this.onProgress = null;\n\n this._contentLength = null;\n this._isRangeSupported = false;\n this._isStreamingSupported = false;\n\n const readableStream = this._msgHandler.sendWithStream(\"GetReader\");\n this._reader = readableStream.getReader();\n\n this._headersReady = this._msgHandler\n .sendWithPromise(\"ReaderHeadersReady\")\n .then(data => {\n this._isStreamingSupported = data.isStreamingSupported;\n this._isRangeSupported = data.isRangeSupported;\n this._contentLength = data.contentLength;\n });\n }\n\n get headersReady() {\n return this._headersReady;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n async read() {\n const { value, done } = await this._reader.read();\n if (done) {\n return { value: undefined, done: true };\n }\n // `value` is wrapped into Uint8Array, we need to\n // unwrap it to ArrayBuffer for further processing.\n return { value: value.buffer, done: false };\n }\n\n cancel(reason) {\n this._reader.cancel(reason);\n }\n}\n\n/** @implements {IPDFStreamRangeReader} */\nclass PDFWorkerStreamRangeReader {\n constructor(begin, end, msgHandler) {\n this._msgHandler = msgHandler;\n this.onProgress = null;\n\n const readableStream = this._msgHandler.sendWithStream(\"GetRangeReader\", {\n begin,\n end,\n });\n this._reader = readableStream.getReader();\n }\n\n get isStreamingSupported() {\n return false;\n }\n\n async read() {\n const { value, done } = await this._reader.read();\n if (done) {\n return { value: undefined, done: true };\n }\n return { value: value.buffer, done: false };\n }\n\n cancel(reason) {\n this._reader.cancel(reason);\n }\n}\n\nexport { PDFWorkerStream };\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __w_pdfjs_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__w_pdfjs_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__w_pdfjs_require__.o(definition, key) && !__w_pdfjs_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__w_pdfjs_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__w_pdfjs_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WorkerMessageHandler } from \"./core/worker.js\";\n\n/* eslint-disable-next-line no-unused-vars */\nconst pdfjsVersion = PDFJSDev.eval(\"BUNDLE_VERSION\");\n/* eslint-disable-next-line no-unused-vars */\nconst pdfjsBuild = PDFJSDev.eval(\"BUNDLE_BUILD\");\n\nexport { WorkerMessageHandler };\n"],"names":["WorkerTask","constructor","name","terminated","_capability","createPromiseCapability","promise","finish","resolve","terminate","ensureNotTerminated","Error","WorkerMessageHandler","handler","port","testMessageProcessed","on","wphSetupTest","data","send","Uint8Array","wphConfigure","setVerbosityLevel","verbosity","wphSetupDoc","createDocumentHandler","docParams","pdfManager","cancelXHRs","WorkerTasks","getVerbosityLevel","apiVersion","workerVersion","enumerableProperties","property","push","length","join","ReadableStream","partialMsg","isNodeJS","docId","docBaseUrl","workerHandlerName","MessageHandler","startWorkerTask","task","finishWorkerTask","i","indexOf","splice","loadDocument","recoveryMode","ensureDoc","isPureXfa","Promise","all","loadXfaFonts","reason","then","loadXfaImages","numPages","fingerprints","structureTree","htmlForXfa","getPdfManager","evaluatorOptions","enableXfa","pdfManagerCapability","newPdfManager","source","LocalPdfManager","password","ex","reject","pdfStream","cachedChunks","PDFWorkerStream","fullRequest","getFullReader","headersReady","isRangeSupported","disableAutoFetch","isStreamingSupported","NetworkPdfManager","msgHandler","contentLength","rangeChunkSize","sendProgressiveData","loaded","flushChunks","pdfFile","arraysToBytes","warn","readPromise","readChunk","value","done","arrayByteLength","total","Math","max","read","e","cancelAllRequests","setupDoc","onSuccess","doc","pdfInfo","onFailure","PasswordException","code","sendWithPromise","updatePassword","pdfManagerReady","InvalidPDFException","MissingPDFException","UnexpectedResponseException","UnknownErrorException","message","toString","XRefParseException","requestLoadedStream","onLoadedStream","maxImageSize","disableFontFace","ignoreErrors","isEvalSupported","fontExtraProperties","useSystemFonts","cMapUrl","standardFontDataUrl","AbortException","stream","bytes","byteLength","wphSetupGetPage","getPage","pageIndex","page","ensure","rotate","ref","userUnit","view","wphSetupGetPageIndex","pageRef","Ref","get","num","gen","ensureCatalog","wphSetupGetDestinations","wphSetupGetDestination","id","wphSetupGetPageLabels","wphSetupGetPageLayout","wphSetupGetPageMode","wphSetupGetAttachments","wphSetupGetJavaScript","wphSetupGetDocJSActions","wphSetupGetOutline","wphSetupGetMetadata","wphSetupGetMarkInfo","wphSetupGetData","intent","getAnnotationsData","annotationStorage","filename","promises","serializeXfaData","save","acroForm","acroFormRef","xref","startXRef","refs","newRefs","xfaData","filter","x","reduce","a","b","concat","xfa","Dict","xfaDatasetsRef","hasXfaDatasetsEntry","Array","isArray","ii","getNewRef","newXrefInfo","Object","create","trailer","infoObj","xrefInfo","forEach","key","stringToPDFString","rootRef","getRaw","encryptRef","newRef","infoRef","info","fileIds","resetNewRef","incrementalUpdate","originalData","hasXfa","wphSetupRenderPage","sink","start","VerbosityLevel","INFOS","Date","now","getOperatorList","cacheKey","operatorListInfo","close","featureId","UNSUPPORTED_FEATURES","errorOperatorList","error","wphExtractText","extractTextContent","includeMarkedContent","combineTextItems","wphGetStructTree","fontFallback","wphCleanup","cleanup","wphTerminate","waitOn","cleanupPromise","clearGlobalCaches","finished","destroy","wphReady","setup","isMessagePort","maybePort","postMessage","window","self","initializeFromPort","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","RenderingIntentFlag","ANY","DISPLAY","PRINT","ANNOTATIONS_FORMS","ANNOTATIONS_STORAGE","ANNOTATIONS_DISABLE","OPLIST","AnnotationMode","DISABLE","ENABLE","ENABLE_FORMS","ENABLE_STORAGE","PermissionFlag","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","TextRenderingMode","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","ImageKind","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","AnnotationType","TEXT","LINK","FREETEXT","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","STAMP","CARET","INK","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","AnnotationStateModelType","MARKED","REVIEW","AnnotationMarkedState","UNMARKED","AnnotationReviewState","ACCEPTED","REJECTED","CANCELLED","COMPLETED","NONE","AnnotationReplyType","GROUP","REPLY","AnnotationFlag","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","AnnotationFieldFlag","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","AnnotationBorderStyleType","SOLID","DASHED","BEVELED","INSET","AnnotationActionEventType","E","X","D","U","Fo","Bl","PO","PC","PV","PI","K","F","V","C","DocumentActionEventType","WC","WS","DS","WP","DP","PageActionEventType","O","StreamType","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RLX","FontType","TYPE1","TYPE1STANDARD","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","ERRORS","WARNINGS","CMapCompressionType","BINARY","STREAM","OPS","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","boundingBoxes","operationPosition","unknown","forms","javaScript","signatures","smask","shadingPattern","font","errorTilingPattern","errorExtGState","errorXObject","errorFontLoadType3","errorFontState","errorFontMissing","errorFontTranslate","errorColorSpace","errorFontToUnicode","errorFontLoadNative","errorFontBuildPath","errorFontGetPath","errorMarkedContent","errorContentSubStream","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","level","Number","isInteger","msg","console","log","unreachable","assert","cond","_isValidProtocol","url","protocol","createValidAbsoluteUrl","baseUrl","options","addDefaultProtocol","startsWith","dots","match","tryConvertEncoding","stringToUTF8String","absoluteUrl","URL","shadow","obj","prop","defineProperty","enumerable","configurable","writable","BaseException","BaseExceptionClosure","prototype","details","status","FormatError","bytesToString","undefined","MAX_ARGUMENT_COUNT","String","fromCharCode","apply","strBuf","chunkEnd","min","chunk","subarray","stringToBytes","str","charCodeAt","arr","resultLength","pos","item","itemLength","set","string32","objectSize","keys","objectFromMap","map","isLittleEndian","buffer8","view32","Uint32Array","buffer","Function","FeatureTest","OffscreenCanvas","hexNumbers","n","padStart","Util","r","g","minMax","temp","m1","m2","p","m","xt","yt","d","p1","applyTransform","p2","slice","p3","p4","v","transpose","c","first","second","sqrt","sx","sy","rect","rect1","rect2","xLow","xHigh","yLow","yHigh","x0","y0","x1","y1","x2","y2","x3","y3","tvalues","bounds","t","t1","t2","b2ac","sqrtb2ac","abs","j","mt","jlen","PDFStringTranslateTable","encoding","decoder","TextDecoder","fatal","decode","charAt","escapeString","replace","isAscii","test","stringToUTF16BEString","buf","char","decodeURIComponent","escape","utf8StringToString","unescape","encodeURIComponent","isArrayBuffer","isArrayEqual","arr1","arr2","getModificationDate","date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","capability","isSettled","globalThis","_pdfjsCompatibilityChecked","checkNodeBtoa","btoa","chars","Buffer","from","checkNodeAtob","atob","input","checkDOMMatrix","DOMMatrix","__non_webpack_require__","checkPromise","allSettled","require","checkReadableStream","checkStructuredClone","structuredClone","process","versions","nw","electron","type","path","module","exports","$","isPrototypeOf","getPrototypeOf","setPrototypeOf","copyConstructorProperties","createNonEnumerableProperty","createPropertyDescriptor","clearErrorStack","installErrorCause","iterate","normalizeStringArgument","wellKnownSymbol","ERROR_STACK_INSTALLABLE","TO_STRING_TAG","$Error","$AggregateError","AggregateError","errors","arguments","isInstance","AggregateErrorPrototype","that","stack","errorsArray","global","arity","getOwnPropertyDescriptor","f","defineBuiltIn","defineGlobalProperty","isForced","TARGET","target","GLOBAL","STATIC","stat","FORCED","targetProperty","sourceProperty","descriptor","dontCallGetSet","forced","sham","check","it","DESCRIPTORS","call","propertyIsEnumerableModule","toIndexedObject","toPropertyKey","hasOwn","IE8_DOM_DEFINE","$getOwnPropertyDescriptor","P","fails","exec","NATIVE_BIND","bind","hasOwnProperty","$propertyIsEnumerable","propertyIsEnumerable","NASHORN_BUG","bitmap","IndexedObject","requireObjectCoercible","uncurryThis","classof","$Object","split","FunctionPrototype","fn","stringSlice","isNullOrUndefined","$TypeError","TypeError","toPrimitive","isSymbol","argument","isObject","getMethod","ordinaryToPrimitive","TO_PRIMITIVE","pref","exoticToPrim","result","isCallable","documentAll","document","SPECIAL_DOCUMENT_ALL","getBuiltIn","USE_SYMBOL_AS_UID","$Symbol","aFunction","namespace","method","NATIVE_SYMBOL","Symbol","iterator","V8_VERSION","getOwnPropertySymbols","symbol","userAgent","Deno","version","v8","aCallable","func","tryToString","$String","val","valueOf","shared","uid","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","description","IS_PURE","store","mode","copyright","license","SHARED","toObject","postfix","random","createElement","EXISTS","definePropertyModule","object","V8_PROTOTYPE_DEFINE_BUG","anObject","$defineProperty","ENUMERABLE","CONFIGURABLE","WRITABLE","Attributes","current","makeBuiltIn","simple","unsafe","nonConfigurable","nonWritable","CONFIGURABLE_FUNCTION_NAME","inspectSource","InternalStateModule","enforceInternalState","enforce","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","getter","setter","state","getDescriptor","PROPER","something","functionToString","NATIVE_WEAK_MAP","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","has","getterFor","TYPE","wmget","wmhas","wmset","metadata","facade","STATE","ownKeys","getOwnPropertyDescriptorModule","exceptions","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","internalObjectKeys","enumBugKeys","getOwnPropertyNames","names","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","el","fromIndex","index","includes","toIntegerOrInfinity","integer","trunc","number","ceil","floor","toLength","replacement","feature","detection","normalize","POLYFILL","NATIVE","string","toLowerCase","CORRECT_PROTOTYPE_GETTER","IE_PROTO","ObjectPrototype","aPossiblePrototype","CORRECT_SETTER","proto","__proto__","definePropertiesModule","html","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","activeXDocument","write","parentWindow","NullProtoObjectViaIFrame","iframe","JS","iframeDocument","style","display","appendChild","src","contentWindow","open","NullProtoObject","ActiveXObject","domain","Properties","objectKeys","defineProperties","props","TEST","arg","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","dropEntries","prepareStackTrace","cause","isArrayIteratorMethod","getIterator","getIteratorMethod","iteratorClose","Result","stopped","ResultPrototype","iterable","unboundFunction","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","iterFn","next","step","stop","condition","callFn","Iterators","ITERATOR","ArrayPrototype","usingIterator","iteratorMethod","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","tag","callee","kind","innerResult","innerError","$default","addToUnscopables","defineIterator","createIterResultObject","ARRAY_ITERATOR","setInternalState","iterated","values","Arguments","UNSCOPABLES","FunctionName","createIteratorConstructor","setToStringTag","IteratorsCore","PROPER_FUNCTION_NAME","IteratorPrototype","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","ENTRIES","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","getIterationMethod","KIND","defaultIterator","IterablePrototype","entries","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","CurrentIteratorPrototype","methods","KEY","ENUMERABLE_NEXT","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","TAG","IS_NODE","setSpecies","anInstance","speciesConstructor","microtask","hostReportErrors","perform","Queue","NativePromiseConstructor","PromiseConstructorDetection","newPromiseCapabilityModule","PROMISE","FORCED_PROMISE_CONSTRUCTOR","CONSTRUCTOR","NATIVE_PROMISE_REJECTION_EVENT","REJECTION_EVENT","NATIVE_PROMISE_SUBCLASSING","SUBCLASSING","getInternalPromiseState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newPromiseCapability","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","HANDLED","UNHANDLED","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","isThenable","callReaction","reaction","ok","fail","exited","rejection","onHandleUnhandled","enter","exit","notify","isReject","notified","reactions","onUnhandled","event","initEvent","IS_UNHANDLED","isUnhandled","emit","parent","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","add","wrap","SPECIES","CONSTRUCTOR_NAME","Constructor","Prototype","aConstructor","defaultConstructor","S","isConstructor","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","called","arraySlice","validateArgumentsLength","IS_IOS","setImmediate","clear","clearImmediate","Dispatch","MessageChannel","counter","queue","ONREADYSTATECHANGE","location","defer","channel","run","runner","listener","post","host","args","nextTick","port2","port1","onmessage","addEventListener","importScripts","removeChild","setTimeout","Reflect","passed","required","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","flush","head","last","toggle","node","createTextNode","observe","characterData","Pebble","tail","entry","IS_BROWSER","IS_DENO","PromiseRejectionEvent","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","PromiseCapability","$$resolve","$$reject","PROMISE_STATICS_INCORRECT_ITERATION","$promiseResolve","remaining","alreadyCalled","checkCorrectnessOfIteration","SAFE_CLOSING","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","real","race","promiseResolve","PromiseConstructorWrapper","CHECK_WRAPPER","promiseCapability","PROMISE_ANY_ERROR","any","alreadyResolved","alreadyRejected","NON_GENERIC","onFinally","isFunction","STRING_ITERATOR","point","CONVERT_TO_STRING","position","size","codeAt","collection","collectionStrong","init","Map","InternalMetadataModule","inheritIfRequired","common","IS_MAP","IS_WEAK","ADDER","NativeConstructor","NativePrototype","exported","fixMethod","uncurriedNativeMethod","REPLACE","getConstructor","enable","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","setStrong","getOwnPropertyNamesExternalModule","isExtensible","FREEZING","METADATA","setMetadata","objectID","weakData","fastKey","getWeakData","onFreeze","meta","$getOwnPropertyNames","windowNames","getWindowNames","createProperty","$Array","end","k","fin","propertyKey","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","FAILS_ON_PRIMITIVES","ArrayBuffer","preventExtensions","Wrapper","NewTarget","NewTargetPrototype","defineBuiltIns","internalStateGetterFor","define","getEntry","previous","removed","prev","callbackfn","boundFunction","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","Set","getBuiltin","getRegExpFlags","V8","EvalError","RangeError","ReferenceError","SyntaxError","URIError","PerformanceMark","WebAssembly","CompileError","LinkError","RuntimeError","DOMException","MapPrototype","mapHas","mapGet","mapSet","setAdd","thisBooleanValue","thisNumberValue","thisStringValue","thisTimeValue","getTime","PERFORMANCE_MARK","DATA_CLONE_ERROR","TRANSFERRING","checkBasicSemantic","structuredCloneImplementation","set1","set2","checkErrorsCloning","checkNewErrorsCloningSemantic","nativeStructuredClone","FORCED_REPLACEMENT","structuredCloneFromMark","detail","nativeRestrictedStructuredClone","throwUncloneable","throwUnpolyfillable","action","createDataTransfer","dataTransfer","DataTransfer","ClipboardEvent","clipboardData","error2","items","files","structuredCloneInternal","deep","cloned","RegExp","byteOffset","DOMQuad","ImageData","width","height","colorSpace","DataView","setUint8","getUint8","fromPoint","y","z","w","fromRect","fromMatrix","clone","File","PROPER_TRANSFER","transfer","tryToTransfer","rawTransfer","transferredArray","transferred","canvas","context","getContext","transferFromImageBitmap","transferToImageBitmap","regExpFlags","RegExpPrototype","R","flags","hasIndices","ignoreCase","multiline","dotAll","unicode","unicodeSets","sticky","CIRCULAR_REF","EOF","Name","NameClosure","nameCache","nameValue","Cmd","CmdClosure","cmdCache","cmd","cmdValue","nonSerializable","nonSerializableClosure","_map","objId","suppressEncryption","__nonSerializable__","assignXref","newXref","key1","key2","key3","fetch","fetchAsync","getArray","getKeys","getRawValues","callback","emptyDict","dictArray","mergeSubDicts","mergedDict","properties","dict","subDict","RefClosure","refCache","refValue","RefSet","_set","put","remove","RefSetCache","putAlias","aliasRef","isName","isCmd","isDict","isRefsEqual","v1","v2","clearPrimitiveCaches","_clearCache","parseDocBaseUrl","href","BasePdfManager","_docId","_password","catalog","pdfDocument","_docBaseUrl","ensureXRef","manuallyTriggered","requestRange","begin","Stream","PDFDocument","_loadedStreamPromise","pdfNetworkStream","streamManager","ChunkedStreamManager","getStream","MissingDataException","requestAllChunks","onReceiveData","abort","ChunkedStream","chunkSize","manager","_loadedChunks","numChunks","progressiveDataLength","lastSuccessfulEnsureByteChunk","getMissingChunks","chunks","numChunksLoaded","beginChunk","endChunk","curChunk","onReceiveProgressiveData","ensureByte","ensureRange","nextEmptyChunk","hasChunk","getByte","getBytes","strEnd","getByteRange","makeSubStream","ChunkedStreamSubstream","missingChunks","subStream","getBaseStreams","currRequestId","_chunksNeededByRequest","_requestsByChunk","_promisesByRequest","aborted","_loadedStreamCapability","sendRequest","rangeReader","getRangeReader","onProgress","chunkData","_requestChunks","requestId","chunksNeeded","chunksToRequest","requestIds","groupedChunksToRequest","groupChunks","groupedChunk","getBeginChunk","getEndChunk","requestRanges","ranges","range","sort","groupedChunks","prevChunk","isProgressive","isDataLoaded","loadedRequests","lastChunk","onError","err","getLookupTableFactory","initializer","lookup","getArrayLookupTableFactory","ParserEOFException","XRefEntryException","DocStats","_handler","_streamTypes","_fontTypes","_send","streamTypes","fontTypes","addStreamType","addFontType","getInheritableProperty","stopWhenFound","visited","ROMAN_NUMBER_MAP","toRomanNumerals","lowerCase","romanBuf","romanStr","log2","readInt8","offset","readUint16","readUint32","isWhiteSpace","ch","parseXFAPath","positionPattern","component","parseInt","escapePDFName","substring","_collectJS","list","parents","element","js","BaseStream","getString","collectActions","eventType","actions","additionalActionsDicts","additionalActions","actionDict","Action","XMLEntities","encodeToXmlString","codePointAt","entity","toUpperCase","validateCSSFont","cssFontInfo","DEFAULT_CSS_FONT_OBLIQUE","DEFAULT_CSS_FONT_WEIGHT","CSS_FONT_WEIGHT_VALUES","fontFamily","fontWeight","italicAngle","ident","weight","angle","parseFloat","isNaN","recoverJsURL","URL_OPEN_METHODS","regex","jsUrl","newWindow","peekByte","peekedByte","peekBytes","getUint16","b0","b1","getInt32","b2","b3","skip","reset","moveStart","arrayBuffer","StringStream","NullStream","DEFAULT_USER_UNIT","LETTER_SIZE_MEDIABOX","Page","pageDict","globalIdFactory","fontCache","builtInCMapCache","standardFontDataCache","globalImageCache","nonBlendModesSet","xfaFactory","resourcesPromise","idCounters","_localIdFactory","_getInheritableProperty","merge","_getBoundingBox","bbox","box","mediaBox","cropBox","intersect","_onSubStreamError","getContentStream","StreamsSequenceStream","getBoundingBox","partialEvaluator","PartialEvaluator","idFactory","_parsedAnnotations","annotations","newRefsPromises","annotation","mustBePrinted","loadResources","objectLoader","ObjectLoader","resources","load","contentStreamPromise","dataPromises","MCIDBoundingBoxes","positionByOperationIndex","noMCIDBoundingBoxes","pageListPromise","contentStream","opList","OperatorList","transparency","hasBlendModes","operatorList","boundingBoxesByMCID","operationArray","boundingBoxesWithoutMCID","pageOpList","addOp","totalLength","renderForms","intentAny","intentDisplay","intentPrint","opListPromises","mustBeViewed","opLists","addOpList","getTextContent","viewBox","structTreeRoot","structTree","serializable","_parseStructTree","tree","StructTreePage","parse","annotationsData","viewable","printable","annots","parsedAnnotations","annotationPromises","annotationRef","AnnotationFactory","PDF_HEADER_SIGNATURE","STARTXREF_SIGNATURE","ENDOBJ_SIGNATURE","FINGERPRINT_FIRST_BYTES","EMPTY_FINGERPRINT","PDF_HEADER_VERSION_REGEXP","find","signature","limit","backwards","signatureLength","scanBytes","scanLength","signatureEnd","XRef","_pagePromises","_version","_globalIdFactory","Catalog","linearization","Linearization","startXRefLength","found","checkHeader","MAX_PDF_VERSION_LENGTH","parseStartXRef","setStartXRef","hasActualNumPages","getNumPages","_hasOnlyDocumentSignatures","fields","recursionDepth","RECURSION_LIMIT","every","field","fetchIfRef","isSignature","isInvisible","template","datasets","config","connectionSet","localeSet","stylesheet","isEmpty","streams","_xfaStreams","DatasetReader","_","needsRendering","formInfo","hasAcroForm","XFAFactory","isValid","getPages","xfaImagesDict","xfaImages","setImages","getAsync","fontRes","assign","pdfFonts","initialState","fonts","fontName","handleSetFont","missingFonts","setFonts","reallyMissingFonts","missing","getXfaFontName","fontInfo","getXfaFontDict","appendFonts","serializeData","hasFields","hasSignatures","sigFlags","hasOnlyDocumentSignatures","docInfo","PDFFormatVersion","Language","lang","EncryptFilterName","encrypt","filterName","IsLinearized","IsAcroFormPresent","IsXFAPresent","IsCollectionPresent","IsSignaturesPresent","infoDict","customValue","Custom","validate","hexString","hash","hex","idArray","hashOriginal","hashModified","calculateMD5","objectNumberFirst","pageKidsCountCache","pageIndexCache","getPageDict","cachedPromise","pageFirst","_getLinearizationPage","setActualNumPages","getAllPageDicts","pagesTree","reasonAll","_collectFieldObjects","fieldRef","partName","getFieldObject","kids","kid","allFields","fieldPromises","allPromises","catalogJsActions","fieldObjects","some","fieldObject","calculationOrder","ids","ExtendedPDFDocument","getXFAFontMap","factors","MyriadProRegularFactors","baseWidths","LiberationSansRegularWidths","baseMapping","LiberationSansRegularMapping","metrics","MyriadProRegularMetrics","MyriadProBoldFactors","LiberationSansBoldWidths","LiberationSansBoldMapping","MyriadProBoldMetrics","MyriadProItalicFactors","LiberationSansItalicWidths","LiberationSansItalicMapping","MyriadProItalicMetrics","MyriadProBoldItalicFactors","LiberationSansBoldItalicWidths","LiberationSansBoldItalicMapping","MyriadProBoldItalicMetrics","ArialMT","Arial","CalibriRegularFactors","CalibriRegularMetrics","CalibriBoldFactors","CalibriBoldMetrics","CalibriItalicFactors","CalibriItalicMetrics","CalibriBoldItalicFactors","CalibriBoldItalicMetrics","SegoeuiRegularFactors","SegoeuiRegularMetrics","SegoeuiBoldFactors","SegoeuiBoldMetrics","SegoeuiItalicFactors","SegoeuiItalicMetrics","SegoeuiBoldItalicFactors","SegoeuiBoldItalicMetrics","Helvetica","HelveticaRegularFactors","HelveticaRegularMetrics","HelveticaBoldFactors","HelveticaBoldMetrics","HelveticaItalicFactors","HelveticaItalicMetrics","HelveticaBoldItalicFactors","HelveticaBoldItalicMetrics","normalizeFontName","fontMap","getXfaFontWidths","rescaledBaseWidths","currentCode","currentArray","newWidths","charUnicode","unicode1","unicode2","glyphIndex","widths","systemInfo","lineHeight","lineGap","SEAC_ANALYSIS_ENABLED","FontFlags","FixedPitch","Serif","Symbolic","Script","Nonsymbolic","Italic","AllCap","SmallCap","ForceBold","MacStandardGlyphOrdering","getFontType","subtype","isStandardFont","recoverGlyphName","glyphsUnicodeMap","getUnicodeForGlyph","type1FontGlyphMapping","builtInEncoding","glyphNames","charCodeToGlyphId","glyphId","charCode","baseEncoding","isSymbolicFont","isInternalFont","baseEncodingName","getEncoding","StandardEncoding","differences","glyphName","getGlyphsUnicode","standardGlyphName","ExpertEncoding","MacExpertEncoding","MacRomanEncoding","WinAnsiEncoding","SymbolSetEncoding","ZapfDingbatsEncoding","encodingName","getDingbatsGlyphsUnicode","getSpecialPUASymbols","mapSpecialUnicodeValues","nameLen","hexStr","UnicodeRanges","getUnicodeRangeFor","isRTLRangeFor","getNormalizedUnicodes","reverseIfRtl","charsLength","SpecialCharRegExp","CategoryCache","getCharUnicodeCategory","cachedCategory","groups","category","isWhitespace","isZeroWidthDiacritic","isInvisibleFormatMark","clearUnicodeCaches","LINE_FACTOR","collectFields","_getPageIndex","xfaDatasets","createObjId","parameters","LinkAnnotation","TextAnnotation","fieldType","TextWidgetAnnotation","ButtonWidgetAnnotation","ChoiceWidgetAnnotation","SignatureWidgetAnnotation","WidgetAnnotation","PopupAnnotation","FreeTextAnnotation","LineAnnotation","SquareAnnotation","CircleAnnotation","PolylineAnnotation","PolygonAnnotation","CaretAnnotation","InkAnnotation","HighlightAnnotation","UnderlineAnnotation","SquigglyAnnotation","StrikeOutAnnotation","StampAnnotation","FileAttachmentAnnotation","Annotation","fetchIfRefAsync","annotDict","getRgbColor","color","defaultColor","Uint8ClampedArray","rgbColor","ColorSpace","singletons","gray","getRgbItem","rgb","cmyk","getQuadPoints","quadPoints","quadPointsLists","jj","quadPointsList","quadPoint","mX","MX","mY","MY","MAX_VALUE","MIN_VALUE","minX","maxX","minY","maxY","getTransformMatrix","matrix","getAxialAlignedBoundingBox","xRatio","yRatio","params","setTitle","setContents","setModificationDate","setFlags","setRectangle","setColor","setBorderStyle","setAppearance","setBorderAndBackgroundColors","_streams","appearance","annotationFlags","borderStyle","backgroundColor","borderColor","contentsObj","_contents","hasAppearance","modificationDate","hasOwnCanvas","kidIds","fieldName","_constructFieldName","_fallbackFontDict","_hasFlag","flag","_isViewable","_isPrintable","storageEntry","hidden","print","_parseStringHelper","dir","bidi","title","_title","contents","hasFlag","normalizeRect","setLineEndings","lineEndings","mk","AnnotationBorderStyle","dictType","setWidth","setStyle","setDashArray","array","setHorizontalCornerRadius","setVerticalCornerRadius","appearanceStates","normalAppearanceState","as","evaluator","isUsingOwnCanvas","appearanceDict","fallbackFontDict","strokeColor","fillColor","unshift","loopDict","dashArray","horizontalCornerRadius","verticalCornerRadius","maxWidth","maxHeight","forceStyle","allZeros","validNumber","radius","MarkupAnnotation","rawIRT","inReplyTo","rt","replyType","titleObj","creationDate","setCreationDate","hasPopup","richText","getRichTextAsHtml","_setDefaultAppearance","extra","blendMode","strokeAlpha","fillAlpha","pointsCallback","pointsArray","points","formDict","appearanceStreamDict","appearanceStream","gsDict","stateDict","annotationType","fieldValue","_decodeFormValue","defaultFieldValue","_hasValueFromXFA","getValue","alternativeText","defaultAppearance","_defaultAppearance","defaultAppearanceData","parseDefaultAppearance","localResources","acroFormResources","appearanceResources","_fieldResources","mergedResources","fieldFlags","readOnly","hasFieldFlag","formValue","_hasText","_getAppearance","AP","originalTransform","newTransform","createCipherTransform","encryptString","encoder","_getSaveFieldResources","bufferOriginal","writeDict","bufferNew","isPassword","formattedValue","trim","lineCount","multiLine","defaultPadding","hPadding","totalHeight","totalWidth","_getFontData","_computeFontSize","fontSize","descent","vPadding","alignment","textAlignment","_getMultilineAppearance","encodedString","encodeString","comb","_getCombAppearance","renderedText","_renderText","_getTextWidth","text","charsToGlyphs","glyph","roundWithTwoDigits","textWidth","lines","cachedLines","line","encoded","glyphs","positions","getCharPositions","isTooBig","fsize","cache","_splitLine","numberOfLines","round","fontColor","createDefaultAppearance","shift","toFixed","localFont","acroFormFont","subFontDict","subResourcesDict","maximumLength","maxLen","combWidth","renderedComb","padding","scale","lastSpacePosInStringStart","lastSpacePosInStringEnd","lastSpacePos","startChunk","currentWidth","glyphWidth","defaultValue","charLimit","editable","checkedAppearance","uncheckedAppearance","checkBox","radioButton","pushButton","isTooltipOnly","_processCheckBox","_processRadioButton","_processPushButton","exportValue","buttonValue","savedAppearance","_saveCheckbox","_saveRadioButton","parentBuffer","parentTransform","_getDefaultCheckedAppearance","FONT_RATIO","xShift","yShift","customAppearance","normalAppearance","asValue","yes","exportValues","otherYes","fieldParent","fieldParentValue","parseDestDictionary","destDict","resultObj","option","isOptionArray","displayValue","combo","multiSelect","numItems","multipleSelection","exportedValue","valueIndices","lineWidth","numberOfVisibleLines","valuePosition","indexInPage","firstIndex","hpadding","vpadding","DEFAULT_ICON_SIZE","stateModel","parentItem","parentSubtype","parentType","rawParent","parentId","parentRect","parentFlags","lineCoordinates","interiorColor","borderWidth","borderAdjust","controlPointsDistance","tan","xMid","yMid","xOffset","yOffset","vertices","rawVertices","Infinity","vertex","inkLists","rawInkLists","inkList","dy","xEnd","file","FileSpec","DefaultAppearanceEvaluator","operation","savedStatesDepth","EvaluatorPreprocessor","colorCmd","resizeRgbImage","dest","w1","h1","w2","h2","alpha01","COMPONENTS","newIndex","oldIndex","xScaled","Uint16Array","w1Scanline","py","numComps","getRgb","srcOffset","destOffset","getRgbBuffer","count","bits","getOutputLength","inputLength","isPassthrough","isDefaultDecode","decodeMap","bpc","fillRgb","originalWidth","originalHeight","actualHeight","comps","rgbBuf","numComponentColors","needsResizing","allColors","colorMap","destPos","rgbPos","localColorSpaceCache","parsedColorSpace","csName","csRef","localColorSpace","getByRef","getByName","cs","pdfFunctionFactory","_parse","_cache","cachedColorSpace","getCached","PatternCS","colorSpaces","resourcesCS","baseCS","whitePoint","blackPoint","gamma","CalGrayCS","CalRGBCS","alt","altCS","hiVal","IndexedCS","tintFn","AlternateCS","LabCS","DeviceGrayCS","DeviceRgbCS","DeviceCmykCS","base","tmpBuf","Float32Array","baseNumComps","usesZeroToOneRange","baseBuf","scaled","tinted","highVal","outputDelta","lookupPos","q","DeviceCmykCSClosure","convertToRgb","srcScale","CalGrayCSClosure","A","AG","G","L","YW","XW","ZW","XB","YB","ZB","CalRGBCSClosure","BRADFORD_SCALE_MATRIX","BRADFORD_SCALE_INVERSE_MATRIX","SRGB_D65_XYZ_TO_RGB_MATRIX","FLAT_WHITEPOINT_MATRIX","tempNormalizeMatrix","tempConvertMatrix1","tempConvertMatrix2","DECODE_L_CONSTANT","matrixProduct","convertToFlat","sourceWhitePoint","LMS","convertToD65","D65X","D65Y","D65Z","sRGBTransferFunction","adjustToRange","decodeL","compensateBlackPoint","sourceBlackPoint","XYZ_Flat","zeroDecodeL","X_DST","X_SRC","Y_DST","Y_SRC","Z_DST","Z_SRC","X_Scale","X_Offset","Y_Scale","Y_Offset","Z_Scale","Z_Offset","normalizeWhitePointToFlat","XYZ_In","LMS_Flat","normalizeWhitePointToD65","LMS_D65","B","AGR","GR","BGG","GG","CGB","GB","MXA","MXB","MXC","Y","MYA","MYB","MYC","Z","MZA","MZB","MZC","XYZ","XYZ_Black","XYZ_D65","SRGB","LabCSClosure","fn_g","high1","low2","high2","maxVal","Ls","bs","amin","amax","bmin","bmax","M","N","DefaultPartialEvaluatorOptions","freeze","PatternType","TILING","SHADING","TEXT_CHUNK_BATCH_SIZE","deferred","normalizeBlendMode","parsingArray","maybeBM","incrementCachedImageMaskCount","TimeSlotManager","checked","CHECK_TIME_EVERY","endTime","TIME_SLOT_DURATION_MS","parsingType3Font","_fetchBuiltInCMapBound","fetchBuiltInCMap","PDFFunctionFactory","newOptions","newEvaluator","processed","nodes","graphicStates","graphicState","bm","xObjects","xObject","xResources","cachedData","response","statusText","cMapData","compressionType","standardFontNameToFileName","getFontNameToFileMap","xobj","parseMarkedContentProps","optionalContent","group","groupOptions","isolated","knockout","groupSubtype","parseColorSpace","backdrop","_sendImgData","imgData","cacheGlobally","transfers","image","isInline","localImageCache","imageRef","h","imageMask","interpolate","bitStrideLength","imgArray","PDFImage","createRawMask","imageIsFromDecodeStream","DecodeStream","inverseDecode","cached","addImageOps","createMask","isSingleOpaquePixel","addDependency","softMask","mask","SMALL_IMAGE_DIMENSIONS","imageObj","res","_pdfFunctionFactory","createImageData","getDocId","shouldCache","buildImage","addByteSize","addPageIndex","setData","byteSize","handleSMask","stateManager","smaskContent","smaskOptions","transferObj","isPDFFunction","transferFn","transferMap","tmp","buildFormXObject","handleTransferFunction","tr","transferArray","transferMaps","numFns","numEffectfulFns","handleTilingType","pattern","patternDict","localTilingPatternCache","tilingOpList","patternResources","operatorListIR","getIR","tilingPatternIR","getTilingPatternIR","addDependencies","dependencies","fontArgs","fontRef","loadFont","translated","isType3Font","loadType3Data","type3Dependencies","TranslatedFont","loadedName","ErrorFont","handleText","isAddToPathSet","textRenderingMode","fillColorSpace","buildFontPaths","ensureStateFont","gState","localGStateCache","gStateRef","isSimpleGState","gStateObj","gStateKeys","errorFont","type3FontRefs","fontCapability","preEvaluatedFont","preEvaluateFont","fontRefIsRef","fontID","fontAliases","aliasFontRef","createFontId","translateFont","translatedFont","fontType","stats","fontFile3","buildPath","parsingText","lastIndex","fnArray","opArgs","argsArray","parseAsync","parseShading","shading","localShadingPatternCache","Pattern","patternIR","handleColorN","patterns","patternName","pop","rawPattern","localTilingPattern","typeNum","_parseVisibilityExpression","nestingCounter","currentResult","MAX_NESTING","operator","raw","nestedResult","contentProperties","optionalContentType","expression","optionalContentGroups","groupIds","ocg","policy","EvalState","boundingBoxCalculator","BoundingBoxesCalculator","LocalImageCache","LocalColorSpaceCache","LocalGStateCache","LocalTilingPatternCache","xobjs","StateManager","preprocessor","timeSlotManager","closePendingRestoreOPS","promiseBody","ready","isValidName","incrementOperation","localImage","parseOperator","resolveXObject","rejectXObject","globalImage","getData","buildPaintImageXObject","combinedGlyphs","arrLength","arrItem","strokeColorSpace","shadingRes","patternId","localGStateObj","resolveGState","rejectGState","extGState","getNoMCIDBoundingBoxes","seenStyles","TextState","NormalizedUnicodes","textContent","styles","textContentItem","initialized","vertical","prevTransform","textAdvanceScale","spaceInFlowMin","spaceInFlowMax","trackingSpaceMin","negativeSpaceMax","notASpace","hasEOL","twoLastChars","twoLastCharsPos","saveLastChar","nextPos","ret","resetLastChars","TRACKING_SPACE_FACTOR","NOT_A_SPACE_FACTOR","NEGATIVE_SPACE_FACTOR","SPACE_IN_FLOW_MIN_FACTOR","SPACE_IN_FLOW_MAX_FACTOR","showSpacedTextBuffer","emptyXObjectCache","emptyGStateCache","textState","getCurrentTextTransform","tsm","textHScale","textRise","isCharBBox","fontMatrix","glyphHeight","ctm","textMatrix","ensureTextContentItem","fallbackName","ascent","trm","hypot","scaleLineX","textLineMatrix","scaleCtmX","updateAdvanceScale","scaleFactor","runBidiTransform","textChunk","bidiResult","applyInverseRotation","compareWithLastPosition","currentTransform","posX","posY","shiftedX","shiftedY","lastPosX","lastPosY","advanceY","advanceX","textOrientation","sign","appendEOL","flushTextContentItem","addFakeSpaces","buildTextContentItem","extraSpacing","charSpacing","translateTextMatrix","vmetric","scaledDim","wordSpacing","glyphUnicode","transf","enqueueChunk","batch","enqueue","fontNameArg","fontSizeArg","leading","translateTextLineMatrix","carriageReturn","setTextLineMatrix","spaceFactor","elements","currentState","xObjStateManager","sinkWrapper","enqueueInvoked","desiredSize","gStateFont","mcid","getPageObjId","extractDataStructures","baseDict","cidToGidBytes","toUnicodePromise","readToUnicode","toUnicode","composite","cidSystemInfo","registry","ordering","supplement","cidToGidMap","diffEncoding","defaultEncoding","isNonsymbolicFont","hasEncoding","buildToUnicode","builtToUnicode","readCidToGidMap","_simpleFontToUnicode","forceGlyphs","charcode","codeStr","fromCodePoint","hasIncludedToUnicodeMap","fallbackToUnicode","ToUnicodeMap","cMap","builtInCMap","IdentityCMap","ucs2CMapName","CMapFactory","useCMap","ucs2CMap","cid","ucs2","IdentityToUnicodeMap","firstChar","lastChar","cmapObj","cmap","getMap","token","glyphsData","glyphID","extractWidths","glyphsWidths","defaultWidth","glyphsVMetrics","defaultVMetrics","vmetrics","baseFontName","getBaseFontMetrics","buildCharCodeToWidth","isMonospace","firstWidth","isSerifFont","fontNameWoStyle","getSerifFonts","search","monospace","stdFontMap","getStdFontMap","lookupName","Metrics","getMetrics","glyphWidths","widthsByGlyphName","df","MurmurHash3_64","update","diffLength","diffBuf","diffEntry","uint8array","bufferLength","widthsBuf","compositeWidths","subWidthsBuf","hexdigest","getSymbolsFonts","isSimulatedFlags","xHeight","capHeight","standardFontName","getStandardFontName","fetchStandardFontData","newProperties","Font","baseFont","fontNameStr","baseFontStr","fontFile","glyphScaleFactors","subtypeEntry","length1","length2","length3","fixedPitch","scaleFactors","cidEncoding","fontChar","renderer","hasBuiltPath","getPathJs","accent","_evaluatorOptions","type3Loaded","sent","exportData","fallback","glyphCacheValues","type3Evaluator","loadCharProcsPromise","charProcs","fontResources","charProcOperatorList","isEmptyBBox","glyphStream","_removeType3ColorOperators","dummyOperatorList","_bbox","charBBox","gStateKey","stateStack","old","parser","Parser","lexer","Lexer","opMap","nonProcessedArgs","_numInvalidPathOPS","getObj","opSpec","numArgs","argsLength","variableArgs","MAX_INVALID_PATH_OPS","preprocessCommand","getOPMap","J","ri","gs","Q","cm","l","re","s","W","BT","ET","Tc","Tw","Tz","TL","Tf","Tr","Ts","Td","TD","Tm","Tj","TJ","d0","d1","CS","SC","SCN","sc","scn","RG","rg","sh","BI","ID","EI","Do","MP","BMC","BDC","EMC","BX","EX","BM","BD","fa","fal","fals","nu","nul","BUILT_IN_CMAPS","MAX_MAP_RANGE","CMap","codespaceRanges","numCodespaceRanges","addCodespaceRange","low","high","mapCidRange","dstLow","mapBfRange","lastByte","nextCharCode","mapBfRangeToArray","mapOne","dst","contains","charCodeOf","readCharCode","out","nn","codespaceRange","kk","getCharCodeLength","BinaryCMapReader","BinaryCMapReaderClosure","hexToInt","hexToStr","addHex","incHex","MAX_NUM_SIZE","MAX_ENCODED_NUM_SIZE","BinaryCMapStream","readByte","readNumber","readSigned","readHex","readHexNumber","sp","bufferSize","readHexSigned","readString","len","extend","header","sequence","dataSize","ucs2DataSize","subitemsCount","CMapFactoryClosure","strToInt","expectString","expectInt","parseBfChar","parseBfRange","parseCidChar","parseCidRange","parseCodespaceRange","parseWMode","parseCMapName","parseCMap","embeddedUseCMap","extendCMap","createBuiltInCMap","useCodespaceRanges","parsedCMap","isIdentityCMap","MAX_LENGTH_TO_CACHE","MAX_ADLER32_LENGTH","computeAdler32","bytesLength","allowStreams","imageCache","refill","buf1","buf2","tryShift","cipherTransform","makeInlineImage","makeStream","decryptString","findDefaultInlineStreamEnd","I","SPACE","LF","CR","NUL","startPos","maybeEIPos","followingBytes","knownCommands","nextObj","peekObj","endOffset","findDCTDecodeInlineStreamEnd","foundEOI","markerLength","inlineStreamSkipEI","findASCII85DecodeInlineStreamEnd","TILDE","tildePos","maybeEI","findASCIIHexDecodeInlineStreamEnd","dictLength","beginInlineImagePos","filterZero","imageStream","imageBytes","initialStreamPos","dictBytes","cacheEntry","createStream","_findStreamLength","SCAN_BLOCK_LENGTH","skipToNextLine","nextChar","ENDSTREAM_SIGNATURE","actualLength","MAX_TRUNCATION","TRUNCATED_SIGNATURE","maybeLength","makeFilter","filterArray","paramsArray","xrefStats","PredictorStream","FlateStream","earlyChange","LZWStream","JpegStream","JpxStream","Ascii85Stream","AsciiHexStream","CCITTFaxStream","RunLengthStream","Jbig2Stream","specialChars","toHexDigit","_hexStringNumWarn","currentChar","peekChar","getNumber","eNotation","divideBy","baseValue","powerValue","powerValueSign","currentDigit","numParen","charBuffered","getName","previousCh","_hexStringWarn","MAX_HEX_STRING_NUM_WARN","getHexString","isFirstHex","firstDigit","secondDigit","comment","nextCh","knownCommandFound","possibleCommand","streamPos","getInt","linDict","allowZeroValue","getHints","hints","hintsLength","hint","obj1","obj2","obj3","endFirst","mainXRefEntriesOffset","readBlock","TILDA_CHAR","Z_LOWER_CHAR","eof","ensureBuffer","emptyBuffer","maybeMinBufferLength","_rawMinBufferLength","minBufferLength","requested","buffer2","bufEnd","_onError","newLength","baseStreamsBuf","baseStreams","UPSTREAM_BLOCK_SIZE","maxDecodeLength","digit","ccittFaxDecoder","CCITTFaxDecoder","EndOfLine","EncodedByteAlign","Columns","Rows","EndOfBlock","BlackIs1","readNextChar","ccittEOL","ccittEOF","twoDimPass","twoDimHoriz","twoDimVert0","twoDimVertR1","twoDimVertL1","twoDimVertR2","twoDimVertL2","twoDimVertR3","twoDimVertL3","twoDimTable","whiteTable1","whiteTable2","blackTable1","blackTable2","blackTable3","eoline","byteAlign","columns","rows","eoblock","black","codingLine","refLine","codingPos","row","nextLine2D","inputBits","inputBuf","outputBits","rowsDone","code1","_lookBits","_eatBits","refPos","blackPixels","code2","code3","_getTwoDimCode","_addPixels","_getBlackCode","_getWhiteCode","_addPixelsNeg","gotEOL","a1","_findTableCode","table","limitValue","codeLenCodeMap","Int32Array","lengthDecode","distDecode","fixedLitCodeTab","fixedDistCodeTab","cmf","flg","codeSize","codeBuf","getBits","getCode","codes","codeLen","codeVal","generateHuffmanTable","lengths","hdr","blockLen","block","litCodeTable","distCodeTable","numLitCodes","numDistCodes","numCodeLenCodes","codeLenCodeLengths","codeLenCodeTab","codeLengths","bitsLength","bitsOffset","what","repeatLength","dist","jbig2Image","Jbig2Image","globalsStream","globals","parseChunks","dataLength","Jbig2Error","ContextCache","getContexts","Int8Array","DecodingContext","ArithmeticDecoder","decodeInteger","contextCache","procedure","contexts","readBits","bit","readBit","decodeIAID","codeLength","SegmentTypes","CodingTemplates","RefinementTemplates","coding","reference","ReusedContexts","RefinementReusedContexts","decodeBitmapTemplate0","decodingContext","contextLabel","pixel","row1","row2","OLD_PIXEL_MASK","decodeBitmap","mmr","templateIndex","prediction","at","Reader","decodeMMRBitmap","useskip","templateLength","templateX","templateY","changingTemplateEntries","reuseMask","changingEntriesLength","changingTemplateX","changingTemplateY","changingTemplateBit","sbb_left","sbb_top","sbb_right","pseudoPixelContext","ltp","i0","j0","sltp","decodeRefinement","referenceBitmap","offsetX","offsetY","codingTemplate","codingTemplateLength","codingTemplateX","codingTemplateY","referenceTemplate","referenceTemplateLength","referenceTemplateX","referenceTemplateY","referenceWidth","referenceHeight","decodeSymbolDictionary","huffman","refinement","symbols","numberOfNewSymbols","numberOfExportedSymbols","huffmanTables","refinementTemplateIndex","refinementAt","huffmanInput","newSymbols","currentHeight","symbolCodeLength","tableB1","symbolWidths","getStandardTable","deltaHeight","tableDeltaHeight","firstSymbol","deltaWidth","tableDeltaWidth","numberOfInstances","decodeTextRegion","symbolId","rdx","rdy","bitmapSize","tableBitmapSize","collectiveBitmap","readUncompressedBitmap","originalEnd","bitmapEnd","numberOfSymbolsDecoded","xMin","xMax","bitmapWidth","symbolBitmap","exportedSymbols","currentFlag","totalSymbolsLength","runLength","defaultPixelValue","numberOfSymbolInstances","stripSize","inputSymbols","transposed","dsOffset","referenceCorner","combinationOperator","logStripSize","stripT","tableDeltaT","firstS","deltaT","deltaFirstS","tableFirstS","currentS","currentT","symbolIDTable","applyRefinement","symbolWidth","symbolHeight","rdw","rdh","offsetT","offsetS","s2","symbolRow","deltaS","tableDeltaS","decodePatternDictionary","patternWidth","patternHeight","maxPatternIndex","collectiveWidth","patternBitmap","decodeHalftoneRegion","regionWidth","regionHeight","enableSkip","gridWidth","gridHeight","gridOffsetX","gridOffsetY","gridVectorX","gridVectorY","regionBitmap","numberOfPatterns","pattern0","bitsPerValue","grayScaleBitPlanes","mmrInput","mg","ng","patternIndex","patternRow","regionRow","regionX","regionY","readSegmentHeader","segmentHeader","segmentType","typeName","deferredNonRetain","pageAssociationFieldSize","referredFlags","referredToCount","retainBits","referredToSegmentNumberSize","referredTo","pageAssociation","genericRegionInfo","readRegionSegmentInformation","genericRegionSegmentFlags","RegionSegmentInformationFieldLength","genericRegionMmr","searchPatternLength","searchPattern","headerEnd","readSegments","segments","segment","randomAccess","processSegment","visitor","atLength","dictionary","dictionaryFlags","huffmanDHSelector","huffmanDWSelector","bitmapSizeSelector","aggregationInstancesSelector","bitmapCodingContextUsed","bitmapCodingContextRetained","refinementTemplate","textRegion","textRegionSegmentFlags","textRegionHuffmanFlags","huffmanFS","huffmanDS","huffmanDT","huffmanRefinementDW","huffmanRefinementDH","huffmanRefinementDX","huffmanRefinementDY","huffmanRefinementSizeSelector","patternDictionary","patternDictionaryFlags","halftoneRegion","halftoneRegionFlags","genericRegion","pageInfo","resolutionX","resolutionY","pageSegmentFlags","lossless","requiresBuffer","combinationOperatorOverride","callbackName","processSegments","parseJbig2Chunks","SimpleSegmentVisitor","parseJbig2","numberOfPages","currentPageInfo","bitPacked","onPageInformation","rowSize","drawBitmap","regionInfo","mask0","offset0","onImmediateGenericRegion","region","onImmediateLosslessGenericRegion","onSymbolDictionary","currentSegment","referredSegments","getSymbolDictionaryHuffmanTables","customTables","referredSymbols","onImmediateTextRegion","getTextRegionHuffmanTables","onImmediateLosslessTextRegion","onPatternDictionary","onImmediateHalftoneRegion","onImmediateLosslessHalftoneRegion","onTables","decodeTablesSegment","HuffmanLine","lineData","isOOB","rangeLow","prefixLength","rangeLength","prefixCode","isLowerRange","HuffmanTreeNode","children","isLeaf","buildTree","decodeNode","reader","htOffset","HuffmanTable","prefixCodesDone","assignPrefixCodes","rootNode","linesLength","prefixLengthMax","histogram","currentLength","firstCode","currentTemp","lowestValue","highestValue","prefixSizeBits","rangeSizeBits","currentRangeLow","standardTablesCache","currentByte","numBits","getCustomHuffmanTable","currentIndex","numberOfSymbols","runCodesTable","repeatedLength","numberOfRepeats","customIndex","tableAggregateInstances","endOfBlock","lookForEOFLimit","QeTable","qe","nmps","nlps","switchFlag","bp","dataEnd","chigh","clow","byteIn","ct","cx_index","cx_mps","qeTableIcx","qeIcx","jpegOptions","decodeTransform","colorTransform","decodeArr","forceRGB","bitsPerComponent","decodeArrLength","transformNeeded","maxValue","jpegImage","JpegImage","drawWidth","drawHeight","isSourcePDF","JpegError","DNLMarkerError","scanLines","EOIMarkerError","dctZigZag","dctCos1","dctSin1","dctCos3","dctSin3","dctCos6","dctSin6","dctSqrt2","dctSqrt1d2","buildHuffmanTable","getBlockBufferOffset","col","blocksPerLine","decodeScan","frame","components","resetInterval","spectralStart","spectralEnd","successivePrev","successive","parseDNLMarker","mcusPerLine","progressive","startOffset","bitsData","bitsCount","nextByte","maybeScanLines","blockRow","precision","decodeHuffman","receive","receiveAndExtend","decodeBaseline","blockOffset","huffmanTableDC","diff","blockData","pred","rs","huffmanTableAC","decodeDCFirst","decodeDCSuccessive","eobrun","decodeACFirst","successiveACState","successiveACNextValue","decodeACSuccessive","offsetZ","decodeMcu","mcu","mcuRow","mcuCol","blockCol","decodeBlock","componentsLength","decodeFn","fileMarker","mcuExpected","blocksPerColumn","mcusPerColumn","mcuToRead","findNextFileMarker","invalid","marker","quantizeAndInverse","blockBufferOffset","qt","quantizationTable","v0","v3","v4","v5","v6","v7","p0","p5","p6","p7","buildComponentData","computationBuffer","Int16Array","currentPos","maxPos","newPos","currentMarker","newMarker","_decodeTransform","_colorTransform","dnlScanLines","readDataBlock","prepareComponents","samplesPerLine","maxH","maxV","blocksPerLineForMcu","blocksPerColumnForMcu","blocksBufferSize","jfif","adobe","numSOSMarkers","quantizationTables","huffmanTablesAC","huffmanTablesDC","markerLoop","appData","major","minor","densityUnits","xDensity","yDensity","thumbWidth","thumbHeight","thumbData","flags0","flags1","transformCode","quantizationTablesLength","quantizationTablesEnd","quantizationTableSpec","tableData","extended","sofScanLines","componentIds","componentsCount","componentId","qId","quantizationId","huffmanLength","huffmanTableSpec","codeLengthSum","huffmanValues","selectorsCount","componentIndex","tableSpec","successiveApproximation","nextFileMarker","output","scaleX","scaleY","numComponents","_getLinearizedBlockData","componentScaleX","componentScaleY","blocksPerScanline","xScaleBlockOffset","mask3LSB","lastComponentScaleX","_convertYccToRgb","Cb","Cr","_convertYcckToRgb","_convertYcckToCmyk","_convertCmykToRgb","rgbData","grayColor","_isColorConversionNeeded","jpxImage","JpxImage","tileCount","tiles","tileComponents","tileWidth","tileHeight","tileLeft","left","tileTop","top","srcPosition","dataPosition","imgRowSize","tileRowSize","rowBytes","JpxError","SubbandsGainLog2","LL","LH","HL","HH","failOnCorruptedImage","parseCodestream","headerSize","lbox","tbox","jumpDataLength","colorspace","headerType","parseImageProperties","newByte","oldByte","Xsiz","Ysiz","XOsiz","YOsiz","Csiz","doNotRecover","sqcd","spqcds","spqcdSize","scalarExpounded","tile","mainHeader","siz","XTsiz","YTsiz","XTOsiz","YTOsiz","isSigned","XRsiz","YRsiz","calculateComponentDimensions","SIZ","calculateTileGrids","QCC","COC","qcd","noQuantization","guardBits","spqcd","epsilon","mu","SPqcds","QCD","currentTile","qcc","cqcc","cod","scod","entropyCoderWithCustomPrecincts","sopMarkerUsed","ephMarkerUsed","progressionOrder","layersCount","multipleComponentTransform","decompositionLevelsCount","xcb","ycb","blockStyle","selectiveArithmeticCodingBypass","resetContextProbabilities","terminationOnEachCodingPass","verticallyStripe","predictableTermination","segmentationSymbolUsed","reversibleTransformation","precinctsSizes","precinctsSize","PPx","PPy","unsupported","COD","partIndex","partsCount","initializeTile","buildPackets","parseTilePackets","transformComponents","numXtiles","numYtiles","tx0","ty0","tx1","ty1","tileComponent","tcx0","tcy0","tcx1","tcy1","getBlocksDimensions","codOrCoc","codingStyleParameters","xcb_","ycb_","buildPrecincts","resolution","dimensions","precinctWidth","precinctHeight","isZeroRes","resLevel","precinctWidthInSubband","precinctHeightInSubband","numprecinctswide","trx1","trx0","numprecinctshigh","try1","try0","numprecincts","precinctParameters","buildCodeblocks","subband","codeblockWidth","codeblockHeight","cbx0","tbx0","cby0","tby0","cbx1","tbx1","cby1","tby1","codeblocks","precincts","codeblock","precinctNumber","cbx","cby","tbx0_","tby0_","tbx1_","tby1_","pi","pj","subbandType","Lblock","precinct","cbxMin","cbxMax","cbyMin","cbyMax","codeblockParameters","numcodeblockwide","numcodeblockhigh","createPacket","layerNumber","precinctCodeblocks","subbands","LayerResolutionComponentPositionIterator","tileIndex","codingStyleDefaultParameters","maxDecompositionLevelsCount","nextPacket","JpxImage_nextPacket","resolutions","packet","ResolutionLayerComponentPositionIterator","ResolutionPositionComponentLayerIterator","maxNumPrecinctsInLevel","maxNumPrecincts","PositionComponentResolutionLayerIterator","getPrecinctSizesInImageScale","precinctsIterationSizes","px","maxNumHigh","maxNumWide","sizeInImageScale","getPrecinctIndexIfExist","ComponentPositionResolutionLayerIterator","pxIndex","pyIndex","precinctIterationSizes","minWidth","minHeight","startPrecinctRowIndex","sizePerComponent","sizePerResolution","minWidthCurrentComponent","minHeightCurrentComponent","maxNumWideCurrentComponent","maxNumHighCurrentComponent","widthCurrentResolution","heightCurrentResolution","blocksDimensions","bscale","resolutionSubbands","packetsIterator","skipNextBit","skipMarkerIfEqual","skipBytes","alignToByte","readCodingpasses","codeblockColumn","codeblockRow","codeblockIncluded","firstTimeInclusion","valueReady","zeroBitPlanesTree","included","inclusionTree","InclusionTree","TagTree","nextLevel","incrementValue","zeroBitPlanes","codingpasses","codingpassesLog2","codedDataLength","packetItem","copyCoefficients","coefficients","levelWidth","levelHeight","delta","mb","reversible","right","bottom","blockWidth","blockHeight","bitModel","BitModel","currentCodingpassType","dataItem","encodedData","setDecoder","runSignificancePropagationPass","runMagnitudeRefinementPass","runCleanupPass","checkSegmentationSymbol","coefficentsSign","magnitude","coefficentsMagnitude","bitsDecoded","magnitudeCorrection","nb","interleave","levelOffset","transformTile","quantizationParameters","ReversibleTransform","IrreversibleTransform","subbandCoefficients","gainLog2","calculate","resultImages","transformedTiles","tile0","fourComponents","y0items","y1items","y2items","y3items","component0","qcdOrQcc","levelsLength","levels","currentLevel","stopValue","propagateValues","levelIndex","currentValue","BitModelClosure","UNIFORM_CONTEXT","RUNLENGTH_CONTEXT","LLAndLHContextsLabel","HLContextLabel","HHContextLabel","contextLabelTable","coefficientCount","neighborsSignificance","processingFlags","setNeighborsSignificance","column","labels","processedInverseMask","processedMask","firstMagnitudeBitMask","i1","decision","decodeSignBit","contribution","sign0","sign1","significance1","decoded","horizontalContribution","width4","index0","indexNext","significance","oneRowDown","twoRowsDown","threeRowsDown","iNext","indexBase","checkAllEmpty","allEmpty","hasSignificantCoefficent","i2","Transform","u0","ll","j1","j2","hl_lh_hh","llWidth","llHeight","llItems","u","bufferPadding","rowBuffer","numBuffers","colBuffers","currentBuffer","alpha","beta","K_","bitsCached","maxLzwDictionarySize","lzwState","nextCode","dictionaryValues","dictionaryLengths","dictionaryPrevCodes","currentSequence","currentSequenceLength","lastCode","blockSize","decodedSizeDelta","estimatedDecodedSize","prevCode","decodedLength","currentBufferLength","hasPrev","predictor","readBlockTiff","readBlockPng","colors","pixBytes","rawBytes","inbuf","outbuf","inbits","outbits","bytesPerPixel","sum","compArray","bitMask","prevRow","up","upLeft","pa","pb","pc","repeatHeader","PRIVATE_USE_AREAS","PDF_GLYPH_SPACE_UNITS","EXPORT_DATA_PROPERTIES","EXPORT_DATA_EXTRA_PROPERTIES","adjustWidths","adjustToUnicode","amend","amendFallbackToUnicode","Glyph","originalCharCode","operatorListId","isSpace","isInFont","matchesForCache","int16","writeSignedInt16","signedInt16","int32","string16","safeString16","isTrueTypeFile","isTrueTypeCollectionFile","isOpenTypeFile","isType1File","isCFFFile","getFontFileType","fileType","fileSubtype","applyStandardFontGlyphMap","glyphMap","buildToFontChar","toFontChar","convertCidString","shouldThrow","adjustMapping","hasGlyph","newGlyphZeroId","newMap","privateUseAreaIndex","nextAvailableFontCharCode","privateUseOffetEnd","fontCharCode","getRanges","numGlyphs","fontGetRangesSort","codeIndices","createCmapTable","numTables","bmpLength","trailingRangesCount","segCount","searchParams","OpenTypeFileBuilder","getSearchParams","startCount","endCount","idDeltas","idRangeOffsets","glyphsIds","bias","contiguous","startCode","format314","rangeShift","format31012","header31012","validateOS2Table","os2","selection","usWinAscent","createOS2Table","charstrings","override","unitsPerEm","yMax","yMin","ulUnicodeRange1","ulUnicodeRange2","ulUnicodeRange3","ulUnicodeRange4","firstCharIndex","lastCharIndex","ascentScaled","typoAscent","typoDescent","winAscent","winDescent","createPostTable","createPostscriptName","createNameTable","strings","stringsUnicode","strBufUnicode","platforms","encodings","languages","namesRecordCount","nameTable","strOffset","strs","nameRecord","psName","mimetype","missingFile","_charsCache","_glyphCache","baseName","serifFonts","namePart","fallbackToSystemFont","cff","CFFFont","Type1Font","convert","checkAndRepair","isOpenType","seacMap","FontRendererFactory","extraProperties","exportDataProperties","nonStdFontMap","getNonStdFontMap","isMappedToStandardFont","fontBasicMetricsMap","getFontBasicMetrics","bold","italic","isNarrow","remeasure","getGlyphMapForStandardFonts","getSupplementalGlyphMapForArialBlack","getSupplementalGlyphMapForCalibri","unicodeCharCode","VALID_TABLES","readTables","tables","hhea","hmtx","maxp","readTableEntry","checksum","previousPosition","readOpenTypeHeader","ttf","searchRange","entrySelector","readTrueTypeCollectionHeader","ttc","ttcTag","majorVersion","minorVersion","numFonts","offsetTable","dsigTag","dsigLength","dsigOffset","readTrueTypeCollectionData","fontNameParts","fallbackData","potentialHeader","potentialTables","readNameTable","nameEntry","part","readCmapTable","platformId","encodingId","mappings","hasShortCmap","potentialTable","canBreak","useTable","correctlySorted","nextBytes","nextPlatformId","format","subHeaderKeys","maxSubHeaderKey","subHeaderKey","subHeaders","entryCount","idDelta","idRangePos","segIndex","offsetsCount","offsetIndex","rangeOffset","offsets","nGroups","startCharCode","endCharCode","glyphCode","sanitizeMetrics","headTable","dupFirstEntry","caretOffset","numOfMetrics","macStyle","numOfSidebearings","numMissing","sanitizeGlyph","sourceStart","sourceEnd","destStart","hintsValid","glyphProfile","sizeOfInstructions","glyf","contoursCount","flagsCount","endPoint","instructionsStart","instructionsLength","instructionsEnd","coordinatesLength","xLength","yLength","xyLength","repeat","glyphDataLength","sanitizeHead","locaLength","indexToLocFormat","numGlyphsPlusOne","sanitizeGlyphLocations","loca","isGlyphLocationsLong","maxSizeOfInstructions","itemSize","itemDecode","itemEncode","fontItemDecodeLong","fontItemEncodeLong","fontItemDecode","fontItemEncode","numGlyphsOut","locaDataSize","locaData","oldGlyfData","oldGlyfDataLength","newGlyfData","locaEntries","nextOffset","missingGlyphs","writeOffset","simpleGlyph","firstEntryLength","readPostScriptTable","propertiesObj","maxpNumGlyphs","valid","glyphNameIndexes","customNames","stringLength","FORMAT_0_HEADER_LENGTH","numRecords","stringsStart","records","NAME_RECORD_LENGTH","platform","language","record","nameIndex","TTOpsStackDeltas","sanitizeTTProgram","ttContext","funcId","lastEndf","lastDeff","callstack","functionsCalled","tooComplexToFollowFunctions","inFDEF","ifLevel","inELSE","op","functionsUsed","functionsStackDeltas","newStackLength","functionsDefined","stackTop","stackDelta","NaN","foldTTTable","checkInvalidFunctions","maxFunctionDefs","sanitizeTTPrograms","fpgm","prep","cvt","cvtData","ttcData","cffFile","isTrueType","isComposite","GlyfTable","glyfTable","locaTable","isLocationLong","advanceWidth","lsb","maxZones","glyphsInfo","metricsOverride","isCidToGidMapEmpty","cmapTable","cmapPlatformId","cmapEncodingId","cmapMappings","cmapMappingsLength","forcePostTable","unicodeOrCharCode","glyphZeroId","newMapping","CFFParser","duplicateFirstGlyph","compiler","CFFCompiler","compile","namePrototype","builder","tableTag","addTable","toArray","mapping","getGlyphMapping","newCharCodeToGlyphId","hasGlyphId","getCharCodes","charCodes","createCharCode","seacs","charset","getCharset","seac","baseGlyphName","accentGlyphName","baseGlyphId","accentGlyphId","accentOffset","baseFontCharCode","accentFontCharCode","fontFieldsHmtx","cffWidths","charstring","possibleSpaceReplacements","_charToGlyph","widthCode","buffers","currentBuf","hasCurrentBufErrors","getCharCode","charCodeLength","MAX_SUBR_NESTING","CFFStandardStrings","NUM_STANDARD_CFF_STRINGS","CFFParserClosure","CharstringValidationData","stackClearing","stem","resetStack","undefStack","CharstringValidationData12","stackFn","stack_div","seacAnalysisEnabled","CFF","parseHeader","parseIndex","endPos","topDictIndex","stringIndex","globalSubrIndex","topDictParsed","parseDict","topDict","createDict","CFFTopDict","parseNameIndex","parseStringIndex","parsePrivateDict","isCIDFont","hasName","charStringOffset","charStringIndex","fontBBox","fdArrayIndex","dictRaw","fontDict","fdArray","parseCharsets","fdSelect","parseFDSelect","parseEncoding","charStringsAndSeacs","parseCharStrings","charStrings","localSubrIndex","privateDict","subrsIndex","hdrSize","offSize","CFFHeader","parseOperand","parseFloatOperand","operands","cffIndex","CFFIndex","offsetSize","offsetStart","offsetEnd","CFFStrings","Type","cffDict","pair","setByKey","parseCharString","callDepth","stackSize","validationCommand","subrNumber","hasVStems","firstStackClearing","localSubrToUse","privateDictToUse","fdIndex","getFDIndex","nominalWidth","emptyPrivateDictionary","parentDict","CFFPrivateDict","privateOffset","removeByName","privateDictEnd","dictData","subrsOffset","relativeOffset","CFFCharset","CFFCharsetPredefinedTypes","ISO_ADOBE","ISOAdobeCharset","EXPERT","ExpertCharset","EXPERT_SUBSET","ExpertSubsetCharset","predefined","readSupplement","supplementsCount","sid","dataStart","glyphsCount","rangesCount","gid","CFFEncoding","CFFFDSelect","glyphZero","getSID","objects","CFFDict","keyToNameMap","nameToKeyMap","defaults","types","opcodes","order","valueLength","setByName","layout","CFFTopDictClosure","createTables","CFFPrivateDictClosure","CFFOffsetTracker","isTracking","track","setEntryLocation","dataOffset","offset1","offset2","offset3","offset4","CFFCompiler_add","compileHeader","compileNameIndex","xuid","compiled","compileTopDicts","topDictTracker","trackers","compileStringIndex","compileIndex","compileEncoding","compileCharset","compileCharStrings","compileFDSelect","fontDictTrackers","compilePrivateDicts","encodeNumber","encodeInteger","encodeFloat","EncodeFloatRegExp","nibbles","sanitizedName","dicts","removeCidKeys","fontDictTracker","fontDictData","compileDict","privateDictTracker","privateDictData","outputLength","subrs","offsetTracker","compileGlobalSubrIndex","writeByteArray","charStringsIndex","numGlyphsLessNotDef","charsetIndex","numCharsets","warned","compileTypedArray","lastFD","currentFD","numRanges","lastOffset","Courier","ZapfDingbats","ArialNarrow","ArialBlack","CourierNew","CourierNewPSMT","TimesNewRoman","TimesNewRomanPS","TimesNewRomanPSMT","Calibri","CenturyGothic","ComicSansMS","LucidaConsole","NuptialScript","SegoeUISymbol","Wingdings","Albertus","Aldus","Alexandria","Algerian","Antiqua","Apex","Arno","Aster","Aurora","Baskerville","Bell","Bembo","Benguiat","Bodoni","Bookman","Calisto","Calvert","Capitals","Cambria","Cartier","Caslon","Catull","Centaur","Chaparral","Cheltenham","Clarendon","Clearface","Cochin","Colonna","Constantia","Corona","Ecotype","Egyptienne","Elephant","Excelsior","Fairfield","Folkard","Footlight","FreeSerif","Garamond","Gentium","Georgia","Gloucester","Granjon","Heather","Hercules","Hiroshige","Imprint","Janson","Joanna","Korinna","Lexicon","LiberationSerif","Literaturnaya","Lucida","Melior","Memphis","Miller","Minion","Modern","Palatino","Perpetua","Plantin","Playbill","Renault","Requiem","Rockwell","Roman","Sabon","Scala","Seagull","Sistina","Souvenir","STIX","Sylfaen","Times","Trajan","Utopia","Versailles","Wanted","Weiss","Windsor","XITS","Dingbats","_createBuiltInEncoding","charsets","getUint32","getInt16","getInt8","getFloat214","getSubroutineBias","numSubrs","parseCmap","idOffset","parseCff","gsubrs","isCFFCIDFont","parseGlyfTable","lookupCmap","compileGlyf","cmds","quadraticCurveTo","xa","ya","numberOfContours","arg1","arg2","scale01","scale10","subglyph","endPtsOfContours","instructionLength","numberOfPoints","startPoint","contour","compileCharString","charStringCode","bezierCurveTo","stems","stackClean","xb","yb","subrCode","subrsBias","achar","bchar","glyphNameMap","gsubrsBias","NOOP","CompiledFont","compiledGlyphs","compiledCharCodeToGlyphId","compileGlyph","compileGlyphImpl","TrueTypeCompiled","Type2Compiled","cffInfo","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","H","T","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","o","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","Idieresis","eacute","abreve","uhungarumlaut","ecaron","Ydieresis","divide","Yacute","Acircumflex","aacute","Ucircumflex","yacute","scommaaccent","ecircumflex","Uring","Udieresis","aogonek","Uacute","uogonek","Edieresis","Dcroat","commaaccent","Emacron","ccaron","aring","Ncommaaccent","lacute","agrave","Tcommaaccent","Cacute","atilde","Edotaccent","scaron","scedilla","iacute","lozenge","Rcaron","Gcommaaccent","ucircumflex","acircumflex","Amacron","rcaron","ccedilla","Zdotaccent","Thorn","Omacron","Racute","Sacute","dcaron","Umacron","uring","threesuperior","Ograve","Agrave","Abreve","multiply","uacute","Tcaron","partialdiff","ydieresis","Nacute","icircumflex","Ecircumflex","adieresis","edieresis","cacute","nacute","umacron","Ncaron","Iacute","plusminus","brokenbar","registered","Gbreve","Idotaccent","summation","Egrave","racute","omacron","Zacute","Zcaron","greaterequal","Eth","Ccedilla","lcommaaccent","tcaron","eogonek","Uogonek","Aacute","Adieresis","egrave","zacute","iogonek","Oacute","oacute","amacron","sacute","idieresis","Ocircumflex","Ugrave","Delta","thorn","twosuperior","Odieresis","igrave","ohungarumlaut","Eogonek","dcroat","threequarters","Scedilla","lcaron","Kcommaaccent","Lacute","trademark","edotaccent","Igrave","Imacron","Lcaron","onehalf","lessequal","ocircumflex","ntilde","Uhungarumlaut","Eacute","emacron","gbreve","onequarter","Scaron","Scommaaccent","Ohungarumlaut","degree","ograve","Ccaron","ugrave","radical","Dcaron","rcommaaccent","Ntilde","otilde","Rcommaaccent","Lcommaaccent","Atilde","Aogonek","Aring","Otilde","zdotaccent","Ecaron","Iogonek","kcommaaccent","minus","Icircumflex","ncaron","tcommaaccent","logicalnot","odieresis","udieresis","notequal","gcommaaccent","eth","zcaron","ncommaaccent","onesuperior","imacron","Euro","universal","existential","suchthat","asteriskmath","congruent","Alpha","Beta","Chi","Epsilon","Phi","Gamma","Eta","Iota","theta1","Kappa","Lambda","Mu","Nu","Omicron","Pi","Theta","Rho","Sigma","Tau","Upsilon","sigma1","Omega","Xi","Psi","Zeta","therefore","perpendicular","radicalex","chi","phi","eta","iota","phi1","kappa","lambda","omicron","theta","rho","sigma","tau","upsilon","omega1","omega","xi","psi","zeta","similar","Upsilon1","minute","infinity","club","diamond","heart","spade","arrowboth","arrowleft","arrowup","arrowright","arrowdown","proportional","equivalence","approxequal","arrowvertex","arrowhorizex","carriagereturn","aleph","Ifraktur","Rfraktur","weierstrass","circlemultiply","circleplus","emptyset","intersection","union","propersuperset","reflexsuperset","notsubset","propersubset","reflexsubset","notelement","gradient","registerserif","copyrightserif","trademarkserif","product","dotmath","logicaland","logicalor","arrowdblboth","arrowdblleft","arrowdblup","arrowdblright","arrowdbldown","angleleft","registersans","copyrightsans","trademarksans","parenlefttp","parenleftex","parenleftbt","bracketlefttp","bracketleftex","bracketleftbt","bracelefttp","braceleftmid","braceleftbt","braceex","angleright","integral","integraltp","integralex","integralbt","parenrighttp","parenrightex","parenrightbt","bracketrighttp","bracketrightex","bracketrightbt","bracerighttp","bracerightmid","bracerightbt","apple","a2","a202","a3","a4","a5","a119","a118","a117","a11","a12","a13","a14","a15","a16","a105","a17","a18","a19","a20","a21","a22","a23","a24","a25","a26","a27","a28","a6","a7","a8","a9","a10","a29","a30","a31","a32","a33","a34","a35","a36","a37","a38","a39","a40","a41","a42","a43","a44","a45","a46","a47","a48","a49","a50","a51","a52","a53","a54","a55","a56","a57","a58","a59","a60","a61","a62","a63","a64","a65","a66","a67","a68","a69","a70","a71","a72","a73","a74","a203","a75","a204","a76","a77","a78","a79","a81","a82","a83","a84","a97","a98","a99","a100","a89","a90","a93","a94","a91","a92","a205","a85","a206","a86","a87","a88","a95","a96","a101","a102","a103","a104","a106","a107","a108","a112","a111","a110","a109","a120","a121","a122","a123","a124","a125","a126","a127","a128","a129","a130","a131","a132","a133","a134","a135","a136","a137","a138","a139","a140","a141","a142","a143","a144","a145","a146","a147","a148","a149","a150","a151","a152","a153","a154","a155","a156","a157","a158","a159","a160","a161","a163","a164","a196","a165","a192","a166","a167","a168","a169","a170","a171","a172","a173","a162","a174","a175","a176","a177","a178","a179","a193","a180","a199","a181","a200","a182","a201","a183","a184","a197","a185","a194","a198","a186","a195","a187","a188","a189","a190","a191","ON_CURVE_POINT","X_SHORT_VECTOR","Y_SHORT_VECTOR","REPEAT_FLAG","X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR","Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR","OVERLAP_SIMPLE","ARG_1_AND_2_ARE_WORDS","ARGS_ARE_XY_VALUES","WE_HAVE_A_SCALE","MORE_COMPONENTS","WE_HAVE_AN_X_AND_Y_SCALE","WE_HAVE_A_TWO_BY_TWO","WE_HAVE_INSTRUCTIONS","getSize","totalSize","setUint32","setUint16","locaIndex","composites","spos","factor","xMiddle","GlyphHeader","CompositeGlyph","SimpleGlyph","setInt16","Contour","xCoordinates","yCoordinates","contours","instructions","lastX","lastY","endPt","numberOfPt","allXCoordinates","pointFlags","endPtsOfContoursIndex","lastCoordinate","argument1","argument2","writeInt16","writeInt32","writeData","OTF_HEADER_SIZE","OTF_TABLE_ENTRY_SIZE","sfnt","tablesNames","tableName","tableOffsets","paddedLength","quad","entriesCount","entrySize","maxPower2","findBlock","streamBytes","startIndex","streamBytesLength","getHeaderBlock","suggestedLength","EEXEC_SIGNATURE","streamStartPos","headerBytes","headerBytesLength","getEexecBlock","eexecBytes","PFB_HEADER_SIZE","headerBlockLength","eexecBlockLength","pfbHeader","pfbHeaderPresent","headerBlock","headerBlockParser","Type1Parser","extractFontHeader","eexecBlock","eexecBlockParser","extractFontProgram","type2Charstrings","getType2Charstrings","getType2Subrs","getSeacs","charstringsLen","type1Charstrings","type1Subrs","type2Subrs","charsetArray","privateData","subrIndex","HINTING_ENABLED","Type1CharString","Type1CharStringClosure","COMMAND_MAP","hstem","vstem","vmoveto","rlineto","hlineto","vlineto","rrcurveto","callsubr","flex","drop","endchar","rmoveto","hmoveto","vhcurveto","hvcurveto","flexing","wx","sbx","executeCommand","asb","sby","num2","num1","flexArgs","howManyArgs","command","keepStack","stackLength","Type1ParserClosure","EEXEC_ENCRYPT_KEY","CHAR_STRS_ENCRYPT_KEY","isHexDigit","decrypt","discardNumber","c1","c2","decrypted","decryptAscii","digit1","digit2","isSpecial","encrypted","isBinary","readNumberArray","getToken","readInt","readBoolean","prevChar","readCharStrings","lenIV","program","blueArray","charString","charStringObject","encodingArg","ShadingType","FUNCTION_BASED","AXIAL","RADIAL","FREE_FORM_MESH","LATTICE_FORM_MESH","COONS_PATCH_MESH","TENSOR_PATCH_MESH","RadialAxialShading","MeshShading","DummyShading","BaseShading","coordsArr","shadingType","t0","domainArr","extendStart","extendEnd","extendArr","r1","r2","distance","fnObj","createFromArray","NUMBER_OF_SAMPLES","colorStops","ratio","cssColor","makeHexColor","background","SMALL_NUMBER","r0","MeshStreamReader","tmpCompsBuf","csNumComps","tmpCsCompsBuf","colorFn","align","readFlag","bitsPerFlag","readCoordinate","bitsPerCoordinate","yi","readComponents","ci","getB","getBClosure","buildB","lut","t_","coords","figures","decodeContext","patchMesh","_decodeType4Shading","verticesPerRow","_decodeType5Shading","_decodeType6Shading","_decodeType7Shading","_updateBounds","_buildFigureFromPatch","_packData","operators","ps","verticesLeft","hasData","coord","tmp1","tmp2","tmp3","tmp4","figure","figureMinX","figureMinY","figureMaxX","figureMaxY","splitXBy","TRIANGLE_DENSITY","MIN_SPLIT_PATCH_CHUNKS_AMOUNT","MAX_SPLIT_PATCH_CHUNKS_AMOUNT","splitYBy","figureCoords","figureColors","cl","cr","c0","c3","bRow","bCol","newColor","coordsPacked","xy","colorsPacked","xstep","ystep","paintType","tilingType","cachedFunction","parsedFunction","PDFFunction","parseArray","fnRef","localFunction","_localFunctionCache","LocalFunctionCache","toNumberArray","outputSize","bps","sampleMul","strBytes","strIdx","constructSampled","constructInterpolated","constructStiched","constructPostScript","toMultiArray","xmin","xmax","ymin","ymax","inputSize","encode","samples","getSampleArray","constructSampledFn","cubeVertices","cubeN","Float64Array","cubeVertex","domain_2i","domain_2i_1","size_i","e0","n0","n1","rj","constructInterpolatedFn","fnRefs","fns","constructStichedFn","constructStichedFromIRClip","dmin","dmax","rmin","rmax","PostScriptLexer","PostScriptParser","PostScriptCompiler","numOutputs","numInputs","PostScriptEvaluator","MAX_CACHE_SIZE","cache_available","constructPostScriptFn","cachedValue","execute","stackIndex","bound","fnDict","PostScriptStack","initialStack","MAX_STACK_SIZE","copy","roll","atan","cos","LN10","sin","PostScriptCompilerClosure","AstNode","visit","AstArgument","visitArgument","AstLiteral","visitLiteral","AstBinaryOperation","visitBinaryOperation","AstMin","visitMin","AstVariable","visitVariable","AstVariableDefinition","variable","visitVariableDefinition","ExpressionBuilderVisitor","parts","literal","definition","buildAddOperation","buildMulOperation","buildSubOperation","buildMinOperation","lastRegister","ast1","ast2","tmpVar","instruction","statementBuilder","expr","nextToken","accept","expect","PostScriptTokenTypes","LBRACE","parseBlock","RBRACE","NUMBER","OPERATOR","parseCondition","conditionLocation","IF","jumpLocation","endOfTrue","IFELSE","PostScriptToken","opValue","opCache","getOperator","BaseLocalCache","_onlyRefs","onlyRefs","_nameRefMap","_imageMap","_imageCache","GlobalImageCache","_refCache","imageData","MIN_IMAGES_TO_CACHE","_byteSize","MAX_BYTE_SIZE","pageIndexSet","NUM_PAGES_THRESHOLD","_cacheLimitReached","onlyData","baseTypes","arabicTypes","isOdd","isEven","findUnequal","setValues","reverseValues","createBidiText","isLTR","startLevel","strLength","numBidi","charType","sor","eor","lastType","before","after","highestLevel","lowestOddLevel","SEED","MASK_HIGH","MASK_LOW","seed","blockCounts","tailLength","dataUint32","k1","k2","C1","C2","C1_LOW","C2_LOW","hex1","hex2","addState","parentState","checkFn","iterateFn","processFn","InitialState","iterateInlineImageGroup","iFirstSave","iCurr","foundInlineImageGroup","MIN_IMAGES_IN_INLINE_IMAGES_BLOCK","MAX_IMAGES_IN_INLINE_IMAGES_BLOCK","MAX_WIDTH","IMAGE_PADDING","curr","iFirstTransform","iFirstPIIXO","maxLineHeight","currentX","currentY","img","imgWidth","imgHeight","iterateImageMaskGroup","foundImageMaskGroup","MIN_IMAGES_IN_MASKS_BLOCK","MAX_IMAGES_IN_MASKS_BLOCK","MAX_SAME_IMAGES_IN_MASKS_BLOCK","iFirstPIMXO","isSameImage","iTransform","transformArgs","firstPIMXOArg0","firstTransformArg0","firstTransformArg1","firstTransformArg2","firstTransformArg3","iPIMXO","images","maskParams","iterateImageGroup","iFirstPIXO","firstPIXOArg0","MIN_IMAGES_IN_BLOCK","MAX_IMAGES_IN_BLOCK","iterateShowTextGroup","iFirstSetFont","firstSetFontArg0","firstSetFontArg1","MIN_CHARS_IN_BLOCK","MAX_CHARS_IN_BLOCK","iFirstBeginText","iFirstSetTextMatrix","iFirstShowText","iFirstEndText","iFirst","iEndText","NullOptimizer","_optimize","QueueOptimizer","lastProcessed","streamSink","_streamSink","optimizer","_totalLength","_resolved","CHUNK_SIZE","CHUNK_SIZE_ABOUT","_transfers","decodeAndClamp","addend","coefficient","resizeImageMask","isMask","matte","needsDecode","decodeCoefficients","decodeAddends","isIndexed","maskDict","decodeBuffer","getComponents","bufferPos","rowComps","loop1End","loop2End","remainingBits","fillOpacity","rgbaBuf","alphaBuf","sw","fillGrayBuffer","opacity","imageOffset","maskOffset","undoPreblend","matteRgb","matteR","matteG","matteB","forceRGBA","getImageBytes","imageLength","internal","maybeUndoPreblend","smaskData","maskData","computedLength","haveFullData","isOffscreenCanvasSupported","ctx","applyMaskImageData","putImageData","srcPos","opaque","zeroMapping","oneMapping","widthInSource","widthRemainder","srcLength","elem","PartialEvaluatorClosure","ignoreCalculations","textStateManager","graphicsStateManager","GraphicsState","clipping","boundingBoxesStack","NoMCIDBoundingBoxStack","operationIndex","getTopPoints","BoundingBoxesCalculator_getTopPoints","pow","rotated_e","result_vector","getTextBoundingBox","BoundingBoxesCalculator_getTextBoundingBox","tx","ty","rise","glyphsSize","w0","tx2","ty2","tx3","ty3","glyphSize","glyphsPos","xPoints","yPoints","getClippingGraphicsBoundingBox","BoundingBoxesCalculator_getClippingGraphicsBoundingBox","saveGraphicsBoundingBox","clippingBBox","getRectBoundingBox","x4","y4","getLineBoundingBox","move_x","move_y","getCurve","curve","getCurveRoots","root_1","root_2","getCurveBoundingBox","curveX","curveY","getClip","getImageBoundingBox","BoundingBoxesCalculator_parseOperator","inc","clean","boundingBox","BoundingBoxesCalculator_setFont","BoundingBoxesCalculator_incrementOperation","GraphicsState_clone","GraphicsState_clear","BoundingBoxStack","BoundingBoxStack_begin","BoundingBoxStack_save","BoundingBoxStack_end","contentCounter","pointer","NoMCIDBoundingBoxStack_begin","inMarkedContent","newContentItem","contentItems","NoMCIDBoundingBoxStack_save","contentItem","NoMCIDBoundingBoxStack_end","tempPointer","NoMCIDBoundingBoxStack_inc","isMC","NoMCIDBoundingBoxStack_get","JSON","stringify","fetchDestination","_catDict","getCatalogObj","toplevelPagesDict","_actualNumPages","streamRef","encryptMetadata","MetadataParser","markInfo","_readMarkInfo","Marked","UserProperties","Suspects","_readStructTreeRoot","root","StructTreeRoot","pagesObj","_readDocumentOutline","blackColor","outlineDict","outlineItem","unsafeUrl","permissions","_readPermissions","defaultConfig","groupsData","groupRefs","groupRef","_readOptionalContentConfig","contentGroupRefs","parseOnOff","onParsed","parseOrder","nestedLevels","parsedOrderRefs","nestedOrder","parseNestedOrder","hiddenGroups","MAX_NESTED_LEVELS","nestedName","creator","baseState","off","_pagesCount","_readDests","dests","NameTree","getAll","getDestination","allDest","destinations","_readPageLabels","pageLabels","prefix","numberTree","NumberTree","nums","currentLabel","labelDict","st","LIMIT","A_UPPER_CASE","A_LOWER_CASE","baseCharCode","letterIndex","character","pageLayout","pageMode","prefs","prefValue","openAction","attachments","nameTree","fs","_collectJavaScript","appendIfJavaScriptDict","jsDict","translatedFonts","nodesToVisit","visitedNodes","pagesRef","currentPageIndex","currentNode","addPageDict","addPageError","posInKids","queueItem","kidObj","getPageIndex","cachedPageIndex","pagesBeforeRef","kidRef","parentRef","kidPromises","uri","actionType","actionName","include","resetForm","urlDict","remoteDest","namedAction","jsAction","jsURL","ExtendedCatalog","pages","_convertStructToObject","struct","getTreeElement","newPage","findIndex","subel","pagesArray","kidObjType","NameOrNumberTree","_type","kidsOrEntries","loopCount","MAX_LEVELS","limits","currentKey","pickPlatformItem","contentAvailable","_filename","contentRef","fileObj","_repair","SimpleXMLParser","lowerCaseName","xmlDocument","parseFromString","_metadataMap","_data","d2","d3","charBuf","_getSequence","nodeName","childNodes","_parseArray","hasChildNodes","seqNode","rdf","documentElement","firstChild","nextSibling","desc","parsedData","rawData","XMLParserErrorCode","NoError","EndOfDocument","UnterminatedCdat","UnterminatedXmlDeclaration","UnterminatedDoctypeDeclaration","UnterminatedComment","MalformedElement","OutOfMemory","UnterminatedAttributeValue","UnterminatedElement","ElementNeverBegun","isWhitespaceString","XMLParserBase","_resolveEntities","onResolveEntity","_parseContent","attributes","skipWs","attrName","attrValue","attrEndChar","attrEndIndex","parsed","_parseProcessingInstruction","attrStart","parseXml","ch2","onEndElement","onPi","onComment","onCdata","q2","complexDoctype","doctypeContent","onDoctype","isClosed","onBeginElement","onText","SimpleDOMNode","nodeValue","parentNode","child","searchNode","paths","siblingPos","dump","attribute","hasAttributes","_currentFragment","_stack","_errorCode","_hasAttributes","_lowerCaseName","lastElement","MAX_DEPTH","StructElementType","PAGE_CONTENT","STREAM_CONTENT","OBJECT","ELEMENT","rootDict","roleMap","readRoleMap","roleMapDict","StructElementNode","parseKids","nameObj","pageObjId","objRef","parseKid","StructElement","kidDict","refObjId","parentTree","parentArray","addNode","addTopLevelNode","nodeToSerializable","role","kidElement","mayHaveChildren","addChildren","rawValue","refSet","_walk","nodesToRevisit","pendingRequests","foundMissingData","writeValue","writeStream","writeArray","numberToString","roundedValue","writeInt","writeString","computeMD5","filesize","time","md5Buffer","md5BufferLen","writeXFADataForAcroform","xml","updateXFA","oldXfa","newXfa","refForXrefTable","baseOffset","xrefTableData","indexes","maxOffset","md5","sizes","structSize","tableLength","bufferLen","footer","objOffset","ARCFourCipher","keyLength","encryptBlock","decryptBlock","calculateMD5Closure","h0","h3","padded","rotateArg","Word64","highInteger","lowInteger","and","word","xor","or","shiftRight","places","shiftLeft","rotateRight","not","lowAdd","highAdd","copyTo","calculateSHA256","calculateSHA256Closure","rotr","maj","sigmaPrime","littleSigma","littleSigmaPrime","h4","h5","h6","h7","calculateSHA512","calculateSHA512Closure","mode384","calculateSHA384","NullCipher","AESBaseCipher","_s","_inv_s","_mix","_mixCol","bufferPosition","_expandKey","cipherKey","_decrypt","_keySize","_cyclesOfRepetition","s0","s1","s3","_encrypt","_decryptBlock2","finalize","sourceLength","iv","plain","_key","lastBlock","psLen","cipher","AES128Cipher","_rcon","rcon","t3","t4","AES256Cipher","PDF17","checkOwnerPassword","ownerValidationSalt","userBytes","ownerPassword","hashData","checkUserPassword","userValidationSalt","userPassword","getOwnerKey","ownerKeySalt","ownerEncryption","getUserKey","userKeySalt","userEncryption","PDF20","PDF20Closure","calculatePDF20Hash","combinedLength","combinedArray","remainder","concatBytes","CipherTransform","stringCipherConstructor","streamCipherConstructor","StringCipherConstructor","StreamCipherConstructor","DecryptStream","cipherTransformDecryptStream","strLen","pad","crypto","getRandomValues","CipherTransformFactory","CipherTransformFactoryClosure","defaultPasswordBytes","createEncryptionKey20","revision","uBytes","perms","passwordLength","pdfAlgorithm","prepareKeyData","fileId","hashDataSize","keyLengthInBytes","encryptionKey","checkData","derivedKey","decodeUserPassword","identityName","buildObjectKey","isAes","buildCipherConstructor","cf","cryptFilter","cfm","cipherTransformFactoryBuildCipherConstructorNone","cipherTransformFactoryBuildCipherConstructorV2","cipherTransformFactoryBuildCipherConstructorAESV2","cipherTransformFactoryBuildCipherConstructorAESV3","algorithm","cfDict","streamCryptoName","handlerDict","fileIdBytes","passwordBytes","decodedPassword","stmf","strf","eff","cipherConstructor","buildCipherCipherConstructor","nextChunk","hasMoreData","XFAParser","_createDocument","binder","Binder","form","dataHandler","DataHandler","$globalData","_createPagesHelper","$toPages","nextIteration","dims","_createPages","fontFinder","FontFinder","usedTypefaces","typeface","stripQuotes","storage","serialize","rc","XhtmlNamespace","$nodeName","newRoot","body","$appendChild","$toHTML","success","attr","$text","$acceptWhitespace","$addHTML","$childrenToHTML","$clean","$cleanPage","$cleanup","$clone","$consumed","$content","$data","$dump","$extra","$finalize","$flushHTML","$getAttributeIt","$getAttributes","$getAvailableSpace","$getChildrenByClass","$getChildrenByName","$getChildrenByNameIt","$getDataValue","$getExtra","$getRealChildrenByNameIt","$getChildren","$getContainedChildren","$getNextPage","$getSubformParent","$getParent","$getTemplateRoot","$hasSettableValue","$ids","$indexOf","$insertAt","$isCDATAXml","$isBindable","$isDataValue","$isDescendent","$isNsAgnostic","$isSplittable","$isThereMoreWidth","$isTransparent","$isUsable","$lastAttribute","$namespaceId","$nsAttributes","$onChild","$onChildCheck","$onText","$pushGlyphs","$popPara","$pushPara","$removeChild","$root","$resolvePrototypes","$searchNode","$setId","$setSetAttributes","$setValue","$tabIndex","$toString","$toStyle","$uid","_applyPrototype","_attributes","_attributeNames","_children","_cloneAttribute","_dataValue","_defaultValue","_filteredChildrenGenerator","_getPrototype","_getUnsetAttributes","_hasChildren","_max","_options","_parent","_resolvePrototypesHelper","_setAttributes","_validator","NS_DATASETS","NamespaceIds","XFAObject","nsId","hasChildren","XFAObjectArray","para","paraStack","dumped","HTMLResult","EMPTY","availableSpace","failingNode","generator","protoAttributes","allAttr","setAttr","ancestors","use","usehref","somExpression","endsWith","protoProto","newAncestors","unsetAttrName","protoValue","$symbol","clonedChild","allTransparent","XFAAttribute","XmlObject","dataNode","tagName","utf8TagName","utf8Name","skipConsumed","xhtml","hasNS","$ns","$name","ContentObject","OptionObject","getKeyword","StringObject","IntegerObject","validator","getInteger","Option01","Option10","dimConverters","pt","mm","in","measurementPattern","getFloat","getStringOption","getMeasurement","def","valueStr","unit","conv","getRatio","den","getRelevant","excluded","viewname","getColor","getBBox","breakNode","isBreak","$buildXFAObject","ns","pdf","sourceSet","xdc","xdp","xfdf","xmpmeta","namePattern","indexPattern","dot","dotDot","dotHash","dotBracket","dotParen","shortcuts","dataWindow","somCache","parseExpression","dotDotAllowed","noExpr","cacheName","formCalc","container","useCache","isQualified","isFinite","acc","createNodes","createDataNode","createText","Text","emptyMerge","_isConsumeData","_mergeMode","_isMatchTemplate","_bindElement","_bindValue","formNode","picture","Field","ui","choiceList","_findDataByNameToConsume","isValue","_setProperties","setProperty","connection","targetNodes","targetNode","targetParent","SetProperty","BindItems","attrs","_bindItems","bindItems","Items","labelRef","valueRef","labelNodes","labelNode","valueNodes","valueNode","label","_bindOccurrences","matches","baseClone","occur","_createOccurrences","initial","currentNumber","nodeClone","_getOccurInfo","_setAndBind","uselessNodes","mergeMode","dataChildren","dataChild","getContainedChildren","TEMPLATE_NS_ID","SVG_NS","MAX_ATTEMPTS_FOR_LRTB_LAYOUT","MAX_EMPTY_PAGES","DEFAULT_TAB_INDEX","HEADING_PATTERN","MIMES","IMAGES_HEADERS","getBorderDims","border","borderExtra","insets","hasMargin","margin","topInset","rightInset","bottomInset","leftInset","_setValue","templateNode","Value","SubformSet","setTabIndex","traversal","applyAssist","assist","assistTitle","ariaRole","ariaLevel","ariaLabel","speak","toolTip","valueToHtml","class","setFirstUnsplittable","firstUnsplittable","noLayoutFailure","unsetFirstUnsplittable","handleBreak","targetType","currentPageArea","currentContentArea","PageArea","startNew","ContentArea","pageArea","nextPageArea","contentAreas","contentArea","indexForCurrent","indexForTarget","handleOverflow","extraNode","saved","savedMethod","AppearanceFilter","Arc","circular","hand","startAngle","sweepAngle","edge","Edge","edgeStyle","presence","strokeWidth","measureToString","thickness","arc","xmlns","overflow","cx","cy","rx","ry","largeArc","vectorEffect","preserveAspectRatio","svg","Area","colSpan","relevant","extras","area","draw","exObject","exclGroup","subform","subformSet","toStyle","isPrintOnly","xfaName","FAILURE","Assist","Barcode","charEncoding","dataColumnCount","dataPrep","dataRowCount","endChar","errorCorrectionLevel","moduleHeight","moduleWidth","printCheckDigit","rowColumnRatio","startChar","textLocation","truncate","upsMode","wideNarrowRatio","Bind","Bookend","leader","BooleanElement","Border","corner","edges","defaultEdge","edgeStyles","cornerStyles","borderRadius","Break","afterTarget","beforeTarget","bookendLeader","bookendTrailer","overflowLeader","overflowTarget","overflowTrailer","BreakAfter","script","BreakBefore","Button","highlight","grandpa","htmlButton","activity","fixURL","Calculate","Caption","placement","reserve","layoutNode","savedReserve","setPara","Certificate","Certificates","credentialServerPolicy","urlPolicy","encryption","issuers","keyUsage","oids","signing","subjectDNs","CheckButton","mark","shape","className","groupId","fieldId","dataId","ExclGroup","xfaOn","xfaOff","ChoiceList","commitOn","textEntry","optionStyle","displayedIndex","saveIndex","displayed","selected","selectAttributes","multiple","Color","cSpace","Comb","numberOfCells","Connect","usage","classNames","Corner","inverted","DateElement","DateTime","DateTimeEdit","hScrollPolicy","picker","Decimal","fracDigits","leadDigits","DefaultUi","Desc","dateTime","decimal","exData","DigestMethod","DigestMethods","digestMethod","Draw","anchorType","hAlign","locale","maxW","minH","minW","caption","keep","fixDimensions","savedW","savedH","isBroken","checkDimensions","setMinMaxDimensions","computeBbox","createWrapper","cap","linecap","Encoding","Encodings","Encrypt","certificate","EncryptData","manifest","Encryption","EncryptionMethod","EncryptionMethods","encryptionMethod","Event","listen","encryptData","signData","submit","ExData","contentType","maxLength","rid","transferEncoding","ExObject","archive","classId","codeBase","codeType","access","accessKey","connect","attempt","numberInLine","_isSplittable","flushHTML","addHTML","getAvailableSpace","setAccess","prevHeight","isSplittable","columnWidths","currentColumn","layoutClass","isLrTb","maxRun","marginH","marginV","Execute","executeType","runAt","Extras","Ui","TextEdit","textEdit","checkButton","borderDims","uiW","uiH","lineNoGap","tabindex","aElement","button","imageEdit","htmlValue","maxChars","numericEdit","captionHeight","inputHeight","Fill","linear","radial","solid","stipple","ggrandpa","propName","altPropName","Rectangle","Filter","addRevocationInfo","appearanceFilter","certificates","digestMethods","encryptionMethods","lockDocument","mdp","reasons","timeStamp","Float","baselineShift","fontHorizontalScale","fontVerticalScale","kerningMode","letterSpacing","lineThrough","lineThroughPeriod","overline","overlinePeriod","posture","underline","underlinePeriod","backgroundClip","verticalAlign","fontKerning","textDecoration","textDecorationStyle","fontStyle","setFontFamily","Format","Handler","Hyphenation","excludeAllCaps","excludeInitialCap","hyphenate","pushCharacterCount","remainCharacterCount","wordCharacterCount","Image","aspect","blob","Blob","objectFit","createObjectURL","ImageEdit","Integer","Issuers","Keep","intact","KeyUsage","crlSign","dataEncipherment","decipherOnly","digitalSignature","encipherOnly","keyAgreement","keyCertSign","keyEncipherment","nonRepudiation","Line","slope","Linear","startColor","endColor","LockDocument","Manifest","Margin","Mdp","signatureType","Medium","imagingBBox","orientation","stock","trayIn","trayOut","Message","NumericEdit","Occur","originalMin","PageSet","Template","Oid","Oids","oid","Overflow","addLeader","addTrailer","blankOrNotBlank","initialNumber","numbered","oddOrEven","pagePosition","medium","numberOfUse","relation","duplexImposition","pageSet","pageSetIndex","pageNumber","parity","Para","marginLeft","marginRight","orphans","preserve","radixOffset","spaceAbove","spaceBelow","tabDefault","tabStops","textIndent","vAlign","widows","hyphenation","paddingLeft","paddingight","paddingTop","paddingBottom","fixTextIndent","tabSize","hyphenatation","PasswordEdit","passwordChar","Picture","Proto","barcode","bookend","breakAfter","breakBefore","dateTimeEdit","defaultUi","passwordEdit","subjectDN","traverse","variables","Radial","Reason","Reasons","cornerStyle","RefElement","binding","SignData","Signature","Signing","Solid","Speak","disable","priority","Stipple","rate","bgColor","Subform","allowMacro","restoreState","scope","afterBreakAfter","savedNoLayoutFailure","overflowExtra","overflowNode","SubjectDN","delimiter","kv","SubjectDNs","Submit","embedPDF","textEncoding","xdpContent","baseProfile","pageAreas","mainHtml","breakBeforeTarget","pageAreaParent","hasSomething","hasSomethingCounter","targetPageArea","htmlContentAreas","allowRichText","vScrollPolicy","Time","TimeStamp","server","ToolTip","Traversal","Traverse","Validate","formatTest","nullTest","scriptTest","valueName","Variables","TemplateNamespace","createLine","htmlFromFailing","getTransformedBBox","centerX","centerY","ERROR","converters","transformOrigin","visibility","textAlign","alignSelf","layoutText","xfaFont","measure","TextMeasure","addString","compute","newStyle","insetsH","insetsW","indent","getCurrentPara","nodeStyle","valueStyle","flexDirection","justifyContent","paraStyle","regular","pdfFont","selectFont","defaultFont","addPdfFont","bolditalic","myriad","getDefault","mustWarn","maybe","family","WIDTH_FACTOR","FontInfo","paraMargin","FontSelector","defaultXfaFont","defaultParaMargin","defaultLineHeight","pushData","lastFont","popFont","topFont","fontSelector","extraHeight","addPara","fontLineHeight","noGap","firstLineHeight","fallbackWidth","encodedLine","lastSpaceWidth","currentLineWidth","currentLineHeight","isFirstLine","isEOL","dataset","rootNameSpace","_builder","Builder","_globalData","_ids","_current","buildRoot","_whiteRegex","_nbsps","_richText","_mkAttributes","prefixes","attributeObj","nsAttrs","_getNameAndPrefix","nsAgnostic","attributesObj","isNsAgnostic","nsPrefix","build","Root","Empty","_namespaceStack","_nsAgnosticLevel","_namespacePrefixes","_namespaces","_nextNsId","_currentNamespace","UnknownNamespace","hasNamespaceDef","_searchNamespace","_addNamespacePrefix","dataTemplate","NamespaceSetUp","xfaAttrs","nsToUse","_getNamespaceToUse","namespaceToUse","hasNamespace","nsName","prefixStack","ConfigNamespace","ConnectionSetNamespace","DatasetsNamespace","LocaleSetNamespace","SignatureNamespace","StylesheetNamespace","XdpNamespace","CONFIG_NS_ID","Acrobat","acrobat7","autoSave","validateApprovalSignatures","submitUrl","Acrobat7","dynamicRender","ADBE_JSConsole","ADBE_JSDebugger","AddSilentPrint","AddViewerPreferences","AdjustData","AdobeExtensionLevel","Agent","AlwaysEmbed","Amd","AutoSave","Base","BatchOutput","BehaviorOverride","Cache","templateCache","Change","Common","messaging","suppressBanner","validationMessaging","versionControl","Compress","CompressLogicalStructure","CompressObjectStream","Compression","compressLogicalStructure","compressObjectStream","Config","acrobat","present","trace","agent","Conformance","ContentCopy","Copies","Creator","CurrentPage","Data","adjustData","incrementalLoad","outputXSL","startNode","xsl","excludeNS","Debug","DefaultTypeface","writingScript","Destination","DocumentAssembly","Driver","DuplexOption","DynamicRender","Embed","encryptionLevel","EncryptionLevel","Enforce","Equate","force","to","EquateRange","_unicodeRange","unicodeRange","unicodeRegex","Exclude","ExcludeNS","FlipLabel","embed","subsetBelow","alwaysEmbed","defaultTypeface","neverEmbed","FormFieldFilling","GroupParent","IfEmpty","IncludeXDPContent","IncrementalLoad","IncrementalMerge","Interactive","Jog","LabelPrinter","batchOutput","flipLabel","Layout","Level","Linearized","Locale","LocaleSet","Log","threshold","MapElement","equate","equateRange","MediumInfo","msgId","severity","Messaging","Mode","ModifyAnnots","MsgId","NameAttr","NeverEmbed","NumberOfCopies","OpenAction","destination","Output","OutputBin","OutputXSL","Overprint","Packets","PageOffset","PageRange","numbers","Pagination","PaginationOverride","Part","Pcl","jog","mediumInfo","outputBin","pageOffset","staple","Pdf","adobeExtensionLevel","compression","interactive","linearized","pdfa","producer","renderPolicy","scriptModel","silentPrint","submitFormat","tagged","viewerPreferences","Pdfa","amd","conformance","includeXDPContent","Permissions","accessibleContent","change","contentCopy","documentAssembly","formFieldFilling","modifyAnnots","plaintextMetadata","printHighQuality","PickTrayByPDFSize","PlaintextMetadata","Presence","Present","behaviorOverride","copies","incrementalMerge","overprint","pagination","paginationOverride","driver","labelPrinter","pcl","webClient","zpl","Print","PrintHighQuality","PrintScaling","PrinterName","Producer","Ps","Range","Record","Relevant","Rename","RenderPolicy","RunScripts","currentPage","exclude","runScripts","ScriptModel","Severity","SilentPrint","addSilentPrint","printerName","Staple","StartNode","StartPage","SubmitFormat","SubmitUrl","SubsetBelow","SuppressBanner","Tagged","startPage","Threshold","To","TemplateCache","maxEntries","Trace","groupParent","ifEmpty","nameAttr","rename","whitespace","Uri","ValidateApprovalSignatures","ValidationMessaging","Version","VersionControl","outputBelow","sourceAbove","sourceBelow","ViewerPreferences","addViewerPreferences","duplexOption","numberOfCopies","pageRange","pickTrayByPDFSize","printScaling","WebClient","Whitespace","Window","Xdc","Xdp","packets","Xsl","debug","Zpl","CONNECTION_SET_NS_ID","ConnectionSet","wsdlConnection","xmlConnection","xsdConnection","EffectiveInputPolicy","EffectiveOutputPolicy","Operation","RootElement","SoapAction","SoapAddress","WsdlAddress","WsdlConnection","dataDescription","effectiveInputPolicy","effectiveOutputPolicy","soapAction","soapAddress","wsdlAddress","XmlConnection","XsdConnection","rootElement","DATASETS_NS_ID","Datasets","LOCALE_SET_NS_ID","CalendarSymbols","dayNames","eraNames","meridiemNames","monthNames","CurrencySymbol","CurrencySymbols","currencySymbol","DatePattern","DatePatterns","datePattern","DateTimeSymbols","Day","DayNames","abbr","day","Era","EraNames","era","calendarSymbols","currencySymbols","datePatterns","dateTimeSymbols","numberPatterns","numberSymbols","timePatterns","typeFaces","Meridiem","MeridiemNames","meridiem","Month","MonthNames","month","NumberPattern","NumberPatterns","numberPattern","NumberSymbol","NumberSymbols","numberSymbol","TimePattern","TimePatterns","timePattern","TypeFace","TypeFaces","typeFace","SIGNATURE_NS_ID","STYLESHEET_NS_ID","Stylesheet","XDP_NS_ID","uuid","XHTML_NS_ID","$richText","VALID_STYLES","StyleMapping","original","spacesRegExp","crlfRegExp","crlfForRichTextRegExp","mapStyle","styleStr","newValue","replaceAll","SUB_SUPER_SCRIPT_FACTOR","VERTICAL_FACTOR","checkStyle","NoWhites","XhtmlObject","mustPop","pushFont","Body","Br","Html","Li","Ol","siblings","Span","Sub","Sup","Ul","namespaceId","decodeString","DatasetXMLParser","xrefstms","_cacheMap","_pendingRefs","_newRefNum","startXRefQueue","trailerDict","readXRef","indexObjects","processXRefTable","tableState","entryNum","parserBuf1","parserBuf2","readXRefTable","firstEntryNum","free","uncompressed","processXRefStream","streamParameters","byteWidths","streamState","entryRanges","readXRefStream","typeFieldWidth","offsetFieldWidth","generationFieldWidth","generation","typeByte","offsetByte","generationByte","TAB","PERCENT","readToken","skipUntil","skipped","objRegExp","endobjRegExp","nestedObjRegExp","CHECK_CONTENT_LENGTH","trailerBytes","startxrefBytes","objBytes","xrefBytes","trailers","xrefStms","updateEntries","checkPos","tokenStr","objToken","xrefTagOffset","pagesDict","pagesCount","startXRefParsedCache","xrefEntry","fetchUncompressed","fetchCompressed","tableOffset","CallbackKind","DATA","StreamKind","CANCEL","CANCEL_COMPLETE","CLOSE","ENQUEUE","PULL","PULL_COMPLETE","START_COMPLETE","wrapReason","sourceName","targetName","comObj","callbackId","streamId","streamSinks","streamControllers","callbackCapabilities","actionHandler","_onComObjOnMessage","_processStreamMessage","cbSourceName","cbTargetName","_createStreamSink","ah","sendWithStream","queueingStrategy","controller","startCapability","startCall","pullCall","cancelCall","pull","pullCapability","cancel","cancelCapability","isCancelled","lastDesiredSize","sinkCapability","onPull","onCancel","streamController","_deleteStreamController","removeEventListener","_msgHandler","_contentLength","_fullRequestReader","_rangeRequestReaders","PDFWorkerStreamReader","PDFWorkerStreamRangeReader","_isRangeSupported","_isStreamingSupported","readableStream","_reader","getReader","_headersReady","pdfjsVersion","pdfjsBuild"],"sourceRoot":""} \ No newline at end of file diff --git a/legacy/build/pdf.worker.min.js b/legacy/build/pdf.worker.min.js index 0eeae238f5..1f045936d2 100644 --- a/legacy/build/pdf.worker.min.js +++ b/legacy/build/pdf.worker.min.js @@ -19,4 +19,4 @@ * @licend The above is the entire license notice for the * JavaScript code in this page */ -!function webpackUniversalModuleDefinition(t,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define("pdfjs-dist/build/pdf.worker",[],r):"object"==typeof exports?exports["pdfjs-dist/build/pdf.worker"]=r():t["pdfjs-dist/build/pdf.worker"]=t.pdfjsWorker=r()}(this,(()=>(()=>{var t=[,(t,r,o)=>{"use strict";function _typeof(t){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_typeof(t)}Object.defineProperty(r,"__esModule",{value:!0});r.WorkerTask=r.WorkerMessageHandler=void 0;var c=o(2),l=o(161),u=o(162),h=o(224),d=o(230),g=o(4),y=o(259),m=o(260),v=o(164);function _regeneratorRuntime(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */_regeneratorRuntime=function _regeneratorRuntime(){return t};var t={},r=Object.prototype,o=r.hasOwnProperty,c="function"==typeof Symbol?Symbol:{},l=c.iterator||"@@iterator",u=c.asyncIterator||"@@asyncIterator",h=c.toStringTag||"@@toStringTag";function define(t,r,o){return Object.defineProperty(t,r,{value:o,enumerable:!0,configurable:!0,writable:!0}),t[r]}try{define({},"")}catch(t){define=function define(t,r,o){return t[r]=o}}function wrap(t,r,o,c){var l=r&&r.prototype instanceof Generator?r:Generator,u=Object.create(l.prototype),h=new Context(c||[]);return u._invoke=function(t,r,o){var c="suspendedStart";return function(l,u){if("executing"===c)throw new Error("Generator is already running");if("completed"===c){if("throw"===l)throw u;return doneResult()}for(o.method=l,o.arg=u;;){var h=o.delegate;if(h){var g=maybeInvokeDelegate(h,o);if(g){if(g===d)continue;return g}}if("next"===o.method)o.sent=o._sent=o.arg;else if("throw"===o.method){if("suspendedStart"===c)throw c="completed",o.arg;o.dispatchException(o.arg)}else"return"===o.method&&o.abrupt("return",o.arg);c="executing";var y=tryCatch(t,r,o);if("normal"===y.type){if(c=o.done?"completed":"suspendedYield",y.arg===d)continue;return{value:y.arg,done:o.done}}"throw"===y.type&&(c="completed",o.method="throw",o.arg=y.arg)}}}(t,o,h),u}function tryCatch(t,r,o){try{return{type:"normal",arg:t.call(r,o)}}catch(t){return{type:"throw",arg:t}}}t.wrap=wrap;var d={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var g={};define(g,l,(function(){return this}));var y=Object.getPrototypeOf,m=y&&y(y(values([])));m&&m!==r&&o.call(m,l)&&(g=m);var v=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(g);function defineIteratorMethods(t){["next","throw","return"].forEach((function(r){define(t,r,(function(t){return this._invoke(r,t)}))}))}function AsyncIterator(t,r){function invoke(c,l,u,h){var d=tryCatch(t[c],t,l);if("throw"!==d.type){var g=d.arg,y=g.value;return y&&"object"==_typeof(y)&&o.call(y,"__await")?r.resolve(y.__await).then((function(t){invoke("next",t,u,h)}),(function(t){invoke("throw",t,u,h)})):r.resolve(y).then((function(t){g.value=t,u(g)}),(function(t){return invoke("throw",t,u,h)}))}h(d.arg)}var c;this._invoke=function(t,o){function callInvokeWithMethodAndArg(){return new r((function(r,c){invoke(t,o,r,c)}))}return c=c?c.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()}}function maybeInvokeDelegate(t,r){var o=t.iterator[r.method];if(void 0===o){if(r.delegate=null,"throw"===r.method){if(t.iterator.return&&(r.method="return",r.arg=void 0,maybeInvokeDelegate(t,r),"throw"===r.method))return d;r.method="throw",r.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var c=tryCatch(o,t.iterator,r.arg);if("throw"===c.type)return r.method="throw",r.arg=c.arg,r.delegate=null,d;var l=c.arg;return l?l.done?(r[t.resultName]=l.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=void 0),r.delegate=null,d):l:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,d)}function pushTryEntry(t){var r={tryLoc:t[0]};1 in t&&(r.catchLoc=t[1]),2 in t&&(r.finallyLoc=t[2],r.afterLoc=t[3]),this.tryEntries.push(r)}function resetTryEntry(t){var r=t.completion||{};r.type="normal",delete r.arg,t.completion=r}function Context(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(pushTryEntry,this),this.reset(!0)}function values(t){if(t){var r=t[l];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var c=-1,u=function next(){for(;++c=0;--c){var l=this.tryEntries[c],u=l.completion;if("root"===l.tryLoc)return handle("end");if(l.tryLoc<=this.prev){var h=o.call(l,"catchLoc"),d=o.call(l,"finallyLoc");if(h&&d){if(this.prev=0;--c){var l=this.tryEntries[c];if(l.tryLoc<=this.prev&&o.call(l,"finallyLoc")&&this.prev=0;--r){var o=this.tryEntries[r];if(o.finallyLoc===t)return this.complete(o.completion,o.afterLoc),resetTryEntry(o),d}},catch:function _catch(t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc===t){var c=o.completion;if("throw"===c.type){var l=c.arg;resetTryEntry(o)}return l}}throw new Error("illegal catch attempt")},delegateYield:function delegateYield(t,r,o){return this.delegate={iterator:values(t),resultName:r,nextLoc:o},"next"===this.method&&(this.arg=void 0),d}},t}function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=_unsupportedIterableToArray(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var c=0,l=function F(){};return{s:l,n:function n(){return c>=t.length?{done:!0}:{done:!1,value:t[c++]}},e:function e(t){throw t},f:l}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}function _toArray(t){return _arrayWithHoles(t)||function _iterableToArray(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||_unsupportedIterableToArray(t)||_nonIterableRest()}function _slicedToArray(t,r){return _arrayWithHoles(t)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var c,l,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(c=o.next()).done);h=!0){u.push(c.value);if(r&&u.length===r)break}}catch(t){d=!0;l=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw l}}return u}(t,r)||_unsupportedIterableToArray(t,r)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,c=new Array(r);o=c.VerbosityLevel.INFOS?Date.now():0;o.getOperatorList({handler:D,sink:r,task:u,intent:t.intent,cacheKey:t.cacheKey,annotationStorage:t.annotationStorage}).then((function(t){finishWorkerTask(u);h&&(0,c.info)("page=".concat(l+1," - getOperatorList: time=")+"".concat(Date.now()-h,"ms, len=").concat(t.length));r.close()}),(function(t){finishWorkerTask(u);if(!u.terminated){D.send("UnsupportedFeature",{featureId:c.UNSUPPORTED_FEATURES.errorOperatorList});r.error(t)}}))}))}));D.on("GetTextContent",(function wphExtractText(t,r){var l=t.pageIndex;o.getPage(l).then((function(o){var u=new w("GetTextContent: page "+l);startWorkerTask(u);var h=C>=c.VerbosityLevel.INFOS?Date.now():0;o.extractTextContent({handler:D,task:u,sink:r,includeMarkedContent:t.includeMarkedContent,combineTextItems:t.combineTextItems}).then((function(){finishWorkerTask(u);h&&(0,c.info)("page=".concat(l+1," - getTextContent: time=")+"".concat(Date.now()-h,"ms"));r.close()}),(function(t){finishWorkerTask(u);u.terminated||r.error(t)}))}))}));D.on("GetStructTree",(function wphGetStructTree(t){return o.getPage(t.pageIndex).then((function(t){return o.ensure(t,"getStructTree")}))}));D.on("FontFallback",(function(t){return o.fontFallback(t.id,D)}));D.on("Cleanup",(function wphCleanup(t){return o.cleanup(!0)}));D.on("Terminate",(function wphTerminate(t){_=!0;var r=[];if(o){o.terminate(new c.AbortException("Worker was terminated."));var l=o.cleanup();r.push(l);o=null}else(0,h.clearGlobalCaches)();k&&k(new c.AbortException("Worker was terminated."));var u,d=_createForOfIteratorHelper(S);try{for(d.s();!(u=d.n()).done;){var g=u.value;r.push(g.finished);g.terminate()}}catch(t){d.e(t)}finally{d.f()}return Promise.all(r).then((function(){D.destroy();D=null}))}));D.on("Ready",(function wphReady(r){!function setupDoc(t){function onSuccess(t){ensureNotTerminated();D.send("GetDoc",{pdfInfo:t})}function onFailure(t){ensureNotTerminated();if(t instanceof c.PasswordException){var r=new w("PasswordException: response ".concat(t.code));startWorkerTask(r);D.sendWithPromise("PasswordRequest",t).then((function(t){var c=t.password;finishWorkerTask(r);o.updatePassword(c);pdfManagerReady()})).catch((function(){finishWorkerTask(r);D.send("DocException",t)}))}else t instanceof c.InvalidPDFException||t instanceof c.MissingPDFException||t instanceof c.UnexpectedResponseException||t instanceof c.UnknownErrorException?D.send("DocException",t):D.send("DocException",new c.UnknownErrorException(t.message,t.toString()))}function pdfManagerReady(){ensureNotTerminated();loadDocument(!1).then(onSuccess,(function(t){ensureNotTerminated();if(t instanceof v.XRefParseException){o.requestLoadedStream();o.onLoadedStream().then((function(){ensureNotTerminated();loadDocument(!0).then(onSuccess,onFailure)}))}else onFailure(t)}))}ensureNotTerminated();getPdfManager(t,{maxImageSize:t.maxImageSize,disableFontFace:t.disableFontFace,ignoreErrors:t.ignoreErrors,isEvalSupported:t.isEvalSupported,fontExtraProperties:t.fontExtraProperties,useSystemFonts:t.useSystemFonts,cMapUrl:t.cMapUrl,standardFontDataUrl:t.standardFontDataUrl},t.enableXfa).then((function(t){if(_){t.terminate(new c.AbortException("Worker was terminated."));throw new Error("Worker was terminated")}(o=t).onLoadedStream().then((function(t){D.send("DataLoaded",{length:t.bytes.byteLength})}))})).then(pdfManagerReady,onFailure)}(t);t=null}));return j}},{key:"initializeFromPort",value:function initializeFromPort(t){var r=new y.MessageHandler("worker","main",t);WorkerMessageHandler.setup(r,t);r.send("ready",null)}}]);return WorkerMessageHandler}();r.WorkerMessageHandler=_;"undefined"==typeof window&&!g.isNodeJS&&"undefined"!=typeof self&&function isMessagePort(t){return"function"==typeof t.postMessage&&"onmessage"in t}(self)&&_.initializeFromPort(self)},(t,r,o)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.VerbosityLevel=r.Util=r.UnknownErrorException=r.UnexpectedResponseException=r.UNSUPPORTED_FEATURES=r.TextRenderingMode=r.StreamType=r.RenderingIntentFlag=r.PermissionFlag=r.PasswordResponses=r.PasswordException=r.PageActionEventType=r.OPS=r.MissingPDFException=r.InvalidPDFException=r.ImageKind=r.IDENTITY_MATRIX=r.FormatError=r.FontType=r.FeatureTest=r.FONT_IDENTITY_MATRIX=r.DocumentActionEventType=r.CMapCompressionType=r.BaseException=r.AnnotationType=r.AnnotationStateModelType=r.AnnotationReviewState=r.AnnotationReplyType=r.AnnotationMode=r.AnnotationMarkedState=r.AnnotationFlag=r.AnnotationFieldFlag=r.AnnotationBorderStyleType=r.AnnotationActionEventType=r.AbortException=void 0;r.arrayByteLength=arrayByteLength;r.arraysToBytes=function arraysToBytes(t){var r=t.length;if(1===r&&t[0]instanceof Uint8Array)return t[0];for(var o=0,c=0;c1&&void 0!==arguments[1]?arguments[1]:null,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(!t)return null;try{if(o&&"string"==typeof t){if(o.addDefaultProtocol&&t.startsWith("www.")){var c=t.match(/\./g);c&&c.length>=2&&(t="http://".concat(t))}if(o.tryConvertEncoding)try{t=stringToUTF8String(t)}catch(t){}}var l=r?new URL(t,r):new URL(t);if(_isValidProtocol(l))return l}catch(t){}return null};r.escapeString=function escapeString(t){return t.replace(/([()\\\n\r])/g,(function(t){return"\n"===t?"\\n":"\r"===t?"\\r":"\\".concat(t)}))};r.getModificationDate=function getModificationDate(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Date,r=[t.getUTCFullYear().toString(),(t.getUTCMonth()+1).toString().padStart(2,"0"),t.getUTCDate().toString().padStart(2,"0"),t.getUTCHours().toString().padStart(2,"0"),t.getUTCMinutes().toString().padStart(2,"0"),t.getUTCSeconds().toString().padStart(2,"0")];return r.join("")};r.getVerbosityLevel=function getVerbosityLevel(){return l};r.info=function info(t){l>=c.INFOS&&console.log("Info: ".concat(t))};r.isArrayBuffer=function isArrayBuffer(t){return"object"===_typeof(t)&&null!==t&&void 0!==t.byteLength};r.isArrayEqual=function isArrayEqual(t,r){if(t.length!==r.length)return!1;for(var o=0,c=t.length;o=t.length?{done:!0}:{done:!1,value:t[c++]}},e:function e(t){throw t},f:l}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,h=!0,d=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();h=t.done;return t},e:function e(t){d=!0;u=t},f:function f(){try{h||null==o.return||o.return()}finally{if(d)throw u}}}}(t);try{for(c.s();!(r=c.n()).done;){var l=(d=r.value,g=2,function _arrayWithHoles(t){if(Array.isArray(t))return t}(d)||function _iterableToArrayLimit(t,r){var o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null==o)return;var c,l,u=[],h=!0,d=!1;try{for(o=o.call(t);!(h=(c=o.next()).done);h=!0){u.push(c.value);if(r&&u.length===r)break}}catch(t){d=!0;l=t}finally{try{h||null==o.return||o.return()}finally{if(d)throw l}}return u}(d,g)||_unsupportedIterableToArray(d,g)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),u=l[0],h=l[1];o[u]=h}}catch(t){c.e(t)}finally{c.f()}var d,g;return o};r.objectSize=function objectSize(t){return Object.keys(t).length};r.setVerbosityLevel=function setVerbosityLevel(t){Number.isInteger(t)&&(l=t)};r.shadow=shadow;r.string32=function string32(t){return String.fromCharCode(t>>24&255,t>>16&255,t>>8&255,255&t)};r.stringToBytes=stringToBytes;r.stringToPDFString=function stringToPDFString(t){if(t[0]>="ï"){var r;"þ"===t[0]&&"ÿ"===t[1]?r="utf-16be":"ÿ"===t[0]&&"þ"===t[1]?r="utf-16le":"ï"===t[0]&&"»"===t[1]&&"¿"===t[2]&&(r="utf-8");if(r)try{var o=new TextDecoder(r,{fatal:!0}),c=stringToBytes(t);return o.decode(c)}catch(t){warn('stringToPDFString: "'.concat(t,'".'))}}for(var l=[],u=0,h=t.length;u>8&255),String.fromCharCode(255&l))}return r.join("")};r.stringToUTF8String=stringToUTF8String;r.unreachable=unreachable;r.utf8StringToString=function utf8StringToString(t){return unescape(encodeURIComponent(t))};r.warn=warn;o(3);function _toConsumableArray(t){return function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}(t)||function _iterableToArray(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||_unsupportedIterableToArray(t)||function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);return"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,c=new Array(r);o=c.WARNINGS&&console.log("Warning: ".concat(t))}function unreachable(t){throw new Error(t)}function _isValidProtocol(t){if(!t)return!1;switch(t.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}function shadow(t,r,o){Object.defineProperty(t,r,{value:o,enumerable:!0,configurable:!0,writable:!1});return o}var u=function BaseExceptionClosure(){function BaseException(t,r){this.constructor===BaseException&&unreachable("Cannot initialize BaseException.");this.message=t;this.name=r}BaseException.prototype=new Error;BaseException.constructor=BaseException;return BaseException}();r.BaseException=u;var h=function(t){_inherits(PasswordException,t);var r=_createSuper(PasswordException);function PasswordException(t,o){var c;_classCallCheck(this,PasswordException);(c=r.call(this,t,"PasswordException")).code=o;return c}return _createClass(PasswordException)}(u);r.PasswordException=h;var d=function(t){_inherits(UnknownErrorException,t);var r=_createSuper(UnknownErrorException);function UnknownErrorException(t,o){var c;_classCallCheck(this,UnknownErrorException);(c=r.call(this,t,"UnknownErrorException")).details=o;return c}return _createClass(UnknownErrorException)}(u);r.UnknownErrorException=d;var g=function(t){_inherits(InvalidPDFException,t);var r=_createSuper(InvalidPDFException);function InvalidPDFException(t){_classCallCheck(this,InvalidPDFException);return r.call(this,t,"InvalidPDFException")}return _createClass(InvalidPDFException)}(u);r.InvalidPDFException=g;var y=function(t){_inherits(MissingPDFException,t);var r=_createSuper(MissingPDFException);function MissingPDFException(t){_classCallCheck(this,MissingPDFException);return r.call(this,t,"MissingPDFException")}return _createClass(MissingPDFException)}(u);r.MissingPDFException=y;var m=function(t){_inherits(UnexpectedResponseException,t);var r=_createSuper(UnexpectedResponseException);function UnexpectedResponseException(t,o){var c;_classCallCheck(this,UnexpectedResponseException);(c=r.call(this,t,"UnexpectedResponseException")).status=o;return c}return _createClass(UnexpectedResponseException)}(u);r.UnexpectedResponseException=m;var v=function(t){_inherits(FormatError,t);var r=_createSuper(FormatError);function FormatError(t){_classCallCheck(this,FormatError);return r.call(this,t,"FormatError")}return _createClass(FormatError)}(u);r.FormatError=v;var w=function(t){_inherits(AbortException,t);var r=_createSuper(AbortException);function AbortException(t){_classCallCheck(this,AbortException);return r.call(this,t,"AbortException")}return _createClass(AbortException)}(u);r.AbortException=w;function stringToBytes(t){"string"!=typeof t&&unreachable("Invalid argument for stringToBytes");for(var r=t.length,o=new Uint8Array(r),c=0;ct[2]){r[0]=t[2];r[2]=t[0]}if(t[1]>t[3]){r[1]=t[3];r[3]=t[1]}return r}},{key:"intersect",value:function intersect(t,r){var o=Math.max(Math.min(t[0],t[2]),Math.min(r[0],r[2])),c=Math.min(Math.max(t[0],t[2]),Math.max(r[0],r[2]));if(o>c)return null;var l=Math.max(Math.min(t[1],t[3]),Math.min(r[1],r[3])),u=Math.min(Math.max(t[1],t[3]),Math.max(r[1],r[3]));return l>u?null:[o,l,c,u]}},{key:"bezierBoundingBox",value:function bezierBoundingBox(t,r,o,c,l,u,h,d){for(var g,y,m,v,w,_,k,S,C=[],x=[[],[]],O=0;O<2;++O){if(0===O){y=6*t-12*o+6*l;g=-3*t+9*o-9*l+3*h;m=3*o-3*t}else{y=6*r-12*c+6*u;g=-3*r+9*c-9*u+3*d;m=3*c-3*r}if(Math.abs(g)<1e-12){if(Math.abs(y)<1e-12)continue;0<(v=-m/y)&&v<1&&C.push(v)}else{k=y*y-4*m*g;S=Math.sqrt(k);if(!(k<0)){0<(w=(-y+S)/(2*g))&&w<1&&C.push(w);0<(_=(-y-S)/(2*g))&&_<1&&C.push(_)}}}for(var T,E=C.length,M=E;E--;){T=1-(v=C[E]);x[0][E]=T*T*T*t+3*T*T*v*o+3*T*v*v*l+v*v*v*h;x[1][E]=T*T*T*r+3*T*T*v*c+3*T*v*v*u+v*v*v*d}x[0][M]=t;x[1][M]=r;x[0][M+1]=h;x[1][M+1]=d;x[0].length=x[1].length=M+2;return[Math.min.apply(Math,_toConsumableArray(x[0])),Math.min.apply(Math,_toConsumableArray(x[1])),Math.max.apply(Math,_toConsumableArray(x[0])),Math.max.apply(Math,_toConsumableArray(x[1]))]}}]);return Util}();r.Util=S;var C=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,728,711,710,729,733,731,730,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8226,8224,8225,8230,8212,8211,402,8260,8249,8250,8722,8240,8222,8220,8221,8216,8217,8218,8482,64257,64258,321,338,352,376,381,305,322,339,353,382,0,8364];function stringToUTF8String(t){return decodeURIComponent(escape(t))}},(t,r,o)=>{"use strict";var c=o(4);if(!globalThis._pdfjsCompatibilityChecked){globalThis._pdfjsCompatibilityChecked=!0;!function checkNodeBtoa(){!globalThis.btoa&&c.isNodeJS&&(globalThis.btoa=function(t){return Buffer.from(t,"binary").toString("base64")})}();!function checkNodeAtob(){!globalThis.atob&&c.isNodeJS&&(globalThis.atob=function(t){return Buffer.from(t,"base64").toString("binary")})}();!function checkDOMMatrix(){!globalThis.DOMMatrix&&c.isNodeJS&&(globalThis.DOMMatrix=require("dommatrix/dist/dommatrix.js"))}();!function checkPromise(){globalThis.Promise.allSettled||(globalThis.Promise=o(5))}();!function checkReadableStream(){!globalThis.ReadableStream&&c.isNodeJS&&(globalThis.ReadableStream=require("web-streams-polyfill/dist/ponyfill.js").ReadableStream)}();!function checkStructuredClone(){globalThis.structuredClone||o(142)}()}},(t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});r.isNodeJS=void 0;function _typeof(t){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_typeof(t)}var o=!("object"!==("undefined"==typeof process?"undefined":_typeof(process))||process+""!="[object process]"||process.versions.nw||process.versions.electron&&process.type&&"browser"!==process.type);r.isNodeJS=o},(t,r,o)=>{o(6);o(95);o(102);o(104);o(136);o(137);o(138);o(139);var c=o(141);t.exports=c.Promise},(t,r,o)=>{o(7)},(t,r,o)=>{"use strict";var c=o(8),l=o(29),u=o(73),h=o(75),d=o(60),g=o(77),y=o(48),m=o(16),v=o(81),w=o(82),_=o(83),k=o(92),S=o(38),C=o(94),x=S("toStringTag"),O=Error,T=[].push,E=function AggregateError(t,r){var o,c=arguments.length>2?arguments[2]:void 0,d=l(M,this);if(h)o=h(O(),d?u(this):M);else{o=d?this:g(M);y(o,x,"Error")}void 0!==r&&y(o,"message",k(r));C&&y(o,"stack",v(o.stack,1));w(o,c);var m=[];_(t,T,{that:m});y(o,"errors",m);return o};h?h(E,O):d(E,O,{name:!0});var M=E.prototype=g(O.prototype,{constructor:m(1,E),message:m(1,""),name:m(1,"AggregateError")});c({global:!0,constructor:!0,arity:2},{AggregateError:E})},(t,r,o)=>{var c=o(9),l=o(10).f,u=o(48),h=o(52),d=o(42),g=o(60),y=o(72);t.exports=function(t,r){var o,m,v,w,_,k=t.target,S=t.global,C=t.stat;if(o=S?c:C?c[k]||d(k,{}):(c[k]||{}).prototype)for(m in r){w=r[m];v=t.dontCallGetSet?(_=l(o,m))&&_.value:o[m];if(!y(S?m:k+(C?".":"#")+m,t.forced)&&void 0!==v){if(typeof w==typeof v)continue;g(w,v)}(t.sham||v&&v.sham)&&u(w,"sham",!0);h(o,m,w,t)}}},t=>{var check=function(t){return t&&t.Math==Math&&t};t.exports=check("object"==typeof globalThis&&globalThis)||check("object"==typeof window&&window)||check("object"==typeof self&&self)||check("object"==typeof global&&global)||function(){return this}()||Function("return this")()},(t,r,o)=>{var c=o(11),l=o(13),u=o(15),h=o(16),d=o(17),g=o(23),y=o(43),m=o(46),v=Object.getOwnPropertyDescriptor;r.f=c?v:function getOwnPropertyDescriptor(t,r){t=d(t);r=g(r);if(m)try{return v(t,r)}catch(t){}if(y(t,r))return h(!l(u.f,t,r),t[r])}},(t,r,o)=>{var c=o(12);t.exports=!c((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},t=>{t.exports=function(t){try{return!!t()}catch(t){return!0}}},(t,r,o)=>{var c=o(14),l=Function.prototype.call;t.exports=c?l.bind(l):function(){return l.apply(l,arguments)}},(t,r,o)=>{var c=o(12);t.exports=!c((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},(t,r)=>{"use strict";var o={}.propertyIsEnumerable,c=Object.getOwnPropertyDescriptor,l=c&&!o.call({1:2},1);r.f=l?function propertyIsEnumerable(t){var r=c(this,t);return!!r&&r.enumerable}:o},t=>{t.exports=function(t,r){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:r}}},(t,r,o)=>{var c=o(18),l=o(21);t.exports=function(t){return c(l(t))}},(t,r,o)=>{var c=o(19),l=o(12),u=o(20),h=Object,d=c("".split);t.exports=l((function(){return!h("z").propertyIsEnumerable(0)}))?function(t){return"String"==u(t)?d(t,""):h(t)}:h},(t,r,o)=>{var c=o(14),l=Function.prototype,u=l.bind,h=l.call,d=c&&u.bind(h,h);t.exports=c?function(t){return t&&d(t)}:function(t){return t&&function(){return h.apply(t,arguments)}}},(t,r,o)=>{var c=o(19),l=c({}.toString),u=c("".slice);t.exports=function(t){return u(l(t),8,-1)}},(t,r,o)=>{var c=o(22),l=TypeError;t.exports=function(t){if(c(t))throw l("Can't call method on "+t);return t}},t=>{t.exports=function(t){return null==t}},(t,r,o)=>{var c=o(24),l=o(27);t.exports=function(t){var r=c(t,"string");return l(r)?r:r+""}},(t,r,o)=>{var c=o(13),l=o(25),u=o(27),h=o(34),d=o(37),g=o(38),y=TypeError,m=g("toPrimitive");t.exports=function(t,r){if(!l(t)||u(t))return t;var o,g=h(t,m);if(g){void 0===r&&(r="default");o=c(g,t,r);if(!l(o)||u(o))return o;throw y("Can't convert object to primitive value")}void 0===r&&(r="number");return d(t,r)}},(t,r,o)=>{var c=o(26),l="object"==typeof document&&document.all,u=void 0===l&&void 0!==l;t.exports=u?function(t){return"object"==typeof t?null!==t:c(t)||t===l}:function(t){return"object"==typeof t?null!==t:c(t)}},t=>{t.exports=function(t){return"function"==typeof t}},(t,r,o)=>{var c=o(28),l=o(26),u=o(29),h=o(30),d=Object;t.exports=h?function(t){return"symbol"==typeof t}:function(t){var r=c("Symbol");return l(r)&&u(r.prototype,d(t))}},(t,r,o)=>{var c=o(9),l=o(26),aFunction=function(t){return l(t)?t:void 0};t.exports=function(t,r){return arguments.length<2?aFunction(c[t]):c[t]&&c[t][r]}},(t,r,o)=>{var c=o(19);t.exports=c({}.isPrototypeOf)},(t,r,o)=>{var c=o(31);t.exports=c&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},(t,r,o)=>{var c=o(32),l=o(12);t.exports=!!Object.getOwnPropertySymbols&&!l((function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&c&&c<41}))},(t,r,o)=>{var c,l,u=o(9),h=o(33),d=u.process,g=u.Deno,y=d&&d.versions||g&&g.version,m=y&&y.v8;m&&(l=(c=m.split("."))[0]>0&&c[0]<4?1:+(c[0]+c[1]));!l&&h&&(!(c=h.match(/Edge\/(\d+)/))||c[1]>=74)&&(c=h.match(/Chrome\/(\d+)/))&&(l=+c[1]);t.exports=l},(t,r,o)=>{var c=o(28);t.exports=c("navigator","userAgent")||""},(t,r,o)=>{var c=o(35),l=o(22);t.exports=function(t,r){var o=t[r];return l(o)?void 0:c(o)}},(t,r,o)=>{var c=o(26),l=o(36),u=TypeError;t.exports=function(t){if(c(t))return t;throw u(l(t)+" is not a function")}},t=>{var r=String;t.exports=function(t){try{return r(t)}catch(t){return"Object"}}},(t,r,o)=>{var c=o(13),l=o(26),u=o(25),h=TypeError;t.exports=function(t,r){var o,d;if("string"===r&&l(o=t.toString)&&!u(d=c(o,t)))return d;if(l(o=t.valueOf)&&!u(d=c(o,t)))return d;if("string"!==r&&l(o=t.toString)&&!u(d=c(o,t)))return d;throw h("Can't convert object to primitive value")}},(t,r,o)=>{var c=o(9),l=o(39),u=o(43),h=o(45),d=o(31),g=o(30),y=l("wks"),m=c.Symbol,v=m&&m.for,w=g?m:m&&m.withoutSetter||h;t.exports=function(t){if(!u(y,t)||!d&&"string"!=typeof y[t]){var r="Symbol."+t;d&&u(m,t)?y[t]=m[t]:y[t]=g&&v?v(r):w(r)}return y[t]}},(t,r,o)=>{var c=o(40),l=o(41);(t.exports=function(t,r){return l[t]||(l[t]=void 0!==r?r:{})})("versions",[]).push({version:"3.25.1",mode:c?"pure":"global",copyright:"© 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.25.1/LICENSE",source:"https://github.com/zloirock/core-js"})},t=>{t.exports=!1},(t,r,o)=>{var c=o(9),l=o(42),u="__core-js_shared__",h=c[u]||l(u,{});t.exports=h},(t,r,o)=>{var c=o(9),l=Object.defineProperty;t.exports=function(t,r){try{l(c,t,{value:r,configurable:!0,writable:!0})}catch(o){c[t]=r}return r}},(t,r,o)=>{var c=o(19),l=o(44),u=c({}.hasOwnProperty);t.exports=Object.hasOwn||function hasOwn(t,r){return u(l(t),r)}},(t,r,o)=>{var c=o(21),l=Object;t.exports=function(t){return l(c(t))}},(t,r,o)=>{var c=o(19),l=0,u=Math.random(),h=c(1..toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+h(++l+u,36)}},(t,r,o)=>{var c=o(11),l=o(12),u=o(47);t.exports=!c&&!l((function(){return 7!=Object.defineProperty(u("div"),"a",{get:function(){return 7}}).a}))},(t,r,o)=>{var c=o(9),l=o(25),u=c.document,h=l(u)&&l(u.createElement);t.exports=function(t){return h?u.createElement(t):{}}},(t,r,o)=>{var c=o(11),l=o(49),u=o(16);t.exports=c?function(t,r,o){return l.f(t,r,u(1,o))}:function(t,r,o){t[r]=o;return t}},(t,r,o)=>{var c=o(11),l=o(46),u=o(50),h=o(51),d=o(23),g=TypeError,y=Object.defineProperty,m=Object.getOwnPropertyDescriptor,v="enumerable",w="configurable",_="writable";r.f=c?u?function defineProperty(t,r,o){h(t);r=d(r);h(o);if("function"==typeof t&&"prototype"===r&&"value"in o&&_ in o&&!o.writable){var c=m(t,r);if(c&&c.writable){t[r]=o.value;o={configurable:w in o?o.configurable:c.configurable,enumerable:v in o?o.enumerable:c.enumerable,writable:!1}}}return y(t,r,o)}:y:function defineProperty(t,r,o){h(t);r=d(r);h(o);if(l)try{return y(t,r,o)}catch(t){}if("get"in o||"set"in o)throw g("Accessors not supported");"value"in o&&(t[r]=o.value);return t}},(t,r,o)=>{var c=o(11),l=o(12);t.exports=c&&l((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},(t,r,o)=>{var c=o(25),l=String,u=TypeError;t.exports=function(t){if(c(t))return t;throw u(l(t)+" is not an object")}},(t,r,o)=>{var c=o(26),l=o(49),u=o(53),h=o(42);t.exports=function(t,r,o,d){d||(d={});var g=d.enumerable,y=void 0!==d.name?d.name:r;c(o)&&u(o,y,d);if(d.global)g?t[r]=o:h(r,o);else{try{d.unsafe?t[r]&&(g=!0):delete t[r]}catch(t){}g?t[r]=o:l.f(t,r,{value:o,enumerable:!1,configurable:!d.nonConfigurable,writable:!d.nonWritable})}return t}},(t,r,o)=>{var c=o(12),l=o(26),u=o(43),h=o(11),d=o(54).CONFIGURABLE,g=o(55),y=o(56),m=y.enforce,v=y.get,w=Object.defineProperty,_=h&&!c((function(){return 8!==w((function(){}),"length",{value:8}).length})),k=String(String).split("String"),S=t.exports=function(t,r,o){"Symbol("===String(r).slice(0,7)&&(r="["+String(r).replace(/^Symbol\(([^)]*)\)/,"$1")+"]");o&&o.getter&&(r="get "+r);o&&o.setter&&(r="set "+r);(!u(t,"name")||d&&t.name!==r)&&(h?w(t,"name",{value:r,configurable:!0}):t.name=r);_&&o&&u(o,"arity")&&t.length!==o.arity&&w(t,"length",{value:o.arity});try{o&&u(o,"constructor")&&o.constructor?h&&w(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var c=m(t);u(c,"source")||(c.source=k.join("string"==typeof r?r:""));return t};Function.prototype.toString=S((function toString(){return l(this)&&v(this).source||g(this)}),"toString")},(t,r,o)=>{var c=o(11),l=o(43),u=Function.prototype,h=c&&Object.getOwnPropertyDescriptor,d=l(u,"name"),g=d&&"something"===function something(){}.name,y=d&&(!c||c&&h(u,"name").configurable);t.exports={EXISTS:d,PROPER:g,CONFIGURABLE:y}},(t,r,o)=>{var c=o(19),l=o(26),u=o(41),h=c(Function.toString);l(u.inspectSource)||(u.inspectSource=function(t){return h(t)});t.exports=u.inspectSource},(t,r,o)=>{var c,l,u,h=o(57),d=o(9),g=o(19),y=o(25),m=o(48),v=o(43),w=o(41),_=o(58),k=o(59),S="Object already initialized",C=d.TypeError,x=d.WeakMap;if(h||w.state){var O=w.state||(w.state=new x),T=g(O.get),E=g(O.has),M=g(O.set);c=function(t,r){if(E(O,t))throw C(S);r.facade=t;M(O,t,r);return r};l=function(t){return T(O,t)||{}};u=function(t){return E(O,t)}}else{var R=_("state");k[R]=!0;c=function(t,r){if(v(t,R))throw C(S);r.facade=t;m(t,R,r);return r};l=function(t){return v(t,R)?t[R]:{}};u=function(t){return v(t,R)}}t.exports={set:c,get:l,has:u,enforce:function(t){return u(t)?l(t):c(t,{})},getterFor:function(t){return function(r){var o;if(!y(r)||(o=l(r)).type!==t)throw C("Incompatible receiver, "+t+" required");return o}}}},(t,r,o)=>{var c=o(9),l=o(26),u=c.WeakMap;t.exports=l(u)&&/native code/.test(String(u))},(t,r,o)=>{var c=o(39),l=o(45),u=c("keys");t.exports=function(t){return u[t]||(u[t]=l(t))}},t=>{t.exports={}},(t,r,o)=>{var c=o(43),l=o(61),u=o(10),h=o(49);t.exports=function(t,r,o){for(var d=l(r),g=h.f,y=u.f,m=0;m{var c=o(28),l=o(19),u=o(62),h=o(71),d=o(51),g=l([].concat);t.exports=c("Reflect","ownKeys")||function ownKeys(t){var r=u.f(d(t)),o=h.f;return o?g(r,o(t)):r}},(t,r,o)=>{var c=o(63),l=o(70).concat("length","prototype");r.f=Object.getOwnPropertyNames||function getOwnPropertyNames(t){return c(t,l)}},(t,r,o)=>{var c=o(19),l=o(43),u=o(17),h=o(64).indexOf,d=o(59),g=c([].push);t.exports=function(t,r){var o,c=u(t),y=0,m=[];for(o in c)!l(d,o)&&l(c,o)&&g(m,o);for(;r.length>y;)l(c,o=r[y++])&&(~h(m,o)||g(m,o));return m}},(t,r,o)=>{var c=o(17),l=o(65),u=o(68),createMethod=function(t){return function(r,o,h){var d,g=c(r),y=u(g),m=l(h,y);if(t&&o!=o){for(;y>m;)if((d=g[m++])!=d)return!0}else for(;y>m;m++)if((t||m in g)&&g[m]===o)return t||m||0;return!t&&-1}};t.exports={includes:createMethod(!0),indexOf:createMethod(!1)}},(t,r,o)=>{var c=o(66),l=Math.max,u=Math.min;t.exports=function(t,r){var o=c(t);return o<0?l(o+r,0):u(o,r)}},(t,r,o)=>{var c=o(67);t.exports=function(t){var r=+t;return r!=r||0===r?0:c(r)}},t=>{var r=Math.ceil,o=Math.floor;t.exports=Math.trunc||function trunc(t){var c=+t;return(c>0?o:r)(c)}},(t,r,o)=>{var c=o(69);t.exports=function(t){return c(t.length)}},(t,r,o)=>{var c=o(66),l=Math.min;t.exports=function(t){return t>0?l(c(t),9007199254740991):0}},t=>{t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},(t,r)=>{r.f=Object.getOwnPropertySymbols},(t,r,o)=>{var c=o(12),l=o(26),u=/#|\.prototype\./,isForced=function(t,r){var o=d[h(t)];return o==y||o!=g&&(l(r)?c(r):!!r)},h=isForced.normalize=function(t){return String(t).replace(u,".").toLowerCase()},d=isForced.data={},g=isForced.NATIVE="N",y=isForced.POLYFILL="P";t.exports=isForced},(t,r,o)=>{var c=o(43),l=o(26),u=o(44),h=o(58),d=o(74),g=h("IE_PROTO"),y=Object,m=y.prototype;t.exports=d?y.getPrototypeOf:function(t){var r=u(t);if(c(r,g))return r[g];var o=r.constructor;return l(o)&&r instanceof o?o.prototype:r instanceof y?m:null}},(t,r,o)=>{var c=o(12);t.exports=!c((function(){function F(){}F.prototype.constructor=null;return Object.getPrototypeOf(new F)!==F.prototype}))},(t,r,o)=>{var c=o(19),l=o(51),u=o(76);t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,r=!1,o={};try{(t=c(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set))(o,[]);r=o instanceof Array}catch(t){}return function setPrototypeOf(o,c){l(o);u(c);r?t(o,c):o.__proto__=c;return o}}():void 0)},(t,r,o)=>{var c=o(26),l=String,u=TypeError;t.exports=function(t){if("object"==typeof t||c(t))return t;throw u("Can't set "+l(t)+" as a prototype")}},(t,r,o)=>{var c,l=o(51),u=o(78),h=o(70),d=o(59),g=o(80),y=o(47),m=o(58),v=m("IE_PROTO"),EmptyConstructor=function(){},scriptTag=function(t){return"